diff --git a/.github/docker_images/gcc-4.8/Dockerfile b/.github/docker_images/gcc-4.8/Dockerfile new file mode 100644 index 0000000000..c86416324e --- /dev/null +++ b/.github/docker_images/gcc-4.8/Dockerfile @@ -0,0 +1,20 @@ +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 OR ISC + +FROM gcc:4.8 + +VOLUME ["/awslc"] + +COPY awslc_build.sh / +COPY entry.sh / + +WORKDIR / + +RUN curl -LOk "https://github.com/Kitware/CMake/releases/download/v3.6.3/cmake-3.6.3-Linux-x86_64.tar.gz" +RUN sha256sum cmake-3.6.3-Linux-x86_64.tar.gz | grep -q "9d915d505c07d84b610e1be6242c7cad68b4b7a4090ce85ecf9cec5effa47c43" +RUN tar -C /usr/local -xzf cmake-3.6.3-Linux-x86_64.tar.gz +RUN rm cmake-3.6.3-Linux-x86_64.tar.gz + +ENV PATH="${PATH}:/usr/local/cmake-3.6.3-Linux-x86_64/bin" + +ENTRYPOINT ["/entry.sh"] diff --git a/.github/docker_images/gcc-4.8/awslc_build.sh b/.github/docker_images/gcc-4.8/awslc_build.sh new file mode 100755 index 0000000000..1cecf63add --- /dev/null +++ b/.github/docker_images/gcc-4.8/awslc_build.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 OR ISC + +set -ex -o pipefail + +echo "Building with GCC Version: $(gcc --version)" + +BUILD_DIR=$(mktemp -d) +SRC_DIR="${SRC_DIR:-/awslc}" + +pushd "${BUILD_DIR}" + +cmake "${SRC_DIR}" "-DDISABLE_GO=ON" "-DDISABLE_PERL=ON" "-DMY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX=1" +make -j 4 ssl + +popd # ${BUILD_DIR} diff --git a/.github/docker_images/gcc-4.8/entry.sh b/.github/docker_images/gcc-4.8/entry.sh new file mode 100755 index 0000000000..2ae2238a88 --- /dev/null +++ b/.github/docker_images/gcc-4.8/entry.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 OR ISC + +set -ex -o pipefail + +/awslc_build.sh "${argv[@]}" diff --git a/.github/workflows/actions-ci.yml b/.github/workflows/actions-ci.yml index e20c527cd9..3f24f4e86a 100644 --- a/.github/workflows/actions-ci.yml +++ b/.github/workflows/actions-ci.yml @@ -447,6 +447,20 @@ jobs: env tests/ci/run_openbsd_tests.sh ${{ matrix.args }} EOF + gcc-4_8: + needs: [sanity-test-run] + runs-on: ubuntu-latest + env: + DOCKER_BUILDKIT: 1 + steps: + - uses: actions/checkout@v4 + - name: Build Docker Image + working-directory: .github/docker_images/gcc-4.8 + run: | + docker build -t "gcc-4.8" . + - name: Build using pre-generated assembly + run: | + docker run -v "${{ github.workspace }}:/awslc" "gcc-4.8" # TODO: Investigate sudden hanging tests and failures in GHA runners (P114059413) # MSVC-SDE-32-bit: diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml new file mode 100644 index 0000000000..34f4b1e343 --- /dev/null +++ b/.github/workflows/go.yml @@ -0,0 +1,34 @@ +name: Go Compatability +on: + push: + branches: [ '*' ] + pull_request: + branches: [ '*' ] +concurrency: + group: ${{ github.workflow }}-${{ github.ref_name }} + cancel-in-progress: true +env: + DOCKER_BUILDKIT: 1 + GOPROXY: https://proxy.golang.org,direct +jobs: + go-version-1_17_13: + if: github.repository_owner == 'aws' + env: + GOROOT: "/usr/local/go" + GO_ARCHIVE: "go1.17.13.linux-amd64.tar.gz" + runs-on: ubuntu-latest + steps: + - name: Install OS Dependencies + run: | + which go + sudo apt-get update + sudo apt-get -y --no-install-recommends install cmake gcc ninja-build make + sudo rm -rf /usr/local/go + sudo rm /usr/bin/go + wget -q "https://dl.google.com/go/${GO_ARCHIVE}" + sudo tar -C /usr/local -xf $GO_ARCHIVE + echo "${GOROOT}/bin" >> $GITHUB_PATH + - uses: actions/checkout@v3 + - name: Run integration build + run: | + ./tests/ci/run_fips_tests.sh diff --git a/.github/workflows/integrations.yml b/.github/workflows/integrations.yml index f56049d471..4635bda442 100644 --- a/.github/workflows/integrations.yml +++ b/.github/workflows/integrations.yml @@ -175,6 +175,21 @@ jobs: - name: Run strongswan build run: | ./tests/ci/integration/run_strongswan_integration.sh + openvpn: + if: github.repository_owner == 'aws' + runs-on: ubuntu-latest + steps: + - name: Install OS Dependencies + run: | + sudo apt-get update + sudo apt-get -y --no-install-recommends install \ + cmake gcc ninja-build golang libnl-3-dev libnl-genl-3-dev \ + libcap-ng-dev liblz4-dev liblzo2-dev libpam-dev libcmocka-dev \ + python3-docutils + - uses: actions/checkout@v4 + - name: Run openvpn build + run: | + ./tests/ci/integration/run_openvpn_integration.sh libevent: if: github.repository_owner == 'aws' runs-on: ubuntu-latest @@ -188,3 +203,17 @@ jobs: - name: Run libevent build run: | ./tests/ci/integration/run_libevent_integration.sh + amazon-corretto-crypto-provider: + if: github.repository_owner == 'aws' + runs-on: ubuntu-latest + steps: + - name: Install OS Dependencies + run: | + sudo apt-get update + sudo apt-get -y --no-install-recommends install \ + curl gnupg build-essential lcov wget python3-pip cmake gcc ninja-build golang + sudo pip3 install gcovr + - uses: actions/checkout@v4 + - name: Run accp build + run: | + ./tests/ci/integration/run_accp_integration.sh diff --git a/.github/workflows/opensslcomparison.yml b/.github/workflows/opensslcomparison.yml new file mode 100644 index 0000000000..0e568555b0 --- /dev/null +++ b/.github/workflows/opensslcomparison.yml @@ -0,0 +1,27 @@ +name: OpenSSL CLI Comparison Tests +on: + push: + branches: [ '*' ] + pull_request: + branches: [ '*' ] + +jobs: + openssl_comparison_tests: + if: github.repository_owner == 'aws' + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install OS Dependencies + run: | + sudo apt-get update + sudo apt-get -y --no-install-recommends install \ + cmake gcc ninja-build golang make autoconf pkg-config openssl + + - name: Make the script executable + run: chmod +x ./tests/ci/run_openssl_comparison_tests.sh + + - name: Build AWS-LC & OpenSSL and Run Comparison Tests + run: | + ./tests/ci/run_openssl_comparison_tests.sh diff --git a/.github/workflows/windows-alt.yml b/.github/workflows/windows-alt.yml index c81f587791..20a397f919 100644 --- a/.github/workflows/windows-alt.yml +++ b/.github/workflows/windows-alt.yml @@ -63,13 +63,53 @@ jobs: options: | CMAKE_SYSTEM_NAME=Windows \ CMAKE_SYSTEM_PROCESSOR=x86_64 \ - CMAKE_MAKE_PROGRAM=ninja.exe \ CMAKE_BUILD_TYPE=Release \ - name: Build Project run: cmake --build ./build --target all - name: Run tests run: cmake --build ./build --target run_tests - clang-cl: + clang-cl-msbuild: + if: github.repository_owner == 'aws' + strategy: + fail-fast: false + matrix: + target: + - x64 + - x64_arm64 + runs-on: windows-latest + env: + CMAKE_GENERATOR: "Visual Studio 17 2022" + CMAKE_GENERATOR_TOOLSET: "ClangCL,host=x64" + steps: + - if: ${{ matrix.target == 'x64' }} + name: Install NASM + uses: ilammy/setup-nasm@v1.5.1 + - name: Checkout + uses: actions/checkout@v4 + - uses: TheMrMilchmann/setup-msvc-dev@v3 + with: + arch: ${{ matrix.target }} + - if: ${{ matrix.target == 'x64' }} + name: Setup CMake + uses: threeal/cmake-action@v1.3.0 + with: + options: | + CMAKE_BUILD_TYPE=Release \ + - if: ${{ matrix.target == 'x64_arm64' }} + name: Setup CMake + uses: threeal/cmake-action@v1.3.0 + with: + options: | + CMAKE_GENERATOR_PLATFORM=ARM64 \ + CMAKE_SYSTEM_NAME=Windows \ + CMAKE_SYSTEM_PROCESSOR=ARM64 \ + CMAKE_BUILD_TYPE=Release \ + - name: Build Project + run: cmake --build ./build --target all_tests + - if: ${{ matrix.target == 'x64' }} + name: Run tests + run: cmake --build ./build --target run_tests + clang-cl-ninja: if: github.repository_owner == 'aws' strategy: fail-fast: false @@ -97,9 +137,6 @@ jobs: c-compiler: clang-cl cxx-compiler: clang-cl options: | - CMAKE_CROSSCOMPILING=${{ ((matrix.target == 'x64') && '0') || '1' }} \ - CMAKE_SYSTEM_NAME=Windows \ - CMAKE_SYSTEM_PROCESSOR=x86_64 \ CMAKE_BUILD_TYPE=Release \ - if: ${{ matrix.target == 'x64_arm64' }} name: Setup CMake @@ -109,7 +146,6 @@ jobs: c-compiler: clang-cl cxx-compiler: clang-cl options: | - CMAKE_CROSSCOMPILING=1 \ CMAKE_SYSTEM_NAME=Windows \ CMAKE_SYSTEM_PROCESSOR=ARM64 \ CMAKE_C_COMPILER_TARGET=arm64-pc-windows-msvc \ diff --git a/BUILDING.md b/BUILDING.md index 318b258791..3fb7ea6ecf 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -20,7 +20,7 @@ If in doubt, use the most recent stable version of each build tool. `PERL_EXECUTABLE`. * To build without Perl (not recommended) see [this section.](#using-pre-generated-build-files) - * [Go](https://golang.org/dl/) 1.18 or later is required. If not found by + * [Go](https://golang.org/dl/) 1.17.13 or later is required. If not found by CMake, the go executable may be configured explicitly by setting `GO_EXECUTABLE`. * To build without Go (not recommended) see [this section.](#using-pre-generated-build-files) @@ -62,13 +62,12 @@ Using Make (does not work on Windows): cmake -B build make -C build -You usually don't need to run `cmake` again after changing `CMakeLists.txt` -files because the build scripts will detect changes to them and rebuild -themselves automatically. +This produces a debug build by default. Optimisation isn't enabled, and debug +assertions are included. Pass `-DCMAKE_BUILD_TYPE=Release` to `cmake` to +configure a release build: -Note that the default build flags in the top-level `CMakeLists.txt` are for -debugging—optimisation isn't enabled. Pass `-DCMAKE_BUILD_TYPE=Release` to -`cmake` to configure a release build. + cmake -GNinja -B build -DCMAKE_BUILD_TYPE=Release + ninja -C build If you want to cross-compile then there is an example toolchain file for 32-bit Intel in `util/`. Wipe out the build directory, run `cmake` like this: @@ -87,6 +86,10 @@ remove some code that is especially large. See [CMake's documentation](https://cmake.org/cmake/help/v3.4/manual/cmake-variables.7.html) for other variables which may be used to configure the build. +You usually don't need to run `cmake` again after changing `CMakeLists.txt` +files because the build scripts will detect changes to them and rebuild +themselves automatically. + ### Building for Android It's possible to build BoringSSL with the Android NDK using CMake. Recent diff --git a/CMakeLists.txt b/CMakeLists.txt index f60a0efad9..7dd4af64fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,10 @@ if(MSVC) set(CMAKE_GENERATOR_CC cl) endif() +if(ARCH STREQUAL "aarch64" AND CMAKE_GENERATOR MATCHES "Visual Studio" AND NOT "${CMAKE_VS_PLATFORM_TOOLSET}" MATCHES "ClangCL") + message(FATAL_ERROR "AWS-LC Windows/ARM64 assembly code requires ClangCL. Current toolset: ${CMAKE_VS_PLATFORM_TOOLSET}") +endif() + include(sources.cmake) include(TestBigEndian) @@ -290,23 +294,26 @@ endmacro() # can be set to handle such cases. option(MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX "Exclude AVX code from the build" OFF) -# Some assemblers know about AVX but not AVX512 instructions, e.g. gcc 4.8.2. +# Some assemblers know about AVX but not ADX, AVX2 or AVX512 instructions, e.g. gcc 4.8.2. # This flag can be set to handle such cases. -# Note that the flag's name has "512AVX" instead of "AVX512" so that it doesn't -# include the entire flag -DMY_ASSEMBLER_IS_TOO_OLD_FOR_AVX and match it -# in the Perl files checks. +# Note: +# * Although this flag name implies an effect on AVX512 instructions, it's also +# intended to avoid generating ADX and AVX2 instructions. +# * This flag name has "512AVX" instead of "AVX512" so that it doesn't +# include the entire flag -DMY_ASSEMBLER_IS_TOO_OLD_FOR_AVX and match +# to it in the Perl files checks. option(MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX "Exclude AVX512 code from the build" OFF) if(MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX) add_definitions(-DMY_ASSEMBLER_IS_TOO_OLD_FOR_AVX) add_definitions(-DMY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX) set(MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX ON) - message(STATUS "MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX selected, removing AVX optimisations") + message(STATUS "MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX selected, removing all AVX optimisations") endif() if(MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX) add_definitions(-DMY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX) - message(STATUS "MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX selected, removing AVX512 optimisations") + message(STATUS "MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX selected, removing ADX, AVX2 and AVX512 optimisations") endif() if (GCC) @@ -364,10 +371,10 @@ if(GCC OR CLANG) else() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra") set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wall -fvisibility=hidden -fno-common") + set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wno-newline-eof") endif() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wwrite-strings -Wformat-security -Wunused-result -Wno-overlength-strings") - set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wno-newline-eof") set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wno-c11-extensions -Wvla -Wtype-limits -Wno-unused-parameter") endif() set(C_CXX_FLAGS "${C_CXX_FLAGS} -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings") @@ -763,10 +770,14 @@ if(OPENSSL_NO_SSE2_FOR_TESTING) add_definitions(-DOPENSSL_NO_SSE2_FOR_TESTING) endif() +# Some consumers might use upper-case (e.g.) "X86" or "X86_64". +# Matching below is based on lower-case. +string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" CMAKE_SYSTEM_PROCESSOR_LOWER) + if(OPENSSL_NO_ASM) add_definitions(-DOPENSSL_NO_ASM) set(ARCH "generic") -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64") +elseif(CMAKE_SYSTEM_PROCESSOR_LOWER MATCHES "x86_64|amd64") # If ARCH is originally detected as 64-bit, perform an additional check # to determine whether to build as 32-bit or 64-bit. This happens in some # cases such as when building in Docker, where the host-level architecture is 64-bit @@ -776,9 +787,9 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64") else() set(ARCH "x86") endif() -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86|i386|i686") +elseif(CMAKE_SYSTEM_PROCESSOR_LOWER MATCHES "x86|i386|i686") set(ARCH "x86") -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64.*|ARM64|aarch64") +elseif(CMAKE_SYSTEM_PROCESSOR_LOWER MATCHES "arm64.*|aarch64") # If ARCH is originally detected as 64-bit, perform an additional check # to determine whether to build as 32-bit or 64-bit. This happens in some # cases such as when building on an 64-bit CPU where the OS is 32-bit. @@ -787,15 +798,15 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64.*|ARM64|aarch64") else() set(ARCH "arm") endif() -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm*") +elseif(CMAKE_SYSTEM_PROCESSOR_LOWER MATCHES "^arm*") set(ARCH "arm") -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "powerpc64le|ppc64le") +elseif(CMAKE_SYSTEM_PROCESSOR_LOWER MATCHES "powerpc64le|ppc64le") set(ARCH "ppc64le") -elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "riscv64") +elseif (${CMAKE_SYSTEM_PROCESSOR_LOWER} STREQUAL "riscv64") set(ARCH "riscv64") -elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "s390x") +elseif (${CMAKE_SYSTEM_PROCESSOR_LOWER} STREQUAL "s390x") set(ARCH "s390x") -elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "loongarch64") +elseif (${CMAKE_SYSTEM_PROCESSOR_LOWER} STREQUAL "loongarch64") set(ARCH "loongarch64") else() message(STATUS "Unknown processor found. Using generic implementations. Processor: " ${CMAKE_SYSTEM_PROCESSOR}) @@ -948,6 +959,20 @@ if(BUILD_TESTING) endif() add_subdirectory(util/fipstools/acvp/modulewrapper) + + macro(set_test_location executable_name) + if(CMAKE_GENERATOR MATCHES "Visual Studio") + message(NOTICE "Location for ${executable_name} is: ${CMAKE_CURRENT_BINARY_DIR}") + # Set the output directory for the executable + set_target_properties(${executable_name} PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_BINARY_DIR}" + RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_BINARY_DIR}" + RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_BINARY_DIR}" + RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_BINARY_DIR}" + ) + endif() + endmacro() endif() add_subdirectory(crypto) @@ -955,6 +980,7 @@ if(BUILD_LIBSSL) add_subdirectory(ssl) if(BUILD_TOOL) add_subdirectory(tool) + add_subdirectory(tool-openssl) endif() endif() add_subdirectory(util/fipstools) diff --git a/cmake/go.cmake b/cmake/go.cmake index c91ee1fbd1..d6ca88257b 100644 --- a/cmake/go.cmake +++ b/cmake/go.cmake @@ -22,7 +22,7 @@ elseif(NOT DISABLE_GO) string(REGEX MATCH "([0-9]+\\.)*[0-9]+" go_version ${go_version_output}) # This should track /go.mod and /BUILDING.md - set(minimum_go_version "1.18") + set(minimum_go_version "1.17.13") if(go_version VERSION_LESS minimum_go_version) message(FATAL_ERROR "Go compiler version must be at least ${minimum_go_version}. Found version ${go_version}") else() diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index d7590a214f..63af5a4cff 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt @@ -1,3 +1,48 @@ + +# Function to handle assembly files for ARM64 targets when using MSBuild (the "Visual Studio" generator) +# This function is necessary because MSBuild ignores ARM64 assembly file dependencies +include(CMakeParseArguments) +function(msbuild_aarch64_asm) + set(options "") + set(oneValueArgs TARGET OUTPUT_OBJECTS) + set(multiValueArgs ASM_FILES) + + cmake_parse_arguments(MSBUILD_AARCH64_ASM "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGV}) + + # Set the output directory for object files + set(OBJ_DIR "${CMAKE_CURRENT_BINARY_DIR}/${MSBUILD_AARCH64_ASM_TARGET}.dir/$") + + # Initialize list to store assembled object files + set(ASSEMBLED_OBJECTS "") + + foreach(ASM_FILE ${MSBUILD_AARCH64_ASM_ASM_FILES}) + # Get the filename without extension + get_filename_component(ASM_NAME ${ASM_FILE} NAME_WE) + set(OBJ_FILE "${OBJ_DIR}/${ASM_NAME}.obj") + + add_custom_command( + OUTPUT ${OBJ_FILE} + COMMAND "${CMAKE_ASM_COMPILER}" + --target=arm64-pc-windows-msvc + /c + /I "${PROJECT_BINARY_DIR}/symbol_prefix_include/" + /I "${PROJECT_SOURCE_DIR}/include" + /o "${OBJ_FILE}" + "${ASM_FILE}" + DEPENDS ${ASM_FILE} + COMMENT "Assembling ${ASM_FILE}" + ) + + # Mark the generated object file as an external object + set_source_files_properties(${OBJ_FILE} PROPERTIES EXTERNAL_OBJECT TRUE) + + list(APPEND ASSEMBLED_OBJECTS ${OBJ_FILE}) + endforeach() + + # Set the output variable in the parent scope + set(${MSBUILD_AARCH64_ASM_OUTPUT_OBJECTS} ${ASSEMBLED_OBJECTS} PARENT_SCOPE) +endfunction() + if(NOT OPENSSL_NO_ASM) if(UNIX) if(ARCH STREQUAL "aarch64") @@ -253,6 +298,7 @@ if(GO_EXECUTABLE) err/engine.errordata err/evp.errordata err/hkdf.errordata + err/hmac.errordata err/obj.errordata err/ocsp.errordata err/pem.errordata @@ -281,6 +327,11 @@ if(ENABLE_DILITHIUM) ) endif() +set(CRYPTO_ARCH_OBJECTS "") +if (ARCH STREQUAL "aarch64" AND CMAKE_GENERATOR MATCHES "Visual Studio") + msbuild_aarch64_asm(TARGET crypto_objects ASM_FILES ${CRYPTO_ARCH_SOURCES} OUTPUT_OBJECTS CRYPTO_ARCH_OBJECTS) +endif() + add_library( crypto_objects OBJECT @@ -396,6 +447,8 @@ add_library( lhash/lhash.c mem.c ml_kem/ml_kem_512_ipd.c + ml_kem/ml_kem_768_ipd.c + ml_kem/ml_kem_1024_ipd.c ml_kem/ml_kem.c obj/obj.c obj/obj_xref.c @@ -532,6 +585,7 @@ add_library( decrepit/x509/x509_decrepit.c ${CRYPTO_ARCH_SOURCES} + ${CRYPTO_ARCH_OBJECTS} ) target_compile_definitions(crypto_objects PRIVATE BORINGSSL_IMPLEMENTATION) @@ -634,7 +688,7 @@ if(FIPS_SHARED) # # Note: we use CMAKE_SYSTEM_PROCESSOR directly instead of the ARCH variable # because if NO_ASM build flag is defined then ARCH is set to "generic". - if (APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES "arm64.*|ARM64|aarch64") + if (APPLE AND CMAKE_SYSTEM_PROCESSOR_LOWER MATCHES "arm64.*|aarch64") add_custom_command( TARGET crypto POST_BUILD COMMAND codesign -s - $ @@ -674,6 +728,7 @@ if(BUILD_TESTING) add_dependencies(${executable_name} boringssl_prefix_symbols) target_include_directories(${executable_name} BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include) add_dependencies(all_tests ${executable_name}) + set_test_location(${executable_name}) endmacro() # Below tests are added as new executables to be executed in single process. @@ -689,6 +744,7 @@ if(BUILD_TESTING) ${RANDOM_TEST_EXEC} fipsmodule/rand/urandom_test.cc ) + set_test_location(${RANDOM_TEST_EXEC}) add_dependencies(${RANDOM_TEST_EXEC} boringssl_prefix_symbols) target_link_libraries(${RANDOM_TEST_EXEC} test_support_lib boringssl_gtest crypto) @@ -784,6 +840,7 @@ if(BUILD_TESTING) $ ) + set_test_location(${CRYPTO_TEST_EXEC}) add_dependencies(${CRYPTO_TEST_EXEC} boringssl_prefix_symbols) target_link_libraries(${CRYPTO_TEST_EXEC} boringssl_gtest_main) @@ -799,6 +856,7 @@ if(BUILD_TESTING) add_executable(${DYNAMIC_LOADING_TEST_EXEC} dynamic_loading_test.c) add_dependencies(${DYNAMIC_LOADING_TEST_EXEC} crypto) + set_test_location(${DYNAMIC_LOADING_TEST_EXEC}) add_dependencies(${DYNAMIC_LOADING_TEST_EXEC} boringssl_prefix_symbols) target_include_directories(${DYNAMIC_LOADING_TEST_EXEC} BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include) @@ -823,6 +881,7 @@ if(BUILD_TESTING) message(STATUS "Generating test executable ${RWLOCK_STATIC_INIT_TEST_EXEC}.") add_executable(${RWLOCK_STATIC_INIT_TEST_EXEC} rwlock_static_init.cc) add_dependencies(${RWLOCK_STATIC_INIT_TEST_EXEC} crypto) + set_test_location(${RWLOCK_STATIC_INIT_TEST_EXEC}) target_link_libraries(${RWLOCK_STATIC_INIT_TEST_EXEC} crypto) target_include_directories(${RWLOCK_STATIC_INIT_TEST_EXEC} BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include) diff --git a/crypto/bytestring/ber.c b/crypto/bytestring/ber.c index 5d43d0b7f1..b3ba7711b7 100644 --- a/crypto/bytestring/ber.c +++ b/crypto/bytestring/ber.c @@ -18,13 +18,10 @@ #include #include "internal.h" -#include "../internal.h" -// kMaxDepth is a just a sanity limit. The code should be such that the length -// of the input being processes always decreases. None the less, a very large -// input could otherwise cause the stack to overflow. -static const uint32_t kMaxDepth = 2048; +// kMaxDepth limits the recursion depth to avoid overflowing the stack. +static const uint32_t kMaxDepth = 128; // is_string_type returns one if |tag| is a string type and zero otherwise. It // ignores the constructed bit. @@ -56,13 +53,11 @@ static int is_string_type(CBS_ASN1_TAG tag) { // found. The value of |orig_in| is not changed. It returns one on success (i.e. // |*ber_found| was set) and zero on error. static int cbs_find_ber(const CBS *orig_in, int *ber_found, uint32_t depth) { - CBS in; - if (depth > kMaxDepth) { return 0; } - CBS_init(&in, CBS_data(orig_in), CBS_len(orig_in)); + CBS in = *orig_in; *ber_found = 0; while (CBS_len(&in) > 0) { @@ -87,6 +82,10 @@ static int cbs_find_ber(const CBS *orig_in, int *ber_found, uint32_t depth) { !cbs_find_ber(&contents, ber_found, depth + 1)) { return 0; } + if (*ber_found) { + // We already found BER. No need to continue parsing. + return 1; + } } } diff --git a/crypto/bytestring/bytestring_test.cc b/crypto/bytestring/bytestring_test.cc index 10d34697a8..6d9ac9ead5 100644 --- a/crypto/bytestring/bytestring_test.cc +++ b/crypto/bytestring/bytestring_test.cc @@ -679,6 +679,38 @@ TEST(CBSTest, BerConvert) { 0xa0, 0x08, 0x04, 0x02, 0x00, 0x01, 0x04, 0x02, 0x02, 0x03, }; + // kWrappedIndefBER contains indefinite-length SEQUENCE, wrapped + // and followed by valid DER. This tests that we correctly identify BER nested + // inside DER. + // + // SEQUENCE { + // SEQUENCE { + // SEQUENCE indefinite {} + // } + // SEQUENCE {} + // } + static const uint8_t kWrappedIndefBER[] = {0x30, 0x08, 0x30, 0x04, 0x30, + 0x80, 0x00, 0x00, 0x30, 0x00}; + static const uint8_t kWrappedIndefDER[] = {0x30, 0x06, 0x30, 0x02, + 0x30, 0x00, 0x30, 0x00}; + + // kWrappedConstructedStringBER contains a constructed OCTET STRING, wrapped + // and followed by valid DER. This tests that we correctly identify BER nested + // inside DER. + // + // SEQUENCE { + // SEQUENCE { + // [OCTET_STRING CONSTRUCTED] { + // OCTET_STRING {} + // } + // } + // SEQUENCE {} + // } + static const uint8_t kWrappedConstructedStringBER[] = { + 0x30, 0x08, 0x30, 0x04, 0x24, 0x02, 0x04, 0x00, 0x30, 0x00}; + static const uint8_t kWrappedConstructedStringDER[] = { + 0x30, 0x06, 0x30, 0x02, 0x04, 0x00, 0x30, 0x00}; + // kConstructedBitString contains a BER constructed BIT STRING. These are not // supported and thus are left unchanged. static const uint8_t kConstructedBitStringBER[] = { @@ -695,6 +727,25 @@ TEST(CBSTest, BerConvert) { kConstructedStringBER); ExpectBerConvert("kConstructedBitStringBER", kConstructedBitStringBER, kConstructedBitStringBER); + ExpectBerConvert("kWrappedIndefBER", kWrappedIndefDER, kWrappedIndefBER); + ExpectBerConvert("kWrappedConstructedStringBER", kWrappedConstructedStringDER, + kWrappedConstructedStringBER); + + // indef_overflow is 200 levels deep of an indefinite-length-encoded SEQUENCE. + // This will exceed our recursion limits and fail to be converted. + std::vector indef_overflow; + for (int i = 0; i < 200; i++) { + indef_overflow.push_back(0x30); + indef_overflow.push_back(0x80); + } + for (int i = 0; i < 200; i++) { + indef_overflow.push_back(0x00); + indef_overflow.push_back(0x00); + } + CBS in, out; + CBS_init(&in, indef_overflow.data(), indef_overflow.size()); + uint8_t *storage; + ASSERT_FALSE(CBS_asn1_ber_to_der(&in, &out, &storage)); } struct BERTest { diff --git a/crypto/chacha/asm/chacha-x86_64.pl b/crypto/chacha/asm/chacha-x86_64.pl index 3cbf10e634..4da5ec9cab 100755 --- a/crypto/chacha/asm/chacha-x86_64.pl +++ b/crypto/chacha/asm/chacha-x86_64.pl @@ -80,8 +80,6 @@ $code.=<<___; .text -.extern OPENSSL_ia32cap_P - .section .rodata .align 64 .Lzero: @@ -230,23 +228,12 @@ sub ROUND { # critical path is 24 cycles per round ######################################################################## # Generic code path that handles all lengths on pre-SSSE3 processors. $code.=<<___; -.globl ChaCha20_ctr32 -.type ChaCha20_ctr32,\@function,5 +.globl ChaCha20_ctr32_nohw +.type ChaCha20_ctr32_nohw,\@function,5 .align 64 -ChaCha20_ctr32: +ChaCha20_ctr32_nohw: .cfi_startproc - cmp \$0,$len - je .Lno_data - mov OPENSSL_ia32cap_P+4(%rip),%r10 -___ -$code.=<<___ if ($avx>2); - bt \$48,%r10 # check for AVX512F - jc .LChaCha20_avx512 -___ -$code.=<<___; - test \$`1<<(41-32)`,%r10d - jnz .LChaCha20_ssse3 - + _CET_ENDBR push %rbx .cfi_push rbx push %rbp @@ -418,7 +405,7 @@ sub ROUND { # critical path is 24 cycles per round .Lno_data: ret .cfi_endproc -.size ChaCha20_ctr32,.-ChaCha20_ctr32 +.size ChaCha20_ctr32_nohw,.-ChaCha20_ctr32_nohw ___ ######################################################################## @@ -453,19 +440,16 @@ sub SSSE3ROUND { # critical path is 20 "SIMD ticks" per round my $xframe = $win64 ? 32+8 : 8; $code.=<<___; -.type ChaCha20_ssse3,\@function,5 +.globl ChaCha20_ctr32_ssse3 +.type ChaCha20_ctr32_ssse3,\@function,5 .align 32 -ChaCha20_ssse3: -.LChaCha20_ssse3: +ChaCha20_ctr32_ssse3: .cfi_startproc + _CET_ENDBR mov %rsp,%r9 # frame pointer .cfi_def_cfa_register r9 ___ $code.=<<___; - cmp \$128,$len # we might throw away some data, - ja .LChaCha20_4x # but overall it won't be slower - -.Ldo_sse3_after_all: sub \$64+$xframe,%rsp ___ $code.=<<___ if ($win64); @@ -575,7 +559,7 @@ sub SSSE3ROUND { # critical path is 20 "SIMD ticks" per round .Lssse3_epilogue: ret .cfi_endproc -.size ChaCha20_ssse3,.-ChaCha20_ssse3 +.size ChaCha20_ctr32_ssse3,.-ChaCha20_ctr32_ssse3 ___ } @@ -713,29 +697,17 @@ sub SSSE3_lane_ROUND { my $xframe = $win64 ? 0xa8 : 8; $code.=<<___; -.type ChaCha20_4x,\@function,5 +.globl ChaCha20_ctr32_ssse3_4x +.type ChaCha20_ctr32_ssse3_4x,\@function,5 .align 32 -ChaCha20_4x: -.LChaCha20_4x: +ChaCha20_ctr32_ssse3_4x: .cfi_startproc + _CET_ENDBR mov %rsp,%r9 # frame pointer .cfi_def_cfa_register r9 mov %r10,%r11 ___ -$code.=<<___ if ($avx>1); - shr \$32,%r10 # OPENSSL_ia32cap_P+8 - test \$`1<<5`,%r10 # test AVX2 - jnz .LChaCha20_8x -___ $code.=<<___; - cmp \$192,$len - ja .Lproceed4x - - and \$`1<<26|1<<22`,%r11 # isolate XSAVE+MOVBE - cmp \$`1<<22`,%r11 # check for MOVBE without XSAVE - je .Ldo_sse3_after_all # to detect Atom - -.Lproceed4x: sub \$0x140+$xframe,%rsp ___ ################ stack layout @@ -1163,7 +1135,7 @@ sub SSSE3_lane_ROUND { .L4x_epilogue: ret .cfi_endproc -.size ChaCha20_4x,.-ChaCha20_4x +.size ChaCha20_ctr32_ssse3_4x,.-ChaCha20_ctr32_ssse3_4x ___ } @@ -1292,11 +1264,12 @@ sub AVX2_lane_ROUND { my $xframe = $win64 ? 0xa8 : 8; $code.=<<___; -.type ChaCha20_8x,\@function,5 +.globl ChaCha20_ctr32_avx2 +.type ChaCha20_ctr32_avx2,\@function,5 .align 32 -ChaCha20_8x: -.LChaCha20_8x: +ChaCha20_ctr32_avx2: .cfi_startproc + _CET_ENDBR mov %rsp,%r9 # frame register .cfi_def_cfa_register r9 sub \$0x280+$xframe,%rsp @@ -1808,7 +1781,7 @@ sub AVX2_lane_ROUND { .L8x_epilogue: ret .cfi_endproc -.size ChaCha20_8x,.-ChaCha20_8x +.size ChaCha20_ctr32_avx2,.-ChaCha20_ctr32_avx2 ___ } @@ -2718,22 +2691,22 @@ sub AVX512_lane_ROUND { .section .pdata .align 4 - .rva .LSEH_begin_ChaCha20_ctr32 - .rva .LSEH_end_ChaCha20_ctr32 - .rva .LSEH_info_ChaCha20_ctr32 + .rva .LSEH_begin_ChaCha20_ctr32_nohw + .rva .LSEH_end_ChaCha20_ctr32_nohw + .rva .LSEH_info_ChaCha20_ctr32_nohw - .rva .LSEH_begin_ChaCha20_ssse3 - .rva .LSEH_end_ChaCha20_ssse3 - .rva .LSEH_info_ChaCha20_ssse3 + .rva .LSEH_begin_ChaCha20_ctr32_ssse3 + .rva .LSEH_end_ChaCha20_ctr32_ssse3 + .rva .LSEH_info_ChaCha20_ctr32_ssse3 - .rva .LSEH_begin_ChaCha20_4x - .rva .LSEH_end_ChaCha20_4x - .rva .LSEH_info_ChaCha20_4x + .rva .LSEH_begin_ChaCha20_ctr32_ssse3_4x + .rva .LSEH_end_ChaCha20_ctr32_ssse3_4x + .rva .LSEH_info_ChaCha20_ctr32_ssse3_4x ___ $code.=<<___ if ($avx>1); - .rva .LSEH_begin_ChaCha20_8x - .rva .LSEH_end_ChaCha20_8x - .rva .LSEH_info_ChaCha20_8x + .rva .LSEH_begin_ChaCha20_ctr32_avx2 + .rva .LSEH_end_ChaCha20_ctr32_avx2 + .rva .LSEH_info_ChaCha20_ctr32_avx2 ___ $code.=<<___ if ($avx>2); .rva .LSEH_begin_ChaCha20_avx512 @@ -2747,22 +2720,22 @@ sub AVX512_lane_ROUND { $code.=<<___; .section .xdata .align 8 -.LSEH_info_ChaCha20_ctr32: +.LSEH_info_ChaCha20_ctr32_nohw: .byte 9,0,0,0 .rva se_handler -.LSEH_info_ChaCha20_ssse3: +.LSEH_info_ChaCha20_ctr32_ssse3: .byte 9,0,0,0 .rva ssse3_handler .rva .Lssse3_body,.Lssse3_epilogue -.LSEH_info_ChaCha20_4x: +.LSEH_info_ChaCha20_ctr32_ssse3_4x: .byte 9,0,0,0 .rva full_handler .rva .L4x_body,.L4x_epilogue ___ $code.=<<___ if ($avx>1); -.LSEH_info_ChaCha20_8x: +.LSEH_info_ChaCha20_ctr32_avx2: .byte 9,0,0,0 .rva full_handler .rva .L8x_body,.L8x_epilogue # HandlerData[] diff --git a/crypto/chacha/chacha.c b/crypto/chacha/chacha.c index 8a6dbfb60c..8772729527 100644 --- a/crypto/chacha/chacha.c +++ b/crypto/chacha/chacha.c @@ -91,6 +91,24 @@ static void ChaCha20_ctr32(uint8_t *out, const uint8_t *in, size_t in_len, ChaCha20_ctr32_neon(out, in, in_len, key, counter); return; } +#endif +#if defined(CHACHA20_ASM_AVX2) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX) + if (ChaCha20_ctr32_avx2_capable(in_len)) { + ChaCha20_ctr32_avx2(out, in, in_len, key, counter); + return; + } +#endif +#if defined(CHACHA20_ASM_SSSE3_4X) + if (ChaCha20_ctr32_ssse3_4x_capable(in_len)) { + ChaCha20_ctr32_ssse3_4x(out, in, in_len, key, counter); + return; + } +#endif +#if defined(CHACHA20_ASM_SSSE3) + if (ChaCha20_ctr32_ssse3_capable(in_len)) { + ChaCha20_ctr32_ssse3(out, in, in_len, key, counter); + return; + } #endif if (in_len > 0) { ChaCha20_ctr32_nohw(out, in, in_len, key, counter); diff --git a/crypto/chacha/chacha_test.cc b/crypto/chacha/chacha_test.cc index 4e656aa223..ebfd8f8aca 100644 --- a/crypto/chacha/chacha_test.cc +++ b/crypto/chacha/chacha_test.cc @@ -359,6 +359,21 @@ static void check_abi(uint8_t *out, const uint8_t *in, size_t in_len, CHECK_ABI(ChaCha20_ctr32_neon, out, in, in_len, key, counter); } #endif +#if defined(CHACHA20_ASM_AVX2) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX) + if (ChaCha20_ctr32_avx2_capable(in_len)) { + CHECK_ABI(ChaCha20_ctr32_avx2, out, in, in_len, key, counter); + } +#endif +#if defined(CHACHA20_ASM_SSSE3_4X) + if (ChaCha20_ctr32_ssse3_4x_capable(in_len)) { + CHECK_ABI(ChaCha20_ctr32_ssse3_4x, out, in, in_len, key, counter); + } +#endif +#if defined(CHACHA20_ASM_SSSE3) + if (ChaCha20_ctr32_ssse3_capable(in_len)) { + CHECK_ABI(ChaCha20_ctr32_ssse3, out, in, in_len, key, counter); + } +#endif #if defined(CHACHA20_ASM_NOHW) if (in_len > 0) { CHECK_ABI(ChaCha20_ctr32_nohw, out, in, in_len, key, counter); diff --git a/crypto/chacha/internal.h b/crypto/chacha/internal.h index 4c339c6fcd..ce0d08620b 100644 --- a/crypto/chacha/internal.h +++ b/crypto/chacha/internal.h @@ -30,8 +30,7 @@ extern "C" { void CRYPTO_hchacha20(uint8_t out[32], const uint8_t key[32], const uint8_t nonce[16]); -#if !defined(OPENSSL_NO_ASM) && \ - (defined(OPENSSL_X86) || defined(OPENSSL_X86_64)) +#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) #define CHACHA20_ASM @@ -46,6 +45,31 @@ OPENSSL_INLINE int ChaCha20_ctr32_neon_capable(size_t len) { } void ChaCha20_ctr32_neon(uint8_t *out, const uint8_t *in, size_t in_len, const uint32_t key[8], const uint32_t counter[4]); +#elif !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) +#define CHACHA20_ASM_NOHW + +#define CHACHA20_ASM_AVX2 +OPENSSL_INLINE int ChaCha20_ctr32_avx2_capable(size_t len) { + return (len > 128) && CRYPTO_is_AVX2_capable(); +} +void ChaCha20_ctr32_avx2(uint8_t *out, const uint8_t *in, size_t in_len, + const uint32_t key[8], const uint32_t counter[4]); + +#define CHACHA20_ASM_SSSE3_4X +OPENSSL_INLINE int ChaCha20_ctr32_ssse3_4x_capable(size_t len) { + int capable = (len > 128) && CRYPTO_is_SSSE3_capable(); + int faster = (len > 192) || !CRYPTO_cpu_perf_is_like_silvermont(); + return capable && faster; +} +void ChaCha20_ctr32_ssse3_4x(uint8_t *out, const uint8_t *in, size_t in_len, + const uint32_t key[8], const uint32_t counter[4]); + +#define CHACHA20_ASM_SSSE3 +OPENSSL_INLINE int ChaCha20_ctr32_ssse3_capable(size_t len) { + return (len > 128) && CRYPTO_is_SSSE3_capable(); +} +void ChaCha20_ctr32_ssse3(uint8_t *out, const uint8_t *in, size_t in_len, + const uint32_t key[8], const uint32_t counter[4]); #endif #if defined(CHACHA20_ASM) diff --git a/crypto/cipher_extra/aead_test.cc b/crypto/cipher_extra/aead_test.cc index 0648cc2637..8d8cceb0c3 100644 --- a/crypto/cipher_extra/aead_test.cc +++ b/crypto/cipher_extra/aead_test.cc @@ -1364,6 +1364,44 @@ TEST(AEADTest, TestGCMSIV256Change16Alignment) { free(encrypt_ctx_256); } +TEST(AEADTest, TestMonotonicityCheck) { + + static const uint8_t kEvpAeadCtxKey[32] = {0}; + + // Only the tls13() ciphers have monotonicity checks + const EVP_AEAD *aeads_to_test[] = { EVP_aead_aes_128_gcm_tls13(), EVP_aead_aes_256_gcm_tls13() }; + + for (const EVP_AEAD *cipher : aeads_to_test) { + bssl::ScopedEVP_AEAD_CTX encrypt_ctx; + + ASSERT_TRUE(EVP_AEAD_CTX_init(encrypt_ctx.get(), cipher, kEvpAeadCtxKey, cipher->key_len, 16, NULL)) + << ERR_error_string(ERR_get_error(), NULL); + + uint8_t nonce[12] = {0}; + uint8_t last_byte = sizeof(nonce) - 1; + uint8_t plaintext[16] = {0}; + uint8_t ciphertext[32] = {0}; + size_t out_len = 0; + + // Checks that sequence numbers are allowed to increment by more than one + // as long as monotonicity is preserved. Here the implicit IV is presumed + // to be a zero-filled array. That lets us update the nonce value directly + // with an increasing sequence number. + for (size_t sequence_num = 0; sequence_num <= 255; sequence_num+=10) { + nonce[last_byte] = sequence_num; + ASSERT_TRUE(EVP_AEAD_CTX_seal(encrypt_ctx.get(), ciphertext, &out_len, + sizeof(ciphertext), nonce, sizeof(nonce), plaintext, + sizeof(plaintext), nullptr /* ad */, 0)); + } + + // Attempting to encrypt with a decreased sequence number causes the monotonicity check to fail. + nonce[last_byte] = 0; + ASSERT_FALSE(EVP_AEAD_CTX_seal(encrypt_ctx.get(), ciphertext, &out_len, + sizeof(ciphertext), nonce, sizeof(nonce), plaintext, + sizeof(plaintext), nullptr /* ad */, 0)); + } +} + struct EvpAeadCtxSerdeTestParams { const char *name; const EVP_AEAD *cipher; diff --git a/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl b/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl index cbab44095d..c42b7aa83b 100644 --- a/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl +++ b/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl @@ -140,6 +140,7 @@ sub aesgcmsiv_htable_init { .align 16 aesgcmsiv_htable_init: .cfi_startproc + _CET_ENDBR vmovdqa ($H), $T vmovdqa $T, $TMP0 vmovdqa $T, ($Htbl) # H @@ -180,6 +181,7 @@ sub aesgcmsiv_htable6_init { .align 16 aesgcmsiv_htable6_init: .cfi_startproc + _CET_ENDBR vmovdqa ($H), $T vmovdqa $T, $TMP0 vmovdqa $T, ($Htbl) # H @@ -241,6 +243,7 @@ sub aesgcmsiv_htable_polyval { .align 16 aesgcmsiv_htable_polyval: .cfi_startproc + _CET_ENDBR test $len, $len jnz .Lhtable_polyval_start ret @@ -426,6 +429,7 @@ sub aesgcmsiv_polyval_horner { .align 16 aesgcmsiv_polyval_horner: .cfi_startproc + _CET_ENDBR test $L, $L jnz .Lpolyval_horner_start ret @@ -466,6 +470,7 @@ sub aesgcmsiv_polyval_horner { .align 16 aes128gcmsiv_aes_ks: .cfi_startproc + _CET_ENDBR vmovdqu (%rdi), %xmm1 # xmm1 = user key vmovdqa %xmm1, (%rsi) # rsi points to output @@ -527,6 +532,7 @@ sub aesgcmsiv_polyval_horner { .align 16 aes256gcmsiv_aes_ks: .cfi_startproc + _CET_ENDBR vmovdqu (%rdi), %xmm1 vmovdqu 16(%rdi), %xmm3 vmovdqa %xmm1, (%rsi) @@ -620,6 +626,7 @@ sub aes128gcmsiv_aes_ks_enc_x1 { .align 16 aes128gcmsiv_aes_ks_enc_x1: .cfi_startproc + _CET_ENDBR vmovdqa (%rcx), %xmm1 # xmm1 = first 16 bytes of random key vmovdqa 0*16(%rdi), $BLOCK1 @@ -693,6 +700,7 @@ sub aes128gcmsiv_kdf { .align 16 aes128gcmsiv_kdf: .cfi_startproc + _CET_ENDBR # parameter 1: %rdi Pointer to NONCE # parameter 2: %rsi Pointer to CT # parameter 4: %rdx Pointer to keys @@ -793,6 +801,7 @@ sub aes128gcmsiv_enc_msg_x4 { .align 16 aes128gcmsiv_enc_msg_x4: .cfi_startproc + _CET_ENDBR test $LEN, $LEN jnz .L128_enc_msg_x4_start ret @@ -990,6 +999,7 @@ sub aes128gcmsiv_enc_msg_x8 { .align 16 aes128gcmsiv_enc_msg_x8: .cfi_startproc + _CET_ENDBR test $LEN, $LEN jnz .L128_enc_msg_x8_start ret @@ -1245,6 +1255,7 @@ sub aesgcmsiv_dec { $code.=<<___; .cfi_startproc + _CET_ENDBR test \$~15, $LEN jnz .L${labelPrefix}_dec_start ret @@ -1252,14 +1263,15 @@ sub aesgcmsiv_dec { .L${labelPrefix}_dec_start: vzeroupper vmovdqa ($POL), $T + # The claimed tag is provided after the current calculated tag value. + # CTRBLKs is made from it. + vmovdqu 16($POL), $CTR + vpor OR_MASK(%rip), $CTR, $CTR # CTR = [1]TAG[126...32][00..00] movq $POL, $secureBuffer leaq 32($secureBuffer), $secureBuffer leaq 32($Htbl), $Htbl - # make CTRBLKs from given tag. - vmovdqu ($CT,$LEN), $CTR - vpor OR_MASK(%rip), $CTR, $CTR # CTR = [1]TAG[126...32][00..00] andq \$~15, $LEN # If less then 6 blocks, make singles @@ -1584,6 +1596,7 @@ sub aes128gcmsiv_ecb_enc_block { .align 16 aes128gcmsiv_ecb_enc_block: .cfi_startproc + _CET_ENDBR vmovdqa (%rdi), $STATE_1 vpxor ($KSp), $STATE_1, $STATE_1 @@ -1676,6 +1689,7 @@ sub aes256gcmsiv_aes_ks_enc_x1 { .align 16 aes256gcmsiv_aes_ks_enc_x1: .cfi_startproc + _CET_ENDBR vmovdqa con1(%rip), $CON_MASK # CON_MASK = 1,1,1,1 vmovdqa mask(%rip), $MASK_256 # MASK_256 vmovdqa ($PT), $BLOCK1 @@ -1717,6 +1731,7 @@ sub aes256gcmsiv_ecb_enc_block { .align 16 aes256gcmsiv_ecb_enc_block: .cfi_startproc + _CET_ENDBR vmovdqa (%rdi), $STATE_1 vpxor ($KSp), $STATE_1, $STATE_1 vaesenc 1*16($KSp), $STATE_1, $STATE_1 @@ -1800,6 +1815,7 @@ sub aes256gcmsiv_enc_msg_x4 { .align 16 aes256gcmsiv_enc_msg_x4: .cfi_startproc + _CET_ENDBR test $LEN, $LEN jnz .L256_enc_msg_x4_start ret @@ -2000,6 +2016,7 @@ () .align 16 aes256gcmsiv_enc_msg_x8: .cfi_startproc + _CET_ENDBR test $LEN, $LEN jnz .L256_enc_msg_x8_start ret @@ -2206,6 +2223,7 @@ sub aes256gcmsiv_kdf { .align 16 aes256gcmsiv_kdf: .cfi_startproc + _CET_ENDBR # parameter 1: %rdi Pointer to NONCE # parameter 2: %rsi Pointer to CT # parameter 4: %rdx Pointer to keys diff --git a/crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl b/crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl index a533e2a1e9..cd99f94c2d 100644 --- a/crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl +++ b/crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl @@ -453,6 +453,7 @@ sub emit_body { .align 64 chacha20_poly1305_open: .cfi_startproc + _CET_ENDBR push %rbp .cfi_push %rbp push %rbx @@ -875,6 +876,7 @@ sub emit_body { .align 64 chacha20_poly1305_seal: .cfi_startproc + _CET_ENDBR push %rbp .cfi_push %rbp push %rbx diff --git a/crypto/cipher_extra/cipher_extra.c b/crypto/cipher_extra/cipher_extra.c index f9a7e10cdb..804a345594 100644 --- a/crypto/cipher_extra/cipher_extra.c +++ b/crypto/cipher_extra/cipher_extra.c @@ -87,6 +87,7 @@ static const struct { {NID_aes_256_ecb, "aes-256-ecb", EVP_aes_256_ecb}, {NID_aes_256_gcm, "aes-256-gcm", EVP_aes_256_gcm}, {NID_aes_256_ofb128, "aes-256-ofb", EVP_aes_256_ofb}, + {NID_aes_256_xts, "aes-256-xts", EVP_aes_256_xts}, {NID_chacha20_poly1305, "chacha20-poly1305", EVP_chacha20_poly1305}, {NID_des_cbc, "des-cbc", EVP_des_cbc}, {NID_des_ecb, "des-ecb", EVP_des_ecb}, diff --git a/crypto/cipher_extra/e_aesgcmsiv.c b/crypto/cipher_extra/e_aesgcmsiv.c index 00d7972279..1be9b15a02 100644 --- a/crypto/cipher_extra/e_aesgcmsiv.c +++ b/crypto/cipher_extra/e_aesgcmsiv.c @@ -135,16 +135,16 @@ extern void aesgcmsiv_htable_polyval(const uint8_t htable[16 * 8], uint8_t in_out_poly[16]); // aes128gcmsiv_dec decrypts |in_len| & ~15 bytes from |out| and writes them to -// |in|. (The full value of |in_len| is still used to find the authentication -// tag appended to the ciphertext, however, so must not be pre-masked.) +// |in|. |in| and |out| may be equal, but must not otherwise alias. // -// |in| and |out| may be equal, but must not otherwise overlap. +// |in_out_calculated_tag_and_scratch|, on entry, must contain: +// 1. The current value of the calculated tag, which will be updated during +// decryption and written back to the beginning of this buffer on exit. +// 2. The claimed tag, which is needed to derive counter values. // -// While decrypting, it updates the POLYVAL value found at the beginning of -// |in_out_calculated_tag_and_scratch| and writes the updated value back before -// return. During executation, it may use the whole of this space for other -// purposes. In order to decrypt and update the POLYVAL value, it uses the -// expanded key from |key| and the table of powers in |htable|. +// While decrypting, the whole of |in_out_calculated_tag_and_scratch| may be +// used for other purposes. In order to decrypt and update the POLYVAL value, it +// uses the expanded key from |key| and the table of powers in |htable|. extern void aes128gcmsiv_dec(const uint8_t *in, uint8_t *out, uint8_t in_out_calculated_tag_and_scratch[16 * 8], const uint8_t htable[16 * 6], @@ -405,14 +405,10 @@ static int aead_aes_gcm_siv_asm_seal_scatter( return 1; } -// TODO(martinkr): Add aead_aes_gcm_siv_asm_open_gather. N.B. aes128gcmsiv_dec -// expects ciphertext and tag in a contiguous buffer. - -static int aead_aes_gcm_siv_asm_open(const EVP_AEAD_CTX *ctx, uint8_t *out, - size_t *out_len, size_t max_out_len, - const uint8_t *nonce, size_t nonce_len, - const uint8_t *in, size_t in_len, - const uint8_t *ad, size_t ad_len) { +static int aead_aes_gcm_siv_asm_open_gather( + const EVP_AEAD_CTX *ctx, uint8_t *out, const uint8_t *nonce, + size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *in_tag, + size_t in_tag_len, const uint8_t *ad, size_t ad_len) { const uint64_t ad_len_64 = ad_len; if (ad_len_64 >= (UINT64_C(1) << 61)) { OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_TOO_LARGE); @@ -420,8 +416,8 @@ static int aead_aes_gcm_siv_asm_open(const EVP_AEAD_CTX *ctx, uint8_t *out, } const uint64_t in_len_64 = in_len; - if (in_len < EVP_AEAD_AES_GCM_SIV_TAG_LEN || - in_len_64 > (UINT64_C(1) << 36) + AES_BLOCK_SIZE) { + if (in_len_64 > UINT64_C(1) << 36 || + in_tag_len != EVP_AEAD_AES_GCM_SIV_TAG_LEN) { OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BAD_DECRYPT); return 0; } @@ -436,13 +432,6 @@ static int aead_aes_gcm_siv_asm_open(const EVP_AEAD_CTX *ctx, uint8_t *out, OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_ALIGNMENT_CHANGED); return 0; } - const size_t plaintext_len = in_len - EVP_AEAD_AES_GCM_SIV_TAG_LEN; - const uint8_t *const given_tag = in + plaintext_len; - - if (max_out_len < plaintext_len) { - OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BUFFER_TOO_SMALL); - return 0; - } alignas(16) uint64_t record_auth_key[2]; alignas(16) uint64_t record_enc_key[4]; @@ -475,27 +464,27 @@ static int aead_aes_gcm_siv_asm_open(const EVP_AEAD_CTX *ctx, uint8_t *out, alignas(16) uint8_t htable[16 * 6]; aesgcmsiv_htable6_init(htable, (const uint8_t *)record_auth_key); + // aes[128|256]gcmsiv_dec needs access to the claimed tag. So it's put into + // its scratch space. + memcpy(calculated_tag + 16, in_tag, EVP_AEAD_AES_GCM_SIV_TAG_LEN); if (gcm_siv_ctx->is_128_bit) { - aes128gcmsiv_dec(in, out, calculated_tag, htable, &expanded_key, - plaintext_len); + aes128gcmsiv_dec(in, out, calculated_tag, htable, &expanded_key, in_len); } else { - aes256gcmsiv_dec(in, out, calculated_tag, htable, &expanded_key, - plaintext_len); + aes256gcmsiv_dec(in, out, calculated_tag, htable, &expanded_key, in_len); } - if (plaintext_len & 15) { + if (in_len & 15) { aead_aes_gcm_siv_asm_crypt_last_block(gcm_siv_ctx->is_128_bit, out, in, - plaintext_len, given_tag, - &expanded_key); + in_len, in_tag, &expanded_key); OPENSSL_memset(scratch, 0, sizeof(scratch)); - OPENSSL_memcpy(scratch, out + (plaintext_len & ~15), plaintext_len & 15); + OPENSSL_memcpy(scratch, out + (in_len & ~15), in_len & 15); aesgcmsiv_polyval_horner(calculated_tag, (const uint8_t *)record_auth_key, scratch, 1); } uint8_t length_block[16]; CRYPTO_store_u64_le(length_block, ad_len * 8); - CRYPTO_store_u64_le(length_block + 8, plaintext_len * 8); + CRYPTO_store_u64_le(length_block + 8, in_len * 8); aesgcmsiv_polyval_horner(calculated_tag, (const uint8_t *)record_auth_key, length_block, 1); @@ -511,13 +500,12 @@ static int aead_aes_gcm_siv_asm_open(const EVP_AEAD_CTX *ctx, uint8_t *out, aes256gcmsiv_ecb_enc_block(calculated_tag, calculated_tag, &expanded_key); } - if (CRYPTO_memcmp(calculated_tag, given_tag, EVP_AEAD_AES_GCM_SIV_TAG_LEN) != + if (CRYPTO_memcmp(calculated_tag, in_tag, EVP_AEAD_AES_GCM_SIV_TAG_LEN) != 0) { OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BAD_DECRYPT); return 0; } - *out_len = in_len - EVP_AEAD_AES_GCM_SIV_TAG_LEN; return 1; } @@ -532,9 +520,9 @@ static const EVP_AEAD aead_aes_128_gcm_siv_asm = { aead_aes_gcm_siv_asm_init, NULL /* init_with_direction */, aead_aes_gcm_siv_asm_cleanup, - aead_aes_gcm_siv_asm_open, + NULL /* open */, aead_aes_gcm_siv_asm_seal_scatter, - NULL /* open_gather */, + aead_aes_gcm_siv_asm_open_gather, NULL /* get_iv */, NULL /* tag_len */, NULL /* serialize_state */, @@ -552,9 +540,9 @@ static const EVP_AEAD aead_aes_256_gcm_siv_asm = { aead_aes_gcm_siv_asm_init, NULL /* init_with_direction */, aead_aes_gcm_siv_asm_cleanup, - aead_aes_gcm_siv_asm_open, + NULL /* open */, aead_aes_gcm_siv_asm_seal_scatter, - NULL /* open_gather */, + aead_aes_gcm_siv_asm_open_gather, NULL /* get_iv */, NULL /* tag_len */, NULL /* serialize_state */, @@ -669,8 +657,8 @@ static void gcm_siv_polyval( } uint8_t length_block[16]; - CRYPTO_store_u64_le(length_block, ad_len * 8); - CRYPTO_store_u64_le(length_block + 8, in_len * 8); + CRYPTO_store_u64_le(length_block, ((uint64_t) ad_len) * 8); + CRYPTO_store_u64_le(length_block + 8, ((uint64_t) in_len) * 8); CRYPTO_POLYVAL_update_blocks(&polyval_ctx, length_block, sizeof(length_block)); diff --git a/crypto/conf/conf.c b/crypto/conf/conf.c index 7e049bb303..7a7a3808e5 100644 --- a/crypto/conf/conf.c +++ b/crypto/conf/conf.c @@ -70,48 +70,51 @@ #include "../internal.h" +struct conf_section_st { + char *name; + // values contains non-owning pointers to the values in the section. + STACK_OF(CONF_VALUE) *values; +}; + static const char kDefaultSectionName[] = "default"; +static uint32_t conf_section_hash(const CONF_SECTION *s) { + return OPENSSL_strhash(s->name); +} + +static int conf_section_cmp(const CONF_SECTION *a, const CONF_SECTION *b) { + return strcmp(a->name, b->name); +} + static uint32_t conf_value_hash(const CONF_VALUE *v) { - const uint32_t section_hash = v->section ? OPENSSL_strhash(v->section) : 0; - const uint32_t name_hash = v->name ? OPENSSL_strhash(v->name) : 0; + const uint32_t section_hash = OPENSSL_strhash(v->section); + const uint32_t name_hash = OPENSSL_strhash(v->name); return (section_hash << 2) ^ name_hash; } static int conf_value_cmp(const CONF_VALUE *a, const CONF_VALUE *b) { - int i; - - if (a->section != b->section) { - i = strcmp(a->section, b->section); - if (i) { - return i; - } + int cmp = strcmp(a->section, b->section); + if (cmp != 0) { + return cmp; } - if (a->name != NULL && b->name != NULL) { - return strcmp(a->name, b->name); - } else if (a->name == b->name) { - return 0; - } else { - return (a->name == NULL) ? -1 : 1; - } + return strcmp(a->name, b->name); } CONF *NCONF_new(void *method) { - CONF *conf; - if (method != NULL) { return NULL; } - conf = OPENSSL_malloc(sizeof(CONF)); + CONF *conf = OPENSSL_malloc(sizeof(CONF)); if (conf == NULL) { return NULL; } - conf->data = lh_CONF_VALUE_new(conf_value_hash, conf_value_cmp); - if (conf->data == NULL) { - OPENSSL_free(conf); + conf->sections = lh_CONF_SECTION_new(conf_section_hash, conf_section_cmp); + conf->values = lh_CONF_VALUE_new(conf_value_hash, conf_value_cmp); + if (conf->sections == NULL || conf->values == NULL) { + NCONF_free(conf); return NULL; } @@ -120,69 +123,64 @@ CONF *NCONF_new(void *method) { CONF_VALUE *CONF_VALUE_new(void) { return OPENSSL_zalloc(sizeof(CONF_VALUE)); } -static void value_free_contents(CONF_VALUE *value) { - OPENSSL_free(value->section); - if (value->name) { - OPENSSL_free(value->name); - OPENSSL_free(value->value); - } else { - // TODO(davidben): When |value->name| is NULL, |CONF_VALUE| is actually an - // entirely different structure. This is fragile and confusing. Make a - // proper |CONF_SECTION| type that doesn't require this. - sk_CONF_VALUE_free((STACK_OF(CONF_VALUE) *)value->value); +static void value_free(CONF_VALUE *value) { + if (value == NULL) { + return; } + OPENSSL_free(value->section); + OPENSSL_free(value->name); + OPENSSL_free(value->value); + OPENSSL_free(value); } -static void value_free(CONF_VALUE *value) { - if (value != NULL) { - value_free_contents(value); - OPENSSL_free(value); +static void section_free(CONF_SECTION *section) { + if (section == NULL) { + return; } + OPENSSL_free(section->name); + sk_CONF_VALUE_free(section->values); + OPENSSL_free(section); } static void value_free_arg(CONF_VALUE *value, void *arg) { value_free(value); } +static void section_free_arg(CONF_SECTION *section, void *arg) { + section_free(section); +} + void NCONF_free(CONF *conf) { - if (conf == NULL || conf->data == NULL) { + if (conf == NULL) { return; } - lh_CONF_VALUE_doall_arg(conf->data, value_free_arg, NULL); - lh_CONF_VALUE_free(conf->data); + lh_CONF_SECTION_doall_arg(conf->sections, section_free_arg, NULL); + lh_CONF_SECTION_free(conf->sections); + lh_CONF_VALUE_doall_arg(conf->values, value_free_arg, NULL); + lh_CONF_VALUE_free(conf->values); OPENSSL_free(conf); } -static CONF_VALUE *NCONF_new_section(const CONF *conf, const char *section) { - STACK_OF(CONF_VALUE) *sk = NULL; - int ok = 0; - CONF_VALUE *v = NULL, *old_value; - - sk = sk_CONF_VALUE_new_null(); - v = CONF_VALUE_new(); - if (sk == NULL || v == NULL) { - goto err; +static CONF_SECTION *NCONF_new_section(const CONF *conf, const char *section) { + CONF_SECTION *s = OPENSSL_malloc(sizeof(CONF_SECTION)); + if (!s) { + return NULL; } - v->section = OPENSSL_strdup(section); - if (v->section == NULL) { + s->name = OPENSSL_strdup(section); + s->values = sk_CONF_VALUE_new_null(); + if (s->name == NULL || s->values == NULL) { goto err; } - v->name = NULL; - v->value = (char *)sk; - - if (!lh_CONF_VALUE_insert(conf->data, &old_value, v)) { + CONF_SECTION *old_section; + if (!lh_CONF_SECTION_insert(conf->sections, &old_section, s)) { goto err; } - value_free(old_value); - ok = 1; + section_free(old_section); + return s; err: - if (!ok) { - sk_CONF_VALUE_free(sk); - OPENSSL_free(v); - v = NULL; - } - return v; + section_free(s); + return NULL; } static int str_copy(CONF *conf, char *section, char **pto, char *from) { @@ -254,21 +252,20 @@ static int str_copy(CONF *conf, char *section, char **pto, char *from) { return 0; } -static CONF_VALUE *get_section(const CONF *conf, const char *section) { - CONF_VALUE template; - +static CONF_SECTION *get_section(const CONF *conf, const char *section) { + CONF_SECTION template; OPENSSL_memset(&template, 0, sizeof(template)); - template.section = (char *) section; - return lh_CONF_VALUE_retrieve(conf->data, &template); + template.name = (char *) section; + return lh_CONF_SECTION_retrieve(conf->sections, &template); } const STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf, const char *section) { - const CONF_VALUE *section_value = get_section(conf, section); - if (section_value == NULL) { + const CONF_SECTION *section_obj = get_section(conf, section); + if (section_obj == NULL) { return NULL; } - return (STACK_OF(CONF_VALUE)*) section_value->value; + return section_obj->values; } const char *NCONF_get_string(const CONF *conf, const char *section, @@ -280,30 +277,35 @@ const char *NCONF_get_string(const CONF *conf, const char *section, } OPENSSL_memset(&template, 0, sizeof(template)); - template.section = (char *) section; - template.name = (char *) name; - value = lh_CONF_VALUE_retrieve(conf->data, &template); + template.section = (char *)section; + template.name = (char *)name; + value = lh_CONF_VALUE_retrieve(conf->values, &template); if (value == NULL) { return NULL; } return value->value; } -static int add_string(const CONF *conf, CONF_VALUE *section, +static int add_string(const CONF *conf, CONF_SECTION *section, CONF_VALUE *value) { - STACK_OF(CONF_VALUE) *section_stack = (STACK_OF(CONF_VALUE)*) section->value; - CONF_VALUE *old_value; + value->section = OPENSSL_strdup(section->name); + if (value->section == NULL) { + return 0; + } - value->section = OPENSSL_strdup(section->section); - if (!sk_CONF_VALUE_push(section_stack, value)) { + if (!sk_CONF_VALUE_push(section->values, value)) { return 0; } - if (!lh_CONF_VALUE_insert(conf->data, &old_value, value)) { + CONF_VALUE *old_value; + if (!lh_CONF_VALUE_insert(conf->values, &old_value, value)) { + // Remove |value| from |section->values|, so we do not leave a dangling + // pointer. + sk_CONF_VALUE_pop(section->values); return 0; } if (old_value != NULL) { - (void)sk_CONF_VALUE_delete_ptr(section_stack, old_value); + (void)sk_CONF_VALUE_delete_ptr(section->values, old_value); value_free(old_value); } @@ -388,8 +390,8 @@ int NCONF_load_bio(CONF *conf, BIO *in, long *out_error_line) { int again; long eline = 0; char btmp[DECIMAL_SIZE(eline) + 1]; - CONF_VALUE *v = NULL, *tv; - CONF_VALUE *sv = NULL; + CONF_VALUE *v = NULL; + CONF_SECTION *sv = NULL; char *section = NULL, *buf; char *start, *psection, *pname; @@ -540,6 +542,7 @@ int NCONF_load_bio(CONF *conf, BIO *in, long *out_error_line) { goto err; } + CONF_SECTION *tv; if (strcmp(psection, section) != 0) { if ((tv = get_section(conf, psection)) == NULL) { tv = NCONF_new_section(conf, psection); @@ -569,12 +572,7 @@ int NCONF_load_bio(CONF *conf, BIO *in, long *out_error_line) { } snprintf(btmp, sizeof btmp, "%ld", eline); ERR_add_error_data(2, "line ", btmp); - - if (v != NULL) { - OPENSSL_free(v->name); - OPENSSL_free(v->value); - OPENSSL_free(v); - } + value_free(v); return 0; } diff --git a/crypto/conf/conf_test.cc b/crypto/conf/conf_test.cc index 92e52db5f9..d965f25b7f 100644 --- a/crypto/conf/conf_test.cc +++ b/crypto/conf/conf_test.cc @@ -95,7 +95,8 @@ static void ExpectConfEquals(const CONF *conf, const ConfModel &model) { // There should not be any other values in |conf|. |conf| currently stores // both sections and values in the same map. - EXPECT_EQ(lh_CONF_VALUE_num_items(conf->data), total_values + model.size()); + EXPECT_EQ(lh_CONF_SECTION_num_items(conf->sections), model.size()); + EXPECT_EQ(lh_CONF_VALUE_num_items(conf->values), total_values); } TEST(ConfTest, Parse) { diff --git a/crypto/conf/internal.h b/crypto/conf/internal.h index 04359ad25a..1e39ac4985 100644 --- a/crypto/conf/internal.h +++ b/crypto/conf/internal.h @@ -24,10 +24,14 @@ extern "C" { #endif +typedef struct conf_section_st CONF_SECTION; + +DEFINE_LHASH_OF(CONF_SECTION) DEFINE_LHASH_OF(CONF_VALUE) struct conf_st { - LHASH_OF(CONF_VALUE) *data; + LHASH_OF(CONF_VALUE) *values; + LHASH_OF(CONF_SECTION) *sections; }; // CONF_VALUE_new returns a freshly allocated and zeroed |CONF_VALUE|. diff --git a/crypto/curve25519/curve25519.c b/crypto/curve25519/curve25519.c index 053ccefc92..00578e3dd6 100644 --- a/crypto/curve25519/curve25519.c +++ b/crypto/curve25519/curve25519.c @@ -153,6 +153,8 @@ int ED25519_sign(uint8_t out_sig[ED25519_SIGNATURE_LEN], private_key + ED25519_PRIVATE_KEY_SEED_LEN, message, message_len); #endif + // The signature is computed from the private key, but is public. + CONSTTIME_DECLASSIFY(out_sig, 64); return 1; } @@ -225,6 +227,8 @@ void X25519_public_from_private( #else x25519_public_from_private_nohw(out_public_value, private_key); #endif + // The public key is derived from the private key, but it is public. + CONSTTIME_DECLASSIFY(out_public_value, X25519_PUBLIC_VALUE_LEN); } void X25519_keypair(uint8_t out_public_value[X25519_PUBLIC_VALUE_LEN], diff --git a/crypto/curve25519/internal.h b/crypto/curve25519/internal.h index 91784462f2..6e43c2e09d 100644 --- a/crypto/curve25519/internal.h +++ b/crypto/curve25519/internal.h @@ -26,7 +26,7 @@ extern "C" { // If (1) x86_64 or aarch64, (2) linux or apple, and (3) OPENSSL_NO_ASM is not // set, s2n-bignum path is capable. -#if ((defined(OPENSSL_X86_64) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX)) || \ +#if ((defined(OPENSSL_X86_64) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX)) || \ defined(OPENSSL_AARCH64)) && \ (defined(OPENSSL_LINUX) || defined(OPENSSL_APPLE) || \ defined(OPENSSL_OPENBSD)) && \ diff --git a/crypto/digest_extra/digest_test.cc b/crypto/digest_extra/digest_test.cc index d836a94f16..89b70043f9 100644 --- a/crypto/digest_extra/digest_test.cc +++ b/crypto/digest_extra/digest_test.cc @@ -34,6 +34,7 @@ #include #include +#include "../fipsmodule/md5/internal.h" #include "../fipsmodule/sha/internal.h" #include "../internal.h" #include "../test/test_util.h" @@ -481,3 +482,238 @@ TEST(DigestTest, TransformBlocks) { EXPECT_TRUE(0 == OPENSSL_memcmp(ctx1.h, ctx2.h, sizeof(ctx1.h))); } + +// DIGEST_TEST_InitAndGetStateBasic_Body expands to the body of the various +// InitAndGetStateBasic* tests below. +// Because EXPECT_* outputs the line where the macro is called/expanded, +// we need to add diagnostic information `<< ...` after each EXPECT_* +#define DIGEST_TEST_InitAndGetStateBasic_Body(HASH_NAME, HASH_CTX, \ + HASH_CBLOCK) \ + { \ + const size_t nb_blocks = 10; \ + const size_t block_size = HASH_CBLOCK; \ + uint8_t data[block_size * nb_blocks]; \ + for (size_t i = 0; i < sizeof(data); i++) { \ + data[i] = i * 3; \ + } \ + \ + /* Compute the hash of the data for the baseline */ \ + HASH_CTX ctx1; \ + EXPECT_TRUE(HASH_NAME##_Init(&ctx1)) << "init 1"; \ + EXPECT_TRUE(HASH_NAME##_Update(&ctx1, data, sizeof(data))) << "update 1"; \ + uint8_t hash1[HASH_NAME##_DIGEST_LENGTH]; \ + EXPECT_TRUE(HASH_NAME##_Final(hash1, &ctx1)) << "final 1"; \ + \ + /* Compute it by stopping in the middle, getting the state, and restoring \ + * it */ \ + HASH_CTX ctx2; \ + EXPECT_TRUE(HASH_NAME##_Init(&ctx2)) << "init 2"; \ + EXPECT_TRUE(HASH_NAME##_Update(&ctx2, data, 1)) << "update 2a"; \ + uint8_t state_h[HASH_NAME##_CHAINING_LENGTH]; \ + uint64_t state_n; \ + /* we should not be able to export the state before a full block */ \ + EXPECT_FALSE(HASH_NAME##_get_state(&ctx2, state_h, &state_n)) \ + << "get_state 2a"; \ + /* finish 2 blocks */ \ + EXPECT_TRUE(HASH_NAME##_Update(&ctx2, data + 1, 2 * block_size - 1)) \ + << "update 2b"; \ + /* now we should be able to export the state */ \ + EXPECT_TRUE(HASH_NAME##_get_state(&ctx2, state_h, &state_n)) \ + << "get_state 2b"; \ + /* check that state_n corresponds to 2 blocks */ \ + EXPECT_EQ(2 * block_size * 8, state_n) << "correct state_n"; \ + \ + /* and we continue on a fresh new context */ \ + HASH_CTX ctx3; \ + EXPECT_TRUE(HASH_NAME##_Init_from_state(&ctx3, state_h, state_n)) \ + << "init 3"; \ + EXPECT_TRUE(HASH_NAME##_Update(&ctx3, data + 2 * block_size, \ + (nb_blocks - 2) * block_size)) \ + << "update 3"; \ + uint8_t hash2[HASH_NAME##_DIGEST_LENGTH]; \ + EXPECT_TRUE(HASH_NAME##_Final(hash2, &ctx3)) << "final 3"; \ + \ + /* finally check the resulting hash matches the baseline hash */ \ + EXPECT_EQ(Bytes(hash1), Bytes(hash2)) << "same hash"; \ + \ + /* Check that Init_from_state requires the number of bits to be a \ + * multiple of the block size */ \ + HASH_CTX ctx4; \ + EXPECT_FALSE(HASH_NAME##_Init_from_state(&ctx4, state_h, 1)) \ + << "init 4 n not multiple of block size"; \ + } + + +// DIGEST_TEST_InitAndGetStateLarge_Body expands to the body of the various +// InitAndGetStateLarge* tests below. +// Compared to DIGEST_TEST_InitAndGetStateBasic_Body, it allows testing +// hashing an arbitrary amount of data. +// Of particular interest is the choice of NB_1000_BLOCKS to be such that +// the number of hash bits n > 2^32: this allows to test an important corner +// case. Indeed, HASH_CTX->Nl can be uint64_t (for SHA-512, SHA-384, +// SHA-512/224, SHA-512/256) or uint32_t (for all other hash functions). In the +// latter case, when n > 2^32 bits, the 32 most significant bits of the 64-bit +// value n are stored in HASH_CTX->Nh. +// Concretely, the test evaluates the hash function over (NB_1000_BLOCKS+2)*1000 +// blocks, exporting the state after NB_1000_BLOCKS * 1000 blocks. +// Because EXPECT_* outputs the line where the macro is called/expanded, we need +// to add diagnostic information `<< ...` after each EXPECT_* +#define DIGEST_TEST_InitAndGetStateLarge_Body(HASH_NAME, HASH_CTX, \ + HASH_CBLOCK, NB_1000_BLOCKS) \ + { \ + const size_t block_size = HASH_CBLOCK; \ + uint8_t data_1000_blocks[block_size * 1000]; \ + for (size_t i = 0; i < sizeof(data_1000_blocks); i++) { \ + data_1000_blocks[i] = i * 3; \ + } \ + \ + /* Compute the hash of the NB_1000_BLOCKS+2 times the data_1000_blocks for \ + * the baseline */ \ + HASH_CTX ctx1; \ + EXPECT_TRUE(HASH_NAME##_Init(&ctx1)) << "init 1"; \ + for (size_t i = 0; i < NB_1000_BLOCKS + 2; i++) { \ + EXPECT_TRUE(HASH_NAME##_Update(&ctx1, data_1000_blocks, \ + sizeof(data_1000_blocks))) \ + << "update 1 - i=" << i; \ + } \ + uint8_t hash1[HASH_NAME##_DIGEST_LENGTH]; \ + EXPECT_TRUE(HASH_NAME##_Final(hash1, &ctx1)) << "final 1"; \ + \ + /* Compute it by stopping after NB_1000_BLOCKS, getting the state, and \ + * restoring it */ \ + HASH_CTX ctx2; \ + EXPECT_TRUE(HASH_NAME##_Init(&ctx2)) << "init 2"; \ + /* Hash NB_1000_BLOCKS blocks minus one single byte */ \ + for (size_t i = 0; i < NB_1000_BLOCKS - 1; i++) { \ + EXPECT_TRUE(HASH_NAME##_Update(&ctx2, data_1000_blocks, \ + sizeof(data_1000_blocks))) \ + << "update 2a - i=" << i; \ + } \ + EXPECT_TRUE(HASH_NAME##_Update(&ctx2, data_1000_blocks, \ + sizeof(data_1000_blocks) - 1)) \ + << "update 2b"; \ + uint8_t state_h[HASH_NAME##_CHAINING_LENGTH]; \ + uint64_t state_n; \ + /* we should not be able to export the state because did not hash a \ + * multiple of blocks (since we skip the last byte) */ \ + EXPECT_FALSE(HASH_NAME##_get_state(&ctx2, state_h, &state_n)) \ + << "get_state 2b"; \ + /* finish the current block, i.e., hash the last byte */ \ + EXPECT_TRUE(HASH_NAME##_Update( \ + &ctx2, data_1000_blocks + sizeof(data_1000_blocks) - 1, 1)) \ + << "update 2c"; \ + /* now we should be able to export the state */ \ + EXPECT_TRUE(HASH_NAME##_get_state(&ctx2, state_h, &state_n)) \ + << "get_state 2c"; \ + /* check that state_n corresponds to NB_1000_BLOCKS blocks */ \ + EXPECT_EQ((uint64_t)(NB_1000_BLOCKS) * sizeof(data_1000_blocks) * 8, \ + state_n) \ + << "correct state_n"; \ + \ + /* and we continue on a fresh new context: \ + * we just need to hash the remaining 2 * 1000 blocks */ \ + HASH_CTX ctx3; \ + EXPECT_TRUE(HASH_NAME##_Init_from_state(&ctx3, state_h, state_n)) \ + << "init 3"; \ + for (size_t i = 0; i < 2; i++) { \ + EXPECT_TRUE(HASH_NAME##_Update(&ctx3, data_1000_blocks, \ + sizeof(data_1000_blocks))) \ + << "update 3 - i=" << i; \ + } \ + uint8_t hash2[HASH_NAME##_DIGEST_LENGTH]; \ + EXPECT_TRUE(HASH_NAME##_Final(hash2, &ctx3)) << "final 3"; \ + \ + /* finally check the resulting hash matches the baseline hash */ \ + EXPECT_EQ(Bytes(hash1), Bytes(hash2)) << "same hash"; \ + } + + +TEST(DigestTest, InitAndGetStateMD5Basic) { + DIGEST_TEST_InitAndGetStateBasic_Body(MD5, MD5_CTX, MD5_CBLOCK); +} + +TEST(DigestTest, InitAndGetStateMD5Large) { + // Hash more than 2^32 bits + DIGEST_TEST_InitAndGetStateLarge_Body( + MD5, MD5_CTX, MD5_CBLOCK, + (((uint64_t)1) << 32) / MD5_CBLOCK / 8 / 1000 + 10); +} + +// Define SHA1_DIGEST_LENGTH to make the macro work... +#define SHA1_DIGEST_LENGTH SHA_DIGEST_LENGTH +TEST(DigestTest, InitAndGetStateSHA1Basic) { + DIGEST_TEST_InitAndGetStateBasic_Body(SHA1, SHA_CTX, SHA_CBLOCK); +} + +TEST(DigestTest, InitAndGetStateSHA1Large) { + // Hash more than 2^32 bits + DIGEST_TEST_InitAndGetStateLarge_Body( + SHA1, SHA_CTX, SHA_CBLOCK, + (((uint64_t)1) << 32) / SHA_CBLOCK / 8 / 1000 + 10); +} + +TEST(DigestTest, InitAndGetStateSHA224Basic) { + DIGEST_TEST_InitAndGetStateBasic_Body(SHA224, SHA256_CTX, SHA256_CBLOCK); +} + +TEST(DigestTest, InitAndGetStateSHA224Large) { + // Hash more than 2^32 bits + DIGEST_TEST_InitAndGetStateLarge_Body( + SHA224, SHA256_CTX, SHA224_CBLOCK, + (((uint64_t)1) << 32) / SHA224_CBLOCK / 8 / 1000 + 10); +} + +TEST(DigestTest, InitAndGetStateSHA256Basic) { + DIGEST_TEST_InitAndGetStateBasic_Body(SHA256, SHA256_CTX, SHA256_CBLOCK); +} + +TEST(DigestTest, InitAndGetStateSHA256Large) { + // Hash more than 2^32 bits + DIGEST_TEST_InitAndGetStateLarge_Body( + SHA256, SHA256_CTX, SHA256_CBLOCK, + (((uint64_t)1) << 32) / SHA256_CBLOCK / 8 / 1000 + 10); +} + +TEST(DigestTest, InitAndGetStateSHA384Basic) { + DIGEST_TEST_InitAndGetStateBasic_Body(SHA384, SHA512_CTX, SHA512_CBLOCK); +} + +TEST(DigestTest, InitAndGetStateSHA384Large) { + // Hash more than 2^32 bits + DIGEST_TEST_InitAndGetStateLarge_Body( + SHA384, SHA512_CTX, SHA384_CBLOCK, + (((uint64_t)1) << 32) / SHA384_CBLOCK / 8 / 1000 + 10); +} + +TEST(DigestTest, InitAndGetStateSHA512Basic) { + DIGEST_TEST_InitAndGetStateBasic_Body(SHA512, SHA512_CTX, SHA512_CBLOCK); +} + +TEST(DigestTest, InitAndGetStateSHA512Large) { + // Hash more than 2^32 bits + DIGEST_TEST_InitAndGetStateLarge_Body( + SHA512, SHA512_CTX, SHA512_CBLOCK, + (((uint64_t)1) << 32) / SHA512_CBLOCK / 8 / 1000 + 10); +} + +TEST(DigestTest, InitAndGetStateSHA512_224Basic) { + DIGEST_TEST_InitAndGetStateBasic_Body(SHA512_224, SHA512_CTX, SHA512_CBLOCK); +} + +TEST(DigestTest, InitAndGetStateSHA512_224Large) { + // Hash more than 2^32 bits + DIGEST_TEST_InitAndGetStateLarge_Body( + SHA512_224, SHA512_CTX, SHA512_CBLOCK, + (((uint64_t)1) << 32) / SHA512_CBLOCK / 8 / 1000 + 10); +} + +TEST(DigestTest, InitAndGetStateSHA512_256) { + DIGEST_TEST_InitAndGetStateBasic_Body(SHA512_256, SHA512_CTX, SHA512_CBLOCK); +} + +TEST(DigestTest, InitAndGetStateSHA512_256Large) { + // Hash more than 2^32 bits + DIGEST_TEST_InitAndGetStateLarge_Body( + SHA512_256, SHA512_CTX, SHA512_CBLOCK, + (((uint64_t)1) << 32) / SHA512_CBLOCK / 8 / 1000 + 10); +} diff --git a/crypto/ec_extra/ec_asn1.c b/crypto/ec_extra/ec_asn1.c index 55737945de..c01aaa08d2 100644 --- a/crypto/ec_extra/ec_asn1.c +++ b/crypto/ec_extra/ec_asn1.c @@ -62,8 +62,8 @@ #include #include -#include "../fipsmodule/ec/internal.h" #include "../bytestring/internal.h" +#include "../fipsmodule/ec/internal.h" #include "../internal.h" @@ -484,9 +484,7 @@ EC_KEY *d2i_ECParameters(EC_KEY **out_key, const uint8_t **inp, long len) { return NULL; } - CBS cbs; - CBS_init(&cbs, *inp, (size_t)len); - const EC_GROUP *group = EC_KEY_parse_parameters(&cbs); + EC_GROUP *group = d2i_ECPKParameters(NULL, inp, len); if (group == NULL) { return NULL; } @@ -501,19 +499,47 @@ EC_KEY *d2i_ECParameters(EC_KEY **out_key, const uint8_t **inp, long len) { EC_KEY_free(*out_key); *out_key = ret; } - *inp = CBS_data(&cbs); return ret; } +EC_GROUP *d2i_ECPKParameters(EC_GROUP **out_group, const uint8_t **inp, + long len) { + if (inp == NULL || len < 0) { + return NULL; + } + + CBS cbs; + CBS_init(&cbs, *inp, (size_t)len); + EC_GROUP *group = EC_KEY_parse_parameters(&cbs); + if (group == NULL) { + return NULL; + } + + if (out_group != NULL) { + EC_GROUP_free(*out_group); + *out_group = group; + } + *inp = CBS_data(&cbs); + return group; +} + int i2d_ECParameters(const EC_KEY *key, uint8_t **outp) { if (key == NULL || key->group == NULL) { OPENSSL_PUT_ERROR(EC, ERR_R_PASSED_NULL_PARAMETER); return -1; } + return i2d_ECPKParameters(key->group, outp); +} + +int i2d_ECPKParameters(const EC_GROUP *group, uint8_t **outp) { + if (group == NULL) { + OPENSSL_PUT_ERROR(EC, ERR_R_PASSED_NULL_PARAMETER); + return -1; + } + CBB cbb; - if (!CBB_init(&cbb, 0) || - !EC_KEY_marshal_curve_name(&cbb, key->group)) { + if (!CBB_init(&cbb, 0) || !EC_KEY_marshal_curve_name(&cbb, group)) { CBB_cleanup(&cbb); return -1; } @@ -614,3 +640,56 @@ BIGNUM *EC_POINT_point2bn(const EC_GROUP *group, const EC_POINT *point, return ret; } + +EC_POINT *EC_POINT_bn2point(const EC_GROUP *group, const BIGNUM *bn, + EC_POINT *point, BN_CTX *ctx) { + if (group == NULL || bn == NULL) { + OPENSSL_PUT_ERROR(EC, ERR_R_PASSED_NULL_PARAMETER); + return NULL; + } + + // Allocate buffer and length. + size_t buf_len = BN_num_bytes(bn); + if (buf_len == 0) { + // See https://github.com/openssl/openssl/issues/10258. + buf_len = 1; + } + uint8_t *buf = OPENSSL_malloc(buf_len); + if (buf == NULL) { + return NULL; + } + + if (BN_bn2bin_padded(buf, buf_len, bn) < 0) { + OPENSSL_free(buf); + return NULL; + } + + // Use the user-provided |point| if there is one. Otherwise, we allocate a new + // |EC_POINT| if |point| is NULL. + EC_POINT *ret; + if (point != NULL) { + ret = point; + } else { + ret = EC_POINT_new(group); + if (ret == NULL) { + OPENSSL_free(buf); + return NULL; + } + } + + if (!EC_POINT_oct2point(group, ret, buf, buf_len, ctx)) { + if (ret != point) { + // If the user did not provide a |point|, we free the |EC_POINT| we + // allocated. + EC_POINT_free(ret); + ret = NULL; + } + } + + OPENSSL_free(buf); + return ret; +} + +int ECPKParameters_print(BIO *bio, const EC_GROUP *group, int offset) { + return 1; +} diff --git a/crypto/err/hmac.errordata b/crypto/err/hmac.errordata new file mode 100644 index 0000000000..a2039f8427 --- /dev/null +++ b/crypto/err/hmac.errordata @@ -0,0 +1,4 @@ +HMAC,102,BUFFER_TOO_SMALL +HMAC,100,MISSING_PARAMETERS +HMAC,104,NOT_CALLED_JUST_AFTER_INIT +HMAC,103,SET_PRECOMPUTED_KEY_EXPORT_NOT_CALLED diff --git a/crypto/evp_extra/evp_extra_test.cc b/crypto/evp_extra/evp_extra_test.cc index f32b2c5862..da8df3aa32 100644 --- a/crypto/evp_extra/evp_extra_test.cc +++ b/crypto/evp_extra/evp_extra_test.cc @@ -2073,6 +2073,8 @@ static const struct KnownKEM kKEMs[] = { {"Kyber768r3", NID_KYBER768_R3, 1184, 2400, 1088, 32, 64, 32, "kyber/kat/kyber768r3.txt"}, {"Kyber1024r3", NID_KYBER1024_R3, 1568, 3168, 1568, 32, 64, 32, "kyber/kat/kyber1024r3.txt"}, {"MLKEM512IPD", NID_MLKEM512IPD, 800, 1632, 768, 32, 64, 32, "ml_kem/kat/mlkem512ipd.txt"}, + {"MLKEM768IPD", NID_MLKEM768IPD, 1184, 2400, 1088, 32, 64, 32, "ml_kem/kat/mlkem768ipd.txt"}, + {"MLKEM1024IPD", NID_MLKEM1024IPD, 1568, 3168, 1568, 32, 64, 32, "ml_kem/kat/mlkem1024ipd.txt"}, }; class PerKEMTest : public testing::TestWithParam {}; diff --git a/crypto/fipsmodule/CMakeLists.txt b/crypto/fipsmodule/CMakeLists.txt index 251b9ea85c..220ef5d47b 100644 --- a/crypto/fipsmodule/CMakeLists.txt +++ b/crypto/fipsmodule/CMakeLists.txt @@ -179,7 +179,7 @@ endif() # s2n-bignum files can be compiled on Unix platforms only (except Apple), # and on x86_64 and aarch64 systems only. -if((((ARCH STREQUAL "x86_64") AND NOT MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX) OR +if((((ARCH STREQUAL "x86_64") AND NOT MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX) OR ARCH STREQUAL "aarch64") AND UNIX) # Set the source directory for s2n-bignum assembly files @@ -553,6 +553,11 @@ elseif(FIPS_SHARED) set(BCM_NAME ${BCM_NAME} PARENT_SCOPE) else() + set(BCM_ASM_OBJECTS "") + if (ARCH STREQUAL "aarch64" AND CMAKE_GENERATOR MATCHES "Visual Studio") + msbuild_aarch64_asm(TARGET fipsmodule ASM_FILES ${BCM_ASM_SOURCES} OUTPUT_OBJECTS BCM_ASM_OBJECTS) + endif() + add_library( fipsmodule @@ -563,10 +568,12 @@ else() cpucap/cpucap.c ${BCM_ASM_SOURCES} + ${BCM_ASM_OBJECTS} ) target_compile_definitions(fipsmodule PRIVATE BORINGSSL_IMPLEMENTATION) add_dependencies(fipsmodule boringssl_prefix_symbols) target_include_directories(fipsmodule BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include) target_include_directories(fipsmodule PRIVATE ${PROJECT_SOURCE_DIR}/include) + endif() diff --git a/crypto/fipsmodule/aes/asm/aesni-x86_64.pl b/crypto/fipsmodule/aes/asm/aesni-x86_64.pl index e0da1c75d6..f64dacdec4 100644 --- a/crypto/fipsmodule/aes/asm/aesni-x86_64.pl +++ b/crypto/fipsmodule/aes/asm/aesni-x86_64.pl @@ -278,6 +278,7 @@ sub aesni_generate1 { .align 16 ${PREFIX}_encrypt: .cfi_startproc + _CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit movb \$1,BORINGSSL_function_hit+1(%rip) @@ -300,6 +301,7 @@ sub aesni_generate1 { .align 16 ${PREFIX}_decrypt: .cfi_startproc + _CET_ENDBR movups ($inp),$inout0 # load input mov 240($key),$rounds # key->rounds ___ @@ -620,6 +622,7 @@ sub aesni_generate8 { .align 16 ${PREFIX}_ecb_encrypt: .cfi_startproc + _CET_ENDBR ___ $code.=<<___ if ($win64); lea -0x58(%rsp),%rsp @@ -1206,6 +1209,7 @@ sub aesni_generate8 { .align 16 ${PREFIX}_ctr32_encrypt_blocks: .cfi_startproc + _CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST movb \$1,BORINGSSL_function_hit(%rip) #endif @@ -1784,6 +1788,7 @@ sub aesni_generate8 { .align 16 ${PREFIX}_xts_encrypt: .cfi_startproc + _CET_ENDBR lea (%rsp),%r11 # frame pointer .cfi_def_cfa_register %r11 push %rbp @@ -2267,6 +2272,7 @@ sub aesni_generate8 { .align 16 ${PREFIX}_xts_decrypt: .cfi_startproc + _CET_ENDBR lea (%rsp),%r11 # frame pointer .cfi_def_cfa_register %r11 push %rbp @@ -2785,6 +2791,7 @@ sub aesni_generate8 { .align 16 ${PREFIX}_cbc_encrypt: .cfi_startproc + _CET_ENDBR test $len,$len # check length jz .Lcbc_ret @@ -3334,6 +3341,7 @@ sub aesni_generate8 { .align 16 ${PREFIX}_set_decrypt_key: .cfi_startproc + _CET_ENDBR .byte 0x48,0x83,0xEC,0x08 # sub rsp,8 .cfi_adjust_cfa_offset 8 call __aesni_set_encrypt_key @@ -3406,6 +3414,7 @@ sub aesni_generate8 { ${PREFIX}_set_encrypt_key: __aesni_set_encrypt_key: .cfi_startproc + _CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST movb \$1,BORINGSSL_function_hit+3(%rip) #endif diff --git a/crypto/fipsmodule/aes/asm/aesni-xts-avx512.pl b/crypto/fipsmodule/aes/asm/aesni-xts-avx512.pl index 6628bd38ff..5190c9894c 100644 --- a/crypto/fipsmodule/aes/asm/aesni-xts-avx512.pl +++ b/crypto/fipsmodule/aes/asm/aesni-xts-avx512.pl @@ -1460,7 +1460,10 @@ my $rndsuffix = &random_string(); - $code .= ".text\n"; + $code .= <<___; +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX +.text +___ { $code.=<<___; @@ -3108,6 +3111,7 @@ .byte 0xff, 0xff, 0xff, 0xff, 0xff .text +#endif ___ } else { $code .= <<___; diff --git a/crypto/fipsmodule/aes/asm/vpaes-x86_64.pl b/crypto/fipsmodule/aes/asm/vpaes-x86_64.pl index 50db29c55b..78e546d146 100644 --- a/crypto/fipsmodule/aes/asm/vpaes-x86_64.pl +++ b/crypto/fipsmodule/aes/asm/vpaes-x86_64.pl @@ -874,6 +874,7 @@ .align 16 ${PREFIX}_set_encrypt_key: .cfi_startproc + _CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit movb \$1, BORINGSSL_function_hit+5(%rip) @@ -929,6 +930,7 @@ .align 16 ${PREFIX}_set_decrypt_key: .cfi_startproc + _CET_ENDBR ___ $code.=<<___ if ($win64); lea -0xb8(%rsp),%rsp @@ -984,6 +986,7 @@ .align 16 ${PREFIX}_encrypt: .cfi_startproc + _CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit movb \$1, BORINGSSL_function_hit+4(%rip) @@ -1033,6 +1036,7 @@ .align 16 ${PREFIX}_decrypt: .cfi_startproc + _CET_ENDBR ___ $code.=<<___ if ($win64); lea -0xb8(%rsp),%rsp @@ -1084,6 +1088,7 @@ .align 16 ${PREFIX}_cbc_encrypt: .cfi_startproc + _CET_ENDBR xchg $key,$len ___ ($len,$key)=($key,$len); @@ -1169,6 +1174,7 @@ .align 16 ${PREFIX}_ctr32_encrypt_blocks: .cfi_startproc + _CET_ENDBR # _vpaes_encrypt_core and _vpaes_encrypt_core_2x expect the key in %rdx. xchg $key, $blocks ___ diff --git a/crypto/fipsmodule/bcm.c b/crypto/fipsmodule/bcm.c index 37146b9bfe..50e2a5db96 100644 --- a/crypto/fipsmodule/bcm.c +++ b/crypto/fipsmodule/bcm.c @@ -114,6 +114,7 @@ #include "evp/p_rsa.c" #include "hkdf/hkdf.c" #include "hmac/hmac.c" +#include "kdf/kbkdf.c" #include "kdf/sskdf.c" #include "md4/md4.c" #include "md5/md5.c" diff --git a/crypto/fipsmodule/bn/asm/rsaz-avx2.pl b/crypto/fipsmodule/bn/asm/rsaz-avx2.pl index a3d130eca9..593f6b1ea6 100755 --- a/crypto/fipsmodule/bn/asm/rsaz-avx2.pl +++ b/crypto/fipsmodule/bn/asm/rsaz-avx2.pl @@ -116,6 +116,7 @@ .align 64 rsaz_1024_sqr_avx2: # 702 cycles, 14% faster than rsaz_1024_mul_avx2 .cfi_startproc + _CET_ENDBR lea (%rsp), %rax .cfi_def_cfa_register %rax push %rbx @@ -867,6 +868,7 @@ .align 64 rsaz_1024_mul_avx2: .cfi_startproc + _CET_ENDBR lea (%rsp), %rax .cfi_def_cfa_register %rax push %rbx @@ -1478,6 +1480,7 @@ .align 32 rsaz_1024_red2norm_avx2: .cfi_startproc + _CET_ENDBR sub \$-128,$inp # size optimization xor %rax,%rax ___ @@ -1519,6 +1522,7 @@ .align 32 rsaz_1024_norm2red_avx2: .cfi_startproc + _CET_ENDBR sub \$-128,$out # size optimization mov ($inp),@T[0] mov \$0x1fffffff,%eax @@ -1563,6 +1567,7 @@ .align 32 rsaz_1024_scatter5_avx2: .cfi_startproc + _CET_ENDBR vzeroupper vmovdqu .Lscatter_permd(%rip),%ymm5 shl \$4,$power @@ -1590,6 +1595,7 @@ .align 32 rsaz_1024_gather5_avx2: .cfi_startproc + _CET_ENDBR vzeroupper mov %rsp,%r11 .cfi_def_cfa_register %r11 diff --git a/crypto/fipsmodule/bn/asm/x86_64-mont.pl b/crypto/fipsmodule/bn/asm/x86_64-mont.pl index 3367475b29..7dbc34630a 100755 --- a/crypto/fipsmodule/bn/asm/x86_64-mont.pl +++ b/crypto/fipsmodule/bn/asm/x86_64-mont.pl @@ -67,7 +67,7 @@ # versions, but BoringSSL is intended to be used with pre-generated perlasm # output, so this isn't useful anyway. $addx = 1; -for (@ARGV) { $addx = 0 if (/-DMY_ASSEMBLER_IS_TOO_OLD_FOR_AVX/); } +for (@ARGV) { $addx = 0 if (/-DMY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX/); } # int bn_mul_mont( $rp="%rdi"; # BN_ULONG *rp, @@ -96,6 +96,7 @@ .align 16 bn_mul_mont: .cfi_startproc + _CET_ENDBR mov ${num}d,${num}d mov %rsp,%rax .cfi_def_cfa_register %rax @@ -105,8 +106,10 @@ jb .Lmul_enter ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%r11 mov 8(%r11),%r11d +#endif ___ $code.=<<___; cmp $ap,$bp @@ -367,9 +370,11 @@ .Lmul4x_enter: ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX and \$0x80100,%r11d cmp \$0x80100,%r11d je .Lmulx4x_enter +#endif ___ $code.=<<___; push %rbx @@ -823,7 +828,9 @@ my ($a0,$a1,$ai)=("%r14","%r15","%rbx"); $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .extern bn_sqrx8x_internal # see x86_64-mont5 module +#endif ___ $code.=<<___; .extern bn_sqr8x_internal # see x86_64-mont5 module @@ -911,6 +918,7 @@ movq %r10, %xmm3 # -$num ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%rax mov 8(%rax),%eax and \$0x80100,%eax @@ -931,6 +939,7 @@ .align 32 .Lsqr8x_nox: +#endif ___ $code.=<<___; call bn_sqr8x_internal # see x86_64-mont5 module @@ -1027,6 +1036,7 @@ my $bp="%rdx"; # original value $code.=<<___; +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .type bn_mulx4x_mont,\@function,6 .align 32 bn_mulx4x_mont: @@ -1388,6 +1398,7 @@ ret .cfi_endproc .size bn_mulx4x_mont,.-bn_mulx4x_mont +#endif ___ }}} $code.=<<___; @@ -1551,9 +1562,11 @@ .rva .LSEH_info_bn_sqr8x_mont ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .rva .LSEH_begin_bn_mulx4x_mont .rva .LSEH_end_bn_mulx4x_mont .rva .LSEH_info_bn_mulx4x_mont +#endif ___ $code.=<<___; .section .xdata @@ -1573,11 +1586,13 @@ .align 8 ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .LSEH_info_bn_mulx4x_mont: .byte 9,0,0,0 .rva sqr_handler .rva .Lmulx4x_prologue,.Lmulx4x_body,.Lmulx4x_epilogue # HandlerData[] .align 8 +#endif ___ } diff --git a/crypto/fipsmodule/bn/asm/x86_64-mont5.pl b/crypto/fipsmodule/bn/asm/x86_64-mont5.pl index b3797b36aa..c108f3a13b 100755 --- a/crypto/fipsmodule/bn/asm/x86_64-mont5.pl +++ b/crypto/fipsmodule/bn/asm/x86_64-mont5.pl @@ -52,7 +52,7 @@ # versions, but BoringSSL is intended to be used with pre-generated perlasm # output, so this isn't useful anyway. $addx = 1; -for (@ARGV) { $addx = 0 if (/-DMY_ASSEMBLER_IS_TOO_OLD_FOR_AVX/); } +for (@ARGV) { $addx = 0 if (/-DMY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX/); } # int bn_mul_mont_gather5( $rp="%rdi"; # BN_ULONG *rp, @@ -83,6 +83,7 @@ .align 64 bn_mul_mont_gather5: .cfi_startproc + _CET_ENDBR mov ${num}d,${num}d mov %rsp,%rax .cfi_def_cfa_register %rax @@ -90,8 +91,10 @@ jnz .Lmul_enter ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%r11 mov 8(%r11),%r11d +#endif ___ $code.=<<___; jmp .Lmul4x_enter @@ -473,9 +476,11 @@ .Lmul4x_enter: ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX and \$0x80108,%r11d cmp \$0x80108,%r11d # check for AD*X+BMI2+BMI1 je .Lmulx4x_enter +#endif ___ $code.=<<___; push %rbx @@ -1102,15 +1107,18 @@ .align 32 bn_power5: .cfi_startproc + _CET_ENDBR mov %rsp,%rax .cfi_def_cfa_register %rax ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%r11 mov 8(%r11),%r11d and \$0x80108,%r11d cmp \$0x80108,%r11d # check for AD*X+BMI2+BMI1 je .Lpowerx5_enter +#endif ___ $code.=<<___; push %rbx @@ -1244,6 +1252,7 @@ bn_sqr8x_internal: __bn_sqr8x_internal: .cfi_startproc + _CET_ENDBR ############################################################## # Squaring part: # @@ -2109,6 +2118,7 @@ my $bp="%rdx"; # restore original value $code.=<<___; +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .type bn_mulx4x_mont_gather5,\@function,6 .align 32 bn_mulx4x_mont_gather5: @@ -2741,6 +2751,7 @@ bn_sqrx8x_internal: __bn_sqrx8x_internal: .cfi_startproc + _CET_ENDBR ################################################################## # Squaring part: # @@ -3436,6 +3447,7 @@ ret .cfi_endproc .size __bn_postx4x_internal,.-__bn_postx4x_internal +#endif ___ } }}} @@ -3452,6 +3464,7 @@ .align 16 bn_scatter5: .cfi_startproc + _CET_ENDBR cmp \$0, $num jz .Lscatter_epilogue @@ -3482,6 +3495,7 @@ bn_gather5: .cfi_startproc .LSEH_begin_bn_gather5: # Win64 thing, but harmless in other cases + _CET_ENDBR # I can't trust assembler to use specific encoding:-( .byte 0x4c,0x8d,0x14,0x24 #lea (%rsp),%r10 .cfi_def_cfa_register %r10 @@ -3716,6 +3730,7 @@ .rva .LSEH_info_bn_power5 ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .rva .LSEH_begin_bn_mulx4x_mont_gather5 .rva .LSEH_end_bn_mulx4x_mont_gather5 .rva .LSEH_info_bn_mulx4x_mont_gather5 @@ -3723,6 +3738,7 @@ .rva .LSEH_begin_bn_powerx5 .rva .LSEH_end_bn_powerx5 .rva .LSEH_info_bn_powerx5 +#endif ___ $code.=<<___; .rva .LSEH_begin_bn_gather5 @@ -3747,6 +3763,7 @@ .rva .Lpower5_prologue,.Lpower5_body,.Lpower5_epilogue # HandlerData[] ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .align 8 .LSEH_info_bn_mulx4x_mont_gather5: .byte 9,0,0,0 @@ -3757,6 +3774,7 @@ .byte 9,0,0,0 .rva mul_handler .rva .Lpowerx5_prologue,.Lpowerx5_body,.Lpowerx5_epilogue # HandlerData[] +#endif ___ $code.=<<___; .align 8 diff --git a/crypto/fipsmodule/bn/exponentiation.c b/crypto/fipsmodule/bn/exponentiation.c index bbbeace7eb..28bd51dacd 100644 --- a/crypto/fipsmodule/bn/exponentiation.c +++ b/crypto/fipsmodule/bn/exponentiation.c @@ -945,7 +945,9 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, OPENSSL_PUT_ERROR(BN, BN_R_NEGATIVE_NUMBER); return 0; } - if (a->neg || BN_ucmp(a, m) >= 0) { + // |a| is secret, but it is required to be in range, so these comparisons may + // be leaked. + if (a->neg || constant_time_declassify_int(BN_ucmp(a, m) >= 0)) { OPENSSL_PUT_ERROR(BN, BN_R_INPUT_NOT_REDUCED); return 0; } diff --git a/crypto/fipsmodule/bn/gcd.c b/crypto/fipsmodule/bn/gcd.c index df12569a71..7aa004335e 100644 --- a/crypto/fipsmodule/bn/gcd.c +++ b/crypto/fipsmodule/bn/gcd.c @@ -327,7 +327,10 @@ int BN_mod_inverse_blinded(BIGNUM *out, int *out_no_inverse, const BIGNUM *a, const BN_MONT_CTX *mont, BN_CTX *ctx) { *out_no_inverse = 0; - if (BN_is_negative(a) || BN_cmp(a, &mont->N) >= 0) { + // |a| is secret, but it is required to be in range, so these comparisons may + // be leaked. + if (BN_is_negative(a) || + constant_time_declassify_int(BN_cmp(a, &mont->N) >= 0)) { OPENSSL_PUT_ERROR(BN, BN_R_INPUT_NOT_REDUCED); return 0; } @@ -336,11 +339,29 @@ int BN_mod_inverse_blinded(BIGNUM *out, int *out_no_inverse, const BIGNUM *a, BIGNUM blinding_factor; BN_init(&blinding_factor); - if (!BN_rand_range_ex(&blinding_factor, 1, &mont->N) || - !BN_mod_mul_montgomery(out, &blinding_factor, a, mont, ctx) || - !BN_mod_inverse_odd(out, out_no_inverse, out, &mont->N, ctx) || + // |BN_mod_inverse_odd| is leaky, so generate a secret blinding factor and + // blind |a|. This works because (ar)^-1 * r = a^-1, supposing r is + // invertible. If r is not invertible, this function will fail. However, we + // only use this in RSA, where stumbling on an uninvertible element means + // stumbling on the key's factorization. That is, if this function fails, the + // RSA key was not actually a product of two large primes. + // + // TODO(crbug.com/boringssl/677): When the PRNG output is marked secret by + // default, the explicit |bn_secret| call can be removed. + if (!BN_rand_range_ex(&blinding_factor, 1, &mont->N)) { + goto err; + } + bn_secret(&blinding_factor); + if (!BN_mod_mul_montgomery(out, &blinding_factor, a, mont, ctx)) { + goto err; + } + + // Once blinded, |out| is no longer secret, so it may be passed to a leaky + // mod inverse function. Note |blinding_factor| is secret, so |out| will be + // secret again after multiplying. + bn_declassify(out); + if (!BN_mod_inverse_odd(out, out_no_inverse, out, &mont->N, ctx) || !BN_mod_mul_montgomery(out, &blinding_factor, out, mont, ctx)) { - OPENSSL_PUT_ERROR(BN, ERR_R_BN_LIB); goto err; } diff --git a/crypto/fipsmodule/bn/internal.h b/crypto/fipsmodule/bn/internal.h index bf82d32e9a..a71c553e3b 100644 --- a/crypto/fipsmodule/bn/internal.h +++ b/crypto/fipsmodule/bn/internal.h @@ -149,6 +149,7 @@ extern "C" { #endif #define BN_BITS2 64 +#define BN_BITS2_LG 6 #define BN_BYTES 8 #define BN_BITS4 32 #define BN_MASK2 (0xffffffffffffffffUL) @@ -165,6 +166,7 @@ extern "C" { #define BN_ULLONG uint64_t #define BN_CAN_DIVIDE_ULLONG #define BN_BITS2 32 +#define BN_BITS2_LG 5 #define BN_BYTES 4 #define BN_BITS4 16 #define BN_MASK2 (0xffffffffUL) @@ -273,6 +275,18 @@ int bn_copy_words(BN_ULONG *out, size_t num, const BIGNUM *bn); // validation. OPENSSL_EXPORT void bn_assert_fits_in_bytes(const BIGNUM *bn, size_t num); +// bn_secret marks |bn|'s contents, but not its width or sign, as secret. See +// |CONSTTIME_SECRET| for details. +OPENSSL_INLINE void bn_secret(BIGNUM *bn) { + CONSTTIME_SECRET(bn->d, bn->width * sizeof(BN_ULONG)); +} + +// bn_declassify marks |bn|'s value as public. See |CONSTTIME_DECLASSIFY| for +// details. +OPENSSL_INLINE void bn_declassify(BIGNUM *bn) { + CONSTTIME_DECLASSIFY(bn->d, bn->width * sizeof(BN_ULONG)); +} + // bn_mul_add_words multiples |ap| by |w|, adds the result to |rp|, and places // the result in |rp|. |ap| and |rp| must both be |num| words long. It returns // the carry word of the operation. |ap| and |rp| may be equal but otherwise may diff --git a/crypto/fipsmodule/bn/montgomery_inv.c b/crypto/fipsmodule/bn/montgomery_inv.c index d9d9b7634e..bd80310c6f 100644 --- a/crypto/fipsmodule/bn/montgomery_inv.c +++ b/crypto/fipsmodule/bn/montgomery_inv.c @@ -180,42 +180,43 @@ int bn_mont_ctx_set_RR_consttime(BN_MONT_CTX *mont, BN_CTX *ctx) { // Montgomery domain, 2R or 2^(lgBigR+1), and then use Montgomery // square-and-multiply to exponentiate. // - // The multiply steps take 2^n R to 2^(n+1) R. It is faster to double - // the value instead. The square steps take 2^n R to 2^(2n) R. This is - // equivalent to doubling n times. When n is below some threshold, doubling is - // faster. When above, squaring is faster. + // The square steps take 2^n R to (2^n)*(2^n) R = 2^2n R. This is the same as + // doubling 2^n R, n times (doubling any x, n times, computes 2^n * x). When n + // is below some threshold, doubling is faster; when above, squaring is + // faster. From benchmarking various 32-bit and 64-bit architectures, the word + // count seems to work well as a threshold. (Doubling scales linearly and + // Montgomery reduction scales quadratically, so the threshold should scale + // roughly linearly.) // - // We double to this threshold, then switch to Montgomery squaring. From - // benchmarking various 32-bit and 64-bit architectures, the word count seems - // to work well as a threshold. (Doubling scales linearly and Montgomery - // reduction scales quadratically, so the threshold should scale roughly - // linearly.) - unsigned threshold = mont->N.width; - unsigned iters; - for (iters = 0; iters < sizeof(lgBigR) * 8; iters++) { - if ((lgBigR >> iters) <= threshold) { - break; - } - } - - // Compute 2^(lgBigR >> iters) R, or 2^((lgBigR >> iters) + lgBigR), by - // doubling. The first n_bits - 1 doubles can be skipped because we don't need - // to reduce. + // The multiply steps take 2^n R to 2*2^n R = 2^(n+1) R. It is faster to + // double the value instead, so the square-and-multiply exponentiation would + // become square-and-double. However, when using the word count as the + // threshold, it turns out that no multiply/double steps will be needed at + // all, because squaring any x, i times, computes x^(2^i): + // + // (2^threshold)^(2^BN_BITS2_LG) R + // (2^mont->N.width)^BN_BITS2 R + // = 2^(mont->N.width*BN_BITS2) R + // = 2^lgBigR R + // = RR + int threshold = mont->N.width; + + // Calculate 2^threshold R = 2^(threshold + lgBigR) by doubling. The + // first n_bits - 1 doubles can be skipped because we don't need to reduce. if (!BN_set_bit(&mont->RR, n_bits - 1) || !bn_mod_lshift_consttime(&mont->RR, &mont->RR, - (lgBigR >> iters) + lgBigR - (n_bits - 1), + threshold + (lgBigR - (n_bits - 1)), &mont->N, ctx)) { return 0; } - for (unsigned i = iters - 1; i < iters; i--) { + // The above steps are the same regardless of the threshold. The steps below + // need to be modified if the threshold changes. + assert(threshold == mont->N.width); + for (unsigned i = 0; i < BN_BITS2_LG; i++) { if (!BN_mod_mul_montgomery(&mont->RR, &mont->RR, &mont->RR, mont, ctx)) { return 0; } - if ((lgBigR & (1u << i)) != 0 && - !bn_mod_lshift1_consttime(&mont->RR, &mont->RR, &mont->N, ctx)) { - return 0; - } } return bn_resize_words(&mont->RR, mont->N.width); diff --git a/crypto/fipsmodule/bn/random.c b/crypto/fipsmodule/bn/random.c index cf003dfaa2..c9738d57f7 100644 --- a/crypto/fipsmodule/bn/random.c +++ b/crypto/fipsmodule/bn/random.c @@ -285,8 +285,14 @@ int bn_rand_range_words(BN_ULONG *out, BN_ULONG min_inclusive, out[words - 1] &= mask; // If out >= max_exclusive or out < min_inclusive, retry. This implements - // the equivalent of steps 6 and 7 without leaking the value of |out|. - } while (!bn_in_range_words(out, min_inclusive, max_exclusive, words)); + // the equivalent of steps 6 and 7 without leaking the value of |out|. The + // result of this comparison may be treated as public. It only reveals how + // many attempts were needed before we found a value in range. This is + // independent of the final secret output, and has a distribution that + // depends only on |min_inclusive| and |max_exclusive|, both of which are + // public. + } while (!constant_time_declassify_int( + bn_in_range_words(out, min_inclusive, max_exclusive, words))); ret = 1; diff --git a/crypto/fipsmodule/cipher/e_aesccm.c b/crypto/fipsmodule/cipher/e_aesccm.c index 3972b7b4bf..4c0cd4a328 100644 --- a/crypto/fipsmodule/cipher/e_aesccm.c +++ b/crypto/fipsmodule/cipher/e_aesccm.c @@ -55,6 +55,7 @@ #include #include "../delocate.h" +#include "../modes/internal.h" #include "../service_indicator/internal.h" #include "internal.h" @@ -69,10 +70,8 @@ typedef struct ccm128_context { } CCM128_CTX; typedef struct ccm128_state { - union { - uint64_t u[2]; - uint8_t c[16]; - } nonce, cmac; + alignas(16) uint8_t nonce[16]; + alignas(16) uint8_t cmac[16]; } CCM128_STATE; typedef struct cipher_aes_ccm_ctx { @@ -100,8 +99,6 @@ typedef struct cipher_aes_ccm_ctx { uint8_t nonce[CCM_MAX_NONCE_LEN]; } CIPHER_AES_CCM_CTX; -// AES-CCM context within the EVP_CIPHER_CTX -#define CCM_CTX(ctx) ((CIPHER_AES_CCM_CTX *) ctx->cipher_data) // The "inner" CCM128_CTX struct within a CIPHER_AES_CCM_CTX #define CCM_INNER_CTX(ccm_ctx) (&ccm_ctx->ccm) // The CCM128 state struct within a CIPHER_AES_CCM_CTX @@ -149,19 +146,19 @@ static int ccm128_init_state(const struct ccm128_context *ctx, // Assemble the first block for computing the MAC. OPENSSL_memset(state, 0, sizeof(*state)); - state->nonce.c[0] = (uint8_t)((L - 1) | ((M - 2) / 2) << 3); + state->nonce[0] = (uint8_t)((L - 1) | ((M - 2) / 2) << 3); if (aad_len != 0) { - state->nonce.c[0] |= 0x40; // Set AAD Flag + state->nonce[0] |= 0x40; // Set AAD Flag } - OPENSSL_memcpy(&state->nonce.c[1], nonce, nonce_len); + OPENSSL_memcpy(&state->nonce[1], nonce, nonce_len); // Explicitly cast plaintext_len up to 64-bits so that we don't shift out of // bounds on 32-bit machines when encoding the message length. uint64_t plaintext_len_64 = plaintext_len; for (uint32_t i = 0; i < L; i++) { - state->nonce.c[15 - i] = (uint8_t)(plaintext_len_64 >> (8 * i)); + state->nonce[15 - i] = (uint8_t)(plaintext_len_64 >> (8 * i)); } - (*block)(state->nonce.c, state->cmac.c, key); + (*block)(state->nonce, state->cmac, key); size_t blocks = 1; if (aad_len != 0) { @@ -169,38 +166,38 @@ static int ccm128_init_state(const struct ccm128_context *ctx, // Cast to u64 to avoid the compiler complaining about invalid shifts. uint64_t aad_len_u64 = aad_len; if (aad_len_u64 < 0x10000 - 0x100) { - state->cmac.c[0] ^= (uint8_t)(aad_len_u64 >> 8); - state->cmac.c[1] ^= (uint8_t)aad_len_u64; + state->cmac[0] ^= (uint8_t)(aad_len_u64 >> 8); + state->cmac[1] ^= (uint8_t)aad_len_u64; i = 2; } else if (aad_len_u64 <= 0xffffffff) { - state->cmac.c[0] ^= 0xff; - state->cmac.c[1] ^= 0xfe; - state->cmac.c[2] ^= (uint8_t)(aad_len_u64 >> 24); - state->cmac.c[3] ^= (uint8_t)(aad_len_u64 >> 16); - state->cmac.c[4] ^= (uint8_t)(aad_len_u64 >> 8); - state->cmac.c[5] ^= (uint8_t)aad_len_u64; + state->cmac[0] ^= 0xff; + state->cmac[1] ^= 0xfe; + state->cmac[2] ^= (uint8_t)(aad_len_u64 >> 24); + state->cmac[3] ^= (uint8_t)(aad_len_u64 >> 16); + state->cmac[4] ^= (uint8_t)(aad_len_u64 >> 8); + state->cmac[5] ^= (uint8_t)aad_len_u64; i = 6; } else { - state->cmac.c[0] ^= 0xff; - state->cmac.c[1] ^= 0xff; - state->cmac.c[2] ^= (uint8_t)(aad_len_u64 >> 56); - state->cmac.c[3] ^= (uint8_t)(aad_len_u64 >> 48); - state->cmac.c[4] ^= (uint8_t)(aad_len_u64 >> 40); - state->cmac.c[5] ^= (uint8_t)(aad_len_u64 >> 32); - state->cmac.c[6] ^= (uint8_t)(aad_len_u64 >> 24); - state->cmac.c[7] ^= (uint8_t)(aad_len_u64 >> 16); - state->cmac.c[8] ^= (uint8_t)(aad_len_u64 >> 8); - state->cmac.c[9] ^= (uint8_t)aad_len_u64; + state->cmac[0] ^= 0xff; + state->cmac[1] ^= 0xff; + state->cmac[2] ^= (uint8_t)(aad_len_u64 >> 56); + state->cmac[3] ^= (uint8_t)(aad_len_u64 >> 48); + state->cmac[4] ^= (uint8_t)(aad_len_u64 >> 40); + state->cmac[5] ^= (uint8_t)(aad_len_u64 >> 32); + state->cmac[6] ^= (uint8_t)(aad_len_u64 >> 24); + state->cmac[7] ^= (uint8_t)(aad_len_u64 >> 16); + state->cmac[8] ^= (uint8_t)(aad_len_u64 >> 8); + state->cmac[9] ^= (uint8_t)aad_len_u64; i = 10; } do { for (; i < 16 && aad_len != 0; i++) { - state->cmac.c[i] ^= *aad; + state->cmac[i] ^= *aad; aad++; aad_len--; } - (*block)(state->cmac.c, state->cmac.c, key); + (*block)(state->cmac, state->cmac, key); blocks++; i = 0; } while (aad_len != 0); @@ -219,7 +216,7 @@ static int ccm128_init_state(const struct ccm128_context *ctx, // Assemble the first block for encrypting and decrypting. The bottom |L| // bytes are replaced with a counter and all bit the encoding of |L| is // cleared in the first byte. - state->nonce.c[0] &= 7; + state->nonce[0] &= 7; return 1; } @@ -228,17 +225,17 @@ static int ccm128_encrypt(const struct ccm128_context *ctx, uint8_t *out, const uint8_t *in, size_t len) { // The counter for encryption begins at one. for (unsigned i = 0; i < ctx->L; i++) { - state->nonce.c[15 - i] = 0; + state->nonce[15 - i] = 0; } - state->nonce.c[15] = 1; + state->nonce[15] = 1; uint8_t partial_buf[16]; unsigned num = 0; if (ctx->ctr != NULL) { - CRYPTO_ctr128_encrypt_ctr32(in, out, len, key, state->nonce.c, partial_buf, + CRYPTO_ctr128_encrypt_ctr32(in, out, len, key, state->nonce, partial_buf, &num, ctx->ctr); } else { - CRYPTO_ctr128_encrypt(in, out, len, key, state->nonce.c, partial_buf, &num, + CRYPTO_ctr128_encrypt(in, out, len, key, state->nonce, partial_buf, &num, ctx->block); } return 1; @@ -254,34 +251,28 @@ static int ccm128_compute_mac(const struct ccm128_context *ctx, } // Incorporate |in| into the MAC. - union { - uint64_t u[2]; - uint8_t c[16]; - } tmp; while (len >= 16) { - OPENSSL_memcpy(tmp.c, in, 16); - state->cmac.u[0] ^= tmp.u[0]; - state->cmac.u[1] ^= tmp.u[1]; - (*block)(state->cmac.c, state->cmac.c, key); + CRYPTO_xor16(state->cmac, state->cmac, in); + (*block)(state->cmac, state->cmac, key); in += 16; len -= 16; } if (len > 0) { for (size_t i = 0; i < len; i++) { - state->cmac.c[i] ^= in[i]; + state->cmac[i] ^= in[i]; } - (*block)(state->cmac.c, state->cmac.c, key); + (*block)(state->cmac, state->cmac, key); } // Encrypt the MAC with counter zero. for (unsigned i = 0; i < ctx->L; i++) { - state->nonce.c[15 - i] = 0; + state->nonce[15 - i] = 0; } - (*block)(state->nonce.c, tmp.c, key); - state->cmac.u[0] ^= tmp.u[0]; - state->cmac.u[1] ^= tmp.u[1]; + alignas(16) uint8_t tmp[16]; + (*block)(state->nonce, tmp, key); + CRYPTO_xor16(state->cmac, state->cmac, tmp); - OPENSSL_memcpy(out_tag, state->cmac.c, tag_len); + OPENSSL_memcpy(out_tag, state->cmac, tag_len); return 1; } @@ -500,9 +491,38 @@ DEFINE_METHOD_FUNCTION(EVP_AEAD, EVP_aead_aes_128_ccm_matter) { out->open_gather = aead_aes_ccm_open_gather; } +#if defined(OPENSSL_32_BIT) +#define CIPHER_AES_CCM_CTX_PADDING (4 + 8) +#else +#define CIPHER_AES_CCM_CTX_PADDING 8 +#endif + +// This is the same handling as EVP_AES_GCM_CTX which is also a context +// that is 16-byte aligned. +// TODO: possibly refactor the code instead of repeating it from e_aes.c +static CIPHER_AES_CCM_CTX *aes_ccm_from_cipher_ctx(EVP_CIPHER_CTX *ctx) { + OPENSSL_STATIC_ASSERT( + alignof(CIPHER_AES_CCM_CTX) <= 16, + EVP_AES_CCM_CTX_needs_more_alignment_than_this_function_provides) + + // |malloc| guarantees up to 4-byte alignment on 32-bit and 8-byte alignment + // on 64-bit systems, so we need to adjust to reach 16-byte alignment. + assert(ctx->cipher->ctx_size == + sizeof(CIPHER_AES_CCM_CTX) + CIPHER_AES_CCM_CTX_PADDING); + + char *ptr = ctx->cipher_data; +#if defined(OPENSSL_32_BIT) + assert((uintptr_t)ptr % 4 == 0); + ptr += (uintptr_t)ptr & 4; +#endif + assert((uintptr_t)ptr % 8 == 0); + ptr += (uintptr_t)ptr & 8; + return (CIPHER_AES_CCM_CTX *)ptr; +} + static int cipher_aes_ccm_init(EVP_CIPHER_CTX *ctx, const uint8_t *key, const uint8_t *iv, int enc) { - CIPHER_AES_CCM_CTX *cipher_ctx = CCM_CTX(ctx); + CIPHER_AES_CCM_CTX *cipher_ctx = aes_ccm_from_cipher_ctx(ctx); if (!iv && !key) { return 1; } @@ -529,7 +549,7 @@ static int cipher_aes_ccm_init(EVP_CIPHER_CTX *ctx, const uint8_t *key, static int cipher_aes_ccm_cipher(EVP_CIPHER_CTX *ctx, uint8_t *out, const uint8_t *in, size_t len) { - CIPHER_AES_CCM_CTX *cipher_ctx = CCM_CTX(ctx); + CIPHER_AES_CCM_CTX *cipher_ctx = aes_ccm_from_cipher_ctx(ctx); CCM128_CTX *ccm_ctx = CCM_INNER_CTX(cipher_ctx); CCM128_STATE *ccm_state = CCM_INNER_STATE(cipher_ctx); @@ -631,7 +651,7 @@ static int cipher_aes_ccm_ctrl_set_L(CIPHER_AES_CCM_CTX *ctx, int L) { static int cipher_aes_ccm_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr) { - CIPHER_AES_CCM_CTX *cipher_ctx = CCM_CTX(ctx); + CIPHER_AES_CCM_CTX *cipher_ctx = aes_ccm_from_cipher_ctx(ctx); switch (type) { case EVP_CTRL_INIT: OPENSSL_cleanse(cipher_ctx, sizeof(CIPHER_AES_CCM_CTX)); @@ -687,6 +707,17 @@ static int cipher_aes_ccm_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, cipher_ctx->len_set = 0; cipher_ctx->ccm_set = 0; return 1; + + case EVP_CTRL_COPY: { + EVP_CIPHER_CTX *out = ptr; + CIPHER_AES_CCM_CTX *cipher_ctx_out = aes_ccm_from_cipher_ctx(out); + + // |EVP_CIPHER_CTX_copy| copies this generically, but we must redo it in + // case |out->cipher_data| and |in->cipher_data| are differently aligned. + OPENSSL_memcpy(cipher_ctx_out, cipher_ctx, sizeof(CIPHER_AES_CCM_CTX)); + return 1; + } + default: return -1; } @@ -698,7 +729,7 @@ DEFINE_METHOD_FUNCTION(EVP_CIPHER, EVP_aes_128_ccm) { out->block_size = 1; // stream cipher out->key_len = 16; out->iv_len = 13; - out->ctx_size = sizeof(CIPHER_AES_CCM_CTX); + out->ctx_size = sizeof(CIPHER_AES_CCM_CTX) + CIPHER_AES_CCM_CTX_PADDING; out->flags = EVP_CIPH_CCM_MODE | EVP_CIPH_CUSTOM_IV | EVP_CIPH_CUSTOM_COPY | EVP_CIPH_FLAG_CUSTOM_CIPHER | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CTRL_INIT | EVP_CIPH_FLAG_AEAD_CIPHER; @@ -714,7 +745,7 @@ DEFINE_METHOD_FUNCTION(EVP_CIPHER, EVP_aes_192_ccm) { out->block_size = 1; // stream cipher out->key_len = 24; out->iv_len = 13; - out->ctx_size = sizeof(CIPHER_AES_CCM_CTX); + out->ctx_size = sizeof(CIPHER_AES_CCM_CTX) + CIPHER_AES_CCM_CTX_PADDING; out->flags = EVP_CIPH_CCM_MODE | EVP_CIPH_CUSTOM_IV | EVP_CIPH_CUSTOM_COPY | EVP_CIPH_FLAG_CUSTOM_CIPHER | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CTRL_INIT | EVP_CIPH_FLAG_AEAD_CIPHER; @@ -730,7 +761,7 @@ DEFINE_METHOD_FUNCTION(EVP_CIPHER, EVP_aes_256_ccm) { out->block_size = 1; // stream cipher out->key_len = 32; out->iv_len = 13; - out->ctx_size = sizeof(CIPHER_AES_CCM_CTX); + out->ctx_size = sizeof(CIPHER_AES_CCM_CTX) + CIPHER_AES_CCM_CTX_PADDING; out->flags = EVP_CIPH_CCM_MODE | EVP_CIPH_CUSTOM_IV | EVP_CIPH_CUSTOM_COPY | EVP_CIPH_FLAG_CUSTOM_CIPHER | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CTRL_INIT | EVP_CIPH_FLAG_AEAD_CIPHER; diff --git a/crypto/fipsmodule/cpucap/cpu_aarch64_linux.c b/crypto/fipsmodule/cpucap/cpu_aarch64_linux.c index 3cc8da57f5..8d3f803505 100644 --- a/crypto/fipsmodule/cpucap/cpu_aarch64_linux.c +++ b/crypto/fipsmodule/cpucap/cpu_aarch64_linux.c @@ -80,12 +80,15 @@ void OPENSSL_cpuid_setup(void) { // is supported. As of Valgrind 3.21 trying to read from that register will // cause Valgrind to crash. if (hwcap & kCPUID) { - // Check if the CPU model is Neoverse V1, + // Check if the CPU model is Neoverse V1 or V2, // which has a wide crypto/SIMD pipeline. OPENSSL_arm_midr = armv8_cpuid_probe(); if (MIDR_IS_CPU_MODEL(OPENSSL_arm_midr, ARM_CPU_IMP_ARM, ARM_CPU_PART_V1)) { OPENSSL_armcap_P |= ARMV8_NEOVERSE_V1; } + if (MIDR_IS_CPU_MODEL(OPENSSL_arm_midr, ARM_CPU_IMP_ARM, ARM_CPU_PART_V2)) { + OPENSSL_armcap_P |= ARMV8_NEOVERSE_V2; + } } #if defined(MAKE_DIT_AVAILABLE) diff --git a/crypto/fipsmodule/cpucap/cpu_intel.c b/crypto/fipsmodule/cpucap/cpu_intel.c index 19b6540d02..bbf8543c86 100644 --- a/crypto/fipsmodule/cpucap/cpu_intel.c +++ b/crypto/fipsmodule/cpucap/cpu_intel.c @@ -240,7 +240,8 @@ void OPENSSL_cpuid_setup(void) { // Clear the XSAVE bit on Knights Landing to mimic Silvermont. This enables // some Silvermont-specific codepaths which perform better. See OpenSSL - // commit 64d92d74985ebb3d0be58a9718f9e080a14a8e7f. + // commit 64d92d74985ebb3d0be58a9718f9e080a14a8e7f and + // |CRYPTO_cpu_perf_is_like_silvermont|. if ((eax & 0x0fff0ff0) == 0x00050670 /* Knights Landing */ || (eax & 0x0fff0ff0) == 0x00080650 /* Knights Mill (per SDE) */) { ecx &= ~(1u << 26); @@ -267,7 +268,8 @@ void OPENSSL_cpuid_setup(void) { // Clear AVX2 and AVX512* bits. // // TODO(davidben): Should bits 17 and 26-28 also be cleared? Upstream - // doesn't clear those. + // doesn't clear those. See the comments in + // |CRYPTO_hardware_supports_XSAVE|. extended_features[0] &= ~((1u << 5) | (1u << 16) | (1u << 21) | (1u << 30) | (1u << 31)); } diff --git a/crypto/fipsmodule/cpucap/cpucap.c b/crypto/fipsmodule/cpucap/cpucap.c index 482856352c..8082b081fe 100644 --- a/crypto/fipsmodule/cpucap/cpucap.c +++ b/crypto/fipsmodule/cpucap/cpucap.c @@ -74,6 +74,9 @@ HIDDEN uint32_t OPENSSL_armcap_P = #endif #if defined(OPENSSL_STATIC_ARMCAP_NEOVERSE_V1) || defined(__ARM_FEATURE_NEOVERSE_V1) ARMV8_NEOVERSE_V1 | +#endif +#if defined(OPENSSL_STATIC_ARMCAP_NEOVERSE_V2) || defined(__ARM_FEATURE_NEOVERSE_V2) + ARMV8_NEOVERSE_V2 | #endif 0; diff --git a/crypto/fipsmodule/cpucap/internal.h b/crypto/fipsmodule/cpucap/internal.h index 2ed70cbab7..f9c44c3b3e 100644 --- a/crypto/fipsmodule/cpucap/internal.h +++ b/crypto/fipsmodule/cpucap/internal.h @@ -34,7 +34,8 @@ void OPENSSL_cpuid_setup(void); // ECX for CPUID where EAX = 7 // // Note: the CPUID bits are pre-adjusted for the OSXSAVE bit and the YMM and XMM -// bits in XCR0, so it is not necessary to check those. +// bits in XCR0, so it is not necessary to check those. (WARNING: See caveats +// in cpu_intel.c.) extern uint32_t OPENSSL_ia32cap_P[4]; #if defined(BORINGSSL_FIPS) && !defined(BORINGSSL_SHARED_LIBRARY) @@ -81,6 +82,9 @@ OPENSSL_INLINE int CRYPTO_is_AESNI_capable(void) { return (OPENSSL_ia32cap_get()[1] & (1 << 25)) != 0; } +// We intentionally avoid defining a |CRYPTO_is_XSAVE_capable| function. See +// |CRYPTO_cpu_perf_is_like_silvermont|. + OPENSSL_INLINE int CRYPTO_is_AVX_capable(void) { return (OPENSSL_ia32cap_get()[1] & (1 << 28)) != 0; } @@ -131,6 +135,29 @@ OPENSSL_INLINE int CRYPTO_is_VBMI2_capable(void) { return (OPENSSL_ia32cap_get()[3] & (1 << 6)) != 0; } +// CRYPTO_cpu_perf_is_like_silvermont returns one if, based on a heuristic, the +// CPU has Silvermont-like performance characteristics. It is often faster to +// run different codepaths on these CPUs than the available instructions would +// otherwise select. See chacha-x86_64.pl. +// +// Bonnell, Silvermont's predecessor in the Atom lineup, will also be matched by +// this. |OPENSSL_cpuid_setup| forces Knights Landing to also be matched by +// this. Goldmont (Silvermont's successor in the Atom lineup) added XSAVE so it +// isn't matched by this. Various sources indicate AMD first implemented MOVBE +// and XSAVE at the same time in Jaguar, so it seems like AMD chips will not be +// matched by this. That seems to be the case for other x86(-64) CPUs. +OPENSSL_INLINE int CRYPTO_cpu_perf_is_like_silvermont(void) { + // WARNING: This MUST NOT be used to guard the execution of the XSAVE + // instruction. This is the "hardware supports XSAVE" bit, not the OSXSAVE bit + // that indicates whether we can safely execute XSAVE. This bit may be set + // even when XSAVE is disabled (by the operating system). See the comment in + // cpu_intel.c and check how the users of this bit use it. + // + // We do not use |__XSAVE__| for static detection because the hack in + // |OPENSSL_cpuid_setup| for Knights Landing CPUs needs to override it. + int hardware_supports_xsave = (OPENSSL_ia32cap_get()[1] & (1u << 26)) != 0; + return !hardware_supports_xsave && CRYPTO_is_MOVBE_capable(); +} #endif // OPENSSL_X86 || OPENSSL_X86_64 @@ -146,6 +173,11 @@ OPENSSL_INLINE int CRYPTO_is_VBMI2_capable(void) { #define OPENSSL_STATIC_ARMCAP #endif +#include + +extern uint32_t OPENSSL_armcap_P; +extern uint8_t OPENSSL_cpucap_initialized; + // Normalize some older feature flags to their modern ACLE values. // https://developer.arm.com/architectures/system-architectures/software-standards/acle #if defined(__ARM_NEON__) && !defined(__ARM_NEON) @@ -160,11 +192,6 @@ OPENSSL_INLINE int CRYPTO_is_VBMI2_capable(void) { #endif #endif -#include - -extern uint32_t OPENSSL_armcap_P; -extern uint8_t OPENSSL_cpucap_initialized; - // CRYPTO_is_NEON_capable returns true if the current CPU has a NEON unit. // If this is known statically, it is a constant inline function. // Otherwise, the capability is checked at runtime by checking the corresponding @@ -183,14 +210,28 @@ OPENSSL_INLINE int CRYPTO_is_ARMv8_PMULL_capable(void) { return (OPENSSL_armcap_P & ARMV8_PMULL) != 0; } +OPENSSL_INLINE int CRYPTO_is_ARMv8_SHA1_capable(void) { + return (OPENSSL_armcap_P & ARMV8_SHA1) != 0; +} + +OPENSSL_INLINE int CRYPTO_is_ARMv8_SHA256_capable(void) { + return (OPENSSL_armcap_P & ARMV8_SHA256) != 0; +} + +OPENSSL_INLINE int CRYPTO_is_ARMv8_SHA512_capable(void) { + return (OPENSSL_armcap_P & ARMV8_SHA512) != 0; +} + OPENSSL_INLINE int CRYPTO_is_ARMv8_GCM_8x_capable(void) { return ((OPENSSL_armcap_P & ARMV8_SHA3) != 0 && ((OPENSSL_armcap_P & ARMV8_NEOVERSE_V1) != 0 || + (OPENSSL_armcap_P & ARMV8_NEOVERSE_V2) != 0 || (OPENSSL_armcap_P & ARMV8_APPLE_M1) != 0)); } OPENSSL_INLINE int CRYPTO_is_ARMv8_wide_multiplier_capable(void) { return (OPENSSL_armcap_P & ARMV8_NEOVERSE_V1) != 0 || + (OPENSSL_armcap_P & ARMV8_NEOVERSE_V2) != 0 || (OPENSSL_armcap_P & ARMV8_APPLE_M1) != 0; } diff --git a/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl b/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl index 711cc8348b..114d1f8244 100755 --- a/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl +++ b/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl @@ -59,7 +59,7 @@ $avx = 2; $addx = 1; -for (@ARGV) { $avx = 0, $addx = 0 if (/-DMY_ASSEMBLER_IS_TOO_OLD_FOR_AVX/); } +for (@ARGV) { $avx = 0, $addx = 0 if (/-DMY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX/); } $code.=<<___; .text @@ -102,6 +102,7 @@ .align 32 ecp_nistz256_neg: .cfi_startproc + _CET_ENDBR push %r12 .cfi_push %r12 push %r13 @@ -170,13 +171,16 @@ .align 32 ecp_nistz256_ord_mul_mont: .cfi_startproc + _CET_ENDBR ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip), %rcx mov 8(%rcx), %rcx and \$0x80100, %ecx cmp \$0x80100, %ecx je .Lecp_nistz256_ord_mul_montx +#endif ___ $code.=<<___; push %rbp @@ -501,13 +505,16 @@ .align 32 ecp_nistz256_ord_sqr_mont: .cfi_startproc + _CET_ENDBR ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip), %rcx mov 8(%rcx), %rcx and \$0x80100, %ecx cmp \$0x80100, %ecx je .Lecp_nistz256_ord_sqr_montx +#endif ___ $code.=<<___; push %rbp @@ -793,6 +800,7 @@ ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX ################################################################################ .type ecp_nistz256_ord_mul_montx,\@function,3 .align 32 @@ -1237,6 +1245,7 @@ ret .cfi_endproc .size ecp_nistz256_ord_sqr_montx,.-ecp_nistz256_ord_sqr_montx +#endif ___ $code.=<<___; @@ -1251,11 +1260,14 @@ .align 32 ecp_nistz256_mul_mont: .cfi_startproc + _CET_ENDBR ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip), %rcx mov 8(%rcx), %rcx and \$0x80100, %ecx +#endif ___ $code.=<<___; .Lmul_mont: @@ -1274,8 +1286,10 @@ .Lmul_body: ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX cmp \$0x80100, %ecx je .Lmul_montx +#endif ___ $code.=<<___; mov $b_org, $b_ptr @@ -1288,6 +1302,7 @@ call __ecp_nistz256_mul_montq ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX jmp .Lmul_mont_done .align 32 @@ -1301,6 +1316,7 @@ lea -128($a_ptr), $a_ptr # control u-op density call __ecp_nistz256_mul_montx +#endif ___ $code.=<<___; .Lmul_mont_done: @@ -1553,11 +1569,14 @@ .align 32 ecp_nistz256_sqr_mont: .cfi_startproc + _CET_ENDBR ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip), %rcx mov 8(%rcx), %rcx and \$0x80100, %ecx +#endif ___ $code.=<<___; push %rbp @@ -1575,8 +1594,10 @@ .Lsqr_body: ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX cmp \$0x80100, %ecx je .Lsqr_montx +#endif ___ $code.=<<___; mov 8*0($a_ptr), %rax @@ -1587,6 +1608,7 @@ call __ecp_nistz256_sqr_montq ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX jmp .Lsqr_mont_done .align 32 @@ -1598,6 +1620,7 @@ lea -128($a_ptr), $a_ptr # control u-op density call __ecp_nistz256_sqr_montx +#endif ___ $code.=<<___; .Lsqr_mont_done: @@ -1787,6 +1810,7 @@ if ($addx) { $code.=<<___; +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .type __ecp_nistz256_mul_montx,\@abi-omnipotent .align 32 __ecp_nistz256_mul_montx: @@ -2085,6 +2109,7 @@ ret .cfi_endproc .size __ecp_nistz256_sqr_montx,.-__ecp_nistz256_sqr_montx +#endif ___ } } @@ -2102,12 +2127,15 @@ .align 32 ecp_nistz256_select_w5: .cfi_startproc + _CET_ENDBR ___ $code.=<<___ if ($avx>1); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip), %rax mov 8(%rax), %rax test \$`1<<5`, %eax jnz .Lavx2_select_w5 +#endif ___ $code.=<<___ if ($win64); lea -0x88(%rsp), %rax @@ -2202,12 +2230,15 @@ .align 32 ecp_nistz256_select_w7: .cfi_startproc + _CET_ENDBR ___ $code.=<<___ if ($avx>1); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip), %rax mov 8(%rax), %rax test \$`1<<5`, %eax jnz .Lavx2_select_w7 +#endif ___ $code.=<<___ if ($win64); lea -0x88(%rsp), %rax @@ -2292,6 +2323,7 @@ my ($M1,$T1a,$T1b,$T1c,$TMP1)=map("%ymm$_",(10..14)); $code.=<<___; +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX ################################################################################ # void ecp_nistz256_avx2_select_w5(uint64_t *val, uint64_t *in_t, int index); .type ecp_nistz256_avx2_select_w5,\@abi-omnipotent @@ -2388,6 +2420,7 @@ .cfi_endproc .LSEH_end_ecp_nistz256_avx2_select_w5: .size ecp_nistz256_avx2_select_w5,.-ecp_nistz256_avx2_select_w5 +#endif ___ } if ($avx>1) { @@ -2398,7 +2431,7 @@ my ($M2,$T2a,$T2b,$TMP2)=map("%ymm$_",(12..15)); $code.=<<___; - +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX ################################################################################ # void ecp_nistz256_avx2_select_w7(uint64_t *val, uint64_t *in_t, int index); .globl ecp_nistz256_avx2_select_w7 @@ -2407,6 +2440,7 @@ ecp_nistz256_avx2_select_w7: .cfi_startproc .Lavx2_select_w7: + _CET_ENDBR vzeroupper ___ $code.=<<___ if ($win64); @@ -2511,6 +2545,7 @@ .cfi_endproc .LSEH_end_ecp_nistz256_avx2_select_w7: .size ecp_nistz256_avx2_select_w7,.-ecp_nistz256_avx2_select_w7 +#endif ___ } else { $code.=<<___; @@ -2518,6 +2553,7 @@ .type ecp_nistz256_avx2_select_w7,\@function,3 .align 32 ecp_nistz256_avx2_select_w7: + _CET_ENDBR .byte 0x0f,0x0b # ud2 ret .size ecp_nistz256_avx2_select_w7,.-ecp_nistz256_avx2_select_w7 @@ -2722,13 +2758,16 @@ () .align 32 ecp_nistz256_point_double: .cfi_startproc + _CET_ENDBR ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip), %rcx mov 8(%rcx), %rcx and \$0x80100, %ecx cmp \$0x80100, %ecx je .Lpoint_doublex +#endif ___ } else { $src0 = "%rdx"; @@ -2974,13 +3013,16 @@ () .align 32 ecp_nistz256_point_add: .cfi_startproc + _CET_ENDBR ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip), %rcx mov 8(%rcx), %rcx and \$0x80100, %ecx cmp \$0x80100, %ecx je .Lpoint_addx +#endif ___ } else { $src0 = "%rdx"; @@ -3372,13 +3414,16 @@ () .align 32 ecp_nistz256_point_add_affine: .cfi_startproc + _CET_ENDBR ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip), %rcx mov 8(%rcx), %rcx and \$0x80100, %ecx cmp \$0x80100, %ecx je .Lpoint_add_affinex +#endif ___ } else { $src0 = "%rdx"; @@ -3687,6 +3732,7 @@ () my ($a0,$a1,$a2,$a3,$t3,$t4)=($acc4,$acc5,$acc0,$acc1,$acc2,$acc3); $code.=<<___; +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .type __ecp_nistz256_add_tox,\@abi-omnipotent .align 32 __ecp_nistz256_add_tox: @@ -3827,6 +3873,10 @@ () &gen_double("x"); &gen_add("x"); &gen_add_affine("x"); + + $code.=<<___; +#endif +___ } }}} @@ -3986,6 +4036,7 @@ () .rva .LSEH_info_ecp_nistz256_ord_sqr_mont ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .rva .LSEH_begin_ecp_nistz256_ord_mul_montx .rva .LSEH_end_ecp_nistz256_ord_mul_montx .rva .LSEH_info_ecp_nistz256_ord_mul_montx @@ -3993,6 +4044,7 @@ () .rva .LSEH_begin_ecp_nistz256_ord_sqr_montx .rva .LSEH_end_ecp_nistz256_ord_sqr_montx .rva .LSEH_info_ecp_nistz256_ord_sqr_montx +#endif ___ $code.=<<___; .rva .LSEH_begin_ecp_nistz256_mul_mont @@ -4012,6 +4064,7 @@ () .rva .LSEH_info_ecp_nistz256_select_wX ___ $code.=<<___ if ($avx>1); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .rva .LSEH_begin_ecp_nistz256_avx2_select_w5 .rva .LSEH_end_ecp_nistz256_avx2_select_w5 .rva .LSEH_info_ecp_nistz256_avx2_select_wX @@ -4019,6 +4072,7 @@ () .rva .LSEH_begin_ecp_nistz256_avx2_select_w7 .rva .LSEH_end_ecp_nistz256_avx2_select_w7 .rva .LSEH_info_ecp_nistz256_avx2_select_wX +#endif ___ $code.=<<___; .rva .LSEH_begin_ecp_nistz256_point_double @@ -4034,6 +4088,7 @@ () .rva .LSEH_info_ecp_nistz256_point_add_affine ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .rva .LSEH_begin_ecp_nistz256_point_doublex .rva .LSEH_end_ecp_nistz256_point_doublex .rva .LSEH_info_ecp_nistz256_point_doublex @@ -4045,6 +4100,7 @@ () .rva .LSEH_begin_ecp_nistz256_point_add_affinex .rva .LSEH_end_ecp_nistz256_point_add_affinex .rva .LSEH_info_ecp_nistz256_point_add_affinex +#endif ___ $code.=<<___; @@ -4066,6 +4122,7 @@ () .long 48,0 ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .LSEH_info_ecp_nistz256_ord_mul_montx: .byte 9,0,0,0 .rva full_handler @@ -4076,6 +4133,7 @@ () .rva full_handler .rva .Lord_sqrx_body,.Lord_sqrx_epilogue # HandlerData[] .long 48,0 +#endif ___ $code.=<<___; .LSEH_info_ecp_nistz256_mul_mont: @@ -4104,6 +4162,7 @@ () .align 8 ___ $code.=<<___ if ($avx>1); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .LSEH_info_ecp_nistz256_avx2_select_wX: .byte 0x01,0x36,0x17,0x0b .byte 0x36,0xf8,0x09,0x00 # vmovaps 0x90(rsp),xmm15 @@ -4119,6 +4178,7 @@ () .byte 0x04,0x01,0x15,0x00 # sub rsp,0xa8 .byte 0x00,0xb3,0x00,0x00 # set_frame r11 .align 8 +#endif ___ $code.=<<___; .LSEH_info_ecp_nistz256_point_double: @@ -4138,6 +4198,7 @@ () .long 32*15+56,0 ___ $code.=<<___ if ($addx); +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .align 8 .LSEH_info_ecp_nistz256_point_doublex: .byte 9,0,0,0 @@ -4154,6 +4215,7 @@ () .rva full_handler .rva .Ladd_affinex_body,.Ladd_affinex_epilogue # HandlerData[] .long 32*15+56,0 +#endif ___ } diff --git a/crypto/fipsmodule/ec/asm/p256_beeu-x86_64-asm.pl b/crypto/fipsmodule/ec/asm/p256_beeu-x86_64-asm.pl index 6918dadaa8..7cbcb4694d 100644 --- a/crypto/fipsmodule/ec/asm/p256_beeu-x86_64-asm.pl +++ b/crypto/fipsmodule/ec/asm/p256_beeu-x86_64-asm.pl @@ -160,6 +160,7 @@ sub SHIFT256 { .align 32 beeu_mod_inverse_vartime: .cfi_startproc + _CET_ENDBR push %rbp .cfi_push rbp push %r12 diff --git a/crypto/fipsmodule/ec/ec_key.c b/crypto/fipsmodule/ec/ec_key.c index 46e0d67b4c..7f1d72cacc 100644 --- a/crypto/fipsmodule/ec/ec_key.c +++ b/crypto/fipsmodule/ec/ec_key.c @@ -314,8 +314,10 @@ int EC_KEY_check_key(const EC_KEY *eckey) { OPENSSL_PUT_ERROR(EC, ERR_R_EC_LIB); return 0; } - if (!ec_GFp_simple_points_equal(eckey->group, &point, - &eckey->pub_key->raw)) { + // Leaking this comparison only leaks whether |eckey|'s public key was + // correct. + if (!constant_time_declassify_int(ec_GFp_simple_points_equal( + eckey->group, &point, &eckey->pub_key->raw))) { OPENSSL_PUT_ERROR(EC, EC_R_INVALID_PRIVATE_KEY); return 0; } @@ -501,6 +503,14 @@ int EC_KEY_generate_key(EC_KEY *key) { return 0; } + // The public key is derived from the private key, but it is public. + // + // TODO(crbug.com/boringssl/677): This isn't quite right. While |pub_key| + // represents a public point, it is still in Jacobian form and the exact + // Jacobian representation is secret. We need to make it affine first. See + // discussion in the bug. + CONSTTIME_DECLASSIFY(&pub_key->raw, sizeof(pub_key->raw)); + ec_wrapped_scalar_free(key->priv_key); key->priv_key = priv_key; EC_POINT_free(key->pub_key); diff --git a/crypto/fipsmodule/ec/ec_nistp.c b/crypto/fipsmodule/ec/ec_nistp.c index be377c4c21..e370866f85 100644 --- a/crypto/fipsmodule/ec/ec_nistp.c +++ b/crypto/fipsmodule/ec/ec_nistp.c @@ -18,7 +18,7 @@ // | 1. | x | x | x* | // | 2. | x | x | x* | // | 3. | | | | -// | 4. | | | | +// | 4. | x | x | x* | // | 5. | | | | // * For P-256, only the Fiat-crypto implementation in p256.c is replaced. @@ -30,11 +30,11 @@ // for the moment, this will be fixed when we migrate the whole P-521 // implementation to ec_nistp.c. #if defined(EC_NISTP_USE_64BIT_LIMB) -#define NISTP_FELEM_MAX_NUM_OF_LIMBS (9) +#define FELEM_MAX_NUM_OF_LIMBS (9) #else -#define NISTP_FELEM_MAX_NUM_OF_LIMBS (19) +#define FELEM_MAX_NUM_OF_LIMBS (19) #endif -typedef ec_nistp_felem_limb ec_nistp_felem[NISTP_FELEM_MAX_NUM_OF_LIMBS]; +typedef ec_nistp_felem_limb ec_nistp_felem[FELEM_MAX_NUM_OF_LIMBS]; // Conditional copy in constant-time (out = t == 0 ? z : nz). static void cmovznz(ec_nistp_felem_limb *out, @@ -280,8 +280,8 @@ static int16_t get_bit(const EC_SCALAR *in, size_t i) { // It forces an odd scalar and outputs digits in // {\pm 1, \pm 3, \pm 5, \pm 7, \pm 9, ...} // i.e. signed odd digits with _no zeroes_ -- that makes it "regular". -void scalar_rwnaf(int16_t *out, size_t window_size, - const EC_SCALAR *scalar, size_t scalar_bit_size) { +static void scalar_rwnaf(int16_t *out, size_t window_size, + const EC_SCALAR *scalar, size_t scalar_bit_size) { assert(window_size < 14); // The assert above ensures this works correctly. @@ -303,3 +303,198 @@ void scalar_rwnaf(int16_t *out, size_t window_size, } out[num_windows - 1] = window; } + +// The window size for scalar multiplication is hard coded for now. +#define SCALAR_MUL_WINDOW_SIZE (5) +#define SCALAR_MUL_TABLE_NUM_POINTS (1 << (SCALAR_MUL_WINDOW_SIZE - 1)) + +// To avoid dynamic allocation and freeing of memory in functions below +// we define maximum values of certain variables. +// +// The maximum number of limbs the table in |ec_nistp_scalar_mul| can have. +// Each point in the table has 3 coordinates that are field elements, +// and each field element has a defined maximum number of limbs. +#define SCALAR_MUL_TABLE_MAX_NUM_FELEM_LIMBS \ + (SCALAR_MUL_TABLE_NUM_POINTS * 3 * FELEM_MAX_NUM_OF_LIMBS) + +// Maximum number of windows (digits) for a scalar encoding which is +// determined by the maximum scalar bit size -- 521 bits in our case. +#define SCALAR_MUL_MAX_NUM_WINDOWS DIV_AND_CEIL(521, SCALAR_MUL_WINDOW_SIZE) + +// Generate table of multiples of the input point P = (x_in, y_in, z_in): +// table <-- [2i + 1]P for i in [0, SCALAR_MUL_TABLE_NUM_POINTS - 1]. +static void generate_table(const ec_nistp_meth *ctx, + ec_nistp_felem_limb *table, + const ec_nistp_felem_limb *x_in, + const ec_nistp_felem_limb *y_in, + const ec_nistp_felem_limb *z_in) +{ + const size_t felem_num_limbs = ctx->felem_num_limbs; + const size_t felem_num_bytes = felem_num_limbs * sizeof(ec_nistp_felem_limb); + + // Helper variables to access individual coordinates of a point. + const size_t x_idx = 0; + const size_t y_idx = felem_num_limbs; + const size_t z_idx = felem_num_limbs * 2; + + // table[0] <-- P. + OPENSSL_memcpy(&table[x_idx], x_in, felem_num_bytes); + OPENSSL_memcpy(&table[y_idx], y_in, felem_num_bytes); + OPENSSL_memcpy(&table[z_idx], z_in, felem_num_bytes); + + // Compute 2P. + ec_nistp_felem x_in_dbl, y_in_dbl, z_in_dbl; + ctx->point_dbl(x_in_dbl, y_in_dbl, z_in_dbl, + &table[x_idx], &table[y_idx], &table[z_idx]); + + // Compute the rest of the table. + for (size_t i = 1; i < SCALAR_MUL_TABLE_NUM_POINTS; i++) { + // Just getting pointers to i-th and (i-1)-th point in the table. + ec_nistp_felem_limb *point_i = &table[i * 3 * felem_num_limbs]; + ec_nistp_felem_limb *point_im1 = &table[(i - 1) * 3 * felem_num_limbs]; + + // table[i] <-- table[i - 1] + 2P + ctx->point_add(&point_i[x_idx], &point_i[y_idx], &point_i[z_idx], + &point_im1[x_idx], &point_im1[y_idx], &point_im1[z_idx], + 0, x_in_dbl, y_in_dbl, z_in_dbl); + } +} + +// Writes to out the idx-th point from table in constant-time. +static inline void select_point_from_table(const ec_nistp_meth *ctx, + ec_nistp_felem_limb *out, + const ec_nistp_felem_limb *table, + const size_t idx, + const size_t projective) { + // if projective != 0 then a point is (x, y, z), otherwise (x, y). + size_t point_num_coord = 2 + (projective != 0 ? 1 : 0); + size_t point_num_limbs = ctx->felem_num_limbs * point_num_coord; + + // The ifdef branching below is temporary. Using only constant_..._table_8 + // would be best for simplicity, but unfortunatelly, on x86 systems it is + // significantly slower than constant_..._table_w. +#if defined(EC_NISTP_USE_64BIT_LIMB) && defined(OPENSSL_64_BIT) + constant_time_select_entry_from_table_w(out, (crypto_word_t*) table, idx, + SCALAR_MUL_TABLE_NUM_POINTS, point_num_limbs); +#else + size_t entry_size = point_num_limbs * sizeof(ec_nistp_felem_limb); + constant_time_select_entry_from_table_8((uint8_t*)out, (uint8_t*)table, + idx, SCALAR_MUL_TABLE_NUM_POINTS, entry_size); +#endif +} + +// Multiplication of an arbitrary point by a scalar, r = [scalar]P. +// The product is computed with the use of a small table generated on-the-fly +// and the scalar recoded in the regular-wNAF representation. +// +// The precomputed (on-the-fly) table |table| holds odd multiples of P: +// [2i + 1]P for i in [0, SCALAR_MUL_TABLE_NUM_POINTS - 1]. +// Computing the negation of a point P = (x, y, z) is relatively easy: +// -P = (x, -y, z), +// so we may assume that for each point we have its negative as well. +// +// The scalar is recoded (regular-wNAF encoding) into signed digits as explained +// in |scalar_rwnaf| function. Namely, for a window size |w| we have: +// scalar' = s_0 + s_1*2^w + s_2*2^(2*w) + ... + s_{m-1}*2^((m-1)*w), +// where digits s_i are in [\pm 1, \pm 3, ..., \pm (2^w-1)] and +// m = ceil(scalar_bit_size / w). Note that for an odd scalar we have that +// scalar = scalar', while in the case of an even scalar we have that +// scalar = scalar' - 1. +// +// The required product, [scalar]P, is computed by the following algorithm. +// 1. Initialize the accumulator with the point from |table| +// corresponding to the most significant digit s_{m-1} of the scalar. +// 2. For digits s_i starting from s_{m-2} down to s_0: +// 3. Double the accumulator w times. (note that doubling a point [a]P +// w times results in [2^w*a]P). +// 4. Read from |table| the point corresponding to abs(s_i), +// negate it if s_i is negative, and add it to the accumulator. +// 5. Subtract P from the result if the scalar is even. +// +// Note: this function is constant-time. +void ec_nistp_scalar_mul(const ec_nistp_meth *ctx, + ec_nistp_felem_limb *x_out, + ec_nistp_felem_limb *y_out, + ec_nistp_felem_limb *z_out, + const ec_nistp_felem_limb *x_in, + const ec_nistp_felem_limb *y_in, + const ec_nistp_felem_limb *z_in, + const EC_SCALAR *scalar) { + // Make sure that the max table size is large enough. + assert(SCALAR_MUL_TABLE_MAX_NUM_FELEM_LIMBS >= + SCALAR_MUL_TABLE_NUM_POINTS * ctx->felem_num_limbs * 3); + + // Table of multiples of P = (x_in, y_in, z_in). + ec_nistp_felem_limb table[SCALAR_MUL_TABLE_MAX_NUM_FELEM_LIMBS]; + generate_table(ctx, table, x_in, y_in, z_in); + + // Regular-wNAF encoding of the scalar. + int16_t rwnaf[SCALAR_MUL_MAX_NUM_WINDOWS]; + scalar_rwnaf(rwnaf, SCALAR_MUL_WINDOW_SIZE, scalar, ctx->felem_num_bits); + + // We need two point accumulators, so we define them of maximum size + // to avoid allocation, and just take pointers to individual coordinates. + // (This cruft will dissapear when we refactor point_add/dbl to work with + // whole points instead of individual coordinates). + ec_nistp_felem_limb res[3 * FELEM_MAX_NUM_OF_LIMBS]; + ec_nistp_felem_limb tmp[3 * FELEM_MAX_NUM_OF_LIMBS]; + ec_nistp_felem_limb *x_res = &res[0]; + ec_nistp_felem_limb *y_res = &res[ctx->felem_num_limbs]; + ec_nistp_felem_limb *z_res = &res[ctx->felem_num_limbs * 2]; + ec_nistp_felem_limb *x_tmp = &tmp[0]; + ec_nistp_felem_limb *y_tmp = &tmp[ctx->felem_num_limbs]; + ec_nistp_felem_limb *z_tmp = &tmp[ctx->felem_num_limbs * 2]; + + // The actual number of windows (digits) of the scalar (denoted by m in the + // description above the function). + const size_t num_windows = DIV_AND_CEIL(ctx->felem_num_bits, SCALAR_MUL_WINDOW_SIZE); + + // Step 1. Initialize the accmulator (res) with the input point multiplied by + // the most significant digit of the scalar s_{m-1} (note that this digit + // can't be negative). + int16_t idx = rwnaf[num_windows - 1]; + idx >>= 1; + select_point_from_table(ctx, res, table, idx, 1); + + // Step 2. Process the remaining digits of the scalar (s_{m-2} to s_0). + for (int i = num_windows - 2; i >= 0; i--) { + // Step 3. Double the accumulator w times. + for (size_t j = 0; j < SCALAR_MUL_WINDOW_SIZE; j++) { + ctx->point_dbl(x_res, y_res, z_res, x_res, y_res, z_res); + } + + // Step 4a. Compute abs(s_i). + int16_t d = rwnaf[i]; + int16_t is_neg = (d >> 15) & 1; // is_neg = (d < 0) ? 1 : 0 + d = (d ^ -is_neg) + is_neg; // d = abs(d) + + // Step 4b. Select from table the point corresponding to abs(s_i). + idx = d >> 1; + select_point_from_table(ctx, tmp, table, idx, 1); + + // Step 4c. Negate the point if s_i < 0. + ec_nistp_felem ftmp; + ctx->felem_neg(ftmp, y_tmp); + + cmovznz(y_tmp, ctx->felem_num_limbs, is_neg, y_tmp, ftmp); + + // Step 4d. Add the point to the accumulator. + ctx->point_add(x_res, y_res, z_res, x_res, y_res, z_res, 0, x_tmp, y_tmp, z_tmp); + } + + // Step 5a. Negate the input point P (we negate it in-place since we already + // have it stored as the first entry in the table). + ec_nistp_felem_limb *x_mp = &table[0]; + ec_nistp_felem_limb *y_mp = &table[ctx->felem_num_limbs]; + ec_nistp_felem_limb *z_mp = &table[ctx->felem_num_limbs * 2]; + ctx->felem_neg(y_mp, y_mp); + + // Step 5b. Subtract P from the accumulator. + ctx->point_add(x_tmp, y_tmp, z_tmp, x_res, y_res, z_res, 0, x_mp, y_mp, z_mp); + + // Step 5c. Select |res| or |res - P| based on parity of the scalar. + ec_nistp_felem_limb t = scalar->words[0] & 1; + cmovznz(x_out, ctx->felem_num_limbs, t, x_tmp, x_res); + cmovznz(y_out, ctx->felem_num_limbs, t, y_tmp, y_res); + cmovznz(z_out, ctx->felem_num_limbs, t, z_tmp, z_res); +} diff --git a/crypto/fipsmodule/ec/ec_nistp.h b/crypto/fipsmodule/ec/ec_nistp.h index da4476265a..d567dc18ee 100644 --- a/crypto/fipsmodule/ec/ec_nistp.h +++ b/crypto/fipsmodule/ec/ec_nistp.h @@ -17,7 +17,7 @@ // set, s2n-bignum path is capable. #if !defined(OPENSSL_NO_ASM) && \ (defined(OPENSSL_LINUX) || defined(OPENSSL_APPLE)) && \ - ((defined(OPENSSL_X86_64) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX)) || \ + ((defined(OPENSSL_X86_64) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX)) || \ defined(OPENSSL_AARCH64)) # define EC_NISTP_USE_S2N_BIGNUM # define EC_NISTP_USE_64BIT_LIMB @@ -47,10 +47,12 @@ typedef uint32_t ec_nistp_felem_limb; // providing an appropriate methods object. typedef struct { size_t felem_num_limbs; + size_t felem_num_bits; void (*felem_add)(ec_nistp_felem_limb *c, const ec_nistp_felem_limb *a, const ec_nistp_felem_limb *b); void (*felem_sub)(ec_nistp_felem_limb *c, const ec_nistp_felem_limb *a, const ec_nistp_felem_limb *b); void (*felem_mul)(ec_nistp_felem_limb *c, const ec_nistp_felem_limb *a, const ec_nistp_felem_limb *b); void (*felem_sqr)(ec_nistp_felem_limb *c, const ec_nistp_felem_limb *a); + void (*felem_neg)(ec_nistp_felem_limb *c, const ec_nistp_felem_limb *a); ec_nistp_felem_limb (*felem_nz)(const ec_nistp_felem_limb *a); void (*point_dbl)(ec_nistp_felem_limb *x_out, @@ -96,7 +98,13 @@ void ec_nistp_point_add(const ec_nistp_meth *ctx, const ec_nistp_felem_limb *y2, const ec_nistp_felem_limb *z2); -void scalar_rwnaf(int16_t *out, size_t window_size, - const EC_SCALAR *scalar, size_t scalar_bit_size); +void ec_nistp_scalar_mul(const ec_nistp_meth *ctx, + ec_nistp_felem_limb *x_out, + ec_nistp_felem_limb *y_out, + ec_nistp_felem_limb *z_out, + const ec_nistp_felem_limb *x_in, + const ec_nistp_felem_limb *y_in, + const ec_nistp_felem_limb *z_in, + const EC_SCALAR *scalar); #endif // EC_NISTP_H diff --git a/crypto/fipsmodule/ec/ec_test.cc b/crypto/fipsmodule/ec/ec_test.cc index 6e1ecaeb14..6b8d0a82db 100644 --- a/crypto/fipsmodule/ec/ec_test.cc +++ b/crypto/fipsmodule/ec/ec_test.cc @@ -938,56 +938,58 @@ TEST(ECTest, SpecifiedCurve) { EXPECT_EQ(Bytes(kECKeyWithoutPublic), Bytes(out.data(), out.size())); } +// An arbitrary curve which is identical to P-256. +static const uint8_t kP256P[] = { + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +}; +static const uint8_t kP256A[] = { + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, +}; +static const uint8_t kP256B[] = { + 0x5a, 0xc6, 0x35, 0xd8, 0xaa, 0x3a, 0x93, 0xe7, 0xb3, 0xeb, 0xbd, + 0x55, 0x76, 0x98, 0x86, 0xbc, 0x65, 0x1d, 0x06, 0xb0, 0xcc, 0x53, + 0xb0, 0xf6, 0x3b, 0xce, 0x3c, 0x3e, 0x27, 0xd2, 0x60, 0x4b, +}; +static const uint8_t kP256X[] = { + 0x6b, 0x17, 0xd1, 0xf2, 0xe1, 0x2c, 0x42, 0x47, 0xf8, 0xbc, 0xe6, + 0xe5, 0x63, 0xa4, 0x40, 0xf2, 0x77, 0x03, 0x7d, 0x81, 0x2d, 0xeb, + 0x33, 0xa0, 0xf4, 0xa1, 0x39, 0x45, 0xd8, 0x98, 0xc2, 0x96, +}; +static const uint8_t kP256Y[] = { + 0x4f, 0xe3, 0x42, 0xe2, 0xfe, 0x1a, 0x7f, 0x9b, 0x8e, 0xe7, 0xeb, + 0x4a, 0x7c, 0x0f, 0x9e, 0x16, 0x2b, 0xce, 0x33, 0x57, 0x6b, 0x31, + 0x5e, 0xce, 0xcb, 0xb6, 0x40, 0x68, 0x37, 0xbf, 0x51, 0xf5, +}; +static const uint8_t kP256Order[] = { + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xbc, 0xe6, 0xfa, 0xad, 0xa7, 0x17, + 0x9e, 0x84, 0xf3, 0xb9, 0xca, 0xc2, 0xfc, 0x63, 0x25, 0x51, +}; + TEST(ECTest, ArbitraryCurve) { // Make a P-256 key and extract the affine coordinates. bssl::UniquePtr key(EC_KEY_new_by_curve_name(NID_X9_62_prime256v1)); ASSERT_TRUE(key); ASSERT_TRUE(EC_KEY_generate_key(key.get())); - // Make an arbitrary curve which is identical to P-256. - static const uint8_t kP[] = { - 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - }; - static const uint8_t kA[] = { - 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, - }; - static const uint8_t kB[] = { - 0x5a, 0xc6, 0x35, 0xd8, 0xaa, 0x3a, 0x93, 0xe7, 0xb3, 0xeb, 0xbd, - 0x55, 0x76, 0x98, 0x86, 0xbc, 0x65, 0x1d, 0x06, 0xb0, 0xcc, 0x53, - 0xb0, 0xf6, 0x3b, 0xce, 0x3c, 0x3e, 0x27, 0xd2, 0x60, 0x4b, - }; - static const uint8_t kX[] = { - 0x6b, 0x17, 0xd1, 0xf2, 0xe1, 0x2c, 0x42, 0x47, 0xf8, 0xbc, 0xe6, - 0xe5, 0x63, 0xa4, 0x40, 0xf2, 0x77, 0x03, 0x7d, 0x81, 0x2d, 0xeb, - 0x33, 0xa0, 0xf4, 0xa1, 0x39, 0x45, 0xd8, 0x98, 0xc2, 0x96, - }; - static const uint8_t kY[] = { - 0x4f, 0xe3, 0x42, 0xe2, 0xfe, 0x1a, 0x7f, 0x9b, 0x8e, 0xe7, 0xeb, - 0x4a, 0x7c, 0x0f, 0x9e, 0x16, 0x2b, 0xce, 0x33, 0x57, 0x6b, 0x31, - 0x5e, 0xce, 0xcb, 0xb6, 0x40, 0x68, 0x37, 0xbf, 0x51, 0xf5, - }; - static const uint8_t kOrder[] = { - 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xbc, 0xe6, 0xfa, 0xad, 0xa7, 0x17, - 0x9e, 0x84, 0xf3, 0xb9, 0xca, 0xc2, 0xfc, 0x63, 0x25, 0x51, - }; bssl::UniquePtr ctx(BN_CTX_new()); ASSERT_TRUE(ctx); - bssl::UniquePtr p(BN_bin2bn(kP, sizeof(kP), nullptr)); + bssl::UniquePtr p(BN_bin2bn(kP256P, sizeof(kP256P), nullptr)); ASSERT_TRUE(p); - bssl::UniquePtr a(BN_bin2bn(kA, sizeof(kA), nullptr)); + bssl::UniquePtr a(BN_bin2bn(kP256A, sizeof(kP256A), nullptr)); ASSERT_TRUE(a); - bssl::UniquePtr b(BN_bin2bn(kB, sizeof(kB), nullptr)); + bssl::UniquePtr b(BN_bin2bn(kP256B, sizeof(kP256B), nullptr)); ASSERT_TRUE(b); - bssl::UniquePtr gx(BN_bin2bn(kX, sizeof(kX), nullptr)); + bssl::UniquePtr gx(BN_bin2bn(kP256X, sizeof(kP256X), nullptr)); ASSERT_TRUE(gx); - bssl::UniquePtr gy(BN_bin2bn(kY, sizeof(kY), nullptr)); + bssl::UniquePtr gy(BN_bin2bn(kP256Y, sizeof(kP256Y), nullptr)); ASSERT_TRUE(gy); - bssl::UniquePtr order(BN_bin2bn(kOrder, sizeof(kOrder), nullptr)); + bssl::UniquePtr order( + BN_bin2bn(kP256Order, sizeof(kP256Order), nullptr)); ASSERT_TRUE(order); bssl::UniquePtr group( @@ -1034,27 +1036,8 @@ TEST(ECTest, ArbitraryCurve) { ASSERT_TRUE(EC_GROUP_set_generator(group2.get(), generator2.get(), order.get(), BN_value_one())); - EXPECT_EQ(0, EC_GROUP_cmp(group.get(), group.get(), NULL)); - EXPECT_EQ(0, EC_GROUP_cmp(group2.get(), group.get(), NULL)); - - bssl::UniquePtr converted_generator1(EC_POINT_point2bn( - group.get(), generator.get(), POINT_CONVERSION_UNCOMPRESSED, NULL, NULL)); - ASSERT_TRUE(converted_generator1); - - bssl::UniquePtr converted_generator2(EC_POINT_point2bn( - group2.get(), generator2.get(), POINT_CONVERSION_UNCOMPRESSED, NULL, NULL)); - ASSERT_TRUE(converted_generator2); - EXPECT_EQ(0, BN_cmp(converted_generator1.get(), converted_generator2.get())); - - bssl::UniquePtr converted_generator3(EC_POINT_point2bn( - group.get(), generator.get(), POINT_CONVERSION_COMPRESSED, NULL, NULL)); - ASSERT_TRUE(converted_generator3); - - bssl::UniquePtr converted_generator4(EC_POINT_point2bn( - group2.get(), generator2.get(), POINT_CONVERSION_COMPRESSED, NULL, NULL)); - ASSERT_TRUE(converted_generator4); - EXPECT_EQ(0, BN_cmp(converted_generator3.get(), converted_generator4.get())); - + EXPECT_EQ(0, EC_GROUP_cmp(group.get(), group.get(), nullptr)); + EXPECT_EQ(0, EC_GROUP_cmp(group2.get(), group.get(), nullptr)); // group3 uses the wrong generator. bssl::UniquePtr group3( @@ -1110,6 +1093,100 @@ TEST(ECTest, ArbitraryCurve) { EXPECT_EQ(0, EC_GROUP_cmp(group5.get(), group.get(), NULL)); } +TEST(ECTest, BIGNUMConvert) { + bssl::UniquePtr ctx(BN_CTX_new()); + ASSERT_TRUE(ctx); + bssl::UniquePtr p(BN_bin2bn(kP256P, sizeof(kP256P), nullptr)); + ASSERT_TRUE(p); + bssl::UniquePtr a(BN_bin2bn(kP256A, sizeof(kP256A), nullptr)); + ASSERT_TRUE(a); + bssl::UniquePtr b(BN_bin2bn(kP256B, sizeof(kP256B), nullptr)); + ASSERT_TRUE(b); + bssl::UniquePtr gx(BN_bin2bn(kP256X, sizeof(kP256X), nullptr)); + ASSERT_TRUE(gx); + bssl::UniquePtr gy(BN_bin2bn(kP256Y, sizeof(kP256Y), nullptr)); + ASSERT_TRUE(gy); + bssl::UniquePtr order( + BN_bin2bn(kP256Order, sizeof(kP256Order), nullptr)); + ASSERT_TRUE(order); + + bssl::UniquePtr group( + EC_GROUP_new_curve_GFp(p.get(), a.get(), b.get(), ctx.get())); + ASSERT_TRUE(group); + bssl::UniquePtr generator(EC_POINT_new(group.get())); + ASSERT_TRUE(generator); + ASSERT_TRUE(EC_POINT_set_affine_coordinates_GFp( + group.get(), generator.get(), gx.get(), gy.get(), ctx.get())); + ASSERT_TRUE(EC_GROUP_set_generator(group.get(), generator.get(), order.get(), + BN_value_one())); + + // Make a second instance of |group|. + bssl::UniquePtr group2( + EC_GROUP_new_curve_GFp(p.get(), a.get(), b.get(), ctx.get())); + ASSERT_TRUE(group2); + bssl::UniquePtr generator2(EC_POINT_new(group2.get())); + ASSERT_TRUE(generator2); + ASSERT_TRUE(EC_POINT_set_affine_coordinates_GFp( + group2.get(), generator2.get(), gx.get(), gy.get(), ctx.get())); + ASSERT_TRUE(EC_GROUP_set_generator(group2.get(), generator2.get(), + order.get(), BN_value_one())); + + // Convert |EC_POINT| to |BIGNUM| in uncompressed format with + // |EC_POINT_point2bn| and ensure results are the same. + bssl::UniquePtr converted_bignum( + EC_POINT_point2bn(group.get(), generator.get(), + POINT_CONVERSION_UNCOMPRESSED, nullptr, nullptr)); + ASSERT_TRUE(converted_bignum); + bssl::UniquePtr converted_bignum2( + EC_POINT_point2bn(group2.get(), generator2.get(), + POINT_CONVERSION_UNCOMPRESSED, nullptr, nullptr)); + ASSERT_TRUE(converted_bignum2); + EXPECT_EQ(0, BN_cmp(converted_bignum.get(), converted_bignum2.get())); + + // Convert |BIGNUM| back to |EC_POINTS| with |EC_POINT_bn2point| and ensure + // output is identical to the original. + bssl::UniquePtr converted_generator( + EC_POINT_bn2point(group.get(), converted_bignum.get(), nullptr, nullptr)); + ASSERT_TRUE(converted_generator); + EXPECT_EQ(0, EC_POINT_cmp(group.get(), generator.get(), + converted_generator.get(), nullptr)); + bssl::UniquePtr converted_generator2(EC_POINT_bn2point( + group2.get(), converted_bignum2.get(), nullptr, nullptr)); + ASSERT_TRUE(converted_generator2); + EXPECT_EQ(0, EC_POINT_cmp(group2.get(), generator2.get(), + converted_generator2.get(), nullptr)); + + // Convert |EC_POINT|s in compressed format with |EC_POINT_point2bn| and + // ensure results are the same. + converted_bignum.reset(EC_POINT_point2bn(group.get(), generator.get(), + POINT_CONVERSION_COMPRESSED, nullptr, + nullptr)); + ASSERT_TRUE(converted_bignum); + converted_bignum2.reset(EC_POINT_point2bn(group2.get(), generator2.get(), + POINT_CONVERSION_COMPRESSED, + nullptr, nullptr)); + ASSERT_TRUE(converted_bignum2); + EXPECT_EQ(0, BN_cmp(converted_bignum.get(), converted_bignum2.get())); + + // Convert |BIGNUM| back to |EC_POINTS| with |EC_POINT_bn2point| and ensure + // output is identical to the original. + converted_generator.reset( + EC_POINT_bn2point(group.get(), converted_bignum.get(), nullptr, nullptr)); + ASSERT_TRUE(converted_generator); + EXPECT_EQ(0, EC_POINT_cmp(group.get(), generator.get(), + converted_generator.get(), nullptr)); + converted_generator2.reset(EC_POINT_bn2point( + group2.get(), converted_bignum2.get(), nullptr, nullptr)); + ASSERT_TRUE(converted_generator2); + EXPECT_EQ(0, EC_POINT_cmp(group2.get(), generator2.get(), + converted_generator2.get(), nullptr)); + + // Test specific openssl/openssl#10258 case for |BN_zero|. + bssl::UniquePtr zero(BN_new()); + BN_zero(zero.get()); + EXPECT_FALSE(EC_POINT_bn2point(group.get(), zero.get(), nullptr, nullptr)); +} + TEST(ECTest, SetKeyWithoutGroup) { bssl::UniquePtr key(EC_KEY_new()); ASSERT_TRUE(key); diff --git a/crypto/fipsmodule/ec/internal.h b/crypto/fipsmodule/ec/internal.h index eb7f4fb64a..ed33ddbdb2 100644 --- a/crypto/fipsmodule/ec/internal.h +++ b/crypto/fipsmodule/ec/internal.h @@ -81,13 +81,14 @@ extern "C" { #endif -// ECDH_compute_shared_secret calculates the shared key between |pub_key| and |priv_key|. -// This function is called internally by |ECDH_compute_key| and |ECDH_compute_key_fips|. -// The shared secret is returned in |buf|, the value stored in |buflen| on entry is expected -// to be EC_MAX_BYTES or the number of bytes of the field element of the underlying curve. -// On exit, |buflen| is set to the actual number of bytes of the shared secret. -int ECDH_compute_shared_secret(uint8_t *buf, size_t *buflen, const EC_POINT *pub_key, - const EC_KEY *priv_key); +// ECDH_compute_shared_secret calculates the shared key between |pub_key| and +// |priv_key|. This function is called internally by |ECDH_compute_key| and +// |ECDH_compute_key_fips|. The shared secret is returned in |buf|, the value +// stored in |buflen| on entry is expected to be EC_MAX_BYTES or the number of +// bytes of the field element of the underlying curve. On exit, |buflen| is set +// to the actual number of bytes of the shared secret. +int ECDH_compute_shared_secret(uint8_t *buf, size_t *buflen, + const EC_POINT *pub_key, const EC_KEY *priv_key); // EC internals. @@ -770,6 +771,16 @@ struct ec_key_st { CRYPTO_EX_DATA ex_data; } /* EC_KEY */; +// d2i_ECPKParameters deserializes the |ECPKParameters| specified in RFC 3279 +// to an |EC_GROUP| from |inp|. Only deserialization of namedCurves or +// explicitly-encoded versions of namedCurves are supported. +EC_GROUP *d2i_ECPKParameters(EC_GROUP **out_group, const uint8_t **inp, + long len); + +// i2d_ECPKParameters serializes an |EC_GROUP| from |outp| according to the +// |ECPKParameters| specified in RFC 3279. Only serialization of namedCurves +// are supported. +int i2d_ECPKParameters(const EC_GROUP *group, uint8_t **outp); #if defined(__cplusplus) } // extern C diff --git a/crypto/fipsmodule/ec/p256.c b/crypto/fipsmodule/ec/p256.c index b0d94e69eb..f8789ced96 100644 --- a/crypto/fipsmodule/ec/p256.c +++ b/crypto/fipsmodule/ec/p256.c @@ -188,10 +188,12 @@ static void fiat_p256_point_add(fiat_p256_felem x3, fiat_p256_felem y3, DEFINE_METHOD_FUNCTION(ec_nistp_meth, p256_methods) { out->felem_num_limbs = FIAT_P256_NLIMBS; + out->felem_num_bits = 256; out->felem_add = fiat_p256_add; out->felem_sub = fiat_p256_sub; out->felem_mul = fiat_p256_mul; out->felem_sqr = fiat_p256_square; + out->felem_neg = fiat_p256_opp; out->felem_nz = fiat_p256_nz; out->point_dbl = fiat_p256_point_double; out->point_add = fiat_p256_point_add; @@ -214,20 +216,6 @@ static void fiat_p256_select_point_affine( fiat_p256_cmovznz(out[2], idx, out[2], fiat_p256_one); } -// fiat_p256_select_point selects the |idx|th point from a precomputation table -// and copies it to out. -static void fiat_p256_select_point(const fiat_p256_limb_t idx, size_t size, - const fiat_p256_felem pre_comp[/*size*/][3], - fiat_p256_felem out[3]) { - OPENSSL_memset(out, 0, sizeof(fiat_p256_felem) * 3); - for (size_t i = 0; i < size; i++) { - fiat_p256_limb_t mismatch = i ^ idx; - fiat_p256_cmovznz(out[0], mismatch, pre_comp[i][0], out[0]); - fiat_p256_cmovznz(out[1], mismatch, pre_comp[i][1], out[1]); - fiat_p256_cmovznz(out[2], mismatch, pre_comp[i][2], out[2]); - } -} - // fiat_p256_get_bit returns the |i|th bit in |in|. static crypto_word_t fiat_p256_get_bit(const EC_SCALAR *in, int i) { if (i < 0 || i >= 256) { @@ -309,68 +297,16 @@ static void ec_GFp_nistp256_dbl(const EC_GROUP *group, EC_JACOBIAN *r, static void ec_GFp_nistp256_point_mul(const EC_GROUP *group, EC_JACOBIAN *r, const EC_JACOBIAN *p, const EC_SCALAR *scalar) { - fiat_p256_felem p_pre_comp[17][3]; - OPENSSL_memset(&p_pre_comp, 0, sizeof(p_pre_comp)); - // Precompute multiples. - fiat_p256_from_generic(p_pre_comp[1][0], &p->X); - fiat_p256_from_generic(p_pre_comp[1][1], &p->Y); - fiat_p256_from_generic(p_pre_comp[1][2], &p->Z); - for (size_t j = 2; j <= 16; ++j) { - if (j & 1) { - fiat_p256_point_add(p_pre_comp[j][0], p_pre_comp[j][1], p_pre_comp[j][2], - p_pre_comp[1][0], p_pre_comp[1][1], p_pre_comp[1][2], - 0, p_pre_comp[j - 1][0], p_pre_comp[j - 1][1], - p_pre_comp[j - 1][2]); - } else { - fiat_p256_point_double(p_pre_comp[j][0], p_pre_comp[j][1], - p_pre_comp[j][2], p_pre_comp[j / 2][0], - p_pre_comp[j / 2][1], p_pre_comp[j / 2][2]); - } - } + fiat_p256_felem res[3], tmp[3]; + fiat_p256_from_generic(tmp[0], &p->X); + fiat_p256_from_generic(tmp[1], &p->Y); + fiat_p256_from_generic(tmp[2], &p->Z); - // Set nq to the point at infinity. - fiat_p256_felem nq[3] = {{0}, {0}, {0}}, ftmp, tmp[3]; + ec_nistp_scalar_mul(p256_methods(), res[0], res[1], res[2], tmp[0], tmp[1], tmp[2], scalar); - // Loop over |scalar| msb-to-lsb, incorporating |p_pre_comp| every 5th round. - int skip = 1; // Save two point operations in the first round. - for (size_t i = 255; i < 256; i--) { - // double - if (!skip) { - fiat_p256_point_double(nq[0], nq[1], nq[2], nq[0], nq[1], nq[2]); - } - - // do other additions every 5 doublings - if (i % 5 == 0) { - crypto_word_t bits = fiat_p256_get_bit(scalar, i + 4) << 5; - bits |= fiat_p256_get_bit(scalar, i + 3) << 4; - bits |= fiat_p256_get_bit(scalar, i + 2) << 3; - bits |= fiat_p256_get_bit(scalar, i + 1) << 2; - bits |= fiat_p256_get_bit(scalar, i) << 1; - bits |= fiat_p256_get_bit(scalar, i - 1); - crypto_word_t sign, digit; - ec_GFp_nistp_recode_scalar_bits(&sign, &digit, bits); - - // select the point to add or subtract, in constant time. - fiat_p256_select_point((fiat_p256_limb_t)digit, 17, - (const fiat_p256_felem(*)[3])p_pre_comp, tmp); - fiat_p256_opp(ftmp, tmp[1]); // (X, -Y, Z) is the negative point. - fiat_p256_cmovznz(tmp[1], (fiat_p256_limb_t)sign, tmp[1], ftmp); - - if (!skip) { - fiat_p256_point_add(nq[0], nq[1], nq[2], nq[0], nq[1], nq[2], - 0 /* mixed */, tmp[0], tmp[1], tmp[2]); - } else { - fiat_p256_copy(nq[0], tmp[0]); - fiat_p256_copy(nq[1], tmp[1]); - fiat_p256_copy(nq[2], tmp[2]); - skip = 0; - } - } - } - - fiat_p256_to_generic(&r->X, nq[0]); - fiat_p256_to_generic(&r->Y, nq[1]); - fiat_p256_to_generic(&r->Z, nq[2]); + fiat_p256_to_generic(&r->X, res[0]); + fiat_p256_to_generic(&r->Y, res[1]); + fiat_p256_to_generic(&r->Z, res[2]); } static void ec_GFp_nistp256_point_mul_base(const EC_GROUP *group, diff --git a/crypto/fipsmodule/ec/p384.c b/crypto/fipsmodule/ec/p384.c index 5dfb06b4e9..f11bee777b 100644 --- a/crypto/fipsmodule/ec/p384.c +++ b/crypto/fipsmodule/ec/p384.c @@ -273,10 +273,12 @@ static void p384_point_add(p384_felem x3, p384_felem y3, p384_felem z3, #if defined(EC_NISTP_USE_S2N_BIGNUM) DEFINE_METHOD_FUNCTION(ec_nistp_meth, p384_methods) { out->felem_num_limbs = P384_NLIMBS; + out->felem_num_bits = 384; out->felem_add = bignum_add_p384; out->felem_sub = bignum_sub_p384; out->felem_mul = bignum_montmul_p384_selector; out->felem_sqr = bignum_montsqr_p384_selector; + out->felem_neg = bignum_neg_p384; out->felem_nz = p384_felem_nz; out->point_dbl = p384_point_double; out->point_add = p384_point_add; @@ -284,10 +286,12 @@ DEFINE_METHOD_FUNCTION(ec_nistp_meth, p384_methods) { #else DEFINE_METHOD_FUNCTION(ec_nistp_meth, p384_methods) { out->felem_num_limbs = P384_NLIMBS; + out->felem_num_bits = 384; out->felem_add = fiat_p384_add; out->felem_sub = fiat_p384_sub; out->felem_mul = fiat_p384_mul; out->felem_sqr = fiat_p384_square; + out->felem_neg = fiat_p384_opp; out->felem_nz = p384_felem_nz; out->point_dbl = p384_point_double; out->point_add = p384_point_add; @@ -490,21 +494,6 @@ OPENSSL_STATIC_ASSERT(P384_MUL_WSIZE == 5, #define P384_MUL_TABLE_SIZE (P384_MUL_TWO_TO_WSIZE >> 1) #define P384_MUL_PUB_TABLE_SIZE (1 << (P384_MUL_PUB_WSIZE - 1)) -// p384_select_point selects the |idx|-th projective point from the given -// precomputed table and copies it to |out| in constant time. -static void p384_select_point(p384_felem out[3], - size_t idx, - p384_felem table[][3], - size_t table_size) { - OPENSSL_memset(out, 0, sizeof(p384_felem) * 3); - for (size_t i = 0; i < table_size; i++) { - p384_limb_t mismatch = i ^ idx; - p384_felem_cmovznz(out[0], mismatch, table[i][0], out[0]); - p384_felem_cmovznz(out[1], mismatch, table[i][1], out[1]); - p384_felem_cmovznz(out[2], mismatch, table[i][2], out[2]); - } -} - // p384_select_point_affine selects the |idx|-th affine point from // the given precomputed table and copies it to |out| in constant-time. static void p384_select_point_affine(p384_felem out[2], @@ -519,115 +508,19 @@ static void p384_select_point_affine(p384_felem out[2], } } -// Multiplication of a point by a scalar, r = [scalar]P. -// The product is computed with the use of a small table generated on-the-fly -// and the scalar recoded in the regular-wNAF representation. -// -// The precomputed (on-the-fly) table |p_pre_comp| holds 16 odd multiples of P: -// [2i + 1]P for i in [0, 15]. -// Computing the negation of a point P = (x, y) is relatively easy: -// -P = (x, -y). -// So we may assume that instead of the above-mentioned 64, we have 128 points: -// [\pm 1]P, [\pm 3]P, [\pm 5]P, ..., [\pm 31]P. -// -// The 384-bit scalar is recoded (regular-wNAF encoding) into 77 signed digits -// each of length 5 bits, as explained in the |p384_felem_mul_scalar_rwnaf| -// function. Namely, -// scalar' = s_0 + s_1*2^5 + s_2*2^10 + ... + s_76*2^380, -// where digits s_i are in [\pm 1, \pm 3, ..., \pm 31]. Note that for an odd -// scalar we have that scalar = scalar', while in the case of an even -// scalar we have that scalar = scalar' - 1. -// -// The required product, [scalar]P, is computed by the following algorithm. -// 1. Initialize the accumulator with the point from |p_pre_comp| -// corresponding to the most significant digit s_76 of the scalar. -// 2. For digits s_i starting from s_75 down to s_0: -// 3. Double the accumulator 5 times. (note that doubling a point [a]P -// seven times results in [2^5*a]P). -// 4. Read from |p_pre_comp| the point corresponding to abs(s_i), -// negate it if s_i is negative, and add it to the accumulator. -// -// Note: this function is constant-time. +// Multiplication of an arbitrary point by a scalar, r = [scalar]P. static void ec_GFp_nistp384_point_mul(const EC_GROUP *group, EC_JACOBIAN *r, const EC_JACOBIAN *p, const EC_SCALAR *scalar) { - p384_felem res[3] = {{0}, {0}, {0}}, tmp[3] = {{0}, {0}, {0}}, ftmp; - - // Table of multiples of P: [2i + 1]P for i in [0, 15]. - p384_felem p_pre_comp[P384_MUL_TABLE_SIZE][3]; + p384_felem res[3] = {{0}, {0}, {0}}, tmp[3] = {{0}, {0}, {0}}; - // Set the first point in the table to P. - p384_from_generic(p_pre_comp[0][0], &p->X); - p384_from_generic(p_pre_comp[0][1], &p->Y); - p384_from_generic(p_pre_comp[0][2], &p->Z); + p384_from_generic(tmp[0], &p->X); + p384_from_generic(tmp[1], &p->Y); + p384_from_generic(tmp[2], &p->Z); - // Compute tmp = [2]P. - p384_point_double(tmp[0], tmp[1], tmp[2], - p_pre_comp[0][0], p_pre_comp[0][1], p_pre_comp[0][2]); + ec_nistp_scalar_mul(p384_methods(), res[0], res[1], res[2], tmp[0], tmp[1], tmp[2], scalar); - // Generate the remaining 15 multiples of P. - for (size_t i = 1; i < P384_MUL_TABLE_SIZE; i++) { - p384_point_add(p_pre_comp[i][0], p_pre_comp[i][1], p_pre_comp[i][2], - tmp[0], tmp[1], tmp[2], 0 /* both Jacobian */, - p_pre_comp[i - 1][0], - p_pre_comp[i - 1][1], - p_pre_comp[i - 1][2]); - } - - // Recode the scalar. - int16_t rnaf[P384_MUL_NWINDOWS] = {0}; - scalar_rwnaf(rnaf, P384_MUL_WSIZE, scalar, 384); - - // Initialize the accumulator |res| with the table entry corresponding to - // the most significant digit of the recoded scalar (note that this digit - // can't be negative). - int16_t idx = rnaf[P384_MUL_NWINDOWS - 1] >> 1; - p384_select_point(res, idx, p_pre_comp, P384_MUL_TABLE_SIZE); - - // Process the remaining digits of the scalar. - for (int i = P384_MUL_NWINDOWS - 2; i >= 0; i--) { - // Double |res| 5 times in each iteration. - for (size_t j = 0; j < P384_MUL_WSIZE; j++) { - p384_point_double(res[0], res[1], res[2], res[0], res[1], res[2]); - } - - int16_t d = rnaf[i]; - // is_neg = (d < 0) ? 1 : 0 - int16_t is_neg = (d >> 15) & 1; - // d = abs(d) - d = (d ^ -is_neg) + is_neg; - - idx = d >> 1; - - // Select the point to add, in constant time. - p384_select_point(tmp, idx, p_pre_comp, P384_MUL_TABLE_SIZE); - - // Negate y coordinate of the point tmp = (x, y); ftmp = -y. - p384_felem_opp(ftmp, tmp[1]); - // Conditionally select y or -y depending on the sign of the digit |d|. - p384_felem_cmovznz(tmp[1], is_neg, tmp[1], ftmp); - - // Add the point to the accumulator |res|. - p384_point_add(res[0], res[1], res[2], res[0], res[1], res[2], - 0 /* both Jacobian */, tmp[0], tmp[1], tmp[2]); - - } - - // Conditionally subtract P if the scalar is even, in constant-time. - // First, compute |tmp| = |res| + (-P). - p384_felem_copy(tmp[0], p_pre_comp[0][0]); - p384_felem_opp(tmp[1], p_pre_comp[0][1]); - p384_felem_copy(tmp[2], p_pre_comp[0][2]); - p384_point_add(tmp[0], tmp[1], tmp[2], res[0], res[1], res[2], - 0 /* both Jacobian */, tmp[0], tmp[1], tmp[2]); - - // Select |res| or |tmp| based on the |scalar| parity, in constant-time. - p384_felem_cmovznz(res[0], scalar->words[0] & 1, tmp[0], res[0]); - p384_felem_cmovznz(res[1], scalar->words[0] & 1, tmp[1], res[1]); - p384_felem_cmovznz(res[2], scalar->words[0] & 1, tmp[2], res[2]); - - // Copy the result to the output. p384_to_generic(&r->X, res[0]); p384_to_generic(&r->Y, res[1]); p384_to_generic(&r->Z, res[2]); diff --git a/crypto/fipsmodule/ec/p521.c b/crypto/fipsmodule/ec/p521.c index 299eae050c..b1ed65dc7b 100644 --- a/crypto/fipsmodule/ec/p521.c +++ b/crypto/fipsmodule/ec/p521.c @@ -291,10 +291,12 @@ static void p521_point_add(p521_felem x3, p521_felem y3, p521_felem z3, #if defined(EC_NISTP_USE_S2N_BIGNUM) DEFINE_METHOD_FUNCTION(ec_nistp_meth, p521_methods) { out->felem_num_limbs = P521_NLIMBS; + out->felem_num_bits = 521; out->felem_add = bignum_add_p521; out->felem_sub = bignum_sub_p521; out->felem_mul = bignum_mul_p521_selector; out->felem_sqr = bignum_sqr_p521_selector; + out->felem_neg = bignum_neg_p521; out->felem_nz = p521_felem_nz; out->point_dbl = p521_point_double; out->point_add = p521_point_add; @@ -302,10 +304,12 @@ DEFINE_METHOD_FUNCTION(ec_nistp_meth, p521_methods) { #else DEFINE_METHOD_FUNCTION(ec_nistp_meth, p521_methods) { out->felem_num_limbs = P521_NLIMBS; + out->felem_num_bits = 521; out->felem_add = fiat_secp521r1_carry_add; out->felem_sub = fiat_secp521r1_carry_sub; out->felem_mul = fiat_secp521r1_carry_mul; out->felem_sqr = fiat_secp521r1_carry_square; + out->felem_neg = fiat_secp521r1_carry_opp; out->felem_nz = p521_felem_nz; out->point_dbl = p521_point_double; out->point_add = p521_point_add; @@ -427,21 +431,6 @@ OPENSSL_STATIC_ASSERT(P521_MUL_WSIZE == 5, #define P521_MUL_TABLE_SIZE (P521_MUL_TWO_TO_WSIZE >> 1) #define P521_MUL_PUB_TABLE_SIZE (1 << (P521_MUL_PUB_WSIZE - 1)) -// p521_select_point selects the |idx|-th projective point from the given -// precomputed table and copies it to |out| in constant time. -static void p521_select_point(p521_felem out[3], - size_t idx, - p521_felem table[][3], - size_t table_size) { - OPENSSL_memset(out, 0, sizeof(p521_felem) * 3); - for (size_t i = 0; i < table_size; i++) { - p521_limb_t mismatch = i ^ idx; - p521_felem_cmovznz(out[0], mismatch, table[i][0], out[0]); - p521_felem_cmovznz(out[1], mismatch, table[i][1], out[1]); - p521_felem_cmovznz(out[2], mismatch, table[i][2], out[2]); - } -} - // p521_select_point_affine selects the |idx|-th affine point from // the given precomputed table and copies it to |out| in constant-time. static void p521_select_point_affine(p521_felem out[2], @@ -456,115 +445,19 @@ static void p521_select_point_affine(p521_felem out[2], } } -// Multiplication of a point by a scalar, r = [scalar]P. -// The product is computed with the use of a small table generated on-the-fly -// and the scalar recoded in the regular-wNAF representation. -// -// The precomputed (on-the-fly) table |p_pre_comp| holds 16 odd multiples of P: -// [2i + 1]P for i in [0, 15]. -// Computing the negation of a point P = (x, y) is relatively easy: -// -P = (x, -y). -// So we may assume that instead of the above-mentioned 16, we have 32 points: -// [\pm 1]P, [\pm 3]P, [\pm 5]P, ..., [\pm 31]P. -// -// The 521-bit scalar is recoded (regular-wNAF encoding) into 105 signed digits -// each of length 5 bits, as explained in the |p521_felem_mul_scalar_rwnaf| -// function. Namely, -// scalar' = s_0 + s_1*2^5 + s_2*2^10 + ... + s_104*2^520, -// where digits s_i are in [\pm 1, \pm 3, ..., \pm 31]. Note that for an odd -// scalar we have that scalar = scalar', while in the case of an even -// scalar we have that scalar = scalar' - 1. -// -// The required product, [scalar]P, is computed by the following algorithm. -// 1. Initialize the accumulator with the point from |p_pre_comp| -// corresponding to the most significant digit s_104 of the scalar. -// 2. For digits s_i starting from s_104 down to s_0: -// 3. Double the accumulator 5 times. (note that doubling a point [a]P -// seven times results in [2^5*a]P). -// 4. Read from |p_pre_comp| the point corresponding to abs(s_i), -// negate it if s_i is negative, and add it to the accumulator. -// -// Note: this function is constant-time. +// Multiplication of an arbitrary point by a scalar, r = [scalar]P. static void ec_GFp_nistp521_point_mul(const EC_GROUP *group, EC_JACOBIAN *r, const EC_JACOBIAN *p, const EC_SCALAR *scalar) { - p521_felem res[3] = {{0}, {0}, {0}}, tmp[3] = {{0}, {0}, {0}}, ftmp; - - // Table of multiples of P: [2i + 1]P for i in [0, 15]. - p521_felem p_pre_comp[P521_MUL_TABLE_SIZE][3]; + p521_felem res[3] = {{0}, {0}, {0}}, tmp[3] = {{0}, {0}, {0}}; - // Set the first point in the table to P. - p521_from_generic(p_pre_comp[0][0], &p->X); - p521_from_generic(p_pre_comp[0][1], &p->Y); - p521_from_generic(p_pre_comp[0][2], &p->Z); + p521_from_generic(tmp[0], &p->X); + p521_from_generic(tmp[1], &p->Y); + p521_from_generic(tmp[2], &p->Z); - // Compute tmp = [2]P. - p521_point_double(tmp[0], tmp[1], tmp[2], - p_pre_comp[0][0], p_pre_comp[0][1], p_pre_comp[0][2]); + ec_nistp_scalar_mul(p521_methods(), res[0], res[1], res[2], tmp[0], tmp[1], tmp[2], scalar); - // Generate the remaining 15 multiples of P. - for (size_t i = 1; i < P521_MUL_TABLE_SIZE; i++) { - p521_point_add(p_pre_comp[i][0], p_pre_comp[i][1], p_pre_comp[i][2], - tmp[0], tmp[1], tmp[2], 0 /* both Jacobian */, - p_pre_comp[i - 1][0], - p_pre_comp[i - 1][1], - p_pre_comp[i - 1][2]); - } - - // Recode the scalar. - int16_t rnaf[P521_MUL_NWINDOWS] = {0}; - scalar_rwnaf(rnaf, P521_MUL_WSIZE, scalar, 521); - - // Initialize the accumulator |res| with the table entry corresponding to - // the most significant digit of the recoded scalar (note that this digit - // can't be negative). - int16_t idx = rnaf[P521_MUL_NWINDOWS - 1] >> 1; - p521_select_point(res, idx, p_pre_comp, P521_MUL_TABLE_SIZE); - - // Process the remaining digits of the scalar. - for (int i = P521_MUL_NWINDOWS - 2; i >= 0; i--) { - // Double |res| 7 times in each iteration. - for (size_t j = 0; j < P521_MUL_WSIZE; j++) { - p521_point_double(res[0], res[1], res[2], res[0], res[1], res[2]); - } - - int16_t d = rnaf[i]; - // is_neg = (d < 0) ? 1 : 0 - int16_t is_neg = (d >> 15) & 1; - // d = abs(d) - d = (d ^ -is_neg) + is_neg; - - idx = d >> 1; - - // Select the point to add, in constant time. - p521_select_point(tmp, idx, p_pre_comp, P521_MUL_TABLE_SIZE); - - // Negate y coordinate of the point tmp = (x, y); ftmp = -y. - p521_felem_opp(ftmp, tmp[1]); - // Conditionally select y or -y depending on the sign of the digit |d|. - p521_felem_cmovznz(tmp[1], is_neg, tmp[1], ftmp); - - // Add the point to the accumulator |res|. - p521_point_add(res[0], res[1], res[2], res[0], res[1], res[2], - 0 /* both Jacobian */, tmp[0], tmp[1], tmp[2]); - - } - - // Conditionally subtract P if the scalar is even, in constant-time. - // First, compute |tmp| = |res| + (-P). - p521_felem_copy(tmp[0], p_pre_comp[0][0]); - p521_felem_opp(tmp[1], p_pre_comp[0][1]); - p521_felem_copy(tmp[2], p_pre_comp[0][2]); - p521_point_add(tmp[0], tmp[1], tmp[2], res[0], res[1], res[2], - 0 /* both Jacobian */, tmp[0], tmp[1], tmp[2]); - - // Select |res| or |tmp| based on the |scalar| parity, in constant-time. - p521_felem_cmovznz(res[0], scalar->words[0] & 1, tmp[0], res[0]); - p521_felem_cmovznz(res[1], scalar->words[0] & 1, tmp[1], res[1]); - p521_felem_cmovznz(res[2], scalar->words[0] & 1, tmp[2], res[2]); - - // Copy the result to the output. p521_to_generic(&r->X, res[0]); p521_to_generic(&r->Y, res[1]); p521_to_generic(&r->Z, res[2]); diff --git a/crypto/fipsmodule/ecdsa/ecdsa_test.cc b/crypto/fipsmodule/ecdsa/ecdsa_test.cc index c4623bbf2c..82b8a616d0 100644 --- a/crypto/fipsmodule/ecdsa/ecdsa_test.cc +++ b/crypto/fipsmodule/ecdsa/ecdsa_test.cc @@ -181,7 +181,9 @@ TEST(ECDSATest, BuiltinCurves) { // Fill digest values with some random data. uint8_t digest[20], wrong_digest[20]; ASSERT_TRUE(RAND_bytes(digest, 20)); + CONSTTIME_DECLASSIFY(digest, 20); ASSERT_TRUE(RAND_bytes(wrong_digest, 20)); + CONSTTIME_DECLASSIFY(wrong_digest, 20); static const struct { int nid; diff --git a/crypto/fipsmodule/evp/evp_ctx.c b/crypto/fipsmodule/evp/evp_ctx.c index 0e51884651..fffcb37d09 100644 --- a/crypto/fipsmodule/evp/evp_ctx.c +++ b/crypto/fipsmodule/evp/evp_ctx.c @@ -611,7 +611,7 @@ int EVP_PKEY_encapsulate(EVP_PKEY_CTX *ctx, int EVP_PKEY_decapsulate(EVP_PKEY_CTX *ctx, uint8_t *shared_secret, size_t *shared_secret_len, - uint8_t *ciphertext, size_t ciphertext_len) { + const uint8_t *ciphertext, size_t ciphertext_len) { ENABLE_DIT_AUTO_DISABLE; if (ctx == NULL || ctx->pmeth == NULL || ctx->pmeth->decapsulate == NULL) { OPENSSL_PUT_ERROR(EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); diff --git a/crypto/fipsmodule/hmac/hmac.c b/crypto/fipsmodule/hmac/hmac.c index a9d55c5210..4b9ca9ac99 100644 --- a/crypto/fipsmodule/hmac/hmac.c +++ b/crypto/fipsmodule/hmac/hmac.c @@ -62,18 +62,27 @@ #include #include +#include "internal.h" #include "../../internal.h" #include "../service_indicator/internal.h" +#include "../md5/internal.h" +#include "../sha/internal.h" + typedef int (*HashInit)(void *); -typedef int (*HashUpdate)(void *, const void*, size_t); -typedef int (*HashFinal)(uint8_t *, void*); +typedef int (*HashUpdate)(void *, const void *, size_t); +typedef int (*HashFinal)(uint8_t *, void *); +typedef int (*HashInitFromState)(void *, const uint8_t *, uint64_t); +typedef int (*HashGetState)(void *, uint8_t *, uint64_t *); struct hmac_methods_st { const EVP_MD* evp_md; + size_t chaining_length; // chaining length in bytes HashInit init; HashUpdate update; - HashFinal finalize; // Not named final to avoid keywords + HashFinal finalize; // Not named final to avoid keywords + HashInitFromState init_from_state; + HashGetState get_state; }; // We need trampolines from the generic void* methods we use to the properly typed underlying methods. @@ -87,6 +96,10 @@ struct hmac_methods_st { static int AWS_LC_TRAMPOLINE_##HASH_NAME##_Update(void *, const void *, \ size_t); \ static int AWS_LC_TRAMPOLINE_##HASH_NAME##_Final(uint8_t *, void *); \ + static int AWS_LC_TRAMPOLINE_##HASH_NAME##_Init_from_state( \ + void *, const uint8_t *, uint64_t); \ + static int AWS_LC_TRAMPOLINE_##HASH_NAME##_get_state(void *, uint8_t *, \ + uint64_t *); \ static int AWS_LC_TRAMPOLINE_##HASH_NAME##_Init(void *ctx) { \ return HASH_NAME##_Init((HASH_CTX *)ctx); \ } \ @@ -97,7 +110,15 @@ struct hmac_methods_st { static int AWS_LC_TRAMPOLINE_##HASH_NAME##_Final(uint8_t *out, void *ctx) { \ return HASH_NAME##_Final(out, (HASH_CTX *)ctx); \ } \ - OPENSSL_STATIC_ASSERT(HASH_CBLOCK% 8 == 0, \ + static int AWS_LC_TRAMPOLINE_##HASH_NAME##_Init_from_state( \ + void *ctx, const uint8_t *h, uint64_t n) { \ + return HASH_NAME##_Init_from_state((HASH_CTX *)ctx, h, n); \ + } \ + static int AWS_LC_TRAMPOLINE_##HASH_NAME##_get_state( \ + void *ctx, uint8_t *out_h, uint64_t *out_n) { \ + return HASH_NAME##_get_state((HASH_CTX *)ctx, out_h, out_n); \ + } \ + OPENSSL_STATIC_ASSERT(HASH_CBLOCK % 8 == 0, \ HASH_NAME##_has_blocksize_not_divisible_by_eight_t) \ OPENSSL_STATIC_ASSERT(HASH_CBLOCK <= EVP_MAX_MD_BLOCK_SIZE, \ HASH_NAME##_has_overlarge_blocksize_t) \ @@ -121,13 +142,17 @@ struct hmac_method_array_st { HmacMethods methods[HMAC_METHOD_MAX]; }; -#define DEFINE_IN_PLACE_METHODS(EVP_MD, HASH_NAME) { \ - out->methods[idx].evp_md = EVP_MD; \ - out->methods[idx].init = AWS_LC_TRAMPOLINE_##HASH_NAME##_Init; \ - out->methods[idx].update = AWS_LC_TRAMPOLINE_##HASH_NAME##_Update; \ - out->methods[idx].finalize = AWS_LC_TRAMPOLINE_##HASH_NAME##_Final; \ - idx++; \ - assert(idx <= HMAC_METHOD_MAX); \ +#define DEFINE_IN_PLACE_METHODS(EVP_MD, HASH_NAME) { \ + out->methods[idx].evp_md = EVP_MD; \ + out->methods[idx].chaining_length = HASH_NAME##_CHAINING_LENGTH; \ + out->methods[idx].init = AWS_LC_TRAMPOLINE_##HASH_NAME##_Init; \ + out->methods[idx].update = AWS_LC_TRAMPOLINE_##HASH_NAME##_Update; \ + out->methods[idx].finalize = AWS_LC_TRAMPOLINE_##HASH_NAME##_Final; \ + out->methods[idx].init_from_state = \ + AWS_LC_TRAMPOLINE_##HASH_NAME##_Init_from_state; \ + out->methods[idx].get_state = AWS_LC_TRAMPOLINE_##HASH_NAME##_get_state; \ + idx++; \ + assert(idx <= HMAC_METHOD_MAX); \ } DEFINE_LOCAL_DATA(struct hmac_method_array_st, AWSLC_hmac_in_place_methods) { @@ -135,6 +160,7 @@ DEFINE_LOCAL_DATA(struct hmac_method_array_st, AWSLC_hmac_in_place_methods) { int idx = 0; // Since we search these linearly it helps (just a bit) to put the most common ones first. // This isn't based on hard metrics and will not make a significant different on performance. + // FIXME: all hashes but SHA256 have been disabled to check first SHA256 DEFINE_IN_PLACE_METHODS(EVP_sha256(), SHA256); DEFINE_IN_PLACE_METHODS(EVP_sha1(), SHA1); DEFINE_IN_PLACE_METHODS(EVP_sha384(), SHA384); @@ -163,8 +189,12 @@ static const HmacMethods *GetInPlaceMethods(const EVP_MD *evp_md) { // This means that if init is called but nothing changes, we don't need to reset our state. // HMAC_STATE_IN_PROGRESS: Initialized with an md and key. Data processed. // This means that if init is called we do need to reset state. -// HMAC_STATE_READY_NEEDS_INIT: Identical to state 1 but API contract requires that Init be called prior to use. +// HMAC_STATE_READY_NEEDS_INIT: Identical to state HMAC_STATE_INIT_NO_DATA but API contract requires that Init be called prior to use. // This is an optimization because we can leave the context in a state ready for use after completion. +// HMAC_STATE_PRECOMPUTED_KEY_EXPORT_READY: Identical to state HMAC_STATE_READY_NEEDS_INIT but marked to allow precompute key export +// This state is treated as HMAC_STATE_READY_NEEDS_INIT by Init/Update/Final. +// This state is the only state that in which a precompute key can be exported. +// This state is set by HMAC_set_precomputed_key_export. // other: Invalid state and likely a result of using unitialized memory. Treated the same as 0. // // While we are within HMAC methods we allow for the state value and actual state of the context to diverge. @@ -174,6 +204,7 @@ static const HmacMethods *GetInPlaceMethods(const EVP_MD *evp_md) { #define HMAC_STATE_INIT_NO_DATA 1 #define HMAC_STATE_IN_PROGRESS 2 #define HMAC_STATE_READY_NEEDS_INIT 3 +#define HMAC_STATE_PRECOMPUTED_KEY_EXPORT_READY 4 // Static assertion to ensure that no one has changed the value of HMAC_STATE_UNINITIALIZED. // This really must stay with a zero value. @@ -216,6 +247,48 @@ uint8_t *HMAC(const EVP_MD *evp_md, const void *key, size_t key_len, } } +uint8_t *HMAC_with_precompute(const EVP_MD *evp_md, const void *key, + size_t key_len, const uint8_t *data, + size_t data_len, uint8_t *out, + unsigned int *out_len) { + HMAC_CTX ctx; + OPENSSL_memset(&ctx, 0, sizeof(HMAC_CTX)); + int result; + + // We have to avoid the underlying SHA services updating the indicator + // state, so we lock the state here. + FIPS_service_indicator_lock_state(); + + uint8_t precomputed_key[HMAC_MAX_PRECOMPUTED_KEY_SIZE]; + size_t precomputed_key_len = HMAC_MAX_PRECOMPUTED_KEY_SIZE; + + result = + HMAC_Init_ex(&ctx, key, key_len, evp_md, NULL) && + HMAC_set_precomputed_key_export(&ctx) && + HMAC_get_precomputed_key(&ctx, precomputed_key, &precomputed_key_len) && + HMAC_Init_from_precomputed_key(&ctx, precomputed_key, precomputed_key_len, + evp_md) && + HMAC_Update(&ctx, data, data_len) && + HMAC_Final(&ctx, out, out_len); + + FIPS_service_indicator_unlock_state(); + + // Regardless of our success we need to zeroize our working state. + HMAC_CTX_cleanup(&ctx); + OPENSSL_cleanse(precomputed_key, HMAC_MAX_PRECOMPUTED_KEY_SIZE); + if (result) { + // Contrary to what happens in the |HMAC| function, we do not update the + // service indicator here (i.e., we do not call + // |HMAC_verify_service_indicator|), because the function + // |HMAC_with_precompute| is not FIPS-approved per se and is only used in + // tests. + return out; + } else { + OPENSSL_cleanse(out, EVP_MD_size(evp_md)); + return NULL; + } +} + void HMAC_CTX_init(HMAC_CTX *ctx) { OPENSSL_memset(ctx, 0, sizeof(HMAC_CTX)); } @@ -247,12 +320,34 @@ void HMAC_CTX_free(HMAC_CTX *ctx) { OPENSSL_free(ctx); } +// hmac_ctx_set_md_methods is used to set ctx->methods and ctx->md from md. +// It is called as part of the initialization of the ctx (HMAC_Init_*). +// It returns one on success, and zero otherwise. +static int hmac_ctx_set_md_methods(HMAC_CTX *ctx, const EVP_MD *md) { + if (md && (HMAC_STATE_UNINITIALIZED == ctx->state || ctx->md != md)) { + // The MD has changed + ctx->methods = GetInPlaceMethods(md); + if (ctx->methods == NULL) { + // Unsupported md + return 0; + } + ctx->md = md; + } else if (!hmac_ctx_is_initialized(ctx)) { + // We are not initialized but have not been provided with an md to + // initialize ourselves with. + return 0; + } + + return 1; +} + int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, size_t key_len, const EVP_MD *md, ENGINE *impl) { assert(impl == NULL); - if (HMAC_STATE_READY_NEEDS_INIT == ctx->state) { - ctx->state = HMAC_STATE_INIT_NO_DATA; // Mark that init has been called + if (HMAC_STATE_READY_NEEDS_INIT == ctx->state || + HMAC_STATE_PRECOMPUTED_KEY_EXPORT_READY == ctx->state) { + ctx->state = HMAC_STATE_INIT_NO_DATA; // Mark that init has been called } if (HMAC_STATE_INIT_NO_DATA == ctx->state) { @@ -270,16 +365,7 @@ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, size_t key_len, // or the md and they key has changed. // (It is a misuse to just change the md so we also assume that the key changes when the md changes.) - if (md && (HMAC_STATE_UNINITIALIZED == ctx->state || ctx->md != md)) { - // The MD has changed - ctx->methods = GetInPlaceMethods(md); - if (ctx->methods == NULL) { - // Unsupported md - return 0; - } - ctx->md = md; - } else if (!hmac_ctx_is_initialized(ctx)) { - // We are not initialized but have not been provided with an md to initialize ourselves with. + if (!hmac_ctx_set_md_methods(ctx, md)) { return 0; } @@ -402,6 +488,146 @@ void HMAC_CTX_reset(HMAC_CTX *ctx) { // Cleanup intrinsicly inits to all zeros which is valid } +int HMAC_set_precomputed_key_export(HMAC_CTX *ctx) { + if (HMAC_STATE_INIT_NO_DATA != ctx->state && + HMAC_STATE_PRECOMPUTED_KEY_EXPORT_READY != ctx->state) { + // HMAC_set_precomputed_key_export can only be called after Hmac_Init_* + OPENSSL_PUT_ERROR(HMAC, HMAC_R_NOT_CALLED_JUST_AFTER_INIT); + return 0; + } + ctx->state = HMAC_STATE_PRECOMPUTED_KEY_EXPORT_READY; + return 1; +} + +int HMAC_get_precomputed_key(HMAC_CTX *ctx, uint8_t *out, size_t *out_len) { + if (HMAC_STATE_PRECOMPUTED_KEY_EXPORT_READY != ctx->state) { + OPENSSL_PUT_ERROR(EVP, HMAC_R_SET_PRECOMPUTED_KEY_EXPORT_NOT_CALLED); + return 0; + } + + if (NULL == out_len) { + OPENSSL_PUT_ERROR(EVP, HMAC_R_MISSING_PARAMETERS); + return 0; + } + + const size_t chaining_length = ctx->methods->chaining_length; + size_t actual_out_len = chaining_length * 2; + assert(actual_out_len <= HMAC_MAX_PRECOMPUTED_KEY_SIZE); + if (NULL == out) { + // When out is NULL, we just set out_len. + // We keep the state as HMAC_STATE_PRECOMPUTED_KEY_EXPORT_READY + // to allow an actual export of the precomputed key immediately afterward. + *out_len = actual_out_len; + return 1; + } + // When out is not NULL, we need to check that *out_len is large enough + if (*out_len < actual_out_len) { + OPENSSL_PUT_ERROR(HMAC, HMAC_R_BUFFER_TOO_SMALL); + return 0; + } + *out_len = actual_out_len; + + uint64_t i_ctx_n; + // Initializing o_ctx_n to zero to remove warning from Windows ARM64 compiler + // "error : variable 'o_ctx_n' is used uninitialized whenever '&&' condition + // is false". Note this should not be necessary because get_state cannot fail. + uint64_t o_ctx_n = 0; + + const int ok = ctx->methods->get_state(&ctx->i_ctx, out, &i_ctx_n) && + ctx->methods->get_state(&ctx->o_ctx, out + chaining_length, &o_ctx_n); + + // ok should always be true as in our setting: get_state should always be + // successful since i_ctx/o_ctx have processed exactly one block + assert(ok); + (void)ok; // avoid unused variable warning when asserts disabled + + // Sanity check: we must have processed a single block at this time + size_t block_size = EVP_MD_block_size(ctx->md); + assert(8 * block_size == i_ctx_n); + assert(8 * block_size == o_ctx_n); + (void)block_size; // avoid unused variable warning when asserts disabled + + // The context is ready to be used to compute HMAC values at this point. + ctx->state = HMAC_STATE_INIT_NO_DATA; + + return 1; +} + +int HMAC_Init_from_precomputed_key(HMAC_CTX *ctx, + const uint8_t *precomputed_key, + size_t precomputed_key_len, + const EVP_MD *md) { + if (HMAC_STATE_READY_NEEDS_INIT == ctx->state || + HMAC_STATE_PRECOMPUTED_KEY_EXPORT_READY == ctx->state) { + ctx->state = HMAC_STATE_INIT_NO_DATA; // Mark that init has been called + } + + if (HMAC_STATE_INIT_NO_DATA == ctx->state) { + if (precomputed_key == NULL && (md == NULL || md == ctx->md)) { + // If nothing is changing then we can return without doing any further + // work. + return 1; + } + } + + // Now we assume that we need to re-initialize everything. + // See HMAC_Init_ex + + if (!hmac_ctx_set_md_methods(ctx, md)) { + return 0; + } + + const HmacMethods *methods = ctx->methods; + + const size_t chaining_length = methods->chaining_length; + const size_t block_size = EVP_MD_block_size(methods->evp_md); + assert(block_size <= EVP_MAX_MD_BLOCK_SIZE); + assert(2 * chaining_length <= HMAC_MAX_PRECOMPUTED_KEY_SIZE); + + if (2 * chaining_length != precomputed_key_len) { + return 0; + } + + // We require precomputed_key to be non-NULL, since here md changed + if (NULL == precomputed_key) { + OPENSSL_PUT_ERROR(HMAC, HMAC_R_MISSING_PARAMETERS); + return 0; + } + + // We have to avoid the underlying SHA services updating the indicator + // state, so we lock the state here. Technically this is not really needed, + // because the functions we call should not update the indicator state. + // But this is safer. + FIPS_service_indicator_lock_state(); + int result = 0; + + // Initialize i_ctx from the state stored in the first part of precomputed_key + // Recall that i_ctx is the state of the hash function after processing + // one block (ipad xor keyOrHashedKey) + if (!methods->init_from_state(&ctx->i_ctx, precomputed_key, block_size * 8)) { + goto end; + } + + // Same for o_ctx using the second part of precomputed_key + if (!methods->init_from_state(&ctx->o_ctx, precomputed_key + chaining_length, + block_size * 8)) { + goto end; + } + + OPENSSL_memcpy(&ctx->md_ctx, &ctx->i_ctx, sizeof(ctx->i_ctx)); + ctx->state = HMAC_STATE_INIT_NO_DATA; + + result = 1; +end: + FIPS_service_indicator_unlock_state(); + if (result != 1) { + // We're in some error state, so return our context to a known and + // well-defined zero state. + HMAC_CTX_cleanup(ctx); + } + return result; +} + int HMAC_Init(HMAC_CTX *ctx, const void *key, int key_len, const EVP_MD *md) { if (key && md) { HMAC_CTX_init(ctx); diff --git a/crypto/fipsmodule/hmac/internal.h b/crypto/fipsmodule/hmac/internal.h new file mode 100644 index 0000000000..a3c4defe2b --- /dev/null +++ b/crypto/fipsmodule/hmac/internal.h @@ -0,0 +1,28 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC + +#ifndef AWSLC_HEADER_HMAC_INTERNAL_H +#define AWSLC_HEADER_HMAC_INTERNAL_H + +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +// HMAC_with_precompute is only used in FIPS ACVP harness, in order to test +// the computation of HMAC using precomputed keys (internally). It should not +// be used for any other purposes as it outputs the same results as |HMAC| and is +// slower than |HMAC|. +// This function does not update the FIPS service indicator. +OPENSSL_EXPORT uint8_t *HMAC_with_precompute(const EVP_MD *evp_md, + const void *key, size_t key_len, + const uint8_t *data, + size_t data_len, uint8_t *out, + unsigned int *out_len); + +#if defined(__cplusplus) +} // extern C +#endif + +#endif // AWSLC_HEADER_HMAC_INTERNAL_H diff --git a/crypto/fipsmodule/kdf/internal.h b/crypto/fipsmodule/kdf/internal.h index 6a88c4e842..fb18d57433 100644 --- a/crypto/fipsmodule/kdf/internal.h +++ b/crypto/fipsmodule/kdf/internal.h @@ -10,6 +10,8 @@ #define SSKDF_MAX_INPUT_LEN (1 << 30) #define SSKDF_COUNTER_SIZE 4 +#define KBKDF_COUNTER_SIZE 4 + typedef struct { void *data; } sskdf_variant_ctx; diff --git a/crypto/fipsmodule/kdf/kbkdf.c b/crypto/fipsmodule/kdf/kbkdf.c new file mode 100644 index 0000000000..02c3ded24e --- /dev/null +++ b/crypto/fipsmodule/kdf/kbkdf.c @@ -0,0 +1,100 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC + +#include +#include "internal.h" + +int KBKDF_ctr_hmac(uint8_t *out_key, size_t out_len, const EVP_MD *digest, + const uint8_t *secret, size_t secret_len, + const uint8_t *info, size_t info_len) { + int ret = 0; + + HMAC_CTX *hmac_ctx = NULL; + + if (!out_key || out_len == 0 || !secret || secret_len == 0) { + goto err; + } + + hmac_ctx = HMAC_CTX_new(); + if (!hmac_ctx) { + goto err; + } + + if (!HMAC_Init_ex(hmac_ctx, secret, secret_len, digest, NULL)) { + goto err; + } + + // Determine the length of the output in bytes of a single invocation of the + // HMAC function. + size_t h_output_bytes = HMAC_size(hmac_ctx); + if (h_output_bytes == 0 || h_output_bytes > EVP_MAX_MD_SIZE) { + goto err; + } + + if (out_len > SIZE_MAX - h_output_bytes) { + goto err; + } + + // NIST.SP.800-108r1-upd1: Step 1: + // Determine how many output chunks are required to produce the requested + // output length |out_len|. This determines how many times the variant compute + // function will be called to output key material. + uint64_t n = ((uint64_t)out_len + (uint64_t)h_output_bytes - 1) / + (uint64_t)h_output_bytes; + + // NIST.SP.800-108r1-upd1: Step 2: + // Verify that the number of output chunks does not exceed an unsigned 32-bit + // integer. + if (n > UINT32_MAX) { + goto err; + } + + size_t done = 0; + + for (uint32_t i = 0; i < n; i++) { + uint8_t out_key_i[EVP_MAX_MD_SIZE]; + uint8_t counter[KBKDF_COUNTER_SIZE]; + size_t todo; + + // Increment the counter + CRYPTO_store_u32_be(&counter[0], i + 1); + + uint32_t written; + + // NIST.SP.800-108r1-upd1: Step 4a: + // K(i) := PRF(K_IN, [i] || FixedInfo) + // Note |hmac_ctx| has already been configured with the secret key + if (!HMAC_Init_ex(hmac_ctx, NULL, 0, NULL, NULL) || + !HMAC_Update(hmac_ctx, &counter[0], KBKDF_COUNTER_SIZE) || + !HMAC_Update(hmac_ctx, info, info_len) || + !HMAC_Final(hmac_ctx, out_key_i, &written) || + written != h_output_bytes) { + OPENSSL_cleanse(&out_key_i[0], EVP_MAX_MD_SIZE); + goto err; + } + + // NIST.SP.800-108r1-upd1: Step 4b, Step 5 + // result := result || K(i) + todo = h_output_bytes; + if (todo > out_len - done) { + todo = out_len - done; + } + OPENSSL_memcpy(out_key + done, out_key_i, todo); + done += todo; + + // When we are finished clear the temporary buffer to cleanse key material + // from stack. + if (done == out_len) { + OPENSSL_cleanse(&out_key_i[0], EVP_MAX_MD_SIZE); + } + } + + ret = 1; + +err: + if (ret <= 0 && out_key && out_len > 0) { + OPENSSL_cleanse(out_key, out_len); + } + HMAC_CTX_free(hmac_ctx); + return ret; +} diff --git a/crypto/fipsmodule/kdf/kdf_test.cc b/crypto/fipsmodule/kdf/kdf_test.cc index 9b5a78a037..25fb76c4c8 100644 --- a/crypto/fipsmodule/kdf/kdf_test.cc +++ b/crypto/fipsmodule/kdf/kdf_test.cc @@ -112,3 +112,67 @@ TEST(SSKDFTest, HMACNegativeTests) { ASSERT_FALSE(SSKDF_hmac(out.data(), out.size(), EVP_sha256(), &secret[0], 0, NULL, 0, NULL, 0)); } + +TEST(KBKDFCounterTest, TestVectors) { + FileTestGTest( + "crypto/fipsmodule/kdf/test/kbkdf_counter.txt", [](FileTest *t) { + const EVP_MD *md; + std::string hash; + ASSERT_TRUE(t->GetAttribute(&hash, "HASH")); + if (hash == "SHA1") { + md = EVP_sha1(); + } else if (hash == "SHA-224") { + md = EVP_sha224(); + } else if (hash == "SHA-256") { + md = EVP_sha256(); + } else if (hash == "SHA-384") { + md = EVP_sha384(); + } else if (hash == "SHA-512") { + md = EVP_sha512(); + } else { + FAIL() << "Unknown HASH=" + hash; + } + + std::vector secret, info, expect; + + ASSERT_TRUE(t->GetBytes(&secret, "SECRET")); + if (t->HasAttribute("INFO")) { + ASSERT_TRUE(t->GetBytes(&info, "INFO")); + } else { + info = std::vector(0); + } + ASSERT_TRUE(t->GetBytes(&expect, "EXPECT")); + + std::vector out(expect.size()); + + ASSERT_TRUE(KBKDF_ctr_hmac(out.data(), out.size(), md, secret.data(), + secret.size(), info.data(), info.size())); + ASSERT_EQ(Bytes(expect.data(), expect.size()), + Bytes(out.data(), out.size())); + }); +} + +TEST(KBKDFCounterTest, NegativeTests) { + const uint8_t secret[16] = {0}; + std::vector out(16); + + // NULL output + ASSERT_FALSE(KBKDF_ctr_hmac(NULL, out.size(), EVP_sha256(), &secret[0], + sizeof(secret), NULL, 0)); + + // zero-length output + ASSERT_FALSE(KBKDF_ctr_hmac(out.data(), 0, EVP_sha256(), &secret[0], + sizeof(secret), NULL, 0)); + + // NULL Digest + ASSERT_FALSE(KBKDF_ctr_hmac(out.data(), out.size(), NULL, &secret[0], + sizeof(secret), NULL, 0)); + + // NULL secret + ASSERT_FALSE(KBKDF_ctr_hmac(out.data(), out.size(), EVP_sha256(), NULL, + sizeof(secret), NULL, 0)); + + // zero-length secret + ASSERT_FALSE(KBKDF_ctr_hmac(out.data(), out.size(), EVP_sha256(), &secret[0], + 0, NULL, 0)); +} diff --git a/crypto/fipsmodule/kdf/sskdf.c b/crypto/fipsmodule/kdf/sskdf.c index a85f2753dc..6009614e83 100644 --- a/crypto/fipsmodule/kdf/sskdf.c +++ b/crypto/fipsmodule/kdf/sskdf.c @@ -177,7 +177,7 @@ static int sskdf_variant_hmac_compute(sskdf_variant_ctx *ctx, uint8_t *out, // NIST.SP.800-56Cr2: Step 6.2 HMAC-hash(salt, counter || secret || info) // Note: |variant_ctx->hmac_ctx| is already initalized with the salt during - // it's initial construction. + // its initial construction. if (!HMAC_Init_ex(variant_ctx->hmac_ctx, NULL, 0, NULL, NULL) || !HMAC_Update(variant_ctx->hmac_ctx, &counter[0], SSKDF_COUNTER_SIZE) || !HMAC_Update(variant_ctx->hmac_ctx, secret, secret_len) || @@ -224,10 +224,11 @@ static int SSKDF(const sskdf_variant *variant, sskdf_variant_ctx *ctx, } // NIST.SP.800-56Cr2 Step 1: - // Determine how many output chunks are required to produce the request output - // length |out_len|. This determines how many times the variant compute + // Determine how many output chunks are required to produce the requested + // output length |out_len|. This determines how many times the variant compute // function will be called to output key material. - uint64_t n = (out_len + h_output_bytes - 1) / h_output_bytes; + uint64_t n = ((uint64_t)out_len + (uint64_t)h_output_bytes - 1) / + (uint64_t)h_output_bytes; // NIST.SP.800-56Cr2 Step 2: // Verify that the number of output chunks does not exceed an unsigned 32-bit @@ -259,8 +260,9 @@ static int SSKDF(const sskdf_variant *variant, sskdf_variant_ctx *ctx, } // NIST.SP.800-56Cr2: Step 6.3. Step 7, Step 8 - // Combine the output from |out_key_i| with the output written to |out_key| so far. - // Ensure that we only copy |out_len| bytes in total from all chunks. + // Combine the output from |out_key_i| with the output written to |out_key| + // so far. Ensure that we only copy |out_len| bytes in total from all + // chunks. todo = h_output_bytes; if (todo > out_len - done) { todo = out_len - done; @@ -278,6 +280,9 @@ static int SSKDF(const sskdf_variant *variant, sskdf_variant_ctx *ctx, ret = 1; err: + if (ret <= 0 && out_key && out_len > 0) { + OPENSSL_cleanse(out_key, out_len); + } return ret; } diff --git a/crypto/fipsmodule/kdf/test/kbkdf_counter.txt b/crypto/fipsmodule/kdf/test/kbkdf_counter.txt new file mode 100644 index 0000000000..9414941f8f --- /dev/null +++ b/crypto/fipsmodule/kdf/test/kbkdf_counter.txt @@ -0,0 +1,800 @@ + +HASH=SHA1 +SECRET=F7591733C856593565130975351954D0155ABF3C +INFO=8E347EF55D5F5E99EAB6DE706B51DE7CE004F3882889E259FF4E5CFF102167A5A4BD711578D4CE17DD9ABE56E51C1F2DF950E2FC812EC1B217CA08D6 +EXPECT=34FE44B0D8C41B93F5FA64FB96F00E5B + +HASH=SHA1 +SECRET=47EA5D00826F111BFA468E899B0CA3FDA7C8336D +INFO=DBED14156E1826AA1D4D66469C64A32571701131B27A8C595E8C0595665478FCF1B95C76AE997DE6184C919F4B810D588548508CD4C457A541260725 +EXPECT=7DE374B5EF7240FD425B7CF7C54C29F4 + +HASH=SHA1 +SECRET=3B16654E2E89FF4ACC57A6C5C8AF8064807804A6 +INFO=05E16ED1B560C4C9C43267F12EE454DAFC0161BEDCE1A7D371EC17426D081EFE54AF8C2F2566D4EEA38AABAB91FB98FDBE16CCB6B114D677BCB00C66 +EXPECT=1D29A3D2499E9473DC62544D830BA773 + +HASH=SHA1 +SECRET=57E9FD6E0C54C90065593B44482342F2EA72C128 +INFO=BBBBEFD47C997609C4522F64BC94A028A5C55C471181C74FEF5A539BA3BE77674B4EED9BB5EA0995B162027164E38DC63CEEB0CE6F5E7730EBE3471A +EXPECT=9691F99B94F20F9C548276DE4EAF0665 + +HASH=SHA1 +SECRET=F7CA5241794B7E6BB242414431B04C704F00E018 +INFO=124690EBFAD3486989A0AE06A080208273B0A23FD5B706B4084A059AC769E7668E6C7A652E155B5EBC4A8325D70C25C73805346FD269FAEC8937483B +EXPECT=81369F6D72726BE58BE6429DEED8A4CB + +HASH=SHA1 +SECRET=B279F2098A21F15D34B2EDD452ACEC93985751E3 +INFO=96A4CAA2244B55D65448C1B701D3A1A6B6FF7DDDE45777D04B84944035E4A6C37B156B8D504C8B039F68E78EB98D2E1AE7BD9A137E3576206883E427 +EXPECT=4F9443CE7C76B8B7752ACB18B2F9B060 + +HASH=SHA1 +SECRET=5A720D9E92E76E47D7A63B94BDCCE70A1E2E45AD +INFO=EB7BE6F431C40C9E9A4AC3B2D511D7BBDB9B0E42AB6988A28D2333263EB86587FDE8D7E5F733E204627AAEC5CE5C7A83603612341B706C0F6B1EA95F +EXPECT=8164B4521BC9F09B8F4663762CF55B7E + +HASH=SHA1 +SECRET=433B7E6742BBD8040F7BAAA7882EB3BD9E9408B8 +INFO=67E84ACBDC0CBCA9C176A11CE6AF5F849AA17ECF97349DEF6B69F79C149FA4094630DAFC76BC69A66F1C68EB249C1DE2674A681AC0E2522BF5E760C2 +EXPECT=84D2C95EEEED9AE098800F337316E2A5 + +HASH=SHA1 +SECRET=C67BC860F8D775DBDE482B02918FCBA9C21DDAD0 +INFO=26D73E0BCEFB7E1EF62B675C263B7905B86B3DE8E923E40DDE9BA8A05DDE67C963A732A42281DAA93CBB76AEC6FE8D583C0A7DF035F8207E2E72082F +EXPECT=98E53AECF42D67E92861C2951D9D4F67 + +HASH=SHA1 +SECRET=88A2B39B436A45728838014D445F162FA9FD7B0A +INFO=F6647876BF617132A07C5C1B49A28EEC3C2B6A1074FD5142AAE132D533E4A172CB166EA89B7CB1CDD164C6FC7F254A06035B2B1D28AC45FF0871AE04 +EXPECT=37808EB40AF34454AD4DD6750BDC8E73 + +HASH=SHA1 +SECRET=C1EFB8D25AFFC61ED060D994FCD5017C2ADFC388 +INFO=B92FC055057FEC71B9C53E7C44872423A57ED186D6BA66D980FECD1253BF71479320B7BF38D505EF79CA4D62D78CA662642CDCEDB99503EA04C1DBE8 +EXPECT=8DB784CF90B573B06F9B7C7DCA63A1EA16D93EE7D70FF9D87FA2558E83DC4EAA + +HASH=SHA1 +SECRET=7E925CDCBC2FD5B3213CBA7714CB71D359936109 +INFO=1F95A577958981B7477CA2A71D44E66564E5A56D8189542718EB1ACE81436E16F4158789A46D19D4384E15555BC3B4FFA10B5471AC33BF904982F49E +EXPECT=557B5E1FE770B4C76EA0CCD31F5C1DD4FFA0463A8CE9FA04F7F5D1AA53380043 + +HASH=SHA1 +SECRET=98B6F0B4B7A822E8F567A32D27FEBDA9E46217D3 +INFO=E08A61238719B21FB5F6361F215EB5A5603233BF73A101F32F0963974C0117FC22D024D8193F19FE095CC873AFC7B89888CBE41762E7AB6E8B783A00 +EXPECT=5504793A62976E77B1F3F8BBEBC5854E1538FA002A98AF5B935D9850B65F9A61 + +HASH=SHA1 +SECRET=BA3E6131CF924C0E67BE01205DE07CC8C77CB94D +INFO=9D13B23FEDB18BAE4DFCF8C3F6070E83EA87A1ED20A4013737229E05F6C1F8F26B384A2CEDA37D632595156ABCB2120BDE03CC3AE9F3E58BCD9AE525 +EXPECT=5A4841A14A12F04C65AD5E60C9F10E4CED3AFE9EE10AA8AED66BA629D86E213C + +HASH=SHA1 +SECRET=5A3B55D4A4897A1F5AD4A3A5E2259CCD7B2FF62F +INFO=F02EF61961BE2DEFC3CB9064F30F9FD7CA80174AD3F60E02DD7B64528B6F4018029864555D3AC03E4215CBDDBFB4F258A26BEC46507A9CFE055437F7 +EXPECT=CB09826916E9B73BDDB6BF25E6CAF5B6856F88D51DB351FD8315E29088985921 + +HASH=SHA1 +SECRET=7B9167E2F62F379659AC044F450AEF7BD5E938C6 +INFO=F433E8F177D8FD5743ED5990A8A0EDA19AAE08DB11DB6F82E4E1DEE67D699F9E11D29D6D7DA8F06EB7E973F3A133FD54C0E40A445B5803D5AB366537 +EXPECT=44BBB6978694B107716347D6C674A634597CFC51A825B19C236DF68C3F409884 + +HASH=SHA1 +SECRET=6F9D1E92A8F155C2C71CA9D6860FA4DED3B5E01C +INFO=D2EB8E67B3118569162850CD849732242C2918554C4CF861948168B8DB783D45BCFDCEDB55BA9AC90E3914328333B5F12CD5548EDCB11E8BFB3F405F +EXPECT=CF4E88BB3231F905E403653FE9661836A325A00A3914EBE1923562505A1F00AE + +HASH=SHA1 +SECRET=8B20D1F259C52CE5AEB06A824966955110145A8F +INFO=43D9DBBF085414BEBBCAE8AAF890AB14A90FD925A582B010F9C3A08A3E10A897CB5AE809982C558B65F7C15FE7A316D5417F26C273075CAD5701D15D +EXPECT=4E2338976E7832F16FCDF06FD3DC4BD777D170CF56F6A8E2117435CF05D2B5F8 + +HASH=SHA1 +SECRET=693B557C8FD4054A8176CFC31B681815DBE07180 +INFO=8E948A3451AFD83B6041576D959456BAC97B9F93A3D133198CDA273D846F7B8BC9AFD19B8320C3C50859C292EBF967D88EA09124B333B1443163F18C +EXPECT=359B213884B0AA5650353A53FCBFBE5B0E0014F367CC2D430D7C437A3C09326C + +HASH=SHA1 +SECRET=FFF0FEE2364B5596F7388EC0021DDBA8CA94FB20 +INFO=5E40CEAFED97475454F581ECB848BAD010AF0D6783B32CE86BEC57AF6E5F05D6C731911F526ABAF49596D5FF0B29C20BBF7B849ECA058B1EABC60D64 +EXPECT=4BF749512E8493F2BAEC602BD1FB1DF841CC92496BB28C05363F77A4F2A54BA8 + +HASH=SHA1 +SECRET=E02BA5D5C410E855BBD13F840124273E6B864237 +INFO=B14E227B4438F973D671141C6246ACDC794EEE91BC7EFD1D5FF02A7B8FB044009FB6F1F0F64F35365FB1098E1995A34F8B70A71ED0265ED17AE7AE40 +EXPECT=F077C2D5D36A658031C74EF5A66AA48B4456530A + +HASH=SHA1 +SECRET=D1BCDF028960195CECF478B9E861EA243962EBE9 +INFO=EC4B12610F46F7FE4411E39AB28619EBFFEE6DFC638E4E938EF1E04342D75DEE121B375BE292295704C0908AA61B488F6A29AB106468134E71B5439E +EXPECT=09D71D8AEF2D34E552F9BE25FCFA60F87F5DB6AB + +HASH=SHA1 +SECRET=D1D2A910D689848FD220FF30177C690395842C69 +INFO=E8CEFEE65EB88095B6FC81D9313E35B490946F9F114AFE236D5D89277740E500FE50C2B900B6C9139B0AD93F398801707189ABF3BC73779D46FBC012 +EXPECT=60D8206CE28E33C67A884F0DCB8AB70CF55DA75F + +HASH=SHA1 +SECRET=887B74B2C8A6EB888FC389CC2DA1870F04047472 +INFO=C95FE491B7538A9D69E4CE3FFFC6C79AD8BB14CCB5FBBFB0A371ED6C018640B96382A57B23BAAE3F4D783A3D21D5B9D9E111A244C960118A22269CDD +EXPECT=F6602DE3DFCE074FE322D267C99A508A46CF2562 + +HASH=SHA1 +SECRET=F6AFA445041C7073A74C1FB92E915143F2F80BBC +INFO=07511C89C68A9ED06D525DFAF84E5115E60789200F8692EB13B2069900C2F88AAFCBB0B759A113E7FD65F7EF57913419B54DFDFCBFB48A9DD7B14D19 +EXPECT=23264C430FEE98C67796483A203861ADBB9C418F + +HASH=SHA1 +SECRET=EE5F23363E74A7F46811BD78E306DF6D0D546A41 +INFO=2793B5A9CA4723093944B9D585744A41D4E037F6B774A94E8D94EA43C92CFFE4E142BE1539EF9B30765BE3B8ACA854BCC4F300DE400C4FEF345B5F17 +EXPECT=9ABA4A847A411483BE6ED032B10213F1058A2E85 + +HASH=SHA1 +SECRET=D20FD65C2A15B99E189274DE5639B30D9D9DB4B7 +INFO=52D32FC17DC3827B316FAEDB8B8FDE901B35576FDC87669A685F20B1F8B2DE059F75634ED7B07BFDE390FC970B6D1D686DFB60E3BA968A84F161FDB8 +EXPECT=E9B534C532601378BE46880716F797156B9496F2 + +HASH=SHA1 +SECRET=8025B3590CD514C2F95DE9CC9003FF825622EE30 +INFO=170F08FB74DA631D2A8935EAC2E0CD59FF83F733D298930B6C458F7F8822FD621356861D0B98D0A8B137A1987C731199FFD4EFBEABC99C2A65810F84 +EXPECT=587E581D9E59418D57EAC0ABF93D9405CF4335B1 + +HASH=SHA1 +SECRET=9BE97630193F094DEC260D4CD87CCE72F66DCE58 +INFO=C5DFA14DF472B472A4BCA208C6D822E7FD46716ED1AE232CF335F6672335E1FCD40229F8C90E42E4833DA0AC9CA3702E79576079050E1762C2A940A7 +EXPECT=50E16BC16B54C8693B91A6AD362B255C2A7C684A + +HASH=SHA1 +SECRET=A8FB15282F90F49937B5ED6427660C37B3069583 +INFO=6570AC2DC0CD78465803341C29D73FBE5AB804B21F677FAC533218AD967749FCDDDD83F74A43839C64B073DAD3B430A4D199527A794F0F56987EA917 +EXPECT=7DBF26FB3A07AA3EC4B5739F3E08FD2B2D1D820B + +HASH=SHA1 +SECRET=693ADB9037184627AD300F176985BD379F388A95 +INFO=7F09570C2D9304EC743AB845A8761C126C18F5CF72358EADA2B5D1DEB43DC6A0F4FF8F933BEF7AF0BCFACB33FA07F8CA04A06AFE231835D5075996BE +EXPECT=52F55F51010E9BD78E4F58CAB274ECAFA561BD4E0F20DA84F0303A1E5FF9BEBC514361EC6DF5C77E + +HASH=SHA1 +SECRET=70EA0FFE1CD76DF86B78150993ABCF5F86E2DEEE +INFO=AF780B1F4C00B555761937FC569533710DC6C6B76C1B956C9B02ACF8727677D36C396ED1F3AA6671105C8F16C8DC75C1F7262BFB3DDEB80B96B3DF81 +EXPECT=780BB40A387ABF54A92AB91D24F3151236E9AFB8E826866F4433C32F0C6BE4EA347A78E2335F282D + +HASH=SHA1 +SECRET=EEA784C3E3181AF8348385456878A775C3A41708 +INFO=51D601ECB9CABB4C5CC6348983A1D24344831812F6D3559399396418FF8824B7EAE36350BB40DD66EC0677F49B5F5AB9805CB272562ED5C7CE0B30C9 +EXPECT=2FD6DC21E31CEE812AE3738CEA9F7C2A121C0A0F4B985B1D506EFF72FDE7FB6F0948C92A86B4B525 + +HASH=SHA1 +SECRET=3BE6E8A3EE32F99313A5B8A51E23E355812A4779 +INFO=30C3F68EE6E2FA79E892680A699831134E04099F99ACB76E35437CCDF1950EFEF3E7BDCDD15F5DFFDF4825E288323FB7789EB1C54B38A6D8B50EE5BC +EXPECT=0059FE3650673C2192A8D7746B6EFC8E069E42CC6AD9A10C46B6B741CC7D1DF04BE7E0FF805F0C26 + +HASH=SHA1 +SECRET=9ECA5318091614B60A3E44F69BA28F411EA990E8 +INFO=1079043F6F6DD21F7269A3C4214AB4D75282EE64F913E9ECC668192B6214FB12743EA9B687ECDA79D4CD97C2F78D9267A508FF46B95B0C8F1F31AEFB +EXPECT=D8575B817887183D95E92FF4ED887E52EE15BD75820DC1A9AE753DA6B97FCD6D82E8F457C2036770 + +HASH=SHA1 +SECRET=F9DFC13F0413C469F04135FAC630830F31ED82A9 +INFO=B663C6CDE0E3B5B0341F1905D19D58EE2E8DA999D788D34D4B8B4C091D97DCC73C1093169CC1D37948774FEC2CF08964D2EFD82F71A4407288A29C24 +EXPECT=4CA390CCAFE9D66D4B43A02CC337C3DD74D7BE5C49BEFF5EC4E139B2DD38CA695AA87B11B96031CE + +HASH=SHA1 +SECRET=EB0A4598FF09189A9136A97BBF8718A0CD673386 +INFO=17D388AE1CA1F603422E5E218E1AAA9E28BF24A794F073661327412206F2A2A6EE5EC0DA1BFF02DEE876991AB9DBC69E30E7F2596750B7D974E21CB2 +EXPECT=0AB9FD6102904D02D1CC3A31FFD8947444D1A15669847184540B408C072052504E066E4C995A388C + +HASH=SHA1 +SECRET=18A5533DF305E0217B622CD1DB488574D835FF73 +INFO=FF2E2C3E28BBF915B15E58E59E5FC2A49705D7EB17A84D9B410A84F2BFBE493DE705EC43491D570ACBB958AEFC4BEBC47AE7B2BC189D42EEA3C7188D +EXPECT=2830800C092C409CDCC73424A032456D05386FEFA101F01D69D5414FD22CAACFB23B9CCF7730504E + +HASH=SHA1 +SECRET=25C999C2BC65F3AEA03A309DC8CC8C000A11ED96 +INFO=FA7C3D22F1BC8EA5918FA71ADA7AC52EEC0D3C19F25D177A3DBB14FB3F369F52DD35F5430600C877850870A2021B15E426744569136E3A075419C3DF +EXPECT=1BA4EC321ADCF193C10B3D09BEC935E0286634C6579A95EFD492E812D085CC93C53AD29582247C45 + +HASH=SHA1 +SECRET=5A254A0DADA84BD3AAA5111A1191E654DBF9E728 +INFO=3583D0B1D0D70F26DBDDAA1DEA74E4986285185FF21333AD44935BCF68953F1D6DB4686C53BD6521C590CE9082E282C9493B2C7BC1F99D9F89D3EEBC +EXPECT=263FE62A0442DF8230D29EF860276D3A1A3F7E7216CEEB3813CD522EA2FA81B3E4AA4B08D7117975 + +HASH=SHA-256 +SECRET=DD1D91B7D90B2BD3138533CE92B272FBF8A369316AEFE242E659CC0AE238AFE0 +INFO=01322B96B30ACD197979444E468E1C5C6859BF1B1CF951B7E725303E237E46B864A145FAB25E517B08F8683D0315BB2911D80A0E8ABA17F3B413FAAC +EXPECT=10621342BFB0FD40046C0E29F2CFDBF0 + +HASH=SHA-256 +SECRET=32C4003872A146194023EAC1BDA74DDF2B66977DAD8A554B974CA2A62F7E4F43 +INFO=33D8CF6D0C759FB622D867EA8CF1285DE4020AF81CC287ADDF38CC2DA4643E6DB3B215AD3E33BFC47877C3620E336887C3C9AD4A1C6C0476B0F90A33 +EXPECT=F593AF0E1A492A7B904A2662897FA1C1 + +HASH=SHA-256 +SECRET=3C87E9CC98579B2749FF92C8B823A2AD6B367AC26622E7B5B80A2CE6F450E361 +INFO=777D66A24C2D3CC3299CA0718F4F6DCD1161ECBEF6EB3C71F0BC145B4E765A6EECE807A74CA7A698D55B2EB0D30D8D3E5CD71FD2A02B5608274C95C3 +EXPECT=EA6425F03803F2F06C42D8BA11CE4EE9 + +HASH=SHA-256 +SECRET=DE1F4ABFE78C4DD6F02331C057EFA939AE2DB1F1E7E7C650E07537D259B1EA72 +INFO=4C1F00198D76F3630D3260F56D94F52507394F4A98CDC2937D4ABAA76EBB3FD409A8769DF074DC002917EF818A4852CF004F0225EFC4663211A08C5D +EXPECT=74182AE81EE88C6A1634FF4991BEB9EE + +HASH=SHA-256 +SECRET=8C299BEEAEA05F445D59F5C354DBD0C8B4CD009F197A35369FB3B8612B75026B +INFO=1A73FCE114CB427DFAA6A699AB2751BF7136FA03D238DA492D9A036143148334294D0BDBE4852C8FF37706BB27D722DDF909BC8BEF91AC72E1841CAD +EXPECT=16614F3E848515CBE526FD2B1B5A0BC3 + +HASH=SHA-256 +SECRET=FA1F4C6CA4268480527B37CC1635B69D4A07118F720C60BD13CEDC867DFC2754 +INFO=464516D6F8BB6589928849B984BEA6DC3A45A3E3CBE9B27A95E94801C718901764D78910E72E5FE69860E76E8F2BBBA9298676E8A86B3D63563B45A2 +EXPECT=67507B8FBC813D2387F69BC4D3BDA44A + +HASH=SHA-256 +SECRET=AB12CA4709CA38350CAF5602EEE5218EC950353D19E65DE9EFC4DC2D19FE3017 +INFO=A8DA5B25E4F292C149C88F9203C5370822193CDAC135FBCD6B03F42300B8C372F68520DD3B525C79AA25F250B786E6DE7F5D73B5FB46C987671C7F76 +EXPECT=A7F44187D4EBE759B9A37E484A844E2B + +HASH=SHA-256 +SECRET=12A9C4B3921B4EC2754E1CF093A38A98702ACF0B8EB30F4BF654B8E3A10D3990 +INFO=C5170E6E67CCEFEBE8415EE2FB6429DF37D6C2EE8FBDD6B970C3A98D486E8718C2202F7FC09FE438D53DFDAEEB0874EF0FD7B4DFA209CC9C5C512BAA +EXPECT=9D1A3121760B17EA787E0F64C90BF109 + +HASH=SHA-256 +SECRET=218B0F76980954CC381F2646636907E702078F7902A1894952966547ACE91B19 +INFO=16CB8BEDB363B4795153A105C6049291F1978E7B2AAB01AB64E29C9BB562418CF3AB4F1EE6111D5ED2E58EBE3AD9665588E0E4D9DEAE8524B5B79ED8 +EXPECT=80175FD5C9CA252C52BDCB5302DE3DB1 + +HASH=SHA-256 +SECRET=3433F2C53824D6EEBE11E11EB656DA9740C5A342F5769DF7FE17C4C4801132CA +INFO=07E3F8FF03E6AF5AAD503CACB1DB119D3178BBD3E2377888D6F5E6B7BF7B8F7C563A88AA8A778848F4DC01B29CAF85A3B2307E3CDFE3DE1E7043DDEF +EXPECT=AE81916CD3641C59897512649B657252 + +HASH=SHA-256 +SECRET=E204D6D466AAD507FFAF6D6DAB0A5B26152C9E21E764370464E360C8FBC765C6 +INFO=7B03B98D9F94B899E591F3EF264B71B193FBA7043C7E953CDE23BC5384BC1A6293580115FAE3495FD845DADBD02BD6455CF48D0F62B33E62364A3A80 +EXPECT=770DFAB6A6A4A4BEE0257FF335213F78D8287B4FD537D5C1FFFA956910E7C779 + +HASH=SHA-256 +SECRET=AEEECA60F689A441B13B0CBCD441D82DF0CF87DAC236290DECE8931DF8D70317 +INFO=588EC041E5733B7031212C5538EFE4F6AAFA4CDA8B925D261F5A2688F007B3AC240EE12991E77B8CB8538678615966164A81872BD1CFCBFB39A4F450 +EXPECT=3E81D6113CEE3C529ECEDFF89A6999CE25B618C15EE1D19D45CB376A1C8E2374 + +HASH=SHA-256 +SECRET=95C8F76E11367EB55526A2B393AE906583D1CBDD47962146F506CC7CAC12F464 +INFO=CAD60E904B9E9C8BFEB4A81A7F67D3BDDCC05E64255870403770F3533AE6DD634CEAA56C53E688BD137AE6018935F34B9FB084EA48E4C688F6BBB388 +EXPECT=CAFA5CA03F5FBE2A242004ABCBD3DE1059C7407B1EE579255124AF189BE0B556 + +HASH=SHA-256 +SECRET=4D05391FD6FB1E292E78AB9619B1B72A7D63EE59D7435DD71897B9FF7EE7AE70 +INFO=F078E6F9B7F82D64554FA6B604C808F19B1F6AD6727DB7AA6F1C86694E104B5256C8B4039919646481D7EA2452C72C17A3E8D7D3916285460AA5EB81 +EXPECT=6B16E8F53B831AA5E86BF97A5C4FA37D089BC172DA5A1E7F662DD4A595339AB7 + +HASH=SHA-256 +SECRET=0F68A82FF1671634CC9136C564A9E02A767621DD74A1BF5C24129B808214B752 +INFO=648599809C2C4E7C6A5E6C449F0031EBF55C3661A895B44DB0572EE88083B1F4B12602AA55FC1DF150A65A6D6EEDA0AA79A434A1039B91B5A58FC7F1 +EXPECT=E297640F7768485D4A6E7CFE245F8BFA84700D99762692EA1A425CCC0275E8F5 + +HASH=SHA-256 +SECRET=43EEF6D824FD820405626AB9B6D79F1FD04E126AB8E17729E3AFC7CB5AF794F8 +INFO=5E269B5A7BDEDCC3E875E2725693A257FC60011AF7DCD68A3358507FE29B0659CA66951DAA05A15032033650BC58A27840F8FBE9F4088B9030738F68 +EXPECT=F0A339ECBCAE6ADD1AFB27DA3BA40A1320C6427A58AFB9DC366B219B7EB29ECF + +HASH=SHA-256 +SECRET=E5F31D98A13F2390B354DBA08E1E85116F99A56C2E8761D386958A0D0A888A29 +INFO=02113F45151B63F374CFCDB1BEDE41CEF2226A42B6C02C9F090F9F3DB39D4E98A8258C42E27224279CD45C2501CA45A008D8F38915E5B45B8B995F5B +EXPECT=98E7A023092A3064050902C8B90C749D72005626E0296E1DFB28C10E450B2DD3 + +HASH=SHA-256 +SECRET=E6CFA4864D31FE09960FFF968AC62F03B6F63B5A221CC95C3A1058B4B60FE9BC +INFO=4670A7C2C8F5643B75EA4CEED87E253E58FFAA87472299160D35240753F3164C0820374B1F4BEDB2DC34692C8B7E06C7951EE73F1645B10E3F272D17 +EXPECT=4F208E7306B076BF06133F439A6617A3D650253CF87775C3D6D7FEDE32139F4F + +HASH=SHA-256 +SECRET=2F180B1A10445D3D29683B3FACB856807689C6DE54C760F6050C3329A4A1DE4E +INFO=4D48CA49A279A79BF9B3A9E346C3AF74926FAB6AD881027DEE6A6F40DCF67ADD04EFEC4D86DF31BBFC190D43E3A7AEEA9BABCEBAEAD3B07B69DD3D6E +EXPECT=7765D245FDF143B6CA4359A2503AD1D8EA8CAA7DA8D556B1FE8E25C44C70DBE1 + +HASH=SHA-256 +SECRET=2EB0A49FD3199A57264F746B1C8ACBC76F7CE51223F72134590FBBEB3176264B +INFO=980A908ED38B6E699DF3F44E651F0AD3A9D209D3867C495E52673855D09E4F1A58FB477067C400CACCA9AB9260E205C4556905F2727925561280639C +EXPECT=06D5ADC2D5C517BF40406CC6BB56553B222F70ABF2BB505584000E88628BAF17 + +HASH=SHA-256 +SECRET=DC60338D884EECB72975C603C27B360605011756C697C4FC388F5176EF81EFB1 +INFO=44D7AA08FEBA26093C14979C122C2437C3117B63B78841CD10A4BC5ED55C56586AD8986D55307DCA1D198EDCFFBC516A8FBE6152AA428CDD800C062D +EXPECT=29AC07DCCF1F28D506CD623E6E3FC2FA255BD60B + +HASH=SHA-256 +SECRET=7A7ECEE4F04C1F5453F29B8C65BEE909F673C44F65E8F9CC18C31C32E9BCFC5A +INFO=0E2B53DD63008E0663962A25DA9CD55FC2EA377148783DA229FF7E3BD6142A43C854B6B5D06D87B535936F1EDC7CD067E8DBBA220A1F9A5932B32A64 +EXPECT=96FB8EF9380AC9DE2711EF5A83249E608DC7BFFC + +HASH=SHA-256 +SECRET=DE71295DC50AC76EB5579410869E918B7BE757AFA606C509BE4378BD98EDA686 +INFO=33CA974F8A1A065B75090C34C948449910495611E28ECC62CED29E5B3AE76217E139267041BA40BE235DE130438C1B14AA833296EB8E4BABE2101010 +EXPECT=385D60538090A45A2B2544275905C4C16E9F23E2 + +HASH=SHA-256 +SECRET=389DE0B914661C8AC9AAF11D261F6261BAF4652886CF20D2B13DF67BE2E3B185 +INFO=92B3D47EA042591DB5B531907E09A45A60A9C5C5FE0251806B7805B641C5B3EBCDE14D6CB542B4CB242B04F5A9B60B2C66D1A24C66141FE0B818E93C +EXPECT=B12A4E200180D20DA404B44C952639A955DD83D0 + +HASH=SHA-256 +SECRET=311AF73874E13A8ACAD981490113934065B3BD5D448E2BB8DFA68B70C69D7D45 +INFO=EA20FC9D32CDDC78DCBCA2EAD6C5C66744DA85D95B643D3FFAB2D0E2D5677DD3A27313153B019CFCD33B3E305ED66404042B2DB0E3DE2267CB557FD8 +EXPECT=C6E86D1043333FB690AD23274A908204D6BCBBAC + +HASH=SHA-256 +SECRET=756F9980CBEFEA398350B886CA4C1B2910708B5B8154A0EC4B9648AC77B9D7DC +INFO=3F09AA15D2FA769C6E8A3380BC55844827BA3EA64CCF177BEB4BFBD5142B3963BF696803A89974AA7D5AF0192CD525A83B71CD8EE7B0BC92F07B9515 +EXPECT=E3BC62B38A7B3C7E7FCB9EF007AA4AD6A9BB519C + +HASH=SHA-256 +SECRET=AE815BFE220407BCE6638F20AEFA109B63C7382E91D7BB8B010ED7C6D8D3757D +INFO=A221F1A3623ECA5F6385B57E7AFE67D134011C6058E3977DF977BDF0C7AB0E14B6D5C059F39948982912B047D00103DC4836E59B7A470222DBAE72CA +EXPECT=ED5E876D76227D0A7F1ACF5CA08C812995303FB2 + +HASH=SHA-256 +SECRET=D5110C808A951C5FE36AA4852FBDE7E0BC372A2C69A35ACFC890CC9FF78E40FB +INFO=F45187072A7D78FE91282F5825DAEB256A28A818C70A285262B080CD3EE2EC785125B27E4026AC9688A5EAE657DB578CD207956249F04A064870D677 +EXPECT=0E7DE25FC559969C08D973AB40795DF74E51965D + +HASH=SHA-256 +SECRET=4AA25A61F8B31F061E0FC1D541DEB20E097663CC57054E1F9A347989D8172D62 +INFO=E473FE5877FA137C50BEADC2295187F1B66E35C80B7864BF01C1C620FC09893991500E9A93851AE122170911562BF6EE3C75D5DDEADED27814623D2C +EXPECT=E235FF72D9C0A64A80CD86FDB26F1CD8740E2704 + +HASH=SHA-256 +SECRET=26B29556106C06A85C6950AAF20B5E08A523E80E198A725B69E23FE93BD2E16D +INFO=BD973F9BC6FF0226B2ACC682E0084B8C67B285EA9B8B838938D18F96DE84521FE47D560337115F8232D765166751F1B7026E608D25EC6504346D106D +EXPECT=E23B197D4D5FD8081CA54DD86A1D459CCA7C69B0 + +HASH=SHA-256 +SECRET=C4BEDBDDB66493E7C7259A3BBBC25F8C7E0CA7FE284D92D431D9CD99A0D214AC +INFO=1C69C54766791E315C2CC5C47ECD3FFAB87D0D273DD920E70955814C220EACACE6A5946542DA3DFE24FF626B4897898CAFB7DB83BDFF3C14FA46FD4B +EXPECT=1DA47638D6C9C4D04D74D4640BBD42AB814D9E8CC22F4326695239F96B0693F12D0DD1152CF44430 + +HASH=SHA-256 +SECRET=22256CA571D5C896DB80A8758FF81CF8631D2BC38C7E76F3BAFB0C2AF540A356 +INFO=9DD2DCD97B926251B50C6111D988E2951B02ACCC143702C88920CF36848F7C731756AB0537CB26E22725F11DE069E5335802B0CB56C158DD75014791 +EXPECT=A11AA3B1A93D2CE117550866C28D6974CF626719385B8868101A71A5D2AA793BC23C3CFDEBE52EC9 + +HASH=SHA-256 +SECRET=8066E057E73296158ED5479848317AD5E64EE8FB2E54D4EF85B7792F57F6F887 +INFO=16DA06E7360E4C27419B5F697E4C8548925CE55B53AD9E5E85B94C7F8E57AD142A1A0A0384337B1ADF6410EDCECEA921152B94D6B23A192CE6F602D7 +EXPECT=6EBEF64B358050EDC3C841F52188C5E442CB69630FEC0BE5114816AF616A333F0AAC5153E9265AA6 + +HASH=SHA-256 +SECRET=56F06CC0BC392AB108696C7DF71495B5A5CD3638E0A92045AF7CBD3076F6DD18 +INFO=4FCAE8F32B08B8FB746121A2DB2BC99FBB24B9FF11C60A1DC91F14AD9A60C6BAFE4ADB4DC160E9901EEEEB212A147EE0A7E76D4AEFA427F66A205C86 +EXPECT=CCDA8231FA5C0702BA282A8F18A0C1DEC6BAEF308625FB8F504410522C3F3B6D647C177054317A07 + +HASH=SHA-256 +SECRET=617F1B6810C551AA5C21878B00656351466069D41ADC7FEE1CED3F2F3432435C +INFO=2113F7005C580B77060990C2A3F9E8C8825F0D7E93A3F69F208EBB5B97C488DABD0DE7C7F00E08B4515DB2C02E1824F96E71C9A21A18079C4B649D81 +EXPECT=0325B1C85F3D25AD5EBC2E7B380CFEDE6B3C8ADA1AF0D0D5BCD9D2B34C29083115168B8AEF54C584 + +HASH=SHA-256 +SECRET=659EDB9A0DF51A3867D4AA01F74F60B7B151B01A3437C2F774FD37B6881A9CA4 +INFO=3FB60870A5813BADFD7AF948C3C924BEC05C92D540140BF28F2546825C5FBD40F1571493A178467FDA9793F2F7EED45B40EF68E0107B8D74C0CF32E4 +EXPECT=5C12C7B6EC38F516F72E76689C3106EE00EE8C2F50862CBF7FCB74BF8798EB761A33838788E276A3 + +HASH=SHA-256 +SECRET=5703C556E3A53B8D2BF3C5CA773D0C6ED2C1B66A84E6680475A8286941B246B3 +INFO=119E37D64B5AD702CA59F7952E5822CDAFB723C0F92CD70338A17E24D3AF6267AF792B189A01A8A3353ACD7A85B4D63BF7E4B22F73D7992E8E4E7389 +EXPECT=E302C1C1E5C8F688A7580997399433FBAAE499400B8A48901D808839C1EB49DFDF6324145F1EF01E + +HASH=SHA-256 +SECRET=9A6E83B91BD999737E577E449142DAE05968E774B223C1185DC574DA785C93CC +INFO=4B5845C6737202632B2946C3579D9D4582B475DFA373945B0ABC68C8F0DAA36520179439086C6809AA182094453BC0BFFEF0DC2888B96295FCD6E442 +EXPECT=E90E3ED902A8EB1FC67823AF534A2B48466BF2C5877DAD0AADC7D6FF741D8F437B2E6D0031846960 + +HASH=SHA-256 +SECRET=9BEBF465003A85BC25ED340C6095D963885504D3CF0266AF252EFFD22AD32D6F +INFO=17506DB459DCA14840917DAD23264303AB1C83E35018A72258099D20D4F8AB85C5227404B23AED6AE108BD1282E50A00D160E534264770A11B4FCC75 +EXPECT=1A32EA308AA6DC6F1B7C77F1D9AAE40672FCAE22438BBB0528E280073B31797886B6A80036A00E19 + +HASH=SHA-256 +SECRET=1D9209183E557D3AAC7E2AB53D26EC659DF2A745FE56A53818EF5853A42CE194 +INFO=C01A431A32833930A22ABEE5C6EA34DB459316DEF3B241529ECE7E39E2069A1E6B942946132EEBC9679801D2CEFEF4BBB6A1B84EF853325B7BC498FD +EXPECT=DABCFFA16A7589DEEE6C768AAF01E0813DE909005526DA54700083EF068F854D49941279689A1726 + +HASH=SHA-384 +SECRET=216ED044769C4C3908188ECE61601AF8819C30F501D12995DF608E06F5E0E607AB54F542EE2DA41906DFDB4971F20F9D +INFO=638E9506A2C7BE69EA346B84629A010C0E225B7548F508162C89F29C1DDBFD70472C2B58E7DC8AA6A5B06602F1C8ED4948CDA79C62708218E26AC0E2 +EXPECT=D4B144BB40C7CABED13963D7D4318E72 + +HASH=SHA-384 +SECRET=912141F04E2BCF79FE4BAFE46F44DC9082CA39DCF964D9409C486139787467EAC87095A8F2E2561C19D418EE6F3D836B +INFO=CBA728C3CB42F62B9FDE6598C8628E0F88F7639FD605B39D81296A0749F27C8B75830686DEAB949DE1BBD0062E46524B1F30746C1CBA02508FB4C29F +EXPECT=158B313C6D28B03B288AE2154EAB2140 + +HASH=SHA-384 +SECRET=43C80426677180BC073D093A809436E16D56082647CE17948765D560B6CCF0442129EB55341370768197BADC754B095D +INFO=FD71974C9F2D40C04D62B73AEDB6A380AB65E84712E7C7DC3C109AE30311F3EDE77C7ECE413DD5769FD74CBCCB020C92F7B87C376205FF9490B689C3 +EXPECT=E241E2C538FD0293DE1D5F6E7CD56C7C + +HASH=SHA-384 +SECRET=06F29A5D684A2EEB623532484A691AD85040D987248DC82C51D9B0B7E7BE51847E9076E26FA7D33BE6856207FE4CE035 +INFO=56FAFFD4911601C217725FD816FE0C1A1FBD8F1553F20D8101422FC72058CAB9C2E63A6266A726075CC31EDC0A327FA4449B5EC981A86D9141932AB9 +EXPECT=A2DF03F0212038CB83BA468E9E05A502 + +HASH=SHA-384 +SECRET=FCF5DB9AB3214FD36D9FB4247AB2A6F58862F1387917E585FA656FE0A19847B3C111FBEE5A868092F224C79658EBDB52 +INFO=C792FC8B32A86C94212B5C845FC78A9A66D94EF98378E4D800B369F543F0A077FDE0B6B109EFB4C6BACFA1502249DDC1E39C7C56DFBE3B285D8E1970 +EXPECT=B75B0C95AE60EACF7ED7B6A216C0A395 + +HASH=SHA-384 +SECRET=4179A34CAC89DE053CC0E1557D41BA96C2AEA4E35A0D304DFE2D4591DFD5DEEDCE94FFC7BA6ABA8B17DCDA0E9CF8C420 +INFO=3BFAB95F22FC446E0E3682EE197F34DB085FF24088FB6A26299878A309EAE112EE32BF4882E218AD0A618B3062D685707E1261C15D62D14C5CE958D0 +EXPECT=49A25905C12EF9FECE58C0A2861078C6 + +HASH=SHA-384 +SECRET=816E498680E5CC39B8264709B508AF653A50B927FCBDCEFF2EBE62BA3A25B79950268D3114AC49168C57C419FD77DC50 +INFO=40486CB22CACDDDE870B727DE81E11667EF92CB4F920CE7F2F80A0EF29ADD016142CE2694E866E1D631B5C1C13BA1E3FD0DDC9A16447C20186FAC13B +EXPECT=79A867C0333D346F0DF8EA2C6D4CB14B + +HASH=SHA-384 +SECRET=6CFC570A4ADCEBCCB8651C6DB504E765364079EF34315C783546605AC48CC2AA933C6F10E824ACC3C7338A09C01E1A30 +INFO=D5F8EE6DE37E3D1A54C370BC2A80C88749A546857C60C6EE6DF22F4F166BE188BD2999870FA5FCC1D7CC455828F3446E6A450A14A667E715D3C16622 +EXPECT=7CF844677F8970285AD148E9904AB137 + +HASH=SHA-384 +SECRET=D6D454975EDF1598FC5532C5C3D9FA0ECD357EA587B0601C90C7515729A84BE28C0C9313A6EC757B8C2AF5C17E994675 +INFO=5C3EDF4D856931D83F8939BE9A245EF34638F406DEE47AAE5162A71F0F68C46C95CEDE46FA452A83D0691E7D06DA9AB200FD5FB2F7C5F28C8A122C41 +EXPECT=0B14055CFB841A465259B80DC3E87D90 + +HASH=SHA-384 +SECRET=D62569C3669F1012C966F54AC5AC121D8A89871582347B13B208DEFD50CD3BC4908C9896257B10345BEC2D40DF2B6C5D +INFO=918C0244A3A7870E3AE4F8C07628BB754A0F6F8A52137D549C7E9E17103B42A029688857185E608470953F787CC97A7ED75E7A3609EED2F3B1A20E39 +EXPECT=2DC4524AECCB5A21ACF1F0B13053F5A5 + +HASH=SHA-384 +SECRET=8FCA201473433F2DC8F6AE51E48DE1A5654CE687E711D2D65F0DC5DA6FEE9A6A3DB9D8535D3E4455AB53D35850C88272 +INFO=195BD88AA2D4211912334FE2FD9BD24522F7D9FB08E04747609BC34F2538089A9D28BBC70B2E1336C3643753CEC6E5CD3F246CAA915E3C3A6B94D3B6 +EXPECT=F51AC86B0F462388D189ED0197EF99C2FF3A65816D8442E5EA304397B98DD11F + +HASH=SHA-384 +SECRET=96C45DCE79A02D2BFC2A10A8E744C974812E6A9B83474CE53743FCB334B87D826F411BAD836DE017790CFE07087F8B02 +INFO=80698CD988E02B1BBB0D02C1BB2BDAF544FFDB3527EDE621D2F2F5EAB4A4964EF530378E94AE9AB7484D1EEF854832D5BB204A8BFF21651A9E3CE758 +EXPECT=8EF1E0FC26D3997F985AB5567066391C0D8CED54F1CDABCE57B5ACCABE21EF78 + +HASH=SHA-384 +SECRET=822C764A1B117085C10F0E689814D2BFBD9B43287F1A8C75D795A9831A286184C8586F3577B6E5BBCE1637925E04FC47 +INFO=AF346110B941B11D2189316C9FC2B9F4213775A5D7368D35412678A28FCD03B07F0549666EFDF30C80F0AB5563720A56EF616A13BB8F7780036FC08E +EXPECT=E0AE235CB82380527BE76934A69622396D90E7BFA7E2D295E4375BCEE0D1B101 + +HASH=SHA-384 +SECRET=340E212D758E83CC5B89E4B56A86EE8C9631AE4E4BBAEC15AC095EA4407BC7B634AD630DD0BE85A91C08A8C7E1E1030B +INFO=3CD5561AD12FADFCE408E04180AFCEE38B83156B9E4BE0779C4F0DB9E26BFE5CCD43E15921977CD26B1DB8288B80089EB7D1BBD7F59E1011B3E18B51 +EXPECT=05FA577B7081210E7C9DE69DB03D7C2026CF4469A90BFA29F1C2C10818D463E0 + +HASH=SHA-384 +SECRET=BEB7DBDE7E0A8ACCA2F3EBF8C37A1E9C318E447B9592F93FC9021E690888391A354810B9673E1E2400F05060D3AAB851 +INFO=560BE29C62ECA33855BD1CC70ADFAF4E7EABA4FE55075D466E91467AC4F4B9BEB678E1B2C961511AB12AFA28D34A11CD2EE2B151609BC851036D1845 +EXPECT=63F96D3339E355487091287012D8D46280387567AFB67517AC616D340FA36466 + +HASH=SHA-384 +SECRET=A360F0B516FC35A76D1D4A9EC6A08E856B8EFA9310411398BF1AC69F28539300BC2256D76388E504C1F60C8B60E60698 +INFO=0206FAF5C9AC40EAACA9A1D16AC71F19E2DE844DB2E73E4FB7E34567E221D5ACBC6931412745DCB0B05E119284D21C4BB3F9A939271750F68784FD9D +EXPECT=88ECEE742A071F9D24720520E8BDBFE140CE57E7FE2B686966871EED0A6165EB + +HASH=SHA-384 +SECRET=DC875B2F393C1D40C241261B0918790601C8B908608448F766E6E8AECFA5E4927E7574AF4030047D98B11468108288E3 +INFO=C63AE3B995AFEE4AC3154BF9EFC6BB10E537736AB5BC427F3C376BE8FB81AA5E0764A4B0165EAAB0A519ECFF45E6F6C769EA664BDD6935C94D8ACEC2 +EXPECT=473DC6A980D6E2465BFA3D02E7E5341B9CEA5E09F27767A5C58F7DB60B5F744B + +HASH=SHA-384 +SECRET=49DB7631A3507F02D6B9048E26AFCE48B05E91B50FEC3B7CCF2E8BDE9AA9D79C0B6673F814D8CE39795E79239CBC3967 +INFO=C9083A35299B25141CDC60B4CC7C24263693F15E7AF1A8C6D121D798FE0B9948A83338DC2CBDC75876EFC83FD3398CA0DF223B105B0F13EC2033BAD4 +EXPECT=B350425347979C6F1C100DB1F6DE919100FF713765C1DEA146C62A69896235A6 + +HASH=SHA-384 +SECRET=E2168AB072C12DA471FC024FCBC52778E9BD68F44762B9D8BAAB746DB9C14FFE7181F71C2EE6488130832830FD0BD5F0 +INFO=59569454B2F5424A914A2D166DA8EE127B0EC5AB4788B115C1D9966A5297181C64549073229A32E5DE40C94A8F9EFE71A0C968F6330482876E37BEDD +EXPECT=16CB6BC93D9A001460B83259BC9A4344D4B4CB422C6102565DC5B190DE1C5673 + +HASH=SHA-384 +SECRET=00A12D3CE4FF75A6E30F41F3557C826AF1326B6302F4CE887BAD3D3317A548C8C03A057284DCC38D8BC690BD4A565F47 +INFO=24C5C0B2C810DFA08E35D7FEEBB8C78E0CD726C92ECD42D9171013738CA2531A947F523C37F64CDB04305BD969D1D6F9ECD46405D28280F968500BA7 +EXPECT=AEF3D57C8DA7D9582C5D1C62D6B64896DA9B1B0E4012A44CDC3DCF4B70AD6C66 + +HASH=SHA-384 +SECRET=BC3157B8932E88D1B1CF8E4622137010A242D3527B1D23D6D9C0DB9CC9EDFC20E5135DE823977BF4DEFAFAE44D6CDAB6 +INFO=B42A8E43CC2D4E5C69EE5E4F6B19FF6B8071D26BAB4DFE45650B92B1F47652D25162D4B61441D8448C54918AE568AE2FB53091C624DBFFFACEE51D88 +EXPECT=91314BDF542162031643247D6507838EABA50F1A + +HASH=SHA-384 +SECRET=23D5F3F34C9FE733E808949F4011BA3171376E3BEE807EC5B28496BF4EB51D85AA37C42E1ED93CFFBAB96C6DCA3AFB3B +INFO=6EC7B6BBD81A312FF787DC6AF7C7C7B9CDBB7D0C19D808536BC0990BD7E79E232BBC1433CA567CBCC4DAF79E8D7224C30124A639852587E2715AE62E +EXPECT=C3C3579CD70AF7F8C184C580224F27F7664C9FD3 + +HASH=SHA-384 +SECRET=0000D9B7EC6FBEFDF256FD68220B5205AC65A2001145118C50BA6B657032198B8B7CE3B2F7068A780DC17C22459AF2B7 +INFO=D857541C62B85756DC73DE7DC2D86F5D5E8B28338BB0A945B5C4FD7C81F71961B9705D3D153B19195D003B74212068ED10F96C53438653087A0152CF +EXPECT=793EF113F96397AB0031EAA0FAA777C107E7D03C + +HASH=SHA-384 +SECRET=4F3D744D3E449E0627BF4498743828F86E638F60620A7ED4A7C9B5B073691C9EC94728C58822E827F0F6CCF86DBC1CAE +INFO=301FEEB25E6CA8503ECD821F1D3787AEBFB3D0EC518BB31174F5209B2AC1F28ED3E698736BAD10A18E3CBDB5DC27BBD12D058B36DB0892F9CFD08300 +EXPECT=85EF9505B230565ECCF2A64AB3DE53E5A91C7B51 + +HASH=SHA-384 +SECRET=6AF3E1659EE7CAF1D10AD9135C9757350F69886CCAB1BA4FDE50C4614B319E2B20ECC7636C5F6BBAE71CD35565A4A2C8 +INFO=79BAC447F12FBE96C197963B91B939AC3DBF4541BEDEBB22C5677F54B377A0CC3B55A2BF4033D422401A149E74A81615472D0D4F8E4F0CE54384D844 +EXPECT=28ABEC20D6F092D09E32360986359303753CEDBE + +HASH=SHA-384 +SECRET=0299D1F064352D5A83FB61E1E050980F65B4B440819D2C1C29B6AD5BDFB2C00347DA993CC9EC00FCC4BD01C03FED9B65 +INFO=6F9EE5CB3852EEC2AC3F095C25C20363D0F7F4770899BF99187E2A830C6571AFF821CEB7E80B6C744F8C5E7BC0B2B8196FB540002B8DB7BC60913998 +EXPECT=293E0FD3E4D06EFE9EE1BA7D8BAB1D36BD7509C1 + +HASH=SHA-384 +SECRET=1EDC7FE9AD33A7F6F12F350C128E2893EC1BE59C0A77FA5896F2E276BF9EB19CE5B1C1CC2FF25F9391DA304D26037BE3 +INFO=FE3483540341174FADD6BFA9F96473EABD964AD588AE1460739DEB3BF512475C6D57E017DC46E1115733DD81FA6A5DAA9C1F9D23C0AFBBB36958CDAC +EXPECT=3C192347CE7313E9E54291C37C412CF90AF58A65 + +HASH=SHA-384 +SECRET=27A9A514E63943E9B90CAD1291FB2A3054C85B4A745CC3CF31BDC1C8935D153FB495E7BA4AB641B7C9E3B5A7C497B1CA +INFO=C5AF66CE6C03FB7FD88017B38149A32C8C9DCAB96665EFAD28DEB71B61EE75887E1324800B01B13FDD5DB00B8BB4BE50CC2EAEEA43CF26E77DE6DCB3 +EXPECT=886DB74207DE3B034F3E70CF9B47324D57DF5185 + +HASH=SHA-384 +SECRET=E358BB04A5AAED97939AE415AB3FFE9D2AB14C86C3C3F72B285BFDFB7C1440F80D75CCF28D2C64D503426F552CB4FDBA +INFO=6B93ADD9163F5E14DF0160B0EE0402B3542F920FB12CBA71C2C7988877BE46BE951113DABF48AFF27E8C9B214CBF293B8A966D2EA7FF515B6BDAA8E1 +EXPECT=48BC1BC135D5CE4AC04B11E7C50CDBBF84C44ED7 + +HASH=SHA-384 +SECRET=6E3AB74222CAA37F732DE378992BA75C37B1C14B3F5A2C2BB42C270D6F213EEBAD3C3524A4B354F753BCE5ED7CA865DB +INFO=79D39097B19BC6172ADB445CF9418979B943825228307F2F3AA8A591E0331C77BA01AEDCA2C094390C04694DAC907BE1ED20C124C0C1E5B278F63A3C +EXPECT=629354FADAFB077D7344F524B82B7D14A5CEAB22 + +HASH=SHA-384 +SECRET=582F968A54B8797B9EA8C655B42E397ADB73D773B1984B1E1C429CD597B8015D2F91D59E4136A9D523BF6491A4733C7A +INFO=E6D3C193EFF34E34F8B7B00E66565AEB01F63206BB27E27AA281592AFC06AE1EC5B7EB97A39684CE773D7C3528F2667C1F5D428406E78CE4CF39F652 +EXPECT=691726C111E5030B5F9657069107861ECC18BC5835A814C3D2E5092C901CB1FB6C1A7CD3EB0BE2A7 + +HASH=SHA-384 +SECRET=BDA32EBF6B8D6C21B4078C05582CCAC57D0E09D598ED51CA808BBAE4315FF3082086E772A50F828BA3A8A47089604C1F +INFO=723A6AA3E2093F2B3A377E4D716CFADEF784EB38D10302A8BC88294FFAB02E8AB43E6C83A70489DC91A4040E1C04F711A9ADF601D49A2AD07835C668 +EXPECT=92EBA10440A0F28ECA40C765CC08031BFBAEC5FA2A2D3FA19069CB3D5DD08E01702CD5EE16328D0F + +HASH=SHA-384 +SECRET=BC8D610533E7FD81F3F6AC2F93876BE259E88C6F234ABD0880762D12CD7D2134F252BECC395CC48B88EB645D722514C7 +INFO=29A5EA0DC26206268095791A2C0B1819079C88F85DD0259BC8EA74D6BF504FFC21C6CD5F92F74A02283DE4E33945393E64CA4B0F691885E4F2762E27 +EXPECT=6E3A1B6233D8E08A1CFE49C9F9E8605FA366F61080C5F1A750B22113168D36001DAAC6D7BB8C99D4 + +HASH=SHA-384 +SECRET=D6BE75028F7BD73620667EA50C4A674471854B677FF0B63026460C3000D11B5210029F2979B3EEAA613812983E7D7693 +INFO=5C2CE248C0A73A29A6E8E7B3FDBBAF0198D636E6D9D6A547685C27134D80411D122F96311434798CB19B3D446F52D7D1D74BF3EE3FD1FEA2A3B526CE +EXPECT=E67C995DA49F4ED0F6EFC09F839C795E8447E17790F9805AA8A93A4DB9A03970C280E9159A64FEC3 + +HASH=SHA-384 +SECRET=F7678CC0B7AEC5F4BDE487F30A5A88C988FD24C463B9E46B3B2AE4C765CA79C48ABE691CF93B6B435B2BDFF2A3D491F2 +INFO=B04C945BF149F2F6D17438958D1A725C3A8AB46CAA15A05E809524B9D1777EFB48E7D6BAAF5D3EFBF30B69B326935E59411207B913F38988E06ABE5D +EXPECT=65E303ADE8D5ED5559C40E6312B10EE4F2F4DDEE166127547FF1A14CC0318CDC61D1D0C3D6542AD9 + +HASH=SHA-384 +SECRET=D5D78EEBD12F82F398235CA72AF4277DB475A80DA843F36E1ED95A661E1E610A2C7DCC433E60029C6689980961F3590F +INFO=094C5D7C7457C51C877A0BEA03FBC44165C10635A4E64B8556C8ECF20914E621EF34224496489D76F67B2639608820ADA74137916BFB315BD50872ED +EXPECT=A16E9EC1BE1AE3B40AA906C8E18E9A7697CC34124B7B04957CE149BC39BDF27016F5839E21EA7976 + +HASH=SHA-384 +SECRET=58F1A4C16CB332631B217A8E1B5CCA843665064CC61C9E82AE4180D574DEF4E2A3AB9403036E3915D95044997F1BAB81 +INFO=C77A0BC9543841DC062C8ABB804978A3AF7192244AAC4F73A821750BA38D486D5A2B4F8D927F830772C4E5208E91C37F82B7C658D240E14E20D58CEE +EXPECT=B2D075292489BBD177F72E5E800618D04A30F9B6E0A8D1FCCB438AE6F646A33E0C47D3625AB87B6C + +HASH=SHA-384 +SECRET=AAB0E07E2845CE1664057AA15A1D50C35CE85591C5E0D8D3AA7E8C5A58B0BF56C270957F3728C9745A4BC696F87CA0F1 +INFO=3C115BFFC26D419182433BD43570FB3F6F2FFE37855A5546DBC542990FEF1E332C3A070743BA31E984CA18CC94E33F4F2C744F6B70234A7BA80D7E4A +EXPECT=001CDA059179ACD067BC9129017D24E8B99A2D6604E14714F720358BF7F43CBB6A4AAD4623267E72 + +HASH=SHA-384 +SECRET=0C5620F34AA7029F655A9EB9B051F13251D65BDF99D390B8F67898EB2216EC10BACB29358B895529DB64FBFC942FD0FF +INFO=6D8B8CDF7B699C0205C6FEB4AC1839D3C436CF962F8575EE67FF20D69103C4AA93BB369D360980181E38C44215065C99A066946733EDE23185183617 +EXPECT=2857C7B4221A02B6717A1C67B1EEB64DCDA8162284FAAE88466414B317E45457B5AAEF5B5089722F + +HASH=SHA-384 +SECRET=B57DC52354AFEE11EDB4C9052A528344348B2C6B6C39F32133ED3BB72035A4AB55D6648C1529EF7A9170FEC9EF26A81E +INFO=17E641909DEDFEE4968BB95D7F770E4557CA347A46614CB371423F0D91DF3B58B536ED54531FD2A2EB0B8B2A1634C23C88FAD9706C45DB4411A23B89 +EXPECT=5949ACF9635A77297928C1E155D43A4E4BCA61B1369A5EF50530888550BA270E26BE4A421CDF80B7 + +HASH=SHA-512 +SECRET=DD5DBD45593EE2AC139748E7645B450F223D2FF297B73FD71CBCEBE71D41653C950B88500DE5322D99EF18DFDD30428294C4B3094F4C954334E593BD982EC614 +INFO=B50B0C963C6B3034B8CF19CD3F5C4EBE4F4985AF0C03E575DB62E6FDF1ECFE4F28B95D7CE16DF85843246E1557CE95BB26CC9A21974BBD2EB69E8355 +EXPECT=E5993BF9BD2AA1C45746042E12598155 + +HASH=SHA-512 +SECRET=6024BDC82440473BAF798653BCB846F8503D73B6EDF5CEBC116374538B6256AC8A8AD5FA8C7FAD7B3F089933B9C7326D6B80572635C9F5F6B38643971D075B9F +INFO=1472A96BC81881767F6154B2BB79F4DA8578D447AC495D7EDE31454834BE3D643034B2E16034BA877A846E6E6E22B284B6D894395F33B4BEA5F1CD7B +EXPECT=ACBD761E976576B189696D26E745A680 + +HASH=SHA-512 +SECRET=6C7D94622A2D1C4394768A39CC340C6887E06C4A88D57AA7822F0F2B3FAC0192E851F7DD39CBEFE6CCD70992E27EDEA4729B215CA2DACB05373A411600233CCA +INFO=52D1EE8B4C0AEC771E236E86928B4E943CEC53401848B8A353FB2DC0C74D9CFF74E8086EF5542E3F210209FF614D1FD3177B5DF4DBF89978D1ABDBAA +EXPECT=F3048AEAE11B116A234659D40711267D + +HASH=SHA-512 +SECRET=E0630545EBDC440F373D194FC6C4629A62AEF028DB52A3FADCD32DA24C2FF79106D349AFD8500D6B4FFBFE2A9D59803FB90F25B60FD029C3B67C21DC070D852F +INFO=1821CB3B1CDE82BEB76E55CAC866E3BBF7EB541E0AA66C3DFBE509EA7870670745ACD5451D775464AED2D66E5CC4360C6B7B75B35A3820CEC217A086 +EXPECT=90FBFA27119450ACC8E6D74B03B05558 + +HASH=SHA-512 +SECRET=7B3088F0FE86A0C71CC02660E3AB04D3789500AB9551DD59F030847DDA0E14DDA8D6A2051379D0F591269C3DFF303CBFA08424F421913B3BF9C3C076012AD8FC +INFO=8524FD3E73EB9476513E31005D29DFE6927D877B74734EDD8C2B886FFD3F053000D28344EE9FD9340B448C29FB1725657B314DB93C639F98D756CD9D +EXPECT=5122A61ADD589993111739F4643EE406 + +HASH=SHA-512 +SECRET=F4EE35D1575D273CE42A66D6A6E521E87FAD64BF81C99F5773B60C0A9FE2D4D97C52E6E0C1775B4EF7E41E92A1BD32EABF3FBADB93F6A0B3E7324B7DA043D6C9 +INFO=92364F044E0D64A8FB4C53CB1B73A665AAF66FFC9DDF4152AE9DA35B470256B00B50234E26C3149F1C380DD93E75ACCACCD167E1D60A8A06D31BB2E8 +EXPECT=E2B4CB180AB6730BB0C16178B20548B6 + +HASH=SHA-512 +SECRET=DB3DB876166713A7052A9954F2D37EF35E446368CF84CE5C315B4F59AC00D0D9EB22B119D040BAB5F25F224A24D94901015A2223856203DAD2260164ECE61935 +INFO=77D5AFC143648A249B17AF10D688188A780542DB7F2E3D4265D16E4FC94CDAB158C5AFB9C70AF2D1668A008AAD4ADA64A9DBFA97B439002E4BD3DBF6 +EXPECT=B01C96BAF28CA5841CB6E4E0CAE30D59 + +HASH=SHA-512 +SECRET=7C977B74CDF87721A37C6F5E9D7C91D1E11744514D51A68D12D1837D26B79611E86A05A4685DBEE8EB0B30962B19B96F373F5ABE92FF0235A4AE7C35380794A5 +INFO=8DA372E4D534416D9C4FECF9D22DC576F889BC6F27453CA75458CCD8F88A8600BA03D4D19480D2EF899DC72DF0732FCEE8ED997FEA4F2D526BEC44F3 +EXPECT=B22DB6AC3A88AA1AA093C0FE55E2639F + +HASH=SHA-512 +SECRET=6E6ED01FF12D3251396BF56062B1B3C79B55B4373C0331B14AA593A3EE005B5F068F0EFC56026FC72D66F2744DD1F168F247912F9B26EBC59463B96BD9F1A1A1 +INFO=5ECA796BEF031B87521ED0904BF1D855589749B0183E993D99F741619B62644FA686A4C90F7F1E6ED5344EB75880724C09B751617C31FA5549828A25 +EXPECT=B03B235F5AF9719F35F215C2F94A76A5 + +HASH=SHA-512 +SECRET=F4CD4F279A128C74E5EB821472098204ED96ED61EAC9281BCD53FDE6890A2CBB1CDB97E0E343FC8588B932CD701AF88F0A7AF723D5C0850E3E01E47612FCEC83 +INFO=EF470DFCD57359F558354F845FC8CA3A1A67419A6D0F6DD698C78F9A57E820C3D8786F3C589F9693B8F3FB3E123A482386C1C0CFE26BC5322E90FD4B +EXPECT=FAA720299513B73DE2B54896D9A06BCC + +HASH=SHA-512 +SECRET=5BE2BF7F5E2527E15FE65CDE4507D98BA55457006867DE9E4F36645BCFF4CA38754F92898B1C5544718102593B8C26D45D1FCEAEA27D97EDE9DE8B9EBFE88093 +INFO=004B13C1F628CB7A00D9498937BF437B71FE196CC916C47D298FA296C6B86188073543BBC66B7535EB17B5CF43C37944B6CA1225298A9E563413E5BB +EXPECT=CEE0C11BE2D8110B808F738523E718447D785878BBB783FB081A055160590072 + +HASH=SHA-512 +SECRET=B0B5599C29CCE7644372B278A3275F3E0723739F42BC03FC9A4ACA09D9CECF9AFDC30393DD1CF7499236239608A258F5C48E66B663F6521049A482B63D468A33 +INFO=F00101F38E5D6098CFEA4C7C8490EB5505390000478A645E6621B1F711105BDB4820DC0C783BF980C062899B70875E17CC9116F2FA588A942405BBD6 +EXPECT=768796179CA511B841717887810F870FA3C12641C95ECDCEA8590D730EA43B8E + +HASH=SHA-512 +SECRET=52BEC703DEC94B80ED2F8449C752EE4B8B8B1B80E55B6B0E1E9DB1770DADFBB2631DF554D1BA41BBBD0E587369AC81B40BA6D941FB62DBA78A76B554EB03C643 +INFO=9F51256B1896925866F22053348EF6E8A52EC580B1F32BEB2574AFD23A5460C30E8C811D0E7A2887BD5CC0653EC8D68DCCA43F71A8DF1F0193205B75 +EXPECT=B19AC7D4EFDE7C62191EA76530D30DFA5510CC74BAFACAEA5CBE2CED467FA1A5 + +HASH=SHA-512 +SECRET=8C472849C12153D5A47360EED0438689D056C08496D285A179297A93DFF50070FD3C2C2D88F1C4A25B77C1A5EFB47BB8F881C89F24D464BC23C4F200291D6251 +INFO=F2D317F020B212066EF7C869C9C56699C1D4DFDB74CF679B97D718E701E442B117A6D1162BF825EF491FA628EB249A1CE28018B8A5BD0B1B296E4D92 +EXPECT=FF82B4D0FC9E17C0539FA2FE66F2E1A07B7B593A1342CD0B48162FDA68B7D80A + +HASH=SHA-512 +SECRET=104280C86C79879E96CF15DE96412492FFF5D4DBFC677F7D384C09A4BCEE160FA3C972969D12F9B1542D570BAAEBBD801F632E172A8A00477EDC06F938EAE198 +INFO=ADF1F167939087D71FE8D9DDD2C903C542775129DAB2EDC2446CB394A808BA49CF4710EA10CB72A4EFE8F1A32C03D14660F10B0AA9255BD0EE865C10 +EXPECT=5CED814230D7F07DA116D7930B4DB6B18B391BB869D15196677BD1D17F2F8C7C + +HASH=SHA-512 +SECRET=DA48986B8C84D0F6B2D6BA9F2C02A53ED8F173B238DD8F3020E15EAE425871CFF148F15BB0BA17C2AE00F44B2C14725A7B130505469BC0706B699E2D901AD16B +INFO=08528600237B6D049268B7BF3E2FCD9373A6B2F6732EC89437EF8E134FB947C3F37F254C7041D3F06F789953BACED415E9D1DC400FB0025BE180425B +EXPECT=50EB29E9CD5CA7730FA565870B23A40DB75B5E051B35850C98FC9613A251BDCB + +HASH=SHA-512 +SECRET=195E31B3DB4630A9E66CDE347716F50227F8A81C397A72E30D27AAC27F8B9F2F2B453E68FABC9D209D443D952263DB0C341C866D966EB4DB8F8ACF8EAFE7A227 +INFO=2B281526345351D797BE0A7DBC517BB9C9C220B5194CEC3847F6FAC4AB1030867D1851CB8D46561DB605506567DC2F39DDDBF471E4A7D51B23745592 +EXPECT=AEFF884DCBDC002A5F7A877A34F73B42ABAD2089D4E39B721EB370B3D87627F4 + +HASH=SHA-512 +SECRET=7A1F12A3FAD7E0D3E244FC7BD3F0917E47BC76C60285DED739DDF9462C160CDFCCA887866D6DAEFBF12E7410FB1B50AD6C8B21B6E56877F47E8B14A0AC9F936D +INFO=77097024C944E349F0CA2A579CF51353F50664DDB4BBBDBBE01DFDE80595DAA5D043D9DB9651FB821CC9ACD72FA91B2EE93E23EFB39409711F3915D0 +EXPECT=D2191B6AACC7668038D762C0CD5915BF68E490671EC4032C20297A64026FE042 + +HASH=SHA-512 +SECRET=7A41DFE8D0C9AC924A2ACCD615AD3C0BC0D7E124FED6B2B7E05B9F8E6ADE0678E98D45766F9697CD187BC10321195FA1BB84B55BF94BB112D73C6ABB857F40A1 +INFO=E47AA81AF8D1074C8F7FBCB589727EC225163D076D4E8CEFC827C78EBA7B42D5E70377D7033DFDF5EDD93F605DD9B25D75548518E405563D1D4BF313 +EXPECT=5DBF1D3DC128E67F2452ABA858B7ECFB87EFBE66B714541C0D4C009C2B92D7F9 + +HASH=SHA-512 +SECRET=B27BE323EE094400FC9DACAEEE0365E0C0C52811A6081551DD46DD86302C6396FCE80BB60E306C9785BEA1270356A1C2B4DB7634D5C04891E85417FB72CDFAB2 +INFO=6EEDEA4C7C2AD22289C4E66A96E7A7A1CAE7D340FAE412A6E77697C2081A27560A9F0CB0E412297F99103A233A7998650590C5A7E2861738BED7C9FD +EXPECT=D0656230B86E4DC3EA2BDB8D62B452262462EED61229D1E2B92758B57C54C434 + +HASH=SHA-512 +SECRET=9DD03864A31AA4156CA7A12000F541680CE0A5F4775EEF1088AC13368200B447A78D0BF14416A1D583C54B0F11200FF4A8983DD775CE9C0302D262483E300AE6 +INFO=037369F142D669FCA9E87E9F37AE8F2C8D506B753FDFE8A3B72F75CAC1C50FA1F8620883B8DCB8DCC67ADCC95E70AA624ADB9FE1B2CB396692B0D2E8 +EXPECT=96E8D1BC01DC95C0BF42C3C38FC54C090373CED4 + +HASH=SHA-512 +SECRET=6AC19B36AF7D0E5C65F58DDA2FF76C68567CD8AC16FF2463FC3C8654DE45A05E39C75D83758351753D2E143629AB9075738B037A1EF41F7EFD70F1E700F7F67B +INFO=4BA9F9E8E33B40F4390333F597AB565B27A841D5FAC930F67101E65973F071AC6BA3941C9D22F40CA44E91657A629B7F56980E0ECCAECB943B16EE27 +EXPECT=3E43B70633884480DDD93D6F20BA512B55590B68 + +HASH=SHA-512 +SECRET=2ECE7BC9EB5249F5179F2528A062D0DC30496604BB76F26E160D3633140FC6EDAC717EB5402D0FCE56B76B7CFB0AAF47B6AFC410FE06EFB049FA28953D7E4942 +INFO=1EE1EFE3AE248819C5B33DEB7869C3540CD8ABB7DD522C5F0AB71618159CD0D23DD805F14EE27E012240CFF85F57C72F88D5EF6E2196EEDE8CF7B786 +EXPECT=2DF4FA52D2858700085570901F5F857314E1E02D + +HASH=SHA-512 +SECRET=283E37FE181516DE2BFB14E6291EDB91DBDE4A7B1475352ACC47EFDF244A2BA2E639D9B028C02DFEBF51DD2D37C4DA64AA89E6A64916D58F1C80B25CC080A950 +INFO=578CFE1A70F52F7E456A22F1485BA23830E3DCB05700ED2812CADC181D448F1119FECD8FCB49667309CF0E316470590ED93BAF567F469DEF5DAFC3B1 +EXPECT=24719CB6F6B10E2EB586A0E167F5683DF2113771 + +HASH=SHA-512 +SECRET=4A66D41EBCB184C3148A0DEBD67AF5C8ECE3E6A1C13C413789796A99A1ED24ADA2F5107C91159306FE8F68C245499FBFD8F85009A100C8535D22DC71DF09F74F +INFO=40EAF429F7DEE6F5C91F2351BA51E53CF6F7F836398DBCC33381B4EA4046A5F2CD545C932E58027A1E724FCF8552CC79ABBCEDED385A524648C1DAE4 +EXPECT=8F1BDCB99AF0FC510AD4825EFDD750D3CAB7846F + +HASH=SHA-512 +SECRET=95A53B3F953AB90D4F85E7E8437325BE1A0235A89311FA1C7405C3C0BC61F14EF6E7CAD32165AEEA2AD718BEF144D66302E989E2F1A323E512780D28B6DA74AC +INFO=37495216C113EFD2CCAEF3583A87B067D65C165DBACEA9E04EE34411EAA6616FCE5348ABBD121186F29E071C467B60D9291CA2EB664EBC2A7EE50EAB +EXPECT=71A5B1EAB411AFBA65081D4D0471D532BF0EC65F + +HASH=SHA-512 +SECRET=FC3EF290A89B79E95DE83326B34242778FD2D542457365E2719D328FA5581401EBFE6E2655DA070AA3E26B363B595E1AF7BABD17075DBEF1775CF6157D3C716B +INFO=592E1984BDFB4BF18DE83A6B19CDB63F27B10985E7CA520B71EC392CE09E1D2DA14C632553574B876752B9D572ECF41BC5AFD057BE99D8019E19F7E8 +EXPECT=083CD3B0B564EE7C5E927F32D10190749715B21C + +HASH=SHA-512 +SECRET=388B8C9BB988E762EDE3CC072BD88BA7294785AFB0D6506C2357A5E23331A51E968F7BF50576EF9E64B69B4F48D6E509639CE9693E3F2094FA33B97963E1CC6E +INFO=5B8FE0C658C0FD7698234C477860531221A7F48617E4405D5C8E8D3550F105B78469A449CC2B855D4A5357C1C612234B2AE2B820F07487B094AC7C3F +EXPECT=735102B59B09D06D3E6C9494433CB03F5B8CA383 + +HASH=SHA-512 +SECRET=F1E39D9D0984641F24702F8B37FBF9A8FAFBD17FC23569E940C31384CDA58C0274B167B1AFC9FF44473D20D6A23C922502E31B3DAD13274B22024FF4EAED668E +INFO=C880707804A76450019632C32F037F97FF2CE7FB1541A9ADBC092D96122CDE19D5FE81CD12A60F491C5877B601E4ECBE0FBAEB67B446C4BB2A9ED60E +EXPECT=5440C3450AC332D0A8F5C724647962AC82F659E1 + +HASH=SHA-512 +SECRET=9E0A79B1D6C672D3235464CB2BE6A36D02C982387DEF7E2FE32A5D2BE7343FDC038AF48FB941972FACC8E33D6286E142852DC4CF2667A3C97DD557BC6FC66E98 +INFO=CD356D14E32BF958C17711D26A30412088A2E214E600E692ED4966212565EA891C807E1E0BDEC0A9DBC71F502F09975FCE910C7723DB4DF380E7FFB2 +EXPECT=F46693300BC3BF106D6A8566481FB12B45EE1F95 + +HASH=SHA-512 +SECRET=A9F4A2C5AF839867F5DB5A1E520AB3CCA72A166CA60DE512FD7FE7E64CF94F92CF1D8B636175F293E003275E021018C3F0EDE495997A505EC9A2AFEB0495BE57 +INFO=8E9DB3335779DB688BCFE096668D9C3BC64E193E3529C430E68D09D56C837DD6C0F94678F121A68EE1FEEA4735DA85A49D34A5290AA39F7B40DE435F +EXPECT=6DB880DAAC98B078EE389A2164252DED61322D661E2B49247EA921E544675D8F17AF2BF66DD40D81 + +HASH=SHA-512 +SECRET=244356BE9B327964732EB4A7C09B04B420712396EB57F72BC94924066C687E878E798E0A033A1EE1A4D8CDC2DA0443ECD77401D0460CD906EAAB02656C1EDC98 +INFO=D806E2DF8C85D3BAF5D67E9C97B746EE6BBB1BC10DCDF6C7A6075C311CF34752ACBE60E68F23C7F890B5EA7300A1AD32178254885246F0493987A6E8 +EXPECT=F0B5BC749EB300CA217CA82FDFFED89B1BF2C8AFC2B36EE2B48695E5085B893A6DAAD5474F74EF0F + +HASH=SHA-512 +SECRET=F5567A2DD9236A99200C4BD5390743E2560BAB4B196E3C732B01ABF900C7649CAB5B957DA6AE8FD025605147B36572C19F103670B16F6BB57C138754479AD45D +INFO=A8CCD4BD36FB0ED0765E9662F1028D600BD650E4C2CDDDF94B27EE881120AAF74B727B02F0036B46162062E39ED43FA85687A58D177AF6F566811889 +EXPECT=2E55B73D126DB0F92810266C92E4DC7A7F2D32CBED9EB4EDAB519E5CC9138C642FD4B229780C17BF + +HASH=SHA-512 +SECRET=46A65F2E432FE2AAB26DE24D1B9D39B44DA270230F17844D44E249565A125F87A070B4B2EEAC0B3A6C54ACFC49DDC6360F59FE0E330E0605C61E85C5C27FE756 +INFO=B06A23E05945F96A293DE59DC3DB5972CA1FA00B4647AC38F753790335D5DAEB2FFE09CF8924AC4E80B275EA4DBEC53B9E2AAF90DF0E6FD82AD69F7C +EXPECT=04BBC4F93FB5C3589690798BF793C10BB726F87A4A2DE93B8FDF6BE8015ABE156577119C5637AE71 + +HASH=SHA-512 +SECRET=8D371552164BCEE60771E876CE546C4B0277B978E0963E2312666FED5FAAF340A55E00644CB36474464A4C2775F480D88E2D3B41F31E0706209EB8E51595B92E +INFO=F570212DB2D3F314AFAE51F83875E4DA7DBC13073ECE83A6727E011DD0F748F569714B59F44930067B8962B83289B441BA65B0E2237AADA36800F955 +EXPECT=9565B54259FC5C61A7F7448E6BDFBE48191C2DD6CA61CE35EAF3717FFBFE1C467B3DE080FAEEB8B4 + +HASH=SHA-512 +SECRET=07F8E73D47DE5F0EE2CCF871C702A92A1FD15A4DE130611E46A4247A0497465B3FB5D785C01ED1CF061C73FE1F55DFE0111EC735D376BB39AC6CF83D7A2371C4 +INFO=C13AADC44D9C3A209B9081B19BE6556C9FE7B491E0B8D98B18AC82C6B4DC3E8EE23B82DB2BABC27F055979511895E296B6D9F7DDA35A0E265FB3C645 +EXPECT=9E222EBCD27C7CA72179121C6C60FB0DAAE910620CA7B01A8D0154D48DA9C7D7AA9A5667375FF518 + +HASH=SHA-512 +SECRET=5F00B6755ED8C9D3EA8CECDD8C17CA3AFEDD25871D1C50B302C1FC864D04147382313E6A701D9B6CC3DE791FA65A782BC0D74097361B12A5B45408F1172DFEA5 +INFO=5669569B911167E8F9C6B1A83FDE57B6DB4171AEB7657AA94D87D542BD9D4E89F69C89E0FB4B3D3502702327FBFE653AF60A7FE1AB600E2620D765A6 +EXPECT=D937822EF92073CFCDB5D8DB801A3875E45FE34D316F40EE57140E1153E4D28251D0A05A9F49EA66 + +HASH=SHA-512 +SECRET=BE755AB76FFD8F2EB3F246E036BCC06DF39E83A471F468C29EA8BCEFF47D28222637C1CACF2FDBD233545CC888474A7B2131CCC735225027C517C48420D10ACC +INFO=4E39D12BB306F5D1E1859484215048CE6FF0033B3199CF1732D0088C4187D49884FE30571243B2A643BC56D4986DDA958ED5C279BF7A9BE2E37567E3 +EXPECT=302E5F81107D186C054173BC705E11A648A5DCEB8435510C3CDC80C9984CB9C9C362840D44265E7E + +HASH=SHA-512 +SECRET=2C94C4873FAF4DE3E93152B49428C92C865DC58E1E336FFB9AA50523DB6311DB34D5A731164073D7958506501CDB4DCE05B845198E6FEFE63DB87837C2434850 +INFO=27FE559B6D92995338283A776159856285474B74302DEDCB3E7FE191490EAB7F580212CFEA6F6013388E3DB28443F454280572B90F0DC2207FDCC0EF +EXPECT=42885AC518C97BDA290B548B597B7F04B20BC34A0A6D9DFC89A446D9F23A1CCCC37608FEECA7A4C3 + +HASH=SHA-512 +SECRET=0FF2C279653A7B954AFB0096C2B16E591FA32EEF39EDD8141C6513D6DC6C0863AF0E94BFD57B17817CD1038F37639CF8D63871AEF46EE81947526BC5454C13F2 +INFO=16EE1DAEF6A0316AA0467646C521FA30165FE336B249600F1E565D287B97018033E2BAD45D76C6685D77339B27EBDD9CCE1B34C1E4619A97774D94E7 +EXPECT=BC0E3CB2B78BD9D6E2EC544672ADBE44398FDBA7EF332F1C4235C104CA32EC00FB47D47209E15197 diff --git a/crypto/fipsmodule/md5/asm/md5-x86_64.pl b/crypto/fipsmodule/md5/asm/md5-x86_64.pl index c21913dfe2..c10e5c3b94 100644 --- a/crypto/fipsmodule/md5/asm/md5-x86_64.pl +++ b/crypto/fipsmodule/md5/asm/md5-x86_64.pl @@ -135,6 +135,7 @@ sub round4_step .type md5_block_asm_data_order,\@function,3 md5_block_asm_data_order: .cfi_startproc + _CET_ENDBR push %rbp .cfi_push rbp push %rbx diff --git a/crypto/fipsmodule/md5/internal.h b/crypto/fipsmodule/md5/internal.h index 845dd432a9..e50b5582b8 100644 --- a/crypto/fipsmodule/md5/internal.h +++ b/crypto/fipsmodule/md5/internal.h @@ -21,6 +21,29 @@ extern "C" { #endif +// MD5_CHAINING_LENGTH is the chaining length in bytes of MD5 +// It corresponds to the length in bytes of the h part of the state +#define MD5_CHAINING_LENGTH 16 + +// MD5_Init_from_state is a low-level function that initializes |sha| with a +// custom state. |h| is the hash state in big endian. |n| is the number of bits +// processed at this point. It must be a multiple of |MD5_CBLOCK*8|. +// It returns one on success and zero on error. +// This function is for internal use only and should never be directly called. +OPENSSL_EXPORT int MD5_Init_from_state(MD5_CTX *sha, + const uint8_t h[MD5_CHAINING_LENGTH], + uint64_t n); + +// MD5_get_state is a low-level function that exports the hash state in big +// endian into |out_n| and the number of bits processed at this point in +// |out_n|. |MD5_Final| must not have been called before (otherwise results +// are not guaranteed). Furthermore, the number of bytes processed by +// |MD5_Update| must be a multiple of the block length |MD5_CBLOCK| +// (otherwise it fails). It returns one on success and zero on error. +// This function is for internal use only and should never be directly called. +OPENSSL_EXPORT int MD5_get_state(MD5_CTX *ctx, + uint8_t out_h[MD5_CHAINING_LENGTH], + uint64_t *out_n); #if !defined(OPENSSL_NO_ASM) && \ (defined(OPENSSL_X86_64) || defined(OPENSSL_X86) || defined(OPENSSL_AARCH64)) diff --git a/crypto/fipsmodule/md5/md5.c b/crypto/fipsmodule/md5/md5.c index 1691526766..bf53ce18f7 100644 --- a/crypto/fipsmodule/md5/md5.c +++ b/crypto/fipsmodule/md5/md5.c @@ -83,6 +83,27 @@ int MD5_Init(MD5_CTX *md5) { return 1; } +int MD5_Init_from_state(MD5_CTX *md5, const uint8_t h[MD5_CHAINING_LENGTH], + uint64_t n) { + if (n % ((uint64_t)MD5_CBLOCK * 8) != 0) { + // n is not a multiple of the block size in bits, so it fails + return 0; + } + + OPENSSL_memset(md5, 0, sizeof(MD5_CTX)); + + const size_t out_words = MD5_CHAINING_LENGTH / 4; + for (size_t i = 0; i < out_words; i++) { + md5->h[i] = CRYPTO_load_u32_be(h); + h += 4; + } + + md5->Nh = n >> 32; + md5->Nl = n & 0xffffffff; + + return 1; +} + #if defined(MD5_ASM) #define md5_block_data_order md5_block_asm_data_order #else @@ -111,6 +132,24 @@ int MD5_Final(uint8_t out[MD5_DIGEST_LENGTH], MD5_CTX *c) { return 1; } +int MD5_get_state(MD5_CTX *ctx, uint8_t out_h[MD5_CHAINING_LENGTH], + uint64_t *out_n) { + if (ctx->Nl % ((uint64_t)MD5_CBLOCK * 8) != 0) { + // ctx->Nl is not a multiple of the block size in bits, so it fails + return 0; + } + + const size_t out_words = MD5_CHAINING_LENGTH / 4; + for (size_t i = 0; i < out_words; i++) { + CRYPTO_store_u32_be(out_h, ctx->h[i]); + out_h += 4; + } + + *out_n = (((uint64_t)ctx->Nh) << 32) + ctx->Nl; + + return 1; +} + // As pointed out by Wei Dai , the above can be // simplified to the code below. Wei attributes these optimizations // to Peter Gutmann's SHS code, and he attributes it to Rich Schroeppel. diff --git a/crypto/fipsmodule/modes/asm/aesni-gcm-avx512.pl b/crypto/fipsmodule/modes/asm/aesni-gcm-avx512.pl index 7890aaef84..99b4205442 100644 --- a/crypto/fipsmodule/modes/asm/aesni-gcm-avx512.pl +++ b/crypto/fipsmodule/modes/asm/aesni-gcm-avx512.pl @@ -4176,7 +4176,10 @@ sub INITIAL_BLOCKS_16 { # ;;; Functions definitions # ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -$code .= ".text\n"; + $code .= <<___; +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX +.text +___ { # ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; # ;void gcm_init_avx512(u128 Htable[16], @@ -4689,6 +4692,7 @@ sub INITIAL_BLOCKS_16 { .quad 0x3fffffffffffffff, 0x7fffffffffffffff .quad 0xffffffffffffffff .text +#endif ___ } else { diff --git a/crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl b/crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl index faea927aa6..2d6a98b1fa 100644 --- a/crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl +++ b/crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl @@ -446,6 +446,7 @@ aesni_gcm_decrypt: .cfi_startproc .seh_startproc + _CET_ENDBR xor %rax,%rax # We call |_aesni_ctr32_ghash_6x|, which requires at least 96 (0x60) @@ -719,6 +720,7 @@ aesni_gcm_encrypt: .cfi_startproc .seh_startproc + _CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit movb \$1,BORINGSSL_function_hit+2(%rip) @@ -1093,6 +1095,7 @@ .globl aesni_gcm_encrypt .type aesni_gcm_encrypt,\@abi-omnipotent aesni_gcm_encrypt: + _CET_ENDBR xor %eax,%eax ret .size aesni_gcm_encrypt,.-aesni_gcm_encrypt @@ -1100,6 +1103,7 @@ .globl aesni_gcm_decrypt .type aesni_gcm_decrypt,\@abi-omnipotent aesni_gcm_decrypt: + _CET_ENDBR xor %eax,%eax ret .size aesni_gcm_decrypt,.-aesni_gcm_decrypt diff --git a/crypto/fipsmodule/modes/asm/aesv8-gcm-armv8-unroll8.pl b/crypto/fipsmodule/modes/asm/aesv8-gcm-armv8-unroll8.pl index 1f650142b4..9f021cbca1 100644 --- a/crypto/fipsmodule/modes/asm/aesv8-gcm-armv8-unroll8.pl +++ b/crypto/fipsmodule/modes/asm/aesv8-gcm-armv8-unroll8.pl @@ -491,17 +491,13 @@ .L128_enc_main_loop: @ main loop start rev32 $ctr5.16b, $rtmp_ctr.16b @ CTR block 8k+13 ldr $h5q, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ldr $h6q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 add $rtmp_ctr.4s, $rtmp_ctr.4s, $rctr_inc.4s @ CTR block 8k+13 rev64 $res1b, $res1b @ GHASH block 8k+1 rev64 $res0b, $res0b @ GHASH block 8k ldr $h7q, [$Htable, #144] @ load h7l | h7h - ext $h7.16b, $h7.16b, $h7.16b, #8 ldr $h8q, [$Htable, #176] @ load h8l | h8h - ext $h8.16b, $h8.16b, $h8.16b, #8 rev32 $ctr6.16b, $rtmp_ctr.16b @ CTR block 8k+14 add $rtmp_ctr.4s, $rtmp_ctr.4s, $rctr_inc.4s @ CTR block 8k+14 @@ -532,9 +528,7 @@ eor $acc_lb, $acc_lb, $h7.16b @ GHASH block 8k+1 - low ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 ldr $h4q, [$Htable, #80] @ load h3l | h3h - ext $h4.16b, $h4.16b, $h4.16b, #8 aese $ctr5b, $rk0 \n aesmc $ctr5b, $ctr5b @ AES block 8k+13 - round 0 aese $ctr1b, $rk0 \n aesmc $ctr1b, $ctr1b @ AES block 8k+9 - round 0 @@ -602,9 +596,7 @@ aese $ctr1b, $rk3 \n aesmc $ctr1b, $ctr1b @ AES block 8k+9 - round 3 ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ldr $h2q, [$Htable, #32] @ load h1l | h1h - ext $h2.16b, $h2.16b, $h2.16b, #8 pmull2 $t4.1q, $res4.2d, $h4.2d @ GHASH block 8k+4 - high pmull $h4.1q, $res4.1d, $h4.1d @ GHASH block 8k+4 - low @@ -773,15 +765,11 @@ .L128_enc_prepretail: @ PREPRETAIL rev32 $ctr5.16b, $rtmp_ctr.16b @ CTR block 8k+13 ldr $h7q, [$Htable, #144] @ load h7l | h7h - ext $h7.16b, $h7.16b, $h7.16b, #8 ldr $h8q, [$Htable, #176] @ load h8l | h8h - ext $h8.16b, $h8.16b, $h8.16b, #8 ext $acc_lb, $acc_lb, $acc_lb, #8 @ PRE 0 ldr $h5q, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ldr $h6q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 rev64 $res0b, $res0b @ GHASH block 8k rev64 $res1b, $res1b @ GHASH block 8k+1 @@ -850,9 +838,7 @@ pmull $h5.1q, $res3.1d, $h5.1d @ GHASH block 8k+3 - low ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 ldp $rk2q, $rk3q, [$cc, #32] @ load rk2, rk3 aese $ctr5b, $rk1 \n aesmc $ctr5b, $ctr5b @ AES block 8k+13 - round 1 @@ -888,9 +874,7 @@ ldp $rk4q, $rk5q, [$cc, #64] @ load rk4, rk5 ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ldr $h2q, [$Htable, #32] @ load h1l | h1h - ext $h2.16b, $h2.16b, $h2.16b, #8 trn1 $t6.2d, $res5.2d, $res4.2d @ GHASH block 8k+4, 8k+5 - mid aese $ctr0b, $rk3 \n aesmc $ctr0b, $ctr0b @ AES block 8k+8 - round 3 @@ -1021,16 +1005,12 @@ mov $t1.16b, $rk10 ldp $h5q, $h56kq, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 eor3 $res1b, $ctr_t0b, $ctr0b, $t1.16b @ AES block 8k+8 - result ext $t0.16b, $acc_lb, $acc_lb, #8 @ prepare final partial tag ldp $h6q, $h7q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 - ext $h7.16b, $h7.16b, $h7.16b, #8 ldp $h78kq, $h8q, [$Htable, #160] @ load h8k | h7k - ext $h8.16b, $h8.16b, $h8.16b, #8 cmp $main_end_input_ptr, #112 b.gt .L128_enc_blocks_more_than_7 @@ -1197,7 +1177,6 @@ st1 { $res1b}, [$output_ptr], #16 @ AES final-3 block - store result ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 rev64 $res0b, $res1b @ GHASH final-3 block @@ -1234,7 +1213,6 @@ ins $rk4v.d[0], $res0.d[1] @ GHASH final-2 block - mid ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 movi $t0.8b, #0 @ supress further partial tag feed in eor $rk4v.8b, $rk4v.8b, $res0.8b @ GHASH final-2 block - mid @@ -1254,7 +1232,6 @@ st1 { $res1b}, [$output_ptr], #16 @ AES final-1 block - store result ldr $h2q, [$Htable, #32] @ load h2l | h2h - ext $h2.16b, $h2.16b, $h2.16b, #8 rev64 $res0b, $res1b @ GHASH final-1 block ldr $ctr_t1q, [$input_ptr], #16 @ AES final block - load plaintext @@ -1316,7 +1293,6 @@ eor $t0.8b, $t0.8b, $res0.8b @ GHASH final block - mid ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 pmull $t0.1q, $t0.1d, $h12k.1d @ GHASH final block - mid @@ -1593,9 +1569,7 @@ .L128_dec_main_loop: @ main loop start ldr $h7q, [$Htable, #144] @ load h7l | h7h - ext $h7.16b, $h7.16b, $h7.16b, #8 ldr $h8q, [$Htable, #176] @ load h8l | h8h - ext $h8.16b, $h8.16b, $h8.16b, #8 rev64 $res1b, $res1b @ GHASH block 8k+1 rev64 $res0b, $res0b @ GHASH block 8k @@ -1603,9 +1577,7 @@ rev64 $res6b, $res6b @ GHASH block 8k+6 ldr $h5q, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ldr $h6q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 eor $res0b, $res0b, $acc_lb @ PRE 1 rev32 $ctr5.16b, $rtmp_ctr.16b @ CTR block 8k+13 @@ -1661,9 +1633,7 @@ pmull2 $acc_m.1q, $res0.2d, $h78k.2d @ GHASH block 8k - mid ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 pmull $h78k.1q, $res0.1d, $h78k.1d @ GHASH block 8k+1 - mid aese $ctr6b, $rk1 \n aesmc $ctr6b, $ctr6b @ AES block 8k+14 - round 1 @@ -1682,9 +1652,7 @@ aese $ctr4b, $rk2 \n aesmc $ctr4b, $ctr4b @ AES block 8k+12 - round 2 eor $res2.16b, $res2.16b, $t3.16b @ GHASH block 8k+2, 8k+3 - mid ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ldr $h2q, [$Htable, #32] @ load h2l | h2h - ext $h2.16b, $h2.16b, $h2.16b, #8 eor $acc_mb, $acc_mb, $h78k.16b @ GHASH block 8k+1 - mid aese $ctr1b, $rk2 \n aesmc $ctr1b, $ctr1b @ AES block 8k+9 - round 2 @@ -1879,17 +1847,13 @@ ldp $rk0q, $rk1q, [$cc, #0] @ load rk0, rk1 ldr $h7q, [$Htable, #144] @ load h7l | h7h - ext $h7.16b, $h7.16b, $h7.16b, #8 ldr $h8q, [$Htable, #176] @ load h8l | h8h - ext $h8.16b, $h8.16b, $h8.16b, #8 eor $res0b, $res0b, $acc_lb @ PRE 1 rev64 $res1b, $res1b @ GHASH block 8k+1 add $rtmp_ctr.4s, $rtmp_ctr.4s, $rctr_inc.4s @ CTR block 8k+13 ldr $h5q, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ldr $h6q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 rev64 $res5b, $res5b @ GHASH block 8k+5 rev64 $res4b, $res4b @ GHASH block 8k+4 @@ -1950,9 +1914,7 @@ pmull2 $t3.1q, $res2.2d, $h56k.2d @ GHASH block 8k+2 - mid ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 aese $ctr1b, $rk1 \n aesmc $ctr1b, $ctr1b @ AES block 8k+9 - round 1 pmull $h56k.1q, $res2.1d, $h56k.1d @ GHASH block 8k+3 - mid @@ -1961,9 +1923,7 @@ aese $ctr0b, $rk1 \n aesmc $ctr0b, $ctr0b @ AES block 8k+8 - round 1 ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ldr $h2q, [$Htable, #32] @ load h2l | h2h - ext $h2.16b, $h2.16b, $h2.16b, #8 eor3 $acc_mb, $acc_mb, $h56k.16b, $t3.16b @ GHASH block 8k+2, 8k+3 - mid aese $ctr0b, $rk2 \n aesmc $ctr0b, $ctr0b @ AES block 8k+8 - round 2 @@ -2113,16 +2073,12 @@ cmp $main_end_input_ptr, #112 ldp $h78kq, $h8q, [$Htable, #160] @ load h8k | h7k - ext $h8.16b, $h8.16b, $h8.16b, #8 ldr $res1q, [$input_ptr], #16 @ AES block 8k+8 - load ciphertext ldp $h5q, $h56kq, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ext $t0.16b, $acc_lb, $acc_lb, #8 @ prepare final partial tag ldp $h6q, $h7q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 - ext $h7.16b, $h7.16b, $h7.16b, #8 eor3 $res4b, $res1b, $ctr0b, $t1.16b @ AES block 8k+8 - result b.gt .L128_dec_blocks_more_than_7 @@ -2291,7 +2247,6 @@ ins $rk4v.d[0], $res0.d[1] @ GHASH final-3 block - mid ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 ldr $h34kq, [$Htable, #64] @ load h4k | h3k eor $rk4v.8b, $rk4v.8b, $res0.8b @ GHASH final-3 block - mid @@ -2318,7 +2273,6 @@ eor $res0b, $res0b, $t0.16b @ feed in partial tag ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 movi $t0.8b, #0 @ supress further partial tag feed in ins $rk4v.d[0], $res0.d[1] @ GHASH final-2 block - mid @@ -2343,7 +2297,6 @@ rev64 $res0b, $res1b @ GHASH final-1 block ldr $h2q, [$Htable, #32] @ load h2l | h2h - ext $h2.16b, $h2.16b, $h2.16b, #8 eor $res0b, $res0b, $t0.16b @ feed in partial tag @@ -2390,7 +2343,6 @@ mov $ctr0.d[0], $temp2_x @ ctr0b is mask for last block ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ld1 { $rk0}, [$output_ptr] @ load existing bytes where the possibly partial last block is to be stored and $res1b, $res1b, $ctr0b @ possibly partial last block has zeroes in highest bits @@ -2781,16 +2733,12 @@ rev32 $ctr5.16b, $rtmp_ctr.16b @ CTR block 8k+13 add $rtmp_ctr.4s, $rtmp_ctr.4s, $rctr_inc.4s @ CTR block 8k+13 ldr $h7q, [$Htable, #144] @ load h7l | h7h - ext $h7.16b, $h7.16b, $h7.16b, #8 ldr $h8q, [$Htable, #176] @ load h8l | h8h - ext $h8.16b, $h8.16b, $h8.16b, #8 ext $acc_lb, $acc_lb, $acc_lb, #8 @ PRE 0 rev64 $res0b, $res0b @ GHASH block 8k ldr $h5q, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ldr $h6q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 rev64 $res1b, $res1b @ GHASH block 8k+1 rev32 $ctr6.16b, $rtmp_ctr.16b @ CTR block 8k+14 @@ -2864,9 +2812,7 @@ aese $ctr0b, $rk3 \n aesmc $ctr0b, $ctr0b @ AES block 8k+8 - round 3 eor $acc_lb, $acc_lb, $h7.16b @ GHASH block 8k+1 - low ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 pmull2 $acc_m.1q, $res0.2d, $h78k.2d @ GHASH block 8k - mid pmull $h78k.1q, $res0.1d, $h78k.1d @ GHASH block 8k+1 - mid @@ -2899,9 +2845,7 @@ eor3 $acc_mb, $acc_mb, $h56k.16b, $t3.16b @ GHASH block 8k+2, 8k+3 - mid aese $ctr4b, $rk5 \n aesmc $ctr4b, $ctr4b @ AES block 8k+12 - round 5 ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ldr $h2q, [$Htable, #32] @ load h2l | h2h - ext $h2.16b, $h2.16b, $h2.16b, #8 ldp $rk6q, $rk7q, [$cc, #96] @ load rk6, rk7 aese $ctr2b, $rk5 \n aesmc $ctr2b, $ctr2b @ AES block 8k+10 - round 5 @@ -3081,9 +3025,7 @@ add $rtmp_ctr.4s, $rtmp_ctr.4s, $rctr_inc.4s @ CTR block 8k+13 ldr $h7q, [$Htable, #144] @ load h7l | h7h - ext $h7.16b, $h7.16b, $h7.16b, #8 ldr $h8q, [$Htable, #176] @ load h8l | h8h - ext $h8.16b, $h8.16b, $h8.16b, #8 rev64 $res0b, $res0b @ GHASH block 8k ext $acc_lb, $acc_lb, $acc_lb, #8 @ PRE 0 @@ -3095,9 +3037,7 @@ rev64 $res3b, $res3b @ GHASH block 8k+3 rev64 $res2b, $res2b @ GHASH block 8k+2 ldr $h5q, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ldr $h6q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 eor $res0b, $res0b, $acc_lb @ PRE 1 rev32 $ctr7.16b, $rtmp_ctr.16b @ CTR block 8k+15 @@ -3176,16 +3116,12 @@ aese $ctr7b, $rk3 \n aesmc $ctr7b, $ctr7b @ AES block 8k+15 - round 3 ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 aese $ctr3b, $rk3 \n aesmc $ctr3b, $ctr3b @ AES block 8k+11 - round 3 pmull2 $t3.1q, $res2.2d, $h56k.2d @ GHASH block 8k+2 - mid ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ldr $h2q, [$Htable, #32] @ load h2l | h2h - ext $h2.16b, $h2.16b, $h2.16b, #8 aese $ctr4b, $rk3 \n aesmc $ctr4b, $ctr4b @ AES block 8k+12 - round 3 rev64 $res4b, $res4b @ GHASH block 8k+4 (t0, t1, and t2 free) @@ -3337,19 +3273,15 @@ .L192_enc_tail: @ TAIL ldp $h5q, $h56kq, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 sub $main_end_input_ptr, $end_input_ptr, $input_ptr @ main_end_input_ptr is number of bytes left to process ldr $ctr_t0q, [$input_ptr], #16 @ AES block 8k+8 - l3ad plaintext ldp $h78kq, $h8q, [$Htable, #160] @ load h8k | h7k - ext $h8.16b, $h8.16b, $h8.16b, #8 mov $t1.16b, $rk12 ldp $h6q, $h7q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 - ext $h7.16b, $h7.16b, $h7.16b, #8 cmp $main_end_input_ptr, #112 eor3 $res1b, $ctr_t0b, $ctr0b, $t1.16b @ AES block 8k+8 - result @@ -3525,7 +3457,6 @@ ldr $ctr_t1q, [$input_ptr], #16 @ AES final-2 block - load plaintext ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 ins $rk4v.d[0], $res0.d[1] @ GHASH final-3 block - mid @@ -3548,7 +3479,6 @@ rev64 $res0b, $res1b @ GHASH final-2 block ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 eor $res0b, $res0b, $t0.16b @ feed in partial tag @@ -3571,7 +3501,6 @@ .L192_enc_blocks_more_than_1: @ blocks left > 1 ldr $h2q, [$Htable, #32] @ load h1l | h1h - ext $h2.16b, $h2.16b, $h2.16b, #8 st1 { $res1b}, [$output_ptr], #16 @ AES final-1 block - store result rev64 $res0b, $res1b @ GHASH final-1 block @@ -3617,7 +3546,6 @@ mov $ctr0.d[1], $temp3_x ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ld1 { $rk0}, [$output_ptr] @ load existing bytes where the possibly partial last block is to be stored mov $ctr0.d[0], $temp2_x @ ctr0b is mask for last block @@ -3945,9 +3873,7 @@ add $rtmp_ctr.4s, $rtmp_ctr.4s, $rctr_inc.4s @ CTR block 8k+13 ldr $h7q, [$Htable, #144] @ load h7l | h7h - ext $h7.16b, $h7.16b, $h7.16b, #8 ldr $h8q, [$Htable, #176] @ load h8l | h8h - ext $h8.16b, $h8.16b, $h8.16b, #8 rev64 $res4b, $res4b @ GHASH block 8k+4 rev64 $res3b, $res3b @ GHASH block 8k+3 @@ -3976,9 +3902,7 @@ aese $ctr6b, $rk1 \n aesmc $ctr6b, $ctr6b @ AES block 8k+14 - round 1 pmull $h7.1q, $res1.1d, $h7.1d @ GHASH block 8k+1 - low ldr $h5q, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ldr $h6q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 aese $ctr0b, $rk1 \n aesmc $ctr0b, $ctr0b @ AES block 8k+8 - round 1 aese $ctr3b, $rk1 \n aesmc $ctr3b, $ctr3b @ AES block 8k+11 - round 1 @@ -4018,9 +3942,7 @@ aese $ctr3b, $rk2 \n aesmc $ctr3b, $ctr3b @ AES block 8k+11 - round 2 ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 aese $ctr5b, $rk2 \n aesmc $ctr5b, $ctr5b @ AES block 8k+13 - round 2 aese $ctr2b, $rk3 \n aesmc $ctr2b, $ctr2b @ AES block 8k+10 - round 3 @@ -4063,9 +3985,7 @@ aese $ctr7b, $rk4 \n aesmc $ctr7b, $ctr7b @ AES block 8k+15 - round 4 ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ldr $h2q, [$Htable, #32] @ load h2l | h2h - ext $h2.16b, $h2.16b, $h2.16b, #8 aese $ctr3b, $rk5 \n aesmc $ctr3b, $ctr3b @ AES block 8k+11 - round 5 aese $ctr5b, $rk5 \n aesmc $ctr5b, $ctr5b @ AES block 8k+13 - round 5 @@ -4242,9 +4162,7 @@ add $rtmp_ctr.4s, $rtmp_ctr.4s, $rctr_inc.4s @ CTR block 8k+13 ldr $h7q, [$Htable, #144] @ load h7l | h7h - ext $h7.16b, $h7.16b, $h7.16b, #8 ldr $h8q, [$Htable, #176] @ load h8l | h8h - ext $h8.16b, $h8.16b, $h8.16b, #8 rev64 $res0b, $res0b @ GHASH block 8k ext $acc_lb, $acc_lb, $acc_lb, #8 @ PRE 0 @@ -4257,9 +4175,7 @@ rev64 $res1b, $res1b @ GHASH block 8k+1 ldr $h5q, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ldr $h6q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 rev32 $ctr7.16b, $rtmp_ctr.16b @ CTR block 8k+15 aese $ctr0b, $rk0 \n aesmc $ctr0b, $ctr0b @ AES block 8k+8 - round 0 @@ -4336,16 +4252,12 @@ aese $ctr0b, $rk3 \n aesmc $ctr0b, $ctr0b @ AES block 8k+8 - round 3 ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 pmull2 $t3.1q, $res2.2d, $h56k.2d @ GHASH block 8k+2 - mid pmull $h56k.1q, $res2.1d, $h56k.1d @ GHASH block 8k+3 - mid ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ldr $h2q, [$Htable, #32] @ load h2l | h2h - ext $h2.16b, $h2.16b, $h2.16b, #8 eor $acc_mb, $acc_mb, $h78k.16b @ GHASH block 8k+1 - mid aese $ctr2b, $rk3 \n aesmc $ctr2b, $ctr2b @ AES block 8k+10 - round 3 @@ -4500,17 +4412,13 @@ sub $main_end_input_ptr, $end_input_ptr, $input_ptr @ main_end_input_ptr is number of bytes left to process ldp $h5q, $h56kq, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ldr $res1q, [$input_ptr], #16 @ AES block 8k+8 - load ciphertext ldp $h78kq, $h8q, [$Htable, #160] @ load h8k | h7k - ext $h8.16b, $h8.16b, $h8.16b, #8 mov $t1.16b, $rk12 ldp $h6q, $h7q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 - ext $h7.16b, $h7.16b, $h7.16b, #8 ext $t0.16b, $acc_lb, $acc_lb, #8 @ prepare final partial tag eor3 $res4b, $res1b, $ctr0b, $t1.16b @ AES block 8k+8 - result @@ -4672,7 +4580,6 @@ .L192_dec_blocks_more_than_3: @ blocks left > 3 ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 rev64 $res0b, $res1b @ GHASH final-3 block ldr $res1q, [$input_ptr], #16 @ AES final-2 block - load ciphertext @@ -4701,7 +4608,6 @@ rev64 $res0b, $res1b @ GHASH final-2 block ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 eor $res0b, $res0b, $t0.16b @ feed in partial tag @@ -4728,7 +4634,6 @@ rev64 $res0b, $res1b @ GHASH final-1 block ldr $res1q, [$input_ptr], #16 @ AES final block - load ciphertext ldr $h2q, [$Htable, #32] @ load h1l | h1h - ext $h2.16b, $h2.16b, $h2.16b, #8 eor $res0b, $res0b, $t0.16b @ feed in partial tag movi $t0.8b, #0 @ supress further partial tag feed in @@ -4772,7 +4677,6 @@ csel $temp2_x, $temp1_x, $temp0_x, lt csel $temp3_x, $temp0_x, xzr, lt ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 mov $ctr0.d[1], $temp3_x ld1 { $rk0}, [$output_ptr] @ load existing bytes where the possibly partial last block is to be stored @@ -5185,9 +5089,7 @@ rev64 $res3b, $res3b @ GHASH block 8k+3 ldr $h5q, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ldr $h6q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 rev64 $res1b, $res1b @ GHASH block 8k+1 rev32 $ctr6.16b, $rtmp_ctr.16b @ CTR block 8k+14 @@ -5197,9 +5099,7 @@ rev64 $res4b, $res4b @ GHASH block 8k+4 ext $acc_lb, $acc_lb, $acc_lb, #8 @ PRE 0 ldr $h7q, [$Htable, #144] @ load h7l | h7h - ext $h7.16b, $h7.16b, $h7.16b, #8 ldr $h8q, [$Htable, #176] @ load h8l | h8h - ext $h8.16b, $h8.16b, $h8.16b, #8 aese $ctr3b, $rk0 \n aesmc $ctr3b, $ctr3b @ AES block 8k+11 - round 0 aese $ctr5b, $rk0 \n aesmc $ctr5b, $ctr5b @ AES block 8k+13 - round 0 @@ -5268,9 +5168,7 @@ pmull $h5.1q, $res3.1d, $h5.1d @ GHASH block 8k+3 - low eor $acc_lb, $acc_lb, $h7.16b @ GHASH block 8k+1 - low ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 trn1 $t6.2d, $res5.2d, $res4.2d @ GHASH block 8k+4, 8k+5 - mid eor3 $acc_hb, $acc_hb, $t1.16b, $t2.16b @ GHASH block 8k+2, 8k+3 - high @@ -5329,9 +5227,7 @@ aese $ctr5b, $rk7 \n aesmc $ctr5b, $ctr5b @ AES block 8k+13 - round 7 ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ldr $h2q, [$Htable, #32] @ load h2l | h2h - ext $h2.16b, $h2.16b, $h2.16b, #8 aese $ctr2b, $rk7 \n aesmc $ctr2b, $ctr2b @ AES block 8k+10 - round 7 eor3 $acc_mb, $acc_mb, $h56k.16b, $t3.16b @ GHASH block 8k+2, 8k+3 - mid @@ -5536,15 +5432,11 @@ aese $ctr3b, $rk1 \n aesmc $ctr3b, $ctr3b @ AES block 8k+11 - round 1 ldr $h7q, [$Htable, #144] @ load h7l | h7h - ext $h7.16b, $h7.16b, $h7.16b, #8 ldr $h8q, [$Htable, #176] @ load h8l | h8h - ext $h8.16b, $h8.16b, $h8.16b, #8 aese $ctr2b, $rk1 \n aesmc $ctr2b, $ctr2b @ AES block 8k+10 - round 1 ldr $h5q, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ldr $h6q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 aese $ctr0b, $rk1 \n aesmc $ctr0b, $ctr0b @ AES block 8k+8 - round 1 aese $ctr5b, $rk1 \n aesmc $ctr5b, $ctr5b @ AES block 8k+13 - round 1 @@ -5626,9 +5518,7 @@ ldp $rk6q, $rk7q, [$cc, #96] @ load rk6, rk7 ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 pmull2 $t3.1q, $res2.2d, $h56k.2d @ GHASH block 8k+2 - mid pmull $h56k.1q, $res2.1d, $h56k.1d @ GHASH block 8k+3 - mid @@ -5659,9 +5549,7 @@ pmull2 $t4.1q, $res4.2d, $h4.2d @ GHASH block 8k+4 - high pmull $h4.1q, $res4.1d, $h4.1d @ GHASH block 8k+4 - low ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ldr $h2q, [$Htable, #32] @ load h2l | h2h - ext $h2.16b, $h2.16b, $h2.16b, #8 ldp $rk8q, $rk9q, [$cc, #128] @ load rk8, rk9 aese $ctr1b, $rk7 \n aesmc $ctr1b, $ctr1b @ AES block 8k+9 - round 7 @@ -5787,18 +5675,14 @@ .L256_enc_tail: @ TAIL ldp $h78kq, $h8q, [$Htable, #160] @ load h8l | h8h - ext $h8.16b, $h8.16b, $h8.16b, #8 sub $main_end_input_ptr, $end_input_ptr, $input_ptr @ main_end_input_ptr is number of bytes left to process ldr $ctr_t0q, [$input_ptr], #16 @ AES block 8k+8 - load plaintext ldp $h5q, $h56kq, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ext $t0.16b, $acc_lb, $acc_lb, #8 @ prepare final partial tag ldp $h6q, $h7q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 - ext $h7.16b, $h7.16b, $h7.16b, #8 mov $t1.16b, $rk14 cmp $main_end_input_ptr, #112 @@ -5968,7 +5852,6 @@ st1 { $res1b}, [$output_ptr], #16 @ AES final-3 block - store result ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 rev64 $res0b, $res1b @ GHASH final-3 block eor $res0b, $res0b, $t0.16b @ feed in partial tag @@ -5994,7 +5877,6 @@ .L256_enc_blocks_more_than_2: @ blocks left > 2 ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 st1 { $res1b}, [$output_ptr], #16 @ AES final-2 block - store result @@ -6024,7 +5906,6 @@ st1 { $res1b}, [$output_ptr], #16 @ AES final-1 block - store result ldr $h2q, [$Htable, #32] @ load h2l | h2h - ext $h2.16b, $h2.16b, $h2.16b, #8 rev64 $res0b, $res1b @ GHASH final-1 block ldr $ctr_t1q, [$input_ptr], #16 @ AES final block - load plaintext @@ -6068,7 +5949,6 @@ mov $ctr0.d[0], $temp2_x @ ctr0b is mask for last block ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ld1 { $rk0}, [$output_ptr] @ load existing bytes where the possibly partial last block is to be stored mov $ctr0.d[1], $temp3_x @@ -6415,9 +6295,7 @@ rev64 $res1b, $res1b @ GHASH block 8k+1 ldr $h7q, [$Htable, #144] @ load h7l | h7h - ext $h7.16b, $h7.16b, $h7.16b, #8 ldr $h8q, [$Htable, #176] @ load h8l | h8h - ext $h8.16b, $h8.16b, $h8.16b, #8 rev32 $ctr6.16b, $rtmp_ctr.16b @ CTR block 8k+14 add $rtmp_ctr.4s, $rtmp_ctr.4s, $rctr_inc.4s @ CTR block 8k+14 @@ -6444,9 +6322,7 @@ eor $res0b, $res0b, $acc_lb @ PRE 1 ldr $h5q, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ldr $h6q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 aese $ctr6b, $rk1 \n aesmc $ctr6b, $ctr6b @ AES block 8k+14 - round 1 aese $ctr4b, $rk1 \n aesmc $ctr4b, $ctr4b @ AES block 8k+12 - round 1 @@ -6551,9 +6427,7 @@ eor3 $acc_lb, $acc_lb, $h6.16b, $h5.16b @ GHASH block 8k+2, 8k+3 - low ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 rev64 $res6b, $res6b @ GHASH block 8k+6 eor $acc_mb, $acc_mb, $h78k.16b @ GHASH block 8k+1 - mid @@ -6562,9 +6436,7 @@ ldp $rk8q, $rk9q, [$cc, #128] @ load rk8, rk9 ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ldr $h2q, [$Htable, #32] @ load h2l | h2h - ext $h2.16b, $h2.16b, $h2.16b, #8 eor3 $acc_mb, $acc_mb, $h56k.16b, $t3.16b @ GHASH block 8k+2, 8k+3 - mid aese $ctr7b, $rk7 \n aesmc $ctr7b, $ctr7b @ AES block 8k+15 - round 7 @@ -6746,17 +6618,13 @@ ext $acc_lb, $acc_lb, $acc_lb, #8 @ PRE 0 ldr $h7q, [$Htable, #144] @ load h7l | h7h - ext $h7.16b, $h7.16b, $h7.16b, #8 ldr $h8q, [$Htable, #176] @ load h8l | h8h - ext $h8.16b, $h8.16b, $h8.16b, #8 rev64 $res1b, $res1b @ GHASH block 8k+1 rev32 $ctr7.16b, $rtmp_ctr.16b @ CTR block 8k+15 rev64 $res2b, $res2b @ GHASH block 8k+2 ldr $h5q, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 ldr $h6q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 aese $ctr0b, $rk0 \n aesmc $ctr0b, $ctr0b @ AES block 8k+8 - round 0 aese $ctr1b, $rk0 \n aesmc $ctr1b, $ctr1b @ AES block 8k+9 - round 0 @@ -6837,9 +6705,7 @@ eor3 $acc_lb, $acc_lb, $h6.16b, $h5.16b @ GHASH block 8k+2, 8k+3 - low ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 ldr $h2q, [$Htable, #32] @ load h2l | h2h - ext $h2.16b, $h2.16b, $h2.16b, #8 aese $ctr7b, $rk4 \n aesmc $ctr7b, $ctr7b @ AES block 8k+15 - round 4 aese $ctr2b, $rk4 \n aesmc $ctr2b, $ctr2b @ AES block 8k+10 - round 4 @@ -6867,9 +6733,7 @@ ldp $rk6q, $rk7q, [$cc, #96] @ load rk6, rk7 ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 rev64 $res7b, $res7b @ GHASH block 8k+7 rev64 $res5b, $res5b @ GHASH block 8k+5 @@ -7025,16 +6889,12 @@ ldr $res1q, [$input_ptr], #16 @ AES block 8k+8 - load ciphertext ldp $h78kq, $h8q, [$Htable, #160] @ load h8k | h7k - ext $h8.16b, $h8.16b, $h8.16b, #8 mov $t1.16b, $rk14 ldp $h5q, $h56kq, [$Htable, #96] @ load h5l | h5h - ext $h5.16b, $h5.16b, $h5.16b, #8 eor3 $res4b, $res1b, $ctr0b, $t1.16b @ AES block 8k+8 - result ldp $h6q, $h7q, [$Htable, #128] @ load h6l | h6h - ext $h6.16b, $h6.16b, $h6.16b, #8 - ext $h7.16b, $h7.16b, $h7.16b, #8 b.gt .L256_dec_blocks_more_than_7 mov $ctr7b, $ctr6b @@ -7193,7 +7053,6 @@ .L256_dec_blocks_more_than_3: @ blocks left > 3 ldr $h4q, [$Htable, #80] @ load h4l | h4h - ext $h4.16b, $h4.16b, $h4.16b, #8 rev64 $res0b, $res1b @ GHASH final-3 block eor $res0b, $res0b, $t0.16b @ feed in partial tag @@ -7223,7 +7082,6 @@ rev64 $res0b, $res1b @ GHASH final-2 block ldr $h3q, [$Htable, #48] @ load h3l | h3h - ext $h3.16b, $h3.16b, $h3.16b, #8 ldr $res1q, [$input_ptr], #16 @ AES final-1 block - load ciphertext eor $res0b, $res0b, $t0.16b @ feed in partial tag @@ -7251,7 +7109,6 @@ ins $rk4v.d[0], $res0.d[1] @ GHASH final-1 block - mid ldr $h2q, [$Htable, #32] @ load h2l | h2h - ext $h2.16b, $h2.16b, $h2.16b, #8 eor $rk4v.8b, $rk4v.8b, $res0.8b @ GHASH final-1 block - mid ldr $res1q, [$input_ptr], #16 @ AES final block - load ciphertext @@ -7299,7 +7156,6 @@ and $res1b, $res1b, $ctr0b @ possibly partial last block has zeroes in highest bits ldr $h1q, [$Htable] @ load h1l | h1h - ext $h1.16b, $h1.16b, $h1.16b, #8 bif $res4b, $rk0, $ctr0b @ insert existing bytes in top end of result before storing rev64 $res0b, $res1b @ GHASH final block diff --git a/crypto/fipsmodule/modes/asm/aesv8-gcm-armv8.pl b/crypto/fipsmodule/modes/asm/aesv8-gcm-armv8.pl index e38f64058a..56096332f5 100644 --- a/crypto/fipsmodule/modes/asm/aesv8-gcm-armv8.pl +++ b/crypto/fipsmodule/modes/asm/aesv8-gcm-armv8.pl @@ -353,18 +353,15 @@ ldr $rk5q, [$cc, #80] // load rk5 aese $ctr1b, $rk1 \n aesmc $ctr1b, $ctr1b // AES block 1 - round 1 ldr $h3q, [$Htable, #48] // load h3l | h3h - ext $h3b, $h3b, $h3b, #8 aese $ctr3b, $rk0 \n aesmc $ctr3b, $ctr3b // AES block 3 - round 0 aese $ctr2b, $rk1 \n aesmc $ctr2b, $ctr2b // AES block 2 - round 1 ldr $rk4q, [$cc, #64] // load rk4 aese $ctr1b, $rk2 \n aesmc $ctr1b, $ctr1b // AES block 1 - round 2 ldr $h2q, [$Htable, #32] // load h2l | h2h - ext $h2b, $h2b, $h2b, #8 aese $ctr3b, $rk1 \n aesmc $ctr3b, $ctr3b // AES block 3 - round 1 ldr $rk12q, [$cc, #192] // load rk12 aese $ctr2b, $rk2 \n aesmc $ctr2b, $ctr2b // AES block 2 - round 2 ldr $h4q, [$Htable, #80] // load h4l | h4h - ext $h4b, $h4b, $h4b, #8 aese $ctr1b, $rk3 \n aesmc $ctr1b, $ctr1b // AES block 1 - round 3 ldr $rk11q, [$cc, #176] // load rk11 aese $ctr3b, $rk2 \n aesmc $ctr3b, $ctr3b // AES block 3 - round 2 @@ -391,7 +388,6 @@ ldr $rk9q, [$cc, #144] // load rk9 aese $ctr0b, $rk6 \n aesmc $ctr0b, $ctr0b // AES block 0 - round 6 ldr $h1q, [$Htable] // load h1l | h1h - ext $h1b, $h1b, $h1b, #8 aese $ctr2b, $rk6 \n aesmc $ctr2b, $ctr2b // AES block 2 - round 6 ldr $rk10q, [$cc, #160] // load rk10 aese $ctr1b, $rk7 \n aesmc $ctr1b, $ctr1b // AES block 1 - round 7 @@ -777,7 +773,7 @@ fmov $ctr_t0d, $input_l0 // AES block 4k+4 - mov low fmov $ctr_t0.d[1], $input_h0 // AES block 4k+4 - mov high eor $res1b, $ctr_t0b, $ctr0b // AES block 4k+4 - result - b.gt .Lenc_blocks_more_than_3 + b.gt .Lenc_blocks_4_remaining cmp $main_end_input_ptr, #32 mov $ctr3b, $ctr2b movi $acc_l.8b, #0 @@ -785,14 +781,14 @@ sub $rctr32w, $rctr32w, #1 mov $ctr2b, $ctr1b movi $acc_m.8b, #0 - b.gt .Lenc_blocks_more_than_2 + b.gt .Lenc_blocks_3_remaining mov $ctr3b, $ctr1b sub $rctr32w, $rctr32w, #1 cmp $main_end_input_ptr, #16 - b.gt .Lenc_blocks_more_than_1 + b.gt .Lenc_blocks_2_remaining sub $rctr32w, $rctr32w, #1 - b .Lenc_blocks_less_than_1 -.Lenc_blocks_more_than_3: // blocks left > 3 + b .Lenc_blocks_1_remaining +.Lenc_blocks_4_remaining: // blocks left = 4 st1 { $res1b}, [$output_ptr], #16 // AES final-3 block - store result ldp $input_l0, $input_h0, [$input_ptr], #16 // AES final-2 block - load input low & high rev64 $res0b, $res1b // GHASH final-3 block @@ -809,7 +805,7 @@ pmull2 $acc_h.1q, $res0.2d, $h4.2d // GHASH final-3 block - high pmull $acc_m.1q, $rk4v.1d, $acc_m.1d // GHASH final-3 block - mid eor $res1b, $res1b, $ctr1b // AES final-2 block - result -.Lenc_blocks_more_than_2: // blocks left > 2 +.Lenc_blocks_3_remaining: // blocks left = 3 st1 { $res1b}, [$output_ptr], #16 // AES final-2 block - store result ldp $input_l0, $input_h0, [$input_ptr], #16 // AES final-1 block - load input low & high rev64 $res0b, $res1b // GHASH final-2 block @@ -828,7 +824,7 @@ pmull $rk4v.1q, $rk4v.1d, $h34k.1d // GHASH final-2 block - mid eor $acc_lb, $acc_lb, $rk3 // GHASH final-2 block - low eor $acc_mb, $acc_mb, $rk4v.16b // GHASH final-2 block - mid -.Lenc_blocks_more_than_1: // blocks left > 1 +.Lenc_blocks_2_remaining: // blocks left = 2 st1 { $res1b}, [$output_ptr], #16 // AES final-1 block - store result rev64 $res0b, $res1b // GHASH final-1 block ldp $input_l0, $input_h0, [$input_ptr], #16 // AES final block - load input low & high @@ -848,24 +844,9 @@ eor $res1b, $res1b, $ctr3b // AES final block - result eor $acc_mb, $acc_mb, $rk4v.16b // GHASH final-1 block - mid eor $acc_lb, $acc_lb, $rk3 // GHASH final-1 block - low -.Lenc_blocks_less_than_1: // blocks left <= 1 - and $bit_length, $bit_length, #127 // bit_length %= 128 - mvn $rkN_l, xzr // rkN_l = 0xffffffffffffffff - sub $bit_length, $bit_length, #128 // bit_length -= 128 - neg $bit_length, $bit_length // bit_length = 128 - #bits in input (in range [1,128]) - ld1 { $rk0}, [$output_ptr] // load existing bytes where the possibly partial last block is to be stored - mvn $rkN_h, xzr // rkN_h = 0xffffffffffffffff - and $bit_length, $bit_length, #127 // bit_length %= 128 - lsr $rkN_h, $rkN_h, $bit_length // rkN_h is mask for top 64b of last block - cmp $bit_length, #64 - csel $input_l0, $rkN_l, $rkN_h, lt - csel $input_h0, $rkN_h, xzr, lt - fmov $ctr0d, $input_l0 // ctr0b is mask for last block - fmov $ctr0.d[1], $input_h0 - and $res1b, $res1b, $ctr0b // possibly partial last block has zeroes in highest bits +.Lenc_blocks_1_remaining: // blocks_left = 1 rev64 $res0b, $res1b // GHASH final block eor $res0b, $res0b, $t0.16b // feed in partial tag - bif $res1b, $rk0, $ctr0b // insert existing bytes in top end of result before storing pmull2 $rk2q1, $res0.2d, $h1.2d // GHASH final block - high mov $t0d, $res0.d[1] // GHASH final block - mid rev $ctr32w, $rctr32w @@ -977,13 +958,10 @@ ldr $rk1q, [$cc, #16] // load rk1 aese $ctr0b, $rk0 \n aesmc $ctr0b, $ctr0b // AES block 0 - round 0 ldr $h3q, [$Htable, #48] // load h3l | h3h - ext $h3b, $h3b, $h3b, #8 aese $ctr3b, $rk0 \n aesmc $ctr3b, $ctr3b // AES block 3 - round 0 ldr $h4q, [$Htable, #80] // load h4l | h4h - ext $h4b, $h4b, $h4b, #8 aese $ctr1b, $rk0 \n aesmc $ctr1b, $ctr1b // AES block 1 - round 0 ldr $h2q, [$Htable, #32] // load h2l | h2h - ext $h2b, $h2b, $h2b, #8 aese $ctr2b, $rk0 \n aesmc $ctr2b, $ctr2b // AES block 2 - round 0 ldr $rk2q, [$cc, #32] // load rk2 aese $ctr0b, $rk1 \n aesmc $ctr0b, $ctr0b // AES block 0 - round 1 @@ -997,7 +975,6 @@ ldr $rk12q, [$cc, #192] // load rk12 aese $ctr0b, $rk2 \n aesmc $ctr0b, $ctr0b // AES block 0 - round 2 ldr $h1q, [$Htable] // load h1l | h1h - ext $h1b, $h1b, $h1b, #8 aese $ctr2b, $rk2 \n aesmc $ctr2b, $ctr2b // AES block 2 - round 2 ldr $rk10q, [$cc, #160] // load rk10 aese $ctr3b, $rk2 \n aesmc $ctr3b, $ctr3b // AES block 3 - round 2 @@ -1405,7 +1382,7 @@ cmp $main_end_input_ptr, #48 eor $output_l0, $output_l0, $rkN_l // AES block 4k+4 - round N low eor $output_h0, $output_h0, $rkN_h // AES block 4k+4 - round N high - b.gt .Ldec_blocks_more_than_3 + b.gt .Ldec_blocks_4_remaining sub $rctr32w, $rctr32w, #1 mov $ctr3b, $ctr2b movi $acc_m.8b, #0 @@ -1413,14 +1390,14 @@ cmp $main_end_input_ptr, #32 movi $acc_h.8b, #0 mov $ctr2b, $ctr1b - b.gt .Ldec_blocks_more_than_2 + b.gt .Ldec_blocks_3_remaining sub $rctr32w, $rctr32w, #1 mov $ctr3b, $ctr1b cmp $main_end_input_ptr, #16 - b.gt .Ldec_blocks_more_than_1 + b.gt .Ldec_blocks_2_remaining sub $rctr32w, $rctr32w, #1 - b .Ldec_blocks_less_than_1 -.Ldec_blocks_more_than_3: // blocks left > 3 + b .Ldec_blocks_1_remaining +.Ldec_blocks_4_remaining: // blocks left = 4 rev64 $res0b, $res1b // GHASH final-3 block ld1 { $res1b}, [$input_ptr], #16 // AES final-2 block - load ciphertext stp $output_l0, $output_h0, [$output_ptr], #16 // AES final-3 block - store result @@ -1437,7 +1414,7 @@ eor $output_l0, $output_l0, $rkN_l // AES final-2 block - round N low pmull $acc_l.1q, $res0.1d, $h4.1d // GHASH final-3 block - low eor $output_h0, $output_h0, $rkN_h // AES final-2 block - round N high -.Ldec_blocks_more_than_2: // blocks left > 2 +.Ldec_blocks_3_remaining: // blocks left = 3 rev64 $res0b, $res1b // GHASH final-2 block ld1 { $res1b}, [$input_ptr], #16 // AES final-1 block - load ciphertext eor $res0b, $res0b, $t0.16b // feed in partial tag @@ -1456,7 +1433,7 @@ eor $output_l0, $output_l0, $rkN_l // AES final-1 block - round N low eor $acc_mb, $acc_mb, $rk4v.16b // GHASH final-2 block - mid eor $output_h0, $output_h0, $rkN_h // AES final-1 block - round N high -.Ldec_blocks_more_than_1: // blocks left > 1 +.Ldec_blocks_2_remaining: // blocks left = 2 stp $output_l0, $output_h0, [$output_ptr], #16 // AES final-1 block - store result rev64 $res0b, $res1b // GHASH final-1 block ld1 { $res1b}, [$input_ptr], #16 // AES final block - load ciphertext @@ -1476,28 +1453,8 @@ eor $acc_hb, $acc_hb, $rk2 // GHASH final-1 block - high eor $acc_mb, $acc_mb, $rk4v.16b // GHASH final-1 block - mid eor $output_h0, $output_h0, $rkN_h // AES final block - round N high -.Ldec_blocks_less_than_1: // blocks left <= 1 - and $bit_length, $bit_length, #127 // bit_length %= 128 - mvn $rkN_h, xzr // rkN_h = 0xffffffffffffffff - sub $bit_length, $bit_length, #128 // bit_length -= 128 - mvn $rkN_l, xzr // rkN_l = 0xffffffffffffffff - ldp $end_input_ptr, $main_end_input_ptr, [$output_ptr] // load existing bytes we need to not overwrite - neg $bit_length, $bit_length // bit_length = 128 - #bits in input (in range [1,128]) - and $bit_length, $bit_length, #127 // bit_length %= 128 - lsr $rkN_h, $rkN_h, $bit_length // rkN_h is mask for top 64b of last block - cmp $bit_length, #64 - csel $ctr32x, $rkN_l, $rkN_h, lt - csel $ctr96_b64x, $rkN_h, xzr, lt - fmov $ctr0d, $ctr32x // ctr0b is mask for last block - and $output_l0, $output_l0, $ctr32x - mov $ctr0.d[1], $ctr96_b64x - bic $end_input_ptr, $end_input_ptr, $ctr32x // mask out low existing bytes +.Ldec_blocks_1_remaining: // blocks_left = 1 rev $ctr32w, $rctr32w - bic $main_end_input_ptr, $main_end_input_ptr, $ctr96_b64x // mask out high existing bytes - orr $output_l0, $output_l0, $end_input_ptr - and $output_h0, $output_h0, $ctr96_b64x - orr $output_h0, $output_h0, $main_end_input_ptr - and $res1b, $res1b, $ctr0b // possibly partial last block has zeroes in highest bits rev64 $res0b, $res1b // GHASH final block eor $res0b, $res0b, $t0.16b // feed in partial tag pmull $rk3q1, $res0.1d, $h1.1d // GHASH final block - low diff --git a/crypto/fipsmodule/modes/asm/ghash-ssse3-x86_64.pl b/crypto/fipsmodule/modes/asm/ghash-ssse3-x86_64.pl index 0bc786c63b..7966913b0c 100644 --- a/crypto/fipsmodule/modes/asm/ghash-ssse3-x86_64.pl +++ b/crypto/fipsmodule/modes/asm/ghash-ssse3-x86_64.pl @@ -107,6 +107,7 @@ gcm_gmult_ssse3: .cfi_startproc .seh_startproc + _CET_ENDBR ____ $code .= <<____ if ($win64); subq \$40, %rsp @@ -249,6 +250,7 @@ sub process_rows { gcm_ghash_ssse3: .cfi_startproc .seh_startproc + _CET_ENDBR ____ $code .= <<____ if ($win64); subq \$56, %rsp diff --git a/crypto/fipsmodule/modes/asm/ghash-x86_64.pl b/crypto/fipsmodule/modes/asm/ghash-x86_64.pl index 2bfa3c0a02..be7ac4f8c0 100644 --- a/crypto/fipsmodule/modes/asm/ghash-x86_64.pl +++ b/crypto/fipsmodule/modes/asm/ghash-x86_64.pl @@ -210,6 +210,7 @@ sub reduction_alg9 { # 17/11 times faster than Intel version gcm_init_clmul: .cfi_startproc .seh_startproc + _CET_ENDBR .L_init_clmul: ___ $code.=<<___ if ($win64); @@ -292,6 +293,7 @@ sub reduction_alg9 { # 17/11 times faster than Intel version .align 16 gcm_gmult_clmul: .cfi_startproc + _CET_ENDBR .L_gmult_clmul: movdqu ($Xip),$Xi movdqa .Lbswap_mask(%rip),$T3 @@ -344,6 +346,7 @@ sub reduction_alg9 { # 17/11 times faster than Intel version gcm_ghash_clmul: .cfi_startproc .seh_startproc + _CET_ENDBR .L_ghash_clmul: ___ $code.=<<___ if ($win64); @@ -712,6 +715,7 @@ sub reduction_alg9 { # 17/11 times faster than Intel version .align 32 gcm_init_avx: .cfi_startproc + _CET_ENDBR ___ if ($avx) { my ($Htbl,$Xip)=@_4args; @@ -858,6 +862,7 @@ sub reduction_avx { .align 32 gcm_gmult_avx: .cfi_startproc + _CET_ENDBR jmp .L_gmult_clmul .cfi_endproc .size gcm_gmult_avx,.-gcm_gmult_avx @@ -869,6 +874,7 @@ sub reduction_avx { .align 32 gcm_ghash_avx: .cfi_startproc + _CET_ENDBR ___ if ($avx) { my ($Xip,$Htbl,$inp,$len)=@_4args; diff --git a/crypto/fipsmodule/modes/asm/ghashv8-armx.pl b/crypto/fipsmodule/modes/asm/ghashv8-armx.pl index ccc496e1c0..78b87d6dea 100644 --- a/crypto/fipsmodule/modes/asm/ghashv8-armx.pl +++ b/crypto/fipsmodule/modes/asm/ghashv8-armx.pl @@ -113,13 +113,14 @@ vand $t0,$t0,$t1 vorr $IN,$IN,$t2 @ H<<<=1 veor $H,$IN,$t0 @ twisted H + vext.8 $H, $H, $H, #8 vst1.64 {$H},[x0],#16 @ store Htable[0] - @ calculate H^2 + @ calculate H^2 vext.8 $t0,$H,$H,#8 @ Karatsuba pre-processing - vpmull.p64 $Xl,$H,$H + vpmull2.p64 $Xl,$H,$H veor $t0,$t0,$H - vpmull2.p64 $Xh,$H,$H + vpmull.p64 $Xh,$H,$H vpmull.p64 $Xm,$t0,$t0 vext.8 $t1,$Xl,$Xh,#8 @ Karatsuba post-processing @@ -135,23 +136,25 @@ vext.8 $t2,$Xl,$Xl,#8 @ 2nd phase vpmull.p64 $Xl,$Xl,$xC2 veor $t2,$t2,$Xh - veor $H2,$Xl,$t2 + veor $t1,$Xl,$t2 - vext.8 $t1,$H2,$H2,#8 @ Karatsuba pre-processing + vext.8 $H2,$t1,$t1,#8 @ Karatsuba pre-processing veor $t1,$t1,$H2 vext.8 $Hhl,$t0,$t1,#8 @ pack Karatsuba pre-processed - vst1.64 {$Hhl-$H2},[x0],#32 @ store Htable[1..2] + vst1.64 {$Hhl},[x0],#16 @ store Htable[1..2] + vst1.64 {$H2},[x0],#16 @ store Htable[1..2] ___ if ($flavour =~ /64/) { my ($t3,$Yl,$Ym,$Yh) = map("q$_",(4..7)); my ($H3,$H34k,$H4,$H5,$H56k,$H6,$H7,$H78k,$H8) = map("q$_",(15..23)); $code.=<<___; + @ calculate H^3 and H^4 - vpmull.p64 $Xl,$H, $H2 - vpmull.p64 $Yl,$H2,$H2 - vpmull2.p64 $Xh,$H, $H2 - vpmull2.p64 $Yh,$H2,$H2 + vpmull2.p64 $Xl,$H, $H2 + vpmull2.p64 $Yl,$H2,$H2 + vpmull.p64 $Xh,$H, $H2 + vpmull.p64 $Yh,$H2,$H2 vpmull.p64 $Xm,$t0,$t1 vpmull.p64 $Ym,$t1,$t1 @@ -180,23 +183,23 @@ veor $t2,$t2,$Xh veor $t3,$t3,$Yh - veor $H3, $Xl,$t2 @ H^3 - veor $H4,$Yl,$t3 @ H^4 + veor $t0, $Xl,$t2 @ H^3 + veor $t1, $Yl,$t3 @ H^4 - vext.8 $t0,$H3, $H3,#8 @ Karatsuba pre-processing - vext.8 $t1,$H4,$H4,#8 + vext.8 $H3,$t0,$t0,#8 @ Karatsuba pre-processing + vext.8 $H4,$t1,$t1,#8 vext.8 $t2,$H2,$H2,#8 veor $t0,$t0,$H3 veor $t1,$t1,$H4 veor $t2,$t2,$H2 - vext.8 $H34k,$t0,$t1,#8 @ pack Karatsuba pre-processed + vext.8 $H34k,$t0,$t1,#8 @ pack Karatsuba pre-processed vst1.64 {$H3-$H4},[x0],#48 @ store Htable[3..5] @ calculate H^5 and H^6 - vpmull.p64 $Xl,$H2, $H3 - vpmull.p64 $Yl,$H3,$H3 - vpmull2.p64 $Xh,$H2, $H3 - vpmull2.p64 $Yh,$H3,$H3 + vpmull2.p64 $Xl,$H2, $H3 + vpmull2.p64 $Yl,$H3,$H3 + vpmull.p64 $Xh,$H2, $H3 + vpmull.p64 $Yh,$H3,$H3 vpmull.p64 $Xm,$t0,$t2 vpmull.p64 $Ym,$t0,$t0 @@ -223,12 +226,13 @@ vpmull.p64 $Xl,$Xl,$xC2 vpmull.p64 $Yl,$Yl,$xC2 veor $t2,$t2,$Xh - veor $t3,$t3,$Yh - veor $H5,$Xl,$t2 @ H^5 - veor $H6,$Yl,$t3 @ H^6 + veor $t3,$t3,$Yh + + veor $t0,$Xl,$t2 @ H^5 + veor $t1,$Yl,$t3 @ H^6 - vext.8 $t0,$H5, $H5,#8 @ Karatsuba pre-processing - vext.8 $t1,$H6,$H6,#8 + vext.8 $H5, $t0, $t0,#8 @ Karatsuba pre-processing + vext.8 $H6, $t1, $t1,#8 vext.8 $t2,$H2,$H2,#8 veor $t0,$t0,$H5 veor $t1,$t1,$H6 @@ -237,10 +241,10 @@ vst1.64 {$H5-$H6},[x0],#48 @ store Htable[6..8] @ calculate H^7 and H^8 - vpmull.p64 $Xl,$H2,$H5 - vpmull.p64 $Yl,$H2,$H6 - vpmull2.p64 $Xh,$H2,$H5 - vpmull2.p64 $Yh,$H2,$H6 + vpmull2.p64 $Xl,$H2,$H5 + vpmull2.p64 $Yl,$H2,$H6 + vpmull.p64 $Xh,$H2,$H5 + vpmull.p64 $Yh,$H2,$H6 vpmull.p64 $Xm,$t0,$t2 vpmull.p64 $Ym,$t1,$t2 @@ -268,11 +272,11 @@ vpmull.p64 $Yl,$Yl,$xC2 veor $t2,$t2,$Xh veor $t3,$t3,$Yh - veor $H7,$Xl,$t2 @ H^7 - veor $H8,$Yl,$t3 @ H^8 + veor $t0,$Xl,$t2 @ H^7 + veor $t1,$Yl,$t3 @ H^8 - vext.8 $t0,$H7,$H7,#8 @ Karatsuba pre-processing - vext.8 $t1,$H8,$H8,#8 + vext.8 $H7,$t0,$t0,#8 @ Karatsuba pre-processing + vext.8 $H8,$t1,$t1,#8 veor $t0,$t0,$H7 veor $t1,$t1,$H8 vext.8 $H78k,$t0,$t1,#8 @ pack Karatsuba pre-processed @@ -299,6 +303,7 @@ vld1.64 {$t1},[$Xi] @ load Xi vmov.i8 $xC2,#0xe1 vld1.64 {$H-$Hhl},[$Htbl] @ load twisted H, ... + vext.8 $H,$H,$H,#8 vshl.u64 $xC2,$xC2,#57 #ifndef __ARMEB__ vrev64.8 $t1,$t1 @@ -375,8 +380,10 @@ @ loaded twice, but last @ copy is not processed vld1.64 {$H-$Hhl},[$Htbl],#32 @ load twisted H, ..., H^2 + vext.8 $H,$H,$H,#8 vmov.i8 $xC2,#0xe1 vld1.64 {$H2},[$Htbl] + vext.8 $H2,$H2,$H2,#8 cclr $inc,eq @ is it time to zero $inc? vext.8 $Xl,$Xl,$Xl,#8 @ rotate Xi vld1.64 {$t0},[$inp],#16 @ load [rotated] I[0] @@ -513,8 +520,12 @@ .Lgcm_ghash_v8_4x: vld1.64 {$Xl},[$Xi] @ load [rotated] Xi vld1.64 {$H-$H2},[$Htbl],#48 @ load twisted H, ..., H^2 + vext.8 $H,$H,$H,#8 + vext.8 $H2,$H2,$H2,#8 vmov.i8 $xC2,#0xe1 vld1.64 {$H3-$H4},[$Htbl] @ load twisted H^3, ..., H^4 + vext.8 $H3,$H3,$H3,#8 + vext.8 $H4,$H4,$H4,#8 vshl.u64 $xC2,$xC2,#57 @ compose 0xc2.0 constant vld1.64 {$I0-$j3},[$inp],#64 diff --git a/crypto/fipsmodule/modes/gcm.c b/crypto/fipsmodule/modes/gcm.c index a862757e6d..3d7d3ed931 100644 --- a/crypto/fipsmodule/modes/gcm.c +++ b/crypto/fipsmodule/modes/gcm.c @@ -234,6 +234,7 @@ void CRYPTO_ghash_init(gmult_func *out_mult, ghash_func *out_hash, CRYPTO_load_u64_be(gcm_key + 8)}; #if defined(GHASH_ASM_X86_64) +#if !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX) if (crypto_gcm_avx512_enabled()) { gcm_init_avx512(out_table, H); *out_mult = gcm_gmult_avx512; @@ -241,6 +242,7 @@ void CRYPTO_ghash_init(gmult_func *out_mult, ghash_func *out_hash, *out_is_avx = 1; return; } +#endif if (crypto_gcm_clmul_enabled()) { if (CRYPTO_is_AVX_capable() && CRYPTO_is_MOVBE_capable()) { gcm_init_avx(out_table, H); @@ -335,7 +337,7 @@ void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const AES_KEY *key, ctx->ares = 0; ctx->mres = 0; -#if defined(GHASH_ASM_X86_64) +#if defined(GHASH_ASM_X86_64) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX) if (ctx->gcm_key.use_hw_gcm_crypt && crypto_gcm_avx512_enabled()) { gcm_setiv_avx512(key, ctx, iv, len); return; @@ -621,7 +623,7 @@ int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, const AES_KEY *key, ctx->ares = 0; } -#if defined(GHASH_ASM_X86_64) +#if defined(GHASH_ASM_X86_64) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX) if (ctx->gcm_key.use_hw_gcm_crypt && crypto_gcm_avx512_enabled() && len > 0) { aes_gcm_encrypt_avx512(key, ctx, &ctx->mres, in, len, out); return 1; @@ -715,7 +717,7 @@ int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, const AES_KEY *key, ctx->ares = 0; } -#if defined(GHASH_ASM_X86_64) +#if defined(GHASH_ASM_X86_64) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX) if (ctx->gcm_key.use_hw_gcm_crypt && crypto_gcm_avx512_enabled() && len > 0) { aes_gcm_decrypt_avx512(key, ctx, &ctx->mres, in, len, out); return 1; diff --git a/crypto/fipsmodule/modes/internal.h b/crypto/fipsmodule/modes/internal.h index d2d2f12b11..71f2d5c731 100644 --- a/crypto/fipsmodule/modes/internal.h +++ b/crypto/fipsmodule/modes/internal.h @@ -299,10 +299,12 @@ void gcm_init_avx(u128 Htable[16], const uint64_t Xi[2]); void gcm_gmult_avx(uint8_t Xi[16], const u128 Htable[16]); void gcm_ghash_avx(uint8_t Xi[16], const u128 Htable[16], const uint8_t *in, size_t len); +#if !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX) void gcm_init_avx512(u128 Htable[16], const uint64_t Xi[2]); void gcm_gmult_avx512(uint8_t Xi[2], const u128 Htable[16]); void gcm_ghash_avx512(uint8_t Xi[2], const u128 Htable[16], const uint8_t *in, size_t len); +#endif #define HW_GCM size_t aesni_gcm_encrypt(const uint8_t *in, uint8_t *out, size_t len, const AES_KEY *key, uint8_t ivec[16], diff --git a/crypto/fipsmodule/rand/asm/rdrand-x86_64.pl b/crypto/fipsmodule/rand/asm/rdrand-x86_64.pl index de2776a1b5..fb4dbc5be9 100644 --- a/crypto/fipsmodule/rand/asm/rdrand-x86_64.pl +++ b/crypto/fipsmodule/rand/asm/rdrand-x86_64.pl @@ -49,6 +49,7 @@ .align 16 CRYPTO_rdrand: .cfi_startproc + _CET_ENDBR xorq %rax, %rax rdrand $tmp1 test $tmp1, $tmp1 # OLD cpu's: can use all 0s in output as error signal @@ -74,6 +75,7 @@ .align 16 CRYPTO_rdrand_multiple8_buf: .cfi_startproc + _CET_ENDBR test $len, $len jz .Lout movq \$8, $tmp1 diff --git a/crypto/fipsmodule/rand/rand.c b/crypto/fipsmodule/rand/rand.c index 6d12f21092..0b76c54eb0 100644 --- a/crypto/fipsmodule/rand/rand.c +++ b/crypto/fipsmodule/rand/rand.c @@ -259,6 +259,9 @@ static void rand_thread_state_free(void *state_in) { if (state->prev != NULL) { state->prev->next = state->next; } else if (*thread_states_list_bss_get() == state) { + // |state->prev| may be NULL either if it is the head of the list, + // or if |state| is freed before it was added to the list at all. + // Compare against the head of the list to distinguish these cases. *thread_states_list_bss_get() = state->next; } diff --git a/crypto/fipsmodule/rsa/rsa_impl.c b/crypto/fipsmodule/rsa/rsa_impl.c index d66031f29e..9b91c7a1fd 100644 --- a/crypto/fipsmodule/rsa/rsa_impl.c +++ b/crypto/fipsmodule/rsa/rsa_impl.c @@ -83,7 +83,7 @@ static int ensure_fixed_copy(BIGNUM **out, const BIGNUM *in, int width) { return 0; } *out = copy; - CONSTTIME_SECRET(copy->d, sizeof(BN_ULONG) * width); + bn_secret(copy); return 1; } @@ -182,8 +182,7 @@ static int freeze_private_key(RSA *rsa, BN_CTX *ctx) { goto err; } rsa->iqmp_mont = iqmp_mont; - CONSTTIME_SECRET(rsa->iqmp_mont->d, - sizeof(BN_ULONG) * rsa->iqmp_mont->width); + bn_secret(rsa->iqmp_mont); } } } @@ -546,7 +545,9 @@ int rsa_default_private_transform(RSA *rsa, uint8_t *out, const uint8_t *in, goto err; } - if (BN_ucmp(f, rsa->n) >= 0) { + // The input to the RSA private transform may be secret, but padding is + // expected to construct a value within range, so we can leak this comparison. + if (constant_time_declassify_int(BN_ucmp(f, rsa->n) >= 0)) { // Usually the padding functions would catch this. OPENSSL_PUT_ERROR(RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS); goto err; diff --git a/crypto/fipsmodule/service_indicator/service_indicator_test.cc b/crypto/fipsmodule/service_indicator/service_indicator_test.cc index 2d5006f123..113f9b3953 100644 --- a/crypto/fipsmodule/service_indicator/service_indicator_test.cc +++ b/crypto/fipsmodule/service_indicator/service_indicator_test.cc @@ -30,6 +30,7 @@ #include "../../test/abi_test.h" #include "../../test/test_util.h" #include "../bn/internal.h" +#include "../hmac/internal.h" #include "../rand/internal.h" #include "../sha/internal.h" @@ -1338,6 +1339,46 @@ TEST_P(HMACServiceIndicatorTest, HMACTest) { EXPECT_EQ(approved, test.expect_approved); EXPECT_EQ(Bytes(test.expected_digest, expected_mac_len), Bytes(mac.data(), mac_len)); + + // Test using the one-shot non-approved internal API HMAC_with_precompute + CALL_SERVICE_AND_CHECK_APPROVED( + approved, ASSERT_TRUE(HMAC_with_precompute( + digest, kHMACKey, sizeof(kHMACKey), kPlaintext, + sizeof(kPlaintext), mac.data(), &mac_len))); + EXPECT_EQ(approved, AWSLC_NOT_APPROVED); + EXPECT_EQ(Bytes(test.expected_digest, expected_mac_len), + Bytes(mac.data(), mac_len)); + + // Test using precomputed keys + // First, extract the precomputed key + ctx.Reset(); + uint8_t precomputed_key[HMAC_MAX_PRECOMPUTED_KEY_SIZE]; + size_t precomputed_key_len = HMAC_MAX_PRECOMPUTED_KEY_SIZE; + CALL_SERVICE_AND_CHECK_APPROVED( + approved, ASSERT_TRUE( + HMAC_Init_ex(ctx.get(), kHMACKey, sizeof(kHMACKey), digest, nullptr))); + EXPECT_EQ(approved, AWSLC_NOT_APPROVED); + CALL_SERVICE_AND_CHECK_APPROVED( + approved, ASSERT_TRUE(HMAC_set_precomputed_key_export(ctx.get()))); + EXPECT_EQ(approved, AWSLC_NOT_APPROVED); + CALL_SERVICE_AND_CHECK_APPROVED( + approved, ASSERT_TRUE(HMAC_get_precomputed_key( + ctx.get(), precomputed_key, &precomputed_key_len))); + EXPECT_EQ(approved, AWSLC_NOT_APPROVED); + // Second, use the precomputed key to compute the hash + ctx.Reset(); + CALL_SERVICE_AND_CHECK_APPROVED( + approved, ASSERT_TRUE(HMAC_Init_from_precomputed_key( + ctx.get(), precomputed_key, precomputed_key_len, digest))); + EXPECT_EQ(approved, AWSLC_NOT_APPROVED); + CALL_SERVICE_AND_CHECK_APPROVED(approved, + ASSERT_TRUE(HMAC_Update(ctx.get(), kPlaintext, sizeof(kPlaintext)))); + EXPECT_EQ(approved, AWSLC_NOT_APPROVED); + CALL_SERVICE_AND_CHECK_APPROVED(approved, + ASSERT_TRUE(HMAC_Final(ctx.get(), mac.data(), &mac_len))); + EXPECT_EQ(approved, test.expect_approved); + EXPECT_EQ(Bytes(test.expected_digest, expected_mac_len), + Bytes(mac.data(), mac_len)); } const uint8_t kHKDF_ikm_tc1[] = { // RFC 5869 Test Case 1 @@ -4280,7 +4321,7 @@ TEST(ServiceIndicatorTest, DRBG) { // Since this is running in FIPS mode it should end in FIPS // Update this when the AWS-LC version number is modified TEST(ServiceIndicatorTest, AWSLCVersionString) { - ASSERT_STREQ(awslc_version_string(), "AWS-LC FIPS 1.31.0"); + ASSERT_STREQ(awslc_version_string(), "AWS-LC FIPS 1.32.0"); } #else @@ -4323,6 +4364,6 @@ TEST(ServiceIndicatorTest, BasicTest) { // Since this is not running in FIPS mode it shouldn't end in FIPS // Update this when the AWS-LC version number is modified TEST(ServiceIndicatorTest, AWSLCVersionString) { - ASSERT_STREQ(awslc_version_string(), "AWS-LC 1.31.0"); + ASSERT_STREQ(awslc_version_string(), "AWS-LC 1.32.0"); } #endif // AWSLC_FIPS diff --git a/crypto/fipsmodule/sha/asm/sha1-armv8.pl b/crypto/fipsmodule/sha/asm/sha1-armv8.pl index b865a118b6..c88ffcdd33 100644 --- a/crypto/fipsmodule/sha/asm/sha1-armv8.pl +++ b/crypto/fipsmodule/sha/asm/sha1-armv8.pl @@ -178,22 +178,12 @@ sub BODY_20_39 { .text -.extern OPENSSL_armcap_P -.hidden OPENSSL_armcap_P -.globl sha1_block_data_order -.type sha1_block_data_order,%function +.globl sha1_block_data_order_nohw +.type sha1_block_data_order_nohw,%function .align 6 -sha1_block_data_order: +sha1_block_data_order_nohw: // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET -#if defined(OPENSSL_HWASAN) && __clang_major__ >= 10 - adrp x16,:pg_hi21_nc:OPENSSL_armcap_P -#else - adrp x16,:pg_hi21:OPENSSL_armcap_P -#endif - ldr w16,[x16,:lo12:OPENSSL_armcap_P] - tst w16,#ARMV8_SHA1 - b.ne .Lv8_entry stp x29,x30,[sp,#-96]! add x29,sp,#0 @@ -242,7 +232,7 @@ sub BODY_20_39 { ldp x27,x28,[sp,#80] ldr x29,[sp],#96 ret -.size sha1_block_data_order,.-sha1_block_data_order +.size sha1_block_data_order_nohw,.-sha1_block_data_order_nohw ___ {{{ my ($ABCD,$E,$E0,$E1)=map("v$_.16b",(0..3)); @@ -252,12 +242,12 @@ sub BODY_20_39 { my $ABCD_SAVE="v22.16b"; $code.=<<___; -.type sha1_block_armv8,%function +.globl sha1_block_data_order_hw +.type sha1_block_data_order_hw,%function .align 6 -sha1_block_armv8: +sha1_block_data_order_hw: // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET -.Lv8_entry: stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -321,7 +311,7 @@ sub BODY_20_39 { ldr x29,[sp],#16 ret -.size sha1_block_armv8,.-sha1_block_armv8 +.size sha1_block_data_order_hw,.-sha1_block_data_order_hw .section .rodata .align 6 .Lconst: diff --git a/crypto/fipsmodule/sha/asm/sha1-x86_64.pl b/crypto/fipsmodule/sha/asm/sha1-x86_64.pl index 60891143ce..af8c1cf4ce 100755 --- a/crypto/fipsmodule/sha/asm/sha1-x86_64.pl +++ b/crypto/fipsmodule/sha/asm/sha1-x86_64.pl @@ -241,41 +241,13 @@ sub BODY_40_59 { $code.=<<___; .text -.extern OPENSSL_ia32cap_P -.globl sha1_block_data_order -.type sha1_block_data_order,\@function,3 +.globl sha1_block_data_order_nohw +.type sha1_block_data_order_nohw,\@function,3 .align 16 -sha1_block_data_order: +sha1_block_data_order_nohw: .cfi_startproc - leaq OPENSSL_ia32cap_P(%rip),%r10 - mov 0(%r10),%r9d - mov 4(%r10),%r8d - mov 8(%r10),%r10d - test \$`1<<9`,%r8d # check SSSE3 bit - jz .Lialu -___ -$code.=<<___ if ($shaext); - test \$`1<<29`,%r10d # check SHA bit - jnz _shaext_shortcut -___ -$code.=<<___ if ($avx>1); - and \$`1<<3|1<<5|1<<8`,%r10d # check AVX2+BMI1+BMI2 - cmp \$`1<<3|1<<5|1<<8`,%r10d - je _avx2_shortcut -___ -$code.=<<___ if ($avx); - and \$`1<<28`,%r8d # mask AVX bit - and \$`1<<30`,%r9d # mask "Intel CPU" bit - or %r9d,%r8d - cmp \$`1<<28|1<<30`,%r8d - je _avx_shortcut -___ -$code.=<<___; - jmp _ssse3_shortcut - -.align 16 -.Lialu: + _CET_ENDBR mov %rsp,%rax .cfi_def_cfa_register %rax push %rbx @@ -344,7 +316,7 @@ sub BODY_40_59 { .Lepilogue: ret .cfi_endproc -.size sha1_block_data_order,.-sha1_block_data_order +.size sha1_block_data_order_nohw,.-sha1_block_data_order_nohw ___ if ($shaext) {{{ ###################################################################### @@ -355,11 +327,12 @@ sub BODY_40_59 { my @MSG=map("%xmm$_",(4..7)); $code.=<<___; -.type sha1_block_data_order_shaext,\@function,3 +.globl sha1_block_data_order_hw +.type sha1_block_data_order_hw,\@function,3 .align 32 -sha1_block_data_order_shaext: -_shaext_shortcut: +sha1_block_data_order_hw: .cfi_startproc + _CET_ENDBR ___ $code.=<<___ if ($win64); lea `-8-4*16`(%rsp),%rsp @@ -460,7 +433,7 @@ sub BODY_40_59 { $code.=<<___; ret .cfi_endproc -.size sha1_block_data_order_shaext,.-sha1_block_data_order_shaext +.size sha1_block_data_order_hw,.-sha1_block_data_order_hw ___ }}} {{{ @@ -490,11 +463,12 @@ () } $code.=<<___; +.globl sha1_block_data_order_ssse3 .type sha1_block_data_order_ssse3,\@function,3 .align 16 sha1_block_data_order_ssse3: -_ssse3_shortcut: .cfi_startproc + _CET_ENDBR mov %rsp,$fp # frame pointer .cfi_def_cfa_register $fp push %rbx @@ -964,11 +938,12 @@ () my $_ror=sub { &shrd(@_[0],@_) }; $code.=<<___; +.globl sha1_block_data_order_avx .type sha1_block_data_order_avx,\@function,3 .align 16 sha1_block_data_order_avx: -_avx_shortcut: .cfi_startproc + _CET_ENDBR mov %rsp,$fp .cfi_def_cfa_register $fp push %rbx @@ -1343,11 +1318,12 @@ () my $frame="%r13"; $code.=<<___; +.globl sha1_block_data_order_avx2 .type sha1_block_data_order_avx2,\@function,3 .align 16 sha1_block_data_order_avx2: -_avx2_shortcut: .cfi_startproc + _CET_ENDBR mov %rsp,$fp .cfi_def_cfa_register $fp push %rbx @@ -2022,14 +1998,14 @@ () .section .pdata .align 4 - .rva .LSEH_begin_sha1_block_data_order - .rva .LSEH_end_sha1_block_data_order - .rva .LSEH_info_sha1_block_data_order + .rva .LSEH_begin_sha1_block_data_order_nohw + .rva .LSEH_end_sha1_block_data_order_nohw + .rva .LSEH_info_sha1_block_data_order_nohw ___ $code.=<<___ if ($shaext); - .rva .LSEH_begin_sha1_block_data_order_shaext - .rva .LSEH_end_sha1_block_data_order_shaext - .rva .LSEH_info_sha1_block_data_order_shaext + .rva .LSEH_begin_sha1_block_data_order_hw + .rva .LSEH_end_sha1_block_data_order_hw + .rva .LSEH_info_sha1_block_data_order_hw ___ $code.=<<___; .rva .LSEH_begin_sha1_block_data_order_ssse3 @@ -2049,12 +2025,12 @@ () $code.=<<___; .section .xdata .align 8 -.LSEH_info_sha1_block_data_order: +.LSEH_info_sha1_block_data_order_nohw: .byte 9,0,0,0 .rva se_handler ___ $code.=<<___ if ($shaext); -.LSEH_info_sha1_block_data_order_shaext: +.LSEH_info_sha1_block_data_order_hw: .byte 9,0,0,0 .rva shaext_handler ___ diff --git a/crypto/fipsmodule/sha/asm/sha512-armv8.pl b/crypto/fipsmodule/sha/asm/sha512-armv8.pl index 95779e4c76..4f90a240e4 100644 --- a/crypto/fipsmodule/sha/asm/sha512-armv8.pl +++ b/crypto/fipsmodule/sha/asm/sha512-armv8.pl @@ -78,7 +78,7 @@ $reg_t="w"; } -$func="sha${BITS}_block_data_order"; +$func="sha${BITS}_block_data_order_nohw"; ($ctx,$inp,$num,$Ktbl)=map("x$_",(0..2,30)); @@ -182,31 +182,10 @@ sub BODY_00_xx { .text -.extern OPENSSL_armcap_P -.hidden OPENSSL_armcap_P .globl $func .type $func,%function .align 6 $func: - AARCH64_VALID_CALL_TARGET -#ifndef __KERNEL__ -#if defined(OPENSSL_HWASAN) && __clang_major__ >= 10 - adrp x16,:pg_hi21_nc:OPENSSL_armcap_P -#else - adrp x16,:pg_hi21:OPENSSL_armcap_P -#endif - ldr w16,[x16,:lo12:OPENSSL_armcap_P] -___ -$code.=<<___ if ($SZ==4); - tst w16,#ARMV8_SHA256 - b.ne .Lv8_entry -___ -$code.=<<___ if ($SZ==8); - tst w16,#ARMV8_SHA512 - b.ne .Lv8_entry -___ -$code.=<<___; -#endif AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -358,10 +337,10 @@ sub BODY_00_xx { $code.=<<___; .text #ifndef __KERNEL__ -.type sha256_block_armv8,%function +.globl sha256_block_data_order_hw +.type sha256_block_data_order_hw,%function .align 6 -sha256_block_armv8: -.Lv8_entry: +sha256_block_data_order_hw: #ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit adrp x9,:pg_hi21:BORINGSSL_function_hit @@ -370,6 +349,7 @@ sub BODY_00_xx { strb w10, [x9,#6] // kFlag_sha256_hw #endif // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -434,7 +414,7 @@ sub BODY_00_xx { ldr x29,[sp],#16 ret -.size sha256_block_armv8,.-sha256_block_armv8 +.size sha256_block_data_order_hw,.-sha256_block_data_order_hw #endif ___ } @@ -451,10 +431,10 @@ sub BODY_00_xx { $code.=<<___; .text #ifndef __KERNEL__ -.type sha512_block_armv8,%function +.globl sha512_block_data_order_hw +.type sha512_block_data_order_hw,%function .align 6 -sha512_block_armv8: -.Lv8_entry: +sha512_block_data_order_hw: #ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit adrp x9,:pg_hi21:BORINGSSL_function_hit @@ -462,6 +442,8 @@ sub BODY_00_xx { mov w10, #1 strb w10, [x9,#8] // kFlag_sha512_hw #endif + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -545,7 +527,7 @@ sub BODY_00_xx { ldr x29,[sp],#16 ret -.size sha512_block_armv8,.-sha512_block_armv8 +.size sha512_block_data_order_hw,.-sha512_block_data_order_hw #endif ___ } diff --git a/crypto/fipsmodule/sha/asm/sha512-x86_64.pl b/crypto/fipsmodule/sha/asm/sha512-x86_64.pl index d4ec46fce4..9aea64a4ab 100755 --- a/crypto/fipsmodule/sha/asm/sha512-x86_64.pl +++ b/crypto/fipsmodule/sha/asm/sha512-x86_64.pl @@ -261,41 +261,12 @@ () $code=<<___; .text -.extern OPENSSL_ia32cap_P -.globl $func -.type $func,\@function,3 +.globl ${func}_nohw +.type ${func}_nohw,\@function,3 .align 16 -$func: +${func}_nohw: .cfi_startproc -___ -$code.=<<___ if ($SZ==4 || $avx); - leaq OPENSSL_ia32cap_P(%rip),%r11 - mov 0(%r11),%r9d - mov 4(%r11),%r10d - mov 8(%r11),%r11d -___ -$code.=<<___ if ($SZ==4 && $shaext); - test \$`1<<29`,%r11d # check for SHA - jnz .Lshaext_shortcut -___ - # XOP codepath removed. -$code.=<<___ if ($avx>1); - and \$`1<<8|1<<5|1<<3`,%r11d # check for BMI2+AVX2+BMI1 - cmp \$`1<<8|1<<5|1<<3`,%r11d - je .Lavx2_shortcut -___ -$code.=<<___ if ($avx); - and \$`1<<30`,%r9d # mask "Intel CPU" bit - and \$`1<<28|1<<9`,%r10d # mask AVX and SSSE3 bits - or %r9d,%r10d - cmp \$`1<<28|1<<9|1<<30`,%r10d - je .Lavx_shortcut -___ -$code.=<<___ if ($SZ==4); - test \$`1<<9`,%r10d - jnz .Lssse3_shortcut -___ -$code.=<<___; + _CET_ENDBR mov %rsp,%rax # copy %rsp .cfi_def_cfa_register %rax push %rbx @@ -403,7 +374,7 @@ () .Lepilogue: ret .cfi_endproc -.size $func,.-$func +.size ${func}_nohw,.-${func}_nohw ___ if ($SZ==4) { @@ -561,15 +532,16 @@ () my @MSG=map("%xmm$_",(3..6)); $code.=<<___; -.type sha256_block_data_order_shaext,\@function,3 +.globl sha256_block_data_order_hw +.type sha256_block_data_order_hw,\@function,3 .align 64 -sha256_block_data_order_shaext: -.Lshaext_shortcut: +sha256_block_data_order_hw: .cfi_startproc #ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit movb \$1,BORINGSSL_function_hit+6(%rip) #endif + _CET_ENDBR ___ $code.=<<___ if ($win64); lea `-8-5*16`(%rsp),%rsp @@ -714,7 +686,7 @@ () $code.=<<___; ret .cfi_endproc -.size sha256_block_data_order_shaext,.-sha256_block_data_order_shaext +.size sha256_block_data_order_hw,.-sha256_block_data_order_hw ___ }}} {{{ @@ -779,11 +751,12 @@ () my ($t0,$t1,$t2,$t3, $t4,$t5) = map("%xmm$_",(4..9)); $code.=<<___; +.globl ${func}_ssse3 .type ${func}_ssse3,\@function,3 .align 64 ${func}_ssse3: .cfi_startproc -.Lssse3_shortcut: + _CET_ENDBR mov %rsp,%rax # copy %rsp .cfi_def_cfa_register %rax push %rbx @@ -1142,11 +1115,12 @@ () local *ror = sub { &shrd(@_[0],@_) }; $code.=<<___; +.globl ${func}_avx .type ${func}_avx,\@function,3 .align 64 ${func}_avx: .cfi_startproc -.Lavx_shortcut: + _CET_ENDBR mov %rsp,%rax # copy %rsp .cfi_def_cfa_register %rax push %rbx @@ -2012,14 +1986,14 @@ () $code.=<<___; .section .pdata .align 4 - .rva .LSEH_begin_$func - .rva .LSEH_end_$func - .rva .LSEH_info_$func + .rva .LSEH_begin_${func}_nohw + .rva .LSEH_end_${func}_nohw + .rva .LSEH_info_${func}_nohw ___ $code.=<<___ if ($SZ==4 && $shaext); - .rva .LSEH_begin_${func}_shaext - .rva .LSEH_end_${func}_shaext - .rva .LSEH_info_${func}_shaext + .rva .LSEH_begin_${func}_hw + .rva .LSEH_end_${func}_hw + .rva .LSEH_info_${func}_hw ___ $code.=<<___ if ($SZ==4); .rva .LSEH_begin_${func}_ssse3 @@ -2039,13 +2013,13 @@ () $code.=<<___; .section .xdata .align 8 -.LSEH_info_$func: +.LSEH_info_${func}_nohw: .byte 9,0,0,0 .rva se_handler .rva .Lprologue,.Lepilogue # HandlerData[] ___ $code.=<<___ if ($SZ==4 && $shaext); -.LSEH_info_${func}_shaext: +.LSEH_info_${func}_hw: .byte 9,0,0,0 .rva shaext_handler ___ diff --git a/crypto/fipsmodule/sha/internal.h b/crypto/fipsmodule/sha/internal.h index caeac4a976..8c58b76a98 100644 --- a/crypto/fipsmodule/sha/internal.h +++ b/crypto/fipsmodule/sha/internal.h @@ -15,10 +15,28 @@ #ifndef OPENSSL_HEADER_SHA_INTERNAL_H #define OPENSSL_HEADER_SHA_INTERNAL_H +#include + +#include "../../internal.h" +#include "../cpucap/internal.h" + #if defined(__cplusplus) extern "C" { #endif +// Internal SHA2 constants + +// SHA*_CHAINING_LENGTH is the chaining length in bytes of SHA-* +// It corresponds to the length in bytes of the h part of the state +#define SHA1_CHAINING_LENGTH 20 +#define SHA224_CHAINING_LENGTH 32 +#define SHA256_CHAINING_LENGTH 32 +#define SHA384_CHAINING_LENGTH 64 +#define SHA512_CHAINING_LENGTH 64 +#define SHA512_224_CHAINING_LENGTH 64 +#define SHA512_256_CHAINING_LENGTH 64 + + // SHA3 constants, from NIST FIPS202. // https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf #define SHA3_ROWS 5 @@ -64,66 +82,240 @@ struct keccak_st { uint8_t buf[SHA3_MAX_BLOCKSIZE]; // should have at least the max data block size bytes uint8_t pad; }; +// Define SHA{n}[_{variant}]_ASM if sha{n}_block_data_order[_{variant}] is +// defined in assembly. -#if defined(OPENSSL_PPC64LE) || \ - (!defined(OPENSSL_NO_ASM) && \ - (defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || \ - defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64))) -// POWER has an intrinsics-based implementation of SHA-1 and thus the functions -// normally defined in assembly are available even with |OPENSSL_NO_ASM| in -// this case. -#define SHA1_ASM -void sha1_block_data_order(uint32_t *state, const uint8_t *in, - size_t num_blocks); -#endif +#if defined(OPENSSL_PPC64LE) +#define SHA1_ALTIVEC -#if !defined(OPENSSL_NO_ASM) && \ - (defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || \ - defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)) +void sha1_block_data_order(uint32_t *state, const uint8_t *data, + size_t num_blocks); + +#elif !defined(OPENSSL_NO_ASM) && (defined(OPENSSL_X86) || defined(OPENSSL_ARM)) +#define SHA1_ASM #define SHA256_ASM #define SHA512_ASM -void sha256_block_data_order(uint32_t *state, const uint8_t *in, + +void sha1_block_data_order(uint32_t *state, const uint8_t *data, + size_t num_blocks); +void sha256_block_data_order(uint32_t *state, const uint8_t *data, size_t num_blocks); -void sha512_block_data_order(uint64_t *state, const uint8_t *in, +void sha512_block_data_order(uint64_t *state, const uint8_t *data, size_t num_blocks); + +#elif !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) + +#define SHA1_ASM_NOHW +#define SHA256_ASM_NOHW +#define SHA512_ASM_NOHW + +#define SHA1_ASM_HW +OPENSSL_INLINE int sha1_hw_capable(void) { + return CRYPTO_is_ARMv8_SHA1_capable(); +} + +#define SHA256_ASM_HW +OPENSSL_INLINE int sha256_hw_capable(void) { + return CRYPTO_is_ARMv8_SHA256_capable(); +} + +#define SHA512_ASM_HW +OPENSSL_INLINE int sha512_hw_capable(void) { + return CRYPTO_is_ARMv8_SHA512_capable(); +} + +#elif !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) + +#define SHA1_ASM_NOHW +#define SHA256_ASM_NOHW +#define SHA512_ASM_NOHW + +#define SHA1_ASM_HW +OPENSSL_INLINE int sha1_hw_capable(void) { + return CRYPTO_is_SHAEXT_capable() && CRYPTO_is_SSSE3_capable(); +} + +#define SHA1_ASM_AVX2 +OPENSSL_INLINE int sha1_avx2_capable(void) { + // TODO: Simplify this logic, which was extracted from the assembly: + // * Does AVX2 imply SSSE3? + // * sha1_block_data_order_avx2 does not seem to use SSSE3 instructions. + return CRYPTO_is_AVX2_capable() && CRYPTO_is_BMI2_capable() && + CRYPTO_is_BMI1_capable() && CRYPTO_is_SSSE3_capable(); +} +void sha1_block_data_order_avx2(uint32_t *state, const uint8_t *data, + size_t num); + +#define SHA1_ASM_AVX +OPENSSL_INLINE int sha1_avx_capable(void) { + // TODO: Simplify this logic, which was extracted from the assembly: + // * Does AVX imply SSSE3? + // * sha1_block_data_order_avx does not seem to use SSSE3 instructions. + // Pre-Zen AMD CPUs had slow SHLD/SHRD; Zen added the SHA extension; see the + // discussion in sha1-586.pl. + return CRYPTO_is_AVX_capable() && CRYPTO_is_SSSE3_capable() && + CRYPTO_is_intel_cpu(); +} +void sha1_block_data_order_avx(uint32_t *state, const uint8_t *data, + size_t num); + +#define SHA1_ASM_SSSE3 +OPENSSL_INLINE int sha1_ssse3_capable(void) { + return CRYPTO_is_SSSE3_capable(); +} +void sha1_block_data_order_ssse3(uint32_t *state, const uint8_t *data, + size_t num); + +#define SHA256_ASM_HW +OPENSSL_INLINE int sha256_hw_capable(void) { + return CRYPTO_is_SHAEXT_capable(); +} + +#define SHA256_ASM_AVX +OPENSSL_INLINE int sha256_avx_capable(void) { + // TODO: Simplify this logic, which was extracted from the assembly: + // * Does AVX imply SSSE3? + // * sha256_block_data_order_avx does not seem to use SSSE3 instructions. + // Pre-Zen AMD CPUs had slow SHLD/SHRD; Zen added the SHA extension; see the + // discussion in sha1-586.pl. + return CRYPTO_is_AVX_capable() && CRYPTO_is_SSSE3_capable() && + CRYPTO_is_intel_cpu(); +} +void sha256_block_data_order_avx(uint32_t *state, const uint8_t *data, + size_t num); + +#define SHA256_ASM_SSSE3 +OPENSSL_INLINE int sha256_ssse3_capable(void) { + return CRYPTO_is_SSSE3_capable(); +} +void sha256_block_data_order_ssse3(uint32_t *state, const uint8_t *data, + size_t num); + +#define SHA512_ASM_AVX +OPENSSL_INLINE int sha512_avx_capable(void) { + // TODO: Simplify this logic, which was extracted from the assembly: + // * Does AVX imply SSSE3? + // * sha512_block_data_order_avx does not seem to use SSSE3 instructions. + // Pre-Zen AMD CPUs had slow SHLD/SHRD; Zen added the SHA extension; see the + // discussion in sha1-586.pl. + return CRYPTO_is_AVX_capable() && CRYPTO_is_SSSE3_capable() && + CRYPTO_is_intel_cpu(); +} +void sha512_block_data_order_avx(uint64_t *state, const uint8_t *data, + size_t num); + +#endif + +#if defined(SHA1_ASM_HW) +void sha1_block_data_order_hw(uint32_t *state, const uint8_t *data, size_t num); +#endif +#if defined(SHA1_ASM_NOHW) +void sha1_block_data_order_nohw(uint32_t *state, const uint8_t *data, + size_t num); +#endif + +#if defined(SHA256_ASM_HW) +void sha256_block_data_order_hw(uint32_t *state, const uint8_t *data, + size_t num); +#endif +#if defined(SHA256_ASM_NOHW) +void sha256_block_data_order_nohw(uint32_t *state, const uint8_t *data, + size_t num); +#endif + +#if defined(SHA512_ASM_HW) +void sha512_block_data_order_hw(uint64_t *state, const uint8_t *data, + size_t num); +#endif +#if defined(SHA512_ASM_NOHW) +void sha512_block_data_order_nohw(uint64_t *state, const uint8_t *data, + size_t num); #endif #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) #define KECCAK1600_ASM #endif -// SHA3_224 writes the digest of |len| bytes from |data| to |out| and returns |out|. +// SHAx_Init_from_state is a low-level function that initializes |sha| with a +// custom state. |h| is the hash state in big endian. |n| is the number of bits +// processed at this point. It must be a multiple of |SHAy_CBLOCK*8|, +// where SHAy=SHA1 if SHAx=SHA1, SHAy=SHA256 if SHAx=SHA224 or SHA256, and +// SHAy=SHA512 otherwise. +// This function returns one on success and zero on error. +// This function is for internal use only and should never be directly called. +OPENSSL_EXPORT int SHA1_Init_from_state( + SHA_CTX *sha, const uint8_t h[SHA1_CHAINING_LENGTH], uint64_t n); +OPENSSL_EXPORT int SHA224_Init_from_state( + SHA256_CTX *sha, const uint8_t h[SHA224_CHAINING_LENGTH], uint64_t n); +OPENSSL_EXPORT int SHA256_Init_from_state( + SHA256_CTX *sha, const uint8_t h[SHA256_CHAINING_LENGTH], uint64_t n); +OPENSSL_EXPORT int SHA384_Init_from_state( + SHA512_CTX *sha, const uint8_t h[SHA384_CHAINING_LENGTH], uint64_t n); +OPENSSL_EXPORT int SHA512_Init_from_state( + SHA512_CTX *sha, const uint8_t h[SHA512_CHAINING_LENGTH], uint64_t n); +OPENSSL_EXPORT int SHA512_224_Init_from_state( + SHA512_CTX *sha, const uint8_t h[SHA512_224_CHAINING_LENGTH], uint64_t n); +OPENSSL_EXPORT int SHA512_256_Init_from_state( + SHA512_CTX *sha, const uint8_t h[SHA512_256_CHAINING_LENGTH], uint64_t n); + +// SHAx_get_state is a low-level function that exports the hash state in big +// endian into |out_h| and the number of bits processed at this point in +// |out_n|. |SHAx_Final| must not have been called before (otherwise results +// are not guaranteed). Furthermore, the number of bytes processed by +// |SHAx_Update| must be a multiple of the block length |SHAy_CBLOCK| and +// must be less than 2^61 (otherwise it fails). See comment above about +// |SHAx_Init_from_state| for the definition of SHAy. +// This function returns one on success and zero on error. +// This function is for internal use only and should never be directly called. +OPENSSL_EXPORT int SHA1_get_state( + SHA_CTX *ctx, uint8_t out_h[SHA1_CHAINING_LENGTH], uint64_t *out_n); +OPENSSL_EXPORT int SHA224_get_state( + SHA256_CTX *ctx, uint8_t out_h[SHA224_CHAINING_LENGTH], uint64_t *out_n); +OPENSSL_EXPORT int SHA256_get_state( + SHA256_CTX *ctx, uint8_t out_h[SHA256_CHAINING_LENGTH], uint64_t *out_n); +OPENSSL_EXPORT int SHA384_get_state( + SHA512_CTX *ctx, uint8_t out_h[SHA384_CHAINING_LENGTH], uint64_t *out_n); +OPENSSL_EXPORT int SHA512_get_state( + SHA512_CTX *ctx, uint8_t out_h[SHA512_CHAINING_LENGTH], uint64_t *out_n); +OPENSSL_EXPORT int SHA512_224_get_state( + SHA512_CTX *ctx, uint8_t out_h[SHA512_224_CHAINING_LENGTH], + uint64_t *out_n); +OPENSSL_EXPORT int SHA512_256_get_state( + SHA512_CTX *ctx, uint8_t out_h[SHA512_256_CHAINING_LENGTH], + uint64_t *out_n); + +// SHA3_224 writes the digest of |len| bytes from |data| to |out| and returns |out|. // There must be at least |SHA3_224_DIGEST_LENGTH| bytes of space in |out|. // On failure |SHA3_224| returns NULL. OPENSSL_EXPORT uint8_t *SHA3_224(const uint8_t *data, size_t len, - uint8_t out[SHA3_224_DIGEST_LENGTH]); - -// SHA3_256 writes the digest of |len| bytes from |data| to |out| and returns |out|. + uint8_t out[SHA3_224_DIGEST_LENGTH]); + +// SHA3_256 writes the digest of |len| bytes from |data| to |out| and returns |out|. // There must be at least |SHA3_256_DIGEST_LENGTH| bytes of space in |out|. // On failure |SHA3_256| returns NULL. OPENSSL_EXPORT uint8_t *SHA3_256(const uint8_t *data, size_t len, - uint8_t out[SHA3_256_DIGEST_LENGTH]); + uint8_t out[SHA3_256_DIGEST_LENGTH]); -// SHA3_384 writes the digest of |len| bytes from |data| to |out| and returns |out|. +// SHA3_384 writes the digest of |len| bytes from |data| to |out| and returns |out|. // There must be at least |SHA3_384_DIGEST_LENGTH| bytes of space in |out|. // On failure |SHA3_384| returns NULL. OPENSSL_EXPORT uint8_t *SHA3_384(const uint8_t *data, size_t len, - uint8_t out[SHA3_384_DIGEST_LENGTH]); + uint8_t out[SHA3_384_DIGEST_LENGTH]); -// SHA3_512 writes the digest of |len| bytes from |data| to |out| and returns |out|. +// SHA3_512 writes the digest of |len| bytes from |data| to |out| and returns |out|. // There must be at least |SHA3_512_DIGEST_LENGTH| bytes of space in |out|. // On failure |SHA3_512| returns NULL. OPENSSL_EXPORT uint8_t *SHA3_512(const uint8_t *data, size_t len, uint8_t out[SHA3_512_DIGEST_LENGTH]); -// SHAKE128 writes the |out_len| bytes output from |in_len| bytes |data| -// to |out| and returns |out| on success and NULL on failure. -OPENSSL_EXPORT uint8_t *SHAKE128(const uint8_t *data, const size_t in_len, +// SHAKE128 writes the |out_len| bytes output from |in_len| bytes |data| +// to |out| and returns |out| on success and NULL on failure. +OPENSSL_EXPORT uint8_t *SHAKE128(const uint8_t *data, const size_t in_len, uint8_t *out, size_t out_len); -// SHAKE256 writes |out_len| bytes output from |in_len| bytes |data| -// to |out| and returns |out| on success and NULL on failure. -OPENSSL_EXPORT uint8_t *SHAKE256(const uint8_t *data, const size_t in_len, +// SHAKE256 writes |out_len| bytes output from |in_len| bytes |data| +// to |out| and returns |out| on success and NULL on failure. +OPENSSL_EXPORT uint8_t *SHAKE256(const uint8_t *data, const size_t in_len, uint8_t *out, size_t out_len); // SHAKE_Init initializes |ctx| with specified |block_size|, returns 1 on @@ -141,22 +333,22 @@ OPENSSL_EXPORT void SHA3_Reset(KECCAK1600_CTX *ctx); OPENSSL_EXPORT int SHA3_Init(KECCAK1600_CTX *ctx, uint8_t pad, size_t bitlen); -// SHA3_Update processes all data blocks that don't need pad through +// SHA3_Update processes all data blocks that don't need pad through // |SHA3_Absorb| and returns 1 and 0 on failure. OPENSSL_EXPORT int SHA3_Update(KECCAK1600_CTX *ctx, const void *data, size_t len); -// SHA3_Final pads the last data block and processes it through |SHA3_Absorb|. +// SHA3_Final pads the last data block and processes it through |SHA3_Absorb|. // It processes the data through |SHA3_Squeeze| and returns 1 and 0 on failure. OPENSSL_EXPORT int SHA3_Final(uint8_t *md, KECCAK1600_CTX *ctx); -// SHA3_Absorb processes the largest multiple of |r| out of |len| bytes and -// returns the remaining number of bytes. -OPENSSL_EXPORT size_t SHA3_Absorb(uint64_t A[SHA3_ROWS][SHA3_ROWS], +// SHA3_Absorb processes the largest multiple of |r| out of |len| bytes and +// returns the remaining number of bytes. +OPENSSL_EXPORT size_t SHA3_Absorb(uint64_t A[SHA3_ROWS][SHA3_ROWS], const uint8_t *data, size_t len, size_t r); // SHA3_Squeeze generate |out| hash value of |len| bytes. -OPENSSL_EXPORT void SHA3_Squeeze(uint64_t A[SHA3_ROWS][SHA3_ROWS], +OPENSSL_EXPORT void SHA3_Squeeze(uint64_t A[SHA3_ROWS][SHA3_ROWS], uint8_t *out, size_t len, size_t r); #if defined(__cplusplus) diff --git a/crypto/fipsmodule/sha/sha1.c b/crypto/fipsmodule/sha/sha1.c index fc426fbe83..681bff37d9 100644 --- a/crypto/fipsmodule/sha/sha1.c +++ b/crypto/fipsmodule/sha/sha1.c @@ -75,6 +75,27 @@ int SHA1_Init(SHA_CTX *sha) { return 1; } +int SHA1_Init_from_state(SHA_CTX *sha, const uint8_t h[SHA1_CHAINING_LENGTH], + uint64_t n) { + if (n % ((uint64_t)SHA_CBLOCK * 8) != 0) { + // n is not a multiple of the block size in bits, so it fails + return 0; + } + + OPENSSL_memset(sha, 0, sizeof(SHA_CTX)); + + const size_t out_words = SHA1_CHAINING_LENGTH / 4; + for (size_t i = 0; i < out_words; i++) { + sha->h[i] = CRYPTO_load_u32_be(h); + h += 4; + } + + sha->Nh = n >> 32; + sha->Nl = n & 0xffffffff; + + return 1; +} + uint8_t *SHA1(const uint8_t *data, size_t len, uint8_t out[SHA_DIGEST_LENGTH]) { // We have to verify that all the SHA services actually succeed before // updating the indicator state, so we lock the state here. @@ -91,7 +112,7 @@ uint8_t *SHA1(const uint8_t *data, size_t len, uint8_t out[SHA_DIGEST_LENGTH]) { return out; } -#if !defined(SHA1_ASM) +#if !defined(SHA1_ASM) && !defined(SHA1_ALTIVEC) static void sha1_block_data_order(uint32_t *state, const uint8_t *data, size_t num); #endif @@ -119,6 +140,24 @@ int SHA1_Final(uint8_t out[SHA_DIGEST_LENGTH], SHA_CTX *c) { return 1; } +int SHA1_get_state(SHA_CTX *ctx, uint8_t out_h[SHA1_CHAINING_LENGTH], + uint64_t *out_n) { + if (ctx->Nl % ((uint64_t)SHA_CBLOCK * 8) != 0) { + // ctx->Nl is not a multiple of the block size in bits, so it fails + return 0; + } + + const size_t out_words = SHA1_CHAINING_LENGTH / 4; + for (size_t i = 0; i < out_words; i++) { + CRYPTO_store_u32_be(out_h, ctx->h[i]); + out_h += 4; + } + + *out_n = (((uint64_t)ctx->Nh) << 32) + ctx->Nl; + + return 1; +} + #define Xupdate(a, ix, ia, ib, ic, id) \ do { \ (a) = ((ia) ^ (ib) ^ (ic) ^ (id)); \ @@ -196,9 +235,11 @@ int SHA1_Final(uint8_t out[SHA_DIGEST_LENGTH], SHA_CTX *c) { * */ #define X(i) XX##i -#if !defined(SHA1_ASM) -static void sha1_block_data_order(uint32_t *state, const uint8_t *data, - size_t num) { +#if !defined(SHA1_ASM) && !defined(SHA1_ALTIVEC) + +#if !defined(SHA1_ASM_NOHW) +static void sha1_block_data_order_nohw(uint32_t *state, const uint8_t *data, + size_t num) { register uint32_t A, B, C, D, E, T; uint32_t XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7, XX8, XX9, XX10, XX11, XX12, XX13, XX14, XX15; @@ -345,7 +386,38 @@ static void sha1_block_data_order(uint32_t *state, const uint8_t *data, E = state[4]; } } +#endif // !SHA1_ASM_NOHW + +static void sha1_block_data_order(uint32_t *state, const uint8_t *data, + size_t num) { +#if defined(SHA1_ASM_HW) + if (sha1_hw_capable()) { + sha1_block_data_order_hw(state, data, num); + return; + } #endif +#if defined(SHA1_ASM_AVX2) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX) + if (sha1_avx2_capable()) { + sha1_block_data_order_avx(state, data, num); + return; + } +#endif +#if defined(SHA1_ASM_AVX) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX) + if (sha1_avx_capable()) { + sha1_block_data_order_avx(state, data, num); + return; + } +#endif +#if defined(SHA1_ASM_SSSE3) + if (sha1_ssse3_capable()) { + sha1_block_data_order_ssse3(state, data, num); + return; + } +#endif + sha1_block_data_order_nohw(state, data, num); +} + +#endif // !SHA1_ASM && !SHA1_ALTIVEC #undef Xupdate #undef K_00_19 diff --git a/crypto/fipsmodule/sha/sha256.c b/crypto/fipsmodule/sha/sha256.c index 38164535cf..d2e7c7b334 100644 --- a/crypto/fipsmodule/sha/sha256.c +++ b/crypto/fipsmodule/sha/sha256.c @@ -93,6 +93,47 @@ int SHA256_Init(SHA256_CTX *sha) { return 1; } +OPENSSL_STATIC_ASSERT(SHA256_CHAINING_LENGTH==SHA224_CHAINING_LENGTH, + sha256_and_sha224_have_same_chaining_length) + +// sha256_init_from_state_impl is the implementation of +// SHA256_Init_from_state and SHA224_Init_from_state +// Note that the state h is always SHA256_CHAINING_LENGTH-byte long +static int sha256_init_from_state_impl(SHA256_CTX *sha, int md_len, + const uint8_t h[SHA256_CHAINING_LENGTH], + uint64_t n) { + if(n % ((uint64_t) SHA256_CBLOCK * 8) != 0) { + // n is not a multiple of the block size in bits, so it fails + return 0; + } + + OPENSSL_memset(sha, 0, sizeof(SHA256_CTX)); + sha->md_len = md_len; + + const size_t out_words = SHA256_CHAINING_LENGTH / 4; + for (size_t i = 0; i < out_words; i++) { + sha->h[i] = CRYPTO_load_u32_be(h); + h += 4; + } + + sha->Nh = n >> 32; + sha->Nl = n & 0xffffffff; + + return 1; +} + +int SHA224_Init_from_state(SHA256_CTX *sha, + const uint8_t h[SHA224_CHAINING_LENGTH], + uint64_t n) { + return sha256_init_from_state_impl(sha, SHA224_DIGEST_LENGTH, h, n); +} + +int SHA256_Init_from_state(SHA256_CTX *sha, + const uint8_t h[SHA256_CHAINING_LENGTH], + uint64_t n) { + return sha256_init_from_state_impl(sha, SHA256_DIGEST_LENGTH, h, n); +} + uint8_t *SHA224(const uint8_t *data, size_t len, uint8_t out[SHA224_DIGEST_LENGTH]) { // We have to verify that all the SHA services actually succeed before @@ -127,7 +168,7 @@ uint8_t *SHA256(const uint8_t *data, size_t len, return out; } -#ifndef SHA256_ASM +#if !defined(SHA256_ASM) static void sha256_block_data_order(uint32_t *state, const uint8_t *in, size_t num); #endif @@ -171,7 +212,41 @@ int SHA224_Final(uint8_t out[SHA224_DIGEST_LENGTH], SHA256_CTX *ctx) { return sha256_final_impl(out, SHA224_DIGEST_LENGTH, ctx); } -#ifndef SHA256_ASM +// sha256_get_state_impl is the implementation of +// SHA256_get_state and SHA224_get_state +// Note that the state out_h is always SHA256_CHAINING_LENGTH-byte long +static int sha256_get_state_impl(SHA256_CTX *ctx, + uint8_t out_h[SHA256_CHAINING_LENGTH], + uint64_t *out_n) { + if (ctx->Nl % ((uint64_t)SHA256_CBLOCK * 8) != 0) { + // ctx->Nl is not a multiple of the block size in bits, so it fails + return 0; + } + + const size_t out_words = SHA256_CHAINING_LENGTH / 4; + for (size_t i = 0; i < out_words; i++) { + CRYPTO_store_u32_be(out_h, ctx->h[i]); + out_h += 4; + } + + *out_n = (((uint64_t)ctx->Nh) << 32) + ctx->Nl; + + return 1; +} + +int SHA224_get_state(SHA256_CTX *ctx, uint8_t out_h[SHA224_CHAINING_LENGTH], + uint64_t *out_n) { + return sha256_get_state_impl(ctx, out_h, out_n); +} + +int SHA256_get_state(SHA256_CTX *ctx, uint8_t out_h[SHA256_CHAINING_LENGTH], + uint64_t *out_n) { + return sha256_get_state_impl(ctx, out_h, out_n); +} + +#if !defined(SHA256_ASM) + +#if !defined(SHA256_ASM_NOHW) static const uint32_t K256[64] = { 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL, 0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL, 0xd807aa98UL, 0x12835b01UL, @@ -220,8 +295,8 @@ static const uint32_t K256[64] = { ROUND_00_15(i, a, b, c, d, e, f, g, h); \ } while (0) -static void sha256_block_data_order(uint32_t *state, const uint8_t *data, - size_t num) { +static void sha256_block_data_order_nohw(uint32_t *state, const uint8_t *data, + size_t num) { uint32_t a, b, c, d, e, f, g, h, s0, s1, T1; uint32_t X[16]; int i; @@ -307,7 +382,33 @@ static void sha256_block_data_order(uint32_t *state, const uint8_t *data, } } -#endif // !SHA256_ASM +#endif // !defined(SHA256_ASM_NOHW) + +static void sha256_block_data_order(uint32_t *state, const uint8_t *data, + size_t num) { +#if defined(SHA256_ASM_HW) + if (sha256_hw_capable()) { + sha256_block_data_order_hw(state, data, num); + return; + } +#endif +#if defined(SHA256_ASM_AVX) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX) + if (sha256_avx_capable()) { + sha256_block_data_order_avx(state, data, num); + return; + } +#endif +#if defined(SHA256_ASM_SSSE3) + if (sha256_ssse3_capable()) { + sha256_block_data_order_ssse3(state, data, num); + return; + } +#endif + sha256_block_data_order_nohw(state, data, num); +} + +#endif // !defined(SHA256_ASM) + void SHA256_TransformBlocks(uint32_t state[8], const uint8_t *data, size_t num_blocks) { diff --git a/crypto/fipsmodule/sha/sha512.c b/crypto/fipsmodule/sha/sha512.c index 1eb95e1a7f..f9d9d88dc6 100644 --- a/crypto/fipsmodule/sha/sha512.c +++ b/crypto/fipsmodule/sha/sha512.c @@ -141,6 +141,63 @@ int SHA512_256_Init(SHA512_CTX *sha) { return 1; } +OPENSSL_STATIC_ASSERT(SHA512_CHAINING_LENGTH==SHA384_CHAINING_LENGTH, + sha512_and_sha384_have_same_chaining_length) +OPENSSL_STATIC_ASSERT(SHA512_CHAINING_LENGTH==SHA512_224_CHAINING_LENGTH, + sha512_and_sha512_224_have_same_chaining_length) +OPENSSL_STATIC_ASSERT(SHA512_CHAINING_LENGTH==SHA512_256_CHAINING_LENGTH, + sha512_and_sha512_256_have_same_chaining_length) + +// sha512_init_from_state_impl is the implementation of +// SHA512_Init_from_state and SHA224_Init_from_state +// Note that the state h is always SHA512_CHAINING_LENGTH-byte long +static int sha512_init_from_state_impl(SHA512_CTX *sha, int md_len, + const uint8_t h[SHA512_CHAINING_LENGTH], + uint64_t n) { + if(n % ((uint64_t) SHA512_CBLOCK * 8) != 0) { + // n is not a multiple of the block size in bits, so it fails + return 0; + } + + OPENSSL_memset(sha, 0, sizeof(SHA512_CTX)); + sha->md_len = md_len; + + const size_t out_words = SHA512_CHAINING_LENGTH / 8; + for (size_t i = 0; i < out_words; i++) { + sha->h[i] = CRYPTO_load_u64_be(h); + h += 8; + } + + sha->Nh = 0; + sha->Nl = n; + + return 1; +} + +int SHA384_Init_from_state(SHA512_CTX *sha, + const uint8_t h[SHA384_CHAINING_LENGTH], + uint64_t n) { + return sha512_init_from_state_impl(sha, SHA384_DIGEST_LENGTH, h, n); +} + +int SHA512_Init_from_state(SHA512_CTX *sha, + const uint8_t h[SHA512_CHAINING_LENGTH], + uint64_t n) { + return sha512_init_from_state_impl(sha, SHA512_DIGEST_LENGTH, h, n); +} + +int SHA512_224_Init_from_state(SHA512_CTX *sha, + const uint8_t h[SHA512_224_CHAINING_LENGTH], + uint64_t n) { + return sha512_init_from_state_impl(sha, SHA512_224_DIGEST_LENGTH, h, n); +} + +int SHA512_256_Init_from_state(SHA512_CTX *sha, + const uint8_t h[SHA512_256_CHAINING_LENGTH], + uint64_t n) { + return sha512_init_from_state_impl(sha, SHA512_256_DIGEST_LENGTH, h, n); +} + uint8_t *SHA384(const uint8_t *data, size_t len, uint8_t out[SHA384_DIGEST_LENGTH]) { // We have to verify that all the SHA services actually succeed before @@ -353,7 +410,57 @@ static int sha512_final_impl(uint8_t *out, size_t md_len, SHA512_CTX *sha) { return 1; } -#ifndef SHA512_ASM +// sha512_get_state_impl is the implementation of +// SHA512_get_state and SHA224_get_state +// Note that the state out_h is always SHA512_CHAINING_LENGTH-byte long +static int sha512_get_state_impl(SHA512_CTX *ctx, + uint8_t out_h[SHA512_CHAINING_LENGTH], + uint64_t *out_n) { + if (ctx->Nl % ((uint64_t)SHA512_CBLOCK * 8) != 0) { + // ctx->Nl is not a multiple of the block size in bits, so it fails + return 0; + } + + if (ctx->Nh != 0) { + // |sha512_get_state_impl| assumes that at most 2^64 bits have been + // processed by the hash function + return 0; + } + + const size_t out_words = SHA512_CHAINING_LENGTH / 8; + for (size_t i = 0; i < out_words; i++) { + CRYPTO_store_u64_be(out_h, ctx->h[i]); + out_h += 8; + } + + *out_n = ctx->Nl; // we know that ctx->Nh = 0 + + return 1; +} + +int SHA384_get_state(SHA512_CTX *ctx, uint8_t out_h[SHA384_CHAINING_LENGTH], + uint64_t *out_n) { + return sha512_get_state_impl(ctx, out_h, out_n); +} + +int SHA512_get_state(SHA512_CTX *ctx, uint8_t out_h[SHA512_CHAINING_LENGTH], + uint64_t *out_n) { + return sha512_get_state_impl(ctx, out_h, out_n); +} + +int SHA512_224_get_state(SHA512_CTX *ctx, uint8_t out_h[SHA512_224_CHAINING_LENGTH], + uint64_t *out_n) { + return sha512_get_state_impl(ctx, out_h, out_n); +} + +int SHA512_256_get_state(SHA512_CTX *ctx, uint8_t out_h[SHA512_256_CHAINING_LENGTH], + uint64_t *out_n) { + return sha512_get_state_impl(ctx, out_h, out_n); +} + +#if !defined(SHA512_ASM) + +#if !defined(SHA512_ASM_NOHW) static const uint64_t K512[80] = { UINT64_C(0x428a2f98d728ae22), UINT64_C(0x7137449123ef65cd), UINT64_C(0xb5c0fbcfec4d3b2f), UINT64_C(0xe9b5dba58189dbbc), @@ -415,8 +522,8 @@ static const uint64_t K512[80] = { #if defined(__i386) || defined(__i386__) || defined(_M_IX86) // This code should give better results on 32-bit CPU with less than // ~24 registers, both size and performance wise... -static void sha512_block_data_order(uint64_t *state, const uint8_t *in, - size_t num) { +static void sha512_block_data_order_nohw(uint64_t *state, const uint8_t *in, + size_t num) { uint64_t A, E, T; uint64_t X[9 + 80], *F; int i; @@ -488,8 +595,8 @@ static void sha512_block_data_order(uint64_t *state, const uint8_t *in, ROUND_00_15(i + j, a, b, c, d, e, f, g, h); \ } while (0) -static void sha512_block_data_order(uint64_t *state, const uint8_t *in, - size_t num) { +static void sha512_block_data_order_nohw(uint64_t *state, const uint8_t *in, + size_t num) { uint64_t a, b, c, d, e, f, g, h, s0, s1, T1; uint64_t X[16]; int i; @@ -572,6 +679,25 @@ static void sha512_block_data_order(uint64_t *state, const uint8_t *in, #endif +#endif // !SHA512_ASM_NOHW + +static void sha512_block_data_order(uint64_t *state, const uint8_t *data, + size_t num) { +#if defined(SHA512_ASM_HW) + if (sha512_hw_capable()) { + sha512_block_data_order_hw(state, data, num); + return; + } +#endif +#if defined(SHA512_ASM_AVX) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX) + if (sha512_avx_capable()) { + sha512_block_data_order_avx(state, data, num); + return; + } +#endif + sha512_block_data_order_nohw(state, data, num); +} + #endif // !SHA512_ASM #undef Sigma0 diff --git a/crypto/fipsmodule/sha/sha_test.cc b/crypto/fipsmodule/sha/sha_test.cc index 28ddf92c57..c79e3912c7 100644 --- a/crypto/fipsmodule/sha/sha_test.cc +++ b/crypto/fipsmodule/sha/sha_test.cc @@ -21,41 +21,99 @@ #include "../../test/abi_test.h" #include "internal.h" -#if defined(SHA1_ASM) && defined(SUPPORTS_ABI_TEST) +#if defined(SUPPORTS_ABI_TEST) && !defined(SHA1_ALTIVEC) TEST(SHATest, SHA1ABI) { SHA_CTX ctx; SHA1_Init(&ctx); static const uint8_t kBuf[SHA_CBLOCK * 8] = {0}; - CHECK_ABI(sha1_block_data_order, ctx.h, kBuf, 1); - CHECK_ABI(sha1_block_data_order, ctx.h, kBuf, 2); - CHECK_ABI(sha1_block_data_order, ctx.h, kBuf, 4); - CHECK_ABI(sha1_block_data_order, ctx.h, kBuf, 8); + for (size_t blocks : {1, 2, 4, 8}) { +#if defined(SHA1_ASM) + CHECK_ABI(sha1_block_data_order, ctx.h, kBuf, blocks); +#endif +#if defined(SHA1_ASM_HW) + if (sha1_hw_capable()) { + CHECK_ABI(sha1_block_data_order_hw, ctx.h, kBuf, blocks); + } +#endif +#if defined(SHA1_ASM_AVX2) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX) + if (sha1_avx2_capable()) { + CHECK_ABI(sha1_block_data_order_avx2, ctx.h, kBuf, blocks); + } +#endif +#if defined(SHA1_ASM_AVX) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX) + if (sha1_avx_capable()) { + CHECK_ABI(sha1_block_data_order_avx, ctx.h, kBuf, blocks); + return; + } +#endif +#if defined(SHA1_ASM_SSSE3) + if (sha1_ssse3_capable()) { + CHECK_ABI(sha1_block_data_order_ssse3, ctx.h, kBuf, blocks); + return; + } +#endif +#if defined(SHA1_ASM_NOHW) + CHECK_ABI(sha1_block_data_order_nohw, ctx.h, kBuf, blocks); +#endif + } } -#endif // SHA1_ASM && SUPPORTS_ABI_TEST -#if defined(SHA256_ASM) && defined(SUPPORTS_ABI_TEST) TEST(SHATest, SHA256ABI) { SHA256_CTX ctx; SHA256_Init(&ctx); static const uint8_t kBuf[SHA256_CBLOCK * 8] = {0}; - CHECK_ABI(sha256_block_data_order, ctx.h, kBuf, 1); - CHECK_ABI(sha256_block_data_order, ctx.h, kBuf, 2); - CHECK_ABI(sha256_block_data_order, ctx.h, kBuf, 4); - CHECK_ABI(sha256_block_data_order, ctx.h, kBuf, 8); + for (size_t blocks : {1, 2, 4, 8}) { +#if defined(SHA256_ASM) + CHECK_ABI(sha256_block_data_order, ctx.h, kBuf, blocks); +#endif +#if defined(SHA256_ASM_HW) + if (sha256_hw_capable()) { + CHECK_ABI(sha256_block_data_order_hw, ctx.h, kBuf, blocks); + } +#endif +#if defined(SHA256_ASM_AVX) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX) + if (sha256_avx_capable()) { + CHECK_ABI(sha256_block_data_order_avx, ctx.h, kBuf, blocks); + return; + } +#endif +#if defined(SHA256_ASM_SSSE3) + if (sha256_ssse3_capable()) { + CHECK_ABI(sha256_block_data_order_ssse3, ctx.h, kBuf, blocks); + return; + } +#endif +#if defined(SHA256_ASM_NOHW) + CHECK_ABI(sha256_block_data_order_nohw, ctx.h, kBuf, blocks); +#endif + } } -#endif // SHA256_ASM && SUPPORTS_ABI_TEST -#if defined(SHA512_ASM) && defined(SUPPORTS_ABI_TEST) TEST(SHATest, SHA512ABI) { SHA512_CTX ctx; SHA512_Init(&ctx); static const uint8_t kBuf[SHA512_CBLOCK * 4] = {0}; - CHECK_ABI(sha512_block_data_order, ctx.h, kBuf, 1); - CHECK_ABI(sha512_block_data_order, ctx.h, kBuf, 2); - CHECK_ABI(sha512_block_data_order, ctx.h, kBuf, 3); - CHECK_ABI(sha512_block_data_order, ctx.h, kBuf, 4); + for (size_t blocks : {1, 2, 3, 4}) { +#if defined(SHA512_ASM) + CHECK_ABI(sha512_block_data_order, ctx.h, kBuf, blocks); +#endif +#if defined(SHA512_ASM_HW) + if (sha512_hw_capable()) { + CHECK_ABI(sha512_block_data_order_hw, ctx.h, kBuf, blocks); + } +#endif +#if defined(SHA512_ASM_AVX) && !defined(MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX) + if (sha512_avx_capable()) { + CHECK_ABI(sha512_block_data_order_avx, ctx.h, kBuf, blocks); + } +#endif +#if defined(SHA512_ASM_NOHW) + CHECK_ABI(sha512_block_data_order_nohw, ctx.h, kBuf, blocks); +#endif + } } -#endif // SHA512_ASM && SUPPORTS_ABI_TEST + +#endif // defined(SUPPORTS_ABI_TEST) && !defined(SHA1_ALTIVEC) diff --git a/crypto/hmac_extra/hmac_test.cc b/crypto/hmac_extra/hmac_test.cc index e7a50a2ed4..7e29ceb6f8 100644 --- a/crypto/hmac_extra/hmac_test.cc +++ b/crypto/hmac_extra/hmac_test.cc @@ -64,6 +64,7 @@ #include #include +#include "../../../crypto/fipsmodule/hmac/internal.h" #include "../test/file_test.h" #include "../test/test_util.h" #include "../test/wycheproof_util.h" @@ -210,7 +211,7 @@ TEST(HMACTest, TestVectors) { ASSERT_EQ(EVP_MD_size(digest), output.size()); // Test using the one-shot API. - unsigned expected_mac_len = EVP_MD_size(digest); + const unsigned expected_mac_len = EVP_MD_size(digest); std::unique_ptr mac(new uint8_t[expected_mac_len]); unsigned mac_len; ASSERT_TRUE(HMAC(digest, key.data(), key.size(), input.data(), input.size(), @@ -218,6 +219,13 @@ TEST(HMACTest, TestVectors) { EXPECT_EQ(Bytes(output), Bytes(mac.get(), mac_len)); OPENSSL_memset(mac.get(), 0, expected_mac_len); // Clear the prior correct answer + // Test using the one-shot API with precompute + ASSERT_TRUE(HMAC_with_precompute(digest, key.data(), key.size(), + input.data(), input.size(), mac.get(), + &mac_len)); + EXPECT_EQ(Bytes(output), Bytes(mac.get(), mac_len)); + OPENSSL_memset(mac.get(), 0, expected_mac_len); // Clear the prior correct answer + // Test using HMAC_CTX. bssl::ScopedHMAC_CTX ctx; ASSERT_TRUE( @@ -227,6 +235,43 @@ TEST(HMACTest, TestVectors) { EXPECT_EQ(Bytes(output), Bytes(mac.get(), mac_len)); OPENSSL_memset(mac.get(), 0, expected_mac_len); // Clear the prior correct answer + uint8_t precomputed_key[HMAC_MAX_PRECOMPUTED_KEY_SIZE]; + + // Test that the precomputed key cannot be exported without calling + // HMAC_set_precomputed_key_export + size_t precomputed_key_len_out = HMAC_MAX_PRECOMPUTED_KEY_SIZE; + ASSERT_TRUE(HMAC_Init_ex(ctx.get(), key.data(), key.size(), digest, nullptr)); + ASSERT_FALSE(HMAC_get_precomputed_key(ctx.get(), precomputed_key, &precomputed_key_len_out)); + + // Test that the precomputed key cannot be exported if ctx not initialized + // and the precomputed_key_export flag cannot be set + bssl::ScopedHMAC_CTX ctx2; + ASSERT_FALSE(HMAC_set_precomputed_key_export(ctx2.get())); + precomputed_key_len_out = HMAC_MAX_PRECOMPUTED_KEY_SIZE; + ASSERT_FALSE(HMAC_get_precomputed_key(ctx2.get(), precomputed_key, &precomputed_key_len_out)); + + // Get the precomputed key length for later use + // And test the precomputed key size is at most HMAC_MAX_PRECOMPUTED_KEY_SIZE + ASSERT_TRUE(HMAC_set_precomputed_key_export(ctx.get())); + size_t precomputed_key_len; + HMAC_get_precomputed_key(ctx.get(), nullptr, &precomputed_key_len); + ASSERT_LE(precomputed_key_len, (size_t) HMAC_MAX_PRECOMPUTED_KEY_SIZE); + + // Test that at this point, the context cannot be used with HMAC_Update + ASSERT_FALSE(HMAC_Update(ctx.get(), input.data(), input.size())); + ASSERT_FALSE(HMAC_Final(ctx.get(), mac.get(), &mac_len)); + + // Export the precomputed key for later use + precomputed_key_len_out = HMAC_MAX_PRECOMPUTED_KEY_SIZE; + ASSERT_TRUE(HMAC_get_precomputed_key(ctx.get(), precomputed_key, &precomputed_key_len_out)); + ASSERT_EQ(precomputed_key_len, precomputed_key_len_out); + + // Test that at this point, the context can be used with HMAC_Update + ASSERT_TRUE(HMAC_Update(ctx.get(), input.data(), input.size())); + ASSERT_TRUE(HMAC_Final(ctx.get(), mac.get(), &mac_len)); + EXPECT_EQ(Bytes(output), Bytes(mac.get(), mac_len)); + OPENSSL_memset(mac.get(), 0, expected_mac_len); // Clear the prior correct answer + // Test that an HMAC_CTX may be reset with the same key. ASSERT_TRUE(HMAC_Init_ex(ctx.get(), nullptr, 0, digest, nullptr)); ASSERT_TRUE(HMAC_Update(ctx.get(), input.data(), input.size())); @@ -234,13 +279,27 @@ TEST(HMACTest, TestVectors) { EXPECT_EQ(Bytes(output), Bytes(mac.get(), mac_len)); OPENSSL_memset(mac.get(), 0, expected_mac_len); // Clear the prior correct answer - // Test that an HMAC_CTX may be reset with the same key and an null md + // Same test but with HMAC_Init_from_precomputed_key + ASSERT_TRUE(HMAC_Init_from_precomputed_key(ctx.get(), nullptr, 0, digest)); + ASSERT_TRUE(HMAC_Update(ctx.get(), input.data(), input.size())); + ASSERT_TRUE(HMAC_Final(ctx.get(), mac.get(), &mac_len)); + EXPECT_EQ(Bytes(output), Bytes(mac.get(), mac_len)); + OPENSSL_memset(mac.get(), 0, expected_mac_len); // Clear the prior correct answer + + // Test that an HMAC_CTX may be reset with the same key and a null md ASSERT_TRUE(HMAC_Init_ex(ctx.get(), nullptr, 0, nullptr, nullptr)); ASSERT_TRUE(HMAC_Update(ctx.get(), input.data(), input.size())); ASSERT_TRUE(HMAC_Final(ctx.get(), mac.get(), &mac_len)); EXPECT_EQ(Bytes(output), Bytes(mac.get(), mac_len)); OPENSSL_memset(mac.get(), 0, expected_mac_len); // Clear the prior correct answer + // Same test but using the Init_from_precomputed_key instead + ASSERT_TRUE(HMAC_Init_from_precomputed_key(ctx.get(), nullptr, 0, nullptr)); + ASSERT_TRUE(HMAC_Update(ctx.get(), input.data(), input.size())); + ASSERT_TRUE(HMAC_Final(ctx.get(), mac.get(), &mac_len)); + EXPECT_EQ(Bytes(output), Bytes(mac.get(), mac_len)); + OPENSSL_memset(mac.get(), 0, expected_mac_len); // Clear the prior correct answer + // Some callers will call init multiple times and we need to ensure that doesn't break anything ASSERT_TRUE(HMAC_Init_ex(ctx.get(), key.data(), key.size(), digest, nullptr)); ASSERT_TRUE(HMAC_Init_ex(ctx.get(), nullptr, 0, nullptr, nullptr)); @@ -249,6 +308,75 @@ TEST(HMACTest, TestVectors) { EXPECT_EQ(Bytes(output), Bytes(mac.get(), mac_len)); OPENSSL_memset(mac.get(), 0, expected_mac_len); // Clear the prior correct answer + // Same test but using a mix of Init_ex and Init_from_precomputed_key + ASSERT_TRUE(HMAC_Init_ex(ctx.get(), key.data(), key.size(), digest, nullptr)); + ASSERT_TRUE(HMAC_Init_from_precomputed_key(ctx.get(), nullptr, 0, nullptr)); + ASSERT_TRUE(HMAC_Init_ex(ctx.get(), nullptr, 0, nullptr, nullptr)); + ASSERT_TRUE(HMAC_Init_from_precomputed_key(ctx.get(), nullptr, 0, nullptr)); + ASSERT_TRUE(HMAC_Update(ctx.get(), input.data(), input.size())); + ASSERT_TRUE(HMAC_Final(ctx.get(), mac.get(), &mac_len)); + EXPECT_EQ(Bytes(output), Bytes(mac.get(), mac_len)); + OPENSSL_memset(mac.get(), 0, expected_mac_len); // Clear the prior correct answer + + // Test that the HMAC_CTX can be reset using the precomputed key + ASSERT_TRUE(HMAC_Init_from_precomputed_key(ctx.get(), precomputed_key, precomputed_key_len, nullptr)); + ASSERT_TRUE(HMAC_Update(ctx.get(), input.data(), input.size())); + ASSERT_TRUE(HMAC_Final(ctx.get(), mac.get(), &mac_len)); + EXPECT_EQ(Bytes(output), Bytes(mac.get(), mac_len)); + OPENSSL_memset(mac.get(), 0, expected_mac_len); // Clear the prior correct answer + + // Same test but starting from an empty context + ctx.Reset(); + ASSERT_TRUE(HMAC_Init_from_precomputed_key(ctx.get(), precomputed_key, precomputed_key_len, digest)); + ASSERT_TRUE(HMAC_Update(ctx.get(), input.data(), input.size())); + ASSERT_TRUE(HMAC_Final(ctx.get(), mac.get(), &mac_len)); + EXPECT_EQ(Bytes(output), Bytes(mac.get(), mac_len)); + OPENSSL_memset(mac.get(), 0, expected_mac_len); // Clear the prior correct answer + + // Some callers will call init_from_precomputed_key multiple times and we need to ensure that doesn't break anything + ASSERT_TRUE(HMAC_Init_from_precomputed_key(ctx.get(), precomputed_key, precomputed_key_len, nullptr)); + ASSERT_TRUE(HMAC_Init_from_precomputed_key(ctx.get(), nullptr, 0, nullptr)); + ASSERT_TRUE(HMAC_Update(ctx.get(), input.data(), input.size())); + ASSERT_TRUE(HMAC_Final(ctx.get(), mac.get(), &mac_len)); + EXPECT_EQ(Bytes(output), Bytes(mac.get(), mac_len)); + OPENSSL_memset(mac.get(), 0, expected_mac_len); // Clear the prior correct answer + + // Test that we get an error if the out_len is not large enough or is null + uint8_t precomputed_key2[HMAC_MAX_PRECOMPUTED_KEY_SIZE]; + size_t precomputed_key_len_out2; + ASSERT_TRUE(HMAC_Init_ex(ctx.get(), key.data(), key.size(), digest, nullptr)); + ASSERT_TRUE(HMAC_set_precomputed_key_export(ctx.get())); + ASSERT_TRUE(HMAC_set_precomputed_key_export(ctx.get())); // testing we can set it twice + precomputed_key_len_out2 = precomputed_key_len - 1; // slightly too short + ASSERT_FALSE(HMAC_get_precomputed_key(ctx.get(), precomputed_key2, &precomputed_key_len_out2)); + precomputed_key_len_out2 = 0; // 0-size should also fail + ASSERT_FALSE(HMAC_get_precomputed_key(ctx.get(), precomputed_key2, &precomputed_key_len_out2)); + ASSERT_FALSE(HMAC_get_precomputed_key(ctx.get(), precomputed_key2, nullptr)); + + // Test that we get the same precompute_key the second time we correctly call HMAC_get_precomputed_key + precomputed_key_len_out2 = precomputed_key_len; // testing with the out_len is the exact value + ASSERT_TRUE(HMAC_get_precomputed_key(ctx.get(), precomputed_key2, &precomputed_key_len_out2)); + ASSERT_EQ(precomputed_key_len, precomputed_key_len_out2); + ASSERT_EQ(Bytes(precomputed_key, precomputed_key_len), Bytes(precomputed_key2, precomputed_key_len)); + OPENSSL_memset(precomputed_key2, 0, HMAC_MAX_PRECOMPUTED_KEY_SIZE); // Clear the prior correct answer + + // Test that at this point, the context cannot be used to re-export the precomputed key + precomputed_key_len_out2 = HMAC_MAX_PRECOMPUTED_KEY_SIZE; + ASSERT_FALSE(HMAC_get_precomputed_key(ctx.get(), precomputed_key2, &precomputed_key_len_out2)); + // Check that precomputed_key_len_out2 and precomputed_key2 were not modified and are still their original value + uint8_t zero_precomputed_key[HMAC_MAX_PRECOMPUTED_KEY_SIZE]; + OPENSSL_memset(zero_precomputed_key, 0, HMAC_MAX_PRECOMPUTED_KEY_SIZE); + ASSERT_EQ((size_t)HMAC_MAX_PRECOMPUTED_KEY_SIZE, precomputed_key_len_out2); + ASSERT_EQ(Bytes(zero_precomputed_key, HMAC_MAX_PRECOMPUTED_KEY_SIZE), Bytes(precomputed_key2, HMAC_MAX_PRECOMPUTED_KEY_SIZE)); + + // Same but initializing the ctx using the precompute key in the first place + ctx.Reset(); + ASSERT_TRUE(HMAC_Init_from_precomputed_key(ctx.get(), precomputed_key, precomputed_key_len, digest)); + ASSERT_TRUE(HMAC_set_precomputed_key_export(ctx.get())); + ASSERT_TRUE(HMAC_get_precomputed_key(ctx.get(), precomputed_key2, &precomputed_key_len_out2)); + ASSERT_EQ(precomputed_key_len, precomputed_key_len_out2); + ASSERT_EQ(Bytes(precomputed_key, precomputed_key_len), Bytes(precomputed_key2, precomputed_key_len)); + // Test feeding the input in byte by byte. ASSERT_TRUE(HMAC_Init_ex(ctx.get(), nullptr, 0, nullptr, nullptr)); for (size_t i = 0; i < input.size(); i++) { @@ -259,6 +387,15 @@ TEST(HMACTest, TestVectors) { // Test consuming HMAC through the |EVP_PKEY_HMAC| interface. RunHMACTestEVP(key, input, output, digest); + + // Test that initializing without the precomputed_key does not work + ctx.Reset(); + ASSERT_FALSE(HMAC_Init_from_precomputed_key(ctx.get(), nullptr, precomputed_key_len, digest)); + + // Test that initializing with the wrong precomputed_key_len does not work + ctx.Reset(); + ASSERT_FALSE(HMAC_Init_from_precomputed_key(ctx.get(), nullptr, 1, digest)); + ASSERT_FALSE(HMAC_Init_from_precomputed_key(ctx.get(), nullptr, precomputed_key_len+1, digest)); }); } diff --git a/crypto/hrss/asm/poly_rq_mul.S b/crypto/hrss/asm/poly_rq_mul.S index 373ac5c5c1..6ce7e02254 100644 --- a/crypto/hrss/asm/poly_rq_mul.S +++ b/crypto/hrss/asm/poly_rq_mul.S @@ -302,6 +302,7 @@ mask_mod8192: .att_syntax prefix poly_Rq_mul: .cfi_startproc +_CET_ENDBR push %rbp .cfi_adjust_cfa_offset 8 .cfi_offset rbp, -16 diff --git a/crypto/internal.h b/crypto/internal.h index ba08e232f5..1546549714 100644 --- a/crypto/internal.h +++ b/crypto/internal.h @@ -466,17 +466,32 @@ static inline void constant_time_select_array_w( } } +static inline void constant_time_select_array_8( + uint8_t *c, uint8_t *a, uint8_t *b, uint8_t mask, size_t len) { + for (size_t i = 0; i < len; i++) { + c[i] = constant_time_select_8(mask, a[i], b[i]); + } +} + // constant_time_select_entry_from_table_w selects the idx-th entry from table. static inline void constant_time_select_entry_from_table_w( crypto_word_t *out, crypto_word_t *table, - size_t idx, size_t num_entries, size_t entry_size) -{ + size_t idx, size_t num_entries, size_t entry_size) { for (size_t i = 0; i < num_entries; i++) { crypto_word_t mask = constant_time_eq_w(i, idx); constant_time_select_array_w(out, &table[i * entry_size], out, mask, entry_size); } } +static inline void constant_time_select_entry_from_table_8( + uint8_t *out, uint8_t *table, size_t idx, + size_t num_entries, size_t entry_size) { + for (size_t i = 0; i < num_entries; i++) { + uint8_t mask = (uint8_t)(constant_time_eq_w(i, idx)); + constant_time_select_array_8(out, &table[i * entry_size], out, mask, entry_size); + } +} + #if defined(BORINGSSL_CONSTANT_TIME_VALIDATION) // CONSTTIME_SECRET takes a pointer and a number of bytes and marks that region diff --git a/crypto/kem/internal.h b/crypto/kem/internal.h index b65ba2d81c..61cca79b94 100644 --- a/crypto/kem/internal.h +++ b/crypto/kem/internal.h @@ -38,6 +38,8 @@ extern const KEM_METHOD kem_kyber512r3_method; extern const KEM_METHOD kem_kyber768r3_method; extern const KEM_METHOD kem_kyber1024r3_method; extern const KEM_METHOD kem_ml_kem_512_ipd_method; +extern const KEM_METHOD kem_ml_kem_768_ipd_method; +extern const KEM_METHOD kem_ml_kem_1024_ipd_method; // KEM structure and helper functions. typedef struct { diff --git a/crypto/kem/kem.c b/crypto/kem/kem.c index 4cd9cd9921..6c8ad4a7d9 100644 --- a/crypto/kem/kem.c +++ b/crypto/kem/kem.c @@ -19,13 +19,15 @@ // - Kyber is not standardized yet, so we use the latest specification // from Round 3 of NIST PQC project. -#define AWSLC_NUM_BUILT_IN_KEMS 4 +#define AWSLC_NUM_BUILT_IN_KEMS 6 // TODO(awslc): placeholder OIDs, replace with the real ones when available. -static const uint8_t kOIDKyber512r3[] = {0xff, 0xff, 0xff, 0xff}; -static const uint8_t kOIDKyber768r3[] = {0xff, 0xff, 0xff, 0xff}; -static const uint8_t kOIDKyber1024r3[] = {0xff, 0xff, 0xff, 0xff}; -static const uint8_t kOIDMLKEM512IPD[] = {0xff, 0xff, 0xff, 0xff}; +static const uint8_t kOIDKyber512r3[] = {0xff, 0xff, 0xff, 0xff}; +static const uint8_t kOIDKyber768r3[] = {0xff, 0xff, 0xff, 0xff}; +static const uint8_t kOIDKyber1024r3[] = {0xff, 0xff, 0xff, 0xff}; +static const uint8_t kOIDMLKEM512IPD[] = {0xff, 0xff, 0xff, 0xff}; +static const uint8_t kOIDMLKEM768IPD[] = {0xff, 0xff, 0xff, 0xff}; +static const uint8_t kOIDMLKEM1024IPD[] = {0xff, 0xff, 0xff, 0xff}; static const KEM built_in_kems[AWSLC_NUM_BUILT_IN_KEMS] = { { @@ -82,6 +84,32 @@ static const KEM built_in_kems[AWSLC_NUM_BUILT_IN_KEMS] = { MLKEM512IPD_ENCAPS_SEED_LEN, // kem.encaps_seed_len &kem_ml_kem_512_ipd_method, // kem.method }, + { + NID_MLKEM768IPD, // kem.nid + kOIDMLKEM768IPD, // kem.oid + sizeof(kOIDMLKEM768IPD), // kem.oid_len + "MLKEM768 IPD", // kem.comment + MLKEM768IPD_PUBLIC_KEY_BYTES, // kem.public_key_len + MLKEM768IPD_SECRET_KEY_BYTES, // kem.secret_key_len + MLKEM768IPD_CIPHERTEXT_BYTES, // kem.ciphertext_len + MLKEM768IPD_SHARED_SECRET_LEN, // kem.shared_secret_len + MLKEM768IPD_KEYGEN_SEED_LEN, // kem.keygen_seed_len + MLKEM768IPD_ENCAPS_SEED_LEN, // kem.encaps_seed_len + &kem_ml_kem_768_ipd_method, // kem.method + }, + { + NID_MLKEM1024IPD, // kem.nid + kOIDMLKEM1024IPD, // kem.oid + sizeof(kOIDMLKEM1024IPD), // kem.oid_len + "MLKEM1024 IPD", // kem.comment + MLKEM1024IPD_PUBLIC_KEY_BYTES, // kem.public_key_len + MLKEM1024IPD_SECRET_KEY_BYTES, // kem.secret_key_len + MLKEM1024IPD_CIPHERTEXT_BYTES, // kem.ciphertext_len + MLKEM1024IPD_SHARED_SECRET_LEN, // kem.shared_secret_len + MLKEM1024IPD_KEYGEN_SEED_LEN, // kem.keygen_seed_len + MLKEM1024IPD_ENCAPS_SEED_LEN, // kem.encaps_seed_len + &kem_ml_kem_1024_ipd_method, // kem.method + }, }; const KEM *KEM_find_kem_by_nid(int nid) { diff --git a/crypto/kem/kem_methods.c b/crypto/kem/kem_methods.c index 622a252283..11d54c4b9c 100644 --- a/crypto/kem/kem_methods.c +++ b/crypto/kem/kem_methods.c @@ -161,3 +161,79 @@ const KEM_METHOD kem_ml_kem_512_ipd_method = { ml_kem_512_ipd_encaps, ml_kem_512_ipd_decaps, }; + +static int ml_kem_768_ipd_keygen_deterministic(uint8_t *public_key, + uint8_t *secret_key, + const uint8_t *seed) { + return ml_kem_768_ipd_keypair_deterministic(public_key, secret_key, seed) == 0; +} + +static int ml_kem_768_ipd_keygen(uint8_t *public_key, + uint8_t *secret_key) { + return ml_kem_768_ipd_keypair(public_key, secret_key) == 0; +} + +static int ml_kem_768_ipd_encaps_deterministic(uint8_t *ciphertext, + uint8_t *shared_secret, + const uint8_t *public_key, + const uint8_t *seed) { + return ml_kem_768_ipd_encapsulate_deterministic(ciphertext, shared_secret, public_key, seed) == 0; +} + +static int ml_kem_768_ipd_encaps(uint8_t *ciphertext, + uint8_t *shared_secret, + const uint8_t *public_key) { + return ml_kem_768_ipd_encapsulate(ciphertext, shared_secret, public_key) == 0; +} + +static int ml_kem_768_ipd_decaps(uint8_t *shared_secret, + const uint8_t *ciphertext, + const uint8_t *secret_key) { + return ml_kem_768_ipd_decapsulate(shared_secret, ciphertext, secret_key) == 0; +} + +const KEM_METHOD kem_ml_kem_768_ipd_method = { + ml_kem_768_ipd_keygen_deterministic, + ml_kem_768_ipd_keygen, + ml_kem_768_ipd_encaps_deterministic, + ml_kem_768_ipd_encaps, + ml_kem_768_ipd_decaps, +}; + +static int ml_kem_1024_ipd_keygen_deterministic(uint8_t *public_key, + uint8_t *secret_key, + const uint8_t *seed) { + return ml_kem_1024_ipd_keypair_deterministic(public_key, secret_key, seed) == 0; +} + +static int ml_kem_1024_ipd_keygen(uint8_t *public_key, + uint8_t *secret_key) { + return ml_kem_1024_ipd_keypair(public_key, secret_key) == 0; +} + +static int ml_kem_1024_ipd_encaps_deterministic(uint8_t *ciphertext, + uint8_t *shared_secret, + const uint8_t *public_key, + const uint8_t *seed) { + return ml_kem_1024_ipd_encapsulate_deterministic(ciphertext, shared_secret, public_key, seed) == 0; +} + +static int ml_kem_1024_ipd_encaps(uint8_t *ciphertext, + uint8_t *shared_secret, + const uint8_t *public_key) { + return ml_kem_1024_ipd_encapsulate(ciphertext, shared_secret, public_key) == 0; +} + +static int ml_kem_1024_ipd_decaps(uint8_t *shared_secret, + const uint8_t *ciphertext, + const uint8_t *secret_key) { + return ml_kem_1024_ipd_decapsulate(shared_secret, ciphertext, secret_key) == 0; +} + +const KEM_METHOD kem_ml_kem_1024_ipd_method = { + ml_kem_1024_ipd_keygen_deterministic, + ml_kem_1024_ipd_keygen, + ml_kem_1024_ipd_encaps_deterministic, + ml_kem_1024_ipd_encaps, + ml_kem_1024_ipd_decaps, +}; diff --git a/crypto/ml_kem/README.md b/crypto/ml_kem/README.md index 83d11dff7d..b60e53656a 100644 --- a/crypto/ml_kem/README.md +++ b/crypto/ml_kem/README.md @@ -8,10 +8,10 @@ NOTE: THIS IS AN IMPLEMENTATION OF THE DRAFT VERSION OF FIPS 203, NOT THE FINAL The following changes were made to the source code in `ml_kem_ipd_ref_common` directory: - `randombytes.{h|c}` are deleted because we are using the randomness generation functions provided by AWS-LC. -- `kem.c`: call to randombytes function is replaced with a call to pq_custom_randombytes and the appropriate header file is included (crypto/rand_extra/pq_custom_randombytes.h). +- `kem.c`: call to randombytes function is replaced with a call to RAND_bytes and the appropriate header file is included (openssl/rand.h). - `fips202.{h|c}` are deleted and the ones from `crypto/kyber/pqcrystals_kyber_ref_common` directory are used. - `symmetric-shake.c`: unnecessary include of fips202.h is removed. -- `api.h`: `pqcrystals` prefix substituted with `ml_kem` (to be able build alongside `crypto/kyber`). -* `poly.c`: the `poly_frommsg` function was modified to address the constant-time issue described [here](https://github.com/pq-crystals/kyber/commit/9b8d30698a3e7449aeb34e62339d4176f11e3c6c). +- `api.h`: `pqcrystals` prefix substituted with `ml_kem` (to be able to build alongside `crypto/kyber`). +- `poly.c`: the `poly_frommsg` function was modified to address the constant-time issue described [here](https://github.com/pq-crystals/kyber/commit/9b8d30698a3e7449aeb34e62339d4176f11e3c6c). -The KATs were generated by compiling and running the KAT generator tests from the official repository. Specifically, running `make` in the `ref` folder produces `nistkat/PQCgenKAT_kem512` binary that can generates the test vectors. +The KATs were generated by compiling and running the KAT generator tests from the official repository. Specifically, running `make` in the `ref` folder produces `nistkat/PQCgenKAT_kem512` binary that can generates the test vectors. The files in `ml_kem/kat/mlkem{512|768|1024}ipd.txt` utilize the deterministic API for testing, and instead use the intermediate seed values (`keypair_coins` and `encap_coins`) instead of a call to randomness generation. The same intermediate values can be extracted from the official repository from the `coins` generated during keypair, and encapsulate. diff --git a/crypto/ml_kem/kat/mlkem1024ipd.txt b/crypto/ml_kem/kat/mlkem1024ipd.txt new file mode 100644 index 0000000000..5446c50403 --- /dev/null +++ b/crypto/ml_kem/kat/mlkem1024ipd.txt @@ -0,0 +1,802 @@ +# Kyber1024 + +count = 0 +keypair_coins = 7C9935A0B07694AA0C6D10E4DB6B1ADD2FD81A25CCB148032DCD739936737F2DB505D7CFAD1B497499323C8686325E4792F267AAFA3F87CA60D01CB54F29202A +pk = D22302CBD3399FACC630991FC8F28BDB4354762541527678BCF61F65C241146C426D23B9BFAA6B7DF18C97F20C1B6125BF874B1D89475852C448215DB0EB7737F91480E8CEBD9A0871574F5AB62D9020175EC6927CA0B54C09818E42CF92A383172422C7DC1831D63B0C295DE75159DB8034E9E07F7B0B910C3C1E5FB66B3DC523F1FA6EB4910CB89A6C17562C83AB4C18D0CD7E0796592A372AA409B1C557347CCACDC4644A119064D06DD474929D1C6FB4D686E5491CE4BC89A30BB4B8C41BCE5157DFC1360823B1AB618C14B10F98C25067398EA7018C278A4B3DF31334D603B2044EF187CD9BC6CE42725BD962C264983E9E18155A8B9C47143D70460A26A56FE7658C1F150348C6087EF758AD167887860A007A5FC37358D43B5EBEE820ACEA474F0AC07B76802866199C61231D5C747C93774D2C1E0C1C67E6C81B82752173E125BAF39B4FD19A4F453DC57976B1D97FE6996992BBB65B7CB25D077BBAA6A13322899AF659CF1B3558C1B5001154B625809ED89AEEBB89E6EA7D67F723D045AB05715C42355DA6A5C8DD39C8ABE3037751A01ED1C7374919F3121B5A52C53D1487316769F80721DEEAAAD3C90F76E7AE9E12BA92B32B5FD457E3C752C2650DFB885771CB77AC3C785A8C562E6A1C63C2A55EA47CF8B90EB8225C123C346452566235B2F31823A33521E087937A345D8D663EEAA05658917BBAA008C2E335F8850A90A326D0E66432F44CEB8289E4ECB2D12958E984072ECACB88E1348FF0B55654ACBA5B54971CBAEBA88EC4B91A94C37192FA982BECB9F3DA421603B61A51BC8E36CBD053851C77B1B926B17A272AA9023246B02B3ED47F66A00BD5684823634E7CE58CF8F306E35B1E5322824D904801F0A2FA7C2BC9C252B0A56B7BA2AB0F636021745A70A9A43E2B0A8D615970B65309624B5184BCC30B911679AEDD76025FE3908FD67897B0CF4BE5A6F5413D7DD98564B23E42A93E4AA8821CD45054C643EDC1158DB6B3DEB13FB5A51EBD1A8A78B87225A7338E101104C4A220D9BDEDD48C85A1C2DAE781A80C40E13B87EAC73A764201C9B760CCFB1AE392699C7039D27C39362B27B8FC6F07A8A3D4410F1547C48A9997F62C61074452EF1515F8A649EBCA9437205A4E8A61606B41DAF6834D671F4D852C0C9C4096611648C6A3170678B1537CC1828D93580C9E5849A9653175ACB753F2BE7437BE45F6C603E485F2EC301BB42B6C37C225D7495A584AE231890AB5C8C35C268CF4BBB0213C096019319561A8A6947637AA40D006B415BB2CFA2237E0890B6A3BC134ABF8F6585E108D15940F91F4BF5B0C818055B21DEA6E63B553988C47F4B94E7CF800A493B4734705EDC56A4B6021C629500675876804CF0B951F038A5C7FE58E89774EF2992FD7C63099D352A7D21560B788B405709861817E59A96B3A3A83CBA803B16934331071905BBEC6532900155D8AC88CB32E4E21A3BD3A03FDEC325A51CD2773964E6784FCF1853737AA64EB67564727272661ABF84313A57A44B123C65509CFB7A6F6641CDCC3B57FE628C7B8192DB44FFBF5796A8613B1FA126F6076883C783DC24E2A4464C40B3A41CA70AE87620866CF4FCB2BD204BF5C283812BA056AC0C345E379C4BA24D750901279BB2F3A16F612BFADB35703332C7C136F68EAB6755C66B6A4AD1AABA7B768A58ACAACC10A459A1CC8EF29377BC200E4D315A30A6BCC3256F9734D06E9779CAA5442A9A16069081377C76E75154368072DC446ED6C8B8E622A21E383CF9BA1FB434E2ECC81E7B78CEE986B8FF798AB18CF9634543546284EDA2A26B47F05B735BCDB1202220076DC8B4E4B9F853533C8F6C7FF38817BA49712835785F17F14CA01D0C1C1E98810FE0B36E5B427157B9418449CEDD641A4293C85C32700102ACEC22EBAD98ED160A5F027BD4CDA57F1F3720A12C134654DD5E73F829676495390D0E7929D6034E9C55F7D55BA658BC587988E8AF94960F6CFB8D5AF7A0021535A6E25E437D49A780698BE22AC9953949F571B85A685725F8207A2B0AE849B601AB91B159B3DF4A154C2041E776070AFC42969322380917C97510799F3149131477E16663D3174C7C1CAEA788535C6C005A64F2868631B31B66E205FD38C1D84542D0F1B578F58C9BF5A0FAEAB6AB6494893053165EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B53922 +sk = 07638FB69868F3D320E5862BD96933FEB311B362093C9B5D50170BCED43F1B536D9A204BB1F22695950BA1F2A9E8EB828B284488760B3FC84FABA04275D5628E39C5B2471374283C503299C0AB49B66B8BBB56A4186624F919A2BA59BB08D8551880C2BEFC4F87F25F59AB587A79C327D792D54C974A69262FF8A78938289E9A87B688B083E0595FE218B6BB1505941CE2E81A5A64C5AAC60417256985349EE47A52420A5F97477B7236AC76BC70E8288729287EE3E34A3DBC3683C0B7B10029FC203418537E7466BA6385A8FF301EE12708F82AAA1E380FC7A88F8F205AB7E88D7E95952A55BA20D09B79A47141D62BF6EB7DD307B08ECA13A5BC5F6B68581C6865B27BBCDDAB142F4B2CBFF488C8A22705FAA98A2B9EEA3530C76662335CC7EA3A00777725EBCCCD2A4636B2D9122FF3AB77123CE0883C1911115E50C9E8A94194E48DD0D09CFFB3ADCD2C1E92430903D07ADBF00532031575AA7F9E7B5A1F3362DEC936D4043C05F2476C07578BC9CBAF2AB4E382727AD41686A96B2548820BB03B32F11B2811AD62F489E951632ABA0D1DF89680CC8A8B53B481D92A68D70B4EA1C3A6A561C0692882B5CA8CC942A8D495AFCB06DE89498FB935B775908FE7A03E324D54CC19D4E1AABD3593B38B19EE1388FE492B43127E5A504253786A0D69AD32601C28E2C88504A5BA599706023A61363E17C6B9BB59BDC697452CD059451983D738CA3FD034E3F5988854CA05031DB09611498988197C6B30D258DFE26265541C89A4B31D6864E9389B03CB74F7EC4323FB9421A4B9790A26D17B0398A26767350909F84D57B6694DF830664CA8B3C3C03ED2AE67B89006868A68527CCD666459AB7F056671000C6164D3A7F266A14D97CBD7004D6C92CACA770B844A4FA9B182E7B18CA885082AC5646FCB4A14E1685FEB0C9CE3372AB95365C04FD83084F80A23FF10A05BF15F7FA5ACC6C0CB462C33CA524FA6B8BB359043BA68609EAA2536E81D08463B19653B5435BA946C9ADDEB202B04B031CC960DCC12E4518D428B32B257A4FC7313D3A7980D80082E934F9D95C32B0A0191A23604384DD9E079BBBAA266D14C3F756B9F2133107433A4E83FA7187282A809203A4FAF841851833D121AC383843A5E55BC2381425E16C7DB4CC9AB5C1B0D91A47E2B8DE0E582C86B6B0D907BB360B97F40AB5D038F6B75C814B27D9B968D419832BC8C2BEE605EF6E5059D33100D90485D378450014221736C07407CAC260408AA64926619788B8601C2A752D1A6CBF820D7C7A04716203225B3895B9342D147A8185CFC1BB65BA06B4142339903C0AC4651385B45D98A8B19D28CD6BAB088787F7EE1B12461766B43CBCCB96434427D93C065550688F6948ED1B5475A425F1B85209D061C08B56C1CC069F6C0A7C6F29358CAB911087732A649D27C9B98F9A48879387D9B00C25959A71654D6F6A946164513E47A75D005986C2363C09F6B537ECA78B9303A5FA457608A586A653A347DB04DFCC19175B3A301172536062A658A95277570C8852CA8973F4AE123A334047DD711C8927A634A03388A527B034BF7A8170FA702C1F7C23EC32D18A2374890BE9C787A9409C82D192C4BB705A2F996CE405D85A4C1A1AB9B6AEB49CCE1C2F8A97C3516C72A00A46263BAA696BF25727719C3216423618FF33380934A6C10545C4C5C5155B12486181FC7A2319873978B6A2A67490F8256BD2196FE1792A4C00077B812EAE8BED3572499684AB3371876761E450C9F9D2768A36806D7AB2046C91F17599E9AC592990808DCD7B4D0919072F14EC361773B7252444C323C308326F4A30F8680D2F748F56A132B82674ED0184620B82AD2CB182C97B481626647491290A011CC73828685A8C367A5B9CF8D621B0D5C1EFF03172758BD004978C251CD51342228989CAE6332AC486437CB5C57D4307462865253BE217B3515C73DF405B7F28217AD0B8CF60C2FFFAA0A0048B1FB4ACDCDC38B5250CFEC356A6DE26CFA7A588FDC86F98C854AC64C7BFAA96F5A32CC0610934BAA6A586B9A2054F13BA274174AA0D2B3A81B96A940666F789B5A6BCDC0A6A0178A0C9A02578A493F6EEA0D2E6C13951C9F249A5E8DD71DD49A742D451F1ABBA19AF8C547855E0AFC728E90ABB499C9BEEB766F4729CDA22263E324D22302CBD3399FACC630991FC8F28BDB4354762541527678BCF61F65C241146C426D23B9BFAA6B7DF18C97F20C1B6125BF874B1D89475852C448215DB0EB7737F91480E8CEBD9A0871574F5AB62D9020175EC6927CA0B54C09818E42CF92A383172422C7DC1831D63B0C295DE75159DB8034E9E07F7B0B910C3C1E5FB66B3DC523F1FA6EB4910CB89A6C17562C83AB4C18D0CD7E0796592A372AA409B1C557347CCACDC4644A119064D06DD474929D1C6FB4D686E5491CE4BC89A30BB4B8C41BCE5157DFC1360823B1AB618C14B10F98C25067398EA7018C278A4B3DF31334D603B2044EF187CD9BC6CE42725BD962C264983E9E18155A8B9C47143D70460A26A56FE7658C1F150348C6087EF758AD167887860A007A5FC37358D43B5EBEE820ACEA474F0AC07B76802866199C61231D5C747C93774D2C1E0C1C67E6C81B82752173E125BAF39B4FD19A4F453DC57976B1D97FE6996992BBB65B7CB25D077BBAA6A13322899AF659CF1B3558C1B5001154B625809ED89AEEBB89E6EA7D67F723D045AB05715C42355DA6A5C8DD39C8ABE3037751A01ED1C7374919F3121B5A52C53D1487316769F80721DEEAAAD3C90F76E7AE9E12BA92B32B5FD457E3C752C2650DFB885771CB77AC3C785A8C562E6A1C63C2A55EA47CF8B90EB8225C123C346452566235B2F31823A33521E087937A345D8D663EEAA05658917BBAA008C2E335F8850A90A326D0E66432F44CEB8289E4ECB2D12958E984072ECACB88E1348FF0B55654ACBA5B54971CBAEBA88EC4B91A94C37192FA982BECB9F3DA421603B61A51BC8E36CBD053851C77B1B926B17A272AA9023246B02B3ED47F66A00BD5684823634E7CE58CF8F306E35B1E5322824D904801F0A2FA7C2BC9C252B0A56B7BA2AB0F636021745A70A9A43E2B0A8D615970B65309624B5184BCC30B911679AEDD76025FE3908FD67897B0CF4BE5A6F5413D7DD98564B23E42A93E4AA8821CD45054C643EDC1158DB6B3DEB13FB5A51EBD1A8A78B87225A7338E101104C4A220D9BDEDD48C85A1C2DAE781A80C40E13B87EAC73A764201C9B760CCFB1AE392699C7039D27C39362B27B8FC6F07A8A3D4410F1547C48A9997F62C61074452EF1515F8A649EBCA9437205A4E8A61606B41DAF6834D671F4D852C0C9C4096611648C6A3170678B1537CC1828D93580C9E5849A9653175ACB753F2BE7437BE45F6C603E485F2EC301BB42B6C37C225D7495A584AE231890AB5C8C35C268CF4BBB0213C096019319561A8A6947637AA40D006B415BB2CFA2237E0890B6A3BC134ABF8F6585E108D15940F91F4BF5B0C818055B21DEA6E63B553988C47F4B94E7CF800A493B4734705EDC56A4B6021C629500675876804CF0B951F038A5C7FE58E89774EF2992FD7C63099D352A7D21560B788B405709861817E59A96B3A3A83CBA803B16934331071905BBEC6532900155D8AC88CB32E4E21A3BD3A03FDEC325A51CD2773964E6784FCF1853737AA64EB67564727272661ABF84313A57A44B123C65509CFB7A6F6641CDCC3B57FE628C7B8192DB44FFBF5796A8613B1FA126F6076883C783DC24E2A4464C40B3A41CA70AE87620866CF4FCB2BD204BF5C283812BA056AC0C345E379C4BA24D750901279BB2F3A16F612BFADB35703332C7C136F68EAB6755C66B6A4AD1AABA7B768A58ACAACC10A459A1CC8EF29377BC200E4D315A30A6BCC3256F9734D06E9779CAA5442A9A16069081377C76E75154368072DC446ED6C8B8E622A21E383CF9BA1FB434E2ECC81E7B78CEE986B8FF798AB18CF9634543546284EDA2A26B47F05B735BCDB1202220076DC8B4E4B9F853533C8F6C7FF38817BA49712835785F17F14CA01D0C1C1E98810FE0B36E5B427157B9418449CEDD641A4293C85C32700102ACEC22EBAD98ED160A5F027BD4CDA57F1F3720A12C134654DD5E73F829676495390D0E7929D6034E9C55F7D55BA658BC587988E8AF94960F6CFB8D5AF7A0021535A6E25E437D49A780698BE22AC9953949F571B85A685725F8207A2B0AE849B601AB91B159B3DF4A154C2041E776070AFC42969322380917C97510799F3149131477E16663D3174C7C1CAEA788535C6C005A64F2868631B31B66E205FD38C1D84542D0F1B578F58C9BF5A0FAEAB6AB6494893053165EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B539228A39E87D531F3527C207EDCC1DB7FADDCF9628391879B335C707839A0DB051A8B505D7CFAD1B497499323C8686325E4792F267AAFA3F87CA60D01CB54F29202A +encap_coins = EB4A7C66EF4EBA2DDB38C88D8BC706B1D639002198172A7B1942ECA8F6C001BA +ct = E97436B18AE42096AE6237C8E56E1B777A9C4CAF1B20D1C40F230B45DC38F1A68013EEE84F6F5633C39E7A5548092A23B46220934C698A6DBC88149D8EE666D427E697CBF464DB1A41BBC86F1C2EF998E46E51B5D94D560109E7319AD2316FD4C2EEACFBC01DC54D8A47E33C66A82094465D1FB1C6B7BD9331BA1CE5AF1C28ADBD130FEB1C35768D388D58444700643E70262889CBFED51AD328D0E3724E63B60253445A75A96B0FBF5B580DE3D2ACE22802DF3F1B009404575745F2F7A75CAE5E1E5AD414AD363CB5DFA48F7C6ED3587278EF58EE98B144438EAA66E5CD0BA800FB9799FBF63DE47D9904039AF5722E3D7E0A3C08A0A4B62F3743E179101EDBA93B081C79ED9A065BFFF65AD71D8548EAF76ADD4C32E3BC4D6C7551FB604CEB62CCF94C8A4EE41E7362B3E66ACB86C250E61BDC8AF162F1A2D9B29403D4976C37179C9A4927CDD6BF1ACACFE4A645EB5A59919FEFF17D86F5DCC77ABC52F56E70C41197E9B8328726C3D20C9D3ACE0CBFA0A7F50C5DDB2F1507D590071B6F1D17CA84DEA7A5930DC5B70F37AD7F447447481D4F14EA2718DB1CD8E096011DD617ED56BD0B2D0AE8C51BB0FF1B052CDC9D09BC6A772FD75877F762E72E6FC39F9A8E9EBF1E3ADEFA1ED897BF81BC6751DB4D637918BAD74C6A9D5D5E5F6E512A08C3D8165B0DE8DDEDEBC5066C2C44FC5A0C97531C0EEEEFED4C5565BEE4B33DD782C7178E91F8AE7AC30B3E010EEB25F7D558F7C953602EEE903C22C2D657EB32624B1B8F854232AD6F19C298830E6A8F6FEBCA91AEC693A08BA4294D0461F55A5AD25965BC81547036121E28A20DE2E658B358B9D17EB065B0A2D1D3BB029BCEC85FCE555728FAB7A77BAA183F92FD4430DD3F1E099F23BA59E1C737A9F56BBD0236AFA079CD7D37A15E407D47B745C891364D7DB99887C4C2816875A3FCC3B4B9FA646F7819871692434FED5588BC5AA53C7B33A12D163B584F11FB07535A84AE9DACDE81D8FC77B1368CAE470797069FC7C782FA96A7FEC30BC6F0ED7D4934C00B09A629029CC17E1BC433B2C7CF35E7895908848E417C184655C8E708F803C47B3C8BA45CFEBB9BCBB933C6CB72CCFC4C27863B8F9E0FE9A2FDB186359315BE6B46B50D19900D6E890B9FC4A87B517B24909B72A1ADE60ED549E2ED500CB60FDC7642F782AFC33133E1811613049F4229C00CC734969BF673E2690C3AB63DD0E064B9D2CAE9BD218A03808D7A4ED92D1F39ECDE7F102E8D47701AFCA94C788D7FF101BF8EB022BD25CD6CD12B2710FB0EEE09E467692E6D14BAAE47C771E4D2B10927CBDE8994B023210CAE0EFDA65306B4B30C6619DFB8A7937852D92759AAE5625AE717A1608B486AE3F25CB46B78F3D04B3410B41CE829CA6C29B7E6806740F8E818A72F3C082E24782BF63D4C3FC17C011D9AE0FA2DBA4EAD828158FB40C15E0C252924B77979F8068DAD4F8EE7A7DA07306293B25E507791906692C431F23592FAA77F4F6F9F5023413E0E812DE0681372D09B07CAE884DEDBB8AC2B80347D3511E4CFCA50CD752A16593858DF1A2E6A52887D5A2F81E70E57C65FA2753478A285C3896F6272133FA40A88DDB04D7985EF70C35D7413DBD32F49478694C509F2C97D21822F20740A86DD7ABDF66D0E632A254056DF5E0E7F013BCB7DFF01E38F881CFF77F1EDD48612A2677B7D1E4E62D5A6196340E26151EEA29D8EBD9786E38721B09EC974E336F2437505EAC34DE0270C0780C6B3A89520475481409864797DA4B6ACBE848225E25C7265A4E3BE16EE8CD8A225D2FDF4C498BA35332A553FE4066D73E758653F51A8A08913E469907DA5E7BF068E4C18486D1BE273BB4C674491BFE27F94453F64048086C93AE7F96FF7505B57CF3EDAC0AA5DE3A6B06470266DBC8945E952A2A73BD7CF8524E8EA00E1D0631DCA8F658145910F7248BE8266D0F98EF7152A112F3762F7B5356161E756D7EA4FCEFD3CBC44D4E59DCDA05ACC37F90B44C62431EB7610E15375984892B769D9417FCD6781B434F4C59191A020DADD81F0928E11C010617087015A968A5EA8B52DF8BB1706BF4AC7839FA80D52CC05C499091977B29B4AEABB7B1974D1B3BC097B23F3977CB0DF44E1A20318B4642D7A67D330F45A6FA5DEB96D8DDB9EAE323E61371BB6BEF4C13771D53BFA33B40408C813D3F539A29C4CF99C1D273E8561E2C53B505436CC3C +ss = C9786ED936508E178D55A1208C590A10F25CFBFEB50BE4207395A8B2F8AA192E + +count = 1 +keypair_coins = D60B93492A1D8C1C7BA6FC0B733137F3406CEE8110A93F170E7A78658AF326D9588522D326E7F105F11C4E8D97E119E193AF42DC28409F4F7572ADA538B52C1F +pk = 05D918331371DE92C27A1A5ECE876015A959E96AAF3B1A60E9E77E46D51D9D85ABA374263BBC65AD78B2D5A53CB909682AA0BF37D49D172BB46A0271D30716CEA8AA095992DBB1132E81265A29435EF2C51DAA9F27FABF3A799813E67EFCA087AC12247B64CC0BA15A5486245DEC1648CBC7AAF40805115D78F6687C47C553D050F1E6821B368F98DA22F4AA7D738A81B298A81BC43E16C8CE1490147CA83D2DD98BB918300A26CB431C99A952471B84BF6118A4D5C0A898532CD277BB4443CD7B6924C3185CE55CADC7F877BE93306357AC71A67DDB4C545FE7301D339E933B81AC145988369FB7D31921A66403C587C165BFDD341011D19EE964B62E4C8CAD2B88E8DCCF3AC75CD3F835E2938D027C6789F54D0FBA176F9BB8DC7716CAC344684334C5704D5A54C932535739948ACC61BD67B581F75A2169A89A11076274B10563141722C9AA9A34BB28A69AD677292BE84455B24559CBBC0F347E7B36A45555A8336B8ADFA07E599633F5D1BB6ADCAF86AC9E7885039A3C1D308996AB6C966F017F8297009C9B4B573B70DA8921A0C256A9A03C0CD6A4F72C6EDB5630B1219C4A3C30D1F1586CD936E3437684AC60EFA62D0A345FBC4881B24372B5692C101195C66C3AD647CA04D37F91F813A7A6795B371A574565E14779772372CC4A79C40308EB1233ED643808E939F27571C72B2F719023E048C4D15C71B3E116482C413A816C6D3A3877F862559B4AFAF04DF9C62D02CB364AA2ADC64078B8BCBEFE043BD6F32FF62B9555FAB5C1009CFC102B9B4B88B8A93B66E3A65A62B184BB5406DCAE7B3AB6047754BD215251EBAF102356BA688095A8C9EB1A9D8771CF60E864B7B4A5588843922B6D4A7445476997A6E5620A528510439B02A4B0DE9C147BB14433DB144FC9AB4B4128F7291A637B7E609A7DE058A3B58A17501C833BE09143244CC7E2490EB01CD292454523CE413A6E8CBB67A464AEF43912B4559651258B9B812989093540DC8D202C652C71CCA1EAC46EAB3F9EC199EAE025B153348A600B0E373B7CF2620F5560A3C64C15EC85B5E81C0BCC4840466C63CB124CA45994BABC31F12486F3712D22B1F649A07B192A2451CFB079BA179C2B857C41C4F8842A916E06F9C6A07CC6A4D2821401A65060688713CED4BB72C08241AAD91B50BC1B968BCF3BDA76A8E1B20060975E8803DD7B762D9A49B988568CC575A6D34BCA13A0EF701B823296FF114EFEC9031D79A20F6C640D4519A1906183099926D44E88703DB7636E19394B2F65ABE9A8712C868697B46871D830BBC09AE02487E8D59537C3841D5B080F503AEA769B0335493B84B94C4A498B1A6E6ACB578201BCBAE6BAF0E960AA975D3F14B5179051D933C4109361F03461F265274F72416DF79D1187B6822A0C38177A02B4AFDD635324EB6737C11A631784916452C700D09AAC42EA2634ABC68BD3F41A2CA679546414DF2314D57C2B318BCB98D7B46FE1B5A7E3AF1B2047D193883CFBC6E7D29049FC9C97B344736A0A48082B0A145AA8776125558DF656718AF59964D42F0704318DB88D1E91B840690B96669C8851BDBEB6043F04C017B59B289BBF550A94D0ACA4AFF18CA84630A99B82711A661E8B202B976E65F53B5DB52B255A88692852E06BBA321B4DE782B5D951AB02EB27098813C98B0F7CCCB778B08704A068B4D48AFB30274C0759FC5BB86FA59FE61688296846B2481E18A05FB9C02931570596EC436F570C187159B25C1F6341163B79670F62334C6B9A7139044A8BBD2B5183E0F82D3B6666735A94478784AA6168D0D3272876B5476B64F7932F3AA4151CA9B604BC7FD5D1395C3708908015B0D2C8CF04858EB23238458F70F964687BB2137A0C75C06A868C3490166CF2BC3AFE9B3746E40C231B3638A3558974BFB0603CF4C28C21003DFE87B3EB959DFA715B78ECB71BF404CDB2B675160138A46501569918CB7DEEB0489A72A4799A1A4AC625D5C6021F51C357895CCBF26FB5AA372343BB1C516CEEA47683E5A4D094A3D5188270811751FB1E19D68EF637227E491CC6387760EB5A810B387F596AA20741C4627B1C13A303D160423BCE1E422D929C06F067ADB7D96112F1607D3C7E43E7AA09EA248526C6881901852123F1B734A8C1891261BAE6E7A23DD5296858B6F7813196F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D2 +sk = 94B49EA42526935245C45A7D580B6AEFF8BBE0F5342BB8BD2550212AD5935F45CBA7CAA6DF914007FBA79E9946C9433A86A2C4202BBDCEA008AF78975E6619D3582787530DBB7318A530B7B5A27D24258C7CCAAAF505CA92CB853A5818D4269BE812BECF169A05E71EB957557787C2F3B72315281DBA87476B157A06095A30D52B388AC22840755B43440A931DF8A709DC435B415A7BABBB04CCD93CDA00CA1FB090646B1D6514813368A794D38C907163B5917496B018C519B160C5144D6424495626E3A5AB9FFB8D8D3168D77599A88A1D12C07D86498D88DC1AF7FA7DE15073FD4B62801C1A902B215E7CC3EAC350BB63ADEAF9C7594844795A9A6274AA3ECA0CD10891F05795A77B30ADD76B6B1A35338B8156690CA2EA1C9C3B602B23324925314F726535B36DFB355225D37E7C85BE15A5976A8A6AD4E2C35D4C45ACC954368BA6DF88A47DBB8C782336F7EA507A6C2D26D952DC03B4BFB89872644084783AB493CD72D3BEFC2C803B692729638AF69B03E6DB9B82E678A42969FBE770FEF65723F77DA6437C20B203601C884A9B9E08C0B1DDBBC1A66517DCFC76B3F125F7795E5DDABEF0CB00119778575513E05AC38A7901A0E8C8794685C0F274050097BC50168818A74ABA5D71980F5C76279EC0214CD51EFA8A21391567FA052E6DC0CF9BF216CFF9287C80693645A53D71B3D7509F6A432D51B2B0AAD129B594278DA74FFACBB713357D735A744B7C65E482B7E172C67A5B4EDABAAE11222B8BB6B4564AB4FB20C28B4981614B69BB188DB6056607E089F64803D89210C7E604266B00548A2AE27996196A6D6F762C27B22731F7942543CCEF3856EDF9AD1B1B1652A33C3E038DD9B2CD9A4612CE174315E67B26DAC767E50E68508D104BBAE1A2B89B78266D27B109F90BCE1581A8B8888C90C1C4EA5FC1F009D5073780CB4545087C88026B9B9ABDDAB923DB52620713C8B5AC3301E8715AC39D13084926E841FAE41A7BBB7912E10680A78C0C363A251720B2D69467B6CAC5D894F862595072A7C9B14BFEFAA2FDCC75CC42892CEC6184B52962B9B73D663B7D76C1EA499D538BB45A4CAECEE0C8EB93BBA5EC1A8C936156382B10102E3211B2DC15663412805F60590EC33DBAB80D2A3BC05FA8AF5145644F712E004C20F799650159C40DC952C9A54C27E816C3A6A95EFBAB24A31F6C402300F9BAF88A46644B4DF8A24979E80DC30425B9E75A753A36510B87C5FA95CBF36E19A12245876003B54D4E008EF7AB9D83C5A2406014B5CC33B6167F4C452AF45084B7412EC19556D82B0A6A90C1AEA60A72312D8A7A8E5060189717094FF950AF2B503988964F0AA227C523487471D3BC905B6672BE20BC714729B7A71478B07A19F777DEC546C624723AF7B5F6C142274AC5652A7C2D7ABBF1171F2BDB12F1ECC876681A600806D6FC229E6A8F6424419187BD22E49B8F27486DB25371C169B3F61E81131B57659B1030A959790BA5D6424580B1F588326DB9CD01A260B21B8C42062B883854FB173EA7613764D41DD6B89468C7BA6C4236D1A0436B945B8B340983023139293FC48C07659B955453BBA07B0EB4E2A91F594232A47C65C66E1C5C8279F179925C55EE3A0B3F5423E20A8620572A687C2B64B6CECCB5944D07107648BA73A19FDF6BB3F57C5FA079536C675FF17A6DD22439C8D968F2E3136D3000DD70C5DB6AA212A63C9E16222BD39201D9B64534C87AAC3B53B357BBD522660CAA73B02AE4F45E1B9868ED45CBF8533720F99A1282338A107647ECC8008AB2FED262512A059AC6073264817E08332F9C8031C9913F2339169851D7B746AD9A8F2F54633D470C3376302250A3255687DEE61C2625AA9CDA852D835EC95C4348C9BE74473049ABADD65CA055239D85DCB11E6297E1667AE548664D6BB19B347288D57E3DE27369A52EA25150675507CD5282CC4875FD8C67BF29ACCBC296E26C4B4AC813877945DE0A52C355526E2404D1F262A2505DD542BF3DCCA6F0121A5A45B77B419094408F409261E3C25F90689A5680B146FC6B1B76099F6CAD427C6AC4281DB70B34CEC467AE35186D6195574935A1387C5DC795523257482A7210E1009F5337D773B2708C694359A517152168775695ACBA0735BE594C8390C760070C4912E37CE33B3BAD965205D918331371DE92C27A1A5ECE876015A959E96AAF3B1A60E9E77E46D51D9D85ABA374263BBC65AD78B2D5A53CB909682AA0BF37D49D172BB46A0271D30716CEA8AA095992DBB1132E81265A29435EF2C51DAA9F27FABF3A799813E67EFCA087AC12247B64CC0BA15A5486245DEC1648CBC7AAF40805115D78F6687C47C553D050F1E6821B368F98DA22F4AA7D738A81B298A81BC43E16C8CE1490147CA83D2DD98BB918300A26CB431C99A952471B84BF6118A4D5C0A898532CD277BB4443CD7B6924C3185CE55CADC7F877BE93306357AC71A67DDB4C545FE7301D339E933B81AC145988369FB7D31921A66403C587C165BFDD341011D19EE964B62E4C8CAD2B88E8DCCF3AC75CD3F835E2938D027C6789F54D0FBA176F9BB8DC7716CAC344684334C5704D5A54C932535739948ACC61BD67B581F75A2169A89A11076274B10563141722C9AA9A34BB28A69AD677292BE84455B24559CBBC0F347E7B36A45555A8336B8ADFA07E599633F5D1BB6ADCAF86AC9E7885039A3C1D308996AB6C966F017F8297009C9B4B573B70DA8921A0C256A9A03C0CD6A4F72C6EDB5630B1219C4A3C30D1F1586CD936E3437684AC60EFA62D0A345FBC4881B24372B5692C101195C66C3AD647CA04D37F91F813A7A6795B371A574565E14779772372CC4A79C40308EB1233ED643808E939F27571C72B2F719023E048C4D15C71B3E116482C413A816C6D3A3877F862559B4AFAF04DF9C62D02CB364AA2ADC64078B8BCBEFE043BD6F32FF62B9555FAB5C1009CFC102B9B4B88B8A93B66E3A65A62B184BB5406DCAE7B3AB6047754BD215251EBAF102356BA688095A8C9EB1A9D8771CF60E864B7B4A5588843922B6D4A7445476997A6E5620A528510439B02A4B0DE9C147BB14433DB144FC9AB4B4128F7291A637B7E609A7DE058A3B58A17501C833BE09143244CC7E2490EB01CD292454523CE413A6E8CBB67A464AEF43912B4559651258B9B812989093540DC8D202C652C71CCA1EAC46EAB3F9EC199EAE025B153348A600B0E373B7CF2620F5560A3C64C15EC85B5E81C0BCC4840466C63CB124CA45994BABC31F12486F3712D22B1F649A07B192A2451CFB079BA179C2B857C41C4F8842A916E06F9C6A07CC6A4D2821401A65060688713CED4BB72C08241AAD91B50BC1B968BCF3BDA76A8E1B20060975E8803DD7B762D9A49B988568CC575A6D34BCA13A0EF701B823296FF114EFEC9031D79A20F6C640D4519A1906183099926D44E88703DB7636E19394B2F65ABE9A8712C868697B46871D830BBC09AE02487E8D59537C3841D5B080F503AEA769B0335493B84B94C4A498B1A6E6ACB578201BCBAE6BAF0E960AA975D3F14B5179051D933C4109361F03461F265274F72416DF79D1187B6822A0C38177A02B4AFDD635324EB6737C11A631784916452C700D09AAC42EA2634ABC68BD3F41A2CA679546414DF2314D57C2B318BCB98D7B46FE1B5A7E3AF1B2047D193883CFBC6E7D29049FC9C97B344736A0A48082B0A145AA8776125558DF656718AF59964D42F0704318DB88D1E91B840690B96669C8851BDBEB6043F04C017B59B289BBF550A94D0ACA4AFF18CA84630A99B82711A661E8B202B976E65F53B5DB52B255A88692852E06BBA321B4DE782B5D951AB02EB27098813C98B0F7CCCB778B08704A068B4D48AFB30274C0759FC5BB86FA59FE61688296846B2481E18A05FB9C02931570596EC436F570C187159B25C1F6341163B79670F62334C6B9A7139044A8BBD2B5183E0F82D3B6666735A94478784AA6168D0D3272876B5476B64F7932F3AA4151CA9B604BC7FD5D1395C3708908015B0D2C8CF04858EB23238458F70F964687BB2137A0C75C06A868C3490166CF2BC3AFE9B3746E40C231B3638A3558974BFB0603CF4C28C21003DFE87B3EB959DFA715B78ECB71BF404CDB2B675160138A46501569918CB7DEEB0489A72A4799A1A4AC625D5C6021F51C357895CCBF26FB5AA372343BB1C516CEEA47683E5A4D094A3D5188270811751FB1E19D68EF637227E491CC6387760EB5A810B387F596AA20741C4627B1C13A303D160423BCE1E422D929C06F067ADB7D96112F1607D3C7E43E7AA09EA248526C6881901852123F1B734A8C1891261BAE6E7A23DD5296858B6F7813196F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D2C9EDE13BE3DBB0EDC3AB08226CAE11771FF4C0B04A564B64A0D9FF10E373E986588522D326E7F105F11C4E8D97E119E193AF42DC28409F4F7572ADA538B52C1F +encap_coins = 46401015603C5E2174CB94AC742E836B516E2D570F15DE0B9D0204D79AC64BA3 +ct = 1276F06F36F86947F8F10E4FB2F63BE3B13F1F3E3A96C4F810FAA0D820B07FBA4A5D418B2691D934AF1F821A272348BEBBDEFCC6CC9344BC6C5505AEF98EB37A41FAC305EC7C191C91AD3265658E541B34CC7EEA6696C7AC357B35D2FB7E0BB57B411282FE3B79B71DDF1AB42E744D51BE081B248B6FB0C6AD6878FE198C91B7C78E3232E42F49996CCB920581CBEBC9756EFC832C05080FCB71BA0BE859DE8377F5B832093F33693C1D8E607A12D40F4B03602AAE4099BD05FF4C5BE7BDEE8741CDD59E25C844A9067DCFD3366F8FAF4AC89129EC32FC1A5FBD20B95D4A0F323FAFC53FADA2932D34F851C607C88DE6C92FC78780CE5BA412E475A6DBCDEA8B8CBFF2310F8412FDF72208012EF26336B16230659DEA885C11954B74EADACDDCB6D17164A7929003D43CC6F097680F9D5B2972529D6510C9A4C9130C99C54EAB43DA8FB5CEF5F40A3023644F8B2A531ED24EDD54CB9F76217778020C20A295D882F0F9696EB494C8F991EA38ADA9D46656CD91594EED1CDD28B6786FA0315990CB7DAAE49B225A926834A3AE34A2FB02005A47760C54FA381639844A15581FF2A86B8DA283D9E4C0E21A4767F0B9AC32470201B86BFCE06A197EC4D23950B68378B0258C7F19EDCED084531F68DF5E9AA9D2BB4D4AF6A671195009ABC0B0DA114F3786CFF933E5728F9532D568247C5D1DDFF3701233AB5A134BFA7826EBEBC5F24D3895DB76DC8C013A6732D0A51E30140C6A7F49F40D13F29E10A34CF95859ABA2D20CE9084CA8DEC9294D06B4E5795BA201ECE827C9C4ED37D4507493ADE07DB8491609CDC0306E7B875F8FD1F0A6BE48A7F15D82835FC109E34808DBC5C891449B4CE87603B7CB12FCD07C418029DF6ACD554A32EC3137DC5B9E5885B564BDBEC8701459BE6D3B73FEDE068019C6932330040D14A55D75FDB37E0112584A703B5DA0DCAFC2ADFE6986AE68CC5B55E4D7E2DC04311970172D3E53DACF9A447F8821BC5167F32E366B207969846358AC96BA0E868AC8F9A6E835160F74944276954AF0BE30B4A8110F1B4DDB88013F1A35AB9209503D69DB6A39778BCF6878156B92009D26A9FF23C02890E7D2A16E214FCE7803F2E32708CA096B1DDC1480860393EFBEBC59FA6085693B39FDF5317C0EA18A26E7CD845E6741A880EFC99460D336F9F938CE6B56599598449B47FB423D80F5FB0C02C442179BCEEA85B3026B0463D357A8DB98F13D1E719F0E1827CA4FF7BE61B5E66EA5B271078A40379F3B29D05BBBCED270828E0637B8C7809626D23BEE768D5ACEA4DE9848297D377D7DAEA06C5A745F00C1E6A1450F6CD97F07D1F2602D1DC401583BAF44C42171A3AFBB4F94C1016C18DE7C4E07DBC58703CEA61098DB16BF2D67CA055AF49D70DB2C1AC963F74B25F2D51F80DB756F8F62FA41C8A43104BAF7631A543BD4F56B041018F0B33F6CF1F51848FC0D8DFC31A788E53CFBC482BB20EDEDB738BADA3C27D9FEC177FDB71D5529F2ED5C1ED014523D748715F11E70AA930CA871940F5750787F73948921BA6ECC7905329D6998A5F5C07AB7FB9C5AA07AE54BFC17FE6B158ACE8C788D9C4332284D8F890A000ACDE1BF60A84D7AF3F02FC7D81637A246CCAE1FF4A77AF37506B766ABCBDF778BF1A4E16465439EB49105857BC72EE4CC564CEB047590C232A8BF4EBF8F742DA193C3A2902A4D1729F6BC8A71EA2589327F4E0C3D98C51A5A5512DE34B6C6E0672EFD5B0368658665EAE3CD9D7AC2930C1841CECC4BE13495E130559DB9EB093718E29493390A32DEBD702E13BC5F7116A9DD004AEA74E7452D28EA6D5C88C38E0181AFB49DFCBF401FD0F1381F6112B4345D647E4730E4CF5AF6A60277225F06602176F20DF1B370E0F827B667FD69594DAAAE12B22FA059367C394155676D8D41A8A82E1218F7B8C6787B7965E46992A1BE6D3CE03D7286021A869982B068C4152CC3D5F36A33F30A3FE77E2550E5468D86BBA09793400E0188D4794D4484DE0DE598895B3543A9812C705C67848195CE62B734B90278DBAEB29DF0896A1A471E5F2D9D1356EDCAC79186011F1B4CC3891270A277C6F46B26079C857E0D40D1F65217DC458CDA9FC7694095A3279338CB0734CD5D58F696927BFA9D55F492AA551477D49BB0CAD7C77CD6EA21AA6230B7C33ABE8459409A120C2F41212779D4F06B11343C8BE8703CD57C03344F27429C +ss = 61C0B964C62EDA77CE295B1F7BADED362FE1CC1A0881D2C6F23FE99B091C5E95 + +count = 2 +keypair_coins = 4B622DE1350119C45A9F2E2EF3DC5DF50A759D138CDFBD64C81CC7CC2F513345D5A45A4CED06403C5557E87113CB30EA3DC2F39481734DE9E18BCBFBECC6719F +pk = 042B035F126C4FCA9E059972FE92C9F4B3755648B5B2B7784D55A62E9B101A7A059CDC2F3F4B8888FC3A56CBB1447673A406C78E9A045DF1BE84DA17EE2350B64C0D3BB63965328D16B3C446214C58731CE3C405D3D251AC560D0D9108E3BBB268C6931FC49D7B454594444DAE401B2FA3011BF3C697E67AD9C1540EA945ACE6C98D49321DBC36447858D783BCA93CA67132800672513E577D14607CC046AF9BCB4896F2BB39A0208405B3734505B239967EC72F8E8B0C2BF06228BACF834029DD123C83FA3F8F83892B504C1A11B809A9ACC494C5E5C79C18401A41A6AF6632C11266AE5821B3DC7C263E1B5E33A1A7BF172D6D142C79782E20EA38D6E791AD3B86517681CE389620562BDBA89898679EA0C748D90A963E738A3E9968F3648E984C99F0E04C952309111396D112523959B9BACCC43DF715DC94BA3253332ED27CCCF56F5812200E8C7E2A11AE02087E0FDC4389E98EB0BA5693CBB79680A6124074D3C998D911AE4E142296C0CA245719467402124574F8D271624315359C7842C761BD6057B92B4640A1703200CEDCACBFE0E475F7316CCEA74B74257E37C63035F04A880910BC042802332EE8B3C3612290C45793CFC5581B92236B74A4F3F4BACC9AC3DD563471838D11758DB06461061ACC84D99F29B858C339AB999031D470AA948665AEF9974DF5A2FDD93BCCB74762A0B7C2FAB58430942F900DE1C835C8B9CD42D521E54C434FC240ADD0B23CA1AAAB0581ED9A593487B95A16353C0C7ADABB285C85105A667AF674344C3666DA142049413973051268D94CEA41C3CC9682B791AE17F0696DF29F7F559375965F817A8D9A3297639017F5624F9DF1B259412F89A8C88A361940EC9C3045C4A78364E1E06FA95500F5EC0704A365F4698B2F26A7EE348806B74E1579C2A466CCEA209E515302493443F8BA9E32D04E03A7557380C7BFC83F191B84093C98AED14286F762D3B5513F996481D5445C7A7C931C1B9B52BD86E0B3943CB70A16C9EFABBF4C7C80F1F73438399FFB464E7E40B93B5108861576B3594966C40860F74CC58B9BACF51A5DB6AB2D4CA43D964FFD831130B21457A08AF7D8060F847E3695B8A7E8C9858A70D521908CE1C38C0713469C3D294A7FEDBC5C5446904DD76733E58F86693A7EC4AF944165DC9597392A6FC2068297D11C39D8648F550A7D157EC4B64C631A7BA7B94C6CD7083E21B149B484817A6F93E011A8E76931DA4921E08AA604756C0BB63F897AFDB8C6112A4CE21B2CC1935DC6B38B6C4473E2B0639266386CA988456AC843A1084C220B74F72B18199AB17AADF0960F50DB4DFC7BB3454A9B29E74B09C410362CB8A5516E0546A3B09356B520A303E284569B2DF6D263EAD36CE75C82F6D141BF7C3E5B87B3EEC630FA7A65A4C58676181916CC23E0C6A0339827571930BB65089376BA4BF60F4CA71D7090614F468732E60989298384A93849031A989488E144BE739A78E1C49CAC60AF115C55A6501F010C100DFABBB462B1B3B6469C8B0D8B91061BEA5DA74A28D17CBA84F04D2232076CC91C8BB21FBD558426F99B00E13525E37C23520698E0310C8A53C6B36192D82837BA0D3EE27B059B3E8FA1A315B64CA5159DE3D9BE0FA0352B511D1A803C79668479A1C3561A8EE6F7ACA9AB4C861554A5B81B5E6115C952B3239595B9782FEE01B869380FF09CBB5784811966B864D0414249B7DD0B53A762155170990911192E37C6C7263BE626084118266BF7271356BB66D35AEA64C5EA913DB432C3CAF989B0EC702139504FEA41FCC782808BBF26D3B12A962D2B1A142C755FD1ACBB802AC9B93713EE71AF9D4430F240C7FCAB059CB435A8373633417E79106A274882F5D40A4BD732C1E8202E41131497721792AC464B3B26A6456A9374A5520054E50CDB06A32B3973AA948A37E4798544020A7ACE817749CDAAAB1C7713B467A77593C034C20DE0A9C71C712D6529820A5B3BB4E76202080A5E5C7CA86BB78C392A39AA37A91B4E75B3C5F2E56211358CD5AA2781EBC548E21E5351209B7A7D871A782DA1306883A4B6B070A06B97639A3CA3273D1218A8000B7E85D6011000AD018527A25059C2CA252E5726629B0800B85FFE02745E9199A705D0CF4879719A53D33A95B2CCCB52C1C9655419543AA146241B98F4A4AC60E8CB68627382A145F91BE9D78FD51BA5E3FCBC3155B62BC07751DD +sk = 72408D44C2BE6E83C803DA2846D852DEC1848EE41504B5C91F774F6E512B51F71DD1520203C486F63240BAB4C1DBB212299753B8627F9BF2117CD6A83BE4075A385782AB804A420972EB25BC553EB981AAE7D7A715111338529F6116C10B10BBC20B31C3161D4BC1A5F050220B5584ABD6A546AB51A9A10120ECC131220502697E9D61BDBAD346FC43824135692204B49B5B377B870B7B28C86946077A215ACAA11ABD851ECA479988BC69CCC9975EB42A33523C525434BC594217912123957DCDC18E410A6D6A811BED8A0B4135B56F4562F343AAEC34396BB0556D7962679A76934B016B4B4BACC14650C55C3AEC9BC2E85B548B5D3EB891B6596F0C44009BD0982D98BF81AC77C8DA98264A719CD8568E48279DF9C8E9552B94AA773B43A70742C75F041915752551347F00447D72D934BEC553BF1014F4276015E0B4DB77CDF8C546AF05861804A5B7D92838744511AC6C8BE55E883ACB7775B98C4B4C9C8789AEE317F8F02B4127A6AE879D02C13772A003928041C53351D8D70CE59B14CAB5CA31D717F69129C8FABE46582CA5298ED156209C25BC57870EEA34255CE1B4C426211F957D74876DEC169C4C516C8716B3DDEC6C3E610C31F0C52E13650F0B1C70124DEE27111A76ABEF82C8FD3172D554121E6A87E9D3B58E11379CB812B7F4B95D46104934CE75C715771204D7C46AA9439836453BDA709CEF3BC1C9341994F25C48B5C80FCC8A67E316C431BD302B20904456B3283E9BA1BDDE494CE9F8A3F0B432DCA69D0BA9C43C703E1616272CD6B904D5B6279C55A539B7E46A601B28493E38A2CD9BA66D997C8C5C3B7631822C529FA48835F8A08F322615E96B9087C71C9F262B68851F00486489D25C92221C2759C89440CE733614B8C7A06F26B374CB4F8A6A7D67DA521EBA7232C0A4C066886B8450755896CFF77A369BC8FD4B3B5B0731452A908ACC68366B8EDBA66D09F212C9330C83990AB2DB7095D708B6C3589BF929FEA31534646537D2AB023887FC286F00F46F8A360476998E4FE7315F03C234929247BBA2A05297A5E01AA9CC6158458E2302513274A2E3359D66126F5FD44D348BA2B634642EA26C6CB616F64A2D2C819ABAA48BC565CA0AB67E6CFAB1129A0144C10A003B44BD3879B4E62E0AD3A58BD86A7030BE34309F3309642B017B0AA03FFAB4012B36ADC49A95DDBA67CD81306EF6BB20B546BCC55EAC2B815FB38BAE991D6AE7AA87D42ECBC740CC816A3EF42E9D204CA0177CDB30CDCB870386C320FF51B137578B029125BA518A5B887D7B9050DFF113468608F6335EA81A59B87CB753724ED0E159FA4709AC018A31194247A6A9C65443A35AC36E11BFA6A8559CF20E50116EE5FB3780FA03DCAA77846B18C04894E50486ACFC3B8FEABB8CF860D79C2734A700AB731739244580653699B51B7FC440B8CB1D6BB1360291BDA5B11AEDA3C77A25B40F96763A372512561E0D52848FD6A3A8241DEA49C4C24692CB43AA22067072FAC2DFF7898F298CBAE17F9CA68A132321932295161A1F31C178932004D17854D7D9C69F6640EE216747102280191A5695433763B6CF3B86756AAE22A37F9F6920C361C2AC68A7E11C8F5505AF2100651595BF93B2644DDC8D68053CDE98863922230F89371683BDDCA6BC63B8C61FF4932A0885213234D5004EE9223745117EBABC5E149A5184A69836C69670E81EBB94C5ABB711ABF91FE3970F805B9ED7D1648361153B2911C7E20186F90907F28602672CD6C383EB373375924E832A156241BC7C5B231D74C49430C1D5FB7DBE49C6F7E20BAF245D43C9B356A1BE2A63BA24D4757DFA960EA61A65611CDDACA48D7AA88402B0FBE16279445C8E663DB1D8CA70DCAE63C120DF1C9BDA547272C396C29CC93F0C3F002642B9D18BA0B87198140C93B55965F8C15712319EC6A95B384182618E08F134DEC88732407DE7AB934555AF4F267051E221C4D3A0471BC6E3166BC24270EFC54B5F9358D83833C295B1A5791C6BCB0610FA33D49A70232488B27150F74CB99F3643D5C6ACABF5C18166CBB5BA55B4B78400E0BCB7205EA5591DF6F803C464C549729FAA7C9B75985088C8CFF068890425CBA4A2AA617C7D416B77E6C618D3F9112F3B9546A99090A1A499DC613323C0770923A917B2AEAC15AAF9A7042B035F126C4FCA9E059972FE92C9F4B3755648B5B2B7784D55A62E9B101A7A059CDC2F3F4B8888FC3A56CBB1447673A406C78E9A045DF1BE84DA17EE2350B64C0D3BB63965328D16B3C446214C58731CE3C405D3D251AC560D0D9108E3BBB268C6931FC49D7B454594444DAE401B2FA3011BF3C697E67AD9C1540EA945ACE6C98D49321DBC36447858D783BCA93CA67132800672513E577D14607CC046AF9BCB4896F2BB39A0208405B3734505B239967EC72F8E8B0C2BF06228BACF834029DD123C83FA3F8F83892B504C1A11B809A9ACC494C5E5C79C18401A41A6AF6632C11266AE5821B3DC7C263E1B5E33A1A7BF172D6D142C79782E20EA38D6E791AD3B86517681CE389620562BDBA89898679EA0C748D90A963E738A3E9968F3648E984C99F0E04C952309111396D112523959B9BACCC43DF715DC94BA3253332ED27CCCF56F5812200E8C7E2A11AE02087E0FDC4389E98EB0BA5693CBB79680A6124074D3C998D911AE4E142296C0CA245719467402124574F8D271624315359C7842C761BD6057B92B4640A1703200CEDCACBFE0E475F7316CCEA74B74257E37C63035F04A880910BC042802332EE8B3C3612290C45793CFC5581B92236B74A4F3F4BACC9AC3DD563471838D11758DB06461061ACC84D99F29B858C339AB999031D470AA948665AEF9974DF5A2FDD93BCCB74762A0B7C2FAB58430942F900DE1C835C8B9CD42D521E54C434FC240ADD0B23CA1AAAB0581ED9A593487B95A16353C0C7ADABB285C85105A667AF674344C3666DA142049413973051268D94CEA41C3CC9682B791AE17F0696DF29F7F559375965F817A8D9A3297639017F5624F9DF1B259412F89A8C88A361940EC9C3045C4A78364E1E06FA95500F5EC0704A365F4698B2F26A7EE348806B74E1579C2A466CCEA209E515302493443F8BA9E32D04E03A7557380C7BFC83F191B84093C98AED14286F762D3B5513F996481D5445C7A7C931C1B9B52BD86E0B3943CB70A16C9EFABBF4C7C80F1F73438399FFB464E7E40B93B5108861576B3594966C40860F74CC58B9BACF51A5DB6AB2D4CA43D964FFD831130B21457A08AF7D8060F847E3695B8A7E8C9858A70D521908CE1C38C0713469C3D294A7FEDBC5C5446904DD76733E58F86693A7EC4AF944165DC9597392A6FC2068297D11C39D8648F550A7D157EC4B64C631A7BA7B94C6CD7083E21B149B484817A6F93E011A8E76931DA4921E08AA604756C0BB63F897AFDB8C6112A4CE21B2CC1935DC6B38B6C4473E2B0639266386CA988456AC843A1084C220B74F72B18199AB17AADF0960F50DB4DFC7BB3454A9B29E74B09C410362CB8A5516E0546A3B09356B520A303E284569B2DF6D263EAD36CE75C82F6D141BF7C3E5B87B3EEC630FA7A65A4C58676181916CC23E0C6A0339827571930BB65089376BA4BF60F4CA71D7090614F468732E60989298384A93849031A989488E144BE739A78E1C49CAC60AF115C55A6501F010C100DFABBB462B1B3B6469C8B0D8B91061BEA5DA74A28D17CBA84F04D2232076CC91C8BB21FBD558426F99B00E13525E37C23520698E0310C8A53C6B36192D82837BA0D3EE27B059B3E8FA1A315B64CA5159DE3D9BE0FA0352B511D1A803C79668479A1C3561A8EE6F7ACA9AB4C861554A5B81B5E6115C952B3239595B9782FEE01B869380FF09CBB5784811966B864D0414249B7DD0B53A762155170990911192E37C6C7263BE626084118266BF7271356BB66D35AEA64C5EA913DB432C3CAF989B0EC702139504FEA41FCC782808BBF26D3B12A962D2B1A142C755FD1ACBB802AC9B93713EE71AF9D4430F240C7FCAB059CB435A8373633417E79106A274882F5D40A4BD732C1E8202E41131497721792AC464B3B26A6456A9374A5520054E50CDB06A32B3973AA948A37E4798544020A7ACE817749CDAAAB1C7713B467A77593C034C20DE0A9C71C712D6529820A5B3BB4E76202080A5E5C7CA86BB78C392A39AA37A91B4E75B3C5F2E56211358CD5AA2781EBC548E21E5351209B7A7D871A782DA1306883A4B6B070A06B97639A3CA3273D1218A8000B7E85D6011000AD018527A25059C2CA252E5726629B0800B85FFE02745E9199A705D0CF4879719A53D33A95B2CCCB52C1C9655419543AA146241B98F4A4AC60E8CB68627382A145F91BE9D78FD51BA5E3FCBC3155B62BC07751DDFF2546623AEE72025FB6746FBA736BAE0E80E257E66EDBF09D8D4DC11049CDA4D5A45A4CED06403C5557E87113CB30EA3DC2F39481734DE9E18BCBFBECC6719F +encap_coins = 8DDCC956A19E14E33DD2F1FCC4E6AA816F299F76CBF95B962A0535A7E2949405 +ct = 0DDCDD68A34B34A666EB297D9F9259EB8E3FCE3B7964876A5F354FFEED4DE32A2DD457593E6F0EAA534FA2E68C8125AA5E4C09D839E78159EF13966DAD156A2AB9444ECACBDCB348835620C2E80D81256C4619043B0BBF6BEE419258030FA3B463ECCF9BC23EEB67A73A2396470AD20DFF505967900B3FE974367C7246F476A48E6522BE323BF771AB89D32C6D4FBB2300119D2B3E43984DA319D9BA1F050C1577DE172CE85E2FC98C4D9EC4D802ECCC048E9B1C7A213E7D1E9A09FF4F35218B61BC92174C9B4CC191720A131DE64B513236366565964679D1635FAB23FCD817521A36648B42F3A3CB394C924DE3F14662EB0961F7CF12EFDC22FFACDEBBCD62C7DE22F24F73921F2DDBBA0DB616006C5EAEEAE5CDB3B4EBCA338C2621C9A4DB8E1B1250D171D13A9DA93C7878CF2517355100B80A72F4DA457E6253EE9D085AB7BE0B6DD7D12BE1BD86EC629B7E60AC3A71875B673560B011C60720FE146D1492984248E61FA0F0F3E4B9099D6343A76FCA59D1DDBB426BA5E277C97D5C46F9968731F4761B59BA38A023B91C6E771F0058A6ECB13C14D1B95687B47A93AB305921AAA72E6B1BAAA5A3DDE766A7B9B116B88FD0D2E31446893D4667FECD0C25DA881ADF8811E9A8C300C94FF8B419A17855B737534B154D298835E829FCA34560BA1482D68F27E7E4CE40C19EAAE8A1247B36434C7A14D776CF5F929695A55F1018034CD795D701D1F3F1917F359890456101C8E758C67B84405947801E311A5A1705A7AA8EF2089A236430C6730EFD3395C999D55611F2AE8C56463935F72396D0AD6D49C7712AFA679C6D71AA5BF4CEF2C865BD1B920C31FC16A743E2E2807EA78C4C1D5E09AB49DE05AA87D3E7FBF4B512DB647F949D7CF5C10E18C48CBC3D1BB0C8E3B2B27E80077FAB90E9976FA3472F2C0179A87E45F64F8223B33ABF972068ECF7ADA788FEE490139C6F685C36B1993BBC7A12D0017EB642E199FED12264A89F94DAA5DE2583E5898430FEA6E7CDB7395824D65F5452EA2A470877E141D1F6148D2ED28919BD7F275886EB5FDF3855AC8604E985A865033163FD0F61A579323066460974DD8F8CEC396F1BA579CA523C9F814A178975B2E0C70913C5B5C3392DD4958BF67A7F466192D044FF4A6291E7172299F3B9494D7DA50B0198DB8AB21487401A9640E48757440C322F4A235E3D3FF9846BA911B568350C20B5308039AFA850F04494A58231957DEEF483E485F6F6DD37F52131FCEE2438FA80E141784EFF9520AAAE8311469EA27492F9421C2781D1F096081145F97CB7A813A5C9AADB76BCC178871EEEABF3A658C68A02534762009AD533DE6AF1726E8578214E035FFEC6605A4C587AC061C4B81FF493D60B75229E2C024C181384BA5995618AE9BEECD1F4E94BCF060BCD4EEEBEB535E26E0141A785C5DAB6C047AB23202A21B56A79473C230C6AB9B36B1840B40587F963ED7EF46239DDC5F003C96415152AF5E3A46884AFCF183F27103E4A6A5A4EB273450BA934BEB9C72689420DD4AD3E306F952F8400529B46F12A29C38802EE932622947796EC09B1C28B057B6CF12EDB8204FFDB6FFD1238CCE6214841B7E04FA46F73FDD356B648953E1288EC3166CF145121877ECD8F57FF7A76FD03E377A04609F020796F2FEA1A8D917532308A62CA6921AD03CE267AF4E6C4B5857FC60607CF42A2BE6D63A20FDA2E9FCA66B175B464AF1A09F68403A7BDAC01475B523EE2F91E70C6BD4719CA63B13B990251688F4E4B39582BE9832176085DE767C194B9D0C95024535C4C36A01C774ACE431F2998212CF6FDCC5B632E95A34276AED6C98AFCEAE7B96CDE0B8822D44A1E0DFDC9BF40C774937F32D5EBF208924B68338C3675FC140F34DFD99E193747A8BAB6354CE413A4E652E79C802061B60A4959BCD9A268F82B852EEC21DDFAA39C20DDEF25B8602600D09B17DFB4DD768FD6241BF46A1BE86E7D10939C8CD23F19D4BF6D3D33C1C1291AA7EE91A7B99400D8DA00A2BCABFD54F2A1B463960E6361C732AEE30EBA5A45FF66142E101E749469E1C26322885B66A6F6B9BE4F817A8D150B9CB834ABA3280ECB20093B84A19E5D22EF99EF5D96949F5A3B27EB9E8FF91D104927B917862D632EFB9DE27DD4EC0AFE7A1ED2CA0F13274DCABE72ADED7049B1ECD5C6DD9DD5C5C18B26BDB525FF6B754F4D32C3583AF38310B90C17E7 +ss = C9F4BD5CBDF81A71F183C9C61DBAA1EE7D92FF3937F742A8ECB0F83268654FCF + +count = 3 +keypair_coins = 050D58F9F757EDC1E8180E3808B806F5BBB3586DB3470B069826D1BB9A4EFC2C3E0351BDC8A2DAF0258645C383021DF33FE59B553A8270C1B7A4D0AF155999B8 +pk = AEA72A5C370048E5B9F9E7825145A2D726AD12746E980AAD5AC63B4CF86295195029F58987730D4BECC9DE18019E5142F94984FD0A6D84A8930BEC6D96D413BBE97B14138E95E05CB05345C86B96AEC66BABAB7CB8A2AD8F774086918795C39E95EA3E40384EDFB1AD3AEB931419C1219286390B9CD2154348BA19CEB280C537353B701976236414F21939968190892001D10F8EA83CA16803D2AC4CC5A96CDEE3A424C935B673732B312AA1D722F303BBD5175ED83087CF856C15364958B678E74B3618CABF82CA58BEFA00C6462B3C963EDB4A4B509792F890B228C7CA68082A8F38C388839190942FE3BA6224C4C58FEC51ECD52D044400F8EAC86CFA6904AA99F47712FF29C3F73B02D2127F1C687A00E2C48BC032CAD5B261B94FA44649C5B459FCD18D4014C34A3978F6CA6B9D667E5D93B87FEAB5C6F36472492B1DFC74CC9430D1818C0CC90DC947B01D33CB0C086849F81B570A407E5248A3527AB58074EE52313E678FD5876DCE81860B4B06F22768E3E26A3AD450DA516224E06BFEE2235F8631F2F7697E3638D3911BEA2BB486667336E4072C061180A886E45144FB266643AB524AB95BAED92C1324045C7768465CC177A6543376BE40E132E702318BA52EB10837F0BBBC64E10B5079A24564BB950915701A06BAD9CF1F0662C63BCC1BA31985149C2CF79BEFB710528B3F3A1406869872BE1C59BC011294CA50837852F6567F6CBA9B5ED028BDA8AA4FF26AF2A4AE90EB03C65A7F03C61BAA3008480B8A006C29D6A2B52E2278659AC2FAA877422A3E0809736B576564D800F5287C5A73C27A9C1E1748B159DBCBE9F566CFB05FE76419C84321B8FB772597262D2B48F9C43BFD2A110BCC93AAE57531C68BB222CCFF36B2E8466FCCEB237BDBC336E855755B25EB4784ADE55CD54B644F6404B549A2103B31A0433363337EE7E520DB9A8929F607368A090FC77AFF437020109001B40DE05035394A7032524CD8395916BC2FE12A7B9FA2A4FF93000CFB3077C23105AC40ED0162D8FA6E22A37F9670A4C686A93E556AD82509DB3AA2074A47BD9605184A9A1F82BCDD033116E046CE58A9E639C8B506CB5C17129B3079FA96CB625115EA887C11A7AA7484C03ECB793A07ADADCC25E2E876FC31766EF11379738A8BBACFD46C5D53F7091E6AB6108356D8EBCB45E6BA20D36D10B1AED4C2701F6B9924BCABA7934919C2A64D340C8E9A42A98001E75B09D902714BC47252B9B15C2A08F2345B78B97077BC989C662560E94F551C3AA7834830761DBEE93D343A4089C8775EC85091DC1CCCF91BDF30620CC3B92C6A25CF147385D1C60A5886CFB6BEE5F30BDE74C579689251199EA26A15A9388CCA30AD565A83CE397E07A8665B0A9286D223402059A8238137306FDBBBC2F6E4C6707534559ACFB4628F803250ED8C4ECF846D8AABCA027B9471E4308D727987A49FDB68A11869ADF57A6F786043243608810A6353C36CFFD18E1CE8BF25512A04378E8DD7A01B5C2B563902288624C25C06EA881FEA70390A039B82E162F61BA6C484BD09B703A4812535427A8843B41C405C7CA0ABB8E17EF4C82589945E9BEC2BBF348DA0219160E50C54D965AAAA4A628079EEA53898778331649A8851732618BF307491FEFCCC7074CA2A7A56F04309E39272B74A30E526A6DB5C3FFAC70CE46363FE596AD5C377C7F2464DBA68D42851F6F70D4B8A0B0CD52D75C48A9CD31ED8F270B36B69244237F9DA28E6B0512676145677B418309D1B491CD9CC1DEFD06CDF9C182EF4B33610B257D68CE0B12A3F024AE0F0113AD538ECE90B4A3B85BDD99C495B0FAD7780FA1804953041F643183BD7083C5969255406F1346B3A25C96BB7B1568C5BF5686B63EBB0AB9A331EA6A5172543D80A0B153C8B8147676A212E6ED13687941132010A83457CA155888946C8BD8506E6301F1BB78CD9A0C4ECB73EAFCB2FB7B02171885B6968AB52B89109BB2941E10683F30591C322261155D0DC7B0B1821EEB75ABEF6023ED67E16E0BA40C78109B45CD03BBE2C800FE4B19DB4A960B3D11A45392C6B088CC6CC5D8DE1275F035357D3A847313EDA8C1C0A65C27A743A000063AC6A89754818EF7991469A39F39536A7B70964B33D25F01B7AD9CC4FEA6546F82C3648751E2B41AC410E764255782D978970256C691434F939B02C14F42B1874087EA68917C2F3E31315E22581 +sk = 548A01803A231CA63843872ABF16B2C4B9AB7407A093B354F8882C6775BACF2931DE0A501C5A7EA7EA5C3BAA067290B9FCA059D69CC6DE9B772CC058470544B64B11ABB77F490746384B83283740F0702E17D046759B61E75030F187C2283045B22B4F9E222CA44980DCD0A42E5704504BB3E097CDF93A99F057AB21E3AC305666710C3B4C1B750AA3AC0F00A6F592770D8082F6157ADDB170A956456C7616C856657835970578B35FA87D8F79C2AE54AD36823C6A13A4207453FF324F17D13D43A400A2102B6F6224E6F2132BB14A32FA3F10A446D7944428B66E0E0A04B204C5993C03C294927C60540F836572793C8825376332B64D109BB7273147A878FF0B0BD2808B62104515D0824C90A4E249B4EC8C0F6B572BB621B7A74089DE4B49EAC5A3CFB61A5D6B420779A29E1C5AE98AB30E01A0B45538C9A14CE61C4DFFA27A4E462757A3BDF00C0206C5BF5233132C47B7111771DAAC633E22132AE82CBD616EC92B4E9D1C88E7285B84D9A12E14897A020C06832E9CAB42102AB999838A93A77141D12FF068AC13DC4C685328C7036CCFC2087BD92CA5A675CFE40AE4C32B28EB770DA04234A456EB889EF92A93A0D3ADA8061599D99CD8A96880A2B5E440766A9C81E7A24F14C295283C333A0576B49C569C99450F8714160C4CC49828090BC2CA390094E14BD6A3011A5C038F0927FB4BAD38440EA9F96FEE99141C564A91F9C86DC72498F89D05B047461699FBBA62EC28698E273E2B8436A6EB8C9C094D3404853A45137881C691352F6240ABD2298488299331CC03B1A3106F242D2871525587888E448D0F45A61480BD7E377DD5B63E143093FCC8BDAA563264BAA458649CE7FA5826E4B9B49159E7541D432143C5093A2A5BC5B835535FE7395EC556BD467A10975CE26304BB892D056A6EA4C5CE08D033E9334CF7F6750CB62209BA21F6B147AC875C3F1195D9D991E333C7C25465176B8A566A71451B8305F35D831A36C57C64B664C707F3BF08B54FF3847F1EF0AC4B32BA7D563AF40228B2957B8A95063A65BAFAF86609B4BFE1127C029C2EB224465E1C178C74CB5DB4C0C2AA46456761EC4A528AB2BB8F92C120A1B78A9517A29C8EE408AE7FAB4FDFB1941CBBAE4C3630F407A2C23C4D10A58A8E64546727153D61766D0242C5132236F637B7323905F4A7811C1B8019A808946C11A54F8CA6C16E06AD9A685EDB094616A80383A79E482C611760C249988547194266000722743346D13C80F72117C25CBB48490E05789C6A5E85ECBFBC73669F249C10A12ECA037DFD15994CBC450EB40868ABC2FEA05B5058429B6B04DCE2C4E2630A13DBA2BEC9BE9C30B9F90B45A97040A1F227200CCB4A4413C8B0C5B169830D451BC7993EB3D5B4D914A02C3183B7423D61101B0E3AC0A2A18673126F69511F27EC55E28B975E22A8CE800C37473CAC71788A42CD39C26C176C9C255C4355A62C0B84CDA33819A1AB6C07BBC4F2847AA23A600829CD516485DFF565DE9C392791B84BDB4580326F5128556D160100622AFFA2756E1CBD0A0A1F217A0C198A6DC043B1C50813BCFB3C2488A5C02C79393B65F39990B610274FA77B814BA93784562E0794C179549EA0927D9B4A9E2C128A339F73E3B9D3A99A151C873C555F5E3C3FD4A59823666E2BBB92E7522098240DEA1B35FE2B13E103A020E504DCC1BAB6B44B3D862C35C76F29D2BAE150A5959B200563536FF6CEC04A3B4E82C04788977F25A6D80C7807404C47A4697B1A6ED8C903D9B71AC45962D8D4CF7B71B0F54760A4799E76312D805A9B6E508F47734619E57C9DDC93FE345818615940386951A61D83248DB78B669F596C2F652B92F18F51442B23A20682A34A08CC356785B20806952003354AC7BA31A355346CA63CE8030A022FFEC604593496F05624E5AA41D5FA61E4E07B76A079BD4079E645435E5058A8148BC8FC8083162B38757637B72875C6A323F2BF01C95D89DC0DD6BB6A3B800DF3D42481170510E6A94EB57C3DC1B6232446459625B6F93932BA11C3B2A8B9C6A203B129ECE1A76F5C067E4B3BFFCA18BE65A3B15AC638538C5EF51CD313B1C65A08E2492037B924C09B8536134F09733F5C2966588307EF8ACA7A6CC5B9C27C86BAC9F9754E6772096FF68B706CCFADD711D50B4A0ED155AEA72A5C370048E5B9F9E7825145A2D726AD12746E980AAD5AC63B4CF86295195029F58987730D4BECC9DE18019E5142F94984FD0A6D84A8930BEC6D96D413BBE97B14138E95E05CB05345C86B96AEC66BABAB7CB8A2AD8F774086918795C39E95EA3E40384EDFB1AD3AEB931419C1219286390B9CD2154348BA19CEB280C537353B701976236414F21939968190892001D10F8EA83CA16803D2AC4CC5A96CDEE3A424C935B673732B312AA1D722F303BBD5175ED83087CF856C15364958B678E74B3618CABF82CA58BEFA00C6462B3C963EDB4A4B509792F890B228C7CA68082A8F38C388839190942FE3BA6224C4C58FEC51ECD52D044400F8EAC86CFA6904AA99F47712FF29C3F73B02D2127F1C687A00E2C48BC032CAD5B261B94FA44649C5B459FCD18D4014C34A3978F6CA6B9D667E5D93B87FEAB5C6F36472492B1DFC74CC9430D1818C0CC90DC947B01D33CB0C086849F81B570A407E5248A3527AB58074EE52313E678FD5876DCE81860B4B06F22768E3E26A3AD450DA516224E06BFEE2235F8631F2F7697E3638D3911BEA2BB486667336E4072C061180A886E45144FB266643AB524AB95BAED92C1324045C7768465CC177A6543376BE40E132E702318BA52EB10837F0BBBC64E10B5079A24564BB950915701A06BAD9CF1F0662C63BCC1BA31985149C2CF79BEFB710528B3F3A1406869872BE1C59BC011294CA50837852F6567F6CBA9B5ED028BDA8AA4FF26AF2A4AE90EB03C65A7F03C61BAA3008480B8A006C29D6A2B52E2278659AC2FAA877422A3E0809736B576564D800F5287C5A73C27A9C1E1748B159DBCBE9F566CFB05FE76419C84321B8FB772597262D2B48F9C43BFD2A110BCC93AAE57531C68BB222CCFF36B2E8466FCCEB237BDBC336E855755B25EB4784ADE55CD54B644F6404B549A2103B31A0433363337EE7E520DB9A8929F607368A090FC77AFF437020109001B40DE05035394A7032524CD8395916BC2FE12A7B9FA2A4FF93000CFB3077C23105AC40ED0162D8FA6E22A37F9670A4C686A93E556AD82509DB3AA2074A47BD9605184A9A1F82BCDD033116E046CE58A9E639C8B506CB5C17129B3079FA96CB625115EA887C11A7AA7484C03ECB793A07ADADCC25E2E876FC31766EF11379738A8BBACFD46C5D53F7091E6AB6108356D8EBCB45E6BA20D36D10B1AED4C2701F6B9924BCABA7934919C2A64D340C8E9A42A98001E75B09D902714BC47252B9B15C2A08F2345B78B97077BC989C662560E94F551C3AA7834830761DBEE93D343A4089C8775EC85091DC1CCCF91BDF30620CC3B92C6A25CF147385D1C60A5886CFB6BEE5F30BDE74C579689251199EA26A15A9388CCA30AD565A83CE397E07A8665B0A9286D223402059A8238137306FDBBBC2F6E4C6707534559ACFB4628F803250ED8C4ECF846D8AABCA027B9471E4308D727987A49FDB68A11869ADF57A6F786043243608810A6353C36CFFD18E1CE8BF25512A04378E8DD7A01B5C2B563902288624C25C06EA881FEA70390A039B82E162F61BA6C484BD09B703A4812535427A8843B41C405C7CA0ABB8E17EF4C82589945E9BEC2BBF348DA0219160E50C54D965AAAA4A628079EEA53898778331649A8851732618BF307491FEFCCC7074CA2A7A56F04309E39272B74A30E526A6DB5C3FFAC70CE46363FE596AD5C377C7F2464DBA68D42851F6F70D4B8A0B0CD52D75C48A9CD31ED8F270B36B69244237F9DA28E6B0512676145677B418309D1B491CD9CC1DEFD06CDF9C182EF4B33610B257D68CE0B12A3F024AE0F0113AD538ECE90B4A3B85BDD99C495B0FAD7780FA1804953041F643183BD7083C5969255406F1346B3A25C96BB7B1568C5BF5686B63EBB0AB9A331EA6A5172543D80A0B153C8B8147676A212E6ED13687941132010A83457CA155888946C8BD8506E6301F1BB78CD9A0C4ECB73EAFCB2FB7B02171885B6968AB52B89109BB2941E10683F30591C322261155D0DC7B0B1821EEB75ABEF6023ED67E16E0BA40C78109B45CD03BBE2C800FE4B19DB4A960B3D11A45392C6B088CC6CC5D8DE1275F035357D3A847313EDA8C1C0A65C27A743A000063AC6A89754818EF7991469A39F39536A7B70964B33D25F01B7AD9CC4FEA6546F82C3648751E2B41AC410E764255782D978970256C691434F939B02C14F42B1874087EA68917C2F3E31315E2258125B786A67DE17D61B2FC0E85A13924398AAB931896B6174089569F08B72606873E0351BDC8A2DAF0258645C383021DF33FE59B553A8270C1B7A4D0AF155999B8 +encap_coins = DED872C12331243854D57FB85475E4A45D85378AA15CC73DBAA11D6C3EA9A080 +ct = 3F3317F9B1C767EE2F631A8BB4F7F01010F885AA6B8C412713EB7B0ED48D81CA96E62B5C162485E7ACD066607E3D6A37127C0A3DF961CEDCE0F7BB49EEAD12EE11919472AECBD9C3C167ACEF3EE135FAA45E40D33F47104B082180F94B85B3C0AB86AE6E10A97541DF8F362FF66801B477392F2D78B1ACC519D31BFAB11C21D36187C39C46A8BC2B2196FE95350BC5EDAC1819428C4E735E34ADCE49088D5046FA15AE709AFF31A733038EBDC1914045F16502F8587A2FDA187C9CAFC92EC7FDB0C8EE1EC9CB8A616F90FEF097DB7B1D5C35BAD93F62190540FA15991AB42D0B7C3FE266D79303880D3F2C382D1BFF5559A6F68EC9981749F3EE0D67EB9EED54DCD99D3156ADFB361AF47954B49EA38C8E715A53C68D71C17416F8FE9B14A1E9E7EF55F46436849AF9A1571E87A4609E2835DEA2B4A7CF82522C167AF200A3E187F89AD8E69840BBE19A8D9394F3E638343718D09F3BFF4E24341216F3CAD92EF6D65CF8F48DB4ACC1E13B3778559A660CAE9541463F883E0048A2B18981F2BC9EC86AD2DFCF8C2248A929FED447DF0835E748FE7D0E69E4D49CBD510D083C8D70EB68CD6FCA5FDFC6BD5688AD17191B815D2BB2A06C7713B8DA670FD6675FFAA8771D3A0E035C5DEAA955C7B8F7E39CF670490BBE72DAC17932584057786F00795C7B908799FBBF17375113B84FFC5542DB4FDFD00981455C9C93B6FF5F369DE70E17B1E80AFC245BAA313E59391727FD1AA6AAA1E64860DE445826EFA8FA57BAE252F2990178A3695BE39CE09F2B423CF5B9F53EC07E9AD18A61F68625EA0CB1150DF22FE0A1BCAF1681F8023BD2E1C27984034E928E3C1AA21BFEE82D581EB2022EAD3224417476CCEFEE2E0DD2932D76051C510CC498A814E1E7E3C6C77BA34D1A8A229CFAB7614D45E65972323EDA7244DB5955E0F728C1C1285C20FE1BF8C76215D1FC0754E5B063ACDDC9C7870D3B044810A31DD8A23F7608FDF48016414CCBA5776A023969665B2675B33EBCD5B9AB661462EEAAEC9F3E0F7F399511CF1D684EDD9C312DC777D678323B189FF98F4EBAE434AC69AF4F2BDF90F3F4974489BA9A3510B059F5CBC38332F8CFE0A98928204260B736ECCCF1B50A2A9F915B25EFB06A27F3276E33F7858160CA33999E6638F14C7D0A5A535E55FA5BF80ECD0FBB044E2C0CE30B0F4D0C06930786C304685AD00DD5D422BA123B537EE799460377778F813F21295E4978F6B64C36CB733A25D2DE3A181D557F782AD0F4603513038B270BF2F2ADFCDDFC0522C199881DA5B71DD457849F21A74CA9178150E44CD1392206A6232EB4DB3E427DE11C5CAA60C58F64C0DB07A6451FA0581B26FACDF6D8918C4355D5F4B2DEEABAB6BE897580A967C0EF27CDE70A41CA0193F44C7ECD4CDD5CD742DDC5517F42C5B75202E40A4A64FAD0FDBA9ED1408706AB8A10D05C58D03DBC32F288FEED057DDD7F9903530B2FFA32CBA6A53E65BDDB95E2C5002F395F24B753CF1141C5E1BC6AB7D059EEE85FC55951F5DDA8F477B551260B76FE93CCAADFC86324A236B2E998F8FFA73CEA000C7195E9BEE98033DDEA1BE534415305E6BE01B34A9BFBCC4CD8DAA39E0C2BC9897E803E7CB85444CDECCBDBB98C0B0E555DA81E6AC406323A3E96CABEA81CE53C23DD0A4A31E0F5B2248833C53FFE53872BA19EB244C40933B7E8FF5ACA26FCD31D3B7AA4740E25FEF6FE2B8D0A08C2353CB7CCB71B485DA3CCD237C37DAFF3DFC5EE29E696037FFBE292BB9EA2D50071F249E4CE8119FB47362AE71DEDC41FEABFA32A84843131BB18933B6B3BD30190B003CD35903372BFAB09021E03F6EF149B55EE73C25307EF50FED0FC125DC08937B825EFA486D83CFE6C9309649A2372CB68CB664A9D1B52FB526C8A59035423DDC03E15F96A67C0135EBA30BF3A086083BA600B8BB65EB6AAC44E01CE9057738608E96F23A6532ECEE6E992C4C27542DC1AB0EB442BC7418E807E6D40715E4B6872EDCB688B3ED70E0CC2C3B1AC40DF2667D5042B0AA0035B8AC267BEA40B123F3FFBF18954EF707B0EF37E0D5D0DDB7F17D6561855225C32473FD11D7F1219908BA693326FBE7FE2E910460E43B791F14FB82685C628E449AB87D96A6C921F01F5A539726E9E0E1F4994087315BBF146245396F2B8FEE67C6893FA7722F9AD6F3FE328D2BEAF22D5DDA546535A84DC9D0970D53C5B96208473 +ss = D8795F2EFA4E748883E1190FA5451222313E6E5B71BD96EBDF86751B8BBCF798 + +count = 4 +keypair_coins = 66B79B844E0C2ADAD694E0478661AC46FE6B6001F6A71FF8E2F034B1FD8833D3B68C0EF1663E52E24C33090EA8F4F564D85DACA610FD7C2D5756D7D882408DED +pk = 041A9057EBCD8DF95CD5EABAE5E776BA758D8EF9C8702406AFEB9D82D91C06E8A27DF57BE2D2CEC9893E9C0A678EC02E94C21181993CFD22C19A7620D9CC494394B2218A81F9CBC743047160B0A551B6C802E44D09E52EA613C5F60940D77C3AAD232F9DF0561F159FFC0C88AC9C2F1109A9D89AC87B4A756352289D241B8BD694A1E140F255163F7888AD1314E6208082C0BBDD72220FCA50D57C65C3B05D701B567550316C440C6F90BA50A46AD9662F99C61AD6601A4A26874E30CA1CB97998A13E68683A28996933BA186F469DC903B0C46A348A1C307AB9A9A4D427730920AE296D725BC045D2807CE2CB325CBD5F6CC216A0C0BCDA1E321C5B17565ED0028D68554C892A9755643A69CB721FE6296ACB64B93966A1743ED298B5E348817D62A93C453318DB713E95CC53F8BEF7D6A5DC2A7001473851324CA0DB3052448DA3136347008AD8D8B6B95A62E8A48073D2634A58525DD663DA939948D49DA9B12B1D758BB6F328D0F42A38837675E487403148729C4FFAA2CCD1E6CE8A4C8BE2E7A1BA2B7B633AACABBA686DDA63FEB255360C4796BBC99D95461B30502B42CE4E6AA92120B61A283927184931FB6C98727CF4163284732D62216B653C633659045549A40BB0C7C0A64ADEB841596516BCF97E6CA33892CA8FE6EBB45E58313FDA81D164193BD711AB5B65E7F2611B4B558F3C03294336043884E8B92390D11903035ED46289925447D3AB1A53802376CB2AE1960E4A7A13D0D05A58C89F5D0499BE72ACB9FB7DC5468AFD332F483B1DAC2370A14326B52467A205638FD603D835A628AB940A0463EB93814237415397B5A8B062B915C3F4278ED1DB16ED13B03002C158700852837657B94A4B5AC43DA32A7179A4C1A4303350652693844949029AAB4222AC62DE266240FB48BEC4BDED28213D945C3626ABA1856C5E702589738FB5574380B74071DBB401696DEB422B9DE3699A0949E20522A3782E20A6AA2C364868CA41E7202CE8EC8BBC2165A09019A898BD4615741DCB73FDAC5FC7C35503A937EEFC08CF88570ED41163BB7F2E9315F0249D2BF5CB93B74627041BFB79C2B26754C6F38F8B802F28D7A775AA7CB082CB5755A195D66371FBCCD1678478C462CA1896B201098D66B3991B2E73C299674BC645D2737111CFDFE89B416A7DA8CA182164BD708119297283DE6A1CE84CBFCE07C683783402539F88B6B071213732B7594052BDA614C95860B57BD5AD5ED10D8139348AD549BB573E3549320E521C0AA3919EB0978DBB7AABD683DAD74D00F549AF5B4F0583A42D27A21EF030C94B2E93EA67A081AF3413AA6AD1C41091364E558CD561674340430BC490A52728CC188CD1281C7AAC45223A341EB60C8EAB4959701AEF2120C891B5CE115BF8AA17CEE2A980C6895EC5061AB49DFEA7431D755015117A5F0A0F200921C4547ABBA8BF13B5CB7987B0250C2885A0507094795F7274AF995647B5B6E559275115CD55CBCDC9B988073B2EA214551752BAF467432904AE95182514E39B3B418A49C410E4832D5377B95227B3091B5F782AA431A1962D6A907D3C2371161D71A9640B177A488A1FCBE57F108900E8E08292F4CF97460893004F5F88222D059B162207AD739650537BCB8B813490CA702555F134406E9C04CD54BB85A7689A1316CDF3C401D9C49B22816F47CE750AAC7455A222490940F030F108086262479B8489FA00A12D09CFB5D4B6A4176FA0F62B1288C46AF76340D81EDDEC842A548BE29A3994C53A7E631BAEACA3A0F8AFC4412B6D51426D496D2A04BF29934F17E668421899C6690853876434E87F8F10AB52E61FF35B54227AC0FB7313D2F1C308405E5D767541C8C3BB4664C594A257BA30FBE34BD182790045BC1BB377F9D54EA8DB52A945642075B0DF8B2E6AC87E71177A4860157F83829BF7003558B7F35A1690920D494B4391396DD61A7F221991A1C6856F7B1AE5147422742AA0EA005FC1549CC034B9C11267E00FC32C2B3CD172975397A3647A41B1C69F9BB663835DB97314468540973C339AB0CB36A19B2EA807FA788402D48DAE0AC01285A8C5F3725FA674D0418BFFF98F6C64C2FE21A4C6A7CAE7B014277413781B7C3DA207BADC70AAAC10E684C42940705B8AC37EE7C0A101BB3B9BC233845EF75908A83108A2467F6D44DE229C527F6E4E7071CB826CFE76FEA483D9163EAA84F6AFAC495A +sk = 944AB695C2345BB67894D451EA2A5C92561A5467C769352379950879899C9CAC9D05E89CB2729B2BB47724923FCA357623C69643569D66912B2F9B3249908090D4C5F68388A6141163C931DF430D70290950B07DE410AF913C0E5A215C3059785EF05B824545ABA0B95E7279D1C5726B59890B82131D5C62E8B3BE33B8016BA0C321C248A5293C71ECA570C9536F958B84663B1DD5BB6F272C3E201F014AA3AE05640ED92200274D45D9BF4410CE8EA72D680ACE1EEB04CD8B002DE72795DB60681BC9ECD387FCEA796FF7726FB29877F895E6832EB7EB179A5956499CA3BCF3283FC8489D494A88668E6614B1F49824F12A448B31A42861190CE3A9F73C6FFA25622D7A504E0694BB7C75EE71CC8E718CE9D57AC86A11721721E6181F157C333AE098F8A6823F765B60F0300F4733CF65240C779569620213B8A331731A7B31937104BECC0995EF57255261AD9B246009F855CA82AF2001B256760C1543074D70B3C578279B35137E16AC2089A4C60038B8671D308964B68A2211187154746C27F59C8105981C8C7D0AD58717978C01A66B5EE1697188BFAAC9B927822C940C5380409F38459F5B302CF7DC9D6BD823A0308B0DA45C35D541D2346BAE4173FB0C677EEC26A94C4158B28D4D7B4B0F62A4AB06BAE0B42208B099A174BB4C482C7C321AACA49C4A517114A5CF408750E8588545134F83A67769CC6E0B413BB800C04093184625A7EE24134A721D5FB1571CD82DD1D7C5F9103E0C2C4416CB775AA28DF48643084B391DD2CAF39278E9A31D2254871B170AE1B60A4E39B1F5A8473F580C7153CAA1369D8E9CA381660A57CA8D2523202816767CA8CAC0914C16F1CEC8EA4EA5DA930E0403E7A876C390BA31FA250D946A2EEAA479888011DB7942F7676A120338357BCA38C4C95088A4A0884B8B4C14E9C09E831F8AA658ED77CC164124CB281F61856BD6C965B6B6CD60B1B1034888F3970555443F0F5CC29C800F578806BEEB4730AB9AF4B9BEB89502AB48761E188CB9AA95BA06B28CF4B89C200B2145A4339A53406B6790A518F54902EBA0230A8C2A45447125B7330F12645D935E00651CB4996E395543B7E643137ABF3DF59E042ABD6FA11927062D73D0A107BA6FEA0908FF6759A972C11E864EE7393254051BDA558D4B272E6CB2C337747A7EF46F5AC872D5D5238521C09E21495EF98B59C22961E5A4967370EFC4865F06A72A41464D37CE4DD1803BC117888B681D35195C857A47B764C6799A86E27327EB0403931E29F90FEE8628AA43B333615BC0F251707024AD41A24E3C4F15B99E72F536DD989C0325225DC682E3611640D99C1552506E687E18A883F90882056C14385BC08BE82616D811A4FB2DC93670945B7EFA17593C4B7BFFB76F9A805F5230C50B065DC77B409CA8CC0B7190AA61614C528AF2D1AC130C19E4362E85A40693A87C00935A887B9B58699777453D8278C445BBC8D225412BDA6FDF026207E3B207613D2ED74C085707EDD555FE4C00B40B2A83AA219CD643F1D83EC0FC21BCF94FBA6A8262D959C9FB345F2221082C40A1501C46C55082DB2709230B04090558CB6D6815173525725D8CC0BC93C881C99A16041757D6A05AC71A15E887C1682D3300673D851FA1AA423C5B76A7330EE7041E7AE96C36CB6A2EC473D83096C122B9AF6A16FAA56505D156DF9735DD3A82681637A1747EB48A0AECC8AEBDB7A15000367A7B023BB414CB67587BB29D19182948C72B60B2CDD7E222A12713F6A6C3E13C782B23C494922F4AE07B346C1D52F94682C11A0D52B584F7C8D8C740D9E0353480BFEDB3168774CB1CE31331E8CADA805045A37C93CBBD28EC100E089003458CB2F09CC39640774C7767183A4AE4C974E305258A8D128AC84650BB044C60311BB2515703F9EA8AD3560C6F382C7D173F83D30DDC1B637DE633FF357A28CA32ECD834E4698DA363CE2380CEEE401EEE9B31DF6967C7C15E94E765262134AAE5719838CE9579C8406234A9963756FC83DAE5427788BF98358DA8B356A2944B7D8917CC0884A2C58481C8299F194F45E33C0B30CEA23142287AB15C1A429E588FB3BA32B6897D771072266096C49576FF5CC537577B76BA6C6D993E01C30DFE519BAE481ACA72990A39711A60AFD67C1B50D417883A44E1DC24B93421041A9057EBCD8DF95CD5EABAE5E776BA758D8EF9C8702406AFEB9D82D91C06E8A27DF57BE2D2CEC9893E9C0A678EC02E94C21181993CFD22C19A7620D9CC494394B2218A81F9CBC743047160B0A551B6C802E44D09E52EA613C5F60940D77C3AAD232F9DF0561F159FFC0C88AC9C2F1109A9D89AC87B4A756352289D241B8BD694A1E140F255163F7888AD1314E6208082C0BBDD72220FCA50D57C65C3B05D701B567550316C440C6F90BA50A46AD9662F99C61AD6601A4A26874E30CA1CB97998A13E68683A28996933BA186F469DC903B0C46A348A1C307AB9A9A4D427730920AE296D725BC045D2807CE2CB325CBD5F6CC216A0C0BCDA1E321C5B17565ED0028D68554C892A9755643A69CB721FE6296ACB64B93966A1743ED298B5E348817D62A93C453318DB713E95CC53F8BEF7D6A5DC2A7001473851324CA0DB3052448DA3136347008AD8D8B6B95A62E8A48073D2634A58525DD663DA939948D49DA9B12B1D758BB6F328D0F42A38837675E487403148729C4FFAA2CCD1E6CE8A4C8BE2E7A1BA2B7B633AACABBA686DDA63FEB255360C4796BBC99D95461B30502B42CE4E6AA92120B61A283927184931FB6C98727CF4163284732D62216B653C633659045549A40BB0C7C0A64ADEB841596516BCF97E6CA33892CA8FE6EBB45E58313FDA81D164193BD711AB5B65E7F2611B4B558F3C03294336043884E8B92390D11903035ED46289925447D3AB1A53802376CB2AE1960E4A7A13D0D05A58C89F5D0499BE72ACB9FB7DC5468AFD332F483B1DAC2370A14326B52467A205638FD603D835A628AB940A0463EB93814237415397B5A8B062B915C3F4278ED1DB16ED13B03002C158700852837657B94A4B5AC43DA32A7179A4C1A4303350652693844949029AAB4222AC62DE266240FB48BEC4BDED28213D945C3626ABA1856C5E702589738FB5574380B74071DBB401696DEB422B9DE3699A0949E20522A3782E20A6AA2C364868CA41E7202CE8EC8BBC2165A09019A898BD4615741DCB73FDAC5FC7C35503A937EEFC08CF88570ED41163BB7F2E9315F0249D2BF5CB93B74627041BFB79C2B26754C6F38F8B802F28D7A775AA7CB082CB5755A195D66371FBCCD1678478C462CA1896B201098D66B3991B2E73C299674BC645D2737111CFDFE89B416A7DA8CA182164BD708119297283DE6A1CE84CBFCE07C683783402539F88B6B071213732B7594052BDA614C95860B57BD5AD5ED10D8139348AD549BB573E3549320E521C0AA3919EB0978DBB7AABD683DAD74D00F549AF5B4F0583A42D27A21EF030C94B2E93EA67A081AF3413AA6AD1C41091364E558CD561674340430BC490A52728CC188CD1281C7AAC45223A341EB60C8EAB4959701AEF2120C891B5CE115BF8AA17CEE2A980C6895EC5061AB49DFEA7431D755015117A5F0A0F200921C4547ABBA8BF13B5CB7987B0250C2885A0507094795F7274AF995647B5B6E559275115CD55CBCDC9B988073B2EA214551752BAF467432904AE95182514E39B3B418A49C410E4832D5377B95227B3091B5F782AA431A1962D6A907D3C2371161D71A9640B177A488A1FCBE57F108900E8E08292F4CF97460893004F5F88222D059B162207AD739650537BCB8B813490CA702555F134406E9C04CD54BB85A7689A1316CDF3C401D9C49B22816F47CE750AAC7455A222490940F030F108086262479B8489FA00A12D09CFB5D4B6A4176FA0F62B1288C46AF76340D81EDDEC842A548BE29A3994C53A7E631BAEACA3A0F8AFC4412B6D51426D496D2A04BF29934F17E668421899C6690853876434E87F8F10AB52E61FF35B54227AC0FB7313D2F1C308405E5D767541C8C3BB4664C594A257BA30FBE34BD182790045BC1BB377F9D54EA8DB52A945642075B0DF8B2E6AC87E71177A4860157F83829BF7003558B7F35A1690920D494B4391396DD61A7F221991A1C6856F7B1AE5147422742AA0EA005FC1549CC034B9C11267E00FC32C2B3CD172975397A3647A41B1C69F9BB663835DB97314468540973C339AB0CB36A19B2EA807FA788402D48DAE0AC01285A8C5F3725FA674D0418BFFF98F6C64C2FE21A4C6A7CAE7B014277413781B7C3DA207BADC70AAAC10E684C42940705B8AC37EE7C0A101BB3B9BC233845EF75908A83108A2467F6D44DE229C527F6E4E7071CB826CFE76FEA483D9163EAA84F6AFAC495AD35E259A200D16048302DF38D8E7F9E1C3352502C43F086FE166325048FDCE9CB68C0EF1663E52E24C33090EA8F4F564D85DACA610FD7C2D5756D7D882408DED +encap_coins = BE4B5E900BF3274D5C6556CE983F3C13EB314E8B3AC969BE600A8C769A6E7C76 +ct = 8FFE5DF45C6559C8C1910ECEC6036B7AB15396B042383630578FC8B1612640FDDEB9ED4CBE90CC8C812F8DB76FFF093966EDDF4F93FB73C2533B279A756B4E169B941ACBF5DDA49D82C56964594E36ED285257A53C0004CFBE46C20F0F4631457C445B86CB4BA3924F8E661C9CEB46AF04F37DDEB13C7F0B6BAF8B1702452DD8A70D0CCD3A1366E8B330BD7E7E65A3BAEFF0F86047CFC8A08009390E6850076EBA2B0B9E390D9CEEE041CF1EFDD3675E743C7CD2FA1AFFDB08DD0E369E4F4EA20CAAEA6B0D8C7F949BF9BE3D1921EB75FDE8746C0412998111AD5AE36B76DC1A15C1DD6F6F116B333D4F753C3F7F7B5098102BA54B5044767432287EFD8B107DE3789DDA486507A839FE44618319591D940DCC71E0F2BEA42375FF3CBF978CF7E260CD6A9B32E07428C791D3A0D23A59520B025D0F810DDC327ECE6FD1A528AFFE4DFEB5305CF5A8EC1D4995BE2C2E3F3CA30ECB6B71996596E7CD345B67237E5803B4F522DE1859F9AE31248A3C67191473C247582B1627E5401D40C2F90FB7B879D55F90B708D6793A69B23BFC8EE121BF27AEE41499D014CDE8D66B3945679E55764915550AF7BE4FCB5C764B43D9E22C9A96BE1700C665B6009B825E1244DC0E0F181641CAC4C90A999ADD52DBAB5614DE2C7FA10B54C9CEF3F480AD5742B9704053400351457E9636F058DC48697C5A414EC15985514A38CCC45AA685F481F87E551D4AB9AAA0BE7C273816F42B298D2E235DA34325E9D3A46D9578F27B61BA14CFDC733C2309628B4749E7DB8ED7DB7E36B44CA08BD07682C0E8152DC0EABF20EB41B1CF5C3ABABAB6FBFAE13CD1B4E9673C5EE0161237A4AF4197A2778AF71EBA34343B1CF6EECD50678049B7CDFAD2CDE37646213A745713AAA9E081AB38BB8F5401342393CDF1DACFC8E051B06FFA147A1C9F0D8A2F9119F7444D8EE4B32BDC3EAFE5729D931D4F67897A75A6999203F5DCAC93F4C4D08A224EF4888E27CF1974F5443B423D02F126642FD05C26C271CFE93BEF8BF587868E84725AF35EEAA9657FFB06F2B92F03232F671A287341C2992F424D6D3D3B9C4E119597301EA508E3A533690DFB5B38320A84DE9954415BFA752996FBE7458AAC748A9B66F2FE27BC82C39759CAE38992F408F701F0161BFB12D009641146ADADFE81B81DCF9001C7BC94B74953D96D6756BEED986E0DF7DC46025DA92670FD17052AA3C8783AFE4CC9865A4891727EB4DEB9895131235F96134CB3CF30EA3ED89AE8CEA10E812B1ABC2CB14B87443F3D6778ED7C5D4716C61C071F73E890B5590E6A1FAB1FBA1D26A9A19CCDEA2514554409503CB04FB4F6C62FC1624E781D889F116B6B86AC257C69CADC8A5F75E3E2FB5626CFF9664B6DD18BBCD1CF5B8D474F00FB1AD1DB64EA167FCD75DD57064FC8D0AD519E1B02E02C230D166BB64D5172B6962D12BC429F708AF4AFEECD6D94AD3E11E4DD0131730B2FAFFCAFD811D366DD1E782356B4D47D12640737B26DD7545C66411192F2575B3019FE92A805A9D1DB3BAEB90D774974700246A865604CF8EEA89D3BECB23DBF558C65473817D34F5F9D25D2DAA4FB9BFC70160B6B2D0AD7650DF490EE636DD217866C7F4E8D1E7F5B38EAB6CC45EE987CA8D28ED67ADAB94B3D355F6EA29353AB90F5000A3876FD2A6976875540CF9EE314FF428ECBDA97CEBDFADA9E134CBE104D7509A5F936AB01BA4E9E56738442DD2A23CDC7025333A518DD29C3130926B3064CD7174325E5B149A2050557ACBCD14F0A8C0DBB5498ED0C9F464C728F90956CAF2F1C7B5E4F029C9F7101D31D3A747E9C77D2BFCF0D69F248F5DFE3825790F49260E22BE517FC5A4A1045DEACC23CB16BF765665351BA00BB6E957493084AD8E2E167A7F8188B0C928B39EF07CAA389B070600931C73C7FEDE1CC04E48974BB328ED71C35A9270D379C287A68C7E7974389E258563F7DBDD34B6507280F45F2F729F2DC12431029330E16B41D1D00D003E57A27EA6C151C976CED64DBB041231FCCC66EF2987E8AB3D9091CB4F06D45931E015C3FEF69C4A160E3000181B4A30C0E25EFC6ED1DE43CEEB363D00A9A97E83A2491C4A9FD5FCDE5BA3AA171E26F6D4513B25D2D8A040C6DE15C781DD8D2EFC5A736FE7811A451B30CFD203496290233178602CE8C937E66A835C6734596201D610C693AE9EEAE20F097087BA5F4FF7EA9DA75EB5233 +ss = 853896EA55C075414EE1FDD7A58EE44ADA1FB1096779A1AA69F5BBACA078A5E8 + +count = 5 +keypair_coins = 7EC408F52C9AA723D0C41D9987682A5F4CE6C9DA7CD0215AF60BBAF5484AB3530DA1D147E7686E428AA1775BC2EB045D1ECBB17563AC966F708CF3882C47B5AD +pk = 7BD4AE7AC89CCF0180B971854B229829C15ED8119F77EA8C7A80A4B7290B92A4BD7ED21E3B317E15D2AE5593AE3B3413D4552B767B5C264A2E31C28164E18C424A00B013389663CA580BA5B94A5E3C3A9234F15DE0F4AAB90A240B55B6CF6C4BF5D29BA93480014023F25C66813996F674CAD2F72C34882BC441A851413560F54DF40146FE9C634CE98A8A659B38D71CBDF934D29BB4C469C660190FCCB1820CC365490A8A79228B79D95C3850C536F7CED9EBAA92C159E5F9A28C9562BEB95D9FA000371A2670E5B066D16E5AF730C59A03B8D2364EB048DF031618D09E8C07781957B3D06C6AD4534149FA65F8C513733B8B095B6BADEC8D0EC0CFF1618F5B754E71F50F3F7C9A209ACBFF1505A7A40621B0AA817A9F7C6A1CAA1441AF16606376C845C473B89BC8CBF95460192632098BFBEC366B1914D9216B16A19C8CB45204379A782C203614B37FE411DCA18C20CC033CD6510B649C09431AFE167826576E19D425026B02F628C92E389D884A8E5975C3A3A252E0443239305E30BC6E73D33FD3B0CC63A8484721157A491535EC1918A99584808E75C26DE2535227A7120BF97B64F320743338C642BDC9D02B45A29903F22EF3E789E29C4119ACB125347749F373C3F4156A2BA0BDAA51FDAB2185BAB69801055C1743E7F7541198CD6935598CD00AB2A051667AB0FC67B9751AA6CB76B38B51754D66296D8ABEA1E6268D410C68412424C780BF8198A9BBB1227771114BAAD6A63977163FD432131F96168131CBCB536B8D223D521583E9B31E025ABDEC005A6EC66396D94B17436609E6205F1610A805CB39240BF3D19F81B20CFB94CEF7C10BC7B3110B2231C61C333A3577730AD02009951689A2C867558D244A70D437F1AA3453743B61A63165C07A81E15D8A5313552728BC5C2B7ECBC3E35975A9BC5C341A7D6967757BB7C67EB279F7B34C33F95DFA49185F908686A55CBA343AF19635D07B3A23D6442D15CFE58C04AB586930029D072704B546A4AF3AA9CDFA148018954A857B3C8992D1C567E3B20EC300AC438B53EC808AD0753CB8026703C1892F53357F58A9E936BCFC344E82686C95EC375B8C43BAEA58E28C71387C09AE312E00368ED4198FD23884F1BBA5651CCB94488166943B2972AC73615A21E32EA83B9B23596AEFEC1785329238E210FA1528243AB9FCFB974A6316E26217D278596D188C43684D8C349D91CB43D301C961E4B51B51B202C58DDAA10425412F13228D16FC0C75E2B8EBA686FE5172768378F16785247B9C6E1CCD9929A8D17A829566B640F0744BF565EA512402707E78AAA6809B75C5154DCF70BDEA1CC05902BED4BACC3A6C3518D2A605CB96E3CBC5209239F4994DF6B503D5F16E04562ED689A2130334FFE99B093A5CBE2282321551E943BA7C988561D332663AC4E8B367427133CD216240F659D1542E54E4AC32C42DA7C39C0B5C105DDB872A9B617BF386D7259661C2823522198802BE252747381053CEAC84C5F827339C90812615EEDA92DD38C2E1DB2268A3929087480F393643D17CDEC6CD059C2B810B464646A26427CEE030B311F591B7D96858CA9FA0B53076E975E88582950350C2FB82C8BB33A9198AAA5948B42099DE3C6D252467C0525131128B18508AAC196A8B45C013519D52950A16D48007B339F8A9336349C50DDB656B55874BFC7BFFEA795F5A16A98857D7F57945F05925B45A55209895B7CCD7A9831D93CCFFE55A8EE0C63CC57A10A0C8F905542856594BB41359FA9F5C312AE6E86DD116A292C66F47B9A0791A72DFF47C55C69AAA8A6465C7B3C9222C020280F77B9B731514D2BA49B1B0B0E6533684FC5EF2665C25840426563EC3A2AA0A01812186021D40C4F3519DA9799FEAC06AFBF04CD390C0A52A0B687A5EF0877F053C319FA51CE7E53AAD0313BA3B6A7BA5892A50CEAD19356D8068D1A93681833ED4B8C975E99D969AAFE1A6A5C2326C4E290D65EAAE1323125238303719C545202178BA17EEAA1504F13CD96838B7560C1A35B1257A1672C599B1B993A55CA982A1AE29B6664998469F171865562EE027C4644234F7E3B14621C811CAAB7498B204A55C8B302033219D6B2B9BF7939E9FE4523AA9CC9A41A1CE11C18FD6BB9BCAA8970534A7106199B76975EA8AF98233F031A371C79A47C12DC8EE619E1A0C8915822D574A243F67E14104D4F021CF95BF33271C9BC9 +sk = AC65AF9FC8B905D09638374E58C551DA08AC4EF86A8FF04489BA462841A85D907ED0C70E1A790297AB2DF7D6CDFC5C6AF513144DA105DDA2C75F00736DD91564A79668E335FBDCA1C9D31592E73D60066B959A2FCBF55474F9C21BF058F021457586766FDA4FAD521F64940D4932B07AD8CA7E1A06662730EA6C15AA1C2F9662552313176AF04FA4A98962101492566ADB8BBC3EC04F9CAB9EBFE5860F886D57A2C73FA050A3607A8C0998754B417C9C5AE2FC3F829CC3A2EBB1E927AE87B68C6DB355F4C661CD000D10D6BC31CA1C249A9B3931A4D1C57904DC6DF923839D9A90AA2B93A87C44B5F82E6A925D22E679428064FFCB9621067B75477FB7D51A1D3B9D9DE4051CF874CCEC12976562752CBFCFC59F56C2C60B8B4610A9BB36E9019B974502407D57289726AB8A38D7A6C880074A5686619ABFFFA5757DC79E1449408851502BEB8196F493F4A724B9D681645A07B193586C5C05D8D10E2C968BD251B88691C368DC18CF8270DAD3C22BF5093DB4CF05668F8C6315C0EA3F55495E784CCD6055AC451363FD77A91686AD77C5AF53141EB5E7534FAC4DE481741E48B414302E4743789E250C39C45C0A15CF42E7B3631B6A8C0971C8A34B8200BBFE11004AB06BFC5949C3615B02947C73E7A0717C6B60F2679DAA21AFE4C55768A08E70105868AA6AB4AAA848C79BF125883907B9DAABE367AFCE273E2C168AAB02ACD27855E2944B67B938170A9258F67397770136E466758C260CCB7DA226B5A95692514727FD48953C62959C88C8784A8A52131C4BA5A6D757B4311048B602B554E8AD509B0C12B0A64553CD4270CA92F36CEC227E16A217C769A2BC1AA6C356A5A39C69F4963BA6273DB9232F1D8A28CE65B5B9058F1B8A164AB0380C42A8EDDB6C2B8B19F26B557C387E4DB9AEB92C4D7D0A2CA1E35F97E05CF590BC511AC5EFB2357E70525BD027B36C6781C4B86B0069E7B89C8CA643FB9990ECAB2CC5A8A5A5B2B0441076CE934D96BCA9FFC10EB6E7BB093675E97B68894BB030581D89123642C1118364115A76AD1C181EED4B691BBC15DF182DCDE00C71F8685B71883A184396D3475CBBCB674360DC14C42DD6461514479C85557194A97A654C4BE7620FA84C59DB5057A0886D760460CC4A3A713F4FD4BDEBAA93B943C48E6348053703ED818FDD9CBD62E246C0B69A265AA381822D6A474C5AA530AA5306A0C8572C413718A278194367405789E1F749AB4A02AF87B362067F3DA12EC01A83ACEC26A390CB5419B351BC95E08C7338FB933B81476EA950881275A186C9E9F99DAB63634E6B7314188BFD686D74EC203B71542B62B1C0C7712745940F7B9237551467470E5B1BA2F8E34CF585ADBAF980317C9DB1147382946C12223C3A45973B879A523855BEF121151BCE620216DEDC6C3457CA03951FF45B662F79A1A7A5CEFE9A846DD5774C7C2A22F842E4E465A94314E036BB55A2787A1A0F0F111143872DAE74AF706A369CA54259B80578BACD497700871842B98CAE2AC3B572F98F145CBAAF54569779B616242060B30B2A482DAF335C9A502CD318296958C696F7080C7A3926C7B62F36A5DBFB87EA0518358155E8E94390B6C0F808B91C166577037DF60A21DBACB5CC0758ECFB20D4C38CA54C4248E07168B19F7D925A8CE8648F812A8C5B6FF69B8994E95859D2C5CB67259787739CFABAB0C1B093E690C50632F7C336FB139700D43A04892DB5220C28912A59EBAD66BBBF0FE860E2E30D8EBA9CF21C6C1156CDE0B255A1A4507E3C880B749FE959470B684E03268B43A960F3D76EF1D4C4E7266F80792EB74959A12A6F1C91CDE02B8D5C14A500CCC7224C8CE3A70B99557C87B9BF09B449341118B3F998509B1AB0492E0FB84340F81F8F51C08917319D9350055BB889BA2D6EC7B5E281A9EE84BA90CA4D33014F9CEC2993915C7BC094E9B926EA086D84434C2748BBA95569779947CC744DEA189B2080AFC548710B94A225799293090CB3A6C932336003990FF766493F4B17CB834CDC70A0B209B7A1FC42BA087D7C10C02C383B60B63CE4E44BEE916920156DE9AB95AABB44F28BBB3F0612338B0A5077C898E3BA0F197F7F31C467B8803ABBB0A82A7897E7A39C0012049788D27B70C8503C719AC3DF958A7A61AFFEE0A2C79A1703D6527BD4AE7AC89CCF0180B971854B229829C15ED8119F77EA8C7A80A4B7290B92A4BD7ED21E3B317E15D2AE5593AE3B3413D4552B767B5C264A2E31C28164E18C424A00B013389663CA580BA5B94A5E3C3A9234F15DE0F4AAB90A240B55B6CF6C4BF5D29BA93480014023F25C66813996F674CAD2F72C34882BC441A851413560F54DF40146FE9C634CE98A8A659B38D71CBDF934D29BB4C469C660190FCCB1820CC365490A8A79228B79D95C3850C536F7CED9EBAA92C159E5F9A28C9562BEB95D9FA000371A2670E5B066D16E5AF730C59A03B8D2364EB048DF031618D09E8C07781957B3D06C6AD4534149FA65F8C513733B8B095B6BADEC8D0EC0CFF1618F5B754E71F50F3F7C9A209ACBFF1505A7A40621B0AA817A9F7C6A1CAA1441AF16606376C845C473B89BC8CBF95460192632098BFBEC366B1914D9216B16A19C8CB45204379A782C203614B37FE411DCA18C20CC033CD6510B649C09431AFE167826576E19D425026B02F628C92E389D884A8E5975C3A3A252E0443239305E30BC6E73D33FD3B0CC63A8484721157A491535EC1918A99584808E75C26DE2535227A7120BF97B64F320743338C642BDC9D02B45A29903F22EF3E789E29C4119ACB125347749F373C3F4156A2BA0BDAA51FDAB2185BAB69801055C1743E7F7541198CD6935598CD00AB2A051667AB0FC67B9751AA6CB76B38B51754D66296D8ABEA1E6268D410C68412424C780BF8198A9BBB1227771114BAAD6A63977163FD432131F96168131CBCB536B8D223D521583E9B31E025ABDEC005A6EC66396D94B17436609E6205F1610A805CB39240BF3D19F81B20CFB94CEF7C10BC7B3110B2231C61C333A3577730AD02009951689A2C867558D244A70D437F1AA3453743B61A63165C07A81E15D8A5313552728BC5C2B7ECBC3E35975A9BC5C341A7D6967757BB7C67EB279F7B34C33F95DFA49185F908686A55CBA343AF19635D07B3A23D6442D15CFE58C04AB586930029D072704B546A4AF3AA9CDFA148018954A857B3C8992D1C567E3B20EC300AC438B53EC808AD0753CB8026703C1892F53357F58A9E936BCFC344E82686C95EC375B8C43BAEA58E28C71387C09AE312E00368ED4198FD23884F1BBA5651CCB94488166943B2972AC73615A21E32EA83B9B23596AEFEC1785329238E210FA1528243AB9FCFB974A6316E26217D278596D188C43684D8C349D91CB43D301C961E4B51B51B202C58DDAA10425412F13228D16FC0C75E2B8EBA686FE5172768378F16785247B9C6E1CCD9929A8D17A829566B640F0744BF565EA512402707E78AAA6809B75C5154DCF70BDEA1CC05902BED4BACC3A6C3518D2A605CB96E3CBC5209239F4994DF6B503D5F16E04562ED689A2130334FFE99B093A5CBE2282321551E943BA7C988561D332663AC4E8B367427133CD216240F659D1542E54E4AC32C42DA7C39C0B5C105DDB872A9B617BF386D7259661C2823522198802BE252747381053CEAC84C5F827339C90812615EEDA92DD38C2E1DB2268A3929087480F393643D17CDEC6CD059C2B810B464646A26427CEE030B311F591B7D96858CA9FA0B53076E975E88582950350C2FB82C8BB33A9198AAA5948B42099DE3C6D252467C0525131128B18508AAC196A8B45C013519D52950A16D48007B339F8A9336349C50DDB656B55874BFC7BFFEA795F5A16A98857D7F57945F05925B45A55209895B7CCD7A9831D93CCFFE55A8EE0C63CC57A10A0C8F905542856594BB41359FA9F5C312AE6E86DD116A292C66F47B9A0791A72DFF47C55C69AAA8A6465C7B3C9222C020280F77B9B731514D2BA49B1B0B0E6533684FC5EF2665C25840426563EC3A2AA0A01812186021D40C4F3519DA9799FEAC06AFBF04CD390C0A52A0B687A5EF0877F053C319FA51CE7E53AAD0313BA3B6A7BA5892A50CEAD19356D8068D1A93681833ED4B8C975E99D969AAFE1A6A5C2326C4E290D65EAAE1323125238303719C545202178BA17EEAA1504F13CD96838B7560C1A35B1257A1672C599B1B993A55CA982A1AE29B6664998469F171865562EE027C4644234F7E3B14621C811CAAB7498B204A55C8B302033219D6B2B9BF7939E9FE4523AA9CC9A41A1CE11C18FD6BB9BCAA8970534A7106199B76975EA8AF98233F031A371C79A47C12DC8EE619E1A0C8915822D574A243F67E14104D4F021CF95BF33271C9BC95A5DB7D619BE642BD87294527B3F859372B279A1E6074824D9632B5D7F616E420DA1D147E7686E428AA1775BC2EB045D1ECBB17563AC966F708CF3882C47B5AD +encap_coins = B0C99F495AD0CFA090C5453402FB93B6BF35D02077C5F6388810CEE3EDF51A99 +ct = A057ED8F9AD6221398E4182262B501AB346914BE72F17A7B107134978BB249C2E5D7019DF463F7FC831CFD161FE395CA22031E6654DC5FD4C652F896731C37BFBB92D30AE7A949B0DD768F4C053F1F2FAEFCC8BC1D38E6032667A516A942DE603ED1B6769463004FDC89A86BDCC27292AB865E78FEBE9007859AA66F4B4518243A16591DD103502F729A19CEE63D8F97F25447D3E273C149A702A522B828869785B6890F1FB7F6513475045112C807CF103ECECD962D1D343B962E20780585B1382BF707D6799F76F969863941C09F09E5C731F1633111644B99EFCF1F1DF445F4D3CF136F2DBC0CFA2F8A55AF5508FC0CB1AAF2F16445D2FF211E5C428BAF88DB0A645B7ED0DD0FBED74E503D9470FC8EC6ED8418E0C4CBC98AE49C33AE2DFCD7E63CBBA4C3B7F89F42315C74BF9419190C4B52536B8F7D86354E62EBFFA0BD4B3F8319DEC5D0E299315FA7F11DBC5B95AC831D715C2760A85E347515C9E9DD8E9451A201D861B949C411215A91ABDF14061F7BFAD95AF5F2614FD5260D13DB93718889DCED11D293BC74CADD60112EAF9EDC43ACC156F1D88BA7C478884837028C6B1D71D51454C27A434071D9CF2560415858FC1492E13551233F38C0FEA79816C36A03AC4376F83A5D366ECBD5798D0C86A714AE2BED4A8B508125FD38E66F7C860DF428D8938153132306CA781E120D78EFC41BF049D130E570606A4B5F1814296BEBF140F8BD67C3FD39B3231BAE503685F1A87C77AAC20CA5230220ADCB373406C5CF73FD94F6085D79605E00EB79D9A1FECA3294A590A9930DA9D658929F48201D6277CE24E128BD5954EF874504F123EAD6C9EF985353C397F501B3F5616999397630B0999C9F2CE6E05BA990ABACC9DAE0A9B11607C1384889E0B94822A80056D6AEF6D76F43957D597F4F4090A84E44D7548BE6796BCEF0984D8EC92A3190116F1885645D46854ADCB7CDB76E4D4CDBBDA4FF93AA736A0FFB391FF91F71D07AB2B3D52D79CD863F97E2E8D54B9CA1683E4B83D7EF97D6C060983A56DB5CB6A263F950D1CF4A6FD4E55D3BCFEEE8DDB2811140A649EEE0B5E90C1C3D784B9F685F712694BA915EE6CC9F9947E178904912D9D45B54E3F096DA434E87E07071C4A634D14F719A849EB8FA44829A44130E7C7FED57C9B87F75D7349B6EFB41FDB71A85866F1E5171AC7CB866D0222DF846B4B3D3AC283E7E49E652EFD6A78B480CCB8EEF16F71E907498797F368DEEC5B689564C46C73A0A513632293EF39C94E3A92490B9EA03E14880BB99FE77AACEA9D9DD280FC5448A4733F98D8C0AC1802E4A18A2798EE8A3DB1F552D8BD727307EC827A13E42FB676972096193F86A8255CA329388E2BA778D595F787B037C13E623ADC1F3B1D919C02F924B45D6B5B1301A93100D9A5158B51306F6B65256F41C42027AF92740FBF4479DAFC20F19424CC78351E243D5009C0D90D6CB25A1CAB1F01BE943A592D1BDA501BBDB623AF9ED8C543D26847EF1240774D8BEB7C416565C532F1C160D8D1C5376464A3F998DC835C2AB92602CA46BBD8A80858C1A7DA87451F70B65180A5E553A935F26F2525F2088B7554397AC66374FDF293655D178C3D691E14804CA12CFD9B128FCF645C2945D1EE9EEDDDCCEB9C39DBA6AF30B83FC9B7979D25C99E93BDCA105078A2C154C2F56CEF09E803ADC8EC5E5C482613577ABF3F51221DD49325414505B3099591A71600141746D67C3D6E11F12416D2088ADC93E47C6E79EF7DAC8862E54B996EAA935F3525DE389177C2E0F311DC6C719A3171603F82DBAEBE0E9A92C8E145D2796C7AA654E2C82B5B08BB6B572E07FE7D8B7CA8C6E98421C5E54F28E7AD2F7A3A8321D7D8C30193B12C8DBA0710C35B38C0AAEDEA6D6CFCF7063EF09D00F1A2B2EC87E89E4501F7F8BBC86069EB7F03517AD8D0D4A95BCF618CFF3EEE1175A08F7BAD0A2CEC32F6F0B712424990CEE608A265AAF53CA4A93C7DB8AD067934AD42810C5B759287B200A9622933CCD6113F7157A210C84D381ABC679A7367998A853BE67CC4CFCDDF8D3F7CD6DF45FD07CB324B85DE7A98B8E9DE65180F944F3BF4DE604FB52ACA8792A3F07C3A1DBD20A9A1A92A7613E3C1FBE6CF53799EB88CD9629702EB817E26FBAA0B89BE28D32BE08C30EB22B1E2CF3751B159BCB998D21299D07893C76A2D8DA0FB46DA12CDC499E50C2125C2C968F82FD +ss = 361FBFC0E2318094CEB045B5270F0E8D1E5B05E68BF73F38D924D5E60CB5F383 + +count = 6 +keypair_coins = C121915BFEF6ABDFC177DAE2F5A24218F9ABDA2559AFC6741B08E0E61AB433EB729B5A50627688A4CB3E37CC0FEF22162DDBD848E5AA641731F8E60B4B79C93F +pk = 202275F93924FFE79141EA0ABF85A4C970C45E0ACFB20C426CF545CAEB594907A23BE6CDCD38486EF2CC1234054FA47C50C629657C91E71103C029539E632089461EFFB67A0F8CBE74B91793AB033BD89A2A0A68EF390AC90669AEC42530C785EC3A0DAB424C8184BB051780B4E80838539C81A5097D42CB854CBF324A26F3CC65024A6404CC2A335378FD10ADC8E10CB99C323DDC55E70B32A06CBFAB829E53AA059163C46339B7FA1090244A358DC647D4B1783B59383A0988ACE605AD979F655038AA422981ABABAA0C2F28899A352572F4F6515D62649CF88591AB7DA91CA2C0E44AEFD16ED3F174CBD0BEDB7736363C609EBA4655B2A31BA20F05E412282B28E15125EB212596E0C54181028CEC9B106849AC366F62E8C1C5EC9502F01ECFC1749FA3BD7B251B2A09C731C468DC2988F69649FA9B46E9D244DF903AC9004F09CB1DBCC9C69B33AB9E928FD2072CFED1186F9799EE3C2CCC2B68A3D662C7FB4438240D6E0B70CE98478E6C28294047400B9088EB4AAE3A5A076979AF8AB4234164B0846A9904ADE949742D7402C8516CCBFB1D30581A288C9D1C69360A2B06B21541382AC9B4101B96D4952E89725258CF7FD33AC4F522D12B6F65B884F33A0A4D1B0E41D660D0861BECA59164F8760D3274D6643EF7D13043D63A4CEC67961C808CD64B9728872F74412B8867A2E25CC58174653B2A1A0AC0A24316F4C14281A0A739BAB2DE26BA73C4921C50B909D188E8B3C4DB1274491C792028515930AD45E667C9E6870D204554556BFFF44D09F95FE9DCB7370320BC6740F3053EC5B7396DB400AC671B01F33DBAE59838741B59E4C7F076A92CE92C5213ADADC47C8F50BCD4756DE7642799D5477967339E01455E6898D2194A7AA724338946B7DB70608C0337E305AC876F3D87C6AD857162E491E469BF62C26285F9B817858B149358CB67248A298CB21771F1504F4997965EA38036D274AD72849164262FB58F46CC96FFD75F23B4A0C990A9D59160E4365B07909F7874A22EF1362035312F43B6272BC47EEC6CE9C0B4418B60C5022502485BD92730EE75A9BB4A8C81A03AD4B292F14746FE686C5588B842646B59A38F6FBCAE85F3491C38ABF066CEE2F4A285E961395BBE274C268A11AFD003BEABB50D12B8550EB3008DDBCA593C7BBDF6768FB561AC452D32C77D74352310E4322EE53B9BA879D511368B445DF20AA17A7AC8F205A302F75F3C679557F2A37DE221CDE6C8F7248E73EC25DE603AFBC5BAF1B076DC3B304550C198B6B49159C12490BD964B661E6AC0EEB2B09A78941675A2132527D0016D89EA6B3CEC5D19F1818E4501134947A547957A195807774A8C40A9C50833790ABA5628C2EEC2148DD0430294B331235D4246770C293046A237F03487993043573A71F250090AEB01DCECAE4B878633C59B5403ABB02151D8048DAD408473D63CDD018D3D295A46AB556C8ACA53495683976B2186C6C818B852005D20964CDBCB6061A50910B9C429BA9F10A06F4E053C9E1C4CBEAAC35949C8F23C3E890234CA990B2BC890D43C2A4051AA058A402B7CAF4A3925F52C95C6B6C7D26B4E3D43B21D7B0FFF3B37E5D33E391B5E617785F52128C581969E094D82D062A8631A76B093703626D8708C5F310ABC1951EE8984BF858A7B582038A6A624F5921257764890B73CC9AF94E5AA82D831F341486AAC17CF29AC351483F7F26C80111F6715634AB69CA71A6893B13BBF50CF58C16B29D6B7C9B58FB3C0B9295A6320210F1DB8193BB8A57889A28CE3B196F32CEF048A4D60466E3857C07847E3883C1B7BAB89224C94FABB3FDB921EE3C7FB716AE8C520D547B1AC49CBAD256EF43015FBD722B8B31D6DB24937338E6614402D9272ED014710FC5B0A7105E6659DE2513101B22C81DBA972FABBF23756B5D524D41A15B6D682A1894E8439B6946C64D10732AC603992353F03E61C1A136011B52C624B0943A3464EE92B8A7B970AB5BA9713205E4A22B6A12E063C35E8C65470B32F9E29255D9847DE80CAE1091FA536213078BBA0181FA33BAD7F3003D2065B8D997A7207B595994E816A1979AC5174137EAD82BD88295F2CBC77E01C0FC9119FFCF25D8F2044A16ACA9CA052BF917746109320DC076E1895399741EE690702B477A2D07242E03DAB4664CFB4A4AA443F32D16B72616A0DB4D3849FC41A7A6BA87F4AF757A0AB1956518F +sk = 67A93BB27ACD00C9B95AA03552809C38A08480DBAA67A9584A460345E20E5F381C9A82710EF1709CA51393F916345719BD3144B3121A8608C0A48017963387F7A31C5FEBC6B6749E6BD9BE3C58A9A77B53D7762F5854A3467A85941CA2C03873C0458B940275E5AB85B83A5C2027894B92246DD8632D68A310FBC6D214381128528B375FBB8C3C7923AC6A8C7F9E37C2EA4C6B72E3451922761AC274B5CC8569CCB93917A748E93C190320E3F1381E08CCCCA70903975AE25689C12709C8E9096B16A26E4439C2552A088194368B36EFE3871A6A1CD54CA0C70974AC936E45DCA01DE296A14C7D20652999E61841DCBA6C0171FCB406E14A95B0C02517447BB9370996176BFDC5BEB4316C0ED34A13431E34AB27D9DCCD3DDAA49D314659BB8D89325099D0B06931796CE65C0628C817393BB1870F19A10CFE3546D8BBC2509058327626F490A1BBCA6FBB653EE1C3555203353509AB14B64CF8A29C32B17096805B8D751848DC4494279266F2CC474228B2B703CFF81F0F29152F4570151517995262D705AFFFC08DD413C12F37B605BC32ECC1292B9AC99E4A34F911C8DB990ECC9A3DFB37517446908B91B1172A3D4F547B3AA642709BA40C3939734545DDB6B45C66A1A3E58C6D1929E5721BFC6A6021A635D86C8378D4A0BA68CE385B6B7FB983EC4A95C8B20B3EC750B082BF2CEC89A6F8C2881650E5B71A0135C865BB3FB12A4C2C3C917D655A2997984C8557ECF1943436A9FECC5C84808E38701CC26A251F458334F59BD40BB0D8F82E74071A5AE3C9439541AEE59C6E46A5852834CE5712B3665018154C5339467D606AF189CCF20C68C583C96D969815109CD3ECAD4F5AB0A8BB8A7B68359B0319078A7405821C2709A615864422BA0A3970C8EA138FFC1522B1A53ED1C71D396A0ED6B782C6552C70216679BB4761A600634276D553CD703897C6943A859112CAF9A7AC99517C23CE6457AA069B6FD2775EFB262DBC27B02FE6923D14B047A25CDC6B86D20A55D85108FF276F121A352E098E5D4CC3EF92B3A1C4A38244621B055D5F812189F6941B492330FB1AB0A442A656655455B38B522DED5640CC4136DF6CBF4C4B0651531CD8C95280E2AF13FC57C977BBD1A8BDD253096EA98C3AB33A516448A8301A4B141AE213BAD2F640B2D5846C99A25884360F604333197816BA9DD1D0C427C5B8D3A6B434207B8539CE5092CCDA67A755D6A6D7E8BB6BB02AF1CA7283E797F24A1042D29B64262F29B0482B840BD70A3D6D54205DF412DD6490E3DC38C1236758F65E461B11CA480B476875C692508E7BB90C430797E1917041642D88506C07255AA92EA32508462C2F4A1661C05114C9361F651B7C5FF70B42659FFEE71F58CB79E445536B8948142CB4EC16CFE5B21DA659C2DCE452346323F1632C37F128A6525F40E03D6C073E05476252B2B0483C4B87C1C1FD8C972CF651EB9684FAFBA3F862C8619C089F01277C14BE7CF7790712CA1E8877A48909EFA31D814C1C21F4A151B886076840546419A1C8B6CA4466389A3F6DBB69E8494D7B25A4E9B234A8D928A26B946FF305B8A33B0BF8B3EB992D68C312B4074788E69D1A5A211C3B55F8C654AE778FBADA1D75FB23966A42C4F189D861760F7A5F30F358DFDC482014C25845706577763BA60EA00A378DAA1B0CD1C15C5C04BF847BABD0CCDA7C61B0A956229BC992029DAB7B05923C5DEECC595D766C0040946A229259C75E9985BC0519218DF44DAD36ABF20C2BAA92C3C34CB911D77C0E7603E8639FD2870CE0F6BDECD193C8C261C53A9EC8D4767303480529AE2CD23561C9215476C617453274881092443076E731A459CF603A7CFE81804FD1C8293BAEC711A694F98F59D01CDF79827E777B9E452F0A388A7E7CB83BA37676D2B70AFB02C7CC0FD2A05411F41732233BFFD8917D9726657C68C4E34F1983B6007B43CEB87A6FA033B3C674A090999CC94A4F2889A8B71E5228C1F92C16DB841099C57A73005F81A5CFC97A3A1BB6092AD60EAE139D9BB174C9591AE20C5DB48390C46BB456E49E124559DBB230CB6B5118078C8BAAC9E959277AA55B521A351BF34F9BF7B18DBB4120EBB60C914D84A80123F338035520620783824C676175CEA40A812D896839993C4CE211118855E5349E84C8604D1C85202275F93924FFE79141EA0ABF85A4C970C45E0ACFB20C426CF545CAEB594907A23BE6CDCD38486EF2CC1234054FA47C50C629657C91E71103C029539E632089461EFFB67A0F8CBE74B91793AB033BD89A2A0A68EF390AC90669AEC42530C785EC3A0DAB424C8184BB051780B4E80838539C81A5097D42CB854CBF324A26F3CC65024A6404CC2A335378FD10ADC8E10CB99C323DDC55E70B32A06CBFAB829E53AA059163C46339B7FA1090244A358DC647D4B1783B59383A0988ACE605AD979F655038AA422981ABABAA0C2F28899A352572F4F6515D62649CF88591AB7DA91CA2C0E44AEFD16ED3F174CBD0BEDB7736363C609EBA4655B2A31BA20F05E412282B28E15125EB212596E0C54181028CEC9B106849AC366F62E8C1C5EC9502F01ECFC1749FA3BD7B251B2A09C731C468DC2988F69649FA9B46E9D244DF903AC9004F09CB1DBCC9C69B33AB9E928FD2072CFED1186F9799EE3C2CCC2B68A3D662C7FB4438240D6E0B70CE98478E6C28294047400B9088EB4AAE3A5A076979AF8AB4234164B0846A9904ADE949742D7402C8516CCBFB1D30581A288C9D1C69360A2B06B21541382AC9B4101B96D4952E89725258CF7FD33AC4F522D12B6F65B884F33A0A4D1B0E41D660D0861BECA59164F8760D3274D6643EF7D13043D63A4CEC67961C808CD64B9728872F74412B8867A2E25CC58174653B2A1A0AC0A24316F4C14281A0A739BAB2DE26BA73C4921C50B909D188E8B3C4DB1274491C792028515930AD45E667C9E6870D204554556BFFF44D09F95FE9DCB7370320BC6740F3053EC5B7396DB400AC671B01F33DBAE59838741B59E4C7F076A92CE92C5213ADADC47C8F50BCD4756DE7642799D5477967339E01455E6898D2194A7AA724338946B7DB70608C0337E305AC876F3D87C6AD857162E491E469BF62C26285F9B817858B149358CB67248A298CB21771F1504F4997965EA38036D274AD72849164262FB58F46CC96FFD75F23B4A0C990A9D59160E4365B07909F7874A22EF1362035312F43B6272BC47EEC6CE9C0B4418B60C5022502485BD92730EE75A9BB4A8C81A03AD4B292F14746FE686C5588B842646B59A38F6FBCAE85F3491C38ABF066CEE2F4A285E961395BBE274C268A11AFD003BEABB50D12B8550EB3008DDBCA593C7BBDF6768FB561AC452D32C77D74352310E4322EE53B9BA879D511368B445DF20AA17A7AC8F205A302F75F3C679557F2A37DE221CDE6C8F7248E73EC25DE603AFBC5BAF1B076DC3B304550C198B6B49159C12490BD964B661E6AC0EEB2B09A78941675A2132527D0016D89EA6B3CEC5D19F1818E4501134947A547957A195807774A8C40A9C50833790ABA5628C2EEC2148DD0430294B331235D4246770C293046A237F03487993043573A71F250090AEB01DCECAE4B878633C59B5403ABB02151D8048DAD408473D63CDD018D3D295A46AB556C8ACA53495683976B2186C6C818B852005D20964CDBCB6061A50910B9C429BA9F10A06F4E053C9E1C4CBEAAC35949C8F23C3E890234CA990B2BC890D43C2A4051AA058A402B7CAF4A3925F52C95C6B6C7D26B4E3D43B21D7B0FFF3B37E5D33E391B5E617785F52128C581969E094D82D062A8631A76B093703626D8708C5F310ABC1951EE8984BF858A7B582038A6A624F5921257764890B73CC9AF94E5AA82D831F341486AAC17CF29AC351483F7F26C80111F6715634AB69CA71A6893B13BBF50CF58C16B29D6B7C9B58FB3C0B9295A6320210F1DB8193BB8A57889A28CE3B196F32CEF048A4D60466E3857C07847E3883C1B7BAB89224C94FABB3FDB921EE3C7FB716AE8C520D547B1AC49CBAD256EF43015FBD722B8B31D6DB24937338E6614402D9272ED014710FC5B0A7105E6659DE2513101B22C81DBA972FABBF23756B5D524D41A15B6D682A1894E8439B6946C64D10732AC603992353F03E61C1A136011B52C624B0943A3464EE92B8A7B970AB5BA9713205E4A22B6A12E063C35E8C65470B32F9E29255D9847DE80CAE1091FA536213078BBA0181FA33BAD7F3003D2065B8D997A7207B595994E816A1979AC5174137EAD82BD88295F2CBC77E01C0FC9119FFCF25D8F2044A16ACA9CA052BF917746109320DC076E1895399741EE690702B477A2D07242E03DAB4664CFB4A4AA443F32D16B72616A0DB4D3849FC41A7A6BA87F4AF757A0AB1956518FF0D1ACD4FE1BD3BAD938C23EC5A7F320766E01005E32769724ABB4EBAC578DEF729B5A50627688A4CB3E37CC0FEF22162DDBD848E5AA641731F8E60B4B79C93F +encap_coins = 187361C0147168EFC571FC7C181BB39144A8F7EA3E878D28024D19BA42135BD8 +ct = DD5CAD769CDD193A65B6A5F96448C8745CA3F06E7478BFE6F0CF4C987CE5E77A233916A450EC7E77EFD13C3E076286E30F53BD9D7A77AE77981A36112AAFF8A542C4BCE00D94DDFB7E06970952C99486F44A74A92F8CBBD0113030099C1AA594136774C4B1A71E63718BF4A4129CBF66612EBA54E0FE810DA23E30EB89AAF8032EF6161E03FE44050BEBCA0F1359D8783801BB90EB5FCDBDDFB25603531B9F9D13137FE96DDAF3B3361FD41B1930DDF0A8349975AF652A07853DA910B4C26197093878DA3A015C2B30F6556C20C50D122C81C51736D23E4BFE04BB5F4939D5BD0F83A0262D3F06FF94BE021B77D4C023ECDDFF8906DBD9B225813A1FD16A9F6E4AF9604DD20384133CEF9328743C09BBA63B0D9B622FCFB788ED889CDD9EEC9B8DDF71D7955A68B572D7AE05C91DDFBA99C9645BC2C3590B7178290AEC8A78499F115EE970D35DB6531DE304D9219B41E085A6437E89C0CA2CFA44874784A510954039CAC353D357C801463045D3A5AECE6C3F5C3E852F3128C8784C8E68BA187E4CD2A6BC17BA1B2709560252EA808D931D79BC0980B10D1CD542B1C46B825548132F3E0DD8620FE5985BBA90ECC59FD1B1A64C93B23F0EEA2E9EFCB867AF668EB67F9D354AA621F66B8789A6754657C72756560043FABB50C77BCF6CC45DE536251F424E6C91308D47A6BB088BD9E2F83B1209BFE5387901A66090154FD390215658D6CBC666611C355CA86563780E482B4621AF4EA48D3DE44B0A8965ECD64026FEBE93E5D17FC953E15EE362CEB237A7F8E5B89D05B25E339CC2750EF390411B5C5E581080DAFDF4674B2B371E5EBA9D69DBB655AD79E20641E8CB97EF3B0FF8D70981873A7939940518F1572789A5779E9A8AEDCC817A2AD5654D4885E4C7D61CDFA4C7479EB73D2F52638205670BF5B110CB84ECFE722FB8DE157098D5A3BA432FDD10DDA98CA34300B0589C71DB242E8B184CD24A4E67C47EDE8F5004654A3AFC475764150F3848990A363E1C04358E480B4DB0B5AED5C95192546AFD1A2B98B44696B06C840B006857D196E94FE0944A9D62D3BE3F7D4C01CA1DB37379CB1F97C2413F680E58DBF8E4FBB95AE827824F443A3E69402E3B3903DD1496F8737BD865D9BFBC5678968EB41F4664389D2135946B3D5DD5F7BB970133408D4A495640C4AED4E955724D863C7C7DD0C98F35BBF52B84D413FC50A6F271F2487E98D5BE57A15355E5648564ABF7B54B801CA899AFF040ED9FCDDA18752E3BDAA2AAF3836228BAD584591BE783C44E31C4165C289863C7A7BF610E5F682C4F6A9E6CBBF3FF217391D415116505FB51C87B5D6CC3F663CE4DDF0D8FE5297352CF52D497002C86DEE0D05CE18E80FB96BC0B542FDD641A60E2727CDDF7BF8EAD71E96D7ED967280BC308DBB65EC823FF8B4787050082B95A3A59F48EB9F6F4211EA87AEA7D0D70C944D46835C97BCE61CFE77F444272B114BE785A72203D190E435A8C30748A1950F5ADDEBA42167D0B080BA0330C0EB1613BB472D41674D26ACD6007121FB3B3203540551D6D21E0C47D16177B30817EC76856EDC4BA1614CFEF11FA4FE719E90E01729D125AFEFF91A2B77F0E4F44B409C609F79B3C2CD4565F81F45EB009C74E71F0400B636AD72A4178B459F136183114C63B1EA3810A9596CC86A910EF32E559E76CFBAB86A289626E8CFB74F0AE1365B5DEAA5B7912C68C4DD07718BDA8245733B554B45037B791829D97280627CA7C0BCC53BA05127E9199CC6171D9D7C275EB272D2D843E67FFA4054DE2082174B6F931B352C52035BFB37EFFEC3B78824AB2B8A7E099D9514B1FD73674BC6A85F306C408B83783420EB68E05E46534C2AD4D55B0CC5FCF0B2B029D44F54EA62A224DE439744367B219434F8D4C35700B2805ECF8DD71D14A5C539AC8B13CE0172FC06377C8A45F57661514F9E8EC381EC49F5CE495FFA2A5B1DD1B6EDD60BDFA95F20168C02DAB96654E2BB5B07DABE011F8E07449B683201B02AF39A2AD7714C5C019F62D13E875B5450B2C9677D97EC36A5400E3D5A856A09B87D17B5CED72523F40B47FBA1BE4DD2DA88467D4CB3B0B9E613DFDA10484BCB17C151DBDD7265F87CB1FF6EBDEA91D3E557F40DCA90CE171D890D175AD4C4440E1F7AE2197322761CAADB347B977290D18FD6228BC5A1E6FFE19EB49B1F280B3A5DED2D88A1EAAC3A28E64FF1BB26B +ss = A3F4F9E5C9370163EF03945FC448770A2FE7106772D742131B9E264114E0BA16 + +count = 7 +keypair_coins = D86634ECF96CC2603761E284C0E36734CEDEC64E7FF486469E38539C71141C5A0472C3D61E4CAE91B22D2F5A316794C723FBCF7546DB47A42A15F1450CA3282D +pk = D5BA702B276804716279E61C4B3A599005270578414141C09D070D9302CBB10AAC8B8483F11B1044CB83EFB8315FF38FECCB09D1775E1E29C59B1759D894CCAFBC147B228DEBB52E83D2584552BD15B9B18F02BA12C6669EF94190126F6FE364D106A9D4762522F25A0298CB5E40CD6B89045F275456E8BC32E2C11835B31E6AA628E50E28A9A18226C73343479D0AC61E5A81C6A38C0506477E58001B6890155C3A71F21E1DF151660C376CC61D90D93331801B31DBA89B6853C2630D33578551399164DB647665AD52F912831A956B8AB283F91C10209B0B055BA765CC75587DF545B670EA13C6B917393666BD6A9E07A21AC46CBF3B5CC5A079488F97902583BF61F5A7074BABAABC837B02600C03C9F8F1481414A241766DF430A6DEC7936DB2374EBA1DDDCAA58C8A2984094C57349A78102A48E48C450CA7135A057EB2858A6176E67316AD21122C44643FD42CDED7CAA55A628A503366077058B286AEA157E540C598822C3736AABA5298A41765FB949190977456E1B5C1810DB1301342104B9526A82459A0F78B9A7E74808A49243A0902D8C6485F887CE62697A72474A1FAB0D1342D5AB7A8D9EA38D3B129661C2CEAC177D63A59D5B62BE8A11379A51055B36EF78817B677AC30F05BD38C700CDA17D52B02E8B19F09354AE074B4365AB379667744363B9D4BA17C061EF955631F1CA916A74CDDF05160B82994C49688D71612676BB0D95F6FC58D92970FB71C3C2A250B4161B32B3405ABD605D0A94AE017BB28801EA54588BBF0B9CAA8CB5920BB02730454085871469CBCCBBB26911D934680AFDA6EDE5B29B0E4A0F9B15D13392647EC9AB1922943C88DCA974AF1C95D01866E906221C901319E2BB4DB5807D3B22EBC077834C29AA555226903A4B53C7B5D29C226144095E03A4886A18A26B99F389A71C41849F10FAFE816D213BE109AB7ED104114678D16242547EBB69F55BAE884535889BACC55A44E1AB9EED3BD23456E0FAC2D2405BEF464CC60C58EFC595DA6C1ADA9200D8EB1631F119E99B38970DB26BE02333BE37E661C2BCB483DD1156A7E016DBE39AF9BA9A7A6FA8173033BF4283E5160B1B2D4914F453BCF3406304859205118C6056243209C87A76A7C3259258786E6C64B0405BB8AE22E33B1617BC9815BF57B182748CBC6C4E8CAC9A9A22965E560FAC66BEEE32F7B8248C241CB3213194221C704BC821185041AE5510689A8D7C4CE5A6C3720E9C845116D2B3B9DE703937BF500C9249FD3B2B134998CA657562B19857F6ACF575264EB1B0B27D50049542D3F87041DDB755CFB340FD122E4C46663A7B556921B41B50713D71CB20A7888955689FA4E43172F134B1A2B628119C22C391408B16092CD6C8FCD6CAD8EF34E129C6D5FB8881725A3B8180A14CCB625A65AE7C59F8B7888AFB126F2D8AE8457A273C453CFE69726D951B3A241DF583AF9995DCBD73223884560258459D0BCA1E794C94214276547D3D740A8608C33662EDA195F4E26B90D86955C2B4C8470592D1C075BBA0FB49B6732B2954FE76D0DC3B3E840865FDAC146F03BA0F336F0397C6FD450770A2BFA5837F46096D3C673C562C9CE79B5E978C2A40450ED36B43210386A769DE3A9063B93455B694C5CB3837E865AE61B82AA96661E57C41E405D260BC7AC84CC0E1C7515C47C320C61723177F0F57F599958DEC24A3F81AB7F1B759C61487A243FF13790DE540BBD1B90AF233D8658B2805152183BB220E1CE017795BA97753E9C06620A85D4E28591AA6C1F440240E9C22A9ACBDB568A98EB745EF435805CC00C2722B0822C1A88B8B80CD05AD2A69C6A356889C2389AC128C49D627A1F3C844EC85B82A405A2E1834CB753B415E32629B7397713AAC7C70EF01A7BB3DB86AE13B4ED51CC77E2A90DE08C77D6938B903E05913477D1C38C98A80DD034CAA3746018BC32034B27602732BB0A9CCA9DABDB795C6BBE181576E69413C419674B646386B62C0EB8251572A630B087851892BBF726FCA0B7DD8A170F19100D6087C191AB56F066A3F61F973C47FC62C331287DEC02518039B32E7C320376B0FD82788E2A8EF38B1DD977889C2712AD258D4FEB5F7426A4ED147E742B0995A97C2AD876E1860AAC6CCAA82287EDC68267362EA53BA9D0D91549A448FBB43E3F90802AD3702602E6D28FDACDBD2A03546764C4FC1C62C0EFB3462C7C88AB8D94E20B +sk = 0FCBAC2FD83A9EEACE0215C784E20260F0991B225897E94ECF93368B79565B478731537EAC74550CD599D5268E03A25CF327606686AB8864677907A3C3555018B478FBE125498652D5259A31C2B4649C14C89BBC5758A9B53C64E95BC9CE30C306372D431CBC642C0D60E25136C3919F3BB48B280B9D5CA0B21BB4E1510AC49AABDF02C9FD66420B475D0731918A4A5D3C7A963A468FB7A86C128988EC36C34F475F2B87791F5604863BA6DCA297EE29238BA79EEEC5096E9B336CF0B24DBCC9FEB8BFD77AC888554472D7732E7492C231302A073680C684870B86A05592355BAF2620B51DDC7B17C9328D7A74DA6367D9EC2B87E9221C297B5398CFB55C10E8A68323AABBED806C2272C192FB180E7A5B958A02DCA5C55654A43C74216B192522BC2A2DC05BF865062CF56839831EBB837A3ED8C7368C15933730667B7463AB7026848BC9BA14616B2E88E17ACA4109B5DB56510B408465523307619FCA752919B947EB40E5E8C19A7B4A9099734D648DAAC8C81C1C628C895400E245DF8A324899273EFB441B564305EC48AB305C69D37E846AC9B77A2917915E82286DDB397936769BE7E37FA7F27A003090C7F2B9B395A41370B5A38C07C2D8314627267FA06BFC416D8AC1155DF645C6150BEE70C4CAD8C6A5C564BA2571C9BC9BFAF0C2D12578C8198D49E1414CBA5749D712556A537A4131F3F085F9047735482E23342B218101AD30122113060CCA4196F778C77CAD2EE58B6F23071A85B79C1215F0A7C8745ABCDB768C3C26042D09A9A0355A5C45745D1ACF52C205B949ACF581AB75CAC74F2364406A43A74269645166FE167642900D169A1E84929DA4CB361E80C42DC702A79364F1D664528B6CEC667BF230078AF06A0B48466DC90B34EA7101512E37D8BA3A351D7023AEE652351AE514B8D217FAF09A07654B0CBA1850041D7206CECB05C8F6703F762C97DBF82255DAAFCC3608E8891E3AD8B3D4E18DBCF6A1C2E74CDEB87D15236D70943DAA722481692890A548D7C69A14FCC1155202CA4941C3900B57A452F281091A94781C64A9583C8D302C21484CC6159B88A931AEDC4291E097982EEB0528C152A43B97DEA2A0B36922FC60C226B61068C792F377B9F655940D73702D41BC515086E8F9266C53A4C15A35907CB2FC2A2F19BC5F974034677A33B648322CC9BFCC6B947B5346DF2044249623E53430895295327C9B35F59ECD4A9521F4B93A4C031A624C12F40BA17B9F36908E462B928AD452EC74B84F9B5C1C69660038C85D6743F8A5A65B3787B5640D683B7A45009A1EFCB5E50A35244C9431F21F1B6826311673832CCBC1794FEA917268F5323726698F67BDB41BCC012218929649C972149393845DCBAC7FB58582964405D4ADEB814037A39E512C3FCF72A22AB70E21FBA3822B493DF9983866412F0439E1A613914042C982739031949B2780D8133E13E632FC4281DE567A333C5D8AD458B848CCD65BC87A8B6B29134556A6780EB7B02E4437AE69C09E304210D5CCE3CA3DFEF261A809BC5DC44787A20AFFF49F3E0156E7B428AE1CBD3292C9D818844D4767342708E4016EB9BB0F7099876C26729F443E7CB3B9666441DBA01C8397953F586E3DA4572AC12D00CDA40B715E50422849ABA436C1AED529A50A2448AD772495C6358C8050B323B6636871E092AAAAF75CC2D869DCD71E870384A6C2C51000CCE0515A8C2459F3966C853749D27809905118CD897FE04A76F196A98B71A5B7405E72E9BB7B3B3F0638016BF15D45E60EA054834EF3AF6D2817B59C1BB5740986D626FBB8A98AF56ED2CA9828643E3BB604E256B6FF8830606A68779A659962B7837BC46FA9781A1A8AE398AB313C597A4B7070CB1B7DEA82A6496F3D00ADEFEB361C980691EA7D261982EAE4B80AC5550A91532F81971B05908DD84BA13544D2F00615BB9FFBA14FBD4B6A5EE46F5B6701F064A25DCC4A8425073F63AC00F41A194409B4E12195B8910BE7848EC8454DA99C0A0C839371A1907183BBD926FD8A107E2160AA8443ACE7C77743C5461C37B4712160D5B08AEC019025651038C7FA975A261578A82865B1D034A7FB9785696DDEA901B1DC3E07E18C456B85464A0A04D91B56311393F51C56F4763AAAA4DAA788F9E631B8E92660D2850B738686706531F72BD5BA702B276804716279E61C4B3A599005270578414141C09D070D9302CBB10AAC8B8483F11B1044CB83EFB8315FF38FECCB09D1775E1E29C59B1759D894CCAFBC147B228DEBB52E83D2584552BD15B9B18F02BA12C6669EF94190126F6FE364D106A9D4762522F25A0298CB5E40CD6B89045F275456E8BC32E2C11835B31E6AA628E50E28A9A18226C73343479D0AC61E5A81C6A38C0506477E58001B6890155C3A71F21E1DF151660C376CC61D90D93331801B31DBA89B6853C2630D33578551399164DB647665AD52F912831A956B8AB283F91C10209B0B055BA765CC75587DF545B670EA13C6B917393666BD6A9E07A21AC46CBF3B5CC5A079488F97902583BF61F5A7074BABAABC837B02600C03C9F8F1481414A241766DF430A6DEC7936DB2374EBA1DDDCAA58C8A2984094C57349A78102A48E48C450CA7135A057EB2858A6176E67316AD21122C44643FD42CDED7CAA55A628A503366077058B286AEA157E540C598822C3736AABA5298A41765FB949190977456E1B5C1810DB1301342104B9526A82459A0F78B9A7E74808A49243A0902D8C6485F887CE62697A72474A1FAB0D1342D5AB7A8D9EA38D3B129661C2CEAC177D63A59D5B62BE8A11379A51055B36EF78817B677AC30F05BD38C700CDA17D52B02E8B19F09354AE074B4365AB379667744363B9D4BA17C061EF955631F1CA916A74CDDF05160B82994C49688D71612676BB0D95F6FC58D92970FB71C3C2A250B4161B32B3405ABD605D0A94AE017BB28801EA54588BBF0B9CAA8CB5920BB02730454085871469CBCCBBB26911D934680AFDA6EDE5B29B0E4A0F9B15D13392647EC9AB1922943C88DCA974AF1C95D01866E906221C901319E2BB4DB5807D3B22EBC077834C29AA555226903A4B53C7B5D29C226144095E03A4886A18A26B99F389A71C41849F10FAFE816D213BE109AB7ED104114678D16242547EBB69F55BAE884535889BACC55A44E1AB9EED3BD23456E0FAC2D2405BEF464CC60C58EFC595DA6C1ADA9200D8EB1631F119E99B38970DB26BE02333BE37E661C2BCB483DD1156A7E016DBE39AF9BA9A7A6FA8173033BF4283E5160B1B2D4914F453BCF3406304859205118C6056243209C87A76A7C3259258786E6C64B0405BB8AE22E33B1617BC9815BF57B182748CBC6C4E8CAC9A9A22965E560FAC66BEEE32F7B8248C241CB3213194221C704BC821185041AE5510689A8D7C4CE5A6C3720E9C845116D2B3B9DE703937BF500C9249FD3B2B134998CA657562B19857F6ACF575264EB1B0B27D50049542D3F87041DDB755CFB340FD122E4C46663A7B556921B41B50713D71CB20A7888955689FA4E43172F134B1A2B628119C22C391408B16092CD6C8FCD6CAD8EF34E129C6D5FB8881725A3B8180A14CCB625A65AE7C59F8B7888AFB126F2D8AE8457A273C453CFE69726D951B3A241DF583AF9995DCBD73223884560258459D0BCA1E794C94214276547D3D740A8608C33662EDA195F4E26B90D86955C2B4C8470592D1C075BBA0FB49B6732B2954FE76D0DC3B3E840865FDAC146F03BA0F336F0397C6FD450770A2BFA5837F46096D3C673C562C9CE79B5E978C2A40450ED36B43210386A769DE3A9063B93455B694C5CB3837E865AE61B82AA96661E57C41E405D260BC7AC84CC0E1C7515C47C320C61723177F0F57F599958DEC24A3F81AB7F1B759C61487A243FF13790DE540BBD1B90AF233D8658B2805152183BB220E1CE017795BA97753E9C06620A85D4E28591AA6C1F440240E9C22A9ACBDB568A98EB745EF435805CC00C2722B0822C1A88B8B80CD05AD2A69C6A356889C2389AC128C49D627A1F3C844EC85B82A405A2E1834CB753B415E32629B7397713AAC7C70EF01A7BB3DB86AE13B4ED51CC77E2A90DE08C77D6938B903E05913477D1C38C98A80DD034CAA3746018BC32034B27602732BB0A9CCA9DABDB795C6BBE181576E69413C419674B646386B62C0EB8251572A630B087851892BBF726FCA0B7DD8A170F19100D6087C191AB56F066A3F61F973C47FC62C331287DEC02518039B32E7C320376B0FD82788E2A8EF38B1DD977889C2712AD258D4FEB5F7426A4ED147E742B0995A97C2AD876E1860AAC6CCAA82287EDC68267362EA53BA9D0D91549A448FBB43E3F90802AD3702602E6D28FDACDBD2A03546764C4FC1C62C0EFB3462C7C88AB8D94E20B7008DB565F7AB9C362DC38DCD3E30E5DA873C559E9A9222710E8D2E7F6417CE60472C3D61E4CAE91B22D2F5A316794C723FBCF7546DB47A42A15F1450CA3282D +encap_coins = 295F219917D44B474DE067472CC832406BCD18447DF12F87BD117662CB0F2E77 +ct = D29819A3521001AF59441767F702979AA595AEE4D234FF4EC8865D4DCCD0599DFE2F7A4A2A7B1952EF527B9935CEB4054AA78C5B14FA31FB7A8C98F46769E6C736DA874D6F418621C665B7E51432C8B47E02BBB8013A8646537C9A881F15DAC1D12E1E7745CE710C3532CE1ABCCEFDCC84E3DF19DC0B2C9F19AD3A3D726D78FA0BE0C7E9C0B5A4DE14958E0735504DAE4724827AF1D700410B5A08CEC30B5A026357E60B8E6A38330C85F8BA5280B994485EA2F54B082E8A6E5065F95B1C7900F273CCD06435CC59A48AD0EA5CECF0D5CBDDE8AFF1E3FC2F34F3BC4178666DB011E7BED0B4AC0F4E90E15622423407148A3BC5A581D7DABC868C67F42477D4FBD29E2705EA408C8C7BE28E7D2FCE2E222E1F786930B94D695B3233272B52AF7652D9E2B8C01587043B334AC92A676B7474CAC0C9E4FFACE5847B6A2A847A05A1A7CEAF50836BC0B7029707D41761F94E1320F9DC30689DF0E9E0B4B123CC3DB68552FE57F027A80FA80957BAECA2F7D0B191A3DC85348758F301FC9D96F891717AC673681A585AB5419A15BBF470F13C305254475226D8CAF1DC2D7EA51D854F5668D8452525967D896955842B2FA47DF8EF2735AD30C256C708963E1C30EEF2F7164A3A8148F70ED79886D4150349E9116F9366D66C4C32CC657A938300AA3A0E57E3D62084B64B4864EFB41C7A85132EE9E138802A2C443913DF50AFFEB0E609EADE3BAF578BE82DFCD50D14725632D45D3744DF797F39468C6DD0042112C537DE070DEF79FD03CC4330D991B4CF31E330BCC59EB52145CB9F1B5C16C114266BC613FAB085F99C10FF47FF91582005140B06771C51744F3EBB6BC4A744A0D628B532B259675464079D54452F0C68CBCF780490821A4D053AAD854FF9CEC7826355B037C9E66CC9931720B9975B5BB7934110AFD73D382CF71A666291063DDB93471AD1B2B6867ADBAAA7772759B21E93018E173A6B468E3F645B1CE581EC8EFC8A31F7413580758F9647A3BA415F200EF70F4DF9F70CA3C52B3C4E71E8B05E573DD7A65EE487D08C3FC86C230FFDFC0A401E20CEB433DEFF89B9CBCF3ECF8655E8DC7C7E414D07EF2EAC12528631AF458D0FB716606947DF734C9E5950CA0445595ACD7A3D0BE6286D5BD671835151B18784A5A498FB1996A93DDB49DA5435D2C9FC2396384C9BAF055616F488D24074524C071E6F92EF282824FACE6AA72F1CCD0764D3162FF27BFE0AD0E808C1C3F642AA65C389B0AB34D0A59F7B0FB5C0D8D2877814F7E26233A37D323715CDCD6197F67E03538B0A9D92D4CFDD3F114D469BFF3D8AA16FFC72910BC3839FEB0175798FFE087429D93F6E4B402963C0DF5B41E266CF95EFC0E5EAA21680453CD3C9802E2F4BBD2F9FE5641EDA93FDF9E9CF674EED591A5EAF8E6F599F238A4015C9B0D29A6DAA63E6E7D38F54CD9A8C84922099FE7F5DFBE532866CC0E2AD6C70B27B699A08CCE3AEB3D64C651DB25D2E901447836FEDDB20F0E23D0FCFF1AD01CAED25EAABF998AF108AC30DE7F155812DD7646D70D9F4A483315E25DF179EA593A43D1CA521E6A18FC62BE9998A826ECB015E0F006FCA7EA6DCD6C2D93FE24039AB06DBF1F95D16175CA86B176EBFFDF20D66C81E4850687E1EE2ABC4C51ACEB554DC8E72FE10B6BC761722554DC049050EF2205D67B1AACE8EBC226BB182DFBF236ADD8E03B04D9BF2BE8C09F7FD5917932AC9242B0BB363D1EF01048BB0179DCCB4D9C243800A0F91701581CC8DD0DA265554A5331C2B9BCFC32D113019585FC09DD7F1B6E7BA2DF20481711DF825D517CB8A4E9F4014762075C443F5A0187961D53BC28295C10530DAE213EB6C603929160547280FCBD8A21FED3EF2E42685E0E5389CB5412B93DCED3ED7FC1DE2F431AF610094917F72344A1C26F545D78A1259E58731E247324072E15CA07635464D157309278C2013C256501130316CF33F092590254EB8109A5C3AB18956B61B2A5D491F0EAAE6268FE503ACAE401ABE2AB634C43FDC11FF5859B159AFBE8FA78579CD175AC3021F9370CC17C1CDCFA9466A66B820BF28085B17E5AA065A486C64F5EB1735A266D031388FEC9E45C0AA9B28ECA3EAA88BD9DA38242A14C2F441D1B7D9BD64FB16AA935872698F6B0CDCC34E276C91B7805789A3918FCCB4F6E8FDD485E6C5B1750C86ED8A91F6D9A9ECCB2E95165403B1EA14489DEFD25C64 +ss = 4262DF79A5EAAA98EC3527D7C9E86D669B6A4480810B4E58F50686FC6916409E + +count = 8 +keypair_coins = 0610678FF4DC3128E1619F915DC192C220F8FAD94DA1943B90AAEC401683A49281B292427D57FEEB160F9347348632E1CD340960F6E6EA2422D194A0109AF1DF +pk = 707206A4B96FF9AC116A585F4394C4E83574BD16364B02BCC4C89DAB6231E5CA7550517A335536B08665A136B47CF76EF816B037E91C3AEC389B2411F3B397C70847A3F178509357DB63A5D5CAA882B2079644AF11F01D18D9B79FC92744850A7E8B1C39E479C57B887E854CAD028D17C84F5DD90DBB2042FDFC82DB061AFC7245C458B05F934D08849BEF6BBD90349C4BAC3CE44C1A51C622734265051787F7509A30D9CCF98250B42CC8E75C6D62A5A53944484578B262850E06B8717508C75D702783781290F64A412BC3F741312ECB795D15C17D198334816582209606210B73865FE79662943552B69B11BD141637B054A64497CEA157E9156DA70891DA159C3E138F86C87E27376EAB0204F8EC1EDCF49BA47B1521870E46171D18268D277C1467B3BE6C8C6895461166FC2C3F597FA6478348F640E44530F966C3008902C8625B46CC6120EB2D82506B01E45A9ED7A19F1C0DF13C0346AAB1F2CAB8E01032B1F303147B5EA7E149B4BC19772408CB923E06614C9B1CB76E0B1D2EB1C4D1F6BD8294B280CB9EBAE45CF0943C03B239677B7EA7C71265B04CA7C1580578768DEB1CF10A2898143EF9D1C5D614B76A8322331A09C48422FD8B1C822384AE1886FF108E930692263965E949319AB94EE1B6763E460A0812780428AEE4D446A61254722C9308C512711AB175312E39467AA21BCF454B8289803D85F33400D659DD8369DDE71BE20907651BAE89D861DEF131FF805F56557CAD430D22CB84A4AA65AE68C3F278B5816B86BDF57188240F60B54A8606B74CDA0C47323639A578EDA52575A32EFE03B349B6938D763DBF4C44F13A0F92F75FC091658C60A32691A52C78569F322521799C91AA2CB550C9A683B061647CDE186EA2BA57A8A1CA929420EF1895F2193CC6944A26E2688E611EC0124269F8C9E18C4032B731DB827FE2930D3479528DA2C2ACD56A8182231B501B05C6383B070190782225D732F84273EB9655B2A4C5D04256A64BA74D245CA744CF8A0B516015847CC34F2E98566AD95FDC87A8FD750BFBC28696808F52B13B09E43FF5CC098BB2A80B4C8F6A3C8A805CC6C69B7B02EC4F67651C65268431057FC7D1CADD8C4BA4965D67DB44AB0C54926723A0842546FB0799E71483169AD17B60F9353777765157BC7E25D02EBCF9198C70A53BFC0FC7D51A42E260F7C5222A519937A48492BA079DF30ADAF127DB4CCFF100112E155501B3719A2A209983358771B05B38CEEA677BE4A4B086132C12F4594F427400F6BA5AF4A07673464118CACD99A8AE5501AB22A235173412479CD759139D18900CE6AD44E0CA5AC230CAEB82B6A98DA48B318B620EF7093F06F20B5A0B4B95D986AADA54891A00314094CA9478B790825A368F2F092D2978195EF2C52B64602929837D0B3EFA65A61991AB61D8CD87F618CB9C54A42CBE98D96FF84C84AC39BF89F490ED735945A65A43272D8FF943261C5BDA7A4F1092C9A6B7481F05BC3FF05CA5F1CD0B2BCEB936233E0952F3380C4B7A1612C5628D5A6A05F837597C94AC061658C53F3DA8CCAE56ADFA5A8156638BE426CBEE2025860C105DA76B0E953C69957E649C5BF7151C77160A1D2AC9C541A80AB20C1B866C4FEA987E30790B64B8AA5B12BF3429F47585DDC8780B9A6E1E7A3C030226CEB84AC958BB5F5CA07596BE91E63182CC5B48A7CAF748CBF47186107219DF88962B302010B755E002CCE9D87781E4B717825FADC62A1A95589694581A18A188143D22F1BBF8769B3DA59813FB963A78ADB8D82B6155B02889371DF684E3060134E738C682A03DA9C62D2922C06425FFE8C2E18346E6F5296B7C4722E065D984CD17C8590B202865761162E6576A403E2806BCF618101FD5155702364F6920C45470BC9B1180B259C65BB552253406697E2371224A80045295A0E9B06899D06BF2B5824C9B2E6CA144647B01F45A811102AFC4C7682E4B7FF8BB4464987757752942AC106389C847AB4DACC14C22B40CBED29D1E81C89704C21EA25747114F7B910AE8715B55671FDCA0545007266F08851DC22446436E15827A1E834F270B38E5EC60222B1724C6054AF281747739178C49EE04CE0FD39D5E7CC65644AE9A60303AA54A28A7C0EC4AC2CE7149FB8932EE26B67C2BCE886A5FC9F321F5B06A03FA01D08BF3AEF948095DE1AFE74BBC3BDBB45FD8F92EDDBF0C682C81A98F930F6165 +sk = A5C7981510819EA27D27A945A0F6619D730DD196B6F3A158A4C48ACFB82D1C348540160B0CC665C43C4C0E4567B46867CED06D2CF228D0B64706227593DB7392395B7EA95360105C1BB05472787430654AA03B6E894C2ADD2A0467EA51B9486F3DF18274C0A2079459DF3B9AEAB15D203B466EA426911572251B0C8FB51A31AA142BDC4142E393D3C527C841A03F796E0CF7CC71DACB47456FDD386527BCCF6E43013EEB755924A22E3A55F74A8974B38E06908349FB3DA5887D1A041C8ACC6F07A75198462353942267D7600D5243095BB012D2A70BE0A3FB2BB599832F8AA68652846BA501BAB3AA574AD08BC991C8B86717B87A45041657D0264F35F0C2B70324EAC43D591202CFDB9A7D357489F70F86D6308D3382CF9139106CB28D947AE3BC389EF18B728C1568436B3EF80644009A80F01EF550C794011E44F2812EF507BD55820A872B90E797626B8EF2D94012B4CF639BC5C8A7B87306753F93CB12E46A66C4B2053C037B87C51436CC83B884F7634A6950C419684AF3B78D41006467105F753194144539DF45AC7FA46E71815F53D2304B474A434B02517B083B058AED078DCF86746313BD8108148EA34658613560CA722A126DDA147AF8C5733705BC8343331BACC5B5B80E424CCF6114955056329A68A2A6403D65197C21DA02A390C41EF713A814A798A434145B9E3A5C31A9614CDAC8A8BCAB6B5274490F5C45B2A307F492C28FF40EE39C2068A5826E8466542559E9409FF11B463E9A4EBA0A2172EC8EA6332D3A5BB66531B670C52CC2F8B651B513E60A9E64795369E0C2CF56A9921669299B6B5399537E112AC358112810ABC6945BDE69AADA92552A10219A630E26E4AC7D9B5C7469A960AC64A6D127971296C53A15DF4C847D061E69CC030B9CABC6E58903C5ADC88882CAC147F2888263ECB6AE97A9B2AA245F131E2E2939F5C8BB8FFC012CB578B9BABF90DB062502B1923CA88B35C424FC6524128FD1D7B5CA719F5A9A538A51A97ABABCE07B006EB701AD8490B74462F93648FC39A2004DB6E951B4C8219CE49395891594353B92B6B496D09376FB28711D87221851A5FDAB80CC52A6352C062F06C80F891DA2A07573B42BF0F6CD5D6B63FD4B1C5BF2572FC8460385A642E6290FB79A9B1CB18CBCB34BD87F7EB595F0598C67709D72011FBDD07A0EB6616A88B8E33571BFA7597BE4CBD6976B93E32C2C088DE3AB59DCF2234E553A5B2AB143C46DF13211E816AED6D02BF6C13FA7F8B282237F249AAEDBD3A6FE8771014C1B811C05FE86102C0B0E7E9B961C1000C82408D8A8AA381552920803418C49E1662C7ED8C3D35763C510585A78664EA0012A8A02F34B2BD7E96EE5C298DC296537C985577CAC3E310568353EC2CA8EEAB4BB1EE2393D5B3CDD25305B148FD8AB11F60B5871E9C9359A46A5DA003E98B61D82C51CD9262764301C86268DB87FA6273F9FA3C35B1C1FD822AAF2F74EDF73AB5AF9175070BDD7D5CC7600A516726C3E49348D138D19836391A54954AC4A0C029B1441C37965422019C2CA49CFCA81317A211E22EA2297B865DA163A0AE2A9DC25701E71847A05754CB733620A824F090D591C51C345420E226B8F3B846FD356E78B87F4555783DC39667349257C73FE78A616762278A8696EEB07871C96F9AA472ED463CE592BF0206D231A277CE2CDD00487E8307A97202E45755D6818CD5C9A82114B3BD9C00B9D9AA53ADA6C5A4A0DF518912A86C2483174EBF0C478E4CBAE97B61A023E46528C1D917C230946A1AA76C1766D7E0259B4606F7FCB07579C54CA0424DEDC1842D5307617225FFA8A9DFA03F46A596E343154AAA3FF6B2496B8B972B04F4C985FB7EA87D6E4CFC47490E130712155A88C1329C5119F91FA854E052DD8023A99C31612E791BD807F241227B9E54A9B6CC6421A9E038904B6565E3A91683A6891702BA4CFC576D24B58B0F64FEA1325D0A6C67EE228C9C01B65470D79F086217BB5418109A0B5906B74A2DFC68B34797231C64BFAE38958F636FC94B868961342C66017B8BB1D0B25409325E8012B75C08EB4C9A9735A570F3BB3CCC2838045A94473A65444BD2A783812E031382B5EBAF44279F3195A7C731F49A25C582D31A979A6076625811B62D809BCD23ABBC8C923A888D9D3B875CB723FB52C707206A4B96FF9AC116A585F4394C4E83574BD16364B02BCC4C89DAB6231E5CA7550517A335536B08665A136B47CF76EF816B037E91C3AEC389B2411F3B397C70847A3F178509357DB63A5D5CAA882B2079644AF11F01D18D9B79FC92744850A7E8B1C39E479C57B887E854CAD028D17C84F5DD90DBB2042FDFC82DB061AFC7245C458B05F934D08849BEF6BBD90349C4BAC3CE44C1A51C622734265051787F7509A30D9CCF98250B42CC8E75C6D62A5A53944484578B262850E06B8717508C75D702783781290F64A412BC3F741312ECB795D15C17D198334816582209606210B73865FE79662943552B69B11BD141637B054A64497CEA157E9156DA70891DA159C3E138F86C87E27376EAB0204F8EC1EDCF49BA47B1521870E46171D18268D277C1467B3BE6C8C6895461166FC2C3F597FA6478348F640E44530F966C3008902C8625B46CC6120EB2D82506B01E45A9ED7A19F1C0DF13C0346AAB1F2CAB8E01032B1F303147B5EA7E149B4BC19772408CB923E06614C9B1CB76E0B1D2EB1C4D1F6BD8294B280CB9EBAE45CF0943C03B239677B7EA7C71265B04CA7C1580578768DEB1CF10A2898143EF9D1C5D614B76A8322331A09C48422FD8B1C822384AE1886FF108E930692263965E949319AB94EE1B6763E460A0812780428AEE4D446A61254722C9308C512711AB175312E39467AA21BCF454B8289803D85F33400D659DD8369DDE71BE20907651BAE89D861DEF131FF805F56557CAD430D22CB84A4AA65AE68C3F278B5816B86BDF57188240F60B54A8606B74CDA0C47323639A578EDA52575A32EFE03B349B6938D763DBF4C44F13A0F92F75FC091658C60A32691A52C78569F322521799C91AA2CB550C9A683B061647CDE186EA2BA57A8A1CA929420EF1895F2193CC6944A26E2688E611EC0124269F8C9E18C4032B731DB827FE2930D3479528DA2C2ACD56A8182231B501B05C6383B070190782225D732F84273EB9655B2A4C5D04256A64BA74D245CA744CF8A0B516015847CC34F2E98566AD95FDC87A8FD750BFBC28696808F52B13B09E43FF5CC098BB2A80B4C8F6A3C8A805CC6C69B7B02EC4F67651C65268431057FC7D1CADD8C4BA4965D67DB44AB0C54926723A0842546FB0799E71483169AD17B60F9353777765157BC7E25D02EBCF9198C70A53BFC0FC7D51A42E260F7C5222A519937A48492BA079DF30ADAF127DB4CCFF100112E155501B3719A2A209983358771B05B38CEEA677BE4A4B086132C12F4594F427400F6BA5AF4A07673464118CACD99A8AE5501AB22A235173412479CD759139D18900CE6AD44E0CA5AC230CAEB82B6A98DA48B318B620EF7093F06F20B5A0B4B95D986AADA54891A00314094CA9478B790825A368F2F092D2978195EF2C52B64602929837D0B3EFA65A61991AB61D8CD87F618CB9C54A42CBE98D96FF84C84AC39BF89F490ED735945A65A43272D8FF943261C5BDA7A4F1092C9A6B7481F05BC3FF05CA5F1CD0B2BCEB936233E0952F3380C4B7A1612C5628D5A6A05F837597C94AC061658C53F3DA8CCAE56ADFA5A8156638BE426CBEE2025860C105DA76B0E953C69957E649C5BF7151C77160A1D2AC9C541A80AB20C1B866C4FEA987E30790B64B8AA5B12BF3429F47585DDC8780B9A6E1E7A3C030226CEB84AC958BB5F5CA07596BE91E63182CC5B48A7CAF748CBF47186107219DF88962B302010B755E002CCE9D87781E4B717825FADC62A1A95589694581A18A188143D22F1BBF8769B3DA59813FB963A78ADB8D82B6155B02889371DF684E3060134E738C682A03DA9C62D2922C06425FFE8C2E18346E6F5296B7C4722E065D984CD17C8590B202865761162E6576A403E2806BCF618101FD5155702364F6920C45470BC9B1180B259C65BB552253406697E2371224A80045295A0E9B06899D06BF2B5824C9B2E6CA144647B01F45A811102AFC4C7682E4B7FF8BB4464987757752942AC106389C847AB4DACC14C22B40CBED29D1E81C89704C21EA25747114F7B910AE8715B55671FDCA0545007266F08851DC22446436E15827A1E834F270B38E5EC60222B1724C6054AF281747739178C49EE04CE0FD39D5E7CC65644AE9A60303AA54A28A7C0EC4AC2CE7149FB8932EE26B67C2BCE886A5FC9F321F5B06A03FA01D08BF3AEF948095DE1AFE74BBC3BDBB45FD8F92EDDBF0C682C81A98F930F6165143B9C53320CDB1B7E8D71EFD1F0A1AD5AD1E1CE84DD9FE7C92F19C926388E3C81B292427D57FEEB160F9347348632E1CD340960F6E6EA2422D194A0109AF1DF +encap_coins = 281481109453C6238EB72D8995D5A09BAEB0B830E40FB09ED20E37BDE4826DDB +ct = 11FB2460CE9DD402E3E018086ED1AF88F15355496A827BB37B3FB9BD792DD84C39A1DDE9F2B94C8ACA2695E1A6F5C5D48521A303E9A814C25BDC5D2EAE8B02C34B3D1DF3257E76BD9F797DB3110E3C3D26DB9B22E0E42EA747CA93C3D5E86906050BA3EF8C02DB4788C8B793581FF6BB0DC4E2CC25C5CFB30E78E4F37B03FBF93D5F96B34D3A44ACC347A199B9FAD4C1F0E5A494E833E2DE5B874A031C229FB32C43FBA9F165E447039D32F4677F5A8678E6AF26C62B7526E24F7C046F2B1FB0674F621AD66430B1DFDFA708AC253C89CA5307721B2C1C63F73F0562E5743B56A0E4538F923A1F1420C3F0B818BF6C3A1883C4788425CB75D4F6680F1377A75C6201DCA28D50C883EBF7595E772A0FC5FFA484FC191134C4C907E54D281DAC11D9DBBBE242BF6EFD47B5F8F57732A9F9AE6DB35A1992527AEFE9E04397A9A38927092F5AC39D7E96D7FFE2EF5823A1CAF81216C3ED95953495E0E866F647B580F4C0C04EE92143CEF7AD7156A001AE6A027E21DBF34365D147CF0377604A4B10DD6EB521EA68BAE97414A987DDFFB799430103DC3DAC5CE2B2BA01A863245DCBEF1FD801782AC2F11A6658E9F69A36C22FB4873185452888F735C0AFF92D95DB941079A17C0F7EB251A55477BC51BAF20A178A2E072A6322954B6A09A058D2D8CA988F75E12A7D630282AD20F726706AF4558DAA62A1FBA47FC4E12A3D28A5A1B6B7DB13C222227CAB255E44041B4666C0BA3DF884A11234EA6B679CC5F48573ADDDC14ADEF461F91A8C45872213527CDE7EFD22887C2C225D66173CAD62550822F195B7847B401AAB740D624308AB360C95A8F41943234D1EF29F5DC1601E5D48EB3A41BBFFAA41C4428B15B533F96E354BA9492ACCB6E2AAB5FFBEE2F124466ABA1D4A4A054EC3E2722F5CB4E1A0075732C296FA68B60580F8A4048C04038A82DDB0DD872703C4C5D8F4896F37A0EE02F4569FCC5B4F5E096499E263FC725AF60EF6205F40571C397042A6F763D798AC1A8FBFB5DBFE2634D22E14CF61AB83C7E6BF4115AC6BF942EE1421AE93289171B3691777A4A6985A163DB80FE9D6665EFBFC466055473549FCD08BE4B38F321D30F1261DAE7A7AF8C8866B5AE79D8AC333545EB126CD65F332FF633A9EBAEAEB2639C177E6B4591EB3CBD173EFA2CCD02A8227CBD0C86615260AD16D2C39E194A63AFD4E514B66D9944C9AC3B24B4AF91FD11CA59CC694E8B6625E38A96E8AC83CFA4D3D0C0FE1BFE303234E46F71AEB0065085C1C62954220E2B27E9E4401B727BF6A32664A222ED5E20ADD1BEEDB2BB832DB264860DAFF30D8B7A632AA0FAF56483101ABDAB3A9526FDBDFBFF4BF75F276FA967D633E9D4809E50F544B2F2243795F4E47F2A164F7A9BB2DFC64B626BDDDBF4584C1F29333E85DF04430F8E08AC53576D871D2CA2BAFBD123DF2D5A4F673E3CB7125A36CCE57AC6D1E00D3BC9F1060133012FDED7770F6747A69A60288D8AE35D9918CE583582D54CDDBE9F993F3804D7097FA341158BC54460C75F7F68D76BF433AC3A42AFE39678ABA464185BC6301C56251BED5B0F38DCB9B90DD7A48BB0BF551663D19948C8FEBEB6B29446546343D0A5AD4B737B1A76807352A3E968CF0DFEF41A545EF9B7E82163586E332FF035011646BB318A7DC769A74B592A2192951C8549B83B2C2832E4043A68279BA3E651257AD9B45038998626FE69B6B3792105622F357FA820F2C4F496ACFBE71F5C27240AAD08FF333D4B1E1A6E31ECDAC99599CE7FFC4C34B32506F6575264EB631D827A999C0F7C4E37E0AD667F3FF9443BED907D8F54CBDD2E3977A58120BE6F561D203E35BBB13B9E65C4E65F3EA535B43FD896D9EF27C4BB8AB9F7F36D158DF3EBFC138B3A7B62166CC0D232AADF80DD818D1F57D0A7113C9627BCA961AB374DA1811B8AE756D788AAD3A344DA2AE6239A501A448238A921C5D6000ADB9AAC42590E7D3EAA5E9E0F27E6B1CA9BB22E744D388E5E79B8D9E74A80D142F2684EFA3E14434B3F0844D5994AF5F84F52162503EF047FB3A3282F9D48341F2ADB20C7115C91C69914F9129BF23D5FD277F5B27BDAFCA6732621580279B0F904B24209E08AEB02E33E49D82E790387D19542BE8CA582C28B67B492B0FFD3A0B3ECB045F7F0328790939CD32E5E1AFE3EAF53349D6485BFEAA066271E3AAA5A6D5E9A33B157DD34F5E70F010A4 +ss = AC3740727EAFDCEA34465A1F2889937621955EF577C39864440B75A42BB0E82E + +count = 9 +keypair_coins = D322D56D8EF067BA1F24C92492B9C56DF3A6EF54A304ADC1B69913766A1CE69705224FCA29659D6C7A880A5F20D5FE02DC4491F2F095DCF2DDECBF105014C5A8 +pk = 83306092965DAAF95FAE22AB9782BE28474BAB8785F6030F9B360A861C741619619A74A96FD30CB6334B6FE379C9404F95C5571B2143657C956E031F2A5A03733AA24A73224F89106F7514A8DB8515BB9C7FB4179B9B410B7197DD849C3A869C687705C692842AA8BDFF5169CF0937A0D669BBF54C92651449252245476B4EA5126041B5721002FF129272FCB76952791B635B8BBC6867F051935508AEA7BBCD722C693990E3E8078B1629D21C09E1B417795445FBB857E8FB4F0A1AA6F761657584165D38CE815307E6D778CD63A283E081A5372B0EF040B889CF8041CC324145A571031F5C218CA816354C2C41817F196272976C2FF6115F5257CD13B373BD2A757DAB65D1E1863CA4B7CE559C73CA919198BA574A9EE64047B85A6AFAECC043327E0800CB127468310A965456AC851A768F777053D48C860A403693B607FB6D8CEBADB2149D8FF665A6FC2EF7D2C4D175C2C8BC812D5B3D54695027A91BAF657A60D4BEFE7562BDF620BB3888645A55A0E935BBD8504C27720828AD8CA9A9933B402735564A4A44D7265B602B02CD036A24C23816C96DEB45C2A8CC7D623BC31E8811468A7C2B85C209B27364C4956B6C30C8094AF8401A233C5E4D348980491AD24B04DC2706B502A9C8390BA3F611344C44BF50241CFCAADB7851685C73603B429EAC840C6B9A7ADA53416470F13311C2218017681204E33A588981F66A02B4E97F1CB8AB61E6A7FE45232B5545A3A35EECF43E67A4C29948206088B062B81875B632C1767789563BC947A59305AFC91AC53387925B4B3C7BA24D84AB126D3B88E852433DD0CA40892D3429962BE6CBEAA85A3ABC46A27B525A562670C801F5F0566A7558197600439A2B98B16009F87147C55F99FB109515B125963F7240B12A4535CFA22AB53A3C5EB8C2500CA5EF9B2D26D93115480863843656C59A85B4A40CF8059D063CD2E7115D862015D059D3577CC1803E6450B811ECCE3CC83E039520D6B23EF8576BD342094FF2A908F42F4AD88E483229F4AB41DB2107E48AAF1B32A275425492B7BB423632E42A6C31E320528327713A86B4E83E929B217C69B34EC3AFCE8628C23A6747666735360B7E70BFFDC586CC75C7768C6B9497CE7C93C8938A81A8545244C4756421AC51EC963493C2D72791CFA2C69B58BD5463C544A3CA679B43DDD13AE979BCB158744D45639586959D6AC5784C074D0CA20F326696B607A206895D495F61525793A839A5631CD94BB7E39B609DB1CAAA3144387C46A22B2ED393060A679BCB13A7C781AA7BE1A9D4D3A58A9831F15372825A08D4E41D0E3371E9F796EF0CA50E128AFBB5B83CA78AD7BA50276CA2244B3452D02D803B0E8854181ED57F04AAB2BFBB1A48CB949F570EEB550A9352C3887A2C37341D8881BEFF0ACD11A8714665A05274613FB168FAF6C151277CE03B9F711034E642425AEA6E37F536C27AB4C859A64B96BAECFA10ABE982FAB01E82A48538C12F2F615ABB815F7FBC46D20378C77626FD4447FC088A7CF626180B2443226C0D560D028B54F884825290CB5FFABC1E152626E62816069A8F9965D89A09B9A19B9C8734A2F71808733A49F30BAE54659C375DE1A1181B478E08FB7AD85983D7809A4C7BBF67721BEB9447191A63A10C2CC709A2D9489DBA469AD9C035664AAAD90BB8B7846152218635816EC4B1B39AD3B1E37201FD468A134445E183BCC3430CB2A9015A10B0369C079E60A42D387675DBB292985DBCD4B954C75B56A1152942AD9ECB12C8074C1998710826B4B1044A1C368D4808D081D7BE1658193C1C0F46739EF1043F1EE38E90EA989DB0C9D6D8568EAACCF1E986E4F3B39B596F4BC11E32FA03E10418DBF464F435680DCCB76E0BCE29005950EA7762E0A86FA4CD5E8819F3C95FF713B006155438D9211350C317589A5C599619530B664070F3715BD3947427476124F328B850603533A651A38C4119C2DA956383C0090BF31A378474992636EB10B079B319C821B4BA9336F413929850550C9271F547344E682780EB9D2DC84B742B49EAB256B6D8149A904BA0293A0A40731B98751A71371059B84D323970A385408807BDA11497C42478BCA048B1C50ED3681AA8044E8884458085B4834E313825B3951E8B743A765A166BC1A133573F3AF78DD296A398D581661E2C9A7E548CA42E385CC6A0678F9E9D268FFCE02C4B465A46773432109A75 +sk = B04C33B257B199352A85B55624F1A1A42B2AB72C4810B839B2BB2F51A502CD498AA258373EB3BD43E03973D129E4FCB61DF58986809EC4EA4333659F03DC0FAB236CD4E815D3F9524E90A28A3A0AF869735B362FED9837855429700CB815C43A6E650E54D6267A832DC0385696274E1E73A12B5960A8409A4B4564DE909B797771B4839782526FD69ABF516A73F9EB8130F41CD6103A6E67C6724186D1C709D3D90141B1BC1C028E28324DE4846BCC6837FC243C54DBA144C40FCC6223FD19B8F54C11BC0982FFD366530ABAD387946E1495A3C05D9CFBB62B28778905AB7D576610A74B3DAAC9767A051B153AF7C6BF0177A4074397BE410411CB33DDCB895091990DFB85AEE15E9F288D01EC5628034A4ADB01DA09283493BAFFD36D224B1EFE096289A2AFD427B82F8B04EA44319F4A16BB07BD21026F2EF550B919AD01CB3744B37103EB54E62400E03367001510776698E28B4FC367A77F1B4690CC2916E8CCF1FA55AA3495014724F1E66EF7CA8283D917B501C931274D9808A8103004176BB69783C094BBBBECD5B90EA14E7CDB9768498B22332283F6A079991988AC6A85BB591EF299BC57027B0CA9932A41C14C193467374F133BB8539C2D5164EF11B70B4A2CFCDACDF6841CD835C4F4E174BE3C26B55770ACF4137666A431D669FD5775A71749922C0B223ABE36284FC880C3AA2A41F45A4A299C647D6738585287F7A47B88EA1C6C088C6207646D99CEF5F56A2E02CD3EA85202C7725DFC99D04B2D52600F0F89366A3A83F8DC74E4A27FC58A622061A6332403AE8CBD0179149B841F5E0BA193EC237AC57A4CD5528C10545CB75E35A20C3CE63950C09A7B0810B84124F3A00C9EBB67BDA9B2AB42113E631123B4A85897160637A32EB856D55C2905F7C655D40C84E92E773056D2392D43E33C4F9256DBFC7AA0683802D04D218139F829AE362C1F48096FE47B09756C36873CADC5300CEA8094E6F8925C1B81ADE69FEE5420B7E94555286CDB596E08CAA81F758022B3A949059AE91AA9B78A825703CD53D1235800681DBC7657A777BC267637CA2954C09344110A05E2BB90A83F95990986FB559BB1282778933631701393B705A5C122EC3645C1B364367C83444D30FA438EB3A478A0BAE14270CD49556399085C566D9E6C467DCA66A3F36370693AD5F86A9932773AE5064E9BC73FF7979A5510C88198BEEA7EE2AA494EB046E4D70A3F9CA0F88B234F6918F7EB41DB97A327654836510276E0154E7A4DFA088B8ACC5F02F598D1494BFBD07C3132C5EF6C3B466606B3D93DA2E69C96744095435FCACC2D24C3016002B5C4B988877CCDB9233C490A8B121BA7821B529DE85E638168B0565D50F735D1CB54CBA91CFC1B9EFF882A643121E877C43B6147A2A8266196346859CE53340208253CA419276B884DBB3B7A30AC3DE983C75AD73995A0B62DE7563EC9A4A715BCDF376DFB6433DE691C54E660F4AAA4B184015026B6189415E66C90DD32C0B015AEE63B5D8B3CB9EA206E45AB4938BC86FC54C7598C6553C29AC34B2213B90AFD144C8B4629A560382778B28D666667CAAAD49633A8F985730318EB033374B5CBEBACC7F453CCD8E77C5A9ABC12DA1BC1733EBAF908EC85A79CE5C1E6653026011D5984546C99BDA921087CBB63CADAB07A18AD591899470582AAF443652C723D954F7E529579F4A65F9736BA1B34FBE728215B14EE450A89297C8EA15B0706314B269A8D88CA27210D94A7109F261DD7B6B2BDF32F94C9CF76FB196B6B60451246D97A2B34F05FA23C408782A93452A9FF43A8AF57A59E8305D29237F58C1D2539B49D77284E5583169247B252BC5AF5A9AA958846C0CC0CE76EBC8622013934D2E4A0BA1814DA282312FC6FD9683048FB308B159205E7050F8B2CECFC0E136A623230711574901797826F02159AA69B45865F12712ACB794ACD187309C447DEB51A81643F82945BE8A864EA1BA348B48214E4C003A641D4D74E3000C5A4392FF7D65A5E02915D43C3FA8646E6119A5E23A099F0860039CBCAF82031948C65CCA097633C27D11CEF810936C4358BBABF9997948577B7504BC87DC53BDC96A68A4C5F9EE52AC66748BEBA0A4CB1654836895D795F45423B33D06F927AA53527A2D1C000C18A87F2CC0BB589284DEA64E96C5083306092965DAAF95FAE22AB9782BE28474BAB8785F6030F9B360A861C741619619A74A96FD30CB6334B6FE379C9404F95C5571B2143657C956E031F2A5A03733AA24A73224F89106F7514A8DB8515BB9C7FB4179B9B410B7197DD849C3A869C687705C692842AA8BDFF5169CF0937A0D669BBF54C92651449252245476B4EA5126041B5721002FF129272FCB76952791B635B8BBC6867F051935508AEA7BBCD722C693990E3E8078B1629D21C09E1B417795445FBB857E8FB4F0A1AA6F761657584165D38CE815307E6D778CD63A283E081A5372B0EF040B889CF8041CC324145A571031F5C218CA816354C2C41817F196272976C2FF6115F5257CD13B373BD2A757DAB65D1E1863CA4B7CE559C73CA919198BA574A9EE64047B85A6AFAECC043327E0800CB127468310A965456AC851A768F777053D48C860A403693B607FB6D8CEBADB2149D8FF665A6FC2EF7D2C4D175C2C8BC812D5B3D54695027A91BAF657A60D4BEFE7562BDF620BB3888645A55A0E935BBD8504C27720828AD8CA9A9933B402735564A4A44D7265B602B02CD036A24C23816C96DEB45C2A8CC7D623BC31E8811468A7C2B85C209B27364C4956B6C30C8094AF8401A233C5E4D348980491AD24B04DC2706B502A9C8390BA3F611344C44BF50241CFCAADB7851685C73603B429EAC840C6B9A7ADA53416470F13311C2218017681204E33A588981F66A02B4E97F1CB8AB61E6A7FE45232B5545A3A35EECF43E67A4C29948206088B062B81875B632C1767789563BC947A59305AFC91AC53387925B4B3C7BA24D84AB126D3B88E852433DD0CA40892D3429962BE6CBEAA85A3ABC46A27B525A562670C801F5F0566A7558197600439A2B98B16009F87147C55F99FB109515B125963F7240B12A4535CFA22AB53A3C5EB8C2500CA5EF9B2D26D93115480863843656C59A85B4A40CF8059D063CD2E7115D862015D059D3577CC1803E6450B811ECCE3CC83E039520D6B23EF8576BD342094FF2A908F42F4AD88E483229F4AB41DB2107E48AAF1B32A275425492B7BB423632E42A6C31E320528327713A86B4E83E929B217C69B34EC3AFCE8628C23A6747666735360B7E70BFFDC586CC75C7768C6B9497CE7C93C8938A81A8545244C4756421AC51EC963493C2D72791CFA2C69B58BD5463C544A3CA679B43DDD13AE979BCB158744D45639586959D6AC5784C074D0CA20F326696B607A206895D495F61525793A839A5631CD94BB7E39B609DB1CAAA3144387C46A22B2ED393060A679BCB13A7C781AA7BE1A9D4D3A58A9831F15372825A08D4E41D0E3371E9F796EF0CA50E128AFBB5B83CA78AD7BA50276CA2244B3452D02D803B0E8854181ED57F04AAB2BFBB1A48CB949F570EEB550A9352C3887A2C37341D8881BEFF0ACD11A8714665A05274613FB168FAF6C151277CE03B9F711034E642425AEA6E37F536C27AB4C859A64B96BAECFA10ABE982FAB01E82A48538C12F2F615ABB815F7FBC46D20378C77626FD4447FC088A7CF626180B2443226C0D560D028B54F884825290CB5FFABC1E152626E62816069A8F9965D89A09B9A19B9C8734A2F71808733A49F30BAE54659C375DE1A1181B478E08FB7AD85983D7809A4C7BBF67721BEB9447191A63A10C2CC709A2D9489DBA469AD9C035664AAAD90BB8B7846152218635816EC4B1B39AD3B1E37201FD468A134445E183BCC3430CB2A9015A10B0369C079E60A42D387675DBB292985DBCD4B954C75B56A1152942AD9ECB12C8074C1998710826B4B1044A1C368D4808D081D7BE1658193C1C0F46739EF1043F1EE38E90EA989DB0C9D6D8568EAACCF1E986E4F3B39B596F4BC11E32FA03E10418DBF464F435680DCCB76E0BCE29005950EA7762E0A86FA4CD5E8819F3C95FF713B006155438D9211350C317589A5C599619530B664070F3715BD3947427476124F328B850603533A651A38C4119C2DA956383C0090BF31A378474992636EB10B079B319C821B4BA9336F413929850550C9271F547344E682780EB9D2DC84B742B49EAB256B6D8149A904BA0293A0A40731B98751A71371059B84D323970A385408807BDA11497C42478BCA048B1C50ED3681AA8044E8884458085B4834E313825B3951E8B743A765A166BC1A133573F3AF78DD296A398D581661E2C9A7E548CA42E385CC6A0678F9E9D268FFCE02C4B465A46773432109A75F2D009CDE4ABD55A2C7417C9341792E60EAA8E26B53A3AAE805746401C4C446F05224FCA29659D6C7A880A5F20D5FE02DC4491F2F095DCF2DDECBF105014C5A8 +encap_coins = 1E712B1EF59C5594B414D7C1156B8E4FF3C3D24C92AC92C734F4AD03449A7E28 +ct = 114E039C0272F317477DADB6E2286AB587DF711D564CBB0D0B96D36D8214B340B063F61A74209EB44DFAFFA2195C5B47CD3CF451E567EE81E4E494EBEADDA635B4D4D5A586D63E65D775D1231F9E47813BD26B49F7F284E65EB08789BCA8CDFD4E27F7BD0396BAAAE7D62D0DCE105C6AD421AFC465AF6783106C822DD1F51735F3E22B3A5AE388A9D30CC4D35CAD5ADDC02496E7410A1DA222D9F72A15FED827877F10BE68F8BAE5AAAE5D1A2CE17840374DAF1533A3AF4C56EEEAACE7594380BF2CAC48E220152DD3C7CF139E30917CC488D749F759CBDA9D44DB66CBBDD3017ECB3CF483E9658F7134665E1FDB79EFDA3A8E5E184057A517886DCB6EDCF914F5FC543D21A47E9D938EA7EC4C5DDE5D3B9083F0639F6C01B3DA7C20C2C55CC23DC9D99FF33F505653CFD05552069C3DEA3B7D0A4F53A900CA54ECE9025A90AC69F0A7E3751C2B391489707D7FE43734E78190C1221E1C6914DB0E6619060063E745F4431DEFFBF2CDC202DC3C82531FBC3A4D01718FEA37378AFDE2659486A669ABCA060488018AA991A86A6B14C60D8EC8C0B5DE50D9A78A573194E6E24B412FF6289D5556DAB98C3B2842F5088543441FDAB8B4DFD7D535373E952E6580E902F070B4F17E22CF5C69CC978408D9BF3A6C7AA7D5D81203A699CE7CAC8CA5F7A592F959F827A9CB5B4628AED899D1D55899F9BF470813E55A56A0CD4ED3E98F9F7715F33FB3C5A50C364A7C8006F16F367F1E995F447B065ABE9F9EB8E041B520CE1B4961D382E3ABE8BBD319346969A91A5867666F65FE31942FFBFAF7999CBD4270B30F2D1289F0ACC4CEDB47FCEAC1F747F7FB8D1D4067B684A51EABA28B77A383B6621FAD2A0AF31C9F5E85212C5CDE8B678808F65A7FA642B50FD51CD8A123243C69557605EFA16FC0B4797D7448B75E131C574DE391C6ACAA10765A2458AAEB69F8D763765A6CC4B77AECB93C380E7068DA8C9CDB30E1EF6AAA882FAB8D1291B5A749A00FD07A501612BCF20F5F9F9096C1F0496C824E00BF5FBA150A8BFBFC1AB4920EE767AB1C4E9FF798875FF0AD68A8CD966D6B577F65D2C79B5BB755DEEAE5002594F09ED5A86966A583892AE54A0275340ACC0DAD7313F7752790054E8394700C5A3558C83CC7575D4725D45A592DE802995B734FB74F5F723AE58DD47CE1A6731699EB6B06FCBB2E9E4543028A0754028AE7FE469C32FAE11D0B5C1525B644F0AC4260754B2443D44426A5CB157A23D7B941CC00BCC6DBA0711A9F6AE4B47D873A3C091CE0DB2741B6DA30A69309E1E565ED65CFF43E74213559E9DFAFD94E56624ABEB173920E55DC9D3FC5F8790581ACBBA75D65C7AF13705606D5DD0947A4ED458817548B4AF84F44B7853E06E4E45CFE10B6A3BAC5588E97EFED5A67D38F94C94481302728E0494F66484FDFE728925E38EF1480C2FEE3949325D823A6D821D1103F32005CC12C68883EB431E104A93571FE63F89014312BAA102AD3DAE5F511A7BDF1D4DF9020A315578D31C74AAFB19E8475ABE449C568BC9EE0D3F74A58D3119148C82A68202432715D5DBDDEBBC7CE9750EA330CDD2D311FF767D484A360B1E2AF5E0A375B4D8F9FD55FA6A6C9AE25AC9BB7BA4E5E611C80F24334D7147A7B818EA8AC9EB2A0BCA46383DE70638C571AD57CB99706824F00CC707D1B86CF56D9B50AC72CD779D688151B8D823B9D4383CBCE28B2CB00FDC1E3F9CC417B8BDE6EEADE7817543464C514D200B041A3B5113BF69944053A9A707527982E1531041B787FA89A19BB60E7C73E2E5EC53B70E84E010D935796D72C4CB913DCFE3337B5B54E196579B59844469CF0B991F1627174A29B7DEFD3D5C5E9C9E134ED1F809E4F353F29FAF7435AC525EB95EA06EF0170A17F94D9E7110D0C6586B0C89E2C406205ABDF2E66323E6785F940CFB4D0F30FA02374D12705D06AABE98FE3D38B91A37FD7165954D7B733BA4DF4D99DD018E2E0EC127873317FD8F3ADD7D874ED1C164109BF00B756033764699C6B822459790FD3426875D95AC6062824A220FCF61D8E28E7737B26EE409FC40B589E8600DF9CEF6B9EA3EC3A8AF6A465A2EDA01C24E0CD448C5244036EE3B143BFC4F8CBE85AD84FEA1BA2B1A339CC6FC93CF15F0FBA26A38A3F490B4B8FAF214A64452C042F000BE2E01913A9B5070FDFDA0AA0431EE2B178893349E726FCEF9592F869E99AE234C9 +ss = 913C1882023E14AD17179361A02A236E52D864290CDC0C68FFD1386C1C7A0A6F + +count = 10 +keypair_coins = 2F1D8A3BEBB34540324B9485FDF3D5BE3B858F544ABC3FC641B5728CAFAB03BA6931E7324D5527DCD0EA7E2E6C2A82D4A80C3EDFB38752B36581F3035ED9A23E +pk = 6CB55B5E77C06784A223B9CD2D59478B608D2E79B1DD02803A272B54F2AC66498AB1F621ABCC61AFE10141EAA935897F89208ACF9B3593AA90FC9081B8993D48A84AED0252D7F28DD48571F1B318F2D22AD487541F23CBA785B8D3CC8A3338998C9C37D3F4622A357D9C211F8E959F0D75B1E11486F197368188C8EEBA30A0865711E046F9483D3E953A55802299F02968A35374E6A2B9251AF66790B73C200F74B5FAE2C6C4EC024FEB61DB55C28D2A99A67436BF5879835BB42FAC07B9399DDCC01A6D5739C2C4C4AB217A3E28A06E6AB367354195C5080F334E0674397556047FB02D195736DB39ABF7C61E02C11E9DA5B1C4829039F159AC3BAAF5E47A2E6C2A17D6906C095A484577FA435D39F4774DE4A1FCE9975C0AC10C56B3CA653FD492BB4DCBABEF3C20F83412A6940B78053E26227FBF7608F2B6233CE17DB500641B295E9D4A468486818A9375E074B1DE9124CD44C05FB975889192666A38EBB79F0E80A21D1C0358F24EB4167DC1BB2CC4FC076BC634E37421E0A5054490B6F45695E59CBD4E7947204C62CF0B61C2422F39B2A1ABE24229E456CF9B374C8A17C85664F5C02B575A640074354E385E36A5B0D373BFF3105CDD110CF0CA235F3BB18A051B4894C26B6C6B8A4A9D185A6BE6127A1F172FA4E75971552EA357C891210CDEDC7A0F3278E930A0529B056820C7DD699A436B80017354D106698401B6092A049EDA3A07674D65956943B96C9191340046148AA8C6837ACDBCA06FCE4A341D526D437657388BA7B7632085A921E447024C5B5AB9198B7B7A6B8380B4DAACAA6B17BB508365C34B8145AA3B2F5B11722345D80554919489E49433BB558A3C332EB12B1A36746E5A531EB2A6AFAA1532183550DEFACEBF4C6BFDB0A035FAAD062B1CB2276505DA77DD99935B1A3BB762666DE6506D3CABCAF8B5DC876FBFE55FEAF4ACC4A628E0347A66F424CA2095E2A3605075786F9B728B5905AC09113E217E663A91F3430DD6D4244BD2CD50B69968D95BF9B07C0F352912E28FA9F0600943A0EA1578955B314EC1BCF13BB4CFF6C1793B11CB1B08BD55BD850136E539CDCBA0C8F8B1A1AEB183DFDA8B64718BB1D8707889C74D92737CA3619E42B7D971783219882B14C671C5005C352540CB5621C6409366ADFAE73B79957539F15BBA26166F181A407B5E7BBC14C54119588B630B782621EABE39567032D76716B9684E217895D82E0CE9473CDA40E0065C2D91A846D7CF9E86B934381A36F130336C7EB7913D0AA466737C8AA34453E4C0C21D098906E0229AFB13B96B6E717A02089A19D479826C585E1F8695F9586B696C805F0533970AC5DAE753903044CE0CB180276C4CAACCB71169080474B3003E0296271FD891C1A788A264482DE92B47549BD2867A8024BD65287F80B25DC18771F8F697D8A830559B544DBBCC8C656DB07AB70174855192362DAC79783357B199B090840DD5D474227BB8502528CC5659FA1B1575C7798052393866A48A006AB2572D7B8635E71448B1D48F0175BAF92BBF98E12660F6730845164FC42AAB8480871C3B2F844CABAC957F62ABA397ABD4AA1319E7ADEF132AA7F55ABED6143EFC5483E2C32B1AABFAF3161BB24C19E50E95673FE6668617111A38525FA76CC314F891C9520B88D7B82F5C415B7310D20B5935849CE2D138AA162BEE6A5822C52C5704B1F1B6838DC88ECF0B3ACF5A5868F2576A58730FC7B986361DEE901F5E050841AB06364C72029B259A754F74A95B32179BDB35888B0872C844443FAAC6F9F67AEE9055E4F909B3D424D6167725E960185738DF3A30930B4D74DBAE5A07463126B9C6BA257AB8CC893758759B4D24F75CF2F745BC6337E366218716BB4C5B8D7F0291488C8E20990FAEC84CAD2616653104D621B3662838C0D2A27E4A3B85B25F22EC350469582E75408ED36141033043E459FD7B0087077AAC13058519BA1C210F68C47959F3A98AE5A9387964873CAC12056C0FE689D1769C017A661E007A8484540363321A08975F024353D72A1B08252173C874E515E543CA12959235537CC4F314F7C81015D462E2182130C24D3F572DE234441CE52E48AA67CD8B2941508EDC9C421ED797B52343C6C792E4E8A4001936AD81108E4080FC88574FA663E0BB4CA5D47C9714978C6A86000C47537E0D5AE249EB884B67DADB110119F1D0A5EA38CDF9F2E0E27C75A43A +sk = A5019E7B82405CAC3C8F45BEC4E70E20590BD7E543D465BA702CB1447C0F114CC44F404A31B091C638347CF5A464106A2F92A0B4E600A3D86AB9F57EFFF088D1887865C695C3AA29BA08356DA1B4042146E8817F2BD56BC014071B896D5B2CBA9FA124CBA45E294A0F30FA01E4EB18262059CC987C64F9185AAA12D7EA1F2780308A91A3B2F171D9C41D166872BC7B070D44AF8556A356B631A6EB2E804CC09C531EECA476ADC8143EEBA767298BF29C19FB2496E0C573938BABCD749EE2D02E9817A3EE5A687F9324E7E1082892142C04AE9715C4A6980D73C6A54C16BEEA97A659DA476E49C1DD1B8292E04321783E0A66A36267673E92C2C7463668B1742987405C1621F94B87CE88AEBAEB7BFD787116B30A5B64A7E8956321463B351A9753A0389937B7AED431A5028D309CBED2D8AE67F859CE371CD1B3CB11A8A70D3B9B92E15530A260D1874118EC505FD451897712AE4104E67B1D2BB2676589AA4E8833E03B017AEB2666464C87BA809F2BA29106B49647666FC58C712B5B8127882DF3723E74A9B9E4B0E5A96BB325144111C75E96A13B5566E8258E36D34A76096F9B013236B3036BDA5E3D431AAD3CA33E9A0916D8CEDCD3466C75C1B5603A3E724C60A796E0844CC0D79686F086C510CA0CB11C2E936ECABA446560AAF0931C6A82298BDC7FA82AA6A0B32D361B3335CB83DDA38417720E9E745BB9CA008908CF6931AB2B4A7B78036704153359DC4FDB5742AB3C39A346005374CF3107B95CB771FF1C9592D59C810A93E3593169AB26DE85077DD79A3B3AA03C332A9D177D7EF88624C285A90099D1D0209A0BB0C425CE6AE9221613B2CD596AA77BA2BB98A385D2898D504D68117ED06233E69C43B541438B3274B579C1A5C27B0D85159836AA48907F768C97B6B2B19F475655022691182B2D9C80AEC12ECA0890C9E47BF764684FF1A94D1083D85905212431AFE09342004B44A090CD71357D2431C923B3CE08BC836B3EDB82AB2FA3C508867EAE87BF2768AD61D4894B123B6F861DB52B9B3EB77A8C99839E9108704C907E258F8D8001567078037AA1AB87B03A46AD3A0A30C753B8BD790923B7454F84C67AB6BBBCC105EDC36AB6AB67C28C1D3A54BD06F9C09C12CAC8483E015301DB6650CA3228ABB8353D2B3D95FA5D99E96BCAB65B37DC8A1E958F7395391BCBB4A944AA955BC2176AA6600A0D40489D0534423776184C85057AE00E9636BFBFA76C2D329625747968F53D1EB26CF4F95D6CCA45C60B2DA0F1899A7A1FC651C12BC2C3A2CA16D8ABA4E05C0CBCBB2B72C48EF55403462AB49CF6576D8C358A865DE1F795CC0629F4B13837B6B1704250B8E97F7A116FB63A0DBC12C955B49A67094CFEEB0E8C7B23ABE4BDABB787D3E45EAD108A96D3206A4977AA128866E596DFCA9D68996D82021A4380C0991561AE40A96BF490DD5538F0718098479A5763787939453A7A87A359643885BC5D6149EA048B5EF1ADC65C78E4A9C917160BDC625352596034B3558F98637B33061F769CBE341F9C764238318882CAA978996D1C321A92838D109C187011BF84D17FEFA0271EAC7D5EC90743130234E79089F5B9A6F0267813939B5A3B22321376FB1792D8BCF8B072F387305EE56B027908ACB477E0E744D0413EABAC316C13C242A818CF873533BC3714BA136D477A7EF0C8E620B9E18843F4932B6AF212B566BDD93C74CE56ABF92755CF136F79784AECC9770A136FD8E245EFD79C99095D1225885DF1A752063AF9E45CE5E10634B817F31013ACD13ECF16B7E023CD6C39869B98CB86EA5AB2E655E89B27ED83A65D7A849CB68346E216413239073BC7A5793584ACC60F320524048BB9E99E02597EB5E68A7AF1033C9603ECFC8C833061F5D27124E4BE67752B39406C91D01D5B7C0E7889AE037BB338E64C69AB5D96296DDEF899E54B72609105AF54A9216890E842B0287BBA2698A41F12705A68888B3397311BB9A60C894DC71ACBC44F8450B2132962D0F8A6D992A26594A3E2589EDD2460CB62A57ADC71753A7A94D7134BAB8FC1D9C688629A99B0860EFCCB33C8238C1ABC54C11C8AA6C29AA62DA3235D97F0C2F65092B551C9A9794C89716EBBD119A27A4382101A3E4B9BF540C1C0F05C3BD53C25F416A9EA3221C110DCEC6262AB14114B566CB55B5E77C06784A223B9CD2D59478B608D2E79B1DD02803A272B54F2AC66498AB1F621ABCC61AFE10141EAA935897F89208ACF9B3593AA90FC9081B8993D48A84AED0252D7F28DD48571F1B318F2D22AD487541F23CBA785B8D3CC8A3338998C9C37D3F4622A357D9C211F8E959F0D75B1E11486F197368188C8EEBA30A0865711E046F9483D3E953A55802299F02968A35374E6A2B9251AF66790B73C200F74B5FAE2C6C4EC024FEB61DB55C28D2A99A67436BF5879835BB42FAC07B9399DDCC01A6D5739C2C4C4AB217A3E28A06E6AB367354195C5080F334E0674397556047FB02D195736DB39ABF7C61E02C11E9DA5B1C4829039F159AC3BAAF5E47A2E6C2A17D6906C095A484577FA435D39F4774DE4A1FCE9975C0AC10C56B3CA653FD492BB4DCBABEF3C20F83412A6940B78053E26227FBF7608F2B6233CE17DB500641B295E9D4A468486818A9375E074B1DE9124CD44C05FB975889192666A38EBB79F0E80A21D1C0358F24EB4167DC1BB2CC4FC076BC634E37421E0A5054490B6F45695E59CBD4E7947204C62CF0B61C2422F39B2A1ABE24229E456CF9B374C8A17C85664F5C02B575A640074354E385E36A5B0D373BFF3105CDD110CF0CA235F3BB18A051B4894C26B6C6B8A4A9D185A6BE6127A1F172FA4E75971552EA357C891210CDEDC7A0F3278E930A0529B056820C7DD699A436B80017354D106698401B6092A049EDA3A07674D65956943B96C9191340046148AA8C6837ACDBCA06FCE4A341D526D437657388BA7B7632085A921E447024C5B5AB9198B7B7A6B8380B4DAACAA6B17BB508365C34B8145AA3B2F5B11722345D80554919489E49433BB558A3C332EB12B1A36746E5A531EB2A6AFAA1532183550DEFACEBF4C6BFDB0A035FAAD062B1CB2276505DA77DD99935B1A3BB762666DE6506D3CABCAF8B5DC876FBFE55FEAF4ACC4A628E0347A66F424CA2095E2A3605075786F9B728B5905AC09113E217E663A91F3430DD6D4244BD2CD50B69968D95BF9B07C0F352912E28FA9F0600943A0EA1578955B314EC1BCF13BB4CFF6C1793B11CB1B08BD55BD850136E539CDCBA0C8F8B1A1AEB183DFDA8B64718BB1D8707889C74D92737CA3619E42B7D971783219882B14C671C5005C352540CB5621C6409366ADFAE73B79957539F15BBA26166F181A407B5E7BBC14C54119588B630B782621EABE39567032D76716B9684E217895D82E0CE9473CDA40E0065C2D91A846D7CF9E86B934381A36F130336C7EB7913D0AA466737C8AA34453E4C0C21D098906E0229AFB13B96B6E717A02089A19D479826C585E1F8695F9586B696C805F0533970AC5DAE753903044CE0CB180276C4CAACCB71169080474B3003E0296271FD891C1A788A264482DE92B47549BD2867A8024BD65287F80B25DC18771F8F697D8A830559B544DBBCC8C656DB07AB70174855192362DAC79783357B199B090840DD5D474227BB8502528CC5659FA1B1575C7798052393866A48A006AB2572D7B8635E71448B1D48F0175BAF92BBF98E12660F6730845164FC42AAB8480871C3B2F844CABAC957F62ABA397ABD4AA1319E7ADEF132AA7F55ABED6143EFC5483E2C32B1AABFAF3161BB24C19E50E95673FE6668617111A38525FA76CC314F891C9520B88D7B82F5C415B7310D20B5935849CE2D138AA162BEE6A5822C52C5704B1F1B6838DC88ECF0B3ACF5A5868F2576A58730FC7B986361DEE901F5E050841AB06364C72029B259A754F74A95B32179BDB35888B0872C844443FAAC6F9F67AEE9055E4F909B3D424D6167725E960185738DF3A30930B4D74DBAE5A07463126B9C6BA257AB8CC893758759B4D24F75CF2F745BC6337E366218716BB4C5B8D7F0291488C8E20990FAEC84CAD2616653104D621B3662838C0D2A27E4A3B85B25F22EC350469582E75408ED36141033043E459FD7B0087077AAC13058519BA1C210F68C47959F3A98AE5A9387964873CAC12056C0FE689D1769C017A661E007A8484540363321A08975F024353D72A1B08252173C874E515E543CA12959235537CC4F314F7C81015D462E2182130C24D3F572DE234441CE52E48AA67CD8B2941508EDC9C421ED797B52343C6C792E4E8A4001936AD81108E4080FC88574FA663E0BB4CA5D47C9714978C6A86000C47537E0D5AE249EB884B67DADB110119F1D0A5EA38CDF9F2E0E27C75A43A1F06190BDFD692CF499BE99BACC4BECCF048C89926769F1B254CCA9A9A44089A6931E7324D5527DCD0EA7E2E6C2A82D4A80C3EDFB38752B36581F3035ED9A23E +encap_coins = BCD1828F520DF6A11B417BC8EC4367B6F7CCC47A4F69AADC445DC83F15482ABE +ct = 97BB4AFE63F49CD2DEC384936ABAE297E44EB22BEB468E7362B13BF5166EFC9899BC9B02FA5CB2D77782138D54F6AF426D9F7A0E2D38D54BF386B3107378AB09DE8C0204923C16C5EE526CC50BDAFBEE89CEB120B2C4BC68B8F441BF004F4781CC6134610C90AB97F6AC6F830786FDBB340D9FECE7249E76C51D7549205C501F40665F6D0CD118CB3FC9195B195872A4DE6CFA28E0F4B31515D5CE50D86AC834884E100784FC7F480B77350DADB063AE3816E38F7AF302DA1956AEBF10990D62C1A42F8E0B1DA373DD0B7E252616B7A317247A0E2344F71C3E2811A1B2B7B7F111675F437559FCCE392B3072589E1197DAD145BA12C1D39E7BD9608E51D226A8DC3D0B2B045F389562FBED0D92FAFAB7562773053845343E093A58CD06DEFBA76D8C0B5745DB94ABFF0C3560E0CF2881F4E1E8E2800F649BE1E55F6F25EC5388E44AC944D322837ECC74BCFA8C700CA85E81D1528760481C2F2CAF403D9AAA335F49239C27B7D1C0009644925D80B5B3BD2DA2ABB042C8ACDE7A33A28D2DECF73CDB55B86111AB2E0C6F175E75C36594454C92BEC5803B5EECF1AE1E16CA488E91BBEE3820C9F5BBEC244FEAFCE68377D5E841AB765A19598CAF6450B2BFAB5B2838F3B975F2AA2AE64873313A00541677905B7FA3D29E7B691E3C543659174022EB6F2D5134411F638234543A318A44B1A6A39187D4D1982D21F2F201438C2DC09A1E55D2468CA74F00190814B1064735CDBBCC693CB0FA65D99A21071669F6A431D2DE65FC0A8B11B22A075B99FC8FDD5AD113EA9E7D7B7B458520C4FCF6CD80B8D0F9A30F396A78EAD85DC411ABEA2BCE9B3B0E06F556C7CCA8B02127385A386F16D0530989EAE72799C610EC3D91154F697A37BA1F57BC36E0F109A037327A5F2C9A6757991AA580D7E889EA44E20B889930CE07FEDD500BC8D9A5F34DB736C3260716BB7792181BF5DE3D3C5591D69B1CA942ADBA30A3356EC239D6F0C317037DD7AD3801C0AA1B1828A4B0684FE3F344B6A73D429F1E78960902FCBC20ABFB1109DCCE0B899FA2ECF3783978DF6178EE6D47C8090A4A72CEF4229BC6B571C4012691389AEA1F7000135AB04452FE5FFA356161DFBE9E7FE324C316F4FAB4D9EDA1EC38773FD2BBB5AAED6633F9CBE923F39DCE917B66B9E870BAFCCD4E5664C400EB74FBEA2E7068129B0F038596CB557F03E803B6C5E82BED4262AA95EB7240564F875FB2F5DAEE11F5B50A767535FBA58D6CD9CD0A6B94A945232A8B2151717B7DDCB6443DED5B980A8A4FECDC251E965A99CA5E939EEB9078F5AABA417907321DC70CCDE884A2748264662BFE4ECAF0B9385EEF5315447B5FB2EC82B7469C6BDA9EB2DA5B26D2AA61C9AAC5B89BA676001D7CE16821C718BD950459275D165725C50F1A6D50ADD667D34EF0D75D3D3FB0E4B0EB19B3D461227331FAC720D8819712FD91C9DB5EA6AF5A079CBE24B8D224D4A9CAA48BFE0424EDED5FA0A823BE59AB0F357CC5656DB103E804B14DB5254B804918266F9E3E63F50963B99D816BCB656F4769E715CC2D5C9E448C5B1CE036459984892CD6BE66BA62121951A8D6E15D9B8D69897EE4415F5E850E17460E79A5BFABA1647CC22A7F1D4FB6758167F987841E9F2BBFCE39DCB48B2C1A20A48CD11ADF3AFCA6371BA466A782A09897AB9EFEA13FC55A4B504C91366D62DCD7C511B9FD7BD158C20E674AD209EF5CE1FD9AE81595272BA6036DED5112AE77C1EE0467D378D48748BC11541D7D8A04B4C207F215D50BD11CFC5CA60C5AE2303FD98E53CF5B7C7B7CB2F4EB0D489B6AE1D39D4C3884241F41344CE9F30F0D44EF312DB4F3F17E5527BE14D50AB999AF0FE1FCC8BBA10BBB07FC3A9FC9A241C9127034466F010CEC5D5A25D20380C88D99A8D58E8D2E474E689162215DC8595A1378AD6146A08926BAB7D8DB3B47AF6059CA000746D2D104FE257D528DCFB79006C20064C7CB2194CEA07D86B93D616E54F58FA8B0789D44F1C18F9E96E536AE3CEEA64385A5B73745812B83B58D2F21F5766A7E55D469CDB3E59DE9BD479648D350064CC05FD9BCFAC6B28DB9FF214364AD6216CD1140163723643B2E999041E025C6875DF7F5A129D3B088900590A1BF34479B932FBC6303A26EE1CCE310BE5F76366539F514B4FBB1E5D232C68B2C0DD441007438F3E25981BAFD1D4A45835955D23A8122A2F40886D50AE1 +ss = D1702FD73DAE55B0F2301A106E14C29029B6818645E789196922E470CE05111A + +count = 11 +keypair_coins = 31BEDA3462627F601CBC56F3DDF4424E1529C04737EF0EF2AF6D7401F653B8A13390C2FAA8E2BBDAC1EDF5A5B6803BFD3C58DCB1ACE60333D03CDE2C71737F55 +pk = 8045B8693056995A847DAC15FF49B59A1B9AEB2188C46214FB86A8FF8138C5E8B63D6C29447BB60A56210BA594A3027F4D7667EDD310B678523E87830A469E5A758024FCCE5A7741A7368C790CBD86204F6AE2A71C2A6A0CE80D14F26E53C175318CCA9FDC5FC0A110F6834E1A32986CBAA0F0283376B25276B304DD4C9DEBF7CCD4C98BB1E605ABD84BF824A61F5218671B17918432B32359FEDA8CBF822C62E86061EBCAEC22AF3DDC83B45252166A55FA2B3942E346A688CFF13272A092C22C5C156AE0B63214BC7919AA90847F9DE579C6EACAB9690C6281685F4184736092D7B365C2D0AA977B0999635CFB0C44A8193377205A49033FFF2133853A4559BA895F0B5B36F2CCED166F7DC4AA6D064E6223A114580B58128DCB30B5C8DA30B97A497300061C9CB9C7ECA6924B6C6B19469645A443851E59248A3759164C02A8A86A9D1E86C51907074C7003E1E0764EA650C9AA9F1ED14831363E56104D4126BF09207D5544C5696A69DAF7A748EC7BE4B2CDB3C628D5A302F1A82EEEFAACF731C5CE3BB6A26A80E7414044087487648E62F9C5D9E29CEBC8B5BF111995616B8677778A8CC6B55618A26C6BA74753A2D943FCFB838B6A14935A38CB96906FE2008D2AC8622B50CA4A79035A403946180FE69844020BCC093BDBA58D1496AE7DC5741FF16B5B5185A86277AB65C92551B48180972BA55580CB8CD274BC58A83041C7C0349191CF7C9BE0A24F23E81E9892C2E0FA979FB4AEB3648AC64534E6C3823ED28CB24569E0931506396140B72F059818BD483D70C8132BC38AD19B995CD9859BBB06342CCAB0180E8471C77EBCCE2CD9A09D32C7DE1443F6C588AC2308612B3B3CC51C670C935A91B973063A31703047A630EC03375831A3357940D2285EC8363BEE2B8626656669B36875875F32592E9FD5C1E48879E58746DAE41A9E8043AD3975DE6C0F59F6588376682C770BD2CC3E427BA50070A3D1572FC7A61F08773D60BC1DBCFB087D726372D23BF89647CE6792F1A12FB87298FFF567E6BA833423C43BB157B507009D46C8BED6704E5B23E5C431206BC3D6CA5665DB9051D882BE08B714950054A6C0A341BF953C4936830A74DB1E7236C5CC3B49FFB6230C02978B63020FF75E26F375621B26730AAB7ED79DD7FACF6BC7A038B779BFBC43866123EA910C4620363A8B885C7017741A22C35506FAD12FA5E2360C55AA99528DB32709B41C79E7A1730BE27ADE379EC986239CBC98C3E2BB818B3C33C29CE1B6CFF56A58F97C0968E83156A5617A579E13FA208C840591AB630D942FF415479C8343230A9F150B39B1E8259A839EAA370B9A083F50A8992C2B90321549A15B482B752C65C11DBD5B302E630293D2463A47CC54A02C6B7784EBE8C6B487B185898887F1590ED21C1C757D248CB712B7449F712082B7591B34604AF799F9B5CE2AAB6CE9464528418B01B1ABD3E4598CA45022809A708460EB72BCB708C5BB8C272EA187E0158778760B7CA864B0FA51347B4D7130A2ECF4140A8988B94498DB660229F78852FC149DD9C5692C41123A6F1310743C892F761345D2F685E5F3A924E620D7122CFADB4F8FBCC95F5A65B31728624CA247579DEA035DD5839DC6BAC581E63202CB56B978C6A08C3E3D5A340100AD8384A2955462BD703237D331EB7742349876EAB4C2C933133D3C833D185F129C5804AA1453B0947DA3CF3BD44051F70DE00B3CB28396C180B501E70157C22486F8A82282652BB21FC23C3BC123B6C3D6ACDF079906B149AE2B52EFDAAF3D9B0ECAA92CA9D8694BF07D4229835F3A0A21253877E1A39B4699039041ABC8C0B3F6AEC29BB22E847131670C0E7B5ABEB2455A246D03B6066114552476A18C23B013A812D65A15D021C117F926607C076892499056C1BF058C52CA1703A0812678B4485B82814BB6960A86C3454B99B731CFE15CA5EC005F866B28235036E632B89CBD9AA4A6E70AC944AB82661134EC2BA3B871272864A85EF61F86F51337651EEF063FC6F07A39D3BA7AABA5D7357506C550BED913788947A1863A25209CD01200272517ADCA5F1087C984E11F13404D046C5537711C56577ADEFACED330230A42CEA4E13D0E899394F120EC34C2A6054E5D2AC90696115515345AA2125DC6464C584216A9B0018B704E8640EA163B617347ACAF453AE235166CDD8AFBFFDAAAB9919F0CFFDC75D8796FCC28 +sk = 7EC737EBF52EB7905DA8B3C58508928DD74462E8968A1265BB3B9780649210C8202E2950AC11863BD78AF3123AE9899CEFF1992608CF5BD1B4EB0AC1C13CCAAB4CA89A869424BC1AF777CFC7D90A071273F5AA5DF310493FAB17CE5B6477C773D8CC81D995509FF3A40CE80E734A9E8968B7FBE79A9900AB85F7B442077A890688DCBA0BD5E64AE491CE5D39B554E6B82B7602A149A686C19FCEE21B8E3B1792E7529F2307505C77ED84A63A68258E832BF0F118BC05C91A6B216EBCC051B90143B9748B365EC841B6098C4EECE8AA8231BC24B03E732A0EC55AA5B0E3231EFB7C7F0AB21E2544072C22B6B4075049B63FBA05C68A936989BAA2E55AD1846FD1E335568B01D4ACC869E710357708BDC25DB545447E41727224545CA8C16BCA5458EB24D746A12E170EF191CC8DD840E26910CD9484B4E40D0C7446959A521618B9BC472C8001AD0D1C8428C43C0FB3230FA9B17694284375A0E1563FDAEAB6CAD367C9949C4723802D6931F0C212B03004675652B958518D31C8D4B06DFD99820702319E668DFFB5C88622170B0C0EABA56EE7B77EF5D7600B9C0BBBEA5B99E05A9443BB81A68C22C7904A1755D4C80A47AC148ED13C3981C6BF4122A7880FDD597429A32D6046981146743AE85CC8C0CCB715937F29C933D63AB475C2C5483CE07ACC5B8BB4C7456398A9236D02BED9B951F6D43A67EA06F7FB803ACC33E9552E7150C34003A2E2E11BFC0BADFC537EB2B69122352FFB62B285B6CB0935ADFA0385DDA074F7A63ADB76BCF4A80AA83A1C32F87BE3A786537ACAA32178B136C8BF817AC1CB1E25B44654266F4B2B14F33358B9B75A2D916D78E89D3CEC68B782734FE052449598D847B2A02C3056A64E72C5A3B34685E9FB2C0037736E0A21DF39A356310777A36FCE908C243A4A50216B6199CD63C7BDB18B95FBE4615E9799757176FA4A88C93459BC3030E09889EDE148890CC221362472586E3C026B0DC10BA5A823F07ACC1C693E9BF31518B90359B7AAEC54473552835B3590174109337B6171EAC38DE29BDEF8095DA13A8F7014B3F531FC152CA5EB19859673D52067E28C7513141245376BAF368B07627FB1B844FC033361994FFB3B39822A2A2DE17597D16601329866F42C3697A6F5132DCEA2140B871480E50523C3C5227537A5089FB6742CBFCA55BA9C307A321ABE440241E34151B2C2AAB6AD55817B115330C0B15891FA35BF344BE7D93AD44BB27962101982902427242F5B06F85204E738AEC7A333A15001252004B21B5E6FA95A41A4456F74C9522657A9A40F8C4A162F4951CD5BB8A4F334F45A3A73266E1C386CAED53AB52B9A4DFA173B96869FBA6C72987F4B328A0E56A08C96A00D78854D6762EA2394C2A102162143CD40192749CFBC5031739711F1EA8C37DB5B635BCFE9B6396E2902D56BB135EB8975E1B0A171258D39A7AE84AABD46BAF4DC2A6FF18FB6002CE232B7A45A532DD54D3DA8C580D6CEA4209098930477D207622A7CDEDC2E72C24EAF5787D4B2B461889D23AB93A4BA327C371EFF58CFF7F65738886ABD046895834AA06A6CB57973F1011353FCC1452B015A324C406515E9290AFF4356FB393B57F4066077B2152819B6A69D6072BD4BAA364578557FC727A6519088A183E1818DCE9C5BF808BA36E539B40440F1EC994B46A4A128CE3D8063F608CBBA032AB13102CDB3C725603D14610C76F542EA4B641C411D8297033CAA114D086D00AD711224C585F4CE74C401CDD3BD8A893A04ABA0FEC1625BB997EA24766B5A3059983436627718D83CA5499B7612919705ACE8553D475C68530464E2745A82B1C2C7D152E3DA60F0B26BDA3324F751A40C5004BD510DF886A8B6F488AF3B36A3E50BA362250E34C333B4567B812960C8301FCA1946D58A52E0847E164C780254EF75C0F3CCCA27CA8AFB711BC2A5100E535633D0115AE135B5464C33C7C4C614350B562FE8B641E92583D49546CC4B2B45FCCE125ACADDF67C786ACEFBC919CC70CBB8A2CA1B8353372C3894FCAADBE2693F09CBB0783C4DF1635818CC06C5732B846B8024B9456307358212DD0649ABEB4F83910F58F90FBBC855F86780CC85A48FA75AA6BB5B25050A15588C1ED63D107B7E4B6A9E3F025BE483A52967C249E7413432816BC8AD6AA29E75DA4A8045B8693056995A847DAC15FF49B59A1B9AEB2188C46214FB86A8FF8138C5E8B63D6C29447BB60A56210BA594A3027F4D7667EDD310B678523E87830A469E5A758024FCCE5A7741A7368C790CBD86204F6AE2A71C2A6A0CE80D14F26E53C175318CCA9FDC5FC0A110F6834E1A32986CBAA0F0283376B25276B304DD4C9DEBF7CCD4C98BB1E605ABD84BF824A61F5218671B17918432B32359FEDA8CBF822C62E86061EBCAEC22AF3DDC83B45252166A55FA2B3942E346A688CFF13272A092C22C5C156AE0B63214BC7919AA90847F9DE579C6EACAB9690C6281685F4184736092D7B365C2D0AA977B0999635CFB0C44A8193377205A49033FFF2133853A4559BA895F0B5B36F2CCED166F7DC4AA6D064E6223A114580B58128DCB30B5C8DA30B97A497300061C9CB9C7ECA6924B6C6B19469645A443851E59248A3759164C02A8A86A9D1E86C51907074C7003E1E0764EA650C9AA9F1ED14831363E56104D4126BF09207D5544C5696A69DAF7A748EC7BE4B2CDB3C628D5A302F1A82EEEFAACF731C5CE3BB6A26A80E7414044087487648E62F9C5D9E29CEBC8B5BF111995616B8677778A8CC6B55618A26C6BA74753A2D943FCFB838B6A14935A38CB96906FE2008D2AC8622B50CA4A79035A403946180FE69844020BCC093BDBA58D1496AE7DC5741FF16B5B5185A86277AB65C92551B48180972BA55580CB8CD274BC58A83041C7C0349191CF7C9BE0A24F23E81E9892C2E0FA979FB4AEB3648AC64534E6C3823ED28CB24569E0931506396140B72F059818BD483D70C8132BC38AD19B995CD9859BBB06342CCAB0180E8471C77EBCCE2CD9A09D32C7DE1443F6C588AC2308612B3B3CC51C670C935A91B973063A31703047A630EC03375831A3357940D2285EC8363BEE2B8626656669B36875875F32592E9FD5C1E48879E58746DAE41A9E8043AD3975DE6C0F59F6588376682C770BD2CC3E427BA50070A3D1572FC7A61F08773D60BC1DBCFB087D726372D23BF89647CE6792F1A12FB87298FFF567E6BA833423C43BB157B507009D46C8BED6704E5B23E5C431206BC3D6CA5665DB9051D882BE08B714950054A6C0A341BF953C4936830A74DB1E7236C5CC3B49FFB6230C02978B63020FF75E26F375621B26730AAB7ED79DD7FACF6BC7A038B779BFBC43866123EA910C4620363A8B885C7017741A22C35506FAD12FA5E2360C55AA99528DB32709B41C79E7A1730BE27ADE379EC986239CBC98C3E2BB818B3C33C29CE1B6CFF56A58F97C0968E83156A5617A579E13FA208C840591AB630D942FF415479C8343230A9F150B39B1E8259A839EAA370B9A083F50A8992C2B90321549A15B482B752C65C11DBD5B302E630293D2463A47CC54A02C6B7784EBE8C6B487B185898887F1590ED21C1C757D248CB712B7449F712082B7591B34604AF799F9B5CE2AAB6CE9464528418B01B1ABD3E4598CA45022809A708460EB72BCB708C5BB8C272EA187E0158778760B7CA864B0FA51347B4D7130A2ECF4140A8988B94498DB660229F78852FC149DD9C5692C41123A6F1310743C892F761345D2F685E5F3A924E620D7122CFADB4F8FBCC95F5A65B31728624CA247579DEA035DD5839DC6BAC581E63202CB56B978C6A08C3E3D5A340100AD8384A2955462BD703237D331EB7742349876EAB4C2C933133D3C833D185F129C5804AA1453B0947DA3CF3BD44051F70DE00B3CB28396C180B501E70157C22486F8A82282652BB21FC23C3BC123B6C3D6ACDF079906B149AE2B52EFDAAF3D9B0ECAA92CA9D8694BF07D4229835F3A0A21253877E1A39B4699039041ABC8C0B3F6AEC29BB22E847131670C0E7B5ABEB2455A246D03B6066114552476A18C23B013A812D65A15D021C117F926607C076892499056C1BF058C52CA1703A0812678B4485B82814BB6960A86C3454B99B731CFE15CA5EC005F866B28235036E632B89CBD9AA4A6E70AC944AB82661134EC2BA3B871272864A85EF61F86F51337651EEF063FC6F07A39D3BA7AABA5D7357506C550BED913788947A1863A25209CD01200272517ADCA5F1087C984E11F13404D046C5537711C56577ADEFACED330230A42CEA4E13D0E899394F120EC34C2A6054E5D2AC90696115515345AA2125DC6464C584216A9B0018B704E8640EA163B617347ACAF453AE235166CDD8AFBFFDAAAB9919F0CFFDC75D8796FCC28CC20155074CD7CBD43EC2380DC6A71B3A88C9A4BF168AB2BF426A899706FA5973390C2FAA8E2BBDAC1EDF5A5B6803BFD3C58DCB1ACE60333D03CDE2C71737F55 +encap_coins = C5D2E4C39EF9B75E3691B929F1618699306802ADC2D04BB0219418F7BB0D2B19 +ct = A869672CE6D31E63277E013B14E456F7A07CDBAFB9DB8326E3B49FD01F9783C1C910D0CC0B2A17376515F651582E978DBC1C9293D76C5B3A637743A27F11A9B1CDE06C1509AB24903D0EAC0C57783EACF5A2CB076C8FC1F0C6505B17809A727FA6D2DE3816B98D12B4C9600AA02EE66CECCAF1644F55DD1E0652D190ABA984B5BAE858F45782C429A0B19FDAF202CD4BFD49E30887B544CAEF3D734F4784632A4518FAAC5F2A96839CB9434F385A596A6A07E500F778F67A989E0FB14D7074491E80784E25A75F64E06BA02B355FE63E02A894417431751C3EBF229BACEB6EEAC5655898ED3ABF4864499A83F98CC7A3A7AB80C2976A9F6F26A4B2798E2F77B85697F0F2956538CD342B5A066E3240F7D5BD2EFD2293D898DFBA1E522F70E97460E4DB38E5116D8D2BE31BD9DF4110AC470B0C3276839CD22295E0CB5C3C9AE6C07AFAFB09ED87D025AD175A9A0CD7EEFB432AE2E46C547356A8EB464736CC8F80592BBCC8BC5768A2EE1B1130FAB9812949AD38D47C7D29A6DD4322370F5710E7CC259D236534CC27629299D30908180144197E4784B7039D3586EEAD982900ECD087B9BFF0E2FC850D17262103873F0F27D8A58350F55F7AD0946B8D65F75F9C1690A6C061E53EE66A5FB70E358A294E4C8E2C0921A9FF6DCAA368270A8DD6BA9D0D603E2CC1248436E155ABF043A920108C121E55B46E69CB19B4DDA8A659C88D468F209DC13F5BE217D5F15DEB6EF5EECF62C7AD65D62CE835735248820DD7739C18B1A8DB73E8AC8FB88030BDD8A9340127132842048F9BF79007C3B953B81981C2D6451196071C328AD5E47CC9A519CDA48ED301D5D78D7DD672AD18E8F1A3F99BCD6A2BC50D0290E5997E430935B2F11D4A3172C2C101A86E71BCD337DD1B06B164A33AD3057A4BCCAD03BBC51E6661329B15D8A0D0728614274518CDE22CF965A0FC17A75C68171787811BE553E1AF8AEC48E33C8B229EF7AF07B56A4ED71D9834971E9D88461349BC210DCC2D1B0846017F21C7DAF046DECC8087CF04684913608966E298331F56401A5F136B82A5CAD317C2CA2C4A536DA3E6137EBC59975132F0AB382326ACB36D6444739050BE3AA540E61F9E6476F1F0F4189165A0656737AB0EEF07C4DF7F68A5FBE334DAB903865942C9DA713E8BCACE55B8008C4B872664ED6FEBD503E3916784A471204DC95FD19F802D240E14362F1CD115494DBB74196B032EF5B87A0ACA04F792A340BA430B055065871EA6B6B22B4B1BEB51CF954A47382E69C32AB1791E21A191F3BB6905FE0420891E996B9C480B0FA5DDCB55EF9B4F68E4B6D1288299BA4628E2BDD64486392DDAA27E420F3003103FA5EE407477B90FC6EE5DC27912EC2C8E1970B29D1936EFC53F15CBBF325705A671272293139E2FD80218842DFD1CEA3C1083BD5AD321D002BE4D62106BE22C078A639258452F93D4FFBE483EF818A360311B90C8A3CFA8AC7637D0977545D694433D52FA38E9193E31ABB5E65DA86DFE6AE3B37E7C7CDC13B891D4BF219AD6DAE04412084BF2C7B4745C8DCCCB4916AA0FECD6F1EB6CBDD07497D8A3094D4960BCD4FC77DEFD1720E1F19427095AB31EFD09320E27C72C4365A19EAA7A2AD29FB64CFAF5ABF05B10BED361377E70BB49D5EE564B0894E317D5504410C4E6A15D625AA239166750AC6466E12C8A02AA5271642ABD16FE003A5EEDA0E8285D1DF084635641CD0DF2ED7E79E94CBD970BE94A030BB21B196933DEBF5F80DD1394D64BCDAD96CA22863806B7478FBC0AD2A5CC6FB22C5ABFE089679E2D9405641795342928A31879BEFAC7FFC6F40A8B378F3F1ADD6B5DF37BEE12A610D48A463164922DED75A939753BDD49173DD592521EB2ECA8974F97BBD095A912F8B0240B76D59D050F1CFAF49922057F8C6F396795B11155F2DF1DCDE689E76E4A9573411E39F0F91C8929AF4D233B4E80DF357F13A1AC45C3987796D1B6DC6433D406E7FEBB4F84821FBF95857D4D21F89EF42E037908E2575B99D7EDEA3EACF7A7F07D60CC71A1F0921FC84F18193F5DDFDAA4F8535C10A36DDBF9753BBD5256F76F323235305102633D580C30789096017640F0B93B3FDA40A2DBA8EDE02244CD53F0426EADCC9ABE287D4D4ECA85D23513278D16B19E22FC7F1A97A9888DFD7B8111AF921EBAC818694D94584111AEEAE3310091F84C6B348EC946675358BAA1BA +ss = E38DED856ACB99EFB9D67536F8765DEFA3915AEA016B4A306F688AF752162449 + +count = 12 +keypair_coins = CBDFF028766D558AF4466EF14043A1A9CF765F7748C63CC09DCEB59AB39A4E4D605F30457945F8B1560010C71B40717FEE3264A27EBAE2AC8ABC16267FB0F3AE +pk = 6DB66DCA0819602701895A6E3A2071623403B78438977211D33331312C8715E34929757AD52815C65806EA8B222AC2A5B4B718411732D6A0137C5C7CA8E285C02634130950E1143160F6A34CD64DEE440B1B3B8D64458C78492095517892C5A169EB7AE87733AEF3B16A5133788ACE5FE57CB41AC0E5B13C403441D374AAB997500533744714A84DD56CE547A10C782D6071BDCBDCBFBA391DD44926022B9098E61D079B2198C4C4201295964ACA9D703013341313A50A9B124427209BBB248AAF96AB9EFC9028CB9A298838465984647AA1E2F4087C74AE23F2606194447E403EE45198E29C12AEF2CCB0C4B07C98A02987068B4A4F14A778BE34C362204ED4B31788E3B7D2E54D74E07A215C7EEFBC3067F9C67E625BB43B9CE25179F58A113BD2CBBAF85C34BA8FE26A331E0B0610893E0947495CBB1E287047DA04527CCA1AC68A2CE1742D8C855576941B4D627F0D326A7E543497F09FE1FA536E997828C19977B0B82CEAC4C45A3C06FC9A2AE8A1E6C461CAC9AF21E79501817D8894004C5586C78C1A54808C37D40FBE3171F6E950E287850ED19D975446FDCB1B0CAC2D4A611D832ACF1C20A28C164201638110E0997FB36B2D24C6B349C390D4A13E06AA95C40E878830827A440985870A4B6288F82DCBD9AE23175462FA054D2A9C6F6210A1A7CABB9A6EE8E37FF144043EC0123C2C0C4125AB48775529A86462C34C00B128A333844B7C474A9BA5E6087392EA661D56B4DD0A8CC1E44ED94B994915A716A27B1576561F681E346CCB74A07B71938676C25EEE2A83EAD225AFC408CBF085A4A342DDC2B058C6A138A94A819C737B6BAF4A4493C38A52C1452A302535DEE813F1DAC31E09402CF720A3B16751451DF057BF1B7519C8A62E1BE69E339910E6024C59C13FBAC116D6A6578AE40765F78A7147B5DCF93F4EEA1436B559AE373888042C63C0A52CDB2777E8699AFC229D575CCDF802C59C15BF3B6F028494594B53D2F3CCE339229B3A03EAEB164F325686590F79DAC06F482254838E5AF209CDC31F9A5BB893961C5576C445A02034088E89140EC2B28CAFCAC58AD352D0AB34D0659332D9266DB85BF57BCCB67814BC74C107C41DC2F30E6330B17B4B710CD7AB0B1C01D9F82D3FA0216E51198D723F1E52314E850220052309A383E63B774370713435C6B9A3485FF3B83009B79DE7BF5A5933723CC94DB671F25A5A85603FDD8B392A616F55C3783C28B5308A4B0A5C1C757B677C475C60516A65F656B4868CDEC6BFA723C66E52931B738E18CC518CAB93A7C942E7DB127D239C11580C21C71031F20079E9506EC57119688E0DF98E4045B77E87728496C2060C93F4819AD2A79ED10501498891828080F4841A8AF6602E100981124F6A16C26F3380E4D3635FD3CB77CB6C8EAC22BA212A804917B922218066241E848E3BA589569A5A6420019370CA04BC196E88CF2F428595F1912FE9670B9AC97C487EE2E7A77A621AB3B9B2E4C23C5D4C8657277951B55AAE576524769CA5B83B37D84868367D7E9323D9CA4CB7071C352AC3DA2B3AC58525A152A00EC268F85AB6559027EAD8ABAAA370751C64F51473B02126D7B3BE27812BB008C45797C1B4B05B5CBB8C2DCA419F85BE36BC390EF5C4D3670C8EF7C00B59A44C65AD11D68C5AF4B2B675CF40C002A1B7844FC9A6C32886C74A1892A2514CB930E4387904D1970168181F7B43C020A8071969B868A5B44729B8D04B3EA9716269CC005808BAD63D0B063F21C23AD1377E80BB07D608786D849D79EAAE94813435D602214075BDE7BAD770B28B380BD0D7139A7780588C01C8EB6622F1A874968C874B120FF81C988C5684F3C9BA677ADD2C23400283D6D325D8289473F557EB1C2977F04E95FBA614BA7613720C704905F7A73A2834996A4232A8AC278A444FE5F7A9148B57124580B7B03DF89BA646AA4233611DA9B5327D61B6B1AA351D25988E0C25E6E2563168C005666EA90852183231EF5BA371935C4C0ABE6B61C0A1DA756EF390C120621AF2AE243089F84551185616779C90ACE0593B815DC5D8B2D5726A2CACC97E45C527E75849E35B7C5B77FE436C303535F5C690517BA60BE7AAA4A001C002374AE97F0CB99F34A4C2C0B85F36EB31AC7C907999BC7335B33921C307C05F69F90CAB5602A0C2E966AC7C67B03EF5106F0A751017B67CC52A3D0E1586C74513D2B5F13260 +sk = D62C6CE5E7594BE682A8167743106A44482E3A79CE257635773513F0B0BF77A161C8274A705B93D2EAA899D8C0126AC8ADB7B3BBB5891711380DA1A9DE0541E4160DCCABC13A165B5C54178DA95B919457C684B9CEF81E97637C73F22A3CE9295DE79BEDD83C3FF871087B9412301863E291B04779457807ABE4687368C84B3408E26AA30BF58BBE4BBDED32ADB03607598714464222524B3C2CD4C15F98A2E6695463257BB8FA9A84131A64D45A57B9A539094B5E957496B79008878396D3B9B2EC41CCA75B66FA6D069A51AF611D4BC03E20CB12A216072D7834D996AE99E1CC6522A42B48C54282CD0AE8CFDD1B874FBB4EC17434AD584AF5B4561BC1597AAB63390B60FE7C052E57846E1A8C4F6C6758798B70503507554946382FA6E2004A616A40DBC2B0C596C2CB2873C38E6FF82FF159BA93563D23671DFC433949D3705F398B3752680169657623937A8C357864C39D82C16DA5C1EE407FC7FAB357C0B114965E89815409964CCDC54CD8D5B17039AA9283A59E746A45A2800E4806064683C292B425C18F73AA2F720A6521A050C5196BDABC9B094895B9527759C1A7210958E11A3411B05E67097FCE2C11ED024A85A22684B51EDD652DED89C23E1440CA5616BB754361C549776222B8B297F8F4BB7F818D3B29B16C369CC8BA9D91E6012BF006999C7057AA2A44C30237314079B2A55C63990C3AB657CB80D41022651097ED680D200195BE82A9B9D08B24F039BFFC42C66459B0C8889DDA6714B63762494A5E6106F34223990772B1CC12DC660F5BE62EB0A15C16D4A0303773D768C7DDA7B749711F7C12720C150D30EC6B625624E3F94861483BE03271D8B05780AB62E0294A8CB193238530B49455718C872428BEA1D84955F54A3BB619DADC6106EA3EF27094A085634624377312648AC46559D7A7DD902497AA9F22879D131A08B9223A05E5B76A00807225B304480F6105CBEC8A11CEA18E8910A9BBA691047C95676C9E2DC7AB76537691DBBEE397738C613E1FB00A79F06698C10EC26C97DC00B82A54AF572A02801AAC20983311F42BCA18699A2684E4B5AED83C7AD89A1705F1605A87CABEFAC499A56058D8B02BD597743524A90C3686D9405E33C3D70880B6449D41A76F83E23759664F1F301D3935998D690A7167AFA11A59CF8B87624283A738C0D221B1B55453504AB64FB89824351A49EBBCC291465AF92F50D7B53874C1190A766DAC5E70706F88097BE4500942534DF5E5887C48B234C11992F32BF3F2867CC055D7D6C3A4D25D2A141BE7D706BC1203814667552888E3BB13221A10DC3A4157D811A7CA23088BA5AA1A3FD60C0C6AF29B3B52AA6DA319D8E359D842C6DC65C29ECCC0523115D15B19A7B90D1090C5949CC66A004F0A0513132640A284A87384C7ED06782607584BF5CDD8F099ACB0229CC9588B024B0F3B5BA80B962218B3BCE4C0F542BAC9E8C235362E33EA30D789094FE82FBF64569907755ED7BFD00C3F6F446DEB00A27B37BB92E454AAAACB69DC854532C718C85508AC8742C7180EA805A78999111915BD414275E92D75C1953C10968C802E4AA6429ECA0A5EF49FB4046ED2C93914400B0D882B67C275C483037E859C8C01518EE49046E3594A311320E800AE2CB182553684D470DF629B6C27A9CC5C17A0855443262983E800B9375E0FBA1D393953F1DA232C41BB30600E3F0596FD3C786223A165522BD60C8A2D404BDFC0A145F50B44FB1CF3E8AD9B1914F3264425627635BB9734807B408215FB0C6A617C695025BF43E225B1C54D261052F33A825D65730EC7519C9087FF5626A244A1E28669D84BC8216A09CD224DEC7623425023D05A51F98B8C220CB7B2DC46B6AAC461744A30A671EB828835DC32EFE47FFF21370E73123135CE2E02789A21B03E1C55167C3FCCA2343DB1CFA8D11E838948382084A7890E619C652AC49C64A3879658C419C8C813309AEF9BB606D126A652BC331329501C61F97196F7DB1A398A0B6D947CF903A9BB61119C2C45F8B440F29344FA22C2D9B1CECD5786089402C6B649D8563236FAB8D208BE6967B14074CEFBC7AA44C02766ECCA8F0673787B33C2DC2C7501BE94770E68608AB06AA5410ACEBA544A6F8792C4DB01C07C1BBF197E4D17388ADB05FC910BB3BB0B947C21C482256DB66DCA0819602701895A6E3A2071623403B78438977211D33331312C8715E34929757AD52815C65806EA8B222AC2A5B4B718411732D6A0137C5C7CA8E285C02634130950E1143160F6A34CD64DEE440B1B3B8D64458C78492095517892C5A169EB7AE87733AEF3B16A5133788ACE5FE57CB41AC0E5B13C403441D374AAB997500533744714A84DD56CE547A10C782D6071BDCBDCBFBA391DD44926022B9098E61D079B2198C4C4201295964ACA9D703013341313A50A9B124427209BBB248AAF96AB9EFC9028CB9A298838465984647AA1E2F4087C74AE23F2606194447E403EE45198E29C12AEF2CCB0C4B07C98A02987068B4A4F14A778BE34C362204ED4B31788E3B7D2E54D74E07A215C7EEFBC3067F9C67E625BB43B9CE25179F58A113BD2CBBAF85C34BA8FE26A331E0B0610893E0947495CBB1E287047DA04527CCA1AC68A2CE1742D8C855576941B4D627F0D326A7E543497F09FE1FA536E997828C19977B0B82CEAC4C45A3C06FC9A2AE8A1E6C461CAC9AF21E79501817D8894004C5586C78C1A54808C37D40FBE3171F6E950E287850ED19D975446FDCB1B0CAC2D4A611D832ACF1C20A28C164201638110E0997FB36B2D24C6B349C390D4A13E06AA95C40E878830827A440985870A4B6288F82DCBD9AE23175462FA054D2A9C6F6210A1A7CABB9A6EE8E37FF144043EC0123C2C0C4125AB48775529A86462C34C00B128A333844B7C474A9BA5E6087392EA661D56B4DD0A8CC1E44ED94B994915A716A27B1576561F681E346CCB74A07B71938676C25EEE2A83EAD225AFC408CBF085A4A342DDC2B058C6A138A94A819C737B6BAF4A4493C38A52C1452A302535DEE813F1DAC31E09402CF720A3B16751451DF057BF1B7519C8A62E1BE69E339910E6024C59C13FBAC116D6A6578AE40765F78A7147B5DCF93F4EEA1436B559AE373888042C63C0A52CDB2777E8699AFC229D575CCDF802C59C15BF3B6F028494594B53D2F3CCE339229B3A03EAEB164F325686590F79DAC06F482254838E5AF209CDC31F9A5BB893961C5576C445A02034088E89140EC2B28CAFCAC58AD352D0AB34D0659332D9266DB85BF57BCCB67814BC74C107C41DC2F30E6330B17B4B710CD7AB0B1C01D9F82D3FA0216E51198D723F1E52314E850220052309A383E63B774370713435C6B9A3485FF3B83009B79DE7BF5A5933723CC94DB671F25A5A85603FDD8B392A616F55C3783C28B5308A4B0A5C1C757B677C475C60516A65F656B4868CDEC6BFA723C66E52931B738E18CC518CAB93A7C942E7DB127D239C11580C21C71031F20079E9506EC57119688E0DF98E4045B77E87728496C2060C93F4819AD2A79ED10501498891828080F4841A8AF6602E100981124F6A16C26F3380E4D3635FD3CB77CB6C8EAC22BA212A804917B922218066241E848E3BA589569A5A6420019370CA04BC196E88CF2F428595F1912FE9670B9AC97C487EE2E7A77A621AB3B9B2E4C23C5D4C8657277951B55AAE576524769CA5B83B37D84868367D7E9323D9CA4CB7071C352AC3DA2B3AC58525A152A00EC268F85AB6559027EAD8ABAAA370751C64F51473B02126D7B3BE27812BB008C45797C1B4B05B5CBB8C2DCA419F85BE36BC390EF5C4D3670C8EF7C00B59A44C65AD11D68C5AF4B2B675CF40C002A1B7844FC9A6C32886C74A1892A2514CB930E4387904D1970168181F7B43C020A8071969B868A5B44729B8D04B3EA9716269CC005808BAD63D0B063F21C23AD1377E80BB07D608786D849D79EAAE94813435D602214075BDE7BAD770B28B380BD0D7139A7780588C01C8EB6622F1A874968C874B120FF81C988C5684F3C9BA677ADD2C23400283D6D325D8289473F557EB1C2977F04E95FBA614BA7613720C704905F7A73A2834996A4232A8AC278A444FE5F7A9148B57124580B7B03DF89BA646AA4233611DA9B5327D61B6B1AA351D25988E0C25E6E2563168C005666EA90852183231EF5BA371935C4C0ABE6B61C0A1DA756EF390C120621AF2AE243089F84551185616779C90ACE0593B815DC5D8B2D5726A2CACC97E45C527E75849E35B7C5B77FE436C303535F5C690517BA60BE7AAA4A001C002374AE97F0CB99F34A4C2C0B85F36EB31AC7C907999BC7335B33921C307C05F69F90CAB5602A0C2E966AC7C67B03EF5106F0A751017B67CC52A3D0E1586C74513D2B5F1326077FBE004761FC37FE7597638E5DAE8B44BD44C8D6EFA2893A0A84B104ACE6AC4605F30457945F8B1560010C71B40717FEE3264A27EBAE2AC8ABC16267FB0F3AE +encap_coins = AA9D93A4F2747551DDB0453F9717E1789B64AC9C19BA3DA020261936FFAA9CA1 +ct = 46EEDDA35CC3DF42408FF7228DA32D7BCACB904BE54039756A22319AED69E5E53D7A07005A127CF2B99A3F0106D4E1444BAA80A75A91F182519C38B1E6545C2AAA3089A621FD3530F6CB90E503721293976B63C408247E9B7158C1628D7D7C529C821C66E8DD6D57E3032FAE1B8387C6AD14B1F74A3BA724B3CA22CCFD3AC553032BF069E150CB9A27524A6611C1C5530E85A4794B09C8A3EAE970ED4E2C96FE758914135748F8E9B044012A8E602FAF3139D4782C10CA13BE2C1E95505CFD81F4954E2332F3A2B0DD01300489AF60D335DCC6C80AA9F99FB345BE3639C16CE7483F5609CCD76584B97E3F5D6AE3C88B0F9C4557E29E6F5FF6F5061FF8721CB90FABC43BE6E773468288B486899AD1CE2767AA461EA473662EAFAD45987F3F47D3D620E5E016ECAC76CB32EED3AA26AB2639F08376B878ECA9202D611119677ABC7F40CC2E5AC2A34DEDE197ACF5B9D27C5726BC574FF2AD09CD2759B02AEA533CBA77BE12E821274F11891E131378138B516C653AF4F9E05E7A6852336CE2D3734B1C603B18612ED4B1F97E252C579E3263E94BDB6E9704DEC2F446E2FC02CA1FFF4B54D09C451D6115629AB5740787F225D3ACB8F06BDABE6B9BFF43EAC7C4CEDEA0FD10F6C699CB7A3C9D41B38C170686C2A24DEAA19020AF76FDBE3AC9962FF1E5EB1AFA8D4D730FBBDCB45FF7176D5849B45BD2443888A1DC7EBBCFE7C9131569F6190ACEF2AC0A62B9A9B667D4681C78E67904C480C821E98FBF4C659641A4FE459449893D8F370F50F31F39214A650B784F14298414F56E7414FFF4C5997D87704963F13868D63A1767E41853039F9AFCB6B06FA0AB400D1E9888FBB6BC9868D104B871B0B4B16F9E47C535A2B9769D92BB72941FE484C25BF7B8B7BF475966ED509DDB91B28EC2DED2DCA9B09D3B1C45F2B2379261AA9E74F37A885639DB71CC18C8CA648D3855B3F571CC57862EC1B77045E1347003D017B6CF614A5052E6BDB6B73DABCF5A200FD3062746E310C643505DDEF00C1CF8D01B9CFD073F0F86AABEE5A602E6BDC1A2E5BA1278887B0B81990222758302C57D27A5088820C5E532A5B9158B09A3F448C79690518AD0E5EDB20210F45EC63EE355C102FB732945B0D097B63B980B9C42ACA855092FD7E1C25B13B05E0804465BC0E9C02409E072D58591921EBEC3520A1CFF1CA52CC6C57B8B0F6CC5F5D7DA9589CCA8374F306E56237C3CB083B17CBF20121D545FB9207321E20CC8CD30CA3636D286E4A282351D869E27EDA7F78CC99F1A86FC23AA03A5193F740D56B786DFB53B7506B73D5B87DE1268B2472AA839E55A667BC18DD75D9112C0693FE7B7764CB2732D3E67B5D0EE55CCEE4E26FEA7BB7834210294FDA4F71FA9D88CAC956722DAFAA9D4DFA5D98D1D9ADEBB17F7FDA95F0E42BCA1AC681127FA4422D61592F12D93C7041C78C0BEC8999CC2DDE8F362AFD4F8AAE9CA5D04707D0FA045B7D29B64291F2BE506D340E20060F82B1B639ED51B3CC8FEAC46B853420EF220A7B180DED94B18C6150BA83EEF508153ED4D450C4893005D3B9FF78C063B14ABB4868D981F680ECE1F08AC7D6A936B422F350BB44061CC1FE5B1B0AAC2A8418082BE3882A10D485E5AE92CEC359420A96ECA078EFCADD4253FB8C227F87F6812F2E7432AE901254333D8ACBD1A7CDFAB83F8AC702D9811005D1A2B0D78CF910C8DB32430C9E2B6C29F5E1814D6E108F5F1C35239A1A39BB445E9A797BB7B518FB3BC16E7948F9F59EDEF8CCB14E6069C0E3E8B7CE656682FCCB612CFEF68B78EA7B720E09AE95C0CD1D2B6481E6723D7283292AF59C4854E3935E944F55FD0896B6A998F610FFC298EF5C9EBA2D268AFA3610D8A162E4C93305BCA7611DB2D7B3841401B512EA40A0E9D8751774B3D44051E4D96593F2C15D3EAED7F50C4B34F1F933E6183617DA55C9CEA7748BDEDE9F110CA127F17E6B84BD41681C4A712877836AA54689DFDD8211045BC41C3A7CDB6B4060D199A74B9D716E490247656EDF230F1479B484811B9E80A02D07232E1B643E29DA6BB96AD14A9618479B4F5C6D1EDE3C6DCC257274F97CF3F1F7778396DCF3553116F9CDF94699B7276B21B1A14CDE463498426FFA01F4D12A87DA02FB1901566925E5A7B960D33830E114AAF1FE5ABAF4339CAF1D01A8C262AA936711299EAE89ABF01600BE01034A0044C9D80F2356CC207 +ss = C994B01BF35A43B4D115B784736A6782A5531CD7068025BED51036A2729D49BE + +count = 13 +keypair_coins = 4C04310BEA66305C6CA8BA6B8F61CA96257A67663AFC11761F13FB5C7B324B6B0A8155459118346A84683DE346659727DA4B64A1050C5271E968BA9CFDF6029D +pk = 3746054CC692001B531BC5A46A5CB02C910BF24519198C1A2F2023A4367E9D2AB4CF5887C756299EFBA70D9008FEFCA93A3694D7245EC4649BF578B81F07C1CB37776FFC9C9F228475E0A454639892D992503ABFEA8B82908A087761BEC6AB7D60C1892F41BF1F99C6ED256B64C78C93A316B31272D6F236371AB2AB77123EB732AB303A5E89485F702F528A38E1920F12EA72BBA8868C855E305425D84A5EDD11918B4CBBE5C0001A5637BF8C022128B81DE80509EA72A0F66AD870257E529A31CBAA39183F006A0FAFAC0FCD7781F1033257D766F78B4C4A9B10C5B8208A40368B393A39E7762467463B29A7BAF4307285B898AA0BAE485A63E739BA5A7A080215F4221217FB43177635AAE61F218850A1D924052A9C0626A7F11646076176215152B5508DB2C52DA7477B7E2B0659B999148A214A12B9A3E770998B1A26CC984A9A96AEE4C52B6343078AB8BDDACB00CD5C744750E379970FA94368429F763991911681C1EBCE5AC515BD5663308361E2B068332763752047EE14AB31B914E2D28457395CF61C69ECF3834D305AF9CA18DECC6ED39CCF69A79C379044CED7440A248963C269B6B58A049A8077E0A0981639D581A8C38A16F4296AF798CD2556889E9697BA8156714166F10A57C970C6131386D9154894D495DEECA298E33DE4B09A94DACC2CCA1D816708FA1B1B5E0A7E8046143FDA893F0B3EB2B60CA7A02878729768FC82D8B06A05F647916A9CB84B69CE532EDB5A7EC4ECCDA5A5A4FE8C52EBEC6584E6C0465529F57699706CB9A497C2E96757AF06783A4AA6A00087079803A4D834C7F5CB839837C1B5C1318BC21447791C4694365C401ABC1B8D0C8EDDF679A8AC0FDE11917376A7063339F2C2507AC02CCC512C7A75B00DE0701124CE3057A8C28687B2576C640BD0EA5422A534AA4BAC9FDE1735F35112C98528298218A1F051D54231F7AC5C4353BE2205C3B6518DF442775B9771AD19BA9252698BB6CDA102CAC759A5A0734CF07791A38C7CA940A86B584457559E7B933AC5750C4C43785EF61F5C121F8F4175570C7CCF864C4BB7C49C606EBDF7950E49433A841643F78273E117780A5E1E4CBF3E0016B45994C1821686D41133BB353DBA0FB8D7C10158B0BB58605F1C6B8806B2CE7AC3095356BF7B50E63AADB0E0BAA50199D80050DAE3266F228134A4C67FFC5241A757E0DC2485A64D4907934EEA5FE503653311C4EF24BF09FC3F0388C88ED9CF965CA8A109297BE60893559A0F3696E77B38D677A7E9F4C788D67046C28281C8A7F71AB250E77AD87B4F64237077D1A63B753A21B088C5149AF5D40B928401E4C407E71B6896B840D8F717E627532F3CC604E64B84204730C8330EA35228580B4B886518E9670D6100826560F9623045291EBAD1AE5FE6840C30CBE69AC54E62BAD8010C98C513956534BEB356CC6555C1C4225B7862C4651E55C4452448063B4C04E105B63DAAA90F9A6B0769B161A32F49FB64010A91E0B4410D86B7BD4C91F421CEB091A88ED9AC5E01C81527886897A8E6697C7571AD95B818F942A5692459F9979AC7A8078883AA8A445A5AF84B1B86C4C79A224A5C8F3A889EEE0C768AF29FD75A506AE75F9D578C26C8645BC8A8BF0441B6DA2BB27B6BAAB43031047C6B826FC98766A1661BE0626CD2C37864EB23F4240E5FB601DD645FFDD9898396273D3000D5486CDB67866751378350068A8439944CA11F9A5E7959AD43BC1F5CC8C741A220BEE733AED2A41EDC34FBCBC890A718F608794802BED150A0398B0A836A68CC0B58DD705353A41F28883CACB94C797B8CF8D23CAD9BB9A18C53B372C50AAAC124FCC07B310907988F38164F46D70305A381E4A1673145B0BFD8AB91A02C28B86E1DD95C365BC88BAB5E526AA9E30B7694CC67C45057DCE459A4F561E9C8AAFCBC491A6A7269734F0658ACAF753FFDF735CC0CB3C6A1C7E1589E98CC995A4A2B21288057FCCA694C0C00E7AE05D861B90A520EB34002732A2812368931A18243AC62F34CD7027FD80436D0454AED978115034407E30DC19813C5100C3E13A26C3283D4A72E254AC3F7E637D9435281180DD6FB35F0433788D470B6216B310A63D5E11B373A073DC8098D3950819937E7F66FF954CAAE52B3BB86C80B5680851170140A1E59BA0B23179F5E8095765EF7A13BD38F9FED3BF36477916CB802690A213C83F6624A067A5E2C +sk = 212393FA68C40D1153EC29801F4472DB30B8E6516647CCCC6A160BDAC4299D515717D46BB4248673D11558D8AF5A6373720A9C96A4C51BF12AC506CBE51B560AB742EC684DDF86CB08121BDD412E2476842D051E3182C415C49B7184C9322242F70B63A960576296A8AF5451F5D474019C47E1822E2B1503D30CB8EA20B3CEC334A2114FC2381D910A98E633716EF9CA2F7939C7033BAB756371D6C2E906061DF822113C57DD5992C8826ADECBC9AE381931473558AC94FE8A19C9C4BEA3DC40DEFBCBDE234A211623F8D80BDEFC74F657A797098EBBE2B6B57438C2253F89D13BCBD5C0C4204DEF79BB37859E36E920768CA7D0651A7EC9BB63336698ACBFB6C9A384084DEFC1BF5D9C050087B691D40344E107BEF0241BD99463532A05B795F820213392CB16D668605CA86DF134C03C4A7DF581F8CA7DAF732F5AA75146457163C3ABFA9C655F966A607A69AA1234FD1CA2A97213F280A10E84C4AAD26C0EA2CBA6773D63B39EF7350F6D284830EC3275E5BB9A318B03F87CD3F3BBA41632C0F9A1E65989B74B91B23A82BCC22D617AAF8B14C10D0037AB970B8CEBBEC0CB866BE5057964B7CAE6C9B3084A696602A25961DC53558C065D6D8B25248ABA262B1B635322BB82165A8CBEDE60BBF6B72459D47B64A964B3C32CA563BA5AEABA8ED912D81B2E733B4B4587A99AE5037DD21DFC9ACA5D869596E36547C0336AE774B8BA637622A597C05DCD43B092D938429886C708448B24A45A701CE9FB9DB54C67BB531BCFB82EBC15C127409B02A3350D6168F1296784B86F7310B9160681F0133A66356843401B9C0414D7F687AAE41A36857CCD3B26BF8C11DEF30769E30630169365AA3C3B53CC89D9CF47C2CC6C166F197C9E5C5B2408B03C41B0613703CC4872BE78DCC4B28089D7118CA1186BAEAC1355D5B9D4E45515897AE233A26810356A373DCBF6CD5F02CDDE8C468BE006DBC67E60A69908D1171D4A5EC1643B87059CAC80C259788EAF195F4FBCCFC4C0284BE822F94C2978FA119371291657B927F8B332124D61D17E21A36485D2C3F2893865F305589A8D048B06FBA7BB9F087F96D5785678A7F2D16C892CBB2273677ED0CB70F5729AF0A0403B0BF0608ACEC1CE32F2924535C16E8423BE0C8854E439EA395DD792399DC98AEEB7493B64965858BE35977DC053B3C0B3788FB4244CD3B49E40934F90B454C983DA38B2B5C88521347788F832E9C64A6CD012511234275C9F6C251442A87B496743333A161D8C04E3D78BE3097942AACCEDE09B9CB673E1FA261BE71DBEB5C4E1049B2B2A00311ACAD4470F8AFC85172476B949AEFBC0110A261461291B5FF7A74697C88AD40C82770FCCF68B9AD5382125879E637B7CEBC1AAE95B03219CF2488B2E3B2E51480C8CD8022C2092470236FE6042DCEBCA24CB9EE9379386D80E54C232DEC93B99B694E99AB5E41CC8CFB8928D5C08EDC7A707044B49B8A131986A3F37BCDBCAB5255B64B4905A93A719D01A32384A87543B6BA1A22DB75C9BAAD257BC8B9D8B78641B394C7AE064087454CFB17B307BC35A97CCCB842602990747D60F30D220ED3171FFD7A2B77049DC210E2377607B817F24C011DD736D7918874AEA4BCCF017FE3B303EB7B30E426099BB2C90A0B269E88390B5879706B163E1B27194AD68B26204B512EA145C43B029FF20898EC589C6691C7FC5857B387BB1916B407A641EC14D01C82DC7F4A179A3558D8ABC8AF937A3B2682D638E3881329E484B28BB1EA4A9B6A20097F3BC145345B032AB8051D44A8615C9780521429BC1007A28E3659433EA295789A004002FE980C2D1043761EB7416338B68F688221AC004512C9DFC7889241311F78145699361CC1C46D55A0B5C1303789A3C0C4C57EA1FC14B8FEE92798A188D165982DE273CD9970BE03279DBDBA64838AC127B78EF4B16C3105FEF180D0B936558AA005BFC0C2C5A2A00CA207A49675DB34B0029BA77F76EEF65646ED13BFEA533E5536683B2402A380B1426B45E1B83E498758393907CD4999909812E823828752D4B956925892A0D038D2C695CCD22BBFE0062B5EB0B9C370C54E31229067DF3D0B513667BE7E54F520839AF94C6D71A066309004DE4CF7DC98802232B77B10DCFB266DED346770B8DF09768A5099BBEF238F72B853746054CC692001B531BC5A46A5CB02C910BF24519198C1A2F2023A4367E9D2AB4CF5887C756299EFBA70D9008FEFCA93A3694D7245EC4649BF578B81F07C1CB37776FFC9C9F228475E0A454639892D992503ABFEA8B82908A087761BEC6AB7D60C1892F41BF1F99C6ED256B64C78C93A316B31272D6F236371AB2AB77123EB732AB303A5E89485F702F528A38E1920F12EA72BBA8868C855E305425D84A5EDD11918B4CBBE5C0001A5637BF8C022128B81DE80509EA72A0F66AD870257E529A31CBAA39183F006A0FAFAC0FCD7781F1033257D766F78B4C4A9B10C5B8208A40368B393A39E7762467463B29A7BAF4307285B898AA0BAE485A63E739BA5A7A080215F4221217FB43177635AAE61F218850A1D924052A9C0626A7F11646076176215152B5508DB2C52DA7477B7E2B0659B999148A214A12B9A3E770998B1A26CC984A9A96AEE4C52B6343078AB8BDDACB00CD5C744750E379970FA94368429F763991911681C1EBCE5AC515BD5663308361E2B068332763752047EE14AB31B914E2D28457395CF61C69ECF3834D305AF9CA18DECC6ED39CCF69A79C379044CED7440A248963C269B6B58A049A8077E0A0981639D581A8C38A16F4296AF798CD2556889E9697BA8156714166F10A57C970C6131386D9154894D495DEECA298E33DE4B09A94DACC2CCA1D816708FA1B1B5E0A7E8046143FDA893F0B3EB2B60CA7A02878729768FC82D8B06A05F647916A9CB84B69CE532EDB5A7EC4ECCDA5A5A4FE8C52EBEC6584E6C0465529F57699706CB9A497C2E96757AF06783A4AA6A00087079803A4D834C7F5CB839837C1B5C1318BC21447791C4694365C401ABC1B8D0C8EDDF679A8AC0FDE11917376A7063339F2C2507AC02CCC512C7A75B00DE0701124CE3057A8C28687B2576C640BD0EA5422A534AA4BAC9FDE1735F35112C98528298218A1F051D54231F7AC5C4353BE2205C3B6518DF442775B9771AD19BA9252698BB6CDA102CAC759A5A0734CF07791A38C7CA940A86B584457559E7B933AC5750C4C43785EF61F5C121F8F4175570C7CCF864C4BB7C49C606EBDF7950E49433A841643F78273E117780A5E1E4CBF3E0016B45994C1821686D41133BB353DBA0FB8D7C10158B0BB58605F1C6B8806B2CE7AC3095356BF7B50E63AADB0E0BAA50199D80050DAE3266F228134A4C67FFC5241A757E0DC2485A64D4907934EEA5FE503653311C4EF24BF09FC3F0388C88ED9CF965CA8A109297BE60893559A0F3696E77B38D677A7E9F4C788D67046C28281C8A7F71AB250E77AD87B4F64237077D1A63B753A21B088C5149AF5D40B928401E4C407E71B6896B840D8F717E627532F3CC604E64B84204730C8330EA35228580B4B886518E9670D6100826560F9623045291EBAD1AE5FE6840C30CBE69AC54E62BAD8010C98C513956534BEB356CC6555C1C4225B7862C4651E55C4452448063B4C04E105B63DAAA90F9A6B0769B161A32F49FB64010A91E0B4410D86B7BD4C91F421CEB091A88ED9AC5E01C81527886897A8E6697C7571AD95B818F942A5692459F9979AC7A8078883AA8A445A5AF84B1B86C4C79A224A5C8F3A889EEE0C768AF29FD75A506AE75F9D578C26C8645BC8A8BF0441B6DA2BB27B6BAAB43031047C6B826FC98766A1661BE0626CD2C37864EB23F4240E5FB601DD645FFDD9898396273D3000D5486CDB67866751378350068A8439944CA11F9A5E7959AD43BC1F5CC8C741A220BEE733AED2A41EDC34FBCBC890A718F608794802BED150A0398B0A836A68CC0B58DD705353A41F28883CACB94C797B8CF8D23CAD9BB9A18C53B372C50AAAC124FCC07B310907988F38164F46D70305A381E4A1673145B0BFD8AB91A02C28B86E1DD95C365BC88BAB5E526AA9E30B7694CC67C45057DCE459A4F561E9C8AAFCBC491A6A7269734F0658ACAF753FFDF735CC0CB3C6A1C7E1589E98CC995A4A2B21288057FCCA694C0C00E7AE05D861B90A520EB34002732A2812368931A18243AC62F34CD7027FD80436D0454AED978115034407E30DC19813C5100C3E13A26C3283D4A72E254AC3F7E637D9435281180DD6FB35F0433788D470B6216B310A63D5E11B373A073DC8098D3950819937E7F66FF954CAAE52B3BB86C80B5680851170140A1E59BA0B23179F5E8095765EF7A13BD38F9FED3BF36477916CB802690A213C83F6624A067A5E2C49CBE8DAA7DAC02D7795E907B037E2AE56624FDC8D7C6320F9E1E69DD0F6286F0A8155459118346A84683DE346659727DA4B64A1050C5271E968BA9CFDF6029D +encap_coins = 8AF3DBB32AF8DEC4843AA90BBF43A5F13686D9738911A805C62636C111B2E140 +ct = 5D977D9381335FF21B72E8250A7D86F523471A1F5B7AE57C465EFB766F6DE45A3492632CE93019861DAA7AFF2E224E088CE67FF515AD2C0FA878238DEE681932DAB1303E45820F3F4AD6C518D9E3BAD5CFB8C7EA260E762A2BD61E96F8242025A476BCC2F939F7775B7C05E5D41DBE7EB521B158A71AF96B847262F1E7D51B92715A5106CD4F74E598795582B97860B7629329A522C4B84616AB9F3EBC76B9BF8EAF18AD53B579466651169BFFADF5D6CD2EC20097615F74896681939E89F12EBE4CFF0DA279CF9744399DCCBC17097143EB8635A052604E18B7523B61355A96E1231D9E2A87060FC355CCC8F41A4B8E5B611B44A65C9F42FB26583DD7A2DB1C13B0FE7576C1B8A3D92D50BE401F08FE83F1E3078194602F01E745F3B976D01585AEAF04C35C80103241A7C6783B1203101814E50EC4ED14EA2093562636E1B7BC4EFE84D0E2ADB1B9153DE2E65B135D9CA6004C3FC472B5783C9F01000F8463177F86D8F06C6844E9D1FAC9871BC5190D03DAB666512C565A795E9D733E212D2FEB79C2B0B5377A7A2444156C210932C281D828E7150D0C67FD20B7EA86DFB815C4E990979ED6B64C92C8045367F21B4C897F109040F7869FA77372847584BF1B757510887975F2410F331AD1A42306BD57884B66E28375D47AE03B4CCF93EB4271C4B90CBA86CD14D226E279E0D71E9F114171F135A9490215849C3D4D1EA28D773BB3817BBE682E512D7C766F50D854D61C7D777D72307E2A9B7D00EB520BB238D67756D74EB6DEF9ECE5D348E32FED9092E34455E3F6BF29C1FFC2848C9AAA8DB10887738D2B063FB8566EAF322D73760D6A899A3DBA7F0C98D8A78F444FCF1430DF61A8AE6BB4EB2B56B4220F68C50C586824375F70B3B17C4D17213568055911D045721323271CAA1D65A214469914EA49E021FCB86466396EBBEC2099F0A0C612386AE327FC59B72A59296D09F47DC12654A3B0A40D2A2695A67258514999553BCB67603DDD25F6C0159E8355569503746CBFA9C5391AE376D004235FAF8CAD19493EF296231D5E520468D7AB35E1EAA19FE9EE1783BBA25215D3748235B2B6A73A4498F289343233D7CEBB995FDBE817E15CC501C09967978D4070290D5C10FABA8E11978C237E9AA76CB2004A15B623C0ABC3B8A3FDEB59B8FCBC765A09663B1CC65743DBDBEE53731C845E5EBF59526170FE84ED026917835BC78D3FF98D2818705CB739F728211AB424DEBCAD193BE80D33F096EB56954391EB6116F3541EF199BE645F811062D4FF793D074B131691E96B0A81E087C790237C78B03600C28F7C1925A328D733A3E15E43D9722B6823207E61E770264B111B3C8494826E90F7D31D80F6C5B6530EA77C0439D1A4EB72153A2946805FA42770F3CE994175603D22B490588626FBC112A9A519243BDE23D92C923A885ED42520215A5B11B494659E68DE832DB7493383A8A30DE2B01972F8A9209F264D213E4D7661799560FD73B45EAD62154C59440ED016A3A648DB7E61587BFAEAA7EB10278A519F5453CAF7F789BD4CB29D36C675E1ADE266FA27AA280D7899470AA2D9A15F5C0360F5B7010083EA4C5FEE3FFA5CB27115BE2D1C11751717E0A31294B6277C26FF7DF7CA62FEBF2901045CE53B19EE57CCDC1C16241023A740AA209FA711F00999D57EBBB58166D58091E8298E18B334227817ED6AC950F346EE14BBEAC79EEC34A95BFD537562F97E93B5FF635174EDABEDEBCBC4F3142A1CECBE9BBE7378F7C875B4FDCAC5C7FEFF4DC2FFBFA551BC5FFF2AAC2759F01347BC8215AB925D2DB008DAAF604D0E0E3DB61EDB0E42713E1A85808ABB08C94E64D8415A3827B8B87BC74697BCBF00B2D950C92B72762CEB01B38B9A723CC8F62BBCF25DC37935A24075108CE4C506348189F9AF618501F5E145C089263082518E7D31C8F440945DCB0B8B61C76F0122AE81DB7D62E0C39DF5641E9CDBE628EEDCCE8E3F9ACC37C457DFB6A79F866EF332DD83DBDB6B2328D585D7ED63F7FA2ED348B42BE615A90D8E6DABC83000BB4CCA26EB71D137E6DE818B99C5B90976A4E06B2B2F1CF403DAB1FF74528FD85861A0293DD321F4E00FDC39E3B293F9B3E52BDFF529F7C73E9896FD537E41AED7F50EA13344CBA0D44C2D6FE4A8B8CC1E8B5AEF69E21CAA27EF01E893D399F5800B7D42DCD38E952FBC7F3D11DA94E300E6FB8CAB60A83D1DC4 +ss = 2B914624208A352C440E1AD5620B17E63FA1B420FCFF70899F77A723B80C535B + +count = 14 +keypair_coins = 38A0D5F41D7DC1896EFD1B45B0485634CEF149828751B96087A0A6DD81B4D58A08AD5BF30D584AE9C8425AB3C8F1FB9960752721CB2C8310CD7BAC84808BB979 +pk = 8F57212B9B824D071BDBC45143B4663ADA61EA72608EA85B82B49075D3ADEBAA7D01BC9CD916728CE121C1FCBA51E42732D76575607D3E574C654043D717AFB96532DA23924FC124B01026A8F8B859F4BCD1ACA153133905904C3BE8361200ABC6E7AD42F236A0826C03475385153CF538782C7C8A469A43793C3E81ECB524AA838F18042F2075E0A8C58A5C244E14119F5B6D5538385089400E23BC1C106B2CDB59F287C538F32917C202FB682B9C5AAA5FA343A3BB6B147C6C9CE3B4E6E74096E0423DB52E7C0099963C5147C2CDC7101B0D01CCEB8AC64937186C23B0DA108F58F5271E1C5564A7AD07F62F93B4B89CE5BFD28462D4053BF6085CFC254AF97C05041B0494EC11DAA36FACF034210383ACF9089D371AEAEA975C489211184D55DB561C272CBA9881ACB88159C74BF9671147490FB7A4CBCDE1689EE7CD777B3F83C54850E8082E884A7C3B3333D7CDC6318D5347B0160A4B67E46A24D756105C09EA0043B66A74F98599129B52EDA51971B60B6C65867B3545139990AFF9C088B7B114C03D10972BC6E5A353DA85497B95C8BC5DFC156542EBA57E96CC5A4C3F2BCA53D6A1315C63136139CA954A86302CA788C27B4F82C57EA35BD7C31D5D543CAD66BC4EC9B93DF67D2B019E56E372FDD7808F4453EBFA3092676224670F79EC579307052832BB4F2150DA4C06E8069855573378377C44A9508410CC62C60AD1DB5F3077B911F76CC148C354733C0AACCFAFB85B0336838AC43F6152BB2845A3DE24807102A274D2B33F84392648C6F64AC85D304A4C024D88C0A13F0874231CC6D2BC8D7C99C0530087F61856C000180E78939148212D2B065DF99FA51A0E768995A8F3BD71CA82A1792AFC7C05F8B07DB30AA18DD25180B73D175382158A1C3D5135FDC40F2068C17ED11D32022CAEB404C68418E7BA2F352A510CC203179366249385A2DB3639809795CAB6AC0C11450220D96356BC6B45EA943C5028771EB8C58097966B4821BD1504BA1A1836251047C8468089C58AC851999B7BA017267C3A6E20C5223FE5A41A52044BD5103F5B1D31FB9B0105CCBA387CCA72B6FF1BB27119005D6A29A6200DE9DC2C19D85BE067793ED476B0324C24F10A8D106B55C63BB346B9DDF44B9A5A5349B766132824CC955214315267D69F82093642B9C2360C2B57993B1FF2C52D8118D62375AC851F5EB181A24BADFC165668E7A36817CF80F5873F87A6DBC3CD42C0B2BEE57F0E06C93A9807B0BC32DE588808EA0037DB50B3BC14BF98AFFD4400DC9566ED8022A4C7C34FC4369987904B362B1D04CF3451914E5909EF750DBC56AF138529A601A261932EFD626510A528643693EE79284CC3987E3694CAC828BA3964E637925B201E270744FD41190B3B1C088A79F31581B0641917DC161B000FB4A8281F6A6B7B1392949ACD277B9901637C3454A058589299C48B3401A2E0F788744081CBA76B5EC378BB83789F63962AE2AF1175176FF353C1CB3632BC0E206194F4B7367779146DF4ACB6D89652B946A9B9C2B61C0553360616F90E97FCB190C43FAA544891745CA9B97950384DE8534626914FFCDA63AD302C9F001A361BA7A94066C9D8B1F30111FABA3728FB143BD788AAF04491951D541078AA1069741352FDF8C032964717EA1791472A2069CF43DA46A40046C61C79CF4A7D1E093526D75B444A08B0CA984F2869026A4432244D662951DF52BA655AC54C502E83E8587E21C4757166B78244DA2B5364D3299981859CC61A67D02B32B19C8AB31B78146690690096D606BEFBAD0EE628103712F0F81E5FB4BB22E65E9AD1410504CA75D29386F73B53B0BE140A5B548A48B05313DE873E18B030D6F691322A2409F4603C7BC24C103111FBA7DD5ACB3F019E7CC22BC3F6B1E6ACCA131364D0FA0694866E2322281CD229C16AA82116CE6FD0187D4034DB33C2B3840DB1F42C5DF49825FA7C6BD62C31A625616270565A2FE3F4BB50C58597F70E6124C2F46A83C3FCB62AC65A5A66557B22AE31C7813243A1F0C4B905A31A40D44FCCE89372AB6FAF09318A876BDA6C3D4D787DCF088BA345A6814CB9A0825EA860AF29B81586B25832356C1F976370496B6FE7493E482E0DD9483E51372B093D37F29B9D1A83C209BD98A363DF8A3AE430BA3B2ACD5BD679C7D4995A63A8610DB945708CB5425CE0C3C651532A43D32473F236519D54FDFE0A815D +sk = 69E774DB244D05192A2E064257F3A7B9B08941A2018ACA28C610B8BFAB59176BAD88B9A7781222CB03AABE6A4C2937BE24645A28C3A7931240503769EDD1865F72B44C4842114980BA64A59A647438C5476A700D0DC4A63277C4DC73A3DC9B59BFEB0DDF0817612AB73AB14378E93FA4982D15131C5016B36A639E4F689E9B6B2D2BB2501E130EEDF72AFE4861AE7CBE7E717B4C4001B78BAC719C6AFD40969392CFB1D918794B4988A7C03A23C8C5A751ED2C39D3E18474B43CF8B7814A5932224141FD543871AC102BB0A349153EB4A13AD57AC06602BFC6C1B4425284EAD058572A1C7C0CAFDC6756555B2033D2CE67F9155B16726625928EA26D13E2C0C0A66988EAB99643B4CF23AC68724CE635188DD8B3F2F421E8E8A9F838B707A16FBF27445A7555CFC052982CB002130CA3500CC428AEF14281564997D5F37D0A1C411CF73D3D2082E4C26C3BB7BEB9FBA2D9EC631F8953B3D03075318B4B720B4FB5B177D43C11E8979C640639136FA20B718C0846404B2F0604C55CA82F519241D811A697000DBCE1C743410E92922E83446410A93150178A4A2B52123174DB128B2EB97DF4E8A617D5876AB9977DAA8B7845537DB0A2B6E0599C0CC165438329D1251D6AA09D5B30F27040082A135C2B831B7722C416072C655C4D511E1FDC0284932849126D49B5A03B3593894BCA250B0D198601A02900C9406D8F5B69BEDA735A3512BD355DAD587BCA7330364031573B44EB9C2BD103BAFB7283C1B923AC3A41F0607D4B7B7E1E681AAC9B4090538B6B7975B9C5C64C6196577B7861CC88ED6C3365AABCC9B97A6A318A39A2BA8B17376509A563B58DFBF4584E6B00D56BBBEC309164982D1B906635A146C04BAD613C02C8E2C2D0597FC285779C628F3E290A84D8710745C444410F129A140358991D601FDC787FAF4506C6003E2130C2E03B3FFED39CA3B9BBAAA34ABAE794D4266E59A80EFB44528B2B234D70025767A5DEA09032767722C61E53423417458DE9E809A42257A27001E9C8AD43B775BC853D8475ABDAC86811D568E9E38747618AFF0B0901283A3913B6595CB2A85B6D42101DCBC90146AB85EA5449850BC9D8B1356F820EF365731F176EC0A0A5B7F35D9848C426F32D6A37046574A93CFCC043614E8708026621A06AC00582DA7B64421D4F50AAAC1BB10D6BBAEA31808712B891344B7B865243614CD706C2DC098B0A069FCEDB89ECD67DE8319C92F3AA0A9B92A1FA256302587A5859408B5CAB563EF1814CEA386BECD756DB669FDF87A003EA1E7654CAB281220B21CB234AC1C4B459EE48517BC838082191DE35B265D5264119C05CB500A05307C806AE8246128A8194F61024F5B2B7C410689150C0A8F68E1B3A51DFAA834B7C8ED989B351E683AF7BA73DD91E9733282FA2559AC53AA2819811190B5827000D98433241A3DA2B77F4E588B0088E3D3318CFD049C4777F7B08678144618E2406B9B6B72698888C4529B7E3B272E92620BB36792266C3DA4C9C403D1D49650B5530BE017C3B99C068890F2705702440AA0BFCA823059822C18981A03B16670E127386265487665ACA4C171E023621A853965A629757148E37833D31E453DC9B20191C94230833A31089C41324A94010EC097210F45592630D6C1BC28E09551C85C4677B015A7B957B1B4E0EB8886CD77835351458700EF5F170D1D0C81DC920E4CB7D16CA9FB6B8CB6086527106B5508996D24250026470740586EAC42011DB626EE74A8D7B6DBDEA073AEB5F6A8A9F9DE70CECC03B203A5BDB2ABFDCE8798764A88CC84CF9BA31008470904C46C523748A4B39BD46CB527501F617C43C83ADCADBAD1812AB61AA7DCF71B3FE4128FD087766E87344ACC8429743F5842784095D1DD3A43EB7A835044CB990165A8B52A9F43F6FCB3FD4E04CE699A4713C4FF2B19B7205C256F643CE050D467132D635170A4C6C854B45E3C65AC7C24F1FB70EB0B6AE852B3D526A527D41B8F562BF56AB9A44D4B00C371B4055CF36089C905BC8B42006098CA18C58B89CC5CCE6A454B02C754F07045E274B3A2A647B17533215C6FEE12E7E988FBE692C308866C3A133EDBBBCE1D4A06931B75C5561DBD87A74CC0197071F360185C680A14CE508BB280895CB2C4CE4007DDBB21A1907D2AC5D4E163C26A3C58F57212B9B824D071BDBC45143B4663ADA61EA72608EA85B82B49075D3ADEBAA7D01BC9CD916728CE121C1FCBA51E42732D76575607D3E574C654043D717AFB96532DA23924FC124B01026A8F8B859F4BCD1ACA153133905904C3BE8361200ABC6E7AD42F236A0826C03475385153CF538782C7C8A469A43793C3E81ECB524AA838F18042F2075E0A8C58A5C244E14119F5B6D5538385089400E23BC1C106B2CDB59F287C538F32917C202FB682B9C5AAA5FA343A3BB6B147C6C9CE3B4E6E74096E0423DB52E7C0099963C5147C2CDC7101B0D01CCEB8AC64937186C23B0DA108F58F5271E1C5564A7AD07F62F93B4B89CE5BFD28462D4053BF6085CFC254AF97C05041B0494EC11DAA36FACF034210383ACF9089D371AEAEA975C489211184D55DB561C272CBA9881ACB88159C74BF9671147490FB7A4CBCDE1689EE7CD777B3F83C54850E8082E884A7C3B3333D7CDC6318D5347B0160A4B67E46A24D756105C09EA0043B66A74F98599129B52EDA51971B60B6C65867B3545139990AFF9C088B7B114C03D10972BC6E5A353DA85497B95C8BC5DFC156542EBA57E96CC5A4C3F2BCA53D6A1315C63136139CA954A86302CA788C27B4F82C57EA35BD7C31D5D543CAD66BC4EC9B93DF67D2B019E56E372FDD7808F4453EBFA3092676224670F79EC579307052832BB4F2150DA4C06E8069855573378377C44A9508410CC62C60AD1DB5F3077B911F76CC148C354733C0AACCFAFB85B0336838AC43F6152BB2845A3DE24807102A274D2B33F84392648C6F64AC85D304A4C024D88C0A13F0874231CC6D2BC8D7C99C0530087F61856C000180E78939148212D2B065DF99FA51A0E768995A8F3BD71CA82A1792AFC7C05F8B07DB30AA18DD25180B73D175382158A1C3D5135FDC40F2068C17ED11D32022CAEB404C68418E7BA2F352A510CC203179366249385A2DB3639809795CAB6AC0C11450220D96356BC6B45EA943C5028771EB8C58097966B4821BD1504BA1A1836251047C8468089C58AC851999B7BA017267C3A6E20C5223FE5A41A52044BD5103F5B1D31FB9B0105CCBA387CCA72B6FF1BB27119005D6A29A6200DE9DC2C19D85BE067793ED476B0324C24F10A8D106B55C63BB346B9DDF44B9A5A5349B766132824CC955214315267D69F82093642B9C2360C2B57993B1FF2C52D8118D62375AC851F5EB181A24BADFC165668E7A36817CF80F5873F87A6DBC3CD42C0B2BEE57F0E06C93A9807B0BC32DE588808EA0037DB50B3BC14BF98AFFD4400DC9566ED8022A4C7C34FC4369987904B362B1D04CF3451914E5909EF750DBC56AF138529A601A261932EFD626510A528643693EE79284CC3987E3694CAC828BA3964E637925B201E270744FD41190B3B1C088A79F31581B0641917DC161B000FB4A8281F6A6B7B1392949ACD277B9901637C3454A058589299C48B3401A2E0F788744081CBA76B5EC378BB83789F63962AE2AF1175176FF353C1CB3632BC0E206194F4B7367779146DF4ACB6D89652B946A9B9C2B61C0553360616F90E97FCB190C43FAA544891745CA9B97950384DE8534626914FFCDA63AD302C9F001A361BA7A94066C9D8B1F30111FABA3728FB143BD788AAF04491951D541078AA1069741352FDF8C032964717EA1791472A2069CF43DA46A40046C61C79CF4A7D1E093526D75B444A08B0CA984F2869026A4432244D662951DF52BA655AC54C502E83E8587E21C4757166B78244DA2B5364D3299981859CC61A67D02B32B19C8AB31B78146690690096D606BEFBAD0EE628103712F0F81E5FB4BB22E65E9AD1410504CA75D29386F73B53B0BE140A5B548A48B05313DE873E18B030D6F691322A2409F4603C7BC24C103111FBA7DD5ACB3F019E7CC22BC3F6B1E6ACCA131364D0FA0694866E2322281CD229C16AA82116CE6FD0187D4034DB33C2B3840DB1F42C5DF49825FA7C6BD62C31A625616270565A2FE3F4BB50C58597F70E6124C2F46A83C3FCB62AC65A5A66557B22AE31C7813243A1F0C4B905A31A40D44FCCE89372AB6FAF09318A876BDA6C3D4D787DCF088BA345A6814CB9A0825EA860AF29B81586B25832356C1F976370496B6FE7493E482E0DD9483E51372B093D37F29B9D1A83C209BD98A363DF8A3AE430BA3B2ACD5BD679C7D4995A63A8610DB945708CB5425CE0C3C651532A43D32473F236519D54FDFE0A815DA333D474BE9BACBEA4C301148BE2DDF13C3C25D7E4F52447A549A27B6D12710D08AD5BF30D584AE9C8425AB3C8F1FB9960752721CB2C8310CD7BAC84808BB979 +encap_coins = AD44643A608B78BECE50B8309F573AAC3DA68125CE877E8BCBDCD51762AA0A9E +ct = 1EA27E85C7F534EFBFFE15ACE54E4D26A8B6EBAC4FF3D535615CDB8720CAE17D4D5C24567DB28A75B709D405B4EC521AD09993A20A42C3D1F09A35DDFD584952B53181BE39ADC33D84989F569D6509C64787D8CBDEAD4AD8969BA089AD34AB404A1C73380269034BE5661B5B1FE655F2BF9BB7051AEC2AB8113BB60C5DE847016452AA60EB0590117CC38604063FC6D1405D59B15B4F6A940A3F0657EE197BE2D46F07E68574B405D4A0FB2EE8490168E0A80F2D2194C6D74F347A8FF0C90C1B3C1FA4FDDBCA420D49D5DC0DB8F1A6CA2C92C30BBF771B57349D1095CACDC62FB5C276FB000C09757A09F274B343B40E0F5FB08EA7DA9C5872543C260DCFD1C6B72BD91204D85AF39E5E26648DF8EE4DDF2FB8608CD910C9BF884BCF430220BDD3D71CA88FBEAF260726AC51D905A33D6BA8561DB1FE401367DA06D0B0A7823A70E6CEC3B55BD7CE8F3BB7299716F84AF9E182DDD64FAEC35416B60E8F82E65A40F70527914A70B8B37A7C7B24F7EE2A020DE2FF6FB52422C0AB89E961DB6A73858692613EC81F48E27E349A5FA4ED66C769F6BDA339C35F381014D590244830F1E4782E5387BC4FBE43C4342A8C71962B6EA99B91D48805FB966C2962BFE2E3352D97D21F9EFB9F50052B0012519E149ACC8A0AD576F819FEB883DD2424407548BA277C0144B66303D6BA20CF385361374F4C299463E683D7E953DEA54EC507E76ED97E8A690673FC935A9681724E45AD100563454E3B624A62185B27F786253064388E944D9125EB12A74DA2EC07E00D9D43E18A1931E04BCF9411340096A694379988494A7DACBB4C9540EA6AFA1B0EFFC1BD9913CC8793145F32519FE84F4C7A4AB5BE46BD1B2A54FDAB7534B976E073BB0FF44EB35639B95ECC8B042203502DA1A39750E0016492F7527EEAD6DEE2804D2E3C2A4434E13A5C666B03CAF8D39419933AD28033DE7B92BD09ECA6AECB4A80CE86E3F674B4FD1B071B4732CD6CBABA54C08538D62216E53E637D1242762DC036E94E73C3C1D5231A13212EA2A16F1299D171C61E37B2960253F3606522D0273FA44DEA15C67346D016C44AD8C08388D5E8D11C7C6FBDF057CD6E5FF219189440D73F94E72BAB25F51D7D1DD425953C97D04D3707A579046B47E864ED4FEFC661125E744A89692ECE95BC3BF528086FA5356A28D7CE01C9A9FC82DC317938752AA8A94CDC2330ABB6BE1610EA994C4DFA4199D43F85ADAD7C8B2A6473436FCA055FD2D73932BAF7CBA243A65D29B5A4BA0E94BEADC6B39719F97158C198ED63B70AEA815CA0E146C577662DD6859306B509061056D5D6BA3951BF0ED4C8D7B341D62CD817668B621259A550A92DBE275AF76535D681BF0501444BE6D747B75F8227454815A02ED22F4C5EF03223CDB657E958EF76A1FFE6F51DB5C54D7F189B3457D284354E8223960574A8E796C37B7C98F1AF68470A001A57107C5E16D807FE2AF924C453DE16F79433369F9FD656C5BD2F205A5309AD1041A59C4A790D3F6F8CA1A2DE88391D7B0E8493663FD5E8552228C00B9FE276AF330FF69F323E4427ED38BAB9D628BB3F9C43CAC03192F29C9CC49BE90B626E71001CE38A6D5DBFEE0619464936B5B35DEA928CD17642C200FC017788B144A747A809AA1A014D6AE73A2DCB8F65A0629A24357C3335DBAB41FBEC5BDE8CA87960F2AB947DEC45218CFF2EA80A1E1E00C3619B209C2FA9C772442A409924EAB2A497993B9098BA4F2C3AF56A42DFE66E6CCEE832D081238BE3108169FF8A5C5893CBC0B9DE509FA5244DBC9D2C04535560A9EA38B1CB225082149CFECC47E036F41F09E1BB168DCD4CD9063D1E12B509E16819D8B074AB99EF24B8FD90742E1E15387C5EF26275A6327FA17DF51D9C15A56AC0B98CA80FBCDCC6667C35556BBC051CD4C2E369DBF33505BC63BC07746650D3DB9EC247D1B8463E5288C2953C988DFF78CC7D8844D8D9E2C1150A71DDA77FFE9FB228354157E5DDBCA870335A02A70283823C33C5B6CFFCB5A3FF8B0CDA2042D9033BAB0281BA4DEA0E4581E5552260EAA7DE203F06A23239375994E5900BC6E909C363427E565E814F5452C0DC89219BF976BE84FAFF4FEFC196E6683CBA6A5F935F82E51F3B8339F69A278858D35BCDD6A25584A3AD337AE427E088E24CDFDE3B550D0E3FE5572139017C467F6882D5034EA8428B95C6AEAFEC892D77D8DD4B61E5 +ss = 0D1137327F6352B00B4DBAB2BF5C7C189A9CBEB1C6D096C230EFEE2A3F19AE4A + +count = 15 +keypair_coins = 97B5665676E59E3538EBADAA8CD50DF1F9FDA1502D9894C616A946078E56B62148B1985FD7938595DAC8AB776701CA1E9FEF47350DFC45355FF1E83A08BFC3A9 +pk = EBA27CB3F055C38CCB7A5A78348CC39E6039A1126D369495687342F9B7C7C88A5F0D1C2B15E68366532F17D6CA8FD85D8E9249EDE8C5CE6572D816657D5755236AC059125743772EA7EA7F42785B48F62974A7B7270C93B4C6C02CCB87E54BA64CAA6967176E132AA33921384AA9737AF3A3E2D881224629A76C50712BA306B60FC88B85DA88B716A41509A95876355FDD49A2EB7130600ABD277810301062B0B9BE3C97343E345E8FE25F6B58CB16C90A36830452547F4F658110F0745329406DC8A698A71449888E2554C5B039076F67397A94CD13E4B9F9558BB0464A39074FB6E556494032B5433D3DF005CE4A1145F0448AF07A089447CEE578C2AB5D090A2B9CEAAB2B472420A56CAAA04387D7969FD51A1923C14959834B905617C61A68645AA51150F0079EA64BB16A8A8FBF701C9F5CA74A1803519792AB169976F886CECC709AA90C408720FED90B58D006F2F50D23C4BAC1432176A47627F6090A788403042EFD5A7D1A22C793AA8DD9A91E381ACB0B5625E0FC203FE0B4C7E816EAFB87CD774A5053036AFAB5B293C23598932ED3658F8453B958C1846C61C4190386343435B04C14EA3597F84A22F70124CB293781ACCB8BA008425149643E52CC124969929721486B42AC9B592EB1C15C4F8C6BBF901B8DD419C17C38D68BCB9D519E16021E62B211C6EA00E5622486E41F81F6AB58C49BA5729C91B2396F7BC9CF8462AF8B06D1C28B0CCA2FAEDA8B829943F64456BD214B7AE57061A325BB9C097B656217D65B36F575D39C11F971157ABBA074ECC1BA302D5318085E13AED84AC8D16652361B67A02C41AAB82D10FC339C53B3E096AEC1E1276A572CE1A5700C034014884392CC6EB4F9AD80A52B711053E2245537E76ACEE36F530610B8CCC4CAF241A0F3C1F8195CAD80C69B644C45F68BA7C448431705B3E9BB84568C895B56351A09BDD8AB2763054384C116E272F5D0A7F1F158E5F68ED0F47F625CA3732729E53A87D223C1CA807D277B726D0C7EE938667FF1C4AF519AB7E1446A077B6045995D3001FF289014E43C7AB738F422AEEA3269C878B3A7D979AAB698C4B57462339703386CB4D0BB0598272349B04230C6B6708C894BB409755DD4E09FB8A84E6EE678C896992E845908B963FBC407589ACDEC414546A92B1DA98C294B23A53CA79A27859BA787A7689202833B87893FDE1B230B936916BB038316B025A5B1039A775B055D6B26797482672F02985E39C88911A4540327E3680C574150B74331EC63076D645743C677ABC255D0B11D9489A35D65448A2C1BDE4228B4D0CA03441D90B57D5C16B6BC6562B4D22E61E167861CB62EFB1A43F008877A2895E95B4E0428086C7C34C146F5FC2C9BABCDB0F74C76680A62A5C8A82348E7B396B7D95BCA26169FFB90125B765D104ECBA32D3291A38079567A599644CBB4D36549F26615FD31A6232688BD1694D6C72CBF04C91638AC4E7C1D8BE2CDBAB51FAE70093AF3272B885E56F62BFD925B02D099602110914A50D3431F10A803608806D9257BDE17123E939DF7E1951883CA93E1820E852F2B511218152011012B8ADB46D9C400EF099AD3E412EEA953F7EB7E627A762DE88E7AF6AE0B832190B91950AA40713521E0F54955F2039213C16A604B29CB6DBA67B89947BCD81B22700569EFB06548944DECD13BD133877E44AE8480C46B6B547D72BB1FFA0F88FC3B13E2A48E5B490301D00DF251E5691D36295A16DACEF03C7974341EC3289FFD87434854062ED9475E758B6C297ACC679730E291CBB52562CB9408B07BD70215AED0A1034C6FCCBCCEC88B72E44944AB79592E659865F019280B8723C578096220CE5A0930DAB0075BBF09B952C217B4AD8B707B8106F9F5180EB514176AAEDCC3BBE0A9BF876895FFB1565D61B01F0A3F2D9391C56B6E6A9363D434B1338456313472AD730CD9374C8D81788FAC62D68694DF05BB88A6613EE14D13CB6E18F69B372C2944A7A76D3A16157686AB6250A98B42D50B15AA8BC9647A480C7388A78A78D9635460934C7EA57C4979C9B48C5D5B75CE132814B26C0FB06AACDE963010D592AC173171B55AE4EBACB3777DC9AA8021FC90D5D286D2769FFB833812F6A6E806BD70C74F87AB6442257F56DC7881A781EDE06A48C1383938A9F242264AA93918BB0AC3F8119A88D1FBCE1D3419BEF67B6694D9FA1BB309CC61C819176964DC +sk = 48C78CB714B9CF88A8B317A6FBB681B8F47D56524122156503823B600236D3726EDD9087504705CB4698A1515DC0D80B3F87C63D575170F45D121A848D897C3C0063DFE9B2D616A96552384FB72D6226A193F90E15B364AE667C34BA27FDD0AC0DEBCF450578C6D182DA365D40786522C37B54E0126ED7B3C6BCCF28F40770F23736B394210B67EBFA72F6B27799FB1F6E48CB7407261A86884621C529974635B35F5B4C530E68BEE8CC213387B66A4127D01223180067A2EC24B2EBB579F74BFD5417FE995BBF816737722912B5B4DBB4C938D0686D1C2A44880FA7231944C195FBD67C67E60861D169DDC41F8150B52A68C14425190BE2ABBCF5BABB734AA03538899678D4290738CC63EEE611E4344EA73B9C41F36C712A4C6C72422000CB93E144F3C588A2299D5704CB347B90B2905CBF69CF1DC5C670909C478094E88C01BB3B3E4FE246F8DC3C62DA37BB13B6E2046911D85D5790869FA4A54FF16794620480919C0DD74B9887BB5C125C34D76B3527A42A46B689FC4C57571AF13C44B7D30A041028E97C0A1E50621567374DE7A4207ACD4CB18417C7984645CF4F2B5A5434BE8F119798C0760229301E14431B0B652C643C0EA0CCAA13CBC6FA6DC8D348B908B78343978FD5A0EEE90CA5104184F33F107837B3EC667EB207000570DD33856939BC8BA671B3731EDB2A94596A8F2F37BBBF5048087091FD2AB164F5C6A8F92F65239F08844ED4F605E3BC1BF780877EEB3F4C85BF696C691F85A947461331AA33B15973AB4923F429C7913731BC025539232217F801EC7078E2F0AF3EC7494684BFC40B4FF31798467746F60BC9BCCB5B1E397DFC6165773A965E55034DD1094966694D7806F2F505CEBC3B3DC307405431FCA21614089C633B522510A5FCA73462B32FD69200DC614C5E88454F181D845B19B8866259A2372BB3361B9ABD5AA278B1773057E26108BB020A9610BC19AF13454DF46B4FB5A68C3E7ABA6E7197AD63439C7252CF9507E32072E437296883C93902250165A1AEE8BE0CE6ACC2029E10E97536EB958B691AE3E3AA9996986805C6D1F6356D26C1E63C550381B292FB1B95E183CA933D5BE1BAF6294C4B248B4264724712B2A2816ED3D09042287EB8A17AD6C86255AC492F53A21EBCC19B3C8BB1E78F58BA98BC8AA77F6A5CB90C0456E1CD663137E11185536B02D8708644539701B193BA52258064B289D053404BC78A397AB86895BAF1934E8B2F6CC3AE48869BE7422E581A6FF748519BC30BC96C716B0A24A02679ACD5151CB2A0FA127C81EA513C3CCC3B84A34025522486CE424BC04C860EDC5758AA990FED372DB324614FE91589D78ACC88C43C2643D540A509F090EBFA6214832C76CA982FAA1CA4465F9C14AB4E6459F072558946CEBA113B5FC7024A364970C72933331A6A4B0D4196B9E6219595E229F3E28FB2D5C6C4C041DB226AB611B04C3A80FB5A7F15E08DF3347DEF02663AA39409AC4E8C8BB0934B46B6A8816CC70C8C0B11A7EC1CCE57BF5BAA30E69207D7E59C9E386D5CF7863C133BA1B510F5E06C4876BA7849611BACC369B039EFE173DF6B8A22469E1F200F2AA53FF84390B88302D9F9915C4B8257754B3423097E7C6B0DF0A71B2162050A67BE291B2DCA0460A455A68068C3DA2EC3C5C4FA3A272D45B55F58A01F2A8DE5C243AE791C0FE643BCB35817C154FFD29315CC7B4C3843CA4419146422F63246D1FC543F24A884839B4788C10F0846B3FB87E98BC4FF634C05C60F250B8C2BFB46C50C8A5CCA5CEED866BADACE5A8C88A2E2590674727F969056569B2B0615E641931C3B94A12A715925CE33716A985A5762544AF3B442486B14316C9AD100396E9885C7B0BA8C67621B6C1E90C13A248A3BF6C0BE9F96601572C87154041878891A2A5448AC965C2C7C283166AB39AB1576AD253491AB04A11B824FB6FA516B6709F57B98A610B94B2A2B87F50480640E1084A6EAE10FAEA01C281B97B8ECA8575CC00A2020E1533C3EC30D9A55883EA9C5B2681FDA938F1536546CC474E5E37A05EB89AE4A822CC6A32B8C828EF782065695DD630063CB97E953B04911AAAEA90ABDC20AF3695492B49B07C26F79F59F32D74674F37971D2668340A4803996358C59051685CF15410A72657355692816699CEA982CB364EBA27CB3F055C38CCB7A5A78348CC39E6039A1126D369495687342F9B7C7C88A5F0D1C2B15E68366532F17D6CA8FD85D8E9249EDE8C5CE6572D816657D5755236AC059125743772EA7EA7F42785B48F62974A7B7270C93B4C6C02CCB87E54BA64CAA6967176E132AA33921384AA9737AF3A3E2D881224629A76C50712BA306B60FC88B85DA88B716A41509A95876355FDD49A2EB7130600ABD277810301062B0B9BE3C97343E345E8FE25F6B58CB16C90A36830452547F4F658110F0745329406DC8A698A71449888E2554C5B039076F67397A94CD13E4B9F9558BB0464A39074FB6E556494032B5433D3DF005CE4A1145F0448AF07A089447CEE578C2AB5D090A2B9CEAAB2B472420A56CAAA04387D7969FD51A1923C14959834B905617C61A68645AA51150F0079EA64BB16A8A8FBF701C9F5CA74A1803519792AB169976F886CECC709AA90C408720FED90B58D006F2F50D23C4BAC1432176A47627F6090A788403042EFD5A7D1A22C793AA8DD9A91E381ACB0B5625E0FC203FE0B4C7E816EAFB87CD774A5053036AFAB5B293C23598932ED3658F8453B958C1846C61C4190386343435B04C14EA3597F84A22F70124CB293781ACCB8BA008425149643E52CC124969929721486B42AC9B592EB1C15C4F8C6BBF901B8DD419C17C38D68BCB9D519E16021E62B211C6EA00E5622486E41F81F6AB58C49BA5729C91B2396F7BC9CF8462AF8B06D1C28B0CCA2FAEDA8B829943F64456BD214B7AE57061A325BB9C097B656217D65B36F575D39C11F971157ABBA074ECC1BA302D5318085E13AED84AC8D16652361B67A02C41AAB82D10FC339C53B3E096AEC1E1276A572CE1A5700C034014884392CC6EB4F9AD80A52B711053E2245537E76ACEE36F530610B8CCC4CAF241A0F3C1F8195CAD80C69B644C45F68BA7C448431705B3E9BB84568C895B56351A09BDD8AB2763054384C116E272F5D0A7F1F158E5F68ED0F47F625CA3732729E53A87D223C1CA807D277B726D0C7EE938667FF1C4AF519AB7E1446A077B6045995D3001FF289014E43C7AB738F422AEEA3269C878B3A7D979AAB698C4B57462339703386CB4D0BB0598272349B04230C6B6708C894BB409755DD4E09FB8A84E6EE678C896992E845908B963FBC407589ACDEC414546A92B1DA98C294B23A53CA79A27859BA787A7689202833B87893FDE1B230B936916BB038316B025A5B1039A775B055D6B26797482672F02985E39C88911A4540327E3680C574150B74331EC63076D645743C677ABC255D0B11D9489A35D65448A2C1BDE4228B4D0CA03441D90B57D5C16B6BC6562B4D22E61E167861CB62EFB1A43F008877A2895E95B4E0428086C7C34C146F5FC2C9BABCDB0F74C76680A62A5C8A82348E7B396B7D95BCA26169FFB90125B765D104ECBA32D3291A38079567A599644CBB4D36549F26615FD31A6232688BD1694D6C72CBF04C91638AC4E7C1D8BE2CDBAB51FAE70093AF3272B885E56F62BFD925B02D099602110914A50D3431F10A803608806D9257BDE17123E939DF7E1951883CA93E1820E852F2B511218152011012B8ADB46D9C400EF099AD3E412EEA953F7EB7E627A762DE88E7AF6AE0B832190B91950AA40713521E0F54955F2039213C16A604B29CB6DBA67B89947BCD81B22700569EFB06548944DECD13BD133877E44AE8480C46B6B547D72BB1FFA0F88FC3B13E2A48E5B490301D00DF251E5691D36295A16DACEF03C7974341EC3289FFD87434854062ED9475E758B6C297ACC679730E291CBB52562CB9408B07BD70215AED0A1034C6FCCBCCEC88B72E44944AB79592E659865F019280B8723C578096220CE5A0930DAB0075BBF09B952C217B4AD8B707B8106F9F5180EB514176AAEDCC3BBE0A9BF876895FFB1565D61B01F0A3F2D9391C56B6E6A9363D434B1338456313472AD730CD9374C8D81788FAC62D68694DF05BB88A6613EE14D13CB6E18F69B372C2944A7A76D3A16157686AB6250A98B42D50B15AA8BC9647A480C7388A78A78D9635460934C7EA57C4979C9B48C5D5B75CE132814B26C0FB06AACDE963010D592AC173171B55AE4EBACB3777DC9AA8021FC90D5D286D2769FFB833812F6A6E806BD70C74F87AB6442257F56DC7881A781EDE06A48C1383938A9F242264AA93918BB0AC3F8119A88D1FBCE1D3419BEF67B6694D9FA1BB309CC61C819176964DC35D109F57EA2764642EA3473A4F192CEDFBE153A37F131CDF447B60E92310EEA48B1985FD7938595DAC8AB776701CA1E9FEF47350DFC45355FF1E83A08BFC3A9 +encap_coins = 4FF3F8A7536A4C7D4BDEF0400ED1B450CAC329089B1443BF148FEA0A01398912 +ct = 83B9C36CEF6686593CEAFFDABC9F548A5D386B9B9E8A57599FA181F71EC4A825D3D57381DD29B16D604DD394635DAD7547B91DC7B97F160628F96382BA59EF0B043194C7968F1F659300B65EFF7DA5085075FF86FDB27BF6BB046C306DB84B0FF3FD18EF7615E38B9AFE06E8FE518364DC3DCA1706EB5D3DC8F5048F50B9B4C7D99821D635346A8EBDC8E3BC8C6DA4BD3DD0937E3641A9C00FB42699B1E0E2C06F1F104E3DD462CAFFE112B013D260DBDE718C6BAD8C3E303A86B474D110B5CDFAFA06643656DE3B3B86E30ECBCABE98D35E3D80ACB2316D391605DC08EB4879C9E817017E77DD37D324862496D097AC11861D9AF3F53018741952E4F449F3EB025ED08D3F1891AAC168268CADD24913BCD94DDED406CB35C681DA4BA285425705C950C40D387D5862BCC823674E6680A0C249B70FBD1C3EBFD6BE4A7581ACE22EB7EE7E3730C829900DDB2330BF6DC360123A8F895E00EB9E37C76EEA4F0C4A5FB7FCC31EBF6D054A91BD36949DE91576FFED6EB5DC196AEE086255A49386839782CF0E6A93EED16DB06EA4CD5FB924B3B9605CF58A10EAAA23E48B280147D1B707D39CE2E902FA6D93359308E660BBE8F9AD173385668D376CC334952DBFFC48B124589427D4261A63412D72180234270E673D31A1BC4B9F303FB1CE9B5A96431EE8355281ADC6E8C10371B9B95F1E3FAA2C0D5E5FD38E9EB682356ED3EDBFECB87934B0B739FF8C3DF3434315910C9AF9454EECC08E65313F6EDE74F5DB1C65557C0168DBA4BE9D23A72F729E68ACE0454BE738217601437ADAA6E9FC70F1520EF51E8C3A9486ED57463CA980BD511701D69FABB9439D5C3BB0A5DAFAEFD64885010645F98A3EE85C90CF3BF59CEEA7BF3B5DF4FF02FFBE69DD645A062D6DAE3B07BE3613C910B0A54486B6E75CD16F38F2C161129193F23FD2998A3DCCB2B409BC987E7B8336127306901D882CD8B9EC9AF862D294A6D39D625E0D6256921AE8A00DCE8B0F3253F960CA0970C39013DC544BA23622A98E96D8C0ED283DBB91CA62411C5D30BCFAEA2A9A08CC5E1738C41B6D1328FC5C4C97913684E1430E7DCDE548C45687598F76A5CA7DA3D3507D451720F6914797FD145538CF4D85FED406EC9F880A66B1F4F34E9E3AC0C6766C5405B7F344319286B64FE81014544B6E13C3E9297FB5E9B0B4C46A3C29A45E2E38D8D2523BE08EFCE15AD9254BC9822E383CFCBCDB70919E61A7F060A8F016E504B1D4CE697B348F73999282B2920CF9BE5ACCF6FD0991DDCFADE7D7131C24A2C5F87E7B182C879F4F433F6DCC6C29FD8C37273BB95EE323522FD83D6D7D347E8E23F6A4F5A1A1B2896E0C2BBAD99FA686919B2726FB3F7BDB3EC03239D768D88BD004B9B32EA4D68572212209E53141F13C46B3444FB32D3C1E8683C7C82451ED9835A976BF7591168FCF3DA72175C715CB1976B32A586EAFFFDEB3EFCDF4D1762293AA5B7F57976420025BFB7F162DC5F4F6D7AA0D88AD6B50A5497E374A6E3A8EEA10D554BA6325AAD293EFE29547C72E6842442EEEB749ACDE85147BC5C6660335ED10550CA106A7D983C9B0F4638E1AD581F0399FF4DF85ACB3580134BD97DF957D0A26F659AB9F1E936A90922D553E0DD75B61B124427820F00D613BC2DC9C871FA1124567F2824F3726DC59760392F46F43A8FA4D57306836730CCB46A7E32B88D7E5B9DB0FBB751D4E950EE8EE866D00639A78C80D94F5B47F0AF8FA599218BADAC83B95687206AE8AA98AE4CDDC6DB0B5A86FE92A21D42EDCF5E92CA879850E863ABA8EE0A6444C06226E7DF8BF2321196F23EBEA895F3364127CDED2DB6CC4A9A8B2EDA007119E5E76495B1307F20D940EFAE76CCC705AE7435D9D114B49F15F7AD17F7EF3330001A648AAF58D6B240702342B1DCE42E433EB001A6DF9507B30A6AABC0DF5CD46B1874D4C3BD37B5A90CB53E09016916158B6BE6BB5D326F709F56064DB717083DC9FEF21B882A7C0A62F489B937D37CEABB97C2B034F44E4DC3F97CE6007F358671BA5A5B95BEB7D80F3E6BF5F9EC1BAA82AC9B518260C3E6D7E9AE606CDC7B68CCD164596A1B3C85EC66F62EA533C6E3CDD7A2F58C3712578E2719A9E7EDBAE28450BAEDAFCB60EAB51C14D2DA09AB721B34A4DADE1C1A5CD4F0D731346D39C443155DC96A14C980FA6B63F60CCBD776E4B72048C28728DD24C7D9032BCC16966D979 +ss = 9EE493F9D10799EE58372DF79A487C40F901CC87F63563705F31C619B54DD6A3 + +count = 16 +keypair_coins = EF99224A03A85A46EF115474EC5B5D620DA6795D6EFCCA4C9135D19958A9DE6285C3A8B3732DB34F4CD985B65E078AFE6A735B53F4BC36D4762A3E45D1DBCB74 +pk = EA9213F8FB3AF02330F61AB15D3A31CBF57898F016B419430D790F4BA8A594E2CCB6483E46E5474518CCD033543065CBE6A5755E97790C4109A5CB18B124992D885493E03A262C3DA395B46A069B9154C81294A7DD59BD092B69ACA326220475FC792AEB639CCFA62CB9C549D28736A944AF91119AD865C8E13700CE9482AB6B89FA7794F9D273BAB516D142455A78675E21A8E74CB13876C82C738A55A4649304CB8F9CB2DCE220C1BC06DDB0C5291595BD5867FD105236A91D3D61B25950C4D991625D3AA711A2449D118A51A88A1C4C17CA680C3CA950D141A220A0271A2B0593DB333C1CCBE6A1380E465FE60404055BBFC511895861A32433A7037A00CAC8197AC11528011E4ECA80BBD921F2BB8162C0580FB94207C89471DA649EE7CFFA4293C4B6BADDCB88EFCA19AB6C6E71F54814B8A2EFF67ED476088DC30727AA0A47B81F9390BDFB93C3A8281EF3B92BE88B130FA739023ACA492549D42103663B97D7318C01E0660696984AA5C5BB1019024862081BA8D464B2D10AC6096B5B04B5CF867C51141A785A41A25703627F0A51BFA82344723C0BA43184A77556B8CB107232F480488CB24F8BF324BE8116FB49C8C329BBAF00C9AC7751A39A222217979A83301C0528B87992B87CBD5C576C806B4E8C383D5FB025CE83104FC5ABC9D235EA374588505018C167A78902ADF24F33AC22811C612CC09B4AB1240FA18359134CF4F657FB5C96BC544F83B8B02620B5564694284452D8D0467716BF41504DBD6574F5BA2879B674E9EC858700213DF91F5F9B18686669C9365D2F2CB9DEF360EDA91272B876CC75A022724C7CAA7E003CBD0B8BCB5B8656FA7255F0C8BE4BF2398E3106E47BA27A934896370D52E0CFFD9263CC85B6266018FD6303371969E7B78D326C9FC2C9A5B1C32E68E218AD278A8D5CA5629210BA342148E45217D594958BC0EB6A13B5910AF6F616E290472CE203A7F76F1AEB4651F00397FA537FB419EF2CA0F28834EC0AC07B11BB22B3A1A1B1CFB4679586F720BF6151662303F6FA774CA020FC03CDCAC3B74C319C5B23CEED4C24EBC48F067735CD5A02F579693C6BA2A58C8A5CE9B5CBD88E4B246CB75B34E286455A7936F6082965579BE60A0812D34361695EE6282998219366628ED9575203D6652FB127074CBAEBD2C1B25C520468A4ABAB0B550503CDD33851ECAE8BB27726396A15A63DC26078368AA5A7C1B075E781FD231EC27CAC42EB9E507A82751B7C8CB7B3547B0A1A58C82CB99DA9CB926E311B5A9A1D682BB8DA2C40FB679AE4C15EA0360A39EB6FD10719AE253AAC91132938579D3616DFF29EA1D33640E3B71CF2652E85C786873E1457762D230E99B81DB1A99DD0A8CE052849E1F8A5EE050EB607AE2DB8AEE4D76845158617E4972BB97C10383A7C19A02907032337720DDA9B9F8174FC20AFB4439A21FB979AF288F7B7101B104E2C7A9002B353DC1C80BFB00797455640B603B65C4CDC89254014079FB33217A15C31F6262C1430002AA148CA251AA15981947D27951F24030F9ABC3E49370A94D803094881F3017A8BE248E2C9515822439AE537776949641513C99C695625134348172B76B8ED929D1063B05AC774D83A3A6B0482EBA52B2F07BD17021E0FC4B7651347F4B95E72F0A6D676158CA191A5C9975B1BB5B5218093EB9716E350E2D340ACE90956C05B5D874DD60A7C9716894F551DC5986E378C830AF8CE327A027741431D48714223C83F7B1DCA94CA5E99814E1311C69481F38BA87FAC128EA30C19B2BAAB1A2383113E5D282BBF0C4175A69FB4DB66FE4421BBB26B990203929B3A58A85245BACEDE19159D1AB21537CD7861191D15185CD5B4F07A2559110CB42BC0CBA54CFF480750B56933666CC470B2504895A1213DB43C5C176590C9D97AC7279D6DC55CCC7B1D4D82BB33F240B4C635A936BEB5D71F787C396371C088D65F7B2A395071A4E6C381A1708EC05A6E55959845B456794055864C566D445AD9091834B77A30228CAEC6A0829BC243A9330B42010D62149D672373812DD014873BC79F627B25B1ECC782384E0DC8ACCFFBAE88C0415F6CC03E7640895C744F4707E130A9C9AC6CBCB70729DB69EA7C6D8C8A9E94C1438C96289B41419AF6AB083219F8A88753CA8B6FF168D85C8A2AC94CB6955ED03C49E0BEB46C4EA9FF7BE444932E61D464966BFFC96BEC0647AB34F2 +sk = 953B6E6F452FFAB6B9E27B707F600992E228F5FAC92680AAF31300154B218AE51A012A4CF53840CFD714CB63CB4C7AA0E8EA6E50803CA370BB38C7205D9365448B38308868C83348ACC365BE62B4FA763ECC5112A48558E57230D92B5869D77D99A5C0BEF49819500B333300910117E05B082D15368AE529923C6BC9D3594AB33C91B81549829A2EE55AD152493E80AA80399F770899EC05417A698E6493AA647691FEDC92854C23702CAAFC8AB3A3194CE8437B8E2A7F69454ADF3170C282972ABB93CF152DD85587F6272B0B71590C81B3A9F680D19445FFF0C395310A17F55272CC3E1364A9AEA7A67AF4561CF10043B7B7EB4AB0791A8D62814F4B6536CFA69CA0493FEC1A53D58709FBAB9C87578D83C9441D62C267E7AA4EF0AFC7106C9F834A5A13206C4B58D7378AF90B85F7E05237559D6D7819F455AA01D68BC297A8DD760A0DF971542919979218B4861A49E45AAB12BE67080D197C25CA53483D781BA27893D23BAECD393DD1643DC2A53275C84A19900B364CCC94A8BA3B5768F8DBBE08A7B08FD2746BEC62C98C5E5198695B12048BA5C98753AABA88BFBBC6C8DE490AFAA8343D334AAEB72532C63D60667079B41B6A287B04C797458ACD9104C94E96BF18137B0868737DC00A8E2164E0980B9B2135DC7C0E80E1B930C22874FC2CDBE0B5542732E8FA80E407A1A6E5AF0AA3168A963587379AA3E6A2B082A8A35604BAD827BD6AA1FEA76A608100DDC40B17283EDDAB2335B8796DC1BB57887787A4273C4185867368BE581F6E5767BBF0580F07B003556ECFFC3AE336260FA0A80A2C9E4C9914144551C89A9D68373ED9C7AFA83C75C6B8AFFB54187D3B46ABDC61D9E070B5584BE7564F932985EA4C739CC906732A7CF79A65F0F7B0682CAA5D2070B3E0699B1BB3AC0B38CAF22CA4DB9472D06B02954E36C0A3D8890473588C77E43990DA1C7103985761CA711109BEC0B805607D732A36BAF897E93C6D9A988B94C67A4592B7583126FD452FF0B45A033824983715C60478685B9C2D013D41B47EB342A05FB76232554DF30990D6F1B37EA9172020C66FAC8F415615EBE07833A2588EF622034074B214CCD9395648071821D1109DAA87C0E00CD9573254538EC3B8459CE56578C09CA66A508E88C4DBF6183A268B86FA4B7733A8CC89AC81619AF8F56D8ADB1F665A7AC413005BE730AA41CEF2B06A7FBA535552C8CEF73E90A8584A8B799C323F61FAAD4B8C25D06CB883493147069EB1C9C8FB262B699693D0601262E9CE5B383A0D27C1572C49547BC908C003490827343A690859A15B20119975C35AA991183052F117B53D06C5F4683D19CA5BA6F5595B8B269D96C1B3524CC8FC6EEC750CA33B5518603F59B50741D246642BB88EF61A8BD4C54F48AF3F573D4CDC5143ECBDDAB5A281400721544E16E35EA7A05F161003A6C3ADAF690189BCB074F546BC2033B1E8B00D56CF32E0733DC81D05EB358D148A91FACA963B814A9C5FDFDB4DE79B729DFC26C3D9B48A4730337B0BAC8C2A3628268159979F6B10AA9AB90ADAB98B9C0928FC4E3570AB01F02D5A64C5F605596E3498EA532472760F61CB2EB734C174E48237C656636645886B65C566BF95D927B692A02F0100CE756A60B508A18754D8F6BD8B884E0AC57F0C0B8F12347D40FA30F364121147263860825461BDE41136AF083B303AC118D685622CB7C4092BC0063328A2484D3392F8AC4D91B64C2D19A8D2A1936EFB0AD83C76B51310AFD878246C52A2B13E8D3719A6729BBF057365185E997603164C63495A651A65926EC96C7C54A03CF00A74A83FD59B1BB33C55711C4E268AC89C730F84858E67142F051C617E131BF1A66FE39C5BA4D12676549D6331B9AB32A10CD9AB9A686216E0CC652C981F74C3A070A2520A9F45336B955C46CAB108365861E5C79BD4F92D36959804BCB458F8436241AB5B204BC9D48BAE38BBFA500DE53A7AD671BD4A29057951645A346C2F7B1E6573323CF6836433505CB116361919AC640A8E504307DC9B0641A2900313FDA004A1C4A8F0EBA7C42985472A57ADC37D90139DD6F23E39B15DB0736B8616603DA46ECDB42BE478B728519BFB1A95A33C9B7C2A52FA1A089D647FA6BCAF16B83F27791A59C89011739909DC13CD0A8E32381087EA4024189FEA9213F8FB3AF02330F61AB15D3A31CBF57898F016B419430D790F4BA8A594E2CCB6483E46E5474518CCD033543065CBE6A5755E97790C4109A5CB18B124992D885493E03A262C3DA395B46A069B9154C81294A7DD59BD092B69ACA326220475FC792AEB639CCFA62CB9C549D28736A944AF91119AD865C8E13700CE9482AB6B89FA7794F9D273BAB516D142455A78675E21A8E74CB13876C82C738A55A4649304CB8F9CB2DCE220C1BC06DDB0C5291595BD5867FD105236A91D3D61B25950C4D991625D3AA711A2449D118A51A88A1C4C17CA680C3CA950D141A220A0271A2B0593DB333C1CCBE6A1380E465FE60404055BBFC511895861A32433A7037A00CAC8197AC11528011E4ECA80BBD921F2BB8162C0580FB94207C89471DA649EE7CFFA4293C4B6BADDCB88EFCA19AB6C6E71F54814B8A2EFF67ED476088DC30727AA0A47B81F9390BDFB93C3A8281EF3B92BE88B130FA739023ACA492549D42103663B97D7318C01E0660696984AA5C5BB1019024862081BA8D464B2D10AC6096B5B04B5CF867C51141A785A41A25703627F0A51BFA82344723C0BA43184A77556B8CB107232F480488CB24F8BF324BE8116FB49C8C329BBAF00C9AC7751A39A222217979A83301C0528B87992B87CBD5C576C806B4E8C383D5FB025CE83104FC5ABC9D235EA374588505018C167A78902ADF24F33AC22811C612CC09B4AB1240FA18359134CF4F657FB5C96BC544F83B8B02620B5564694284452D8D0467716BF41504DBD6574F5BA2879B674E9EC858700213DF91F5F9B18686669C9365D2F2CB9DEF360EDA91272B876CC75A022724C7CAA7E003CBD0B8BCB5B8656FA7255F0C8BE4BF2398E3106E47BA27A934896370D52E0CFFD9263CC85B6266018FD6303371969E7B78D326C9FC2C9A5B1C32E68E218AD278A8D5CA5629210BA342148E45217D594958BC0EB6A13B5910AF6F616E290472CE203A7F76F1AEB4651F00397FA537FB419EF2CA0F28834EC0AC07B11BB22B3A1A1B1CFB4679586F720BF6151662303F6FA774CA020FC03CDCAC3B74C319C5B23CEED4C24EBC48F067735CD5A02F579693C6BA2A58C8A5CE9B5CBD88E4B246CB75B34E286455A7936F6082965579BE60A0812D34361695EE6282998219366628ED9575203D6652FB127074CBAEBD2C1B25C520468A4ABAB0B550503CDD33851ECAE8BB27726396A15A63DC26078368AA5A7C1B075E781FD231EC27CAC42EB9E507A82751B7C8CB7B3547B0A1A58C82CB99DA9CB926E311B5A9A1D682BB8DA2C40FB679AE4C15EA0360A39EB6FD10719AE253AAC91132938579D3616DFF29EA1D33640E3B71CF2652E85C786873E1457762D230E99B81DB1A99DD0A8CE052849E1F8A5EE050EB607AE2DB8AEE4D76845158617E4972BB97C10383A7C19A02907032337720DDA9B9F8174FC20AFB4439A21FB979AF288F7B7101B104E2C7A9002B353DC1C80BFB00797455640B603B65C4CDC89254014079FB33217A15C31F6262C1430002AA148CA251AA15981947D27951F24030F9ABC3E49370A94D803094881F3017A8BE248E2C9515822439AE537776949641513C99C695625134348172B76B8ED929D1063B05AC774D83A3A6B0482EBA52B2F07BD17021E0FC4B7651347F4B95E72F0A6D676158CA191A5C9975B1BB5B5218093EB9716E350E2D340ACE90956C05B5D874DD60A7C9716894F551DC5986E378C830AF8CE327A027741431D48714223C83F7B1DCA94CA5E99814E1311C69481F38BA87FAC128EA30C19B2BAAB1A2383113E5D282BBF0C4175A69FB4DB66FE4421BBB26B990203929B3A58A85245BACEDE19159D1AB21537CD7861191D15185CD5B4F07A2559110CB42BC0CBA54CFF480750B56933666CC470B2504895A1213DB43C5C176590C9D97AC7279D6DC55CCC7B1D4D82BB33F240B4C635A936BEB5D71F787C396371C088D65F7B2A395071A4E6C381A1708EC05A6E55959845B456794055864C566D445AD9091834B77A30228CAEC6A0829BC243A9330B42010D62149D672373812DD014873BC79F627B25B1ECC782384E0DC8ACCFFBAE88C0415F6CC03E7640895C744F4707E130A9C9AC6CBCB70729DB69EA7C6D8C8A9E94C1438C96289B41419AF6AB083219F8A88753CA8B6FF168D85C8A2AC94CB6955ED03C49E0BEB46C4EA9FF7BE444932E61D464966BFFC96BEC0647AB34F2CD65FD07A78E48C1A02E235EC76FDB509CF9903A4F5A850C51D9D3FDA383CC6785C3A8B3732DB34F4CD985B65E078AFE6A735B53F4BC36D4762A3E45D1DBCB74 +encap_coins = ACE5E23F87CDB061C1821314F8353CFA96D69CF902A2866E5075A796B24594BF +ct = 1AADF4A4BBB4B83D639200A44248FDF438FF1AEA5707AC975AC24C0B5311988EFDB9ABA49BFC41005A32A6BADEECC2DF0910CF94BFCF652DB56E8449AB8765AD04B60C4D2E73A227A3B803E5C7C9A6F1BD1C0B57136785D0D2C0335982DF897915038B2EA9C4EFF7FF71A37A362C703AC0D7D2746B1013A4703D6409709452C3C6FB6863DDE57525CD9D107367187D166BC2FD262D1CA4946EB2FE9C1B46E6F26CB7EF6A9D3DC5B2F5DF19CE14ACBD2BBDB007235C03FCFC2008C3D412D942E90605936C85273B763D219F8EE4AE1F7CFA29C15D211C435854ADDAA8B1C69665ABCBE6EB2A67AB49180B3D21B5D3763440F1D81C7927693FC1605450D256FDA6280A4599420D0073A8BBDE0CAED1F407DEFC39A75E623A791B8F03C4DD46EC68606576D72820A6765932D28D8BEA412BB07C3DD352246F7F02CB32FB7E3FD037105815BF76AF1C886EB15F042FE30FEF74EF240B0DC7904748C360797121B8C1F76B167BBD4E098559D7A054DCAEE8EBEC8283E5D4957B0B3A2FF91D8373EE3A0F06A79D7230CFD1BA8418E738F5BDA45485E3688B1D43F457C0AD7E4C9DE7E29DE8229D7766DF9810AB9B20ABC5704049973EC3357EE9D728435B6E2506A867FBC5D3B3B52EF8B6AF84AA89D85F95FFBA063B8AD501C7F37741F770B9222A35E4BDB46E2F821802F6716B7A670CB2FB142D1E8D30BA05E30D839D08BDCF9BC3C21E70A020FA4060204EA147D048662DF12E523EEEFE90B4230D73D6BBF5AD1484C0AAFD572E88EAB85073831557FC9B8AF8CA65E9E0A9896C8530F1A4F5298AC292661C16A31C989D230E1C904C165B300BCB3D55924517DCD3CF16821F90DC2D44C54A6EB875644741A0DE7C79F17A49AB61637D0E584CCC14D38622985135ADFE1A3471462D78BA27960DDF4CE3FBB99B09A967C89DE1BAD90ED12FE550EA676EBE2F53E33C01A0DD98E5C2D6B159067E1F8A3B8D7171EB8AC62BE4A6DB1E791105CAD4453EB5F9757AE274A00F242E329E6B46487CBE70E2BEDF0740A685F7E9EE2259744372EA8BC80094BFBB599C6C84A96BFC35B25D5E6526473E9D69C8BB69189DF0BA1B77720BDFCD085C0678ED9551F5517CE3509410A8CCC21473F2872537784DF00F02E684B5CFCF1E3553601307F9803C52092A6A2ACAC8BE443471E240C347ECAF094EE1D04E9FEDB65D1C0350BB1A8CB6901E9E7459664F92751EC53D3EE03AA3F5CD8F5B5C769C551E89434279253C637EF2CF73D3CF627941DEFC8116CF79E8977243A9A6AB8BE92CBAE5F4CE94EE83681C68DE47DB291BBA42DC75469F2BC7983F8FE56D8258EF70744AFB192E2C1C93C89F404910DBDBC145A6D6308794FE9243D9D3C628D329EA901D1B0A915A9D7CDE097AA08371F66D7526FDA8ED819E2D179965BF52A5FC21708DBF326EF0723A77DC1331C7D56BE94FD7D4635FFD054A52F7C0DC2F5450C4CC561F3795E000890A69448EC05C9A0D89D3ED5C8C2D50E00C8DEB7BE3C99D24ADA587ED56908F8D03FFE6F6F94649691B03C4ABFE8DABCC62E7F995A1768FD12DFFFE31F972BDE53680114465112C7CBF82F09CB34FEEE566BF2BF485819A136B3FCA168A50DF2FD8432E8488E91C0D971DF13EC346B56C43870B6619DED982C2E31D35653059F36CBFCD4F9876639B0FCE02053428968E07A89529EC00E9083A01D4060D27F50833CF30CCA812864E632E36258C59AC418324FC3B6A8860468DC479918F78525831482CA0072DC7BC41C79151507FE281091EB06D8CCE745F6623392E5FD1AA9843C82B70E71779C0A5E8F6FA33D9DC67D07915BE5CD7F39B0DF5B1D01E0E2323FDF88E515FC97797DD934B0596CDCEEA49FC0ABE2F9498C0B9DE2E872DBC72B123CD819E3D4D722D8600322227248D4473080369EBE9D39888BF15FA38AF5657F3A631662E40AFE6014A6F7F82AA3AB6B64D5C7811E78337B3AE2C18F411D707FD293045901B3B63899D4B4514B2B3513792852560C93889915AF2F3ABBCEF2E64BACF0CFB8AD0B49316DCA8759F6740120CDBB1D242A9FDEEDE9578D51681973B65084A681A4BB785CEA98E11C950985230B14C49691F12EB94C52B8BFE4101A0645DB9FE5F21EA9F6883E3D532A6FE44E5910446C7E1E4626C22C46A6DF373912789FCFD628A8AC48E12C617F941E910A5FC84D569E3F7396F743E28D427BB3012ED9A756D0B +ss = F9AD1C25F94A90249D3645DFCCC643C16B5903E09C5BF3B67A47A8DAFD97971B + +count = 17 +keypair_coins = B12F6FD965EA9C5B947DB80FC60C83D5E232DCA82E7263027C19BD62E5A6FF5511C11C1086F0365E9FBD525B3FCB4E4F169FB488BF0CBCB455EC098D49E903C9 +pk = F1564B86096399F0415E5B757E7A6F9BA5120DD8A938E06C7AD8581FECB46B60AFBBB444EA375E53837827F80DE1E3753A4AA255A4917F1C8AF87923F8397C9750CBC7E5864049315E718AA2732B6BF7BE35694468F55B45449934715E460C6EAF734F96A1ADF87609F8551DCA87A94F0217E4E507C2B637F368CCEC681F36D6CDD469BE9D0BC7828C1BF13A2D28B8093B59A174D271AE9736B6397A4B8C9E4ED085A705A4987BC56DC172CAF58E543BB9D151B259E735CA851DBB685D5158596D61A411E7C542A240C4900BCEEB6E6AA7ACC7DB5DBF60C178813051574DCDFAA38D6B8EB595712C8B758F7827A981944F550597D120E926486E623ECD029E92825EBAE4B6D049011FA7216DD81C005B376BF6B1171654B5A3BA932BC98111B8213343B9E18C9E7479611606961B476ADAB27E457225351E2981A4E65B6A7F0B02078505D7D3B7DD671C1BB79610DAC7C92518A8B851EA5C3115F5CADAD3CB24923BAA686542E83482B725474381409A4016E54066C32420E99349D0C5A32CCB0B010983B96F8C657018AC0014A34020888317A13C8296A5FDA3937EBC61F2D1022B2B00E7A6341BDC70D1A11B9EB10673C07E612363E6F0413095561DC15C313138EFE56C67877C51F216476AB182A233F34801205A9087BA56A938900A0CCED6E16462A5BF746AB679AACEBED1B1B62B78A1E2AEAAA336F5286A84FA76E1FAB798749D8EAA1E71C48EF6A08977235EC54179CEBCC349863A9E40B61D68C1DDDA72D60B061F0C42E6C179C0228D8722AE90D022D9747CCF9326E4E27BC87257C24892043ABA248C1CCB8405A66712779444EE39BF91292B9F926D1C99C65A7941BC7C1378F682F390B855D88273E56FC1067088232F679C5544A03B64CB2A8D9B8319D254C3B19AA6184B1DB0529BB9750DF0CC6CF5A39B7139383876F633763CD07FEB86393F6053A25B043E6B736B0309E7743103F0262133A4B701028DB889FEDB88B0F5A49D77938C33A5AF559468A91E6184BB9EE9BD71D060C6F0B2A2413BBA67493FB9A12E7B8C4F35497EC192B4086B4741402E46C97DD85F12D79A9B915160C788BC552A00C8AB88B50506363FF3EAB9F84B5ACA7460C882015EC08B3B4155621558EFFA01B4E1C3FFC310A2405DD4D4561E8BCE8AF738CF65279FD56571BB2A76FAA6B1BA9B0B9C7C8E8C9349D504952C8883A4BEA1C2C7F0528840119BBFF2B2887310A7F1030BCBB0B8002402C2C782C183853658FB374DE5AC9BACC24DAD86B088DAAC4B62640FBC5EB9990E089B1F49E95BF3471EDFA0521FE910C0DA89A1193D2ACC253C9AA8ED15BB4BCB16D3C14D262895D594693825AC0CA0567ACC11C94A6C27438D6A5403A320B2C4C47400A9817A2296BE402DC688957C7494600870E84CBAA433076B201CC64B3A3A51311F7C5A3AB206FA37C0A1C98048271648B5A5384C119DD73EA44370358182C713AB2E399655A171670A5295773D2C36B6E4B934599656C7808F13044084A82666742EB6B605DD2751DE5872DF234694A84397AAAF3B894E0A7507C3A354DC3409CCBA4CB16B5387406BF7D005A17352C4D331B7801596F031A7A15044E1BCC00C4A920A1FF7CC1B904847977261EDE038C5C51841C88BE1CB8B214CAAA5D3BDFADCC66FB49AFB234DAB467C45C2471EE52019B952BF716A1BB4059549A8C0BBA67519AD4F10CFEE06BB34496F38F9491C172F2BE413DA1B0A7DE20DCBC1AFF4103E546C8FCBB20BDCA475C9161DCEA2AA3AD534FDF042B2776B04477B14F2C705C85B3A7C5AC3803B3548B132C6AF8E90BA88BA49981729A8621F30C2AA0DAB04B49BB28ABC92D9CC8311FAA8DAB45D545611A36B86549760CBEB4AD464199A35811A63CFA00A8A1BFC202BA75D73560EADD235C2490C8E514CA29B30DDB0996798A4F5F76765D977033A5F61196BA517AD5764C0E1B553035201E48C406382A842256162B067F887729E298436485F10236F67F96D263C9D0835171DDA6D1E5A89A7137E39C39BCC7488B1B365A1AB99393C1C35CBA50014163C84977EDC8F02EBC9B5EC5045C6B1091BA794303E8BB52C7B8238A635C23D3C13D9E918D29025474098419AADA6720C70DA55905C197C1114C60054FCC651AB6AA9876430D4D530EC7A7A734189A5844AB93CC0A90D2A9640377808CCC2673495C4839FDA0D1038B27BEFE3D22E2B727A +sk = 87C0B4D44CC9EB48C126C5877FF87929B08485FB81E479139C3299C70C43C3FC8C238A81D4E61E62A33DB2499C866B7107D116B7FCB1B0530A7E758A8D487D11575079265B3158302A23732BD07330071BD7CB7199476C39B583A2446109E99FD5C95BE21A292CF37490906E84A82605B8455825C82ECA4B7E218644460CE581214C78AC4473688BD6A9A826217490AD791B7835A85935782847981CA97B6DFE88B63701CFBE3929A2DBAB1628155506C353639D153656B90C5AFF36BAEDF1B87DA5BCE2A108FB6C3B29E77DAE803A0DCBA48AC6882F6C1194E88387F30A47C27D02C37D988346A2A29584A55CB5D3C44C05A18619A4FD412BABC31A046221B3994C8F22CE272C9E6E948C3D043295F413349796C38911F8DCADEAE47351C15E9A1743EB65BDC7471F37FCC93CEC867CD4808ECB281FC17EFD004DD64AB432D664864B43F8A9B1E763529AE2C413ABBCF30A4A478A30A0104D802037C4A8AF01B534DD600E31A1630FF13B2F730924CB790166AF3B7322BAF4409CBBA500C1BB32894E65445F04E4B4B4933DE51267635037FAA44E2775CAA4212F4E0600E51069ABA662C86145E2117347BB1748D63E412550C004237CF02B02AABB18D8533D19B1A879A079B31D529AACBF5258483C80738B380C83119C12B23CDCBC7D027506F3705CE1316DD24594A4BD32D10382F8AB47478F23763898398D7430264203A76B0C4455237F3E765EA5516388595CE9E2BCE2DC2258B5B96C782865FB5354427A2D7806123B0CCA782B1C329411C6C133934BA4A959DA88A072BC6E2D63A007572E36B82C5643564BEC47BC8953D4AAABD146AB5EB36E33F825FB9CA01E223253C320F76C98F810CA52A2C604622F7A60378809A59B19680AA69EED2003E272B8A1F3C8A55BCA129640C5A00D187BCAF465204C73CEE66A2FEEA414F02859C9988356D26665196674D25E64CC5689965CFDB2C0E47A531CE32B3DAA9C649954342A3F62253FDF826AAFCA7DC85A7A8E15161435212D7A4A3BD4B57A2CCCA3506999D407D9B6ABCC97209FA97454B0974DC2C7CF3C3FA40306CD6239DC450536974A8AB773374504B9889CB42BCE4EF4606BDAA559346F18D087BF8B7F0D9B21B0C9B75B5903194B0744A1C47483488EB4C1CA2C83D8198CC6A523D9329F6582863CAC2951268C01770A8081C1C26587D7610088E6068E020E10472C825C395AC6783F074EFA8597FEAC3734399BFA247E4E1531EAC70FE49355E44B3BA5439EA1E65EDA94485FB710124BB968490F1C8B68E87A4C4682156FC06A33275B6B202AA0D508B3789AACA627F0F0C19026CEC38A95F7547D936B255BE7A7525C97AB4282714C32A23C4723A82298F2CE90FCB4761B9EEE869E4D3484BA2B222DC28BC612B1F41607CF57781990009F29617549C0B2179705A34916DB154AA3747867C3EF6A0693BBA5C1D42E14B3247B41059F92607A60AFCDECC1C6F3839DB943F5EBC4D340AABE21269095B3F7D9BDE9EBC21DE788794B63E1098CC2903A83CA2027E8BCB78B855FD56FCF16B45E47994AAC71FC815C521AC1A1B697A18569AC2816F52640CF9059C4EB95E6FA1B32B77BD7CBCB6AB384DE74B6A2708400E980EEF5ACDBE5733BE895B64107266C565AF2A204E98FFF0058161637F5F0BC5E539BB0E12590A00F16F57FD0962B7C9589F6D3062D81860CCB94882C0A06D5965CC9BDF6213215867F1A0C30822046C985896F62684D95765AE1C25501186A3AAD77820AAF43C955A83A259982C77B2904AA471BC683BCF97E65E27CD82C545B096E9B762BF3304D9D5C1F3E6663CFE80953A86ABD0007E1F2628210B042F781BD59B2DBF2899B97A0CC345628C4C3BBB583D8807140C46BF8931AC3C34CFA78230882395FC1A51C1B50BA71274AA2383374B3EA238CE3B87247E0CEB0991AD9F74745698D06C1A5EE089E48D9CFE46A4FE733826462C188E8615AEAAFA501B9D6C6A96CE24CA097187F618DF5686513684CE2A9077E81A83068423A916FB4A8A47DF2CB88572F8FB4405AE59391566C88872F8AC48E705B0634A370F0EBAC6CFC66C4B536D3BC22459B2B3499ACD921367459C4BB3A2BABC2916E9B99E86A6C649C18C8E946EB106EC7A97595A503E42419A23109F1415E329290EC5581F96C8CF1564B86096399F0415E5B757E7A6F9BA5120DD8A938E06C7AD8581FECB46B60AFBBB444EA375E53837827F80DE1E3753A4AA255A4917F1C8AF87923F8397C9750CBC7E5864049315E718AA2732B6BF7BE35694468F55B45449934715E460C6EAF734F96A1ADF87609F8551DCA87A94F0217E4E507C2B637F368CCEC681F36D6CDD469BE9D0BC7828C1BF13A2D28B8093B59A174D271AE9736B6397A4B8C9E4ED085A705A4987BC56DC172CAF58E543BB9D151B259E735CA851DBB685D5158596D61A411E7C542A240C4900BCEEB6E6AA7ACC7DB5DBF60C178813051574DCDFAA38D6B8EB595712C8B758F7827A981944F550597D120E926486E623ECD029E92825EBAE4B6D049011FA7216DD81C005B376BF6B1171654B5A3BA932BC98111B8213343B9E18C9E7479611606961B476ADAB27E457225351E2981A4E65B6A7F0B02078505D7D3B7DD671C1BB79610DAC7C92518A8B851EA5C3115F5CADAD3CB24923BAA686542E83482B725474381409A4016E54066C32420E99349D0C5A32CCB0B010983B96F8C657018AC0014A34020888317A13C8296A5FDA3937EBC61F2D1022B2B00E7A6341BDC70D1A11B9EB10673C07E612363E6F0413095561DC15C313138EFE56C67877C51F216476AB182A233F34801205A9087BA56A938900A0CCED6E16462A5BF746AB679AACEBED1B1B62B78A1E2AEAAA336F5286A84FA76E1FAB798749D8EAA1E71C48EF6A08977235EC54179CEBCC349863A9E40B61D68C1DDDA72D60B061F0C42E6C179C0228D8722AE90D022D9747CCF9326E4E27BC87257C24892043ABA248C1CCB8405A66712779444EE39BF91292B9F926D1C99C65A7941BC7C1378F682F390B855D88273E56FC1067088232F679C5544A03B64CB2A8D9B8319D254C3B19AA6184B1DB0529BB9750DF0CC6CF5A39B7139383876F633763CD07FEB86393F6053A25B043E6B736B0309E7743103F0262133A4B701028DB889FEDB88B0F5A49D77938C33A5AF559468A91E6184BB9EE9BD71D060C6F0B2A2413BBA67493FB9A12E7B8C4F35497EC192B4086B4741402E46C97DD85F12D79A9B915160C788BC552A00C8AB88B50506363FF3EAB9F84B5ACA7460C882015EC08B3B4155621558EFFA01B4E1C3FFC310A2405DD4D4561E8BCE8AF738CF65279FD56571BB2A76FAA6B1BA9B0B9C7C8E8C9349D504952C8883A4BEA1C2C7F0528840119BBFF2B2887310A7F1030BCBB0B8002402C2C782C183853658FB374DE5AC9BACC24DAD86B088DAAC4B62640FBC5EB9990E089B1F49E95BF3471EDFA0521FE910C0DA89A1193D2ACC253C9AA8ED15BB4BCB16D3C14D262895D594693825AC0CA0567ACC11C94A6C27438D6A5403A320B2C4C47400A9817A2296BE402DC688957C7494600870E84CBAA433076B201CC64B3A3A51311F7C5A3AB206FA37C0A1C98048271648B5A5384C119DD73EA44370358182C713AB2E399655A171670A5295773D2C36B6E4B934599656C7808F13044084A82666742EB6B605DD2751DE5872DF234694A84397AAAF3B894E0A7507C3A354DC3409CCBA4CB16B5387406BF7D005A17352C4D331B7801596F031A7A15044E1BCC00C4A920A1FF7CC1B904847977261EDE038C5C51841C88BE1CB8B214CAAA5D3BDFADCC66FB49AFB234DAB467C45C2471EE52019B952BF716A1BB4059549A8C0BBA67519AD4F10CFEE06BB34496F38F9491C172F2BE413DA1B0A7DE20DCBC1AFF4103E546C8FCBB20BDCA475C9161DCEA2AA3AD534FDF042B2776B04477B14F2C705C85B3A7C5AC3803B3548B132C6AF8E90BA88BA49981729A8621F30C2AA0DAB04B49BB28ABC92D9CC8311FAA8DAB45D545611A36B86549760CBEB4AD464199A35811A63CFA00A8A1BFC202BA75D73560EADD235C2490C8E514CA29B30DDB0996798A4F5F76765D977033A5F61196BA517AD5764C0E1B553035201E48C406382A842256162B067F887729E298436485F10236F67F96D263C9D0835171DDA6D1E5A89A7137E39C39BCC7488B1B365A1AB99393C1C35CBA50014163C84977EDC8F02EBC9B5EC5045C6B1091BA794303E8BB52C7B8238A635C23D3C13D9E918D29025474098419AADA6720C70DA55905C197C1114C60054FCC651AB6AA9876430D4D530EC7A7A734189A5844AB93CC0A90D2A9640377808CCC2673495C4839FDA0D1038B27BEFE3D22E2B727A376F022313718ABA325EF4C3B720E2C3AB314ACE74E983948BA2E43EE3A6EBDE11C11C1086F0365E9FBD525B3FCB4E4F169FB488BF0CBCB455EC098D49E903C9 +encap_coins = 95BE66CAA72E47634E9748BD26C12B04E2193A69140284624D4E177F4DD66F7B +ct = AD046F3ECC6DB2DF7E4AD36949298E2FC978CC540FCE356853C171AD2D6320F43EE72EC3C06AA40EB326F4D66A4C1A2F6F7536FA42129BC40A99A15BB75B0AB420CFAEF22B906BEA027243B8A049602FAE8292876099B5548C948A7B4E149BE0DE4C47887182072E24D6A86611BBF9E7F93691B3DA75804FC6881D14EEAA0FC93BF65B287BAE55A70EA19E764233214201336D8FD612D680D2739F46E4C2AA524040BDD53F75993339DDD98977C9B06546E406CC41286A0830CC5C3531BD1270F851E4745009E4A95365A528FCCD85FD207D0C26704383A1933C07854CA0A8C84F416271690D39D7AC1198C3A8495BEBCC33FF3629303309DC919A087A4658097E22894CD3834E0421B9D934C7B3B27C6B495CDA8FB725B588ADC14075C9F49BD4D6D2DC7699C453A7846371BC8FD21B86B10E38876652EB7ECA1CA663D523828885A89A0BEBFD416C2011F851FBC802E504A9F0FDA6DDFBC8628ECBE2EDD42E65C7AD695514C6AFE8C14BF2719CBB5FA39B0B88F1BFA6CA54F8CB4F79896CAA633C5A9EA96FABB02969481D356C1BD404D7C35DDBD16604C396BC1CF9A1D96212AB0AC1D4C51A552B1D5F7BEE08BBBE15642B0ACB48CAFC4B0FEFA648BB5904416F8447E00CCA68C35F065221B8271100F436FA181E922E5CF13E0D142B042B75683AF774BDC016ECFE9447332905816BDD8710B6704C194E00A58A9763626E964CC72DF2B4A170BD720ED9E4E1685DD8EC1CAC6936641C1FEDF43F50443087E9F1DCD850912E2386A4945D98574797551CA6FB7A9C89ACAA9E6C691B0B61949F3477EB37A1D44859B24433EF581570486FF29D86D46984C39BC74449A3353D9E82F01D03C71955931DABEE1516FFE69B4A6F501105DB5E6B29C593DCD2D7B44EB67FE183E2137D7E0CB16B8600ABB2E784BB32C1E4EBF67FE9D45AE464A6FEE413D74D902CB542AC31D48986D65682AF851FB7535A7A7F4B9B07CF02130779DD654B8CC3AB15BB2257BC1F2FDE0D76E0242F0FCC68C07DCEEF7ABF33651C7457576A8AB2A8F07A1B69AC7BDD84E1403BE16768AAA84EC5362468D795DBDF27D98BFF72E9E67AB1520D0412949C67BF74BAC0F57DDDFEB086EB843E86CD43E19AAE7480B3B40D10C3220B4EFC950C3D0A8D28A3AF581192683828CD9F13A1D90413588877EF917163761596F0E34FD9115FDD2C107C3670D68FFAC4679E338F61214C6A5E4EEF3D8DB8C7862C679419EB5DF80E65FD3355987214BB839E17CB08D4E9D599F9BE46D1505F6F255DE885225B173E92119C5CDEC7241C76C04036288AA8C26083B83B42CC3CD32A083EBB7F0828DA6D361041E6DF5481C0F779936EB8AEB27AEE1A4353DA9EEF15E7564B8A3EC7E9F5CA803E5155C1A2B46DAF6E019A425EE0683B132A3F39A93C2FEAD431D70ADA68BA2204B4B3F71EF2EA9F4179CB4503EAAA7C0790C6FEA7715F25134CB3DB3526D6FEC414A2C8963A2CBD39BF76D51397C7E2C216BF612FAF4976E74E89C5B39B21206390BF3D81CAF42D0E7A5B9CCED9015DAE1D2FF9CB7B42EA1A55019A895BBD55B99DB8B8C4E888771CA54874AD022A45D241EC68EC53A8AB467D884D14F0E99985E4FB8E986A93CB6B41F6D1F428E413D6CFEF82AC846FBCB6CAC0E1025E7A7D2D6898C6BCB309BC122C1F15F08EF0F92D96670857589B5122D12D7ABE8E59975C69AB47016B602FBB2CCCC1B0A243D1DF877E0AA1168686463396B1DD54E1DD6F3C88CAA7D4DEE580C54A82EA5B160E9CF07EFD104E85122AF64C2F8B7AE2582436A80B34B00CAB90C2C65864E82B9E095603ACEC7CC60024976D4B87667AFD7AFF4F8A089E25E0B5043BEF1EC84840259F9097F8A6ECB06D6D289F12E4C676F97FB44E51E6EC1950E5E05E0C67B91D175DF137CE13A05B6E18B6DE06445DAEF3C27C78C12482EE3906689B86905DF158021E0EDD153720A9E1A416D29E938941E50CB50BE741780838739C5D2B80A44D50F0F7A8D738686B789F3658D8E3841010530743794BED4754AD65640E6AAB47694561AC8DA1C2C19705018B2F30B05724B3FA9F6F09A0629C470366A0E786CF9692FF4B87D9E5041C91B03E2ACDC848AFCE8830E20B3A24903683E5DBDCBABD67FD1C8C6B5B854CD8559C6B5F6591AF510DD59D0460A19C2DD31A64A5D9ACF3A7792E8167465CDB3910D96F50250D66F2DB705658504A1F +ss = 5AC83EF4494FC6CC01244D492FF4491393CE3A93F0B6D2C287CF694A42B701D3 + +count = 18 +keypair_coins = 9F52AF92CA165FDC38788F2B59BA02E01C8281FF7C1E60504688043A5FE814B0284837F7EDF4788F32E757949CFA69DDEE079E2E00E439ECEDC8512097E2D2CE +pk = 14B0961B350FACF720AE691DFC4A847B143D9C9A2D2E7A35B6E33DD78B761125BD8C4B1D6994CB8E01186DFABE6270A51CD85B8B39678AF4C337BCB4FBBBC0FC260D48AA801F86538ECCBD3787A12A09B42E18AFA2E8C77BDC11B13B5A8404CDD7B2CE364046AE059A4C950E1E4638CCABC8157B97A238A6FCBA379BC6AFDA874335956D2325376FE1CE4405BEE3E37EF818B9826743266C078C01C36FD62B1D17ADF33467D9C1CA9F2CA28A2867BF7A8084DAAED0A19D2D40A0979198135C229720205763401045879ED65B09825012E626A24118CEE00216930D44A9BCA32BC74A6683A8D1BAE1701B189BCD8FEBA2DA42CC3B572151E7243712789B2801043196BD8C15D972CF7674771DC55E74931FC0A55C434497A517C99CA3276D262FFD83CF66D87600D097B1AB5DD8DCA86DE94080DA8C2AEA980B3A1115B847786AA96B94AC818148E3E4C7FEC633CBC6BD3104CCB216074A5B2A8C757A455AB38E1333435C3C30D94D8E922E8E77C0260B6128865BC37B82C7A6A276040EDADCAC335A10B569A2CC53A93B6729728B84B74B01D502B830330000AA1CCC9C4D7E7A74ED218D47CA60016411D7369248A261D6B6240D5B15D2FA5B3229373484C8D23BC8E78830062959D0504C92C0BAC310967EC40AF0C2902F82742EFA78F57B70BCF54A73AA2AA93B0FB34A935DC5924977CACEBA57AFDBBFA69942623536F167830685BF481740E2F434A2D3AD107711AA1729CCF857A14B0002F61575365F3AD9C18B947BBE9B3E31A7571A918728479710D64DABD569873461E12A9DC1103BA28028E001C8D5A79D24D30756CBB4A3AC9E48435BA09286AE89AC3C841E8909A4D94226A822C90B5A40F239CB0E8B98E86B5B06E20DD3764E42E8C8095052B1F66B76F164B3B867A98CB299E0995D44B5FEBC7A1F2C0CB2D0CD4F3AC5F9D5444797941666AFD319A3C6713ED1E31338A41A6E2B548208CFF5671A6FC7AB5DF260C2D8A703A67EAFA381C9D576C6C2B1177B6A66D951BD3C426FA79CC7B552ECE197C92856B2C7064605079404A3B5D8B49AFB9C87EA48E0811A61E81E2F101CA25A6A599947341040E381A52CEC894DC9B6AD25B79DC903C35C450201071DBA35EF8C11E17A1AE5EC7E13468C148A5946D928ED0321D717640E5A5767942EF2275E05E395321052E3E5059AF77FB04271C2E511F450BE168ABA09D3B9EEE1288ED1BAEF69CED005797982316E2C731F9581CD455300F35A6E1A5872552AC6EB68CCACAF636CC713516C275823E4A1A30A722F8C46A8932550DB624DBB8B6E0BB51C3D54089FCC2042F38F5CB5988E56A1F42A65D5D788E2551F60487490B57904127433F685AD4BC53D6213CDF52D6B0991AE37882D37B5DC084E5A49BEF660A4E8D03E24AC93E58BC05F8A759895074E156C09E73E6782C00A6CC80CD04829D270C7848D89BB2C321AC6E76B3E8715923768A8B1A644CFA95B890850819767249C48A08314B29C81E31B63A008A51D283BC217ADEFE37D2D9B15C7257CF62A68751C2942C531BB55ABFA321C581822C90C243D94B598FBB958E5950FD4C8B1F1CD06BACC30828FBF73A83F7387CA252E4F9805419C02D63189EE7B4661B5C1BD398EC82CC8DA173EDE64A38B3C1ED53A64DB130564D2A54600BAC8017D46507B3D56208975A70351A558D5774B249F7D634E6F21102310B6BF8C1544E217C68768400C3D721BA5C0F77B9D20795C8059145956AC7B7728222853A3C325D070A9EB256775C727118EB9CB7134748CCFD09F32C930881826D8E20AF48B2E1BA10EFC67CE0EE7730093A7305403EEC951F59044A5F7317CB85CAAAA2E2B5B90AB2B805A808C1BE755F9A4C342A96E8AE83CC4394D73890F13BBA0D35C45393730E4118D5345006AE62D38445666CBB7C25823C59A9D62E08BB8C7CD22B331BE153AF7C359091081FAC67D96384100F44951422E83599763AB739FBB8BA2A064A41CBE1679A1C613815E9A51D5D6251EE73431CBAD479CADEB64AC94F92A38D0798A4B6D3EF7233572B68D2A12D125A6D4E27939F341A4810F0C07BFAF993F8A74BF8E9710E7B29389EC3DFC498A4FF1839A1268DB8B70E82670E689B5B3E333908B6E8B4A78FEC249E798BF57B7CE985A42A5269435C81BA441230EA52319550476C1F4BEF1609E71524B877F53FD3133BF71AB13912BF37C2CD7A359EAB035CD +sk = 4DBA785B32456E16A8E9A20FA7536F1B4555A9B403A09738657A148361788D3C358A7BABA8B4C58AC979C4F786E588AE245CB0C12C284F848B89585F76892FD65CB906D39B385A04D2F5B2154ABD1E77AD9501ABAC73237780B33C601FAC50BA3FC07E8525819593B7D7E69FDEA46F14F1128A475E4784AF38985501DCA6D20BC8DC1C5C7740B33804358F71B6E97B2A0E7350F7608321736083DC54E0253C6E5C5665D0B7E68355D4E98DAA753C1ABC1429B397DA773B043459E5AABD093A5B0210502BC2CAB250041997861286924AA0A190307431719588CC2E6FB68711C964FC20393C73B7C967C603120A3CC11B2EFCA3DD6616D0E2C835FA92946A40C4CC2F4655301ECB09424286B3C7A07AD3C6EA37BF6132AAE2D9A335E34B6C816D93CC7EDE020AB723B272B70F494834CCD93BD7800BC39919DEA4BE4C585F827A4351E233026760DC83377329CCBFF180A562AC50833C0F861E795C00EE74B584F693222B28EEFCB445F19B06154ABD0110C6A017ED525B5FA30C64E60663573B8691BA68E2BC580157F1C66EBE388AA2747C50919AF644ACD903A801A5C04A6A2EAC686C89835CF59A791AD5642274A0F78244491670C66C9BCE24BA5CF6B86967AEFE6728DCE8973FD29045DB844DC80022297CF530C8ECA4808F603A90A840AD70A803E6A0BFB44B38616816073C5D7BA26A64048F81A3BAD3A0C9CB0672C7466E38824529298A7C0D82940540C312F429411B403F64E419CF720E1F73026184CEE538B27CFB91F16186DCD3904BA6A34254155B3CB3157937D5618568F46F283C7C0E88696324A4FD77C3E6FA5B5DC0A13116274E5792FED69EABA973730A79878103BF63934D179143DC23ED39585D40C06A99AEE0F4462F123B8A6B539DEA9E05117B08338DD6754398E7496F612B4D892CA54A13EC9B2DC7022CF779668809AD6DB97A6E8B15FF0A862E664D292C4AF549195A23C19E2B9FCDB9B4A5B9AE517873CCC644993196DE5C2716D58D50E7CF11558F44A16580C980654C8CA581671121CB2F8CC6F90529C9754CF0700B30943EEA1A7B05F0BC8FDC1CF776B0CF2C2EAB927DC83197A4071DABFC07F983BF4D2C613E087976ECCAAC031B88420CECEB6DF0350F04BA61AB39CAD4C6B2B32503D773A34514B7D5BBB9D5E7BB6DD9AB5BDB8F34A9880C49AB5C40970C435508E26CBA50705C6538686249D344BDB7C820A5C8869B371B8FE13922A5AF390BBB7B809C392266541671C75CC2B7A7248D0234FCA16DA64265E5C70257D770D2E9982D5A1C6D19BF0BA48B53AB900FC8280C754C14774939B83C63592A12F35D198194679942EC227B46CC8F353A0547E929175C3585107239AAAFCA151DF3C835E770921E5C9B134CA7E27A18C7656BFD6A4FD2431CE1743576E575DBBA8905F4CC38108E3CDCBF0155B5300A100958AA99940BCB473EF64B05BAF55E91952C46851D313B0990EBCF2148CF28130CF49C8D080841FB81384E73367C792A11099F5B898416946826714E252457B23A3A1E33A36EE2612372CB2C04030840A87F96A31913A428CCCDD2817B38372DA4637F46044F2218C28D525A57D9C0CD2864FD43AA5C9A003A09A35BA786A7520C9D9971D6258CF3C6695885684D1A5FB2B3818015AE887555FB1997B7A35A326481A566839712033A0CA13A844AC6F21A16269876A27B2D49458515B3EF0A77F933C9D0F1406121BC8BB666A1284798055595901488439150DB602A5428ECD32109731BEE5BB8DE606EC8D227A432994DD912637BB0B3B198171A89DAA720BB712CB598A75B4AB304A9468088A62D0059DAC56E17BC95EEEB6C22DB8D8EA3C6F272A793E0358E193D52029E2A4582CDC65848C06652E44310506868365012C9BEFB412D1A844E8C21A613627B4707873DCA67CA5C0493A83EAA227FEE44731D24938709680E1879B2A41B12E71FCFC39CFD81186250B6CF4B5796E831A49ACA2B8C2931328DED15CF2D082643735EBDB8AB019609ECF95F5D093A147C3CAA73946CD38B4E21073BD72FF958C7435088AD73A5D343CA768A4AD4B2A49B6B6E17A94D909837E872A05C815D18EBB4E817BDFB327CBCD46404060DDFDB92631B2E3E262283BC3292504CBFEA8F30F085FA12270C834D6B6A5D2A46098F26029DA3BF14B0961B350FACF720AE691DFC4A847B143D9C9A2D2E7A35B6E33DD78B761125BD8C4B1D6994CB8E01186DFABE6270A51CD85B8B39678AF4C337BCB4FBBBC0FC260D48AA801F86538ECCBD3787A12A09B42E18AFA2E8C77BDC11B13B5A8404CDD7B2CE364046AE059A4C950E1E4638CCABC8157B97A238A6FCBA379BC6AFDA874335956D2325376FE1CE4405BEE3E37EF818B9826743266C078C01C36FD62B1D17ADF33467D9C1CA9F2CA28A2867BF7A8084DAAED0A19D2D40A0979198135C229720205763401045879ED65B09825012E626A24118CEE00216930D44A9BCA32BC74A6683A8D1BAE1701B189BCD8FEBA2DA42CC3B572151E7243712789B2801043196BD8C15D972CF7674771DC55E74931FC0A55C434497A517C99CA3276D262FFD83CF66D87600D097B1AB5DD8DCA86DE94080DA8C2AEA980B3A1115B847786AA96B94AC818148E3E4C7FEC633CBC6BD3104CCB216074A5B2A8C757A455AB38E1333435C3C30D94D8E922E8E77C0260B6128865BC37B82C7A6A276040EDADCAC335A10B569A2CC53A93B6729728B84B74B01D502B830330000AA1CCC9C4D7E7A74ED218D47CA60016411D7369248A261D6B6240D5B15D2FA5B3229373484C8D23BC8E78830062959D0504C92C0BAC310967EC40AF0C2902F82742EFA78F57B70BCF54A73AA2AA93B0FB34A935DC5924977CACEBA57AFDBBFA69942623536F167830685BF481740E2F434A2D3AD107711AA1729CCF857A14B0002F61575365F3AD9C18B947BBE9B3E31A7571A918728479710D64DABD569873461E12A9DC1103BA28028E001C8D5A79D24D30756CBB4A3AC9E48435BA09286AE89AC3C841E8909A4D94226A822C90B5A40F239CB0E8B98E86B5B06E20DD3764E42E8C8095052B1F66B76F164B3B867A98CB299E0995D44B5FEBC7A1F2C0CB2D0CD4F3AC5F9D5444797941666AFD319A3C6713ED1E31338A41A6E2B548208CFF5671A6FC7AB5DF260C2D8A703A67EAFA381C9D576C6C2B1177B6A66D951BD3C426FA79CC7B552ECE197C92856B2C7064605079404A3B5D8B49AFB9C87EA48E0811A61E81E2F101CA25A6A599947341040E381A52CEC894DC9B6AD25B79DC903C35C450201071DBA35EF8C11E17A1AE5EC7E13468C148A5946D928ED0321D717640E5A5767942EF2275E05E395321052E3E5059AF77FB04271C2E511F450BE168ABA09D3B9EEE1288ED1BAEF69CED005797982316E2C731F9581CD455300F35A6E1A5872552AC6EB68CCACAF636CC713516C275823E4A1A30A722F8C46A8932550DB624DBB8B6E0BB51C3D54089FCC2042F38F5CB5988E56A1F42A65D5D788E2551F60487490B57904127433F685AD4BC53D6213CDF52D6B0991AE37882D37B5DC084E5A49BEF660A4E8D03E24AC93E58BC05F8A759895074E156C09E73E6782C00A6CC80CD04829D270C7848D89BB2C321AC6E76B3E8715923768A8B1A644CFA95B890850819767249C48A08314B29C81E31B63A008A51D283BC217ADEFE37D2D9B15C7257CF62A68751C2942C531BB55ABFA321C581822C90C243D94B598FBB958E5950FD4C8B1F1CD06BACC30828FBF73A83F7387CA252E4F9805419C02D63189EE7B4661B5C1BD398EC82CC8DA173EDE64A38B3C1ED53A64DB130564D2A54600BAC8017D46507B3D56208975A70351A558D5774B249F7D634E6F21102310B6BF8C1544E217C68768400C3D721BA5C0F77B9D20795C8059145956AC7B7728222853A3C325D070A9EB256775C727118EB9CB7134748CCFD09F32C930881826D8E20AF48B2E1BA10EFC67CE0EE7730093A7305403EEC951F59044A5F7317CB85CAAAA2E2B5B90AB2B805A808C1BE755F9A4C342A96E8AE83CC4394D73890F13BBA0D35C45393730E4118D5345006AE62D38445666CBB7C25823C59A9D62E08BB8C7CD22B331BE153AF7C359091081FAC67D96384100F44951422E83599763AB739FBB8BA2A064A41CBE1679A1C613815E9A51D5D6251EE73431CBAD479CADEB64AC94F92A38D0798A4B6D3EF7233572B68D2A12D125A6D4E27939F341A4810F0C07BFAF993F8A74BF8E9710E7B29389EC3DFC498A4FF1839A1268DB8B70E82670E689B5B3E333908B6E8B4A78FEC249E798BF57B7CE985A42A5269435C81BA441230EA52319550476C1F4BEF1609E71524B877F53FD3133BF71AB13912BF37C2CD7A359EAB035CD7944E5D79DABF7B7259DF5CED02669C81B7DC4590E0B10764729D812F6BD85D7284837F7EDF4788F32E757949CFA69DDEE079E2E00E439ECEDC8512097E2D2CE +encap_coins = 53D3FC9947DE6EA6E5B4B5E89D236258AE933C485C2AB4B1D6DB8282173A7C8C +ct = 578472364FD025EDC9E8329A97232762E4F9609C0AA6F63B92019DD0040BBF7CC621EFD6C8D95216D31A4B7C623F764D76EDDB7B2A2AB74CBFD6E8881A00CCECD7AA7D133A2B68D529474044675CD2BEA8A633E578604E8416ED5E08A87DBD89ADBD7D04BCBEE413602B4C1EC0687CE107536AFA779C91EE1C0DD7164F6C8D413D97AE86ADE48BF1ECB080880EE37EE5109435BC2E0C29D31588F4AA320D1A473C2AA5D9D73E8D4E0CF83DCF4F48A7AB9D1D5E79D6EA1CD88D2417F1B4397901FB59C7157CE9CFA32F045B39DB5F6EE228AC99E50E7970B63AA6884E9D82B42B52B892CC8A30716B9F75F30A13F3F504BCF8522AE843E0841E41AF25C26F01EBE8AEACD00C29DB4C68AB1AC0BAFA8F0800C6F5BB8A4C070BADF9988014F93B107E6C91C8BC610D6BB4CC19E216661BD6F273664688433555C8AEAE775D033068E29458AB747F98FE01B3BD4E5AB51B86C577EB1300652F6029DCCC966DE6852290523212F61A01DC05C5AD15C20A192057D029679E1E56DFF4DD3F93E71890C8DF421E33BF3FFE00B6D9B28F80AB544FAE4E644AA572596E082D0EA22B0BCF56EC58EC67030C3FFE10FAC599E2E4B705EEAA7A775A27D474CBFD7B6025656052DD892CE86B02F1DBD6B8A228F23C2F51559B5D4C8E025CA239B39261704B65D846D37CBBF7D1821F696CBFF30E18D443CA2A08255B30B257612DFA818324B97E38C4AAA34944DB158500BA35F380521301E8CFE16172EC3BC193617665711579B0D590570C921C26DFE0CA2ABFB7EBAF1D3D99F5A754FA5950C7C5593C7126D66236BB091615F4F95DB0FC4F00CFB0C025CE30EF96F7B7DAEFA78BA111D7BA688EA7BF8F59DC87521F595A318BE86351B5DC27EF5E747B5E48781660E55F2730BCCC6882D7C6E433D9D7D19EFB5594C7686EA364F03C395C932B3C7BBBB997BF025238DC35B8E8B059B6BF4EAF2315EFF77EF4AC63CC510B57AC00584D56F82309E2FCB0809D69AE3BCDADC31E7EEF48A2AC1E8F3CB4F14E04A21A028F533910CCA2EF6D9CADE0ED7171C0C8538648C03A83494477292F1458F8EEB85F525AFB54DA0FD9C0A285786FF2DCD5BE8DC059C8CB4DDA633DA45C6AFB1859BA195EF28F916E878955515CD19F4CAAD2AA17E0BC83AF0097A518D3B5B1D51CBE129555B42D520BDB142FD2FCE70C067A727016A1BB6335A7900E87E0D0CD9CF7E21F9F9BBF5CE2E83FFB35718A1B4ED30537F1E824AA832430008EB3E530A4590CE446FA2312FAF3179875D5A7D56C6BBC6585F90E4DFB53CDCBF39EE4329F7A23BD9B95876483FB3C0B0FAFF566AB9E4C081EC8DE4EFBDEE7E1D8CDA30FAD6F28653102E8AC8F1992A6B92A18E252B2FA0CEF1CD2BB045DB4F500FA152A0E6E69316720435FA217731F2FEEC45155B090C99543D0A59AD123634D7AE7AA92B692F48E3E936A2005B62F84DA02CBA3CE7E3DC1989089FFB6B52B0B422BB6B025838C096A7B01F654F66AC5F5E887FEAF158D648943061E039A7FC914304834683B44D1D0E60F6FFC06A942091BD8F8E87D114CB87E75804775591997915453A0F992F24E135C284F2DAE83B26A94C3E8F5BC61BB7DD79E02997A8A2299986B0540D91735CEEF76F4BE38864D2508DB21FD1167A01F4AF771D65999CC8CA52FA5DF4A941E8D183C1C686A28BA8390C32B242901A821685CAF95375DBE1D03FF3981DA3CB410A8B461F45E2C4AB38431F940F8031835AE58D34D24507DA261ADCE472FBA872F09DF23AA4B3EA1118A2D2113296F6CD294C2C055990137D40C82B95419E9B3893250EC395EA60A2DD462834DE12CA031CE3F4DA943BFDE6CDE84FFE7E4D735630E3A7E2F1480F18A842C721263D7A6A61A9F5BD67BC24A39FB6EAD9EC300D2007076FC61F424E653DB3BD75F52224CC193316E2D7100DF3A5E2917F3D505A9F538B41C5EBC44E30E234FE62BE7F6AE9B795277548E08CB27E1448D55CF00D31AAE8329435F500247A080B6B84FA2FC517324A9249F6FF29C42BBEA49D9D13115014AF2A93AE61E81D876E1FB462494A2860332A5E010ADABF958F222B8171BCA0B4116EC209209065E243817DDB48C2C9F82CEBFE4EB410073CA82E23BCE448CBDEDCE3BDA43551557263887631C3C74B0676B06E907A4632A9FF30F9C16F571D9806C9B2FC3E997B3554740FE6C151E3F83F93FC04B02CE1CFDD832DE14 +ss = F71153239C77F7C39A807BD503969A1F6ACB8CFF15F34D50998085574E7C3FA7 + +count = 19 +keypair_coins = 851EA90FD3854CBF28FE39FB81F68E4B14345CF0D6EEE7EC4CE772513DF8410D11BFE66D2D15C33524F478F9A6BB3AF2A83357197C834D399A8625F761529BE9 +pk = 8EB8491C75171340B7774793B7912BB4186A7E3837E33414AF6AA211061F3831C4F4B16B753228E998A721385D7B14211D8A7096C54AC3101DDA7668013CC1555163F822B1CC144E240C284DC87B5075A813872511097C45A87DBABCBAE6E743DEC482B4EB47CDD4A1E39298872552F8BC4B0DF1632255588EE99B4BD373A21C665574BCD3FBB35690237A6CC691F80523390485447BE94B76FC219E7D75C6649CCBEB00271FDC1D666351F396C08EAC20ECFA784D45BD4D64847EA126D9F0A23A3B1727396F299951F95A68EFE55C5D4C792E136148AA35D0663D64F2C040586E44B6CDF60C54E0C08F365001513694E27569A3D6C6ED2538937A7AFAA0BC2CEB6B18914AC77C65922AC49E47C74447B889A39344DB09DCF1BD73EC5C48263C214A1E946B2CB806668A32B83C0C97AD547989836A53F1025348AC068A69357C7F46C69F963C5634908B9963BDEA79689B9679223824FAAA920439356C10786A646472372BE8729C4F2BA1E2897728CBAB136757AC5A75242608D6D10E20AA6446A4800EEB621EA822C1A61EB7C5B84E764D83452F60E5BBE79B275C4A4445715D21ECAE5A569073475A74BA62383137974BC071C27CCEB5BDCB1991D393784EA8B28F259B118089B4B77F9B68AB0CA953FF8257A3938482313F4C5963C4B101EB0321D608C2F3127CF451764E15636EEBA98021C963F359D2C44A9E92357F2853821BA0C8105C488B242D9C02AE637B2002CE644132069A8BABE23D4E9A056FA0B8BE8095113B86E6B5C748706924F6AEC490A46DD398444499B95289F13A84868188FCEBB861A004254068F6D9B4B83AA81C9B5433C70868AB5364A80D870B841A216506663AAE569B025C5CC43B2E5A6821FC300EB6574D0088BBFB7483959892703666DA17797DBA514A489376B19707A144B6F80423073EFC608347BA2E639B0C8F2A52AC959592B0B0C1A5B4FBA61483F225344051DCFC4EC124A9D10CC2C557339325C699F091319853EF7A445B4064D8E66895F8C0BC887786F5240B72C319FC0B55933B5864063D14C5F732472C71340EA26BF8EA7DB5FB9ADDF3C5011CB0F0D3720DEA819D3AA110E2CFA9EA61287716F199AF376B106FB097760B3F11237FCED41EB95B798F2787B3039F9C213CA5699AABFB03AF86ADF5D52D6AAA1EA952BC04725A22B2A28F4006CAC30E265C793018145573CD1C715A69D704217AC45D1B6E8823852DA64784D4B84EAA9CB7F75121CBBECBF25804A210DAAC80612972ACF605E91303A2D59B1AC84EE217872BAB85CDDBA9C6D1381E312B4C574097D95B8AFB595BD91C46FC0DF0A761F596569F99B7BC6505E922A1F90C045493CDFB9A3C650224BDCC26CA199849128945CA5F97E230D601283ABA102A26818932004BB114879139EBD637EA035C20C3AE176B70999C3FFCB7951742C73D48993287C3276C4DF9A8365BEACDA08BB72C55634FF35C2D848AB4D07BD6921CBD95C18AC60E7ED35AAA352E143AA1FC49630CFC8A09845CFFE260AD953B71074E42F08E265B7473DB4D178C269F317AC035CC1124540A4A47886B6E5B04418A760777E73AACF8930F08C2FF10815559C1E04672BF4B851233011D7B3A84155D76279F9778A72AC9803D36506824A34524C835222224545DEAE1AAAF193B778751889957D5082A9E9A34E6E44840CB7DDD712CE9313C5033590E9AB54C25852AA8B2F09252BED793BF6B972B593CA9317BA278937A607C6B9B8F79069FBE452FDDF01622465006373E2F661E366A90AD1483FDF76E04C388D61646F0162195D36966D75DCC89A3D96B2F98C79D9E0BABD9816AA2084611EBB558735C076576E102B3857C1EB2876D53C5777F146876E55020641072010E7A1B773D357D81B52B4071B9BA8C8F69683181CCC4AC49BD2083BBAEF7CA0BEACEC46A39E768295192AC02BBC0ACB70DE25A27B724AE7D3121B1A4A869034E70F279C3914D882422E1785709599DF782BAE64316ACA97D42846A52D03EAF423E813CBB3FC26C0E1134DDFAAA3275226F6416D9788BA2026C78E2BB1850C681825774213628A23494DB886AA29892EC194791A84C73B36FD5CBB2B4BDD3D664AB10246CBC9BBDC97D8EA5528CA41924E240E544A747071CACA25B05051587173C9FC851EDF10FD0171C69C2128E0ACADBAFD72FCA96AED457CAAFAF51DC8C30CEAC70CB4621CD4D7B4C +sk = ED55584416844E1CB3C75ACFB3771013D1AAF1FB3CA8A5B718A8CE02A15AE26BACC7534F8B084A665B0608780E532A161686B07FAA83884C6A0EFB490A8A3FCABB50ADD21F58AC43EF4355246B1A661C5937562FA6067E7AA66978E4B36EA1431ED41E4E4282D4003D5BBC06CDF7AF225B6560C44F43A278677ABBA8C6B79741B3CE7C0D0769AB407C9B39C032F0E42D1866ADDF2115E2F3336384C61CE9319CC92AC1350B264CBC4059B94372631C8241CA376AA6F76111537018C01D1346019D628F1F00CDF828B48C47CBF958989B846ED893BB0B6444BC2A35C6443F77D757A0CC957716373460A7A94151CC548F0C78AA5A323581C192D00B4D96219806A04B1A0AC829002B7FCBC8CBF8A8E3ABAFD3DC2164D03A24C19D50133E967C7668AA8B81977B400067FAD2CA802A76716B95E3D28BE5603E4977C33D3BA5DF2446F6265827464641204ED972286B58567BA129BEC0CD6F1644C4032EDD6239309AAA259A3D997B1ECC535F17D773AB1C5350E3C82C600175269700A56B0D4211DD02C13D4BC7C54238F40163441702613A1DE34BA9B0B42EF0A29300098667E8003588577E64B031139DD2180DB113623FC4B74E946EEF86A1A6BB52764C6C12911765E37A685400888AA9140A3ADFC48712688435258D56337FB8D8A9E1F34BD2E818AE3B7480F500FB6BB03BD50019C33BD37B060BC2C45E8A2267D18927C0AF66076619889FF6B1769FE59E5F131F5FE40DB2815BB6886B7BCA9DA659935DB493DED9A808157E4151B04C153E673333424B7AA939559E4CA973F7644A813B8D9C1DB8C87CAC6365C0E008E329403C69490976CD3F006F3138114A6B3E6B3C4F054451E5BBCB7D232F285A2EF5202B81740053512F8E4B33FDA87EA61042D1F9736ED58E9047C8744735A728B636DBA7ABC33B2DE0B1572A28B23C25A8668CEF9291990A499BC8935F955E1CF0301A65BE870B7F01F06099192431F3436AA5AA6564C4689C1D2E11540355138C91BA6E0182B6DABA0E7A177FF320C6B04977D47DA0D51672EB96CA054AD2D4A0F72930061775592AA40E9C9418CA611893044460495D8A46B242201886CB52E38D91D25D7FA8262290628D91323DD2A51F8C7A33487232F4934133117699028381751D8594FD94910EE4115389C57262BA579220567A7B5B42441A641FD6630D7BC06802878C76BB9EA576965EE45ACB90BA549A01B6E873A1D8C741662067A116E64C8897E83204170C9BF2676EF60C20F3450804C7A1B80725DA17F9DB18F715B7894CCBB53321CF01755D168D19A96356EC07EFC62D9A8C3A8FFB15500433F915137AC42A474B8E43F283BDB2B46CD62D509A5AEE8CBE23B74CD48079D82293BFC9CD931289A0AA27D8A930BEB2000ACC2019E3CCE107A18E9C4408C516FBE19E45459ED77231851B88B6B73156EC820A4C097072C2FD61C83D23413AD510662894DAEB238992138F98185042B53A637AEFA83378B026FA7BC314516B25D343F0E0AA7772CD2DA27F8B39A8BECB44923792A7D586631B2AB963AE537768E45961F5F96CB42320E75738A964168B9403D5B3591AC5679A61857C818B2A486BB299019C7B03BEB50D2D40A17E84712AAC01895AC6F73C0E571B779F71C4691CA515592BF6270A32C58EB9A494C1A6BEE0D86581135216441A8397B5BE554C000342172728F4DCB504A11E7F594D7811C21B7A477F2526D817017E5C87C6B376D95C8C6AB628110762546188F3F602359A85B422AACBA4802417BA44B98FBFE05121CC2C58515CF2F3979400784F6152925A2D52D07D15A69A3E223FEBA90CA1B3A112947299123912B54321344CA400CFBD996D523B72A505A8F0945E00A65025015C3F9C7132D48BAE4129A0F0C4E22A1509C439C011A2E1CBADA30453F6110DEE9C7F4B0866AA92CF5A31667CE38F8D871F9902BD5E2A2B7AF030367A6306D4C48387B694C7BB2169614A746FA783619F9C7264D32FEDA59EC37063D1F11C6F5183F0E9BE5A493E5CB199358B19F1706D80844FF2968E95A24D72DBC348A88D0EC9BBD01C3018A8147291B34EC21290211304DA40C46632B352810F0A2D73046417885CEE0C231A495B7DB834A1336980F2B34CF140C84AC878C558CD937B7E0A9982F99B3C8ABDDD441B79F621764AC38EB8491C75171340B7774793B7912BB4186A7E3837E33414AF6AA211061F3831C4F4B16B753228E998A721385D7B14211D8A7096C54AC3101DDA7668013CC1555163F822B1CC144E240C284DC87B5075A813872511097C45A87DBABCBAE6E743DEC482B4EB47CDD4A1E39298872552F8BC4B0DF1632255588EE99B4BD373A21C665574BCD3FBB35690237A6CC691F80523390485447BE94B76FC219E7D75C6649CCBEB00271FDC1D666351F396C08EAC20ECFA784D45BD4D64847EA126D9F0A23A3B1727396F299951F95A68EFE55C5D4C792E136148AA35D0663D64F2C040586E44B6CDF60C54E0C08F365001513694E27569A3D6C6ED2538937A7AFAA0BC2CEB6B18914AC77C65922AC49E47C74447B889A39344DB09DCF1BD73EC5C48263C214A1E946B2CB806668A32B83C0C97AD547989836A53F1025348AC068A69357C7F46C69F963C5634908B9963BDEA79689B9679223824FAAA920439356C10786A646472372BE8729C4F2BA1E2897728CBAB136757AC5A75242608D6D10E20AA6446A4800EEB621EA822C1A61EB7C5B84E764D83452F60E5BBE79B275C4A4445715D21ECAE5A569073475A74BA62383137974BC071C27CCEB5BDCB1991D393784EA8B28F259B118089B4B77F9B68AB0CA953FF8257A3938482313F4C5963C4B101EB0321D608C2F3127CF451764E15636EEBA98021C963F359D2C44A9E92357F2853821BA0C8105C488B242D9C02AE637B2002CE644132069A8BABE23D4E9A056FA0B8BE8095113B86E6B5C748706924F6AEC490A46DD398444499B95289F13A84868188FCEBB861A004254068F6D9B4B83AA81C9B5433C70868AB5364A80D870B841A216506663AAE569B025C5CC43B2E5A6821FC300EB6574D0088BBFB7483959892703666DA17797DBA514A489376B19707A144B6F80423073EFC608347BA2E639B0C8F2A52AC959592B0B0C1A5B4FBA61483F225344051DCFC4EC124A9D10CC2C557339325C699F091319853EF7A445B4064D8E66895F8C0BC887786F5240B72C319FC0B55933B5864063D14C5F732472C71340EA26BF8EA7DB5FB9ADDF3C5011CB0F0D3720DEA819D3AA110E2CFA9EA61287716F199AF376B106FB097760B3F11237FCED41EB95B798F2787B3039F9C213CA5699AABFB03AF86ADF5D52D6AAA1EA952BC04725A22B2A28F4006CAC30E265C793018145573CD1C715A69D704217AC45D1B6E8823852DA64784D4B84EAA9CB7F75121CBBECBF25804A210DAAC80612972ACF605E91303A2D59B1AC84EE217872BAB85CDDBA9C6D1381E312B4C574097D95B8AFB595BD91C46FC0DF0A761F596569F99B7BC6505E922A1F90C045493CDFB9A3C650224BDCC26CA199849128945CA5F97E230D601283ABA102A26818932004BB114879139EBD637EA035C20C3AE176B70999C3FFCB7951742C73D48993287C3276C4DF9A8365BEACDA08BB72C55634FF35C2D848AB4D07BD6921CBD95C18AC60E7ED35AAA352E143AA1FC49630CFC8A09845CFFE260AD953B71074E42F08E265B7473DB4D178C269F317AC035CC1124540A4A47886B6E5B04418A760777E73AACF8930F08C2FF10815559C1E04672BF4B851233011D7B3A84155D76279F9778A72AC9803D36506824A34524C835222224545DEAE1AAAF193B778751889957D5082A9E9A34E6E44840CB7DDD712CE9313C5033590E9AB54C25852AA8B2F09252BED793BF6B972B593CA9317BA278937A607C6B9B8F79069FBE452FDDF01622465006373E2F661E366A90AD1483FDF76E04C388D61646F0162195D36966D75DCC89A3D96B2F98C79D9E0BABD9816AA2084611EBB558735C076576E102B3857C1EB2876D53C5777F146876E55020641072010E7A1B773D357D81B52B4071B9BA8C8F69683181CCC4AC49BD2083BBAEF7CA0BEACEC46A39E768295192AC02BBC0ACB70DE25A27B724AE7D3121B1A4A869034E70F279C3914D882422E1785709599DF782BAE64316ACA97D42846A52D03EAF423E813CBB3FC26C0E1134DDFAAA3275226F6416D9788BA2026C78E2BB1850C681825774213628A23494DB886AA29892EC194791A84C73B36FD5CBB2B4BDD3D664AB10246CBC9BBDC97D8EA5528CA41924E240E544A747071CACA25B05051587173C9FC851EDF10FD0171C69C2128E0ACADBAFD72FCA96AED457CAAFAF51DC8C30CEAC70CB4621CD4D7B4C692176B38737A053DCE0551B63E3ECA81884BBF95E1D8975671A2F7F1DFAE25111BFE66D2D15C33524F478F9A6BB3AF2A83357197C834D399A8625F761529BE9 +encap_coins = 64E3FBDF8D2349A497B5C9FA3AD3F7396FC1A9769175A336181C42E95C4889D1 +ct = 7B917712DA1A7026D77453800A472E8D688102E2B6480FA866ED2A5333D583C2CA907C615738BEA10F4C9E4214A209F4CC16AA07A788EFC1B0CDA4018BBBB9DECF902E78F0ABC79EA70D55B19673421FCC88CE5C39A35442BAFF4E70CED20923D46119978FE59ACCE0ECE2AB1DA63E8CA24F67C8E1A640AF16F80B6674132D379D50705466668E203B4C261C477EDBB87B6073705A388B74C97A892FB87EFC9B7D78A96783A9365C127C3E5F3E798B8CC4B6EC1A055A8FF26C9664C7F38D5FAB200AD1CFEF744F87DA9C035C1FE14C17CA3D69CB22953554A386D2FB885EC8BB1C00CE72DDC5E49DD2465397B0AFFD1307C13F7BA100265056D6CA47282D3BC383C0DA46DEC638D7D776BB3F7D959025ED1A3673C40DD2F0C97402707E345A27A7FE148429C300DAFD9D81E1EA087DDB12ADE069336E6B7B4ED015C1997B9552D18F2E44C18F0172B29F1B174D33181F96C86892F55C96DFADC47182FA7CB77302E77F8F3E15C4D35B63F7B06D2B41AE3D6606F99A82C65635889AF59C0BC06C5BC6059AABB737AF95967E71AF501878761603D90950656319F0F5A670F1CEA79E57BBAC60BD61A76707BF449808AB203B986D82371806F7AB15067CD847130B98867E6A5164357B4343AC69164FE60A0B015B4217390639E4F13AB8108C6F241674B935B78067802F3F304620ABB3BF23A45E033BDDA525331C43148B5D733FBA03907CD28D4194C5117CE33F9D920A81EE1C9F95D690C6350B8779910516D8A4750EFCAE65AF47306F4BB85B5D0D0F3BD67D4C35DCA24A2CFE065BDE832A2BB4F82844BF62E90CD86E671CE669C5D068BFA4218F69012A0B0A22491FF44FC1892E6F85D072582B48164785FAF4AA31ADFC648160F1A2217977CE58571B1BD7E30CF6D3FF3B186B254287ED3DADD7F970012B11C4F1EFFAB9B151B1B6C031D024D1A16F6D5902639A0F31F571AFE4A32251F729976A52FE006505B6D487C8D78EF92292048BB50E015DC7BAC9A8D551E20F9168DE57F14591994717D2075B48061A0FD01968B320191CDA1B2FC2A6098CF78CF03F6E71268FB8C351819CCBB431F13CC60474C8FC7F2FB72ADA5174746A9399861CB0C1EDB6EF2F5B65C6628BF0BB67AAD660FF761CF0ACBA8012757F8AF280ADF49B0CBD9F7C0F0BFE08604D0E63D92E2E003C9B48F41F490125E5292E29903FE22C5AF046284D6BAA9862CD0BCF4739C02065D9B268315D03D0DE8D5E8CB7FA6CD755A78090E440AF9AAB0BE4E3FC4225B2DF2FBFA42DAFB5E5E622AF54D61124C63CE5774073891FC22BE1564A5669169486B728DD8B4EA52FC45FC9E81A64645C361E27BBF69F3226DD6FB5A1BA4EE0521F26EA9BAB2CD10A41A2AA1032E9A72FE17C4EE678C65D29178578AD5EB00B329F7DBCDBE32E16F2400722B46723B31462FA95C59ADDE1275DB2C91FE246C90FFFB263A11582EBBF007C732B5D2AEB872242120881B1B028A65C5461D0914AF199A51399899DCCE506CDFBD1C07F8EF28BA59A2CF8A1C3A1FEFC08586FDA5960C2D3E29A8FF8DA6DC1C88ABA7AEBA99100AB5C6B3BD259442E940B5311ACDAF9BBAE8DDA07E2D57BC51EDCBE7519D3235A1891ADEB3A5064C1EED8D1F76EE54C91D3C8E62357C80F85D497306AA4C54DC021ADC2043D20B18593E5E78A0DABF7F5D288A6C673498D86F9D2A283F720B0AB26F4F176BB5573CE7EF4E1B2F7044A218111CA59293B0ABB415E75377A9EFE241E8582517C5A9633BBE6466C7503127D456AD19E5D284E6D8C0E540AC682AB7544CD96D27136DD6629C7A6896D0798E13CF6F6007DEBEE3729478D513C52946D9B6CFEDB4D7DB9BE91C5C755CD956B8D7DCC45F57F0E2FAACA2CBE1AB2C44A24E12ECD9A710B7172A0F89C86883E8790F51F209E693B27F4470215AFC1EF59F5E6B0B8DA4EB184D049E5D5D866DE5710324857963D8B47AB6BE88A96EAE9FA17167351CFD1F628C982304C4062D9EE82B104C97E12E6F4C138112A935D86715213D0AAE55F6E96A0543DA5A95F7A52E984DA1C89BA526B73FE82DD2BB3521841EE042F0B737802E65ECE7C3A536F79C466954C6984ACEC4373A786FE77D7FAC9475FE2D0123CE08B81E17B9946FE90B808F000E3F94F30C52B667A35EB94652B56CB02B955BB8EDF0AB89298F8216A7A10B2E29BF119689E7F125AA3274CDD691B9A2D8B653BBC437A +ss = 18EA5D2BBC7A8F5FAA941FC319748DEC607F679EE6E485059BCAE1C25477C09A + +count = 20 +keypair_coins = D304C9389CC973477F169788ABCB9D511F843219D246A9B587822F422A70C23810EFE801AE61866A7109F40ED932E67B0AE9E966D1EC5F917E4A9F31A27EE13D +pk = 85E9A58FFC4AACB3C476327B705515C6F1980B53B3654720296742B3A793258138D86728F4846FF1030F6F604D092847F011CD59165B9DCB400A8723AB79BD137566D709A5A7F62CC7A7948331920F75530C915B1BB086E422145DD74EA1B557F68B511FF8A1EC0A39845C0AA94C2BC05922E3CC52C7F59EABCAC2D36B5535EB0D7737768D6322023A2ED2FB0128C2724442C794D794F302B89FE8B1A3E8326253362FC44BCE193FE7725D1864ACB29BCAF2C0BAB9423DC593733BD99C077534CDDA88F4BC2FD846B810BA71D2139FE1F50ACE7821FCC5C9AD7C20BAA4A430B8085441CDABF16251F8B686359C755981EC4C8FC834CF7F019E599051AFA87584F2C41CE13AA9BABAB5AA20204974A10BC36D4AA1C7706A3838B8DFCCB1FE16038D78AA78EB3594998A20C72337405E2F36683A01B87199764B533077688A9A755C2C38632CFA4C2047663E860A2998937703BA0F1780FF367918EB208B917CBD340B69577806E282401767C258B38B0C6B21A057F42B59A6DCB2EAB48063116FD2B1AB64C0A864326E8683CB63E053FC03A5F6D6B58F0820F500AB1D78504DD80991E68FA6F91658FBC64C594D32A507BE17B465684DF8E65BD5745FA8D6512D382785ECB9B207746686AAB683B0CFAC43D07A0113317CC895A513776611B981F05BBF7E1BBF867923992441176135B394C6DEDC8D64EA47971994CFB46BB7692F47E1B372994F3EF19A282799CA530AC7B82FCA207537865EE0F4C73B0A0A84E1B2D2B058175780A287BA9A435A0FDC24FDF48EF579B55CE1B55531019060193FC5CBF013A8BF521C1F459AFB125C78D2377722824736CE01901A16A54652D064E9058F918B5552936DBC77136B009B2108862F962244597386A2B078C6B46308436144B75B9926133A46CE1C44CA7B5F52A678463191D51953A516A1C937101FD236C962A8DCBB671BB1BE92035910EB0B40D8672317AAABCB04BD8B716F104C3EB49C1E5BCBA7E17D15861671950056E5278B845AFD6CBCCE9B2119D86FA1FA067F1C69BFCC7E693020CCE979869588337AADD7D6AC7AC3AC67A3034A035A12750DC30C99C8692B9CD74EE2918A23248A3A6875E25BBCE8C6902CFC81AE878FA4BA1DF57523D3013FA79A9AB08894004042CFC00B0665BB894772E648CAEBEC8779A8CE0A38B05043A8F3187F199A56E2143845246810C33B9B04034791CE31490459733FF1C7752864389CE3BCB826608F966342147D6A3626C4AB842480B571A9487BD8785C37A7ED10C8CADA99AAD1A19B144ACCC2BE8A17BE87111093189EFC951D08799B5DC46E46E571B370B74E881326DA687EA02E1088C400067EE3D885C0DB3FBCB336416C74398132090971E2AA1FA9F6CA7AD186BD4C139BE57665595337687742B1AEC0DA12922783C6ABA7FED24D18D142392B26B3650731C07A15A987455986252B8234123E3A4A54C08B599F1948D1383183992E2CD17D3312CD9B3CB4149AC98EBC054F17CC516C67D8B26517316143C6640EAB5134F41D6987C25454CA62070C985B2E0EEB24E05870667627CE5282F95635BE4034D90232E997C18409B1D4991B7F05926E5AA6CF67B5FD569FBFA9493FB3379D1B6DD14C54B9328CC492842238CCB6B652DA6C037AC6AFDAE2BE4B894DD66A70B5840F20FC18BBAAC111486B9558137269732F2924EE050242329C0D1583BF890847B30D5921198814420B60475CE0047D973269424C54BC9E3B4C94633C1418DB9A03A62F6CC224C59074809B9E023A5ACA5757D3A789062BC3067698A5F216FB2C7355609A99AACB81B99087A087ED64CBC462301754931048999A2B9B0E06C9F251BC41B39092201CA3A727B5E498E4DB782DD53846C7635AC12F6E89C30480BAC297188338A58F338D6B7075003278CCE876BBE18CDB00326E44745A4009209B04FA53CA742438336AC4F9CC337B1636898170A1D97C58661415DBA67935162636A87F01BB87B66865D415360220EDF89D0514663DD73A951070F68653B9C2B637259A395C500565B6B5A05B3F6555FB249946C9904AB40256D63B1D6C2344F80DBAA5B1BE7B10299A7DDAD03781983F8ECCACE5C85F3C3BB3A9D61C040141757A2E881C33A9784E48293374CA497CB59E12C07A4B6B420D3094400B24CB49A9BDA19C123C24504ECDF72189DFA1CD24EBF011A3BB66D35F78633E1EE7B249FF +sk = FFD8874D8B37C946409D69CB03529B7D1A43DDB24792D4773CC723643567671B8E0FC2B903D302679A530118AC453B0541A2389C46B38F317B43130972271D8146A66593B8FE659DB570C941F1ABB4F295493085A85277062C3D4DB168E466015EA506B5B8A805A435EF6812A6B68AFA9372776717C1042E24E7A10A842182E7C40C4CC547B98FE007A1D98804AC5BC3C31B6511425A558C73E5B1935C7A664EE224955B6D67CA54D47B04E1622716A27B21F12A2EB27C16D26A541CB0C1BA5A1A8629B7F2222B84CDFED9CB6F666B41C92FD0B074F42B5D2EE72E8C5443F34C5DC2920DA165558AF074E3CCAE84C1CBF1F70624E1A3A30A7DB045A2C4A79BB1A4B0F01187BBD8B29A8C60B07068A72264D9B305B5E391521BB945D53CE1D65436441932EC5867549408B47F28D3BF37D7AF0DF432CCFC3667F4ACE969542CD626637B570FD84210B3AB5456B23B8B339F4885E9A96BB17CCF1CA4A962C5667D0C3DFB356146C04BB8391197D54D0F4202F160824D900B27B36BF8ABC7876CA331C2C3A8A161D98523ADFC1EF9D538C9203A6729CFCF6089F7D72F57093EA3A34113749F23EC21C051AB2C836679B0210A549F2678C7187691DE949994A25769D4647FD992BE411E24E302C07569CF26C11F3942CA505391A794D42C77DA0A324B05908AEB9C70B88B38A95F371B1902E06D071457BBCB382AE4C36F14AB3A747A30CB7E9D35791879873A0333B3FAB967770465A056DE9C4420662C046AA8CA32093AE23ABD80406FE60BDCD1725DAAB0E50931C575A0C9137FA61442B1101B05686D398A6FDC0BBBBB25A073E99C3702B9268CA91420A1198B5C54501A03C878B6827E6D586AB42C2FA47258D1255711654968FC80E1364886F18E98FC10EB85645B399788DC225B1A233FE564604A86397A4483C102203188DF667961BAC9EF19B99432475C0A2C9978C81CF5314A2B2AB37479549B14C8D70ED8F0C6625938CA4A92BEE5A7AADB286E507EE8890772C3353E35C2DE8696041BCC8B81997F8C7800417C91C32E9B8B34B62A25E5C2AF2854CF902269C3C5B50A5209DC1C63F8835B3A73137D855C69F9335FC66EFB985933F4A66B084AA58909E658998A15AE8B087120F59A00426CF9A327DD48467F8C12CFBAACEA7BCA7407060C42950CF9543CAC1EDF9C296D978A2C36AAD92B665D6C9513B59278AC1CC781204E555E27F81E976A74D3055A48035203472960E596C7C4C2D0158A006D884F40681C6610F1124574EB9FF5323E10480D0E306F1E398AD1E6CF8057024D072DEF4719E3A6BE9AEAA07B56077BE495A635C67066A2945376C9836EBF4C413A05A9B1348C31329884BC7D820A6BAD7A63BD62518878A97FB525332433573973DF74A00EC02D50198A2B1306005335E6A51191505FB244999CC333BCFA4E7845B766B050CF66607982014D28548A4454F86A06E9321C82781478CB938C709EC5CC81EA1A9269543DC8EBC6D253BE1698990C81C587D7263E7445BAF53316C23EB8863D151A4E5659928AD704C1C7B2BD2A1987907A05CCBD2F0C78232A10653452E3DABB7598CA83D37166791EF11A2524F371180984BF72A6E2291301606B7351A284A1A66866044F6088BA91217305BCF24C759BC348E75325AA7CB4C6B41077979A2B02B137966016868A66B1780BA90BC7D089B97C6BAE2963A2EA3BC2072EA1841DA115B83139401A9416DB7C8722306D3A81BFB4D1CB5D964F04534F7F79C6DE1789CD6767E1F6930C88B69B168CC6574E84C9C282F257D2200BE0874392E12C57E6C989D8320B1C1135F88C97D824EBC82478CB4962EA409DFAB7B61C1091B15072C18BC46838DBA3C1F6AA00EBA64545ABA2D0AC9F44D3A2DE976F62B8ABA4396106F031ADC4020D46C78D94350DC0CEB844AF1BAC32D1C27CD3E93C6D279CFD3C0D20255B8F11533DD387207C8A8A4C8FD51472FE21350F274A375A81ACA592AD450091AB07FACC360E528F7A6A6E41265D45F513A260605A2595A22C3AB5E8396FA033DD443DA518C44A869218052A3FE06A20451EE4ACA7928C521DF980D73B2B7431BA37F485FC29B2974C1DE5BB80D40708C5F869CEFB8D24A56C72BA04892078A963753C105F088C8C326C1F82B3B246A75397D47435151FD314B9E5284385E9A58FFC4AACB3C476327B705515C6F1980B53B3654720296742B3A793258138D86728F4846FF1030F6F604D092847F011CD59165B9DCB400A8723AB79BD137566D709A5A7F62CC7A7948331920F75530C915B1BB086E422145DD74EA1B557F68B511FF8A1EC0A39845C0AA94C2BC05922E3CC52C7F59EABCAC2D36B5535EB0D7737768D6322023A2ED2FB0128C2724442C794D794F302B89FE8B1A3E8326253362FC44BCE193FE7725D1864ACB29BCAF2C0BAB9423DC593733BD99C077534CDDA88F4BC2FD846B810BA71D2139FE1F50ACE7821FCC5C9AD7C20BAA4A430B8085441CDABF16251F8B686359C755981EC4C8FC834CF7F019E599051AFA87584F2C41CE13AA9BABAB5AA20204974A10BC36D4AA1C7706A3838B8DFCCB1FE16038D78AA78EB3594998A20C72337405E2F36683A01B87199764B533077688A9A755C2C38632CFA4C2047663E860A2998937703BA0F1780FF367918EB208B917CBD340B69577806E282401767C258B38B0C6B21A057F42B59A6DCB2EAB48063116FD2B1AB64C0A864326E8683CB63E053FC03A5F6D6B58F0820F500AB1D78504DD80991E68FA6F91658FBC64C594D32A507BE17B465684DF8E65BD5745FA8D6512D382785ECB9B207746686AAB683B0CFAC43D07A0113317CC895A513776611B981F05BBF7E1BBF867923992441176135B394C6DEDC8D64EA47971994CFB46BB7692F47E1B372994F3EF19A282799CA530AC7B82FCA207537865EE0F4C73B0A0A84E1B2D2B058175780A287BA9A435A0FDC24FDF48EF579B55CE1B55531019060193FC5CBF013A8BF521C1F459AFB125C78D2377722824736CE01901A16A54652D064E9058F918B5552936DBC77136B009B2108862F962244597386A2B078C6B46308436144B75B9926133A46CE1C44CA7B5F52A678463191D51953A516A1C937101FD236C962A8DCBB671BB1BE92035910EB0B40D8672317AAABCB04BD8B716F104C3EB49C1E5BCBA7E17D15861671950056E5278B845AFD6CBCCE9B2119D86FA1FA067F1C69BFCC7E693020CCE979869588337AADD7D6AC7AC3AC67A3034A035A12750DC30C99C8692B9CD74EE2918A23248A3A6875E25BBCE8C6902CFC81AE878FA4BA1DF57523D3013FA79A9AB08894004042CFC00B0665BB894772E648CAEBEC8779A8CE0A38B05043A8F3187F199A56E2143845246810C33B9B04034791CE31490459733FF1C7752864389CE3BCB826608F966342147D6A3626C4AB842480B571A9487BD8785C37A7ED10C8CADA99AAD1A19B144ACCC2BE8A17BE87111093189EFC951D08799B5DC46E46E571B370B74E881326DA687EA02E1088C400067EE3D885C0DB3FBCB336416C74398132090971E2AA1FA9F6CA7AD186BD4C139BE57665595337687742B1AEC0DA12922783C6ABA7FED24D18D142392B26B3650731C07A15A987455986252B8234123E3A4A54C08B599F1948D1383183992E2CD17D3312CD9B3CB4149AC98EBC054F17CC516C67D8B26517316143C6640EAB5134F41D6987C25454CA62070C985B2E0EEB24E05870667627CE5282F95635BE4034D90232E997C18409B1D4991B7F05926E5AA6CF67B5FD569FBFA9493FB3379D1B6DD14C54B9328CC492842238CCB6B652DA6C037AC6AFDAE2BE4B894DD66A70B5840F20FC18BBAAC111486B9558137269732F2924EE050242329C0D1583BF890847B30D5921198814420B60475CE0047D973269424C54BC9E3B4C94633C1418DB9A03A62F6CC224C59074809B9E023A5ACA5757D3A789062BC3067698A5F216FB2C7355609A99AACB81B99087A087ED64CBC462301754931048999A2B9B0E06C9F251BC41B39092201CA3A727B5E498E4DB782DD53846C7635AC12F6E89C30480BAC297188338A58F338D6B7075003278CCE876BBE18CDB00326E44745A4009209B04FA53CA742438336AC4F9CC337B1636898170A1D97C58661415DBA67935162636A87F01BB87B66865D415360220EDF89D0514663DD73A951070F68653B9C2B637259A395C500565B6B5A05B3F6555FB249946C9904AB40256D63B1D6C2344F80DBAA5B1BE7B10299A7DDAD03781983F8ECCACE5C85F3C3BB3A9D61C040141757A2E881C33A9784E48293374CA497CB59E12C07A4B6B420D3094400B24CB49A9BDA19C123C24504ECDF72189DFA1CD24EBF011A3BB66D35F78633E1EE7B249FF2F54BEDB19919171ECA777186DD743B11EC9489AEA09534C157FAA75ADF1C77C10EFE801AE61866A7109F40ED932E67B0AE9E966D1EC5F917E4A9F31A27EE13D +encap_coins = 7274CFCAF30A61D198328BE008F814B2A87D50570B58A80C03FF151A774C589E +ct = 6762EAA5BEDA0682D16B5E70A9087CB647B8240A0235B87B0067CF5E369238B5C6BEE8CF80B586BA83553BF9724C42E0B7EDC52AFAD5A09441F032F19A20DFC5C7BD41BF35A73EF64690084BCA684680727EB270CDDD8BE23687D655AFFD9B082F55C027973C979EFAA7FF08D034F5466A4FA446BF012AB1BEF731EEBED98261F1C720889209229763EBC9FF9E0C0F1000BE3BA74A8F7AD6C2CD058BB03A6D3C01F385426020C281F476E0DF4D0E910C7DF36EA9A236CA2B0EBB2653BC774673E8F003F95BB83D2B794C7FD99E9FF0DBAC916621868EF340167341377DDC2DDDA36D1A1321307B1598F554564A1FFE2F7D93A5E0F0E62F4569A2E45449CCBED0B8DEDEBD61CEDBF7410102C00CCD237179A133E780F179673EAEE51E3C18A8B0C12F1F95E82C282FFFBA0341456A7A37C0C0D00CEA4FD00694E645855CEABB1AE345C85FB9B6D58692F6C633E8617FE0F2FD2E57BFC2D59598C65D1EF81900626F2F0A41697D0E513515892F240EA9B0FC10333044DC9452484F9BE7C9A45B2ED704FED25CA931CDF87F6177AE6266EC0B10BD21E9FB2FCD3466B85BC76018759A3F5BDDC489CEAFC7666E2E2BF7AF3AC2E45B63FFB74A385CE7B8C532E3FFF38CC4B0D8FC714BF6D3B3D325148FD6CC2195578528B38CAF17A5A8CAB11DAED95B29A035E54DCA9924831FCF77E785311DB7812EA51C06B89E1DDE8B4BF5702FCCF025540D1BCDE159FC093E8835477F65317E01C194866462B07B068CDE639E316035BD3E867E4D4A4632C02E0BE8C21C056C30F849BCB918803221137E46A76004143529CE2A5C24183AC27A13C1BC39CA46053F488CF0E81DCB024C36CC8536B028EBEC2AE456AAF5D8928087BFF152BDABD40790DED06D61313825B0E61A5DA0FD9905EC4559C810750D23A8F590FDE455D376081AF718D4690C193F4B5F299DC0A48BE420EBE8FAB4180EC670AA5D1684F433F7F55BE011EC63FC04A4FFA84B68565B782B0C69391ACDC464C01CCAD61B21AD5B184DC99C9EB3CC6F7084C850FE819D2A8345CC8F531B0FD29B04C3620FE8A4AB5BF9ADFAEAA06CCC33F8BD59BD12219956C66D7CEF43FA0FE3CF5339F43C6D56EC5E512B55521B19CBE4264004AB36F3761181D9643BFCEAFD1C68C1C05F50EE0E23D6E39E2C10C551E00757260AB86DEE08E444DCA91FC5F7DE59222F273EE3806983F26317822DDC5C53AC35B04A22A061978AEDDAF9812ADC8FF4A1E7598353C66BD50B2FF1DB7556029E42C57DBFBCD786F85C5AC319C4E1684D277A465FE74686A6B60545F360F4095F2A2EADD7BBD8C1B0B91D1E22BFEC17DE3935F4A5E5BBAAB5D2E60BDFC7E5D92C1C0C08A5F735DEB1B0DD87168EBA8D03A9C4C082C80D9FFFA7009B1ABB1DA6AE423F7576B3E803252641BFACFAB1A65888D0433471AC2768DEE59EC5D0FAF0BBC3CF6E5AB4EE70491A82EB280A9E680B649FEC686CF22E58EDD80ABFB75D110F50436FFD1B06494A1174BC590AA39209729F4D3753280397549C0AF83649E2928F5132652587F9EAD2A462CD615184E95981697ECD9B16C7032581A73D2797FB342A9B9BA18392E4D8C05482E6082CBBD95C2C9BD774C8BCE65770978DAE6142C6C299AA1C0454B37713BBACC166248AF0FC749CEFC4EE3ABC1BAF8D39C5B8EDED0A7AE8D8EC0EB1567F7BBD40EFC75C6B7D4ED741DC5FF360C2AB49113EE41A96E68C6C382B2B3F5618CFB3599D050A6E753CC811481A01AF7C811D66C0CA172CAF7483D0CC5484EF53203AE3A687B10B67ADF0E53CFBEDEE2B9D6377A9259FE6AA1D82DA6E788EFFE4E72FE4D1D97BF0C11CC78E9971B7D605E16FFB4425F444454EC08B04621D9198C1EDB716C4BDCCD3120F7D9D50EFEE79D194CA8EE8C9ADE67E28EB77731A0A67EA6F614852B36FE8A8713FF7CFC6F304C0D4E64E2ED21D46E92052BF1C2B0F669BEC4BD66247EB1345EA825C41D3CA4F477B81E738E7E9779FF62B221B28D33E923451EAE0C3D99BE2522AB0E2EBD3C9B18EB3B9E37F95BF78B2DFDB98FC7B7BF27B3EFE27B857BB1B8E3366B09FA19DB6F8BE09DF50821944EEE25AE57751F54D34E6D56480129172053D6BE2325F973502D255457EF1EF2B25E12D724D687E110BA1027E55B4FCDEE853312254A4A964EF6EC1FAEAAC9419210E5D444EE635D0B7B7377AC59B258F32D116CA5ECF34B2A683B1 +ss = C66F2FE012C22F81E04C0BF8B42F12B6C1465A8432025A9CE3519148873122A4 + +count = 21 +keypair_coins = 89A6E3BE304A3518FB82B18CA730F0B359CD6BA90664A493FB4F8EDAF965B9C3921BBFBFCC283E1D1DB36E99B9CC6CCFFFBFDB86DAB7B6C7CA02CDA227DA8632 +pk = 16E63CAC8B2DD05A60CC593000322C9C566B472B375E8484843AAC71E74BF0315AF59A8A4F6104A43159E198716E239247204753F629C5202C7812C9AE2351D88B4256E7A82B42B15E54412E0130D5E25388240FC05B253E7B0C94A43C7E96728ED78522E688EC2691B70943B8CBBDDF19873E67766301B386B088F71922CA370916319D8F099F263CAAC7D7C0F81959C4B13A0DA0B5C269760036A552016F8B591F6B37177CFAC940F706C975A59DA7C04FC7210AE32508C28204EA204073C73B474D74B54CEC08BD14361B144C481FA8561B6C73AEEB7CB0A65BE0965B2176705949613C917393761EFE2C2E4DC73D4998A1CFD6A2FF278B6F68B1F108151B857EE913B3568171BDF1502953B81FB085650BD027C4B66A8276319201AC328604100CA4F684F2FC65F220CAC1DB9C434A218814A14CB630B5B18410E11C37C92B31600E37C8BF12C895B1F315F0DA01CAB250881966D3C8256F5513CFD68E383BB8AE248E27F3B479F7A82DA2AA564B121586BADE1AB522776B49A02A16E3A798ACB005D70D3FF24A8CA3458A826788AA09889293E4D862572907111071F0D58D679A0C620155FFCA45BF03A1778941D41776EA11CF3EE899912C703D50C8E88AC447B2BB0A0CC3BFD83EF3261CA592915BFCAD6CD26409472E4BE62EBFD65F003C59D39B7F9F710F6A76A1E8291C834323F145AA3B8A9E2E4C2E98621074C49FD0716D3D61A2787A0598E8096AE05FCD7AA4250A7AC4A5314C842B8DC8B563C6B8F626763D865C141474C72C1439BA7012661985A061CED9679AC94983957DC99C4BD4061EA43C893BB707C0F633787C1B11D8622DC08C47954EA907AC1513AA3C4420DC48366E4045C79CBFC3B52415324E8C6669E52C2C16B1722DDC7D521558180781898A2E681A55693398BA712712B9C515D72255453A3C4212BB7B3692B3998D1BC6781CA28FEA483C276A92C219A62797A88702B2587005208512AAB304799A99ACAACEDB1699993150B41AA3291423BCCB6DFA31A7B42BE4997581B9AA54716CD5D62CB1B9BEA0E8165EAB6A6300242BB5A711F36E9A43B12E24492AB95218E084E1D2976A222024263E4C87CB93CC4FE556812096686AC72152F1A8A12B93C6530D08C99B9BE3634DAB9C93D27F2A4099304B4C61A4BF0FD9CB28803D0824C5058A515DC69C81228687376865852FE9DAA07E45A889E650E0C58FC2CB71846B5296E76D71105E87AB2714B2B82E06342218822642ACEA28700486709C43B2FC421EEDA5070CCC8AD1367CF2834E88EB8FF8D2059F455C2DA34843418CD3449497B753C92826C3174E5E304437C04C7F518FA2EAB149762C916B1C6A676A8D5B3BFF02B8EA9A366F1706BE888FBC40285D6CBB924249CE963646595573B5A5D0079FB9B0275FF031797899AE0BCCB3ECC32EB48BA3769BD5E56667CC02723C773BA00924A961102225F2B88ECEF333302077C2C761F48991755A83E09B7C3406BC8784031754BBAB6B49C361C93F5AB9778B39B9CB66501B63D8859AF0A00BBED32947B92F49961C5FC38BAFC9B0A763802C9709FAD39F040C6736A4C45A110A08822E26D93BC6CCB566A687DDB786F5D31378505F5D575746C3CBFFF55899C933F0052E1155B776B9201F0272BCF67C3FD26868BCC42B2B9361562BEC56CE1991AC7347B6BD500065E990B257BF20E1537988A560DC21AA652E3BC8650D80870A1A4190014FD1C43229043BC1068A5FA074FB5087581A932DDB5923730BA05216895BA1E67947C71AAD452861371A542325607A7752B8485C48FA9CE930793130996BC63D1B162517C34449F5263077A41F576150D8B062718E493242F57041F2DA6F271C0C5BA3A00A8C8FAA0AA9FD61073DD70ADB7991DF8A143E797A9CF6B0CF257CEB347DFF45CBF6DB25D5928074B3A6ED918FD35895BC7B93682897C0D322D46755962928F3390664499A14DCC025B1C0780858DB32826679A923E20FF56755A26604A2C8606FD7087218232CDC3B488423FA9328F9ECA8EACA9FB4311777592157B46E4476C885581F6CA524AD1CBF663A0591A7679E515DE5B65CEA3A0971C9139019735D421A25F7126A9BB66F67C177F3873BC5A8A7C06026913A631B1B370AAA17019A7CDCBC22A24F9E38A69637928788BED0560A235C2D8DBFE40DD56CE5DE6756CC4B6AFDF64050DA2EECD9953E893C53BF7FFB +sk = D32CBC1116AC88219F9AF2C33BEB59BB94B372F97815278F0FAB2C690C94B8F209DD1575BD7C0BC7F48AA133BFA068CF1AF1612C3325B8D08963BBC66D938F46843FEE424357E535C2259ED958A75CA6203286190BE53A9B46373F8B41CB38C1CAE2BCB91898669A872F1A8D9CD21227E42ED655569202CC6B494CC6A6BDB08731CDE417F48B86554CCAF953B8FB70AEC727085510CDBAA7CD2A0BA853928886332FB1E3A419C49B34EC90FD31B716252ACCE7A79D05CC04074D69AB3CC9809102261A2191A086231DC70AA583E86912E5BEB2C1A22E841F39DB531D5C26CC333834A20480D6B1CCF19A654149045791D33B414696375DC3C7B0644626E8822C5325D52BA764F2361D853D244416CB9A5BC0540E1238CCB53438C90A196A45571F743894F060F6031FD623ABEBB4AFEA05190DD9452C981352A78E09579F05E24DB2033AACFB10D9335986E8542D9480BF5603FA932D2D0878C3753E6524A809324AD6F169D7FB6D9C0264423A632996ABF297707D8412A6B86160B69980E18ADD1C372FAA406F540C00ED0A75C3544811759C3B5026E6C19102B7160883ED002DE5807B5933934FA01559C4A790230EE93C215BD75AFF117D0F170B4FEB7AEF5B007ACA616E688161FC00CB037C8232CF2DCA569F01A2E1DC2AF7ECB6111181F2EBCB1DF27C6EA84251D8A2B6B6582EF915E2B8C7F8FB6BE8844478FC570B8054A067B34120B47FC6AC68125CCA8514DB4540B7796C9FD05523E7014DB34B8EC94D5EB66C9F5CAE2F838191D2234F43C72262A18DEBA17AB495B7F0529D89B8E1E407BD5A185EAA2444D20C6C9566526B8707B13BB0CC8D9589773DB90952A5CD78E43BDC68CFA4401D7912618F456EB4F97AC1B49AB948592976233F962B1916531FD1672BB69BE320A2985B38B80279572488C5F86BF3D55FB9FB90449B66FC874B94292000466786FB7E393765C7057051999711D234B4D277419320E0046EC0925B41D6B89C62133BD2734E296DCFE90BF6344219A6A22D2CB50C75BC02B07FD0DA11FE0A0A0B9AAD76001D5D7C8FEDE065DDE87D5D47821E756A926638395883879A91B94C6164A40895476269917CAEB12944DC956174B6CC5154944571A6F6553F604D3212728FB08AF6E8C0EA00265AC0C5464595B31A9131871D79298867AAB426D009480C0BEFC08ACE14991399079CB62DE9E6BC80C88C3339640FC667EC837B691C3DA4556A952B3E63C162EC911101C5A49B35475AE68634A7B0CEFCCFBEE608CD4C43C8EBA7A8F957DB595645C64ECF08B50C7438BFBB415C27A45AE940AD077E5A533825D998A9095A735B5D23887B0048AF49CA85F18395C7D3CD06BB687C92CDA9AC9C03A9333A866A9639803C76B5B189294A269F389ABB5010789D410B88215C554008CB10274F781ED6B0BE3903576CD16934C4B6B65296C477AA174043F06792F3944EFD0206E34042D827CAFFD2989B936B91694825C4BD8B10C0777B11971CC1EFB93EC1B3674AFB4FD07568FFE89C707B5785C140D51B433B7942D88A6EF9BC9D091472833004005AA803A050CE03B2BB551F62FB1FAC6649D3E14F0141B2EACA73B700489B73A8D840834A7802A96864610B10EF5A030A6670A866B02E13C3FD48056C092B241513F1D498539B1D68F498CB049C99D33C32E1B491997697A0B6AF529E63A85A0A7B8ED6C005D61963FC5ACD1E609AF8160D6F823063385065640452815AAC2463AB8524E2713E3F584FD475A23E46BF79B97F83403FCA999C1CEAC629F47261E499E211051C7059E4AA14C2C4649E398ADD5B2CA1D070386B4F9C284F84C930610A3B22936090F3C03FE7A25EF323F2C326B3A7C9A7A5CEEB395CEF08CA8009A810986F33164054B26BFA61489B38AC81390BC6CA863455C22B589E8A4BB5BA87AA0AE03FDB611B7F364387363E728A6DE48AA47AF676E73AB655396711E64777B27FE45474C3F29495939704D34E24661CA43AA94B71CEB2D3C008B135A7115762997879C2391CACADFA092779308080A1459B09AB16E411157ABC386A0E8E322CAE09A60FA290A91419D47513788980ED60A40BD86E6CB30481C65A853A188442004C93421C799402E639DFA3C73F9B227C64C0F8C17D4723A06C73A9AD02AD2571587058513122012DF86D16E63CAC8B2DD05A60CC593000322C9C566B472B375E8484843AAC71E74BF0315AF59A8A4F6104A43159E198716E239247204753F629C5202C7812C9AE2351D88B4256E7A82B42B15E54412E0130D5E25388240FC05B253E7B0C94A43C7E96728ED78522E688EC2691B70943B8CBBDDF19873E67766301B386B088F71922CA370916319D8F099F263CAAC7D7C0F81959C4B13A0DA0B5C269760036A552016F8B591F6B37177CFAC940F706C975A59DA7C04FC7210AE32508C28204EA204073C73B474D74B54CEC08BD14361B144C481FA8561B6C73AEEB7CB0A65BE0965B2176705949613C917393761EFE2C2E4DC73D4998A1CFD6A2FF278B6F68B1F108151B857EE913B3568171BDF1502953B81FB085650BD027C4B66A8276319201AC328604100CA4F684F2FC65F220CAC1DB9C434A218814A14CB630B5B18410E11C37C92B31600E37C8BF12C895B1F315F0DA01CAB250881966D3C8256F5513CFD68E383BB8AE248E27F3B479F7A82DA2AA564B121586BADE1AB522776B49A02A16E3A798ACB005D70D3FF24A8CA3458A826788AA09889293E4D862572907111071F0D58D679A0C620155FFCA45BF03A1778941D41776EA11CF3EE899912C703D50C8E88AC447B2BB0A0CC3BFD83EF3261CA592915BFCAD6CD26409472E4BE62EBFD65F003C59D39B7F9F710F6A76A1E8291C834323F145AA3B8A9E2E4C2E98621074C49FD0716D3D61A2787A0598E8096AE05FCD7AA4250A7AC4A5314C842B8DC8B563C6B8F626763D865C141474C72C1439BA7012661985A061CED9679AC94983957DC99C4BD4061EA43C893BB707C0F633787C1B11D8622DC08C47954EA907AC1513AA3C4420DC48366E4045C79CBFC3B52415324E8C6669E52C2C16B1722DDC7D521558180781898A2E681A55693398BA712712B9C515D72255453A3C4212BB7B3692B3998D1BC6781CA28FEA483C276A92C219A62797A88702B2587005208512AAB304799A99ACAACEDB1699993150B41AA3291423BCCB6DFA31A7B42BE4997581B9AA54716CD5D62CB1B9BEA0E8165EAB6A6300242BB5A711F36E9A43B12E24492AB95218E084E1D2976A222024263E4C87CB93CC4FE556812096686AC72152F1A8A12B93C6530D08C99B9BE3634DAB9C93D27F2A4099304B4C61A4BF0FD9CB28803D0824C5058A515DC69C81228687376865852FE9DAA07E45A889E650E0C58FC2CB71846B5296E76D71105E87AB2714B2B82E06342218822642ACEA28700486709C43B2FC421EEDA5070CCC8AD1367CF2834E88EB8FF8D2059F455C2DA34843418CD3449497B753C92826C3174E5E304437C04C7F518FA2EAB149762C916B1C6A676A8D5B3BFF02B8EA9A366F1706BE888FBC40285D6CBB924249CE963646595573B5A5D0079FB9B0275FF031797899AE0BCCB3ECC32EB48BA3769BD5E56667CC02723C773BA00924A961102225F2B88ECEF333302077C2C761F48991755A83E09B7C3406BC8784031754BBAB6B49C361C93F5AB9778B39B9CB66501B63D8859AF0A00BBED32947B92F49961C5FC38BAFC9B0A763802C9709FAD39F040C6736A4C45A110A08822E26D93BC6CCB566A687DDB786F5D31378505F5D575746C3CBFFF55899C933F0052E1155B776B9201F0272BCF67C3FD26868BCC42B2B9361562BEC56CE1991AC7347B6BD500065E990B257BF20E1537988A560DC21AA652E3BC8650D80870A1A4190014FD1C43229043BC1068A5FA074FB5087581A932DDB5923730BA05216895BA1E67947C71AAD452861371A542325607A7752B8485C48FA9CE930793130996BC63D1B162517C34449F5263077A41F576150D8B062718E493242F57041F2DA6F271C0C5BA3A00A8C8FAA0AA9FD61073DD70ADB7991DF8A143E797A9CF6B0CF257CEB347DFF45CBF6DB25D5928074B3A6ED918FD35895BC7B93682897C0D322D46755962928F3390664499A14DCC025B1C0780858DB32826679A923E20FF56755A26604A2C8606FD7087218232CDC3B488423FA9328F9ECA8EACA9FB4311777592157B46E4476C885581F6CA524AD1CBF663A0591A7679E515DE5B65CEA3A0971C9139019735D421A25F7126A9BB66F67C177F3873BC5A8A7C06026913A631B1B370AAA17019A7CDCBC22A24F9E38A69637928788BED0560A235C2D8DBFE40DD56CE5DE6756CC4B6AFDF64050DA2EECD9953E893C53BF7FFB7A9232085A0222B9C863931EC3BDBDD51BE3F16D6CAB3009C138E0C8CB692563921BBFBFCC283E1D1DB36E99B9CC6CCFFFBFDB86DAB7B6C7CA02CDA227DA8632 +encap_coins = A0462A5F2A6C43D1198D54097E08D20C53D87B7C05DCCE5418838FA8E73A9C8A +ct = B4C5A25D15D4F94244C8F611D1208FE8725CE3F735CFD4DBE1E7DF8DB1AE770562526C87AEA505BF31DC0BA1ABC34765F92BB0958435D983BDE9522103C150F4A38C9340246AF458314396C5DCD5390BC4628046C88A21F693CE277AD6203B82B2617623A53DD992527B925632CE65EFE005EE8FC424B81F5647670B7E166E5E44344DA581C74D70D7256E1ED1FED29E9242A066EA433E2573722908ADA8BC0C27237C2D731F8306A5AF7E009BE26C0BB1A81D89D0C81664DA1CFCFE9C52FA434B5AA5895E522E120A2A03DDB3A0F89ACED9FD56823C8C90CA85692A3B9BF4806652D8ABC90D91010F27222355988D5ECBEDE5098AC0BAD8A79C8FC7D653F3D7AA8B82CC6BF9CC7E0A0B8B9D1B87191EA4F46F5C640F36202A2E63630288492867B1F550DE71FFE4EA9316A93732B5584E15FA390B3E5B0515EBAF833AF63922A2D9A7D5E50058C7963A6B2D9174FA529C0DF3F7D73B762D5828F4856345FEC4EC879DFA83D151503584036B85FB8FCA51D9A914C97B20D41FD84DBBB98FC5D4E90EE3CD76F5682336B3C7391AEA4B2A2EEE8A6B806DB1F273EF72CDC858B161E8FD92F88122377ADB036BE8D15C4B2BBAEAAA16C24823E8AFF5AE01D076C23B8632D89023504A8414162C8D98CFC88DA9036053A33E05D8AE9A20AE5D0380BEDCF27EFBE8DB34C22C854C5C3027D01BBD9E28F21E44843BD0E775E64D2A4ECF69C28493C169383B0108DFD174743DCAE18503F4AC7B0F8749D1CB5159F827B0940E0D2EC6C80AA88E193C6A774E977EE82623D0F3ABF67AF6FD1EA15770A3C8BE82D90ECA942DEB3AD0F193C9AC19E95D32FCA5A0C6C87BE1EAED7813C5887D1D2962D615AF3E855C5FDE3F0E9011A006970E0E9F23375B2C458E714E84639B54D4B244F9D708D551923197673B646E8DB0997E8FF03FB8D2EFA4D945E158EA37BFF849FA035077051801359CE3031061F924DCA3E7D9FA78CF76978292B1557939A98DCD5F4BBD53C64F03AF84ED5504DEA9EAEF07F6E8947A9E64A2337CDBCAE8692D22B7A81994B3A4EEF5216DF9851FE84000B8D5A997C0DA23D266DAD2B93E6D8554F31DC147003FB955D06931DB3BBBC7837FA9BE8668BD82EB3E54E7B9C9A78956F315692F249E0D63D60C5F41C273D3230344B3655873B37569D7D08B3AA218CA4EE4AB8784AC65E40A9259B1FC98D32EB3B96DFB69A8DBEFAC680A2215741411112DD8BC77871F685D2A5484900C94B92CF94644163BB10814F69BD062F84FA35C2AACC74975E4FF199E075121B85349244DDA5CD617BF3AA1FA31668C220887252E7BF83EDF9F1D6AA296E96478760DF433255344B483F2D9E2C73CFD7EE7AF5865665710842520DCF9E14990DA5FE968A26F9356C4C85F192655481195B484AC60433A7C1963860CADEED19E0966E93C378094252558BA845B933202A1EEA50E69AA3E560B6A8B3476991CF1EC068D0F0F4A65D7499BDDE0D31E4188C5A15367F68CD3C6A382218C2522D230158D9027B476E187E45B4E4E8FDC49953296CE8871D32E3E7F6340BCBC0C43D4E8ABBE7A1397A1BDA9F9BB549CE636BE0569D78B8EDDB697B1B697EC69DABC6A37DCF7FB1CB7901D58649E66F695E6BFB9DF1247F084BDE429868EBB9A74BAA33BE8CF41AEF6388C5D010935618D04F7A197AE7BDD69639166A36F34ABB1CC300D444288EF06F31A428976517F1B8C6634AE0F9E8D172B0E33562475373F1E4875AC1B47F50E6E4B722B37B773BA68E64838A58AF861FF0240E3D08A2166368032E8556255CDDC17D25C1989230D0BC5B360AA8137FC5D9148C468EF4AC78D32E9CDA0FDA8C2FF46B45A5FA7802913CD7F6C788A600295EE19EA963469FDF1953D53E292176A25F8F68002A0BCDE1650BA6CC2AE0ABBD8B49175467BF1C1C047055B46540A820622F40757FA1E50344C29640BD1A1C4F9B18C5DB9FB9DBBAF9C1C22FBA2564DA3CC2BEF911381064E22DC5B2EB2B074541D41ED280274610F0D6D329F99CE4A6B82226207F575F36FB443FD20115209477113023CA1C6C53963ABC2A92CA335307EE453C67A4EA4F06A74B6D863BB83673526647EF43FD0F1801BAB26B6AFC85F5193F973B7DC176541ABE4763C4583C9EA91AF88BD3D33C7FC30C91DF5DB8F75B4B6906668B4DCA400303FAA37D6D8767DEEF5BA227C97779C0F8FD91A79F5169396D4CD000753 +ss = 0BCCACF6EAA5296DBB232917BBF241E0354D770DFF3AD9B6181DA1C57344BA1D + +count = 22 +keypair_coins = D569B935CE015C85F792F8F7FB0D83C4F53B492959361DD4F75FB764D656450140B4E01E03F62E5F489C39C78D387BB33B526CEB6907734A5F788209AE3C2647 +pk = 8B2755C2E64D1FD9B79F5A2C7072419B955EE69A6F453B862528BC78905BCBB44ED989B5E71B9126A6A920E67A074B2960D6A3AB50128FD9CE39137B03A66968616F134BC485770E87F01304A17C70D9ADBD4159D67B888862B0B6052D9E8496084BA93D197766D10F6477679CA90FEFC6B13C7472020943B4B6305988BD9DF4A655799AE6C7C398341A4810C6698351F7CC4FA59C2B0A86418145743D2B850CD47F32502E00D96B0A67CB3ABABF62785B11A04DE252813EFA36BB83001EA322490A7DC5C54F32274B01FA71D40717FF917B81FC899E28ADC5C4A0C41742C7D043195CBF8393A84206CA1E87032C553B68776F9153B4E2E0A445D2937FDCA7539B8A2DC497A1F338802C073E891A3F834505A82A39F54544A49921E348934A028B7C54F11B26ED1A9CC2DB7C58ECAE2586168B120A2CF4487A6B34B8015E64816AF26B864B7B30B19022D5038F89431056153DD03169A31A18C5F6649F6B638D4C249B712BB9563E4ADAB4F3E83C5BD05E2617B4530161B5264EE996ABD5905E025820C7E1B1BC05188ADC559FD0A0177473D816A166025BB4402D7E98B7F148AD42F72920D24E024A4D7A8A9DADE92AE250BEA3C519AB515FA2581B1F88C4CAF62D59050E4AB1512C14B581D7C012645F89A0722AD2A1C2F2639B2B11051059549417D8F3CA8AE80FC241ADEDE55999222B05B7B7101885CDC149BE41CF9D2B9137E3BD0054CA89818E84811BC21944DD19BB2C1A54251992F2A51BA93A452C290272850225E9B2489324972CB6982C338F55192B4B87C2C91CC985AC9151C638AA741A476F25B3853AFB4B106830D882A1E8A26B1B1305CD045E112A7E7A723BA9B801C48358E3004BA12B347D28A571F8A6C05B7C81FB3EF2E324B1819DF549ABFB871E25053D3E4676C9088D277688D9F85DB7FBA99FC62306C0414654509A086D0247AEB60A9924A2BA77F76D669C1880C302E67B1E1E638E4F74628BA73E0C565BF7766EA68206FC779F9C55B1B48C350DD095A5566FE1A611EE9507E729142B384306527C7928A7C09A74E7C03925E87D71C45896444522A63BB6B78615003D5CF37CA7E55E82888C17F171AEB440952328EBFB9ECA10396B2044CE7275EE2709E917CEE9425EA4C8A95B163876A2159907003355323D56B62E243CFDC714102A345AF05F4E1052F9673EF57ABD43E802744316642C26809A9F07805EAD090A676204CFBA52F4F04715E5788A08754D23B7C5DB0D7D72AD20DAB9AD776D52D1954A99407EABC44174237B127C4670AEE6689100AB4E9E003A4157B69151431AA5BB9CF9350EAC8501895299D93D6078C6A9888A6FB783115803170C1F8B2C84D0DBB801473084AA130D5C9C99EAC4E00C2355A04556A26247A73B4A7121FD2CCA08168D2399A1A45B685A921B9C0AA339390068348A3A8CB55653987C691E9C86CD67C385CD580892A01D160C9E86A65BCF63A50777B353B948E70061D03154E5EA518BC687A4A6B6C83372C0D16932ACCFCB13525457979218041AF9BA2E012F82D79FC245356AA98B11F186FD2C538CB5159CF9562B5A5344CC1C44B3703A50850358C6AB4A5FCF830BCD2B1A0C932059F2C5A43B932E32A2FE9AB9F2F3B1ACE7A3C1290CCE509A5ABA7D50A172FE51C65BB142B54CA6113BAAACD44F3EB76AAFF63A474A74614A0793CBBD7A1C822292BD75B2CD9D7B579FA995B9561A2CCCCC1DE89E861832522412753BB03A193B15C7A5E04643A217CB6FFBCAEF5A3750033E2B0C42DAB154F96A4062751E79C4AED5A1C6806B56E59B91F2943DA9D837EF94C2D1A3767A68B44DB44DFE021C47EC37E4596B4668C0899A3A651A9004337BB79C68DD59ACC18A0B6591760576C819716560159908903A32111DAA1339D8A8C66081894A52465F542B011BB607177D6AF34D88EA80D7247CCBC269AD67A15DF94F42A22BC1A525ABC7480257694E9918597A8AABD1B537B163D6DCA6DFB77FDBA61949E3C15015B567FB88B509B43D4665ABB834263A47C5A6007E2807B267AA50E8AF44452B01A62B3034BA54BA910B018C629266E26514263820FCB3390DC117F9878C0AC4B3FF899D83D922184C42990088BCB03BA65993CA46C18BF1583F5599AD549801E934B8990FBCAA46A3F6CBE714C47A83C7595591DF9225573A23664C9CEA086428DCD19FF40A06186A41FEC0723953781475F648 +sk = 818B55FA5AC30A81891F3A3643924B2B046FEB6765A61CC81C9059D1F82F6A0067A102825C88A530D15F0DD95F0B4742D29ABE7044C62D45A05BDAC46130305E3C3417D67F60B92EDEB6B2A398119AD160EE3CB0FB52144435A5BB5412C0512DC6121BF6E72D0F87A3834AB5338196FDC950A3CB1B7354C4E50369BD4364CEE9066A221DFCD580F1B914C0C335F547748BB19264B7879F206A9C610573B8676BD0BDFD777A2A0CA5EC891A1317C5289784DE114E84C53B983778BF8933805256C9A9BD05A11AF8F5AC271AC3F1E635EB9A8263C855BB230F58EA3B7E8287D76258AA57646B97560E593944C4CB3567A2C382A795C991F69BC2DF2CBA8837C9A3B58A9DAC5E4D84B50722A144737EA38B14BE51C41CC55C53340ED158AB4A0B0F0A2612962B89CC2AA8B29198F2E04B0F0CB586F271C6414F31A71A45ECCDA8C597C38415D262571BF0A7BFA17115E0C7731C70C2D01C492C85DE16C511102C5A96973C724F3B58B504EB65F56116AA7779B76B2554736D9D6176DFC6BA007A590A311D4B86A7A6251FFFE6086AB3319DB48C4DCB91FE680F45A9480241242E4AC9861B62860837CC813FADF00751C8021F7A1C4D7A1E5F13BC3E8462F372CD7498197D172EFF98B1F8BBC37974B025295A80E3525D282FBA8467F8079D78FA6068E23BDBB3349A31506E474EA228C3927A554D7747BD3621A0343CB155BC786075C3015C3692C0FC65B194A12152A14153A03D5147B0CDB423A3B50ED6461813F9AE1FD63AB7A53031DAC2D0F87CACD1CB81461C8C08BF367C4CCAE7626343469D417ACC705546293498035195240387FB1F2E7C005DE000E530B9E21CC7DBE463E7D24ADEAC1127026843B87CF6FC1BB94674399B0636506B1ACAB72F623ADEF866F883762B5B4509CBB2BE142C5C550046E10D29FA431F9B7D977253928A8D2D4C33ADD899AD736B40CB4FC656BE02D90BF8D393D632A1AB509C432511F1CA16B01139CB0627F6503BBA75440414AF97A04BC5239567C060EF94C9BA7221D4612EAA640BDBB8B72E32A4668401AA79421BA68115261A8D94878C90A0468510B247968B7463FF49A0578044C5E9147F0739F6A17B18828BDCF56966B1CAA125CDE7BA6DCE939E56D350E896CA6219A6B8947E3909361754593FB8A85E742CACB74E1D45704FA4CFC91C142453BA5C08558DE1321AD6A6A2804769A0BF69770A1264BA5148B40A3A9BE3C513A382CFA3C244C9A138EA9CB8DA7627B350CFF87AB064A079876893D893250EF59F369C41F9EA40DAA5A5984C19CE06CF9BEC2947932133A4157BB8CC3C72A1FD25715962A9C88026C018B7202885224019466540C9EB5482A87E665157BE7722BC64133C827C20B97D9E692342F23FDB1B75AB2CCB6FA5973820B92EF1BB45C2B5ED1330C1417CCFB39FC6301B8A749D3613B3803A6ABBA20990151305CB32BA6A5B558265C2E27D8D49AEF3E91819920DB20360355919D5F641922233A1C24C0045172CB10F9564A029F07578A48A4D215248F3AC7A912EF8E56E366B03C567AB978C750D85454C68A5806AC38B7B3395F19FE78A001C5867D3E90E9B54BD63954761AB7F4A57B1FA32B65F285742C1207AA06818FAC83B928E3E14644DD6999F310FBFAC9E372B576A0470A9F9C5D2293BFE5255826C534C1800BDF348B713766507674AD820DD0C7C570037C6DA35EDBC625FF0223CEA7DBA19BF044699183C1454C2C2318C14EA8C451CAC1B585324C0F9489F94A9C14992ABAAA393273E4C48B740B764216AB16DF3B9EAC38D04AA3BAC2185F250A82BE093D2359A1DFC7F2E60CBF05B4568C86824808F4E073641290513B247EC7585593389C5C0459173CC74918C7A93798802AF77553B3EA32ACD760B9008AD3851B2A5632AD41C11BA095131192F37A06975294662E4298302622A236F57F4119CE24E5E478098F20C108C0AF3A3BD7AEC511391CF77BAAA9B427884B9AA88C17B81D387D65304D75B9E5D4006DEB878BAB34151B852A5757421B82090C44FBE85A81E076F4116C025977D9AAB838624B340975F7AD16BC10678709A026FFA53748021D00BB7759579C6657183B6A67C3112BC6A8870D56DC329B483484AF78A81B5F87EDC200E4EB24386B6C882490A87D168A62818D6566B6BC5848B2755C2E64D1FD9B79F5A2C7072419B955EE69A6F453B862528BC78905BCBB44ED989B5E71B9126A6A920E67A074B2960D6A3AB50128FD9CE39137B03A66968616F134BC485770E87F01304A17C70D9ADBD4159D67B888862B0B6052D9E8496084BA93D197766D10F6477679CA90FEFC6B13C7472020943B4B6305988BD9DF4A655799AE6C7C398341A4810C6698351F7CC4FA59C2B0A86418145743D2B850CD47F32502E00D96B0A67CB3ABABF62785B11A04DE252813EFA36BB83001EA322490A7DC5C54F32274B01FA71D40717FF917B81FC899E28ADC5C4A0C41742C7D043195CBF8393A84206CA1E87032C553B68776F9153B4E2E0A445D2937FDCA7539B8A2DC497A1F338802C073E891A3F834505A82A39F54544A49921E348934A028B7C54F11B26ED1A9CC2DB7C58ECAE2586168B120A2CF4487A6B34B8015E64816AF26B864B7B30B19022D5038F89431056153DD03169A31A18C5F6649F6B638D4C249B712BB9563E4ADAB4F3E83C5BD05E2617B4530161B5264EE996ABD5905E025820C7E1B1BC05188ADC559FD0A0177473D816A166025BB4402D7E98B7F148AD42F72920D24E024A4D7A8A9DADE92AE250BEA3C519AB515FA2581B1F88C4CAF62D59050E4AB1512C14B581D7C012645F89A0722AD2A1C2F2639B2B11051059549417D8F3CA8AE80FC241ADEDE55999222B05B7B7101885CDC149BE41CF9D2B9137E3BD0054CA89818E84811BC21944DD19BB2C1A54251992F2A51BA93A452C290272850225E9B2489324972CB6982C338F55192B4B87C2C91CC985AC9151C638AA741A476F25B3853AFB4B106830D882A1E8A26B1B1305CD045E112A7E7A723BA9B801C48358E3004BA12B347D28A571F8A6C05B7C81FB3EF2E324B1819DF549ABFB871E25053D3E4676C9088D277688D9F85DB7FBA99FC62306C0414654509A086D0247AEB60A9924A2BA77F76D669C1880C302E67B1E1E638E4F74628BA73E0C565BF7766EA68206FC779F9C55B1B48C350DD095A5566FE1A611EE9507E729142B384306527C7928A7C09A74E7C03925E87D71C45896444522A63BB6B78615003D5CF37CA7E55E82888C17F171AEB440952328EBFB9ECA10396B2044CE7275EE2709E917CEE9425EA4C8A95B163876A2159907003355323D56B62E243CFDC714102A345AF05F4E1052F9673EF57ABD43E802744316642C26809A9F07805EAD090A676204CFBA52F4F04715E5788A08754D23B7C5DB0D7D72AD20DAB9AD776D52D1954A99407EABC44174237B127C4670AEE6689100AB4E9E003A4157B69151431AA5BB9CF9350EAC8501895299D93D6078C6A9888A6FB783115803170C1F8B2C84D0DBB801473084AA130D5C9C99EAC4E00C2355A04556A26247A73B4A7121FD2CCA08168D2399A1A45B685A921B9C0AA339390068348A3A8CB55653987C691E9C86CD67C385CD580892A01D160C9E86A65BCF63A50777B353B948E70061D03154E5EA518BC687A4A6B6C83372C0D16932ACCFCB13525457979218041AF9BA2E012F82D79FC245356AA98B11F186FD2C538CB5159CF9562B5A5344CC1C44B3703A50850358C6AB4A5FCF830BCD2B1A0C932059F2C5A43B932E32A2FE9AB9F2F3B1ACE7A3C1290CCE509A5ABA7D50A172FE51C65BB142B54CA6113BAAACD44F3EB76AAFF63A474A74614A0793CBBD7A1C822292BD75B2CD9D7B579FA995B9561A2CCCCC1DE89E861832522412753BB03A193B15C7A5E04643A217CB6FFBCAEF5A3750033E2B0C42DAB154F96A4062751E79C4AED5A1C6806B56E59B91F2943DA9D837EF94C2D1A3767A68B44DB44DFE021C47EC37E4596B4668C0899A3A651A9004337BB79C68DD59ACC18A0B6591760576C819716560159908903A32111DAA1339D8A8C66081894A52465F542B011BB607177D6AF34D88EA80D7247CCBC269AD67A15DF94F42A22BC1A525ABC7480257694E9918597A8AABD1B537B163D6DCA6DFB77FDBA61949E3C15015B567FB88B509B43D4665ABB834263A47C5A6007E2807B267AA50E8AF44452B01A62B3034BA54BA910B018C629266E26514263820FCB3390DC117F9878C0AC4B3FF899D83D922184C42990088BCB03BA65993CA46C18BF1583F5599AD549801E934B8990FBCAA46A3F6CBE714C47A83C7595591DF9225573A23664C9CEA086428DCD19FF40A06186A41FEC0723953781475F6481642D52117145EA2956BD5E446B895609BE84A9344FF0F5CD1EC62AF9EA9E3C040B4E01E03F62E5F489C39C78D387BB33B526CEB6907734A5F788209AE3C2647 +encap_coins = ADF233A4311B157829D49A0BCB633571230F7060F3CE655551AED8BE8961D1CA +ct = 121A8EED6548E1C0079687589091E3CDFB69DFC9431545347A3106383B74AC5561BE7BA8959339B474D03C7B04C9D32E7D75E4D609546C6A410E446B7ACBA0AC56D1F6C0B845E340AA628440958C5ABD4C98102D88CD57F4C3361FD6020C407AE07162EF90200AB836D5C3D35333AAAC0A45DAF23FB0F22A7D6D6D2CDCBC9A17CA50164334EFD163DC932C1F967A886149A8EA3FE345BADB90BA4D7E6FF41027F99D55B830478EC3948F11F5188ECDB6E40E97FAB96FD63FA8C2DFF3C0B3D0F21BD7C2B28F0DDB3A8AD589AF49CAB435FD421279A3DE57B9FBB3727B51977DB2EA591924A995B273897BFC667E74CC902FF77514DC9F79EF70F808C96D60F3C05A1DA839DCDC7B0BDF01EAD26417CD4193320FD38EDBF1FD3802B0F693393BF4BC10B38B9ED3DCE25DF46501BB5291607265B38218429DE402741E17914C84F4EC8F74F4BBB3E3DA0594FC49F3A1F1D7A18F47982F53DAA5BAB9C20F35105DB0C65DFE84D59475AA58ACBA8C8FAD6DE534EA8BA777A6F408FAFB5F21A0D3175A0DCAFBFCC89C55ED009689A8F418CDFCCAB343D48C55E9866702C43C1FD63A95D6BB860536DB3F261FD5491C3EE6A306AC8FE57A770392F0460FBDEF08C4E30F4CD1C29038C12B4E3BDA991634CEF496C9A4F9748327FE2AF4039D2F0B09BC554896290DFD847E6E75D2C60E7BA76104766707CA4FFDDA5D6D92D8ECD0747AE3EF7664A3AD6D98E3F9A7F67159B54B8E13C08CB523AED46E54D1DADA42C1E99D0A6462E097163DA301900E7222540F2F54FFF19AD054C7DB6907D4912A57DF2695355ACB6A323125EAC1EAC006A7B8F894BB4AA8D56A679799B6F6E71566D91A9FDFC3498870492390EB29B35D3A1BA085204E9E0BB5AE089354F64CD30EF21A251A210CD1A138D9CB9EC53E3A8BE66633B9A1F2C37D05124764CDB9488706EE36A0A471B4EE2017E7EE9A075C475BE1C628187A86A45508526C9385CD95F92FD36F1B022BD12316630951D9468DCB4BBCE589FA5A7CDD5DB8178BF198DC3DFB9B4D943FFD7DD0C520E06F59E0957DA12CFD15B05003D8365D779D2894ECE22D60BE95B342442F2044D8DDDAA147B3A905A58735836733A8D65DDD6ABDF3B1EE484B22105949DF492C78BDF417372559FD554469637FE394BFBED3D79184F1A92DA25133A8C4277B38BB89615AF639534FB117C31E03EE669BDBBEA703C665D2284EFB838F0254FDE514B877789A7933C481B0F588A9D6095E62B7E36B5781DEA38AC8DEE71246A712C16C2A668DF0F6D9E8A35D745C1062514684771F931509365D8CCFFE8DB8661E2C0AF99B1D19EA229A0C67535C8788C1BEC5B46B7ABA41781BDFB15527B252B70981FB5B68EB994E8FA040A64C0BD427E1B2E69647EE842B41B06C42C3E2D49C76B2463D3F0ED352D4DEC92E8554FE5B1914543795046ECF75C9A8E4F7790BB0397081A10F9402C749BF6C32AB1AE13E467704A2856ABAA7EB294C125715FF0A2105857A697060BD300FDAAF926292D8196483A707EDBD90EA326BB0814506A116A58A65DCB0A2F0DA4542B8A0706E0871879CDF097914282BEE0BFE9F7D3A7B9615D39CF20DFEA7591B5264311A51CBB0923CE2CA8FD09A778BE588A8D6AFC1DDD1BE4571C67D5303B5C799697A17A83CE9890531B8C1A78894F4F2AF9F16193684CC6E0077ACE6C450319532B892530BBD33A8F0360D1FD2505E90134698C52D084CEA86471D751219A0DF6B717C75481F755D265D66CA7762DD33D37B8B3DFA54946B119CDF9F5905E8E6337859239BE8CE7D5D683BFBC8B6889A812E759D8AAA8E849FFA3754FA3695E03E03988F69F7501F01BBB6B4D678BE4868AF5C49D1874C40FFB4B74019A24ECCBDE1A5C8B6BDAA8A06B014CD0050AA83BF778E67DA33379EA70C65BBEFEC7474FE5033C1298658EB707903BD57E6456A87E33F73EF58557D3DDAADC7D28393F01C539685E104815B467D735B360C283437979649793BF4015BBC7751EA483686494C449BED00AE238F892AE04ABCEEE5B24D31C8CD4BB4944EA800D0A679E727B8EA93672E6346AC50895488D1EEA572899427DC0C6B9BCF55BAED0A7A0ED3A8E13B366A4D5066787C1FC2793375670679BAFD3C5C9260E2813F71446387A267DE7354C69685F2C6C9AA128B0A44A0C07E53C8754EF6FCDADF547FF77364EE9EACD1D33DA8640C13C4DBBE +ss = 668E009EC1565A4A71C365345DA260F99FBA8C2EE4E2D4E9210A3D90864266E2 + +count = 23 +keypair_coins = 5CBB141C2763425C274F7404FE530D9116E08C33F9F200A20B011CF563A28990870A300648D2B1F1A637374278BC62B5ABB56380CDE88EACFBADB3224795A125 +pk = A7823BF24C9FED4588355033F5B22ACE43A30478209A8965D587C91428B92FE034A1714535CC458C5146AA8B8C7B2C047AC76FB3D306174CC370873E25EC207DEA86D8430A7ED130701C671697185C385DFE0410D91799EE546B4D6347DDC146947A9A5692C64445AC60A9259A7596EE8421EEF78BAC115DC95067E002AA89B814DFB1498AE7829517C8AB587AFEF52D4F4068EB21686E4416D93C51EFC2AE6EB1CB1304228728769F08A4BB64893231C4BE107A6DE473AFE6A1A3969B610A87FE2BBDE35C31D1530B05AAAE1AFB69C07B6C6D4753B16588413AA588726F80CABAFED3323F412ABD2579096A44C30991EBA87BB4D667BBAB5E848A0BB178441AEC4D00477310EC4E33677925985E1AA7B9965A103CF14FDB004A60406994E0A2FA5A5DF0465CBB11A54298CFB109488564AEA65B5EAEF171716719916A4615D3AD708C8A825874B7CB671A5B61F5C3C9B9325FF964046CEBC4991343B0EB199B9099F04C97E28AAAF0BACDEB4A007F956530C712ECD49017D73C8E498FAB650608106174C7141A7373E27B3D11C2B06455B4F1C1471F8A0BC73C4299C47EADB75FA75210CD813798D84AEA44A1303C95EC02CF4602A496A86BA364BABEB7603195C7CAD66D75B46D763094FB0B2760B048AF1262954B5BF5833CBEBC2ADA183BC207290F094B6E9C2BA622914604AEBA35237D17606D1B76330172F74A06821B07D8348979070B31EA32166568C261C91DF097E41CC1AE4BCBD3E1525F179F8ACB232BD056A5E18ECA475F40E0CEFEA85D664BB87918339F407831C27DA3EA42DA34BE7BE4BEED4C8A5CA805CB209D51A826D32C2125E204F5C87944372C3C1952D5F8B1873C1C6899B85748448116B3AA85156DF381371763AAB6C8B801B19CCAA1F87C4097C3C351C62EF1C697763915EEC69389671081562E76701D805B2A62692B6F3A17FC163339F49EDD205E65AC81FEE42EB689726A960711E1B2AB7C15E385717946C27C86116B635873324BF2FA21A5C194492571AB5A7AFA1427AED8245164A23F2518A4F4016BB9AF0C14A16AB67675767D5A165948261F4DF2BF1AD7CBD259CD31944CB7880920DCB227D62B17CBA049388B340173221559F0B70BAA055CA7EA75B0468EA1997FC88C39E1547350EB4F6D7AB32142888D6C070357B6E8500C43182240863B002BAD191BC0E189C0A0F481AFE268DD9ABF93938D572CAC462C710B67507A913936739E83407412DB51EE778570692006A3399E12BEED2C2BEF5A43BF356A27D1222F267B2D6CA313315905B7550C7C150827C8EEF97803159D86127029388FB3B733A6F1B83B638DC08778AE53BDB4751EDE5CC520E7787E86CB3E5C64E69A7FC0B678783A702EAC5B7CB75E809B61F3F46848B55F4224BD2F098FCEBC7D5E98952F410E774B520413A847046149E1A36339C8807CAE45144180A2BB7445626F1B2BED9C0D9FDB5620450B69FBB972F6BECCC9CD12591B22957F94F47AD7022ACEC4233CF86E25631B8E975EEF2348776207B56ACFCFC5B1E43C3E64591FA4129077C4028C7B5C54734945A7BC986A4F4719867F219978115AEAA06929812506A40426F43A899892DE243DA4E9940DB29CCD421FDE03C80C79BA1C1A1B163170ABF21CC32130C19BA2C9F30D95B78D560344971CA8FC9CB899B082FA21AEF5110B32DCB13A369364D44F3AEA0C4E7C49F22CC0A3C07B0C134E9CA3BDFF78283592050F8C99F0E467ED39CC32A9CFF97CBEBC90AFF850A1B1A20837E02D516033EC9CB4337A1168E013587BC4DB0A7A4CB52C3496C0371C1699520D05C68D81885920812AF1841EEB8570783AA6CC0088D67BA2F7ACB19370B1A9E2066528BF38830E9C72C3021B6E49640805979BBF662404236BFB74717659268D4129943120AEEC2132C5A205B7B3A6B8BC6C944FBB035315C24666F1AE53451B52B9B850F15E0C71A086391741CBA130D07B96FAA70971A2D974BD6219A2339098356BA3B573A33B2837D3D186A26559B0D2325AB88BA9E0CCCBA484A14B2F73C54204C3111E846249A9CBBBEB8E7D1B448F353FF7A35D1600A6C8E87C06F653930BC1C3796FC0E8001A3CCE3A37745382467F614AF24C832757390CD0566F0C443C7C5539C72927EA1394005CE4B8BC223905639B1C7BABB06A4FC08AD10190D2A178865ABFA35607E1A88B47EC8EA71B102D7F1567BED46A +sk = 91C087E623025864C3C5D9049E865C6226CDD2B39F8A1578EB69A864CCB2FA155DB32702DEF5B50E973495997E18C6C21756568802A4BBB86C5018016FCB0655B09E6A4B39A8BA2D70E32BBB255BDD296C998A21F5716D49968DD02A9C4F4CB9DC72C874C232011225F8E8840F7589C2D285C1E72C8588C0A33A502A385D0527186CC6809185408E9C7FE6262725528A439332F93A5BA2943E6DD7B30D79A25939A4C0802BF57C755A5A0EBBDC8390F8AEE407A541C46CB1530FE1642215556D20AB942DDBCD1627826648ACC3FA1367DB0B45075470196B46697D9EC6974F477EDA553F80B701E853398C69A6E4970A746534928631E6B811E533A4D1E89CDD6969BFE0C861D2CEC3E16D0035BB50573ED61B5DBD45C8C5B223CEF4266C5A6DAF104949EABD27D3319BF12A7AAA4E5F636732B28E902A1098972977D98C00A267225B84AF1C8C404A52472B8D1A793E370B17A9935EE590331256620E302E390474DD6A17D17A50291B6BB940BC43F89FDD22109A72C8ECF9ACB1E67EF6A423396225E6ACBFF2880C35673135C5183BA37DF968330CE992DAE04E9455267A195A41893194BC51C67393251A11ED3C0829D99A3D23CEAA387208E00974E73178459BDA539BCBE89F5EEB05EE21BE3B1159018A3262120C21D4972ABA1A1350231D3A646BA70FA5B641EBEA1B130470A5EC7C40627035B03D15696BE1313B458CC9AC8460CF281A6976A9D2CCAEB9FB157300B4289A55ECA386D3D8A7D16C21102AACF361578010042C3A6397E2CB2EA5224141A1D451B38FAC14D7B64BD7B72DB17408B0A8906CEC108BB926DF54299261B6B5C6A636B395ACB651CE6B6018EA9C92C1525DE1624B5570F7000466CC09A909CF36F34687265B61DB6BF2882514705FB37346385CBF4DF33B98686E0189BDDEA7268F598DB1B6CC7B32792D5546E242A807E760ECE7080392823004453048C6F743B87C1670C6D10E3001008A24590294BC9AC899BD588197530FEF9C2B85AC66520A195C77A7AFF61672C8CB74C07D43A2BAB7A764E750663091A005C9AF8CC4B55D502169D4293E79B365F60085B1CC2F4900541588819B5EDCAA3B80253178639F63A3091701C7E7B04E95435BDD2114BBD3ABEFB23355591B0FF102BC94B56B338083B82328712733F2762C5B1D0845073CB3B46AA28CE2CB282A4347F2118A6E062D7E8524147545488A01378A853D489C03EB0C6527307FB0CA5F7AAB6C328438D33CEDC10733AB8A68C7AB88E0B06FC51C92C557FD59488B6245796B7DC291728121BC7643AA5D56C483186CB55086D7E8654691CD5EB97580F0A553A2613C486C0B9566A6F05F9D2B82B57345AEEC1368CC126AC53B9E794BE471C16A498B743C1848A14D53478FC341A0ADA42BC2E0717FB6965737876468515195050D64079D624DA1596F88819FDF95653B8217F9885D151821A9529420AC95DD928FC429674025882C9758226194615304F1F5CAAA456182C1BB11F0A02B6C758EEC4AB6441879A42450A024559697C4494D8AAC2F7045342234CD8081C0077C9232E66838460EA26274329988AF3A82B898C4EFB033FF4101F302A898E84BCEDCC45E369CD1BB7F3517280D6655574C5A13F43E3F834632A041D31A7E01AB4E0F06458007063EDC8E9D9B31C8CA7FEE525656FA4EE9D36258A0BFFA5A12922718DF123E7AB52CAFF3845A801222F23EEB946EE00A4A78E0261A6C2A0C16279B5406BF7BBF4B7C3CDE22A4BEB9C6837C83AEFC90C7B0BC21EA3D5854B37DA36059DC4094181065D873469CC40DB021474ABBC8D80FC20A0AD1237DC13716C6A735899BBC68D71012B40505CA6C386CA92080B857A7BF8908476008C6C5FB7E30456E26A6A0C247A6A0A57049C1CE825154D2101F57A5C59DD44D71058423D6449327AE1FC3541EE73E31043ED194B89509BD7C113B77075BA694064DC442FFF94A2607A0E25009920A438C537EA21477B39863F38903729875F4E5BF9B05BAA0DC492E9B15FD729CBCEC5DE2D6AD727408E69A301649822E52681721A264696D8AF076423BABE37AC6C7676E74724804A04CF35CA840E206D99568BC393BF817A8C6A5CED2B9A76B036DC17996C6CAB32223AE814338B7169AC1824F129A71EB50A554F8B684B929D9859CE8C019A7823BF24C9FED4588355033F5B22ACE43A30478209A8965D587C91428B92FE034A1714535CC458C5146AA8B8C7B2C047AC76FB3D306174CC370873E25EC207DEA86D8430A7ED130701C671697185C385DFE0410D91799EE546B4D6347DDC146947A9A5692C64445AC60A9259A7596EE8421EEF78BAC115DC95067E002AA89B814DFB1498AE7829517C8AB587AFEF52D4F4068EB21686E4416D93C51EFC2AE6EB1CB1304228728769F08A4BB64893231C4BE107A6DE473AFE6A1A3969B610A87FE2BBDE35C31D1530B05AAAE1AFB69C07B6C6D4753B16588413AA588726F80CABAFED3323F412ABD2579096A44C30991EBA87BB4D667BBAB5E848A0BB178441AEC4D00477310EC4E33677925985E1AA7B9965A103CF14FDB004A60406994E0A2FA5A5DF0465CBB11A54298CFB109488564AEA65B5EAEF171716719916A4615D3AD708C8A825874B7CB671A5B61F5C3C9B9325FF964046CEBC4991343B0EB199B9099F04C97E28AAAF0BACDEB4A007F956530C712ECD49017D73C8E498FAB650608106174C7141A7373E27B3D11C2B06455B4F1C1471F8A0BC73C4299C47EADB75FA75210CD813798D84AEA44A1303C95EC02CF4602A496A86BA364BABEB7603195C7CAD66D75B46D763094FB0B2760B048AF1262954B5BF5833CBEBC2ADA183BC207290F094B6E9C2BA622914604AEBA35237D17606D1B76330172F74A06821B07D8348979070B31EA32166568C261C91DF097E41CC1AE4BCBD3E1525F179F8ACB232BD056A5E18ECA475F40E0CEFEA85D664BB87918339F407831C27DA3EA42DA34BE7BE4BEED4C8A5CA805CB209D51A826D32C2125E204F5C87944372C3C1952D5F8B1873C1C6899B85748448116B3AA85156DF381371763AAB6C8B801B19CCAA1F87C4097C3C351C62EF1C697763915EEC69389671081562E76701D805B2A62692B6F3A17FC163339F49EDD205E65AC81FEE42EB689726A960711E1B2AB7C15E385717946C27C86116B635873324BF2FA21A5C194492571AB5A7AFA1427AED8245164A23F2518A4F4016BB9AF0C14A16AB67675767D5A165948261F4DF2BF1AD7CBD259CD31944CB7880920DCB227D62B17CBA049388B340173221559F0B70BAA055CA7EA75B0468EA1997FC88C39E1547350EB4F6D7AB32142888D6C070357B6E8500C43182240863B002BAD191BC0E189C0A0F481AFE268DD9ABF93938D572CAC462C710B67507A913936739E83407412DB51EE778570692006A3399E12BEED2C2BEF5A43BF356A27D1222F267B2D6CA313315905B7550C7C150827C8EEF97803159D86127029388FB3B733A6F1B83B638DC08778AE53BDB4751EDE5CC520E7787E86CB3E5C64E69A7FC0B678783A702EAC5B7CB75E809B61F3F46848B55F4224BD2F098FCEBC7D5E98952F410E774B520413A847046149E1A36339C8807CAE45144180A2BB7445626F1B2BED9C0D9FDB5620450B69FBB972F6BECCC9CD12591B22957F94F47AD7022ACEC4233CF86E25631B8E975EEF2348776207B56ACFCFC5B1E43C3E64591FA4129077C4028C7B5C54734945A7BC986A4F4719867F219978115AEAA06929812506A40426F43A899892DE243DA4E9940DB29CCD421FDE03C80C79BA1C1A1B163170ABF21CC32130C19BA2C9F30D95B78D560344971CA8FC9CB899B082FA21AEF5110B32DCB13A369364D44F3AEA0C4E7C49F22CC0A3C07B0C134E9CA3BDFF78283592050F8C99F0E467ED39CC32A9CFF97CBEBC90AFF850A1B1A20837E02D516033EC9CB4337A1168E013587BC4DB0A7A4CB52C3496C0371C1699520D05C68D81885920812AF1841EEB8570783AA6CC0088D67BA2F7ACB19370B1A9E2066528BF38830E9C72C3021B6E49640805979BBF662404236BFB74717659268D4129943120AEEC2132C5A205B7B3A6B8BC6C944FBB035315C24666F1AE53451B52B9B850F15E0C71A086391741CBA130D07B96FAA70971A2D974BD6219A2339098356BA3B573A33B2837D3D186A26559B0D2325AB88BA9E0CCCBA484A14B2F73C54204C3111E846249A9CBBBEB8E7D1B448F353FF7A35D1600A6C8E87C06F653930BC1C3796FC0E8001A3CCE3A37745382467F614AF24C832757390CD0566F0C443C7C5539C72927EA1394005CE4B8BC223905639B1C7BABB06A4FC08AD10190D2A178865ABFA35607E1A88B47EC8EA71B102D7F1567BED46A0163017A26DBA83777C4C0F46F31375BA02680FFABA588A9FE91F97CCB99C445870A300648D2B1F1A637374278BC62B5ABB56380CDE88EACFBADB3224795A125 +encap_coins = 9DB1C63EF94F37D77F386DFE00D619E2D6789FE8237028E79B7B1EED9C16FF5A +ct = 5DCE243C9610EDFE570BED2B4CED7381C35982D8103C344AE584FB9A73FB35F17424F6E5CF4CE93BA82A4F2C6D976BE7281B8ECE9A814072822DCC6BBE6B72F3833826D07673104B7707B2E9599B85E8B087EA2B26FCB89C62BC7694FBA0A6EA012829380327E351BC44D36C009826446C4F1EF21D799143E8EB95490D4929305F0E1A3AAD2035A8B32CBE0D725BA83099308791644BC4E6258E3A00339E4B9B15E1C9E35BEB754EAC6E41B7E045E055823349154214D0498386CC0CA85917982419C177C3D25D6DC3AE9485AACA74B629BD4D4964EE9FE9F5D58CC541F57BEF4E21360BF306B0F7A0F8CDA8EB0975041AFD79DD2A2FE2CF0BD2C5D974607CC0C9B6B153948975CBF4CB3CAABBA638AE00AD92B50CBB5037F59D0B389AE571EF026674548BB7DD465427D723A6905D2216316BE1894FF79EB5717D9A538C3937895DC6F099D2591885165546B7F6D5AFF851EFBC606312D1B84587602C49EC6A24E8AF70DA33C46F3F4CB424D0A049CC6D4F54FB4DC0B0CB06FE678969431031F0DA59C62BA8CBA7A75BC45FB0DDF0077B6B5345DBA1EB5D29C9D42C8FAFABBFDE2A42D83DBC46AAA6E4D68A1FAF2248A900E856EA3C83B5B10460F86F108DFE54D75AFCE5A4424466E7B1EA275F6A89CBF949918AC66C78E2933D538DA62A7836AF7C5A14A9660D42B7BB971F4AED00E6DFF585C59A25D7C596BD7AD19233B0F59C4E2B74CAA9469C55CF1776F2443282ADD5072F229EAA6E3551C1B6A8DB570C72874C456F3053C9B4100326B318A06F3151510DAA577F25F7048F789AADAE58FF0158FE6A91F3ED80077D49FE82F56A7EB914C85DEB5EDECE0CD69827B21D6927C8E7D69D678BE0344942DD99BFF1C70E113C8A091EFEEFDE2FF1A796C01B72057D068DB8A07886CE9C13229D2EBE1AD161E8149C52B20AD812213AEEE72DF274BF4CE20A01706EC9274E2AD9A581E7690C4A229664F1D332B3660BBBB84F0CE18B3D63F76DB3756BB7ECEE5525504F5F69CD5053F15CAE529AE16C3581A230A95707311B3F58F8CD242DA0A9A6B5B0441117E45E1CF9F09C25BD248DFB6A9796E1993B2F65CC1AD6785BE7D6A781DA771F54F4FD93CF218D87B12A6662AA996FBD7291514B28C00E70843E00F529753A24E0FB290B8B938556190E4C47742413C1B77F81F66C588BC76FC796CB086BB7470C198ED43A5B296C9E0CC66430B7B6F125FCC871823BF932772BF96A852BDA78225BA316241A0D7434F1686DAE4DE5C50114B0C3BD0DB524E057666B6AB8DAEBA7151BB214CCCE79CB31C459C879C1BB8682D2ADA0A811F193211A1B8CDD367F9DD5BAC30E3EB1FD476A6F1C58F4D7CB5DC11AFBAEDB7E523F664A2F53B615154542A423C651ACC18273B5F76B6B928B035E465928B8ED9A71CDD6EAA0ED56EE7B1F6FF3EA125052E144CA7E1E8A8517F39D0C1A3DE2670F1C7A425759CEC541156275DB9494074D05A51939C169A6B9C2AC30641D2D69335EF0FE715F6450E43EC1D9C8D258D4BFAB7EFB4E7FCF13EEDB9C489C8DC71468E7233768C3FDCF64467AF74C97BDCBF5A11E10064DD672618DBEF96A0830445F920A2DE130512649B4561DA0ECB7C9CB5DF08BD6766EBBE5C68D7A9145CBDA197BB15DA759D4DB7D7A1528DF7EA311CC306245BB705D30478B706960D7C32864FD675945BCD559490375E95B1880B163A3A8C4F844246AE8AD786473F5DC1D2C08740298593945100EEA1CE86FBA6A8DE0AAF45B18152178DA59F9D1021974E5AC291760500AA157698417DE4D0DF1E0CA85E32FB7D5E7D4543BF51A3431FDB6861C89519E3EB62169147D93DE51466FA292834DBA9D4AE79E4C839474085BE2D1E6DA384D7FE7366BD654E4B6AC38337B4A7CAEF3BB863AA632F8F64D587E4D43B6CBAA628F880285D258A0DFBD5733432E2DFA6216DFFD19E38E94E594F235BBC7C292B1CE35FB94267B4F86A6B93E727E38D4728B3148853B8C5B8660FC65693A274C67592CA40796EB11F5E6A6B5B453974777580222054B3A49066F481B0AD8D81D35101D6C069C2D2C4DE5CB4603CE78F12CAB91A0488C5E5418E1097FE8A07C2C39EB02701E242071FCEE8025F8D050FAA2C21BC9B271B9E4F7E703A43B5A7A45C6E07CD9D621DEBD16C7E60C8499ED17BD35B5ABA4C75B0A764D21BCAAF43E23E4ED62010FD41718C557CD5181FC22966A +ss = EE12D894AAFD4C6EAFC0CBE30AEF38D3F651C399A29DB17B773C35FF3BD3CAAA + +count = 24 +keypair_coins = 293ABB6D1C207927945417CF84883EF010823E11B487ED55239E466E83696D0C0914D81173BFD7729D81603DEB601C93969B81C401E2B7B922B2873F8AA2D998 +pk = 6BB90F94C8B62859C31E146647948785B225CE860769FC51DF7C4310984254F927B1C200834876B23A635869C90DF39BBE36094BF6B4835750A6F3788BBB7A3140A7F85B1C5CC8BDB386A0F15297CA9C6462B21DF7C11845788C130313C642BA127C8DE50695E1EAC8E245535CEC4547AABD3F455FED566B733C499FC913EF440ADDB37107E3032476AADB55CC0CD93E317A8CE2439F2464278884915C54B97E882DC44817488994C0109ADAD13C5102847BEC7730A57227158C4AD1B51AFB66D5C01BB6D2CBD1A7083FA6B049912F736824AD40A1ACB22F2CFC9C3D145545BB6494D0159C40C12BC84E8D22BB8E1A76C237020949698175B21410CD4C7BB567C52B08FA6253A50E4F1573ABB18F74ABB9837CCE85545F8992C9CFAB66F800525841948B18B7EF3A2B0961C4C7E8902ACACCFC865B45A5209FD5A4DB705F94122FC69196E3B56139173B32EC9063C4151B2819BF9C7B5D7626B01CC420C86D1070428D4A774177035269A46ADA8EC0E02230FC6B066C57DBB875A8F294E66166F3D7B95EDC3AB66B15D7B55DAC16182C13B371D82C42B85313C65DA7EBA0920914ACF8A28F44ACF54BBA1EE77736C9763036C73F4A56ECA95DA849C284F1589AF30D00DD6893E70D571700B9A07BAA6083B2C50EC4EB95E2236402F7B50C87A9305A8B5EB25664D74D4337AF268B48BD1855574405EA6237BC057E191CC6743742DD5A66373B110D380BF7C03039296F56CA700AE07D1A826965D55D86C19902762E75F10CEF33664F099F8440634B2299A474BB8AF328A3E011BCA75DB90B90C52C1699C1BDCEC31565E411FD1C6AD2D08EBA8C50B66A57CF10A98E2335327B011A4C3E11F58415B6C38F1821A69671FC2481920C896B389CC5783C5FD3B7D974CE03375142815E86E13ED4E052B1E009A25A2097C02F3EB337C3C85551BA14E1C22036916CB993612C809BEC807DA4E25CD8094C36720D376982650A986396504893BB0D82389886942ED1AAB5BACF3957AA8D191DC56C4049A0714D89BC3AF9680EE602E154B5E1C35F1C0440EEB0CCAB22103945623FC201939AA71F99BA8C409BFF83276F84879E590D9A448E1F052188285DE9668260282E8ECC630C15AB164271ACE0C954F13944FA9F4EB3A848F11CE7F0A439BA07A469720D4506ECF6CFA241136B469C12E48F137601F39A5ADACC54B094127D2C27FE38AA461C76003B9ECDCCCAAA2B16D1E9A164122A0B1A1FB751BFEFAB4A1640A792D2381A74AAE77084A4E3CC33275EAA595733FC4A99D43BE88803244B449AC71DA53B2CF30043C929811C9A558A165DA241AFAA8C45B07C27876C8FF77B721B21022C958323B41FFB606C656519875B8BC6E897854C08EC10611B954C693568070528824B509F83A3E6C505B6E3203AFA863BCA408403C0AE86A374C1613917BC06B94DDA73A8E0C98CF54A60CEA727CF1334B324343B2C47DF4A843E467989E4160E1611C1558928717D794290CC3911EB70200F51152D04871CA46D2753836791BA98AAABF697ADC925A827CB7F3AD01069F5748778B5946C78EF9688E16A5326577AD5A5773DB939D2631B04545C530C9B99141F4D213158D213163BCA141C7949F24958B9AA67089488A732189CA923301143A1728A6707A6E8AA5BFC4D05B6CD1971290114542386231CF04C2C80CB28E50026C66763A570D173612F142EF1EBC6CC9A82F7FC10B7104B7ED6B30C95C5A63A5E1E52450C1C26CA11613B2B3CEED10968E85C0A9539C28242F1B9A083C0109036C6AA9349F201648EF14D67094AF9715422885C7D69627702943BF0955D90496DBB0C0F2B3137B89C62903AF74B2783B11748BB6DF46403B69701E1D9A1E8A63F01CB969FE9CE00D7B539159E75372DFF7A85BA660AA8471ADE291FC782403F16BC2BF1C4D1A138A0160CF44246FCEA7666276318940624A32B4AF5B15F8B4DA5A05557BC819DB8884825B8C2770D6636A16A296DAEC0752E961CC4D11D61826D883A61F74203006A83380A0F9E5280FC1B831567136D178A906363BB801411E069B461027A0887DD14AD80867EA0F595FE1951F1CC8403198EC483632B189A0BB3979BFACE3F9A5401916B35E996E1336CF13249D0CC33ECF610F9811C27AAB55C52944298C3A13158C38501813C8D7F9447579FCB9BD38AF3B64CC94782E299E1D98E68F8BCEFA20D1E8DB8552516 +sk = 817471E55466B5BABF92A2AD879C9C951BA60D230ADD630984B2528F9AA07FF755D7D79A2F9AB53D8986FD90895D5401DD97AD3F7A922516279B5858F2087E6491B7BC42B8A52A5952F23622D5603A0A3152990CFD6AB9CD863345D8BE5E295C06B79332B0AC89282E61E5534FE0AAC95ACA140398B64175235B94417B8799A4B6D6933A8B815BFBDCCF886664E7B8C5CB0B999BDCB2BDB288D569666C421E2A950D198158C0D36CED3A74D9032AB7A2B9F276BE025296A773266E516826480E520B844EB69710120373A94705F9030CA200A7F85A94DB1F55D46081570925A476099C3EBDB32C532A6D8F16BE4DE6416D0C30D450808CD3C08131A92551985B92255282BE6087703F182156A13CD144ACA3924FD15492DFD253EE5C9E78853590930521E843A0E37A26994197B3161EE1A60861C344720286B6566796787B05CB8FD76A419C364F1830FE2BCD3A2970E2DAC1DBBB3803F8053591B29BF64C2DC660EA9938200738E2C0C318B77FF86749C43C72F9667D80D462D549BDFEA30CB0D9641B29308A461DF72914B4B40213B62E68B161F83224C1A45472B5464F97C6D6371C69CA0D520426DB8C1E938A934D50AE0B03BE706B74CB8C674EA955A4D8AE1F6C0B56263041FCA1871A5799921C45D9BBF13C01F0A9C5D973086B33ACF923A2721C8B2FA7B058BB2E64F43BD80260B6BB19F26A4F55D53E7CCB1BFE3AA424976132C3B4B3A00908E722557A3657D285C8580EF45B76A207CB31A71402BA1EF280048378B80DC3312F78A74065B2DC873B22D37990E465E425B992722A25009A93A7A005D91B9460AB7C2336BD303883A151E829234C964265E42FBF8252CB89858D590CF0830E59C54021B83DA94884A173BE6BC454AD5A719252BEB52A4F7544A7FBC03CE9091E9ACC0568306E5BEC2ED942B39A8455FA341B84571AC3FCA43C14563F91395D117AB021C8F141A4EC7364BA4ABDD8896BC6B281C751A66C767AC960AB52058335E14E7FD8A4E1D44DE2670F9BBC67F682A0657530EBA11C31381897D989BD392FAE02D0AFBAA5AFA1748A80847AF4B326F970C6161E15B212A1C66003A4317348374E66B29FE87F36D01AF5F1C75BE11BFEA21DD8626765C46F0C153D0555B419227D50DA5232810D8517B1A5E4147A52AD07012D8DA23829F39A40C70D565937C58A11B1A25B27C8207246C4E1B40230E39E4F089D43D562EF954F332B7EA6B36EA28A9D26EB251AB562C0E44BD238874E93A4D3B900A4B2B08A0B68C2B82C0CB56325548DA3316279672913D2021D742C3619823C4391E64112B5B77E8D707F9C1A37D3464CD5F96543F720A0CC6C9631458CD9CEDEA7B6FCAA76D1E60C44F74B986A772CF593AE712214E21179519C39FA533A724FE8177EA59B1123E831E1DC561543A7E559697572157B60499C4C615D02099D34B0738581061A85B2DCAAF13556208B3E5AF388392490FC338DBC55BBF7D25F49F61BD7363CBE3841AAFAB88524B0CA3381F5B22DC84C6A112979C3C39E45157C0749C04B022F83F53733A21E1F1842E0E72F78C6AE1E337B53215AE8563B16D99EBD6225766185A0D92F9A28BBF4E2B444B7C8225148F601D014BBB8839B4B8B21A2728268A0941D3A733170FA7606B5BF25739E5DCA5DA49C1BC01295D6B47FAF3C2FBE8594C4F0AC085CBBA4194BA0613F475B424E7BA1AED1C5A272062FD878B02644D3B90F66C12C4B64C870F806CCCA4A36BA838D4799A861B3F32AC8DC9A403930B5C529C8FFA8038DB52C5DD2A5A31AC425F835317589369631036B487F192FCFBC9AE2B4834135365F27CC57C1208204A2CE7C03F9467BA6688A9555476A935E6006B6912091C80CA777D9A0CC9274CA04366E9A967E047DDE5105EB196F8E71694A01BAB8C33E99E7ACAB053B4785BED85C9EAB4276B24274A843048DE5A49C289334FC0D447034EBEB5681D87AB1A8A5B938A27521CFB89212D6594AF040719F344931704A74E294886AC351A4854EEC2A01B0006E602BF6D0B545C78D88C7C76FB13547BA600AB07CE5C87770377C0868204DF75EE4F84A1619BA335029B68278F45B6565029BA5CC8C0F1B900C845FF1619B7FD9A9EE148003E9B09ED4C7BBA8A8873B8841BC20D1AA257F78CA54941BD0A0380A922EED8A226BB90F94C8B62859C31E146647948785B225CE860769FC51DF7C4310984254F927B1C200834876B23A635869C90DF39BBE36094BF6B4835750A6F3788BBB7A3140A7F85B1C5CC8BDB386A0F15297CA9C6462B21DF7C11845788C130313C642BA127C8DE50695E1EAC8E245535CEC4547AABD3F455FED566B733C499FC913EF440ADDB37107E3032476AADB55CC0CD93E317A8CE2439F2464278884915C54B97E882DC44817488994C0109ADAD13C5102847BEC7730A57227158C4AD1B51AFB66D5C01BB6D2CBD1A7083FA6B049912F736824AD40A1ACB22F2CFC9C3D145545BB6494D0159C40C12BC84E8D22BB8E1A76C237020949698175B21410CD4C7BB567C52B08FA6253A50E4F1573ABB18F74ABB9837CCE85545F8992C9CFAB66F800525841948B18B7EF3A2B0961C4C7E8902ACACCFC865B45A5209FD5A4DB705F94122FC69196E3B56139173B32EC9063C4151B2819BF9C7B5D7626B01CC420C86D1070428D4A774177035269A46ADA8EC0E02230FC6B066C57DBB875A8F294E66166F3D7B95EDC3AB66B15D7B55DAC16182C13B371D82C42B85313C65DA7EBA0920914ACF8A28F44ACF54BBA1EE77736C9763036C73F4A56ECA95DA849C284F1589AF30D00DD6893E70D571700B9A07BAA6083B2C50EC4EB95E2236402F7B50C87A9305A8B5EB25664D74D4337AF268B48BD1855574405EA6237BC057E191CC6743742DD5A66373B110D380BF7C03039296F56CA700AE07D1A826965D55D86C19902762E75F10CEF33664F099F8440634B2299A474BB8AF328A3E011BCA75DB90B90C52C1699C1BDCEC31565E411FD1C6AD2D08EBA8C50B66A57CF10A98E2335327B011A4C3E11F58415B6C38F1821A69671FC2481920C896B389CC5783C5FD3B7D974CE03375142815E86E13ED4E052B1E009A25A2097C02F3EB337C3C85551BA14E1C22036916CB993612C809BEC807DA4E25CD8094C36720D376982650A986396504893BB0D82389886942ED1AAB5BACF3957AA8D191DC56C4049A0714D89BC3AF9680EE602E154B5E1C35F1C0440EEB0CCAB22103945623FC201939AA71F99BA8C409BFF83276F84879E590D9A448E1F052188285DE9668260282E8ECC630C15AB164271ACE0C954F13944FA9F4EB3A848F11CE7F0A439BA07A469720D4506ECF6CFA241136B469C12E48F137601F39A5ADACC54B094127D2C27FE38AA461C76003B9ECDCCCAAA2B16D1E9A164122A0B1A1FB751BFEFAB4A1640A792D2381A74AAE77084A4E3CC33275EAA595733FC4A99D43BE88803244B449AC71DA53B2CF30043C929811C9A558A165DA241AFAA8C45B07C27876C8FF77B721B21022C958323B41FFB606C656519875B8BC6E897854C08EC10611B954C693568070528824B509F83A3E6C505B6E3203AFA863BCA408403C0AE86A374C1613917BC06B94DDA73A8E0C98CF54A60CEA727CF1334B324343B2C47DF4A843E467989E4160E1611C1558928717D794290CC3911EB70200F51152D04871CA46D2753836791BA98AAABF697ADC925A827CB7F3AD01069F5748778B5946C78EF9688E16A5326577AD5A5773DB939D2631B04545C530C9B99141F4D213158D213163BCA141C7949F24958B9AA67089488A732189CA923301143A1728A6707A6E8AA5BFC4D05B6CD1971290114542386231CF04C2C80CB28E50026C66763A570D173612F142EF1EBC6CC9A82F7FC10B7104B7ED6B30C95C5A63A5E1E52450C1C26CA11613B2B3CEED10968E85C0A9539C28242F1B9A083C0109036C6AA9349F201648EF14D67094AF9715422885C7D69627702943BF0955D90496DBB0C0F2B3137B89C62903AF74B2783B11748BB6DF46403B69701E1D9A1E8A63F01CB969FE9CE00D7B539159E75372DFF7A85BA660AA8471ADE291FC782403F16BC2BF1C4D1A138A0160CF44246FCEA7666276318940624A32B4AF5B15F8B4DA5A05557BC819DB8884825B8C2770D6636A16A296DAEC0752E961CC4D11D61826D883A61F74203006A83380A0F9E5280FC1B831567136D178A906363BB801411E069B461027A0887DD14AD80867EA0F595FE1951F1CC8403198EC483632B189A0BB3979BFACE3F9A5401916B35E996E1336CF13249D0CC33ECF610F9811C27AAB55C52944298C3A13158C38501813C8D7F9447579FCB9BD38AF3B64CC94782E299E1D98E68F8BCEFA20D1E8DB8552516FB21CF5CC9A8A47A07CB2A154F73676D39A98A7D12A4ABBD37378595C6332F460914D81173BFD7729D81603DEB601C93969B81C401E2B7B922B2873F8AA2D998 +encap_coins = EBECB3E8C3DC591EAA503C332C8FBDF07804FC915B771779C1BE60F42E2F3EAD +ct = 879BF90EFEABBD4462F913A062CBC17544E6C638FB6E983C8FFDE437227C0E14229FCBE95FC8194881B109C755461D4F06C5C15CEE73A5409569253327BB767158B936746493B6B565B67C93A9BEADCB34C129F9972F6C128EFB3FE8F8923F0B939D9FFFD5FC7DBCBFF5F152034678839C6CC4B85CF577F27ABDE4F7A003693B0775C2407647E97E172BF2A05495C45DB14D21EE6D7BC24BB76D428A8A052A46B35AF8324A50A22C8B7A06BC42AF4DF57DDC9325E01C3B039582372B0870F4CBF29F1407AF9037B378FA7718DA45A5BCA4FD0E297E993D4CBA0452804E86ABADFB2A15E653E8305BDBBA582E88509DBAEB63AF8D391D1E91891048280EDF3D384FCEE676C81D3BDF78352420F1DAC42D036B5DDFD25B9D14AFBD4941F21E604E0251F69AD5929B49CB8278BEBAFDA7912F260A5D20E44579048314CA27309CC72648AEED7787D43A573C650BC7289CECDFCA5D9ADA3362B03B0DBDE933B6E435773D350CEBD336F7038ADED24CF9D1B7BDDB8DCBEEB88A22AE2905CC372E0B4576BDC2EB3821B4DA8AD223EE4228287B17CC7A62CCF714161D655A983379DC511122691831E01A3A2C71966E5DFEB768E715ED3A599D2D3B2B2A5DAE9DE8864168C76A06C31F4B2246609B45F49CC1B73C1CD7F71F6F3BCCBACB6DCE8FA4613ACF5079CD2861109ED891489B8FF2E62BF3A5A7694F90B315C7198F0A0037A5AB2BC9B8979A0D1AA217E86E9EF956CB80653106A22F59A9D6827A76F10B849A30C8F2685A5AFBDB3858231EEE7AA5AA656231E56DE171E98CF4830FB791E84F58731AAB684DF109763F9BDDD7F6786606F636C427D4B1A14B878AD5D3CD99A6F4D664C46E83ACF0EDA891428BF446059CB8046E2042FBEDC0095B38224BC63FB6205669E2C29D2539951F0D23867686C111C7F7C46FEF5CAD09418389B6E64435E93A025D71A1A85EDE6F213F0CD97FA4181A30084842C9700C81C1569FBB0BA1805863BD8C7DFDA4A0CDF551BA1768781FA33771CE5C0617EA1D61A616DB52E864ABA78A9C2E410A75251867EB230C98CB4804BC2961BE6A3C23FA9E1D659D0C3BCD11082662B4A3A2A445B565766C564E8544CE8F5F1C13290629949802181D486AF999851507AE75A8D2B97256D69E98EE4300937BAB7F62A2F5CEFD75780328A5A16DFBDC6C59DFB0B71DC7E9DCE3E593ADA5A27A588D2B14908D99C379FFFA5166C59A2907DB06CCB00FFC21AC49F7F2B2065A95FC68A052D1940CE609E19BECE8AB8511BDC35C7A5D18F68DFE25F1AC32577AF36557453164A0FBF6246A6D9AADA876E4535A7467F1F0AB0A5A6C79B465E4874A611E8BBF5EA710920B0D07E300FCECB7C6BE9B0A34F761A96A3970C598AA2BF0720D47A90DAF87F1500EC637F26BBC40FF8833ACE753CF96C07E6F8B9FB465ABA89EA1762610808B40AB694D286D3BE87139C0D0EF5FF1FC1C3605077E4F7B2B4C05CB434FE0C487CEAD7B6FCD44027D2A9F0478832073ED9345B26A3A834E14BB2C56D6D7B76CA5257DEF35EB603282A19C634DDD7898414FC9F1BD39E48D4D3A7C0511E094B55DD688E4430B96557B96D8194209CFEC83B2AF32A80C5661E4548AFB9190ED5807E3973C616D458BCDC16A83A45F0773F5F76C17099DB7BFA360C8CF6C62A9728EEABCB4D7631218A42737EAD11452A66E6916543144F32EE36DBA33146991ADCE8A9A84EF5F5D2A4162F5E7D98364C1EF0150109E707A55D541503AA95BA06E39A6D20329E2E2AD7EDE8E360B3A5086443C4B27D5B80FD1974AF084A28E5AB5C0F1A2AE0923C11B48649B8E6EE4BC5B8942AE33A6D42CFE107A53F04A19450E238D2B8994E43F9B4CCDEEF50CD8BB826E67C049037F05223F6906FE44CAA8A7257FA8A47D9EC4222B360A96E55CFA12A9E2D4F468BE77664396417FC60570A9BB9A7BFE1636F36F77282C9385AA3A631FBCB105332224F475C259F64A7A7C4FAFE28F9DF54C1A3127FF4667AE65A03E47A4859C8BFF86B657304AF5A9C3E8682853983D9099B5FEC89661BADD0FD33E97B472B499BBB4376D7398C4559EFFCBCA3562C9629B41AE8CBCC822A6335609D92AC781E9C4DA39AAE637E9A3674D65FAA57369A03CD80D8506F1940E79927E5AC5C2656B7A59EC704ECC972A3B66E0242F13BF0F49BCF2795F10F8D51A91C1D397AD43CBDE272559703B0C22D59E7C668DE9 +ss = DE739D712D857E0C99BE4A896FD1A58B3002F3B264417D38729B9DC6049E0A26 + +count = 25 +keypair_coins = 74D87C7556F2671F2D666854A4D6E073E69F35421E6E1A428CCCEA49C37F972CE82AB6CD4250546E9D3AAC903D6CC326CC39AE0B04CFFE6C6B3FFBD29AB63DD7 +pk = 9532712120555DB81FDB599DE13109277A48D20B0B16DB7C6FA73622ACC63AB1036C9C07A48C73DCC4111E10C919D09B3A48B96BE05E56D809EFB66EA3BC97FC360B85533C4AD1A9E4CA6359AC6241EA6C4586C3FC983742756AD1FBC6582274B7559BE1362DDCB91E5C857B0E836349D4023D461B1B24CC873C56E6404149026CDEEA16AFFB5FD715766617B9A5058776B74B72075E25002131BAA50CA093BFC909B6102E8E5BA2C748BDC5EBCA2BE715B2800ABE643ED542A8F4C055A0C7122854AF8460016CA079BB701DB46B2B17D0013DBA7D24685FB46966CE53B3842CC66C8BACA0934EFAD619459888945759B3842E26A914C835BEC4410FABD4C98350717FFC143B2CCAC4E72B64D195FE1147FAC6171BA8B213EB5724039D889620C70A55FF0145CAA543BBBA3F732CCAE4B0846200AE7AC6C84396224474568C058FD4785347F077DA03ACF744005AC1CC02F93F2130386AA2B62275722E11589C625044335779D8BAE917A632652536337DB7C78272241B4710210CC7954B6622BFE1653F4788450900D3DC9BCAD010F9429615D24C9A4BC80A2C078F5B6E3C6847AF5B0791C27FC99950E77676AEA63413A3B259051CF6A83F0F9C5952462AB315AF64B978BC4154BE10702D5B266AC524CA2B5570199CA7EC91064C0247B08E01A8AE7F194DB11B88D584237B507E44B411D5C5112DD22C7ACC8D6F3513CC8CAA63342284E6BBB16B2F63B9ACC9CAB050A19FECB758EC455414992AEC45BD453639564A0C2BD164C1604D035380B0C2350F530770E84792A986D7F8BFEE6C4EE164A678C893F3CA5149BB5FE542054094A450A8C9F7A686B7565A3036BA7126288AD157BDF172C5E772CE052689D2495D00159A920B68A86FC905364C20027F90171845347366053D8C718A444A1E60133FB954ADB3A47A7242B8100A8F9784181A4E7E479CED14190A282FEB98008C09AE2B124A8743A4230910DD612CC75BC0068A4D866CA871A48B071CCED3336D5C01CA3B819FDB2C22ACB71B2FC2CF61C95B6CC164CAB078472658E5D19EECEB823A373B4097B4E83B0D86E9A50488C1A35418C497250BC90AADAB70AD35A16FACAC83093570399E8F615933F48E7FE8C04E517736732D6792C59E400A228A7CF4896AF6C6C4D2F3ACF279C861C83100B2868CFB42BC75052B26B6920591C78AAB2DE99C2AC0971DC90C19B6072F388FFE054166D95A785B8EEB141A9EB0482EE6B57C896D8805A33756005978A98F3817AE53B09AB4BAD0011218382269F062B9895697514F9AD872A49392166C72C380A86C711D1F00C9641A6A03083A3755A482AB70CC213CF6F1BF7699164998A96A8258E819652ECB01F607BA18C7B09AD5C28864468DBA9727443FBCF6C40FF44341A62631F0410BDC0FDA9BA4710A21C8934D6132AC21BB4A9292B16F787DFC58ACE7D69EFAA67C3A5405B98A9A07B276BEDB636C18A668A1C36ACB7170AC82253A85D1524ED79BBEF4F046649B9F6A31B924196C6F72B12F108B6D95AF9B373E34489155DA84B8A810CF005CAFFB8B28504739590FD6B2A5247A5139B39236A2A496A93717854B162584BC57044F510656906DDAE771BC029A0473A481EB2BB95397FB903A36A2042A4327C8C54BEA769C419CC5EFB83E84692513936F8F8775A1B114C13A4318D522194B8F1F7B05A8408348B3CA877B0A59F34DDA1169A8C12D716AB9F558ACE0B72750C1B4B9F11BE405A82E37BEED883630B6B9543367A1736C9EA7365BBBB5FBD407D36457C291B4027A6EBED8003658619FC4CD617898E8CA2E77A505CBC70F20AACE50F301BC16C398D30473619326E261E2713375A68D83CC719A381284216D1CD011445010A2D24379B8024C30AD70841EBA93CB65621260F41125C8CC03FA2894E84BDCB06B4120371A610ADE828BEEE4B3495B4E97E25ED28BBD50223EF0C6B5A6C53470D22ABD74C26AF08CD44CA194815BED9C58A1775CD0431B41553454CC892088BBAA51B26D37C25A1000A7F8C54ABCB1F5C0C3C61C7F6D36BC45320A886280FE2CCC24C704A376294AC15D70F1A300A8AB1DAC505F3B2281439B3F93C4D4F62F5883BC00D9589F5A89E3413F425248A8F7C011F616D65B857D2353C0D28BC574C1F2522C2AD76809948966543BF757557B8F92C5D5A3BC95122A6A7968DBB1334A712823D470766B3B9E7B55672D02AE +sk = 60E93BEB5544294BBD612141956430CFF041E0F969E954A48298C7B5F321B9E1B70B7C796A753CC5BB93722B20380ABD6B8AAC4F0B102DDAB380B88AB9DC040FCAA8B775882A673864FB757A3453273627DF0690C90000B54112DCA50235BA14FEA59A764736A018A091B822A636AE7934A33BC5C15A7B77E1E53289C9757EC75CBBB792645325D6755D79B972AE993C9E3413AC040B3BCC85C4F98A2E185BF4EA1D19A4737DC78547847B7EF385D2A07BFE272764CC873BE8CB1286A0E7C83539D2B9BAD5A17F0893CCF41E2B5CAB8F66706955C5E168A99E9820A8402CB25A434F1A149F0148761014D32A51BC73A8CDBCB104C29BE554B2724107EF314C25D082C7252E0CE68833A47A619A611B08394960A64D8C22C25AA1121A8033605C9BF35221730B15E6269CC25FEBCB8E3336870B3C1C9D3A89DE4A9042758F517B55F85133B403C501590A0F53542239118F93874B319BE0D063AD82144ECA6156051424235D785C92AC00C412F8AC0FF5B88F056142F8A0934734B09BA14C00089BBA136279A5FE462082AB4B0709A6DB3279F8E9544F3909FF78B264399C2ED129C803B341D816EAE96BC531952D55059EF0233B0C18E1F7AEE5498FF6F11DBE801DFE193BB61B870008AE57483DAEB8CA7CCB460193C68A509E8DC738FF227FDA89B21EBA0053992A4D3A1F8767C0D3F3419838C8C7A2C0B3D68E737BA77221C68A8570948A322A143E5A03888C08A1BB7C42E9DB9111819ED94523848BC32781A881A468D26AA7FA4ACB926AB8695B24A094B8CCB0423192CEA88C1FAC818A6B0CA19E423B7AFCB51B121D48EA44037963EC1A325DC0BF7555977F468FEB49B8346338DB983E512B2FDEB35A300495F437CBA88C36D01536F7A56BC9DABD1000B77751031102CABA7182E2C440919435A14BC1AE1B354499324862885C9C301B7258FAF778CD0A4721F26EE32C5DCC7A7283DC10E3CB04713255D0044BF1D9234F5180F32483F7079B2C0558B95C622DB01BE885B2580931FC8617B6940DDFD54CB327712DA02F90A6A8DDB6BA17A31FB1D7231D94CAC2FAB88A43B0F56968FE2B724FC8A97E1A371C96A9A17A94FDA08897BA1EDF959F37029A84E707EF676B89FCB5E94B8997D95542E26CBD28A7D01B1FEF76B1C91AC327874C04F01B2D6280FDC60CEAD3587BC0AA6EC76F064B3263B2419BF3120AA7791053BFA6E089F6CB8BB020B5C5E2517D4B2F34EC3C4237AF98DAB3F4D44AE161773ED53F391A689D7B38F01155FCD080869656E15BAF9A2A6419B38C2EC39112B4216FBC5D94771FCC4369EB90AACCF3A752020E24F97C30C4C67632180E9B928A0941C23C03CE588F7D841AAB91B74B7959BFD8B5B042294EBB094B523DFC425E9EF70BD2E2BCB2937EEDBA0AD018737BA91A3691030C1A6E54C0BD4336A4BBB7C5DC79057EF5C574C04DFCF9C8407CAC999A54975B1A45519075CA167B8285B2D554EB81702E30626897413051AA546BC63A42723BB95F0DCC525944C967D7A5793C34C7638EE59608C8680F2418B648B7450B09C31BEBAABB956E1203BFB3D377373B5483C93378F15DCF2959D0E02A15E2277B7AB78CB2BA78703F13DAB307BA1B663C8666252621AB1B9FA42DC69008881A2F0933C03C183D4B82CB149511F344CDFEB0ADC0C9B0CD98240A7A7C97D6AD8EECB20A8A04119B8AEE8BA273730965608D0CE921A6DC8B8CBB0098D722EDCB88CEDBBFEFE2A04935B5D766577DBA7C20A73E4A8B81D6B81BAD326817F8B9D654B005D7437C73761C62A43412B39EA821F9547B433C57C2512268DA14BBCB38B3906348FCC9FACBCDB2F44E713125309515B6D4716088071B60861998115EC97D9CD99EB773C343942105B4926C14979FB62F7E6616D3AC1B0F12A96CDC7AD22CA6148800B9D1047A8358A1563CB310607108198C084215BC1630A002B96A74D92198E832710DE036B0332BDBB2269E23417A82A1DFFC57ABB971DC0A34D04378308B90AD36064548C5480BB57384B7487C299A016BE645958F64C712B75454532E4021AB21C55020B609E2E4A5DBDA151F8A9CB9E9C552B73B8241445F97AC15E0A5E7A357C2A6608D388652848C066B5F345C7EE7A1410DB478AA517FFF742BA1965ABB0687286273D9F993D7D730988A709532712120555DB81FDB599DE13109277A48D20B0B16DB7C6FA73622ACC63AB1036C9C07A48C73DCC4111E10C919D09B3A48B96BE05E56D809EFB66EA3BC97FC360B85533C4AD1A9E4CA6359AC6241EA6C4586C3FC983742756AD1FBC6582274B7559BE1362DDCB91E5C857B0E836349D4023D461B1B24CC873C56E6404149026CDEEA16AFFB5FD715766617B9A5058776B74B72075E25002131BAA50CA093BFC909B6102E8E5BA2C748BDC5EBCA2BE715B2800ABE643ED542A8F4C055A0C7122854AF8460016CA079BB701DB46B2B17D0013DBA7D24685FB46966CE53B3842CC66C8BACA0934EFAD619459888945759B3842E26A914C835BEC4410FABD4C98350717FFC143B2CCAC4E72B64D195FE1147FAC6171BA8B213EB5724039D889620C70A55FF0145CAA543BBBA3F732CCAE4B0846200AE7AC6C84396224474568C058FD4785347F077DA03ACF744005AC1CC02F93F2130386AA2B62275722E11589C625044335779D8BAE917A632652536337DB7C78272241B4710210CC7954B6622BFE1653F4788450900D3DC9BCAD010F9429615D24C9A4BC80A2C078F5B6E3C6847AF5B0791C27FC99950E77676AEA63413A3B259051CF6A83F0F9C5952462AB315AF64B978BC4154BE10702D5B266AC524CA2B5570199CA7EC91064C0247B08E01A8AE7F194DB11B88D584237B507E44B411D5C5112DD22C7ACC8D6F3513CC8CAA63342284E6BBB16B2F63B9ACC9CAB050A19FECB758EC455414992AEC45BD453639564A0C2BD164C1604D035380B0C2350F530770E84792A986D7F8BFEE6C4EE164A678C893F3CA5149BB5FE542054094A450A8C9F7A686B7565A3036BA7126288AD157BDF172C5E772CE052689D2495D00159A920B68A86FC905364C20027F90171845347366053D8C718A444A1E60133FB954ADB3A47A7242B8100A8F9784181A4E7E479CED14190A282FEB98008C09AE2B124A8743A4230910DD612CC75BC0068A4D866CA871A48B071CCED3336D5C01CA3B819FDB2C22ACB71B2FC2CF61C95B6CC164CAB078472658E5D19EECEB823A373B4097B4E83B0D86E9A50488C1A35418C497250BC90AADAB70AD35A16FACAC83093570399E8F615933F48E7FE8C04E517736732D6792C59E400A228A7CF4896AF6C6C4D2F3ACF279C861C83100B2868CFB42BC75052B26B6920591C78AAB2DE99C2AC0971DC90C19B6072F388FFE054166D95A785B8EEB141A9EB0482EE6B57C896D8805A33756005978A98F3817AE53B09AB4BAD0011218382269F062B9895697514F9AD872A49392166C72C380A86C711D1F00C9641A6A03083A3755A482AB70CC213CF6F1BF7699164998A96A8258E819652ECB01F607BA18C7B09AD5C28864468DBA9727443FBCF6C40FF44341A62631F0410BDC0FDA9BA4710A21C8934D6132AC21BB4A9292B16F787DFC58ACE7D69EFAA67C3A5405B98A9A07B276BEDB636C18A668A1C36ACB7170AC82253A85D1524ED79BBEF4F046649B9F6A31B924196C6F72B12F108B6D95AF9B373E34489155DA84B8A810CF005CAFFB8B28504739590FD6B2A5247A5139B39236A2A496A93717854B162584BC57044F510656906DDAE771BC029A0473A481EB2BB95397FB903A36A2042A4327C8C54BEA769C419CC5EFB83E84692513936F8F8775A1B114C13A4318D522194B8F1F7B05A8408348B3CA877B0A59F34DDA1169A8C12D716AB9F558ACE0B72750C1B4B9F11BE405A82E37BEED883630B6B9543367A1736C9EA7365BBBB5FBD407D36457C291B4027A6EBED8003658619FC4CD617898E8CA2E77A505CBC70F20AACE50F301BC16C398D30473619326E261E2713375A68D83CC719A381284216D1CD011445010A2D24379B8024C30AD70841EBA93CB65621260F41125C8CC03FA2894E84BDCB06B4120371A610ADE828BEEE4B3495B4E97E25ED28BBD50223EF0C6B5A6C53470D22ABD74C26AF08CD44CA194815BED9C58A1775CD0431B41553454CC892088BBAA51B26D37C25A1000A7F8C54ABCB1F5C0C3C61C7F6D36BC45320A886280FE2CCC24C704A376294AC15D70F1A300A8AB1DAC505F3B2281439B3F93C4D4F62F5883BC00D9589F5A89E3413F425248A8F7C011F616D65B857D2353C0D28BC574C1F2522C2AD76809948966543BF757557B8F92C5D5A3BC95122A6A7968DBB1334A712823D470766B3B9E7B55672D02AE591AA9C81277503A34441FBD6CB59C6D1ECD5E00298FA56BE9DF562576250C52E82AB6CD4250546E9D3AAC903D6CC326CC39AE0B04CFFE6C6B3FFBD29AB63DD7 +encap_coins = A9DA4FAE601738A23F95165DA22CDAA8BD455688B6033C74B4604DABDFD46FD4 +ct = 395D5021BCBD294561EDC1AF53020014A51234CE2FED8784CED5A33328ADA537925071E7122C3F3F17D938C45667BB203CC8220DC06CBAEF60CDD49A1D0204115959B252964ECA66428BD2BE53281DB056113347A8B1EFD49CB2C2A42C0EDD425262C4A1BA4D4B2E90CDB97F9A39F39FD6923144DABAA6CDCC3C48422024C0FCAD2FBC16280ECB78C0B0BFF5B4541B0BA1BA13665D2134E36EA17DC244546255D364BEC0D55281F1D1F8C311039AE60DEEEC474705270703192F16769F0F1D2A16895EC282F943B1B17F691C523130054FEA4F659622FAC34AE17104BE0101FA629AAEE87528B194E1FD0D1477374FC32AFF89F862AC6F9E5F8F0227F2CFCB298B9FAD9368BA6FD24D74DB5065B1E36403A7AF172CE910833FF08D54C375B4E2B40428CB71ADC461D0E889362E23D134380C0B8A3D3569CEE7BB78B1A147D50CBE7BD652D9BB77F5A319E4EF196B8A92057AD843DB0FA8480AF6DE4AC77447472D6CF9380BDA1C3B6C78C6CD920D0F8A7E9C0697401BC0F69D5F8481BC650524B28A0E709A956B0151F551F8EA996AE2A7BA6D0A40EB61963EF3B547EB5A56BCFA489CC341779892492C4F7E5FC35835710FAF882FB5BA9454C5E5F88EF07BC43C79988F385219DFAA3DB6176B5DA1353BBCEC40D0A2368B5652C68D16A85884BA134C5903938E00C0382AEB758A421572AED5B3ABA5A07998A0DDD17DF653D98DA0CF39D39E53C3D573919F0631E7456090E1EC857306C56C1490D1452A2A1B03CE26E1C4B0C0CE8FAFEF77FC6D888A3C9981FF493E20B56B7B32BB25AD9CBAE13DD49D63F43C6ED99E9294BED66FBBD2ACEB4768537DE880513BFDFE74A980BB2D9C408E1FBEAD4E7E01CD4BE8E87A8E0A13251DF8D98AE402B013476147F3B697E14DEB73734A1303EDB1521C8FAF5D7DCC54228EBCF63D57CEE4D7534216A612D53FA575F915D18F958EEB42EF9854926850B4439EC8D42FF2F14F64C626BDCDF4B8C5F2D724EC322E2A8AB019DB626753E27BE439D4DFD5455C0F20EA61199FF69E0C1E230D1A60F75848E29B81095BEA5D689FC8509F5B3A9B1C4F6F36454423451A4F2AB6C9FB05E622065B1FF5A7AE9F9559BC7D7AC66EC2131C92D397D103C18DFCC988E2715113A02136C5F1A2F77A6093841F4D5AA9449FA83E5433B5926076D87E5BBE7934399D8E826B96C7C7BDB968018488692291C9A458E4E912F3531A4A7C36F9F913991722C723EE83A9C78C2CCB9F5B3CDA599EBBDEAAD9342723D44966FBD9E1AFA93356B8F14C70237C8092DEE1F839003C3DB4166A933FC9BD525AE38833E019B6A829F0588A185189A78F15A97AD509B022E15A3B7A06FA734455443373032CB89BB3E09C5065ABC61DE4B7E0B4D21576524D628C2BC47A36C0C052001C10999320289B6569C2CB0DC86D43645AA19EA270972BFBABA5E800CEE26F4E92859D09C56FB488C4AB6BA662835240A400A04331DDE34CE112C00F4CFB57B08DE64079B9554CBC620336F66F6930CB48545E66E16FECB428A209AD6B8CE27F64B4F3D95D61E9D60A54DABCFBF0CE8D039BAB63F8DF5EE4A12976D60D03702A14F2CA43516AD802F44A1CF5B12C110273777768EF5AC5CF5BCD89862BFCB5B2DA335C4167B0211E31D45220AB0F430636E14C4A36E4CE25654868F8938160724DAB79E4E0157AE57961C8A53DF12AC8BB51CB2C41A70030D244B6DD7BF2F690F3F2CEF4CA679FEC60125646D863D49157FF33EC7034339AD8572D3C47E824D31B0C7B33470EFD6853AAEFA6C56A1F0D6C4212733F931401BA23FDAB4F52CEE740E2CC0E572941D66DB3A1970231E3D9AF5C83F4FA2672A740A051F8A28605C3CF0F76A31F710AA001EF274224045BEC843C8634834F50A813056FB344225BE0092F0158DA90626C2ECEDCD4D2A02FD9E1E54222692AA18F09CB2D0E563535D9DD775E0EE9F59E4A2452BCC7E70B9C315A1AE89BE2EDD5E40B600FA63A8E39701D099CE3F30A60F8AF46F1545F3249E9ABA1B69CBA1CAA973E133349ABB2522D065A82B0B36D20232BD879AAE20122E07963E8D9E7F424D9129001370FC13FBF0711E65A71F590DA49E217E1F2D2A4EB2DECC6CDAEB4D6420ECD5CB3C08BA53F701BAB3F084CF8BD74BD259620E4B33A001C5A03224A28FA86762F81FC3DD718EC8EC0FCF33A6DF5B831F60F70C8265C04D46D19ADCFD8B5 +ss = 00C779659A16D546B70D41073724BAE053C41C3352C72E3323C670A3DEF9CAA9 + +count = 26 +keypair_coins = 013BAB0212D04ECD54B478DAF72748003A25E2CB060BA6CC50BF95C292B8206BF7642088944D664CA7996BA944EFF7E4ABD0B900D3D1728D99A9F722F928FEDD +pk = 3C614FD2510DBCDCADE2F57004CC995DB29139A713EC106607F815DB318F03D2CAF4A294CAACCF34914106D463FE118BD0B65021F086F1F9A8F34A42E197525859767D89B0EB29CF54A93E76F13BF43344BAB7578CE167796976E5C7A2626B76CA2222CB358904386A5485C67FD58F7027543185C71BA82CDEB93B619455CEF931560452D7650B25617C51D93D9223CB2083BA29D6A66AD798B5E4A49AFB5960A08A6D8992A23AA5840C97ADF727E698C990684D0C19AC71BB816AE30E71351C3300B2EDC22601B6BB7545A87869B9712997AA5C3CE6080AFA8333E6159C1DE61333F4742E5C49E887A8A4CCAE2DF6C7E218A509124D151A711DA99A11D7B5841752C498521C3C4699113DBEB652A4C6754B0B8A7B1341D5A3C99BB39C9B592327D0242AC68BA6D01369257C56427928AA5B0534200FF8A4A7263F9F955598A0980EE67337442DF706360FAA20DD6941195036831186DDE104C5E6CD79A84AFD6917C1122070AC6CFB120C7F22276AFB4D51F52D0EF2BD4322164F938F66269703CA1DB984BCBE337C710142D024AC0D7502579B1B804BCAA5FB551274CA547301FE6597CDB0754BA6AF7D74BCA789C6A7460AB599CB14825FFFE28683267001E32EC6F7802826C3D5091F8C520CA52C51E1E2B649222BFFE45D9D373F8224B9E3E973A852A0D6ACAFD22561AA1376E9842AB292A61C21308E209D3EA353D77A8D835A46E9315EE19BBAFEC09ED462269DE56B36F6791F771922B49A51B3870AD0A0A2F3AA0122AB02648ECE97C96ED24B9E99B6AC2C964CF356E4A39C21D0274EEC6FCC8893E7CB425C68C8E99A89D22647A5522FFCBC46184AC181D556616503AEFBAD90966D2806B6BF26903B18B1BF5A89167A10D47CB4A6F101FB09473710559F39B3046BC7A55331E8DA418BB34089793C2A7606112011E89318267348BAEB7B39F6C85B0AC58B4C8C187965EAEA5940DA89CD4AC31754BD85F815C9C15B36077E9971B4ECF7546C4486AB074E511B729ECC835C175B8304038550AEC0C6C22EB76F866444859293D21B4743E0202A3B6DB7D2342585A5C098CA66822F86F01A6A9C080B414144220C44054801C36199432870F8B39B08831C8623972B1AE3442D0FE409B47A5C22E67738008A71ECBB8016CE110794B1D313460650CEEBACCAA637F9625429538DD1E00AE8930211063F3265CE4B7C6ECE835FABA9236CB228ED003CB22CC8B3C5811BD9C276944D929C5C67B26B8648BE93A89396C2949E26866ED4121C3849BC6C15ADF8942FD4CE8F12B5DD83CEA1322ED4C0BD2BF9B591FB01A7DC49387C04E7C1416ABBAADC2C183072CA13C31F8E964C2A9B56912571FBC07878584F7926A9CF13C0F4C114C59B1B44A94014C2963C596471F7771CD383C235AEC594B61EEB17266A5EBBC4828805169D1A2E468448E73A1E3C919CE3F738D2E1242C0895B59C27E12CBEB10C591A54108A7B730D2B902185B9A8DA9D2AE01807466C456C4EEFAB336C13C6E137B6CCE922B1113E1CC862C8883EB69ACB0667A68FC58FC5D6584AF926B25159F4700C110C43BCDAC03714714AD4C07AFC4D54200CF0184E5E8A6E5DF1AE6D13C9F9401CE38C6144D3B87DEA304625CB8AAA6EA0695FBBB775C6D0B7F79A6FDC4C53C9AB072D027DA097A0D69AC77A9CAB23941AA160BF36D95B10167364A0C866E44BE2930199A00972936275CB9F3340812D70968A95428B3000B21C68A237961B99A2C7F62C9988675F01B1604910B0D8942B21C49E676532603DDEBC39876C8479603F9360A9538679C4A83DC1C33947B5C01A5C659D30187DB308BD999D68E30C79E40B631BCB8725B72A414E3BE0300E4C7A30F56ABEB9588FE0292DFC23C4C994CA20726CEBCCE5942A3B376BDA76A965179F56E66A2BF94CA35090AF041607C18545472DB1E71AF96570538796418737B048859E676480727E71E3534510998402AD13D54284B76D6EB04715934FA6F05CADD2A6CD6683D981CB5F6A884D04CCB008657F990545E38A7C044645D9CF9B7B49643B7415A63A8B37B6FDB304558423F4A47961E230C9091F0519C15DE10275DA4757D40EDF70CE729A5986724E8701101C208E4E3BCD4341098D8B07708A2C81EB6044B82CA3868A4752CF42F2596C7BA678723931CBC646E935E0BD96EC59643250A0B38F9779B0142A9E546EB525E72AD204D1EB31A6 +sk = 3A756D6DD157ABA65D60721C41EB4EDBEC38834C22E9AC88F03119B472BDA0961D1F5C3268EC6492F92D5D066DCBA69CE9C20311E1C15FA81FA5014C6C956F88055FC2D35E6B295D05D6167E4375BFF23257BA72C0F97F452B609F22B57F7C27F71A4F259938B5AA18097399A0D32C3602203BB6769015495B4BB7317C9E99C966215C58D3455EFCD36003826C2C7B1BB437A66A968DCBA35DAD7098FCE9133110A109C2B91764719CA25866C98550082E88F29E78B38B40A53C4D626FE63390A290B54389624C597909D79FD6A658E2166704C386EB1C8E951B4C7619B7B79349C3F59505809B1095405949CC55C109A1108649552D5F83A970083BFFEB6550893B5C5106417B0CF1E44B6B05A9F9093E386C9D43F14D4CFBABD3B17EFB49AA2C571AE99197D2E4B7D58775962570D528B8EBB8032E8065BDCAA391837D483A27239A4A8C0B8F13013F4AAA6BAC0CA86E532523D9620BF9C2C3E2AED2365E90A1699A4CBF454C4D2E2C4273E93456142F737C8B3697B9821039142C3E25B346D020C829850D6CE2649087AB762C25BAA2639C8C7A852BC76D456EE69747FE561E267844A7E51AE05C5820F0C2B880B05CC935A3BBADE2C6A4881CAC21938A304C4CD2C1CC1BFABD932B777CC459BAE4BE75389862464367C6318A0521DD62C5F070A139A95522D10D2E4134C06522CF52834562A208B22A95431014934F51EC49F5EC087D1435DB935BB5223C3EC87BB7F7427A458232474AD9CC222B422149977C7F366F48B0B14AB260BD0A8C04623F9B12091AE049725064D0BB4A249075816AA249718F1A7768C3469AAC7182D2F01D6373038D7C4CA24802693A354C19C66DBA1C05EB180AD04C1FB095B42947D16B66139384C71206BD0BA9AD9BBB5DD7593D08616C214FD9013E792A5B4930122D1C571F1315D235562C167D7546C8EF7536A929982F6A55CE7209B0D5735F69AC6C52A824E508D2481A5BE01075C54D8743BCD76767B69B5E350989E629C97AC1982A75806126245FA692DEF22B15A29499C82EF7F993EB3472F850527D900DA2F513A9366A4FA978038B9E46752DBB8084FB12CBC591008D692544078343E9AD67909DBD77C18BF18F02607210F4A0F5DC749F8B0BF371309027968968678B0135AF65138C5544ABD57ED8A646409224D32052BB14BAB4D51DAC981CCD838B4A513A36A351B81A0785CA281D7106872583B8BABBD62A5787BAB8EC9019C7009130EC6BE4E25D9992AA1DD13DA9C1A7F1CA27FD78968741436003789B8C781C599C98D2465C7513CFE85154D7A655216E5B3B800DEAA6B9DC7C0D998B9CE2B99DA6AFC27A5EF6C152EB16184D91CD038CBA69835AB3500AC2E87368F37888BA90F219CE9DA24109F0B3E1894DB5F640A17B0E705195A350A61EC62B2C7A216231C530F557D4C5605346A6500B7C1484012FC87DD4526823C447B71A726D65753716B30C212565DAC474CA3ACEE664218285A5C4A726F681E98619E2A289D08895BEA26BD6A3BFF3A5C5C1EA894CB6440D075004F879B41A14EBB82B74AB0131D0B3348742DB7244E750AE2B7BB57F8A95379502827880F8A50ECB1394DB2553C07627C113A300078DB1BAC7B50078D6E2443AF5C1099633EBB4B9313C9F82CB967442211CCBB7DD9B4711F85E99E7B07601C07F10373B104FA849A9C9416C3304C09C1B2F22FA159BBB043A58415A11CBEF06B85FD728B492BCFD0767571848652503A5A162E0D478D74CC05BA5160F398DF7361B340226ED49A5449467A9A39CD5297C52BC0CB9634325854043617FAA817EF2A94AEC5A49F0579F085ACFA164C3247959ADE02DCEFA8ACB965705060B08499C33F70FC6055FE1752A06F0547F4C702F851B36D23DA24C8EA79A942DFA6912CB00C8D892B244C765D0795545423233A6BFC01F38FB05B8F953FFA532B7B6C2D667913CC966F6B88F63C1BB06B3BCE5310A8BE69F0837B8A0494995844D65350502C061D65C563FDB6B82D41E76495EF15B56F3F53D5537CDB2E6C349844F02121CA9F404A19C6591600D88BABD8CA4C25C973F89B0765BA6B4121358C1738E7C718F6CCA0D6186594B265FD53106ECA59D9CE51C1723CFF7F7053FC6240A3718B0AA3D942084A97185701BB213D489C4801BFEB22463D9608B92053C614FD2510DBCDCADE2F57004CC995DB29139A713EC106607F815DB318F03D2CAF4A294CAACCF34914106D463FE118BD0B65021F086F1F9A8F34A42E197525859767D89B0EB29CF54A93E76F13BF43344BAB7578CE167796976E5C7A2626B76CA2222CB358904386A5485C67FD58F7027543185C71BA82CDEB93B619455CEF931560452D7650B25617C51D93D9223CB2083BA29D6A66AD798B5E4A49AFB5960A08A6D8992A23AA5840C97ADF727E698C990684D0C19AC71BB816AE30E71351C3300B2EDC22601B6BB7545A87869B9712997AA5C3CE6080AFA8333E6159C1DE61333F4742E5C49E887A8A4CCAE2DF6C7E218A509124D151A711DA99A11D7B5841752C498521C3C4699113DBEB652A4C6754B0B8A7B1341D5A3C99BB39C9B592327D0242AC68BA6D01369257C56427928AA5B0534200FF8A4A7263F9F955598A0980EE67337442DF706360FAA20DD6941195036831186DDE104C5E6CD79A84AFD6917C1122070AC6CFB120C7F22276AFB4D51F52D0EF2BD4322164F938F66269703CA1DB984BCBE337C710142D024AC0D7502579B1B804BCAA5FB551274CA547301FE6597CDB0754BA6AF7D74BCA789C6A7460AB599CB14825FFFE28683267001E32EC6F7802826C3D5091F8C520CA52C51E1E2B649222BFFE45D9D373F8224B9E3E973A852A0D6ACAFD22561AA1376E9842AB292A61C21308E209D3EA353D77A8D835A46E9315EE19BBAFEC09ED462269DE56B36F6791F771922B49A51B3870AD0A0A2F3AA0122AB02648ECE97C96ED24B9E99B6AC2C964CF356E4A39C21D0274EEC6FCC8893E7CB425C68C8E99A89D22647A5522FFCBC46184AC181D556616503AEFBAD90966D2806B6BF26903B18B1BF5A89167A10D47CB4A6F101FB09473710559F39B3046BC7A55331E8DA418BB34089793C2A7606112011E89318267348BAEB7B39F6C85B0AC58B4C8C187965EAEA5940DA89CD4AC31754BD85F815C9C15B36077E9971B4ECF7546C4486AB074E511B729ECC835C175B8304038550AEC0C6C22EB76F866444859293D21B4743E0202A3B6DB7D2342585A5C098CA66822F86F01A6A9C080B414144220C44054801C36199432870F8B39B08831C8623972B1AE3442D0FE409B47A5C22E67738008A71ECBB8016CE110794B1D313460650CEEBACCAA637F9625429538DD1E00AE8930211063F3265CE4B7C6ECE835FABA9236CB228ED003CB22CC8B3C5811BD9C276944D929C5C67B26B8648BE93A89396C2949E26866ED4121C3849BC6C15ADF8942FD4CE8F12B5DD83CEA1322ED4C0BD2BF9B591FB01A7DC49387C04E7C1416ABBAADC2C183072CA13C31F8E964C2A9B56912571FBC07878584F7926A9CF13C0F4C114C59B1B44A94014C2963C596471F7771CD383C235AEC594B61EEB17266A5EBBC4828805169D1A2E468448E73A1E3C919CE3F738D2E1242C0895B59C27E12CBEB10C591A54108A7B730D2B902185B9A8DA9D2AE01807466C456C4EEFAB336C13C6E137B6CCE922B1113E1CC862C8883EB69ACB0667A68FC58FC5D6584AF926B25159F4700C110C43BCDAC03714714AD4C07AFC4D54200CF0184E5E8A6E5DF1AE6D13C9F9401CE38C6144D3B87DEA304625CB8AAA6EA0695FBBB775C6D0B7F79A6FDC4C53C9AB072D027DA097A0D69AC77A9CAB23941AA160BF36D95B10167364A0C866E44BE2930199A00972936275CB9F3340812D70968A95428B3000B21C68A237961B99A2C7F62C9988675F01B1604910B0D8942B21C49E676532603DDEBC39876C8479603F9360A9538679C4A83DC1C33947B5C01A5C659D30187DB308BD999D68E30C79E40B631BCB8725B72A414E3BE0300E4C7A30F56ABEB9588FE0292DFC23C4C994CA20726CEBCCE5942A3B376BDA76A965179F56E66A2BF94CA35090AF041607C18545472DB1E71AF96570538796418737B048859E676480727E71E3534510998402AD13D54284B76D6EB04715934FA6F05CADD2A6CD6683D981CB5F6A884D04CCB008657F990545E38A7C044645D9CF9B7B49643B7415A63A8B37B6FDB304558423F4A47961E230C9091F0519C15DE10275DA4757D40EDF70CE729A5986724E8701101C208E4E3BCD4341098D8B07708A2C81EB6044B82CA3868A4752CF42F2596C7BA678723931CBC646E935E0BD96EC59643250A0B38F9779B0142A9E546EB525E72AD204D1EB31A61C6C4009E28F6A20AAD0C0B14B7CC0A01AECA507C366913BA5CADEFE6656881BF7642088944D664CA7996BA944EFF7E4ABD0B900D3D1728D99A9F722F928FEDD +encap_coins = E821E6E3209B923765F0DED2D65DEC798C9CEEE04665ACE3061FE506B49AC7D1 +ct = 32BF088BB3D23C7D461B3D62D10BD7BF4D8D6B474CBDC6BE5044AA4DA03F376B697DC6EEA5D80FB7DE9D8E392B12FFDB662230C7ABE0CE89AA70C6DC0E8D50F0E4F7ED2F92808A1297C5F8BF232B399ACDFB8377C532CF8350BF1395232271F115EA0849EA0175D3EA31D6B2E67C2A8B2E1205FB28731452CE0DBDAB0FD1D046B60ED04F0C87D7AE2031ADE816FD03CACF8A0EFA14DE567FA279836D5231F99D65020C796A283DBEA1BB2B70D84AC54247D005A6DCFDC9025CBB7DD53138D6F5164374EAB96505B9FED0DB2427C08366597A8B80A966FBB9EBAA80E538D4740C0C7237C38719744A1B94053C058C5A5269C7E4D55963CE5C306F241A3069E68B6AF8950A4989289D893DC5046F9DE405A457BD428A806DE9D84CC3B3610B5324F58A20D84149081F89A5E0EBE565D1E987B08601C21714B4C4756ABED4370373FD0700F4284BBE638F2E892C917D4FC003718DD2C76DA9F917B95CA2E4D77C4641E5F4D39172A29173BA18FC9C65CE26961446E782A180C6A99CEFB7C1128989275650156C76915862B44752BC7825A12FE5311B5CC9C366AE3B70E1BEE59ACC16B19A69994EEEE2E807432703914D899761D7DA56C1623C2E5DAF0B78933E5816B23EB89CFD9CE6402B2E235F377074AF68E250A527791976865C2E633B4A5ACFC7CBBF061DB8E1814E5B8FC8ADDDAA3A29D1354EF3AEE3E42C9A0F0AE30FA6D5CB24CFC5A2E373C7F512B1F0A71C602792A70AE4957313382FC3FBCA397E31B5620F6E2B188FEEDA47D1ACEE9C8A86B081367F4BBCEFB8125563385991EDD75D7CF09B80B9A9F5942FB0E2BEA79B3D1779BC1F05EAA200A6A2B2ECC5BCCEE234C3B4C41AA1B7A1128FE9906F02A861F8572751A54128893FC4C0306FF60002D84F8200B13B00B14ED2A7FDC1591FFCA2F18DCD7B7C16B6295CDAE116A5BD60DFD12D16CF62247B93A556FC8535D0B86B952BAE5D111F343C352DADACB0C861998E49EFC09560D217A699DE0E0F859B10D1F83BFD0FBC76809F6DD22935604E49468CC681C60E53A6C5CC8266B5735895771ED8ED44260C01242D09918C54286F450BD35ACE821151AD6E17B2CDD8910E78D0C8AE4B1FABF022AEB7EF0668B38D6C62B477A4AD35C2CC3D213504CD7202631AA0216EED28B0DCF0B9E162BBEADA894214F94E6BEB7C2ABBA86FB5DC5407E4F15D28AA7D1E6AB8B3F40A820FB4668CDBF81FD031723E0A4592701B1979388BFD857914851C13E7EE032DC7B6070E1ACBF012488384990CC15105F51FEB73E255CE465014377961F1BD1A0BA4B43A61E9DFA6E3BB62D058B51E65D40A3E457D670FF901CC500527D48CB0DA44506F1D79095CC6A5F32200345A8F7D5AC8A939B0236B3352783C78F4DE829DD22DE0CD5B5714F195EC60F02452378C116075C98DB2EF91C26126E2D6CDFD8E67A1E4AEB457865FD2AAC445BD153DB3C39420A6531E4A101832599C899E2F7BB5037B6E7892FFDDDBAB60159E0318B849ADC85DAA753594557C3E25063E67DF32619697A03432679C4CDA5F41FD7E7D3D81B3F3984F948046BFE280EF293D6A3FE45C2306BB2400C3B804F2FE29363D4AA4F71E10CADD69DC0C0C0B074ACBF21C73CA7ABF49CE0861B3ACC173185EC5607DFAC34B98CB76B248AEE73F87F990FCB3519180E2FA768DA0FEF81D782785A0045D994E69DBCD6E5EA557238C527EEA17E26D5C6B4373B379EA0543261D3FC1CCED2B746739B58E88800BB13C3BB3C088D36456BE6DCBD6AB31B9137DB0508FD4A97CC2EEE5E9F7C5E17376C9D0BB632D37660DB0C1665131F742E4A1E92E417CDFBA78647CBDD8825EFDA463BC0562FE38F09793EFA906AA55EDC75A13A64258DAF753A88EF54ADE6B638560D20B46690A355AB107AB7D45ABEE6B153E8D2C8AFE07DE7A6FF9BED44E32124B5F84F4C8900C3DABA83EF473BC3385E3AAECB4D6B239AFFD88FF63EF0AC96DC50EADBA57C570FE0E028AEF1C8E5829B87CFC7E00D0DC78677B8B7329137BC46C5DC069B8890DC434A4FCCABE41FB3F50B601729EA0DED48399DBDC8C47C00D7149C2879A75F1E81F0D23A94749C9D16755CF268E54E4AAAED7016A85786153DA7F4963056C49C40926809D59A640AC584253BA00F3386204104CA67A9363306A5BA3ADE18AD7D3EDC05FE3FCE708A144AF538FC68512DDFCEA3ABDAA387E9D3E8D107C15 +ss = 2A44E3967C9E375BE9143787D6E951120356092319D6D2AED999E79309B10881 + +count = 27 +keypair_coins = CCB073C4B90BE0AD746E26FB093B60C70110BD1DCBCDDB566A8CFFB7B3CAF80E55F35361778BC0A53EA94003FCC0252D8333C58152482AF1E9C9D2BDF12F377F +pk = A2685786391D97D3B6FEC35D89553E3DC1289051A39501A814CC5EFE04BDA7D7AE7531AE70706277F71055AC32FA25ABD26AC6EA6975D5A91618476D62E311A9FA3DB53582462467B19A7A7F025A3B20A3B5E183EFF249C855BDB3719D5934C3BE5B64576B71CE525BB2874641A09C036BCAB46684E6280B5806B74C4192D0A55A54A6329EE7715C88AC3F1112BF49B7CD642553B152A45366FC925A4F34C2F97646C51511C0C9899161914654C052A06C6311022023954C28BBCC22B4641BC327AA37F494383639AA3F8A4153127F28BA56837A198B604DDAC05F82CB4C11834AA19637804C6643125C9465AC03516334679F36175B35C0C4DA90797E7A0CC36173EB07B8C541AB501151D9331666267ADFA60315305BE5345C46F628746025E7959DBEFA1FC0593AC94ACE87FB515A03B00BC84B66507ED2C6AE4D931FD28186C396582A56A63CC35AF5EA02E980AE2DD21BADB02699D69E857334B1E96A5086BDDD7152BBFB2C49A411085A94321A43E1491F0F0067B06688A5AB8D0AA17A9448004F25C1C5322B8D7B6563977FAD0C70E7BB961CE84CC685AED34B25F0D30EC53A7A5ED943F6EA3DFC917B01985C609C995F765BAA071B3749C89346805550BA19D958C535627E606B2F0C2706632FA466504C267DC7805E60A0680ECC158D6B4F75EBAA030292ED12CCEAB06D5C878CDDCA919050CC386386F5C8B3679B254959A06EBBA5520646E65250CE8B7CCA03227D1B43F49C9E9297269EEB64409712FB868CC47B406D9425868B6A304AA46E472ACB0197A071AB9D1622861916CF31AFC12466A4022A3A635EC89433635BB0AFE2C5F73670BA532714803B1ED473608C5E00C1AD9FC90C91281D5E081692D85DBFF0ACAF5579E2B1B6C5C1B61C3579CD13A7C8011CF5C19709366BC9676CBB8B2271C784672200E6A0254BFCC9B6387D42993E275AB2DA100301B11F7E4881CC5774D2F849E3D3CE63639CCF303A7F7914287079C6066525A4870B974D3DA72A9290B96C6846EABBCBAC2B730849A9B014100ADB9C66D0B5C0E7877DB476FF8A8AC947341D297C5F9697029439390A7E6C084EBBB136907A02EB5A351C94607FDA4EB44458C9CB8B50DA190E307FCD63885463523086036C5655E8E2621D4516A39084FA5B4F9744A921F497EEE3A46EDA05A4F1481AC5B4B819A66753B5B75A95640B0CFA07AA8A2033A8F51CC526CD1BE8CEE5677A78F18AF9608DA3A565BBE1A79C58691A45ADE1AAC936F15EB238BB4879AF7DA68CE2A106031A322C198527B94984A16D9B4A55BCB59E9EB4B2068182CC9B17A8CB2B8A776206B59258A2C9A19243C9925FB5D135604712BAF09E2CDCBC6ED11FDD530D83A901F06C166130B912A53C075178195662D9212E4219C63271485FFCC9AAA6222C9AA2C4E64F5D686BD4874AADB456ED086EBDF151EEA4BE6BF57E2CCA56EDB04C0E68AA4DEB1580D005D9DA4FC1943C85F75208D0BA3B517F89A82A2FD8BB96AC07836391B2DC3B6B0533F0D91E170986CD245FA2A90D6A345679377B767086A1173DEA82969FE3BFAA643AF8F98B97A8432AFA1A8C748EE7055630812BD2D80BE782A726743627E707F7BA069931C9929B37A9B0B04BC23405E5B890700DBC419BBC635C12C390E0A8618EA01F2ABC84ECCCA4B9F576664237355A40B7E931195B606C6759848C33A002B74B4706266AA93FDC2054D95E7EC30F1EF53F4730AF8A31A757A55A9FC69765F67CE7AC0413DBBB12980028BAA2AB2A378A55A283A6C5B73837F8462259C2AEAEB36C7BE5447EA22A85A561E2477742C61DAFEBC969EA66FF992455DB36B6029D863A8B896057251B8ADC659F294707CC643A91F3AEBD594B2D1C3C1168B474E011E7A280E316890D467B77732E48C7BB0216381AC8BBBF6A7D61B90C9266A33EC7744099B2E4D464F1A11E1D38883DE5C89371585A2247C4B80110566817808E52DBA03061848FD6338CF03992C1AB83F68A13E75C6565868DD419815A19983AA8D5C4123109A34FDCAD5FBC3C37C87D1D4A6B1366906A97099DF940B2564F00E37760786EF28C7896C09D04C0CD24820596E538EE3876B548667CB26DFB6073EAA5631B92C4BD05320C923B53552384D4AFAA047A2241416718C51C97BE1DF9C3A91995D515B21B57E338A864D6C447ED4E29D88C30BAC7D2D0CDBAC43E9F4176F0078C715ACC +sk = 0BAA531A985251B6B10153C8FCE6938A280E93F9ACE7A56DC7F44FA8BB2F88C09290888DA8134A0FC43CCBB75B50B6A724D6812183ACF876036DC252FC893419280314C7611750875821B2F3AC4F1C20B06365709BC07AD4161C94C41930568996F8CCA58C4A0536CD5668488715593E66621F96C87A2178A36438DD4C390CA0532D30B88DB712CD3C50D30BAA91C98CF0BACF32C60C81468307CA35B47ABFE59174E53467CF7B1D376758F1A5926FE225F0078FF288AE24D23241709E471624285C4FBD35A333088DD643CF6CB0AB6B27C8B679792ECB8BA4C28CD8B09677F0A7EBB692ECA6777922C4ED6C20402533CBB9A3F1E0C10250209EF128A626B763B30B5E49C4C4691E3A13C2C2601B6666ABA1D099987990BD1BB00AB5806390CE8088CAE30A5B20567295ACA7F0191CBDB4795E78BF150C7954F9A49880C218C23E59014620E18F18C536DA0B7807B0C9E11B1E341C2E7E5BA799653FC669C1032AA014CB79769361B01091B5E000CBE100933C6D05714481F491B2355E72638831D0C4F4DAA18C6B4AE6E825E688CB812490FA13B43D306E5BC857FBC18A61923F6B685E5FBB5BE9C1871A9822FF07CAEFF40318482144143CECC5B0C579C84FC949EF359F0B24B20FC0A9F3300A3217A8058469C78B7998744024E275CD1C70A96A75FD86019CA031FEC081DBDB796A56186D9A1DF8C098940527D34A1DF2DB50B5136B6737829F0CB1DA3B131AB238207A011F02BCD346A0A7138EBE3CA2D78646D7F98D5A886A24B83F8FE84AE81627011A2633F1C159C3870F7C69126B3C31F50D356888F9077FC207168CB075E0940FB7A0BECC556DE78089ED512A39A6ADCDA9C3C5126D874B50C163BA7B091656E52F9813CB318C87ABAB12A3F8996A4CB446D0793055CA177A1BF455CB956443E56C160F4788CDC6B008C086403BC910332D3E3274F9825E9964484D7A52C91C275E153A496801C0E6C8084B25B53C8EBA77A9412291DF78BD39895DFED82FD3C92947A1BEAB598D33DA8344C88A9E073E28549FC939CF5C6978B6F74CCB23675616899FB69C5ECA0C6B68090A338EAB57A222FBB5A482837C097BD40141659A2A71D81E3BD38D60D0A903592B768B0CE60A7044350A75FB02F19482138603A9D8CB89BA6A32D37A15549548AACE4636047D66CA4DE6CF7643C2A5939478A39873820578150172F965D4DC6CC6D7ADFC360568A53C97D268900B7B20122E50CC5E460304927333BEB7BF73446064D76C3AF1274B503203804774B00F02534772CCB83CAA8475651460B156A7238DA2A9847D445F55687A84BAA06DD69D4A637EFCC1C09F81BB97B541FD77A96883869731AC776913ED6C02EF03183B27B4655639509B1E8BBA74837375628152814448F270B6DD865C888180AA071A2AB42740E93F05B32A9C85A069420BE2ECC5335738F9D46C90C5AF1625779F3A329DD693706618AFB300B5C7099C220126C8398FBB8F32A2A35888BCAA187950365F022585C2E08243F53122B6C5EE9A95B84151AFD10B2110135C2A940BB8370565BCD8739609C44F4AAA7C5C266C6EF7CAB87B351236702E327B3E53555E24ABB670CA6E505DF0E0AECF7513F7E36374988DD8977A0D93AF43A37E05A3463F2CB5F920B7FD117858380A96681229E87DB5912CD91115BBC11712C690AC98C449E261BF959CE716CA4ACC65704A5E93A7731D1A380DC9534A9611ED89C03E72210B1640FCAC8003235D3F3A09DA5B89C2EB0B7834142591A8A944A77BACB8BA6260FF3B0F434021502C0E97686C7FEB6E3B6214E12030C05316FA89A474E49DB8896284821F910A4490A40458A48EF0CB1639234C966609343A46C2F547ACA939E4E471280C1009E34BF837180B8233A4A2901557B3D4E91B707414507449296CCBAEC642470C8A51E6B7B759397F28C6E1163B0D6691322BAD05EA09A4F17D3D19262D81B22C5B2009B80D3E4C23A33144E9CACF2DEA1E496472E7E0922E4646C5F23C532A62A718C303E993DAE41D7C1A2ADB7C7CBAA8AD82B46F7784A71FE40D36681EF2FC2D1B757496AB547375415E5894F1A89D46A0206727570C8CB363343D0F4B73CBE08B3D639C79A808BAAB3791CB7FA51A546D39348E1A6E1162789C2A2A5890C3DF94380E53085127C200B138A2685786391D97D3B6FEC35D89553E3DC1289051A39501A814CC5EFE04BDA7D7AE7531AE70706277F71055AC32FA25ABD26AC6EA6975D5A91618476D62E311A9FA3DB53582462467B19A7A7F025A3B20A3B5E183EFF249C855BDB3719D5934C3BE5B64576B71CE525BB2874641A09C036BCAB46684E6280B5806B74C4192D0A55A54A6329EE7715C88AC3F1112BF49B7CD642553B152A45366FC925A4F34C2F97646C51511C0C9899161914654C052A06C6311022023954C28BBCC22B4641BC327AA37F494383639AA3F8A4153127F28BA56837A198B604DDAC05F82CB4C11834AA19637804C6643125C9465AC03516334679F36175B35C0C4DA90797E7A0CC36173EB07B8C541AB501151D9331666267ADFA60315305BE5345C46F628746025E7959DBEFA1FC0593AC94ACE87FB515A03B00BC84B66507ED2C6AE4D931FD28186C396582A56A63CC35AF5EA02E980AE2DD21BADB02699D69E857334B1E96A5086BDDD7152BBFB2C49A411085A94321A43E1491F0F0067B06688A5AB8D0AA17A9448004F25C1C5322B8D7B6563977FAD0C70E7BB961CE84CC685AED34B25F0D30EC53A7A5ED943F6EA3DFC917B01985C609C995F765BAA071B3749C89346805550BA19D958C535627E606B2F0C2706632FA466504C267DC7805E60A0680ECC158D6B4F75EBAA030292ED12CCEAB06D5C878CDDCA919050CC386386F5C8B3679B254959A06EBBA5520646E65250CE8B7CCA03227D1B43F49C9E9297269EEB64409712FB868CC47B406D9425868B6A304AA46E472ACB0197A071AB9D1622861916CF31AFC12466A4022A3A635EC89433635BB0AFE2C5F73670BA532714803B1ED473608C5E00C1AD9FC90C91281D5E081692D85DBFF0ACAF5579E2B1B6C5C1B61C3579CD13A7C8011CF5C19709366BC9676CBB8B2271C784672200E6A0254BFCC9B6387D42993E275AB2DA100301B11F7E4881CC5774D2F849E3D3CE63639CCF303A7F7914287079C6066525A4870B974D3DA72A9290B96C6846EABBCBAC2B730849A9B014100ADB9C66D0B5C0E7877DB476FF8A8AC947341D297C5F9697029439390A7E6C084EBBB136907A02EB5A351C94607FDA4EB44458C9CB8B50DA190E307FCD63885463523086036C5655E8E2621D4516A39084FA5B4F9744A921F497EEE3A46EDA05A4F1481AC5B4B819A66753B5B75A95640B0CFA07AA8A2033A8F51CC526CD1BE8CEE5677A78F18AF9608DA3A565BBE1A79C58691A45ADE1AAC936F15EB238BB4879AF7DA68CE2A106031A322C198527B94984A16D9B4A55BCB59E9EB4B2068182CC9B17A8CB2B8A776206B59258A2C9A19243C9925FB5D135604712BAF09E2CDCBC6ED11FDD530D83A901F06C166130B912A53C075178195662D9212E4219C63271485FFCC9AAA6222C9AA2C4E64F5D686BD4874AADB456ED086EBDF151EEA4BE6BF57E2CCA56EDB04C0E68AA4DEB1580D005D9DA4FC1943C85F75208D0BA3B517F89A82A2FD8BB96AC07836391B2DC3B6B0533F0D91E170986CD245FA2A90D6A345679377B767086A1173DEA82969FE3BFAA643AF8F98B97A8432AFA1A8C748EE7055630812BD2D80BE782A726743627E707F7BA069931C9929B37A9B0B04BC23405E5B890700DBC419BBC635C12C390E0A8618EA01F2ABC84ECCCA4B9F576664237355A40B7E931195B606C6759848C33A002B74B4706266AA93FDC2054D95E7EC30F1EF53F4730AF8A31A757A55A9FC69765F67CE7AC0413DBBB12980028BAA2AB2A378A55A283A6C5B73837F8462259C2AEAEB36C7BE5447EA22A85A561E2477742C61DAFEBC969EA66FF992455DB36B6029D863A8B896057251B8ADC659F294707CC643A91F3AEBD594B2D1C3C1168B474E011E7A280E316890D467B77732E48C7BB0216381AC8BBBF6A7D61B90C9266A33EC7744099B2E4D464F1A11E1D38883DE5C89371585A2247C4B80110566817808E52DBA03061848FD6338CF03992C1AB83F68A13E75C6565868DD419815A19983AA8D5C4123109A34FDCAD5FBC3C37C87D1D4A6B1366906A97099DF940B2564F00E37760786EF28C7896C09D04C0CD24820596E538EE3876B548667CB26DFB6073EAA5631B92C4BD05320C923B53552384D4AFAA047A2241416718C51C97BE1DF9C3A91995D515B21B57E338A864D6C447ED4E29D88C30BAC7D2D0CDBAC43E9F4176F0078C715ACC4576536D1BACE29AA7C31F7681222DDD15A3CF6EA6BBD3528D2EC8610D68D13455F35361778BC0A53EA94003FCC0252D8333C58152482AF1E9C9D2BDF12F377F +encap_coins = 1332FBC0A80D85A33C44F3A9F060AD7AC8727576105931BB0401F47B31990836 +ct = 8BBB95B44A77216A1F857C9B4E6E9568F3D15EE091E59697ACE775554372B198E73BEC27653B89D3B55F75B7DB1A77576F446D55C90787E92ECF76ED90496673F934B18D595BFB1E5857E518A203564C405E8312ECCFDC276F503EBE97995B9AC078CB44B2EDCC5FB259A6F64541CF39812335922B34EA6865AF7B765B76F988F93EFE307253697174CED49F4825E1D3CD2BE8A1D5804FB915E98116256A362DC3CA4D75DC4E0F01E4B004655027BE4BE66BCA7BB82B3CE5E557C77966BAE45B1977B4198ED04A36D0EFA02E40210ACF4C02CA0F8AEEA1BDB85D27AB1B845AE53841B2C14F428A63F3405DC3FC1F2C762DC312549095C34530E15D401E502A1F5EDD093A2E8231F3D1EE0EC0FED1B952D5BFF3584411525C354D8F4712E4D0A302E664A5B84373C5F1DCE8F98371EBCB3F15E647CBECF1395AA0A98131B14E5E6C72E091D4B58DFBAE3FE68C387C467F340088607976451529E75DB49991D7DADDE8CE88AA912F0190B79695F8F9CA2290D2B53DC94CE7196660DFD08D87A84B27DDC89DBF00DC5FA35A3A9B6ACCEE8764C66673E720CDF03935C71DF85B2764F1B2FB68535B50394E0BDBC00E045AD6C6FC2D316AE0D2ED105404D0D1FDE5750B70DC292A6FF4CFEC95584C1D048AD9077A3834DD0DFA9B5059E9C6E5D136957CF834D735B30E1F562D0E56B6A5F59E40974E51246FEEB2F5EF366A883D41DBC4BFE9088F0C3BDA9A63AB090C7386621025DCF626C769DE429FBCB9B26A4BFCA19E715687852F0AF8B2A50FF41B05BEAB7DAD0A0295A11E9336B582E01ADF7A8A4134B491134C4E009F4DCFF386B487A1554EC59CDB102CF86F9C40CEE0A36EC4A38C1842BA210DF536E27F51A543D5A79242F3EFA8603A452136EF9E82E5A030AFCF7279DEE2EDD80E83922252A8C79A325FF8EF4E13C7844583E7ABF2D608A546DBFB05E378AAB96DA8B7211588AB894C6E607203841CD5CFCDA1D718BD117D7B4950F99C4CE55D4BF27A9504C24F5E27C339F7383E968EC2C02A442B861E3D3B442381B5CAEC338C599C3E74B7FB7F3548C69BA1C6D6E59139B3AAA5A5653068605C59DD6DC196B446FD90BB44CF406565C43E9C154835FA3D128E1B86C6DCC28BB923F4499DD41EC9D66D3C83CECBE5AD645CB9493CAC66EDD39E67F777C4FE05D60B323EAE2A4720A95E3899D3FAB968927586641844B2D90D164DF22C5F0B0C6166204B2F27DC8A1EF21575D70461C991F2EB5BA9C1AD77D4AF863DEC89592A2B1865C67CE2E85686A7BF8662AE0A13A47282DC4227C4C28BF40A1BA78F85B68CACFB2644FE045A0D272EC5CCE447B9E52F153A81BD16AF972560A338F92B54378C5427817F240EF5755130675B18CE08124538B5A859D7A5FAEAA5EF892415C21989D5F53C73354DDB92B3C6F17606C4B6E7DEB05C2B245449D8B245192E8920CB27A823ADE7236C038F9D21AB3CEFD9C3818D0AB5249894DE2D2812E76101A1269179C8037759E85BB2FA1DDAC8F9708E1BAF809F3FE24517D7CC57B19FE24F937A8FDD7D11C8E145509B96620930B4E259D798A37965520A4BF8CBFA46E10D94638623BDF4C3EBE51DF5DBA233DDA1654D4F93DF8EA3DABEAF32AF2B41478A67BD4B8B1530E7D24850FB2A424F2C4AA4B4EACD50E099B50338719FAA6CE45544C07020120DE7B3FF2D6121576EAC8BC1E2073DBD48C796C9616F9D3B723C7A54E3174C7260A5AD035D69EB198885D51C0FBD64AA6FEEEB1444BBC19DC89CB1B7571D5135B2B892239FF83799744BC60E5FE861EE83F47C289E4E9C7C741879B4617DF9E5656CC52A8E44ABCE86E7A8ACBDDD5EF5B815FDB28C07DF5DCCED8767E3972E4CDCAA331D8AA6385A6A8BC7C5198D020BCF42C45D88658E85DC8F721A248BE6EBF67FD1CD0957D6B52B171750F7E71B009E1799E894ACAEB397FF4F233F3D763CF78F4229390CDD4BE7AF76E4E108A842EC7E671D25B4EFA1A4D905B7C95B12606A66DBEB6CA1D750458AFEFA8EC1F691D179E2E0A82C12F20C1875D428D02FD2DBFBEE9E54A0B05E15907F490476C859681AF0F71EA5C6A875C1F5AE547EA539064D44706FA397122971D90689B49EDB2CCAC9072BD490159EABA949E53ED51FB23F65AFFAB79E81C14A019F852284893D9F743CB38ED3B269A5FE7B5B36674EF197391207277992ECC957CA86DD38E0CAEFDE9B8CDB12 +ss = 5ED36912555632EDB046495C3351C3195ADADF07537FDEF65821A0207DE69041 + +count = 28 +keypair_coins = 2E889F44E28901E9AC7CA6B2FFFCB124C8979401B17064D7E1D51A7E3C3ADBFAB2638686DB9A0292ADC26E549C7152FF36D9A7293BF1380BF93F1498546EB93B +pk = 1A7C33D6425E068141B06C2EA57A010851A3B30AD021F6C0AA896E81F13F02D341FAABA798A73A96D0B66B00BAD5119A8D44797A1218B18224657573C9C556F5BC096F057F72FB749FE41FB9D290E76801B3712FAADC58A1D3A8AAABBB996277D6902707A21EE099B5906854D2D45DE78C1F134293D3DCCED2296C5DD6B1469AC91C2508008951C7FC23ECCB9A97F23501B21A625107A9C56EC39B724189CA111A935C3B58F262A29FF577F8459C74D9147DCB8EEB8689EE35AA131369CB805362289AE5973EFF1420A8ABACB650A1683104D2D82ACBB28E54205404D68292F99C9C222BBA8045769B73B890C33512C04AF0CD86273234E31E94349A322AA13254484C3B99A2AC01F6CA00A77BA7B78711C73249EAC054D34A1B0718814F407FD9D62A5D48212FB3AFE5518E3A671BCF2CADCF4C8ACB972603F960F194A4214CC8C9941FB31A6093A34C102AC18C26BA171A048D39860EEC35E890149B9BBF510A4FF2270C72A507CD4A0500BA593841974C419A7EE37859A76F02463CB8303489E61FF21492AFD03124368AE02C794642B7FE758F76219128AC75F19C41AB01ADFA1A51B027C16E5B15279587E4F4A929F34AD51B06A060058521AF6E4A24D54920A7E60C4174BAEC0B5FC4B498B23711C92BBBA383556EA6169F558F5AD29443012C5B82524CEC7EC43A448FE57D88C4BA220B56EBC2BF90A2471BC735E88C2E73A8771D669A1D76566EE80B78410D7CC02407091F4B6AC97CF2AFBE67A02E445EB51389B8233080D42E74E20650A514F995395F8B23ECE04E2A5930294B37C79AAC8782AE62DC0D7FB60FFF5C8D54E29FDDA87562250A70038355A70D6BC0C3720726F0586ACDC727D993988032CFFCD5A9B909857BE58C3B6A7C10041976A472D2BB7D3A0932A6C0CEC9B68126B98B40D4041F5439F395CF6EA5213D39C69AC91B85696B009084E662AAE8053DF014720B5759C5F81B91F296BC4103C7DBBBB6248F87E8543E8A660BD6BBB9F81AD5721D7F36CFC776ACBC8635E1910E4191730AA68E5E177D2D2234A645768D26CC069254DAF0C94A09414A36A3D19CA05A5475378254DDB0890CAB0E686438461A1D499ABA23EB3DC2B61AA6A46C4AFA2A262C6F09979F01FA1A98F62B8098BE6416C6CA5B3F8EE79E28C07CBE2855BB64C88F67947A495E87F03361080CFA3C2AEB2791671729248B488278C72E85BA2DAC1DD2A8A3933A7C7D44CF69F959C5ACCE38DAA6B796328565CB97E0274975323A7B20D27937F0C785152209060B05088243636039808C555CE29FD18A449A9A188AFBA922650F17102FB0A28381EC046164358E344FA250C05DF6BE895A5A0566B409F893E9D99CEA7B3D71EAC7A4D0081D951EB755CD39215C60C1A21DE05217692BEF3B8B4104608D198AB11C4C30941789919830CBA4E7431DC127AC770957257C19EB80595AB9BB9D4A0AC266B7A37B94BC517139C904595C327F5C1430AC7D7E33BEE0BA9C7BD7B266E290C3645821542F0E0A920FDB72707544A6D10C8A4C5A46148C2458B6C5AB06D42C2D7DB03CEB0C00CA37303C67BAE0038E0A373D539B918737116ED029A4D78A71D74F770CA53C9B4ECD19BFB172299C55A0CAC83FCDC8C74400C5BE76907679B48E0AC041987F96754588B83722B49159F92B41B82E6625A6108A957C34B2D0E30D536218ACDC56A093BA9940C075362C1028C6BA42A775864BBBBABCA70A5B7DA5CF05821A9A81AD022784202362E587BCE2A5B090530BE4C51EF77A887AF373637326F436C891304B72867DCED161C2F0342F23AA15D69FA887652081A9C42B0669A689C5FA77649BAB20EAC8A16A51759CCD0F86C06C610A88162291E6CC1D911A88FA26E7EA4A23A224582807F20A8F1E2202A92495B6393036A25D4CD97FC72A741E006B7E919358F6BA3C5AB136823CEB955382BB6FE3F61B6228467F3C6F5DE79531F11FE4F268B7F50F662C85A49B36A7213AE958A14E9BC45D0105AD13C591AAA7F1663301AAAC45427DA3C6A8873BA78E7C7473D41BD79534DF8145D1749F94CC9C82377CB388129D0692F839942830C5814A8FCA410E4CC754F7315FDDC20FC1D588AC4C3CFE9C40277B3F6173809DC063F6813852E47746DC6A9898918A149F5355A8A4F6A7475A31DDB485FBD23920C0D2D0CB20E3A9C63BFF3E047504A8965639E8FD0DB690FFA1E791FD +sk = E0C2121F06048FBC565FDAA305202D439AB3A81B31FA257AA6F4273547C1465610AE51C2C1C8603AA36D1575754A86C9194B1CC6A9B8C9F77CE6484C5198A193EA4369293798943F7918142F849C8D7479EB0588E6E6B4ABC4CE81A406642414EB4137C2DA905CE4AD2B750E7D966D34A3B1BFA8CA5C8070456B1F6D5B71E582C9E1E2BF9DC37AB60A09E797A43F66B27B04C13C034FA6F594264C9D7DA884C762B159D775F7750A1862216E8BC992C9B2E0D18513F409DF8B0811EA89D2A69B66D34E59BC93F5C7BDE25140A976A3195541EE22A7EDFB7F9D647616B31399B6C924022F036225AF7C34E6D221213AB5F7A20B908325835266DA1B456F5649B895BB032142FC5C700CFAC4C2A44CF1F96D57B8BA1EF2C9332A612E8BB9043559B5567090873D3F9450F37670B473A96F812CE1D71892E43C9FE61FA594601A27A98EC817DD822C625B98E0FA8F2D5A311A87A6C23B4DFDF44D7511373E64A4A18A833D654A946B0DA9694329023086013A919971CC4C8A45916901B45C25C28EB6051600644660796935E65A4700496BC32204201D5C8708FDECCBFE949D1339947C6BAABCC67EC901659D220FA4D1A3DA1A4ADC2B1B323BC4CABB6065D9032CCCA3DD3C8689C9A35810BCB30B99B3F55CF2AC8258C5B85C696A372C7AAB5B0DD62ABA06804466FA4C22B2CA0E09B7D47C4644898AACF6899C79B5321110F010CD40253E40C5920DB980A57C01B55C506A6662BE1253FF171412820272613940704F63E70340414322B69B60B50BBB4459C1D6A0F25065DA032455598EDF678505F54B51713209565FC4812AD5F8A05A926340FC3853719146D049017475A09A1FD2D47B35371D715C455DEBB3A40A8A0E83247B6B8FFC05B2E857B5D8B201E56C109DC155B720B2528301C49237F7A629234231FBA25C75D600BD360796A68991BC68CAFB5B0B7C748AB7039D8C4FD1B3B4DE76C193123E50109BA70956B9556F245CCD4330B888D43A84714E8CF17E5713B5AE5A9FC3A331718C227EF4BDCE131F31028D68529F06A218AC32317E9B7634C572513974DA2BC3DDC4C07F2C6B8D3AAF5734B5D9E691D790B0FA67CBCF36C0372C056C268E0C243132DB5DE7365310F5732151B80BC98A2BB76F9E8C616FB1C90A5B83CA5738BFA9CF1FB96242998A44D667A57B517A834834AC0F2AC00E91B32E4E7AAB452249D31575BC96C8652CA8E4C3C0D3277A60F5CA7BEB80B563391A3B8E1A1A97C85823928877954C28D052A2C116BDC325B687D26D1CCB3386CAC9BD4C10C3AC381E056F9060C89E25A910C78E677964D153B74554C8F38939F881543F820B6F11989589302EAC53111A45F7664616999D7A64AA26E4CD74539DD496A1F0FC530415B16FAA4AC86341C5400CB1BBCFFD2707BE12C31ACC9B5C94B806B71DAFAB1EAAA087EFC1419CD2978EC1B973336D27B69AF2FA85F6C33B73770C0F6B85D855938ED8758E6AA5724B8C0D457B29A9394A3528DE99CBD7A875BB5B299C8A6DFE416104A59AA9E958E3828D3C651B5A9A7E81D7738374692033C4C68254D5170204F83A9B8520016466FD9189EFBACAA23AB8F962AF7D66AEC2E27E468B9C326711673839541262AADC49BC135EDD11792DD9678DA0991A017CD1239DF3C9B21C57623362BBC1182CE6000217F6AB0EB9AD6344AC71AA30048B7BFAC20AE1E97559109E45B5A9FD052594B4CE4C5C73FC105C9C8B63CCC7331B70662015B5E36057B4C71E4A510A55EB7FB039CFC9A8CA4B002A50966A158BA7D4D21449AB67DEE747A7588B4A5B107E15A817658CD56927E84816C07AB3CD968C425A3431F65E25496FFFE96E29214445EB2AC1E78A644305A9724761D0C51AC0C19B0B4839C94BC2FB5DAE888E0B797506806C2FE27F1F4280427A34BEF3643F022D05866BAC17595906438C363C4D53422D994370B1C8D2084D25E101830A57BE5C754196B75DB44E84800281DB3829D8A0FB519AE7C3C854650D09E232D993AF718501F28C292B59C3F0D50D50D75BAC422DBF23CCAEE4466556A4CBBB8D60932016D63F90E4C84D12C62E4B0EB0176FE7012530B5BAA8F531608241116C17868600BDE858F9A9BD6078165BB34FD27273717B5CC5D423F19CAA54CA4850AC896E163C70F9140432041857521A7C33D6425E068141B06C2EA57A010851A3B30AD021F6C0AA896E81F13F02D341FAABA798A73A96D0B66B00BAD5119A8D44797A1218B18224657573C9C556F5BC096F057F72FB749FE41FB9D290E76801B3712FAADC58A1D3A8AAABBB996277D6902707A21EE099B5906854D2D45DE78C1F134293D3DCCED2296C5DD6B1469AC91C2508008951C7FC23ECCB9A97F23501B21A625107A9C56EC39B724189CA111A935C3B58F262A29FF577F8459C74D9147DCB8EEB8689EE35AA131369CB805362289AE5973EFF1420A8ABACB650A1683104D2D82ACBB28E54205404D68292F99C9C222BBA8045769B73B890C33512C04AF0CD86273234E31E94349A322AA13254484C3B99A2AC01F6CA00A77BA7B78711C73249EAC054D34A1B0718814F407FD9D62A5D48212FB3AFE5518E3A671BCF2CADCF4C8ACB972603F960F194A4214CC8C9941FB31A6093A34C102AC18C26BA171A048D39860EEC35E890149B9BBF510A4FF2270C72A507CD4A0500BA593841974C419A7EE37859A76F02463CB8303489E61FF21492AFD03124368AE02C794642B7FE758F76219128AC75F19C41AB01ADFA1A51B027C16E5B15279587E4F4A929F34AD51B06A060058521AF6E4A24D54920A7E60C4174BAEC0B5FC4B498B23711C92BBBA383556EA6169F558F5AD29443012C5B82524CEC7EC43A448FE57D88C4BA220B56EBC2BF90A2471BC735E88C2E73A8771D669A1D76566EE80B78410D7CC02407091F4B6AC97CF2AFBE67A02E445EB51389B8233080D42E74E20650A514F995395F8B23ECE04E2A5930294B37C79AAC8782AE62DC0D7FB60FFF5C8D54E29FDDA87562250A70038355A70D6BC0C3720726F0586ACDC727D993988032CFFCD5A9B909857BE58C3B6A7C10041976A472D2BB7D3A0932A6C0CEC9B68126B98B40D4041F5439F395CF6EA5213D39C69AC91B85696B009084E662AAE8053DF014720B5759C5F81B91F296BC4103C7DBBBB6248F87E8543E8A660BD6BBB9F81AD5721D7F36CFC776ACBC8635E1910E4191730AA68E5E177D2D2234A645768D26CC069254DAF0C94A09414A36A3D19CA05A5475378254DDB0890CAB0E686438461A1D499ABA23EB3DC2B61AA6A46C4AFA2A262C6F09979F01FA1A98F62B8098BE6416C6CA5B3F8EE79E28C07CBE2855BB64C88F67947A495E87F03361080CFA3C2AEB2791671729248B488278C72E85BA2DAC1DD2A8A3933A7C7D44CF69F959C5ACCE38DAA6B796328565CB97E0274975323A7B20D27937F0C785152209060B05088243636039808C555CE29FD18A449A9A188AFBA922650F17102FB0A28381EC046164358E344FA250C05DF6BE895A5A0566B409F893E9D99CEA7B3D71EAC7A4D0081D951EB755CD39215C60C1A21DE05217692BEF3B8B4104608D198AB11C4C30941789919830CBA4E7431DC127AC770957257C19EB80595AB9BB9D4A0AC266B7A37B94BC517139C904595C327F5C1430AC7D7E33BEE0BA9C7BD7B266E290C3645821542F0E0A920FDB72707544A6D10C8A4C5A46148C2458B6C5AB06D42C2D7DB03CEB0C00CA37303C67BAE0038E0A373D539B918737116ED029A4D78A71D74F770CA53C9B4ECD19BFB172299C55A0CAC83FCDC8C74400C5BE76907679B48E0AC041987F96754588B83722B49159F92B41B82E6625A6108A957C34B2D0E30D536218ACDC56A093BA9940C075362C1028C6BA42A775864BBBBABCA70A5B7DA5CF05821A9A81AD022784202362E587BCE2A5B090530BE4C51EF77A887AF373637326F436C891304B72867DCED161C2F0342F23AA15D69FA887652081A9C42B0669A689C5FA77649BAB20EAC8A16A51759CCD0F86C06C610A88162291E6CC1D911A88FA26E7EA4A23A224582807F20A8F1E2202A92495B6393036A25D4CD97FC72A741E006B7E919358F6BA3C5AB136823CEB955382BB6FE3F61B6228467F3C6F5DE79531F11FE4F268B7F50F662C85A49B36A7213AE958A14E9BC45D0105AD13C591AAA7F1663301AAAC45427DA3C6A8873BA78E7C7473D41BD79534DF8145D1749F94CC9C82377CB388129D0692F839942830C5814A8FCA410E4CC754F7315FDDC20FC1D588AC4C3CFE9C40277B3F6173809DC063F6813852E47746DC6A9898918A149F5355A8A4F6A7475A31DDB485FBD23920C0D2D0CB20E3A9C63BFF3E047504A8965639E8FD0DB690FFA1E791FDEEA5DB7A82254D19C0A0C552CCC92DB9C3EEF74CD73A9937B7B7298171313F12B2638686DB9A0292ADC26E549C7152FF36D9A7293BF1380BF93F1498546EB93B +encap_coins = 13A6DE9E8AE97898FA9382E95D49F64EA8592ED38C3AAADF36D20C243FA0AA53 +ct = C06383D9BE7A89BAA0AE2FC3D842107EA71D763793D7C27FF7DF821A4D668484B1534DD748740FA0AC367294A8A02E43B44D7E1A0CC2CD312B341166F2E645150728F0247BAFB5930A2402676F2FF223127B39CB6B4B650A7DBD957B12FFE8EC42D72CBE2360E9BD85C074B46509D29A3D57B4D18AFD0136B73F82C88F4F13CC30FFBB23EA0B2F8E1944C3B79CCA830A244B92639B745B5BFA594780729C0139868750074C492106FF0DB8F368AB9FEAA01CB2451B15EF0CAC24E3709083ECC54FFFA6E1481BDEE58455A962D2958D6080677D267B238BE229C373BFB5C246F8512996719BAF4ECBBB044AAF719BC0970CFA4895C63A1E3ABEAA711880B1DD360FA4B08523949E8CD28F85BC7F98F106A30B753167EF08F428C096F83EEAD3855E2376B998E7308E5E98E99C8CDE09A3F8FA240D6E0713F66C82B19133715B01D92F83284B603C22C4B084EE07A45B03EBE8275C8A251D5104E9DFF5767B60C7743ED8BBABDF49B10C1136AC0786FFCBE22C945957CADEBC7E0B6648EB63513760167F996E9ED4C5267F481F8331F7D766AC7B26F127F56E71FD3AE03B6D071610580A624A51EFDE2C63ED27E30477F56197D8E64F8C8B0C9125DB5ED0DBF9B5663F001FA8BD60BCB3DE284F47678A686C90E053A76841B13D9CF29A407D769C00CBDBD0663B3BBF0CCFD6EE324563D2F74D8451196B04E908539E86A86353C3ECF259B82CE3FBB4A90B206C8B395B13836529EB7B7676F0451780FDEB90EA8032C35EA58B46AE072F8CFCB1BB2C1EEB6C79E7D56946B6F767F5C2750E07950FBAD7B3448900ECC99B62551E512B9801B8D48FEF493FE49B49F4A0AF59503660ED1EA68BA45BF8FEF3A86CADFA92519577B45D008F0392117B21936C7B2E7B3F2AD5DAA356EB66757473E81BCC6CC404487D63AEDF20F4C0C195CD5B8BE51B28A8EA15D5CC1F8A7B61B08B45A16F390C4FFCBBF40370452268F66648CA1AB3C23BB3AD7DA5220E0F478DBC0D9DE4DD7CEB0142C196CB46681CCE1E35DC61F71BF6530EAD34B456E2FFEAA00D4C3893FCD15B120F91B1DA7501F87BBBD2BBB2796DB846381AC0A9029B1C69CDBE9F062D0BB088C6325A9DE158B84337D4C0133E8919700F2A4AFCD4B7C9C935B5515186E6626D9985CFEFECFCE5411FBF49D1FAF6286F674A869D69B1C5ADA149D6AB05BEB449EC1BD6140A1174E67E00852F9013F9F7EC30A5DA5437DF5F986315649A2EA0D97C1D426BEA7C809C61AD88BD09665C3D043F3627469916F067787630BF8E7A40278C5C20B78131C52C50BCE298A5E2F3BD050BC37BEB85428B488A3AFFD17093B3841CEA23EE256B487FE58BE611726019C42D9932D3DAE16C5DED6A2FDF773477B5019D5F634984B0D3616F0C40EED9AA7789B4E9D8F237FAFE7DA73A75D8F9EB7FFFA5101D53219817E95F2013386E23CE6355BDF04A9954A85E5127AD6A87FE65714976727627BD725487591A71BCD62BB83D7345681C2AC464F406D8103796B062E249B3888D8AFFFB8472493CD2309BEA341077CAFEF79B6E8C49E55857944C8A83F85FF9441E1797146F6A4AF7EF4F4B70EFE0AAE6C0F786CCCE576ED20BDBF491A692BAC306B756A1164238F2C6B6E99A131179E963F119CD4DBB23CE61FC97D5A127E012575A88F4A76FBC04513BE681A87AF43E3059BDAF763FC294C7667DEB90FF14FB8D89E0D8D1540B5E940463E65F6BE6689F39C26CD8A7807A935279E57DA5114923C0B8AD4235C7A966224ED2ABC1D241B2FFA18A77269352008FA593721E01E2E5AEF70C865AF810C267BC36D665CBD554B048D7E8E2F6BE70951B9B058480635632C9387F34BA13FB1AA4726754905B87FBA5FE096852CE07E19C9E2F045B51DD4D79106E08C5D08BCDD2A462FD134F2CD75577487D6479FE760FEBF8003114F1ECAE3255118635FE619BD135591F24130B615D0EFE7943BA19E97CACFB089BCD33E6D8C58C426419F1A0D961F5D575B34C379D374B68535894BA6B0C562A61F007D76E3E7491AC7C3B10A42409E053F94ED54276982DC1E74B007FBAC8A5458717804666F1B9828EBD217B8DA5081ABB8AE79995C7B6A0DB6390159C5C62A14C0B1D957C504EDA285E3DF6BCA22AF51E8F94AA6E8B597AA73EF1141A699C69175A486D4990BA0B28D8E68769B2510BABCEEE5DA34AFFFC8A60EC198EE22D8844607FF7F7 +ss = D589AA0B4F2ACD9429BCC8655812D26F00A27CFCA9CFE39FB97F7500DD00D950 + +count = 29 +keypair_coins = 174AAA36410566DC15A5E62874218D7ABDDE0B2C0F30D877BB80B1ABD5F5A0A43AFCC6703873BA41A425FF19559EE47D056D3B5B9E567E5CF24EA17010A5C3CA +pk = 0FB39B1E4B0C22871AFFFA785DF48224D887A73CB9B9A68AA2A768B3AB087BD9CBF6253378885113BC6168D631121A5FAD30CC822133161B0C39C0A2B30C5C33383555B415C6FB0588D16B3B890894026BB507D080F93E13327707A54725A3A859661E49184025F66F2EABC07C5072A21275440C9D520C9D0570CD4BF8752DFB37CA066AE450A3E5E6694B9581F6195B4B580FBF55B9F933C6F9867AF36786FC8C24CA71B47127AA08798F99B113C1C661483A6AD196028B7752D9D4732622934A5B05C8B5095789999796039928B453E480F008A4BBA7A49AA65462D71672450B56C441D2440FD4E151C9D0518D10534F24C1A355A5FE3AA1C4365493C7AD66F254300C373AC264B3339F3AF02E2736B8023A270A20BABE69CC15D494803BB515EC54719619BACAC9AC2A58A4E67FE303AD9565B33C8472335710E0544C4A96BEBDD98454058413DB3BFC2958803A5963C725A4CA074EC9383DDA1E892AC9E2210A60D19D5E4B3471F9519ADB6BCB79C16742C07E933767EA4B20134BA8329C0C026DA0E8A5E12770C8BA4EA7361BAE91AF0F953B47032DA6640F202A8468A096BBE92CB8B02CD524B38A7A4C69D5B9818C8B88DA78A7F2236746217A75A1F6E2805533A17996B7F972939A23C75C9023B715A714AC346F8102C2F8A04733495A4B456F179372202477E60B60BA210365274A393D999390628C7F63D2AA2B05CEF68776DB9150C39B6ECA9AB32DA9C6753208D74A2E7911AF644A028D2C5A68494EA3DA6B08A5B67D11090C587F580800E04C942445BFEC357E33388A0BC328808624E56979161C3C7AD3BED206B3FA7AC6BEFBA42D067A1B350CB557BAB3F87A05B22EDB886812935402915E5EA51F41B70DEA48AA2AAB4F9F247D3F637EFBA51120A258CAB867BE231E67675FF29C83BF982E7B15B766A84CD9369AC28C29AF664F5C7A7553EC9A0C3285CAF26CE0B9C84D504EAD34617F303F6D0CA807A7C0DA1388F7407BC03C3111C8C87EE158E68B53CE8C668E8343B2303BCAB6A4D98857C7070BB103C47C60CF59049901667B3A27B0187AA53008CD1A57C0F2465655D8CDC03494A6074C38F028203357EB2A37967A60A95A1DD22B15F3D723F812890FFA105F1B9B2A238914F39975C1C0F49244E4DB7728E15329F2BA8ECA4CBE7B76029C9A6F721C72E27149807AD9536D76A57CEFA39EB1D93700555E324AC5149A45793667B37007FCF8486C6C5D0FFB3ABED3CD8BE0B87D1B2C80AB2D3E40949F94236E727B92E83A9FF0B40100B200B6519BE545E893B60D09B881C2681D335F9F501B0910572645060BB8A141E910E6AA582F652EBAA79BF2F77B373459CE87C474213EF0257295ABC192C05BF31CA3EB061648455FBF82710F8777636C229EF49C6986CBA9816D11D636186B62D2B06212932E9E727954530182483110958B99B4CD692944B2B87B618C6CD7765336E4642D6950A5C5642DAA8974E498EE2968243289E1CC8460130C034B45660B3668863D719AA9C8E11DF72084AE53C3B4D85A7860C42B2482C9A050B1065DDA241B43EC996E368C6C7BCBAB69A433040E56BCBD4F167A9D71C5D336234BA4A5E47A956459B4C0477B4780769530CB6C9B4A2CB6AA27423F76A58F89753196D8CD99107EC04741BE761696C642CF6443BB72C5DBD336967C336672AEEF98AF9B203EE6F4096531034F890B1DD0862A0737777278167A2AEAD708533206B3624B906C57E4ABC42BF61364E550326A62D4A74FE889AE41839820FA6FB487569F53C1851734CFEA5F501104B9240CBC2C87B0531F6E008B38F1287BE901AF59A45EA19DE5B2C4CE78BA4EB1ABF4284CE0EA22F18C2A26F428BBA481E54A1745702A8AF06CAB649BB5C7AED2342413157A811A35B162B6F444CF2DDB22A24BCE8E2925D83313D0B760017B65B8867419C7A1F57CC785B26BBED63EC79B83FEB60674E2497B87BE24AA1F899CA59D6391C1F2AD9AA90806FB1C97DCBFE5B9934BA169386759532B1117115E77884623C84CFEE522BC0735E1F34EAF4B452530418F652E6F15CC3CD88A52E98078424D486CCCD38272A0819887D85811E6BF8DC3689A3112B1B86D77D2BD91A53D123A11B6EB4CE3A8471C35126C017053C8A8F46054BC9C92752631AB8A9100B04F79E14C74A75B0CD39D1173C3F411AD1EFDD8BF4BE2AFEA69C2327BD070CD1432C8D219 +sk = 25933617206AE881C4DE291B4F269F2E51897FF29D3C6803E1A4C58E53051E879F1AF333393C75B366CFE2E84CF9CC930D1928298897480571D7050751601BC119B1071412EFE8873AD325BC00420D13A752D33087BB6F884628DEF98F4FD21D01113219203F93419875C91CD33C7976B7A45F510F70E6002957AC49B862CD35640CE84E6B989201A74EB76422F88B31C94ACFA811605A32634199BE1639A50B709E89683C5CB0C975D627B76223EA48A2352C8BCC254ABC60812A6A5AB7747CA82073D1D31FEF708866A9801AD067A6DA0D848C409861C350DB559A0AB1D91C9BE0C149D6C241A13849D9EB2DA4B9B9B30B348217491449A43EA4544467824FF954C4869C8DC0B2BA2744C8D38BA584CB78EA6F6188BCD090267BA46882F16964AA003E2C60105415F937CF13B9CD00456D3545BC5E48B6DDF61A14ECCBAC23BB1D071BB14361B4C9ACB7B48805B7890C3676B550238391B388260CB0E2567F725B0382C7174440D82BA8A6D226D325CDD1C26ABD510ABB195B73D203F9DB7DB44ABBA87581A3C57F079B44A9455E3FA16EC87A0CC14368569B35517272220BA7760A8A0508BF0033031D42763FE89B611366B8B93D2D523D5C872BB99BBB099515A5911F1182404B7B4CCEA91462C6A5ABC16C64F55AB38A763A03BA48E0268819B6DF8BA88704AB4C7BCD8F8A150CA434AB0632ADC522A49C0E45997375D69901416792F845FCBC1A18789B22870401D6872374B15C851ABA4C3CF5A8930D34C74FD444A2C87F90D9353CD77361E26C99C8027B50504BC5B3F2BC27F3978822113E13D71E19E3915A9A4F0646AEF6D513E155B41237B2AB08BDF38322BF4C00706C0F22854D080BB8ECF58CC9B75D19A0185412A74B3C7D61A04DD8CB07BB37156C46221A7183BEB9321C58A924048AB86032F54815DA1BB33AD4312391C1A6778D9070B1A4542AAE231AAC97BB5E1A1CF42792C9921313C07ABA3A8C15DB5D1BE417C3888A2E0921A7AA1926044AB865935A2738B4378484B44471DA250E41925E976BEECA9F93D191B0C85B487BADFCEC4BE7C7683C508412E096AE888BAFB97CEBD3266EF7397004CC56741F53683034FC3160522E6BDABAD190C51F31926AA94B2F2A4506D69705623E3047176B46169AB8A715B84848BB4FB9830BE744CAD7591DD8D128C1A40F8A5B2829A92177D73CB1F319C0F45557A69AD790C87A6B8314E618444081C221C07C4BA5C1C450B8080DB278770A0C110DC386FB8411D4B983503964F7B6AFA10AC5154CCEA9E6222B4A70E5175F125B0A83010474311F8EF84FDF3AAB6D508B313A93C29675ABE12CDE50BD4B5B7E13C7228D9AC9DF569CC1BBC995EAACBC2290B0293A2BBA70AE8757C5A7CE84386093E02B3201573C56BCC368A7DD404371453C38823BA4752EDB663E5FB99C5E91CA9BA94CAEBC9D60A6318CF62168A86C0C419CAD1BC4FE514A745BB2C81701B89BA371CC1F10B50D95086D99778383108DFED849A1F74696464AA1D67F7F40BBC69C1FD907696D6227CF20750D68A3D36C600448C91A523A16E5C84B40819BBB2BFABB2CB03B658FD0656F410752F52BFC9BBA4A3A8D09D5835B1540F5DC673DF71540F560D411B562F2B047E195E5C5BAAE8A93147C41D8F282128B8C455100865CA55516709FFB8F33D20EDA56796324B6F3B249D982C7D49A84FF076BE2187DD4A51EFB5592F9549A27EA274959087D3C2A5E217CA3B73391505DE8AA664288B95926CCD8028BB7A7C24562CF2AE14FBAB852521978DD05BFB52885D8C86CDB6A8DF1755F8AD12A7BD7B00B2A7BFA49693646653D1C50FE826CC9C39988E25D316975CAC26108E5B9570979DEA5843200C346E4C360E0B0F6AB71397999F4AB2F7AF368D3218093D1C69853224F016FA11C408ACC211858BC53C62AC6D395898B9A02EB0F80E5284031B39AD5409D9C28EE549D45712DCF080FC6BB5B08B526A615173F543B10BAAB4F9254EE7B7690C758D20861559C1FDFF88C10A14EEEB2917FE47AF7E63259C1154CDC4DF1A56AFEC68855FCA341451BA7F617E9595F009B0DDEF81741D78BB2851C3BEC505C070A8C9241E54B2A2F661B06323E62365A90E7B5D0D10704A184B1D5782967122D9864EEDC852E592862DC868DB21F70B83D3A482D0FB39B1E4B0C22871AFFFA785DF48224D887A73CB9B9A68AA2A768B3AB087BD9CBF6253378885113BC6168D631121A5FAD30CC822133161B0C39C0A2B30C5C33383555B415C6FB0588D16B3B890894026BB507D080F93E13327707A54725A3A859661E49184025F66F2EABC07C5072A21275440C9D520C9D0570CD4BF8752DFB37CA066AE450A3E5E6694B9581F6195B4B580FBF55B9F933C6F9867AF36786FC8C24CA71B47127AA08798F99B113C1C661483A6AD196028B7752D9D4732622934A5B05C8B5095789999796039928B453E480F008A4BBA7A49AA65462D71672450B56C441D2440FD4E151C9D0518D10534F24C1A355A5FE3AA1C4365493C7AD66F254300C373AC264B3339F3AF02E2736B8023A270A20BABE69CC15D494803BB515EC54719619BACAC9AC2A58A4E67FE303AD9565B33C8472335710E0544C4A96BEBDD98454058413DB3BFC2958803A5963C725A4CA074EC9383DDA1E892AC9E2210A60D19D5E4B3471F9519ADB6BCB79C16742C07E933767EA4B20134BA8329C0C026DA0E8A5E12770C8BA4EA7361BAE91AF0F953B47032DA6640F202A8468A096BBE92CB8B02CD524B38A7A4C69D5B9818C8B88DA78A7F2236746217A75A1F6E2805533A17996B7F972939A23C75C9023B715A714AC346F8102C2F8A04733495A4B456F179372202477E60B60BA210365274A393D999390628C7F63D2AA2B05CEF68776DB9150C39B6ECA9AB32DA9C6753208D74A2E7911AF644A028D2C5A68494EA3DA6B08A5B67D11090C587F580800E04C942445BFEC357E33388A0BC328808624E56979161C3C7AD3BED206B3FA7AC6BEFBA42D067A1B350CB557BAB3F87A05B22EDB886812935402915E5EA51F41B70DEA48AA2AAB4F9F247D3F637EFBA51120A258CAB867BE231E67675FF29C83BF982E7B15B766A84CD9369AC28C29AF664F5C7A7553EC9A0C3285CAF26CE0B9C84D504EAD34617F303F6D0CA807A7C0DA1388F7407BC03C3111C8C87EE158E68B53CE8C668E8343B2303BCAB6A4D98857C7070BB103C47C60CF59049901667B3A27B0187AA53008CD1A57C0F2465655D8CDC03494A6074C38F028203357EB2A37967A60A95A1DD22B15F3D723F812890FFA105F1B9B2A238914F39975C1C0F49244E4DB7728E15329F2BA8ECA4CBE7B76029C9A6F721C72E27149807AD9536D76A57CEFA39EB1D93700555E324AC5149A45793667B37007FCF8486C6C5D0FFB3ABED3CD8BE0B87D1B2C80AB2D3E40949F94236E727B92E83A9FF0B40100B200B6519BE545E893B60D09B881C2681D335F9F501B0910572645060BB8A141E910E6AA582F652EBAA79BF2F77B373459CE87C474213EF0257295ABC192C05BF31CA3EB061648455FBF82710F8777636C229EF49C6986CBA9816D11D636186B62D2B06212932E9E727954530182483110958B99B4CD692944B2B87B618C6CD7765336E4642D6950A5C5642DAA8974E498EE2968243289E1CC8460130C034B45660B3668863D719AA9C8E11DF72084AE53C3B4D85A7860C42B2482C9A050B1065DDA241B43EC996E368C6C7BCBAB69A433040E56BCBD4F167A9D71C5D336234BA4A5E47A956459B4C0477B4780769530CB6C9B4A2CB6AA27423F76A58F89753196D8CD99107EC04741BE761696C642CF6443BB72C5DBD336967C336672AEEF98AF9B203EE6F4096531034F890B1DD0862A0737777278167A2AEAD708533206B3624B906C57E4ABC42BF61364E550326A62D4A74FE889AE41839820FA6FB487569F53C1851734CFEA5F501104B9240CBC2C87B0531F6E008B38F1287BE901AF59A45EA19DE5B2C4CE78BA4EB1ABF4284CE0EA22F18C2A26F428BBA481E54A1745702A8AF06CAB649BB5C7AED2342413157A811A35B162B6F444CF2DDB22A24BCE8E2925D83313D0B760017B65B8867419C7A1F57CC785B26BBED63EC79B83FEB60674E2497B87BE24AA1F899CA59D6391C1F2AD9AA90806FB1C97DCBFE5B9934BA169386759532B1117115E77884623C84CFEE522BC0735E1F34EAF4B452530418F652E6F15CC3CD88A52E98078424D486CCCD38272A0819887D85811E6BF8DC3689A3112B1B86D77D2BD91A53D123A11B6EB4CE3A8471C35126C017053C8A8F46054BC9C92752631AB8A9100B04F79E14C74A75B0CD39D1173C3F411AD1EFDD8BF4BE2AFEA69C2327BD070CD1432C8D21972998CC3ABC79487CA0A4DB5B17514E9961916D30AB9B500430BA748C5C792263AFCC6703873BA41A425FF19559EE47D056D3B5B9E567E5CF24EA17010A5C3CA +encap_coins = FFB94FD16F27B1B653E0882F4E86B8AD651A38C01A33FE0A34DBB425937E242A +ct = 37998B173615940C3BF53E11B3880C331E90956325E7CEDADFB78077D8EFD362DC51B95258A770E8A13BCCD88ACED0C515443EAC997C63CA105619D380D89E54C435E184509C93A70A34E5A723DC49CDA4073DEEFA1870AC8A29BB9DE4B3B876A9C7D018BBAD13CB6DA0E2781F97ED740DA54E238B70685A71B17ACE1383BD76C115622354B0CE4087AEBB878EB2730C316BB7039AA041125D641677647CF3889D713F71B32F8CECE202ED93A19E7BB26997C2C94D4B7B323BD2BD3A6292BF9F3FBF5541CAE89020F8753FEEF4DFD3ABF192587496454F5CBEC41B3A2DDAAD1E7B8AA3C5FB27BB4A1DB9EC2862CE6FFFCE72B1564F08BC55A70FB8FFA50E9863BFECCBC6DA0A4008DD52AA37117A8A9BA36CB71154097CF436B1361668BCB8BF46DA108AA926228CBE29CD129CE75653D09276869DF01EFAA2F01A7F6FF3CC79D67EFF02ACB5946A9B1A252B462FB3EA55F658F765E1C0E350B5C4B698C6329A8C8D09919BD2EF8E139AA69259593662A8AC5CF7EDEC8DCD3E99916F472EAB06FFCB97B4111F2FC785D32DD8F877088B069A26C7AD4B5A8E558EDEAB834D65E1BE758B657F34B3D33533BC4A0F0E6DC54CCC3097FE80C81A74CF6542E14611779100D2DA1016019D87146EC0AADD5F55A39FD5C4DD87E53D231590C6B3F6AFF2C961473EFDB11F84405CC75CDD5E8899528718D3ABBCC170AC046E15974D1C144482C6CEE14E46FA2B2A240A009DE90D184EF28F9A14481B6E8D3D2BB8457CF57AF3FDDA6A78525CC9BD6EA88C8E2DBDA344FFD75F8272C5E522CADC826891C9E8FDB37E904DF58F19623EB93405DA9B744938E591DE0F94671CD099B6E7D91E41D4FFEA876F86199B4B17EC50E02906404F4F129B482F6DBD56DCE6DA7F0292CDABDAC45E7449E1135DBA4448D53D127329803884CB55F107F1EDA7C20AB1BCFBFFA3924358345B19660DBB861B6145F480EE9D459F34451DC4FEF391230EA0936E13CE90F303E32993921B5BF3DA7D9EFC5D568489CDE412BB61A8AB08D3FF1FDCA62A7275F31A31D848E8A6E228B5939AA1538927D8B0E731DCECE21E098C65B687B670CCBB157B39F085BCF146B9D57562F8909AA4AF8821C076D4A72D1E752401F57FB8CA022CCFE043CD023FBA7EB2C769C61F58FB502BA12177FA984CAAAD1373D9B482BBA7BAED50DCFAD0458AA97AFB433F01A4872F025954C02B9DC34854E4C38E9BE310F96F91A608B0168AB0D388F30E74B10CB27845FCAB6D23A38870422DB1168D092D6B2640C820D6F9E258B686D6B25980E811334873EE1E13324A517CDCADE7A9306542AFAA838059BD9A3F14273A26090CB3FA9CDC97FFC60DF976B5B21654994E6D36DA2254CAE88092EFD7C15584F314851BAFDF355110ADA596CB59F464AA6E2587F97997F43E9B4FE3FE4C76E1B377999478A2611A185553F129E1C0DA143D0A0132DF622B8C18BA014D7A9EA20BDB11A70886A82FE54DE44EB7FFA907F940355F683ECEE7DCBA1BC30E7B4B69DFC37DC0BE92937C70447E0D522DF9167F28B4072954BB3A8F0C99834F0C68E885C1984FA8A5F878F383C1D5963D311A553180F967A7CFAD6F8B4555192A27A9A6A39106A12C00CA18C1DDFBB53532733F0623A43D915C2044D5EFB8CF4EC11578A481873C4E401B96F5095222D829520817CC226763BACB5A35E7A007C1D6DD8E03CD33B5F5493F9C34EC4DF96FBD5B1F24E471476B3823B329682A6FA3D7E24C525F41E898F6D165CC352AAAA74907581C7435BE5FB51156A4AF2958CB921BA0095A6D894CE752F3B202C05F3C588FD00F8722408F1EE0153FBE9B65187D36AA2145F1F0943014885E254ECFC63E2C35727BEE51E842C3EEB599AFB13A6834E95EC6AEDACEC3A01D6E2D289967353A2BEDB9C6B5E7EFE50D6F586A6E733A4D9528C386C9515D3D33FEACF6360B88EBC1BE2D6C119AFEF50ADD92F02C0C58D4BDFC3EBAAA669A459DA6D3468611E25350F99EBF61F06EA1CE70D9B2FCD15F21BF76926E1D3768A444E1A318891CA5D53951D1F6B13223556DD3515E95FAC5735FBA2B22F6D5FBC69E499385BFF6ACDB7ADE30396462C7F8198B0199408488CE801AE6D103D51D80ABF0ADC9AEE7AB50A0F44ED30087D8EDD6675BC4A763AC6B0B3FFC7DF6604341B4B174905B2216925635D61303B12304A9C69EC8FD160E1A6735264A413A8E63 +ss = 14EBECDC57F7FEF55529B5A4ECE39238C7A52C61BB7AFD5B3EE65FED1BC5822C + +count = 30 +keypair_coins = 351FE4313E2DA7FAC83D509F3103CAF7B4C64A4D458FEFDF636785AC361A1390A4CB53697A77FE6E39EF13C7460D657197BC1C7EA3DF65B85C8DEB43A058BF1D +pk = 319442D0786CBA94AA139895EBA98BFF419A6B42644B68C5CE534B0F705225F4A7B28CBAF879B30FB633FDC2AA70C54639F180E76B927CA4622F086601A62AFFF5335FFBBBCB52075AB7681A55625E01CB31248E17708B7D728905B64976409D49583272FB6208E06ED7539FC4F87B1F0B821DE4155B79531546824BB4A13E09CADF66B7889C6BAA9679DF6187690C9FEA246226A7A405B997C322B4AB041D7FC0B24AB54400813A29C87204EA29414A7C80AC65D374998494B914467F44241251402ADFA34616B021CAF86B2ADC690267A41C40B763C11506B658132C59C0E887888A2D5A8658BBE403758C84CF86611026A5BF802AE4E5031771C42D047EF42021A7C59C2C0A6E3F10B9ADF716BBA29D824B271D787379021EC44B4B39C3493BD980BFCBBA73E5772E259CCDAC1F062A887CF25887C30817DA33AC19C2527239E7F6B434F0AFFD278130B1A480348AEF2998924C684E3CA8F49694DFE149152B332128061C659CF2C5861CA003D1E8BF33DC06B197ABFE2862362A9A15FB35F6009481D2A79EB18826581ABCBA4BBBA6846238C5EDF5B30D6830437714ADDB5F6751A7F6D79558148C0DB07A7B2A784DC78C8176A2A36B4DBB7855602742EC2624D6C6C589C515B5224EBF92CD70B954C5190E4212A0542857A16CBFFE060F56140E4F3B2E03B86AB0C8CDEE1A3E2E95CB43C852C40B6CCE660FE61BC7631A849EA28E6C93203BD55C4C4928D6CA777023264D2B2F96F99F3BC9B23D51CEADC713572542EB00B77CE79B2F0AC533198A60F03939EA1502E09807B5A7C19BA98396167B116C88E889B022195B016C58125DE60708890793BC582717253B6608B0933B0B0D160C42BC3EFB602E899555265189DC376B15C04CF5348753344F0E8349B4EA29A6B85110F81C247029FFE93EC5891194963BD9ACA2EF5A3E912C255E3C53E908C1ADF75453075FD9F956A4BA555886A82A03A29CF778D4331AD5A30DA5A57636E75F4900285B927289E7BA510216E73189B6D76DB21C600E8C26488449041529700539C42195624BBDF1C19EECF8BFCB97A62EB46468953669B380DE5A3F84A962CDF3573DE9C4F989A645862416FBC92DF042BABA25FF1381F3C09B79E2C89410625462018ED38A8480AFAC4A313DA239BA44090A7AA296C304DAE24030DB60BD376ECB7779F2F2414D144E624A9B0D2BC181268229AC1F92929D61C15250730D58B75E663A2A175B4B98A906C3871F1F9A46F0E842C7B48238722124E7C2882B7831576A03B1CA105333E4B004BF286E45D3A9188757FAAC58E8D995E7101129FC560C9021BA159D748619204B7963F957E7410592028F97D297E2A8042BB8B342F1CF1AF6A843A1598B1A0E851CBE6452842762109EAC773CF58FBCD5845545485EB47BE86BB51522273BB7782223B855C221DE3C3CE3290C3FB4C9DEE73E23C06994FCB437A93AB885230CE5521F8224521A6CE6C5AC8F682353EC78F22CB133C1C48ACA73A461AA128B96590B2B508832F9A04A1099B7775101FC349B6A686B9CC3C7954567F1C605CE1543A6E967857A19678B5E6A3B996FEA65336794D36C3045A0AC514962C79A6B03342B2EF826B4E4A2AA4B8E2D66AC920557915058C551B82BC0134DC489D55742B59C143B88AC8903CF6CA8AEC2C784C1DC15E3B46EA8D7BCD43BA3161564B6510459F7956949128D6373C1EA8B41B92396D124B3B978325B1D21C290B76A1504A01ADB164B3A6CB9BF5422A6B571F209A4F18C31C3A647D8E3CFD335067C75308026C40C5BA20DCA0317CC6954341758274330F35DF38ABB5F1B59806A831979BC985576AE6A8DF2608D6305AE2F7406F347CFF1415DE856B859D8306271C716495EC273A2C96355E195326883C4F024943F54C35F0003E70C9DD5C412F6C260F18A6ADF1435150ABDF28084CDB13685881AAB0C710FEC5272417731A65EB9360684E170F6C7A13310686471B0E91B2002B789A5A465128043CE6B7C29BB5DBA20200DFC69D242823E477E34E146C828022D78C37B8C8FEA50294586CDA2F728D9B10D0CB58E1B091B68DCCA95E6AD22416E1C9A7B0A75047C72309A284426FA98B3C905F1491A44D1338E0CAD6BF2AC3C845005C268EDA736B1C997A64438323501B6AC5628455694573AFD782CCAF1F339E468BE45459E708BFB464D0C480A1BECDBC021A06AF7AAC4772545EB +sk = 719950ED1960FF6C2D7D59BBECB83AABE1CCB569B76CD9B053389C552CB6BF847CF4FC1F18A03E66F02CDB284C15D656151644F78CAEEAFA8B12CB7C616256C032CE6112735A74285D66A90F3A745ED8733C195F6B1B9B272897520A02FAFCB958A9669990B73420BCCE373ACF5A1C86A555C3C48F78166C0FBB023C49608592261060884B408C9FDB1F4B023506D3516956B02637AF26FC7B1D9345F8B54B5AF96997D39FA32C01AB64A6AB7491D50303B4E8A134086110D220462395B9D89D9651205AEA9E1B88BC80C4C8BAC44AF4F1886EA788A0B259DDA78116051059853D2CD073ED8CADAD9AB04F7175D57C3224E953509588E788713D5A6714D0AA48E972F4FA55F16579D9BC6988F562CCF1286E87AA785929BF8266D7E340022C0221736C3CB372B85723042382092545A45032EB727BDC750449C786145ACF42B85D4618B0D6F009D0224A816620F1DB67F59713090B0849559A51B9589532CE2DC25DF8F09AEBDA932073A2AC2115B12C5F94C64750220D645B34C14AC1B2208565377D61426D7F2A25CBD969A2705EA330B676EA6EEFCBBC6CD40DA9C0716D147B398B7D469A919D83BAACCA80F0E41414382804B0A321362E14E766DB2450F599963CC2899E1048D839754858910D12C23F99158A9A3149362690A9C5540133E5F217A7B66B0D627321C810F7D1639CCA948D708616047F85BA41CEE9211DF72731AC0986D1C3149854B71683FAF68179799B12C031A2A84574B9A67C96A708355F7A86BFABE63DDB94B6C048359481CA7A45CBAECBCF34407D8E378733F812926599DF5C156A94945FC7911DB26BEF17074470A7BD6B60F771CC3F396E847195CE26444B641F91B468FA1670D0184942472667AA76E42976FAC48E78DA72EF0C207FC7400F92699B46345E4C9972A35DAEA31ADBE87980438DE4F211B005C8DCEC1A6EECB56D891677F9006C49385E8AB20A19B74325A9A95083BC711537480DB30719815352616B2C5721979BD4267FB134188A75B9CB303215A76A246D8F69ACBD173D069B2B99B727829AA5469A0212C006A88AA4A6B614674674FA75500AA294711C178B741B0275280BDA27813647A5DCAC3A258991DB4BF436C23F37C697115143A2755FDC199FF32B19209D7FF904FEAABFF7383884C1BAE3C0CC20D019066653B99C1CAFE366567C9238785B0F0B4D1432A9E02CA2D9A3B37D84646B157684D7AC720727AF4533749A9FF99BAD8F3877DBE5CFF9C75B38C4002178CE30773EE36A14F1497AB386CB36420F04D85C8312CE25B357D3108226925F6B85C7A3729064F81AA66336163C00506BBFC82030F4F33A5BE7330926BB3F849D1DCB09F5CB814BA8A722506D0A037E6EB26216AA3C4D4C05D5CBCF0358501936AD2BEB3563C341E2315DE6D68404ACAB0149BAFA84491AB67A2DD82972220B0DF528DA7C4D441C8CDAF508CFA2C0224932E7E5215572AA433C9212022899E43A93CC7C8F4AAC6ED5ACBD0162E4DA4B897B7BDCD72A0B2A2354F61A6C211089C11E476715F3369859C3021584B6593B5784344D53B40DA0725A90804C45D02F6EB7670071660478C53281B5E290BFC77AC46602B530B1300628A7A4F20CE22768EDD699C6BC5DBDF66064041E42329605E06DCB94207211C7BEF41EB150AECCC90725DCCC33EB762A92442DC02AE1555CF726A915240508E227E270A4932636A2806D8A5C15A40A3206AC91BC8A3CC7245F7B5B0438FB3DCFD112DFF7BB01120087E09ABF5580081008D43BB862F6283726992523ACB1DC82FC260E64DC395C778D8EA7561382C9918B531CB8B0FC8B7A5A9634D3A7349475A8A117B0C2331CA0B7CC8E5A92F609B5B558435E15509FD78BA747BE495B9E78AB178B03C117D4C679D13D5B07B58EB675A72A646763A9358B61EE31B1156866CFD7AB6E7498D3E5CA92799FDA467DBD103A5E717E0F6B92A815546F8C221FB2C337E86142D8AE205594BB2C93E50B4503C80B5AB3A19DE4BA63D918343260B5692296CB02EFA77EAD006BCB99013E317B5ED802E8E5209D87C7E584C1DE051ADA436044CAAFD0033F51F649D275A7BBE4455CE8035A97945F597D03A1740DC576F0225B8CAC3EA76C49F5D6A183F3853138BECB6949A158A5EC045512B74016FB841C8881035448319442D0786CBA94AA139895EBA98BFF419A6B42644B68C5CE534B0F705225F4A7B28CBAF879B30FB633FDC2AA70C54639F180E76B927CA4622F086601A62AFFF5335FFBBBCB52075AB7681A55625E01CB31248E17708B7D728905B64976409D49583272FB6208E06ED7539FC4F87B1F0B821DE4155B79531546824BB4A13E09CADF66B7889C6BAA9679DF6187690C9FEA246226A7A405B997C322B4AB041D7FC0B24AB54400813A29C87204EA29414A7C80AC65D374998494B914467F44241251402ADFA34616B021CAF86B2ADC690267A41C40B763C11506B658132C59C0E887888A2D5A8658BBE403758C84CF86611026A5BF802AE4E5031771C42D047EF42021A7C59C2C0A6E3F10B9ADF716BBA29D824B271D787379021EC44B4B39C3493BD980BFCBBA73E5772E259CCDAC1F062A887CF25887C30817DA33AC19C2527239E7F6B434F0AFFD278130B1A480348AEF2998924C684E3CA8F49694DFE149152B332128061C659CF2C5861CA003D1E8BF33DC06B197ABFE2862362A9A15FB35F6009481D2A79EB18826581ABCBA4BBBA6846238C5EDF5B30D6830437714ADDB5F6751A7F6D79558148C0DB07A7B2A784DC78C8176A2A36B4DBB7855602742EC2624D6C6C589C515B5224EBF92CD70B954C5190E4212A0542857A16CBFFE060F56140E4F3B2E03B86AB0C8CDEE1A3E2E95CB43C852C40B6CCE660FE61BC7631A849EA28E6C93203BD55C4C4928D6CA777023264D2B2F96F99F3BC9B23D51CEADC713572542EB00B77CE79B2F0AC533198A60F03939EA1502E09807B5A7C19BA98396167B116C88E889B022195B016C58125DE60708890793BC582717253B6608B0933B0B0D160C42BC3EFB602E899555265189DC376B15C04CF5348753344F0E8349B4EA29A6B85110F81C247029FFE93EC5891194963BD9ACA2EF5A3E912C255E3C53E908C1ADF75453075FD9F956A4BA555886A82A03A29CF778D4331AD5A30DA5A57636E75F4900285B927289E7BA510216E73189B6D76DB21C600E8C26488449041529700539C42195624BBDF1C19EECF8BFCB97A62EB46468953669B380DE5A3F84A962CDF3573DE9C4F989A645862416FBC92DF042BABA25FF1381F3C09B79E2C89410625462018ED38A8480AFAC4A313DA239BA44090A7AA296C304DAE24030DB60BD376ECB7779F2F2414D144E624A9B0D2BC181268229AC1F92929D61C15250730D58B75E663A2A175B4B98A906C3871F1F9A46F0E842C7B48238722124E7C2882B7831576A03B1CA105333E4B004BF286E45D3A9188757FAAC58E8D995E7101129FC560C9021BA159D748619204B7963F957E7410592028F97D297E2A8042BB8B342F1CF1AF6A843A1598B1A0E851CBE6452842762109EAC773CF58FBCD5845545485EB47BE86BB51522273BB7782223B855C221DE3C3CE3290C3FB4C9DEE73E23C06994FCB437A93AB885230CE5521F8224521A6CE6C5AC8F682353EC78F22CB133C1C48ACA73A461AA128B96590B2B508832F9A04A1099B7775101FC349B6A686B9CC3C7954567F1C605CE1543A6E967857A19678B5E6A3B996FEA65336794D36C3045A0AC514962C79A6B03342B2EF826B4E4A2AA4B8E2D66AC920557915058C551B82BC0134DC489D55742B59C143B88AC8903CF6CA8AEC2C784C1DC15E3B46EA8D7BCD43BA3161564B6510459F7956949128D6373C1EA8B41B92396D124B3B978325B1D21C290B76A1504A01ADB164B3A6CB9BF5422A6B571F209A4F18C31C3A647D8E3CFD335067C75308026C40C5BA20DCA0317CC6954341758274330F35DF38ABB5F1B59806A831979BC985576AE6A8DF2608D6305AE2F7406F347CFF1415DE856B859D8306271C716495EC273A2C96355E195326883C4F024943F54C35F0003E70C9DD5C412F6C260F18A6ADF1435150ABDF28084CDB13685881AAB0C710FEC5272417731A65EB9360684E170F6C7A13310686471B0E91B2002B789A5A465128043CE6B7C29BB5DBA20200DFC69D242823E477E34E146C828022D78C37B8C8FEA50294586CDA2F728D9B10D0CB58E1B091B68DCCA95E6AD22416E1C9A7B0A75047C72309A284426FA98B3C905F1491A44D1338E0CAD6BF2AC3C845005C268EDA736B1C997A64438323501B6AC5628455694573AFD782CCAF1F339E468BE45459E708BFB464D0C480A1BECDBC021A06AF7AAC4772545EBE9631B6D4237DD6884AE3647DD8622FC13D1CC689F3C8ED94EC6BCD4BBDB6980A4CB53697A77FE6E39EF13C7460D657197BC1C7EA3DF65B85C8DEB43A058BF1D +encap_coins = DA8F1FA1262C71363592344AF3AF48D678DAC8E93CB11D2DF01A93FEFE97C4C8 +ct = B3050E7294A6D60EC15E3BF34C6DCCCF575422A0E34704C2C69CECD9166626057518F3388B16449E0F11CC87F5427176C951B305D00286AA858FFB1100822A05312B8CA9EEE77C46296252C28B144327493522FF431C6ABAAB1EA0E7CE01D384774F6A7C931ABBF198D79C66DB651228E533F0954FAD5EE2E744D1D2CCCF2939F22A68BF97A84F5B08CC18D40A81D005C721A3679B7928CD97F79582302A009661A8A20B7D095F7536AB5117DA2B8C4C5363C046F700354E6131A88923107A7927090415AA93C1C315BEE90FAB97834949BEB468D70A8B2483C386C2094D6C546482B449F7C9ECF33A19DE36543988E2007B6A9F73DE5FAB6C8D21918F12EAD0D1E28AC51FAF037EC6CCC727925FCBB951A22875BFCEC73DEE900388CFD156500BFE9A14F1776AE8C6421FAFD33C4E56C63E4A7A721AC615137AED28190DD5B1BC3AC2FFADD00DC91E92B0AA958DC787A993E059F99B64699378749AFA2A2710F1492A1085953D1D0843F5432EE22A94FEC68BC6AE11D2DB66674EA3B06E5A26CA2CCB569D2EE2E56D4F1EBFE88A0D7F178324857AAF51245611743D0E45EA80851C23AE2AA60E07977225E27337E6E0B22B5C096F4E073899D283071914CC3D0235430FEDE25EEA8ED3CBA32C853ECB27AFB1D4A08F7BDEACD088A2E2A8ECCC36848E1EBF4CB08D9F8C9F2260DC83835E3B7F3E0D623C8946B6C908C2E727890B4EF905320A41199E1AC191E66ADCE3E5B062312806CE7B54F2F9AF88F675FEB0C2ED50FEDAAD6E5E163126291C48607BC524206A9E751341B007B73BB7FC1FA6A7052866D8E5EAF42619CC6D344A5A09EE7DA84BFD7A07298B4A4CF3882D532731EDD4F487BB3B9EB411BEFCED7D64C6888CA4D78DF0AC8247A22A9C595DD9A962182F95436B0561DF46CDAB23840C573A1BA45F6D93A4900AAB661A7899C08A206FBF85D8213BB13E60DB9FB92BC2162D600847E2EBE661A5D73D7ED6FA18ECB692838FA11C162AF0D3024B56CA4D0135D8610D951F519621792E5767CE70F995A0545B3526483AD43B0C6F57C9D06E884E7774084CE2E89531AE599C4AB4765820177D28343D703251B958E09795CF238CCA855DE2E1409E4CAC89306AF06D0D25C6D5679312E96DA5E91E8E93393884766EE0490E6399DDEA4EAE67A5F8EEA3E0085C57582D1B35FB72FC81402997889AAA4326328D2471C7221B8BBD7CF1A0198E9D34C64CEAED22BB1F500636FF4E1D52AA2DC25AA0AA875E835E67A41A745E616E39319E26E85436465163EDF78AD1890519F8E1DC238A7388BB1863E067F35CEC9214489507F6D64BEE6BB9C1FD2F37A9FB2BB7CAB07FBB9010DC397064B130F48716BC90D07CF40CAB15F614AB475C7574C4D0D8B4EB3E3C5874376A54779EB727BC491B5D5D573E09D28CBA5408A6B58414CF0E509B8A783B9FC82DE066F9DE8FC301923A5081FE682D1E14DD0FBB83A0DB972F8AD891A1B800CE2D2B1F92C32CAACD8C518F7703594EA96BC9EC16FD430AD3841F8262057B9657B7D871D5BEF0B144CC7EAF547FDA750751CA62A7BA5B1A8A3863A8D5E5CA0216D30B55A241B03BC2024DCCB4BB6A80B1C137D106D6A4C02C9B1DC904DDB15606E472AFEB34FB1CE679CC6C00159FDB2EE9C6FFD98CD4B68AE22E84DF67C533F3E614D12BFC252F5E68BC1A17FC8BB7D7374EE1F067E24000D2EB2313AE1945236B7862EA2606B82D0A2CDC10C5A2B840273A7B94215E46B6D015A3CBCE6C95EE0E04D44C0DBE647089B16D55C338F7BF59927CBC9F5ACDF162396FC9A4604611A92A17927F037236997071B074332D36CC2B02D042019034EEB0A4E228C4F02E03EF713E09D289122B88B188AD322CD11C087A134ED1F53DB07654E4D3E2979B238F309727E14B4E08CAEC0F3E5B552329A1BE9A76B51C76EDAB2FFC0CCBD5B405F3BD955DB8AD54C33AE46C24F984F1D32ADE3F9DF431D73498B5B7343C23EA655B73B27947E25861F05D706E43748E76839CB70F12CFDD9E8606C35C62142D18FAB2AE9EBA0466A35EB04944E55961A127BFABAA709FE469FDDB8D8065AC865AFD543006C0F2B33325204E13CCB2AD76AFA60859C845A39B72867F97D8E90CDDA123BF59F5CA9722B666389A114AF982B327695080DBEF23DCFA8C96C35DC1852A1678E58BD472BB18ACE4E5C13BB582C46F5DD6F1EEBA4D758EA02A974368 +ss = E9D0977ACFF5EC1BACF2B3B5516E75E3EA5FAEBC60520C64C1B1E991753123E4 + +count = 31 +keypair_coins = 9BC5315580207C6C16DCF3A30C48DAF278DE12E8C27DF6733E62F799068AD23D195927B10C3BE5F19FB055A71CF9610FDC0F03E23FD09EEB8C63B7BA3C0FE642 +pk = 8BA428266B1DBF30553A10AA6C5118F85AB9DAEC1C521639B686BFC4B198C511939A039982CC774AA074D391BC5137419A22892005114F3132F22497EBC5316E190013325B2C0C1F23AC61EBF6875640C7F56C78DF4937C883BC9DA38D1F709A6DF68026D8AF0BA51F1F2C5FF0806CAC1A396A7272A4065660906658A25C570C7067D1972417142B0B6BC244B8E52B1B7A4B915832486F8A7486230CC63A981B195431448671E71C38527EFFB2768CE1574BAA6A23226563794E714C1C7F75C05FC4B2630A47AE24B2A1D3141516941D61A58B609808612064881347B4765E892438EAAF1C538E0BACA4E6E1BB38821633A385B7C1CD285B6EDEF2739A675110387E6EC747016A6A1007C87949368D31CB7A63A50E210CE168C825B86695223FC1B8789BDC89545A3394F9C1BD943094546F640B0B129C4E78A9CA0B8107BB18923CE669DA26268D57C7EEE01F15D0454CB1CB7AF05F2E787833BCC4D4996312C82714043907B30A8D250ECE8AADE970CBE463494E759F463131C12B636503C747F64249D2687B3301387620307503D9562E5A033D86EB23546B83B0F70937FC6B70DB7C1D519FE1CA0B93137A41D89843A635FB5C389D420558746BE267440E8AA996124FF97B163EB828FE492E96A367EE7C22E2F4031C44688935B0E6439776E34C2C525A31664386A5B6040116D487846F538E0DA71FB17A750D4B0B8F4C37BA859810A8AA15B573EB029C8F7052124BCEFBC48DC60743E7A455A0C4CFB7C57847C50AFB1B5725D735D013441F7B1B43D93840CC4373DBAAA71035AE110955D9CB60BA5B5DE5999B082335EBC1D3D5B6A6681E2E4714423B50D30AAC28A4006869A85941247F0A8F8DA236421B761315B6ADACC513F5AE525373CC57482DFB15286546D106925ADBC71F4CC1BD33641CF63035B7C02669CED392B0B8C70E776A768F859C04E3B1C1F05D9A909025F075BC0021B091B0BD29AE7E7C787A0A570CB99F9337986D714595023B53147913B72F7DF50B6421319825304AF61EE75765F44581EB0378ECC979F81950437BA7603B751DBCAF1261A17346CDF645A65CEA895320211089A07101BF617B731E38A8114335E3267169D060A9C09E7E829D0168A21BC580087554A17688CD742EF7E4A2510779B666A2B613BF81D8060E06385398BABCF2CE1AE7ABD2E66AC06142A2F73598CA2A1FF769923A0AABCC22268710C0A2143B96269BBACE0F69A25142BB9F1A0C05266003F7A69AB405DCBB3360290BA355C8C6F5B1035697865CBECF8A20209019EA08B6416C86A098AF524A2DCB9B7D16253960670EA96897B406C5680B14DE691FA5305405F35048865E549C3847B3BF01856A15A25DAC28C5AFCB6BE3E8ADAF3689A0E5BB056B000A1308AC643CCD94C28711ACC4653B52CC87C7D6BDE2DBAC47678DDF7101484379DE232CAE6975B4EC02D6A043AE14A53632AB428666FCD98B9F702432018E783BA3C7D32079A5CE9378621018B52DE73F7ECA9C8577803F14C0E2C55F8C988FD19353CC4C729F545D3203BE1374CAA91945E21AB4BAF2A4083A91E3D58E89270EF4560669D555FB0444737C6DAE111CD1E18F55F1780CA0BB8E7C1AC3E7168D0C9E4A515CA4F11C49C967BD78149AF3ABC3E692C4659B30851EB86AB41D575021FB146D60069D242569D111E510B731724E6EB456C5428754DB8903F31B365C7AA9976C13210438B50EA3E778E5A60E25F85C42BB10B24B72BC820300C91547582FEE167EFF958894E4898C198A4F652F871C9B03234F98E7A237778C679B757DB3225394A356991B2810CC6CA5C7AB888DC9E59529F3498EC40EFC47051C03C75225187DA36D3DAA9F3F0977DA80A14A13A990AB20DD415C2036003FFAB31B7AA534EC7CDDC40A9877AD6CC61D07B7B1D8B71DB1D1A2B71923337532E464853357400ACA0F6A883ED84B56E77B755594B7BEF178115B18C68175DC2C390D462AB641BA14D80B1D36CF290C6AFA532D8D7091DA94703CFB7334D667F0E3150B60AE8BFCB56DD40E3A58BD4D09A5A3E8A167841118A51490A126D6B85EE90A7F3D5432F59635B1D5587821818AFB74CE42569751512C9840F364B6370CB318C1677A304BE1A2938234B56BD2632F768A93750158E844DF96C720007228C2829F0B779EB3382EDA6D6338F166ACD09E376826299B77B781250C2224486EF23D424BDD +sk = 4DA026F053C3EC1712C7F294DC891E26196894A1B620F97429574EDEE9568E113FEB564D89A1883D5A0329929CA57AC001925C8D616791842DCD291627D61C7C2C3F842B547F074F46F082A06BB4282323A291C3CC07904079125CD5A854168D83BA8AB6B160B5E1881D25403B297C73048E3298287F51529A8BA2DEDA6B4D7665A373171B03B1C0BAAB6482C50CA3A028D485CA8491B1B73767EC9EF8874A54D4CA414895D2E49FB2AC0CC80C9D248B97DDC51D00A10CA3324FA8A6373A99C5DC1BB7A389CD9A3C6931FC7BEE05ABCBA579251B742F46383AFB48FAA514319B8F9A0491F9212DA443ACF9B9CE5B29A6E723A4EAFBA5C1A7B3E017870FB35DBA8A69F1F7995EF2AFF817907DE5C66899824889A760CA4A38A57B3AFA880A3524E138B37487B2EE7332D2689F99A5A3748020FBCA43ED6045A5ABA65F6C67783CB74C217BA987AD381938B4A651B6908FA4F18E6D073A6992160438BA3C9547E4557E1E724192414C912648D25907BD8B069C845465616969161C483927F5D610C815638E242323465839D36A8149BAD494B71F1336A3F0A954369D4265B6CAB935F06694C482B500CB77BB32C4D805A295A692648A31611B206D06C2E86C61675577053A747BD3A748F452B480028EDCBECA8A10EB843EA8A71E21E9B822D80860764D8C5A77EF0222F8004C902C832F1A344758776EEB99C3EC8B24CCBC03F5BCBE59027FB424E6C580CC3B41C041984EA552BDD6396D52867887430A2534A44BA544A0B285C061D7D6618C76945A5C3B29BBBB09A724B1AC53E5954F66708C8C0B2D7DA57C62FC8B80E73D737741F9141F7164B4EAC08822A4C340B5B74CB5C2D407B9D63365C55C14C5E6AB43A8BC68908C34074A9BF4816E000DDB464656C379FDD829B6961C22E5345674243CA64705212D52E616664587F90947FEEB4366A7ABA98B76D9F79A1ECC4BF50571A07CC57E0CB1AF828BB26263A8A898BF3B7B0ED07988E82DBE3C0405D46B1CDC37600570FC37AD9B2237E3032BAB1A0AE420B6F011A653987305AACC8876AC4D014B7E619227B8B35BA2616C9575506870FAD2585549A2F902B185D7A61139C027912EE2A00EE460328B16CCEEB259149A0881F8152D563BC0243302D29FB98CC57A45369517640BF0BF63A555A900269878C4BA567F8D376176D6941D34957E1373B7520483394C3606089D14AEE0917059227BD848BB22E088DEF4194BFCB36EAA81D4DA713E37BE79E52F51BA2C32F05D06405947838625E49F5F6BCDA5E683D014A12FCC0C81601B52F80C39B6659606A8FEA82C62E061A939CB4451869922083268561E16381B026152170104E11F30B2399F4097B94078ADC66F23F85BA6651E861237700BCB1AE92E2BC652CBF19BC0FCA0D7F7577C9C96DBC9B8B07B917F258C15661DA17621DB1287EBAA7714A54052FA660F034F227198EA14C2467B46CF9877F4E0C29962992B560A7DB93C8EC13343F734D86BC548246A57473D1285463D0942F288245D933DDAB7A09766A9F8C178EF539F9CE9A0E97364CAC0366B5B08B4C1B081E01D198C2AA5288617A50019EB3A40A300AF538119D733F2544D18B9094F387A3F4C17BAF01523F1453F68A916436C8E6A80CD05472DE7239AE15DBD52144A9609C1017E88C1A3FB301323B060242AC803133C9BC50F67C436DE804E7E7B54A3489E5DEC22C83A982B45160108535EA7B588018B0D3B0CCBB613A0716EAED8B61912073CF728C747BFC79741616750B8373235408AECA1ABF7E09E72CB181BB09E8C31010E3CCD05DB0F487C8A29C4C822C59CF447124C973F57392865EA82AF9A15382BB68A708A6CE92E24484EAA252F97635E60D4BCBC8A403DFA166FE5C6A8500332624122A15E25D5041DE8B88EE92E1B1B0762734E63AC80CE9227C43980D8BCADFE4CAA420045B26173B6B953E3C97C7F655244D534B2963FABD264A33466DD79440F4361C8C77F1AFA0A8F31C183A369993494480CBF7D13308BD58E78D88A53D45044026C7B620E0E8A7124B957F106AEE02598EE190BDC68C53AF48EBC5436ADF0BF66227F2089AA4CF461F2D7BB990C3E530872C9D157A839A15B4ACE0B2895FDDA50D3CAA18EE60FA11325946A689E96B651C6A9B4A41D0E83238D52990B5520F21C268BA428266B1DBF30553A10AA6C5118F85AB9DAEC1C521639B686BFC4B198C511939A039982CC774AA074D391BC5137419A22892005114F3132F22497EBC5316E190013325B2C0C1F23AC61EBF6875640C7F56C78DF4937C883BC9DA38D1F709A6DF68026D8AF0BA51F1F2C5FF0806CAC1A396A7272A4065660906658A25C570C7067D1972417142B0B6BC244B8E52B1B7A4B915832486F8A7486230CC63A981B195431448671E71C38527EFFB2768CE1574BAA6A23226563794E714C1C7F75C05FC4B2630A47AE24B2A1D3141516941D61A58B609808612064881347B4765E892438EAAF1C538E0BACA4E6E1BB38821633A385B7C1CD285B6EDEF2739A675110387E6EC747016A6A1007C87949368D31CB7A63A50E210CE168C825B86695223FC1B8789BDC89545A3394F9C1BD943094546F640B0B129C4E78A9CA0B8107BB18923CE669DA26268D57C7EEE01F15D0454CB1CB7AF05F2E787833BCC4D4996312C82714043907B30A8D250ECE8AADE970CBE463494E759F463131C12B636503C747F64249D2687B3301387620307503D9562E5A033D86EB23546B83B0F70937FC6B70DB7C1D519FE1CA0B93137A41D89843A635FB5C389D420558746BE267440E8AA996124FF97B163EB828FE492E96A367EE7C22E2F4031C44688935B0E6439776E34C2C525A31664386A5B6040116D487846F538E0DA71FB17A750D4B0B8F4C37BA859810A8AA15B573EB029C8F7052124BCEFBC48DC60743E7A455A0C4CFB7C57847C50AFB1B5725D735D013441F7B1B43D93840CC4373DBAAA71035AE110955D9CB60BA5B5DE5999B082335EBC1D3D5B6A6681E2E4714423B50D30AAC28A4006869A85941247F0A8F8DA236421B761315B6ADACC513F5AE525373CC57482DFB15286546D106925ADBC71F4CC1BD33641CF63035B7C02669CED392B0B8C70E776A768F859C04E3B1C1F05D9A909025F075BC0021B091B0BD29AE7E7C787A0A570CB99F9337986D714595023B53147913B72F7DF50B6421319825304AF61EE75765F44581EB0378ECC979F81950437BA7603B751DBCAF1261A17346CDF645A65CEA895320211089A07101BF617B731E38A8114335E3267169D060A9C09E7E829D0168A21BC580087554A17688CD742EF7E4A2510779B666A2B613BF81D8060E06385398BABCF2CE1AE7ABD2E66AC06142A2F73598CA2A1FF769923A0AABCC22268710C0A2143B96269BBACE0F69A25142BB9F1A0C05266003F7A69AB405DCBB3360290BA355C8C6F5B1035697865CBECF8A20209019EA08B6416C86A098AF524A2DCB9B7D16253960670EA96897B406C5680B14DE691FA5305405F35048865E549C3847B3BF01856A15A25DAC28C5AFCB6BE3E8ADAF3689A0E5BB056B000A1308AC643CCD94C28711ACC4653B52CC87C7D6BDE2DBAC47678DDF7101484379DE232CAE6975B4EC02D6A043AE14A53632AB428666FCD98B9F702432018E783BA3C7D32079A5CE9378621018B52DE73F7ECA9C8577803F14C0E2C55F8C988FD19353CC4C729F545D3203BE1374CAA91945E21AB4BAF2A4083A91E3D58E89270EF4560669D555FB0444737C6DAE111CD1E18F55F1780CA0BB8E7C1AC3E7168D0C9E4A515CA4F11C49C967BD78149AF3ABC3E692C4659B30851EB86AB41D575021FB146D60069D242569D111E510B731724E6EB456C5428754DB8903F31B365C7AA9976C13210438B50EA3E778E5A60E25F85C42BB10B24B72BC820300C91547582FEE167EFF958894E4898C198A4F652F871C9B03234F98E7A237778C679B757DB3225394A356991B2810CC6CA5C7AB888DC9E59529F3498EC40EFC47051C03C75225187DA36D3DAA9F3F0977DA80A14A13A990AB20DD415C2036003FFAB31B7AA534EC7CDDC40A9877AD6CC61D07B7B1D8B71DB1D1A2B71923337532E464853357400ACA0F6A883ED84B56E77B755594B7BEF178115B18C68175DC2C390D462AB641BA14D80B1D36CF290C6AFA532D8D7091DA94703CFB7334D667F0E3150B60AE8BFCB56DD40E3A58BD4D09A5A3E8A167841118A51490A126D6B85EE90A7F3D5432F59635B1D5587821818AFB74CE42569751512C9840F364B6370CB318C1677A304BE1A2938234B56BD2632F768A93750158E844DF96C720007228C2829F0B779EB3382EDA6D6338F166ACD09E376826299B77B781250C2224486EF23D424BDD847DB13DE94D97A88D5A3DEAE31C246F5F04D0C7D7F337859E024764337A08F2195927B10C3BE5F19FB055A71CF9610FDC0F03E23FD09EEB8C63B7BA3C0FE642 +encap_coins = C08EBD7CDCD4DFC51CF41DB75F31755F2B3FADB6A059499DD431EB931E348143 +ct = 62FE883BAD9B3947F3E21AEB92BC4795541B3C5EF93B683D2B73C804B9C3E0AFA4E67D8C8DA166EF974B1731D819A3233DE8E40DEA8E3ABF08A3FFE43166ED206C505010461199495C90DCF8555E9744B78849C2FB454AFD8E2E0C3EC7DCCC21B72397505E296CE242D9EB689B4E888109D749F20190E3E74BCB5DC2C57EDBF2F77AD7D1BED77FE9806CD0A8FFF5F532633EF1A73DC8AA1AB8CE5AD9231CE46398B935B77D1E044271E974C3771B73BA1EB69F1699A69A341E0D54D73054326D6F65C2B4408B7E9D30AE95C40145E5D7C9A4ED541953B5EEA83404EC1DBA8D0649BE0EA0144612190F3D6C5F8C102A81394E0A7D36159EF54FA680AAAF1E28AB7DA7D99FBFF4FBAD441ECEB9C2B0F5F8AA228FD82473F0AAB82CBB8F9D46DE1C845D69E1286D816CC541E507A2FC93D4A467BA78E5027CDC7201D20716E2F3A5524DB0478CF4E164FB556C215EF988012ED0640397F8202713A42DE60387831EA4DF2BC88A00B602E29D31A3FD14ED989B5C2ABF8834DAEFA35B229DF4FBDBD262FAF060158AFA910673D3A97C736B7C1BFE511F412ADA15EDDB4F3D41B0314784B5B8CCB9FD0F6D3C7D5DFFF976C3C1D5BFD3C058E136FE66B3CB0397AF8A0C9BB5048A403D681DA49F232C4AB6DC88B5E12B53A03745A9C26AD49D0368FC9B900A6D09B2C33DF0A46FCEAC677CAF4C8F6A417C88BDE2C989407C1AB532936FAB7DDC1F59FBB2EDB7EF7F14914271EC18A2422715180386FA7A5D4ED8AE49226547DB3A2FDB7DC1DDFF2EA94407F42BEEDB6C18D0D84475F1F96FD4F4407463AAC20ECDF6E88D189349C0BB52C45D18CC79D91F9ADABA248CBEF8319E046123D35673887E7D3CE8BA686B1CA6F3B5FDF674B66C7C7042094BE5107AB48984B1709A331D60179EA0DDDD7BBA1A72AF4B9FEDD93702C5D9B7489BEC6AEDD3E1472AB7EC5FF52C31BAD2E58D93E6F2B3094FDF99029764C8703CE9704126262D287EBE3DCB2017D73C8F5B48842820BB5777DE1D92596A75ABF24CA67549A298648957FE3EB4C81D792185C396CFC4944728171C52D3FDEA080A480F0C9BFD98C74A8C2FE64EDDBF7B99DB5D9CEC84080AD66004E8AA7A799104BB36A434FF994E769FCD25E1C6163A4D691093E90DADCC06FB2DE700456C765CE712115ED6A9B1675DD6701C005A5BE8D36E17A319C941D72797E8455C619556FDE72A5923756D209E1410281E5F2754397E6B46AC10A53C4E180765E84095389309193D90F2C407183739F5989C1C9E35B16AD35F746AA3EC8FC3057C8E99021B11F10CE91C08813AC92994988265F13F3083E2C0F54133D7E023216208E220F74F5A0BA8ECD27C215BE04FED1B898B379C664A6015ED080F1B20C60E1974C8E206ED8B036677BCEE24334F51E4B41033742BD323E1879D5356834160B466765551B2632F1F563D63DA2A62FE4C654A3B956ADFB0993FC4B2AC7C9E819E30B108F39F6B8E0423F8829A41E46164B3DAF9E3FC8127F89C856363D779B41D8B7A5CB5CE48A6B078BF370EE0F7DB7E4840EDAB7AD0D00A0CD69C5A274795F35E1CE30EA541A6C66040176DDC301F90CF4B5174023598EB712663CE9FD674CAB591A38DADE3A736CD9727EEE3DA75A35AE0552D06582449F5A40C4A7E085B1A10FD8415AF15B14A24E6715C5149AFE984A9326B55ADE5A8D3AB304EFD5F7C30F74471FCC2DAFCB83C4BC2A908297ACEA46EC83319DB63162C186C26D98AD41406DDAF25ADC62E90047716EBA9C4BB54C25856D7805E2DB83097BFCB8F41D9C41DB2907AC0678D65843F590E8AA02D08B49B8642BC84C36B081CF1C52BC5618BFBBEA5DE7AD066435A5891B3A81E1687104ECE89DE97DDAE982DC972F08A4D98901414962DEFF3317138A4F6DB42C7DEBA1A9178545E228A78CDF335B06F4D4F5E19F715C64EA222F84457EA7F07FFA9B541D0AB5439920E64C5D6D5EED40751FB64C7B5819CA3A296F55977A59A05BD4257F7DD14B708676D8BEE717CAD12F346D8D45D2AADF378B331DC564DF328711371679E6211F39253C324663790FABA869F67721DF18D51063D56E839850F7BE72B10AB73ACD5137E922AA613ABE7A2BC98F40D543265A3000FE65B8D32801A5D5C086C26F68947688660584BF4D42053AA0A23E41EC095DCF45032B6268855770682E4A77B72488CDEAC655639E2146B19C6CDAC0C8D8F2E +ss = 1C1D8892D74F606D457AC58CC37A744B91EEEC09EC4AC19F26D4241BC5386EA2 + +count = 32 +keypair_coins = D8B907B34D152FF8603B73051F772DAA71EB902C47B7E2F070508269D757E02E7613C090FBE4AFD54869CE826B72F3A5EC823D9A1C983A3D31B2387ED6B0C613 +pk = 3DB4BCF2F3231E1AA3E81C7336E49C4D760454729E9A47C4550062AFD77D971228863C24F1881D589C111B38A7E3F08788298E5CB26CCFE7A71B171FC504B86D4526A2C0A3E0251710A21FDD68047612CF215A46F1CB3D5376CDBA14829FF67F7D4704F199AC398777C8AC0ED24C4F00715C976B0EF18A83DD177367078B43003C10E588DFB9C7C99C5164BC14755114D5138715721EB3022CF2D016F97011F37502C44A397AEA0A7818546C831F2073A4697AA878D00C4B7AB8312233CD3880A3493401BBC3D8AC5EE715490F89474A8A9E6F078293E11E43981F00A25988F076E20A7D69E25FBDF7030E8404EBE35F530A8CC5793CF3EB1AED34B3EA742F4FE853FC8B7AA77A2B17669A116C49A0A114770B14801A62868839AB199E3C02C810CB6E0489820F25C524969A57172811089C5C81659F6859A1E5197CA36A33DA0E2EC00CD035B23973448D12B251793DA4BC9039B11C4312CF3DB1ABDEA0657467885191334FDC8F590973B201ADDD09CDBB545FE66A0AACF679F0B89D7914268084888D358B767A8475E85DA48590F0809E0CCB2C7D286F12FB8C6FBA2F1B16CAFC97A0B9863B107826C197A7A6BB0BCEC280C526CE18058E2D47BF92E7BC0D4031D4C8C8C8F57BD880C8B12C556D750EEF27AC96FC47F37C2C26468A8D27B2BDAB5483F241AAD905C3A76FD82308D2938BF7A070E6DC56E100B99DBA0E46F2729A52A365D732965875B020B82AB23DE8F8807442CA89B31FCC76162961564060A119002B116A510B0C2E1F301C55992BC48519EC5A1ABD49A4E9DA97BBA98BB4774C0E6B939AC720CC22B2DF733BCB128C7D4165CCE67710719C1C978CC49257FF741EA1C3B5A6479C4935447987BD61D99C1D80C833F671F6A44BE835A8D8D733ADF4AF4DCCBA087C4B8681A8B49A863BC21887A0B1D50B05AE1513DBDA0960BB156BE96A1321B553F21AA0E14295D00B81096E1C557AD6C949BEC43817A836F09B0AD0803CA072B488A1627AD2C017013492A955FC829DF7D800C99B1CE02B1D35A68D3269CB322B4D66CA9CCD279FC738C4C3910A8A4A479BCBA7B1A6CA8745505B80236B63244D54942305C3C0F89BB4E771A5B09DBB072D20417F469B47CB8B64380B1A99B6A83CD111A881AF60EA3AE5A314DFF60841592F46A39BEB80234EA507B1C9233B898A33208D8C936294738CBA7287C5BA7F2AB0B7B63A0D475CA3D6486858CC0DE5580E95C56C635825BDAC834C71337916055D1C9490E7977982945941B8FF196BA5C23F92553F9A1B962A56AC9498B69CE0C9393621F7A662C6074C9E93B44D099A0003390748547E10052506AC88DBC1D3523A16B0825B4656552383ECF067B2A423BD0AAE22EC0971E52963241403438C3C254724E1565EE569B0D357B416BF3D770A729A277CABA335519724B2098A107F3F4C1AA1F49796208E739304852C949DEBC717DC8430F23987D60F0A0A3FD5F97AAE412907227FD2DA078F1A1BF46C0B66E596839632B121C5EEC37694809861541B223619850A368684863A34761B864314187989AB4C68D965B3CC994D734EC4C84AFCC805A0F4655C61A8564C3577273D198184A2B4443A11AA05931DD1827C0720214EB2798AF1A83678808913C9C6DC57EEA4C1F2F469BCA44AA8A8082CD4082464A9E6AC0A86DA0D1E0021DBD3196B726AD9B43DFF34CDA455C7A51CA343F1AF8CE2C580C581E4ECB1517CB36959114A481A0E73718F07A8EACB71A7C2BEB2654FEA5A7E01A6C02F183686B89CA0C775D0605E17225A655A544838A60F252412FA5BAF353D2D264C4E4C2CD31BB4F3075410C220632B3D605C7431479F5694870CB1B1724C0363E470F1B8A38175C79FCC9CCB33571BF9CEA9653722B5BDFAD66EA7AA4D6252C8733CB40627485DF64A4E872CBC574134C319CF1464A6B69A6318038896111FB69D306A6C47A393069B0F27911255E0306BC4CA2E93AE71336DAA3A8BC0517EFF101989F9C19BDA6751724E1BF816D4CC7397CB5A57A14C471AA511E42F18E4937001977D063A4EE855F326811EC26C8662B5825A95780A3D031948D53337A45679F5C328573C109E5944B68C0B4D2B466FC48F921328D6FC74705491077987E6CC936E2BB69B534EA97ACF85E60F2522A55C115CAC8CB85E5A9AC9709046B442990CF89513930F122152632A3C3D7C15C8018E1C23AA33CB89AD +sk = 1F83902BBB77A97B032277079CD0CA70D09D57385CE5C1B3C08B80ED95B2BBE70C101CC1912B71B29B87DD08254B593D616A31FF4957C7C0C325F82024F6A7B125B0FF799FFF47AFA6A9A7055382BCA08CBFBA71EA1B530BDA5A4548922C90C6DE8927494370EFA6C96780086BF585AE6534DC05344DC1941EF793EAE214312A371ECCCEA680C1A166BA97E128064748269922C9A19CEE4B8A669ABD146491ABE31A57B724F3A173740269A33309F651C934E09A564627896150ADDB8BA181CF2503256512B0DD5588F4372781F35CFC0328C0DAC842A1B3F418B6E8C567F410568F2C6BE8EAC9BAB558DEB08389BA08BBAA50E1EC5DCE044EFE5830743402402A167A9369E1D281D37713EB656662600840409C4FB971C0FA7771BA53B6C13EBFFCBB85AAB3316A3A99A9CED8BC4596932B3D052FBB13A5CBFB762AD7A08CA4AAF33862B6325BADDB0E56D395E8F92EBC7347E847956B471695C978DC2431EF7286C0E0A880F7871BB05160209900C0C403DA599B988A8EF0A716A9535B71002B3BCDADE60053F5A8BC66419FC907F1EA718B7BAD6BB76FD3F710E6778587C36BA5E4C2D7796185BB72C5FBB839B6C91119AE6C954E9B66C3EDB500D884428BE2C7CB6A6C86B807A6059739E23F70433D8A7A4AA768975AA6B0C3924CC8827CFC731A464121090A685820068019197F489315A2274A7133422B2968830271FC94B1C775C5A21E3B07BCE543B32F00B7250CABD0D04A2529347848830C975261A54717324533EBC0EC627F2064BA693A9BF9A16FCE87A8D7270759A06C00EAAB71A5CC25034120445334A39D63BAA2AB3254D77A921209750F6869E6971D05DA1E1BB29CEC9CB7B4962370E5C139BA472A75114B28BBB8E7069C5A8201B730DB571C1EE0B10E1C42B4A97FB7F7AE54670D12859D68199443157DDEA85760445895E7175EF8BB919C7213F427301C4F6561AFFFB0B03CF1AD05613C52DC5CA71A74545ABE77D239576303BC9678272873D9B28F4A4AACFDB46940F59B0A82A75642A0CD794D63D03D43F65E753A6AA2B58E0CC664A48CA3D8A3B18C7B05CF8293D3E23FDFDA93506C831455B648E2017FD866C87683AB307C6FD9CF24212509D777F34B0618776864EBAE9FA5318E739692C5AA86648D49778B67F81347B434CCFA990EE9A79DE94C94054E6E4A8A152B5F4757B89F075A27AC464CD1801D02AB64BBBA4F932C0003458FF73011282BF444961C54C5275408C4F79C3C553424AA4AA13A53D59B1B785C0FFB686FDA185D5438AF5C494D98B80381C821C493BC0E7797CD1995DB681EC9E18859A9229C497CC251AF12D9CFEBC6A19C599C9D364E587C7D32245145A60CEEB54CC7EC5B541B71DAE959C800A747EAAB53F8CD24365C91F53B7B0B9D3630361D41ADE4C82C85E04D8BA243763B3F9DD65D60921F962337A3421051D36889253A423939ABEB0AD962CE1E1A9931C960D9F4948723CA17A731ADFB4834615693F622470225CFA7B036B931A2240564CC35E59A7ACAE48707491576CC1410A304E0885534F577692C5A237344A5F674EC7C45BDA3242D70B004D5AB620CA2B1AC0A56C0CD5B942529B054E0F840E3C1837E0053539B4A3EAC9C6DC6283876C745FBA8D505681B923E315A99ED34B04E558BE2373CD3A07DC6A26EA98136BD197AD8CB1E695544FD93A23A29577E26114E5C8B4257CA7EC5A467D53FD9E037386C933799BC3BA921A50CC98DB79F1F7B96DA7A5AB4604498A223EBBC27AAA87EDE5B4DF226C6B5C382E5EA3545E50B9B0A7B30D15C77927713BA9B5FA52A64985128530A84003B1B867A6BC87F295BBB15814AD3BCA5EB3240F72894F147092387CB072692BB62161EE3CA1F75BA423653C21582004D8C3EF207F55746E7338CC94C45EE5928702559F0C783CD16676A342BA9A652962C50C030983172A196EBC901A13EF6472C7E67230629A5EE8917E965CB0FF990DAE8CFF8D3A7F361C31130AD8CB43A9AD48BC46C51B9A56722C34F5681C71690CF5B746B0102C635171E4F1AA199FCC38F566A0275CEF828534746AB958ABAF2C8814B15961601CF13436ADE37047D1C5497C74AAB9A0015218C8A41C719328A0A272D96D63DC946124441CA20A8A30AF11F07190639993D4CACB58C46754147313DB4BCF2F3231E1AA3E81C7336E49C4D760454729E9A47C4550062AFD77D971228863C24F1881D589C111B38A7E3F08788298E5CB26CCFE7A71B171FC504B86D4526A2C0A3E0251710A21FDD68047612CF215A46F1CB3D5376CDBA14829FF67F7D4704F199AC398777C8AC0ED24C4F00715C976B0EF18A83DD177367078B43003C10E588DFB9C7C99C5164BC14755114D5138715721EB3022CF2D016F97011F37502C44A397AEA0A7818546C831F2073A4697AA878D00C4B7AB8312233CD3880A3493401BBC3D8AC5EE715490F89474A8A9E6F078293E11E43981F00A25988F076E20A7D69E25FBDF7030E8404EBE35F530A8CC5793CF3EB1AED34B3EA742F4FE853FC8B7AA77A2B17669A116C49A0A114770B14801A62868839AB199E3C02C810CB6E0489820F25C524969A57172811089C5C81659F6859A1E5197CA36A33DA0E2EC00CD035B23973448D12B251793DA4BC9039B11C4312CF3DB1ABDEA0657467885191334FDC8F590973B201ADDD09CDBB545FE66A0AACF679F0B89D7914268084888D358B767A8475E85DA48590F0809E0CCB2C7D286F12FB8C6FBA2F1B16CAFC97A0B9863B107826C197A7A6BB0BCEC280C526CE18058E2D47BF92E7BC0D4031D4C8C8C8F57BD880C8B12C556D750EEF27AC96FC47F37C2C26468A8D27B2BDAB5483F241AAD905C3A76FD82308D2938BF7A070E6DC56E100B99DBA0E46F2729A52A365D732965875B020B82AB23DE8F8807442CA89B31FCC76162961564060A119002B116A510B0C2E1F301C55992BC48519EC5A1ABD49A4E9DA97BBA98BB4774C0E6B939AC720CC22B2DF733BCB128C7D4165CCE67710719C1C978CC49257FF741EA1C3B5A6479C4935447987BD61D99C1D80C833F671F6A44BE835A8D8D733ADF4AF4DCCBA087C4B8681A8B49A863BC21887A0B1D50B05AE1513DBDA0960BB156BE96A1321B553F21AA0E14295D00B81096E1C557AD6C949BEC43817A836F09B0AD0803CA072B488A1627AD2C017013492A955FC829DF7D800C99B1CE02B1D35A68D3269CB322B4D66CA9CCD279FC738C4C3910A8A4A479BCBA7B1A6CA8745505B80236B63244D54942305C3C0F89BB4E771A5B09DBB072D20417F469B47CB8B64380B1A99B6A83CD111A881AF60EA3AE5A314DFF60841592F46A39BEB80234EA507B1C9233B898A33208D8C936294738CBA7287C5BA7F2AB0B7B63A0D475CA3D6486858CC0DE5580E95C56C635825BDAC834C71337916055D1C9490E7977982945941B8FF196BA5C23F92553F9A1B962A56AC9498B69CE0C9393621F7A662C6074C9E93B44D099A0003390748547E10052506AC88DBC1D3523A16B0825B4656552383ECF067B2A423BD0AAE22EC0971E52963241403438C3C254724E1565EE569B0D357B416BF3D770A729A277CABA335519724B2098A107F3F4C1AA1F49796208E739304852C949DEBC717DC8430F23987D60F0A0A3FD5F97AAE412907227FD2DA078F1A1BF46C0B66E596839632B121C5EEC37694809861541B223619850A368684863A34761B864314187989AB4C68D965B3CC994D734EC4C84AFCC805A0F4655C61A8564C3577273D198184A2B4443A11AA05931DD1827C0720214EB2798AF1A83678808913C9C6DC57EEA4C1F2F469BCA44AA8A8082CD4082464A9E6AC0A86DA0D1E0021DBD3196B726AD9B43DFF34CDA455C7A51CA343F1AF8CE2C580C581E4ECB1517CB36959114A481A0E73718F07A8EACB71A7C2BEB2654FEA5A7E01A6C02F183686B89CA0C775D0605E17225A655A544838A60F252412FA5BAF353D2D264C4E4C2CD31BB4F3075410C220632B3D605C7431479F5694870CB1B1724C0363E470F1B8A38175C79FCC9CCB33571BF9CEA9653722B5BDFAD66EA7AA4D6252C8733CB40627485DF64A4E872CBC574134C319CF1464A6B69A6318038896111FB69D306A6C47A393069B0F27911255E0306BC4CA2E93AE71336DAA3A8BC0517EFF101989F9C19BDA6751724E1BF816D4CC7397CB5A57A14C471AA511E42F18E4937001977D063A4EE855F326811EC26C8662B5825A95780A3D031948D53337A45679F5C328573C109E5944B68C0B4D2B466FC48F921328D6FC74705491077987E6CC936E2BB69B534EA97ACF85E60F2522A55C115CAC8CB85E5A9AC9709046B442990CF89513930F122152632A3C3D7C15C8018E1C23AA33CB89ADF122B76B83C343DE27054985634387FB7138F6F6F105CD4CD3F5B02698A964B07613C090FBE4AFD54869CE826B72F3A5EC823D9A1C983A3D31B2387ED6B0C613 +encap_coins = 0727DC8ABDF2F12FCBBFCCC9C84B6DFAD8E1EB346249EFE569F2ACE9D8614A07 +ct = 5B345CDEAB98BA63ACE249E9FD006BCE658B838A731492E2409308E0936C81B3FA3B520620A01BAB4B35E52AFCD7259AC298DF58121AE447784A26E18A2E7923EEE8D4904529D3DBEFA1BBC06610A9231023D17580C69574DC1017C8DC8BF8586FDCF557D0820BC1E25A968F98A6BB491059FE52B8891A5597998CA7F78D79F1F00344D19D328A95D5AD0278898DC9134DFE14C9A02A1A33DE5BAB09292A1D6A3FF554AAA8C1DE84AF24B5C6604390CB1F36B60AD203B7C82A2DC1AD3E5816A89CCA03B2B42EDE9FDC5987BEA4EA9604B9A45244445ED01A8723EFD4ED1839EE175B9331D28232DE24952E6F466CE9F1EDFBB522E0CE3A1921F5F5E809BCFC4D5861A820812CD3CFEDE3DA5C2B539129C9EC6362609C0156AB2A6E4BD2CF757A3D406582D327785D76AC0932924075A27B292CAD6A4131701F4CAF5A1B9838641C1C200B22BB907BE08F9897483F0E8CD12D1EA734AA11E271945432D54969C712AC66376BDE377717D3DCC730A56A2B03F707576ADBC2280F6139ADE6B4ADD69FE8B884B989EDD38B2315E0F3E6AF5AD85F3ABB84AF3054DFE6C934CF79FB692A4A99EEE9C70A9288AD325592D51404A09C5B2F4B5839441C323268643476B25B3133E17811ED7D1DDB86CE7DCE44B7F92F04809B65D56DB139B8148DE23958908008D038F6C2457D2EAA833FBA1BF6367D25B25CD32FE5B583392D28565C5012767A8540179E5F1E5E9ED2DBCF7BD1F5E78A44375A6D8C5AE76A8FE771B92DEBF29A53DEF5D57455D875412CC2A8222220A7D00F5CDA14313A2BCC1F7914DACBC5F61C809908AD9965CD027159BB5929AD4073DFAE8BD79368463697CD3E93C1A69B6304750F931C8EE6DCE49A0251FDDCE49996C57DBEAC1C83F354F451B83D93F63CDC9053D05A7BAE86F3E0072366B04608014B22E47C4CCCF7189B4A2DCB306997B40F517B33C2B5C7320146E62081F56E647DFEDA61C680B9AF689B2AF20BBDE8B73CA6C0FF22270B56CB4D7605E7E1E2277F88717B7E7FC490CD7DED543352146DFCCD7704F9BD406BC6994306BD455995A74DFE7BAF8B4930D7A40FE6A7A06D5DBCAE4F83FD32332042D752310A665FA972185350E3504072738985ADB34652A12AD2A339CC96224BC32824FF73FEEE61B462B8211F3A9428021BCF8C19C5886A7EC0D1E778EF2F1914A0AE3C4D7B4E841D148F74E07E2511BE892C0A8E6FB49A36D4E5BDECD7B76DA7F18097A1A11D89363DD3D742802BDE5299BCA711E72BC0D4F8D4EB3684282BE84EF1F3698D1598474C070EEDAA743D443C5E49D257B7577F4ADAB272E93EE048CB2DFB4A4DBAEE60EEEF6EF27361984C5FE7E9A6C6AD3515BDEE45D9BA0CF3E0554D1D07B3DBB396F1920018C25BB7D157CD24A6FB51CBACF724E6C511BDE2183EB623ADEF9D8FA4BB459A8A327CFE420F7E049A74DAFEC24B14EADA05ABE9C96CDDA425985CC1B713C0F5EE781D99E5F82325C0905B9FD9B6733BFC677E3C554D46EEC9DEE695064EC89E9572D1A02E534A4DD4E13E1978004D25B9D3FBCB4D24FED362F487552B165026A2BC09DE06F1A920A6911412433E6F52F2339F19EAA2857A46FCA8F45AC077F81EB902AE4477555F228FAE779F3492BF363A4C8F4186C5F66DA1E04B9B6984E10E170EF507879AE0EF8BACC7A011B9F60EC54A6F9674C76C5DCEAF9ED45546E93839D6389BD36D65A35091BDA3A4FE9D124FB808BFFAE3FF1C645B2C1D8284B0591FD12FA7FD76EC42AA5CA49F4FF6E257D466727B9398E4C885E7CBACDFD540457A9D85FC6A96C432115F2AA79D46821D0C08418EAC46E8A68D799869B301D38AC85F399CEDE6FC621A10B9BE4A8BBF17EEAB6657386AEB6FF1272576C2F03AE2E58A6FC2D59B9E8BD53B2C546974229CD63E2C1BF16BF5B85C80284D129A98E36CE44CCAB5BE57CD6CC770FC13C386FE88AD0716B144CC156D14430BC76BAC6B7BA665FE5F1108BC3ECCECAA390CD624AB8347EE157C422573B062D5B71C5F55373E6638F0E8720D32259C3A8C910A87E2901293639F05C9526D0E6C75CE73C5A126DC99447424B775500C6DEE4DF0833D4F853FE4F751224BB5771047733C62072E1E67F615C93F6A1AD86A40D20A116494EFC158776A6BC4DAC0E7160777201646E50890385272CD8359480AD0882325F3765E142E82A4D62D99373D274AFCB27154B42DCC +ss = 25F98DE0F3B9C85CFF41926AF744508991C050B0E5A92873959729B98791DB8A + +count = 33 +keypair_coins = 684A29E4E5480A5F2533E1526B5FAC8CDF5927F3D85087C71F928C59690EB565BB3EEAC4320F84D09CAD413A7D7C19C27668B2E0E1BBBA2D159B833DB6C0F50A +pk = 24D25E62D57365C8C611F96BA675AAE5A14164B5171D74146D792D6203BA384CA81EC71ED87B8BA40023ED8BC6AC54406263CA3D97C5BDC20D9E2CCA82B0AA54586863D95D3ED0075CC897F6726CAA441896E86E03711A3D109F5BC311E81A5194363F8BF735AC9A2CACEB7EC4826F8AF2B303C3914E9B7C3C5337432CA626970761900B44CC92630AC8469A6BD9D2B46D88C225223DFC405D6F1447F9878610D021CF3762C235C414025239AB3827AB5A4699C82E37B1A27B460F0264F4089A98E41C924773F4C83F5C57A4D0F6959F6C59FA6AA4A6047AD0873935718BCE46B2F19864E06486A4F5C8D689ADEC32A2E7C6B57071BE67017FE25B8F52CA525F99BE536A4C1468B5F9F418025450048692F961AB8FEB5075B543E04A0564C26C58A72EC6433B623A2D5A086C85347E45EA7B99D03AB50664149414C3F81D219A5B5E732C0A52C060E90E64E14873C02167A21A67DA6A0B945781341CB7C65AA2DC481B0998DE5C8D893A548F055F8FE420F173B949862A5549B0AC1908F202AE0BEC6B19C0B3E5178F4E40485CA33A93947522C1AA6C188AC2FC4CFF214B995B1BD69229D01A8D3D2045AF723A1DE559ABF78C09928D71ACA3C0016038340AE715058C95CD33CA85709B2134F78B86A84AE764AE94B994ACF1354E42126638B57AD207BAD29F1E60471ACB5B650332B4656CCC808C15EBB8DF203FF0821BEA62AA67967BFDD09535E7088CA98E3795AA1167BE9126348A946507C08243A969B2F9238FD29F0370356288CB1708024BA7A9CD58A12D306D4F4579893C8A04A10C1872B6A602C155F70A8BA6987FD28DC842B9F60B4052890A4482A351533B4752061E30957F8A16B6F8502A1B4D8F91B56B71470EE2CEF40648533BB1D9179B3E335E051115B817AA30B3707B64121179318593B0460BCF6E57A65E045D00353605D60A0705468C6B8E4DB422C31476C8A0B54EC166BA59B75F9834633C0052757DC437005F653ED4C19CEB7C774EAA75BA0068F2A997A79A98BEE42ABF9A3B7597394D4907E430737F860454407B8FBB2DA0A054C2A4C737C8724C02684A070DA34388FE9927BE4259859849EA9CB6EF5990EAE176EFA10154556CE5650CF264BD11780055B5931BD6C5F51816D135996757B386B76A03893EFEA95EF964B402079CAD080B67098B2C092F1E9768782A8E3DACCD82741CDC5C8575796D08E3180B34B4CE227E7593AE9264417E7B53DAEA2987A01FDD42150A4262441475370C1357A575288571996527C95A9FD62C3BF54A8C8EC0A335C3A31B934002443D07F27240860E8EA76C821A71E67132C9A5A1D4D3B5F29CC9A9924081FA3C33F4A11285458954042337701C392998DA8EE556A544F0B49C9C2B83B58DD8D165E6751318363400D61652D7170CA44B3033BBB20B45072708E6453B1708B5B8206419E050D7C8843E0BCC227B9D6B426A9F693945D69EE98558BBE133FC6427A8F73981786F42DC03FB23621952CA8AE03810648B8CBAB5C1D2816FD1C231E10F7EEAAC9A798C2C3A4CBAC428C6971851320191D3195FE4419AB69FE913280D0763A906C33C4A9D311C74D9459EE85A6599061F09376A14803E1DDC67D8328BEF1C7F673B62BBC234B20A29802CA9C19C89B9B6628A6BAC7AE29897B1136A0B8C28B0441BD00A9144C85C9897A48902D176B9B03A454F36885DB61B5915811D60C170F74ABF894BCDE1A088195FDA3043BE6080B8B98DD48168C12A68D0B74242472DDFF790608170C271A4BB19907288854CF1C4CD744D1EBA1201FB643B805C7C7C1F6CC9437038BCAF6616F9A6A214785F5FE71071E4564D0070A401B457023685A65D63FC525BDA14B26C1F5381885B24786A939669261B769068C3F97EEE28AED3FC68D3B08D6A6B77EE2449030C0190C016394B0D9C8085BD550D12F5110E647B9A1549E8F67F5FD0580FB39358114AA668BFA3A202C0369DDBF5518D80AED20C403AA3CC7148119CBA54CE1667C2654D9B5A833D5A552808AE72629A2DA12498319A30113B314C870E8752E442AF5ED67BF1481F071921191B2B21964FAE23B33DF528A22090E4BC6EC2911810E02E65758397B48D1906013CC0CC0C2C73944B45BEF04C2781ACF467336A107FF7CB12E6305ED85342D2355B047862BE56057CFE1B1B3BBF85039A8189076A3752784E23D8A802023FD0743EB03D989A6968 +sk = 8B78635AC351C94BB6B1D2B861E4914DCBA415F66CCC465B370578E136330A2C5CB0CA2857E1CB733A75E5CC4FCDF7A12580017F1C0FF484401CB23318A98000637B3D065608678103940D8BA75CCBE58206C130ED62BBC0132317B6556A9C2AE8F71A43712002D795CA52007782652D291DFE535F75034B0D624277527A6EF623168AACFBF721A9E8753195B82EB9855467322AAB0AB1701546C470AD139944B6736E1C97C9768370846B45693AAED9C80A7B53B863830DF61FE9600AD5717BFA2C8E59E30C8A20179B27B59341C855677880330AFD1A227B6C6313E17C46E87D109A4AEC4C1795908DB6046598483159907A667378F80BCB84472D5A748043B1BAC10BA5BCF61B07A2B13B12C347F3253E26C25EF0AF6A003A67B0BEE98A7C5A489C9EC9AC1F042C6F2BC7585CB01BB4B55496A93DE903EC974398E277CA7CC25E3265A879420EA0BD8451716AC21F1BB806C12B3488D408EBF18B89B79B1F8C09EACA235F1C165F9504FF987139590F9977513EE037249B4E25E51A296526BA76CD3295895A571CAC279BC65642CBA501C8F131EB52B5C7CB73B17757440B1EE4E9295D404177E542BD744AA587738BFAC0EF3C1FA0F19B0A5C5E28B53C2340C7FA061AD354C85AD26993087B61AC2002795D5ADA7A3E6747AB8110367C824988CA705B818D7A921DBA33371405AD235B18E463A8AC88180C88F071579FA5AB6D904A2F53B03F7C7EC39C473632369F984F8CC66DBD1924206A6376706CA36601BE7B16EDD17E93CB9A0437B3615374329B0712794F5058790D88182BE4863293133A83AA00E07C8E79C6F12C33FA9437ED984A1392903DA89BD43184DB6C8DACE3789AF5CBBA092010B889CA98AF99E5B0B3D4399BF61266E833A55A85E11784708B98EFAB223A27AEA1A16E76A73C2027759FD97A7DB870F9FC79AFC89435D092DB556E0A738C133B259F86C98D78A43A49744F306DA8CC6C9098A5A9CB091C9BAD94970F03B543D669A9AA4944E0C08DDFCC1D7D485FA414B0765A88F175AB6C94B12A2177DCD4998E6AA263EC3FD5BAA2466CA04568869466887F7BCF636C7A1F084277532841F51C3EDC5C1873BCE0F07A8871740C4AA82BB5AB164916082B795EB0660BE32DA9972840C927B7BB4061343D56757258BA4C91624F21DA11CB265B00B9AAFBB1665679C86EABBDA12B74F1C5917101D0EA2BB293C71AD5B556369378A8D5B7297C9731705DD4493DBB173AD01458686A93287B6DA0A6923B913989B69612A915A03A0962379BBC466A03F5517AAA0C0B030C6CA420636B2EE8821916E9C7F2BA228BB2AEABBC292F6C07AD85C6F43CA90D42629759536046394936C3AC5AB979D5CEC1A1CC19B5C17EDB47B0F47F34D616027B29A12725BF14B62FBAC4F2CC6EECE89CA0467D4868C11C17299373687B657D132C55785080F5B87F0E3C1504673825B98E8A0AA35F2C8D84F41B060AB43A930E7BE1C9D04746169BB4AB403ED8C74AACB868B4A93F1DC55144738E2736749AC64170CA7D0F0348A9550EE494466A49617B541068F2C57AD4108AB813DB58526C7647D55C1CB657CCD1143343AAA8421C23BD0C822F763B6A82B7D0041648A143BCC431A72B204E680A3BF11CB6652255143C4470B18AB27BA5E6CF2F1064C37AC2A446243442B0D2714D2D6C3208E303F974748012A7F0AA89DC01035DDC3685657D457A6CBE9C7A9E8AA5E522AB7DBCB1C646251BEA398431339619B1EE972A46DA3A063C909392C284B4C5BA840C235588CA640A54963252E45E33F51227B11700F135756B3567004216417F2BEB77F9267E72E444F3A78EC649131FFB364B11BBF8AB6472996BE20829011C3F32183FA1A39EB2BC0AC20478EC168E4E2BA66A01742D973BCEC937A9383C62C725CD0528BCBAB546179A6365819777412C5671DEF8CFBE9B27AF037DE11C268FF2C1814222664BC9A7059114511CBB5B361EE050634405F8D1908D6A9F3DFB3C1D888CA74BCD244313FDA169B23345F2C804DB569A12293883994940FA236A7A5DF76C1D6C853207A04D2DE7793C6A6BF5330BD31C285A923071C2331C23432C427791E17711F50688130C3DAAAF532060AC0C9AE2E9CC338145D8A5787904C133817947430890361777818990C5780A4440B2202D24D25E62D57365C8C611F96BA675AAE5A14164B5171D74146D792D6203BA384CA81EC71ED87B8BA40023ED8BC6AC54406263CA3D97C5BDC20D9E2CCA82B0AA54586863D95D3ED0075CC897F6726CAA441896E86E03711A3D109F5BC311E81A5194363F8BF735AC9A2CACEB7EC4826F8AF2B303C3914E9B7C3C5337432CA626970761900B44CC92630AC8469A6BD9D2B46D88C225223DFC405D6F1447F9878610D021CF3762C235C414025239AB3827AB5A4699C82E37B1A27B460F0264F4089A98E41C924773F4C83F5C57A4D0F6959F6C59FA6AA4A6047AD0873935718BCE46B2F19864E06486A4F5C8D689ADEC32A2E7C6B57071BE67017FE25B8F52CA525F99BE536A4C1468B5F9F418025450048692F961AB8FEB5075B543E04A0564C26C58A72EC6433B623A2D5A086C85347E45EA7B99D03AB50664149414C3F81D219A5B5E732C0A52C060E90E64E14873C02167A21A67DA6A0B945781341CB7C65AA2DC481B0998DE5C8D893A548F055F8FE420F173B949862A5549B0AC1908F202AE0BEC6B19C0B3E5178F4E40485CA33A93947522C1AA6C188AC2FC4CFF214B995B1BD69229D01A8D3D2045AF723A1DE559ABF78C09928D71ACA3C0016038340AE715058C95CD33CA85709B2134F78B86A84AE764AE94B994ACF1354E42126638B57AD207BAD29F1E60471ACB5B650332B4656CCC808C15EBB8DF203FF0821BEA62AA67967BFDD09535E7088CA98E3795AA1167BE9126348A946507C08243A969B2F9238FD29F0370356288CB1708024BA7A9CD58A12D306D4F4579893C8A04A10C1872B6A602C155F70A8BA6987FD28DC842B9F60B4052890A4482A351533B4752061E30957F8A16B6F8502A1B4D8F91B56B71470EE2CEF40648533BB1D9179B3E335E051115B817AA30B3707B64121179318593B0460BCF6E57A65E045D00353605D60A0705468C6B8E4DB422C31476C8A0B54EC166BA59B75F9834633C0052757DC437005F653ED4C19CEB7C774EAA75BA0068F2A997A79A98BEE42ABF9A3B7597394D4907E430737F860454407B8FBB2DA0A054C2A4C737C8724C02684A070DA34388FE9927BE4259859849EA9CB6EF5990EAE176EFA10154556CE5650CF264BD11780055B5931BD6C5F51816D135996757B386B76A03893EFEA95EF964B402079CAD080B67098B2C092F1E9768782A8E3DACCD82741CDC5C8575796D08E3180B34B4CE227E7593AE9264417E7B53DAEA2987A01FDD42150A4262441475370C1357A575288571996527C95A9FD62C3BF54A8C8EC0A335C3A31B934002443D07F27240860E8EA76C821A71E67132C9A5A1D4D3B5F29CC9A9924081FA3C33F4A11285458954042337701C392998DA8EE556A544F0B49C9C2B83B58DD8D165E6751318363400D61652D7170CA44B3033BBB20B45072708E6453B1708B5B8206419E050D7C8843E0BCC227B9D6B426A9F693945D69EE98558BBE133FC6427A8F73981786F42DC03FB23621952CA8AE03810648B8CBAB5C1D2816FD1C231E10F7EEAAC9A798C2C3A4CBAC428C6971851320191D3195FE4419AB69FE913280D0763A906C33C4A9D311C74D9459EE85A6599061F09376A14803E1DDC67D8328BEF1C7F673B62BBC234B20A29802CA9C19C89B9B6628A6BAC7AE29897B1136A0B8C28B0441BD00A9144C85C9897A48902D176B9B03A454F36885DB61B5915811D60C170F74ABF894BCDE1A088195FDA3043BE6080B8B98DD48168C12A68D0B74242472DDFF790608170C271A4BB19907288854CF1C4CD744D1EBA1201FB643B805C7C7C1F6CC9437038BCAF6616F9A6A214785F5FE71071E4564D0070A401B457023685A65D63FC525BDA14B26C1F5381885B24786A939669261B769068C3F97EEE28AED3FC68D3B08D6A6B77EE2449030C0190C016394B0D9C8085BD550D12F5110E647B9A1549E8F67F5FD0580FB39358114AA668BFA3A202C0369DDBF5518D80AED20C403AA3CC7148119CBA54CE1667C2654D9B5A833D5A552808AE72629A2DA12498319A30113B314C870E8752E442AF5ED67BF1481F071921191B2B21964FAE23B33DF528A22090E4BC6EC2911810E02E65758397B48D1906013CC0CC0C2C73944B45BEF04C2781ACF467336A107FF7CB12E6305ED85342D2355B047862BE56057CFE1B1B3BBF85039A8189076A3752784E23D8A802023FD0743EB03D989A69684C3182CA7A48AFE60EB85790DCB50B8005B568921DBC724130B0CE83F1278454BB3EEAC4320F84D09CAD413A7D7C19C27668B2E0E1BBBA2D159B833DB6C0F50A +encap_coins = 492D4CEA1C6E07D9535AB2FC21D773BEA7EE2C7D66EC80D41191AED269A398D6 +ct = 6A2AC04B0BE55E91729BE92F787571B866AF277CDA1504792D158AF780089785E2D9BD913EF66ABC60E4E8690E40564439A30C342BA583F45C80863B268F6F665C4E6A0D7FD18E9D8FBB094FBDDE8E99E0696CEA3B606F95AC9EAE4E527E281E83C020E0B5036D8B549D30BBE0083EDD96D971BAC248CE0F598A776BBE496C6737A8CB7B3DF96DD18CE395D96FFE241D351D219A85634D82036D34E2B8F5CE13E0603586EE6D1AEA698232D621BD5B31DB4C058781543690DEC2EDBDA16FDC9832478C6A4CC9D40761579FCC794709DAE9DE03022F44B60563414CF19064BE6F5D5EDE2507366FF687EFE8FEB545CC0B640FAB4268D2A627216762C97C4212532E8CE46B5432AC8D91E5D40081E44DF6EC2F175F0C01C427DBC8313BDA9CDA6F90188F7133B26F34234A8B729E4BB8BDF9F7BBFD2A0C26BC473B273F1C26A4635CF02D00E2237DCC3B87B3410FAE829C523E5D48E3EFEA07533D9C157154C895737AC611D6E9E27496260B241AE4E714FF8D9BADFE12B5D61B47171B7C5E911AC4DA71CA032AEE900F592E3C671FB26F0A409A94817BD5289FB89F2BEA88313A201F6623F4E6883CDF392B0632FB2D3025AE137459638EE63449A80571D08A5E851DA530D73DECFEDB64CB76105746E33D61FCF5CA9EEC95FE4AAF67BE9B92147D505C42F55C5FE0B175A701C63E766DC755FFD0A5798DC9421DED3A7145FF374B5091D7B095B9001502BA4961B18E56CA00DFC0819AC947B8F7F4DAB0F534E95CF1B1497C7273C4B63F6B1138654522B44E5CF3A31CB01D3ED6467BC1AA9BFB0395EB54BE807A3DB12C6739E3025E4A40278FF713A52CC1FD73DBC976B4319F58A5CE911A1D17BD9E9A868C9E93EFA8129CF63BCE73BEEE7FA7C09E02BEDA3D07DEA5D634CD58DF8ED8E4C312FEB44B9250D3C43726DAF26C6FE293071C69106920DE01467388D81DB5EDC509EE36BDCC12A6F15C63F63CD75B87C6F057E7D617B2B1463492E82408AC1FDE93C0323B494C49526E7D043FB8187A5369881B0DB6B9F0723F2004D9D4AB67EF23872A1A6399428441908125B31F875DD38968603D1BE7B6E246415978F79F8263F266A6780A188283EA8BDDB815494FAB5927504F91F6A92FC75088C98FB25A5D8F39A70AF6DE37656EF70159943ABB0F03F935676B4B0E55C3F32DEDD5A6860604016ADCB70884140651E5EFF277C0B01A19836C0B150DA0C90CEA81D5EF9A29E789E9B5CFE973C602A3103BFD0EDC570929BEB1E97572C3BA9DE6FBE6EC8B91A1D889AAF579869E4619DD6123E139CDE6A8C618C039591F83CB33B2630F8E2F040ABCC1BDFB6616AC544446E458B7E1BC1C9D4B85CAD3C4CE9CA34289C9694B888B5805DCAC04074E5361165CFDB4DEEED3DED6C93043336CE7D3F0A21A47A518307B22335708546685EE76C9B4488A14B0D575EC3952A13BF41CA04960C039103F062981E84D5C200CBFB43AE0B887D8EF31A7CE3E085224E0E093637125992E40375CD2329EFA608DA291FCE02EAA7EB06C314A42710FB239F0C45503CBF1764236BFB86D144975CA710BBE9BA933E2130F967604BC0BEA6A68119879A1A385740F7CCF252495AB0454F7D6557468BA32BFC9379C0859487A8148EF745CBD630A081D19886DFAD4A0267FEA83AB9005FD86C3D4EE40E0DAA28F29D4D18072A2BFF898D3CFED958B7B5F465607F29617EE24136C4EB3F5E70074A805E54FE05347F7150943C58CC443A5215AD8C71BA6A927EFFEA6A83BD808A440112A964B3E535D3A8041B53137CD0180D2A97231B7C443217313FEF3DC76C358BFA4B00B8E0A2452CA3AC5CF6FF198B9B344C5F825EDE220D3E3DD4C1D9DD807B6E6EC634E9AFED9CEE2F04A81A5F192720B68689D572AD19902FAB0D532DD5BFB2D8A975A29C4AFECF335E82CCDA83AD81B5885E024FDD5ED5FC403575D41039DF6C70D0B043622E00624D73B248D8D035DFAD0BFC39787B80E076707B9624C4F0721364B1E8E27BEA7EB122A279C872C3791183ACAA7A3212E7EAE16FB43992E305B0D4EE9A3A4A079E1CC35BAA127CC9889881D70D50870D3927554E488BF4D6EBF872C9C4E1F2F4AB2B61F4C461072759573BE6DC2E87FE58EDF3473D48FD56C30FCA1DD20B7E908211D906160D7DC7B990154ED4EACCAA0B776880E9E1DD04C73F1E51974F0F9BE17C8687F0D77FE3DD38F7A36C1 +ss = 9ACC088CDC498D1D958D79EDABC0DA3AD23BCA11DFC5F5FAB950C8A08ED7CE41 + +count = 34 +keypair_coins = D76B3573F596EB286AB5231FEEC7499686B13021BE36CB126C7EBEB9D7030DAFA8AC144DFDA421DE1A7ADDC92ADB79BBFA9657F3DC4B78A7335F29DB87B290D5 +pk = C6100D6D7952085257F692AD9173888F28BDAE384635B2057A8183CA07853DE05F72437D6872575FF4C0EFB06259E397CDA6A87A178498C9AAC54B046A8219D98C48F113319984995F68B1AFFB863FF97DD8D14CACE2921BC192E038BE06A5C58205CDC68A3D1EC34D58697A7B6BCA3E731E0A68940EE5B8307460B402651457AD1A7883D0165C8CAB4D88F565008155AC009776500F3779530958C3003C7603C900E50148088B9420B78EAC241DC0AA11454195A03998388AC747FC465DC140E9193A9294ABB90B8022B493E069AE430AB3FC9307FC89358D3A88FB054E9836CEFBE45C44569B285B01EC892D5CE8288ED638D1876663E3C33C25C28297609FD94CD0BB923A746A4F55470B3B6C03C8A930E7BC06A08F521B6063066788841964696A31547C851B578FD02434526C7E641FB9721CD390984BB121518A88633658C7C7C6B0830CB6800B2368CBE703CEC33A4BDF319B49909B590A8BBC6542A108BF5927C49DBAA2C5C5009E002E242BA210A64F18B8542BE1CB92A8293C56586B568B489CA697D6C4F819C399590472E8B9DE9573A1D2934B86BF2D2B6F92EC8489430E0A681FEE0A22BC3A705396CE6A74C1D5D3A91AA253DA718757C875A1442FEF4241F95B516D27220973C25E29B1D335846DB494DB4CAC3A0B76388304B4252AC2362FF032A8B5C3322F6A0E5658799F1193EC69BF15C77E5FF2A3A2925690496AF4320EC688450058B5727A0E66F98270267B3F49270E310714F353DD4B74410A9A0E778A1E030461113CFB05A142001CF39721215026CF84B1C0E706DCFC4D9EA80514061463A16E069750C026AD26ECCA10F5830B2B756D515EF1C64D6D2C5E73818998AA9230D19D35842400C4568F62397EB0A42CF86C857C3AB009C8C831257D246B456996BC1BCC378A44BD88A0FC3469B0DA0D22410218941431A12F37831653342F12206C56C4B3BF980A5017114B3112A6100B06A2A62104C48CE8639D1830E785CB3DAB23F398691B48458D2ACCE79511AD276643476BD6C33D8D1C40FAB1B81A96A7DFE36115E49A07F8C72240B9B3F24A2739B963609B0C2705F928C6BA7C2FCC0C164BE46FDEE5BAA5730CD7A55E1221CD73305BFF9B8AE5C126B8621BD6116C17286974002C88785C745BC32F0B86DBA92E072A395E91ACF7257AC5EC5EE88A7095ACC39AD023A904B72C0AC845A318D18C7C72A0C4387CB470C8BA438498C5514398C70967B46109E18505543A98D51A3753BF3C657AEF7264A91C2253F801641C609628A7F13A246D5AA13F3A4D1DA22221CCBA20091C6284452F376B32CC2D27D3869137A3FCFB06B7C93F70F3A20D84741B8A186D78AF94C204BC0B6DA175175BD819479485DB23BF6EB2CBBB62A088F2BDA7CB470C26B281E29E0F29A111688CC2E7CD61985EB39287546967AD991ECCB99A6DD4B111861755964A77E3A7D2C5B9DC966E6F51BD53D72F9775A624F344FDF4BB3A9822D26B6DB6B11EFB527A2138C45F27C5E8A834EBC780E1E8210A9A7A4B7C3FC63B1757A22B8CAB57BC07AA27A228CD30411EF407BC276ACE8C05498CB641366B4EA0CAF8101198B35A51D502A1C1894EEB700A832D70E627AC0B7A57543769991F007176CEFB10C6E74A987C1D9B9750DB5230317298A800B508D41C942B48C36035915C0504646726AB767A5059D39996A3E310CCBC610D878F9B7503B08822BC1541A359C807526D27A7ABC1D78E3C0C3F67F0609C699E44CA8CE2C7A78E70042BE21F4C569E9D0494A6E8C2F0592BA5060B365B57D1B03916E27FCE04C42205803AF0B213E27B21245E480B6330BC8533888E72E9BB2148059AC42BA2BA2550EBC37E437487C581D069BD27D739D4DAAC6D5B6C9ADC8DE4898181422A34B9A239508878A0682EB2466A44A59542B268D31989F049F433A7A0225D556770F4391DFDF4432133A0D888436AFC531F4584ABC40022C36314757E79538CD1C67DA58A049CD10BAAB7A7FA38293CA84403291372F97C9EB85D120B541BBA94098673E35358E4F97EC124CBC7E1C2E62A2616838D5D13674B832694975CF1396DEB11A1CB5A1BCFDA55BA86583884AA9593399A047F00E703CD458AD157333C349C46021B7AE1970BC2927F094C77970A7C9BACFB0A6E02108036F809C9AC23877B8B2EAA1ABB3132E55D8BD5B08678BFA4243430BB4D059B58A4B0CF0FD26E +sk = BDDB6A1BB704F8B530860B719752402098C84AE4809B01C8EC7583A66A3F4BC290BF2173ABB41868225606D54991F5B547C2254C74391717045997A57BA534A97B3605E1AD9F7C6446AC08BBFB1999179BB8F67731A63CE1C717F30B57FD17BC00605E8E14127EB0C26E324AABD45138484A51A15DD2464440178CA7E966D4D58383F6BF9BB2A971729074781A8D978965F9A51EB2729BA8C308474D56089F2CC869B523C41C409507A671F0F3621E057662454D49C49A398343D64CCA74B7822D773373D5185426B7B3951256154A7B78CB1F5049DF0371B840AB21B83944FB383CC84AD9E24FF42B2731276C1D26B6120534438B029C4AC7C0739453C2860D32ACD75229C63A23A7201C303032BC0A410319035D38A3C9802D41A56A8C6C2496DB10441A2BCD13A81F90CDA2564CC9E4020A47595A30994888B383E996115AA282EAC3E3594447110C2D07774F9312D796C6B74A7634B6C0DA2291458A35D3022BEE048483461CFEB152E1D2CA9195AFD1F9AA82131804D35E739299C539B913C54A0C58683259B3137AA464B9C6E03B0EB751999B6C5354D6171C78CBBEF1B456EC4C88199764A5761D18C0849C1B0A263EA401B86CBA549C712E4A251830F7B6EE16B2BFABCA3CE018C3833BB881385C272DEE151AC35A2C9561B3C1266855219B0C6B485E669FCBC49B24C50C6C3237AA6B116085085405115E0422D956BEAFF9360B58BF915654B9B887AD9733F425A5C6990B3F0223D8099BC0E95C6A5702CF5667209ACE08FB4697D02DC45CACA8074185F54EC4641B35BACD2F0B770FC215FDC171C98BAA7AB6C0450BA6E47A838575A528F7BE221C3C91F02734269A9425A2EDB76CB6D077ED76040A716D39C9C87A58AD8867954C752367A905AA158E0A9019DDA50A6213C260F7BD8A0A6E8CF581FB74CB17283F3A1A8AA9A0418C79A948199365A6A1045238104280AC704B33791E156A2377BC83E9B9C86D0A3D2AA3287272BE6431BB4E598232312D10D03BCB13B4D838A9A624566C6A25FA44A0934AB6CC333E6D52AF3EC26A6FB97615CC3C77102D1A315486BC69C555A3E8271660222A406022E8D97251308A90A15F748153C1168CB133593C1641E164C8A06CC008059C55449413C2B28667B99122AC42B8BFFBC15FE395003249C676DB7589D2896E7405BEF8AC510782FF204454C8A0390C332CEB7A5A3123EB1A1AD0470096058358BA779DF70106E24990DA77AAF09705110993F16A2320A941D8865B387236CB8528BABBF2D9196C15898BF71040D3BA500CB7B1AC85DF11003A058D838C2652D4577306023C756AE9715136E91B20699FEF425E48953FECE15BAF27489D929876803EB0B5764E6338BF5970C2F35D1E815BB5B0B1BAB630138859B729923343C3D24922A8522E38E19868B8A4585ACF14B795FF3A609D93B1A5CCAB08F877C5B71EA78C2819113FB3632D5D995B02926663F2AB8E3A73DD6AB93503192E0243F2593618E3A809684BB6A31674E77802828FEFEA3A50FCAEB1088F7EDC036CB84329C988D965071E97C1311643BB1CA2B43CC57C84CD5EA9109AE36DE2801CBDCA3BB6F977959578954AC17D303841D5726631663F12816EDAB5C22B0286716D1DA2B9EA03C5C23806E56679F43B33FB553AC921482F0B61DB90ACBCA4B91BA19A22C5709BA48777979538519DA6AC5E2B576C545B35E510B1A57BC651F69DDC4634588B19A31A481A216A365941BBF709679A9EF8A6324C20C6842818BA97CCA6D26CA3FA79F3571E0CDC651CA753C5F2B8E8C247E9B064CD266D268BA3C18A30168452031B9458B3C4A084A7A9542FE7FB88FDD828F5D275CC1879FEA43D84A38DB1933298F6C98C08188B5AA96D9065E7A638D3746265652FE72A2D4623BC97C40B61A7124C899876C3AEB0D9CD2672795E0A65D44C0180436E8F4C2876E66CB8071262DA0947A926C80C6B67E13697C7A200B55F576459478731AC9B62B7572442E04105A83134561AD9A71A9D4696F8FCB791C44593A680AD34B8096BA82434828C492638A9A870B14B611BC4FD43A005624895AB6760257D181954F3F934E3F6742DC54CEC3CBBB8C229F8902D18517374CB6FA8A0CF6BCA0487880D30173CBF6A0386F12ECBE135CB7B620A5B7B3999B947770401A917C6100D6D7952085257F692AD9173888F28BDAE384635B2057A8183CA07853DE05F72437D6872575FF4C0EFB06259E397CDA6A87A178498C9AAC54B046A8219D98C48F113319984995F68B1AFFB863FF97DD8D14CACE2921BC192E038BE06A5C58205CDC68A3D1EC34D58697A7B6BCA3E731E0A68940EE5B8307460B402651457AD1A7883D0165C8CAB4D88F565008155AC009776500F3779530958C3003C7603C900E50148088B9420B78EAC241DC0AA11454195A03998388AC747FC465DC140E9193A9294ABB90B8022B493E069AE430AB3FC9307FC89358D3A88FB054E9836CEFBE45C44569B285B01EC892D5CE8288ED638D1876663E3C33C25C28297609FD94CD0BB923A746A4F55470B3B6C03C8A930E7BC06A08F521B6063066788841964696A31547C851B578FD02434526C7E641FB9721CD390984BB121518A88633658C7C7C6B0830CB6800B2368CBE703CEC33A4BDF319B49909B590A8BBC6542A108BF5927C49DBAA2C5C5009E002E242BA210A64F18B8542BE1CB92A8293C56586B568B489CA697D6C4F819C399590472E8B9DE9573A1D2934B86BF2D2B6F92EC8489430E0A681FEE0A22BC3A705396CE6A74C1D5D3A91AA253DA718757C875A1442FEF4241F95B516D27220973C25E29B1D335846DB494DB4CAC3A0B76388304B4252AC2362FF032A8B5C3322F6A0E5658799F1193EC69BF15C77E5FF2A3A2925690496AF4320EC688450058B5727A0E66F98270267B3F49270E310714F353DD4B74410A9A0E778A1E030461113CFB05A142001CF39721215026CF84B1C0E706DCFC4D9EA80514061463A16E069750C026AD26ECCA10F5830B2B756D515EF1C64D6D2C5E73818998AA9230D19D35842400C4568F62397EB0A42CF86C857C3AB009C8C831257D246B456996BC1BCC378A44BD88A0FC3469B0DA0D22410218941431A12F37831653342F12206C56C4B3BF980A5017114B3112A6100B06A2A62104C48CE8639D1830E785CB3DAB23F398691B48458D2ACCE79511AD276643476BD6C33D8D1C40FAB1B81A96A7DFE36115E49A07F8C72240B9B3F24A2739B963609B0C2705F928C6BA7C2FCC0C164BE46FDEE5BAA5730CD7A55E1221CD73305BFF9B8AE5C126B8621BD6116C17286974002C88785C745BC32F0B86DBA92E072A395E91ACF7257AC5EC5EE88A7095ACC39AD023A904B72C0AC845A318D18C7C72A0C4387CB470C8BA438498C5514398C70967B46109E18505543A98D51A3753BF3C657AEF7264A91C2253F801641C609628A7F13A246D5AA13F3A4D1DA22221CCBA20091C6284452F376B32CC2D27D3869137A3FCFB06B7C93F70F3A20D84741B8A186D78AF94C204BC0B6DA175175BD819479485DB23BF6EB2CBBB62A088F2BDA7CB470C26B281E29E0F29A111688CC2E7CD61985EB39287546967AD991ECCB99A6DD4B111861755964A77E3A7D2C5B9DC966E6F51BD53D72F9775A624F344FDF4BB3A9822D26B6DB6B11EFB527A2138C45F27C5E8A834EBC780E1E8210A9A7A4B7C3FC63B1757A22B8CAB57BC07AA27A228CD30411EF407BC276ACE8C05498CB641366B4EA0CAF8101198B35A51D502A1C1894EEB700A832D70E627AC0B7A57543769991F007176CEFB10C6E74A987C1D9B9750DB5230317298A800B508D41C942B48C36035915C0504646726AB767A5059D39996A3E310CCBC610D878F9B7503B08822BC1541A359C807526D27A7ABC1D78E3C0C3F67F0609C699E44CA8CE2C7A78E70042BE21F4C569E9D0494A6E8C2F0592BA5060B365B57D1B03916E27FCE04C42205803AF0B213E27B21245E480B6330BC8533888E72E9BB2148059AC42BA2BA2550EBC37E437487C581D069BD27D739D4DAAC6D5B6C9ADC8DE4898181422A34B9A239508878A0682EB2466A44A59542B268D31989F049F433A7A0225D556770F4391DFDF4432133A0D888436AFC531F4584ABC40022C36314757E79538CD1C67DA58A049CD10BAAB7A7FA38293CA84403291372F97C9EB85D120B541BBA94098673E35358E4F97EC124CBC7E1C2E62A2616838D5D13674B832694975CF1396DEB11A1CB5A1BCFDA55BA86583884AA9593399A047F00E703CD458AD157333C349C46021B7AE1970BC2927F094C77970A7C9BACFB0A6E02108036F809C9AC23877B8B2EAA1ABB3132E55D8BD5B08678BFA4243430BB4D059B58A4B0CF0FD26E4359601C371B50B50B5306DE33CFD476D3B5F811700DC4918BEB345840244E3AA8AC144DFDA421DE1A7ADDC92ADB79BBFA9657F3DC4B78A7335F29DB87B290D5 +encap_coins = A0CAA815DEB43343D4C18FBE19B107D20E36F89AC9D721EE8E82CCA43F9A28B7 +ct = 1E2A1C5DAAD7A68908C17676504F08E4D2DAF63443015B4B665F8AAB78EE46D6EB8737A8FF21DC5F37DBC8BC6AA43FF3253BD34D823D8D19110B9034A80D623CCBDFAF29FD0323BDE07BA91288B7C88CCBEAEC07D44217AC6B1C636B0572EA23B2B9991250DD630DA42B3FE9B3480CB64B3F5566802127270A265E27E23AEF6A6AFAD300C2DA59C5A930B5008E89F753F77F6AF5B24D7DB52B907C110A79FFC8314D3C24FF8F262FA5A38D748EB8201B47291D345FCA9B057AF70F460435637976CB086863E1D4B42638859F4620C505762ECB09F949DB9CE70AC33AD9CA18E32E9EBACE2D6A551CA4E136B5C180F4B5E4272992C1191C405828E7973492DE8166888EEE5A4F5B62AE8E507589F3998A79580EF45643D2B133A244FA4721C98E212F422A1ED9B1B9274EC5C8A28077F603DD5F297336EFAE4D5D49D54A2AD63A9AA9141ECF5997864E31FC7F6E06402AA0C730862EEB26C4574EFF31C07F48EF4A371EE1C478C9D0EE12D576CC0F22618AF30AF31D67EEDFA61B7ACD66F99BE434B6966C3308BF75219CEE875DC46755B4BA7F2A3930150D31203A49ECE8024E5AF8B7BC548DDB31B73063AF345597CB342766F8ED0054DC819C0B49C025ACC37F2FC640AEB05A45DEBB232123B6576E1DD87EB2377F42606873BD417CEB24FF8253AC4F4E2C9F543E8FD8F1071695CCA77A4960634E9CA5A3817B868263FE82C6D42F8FBB542E20B8D0C387EB0349ED5AE38A985ACB44C5F7E30794C1455A4EA13FE70ADFBF08A5A6CA1526AB651A577394B1EC951078C76A3FE05861F06E2D111AE7030F7C51A60F1BAEE1552CF1101A27276773D0CA469211CA7EAB5B2F4F8D8DF7215E24954EBAA23272C6F56A638EC2DAA173181A635FD96B8CA6AE32EA02E7F9C73DE6501AEBD833F01D730F3AD9F93F06220A8AFD17F9D336F442CE9E761C29DA4D10F64F13BE346ED7A7DAE1F7465A10639AA0C39EA588A96D981DB69D49F1CDFE3171655D71BB23C6B0C53315879610E44F2F407176236C4EF906E51645940B399F956A63F3786801244F861BD5AADEDC5E2C3F642EB7D509D808E06FBC8F0A37CC58F7EF6FAA97A8D4FC6AB28D598A6F24386932F1B80FEFBD0BC4ADF0C19194BE52C89EE77D72E19182503D775C59C3DCC2AF6E4E45E6B45FC5011499EF5152E1DDC3733063C2F25E2D9D78FE4B888E5A51B15A879AABE8FACE6A7E08A4F11359CEFF5FBFCAA0B49E911F3B14AE33135C9E04271D434E986EEF54D21D1C9C79C582E32EC63C8067FF226FE2FC36F15C336B6AE85FCA6C2CAA8AEFD79A6AF29CA16AB4199F87F333B83728EC815DEC535F47D5F8E75E2314160DDE640FF6929C6BC48B59E8DAD16553C885A9AA502F110C38282F24E10AB5D67049D2BB30BB7E7959C144FC200DF89C585003FFE8438E331DEE5EBF0D950FF662CF75A7C1003051E5F702451511CBACA9434FC78561F610D24E34CE96974BA8A589122F45A763A13C258C3D412F89AF504F37B1ABC43EAF7595B07821EA6CBEEAAC5A3C64688089F4951FB637667AD348E5E2C48D31A4249D4A7436BC02871E2F30E407F24AF3A8323E328F636872812616C24772835E22AB4E6CF99402440160CDC5DAEDD3A2B46571F8AB41212A7B4537366DE79568C34DB1F3E6BE838008D39F1576EB7705EB3DB5D1158E8DB81B72F9C3E6D26270979F50E170AEBF7827E4B055B9B8D3BCA09C6BEFAC0EA1B04DD650C88AE14AAB4F894F98A068AA0BF765B2707A35991E1FEBE91F01E4D0EAFA7F9A56895C958E47E0E0667D6BBD21BB7CFF6509E0A4BFD3F9C58DBD4749B235B6FAB1AFC48D7068566F4ABF022B1C763E79DA72B6554FD79DB47166986972620ECF5C694FBD264524A75F9F768D537CD5E34ABAE7883A35BAF8FDCAE93443A8F0FB95519FC2134FB406F46F8C9B5FA98C0D5E551111E4FE1E4CA36E85881A008F061DDC3404F6ABB3F3AB5D054A2EA209C6927C1C8AE69693EC11C1850CA8A2EDFD80CEF38F641BA8F49B277D1163446A5D71417DA34CC0808AB9EE5C74B01D30BE821C822A088C3A4C69513F4D58164BFFA4B32BADC195B1D79EA5685C83D6D37E6979A3ADE4E8612AA2BC36C6F7F73082C10C7E91786B348BD0D2A4D33403FA78BA867B37763DA4ECB113F7D6C64B424E3A0C4390D9223EE51B1E3A0B660EDD340B686B8F230A25688A5EBA749CFC8CB2 +ss = 3F38634F1C524C69CE06E37B7274C8265231E8EAC9A872535E9DF4D7930C4342 + +count = 35 +keypair_coins = B87439FDE81C9E39EEBE7CF741C685785532C1DD23E8EF868B9CE7A541010F3D6EDA18027C6709111F1987E026A481D46003AEAF2FF23B675BC349C749F300C5 +pk = 49548733578AA80987B45A404D892F45F83FE6260B4521181484A7AB65AED79A53F2E495AD444066D1108D14C4FA74847FDA990A783FDB923734860238A94B8634217DE964EA35A3D4C651A15C719301A2CAD86352257C2CA1A87F329092E18C5C782ACE76BA239C6001143F87A0406DA9437D7B19144386B9687023A34A46814EAE040C71673ACA3993ACC03879C9AF60CA0E4EAB9205B7AB65C33FF1295100D349F84694ABE062672135865494ECF58DB2912A3AF380C228B78D329634F359008871769696BB357D552C3E9FC17D8B636E1B905303BB2A5B6A6F07F478D4229DAAC38ECF47C205371705B72092F7A438D01267783E24370080362C659796D7443354D92DFB9BCA5BA5355E5C3608BB3D9B312FC7AC435B81CC1A6BA84A74283763A520381E9E3C998DFBA80D8383D416495B42B7B6CA3E91789C8191B894350F52B6B7A3E38A45F50F39497794E0971650C446551D7D304C87515BB415773C10BF08CC20506C0F515428E8B9037C42A837469DE6A3A37C695B602407A46B7796593623A9C840ACCB5A6B1175A30F62C8B9461C444EB73BF1E22418347AF3D92742175BBFB41474156745EB0DCBC4077EEAAD6C13C314D3188D3C9BF2F73784C0CD1A215C4623A8BBB19997D82BE2B1719346190F054A1AD92819D9B812028633469C3661238FC66CAB7C05BC5468A132C9B3A50EA5A4A8EA04800C97C3B391115725011E597312B7A0440AC2DA794859776CA73B550D666A8F058477A1A0C9621FF6184F415114D35514909719234C166734B5535B863AFBCBC5A2264A86B0642A41763B6D6DA15447BC930F925415ABB3170337C6985C499570DFB98430A56CD1784EEAE57A5DA37862790A282B8DB833AE37BC5A6940A8B95926F1F468853B288C9A4C7C128BCB56C7A218C3FC725AD1B89C829799B0A8A1F3718FB489B83B900F1CC9B1EE16369F18B207D022A35224330582BC4848E4634F3490C12C756246DC9F3CC27550057A1863CCB91A4B891820BC882C0E6024E1BB037677092C633F2CF68B96B666E1034339CA3E43F6AE7FDB22F9FC7649E559E5D22A07075BDE79A82E62B5A5258A0E685A2CD1BC8566CDB4A19D5C581236F0CB4E7AAD6F561CA9F6850D30A6FA0C1ECA230A06E11CD6F26194F56F40BBCDC99BB4C1F32C851BBB7AF48F19D813F89B01D9477861E128631B9B4D72C4C7CCBE59462A4519A8A34A44DD84586C4A542AEB6E1338B6836297A59283AF07CCECEC01CE074D8469C93F509F09F7230C092C63F2245AC2137A4349078A473D81CB3F87CBDF843645500B932BC326A85FA91095E4513E9DAC02D92A69F5ACC4200BB1DC0270B013B1F2372BC75AA609E291F0385BBE9376953CCCB3F99971DC9747CB913760506FB051ED186454255FCD642AFF73C32743158D467B0AD012AAA439C9335B4EE23A426CAD3DDBC4AB882076C2BBE83321FB684825B032059838E3D43DA29852309B1A7C15C08A5669A3BA2200B34B7F325A5F47B479AA49984060ACE979E9DB6BB68466973A3E0030C0BCFC4E6C6C13F734B1731CA956F89341D37B1CD5C40BEC802A98C674869C04571993E461446B2E2A68BA71915BBEFC2D40DC8756B9AD9BAB639FF6985E03B5A861785981A7B1449594D584BC1CC4EF7A4333E5453944C61D0145A5B6C999900DF26299CCEA5CC1D36FBB80C1A5E9C619A4347669377D541519CA47F06884B1984408D43B4133BDCC488BDDC599C4057B14A027D051420A5C17CC1671F18A2128B58E9B7A5E233A6ED2DA288130B51E47038C9AA2751556BA24B284515AF73A81A6881D665426D1D27A8A763FB3B2CAA19BC310A9C10024B7D722606C3B6F19C8935B744E28333DF8B9480A0083EB588380E6A12D777862E5C7D3E1874E8B1405A5787E92ACCDC798A873539C133502569E6DE7A29C7025289A9913CBC7AEA55718F96F2B2C6394B38FEC3A7B79238BAFA349C03960750209EE517629CA2280BCB7DF35793BF233FA074185A04894AC515B8985DDB5ACAB68AB379A639C49216A8BA4F9B125947150A907385E9729A7D621A5A9BF8C4A1234E6CE4411923C18CA0E925CB372C59220A502390E4C740571F71EEA1083887A5797F5631F614F4E91184811892C6086B0F5BB6FC322AFA31653509C8E11A8EB3B7D32E99B4B05D558EA7918A7881BCF516457AD2C3AB72EF2E04E3A4ACB85A987C2 +sk = C6389F081CA0932AB66F658046C1278B38BC42B5C4E1A7C7A51B09D8A159773B67AAE1C2AA8666000C6E6A014B5C0369DFF147688AC6FD48C73D783E3025C92D782A479ACBDE8A7548384B763A868C46178345A773A9852016B9FE765DB0BBABA5751E8056B7564C53FEE8040D3C0125115D323C62A3F0A2B518330B6CC4ABCA84F62C792D07C1E1A0BBBD7C5B9A698CB683981F8828EE69912600311A0281DBF9C6C9E69DAA26A446D136E8B0310F236D7A5A49B2BC616FD346C3462AB09544998C8D5EF641E7B48C35BA7A68F25414F703FB02B501C69C58A9B798C8C76923272ED9BF432208BAB30F2DB45E1CDC56F6EC11792A33EC1A62B3FC992441527E63328A46003DB49B7DC07F73F705CA0220DE94BEA4967213D612B5A03B2C16A9BD4C66E0AC893263169A87AEAE67843944628E6374B5518BF40919840B8E6C64172BE3A35EE5A29777C035463380203072EA50E7DAA4F906D01C502560621137B91649C97417CC2D3E1677006226D4621073CB1AA213525199BBBFA78F1899A53CB2B8D00819869867A41B2F48C615EFE2C8DA15A4E6965BEF0C4207A499A2156EBFB611478182D85A71C9F8776D28051D1A6E4A104E54615992E0595CA9B0CB2A0AB0159575863F3145B3401498949502B2EA4392C77728215F8700C93F5846A1A8126EB6B72248BD1047BBE62AA58737268428509E53575F945735E75B42DB2BA2F21B24C990A847241D2C3533B10D50847C85D98143FBB2EB5138ACCB055A8B8BCEC8AFD7B5697306165AF982190821A14301EF0A90C3D829ED9035430725A99C67745CA415600D10D7C29B228998D7402EFC1F0D0476C4D74C34754AF9A1AA1213C9A0198065378DE2D023EB73B3A4BC5801D98213AB7040CB63318B8395DBAD6C7C604760CA679B301AB08EF1A948A5A83DEBB39651310B368C736A56977F78AF0916364F278A4E3973374213F7A28BA70296D1916FC65CAD3B33C4E1597F818CBC489BA970680999C373DBC246740C07D97C5E1EA5AA1D627757F4467E84AB9C5BAFD9BA484F1212706788CF5AC1829C7FF0A66F26C30AAE327BB7E167BDE95FB5829340B187162A5FDE3A7CC6A0A05FDB6F26902BDB0C6C4F75692E67AB1C8B1B46A40E53FC901DD892A3E612AFD1CB2CD52BC5B0C3191137E602B0A5872D3A961EF7168990B634F438B744375D75995943CAAA47E3CC5DC634432B6CF2DB29B637A5E22559A59971BE46004FE2A40F7C330610377A5B0EACF79D85F3C86223A4C90C31C2495314748601431FA1F49ABFF2575410AF33F7367C5540084B75D6736ECAA010290839EE2456EE16BBCB57C601F26AA104916254A689C24CAE98296E4BCEF8770ED7485511F55A46C75592C88D6F76005356C397EB1E61CAA04BF55A05C8409E644055759A7E60C1C8210221FB97780B92C2C8AAFB6B94C259A9CE6291E18A801A82456B93C221A625129A1720328F11574A5C35C3650A7B57619C61F47ED6319329F118F4C31358A26A7E9191CAB61012A71B27B47FA13CB0B2C959D913A2F4BBB3D106AB695A4C13D41256A0B442F0428DE78F90609A11B8CBB475083712539E1AB034903C30F6B73BB8229ED50F901B142A597E7FE48B6333AC8E01205481B10ECA15F509140987166D81CFB7417DAC331CA141CCC61A446B285C05D9A68AAC887AA23E17BA7DEEC8521AAA3088CB03CC7056560AC669772609C53153118B45D855F7DC44618B743C22C779145D58867D04F101904579CCB2CDACB28BE7E019C01511644B3A9C288A1FC84658281EE2492124F609D4997765F315370176A0E3C327458027FACF937A38EB88AD7C950DB7EB5C49E17D48532822611D8625581B3B2425288872E00DB25037542360CB5685BDE15872A935069CC09D04395FD1A5AE62084F74B66DA89263A11E8D177DFFEB686A2445119065D8C59248F23E0D515EF2502177BB273AC62A9FEA23E0E48C9224596C44CE974650DCC81AE7DBBA062BCEF017898BEB0625C75EB2EC3444F20EBA3195F5F9018309B026A32D4211430EB1C1EB2B7D87B0C282F0A04633499C3A9478A7B755E0B1904794F5A0B94F52C05300C838C67F4C26803C52A042812DA9C8CAC5650C3367A770220F43E3C039C3109A506731076C8DD1B1D99CAAFDA48254A73EBFB66849548733578AA80987B45A404D892F45F83FE6260B4521181484A7AB65AED79A53F2E495AD444066D1108D14C4FA74847FDA990A783FDB923734860238A94B8634217DE964EA35A3D4C651A15C719301A2CAD86352257C2CA1A87F329092E18C5C782ACE76BA239C6001143F87A0406DA9437D7B19144386B9687023A34A46814EAE040C71673ACA3993ACC03879C9AF60CA0E4EAB9205B7AB65C33FF1295100D349F84694ABE062672135865494ECF58DB2912A3AF380C228B78D329634F359008871769696BB357D552C3E9FC17D8B636E1B905303BB2A5B6A6F07F478D4229DAAC38ECF47C205371705B72092F7A438D01267783E24370080362C659796D7443354D92DFB9BCA5BA5355E5C3608BB3D9B312FC7AC435B81CC1A6BA84A74283763A520381E9E3C998DFBA80D8383D416495B42B7B6CA3E91789C8191B894350F52B6B7A3E38A45F50F39497794E0971650C446551D7D304C87515BB415773C10BF08CC20506C0F515428E8B9037C42A837469DE6A3A37C695B602407A46B7796593623A9C840ACCB5A6B1175A30F62C8B9461C444EB73BF1E22418347AF3D92742175BBFB41474156745EB0DCBC4077EEAAD6C13C314D3188D3C9BF2F73784C0CD1A215C4623A8BBB19997D82BE2B1719346190F054A1AD92819D9B812028633469C3661238FC66CAB7C05BC5468A132C9B3A50EA5A4A8EA04800C97C3B391115725011E597312B7A0440AC2DA794859776CA73B550D666A8F058477A1A0C9621FF6184F415114D35514909719234C166734B5535B863AFBCBC5A2264A86B0642A41763B6D6DA15447BC930F925415ABB3170337C6985C499570DFB98430A56CD1784EEAE57A5DA37862790A282B8DB833AE37BC5A6940A8B95926F1F468853B288C9A4C7C128BCB56C7A218C3FC725AD1B89C829799B0A8A1F3718FB489B83B900F1CC9B1EE16369F18B207D022A35224330582BC4848E4634F3490C12C756246DC9F3CC27550057A1863CCB91A4B891820BC882C0E6024E1BB037677092C633F2CF68B96B666E1034339CA3E43F6AE7FDB22F9FC7649E559E5D22A07075BDE79A82E62B5A5258A0E685A2CD1BC8566CDB4A19D5C581236F0CB4E7AAD6F561CA9F6850D30A6FA0C1ECA230A06E11CD6F26194F56F40BBCDC99BB4C1F32C851BBB7AF48F19D813F89B01D9477861E128631B9B4D72C4C7CCBE59462A4519A8A34A44DD84586C4A542AEB6E1338B6836297A59283AF07CCECEC01CE074D8469C93F509F09F7230C092C63F2245AC2137A4349078A473D81CB3F87CBDF843645500B932BC326A85FA91095E4513E9DAC02D92A69F5ACC4200BB1DC0270B013B1F2372BC75AA609E291F0385BBE9376953CCCB3F99971DC9747CB913760506FB051ED186454255FCD642AFF73C32743158D467B0AD012AAA439C9335B4EE23A426CAD3DDBC4AB882076C2BBE83321FB684825B032059838E3D43DA29852309B1A7C15C08A5669A3BA2200B34B7F325A5F47B479AA49984060ACE979E9DB6BB68466973A3E0030C0BCFC4E6C6C13F734B1731CA956F89341D37B1CD5C40BEC802A98C674869C04571993E461446B2E2A68BA71915BBEFC2D40DC8756B9AD9BAB639FF6985E03B5A861785981A7B1449594D584BC1CC4EF7A4333E5453944C61D0145A5B6C999900DF26299CCEA5CC1D36FBB80C1A5E9C619A4347669377D541519CA47F06884B1984408D43B4133BDCC488BDDC599C4057B14A027D051420A5C17CC1671F18A2128B58E9B7A5E233A6ED2DA288130B51E47038C9AA2751556BA24B284515AF73A81A6881D665426D1D27A8A763FB3B2CAA19BC310A9C10024B7D722606C3B6F19C8935B744E28333DF8B9480A0083EB588380E6A12D777862E5C7D3E1874E8B1405A5787E92ACCDC798A873539C133502569E6DE7A29C7025289A9913CBC7AEA55718F96F2B2C6394B38FEC3A7B79238BAFA349C03960750209EE517629CA2280BCB7DF35793BF233FA074185A04894AC515B8985DDB5ACAB68AB379A639C49216A8BA4F9B125947150A907385E9729A7D621A5A9BF8C4A1234E6CE4411923C18CA0E925CB372C59220A502390E4C740571F71EEA1083887A5797F5631F614F4E91184811892C6086B0F5BB6FC322AFA31653509C8E11A8EB3B7D32E99B4B05D558EA7918A7881BCF516457AD2C3AB72EF2E04E3A4ACB85A987C2E1F6C5A99A49D6B1B4AA18089439BB4C56CA465785BB36594EF2EBD3AF20D5646EDA18027C6709111F1987E026A481D46003AEAF2FF23B675BC349C749F300C5 +encap_coins = 281023B82D26FA61F9A306CCE0FA00037556C9A0B597FC734AB2FA2A146C1661 +ct = 05B9BDF894212BEBAE578C1A2B5D311C59DEC8B3E9AC8734CF5D3A1829D03E0552747E5F9C50408E0EDD04E867FBD9C7275DCFCA3F76F1A4A5605A06459B3275CB1C263C07B38BB16596940559A96CED98A74D2BC9D060B82B16603D979755EC063F290E4297511AAFEF7F181256DF08F5FF309D742AB917564CC223D71D728EB299F5391D6948B7C846A15AF1A563F231CFD0FE6F632BB17C74FB2D4ABE87D8C5AFDC656E21AD6B71BC406C480192C25CABAB25469171C3DD892D16FC5745324605C276C9AACE9BD2973CEA580A75585CFF78793707C6690DE151CC0AC4CB420767758BCFA468ECC9AC886C7C039AB23AA5C81BDB340B97902CDC432BCB64ED9997BBAB2E9A9242318DB5E6461A583048713F5C9E17DE527E25A464BE5CC0399FA825358A440D134629B57F3823524EFAAA8D0BAB0AF8DBED7DEDE3FF8E733C145AB7EC5A281C637949B5D1D19A9EFF966B7D88D0B67335E13CEB82B22A493D73BE81EBE312485EA1AEAA6F2069F9D81485B1989B329C59BA1FCEF73F3991839395B35FC57A2FADBA41C2AE8F4908410546AA7806AA199F66FF97D8D76983558DCBAD7B0EC1B35528FBFE5D5E2DAFCEEC5A44773BD787E6811584FE9AD78F5942749028EC2607DC9BC1681B1C5CB686B8FABB446494851D906BD64846690E1F1BA80CCA1140CFBA0EB241C4E02982349A68F0814CAB36560973807C93E894F53A09024CA6E75156DD0069F210A8A0CEB138B8D9A1CD1FFCFA698764784AA17C4B90F151261FDFBBD9FA4CE651D08D30D773D32D52F949779F3EA0A743BB43BFD4176DE37199F9F11C6B6E54C7E022F99DE6736E06614966B061CB490F48897840C6F768386D2FF614277F9E350C54E5C23405AB14E7C9D754A93C89318036F319A8927F142428842F30A4B11217EC5A2BF81EE3005E17B6BF4404FA0FD4443DE11C2224B4E08EAE14CDF8ABA36F5E0F1557EF0DA3042E8E3690AFBDBA5A0F89B3AB6A3609ACAFFA62ED3BD239E78C3E4CFA5B18B121B7621A67B892A044852307A8E75EC3DE96C9AB5C4D08B1AD6137AA3046A19CC7A42B22D21027375E6DA86DC73AF76C66551C54E1C429120B99B19513C9A29D6AE663F6A91E0C6102B5632D8A639A249F0242EE2F27BC09D71873A634CB088196A177D625DD2757881383C2F4CEB2E5AB4C68E9EF5338C4FD6A829BDF9FBC8922F8B13C2AC58CBE8373392DBAF8D73CCB4C08932841D377FDC98F3C957A222B1A792D946AA66FF734965127AFB862C605EA62BABCF843E2013B59D9728734025212EA1C8BD4B8D92A34D61A24055ED05C2A9CBDBBE6B41D5CCEDFEADCF1FFD3AE1DB32CBFED4A56BAAE519840C3A910BFAF5271D887EEF3566BE305FE2F3DAD72C9A6FFF5C67CBB4DBD0DDD58A71AEE391A55E815F137A3D7E2630A70954F81EAF69DF3BCC1FA0BCCD342B91A655136E2465D35BE4AB2CAC3D799DF0EE159A6D1887134854ADE24B56A037462A356AB27D5E78FED6E7A3A6DDBEBC5184148C42F3FE958BED84BEF18B92E657DA855697CE9790921E4698B7E13383D6AFB8C8C2CF49FD8AEF1BC5BC71E41746D30427E6F5E4012DB946C488DF03C1AA17C726D7A9D1E9CA6046B77264962647BC9FA13626703D48A5F2964806924FF96F53BDA09FB7CB157928D9CFEEEFDD8008F0C1D896A9D90C1BD3E0EB7117F50FE76522910F83D65B0CA9A50B2539E8FF9D274968285F715DA4B1CB96AD30B535DFA5498A28482E8E63643447E5CC0216AAB36114AC81E1F9361F6B1882250EE23D3380EA636C2906FBA859B30B4F839B98F1A7162E34D11B1CF2C465CDF257AA2F66F7CBD982BC3BC4787B136B8DA730268E5F9F67149A4E0EDAF59BF766F735F68A52DACCFCC87C5D18D5754B36653F0CBEA305E184A2A3148E859802BA5A88E505092FF9ADF7820B6606EDBC722F4F3A4AE418B535530E811A6009816E9941F1D88F6BA21E9DF4D0956CFD94C50D4039D8DE631D4CA8DFC0E922BF43C387C566E5CBECAD89EF6BE95A6B808F732A16FBA54196EFD0A0163D2009093717CF1F417C95EAA332B7EED7F14F2A6BEBC6D1936D035909D4B7FE3E4114388B4517F33D5433037D278B44C4108347A52E6045AC3DFB66229860782F4277D18561D0296F63606411F2DBA5FF18BF7D00AE5C3055F77657F0655AB0116D435C269DE64C024D52C5388BDA4302CBC7403E69D +ss = 713CB80C51C4DFC49FD1718BDE2C9A8EB9DA6175FDE300FA1F7F27DA479521D5 + +count = 36 +keypair_coins = 056661B38038DA4FDD7426F32A81576C73ED84843B305168A374F934E27A4E1BBA2DE5DD570E201786CBFD5D27020B649B011455909AAF0AD6D92C1B4BB1F8DB +pk = 08AA6AC1E96FD9EA9BF4595A7CD565D91416B583BE0C3355EF18B9B4BC1EA59135D3701EED6BB0B66BB320572189525BF4804A8D75A5F973393CF53EBED81A1F2CA339016E35617E77B58A38E15D417043E6174888EA4408CC8583D196042317F3C9571E6347424C032DD459ECB873D7F9312FE891A0A81261136690363B816A3B538923E56741CCCBC86D477C629A1713E99A4BE8AAE2B3516E863EF232755FA0025E40A664B714BB5C8B2A42568D824246D069BA2469CA370C1417A6A632978DD39503E433AC8566708C21AB04924D257E8002804E92147DB57A8D39168C709563E7604674AE830C176914CA2ED38B9E793515231B7E15B5DBAC4027DAAFB276099C0036F81621F7DBAC5D24C5067023DC6B219881CDB9F290BB9454ADB45A45EB1B975B1094AAB8B2A9AFE05A8240476753BA802C15495C5034F9348EC8C732724C9703E9A08220854A29598CF42B6777A19EB462C4907F0A7B5A3E991A5D7C4D8A70A78ED5CD35DACF9E98C19C596CCC1C4710EC9B029700ACC002A1C661C13BA1C25A1D853A851054546C33B1F4032E1F089E9C4C8AF9A99C3C72AE4077272C3A37839B817B55A31BA99B66580766FA2180C35A50462C0B98ADC38C6AC1D72A7396B28E36CB6A601CDF7C9857F5413D380A1D031BB5801890182518EC414DD78A8EF86EDFC0A1F10572205B5593623C41D873DA21AA60E3870348032497B367BB50DC6176D415BA54F8809B4155462AC6D34593FBF57FC7D5BF64C10AF1BA368D52AFC8E2CA3FF8467528C625B26709122C6B1B34648247849338A24005AA9100A790B054640ED59383ECCB6415F7A15F2ACA63CAC12609113D843AEA83814691072AB8292B7C5DB1D973AA6C7B2BD1A4AEB4BB1D58CA7DA26B2E0296211042488C0DABC511308791D7A8AE725C922EF374ACC53D76BA5A12FB2A5BB94C309824EE119C87A62F5786996800AF28D11E59A83DE0504413351651D0209E98B76513747D087333702CFF8463DB4C353557632C8C46C3667623E012E5D7937F6B004BB549960C5760D15D08D1A4E85C288A2044D1362ABA2962D2B078B7854F997ABF6072C390342536A8AE8F62385A5770D4752DB9F979FA09037BCBAE54D4583E17C4BE538100349A379502DC69C283638ECDA028BA0CB1D21426334C4789715CB39C79CF408C2D1720AFC8986DE03627B28EFB773EE612630B2CA1A0A81239B6020E1380AC69BE3CF3742014C52F9B22A118AAE7092EFE8C93705C0A7A1A8849C0216F776695840BB0A168D5B991E4CA78AF08255646000FD16373831F8ED490724019AA15C57307BF06011392859167D0CA6FE88FEEDB49878C7BB0609AEB604429710DB83B1FA592C7A5E911CE795E093A9602875700306D38234E2A70BFAD422DF30380986533BCEC5D8C119BDF3B99E1596A05A123E2D3ACCA83031FF778C2181F75D268D6AA98520C969306CC80863789724C0EC5552ECA57C3D84FA141C69E07B39D9518BCB52049EA04145C34AD355CDF65CF6C1014F511B9C6BB9281FA243000781A99301C06B77ED606C0FA1EB5987E76AA5BB346CC85C85ACA114CD0A51C06448C1EAB496299515D7A1598940C33C8BC58DB4486867158A09080B97674CC9A9F7A176FD5034C139B19A50D4355011E2B65D47AB642C84812C74DC16A83FEDC38873145FF3143564C4AACF969F34BA743A14595BB0B5000C30B47662A7B4EABC0980AECA368573550C3148811386EE589A88A53CBC6BE1AB2755E58441B6C87E83BABA58B63BFD097F0D4922EA7C0AFF97143666D912199FC4307A3BC086AB13D6A6481F411BF780B10F5E04A41F27F5784402C9B5E1EE459FA8C4705F36756B34989BC63BB9CC9630C2C0DC6BF3987789BB59195F416F8661E6F5395839C68A0D85D13D0CCFF807956A28124E47B5B3C9F3AEB9537C3403671C03D28A09610C89C8C6C69D9733B320382A84A6CC2B9407743CC66611E84999D11356115060E6C2C5F9610FA820D18B355B64890B0A88FE784A39AC0C9E539732D79A36832492439944B643436B84D4BC870B5C21A5E224E321A5E7A6931E628342ED4616FB4B1997CB12FE6BE06B20E7794437512BE498ACA2C532C3A865FA2373742DA3A4067A7881AB97FB577618336F3D9750FC9B04E044922246C645C74B7AC6A7DD70D90506DDBB5F53A83079ABA0927BD52A68E278D3F01AC19EBA6BD +sk = F75196A57024BE817EDC544DBD552F6B42BA121C2B8EA95E55017856A10C5905A8BB2590E63B449364802C6B438FC19EEFC875017ACF652A8F0D6AB0F7F5ACA1F1833ED3551D37419D906D2B55123EC14D5F109ABCD9382E990628BB30D882CCA8665957346C3A08553C870D32F77E66348CA9DC321960B7D50B09DE64178411439C021899F2B8C583762043A4508C3160544ED2264735C600A6AB43C8515532130583298A11450AE3B7C99FF559A1D33115DC2D2489934518BD52FBA1CB9A019D918464B59CC90941599253957364DCCA9F95A08035F8BE5BD36DB6B19F1F191A6E4B7FCD493B7A41C90BC76FE882AA0F3B39B6F454785C5DD1D106C80960BBE5846D90BCDE837CD277A039DC22427B86A6658F97A60101665F3F69125445647F3BB2D3125C80D89AAE6096A01C24902321933909A8A2925FAA1E7407B3C90C8A53D958C1C83465E557AB620E53509EE8C960B3C547FEA08D4FFA215742113ED9661B57AE1B30BA5768645C632DE76B96161A9B6C34B8DA48B75D176C2C849AAD55C6680BD0863273C345C4C7379CF3F873FA5953F53B9A026A4DC120C96E279085566C7D090EBA276A0928693E639B5564A59C08AEAFD25915F5478DD86E938A11529BB9A2B0B83487C696E79F1FD034EF000FA502328184BE42B8959D9C0683F3BC20E71902423AB14A4744E162F6A2B474DBC4A6F21FC0432CA7422CFB253D0F952BE9C13125458DF8753F5D551CAA38BCCA1625B533051C5226C8768335854E7477064320CB765AB9EB311A1859B4B5A006D918BD8508A971205E6902897CF95E0B652E09030794B46FCF7A784560C0A18B8E6334A57EC177BA56A8BB9A857013C6B9998975379BB04B540015A14A76C658F856BECCA363CB37997BB85B185AA0104063696F1020BD1B443419989798826E141A24A3533494391FA233CF848451CBD609D014508FE137534C42D6F22ED2CB82363C847865AA243CA993B14992572CBF5535845CC708BB09A1E8A7834C200D8036768755AFAB53ABA85813EB859EE83EFEA7563EE4BC158599F0CB04033393C829AEDBDA289ED852E1EB1FEDA9484777051F967E048041BA3C313A1414D463CF3EC36801AAA1AA540DEAB122AB530ECACA30101A1089087311972B338B045A1637189020C3030E63F707FEEA9AF844C7E1B20B4A5348C1A432F341BB9F598B8C0C2F6F55C4D2C2C22B187430748F82842DABA92283DBC4BD20636B6754B20A7127F01FCFD4013A1155E4746DBF3CA1F34991FE7C39ED99BDF5760D39DB8E6C428F2DE8157BE0139415AEA96BCF6FAB633F2257B582312D3C7ACAF6A5F8E55AD699672160CA01246545059E58502E28199CD0F5505ADCB91900A283F0B059F33D1A8B352010A3C815717FB3A9482C946DF0C74A526353D5C9ECD2590C5050996393A02286841580AB599BFBC8838A53301BB11D5FD492AF40BA26224505969D88F6B193EA42B0348954180E17124EC2C64B962A92AA9C3FE2D72F94301531C4AAF847243702BC8F9C37D64B54F20AC003B844C52417E1436D2E75AC09C313C83B8575E791A7C95D0412CC61521A6826997561485DEC26AD7BAA8E065E9A279ADD7301C5C74C5B95C1B6915E69C9A6D4B4679FA180ACA9817D6817E17314DA19501344231A58C8547148CBF38081A8889C00CDF77234D04169ECE6BF0ABCA31517C986C44CE771A32FECA99DF60524380323B31D92C9C100749825F30E1F7C9C079907A5750E3F8B18AD040194092093E7934219A5B11B4028281030774818416D53854975241EFC6BB8BB751C5069B7099671D0768F3BF74219142E88E08E58642B41B04EB66324392B094FD0740CD4585A27CCB3F25EF972CC26B9512C1900F8B61040EA7921D21F142C7E1A99B886E32BB80721E6C75F6A999328A2ABBC3C797965C09B2081671346355B4BF8C78C72C6CD98D0116DB3423A1B69A0F80515E423BC1BC6522B5FC77ABE492740D6FA8227235E3B7226FD89064CA494E9012F1CC62B02F95523F147BB321938CC1FAFA4323173A8DF6264959A5A6052A3B218622007AF0408C3227A053DCB71164C9A80CB844F59050B113F497AA3A65C11C317C9E6B6A6E8028C23FB4589046A70DB1026F07ABA9B45EC78CA14D9BABCBC2E62EA6130D8414E98B85DE8A908AA6AC1E96FD9EA9BF4595A7CD565D91416B583BE0C3355EF18B9B4BC1EA59135D3701EED6BB0B66BB320572189525BF4804A8D75A5F973393CF53EBED81A1F2CA339016E35617E77B58A38E15D417043E6174888EA4408CC8583D196042317F3C9571E6347424C032DD459ECB873D7F9312FE891A0A81261136690363B816A3B538923E56741CCCBC86D477C629A1713E99A4BE8AAE2B3516E863EF232755FA0025E40A664B714BB5C8B2A42568D824246D069BA2469CA370C1417A6A632978DD39503E433AC8566708C21AB04924D257E8002804E92147DB57A8D39168C709563E7604674AE830C176914CA2ED38B9E793515231B7E15B5DBAC4027DAAFB276099C0036F81621F7DBAC5D24C5067023DC6B219881CDB9F290BB9454ADB45A45EB1B975B1094AAB8B2A9AFE05A8240476753BA802C15495C5034F9348EC8C732724C9703E9A08220854A29598CF42B6777A19EB462C4907F0A7B5A3E991A5D7C4D8A70A78ED5CD35DACF9E98C19C596CCC1C4710EC9B029700ACC002A1C661C13BA1C25A1D853A851054546C33B1F4032E1F089E9C4C8AF9A99C3C72AE4077272C3A37839B817B55A31BA99B66580766FA2180C35A50462C0B98ADC38C6AC1D72A7396B28E36CB6A601CDF7C9857F5413D380A1D031BB5801890182518EC414DD78A8EF86EDFC0A1F10572205B5593623C41D873DA21AA60E3870348032497B367BB50DC6176D415BA54F8809B4155462AC6D34593FBF57FC7D5BF64C10AF1BA368D52AFC8E2CA3FF8467528C625B26709122C6B1B34648247849338A24005AA9100A790B054640ED59383ECCB6415F7A15F2ACA63CAC12609113D843AEA83814691072AB8292B7C5DB1D973AA6C7B2BD1A4AEB4BB1D58CA7DA26B2E0296211042488C0DABC511308791D7A8AE725C922EF374ACC53D76BA5A12FB2A5BB94C309824EE119C87A62F5786996800AF28D11E59A83DE0504413351651D0209E98B76513747D087333702CFF8463DB4C353557632C8C46C3667623E012E5D7937F6B004BB549960C5760D15D08D1A4E85C288A2044D1362ABA2962D2B078B7854F997ABF6072C390342536A8AE8F62385A5770D4752DB9F979FA09037BCBAE54D4583E17C4BE538100349A379502DC69C283638ECDA028BA0CB1D21426334C4789715CB39C79CF408C2D1720AFC8986DE03627B28EFB773EE612630B2CA1A0A81239B6020E1380AC69BE3CF3742014C52F9B22A118AAE7092EFE8C93705C0A7A1A8849C0216F776695840BB0A168D5B991E4CA78AF08255646000FD16373831F8ED490724019AA15C57307BF06011392859167D0CA6FE88FEEDB49878C7BB0609AEB604429710DB83B1FA592C7A5E911CE795E093A9602875700306D38234E2A70BFAD422DF30380986533BCEC5D8C119BDF3B99E1596A05A123E2D3ACCA83031FF778C2181F75D268D6AA98520C969306CC80863789724C0EC5552ECA57C3D84FA141C69E07B39D9518BCB52049EA04145C34AD355CDF65CF6C1014F511B9C6BB9281FA243000781A99301C06B77ED606C0FA1EB5987E76AA5BB346CC85C85ACA114CD0A51C06448C1EAB496299515D7A1598940C33C8BC58DB4486867158A09080B97674CC9A9F7A176FD5034C139B19A50D4355011E2B65D47AB642C84812C74DC16A83FEDC38873145FF3143564C4AACF969F34BA743A14595BB0B5000C30B47662A7B4EABC0980AECA368573550C3148811386EE589A88A53CBC6BE1AB2755E58441B6C87E83BABA58B63BFD097F0D4922EA7C0AFF97143666D912199FC4307A3BC086AB13D6A6481F411BF780B10F5E04A41F27F5784402C9B5E1EE459FA8C4705F36756B34989BC63BB9CC9630C2C0DC6BF3987789BB59195F416F8661E6F5395839C68A0D85D13D0CCFF807956A28124E47B5B3C9F3AEB9537C3403671C03D28A09610C89C8C6C69D9733B320382A84A6CC2B9407743CC66611E84999D11356115060E6C2C5F9610FA820D18B355B64890B0A88FE784A39AC0C9E539732D79A36832492439944B643436B84D4BC870B5C21A5E224E321A5E7A6931E628342ED4616FB4B1997CB12FE6BE06B20E7794437512BE498ACA2C532C3A865FA2373742DA3A4067A7881AB97FB577618336F3D9750FC9B04E044922246C645C74B7AC6A7DD70D90506DDBB5F53A83079ABA0927BD52A68E278D3F01AC19EBA6BDB8AA8568431FFC4681CAACECD4475C838CF7348402A06413E7A9590BA405EA5EBA2DE5DD570E201786CBFD5D27020B649B011455909AAF0AD6D92C1B4BB1F8DB +encap_coins = 2F349AE0CA4E08E2A8CE5D568829CBAA2150B69D13FFF8A46711B0F5DCD770CC +ct = 4C72EB03268C3237DA52A108583368BA933E032C8A99C221DBCC502398B08701284F1E28CFD757F2073CBAADF24712A9A799DFE33304E26A20BDF104568EA0746A20601CE1815009730FCCAD96681ED20A1BB72B3420564012595E13A581AB5661B4AB13C485C5534278492AD10D4533831AB8F260E0D2E769C41BD724CAB26208321DE39BD776D6A34A4463CCB18AF3ACABAEAF6BD9E300EDA48DA232B177AC4450C173DF00032905C2BDBEBB4F1FCE52184F4842B5AD15B6044C0F2C29F977F817CA8ED2158FC49ED8CE4FD3826D717C2A207F4B931D2A9F16CE754B9F6B2894CCDF1E951059EABA943674DD0A2BA1FF9740B99B5174021D7814E95E2F6A25941CB6CC494BD4CA1F204E62F1257A665C651C6CA10CA29C0D49908077C0559997E35DF6FB43C6023E957A1159D8D0C5021C1CB691D87F2C57242732D3FEC423D753D1875E220D7723DA485CD037199FF84A8CCD7278049D0C886A7FA16377B80A7C6650622CA48532C7027B66BF17F3CA87BF93634DCAA2E5CEA9C8841FDCA4AADEAE50726DA081E1EA39C632E824A2889965F77512A3FC52A372EF7F4045654548FFB0F0B918D3D37A805D0CA94EE5DDD7E9EC1071266DA94B7B50675EA86C3C1A7411640A9884C55598354906D3BC3D35D7F08B48C3AB82DCEA51D6FA933EB0AFA648CB9ACDCE8DC827F5696F60BB6D50C633A0584CD22FDCCC5F9A836B27B6B4C565864408B68AA54376BA90CCBB7D9BA319C36AA98D3573616CEE39E6302C2D3748D123C6E7C3AAE7B14322132043FD30A097E69866A8C540FCB41EC0CB4886B8EC1365C94E7F4128DE6E689B13B32E996EC4B464072B0D3187301C92D9718CB7276A2F78F289876BF7107C8807DC5A9F8C6647777471AEE46711A52AE2C6981B7A7325888A35F9702F20C9838145BE49595DC5F3B407F782A052EEEDD64E70CB460BECF97EFE375634DDEA203FC4B69D8A63765DE3F9A7A52A068CBCC42FE2AE08E34354A7EE8259FF6B5D9D78547B1694B3143A2EA6235D1016090ABD46A4C1E6A20072322B6694A2DCC08C7A4A2FC2957F20C21E23DA176BDF17D1092DF2D980E769E61FE4DD560488A29A1A3CF5756B29D5AA84492D7D1BF7F4FD724E59EFB427BCA620F41CB9D12167EFE1E35B9ED6718BAD56C4366DA3D9406E104065552488B12C4ED51D16D872CFF7B2F97C6AEE1CA757C944FE52861EC8B3D9093A8D3AD6FFB20A85FD859A4D865398A314445310CA2089D7B0897E236842772E7A3F0667EB3C56D70F18903276AB03A34042879925838F81014A0A64BF3ABC32DC82CD07DD0D49F0E174378C5BC9BD5F179D74E7CA9D8ADC5AEC4E181071640E6994F94FC8AFD695E4C57E68130E00863E588095BE7C0E4F958028BCACFED2AC26D7C862026507E379806D94EF0CEF30972FFE65E33D615BC51DD1E9A385858C6F9AD3ABDD3A62E13B0D42E2308F26FB9B4F2230A935000752DAD4C924CBBC21C95461CCC38C34E437C6B0187EE7AA2888617A4D4F07D01B424BE73D25D5B5412B014946D441770B25CBB00426884E3CCB8751A37026359BB120B65AA612A6BF8FDED36689D80E894FE1A6B58B6C06E735E65F60F0EEFCF900A144C4D18A25D228CED1B0B632622A740D8146849EB72C0440B049209BB19B595117BFAB49792B1A0759043EB56AE63B71F927E6D9A455ACDB4DF0CE63ADEEF8C6036ED5EF13828D67F61F9F622B94391E3CE6FEDAE136A78E4FEFE8F4FD486FA25988C5BAF2406A92FE45050481A744004BF7BD6D10696EACA8E2F0A732A6C861C6B281AC1CB21CD70F3C088F747FD7BCBED6DB5C6983B84A3A888BF1273B0569AC1388D9BE08E9FFE95F3B534C6FA01B66CF9120F5F792F3AA4E8A673647E2E22F7C82D10DE2770814582E53CDA33771C0D876C97DC034EA43676FD61C07C049291A8FA08E0BE69C8775A59F777C4D7AADE60EDBFE927223A4AD04A49721BDAD060D71078AE6AE80256BFF0AD63A24EC2D71D2CC8E41D02D2E0F9990A52485B88CC344D8C98FFA7CB3FA14F4A80A45C87CCD9EFB8CD1E384F9AEF24CF865B777EEB4C7CF43690C187736CA69BA8D9C65A4292D29980B81D151D7A07BA150878CB7D083005CBB809617929EFC52338222F651DDF6E956693F58AE626D7BD4CC16C7DA73AE9FFF463D541B429A298A5123780B69478E597C16FAFDD063793C33A18665DC94D4 +ss = E753DFCA86295BA609E0D04EFE1685DA11D0BFD57E9533C44D2289AB179ABBF6 + +count = 37 +keypair_coins = A1B52D871612A1C611AE0944F9E71858F35D3BD14F20E96A931720668BDF0A6BF25F42AAA0D647322BD837CB730AF6082D2FA2D17BD63B162B36839FCC2DF0C5 +pk = A936AD0EDB0AE5A6B9A66BAB5538CAB0AC6E0430BEBD798C474BA1EC345EA6D3BA9FA0377D46606E70C86DD1BE281A9F46FBC0D890C607DC009F46B459958989852B5582566CD30D02317CD4E0B84E6B1917E692E45C9BEAE45BC8E8BF6A65587F206A67D93A4872C571200BBDE620E2639659302068088BB2D8BDDF33C98EF34541B4C2A22897815B809B060F86200AAEA90376234860A66E9E8843BB52CA7033010E47C41D573FD9BA40C4FAAD88026ECA797E80396A2ED5586F8109A44BCAC355117A7A3F72950030CC506482AA0CE39369BB350FB07B1388981C89400AB5A632C172D159C6F0E126BEC96E17C0C18C615BE5110818E0CFC2900F76D706AEC990021AAD6ECA787B453991A896F4622537051E3E4A11A0954995525B8F2B11583A3A3E594400AC97B82A4B5DA822891910C721AB0BBB9942F2BA777A0C5D8C532393934B391FE5669850BAB01740905B684AAA96BE0CF50DF463406B91A28149174B555C742C3F78569BF294681CA09A336531EDB94BF30459893CB2DE348330FC56A7304AE2F7CC33D13B7966751414420DD089A48A6036C1CD7C5608727B52612864B63694005590859AADD91B068B053453D1C6F9287C58AA042073087F7959FA932284231B39AA991C0523BE599CE85B1F0FB52D465156C795CF3BFBA270AB9CF94CC152774FEC76AE77B9ACF0F37DD2A9547945442ADA8EAB32960332860E2A25B7A25E86D0A7AAB0226E877F0488877D941FC0A0541461B8A4744DE6456DF6C5AE6C621A969A02F9C943F68A48809328A0BA3892D7AF2FE169EE41554F0AC1A3836E151760C8472F60B77E274948ECB6748C404A74005BDE6C5849401FE2D667748B9F3C19A41D659474B0B4A6829D848A898B93080C66AAE85B3660D392F34A6EE9C6B10DF567DCE1892F4932B6BABE31E0A50F8217985C6537188B817B3311C25E8C63CA265B568BA9CFDD451E6FD517E18317FB99C8204ABFDC937134E845CFE00018E097022997653A8D5BE32CFB07B34836C242B74EF9D30BA0D7AD8C2B2944C766C025804EAB23A05B6FE6B85D331904C4C99A1FC992790A70F9EC52E25BC17B949B66F49040A59E7EB97491C546BB3778E2E70E1A63815C760DA8195BFD431A9FD88443E26DDE85C5B08091CB19349CFC73BA195923A38AB6A044D1C9CBE498195C1B5A27A2B07B627C141CAC61D391FF1B88C9893327447D32234705D42F10374B77C86D83D71E3711893188310C45C51A5473003D8566D87FDE99C67B962F6B4750D7851D3B6201A2FAAE68FCB1011404B252BCDB341E68702C8DD6A237813E049C42AAC05977637CD3C81103E1973F6B45B8B0B56F69AFFFC9CB5E97BAE9B6C5809ABAF47B5B0B20471BD77EC7455E1DC25FBFAA7018E58133A44678083C06E06334452890A35240526225A33736A042B1595DA8452C2EBA086ACC1A6CBA45BECCBDFA23ACB2F01CBEB75FF179CB39242CEAC33EB2889C4784CB970938AD336DA5DC013AAA2973043372CB99657297E7CA05702992B578A65C00C867B43EACA93E975695F7625AA8240C0E5827E1636D72EC4A0480408F911EF631B48A1C4462665B230550924B23481BADE7B43A1D76CBE6791E33874182F955313CBE69BAB35AA59CD1B133FC326BA571713A1C4DBE2A662B514021BC7BAE44343F39138444173DD7944C6291C50973FF0B9C0AACAD9409881AC232306354D5362537B507E2AB84B4A0A3B5B9819E62C3B6DC1FCBBA0224B48DA7114DD4FA3103069CABA17C09B7BBEF8B94B6E15F58321B708C9C23A40288708CCEC56F3FA2BCC7397101FB9E54FCB7E7E816F149356570A006F69779FA6E30B1310E6BC6D983599EB81C202C5E887659F5E7836FB7A72EB80474116C6659C24DFC4C38DC2E8D6A0787A3B6C170A23BA53865A53849F4C3F25B2363E582BDF079793BCB832878B0F7268F658B72B3417135684393A4B1F40322BA7FB147416FF0B58D3B62A7343A6C51B4C8F6894F0B05E33476BA24C61C276652048B009CCC1A768E48CAC707A42F4E3B685CAC54AEE57203B78ECAAB3A44AA8DD7DAA43F2CBB2ED2429D547B4DA5176A7B621A38681CCB3E72D98F1F9926B1B30325D6CBD3862C7D044DC16B8A25DC59C2A53E295040D7627F744BCDAFEB522CF8CA6EACA400106B003197C8F9C878A367C021DB7E9273FE2E03A2716683DAB6CAED5C770F6E7984 +sk = F8FB5BA9D24C8681558CD13593F0CEBB335B6F65BD5DDA6DE6D19E09F15165051F981AC6472B263CEC43883A79149707093066FC129AE148B04F860C2DF119F8A51056EAA5DFD89BFC564226E56DC391ADE1CC2A1DF58EDD4572C5A147BBE21283B97F1B213BC276A471B63A7DF1CDC86C7A69A34ED17A425B37AEF969C1CD079529BA29A2E2C3412C5615E23523F3124C00C778752BB9B3677B90885CC21B0E257BB7F335FD53928B737D19DA3B3208219E6C898E96B45F801135A09A1425A0986C597E2B4042C1A4E6D7A4D0E30E729C73F2BBBE85B579C3C13A34344A7403B95D425936486C3B602804C08EF6F5AB22C400B9523EA3345ABFE666023BCE6A1B63A872C33E3AAF0CCAC2C40A4D5A48107D0C7AB09001EA67CA6F4C1FA7137D259C860D032C396BCBCB4177F82439852463B640855CE604F91C8F2E4A0899B2102C6059DC077D5EE6054355C546C2148077B8DEFBC313C71F1A420DACE126B16C21E40064E2522F9E224CC8E3526B1A99A2F4A81EFC2DD3609043246D461C7C1AF025B56A9C7E72ADEA57584CF044C2F0BB60352C32400D1631C034572EE46B71EDBC0334031AED7BC26AF543028C3918109DA52A6ABF3217A2219C0607BA9EDAB5B4DAAD5EC7948393C4A670C340688541AA713B596843E5CCB9616B54E92610539BFD39159FAB36D4928EE9CC8B1291AC0134257E242FAEB595100AC113AC416FF517866021B550B6D063512DC37477117D025964C95C13535C2F09A96740037FE1846EFEC4446EC03F93FA6B6FD8B539F0196444A61823B08CB74B7520618C08324F0667F142BEB3A34C2C5286B3D159FCE3B046079F07E558BA28A8893A8C94F9711C227FAC6900114C8BB6AA5369B059DBBCA008482A1843B62A1B06C68C6B2F40BAC6F02B6CAC1633055A178A396EF35F59F1A76543953D3B07E2B8BE217C5D5B1A82F9C080F4119D22275958026280BB8C96626C1D0BAEA6658A29546E09418AAF85A121F8647CB4789484BEE0189B9AB10852C397A2E25B9B15B71EF17440DC3554DB740289BA05111979614AEDCCA79699021F4BC3A4C68B39D0256D88CDD7A24E3AC31DAC35388720671A12A765D705F8429D0891C3E0D8062AD45A0B882BC53016DFB007D1C550998963D7E12FA51C7361D86156EA3A8AD7018C627A9EA18F9D3787AB3B88A27B3F9443AA87AB75EB1364A4C66C50E8170892A08FD15CF2913749D0C61305C4DE45A1BA2550009726A0873C70049705009DC8327BE3610F61F9BC60A26D14DC0C3E67CDAE4B5AC0D5A0638804D6C6B4CEB351F0C19F0974324CFA28FAB704B4677AA3F2BF65686C22100B74CB9AB5F7215452CBE8D6909754304573A9314B3C8362CFC34C6302B3CBD5DC482E76576FC5900B367016C03A860A88744928CAE55413231CA8A5008D210CD2E317D1BB6BC8624ECB83002E66092D8AA77FA0C6766532178A8CFB532C70F1114E5156E91486C3C7658E2A22CF0A77873C944A5A4BD70BA1686146E18B328D30813C9850C3003698C5AFA2082B3425C785200596592FBFD7B2AD5568F9D278FA24C523251BFC966A69CA882E707426563D2E099295305FE2E2A96F968A92E9423DC4A1F6662F68299850F81DA13AC23E272A8B64BE3FF3BFE61563FC98C555ECC6625B7A84C79C6550C399977CEEA525B12A52F9098191B004CC6B83A8D89A63756CA9460FD21758A0701E5E71280055CD3EC2A218168D38E78861CA2D0EC6C56A880F5091CE656BC4DEE3A8061801255865067982744439E83B893B3055F67466A8B722EE0339C46160D4C40CD92A2ED5601199E5B214C9C48D311E3B26032377B637CA10C5579B7BB381C25BB7BB82159B0B1AC9592A9E9817CCD8B85631ADC7C44CA1F6A8E7529782302DD2266FB0A7B04FC16857F034B50B37B723B42E747947E1A6FFB1C8162181BE23A1C82ACE8D4A1BF522143E495C39BB9E63F17768411289087258E6A07192656C7269AD688BBC5CB66F094737DBB85EF146C0CB146C7010CCCA769AAB3D0E3B52FC61B637A02BF0C7BDAB750BB7A9A367302A4F3115F352675B2B458EEBA2DB040DB45ABB314C5583785925BC833F82CAF0D6687F87220652886ABA525CF89900E0B6FE4493CA61CAB752261A432CD34121EC58348F1AA59D4476EC8B5DA936AD0EDB0AE5A6B9A66BAB5538CAB0AC6E0430BEBD798C474BA1EC345EA6D3BA9FA0377D46606E70C86DD1BE281A9F46FBC0D890C607DC009F46B459958989852B5582566CD30D02317CD4E0B84E6B1917E692E45C9BEAE45BC8E8BF6A65587F206A67D93A4872C571200BBDE620E2639659302068088BB2D8BDDF33C98EF34541B4C2A22897815B809B060F86200AAEA90376234860A66E9E8843BB52CA7033010E47C41D573FD9BA40C4FAAD88026ECA797E80396A2ED5586F8109A44BCAC355117A7A3F72950030CC506482AA0CE39369BB350FB07B1388981C89400AB5A632C172D159C6F0E126BEC96E17C0C18C615BE5110818E0CFC2900F76D706AEC990021AAD6ECA787B453991A896F4622537051E3E4A11A0954995525B8F2B11583A3A3E594400AC97B82A4B5DA822891910C721AB0BBB9942F2BA777A0C5D8C532393934B391FE5669850BAB01740905B684AAA96BE0CF50DF463406B91A28149174B555C742C3F78569BF294681CA09A336531EDB94BF30459893CB2DE348330FC56A7304AE2F7CC33D13B7966751414420DD089A48A6036C1CD7C5608727B52612864B63694005590859AADD91B068B053453D1C6F9287C58AA042073087F7959FA932284231B39AA991C0523BE599CE85B1F0FB52D465156C795CF3BFBA270AB9CF94CC152774FEC76AE77B9ACF0F37DD2A9547945442ADA8EAB32960332860E2A25B7A25E86D0A7AAB0226E877F0488877D941FC0A0541461B8A4744DE6456DF6C5AE6C621A969A02F9C943F68A48809328A0BA3892D7AF2FE169EE41554F0AC1A3836E151760C8472F60B77E274948ECB6748C404A74005BDE6C5849401FE2D667748B9F3C19A41D659474B0B4A6829D848A898B93080C66AAE85B3660D392F34A6EE9C6B10DF567DCE1892F4932B6BABE31E0A50F8217985C6537188B817B3311C25E8C63CA265B568BA9CFDD451E6FD517E18317FB99C8204ABFDC937134E845CFE00018E097022997653A8D5BE32CFB07B34836C242B74EF9D30BA0D7AD8C2B2944C766C025804EAB23A05B6FE6B85D331904C4C99A1FC992790A70F9EC52E25BC17B949B66F49040A59E7EB97491C546BB3778E2E70E1A63815C760DA8195BFD431A9FD88443E26DDE85C5B08091CB19349CFC73BA195923A38AB6A044D1C9CBE498195C1B5A27A2B07B627C141CAC61D391FF1B88C9893327447D32234705D42F10374B77C86D83D71E3711893188310C45C51A5473003D8566D87FDE99C67B962F6B4750D7851D3B6201A2FAAE68FCB1011404B252BCDB341E68702C8DD6A237813E049C42AAC05977637CD3C81103E1973F6B45B8B0B56F69AFFFC9CB5E97BAE9B6C5809ABAF47B5B0B20471BD77EC7455E1DC25FBFAA7018E58133A44678083C06E06334452890A35240526225A33736A042B1595DA8452C2EBA086ACC1A6CBA45BECCBDFA23ACB2F01CBEB75FF179CB39242CEAC33EB2889C4784CB970938AD336DA5DC013AAA2973043372CB99657297E7CA05702992B578A65C00C867B43EACA93E975695F7625AA8240C0E5827E1636D72EC4A0480408F911EF631B48A1C4462665B230550924B23481BADE7B43A1D76CBE6791E33874182F955313CBE69BAB35AA59CD1B133FC326BA571713A1C4DBE2A662B514021BC7BAE44343F39138444173DD7944C6291C50973FF0B9C0AACAD9409881AC232306354D5362537B507E2AB84B4A0A3B5B9819E62C3B6DC1FCBBA0224B48DA7114DD4FA3103069CABA17C09B7BBEF8B94B6E15F58321B708C9C23A40288708CCEC56F3FA2BCC7397101FB9E54FCB7E7E816F149356570A006F69779FA6E30B1310E6BC6D983599EB81C202C5E887659F5E7836FB7A72EB80474116C6659C24DFC4C38DC2E8D6A0787A3B6C170A23BA53865A53849F4C3F25B2363E582BDF079793BCB832878B0F7268F658B72B3417135684393A4B1F40322BA7FB147416FF0B58D3B62A7343A6C51B4C8F6894F0B05E33476BA24C61C276652048B009CCC1A768E48CAC707A42F4E3B685CAC54AEE57203B78ECAAB3A44AA8DD7DAA43F2CBB2ED2429D547B4DA5176A7B621A38681CCB3E72D98F1F9926B1B30325D6CBD3862C7D044DC16B8A25DC59C2A53E295040D7627F744BCDAFEB522CF8CA6EACA400106B003197C8F9C878A367C021DB7E9273FE2E03A2716683DAB6CAED5C770F6E7984984F4C4EF2371654067CE0F22BBE4648DC9D87EEE23842F31AFFCDC36328E8DBF25F42AAA0D647322BD837CB730AF6082D2FA2D17BD63B162B36839FCC2DF0C5 +encap_coins = 525F15E526198ACD1D2B0BA0886071E482866312CDFDEF01C20EB2935C28EC84 +ct = D4F1D65C0A829E99ABF2A02DABE989C5D9AE51F1191496E9437F3CD7B024E31372016CCED22EC30BF7A2E6E143C6BA8F0BF71963D21C42FB4D721C90FEE874E4CBF6B13D50056B459D5C0C5947963CE11CE23BF7B12B496F23B501348CDA2B460127B81407C06A26C5E564B8B9E2EEA24CA8F59FCBF264DDB2F5F84386D99CD0AB23CA4D96A68D4FFD6C8631EAAA94499D0DECAE9B77868BE7DD518712AD402604E5BAD5AB1955CF90C27FDBED96018D2AA4432183552070FD87859835FA18581E41D8C9FBA4CA9310C02CA290789FCC31D88D039D09D844343C1F0B3EDACD023B01FCA476A642FBA217E43557EDF24197C0B47940DB661C7A544E4C4E27544D673E1B817E74990D27806CC40A78ACB2CCBF5DC2F9707E146EEE40DDE2A21D061C3305AD15D1A931D0D7361CE5A7BD00CB25736CABFA02A899CE52A7023912B3BB0807F93C54784687E1111E6FE44CE160A7E16DD5787D001EF954937CDD628D5BE82A87000A9844FB75C138CC0ED934C8A32B924886B2486F1753CE5B82479F10AB4B783132024D2A21659C858933DA828E74A342B74A5B804AFBE1C478EE2623E52F13085562EEFAE7B4262402959E3A40DCB79B9F5DABE934EDD07F73BDAA393729C6EA5BA7FB031862FA7D9224E27EAF8FDCC298824947B05AA0D0BB0866ED935A9786D7270DC48F2C71264C28E79A2C744731B638F02FC6AC7955E192AFAF958631BB3C02F65AD502E6466889935F841D0EC9B0F1AC9018ABD02C0477C755A347C6C3CC3F93B23682CB736539301F95B9746A6DFDAE2A18609CB7E8C20D5D66DD7A87B747611470539B93085126219CD48BB1C4E41F909C45E2E2DCA6F7C5D9DA422417C4ED58DB6455BDF0EEBE485998FB6EC9783F5FB815AB5D674469B2A2849BE8871D57FC3BD72810E96DB8904AEB6BEA332C6F7DEC7B4072898F7971E22F9065B10D729D4A6CC9078B6B1471201EE34727E3BEF3AF3116D1179906243A42341FEAAD6E450E8984995B5464C66AAA214D6587FA7D2D97104B10F771C966971917A02FCBCF179216A0A1FE2434668529A3CAB9D39380498C2C4C22F83EFD47B9871E2E90A1AF45357D603E9B1976EA8DCFCCF90FBF61A24C3635C843EC71BA8DFD742C6A5433EAC47A79F90343F068142B3856ED00D9273647D2FD737F7E5B8F89AEE90A4374DD014F5C90E99437B253768927FCCF8B73CFAE122D3F0A00D8D9ED68709D79D2A8A043187CBFA13BC9EF06CE9470BEEB640768CCB075BFBC1ADE8CF734876F09C90402223EBA414D6B3126ACBDE7940DCDF9207BE1AF39DC780043FA76AD5F65678434574F43110F437F9C17030E0AA6C43A364B849DC1C9C468D60FD4EBCF7680A312E0A0464F34FF7408F0AE07289AF41EA6A781BDDAB9010974552164C974AFE6204B1719DA4655A7A336B99008DD08E89EC12C9441248F998EC0BD418224911C1E7A5BC18C4FCF5F756FF1D2B7FBE4B94ECE24C176E68F5FE9807B2FA13BBE35EF5739715A2DB2B34173DDE6CFDDC6C950F55485BF39A73FF820F0839EB711DEE9A688DB8EB4F53BE749EBB7F5DF8C2A8F0F432F7C543D621CCBBA242CB94BCE06DB712224B30B2256AB92B04F4A7C7BE320CD1F7AA1D07ADD393485E941F45A97C851C074ACD9A79CCB6467D96C2CA80516218B84CFE6D12D4E2EB12B5C14D9F98304C8077445144826DF57ED52284ACA3862238D6A9E646CF1B44A6A0CE40E7D451EC248F7544D71F40D98163B1431D5B5842E519C39C60AEBF1763484A5777BE8D7FE516FB577D97202185AEC96F3060F366E9E781DA3D2F55469D558E85E4B096A04011CEA3518EE9A81BF801526A4AE03C0395C373ED6F15A1CC52F27293CDDA53467DA5C03BABE6B5B49DF06D31E1FF4784A2253C6B3D221B12D33A17F6FA966C7497127F3889B7EB1F8177A63B2DE695D78CBABC7E9E4954FEBB533F5AD33D186E1ABA7BC952F20F9BBDDEFD955DEBF52A346C391451BFA7B0DDEE7D9866F6A992AF33FAFC6AAC8391A61D28F42E03A48711A9AB130D3F97FFD5544A5DBC6DE96AA1CF09C8A8312B5D32E4799D7060BD98CE2A0E2BFB4BD655CA1C423F7B5B006C897C773C33DE4FC75DF3EBF79512E32F2C0A2D9D6602D47EF423047D2B6147AFD86829F9E211BA4C1CC0B61819BC74AFC81FDB0A97BF9F68BB534BED453C7FA5EC4D37E3DC44BB24F2C5D2B1D63C9A1 +ss = 9BCC4AA03C21DC8B84601EF68C88ED4D31390EB2E7B3717C55526E30D10061E2 + +count = 38 +keypair_coins = 952B49C803D6D6FBA69F4375ADCE8594847A00BCAE2179DA49AF2AED0423250223DA505EA48A79EB504EEADDF7D19D736F39A46C837F2A0C2BF3FB876ED8E6BF +pk = 6461A7A463B8E40C03739A6B5FD196655871ADB3C82AD10FB2B2B538E61E1B664FBAF761F09B4D5E358B518088B3206E1295BFD0461A2FF8553B40CB92E36F0F928AF9FC7EF54C358D88280697AC3D5548029C3FAF882AE2DA732E0C47934B9C98232C40B84A344421E708226CA6524C062302765BF4D593E2D75D3A783F1DD7328767315DDA868E685EABC18FDAEC2CA8B037FDC3607629CC3ECC8E848C771B94C6A20A28E3003778BA68B923B711060BB6152554707D7E4C135AE8663D87643EC4921C6A5C20AC69E67B0B795A6FEBE794FA86B13866697B15306F667AB867C1F2EBBF3CC63C5E7B03189ABF9B4A91EB782FED97BC3A6314D0CCB528B313D165B2910859DE867D7D6290BBC85185B0201561AF34B9656A00B2EC32323B26A04888786F81007362814BCC82862A7280A5CEE73A330E6C2E01FC9AFE2741B12166949532C884CE8BF2281AA4B860756463BB49BD1524B8CCC6ECB6051ADA819865B8BBE1BB01141B77FA3FF5713F95BAAC10866303939C07483B6BFC500D61B7AD494382C643E87508E410C30FE96B37960AD4E707421944B13B31D6686745C52EF6CA4FFF3074F19C1695038367B1218E8B08D8E6180870B0FE5B5511E3B4641B6FA44156C561AA2AA9A1E163AACF73C24D84BB764004B3B329DDCB0F15716E17C51C6C432BA1407C0D063B0CF2C073763A790CD0312ABE6D26B0D75390492A88772763FCF67E1BF28E1A01C0A5714BCC685570D34627CA5896DBA36A6642C507680EC744CCDBACE6835D052A42E2379A5E80ACCA643CC06B62F3E5CECEB4708C3AC4BF88AF58C7CF37F43D2797635BB985F052450875A8997C335AE85D5B790377301F5A094A5B43B515206067E36FE51AB9AF296583D47450A34A302844B0526A4EF891D01C287602453126557A876C583C2A06561A88F9651E39929D0B43FCCBA48595925C01ADC0677200C39C64E44505AA58A9B5C88311C094DC3AA5314F167247B501798C4A0D5D9A04B77C6552369542E96172573E727890FA3B2E3551286113221FE92F81C481C125BFA7A6199EF8C0EEAA0A5B8973C9A33807A464FD4A50EB294741C5A8FD998171872C0FD44EC86112E19A707DEC768F7245DD2A6F60A554490947E5152DC3EB9D9E7151FF7188127B5313757431D3A41C673E203C7E8E9963D0AB1276B5C1114C38EC8CC0BA0A94918CBCCDCC7DC5366704415CD2AB9A7FE55ED49498B8B7105FB312F4A153E394A019749A23DCC180236468A47D96D47BE66A0CDFD16A2DD15AEF826041192B8028B1EA782FBF0A2CD5FAB19011B219099F8E87C74CC69841F4A927E181E98AC6B3DB7846EC38C0BA8AA9F50BA7A423A474060EF165299B12786BC8C05A384EF129B0F6C06C1047E582C02A54AA8713422BB6B9A6A4195FE6843D7C639916943B5793107CB8E63365DAB357CC02A9F1B33E8DA29F25F9839D862285864BA790BF965292470965E0A9C1D1F65B72139908D791A4D89E489A983279A703A0C34222786E123B45C793C925B1A146C006F15FB4A1C85E181F8B1C6983E1A1D7210C12091D83439AC8A15D965A386BE47145BB946162CB8869B359654121092D81947CCB5717E805478A7C0EA924692B361CCB730F3180C8F79041F8D366757528B0828B7FF9531C76690C37CD8072CCB1C36A195A84197A8797446273D686AEA96FEFC153F1710D98229ABF35B6E6127F2E5A5C9E88A33A85A1006A1383988E3C72692038C2A713BDFB266F22A4657548A91554C54A948E189A62590A3F0362C1F84954408BA3C9284442B59C1A4904128C0BBB50B2E34C98B819A1D6793DE75697CD814EE162AE3DACC0D50BADE8B835C3F27126731D2721AB61802F544967DF987B5B0B02EFBC95847A5F06113737E55CA4DB20C4400580B5C241016B50DB710D7555D8F67CCA13B2D86103D3870D5713B217D03B3984334A6CA272D43911EC23DB3B5C15139EFCD510A95C96D68A70D2988ADBD048122678AC8A051282BB4FB47D6D5819A3A9866571CF53B78ED80A76FFECC971B221BFB917BC69018DC0177468357292495D98A022634EA7B0B1F517734EE40D0E927919221CE9EABFA05596A801A342B87267AC9047129995630271C1C2F02A4D1AF2217B65C05609B8745306B6A90F86EB48CB0A4777065C449F94385651C3B4C0503726CAFA118167110E848FBED995526B458D362061A1 +sk = 5B47B61CE23572623C431A498E378C6B71A5CDCCB58E225310217F6F2B1B7140B97349B965D9C95332A66D7A9879F24C479851A0EA485254755DB347BFF9A06D00502AE3A910C06771AACC0A51ADD07A291496AC10E2899B6562DCDA7B6B9B7EB516335D222C43498859D87A44CB8AD589A06E609FC5798CA06744051533D5C6154608C790A8ABD776CBD2984B57E1CF4E0638C77915DD89249D3C0775B45CC159B44BD32F49A51A1E398763E35DBF5C6CCB100929C9B91047A1AB98A140E00F77F5076310C33179A8C80449591C4156C244EB8C8B3009328139C18F8C59E1961A2B91C840D552C2E4B3897265B16C28DE6ABB72D218EF713A1D179CEA38561663C9BF21B68166AAA45748316877A9A5BED6F5230D3015193AA5A9E1B34DC6576B57692B543FFF321B14879A24728DE3D6A297C06AC6CB28EC3482DA708ABAB28FA815272624AF6E26A879F65C6432812470C52DE01EDCE20681DB43A967069DC9BB34F9C540A21B8D7322A3675FEE059F5F655CFC480BA31255E899C48A7C25588303D67055434702ECCA24D31A9D69796DF408328912ADA084AB122C6AC53C3C349C105270C9AEAC73923614EA9129CE4C9FD8D78BD33045D8557AD3D0A698B34A7C073B93783670662F8558375647747905402A6AABD1698D1D3B430CE8B5EE8665771A34CA73B2DEE04497C997C9E74044230690354B7AF23BD94AA02CF599554391095C0D53F5C1DB19AC33189B2B9AA3C48BC4E09BCDC5029BD3B45A370C59045ABCBFB257DDF30085DA053056C17DD0B5DDC6494524875AC189E6C7A7CD483288F03ABC155BC2022EB427B7D5093F4616C124B7C29A0043181C7BDED83DE7592511E3617A75652D4568D7C7B3AB2B7464C514CE6CCF54FA8D73E61834E534966620DC59196AB44B736151A27C02E065A000611542FC296A69A24989331EF980F708142D7274EA863669A52039B59D48B90BCC75CE4B434F5751CEF621CF3A29873C003A57276128E70BB4AA5DE581834946741A8134890491D37B6051959739FA8EB81C6947141704683124136C1C382760E13F00C59AB5BCBCEF98B973831B91BA87FEC02216619F012859FAA6B01B1649786B626348182398226CF794095681D1C25800B18BF33CC71123898AD2AEE46905A8118916BA8651328A051697F8041667789C874394E96A0EFCDA8998D420684217952496AE9117C6C618513C147148979F5C8BFEF8C7CA1836430C3CFB66B17CBCA63ED1A2157961CEE600617157AAD986B5021F4F69C3BEE6AE181A076C3CABF076903BD59814352F4EE2C04A138AE0EB018A2193CED58981CAA3BB032317499E6EC4BC5CFAB8B389467EF295DBE7305BD1CD099364D7596B1801008ED734D7775C5606AF0F1A2978733DD7F55556DBC5FBAACA5A95BBC287B6D3A43AA9B78AD10A025F46AF233512B126230CF928FAC14D753160BAD961BDCC4D5E1B4EDD241609A0ADC6B3C6CC9660E5371D6C1655B4465F16D535ADCC54F8376371B758CACB81D84A7B3E6B8754B430C0753982A89D5CA8B2F4244AABE0BF05F75ED0B092F332AA83808F897BA21906AF25E68A88B61A357A10ECE1977199203E465EF9BC020E145F6421ABD11B18AB198549B67B4F0C11FD7B001E43731F2383F62AB90ADB3E13197DB7279020D212105236FBD8746722A99606B522C69648543F9E65558162235CECA379905100A2B98F32824BA288AA3CB7DC1734BD49C0769CC5A44483E0317DC62961471B195483683F774243E689FF504C02EC73E04B5731C49D0853494ADCCD6608A575388D245A312A1A38F1F9A17D26073EB3B6FE41175F362DFC697CE5D2CDA6B0145A739E7879C17E277DE2750733C9B539A915585C237CBB66CD4B1AFA425AC5F22F06724EA5783B579331928B57A9FC407C56541117C8665AAA2DF1AD0DD20D6A2911FAF73C9E653D6BAA0EE73720DBFCA1F5BA6A1DB99E0F87955FB85A253105156A2B9FD3C35C8AB458023CE3D381132B488C122BEAF1B740A526513B31B63CCA1CA8389F9A26E22C3FF1D50B42E3C71CFBC4465745DCD28B3811BB29E52558735145EC799614926F5A55D57C640F673E4FB176E8F56F73ABA60E60A4CF464373F5104416C6CEB386B4518C7D154B86E58A04B2337F1AB43660B312F0C905BC776461A7A463B8E40C03739A6B5FD196655871ADB3C82AD10FB2B2B538E61E1B664FBAF761F09B4D5E358B518088B3206E1295BFD0461A2FF8553B40CB92E36F0F928AF9FC7EF54C358D88280697AC3D5548029C3FAF882AE2DA732E0C47934B9C98232C40B84A344421E708226CA6524C062302765BF4D593E2D75D3A783F1DD7328767315DDA868E685EABC18FDAEC2CA8B037FDC3607629CC3ECC8E848C771B94C6A20A28E3003778BA68B923B711060BB6152554707D7E4C135AE8663D87643EC4921C6A5C20AC69E67B0B795A6FEBE794FA86B13866697B15306F667AB867C1F2EBBF3CC63C5E7B03189ABF9B4A91EB782FED97BC3A6314D0CCB528B313D165B2910859DE867D7D6290BBC85185B0201561AF34B9656A00B2EC32323B26A04888786F81007362814BCC82862A7280A5CEE73A330E6C2E01FC9AFE2741B12166949532C884CE8BF2281AA4B860756463BB49BD1524B8CCC6ECB6051ADA819865B8BBE1BB01141B77FA3FF5713F95BAAC10866303939C07483B6BFC500D61B7AD494382C643E87508E410C30FE96B37960AD4E707421944B13B31D6686745C52EF6CA4FFF3074F19C1695038367B1218E8B08D8E6180870B0FE5B5511E3B4641B6FA44156C561AA2AA9A1E163AACF73C24D84BB764004B3B329DDCB0F15716E17C51C6C432BA1407C0D063B0CF2C073763A790CD0312ABE6D26B0D75390492A88772763FCF67E1BF28E1A01C0A5714BCC685570D34627CA5896DBA36A6642C507680EC744CCDBACE6835D052A42E2379A5E80ACCA643CC06B62F3E5CECEB4708C3AC4BF88AF58C7CF37F43D2797635BB985F052450875A8997C335AE85D5B790377301F5A094A5B43B515206067E36FE51AB9AF296583D47450A34A302844B0526A4EF891D01C287602453126557A876C583C2A06561A88F9651E39929D0B43FCCBA48595925C01ADC0677200C39C64E44505AA58A9B5C88311C094DC3AA5314F167247B501798C4A0D5D9A04B77C6552369542E96172573E727890FA3B2E3551286113221FE92F81C481C125BFA7A6199EF8C0EEAA0A5B8973C9A33807A464FD4A50EB294741C5A8FD998171872C0FD44EC86112E19A707DEC768F7245DD2A6F60A554490947E5152DC3EB9D9E7151FF7188127B5313757431D3A41C673E203C7E8E9963D0AB1276B5C1114C38EC8CC0BA0A94918CBCCDCC7DC5366704415CD2AB9A7FE55ED49498B8B7105FB312F4A153E394A019749A23DCC180236468A47D96D47BE66A0CDFD16A2DD15AEF826041192B8028B1EA782FBF0A2CD5FAB19011B219099F8E87C74CC69841F4A927E181E98AC6B3DB7846EC38C0BA8AA9F50BA7A423A474060EF165299B12786BC8C05A384EF129B0F6C06C1047E582C02A54AA8713422BB6B9A6A4195FE6843D7C639916943B5793107CB8E63365DAB357CC02A9F1B33E8DA29F25F9839D862285864BA790BF965292470965E0A9C1D1F65B72139908D791A4D89E489A983279A703A0C34222786E123B45C793C925B1A146C006F15FB4A1C85E181F8B1C6983E1A1D7210C12091D83439AC8A15D965A386BE47145BB946162CB8869B359654121092D81947CCB5717E805478A7C0EA924692B361CCB730F3180C8F79041F8D366757528B0828B7FF9531C76690C37CD8072CCB1C36A195A84197A8797446273D686AEA96FEFC153F1710D98229ABF35B6E6127F2E5A5C9E88A33A85A1006A1383988E3C72692038C2A713BDFB266F22A4657548A91554C54A948E189A62590A3F0362C1F84954408BA3C9284442B59C1A4904128C0BBB50B2E34C98B819A1D6793DE75697CD814EE162AE3DACC0D50BADE8B835C3F27126731D2721AB61802F544967DF987B5B0B02EFBC95847A5F06113737E55CA4DB20C4400580B5C241016B50DB710D7555D8F67CCA13B2D86103D3870D5713B217D03B3984334A6CA272D43911EC23DB3B5C15139EFCD510A95C96D68A70D2988ADBD048122678AC8A051282BB4FB47D6D5819A3A9866571CF53B78ED80A76FFECC971B221BFB917BC69018DC0177468357292495D98A022634EA7B0B1F517734EE40D0E927919221CE9EABFA05596A801A342B87267AC9047129995630271C1C2F02A4D1AF2217B65C05609B8745306B6A90F86EB48CB0A4777065C449F94385651C3B4C0503726CAFA118167110E848FBED995526B458D362061A174841A59DB1202EB2E3744BB36B9C5A229A33CF9EEAFCA4B3D02D155D870B6BF23DA505EA48A79EB504EEADDF7D19D736F39A46C837F2A0C2BF3FB876ED8E6BF +encap_coins = 06430DD2CFEA620F387E8CF12A48DC32E25B9EACB9468C42057B01A3CD76AA80 +ct = B75552950A026F737D596B341964F43603CBBEBE57443AC0B00BAC786F1528F53D2CC5733B1F2615D528F44BBFDE602C757480CE10286EB01517CF1BB2C887983351DB25FB834587B0AF9F9AFF02E72762AEA47B0D228FB5F7892AFB431EB0942278E57C8267F04DBC0F3561AB2A06AFB659F4D4B9FAB87934F0B81AF2B05DBAD3F3FA09D0439429F23E472F771673DB28508F2421275B1E6F8A586402D2F6F00DE271E0020F324F52747211E9EFF866DC01E74A092BC2CAEFE53937351DD0751C44BECFCA8902472204DDABAEE33FEAB383A9523183494FEF9BDEC10A129E23AFDE2448593342DF38CCDD3F247AF1681F2E301DAF67B4C6E808CC5251F9BF556BEA54190F77735B0C299CD4A08642F6AD54F34BE40399DB74376112586A61C0AC0B66E7E16F23329F05A17369DC0844D011D79ECCEBA1C0E13439C77884EF72F3CFCE713ACFF4624C2A0B71B54C14711494C8475CFA2118EC6A1EC76AAF942F825A533EE6DD373380CF014E10DB25525DEDA9A8E5651027F415E0E842F64C6C7CC656D88C5CBA0361DB7BD5E731B60D8C3FE14B2F18755695D333FFC6A73CFCD3D2305A6501CD7AE25FBFC48C0BDFC3C1A7CEEE40D2F6A9DAC07B74129DF6E1AA3EF5E26C91AD080DCF6FB7C5DBF946EF614682CC7EBCC08FC5E85091C479C67ABFDB8571E866570328728890436D5A3EE70665B9EB589E14C4BAF77259B7396209FC25DB89A50F32E8190FC3C549044099240D1C697EDA8D3C54092E9D229292078DD952B40AA86E8738D44E4A22C60C8767084CE553B5A04713C57CFA580A20E8CB9C7485EA8BFFFE4F216919DAF7F02928F65D14A2F7F55ED4CFE9F948321B087C3FB91AEF6417C7EDB06D5F20E38B629E17B7703E0C33B388F8B32956DDF3161D8923FFE0136E40131848E1D435A6C054379CD0C5C2422B576B8524F9845FEDBD089F5ED4290CBD64AE82A21FDD3ED26870988AD7AA559DDE882848824D359641507B83D7E198A837F676E8A9D6B59BDE14811F3FDE1B752BA4C897085F5A81333E6194E155F89B5F1FF4378072F68CC6524207114B5690605A32EB48B70CACB1AB2370E6F69C8E5C31B13C01F870755F574069C1B39F48492EA25358B58EEB27A65EA1DECEA5FBC14A51253238CAE0A105BC9ABF83D5C10C4686787039E8F302AEBCC6A5C1782CD417045871412265325BFAA09E5189D98445D7759B8DC45EC361760748481C81542BD158EB0652B6634C462D8358D096D92ED65135FB29101615D42E98AFBCF158A30CBFD08DC11EFE8E0507E79248B99C04656C58FA7EBBFCA91A5468F37B1CC08814AEEE0B2DBBFF4522FE430A59E9809885D3B825856A1C54476781CECBD452812C88D1C541F15F247BC13E2F7483B56F1B7F5696447833991628A1C1029B89B6FC4B253E26D523BDBE1616E4E45278D56FBB565BD10AD88625A14CCB7F87CB5513482DEF4377731DD816FF77E9F150090155B2276E5CF3C6755DCF6B67E733EB90F012774202219D067DCD43E5E38EE4064F3F0E208E8DADFC467216705DDA530EAFD98916B6BDB0721E01203E7AA164FFA8EE0EB7BCFC39D00EB94BA36BD48CE8A08D8C70AEC99BC7288E01726AD50B6AC9084FD602422D4DCFEF47B359E06BB13CFBB9BD51384128BA54943E532E79EC1B72244B8676D4019DEB1BC055104716189D5298F0E1851667AA3D09AF905BBAF7BFBF8FB55AD9F664F2026ED29F05203BE81010BA82C5D7E706E7C6BCBD73E739CFC04F235A84BA1158120F745C749A0DDA637366DF8A9707D52631B16065553C926FC310826D6B811F1B2DFFC908A86B5E225D5EBF396ECCB76AF16E58FE2E7DFC473734927F27B6BED5444BA0E75BF5F5E4AB5098055CF0A8D93FB67BE799D5A9F6BD42FEFD9B00581CB60E64AFFF245814848A62B8B2E0C1157CBFC5DFBFC41BD796112F18BBDC737727EE8CDEAA8ED871F1D4AF5134B3B47EE935E348FC206215B64E0C62F1FA43FDC48F823059353FBB90BACAEC9A59D829BD90028F78FF7866AB40DA24AE1C9E27DB06470CC1C59977577FF5B9066CC98F42FD526F51414435EEEF2E2B66B0910FD8A576267093C155268E10BA8477AF0C2C20D5728165FB4A2DEED4E978F5A46137742ACFD0486A3132CB33451ECFAE5D63416CB6CFE8963A28C39774223E04B4FC4CE3097FBCB6FC1C63DA96C831B57F124561D33C8CEBFD +ss = 028254FC9D35D9DE5FC4006DEF745CCEC1071C39C967B4E2D18AAC9679FDFBEA + +count = 39 +keypair_coins = 3C815E57E9233E975FA1630208AAB206B71AE0DB37A7A8789AC683D9F9B2D2985532C666D12D7F321AA87F8A1F475B161BF3812EFA99269925F5F29B1E030B5D +pk = CC40BEE26AC378D8B540992EED54B23676827AEB4BD44857C2C21D55D72D0DB795B0B6C8BC9077AEB59B71588ABFE926F7CA57D305141012A41EB063F5281018563EAB7252C34AA832A4BC27DACFFB008E6D255CD547A0EBAB65F410035550297C50B1A637CDEF9172B6D4AB96AC598AD7622C34C3B98890C77CB9A5A08E3411A235DA946C92A81D7BC57998175531B203E21E3CC9CDA7D4BDB46C517C08A1DBB5BEE25CBDF2991DEF527FE6C838D3E1221BB7A48CF7A247895DC77328A07B8C342C731D24CA8A83B9CDD7A47025467AA81BBB0878AE5C8E6FC0ADE2F88C68A328FA132A4B5A0298AC19F46098A451870993015360093BD7B0EBE3929A028333312361E07A7DAC8C90B50019E73893F78D097028FC5714362C41DD42C4DD71CFBEA58E5AA96D82B03F5EF65D572957EDE919E094A70AEAB998A55AE4B2988890C88FFA1095273B132550068337586284976A30B0C538474A25EC076960D1BEE0620A2A875FC53054D28042674B1F51B7877629A1FA815E2EF578AFE936DFE5C7CFE6472AE7C264809A3A1285F6A156448246E4E832C75439CEF074F62BB4AB5A4BEBF24A129C046B0CB215552D126C32EA74088A2A7DA6BCBC380354A00642DDF9810CA8C0DF8296C55C057DF32A4AA14F45192846E31C38919185E2C77CFA199B2003B80A5D6A867CC6764FA4B907646CB923E39BFF6A14F335392363890CF66A10026E7DE62D09DAA31A50A5458515DEE1AC7E092DC19CA6FF506DDDF67AEB26BA4D720A92310FB942581F69024BA975598C97C41A6112C812AA6A21258060BADB32DDE0A5EAAA4FEC6983776B1348C06A7877BB1B44223CD67AA088B6E0B593EEEBBF320A76A95999F2C37DA487A277625298F403114A018B8B78AF433A15A69DE14158657BA05855BCE24402243746DE13728B4C4359409A282B994F3053777A72E6C30686EB0E4746B88AB57FC9F2558A1A0820C59C2CFC801B97B0206833D4C389E415330AB87FF870C90F86218C3B2C058B97B1E595F87703F6D34118965CC88423E3BB4E182210C225902FE3229E4559AE8A231B34395989C732F54BE1B90B3F846ADCFB5A36089F1B057C70931921FB36207966666413C8998C509A6268A6BCC1271EAD333060D9753820A0F1786FAF467D9F645C45FA9CC8BA5D9E09629B47A040AB2773976EA3E6876590C152C897D59543FB576E6BA22F9B312995F9969C91CB9098AA2046AC4BC69A38AB5C7A206EED57514DE7821E64AA6626299C99B2A7299DFE933BA386A19EE01CD7A24DB661356A19A68F68018A6847F56C0247346E294158C36C3DA5E51AF8604C3FF26014648F310977CCF8BFB36316BE8321C71A4E1745237F964B5DF9B67F8699454A810FAC4FC83493AA2A7E4AF61728759A12A769FB751D0D2125413CC0D4E0B5AABBB63B8C8AC5D385A95094E0650D16009DA134C36A7C8A59BA90260B9AF69542ADD7A72922C8DBD2B9E1DCBF39E6B19A4815D1544D31547F9C336BAA44C835805C1A03610C0CA2B33BC44557583DA206CCDB50F1C7309DE949996AC72FD9803EC5BB7A151FD8F0B4E78008E35C102A33A9412B40E4B7A247864277BAC3C1409006A75596D0CEBC52621E91A7AF791672E29861533E765257BEB06FABE44C20F0A44A288C42D22851433C2BE639404ABA3E6B356C4671906A375894954849431F71717DBC1A26B19258DB8096138CF83894182C88C6D9A56D718F489040667184AD175CA0B02ECDB1B5FD0A2B785197BC696A68471C9B486D7596657318BFD1F46AA29414C436C0F69252CE96BC09837CB4325903BB15D81B3F5C62CBB8DBACED7421B4361A8C196601B002F79877158C97BBC80072ECBC8B69557A4C60C8E90D23427DC7BA806BA6234189BD874C30EC696710C53540F74BF61B2A777606721952F930358B55C183DB4F1EA17A761A0CFA14C55ED47CFBA737BC75725C3471AA8B563050BD424512DF66B0684948D068B94765ADACDC5A24E18035C5164C54CA64171143A023A7A07AD8B5CE3AA095C7307EADD6499D89CCEFFB00F635334A3C91785009FA6A93C1211854882E99B7A32306BCF053551BF99F99C8A458106A55EC98A0C06C7C58583ED757956A89533C6C7B2867B8D3A5FEF526E13ABE818919FB03A7F9F0CFA9025FBCF4677FD32A677F68DABFA371062D8B8CE9DFE0D90BF06044AC3A840CEB626B16E134 +sk = 2C021F19322A908456F1677D31DC8A4A2A734A2571D19C421C47AECC507C3C53A931113290B693AFD1B7FFECA87CC90B0419C48BC4359D64146D9932BEEC78766408F59216C692228FE59B768C92F4D5A3CCFA6A35599DA2695766D754C1F682AB13C8966997F37A74985551C36828224C177D3A3ADE3C2C20A907C830BC32906DF70B021B47C38C606EF951ACF7C1512AC15FC0D761C9057A7DB1AC6C56198F9A8ED2F67A0F159A5EE6612109254D57745736CC3CDB634F5658FB684D805888FEA8582135BD4890343A545E4E0A6F0C130B8539125AB06358F8BCC0A4B44A7A4903D018C960CA45779BB564A30CF1B340B4C317CB77DA50BF899C10B4676F3C295B90E93C2540A9E17C3BDE560F351C81C58B545306449585718E9199A6302E3B0CA1E737C07A4B7E21EC154604590D415F4B82778778905360CC2E49BE4B08C94A744995F18959D4492F0B7A3F53A98F9A8D914863B9583D866712FE583FD2677E8A3B8BA5341902178824F4C41BA21CBF7A4B666ACB413C31CFA744B9A5405EFC5B53A2C64481270484134753C1B0407E23B95850A8C026843643E42B329BCBB7422DF5CBB968B04F39210A4EC959E1B5C9CB32A180588B9BAA690F7459B1282D9E9200BD1A0E910A3EFD948C3BD0AF04D866EDC61C866B48D7AA22E6FB5025C6892C66116E271B998B888E0481ABDA592C8B36F7464704FC22C51B5BA995928FE03594A8073AD790798AA304579822255E61D11557092BC9B5BD4C94068C60B2940C180831C5167487B7538C9AB47DC268215C8C7F324563D3973FA73BBAF07C771B15070D880478D2693535425FCCAE0F8272CD7224F3795A70241D480425E4A74922309906E1C11C5107E9F34FAC3536354100F911234D55769B763CF2408B9812AA6B7C2601161953CABF0733CD3AF819F5158A136621FB159DB3DC6C3F3220ADB8ACAA8CCCB7CB2EE583B9909C903FF43612D178C568AA7E9217E345CF4DAA9AAF17CCA1B5A4A5A73CE9B0581E73BCC019BCE2B68C8C273DFE588BA0861C5A73A6EDD9BBDD66935AF04E5EA81A55D62C9A8C51B3E6A402587FF4F837C16380AEF5640F333DB08A6CDDB425CB4189ED773D8ADB91E2708F12B78A0105BFFEE30873C1B6D5D5469F6464705741EC4310A8185A1553372F6091C769109F19527E95A6802C2A49127077B21126E7531A5941298BAE199309CBE00D97513BDE1AC82292CA1A76957D20A306932F83994A00F21D89519E16138F0477667F338A67450E1248A682142A79D9AB6B58B88754362A32AF3402D062A554CA8A40DA0481BA721A9B023DA71987B744C6B9AB5E80830F8B7200241007F0EB72AE3694EE92814DF4B1DB269F4404CD0C77A844D2B751F5A0BD1CB93D61A628098D0EEBC941827F77139831575B98E47B7DC3676D887B56D0AD96BCAA1F280049776339CB3FEF6489DBD26205530CB08C53FB0839B49909864AB06B2C3FE15957DDA96CCDA90C51904DF02C6A1E5846F892A1683838B9760AB900664A1A039B6A1C75F9C4B05340EDE9881F48869DC881DA0191E24BB5AEC448EA052E57E69EDF254575FCA87A1B50E6D39520630688B04328A70CA1A871FFBCB0A8823DFD4747DC859B3472CFA9E02EC7F2C5B3B9A08E4534A971CA46F7CD93547ED32C42DFE064577A5291DB057DF43D59741DA0A12AD930A14319A0D7516A26B5CDF32CA566A6CFB1099B2DA1A37B487CA950199F9212D14C83064742AE46985C398749F392046BBF13638B19B716E6FB94C8D5331B14BFDBC2BE35699627641ABE618880D8947EF059696185DE186069CB9309552E256987B4F071F79A9687D85FC61292C19548C3272CC8E34BBA918EEEA5181A52B68344BA8656409F00426D28869E397F077A675CC169A17264634A0B2341B758A37D54F1C1FE154893A1560A7B10618094F8C060330CB03F978CF765133AA4C9482B0CC169802A8128B108B7DDC5718ED6377A6A11922B72D6F3BAB633B3C820A42AE2825A43093F48BB73A0432C56B56565AAEF028C2228BE23618A6FB8B9D121700F8B25B79578BACC1D3D7A1EF5D16355A07DCEDA8A5B358F20641113AB967F75C3B2DC7F4C1C81F18B35F8E573D8039466F210B89BAA4752AF1B45B2F71B5642ECA69F50789FB153C7F9B62DC29440B36ECC40BEE26AC378D8B540992EED54B23676827AEB4BD44857C2C21D55D72D0DB795B0B6C8BC9077AEB59B71588ABFE926F7CA57D305141012A41EB063F5281018563EAB7252C34AA832A4BC27DACFFB008E6D255CD547A0EBAB65F410035550297C50B1A637CDEF9172B6D4AB96AC598AD7622C34C3B98890C77CB9A5A08E3411A235DA946C92A81D7BC57998175531B203E21E3CC9CDA7D4BDB46C517C08A1DBB5BEE25CBDF2991DEF527FE6C838D3E1221BB7A48CF7A247895DC77328A07B8C342C731D24CA8A83B9CDD7A47025467AA81BBB0878AE5C8E6FC0ADE2F88C68A328FA132A4B5A0298AC19F46098A451870993015360093BD7B0EBE3929A028333312361E07A7DAC8C90B50019E73893F78D097028FC5714362C41DD42C4DD71CFBEA58E5AA96D82B03F5EF65D572957EDE919E094A70AEAB998A55AE4B2988890C88FFA1095273B132550068337586284976A30B0C538474A25EC076960D1BEE0620A2A875FC53054D28042674B1F51B7877629A1FA815E2EF578AFE936DFE5C7CFE6472AE7C264809A3A1285F6A156448246E4E832C75439CEF074F62BB4AB5A4BEBF24A129C046B0CB215552D126C32EA74088A2A7DA6BCBC380354A00642DDF9810CA8C0DF8296C55C057DF32A4AA14F45192846E31C38919185E2C77CFA199B2003B80A5D6A867CC6764FA4B907646CB923E39BFF6A14F335392363890CF66A10026E7DE62D09DAA31A50A5458515DEE1AC7E092DC19CA6FF506DDDF67AEB26BA4D720A92310FB942581F69024BA975598C97C41A6112C812AA6A21258060BADB32DDE0A5EAAA4FEC6983776B1348C06A7877BB1B44223CD67AA088B6E0B593EEEBBF320A76A95999F2C37DA487A277625298F403114A018B8B78AF433A15A69DE14158657BA05855BCE24402243746DE13728B4C4359409A282B994F3053777A72E6C30686EB0E4746B88AB57FC9F2558A1A0820C59C2CFC801B97B0206833D4C389E415330AB87FF870C90F86218C3B2C058B97B1E595F87703F6D34118965CC88423E3BB4E182210C225902FE3229E4559AE8A231B34395989C732F54BE1B90B3F846ADCFB5A36089F1B057C70931921FB36207966666413C8998C509A6268A6BCC1271EAD333060D9753820A0F1786FAF467D9F645C45FA9CC8BA5D9E09629B47A040AB2773976EA3E6876590C152C897D59543FB576E6BA22F9B312995F9969C91CB9098AA2046AC4BC69A38AB5C7A206EED57514DE7821E64AA6626299C99B2A7299DFE933BA386A19EE01CD7A24DB661356A19A68F68018A6847F56C0247346E294158C36C3DA5E51AF8604C3FF26014648F310977CCF8BFB36316BE8321C71A4E1745237F964B5DF9B67F8699454A810FAC4FC83493AA2A7E4AF61728759A12A769FB751D0D2125413CC0D4E0B5AABBB63B8C8AC5D385A95094E0650D16009DA134C36A7C8A59BA90260B9AF69542ADD7A72922C8DBD2B9E1DCBF39E6B19A4815D1544D31547F9C336BAA44C835805C1A03610C0CA2B33BC44557583DA206CCDB50F1C7309DE949996AC72FD9803EC5BB7A151FD8F0B4E78008E35C102A33A9412B40E4B7A247864277BAC3C1409006A75596D0CEBC52621E91A7AF791672E29861533E765257BEB06FABE44C20F0A44A288C42D22851433C2BE639404ABA3E6B356C4671906A375894954849431F71717DBC1A26B19258DB8096138CF83894182C88C6D9A56D718F489040667184AD175CA0B02ECDB1B5FD0A2B785197BC696A68471C9B486D7596657318BFD1F46AA29414C436C0F69252CE96BC09837CB4325903BB15D81B3F5C62CBB8DBACED7421B4361A8C196601B002F79877158C97BBC80072ECBC8B69557A4C60C8E90D23427DC7BA806BA6234189BD874C30EC696710C53540F74BF61B2A777606721952F930358B55C183DB4F1EA17A761A0CFA14C55ED47CFBA737BC75725C3471AA8B563050BD424512DF66B0684948D068B94765ADACDC5A24E18035C5164C54CA64171143A023A7A07AD8B5CE3AA095C7307EADD6499D89CCEFFB00F635334A3C91785009FA6A93C1211854882E99B7A32306BCF053551BF99F99C8A458106A55EC98A0C06C7C58583ED757956A89533C6C7B2867B8D3A5FEF526E13ABE818919FB03A7F9F0CFA9025FBCF4677FD32A677F68DABFA371062D8B8CE9DFE0D90BF06044AC3A840CEB626B16E134F7243D71BCBB46B9A423431B3B30947EDA5FD81B526CCE79A36730D8EE1BE42C5532C666D12D7F321AA87F8A1F475B161BF3812EFA99269925F5F29B1E030B5D +encap_coins = 45443194C6681FAEB9E4CD954543BDB55DC9FC5478555DBABAFF127CFDD85438 +ct = D313CD4AF10859BDEEBA24C6251C70DE801F2271A1CA1B23D7A64C3351052C4CDF3B219AA1942F77D531D920DC2052135787E3AC4AEC26A03CE5DAFD94E6A059E84424F87428C23842A49A3FEF3204BA6EDFCE2B87F4D0EB57523C41E74B8FEDF33F9118323D01F28AE365C23BB2693DAFE831C20C8DA1D15F1DB9BC5981D5418218EA0A7197E29C59C01BC953A5A402B83C80C0D6C44160B642F59AF7AE5963E127618280B9F83F4DDF9408886276B766066BF58CF5DEFC10B7832B4E7DC1726C5C1105A1387AA8621BF543952F7D70AE4C29D7C7348EB14FF2DD0DCFFD40D25DF8857559BD72C2F23C26DD804BEAAED3BF1B95674CAA2490CD4777530CC8262CDD635637B2C8FD223B3BF6A567E12EA63C12569C775D4894220E27DD95CD2C8C9551DB1870D0ABDC05E3BD202ABA5D46A7BFFCB7BD4C3848BB16208FBC8AA0B5E19898CFBCD63DA7092ED82986DBE013E114B71E1E9C0701E847EC532BA26EEB95A110B95BD98C80236C413A632F5A526D1B5C5FA33118FD3D009D1221BBF4277CB0863738D6C2D4055B6E39A9C8F6A43DC5892EDEC5ED3F7A99F44CE8B66B428516FD09B91685F541BF82A1EB08AB552F04E886C6BD9CF0D7E6B32B08F4405343B97F59D7BE6DD41F358132033DE71878E6B2D0CA65206909061BBD9B2D26C15B4D6A625F6448BF8DD0FE15B0176175AE15473EB15EAAFAB334EEC9E148241E3312473F6441F2CB45B05490529FC680D11D26C5B0BAB29E4AEC15165ED2EC67FE8DE9EAEA0DBC0A31A8EF18898FAD81DE6B2A32C054A7BBD84E36C39F9E4EB6CFEE587684977A492787EB3BF261FD4B080D2E750447EF44F03957312D319FC214FFDA1EAD796FA419F9C2B27E06EB12F8EEC336ED633F0047505D62557AA721A2B8031098B631698420CD3768E7F24F41D69B3A32C7568227DA72D415C71B50FF0594DBB3B23216910E1F95A7335E31D70326F35E18DA256B843A882D6B7E67797C98EA9D20FBA2892A21DFFDF60F400B1E781B533BC41BC88A85A215D99EE717CF3FDA7A007663EBA510F3401CB877D40AD8D13102DBD56503278D2558124E391FA366B3EAD518EFEDCEFDA15D905240A72FA577E347550981F428FA258C6496BD3C214A3AFC1E6B5078BE0B3B82A2BBCF53BEA49C981213D4415FC51E81D51DC52E20CB4C7669ACACF16255F5B5D4FEF2785E567DCDF0C378BD0244B88BB447E772AD38766E5D07DE1B814413571E0124CFA34FBD5ED735E9CA0FA421C0DCF3DDFA53FC07DB1E17525A0DEAE0C4D6638A464D6437405FB35A0A8E048655FB5AF6F3DFF767E6BC20039E09367D6030BF7156822523FD3E5499FEF75D84B4D2388D4B6E2661AEE1EF9E5220B7D80DD4F85CB1F2B82B0F788DF80130C0E29251C9969BDB82223085B593B1D456CDF8B7194AF034EE31AFA74EEC891394F0EB141CEED48C04093DA6E398BDFF88D611F1B81879D6148A026CF4849FDC42C8863F9CF084A16F069028F041BB0C413DFCA1435B6B68608C27FCB046B5AC6947A567F86312051AF16FD1A47AE79BE6FD99F47F438C8CEB0ECD38DD4991F68364A3551D54C150DACBE55E7D10E3B9DCD5EF1BE8248FAD68ABF948EF32882B20A6810250153BE70CCB4C3C4B137D739F083AAE5B61EA3A05C2EEF482F2FA481340850B75D26F29B694741D1EEF36F9416A063D1251EAF075E5057B3536AF622D51D3B002E9FFEE67F7B1FFF34E651E532FEC4E165726709FE2693B0E8F2FDADBCBD1A8FC108DFBF253BAC047DE6387AA716ECB27980A3AFD97E3707B656692CE13B1FB43347932699DB448ADA8D89E39FD96B39243675F56B36854F725F459C469136422770009743EBD5A7C460482C39CF156A5A6C29ABBEC9259959224F36C0C274250FB5F8B8A9939EE7C0BC911C45759109D8523DD7B3D8FAC7BE18B8D791B41A89964637F37BBC731A7BD59E5D9D350F7160D7CA61D4CEF931AC2192D12784B3EA20C2C90AF351D7AF68C3CE9D8490B0C4503E07C17EC3D9841B49372CDAD73270016FCD420327B6ABDDE1865C6A494692C9761A9841E7841A267D593F18B80DC13D33D5E62EE5ECB16C459020FED6361D94E5A2D2B9F0C9DACC328E3B309994E4238A55C443C992522EBE6AB7CFF76C7C65667825C1E150FCE75FDC019F7265E5B2B49BD7ABFAF773B49B0B676489AC81F5ADE62CC39C916C56145CE3A9715 +ss = 61010880E699F88A301E7B69F2E7ABEA796F3B48AA178379C7512313C3A5C972 + +count = 40 +keypair_coins = 588760826DCFBD36D9ABE6AE44A669BB3EBBA6A218EAB69E30F18A3BD536576E173DBCD4922B8FA921DC24240B2173C2E65A839357F8E4A93F51E7DAED4C8C00 +pk = 5993B3DC543A4939519F942B982AA75743861387558FD01F3066AF48080751346618E25C2501979F70CBD722528C713E9BF1B891043DE54424F7022E45CC287B7A8138C842F1BCBAD18795A382439C5C470A91309FCB8149039D0435B9B80A0773778111134C104CC5E7BBC455FC0F4D157F2AFB40972C41FE85622825B5AC48C0E357CC2D953140015BEF5CAE1CD2BF7519398B610C9B191FA34767EE67880FD9AB6D5782350B176D3A7C318714F8208F71C80A1B189BF10827B763ACF096B49CC5C0B2A21C268A6C69500CE889785825438890A6E7E399EDE411D83A53BBF81FC0B0B472692DB25B69396337B2724F1425AEE7296FB29A399A16A13CE748995806CC5C64AC87783AF77BC05329BA849A086304EBAB9EDFC5435B55503C2A6F9B996D75359E963077F4A88EE2E259A6B97635A3BC8670B9FBB94AF2FA3046B51BEE299BAE327F1519CA170A1AA443CA323C1D336952A3D2342D481B10B4752E34C2F03866EE8C8508A77A4721C387054CD241BD54B8BE0BBA7BE18616D3B649A452123E347F8F52C0C5BA2D9FE7560AD88F2BB77622212DFF7474B2C250B0341D9CE6AE52DCBAC5D3B99807AF81744498031477B6178D4552D3E813483C3C6C4A73DD111E7874B7659B29DB53946538CF3B51BD53D63DCA591D16043469310C512CABC763B208A19099FBA9F82B445C05BDDEA259A0156940E3099D97928C8079BB7846B566B4770C904B75B430151B3198BCCE1830B9B8CD5381A1B255A880E49865297A801291F491201684C658D288EC63B8E6D423C4C9091F9552926253876629266969ACD09A8C896DDAC6BEE964832BC0952B98A95EE54422DA547AD9174503093835C74693047D782829F06327D11B6A646AE2E8703C3A6BFE9516E71915E7294A2D5A4EC8406792B55692C5591AF95D3E7376F6CCC58CAA2FF787A126193175162E6A084159E957D85383A0502BBBE091DA6A62A7EC4441453306F74C40C483ABE092A36A5876A60E1893C8C4FB3DBC946D781873D49CBAD7BA431EE820F6E0246B5548F045AD65B0670C341D3EDC40F331B59740AB0D167E02FA36CB23B10467084A63B9F1FACABC9C86E6511F8CC6928DE03913001927EC47E6B001264C9629343E10F945E4F9065E3985E8B4B3536B1AAAC91A02A7B701C961A939388F57B310C4652D7649D604A0A7006686C5C0F467486E5248DC24BE13F411FD524A6EFB276BD75875D5CF7A18482DEA41B4579F168486C3D87545B415EC495F37185B6762B754194F3F415F82628ED9884B658465FFEC83F5213EC15264C454CB4CB46106C21BD8031D11FBCEB50B7D897AA771748CC2E5A23FE99FA91347FA90C642B5410C2C4382B0A498F479AA94011959328EEB48E8222C5CA82930F5A4D40A7460A827C756C28E99A88440B0CA206241F4472C06CA74D48A5F565B8A85803E214F9A6CC92AB2B80BD16C0C5725A9C7BFC6067109600D8142A8BF681EE32B3D2BCBA3EA21AEFE0655FBE06C0C0C6B303C6B2EFAA6E8E6B29FBB86CFD13C6E143D7B104EC625A6AB2C782BB88D4929CCF7528AEE89947ECC33E5187BDE373C21F2AD26252163A48BDFEB74841987E797048B506C8FA6C60F431294AB03AE304E1E64A1489A05976355F44B6BDBAC7B81D2B003729F9CEAB9190165677C81644A5820D8A158DA62CE19657E947170472E67D87FC5C526B2DB8FCA728EF881198FF809B80BBB3C1652FB9A51C42AA89CE96844721A9DA7274D52050B106C7505497629962B747E117C2970948FA1E6BBEF069CF4DA83314083F57455D9B031639202351BBC4631B080F936A1E017810632BCC19B41AC0FC7939D5BC6562B074EED4267B9F6A6D110AE51F2B6D9B39F46061031573C5A10C2F23B6879338889E05EFDD4424820CD98298B59DBB720A101E8E62887303D5EFB4EA99288199B54A3CAA85476876D969B2FFA0B72754E85D3979C17155D784E3ED0A2874CBB9890B4BCF6334C8855F7AC45159A18E4F29FF5D8A5E5F34142C01E3FC53A2D07CC7F6C582718C434C062383BB60D4C54DD07A06D2642C8CA4920D5B7FA723F6F2540EAAB1385EAA17B4339B8B3CD08F60E5727045FA947BEC4C6E766B850F86B80D2B559507137234CD9856B7310AEF4F50034EBBD5336C026530B5FF525C277590D2DBC2DDC739F6B876472EB12CE233CCD402DDEF61523FD6FEE69A88F34A34C +sk = 47A7741316BE87861AEC518A9B38146B43AA54A98F47E242866B8D79F731D98C754B572A2A9170A7EB4B0D73B38D6665D1E43AF0B61AB95CB54879707805BD787913EE369D231C600B76949BF86366579AB62724CAA1BEABBB02FC945BF007CF57A225AFA67393CC58804A15016A12DFB90D5A52BE41F907B1F2C4FE93712F555B0AE896E85931020089642A23E4C38581D4C40A46AA8DDB3C26DB0E29FA5F7A12B6CA32CD2AB6B50327AD0DD8139AD83DCE676AB2DC0C2774C86A2C72A5FA2D4DCAB588A66D6551C040E91AE045698AC0A1DFB95048C545D08654C1B560384561AB07BD8C61182F99C79A2267C961AE66434321E8501D474AD84AA71286A948C5AD187232CF72576F167D63992F62D3423CE75577C2052EF84019404B0E1706BA704FE3D116A518293112B8B80708C094BDE829AC38E362A404BEB67026EA6782362035CAE099302C5660931CE31B93B665059633699EC44C28C2BD230B1942421F12388900081618BB29E315BEEAA090A06AC7FEDA567FD1A12D1A41EBA931C279ACDB875D9DDB7CD9A6ADBFB32239E843012A8CB91776775408316B056FBC42758772C1E53EC0344479C2791B837A6A34AA77710D35593A55E57572FA99711BBE5A83454BCA7990E834BA285A09AA11666CB2B2F39704904354687D0524888CF6461EF302139B042540138E322453619B3DD715B617230E08C4585478F9996798E9B47C712F82BA45857551EA4C79B4A0577938666403174E84585E684783D33F3B701420F66D48473FC6BB627B399E90697E760783A3E09D6531CC524568DEF8507F0437314488AF7376BF2A6BACF783B632197D8565F9456D04A8476DA8CD6C988D26A56D29479A2DBB85AFC18DC81A8611BC4ADAAAAA440471B530053ADB874DB67102B6A64FFCA8BF8487E18B2F7582B71FD78D85F819C24B892741A83E67585B6B1AE5AB6AD1F5CC02AB78D0ECBE01087F46AC9BFCA464A4B9CA817C3A1AF5CB0A6A3F1DD3A2EC06774E805E001B44C8194660A280D0D59BFEB35EBE9C943E626B98E488F8984275401BDC4959993345C38BC801B95D56BBB47A2B23F5F1223D5A0E2A827D4578948CFC5432627C9586275679202E3C970FCC980AF56757912080072A4AF234DD030EC481A6ED8030921691D6126839635C6B270497CA4A87D4BEF47CAC60752383712636752A4AA18AF13BB36EF445FE653628704E4DC2CADD62839F9842F9B2C264AB4FF648C59D15708F55AE4A396D5F4BC75D20603C03CDEC4252FACC579A0CBD1F64A734E8350F03ACEAA2734DE2B486F6B93C36AC11803E564070ABA97D2309078FB43768F98EF5D03B09FA10FFBB0BEB3B5FE01310065508100206A640B93DE87BD94A634907730E30800803B233B95D1CC7CCE49C08AB143734347F3459A5BE0230F9481D50B4B835A91736D6A7B351C8082A4D080967B43B0553835BF52943A380051F48C27823C5AA0B20B7B733DCB004B2A7819BEBA4B3FCB1F991789C2C57CA01B50523214AF309FDF421187492C411C14128744BF4A83599A30B86194473C2BC9222FB4BA34108689AA8065AA24FF3559A76F759768C81A8CC5AA2A6792F3033B2437B05068BED096475D9280BF34980B1C478681E53190EF7165DB8D7BE89E82411A5CF76795D545B69FEAA1A2065B7A5C00A50E6A0871393DD54AF62E9B858E3453D9A86BCCA62526837855324BA191F6C1914754CCFEE7CA3BE778FFED14646224D19AC50494A634392A7FAF6B502772820A61DE5BAB6BE04B7E2F2B8B05CCABB22CC4709A19CA96671B59F611350E4A5227503050FFA19C776B0BC26372049B8FE864E328798EC49C5E4128CB1498432061A5AF628EA5C8922845B07300C49E7A929F76232AC2AEF1CCE07D9C7E8BBCCE4F99F3B6B0B1912648784C69493C9E9201B8166C0725709BD56AF241834D278152B5A96CE480C9C31C9AF0A2711B58E8539B93037623DCB9561411D3C03C457F560B41CA23B2A7A8D66B1B686BA4566577A2A71448648AE3B988BD21829012D3CF3A18F4A596262A33579776B5A5B2C8A0E1A5C5E87C06CF9833C13269990719BEEB2A0EE333012B8C1ACB7321CCA98F086AA4DB73988CC49762CA541372566ABB0ED081CF6201B4EE8A17C45B8FF6046317648BEE9247B93B6013A405993B3DC543A4939519F942B982AA75743861387558FD01F3066AF48080751346618E25C2501979F70CBD722528C713E9BF1B891043DE54424F7022E45CC287B7A8138C842F1BCBAD18795A382439C5C470A91309FCB8149039D0435B9B80A0773778111134C104CC5E7BBC455FC0F4D157F2AFB40972C41FE85622825B5AC48C0E357CC2D953140015BEF5CAE1CD2BF7519398B610C9B191FA34767EE67880FD9AB6D5782350B176D3A7C318714F8208F71C80A1B189BF10827B763ACF096B49CC5C0B2A21C268A6C69500CE889785825438890A6E7E399EDE411D83A53BBF81FC0B0B472692DB25B69396337B2724F1425AEE7296FB29A399A16A13CE748995806CC5C64AC87783AF77BC05329BA849A086304EBAB9EDFC5435B55503C2A6F9B996D75359E963077F4A88EE2E259A6B97635A3BC8670B9FBB94AF2FA3046B51BEE299BAE327F1519CA170A1AA443CA323C1D336952A3D2342D481B10B4752E34C2F03866EE8C8508A77A4721C387054CD241BD54B8BE0BBA7BE18616D3B649A452123E347F8F52C0C5BA2D9FE7560AD88F2BB77622212DFF7474B2C250B0341D9CE6AE52DCBAC5D3B99807AF81744498031477B6178D4552D3E813483C3C6C4A73DD111E7874B7659B29DB53946538CF3B51BD53D63DCA591D16043469310C512CABC763B208A19099FBA9F82B445C05BDDEA259A0156940E3099D97928C8079BB7846B566B4770C904B75B430151B3198BCCE1830B9B8CD5381A1B255A880E49865297A801291F491201684C658D288EC63B8E6D423C4C9091F9552926253876629266969ACD09A8C896DDAC6BEE964832BC0952B98A95EE54422DA547AD9174503093835C74693047D782829F06327D11B6A646AE2E8703C3A6BFE9516E71915E7294A2D5A4EC8406792B55692C5591AF95D3E7376F6CCC58CAA2FF787A126193175162E6A084159E957D85383A0502BBBE091DA6A62A7EC4441453306F74C40C483ABE092A36A5876A60E1893C8C4FB3DBC946D781873D49CBAD7BA431EE820F6E0246B5548F045AD65B0670C341D3EDC40F331B59740AB0D167E02FA36CB23B10467084A63B9F1FACABC9C86E6511F8CC6928DE03913001927EC47E6B001264C9629343E10F945E4F9065E3985E8B4B3536B1AAAC91A02A7B701C961A939388F57B310C4652D7649D604A0A7006686C5C0F467486E5248DC24BE13F411FD524A6EFB276BD75875D5CF7A18482DEA41B4579F168486C3D87545B415EC495F37185B6762B754194F3F415F82628ED9884B658465FFEC83F5213EC15264C454CB4CB46106C21BD8031D11FBCEB50B7D897AA771748CC2E5A23FE99FA91347FA90C642B5410C2C4382B0A498F479AA94011959328EEB48E8222C5CA82930F5A4D40A7460A827C756C28E99A88440B0CA206241F4472C06CA74D48A5F565B8A85803E214F9A6CC92AB2B80BD16C0C5725A9C7BFC6067109600D8142A8BF681EE32B3D2BCBA3EA21AEFE0655FBE06C0C0C6B303C6B2EFAA6E8E6B29FBB86CFD13C6E143D7B104EC625A6AB2C782BB88D4929CCF7528AEE89947ECC33E5187BDE373C21F2AD26252163A48BDFEB74841987E797048B506C8FA6C60F431294AB03AE304E1E64A1489A05976355F44B6BDBAC7B81D2B003729F9CEAB9190165677C81644A5820D8A158DA62CE19657E947170472E67D87FC5C526B2DB8FCA728EF881198FF809B80BBB3C1652FB9A51C42AA89CE96844721A9DA7274D52050B106C7505497629962B747E117C2970948FA1E6BBEF069CF4DA83314083F57455D9B031639202351BBC4631B080F936A1E017810632BCC19B41AC0FC7939D5BC6562B074EED4267B9F6A6D110AE51F2B6D9B39F46061031573C5A10C2F23B6879338889E05EFDD4424820CD98298B59DBB720A101E8E62887303D5EFB4EA99288199B54A3CAA85476876D969B2FFA0B72754E85D3979C17155D784E3ED0A2874CBB9890B4BCF6334C8855F7AC45159A18E4F29FF5D8A5E5F34142C01E3FC53A2D07CC7F6C582718C434C062383BB60D4C54DD07A06D2642C8CA4920D5B7FA723F6F2540EAAB1385EAA17B4339B8B3CD08F60E5727045FA947BEC4C6E766B850F86B80D2B559507137234CD9856B7310AEF4F50034EBBD5336C026530B5FF525C277590D2DBC2DDC739F6B876472EB12CE233CCD402DDEF61523FD6FEE69A88F34A34C4092D5AFA2F038F879184F7344800EA49A63543BE9600BDC2B18420744588290173DBCD4922B8FA921DC24240B2173C2E65A839357F8E4A93F51E7DAED4C8C00 +encap_coins = 52081A3D33DD573D4554EB48C3F83E7961C3909B6053AE3765369B2BAE10CB8C +ct = D72DBE61C319D55838172E2C10D5197F538A3226A7834911543F0DF092C3AE9B79186D2E15C218FAE975585CFE55F18851C3C95EB1007498A35D081A437C499148F06A4D6A1769F4B076B1FC58BE8A1E3FBCBA4D53F723C466AC9F2006AA496306973381FCD4C1C974B1FC1F7B7B73C4D2D405E4045EB95E77164C60BC629C95F46CB37FF9E8DEA1D49E332D46101586345AAC419666895A99FECBA4414E15471FEF4DB6A1B5EDF1F510C5AA00BD833F052EA57D15A4DD61B5F3096A2724735960CFB98A863FDCD72ACD2831518E98490DC46231202DA0121AB066556BACFAACB0401D27104265F8D4C0037A5FFF748DD1298E8B4B9EE0DBB63396D6DFAC434ECA6B39D9DC52A0CC7B010C5728CF155C26CC76BC27B7F4CB22C112B2E454DE8B52E7C9718EF2A516DF9052F11EF1BBFDC546A532FE0F82EEE3084CDE219FC582709F463CB162817DB943931EE1B36C38DC9B5FFAD2FBC4245C437A6F7B67DCA3BDF6A3968BAAA88056A32316B6EA8D82488C512B292847B0AEFDEA0A204FF2DAAC139A04598C508C840F24AE023B2B9110179D412FB241BC2BC55B10F6BF87C02ECB8E04139A82B349F8B606BD61F2EEA045A86468EA1A44183BB7142B9F8DDBF5941DD27B52491BC76518ACB4ABC581740BCFE9623939B350518EEF03BAF4A94877ECDED2F4B8B2E8BF3FA0B42B25B08D00AEC00AE3A0A0317548536E39CE2E8D94CFE616EB5DD975DCD24D1F37A951DC7A39E961C82B96C47E4D23E76C86049A28434249F8597F74EA1913D9154CA28E9170744F93EDD85CACB47314012D87F883AC9CA8BC1DE124AF9BE2DE0D2965785FB55DE2A166E65CDE03D1A285909F543C7BF13C279F392BF59479D6CB75131447F858533409B887263DDEDBA7DDA711869D03998D5664DC25A748FC29A9FE62453ABFF1878ACBEC3772FB4B82FA076904DFE629074012A925310313F5CC1FFF141D00661610638FB894C7A5C9CF29BD9F4FF8D4096377D7C871E20A54E9A4D254C4407777F66F7D7771F1DAA77370A1463F067AA8205A6F5F0D5F6E4427EA6E47A76864952BE01A3483C34EB2BED6E73EDE138B310133D287ED7FBB4525D0213B28E2F39984F15E57C5F52FC5F02EA744F98DFBD1F8970149BDA884CFD2576842EC294047481D3DF51BDC7E1D1897F8CBB45505C296C77F958CD0B3D0A923E054B7E473637F8246A8F78BFDB6E0A0500781E084DAC398845F758B5BDF7791201F801AD6ED3CD511C24552FA41823F4AC391124CF7566751316F069BF032A21B1F23627C03B139560B4A67E8E8A237C7A79BB0D7CFB9B0015CD09BFEEC7A4AED4C8C1BC12BE88CB13A1EF23571CDDA4E8DDBEA9C15AE1BA13B50428BBB91603E313349511FE499CD12398AF0CA2347502359B233E183B014B19F8BDD0369A8683B1BD3CA179BC4E6377564160C160FD6E707811A0F2C18BBFE1302F2DDD99F4D8BA1EBF8C8EED82C941215D450D912CDE8862E3F240FE3936F5CD945C145B1C4D67EE0D2E916B0A24DD497E6CCB61DC557995EEC3DD124B993DCC19EFCFF8D0CCFEEAFA5962F271D3D50231C97DA0038CEC410DDECFB8186AF4863B8690EA7D6E6DE6D89BFDEB82B4E965E7A7911280A2A7AD52BB5570B5CD759192C024B1AA21AB1F87BE18101C546FD8E7F05269DF3DB939D6F5C6F895E69330DC9B67447AAF0D9B1153743CC767712BBEC90F77F8E17D00EECA8BBCFD8AA12957E413F9FDE329B4A313B36AE3749E741F0C1C66B425CEB56EE1FF9ED23D35E6DF558A775025A10C9C3918AD10D2F089D5F134003830960908E9F4886A090EE74C863C4626D9552298CBD7BB83F62A87E9012A1488F6C72E6E9DD7A3ABF86657948F52E5AEF7268EC3D97BA22401A8A50CCAC1279F59EE3C695DC464038007BFBB39CAC968D95D37E0B37FC4F4219D41D29C171E2AFD018F1EF6CB096B16D46F73DFA8A53AD428981486C19E4052837DD5C8AACAA52FAFA3BCD168A06A001F12CC0471725C2A6DCADFBA3C7FAA13FE432BF2C904DF8FA93C4669C570E4AEF27941F3610B6218F2E88585EFB323E1F55CA92B06E8C93EE55A135F96D7649AF77C9953CE58942AD7F1558A563B54A915AE51F0707F78BCD3DC01ACD5426DA92DDDE8AE5FBFA6D76F9FE1E40E94F0FAA033993F36792CF1B5CB2040EBF30159D232D5F38A4BD251BB17DBE475066EE6A8F4950BDE8C9 +ss = 5CC8E070B29143461E61A293B7002F019E96E4EC166F85AD5E971AF8DC271C49 + +count = 41 +keypair_coins = 47550E9EDACB6DDCE3D9AB81F6B61080DD4F2693854ACB05E0CCC7A4FB6390FB7E30DD3B9F9D66518A0525F030574C504AB3851B77857B70858C130CA20ECE35 +pk = 3C3830F0332F31F89EC458368A31CD2466203C2B510CD773D66C92CF2C95D7700D82B54FAAFC8931300F48563AA4CC976AD602D31C4B4B6C96C6F527A637231F1B94CC38767A608F44922A3F391B9E6C5F78A87BBF6CC19849AE619A2D84533441727E79E241EFCAB0A0EA361FEBABD3B76CAAA8955EC8B963DAAA8C8838AB71CE07276A78546859E21BA695953C8521A07BC8B4264BF1D3403EB8CBCED71753B6619A4309599C4ECD32826E6609D7D09F976C02DD4143DB7CCF9FF09365910757268F49141445B689A6DC0706C92FDD8382C63010F7A026ABF217CE572256360A9A4AB2B7ACB235F6929B8661DFD5BC4041813E657C95CA1A36535E97D6A56C7022DCA5CBF8D121F24AB6DF3002FD4B619B03CE2C4B57AB65732721901448B9C0136B1C72145B2B101FE1BB555AB2C0482CAF3A1CEDC926A007858E7A4ED9DC120EAA7E945275C4A847146C88A468AE23EC173CA76494732792D9A952178D83790B725CA63FE13FF7C5CF5096B3828B463AAA0EE913C390359C9E4346CDC063B8517DC5830A24E578F2053F33E5999FAC5603AB62EA785080BC39E0AA206C98C560597D219746737015A5668BA4F0B06F45A7385C753A854C4D818F78466B5B9421FB84B0BAD8B5B0CC3104BA8B9531B9033C52FE7C718AE81A3B06CED360A879D9CB3F73B8D6C09781462E6D7C13377006D95406329777E2651EF2803C69E984D4E719764CCC1307A64A1633E7516B2C5380C443A9BEA049C91CBAA7BC385B989D1453676ECAC1C2123F05E83AC0295C6E36AE6F0364CE5B35348037B7379BD2248AF8FBA3ACC293479B24CD0A2B0DD350B10676C93AB5A6F76CB0256DC64CB8A4F677D2940761E48E665461BF30C2E9702AC726AD1AA7CDA90C5655B9904AC1699921AC4A3A1981B566C6015016AC84E7964F64C0B5EAF69FD5460B9A17686952951EF9A04A55926BD482E669BC6B731AAD4465F9901337A0544F27ACE61841A5C2B0EFDB2E4B897BCBF1C032142B73F70CC0F7B509D6847F61BA4E209269ACCED24A0721CA6D9E634167622928B65447A5AAB30765EFB7C977A56020B56ABFB82449614DF3FBC118369E8AAB020CF989015696140B6A5C960DB2FCB5BE3C41091A6729C62547DB67307ACE42760689C32C2388310D1269915470286433C5624FEFE684A12957D90C8B61FB334BC56CFECCB229F01F0312A11449310E432E75037BA429ADB4507FB74A293823364F81B756673ADBDC063D030FBEC029569C8DB185A0EE8011000CC7B2118A046483FD975D9A0122FB0596AA8A6D9B99CE7303B1C8A4342696001167A742FB9374D4A20A8377E8A6495E21CA6EB106B2C680A48CA6C138673ED09897F4C731412EC536759A773A1E3AAB3B335301EB2501A5CB48C33A1E026E4BB25E2F867271E48CD48A029039519B296CEA8B04953BCF41B515429237E696503E9283CA4165355585BE315F20266438523D41543194AA6AA476BB2C229F2F12648A179E46C1696581607B4585C5341359AAB5C5F0B2CA96177010C892F8299042A880B9C281483EBF0A96ECD9CAC2F13BFFF4C87845B708C73404979AF7EAC68BB45F6B7C8597B756557A38B09178F2883E8C6397C74352AA32A49468ADF650441A73A2A0E7489FD7A42A9421C8366EC7B5A0BA8B0FE721190F825BF5CA839FCB22F425738E92B68608078316AF96526965331D16A41052F2154FAA17FA843A5E2278CD122AEE688924E57029A8902A03186BC562F99B2E72B9CF8E578BF28C2F5A86B47B4555D50A1512EBC131280964165F139B7A8860120CA684CEC34CEC402552EB3B9063B7D8266735CB1BE8A0B253C67710D80D5D1B128E38085D40CDC7E2CBF4B8C9E1861D2F41A79E1B49ACA0668E4B9312003986045415B194F0F583811B181FC15F8CB5788BF14762095BAB613F51F4351BF00F669102BD349B70C40549B75ECBE16394A3062C5316BCC4A1FF57CDC976950618C7D103248F4C4CC2087BCA854FDF6840AE98238C26656615143F0538C960888F32BCABE935732B6A5C24372B438449812E4F125B07B836B1E076F7E629FD3578132C70776635C5FC0D4B435CE2E301703C20EC130A25657EB394013924BB88090B1599373C5B7624D59D2F2C3B2D71A308A25092D5B0EB6BA81C5B0C650104B7DDD07164969A62466B80918873A4EA56CD80A8E559FB30F6CCE44F1F8FE60A +sk = 35E4451348CFB9A06F1836296178B6AF41A1C0196F26525831C081EA779E6B8C4B3F150AFE2963AA756968358BFCD47D76415ED4294F02A843F89B87D6803BAD504A9165B9BEDB0C946058965B64BBF953E719160B53552C100D251CC9C111837E0A7C4C043BA0777E53B39F658B41B5F8900D4721268A8AB868B15A12C3B8F41316DCBE117AB3A027B8FC2CBF3566569A130D6DB132DDCCC5EED69A392BAE8E4A7BD6C9708A48BADEBAA79FA1AC1E729EEE0399803A374D3733AE501F1A846CD2F5166DC31B4D53750BCCCF937B1CA43C3A6CD5601EEAC251F9AAB8B2489E22CEFF436F1142CCD1BB17DFC75DB6125A1A433325A5599FD23B49BBC3D1B9195B984303735F9F2646EFD050097AB23A8AA5569AB744A934C2991BA046CB012467D39C3936EBA9CFEC4268E1A0EEA559980133B4121F9D5A603E092C199818C057B7C841A7DD00AF2C0AB3637878A9EA90BF377874FA38BF290FEA6131345340857A1A53D4BDD9201B99FB628D975A91001F907A2E9AD37C9B99B8AF915070339FDF76125D9556B1716CB74A9F18092AFD887880526FD82CB002CA49E879C50E33AF2E747104674EB1F30859E3C22F3AAEBFD30FD672B6AB855928C4085130488540C8CBDB832AE25249F46B7178AF9769A4B359664BA48DA4A746C215C58AC2752E43835B5C2A9EF0A3FCA159D29038CD60CD60F5BF508521D3D59C4F083653264776501B4FC62337FC37562973A1F9BD9532B4BDB25C21597A11E17096B155CD43C76874C44F25C1AA1BBCEA897367536ECF4124FEB6CDF2360CD5A082AC03B5E94232DFB44E1F124FDF65A4BD03B16ED729884065D77135F1F730A7A91FC2EB43271C0B2BFB8E615C07DF54041917A95B0544E8513E8C6060D14C0FB802C0F2680051341960654F3594C9972C08664B7BD30B2F031827307B95FC525A2632C2456041B1286D6F175BC0B41942E8B8BE69BB364A11AB4CC199F20AEB516CED1ACC1F4B2B91B860331677290C643BB9A00B4B65644592C5CA5BB19B25D2A7080CC32B08910C137946A3FAB6C8E31A1E97A4735A5C0A239B073C6E056053CD6498117497870718D35235019B3EE6050DCAAC31A27167FE35CE57586C364C13BCC7587CA066C6E05673E2BA0186281D94843DF10BB3A93C05025C0C691A0C41B229A55B7B506724026C4F1B48313788A212B0C951783EC9447E64314E878734AB59401923ADA0586225C7A5C00A5F97BB76632DEC47C15C06C7C20090C790404B3044136C79F46181CB1123A7D3CF969B72F6CABE063A35774A60863267B1BA34B93A5D3DB25FECE84A02429A9D142ED897320BFCC114391BCC097A078B04BD9356113B3CB993C19384886DF182E37BA659D5B8BEE24445411E318CBD092B8F8E53C63BFA3896A2CDBDC66E27F25C83FA85C260A34FD6CFE6872172F1361AA125E6C5C6C902CDEC68708C14C175E910CF002AD647A317F78F52F76BAE006A3AA51780D37A00AA20C6A532281719C5AC88641A9D15549088B5A4DDA23F443335ABFC5C2F7C5BE2A142740CBFD612A83AF271AF0AACB43833B56295B51A885D798825C3A2C04B399C528530CA24117B6E762C7B6527B0509B5963B68560015DB4D489B5A93507E286539604CD0C35E6001127902A72BA3FB9D379833241BF849D2C11BF6DC5133C0C76E861909B375A930CAA5DD105E8D96DD8698864678ADF585C4EA072AE56990C25ADAC59AD0FA30B17D2A0BA16A444A16EAD3C9F679C333CC97D830106A91A54D6E074C463BCA12657BC91544D8A6E181C5B452229CA94BAFDD02375D5A96DE2B93030CFC93645C7282B082C29D4B466FEA3C28D2B16ECC6CC5E584D35E45C5EC7233C723C7B2275ABD41748A79F88797D9D03B8AE9B839EA935F5E13FF9E775AF239C7C448EAE6C7B407C42915C1C4CF3A1CB652B44B5ACB746A5B2B576FDA15FD1CB81396CC1A17752C2B5748E988649BC8CAA98C2C2F09CB01B1153A59CED58A76738072A1B6A5A68B1825A062A223CF83913D77B5BA226076C939DCBAAB624C712B51921B46098C48778EF46917C63A23A563A39D0C7D3BA5EF7B87857C8912A137F52026CB4628DBCC0AC53062B1B181821F65E4F622BABE9882A69487407B0A715A68C110C1A20339EB559D47318DD255F4FF758DB79BE3C3830F0332F31F89EC458368A31CD2466203C2B510CD773D66C92CF2C95D7700D82B54FAAFC8931300F48563AA4CC976AD602D31C4B4B6C96C6F527A637231F1B94CC38767A608F44922A3F391B9E6C5F78A87BBF6CC19849AE619A2D84533441727E79E241EFCAB0A0EA361FEBABD3B76CAAA8955EC8B963DAAA8C8838AB71CE07276A78546859E21BA695953C8521A07BC8B4264BF1D3403EB8CBCED71753B6619A4309599C4ECD32826E6609D7D09F976C02DD4143DB7CCF9FF09365910757268F49141445B689A6DC0706C92FDD8382C63010F7A026ABF217CE572256360A9A4AB2B7ACB235F6929B8661DFD5BC4041813E657C95CA1A36535E97D6A56C7022DCA5CBF8D121F24AB6DF3002FD4B619B03CE2C4B57AB65732721901448B9C0136B1C72145B2B101FE1BB555AB2C0482CAF3A1CEDC926A007858E7A4ED9DC120EAA7E945275C4A847146C88A468AE23EC173CA76494732792D9A952178D83790B725CA63FE13FF7C5CF5096B3828B463AAA0EE913C390359C9E4346CDC063B8517DC5830A24E578F2053F33E5999FAC5603AB62EA785080BC39E0AA206C98C560597D219746737015A5668BA4F0B06F45A7385C753A854C4D818F78466B5B9421FB84B0BAD8B5B0CC3104BA8B9531B9033C52FE7C718AE81A3B06CED360A879D9CB3F73B8D6C09781462E6D7C13377006D95406329777E2651EF2803C69E984D4E719764CCC1307A64A1633E7516B2C5380C443A9BEA049C91CBAA7BC385B989D1453676ECAC1C2123F05E83AC0295C6E36AE6F0364CE5B35348037B7379BD2248AF8FBA3ACC293479B24CD0A2B0DD350B10676C93AB5A6F76CB0256DC64CB8A4F677D2940761E48E665461BF30C2E9702AC726AD1AA7CDA90C5655B9904AC1699921AC4A3A1981B566C6015016AC84E7964F64C0B5EAF69FD5460B9A17686952951EF9A04A55926BD482E669BC6B731AAD4465F9901337A0544F27ACE61841A5C2B0EFDB2E4B897BCBF1C032142B73F70CC0F7B509D6847F61BA4E209269ACCED24A0721CA6D9E634167622928B65447A5AAB30765EFB7C977A56020B56ABFB82449614DF3FBC118369E8AAB020CF989015696140B6A5C960DB2FCB5BE3C41091A6729C62547DB67307ACE42760689C32C2388310D1269915470286433C5624FEFE684A12957D90C8B61FB334BC56CFECCB229F01F0312A11449310E432E75037BA429ADB4507FB74A293823364F81B756673ADBDC063D030FBEC029569C8DB185A0EE8011000CC7B2118A046483FD975D9A0122FB0596AA8A6D9B99CE7303B1C8A4342696001167A742FB9374D4A20A8377E8A6495E21CA6EB106B2C680A48CA6C138673ED09897F4C731412EC536759A773A1E3AAB3B335301EB2501A5CB48C33A1E026E4BB25E2F867271E48CD48A029039519B296CEA8B04953BCF41B515429237E696503E9283CA4165355585BE315F20266438523D41543194AA6AA476BB2C229F2F12648A179E46C1696581607B4585C5341359AAB5C5F0B2CA96177010C892F8299042A880B9C281483EBF0A96ECD9CAC2F13BFFF4C87845B708C73404979AF7EAC68BB45F6B7C8597B756557A38B09178F2883E8C6397C74352AA32A49468ADF650441A73A2A0E7489FD7A42A9421C8366EC7B5A0BA8B0FE721190F825BF5CA839FCB22F425738E92B68608078316AF96526965331D16A41052F2154FAA17FA843A5E2278CD122AEE688924E57029A8902A03186BC562F99B2E72B9CF8E578BF28C2F5A86B47B4555D50A1512EBC131280964165F139B7A8860120CA684CEC34CEC402552EB3B9063B7D8266735CB1BE8A0B253C67710D80D5D1B128E38085D40CDC7E2CBF4B8C9E1861D2F41A79E1B49ACA0668E4B9312003986045415B194F0F583811B181FC15F8CB5788BF14762095BAB613F51F4351BF00F669102BD349B70C40549B75ECBE16394A3062C5316BCC4A1FF57CDC976950618C7D103248F4C4CC2087BCA854FDF6840AE98238C26656615143F0538C960888F32BCABE935732B6A5C24372B438449812E4F125B07B836B1E076F7E629FD3578132C70776635C5FC0D4B435CE2E301703C20EC130A25657EB394013924BB88090B1599373C5B7624D59D2F2C3B2D71A308A25092D5B0EB6BA81C5B0C650104B7DDD07164969A62466B80918873A4EA56CD80A8E559FB30F6CCE44F1F8FE60AAD7166F31B2650D125C8EF23B5825FE11AFE25D0CDA306FA6C7A824B4C2D31D47E30DD3B9F9D66518A0525F030574C504AB3851B77857B70858C130CA20ECE35 +encap_coins = 6A56EA6B25105666B70C77C9027468B84E2B069070EF3380403066430733575A +ct = 34CF26787517E5522CCC1476BDC8AEB8E180058ECEDC6A6849A1BE240354A1698BDEF4BD7582E10F7D319951D8D1FC607D2727F809A6745274653ACA179DE23C2912B17D4103012BCF13938466030944BD9047FE7ACC07FB1DC9DB72BAB35B91F40A47796FE633D5C7034E550859482CC1417CA33F69314E281EFF7313C105222E69E0963E795882A95CAC4FA946370E500F7A4ED3910095E9F4E710C9674658BCC96BE74C91886FA3A361CBCA5E3BF504E6D02B11CAD06660CE24CEDB94144991483A63ED489835BD93B702486F9D0BC94EA7CE2491C492511EDE6AA674D10FD43772DFDB739AC5D2AC04E735428B185C9FA5749FFE6D987955427F86E68B6C4FB20109279F4C01E84147680269C704F71A1B6D22303E26B5DF11735CFD05A15385293CFDD1EEE24541B9DD25A412EC6BD4468D57816A3D40D9C636F8F579BEAA952159053DA4352621366E7924A65938F752542286EF33472CBC6244523CD0B928971427879C0414B281FDBA1D24723A865BCD7578324B34769F8D1FEF6D10706E1F9D8054B505EC927D9C1B8D6D0F9435FF283C9EB75B23BDC0F9637AA6B8CC96B019541A0BF158F53B5D4243613271BD5B19CB26E5ED3610FC160FDC6BCB77A0186699CA8807537DBA1E074D2D6553B14CE846BD00EC97FC958B201B69AEE11EA8391EA868F08F643DD22C0CB98D84692CE365B4542B20EE9C2EFB15BB4AF3E65C9C1750F52B36DE254F9B8BBFA33303E67673AE8A1F6827AE14069657396147DC895E0DA4CB792CCFBFB07E181E8400E5DADCBB72E084DAD2F73D08EE7E818A919587C9ACA1402587CA118DC66F31CE2D3FEC56B7273671BD7FACBAE262C59C88C5B473FDB737806F58CD154483D0988FE84027E2E8EF611BFEA28C0C0E1353938321DE7B391661F1AD1088F2FC2E651FE59EF4D2B7D0BAB684EEB04D827B85B02D2AAC9ADBCCA661F0A1FA38723638B666A8B0C96924C3AE31397CF2D758E4B67983DAC114CDE18D6CE81B0474E71D002EEF665F383A13A42F79777FC11FD28A30934DD41E3F774A3AAFA5D4C6F8B30240B87D9E8280EDC3FA44C007675B61510983F0061CED93BEFEED09D51607D5F2BA268656B8169FFA29DDBA6670E643674A150CBFFF95DF964147221BF5BDEFCA0CDC4EF7117F765073390C07CA08A1C9149B0DC124CA746DF39BCEB4B7E8C6A805865A810076E734B40A01A08A6349D950033004332105C46B54EC4C4CDE4FE7532A9DFF694C2A2E4638132475BBCA48A2629ABBEF21AC0565CA762904C0ED8422754A122C69CFB96818686A79D037B33F095E327CE7523B541EF01FC06C7BA2642780BA5449EA76CF858D13BB30B847E2346579CEEF08373201E5050515D2858BA5EEEC3ABF46AE34240E9EB12D6951BB75632776C02CA68183F749ADAB6B78FDB435463B4C6B78113CD41DA67776396A2AB14D0945500B0B2C8579BD9F9B5565858F76A397060CA02DEEB3615ACF6885B6AC98FE38DFE0B7A9177041E57AD77910526D8C80C5DCDE3685E031C2844C7F271C954C0F6D306546B7765A163223E9E22DEC30BAB8D0D430EFF17EE816E3B23D9A4C6B09FA7E2D4A2E84E438093F945C214FBF1715C2D4072AB6D4C59F96087C8338A49FE2671056311D703879BB89999402626209554EA3C6473BE2CA1EAC2FFBBDD800DC3D3304B639B5A7F635BC57E8E22781D7D3A799984695C66551DFF21EE8C048A15329F53999ED9673AAD9EB71ACCBE8406E163CBC21A3BF2691E43DE1E522AD5082B5DAE9CCF70F5D57720FB52278FC35AF3615680A0E670C142F73DEF16395CC40118EB9B85E47B4A233353714866370DCFDD00481CBB7EC75A47A622823E4B90D3E02B4ECD3DA0E7997326D32D199D474E24923049DD20EA7674570666096993E419EEA7189237C21A3C3E61FDB73B15872E0C7746EA881FEB0DB4801C49AD54CCA633A7CC4878F6C51030477FC9E1D3F43751D62E10CD6E046C0E9CC7232D39B3340DC98A0D54FD14293DAFB4FAC316802871A5994D1747AFB61CA7D8F1BD920B82BE7B327A8AD8C8ACAA130B84FF0A165240E8ECFD2D0E2B4DEEA091915D5BCACC7CE6F6C49A8E14FAA0ED8F5E0AEC3903405A57749F448D66969DFD9BF3610280BD45AF6B3C269EAD44F25835840D344FFA609073BCBBE6DD8B7AF956980AFF0005CC98877304BBB0B5D04125B5601665461D235 +ss = E6282E0E2CA5D00E092C41487EB4DA70F733EA6185571F5B162B47632C10AF39 + +count = 42 +keypair_coins = 610AFB64BE8CC1DF288CFB016EE2F44C6C07113DE7F6FEE071FE0C3FE31C621505913FFC8D7FB91C97DC1E0BEA9DC9955FA28B3CC0B7415C192F81912D70516A +pk = A99BA278867903F11DCE73CE433C475E3B7E0B3C65921B3C842B142E139FE1D15EFE13B7BC3625177282F4A92FF5363027901E2ECBCA0DFB928E86BB51FA7C6A2CA93C5B893855703CA521BE85AF4651C52AB82006C95FDE5779C10CA73866911A4C48088742B8B2243F629FBEA924B7D8968BFA6200361A9C344A45466DE00B7BF0E5B78DABB1BAC3278144A94B27193B2C8214EC97527931DD04C2E43B4C64753D8C494041683168447EA5A49944D161A9290B4FF328E4FCB2427292A01367C713806B37CF92649009C09416A915B84C23EFDC41D7E7859DC81276042357663C0BB68282CB71D891177148A17C315B7CDAA9AFF35B4A4369E83453097B88D61395DA62431F19A7C8427A2CB15EEFD30B810BB74342A306B1BF26A0490AF566F5A17885BAA8F4A60E1C9432CD02A15915CBC8D574CFB23399CA1D93B95BB1E7A68A798A9B9A6D4DC92BF1BB84BA1109DB395DC4B59F1931087E4524A090CCD037BE1BE6237A6483AE1A21B859BEDC7A5A57A46FC02B13F5A446F4997B310B14C734160C7A19A36507876CB4C0CB2BEF3BBC5D26281F15CA5D7654DE307B20F9B3EBE90DFC074050E67108534832C95E55E57EA6FC6A050461CDB87F0AEC7C3B069358DB0784A9C7DC25CB6F6236AD96784759277F660C49130A8ED9377F85394CA90E1D59467EF98EB555956755AA51127A26F498F3A6A2D2F972357B0B40C1254F143042199BB380AD86A04C1A8A1C4FC68166606152C5950CA8B0B3B86D99167727F623927963770A1423A5CBC9629F248409183CB5A0D99E22C915991C7EC3E5288400ADD0C355A3F94E7A4962A513B05AF268E31C7D1C4B3FE0F0B8BE500812BCB66FFA0FCFE66928DC86D769CA1F4095EA3124C5E1C7BE5C71CA7ABC0EC76B7B0B572895C7E923BE57F39EB0F430C1703A0B7B86A691935824299062C5BF927FD5573E413552A7731453171C945748E9943429DA1C00588742C8C2ACBACE1EC1A290E3830006610D21B945647180075194DB0170426087112764BC23718BAC96281CED834396CC8D4D003D3246641577BD11A59A765001215760D8122EEF819F2D1416F998C7A8A080718A11774072F3A563A0581B92E5AA24EC05EC9004D578438313913B176E783C01E4D313648123B9DB69D9E7C648D2CBFD42587EF1A2DAE065FC359951CA56F8253B27B3878074BF58D3B51CC7BAFE7BB9CF818B938843F78AC68EF8349F37468E81C06044AD9A051585C34D33D76CB8ECAB0C0886CFEA5C725B3013C048DB0B7EFE3792C6777A0B8413481AA0CE5B58228479F90C941517631319415DD52EADC45FFA383F149879CF698F3C7990848353BD5B8E6D7333067AC67F5903163A9F45D681F0C637A5F53F7EC0CD30C270E3B78EE4D575A3040B71C30106C6831DAB1F2C8515FA8A6C5477C311E7023D779365466228AA3D1FC2B819B51E0771C989720946AA19E6B28A463577214C58BD35237C33573A75A11CC1B5DD8595420CB87F9063BB7247D88789F40198A0395C001877CC35A5A5171E3360781BC3588930827339C24233747D9B5D96F6A31712CFD71CB962B7A1974C3ED85C05A525A21AAC83AF06C68136CC9BB8B7D74216DA468D78F80153BB0CD2B2316DC975ED6C09B6384AD49735F1AC99E03C95E8EBC851F8B24AA65DF8117D8312093BB3363D02C72F727F3371C2C8491DD611AB24765FA2665F612517D1D66882056903A67FD4173575166255609A54A3245D74B46C075C04B702AC4BC88E71B757907091C228B0182E10305B7C1CAB0DF3447A93219DF5390A0302F99A0AE8BC51108C7C3397590F4B241165414952840303606E6C1B98755264B01280A8CAEEEC25C0818840D494BC436279A939D96C6F9160A01233AFBD576F46359B2C75097BF15C37047F31A186B7BACBF23AABE9B7AB649938B08687A4B1734A834D3FA62A8A7A180CCA4FD0A74C32A76DB42009DACA9AD0C3A6F8A06699630F56A6C793927D155B229269B1E3C94E0D23BE1EE3121E4B638216C5B722BA3AA3129DD49BF1F93E78D16D1E820485527564405DF9FC6574B7809A8BC289A02EA0E455A3A7813C195921194756558A6D481FF86A0DE4DC39A347CA01562454F589F953837A256CB2BA49F200A7D1B22EF801109E2A45E28C57E201354BE551E351A73036F4B363137340EFA7764C439F68D3C8E0723683AA8254A66284F447 +sk = 03A941A829C025261F44172ACF806BEA5B216B58BAB845328C36CB925A5169D6B1FF141BA44010FF2C1A446113C443C6D98CA879E673CCCB84D5519067619EDF59C23798B9B6BBCDC0D49DF5F4B21563AE54E287DCCCBE4C53C62918A6A213C460EB8C92377CB57A1B6D6467D40297FB90C6907B6BE5B03DB314C3AD5B2F46999743EC7FF0B055AF2B2753695395C6157C60115E183DDA398D136806B7017BB4FB4F36B7653BD17CABD1BFFEECBAF2EAB65B853C710820818B05AFB86388F327FEA6C3562A027C610AFD9C0BBB23A571489120C2BAA0D7AEFFD196B2DC8B40D4016FDA16062512A64462FE806D5959C49DFC0C9B2955E6480B7AF0011EDB2D44C6A43D08B5F469656CB9396C9C640BB077CC24AC0F293BAB4CBADD998ECDBA31534408B74420CB432826CB5DC8224C48159626053096063841153F723761F83315629C945778A24F826A28A90A5854BA7E80C48E44929EECA17E28304BABCD0AF4198962A045292F09AB5B7197A685A67D07EC9769B69E64EA1457FB8E1A70B23AC4A797132B021244944143E936C6E5D840494B674FDC9AEE84A091175F8E3121150B1375E028D0AB6B709A443F14C56AB67E3A8721A4B698EAC9615FA12C0E5277E4A412508446ED4999687AC5AC626CCF5468F3E944B8D099FDC319337C85E5024A0798556CFABFD47A40146691D32C0F179B5BB3C3088F2CB29E2B961B630610D1528FAB952DC75D23339C26A38F68421C12C2360F369ABCE128CD64551CA29455E02AEC7C359CF9182F5642F1BAB42814AEA8F2844AF15670421E0E113063B4B8C614487F6B6236DCB21E48613C0635E5F6A6A6E070FB665756F98156C65A6F407E1014BD6540A92E8A09EF6C944DB876250B951D16332251C5BB6B79F88928ADF6BEF819A241068B08337136B8BDC33476FDDB0292B68EDE75490DB193E267BBF2F8459FABB17D10BEF7018AE895995200453065AD45457E3E86A12C554DB3617A99613767598031C86BD5815585444DFA41CBE068034FC0A1CC2636D010230870776D2645DB640B409A292ACC909AAA11D0D05A1B1469EA2673020BB7EBC7381190C271E2CF73D37F61F12C8389843B0540117C7AB924C140D1409F701AB0C0596103A1AEF3C93A2A79BE19C7870ABE83232A7DE265A1A1280D30490FF50C414A006D8A403C50948DA4B1054B18BE35A8F9252079C5ACB2104BD42CCB51617839E07380FB3A62B3A5080295BCCA410215AB5C30A89B727363185363027BB1A6B09FE83233D79E4527371ECC8B879C81A25B3E6E088D2E786976396EF8D6C383495B52EB69BB718DD7FACF5F120303EA259FB2BC32A5269AB45E6BD8AB9F9456A68B869A4C13A0B6C98DD1BF276572EFC9A31591ACB33B9945919FD20495DB284BD4BA7C66620754E58396C0A191F20304B545AA2279CBE62D08EB4C82E60569598147F9910EF70ABF792D375420BB999E4A9CC28DB0193A124D0CC78807A54D13933B25B350A16C842E4B31337BC7734104FE564C20F27ED6AB800717BAAC4A9C954C6EC5238BCDF309C6FC497A6A9B9E4973D7D44EA53B90DB26912AC7796C327D24D3705DB5BD0266B17B145FD8CA77624C8ECCAC1C209073B2A6399CC7704D25452A2A0DD6002020E51B0AE800F9E93250591BC01B7274927DA637823CC69D3AB59F7A0194B5B653EF0A001CBB5D28284576BB0670AA0E6F94C06F7B2B0D6904D0615FD1831CD6800BA590816E06022B0502D165340C38BF824A35D6C227DB3680A3C1964C4727AEC40384D0C413731E85F2224BC9CD4FA24E93D0439EE97C9B0852AFF733C2974FD6E4241B1A46A86A09B48A59ACD13CACF617ADF9B0BF835C20E9B05B8B58A5218587AB1D50800CBFC315C1814A8203C442158790515D83BA576C25CE9EB0539B26ACCF471D299B3CEE6601BF711A1BC913C0F88F478AB072CAC1541C892E314D733350C0566385A04BD8D759B6B81BA0370069D031E352266FBC8E9625C373C0C4C3A600F37C5576E678EDE07FE17609C774BC28F2C7D7889DBDA78B0B041ACABC1997E93E1682393FC655DAF227BE808D9B395DDB659DAE366C87B7B07F072B7FD9169474CE4FD0578952B4E926ABB7E039D04CBC94371C0C967394A95AADA9594A8CB4D5D1945ADA7BB18A5E52CCC5EA5672A99BA278867903F11DCE73CE433C475E3B7E0B3C65921B3C842B142E139FE1D15EFE13B7BC3625177282F4A92FF5363027901E2ECBCA0DFB928E86BB51FA7C6A2CA93C5B893855703CA521BE85AF4651C52AB82006C95FDE5779C10CA73866911A4C48088742B8B2243F629FBEA924B7D8968BFA6200361A9C344A45466DE00B7BF0E5B78DABB1BAC3278144A94B27193B2C8214EC97527931DD04C2E43B4C64753D8C494041683168447EA5A49944D161A9290B4FF328E4FCB2427292A01367C713806B37CF92649009C09416A915B84C23EFDC41D7E7859DC81276042357663C0BB68282CB71D891177148A17C315B7CDAA9AFF35B4A4369E83453097B88D61395DA62431F19A7C8427A2CB15EEFD30B810BB74342A306B1BF26A0490AF566F5A17885BAA8F4A60E1C9432CD02A15915CBC8D574CFB23399CA1D93B95BB1E7A68A798A9B9A6D4DC92BF1BB84BA1109DB395DC4B59F1931087E4524A090CCD037BE1BE6237A6483AE1A21B859BEDC7A5A57A46FC02B13F5A446F4997B310B14C734160C7A19A36507876CB4C0CB2BEF3BBC5D26281F15CA5D7654DE307B20F9B3EBE90DFC074050E67108534832C95E55E57EA6FC6A050461CDB87F0AEC7C3B069358DB0784A9C7DC25CB6F6236AD96784759277F660C49130A8ED9377F85394CA90E1D59467EF98EB555956755AA51127A26F498F3A6A2D2F972357B0B40C1254F143042199BB380AD86A04C1A8A1C4FC68166606152C5950CA8B0B3B86D99167727F623927963770A1423A5CBC9629F248409183CB5A0D99E22C915991C7EC3E5288400ADD0C355A3F94E7A4962A513B05AF268E31C7D1C4B3FE0F0B8BE500812BCB66FFA0FCFE66928DC86D769CA1F4095EA3124C5E1C7BE5C71CA7ABC0EC76B7B0B572895C7E923BE57F39EB0F430C1703A0B7B86A691935824299062C5BF927FD5573E413552A7731453171C945748E9943429DA1C00588742C8C2ACBACE1EC1A290E3830006610D21B945647180075194DB0170426087112764BC23718BAC96281CED834396CC8D4D003D3246641577BD11A59A765001215760D8122EEF819F2D1416F998C7A8A080718A11774072F3A563A0581B92E5AA24EC05EC9004D578438313913B176E783C01E4D313648123B9DB69D9E7C648D2CBFD42587EF1A2DAE065FC359951CA56F8253B27B3878074BF58D3B51CC7BAFE7BB9CF818B938843F78AC68EF8349F37468E81C06044AD9A051585C34D33D76CB8ECAB0C0886CFEA5C725B3013C048DB0B7EFE3792C6777A0B8413481AA0CE5B58228479F90C941517631319415DD52EADC45FFA383F149879CF698F3C7990848353BD5B8E6D7333067AC67F5903163A9F45D681F0C637A5F53F7EC0CD30C270E3B78EE4D575A3040B71C30106C6831DAB1F2C8515FA8A6C5477C311E7023D779365466228AA3D1FC2B819B51E0771C989720946AA19E6B28A463577214C58BD35237C33573A75A11CC1B5DD8595420CB87F9063BB7247D88789F40198A0395C001877CC35A5A5171E3360781BC3588930827339C24233747D9B5D96F6A31712CFD71CB962B7A1974C3ED85C05A525A21AAC83AF06C68136CC9BB8B7D74216DA468D78F80153BB0CD2B2316DC975ED6C09B6384AD49735F1AC99E03C95E8EBC851F8B24AA65DF8117D8312093BB3363D02C72F727F3371C2C8491DD611AB24765FA2665F612517D1D66882056903A67FD4173575166255609A54A3245D74B46C075C04B702AC4BC88E71B757907091C228B0182E10305B7C1CAB0DF3447A93219DF5390A0302F99A0AE8BC51108C7C3397590F4B241165414952840303606E6C1B98755264B01280A8CAEEEC25C0818840D494BC436279A939D96C6F9160A01233AFBD576F46359B2C75097BF15C37047F31A186B7BACBF23AABE9B7AB649938B08687A4B1734A834D3FA62A8A7A180CCA4FD0A74C32A76DB42009DACA9AD0C3A6F8A06699630F56A6C793927D155B229269B1E3C94E0D23BE1EE3121E4B638216C5B722BA3AA3129DD49BF1F93E78D16D1E820485527564405DF9FC6574B7809A8BC289A02EA0E455A3A7813C195921194756558A6D481FF86A0DE4DC39A347CA01562454F589F953837A256CB2BA49F200A7D1B22EF801109E2A45E28C57E201354BE551E351A73036F4B363137340EFA7764C439F68D3C8E0723683AA8254A66284F44737933CFD8C0E61085F2AE264D85C4AE05F8BD40BF29976C6D52E4F1C7FF709CC05913FFC8D7FB91C97DC1E0BEA9DC9955FA28B3CC0B7415C192F81912D70516A +encap_coins = E75C36E2C2F58F47597A06FF4BE1CACA2984C889E08A9C9D4B2831D6A6EC17E1 +ct = 1E1F4437A90F510D20823E989547FFD3CE3589E13926A255FF0F63763812A9C613911A32CCC9B7C760801F101AD6E16BC5592E8E8CB28977597229577F8094ECF800A4BE04BF2655D26AEE456B407631107497675733781D9DF8C2CE63FA9134393FE7CB3370872A9C481C3DB84DC1E5879D495CC9B9F1015D516D8C6DECCACA0E8A599A3589FCD43CB93E33F87FE38628C481904AB9AA991142A95EF30708805233D4EDF4DD03AD3D49DF8B62019B6E0F5657203D4F8AEB840B64F7A07A7B6A1076E9F0824C7034EF6C11EDC2CA24E7071363BBAE5E14E5CBBFDF605198914CCA842E073C4691220B06C5446BF45CF7A3A789926C130E294ED4CC3A4E94464DD0E7CA1DBB57118B2C74FE10B6550907E593C8BA39872E6C9B9D76E96807CB34741BF5A13893AAC9D1567731896A12F157CDF2B7FE8F06A9218A64B60B053A1828C7A5AB7687994462C09AF8D0BB549070BA6B4B14F51C5B3A9F9EF8558745640F1FB318CE9C2C01C492B76DC32E7C27304B61C98FAB163C154914136C27E30786728CED381B18C89CEB08BE0A14B5128B56CE240E14714579DBD48714A0B26EC5AD0082DA92E76839F79900713733F0EA4B08B4D971874E18161F6501873C2521E632EF8C789FCD705E60FA52FFBA643A9F2362E50A0BAA554ED4D4A4A23C3F86578895C991E9D6831C126DD81EBBC6600BC2928051619478CF215D0B4F5A1EDA9FD5AE17FA5017CA2F548E183B45D3338D625B94326C6583D20B4855E01792AE90AE1DA8C6B200940C538F45503C0D3702BA6A1FC34012921CFD3B75093589C32CFB08194849E38E824FFDAE8BDED31DB89D7B1FA62CF445C7F6F6948FAE53FC4D9B1134D9BA9DC8EE92197B04DFE432E7E54E1F370E713283379399D1327B813509DF24C7F5AD3DBE086889696FE5AE7FA53C1FCBA3E58A93C2CD1A3E7DED6049408C6E1D1A0B0C9052698B7E32B068B003A64095130FA418BDF5ECF5759843FF2A23333B2FA88931C8E355D183DAE2513EC099912EA89510B03A5197ABE9DC8ED0064B4B9914248AC6F60D1720FC9BC4DB3DF880C178B353FCD1EBCCB6651A81413EF8456076BF845E62343D30CD425F90E39ACDAF6EE262618958CEBE497417687624ABB8FFFFB6129E43B6CA43E5FACF21E64C970E5671BC54876D69BB95B025FFA32BAC7431175BBCF161BCD94A5DC332E403009DAA140F87CA39E19C630402B05649344B04848A88612AA63B6CB81A9572CDA5DD909C43E86C7C802130902F700A68E9174546B81A73DB1CF784F477736B26350F2397BB44E5FDD0265609543762D5F8CBCBE5A3FE91B1D911482F805C5E0370696BD7857CDF5F3731906036AA44FF299EA8DD3A87D59F9278E6F0581DA6C5E2C1042440DE3C043FBBC425009B90835858AC06288D69B169290696B91AF4D976278EAE1A55936CC8539DEB268DF9E7D2AF1BD869B41A2C77896B80FEBBC89BFCC76A0D453BCB14249EB61CB84707B9C897894E6A1200031E5C0AB0DD39407D4D9CEF304ED56DEF7490EA8D93320CE705390BFF5643C2D2A8304F5212B21B541A8C75F1B7CA1D3956037C12E7510E7028C96FD5FFF864A561E8076263E72EC6913E5D928A62D2756631D3C207604D712D56D508C587FAC0F38566AE04013AFAC3AC6E907325FEB4D625241BB453E95384CC30BD893791A53185FA856376F019D5179C0949862BFB11F34E37E3CC65818B3623F68503F2CB5FF89EA6A304001EE58B39553CBF06A337D21F86BA06182DD8A4D5840E8EB005C0A60E57E2AC5B32E326C5349B4579D1A988D069661B6EA232F58197648AE658BFE7D9D7B71C2E96BA08581CD57E71A1861F74C549418E61D06B551CF9A0EF71EB90034E6F59A14DC6DD7EEF2846F22E7749139F25613EB04737C3F7732E9A85C5A73F7CC9197DB3E63A3BE846CA7E04776EEEE1319C8C44C65C71558026BC6D51C6A9A5F873109AE71D60BDD61E133C28C985D6A8B7D53B13C9962D3ABD5C89AA86CF3EFCEB8479A80C98626AAAFFF76B259EC35E9DC52E604C78BAAA9F9F57361B61BE715C01013B95B200869CCE59B2BFE5BC00746EF37A8DB171E85CCDB339FEB7E08C121E8FBEE764911A297C0D71FBAF477BB8CC4A352B8A0DD7AD59DC7E95E49B971400C0DC098E66054A926302C6187D52A2DF0AE3E9F125FAD746B77C9D65B9AE44E5DB31D096C598B61622F742 +ss = 9598FE2A55C73A7AABF3381673FB74CA60F4CF8DD057F818240037A0554B820A + +count = 43 +keypair_coins = E1953800ACAA85AC02A906C72CB8E8D704E8D27820345F88F71E89C1F549AFCC97C65A12D87432F475509F11E0884FB51B5D970C1B6D2C87C70590CF41C16B4F +pk = F44A0E9B691F0A718F02246FC688A248E3C2F387A55C463F0D976AF9A2399CD4845C22516E0B3C882625AA609B64195C90925AFDEB2901075565DB2562B11D2C07C8D0D94122462C25A794DA3639879A409256018F7418AF91608B63AB222069E31C2AC0233E8F73BA8BE2B0AC0463C9BC79CB048AE517295E8A01D2E16437088D20168F135C4D63B41021060A557003BCC935C6C97B3859176807B5637659F1B5BC4B488D4E5657E9F7B37C320B5DF12BF31330AD27A7F205907D6614949BC97F3C1E94F21DD235606602A5C13254F43AC1BCA2A6269BC5E6A96C31E30C972067A6030665CA7B05A700C53C560860A11371505457196CB33152B10F9B99518D4CA6433724A93219DB1BC834499A019C02665C650C7C0D22724BDC0BB852C9523D1A9E5B06570A6610BD1175A74B869CCA729E8C17ED5101D43C814FB18838F840884A4159BAC515F7B5A637B703385E5F7115CD187E2964BE55828A33656EF0384896525D4511AA2FC40046729F54ACC768353B8001201BF508B5904E3603ABE5B426DFB77F213C54B443B7D5CA6998291B56C379AD5216056198BF5617E58977A0490C308BB5A6873AB980A1364B1D25F0B01C3ACF3221528C942FDC83A9A9A60D819C015FE06D2C684194C56A98C286B2122EA3FB9B18D003CF91453FD09940F7722999AF0645B67179BB11B35A4CC56C2FC1C581F168F1918983EA00693471F6E33144C642DC5A4C28B01EF514449213A4E4749F0B2C40E6E06052D6870DAC120CFC54ABA5143D8BA4FDFB946AF9C90F99CA2EB158F001003517B9AA7A1306973DEB713671A16BA714245BA96723E3453718A3BCA2AE2C1B4D0265102ED901B3A1B6B6EC639A8900EAF67B5E500876137122A5284CF52DE9881352770A9D20AF5AA59C71189694590C549831021AA911948E550765F8897671621E5D3771F1263F87220C0F0B28804726C112A7756C85DCCB8A6FFA3969BC618A83AF5C1CAF2DE9BA439AA4D4D0021633C9744440F0F9A309D1467CCA4D67A917198BB873F5569D8C8B5718A5B65A7457F55E3D1BC71F4A62006D29FDCB62526714CAD2CA04FBC28983B54B6B037436917DA15608759ABBC316E8359A26C55E7DF179A74C39269C02CAEA7E61CA571DC771E7679E611B9EDA31BEF53B11E3524EA3F600FDAB967FC8A23B0B73407738955B20B76C75B971C4C1105B9C5A3557D57AF4DB036454A22093A570F0BB10038BB3A46A0C92866C707C28A91B9E6172314408DCD3B051F363775842274988340165887A027BFB629847B9271A5F66C15C286537C76C31F62B45E2995F0AA30DFCAA6BF2883D1DECA9B7B2029515C564D3B970143C29956CEFF588E99B8025A2343EFA5233361BB2332AFEA2499656203CB712AC8CAE4CE1489DF2BD9223C3C65737C101C0DC5C2BFD83444A29C64D8812CD69A68F004D2596033E903D744ABCB688AE65B0371D711B187B62E6C755F2F947D828446FB45F30C42DA615B3C5F682F2157E940691BA674571573647C09225748416529653845A6944859DC3C62E7C0A9DA78A4EA492F57386EC31B0C8730206E5ADBBB0253113A173E20313610FBF696803718A0D393E7CE4165E004A450825D8935F7738AA7C6A1226640F3CF40FFA6644DAE2280043C501635550BC76E8348D133A55CD73001FA3197C1A071BF30A1FF907813AA8B8986449918C08164817720F30E44828010AA6A11A378261E8B141D52779F73927D7F505DD99C7A43A2DB1197BA33A2950C280549564733706009185A493B59BBA67BD511E4DC55A4F458D9B1003B90A30AA87874FD83707F1CFAF11A4B9088BD41C8D69BCB77853B396C15E24948722943F0E28C4E896C56F7C9D3974144D43A4765392BDB0C2EF5BC72B27B11FF57D03A8214DE0520DFCB3093B5AC72003C615C04F64693F68C0D17CBC34F8CB1EA068D681C917315836005DCB423C0695AD19A06801847E947B045E7B78C9728CD321579EA31E5D7633B121884EF65095354DFE63891945983D54CEA2583AE4B64F54065CB5631272E1149C151ED0715E93A30C38C85C59415ACF73CE76D9453697A3625A607A205204B307DC3C92CB140F1A75C671E916FCDA070567B42A2AA12A2499E26293DA440B664BB8337B6D5497471B002435C8B40872AB33E490268F2AE99C43BBC1FA7D8949CD772A745BD9AB018FD3F6ED02F32CD2BF845923 +sk = C842401604C8C4C78D8417C804C2723B14733044AA2755897F65987951218361A07AA84D6AF8A956454036B79E145C93B9D4B862146BD4DB824CABCB61FB91BC306F851C9E93AC266E3C9E9C939BE422B07E512D28503A6EFA9D3EA8861E39B1AD481B8AD1805A8C0D48179AA1203C2ED7BB59D5C8EF651281C77F83AC7B49EB997965B161DB025B47CE6E2C09EDD41F5EAB1C8B7B4D20783D60C90DBFE6AC387B629BE10351868186F6A0BF68905F8C1CF34303FB577C25212919533C7044697D9425BFB76BD9D367F43B2D3613351D95395F4C2BAE63B2A4608C69364F41E85D542A08F35B940FBC3B48F63360B50AA88259C7CB4634E5A34300C5957A3644F6AE381389B53210110329FC61519113C17E64782239941CFBB11A647B814372E313205844592CC3C17319B41FF21A0BDA3F5ACAC3F18BAD085C8F27B7758B7519316653BA9C253DC94CCAD37F98D00B9FE67E2A13662C77921E4A9A86C8089682811E53A60B1089A1038483E615E6EB109A3B7636E02A44C2C3A81B96D84336CF594D24172BE1BBB9C7B3685EA45E45B81D731B9B75CCADBFDB768119B20A0C346156CBCD5BB107A00A0E3C6E949B9DB0B4AE21026C915908C5F38413C648EDB20623F35B382B0CD5F4A8D7062BEBBBCC9E809BDBB5C84042BCE2E81BB0D795C6786AF95A7E7B0629F7978A03558F98709A86319570273BEA71986AA92560260D022569D4C98A85BB98AA198DEFF63DC6BCCD1E6032EBAB8CAEE5CF4717B17D89125C67A8A472C371153A4FC9045FD3304A74B983936060F42C80454A005342C1318A284BC5B9A71A39E748A94739536B517DAC1619C00DB64C81001ACBC2793F9F29B42214442FBA962F331D48C300DA2186D21A4DE61C4B5948C7EDD1B9FA5865CAF2280A81B9F7171137D6A678C92745B1AEB9DB686BA84D65F6BEABE332FF036BD113161FA068E74032CA5736D3EA3A01F1ACFE067DFE5A5B398575BB9B148EE6155BE2B4B67B348420CE758C5855102FD06A1FE8D347EF1B073F064F1F7926BE5B2343029E5B7468E93B8ABEC6BE231B6BEE714031E04ED23C6DA37032ECC00374706EFF7453DD931D80029382F17E82A85AD7A8B25EA97D1D2AA21238B25517008B0400281168328B02869889F7F142CBF1AE8DDBA5EF2713DE649AA9AC56229494DB211B90B96AE3B2829AE528C634110A3BCD355A243F3654295B0B79B9B7D43272321959B3632313AAC107C8B7AEB83172778B7B199E736307FDF5AC6AEB40CFE750B7227F46A00B9000880D405877B63FF6C616BF4A51CA11C863A79B0E099308B42CBB7997420008268A3B762B9A5E181DA14A4A92A5B55E7950268A9A83402889A98835CB9562A5A627750A5348B3398B39783009A081A058BBABCC7740AF00B8CDBB4E0842C7F14B47FF4CB424B6252CCCCEE30398023A9B50B4BB4A2C1FF0A007A0A54EAF421FC2113F0353C7A1DA6CBF3C7F5B448B86534FCE3B3B82C3B82C3420BCA7C865AA22461B3D95522E9792B37B78C5555A62A3439F3BA7646076111336079BB8352A286E542094BB58B07CB832E2B288021034ED4934469B1723E57E57E358942730196140F47658258A761EDCBDC046C08BB897F349B2930214C105792DF1B45AC18E1E05C136921935F40951FBACE0ACC5C7BACBCF34C35DA30A90671B63E50525D08B94632709B119FF39925362149E5B7CAEB6A0104046ED846B41BBBD9C6B7EE8F3AB4E672B9353A929764C239832D9F6604522072C964AC98196D8302275159B9CA71B19B75881D26EA3374FB74181D558812B602FDD094B9E40692697CD4CFB1D20570256C0BCBBDBBC8206476FD27C0D0CC624E839C32254C0D76C558999FC2779AC592DFE07A347E9316A3BAD42B78A048071CC9B67E46AB223A138E747227F777BA8310C83D170C2CACD25FA391C08A6D35096C704CB3E275D53F32C592884B096A7EBCB04ED8812F5469306EB6166073DCCA7A5BC26357A6702B51688A9C13353BB1883D47ACCC185D16227EC704A60E57186E3135521CDF8AB1382A7B70F80BC782CB75F28C494853175599290657552CA4B406B54A9E607230156E14667CE32A68C3938AB9B309A36AE9B524999812779C1ACA66208242A188617469930212F23CE0EA81A6D63A509B0686C5A63F44A0E9B691F0A718F02246FC688A248E3C2F387A55C463F0D976AF9A2399CD4845C22516E0B3C882625AA609B64195C90925AFDEB2901075565DB2562B11D2C07C8D0D94122462C25A794DA3639879A409256018F7418AF91608B63AB222069E31C2AC0233E8F73BA8BE2B0AC0463C9BC79CB048AE517295E8A01D2E16437088D20168F135C4D63B41021060A557003BCC935C6C97B3859176807B5637659F1B5BC4B488D4E5657E9F7B37C320B5DF12BF31330AD27A7F205907D6614949BC97F3C1E94F21DD235606602A5C13254F43AC1BCA2A6269BC5E6A96C31E30C972067A6030665CA7B05A700C53C560860A11371505457196CB33152B10F9B99518D4CA6433724A93219DB1BC834499A019C02665C650C7C0D22724BDC0BB852C9523D1A9E5B06570A6610BD1175A74B869CCA729E8C17ED5101D43C814FB18838F840884A4159BAC515F7B5A637B703385E5F7115CD187E2964BE55828A33656EF0384896525D4511AA2FC40046729F54ACC768353B8001201BF508B5904E3603ABE5B426DFB77F213C54B443B7D5CA6998291B56C379AD5216056198BF5617E58977A0490C308BB5A6873AB980A1364B1D25F0B01C3ACF3221528C942FDC83A9A9A60D819C015FE06D2C684194C56A98C286B2122EA3FB9B18D003CF91453FD09940F7722999AF0645B67179BB11B35A4CC56C2FC1C581F168F1918983EA00693471F6E33144C642DC5A4C28B01EF514449213A4E4749F0B2C40E6E06052D6870DAC120CFC54ABA5143D8BA4FDFB946AF9C90F99CA2EB158F001003517B9AA7A1306973DEB713671A16BA714245BA96723E3453718A3BCA2AE2C1B4D0265102ED901B3A1B6B6EC639A8900EAF67B5E500876137122A5284CF52DE9881352770A9D20AF5AA59C71189694590C549831021AA911948E550765F8897671621E5D3771F1263F87220C0F0B28804726C112A7756C85DCCB8A6FFA3969BC618A83AF5C1CAF2DE9BA439AA4D4D0021633C9744440F0F9A309D1467CCA4D67A917198BB873F5569D8C8B5718A5B65A7457F55E3D1BC71F4A62006D29FDCB62526714CAD2CA04FBC28983B54B6B037436917DA15608759ABBC316E8359A26C55E7DF179A74C39269C02CAEA7E61CA571DC771E7679E611B9EDA31BEF53B11E3524EA3F600FDAB967FC8A23B0B73407738955B20B76C75B971C4C1105B9C5A3557D57AF4DB036454A22093A570F0BB10038BB3A46A0C92866C707C28A91B9E6172314408DCD3B051F363775842274988340165887A027BFB629847B9271A5F66C15C286537C76C31F62B45E2995F0AA30DFCAA6BF2883D1DECA9B7B2029515C564D3B970143C29956CEFF588E99B8025A2343EFA5233361BB2332AFEA2499656203CB712AC8CAE4CE1489DF2BD9223C3C65737C101C0DC5C2BFD83444A29C64D8812CD69A68F004D2596033E903D744ABCB688AE65B0371D711B187B62E6C755F2F947D828446FB45F30C42DA615B3C5F682F2157E940691BA674571573647C09225748416529653845A6944859DC3C62E7C0A9DA78A4EA492F57386EC31B0C8730206E5ADBBB0253113A173E20313610FBF696803718A0D393E7CE4165E004A450825D8935F7738AA7C6A1226640F3CF40FFA6644DAE2280043C501635550BC76E8348D133A55CD73001FA3197C1A071BF30A1FF907813AA8B8986449918C08164817720F30E44828010AA6A11A378261E8B141D52779F73927D7F505DD99C7A43A2DB1197BA33A2950C280549564733706009185A493B59BBA67BD511E4DC55A4F458D9B1003B90A30AA87874FD83707F1CFAF11A4B9088BD41C8D69BCB77853B396C15E24948722943F0E28C4E896C56F7C9D3974144D43A4765392BDB0C2EF5BC72B27B11FF57D03A8214DE0520DFCB3093B5AC72003C615C04F64693F68C0D17CBC34F8CB1EA068D681C917315836005DCB423C0695AD19A06801847E947B045E7B78C9728CD321579EA31E5D7633B121884EF65095354DFE63891945983D54CEA2583AE4B64F54065CB5631272E1149C151ED0715E93A30C38C85C59415ACF73CE76D9453697A3625A607A205204B307DC3C92CB140F1A75C671E916FCDA070567B42A2AA12A2499E26293DA440B664BB8337B6D5497471B002435C8B40872AB33E490268F2AE99C43BBC1FA7D8949CD772A745BD9AB018FD3F6ED02F32CD2BF845923AE96EC4EDC7EE08108FE6C0411A96F48731066AE4BE12EDEB7FC667039C9C1DE97C65A12D87432F475509F11E0884FB51B5D970C1B6D2C87C70590CF41C16B4F +encap_coins = C068B1A68F7F29E1A8313876C4D37A23167E9BB9EC5A47013A5A840DC77D4BA6 +ct = 59FE8F1530E8671A1BF5B9FE284FC030EDBED9D0656D42933C7F091D994B53A09FA1AFCB3361B5A8AE286C7D2CDCAD267AD82A5A424C2D1F79EC8EF21AB0E19DC493B7AFED9B03D78BEB2C913241160E63BEF1079E18B01DFE1D23D5418CDC8B1649F035E1B071CF7DB1985EE868745BC3CA680989C8A3155E7FD26D381CA524AC843FB12F3E569D618807E4D7DCB76448F8F9FA28B533AFFC1F8D8156267432A9887FD8BF1B6B4CA4D30FF2A945F23C2B6CBA829834EE1AA4509CE65577AB66BFC9AD8E50DB291ED59BDC75A75B987097C1145A3A12842AFE7F1F2B8CD78439875182C870711283ADAA8FA90A3AB6CCEE87A6E734CA8941D60116B203ED4E366735856496CF0DD33CF4A6BA50ABAD18B841D07DD695F5E1C51099E846092D9EFD32891EFE2DED1831EE959F4866A04F47F6F3E35EF846488C8B890E32E60A43077AF213EB0EA512EB545CA99FA28C5C42A551FB6866C436422BF36EA82EBA8D1A9A6B01A92DFA7EA2B46308BE01586FA10F534328DD11BE26B2A60CA91C070493FDB83981922D6AB2DD316C90F25B0BDDF2519D56A71B2D2563412E64DF4B0427097A03E816BB84F0AD82EE001DCC36C901952CBEB1B96621E0BC3B941FDE109CC9192C60411D0AC294F582CD103992A0101111FCD9491B50F1CE199C65DE7991D7CE44DEA4EDA1678B828E24039A3BC49F39B4774175EB48AC8FA9F3AB0B21664D78C7F52C85538D0CCED54C441D74445F259FCE7048A029C23A04BF242DAA252993C65708F7032B107B2DCB1A041B57BA3A7DFFBB3C5970BDE9FA9C69A974D03ADF233119113A4496A6C5E1CA7C5E84CD333BB0ECA6EC2247E7001CF2773D28E63CD3CD59BE8966E6F19A26E473F3FFBB08A5D9BB00BC6D0BCB9B12EFC4E427838DB72D40EF79E0F815EFA5267D69CE469EE651656192F76B88DB102015A27BD8FFEA0AD1AC89D79FE1846E354DD577A69363B5965E1A9E69B4F63CF745BD6E38DA110C98065C6D11CCF18727217A0323463897342F44CCB1E562CC6CFE33A3C20283134F65BD35BBCAE283A32C67AB4D7469BE82E028FE9700B23145DF933F781C33AEA5BF50F14972DC0C052D1710BF7F2BE0BEAAE0C2443F8C338EF6194BE32F40DF731B791E75F701F3660F6BD7DF0A7B6F4A73AC6C8FE7F55C1E1D2FBFFA0CF4260CB43BCC8E4D1A11B282120E70367539FD8D1BF5354BB4B3DBE5F9B2406652762364737FD18A5E0BAAEDE66D087A21DA18C728DBC0C40F3CAA3C4ABB2D75D957D552C9715DB4B266113996EFAB6B9D94378DB8720EAE344DB903D4CE9967E4E16ED0D7228E26926A3D30BF205F4A57E6E127187E28797BC0CEDF2CA9DC22B30152B337C065FF60A785D6734A41B444C7E3F569472602249A3160FC59610C12064CF7CD38BFD2417F6DA56CF648CB9EDB57741608945F90D8486D769D759D0A576894CDCAE477D482690A91F981D542767F6A68157C87DF57DD06D808B165881FBE54964619D2370529911E6FB6D7E7CC4A7931B34D933A546C2D8B13DDDE75296F46E9A8902AB05529950130C53126082E1B62C2D4443D07E2BD5BCC03B5C7A58C9C8AFB1A71983230E58876400B78ECD878619FC2EA6F100C42A1BC1BD1BA2974BF2A01CCDDA2F34E4B1E87DE3D6F5ED7BAE65005336FD3513239602304533BE191ACBC8AAE4838CFB0FCF114C1E1985218C805828046F703EBB59DE7071B64FF6D8A75CB68129F63AD190AA4C7D42AA62A926B6AE1DF8F6AF233396132E3ABE851A8D0553259F746A9405DE0C9919BE7B2F1874B4930BFD7B577A5F028E7E169241A74DE98F8208467146F93EF835FDC74F179812661CE46208AB21F7F96EA75C10E516E4EB29765D97DC6E01AF07080B75598D93BE79D1CA4508F6048D9130D5178EDA326B8EB9392AC768AC5B8888335865A5BA867FF676C7412329AD9A4B903ABBF485980CFD8F76FCF579726BC16EDC8C3092534C03AB2BFFE9F05C08904162AA4B367D06A0A56315602113CC1C60F2D54F9C1A5E47B966A79301DB6B46685405EFDAA97D3C1E0E9ACE97A86EA35D87C83FAECB4F853E1AAA78ADDD69380F953B0DDE2BFF9A28256CAE8F0FA394E2C95B094E0FBC9F7F682BE79AD0B264DEE34F894F413BE1418389D8B0BA634123DFC88B3DB13B4951F878A99FFCFDBD8E0408D8DC7ADDE5D4B4A949A6EDCA0C987963D1AF9855351D1BB +ss = B6BD9B7A5ABC1475F201998F20D33C1F880AA2920876568D9010B1AC52D74F11 + +count = 44 +keypair_coins = C719F9B2D16399B7326CE4ECA30DABEFE8FDAAB18E9F6DF888B0A134EF355570A49F3B482A66256D7F667585925CB7F58894E42660EF2573AE33655C231DFB0E +pk = B7572F8BD73104745EAC83154707CF81C85377BA36B111C9504A180F01C880D08B55C3008A9594E75B3F026A103724064393351DFA7EB5AB9A1C774A59C47B31437011816ABBA42B75780C1EA8769A7BBD1BA60E686C726F2AA6C9101614C213A8147CABF658D5505AACB288F065BD31C5B7494B377EF1AB72925FE513C49CCC130CC542AA34ABD31B5D99CB8F6E2B9A1C5417A4AC9C91011627E6353CB6529AC19697D05D076BB197790431F9CE62A31FB8154797583692EC9ABF67B678E0C204A822E228B09BBB7B4CB3A5DF788B0930841ABA9E4F7C1212150C87C4B871E978DB33A5395356B25AAE33E3B9D7153E4A497C7D7387AF0C4367E95FA500245ACB15B7DBCCF9A013326C2B0336B66C101AA499159A7C875EB6CEBE292D266821BC193CED74B04E61845AA5B1DDC953699CBB7743CD76D930BFF38EFD943C34B01A8D973A81247D966825D1A9B3B2FBC5769C9D5BA883FC357946D54F3CC3090EE48EB2FA80B4D86DEE07C57C215F07DC23AAF8C4AAF2C9E03CA2DAA433FD9C584BF582793919449925F27786B6DC2DE9C5CC08220FEB501FB7E2900C243B1C357C8FC814CF87B233B70CE6F0938B56698C160CA893AFA877BBA49C0A8F606E30761D9DD14BE7A40F8DB95496865C2441A47AEBA1CA7458256AA5A910948D4C920D32712C55CD8546809704C1760C8F8ED991D8CA570CAB3441782B6E4035D82C24105397CFAA8AD86A385327873A228BB0C02801A50340B70E5483709EF03DE0483BF08B940C4AAB7A61C24E9947875C8E2B930DC208ACE4752DA4D0253EBB2BFB333A1EC9BDEC73283D435C4D061DF6B0692DF903C6481179E07ADAAB8D69277958458F6FF5C6E4C92804EA47BC8A03BDD707C1A78D912467A83575FE74AA25C043FEEA0BE5899210D7C8BC8B669FEC5840F5B1782A5A9D947E78301EEFF9B12635C9B15176499A3593362FE5A946FC98C7083BB185C2087B58B6D7CAA3599427259A72C6F89FEDF61F7E111C04F008053CBEFCA2CA13A06D09D9494CF29F82C5B93BFACAC8D705E35874D0297AA15C7FB181878B32459CB09D6D489671E7700E4731E783C73C86B5B8731AE765A639B20F8C69844559B0763B5CFAB7396C1AA09CE238227C29BA34A48891A39CFB37F1226CDB35517D354D422000C3709B7CF53BB9807E2AE7321B38BB29C327E5EB3D02036B1A4C61A2A66A3E91AF4288875719496003988B488D84535CB66A4A1F1AC69952817FC13FFADAAFF145780AA02AC41CBEBFCC9D798CC4D9A090A4212F0FDA861B8760CEBA5F334C1A54D52567C2B51628455C85517F67BAAE5C694293C29A684984AC3E711501D5219FA8279BCEDA4D8AEBCF17BABE31FBBFFE6C297DD27CD894BE83B416EE182306D65D2A962F64811AD1FAA4CE72A6CBB1C5D22A1C4A2C1ECA36B38618AFD0A928C4DB55B991428AD72A40679EC7521A170929CF10A41CF63BF0DBB5F1316A23D2ACCE5C7C34C67F6B2450F36556BD987B525A009C77AC7E23355DE3AACAD177AB7538EB7B25D613A3E9C11C79E59FD9EA263C0178D47885C7384B492909FBC63AC0B2A4AE455DD3446B395C0BD001765F31C79649C53453252E02B98AF51F23F8B2F5F2C8D3EBA71CE67A95170237B7A408235429826637F8CBECB11A4DC351FD0134A0CC7869983A02A50FF3958E445A9DD35023900B7A3C41CCB66A54628741ADBA17DA89CEF8D83E8F66893BCCB50918B6CFA1480B051DD0153FDF5A0561C2C782DCA0A02861B87A8AEB304927716884905E1E0A004F3A119B3293FB0850CBBA7581F1363598C1384AB228D8720B4C6124E2AD1A9774D7A16880542D30DAB2F0796FE5536402BC10326C7577971C496083E0C24541E07C813A01989013AB9580ABCC038284588294B743086357D50B01E93D841C6A7B929D32291E47D2419B464C3C692847F7706865A29335A4FF50C536991FCB790D0DE50F68914D1CA5B438BC0A43393510FBCF15A895D5D546850C0FB1D970517819E841CC42DC279E8B398A563C174C57876605E1212BE53AB714486588F96B8599262D67BBCE891B90308959524355338355598B233AA89E4679749207F3BA1086CCCCF836C7E3528989D0848B947487781A2B025955B2C748C700B479216C3CADDCF63564392D6515767B771A21F89BF2D90CF3DFC681C2FD81792135E1938CA482EF3C253D8976201852444E +sk = 0C9C633FF39D1C6C29F8356AA02981DCF189D6535E2AC00750C30B111A88B21024E4823E7D543614F30112F7C78F1679DAB68B71AA992538658FD0C8E2984ABDC09647453B3FD99DD860238CF40C9112A7DCB57E06540148EA4AD6F97020474AFB65C5C67AB4FDB1515C6592941B1E38D4097155BD194B5324F464DBE678ECE9B5F8F57822F87ED7F3A6B470CA3FEA3314B4BB404CB66E3BBF8F2953F2682CDB65CFB47906B3962443775796564D75CBB4B9BB24A8A98D7723269E8204BA89782F974AE591808E97CB2468252C8539C2454041C9232F33B43ED8359DD6856C98BA4FC09E92F9A4AD497F8F1159E159B5AF795AB09C20AA753931F47764B6CBAB6968C7A779802B469ABB1E7F677A0A485FF5CAB2F028112EE8C35152703BB14127B33FB00A0CE21CC607E49A73544029BACA215A67091A9AD89A408794C4D2DA78557B1D31686C6B4C3749958EFC60891F12C9E0B7C19613823EEAB1D8F672089339E46C16DAF0C3B7D53727605C26A723518A2651D8762AC373817BBDDBEC1EBCA2CF91FA2A66896C55A4C946A791E5502FF19AA21CB132322BBFD127C10D87563028BC49B222E5401ACDC81991828E4C111A54566E5724B40A452C0F4632B7B85F0445C881938134D516113560B0065BEB409FCEB25F796C0BA0AB190FAC0214007916CA93C2ABB11BD88553AA34C3C518BFEC423728C86E529C300A1F70225F2F683911040FF9405614E1BAAC070E0E90337E134E3C93081514A937F9798EA7B57B3A3A0B829A2697B0778C802116C067A5C368576395C43D33882F97C770519C16426284E19BAC180A2A6CB85D65B1A115316B08541DC231C123C184E82C691F20749A4B92F2D1040D09519DF7678AC282FFF9CF5124ACBE04388CCAB61BF71B87AB3B830A3EF6700A68B06770012424031E89A895AE81C8ACA9169D6495CF01CD8BA0C27AE132C16AAB0EBC4B13ABB37D67CED10A0246E87BE1233FF09A6802F6371858972D21B48D410D8CF3A8A1E664F62028CF851A134037142C20E8EAAD7DE32581B39B5D93221CF72124A73DAA2B61F3D7C8F25A973A815B351206800BBCBA60AC8C2A86A7758B38339751C23EA5523D84EC982A260256C69AF739349D206CE9C9A70DBB0A950A0B63815994A6878711578BC22942914DF8489EC5A09258EBA796E8A6FF5483A71887E55783A94201E5B88898870E67D32EAAB132519624F4B28F22E80903E591331CA792C0CEF824BC62168BE6EB8F7BA299BC519B0C370509E38377F171761521F8FC882D1B8D0DB3C2109A43D1754F75529F7B071B7492B753688FEEF12FDA217CCBA484AB79192B7933781811986430BCC010B50A5621EC15DC7BB545CABC77C336892A0DF4436E732B905D70769865CDEE0A9906438E9D921F521862A3227BAB93202DA0CD19F6221BB68FDA8155AE38132CF2A30A4A5C3DC0B17DF0016FAC3BDD56CD9D06CC8F2C6B4AC41207FC1AEAD0CD87506CAF5C043941513F0A4ABF725818C7686F0745ECE93C23F2951EE263F51A3FB3630076DCA4EA80A156DC6B4248246F638024B8782C9757E076CEAF18CC27284C321BA91766454640AD32D97E65650B39C9B23FA80405F8CEC82ABF70EA4F4D24C87E8B253F708F9A563C78655877795C4F05024A788DD4BC7EC1190B606602AA40364692478B3B552C46B5720ACC5042BE92BA8760924C05A60032C52F63B40AC50086A62548DFE9B312F2904AB17DA59842DA877355360E217917D7A3C3F1A9B9F2466C8FEA980BE798D249ADE8389E626A4693AC38A844294842382E0C5B92BC25B29ABC3212543EC39EB2409858F9C8A22713B043713BC00F1A77BFF5D269698B9C91706BF0326899791F161B481B531E77F95DE95B45522B9A4F0423ECA7AFBE418848137B925A6AD13BC792194522F00661742F5E4A0E4D85AAD8B36B6540A1B25A4A38C32305E543A6A13C37B48296FB84A3464DDD3016771B79E33251CECBC2FFCCC6D3C06D4A660622D3630661543A001A3F9CA586C9354F513F3BA5C6DE933DB0D0690E4102C9918720437F437354A3107849775C95C4417BBA787F172407FA0564498CFF67C545B7323C442B3CFB11952079F1D11449BBB622630A6945C402C7008DC7A35F380C2DF7C5EDF8C9C64432AFA34CF0547882F202B7572F8BD73104745EAC83154707CF81C85377BA36B111C9504A180F01C880D08B55C3008A9594E75B3F026A103724064393351DFA7EB5AB9A1C774A59C47B31437011816ABBA42B75780C1EA8769A7BBD1BA60E686C726F2AA6C9101614C213A8147CABF658D5505AACB288F065BD31C5B7494B377EF1AB72925FE513C49CCC130CC542AA34ABD31B5D99CB8F6E2B9A1C5417A4AC9C91011627E6353CB6529AC19697D05D076BB197790431F9CE62A31FB8154797583692EC9ABF67B678E0C204A822E228B09BBB7B4CB3A5DF788B0930841ABA9E4F7C1212150C87C4B871E978DB33A5395356B25AAE33E3B9D7153E4A497C7D7387AF0C4367E95FA500245ACB15B7DBCCF9A013326C2B0336B66C101AA499159A7C875EB6CEBE292D266821BC193CED74B04E61845AA5B1DDC953699CBB7743CD76D930BFF38EFD943C34B01A8D973A81247D966825D1A9B3B2FBC5769C9D5BA883FC357946D54F3CC3090EE48EB2FA80B4D86DEE07C57C215F07DC23AAF8C4AAF2C9E03CA2DAA433FD9C584BF582793919449925F27786B6DC2DE9C5CC08220FEB501FB7E2900C243B1C357C8FC814CF87B233B70CE6F0938B56698C160CA893AFA877BBA49C0A8F606E30761D9DD14BE7A40F8DB95496865C2441A47AEBA1CA7458256AA5A910948D4C920D32712C55CD8546809704C1760C8F8ED991D8CA570CAB3441782B6E4035D82C24105397CFAA8AD86A385327873A228BB0C02801A50340B70E5483709EF03DE0483BF08B940C4AAB7A61C24E9947875C8E2B930DC208ACE4752DA4D0253EBB2BFB333A1EC9BDEC73283D435C4D061DF6B0692DF903C6481179E07ADAAB8D69277958458F6FF5C6E4C92804EA47BC8A03BDD707C1A78D912467A83575FE74AA25C043FEEA0BE5899210D7C8BC8B669FEC5840F5B1782A5A9D947E78301EEFF9B12635C9B15176499A3593362FE5A946FC98C7083BB185C2087B58B6D7CAA3599427259A72C6F89FEDF61F7E111C04F008053CBEFCA2CA13A06D09D9494CF29F82C5B93BFACAC8D705E35874D0297AA15C7FB181878B32459CB09D6D489671E7700E4731E783C73C86B5B8731AE765A639B20F8C69844559B0763B5CFAB7396C1AA09CE238227C29BA34A48891A39CFB37F1226CDB35517D354D422000C3709B7CF53BB9807E2AE7321B38BB29C327E5EB3D02036B1A4C61A2A66A3E91AF4288875719496003988B488D84535CB66A4A1F1AC69952817FC13FFADAAFF145780AA02AC41CBEBFCC9D798CC4D9A090A4212F0FDA861B8760CEBA5F334C1A54D52567C2B51628455C85517F67BAAE5C694293C29A684984AC3E711501D5219FA8279BCEDA4D8AEBCF17BABE31FBBFFE6C297DD27CD894BE83B416EE182306D65D2A962F64811AD1FAA4CE72A6CBB1C5D22A1C4A2C1ECA36B38618AFD0A928C4DB55B991428AD72A40679EC7521A170929CF10A41CF63BF0DBB5F1316A23D2ACCE5C7C34C67F6B2450F36556BD987B525A009C77AC7E23355DE3AACAD177AB7538EB7B25D613A3E9C11C79E59FD9EA263C0178D47885C7384B492909FBC63AC0B2A4AE455DD3446B395C0BD001765F31C79649C53453252E02B98AF51F23F8B2F5F2C8D3EBA71CE67A95170237B7A408235429826637F8CBECB11A4DC351FD0134A0CC7869983A02A50FF3958E445A9DD35023900B7A3C41CCB66A54628741ADBA17DA89CEF8D83E8F66893BCCB50918B6CFA1480B051DD0153FDF5A0561C2C782DCA0A02861B87A8AEB304927716884905E1E0A004F3A119B3293FB0850CBBA7581F1363598C1384AB228D8720B4C6124E2AD1A9774D7A16880542D30DAB2F0796FE5536402BC10326C7577971C496083E0C24541E07C813A01989013AB9580ABCC038284588294B743086357D50B01E93D841C6A7B929D32291E47D2419B464C3C692847F7706865A29335A4FF50C536991FCB790D0DE50F68914D1CA5B438BC0A43393510FBCF15A895D5D546850C0FB1D970517819E841CC42DC279E8B398A563C174C57876605E1212BE53AB714486588F96B8599262D67BBCE891B90308959524355338355598B233AA89E4679749207F3BA1086CCCCF836C7E3528989D0848B947487781A2B025955B2C748C700B479216C3CADDCF63564392D6515767B771A21F89BF2D90CF3DFC681C2FD81792135E1938CA482EF3C253D8976201852444E4E23909B028699D6677EABE6BAC4BC4E8437ACBC52B0B17F1DF5760C0455C2B5A49F3B482A66256D7F667585925CB7F58894E42660EF2573AE33655C231DFB0E +encap_coins = D5668FF18683EEA789415D6FA2A5A1031B2980B1E641F521D5235D50E04EAC25 +ct = B1664AC2CF2E12F59183175BB33511DF920DB2B2258D8746A6F30F48B33418CFD66A9DABB321AEF9451EC799466EA241F95458072460D202FB825408C503B76920C7338B87EFC5575A064499205EBDD591700ABB916ADBA5BD529C7335A144A4022ED445CBE6F4D45BE5377B042A8C2494AD0B3B91E1DDD5E49F73B3BCD8857037BF69D59F69CF58BB75FE22DEAE451B1F6809E42F3585FFD775F0B2B05941EFDA480BA84729CA6F08865087D4D056F5A9AD149E7D3CC5E3E217ABA5BFD3DD2C6E7DD7F7369B46CEDCA5A666C863D336F677798F682209AC2398F18E2C7F9BF68560E4BC40A258A522D601E1F5BE29DFA6FBE78E3452CF7A6E20FC9A63E655EBE57C1B83A5AF3A86CA71A2EE1988D2BA0465D91A776A6B7A3B9E7D9B12CC8C861A82CE53601BC97E2F402D97E95698817ED93498F02444E3985CB4138AFA6AD3365C1EDC7BB34A4605590CB87E523F9272FF2068A168DB613306BA2A0CFE3E9DF55B2962421950049261707316E6B648CF6CA3EA6197C50CD958535292A41BCE03D9C55B99E3CDC40CE704AA1199FF15E47A2622E87E01910472E28D64F74B486F710278535E73FFCDD3195A553C8804F956973DF901B6EB38955605D7D18BA0D74F258BF51DC64B113274DF06F9A960338B0CFD7F3CCABE6DF9C7A9FB032317C30FD233A35DF1D9781DB859CE3CE5DD8B1C0013D48C3ED97BF5AC8974FFAC5A22E3D9A6D2C1A80F0D795B2FD318BB920D21FDB3104AC99A1C508563FE41B9E09386DA2D481152ED4E55C12544974285E43F911DB763F7A4B9A56A5AED302F64961810DD75C07822FE95FB4018D9AB00441BC68C0FB27D55337B948C493711DBD37F1B771E4B89DEFCCE6745B56BB72F60908B4AAAEC0485277B14C358021C6918001391AD7AFD48181E4EF024AE1BF150E9572F3B884DDD4E157E0FBA705D99F11F1C720AE7BA3F3E4DA7374BF06D1952E204DC86C1080572CFB49EB269E0185587514505F7FCD4BE42DCABC3939ED33F2FB2ED26A16FAB1030B8342133822EC83F27B91D12CE231326D697482AA2B4DB9695F3666E6AAC849968AC63BE4E6DE69A0B05082D55E72B0302F9AD55C25E16ECBD3C1D15E7975E132D92154F27269AF540DF9B539842144E8DC8DF65B7F52C77E5F0731D5C07FBFAA87A28571A4C74FD5485A01CB40A330A9B174D8A0CEB9CEC5CDA7870EAC825CCA82B96ABADD9E9DB00D79E18C752B051056C089FBE34A514A02F8B4670D787E493B26AD8B4DA87F8365F920D415AABEF322C6AC190B92617534067E8E42E6DDCC2D53A7A495B4B87A84016ADE07E8EABAA23D2B4D6547DDDEE28F88625A1C2612B914256311AD2DAC744D9AB6D6A7DCA054F7C99605C73614184ECE8463EBD56F4B483945A307518E91F0A6D39A7CB75173F5C7A886B91F1073F4C318845434281E126F832D825DEC5B3F5568185E491A61EABC1CFB6EFBB935472BEF73F3A278ED6AD2BD1045F12C4C47B450F3E0350F52D9ADA5B5EC5F6CE7518E0845B555147696900A4C97596F80B118E499AE9A53B693A2B6CE844E632911D34F1D26F5DB40A0A2CB56FBD45A552000857A8A49D68CFFFF7CF7BBCFEDC792E48CF76450132B4EC38D57CAE10F183214D4141F4D570F3E85404F8D76ADF269A9E6621D632234A68ED3ABE134900C748CBDC09CEB97CE8E2AFE7E0E4149407290CC056DA064ECE736D1C836881CE0EF339921F4478C30F987A5C785EAD18CA6DED77511864B19DA9E30EF58FE251AE5A36B4F658ECA586A79A02449A8AFF34A68ED2AD5E62564546C8C0271894966B7EE2148B0872A90A489DB4DA7848EF6822FB25A213BB33CB90911FE5ACC31DFF11E02BE1FE8A6A47D72FB22714A8411375A8BDFD51092194F50FD2312943285EA2949B279960DC1C350044A4460170B04470EA0BB67CE4D90B5FC8414DA617D9EA874398B4E70FFBADB5B94E717AB0441641256A3E2AC2F5C5DDBAD12111B32774E4079EB2BA950923509FA916E2DBB16BEA5E15C35EE84AD9D30E185667DABE64AB16950256AC6FDA71FF467D09E3E70E46ECF190CDDF9159064966AA7A018C6BE7142AA782013E46C579489D6511538506D8A802C437ED8C5E3AD67E003501013C463DC318098E27F3DB8429D978B17EF56E24C608612DC3F6946BC51A6C78C012042B17234422443073A27B15960FB916DBA11D09E2C62A88523A +ss = B71D423E54EBA50D15AF507AFD30807190B89997D6618E12A66EEB39658B413A + +count = 45 +keypair_coins = E9ACBB774BE970206C3A738E243B420805A509FA59FA902044BE2F0D013650D21D9667C03155106785069387CE7D25CB09C5516D52817201D6653F20E775B453 +pk = E7C99BE7540833828E457C66EDEC8E201B07D8068BDF671086D6AF0BEB628685790487707B66BE4C7341C654A8119774E8B262B2F34944898E42752149039356C1348EDA779B526DA7AC838551855A4A8AF5780C5567295DD16011E3177E267948BA7643174391A34C5597B7AF774256329F211518E1A67B2F35898E610F49500C2B4647297723004AB77F9B538524A9B96B1E5FCA8F224C2E24701BB726735B408323784E9AFAAFDE570B2F4C2BBA88BB54808EE73AAE69BA352612268E9B4460F004AF4998A6C484474C0D04111F2D1091D31443EE2447BE719E8F4C3A49E918EEA7870F199E1507BF0BD543DEDA7EBA63AA1704A02ECA523AE006853B5E09706259605E72E78AD6FA602BFBC7BFBB0D2D78B5155B3D2017C9086803BE862EF501196EBC2AF13B2B0569473E9620FAB2C85FC23874AC14B59C0F082029B553184B01C76D856858475914F025DF1914C16A209DC90A306914C3371A6CF68473A431B2886A8CD40A5302834A73359E001658B90725E02E63C27403FC0E1953B11EE6A6415815D2B2BDA0B13E54511C96B801DA22B5AE94B68DEA940EA4787F3A1506E290696C3535B8CE73351A6E48BED272AF5E456904AA03094210494C90B280C2942682DCACBEC8C644E9A36D326816A42B23B96B751AFB7B951A87D8E94DB48932AA14BF73E92B06B85F7AFB4387E949645C5838622EF7BB2FEE0175914B3C931B25F80A010568A179A21727F52CE578AAB6DA1A88D8B7461A5FCA7865C108A477363D3F9A960BFA81B4D34A551C4F1E234E18FA294B7B8055E6ACFAC6242D671855F29979609B821566ACBB381DFAB0CFF8BD47204FEC023EF281226B63A7D0397091A9844E23B28F57A0DD205A520A48A3E517276977388B575522C5B78627C4253BD38840A7889FA75A7BACD10B8F27A3E13BC20ABA3DDAEB88AE62B2930338CDDA41E0770B4D2092DA100AEDA2B5F5600718D69B032A45BD677B8732965B82908B877F5F77446E4AA132D46044067B21090404D21D01231264651B38832137DA53CABA0865957F5AF7AC4D640FEF96702F853BB4A70767DCA757DA900DC73E17FBA67CA85D94BC98378A6A71C5C9DA14738E0C34F5C81471539C42144B4CAB5D8D53285F8C415CD8CFE2D30295D00DCB47B4FFD90282F6B582A57BD3F13EB41B088BA624575B355F8C7FC0F34F1E924FE7D653692C4F44E1C64F9CB145FBAE9E789C029421793A4C43856469298B4EC648B21BABC0167C04D90A3A8C554DF46B80B407DFCA54D5F68E2DCA4E98A92FF38B427115C26AA33161503A83143714234FED912829BCB924D69049A1C958E6A3088CAB51F956C87862E776320E78457CF31C20957158BB377460BFBF93A44C079E1F1BCB7B4268A0CB1CB8151512DC632252700CF06C988B2A3B254AC6422C73432CCB143819105897575C8672B7B0464E61A6A8891BCCFBEB51F96120107CCE8E950802B2C04650A1F264ABA721541897538278BBAC29B73F811940A47249035B04C0023084BF57806D51DA03605C0AB0E6A6B65CAB53CB26425666DD1B597418864211C6BEC492D4577BC127369AF391F8EC72C53302DF5013C2C7C62D364B35508219749F131B7E2792CB206A9ABE2C21A565BF05C1A7F8995C89549AA3120FFD83CC7A8B8A95BAC3E7EABA48B57F55829F05BB265CBBB8B0B7983F7618F2511B3FE3CE9A0B735F2C1ACD189F9115A1F1933CE19A8535958CBA82464ED9829BC9A0C1405266F697D54128CB31CBD5B95C72740FE16219997210512A7343130E7DD00556948ABC6C0DBD215E9DB44A2D80C5606B930C6C8B949081BB453461A21026943929D3BDD3C942F8951AAFF04276D2186CC052B6F67E84D5AA6BE0C67AD74AACE945DDD7C4B75248A0854593E8B27E971895B58C08E8107214AFEA3AA1B41A17CA121FB8308EEA899E8CF04F7E884CD40746F2106A86164489CCC20F526154E613C565A282D5742F4953E963C42E878AB4D6668CB9C15F8629F537CDAA078DB33191EE281A46EBC2A3036639E5CB1B201384B222AF46873E1C946438125F060AFD4734E21794A8DA3D7B266C4125B60C9C480091874AE9C242F550898A30281380FA352C0D4466295A24653181E0E292AE099ABEC3275F8A89F22C983C8A0875E7424C3B66B1AA8F0893D44D76104BF396577FD719D69EB306117F3ABD65385A87AF12D1BB6D0433 +sk = 2ECB7CAA911A2F615A13CB82E5A8BE85E1C2BCF06C71B9696682532639B57A91537E470E8514390949CFADC80B0E5C3EE3ECA869E22250560D8896B5F6EB0FC6EC0A6D01760C9108B7A26CD79039BCB3CF9EA0432FE0581626CFEDABC12F758B407C8E9DFA373F45C377FA6D41A7205A7322B737CDABC8114DF437E864C4ABBB3DD084964F971B36E24406A7A7544A260D917C0EF95CCF33B1833BB6D4232BFCE37B96004ED7779258FAAEDD9ABAEB5051D8F605EB85BE0F9599FF28B40587488FA376729685A8336C0DD213F55447E2C4895111B98E73BD783B2D08960ABCE22F6F894AE5456577A81156C66F6F1BBEBD9C04D1AC43B77936F13060D3305A3893A825781E47928FC492ADC16B31B2669882FCA10581603B400F297B7FE7525D20E82958099B2D118ED3A14A8A915731525C470B7852A9B0EF04B4A3B0B65B4C5D7D486366175540A91E752993BA979D8A446F94088C7C3A02FD5C051F900A141957E63CBD71AA012DB60A02B3872F3A623218A6B1F628FE8580E8725D9FB647F128C2519A8A0CD0649671616B462B83904CE621C95FF44697CA71CE930EAF0B28A6448A1C6B38C14800427683B71C954E49B6A3B978417B78DDB1A1B9729B89160B4C7BA49F312E23632460913D82D655D6E00B5B17A635827D8A0781E12A68C536AB40909F46A7173FA9CC9990371DCBC0B8A433436133AC123A73664A14E1409B4476AB001C17F26EBE968ED8C6A9D491B92F234499435E2DF615C849BE5F6422C8BC9DE8F148A7C0713D93642DC852B33652287010F02B1D7B77972C797ADD3A38651B4C11EA968CE53F10D38DF4160101FB0EE557BCF5B3328E12150A7C0D769812ABF2AD2C1C7661844E6B34B25E7A30EC64B6E7D4282F48344BFC6F33AB3C428C76705CB9B1E9637721C9EE60874017013374082892B4AF174749041C606B3F6690146BF1B0C8D2844F80594F265A8FB639E209C9B7FC418A230AAF340BBA34C1C66B7D570918ED6CAF8F62768620058CC7CB4FE1C762AA96A5015B82216E204C5821022CAA84AF9B12B9C9BC683747A2724C88E650539779742EDCA6A6A6C5F5D68FAAF73D4CC7AAB9B105F3A1B46CC96C915912E807AA6C841F6BE63812062ED1D07BC9164ECCEC7E6662056313CC32F63C6181CF3343ADC9073888D5756F508D65025BF6490A5F6B164A942466E60C4410C72AA69D2CA10459B890A4CB22A7613D44E70AC96ACA21169F932A6134D27A6C05582E830C0BA137DF060C6249B360831CC6B993E3D455C2E61694B11B520C64078BB552A65A3BAB407D46C0EE173BBB52A95C7CBD8612380FC0CF1655C8E691BB0493103EC80A5FC92B4951A0D78768504284AD52580F16247B3C44AF0A397F28CE3D0C0E4D34CC48B26B3998B060F2A9A013889685446B6281B3341C08E8300A013390A881A3A4937B412BF4745B069ACBF5315B9955AA4999BA827BCCBBF776829291A9067272059104522D69D1834886BDE76C078A6061305833FEFA710EBBC0DD0729493A285ACBCF2708CF93ECC76B85691E20BFA4379C8521420C231F68429BB5C76E69378F6EF3475FCA5760A5BE829C2B4FA955E0E0931423B0A615194C26225BC538E2DB29E928C686892BE81B1A04F94E9BA65AC12A68D013885A021D91CB21CD7B76F0138667B5CE8CB742E5A54BB34BC17B28C8AF5C27BACC6C308CC127A0152120755DD61145970D3CB02C664C3FB8C5763AC841F845B7799C9CF7F61318511B6728499E843CE1A18093EA1CAA879BC6F1C4AA5A279E80AFEDF5353C5121A5D0433FFB748C0790161B648886A87FB003380A1DC289AC2BD876262C90081470453B12F5970D939C6BB573263B902624B03E403395A3A9A3C8B897C2DC5A6B630EA4CC87B6F456B5616A008C8DFFD6B970541117335189FA4CE92883B88B3A0917994974CF4837B7B31C16D36BCD867181411239086940C3A03DCDB612CA1411CF6038DBE35EB013658037B98D329D4A647D2FBB7983136480A722DC791E2281C251040155FA5B0C092D437576A4F055F1708C58E3611D3071EAE9053C4BAE4AF8769494077912AF5FFC129C7164749BA2EACA0676F02A8C4BC1545C405AB16E90012A4915C4B470C230587F0BBBBBDC3487387635E457C66E3CCBCE8C75048527959651E7C99BE7540833828E457C66EDEC8E201B07D8068BDF671086D6AF0BEB628685790487707B66BE4C7341C654A8119774E8B262B2F34944898E42752149039356C1348EDA779B526DA7AC838551855A4A8AF5780C5567295DD16011E3177E267948BA7643174391A34C5597B7AF774256329F211518E1A67B2F35898E610F49500C2B4647297723004AB77F9B538524A9B96B1E5FCA8F224C2E24701BB726735B408323784E9AFAAFDE570B2F4C2BBA88BB54808EE73AAE69BA352612268E9B4460F004AF4998A6C484474C0D04111F2D1091D31443EE2447BE719E8F4C3A49E918EEA7870F199E1507BF0BD543DEDA7EBA63AA1704A02ECA523AE006853B5E09706259605E72E78AD6FA602BFBC7BFBB0D2D78B5155B3D2017C9086803BE862EF501196EBC2AF13B2B0569473E9620FAB2C85FC23874AC14B59C0F082029B553184B01C76D856858475914F025DF1914C16A209DC90A306914C3371A6CF68473A431B2886A8CD40A5302834A73359E001658B90725E02E63C27403FC0E1953B11EE6A6415815D2B2BDA0B13E54511C96B801DA22B5AE94B68DEA940EA4787F3A1506E290696C3535B8CE73351A6E48BED272AF5E456904AA03094210494C90B280C2942682DCACBEC8C644E9A36D326816A42B23B96B751AFB7B951A87D8E94DB48932AA14BF73E92B06B85F7AFB4387E949645C5838622EF7BB2FEE0175914B3C931B25F80A010568A179A21727F52CE578AAB6DA1A88D8B7461A5FCA7865C108A477363D3F9A960BFA81B4D34A551C4F1E234E18FA294B7B8055E6ACFAC6242D671855F29979609B821566ACBB381DFAB0CFF8BD47204FEC023EF281226B63A7D0397091A9844E23B28F57A0DD205A520A48A3E517276977388B575522C5B78627C4253BD38840A7889FA75A7BACD10B8F27A3E13BC20ABA3DDAEB88AE62B2930338CDDA41E0770B4D2092DA100AEDA2B5F5600718D69B032A45BD677B8732965B82908B877F5F77446E4AA132D46044067B21090404D21D01231264651B38832137DA53CABA0865957F5AF7AC4D640FEF96702F853BB4A70767DCA757DA900DC73E17FBA67CA85D94BC98378A6A71C5C9DA14738E0C34F5C81471539C42144B4CAB5D8D53285F8C415CD8CFE2D30295D00DCB47B4FFD90282F6B582A57BD3F13EB41B088BA624575B355F8C7FC0F34F1E924FE7D653692C4F44E1C64F9CB145FBAE9E789C029421793A4C43856469298B4EC648B21BABC0167C04D90A3A8C554DF46B80B407DFCA54D5F68E2DCA4E98A92FF38B427115C26AA33161503A83143714234FED912829BCB924D69049A1C958E6A3088CAB51F956C87862E776320E78457CF31C20957158BB377460BFBF93A44C079E1F1BCB7B4268A0CB1CB8151512DC632252700CF06C988B2A3B254AC6422C73432CCB143819105897575C8672B7B0464E61A6A8891BCCFBEB51F96120107CCE8E950802B2C04650A1F264ABA721541897538278BBAC29B73F811940A47249035B04C0023084BF57806D51DA03605C0AB0E6A6B65CAB53CB26425666DD1B597418864211C6BEC492D4577BC127369AF391F8EC72C53302DF5013C2C7C62D364B35508219749F131B7E2792CB206A9ABE2C21A565BF05C1A7F8995C89549AA3120FFD83CC7A8B8A95BAC3E7EABA48B57F55829F05BB265CBBB8B0B7983F7618F2511B3FE3CE9A0B735F2C1ACD189F9115A1F1933CE19A8535958CBA82464ED9829BC9A0C1405266F697D54128CB31CBD5B95C72740FE16219997210512A7343130E7DD00556948ABC6C0DBD215E9DB44A2D80C5606B930C6C8B949081BB453461A21026943929D3BDD3C942F8951AAFF04276D2186CC052B6F67E84D5AA6BE0C67AD74AACE945DDD7C4B75248A0854593E8B27E971895B58C08E8107214AFEA3AA1B41A17CA121FB8308EEA899E8CF04F7E884CD40746F2106A86164489CCC20F526154E613C565A282D5742F4953E963C42E878AB4D6668CB9C15F8629F537CDAA078DB33191EE281A46EBC2A3036639E5CB1B201384B222AF46873E1C946438125F060AFD4734E21794A8DA3D7B266C4125B60C9C480091874AE9C242F550898A30281380FA352C0D4466295A24653181E0E292AE099ABEC3275F8A89F22C983C8A0875E7424C3B66B1AA8F0893D44D76104BF396577FD719D69EB306117F3ABD65385A87AF12D1BB6D0433513906F5BEF81445BD210D63FC4C9B9EF0B61C17B0CD5B229A45908FCBADDCEC1D9667C03155106785069387CE7D25CB09C5516D52817201D6653F20E775B453 +encap_coins = 07B6B69B60DC15A90690B3FC53E8A4655275E0A1A502551D8BF2EB337B1CD2FB +ct = 629FADA873A027CA01BB01367C8A0791812DF7AA3E09DF9F607C116760EAD3B61FAB1D7ADB35A666D6DAF62AD8EBFFDEFFB56BD6E0817CE33B4C735776EB91220BC49EFEF2B03EC026E3E57BF9779B5D01A1176D68AEBE69666F2691C9CC1581B36FF5688A46071F7B54E18E5312F691057B92EEC85CF2D48666FD903FF79F7401BC2C56DC50E45F001C7908D8117990E94656E07AA257C7820D4D52C5036BDFFEAD0A2EB3184D02835B0BDE12269AB50FEBD157A0E27BB5B087C766E8542835F2FCD44AC14319539B20A98D5F37241AE1E4B669C521B45F9C8269613A486E50292D282FE8497397DA70DF66EEADE1350E65A99C336195DEF9E5B20C91805A7A433E3685BCD6CF97CA334BAB5F6DC2B0160F78439C156E7B949EAB484411145769ED9C2BB5BA1199C6CD4C08763E11F7A8B629B2175B897FC79D1C1D863414D05E770B6F7079167D8D2501C881DAD679920D53A5CFCC303A5728ABD7CE449A2E384AF6C03E3347DF9A543AFB2DA95D0F4FEEB1C5186F9E6648098F201823A3459388A7B00883E69F79B76CA4AC7F573E44C36D2935BB5888B49CEF7FD1D52181D65ADA29A16709A025CB11775ECB149F6F9D4F74FD9F9F8172E405AA2CF9ED505E6FC249EC883B769FB8990A232DD9E6651D6126A14B25584441691CCFDCE9DB22D476F6346453DD94987366CBC04D5DF039897F53290059418A6428244CFF9D6FA3CFE50110E34AAD706825FA46C4BF3C01EFBD4164E55B5DF710C02DC7FD00B960BD870CF9890EF4B863BAE04D7BD3BC9EC67D594EB02A15F3C28C7F9073CCC5B34429F941F6CD233342FB685CFB4AA28D6BBEA0F312AF70AB183614230FB233FF277E4D281FCCCF75600199CEAE2A1493E6F040CF0CE586332A04590F673A57BA304477C9F9145E14332DABDBECD3FF32EDAB1A4BD510B29ECD2982A343A8729CFD8F9255B746B83805B22389E5A9A1BC34068E99204E63DE30FB6AA226D0461C4EDFF605CB08CB64F2B082508DBEF0E73FBE2A00D45F9A8D8146E38C4D72F8FD94870C50589D3BDC0B819FC08B0FB32B0F3016AC0CC739F15211801A318A29A542115316ABFD19F90B4AF44135271CC159AE1D8A74CC378FF6C492F61F1076495E2B77158F3C0FE02252E21C365EE751E4E2EB5028CE7FBFF8FB5A6D4D9B12AA15BAC1AA26650572266A95B078E3BEFB158D1EF37812196A9801B34CFBDC4B03677CE88C629838C00458A24705CE05E0FD4F418435223C7CE0A3295372FB37B183997313A78E705DEF7B274E900383C7D6454A681018BEC6FF2E087E8824DC6114ABF9490B6A62C6C03BEAD9E0A6DB7A5F3B0A7BDBA61F913A3C25738757E8E7CE52A2A08BA08328101B124061AD86FCC60973E6DF2CBA3CB57AFC4A2A609747198ED73378B3A86E14B56CA4F66CDEA5840D24C6396B00710E37FF4A04DD3F08A537D70610BBC8B715E741CAE88D4A11D84AEE745EDBDB0D2C142D2A467BA788FC82D49C96966DB152EC101B44F8C78DE27D43301E82D128E70E5D10A9E830BA3F1F3CA04440D9A98CB9BCA802CBCA79EB6F00759E9562AD3F8973B6205162B800768062506AC79D2ADE8FEE27079E71E88F989F050645D4F15EDDB963F3F6FD31FA36335922EB792CE6BB393C89AE7AE04479579FC99F6CD5D7C09BF3ED423AFD4520DB747D8A91109CD75A11D9CF8079BE24B3E794AF99F41610B2ABF24D49349127A95826B06C7B7F488606784E9C50D7A38F1D8732C5FA60EC00ADE4EB79E2279E3899E88E057ECFD9882DB24859D68DB39A9313D1348DF113F7EBC21C84E67B3ECFB5A593C9EFDA9204C7871CE0BFC9745EEE7604B2E12630986DA685568DD89F5A0E3E9A72BED11420ECB57B54E0DB0BB03A57093E13232574D7099509009E634C03A83BF1FE2091A53DE7F681C577D7CEA1EC064E94E7A74EB1C855084859ED6EA73148F12EA9E3B01B714B6863CA0D0FEC5911B7523AD3DD601CC7BC2024F149F47C2B5C132B4BC7132BDB4AE8A9DEB754C3C0E6A829FD858A53FEA6D6C8AAD4434627B6915EAF9C324E50DE89CDCE91DE7A2A9D256F93A70AF75647C672722EBC6B9430E772F070014425C323C89FD9F76A4E35928EC2CAB33589F83258FE42A81077BD9CA60C7A5C1B9657A8D701546B511149092C2A8D73268255F80678BDF406B3792D526FAAA02FB235F1BC2B25E29F4A1F259E42B16ED3 +ss = 9E0757DE9384D63FC8D87E5B1B2FC43D1381618F561E27E1F391D11EE8582C3E + +count = 46 +keypair_coins = C1B3CBFFAD4B306F9AF0CDD3028876486DBE858875C9B6497FE20172A986C82BB5B9E60227058AFD73501B1C4E45ADBBD41C7BE8D14BCB8E98AF77698FDF6B69 +pk = CF76C08745BCB7CB2C3478823C977BA1F3565D880D8E731337D798FD273BEE2A03416CB6D11774E0B7C177E23A619509E04C334E486F97A963035C2952FA286C8108A3FA6857C080076143185603EF480C7EA135C76497AC2A4EA1C65C535385BB233C54B0326D415D2B01CB0FA60B969BCFD5578920A06659291B59E5100441B0E535B46294680627646C052D13404E486713FC460727F50677E48E64275E4E2B33DA225686D920941277CAEA4D8F4A7C7B96B151B36836A76671C9010CC7546ED301866A694104169540A8620415037654A55AB132D56590663C21C267B94A2F1A162BD61808512C2E7C671247142C3CC54622697EDB50514895276EFCC21BB02D45C79A4549A501E79859361457047ABA280F91C13556D06095A13EF8EC756556B31C1A535FE895E3AA85A78346692B9B225330637397A482AFE97B508304B6140CA9DA2C33F26522D51363662A0C437CC3DAE5AD97B491D8885DBFC65C82BA88E6D78564133FE5EC502543340736B2FD927C2E3207CC77CC127790FF2634CC2220AD001E39EC393C5C5B5598193D628417B7BF5F903E9274C2A1A38F72DB99E4C2AECD8B5B5B445D3D259057B2B3AC1B3A0657C2DFFB6C75C93B20EC3358180F9C124FDAC8A64D2B73CE6819BC1005602151F7E4C804BC89A81797CA8313650910C7B2A36AD2A690E3AF7A99CB2BB09CB1EACA0891BC69D989CB7220FAA3626342CD33438877799835C2782413A9F1CA29861752F294B7E3C2A3980618D0540A5CF00C01943DB920BB4693436D3B7436593E7B9A83CD21CBDC692956CB3F7A17C41F46AF94BB15059B8661349248235ADF68B69D9944F2F30F93173FFDA657C9D722D0521C12B2790E230AFB49496A930C46A62A4D8C26601A4E783B73C2A465722401769365719681C5086D8A7BBCFFF451E58B2CF32B363C501E978971D8C5AC6F41B458693C711765C7FC1AD7319F3481A68BC456EEDC04FCA898B0B3AB59A14B7FA1C148B6B792352E7CCB1456A86A5A0377FF98C08AC0BC4C997B0370BAA76950BD0874F9478E6B8150770C4EF2885E88D119126492C09B8E93110616406E6BC7AB46CCB0B47587C0DA1C54828F98941DAE515D279308302B672BA10FFA0749395269F5C5A03581799EB3B60FD53355B3690EFC291C3B77AEC797FD09B1CCCC8D5BDB8B4DBC18857C28ECF86BA3A654B8A351D0174DF4EA4D7F4159656010F051462A3C4988E28E74C39CDDB557566B7C757874D9061FA5F85693CA2124822891A4A0AFB000A3887522326DBDF4A54E851CC775405938BDBBD39370C01BA010B8B3785E3880A54470546B617AD86BC984A70DE844A510E6A14E241F18C765FD04C2006C6781EC90C9E16881B7BC4557945D68A4543A5F16968B39F38E8F5AA7699171D8567E35DA662087AECEA63AEC3094BB4C88F08432B86780237218AFC22EC78C96322A81B8060719FB6742C290ECD8664FD378A95341F3C326D992B3B7417C5F543249D57475B3B526B93307664217B8837C1C48EE6322DF891CBF6943FDD445F2DA71F8AC449C718E8412CBE0BC2EFBE601AD08AF68B48F7D2677DBE05914D9B1629B6CFB69A9F43A05B6FA560143A45F21405B25983115B537315964B3525117158013A434785FA13B30331148F028A2E3E299C9969FBBA917CC27B851823630BBB930AB2336B59D1E0060E74230D6A0399087ACE16894D1E4236F3B9B708645A3B27378A86C960BB038080F93E66BD1BCC3E57739591C386C45846CECBFC90AB3FD506EC50C0D0EC9A2422CBACACAC17F62472B4AC6CCC645D48B0283A6C62136A60D62354A983D4CEB74EDDBAAE57711BD958614F054336A38630535F0DCBDAF918E5DFAC711093974D2987DC1109CE7BF7429CFDDDA9E1826172114254CE0BC526AB358E359C35CBA02E720C4611DC17122B8BB02702A962DB3470E32620D62291AD8C9DB86615E9AB48DF3AEFDA4003F815A1157640E765AFB2527B2C532011CA07E321673C721C3F32A2613394F68B687A042724C0207CC3B87675AB51A60B4F12D312A0FB5443CD0518B1F9788FEF9A36752291647C234D49DAF4A6A4BF420E990307F676271A47CFDC68182500A93C914EA348DBD544B3163780A2C2373282E319B346E7BA0B1EB67A1F92F57648FB68BB6CC9865FAE1AD459AD417635C409C28F9EF936AE28D221563E30F83162CEF01B482889E +sk = F3AC3178BC3E6B8002EB20046EE3288F9CC63C1ABD0B14A118D52E2C9A998D4C67E2014415084F520945F55B985ADAC8C503079789AECC491EB7BA540F32BE8823A4A837786BE140D260CFF5D46186588F4FE2419E0C4BA1B619567B9D8206B53AB1289640520F2259F5D6854871498B23696A321813D7A544E77FB3100B34C89AF2C63856FB43BB0A74A6073958D1199B4098386984847962B353B4D81AAF4CF65349C8197DB8C1B29A91FDE5AF1F9749A96B3B82C567207A81A163347919AEA565304B4820369799D352CE72415CF1C692537A48AB603B9DC741A08A66D874BF46DAAD570B6F1F4133067A1D900CA87CC25E91C4CE1C84B46D3C5BAAD46FED227268F1A9DBA968EFF27249B3C6E4C7C19E8A13046A2B45BC24F4304A80C09D37AC289F924F33E97181B8393EAA82A6FA54F2E76DD88791B5C3773707046C362D94EA547C3050AB251953464F4E540764B08103A88E448446F6B82375C15E3CA9A98798639B83638ADA857BDC1E3C6705471975C51B8087A26348BABEFD234D27D6C055D3AAB7560B28DCC13D343A79530AC868B5F6AC83AF04B8D7A20B64DABE9DE32A5C1B2C2ACACCC4588C1BA26F5462AAA5C1BDBC36467F346A1AB5C5840A07BD33CEB44093659BB0451C4C87CA4852172DC0BC3674B4275078CD2B9A3AFD61BFE454107D092E5840C4968C547ADC723C1970CFE705C5D33E3A4533F0028655C6BA44AB22C2A4C85A82B4B6DCC09765124E43C985459CB2AB1519DB1EC6F348D017A785484802D90E0222CA2313B4FBC465DEC0CD4F3A5675E33CF0DB79145867D5F0B8F340526C8A744929728CECCD146B6E66D03F660AA4E2E15D200B5960F3A03B571BB2E59160048E498C15379027E07987DDD841BDACA79764BCAA1C9843FCCC65B53695335D9D4CC789E062571665DA99B4E10368467AA551775C39C7C9DFE7624E8940F294C8655503F2F970071B40F6BA3544C64C41887184828BE6057A9E972631604901A7870733580C6AB8D4AA18B49CB4D567577AA8B0CA2490EDC68B168583B8B38415D32F5558996CC911A9470951430C36F71712F1C579A12327C41C441C980C286B71A31748EA54DF2A557FD1701C3173944B7B40117EF9CB08A7D03D45531B8DE4C753F697EC4B4303448C260B0783C81ED599425D9B16806828BF795C8CF65A95F366BB90110CC75D3E6064BEE17CF1497F36C48E68B46EC07417B2A876CB556C705C7DDC387D74F2B0AEEC9070D227AF09A324495F551680A474328D379AAC253A6F4C42C865A183D7C2F4F8CA94A92388B1AFBB5408CB1C0FCD3C945E2923ACDB7E16A45C03EC3298B3C44E9C1E75D049B2EBBCF2F29A2D3B7FC68644530010E052A0D357809009CD786604A39898B385B70AD7B3BE011EA83B93D4426F4F20A3D0836FC6FB532FA14536285013050C16D01C5752884E49A82A4A0BDBC8BC2C7598D548278703AB4C607A16B1BAB64052F40A06D3915CD03825F12C069D956F2A5662E05804183932B5216CA66274214ACF5C01A7F4C77EBF522DB776068F94151F7AC33831259B53BC48E99C50B260FAEC0B7BD3CD4FA9B5A5C2588CF098FCE5AAEEB15FE651355537953D9B8580313B56336F9E6A723F412123C51E942438FCF65F92CB91A0F99B3DC5B0D90A94D7F9B0D9D4CA42408750169540A2BCF2CA20F13BBFF3BA60F6FAA2DF7C176F74CDC2090555C658F24273980C4D6C03461751B9E7E59E87062037433D2A79C72FA6307A77B3D0C42CD8D1AED464B90963C351B2648AB5BC113909EE6C15BB0189603194155051FA534D0E723F4E28CEA0B7AD34B3767E1029598B16CD87181D9B8332F87B38795EECF1622F7955BC646E470B54BD3BC915C3BD2FE40EBA8B31A21B79130A3EA50CBABE79B7370B5130695ED8A61291125F79122B8A19666FC571076361AF26B1979A939D481B55B781BACA19898119DB5AB19CD22617A59851A04B5DB78E1A532A4DA80ED29C8BD11A5FF3609E9C6B4B2417155045AF7EDB0D91506A7BB5920A5095C3327B6182A74AA14BB4957597077E93C880283137D9B424F3C16357051C4BD88549C090ECF23BF7650941AC00234C0398C56D0E3608F1E348DB9A0D4E252F78B05C9BDA80DC01A7C0B720646CB3475514CA43B2254BA566C929D9D68FCF76C08745BCB7CB2C3478823C977BA1F3565D880D8E731337D798FD273BEE2A03416CB6D11774E0B7C177E23A619509E04C334E486F97A963035C2952FA286C8108A3FA6857C080076143185603EF480C7EA135C76497AC2A4EA1C65C535385BB233C54B0326D415D2B01CB0FA60B969BCFD5578920A06659291B59E5100441B0E535B46294680627646C052D13404E486713FC460727F50677E48E64275E4E2B33DA225686D920941277CAEA4D8F4A7C7B96B151B36836A76671C9010CC7546ED301866A694104169540A8620415037654A55AB132D56590663C21C267B94A2F1A162BD61808512C2E7C671247142C3CC54622697EDB50514895276EFCC21BB02D45C79A4549A501E79859361457047ABA280F91C13556D06095A13EF8EC756556B31C1A535FE895E3AA85A78346692B9B225330637397A482AFE97B508304B6140CA9DA2C33F26522D51363662A0C437CC3DAE5AD97B491D8885DBFC65C82BA88E6D78564133FE5EC502543340736B2FD927C2E3207CC77CC127790FF2634CC2220AD001E39EC393C5C5B5598193D628417B7BF5F903E9274C2A1A38F72DB99E4C2AECD8B5B5B445D3D259057B2B3AC1B3A0657C2DFFB6C75C93B20EC3358180F9C124FDAC8A64D2B73CE6819BC1005602151F7E4C804BC89A81797CA8313650910C7B2A36AD2A690E3AF7A99CB2BB09CB1EACA0891BC69D989CB7220FAA3626342CD33438877799835C2782413A9F1CA29861752F294B7E3C2A3980618D0540A5CF00C01943DB920BB4693436D3B7436593E7B9A83CD21CBDC692956CB3F7A17C41F46AF94BB15059B8661349248235ADF68B69D9944F2F30F93173FFDA657C9D722D0521C12B2790E230AFB49496A930C46A62A4D8C26601A4E783B73C2A465722401769365719681C5086D8A7BBCFFF451E58B2CF32B363C501E978971D8C5AC6F41B458693C711765C7FC1AD7319F3481A68BC456EEDC04FCA898B0B3AB59A14B7FA1C148B6B792352E7CCB1456A86A5A0377FF98C08AC0BC4C997B0370BAA76950BD0874F9478E6B8150770C4EF2885E88D119126492C09B8E93110616406E6BC7AB46CCB0B47587C0DA1C54828F98941DAE515D279308302B672BA10FFA0749395269F5C5A03581799EB3B60FD53355B3690EFC291C3B77AEC797FD09B1CCCC8D5BDB8B4DBC18857C28ECF86BA3A654B8A351D0174DF4EA4D7F4159656010F051462A3C4988E28E74C39CDDB557566B7C757874D9061FA5F85693CA2124822891A4A0AFB000A3887522326DBDF4A54E851CC775405938BDBBD39370C01BA010B8B3785E3880A54470546B617AD86BC984A70DE844A510E6A14E241F18C765FD04C2006C6781EC90C9E16881B7BC4557945D68A4543A5F16968B39F38E8F5AA7699171D8567E35DA662087AECEA63AEC3094BB4C88F08432B86780237218AFC22EC78C96322A81B8060719FB6742C290ECD8664FD378A95341F3C326D992B3B7417C5F543249D57475B3B526B93307664217B8837C1C48EE6322DF891CBF6943FDD445F2DA71F8AC449C718E8412CBE0BC2EFBE601AD08AF68B48F7D2677DBE05914D9B1629B6CFB69A9F43A05B6FA560143A45F21405B25983115B537315964B3525117158013A434785FA13B30331148F028A2E3E299C9969FBBA917CC27B851823630BBB930AB2336B59D1E0060E74230D6A0399087ACE16894D1E4236F3B9B708645A3B27378A86C960BB038080F93E66BD1BCC3E57739591C386C45846CECBFC90AB3FD506EC50C0D0EC9A2422CBACACAC17F62472B4AC6CCC645D48B0283A6C62136A60D62354A983D4CEB74EDDBAAE57711BD958614F054336A38630535F0DCBDAF918E5DFAC711093974D2987DC1109CE7BF7429CFDDDA9E1826172114254CE0BC526AB358E359C35CBA02E720C4611DC17122B8BB02702A962DB3470E32620D62291AD8C9DB86615E9AB48DF3AEFDA4003F815A1157640E765AFB2527B2C532011CA07E321673C721C3F32A2613394F68B687A042724C0207CC3B87675AB51A60B4F12D312A0FB5443CD0518B1F9788FEF9A36752291647C234D49DAF4A6A4BF420E990307F676271A47CFDC68182500A93C914EA348DBD544B3163780A2C2373282E319B346E7BA0B1EB67A1F92F57648FB68BB6CC9865FAE1AD459AD417635C409C28F9EF936AE28D221563E30F83162CEF01B482889E4F8B3E9AE47D3B5B95C080D4F18440C24B0691C19F06F5547554697BDFE97B01B5B9E60227058AFD73501B1C4E45ADBBD41C7BE8D14BCB8E98AF77698FDF6B69 +encap_coins = D70B79DE7C2F7CB8D18EAF1CA040F6D8588BA85512AD000B59806BA485538377 +ct = 661FB150B8279D29667FD195DD9AFAA24443B8257FF64AB917DEACE7C02ED831404FDFF8158BA8A8C32AD3146EA4D8DAC4F8F3A19EE80C7593C8AD8A4A5857AF785CF9B1B89E6DAC96927748D22DB0AE8D2A8957F7A21A554D2572D46354F3BCEFBB8689F07533FFB574C6F27DD2CFA9A60A6106B827E5699FA5483AEF3F9D1B92D7054BEB539EFF80CC3AF4CA993EEA4BCB29DC457684E56FA66185E12F7163102540C804F620354EFD4F042614E9B27F633C0BD7BD4BAED55A1D152BBA4C214205301F422D508093C0EF6808B0F95F0E50C22091986C176705C4B5F227C2BE51F61D00B93D1646A2B222C57FEE68E43E1E17B0A52BB9AC61D66B77C8DF6191CC9EDF535876F12A1D7BDA1E8ED1B7C22F00B101A17734EB1590737DB01B5BD420AABC375032CD534BBD5902BA9DAB604B3B81F68460CCD0D4543DF4FCC0AFEBFE0418C35D42F7C59B5A7A1BD903F20CF720602A9B194E50457A433CC84A43FEE091CE01026AD58F14066BBAE5B4008749511899792D0A5BDF7132A1577824D091CFEA1BBE5546DA36AEF1BDD6220BA430A3A0B93F53F0AC305F4CE8D1CDDDE9625DA5AD9806E0E674E75AB781A33A0F66EF95AD6C148FF078FE3A83B2629D9C38282A070C5E0C9233AEA00B6F7D54609E236040E487DBB87F2EE1C1ECF86AB7F02B82C346D1A3B8694D6E9EA8E626F767CD0B7870C8856B167E29B1A90646B2C7C2AC6E7B3804DEB09971BBB9A0598D7E8723F278286E8845E40CF1CC03BAB91F4DE73DA22B86FC236BB093EC97ED27D91E6E7D6B00DA8D71D9077F77E352BF193C398D742D9D0245B852F5ECFEFFF4208BD94CA74F2F2F30D21D99986E005DF2B39B1EC62E4853B09B9AFD456AC63D3152D47BCBF3A272DBCEFBE4FD0853C7CDEA6CF3EEA85122EF226B8FD4F80B5EBD2339CAC598045DE0EE10A198E4DF0203260C232944973EC7A70943F055C051D465DBEFACFDE8D4672A7DB0E65703A5D2FF7B840530A77DA22F4DF38645B44D8F440BF080204D53CF6C211C650F1C890A3BD7120A598CE0B50565BB9478B9052E65EC6E20060D7142B3049B87506C26F22165A9259B58B64C8AA43B0F4030A5CCF8DB51BA4D8EF3F88AF4B882177E1AE389C2E6AE5847F399F9CA1AA239B8B9B2F07C80C55131E15DA75259374E189604F107470897475C26487A1BDBBE7DF3CA74C805CE6F9D348DD6ECD8A6F0C60CC2E55DC27AF63F7A98F78D18D7830840507C3EA4E293CEF7D9B8D12F8AF45291E5F3948BB49DDF7CB41ED6CBD6479B0719A66F6922AEE3F18DC1984A6C96429B8C738A40455886684B8A6696066508DF25C06A3D9B974CCB7CD81A6B6D47FDB07F4AE9FAD93959FDA922B876C48C5336D4B7D90B55C7AEBC031A6B7A0CD5E6227CE87FA58992462AF5BBCDB4EFCCA92E6CD80E15D6A8B4EFD185D1995F83515C315A2E7949995963E8D8E2319E82CEF0572B36D0E2ADCEB9E4575B291B5F0815CD78286FB587C0CB339AC19C390E85D7A05B23E7DF85589C70B4420ADAEAD9BA2108064E72A71EF328443587DCDDE09CA5615A2DB8E0A2BA63ABB1F456136E8286DA3EB9C22569141598360E2A2E2FA6CB694F82C3F0A73D2D1D6E4BC7884F6A7F24364DC2A81238AFFF90EC049DDFEE9B1AF58B5F086DD1EE7B88EFA0850130358BC7D48D64F9F254D28C6D2E56EAF2FA493B8724BB1DEB2326712B129CE607683384E0E1406CE6CCA1585E87FCACAB6255E4C6378A7AA88AE342B72137BE0BB67EEE42B483E813D01B7E90F76DA2F54E2DCD3D36A4A59087584110E533783C912576102050C8F510E3CFE7BCDB81230DA5465A536A35E2784B7C1F38DAFB5F50E2E4E3225E8CE01A09C07998ED1C905F177690D538E44C9C50768693C13A7E3B64A38247214FBB8FA43560712C4CFF9D973809F9C77130C5EF7638B17D9675C18FD1DA047EC0787CF6A4FE057E85A8438100F08600AACA732A60600F296CE5576760496C64BB341FC8F7A55D9556FBE90FB746D40B3ED900BDD5DF7A6FE320D3C6C496DBBD6873017048AA8620D81AC8E8ABCE61061ECDD429327254F76EFEEAB814DB4013949D1FF5E09CD74B61FA3DF560BDFD981BA4229D50F25158189EA4508E8BE19E3BC12349A12D62B92E6FB9CFCF931DB3C59F5603C433B9181F556B710481BC84316BFAB106FC85F5B5BE1BF275AD6A23D32948700EFDBBCDE1CC +ss = 8F92FAEC3F277432DEEC14A11AAA885FAA418F36585FB927C288C052CD9D20A3 + +count = 47 +keypair_coins = FF7495B8575B5A98E4FD21FB4C3E58CBB60F14BEF21AA74CF8802E3153F1480711C033D4A4BB231985CA7E851FC73EA4B2C29E131B7F442DB8A66A9E5B31934B +pk = 2E225B33D590A3BC60FF331F856884594944A1055F1AC6BBD5F7BBE0C7B5363C984D408B493B92BCA2A9395B7DD9A46C17B632976324206179BF05406E629F86875573D05B0599B561DC5EE8F54A73690B5C3B414FCB7AADE872A9489A5530025B442C94052D5E892CB47B7C7585547A72A9E3A3CDA629AEF1876C96C479063C49E94B952CF819AF8B3BC39995D4563337BBCD419C17C4F5696A6002CBC6B760E344A7FC49C2D0C0ED52B54F16041E5C4ECF2426442B9D59EC05872190A80B4F341312F91B7737CC77696ACC5E0323E02100563519AD3002FB95B0591AA126A70ECB708143C7A502C53A77A82AE915B25BE77C68006F4CCB0252463DD668537C24BF4B0039CAC4A4E6B3C19AD37301B595C504909D8A4B8AF71C0FC2C905E26B5317703B3195712070B0D5677BD5101C4BAF9186582A8B70D163AB01C6151177B7C83B6CCA2BBF62F6ABEF41C6AD6764CD8392819A85CAD945EBD210B9C08F1333A393B144A4782E683CA2C73C5875F20DEBE3AB59C8393F7CAF4328A57618197450097D250E9A77266D15CBD7B3867DC49C0E83C7717513BDA8235E8B89FDE06CEF1413EE0A0E42C814B4DA9D0B0C5961F73E90C57C1DC614DE43C396118979CBA7144316607BB82E5451E9475C0CC4127C58A69FC47E6F02A3FBAA03949A9760573B2BD3C6606325C56A23CF4AADD8024BF9D1020332CBA28C7FEE610D45674E17281E047822138B04DF69CE9E11AA644C47FFFC688BA4B6C91B01E2747D2765B7D9579485A37E7090AEAE19AE2773CB4CC17B998C9D25955A33A0A9C47117FBA45F02611F1FB59D415A93AEE26A2E4726E50C457C692766D55477546785F76A2AB7C5AB983A90771834DA4016A755A2040EE3F6A24145CD2F827729BC74B17BC92032548B663F50B307AC511C47E24E4AC4957E552C4662915074373D83B34F468BD66091B984692DD32669332B0527B0A0BB3DF41556AEE9693EAACF97047516B6AA455311CF97135B697E7E9A2E147756E8FB0B657B41A6352FE6A17F4B031EFE17926B7757FA74831257CE2442066C624BDB106D3330B99D730E7EAC1D1528348156352E266475204C6E13B5DC06B2596097C1DA6BB2D31E139C34F732A70BC09AFD6A8E9700BB20FC78E3FB15EBA8B2ECA7BDA0508B1D8C0C9393557E62836117219FC2201C79346949C53D8414C7E673106234E98CC1508C81317450670CA7DE957BFEAAB0E6780FBD755EEB08A441F983E3C81468A7BFCBB152BF6A581A901564F2CC6AC13423C32DAD054E02E6509725BF13605F646922BCF84FCB4B456C7CA25457415C7275BA54AE8C4717157A299FA18B49FA6BE7460F8427516649440D4C0DD42814B8C4692D71B7B6C0049473472E002A53392D183B4AB70B6582557F8ED067EEBC00B670B517433466EC6B2F967EC1720B8C68C41D2923FAE5C4285C63B03A8416926B93496DD57B6E241B14F2576E7B9A28076B2DCB8C2F475152A5FA7EC98C952A263CFC221282D57BF329A0DAD122046A75399507574289A18226AFA90CE4D7235AD9A658955B6A25359A435D5A6798B1D453B90679B5849E3FC817899375F890470238004CC7520BE51FEB8291CB8BC336813DD14A7BB24B2B8B8B425A969C4E410AC4876787F67ECB61409885518E0533884C613F70A22997B0B8CB1E2E333D51AC4E5FE854C657C0CC748ADEE498B6C389D4B498D206845DAA6AA89731B1DBB33F2C38DB8614024778225B92D5826E1BCCA780400E79B42E0FA3BAACC5825BFC0F45CBC485D69C024CA504A975ADA9A5A822CC0C11CB3FBABC64D07DB6133A7E91223C3658725686CEAB91EB74060BD039CF1488376660225B42DB441DDBD437D5193BFE777B35513AC8D85E6DA433FAEC55FE969FD3865EB9045589B09769A41C963596CE70238CF7B407B096EA546FD5F141DDD54EC001B76CF634871240D9F82F77F5153E84A6A5C41A3CD908E962C5B8898EBD4287FB2C97A0710B448C4EC93CC5EF1719C91B92AE77B35CF2628396160F0BC3263003E2E89243F073726A657B2386173115B778CFC842C67A4B71D5276A934AA94D92B452286A35913B0262AF2A4007642A0B04F76CE58A31BC776D6F1B8966180E2EF026763A87519A10B8049D799A8A3D038D5BE31ECCD5676550482CB48F19171D8F1A3A633448FE9C83BD28097BB29A168DB5AF1D1B354B6881A2CE509B +sk = 37F7089480382622AC6687B4B15BBDBC1A9AD7467E8FF4CF44F0614DE74B9591B9C5410D2D7084BB57AC27963AAFAC148DE80DDA6232F4A0C634D677A80C226FE67063191C05A54AFC026080877538F63DF93CC6FDECBBC0A9A0A4215488DA1A2F7B1EA8F8B917F32F397B94C80170BCD423C1F1BA4C736449F84BAFD6711B0070DAE72DE1EA3923435FE15A4FB35AC98D6379F0A44C200A37704B5B269BA3A555961ACA5E2CC1518FA4BAD3C23438E06952C9317D198B0C112D79A89560DC3361F5732F820CE4D16ED448AC2ED221C8EA3601602C27F640DCC394A7ECB5079978CF52B80DE15C3015839A44B9EE36837866C5C8E9579849B331E53DBC049E46DBB524C2090A54BA793C845420A7C2C29E78A9B8C83C310D780F74127C02A59AB68C1B29952DFF1196D0940EDC338DF3E1C1C8E34FD0DAC4D5596F97A2AFA98B1E8BE46BC0A96DF412639AE5B52229086229B5BC79AC020B61A56C04091C10CF9940F798A9C50BA1F5FB30BFA947F20B62A60215C5A88D23B70C0E299C53F49A1ED511AC5812558133D9F195E1FB5D77314559EA79E63A88E781C4224155ABB5CA91F089C0C609CECCA32E549B0CBA167D9307A3A64681A815A69C5D7E787751162483E7701437034F0864D8D53201FAB9763C7921ECA6F11247E7EA364298C1C3AB893549572BEC45C1A8C3B88659CFD526810B23F2095AA6C1424C7178187109F83063B52547B9C731F9933622A33C7A8B927A50191593488F9A0D12331017919159C7A027C3956FE109393A167A6475CEBB49224736847319D161490EC52396D7BABFB638BDEA29F50C9CE37314FC858455F63FCC70CFCB751DF12274FEEB45A124AB1B997C917A550C3469A0C185EB0238FFCB4DCBF751E12CA17A71B807B1446EA7180EE302E6998EF8D12A857C84FFC377F5E42FD41238A54345229916A715977025B3B4A6060F778DE7D426A2F95927335CB202BF4080B8510CC0DA12C4EAEC4BBFA42997E21504B8C5D32604F1D66E8D55B50C393F973ACD37A236DB595E3EF08239C42FB5E9243D967181B9B94F4521C104A8AA726DEC057ABD419BC8C6CF350C91ACB78B0832144F409F78992652E30EED7BA2375B3245D877C8E8B873F0427071C956633495381A2C642B15282B9945C758910FE469CD091B4458218105DA96A479BE0AC6B3BA155D359B2815916E93E9BAD3D431945B852E519DF0129174B24A32CC9FB8A62DE96733D153A799CB8FBA3C86B9101CF3D4A97BD3B699467991A57129607C27274D3224CD1848C17F1550BE47B71A119873045E215BB817CB92C12A7BDC6347DF8B64DD686873D800B4672AADE8AF56D2995546CC37C06F9212A54745C5597184EA85CEDCA7B980386FB91B8AE677A035A4547B5848879C2567C8CD6AC285F6F2460DBC0B73F5AE0993C988418C234895380C556042ACD15A6C015A13EBE16CDEA4BE38528A9D244230A0AB053C568E31C64D06A3D7BCA0E5207B7669811A3512F8AC6887137B0B7627D2401CCD604AE786753FB6568CB522B28712211208C1849D1F75CC4FB951D2AA081ADA952998B0B0E938B77359233A76C135897E91059CC5639E978C12C6BBFB735FEF4BCB1D60180DF21DD367C02E79916D697F20197D07E9980AF13D3A0AC5D2E010A8BC850476630F5B8B37CB8A88C14A047A1AFD576B6FD0AAC283981457430CC62A900C7E81F47F2574802EB91707E54DB0E77C223467ED07C29B7C5197A38B9CC7C77D99018FAA271ED10B32843A92001BE592AFA651082A646858E4497F777C0F589913F50B0952669689BBDC033701042F32DC48FC26038A63142E17A6D7C711F5F058C2392A50779EAA221C811975D957C389513F39F42F7A58175CD1A6A50B730888102DC93F4F056BCB42710572B6CE36865C621A75D7717412A12CBA792988517540A3D8493F3EA68858654C62807794CCCC4102A9E24328CC722971012AF19BB7AB6C97F4813FFE5A2F13403A37B7477D18BD35E4613B73B4EE15A3C639593C8530211A0A52D214B7D48DD93AB27CE23975F2CD9D8AA70C878FCF342CD8343488D7A0B75228DD3CC8EBC1148271AF1526583603BAAEE2110C400AE5145CEBFB63FD118F958081E9A652C322B793883144B96517C088F4237F9A067AD83BB3A59C1CADBBBD2E225B33D590A3BC60FF331F856884594944A1055F1AC6BBD5F7BBE0C7B5363C984D408B493B92BCA2A9395B7DD9A46C17B632976324206179BF05406E629F86875573D05B0599B561DC5EE8F54A73690B5C3B414FCB7AADE872A9489A5530025B442C94052D5E892CB47B7C7585547A72A9E3A3CDA629AEF1876C96C479063C49E94B952CF819AF8B3BC39995D4563337BBCD419C17C4F5696A6002CBC6B760E344A7FC49C2D0C0ED52B54F16041E5C4ECF2426442B9D59EC05872190A80B4F341312F91B7737CC77696ACC5E0323E02100563519AD3002FB95B0591AA126A70ECB708143C7A502C53A77A82AE915B25BE77C68006F4CCB0252463DD668537C24BF4B0039CAC4A4E6B3C19AD37301B595C504909D8A4B8AF71C0FC2C905E26B5317703B3195712070B0D5677BD5101C4BAF9186582A8B70D163AB01C6151177B7C83B6CCA2BBF62F6ABEF41C6AD6764CD8392819A85CAD945EBD210B9C08F1333A393B144A4782E683CA2C73C5875F20DEBE3AB59C8393F7CAF4328A57618197450097D250E9A77266D15CBD7B3867DC49C0E83C7717513BDA8235E8B89FDE06CEF1413EE0A0E42C814B4DA9D0B0C5961F73E90C57C1DC614DE43C396118979CBA7144316607BB82E5451E9475C0CC4127C58A69FC47E6F02A3FBAA03949A9760573B2BD3C6606325C56A23CF4AADD8024BF9D1020332CBA28C7FEE610D45674E17281E047822138B04DF69CE9E11AA644C47FFFC688BA4B6C91B01E2747D2765B7D9579485A37E7090AEAE19AE2773CB4CC17B998C9D25955A33A0A9C47117FBA45F02611F1FB59D415A93AEE26A2E4726E50C457C692766D55477546785F76A2AB7C5AB983A90771834DA4016A755A2040EE3F6A24145CD2F827729BC74B17BC92032548B663F50B307AC511C47E24E4AC4957E552C4662915074373D83B34F468BD66091B984692DD32669332B0527B0A0BB3DF41556AEE9693EAACF97047516B6AA455311CF97135B697E7E9A2E147756E8FB0B657B41A6352FE6A17F4B031EFE17926B7757FA74831257CE2442066C624BDB106D3330B99D730E7EAC1D1528348156352E266475204C6E13B5DC06B2596097C1DA6BB2D31E139C34F732A70BC09AFD6A8E9700BB20FC78E3FB15EBA8B2ECA7BDA0508B1D8C0C9393557E62836117219FC2201C79346949C53D8414C7E673106234E98CC1508C81317450670CA7DE957BFEAAB0E6780FBD755EEB08A441F983E3C81468A7BFCBB152BF6A581A901564F2CC6AC13423C32DAD054E02E6509725BF13605F646922BCF84FCB4B456C7CA25457415C7275BA54AE8C4717157A299FA18B49FA6BE7460F8427516649440D4C0DD42814B8C4692D71B7B6C0049473472E002A53392D183B4AB70B6582557F8ED067EEBC00B670B517433466EC6B2F967EC1720B8C68C41D2923FAE5C4285C63B03A8416926B93496DD57B6E241B14F2576E7B9A28076B2DCB8C2F475152A5FA7EC98C952A263CFC221282D57BF329A0DAD122046A75399507574289A18226AFA90CE4D7235AD9A658955B6A25359A435D5A6798B1D453B90679B5849E3FC817899375F890470238004CC7520BE51FEB8291CB8BC336813DD14A7BB24B2B8B8B425A969C4E410AC4876787F67ECB61409885518E0533884C613F70A22997B0B8CB1E2E333D51AC4E5FE854C657C0CC748ADEE498B6C389D4B498D206845DAA6AA89731B1DBB33F2C38DB8614024778225B92D5826E1BCCA780400E79B42E0FA3BAACC5825BFC0F45CBC485D69C024CA504A975ADA9A5A822CC0C11CB3FBABC64D07DB6133A7E91223C3658725686CEAB91EB74060BD039CF1488376660225B42DB441DDBD437D5193BFE777B35513AC8D85E6DA433FAEC55FE969FD3865EB9045589B09769A41C963596CE70238CF7B407B096EA546FD5F141DDD54EC001B76CF634871240D9F82F77F5153E84A6A5C41A3CD908E962C5B8898EBD4287FB2C97A0710B448C4EC93CC5EF1719C91B92AE77B35CF2628396160F0BC3263003E2E89243F073726A657B2386173115B778CFC842C67A4B71D5276A934AA94D92B452286A35913B0262AF2A4007642A0B04F76CE58A31BC776D6F1B8966180E2EF026763A87519A10B8049D799A8A3D038D5BE31ECCD5676550482CB48F19171D8F1A3A633448FE9C83BD28097BB29A168DB5AF1D1B354B6881A2CE509BC1B4FDC4929C2C7E4501BA7A9FEB0BE571E27C43FA96F9A7F934636ED9A8611011C033D4A4BB231985CA7E851FC73EA4B2C29E131B7F442DB8A66A9E5B31934B +encap_coins = 8449BFFAFB415183EC7E27D7FA2E30AE045B7D860A4F59AD0C551A8488E1DB6E +ct = ADBEB58726CCFDEB0F57D7643AA30944A004D9754700087B81F8076B8771BFC17419C8529CE51B955BDBF41FD1EFD70B04C09B4B8F6C927AD9796BA72774FCCF5A873E5C0D1D702828E20328BF6C8DF7D4B5E54BDD005B00EEE56BCEC4407826032D2D7AD776CE41DC11D7D614C33D39405708AA5990F50F70B600CC423A6C687AEC77E915FC43DF169C93F1CBDD292EF1388972EAE2308C4508652DB330163A6F6A7789FF5B7C03F0B6EEBFA8204DC304B0F744AF2698E72BE43F3BEC48DD8841E6EB52862903B877428514E1247F88BFA96A0AE3823D63938E3B248C01FF7B4AB168D3BE022E891018E06E054E1B9A3117E81C28C585322B6C4A2FEE29EF28A4EC971F2FDDDC7EC69FE067B527DE8A7C231B3838B67DE00BC213253851CBCFC38067328FC2640102EAE7B37903B841FAE2B73800BCD1ED9185E29AE007036D02E367A8A132DFD15F855E7C2F7B9239D0D5CBE7D1EDCDE58443B2A1418136EE20688EFA2CD08A718FD878D3BE9984C31813E5A4EA6E1E666EA60DDDA7F45EDE833A5C64F8498D782C9A2C13F6D41119DFA5485C4D9C68C0AAA7EC2CBC60ADC02C9D6F080A385984FC0B30F719206EE5D660CE305B3E89BDDF3A9A4A6C6533F5B1DC9A74C3D59603626E4E0BC6D32AF3FF14A1B030999471F1289F8B461068D16B560898FB1D585791A898B02CC7C7F4EF641DAEE4413AAD487E8CB15919882490C509F14000C25E50A3BFC9EDC71F5FA7B8DF4BBD4DA49A68583DC430FB750EE55FD858418447286A687DF4FAEF7463FBFE20B6BF93D14809940BB355918995A7F4ECC3330E4CF20F0811E034F76AB0FB7C2F4A0027989371190DACD26E3374E3A930DBBA95028BDD5BE864F8954DEBBF6937A215948942BFF1FDCF47A9DB266CE36AD888574A722E6DA7C3B3EF40FC238999492D917ACDC2BF2EA8752C7F5B9FD41EA92ECE7C4694E769E587667DA7B7B20E51788F9E0CBE7DAA8358932E2298CDA50723BD4FD392689B690FEB10C7CBEE310FEB655410237EBB262E31602B0147A73C9DFDEA4A52DBD0F9C346854680152528929D44537E92724D171EFF47E2704839EE58D541DB92F04705A4062E8171F57D3D5BF2EAFA05F4A919A7DDFE51E60EFB95E12BD8014DD483ECBCF39A012FD711D51D1517633629D31283D14D7416746234000DF3FDAF1C2970B783739CDA2FD687970CD1456F36B3D8ACB9114F2F4FCB810B1254468CF1693D3AD1DF6D05734EFC100B5DD1E344A1B91A6494EFC53FD7916F75DDD9CA9087651C8D09212B452451AA0074DCB364604C589F606BE2A5100EAD3E05F9ECA207421E615EBA6D08D61732B1BF722D8413E6A2FC891BBEE363271A9F43EFB334962B0DBD347CD80E476CCC142AF2F792CC0CBFB61366F0C73909ECED4D713B26CC91E2CFB7E87ACF57D72A3376CD64D8DB303150CF153CE379F03FE40FF53541904993210A928F82922CFB19D1A9F2450C5A0FCAEA4B97DA20D5411143D3BD024174E79B8E7BA5198FD9AD4EE4B4C6B88F119236CC054B61CCABE2DEFC8DF0B93296D23FE57B8D5759FEB454C29B7E31F57AA0D46CE673FEB4AFB33C42C803599F47DA390C68F5A41E7C13CBB2408E3B6081BFAE78325B5BFADDB29644B41318969FD2FCAEA3A7217CED6A5EE634C37DD1BF41058B5E90585BF04956E103A241105A414B0C7C989D6FCDED2A89D7A89A99B4D390F867B0B6B281AABAF48D7B592116ACD40774011A9F6C51B852044475DEC4AEB893F9FC9DA7F8019D7A9E776E8D4D1FC7797AD53D7778CC092F103B5C96F6D5DB57605D49D49C875FB0C4E7A04AA092C5F058708B9DD7DCE4528F9E685CC9F406562D02FB0280E45D251E07B22E54E1E9AD3FBB93D05AF01598C24B1D26F702E1FD1DD149E3191D56780EA3B58EB5B1A47C7F271DFB92CFB2DF4660CB8E8DB24A8D9CA7ED50D734C06A6859CB33D279ECAF9F0AE197A6EEB525269F8E126EF410A6E927098BDB554660A7370C4D109D16CBA98E1A00949F47D24BD7FB33FD31E673AFE30971B5D7A3261F20369F87EC48E19FD1893F4C79CD06952C901B61694EBF7415FA74FD5CF3C68F5EA736B70099A05F514678969043B8B264A8CA54F94699994786ACC701A1C52753702311BBA8D69DE8427DBB4130B404796B6DC1540CA9F8AFCDF40766BC32F7441420F3669E34E494E203C0ED79CDE2DE398900D1D7C3 +ss = 247FBE279CE626D0F5954A6B863B0CA3B8139D2FF0BCE9544FCD56D86C07C1F8 + +count = 48 +keypair_coins = BDC3FBA1C32751139FC45BACFFB3EA97F26573D804A5F27A459293D95190ED8E75FD654BB12DA3469881ED591A82F58B4BFBAC587D045FDF3AA0348029DEB1A7 +pk = 6806CBEDB0C2C364C98989815EE9081D132427943A0ADB0DA7197CC7430757F3868C49C045D39C8C085665D13BED825FD7CAC7FC6933ADF438A4CB6849B91A1C737D394C5E08649D88E9274009C4375A4FAD4B164851540E43AC603AB6F488628FD7272BC1981BA03121C3A22E587EF30A793BA097D160025EC1B629A348FB8B854B54139D5B6AF09A7515AC4BA457C8289108C7C316C069A8E454A8D1084504C2A4E03C0A321681D168933E0062BFE1635DE39EC8C9AA2A5A48983C1BC34798FC64114C18AE77F13408F753DA60CB892C52F811C8382B3C455C4C0F08248BF7278B9B4B927580A3E50930B7AF9C04839B4BBD95E870A7289B5B2AB92FB339C847A9C22529EC61343537944AC07CC5A1AE713CA8FCBA73DAA688C9CA369E8B8D99FB812489482A727D40C7AAA6290F5032AB8FB5B09AE4985D7558B8C55B9F0ACCB3781B9B2405F11C05E99CB3723922D0DA4963E68487631722C0CC643B3920B8C2AC34B54E77C1FC748C96C186B3A5439FA2B3B2E1A75B16357E2210DA4B3FB620407C4CB78F18178F2B6C4706B619F18DC0863C72794434978D20933FC79193894041183660F0437A2E309EEE87BF538A2B8C7672833820805BC2CBDA61E8F04B7839B1493372759AAED528980E02726EBA914491B7317099215135175C41986858FA31CFB689A865375E8547932899867B987167115031F5B4DD263F0341395E1176BFF3A69FC9B9C020AC8515AF5E665A15F48A3CBA1C4A96390AD7795F7695E654279802C46275BAB1E32FB7111619C55C8787CC01140F0FC03FCAF4B6DF9877E0F24971F06749BB343E1A5FAAFB66A75B4888A1C63F593BBF3906C324083F737A39247CA110279A677736E77EEFD3B08F645100E249461657DA00B365A58BEEB48DE3F96B6797850119145975388AB4C9025215DD4B0A0EC066C8A7A593FC0A1CA921C3C54659D40FDFAAA4F63A6B0D55A761E9A57843617AD6963087396A0187BDF593D98009BA825D056BAB8E3B6AD5EB31B3F195A2C9B7CF9281C176B58346CDC24C580F23131213A08C4CC1C776C146893E8CD44983BC01494793028225F2161F916B888C923C8C30C43C41C1A2D12F18A4918216771CB992FF1ABDBB33AA5F363E6CC044A0D68E6B36785951566E4A666AF6CF9D3222FA17566966C734A364CE14933DA00305930B47DC1E977B88E328296461C302C35F3E432E5D01243685C176E1B6876B03E341CE0A1C52EF32966D67004CB4ABAD9CC8A534B728DB8C32811F7E71556BEB656D773759F04A71F43413805C1334385E396E8B128225929977F41CF776450460707E0C247980AC42C69CB641AF3CB36724D5705AF745965181312A91AA000B42B82670A9AEA43AC26A5CB3EBFBBDAFD4225535255609C3A7D04332E6C816FB68E5AC05DAF42C95C78F6DB76213A083B3237B4665B9EDE88C1BF53B4473005D4627BEE21CF225BD35EB728932543956CA142B4F3614816D891895B14F0D28BA36D298D6713809180621D1B12EBABCF032AAC6691B22CB9013D8A8DFD70BA1281A77F237F9318B43D043F193CF9E1004CDA26F532ABABCA3528C69200624B613FBA988BCCC73288B7996C2DE008F22755ADE918784F7AE2F69ACE6E08E0CC528E3BCC85403967DA02CF1463C77976555460BBA2824AF0923F2DC4336AB44D54CA0658417F8FB5755F397FCA11E07759C5BA86ACCAC1E30523349168EF3740F59EA90B1F7577FFAC0F3F675FA85314AD49CDFB385B6A68D38752C435CCE3CB9B176086019113AD638CF3426970DE0013624313FF57AC82B1FEB24195028B1B65BBCBD5C4EF3A60116125B3580743CCA16CA9ABE8FDC1EC1CA2E4D717A0EACA0FBCABF74034B74391D8D9668198A14E5491EC817701733BE7AB11635E4A1E6910F3745A68035A76F35AA3B3B41E7EB581CE69142586DEC698B675A1660B7C22DD1947BB24F1EBC8B22B1AD1B81600B545F74CA076E468513C0A483466089DC1CD7090C4C5623B02B7824D2BA1894C4E200222BF867911C89D3264B5A081D7441A2F3729CFE4106A780237E179839323F97C04979887C4C223F23A81AF875A33CF28CBF75722AB92308C320D32625EC326734A532333C8B1AB4767BCB682850750620C402878103056CFAB5417354BD395084F4F95AD375F6A1289B8CDBFED9F6518D7031C57FD3455D4544735CF52680424C90F14F +sk = 5E43BFE8EA443466AB6B087DEADC672E7AADC85521D549B978B054A9B8949E519E3FC3A653607D794491341039713037D31C9824EACE39E7127A974403441E25B714FAFBA4B98041E85B2FD8D8ACC2A69AEA9C80930306B46BAF5245A505D48E293A77AA4174D1C095B0B4A45754A4A94BCB01D4543BF7C7DEF2AE2009408725C58BC76BDE03ABEF3C4EE0831D3C6B2632609707B3B861F093E857902D52A2A48619B1EC20DDE7A923412F79C22389601473076965959B2AA3C79DD31B98CA9847731C89B0929EF5174CC6B92972CE2C07C8139A62C901216245CFC92B2DA158079E1C93C8E08FF438A02DDCA4CA948F47A106D40AB6A5B0AFAF52052F237E44F0765B3436271421308611845785E257CAE691C39FB8C80BBC1C5FD687A547B7E8E3AA1D7C15A918984B6B359CD24711CBBBB95716EA54A8D3511C5DC983FA1B019E0B0D7DE90C3C0A9E7652C18E72CAD6F9C510E64F0CDA8CBD86502A5880EE1536EDD16AB36BCFD859CE879B3F5D6A0D90630668B7385C8599ECB1849A4942D87A91497129E196309156C9AB245F4C637080C963F9648FB2BA6F32D2566F88BCE680203DFB827438295F8670C9BCC34A98497851BDB0E631EA06ACCC26373809986DA62FA714012D2579D5D61443330E3B882C800B6C9D02C98E9859A4022DB4A09510FC91A3B95BCBF73B3A09311CD13E52B61733E02DBB400E8A54A30668311AC02FAE2B55FE05C95AC43875D92F3C2ACB3D4A6B53D363D5D75A697061055A3A788BCDFA051EDF97C3515CA920EBAC9E7A998BB598B8436BDB63550E416D2AEA5057562A901B609B129D92B27536E02C26EC6A3B2C5F6B733D0529330E9A89600B089DD30A0BB52530A3062BE741B09818A78B4FB9F274B7262CA23B3F2A40542CAA64FE38A6ED06BEB5498733A38A7FD0B5AEC2673ACA2B07E00909E68D40AA207FB179CF7A60A9E13719635A15CB221D1CC88B921E950C94CEE17D60F80CA5B4A656F501D7136D1245207479A1DA42C26C48664297562A0BAE0E7906E9D853FC7C490E4078B5B3B226B37101A31B5D05A26F1CA1F231A853F23F59D86A3FD269A0256EEBD02CC0C6B77F1B1C613114E1084D8D1CBABD0C7702F43D2EE01DB985382C562F1B7885A7015EDF59BD8988B5BCEA1CB04639BBF5B119E6293F908245455070DA3013D2B6E2116776694B44E3A7E433407099A51940870B336F547677665C7066E181CE266FF0E508268731BD13AFA2ECB4546276A5DC50772A6FA38541AF968AE5C59E2D04C3B6002C7120A6A970ADA2671590411552E48E7119C7B7F7AC97429E9B7CC0B5242DF277CC10E7C48976266643A9B2308CF1799324780743F95E65851C03599FEA7129D5552B86AC35AED10B5F00058A8742C02A3E4F6CBF5DF61C66143EBE933060C98A4BB55318566184601BB395625FC86E4BD47377B54459B45E50C145596B9178D57D01BBBAA9A63BF444889FC810F1E40E07D289E0B04A58F84348463B9FCA3176AAAE6C1C119CF679BACC6EB685B9F443C2A9E304BBA0ADF3888B42698AC1F68F1626439E796E1967C7BEF581DBABB6C22C9C16029E18D8493A524FC2A41738A25E735C665E79AC423ACA37B5222D97030E794107262A30E76C2C712597527D92437800967C4CA2407D826EC5D0C1BFBA5C96B82146320A7F74640100314B1B448DB72AE1A57EFC949034425DA38C4FB03107A06C26E81773EDFBC3EB265460D345375081BAC591B3CC847A954AE1494F25190C84464141FC95C840C1B19AA0D700073F01381BF2B9C14249FB6719670460E0515D93507F5245B3DCB68E0F00C5E1B227E8608308280B4A54403B5A9DF3D392EC3608EEACBC08E10C84158C97920EA670625F08658A17590C6575F41923027B637F2A881C3592271B3E3DFAB7ADC1A3596CA1C075167847A4C586394EC7735CA93266519C7EC49FC0C1964A47B00538025E1028FF304EDED54D5F323CF5465C2FCA52993352F70BC1289128ED702A4A6528AE7315D8F4BDE361AB6865C182460E1F4A6E49AB5AC81B07C53800C65762AA0594B3C7CFBE449DFE238A63F35463C94B2DBBB18F9B33E6548DD7398F0CF833F1243E72D123918B35530414AFA37CF88ABA62003BD1F46B158B4A91C1C5EB3C851F513F8A760424A65002D87D6806CBEDB0C2C364C98989815EE9081D132427943A0ADB0DA7197CC7430757F3868C49C045D39C8C085665D13BED825FD7CAC7FC6933ADF438A4CB6849B91A1C737D394C5E08649D88E9274009C4375A4FAD4B164851540E43AC603AB6F488628FD7272BC1981BA03121C3A22E587EF30A793BA097D160025EC1B629A348FB8B854B54139D5B6AF09A7515AC4BA457C8289108C7C316C069A8E454A8D1084504C2A4E03C0A321681D168933E0062BFE1635DE39EC8C9AA2A5A48983C1BC34798FC64114C18AE77F13408F753DA60CB892C52F811C8382B3C455C4C0F08248BF7278B9B4B927580A3E50930B7AF9C04839B4BBD95E870A7289B5B2AB92FB339C847A9C22529EC61343537944AC07CC5A1AE713CA8FCBA73DAA688C9CA369E8B8D99FB812489482A727D40C7AAA6290F5032AB8FB5B09AE4985D7558B8C55B9F0ACCB3781B9B2405F11C05E99CB3723922D0DA4963E68487631722C0CC643B3920B8C2AC34B54E77C1FC748C96C186B3A5439FA2B3B2E1A75B16357E2210DA4B3FB620407C4CB78F18178F2B6C4706B619F18DC0863C72794434978D20933FC79193894041183660F0437A2E309EEE87BF538A2B8C7672833820805BC2CBDA61E8F04B7839B1493372759AAED528980E02726EBA914491B7317099215135175C41986858FA31CFB689A865375E8547932899867B987167115031F5B4DD263F0341395E1176BFF3A69FC9B9C020AC8515AF5E665A15F48A3CBA1C4A96390AD7795F7695E654279802C46275BAB1E32FB7111619C55C8787CC01140F0FC03FCAF4B6DF9877E0F24971F06749BB343E1A5FAAFB66A75B4888A1C63F593BBF3906C324083F737A39247CA110279A677736E77EEFD3B08F645100E249461657DA00B365A58BEEB48DE3F96B6797850119145975388AB4C9025215DD4B0A0EC066C8A7A593FC0A1CA921C3C54659D40FDFAAA4F63A6B0D55A761E9A57843617AD6963087396A0187BDF593D98009BA825D056BAB8E3B6AD5EB31B3F195A2C9B7CF9281C176B58346CDC24C580F23131213A08C4CC1C776C146893E8CD44983BC01494793028225F2161F916B888C923C8C30C43C41C1A2D12F18A4918216771CB992FF1ABDBB33AA5F363E6CC044A0D68E6B36785951566E4A666AF6CF9D3222FA17566966C734A364CE14933DA00305930B47DC1E977B88E328296461C302C35F3E432E5D01243685C176E1B6876B03E341CE0A1C52EF32966D67004CB4ABAD9CC8A534B728DB8C32811F7E71556BEB656D773759F04A71F43413805C1334385E396E8B128225929977F41CF776450460707E0C247980AC42C69CB641AF3CB36724D5705AF745965181312A91AA000B42B82670A9AEA43AC26A5CB3EBFBBDAFD4225535255609C3A7D04332E6C816FB68E5AC05DAF42C95C78F6DB76213A083B3237B4665B9EDE88C1BF53B4473005D4627BEE21CF225BD35EB728932543956CA142B4F3614816D891895B14F0D28BA36D298D6713809180621D1B12EBABCF032AAC6691B22CB9013D8A8DFD70BA1281A77F237F9318B43D043F193CF9E1004CDA26F532ABABCA3528C69200624B613FBA988BCCC73288B7996C2DE008F22755ADE918784F7AE2F69ACE6E08E0CC528E3BCC85403967DA02CF1463C77976555460BBA2824AF0923F2DC4336AB44D54CA0658417F8FB5755F397FCA11E07759C5BA86ACCAC1E30523349168EF3740F59EA90B1F7577FFAC0F3F675FA85314AD49CDFB385B6A68D38752C435CCE3CB9B176086019113AD638CF3426970DE0013624313FF57AC82B1FEB24195028B1B65BBCBD5C4EF3A60116125B3580743CCA16CA9ABE8FDC1EC1CA2E4D717A0EACA0FBCABF74034B74391D8D9668198A14E5491EC817701733BE7AB11635E4A1E6910F3745A68035A76F35AA3B3B41E7EB581CE69142586DEC698B675A1660B7C22DD1947BB24F1EBC8B22B1AD1B81600B545F74CA076E468513C0A483466089DC1CD7090C4C5623B02B7824D2BA1894C4E200222BF867911C89D3264B5A081D7441A2F3729CFE4106A780237E179839323F97C04979887C4C223F23A81AF875A33CF28CBF75722AB92308C320D32625EC326734A532333C8B1AB4767BCB682850750620C402878103056CFAB5417354BD395084F4F95AD375F6A1289B8CDBFED9F6518D7031C57FD3455D4544735CF52680424C90F14FDF4F164C11041DBE981D8FF2008757B7E694F564A298B92CD182129ADE5E72BC75FD654BB12DA3469881ED591A82F58B4BFBAC587D045FDF3AA0348029DEB1A7 +encap_coins = FA2C8B8C0F711A6D31C496199AD1993C31DB62DEBBC11BA3B3A86FE4278C365A +ct = 532B4A02EE4EDF16D60D9048939DF25239A9DB3E954B2527C1F78725FFEA54498BA0A3FA9E35BA72D52E390CF9854F70E9316FF644355AE61E9395855B06DD498596B51B29FE4D89ED0C3F488851A650585000F9730475B5F74A3AC5C2B27CC18FFC3508C3EB3760772E7EDBF5B08C3E89847D3E49298B4F2E5A0E3EA9F1E6B700141DC4EB445E41B897698B60F801CB9F1FC9F41024CF6F2DB4D40E4578009C635911C6C80121022374085D2946FC5013939E5C7260BBB60C3A36354B74A15F9571E0900AD453AFBB9EE4A550C19D3EDA35636D55707CA7CA36F2CE484CD400C3F1B741E266CF81FD5A1C324EA6B17EED5CA893E25A81082895D4C56F2D944BC574490715D25B5E7C3054D9B626E1946759AB43113992A33D537431FEDA05C5BBC6BCCFF08D55964046414E116739738A62B7D5356C5E7620A70698C494D72CEF0A0BD6B2AEE85F0B7A97A270CB01ABBD51CE004B53D342693CEDBF93E247167B50956FF7AA2BE75BA92F5563ECF5452311D2A49C8280DD06FED1EEECD8997D555C8C0BEAA22BAECC6EAA5E2BA37492F577A2FE102FFFCA71345BCFEEC93B24120B78C9B21C897A16CE448ACB6C8E79263C57BD61C5147F796D109BF5418593941ECED6D92A4A49497FF1A7347C381B7A44BE6FBDAF0CA99BAC36C5E8E5F9837DDB7FFEFB181098145F24A19DB7C31EB3A158A601B06EF9614999AD88D7DC853D8331AF01C8D1B6540C293F5B684D597977A5DDEBCFE3CAF9FA7349E3FC3252BFCD679C8EA077C455544B2305A48CEF5641190100278ED59212F70996A5ADDEB0B8D7E097443AD9A4029BA2A1ADCF19B86C6E287D26249F9FCF8B834E4A8C9797C5B37591F1E25CF56267C1EB329E3369022580932DB7D30245D940CACA4F35D3B435AB81BD884529826C63159107DEF669AF6D39993BA9B9F3744D733BEAB718956B2D0A02A4FB732FF4FB5178498E74DC317D279E47749CF1D5E0E3EA13855FE29DF85B5C1EE35E38126FCD4891E5814EF03B51FB03605A7FDC8B391D65ED14DCEA8E7A0B692322816F6EE25A0CE1EBD791419107AA378BA9183FBC37F8D45F9BBB957DDF7BDA0667DDED34397E227C1C8F818B574A39D65772F0C1047B75818082FA754DAE5DDFA3B2E1A7EFC354018C69BF1B630EA3C2EC1CEF068E1FE79BCC7300ED25F68FA312569BEF0C7F03AC88B5339E197A8BEC218CE3F343CE6C65CC74D4AD731D715C6C3F4CE40DAD7473635958B68E8DE6247C1E91F288C9F37379FDE139BF9E2CA209C8813F940123C710A2D2D06D354619E0291193B0A8F241D31ADFFF66570E38B4165044D68B864143BE14491F00A55930DD618C4D4F0B13384506B5956ADAE3922F84F54F8501FD87C96AAB0504CF42817F68450950253D61F4A6F652133F5880B662BAD937EE42DDCD64C84F89081097C98716525E4A12A08BD585DF8E8574A803BDFCDF20C444BB5E1C9F251BA65B8128821E80DB40EF1FD81A33AAAEE707AB44B7A26E27F4054C038B044C573C3AA1BB8692F07FDA17699D1D3289BF8C29A217921B5709AE843F0B035463C9B50410836077384375F1FC2D0CF0245378527C6BD0096EF54A364ED1A37B0167B7FC6C9DF550DCBB6DEAACB6E591463D1F966BFA9CFC8475ECD6ED293C9919AC70AC1228A2EC1DCA8258D43435BD4C256CE051115B9750E55BD600B5A7DCB67C0CCD8005DBE48E6E93246C964DA16075FC2778313D592A1FF0533B88B5AA6833A65764347896620184BFB08813DB2C2F841A346362C6C2189E4BAE574B7E539C85B43D8DC43C88C4BD22E83E5053E23C91BEFFFAE63BE97E90A35B25D85F19D80006DF61C7E22B2311824BD53D323C963C9639613BAAC87FD7A2FE1F6DD8FB6C9B54B3699F263BE071EAD2F8A203171E7CB18074F3E91E4DDFF0CEBAEDA4EEC79086FD8376EDA8F29E24A70B8B106295610F4EC3032BF49E45DA8680748EB2A19D592536BBD52E76DC73ACB84EAABC6D779FCCADAF8F6396EB5CBFB185B5FDA00F69BFFB2BB56D50ADBBC1A5FBB91281AB91894FCEB8022CAF38F366C407B4E3BA82EC8219114D2B23CA0F457A0BC5E90D777E8C32FA9660E5F8A647379760F3A473561FF0C2095F128F6351C5D8F522E1BCB218FB4ABB76880E614365F92F3A9792AF55A1628EAA3B45CAD7D46EF7AC821B661592A2C5FD1C961A73D66C07526D5B646E479413F2AB +ss = 40AB8880047B04213DA2C202C78C4B6F92CB6D73F1BF13683737B4FA89A1F2C1 + +count = 49 +keypair_coins = 447F6076A627BBC5AD7773FBFEB14B4BA9AC43A0F8B99FB6DCD5E452AA3C47EC4C7E3A5FA1EC46B73F87AF48578132EB080AAA37D31F0C2A041C5948E59F44F9 +pk = 2E5317C2017A6CE707B079CB56A06E388B924E96254D26C853733B50520224BC51798578C4C53BC92552E8A42A07136992213A6763056A025106255F57E4670A6A4262445AA745A916A9B629EA64AC757186D136FE301C6226992129B493D0C2D635B5187CC2359CBBF235A90EB24F7FEB5137E4157EE0822B0CC1761C18C25B18F757392863C24A13CE6DC84E3C28AAFE018ACC1B338A27746ACB22F687AF1E693DF043625C63805AD42B9A368F13F19014B456C78236FFF57C7DE2B96E7A2223D00D9EB8973AB04C67F3B03E8CC1CECC7912033999101B37EC643605C0D70C1161A6CEBC512380851F6A834DE7631BBF47ADEA0BC17A6478F122C8BE309804D2995541558D688B9E080C22BB3494F43C1B1A0C874BB4D5246688A2BE22159A56151AC2E6385B1384D0C635ECC94B80BB8276F435A64883ECF51C43F066D481CDB5A21485380CA2874A38B39A691C12D983CDFEE9530212439D154DF71106E2854222454C20736F6DAA41E9C949941205D84A7B5730B95CD3251C186DD97B1D4EC329521BBDB3394C819A984F87A7B3992D1D578B5E57CCC3CA151992395CC6695ECCA7AB67806F2C2C0EF46A6BC02C2BFA17A8EC41CAF87F48A146F2345B7A185BAA1379880B00D0044F90E2A148186CBF474BAB0330B8F029C72802F1B1698AB158E5C81343D34CB10255DBD1B9B6265D4C4A3B1905A650C29ACF22AB6929A0D95357BC76983A201727B1A0F7C8464DE2BC0DA3A48A81B338A1855A759F764639D9E7306341A96B9AA52994BDAD71CA3EBA0CD695A701A0CA483BA6F16B64A9B59C68747A22086EFC38B3344C32E67C66F47359D282B73428AFEAD6CB07774BCE87C27A5734E39895771CC490783F149865EB3CC37D8576C1CA0454A33BDEE7AA80A2AC17FC709167843167208837594EB8A47AE1A38CE819C4BA7DC4521DF532C0A6EAA5CCFC37E1F76E6ED20A1715139D9A41E2FB46CD5C0B3BEA25F60A120222AA06E15504E4188116ADE33507A26B927D10BED839577D2641B9550E1E921932185467B8C2856A430ED28275DAA37B166E025073FA513A0C852091555B0E19A2C8E858C1584E229C6BD2BAB500EC032ABB4B8028B90E3B24FEAA3FE2F826EFB574A786C3BCBA9829E49BA6318B2B24CCA031C636C863F224619DF40949B08FFEE535A25C7187A92FB522376CB30D4FDC7EA9368594CC53921C857F7A1D9E9528A9CB817E423D25F791B4CB1E95E7B3E6DC406C83C9140385173073F7AC23D69C6AAFAA6CF82862FE05A409521174328539B6A907F34D553AA77980C9F4959C329C563D8C03920B98563C5F13A0231EEC58876210A5A78F1B43C1FB8B4490D18C16687065939535363AB88397E51760AC356C69F7B25458183A10A0310363F31C5C16F1898D06701824565A615FFC232F33513FAE22B6BAFA22177B142FF88190A207B4EB5EDD4BAB67185AB0C9B8ACAC2B37AC2108AB09F96461A3F079C3C018C6C058D2809F1346889E17CC488CB645C698AD3730084415647728C2116E013767B37BB513000FEB359B84105BEF19CC7DDA7ABCECAFCBBA381BB0727C8554BBAC2D42C18BEF471FCE337E2FB99D69A9A54FB14A1BC6856DD56A020317C4A57E315CBBC371CD673A0B0919209F2361990068F0570B530B0678E01032AC6F95C2021651A1159B0B221545134C500D857C7BA0AAB92CAB5B5298C1B7B8AD588D0D53860F0563AD9C309A12A82B14486A10B79D7B6D38BBB03D9BB49DB4C90610BCDE5C383C418088F51EDA6A99E386AF8E1802D84B6D7F236104C2526D577ADEAA8DD1C468D812CBDCE44B04D64AD2938FC6495FC0A84E62E506EA548A8F5930C032B59E54AA54598F9653A118C5C83DD07F1B73061C02195436B6A66301BDC21953EBA0E0E351E01605D9919956968601549ABD9CCC9D284B3943C666CB8BF8C2112F52A5C733691FC2003C5B6EB8589D9594B8C92C4C4C6ABC2E5B2BB67078F81849E5B6760CB1391B9C5A57F8705EA61F2CC475F1F3A45A2A0B12BB976B2874CBFB4F7266B6E1E20E6C2C490BAB8DAA779F0109BE1A662C985016C483A71E636156186471A9AE452BB973EC28BC135133E9744CEC8B330C0752451C6944B7A304A250595D86B394C6762D104A83936B5FA76B32D3AAC91874B16304379133E8D8C063CD3044DA1719855FBBD9796314B11DF8459EBD2D92B7FDC94C4C +sk = 469963001D4D93DA7CBAAC0ACDFC833C47601AE334DCC0022A9220138C16B9ECA73AD1863431A34F593ADDCA4F0EA393FC4595D22A7CADD0A8D89827086A955400ABAD84226541114CFCB3E3A240FB600DD6C0960A7976175C56B0B48C66721E13882E3AA5784E12869F0C8518037955F876997975D27A7C92D4CF005AB859590504C768B02576A94263C87C4BBFE1AFB09B8C0A5C067776A0D96A5D12925B44AB3D3E57C6971B0A86617F65A16C7E9B42C283577219409E1CA4DE08A92DC5B4E8E87051680C1B24068DDA801FE871E0B28AB0611BBB97CD49BCBF159B7785830BC9D302C0A61AD138277AFC2374AA64E983506BD11288F4A20376B50AE1C1233A1ACF30AF1DA67301A5A420AA826DB58322DC1C7AD8BFD25C3B21025B565C357B4A0802E615A35A384F1794A0612E030228A865A0390197E7C27F45A4258FE26082C850170CAE86721BB5C68CB32153B9934DE4CB11528C570AF363925AB0FEDAC79748B3489B7180E81FF6DB702D5A100336955EC02FD2B9C86C2CC001833B0BA1B7DBC9699C6556B448324D29B0F6A4028BF48A49B1CF60B4A9F91321AA64CA849848CEE2BE0A29219F783008417DA307710F87CAFA2603FD206E5698177E81470AF4C608A6128908541183A5B4769E74166349E55B4D2A2A84600EF712C2D1F13F4FB3C91BCA8CAD209CB5BA0FF578BD6E29A0CF07A972D262A2EA3C4DD44A5D55446C174B345B96871076FCF785CCA68545EB6BE64BC9BE17A7D5914D8A50B286D3A2A8E1A53FAA53815ACF0237B8BF204C34766E97883071E56539361BBDF29187C180414C83D9C09E30983995AA4850A6B2358AA6240642CB9B0FDB739FA5A93EC60C11061AA8B5E71316A517BE2BAEA2F74BAEE32EEAA0A75D2030F5E8BBE1B517F56511FD8AA499621A9EF6C88B96A9F33B2B3CF04381B5C97B743063A6286751AD9EE14903C4674B308DD5E28BC700134C43C788B04460DB78A0E795E24698553722B4C3A095784828960672CBCAFC11AF32C918ACE0580D5BCEAA574409854051A2419F148809147133866F9B651A38622F21E0614F10139BA53724831FF312157146169EA29293D2A3F1250AB9CC877D448ECB53139E6C5487DC2931D45B4A74C34BBA11CBB965E1E664ECFCA54DB7BFE7E61DB2382E50076A70A9AA028670A354013C894B729945830B1125AA53F4D352BFF33FDBE7C64BF70A4C3ACFF3680976FB26368693D928122ED5707B453A1DD714FA9C5A8E6534D45B53A2BA464E217DC0461BE31C5763715BB66B6F3A4C0E7A3A4CC107602CC3B67487A7D162422468B5CF33C8E5A63F801C2016B15C40398F914CBCDAC9664B7601680346FDD3A499D89B5CDB7E77CC8A1215661AA34737149BD0734F7BE6A0C20BB94E6A89DFB9B0A9D6C4BFB86408922FDC9650DF7577E5A89215C8636D5C376F4596C329158964084200C91AF4A7699018C6D139F521204BC521110AA222203774DB88AC0AC94CB97720A71411EABEE0B2863C35607A617E761298825ACD91C73685198BE96B84A98AC7295142F6C19BAB0082C53A8A50A3A39EEC2A34E859CFA2C88C9CBC77B1BDB5377981F61C1FC394D70820336BAF21820D44C0956E09A5EF7786B8427A10BA0AED54573CA5245BFA751EF891E1072AB20A4F74795A3F296BC5E9587F272A9FFC71A878337F5149E7AC47A26532B2BA2CD848AD5E7A621EF3B0AC470AD0E64490F6463C0A6D091C1A1156771999697E576EB1155789555392DA8D0F0CC364378274922B4D11A3013AC273DB2E0606CCAFF52048D30821093D5CEB0417A4347E5B178EB5B59D37C54CB911AC08CD5461B1A61567F4448288E78A3ED70C3AF85C6BDB72D4BB6819BC1C5946BFFEE0974E91C56B47BDD7647990948834D463361C1919A977DC84506A0C13EC7A9DA410CDF51A9FB67B867DFBA51E029E6E99A35A0064A5F640A36B3E41C45D586804D9B5A8306674C037A587427AF6160F7568518EDB10E4D83E6FEA21B23B20A1CC92D66C043B5328DBC9805D7C7D938066AC238C3461A2162624B75BAFCCF47F58065EEF38207D22895E321A0ADBB16D2001657A9F622849A0008EA88988359B508CCB764D265766D2B1E1F55FEC412AFD07A2C9A22729B8CE84EA770CF4612D369653AB92698C6358769D2E5317C2017A6CE707B079CB56A06E388B924E96254D26C853733B50520224BC51798578C4C53BC92552E8A42A07136992213A6763056A025106255F57E4670A6A4262445AA745A916A9B629EA64AC757186D136FE301C6226992129B493D0C2D635B5187CC2359CBBF235A90EB24F7FEB5137E4157EE0822B0CC1761C18C25B18F757392863C24A13CE6DC84E3C28AAFE018ACC1B338A27746ACB22F687AF1E693DF043625C63805AD42B9A368F13F19014B456C78236FFF57C7DE2B96E7A2223D00D9EB8973AB04C67F3B03E8CC1CECC7912033999101B37EC643605C0D70C1161A6CEBC512380851F6A834DE7631BBF47ADEA0BC17A6478F122C8BE309804D2995541558D688B9E080C22BB3494F43C1B1A0C874BB4D5246688A2BE22159A56151AC2E6385B1384D0C635ECC94B80BB8276F435A64883ECF51C43F066D481CDB5A21485380CA2874A38B39A691C12D983CDFEE9530212439D154DF71106E2854222454C20736F6DAA41E9C949941205D84A7B5730B95CD3251C186DD97B1D4EC329521BBDB3394C819A984F87A7B3992D1D578B5E57CCC3CA151992395CC6695ECCA7AB67806F2C2C0EF46A6BC02C2BFA17A8EC41CAF87F48A146F2345B7A185BAA1379880B00D0044F90E2A148186CBF474BAB0330B8F029C72802F1B1698AB158E5C81343D34CB10255DBD1B9B6265D4C4A3B1905A650C29ACF22AB6929A0D95357BC76983A201727B1A0F7C8464DE2BC0DA3A48A81B338A1855A759F764639D9E7306341A96B9AA52994BDAD71CA3EBA0CD695A701A0CA483BA6F16B64A9B59C68747A22086EFC38B3344C32E67C66F47359D282B73428AFEAD6CB07774BCE87C27A5734E39895771CC490783F149865EB3CC37D8576C1CA0454A33BDEE7AA80A2AC17FC709167843167208837594EB8A47AE1A38CE819C4BA7DC4521DF532C0A6EAA5CCFC37E1F76E6ED20A1715139D9A41E2FB46CD5C0B3BEA25F60A120222AA06E15504E4188116ADE33507A26B927D10BED839577D2641B9550E1E921932185467B8C2856A430ED28275DAA37B166E025073FA513A0C852091555B0E19A2C8E858C1584E229C6BD2BAB500EC032ABB4B8028B90E3B24FEAA3FE2F826EFB574A786C3BCBA9829E49BA6318B2B24CCA031C636C863F224619DF40949B08FFEE535A25C7187A92FB522376CB30D4FDC7EA9368594CC53921C857F7A1D9E9528A9CB817E423D25F791B4CB1E95E7B3E6DC406C83C9140385173073F7AC23D69C6AAFAA6CF82862FE05A409521174328539B6A907F34D553AA77980C9F4959C329C563D8C03920B98563C5F13A0231EEC58876210A5A78F1B43C1FB8B4490D18C16687065939535363AB88397E51760AC356C69F7B25458183A10A0310363F31C5C16F1898D06701824565A615FFC232F33513FAE22B6BAFA22177B142FF88190A207B4EB5EDD4BAB67185AB0C9B8ACAC2B37AC2108AB09F96461A3F079C3C018C6C058D2809F1346889E17CC488CB645C698AD3730084415647728C2116E013767B37BB513000FEB359B84105BEF19CC7DDA7ABCECAFCBBA381BB0727C8554BBAC2D42C18BEF471FCE337E2FB99D69A9A54FB14A1BC6856DD56A020317C4A57E315CBBC371CD673A0B0919209F2361990068F0570B530B0678E01032AC6F95C2021651A1159B0B221545134C500D857C7BA0AAB92CAB5B5298C1B7B8AD588D0D53860F0563AD9C309A12A82B14486A10B79D7B6D38BBB03D9BB49DB4C90610BCDE5C383C418088F51EDA6A99E386AF8E1802D84B6D7F236104C2526D577ADEAA8DD1C468D812CBDCE44B04D64AD2938FC6495FC0A84E62E506EA548A8F5930C032B59E54AA54598F9653A118C5C83DD07F1B73061C02195436B6A66301BDC21953EBA0E0E351E01605D9919956968601549ABD9CCC9D284B3943C666CB8BF8C2112F52A5C733691FC2003C5B6EB8589D9594B8C92C4C4C6ABC2E5B2BB67078F81849E5B6760CB1391B9C5A57F8705EA61F2CC475F1F3A45A2A0B12BB976B2874CBFB4F7266B6E1E20E6C2C490BAB8DAA779F0109BE1A662C985016C483A71E636156186471A9AE452BB973EC28BC135133E9744CEC8B330C0752451C6944B7A304A250595D86B394C6762D104A83936B5FA76B32D3AAC91874B16304379133E8D8C063CD3044DA1719855FBBD9796314B11DF8459EBD2D92B7FDC94C4CED722667CAF175DF48A3A346EC7CB1BCC37D67D3137FF7B7C70A07F202893A334C7E3A5FA1EC46B73F87AF48578132EB080AAA37D31F0C2A041C5948E59F44F9 +encap_coins = 0359CBD196B3F4E9A0F8506A14A90AE501B00496958C512744EC20E95B065497 +ct = BF82EB4F62D1087F051465C782B577F7D650B12AD67159E84531C6606DA08D3398DBD815ABBA744B688372E4594F779A7B14D4F7DCBA3CF2BA7761C740D350AC7D482C5598D7563070B6F402E9A6E7F9F032406665F6240938F56F68972741B4263D25F40FF97C772E1F1A67A4329FE4616BD56140ADA860653DDBD8BEBAC2EE3368DB493A3CD9A831643DF57B3094DF1012F57F6AF15185EB5A6193C0AB8CD33A4ACF1E928B73A5894557324FCA822482F87E42ADBC64360E111AD67E794315B745B1F472B986E760EE7443902277C8D8FD31E76B8AEAC1E88321F8ED9AEBCA0D383BC00A4EF6A33BDCD61A186B24B3BCADF2630B11462E2140F2427A078FC0B11B4A6F153C277F018EB81E86D61A932D95B9E344E7A025973345E1D1725620EDA0EF7A2383AEEB376176A548D5F337FDA178C21B6A07B297A782DE3BD7969AF16FAC234EAECB907388491D3614FF845D474A081953BF433A23A03BBDC43030A4835591329ACE848D1D1F70CA660CF818EE424E6E5C611AE43DB03BC040AE40AB2834F8B70EA2BC3836513582332AC294F7B187DB83E60A139DF7B917670E59DB16238FC6F2C379B56880FC2297EAA8AC2CC44D0F73D9B6863CA807080F6BE633C4E7212D88C4C2002CB4F9A530D22087C79712F4B1FF1F8D2BF5515376CE042E3BEB80B93F8B08C48D72B5F6A821CB77CEF664E7CD9857148E0C2000D94BF39D7C382AE9CBE57120A41FF30562AB6113C3165C6EA382162E4BD1A261C7331C50BCCC726270775A27D79F0EB9FBC0428D414EC8FCE884F1C85213A3C1B790EDE2825F2F184637DB757E088D278C603BE389882FCAB5ED0B7B5476DE89E6A4039D9F24F3E16B3B96DE3DC63074D84EAA1BF72C7291A75EB6356C7F08E030D232F4AEAE01C085F74B2AA47DF9223C104352C67973ECA82A665B6C0D69F05A93A1C4C084F1FB3FC1EB8CE1D0FBD804A3F75F9CC3E00F2DDE13E11F9E62F61795D61D2545A6154B7D04CA06C4EA3250FCB8AD24451C93F58F91250E937023ADC2AF9F1D657704167D8DB511D5974194107C54CC7C4AFDDE2D125E5BBB2099E68165DBDCFF212C72C62E6A4AAA6C808E9D390CC96F59F30B9D064004022A9D3A2A6B8603463E8E67ADC0F3B659131D450CBD421D09FD05C75A80CFB8E64AE53C30C59F13B80BA11647EEA1C03875CCE054A5756124D8C9DD62F97590A4A6CF99AD376CF57B4F0DC272BEEA83A250C17D9CF413438839C53176ED7D32A169630A48AFB6F09CA30E8EFC954C2100152C33E79926B0AE5FAD298CD2ECCB1138C77835682E4D68C9D2CFDF7CD105209EE3506406F77D36D63DA6EA8922D55D1FF6F45DFEBC54F761050298AC1E3082C6BD9E31E51F23BF38237ABFDC2CBA28243D1986FC0FB9BBE76D749D1728FA52E885E8218CB16B18A5799EE0035755596C9DD48FD409A6E13F7AACDC3956DFC07C885C94461D10453CD747F85904BAE0AEC6E1A834ACA4FFE1FE4F9AA4E7000CCB58E9B15AFA65805683192D848672BE297849F9731345B52C9ADC1BC62D3379D81F7236D3ABA47AD7888E818F4EE6D34A3ABC6D7299F831A59DD111E92B7CF36BE03D7442AAF4A57CB032629C8B88C7B3F9376B2B697463EE6501FEF1D5086EF8AA522FD187019CCA041CABDFCF07CBEA316612D96B36E1ACA51E64CB2AFEACBE702EC905BA5B21F827F55D2E7BE8DDAC5F25F83E787CD168DA2B5EA0F61F5B490479D9A7EB7A8DB43116E1904B2DF22D34A158084ADCC0A2C2302E995FC69D9B76AF0B10CF6273B5D09FC56B0297E631DCD6C27A333BB729B18F82AA4A4ECF642A1B036C7351F05C71A991680E77C7A9644F4C3C91B4A84B46D88CE49D5DFAF3CF7F24F3FD1BCDE24AEE43AEFDB03AE0657A894ED2C314B4D3BF8538C470BB4702066106EDD35AD5DB74DC2254E0452073DE9AABFA4C43AC45FC3C6F517EF43C8917C54AF0A569514402A12A7B0165F4413B122AD1066DAEAEF044262337ACF6AC0D835EB94CEB9B40A8E7C018A2AF8E09DC51B4B01FDC8F349B6A26F0837EE72EC066CA583486C0EFFAF19CF8F29DAD4904B4ECFDDAEC5524EB7DBC4BAE4BE88670D5963BA131B48F55C1BABAF6052FE7395D77459EDCA9C486A9CDE82743CF2EEC883B23040478374AEB574DF03FA905BDBE8B8D398A7D9786056BCF3E9A97AE2F7EE78CE18AEB8093E0A1993BC54126AC633C +ss = F1B93086F3491B94A6222AD9F523AD857E7F0EB57934C234BE379EE8F43172CE + +count = 50 +keypair_coins = 2D5DF64D62CB07FE630310BB801C658DBF3D97993E68626745DE39D37FBFC2B26CF04CA090E5805FE0FFEDD6BE0F254397155A7639C5AFBB30A7A75CFEBFF026 +pk = E4783DB3D78351B11B00E292AB5425AB7110A6847A7FBA29C24241999AC07FA77B461841C12519E9388635513837DCA2A51434BB03BC43E89E9B73362CFC5F05007428C6C96271674A574F64D51CB5793454590FE9D42728C5C51858B2C5554B143ACCE2E1A9A4238CC9B88B12670E884B743168C967574F1ED1B700C50CE9F84D32AB1CD1E85A3A31A324770EC851A2DE70805497A27148CB66249F8BA7796C02CFD462823DC9020F997114EA758511B5DAA832FB6B4D05E10FD9F53D0837A5EDDC05ADD9AAF668B87AF55516B63A82BC64146B21290763F46B00A6EC3CFD71C702A28719FCCE1F1A2B7D124A4EC8703D63865964036A27274C806EA1AB9067E5BB6D1766FAF4B58ED05CCA5C6688A86A5F9216CA7187423CB9D453825404448CB7290A5BAE8848C41BA4CAD130894CB385F68916D3A5AB6EB045522BA80C1154671617AFA25E15734C5E5051F1E3173562899873BA90D670D644AE4192351B108F8511C89DC2C1633516B0A850A0345D46465BD058999ED227C8CB8F02625F4F0570A72A77FB1171AA577EB0239BCC2CBD00C82ED1BAA91992AE4283BE56094BE2BB4C9F0623FC53A9D1853AFA9990D1998B1E7459DFC3C57DB5ABF30B0900716416A152BE54946AEBBD7AB8CC2CF535321A57CDA44CD34060F86CA496830A16652A88D069802C59F902CF08D91AFCA82BB5B3AAE6B4AF650A3D7F5A0CEBC8CE63A2A7C7E07C5A0CC9B18AB56698087DC65B2A014B8E00AF240397D8C00C7454380DF1497293327B81CEC6E43154E97B93D9695D21C807F621576835E5B79F42D777230C8DFFD72CF41A05FBE51765280BC6D3928C1166A6838E33A40B81826BE34685203C7041599C14A84D3DF2A044540957141545B465F03579167CADD8A93D83A03F7911406BF613562BB6A9863E80D886709978CDB75037B36A60F073FFBA561FD87F6FAC17D04B3233F797E091221114C78E794B9A9073BD0A66822AA3AAA4BA8104994DE5718A44AE76AA7A8EB59C1F8C59EA9CC32724372767060EC6951809848EF7CFFAE9AADEA314D57780599CC3E55A8B0B04810E5B3A2CD9CAE6D729E4D994C4D296F2B07DFC97596F8AA4636C70863CA52020B1C21C074838A4AC0360F88154C8E8AD820C3778275B966A3568B36B3F44A50A019A8D588849CB39DD813D5CA8905460BCEBF94EFAD35A3A2CA588EB4FDF999E778B24C41259F198C20B219AA6C1715090000F4407A7217FF5645F8483A408FACFE24B368D9042ECA9BC803B9D0712B21EE36047016E5559B5D9BB6E046A63BA32A9537380EA73A22B662EE892A62AF4B2710A2920A36F1740BB55B36700426287329E4F3B63ACC77D6F6A94411A2612316DA5B612882605A930A000C18DFB6331F9005427D63BD5C66BB0B4C496B6071CFCC8DF3C4B350BB252D920B9AB3F73392B3A6682EB222C0FB065977B93C8D133FC07249F6A0A47D19FD8702F6C618D2C170DBA4C65317C1D0BB188A09C9C4E97212FF004D9477FC36C1A25F3C725A7982146C4F3D20B0B07356FC8BD18289F860BB8834078D7D4813DA9BCC2D3746F0B9387600088F277F9F747A9862BE9A851CAE219257B190C91C17C910DD8315A107967FC619C20093DDD6532B6A096838B1BE3263F314C42A8F4B8B71586DFA279550CA54D87A1BD46B8D9C75861080294E9A084F3970D217610299AA8FC5814611A40BC01D8D60AB7878EC5C0460B916DCC183F826888D0A03A89DC3E27569B2A7A461AD847AF7286AF11A7C7A07ED8C3AA76B209D98C7AA72A5C3049BE14F723C2062FCA960C28925E6521534F855F3FEC4054F3224851137AD18C4EF959E47C8134C86356F09B82606A69116B5D572A7C40A6A300B689721D37E80148821AA74902C0C30331664A65976C29E80034C00447245FEF8A3A3DAC44824B210A3B04F3B7AF5A824632FCC5EBB45948EC3CB971607EE94FFCA362CA60CD6E895C9AA0CE699570BCC4CAB9832638C2269DD9B43F880D4F507768E4986D85814929AFE4801008103900230956193E7262A0AF2A6036F4CB85C581A5D1256CF78C1657598BF1C45F3048F3FCB0A37AB971D30F7F124E7662B171A5070BB14A750B26AF9B020A929FD7B2B244D5945E58B5BB64B2F60B7296491D0AC31BC6A046C7AA3A1738B8563C234D4DA3B73DC1C5C4A047B0A5EA85EDAC7BEC66F4D87FD2FE422E7DBCD02D1455 +sk = 3C14BDD913CDA0F267ABAA8B0A30A5EAA527638C01926623B0BC2BA55B0B596A92BAD72E92845828E8050F4C2F40873918E4524CEA8505208D345783F71202496721E361A582C5445FA31FB662A64941ABF9FC203AB4A741C9214C1B80B4CA617C4976C819794F53CACDB3509978A6DF5900016278388234CC1A09B804679F36718255B2DB60A7EEE5BC3BC78BCEEA8060354B54031C4C76B30A1A8B1EBB697FF8606CE408FBA72DBF0856E5B53B1E4A4ECC746CDFC77545B46060974C8A788A1D59529A9AAA571B895BE01ED5C23A0D22707D89467A5B9C662767A0D77D5C49ADCA983CE7401F34526DAB1CB9FE744BDE8C54C230705548B9ED00B9F4EA055466CDE77019324C0A7C9BA404B641A6530AE64A964EA47E6E80AAA4652C9A8B66061103F385479E50A780249A909C92B7913329A478880162D8857D58FA39D3283F5A2A7F8FF6ABFFE2463DB40728D06166627E9C92283FA57A2E46190AB869B6C21FBEAC86911284153B259BD2A442070D1CC581FDD333E5990F84AC67F47491DF01128F0959ADA0891C236E0ACA87755289C0E6C8FB136974C97DBB1B8871A4C70AA001FC950F0CBB3ACE4AC44F800252F5BD76FC1DC09A3D2F8860385A4BF8D765B49C5379140E0A2801DAC947C23803AB6B467F2BB1B019B9D53771418312F51B28DB18BE216794A0467D79AC8ABAF2C90F4B1B3474C168BCBCC1E6AE59C5781296467F2B8D63D5842D67935DD429BF8319BC0B8199CCA9D3F78C483B8E0771622EA764FA610EE13C1A188C56D0B5C17094C1B7A45321BB69D99A666A7963268A1D0A0491B8B5CB700A7D86AB9039330EDD8BB17CF1AC79355A82166458D2323E070AC109C98D201358F22BF9A3B513B8BBA43905D1A790A7B1A11F682583AB4FE0A82F3E316B7C70AFDD823C8FB7ACFD330B22F378E8597CA5357454A71197CB4039E9A81D7995D14587B479657584407B281886D6A7FE9B6170A056D2003BF898027C275B7C1C3D1D0C157145BA52D264699B969D60AA3873A9606041C20B17C90055B8016EA703539638CFF8AA0A219542BF51B68CF153A86149881C087D898EF9C3A089CC70A8656117131AA3F233C73CBF439022D224422920501C07243432AEB925C4023185D3F897A79A983D857C6D1422F9B22234005E00882F77C7704CC74ADEA4C8F3971E7964BA1A530C1F722EF696828C46946F0B329D909A47B83353330630359EB8E9B7E78ABC50FCA8C3AA9AF967C89F464430C815D1959A21A226A966A6434301FA600A4D129886826803EC49A54A34ACD62B50E33FD782937571816421341CD76A3570C17AC9C338E4AC4C51077650B98AE445D236904DA694F755C1A5B288275B517B4C9B896C49BBC18933E52D34969B6AD8ADD604B526488C6397842A54B6657B93386B0ED7D36FD2F448EFE43B0A144C33F729DF530C8B6340CD61897B3C50B0D8BA81228604F7A4BCD120CD2A7BBBA3B4818177C435A2B0C3AD838C6D9BD3903D64B32B8A8DA5D93589021251D14C920328C4063C2AF3C8C41228355527ADF41037E1AC6AA69A427A55354CA9D54025306C16F93154776B4A7AF9C9EF2298DBA9B669C40BD0601ABD410357B8940511BEB6C96543D121535437D8EB5FA6A6414860AC4E849F5FCB09104A68BA7987F52BC859DC9025450332B28F3959CA78F18CBA09C3C4522D365C93CD4756B780A9AB87A040B8202C2CB7AC3C880796775FEB4EE8E5228EF4C62BC93E5D068226701D244348F3665941F59415C6275E1656FE68487F3500739762D13BA5D3EC27C5F77B7703A1B2E645B05782E5A21952584A323282DF23C8A9695C0B537AC9D6BB4E7907EA4BC2CDD684AD647CE10B326585A0F7E486A4BC15418454CE4BAF62B81131C0008D54CF9A6ABD94E212C0193C724A54F8C12B4EF6B6DDEBCF678AC0FD84CBCA17284A326B7EDB071F9C2A3DF66334E29D588B94D684474261B3F8FC6BFC7A9328B7B91BF2023F088337B331B0C143CB86549264BEDE51C9BED644796B53D3F230327B14C7D699332457E90A5D40A053309403B263A59D7CC6E56B3E87592735D95E3AA819C41182DD9C0972592FCB2CAA046883E491BFB4C34C87B995F143BA5F7C51DCC45C5DBA619822102D005EDA5AC7D4B02B05B8C53F1C79DF7A92A9D4CAE4783DB3D78351B11B00E292AB5425AB7110A6847A7FBA29C24241999AC07FA77B461841C12519E9388635513837DCA2A51434BB03BC43E89E9B73362CFC5F05007428C6C96271674A574F64D51CB5793454590FE9D42728C5C51858B2C5554B143ACCE2E1A9A4238CC9B88B12670E884B743168C967574F1ED1B700C50CE9F84D32AB1CD1E85A3A31A324770EC851A2DE70805497A27148CB66249F8BA7796C02CFD462823DC9020F997114EA758511B5DAA832FB6B4D05E10FD9F53D0837A5EDDC05ADD9AAF668B87AF55516B63A82BC64146B21290763F46B00A6EC3CFD71C702A28719FCCE1F1A2B7D124A4EC8703D63865964036A27274C806EA1AB9067E5BB6D1766FAF4B58ED05CCA5C6688A86A5F9216CA7187423CB9D453825404448CB7290A5BAE8848C41BA4CAD130894CB385F68916D3A5AB6EB045522BA80C1154671617AFA25E15734C5E5051F1E3173562899873BA90D670D644AE4192351B108F8511C89DC2C1633516B0A850A0345D46465BD058999ED227C8CB8F02625F4F0570A72A77FB1171AA577EB0239BCC2CBD00C82ED1BAA91992AE4283BE56094BE2BB4C9F0623FC53A9D1853AFA9990D1998B1E7459DFC3C57DB5ABF30B0900716416A152BE54946AEBBD7AB8CC2CF535321A57CDA44CD34060F86CA496830A16652A88D069802C59F902CF08D91AFCA82BB5B3AAE6B4AF650A3D7F5A0CEBC8CE63A2A7C7E07C5A0CC9B18AB56698087DC65B2A014B8E00AF240397D8C00C7454380DF1497293327B81CEC6E43154E97B93D9695D21C807F621576835E5B79F42D777230C8DFFD72CF41A05FBE51765280BC6D3928C1166A6838E33A40B81826BE34685203C7041599C14A84D3DF2A044540957141545B465F03579167CADD8A93D83A03F7911406BF613562BB6A9863E80D886709978CDB75037B36A60F073FFBA561FD87F6FAC17D04B3233F797E091221114C78E794B9A9073BD0A66822AA3AAA4BA8104994DE5718A44AE76AA7A8EB59C1F8C59EA9CC32724372767060EC6951809848EF7CFFAE9AADEA314D57780599CC3E55A8B0B04810E5B3A2CD9CAE6D729E4D994C4D296F2B07DFC97596F8AA4636C70863CA52020B1C21C074838A4AC0360F88154C8E8AD820C3778275B966A3568B36B3F44A50A019A8D588849CB39DD813D5CA8905460BCEBF94EFAD35A3A2CA588EB4FDF999E778B24C41259F198C20B219AA6C1715090000F4407A7217FF5645F8483A408FACFE24B368D9042ECA9BC803B9D0712B21EE36047016E5559B5D9BB6E046A63BA32A9537380EA73A22B662EE892A62AF4B2710A2920A36F1740BB55B36700426287329E4F3B63ACC77D6F6A94411A2612316DA5B612882605A930A000C18DFB6331F9005427D63BD5C66BB0B4C496B6071CFCC8DF3C4B350BB252D920B9AB3F73392B3A6682EB222C0FB065977B93C8D133FC07249F6A0A47D19FD8702F6C618D2C170DBA4C65317C1D0BB188A09C9C4E97212FF004D9477FC36C1A25F3C725A7982146C4F3D20B0B07356FC8BD18289F860BB8834078D7D4813DA9BCC2D3746F0B9387600088F277F9F747A9862BE9A851CAE219257B190C91C17C910DD8315A107967FC619C20093DDD6532B6A096838B1BE3263F314C42A8F4B8B71586DFA279550CA54D87A1BD46B8D9C75861080294E9A084F3970D217610299AA8FC5814611A40BC01D8D60AB7878EC5C0460B916DCC183F826888D0A03A89DC3E27569B2A7A461AD847AF7286AF11A7C7A07ED8C3AA76B209D98C7AA72A5C3049BE14F723C2062FCA960C28925E6521534F855F3FEC4054F3224851137AD18C4EF959E47C8134C86356F09B82606A69116B5D572A7C40A6A300B689721D37E80148821AA74902C0C30331664A65976C29E80034C00447245FEF8A3A3DAC44824B210A3B04F3B7AF5A824632FCC5EBB45948EC3CB971607EE94FFCA362CA60CD6E895C9AA0CE699570BCC4CAB9832638C2269DD9B43F880D4F507768E4986D85814929AFE4801008103900230956193E7262A0AF2A6036F4CB85C581A5D1256CF78C1657598BF1C45F3048F3FCB0A37AB971D30F7F124E7662B171A5070BB14A750B26AF9B020A929FD7B2B244D5945E58B5BB64B2F60B7296491D0AC31BC6A046C7AA3A1738B8563C234D4DA3B73DC1C5C4A047B0A5EA85EDAC7BEC66F4D87FD2FE422E7DBCD02D14550C4DC82D723965476A518EA0915C1554BCC61C814C80FF120C37E7E8ED6D5C406CF04CA090E5805FE0FFEDD6BE0F254397155A7639C5AFBB30A7A75CFEBFF026 +encap_coins = 894F98D7435D1C0C3667C22A218A449D07F117D46FCBFA4BAA09F62403827464 +ct = 433DE739397C375C5068522C36DA3ADFC12BC6022A8846EED9F30DEE2C22BB07F4A80D3EA846A92538292FD67E8F7749004B1C02915964A4597241EEC8FC07B2C87C7B05215845B2E8BED3EC035EB6F3BC748F2184379B0431584BF64A682972E3A2846A4294C6764B849D82169551E3D9C7C67FE22824EDF4015ED6574963DBC8F813B79028DF8A81D46BC2E7556D9999AE0517DDB440E8FFC46D4BFDA1CE955FD583705A532526AE71A506FCC19DB8EC359DF9EB64A81B551E9FE8EC4C7BBCAEB442281F45C7F76E71F106CB7CF6C56FFD798D53791F9312A57CD76D8ACA4D72ADC6F0C529B7D00A70BEE717409F9A89E6CB72C1DC450321C5791579873340133FB2BDA9485300D131C3E1B4F390628C34FC3DA31FD57488A9A75953E80D98B80DD4A09EBDB52A17AEA229D9E6F92DD821CCDB697D19C6B3019F5F611795EC9D53F6D9E0CDC49FAE423E56DA4D4F0AD6122B59ED9AE44CC81F258A8E9AB6ED139F0142AA28406D20A55123DB52C2809C72C5EBDE9E4367CB09B12F9FE9F0DABD28BA1156197DF0A87C4412F6ACD6C9740F4AFE8F220B450D4BAAD109F78AD65327B5E66B93329069654EF6EBE8FD3EF6BE797CF2B63D487C027DE525AE5145E55DC9E6B5610F7B0A4936DF7B573CA49D9106FEB7DDF99C94401E75FEEF4D4DDB4198C4599ECF7B200CA4585008BA6BDF4259BCE0F25C2E0ACAF457D356292DF8252F347D4BB5A0880A7AF276D811E59AAAE2D4B5B3CA5894D5C46676EC5F48A9BE99723FD6DD34B3706A6A437A271ADAF100F1DBC2A4F4B3FCAB5A527339F1882EAFF7DED22CCB32BA4B49403B659348D730C1DB2A4CBB09678924201AF6A5CB03DA05D69C7F85D220AFDE041916A30F8C181A06EE36227D48582CD5C6730556C645D248BED7336625C31313F65FFF73A31676F555A356BB1990B6A2E801756DA3F603087D6D0C2C57255D3343A0F8A182E4ECB7756DDBB962A7A81068F1DFA5D8A3DC5E727654A99DA2ED70716E2516B4BA1D5EEB9E3C2CBAB7F19C5014D347EC7075AC7AB987789C67EB99984A252134C8FBB7096135A3C5B8872E0A0842EBD1E765044D1C9BEFB7A2EB2BB5B6D5BDBA2383D305A5DB81226FF7FA797565603FA3E16659096779EC9D03C7619D78205BAF540694DA5D9A4E05A9CBDD7B1E104AE9D23E07295A803B339D2D1380CAF3DC221CA0A7E139DB1AFC8BC3355C2C000AB7EEEAAFF62BB399EF62D843AE5B4B33E6BFE649D07482DFABB2599BF7EEC0B308B6EC5EAF2C15FA05D2182B8A3EC13252034EB764D06860AF1841001B9E9DC1EBFF5CE2455706A9F3032147D9F7C2854521C235A4B551594DEAD8D0DBDA1ED73865D2A471DA48B2674792F1F15BD1C170B53586ECA6FB3FA95DFCF8C77E963734F120AEB4B324ABD98201C19A77437228D5D2335D5D224B28ED171085FF161F5636E0B81FE1A6AB5FBE8BF87F614CC13729D4C705A66AEE25B7E26783D87AD35C22C13FB581972B220EBA6680E529EE809BAC3569FE0FE32D580E0EC9C18DCF2CCA0883366DBF06B3825E3DAB7D2E976646B84EFA833DFC6788F3DC923038078702E4FFFE28ACC24F0B28EEE524E1F92EA7AC975724FE86E1788DF4DAFE2A82134404DEDC7DB9EC895D5963C139493A167717CC06CC7435C2BC9976ECB49C2BA98468762667DADD8E4B65D3FC27BC10935D79FF00DAEE12360637BB4D453185DA37E647E1E619A8DC5F88188DB9939D11AB687CB39B0C3649764568C477FEFFBA946AC9F9C7ECD657590E7C55CBFDE6858F1CDC5A273C2DACA88C812BDF7BE8FE2E75B2403CC3DB32D6E5CC292DDD1BE1C1B3A059FC6066EFCF6FE66831BB84EB6D38E67D9417B6AAD15B11FE526E85B1703993FD36C89B90C2259F401498C212DEBE5EBDC0FBE118CD82510273D7562E33D8EDC47DDE1BDC2F0158A0717DACD6B98D3DDE600876326FD0FD70B7AE46F81692E7975CC396639577906F6EDF44D53B469F294F73151DDA8565E081AEDBAED6E2FF0AF0897EC4AB9AA0C25FCC4C9704BFD5652791D01BD4609FAA3290AB87486C703A2B3C1B4984E6425A1C6921D0A441FF381A55155A6A868353EF6FEB8E32989A11C8AB15DE40F23525207FE750E7D403E7A87AA527F1E860A34DA80CA033A9CA371DA32FBE1FDF78B1C496BF255DF3A1750558737BA12F96F6590915B6506836B8D5E1D9A494AE7770AC +ss = C18734D943F9D045CF9FE7B76044C5559ADAFB60877EC4852E09F36D9427A131 + +count = 51 +keypair_coins = 25056D1B8113BB362DD979D98643D7A7AC9C4F95994C0BA060609B6D07002FF30D5EC1BE89D37BEB810DB438778BAC52CDC1FE8F5C27AD825639E12ED908FA31 +pk = 44BB41C301705EE232E0A6BDC2E4C6BC55958859A5AFD2B82F502E88A746A20179FCD60FE0276AFFA12828129543471C7C620FBAB41DB49173AE4A144ECA173B23899A99785A25148E6C92E6B5B3222CA7EB3BCDDF6508C4B19A039143B9D87AAFC77AE80627CB0B96E2B849E86ABA25F74B93A43FB21CC5C4E861D950256484802A7B479B67A803FBA87D916D0918BDE0973BA3F2C0228C0DEDD302C6FBC9366C4EB708234592CAE1F3C58499CD177621731738F0D8573B53018CE88676ECAACE719063910AA3D08B13A2CA2E64AFABD52A309B2E0A849F3537109518CA4094AD4BE6628E3C4A713C59F8778BAE05CBEFFA3E095B98AAC23F489B85A9B18245649E8EC3BB8397C4125864D8695752E942437B315B7286675279DF55CDE5D20AEFAB94B1015030C40DE0735472E02AEC59027C8CAF0074B0FFF4BFA12267A3A5BC6A380632436041CAC792330A4ED585379114B641BAC7CCAA534A3863B52390D2173E4474299C8E1A2571BFE215C71B1D23C14368926A2D0944A1F20BBC536C84B7C8218B3937946CB227134E35C36F81C73D6433D4492CBE9BB1631787376115F6F9C3E5B76E83812494719B60231DCC4182C3E8A3E21122106B9036C62755531B6C5572CDA5647746B9FE64286D395CFB759CAF4136466937B70146CB99010AF4088AAAB16B6579733843F02766F19CABC7C6ACA7E44E7265823CB907022BCC72617CFB7BCCE57988CA4C3D60E94D12C34588F173473A5D0929B5BCB09CD8F91534E7BEA694576638889FB29C2074058900587FD8889C89593CB5186FBA07BC103F4196A7063BA5C4229170F8830E254862457ADECA7219F73F201130719B39E0B84845709F2CAC7ADFB60B26658EA9137A940B1AD8CA7966DC1C0E540EFF9999822B5E69F58133902AD3704345914E17A30A96D6A879E320CCDB91F9F7C68F683C00532449F5420E8444E4C01DF8B203E38327E566130C164D91BB14BEC93B6EB4419A22C744FA9D92E861AE7BB13862288030551AA43BC4F809817675290A2413E71C9D29578DF619BE496061F7307248BA88D9A322648F969A2FBE005D9F895264887898CC0A8B35CFD0AB7AFC594C9771536677571B9188D3B5411AE450A5A75E6DFACD813CA905B13F0A52153D0793C908B2D641B00C3A483293399D0B1579E28F240393E13C86E0121F1DBA46FBFC9A5D062C1EF670E01C4B6B7A809470AD15F725B80849A0AC6F5370C1C96A309FF964DD1A9DB2016B189A61311CC82DD652328596D6A2AAB35A8020094FF7438064A7801A050090A18E9E4C2B33C14CD1F97B518AC9F4EB9A1156C816E6CE01D6053481B57B1787BB925FAF531FDCBA1BE23570DCCAC4312C148E7833162C6219835CE3DA23B1D149E434928F810577C37D0340B6BBB45945D789F6CCA8FD5226A3C066595399EE696FBE2025701669454A83E3162535D51B11216AFFA7BF5C62A62D696D4532954791AB088BA84208A7DFE76B33861BA6D6B51DD322005700B38C8E4973C934E12C374C3C86C099FB42B2DAD468A8701417E2B5E902B674B759A0F8366A3C00BE49B43C39A016288A1282C9673C1204A73FE2B45E90AA2732A46ABF8496CAB31C52066052684D078C1926D374DA041BEE98939B4A597B2166451801CF89CAC513A3D0890C3163150A54734B7960BF5701F837AF59E9A4C631CA49768829ECC6D23122BE873234D825209400C883CB47DB7B60B1B1FDA95B0076B6CCF97BA855AE9AC8A9E9FBBEC589C342A4198366A8BDACCDAB8349F9B9AEF229CE46D4818BF188338AAB48420B9ABC13EEB990EA41CCCA136FE6A3C3827BB40C33C1C749620DB32DBD773043302B8B2B52DE82910BA96EE430283FD51F17C38BD1734B4AA353345777FFAC17797683AD603CDE78C51DC45403E97514015FEE950215B7366D76B29980C79EF727622919B59931E9A78FF6977D9E49C8DA013A2920827A21988A713E8A378C3DB9C90B8A2703E2961B246A5D867DD98692CB60093D617FD9493EDEE2820BB081B2B1C3C9E6941817B408255A0CD09EB8AA43C7D298954B2A92250AAC1864D1086FD7338ADE31A36F756425303A51BC1AC7F920A69273AA11B7F077000F9BA015035DFB96159D28282BD9960290B9FC51A79BE9888D737329801428564CDC7C4940531990744A987152DCA2388BA27E3769C8BF287E54E41CBC0ECCA95CE621F2 +sk = 2D149D32C41889573CCB5166C597C3FE207CB806BD13A8A7BDF86267A93DA7110A31F22221A17A5381C367EB1B9CD00810189C1F12358B59ADBFF2060ED6AC6712C660B51B553402D406BCC1D2444A863B6FF261E17AAFFFD01BAA2B05CD83050AB460CED09BC7C0C2963784B7F9798D837BBC0483001539F0EA65A0574B46785645019B25130095725FB71556ADD2832EA245E250973F504DC58A4BA3C45CC8259E7906588D688F4F4CC79A1A955EE31E0FE931D16CC9DA767C3A48BAD09874F7730FA74C349D2163638AADFB59A462E904C5530A0B485541E391B6037041EC6A0560563F186BE2AB97A42520A7DACEABF1216E16870437CF012A6B6D082BBB23349628AF4DD8CA9EA986498A80EDFCC2418C3F5A627BA8BAADF3739B3C578B2F193F57B72DC2827A2DC379AA31B6127C65352338C012CFCCE0AF1B33150D488CF47134E06B5EBAF0432C172090FA6671670BF7B66002E135E7C43D938343D5729E22E5597A06209E0793E65417DE945B5E1AAEB2740FB1B350C902C1390A97586564FA94120CF7538B21AACC0AC0831B477E37C9E984B73EC91ED88705EF4CAFD2F15A50227C0E4C0627D2A6D7875E9605AFEC339799690BB6F0A5B01141A6976FD51AA7A079827D37CA89726686BA95D6F275A59341FA229B4C163C260C4DBC4587C50AB8F0AC777849B5F700209F17C15251854C35AA23C20D486122EC8145565966F4A067251B96461950AC2171F1996E94517610338B88C091C356804CC691922449DB0645A404AE4A641D1482B58E6230C7965C23605D66E96C8F0418AD786801D7530CFA2B5B757E06ABC10518B274E3992E538922B717866C7EEF827D2BB4C05FFA3322981CD8069DFE028D878A8B7A002472D302253A83AB84ADF5530CC5F4671BF5219FE600BA97ABD2555C52857ABB76CCF4760ADB30346C55AA5340B189E1968F72999E64C0B76297D232412B3C9384783457B83309BA7EF74ABD50D16EA1C32A2362AAEBD02DA7790FB8827FF368261CEC14F3A2095323502446703783CA9B6AA595D690031297C59B25414455C155924A47896716AC45330CE7069D131B75A57769FD4B4CA1990170A3570160CDBEF1C930063D56E3546F09B1CD913C82057C0BB89111E6B1BBA88EB8CBCD72078FCBF5059FE25C84BB5607D7B20BD0733FD96DBAE2ABD9531DDBE3CDD89A926361BB56EA0E5F9181B2C8C1532312F3F9005135C07DC211B824B1E63AC96E64845C35C41E0313511A5D429663796ABF2443908D353766D40F47A910FD04A710BA5D6A5B301832A5B6016338D8858B220E8219512B643B8B60CA2A9347EC39638B787FDB44CE72408DCD2504DE24AF91130ABC09B2E7C9BB26B3393EE06FD77019ED3466E019AC92A416C9683DA22CAFB1A9AD3475AF17A15EE9F97446096647578F77FA02E79904FCC008FE509425446CA2A4C1DFF32CDFA4CE120230BB5CC9CB49A2E2841BF69A1C49A762EC171698CA0445201C485A15FEF2562EACABAD3259119C9BA4185677E03AA0470CA848709C4BA0C8E5814416C5678033C819773DB36E7A90C65FA82FFDF6921C38285122163BC0744DE5C5363C9A973428A6DAAD20E5A62D37017B464DA7637D9D26C6FFC2B5F17610072C7E1CE668CFD97C29EB597EF51C039015E4B35A7D049DB6488E271851D20CB61655CEA5A074338A722A10A7F77B5BFA0C8BC41B346BC5BA4BD17784B166DD83A6A5066E0724AF7B603D4CB3A880F95040D53B9F11CED9FA55B1771900E8924FD7656AE198B392BF23A83418519E3C754203A9035C83903DF9176004BE81AA0CFE690297D67CC3432F815C4DB7DC5797A2CB99140E28E880097A0F45415BA730B616572C2316895E7C0D11073C4BA5A6DDC74F59206DEB3917E84A9D8EC6C63FC83A001DA56B03BDF9C077BE63645331596BB962845594907A22F8A85B084AA80EEC51B4F27E1AF011464CC73F6615397C22833CA5B81CB30DF1982A18BF148A9D3FA5C6A46C323CA1B5A1FC4392A2204379BCAA3A63FF679F3ECC00930052ED80C965A82E55C08389D284D4060254A42F87C6AEE7211933E2C6678CAA453B8C006A94960B0DE5192631F9AE68811D5B729EAEB1C0CC8AACCAF180FDC09792DA38E194358124B7E87B7F55181689B3C5537011BDFC9E44BB41C301705EE232E0A6BDC2E4C6BC55958859A5AFD2B82F502E88A746A20179FCD60FE0276AFFA12828129543471C7C620FBAB41DB49173AE4A144ECA173B23899A99785A25148E6C92E6B5B3222CA7EB3BCDDF6508C4B19A039143B9D87AAFC77AE80627CB0B96E2B849E86ABA25F74B93A43FB21CC5C4E861D950256484802A7B479B67A803FBA87D916D0918BDE0973BA3F2C0228C0DEDD302C6FBC9366C4EB708234592CAE1F3C58499CD177621731738F0D8573B53018CE88676ECAACE719063910AA3D08B13A2CA2E64AFABD52A309B2E0A849F3537109518CA4094AD4BE6628E3C4A713C59F8778BAE05CBEFFA3E095B98AAC23F489B85A9B18245649E8EC3BB8397C4125864D8695752E942437B315B7286675279DF55CDE5D20AEFAB94B1015030C40DE0735472E02AEC59027C8CAF0074B0FFF4BFA12267A3A5BC6A380632436041CAC792330A4ED585379114B641BAC7CCAA534A3863B52390D2173E4474299C8E1A2571BFE215C71B1D23C14368926A2D0944A1F20BBC536C84B7C8218B3937946CB227134E35C36F81C73D6433D4492CBE9BB1631787376115F6F9C3E5B76E83812494719B60231DCC4182C3E8A3E21122106B9036C62755531B6C5572CDA5647746B9FE64286D395CFB759CAF4136466937B70146CB99010AF4088AAAB16B6579733843F02766F19CABC7C6ACA7E44E7265823CB907022BCC72617CFB7BCCE57988CA4C3D60E94D12C34588F173473A5D0929B5BCB09CD8F91534E7BEA694576638889FB29C2074058900587FD8889C89593CB5186FBA07BC103F4196A7063BA5C4229170F8830E254862457ADECA7219F73F201130719B39E0B84845709F2CAC7ADFB60B26658EA9137A940B1AD8CA7966DC1C0E540EFF9999822B5E69F58133902AD3704345914E17A30A96D6A879E320CCDB91F9F7C68F683C00532449F5420E8444E4C01DF8B203E38327E566130C164D91BB14BEC93B6EB4419A22C744FA9D92E861AE7BB13862288030551AA43BC4F809817675290A2413E71C9D29578DF619BE496061F7307248BA88D9A322648F969A2FBE005D9F895264887898CC0A8B35CFD0AB7AFC594C9771536677571B9188D3B5411AE450A5A75E6DFACD813CA905B13F0A52153D0793C908B2D641B00C3A483293399D0B1579E28F240393E13C86E0121F1DBA46FBFC9A5D062C1EF670E01C4B6B7A809470AD15F725B80849A0AC6F5370C1C96A309FF964DD1A9DB2016B189A61311CC82DD652328596D6A2AAB35A8020094FF7438064A7801A050090A18E9E4C2B33C14CD1F97B518AC9F4EB9A1156C816E6CE01D6053481B57B1787BB925FAF531FDCBA1BE23570DCCAC4312C148E7833162C6219835CE3DA23B1D149E434928F810577C37D0340B6BBB45945D789F6CCA8FD5226A3C066595399EE696FBE2025701669454A83E3162535D51B11216AFFA7BF5C62A62D696D4532954791AB088BA84208A7DFE76B33861BA6D6B51DD322005700B38C8E4973C934E12C374C3C86C099FB42B2DAD468A8701417E2B5E902B674B759A0F8366A3C00BE49B43C39A016288A1282C9673C1204A73FE2B45E90AA2732A46ABF8496CAB31C52066052684D078C1926D374DA041BEE98939B4A597B2166451801CF89CAC513A3D0890C3163150A54734B7960BF5701F837AF59E9A4C631CA49768829ECC6D23122BE873234D825209400C883CB47DB7B60B1B1FDA95B0076B6CCF97BA855AE9AC8A9E9FBBEC589C342A4198366A8BDACCDAB8349F9B9AEF229CE46D4818BF188338AAB48420B9ABC13EEB990EA41CCCA136FE6A3C3827BB40C33C1C749620DB32DBD773043302B8B2B52DE82910BA96EE430283FD51F17C38BD1734B4AA353345777FFAC17797683AD603CDE78C51DC45403E97514015FEE950215B7366D76B29980C79EF727622919B59931E9A78FF6977D9E49C8DA013A2920827A21988A713E8A378C3DB9C90B8A2703E2961B246A5D867DD98692CB60093D617FD9493EDEE2820BB081B2B1C3C9E6941817B408255A0CD09EB8AA43C7D298954B2A92250AAC1864D1086FD7338ADE31A36F756425303A51BC1AC7F920A69273AA11B7F077000F9BA015035DFB96159D28282BD9960290B9FC51A79BE9888D737329801428564CDC7C4940531990744A987152DCA2388BA27E3769C8BF287E54E41CBC0ECCA95CE621F2C934C11E2EAA7C3C4E764863E436FF12FC9F517C79DF6344AB98611F57FE72960D5EC1BE89D37BEB810DB438778BAC52CDC1FE8F5C27AD825639E12ED908FA31 +encap_coins = C07D2A9F28995F021A974E798A55AEC0230B11B9EE542F69925D009159425E81 +ct = 91C4F11CDB289FD8BF8B2092F3A9FB1E510AA6160445462D0095FE10A8B2C2A6704245FB48E4C095AF3747750C982762F38BB81A0DCD80A8B91AECA2B04F52333B0CD8C1695B5D9CCE77057E609FECDDC37221299B4442EA8574FBC4E50E2038CA02A17C00D94DA4C5DAB6867D97905BEB1E2B31431745DCA1FA1049507D97B93431A2C90D8812B3BA491E5134E15E1E0B73BFAFF485C19ADFAB83D594F2F0742799ECBF806862D819EC1973A1A56484153BC6FC25B9DF12CAA4A2DD0DAED030F482280CDA062F3995192E42C25AF520E9DB3A4D86E71984451224008F0D639FCEE4BBD04A291A838163F42EA005F8D62CEAB6DF5DF1A35DCD6F14FEE4FD949B658D19DF6C1682C0A634B45D47FFE3D5797A26C9AB2E54586A86D599AF45C74E4CA7DAF7AF8B4B67B99B75A19573449B288B7D6300D4C9B42FF46D261147E284705A0D9AFF171ABB1F4C2EEEA74CA88ED40215F3D2AD1A5BFDF2D98B83C30EB2110B2DCE8C15730C57B65844AD2B464177B3F84ECBCD983DFFD9817E976E75A82C225831A7DB3432AFA02D19A78187733D0C599747A1658EB3B13306B846C0048EA76A6FE540AE904A4A6D1647C8D5CBB8C7683AFC8ECB9F6327CD2BFE213C5737C48CC50AB3A38E4612150837DD7C06638E33C1055CDDC58507D8715344D801BB5E65FC5E2976BA57BAEED4B3275DDA6EF61827F17BB2FF7D7F724CF4E90E5843CB6659CF687862C71C8F337F05FF4B26057434D581C8256754E0414F2F2B44521F368CEDD342DB692C735A7AEFE36611500B0F7C8CBE0579B958311CC6CF1C9184E52EE78F57EEAFB2E85F6C48F3ACD5BBCEE6B692CEF83FE3628F15FB7A886E7CC716C4503169FCC9005387B7B70EED8096B2691AB1A7C55C1E0C14A75AA503B5B098736ECF38F934C697FC537C299D7CEC293D699700123DBA8D6432B023325EF22DAABC1669A3FAB32179D8015C91A1D5810CF239FF67ACDF428B0ECFF0B7D9DE5938CCDD39A98861DF60552B69110EE9E5B35209D09E1F1DA06A24A0A81E88B26A504DE84442A8240B4FE710F5831D09B116A8D3B7DEF8CCED7DD323F1C97693088718781402AB959BEF2DBCFB18805A512CC175D788ACDE967C973B6703D988B1DDD8D674C2DACB32A06E51062595168AB7AD012FF760447CBC3CACEB9AB8758676F4372EAFD63D3B349F6961A22EE10486189E6110422B253C1BF2C07B821D0E4202AFA4AED84C58B2F05711D593448E355D92A29DD7802D75AE8B57B7CA24B769A5CCC54A302751F1BDCE0A55C79888E2BF6062E204B9439F738505D3F818F84CBFDFD61B5B2031A578194EFB0C36C8A237EE0F3CD6BF8C22B44F10EEE52031B71E7A6DE93C435046C55835354B71D9356E9AC92BE92BFDE05EDAD33E0FE706966A58C841BB64C18285F12D76B37E839A37AD823ADA26F23961E8BBF11C1F86207014F513888E1A3F107389E26FD4E289F2A70AFBCDF194C7C0536525D04202F25D3A247F26E09F96FD0EFF5CBC9D94BC93E871B148541152B3ACCC2D9AA1419F52CF68EF5B5BF9D61BE2DA15BDABABFE87CAEBF315811B169170A839FE1527DB84E57A0413CEC0E84A680AA013436ACB459D4FFADF987EF0C739381E6DB60B685E2805DA597815A755617D18391677684938FF635AA35EEF20AEB927F5CAB25B65BB9C84C258AFDF4D76912547D4D8CCF6023990AB8138D877CB95371EFA10AF1CB6C223AC81A1F5585A3BEBE0FB5088203F16FF032403B5B1551F9A4CC012A00507D9E0C94A874A02EC4FFA2AF358A69D8AADF65D024ED5F99D3559A4FEA1D93EFA51E1BD1D791A421DC9D1C9E73897BFAE8365B635FDB66942AD5076CD51AC71A4B54EB7FEDFC9F4501B2370A2B34A4B92723AC1413F6353DFDC764363DB439134259131ED6C4DEE7A8E3D0C4E6B9ACDE1D8C5AA0ABEDA4F04344F45E68A05FD7C641C48139F1A9BD07AE97A754953AA88F823460CA36B0CCDC0179E98FEFD7F1E3EC65EA9C4CC9E650C18F15C6E03F828A51245964E035F17C8F0819D7F4DF52A55F14FA06F56E33D0780FCF82038A37326EB1CA00B81137DAC3580814FF59C741B8B54E7F6EA0E8A013A3FB54A57557F854F781A377A1FDDE4823C72971E41AC143FCB2E0C64C69D86F68FDE84691FBF8B200FCCCCBF95AEC040A4CB3D087387F6B7F53EC74BDC190C2DA8E6F784BAD59878C567F4C28A7567 +ss = CFBDA200C79BE95EDC0D897D504A72AEA18F2CDF503C17DED828C64C021503CE + +count = 52 +keypair_coins = E4D34E12982AEEB1D62FD488D9B9E28557ED3429292239FB4F76FA9098009ACA91FD1369E8228B3979984C15440EF268FD3629C186D6CFDE02B0F8A7908A7EE2 +pk = C6E762E6E2C322CB783F069A7E5594CD26A0914B3104B87318D0489A63AB263C88D561A4C8FB9A77C72EC2B917F685333C61989A4B3995D74589300688D2512943AE79335DBFB0C52CD14B16C085D510918696087D2AC47437C0294B8626A65F1E373D19A0107DE053219A22BD0907BA19B4E7326F765989EA61174151356F04585CB89BA8D05A99808283B550C8A3816EBA213362B5CEC5773E152D14D83563DBB57EC89EAB558C6365BC5EBC577EA46C6B39C3C76B43EA22074BF46F252A125D3740066509C48CCC347ABDAF436153911DAFD114555964C49BA9E2605213DC8A71A05E37B305F922A4E9A3B31E973E19B161BC4295D290535DBB8B6B359855D811614C14A408C34926BE2700418139998E356ACD5B85281B61B0C78733B0AEE5A1CA99B56737C669D535B276C5546AA72673C5344FCC7923F69A0ADA7096D75E81E32E0A8644AD73A4E7D19B3BE97EA3D773BE842597761818275CBB8AACA1206FA41686613986DDF37949842BA1741E812217593815C82CA7B583513938931B0BC829AA55D85A32B6822013244F2A3BCE15791620E6CBC96B8555D0C77705C7CF996292CB5592E490D6243BFADAC9DAD7270A125E14FAA8F8B321CC6C9E3B2407000340702A4C97A0189FEBC47E5BAF51CC060AF7CBF48642D46911E0889EACE6BFF53CA189A1036BA94912582B0F8B679A3B6EBDB31B7BBA4F9C4C349052C4B9352D45E68463C865AB331884982C05F3A1FD78081D946A71D984887041A0E894F6995501233363027A3B7C321DC4A21D8463C9369ABEC4826F0906039A1A83CB59CAC584D7C6426C91767167B3A4564237DAC2B623445CB5998717BC4C8C9E3364915C5BA86B99A02DC444DD52B236D4CD2C26CFE39C1CC8321CF7156867B37F85188ABEA7A040400DBF4830ED1835B2D47A6B8991451A7889020EAD45451F46623002B31839C556A22382130B7689CC92CAB281B164DD237357A195F4688F8F385F8F45A32432BC238A0C7F78324BD5B9E73AACE5391D60F28DDEF61E4E2C493C136B74229EDDA96C22F70F54435C6240747D963E576B2AEAB0BFF2009BA0F34B65C2A35B72477F36C914D048545C513AD61F964829A78BCCCEC39D2DB38496A209AFD760F1A51654D3125DD42C3EE13353F93E0114469C2ABDF879050CD9466B4606241158A60B35FFE1A8956815419B9FE843913D22B93C7283805BA3098A52BC16BFD9B27C29155A22C99EDA56530A69964466065CCAA447B13C4C8115ADCC6285D947AAEA1378A76E163556C18459B1AC905ABC9B39E21E12486A5E56A228395093B150FD550FEAFAB094602672860E5C74240AC705F25903E70667968435A4DC3E24DBC77E9806EE94436CE00B11BAC776B46BD85A94634C1A3BF91E53781F03318AED41011A390F48E5B7E2866D11783C7B959882821FD4745A2FB3BF1E87756008BA1103A508A584A3290A4AA4783F10A9E62A73F11A0D18F9B8E3A608A58317F3D3909A5A622BBBB09B52350A7A681E2A63F02504AEC572328155F67100B6331F38835FD56361FEE46B903CCB020A2998D651BD2CC022F1B4C97966274353B745AE43265D79FBAF20D7969A8B4AB5CC9F43259025724AC0A05E9DE54257859858685CD602BDEDC01047FB903416A2E2D770AABCCE2460903FEB40274354B2E705111124887B331CBA10673C0D2ACA027A2C6CCB95C701568C20346EC747A29DE09FF6311FC172910E41031B95330E240EBEE2026048047E03C6DE9A293F501604D3C7CE57A715DB0AA91A6151230731E02F467477D04A5AAD9B2B8176A1F056C3140BB1454CC7FFE380CF97139F4800FC4B740A22520A3B2A8730CAF5E7580352B936AB9EAFE3CBEBAA87FDC771B0D704E455B8153C4B6CDC780EC415AC7326BE810C63669A7F30A138A187108880B5AB97265A2158F542C37828C80B4BFFB474AC27C6513BC54F0897CCD9948DD3C78F60C4CAE733ACA6CAF41B9CA8052F25E58E78526AC8EB30AFA960A04A322C582E5EBB286ACCC225A187A074877C21329856343C587E7AB6B09C3427091655F34127E09C3DE1D8C6CDC3AAB3EAC81A99AA1A1443794C860CA17A63D0B154C9941D9C219C0A7C982114FC0C85483639A0F047A217A148346FC844C44F37270E775C5CA414BA49CC59A4B94DDDB5584ADF5FEF6BDE5872A551B6840E3A082A8AA6DFB7232A6813367038CC +sk = 85B01A4A587BAE308D39792B47F71997FC55FDC2746F881DDF7BC215145C56D399C6447ADA39230866384BB718ADA160A7349747867CF695CCCDB8A4F1FBB3E573ADE85CCF38924F36482BACB9798D481521A0CAE103CC9FC9675184490F281D3516CBEE910287758A4C374C0A4313F1C29251B1655522936DC329F540A1FD887F0C775823436DF736C367AA3013341E66854FB39A9EB90B23CAEC3E84690AD531141F39914A77A767A47B60F2868CF11311AAC9DA94C72E9624D21814CDC99C89A4B35E1C4C63CBB3EDEA06888162E180503CFC6616B24D270601D0D275C03109DD9486220B66D523A8111B4DE5B99D236586A09A4F77A240CACB4A737C770BC4915F55B609075EE68499654BAF90622647052A8369872A93114C80C60FCA1345E20114552119669A0D3A7188D3326017CE92112F0B715C26B40851683478E5C719C11088F00AAC577F5A8763D4A76E3CD00CD9061F021672847BA0D4785EA7B1B28FA364E64C4FB7F718D2352B1FC26858B6552419A4D8E1B22F8C7992E3B5373183D040948777C356D514FDFB2D0C5A636BC5416A799270E5C975C0A62F3A76FB134646B333B75582F7F2C51CF4BD37835C3FDB2CE1EA86306362F8216D27E40CA43A45EDC9554F08C604624659AA10EBD29E59A60F7BD66EEE447F4398ADDC73387579148BC4A26B6749C961926FD34296DB3044CB0D2D1312CA6A6755EC48C46865A36A6330A9AA5D39167C6062EF1A7C82CA5C0AC1B163B85E43C278312C4304AA127D66576E7218C2D0C850108076109919AC6931264DC2E919FF441875E607A97772FEB45F14881FBCB37B4D00B45F416CF56C9501C6598FF9425249740EACCA49D92E31D679A4F16C3CCB4384DB45E47621719C6C585CCC03355216D43625C08760254AE3CC4AEB1287CD5C3F0911641B05C7036C9BB360C72902325830BD25EACB5A88ABDC926E0F205EE857AA66C8C47E434D8BB4A6CFABBD8B681C427846F0E18A2762152B170063B489A3E6B8BA06B00F14A3F2E6AC00725E5724CB629B7A312B3A1221C9460917C07637B71050BB644A38A8192270C857D43EA9304495206BF62B1C4C11B04A817AAA996B2A266CEB8A80AA46674F16207B61BFB484AF461B6DAD9A9E6C22C56F81BB355A6705310E921239497809012159E78A8A249796C155A9DC7CBFE7384DD092239C29773F6610E536A77B879EEF054C5E539A381043C1B53D69566A96D1931B166C6F066CF0EC81E7492A200876D42007724AC916460A1266AB77A327EF1282479685BC43A2718C93A806C3DE3A0CB918C7A734CB04759341C5B1496679987AA5DB93B70F903A5F4024C3DA6FE8BB2EBC27182E1179611C61F8F6214069AB83C7165A46CAA74BBCE0897FABEA9B6B58CD34E7535B0297B4359960D23E4A498CF7610601D92AF2FB6163C4B2761615121B62A7900B08D61065C83A69D51253D48399FC665962AD36275ED3774F114A079F13B8BCE420B44638CFA6CE6018B58BEA422A8287A6680EB21C75456592E8B24CB6C26EC3D3C1DC4A19CA16888E9B7FEA1A863B7A0143307530B533269A8B692CB4522AC1AA27B01D38603FD009E1C02017BBB36DA2049A2C5045A63081266D69D88EFF7C2147AC956A33B4C198C1EAB2AB93C592BB5137F291824C08258CD0B0BC4855A6B83B81858EE7B4BEAFA59CF7E4A03675113131251FF512C50AA885878D0C086D7461677BB81E46E4790C30A9A7AC4E0B3B600F04AD6381424A4B430B0A4DB2387703F77C4A0C51072BBDA954B473F86AD2AA1A5B926D18E0B0C25261502AB2D31AB5E837675B369880A2786389C9FF0BA07F1098E56C3C92557F3EE934573901D0168B3E35C4610385C324579686571A051D4852257AD329FDC85178438014FB365A11CD6A40B41AE8CAA46A6EEAEC1B264B8CDB2C040E928EC3829F3A7025C66525E937874E09C7FAC652AB059A5017698D7C0123CB6DC889B4C3942A6E834D029673955A521318B930FA4553F46058922B57831E947015AA0052B4514DECA02213E3171D7063BAB2305A3A173FF68A1D46106F1AAA3967BEF778AF01C84450DAA35B06801C5121425869D61213BD4B44667B7C21541103CB1F24B8A472E55E468B8A6CEC630314673C8AA12FBC135B79498480721180C3DD1B72C6E762E6E2C322CB783F069A7E5594CD26A0914B3104B87318D0489A63AB263C88D561A4C8FB9A77C72EC2B917F685333C61989A4B3995D74589300688D2512943AE79335DBFB0C52CD14B16C085D510918696087D2AC47437C0294B8626A65F1E373D19A0107DE053219A22BD0907BA19B4E7326F765989EA61174151356F04585CB89BA8D05A99808283B550C8A3816EBA213362B5CEC5773E152D14D83563DBB57EC89EAB558C6365BC5EBC577EA46C6B39C3C76B43EA22074BF46F252A125D3740066509C48CCC347ABDAF436153911DAFD114555964C49BA9E2605213DC8A71A05E37B305F922A4E9A3B31E973E19B161BC4295D290535DBB8B6B359855D811614C14A408C34926BE2700418139998E356ACD5B85281B61B0C78733B0AEE5A1CA99B56737C669D535B276C5546AA72673C5344FCC7923F69A0ADA7096D75E81E32E0A8644AD73A4E7D19B3BE97EA3D773BE842597761818275CBB8AACA1206FA41686613986DDF37949842BA1741E812217593815C82CA7B583513938931B0BC829AA55D85A32B6822013244F2A3BCE15791620E6CBC96B8555D0C77705C7CF996292CB5592E490D6243BFADAC9DAD7270A125E14FAA8F8B321CC6C9E3B2407000340702A4C97A0189FEBC47E5BAF51CC060AF7CBF48642D46911E0889EACE6BFF53CA189A1036BA94912582B0F8B679A3B6EBDB31B7BBA4F9C4C349052C4B9352D45E68463C865AB331884982C05F3A1FD78081D946A71D984887041A0E894F6995501233363027A3B7C321DC4A21D8463C9369ABEC4826F0906039A1A83CB59CAC584D7C6426C91767167B3A4564237DAC2B623445CB5998717BC4C8C9E3364915C5BA86B99A02DC444DD52B236D4CD2C26CFE39C1CC8321CF7156867B37F85188ABEA7A040400DBF4830ED1835B2D47A6B8991451A7889020EAD45451F46623002B31839C556A22382130B7689CC92CAB281B164DD237357A195F4688F8F385F8F45A32432BC238A0C7F78324BD5B9E73AACE5391D60F28DDEF61E4E2C493C136B74229EDDA96C22F70F54435C6240747D963E576B2AEAB0BFF2009BA0F34B65C2A35B72477F36C914D048545C513AD61F964829A78BCCCEC39D2DB38496A209AFD760F1A51654D3125DD42C3EE13353F93E0114469C2ABDF879050CD9466B4606241158A60B35FFE1A8956815419B9FE843913D22B93C7283805BA3098A52BC16BFD9B27C29155A22C99EDA56530A69964466065CCAA447B13C4C8115ADCC6285D947AAEA1378A76E163556C18459B1AC905ABC9B39E21E12486A5E56A228395093B150FD550FEAFAB094602672860E5C74240AC705F25903E70667968435A4DC3E24DBC77E9806EE94436CE00B11BAC776B46BD85A94634C1A3BF91E53781F03318AED41011A390F48E5B7E2866D11783C7B959882821FD4745A2FB3BF1E87756008BA1103A508A584A3290A4AA4783F10A9E62A73F11A0D18F9B8E3A608A58317F3D3909A5A622BBBB09B52350A7A681E2A63F02504AEC572328155F67100B6331F38835FD56361FEE46B903CCB020A2998D651BD2CC022F1B4C97966274353B745AE43265D79FBAF20D7969A8B4AB5CC9F43259025724AC0A05E9DE54257859858685CD602BDEDC01047FB903416A2E2D770AABCCE2460903FEB40274354B2E705111124887B331CBA10673C0D2ACA027A2C6CCB95C701568C20346EC747A29DE09FF6311FC172910E41031B95330E240EBEE2026048047E03C6DE9A293F501604D3C7CE57A715DB0AA91A6151230731E02F467477D04A5AAD9B2B8176A1F056C3140BB1454CC7FFE380CF97139F4800FC4B740A22520A3B2A8730CAF5E7580352B936AB9EAFE3CBEBAA87FDC771B0D704E455B8153C4B6CDC780EC415AC7326BE810C63669A7F30A138A187108880B5AB97265A2158F542C37828C80B4BFFB474AC27C6513BC54F0897CCD9948DD3C78F60C4CAE733ACA6CAF41B9CA8052F25E58E78526AC8EB30AFA960A04A322C582E5EBB286ACCC225A187A074877C21329856343C587E7AB6B09C3427091655F34127E09C3DE1D8C6CDC3AAB3EAC81A99AA1A1443794C860CA17A63D0B154C9941D9C219C0A7C982114FC0C85483639A0F047A217A148346FC844C44F37270E775C5CA414BA49CC59A4B94DDDB5584ADF5FEF6BDE5872A551B6840E3A082A8AA6DFB7232A6813367038CC5B07C8359E6EC4989C34B31293F4DF965B5D95802AFA5836BEABB001D5CD4DAE91FD1369E8228B3979984C15440EF268FD3629C186D6CFDE02B0F8A7908A7EE2 +encap_coins = 135CD8F8172371CEF32284EC766614CFDCA11DBAE8797B92227DA5E487E16435 +ct = 051A46E673F8B5592B4EE7FB1BEE1FECA91A977E5E01D6753436452121B456F3DF53BB4FFDFA336049AE9185D417B8373DDFE56536D44A22A980687CC97C6C160D1232F67A66AB9479AF82F260019DBF7B0D1D4D6B36CADC18E33F1F78B04789D81D4C3F918FC84D91FB45999791026A048974E9ACD4EF0A9851691496314DA595E1EF2604AC2B6270C8F3AEC8897936BD39C5A1AB35887685660F96028FFF3E80255F4D365CEE06EEDEE24F155125B2C2B784FC85C50D8E4C1BE8E84D50D3C3F260DAFB1E4E396EB6845267C77B0EA2C3BB73DFA93E68C26A52033F45421CCAF5F8236980466339B5AD08AAB8878EFEDDDBD92EE2D0BA288A15F61B8423592E7EF6E624C2BE28F87980187FEB5068E97EDC617CD67BD13A776F396E16F29EEB5B17FBC096DDBEF65B9C7D41E0145D118F2A9B2F2610539784D28817602E95DBC16EB4A96B1FC4701367DD010A59C2562BD1C6DDFE0F21DBBC2299D4A437C2B49CE53D9F7BA7DEDCE2F2385BC5D505E7A2AB276E6BA3A980B55BA0090532FDE22571F89BB52BB8CABC77CE16520C79E0F399229F24AC4A973481E8251B2B22710795CFCA7A11E9B0EF0532B050270AC75A9D9E811523B28D49CDFB5671BFD17FB304A8AED9BDF11B750A24610934EC293684B99E6085241FB234430391DED0298FBF18A7B67E8A3F890A3D061B53BC425167B8911F2ADDC4B445C6C412219088A04B5934BB0BA74A02A42BE64F53CF8A3D89A3800AE67B1CFD8996465483CC0C2B513299F90D0568BBAF923CD6B480ECFFAB5253903D5453605DBB8C9A6F90C0C48D9CD5EB098477CB83AC31E586C433FA8091060582F51CE9AEAB3BC75FD0269B5DEB76AD45C272FBBD29D79F89C25C1B1FCE8A668E03F63D776A51BCB4DB85D7720343E2470ACDC3918161B290B8DC81870C73CC0D261B2B8C862FB3A599A62C7536E8A63165AD515BB44EEB04CBC4C6FF2F9CA0009D317EB72E51559D34007B35E0BC6019573F73A744DD140276C09F098CBE712FDF09DD0E21BA2CEA04EECE5EC50C036A1FE5CEEB28427101BCC2DC4BE9D33C06B72B0D5E53F8A160E6CB6F50EF3E3CEB754F2B0DF39527F3189E1296B86D5F173110B16ACFCA5AB597586CCBA65E7CCAABF7C9622BE29C56A3BDBC2E7568F0CCCA88D60A88C266A98507E21F68AFEC83073264287BE7EA36CD94004F5BCD6E676357FE5E44FE55A134EF2BC86AF759702312A165F888521446ECF4F8C901F25C10C7F68388D9BFD88A51A932DBAEFB652CEA611472A695DCAD536DC13793E705171E5F5A38310D551A90909A9645A1D9CF9CB637C1CF013F566E88C40B3F4C3393613D27CE6A595478C0078C606F38051668A6145CE5012A87C5EAEA01D0F0AF4013429CA42EE28FB9EDA74E25277BC35C66558316C60F78A3763E8FF8D2D711A1855941F7A39F66B2238F9C1BFE25AEC0D6DCCF5C35EC57DFB54ECFFD616F00D779DFBDF92E9D1169855C036486737FF37BB080909E94F69DA77443D2BC05954E44D79B8E8953886CA94AF24B3BC1998258A54A0A5509589F5B41D1244F73C7265B934726DFFA644A7C0AC5C3A271AD187B281417EBD6C664C9209B177211A1CA3FBEF17C34AD836681A736B7DEAB35A37DCCD974F3236BBE7C2436B45D5A15FCCFFFCAAE498862B072E4EEA06CCA4B66362898FBF477FB039903634DE6204E61FDF63113026B1657E5040432088C1E6D0FE8DDB7CC331C9223A7EF23C1457227A9DBD16A9549602B5AF4AFB8E2840BA2E57DE4C7BDAF1800523474586C6307177AD7F7AF8A70C43F7FABBE980A79CB1A8C00F39877696B38B453B1578E7F9FB0B09154FF05372B7778E8093AA6C8EF6BAF1AAC5A9A87380CC0945C230E283B766499D3D76B666193A58ECAF9A95FB44533C5513539ED956E6A7F333AACFC15E4198FC65C08DEAC287A25D8854028A2A28D343D665D1D4D1B77A6C9C0C0C9687B1A2F94DE9DC9E2F9230C34F194B33D78C306E1444C366FEFF82A0AC197C8256FA7F03BA0DD4E720A979359A74F966DBAD5254FBC0EEEDA4EBCA48820C69A61104A0B1B7DC0DF08AD57413D52CF0BE42BFA7CCEA753EED9B652E6AC5039D6CCFFAEC3366018D15A43C396CB48C93D636E0C8D658E61E2A7C6375748531CE0DD5996EEF2F69496AF58DC646B17F65E1DD5507FAA053495465DA94ED111CB0358CB93C5A5B5A704BA087D +ss = CDDB5E24B40023BC259F37931530162C3AF9445C95E496D926CEBC14CF956F18 + +count = 53 +keypair_coins = CD6A99396EB3539CA663A51E42063A3A262CC1C5A5FCE1566F0597B52AD9FA32AC8557EB61A3D4A2400D3A604092CC3B92032F4D3B563F3D4AA19387EEBF2A76 +pk = 4EB491EFDB1988B9794ABA1C0D42326E9A797C67181995999A1053B3A1AE542A7E1BCA4AAEF5910A157C713CCE03BA4D34A9C427A53F263916041BA9EBF2B86E21B127C5951D7709FD036465784A4A26B91AF48C7B3574D6E537676B4BF8EB5E5D6496B7E66AC4D50FBA956AB9B881EF55A6459199C2987162774F573599EE0B6B001CBA6BB5302DF24EA0622D3FE2A7DB12A063D528BAEA6DEC8A97BF12A61249010EB7056EC5A9573C77B848A6C6FC13C070450919054C05BE006A40368094775032EFDB98E087991D76A703924528EC05EE50BC56D206895552CBF4999C6A7617EA35652C8D5CF22590BB9FCF62AA0E055805279400B2C9522CABE1853E06E6965B517CD04538D7F083E27B95C29B073AE13CAC42BEB549337491B88C877AF8910BF8659FB2F309442460EE93A0344CA83C58C1840C95EA482C81380BAE24C01C763B2BB05B369BBF074C8E96AC2B5B73920AE07318057A643640FD58C691209B08C9B5CBE972ADF001E8C00FE853631341C8A634CC52C77754790A6540CE9585290AA243231332D7EC3161B096CED68D80208C362707ED892921634B4DE6679E08A10F55C72043348BC512AD39C07DD41A88D3C8C06769B6C080B9A24080684AEA9637527A099BD53AF1505EAF0272A1F537593669E6CA1D5135AE9D77B737B77A475B61023777EEF22477B663D5848BA7D8859042713BF7353DC46C2E3B9E75788B3813B4844C0A233019529809487531A820A079FC2A43DA0874C332695A79AAF3C6D5997BFBD27783064C1C055B82B3BE463B5B54EB8C2E42772CD56318C6658E0B90CC31596B3880033338E6E41E9D1187E3732B75F50ED961501A030D221370A61788FC8B164625939E7B19D076B45B51C555D063433709DBAB05746641410CB34AE53E3652A0ADE7AE5DCA29F0E22048668ABE03869914117B6CC18617946C73A20B49826748981367090E8B72B8181AB696B878C79BD16683B2CA698E1489DAA23B54EB017F4000D481B268E2C7C02A75FB608217BCB1290746F7251D010A581DF15EBDBA8C5D379441D22E591C4BE3C9CD9AF05956674F558C2387518BEBC02DC3C2971BD264143271CE28B1F419BE088922E6644E939738B846CB651267A913936D80B2F4E8987B5C48C37672A222037FA1529A764BE14A87939B6C72B7730FFC4DB926836C71A56112724A88C9F55AAB44638A4C9186717246666B28E1003EE006AC915530A1FC4BB786ABCEC5B35476436EFB7C4B4BBFBF183ED16B0A526C019E7399D1996F44755FBFD86A79D19FBE3957EE97A08D668ADEE16B996A71DF28ACBB239DFE03CE8FF5AD62BA992863AFD086BA74979CBD2C0B398383378AB973C9647DB074921531A9441FB53A94E229B7C7BA8F2EC9A1E830B9826BCF1D353D91ABB56B89C33FD37EE6130757D08A1699929808C881F9907556AF18A95938A1BCEC20191BA5A9AE32B769E3C56D4CC6BAF9C9152359609A9E8DD6AA9CCB12B35C9DB5605BD8868474E65257F785B429C1869BBDF6E118024C906A951195DC4361AA95D4C53CA418A7B6926CBF539EC1F242DCB3B96E47BBE6CB0CD4A7936CB6C97E8663EAE6CBDBEC645C8942F6B835D2E44091C701AB73271CD86765E760F0A58BEB61B0E2D12BC7511D04B98E8FDB5412F618964367E2CB694AF203AB805889E0936C55BF8553B2B006093C72015D8629B494A04E3B51CF18347E7A025064A488B42C0328CEA0C57DC14763A74368E36159C72B232C8424FA01B5BE63014FD7B2733C47ABBC4D8D8474D5EB43FB76B03708872B4CC4529A00C1AB9F67E84DE76500F59C7088B1B9DCA9CA9F0309B5F12EB4D55F3D734E086A843A39B29DE99162A062B1E6874281221EA3314D784572BAB031A3732010A50C0AC8150691B621687B6020A5B347817A3899F141BD6454EE1B25E0B130BED368C5F905C1637C036C22F65CA761270A9E8BCC18DABDD78BAB5C48A3DDB82A01C646C9DBCCCF972B9F0AC4EDABCEA3088586E8CA08F7177AD3CEFD578F9FE6CA08C99167C65E4C6193251288785720AD110F58F81F4B938DFD813B76887CAB48BF0CFAAE5A8A16F3B110E130BE7313411D517E6FEBB2E0AC004D44380B8AB62E874538D005D4F744918A250E4B60EADC6CAD0363E0DC6CBA04949F893F75E5C48E9FE10B44687F9AA606CAE8888E4C21AB0F7B85EB3D3A2A3D2FE8ED883D1DE0 +sk = CE732E28B21F42F2BBD1B049E6B80264B218B581CBAB8C9186E325F7617895E6320FE5C697FC3B82546681B3CA5F4A52F1F7501B652F86D35CCB9756E869795C166362FAC89C7B5AD41C7C74C596E2A7458E419CD10C10C890C94FD3564AA25F1EC3A3282607D8B1864022CDCCEBB1B1E48961207E29264A9CA86C94B71D5382C9C6B8004C818F51A52006706285BB3281618A157C80C2C00905C33316516C17F04460124FD79A1C330417984220334C84D96A66FC8A5556814C58F7826EE86F17319DA3F504F0124C3F06CA50792C1E1800FEEA8A8E8805A54BCB90C52ECA144677327F5058CCA151617F443DABBA304B353F4A5CAABF0C179A772582711C033B3F3C1225F191B887D8294FD18914850DE6B194B91C250374963BDC7215B07CDAA8001372A21F0C3845979386C27949E0BBEDC0B004258866A01EC5CB82FC751BA2F4510E514A3FA09B6AEA7E5E45762076B81D781C2BA91DD6F40CF13C91E947A7D7ABC2A2AA91A1404D87462B42AA71EB15209A9B0D4990C2265B051163CD2BA8319576758237482F500F7E94B3FF099616225737A766C10B6AEB213B5B073EFF93C3AC91BBF2B93FF47C84D7CA2E794990E2DB4A7E9AB19CB50CD522427E6A935CE3976490B21792CCE5E4B971668C4793CA4954B477703730411DF1F5AD2557CAEF78C914D0C223D836C407936EC58825F3B2A1925A5164B097A94A13D8AD3A27BF1FFB0C08C72B92215CB1B67C7D2C4A7BC7A6A8A054D2A34DE69C78195BB149E4B4CEBAB78F41612DB19540385F2F74757C662C2DA3C7B03A34A9524E2AB90F5CC21FC0D2AD84BB996E6C73426770FFC1C9942CC22AA2934D97A66037A18760C51B0236CA1B1880A2286EE5241FFC220A4C6EC0E296090874B3CA751DD701086A15F419C67EB4514744047D7848980C036107586D36818E74AD98989C8C02AFAB4134EE0B545ED707876A613FFA10BE7C3F10B758B215827ADA9FA1C83B129C6BDC5B621D3A5DA7F396D6E29B184A38D8091B6A2C288EE2CAE833A68A3CB6B30BAC5AD7567C788D8C803A7B622FBD8A253B274B93593115B5B7A5282EAF93706C88C178BAB897B7198C23B844219852A60410E8AFA85C902EDCB9A5E87A31CA84AC6B89A75830566062BC159CB129277AF0645D5817C8822E384040F1621D66D41643897DF21C1013CB1B426A703F120F21C780C67BB011FB3E8CB746C0B14C9F847DC1235F72E6BDFDA1C55BD26E377395C4B17B764A41E0F7312782BF71820DD379BEFE58901A011FADAC1EFAE549E5933AA9F9C64CE2273C486B56251674D56212C0AD7637854C7B8447A135FB960FFC435AC7553DFE935CAA98BF32186817B5ADB42375E96C30D0A96DF39658EDE95912946813CB75CC32B395AA73A916514533857B4C3405FC32C2946CF4F4251B2091B6CBB00CE296459C45E558B5048B79CC4CB8AA01BD7E82320637A62E2038D5B3C0593B42D32A38BE8312AB022EBB496A5FC4A991A1BAEB660A23988FBA329A79DC7144D20B5246466F25AF4AD971014970EBE2B36316B86B3585F6B0753711A0BF3952C688B4CF6C8A24C0964CDC1F5C1C34B3C28359BA232840063AC30BDDA83F0611042FD8B7C2BB43DE68B712E67971E76E7ADBC0879A41AFA358C2258888769B0F785F2B4716E76753D41C4215B98BEA2095F5C0CEADBB69C46CA152B3045B95A9FF198EF5302667D31F36E2330A3C1C44E983BA4388A7022F1613A47D19249F2534C23AC25BB76176AA102F103D1C6578AE141772E36ED5F30F2BB02AA34480B7D57E935B5097C5C5B61422FF6249B3531361C284D67B485FCC3F942501112408D01B96BC841DF1C0A9136C01CF2652EF067EFD740A68F80F2C1B70476B8B67EB14E97104722CB3C82C42D9912A2F2618D50C27312C13EBA245839313AC08AA9AC7918252122A6A8AD632C691C8C0F84BB02AEBC6F401C2455121FF33653E377805D3B2C8633D8B141D6B6370981BC63A7141EEF2BF7E86692F28764716775BFA41043315E5CC1199427FC7F6A9889165B6B09D0BBB80A609C0D52063204BBAA619757E1748412CC1DCDA4C2A102396927229BA83B1EBA239F41DFA530B8A2779060877A5EA142910A6CB1AC97CA2466AB58625E823FBA58429A613F2C92DE06993AC7006C8E4834EB491EFDB1988B9794ABA1C0D42326E9A797C67181995999A1053B3A1AE542A7E1BCA4AAEF5910A157C713CCE03BA4D34A9C427A53F263916041BA9EBF2B86E21B127C5951D7709FD036465784A4A26B91AF48C7B3574D6E537676B4BF8EB5E5D6496B7E66AC4D50FBA956AB9B881EF55A6459199C2987162774F573599EE0B6B001CBA6BB5302DF24EA0622D3FE2A7DB12A063D528BAEA6DEC8A97BF12A61249010EB7056EC5A9573C77B848A6C6FC13C070450919054C05BE006A40368094775032EFDB98E087991D76A703924528EC05EE50BC56D206895552CBF4999C6A7617EA35652C8D5CF22590BB9FCF62AA0E055805279400B2C9522CABE1853E06E6965B517CD04538D7F083E27B95C29B073AE13CAC42BEB549337491B88C877AF8910BF8659FB2F309442460EE93A0344CA83C58C1840C95EA482C81380BAE24C01C763B2BB05B369BBF074C8E96AC2B5B73920AE07318057A643640FD58C691209B08C9B5CBE972ADF001E8C00FE853631341C8A634CC52C77754790A6540CE9585290AA243231332D7EC3161B096CED68D80208C362707ED892921634B4DE6679E08A10F55C72043348BC512AD39C07DD41A88D3C8C06769B6C080B9A24080684AEA9637527A099BD53AF1505EAF0272A1F537593669E6CA1D5135AE9D77B737B77A475B61023777EEF22477B663D5848BA7D8859042713BF7353DC46C2E3B9E75788B3813B4844C0A233019529809487531A820A079FC2A43DA0874C332695A79AAF3C6D5997BFBD27783064C1C055B82B3BE463B5B54EB8C2E42772CD56318C6658E0B90CC31596B3880033338E6E41E9D1187E3732B75F50ED961501A030D221370A61788FC8B164625939E7B19D076B45B51C555D063433709DBAB05746641410CB34AE53E3652A0ADE7AE5DCA29F0E22048668ABE03869914117B6CC18617946C73A20B49826748981367090E8B72B8181AB696B878C79BD16683B2CA698E1489DAA23B54EB017F4000D481B268E2C7C02A75FB608217BCB1290746F7251D010A581DF15EBDBA8C5D379441D22E591C4BE3C9CD9AF05956674F558C2387518BEBC02DC3C2971BD264143271CE28B1F419BE088922E6644E939738B846CB651267A913936D80B2F4E8987B5C48C37672A222037FA1529A764BE14A87939B6C72B7730FFC4DB926836C71A56112724A88C9F55AAB44638A4C9186717246666B28E1003EE006AC915530A1FC4BB786ABCEC5B35476436EFB7C4B4BBFBF183ED16B0A526C019E7399D1996F44755FBFD86A79D19FBE3957EE97A08D668ADEE16B996A71DF28ACBB239DFE03CE8FF5AD62BA992863AFD086BA74979CBD2C0B398383378AB973C9647DB074921531A9441FB53A94E229B7C7BA8F2EC9A1E830B9826BCF1D353D91ABB56B89C33FD37EE6130757D08A1699929808C881F9907556AF18A95938A1BCEC20191BA5A9AE32B769E3C56D4CC6BAF9C9152359609A9E8DD6AA9CCB12B35C9DB5605BD8868474E65257F785B429C1869BBDF6E118024C906A951195DC4361AA95D4C53CA418A7B6926CBF539EC1F242DCB3B96E47BBE6CB0CD4A7936CB6C97E8663EAE6CBDBEC645C8942F6B835D2E44091C701AB73271CD86765E760F0A58BEB61B0E2D12BC7511D04B98E8FDB5412F618964367E2CB694AF203AB805889E0936C55BF8553B2B006093C72015D8629B494A04E3B51CF18347E7A025064A488B42C0328CEA0C57DC14763A74368E36159C72B232C8424FA01B5BE63014FD7B2733C47ABBC4D8D8474D5EB43FB76B03708872B4CC4529A00C1AB9F67E84DE76500F59C7088B1B9DCA9CA9F0309B5F12EB4D55F3D734E086A843A39B29DE99162A062B1E6874281221EA3314D784572BAB031A3732010A50C0AC8150691B621687B6020A5B347817A3899F141BD6454EE1B25E0B130BED368C5F905C1637C036C22F65CA761270A9E8BCC18DABDD78BAB5C48A3DDB82A01C646C9DBCCCF972B9F0AC4EDABCEA3088586E8CA08F7177AD3CEFD578F9FE6CA08C99167C65E4C6193251288785720AD110F58F81F4B938DFD813B76887CAB48BF0CFAAE5A8A16F3B110E130BE7313411D517E6FEBB2E0AC004D44380B8AB62E874538D005D4F744918A250E4B60EADC6CAD0363E0DC6CBA04949F893F75E5C48E9FE10B44687F9AA606CAE8888E4C21AB0F7B85EB3D3A2A3D2FE8ED883D1DE037F1D7E636B4AB366DD5725957B9E5D2498E4EE1929F2213F9D05C882D96A106AC8557EB61A3D4A2400D3A604092CC3B92032F4D3B563F3D4AA19387EEBF2A76 +encap_coins = 96FDAC8DDCC219F5ABACD5F20FEFEED980B40339D4147C6A066D6B6D67458760 +ct = 49B0BA37AA62FA1E7FE7BDFDE88D90ED0EAF57C9CED66ABAB41FC59A58C49A74E7E2F2C24589D235573D7997C3401742701BE37807FC99D7B46FF33AAFDFB22252C086F59829C0252A4647FE1A139788635F1DF19FAB3FB89E30270B3C62BCE33377F24440FED7CE46FE232CA38040A2F53EF566D435BC682C83A57FDC9145F2472C62BF313F71220BE26D79AC4885CA06917FDDBFF5A16A0BEE23DCEDF3BAD1E15B9941F009AC0DEF8743F28CD02A9869868A66A09F23E30C1C401C5417E6625901B9B764CE8F4E049C5D6B5133F3E3158BD605D3738956E958BE9B4A2A759192CA9A68AA8D115647D2B797BC42C41B19A548432DF03AF18E6DD09422A6A3A0D222426DFD7F1542DE55B86A76D51F0BB419857362A89C594E5375743C9F16D23F0AD7AAAF9166F30A8F60B9A73C2B8DB23E2A922084360867082A3C9239214806B91DD09690DEA020DCD4F97C2A0ED7EAC53EB95C3C5234C444F5AC4863CA73DC1CB5C5E18CB208A0AEEF3B0798592BC48C688C1250B04393A79E4BFD5ADA75A367B80445E0A794DA0910BEC3A7F0DB20B8702F589E4B56AE0FEEB8C422790CF8629B9E4E524F2B01D60F64DC291487A4662D48C7A84004D5F3C0B9F1A0C8EE2527F808156E62B8FE797DBF024F17ADB41662E0D6DF564B2A345C99FAB453935B78DFEF94B94170FF56EE85121EB31BF57C00DA772F37944FD22267D5F74FA7DABF3934BDCAF8C9C2C1C85A1C7F565A86777E8D2F6777FC9CE325B35749CDD262BB86B01DC5BB6D8716FA6DD1FAC0724C296B442489217C5702D4855786A9ADCDDF45DE14B3A1B8E0FBAF8582B99A0869EF582E542AABC8AC260DFBEC0FC7DD9188BCB855D45B714B48D05183917EC071892C8906A122B461CF167098C8C2B030E0D8548B2A38C1BE324CD1D001FDA4D8A7C3283C8EE79CF3AB0904A733B84A880372F697B278DA1BBE1E4C3C7301CB5BB63B104FF977C0CA4B54A1311DBF34D8EC4D71C8CF1FF7055B10D4E89516F3BBC545167DE6172072BF70C7673C68F80D00439B93F9EC243A38ADC5BE55823727CFF291AB491D10F26B08B84AF61023AE76FD10CF4D9D2DCB3A4770488EFA02E26A48234FEE52017E905F35A26D6BBA5E3337333C46843BEA2F81421555C3214E71920E37CD7B37F582FFFE86350221C48CD132EF171F3C94116903C94750EBF6B726AFC759DF00CEA4CC8212F7CD4E641D15FFEBB61C4B2363855BC6D3DEBA02607A8BE5E057AC2E498C724088D173BDBB1BF426D6A34DF58F15E6EF05ECE34BF957483A38C79326535BB15CF99760D9D3D5E2067A7E96FEB6FE6B15EFF33A382B153C6DF401FCFBDBB9498AAC7328CAA6A8B079E2D38D4C3C900370AF391ABB91EE70F631E6F7950121CE9BC979F9FA1F86B4CB4713844288D2D77BB2BBC20573DE07422E4B45626ADF46915740938E6662E9A20C78A6F4429AB5F2A28E51AE1193F70FB70FF0D33669D6CB08E98FC34BF916E8D931C05B4351C42EE98A813BD86D21B424DF6F52BC0C1EAE143BF22489844C16209C675DC8A7DB1B674A83965E493EEB831BC5E17FD3DDDA5255600A75C46E8DD9BB774B351588F65B9CD657C2503F363322961532EB296837E76EEA2CB9DE0D900BD1BF872C489F4632FC38BBA36D65B1487A2DA5F5CE1B01D5BF91A8494B594D414E31620506C4F521B30E28204FE13421EE6423C4BD794FDC78CE38D3B21A858881F9E48002BC451C22B98848390823A9CC46A88719B65E9C72DABD95523F7B1B71E3A997EE6789CD3A0F97281CCDB313450732CDE2F8CBBD9C7BEE5572E5BF2BA787A35E15CBFB628CCA51305C6FB2BB0537BC6EBC964BDDBB80167E9D29F5DA0BB09BAE0E9E34D1DCDC54DB9E48339A7DF130DE1A803E801E57085A928C5ABB3EA6B15764D28715C4E1D6A25092298F4989BFF7A781D7F976199E1F4527CA6392738C241B05DE0339113A63B7997B36B5D6189C48D69E7AF4EC2AC3C87352467B479FC40879F3A615B04DBF2B6C6D015A77D69DFEC1AEAC2D01A746AB178AB922E308B1C542A1ABE5544AD87F206E6774F00213955891643F8E9E885CE3C37868E20158C82DF2295D5AD02E2ADA987FD88F5FF29EB17002E38FA8CD12D8FDAD8921EA2665BA4CC9CA5B1633B943204EE01090D744B55C2942E7F7D875E0F41CCD657B658F3F0ECD799202931D76494184C0E279E62773C48C +ss = 5D70446ED3A8C284AE190E0C8822EF95A0718E84A4DD26ADF7D4AC63C7AB70BA + +count = 54 +keypair_coins = 6C8C53ED6F65E6B2E324B84364E10DE42D1C26A106D4D1C99EEE79C78586FB5555BDB92F28D0393C0F7850C7F6C371BD4835D6DB61C138B0FAF22854466231D8 +pk = 8C06203871AE8B0A2C3BFA4695C43050870392401315764FF65C9EF0DB06B03B5B5582B57E1A7EC6BA4AD832A04E31268A853AAA2227F8E382D467CF2D998284884FC7EC971AC439315978BB8A8EDF287F26D0769AEC141C0686F750C1F17784CAE142B942648655BC8A0ACB8247462713A2183223DFB093A737306E94386D878EB8BABE7CA066FCDA152A0A81A792AFC9EC32369101516122782100B24B02D5B8693A712F4711176B348E2AEBA7314A3A17D0CE11315412E54A6508937A393897B01D361B1FE9B0B7CCE01806A62D12470AD5650606883872A55030827B5BFA8A05FBA19C9207F113C99FE5985EB70E88325E5CF35EEA9605317579F15B161F55A81B694B0A79B8210B2C77524383AACD1936AD36B43F66FB6B5E668205396B40B3889DA25E21FA985BBC6AF4980D9FDA368507A7659785363C6537F067EEB596F5337640E7B3B1877804F21C14D76D69D01B67A941E76CBBCC3765AEFB0A74565470E7320605A0CC009C60E57C9E765D2F835DBBD91482D43B86858BF82161E1C3586290ACABA2964F3A9B83352CF40AA26442634EF069E2932A470A59AFF725B862B880E7A75FD705EE50624CA368E8C39C27EA0588C8983A453BCA30897A5785CCE2335EF8CD48217EEE4485ABD47A0769A0AC99089BEA59C4481B18D27C15D92E915285DC62197F4804EA3B3E79BBCBF57671DEDB8678F1264B420BFE191F21E489675B7F1479A390D0C8FE2A801F4CBAD2F90138259904705F2F07AFDD4A5394B64905154A914A7AFEF7CBEC54A7D5267A3FCA06DCC3B3CD617A3F433174053885F785193C8A70432AC83C37B60CB1CA407F22C7B577F4ACEA879A8AE700985028AEA3475426A3F071CC5162233E793AAF9936DC625A292B84D185BA31F964A4003C3A96701C6CA96305205B5071C3A6540D76C14E969A8061146940907EF20B857245C6F202B8978A23A6C84CEB3DE596C10BDABB2732008C6A224DE0AD219B9987099F1CEA007D1466AB0719E396618014787CA6B1A2680E96A85C949486105BC4357A93A3109422E52A44BCCB0C8C1AACA7931973560A82C65D253C02B2171688648A2C9F93F0A26BA58061C8CF64B54F2930A2A4C064CCEAA6D34C76BA200C382A1FD1B70119304F278A87A77837856C68A119CA692B8C39782A16AC11CB6C4D9BC7ACF335AEEAE65F01A50D4BC7458FA93E5E24AFB7576B41B631BC884853046160F77AD0646918B947BD440C449B8BDD15A3DE54A3C1A17A444CB469E0C1CFA347B5173FE6F4749658984CA0530483A86B773471799B9BD53FAF04D0A3C07515A3B915964AEE1010333127B3AA72AD964F38EA89A4C561E36143EAE3003A19CB4DE14FE88BC5B4C236EBD1930474718AE654F43277255B1F508721CA318D2D5255DB804166D94CF305BCFC6C91465B18F3AA4A64B624BBF395A10967861CCC3D13A17706511C8946FF31954962B9DC68AAB370BACA922B4DB66CBEB7A4E16C6DBAC64937B869EDCB585B4785B2B526EB4131E48546EE449D8EB7B709E296C028C6D085A3D614B8856A6D076CCE23CA4EBC192ECF14954BA06415280275CA743587492E76A5AB5593E9D15B10F829DCF73A94E040D8A25AA29616AC8A88CBB148E1C727B608305841B8F3C63E967843C9A50C43C3366293868F1B1ACBA037D95B64DD088E07D42F2D218B18EB7EDA5A2506CAB773444F2383A5E40940E4F26033C336E3C7B5D7D2BBECDB39180C87127781111B318FC4AB8C50926C932A122AA79766A48ABAB6707710C66030668540CB5C8D87272DAC2683ADA81DD20AACC3C01DF6056CBD23735DDA391332C773934E361A1B6E247711A843644226ADAAB77089A831E37D571517DCA952A58C0835705B03187B77E6AC91D426AB21B997905FB658C6B7510FF5E45E446204FE935A7612A364414014483CF1BC844A6935CE351D1E090313A776253386A01073A416B47A943712C0B7AFD130FE833041716530C4AF95928EBC541961558A707320A5FBBB3C113E8B3C88B0C3B359C13EE24172C8B649B67C645E07400CEBC486383D8EA2AFDDE8C104E69DAB368F092AB3B3B85FB70C3036FA5925301430D17603902B1373258B206B814BCEF5A2588981339CB725A5F38A079935F6A27578298F5DDAADAAF4616CFB9AF778875E4C3941A07E45AD3ECB9AE67E7527F70F6E07A757BD112947074D5120A1F2A1 +sk = F76C7D8002B7CA65BFE6A59AA3645A8E51AFE5FB80145241134CC072A60AD4B72D80C2BCBE1630EEDA661CB62E01B0798203A1A287C4B8F725DD422BEEE6627C864149EBABD84280739193067A2348F2861DBB7F1A0914BA2BB3AC6C80D5CA1F483C8B86C1CF5A2C3BF8F6728555799381A1B1F3CD02E445CBE798AC0361E15335380051294667B9149F38D85A1839AE43D331BF14091C4ACCBB24C8E8105A9D1185BA880B7E13CD3563AA235B899E7509525280A37162C043B089D5A0BD48B225EBB2D0538F49C8AC3C3B0677D8093CF70B3404016B4686D653CE4715A85953171BB937F5A1916271AD53318E8155269DBA4D0A520D057963E70CC01E680FE8408D03D3275C95A2C528190924749BC32DC31B21B58C6F5E4B59C157CAB7653C0D146DEC9A3F94E241993B09BD62446F35AD7772279E116464FB316DB8449A3AB7525B3E89B12B54F14FB19057C39510B072894831A5747782D404487926AD756B1BF81CB416D94265DCACEA475FCDAA727D0B5F01B376250B123F717FBB0B1976B7704FE5AE5AC10CD17B87FA8BBD3D824D3B91B567B5C20243677D741AE2CB1C1D049A842B7F9DA9CECE8931851BB35776CAED97C27D395108E42661AA60CC181ABB2774C67773FB29B445F3554D386C87D489D895A43EF268AF0C81F6065E57E744F719120323B013D35801E26BAC2700968566512106F5161EE8528372D45A42B41022239FB0B3CD23C4251927B355719A1F2A0689A4ABC508660DBC282706B765CA4BC1887FD064CF8285B1155863E15B112BCBB1962255B362CE8FA4C51C97CFCEA7004DAA9F746766F2F5487C93B99EE9825CB78AB0A98BF6863A083758E9279245E495AD0A5B86724C1ADC3E67D756C1C8647FB4BA32B75A6DA3A05A870FC1E12CD279666CA046E064A74625530E742EFC72C1D5F959C9D256389C4C63609FA11A8FB5E70E1E2256C8164D80C69FB8F4008A647AF7F3AD960265F55CB786E8726B65689A6A751FE045B7D45AECF50605D135A44793AD2C6BBA5A59D293528BD94D65F54BAE4798EBA5B26DE8B225728EB8836AD1F373F66A2134B8B429A8457B600C5A3274B0157F66F091EC88436D5667802A15749B4C9C499A36C58FC5A7CCC10A604ED00DE74BBF433502C02AB0ED949F5DA8B9EFB83C4A2395E49413A7030F4F95901E8AA2716A3EBB09AAF61C9384586021301DE0F8C085421460A10FDD176C68B4C115C91DAC04121924213855AC22E8C98E3643C3D7C3B6C6C4CA964308510525C5AA00C32AD9BA258BC44A9F521A2873BEDAF7C56BFC26A320C0FE95CFBE12C0038C1A65B62C18C37E61A2B9194C9EC1DB8B9FD036C7C3A620B5C661D8AB0B46A6CD3391E53218E40CBDB082C2207630C2715541B10E3C395BF2A5A15AE8B506880DDE937432ECB150F9B3C136881058A750024D9B247232B7289BD07462C051B7BA599C985C6EB08C7AC22135C99E85930113554C59AC06AE298D5935658F513644B01132B4C1AB84677E342A1F4A8A9D5C6A44659805CC8898E563823C8286D54A1CB4B8DB866A8F5C74F782784E4B6FBAD380C5131FCAE11D4EC89DF82490B4F1BABD4673D7417B9CF04513718F2CD0CFC297071450340F1B110AE53AD21759BB5B8C8E495F55CBA315805921485B73A248535AB3519A544F440B03B0B1A667665BF068F165570D9AA52FBC2CEFD50738109A2F18011D1B0B37142F24A52843A81C44ECCB8B083B8C98A51067197737BD47FB2B40A5A96E385364463CAC81348CA44E9B8B2E457701FC0571DCC6645FF724E44B1370FCC235AC9F735B1C85E877DC30A9654006837C5DC318CC11F962837C0F26A59F171B6EE21B0CE02925C280710E140EA46486E68419B11B548D880406E929DA097A99F8969840979EB861D483337D605C7E657C024C3315F76440F8437057710CC71817956C8135873EBB9D84B801CAC006930443C09773A5F542CDB838E176B45497B97091A613C305E6BB240EE08009E699C6D30D44F4152EC0A1ACC16E5310ACBA766278516470613CE1044E46A4192A145BEB3727DCC22F53A98B4C7C414473160D85872F31C76EDC5DC2E822A91976761A5D933B8D284082BB85162FAB7A7D520EE3889F299956C7639DEA77127BD04BA5500FEB9077949A8245E4148CC2298C06203871AE8B0A2C3BFA4695C43050870392401315764FF65C9EF0DB06B03B5B5582B57E1A7EC6BA4AD832A04E31268A853AAA2227F8E382D467CF2D998284884FC7EC971AC439315978BB8A8EDF287F26D0769AEC141C0686F750C1F17784CAE142B942648655BC8A0ACB8247462713A2183223DFB093A737306E94386D878EB8BABE7CA066FCDA152A0A81A792AFC9EC32369101516122782100B24B02D5B8693A712F4711176B348E2AEBA7314A3A17D0CE11315412E54A6508937A393897B01D361B1FE9B0B7CCE01806A62D12470AD5650606883872A55030827B5BFA8A05FBA19C9207F113C99FE5985EB70E88325E5CF35EEA9605317579F15B161F55A81B694B0A79B8210B2C77524383AACD1936AD36B43F66FB6B5E668205396B40B3889DA25E21FA985BBC6AF4980D9FDA368507A7659785363C6537F067EEB596F5337640E7B3B1877804F21C14D76D69D01B67A941E76CBBCC3765AEFB0A74565470E7320605A0CC009C60E57C9E765D2F835DBBD91482D43B86858BF82161E1C3586290ACABA2964F3A9B83352CF40AA26442634EF069E2932A470A59AFF725B862B880E7A75FD705EE50624CA368E8C39C27EA0588C8983A453BCA30897A5785CCE2335EF8CD48217EEE4485ABD47A0769A0AC99089BEA59C4481B18D27C15D92E915285DC62197F4804EA3B3E79BBCBF57671DEDB8678F1264B420BFE191F21E489675B7F1479A390D0C8FE2A801F4CBAD2F90138259904705F2F07AFDD4A5394B64905154A914A7AFEF7CBEC54A7D5267A3FCA06DCC3B3CD617A3F433174053885F785193C8A70432AC83C37B60CB1CA407F22C7B577F4ACEA879A8AE700985028AEA3475426A3F071CC5162233E793AAF9936DC625A292B84D185BA31F964A4003C3A96701C6CA96305205B5071C3A6540D76C14E969A8061146940907EF20B857245C6F202B8978A23A6C84CEB3DE596C10BDABB2732008C6A224DE0AD219B9987099F1CEA007D1466AB0719E396618014787CA6B1A2680E96A85C949486105BC4357A93A3109422E52A44BCCB0C8C1AACA7931973560A82C65D253C02B2171688648A2C9F93F0A26BA58061C8CF64B54F2930A2A4C064CCEAA6D34C76BA200C382A1FD1B70119304F278A87A77837856C68A119CA692B8C39782A16AC11CB6C4D9BC7ACF335AEEAE65F01A50D4BC7458FA93E5E24AFB7576B41B631BC884853046160F77AD0646918B947BD440C449B8BDD15A3DE54A3C1A17A444CB469E0C1CFA347B5173FE6F4749658984CA0530483A86B773471799B9BD53FAF04D0A3C07515A3B915964AEE1010333127B3AA72AD964F38EA89A4C561E36143EAE3003A19CB4DE14FE88BC5B4C236EBD1930474718AE654F43277255B1F508721CA318D2D5255DB804166D94CF305BCFC6C91465B18F3AA4A64B624BBF395A10967861CCC3D13A17706511C8946FF31954962B9DC68AAB370BACA922B4DB66CBEB7A4E16C6DBAC64937B869EDCB585B4785B2B526EB4131E48546EE449D8EB7B709E296C028C6D085A3D614B8856A6D076CCE23CA4EBC192ECF14954BA06415280275CA743587492E76A5AB5593E9D15B10F829DCF73A94E040D8A25AA29616AC8A88CBB148E1C727B608305841B8F3C63E967843C9A50C43C3366293868F1B1ACBA037D95B64DD088E07D42F2D218B18EB7EDA5A2506CAB773444F2383A5E40940E4F26033C336E3C7B5D7D2BBECDB39180C87127781111B318FC4AB8C50926C932A122AA79766A48ABAB6707710C66030668540CB5C8D87272DAC2683ADA81DD20AACC3C01DF6056CBD23735DDA391332C773934E361A1B6E247711A843644226ADAAB77089A831E37D571517DCA952A58C0835705B03187B77E6AC91D426AB21B997905FB658C6B7510FF5E45E446204FE935A7612A364414014483CF1BC844A6935CE351D1E090313A776253386A01073A416B47A943712C0B7AFD130FE833041716530C4AF95928EBC541961558A707320A5FBBB3C113E8B3C88B0C3B359C13EE24172C8B649B67C645E07400CEBC486383D8EA2AFDDE8C104E69DAB368F092AB3B3B85FB70C3036FA5925301430D17603902B1373258B206B814BCEF5A2588981339CB725A5F38A079935F6A27578298F5DDAADAAF4616CFB9AF778875E4C3941A07E45AD3ECB9AE67E7527F70F6E07A757BD112947074D5120A1F2A1A5383897314D60AE0AB1A8B50D6F5DE454A2EB8B0502D57001E6E19223A82EF255BDB92F28D0393C0F7850C7F6C371BD4835D6DB61C138B0FAF22854466231D8 +encap_coins = 5E4723F16005D54429F70BE509C3149F769C7179C155393CCBDE778707CF3A7D +ct = 1F78781626D6EF934F4E9B8155905B1AD9A5A55EE6D3F14907DBFFA645B019B1B60DB281880888C0889FD7A87BCB749B5CE0607E779DFCC51C3E3897D7C052913D2BD3C49E05732143F080995D0DF8D12CBFE8E8DCE795D92C2AF4951ED19E6C89A9EAD231B4B85E60BE41EBFE03A4DC733AED1AD8BAD4487C5BA8E8917C5FA36DCF4DBF6BEC0477752ABFB7DB5D6C4B08E0C84CDD73A35FC876F4586B456541F9ADFE7E7091AE1C814169656B63073A6960FE160B997A2A53A843FD72DD689CDCF73BD1DE003D63ADBE7D74FE00E842305DF8C166AB4014119AB37C7F80A5063D502155D45E623DC62D56EE5FC47507548F9E2EBE36A89FAD491E01796E5B2DF5C3C057BE245DDCCF65D148DB800282B67B47C7FFB0BD04F709933D2D90D71A3A0031D75EFB9684A59B78928D47FD670796064BF4192F104EC0A50D29E216E124D88DAED3350B851AEE12D8028C8A170417FF14D7FB47B3E212F22C6D1865AD56EE620ADD4487114EA526BEEB529B44F8A8B58DB941F874DD0E562C470E90DD784C55A0CCBB737F775580EB7426079223BDDE621E2211A60F151BC096F52142A1AFB5A8E165D6DCD06CB9CA3DE3A5841933E2796004C05578781B43EECEFBBD49F4D87891847B3BA1729804C3FF3737C96A7EE580BDC96DB49A5322E509CC3A0DEE17883B3B0DAFA5CF9D9B405B4CED3BD1570C5F80822577704B6FD1FB44D5C107F111214639A248FBD1872DCD5C8DBFE673CB727C972709C370B4BFB4C95F446E4C47642EB4056C88A5BC325CC20AD551B286ED5E31873F4574D42A108D06FCD61D194FEC60FC13C26C95B6150F7CA737615FD9C1E4F33E8C697C0E7F5798DD57A2904663756E2A5BF1AA5D4E9A7A53076180FB35CD730BE69A887035FE321EC74B6ADB92E4362A2823671E19E10414D526DCCB36824E5EE39544B7558D8EDD266AF43FE6DD8E32F0A2B82FC473CBE843CC10C892F33B4E1BB23AC1CFF749150A66282D4A575D08EB02B455CBB63414E10B8C92C854C98EA1514CBFB5CFD18DB9C664B89DB55437A33571D395A9C15CF9A18DD038DF1103B8F8A00B22E04838A1111828DE45E54E02FAB3CFCDFC6649424DF3A3A9C811B9BA903205A3FA5D65783C7C3442EBE141DEB28F4F30BF20C78836AEB97566FCAB0B950A4378239FF4ADF375E1B40DFC879D55B22B0D6D77AF5A39F5D14C8BC5842877B89DF6665619D2F27E77B6933ECAD9D808018D7BE9932292D12A56CEA0F61E6A51702856C7FAD4F928A18E42C2769FE9E132AB7E4387F8EACD1ACC24163C7AB0426965F84B377EEC440BEBD0EFD7FEEF40D8FA9BB2A362EA72020DBD9F00701A00AC87E423E03DF9B36CADD19E12490589373A470E60A02ACA0B8442BE20C06A544A33A2702FD4EC7CEF8E9B01381294C8296DDB929927BFC421416B541EA67862233FAD6C98FD792E86E5FBEE93140230AFB3DE8320EAA1E26FCB06EEA61FF783A0AC990F652421BC75524011E8BFAB7CEDEB2E206A5D947EE0E3575FF126FAD4259E348AC0D6750176FB07AC0CCF185A2F02A1D185A3217D59163B5C8AF89AAFDDAD7ED8BE14C9D6E3E5D931AC2064820CD06B2978325BB9C2FD7D90AC7CE29E9FD07758B5143CB94793EED520C38B2C1C9A7F8FF2CAEB46B7533123920EDEB198CA1EF4E42A610B36E0CC14BB95F3E654AC81286BC900D718B8FE12331DDAF342209E2B9E598BB277D0C2E69410AB32BA0A7B8ACAB08934BEF91EF4D1FC0CC26C294CF958B5ED9577CA2EAC131EC595BE19B87B6A448A854DAAA2E0FF2044F103741D4EBD3B1BC3C0154F0CE7F5F698B443EA0B57C928F7F0848A98F1878575BCE0D300DEA502191B191A6235B9670D0F42CA1311C9B20A0C226EC3E2CA43ED3D7B9ECF685407DC0EF19FB0936D1ADEA13E8E510AB2568120B4543A9B47FC8D9B0F90C09DA0C9D138EDB255B3447481A312C8B8E657574253F831C0B33A130A1467187067EC40ACF1B187720F524994582651C8E38DC7EF7D1CE06BB589BF3AB99AB13BB495DCE68A30DA5F19078F973799349492C8872CF9FDE904BF3C31690CB8BBBEC1F690550663E39B1ABFA817EE9E4D42D9C4C20E0703B157B791325191806991154DC159844DA96D0CCB1BB8D2CAEFE5765DB07B795EC0F6BDD9FF2360974A625CB8F900FACCF7CA375AAF318754EE69160F9BED53E9D4EBCAE405BAD20BC9C6 +ss = 7ECBD55688FC267469C2400E2DF0B7FEFEA15BE89BDEAEBF5D5D4F2EF50CCB1F + +count = 55 +keypair_coins = 2107204CD995F1DF14314D5381F8C5440F09A347502E161CFFC0A2EC3DCFBC73C95DF27DB27FFD4A8FDF31C4474CBFE2F5EF99F760E97FCF569D8AB22C2855A5 +pk = C17C04D8C082F06A8D497768755CA932D2663637B2641C34A379AD8FAA55C15246FC5A13A3963D4D36A1A1E06BB811C736E10301D96181207F65E992A66B7B3D1921C7F7247F34BF3951CADBACA9E346BDE27887B61AB58FBBB3CD25466B3684B48223B24C34C6F1CE5AEC8513717CBE5A0059352E4AC62EEB157A0EF76936C16DB808572CF93ADCF5BB44B1935D43ABFCA1B06D375F4D5A4D2A40392023A86E05796565ABAA806D9BA0273E543AB03809C4FBC74FE4156BB2B60C76BE49C7A1D5D45410627A85026A58152E2833B445A087A4F011BEFB1E03B7102EA4B17D6B5C4E3791F9C2BABCF2471D86C720D412342529728CB560828C7286035E612698632CC054079AD2B53517B4C953969D8BAFBDD0C09845191AB426C23A8B469B601C8751B02A4AF32B670E6592F2E5B943924853E551BD80C5E717405EB2480DA7A6FFAB19660CBB5956546BC64DEF60B800C252D76C96D2FB3D22736143B144953A410653334C8967A367284E2197F5864C5E811721A49C29CA0E43E9AFF5A7264381BDD5C4AF51C51B66A450751CC5C7F75683954CFF0385436CA38F0759C93CCD37C44E7ED026EFEB5B271324BC71BD73D09D923182FB7739405159D51AB7E51A0765C56D98D50FDA35546BD762C21204F5661A72AA3A731A0520409C62154CF54243A32914A82C8EA6F75ADF55B885EBC8D5447345159ECC78AA6B917D42F9C09677CAF30B879CF9B73F468DA38880E7948788CA42B1551D4FF31D11435A97A61C0F4430757C70A4D73402D94338765C8F708502774D36AC34CF85AF4683AB5B36C61B04064705C68B578F7DFC4B9886140D28335E78C3B5AC7ED5BBC3DD6AB0A76A97858257C519CB57F0C949C2818C43962CC24695C5B3A6242908F20E14239930A9B8FEE51BF5E62822F42095F37299316479C9371BCB567CD5CC138828BA5036799714DEC18047C84AEA562D67E375CE697536443AE087A5787A8DE6314A30E81AEA1312F3FA12BED1CE1FBA8E637009BB7998D41A6654D70B2F9436F6737C9D118DE76CCD885B4B0F3751990B93138A70ACC047E4416FB2E21BF2359AB022696E67B6AC6B8045F3C826B81B76C4589A687E42D909EE5473512A71B6369D22877AB0F91A7CC2C01533635D896B6BD293F85962F05A2BF14315E42582188BB09F2C3CC86632F636ADDE80817C0681A3C8C313A65AD918CB12582AD1D76AB42643EFA7AE8D94A4721B1F4BF77E8E47AF68642112AB9629E0A2E3316D6185668BA373DB4708ADD91ED47A5044EBA47C346B7D230D4B324B30C6193184B493D111FD8362812B5FD1E19D4978672C505BDF9A2F888469FAA040A4B3C5648929ABAA66EC435D3173519B882DDD7474B1210368711C301961F4855A49F75656D356930C79AE11983A32A17D4757CE42A2D9E26F6A77475C12056A5378ABF7C7CF097A7FB23BADC4AE929A5D1EB46AF442956A370D7F9A635926859E6099D2B121A807C107CC15AB18AE4634834C22144F689E92000829A4A9793CA767E43D707BCB2E0118E810B32F14007231721A5A1F1621991B556B70389BC8652B56D824E070A5F9552DE88B14DF346D43B460807662263769DDC268A78CBF4C155E46484C8E02087AA6493CE73B845289E9499D0DFC1B156621683521DAD7176DE52BC294770CA02EE08899B79673F562C5EC68157C758D4726CECB986C1355444D96402BDC20A620128AD3C9407A64537CA855F820C7166800839E32B5A0B9404EC4F375C68336C2C098EBABA5D1865A99A8B45993533B0651EF97477660C48EF40EA7261BCF9C43BFCC740A0605765C5CD84CC5640C92E533A2EC923A1512BA57D11924542F53329598598A0717AA91986901046DB1C763F25098103B208933085B59C0CC538BD344CF8E268E30BC4730887FF4C559315CA3CABC04B7F7CA57072216C859E73183288C8FAE0A71B98A2366A99F276C0B68688759E6B34D51A0F5FCA2C52585894A5EE52253D6F963EBD1283431B6D681065426A19157A6384B27BBB0495CB8A4F42C5649F185601B4A19511841E775868C0EF0E010A8147A743285EA16A6F01323A9ACB46C1418418C0B94793617DB9FCC1039B0060C167052B3766E9452B65F4789D9123E5E299C0E440986013226B63DB7C78109622EEB8880C351C6A5EF23C5D54C68389E610B30DE122C2B2CDCEA30B3C780612FB9992721E26273 +sk = AB150A2298917B1707AF1AC0941ACC5B6B259D1AAE8F878BB0A37089B845991B203EE4C8F1A58CF9D2CC0059ADE2DB131BDC5FE3049E17F350A805C6F30479BE91B12A36190A5332ECA4737DF5A32FD60CCE222B592060ADD75A62F88D5BF6426FB18A944195F1ECB1BABAC1DCF20C39339ED45AC8C3AB582382480851107683102FA1914E753731964FDFF686F0A354703858C15C99F30A19D9C281AE93004C718D1CA5452FE58183D806DD666792DA7A76B0927DC77793396E4508200EF5097E45095A33AF5683A4DD1A5F6878C1E6FA85771A990EA16F7A28034A897855769DB8E4A9A425860FEC7031D09E96B665F57662B2BB86E362C3F9A706E354C12423AC6CDC74973A0767D73E75F5739747433C3451F8E5B85E5311B6E009F79C00CC07BA26B74D512520496B1998A4445C19249729225044CFFD51679B495511223417B2BAC86CC242241F2B70966E9A7A03C3CC0AB526ABF857DC1A140AD85825757D2B5A59B97B7F8C5015DA02159D013C1F15491FF4CF64C564E50C389F6C85B7C060F98011A4518CD3B48C2DF68C67F3497F439C11F8504E577CF49ACFAE704A2B093238520292602CC2138762D87536F6285C001D6975A242654DDECB5663AC44228BBE5BD58D9B90426C66802B466B21DC8D7A23893A953033874D0A93626C00B6A4FA3FE9EB0DFEBA2F3E789AAD8103CA153FBD7218B95547DE700CA526AED4F159639C59A7699296486188C3CA111479DDAA747F99AC825C7593911D6261683CE92EE8AABB77F82AB14838DB54149194B12791C4991181C66BCF05C67E19F05DCB658D8DFAB09C180967311F4E2AA03D9B8218889F87C5A5680299A7459AFDD69DB27302D9761DAA20BE37900B971694D3B6AEA8C6B5D53A686BEAA478F2ABC17C1C461807597148719925590C1E482AA05BB73077C017C1010EA576BFB5A63031875A23B0A019D608D64A30D0DCB39D750099D1C7583C34AB1CB1DD99A115547E3E4CCDF2A872E821B2330A5F6B30918226B7FCFC9FB4F37D8103437DB12EE073A49D29A7359316F8D922F783797E49B8C2B6146F76C7F8A66838C86364A788D3C4AE67D02CA09391E8547EDFE86CA1D131C5B96CAF479D9562688D1238C6196526B17844B475149AC3A76865C94993E518941A63A2E4559E81A46C8A99AFD2A73B36C633DDC6B32B14723F04A83AF89A420A3D04810311A28880247236A3761236B068A9A4EDF55317E8841218441EB1137342977215992BA99C1EEA7DBEA33AA83382B909BF1EAA9030B4386F8BAAEA643E41531204BC0DF8243F81367F4D979BF0125B84EB5D5DF53318463102938A85214AD7355960300DB40719A2ACAB9297381A6708391C78A8D4029487C324291A7E4A0945A806E0F24368C7A2AF91B8BB155D04C557759228673B548B6A4FEB8944B7334BCCBAB144C84344457B8B794A3D3B4DFC2357BE9227F9C4CE8B98003452C1D8D19C7A8332403A41308086346129D3F929B847BAB1AA5D88935D816A708C6A5E41023BCD4252569CBC724A53DF1B88909267A932186C751339863C8DD49CBE200797186924C26EDB976DE613CC2C46BEB06B39F5C264716A76E67831E4198822D77386592C777A0846F9B278064656903BD1F26A8A87832D541541E8A06E5733700836C5F16A06F17AB68B6BA229C9E740765DDCA88A01469A79BB44F2A4A55547ABEC4F74861B83687D69FB0402D6CFB0573E8181929070483E85A9147801CE7B8A707093B2C67A21F1C65222981ED55755025805823908D908A6516488A0B87800034937B582368CAD01C99C47C84C2C09D494A6FBA19E5275BB27C998C5EC863E01612F3A75951A0FB8790CB5B623B3C089CF40779B6936B632B54B981C7EC83930F7CAFCCBC365376A3FA3C1CDB162B1751AD8EB3B2FA70150B637D1963600B0BADD755E3BE7486F8CC306D9A05D688227F77514B02DC7D47C93986432C2B58C674A74218D6E9482F8A3B8A6C5798A833D97A65DF98B3117203AA566CE46499DFAF56F69310BFE821C16BB794DBABB7068CFF6FA3D2CBC376BF1C4E06AB2E4A73256A618D9236810642C1D1BB3C13AC300F20EACF79D1EF347A38084DC222BB8741849C2B038D9721AE56A5300BE8B9B4BA70C530593A5816309AD50420D63A7BDD0375B9475C17C04D8C082F06A8D497768755CA932D2663637B2641C34A379AD8FAA55C15246FC5A13A3963D4D36A1A1E06BB811C736E10301D96181207F65E992A66B7B3D1921C7F7247F34BF3951CADBACA9E346BDE27887B61AB58FBBB3CD25466B3684B48223B24C34C6F1CE5AEC8513717CBE5A0059352E4AC62EEB157A0EF76936C16DB808572CF93ADCF5BB44B1935D43ABFCA1B06D375F4D5A4D2A40392023A86E05796565ABAA806D9BA0273E543AB03809C4FBC74FE4156BB2B60C76BE49C7A1D5D45410627A85026A58152E2833B445A087A4F011BEFB1E03B7102EA4B17D6B5C4E3791F9C2BABCF2471D86C720D412342529728CB560828C7286035E612698632CC054079AD2B53517B4C953969D8BAFBDD0C09845191AB426C23A8B469B601C8751B02A4AF32B670E6592F2E5B943924853E551BD80C5E717405EB2480DA7A6FFAB19660CBB5956546BC64DEF60B800C252D76C96D2FB3D22736143B144953A410653334C8967A367284E2197F5864C5E811721A49C29CA0E43E9AFF5A7264381BDD5C4AF51C51B66A450751CC5C7F75683954CFF0385436CA38F0759C93CCD37C44E7ED026EFEB5B271324BC71BD73D09D923182FB7739405159D51AB7E51A0765C56D98D50FDA35546BD762C21204F5661A72AA3A731A0520409C62154CF54243A32914A82C8EA6F75ADF55B885EBC8D5447345159ECC78AA6B917D42F9C09677CAF30B879CF9B73F468DA38880E7948788CA42B1551D4FF31D11435A97A61C0F4430757C70A4D73402D94338765C8F708502774D36AC34CF85AF4683AB5B36C61B04064705C68B578F7DFC4B9886140D28335E78C3B5AC7ED5BBC3DD6AB0A76A97858257C519CB57F0C949C2818C43962CC24695C5B3A6242908F20E14239930A9B8FEE51BF5E62822F42095F37299316479C9371BCB567CD5CC138828BA5036799714DEC18047C84AEA562D67E375CE697536443AE087A5787A8DE6314A30E81AEA1312F3FA12BED1CE1FBA8E637009BB7998D41A6654D70B2F9436F6737C9D118DE76CCD885B4B0F3751990B93138A70ACC047E4416FB2E21BF2359AB022696E67B6AC6B8045F3C826B81B76C4589A687E42D909EE5473512A71B6369D22877AB0F91A7CC2C01533635D896B6BD293F85962F05A2BF14315E42582188BB09F2C3CC86632F636ADDE80817C0681A3C8C313A65AD918CB12582AD1D76AB42643EFA7AE8D94A4721B1F4BF77E8E47AF68642112AB9629E0A2E3316D6185668BA373DB4708ADD91ED47A5044EBA47C346B7D230D4B324B30C6193184B493D111FD8362812B5FD1E19D4978672C505BDF9A2F888469FAA040A4B3C5648929ABAA66EC435D3173519B882DDD7474B1210368711C301961F4855A49F75656D356930C79AE11983A32A17D4757CE42A2D9E26F6A77475C12056A5378ABF7C7CF097A7FB23BADC4AE929A5D1EB46AF442956A370D7F9A635926859E6099D2B121A807C107CC15AB18AE4634834C22144F689E92000829A4A9793CA767E43D707BCB2E0118E810B32F14007231721A5A1F1621991B556B70389BC8652B56D824E070A5F9552DE88B14DF346D43B460807662263769DDC268A78CBF4C155E46484C8E02087AA6493CE73B845289E9499D0DFC1B156621683521DAD7176DE52BC294770CA02EE08899B79673F562C5EC68157C758D4726CECB986C1355444D96402BDC20A620128AD3C9407A64537CA855F820C7166800839E32B5A0B9404EC4F375C68336C2C098EBABA5D1865A99A8B45993533B0651EF97477660C48EF40EA7261BCF9C43BFCC740A0605765C5CD84CC5640C92E533A2EC923A1512BA57D11924542F53329598598A0717AA91986901046DB1C763F25098103B208933085B59C0CC538BD344CF8E268E30BC4730887FF4C559315CA3CABC04B7F7CA57072216C859E73183288C8FAE0A71B98A2366A99F276C0B68688759E6B34D51A0F5FCA2C52585894A5EE52253D6F963EBD1283431B6D681065426A19157A6384B27BBB0495CB8A4F42C5649F185601B4A19511841E775868C0EF0E010A8147A743285EA16A6F01323A9ACB46C1418418C0B94793617DB9FCC1039B0060C167052B3766E9452B65F4789D9123E5E299C0E440986013226B63DB7C78109622EEB8880C351C6A5EF23C5D54C68389E610B30DE122C2B2CDCEA30B3C780612FB9992721E26273500DD7B94B28B5B650D90962962BB9A3AE96E70D35723217F3F178CBE5659051C95DF27DB27FFD4A8FDF31C4474CBFE2F5EF99F760E97FCF569D8AB22C2855A5 +encap_coins = 2435BE12E5A6B3B230F3B0B24AC28FA464B9E8DF34ACBC8C6EB16441739C1B18 +ct = 430BB3536DAF602E70A8748E8EB70714EE57EEB7351BE503F4080D9AA349CB4A6544962D5C1F713F9A8B60AFB0DB36115CCBDB4BA34F5274EAE4C3D5A8DC7BBD1B6004235334AE2AACC91D6157E13D5D2CF90A43CDADAE616B9E2F1C83F2D51111DD2AEA58F3136AB83DFC90F1EB0249862A11138FC4CAA0B900E511EC98CC77619E85BEF0FA118D69D27D0CE68A39F54E7F5AF135398C9643248D10BB6BD3EA42C04E2365162693A14ABB55274A66C1EA7A7FAF1EF18AD4BA38ACCC05A88CEAE9BD1453BA832D74D4A344DCD6A286979CC7D543FFF623F9B4B6148D8AE41174E8BFD768972E111C9F2894B5561662B7B40F6832E8A643E2F319571F631D29D43889DE15E660AB1627394E55C92D46D32428533B1C097983E0CDFBDFDFAEB1F71E066FEE7A6C9136B3E1917E5BE67BF314645441CA01CEAA413BD3B493CC8619DEB91A59B2FE45718C19F20AC2918EC4627BE30306B5C9D6E0D7B442F421136F694D3BB7ACC01E0E0D2F8DB852B867238B209609AF15FFBF483E8AF7EB3EBD4DF089A5A739D3CBEA6D78C8027FF702B9C738482A5197F7EEED2864FB210B611059D92666D959CB21A3C491618BB4DF72ABE992E0437D209F377ED9BBC3851C5772A6490D1C1BF77C25B56ED9A762B4A163FEC69975C01081E693D482A73169E9459F2708E934D9CCEE0B5BBEB4A8CE2F9493E042C123A92DCC3B82003772AAF2FB30DD63D06848EEB33A9672CF464608AE266FFD7CAFBAECB176531EE07E8B9AD88B38F105EECE4951B5EE074D9832D6CCFD9B19622B430DA3230D58B22BBB8126E302F48FE7B36A7975254C4DECA7E77FCB774DFB5C38636C6251053B0A7BFAA17BA21E32CA47BE2DA5F550A3F7E35AF16130F62C1375F2DE019A0E1066A6FC51E1625E59DCD589CDB2E92E78F5C6A07843715399DD7A289CF300E193CC2E0D76EFBD84D60CE0607C69C509D2BCEE9D2BFFD05289CE0F4692FDEA9CD651C4573F1AB7D5D99BCCFE6A0A73339E65070D75082D35FF2C837BB4920E10759D1531CAF2B2A706537C990C17931E33FF3C47167E1EA68F33C592CB45FB922A2773A4FB79F1618EF8771B4131E37218BF3A000021F4ADEE70A08B9F4B9FC0969AD5B3BFC5799D036A2D8F066FF5AB41394B1AADF33DECC8B2045FF87B7FC37B8AB2E5F4AF3D31F7A9CE3465E33F4E0701D971D686E2BC9D525108CCE748431368FFF09CF683D1C101BBBCF0D7B923F6E971A06EF317B434B0DD087D5B389B223904730026CC1259E8DC093823B87130CE1662FE60D633C35551406F5BB2B5DAC8390A698D3FD94E2EF00AC558C55086CB61662C05B9D09EFE6F48C46A991F8300AE3FD2315544D80A71E83AE0CF056BBBB663BD88BF76FEB1C0BF871826C4C59247A9FDF9A310DD9A263EDB541F9985CCFA9896081EAE8DBAFD5109908767E745F2F5928A041FF599F3578371E2DAA10BEBB8F39C2EB6539B2BE088739AF663A84F5AFBCE6AAF209B806E412EC26B44305B7228E6B68028C59F7E8B83DFE605A284418080C63D1C44AB8F1E4DBDFA75F74ED6322D6FCC5AD15979607477ED22D110E36D56E42A79407B33C84042A63F40E4179CA7F9DB58E0B34A2A87D4F90FF1C89DF9F8A8D4D6C509D84C89C23994E3D9FFC7A67BF97C29641D2B11771D9BE0841FF9C3EA08162CCA9CE13B8A8721AA22FF13485C47C5F6286F82FE9EC2620FD1B4B940EA67D0E39D5CBF8F97D2166588E0AD77055932936A8240C759C6FDAEE475DF9D78E0663D960C05D12E5557FCEE6561767D84BDFEBE5F77DE66115ECBCE41BC5987DD630B69BE9D3220B1B6DB2FE08FD5732C9D6A16AB25A7699D138136FD1005D8F2F47EB1A06AD13C825833498EF6D14BBF38FEF47A7C53A70F7364D4E6F123B4E761EF134254CDFB2431E485AC12320F838B9E253D7994FEB8E4F0D10EA1664C2BE6CFA130A13BFF11707336F87D054128E4E5FA429DA0845475B28DEAC096BB839E504AE539DF78A1B3892ABC8564D2AE1A644C07AA5B57DD5C976A58639C008F280020842F248FD66A4E9A76E7AE579845DE378C03E41C9F9E3A08F69E16B133FD205DD8310C7163146C7AA36A459208BBCB73CEDDEC3DB2D337C40AC6A7717A27FEB6D855B9C76EDE3C1B7CE05E0E23E64783BAAB4C1BB92EC593220AB62242B11AF9A330E1E5F37C65325F2431936E113C994974C383AC02411B32 +ss = 74E7C95F46B214F146E1812F1F2699F1AC4E4298F0051ACD2F6FA0168291F4E1 + +count = 56 +keypair_coins = 63A925685A8AC5BBD918FAA33AC397D1FFBCF99135D9DA7C3D6FF7AA4C50AF3D284FDCB2D2A697D75E985AA43FAE0DF266A8056C18CB0BBB52B4EC89D66C21E8 +pk = 56054AD4251DEF874AA0051EA234B544D7A0DFA60B1D5BB60B8BC95220C6CC96AB6ED53EEA9C7CD1715E9C29291A361B04F205CB094FF888642827AA19C64893685FFC004B6ED9516F6638B9BBAC94404F91C29A4D5AC6A9615179798CF6C486333A7641846CB49C6B78425AEA240CD5F98FFAA826AA3B7B643A0C5F4C3AB4C21EA9081E9439445C98277B9A507BBCBB82D31ACED3C378B017F7D62270749BC1901EE53C72953576125574DEA727080A659BCA4F007B6CF7C9CB2D0254BA9A293290C493654D25E7AC0CD88A6101B12622BA2627000DE87D88E4990CCB9CF4A08918D044C2D52CF42A938D6430E544CB2E369ED9E7C7304B55A34A8CD193A096D5C716383904B7B8CC89CA471980B84699F546BCFBC348AE706F400A28F0B1C9F8A40D8BE14FECC0B2F282CA8F5C499F2A3D16BB7501003D22965B7E33826D343F72A501E0B219BF868B3E47BD4FBCBA0D6635421189C17C32479AA5FB0ABC84549F878490BFCAC6934A6393A0A14874A878D65AACFA3678704919240D31E9911FB703DD339684D5AE6090BD3478578F7A60D1D72DA9D70ECA9266B19C79115322E626BA64D52D26C9A655F1325AA63881E8800E16382A46865AC2CF015ABE3A420ECEF1290E5A2836500176D7B6D54868AE3A977CC26A40A2C20EC3B346C0A4B81549D274A7BC6B446D6A42512C55B9823D745402A630065297973B99B569952AA9A66B440430D980BF4944CD66513220F13964A30E86F738A0EB1AEC491908D2C07A35591A384D0E560AF91C1F7910B2D3F61E69234375B9B6CC017891ECA65B83332DF15773BAA489862494435538DB956D9C09660499D7E343C7D68FE082997B73B69705B9498AC9CD989EFCE26F4AA2B3D5E7B445E4132185A4E734175EE4B5B7CAB33E42CA33096755473D774C758B3AB1B7687D62351C3C5251653953701C81E2CB2667C885E75C814F375EB946ADEF027F78036B28F4151F1C799FC1556DE38BFB2BA996DB3E3E70B79BE2614B073CBD150C04313013AB88C477297EE615FBA0A9E00A50EE3B0F66498BA09ACF338B7342B8670C31428F4A52CCF9B4B6DC98667BA43792863661738E63653C34B9147B60EBB21CE89291891BB814096D662806D1D012481B922B9C2FEFE9A66B919823970BE95BB12C6619498228BEC78DB0739A5B1C93654A2AAD73851355A0485A52C3896C3527964E88727C3805EEC01A65CCA1FEC8466AA44BBAC56E53895251892B6355C5E39953F680683FF72E0968867B536C11A33470F8AC74870D996557981711E5D0ABC65C671F423EE4B67771055952B54DF8934F0B6980779ABE207C4F8CE1CF17BBBD90B24D1FF875109366A4270202036A0796146CC8BA70712F98B042B301C5143A6143E01B79B2AF3A944100EBA87DA1725743C370D85894892469C00A95F3866726138C2099B9B6C47CE9B9630222C7656623260D8500B4D7752B6779AF5B5B858016057F545175F61477476E3A02ACA3D1485E0882B305C9F956908DA84EBD8083ED26B8B2B8B50A347A4CDA722BDC6FFC2B9043491DA64B0FD0A39B7F1550186A0038E07598D6887E6C8C2800288B1C9A45A66233049D77D912B1FB50FC119B0B7455C8D90A3EDCB046F2064D401C8F108B833CAAAE5573A10B9FD1775AB90226D8A32088AC614E9B20737C88DDA963D0E77C7C592179B4030881987421A886AC7A422C98B6D51C53D8C1027C84881491994CC84E9B1185B3425758BBB1E305A1103FF6989C633A5697A97E5DCB94E7191D9A47330ECC60ACF85083559D507A77F7033965A0859FD6306D27C0ED2B35E7B3444D957A52010AC49A8851952F6061AD551B7C74814606510A0BD19D9EE7998310C74EF507902CC71103134A411F90DA122FE72FD14448DEA00932977C0F27628F092DA3AC07D901C2C3613D22D48AD6376AC1D008C7D19A31623EBC616E4FC3887D68C033BC3EC0E5840D415F6FD2C15355C223DA1C45289315CC945AA39AE7498767EB3A6692B2A0CA6E7BC73A5D97644703ABA392B5D386849F91BCC7F5691F295A267AC0C1FB84E5E31C94AB020E351AE410840E4198E417B8F397AA33F88114030B07D5C702C6AB64BB7DF7276F593AB3D133232C919DBD06B6DF756258B25C7132BF03C62077084CE937CE829B0172810B92D45892F335D02D36153217D5DB379B621E416A54CE8071DFDA35F639A04B14 +sk = F80C63DD6CBDA93B6CEE719FBAD6BDBE1A03F18B3379306ACE5625FB38C5EDAC9C8C94525C85961E14A76082BBD760CCF9B5AC777088B0CC80E0304FBCFC697CFB13DCF1CF777325EB473D11A43DA4575B697A860445B02CF75E8B945FF9433A337C754E19453D4BBFD2F07C76E8B7A68B92ABC870B56202F7634B9B37902D39BCA04653FAD9A0E4F0BE548ABB97C7A1FA18C34CEBBAE3987F4B3C52A5006629159AC6875276053908B389D931BC7E2871751169B6D81C8D8B5F52854A3E644C5C504675D688BA030E9E78A79E7788522516FFDA2EC9946AA9791A634B6AB6D04456003ACF348BDCD859567A74A7B73556820F8DFC12E467AE2FD11025E430114A5A60D3B42BB43845721637A69596EB953AB7B3E3B28B3BD9923DBC5189A37E9FE7BD9B763FA905314C0A35387A8E8552BF7135698E15B8D99B0777A0A5AF1B7DAFC172AA6A4D69202F10351603771876C580A7D24479DB0D804B6513A09281F291F2706AB128905663AECB0BB31A41046771449D12C335051A2EB50CA81ACE90940A8A6A355B21A9C7505491EA3B48B5323CC567EAD909FBDB380FD504C851452BD34F0F65A39AC62D922A3C50A8566EDAB03358745D701332E4011022BFD4839AE7B6745C66ACA80ABAB8213369E299253B40A7922DF02AB70F9723BACCB1AD563AD20C5EB8A01AE564BE24F40CE91A0F06EC68C0604C74250909D317F8968947A12EA297A279821F1B5377B02653D66897AA526CF51553C268481F7174BD9495DA4B0305650358A637A5FC31C99BA7BA304C6811B555E4B1C2F80EB4223C54032D16238861FB650BCBA24B127026FBA51F5985476103FE1375B94007A06BC2AB048BCB4A78E6D3C748B141BE410992733630B8C917F89960273740A595071824A9D02908D52D334373E8A575D5D52E96E5AD0CC95BF2C761AE577B9EF6BEAD33103E5033E0765D748C409F8A44227B8F55838B38695C5E132F2CB9BFDD7CB8522906E9BC03DDA468A04012277417869277E2169C63112E6A8942A1C13AEE97300FF4CAABF862058B6E7CC16F34C79BA200853701A98D630936A8A595098C8B19820AC91F47451E011069AA688BFBF5AC4EE018C53639A1B0573C8A420C4619166B011E79BD0B843D97766810A48E55D5CE389B5DE4A739F77CCC5FB70D52B3CA5D01729935BF7E4BB984576F2ACB7466C8248F975BAD539B2260568DFA34CF2974D83699761C95405943A7A88374112F8AE79B4D244BF2D683F7CC7A533229BBD8B5E822C8B3449548634FF34BCAEFF25A41AA84A1FA1F52F486F89630A7730E4F81AD23C14D6906816A849810951727042ED0782EF26C31281C0AADE6C9334A88ACB917B781C4F16327196422C24541065B5E80F4374DA0853D478625A68F728A20C1C82CA4FCC4D62744FA658059141221A917D6121187D3B621179AA8F7B7CD0904E6E0787F9A5F65EAA78011B6B63290A55542C80A4BFAD64677467DD1B12785E6BFBC31C1F3D46DB55C0A035604EF658279DB3232C675BC0BC97717CA3EB71D4F44CAAF1B07BDDC90AE982886594F98C41AE7481562CB63D0B2539EEC589146735490A4A87B6EC5CC77BFC0810627AA3452CB061A1648EC7CBB4937826602185A7F5B9306D822633E2B7D35A39C135CA5C1C5C1BC80BA25EB91CD6A3D71341CB1314DEB05A164D31123B0A6C5CC7EDEDC1301154E875493FF173D74880AFB7438C44085BCCB29095BA859A4CB2D77BDA5D61FD9600D1B9C45592682BF161713C80D0ABA348EE8BBF370BD4B1A50E6723B9B2499030A0EEA58A6531579F8B110C7EBA4CA3A57A5B6A5AD511F896A9F78A62908CC0FE0A0C06E652240F34D1E16BA51B41AE7077C3E982608216842C499A51CCC4365A864060F4D2B854232B56D803CB91C7FDD830A50CB2AE465C91416BCB09190BE99C56F870C065C7BCF4B421718C17F3394A3684CB0BB83473927B3A1B4F8334851861044305137746AB39650949C8CD43839FA75B0A78C14D65B2D9139175F9756CE3865DB6C77467B086C4826921047D13CAAC87A61E2D6B6A6A8CB67D18A0E910DEC05AA5C3525EC86A2ED7C24C0E520B44A5C94940AE8D17F6B175642CB49640BC3254957C1E2501CD5017D3C297137A59CC06B69A861BDB73A0C739733DBBC5DD91628D85B56054AD4251DEF874AA0051EA234B544D7A0DFA60B1D5BB60B8BC95220C6CC96AB6ED53EEA9C7CD1715E9C29291A361B04F205CB094FF888642827AA19C64893685FFC004B6ED9516F6638B9BBAC94404F91C29A4D5AC6A9615179798CF6C486333A7641846CB49C6B78425AEA240CD5F98FFAA826AA3B7B643A0C5F4C3AB4C21EA9081E9439445C98277B9A507BBCBB82D31ACED3C378B017F7D62270749BC1901EE53C72953576125574DEA727080A659BCA4F007B6CF7C9CB2D0254BA9A293290C493654D25E7AC0CD88A6101B12622BA2627000DE87D88E4990CCB9CF4A08918D044C2D52CF42A938D6430E544CB2E369ED9E7C7304B55A34A8CD193A096D5C716383904B7B8CC89CA471980B84699F546BCFBC348AE706F400A28F0B1C9F8A40D8BE14FECC0B2F282CA8F5C499F2A3D16BB7501003D22965B7E33826D343F72A501E0B219BF868B3E47BD4FBCBA0D6635421189C17C32479AA5FB0ABC84549F878490BFCAC6934A6393A0A14874A878D65AACFA3678704919240D31E9911FB703DD339684D5AE6090BD3478578F7A60D1D72DA9D70ECA9266B19C79115322E626BA64D52D26C9A655F1325AA63881E8800E16382A46865AC2CF015ABE3A420ECEF1290E5A2836500176D7B6D54868AE3A977CC26A40A2C20EC3B346C0A4B81549D274A7BC6B446D6A42512C55B9823D745402A630065297973B99B569952AA9A66B440430D980BF4944CD66513220F13964A30E86F738A0EB1AEC491908D2C07A35591A384D0E560AF91C1F7910B2D3F61E69234375B9B6CC017891ECA65B83332DF15773BAA489862494435538DB956D9C09660499D7E343C7D68FE082997B73B69705B9498AC9CD989EFCE26F4AA2B3D5E7B445E4132185A4E734175EE4B5B7CAB33E42CA33096755473D774C758B3AB1B7687D62351C3C5251653953701C81E2CB2667C885E75C814F375EB946ADEF027F78036B28F4151F1C799FC1556DE38BFB2BA996DB3E3E70B79BE2614B073CBD150C04313013AB88C477297EE615FBA0A9E00A50EE3B0F66498BA09ACF338B7342B8670C31428F4A52CCF9B4B6DC98667BA43792863661738E63653C34B9147B60EBB21CE89291891BB814096D662806D1D012481B922B9C2FEFE9A66B919823970BE95BB12C6619498228BEC78DB0739A5B1C93654A2AAD73851355A0485A52C3896C3527964E88727C3805EEC01A65CCA1FEC8466AA44BBAC56E53895251892B6355C5E39953F680683FF72E0968867B536C11A33470F8AC74870D996557981711E5D0ABC65C671F423EE4B67771055952B54DF8934F0B6980779ABE207C4F8CE1CF17BBBD90B24D1FF875109366A4270202036A0796146CC8BA70712F98B042B301C5143A6143E01B79B2AF3A944100EBA87DA1725743C370D85894892469C00A95F3866726138C2099B9B6C47CE9B9630222C7656623260D8500B4D7752B6779AF5B5B858016057F545175F61477476E3A02ACA3D1485E0882B305C9F956908DA84EBD8083ED26B8B2B8B50A347A4CDA722BDC6FFC2B9043491DA64B0FD0A39B7F1550186A0038E07598D6887E6C8C2800288B1C9A45A66233049D77D912B1FB50FC119B0B7455C8D90A3EDCB046F2064D401C8F108B833CAAAE5573A10B9FD1775AB90226D8A32088AC614E9B20737C88DDA963D0E77C7C592179B4030881987421A886AC7A422C98B6D51C53D8C1027C84881491994CC84E9B1185B3425758BBB1E305A1103FF6989C633A5697A97E5DCB94E7191D9A47330ECC60ACF85083559D507A77F7033965A0859FD6306D27C0ED2B35E7B3444D957A52010AC49A8851952F6061AD551B7C74814606510A0BD19D9EE7998310C74EF507902CC71103134A411F90DA122FE72FD14448DEA00932977C0F27628F092DA3AC07D901C2C3613D22D48AD6376AC1D008C7D19A31623EBC616E4FC3887D68C033BC3EC0E5840D415F6FD2C15355C223DA1C45289315CC945AA39AE7498767EB3A6692B2A0CA6E7BC73A5D97644703ABA392B5D386849F91BCC7F5691F295A267AC0C1FB84E5E31C94AB020E351AE410840E4198E417B8F397AA33F88114030B07D5C702C6AB64BB7DF7276F593AB3D133232C919DBD06B6DF756258B25C7132BF03C62077084CE937CE829B0172810B92D45892F335D02D36153217D5DB379B621E416A54CE8071DFDA35F639A04B143C4467B507971523509BF97D2BDD733AD9EB94F312E4226D036E8FE827A20533284FDCB2D2A697D75E985AA43FAE0DF266A8056C18CB0BBB52B4EC89D66C21E8 +encap_coins = 630F384162DD6F8206CB36D2278AF30CCDFC73105029DD507A18AD433503CD7D +ct = AA403B1D6E3E4F1C8428BAA6B2AD630A6BA454924B2C41F0A91D6BB4CF29FA5B51F211C7E969E181BAA52D77D1EC5473DC7832E9191DCEF35EB79710AC0E4C9D500D16EEDB619CAA84EA58D4CA743E2A3F5E6A92A502AAE4731E235F04D8D3F15D5A7E148B1DC535781AE85D9D1E2B74F48EFF673B1FBB0A36FB5A9C1C2FFB99668AA8D25BC0915A7366589FF2843760C9C1F0186C6FECD325BD1FB2F6DD86EA91898FA6C205AB0A83A7CE6D176952AB77F9DAA39E7021688580489718B9D245F8F5E656935C1503B1E04330B6A7512160E09D3FCE39F2A6FFC424CDA2DB2870590E9E8E333AA7356967F233EC4663B7D59AF70F37530FADF03224830A05240F558C996AEFAF0248FEF49313B58C77FA888F640D91E1CFD7CAEA4A6AA51CBB0F198AC79E563ECA4D39920FC4AE89FEB62A9EAC30717CDBB63954153453BB817C9490C11F7C441B7526FD1327AEE3C847B80BF340F7208B10D3836FD583C3EA1D367E962CF87D2D8BC0BC3039480AFE9E6B889A85BAA8884B47D8110531D4ED88E34AA008F921C61D06B9A020C41CA82B1341621A8C017552F0F96F78CC8F4345A4281C56133CF74B5FBEE71F988CF9BC9FC0B7C0E2FD20480E7E1CDDCA25E2B8DE62BF577ED1C1475CF77F621296BAE2D011E62E8F546618E27DA50DBCE0281FE455B06B0972407075E67EAB22ABDEB1B0F7EF5AC3600EB9754138013A1EB5B232025FAA56901A745E6DE4B4B0272CAEEB21F3B1631BFB32220E348D24915527496A1B9BECED4836DD5CB976EB74C7920FFDEC5AFF6EB23911026923ADA10ED2158D595F55E903EF0F26EE2DFA9A9217621605FCDA354871EFB41AD6ECC298E52B7E64DBA1FECF8B4AFCDBD2255845780CEBAF01E9C99D599289547ADBA847E12F8E764F8FA4AF24C9D1369AAC1C15E2557CDB15CA43CFE45AE9DDA493FA39A1FE2239839945D7E1C729FB1091014EB0AC78A7381AD4F13E65F4CA679199322DBEACED071088E621B0E36BDE81BF75940FA8C144C48BEADFB281D44264281B53C4433F9E164B9254F3860448A26F45269FA402CFBA43D7856449F210B424B8CB2F86FE565EFA3F497E889A9EB10E763A748F4B734E318DC11D7D8728086B43C7453B9D1C36145747AAA07720781EBA77B95218667779686C7DAD1109D31B96EE88AE68C76323021E0C8CDA4DA5F8C3061B25B1BD2F55F105E840423506DB992E45CAA171766C2A26A0D6418CE7509CC9F092B92F3D0175F30E4B2E58CB209A04A05D3C56B67453C10CAAEA09D9ECDF0B6C2739B5CD19055B9AB1106FB0671B7506C275F3EEDB72D2ACC4EC6C69F7ACAA9A1DFB686AAE876D3E36C792C3F7510595F0C2F8AEBF6C8091D655FA30BC9156D4572A6564FD06E31B03C1D379BEA466837DFF9C71A628E3DD1BDECEFD7B7FDB90956E98D465BD79A93658302F8BC2523335903A66BEAE524FFE9F89D08DE98679EA0A495BF427F44873C0325D5DAEACFF8B10EA1B79A1A1FFE94F2BC9FD7B9A79FCD5CDF1EE0BAA0F60A0B974CD3CDB0C598995BC8281C41CD68EEE0C0EE4789FB9FEC2AC00ADC3663FC9E1E915FB52F5B94192453BDEDFBE14887F8843F5E35FDBC4E96AFCEB4993A2FBA41A81A45DF97A73B2C35D61DB3965789039997896EE9D06CED3075A3668F680E969C03474F4AFD6DAC17E8111916A86C2BCDE216DF4950A3534436BC00A97F3DA6E51A34C5C78D1AF4D910CCDA10ACDDE751D6D6678ED629F7DF740AC0E1608C0BA3EEA46BA4FC13D22F3ABA171264F995578C898F8BDC8A7E150D3E96A2DBDD988087C6EDE8939A42CAB2451F7CDBC2870EB9A04BCFD02210A2853885203DD0C752102C92072A095588A54CB6E4F42CF9768B74BA0B18EEC985B40B7618ADF4BE7A1B4B9A163C4CE7501D36273B6ABE92E7CDF944F2F95B4B9A03363E3EAEC7A22E8D87A9E0DDC045AC50313A03A57BBB333D04900E19F5F035582010901E5BFE5477C19C4A1CFE846523C7457DF9503EB8C9FBEFC7425E683F337ED8C1E528D1B74F30529BCEA3F24130DEC1C4F72DDFE12D73DE34C8171A402153B8EDA1E19DC8572A65204328585B18D27693E9F039045F6FF0A009AE55CD226FE991B319F8E8E7607D91EED7D55A73577698526CE3C2C40743F4565BFAAB0C6209F831AA063FECA8658FD7788F903B45E1D3D099FACF7005CFF1FCE8261831F65F4AFAE86D9E93C6B +ss = 99BAB62285AFA02370DE3F80BAF42B5085DBAD03B5DD2891014EE4C86BDB0161 + +count = 57 +keypair_coins = 6A1AEE5E708C1B47F02BDACCE4F56C860F74FC7CFEC1EF3B58285B1C8AD7FEC211FE1EBBD66174798908AEAA16D79212E61D5C30364864FC1E09F1B20F296C11 +pk = F72BBEDF8059FA51188FE16E54B22F88A59ED8A92D72188F1B687222500DBE642699493DC08C97B6A13E640B51F2173CC8A417BE58077803627A7C9BB2A7B96E9596E3D96C74F03926387F34C448EAF5885EAB4A52945333FCA41DC4AC4CA83DB05A5A5D54789E02664EE7552CE5B4C3E16AF4299C775A4DC322AB9EE16D65A1298294ADEF821E94A5119E713175B69F03F941F7C56F565439F1E24F663987D65B00BF899495D5C2F178812EE73387A1627F98029344928E5C9100C50F87CB6F99B27E3EC7635C6B132E0B81229807E4D9903A2C5AB8985DDEF435FC8462F67A6C01D2188D731412262392ACB98FC49E4CBCA7ACF522A8D385DFF01FD02C4BE4B878BFF659AAC05A8FBBCC1565A53CC36AF88B41A1A3A18B04C728B1B66A7698BE968DB6F0BB00F1665088CDD4E3464E34261E72748705B5B7EA5E4C02289365A56739A4EE34A5DBD5509EC297C12A26ED1116929A8EB4793248BB78A1C21D981733EC874ECCD2C9B4BB530C4B6B10E136E764AF55059DA3DA93B79076AEA089818210BD076E2A8A49A5032405A857BAF295E7868BD82C958C90474BC4403E62B85201061B7BB6AC533E96870AD0D7B9F8E6A835E6C6CB4C8437489448A273E576B91AE8062E411593B4C541098185198E49C0790DB516ADBC2852A220725A5D50D47333AC058325B61325840634140BFB7AF0110B34FB408749998DF156668634B775965F05AEF99713D1F5BDFC5302337B1C041448F5B09AF8C5560076AE90EA3D2DBC39BCBC8E9AD26981563EC254A5F3D97220ECB6C5E76706BA933766766024839579868BA43B691496F6BC49199C2C35E35D6107AC61744DF910C021591D6DF53E4358487F26B4D4060958095FE464CA2703394D885625806106EA31173017F4F0594550BAB828993D55628ACA5955F61F4E4B316A8AA9971C65813949A16828B5792AD841772AA1B85314527EBC2E6D6351DEBA9429E43E7FB4991FCC98C67AA6F3287A6EB9485B8064FC585AB8C2AF6212441A763540F7AF3D8A8620C6CF40BA81A914CA28A8265248673D731432EC9C70E083BE49816098494E6994B385B509397198E2A50C76A8949C25ECC9849ED45D59C966444313D5F0419ABC929B8BA51A2A49589978A0E29C680C07B9CAB2BE0035A06C18D561B9B0E862A2957D5D41A0A63C4BE99C1D50F76CE57862B4F61CB42591F17AB1E85C1CA2DAC3F746940C001D64D81DD0889629D60727D5A5FD8AB7549B439D66A30316883DA6455DC023E6E702FB4742A82A101F60CD8F3A29D3D88C7E418C3D30803A541D6CE1AEDFA540371C846C672753A858B39B5880D69B8D525C6D57522BB6530CD7A4EDB7730CF720541454CAB59595E8A5D6302249300A6FC2180EB31BA43398A2A18ADCA92AF2A686C20454FA8A1864D73C0B91167B6B4730C2B67C55B425E92C663465B7F7A1D2163F7D7A8A08A962FA0149CF2BA8C4066CAE7C0A22A989DDEA22A5311EE5D895EEA9A5416739F810AD5AC901471A72AA78956B5183B194B26C361219401AEFDC49B6AB481BE838F85290A0D96060D68E5FC71358A924B95225070C6283B401296698310BCE2F1B7C8A531E84F625585429AD3394FC04BCD8A200834CBB9C9B9A8C83601FDCACA281A93F47C6E32C133414CE71F32E60FC52B4C07A1402C3932056FC3323EA2241A6484E6A074676996E5962867A61CDFFE8811764953004CC9C3697E78AB5D156CB952B1C53EC674781792AC831D6E20B5B29C3B064520FD5968BB351A401646AE3267522C234A8404B02529DA182B473051BEA4B971B170D03AA378877FA47BB60F1C1E3519110121BD58B17AE373BE2D21FC6D7AB2EE2085F4A194FA7717EC83F6C144E256807AA921C32B843AEDA0A5CF85773B77EFC579A677816CC998970911152D091F21733DD1C0FAB31808F2A3A64FA783EFC2E4A252B56548FB38BBA8625B9D4A8AA6A57786F1C9E1DC49DD7686399494277961E67E555CD6C7C4A630FDD897CF61C9C5779594974088A2B415806B520503EBB416481E87A062582A479B3E05B9413AA2C7AF59C5A9C5034722F43032F0D6428F8425F4CDA38876AC45BA2137FBC56209823B05ABBC00AA9E6A307BB164FE0413311F22BE44244AEE55268DA3135EA5996F7CC3F51856610CA68310DFC13A12E8459454D36096C3BA38E979A3D4C852032429BFE1E663E0C256C2E93 +sk = D809438C90AEA78B897A528534FB009D716DE8D513D32168A1537489E52255D00F49C424BF5B5DB0E15A3A9B9845ECCF287776F9700FF5BB7AB9F40FFEAB7F148A9633546846B672CDA9AB8A37C8F9711B76474E7975AB7E16675A8626F8648B605066A4FB4A5C255A0A39387B03BB7F618C9ED1B37E488D4B7175B593860F6C97D637A2D8761D3B933291B2CCFA6BACC4DCC4DDBCA804C7C55EDB9FC5ABB503036059DA4D2929447CAB1BB1CB746AB01293A2B2F2638BEB06030D476BCD2C335DD5226B7450F8B5B2B130332DC9210640C10DAA5FAAC16C1381C2A0C4AAE3174BE4FAA53CA9CBF29769084715D6F8C163A0185030B0C7C9621336A9875946FBB73BDA9774C07615711451F5594A44313878204C291AB7550AAF981409D4D7CBEE727BA689400DAB7382605F03873F38566421A354B59A3B48BC8F62A09519D932AF5800A9A0C6EFD5783BD93483A0AAAC7853C890C3BA18835D1A2E8F14BD0768CC7D0B951909825C988648F797F5711FBC654380E661BBC41CF89B088E1410F19669AEF65FD817564A4A4F40281B5E16A69BE2B503495A4B6B680A08A54FE0B80AE668041AA120C7A363E38AAF2156CEE293BFD4396DCC503646ACB74B9460142E4476807C058D72C9610E3CBB50A29ED7244419C2C258659B3A8A23E7E69A3047298378424B7A12DF3CCE34F1364732B292B105EEE6A487126815BC0013D66FB7099EFD4931E4301D570BCF2FACBA0B433B9A03147242C298052650416651DB690CE81C268381032B17C429A8E418B7E2BB63D30B570DA588CBC36DC3798C65F81EF05530B9043310E182E88BB3E58356DE408898738C9B3C457FACA42B9B81ED7C4118869D5153338EF4260006C6BE294B528C779BD6C8FFCB16E2AAB439D3032B8AC45216282346200CF1C812033A4F9667AF842481D807F92245BB322E04343971A656087CCA8CE9BD3117013AE816BA745888A4AD51A167A17482EE5B88B0BBA455A565B1D97BD3B9BEEAEAC0B4F2879A727028D4A1C61900D0770F15451A01964366D8A6AD1B5BC520392D43BCA270CCF9A72DF3D68B955C4BED0352B3F78151C4716512097BC92F2CF0A2560923D01358AB1B5F8B7BC687F5C110B04C6512372F119FB23BB852398A6F599F4D145A8AFABAF8AC8726ABAEE569C4579B494A01C67E232B93080D5DF1542DD59F21760A24747E98E26466280C04D1784D9B581B4CABCAC1C3DDE1CA8E00588E0732F76B99EC844032D99EF65C8A9EF4A661E78A47B0542B3129E850647862132C208CB9B3986EB5B510EA1854300EE966B0D3BC09922260FFC96B894A181A95A41F1BB3ACB2572475B3FE8933FE3902C965678B95512289CFBAC30A2B159B8F2B3535E40881D81C204CBA9080B9A7B23190965EB660754368955C0C7929E9447B92AC78E7867C1B4770596047FA820C03A11CAA3C2BA48120E29AD46C289920222C511C9E18343AB20067F926435C6D6B040955F9394601B805E38A751BC8A1853FC05857EAE658A8A7CAD729373E73253E7728FDCA89E347BBFC48A7BAFA48CB167111367F40C93BF71CCF208A891C383BA3B593F2663148D779ED82B23F4B6796209D51425E9168CB22224F39F069D4BBBB07A395D3633B71C81A238AA549B107530519119262FE4052CAB4215647C0C2CA573EFBCE84881B45279DBB0845DAC9CE5CA807666A76C2A18DC4A39A09234095D426AC769DC4D5584D9473705477C2373BCAEC3EB1B911E8F9CDC581C2CD330F0A2CA0F937204323447D2328591761E3C093B8DC35249118015CAFCF6BBB98626E43EB12F97B12A1C158CD473BBA2B3D2AEBA488859D64120A668A6BE0F30A6D76211C2576BE6A95654621EAB6541B65C956BC51E0117306873EDE094169A956E50C9F453834A6F5B4F4E7BF3D644284AB2057B653D40479CFB63679E2B50E6975DD839100E1888CC35DBC461A7BC248B5B756D10338CF68C4B8EA281493C9C7FB4D1504AC3478CE8CFA7100CD6411FC74BF054D6932A41D234EFF8BA54F72B4EBC52EF605CEE08358AD5BAB7A0966D8B36B2573387C587196A72BE1E47132D6B3BB92241E735B47ABA99D28797B6382ADB0263D6817DBBB71D46A17C43A63748A3F34873D19497C49515FA8B4AE5C588BDACC234F9A74AE67734D14B7F72BBEDF8059FA51188FE16E54B22F88A59ED8A92D72188F1B687222500DBE642699493DC08C97B6A13E640B51F2173CC8A417BE58077803627A7C9BB2A7B96E9596E3D96C74F03926387F34C448EAF5885EAB4A52945333FCA41DC4AC4CA83DB05A5A5D54789E02664EE7552CE5B4C3E16AF4299C775A4DC322AB9EE16D65A1298294ADEF821E94A5119E713175B69F03F941F7C56F565439F1E24F663987D65B00BF899495D5C2F178812EE73387A1627F98029344928E5C9100C50F87CB6F99B27E3EC7635C6B132E0B81229807E4D9903A2C5AB8985DDEF435FC8462F67A6C01D2188D731412262392ACB98FC49E4CBCA7ACF522A8D385DFF01FD02C4BE4B878BFF659AAC05A8FBBCC1565A53CC36AF88B41A1A3A18B04C728B1B66A7698BE968DB6F0BB00F1665088CDD4E3464E34261E72748705B5B7EA5E4C02289365A56739A4EE34A5DBD5509EC297C12A26ED1116929A8EB4793248BB78A1C21D981733EC874ECCD2C9B4BB530C4B6B10E136E764AF55059DA3DA93B79076AEA089818210BD076E2A8A49A5032405A857BAF295E7868BD82C958C90474BC4403E62B85201061B7BB6AC533E96870AD0D7B9F8E6A835E6C6CB4C8437489448A273E576B91AE8062E411593B4C541098185198E49C0790DB516ADBC2852A220725A5D50D47333AC058325B61325840634140BFB7AF0110B34FB408749998DF156668634B775965F05AEF99713D1F5BDFC5302337B1C041448F5B09AF8C5560076AE90EA3D2DBC39BCBC8E9AD26981563EC254A5F3D97220ECB6C5E76706BA933766766024839579868BA43B691496F6BC49199C2C35E35D6107AC61744DF910C021591D6DF53E4358487F26B4D4060958095FE464CA2703394D885625806106EA31173017F4F0594550BAB828993D55628ACA5955F61F4E4B316A8AA9971C65813949A16828B5792AD841772AA1B85314527EBC2E6D6351DEBA9429E43E7FB4991FCC98C67AA6F3287A6EB9485B8064FC585AB8C2AF6212441A763540F7AF3D8A8620C6CF40BA81A914CA28A8265248673D731432EC9C70E083BE49816098494E6994B385B509397198E2A50C76A8949C25ECC9849ED45D59C966444313D5F0419ABC929B8BA51A2A49589978A0E29C680C07B9CAB2BE0035A06C18D561B9B0E862A2957D5D41A0A63C4BE99C1D50F76CE57862B4F61CB42591F17AB1E85C1CA2DAC3F746940C001D64D81DD0889629D60727D5A5FD8AB7549B439D66A30316883DA6455DC023E6E702FB4742A82A101F60CD8F3A29D3D88C7E418C3D30803A541D6CE1AEDFA540371C846C672753A858B39B5880D69B8D525C6D57522BB6530CD7A4EDB7730CF720541454CAB59595E8A5D6302249300A6FC2180EB31BA43398A2A18ADCA92AF2A686C20454FA8A1864D73C0B91167B6B4730C2B67C55B425E92C663465B7F7A1D2163F7D7A8A08A962FA0149CF2BA8C4066CAE7C0A22A989DDEA22A5311EE5D895EEA9A5416739F810AD5AC901471A72AA78956B5183B194B26C361219401AEFDC49B6AB481BE838F85290A0D96060D68E5FC71358A924B95225070C6283B401296698310BCE2F1B7C8A531E84F625585429AD3394FC04BCD8A200834CBB9C9B9A8C83601FDCACA281A93F47C6E32C133414CE71F32E60FC52B4C07A1402C3932056FC3323EA2241A6484E6A074676996E5962867A61CDFFE8811764953004CC9C3697E78AB5D156CB952B1C53EC674781792AC831D6E20B5B29C3B064520FD5968BB351A401646AE3267522C234A8404B02529DA182B473051BEA4B971B170D03AA378877FA47BB60F1C1E3519110121BD58B17AE373BE2D21FC6D7AB2EE2085F4A194FA7717EC83F6C144E256807AA921C32B843AEDA0A5CF85773B77EFC579A677816CC998970911152D091F21733DD1C0FAB31808F2A3A64FA783EFC2E4A252B56548FB38BBA8625B9D4A8AA6A57786F1C9E1DC49DD7686399494277961E67E555CD6C7C4A630FDD897CF61C9C5779594974088A2B415806B520503EBB416481E87A062582A479B3E05B9413AA2C7AF59C5A9C5034722F43032F0D6428F8425F4CDA38876AC45BA2137FBC56209823B05ABBC00AA9E6A307BB164FE0413311F22BE44244AEE55268DA3135EA5996F7CC3F51856610CA68310DFC13A12E8459454D36096C3BA38E979A3D4C852032429BFE1E663E0C256C2E9369FFBF2275F12C29CBB69F90A8C881721CE39B49DBBA550AB93A2C4C94BFC66911FE1EBBD66174798908AEAA16D79212E61D5C30364864FC1E09F1B20F296C11 +encap_coins = A0F6AA73A5D09451A39087FD84F6872CE2EF031E6C02468B433362311346FB42 +ct = 58874A224F1EE2599F2AE6A760498DCA73B38DED6A8824397D9ACC9CC85936C880E4440EC43C1664188D196A715F72BDE942EE2CD2DA82ED4DEC8B792B24382650905DAC1D3B80FE17C99CBF4E1C5A26DAB50A7D301DFAEB1D2C25EA3C016222428D39C6910E989FDA11499859E941182E732002B2D36477A2BC83568306F723AC35AF942EDD92895DC7B7476FEEB2F8A57352034A1CD7067423C789F6ABCB672DFE92C8A7664DC0D92CABBE44B8E05B7E64600887D5CC47342F9B3A068D4458ECF5B5FFB973FC90754D80F541EEE0D7CF343F18BC70684A2A24BA233E563A59CE3A76D2F655B59FCF19B1F48B631611501B7A00BD9FC931B9BBF0BF7419E73AAD10C1628D2D86D830EFB99BE2A0ABD5B4677A62EF85AB8DBD832B7414AA4E01592423FB721E33D7797B3BD9E3C1CCDF5A43EAD7F43963CEDD6FBE7C6E4531C29BA51ABFF001450121E3788BB6FCFEABA42EFC31FC1B8BB971095E0DEE1044A60718383FAD2BFEC645DBE3315A39573063974E4AAB3FA9F60BDE3220912F2AAD6703839297697219397F0DA928D1BC845EBC5461600A9E2910EDA5826C37789122DEB22928F938A4AD6417316E0D9D56FCB0CA7007B7AFADEAAAA3A2C5C18A060EB95E3ACB8EE2392DC0E361F3C91719345E67A29D6F23CFA273CF63D63F033DFC2C3A07072D1CED7B35B9EEF773CC9596376278E28AB55D49D117470D8E1044B18A4E1BFD22489BA53D3F54277EA417B323BD1533C02278453510B393CA56FEDF9A89799FF7B5F8753C4C5720332D6FC34A3EA3B037E23799F0CDCBAD7CFA4AF0B5D1953B706E7C509FF8EC673C82B6C7402EAD9EDC761E3E3EF2686D8B2B246DCFDD889C4CEF15C35C49224E8E15F4E8C1C6C41FF071DF43F18D6B81548D3E797ECF3E693DC6BB9E2B57482EE340B8B05B85D7AF73E9110506824F67B5ADED29836CF810F39BB7851F65A2093ACD10FC03D968A088DB6F546646C5CE383A073A3C3813F0A5AC17A0F22288975C34598C1EB4E6608FC0BB8C129AC5171E0EF9ACAED54F4286D764EA9118DAAEFD1FC88A33D2969297E96B5ED6E51591FF0203AF78604C6B968C779F1AFB800B96B3820B6C72DFC4AAD1452E7CD747EEF68FADE7FB58E24BFB1A5127BA279C278EE48F625A3D9FDC87FBC6C9E8023D4EB344716D7466CC88B596A41FA0DDE155C1D7C88EA7D8AFFE83A6533AA1DA458266C7C4BF423D7C6B488609B7FC4CE44B884C787FCE63636AC97F7F86D7B95A4A0055A359131E666FBB09F1A629F4C586389361D7A76F5B794AEA3ED23FE4379B6AAA34AAA330B87CC88F6DD43F1F48ED5716E6C7082D0AC503C4CCE0A96239CD9C7F86C43A78A6D1C5F46FBA73B9A9EABEED41CBD1E9D55A22806CB8CDC7DE5363C56B286E929094BA2DCA277C2F2E4380C520F4E2089A408B19302AE111C0759382E4EF0F52CB4822668BA4301466ECE66C96A5F8095ECF38D21D9AE5E0BEB661198B20F371CD827D88271FD29C1925884B6B748D2FBE492DFADBF21DAF024A839144FE7FD78F79C9D350F1D3E193155C6FD1BC97C9B0174707D8DB01EA2AB844FDCACE69CEE48CF0608498B3973AE083EE9FD1713CB08A1628EDF4CFFFD381C311975662A016252C9D5A0A79E42CFA22FE2D07A71B75A1486EF759DADF1C18CF7D72340AEA4082641584F3646894289905E5D0B8EA7F244258A98FC0DFC4A82A2A0A58003322B89F86D4C895579A7BC896FF84959A9602D96085B320A16DB3A001E19C619CA7892429B8199E69257D4D83E6AF056AB816F187DF3E3AD5C03B0BE9F52B24258C90E333A374435481D9D625996361695DEFBD719C81F82F50E6ED6EDA4B10B791076C914F3B29BE9F5200805637A4DF757BC087AFB9596C50191DD6AB6E8CBA07297BBD7D513FBAFCE107FC3387790100D73B3E51AFA7CAA5BBDD1C6A5172D979EA56503C07F45519555DBEEF6D52CC28F2190F048092801913AC2E8BC1CAC4B6AFDCB376A76403F4A124528E3BE6031B4361A6B4FAA96D02CF816ED7131A2D1282FB47370E776A02DDDEA341EF6E9C8C9CD3D1B4DA2D128ABB0C65BA288CFBA03040F3283E85BFB057BC1259BB2371BD30E45D41610178B18BF99259E8A86A08750FA5756726A42A4B2193A3DFA7CACCF4F2FA2A488C3A1F594FB76E823D9824B964C86FDEE81D9368C18D1557D746ADB38DDC00CE370AE894C5F485 +ss = 92A76C3F9B2CA0C7C40A6D941AC2CB6B6C129C401BF41634FCBA62FD8A252FAB + +count = 58 +keypair_coins = 6396B328B100E4C7F4BCAE69875EDEA1A1982421558C608C13C592BF7B5D0FEFBAE49824E1A023A302CDF665AEC15B60F7F77AB2A0FFFD5246D07AE975A0614E +pk = B48117F3AB234A4BC2E6B80B05F97F10A508B9AB08C0650FE66185F146B0EF5993629B3F7FB646DC248E0690B77557971F02BAFEF88A9864C28E885562EA7B54DC217C5521146122AEF78CB893A99C1C9621A6B51A43117016A7F2231F2380764DD81162A4433D6CA171062704294030D5A3BB9859A983C6B7F009F130444303932F141F506896FBEC852A8A6934E72AD8C038319C58ABEA4C73319DF541CE4086A90976356D001CF6479437B64DBB318F7DB813D5034840E23910EC67519C93E9648EBD1B70EDC3AC24C983ECC4003CF5B130EB251A6199814C715EB54FCC8BA9CD638A294BC2015C8CD7D28736226863A286DD4C0878345D3885CC4B2ACC0AE08A277CC23E397DEE84AD6EC2B4D73C520910B4EB4BA447071DE01311754060195A37EB701045103B59A94D59131FAA1B0A99741BF8B186F44C6F66F76695ECA6932647E408966F7AC4B0B8AF15F1C4FBE27A2037B6E7FB8F4C6738D1A3AA480A6DDED4871E89A9BE945113013D02197BA78B0F5F8008AC89B28AD829E5FC2516DBCED3192242E074CDE7C8E2B11ED1192B25DB395F09BFDCEC8B1A8671975B692C84714BA3049A636494996143212C54058DEB770BA709CEB7659868998D6560C8F4386629331F7FE77DC5F5390443865D1215833C78FF2A6E24E3655CE799F62C3B5F24529C051C28347C3C792FDF8700EC3B6559F8BF6646352D2013BCD704BC2B26C0B8A231ACAFC7675D0E8A0459770F11D04AA0FA79D6062178EA4BEED06057444C4B4A76712201937212DE48941F868FF3184A9A700756A59E1297A71C3912CDD40E6F883295D0A62904A4BE9350EDB4483EE6BD20201D253997D983CACC0A4730A4255824BA9E4B7CA7908CE84A2562BA6DB8E38B860671E2654F2C9B669EE9646D683E9F907733423D4B139BBDA51E785A86A97103D8E14D645064B6E02A3AC6BD56ABBAD5CB09F1968FD70A84018692C2866AF2B85EF8031B7693444CD1A9CA668BFFDC9889053980A88BBBE59C883ACAD0F00DD7BA954C487B585910A10C95F571C245F0B415261FE348714C288220EA84D8BC524E438F43F29A9D42A8BA8138DFCC264182AE8CD7927D0CD0F5DA7C2A321914E84F716836E53025E2CA75C8E34B04092752F1B77E9CB872E742AEE71DFE2C1ECE8C9FE82BCF56131EE0774076CBA525934E21CA0387E43D53624CAAACC88AF2A59E234E24E262A1201582437656F97CFAD4A087C622DE1563D2A16758875B03AB514291C7D3EBAC7E44304C32712AF58B079031993CA79E35146723BCBFFC96F16C6AB7975151961F1C3C3FFF9A9EC5940DA90A99BB2CCE3F376CC4D9A417FA715892411B649DEA698678936C35123E5EE8AD4CFB2A85868A94B3344426CA65636D0DBBB9B2448FAA1345E2F7B8DB9A2E14F49581F106AB14779278A6AAA303CEB5CA7C246B5AC13162A9273A9AC00C745FE6F01598575E5348670BB82D8CD04A11A7753FA7729C89196BE39CE7D543E24AB509684256E82825277DA24B84D8F95517B55C2A301864B9A13AB809CB0AC7FF3047E58B9091C5B55DD0C23CB1964D8B58DFB80AECA479EEF16F43EA66E185B6FC263E081458086585B8150B8239A531936E926BA339B79F18461851982DDB2A3069B235B8F15E8D74AED3571CB4A55067E385F3B53549FC4CF02079B8A41626A0AA52C5647CA634A37588402CA812F870ABB94E09C2BF31BBB865DBC2A3F197BD7C679EC436F21684D7773DE6CC551D370D75CC6217BC8DB75431159AA5308570B173C7E90B6B09C16267B0169677610F57580640A536301D6B6B7C58525B6F853A5AA73A05C766F631C0F1C82F6AE54EAC6659F2A37FC364B266CB0FBF8601DC5651DAA87D79FA1852D950F29441982A71BDBB74D260C6B75630E3E80643676C4D59960A445B86D5508DBA0C41F1516F44AA309A799CA626D4CA8B7FC5CD54C623ACC96F15841C85CB1265F5BA3F6754B178A281E8106A23B04744BA248C703F0279CFA055DC3C70B8C68E48DCC84CEA9D725B4BA5B628D9AC62899A460C157752366C00AAC16E281FFE1233E217202FBA0E2BB3CC5C170E1E373FDA503A1D75AF9E7A57CE113706D833AE662429E2774FDC686DEC4A6268093743B718D3CAFE703D2C27BF7B902DD1482FF611CEDF63BAC0847ECC0B25940FFDDF25214EE4DD4E1AEB851878E2493C05E2BD5A30B5B99D369454 +sk = BA45541CE7B3DE134E6B17030710BCCE09BCDBA837F23566DBF1928C99CFFCB674CAB9C41B3151FAA3078177B9126C7973E25687452DA075965BAA804276859B092D9D4095B5E3A27943776DA65262511F62A3AA875B258C7929B502AD6CBA00E3B38011C943310BB5CB24791A71BC5A2796D6197192D9594936089D88BFE976058CA16C152193838A3D7306B312F8160DF15288F9063514A403ACB76BE298F5C92D65A90A0BCB28A4F438EA447A9C881808A18A2F5C3C1B876B3AE94ED28478FDDC1E98A64FD797A0931CC4A18777E5D481D9E92C0CF2B5F5A58635B368CBC8C25DC733550774C0861795939B74E83A23757C212927805663DE14A0FA00CF10F51850DBB4CDD7CAABD5C09B2818CC0A09A58169E3827969518E8FC7BC8325B45656861A848347A358EF1155E5D43F7910A738A132C8892977075C9A19C1EB6399F2E7BF1DBAB593A907BDA509EF5B0DE35A222FC951A0829A838591A0441294C35CA0B86BE6FC02E1EA1B7D4004E5BCBCAA2A280EF37067D72790BB5D59587E050272DDF8B117286FE80C1BBF078E6D259A9B53BD6FF1B43A86B24ADB27BBFA3546C179B8F295726AB768BC7FC8DC2A62715030D93581165F1E4A03D42374A31039D55741C9C49A1C807468CC826F0380B90C9C3F319CF1F73811D674B05C147BB2613BA56365EA04872B9244B236B0D480DD0B47B7797A23286269F97450E13791B205C8AA3310B72F3423B263D93CA320AE1FF04FE6E3BB703A6C4FC17DCFB6341AEB485576B53D1CAB71D9049DCC68CF86008BDB6152994E70152F96C8AE4A0819102BA5077B26086B2DC6B04B324A31AECCB372CC18976BB9DA42C8EBA89640149ACC544511546C5DD293C3173EF28CA92B85B86188BC6FC09E2725307A2C3802C6086F922CDDC62B5989C5A6846496D2BCBF7775A4B3737EE6C6B69CC3373C96E79675CBC781146C7A78824AAE4322E1A69DBF64336EFC3348E414ECAB04010B9F7399310253679B48AF3C23961BF345B35172C1D472F9A31274C730373A29154A581631A0916A21259A46EFA387B36CC9272B5284085709E46F07BABFCC835959D841B3647F51147A013987DD9556111435124101E5D42FF0848BFE2169A49485C094226EC6994CB50BA9F6476FB2A39522A08145B987593F2FE67A2B2CCB036C4E6540145758C6745A389955CE9744CB8030BD85A838A5904198B318A4D265EEA61C70E5A34156BA00A53F05C9BE7F1AC214F6A75DC8154EECCEC7CA6218B34B8E063231C450EA3A8B48F7C97D9C58FED709C350A28A34873CE76F0FC7A4237AAEA0804E2D3874D726AEC41C3AC8E02706DA459C01736B7A5E0936B3ABCCBEBF146350EA2A246C225BA897473817F28C8D6BBB55FE98A48DE682A91770EDB1BDB190A0EFD677A7FC29FC62690668924CB5887F4078179AADE85C0DC8E3529862B2760B187B7778A56C6B026769E339ACA5F8C948801FDDC4ACC3BCC7FF548DD9FC12CD7A394C24A7CBE18D3D22AE3B48BEB295905B217AF384393705107F33B02547822B0A2CB1B57B6FC637E071C0FDBA2F87F010D0C81C42DB454F5C7BE69AC0069C33330BC40532248FD0B90A28908F7471FBCC543FA944038186979C1F5CD147B9F69218509C41C41873E0718D35B8C6C775F1F069BD22339D3C440F6CAF9FE91E3D6B97D2A546E09AB4F6CBC2F5C1481EECA81C3A77209425CCB6C6427AB580B80350B468D9C0795441555B3BCF75343ED3966F69CA80BC850663776AD8E36FAD9023BAF84BFC59668E6567FFB6698FD0B0CF9CBE87462E35B9694303A90B2673A62B85C74664D5055CFEE3AD39FA83206024299745CB7C683479399E948AC2254117F491FFB3311D69455BB925E7426D24B697ED44995EE73D9632459FD37FACD4CC1859B0C6054CF1FC5C02E1AE82C2CF2ED21EA2322E315A196E825C27B2CA1CD0B93B4B9CE8E4ABA0D248460814F5A734346A0577D55E0B680F01FAB8C9A859385733DB6342DBC16DC4CA42777A7DABEAA136F149666239CEE53880AC4267A727920A9CA43C93A3E301A9859E01ABCEA7F8B2BFAA11CD3728C9C0BA4F7C7C89A466FFA3C5F2330A5AE87265A009B33C74D61562CA0132C55B8ABE791B2E59ADE002808EE2BB5EBABEBC314E2D66B66AD566EF98623B721AB48117F3AB234A4BC2E6B80B05F97F10A508B9AB08C0650FE66185F146B0EF5993629B3F7FB646DC248E0690B77557971F02BAFEF88A9864C28E885562EA7B54DC217C5521146122AEF78CB893A99C1C9621A6B51A43117016A7F2231F2380764DD81162A4433D6CA171062704294030D5A3BB9859A983C6B7F009F130444303932F141F506896FBEC852A8A6934E72AD8C038319C58ABEA4C73319DF541CE4086A90976356D001CF6479437B64DBB318F7DB813D5034840E23910EC67519C93E9648EBD1B70EDC3AC24C983ECC4003CF5B130EB251A6199814C715EB54FCC8BA9CD638A294BC2015C8CD7D28736226863A286DD4C0878345D3885CC4B2ACC0AE08A277CC23E397DEE84AD6EC2B4D73C520910B4EB4BA447071DE01311754060195A37EB701045103B59A94D59131FAA1B0A99741BF8B186F44C6F66F76695ECA6932647E408966F7AC4B0B8AF15F1C4FBE27A2037B6E7FB8F4C6738D1A3AA480A6DDED4871E89A9BE945113013D02197BA78B0F5F8008AC89B28AD829E5FC2516DBCED3192242E074CDE7C8E2B11ED1192B25DB395F09BFDCEC8B1A8671975B692C84714BA3049A636494996143212C54058DEB770BA709CEB7659868998D6560C8F4386629331F7FE77DC5F5390443865D1215833C78FF2A6E24E3655CE799F62C3B5F24529C051C28347C3C792FDF8700EC3B6559F8BF6646352D2013BCD704BC2B26C0B8A231ACAFC7675D0E8A0459770F11D04AA0FA79D6062178EA4BEED06057444C4B4A76712201937212DE48941F868FF3184A9A700756A59E1297A71C3912CDD40E6F883295D0A62904A4BE9350EDB4483EE6BD20201D253997D983CACC0A4730A4255824BA9E4B7CA7908CE84A2562BA6DB8E38B860671E2654F2C9B669EE9646D683E9F907733423D4B139BBDA51E785A86A97103D8E14D645064B6E02A3AC6BD56ABBAD5CB09F1968FD70A84018692C2866AF2B85EF8031B7693444CD1A9CA668BFFDC9889053980A88BBBE59C883ACAD0F00DD7BA954C487B585910A10C95F571C245F0B415261FE348714C288220EA84D8BC524E438F43F29A9D42A8BA8138DFCC264182AE8CD7927D0CD0F5DA7C2A321914E84F716836E53025E2CA75C8E34B04092752F1B77E9CB872E742AEE71DFE2C1ECE8C9FE82BCF56131EE0774076CBA525934E21CA0387E43D53624CAAACC88AF2A59E234E24E262A1201582437656F97CFAD4A087C622DE1563D2A16758875B03AB514291C7D3EBAC7E44304C32712AF58B079031993CA79E35146723BCBFFC96F16C6AB7975151961F1C3C3FFF9A9EC5940DA90A99BB2CCE3F376CC4D9A417FA715892411B649DEA698678936C35123E5EE8AD4CFB2A85868A94B3344426CA65636D0DBBB9B2448FAA1345E2F7B8DB9A2E14F49581F106AB14779278A6AAA303CEB5CA7C246B5AC13162A9273A9AC00C745FE6F01598575E5348670BB82D8CD04A11A7753FA7729C89196BE39CE7D543E24AB509684256E82825277DA24B84D8F95517B55C2A301864B9A13AB809CB0AC7FF3047E58B9091C5B55DD0C23CB1964D8B58DFB80AECA479EEF16F43EA66E185B6FC263E081458086585B8150B8239A531936E926BA339B79F18461851982DDB2A3069B235B8F15E8D74AED3571CB4A55067E385F3B53549FC4CF02079B8A41626A0AA52C5647CA634A37588402CA812F870ABB94E09C2BF31BBB865DBC2A3F197BD7C679EC436F21684D7773DE6CC551D370D75CC6217BC8DB75431159AA5308570B173C7E90B6B09C16267B0169677610F57580640A536301D6B6B7C58525B6F853A5AA73A05C766F631C0F1C82F6AE54EAC6659F2A37FC364B266CB0FBF8601DC5651DAA87D79FA1852D950F29441982A71BDBB74D260C6B75630E3E80643676C4D59960A445B86D5508DBA0C41F1516F44AA309A799CA626D4CA8B7FC5CD54C623ACC96F15841C85CB1265F5BA3F6754B178A281E8106A23B04744BA248C703F0279CFA055DC3C70B8C68E48DCC84CEA9D725B4BA5B628D9AC62899A460C157752366C00AAC16E281FFE1233E217202FBA0E2BB3CC5C170E1E373FDA503A1D75AF9E7A57CE113706D833AE662429E2774FDC686DEC4A6268093743B718D3CAFE703D2C27BF7B902DD1482FF611CEDF63BAC0847ECC0B25940FFDDF25214EE4DD4E1AEB851878E2493C05E2BD5A30B5B99D36945441BBD3F5C241A6D65B510DEE6662E2A8F35757B0403DCD375E7A15991A7873C2BAE49824E1A023A302CDF665AEC15B60F7F77AB2A0FFFD5246D07AE975A0614E +encap_coins = 2905F02CE2C10E4AE7BB7F862D1D377F8DF3A1280481E2579D49191D1EE6EF6D +ct = 57EBD8C4C8FEE6F4F42D8B41D4C8D0767C58327915B9E61EA42F3B7DAA18811E2CBC8115347CB7ADA2F84B2E9B40B584043FD6DCDFB1FC232DEDD4EF6F63E030A329969EC12974943E9185B49CE48878BC18C1111F9A9E2BBEED2B8E2F54F3874B23D7D3F55F322AE1402B1BB45FE64390789A69CC15B6BCB4BF2949567AD8DB52F954DBD365C3F4C77C65E0C63E1D42F0F8CB1CA43AC0B51533D3284DE846D09C60B3DD75074B5F8F96283E57D098CCB9BBC58BCAEA4FFF62F146EB56E1666B9BD4A504C2C92FC4A430BE80C5681DEA442E1F7DF35565EB8CECF760BEED95AFC1117AFAE3272E99A8C8ABB795024EF11D43949DFA7DB17677569CAE0F82A0B51E1205586DB6239111005C0E5AF0B2D6DB4A27D26C6618E4B014BADA1587C34AF13C0EC2CD6C624C6A49644F8CB594A5AA305F19F184073C5C9C57700D86B72392235C7B5FCBAA3515F6339B855483F8403356D3610FB76B2A6B87893111DD8EAC0AA8DFE39912DB0DF902CDDDCE28138A2E86D081B30F10FF856131C5838309759720B19F79A90E60F91992ECB7BB18BF94E16136A212E30A2E0FF23EC7CE105B0AB3928FA082AA05940A111AA03CC78A06AEDAFA4046FFB30C2989778521D9826CBFB7571F62A256559D519A700E2E70C2139927FA2240F54E307C30D76A7C4ABC97C3BC4FC873B2211D7A98F409A26B575D893DE6E7E884F900553CD0B09605A79F3FFEB7F10BE8F20F9CA16159651E9B4D284B334AC492F75BA259C59DA3BB1F521320D4E5189D8F4178BCFCF61183BDF142371A84D3A9A7322609DC14E99BC764938870A76D7BBFF2B3AC86C5220D7E9B7937B4B3728901EB0E35DA131B658A4E8F83E05782442080CB45E7C80B8012CB056BCDE83287935B05450B9DC1163B1DBFE73AB2AE3C4407178A32FECA6F5F11E02E2BC22ED36C44E7F6AB2996A5D88B765AAA0CAE96D4091D34BB15AE43FE62B9A2B9A68B7722C180D71A775B6D05C7D37A59F1B27AF8EAAF141ACB75E0EB07456DB015B4494ED1F37B4AD443E3C146F38CA981BCF0C36251391A283FCCA80626D66B4B384B659FFF7E93A3A01833340BE5016A0B12B865A84F260D455BC708A4F0B21DC15AD3F9FBFBB65C1D0C2A540C0E3D4B232F56F25E51585F81E75734514C66671963884C8D23A2C017E72AE31D250BCFBB33416A2E26D7B1919780DAAF61A0DE1818C1A5117D461538245252A10669F6B2EDF59D5BA00AEEDCA03D767FAF004CD401442F72E4DAD1929923920AFAD96059D62A99768978E5D4167F5896803047970E16F9DE9104BBC68485DDABEAA85C3E61BA1F036B838EC1A97B05C3DBC7FBA100EB592FD2AC1F9E60FC0DA82304FBF03C00EEB7BD7871526F8A1F245EB8E0BD5D440C0BAC72BE3D7E46C2849BE903EEB333CD8185D738914824521FD9CC9A4E19F0FE779514AAEAA36E1FDD146EC88255E6A85A18E866B3E87D133D10EAC553792BB7511A612904B8E9B92DA57DAECFE72BE82C57D13D28E890610301B2DE53C254AF93B3E258B1E83A8B10E06D69B476D41294EAFB787481A5379EBB120A5E866D18BE377746307DB60433A77B19120A2E47A57E4382175FA393FC15645D75E20CB8F4CA4490562556AF10A66D0AE25BB804CF3146A9F9559902319F76924D0A9207CECEF8592CCFBBDD1F5496058486B93F3787C202AA871CA0C1501B7F5F0A9EB59E65C1766F38D87DF01CDC6EF73AD42920A6A1959B939501EDAA1310CE46DAD3A9062A465207D519602D1B7B25BC624B7088508413A5A1FEAF1CCAF401653BDA45D0E9D8FFEBA73B9C1EEA2157A28BCAA7050276E3E7D4CA50C017C0A0EAC41A9038BE5CE1CADFB4408D95E5C77EF521D6A85E178EB789CA3F2B714BF757558092D9857129DAC448603AD54493C8FFF80CA5BCCDBF29602D223863DD09E10933A68370C927DF46F33FAA9B5C418F368288411952E8B49D7870BE49089750BC9CC3532FA530170D62BF0C24EF7D01E8F70EAD4B335C8079690476FAD4EB3EE5D56F5A4F47A9B288EB16E947ABB322BF72502562D48CE0876F090F41521681C5870B8DDED153A7A80C241F7E6D425384D1F4C73ED935B3B0813F9F67B229003401CD98875C6B5DDA1987E3C20D695A1C83685AB7EDCCC7B987022B9992A5B1D783E9525A6BFB5D9147850763D8B73246C42EF119C43B16277BA77CD596BD95DD165E9E5AAE23 +ss = BB139C1AEFEED876F8C9748D5A573ACAE7F23B471BBCCB5104F10040666E0CF3 + +count = 59 +keypair_coins = A453BCACDD2B0D4646009E5ED451C3C45F08FB827EF733DB3C517A9DC1AF93E6E39CC6C99EE6FD8653D15505A6C2A713D41B43FA521CFB214E8D1B38440F4640 +pk = 6DACCB26429B4E18C04591CEF2A49A51F34AA224A4F7E0BDBB1950B5B9BD633A1CEDA3C94DA93CFCE38AA962A45A135A45105C6E2548DB96698D581F42EBBB7C4AAC8DA6805024BBB2B0C45806015DB249B4E10F92536495670BBEB0402D0C1BE9B01E47A2A77D29CF03647FAC3730878C7BDDB724F7D8539E31274E20334949A92063634D6C1C0B5A1999460E25259FA91737D2B9A6457588D41041D8D1786EF80EC2951CD0C84BDC57108F02A7AA5297174C7BE5A6157693C07A38242F85B79D16260AB37786E67D7D9A77C953B81A2A4B9E01697BF7A714FCA3D9904795671D4B99B5EE83765A532624B4004FC6044C1840A4D07D45240251D32FBF922EC329542471037DAC809F477FB6BA5B198683443C683CC8494BD1B7BBAC7DDFD39F45A10C77433B868C981B7AAFBBB2C8F2BC8A6E3134EED7BDDD54B9FD1A38DDA8A2AD60B4111B10571928C7B55721C527150668A1DA383B8606F4E1575CE164DCC911AF678A33973C807A159BDC12811B003D68B8EDCB12DE1614707B555A853290870B5E5B48D7774A9D69A116D13808961164CC0CC38325F49C463E41C043F120AF24239C36ABB899A3D37857DB6548BAC59B40E7B233DBAF859AB4554A2EDE21CAD465BE2E3001FC9C955A3B6DCA4612D0763299AA8334B28830E996FFB13F7195598C55A704EC9539BCB9A44704C77CC1E9C2A7CD371D46C02A409215333ACB076BCB2355ACB6C5BEC8CB2640C86882342AE3938059A99AE7A281D2B6ADE8073D1A90459C04A5DB7547B681B007AB996E1A7FD6A030C7B34332854E036B8E99D0369BDAA123A86AB931776E437271A2219AF7A4C7B8B78AAC0365C78D1DE15FAE8C4C397C7B6EAA4D02B06F8DA7145FAB7948B786A78639A4E80299E3C12E5B3847F508C5189D0C735F5841A7F5B34FC7E194F4F20F348475C1D4A3F4E8111C9CC6EB06214C43838B41CCBB6524DA5715E5A2644BFABA69B0CBB54935DB0379B52668E2B8B84EF5600EF76686BB0651F7C43C1C120E20AF9DE18AADA655D48B375B4A23D21C51E1C3CE9E0131B61C345112B5CA302CA9E183443495DA4B309AC898E02C4F70FC7359A57D25778457E70BCA8A1C7B444208B00E24DA7E0FF89C19190675AB24B605295BA862EB732E4A36640B28BFF1CBCDCFA8CBE9F9ADD36B71B3268C116B3E08C172467C80EA05262831660BF35A7D945A8264B228793EF0284B724480B3B54451A7BD9505B6225B1FEE03CFDB599BB024416CA980C8181FAF51B421B86F92147E12D04CAF335A87FA1DBDB2B0E66C0795CB5F65130ADF3BC8EE3BCDFF9223CD74CA9C4A8544208B31CBC7A05B21392B0EE03B9ABCCA42CEF8B5448482D8D8013AC221AE01436CAB30E1C126F6F80AF46BAEB4A828F54735B5513C8F11228EC2AF7D854D84E3688799CE24C8454E326FD0F52FAE773CA5D408568551DE89CB85265115092B960AB9792AB8612C012231921B6C697BAC6BF53174AC50A6EA2AB3F48B532AF51A6F6939D1BA14B694C149B5503F3320F438B731A59B4C22810D1196ED4A90EEF2968D1CCD92327B37866ABAC1C24CF0C2B2228D0E41A3A1EC6A4227A36218B6437B5023E22D43F04B712C2C6665BD2DEB160AA95199146618CC1EBEFCA7691248ACB7C549CB66CDD59F5C4C0470205791C742FCAAB677F966F746721F58846D1AB2FBC11B6F2978DDD282730402DEB863CA1A7E224CCCAA2B34F788987520C9DA9C0C328CAD6DFB46A920BF8CE22F4D265426CBAFB31023B7E748252561CD678BB10218D4E5CDA45488C4B2C1B2CC73C5C163DA9467F02B5CEB4A5ECD136A2B518470719114D1C310A688E46BB80DC38DCA1A092D36A3EDD7C4C6D37074692E266A0F5FB0501E9791F3F90CDD93386C05C93896B950C7681F0ABF8A044AB1227B68210C169B6057528315CA5FAB7AB2C9DC7743D8943C997801A01EB2D9A195D2C6A8710FEFAC2E60702B68523667650E6616CC0B7B5BC50809D1D45E1673BE8DC435B7355B0A26728205AE8713BE0372CCA8169521E574FBD18C37EA3CB6F02AA5C82A5834819254077E1670047997863A5EC7692BC26CACFD8C346290564FB27A50816F2D592277F56167027FDF376A2EA97BE79466A3B86B01286FE54444BBC4C4F32460B2936196E92ED698157064CC073E0F3130DACA54C038DC1085402160513337AF2B6DD900B04DC3BDFCC90BDB +sk = 2D80A415A1B29961459E396204E5B5E65540A2A9AE9CD52D867A9E20952FC7565B66151653448353697B09723B17E3B1EF375A3E260A5869B579883FD1EB3A06DA5C11E493F4CC9D18381856FB2C36223E7214AD78A178B2153DCDE882451776478A4E06B392CE9B9D0310A5A134B42C37312A8932151571D85CB69D9333FF8685569568A0FC4568682EC2F5506F59742601C46DB34EFB9665B5815574518FF677BE1C0991B644B5931B112220C6EEE10C37C19316156BCBF354FB661635E42F6B26B07F9552D7B1A65D51C7EB6A132034BD755674DFC14345AA72ACBB85D4724B2BA14925421E570543AE904F9BC4016BC0389FB9922CB12A393A24DF219290DC506E501003C0AE8CBBC685A25A91147265207F93F190B12BAEBE7CC7EDEC476553762EA45E48694DDD172B6787B7D9719E89D77563C9C2CCB77CAEB23D7AA9181B82B6CBA09AEF1851235C7986194C8322280B4192B94262FC79CEACE4B894C86814D4929BD773E6A73FB0C7C36C67391A314555674CF415292055BB39319DCAA7B07230204C068028B3AE7A7223DF112032D60EDD1B6B52EA1ED13B86231A1EFB2969A691CEF0D219835A44E907BB0CD2CE6DA1442AF1460F2AB882959E0862BCCFCC6E3FC2BDB5EB673B218D6E9C5DC6461D8796945B614C81A68F9CF381D256BC1E63285141814077AF5F54C2C6B487DD29CDB1D2CE08F09122D09632AB823CB00D86A57F8933743F347C203894D0043F5692A6E12283ABFA1B98B39C6D638132EA4B94644E89A0ADC35816BE01A408F752B3215029D7661B554BD39ABAA906AF32F877CD4B28BCC217825AC897D06A4C233462FBA602A81321DB93279A19BF44131B86035DB3C4CA911F1FA30146F9BE0333650C3C24A5C85BF5E252413853DEFB040F8A16F4ABB9E18CB3D496A69B356D8206C106864C7464A7A7EC5E998B3FD5B18DF1D947E171272EC5AA1137CCBE50AE73ECC106250C0392A41A73A4861ACEA19257BE33CEF406B7EAC1796F605A709A4BC06BBE40867966E830E8AAC19AF626A4642A8447276F09CFBA6486564079E1AA38D7E179D9634E3398B743A1812F02818E979B4434A4516C2C77672600D5B7D3BB6D7E3253189C3694120DBE2519C62C80558AC1D522855682962DF611FEBC9F33FA27A0787501A42802863B5CDCC6AA81B964CC2C9B8081B63750A6358DB5566A0D3229D2989E98199855A2448F54688ED2487B816F5CD651206350FBBB5CDD995A9DB37B089CAA57AB0DEDDC9392EA1C0F99031A42C350CAB7B6F54C1E4ACDD0E28D7975A188502FEF055FEB5889BF87929B6006562626335B05EDFC544F10CBD927AB3C4C9E806700349B9A0099801D5948CFF3BF0977A9691A25AC880D593A36D1E5436EAB078BD9A6BF25BC3D6B5BDFA02AAB06AB5842C440E40D430AAD9311015A8767417B233FA8CFC64914533031AB39B845A3C50CE00BA0F1A586053768EA48293044F3A831B456320600404761C7E826A0B111AE37DB49B31BB3E9389BD3E354F08879906996DF2036AC49B9C773AF5FEC5375519AE7B8C61CE475AC544D13A5B421B8A686251B6D1C64F8A353406248B0430C8A3A308B600D0C9506D6509AAC9A46093564EAA957B62B0B18078325AB1E847521DCA74F5F212B013AB90693C3725729A4888C50533A27A83A436A627A3C1E0BE10E35D1900791CC598413A818BC2F58687A502FC5F747AD365DD3348B3F96A9072C521923A513540AC402AABD74A5B364912EC36260235162492EBC96BCE5C8A718E124C0669DA4D0080117B07680CCFDC79EF10229CB8388460BBE664255513C71BC2243A2CC2A1122218581CC540514AD54365696245CD98ECD445653766847A03794959F15CCCED05863E4656BF2571CE6445E9393C95BA11E5DE102C358517F7672C0F26A34D8C7BBBA5CE9ABAD9C8B4A6E9788B82BBD399838E4E138C7C1619CA8988A05CAACF14A6BE164C569444D49911525398D0A460D257E61E6B8E0D2614AA0B55AC0435F34493C298AD719A9900B94ABC08ACBA78F42195637A464FC180013BB081BD7A4A8F66909557E85784780C589AECA24402125B661A068F81D046716E5B5072D754A6878004AC9423092A3E051521CAABE98E955C093AD95D74157918960157DD5383702F3ADFC65436DACCB26429B4E18C04591CEF2A49A51F34AA224A4F7E0BDBB1950B5B9BD633A1CEDA3C94DA93CFCE38AA962A45A135A45105C6E2548DB96698D581F42EBBB7C4AAC8DA6805024BBB2B0C45806015DB249B4E10F92536495670BBEB0402D0C1BE9B01E47A2A77D29CF03647FAC3730878C7BDDB724F7D8539E31274E20334949A92063634D6C1C0B5A1999460E25259FA91737D2B9A6457588D41041D8D1786EF80EC2951CD0C84BDC57108F02A7AA5297174C7BE5A6157693C07A38242F85B79D16260AB37786E67D7D9A77C953B81A2A4B9E01697BF7A714FCA3D9904795671D4B99B5EE83765A532624B4004FC6044C1840A4D07D45240251D32FBF922EC329542471037DAC809F477FB6BA5B198683443C683CC8494BD1B7BBAC7DDFD39F45A10C77433B868C981B7AAFBBB2C8F2BC8A6E3134EED7BDDD54B9FD1A38DDA8A2AD60B4111B10571928C7B55721C527150668A1DA383B8606F4E1575CE164DCC911AF678A33973C807A159BDC12811B003D68B8EDCB12DE1614707B555A853290870B5E5B48D7774A9D69A116D13808961164CC0CC38325F49C463E41C043F120AF24239C36ABB899A3D37857DB6548BAC59B40E7B233DBAF859AB4554A2EDE21CAD465BE2E3001FC9C955A3B6DCA4612D0763299AA8334B28830E996FFB13F7195598C55A704EC9539BCB9A44704C77CC1E9C2A7CD371D46C02A409215333ACB076BCB2355ACB6C5BEC8CB2640C86882342AE3938059A99AE7A281D2B6ADE8073D1A90459C04A5DB7547B681B007AB996E1A7FD6A030C7B34332854E036B8E99D0369BDAA123A86AB931776E437271A2219AF7A4C7B8B78AAC0365C78D1DE15FAE8C4C397C7B6EAA4D02B06F8DA7145FAB7948B786A78639A4E80299E3C12E5B3847F508C5189D0C735F5841A7F5B34FC7E194F4F20F348475C1D4A3F4E8111C9CC6EB06214C43838B41CCBB6524DA5715E5A2644BFABA69B0CBB54935DB0379B52668E2B8B84EF5600EF76686BB0651F7C43C1C120E20AF9DE18AADA655D48B375B4A23D21C51E1C3CE9E0131B61C345112B5CA302CA9E183443495DA4B309AC898E02C4F70FC7359A57D25778457E70BCA8A1C7B444208B00E24DA7E0FF89C19190675AB24B605295BA862EB732E4A36640B28BFF1CBCDCFA8CBE9F9ADD36B71B3268C116B3E08C172467C80EA05262831660BF35A7D945A8264B228793EF0284B724480B3B54451A7BD9505B6225B1FEE03CFDB599BB024416CA980C8181FAF51B421B86F92147E12D04CAF335A87FA1DBDB2B0E66C0795CB5F65130ADF3BC8EE3BCDFF9223CD74CA9C4A8544208B31CBC7A05B21392B0EE03B9ABCCA42CEF8B5448482D8D8013AC221AE01436CAB30E1C126F6F80AF46BAEB4A828F54735B5513C8F11228EC2AF7D854D84E3688799CE24C8454E326FD0F52FAE773CA5D408568551DE89CB85265115092B960AB9792AB8612C012231921B6C697BAC6BF53174AC50A6EA2AB3F48B532AF51A6F6939D1BA14B694C149B5503F3320F438B731A59B4C22810D1196ED4A90EEF2968D1CCD92327B37866ABAC1C24CF0C2B2228D0E41A3A1EC6A4227A36218B6437B5023E22D43F04B712C2C6665BD2DEB160AA95199146618CC1EBEFCA7691248ACB7C549CB66CDD59F5C4C0470205791C742FCAAB677F966F746721F58846D1AB2FBC11B6F2978DDD282730402DEB863CA1A7E224CCCAA2B34F788987520C9DA9C0C328CAD6DFB46A920BF8CE22F4D265426CBAFB31023B7E748252561CD678BB10218D4E5CDA45488C4B2C1B2CC73C5C163DA9467F02B5CEB4A5ECD136A2B518470719114D1C310A688E46BB80DC38DCA1A092D36A3EDD7C4C6D37074692E266A0F5FB0501E9791F3F90CDD93386C05C93896B950C7681F0ABF8A044AB1227B68210C169B6057528315CA5FAB7AB2C9DC7743D8943C997801A01EB2D9A195D2C6A8710FEFAC2E60702B68523667650E6616CC0B7B5BC50809D1D45E1673BE8DC435B7355B0A26728205AE8713BE0372CCA8169521E574FBD18C37EA3CB6F02AA5C82A5834819254077E1670047997863A5EC7692BC26CACFD8C346290564FB27A50816F2D592277F56167027FDF376A2EA97BE79466A3B86B01286FE54444BBC4C4F32460B2936196E92ED698157064CC073E0F3130DACA54C038DC1085402160513337AF2B6DD900B04DC3BDFCC90BDB290261FF6A1D2FABC75FEAB002D16CDC44BDBDD0967C728EBEF0E9814C60B5E5E39CC6C99EE6FD8653D15505A6C2A713D41B43FA521CFB214E8D1B38440F4640 +encap_coins = CA41A891E8B3CF62F7CF5E356FA7705DCF26478B2CF2561A0DE208DC06C02059 +ct = CE81A02EAAA57AE2DD409010836084997A50D5EBA87845C51926137BFF88B66BCC5CB918827F7612E8F084E96C914B92580B91F70EEA04C3BB9A5EA999440648620A5B0EAA4B295A532131C9C441055844D047336ED3FF87869EF3C760F330B231DDD41D58EEA12F2F185A6C55AF223A8C0F022D5B391AB95A1D9DF3728B8733FFD54864B1072CB13DADD13C0B8FD23AB360062BD355D01AEE2B1329D43988654D88E971A8C0F2A95973EA7AE292EFF44A00323D6460FF1A13026EFF41689D6E6E87025398DAFB147D88A8C0D4E941CAA3AB6ACBA54C189F6C135E60A713DE6B3CE5C3C9814E64DFDF5E41631EEB39AF3B4E852C826A561AFA619B79B7D9453076EF743A053248405EBBBCD9417A7A56F4D89EE0B976F9A73B5911A62DCA4D1421451EC3FFA7685B54AFF5E9DD485E40F60CB6A40F9386DEC5151E319A0053F7F22155B35E53B0425557843D3DFC86C179B51E14956177360BBC6284BD4C91FC5852D997DC8F6346EBEB3D875938F4B4934EE00DF558227C4450E41867D991CCEBF202A4893334B06B59501E8604F4279F24885443F03E97F124EE7869AEF747462618CAF2876D305BD9A587E4EA919F62AA3167271DFCD00CCDE883759A4CF42230026D0CAACCA0D0DD0C2F9FE1F848B4F65D9C4D94C9A80D55D99B791DBEE01A31422961B87D27F2305BA7E43FCA4B1FDAA195B4657766E36F0880F423BAF1613DFE7FED3F00A84CCA15D265E3689329D9847C37D76AA09F3B0A1564B0754D87C56F25B617C77CBB3A22DC2F0822BCF1BDA2AEC8957A30E97587CC136B81D533E566FE507FD8211DD491AC1AC131CA4E0204888A4064F1AADA554F4E4BFFB72385C527FC643C97C9E06C879E74A361EF7E9DFD0C3FD454E674D934F14130A2D2A17F18DEEF2F7A921226C3E85E322979620A13380C7DCD9E51B2A62C73F8606A95AB8F00C12E7A3AABE8AB14B565477CE40E02E329AEC955579A63C07E2AB26949F97B26DA553A7F3CB5F0779405944307302A5C3C10C10DE2F8258B3ECDC48B42D32D99DA3658ACA38694E23925640E85FBC1B7410779EC8F1C55AC44748E8F00CD7BB92E56862A484E1932C0D4C071DC6259D5A9E96898A05128F0BB63B05058F72162C171AD2AA5847AAFBA4389D23B78C495735FD9538AF92CA5820C9BA8AFCF4BE449B0E11789B590BC1158A1326F0A8F36442250C48340009D89EC6FF3F56597D4AE7A27FA3A1B4630FAF5F6589D556BC9222A735B9CE0D0C0946D472340CEFCE373DC4133A87DBA22CA0E3837971ED56F4C4F9365224A14F02DA9C601C97C3E783CE63F5FA93124705A2E47019E6C7977E7CA926482028CA32471705BA6A96F678FB94052CABCD7D4B49A4E30F32A9F7742A87A3D5AC41C1C374149876D1F1E028AAB9149D2022527F96D420852FD34EC2BF7415EC5C3820F0B26883CC9332B81DCEE35517A26648618C438524BD7D2283D03C0855A1CFD4C273C2BAEC033E8009B122223BF5EB766417B9A64A729F324A1E158EFA70351148F85E52CF3C68F8D7C01AC59F706B28FF9C159A0335A08EC023986047707B00D4BBD35BE5E79A52E700359CF2472577B3072F6D6D72BC1FE5D18B24C75D174BBC1608EE782E121BC086222416CDA177252FD7A20246B55C9CF03CBFFD08247B4F2AB3C2343B3749178C95EB94386DA483600F2C4D4C94991CA5CBA19D8F7212A60E7C562E744B67741A5B93F790AA694DE8034CF42F793BA8E3209722AFA6820D316EF8FE7C321486687D2143B0DB24D94F1079B90F5F9F1EFFF76B34ACCC14CEDC50A9D5DA1B322C7B4554D26876CB8375FCD0C871007720A3AC23181988FDC961429143FD1E1D5F94E6AD12473C4F415A8CA01D8FF0DF40E6F4498AA36AD9C214C8E029F5834B025B69306A8220E60B184695471E5448E18F5D47D277B8B67817D298520100B463B00773AB8202E048E45F221538BA47AC00B858A16727BBBA3E4DD77A47C6A2E11756567667E5E8B8D5CDECDE3CB8DF69543C79669C944464DB4CF15976CBDDC13AF419AC4E5109152AA804ECBD6F8C8F9141510D7797033620F6208C479F32F0E3E53C29623E155F5A3733988E0DD2AEDC0F437FE82EFF4F47C0AF15898F72174BB06281FC6F899851AD050F0B487A3AE2BF0B913A94016496398328B92742951BFCEB15F57A87BC86D2004E3CD8D31200AEEC85596926D32592C +ss = 96E645644A519783D5EBD4D7A489B9C2F9DB4ED53A3B1F14892C80407B25F903 + +count = 60 +keypair_coins = 47CA2B77C5B717F423222C2730CA5CB9C856BC951D01B2B2C80BD76CCB5539B7D55EEB68870B6DF148654F14EB4B3AE9084B40F8B5CBC83FF4C419DBBACBD190 +pk = A8102CF7E4CEF04582BE990060177980606196D12EA824CA65D485783A32E42A4E20D41806E8AE1C51544C63C3156A42BD8ABE55E36BE37C6BE6A51EACF02274EABB03F64C4DDBA2A6806CCE943CF338B09F50C5123C4083446802456CE85248DAAC7E5D9637A541C755B03300B43C4DA96164C6C42C3910D36522E34895055C43847459451B8022D39A2C287FFB85C8459C31C2D183F98C684A959B2CD0A224CBB38713C4034A6668E14CAC3C8F9D1B95EE6251F285835444AE0CA4BC2B9AA40CCC564F7943E9BB697F76475C5AB3EF3878EE51C62D244502A3A044F4C95FDB42A7FA0300D079CEAAAB0F5720A1BA852FE7148D4A1642D1330942C81B27882C631C3CA3758F56B7718475404BA20CB8B436BCC1116690380507D02C63E62AC58F551072CCA75A761F237B5ABFF58B2016242FB910F24BAAEAA47DBF010600881FFD228AAEF714C65B496795BCE329819418C26321B5C73CB603D15FFA162901F386E9E815940BB5703477A996B313B50BA05A1D41AB65F233ABBEC534C106224C792A3DC14688332A8313408510386253C7EB076711EC35F6F929C301422192B3F611B36B97AFF38A94B00764E9D89F38072CCD6B978E1A31E391CDB2CB3F9E344BA947A73DB91891B944DE4935D48A5663F85C94BA6ED8A3026C278D645B7B593702733865F12A3CEDA3BE2787A1EFC2A2FC2211F405C3AD1C8C46257059E6CB43F36CCFE6231B730040849233D03B7E90076A7792F865467B6548E541BFAF5B7C3E6059CB426CD263494C641BDBC7616AA8348C6335D42719C0E79AE52931A119856C168897D48DCB44242C505C535698A35CBAA9F80A8145927AF6653D31977E827625E3BA18AB7AF3621DF248434C2CC5E9324F34C60E1FF1253B4904B1952BB7E16DD979C03541A6BE9BCA09632120AAAD6C457942B0077FF01B6808AF3FB82D390573BD666F4B89A44D4B80A49B86470981614BC6B0E3CAD5EA399E2255E030833485BC69C5C94CC48BBFE7BAE3754BB49A2FC1A15DB012BE519AC8802A5CD005A6ADC31ABE237D9C2924134235DB04B78C96876B084D41C62ACA10008237A6F0C12600FD134AC59808418FDE238AAE358E34C1153842A31CB030BD97AB2CAB83F74164358A1A077591C356162D53970AD65E21A994123C4000277D72CCBD0D712026217DE9054FE9B38C61FA2C80871BA83A88BC98105E693A15F2213EB957CB276691D4AB70C9B3EC0B3E4E846979C375AAF9B13E075A83267BA7A90A770717B14B40673591E986A1DBAC4A87B111AD2854899808DE206E6A768770E84023931BD4D996238430859A6F7628964E4465E5DB7A9F5A0A77272FFA95A9AE759D47E1885AE6A4E3E78493A25153387F008A74ECE68A67A8224E19209F20770BF4C8CB15CC39DC4147549C8CC599B760700DB4591B284905562AFE554658A07FF22C8645E29006D331BF09936085C4E7C345E2993A7332C9B40124D375C40E266A251002EB03B5DAB50760972B7E9785DD585DF7C6488CE9218C0171DB28A99FF7A557C34936780FE9AA78BB395885085E0243887FFB27030393D925CDEB2A2CC3365EA95B5BCBE4B0BAC9BB32E1A90B009DE0F6BE8EBB3E684514D2425F3F1688F54056F41C8E364B5E89859478349C793A70982818C28A245F690057095B320B2773206A3A856445290EA1636F5029BCE3D8BAEEF0A73F912E110570817BC66D9B8DFAB95DA8B270898B6E30F28418AC5233A954F05009C2BBAC3CFBABD0DB906188ABE7B72CCE5001496360758CB477DC2EC02A590621C93B9067ED346378C419AB634D95267DEF3148A594BE088BC349EC9669E4BBA474C4ACA165E664986C34A0DFC5C5C4781A61063F10F2C175693B5B5CB7C9B74442050F5D9421E6900CEFE35BD942B49E469787471F43B35EF0C86340235525D50904263B2CC052757B01B75414027C9D02DB50B4E47E5CB19F6DCB5AA93B3E4874740CE7B99C5A4387D392F686A215FC5B5BB1A9788565DE9455BE321B50A39105A33E60A9533B506581D03459696192C08626009E723B228DF1CAC15C645DB16FAF697A7DF68D71A56CF263639AA0185ED25BAE84551C60205FE6B98D9328DA3604D8D1C70D84C9AD68CBF266BAEB8C6B3B9716EE50A8FB5A25BB6A32F0F971369601F9552A52367D9A5D375D06EC7863E051CB44929F17A4656A2CB2C58D8D457897A1AA0D +sk = CA481DB6775F3D276A56CA0E60CA79BE147E63B6898F4B814C69A06F55111C9824CBC1C109A01A7BAA259DA651A1A51D60BB358432550BC1AA1CF3656E0667D726C69A39AE564BB99162C824634B8B8A706D82175BD9657EC09A308B51A3B429822667A5135FE4350A8B3CA10E8B03B6DA0BBD616CEEC0A08476909C6182EF0314B284CC3F43C337307FACF7B617348779D7493AE0A25D415124BC5D9134182169238CEA1A46A3001A8165713A3E5C16AE03A477207B99C2CC674FCBB14CA439FCC3032E4C2F1E92841D73859C76CFBE245193816D87C12BB3F12763174997760D6887A429A37F78C32CC1AC8FACC587AA235821C254A2341B7C6BCF8B52C908836B67D39D63458AFA9530FC2748DE4A698AF346F8B5405DC7B43B05953554021AF73C585B6EF248C07ED23116BAA18C845571823D25CBAE0AF57D4F6AB2473B5919CBABDD7B4CCCC1BE89150CFC585953389172590EDD61C3885446B500495247AED57A9FB1140CEB6B29F7F9A9F524106D8CADA3432C12468F9BFB9A50B920CDE85654C25249350F6760293DDAA28C771963497C4C5230C05862A4391330F54CADC3B0C92B9798F5BDF8B21016725AC8F565466464C2033872684608111248FCCF94C61337EB6B1A9017E342C29EB2B148936119797FDB2757BEF51A9A2601A00C6F0547B1831B1CA1118CD2E1CDD601A0B491C588CB5ED88AC36AE183848B9F87264CC5B020B2E965E5B89FF74C58CD2B338177BF1350AFDA9A74516A5845381E5FE132B4089506E8CDE6346FCC760759592345927C5C6A97045B0AD3973E806778759B35988953C80B3E7574B7CAA225C744372EE3042E07CCE978A3F964395D40176AAB7905A4BBA98250F594C5A96BAC41851E09F897DF0376A89516040C1F8FCCB93D44AB474C56913826C9E2171EF67510B53EB31153FC028B3625AA7A353BBE79CC76D393E209115DD00B5D6C98F80101705544604351CDB87715618343BC3FA227C1E9FA1EA3989390B02C59EC9174E5165239427592A2D973774CA62DBD9410164BCFD95834C11621F7DA54DC55C44C594785FB0016448F2CC39A05E01D8581658A2410CAA630347C3F0F6C86F344816BD13B3A04313A730F2DE9BB50659B642353F6463D2E2A1A78B722287616CDC266B01098B3544632152DB3B23938D67C63E51949496E13182326D5B7D70B81D90CC6C5D84D4E5907833A7A76D3850AC4993A696C4B210DCF352A32B4C83DC9114305308129BB4FF73A91D733303BCA92FC0083D95D32CA54557A6FF3C42C2BAB46FF913E1D39BA3F6092E30AB47F9985C7C439448C92B245259D388E291C04DE427F378011CA983B21B2BA8BEA9D6EB36001AC4FA5061EE1670066F9252524848973782774CFA795A2285A2669515D4FDA7093BC54439753FB6B4E6B781EEFF574155B2438E074B332417D751EAB1BA1475436E8FC1B670C3928A3553D2BCFD1A59C46EA2542884F91F98A38D42ECC026EBCF91258ACC99A50AE1EDC88B90C98B74C3961B70759F39B3C20175FA80386376CDE2B66DFF213151B800921AB6932B45B720932A540C79CCA0EACA0A9D5BC841C3ACF3C08096C0446326114F05CB09745EBB986DDB76913FAA6D5F411CFE987B5808D5B525759F50742969136A5089B060DDCC66C93AA7F94EA179EA896834BCB30147EFFD42753C9528643B5026B5BCF02AA1AC9BE4AC5525F734FC1049F93963FA046B0FFA7647FCC19CCD2A89FE6582BFBCD70CAB789E0BA67C6387462BD1DC35302B29AB65B53EE8CAC6F7B5CF257B437819FD9AC402019563ED5104DE97953453BB139835C67415515AEDB810455855E63B5A442940D1AB85D8C80703141C9BB0A6CCAA6949A797BC0658F56065822C52EB14AABBEA75C434A22409578F2B695864803C32649D9068857BC4CCF492DDBB216CD73BEBFB517235218C6DA930F26A1F7353DC2C2BCA039B5EBA4CD9FB3531523B1D5200C3C822C135B03126154699420E036BA827C849B285B28B81EAA64ADF41B33895286EE8410BEAA4A1C637617718F26B3A206593571160CFF48437B5187BFD5830EBCA6D2204584F822703075A40076B403AAC5AA32DA5A8E2AC0160FC8A5B5E871478C30D523C9F1967B4FE4AEA55976FA803568C6863BD50C7B0756EAC8AE8DA498A8102CF7E4CEF04582BE990060177980606196D12EA824CA65D485783A32E42A4E20D41806E8AE1C51544C63C3156A42BD8ABE55E36BE37C6BE6A51EACF02274EABB03F64C4DDBA2A6806CCE943CF338B09F50C5123C4083446802456CE85248DAAC7E5D9637A541C755B03300B43C4DA96164C6C42C3910D36522E34895055C43847459451B8022D39A2C287FFB85C8459C31C2D183F98C684A959B2CD0A224CBB38713C4034A6668E14CAC3C8F9D1B95EE6251F285835444AE0CA4BC2B9AA40CCC564F7943E9BB697F76475C5AB3EF3878EE51C62D244502A3A044F4C95FDB42A7FA0300D079CEAAAB0F5720A1BA852FE7148D4A1642D1330942C81B27882C631C3CA3758F56B7718475404BA20CB8B436BCC1116690380507D02C63E62AC58F551072CCA75A761F237B5ABFF58B2016242FB910F24BAAEAA47DBF010600881FFD228AAEF714C65B496795BCE329819418C26321B5C73CB603D15FFA162901F386E9E815940BB5703477A996B313B50BA05A1D41AB65F233ABBEC534C106224C792A3DC14688332A8313408510386253C7EB076711EC35F6F929C301422192B3F611B36B97AFF38A94B00764E9D89F38072CCD6B978E1A31E391CDB2CB3F9E344BA947A73DB91891B944DE4935D48A5663F85C94BA6ED8A3026C278D645B7B593702733865F12A3CEDA3BE2787A1EFC2A2FC2211F405C3AD1C8C46257059E6CB43F36CCFE6231B730040849233D03B7E90076A7792F865467B6548E541BFAF5B7C3E6059CB426CD263494C641BDBC7616AA8348C6335D42719C0E79AE52931A119856C168897D48DCB44242C505C535698A35CBAA9F80A8145927AF6653D31977E827625E3BA18AB7AF3621DF248434C2CC5E9324F34C60E1FF1253B4904B1952BB7E16DD979C03541A6BE9BCA09632120AAAD6C457942B0077FF01B6808AF3FB82D390573BD666F4B89A44D4B80A49B86470981614BC6B0E3CAD5EA399E2255E030833485BC69C5C94CC48BBFE7BAE3754BB49A2FC1A15DB012BE519AC8802A5CD005A6ADC31ABE237D9C2924134235DB04B78C96876B084D41C62ACA10008237A6F0C12600FD134AC59808418FDE238AAE358E34C1153842A31CB030BD97AB2CAB83F74164358A1A077591C356162D53970AD65E21A994123C4000277D72CCBD0D712026217DE9054FE9B38C61FA2C80871BA83A88BC98105E693A15F2213EB957CB276691D4AB70C9B3EC0B3E4E846979C375AAF9B13E075A83267BA7A90A770717B14B40673591E986A1DBAC4A87B111AD2854899808DE206E6A768770E84023931BD4D996238430859A6F7628964E4465E5DB7A9F5A0A77272FFA95A9AE759D47E1885AE6A4E3E78493A25153387F008A74ECE68A67A8224E19209F20770BF4C8CB15CC39DC4147549C8CC599B760700DB4591B284905562AFE554658A07FF22C8645E29006D331BF09936085C4E7C345E2993A7332C9B40124D375C40E266A251002EB03B5DAB50760972B7E9785DD585DF7C6488CE9218C0171DB28A99FF7A557C34936780FE9AA78BB395885085E0243887FFB27030393D925CDEB2A2CC3365EA95B5BCBE4B0BAC9BB32E1A90B009DE0F6BE8EBB3E684514D2425F3F1688F54056F41C8E364B5E89859478349C793A70982818C28A245F690057095B320B2773206A3A856445290EA1636F5029BCE3D8BAEEF0A73F912E110570817BC66D9B8DFAB95DA8B270898B6E30F28418AC5233A954F05009C2BBAC3CFBABD0DB906188ABE7B72CCE5001496360758CB477DC2EC02A590621C93B9067ED346378C419AB634D95267DEF3148A594BE088BC349EC9669E4BBA474C4ACA165E664986C34A0DFC5C5C4781A61063F10F2C175693B5B5CB7C9B74442050F5D9421E6900CEFE35BD942B49E469787471F43B35EF0C86340235525D50904263B2CC052757B01B75414027C9D02DB50B4E47E5CB19F6DCB5AA93B3E4874740CE7B99C5A4387D392F686A215FC5B5BB1A9788565DE9455BE321B50A39105A33E60A9533B506581D03459696192C08626009E723B228DF1CAC15C645DB16FAF697A7DF68D71A56CF263639AA0185ED25BAE84551C60205FE6B98D9328DA3604D8D1C70D84C9AD68CBF266BAEB8C6B3B9716EE50A8FB5A25BB6A32F0F971369601F9552A52367D9A5D375D06EC7863E051CB44929F17A4656A2CB2C58D8D457897A1AA0D7FFEFDA144195D79E581C91CDF0247F4346E811F890F54F25226B4AB835871A4D55EEB68870B6DF148654F14EB4B3AE9084B40F8B5CBC83FF4C419DBBACBD190 +encap_coins = 7343358FD131BC289BAEC8EBFCAC5C52C29A86C89F8A2B89C695D8A9A7AFD491 +ct = 44BA7B437C78913DF29CF0812EAB3DD51FD8B5701B05CB1D2A1D14B20136FA7E9D9E5D7AF26DC9510804D7618CE92DF82632C259799F112C493B1750D8FCE272605059ADFC5B1EAF80A8174E83411D0372CA39B58CB01BE69D365DA52BFE1AA11A6E791D39D585B8B12A0EA927F75A7F395ABD370968BC30EBC8FC669C5A57CCF78874396B9CE7CD8D8C631B438A3B68A617091D530D9DB901A015C74E3D4EA6EDFA35B5436767068B1E89674A4F568D06E7044F1CAF8081AE5A265E8599BC90775AE1CF9CFC974A32A5B8A66A6A2267EA62B9579502B4EB5502E36AA98D8A2055260DF975D4CD01301222006B592F177EB4842BC7AFAA03A382FEA660A9E474357154866DD1E4038FFFB6D071F320DE03E6F2C17883FC4BF5340A570A46F237F4F89B84BDB78977BB216199B6E27A7D1B5191E0D5C070E1E2BBCF147712A5F430EBDF7286BCEA15422F494FB369DF448B6AFC4E138D98CEA211829FBC0393E71CCF445D594565CFE032F1887367ABB78E255637FFA20F0F1B1F228E2D69ACF1B2C106ECB21A373059032AA5487A0DA5FB17E76E8DDF5F8421CED3873129D344E27519D0EC5B742D7AB20367CBC318DEAB45D41C8DCEF9088D94046ED88E0D56B9968B71B9829460FCBE2D671DAC8EEDC28EFDDBC79757D3C2129A30A351AD105932E32568D349293BE600F4E5059C2C59D65F965C07AB0AAD78538DFA5B168B658409AFB87CB8F3A4FFDD35FBCFF9229C7F486C5595658E2B4053F3DA216ED4D426615DC7D5A082593438936684FCA464F4C4354ACB7C2EBB2A25D2F807707BD6550211727D9FC7D81202FECDEC94003D443110ACFC975B2F32BF698169354D9F26280416ADF6D427DEB703C8035AEC163DC2F8DFFE74A0F7F2708F04999BA13882A7150CA7271789B5524EC6A10BDABE56EA3CBECC9512A3816D3A57941A95BC4D93389C4C957FFD4562C9F2772BB3E87890DD8BD0D4FEB01DEBDA6BE1970A09A0FDC2D73560CD5EADE00D096F50E6D49E26AAC8CB171AB6C97FA8C50E0CB9B4BAA426BC2DFD4FEF92D5F8ED959D0D38D44B7FD5CF21AFF1352DFF1AC9A7465385228DA57CFCF00CB160D9D0327BF50708869D27CD75D02642B86E6818C686B8E42F820A0D5ECB02A4E61DFC198D6A02B598224ABD674556545D7CCC990167EF10FDDBBC10AF57D435587C6EAE55F061C544B839F004725FD3D71A5EF37A7D0DF88E312C1A52D81D78DEA4F271A98F2F6917B9B87A5AD96838DC8F9845EA84447BFF19B7A931677EF0BF57C9C28C8FC85EDFB08FEB73F743DC300EF9E9160802EA150C8CB740C80B242BA7A7ACF0453AE36C930DD88F32B1FB2264AF22C6127DED256F1BBEC4F464D637EFEFE11A9E81B3810B6799D42EB0B8A887F7E05437CE38BA58C35D054B1DC2D159196DD04237C5B397585A91C25E76940F38CE7DD52263B4735DAE9B53E440F302483066A3AC8C7CAC9240FBD4C63AF16D71BB2999A45E6EF36E3E46823888B59A1C2181E27770F58698B842CA8C5AD73B716E37D9BA95DA5F89986DF967E19F3298302F14602558DF2A860FE8A1646CF81E23BFEA2544D3E89B8A58407E237CA5497EDAC27BD460C78AA9CD565EE02359AE802D7FCC122742F6FE90A82232E15F21A0FF18601D4FF82B767F6AD705C3753E6BA150DA3773C0247020828FD5403A5AAF37420FB66B4FE6FA3E82E4FBCC4D8855D5E3339FCD9082D6835B0224D529D5DC2BCFE113370CBACE2A00E00708091937CA187C8A7CDF7488128116A89A1A320729B78F2D3A75B1C820EF3F9E1D0E1ACB46E3921ABA00D09D6932464F968C1B4F1647C27B2B27D3BAC4C3EC75B4D2B4BF6E0DFA29D23F7267DCB51FD763F10003A569BAD2F3C03D38D34190FFB00B15DBE55C263C1906D3593FFBD7A93051ABE2CF099F70405683BF94D9950875E3A63ED9F029013958D0B4929A7DCE0DD195B0215DB0D9AE503E58972ADC71071E95F49C4DE82A391A312D2371FAFC32B46A4F8C7E92C3FDE96E533F77ECE0CE1C4D73411E7C243FF55FAD0302F7FB204AA86D26F0A05F6F87635A2314129E83213DF82CD1CC9B404D429F5712CC0E736FFFA0ACBF7A9ECAEABD72CA53E8AA81E879A5ED49E64B5A1E76EF93676D492AF9C1114BBAE9D123896F7DDF6068932E6EA2343CA0F819DCBF2299BCF9BE7E4AB8884005F501F617954F116B63C90C1720091619D5 +ss = C7F2C4E84CE91004D3188FC18739F0E4C3ECE47F76C3EF22B43B7F3DCA97B559 + +count = 61 +keypair_coins = AAF6EB40E596A5E3E8218871E708B089240DCBE7FD3641F0E5E41E071CE49107AACC8BE341A319F425312EFF5DACB31E6E772EFADDE7250DB9F613C13B454565 +pk = 9F711EDCC2AB20E136F9412F7151BCF330987BCC5332408392075A25C27E3747C65B5206A91483EB501B48CB5E07D501579B5093255D5E565CF5CA6247064DDAEB7E909A190DA61348365C1C508820208BA282B5D48199D7A947CE9946F633BAE9D24EB77680ED38B46379BC96B87F3DE694E4C759375AABA76981494BA5CC7419D9C67AF522A744A506E73CCC5AFC2CF27663E813BAB0C82C6C64023FD4CBB5B74D6D5BADA2A33EA3F407CF5239FDF56BCBB455F39B9D69813662281947659534F9443F84266937C1000D8CCCC430D5F9821126B9B28226D8A8C1D7A247E2D0CFCE23C52C3A2C92FBBC45A86394500F7D984C9103BB77030B41B6C885B1CA1C8B1107878069D2BCC23B52A38651C8090F3CFB023826CB84089809E9ABDF107E0B261A8CCB3CB8E10434ACC40312AE18B93B89323C3A7676D0827BEAE3B4E7407827579EFE5750C47A322BF76851A762CAF62CC64370742AC715F182C4E6A77F47C5F23644F42010FC029C49C538C9B821C7761C1D2C27D7096C9F66AC8801660BEB39CFD23E531603C7145D61668A612B3406D16FEEB67BC5578BB972147FBC5E3F14059F55C8941177CF24910D1C94F1380F2AE449F9F56A8B87A8425A9EB73B62979C8C6B9894D6443ECDA81133A299FBCA37B4A69AD509BA44403AE3E5B2CF4277C8D22B68FC61F5E105DBD8C31F99609EA2770058352B81836B473EBE95C9CEA90AEB682CA81B3E70508BB724B9E4C564D6A9600EA59342E9A06D6C4F51ABBC3D7483401737E36B6D3270406E5B4589F5401261B790CB02219636AD9C65EA5C48CE79C2CF4758DB9BBB55E003E0C64F9B025DDAF1A341F8C2F26593ADB9AF185915C0489C77F1038ABB9802EC812885AF603267B7457210F5A00C917039B1B8E1BCBDB8B8B3CA9418D27CA6E96644F7090322993797A54BCB13CF59428D24D499C6F631E8694C50389496C6454FC34AEC2677EBE05A0D61CB7AC553E2017C93D7183F06CF461331073786712A2566230F191C8169A1BBA3A968A44A3FDE764A0B5724E74615F3CC0F819616BBB21055D85F0FC40C667048FEC26FE98B901B67A2923C57E17CCD2ED20F8C3731F10B58B7E9234C4151F6F4174FE6216F5AABFCD3B634122896A156BCC0CE93F41A8A25CD825334B53269881A682D8447975B45E839B8FC54B53F8C70A5AA9C786113FFA708DDD5070B841B58D25820FB6E4D8121CCD016B9601DBBFA4116E1AA9F904DFB5AC2B4D607F43A3961161E02092B9233C75B7020D5AB4BD7E3ABC3B679C6D003A6A072F0038983677F606AB976474D8616A5DAD0C15EBC10986B9BE9F19DF7C740FD1198ADCC019D43766A847F05FB5CD7C16A6215A0DC251C894AC585A5B530E2611C839E98786FC5D1C1B0817DA7C20DFAFBC67F62BBC872CFDC153D83F328814ABDB5F7BABDCBB125298127A83BDFC503D6A8A2359136225B2BBD9BAA2A11050774924B8662BCFC608848840CDBA8F5D72FA3876EA79784E4784860047915C8922C96BD8F625D56729B96D88C3DBA9EB3AA308A7940E90147C9110770F712CFC81224F36FA61C1225CA7A653C5AB8D0B4327C014EC580B9B347D0403C235B25CD88C992582D44CA3E1394A0251743262B3D0A059C1BEAA7CE47A32F5B72F6FA1F9E8C34D46A391E80BDD48691A930B3B0DACE1B6B4B90B948794C14EC7B767EA6B2161702F9F5CF7336BADBD2CD5BBC114F7B84D73A24E0049C03F83FC60B618EE23BFC5A286751970BC37B47432F982101E8FCC3CE01089D5898A46BACA7265F05E4027AB367C8178580184771975A0CE9A8006BA7774C4E68E443AE644F19D8BEDCE0373A39B545738371499E3B7C88D20179434082CA235BDFA7701624A09B20BC65A10DAC15C6C14268FC73BE9D7A2F6556044C49A2006403848A726E767D2713BE1DD04828DA143DF7860A9253566C9932FA54C9561EF5A26D990C308CB8A65EC8CED7181371A517C16A28EE9989F9D5ACD50C8BA7085E95C03DE98C978999C37195356DFB2E1DA0768647C2E4CA6AE1D6BDA251103ED17482CB0CE78BA17C69848475835A0C2E9D08B27BB220185A7CA40713AAA70068F75140C37D259150E6B4581670A6F8423A5979645309B7B0EBB0E911A68E46C48B150552F3093D425761196378863C431605EC3E89C8D796E77FA9A772499AEC973B63E864CE36A29DE99ECEC9695D12112C +sk = 90D7129B79C095B3063F53058A4BAA74C262A99C822894254A050409215FE67773C26C7A6DCC739D8406A6055B388204604C7B065C0CDCCC16FA880858A36D6200C6CEC473BF81B245E09C6E5A55A8D8314334C23DC14FD6A9C011A2CA93753AFA8609320B1D01FB9A2A4263DDEAB8D5A00C40346B8F84AFC7B945F521321103A5219B533F52BEE42256EDD1B9A526013A00CE07D44EBFD66C0BB67775D1ACDE4AADB7C98731931E54F5C458264894971DF5D0CCD93817BB77A2E7D29CE47ABA205C0971F34096280CC725A3C22A4EE24A9938CC2FCD9A670272A463C852EFC04388CA8CE86A8E9F63273AA208610C2274709C55922AD371C197741AF0526218E84C3BCB61355AB94D5C94DCBB4BC08986AC075E01134B4029C8C1D78F829796C1CAB0EA2075BC25B797D82A8E0385EF1094D0A2B1731624308487991A7164D8A507F2390F354B4FA3A225D5A46463145EBB57B98724F1D3CABF11AD4FDC00BFA267D8F3107CEB7DA37C060AA23E247C28AD0069D30681E37807117AB841F23548CAA02212AFBC1BC54297202FA549DEF55DDEB5BA4D10ACE2650511366EBE9C1D61FA9D5574C86C0714AA523CDF946E1FD259148A7E2AB5C21884314E3B8082BC210B5209CCB6B95EAA2EF62203A0B707BF9C5DB1A155169B07D41C0EDB9709744CAAA36622F189773AD7A59DC142317454D9C81D55D1C637876F104B6836A6842B87174290125505461EEA77D63A8DAD03C7941B69D7F66E434922E13A8182FCC35E51C9CE81978E35818504CB32E4A6DFC777227A5484409A38B2A1E2243110E84D024B1FE0E0BB36D4AAC0622152599FEFA177B294BECE391D47553983E420DE5462C72AB588B2934680A399AC40EF35A5E8819458E0A7BED1AFBB29A446ECBCD4E45A50176EE201526E314CDE085AFDA30226039CEB41A14D87256BF566DB30AC77ACB80B29B1F9D602E919707C96863304372A353771E1CE994241A12369FBF42BCB4315592724CD5085A589B1B4CA46DC49CD65A1247178151E455741C8B5D7C9CAFCB75BF27A5B4ED05B22E932B1E3BFB0C93248400E5485486E0C39FD5CCEC680C78E6137BE96823DECA37C6306D31C9142FC03EC540AC0120EBBE9BD5237583E1972D0C4676708AD35B559FB89BD872428A3E0504350451DD65F58BCB292C0BA437394DAE55E6DF13A8F41827939016A081935D1788C4807A53A011B89528FB60F386632E725B163E83E105324C3914F26F389DAC199A926A25A02624D9A530BF0AFAFA4C5FFE6A5EF9422E422019FF337D1BC2FE16A07D9A046D183137D477DDA378E17A95FC7E02ECDDC0D551724A4F36EE7648C9AA771BD15AE29B7259ABB63D0983917156EDE6557BE445735EC539B2199F9816C562842627CC83BCAA659075F5179ABDD1A7056D27F7DD96A6813A940A9321CFB1946E95C16836EF028106BC26A3EE450D8E569EEB23B70722BCBF828821648B1668E6E47869AFB16C0E4B827C4CEC3C4C9948A6C7F874968DC80160A811CD06D58A885D033210341A6F7907F53A82C98468F6BDB7CC7A60107973DB0E70F9A387673234D6665019676215EE4597C65A13A2636CEE74266F373A4E48BB1DB019BF44EBFB0A509E4BDD324314736292DE1566F165449C3B618C53C0E7468A801B962CA60D6834276BA3073F725E800A39668BB515B73BB2B055FC55AA3099F4C2B12E027333DF63567043B5E81A53F7993FFEA69BF0927BAD9A6E56CCA6F96CAD9FC434DD1AA6F2814171CC8B064000BB36931F955858510E5A951D8F3728B2B276962254D061CCEC6727D758FA0944246A70D053021CCDB9710C046F5888BB1E0C75455A09394090D0144578053D46819FCA8B923227CF36C5D874BB43B34463DB3A502B6CFC0B38415F413DDA5A1AEDA6FAEB55269FC2566940615F714AC0883F0CC74645594C17B6027C198A368A608D50258EB75DC00C793912E133290E7954604629DE990808CF8C1B7F0795D6CC62892127229579D2600B8B17A16CA7FA2B389ECAC698AD722779BA264C1027E39AD6A7C952AD9224B555344235282A6B6A0711FD854740A6A54A9728AE504764F943B7DC92703C03914CC0C6E9376AABB4CF52C00DCC211CDF81EDE889529D06CA404A08B719E35176F86C2AEC7E40D1210169CC6A09F711EDCC2AB20E136F9412F7151BCF330987BCC5332408392075A25C27E3747C65B5206A91483EB501B48CB5E07D501579B5093255D5E565CF5CA6247064DDAEB7E909A190DA61348365C1C508820208BA282B5D48199D7A947CE9946F633BAE9D24EB77680ED38B46379BC96B87F3DE694E4C759375AABA76981494BA5CC7419D9C67AF522A744A506E73CCC5AFC2CF27663E813BAB0C82C6C64023FD4CBB5B74D6D5BADA2A33EA3F407CF5239FDF56BCBB455F39B9D69813662281947659534F9443F84266937C1000D8CCCC430D5F9821126B9B28226D8A8C1D7A247E2D0CFCE23C52C3A2C92FBBC45A86394500F7D984C9103BB77030B41B6C885B1CA1C8B1107878069D2BCC23B52A38651C8090F3CFB023826CB84089809E9ABDF107E0B261A8CCB3CB8E10434ACC40312AE18B93B89323C3A7676D0827BEAE3B4E7407827579EFE5750C47A322BF76851A762CAF62CC64370742AC715F182C4E6A77F47C5F23644F42010FC029C49C538C9B821C7761C1D2C27D7096C9F66AC8801660BEB39CFD23E531603C7145D61668A612B3406D16FEEB67BC5578BB972147FBC5E3F14059F55C8941177CF24910D1C94F1380F2AE449F9F56A8B87A8425A9EB73B62979C8C6B9894D6443ECDA81133A299FBCA37B4A69AD509BA44403AE3E5B2CF4277C8D22B68FC61F5E105DBD8C31F99609EA2770058352B81836B473EBE95C9CEA90AEB682CA81B3E70508BB724B9E4C564D6A9600EA59342E9A06D6C4F51ABBC3D7483401737E36B6D3270406E5B4589F5401261B790CB02219636AD9C65EA5C48CE79C2CF4758DB9BBB55E003E0C64F9B025DDAF1A341F8C2F26593ADB9AF185915C0489C77F1038ABB9802EC812885AF603267B7457210F5A00C917039B1B8E1BCBDB8B8B3CA9418D27CA6E96644F7090322993797A54BCB13CF59428D24D499C6F631E8694C50389496C6454FC34AEC2677EBE05A0D61CB7AC553E2017C93D7183F06CF461331073786712A2566230F191C8169A1BBA3A968A44A3FDE764A0B5724E74615F3CC0F819616BBB21055D85F0FC40C667048FEC26FE98B901B67A2923C57E17CCD2ED20F8C3731F10B58B7E9234C4151F6F4174FE6216F5AABFCD3B634122896A156BCC0CE93F41A8A25CD825334B53269881A682D8447975B45E839B8FC54B53F8C70A5AA9C786113FFA708DDD5070B841B58D25820FB6E4D8121CCD016B9601DBBFA4116E1AA9F904DFB5AC2B4D607F43A3961161E02092B9233C75B7020D5AB4BD7E3ABC3B679C6D003A6A072F0038983677F606AB976474D8616A5DAD0C15EBC10986B9BE9F19DF7C740FD1198ADCC019D43766A847F05FB5CD7C16A6215A0DC251C894AC585A5B530E2611C839E98786FC5D1C1B0817DA7C20DFAFBC67F62BBC872CFDC153D83F328814ABDB5F7BABDCBB125298127A83BDFC503D6A8A2359136225B2BBD9BAA2A11050774924B8662BCFC608848840CDBA8F5D72FA3876EA79784E4784860047915C8922C96BD8F625D56729B96D88C3DBA9EB3AA308A7940E90147C9110770F712CFC81224F36FA61C1225CA7A653C5AB8D0B4327C014EC580B9B347D0403C235B25CD88C992582D44CA3E1394A0251743262B3D0A059C1BEAA7CE47A32F5B72F6FA1F9E8C34D46A391E80BDD48691A930B3B0DACE1B6B4B90B948794C14EC7B767EA6B2161702F9F5CF7336BADBD2CD5BBC114F7B84D73A24E0049C03F83FC60B618EE23BFC5A286751970BC37B47432F982101E8FCC3CE01089D5898A46BACA7265F05E4027AB367C8178580184771975A0CE9A8006BA7774C4E68E443AE644F19D8BEDCE0373A39B545738371499E3B7C88D20179434082CA235BDFA7701624A09B20BC65A10DAC15C6C14268FC73BE9D7A2F6556044C49A2006403848A726E767D2713BE1DD04828DA143DF7860A9253566C9932FA54C9561EF5A26D990C308CB8A65EC8CED7181371A517C16A28EE9989F9D5ACD50C8BA7085E95C03DE98C978999C37195356DFB2E1DA0768647C2E4CA6AE1D6BDA251103ED17482CB0CE78BA17C69848475835A0C2E9D08B27BB220185A7CA40713AAA70068F75140C37D259150E6B4581670A6F8423A5979645309B7B0EBB0E911A68E46C48B150552F3093D425761196378863C431605EC3E89C8D796E77FA9A772499AEC973B63E864CE36A29DE99ECEC9695D12112C13DD780EC5347C512CFABF4C2E6A44CB2B17993C7C746F93C1400A5DB9F12511AACC8BE341A319F425312EFF5DACB31E6E772EFADDE7250DB9F613C13B454565 +encap_coins = 1BEAAD495CE5DA859511454A6E6D84C3A3E0D73BAE4CB1CF8EE16AA1539D37D6 +ct = 75C5868844A4EDCB4B8A4AA4A64DC9E48CE3379A2F3B2594A6D6C4EF188CADA5895D919BA771CB899F4F24D720A2016B1E2DA3A793BAAEB8049C0484040C659D6FA8A68BF949003E3634613FC81C4E474C852F64E6D2F8411803A54E86690A2793AC5FDF445B6F0F80A6EEBB77779EC1B04E5D7C9A161A5F82975A1604A90E57FA58504AB4ED2A5ADD8724734AD36107F16DA178E31A722348502FEF33F8458FAAAB006EAEA4764DC7E0226EDEB520DD5C6C6039BD912927D08F46A01675F2004607CFEAB24C5F9A08D5A2667810F3023DD309F37B88B149C24F2B9493B6F8761D1F450BB821BD954ABD119641CED5CE8BCD7911430BB8102B0AA15DB06384EBB7B2AAB0EF4F050CD124F91736059F83F577B42C6A887BCB12A6708430415B44A7CFF5751818A116CD1DCC3D9AB2CAD3168BF6D44DECDD70592E75DF91755C96704835F858E0DDA900E4A9FEFA1AF12DDB75E8913EF58095A3E90EDCEE257C9AFE2D01404845191D1A3E29D9352ED737D2807B0EB6A221D7DC0405DBE44888CF618C5D0A9EE44F15B3BC2C9267D0D917132EA57FAB6D3E9400CFF77179CB129CFA6C0DC371BF5974F2851D0DF03757CFC54005E4ACE8F23157FFA8A6550B01436F5D15DE95437CA7FF7AC4765F272002B9A1C945D28FB92DF09DC3D0CE9E0246C745D7EA09B08719D4144435A56455040499C2024E1C093A82309C302CF70BA2261D78B47F82913979FFF1946A12C05F3629BB98DC95CAE650717D057C0BCE14CD1A2E4734A138F26724630140F05789021670B40809927503D23FB8DB750CE168E4E18D616D98A7422E4E8369417A7E031E3FCA6CA744E7E303A000EBB609F2F791C4A01A67FD5525129043BB286C8FACCAB65D2D4EA91C3DC432D6F0853CB331F8D1CCFA674308E426C0AE974628C315D78AC41D952678A1D6D542F3FFF6419866F90C23F78624DE718B7B53213D29660B624E9456FC4A07C813D77F91C4A5F09D2F6F51EBD1E33B8BF33385E7D020D6B390C628C9D0EF5B4361D43B9CED8F5AAC7C0F3F089485719BF2DB3AC98757F938EC8C18A77765FB1A203271E1193D480BB44EF0117CF9210C08586730160415B4F8E137ED4C53964B39A381D3B86B8CBB1E76B3FCADCCD85276B97A4F11B27B81A68A22C4C56B6AF0F46D47A13E49CD5DDF7E9DCBEF21702B35AF1F4A009E9F2260D7B422066479BCB8C270FA142FF6787D437DF7469B13C703E553F9BBA485C123665B917027E8D4D8A957A0289C39C08F5BE39774427763EA4426B1804E266A3F398960E8CC2C47D0FE64934D4D8F586590028E38DDD0F3F861D44E9DB2A051510DF1823BFAB436FECC68825191B243ACFAD9DA221FC5B3B2B5CB8CBA2EA2991E4F5B97D79D39E41478BCB7A949233361FB05E7CB66885DB9F46975A6C82408633A78CCC68562509228F175859BA382784871436DC0F2BE45E3E38EA4E51DE96F6752054774DC11B984575209A0DE45238D67C722F27B4AB207981453704312CE2B717C8CE5419B065A3673EC2CED5968D2AFFA24F5CAE7D302118B0206795C13A3900228D03EB8DEDE138110E4A39757368246253468DB22FB5A09834F4D1BAA647AA98B87D8FC880EB03563AA602726A94210B406237581AD4C44168874AE41C6F7669B6635BE6016BBE1373BDFD9DE8C95AA22F206149F3E2253F7A790CCB6728FB573E3FEDE6C61F83A3BA93694E496BD598D5FD6454EEDCD82BB4FB6DF43E9D72D3656289A06F17F44109288D01CF881CB2161857924FC2EDBE71EE06F337B2CAEAE12374D95C228AACFF1EC052A5C453AD87185598EB94C9A92799E1035AD7AD8C10A3AC7081CAC06A47940A3BD768CDDC45D01A24C12E177B58D4B86DC411A42BB5A77BA368FCFBDE11EBB06394182A78C8DFD0BF32E889352B333E91FB3E4861F9CD7862AB63B165893EA8C9D23A9BF5B850A4CCF2A4A62F4A17CC24ACD0E6AF49762E45F28DF33A94F859075812CB8C9A73874F93DEA97A6B3EAD41BAA4A63CA01848E919E4DC95773D9A19C375D721E11297AF63D8560B8EAF9C0BB7345931C252E044CF4CFD50338F9231552611387F21D58EE25664B3D4AA6B6AED4A598E5ECA7246AFC40900BCBF214D15D7F482D2614FE589A26FB84E62790EA0E1BD8BCA67AB1C06E64A859C9D62D57AFC155CB15B10C0FAED4757FBD5597C5F18D35AD1A4A5E948D0B0E905E +ss = 8D7BD321930854FFDB905660ED0E01A6B763147CE8289A6016C780B5D05CA2E4 + +count = 62 +keypair_coins = 6500F32C93415CFDBC0BD31D78D5BE95CB9060C8CFA2013955B56F8B6868B3222779ABA933159A5AA043E2FBE31B14D2E56F93E83763E19787607196101D3F26 +pk = F3FA06111B74AB835CC8479A8EBAB78552AB3A3AC845A332BD1200C0635D3AD6768A4773AA803EBC08A0D7F772FF78AE9C90B5DD1B50E86724FC89110C128BDA8209F0173E4D23210910BB05832B32017C182915308563C938695A0A8C49E6108C972587B04E6C916D5AC10AB425C15B370B0A4273D33530245048E62222D6211CAAB6A25332651EB49541754D9EC46E63DC4C1B9886EFC3CE63596AEA297AAFE548B20581FB98A755EBAC6FE701C23885E2141DF14B4933C70040A295144A74A440487741116175ADDEE87E656136A455BC9D1C5D611A22157AA3DD288B4FFA1D79668BF152BCB71108DC5916A223A703D376F3877406081C45A08470E4AE5679B34D2B4381335D8D5120282A656F121A861777D597A3B8910A67749855DBA05F36831BD101EBBB427C92BD62F9C7F1A99A47C94E9DCBA438835F3E053011F180F501C82611A64EC79E8B3563816A3FBFFC5E033A114B8C94C9FB3391E0BBB8D4A33BE98B219500F53B782FB2482FA9089B46B6F32555BA583370622771D02C6142647E6B87DDD382428552E58B80A66255394AB3815AA014C31878B74E7121B9F6D084EDBA988B43104910677AA62A1B27035DE440B055146D15C466EA340B4658A41A885FE206C382923FD079F988B831A99D42241CC8637A647216EEF18497298509832F8CE55235771E408A4BCA646284771A0AE66ECDC2BB9D696D799C3CFAD47A5A8B49575618BDAC931D00C718049760F880831092FE3ACD56D517377B00B156ACCC3CA6957AB22529673A59BFE87846C5431EF6B9C6C3201841DA1451B881B2E26E44AC71E8858EEAA55AABD45281B56345222453440F7E427EBAF90BCD23C75E1CC96776CCDBF92766C778AD3B0A43A82463D09D79B90919EB76084438413573EAFA0A60D26BD45BA0F75824C5808112406950D1AC5B226B9332709D1374B61957BB20AD7C33576BB68D265C7DDAAA12788C9E015A96009C0F99521E98E5C0CB38089D2101EF8700FED95E7F643A5DFC686FDA8EE3588042D54E3E78B4502BAB59794257A277A983CE87C29C18F8535B07960BF20A3014974883529BA033A9604370A926778689937C774E74A3AEA922F5FB717A7B73631C2E1F8C33F499674E584DC7F48E3EFAB83512C0F723AD981452003840215912E3D0ABE816A58AF87E1CEA37DAEC759DA34E24033C1842B2DC0A6909991B9E205178596C812A0CBAA48EFB3586B5B6963FD445140BCFAB6B4390832DE8E27851B10619E699836A692BF44CEB23CD1F6938222B4B83F4A25A0C0C9FF397195BCF5DCA633952AAF0321B121518F887C5AE945821F9B1150BC1D2401A7547CA3386BC33232CC58C6370508542994CA6CB098B01033C0C97FF468BC1C726A992181882CA810115FD2755EC18CE0F88CD37FB61580C039AB121CE95AF498BBF4EEA277EB780D3E0A0959A388D6A290FE58A64829184B763D3636B0551A90E5A9723B26F2C4869FF14BA806153D6EC32AD4C42D27161BF051BE85303D9167245684BDB3198673C668E579A72136B6D252225B49F25746298532990352B90D82F6E324FB5877176555A078B82AC10BC8EA63A2B9067F13026584ABFBC473909D50C58E9BC47BB99308298E6E90B3671ADF643742E669A93E2A90B26723AF4CF6BB64446619BDEE7B5088369FBD737AF0C4AE367313C699F384205C14C13C38599604390C7C911A5781BC2511208679510DC0D0DEC26EC46718C748B59418BC353B7618195B77992858C06FF15A9077A37ACE35101554E8A3932A9A9138A800BD3484B1B977D53F50A0443538AA5516780A094E6306E7842EE6A753C412D2A89C23EECB2B26A6AC90B3E890466A557394B520A07CB671AE9CD2C43621BF55A99A98392B9CFEA6373D4B136DAFA78C6E93BA7573B429B50BE5949A254714C720721699290A510581B6AF396879703AAF4A9781268446BA96A072009FFEA0250C793237744E36BB0D3D752E1A6CAA346A2F9D1695D49AA1AA2535C6449E8F4ABF85079C0B99B91AC2E91613DE6368C430A886EB15B192805E9B5CF7E587858B852F1D73D1F0B557684AF2DCABCFC14BC8BFB76C2C97F030AAC9768982FEB815E2471C4D1A15B5C335AF4091ACC5BD189176B477938EBC700042CDBCB7385E10C3121B179660EB65365D9417DDACFDCB371AAEF7ABB3C2CFDCA88891DBF808A90028D4F12C57E4985F7 +sk = 0246C2025246911B525E6C3421584BFDBC83D73AB936E76A26236A85215C78DB7DDD010C2E038E3DDA69B5AA2E9F4997D8589BDBF918BE1C046CD518E6958AE6925146009D185B53456B5E16D59257F20CD0F6677535510D02602D5BA5B61C440FA07FABB1B5FBB38437E90522665776892EF205A41A1A2083902648844DC9D65E633266AF871481F036A2888D3FB9901355397F37875A4494777C781EC40478D09A820204A4115701D25A74B4BD91676EA6391FA160617C80CD05B0A80E040CDF22B29978CA55282F2C40316A35433DCC8FF7CCCF4280C0B11C548B5CC08FA45BD0760CE03A02F25689D0F057FAE44CB1574C42E760CB331C2CE4BE16823DBB2870592BA844F30DC407298590A088425E023B856E106437C6074547260A856E648CBA07E51A23E70D7CC65656B4692EC24277F04905C4AEEAAACD36341C705B504CFABA73201C2745AB06B056F1768447981E0D676EC904698EDB230F369190D8C1DADAA5CA59001EE8A68C302F04298DC5700C56B2B577D89CD9A585B239089847CD3E96CA80D928867B27F3657987724FF9031649C246CBCB4673F6CB8544150C9975A13938C89A68CD0B6DE5237FC8D2B7A6BB94E0C0856F00B821636801E9AC84F35276065EE4108BC1D755C1C428566A1CA3762D050458DBC7093567A4465453AB8656272A3C03B4A3C55929271437724471D5D4926109C9792BA49D117813948106D27C33069EB3C40AA8370B79E23F35934AC28666FE72B43F722151F3C26C96CC3B6A40D9E1876E55970F252811070FEFC00D70A009E4871F136A08515AB239C33E2DE638C4260D0C89CFE30B8F8E5927F2C59FEA3947FFD0BD636B10876C3C387C00E15469B42B80BFEB8681DC7715C2B248CA6FED92A9399B72D1023F9507229593BD9BD936A0F6ABBA09BC3367782370B60D9CBD0E8B3D5744101C8CA97EAB822FA4CC399B5BE3195CB1E3C9260030AF60BBE3295C4DE898C502543589142CF48DBC7505EC9A9D93CB6DD4C9678C1CC0A082C5631A255142603DCC01FC07C27D628D89F09B473816B5D5171C18A3F9737BD6D3420D4BCCBD3A5624A2686E54062CE4696E061C83BC2586F1A618639E51E63BC6C64825EB50D4F88334B29145BACC49E28DD564B7A578217FAC230AD00A44F3ACBF8753AA572D66E1AB9198CECDF9BC722455BD267FAF98424EBA4031C3BBEC8298A9388CABC6B3BEEC7A7FBB1C814811117A9D550407C9E6099CEA65ECE641F69454B6A0CA9BF86A3DD472F7C0A7703C6A5B25464C0B091B29258DE673220857878434EA14CF50054FB2E63547E9BE15107BEB7A78CD5C00CBB1462A0347E72B51A15CCB5C333894ABA511295B37C97C7F4C2EB6D97219559B40A67310F457108015AC1B8E3AE15ACF85689C4058EC8A0BB18B75615011F2701BDE8BA70986B39D3368E1F978675A49FBE8509F1239A1C88F1DF4ADF0AC8B68A87E2A403373FB808A7B1192371C7E68B80854B0E4335739090B953A2B67999F9878A32415B78C22289EEAAEFE3298FD38ABEB6ABCF5A55BCA388004E46375A729CC45926A7C3E3BC8B4E2A2B196AABE5651B642C1CB50F666A1BB6DA4D1CCE8C6344356A68DE044214453D03B5CCB82225603CA7E339380D63A4D9160DF03890DF722683B10847B89DF2C46757815D34942EEE95D9A0904F50855C73104EAC00E22893E3764268A84BC1940B2D5D3BEFAA5571B31869B238C8EC7AEA5A70203E67A0D9851DEE23D3801777B2243E2B6328BC4AEB10A468EA96DB01B77F68CBD63E4BDC157408AD378F637580E5723B544BCEEF3962C3A49FD836E993386E4E2C91BCB92725216979C132A0879CBB49F4FF12A46B194851B76DC910C20440535F9529D68ACD39CA13AABA696237C400C6B297368F0D6C304F012824783A0B02048D5CD1797C5D61B3F5792715E7B72BE1CBA7CFB12A638720F7962243933BDC150EE5B26D4368E8C9CB985B7A0E5EA36BB942840A8B3053C09FDA45FF937396BA8433BC3175806B0E0A77E2E8CAFAF55C69B44BC626C3FB6D9C37D1A83170189BC5C47AB44CC82CB97732B8DDEC23596224CFC4894871787EA25493BC48E4A37B70E404E77436F9A91970778C74E21B19265628BA0BDAF0744A5EA4507F5B4A0E978CAD763E26A112F38BBD1A34EF3FA06111B74AB835CC8479A8EBAB78552AB3A3AC845A332BD1200C0635D3AD6768A4773AA803EBC08A0D7F772FF78AE9C90B5DD1B50E86724FC89110C128BDA8209F0173E4D23210910BB05832B32017C182915308563C938695A0A8C49E6108C972587B04E6C916D5AC10AB425C15B370B0A4273D33530245048E62222D6211CAAB6A25332651EB49541754D9EC46E63DC4C1B9886EFC3CE63596AEA297AAFE548B20581FB98A755EBAC6FE701C23885E2141DF14B4933C70040A295144A74A440487741116175ADDEE87E656136A455BC9D1C5D611A22157AA3DD288B4FFA1D79668BF152BCB71108DC5916A223A703D376F3877406081C45A08470E4AE5679B34D2B4381335D8D5120282A656F121A861777D597A3B8910A67749855DBA05F36831BD101EBBB427C92BD62F9C7F1A99A47C94E9DCBA438835F3E053011F180F501C82611A64EC79E8B3563816A3FBFFC5E033A114B8C94C9FB3391E0BBB8D4A33BE98B219500F53B782FB2482FA9089B46B6F32555BA583370622771D02C6142647E6B87DDD382428552E58B80A66255394AB3815AA014C31878B74E7121B9F6D084EDBA988B43104910677AA62A1B27035DE440B055146D15C466EA340B4658A41A885FE206C382923FD079F988B831A99D42241CC8637A647216EEF18497298509832F8CE55235771E408A4BCA646284771A0AE66ECDC2BB9D696D799C3CFAD47A5A8B49575618BDAC931D00C718049760F880831092FE3ACD56D517377B00B156ACCC3CA6957AB22529673A59BFE87846C5431EF6B9C6C3201841DA1451B881B2E26E44AC71E8858EEAA55AABD45281B56345222453440F7E427EBAF90BCD23C75E1CC96776CCDBF92766C778AD3B0A43A82463D09D79B90919EB76084438413573EAFA0A60D26BD45BA0F75824C5808112406950D1AC5B226B9332709D1374B61957BB20AD7C33576BB68D265C7DDAAA12788C9E015A96009C0F99521E98E5C0CB38089D2101EF8700FED95E7F643A5DFC686FDA8EE3588042D54E3E78B4502BAB59794257A277A983CE87C29C18F8535B07960BF20A3014974883529BA033A9604370A926778689937C774E74A3AEA922F5FB717A7B73631C2E1F8C33F499674E584DC7F48E3EFAB83512C0F723AD981452003840215912E3D0ABE816A58AF87E1CEA37DAEC759DA34E24033C1842B2DC0A6909991B9E205178596C812A0CBAA48EFB3586B5B6963FD445140BCFAB6B4390832DE8E27851B10619E699836A692BF44CEB23CD1F6938222B4B83F4A25A0C0C9FF397195BCF5DCA633952AAF0321B121518F887C5AE945821F9B1150BC1D2401A7547CA3386BC33232CC58C6370508542994CA6CB098B01033C0C97FF468BC1C726A992181882CA810115FD2755EC18CE0F88CD37FB61580C039AB121CE95AF498BBF4EEA277EB780D3E0A0959A388D6A290FE58A64829184B763D3636B0551A90E5A9723B26F2C4869FF14BA806153D6EC32AD4C42D27161BF051BE85303D9167245684BDB3198673C668E579A72136B6D252225B49F25746298532990352B90D82F6E324FB5877176555A078B82AC10BC8EA63A2B9067F13026584ABFBC473909D50C58E9BC47BB99308298E6E90B3671ADF643742E669A93E2A90B26723AF4CF6BB64446619BDEE7B5088369FBD737AF0C4AE367313C699F384205C14C13C38599604390C7C911A5781BC2511208679510DC0D0DEC26EC46718C748B59418BC353B7618195B77992858C06FF15A9077A37ACE35101554E8A3932A9A9138A800BD3484B1B977D53F50A0443538AA5516780A094E6306E7842EE6A753C412D2A89C23EECB2B26A6AC90B3E890466A557394B520A07CB671AE9CD2C43621BF55A99A98392B9CFEA6373D4B136DAFA78C6E93BA7573B429B50BE5949A254714C720721699290A510581B6AF396879703AAF4A9781268446BA96A072009FFEA0250C793237744E36BB0D3D752E1A6CAA346A2F9D1695D49AA1AA2535C6449E8F4ABF85079C0B99B91AC2E91613DE6368C430A886EB15B192805E9B5CF7E587858B852F1D73D1F0B557684AF2DCABCFC14BC8BFB76C2C97F030AAC9768982FEB815E2471C4D1A15B5C335AF4091ACC5BD189176B477938EBC700042CDBCB7385E10C3121B179660EB65365D9417DDACFDCB371AAEF7ABB3C2CFDCA88891DBF808A90028D4F12C57E4985F7D5ACAF411CCB64500879102D9CDF6D9FCAD673D874A4153383806FE174B2FC1E2779ABA933159A5AA043E2FBE31B14D2E56F93E83763E19787607196101D3F26 +encap_coins = D2B388FDF32C5CEB6126F9F28C341D109C1CBC6E69207BD655B969DE1B8F7B0C +ct = 7FE3A29E1057FF0FC46E2D52DA9531F1944AED5E23F603355D2C71C4EA9C67E95A5D1D804A1CE7D6001F9424F598653669F4527F1553AE716C356092BFF0D46BE9369F372F6E79EC88F41D9E16FFF3C17C6EAEA05B04D5C26C930B7A65674A12840640FA2B0C84D1F641F97EE6B5C9D4C8B622961C99C2961425F693B2755CCA5BF7DEE4251C41B8D988FE238D20C44068691A1CB045632F2B46FAEC81BA89C11EDD57B1AE5A39123FC241050ECC892111F7F6D3322EB64BACB32DD24EB7C20BDF7A00EB1A54C094040780192DA7A3DB8CD6B979DF5CC904225C7E52E9E4356A7D8A65A901B8441CC1D44D0293D6B050B5C1E966E852EAAC9221B1833481EC4878278C9F5FCF6ACA5E46F3EAD7BAD6B9CC68837C16785DAE33311DAC0B2B2A3811CD8491ED7C8EA3022CDEA21D1C741B758D786F1D421646A9B63D3F0B6CD0FE26083146C717A0F0A065C1365E0AE763D166011361DA217593AA67B33C85647F4C5E018EC4A0427D75548F84B85351D48C870758350A305DE51676B7316B4EA63E903296A46D2C02FF58759B88F500AFBF664D2A1D1D48078A864BC72D6622A43C2727C964999AC394E40A162DE0F90DDEAE5F1F2903AE0EC93DBD1552BDCAA023BE191D616F9120E9B6AAF0A0FFBC00D9FEEF6644997C850F7D727F84EB925BD0ABDF1136FD28660ABE4210C97124D761914EC1DAC64B1722F8B3ED6059457B7D421600DFBDD35A34CF04DBA261A216F6E0AE3C3096EDB0D07B7CD584633E47863DD2DD65801E1A58D3536DBC8A653BD0399D7AF02FC469E8B9C42F7E56B106DA445646ECAE6A45A94F6AB1D7E73FE82D0A6AA8E27D9C71C524342CC9A634000216C8E70BB59BB9ADA0618952D094D2C7EDBE871A5FCC083F5FDDFBDFC92AAAED3ABD05CA4DFF5F47D05DBB49A97E276EEF6F5BB63C78BE7957827F2014534F5797D1DA883A6554F4EC0E7891CD67B74F1543A80A336D4ECEBA83C6EB41B9600D8A8670419C59F98031C780DC2316F74D18C9A7937E67941A4958FBF90EF44DEEC4D939B90F03613A04F766EE2E518F10F84850FB0C6374B510DC1BBD4E9AC6A34AD9F0AD8F94B48CA8E2CBF1BB24001ACFE5C9895E64E6E12E9A87FF7261A6C111DA36BD8D8DFB5D3FCB7B9FDA538CFF883FB5CD0DF99098C69BC4A2CCE7C14A95AAFB2E1EBEF435EAC6A90B3F548859198F47E15D85B1B72B3867776C30275C1F94D12670785DC385796D5585482D8558DC2691E873CA52467FD083112CD80E22090AC9D4254C2DF58DD12F37F8066613EC16A7673D095138456A0E34FB0FFF90900F5D4D6FDC4B78A84FDD96E0AE01D0A77AC4D7D2CC6B8DF76D8139EA2BF49EA2B45229289A904E9E0D64F543DCA64925400561269AD850F391EEF29504A35E2850EC608AC49A7F8AFA210C7F74794DA09D61B06D8A40458A7F4C23F44218527C264C48E7ADF2533AEB3BB9F8FE6C0C93402455F2F7F81F16E7BDD5CBE27E5F742EC3A727BF1EE25804F2B37C96140DA7BEE422ADCB7C4F564654D179B36ED65F77EE3F6F634859211D23F59D6F438816E7993506E578C3C9CB64F41B3D097BA5C86757DD1E50A5167D98CB34BE135C75C2C58277DF2055DCC168FA8E167952EC5A9E59146D59C13235E9BE4A6A0E70A412A29337524912CA6F57EA8CD1E654D5DEF13A35AC18E9D984901667390B5A4E1931F15DF7561ADEBC0058EF8FA8A94793581D69E98FCD5B5BEBD8B2CFB5EA1231CF6F9F67AA464E5F472DC961C200253712B5D6F664E7B45CBFF375922E7241654D9E92C470893D23C8CA3303C51398E3F5785C8A089F4E9EE4EA1037AE7AE2A2F6C27A4005EB9FD2CDAE3BA0B6D4E3E7181C98E4073382B3B2E055C050D33B85BDCFC13AC61DD8B2CAADFF05CFA874B0736B08F8F1988BC7B0501E224F45AB80C7E32EAC1A8889607C3CC715C7505E1FB6CD00B8268493CA8AD47443FC9C1567C8E12B92FBACB9B8D6F290C0B7D26C8FAC1C4E8456DCEE5709386668671D24446CF0016BA0824D8914763AA8A12F699EC94E424C9E85C885D6AE3DCD7AF7BF6FD96F035E238F8B3F584AA7A400EECA19737A4F9C36E364184581C94354A93E1C77D58ED1920D658304F150868E704E23C75125F3777E4E0DC5AEFD0187E28A00FDBAC93484A7F2B20B305CC3FA244FE36649C57B19401DE2BE64D5870613616501353DCAD7E95F729BBDF930 +ss = 2690DCBD9836C682D376F21A27EB26F88A9DE23CED4E824611AB9C23DFC858D0 + +count = 63 +keypair_coins = 7643CEF2D62CC5AAEECF754653EA62294CD2208E5BF3DDEEA209E3DC45373D4992CEDEF206325F68EBC282123EB0AB02874F8A3C6665B78346775351AD99CC3D +pk = 5987636A96B26372851E703A9BD36D85E966FDA580CC79AF69772C2A9A7042363A3E3C116DC7711ED06FBF956DD06266329002630508B7D1CA73CBC853E62B23A02BFF7404EBE390FCF58BD57262CF1044AA22225FB36446D44E1B8171AA67C415F96DB0E109AFA31FD00631BFA23F3B6C9C02B20DC3DC1BA6F30E6F20C9EC7471CEF6996350BB87D43690C059065CACF697C63B6BC98C881D3CA56F07C34A5B0B10CAB263BB75399D162DB389206939B15DF58448837E0D443B8DF132C65BAC83D2166C780132875FAD888A1C53AEA51661C135CEA6956C2A4B87A53BAEFE726FDF09687F6CADE7BC9EF5BC25DBDCA95A0ACC47E0CAEF22159AF5B499FB6E8643C70803BA40A5938A422433053BDEC4B729744B565066962046C5D2BD14F14BF0B4030BE99A8A198B80B99EC939791BFC8572942E98D47B00814C6A85C39AE7323CEBBF353439F3961F0ABB687B4C18DD06B706DB4350FC4A2E868229272F499709EB1450C2995D9B809E77E676B628AAB0212475E602831A367D3948CDFB0D43EB0865EAC55C516069893D09F24A8176A3BECA0C6065ABCA0A3A2B3053DA2A3BCA6A7088F39D9BC8B1E685B67612413AA3B2BA4673B301CD9D87728DB6BFFE79391493A36B4AAD46339DD2B884CAC471A8F134FD1CB590819A65190AF53355A6483B6A9909BEF36C76836C77168C679757EF404A8528CD569911D036C751D4BA4CB1C34B695CAF487866CB1DE5554196682D32285490A75FB5D18D3B40539ADC4D9AD71452016A6FC7156B34014117BC0DC45EB319A1F85B642F7CA7A12164BC7A1FEB9114A7C5BA8D7456CC08A883AC86100272B710B225E49DE711115B418946F503586076411C6CA3EC11A5244774A27BAACC543556582781B273BCCAB4326B4140B5643C86D310331BFB859F80062AD27E38EA1724DC4B7C3498A8601C11F25C99001DB2868D68ECBA0019BAEA1363EF738C5C07778C5B4663447E73C742A1A6A3E708CF4003512804B9CA9358665ABA8AC2CE68B6B8B2E51FAD7939979593F8F19E19B2C18F03639776483DDB4373184A2D2741839C65F5D47E63597D14A5AB61A6BF01A8065C6756E6ECB64DE11FED0ACEFDD45FC50C1F51B045D8E096A9E77F10DC8E8349B5DA9723A1829E2EE3CC0379942FC47841B81DF7A94EC7F40BFC2B737D9725486316C2EC3E2B516DBF7CB4936217CD4B23E4422122854791A2CB136A1236677A4E42504AE43BFC93259441BC0D676F8932A757C087F806B59E6380197B37719A2FBA88B64CA54FC69AC8E2B79DF7154403249441D103F931A25283BCDED4C8B51A7995655D49611DDB2AC406B28AB2A80342F51BB8126AFD65412B06D0596622E5722465B846A52B47FC6B5842F12ACD602EF9C74065D5940D2462F7D99D39EA5F62B46F9FE297F1C01F5183C73C3CCB63C564DBC4C1C60877960202D9369B750129D91060D1708F057811E68C47C4B68781C102F2765E093C94F6C43B784679C4257287680825FC5116CC04B489ADD5A009A3E65B09644D5A9A9745D249314C4693F017A6D5B054D07FDE34CBDE568EA6FB9BB56C8C5023142CD19EB2B3B0C6B8BDEEDAC8B78909B1BB1894B382E6FCA4FCD63390CABFB4D516FB18526BB45A0F9A6AED971050788CDD044248839D954594259B562317CB163273B12B453638B70BE1085E51C5AC0B6CDD15C218103E92C53750F107ADA702D8725548CCC663947C3DD959811842B62B13F9A24B1B4A18F5691DC4CC331C362747F1654E1B785AD1C07443AEA2F6006BD670D7128A8373C68AA36FFC59797AB3994BEA35CE894466F0C64C061B5D48B9A18C5544DC0820479722795D77C85F161B865DBA01A70CC9C00C15167AA35BF0A147147A81D540346489DC58926C975333CC3D286B4C529A2E3E6AA6D2225016A7126DCB46669C72C453BD745632E772BD2DA7C1CA87318276AD21EBBB6C419EE2EAA46A733E3934C0AE933950DA8FD2ECCEDF2919D7E8A6812897780275ADF78E6DC21757C7A0A489CD8CD95126A569AF7C67BF317B146743B0D32A6762103A13698120CF7D07B72BE91177BC5D18AB5F0EB53FC4A5CC4FEB5086947F42C3516C5115C724AF7CF05049A012C8E601E8B5237E1AA5652CC5E4E1A6D0504331E3B393A6A0FC05C75604646A943AB2D79ABE93FCEAFF0F0FF88688C870D19759A41D3D361A0CEC73CC908F52BAD8 +sk = 34C91F6EC981B1830501D8969F8847B2C6BD5D5C43DFA044C43B551E610D5675BB7E7C9E393B411E69575301BF4EF4C7FD0B4B59E213905A254EB5540ACA856C370DD28899541B725091C23907C04390AD32A56385075F42A7545672544FE177B74C7ED99507E4D95DEF7C4A9F84C9687B9BC318A23EB452FB7635D5201165A47391D21A7CA732FE9B3455C44EE4E54FC3A6518D51402CD5A2D49429B9C8815CD4B1A22C59ED368ED6C7A9DF83B958CC83C4654C5CD040245543431C0D2C9091376611CFDC2EB9181B21C8417E3931AA2B1141C1051CB82ACA4BBBE6DABDA3356BBF4962C3F883D0578580477AC56353AC7524F3855DE2B00967B7BEE0668112D51CCBC139FA73374DF2685A3CC06838B150F92A64C17772053DE2B05CC4D51832B8A2B8428436D99E1F2484B127CE0D861DC8A11AB0B0019E0B3439733B36A7A600F4638D820BA5624B445349A86465E1B25DE787207DDA0B629CB472D415A42A8BA191B76B5829D4D987A2B0C235521C187A0BADDB603D755EB37396CDD57FF76276CCCA997B00CD481587CB8728830021DCBB8478A267B744A5BFD08B4ACB2C1E726121996E55B60D40F6975637831C392845D6823D4B9092151149992794F4AB29D4164A44239F07C365A87ED9786AF7A57AC0BC0D491018007B6BF7705A21B082D1E040A4F4C25E329EF9A8518956044E7683AF94728487A4F95305D4E15AAD45C040F1CF9C442C519B2AA47A4DFC29063243C21F8B838171701B4B73516944EFC4B61FB5BCA63C3ED12A123F55B832E6C312E8BC48F145D62953F5901F7530068F2C9C9F51CA8FCB342852936D414FDDC2C04F551C827071F99C7C24C991F9C97E10E051694C86789A9442D79092B6547D67AF70D8C8B074CDBF854718A882DAACA3B8EAAD0BB1C2D3E859D3EB03C0A23B290518EF88CE1BB02FE71399EF71B380EC1AEC4C7C6BF3830C1B15F7718D0E471D10234393D94FBD3305ABD09CDF070A0ABC09D7497D2F9B939794B923EB3F28B40904A53A05216A526132D9F3CC64606B40F26434142645D79481A8316E8CB0A9321A4C530A0AD139ED5953168A4AC864C726874E1366AB09A249F251CE5B1A7F5CA60AD66375BFDBCFA3D7AD23A13649C03327D409FDA64581CB00A696557945C58E96C1C889BE648C4885958ADEA79AB212A0BB15506BF5635E437ECEE47B60032B4273B8C96806639C87031B6E23B71996B4576626124281AE4CA0A8FC081E1C91667967B25F76C4F72624CB29BD0A865FD67A4DBF14ACC7A09871BC7ADEAAB37B298F12B60B6372B741681627E4C8346C0D34392716EC173B1B711B1C0A1D010DCA486BD5167223658A5C55BCD0739DCFE30DFCF9BD8AA45B3CA0B5A90243547767A1843E4C87922031819EF9249800C6DB8B0270F9CB8F2624ADF4199741870B0630E1BB1B325768C79984D5E33283A991BB3C98B6BB8BE0EBAAC47C4310C51EB565BABA36BE54F6A3151A104911C38EF78E61F1654EF35B2C836C2321A52FAC710D6B03811444DE5B8403569C8CE0444EF615DAD54AE5649E68AB437C00A2C9EA9B18F59346D8B2A5C6582D763730BBC7F24A7EE7C23607C0683A2826FBB4BAD4A58FF6E3BB3122BCAA202E6A997C647886DB545FE6B94E81456379E7550DB446A43616808AC610C3ABF273B02B1B748296A760D78F0418355F61CE2898AB3BF9069576827B80557D41000BB0CDF5881D660A7C2569613AD6575E4C528A7C5B9EC91365B05853AB200AABA1CA98AFF17A845A209FE4932F30BAC0A8873CF5DA17F323375627ADC4786E906010F6B91333112D0BEA256D3A126EB39965DB773E7C3DAEC35060AB2D782B9A7692BC40525171416E7A12163D36837EE3C731ECC38E7236AD09712B4144030213BB53258033A8EAFA677FD8A2CC013C5AB46A33531968A9A6C5E6A89613ACEEC3A4CDDCA52CF00B21D85657599D21C80692018A07B061DB607D7DF491CFE59D90D43A6EB52453B2822C7BAE0A3336833469764516EC106E8D6912C9C35432984514EA5EB9A65C3C0AA24173BB736723022A6C31F06236639A0E0A25713C5A7855399637AACDC033C0117447730747507B69BC7A3F84621167AC83E4B45AB03B613AC4BD7217ABB799027B1A33F55A9B550B3857CA53438DCD157B103C9E5987636A96B26372851E703A9BD36D85E966FDA580CC79AF69772C2A9A7042363A3E3C116DC7711ED06FBF956DD06266329002630508B7D1CA73CBC853E62B23A02BFF7404EBE390FCF58BD57262CF1044AA22225FB36446D44E1B8171AA67C415F96DB0E109AFA31FD00631BFA23F3B6C9C02B20DC3DC1BA6F30E6F20C9EC7471CEF6996350BB87D43690C059065CACF697C63B6BC98C881D3CA56F07C34A5B0B10CAB263BB75399D162DB389206939B15DF58448837E0D443B8DF132C65BAC83D2166C780132875FAD888A1C53AEA51661C135CEA6956C2A4B87A53BAEFE726FDF09687F6CADE7BC9EF5BC25DBDCA95A0ACC47E0CAEF22159AF5B499FB6E8643C70803BA40A5938A422433053BDEC4B729744B565066962046C5D2BD14F14BF0B4030BE99A8A198B80B99EC939791BFC8572942E98D47B00814C6A85C39AE7323CEBBF353439F3961F0ABB687B4C18DD06B706DB4350FC4A2E868229272F499709EB1450C2995D9B809E77E676B628AAB0212475E602831A367D3948CDFB0D43EB0865EAC55C516069893D09F24A8176A3BECA0C6065ABCA0A3A2B3053DA2A3BCA6A7088F39D9BC8B1E685B67612413AA3B2BA4673B301CD9D87728DB6BFFE79391493A36B4AAD46339DD2B884CAC471A8F134FD1CB590819A65190AF53355A6483B6A9909BEF36C76836C77168C679757EF404A8528CD569911D036C751D4BA4CB1C34B695CAF487866CB1DE5554196682D32285490A75FB5D18D3B40539ADC4D9AD71452016A6FC7156B34014117BC0DC45EB319A1F85B642F7CA7A12164BC7A1FEB9114A7C5BA8D7456CC08A883AC86100272B710B225E49DE711115B418946F503586076411C6CA3EC11A5244774A27BAACC543556582781B273BCCAB4326B4140B5643C86D310331BFB859F80062AD27E38EA1724DC4B7C3498A8601C11F25C99001DB2868D68ECBA0019BAEA1363EF738C5C07778C5B4663447E73C742A1A6A3E708CF4003512804B9CA9358665ABA8AC2CE68B6B8B2E51FAD7939979593F8F19E19B2C18F03639776483DDB4373184A2D2741839C65F5D47E63597D14A5AB61A6BF01A8065C6756E6ECB64DE11FED0ACEFDD45FC50C1F51B045D8E096A9E77F10DC8E8349B5DA9723A1829E2EE3CC0379942FC47841B81DF7A94EC7F40BFC2B737D9725486316C2EC3E2B516DBF7CB4936217CD4B23E4422122854791A2CB136A1236677A4E42504AE43BFC93259441BC0D676F8932A757C087F806B59E6380197B37719A2FBA88B64CA54FC69AC8E2B79DF7154403249441D103F931A25283BCDED4C8B51A7995655D49611DDB2AC406B28AB2A80342F51BB8126AFD65412B06D0596622E5722465B846A52B47FC6B5842F12ACD602EF9C74065D5940D2462F7D99D39EA5F62B46F9FE297F1C01F5183C73C3CCB63C564DBC4C1C60877960202D9369B750129D91060D1708F057811E68C47C4B68781C102F2765E093C94F6C43B784679C4257287680825FC5116CC04B489ADD5A009A3E65B09644D5A9A9745D249314C4693F017A6D5B054D07FDE34CBDE568EA6FB9BB56C8C5023142CD19EB2B3B0C6B8BDEEDAC8B78909B1BB1894B382E6FCA4FCD63390CABFB4D516FB18526BB45A0F9A6AED971050788CDD044248839D954594259B562317CB163273B12B453638B70BE1085E51C5AC0B6CDD15C218103E92C53750F107ADA702D8725548CCC663947C3DD959811842B62B13F9A24B1B4A18F5691DC4CC331C362747F1654E1B785AD1C07443AEA2F6006BD670D7128A8373C68AA36FFC59797AB3994BEA35CE894466F0C64C061B5D48B9A18C5544DC0820479722795D77C85F161B865DBA01A70CC9C00C15167AA35BF0A147147A81D540346489DC58926C975333CC3D286B4C529A2E3E6AA6D2225016A7126DCB46669C72C453BD745632E772BD2DA7C1CA87318276AD21EBBB6C419EE2EAA46A733E3934C0AE933950DA8FD2ECCEDF2919D7E8A6812897780275ADF78E6DC21757C7A0A489CD8CD95126A569AF7C67BF317B146743B0D32A6762103A13698120CF7D07B72BE91177BC5D18AB5F0EB53FC4A5CC4FEB5086947F42C3516C5115C724AF7CF05049A012C8E601E8B5237E1AA5652CC5E4E1A6D0504331E3B393A6A0FC05C75604646A943AB2D79ABE93FCEAFF0F0FF88688C870D19759A41D3D361A0CEC73CC908F52BAD8152641A683DD690D4AC3EDF0261200CD9244AE7DAB962ECA2F3D22A554D0802E92CEDEF206325F68EBC282123EB0AB02874F8A3C6665B78346775351AD99CC3D +encap_coins = 5741C37BC610ABD8F8F9673D0267895A4E77235ACBDB294ECA9DED915410FB1A +ct = DA66799E03FF8D30749354F70AA6F14C7F79ABA7F6EEE8523E877A94C879111BBA4D44AFCE3E935C249E931CDD6A5D0FFB5458C751AB4B95AD6A4591150C99D9116164AF5EFB76B79FDD3D70D2736F8463C840B6FBCCABD81A4A3ECA94754073B99247577DD9E0CBE3873A653D682F7CF45C9AC3E39FB53453BF8AEF66C31A0DB9CA4914336FA4EE9F051599CC7D71A099B7BFC84C4A114479A2134FC139203CE4200A57ACD91BA0775EF886C5A53FB72F0B1E243D634A16DB15BBA3737A2736396D7088645311AFE4F0D6449E79948C1E9CF81E92DE34CDB4AEF1E5D88FE2BCEEABC3D26C38A5AC26B90F69944F3C4322121535B1826CC8A01C6F8FCA461629DB05E631BD0F3A92E82A130E6ECA61E85E20AC6B909B34AE13FCDBB003C36003396D762C401F62087D938894DA8530E8AEC05950D79F6D327984A7F9849D04C28FA3F4CF607E8601CAA971924040FEB7FF4B682782A0234354130D51068AA369A36C97489C28498BEA1F9227E947858A113305A374CAE7ACB7C2969C700614A4A5F06CB90B8E92CA2F34119952A4EFE5D9E17CDE7FD0FF88BB5328A50CE6BF51BD2F605C7D5CF4A58BBFFFA5766D3A96BAE019D154EA3912DFD1940D4625C203F01A6121F1B98F6314D3006A5737E2B1EC99111662795D483F53EEA5868D0D6DC8814D4ED87565D3D2FF13E7F75F1D3FBC534EBE6D4F2214C6E443E79C42BBD61CBCCBDCDD0969304B78C37C693C317AFF10CAB6CD297C5FF6AB4D18422C89647EF12C6B6CF9891081E3A7B7D7B1C557048061CD7C2FBADAE3E83D74F540F8AB6F552C7327D7BD64E1C52DE3AA2B9CAB8BFD262884FD1408528C54F0E42F2035D262562AD95C08F30ACD89102DDAEC4DB7A220642189AD352B9F0DA6CA2E753435A035DCC1B2A872B7DAF0B1E8453BD2811A87C2D899A1EEC4CA60D9DB25142DB2C83AA454AF6F2D04BF3D4A8C630F4BEBABE3175C6FB0CFAB61F2FCB3C2565ED90D64512E3D5520769EE3EEACBB4DCF11591591B9DEFB99C7EBD14D15E4017AB93A522286A73A63DED5AEF1206D8AFA92080F78DAA136D850E87110D848FAB182B3A98AEEADD432AF6D1645BC1BBEC3C9078A2700D668AD328D421E6C3941399E70CAD1880977A0504ECFCE188DD4ADF4D181002E1B52EC6D0FFB7296D3B1E84A80A9283FFB0E749FF132DF4CA6DF8D11BBE3CE2D326698B890ADE8C1729881DE87C90AD3AFF8C51100E51F17BB7B2DA4FE15277E905FA89E07524B416179A649F31BE624B96789BE4AEE4F786D55206E9B0B2715422C71375BB055C64CDC38CE79267A39DDD2A06A6E5C4B71314A7C36E781D088CA69EF52E482E7ACE6AB91A8C515798AE585F054CCB6EABD2EA356668759184453ABBC4086C7D972D8F13C84191DD43919857D6B1FA76F60C6E8EEA5F2F219FE0DF150F36A659DE8878DD05F408BDBC8B6ADAD8CB23A2670FB516EF545CA0271212EE2A989B8EC76B66B11F55083EFE5C8358DEBC6D666A0E320BBC005CFF55437C7F7CF15CC7C1C7F006D4C428672950D6C3C93927DF099908D828C28CF0829B769DAF3BC86FCAD9708C1B66AD049339D2D3337E7F2DBBF3A39BF97D5ED14DD2904B89722FF54B9C3246089D9446EAD19E1B62AF1F6DE45F5F15EBB8A6547BB9E6259BC40FD5221EC2ED06964AA57A0A56FEB4B9BDC1573E25D35BABC65EF25B8CF27AA18EDDC74BBD9AB0FDFA714C6B353505B04CF0CF63F6982BEB46F34BAA905B3DF3B0A443241543FDDA4465F2336F989A7C65EF5B1517247AB5856199975B0DCA1DB3D5646D0E0218A737D012452EAF8BC0484F9E3D9B0BF231BAB5CF037A61012C82CA986481755535A64F1911983CB9A90D33E7395F738862CE202EC4E84137B09195D8CD724332219D6BEF28C4AA38A35617AD9CD403E554D6CDC2A4CDDD26A7A781A233760F96BEB1BE4F4872A79FCD54A73268A5271AF5DB64A5F37D2452DBDACB497C7B24AD9013E2D4353CA5EB98223E1864810DB17D283C5E30F189E93B192BAE53D1DA9B2272EA5270856FC41D0BBA93C0279BAA76F330429EA9AC3B3B24AC0535048CC944898EA5350D18AD08AFDBC624ED80570AE2F4077A0D1182DEFA35BD14E45E12B49B153661012F71A1B342C9392171DCA37FB36EC25FE2BA738BC4F62BA457970A4134755AE5EA9C199424DAE8CF8856F15B60A49652D7820027CA485D9B732 +ss = D702E489BE8BFDE28B58F91E1C17D7FDA656E0A35D59B1C890F44AA88A6BF9AF + +count = 64 +keypair_coins = F8EE95521060C03BB8DACC79F7EB7DB640F545F315613A35D447A09E504CB4E17373D22CACE9F3A09FCC5E85067EE05C0E537AA0738F79101236B4E7D28F2889 +pk = 3C2199C59446AA08C7646C1F567AC35C18B82CB24AB1C51F2CE8A79BA51F432672CCF12C23A5750E9C9A6818B628A49A812377587323B1E63D8F21A9DFC76095827CFE352667C16E888B1A621736C28C8ACEA052F8C4618591B36650A63CF00B904120CE716FCFB40DB52347B12486442267BEA46C1B778A98268481155C53A72C5731AC2EE36FB72C61B60273D1419AB8E82611921C99DBCD4E209D2AF64A08AC27BCD21FB7B9373F8A84241A1BAD24C8DC11203B3554AC802DCD18104DC8833A4B60EDB07F9135B452209B65229BEF0BA922CC60E32954096794B7248F94B134143B0AB3A8C2288A6065E7ADF5049E918B3447AC156BD462A204A6D8D680761B9E70D8796FA149DBD45509B6169BC34EA8B876D30C7A2E51943D2AC5897486AC67B2FBB9B0BAFC49C39CB459C8A397DB06693C20CD7CAA079576834A0991761C79FB660843778229B2AF530276C345EF8C420EE395455AB47DF46609B0BD34E2AA7F35AF596750C71C4AA2754AFDC48481A018F2499FAE61584ECA38F331C571BCBF73AC01B349953081908979499F2BCD6939B81A5199FB5838324928372AA2EFB6C8DA025873318C08117FCF47302FE99A31B923BA947871C6AD7168246341AE1C567F8706B88F240473A646173A58D559CB5D3865F2072D99B78CB7D63617FC05DD16391830CC22E2CCDEC55C46F84262F59D1718C473626F55C8022849935B3A32F55180DD7B67CF496C999189D177CCEEDA613721718B0A2E74E0301E667AE8AA36D83298B2983054A3824D64097E380585C4288BE24E5E711F09E72D31D29164FB34EC7068987241266587A367B067284F3595663F927255C66BC7C79E5575744500792E8236288A432B092597069182C28667C51B76C4A422DC8A023127B58979290043CC79011205CC7E61AED141BCB4C090A6405263E3C9D613A5D1B5B7E0A8C5915611FEF213EB4A9891D49F303967EC3AC40EE145E8724E8AE90C6EAB8EDF970FDDB459B66B654C8C1FE039CE07EBB50E441BBE386AC39473B9A6A26F0BA3799155BF047ED33A56EDA493C26B6BFA912CD56623B18254D84C3E8E34A23B3948D4579D1DC301706C835D879787CC5964334E52875836E4B105FB9ABB613BB3AC9A65BA8F39470E3AA20BDB1741F1F78D527555E10CAAC4E17F57E89A520514716A6A7FB3A5E4C8792AB5BDD7C6BDC3B6B78AD67054166DDE3BA339F364DF76281D4515E4229547D235BE6B6925063CC3832E08D192B6193D6C02A0FAC9629AC6B431846BB39A9D123CA6C147AB5AEC49FCF819403CA08684A418C04E6E6397CAD03B77B2BF3624B89D176F87C82508C9CB13D60B9B3194FF52A7B58413088B2964B2B92B94463F2CBD92444A888154410990C2D5C018916B5F7059C2087CDAE1BF06942D05D997BBCB289BFB0725DB84F6E23C96DA5C64595E96969097B8B9A28C5ADBE36093203F01039A0ADA6E63A21D22794405940142E0C959BC624619B964DC6B60A1CD31DC99C4342D1ED67C534570A658361376378E82896F216E57C21159967212481845C112FE0A3B1B4B888CE4C22B3C73FB87084D645359A23D7929704738AF9EE7ABAEAC15CD8C6D87295F849341BDF68B24A85621F397FCD31A209B3089151BD44C9D90092EBD2844FE173392A8836876CCD9D97CAD570BFB55523CC7763502ACC4D337E8634F97647F4A0996514264B0A3C6681022B739A66A98B92CD0577CF1906BF72CFDB23605169D0EF37AB96BAA1AAC1322149BF682025C3BB7ADCC79C1A9C8FB52C3D4B529FDA48997BB71D18A3D4FD201000C4648B634778B7A5FF190A27C1E631381B777AC0E858DB4033509C66BF1BBA3A5828FB7F578E8FA51C7C87BFCA883EA96A968D78BF312983E6BA51BD05617C90A1677159DDB6D4FFB62B8642E56ECA75CBA3F9D810102037B2C57C7502A60831B15B49C87B7A14FCEB228D2F0B82E1A5CB632B8D3070560977B24D591E7CC0C07017A09104D2EE24E6DC2C3AF1231AF922D62629C32481BFBE309D5A0CB4B61C2ECCC7E9BF05FAD1A7FCFC3635192C90D76668FC91A297CBA04621DFEFA729996BD118A308491B59C16CB7077456B0B48DA4757F23B90253CA5A2C1AEA9A524E08293D77022F66B5707AA4F30F6B099332CDB36B957F6ADB81A6AD23469A7B265A3E05B2DB868482FCDBA0367177BBBCAD04F3A50ADEB85DED90BD59DAB +sk = AB4545850434076342EAE8409FE0590C34955E860267305FCA05C347BB3E53BC714E3134A6E9B338674A9AABB02F021D1A09A190757F03D573C27687F7E35F2D77294D10CDED732218395B344523F1B704B27689DCC286B5C98217F239C159AE5D655436F00517A50C6DC6B7F4F111E7F37A0F319BF6ACC7B0E3345C9367B2A2B8D9D644936220C0A817FBB38CEB3469CD55C661E1C58D06807504443448C4E53204DC59C60A5153494478EB4056C9A85967A42EBBC287AFDA51FDD6B84B285523D41D80A56F7A68A168A4527D902311B18D5E381CFDD578BB7924FE687D3AEA5607906815181171A727E4DBCE1B678762A8B03C2A2BFF1635CA85332AE90F14B880C5EC4E5389B7816AB885C44A8D83C5EF0C4C754C7B6E673D984938D3CA4EB0F5B83B90BEC27172AC85154EF27B91623841E188D76B040F958C38C8A112C05B54103E55A159DE0954F2477E798A573339508B7C2AC3872A623429777BA3179060135C083E2198D1E0AA01967C39C27372A1A36A92BAC3BB13EE3C94B1F0391E2702C50253DD497F16F39BDCB9C68CCAAB6312084884B113E70F38555422767F4E613B2E87AFFC01395FCA37DF0A1AEF74263C1001392732D9D1047CC7C6FB910AE6136C33094526876A113514F2918909532A759617DBE2C97E72176490995DC82B663655DF65324B1996A42150BE41B2A1C90F03B2A6F04174DA1B1CC7FBB024C3C972B9714300C683C28A90F48B01C28607922C3ED25601A609673481B365544B7C36A9550EF20C37005B0E395A268E90CE1A5271E1421B46303B80CBCC81E2894D7569E82C2F5D8C6996C766BC505976628CADD84A3F468C67C209117C8254BBAA1BA584DC2661728A69E959949ED6C9F1B42F01EC8E55614AEB7168CFBB5E16504EB9F585C7789C48E59C17B5975C444BD6E32A6654BCE298A605043BD367400C14B1D8E1A592A034543C04A44C85711AA66C807FB07378FB525600C19D9A4A9A8C920BA7DB0B1D912A45F2B6D518B469E9121D25CF40499196376D3D92827E1B96AE255AFF288037793C7DB07E1D15533C07162AACAE3255C0CC368E2FBA3FEF09540952910EAC0FB2F3AE376AA666FC97A3E122570CCF797C79EC575835E0BE6E808B3CB1B72D8241C3679BF15020B6A63BE65B95A2C9147EB98C6553C71C550E37603E6B73C877C94E7B603A22ECA456C1409D5AA049673D0EA17C123B1835692253FCB589186BAA498F39481C3D0640A4D34931033B30F26EBED6CA9C49BA6FB219D6DC8461937284235A6417CC9C0CA0AD385B04B01C81D5A7B97A34977250E3679AC55C3D76D83B1F7B99DBA039DC179147223B5D6C11FC9109DC062A1E4B7C88C710C449320949BB4405B28EA2C04D48C58AABB46EDAA58E442F3AB6C9810B6D702855F7CA91AF71B0E574BAC1040DBE864DDAA76827874839414CF3418D1702C6F368A10714CB25E208C8A5779F639837A07E348841A11714F41399DA175C49678307D3634D6B9921880FD43CCB8D7842E5F34CE44A4923E7CE6B671C7A989AA748604D147CE7AC25A1533E80AB321B7AACB8D523A3A6298BEB0CFDA435D77714993173D080827FB07B7855769EBA987696AFDF58231F361D2164277BBCB26DEBB43D1395A23A8D890A2CD71362E2340EB68B84F0B23345D1C449353528C2998584941722A304677008DA1A13F8C8FB0687CDF688C707A73D121EF5C609C2150C1AD346A2F85FE3F58AAD4280F92C35125345610B901C305F6042ACA2F6CC2A4A0D1EA46E378098125B1956F12F54154023549D64D799D6972E3B283108E779028C1F7339A9C3D8676CE316EC9B9F09D654D8B84AC1D26223B36AEDB584084855374B0562A113D02CCE4BC1AD3EE1B69CD76EFD0504B48724D25C3416FC2D12EB58F174A9278A6620856763744A1F863BAE4504C779571D83849A88C023F15CE838B524A9C450E2B8592B98B4C89CEB35990BD39B74B87CEF750AED976F40BBAFA6F03C531B0A9C47AC22FB2B24609324F262E3233274F088E05181B9AB973A4C727EF53D40F914BAE5C99D919537E67EC61061C7B61B7D17B72ECA748894A25A5A97D5876D4608BF5C2B55FD85243B1117FB907843E47C83D29E51A11D53419051461BCE776C040C848CB8522FD2C14880B87FA970873B8F3C2199C59446AA08C7646C1F567AC35C18B82CB24AB1C51F2CE8A79BA51F432672CCF12C23A5750E9C9A6818B628A49A812377587323B1E63D8F21A9DFC76095827CFE352667C16E888B1A621736C28C8ACEA052F8C4618591B36650A63CF00B904120CE716FCFB40DB52347B12486442267BEA46C1B778A98268481155C53A72C5731AC2EE36FB72C61B60273D1419AB8E82611921C99DBCD4E209D2AF64A08AC27BCD21FB7B9373F8A84241A1BAD24C8DC11203B3554AC802DCD18104DC8833A4B60EDB07F9135B452209B65229BEF0BA922CC60E32954096794B7248F94B134143B0AB3A8C2288A6065E7ADF5049E918B3447AC156BD462A204A6D8D680761B9E70D8796FA149DBD45509B6169BC34EA8B876D30C7A2E51943D2AC5897486AC67B2FBB9B0BAFC49C39CB459C8A397DB06693C20CD7CAA079576834A0991761C79FB660843778229B2AF530276C345EF8C420EE395455AB47DF46609B0BD34E2AA7F35AF596750C71C4AA2754AFDC48481A018F2499FAE61584ECA38F331C571BCBF73AC01B349953081908979499F2BCD6939B81A5199FB5838324928372AA2EFB6C8DA025873318C08117FCF47302FE99A31B923BA947871C6AD7168246341AE1C567F8706B88F240473A646173A58D559CB5D3865F2072D99B78CB7D63617FC05DD16391830CC22E2CCDEC55C46F84262F59D1718C473626F55C8022849935B3A32F55180DD7B67CF496C999189D177CCEEDA613721718B0A2E74E0301E667AE8AA36D83298B2983054A3824D64097E380585C4288BE24E5E711F09E72D31D29164FB34EC7068987241266587A367B067284F3595663F927255C66BC7C79E5575744500792E8236288A432B092597069182C28667C51B76C4A422DC8A023127B58979290043CC79011205CC7E61AED141BCB4C090A6405263E3C9D613A5D1B5B7E0A8C5915611FEF213EB4A9891D49F303967EC3AC40EE145E8724E8AE90C6EAB8EDF970FDDB459B66B654C8C1FE039CE07EBB50E441BBE386AC39473B9A6A26F0BA3799155BF047ED33A56EDA493C26B6BFA912CD56623B18254D84C3E8E34A23B3948D4579D1DC301706C835D879787CC5964334E52875836E4B105FB9ABB613BB3AC9A65BA8F39470E3AA20BDB1741F1F78D527555E10CAAC4E17F57E89A520514716A6A7FB3A5E4C8792AB5BDD7C6BDC3B6B78AD67054166DDE3BA339F364DF76281D4515E4229547D235BE6B6925063CC3832E08D192B6193D6C02A0FAC9629AC6B431846BB39A9D123CA6C147AB5AEC49FCF819403CA08684A418C04E6E6397CAD03B77B2BF3624B89D176F87C82508C9CB13D60B9B3194FF52A7B58413088B2964B2B92B94463F2CBD92444A888154410990C2D5C018916B5F7059C2087CDAE1BF06942D05D997BBCB289BFB0725DB84F6E23C96DA5C64595E96969097B8B9A28C5ADBE36093203F01039A0ADA6E63A21D22794405940142E0C959BC624619B964DC6B60A1CD31DC99C4342D1ED67C534570A658361376378E82896F216E57C21159967212481845C112FE0A3B1B4B888CE4C22B3C73FB87084D645359A23D7929704738AF9EE7ABAEAC15CD8C6D87295F849341BDF68B24A85621F397FCD31A209B3089151BD44C9D90092EBD2844FE173392A8836876CCD9D97CAD570BFB55523CC7763502ACC4D337E8634F97647F4A0996514264B0A3C6681022B739A66A98B92CD0577CF1906BF72CFDB23605169D0EF37AB96BAA1AAC1322149BF682025C3BB7ADCC79C1A9C8FB52C3D4B529FDA48997BB71D18A3D4FD201000C4648B634778B7A5FF190A27C1E631381B777AC0E858DB4033509C66BF1BBA3A5828FB7F578E8FA51C7C87BFCA883EA96A968D78BF312983E6BA51BD05617C90A1677159DDB6D4FFB62B8642E56ECA75CBA3F9D810102037B2C57C7502A60831B15B49C87B7A14FCEB228D2F0B82E1A5CB632B8D3070560977B24D591E7CC0C07017A09104D2EE24E6DC2C3AF1231AF922D62629C32481BFBE309D5A0CB4B61C2ECCC7E9BF05FAD1A7FCFC3635192C90D76668FC91A297CBA04621DFEFA729996BD118A308491B59C16CB7077456B0B48DA4757F23B90253CA5A2C1AEA9A524E08293D77022F66B5707AA4F30F6B099332CDB36B957F6ADB81A6AD23469A7B265A3E05B2DB868482FCDBA0367177BBBCAD04F3A50ADEB85DED90BD59DAB9CC95EFE512C84010CCD7118A92522CEAD44CFF28D6E223F76702A47694C8F057373D22CACE9F3A09FCC5E85067EE05C0E537AA0738F79101236B4E7D28F2889 +encap_coins = C4D1D167371706468915DFA7F41E45FC48FC5E02EF79651C81C87BEA7861B2B4 +ct = F36059C15B9D55453538AAEA8939DCE8716B0DBE63A61C13C32D10591B2255F15B930DB40542CF7A78F97D8FAC27532718AC6919D4B9423058FEF7BDE938F561C61A4C9AAC5E6491D16526DC9D64D045528A63E736FE1CADFE6FCD5190664EB4B7C544D9581D364500C2E17DA7EC5C6E8F4C585C1097393A051B5AA2EFEB530B9801280C2C16174594E1A24266E61BBBF2654E20C5DB6D08CA679A2843E2AE34062517C6CC52E22603507EA6CAF55F3B33746CE11C180462299F192C240AF7F74B0FE29FECF18AB806DE6AEAF97240AB58FBD660A0A50DA2FEDF0F9A0A7C1149938F5411E5C67783F580BEB46441DAB1B115CF6512F0A20933D3F7A45EF4918AAADB979FC685F0A3458B7A5A211C6ECD9E68EF4ABE1BC3CA794B3B548ABF73F2E0AA905AA18D97EBBE2A86AC1D3FD20360A9139B5FFA821A8C9EC0F5B860BE61386D81FBB9DE2FAF4A9F5B7DD1AAA4199295B1AB4FD8835B9D2A1792EEB8F3E46AB082538AE0816E716C654BA3F7D32ED9D030861E999F0C22C7453248D73B11868FA995736E2E2FE181A39E891768DA24BACE0157CA8D0BC9EF68EB91AA5797026F788D87B8CC367856FE10BA5919551E8BF2F46F67992EB7EF697BBA02FAC67ABA0B5BBDBD28FCF94ABBE971D59D71EA70119AD988963A1E6ECD0782482F94F96B2FF6CB63B7B5ABCC93B4B7B89684BB370EEED9A2A8E620A7B97DD97C0902627E849D44AB436ED545AF3BE0C92BC1148DFA499A5AC7493E810C31D0352C82D373C5AD55504EAD1399EF14F4B23406672AF437D44BEACABB1D42352085A8AA35686455EDF611F0891203A42090AF5B1946C869CCCA8EC44250660D9B6437711068D4CF6B35144550AD82B12789539C0D21EAB3025662FD9D3716956BA639E556E14CA7490D65D8E8EE93C9EFCC63449C62F939D82916CA6452B61ADE117E01C277E33AC020A76E8DC3B479CDE151B34B241D21097440905A3E6D74EBDC2670E026CE49A8CEA6CF0A0833A3BE787B72A029CAC2C0D96E028221CB937281348AD03F3FD8305B82CCCD37510FC53A11603F238DEDE2E14E799DD2B28C96ABAE6C7AC9E26732CF3FD0BC1043CEFA3FA30FBBF2294426CF999063443097102EFCCAB84F4E354CC2812739815ECCFB2895A687A8B66D079280983C1CD33B7C3BF6AC84979623C87C0CD22DE7D07C1E5E06819CF087C249D3E02EE0191469A64D63C086E8D6851B15DF9C8573BE5A5499740E40484E6F52336E2F10201E788A8BE42A5CFEA22BE8A08ABF69A950D289C71B6E9059E07250C29B968B5A4F3D34809A8E900CCB8847EF634B3D807B3A12AB612680C95A0966023851CF710DBDC2624DE6514AE5767F15AB696584B48E21F918418B2A0768E2891D5E33BD7D0AEEB5016BE54B44D51849B104726790498D53C179E65798E19EA8248BA28CD2194050E8E5B2DBE3569D85BBB3F8672AA7C99E13E21B72F7E9D283F220F446EBA479DCBB3BC294445B0CC799D2554FA90D4304050B78A89DBD5AA99871CF6632F179C7491F51A606B90849D293D47523E162B9C006BB287C661B7656397103DB29AD411A47D95D9DC19B3065B7ADBA8DB41915DDDCE9971860B1818BCEC3AB1C6AE9AF3D44D9E152F8B1F38163DB05E250682839D7304D706101FD1B06BB46FDF67AF7735C7A4BD71A1034907BA387D6BE58427DD770823ACF41F1FB7BFD029353ECDE829A6E19259B603402C4F3A05FA88473DD802F92BDF799952990C7495EDCC65835149E1D96D2D7431128C5B6C688F3D95372371BEC7B9ABD9D5173D106D9BFD40C169983A63666ADB1AAD17183725092FB3D4D22932D1E8645F7A1FD8C5604B4F662C8E3B5ED10B144DE161923DE1A79B8889BAA1A79342CA0A72AF06EB0A045104C43147FCE6833EED49C31EFE6467DAA7E6A429D6C534B2074A66BFAD0EF79F291C01DA6699E5A344EA57152BC2B0BEC4F13964289F1F3BE12B1E159C497303623A6DEACE0BCBA1363DF8616BE9E176B7D2FEC99FC438A526DEB8CCC333A51E94609773105537DFD71A1CB681F77DE18E0EC0C7DF010EC93E0A437BD5361F450B8E29C714F8EF702E7971D9D83BBC4B4D9C9221AA1EAA470303CD93BF3BE9D86A24A09E44C5B7C0B0A2DF262513058A8A7C7F945EFD93ED9BC66A2EE2538C2A8ABEE492494BA1952D7B5C36F7E7B78D14852051A11A4511ED93F4089300FE26B35 +ss = 8F88EBC3E728A5E62931050A9E36A3788C6D4E8B11FFBB1A40E2E1C7089B914F + +count = 65 +keypair_coins = B8BD0493A882E3A49B4E0F6256FB1FEA0912562FD9BA26EC3D6C9CC12C8973ABC1B070E4E519D727F677E011716436BEE9DD0188FE38C00D0FF425AD794C07D1 +pk = 5651279153AF42D2940A191C57E30E0F1C6A3BC553D805AAAE5982C663C2DD034E6BD48DD4E0794D55BB26379871FA7692FC7FB61C8F0565916DB30861A2A61B346986697690D16185753395060B229326681B16CD5B8069FB5498AAC4AC9023ADC380AAEA764FD8625F765F5D73A1189A7524A6BDD1209A8A23BBC5D96C54B89B9F256D20F396B6F61E47E0989AC04CFB267B175A8B38395DC3E976FEEBA1967ACE1C491733CB3B005580FBF666FF6093597CC59362CF60D074F6D33C3BE33BD02BB0D3460ABD45889CBA06129AB11FE978D4749A675C32E2E9BB2D6816CE198BC5E67BD6069666C6B1EF780765664EF650C9847566E02C116F5318D1FB240A167A89B2381CB4CD7AD60EDA125BFAD338BFD668A008A9F9354999949CE5FC09AA21025A83CDB2C7CFDCBB3E03E0212D58B78E00AD85CA97E3F64A82E79D26053DA439862EAABF9BBA6A11F225CE27BE4CB2AC2EE73742DB5C074597FB25B50B83CF03758853576C8AD4C8E748CFD8306370672F20F315474836509C93EA814C9C77A4366325D13C52B0D5A231D79DDF765E774C9C60F6A2F7B1377630BE03149A31D7112E61B32296234678BEBBE05BCC4857453858B06680399C699FD23A9F96B95F5978437B5D453704C32317BEAA45222133D6CB8A5E984633081170C154D68674896911CE5014A9054C37901411BA72F77474B5591E0E1477705A3E1B535D4ED3B3C1D043DE517B23035239A39694005C00CA332D9B5C98A16034550D4A92169966882BCB28F01171E276BB36F98DC3DCA74058462F2CAA4D5A9E60991F848B6C519C45332B18232B900D9787DC78A685360336B685D5301315923F8DF99D34B8267932496AE4981A2CC94739CF075343DE4231736B42D9866B0CE7030BE42ACA98309021B24A1A518DD0107C2B03A75552C169B605635323D9CFEE4C607C656724B48F523A1EBEE51393E1538DCA234D864066F7417B1B67968A2C03F9B85255148A9409BBE6543BE9319A3777FBC586BAC8AA5574612078A6E9A78640757F63C1646E015D64066402A2A8F36B7C96E0A50EA13C220103194BB188C6947E533B1A173CDAF225EEC27720A61BB3017205E98258FB470641633D955D14589BC566C9FCE9590B6141F9C662BAA60CEAC1A7B0E518E370C27DA21E2A098D62433F2FC336340851E2E536E0B2AE8C2B2B58057B5D30A8FAB602C48CCFADA926455549EE4C15F2369F58742D5FA85415990FAAB1B76EEABA47D05A0C35653B36192A6B108046BCA55443FA075F072270E836293FF543D729400693483F7B44F0C65DBB17B5919858877ACABD77CCAB92446A09C8BE6653F9398B4D5540E8544D56D5C88DD20EA99344B747304F56B2AA725F1A858EB7BBAE293B891CA61C2D5942204455CB726C29A23231EACFAC678DBD002EA8395203172B35A448ED3944BB07BD2E11B9FB52CACA2213DD482159821EF5D9A98D09147E272D3A9B84023172D0D1ADE55662B02A9574C13A5D5B79575C25C9D46BC5C766E4768836F787CC6A771A772518E7C5A2F4716E007900DB8ABC8A630916A268B080CF12AC427A02C474AD28CAA73A5793BB0A7593913DEBFC4CD353AB92BB23D78A2822527E58F52F4D5A70B2F05EB0E6231DC43E5FB7C27BF6870181709F1B0EF4175753687A66261F32773DCC520C752CA7AD6344155BC63F000E1C18BE1D154476A4A639D2AE5E36BBC157A7C7F8291B6506F12AA8003784927284FE1B1A4FB70ABA9A39D0775DFA293F9A29A4FA3712FDA54C41E45C6696ACA509D09E42618164C34F78B5B385750EA93D39ABBBAC58640CE09E5A5245A37847C78765D731596BB10123F51793EA5D97C0321FB5810A22AF50406E53806569C53750153CA7B49DDDEA12BAF4ADE371B4C7D05E29369A5D1C71EE1BA62DB26C74B456CF30832018CFCA235B32174C031C53B4C653EE205C632218CE05676F2878930334C2C284D7E3B73683CCE303694E68BC7F95B0D186ACF5101D95FB6CE55ACDA6743C7512638E42978AF9037272A1A5E23E3632059EE1A3367CA9BACB27930700D19327A0C6AC9FB57D3E41BEDCDCC47EFC18653C2C5CD78200AC77B066B018D137FACAC920790BC9E593CC243761CAB947818E8AD7AE6701601644AACCB78EE7BC4E233AAB6CF57188333E7B4D655C9F1EA4B448FBE32C4996FC298D26CAE25D276BCF6E66BA65E3E97791 +sk = D7E3338B3CA1D6118B7485BF85AB9E8F6C36E158B67D2C3530B0A544B8AFAA0A8604710987429D0D1B1EAABA8F06422E992C475DC4CF909061EFE673A3547575E8B00BA47D5A158C22E6B2C280B3152165A5A01A43D801E96791B6D99C92C0B0602C94C0B13F2672146A7044E4372C5FA8843FA7974692B0F292AF9FC3B5793092C705421E6AA39B7B3EEC76694F5555985A94879ABF737949BC33CFD1F8563565B2F345B6B3389FE061509BE046B3A048A73599AC20466F0707E9B46045352F94507659BA428CC6994EE3375B07D09AD3BE1872C15692C7394626CFC01BF5435D7922BF9199533A22CC4FF021A97C571DB311485B36E2A3344EB880C67819AEA18B09919FBC57CBC11CB228F8C24F38A445C512245C3A5CBC65D20269EE849BC268899981B9F334704499B60A891139D9470A1A147F38470752C4EAEC5B14D51817FCCA22E7BC1C585CD2189131960A9E9284AC7940B2949707EC7A67F22DB280775D8163394A3A9557BD48F50C26F177FFE83030A3455DE1196A763F8AF156DF73CE3BD07AC70447573A79DD04A59E8B40E39C6FEA736E14F1B1B67B5CF556C3ADB29FACFCA4E6D8B759D37737863DA2A7AC4A645A8F202AD61C17068385C21415F7E14146D896020B89CC73AAD60135D5A3B94879184E086F1066A9F56041B6029D1F538FB5B18A7A741E04E2C158B69927A1A7708BCC411988C0C315D0D1BC3A31B0CD473FCD3ABACB1BB3EB23224379B5350081EFCB8C45584D3B845E2500420453718AD83194130983A355B1388BF246B9FE7400443C52629812FC1125C3800C3F824C0FF95BC24A2E8B306D5E3278FFFC585843BBFCD06D2EC3482295717A5111AA7B6475040083106A01491CF981197EEB77D9B01C2BE476F07C59CBEB5C4D19A2000D61546A9CC149A149BA8E57CB0ECB3105D94715C7B1BA7800785EDBA95A7352583354B93CBEF98C78BFA946A7431813EC36AC45488B170859C098B7C6813CAB2FFB519814C3A9DE3C254ED7A144FB6D15B183CB48A9021972233382FC8C388511ADD6A86837801F4BEA0DF0103B3A152648BBCDA68499352691BE0C3E5218A7C22C8CE49790AF1BCD4F6717EAA18CB489B446D24F5CE239C79A6E34215E87BCB8461B5B509C895EC22F94C17C3BCC5904D968C469B200D3322B423761E3749556476D925A915971A62A5A330ACBD106AD77DA7897815CFA31CD44310D44915D762164B6170B2916B5427C694FF3340FB16B73500E92833ECC35BB25DB6E652701D85AB215B366A173604C2797C2A9C420E069E7E4B3D1120DBD1C196D105211134478D23CC4428F8F56182FF3A51C7B84F01A08BA157E86B9374FB7C2E7ECA3D4B65F4A73472E38C6F7C06883C99C4CE934F9B04436D250EF262C42D4862B90C11F4924087469210A25CF4CB29D139D85D9C904004CB246348C60736D707B2B9B111C91ACD3937D9E8934032746AA5025BCEC8BF637936448A0DD67A27DB2A74B60BBA82BCC87D73D4A9033C427A85883613EDA43829C7CA3C7A8F24364633610D8199A5EC8038D0B6686ABBD47692ADA94282C40799ED4BF8ECB65EE7C8B2047C41EB255318C139B89CE909831FE3024BAC10B4110CA34F1BD752858A4C0C307537263723987F6C3E29918FE816EC4956C5B4B33D532367F14230B14357E94BBB7E8A947453E4EB606DE4C695468C9B12458340CC59D0B23B01B2255173AF1206383AABDA0BB1FB76A65A814BB2A4A1A0108650617090C3A35EC675650745381E56658CBB71A81CC386BCCEF66CD599B1819629EE02015B4928A5D12838892333974877A2995BB2B73BF3B292DA0AC34D26DBC501A2C20BE0E054B8B0BC541BA92D135118A5A17C19A2B3501C60921B960E013F88CA623D4B37717BA5882BB3BDA2BB146C42CA4B339A01FCFF7C35EE467A4E7C282F175985BC07481BEBF5395E0D3843759117459C2B7A45985A672657B787768C32CF37ACA5A419743C70F48BB78D53F6D65B5D3D079907975B77698649292AB0C8C93938147B6AFE695B9774881CB11AC88AC3A1321965E598B4E01B76114C6B47316657B01116412B0E4C5AEB29E0C1856382569FA800A91F6B7699928A12AB0BF92A395F643234C98B66501BB66B8BA4B88C516101594338EE57700B95CE6E334B7D4425651279153AF42D2940A191C57E30E0F1C6A3BC553D805AAAE5982C663C2DD034E6BD48DD4E0794D55BB26379871FA7692FC7FB61C8F0565916DB30861A2A61B346986697690D16185753395060B229326681B16CD5B8069FB5498AAC4AC9023ADC380AAEA764FD8625F765F5D73A1189A7524A6BDD1209A8A23BBC5D96C54B89B9F256D20F396B6F61E47E0989AC04CFB267B175A8B38395DC3E976FEEBA1967ACE1C491733CB3B005580FBF666FF6093597CC59362CF60D074F6D33C3BE33BD02BB0D3460ABD45889CBA06129AB11FE978D4749A675C32E2E9BB2D6816CE198BC5E67BD6069666C6B1EF780765664EF650C9847566E02C116F5318D1FB240A167A89B2381CB4CD7AD60EDA125BFAD338BFD668A008A9F9354999949CE5FC09AA21025A83CDB2C7CFDCBB3E03E0212D58B78E00AD85CA97E3F64A82E79D26053DA439862EAABF9BBA6A11F225CE27BE4CB2AC2EE73742DB5C074597FB25B50B83CF03758853576C8AD4C8E748CFD8306370672F20F315474836509C93EA814C9C77A4366325D13C52B0D5A231D79DDF765E774C9C60F6A2F7B1377630BE03149A31D7112E61B32296234678BEBBE05BCC4857453858B06680399C699FD23A9F96B95F5978437B5D453704C32317BEAA45222133D6CB8A5E984633081170C154D68674896911CE5014A9054C37901411BA72F77474B5591E0E1477705A3E1B535D4ED3B3C1D043DE517B23035239A39694005C00CA332D9B5C98A16034550D4A92169966882BCB28F01171E276BB36F98DC3DCA74058462F2CAA4D5A9E60991F848B6C519C45332B18232B900D9787DC78A685360336B685D5301315923F8DF99D34B8267932496AE4981A2CC94739CF075343DE4231736B42D9866B0CE7030BE42ACA98309021B24A1A518DD0107C2B03A75552C169B605635323D9CFEE4C607C656724B48F523A1EBEE51393E1538DCA234D864066F7417B1B67968A2C03F9B85255148A9409BBE6543BE9319A3777FBC586BAC8AA5574612078A6E9A78640757F63C1646E015D64066402A2A8F36B7C96E0A50EA13C220103194BB188C6947E533B1A173CDAF225EEC27720A61BB3017205E98258FB470641633D955D14589BC566C9FCE9590B6141F9C662BAA60CEAC1A7B0E518E370C27DA21E2A098D62433F2FC336340851E2E536E0B2AE8C2B2B58057B5D30A8FAB602C48CCFADA926455549EE4C15F2369F58742D5FA85415990FAAB1B76EEABA47D05A0C35653B36192A6B108046BCA55443FA075F072270E836293FF543D729400693483F7B44F0C65DBB17B5919858877ACABD77CCAB92446A09C8BE6653F9398B4D5540E8544D56D5C88DD20EA99344B747304F56B2AA725F1A858EB7BBAE293B891CA61C2D5942204455CB726C29A23231EACFAC678DBD002EA8395203172B35A448ED3944BB07BD2E11B9FB52CACA2213DD482159821EF5D9A98D09147E272D3A9B84023172D0D1ADE55662B02A9574C13A5D5B79575C25C9D46BC5C766E4768836F787CC6A771A772518E7C5A2F4716E007900DB8ABC8A630916A268B080CF12AC427A02C474AD28CAA73A5793BB0A7593913DEBFC4CD353AB92BB23D78A2822527E58F52F4D5A70B2F05EB0E6231DC43E5FB7C27BF6870181709F1B0EF4175753687A66261F32773DCC520C752CA7AD6344155BC63F000E1C18BE1D154476A4A639D2AE5E36BBC157A7C7F8291B6506F12AA8003784927284FE1B1A4FB70ABA9A39D0775DFA293F9A29A4FA3712FDA54C41E45C6696ACA509D09E42618164C34F78B5B385750EA93D39ABBBAC58640CE09E5A5245A37847C78765D731596BB10123F51793EA5D97C0321FB5810A22AF50406E53806569C53750153CA7B49DDDEA12BAF4ADE371B4C7D05E29369A5D1C71EE1BA62DB26C74B456CF30832018CFCA235B32174C031C53B4C653EE205C632218CE05676F2878930334C2C284D7E3B73683CCE303694E68BC7F95B0D186ACF5101D95FB6CE55ACDA6743C7512638E42978AF9037272A1A5E23E3632059EE1A3367CA9BACB27930700D19327A0C6AC9FB57D3E41BEDCDCC47EFC18653C2C5CD78200AC77B066B018D137FACAC920790BC9E593CC243761CAB947818E8AD7AE6701601644AACCB78EE7BC4E233AAB6CF57188333E7B4D655C9F1EA4B448FBE32C4996FC298D26CAE25D276BCF6E66BA65E3E977918B12F00BF09AEC2B492CF53686BEB31C558D0493CC7B2B9A9DC7265FA9EDB685C1B070E4E519D727F677E011716436BEE9DD0188FE38C00D0FF425AD794C07D1 +encap_coins = C83B6DDC081188C55BD3D236D360F73C5CABF211676ECCA5A0F2DA3550D51BA6 +ct = 25FAE2CC7AA58CBE79B4A93B741E79E9402EA55B503E1B95BEBCB25812332017FB8BFA499AFAC97DF194329459BBD0C06727C42D171383F6CB5805CF653991A4C297C4A5502881497B24E882810B0BC09BA88FCFE1566682B4C975F489F33FD74861CA4910C1C728D03304795579377BE1782903E281788B1B6C0FF5B17CAFB579175F17ECC8B03121D62E4347E05CE89182ABCB08F75F35027A82E1CA618A2185B3B02C063B2D59895C64BFE47AF514D962135B6B64BBD65263E087127E2B97CE955B30E6597F2B663229CB4A1C7EBBECA627CF46770C9833D2D8912B3EC840B3AE0264280E28C3D11004D2BD51E7129C20997EC11E901A228F4D610700DA7AF920611E71662A4B735CBEEB3A12196615A146EB081AF2388EA01E7139C5073854680D0F3E1EBD2523458138E478F6518F233199E47F53582A9F5056810D603544BBA2ACC9E1616ABE418C897D56FDB741A308C9DEA348EDEC54C7F4C297F19C15781D1BE3B7CCE2DD68269FC36B3D148FEC17B27D3D703BE482BD7093C394C57CF757783FCBA0BC26AAD0BD1883C99091C64F0FC138D88EE969890AC17312797CFBD1BDB6E90D5A6D45BAD80FB095A266FB91DC736F6CCCB1997194BC4BEBE5F50B4B587EDDD240CC600CF646793D895A8552695F634464CA4DC426432A243871B53CD0D457BE53D6BC94731787D329C216E92965B5AFB44D38907B67384E039F6C279D35F298E398734BED43E943007224B658C9CD977DA9E8D46A03513889BA69046AB21DA7FE9FA3997D3DC52029C084B60A9EF0F3792BBA67AF556C6340731002A85089BB56F52EF7E404D8A1940CEEBBC4229133E9CB5AECDA0496FBE3BA41F89F5CFBF72D39EE3A2883E26C1E1282025487F25C238DBF7FE082CD469D46F43EF0D1ACB6AA819EDFD79393E0B868F4CBF035033173D6AB96B71B5FAC72A906B37C8E361E6A4D04CB7069594F8E81D96D6A70E28ADB1AB7CB7ED0E02DD6D4811C69250022DE002EAACD82E849306ECA9BD56072DB0DD09496F636C7E5C7B46BE58928169A62E2A4189A1C96D9B671485D2197EED7CD4CBEB2C1957D3F09DE8FBC4D3C9656450A0E6A87A2BA454D469CCE61378B730F0FA56A07280D496FC77BB9B779883169D4FB550CDB9BC29E954A8E541658C0C997682E8213B67E89C583D5B6933277365DB494EBF3EA2CE581CEC100D589416D5B9B00E70291DF096EC96E151D990EFFAE11A29781F91359DC0D0D855E1D5FD4BC6315BB163E8873F6456C145149889C8C8FAB8A32FB8F48E990C24E2BD359C0926C1A84AF3738A6EA1B0CB6196FBC980B75D3D821048B3D96249724CFB15F72254FA4B6E7C6F63440B5CC00F2D704240707DEDC037DCA995B605C869170382114344120D1AA9DCB5014D6BA5BCC574454A53A38FA860DAC2843657D5715640493CD4F1FE7F41D974FC55EB1D94940C875AF725FE2A11957A7D1AEFCDC9ED89619325E001575130ACDE28BE3147FBF92907E30C7910D66D918B24714A4E5C97E7FC20195042356A938650CEA924B3A5643368F06693E0FC20E81A699B0E6F2C2B672518BB4421C72806672589931D3C95101BCCD99893D78306807A25358B2907901919B92A0795711AE62F33101C7E3F0EB3CADF384153725CD21A53145C760D699F210A3D3514FAB7EBFAA123AEB1EA3722DE464151A06053D62AC8429ED4C99EE66AAA8684AF3080C5F8D72133D710BBFFF2DFA0B32AD4825DB8B6498FC0E1F846C640B276EE6C5B973019A0DA14C2EC57BB2DB2AE4B4B7E1844E576FF12D2ABADFF3499137F189481FF433E7F6D2D2A8EAB4A8FEBF0C4D28B51C22D35596D9AFB57356F9D0CDEB5F3E62A44459FD4C59A8614595F5910B644AAF479488DB7A62A8A7F4DADB70DC67B0F8CA26530E1212C2B2DA2ACB5DF6041B4D35428B8220FBF72A2239CE9F78794EBB782292974705C0700F6F60FE92461167759A933C03F963E39190379FA54332341B99557F9D7C3CC1A6C7B5A17077CBF30BC667047309F830E9783FB16C055DA6563F9215D17D0BB9EA279EC6E273BD2706AD6D50EC868F0EE99F6C2DF8CFFD68EA49476424D726B1DC2E647E330E72662034CFBCEB4B7AF3247339561DD286B58857D9FCA703B3F65BF824121BCA70DB849CCBF49C5B266D43AB0A4657C653BF7235F97373FCDA0D5370B82E53A08C62FA1BA6EA2434FBB0C8E696D7 +ss = 56D6961D8076674D9522BD0DC724BB742CCC11A10A0DC2DCEFB6CE62605F20FC + +count = 66 +keypair_coins = C0407E41DDF48D333978B89BCF2DB01E4613425B456249E76A6F25B8A2827BF5D89CDCF4B8ECE9F441926532427F01E9DD71B86EA949A59B14189AAA249AAF77 +pk = B7FA152B25C460C63C4D18AD733422163C0E26BA99530074269C212F2697F2073BCAC61E4E603B18B575BF696D7FEB8724400848F05E91186052B05AC7828127802FBD1672B3FB45FF418374D61F1ACA1C1B93AF018CB60F006D04418088216844B29F9B64BD46710657CA30A054BB1BB0161A857EDAB220813170D1CB96F3D82365317CFEE94EB1A8BA6BF82AF10ACBE3626C7284B622B314D72469EBC76D3AD8CCEAA93E08793490EA0A73408A1CDBB066B67D1351AF5A6C477D2B90B68A3982B70D32346CBDB15EF09736B28C23CBE03D18998270013509F13C7EB95D5A03895301CF2D0CBECE1908B3C28E73E676304B0C98F7932BC246107AC07B27090C2779EA2B8C987B084D86BCC40496A1C44C751438AF5951ACF276B25414D4E37AAFA3A1FA5B8FB0FA11BE21BC76B7816AA3A1DF142446AAC524A6A41AA3411E00609F297E698026F852094E2A2E5E9146F812C283529E16256050204AD3B03F04E35AF7D36799605903E8C3E2663F9E89791AA8CBF1B8047F2A159DD909D01A3EB3F081A930B26B6B3C32B7172B77BBAAF1AD51401C645B63828842EA7B7803F9699740CAC72B56F434AB7E1C09B4AC5368DC559D603C5AA471CD673BAC5ABF0F858DBC672E16F819149094F2B144D008C06BA0C36AB2A61053629F994FC233A38576A7821229E79685C2147B7B15156493C1EAA2C087134F1222758B00B3CC10804561B24974742C2AA016E23CB19C868244C65371B6BBF31D5603B46E58BEBF638FB7924EF4181D02F6A1DA6321A7C6A74038BBAF569B817A72803A4725569C82BAC9F1C593B437B533D62B8D31889E6679251560D0FBB4F768501AEBAFFCB116A23422F48CCD89E0C645A11B0F80AD2C77A2F30B8CF415084E5C9F655824ECA8BE8835A81A6C9832E09C3C596417657657A9C85A13A54D3C0D2C427A8BD6BF91245E80AC30A1B630BD395C02296CD5D63D9C92AB3CA1A8C47C89D1A742CBF4352B762A60226CBBBCB28272856B2BB3F176AB32955C96A0274723A508730AA94730F998CE0E04CE1E67726412233E8B96C31481BD017C67F1AEA09A3E96F897B70B969CF405BA7424A0E8AEA4B45C6206752C075E2BD3B3ABC53F99F2842A459A55118A10F87D8F0C2CAF4180EC741738D6A04EFA30F9B3B9AF587C33297BEBF8778B960596BC3095439EF3448C11871D228A0DC24718F6C59C8C73234A641C47917B27B46CDA986A1857315911673BA0468641757EC5AE71C860DE0B5EBF05CF6889A170743A27350B19E406A77427421A54F1C163862A43C6EC1260D45139B7419B0538AE31A0AC78584B3264CCA519EC35ACD94C1AE5B436EAF82FECFAC8681224FA810FB0A95581528AE300081EFABD7E599517C21F469208F4DAA500B9225560B9381707440082675293DBA332CA00C4CF746F46041B78D219EDA4BBBD32CF07E37E20E15C25F8A96B5706FCC71F620ABBF052A572D73B24C5445715C77187A1BAA883A714329D619A10CC2C9C84B2C4C098F0E42C4C00A77C44845B45003B7C1BC587A3F6C10D34269430765DA39550E2B78FD7B97CD9128A5D8653B7AA05164101A9285A9C1A77A8B255D1B8533A1315A82BCF7E6620C4224CE830B83844BB16560D6EF98819E0AB4523ACC16961229A0B0847410B19647CA7836345B275609D5D12BCDFA5163B0C4CAAF2A0F05993ED16B89DC14D33A60B56A0A298E453A4883C7B6C7BD2186718DA1A29895B2C066BC6A2896947431FB224AB31B11F204F8047BD5E421D92B78357694D8959991E56B6A123373C00463BC259F78A3C2E7B3526331323E9AF2BB55726795FD904160C302242B1BD7D65103DA1395D82AA5F662E4EDBC812479B0B79AE15F25A07363080D887FE8A0DF37B51B5AB7C3E878D21086CA0E1CC47D877194CAD6E384A81403ADF05C430D22D47516ACDBC946498A281611BB9F73AC3424F6CAC3146FAAE1611103CA4008FA95A8EBCA35AE114FFE14921A855F5049447643C391588444217A510AE31B82B5C159C928BA434890AEE2C7268724BBC29CFD152B05D73198E7B62B43B9B03E081CD0A1EA7395246CC890735268F189F21C143E5F5CEC76692E6D937FAAC7AF3ABC5480464F8B077C9352B14A22DC65514CAF392D1EC6C81D96C33175F5832AB3BC19C54229F45E12EBEEF4308B229C948D425016D674119C0AADEFEB21338BA6CEDBF7DF723 +sk = D338B8576C1FD9168551A681F9C590095B6B8D8474F571226A4B68EE81A83738BB964356EDB663D925960388C92896029A201EC7F046CDE497E3384F613A444634AA3C41656C6031D5233720241603612BEC1032AFA7B3D41242CE374C8B118CF6219FB5E645002530781CB4660403F88287D115BAAA07CE95496A7232862282A653367FBBCA1E337155A3C8905E368C1974418E735F93B6965FEC11CE7B43D81710D727A4C4B434003B9110D013568B7BBFB341212543031C862FAC505944B86394554772047B2A864A6675ED984583269362759CBB464E7E248A48C3554B8054ED9342AEDC8E221439F812697B691BD5C89B7FB11EC716BFF96C97DD73C45B00980BC6B1F69117C2329386518058E97B26626D98196025724BAF0C5729109399E035ACE9A630CB6D7CA9CBC16AB560DA5C01E37601BC0DCA7A3AF891B80418C0056145C7AC8C176605411A39BFE843CAFB4FA61463B20A504E984308F2B82CA7081A97951D0961B2664E2D7B41DF902571D02C1FE24EC0EA998609248CF51CF2F81D96A983DBD29BB37B9A7D559C72FC0BAAE894583A842FCAC92D910C7D682DDE70A4A7B26E3259B290A182392CBE36B68D2E321708E9C00D8C06DCA5043C1A461E76438B7801E8FACA17045B272B16999471F8FB42F53A43294124C3B2B7F7A13EEE8B195A01871909A70E41A0CEDB37F3F733EE259F40C1CD12C79DAF90788D78CEAAAB9E1D20B7FF8800A17AC28953A4E90B257D099DA195B6701A695195BC730389A84A499AB784762631935A5A974398C6988A59822BC6382B9CDC6072F0A6CF65C9DFF2309D1A433AC52E6CBAB472E788F76558D57986BAC5C79B921F06E509DB18C70EE88AF044B527E221E5A5105A19610F059FBF6009B985190AC81640607CC4FB69D4892B5D9AC12BAC26765AAD5C874FE3080BEFF77961CB9E747A8E4B4ACAF3F3B81D51A4A755AE8EF2994E8A722DCB5B8014C1CCDC6A79046664C3B75C02B91E0B4C5C250B8EDA5D67E9A0984A6052053D22266B2413B98D841E8AA686F4E0AEB8D5B2ED2C8BBDDB0374D0AD8CD47A0E6945F0AC352307AC0DB224EBA29BC09397F05B1308828CD42B85C556BF0A938959FA7CDE083D3D0163C21B016133145AE0C47EF73604999E76F9AD19432F82E762BA8174F89A23D09333F7E677F33BC15BF996AE6999ADA8747BB0C454412C2B651D2A90382937427EA555B3856D0250AB1E3663B8D78F3D96CF9EB90B5A501129715DF5DB38086076C4B351305A9718903ABF12609FB1BC8A59162E2152F8E0C62241CA5DEB5260D71AE162B7EA827A342584576B00DC674A5BE149C7744D7FF43A5B04A3EBD38C110630FF656F2FF042EB603403D14F18EB17CF675C995C2790E936CF8B60E758484BC04314E50105B28346829077AAACA72ACB46D331E9127B17DCAE5E639D2B33B9F3CCA468F731BF0B332BA41D196AB77B3C436702078730369CF59144540EA08B5025A4C880C1530F40A852E35F96519C91EAA680D90D25A4256FEB1878B48E39143CE43378EB3335D3E03F2A358782E0B54AB56860148DC0FA5CFD149CF26A7260639A347AA72B977B6F38BF29E1472C26B4D7F80E4BB3192DE06EC05A6A85479E1FB34C240CB0164B0170C151D330CFA3103F41183E458A4C15B414A043A1B7590AD2C79CD3D39E2E6655F17A1497F35C801064B95912349C8878C910BA7BBE3FB25488947315B4AA1C5C10870B0C81B8CA3F6472D89638C2D283EFD290EE108A9ABB71D353AA512A5601F67E02B5B9074881FF96650B9BCA29DB27BB8A2F84F09069C75EF6E42F5C989D3229B759908262818215958D1BBC1A40DCCE324A5B5A18CDE861C2EA085641A814BE004E5435A837F0CF7326710FE73BFEE27A0A739EF5C08204C3A98AB98A1BA865C51A82AEA57F1C3A62C12B7CDEBC6A87BA13DF51A1EDE668797199B5943CF5A6C595452E627B27C3554A92B4488A476D28348124F0CEB2A29A2EA926CC656496B4656B4C0323361483469BD183604D1CCDCBF8A25D05ADC1344C1315263F46A5C37BA98A96179B5AAEA3D14B7A7BB6C6CB4A1D068F6809938F5A55877137542642CD3A06B03400D02CC9FBE83A94B63441FA1C28F42DE5C81583D19C846020FB17AE65B1512580BB4D066C536926F7D571B7FA152B25C460C63C4D18AD733422163C0E26BA99530074269C212F2697F2073BCAC61E4E603B18B575BF696D7FEB8724400848F05E91186052B05AC7828127802FBD1672B3FB45FF418374D61F1ACA1C1B93AF018CB60F006D04418088216844B29F9B64BD46710657CA30A054BB1BB0161A857EDAB220813170D1CB96F3D82365317CFEE94EB1A8BA6BF82AF10ACBE3626C7284B622B314D72469EBC76D3AD8CCEAA93E08793490EA0A73408A1CDBB066B67D1351AF5A6C477D2B90B68A3982B70D32346CBDB15EF09736B28C23CBE03D18998270013509F13C7EB95D5A03895301CF2D0CBECE1908B3C28E73E676304B0C98F7932BC246107AC07B27090C2779EA2B8C987B084D86BCC40496A1C44C751438AF5951ACF276B25414D4E37AAFA3A1FA5B8FB0FA11BE21BC76B7816AA3A1DF142446AAC524A6A41AA3411E00609F297E698026F852094E2A2E5E9146F812C283529E16256050204AD3B03F04E35AF7D36799605903E8C3E2663F9E89791AA8CBF1B8047F2A159DD909D01A3EB3F081A930B26B6B3C32B7172B77BBAAF1AD51401C645B63828842EA7B7803F9699740CAC72B56F434AB7E1C09B4AC5368DC559D603C5AA471CD673BAC5ABF0F858DBC672E16F819149094F2B144D008C06BA0C36AB2A61053629F994FC233A38576A7821229E79685C2147B7B15156493C1EAA2C087134F1222758B00B3CC10804561B24974742C2AA016E23CB19C868244C65371B6BBF31D5603B46E58BEBF638FB7924EF4181D02F6A1DA6321A7C6A74038BBAF569B817A72803A4725569C82BAC9F1C593B437B533D62B8D31889E6679251560D0FBB4F768501AEBAFFCB116A23422F48CCD89E0C645A11B0F80AD2C77A2F30B8CF415084E5C9F655824ECA8BE8835A81A6C9832E09C3C596417657657A9C85A13A54D3C0D2C427A8BD6BF91245E80AC30A1B630BD395C02296CD5D63D9C92AB3CA1A8C47C89D1A742CBF4352B762A60226CBBBCB28272856B2BB3F176AB32955C96A0274723A508730AA94730F998CE0E04CE1E67726412233E8B96C31481BD017C67F1AEA09A3E96F897B70B969CF405BA7424A0E8AEA4B45C6206752C075E2BD3B3ABC53F99F2842A459A55118A10F87D8F0C2CAF4180EC741738D6A04EFA30F9B3B9AF587C33297BEBF8778B960596BC3095439EF3448C11871D228A0DC24718F6C59C8C73234A641C47917B27B46CDA986A1857315911673BA0468641757EC5AE71C860DE0B5EBF05CF6889A170743A27350B19E406A77427421A54F1C163862A43C6EC1260D45139B7419B0538AE31A0AC78584B3264CCA519EC35ACD94C1AE5B436EAF82FECFAC8681224FA810FB0A95581528AE300081EFABD7E599517C21F469208F4DAA500B9225560B9381707440082675293DBA332CA00C4CF746F46041B78D219EDA4BBBD32CF07E37E20E15C25F8A96B5706FCC71F620ABBF052A572D73B24C5445715C77187A1BAA883A714329D619A10CC2C9C84B2C4C098F0E42C4C00A77C44845B45003B7C1BC587A3F6C10D34269430765DA39550E2B78FD7B97CD9128A5D8653B7AA05164101A9285A9C1A77A8B255D1B8533A1315A82BCF7E6620C4224CE830B83844BB16560D6EF98819E0AB4523ACC16961229A0B0847410B19647CA7836345B275609D5D12BCDFA5163B0C4CAAF2A0F05993ED16B89DC14D33A60B56A0A298E453A4883C7B6C7BD2186718DA1A29895B2C066BC6A2896947431FB224AB31B11F204F8047BD5E421D92B78357694D8959991E56B6A123373C00463BC259F78A3C2E7B3526331323E9AF2BB55726795FD904160C302242B1BD7D65103DA1395D82AA5F662E4EDBC812479B0B79AE15F25A07363080D887FE8A0DF37B51B5AB7C3E878D21086CA0E1CC47D877194CAD6E384A81403ADF05C430D22D47516ACDBC946498A281611BB9F73AC3424F6CAC3146FAAE1611103CA4008FA95A8EBCA35AE114FFE14921A855F5049447643C391588444217A510AE31B82B5C159C928BA434890AEE2C7268724BBC29CFD152B05D73198E7B62B43B9B03E081CD0A1EA7395246CC890735268F189F21C143E5F5CEC76692E6D937FAAC7AF3ABC5480464F8B077C9352B14A22DC65514CAF392D1EC6C81D96C33175F5832AB3BC19C54229F45E12EBEEF4308B229C948D425016D674119C0AADEFEB21338BA6CEDBF7DF7233C98FA4AF17FD014A60D11CA5E929E4FA2524F7DB289CE0947AD90657990C153D89CDCF4B8ECE9F441926532427F01E9DD71B86EA949A59B14189AAA249AAF77 +encap_coins = 5ADD4FF6B8986E4B0DBC8E05801F48B7FA41AAA10E2311F4FE1E0B010D569862 +ct = 4C4E8D71B891F6B026747A34E0A4311ADA29D28CC4287C27F03101964A3D5E6C79F30B2E09A6291580626CCC249F27E9DD4DC101574557FE4DDE87A87D1A88469129FFA0282CB83E7421707C67E4CF6CDE7BE5E5439EB09B62A9B4699BF82DAFD4D6DB906854B3C6777BA67DDD85903381EA9FC58B1BF1C96FF611CC45286BD612C198463C9F2DE2C83C2B0139F1EC9C30EDB45C24AC14E855437319B990168AB664AF113728C5DB73062947FF8CB3103BE6685CEAA73BA10FFA7EA089329F377892546478183B8D1EDB6D97D28921BAA9E6D85B3B04C374AD2578ADEC9C7070959EC9BA4A1E5D4376FA4BDA5065749D22375FB90733CAF514EA98707B61111972750FE72C9F589C151BB71705BA631AEBB80968108C0DBF9E04F25147B96B5241ECDBF690913EBD83CBBC39BD65E90BD10E8E3ABA98E1465768BDD4FDE00D8777E17ED3AF8736860F5F2EDE1B3ED36BF45EE893100E8ED04402F06D85689E882395D66E6A80972404E04B5BFE8FCF9EC6C2B83D3EB56218010A0BDF4345E1F1BB33DED7FA078A42FE57000AAB7E073A6137882F378931DE88FEB6D5210C38F242EF2AF923FE10849FEF98E703D136D65FCD588E016D3C69843003A6AE1568F0AF044E1D495A644BD79F3FD8BF930AEBE4765B39A29E11BA3B4CE6CCE00843977D53684B16F20266DE2AF8D1565E221031A12F3C6F59E42AE13D809E57A0F439926AA2AD1B4E07CFB9C0C70A9CFEC980204CA9125558F5C8BADFE1A51B8A856B68D27DB1C27F2CA03ED64ECD8A815AC0AED2E893A8587C01DEA8BF97F2B1E4B6D1EC6DAF913423D883AD63898E56006F4615AB63EA27B2757F136D575C8AA845883DD00ED9BC5F73A6C11DFC4B4A11E12CD8FCFF2336E53BAAFE764C0C6DA854E1A84183D1F89B5124D48AD0720BEB8408C8A060CE98DFEA83334EFA36737D0DA2B105A7CABF99FB90C5AC3096372D85550435AD89C4735183645596AA56C86DD724E3DF3DEE1BA38BEA052475BA617ECEFA67C192F5FEF49DEEE28A7A00CECA7D547E5FC7445FF07FA794E0956A1DDC635E55DEB3701E34C0E9CD8CF37FDE80473D51CE0C148560E1D81ADE6F79A51ED80CF4E65D107BD7F4872024D9958505175060B6A6822B3B2DD6A199D50F8C817CA2A765481708A031DC0B82864179977A281F2F06C6F4F9FD89CD862009D8C657C338C3ACF6EB7A136446A058D1085430CCD0BEE24439296411E603CE475AC9CCC12E28AF1E656A7A1DF639890B069DDAD9F77A7375229F304F629E3FED25CBDDC0FD8F8CEE8A36C157654B62F06A2E96DBCB0A3D02D122490B8D059708E216ECBAF326C17DE69B91CC14DAFBF86E98F98D6680C752E7ED06E0B5E3D015527169680050351D899E9CA6C74C68554DAA4606738D2621589DB46619976C241DD7B48490E890110857C5B7DE5DDAFB343DA34CFC4F93E3AECC34BE8A4F88B43068D9793883241ACACDD17ECF238742CAB57D0311E11D4BFDD13E63BB832BB133D93C3BADF52822951B6D3077FC7BF1AD342CD1B6B2E192907AF309E59888E680AEDCB7BD552A21FB2D9DF3CF31176789FD2641A2F6BC74E725E02E9E255B956F5F1D5333546144B5F99D4CBB341490AA433BE239951D390EA3406006E7E11C0FDAF7BDFD2825A357B0CD2F0F3FD770B6B0BDB10B3B84A6842CC038997FFDE4E8132299BBD11407BF766C99ADFCBDA284A3DFB917C891DAFBB807A26A6DA1B06D5AA5789AE00F9784B60BEEA92E0AE077015AE2190619408A291E70494298BF5CEF8363F27054730B1AFB17FE282D4B2795F453525A348804C3A68D8876C596C4A267E71FFB1393A241A7155BFC3F7F9AF47693645571830AB9055013B4326A42819A0C5104C69E71314DDD26D26674D75AF777DAE823477D5E4C2258DA89F72C8BA85FF6ADF54AE2F9E55C0D1B70BB2C5B03C876BE1AAB039C2A2316DDB6A06AC789AE72E5E81DE5418A17917ECC55446056795E4866098FA9AAAFD684D699854C063608D834871D313CF8538A4DCCC9A310D4D2F6D66F667DFAC95583E295A7D70FC1A67E8B653BB8394A9C3F2C5D0E7DFC8E8762A48314A52975B3B626EA0126EC252E5501B0F51B6D7C64DDF04F8642079056300B23FB83604DC4A106B198133A25DB65C6A0FABC0BCD555661D9A3C1BD94227757C14281303FC91DB84F82B5CAF0A442A17C50341D044EFEFF4F9E9B +ss = 0654F860AE842420B5359093D50578B04C117CD65FD290B704822CCFF0BCB82A + +count = 67 +keypair_coins = 334382D39164D1989696A2FF77B25A28AF8BEAD9883B5365EB6FCCA7C1781CC98AAE27E7D301495DAB212A61FD3F209A8068FCF9A61AD83463C00D2CAB426633 +pk = D3539DE5422F470189BD6C462361C8105549370A09E8CCC407908A4E433813F73E3AE465CF99AF30105E6E4456B899777236466F05BD36A05494B347457439CC9AC66557580EF049071C7922F3770B4220063139A607C8019B52708976D184949CD88714F18130F0A6C91CA38680863EB9BE2542A4B27A629DEC949E552D8B3C86883211EC341B637555C70A8FA503412A771853D32CF1A5939FD7B6EB012B26E414B14710A4639096025A95FB8CB581358379330999CB6B93527CEB079B134021C19C9122640F90C11C234F808CCBE17B3E031B1A7A94654F82289E2755AE38B9FCD477AFE576BAD2218CE692B51205F61A59E644808C011C0EE0AC36A050A4C158EDC9C770444D310097235890F2D630F85C0DED24443462906FB84D7CAC3E7C1777D08A57A689302E99A3D9302FAA4C0DEC854D4872579365BDD1645706C744FA5A167B563ACCD8097E8C626AE63C8280663A382C11BA8F6C1B95FF1161C3B5679EC6C661C2B8081C1C39F6C732DC97BBDBBACB133006A7C94DE933AA19156811A224829769637A54B9512D8A4E82071AF50A66AB52301241BC5206BAB6BC0B29776A4B630E59E72988C4C7FD83912499175A2A3D3A2270EDF3A2977049BAC7524CD69691F59442DB348243881E04B8E9F1ADB4A436555C52F2F729C345AB278011CDE73521172E8FBB5509746AE871CF0E72416C2482A280C348862B313C9686D37FF0D73A1E216FFCD936D2941FB5BC77A9B0B771354FED30CA16121514541B5124386B835C22540EE2F9B5970C1508E41DEE69BC15C8C5A16ABF91487A1A5C3C778396FB785BD9465DFBD05ACF507686D53257C372DC8279E89669284C76294AA3098462EFDA8C743B0B7305BDE0693D98048412907B2D2B27892397B9F3CD31DBAF9446598DC886A4E1BF0F9C39E9FAA3ACA90AE387AACD698906C38E81A4990A08C80EF340B17A78FA89BB9A67813439BBD1150CBDFA3609708E4DE5365013C819FBADE55636F2A311D7A2B2EF7B250632774FF22EF2E76029569346266E70BBC82EC09533F8CAF60C4356D1023B4B4532F7C1E5DA18F4582D40B8861166885F52C0DB58357E7579C7516F9DA7046D3092303219F327AB52A28CB6A246B5016FA6894599D9725FC3C2AF262B53A4592F881F2A195D5AE75BCD36C30D6B7646424C219302C4E5794057782E7034EEC6C488395710C8211EF954F9F7434265590862B2219045B1336AF22889ABBB4639BA0758E28F2378CD1B1A4225B4171C53691A9CC5986A6C3FF51FF53B4FFE3C4EB8585006C8667BC17B3A28C67439AC5F3C08A6E93A926AAF515C24F8A7C3E3B2AB2F5183DEF46F8AC996E400ACC320B49254042AC43C7CB160FF32CA605438D7124B5A727099F48008D60EA2E63F5BF9B81E3183E1647251017E82827620070C96A32FE122632C4AAE1590623AC191BAC113E9C3676EE645FB762B0FF982E416CA2AA343F607A70405720E9C42FFD815BE984042B37D5F76646DB400DA5C4F08BAAA41B33FC78BA147F3CBCDF63F3F543752DCA541169058521C28449D0C78CC8BC95784D8CA6CAC6ECF2745A78BBD589353404BCEEBF916A882B66752A7A6E96DCE612EF5754C392207B5B1C69D362134AAB5513CA757AAB9CFC94DB5302510101A73B7CFEAF7A0F1D259893C76D9111652A4AC02348C285B94F16C671FE953E1BB0CA222A3AD751096A1A05BB2789C0C14DA099E75477ED038849DBB19DE489FAB582910BC70A3A80C6F76152D494FA067186958191A5101051B6D55449DC5A4434925CA9F610BA498A24B232AC6AA08CF477A99F5A223067AA4C91A7749B834C90D6E247653C6B6DB65C5EFA72F3CD9CCE1510437268CF92753DB242742E042DEF3019F85188DB7573A43830ABAB80D4C176AD551C5C5216870276160AA61B92863C1725083A56DF800735C5428B28ADC49B75DA02BF120996BE7CCF9E20D43DBA59B6900BB50456D6589CB2C0209E51258336034566AE1BCCFC1FB314AFAB759B00E103C0A7F5CAD05A4BBF1894050EC9C2488BC3F89B685789912D43D63661AD0651D0F3286D3F055D1A307AA7371AE1A74F1A68D57A7438E4B5107BC0DCD8C4DE5736ADFE3170F8A1F01535A3772229DA4386B4ACC072C1611B53C899352B5AB5B39BB9CD4EC72E622C946F0F10FEB3F0FA52EAAD4F2D4C36E59CA0A5389566FAD53898992A17BBE0A0F +sk = 9BFC3A71FA83A4070DB5064ADA8410A770845E818C49B91E09A251E1925EDB226EE8AB153F94B2417560D88959113A6BBC854B0065748E6A7DB90977ADA0216F3C41CFF70E5202B306CC22FF8A138C360D75B9CB1BBA849C5BCC8C9B55E80647E513C9E3E15F66A144F013822DA24266765E3F1125F435BDA4C46EF57430EAE331E1D54C91960EEB363CA25387D0D441ABB930E4A7C329191C5FF7A87996A4B1AA74162611E67B303E284C7098A65069356B55304B11B8BBA66C5829647493C09BF62166017977A988333092EFE98D9C13A2BCE53F8EA2C81A0099B7D5C2B11704971366A5565CC14610DF796C604700680226CB165E9ACAA6AB507A923B4D472A4B6C9424E7F5A622F87F4F8A1083B4755067A93C285CC0748D241C7051971128CC5AF4DB5C1F7C144F98B6BF9703F5338628CA22DF4B84D10312EDDA9DF71442464A24491A62687928C22455DCC23ECA964E9248543520790D813924CB58A0C156AAFBCF63906EC5FA891936C7E16B5FAFD98026D64EA2012BD75B6C5F376EEB74AE9B29CFF7041C650B91A2B852C021562BA33B66EBACF787BE40810F22AA43F4174571C77710F775D1719968A5523780B613262F94BC36B611B63F460DC6E02CC588AF99F164302276B0386E697469C55928C0E62438C25AF90577DE0883CF45819262905ED30D9A1A7918B82F9B4A28CA5B8DD1D9AD4326ADC7BA69C087765CC6511668CC0BE83D510245F8834E890662E06774F389C0C623BE3212AAE5ACCEDB101C43463B68889EA9A2C21AA0ACB5329FF80A336F8914FBC602E2B9AE452647777651CCC4BEF70AC06423B66EC5982C861AD9723DFBC834CA6A6433174C1D6C1AB9569265A96AB5D48495D72122763B3A7275B297713F1A729BDC48329B64FFF9C45955C6091375D4D77FBAC540DACB140666610EC7A15FF18BC741AA69425508D5CF682BAFB6D3C9DFE02D80349597F56FBEBB7EC8031FE71B6D6C065C4E6B5E5D17ABF3B412DED81EFCC8B6B1935FB37B467A5CC61F318AED20678800726509BAA73BBA244030500050D4B23E4AD71349CB0877566AD100BA77F8B409BC8F0EF8CFBCFA3CD1BAA1935C9ABCA798FF6965EC7B53141B6709597BC4F9983766403ED80DF4095D59AB482FAB7FCA432EF5E76AFFC77F74F4CDA522A0085A4917D04167A00B09863850D6CAA0621C2D473DE0763B7D3168B6147BDB009EB260901FA82013C8C0A3F6C39DE3CC49A773D08B357EF932077B5BAB86391239B3C366C43010AD15EA2EB1E05267029E5AD8139728A907B98761B65DD6DAB895363159B48875FB6AA80882256A04460B2977280688745C5914C089B37BFC949A8F9864AFEC2E4DC13F6092070EB561D09B530EBA2CCD66B87B0986ADEA1933448066521E28AC2ED9C57EDE492799B401CDBA8377D593DAFC1A0D233004E25877242C30070779D8BC5BB488DD3988004B5A8554861B560EBAA5BFFF7C89DED193EA077F421C216996C1445B165B912901B217315636A168C0216AC026FBBD4239858837B02DAB5A39D1BE6B072468A264661C5E34F42380C66526377C990092434BCB551A744227445C5108FCFC3CB4526D0B711DBD4539CEA05A08A78FBA723F314AA643A9260BAA22B96842FA4995601C71DFB42A5719C6F3B9208B19728A8C085D28068412BBF3461DC09206FEB7B1250607C1E33AC229323082CBA12B139BB30EB21A5861D902C0E35CF2DB3C227050CB8C309DD256FF4871186330BE93492BE78E267640B49776DC98ADFC0197C896A1FA27AF841351B5C790A6519F58C98BFF08029FC09E3B960B6898577C92612D264833737C3E4AA1765C5D5B49BB12BC0DF280890EC6B7EF55AC5FDA82989603A7F513C5A41C04B341E1197B7D4049E2C01CDEF47F27208A48AA0A2BA5706ABB474C467897E154DAEA8410181C6D4CBBC9E73746D46D6F372FE6836D82DA12A31B0673C10B35C9673D25830ED32AE795BB7D1AAF2CBC0433939A79D06DD33CB485A4BCDE071B5C083978D78BD8E359181152FC535770548DF0EB33A780C0C9E7BF907540A1F953C972B43527B0BC586B8B2ABC865B9127CAA4EA98A5DE1AA2BDDA772AB0702F983EC8A4231BF48C2FBB37A4247783BB0221098A15781C3DEC95C1990B21C88CD1F911624600252759D3539DE5422F470189BD6C462361C8105549370A09E8CCC407908A4E433813F73E3AE465CF99AF30105E6E4456B899777236466F05BD36A05494B347457439CC9AC66557580EF049071C7922F3770B4220063139A607C8019B52708976D184949CD88714F18130F0A6C91CA38680863EB9BE2542A4B27A629DEC949E552D8B3C86883211EC341B637555C70A8FA503412A771853D32CF1A5939FD7B6EB012B26E414B14710A4639096025A95FB8CB581358379330999CB6B93527CEB079B134021C19C9122640F90C11C234F808CCBE17B3E031B1A7A94654F82289E2755AE38B9FCD477AFE576BAD2218CE692B51205F61A59E644808C011C0EE0AC36A050A4C158EDC9C770444D310097235890F2D630F85C0DED24443462906FB84D7CAC3E7C1777D08A57A689302E99A3D9302FAA4C0DEC854D4872579365BDD1645706C744FA5A167B563ACCD8097E8C626AE63C8280663A382C11BA8F6C1B95FF1161C3B5679EC6C661C2B8081C1C39F6C732DC97BBDBBACB133006A7C94DE933AA19156811A224829769637A54B9512D8A4E82071AF50A66AB52301241BC5206BAB6BC0B29776A4B630E59E72988C4C7FD83912499175A2A3D3A2270EDF3A2977049BAC7524CD69691F59442DB348243881E04B8E9F1ADB4A436555C52F2F729C345AB278011CDE73521172E8FBB5509746AE871CF0E72416C2482A280C348862B313C9686D37FF0D73A1E216FFCD936D2941FB5BC77A9B0B771354FED30CA16121514541B5124386B835C22540EE2F9B5970C1508E41DEE69BC15C8C5A16ABF91487A1A5C3C778396FB785BD9465DFBD05ACF507686D53257C372DC8279E89669284C76294AA3098462EFDA8C743B0B7305BDE0693D98048412907B2D2B27892397B9F3CD31DBAF9446598DC886A4E1BF0F9C39E9FAA3ACA90AE387AACD698906C38E81A4990A08C80EF340B17A78FA89BB9A67813439BBD1150CBDFA3609708E4DE5365013C819FBADE55636F2A311D7A2B2EF7B250632774FF22EF2E76029569346266E70BBC82EC09533F8CAF60C4356D1023B4B4532F7C1E5DA18F4582D40B8861166885F52C0DB58357E7579C7516F9DA7046D3092303219F327AB52A28CB6A246B5016FA6894599D9725FC3C2AF262B53A4592F881F2A195D5AE75BCD36C30D6B7646424C219302C4E5794057782E7034EEC6C488395710C8211EF954F9F7434265590862B2219045B1336AF22889ABBB4639BA0758E28F2378CD1B1A4225B4171C53691A9CC5986A6C3FF51FF53B4FFE3C4EB8585006C8667BC17B3A28C67439AC5F3C08A6E93A926AAF515C24F8A7C3E3B2AB2F5183DEF46F8AC996E400ACC320B49254042AC43C7CB160FF32CA605438D7124B5A727099F48008D60EA2E63F5BF9B81E3183E1647251017E82827620070C96A32FE122632C4AAE1590623AC191BAC113E9C3676EE645FB762B0FF982E416CA2AA343F607A70405720E9C42FFD815BE984042B37D5F76646DB400DA5C4F08BAAA41B33FC78BA147F3CBCDF63F3F543752DCA541169058521C28449D0C78CC8BC95784D8CA6CAC6ECF2745A78BBD589353404BCEEBF916A882B66752A7A6E96DCE612EF5754C392207B5B1C69D362134AAB5513CA757AAB9CFC94DB5302510101A73B7CFEAF7A0F1D259893C76D9111652A4AC02348C285B94F16C671FE953E1BB0CA222A3AD751096A1A05BB2789C0C14DA099E75477ED038849DBB19DE489FAB582910BC70A3A80C6F76152D494FA067186958191A5101051B6D55449DC5A4434925CA9F610BA498A24B232AC6AA08CF477A99F5A223067AA4C91A7749B834C90D6E247653C6B6DB65C5EFA72F3CD9CCE1510437268CF92753DB242742E042DEF3019F85188DB7573A43830ABAB80D4C176AD551C5C5216870276160AA61B92863C1725083A56DF800735C5428B28ADC49B75DA02BF120996BE7CCF9E20D43DBA59B6900BB50456D6589CB2C0209E51258336034566AE1BCCFC1FB314AFAB759B00E103C0A7F5CAD05A4BBF1894050EC9C2488BC3F89B685789912D43D63661AD0651D0F3286D3F055D1A307AA7371AE1A74F1A68D57A7438E4B5107BC0DCD8C4DE5736ADFE3170F8A1F01535A3772229DA4386B4ACC072C1611B53C899352B5AB5B39BB9CD4EC72E622C946F0F10FEB3F0FA52EAAD4F2D4C36E59CA0A5389566FAD53898992A17BBE0A0F091210FB4F6FAC00A24167D9BD2761E601DB0A3734E3C835D1E9C5865B1E379C8AAE27E7D301495DAB212A61FD3F209A8068FCF9A61AD83463C00D2CAB426633 +encap_coins = F9E9FD68166F1EFE1916C2E0868E30CD14CA6A7E07C44A1E5ECAD722D016A3BD +ct = CDE3737244073EEF0B1A2B2017C0C63009AA1878AB78D1DE9116175B39D4E3CDDB0C3788EF7FF00B89284939C0E24073C20FD8FFE8A68EDC3D8F119E38A3E6B4343D8B6BD099A8D249D8B4AD3A499F1E47A89D0954298012911ADCEFF0DFA0A5FA5A2EE8C0E9083137EB1321D2520268989195680630ECB7AE057D0583F5575FA6C43D3FFDD21BF3A9737752F3496AC5AC66A7B64DA2A444C10394C2FF4F623F6F73AF3AA2D379CBFE285060A8C30B090D4927052ED77B04517D64A518544A3167430DDCB57F294688316D5C0D8872830E4F9B3274EDDF167B1FCBF4C9FFC32DE60526E5A547325E6CE0E7DF10D99A003371C6D482E325262D675103BAFD4BF65A9B653FED40B118D132A0B2E93E8144888BDA24E92CC0F2EBD7318C2FB6E9A9D0AA538ED522195A8A54A7744E496D5BF2F3560AD2CB6A10562C16A030615A7478EE6C7A8DEC51F7C842DBB926D9EE3D4FF8987D130C2C55B8697EAD6EAFF7449CCB33E0B63773A248D281FFE2600C0718B4ED45F70787718FC21A1286B037C69F41A03BE7636591AEE5538A3FFC553FFA268FABBD4B07288CDCCE8EAA198411B1F88D325DB8C950CE94BC24121443BA06F5303F667B37C4C2D897B66442F93DFA7C04FA096ECADC36C8654F0343B4CB2BF5FBBDD443955E6C9092C7FADA13F1F6E488300159A62B17E7F7CA002BBA0433B36090291A00AB91653B1932046F1EE9EA507DA2FFD7C94CB9212756BC32F9CBF5F60671F1920B1D21E47B7E0904BFBD43B9A3427FA1FD41E695148EB615B1635B892F5BECC0133EC928A605E8E427A188AD41C2BBDF88290730D5CAA8CB03145213A0F6706DECC804B3B9B96F2039F825E4C843A4BA40223D565BA35FC8B4481D4F4D1B93D86C1C82D5511DA7374D36D4D05081122E4151C89962124FB136D5C8CCDD230FB9C25AC67EF78A88E0C220B6DFBED34104DE4F68652C377E0728B964DA6CEB1E9DCF5C35433ADD81F34A8BC0850B85E1A96274E0F3E915ACD55250285D6031E16C0CF5DBAB6BBB3A5FA0232BE37AD6A6FB8A65371CB1FA8B5FE53EDB72920254A3B0B2874766DC22B5DB30C953D3FF6954A11B6A9F041B07C0DBB30E0FDE4D9407B35CB2DB1AE2B0E11C5CE601C91D9D4EAD5DC4F75FA1C03DCD909832AB2AC2A80E1F0DDA6AC3DD9F51825C2216709E5D5230B1DE6F071641A0C216103BE596B556257816E73BA6170069222215E03032EB8A7F91A7554CB55C06F2AE7C567C864E91F243DBBDC427CC37C3B1C0DD949F3F00734CA2B65403660701D02788253F7955A02DF6F32F7948779CCA12EF6788365DF7C7AAC0D44ADC3AF8C00441F02A4D2B10DAF0E75224EDE885C6981D6F598AED2945A9E492CDF9A2880AFC57C3AA2E7E9BBA4AC27E609BEC52FAEF68C49EC1B35F55AD411D705DF690BC4866CC76FD022725E92F0DCADDCDF866D3D9B0E1F38332AD0DC6E4FE06B2599FD1D19E3A52F3EAB92D35B6B4347555D7B8FB1D4F14EE9C61B5DA5E4782E7EA59AD941D62BC903076DA0A0C92D68B44E66EB43FF14FE670083A6C8E602E6779F61C7585464426EFC1C758159E3A6D7244D89AA90DFCB702ACD3CA121BA21A69F26F5B2DFC09143BEBB05B96CC6B81994BFEABDC4114E183EE1C0B36E1859A790E454F5BD3481389FD15BBE9AE5F27C12EC4AF1B3713EDABFF045CF71931515AF1EED5A82A5913C9349AEC3CD74EBF4E0A91256BA1AB2C863CDFFEC9CD2B7D725E406BE1B53CBCE44FB241DDA9F1B9F73B97900F4834A4A59AF715E12BC38B0B02FDADCBFCB04095DECAC5869DAF72BF8BED11A18B4FB1ADE34A84A12EDB6783FB7B930A8A664950399DCF523603859D15DBAAE5B410C15C3F9D34BB0DE141E606304C778DBAE8A7AAC0E70D4164EDCB0AA5D55CC4BB6A7EA7ECB429664D7F1E529EAD40688E58FE6E21C5037725C9313FF1146633A884C12E1DBCE24A9ECDCC9664891D02F8C522F7392C53D9F290E7A59248200A7F22E0CECA605220F81184BB564121C5B998C177163DD8B5FC3C494200841BD40AE71F301C79843340945213567194F169F017EEF21C0DDF849952BC70C4CD792CFA6729B1183E312E06372ECF3CA8FA2D0128D43FF34CF20798501484263764413F508025476F605DC2E548061116B77E00EEBDB0952D9C0D85C3A3BCEDA515417F24820BE0F5F0D2851A06F8EC65056160E24A15202CE5DE +ss = 8D4451A0DA9BFEEACF4E2F0F5CD7C398499FEBB4EB46C82DA3AAAF19D03C835E + +count = 68 +keypair_coins = 6995143E8EB8A6E93840F76EEC844F67D2B5F75B1839A5040337E61F9806764AC30E299218D4A39C2EA3FC06439FC4C411E99BBC34B8F30D23845E91E71FEF3C +pk = C675BAB636AC40ECB18567A8E6FBC63A52327520BB770A5D64349817A13CD365C96741726AA9107E9A4C04796DBE92061697131E728104C9C6ADA26EBFC51632898564D89B2919438CA1308C53387604C162A424AFAA2AF9AB0C42B50CC50B3318A15738057C2F1806017A7BAC76BA523ACC1C66111D45C253AB299463CFCE584ECE769707A6B35D6114A8B92939A16D27A7BE7F72B660F0B851E4950C20B33C074D307C8FC9B51454E41A96A8AC76CC30A568B4BC442177E7748E4B0F7D31201569585659B55DEAC3A6CA4DD264985DF553C85C9ED07B61E6D58F2BF23A19A5740FC9B9BF18859EFC79F9E9178BB542823A4FEF94BE8CA589ABF740D7880380E78853708CB9220E5D0ACE428C58A543ACFFD8333D2831857C3784090E3696A3B011683899AE31B40513E9589467A3CF2891439871A1B240FEA31F2FB89956D9966CA204A598050BEB2C36F9A6851820C87A5262A9CFF23B1E7BDCC9D060484115568463B9AE44B33D7B6C0F46619299596FA3C3EBBCC15F37A7A3EBC9B42332F483708F7AB08E285A08759EC62AA06838C7EC103864B75AB25A013D7C183955884BD01C4F58CD410344396358BD6901A94228275C79A289B385C788884B2BD3371D0852B0AC4A24107A87F1DA0E6FBBBBD0A25C9CB14B7F25B7432C8148A0C91F8C7616C7BEE7119A8F9AA4DA5291A820922EA68F2BD62C4300CAB4D10A73DB255B1AA33D523D774ABA41FC5F26326220C8B3575520788C0476BB3462F73C61016C9349BB00C5C59B7A740044B639AB59253B49E23C8EE36676E015A93001A8C4C539F576C735068661C02026BB22CE5932BCAB118827107A784CE94C2C89444A7B03A2386772D89106B49ACB607ABC86996A351B6B7F364E9A05C746377520D7A27A154F502042C388292394A4940C0470458726B76F39037E10821FB56B3E4F38C752F4278B8B1FC332A48DA56CAE9C56BD03343659B4ABC262FEE6855875AC2B8AABE02A352919BA6363C6E75A8358D3297386240AA80F0AA33B1A79CAE3C9CE40F87520AC713BFC2DC9DA6C5B2BAB6443383279BC9F3433E4080C7BD5BF22306E4FBA2A8FF0A1F7978BC6A7BB809664783C36AC81445D4964C8EC6E9616384C60636F6AC08AA1C23D182FE70034FF2390442190F8C2CD68C9892BB0A6FB29C5E3480697145B150675992137C5A16C507C96180A3129417D9E30815E30B90D05835B890CEC789E3EC8AB7DEC509919CFD670241250822C539FA2CA8D9D619E22F050744727BBEC916289AECBF47BF48B9C6ED6AD5EE5745A865859253C84B39FB569147804112A0046E2149903FB5AE0E56A4EC2B44397973441394175BB675C3198800E1BC56185CA7076345AC1623AC0AC1F10F099FCF971FEACB965482A2BFC585BF30647D90F7BA27CD76891EF5B3EF84B988F2A407F5552BE77559D026E385627BAEA2DEBF3AE73E3CD1461B1D7F9BA55DAAB9C4BBCA8045172CC8EEEFBB36647BFEB033495986526CC2FDC6C7A39DA80278182347A3330FA332E071D8F31321BF32F4507B16E328FA7892758F2948A1A951506222833C0BB68140495A7A5E942C6B17E674733CE754EAB747E96D2A077E7024DF77388B6BDB807744DB74612A8C72011BE7D8B0949C75CD1B6107C2422E30C1E577B3515556A10C1BA712ACA7F6988B3873705257CEE724ACF431CA0F9961DB020EBC784E4F27C6FBC062857015DB28D64004CB41BB7EA3B5657E6B65200B3959C642B213DDA13A1B25377C4A47C43DC2DCCF3607AA02CA28A4067095F541B359E21B39004590EBBA6D6DB8FA461A1343B824D1373F872343E8BB605729B674C66F7E5C76B536539F06F919213CC14756FFACD5789A46E7C8AD789BA0F6237998487C1912E86B087C9388D3A6A9C18D505FBBA2F7AA6168508B1C8702A2FC167F2202AC21BA862917F6D78971AA7296CE1306D2A1F2F06B8A3A214ED45765F6A05A7445CDEA385CE7922E8006B549319CB38904F38A6F932304037C4FCEB9647FB7FF9E9AFF5DCC951AA3E4BF50C296B71259650B5047C94EA2696837E26AA1D18938851198928DB1EA22758C6CAC0906A995A022998A7A942626C2CEC7A5FE83948D74509C61915819425120D9E6580C0A3776AD41A95B52B2E867B6D7242CCF281A241A88049058D8CAEE564224FAA36C70ECD281B67EB98908468420B38F3C24DA9290EA98B24 +sk = 5E484946337E3F4135D738B0862B69F7B247A5BB0812D56201300C53BB87B798B2B551CCEA75A87F002D7DE7878ED08E976A2CB62B4AA559BC36816E9690973F608B262612F89B5BC784365E33193FE9013C05818E0A7151297EA53C95089388BE203071D0335535436C799F6D3AA3260A9C8C9C9E36F79F13135C3DAB92914137C33773660AA15557C32B7A086A5A1CFD125DEA60183ECBA94DA22F0F3A18DD2131BC792C4013B7BF84A7840C976C53117653C4F947839D8CB35538BB97899418688A9E062F9FC17D77450D85261AAB01BD9EE77E917966BD26BD3D3990AABC8561CBADDC5A22F8C80D99453FA7350B2A022E4CA48DEA6C9C07309543611ABFC7CDA76AA03E51ACFDF0CC73921EF2D02F45990AEE50CA77B93F14E4BEF44576134391F7B67658E1CC7876713742267A556EA8F562BD858B24E04314B025CCB5BE0650642A23460C3C65E0D6CB68232CFF709204B7B7CAB0741807100A712686B982F632095D7730DD9385A7A26C23741474E12CD8FC259EF346B5F287EB01B046104EF8415372B47DA145AB0C5C1774626B5DEA7D72DB4C62FAB14C03CA51384420690A799194E8AA05BB914DB21956BEDC948299BAED7289C884AB9833C8669422ADF51D4E1A0466056EECA478F11AB55CE2CE34430ADDC889044A5601357EA6A5B097B54252B046FA83C0211C236953954C36840E390D2707848C0B879ABA2354EA200FCA56CBB86C0C2269A81C790B966893F782AAE9A4BD1B02FA85995A757FF2083FD26347C97711E07560AF77CB59C7CD64F7CDBC880AD26A7BD7FCB9B210710E581C49453A3200AC08554A641068E6879BA6665AE9F281FC14C8FBFCB0CAC0081C1A06DB017D80048B324248F699825A489D0726893E109127A0AE802CCA29AC56F6118D209A54CB842C9A8C539E43B9681CB868018C95D872C532A10A77BF52A796D33187FB8AA3FD780BD2C4B30FB7394DC64B0FE05B81128763A1325BD00EBA411247B1C22A1146FEBA1B255C51F74999DD29A9453151BD9869E3D548347B93C1B798FE92A053B88C80D7AFA5C561D31435D61251253B9A4C2B0F42830C81E990006DCEBDDB7002240EE8E276D4E31C2D249B84414F3997B9C4F5C0698CB2A24C48E3605F6D704E5DB734EAD12D62634DEDC68ED6A1248273BAD5ECAC0651978B098FFCC148667671D4B59EA6095B0B363C31299E5B90282F914BEBC66F6291338BB7600C8310B83963336952EC33854ED7C979B71F30188180B11BB66314C93242ECB890123C9F2AAA786ACBC7DBF560CFC1625D06C3828998ED51B79D28C583BB38719706D1D67B9BA5A556CB9EE1DC4FF2C53C33969F2F97BB93056729F65FD90AA2D7113EDF611C521761BE671FE37BAADA7A2B4A114DD458A19966A2A42914D61B47AEF5ABCCF8240C88AF752B51BCD0A3788C2AA38AAD8DC00D835476C8386DD3A8628B261F1D6B2B9F771842C97DA7BBC3D03696F60524BE6476430044F6A8AA48C22901F750DC55C1EA7813EC3518B26B3FD0657EA6FCB6BE94C026244A0401593664673FAA680F866E174143B0CC086FDACC1F7126C3E941F090332D8487D5E66061D5311C9B5C8EDC39BDFC34948400A9A3AFF3A85ADC48B21E11B57F853985689697A591C5170B2766A18D18937CE92857A99095FCB6A2524BEA122EF1FC8F6AA724F754832FC17C932388B728359E55800E3110C89B8B7B711AFF4785259B3E1B2B0B886A057D71B035617DDC7C0C8B1BCDECD50A7135C8A68A2FA2F7B62B10BAF6325DA837368280102D7A7439D328F91B2173D8625D769A6EA936990299A02329380A85A818524F601B36E6CFA8046ED2F7C1B5C13260152AA34CA30E1887F2849C61B41649913138B74C817B2DA9174D3AD4CA15653F768896837323DAB2C18781A8BA793D54C9126DF6A6EC044B7E709870422A8A1C030F238767C91D75185DEF8002C105806CF728897B382AA596DFF7AC969A5CEDB9294DCA50CA1C74CEB7605E978722B148817964CC1159883A6DC5094F02A5767D4BB5DF6304D3148BF009068A1B2E4DF78BF021182E985982F4B2629C049DC26667746C4503AE0491728202BA0B55A8248C700484597BAB32DAE41607538BCC5C9DDE4A198CB81EBD9C143EB9B612930DA8F56FE3D8C02863C04CEA9EC675BAB636AC40ECB18567A8E6FBC63A52327520BB770A5D64349817A13CD365C96741726AA9107E9A4C04796DBE92061697131E728104C9C6ADA26EBFC51632898564D89B2919438CA1308C53387604C162A424AFAA2AF9AB0C42B50CC50B3318A15738057C2F1806017A7BAC76BA523ACC1C66111D45C253AB299463CFCE584ECE769707A6B35D6114A8B92939A16D27A7BE7F72B660F0B851E4950C20B33C074D307C8FC9B51454E41A96A8AC76CC30A568B4BC442177E7748E4B0F7D31201569585659B55DEAC3A6CA4DD264985DF553C85C9ED07B61E6D58F2BF23A19A5740FC9B9BF18859EFC79F9E9178BB542823A4FEF94BE8CA589ABF740D7880380E78853708CB9220E5D0ACE428C58A543ACFFD8333D2831857C3784090E3696A3B011683899AE31B40513E9589467A3CF2891439871A1B240FEA31F2FB89956D9966CA204A598050BEB2C36F9A6851820C87A5262A9CFF23B1E7BDCC9D060484115568463B9AE44B33D7B6C0F46619299596FA3C3EBBCC15F37A7A3EBC9B42332F483708F7AB08E285A08759EC62AA06838C7EC103864B75AB25A013D7C183955884BD01C4F58CD410344396358BD6901A94228275C79A289B385C788884B2BD3371D0852B0AC4A24107A87F1DA0E6FBBBBD0A25C9CB14B7F25B7432C8148A0C91F8C7616C7BEE7119A8F9AA4DA5291A820922EA68F2BD62C4300CAB4D10A73DB255B1AA33D523D774ABA41FC5F26326220C8B3575520788C0476BB3462F73C61016C9349BB00C5C59B7A740044B639AB59253B49E23C8EE36676E015A93001A8C4C539F576C735068661C02026BB22CE5932BCAB118827107A784CE94C2C89444A7B03A2386772D89106B49ACB607ABC86996A351B6B7F364E9A05C746377520D7A27A154F502042C388292394A4940C0470458726B76F39037E10821FB56B3E4F38C752F4278B8B1FC332A48DA56CAE9C56BD03343659B4ABC262FEE6855875AC2B8AABE02A352919BA6363C6E75A8358D3297386240AA80F0AA33B1A79CAE3C9CE40F87520AC713BFC2DC9DA6C5B2BAB6443383279BC9F3433E4080C7BD5BF22306E4FBA2A8FF0A1F7978BC6A7BB809664783C36AC81445D4964C8EC6E9616384C60636F6AC08AA1C23D182FE70034FF2390442190F8C2CD68C9892BB0A6FB29C5E3480697145B150675992137C5A16C507C96180A3129417D9E30815E30B90D05835B890CEC789E3EC8AB7DEC509919CFD670241250822C539FA2CA8D9D619E22F050744727BBEC916289AECBF47BF48B9C6ED6AD5EE5745A865859253C84B39FB569147804112A0046E2149903FB5AE0E56A4EC2B44397973441394175BB675C3198800E1BC56185CA7076345AC1623AC0AC1F10F099FCF971FEACB965482A2BFC585BF30647D90F7BA27CD76891EF5B3EF84B988F2A407F5552BE77559D026E385627BAEA2DEBF3AE73E3CD1461B1D7F9BA55DAAB9C4BBCA8045172CC8EEEFBB36647BFEB033495986526CC2FDC6C7A39DA80278182347A3330FA332E071D8F31321BF32F4507B16E328FA7892758F2948A1A951506222833C0BB68140495A7A5E942C6B17E674733CE754EAB747E96D2A077E7024DF77388B6BDB807744DB74612A8C72011BE7D8B0949C75CD1B6107C2422E30C1E577B3515556A10C1BA712ACA7F6988B3873705257CEE724ACF431CA0F9961DB020EBC784E4F27C6FBC062857015DB28D64004CB41BB7EA3B5657E6B65200B3959C642B213DDA13A1B25377C4A47C43DC2DCCF3607AA02CA28A4067095F541B359E21B39004590EBBA6D6DB8FA461A1343B824D1373F872343E8BB605729B674C66F7E5C76B536539F06F919213CC14756FFACD5789A46E7C8AD789BA0F6237998487C1912E86B087C9388D3A6A9C18D505FBBA2F7AA6168508B1C8702A2FC167F2202AC21BA862917F6D78971AA7296CE1306D2A1F2F06B8A3A214ED45765F6A05A7445CDEA385CE7922E8006B549319CB38904F38A6F932304037C4FCEB9647FB7FF9E9AFF5DCC951AA3E4BF50C296B71259650B5047C94EA2696837E26AA1D18938851198928DB1EA22758C6CAC0906A995A022998A7A942626C2CEC7A5FE83948D74509C61915819425120D9E6580C0A3776AD41A95B52B2E867B6D7242CCF281A241A88049058D8CAEE564224FAA36C70ECD281B67EB98908468420B38F3C24DA9290EA98B246C206507B89F46C6E9CD5E78B6CC78FB3677EE609CC090CF3782C876FD5F941BC30E299218D4A39C2EA3FC06439FC4C411E99BBC34B8F30D23845E91E71FEF3C +encap_coins = F866365324CFDF8254EA0B73B7947496F9FD24BFDC562DB4857EF5C659441CF5 +ct = 7BC2922A32740F3C7DE466D7C13E6B0DECC88CE74D0D5C8F78518830C5057C832E88B2FDDEA11D3F9355027B87BF03C90CA51BF7898259332DDB3E0F7EAC87CF567842B9530BFDC09E3EBEBD6862D0AF47DD784B06BBD6C63A06DF4EF8FFB7FB32582E0CB65FBCF0C0A3F561DFF027D4434058B60EA8ACAB489BD241466B42DAEC05DF638F379F82C356CE5AB8D7C93DC0B2B0268650B45BA6E6B93D554D754A85B380D3D2CAB2413A1D879D13ECD7AA9ABAF01821BF67B78FCD108E994902D8B7BDCDB9016033A94F968A9DE3E84593D17800973A9D2E1CEAB3D08A0E55930482DF10B3BF6D06FB9CDA46F072409E738EF224819B0A89739C6116CF1430C05BA0078D6F0ED3E30BC572E3DEEFA223C9BCE2595ACC751B9D1670195DEFC6A72EE7C2635BD737F38833F41EA5AF8C99F3ADECFFF09E13F2AD84459D5C2B6952A5A6E3B00E965874317660AED157687FE64F4283988AAD9A25E988262E93463A15A8BD64D489DE27A999229018688AA620B305B51C4C20780AABA1A9BFEED6544F0A0283ECA04BE0D36F117F9E8CB5E961E3DB486B22844C224C722F776FCD183BA22E3A9250D5352A782CFAEFF1546A36952FA84E0B83FB98074019FF2AF99BCA08A7D045E1AF3ED89B874529EA5CB0514FA370879F5D5AF97BE447EA86908D56A35C4D4FF3E955B6DF5F40D1774B614DD7A73F3F2611A7CBA615CFC94303576C3EE543F9FD35A153502D30852AFA13A54303EA0ED46B7805503821D7BA543F122BA87937C4FBADBEA35B168B4D28FEECA931B868B81C582F987F05BAC8675C74B73CBB7DE7650E8A24D9E56965857614557007AA177289CF0F863568AF66CF434933F7AA213E018EA22CCC22BDFD3A029B63D6FAE8864879927A68B85AFE49339CE68EDDEF269D4220B0F2B2B9C383C94C7C3FF9A31EC2B07A8C2418AFDBD12D756EC7943348648FB87F362197AC4A1FC183E421139B8254063CA01D5751EF8C891CE6FFEA1EB6D7A7DF5D057D879FD5C287EC661EDE82F9C99366EDA6E5D74810CD101C555AA061170BD0936FD91A41DF48AA1B267E5397F957A6AFB6448342B6F497AFA91D0B02D1D41A9366C633387A826F8F3436C274DE74E294878F29EF58D108BD61BAEB4D8A6A789E33CF7600713793322121AA0B5918C47871C9F8F69D273B0F99BB4A322A1670AC325C5A087E508FD14CF3E11B4BF42B4F35899687CA4BFF681927E0AF54528F91CE3E685C6462CCA4CD98F5318A460A9617934109D2D9341EEB639E0BC5F80E000D64707AD7E22F060FB51716ADAF910ADBD10F38CD90F97204A5CDA73A9A532570325D6AEFAE54F876B623B0B121084F82FD4DA4BB19237462F81139BC7C392E9D3BE7200C6F7DF418ABAF8747FB7BAE49D0C86CAC1821AA07768FCE7D050A14B800696DC2473C7FD5F1F1CFB94674234FB169194F685A96DC1D1EFA2C39A1F16F22C3DD8888442D61559A276A8A977BE3534CB4902CA37FFCEFDCAD4CCDDE14322F2A4584E255BEBD76E247E46731E285B4469921CD747FE38EB92EA53A179B48BD8AA87A86ECF1BC6746EE8C196C733F2FF72CAE6111AF95B6004B415230DEB63232281ACAC289A0C36265B8028BAD57CC7CE35E9FF3534996452F349B2CA8024179062FE2CCC3BD855F3AF8AC131C7BA465D528CF6DD426CF24250DB096EFDC864066D8AE63E5D73B7AFF8E961F231C3404294F4919FF54FF10B4A124DF113E8D9A25FCEBDB4A7DA7401A5C460C1AEF737578BAF81BF5C79720620F6C4B92EBA51CC020036B9BC18006F9731BDD7ED8DC78F7D85B5DD27A404E005DD24DFC0B65A1AD6EF81141329D28B16FD1E3A6973F66DF7772367B37EE2CD2DCBB0317885A2AE59A2F520E8FD8C1BBCFB8B6A06F4F6541A89315384F29355C53E3DDF0AFB99C1DD83F0A36B6237F683D90CF1AAA2227B02B8A461F2C867542DE55BE8F48C6D55F0A5741EA11F15C920A746D4AFC767BC3AD235FDD690022F24A14F467D9AA477C71ED8DAEE3F12C2E8AD390522A70C93D056C8DE8605F4C755C1ABEC9D9587DAAD5162F27E2E5CB7B5AE9D2E6979FE991FBEE9830F0BFC2CDA34877CD0889E98C940706469F88A4A1EF7A6F2D646EA36180900C84C4024918E0BF4E152D987E9762D394351FC6961580164C3EAB3219F5D9F495D51D54442BE15FC6B520DD954FA646052CB16DA05AAC1F39EF0F6ED215 +ss = 223A0EFF22D271F9BBE97B81A9454EFF0E9513BC8E37F6D9A532644BAE8FE60B + +count = 69 +keypair_coins = 995EFF7E0D195C6D0533F3DC194D47E60F9AD14696144CDE694D60A95F3E96B4A33923382F8863478882483037FB1282FF917EB6658A7154C6AD64B5858C629E +pk = 10089C89021BE2DA6C17EA926BF636C042C59A1B79941C248DD3079F623095437766139DE109C3346147D1F8A069B2316ED2606CA1454E364E9C43A80B0BAE79F005E0EC3E006D1ADAB7BF69FA5B098166AA9520DE263E25A36436D3A9783B96A763C9321727EB65A7207B51D526C6182C1D51372316CC0DDD946077A81F6487B34D68B59841CE41E779885027912C5D6271ADEACCC07DDBA319700694F927A374B794584DE181B890F651043A1B391A7956477B436307DC8B0D0467BC05206074D17F560160774A8477509BF5A936811BB9ACC179834A9D1106AF0438148D076E4C3A7C70D7231DD475F06778ECA68E40210859B092915782DB538E650BAE18537AC3F7A3E46BC76919AF12BC47A3B67D0E44B91C82028EB18D99556ABEC2CF3AAB979D125C137B75586B4D419758FF68229870869BE755950100F9C2BF6D706CB9BBC5289489DF8ACF49046EA3D27FE7F0CF0E148286970010151A11B879F9035351AB10A536B6A3144A806B8FAC1389F58B0395FC7AB90436B440BC9E66AE3C73A5E8E5AD59662286FA9A03E62C5EB100C9B63DCCC74793080CE967B7D162438A492CA2815F56950D02AAB7F12254D75C499840C5D662C0C10185B4BA3F84A91B37745D1EBAC3A2440DD899619706756AD70468E1515D4C0A765942DD5A84AF8A894CAB90A724A95481285A160102EAA39591AD4E2C871A160BE835012705598EE166BF2622BAE3ACAAB37D4FDA18997212B831B9B043082EF2B7B86423BDC15D2BE82687C35E12C85FCE726F340634C1107DF0F50F3253764FE4CF0D294D27F28674F94AD16B7D03F91FA62A42BA154E35496E9B2AA884AB27B5332514C377F78A2FB5E7AD85D643EE94763095B2F2616BF87439C22A26C46287125BC7BAC3AAB30B1AEACCCD25532B326983A37A623F0A2DF3D7CB732124F89C37EC1881F2C5993667339D825B68908CC7923D02C55E7F967D3D3B8D01AC87128B85C465B285D60869290A78B40D48D9C39E92C298B313EAB8A8B1607B6DA8C22967ADA0294696988D5D251EA0565C84571914156FEB5820E5EA145F411F5FF64B587A99B88CB08FF4270CC89573D901CDD5624C0A2C3A654B99A0BF602ACFDD15C06D69077AEA18E73CA0C2E650751A68B659A568C2742B626D37F775D2B9B66DA7A331CC4BBC087866B596B7B55C600864595743E1B363CE38BC1E12041E056BA02BCE42D9CA15F5A241DB89E2510469762690D270D1E16CFCB92F715975F68B44E75BCB98E521A5C2BE1E4A2E5EF07BCE98BF8BDABA631433C5A96F9FE7782E756B8E54714F0466FBD00EE503966C8118A1993910C6AD99511DA8216431B26AA7B09A5F304201ACBA84670714C410E21A2D4517A0A1F139304A6FE9C63371F65D43B095B16040AF3CCC487840CC41A63BBB6E2DC49731013EF885B0E3AC5E2BA78D19265B3F36C1BDEC49697A48252A78D7C4CEF33B176F31104A3185DFA62404DC4A771877FB94656D15C43142BBDA1417A7C69996681A0C69B2D7395E694C4ADE0A5886D28F207722855A30273C91E2C19A2B40B62A554F1EF9C282B51015504C4B84714A99A3EF33504429976C2C036A9782B0F2BE79924D98700D6C066015B10C03DB90844B7D4FFC14B49CCD5680B1C1D9C15CA935404737093C20A05461C45ABCB81C6A19B3A0ABC168356882B8EC3549836FAAF354D3B60D1A5290A883AB1E19B9493C26113B3D03B8C3FEC053BBD14B4BE12C80AC412B6BC1328A4FA5F1A3F46BC4BC685C7DA98533422AA2A8C9822237F62C969CE064EA0402CC656A88C39DDF221E3D6A52ECD38F160A3F71C281A02A24BEEBBB1C6C9025DCC51447A7F5679FB0E382854A29D8088B5FA11C59C439EEF92F869C4FC8B66AC7656C385C0983B07AA98A71ABD2B576212FBBD14B96B19559A6CFE5DC1F3549436A4263BD9B8A185740B4EB16E09184DFBB07FFB7266C275438E13208E4A2888B63FCCA6CD8B5ABBC14769BD61A74F34627B896F1E85C03202F4D58932C183D7CB4A5548CC540A32AA9C558E9889E10D706A809ACA75218740BB6C39761BCB0BB0C76725EB80BD5A46D074864DDA334359B4D4DBC7C8DA2B413DC20A1201AE9E7ACB49C905145307CCC92FBA03C02045C9632564B68CDC1E9527B239C1F9A7F72358949B2AC4074721445E155A3A1624CB4ACA373DE6947F148CA7E2B3C93605E706EDDD992 +sk = DE4627135B3976B8AC07C0059BB28D09E98E3428228C1786C2E8A1D6029D93CB9EED217D09B03E9A7561AF7441E4271C7B6C8C862C5A93E955A05A87B01A63D9E8A334B26E1FC0346051BF31D078860A9AFE939F4A90C2A395B2B6C205475164E36A0C2930CD26E26420470B0D068E36971A978B17BE984A418A3CC5C6B62AB00D6DCA5657F71E08B215EDFB88A5B6751EAA525DEA4B0BD41430388E0CFB445DA3347EAA375B86858F19C81B73A4BF88C2F807638D808F78535B9FC6C6BC0C1402E16F0B784F9A22A30E5C6C1932C2063BC558A7B2636C76D5C0CB77E6C5518B3B31D920A23B2BFFF3AB93FB03B3386F670B07655989C5185D5D393631E9ACEE701DAD333379A63EFBCC636BF2B4FA05B84A375559079C5909651E481DA96B01A771BEFC7BC407DB7D9F94B819A468D443A7AA8C9B4741266875268602336C1B1160A4CE5D41C57FB915335C87A72A7345316373D921A6D0CA09606154199C4F06C244A7C568BC5D82449149F92AD3350B51D3C474E77A3A1053160570C876132434AEDD92C8961B95588910102C62AE1A75479175CDD666AB85478EBB6133920E9154441F1383B0F147137614DADC823F1848FA478B1F301D3F745C647C216C741DFD3B3195483F24F1A5313CB458273FFEB559689004CD534EC1369B0C68A873651F7413037118C6F98C538DAB9C1EC649FF2301A03A650CC0C138E79D15F9079A639737E840A7DC720B173BB329A34CF65418495E4DF2805A491A4C96B47D452725850CA8EB3944399F9D14157FA46B76F0891525461113766DC025EE1C2E735198C3DB253A2B8A566CACB81B65A1C9473C6C6DA9743D780685CF83CEBB441CDFDC9FBA20A9CE2943759C4D08C57A0E74BB0E1888E94723169437AEC19AEC1A2A46C81AE4645DE32BB18F3527F4DCB8221A0F7BE74F3F5A8CAB0609BE216465819FB858232B008A855C9E6B54439A67AAFFD9701967BC46A274D1D6AC1D45CEE7C54CF49669E89A44FFD7B73B2A12327A85BF5938E6975B949C03EF3A1D824CCDE033CB175A3356C8A998E4C69D94630A896606FC1979DCB5C172A54EEA2E99D5AE331BC64D708FAE45C514A2544843CA59C3C122947BC3660DA7357AC0E33F55485E79EB3117D14C42EC5C56653E0DD1A4E8205FE571823098AD8D9844A25B92238063A92040C500CC0BC2B25B493E4CF69DE95C87B03B773A796D13F42014847727345888EB06D9251AEDE24D03E292CB452A3A38A0A461C8B4F9CD9F87B09BC0CA98E62E5027595C24792F818865777A346004FE3B5B587452648263AAF688154526D591ACADB74520F3627D7395EC7B71DC3C6E8414985D591A05C88B6455870C48B12C576D7B328B88795295C051CA6293B0FB4DC61AB8AD34CFB114A4C7E44AB4667D4B1948C83C28BAA424B19370AFE997D8B08E447A2EFF376024F5CA54DC8EC0972B96F057ACF5A6B0D32869FAB3E1797EE2571B1620A076082C4BA6799C27B07FB073092A7A2F7AA110635CB94900E487A6664B318F54956039C57CE509EDE489FAABAC96CB11F58C87708A8ED3408A526701BFB8507D67415FE64E7D41081AC12C21F3092AF02810C604F02C4064E348B4F98F6BE65D87650E56E7667CD5179C347A894B5A9DA3A3A413C2D3A23E5DD0C7DC841E10E4A83B3BC0EAD17B5983A57821489DCA73D1656E97632BEB9A3AAC017855A74F5F393EB5E42C96A207B06687030B28B5E09AFD66225AE892200969CE41420F960E44963F634BB9F69C7C4CC2849F258040257DEF4941D9B54476D2CED88799140807531B817DBB1B2DA7A4477ABD378155DA169A84086150AB09AC8A980FC14DB247B3A76723FD67701644BF72810394B0AC77E74BF94416D866489CFC286DA29D62C1947BE88A0CB78AAE94610D48738019768DF89B38198258DC7F70D62A3FA72479B9AAAA4A84259837BFD4872D8C708D478A0E674A66DA6CFF330A6E140577C6ACFB83CF4EACC370EC57FA76C76C765C39F5A07B8B1A244265CD03AE02433D3FD438D5A885EA03808C6196E4A3A459CA6D6B456A6FB961FED58EC0D353AD36143C841CC8A0390FC55F35D50400156398020051A10C22C69207FA839E12750CF0A5CA404C6B5344B9671E6E15502BA17C37872A9BB390CD379281651047FAC2B6D20010089C89021BE2DA6C17EA926BF636C042C59A1B79941C248DD3079F623095437766139DE109C3346147D1F8A069B2316ED2606CA1454E364E9C43A80B0BAE79F005E0EC3E006D1ADAB7BF69FA5B098166AA9520DE263E25A36436D3A9783B96A763C9321727EB65A7207B51D526C6182C1D51372316CC0DDD946077A81F6487B34D68B59841CE41E779885027912C5D6271ADEACCC07DDBA319700694F927A374B794584DE181B890F651043A1B391A7956477B436307DC8B0D0467BC05206074D17F560160774A8477509BF5A936811BB9ACC179834A9D1106AF0438148D076E4C3A7C70D7231DD475F06778ECA68E40210859B092915782DB538E650BAE18537AC3F7A3E46BC76919AF12BC47A3B67D0E44B91C82028EB18D99556ABEC2CF3AAB979D125C137B75586B4D419758FF68229870869BE755950100F9C2BF6D706CB9BBC5289489DF8ACF49046EA3D27FE7F0CF0E148286970010151A11B879F9035351AB10A536B6A3144A806B8FAC1389F58B0395FC7AB90436B440BC9E66AE3C73A5E8E5AD59662286FA9A03E62C5EB100C9B63DCCC74793080CE967B7D162438A492CA2815F56950D02AAB7F12254D75C499840C5D662C0C10185B4BA3F84A91B37745D1EBAC3A2440DD899619706756AD70468E1515D4C0A765942DD5A84AF8A894CAB90A724A95481285A160102EAA39591AD4E2C871A160BE835012705598EE166BF2622BAE3ACAAB37D4FDA18997212B831B9B043082EF2B7B86423BDC15D2BE82687C35E12C85FCE726F340634C1107DF0F50F3253764FE4CF0D294D27F28674F94AD16B7D03F91FA62A42BA154E35496E9B2AA884AB27B5332514C377F78A2FB5E7AD85D643EE94763095B2F2616BF87439C22A26C46287125BC7BAC3AAB30B1AEACCCD25532B326983A37A623F0A2DF3D7CB732124F89C37EC1881F2C5993667339D825B68908CC7923D02C55E7F967D3D3B8D01AC87128B85C465B285D60869290A78B40D48D9C39E92C298B313EAB8A8B1607B6DA8C22967ADA0294696988D5D251EA0565C84571914156FEB5820E5EA145F411F5FF64B587A99B88CB08FF4270CC89573D901CDD5624C0A2C3A654B99A0BF602ACFDD15C06D69077AEA18E73CA0C2E650751A68B659A568C2742B626D37F775D2B9B66DA7A331CC4BBC087866B596B7B55C600864595743E1B363CE38BC1E12041E056BA02BCE42D9CA15F5A241DB89E2510469762690D270D1E16CFCB92F715975F68B44E75BCB98E521A5C2BE1E4A2E5EF07BCE98BF8BDABA631433C5A96F9FE7782E756B8E54714F0466FBD00EE503966C8118A1993910C6AD99511DA8216431B26AA7B09A5F304201ACBA84670714C410E21A2D4517A0A1F139304A6FE9C63371F65D43B095B16040AF3CCC487840CC41A63BBB6E2DC49731013EF885B0E3AC5E2BA78D19265B3F36C1BDEC49697A48252A78D7C4CEF33B176F31104A3185DFA62404DC4A771877FB94656D15C43142BBDA1417A7C69996681A0C69B2D7395E694C4ADE0A5886D28F207722855A30273C91E2C19A2B40B62A554F1EF9C282B51015504C4B84714A99A3EF33504429976C2C036A9782B0F2BE79924D98700D6C066015B10C03DB90844B7D4FFC14B49CCD5680B1C1D9C15CA935404737093C20A05461C45ABCB81C6A19B3A0ABC168356882B8EC3549836FAAF354D3B60D1A5290A883AB1E19B9493C26113B3D03B8C3FEC053BBD14B4BE12C80AC412B6BC1328A4FA5F1A3F46BC4BC685C7DA98533422AA2A8C9822237F62C969CE064EA0402CC656A88C39DDF221E3D6A52ECD38F160A3F71C281A02A24BEEBBB1C6C9025DCC51447A7F5679FB0E382854A29D8088B5FA11C59C439EEF92F869C4FC8B66AC7656C385C0983B07AA98A71ABD2B576212FBBD14B96B19559A6CFE5DC1F3549436A4263BD9B8A185740B4EB16E09184DFBB07FFB7266C275438E13208E4A2888B63FCCA6CD8B5ABBC14769BD61A74F34627B896F1E85C03202F4D58932C183D7CB4A5548CC540A32AA9C558E9889E10D706A809ACA75218740BB6C39761BCB0BB0C76725EB80BD5A46D074864DDA334359B4D4DBC7C8DA2B413DC20A1201AE9E7ACB49C905145307CCC92FBA03C02045C9632564B68CDC1E9527B239C1F9A7F72358949B2AC4074721445E155A3A1624CB4ACA373DE6947F148CA7E2B3C93605E706EDDD9920560200B8D070D1DB2CBEEDF3CB322EBBAB3EDB80CF474B4178633C210B2FC74A33923382F8863478882483037FB1282FF917EB6658A7154C6AD64B5858C629E +encap_coins = 4C25311D7B2FA56A45F4EC1CB4591C627B52EED4D2409EC70EBE855D988893D8 +ct = 548A3367CC4E8581E7D3BB565CC1458605DA439E65B5B3B5ED1570C6F813196120B2E26AA4EBFCB6259B77F6B1E6350B20087E423FED1FA7ABD55BF832D750E2649910C2352A37DDA958AAD18AB7ED887D649D4051116576F5DAB6EF2417AA5F5B7E0BA0FB0E92B5451248C9290E114551B79CDE28FD124DD97EF7F928E1A80E8199580E624D2BA1F8543BF1F145990DEEF81445C5993E2708879757D57D80C3A4563DB9838F62EF7AFCFD01F56C2F3DF48607C4E8118DE83FBBCC4A02173B7E478A53CBC74AD92FC516DBC4824E5F0984CF49F75BAC04E0BEF1013923058812DBE15FBCD2A643B6BFD0AB92F25B1FBEF640DD8049244A25239A3340D3DB729A9E1AD1390D7CDC7250C05FBF7E722620514D39755BB4DD43D74029024FCA9E5D3AD462ACFE19954CEEB1E803DD7A43B5F429694C01D396694425667DF1FCFA8AE69EBC080673A356B95C8A907A2BFB4313A062236E67F2F7281B965CC4A55704AD91D22D77453086EF7D668BE3321FF6C7F70015E761AADDBAD1010793A3ACC1C7A10E3B0D4C1C4E8A85B59C5F28126016366EAE7458710F0E843EC1231261B39E540FADC8E5F4D695214A010097757FBA2330910E29A1A5040EB926FBE3DCB228B14166963FA5D51878D425D4F091A677DD029DE8F298987D5292336567AA2C51919F6B3D45BCE6A718E280BCE385B51C9ED347BABAF186B254E8B89684D525B7603C8EE37318ED2491DDC9A46C8F3C112FCBE8D8C6A9F7F6132BD098E5F717ECC472DAA7A70C22396500AC350B4C2D054C093A8F80BA6737CB4833BFFCFDE86BA314249537DB669F7EEFBFD52A7BD208BC4BBB47A0E39EF22D079B7FACBDA91E177217A3BA12D0D16C1313036DB76DBD677453F57241B5C66DC975E9B0A7F947667E3ECE5D5BE84F34EAFDBD23A4C6808675CA22AA7B4630D8D228FB8B9EB95F5D4C09AB2D7C93A7C501B57AA13C20A72BEEEEE6ADE4650FEACB673F3FC7C66DBF74CD3961C27772AB360E4EAB496B2C166429EADB429177C06C98A10E0E59691097AC3DEA92F48C84B7763BA4511E6267EFFBB8369B58D1276B133D6A2EDDB6EAAA244A68B601B62CA108CDD9C01ADDF378904E33A3B3DB122851D64D31A9BC6ADBA34BA0A3E7E6F968F62D1CB2BBC727B8B7730734B37F7212D58BA2CD6C247D573785438E27C47873A5289F6C8F77E6349C3836CF47F30A64549531D5E794863DBB22D0F51118E12831898739A988B5C7B6B83CEA126B9B84EC008E174F01D0E598DCA1C171F6D58F01686125A588A5753B6C3B6ACA64BEBB81C2F214722F2624692D104036DB1ED248247D597025482B4FC5BC1813064D441F4FCD751D26E200CAB6E0FA072A87241A482FEEED22C061D9A32E0CBB9FEC2EA3C99ED6B2C839FC89A83A3AB2999DEA24F69C9BF5AC3F392E7F19384B573273975C7847A11D5C0A1305CF3DAE96303268E096F7BC15EACF287035AB5404C0A608D1823BB7130FBEDA6FB5BB8B774D8B292E11FBBF4DD9737C4DF0E0018DB688119A19FF3A2255F436786E1B175C90830EF882EF040C0C4431573BD02286BC9872161B29EAB31306281ADC25A8F2A6923B7DFA89BDEF7A2263DFE457CCF2F816BEB3BB7716FF021BF176D67BB2AE4D8E80745A35627FCF9AD83E81A3A03F8A1BFC2E1D8345CDE4921E6FB90F95D76847E2B1ED299860F400D628EA59975AE43478453794E2D4B15F6AAF197A0C9A441AD40CA113B90E260F34D50BB003A8DBA78E3A15545C2A2ADB8620C1A55182FD120DCB1DA366695C91215687C8F540B37C2EBF81C7B4BB325906A248E72A63C0BA3A5891468C817E0F0B6FBF3028FA45B5313DF0B7B27477190D0F42F24A6843E2555A28EEA6A9075EDC64C478347E8DD3FB2810E62686E9C89E4E50AD803BCA616C9ED701814A620908D67DCA8B6ACA709C23F5E6022A60E189D3CDD87F3FAEDEE2F44B080C656E53287DDD20FEC52DD6F2F64401344523D09A9DE2CCE1737E63A14295336119817D157504B3082FCA7CB9D3C24721257E0C8EB2E5A72A3A9B52553F876F971EA66E2ADC506C6B61AB7BEB47E40030AD7130BF6E0C22B67B4FA45C34F26BC6D51B79BD58A6DD8C4CFFC13120945F1B0E125B701D171614971154BBEFF167A628C052392D8A08330B099EC00DBED6A35B3AB3B0BE155C2227CEF9700E3B2E12038FB9F581804EBBBEA71F468C94A73E +ss = 5D444C7798331D19A14766E62A9719A4B19B6F96FB298ABFC6C097E5AFC56A1B + +count = 70 +keypair_coins = 3E809EC8DD0FEC0D911A4E3FAC20F70FBB128C5DE94DC7184CA7310AE9157A987B2DAF2EA1F1011C4BD04208E9E90B9C2BBE2D8B96A1565CD1163966F5337E4A +pk = F2810BAED633638B1737B5AB13FCB47E181E6CB86C69301B77B85E2C64305F1584E370934A02AAFDD27C972CB252B95D01D6B6EA9A52107AA9AD68A021B3BAB723AB9599544FF08A4A13643E181DB6C752A8A5C948D010E8743ECC064EA034444F3A2B207BC3A0606600358907708BC87016261A61B1547BCC8421C009778EE31598D47A48D3A99E9A24CE230B9568CBF4BB61D9A0AA512B282E2506A51B0FE92507BB7CB044E93CA230B6D9F97CFCF31B9055C9775419684AAB2609A1E11B2B354223C9761F7D6B5B02A16F72A9910F7CCB63263E1E45AD9E0349405B8A8B876D3125824C115C69510666308330901208D02F1A6057A0F5481AF4956EA5281C956735D28E49173031B688A30289D385A7718C2C21C300D7AC3FC81BBFC6747C60F4CDB9C037C458C50DD1605BA167806A6FC32C759F2942DD81962AD657B51942B3FC8D925B9DB72B1FD2B303C05043638A3217D1856D8B243018B0D8679DB5C3364A85B78C913793E87855B382B3456D3D7C1C2B82BDB94C6E96732C6F455E4E631FD46CAD78085556FA7FDCC649EBE587D7DBAF5D1A77C6FC70B3BBCB89744BE1B09430F2CE72482D6A8673A8D511A8A1C506A2CF4FACAA9E489D6A3A5322410464D590D0F52B957B28937B543BD5A01F07261AFC810D41BC815469E145862A3238BB194DA838C642B817DB611E18C08325502778922197E73AAA2C030869CA3AB06B22827FEB4465AE60975A61255A405DB1F112A2087218619BC9DC064035774306B14D4B6003949181301253034323F55BD0818097193D449A3CCD1315EE375C7EFB833D03A87A881CB5DAB7E0D045B6B80505CC18D8E9BE1F1A7740D4981E31339503B1A2B22061D484D9368B8A5193D29B3CB693B3DE6A357414BE59D5AA64C6C4AD9964E470999E90627014B34A7A8B168010DDB76F994783B5F41EBD60697198262CF42EFC13128A45024386C78851C709389262D10D65C4784EB10C2CB13D9FE819CB4C6DC0C34DA8C22B69D5CC3AE995E0A965A267CF64D69D2BAC59801C8DBE917B37292630518B093B98D39C6FE0138257467F93C76118CA748556003C05810E7CBE83C60F8791A72494889289716790242199262E44B356A98E38429733F07E4D2329DA534FE8D4998872429793A6C4D14919D3ADBDA51C60CA58C915CB53B37580D960525A8DAFD591D2CC9FCD8A615704B4866C6F11471D84064732B11D62D40633D67AFFE2BD75315C54321D3F515078B1CAC4E1BA9FD529DB1B92A47202C0E768B271826787BD6098A8854460D5DA5D5744944887CBB1840125E2825393B64644B8C0B6CD9536BE03D6C3E7E6CEB13B1901F1CEC3456903F5B15E9994ED1207FF52915FF2460C098EF820A1E885C2FF231896A3C1DCD5CE49910B30927597D988808721CDB68F98914266919DCC46125278774D4C1861466A8197C4214493FAD00F83808290DC6064A388633B0FFD2B1FDD84A6C3FC3576345D1A654F3B129FD6C2A6B95B46D235A9A7F44A6F9558AF20A451A69C6F5C119712CC5ED91F91B946678520E7165AB4CC367D1AB985692F85E68A3B05C738319E0D7107F2F89710F32C7C047019F6CF29854BCDA6B319288944E9907975083E649A93289E04054496F63234BC4CDCB9A2C3D8B98C9C63B08C75109B964101AAC6A016725C3903E5CAA639614650C0E052673721B113F48D5CDA5CCE6B8A7449BA5308AB9F1C25C4C4335E2C4A3BE318C99787FDD98F7B592D942617B4346FCC402DF7A41043B0BD87C318757BB3878B60421AC5B2234863D2888984898D198D002035DC123091532371E444204AB05C8A9DB00C4756135998369EB181882AB3C0C3D17189267F03D64AF8B2C3ADDC90E32B3F44C43864615AF5001B45C9677F59B8CE680EDCEC5088DC17865A790F593AB49BBE5327718A4B0A4FBBC0606B7F0E6B9A4F4857B3146500839BC47A8825E890DE04100878518C722D321740F4C4035A813A5B1C9CF081679E957B795A2771485874E5BF75F57B11F8AD9FE3B1D2D72A1BDA04BB1517296193763776FAE451B6615A8E9C788A5C8D65173BB9307B2CF9C863029553F56717B355843AB1DFE72CEF8C46D6A8367AB70F83DB71C4C410960A7B6221AE2AB64A17441F4B50ADFA971F25C719DC8705926C6BAD712CEF52D284175DEC18F24979EF5BA8EDDF7CAA3880AEC7B42A147E75F0DD62B3D0 +sk = 84D7070EE80107976BFD1B0DB6CC33F3C98178817D8460B63DC012311638AA43B253A705BC994931BAB38A62C5D1DBA793B8437BD600A8725D36AA898E353D6B955B80F8578F855BCEE194CE2C6E4C6179ADE8176E34578FB24B6D60C395B674A7A8A4C72550F83A09D24582F94125690428A4E76972B77A53E852FF3718A440B67D6521CA699E5A8C434DC47A38032129BB76BCB4C810028938FC94F1741A1FB26EC95252E259B8F9176BBAD8763CB63DA6F295B460CDE1479BE8D6B9E3C49AB77845C21C8F3F88741759461E339F76376AB81B4F07E7BF0DB861A4AC5B24E09D4144AC900B43CEC07F1DD2CC4F7C976EB0BAA4D8637BCAA70946391109981E978CA023313B200092D26CCC823EBBAA85B8BA1680636D0BE656F01769555B058AF7825FA00D10A38B0A2B127A773CAB406C1D4310A0882889759F20B44AECF68DD24416D9491CB523A1AFB1A1ED87B28E5589F4059132603E228B185D426F49031AF8FA21B11CB0F37C4557F94B2F158340921F95091128C5616F54105D47253F150FF335081D231F5B308A526B9506B03E0B5C6A88394F0C9C6E7C2B475C7508A3A8B1E0D571D1C364784CC8A7CA7AE6C2B24366A0D2865658D42A8495B24A16C9A9D8B1EA77332A1058DC292EC02C4723FA7204E93EEFC24F10C4877425975CBB6142026A2AA649FC6C77E8C72DD3E5B0D9E9495A02C251B12B7AB51F6A9853BFD151A4873CAB4102DB62676496A8B38C8038E4C6D988880A6B2774875A5FE69693D9726AF64A51D77A03E523BAD8B2A6DBCEA137A051D19E81059D07437E38DB7891956C5B2C8ABE282B5A02A5530C56A7B4B46DAAB256588B04344365313A3AD94A2D7ACA4BA7072CB9259E2676A5C86215B24FAA159BC18BCE05451C69D2699A056ED3F6A7F2BC7676F11BB06CB72DC53D7EA6BAFEE89797B57445F3AE11262543A2882B863CDB455D5EA03EBA56946DC61D798A76BDBC4CA7F2A102C518224A2091211EC4D251CCFB08AA2598065A79B8B61A56E925031A579AC5BDEEF1A6E0B1381FE180DB008F19E775E030052A624B91D1550FE5365260150CCAAF228ACB8FE471D2C8B4B27BB57D62AE9AD9CE15A0B72ED98B8A619CFDD3A17ADA37CC455D77640EA327088E9C33D4281B65DC9A27C68D27088B1F2A5FC586BB0993753E62A67BC3886048274AC267A95B42AAAC3E60C2699321A79301ACD350B92899A2C0CCC4703B243660A39C5901E3B6BB146C588DD3431C4A5BEAD8AA29E04F8FDC0D04783751707CC25AC359952ABE7384F839B42D9C9982DC66A21C7FB5CB7316748423E25005D389BCD56FC498080F88CD75EC974CA9CE9F2BA995B50ECA85CF09612FCBDC492CCC6D0662A59F8CC0FF3355F17424ABB6C774A377B81C12B9982F60777926BA0B860123434CAE8F926E902A5E633019E3C62087A1BDDDF2186768BAF91656D903C4F1CA88163B8DCA041823BB6EE525583816CDFAFCCBCFE63DCAE0B93C46A14FB72114194CD084C208921925E7C55EC807EE6C0A8DDB71C4AB3BD5836B7FA160009DABD1E5498D005718548324B0339EC71AC4A75C81F522DFD92B64E3676B337758490E068C3CC747BC004DA30CECAB9C542FFCE8266D8106E77631E9166653D50B220829B272C2ED5568FD00C52DE89E1CB76ADB4963623C082F824AFDE530E842838D6C331D80AB47F33FC2730BAE2407B8A40C10642BDAB993D363612E5B6250825C92FB6A78535FB1EBC52BD83B6F5B58F52669CA138370F1B21FC80F09D7011A005A20125630D63A9E596DC782962C622BBDD44582FB8A2E4638F7A0029C740F87DACF6300A8AE8B4CA91ABDB56534654395F9E2C7CC087633149AE3609089567C7C7B20E13C03A059A5C95B22BE46671733B28B41B354F30B043BA5EDCC15EBE74E7CBC3188B6AB37FC40DD3BBEE7E02DA545942138739479C4F610CDFF564BA7A281B7249267C3740966C7FFBBA92A8A1C3328B19F58C058EB27E27857E46585E0A4AC62F1A361E44F92413E37E7CCA667AB53064DAC9B3AABF3363451C95F6778DDC114F8C3673CC302E7183D49379BBDEC05FD361399BA5AD58A5A8F823EFB096E1DC522179100626BB67AB1647645794B38AF228787B425B03F7C15082ABD063125086C8586552070F6897252936CC00BF2810BAED633638B1737B5AB13FCB47E181E6CB86C69301B77B85E2C64305F1584E370934A02AAFDD27C972CB252B95D01D6B6EA9A52107AA9AD68A021B3BAB723AB9599544FF08A4A13643E181DB6C752A8A5C948D010E8743ECC064EA034444F3A2B207BC3A0606600358907708BC87016261A61B1547BCC8421C009778EE31598D47A48D3A99E9A24CE230B9568CBF4BB61D9A0AA512B282E2506A51B0FE92507BB7CB044E93CA230B6D9F97CFCF31B9055C9775419684AAB2609A1E11B2B354223C9761F7D6B5B02A16F72A9910F7CCB63263E1E45AD9E0349405B8A8B876D3125824C115C69510666308330901208D02F1A6057A0F5481AF4956EA5281C956735D28E49173031B688A30289D385A7718C2C21C300D7AC3FC81BBFC6747C60F4CDB9C037C458C50DD1605BA167806A6FC32C759F2942DD81962AD657B51942B3FC8D925B9DB72B1FD2B303C05043638A3217D1856D8B243018B0D8679DB5C3364A85B78C913793E87855B382B3456D3D7C1C2B82BDB94C6E96732C6F455E4E631FD46CAD78085556FA7FDCC649EBE587D7DBAF5D1A77C6FC70B3BBCB89744BE1B09430F2CE72482D6A8673A8D511A8A1C506A2CF4FACAA9E489D6A3A5322410464D590D0F52B957B28937B543BD5A01F07261AFC810D41BC815469E145862A3238BB194DA838C642B817DB611E18C08325502778922197E73AAA2C030869CA3AB06B22827FEB4465AE60975A61255A405DB1F112A2087218619BC9DC064035774306B14D4B6003949181301253034323F55BD0818097193D449A3CCD1315EE375C7EFB833D03A87A881CB5DAB7E0D045B6B80505CC18D8E9BE1F1A7740D4981E31339503B1A2B22061D484D9368B8A5193D29B3CB693B3DE6A357414BE59D5AA64C6C4AD9964E470999E90627014B34A7A8B168010DDB76F994783B5F41EBD60697198262CF42EFC13128A45024386C78851C709389262D10D65C4784EB10C2CB13D9FE819CB4C6DC0C34DA8C22B69D5CC3AE995E0A965A267CF64D69D2BAC59801C8DBE917B37292630518B093B98D39C6FE0138257467F93C76118CA748556003C05810E7CBE83C60F8791A72494889289716790242199262E44B356A98E38429733F07E4D2329DA534FE8D4998872429793A6C4D14919D3ADBDA51C60CA58C915CB53B37580D960525A8DAFD591D2CC9FCD8A615704B4866C6F11471D84064732B11D62D40633D67AFFE2BD75315C54321D3F515078B1CAC4E1BA9FD529DB1B92A47202C0E768B271826787BD6098A8854460D5DA5D5744944887CBB1840125E2825393B64644B8C0B6CD9536BE03D6C3E7E6CEB13B1901F1CEC3456903F5B15E9994ED1207FF52915FF2460C098EF820A1E885C2FF231896A3C1DCD5CE49910B30927597D988808721CDB68F98914266919DCC46125278774D4C1861466A8197C4214493FAD00F83808290DC6064A388633B0FFD2B1FDD84A6C3FC3576345D1A654F3B129FD6C2A6B95B46D235A9A7F44A6F9558AF20A451A69C6F5C119712CC5ED91F91B946678520E7165AB4CC367D1AB985692F85E68A3B05C738319E0D7107F2F89710F32C7C047019F6CF29854BCDA6B319288944E9907975083E649A93289E04054496F63234BC4CDCB9A2C3D8B98C9C63B08C75109B964101AAC6A016725C3903E5CAA639614650C0E052673721B113F48D5CDA5CCE6B8A7449BA5308AB9F1C25C4C4335E2C4A3BE318C99787FDD98F7B592D942617B4346FCC402DF7A41043B0BD87C318757BB3878B60421AC5B2234863D2888984898D198D002035DC123091532371E444204AB05C8A9DB00C4756135998369EB181882AB3C0C3D17189267F03D64AF8B2C3ADDC90E32B3F44C43864615AF5001B45C9677F59B8CE680EDCEC5088DC17865A790F593AB49BBE5327718A4B0A4FBBC0606B7F0E6B9A4F4857B3146500839BC47A8825E890DE04100878518C722D321740F4C4035A813A5B1C9CF081679E957B795A2771485874E5BF75F57B11F8AD9FE3B1D2D72A1BDA04BB1517296193763776FAE451B6615A8E9C788A5C8D65173BB9307B2CF9C863029553F56717B355843AB1DFE72CEF8C46D6A8367AB70F83DB71C4C410960A7B6221AE2AB64A17441F4B50ADFA971F25C719DC8705926C6BAD712CEF52D284175DEC18F24979EF5BA8EDDF7CAA3880AEC7B42A147E75F0DD62B3D03A2484828BCE833F9262405B562BCADE9FF04877838558409D2B60F1B689D1377B2DAF2EA1F1011C4BD04208E9E90B9C2BBE2D8B96A1565CD1163966F5337E4A +encap_coins = 37A2BFA95682BF678CBEFC25BC48BF62FA950BBB7C0E7051CEE508F9540FDBEC +ct = 474BB08D597D3346912AD55E4DEFB164EF55F87F0AE152F9432D14E385F448E909ED293D06E2FA02FD0A7AD2CD8927DC7E220C5247CB40C90DF5B11A56E160200761D9A98FA78BA4C03CE21283EDBA4A5EBCE40D3E3BC77843C129614FDA01E262D5D79ED2E18B1D3FAAE28C78B47935AF99F5280170C1DCE64492CB56BBD818C50C56484E7669986777CCCE0A4F302FD64A312922096C0A5A0C460D19B3BFCE271A5D22852FEA863DBFD4F55C2BA53CA33E3EBFDB476EC8B507F9B0258DF25768DDBE5A757622BAF7BD2CD1906F9724DCE0DCD462AF7C56960CE887297E80033C5413A85BB3AA2A975B70CF120B15BAB63CDC2F11EED0066193B68492BEE6777F80C6390C2DD5E74837AFAD46E2CB7902575D2094F5A4AB1C84F299E8D4614881FB3179E849AFEA539CED56192FF1EDAE4101B0FC3E945C81C64D1A5524AB391EB13525A73C2B1AC7420C0D77818E96BA2C72F22403667D59E36747AC074285F3AA58AE1A24BCE16E4DA9DF678331CDFE4914B180C84524A5C0174D39146352CA3036D4EB5A1650AFD2083255D31808D7C56B1714F0992C025DD571F4263C3B3DFAD96202479FE65BA8B44865FD7AD53D2F709E8F405828785CCEB790D7941E491604670314D435369DE575555522E59FFA7ED911874192175EBCF209376FC2B71B41BB70BFD443849558BE6B73C9C4F57CBCB278A9A5BAB4661825480593C102FC3325B57196EE47C739DF0512A237A9620F1AAF03599D6AC1CD54DD553C7392BEF8008C8233EDA886FAF38D1B571C9089C4882610445FC67787DA2136DEAC2A1501B0C6EB55CB2D5290A85B6F3B52FF5091B423A5896DEBFC8B63C3CF41827852333D21AACC446CD2C4CA2224422D948146E06DDC9745B289D4BB46D3447BBDC6C43046E7EAE5ABCC56255394C177C614C3BBB9CAEECCA8C788826C2D92BA019D786F3DB12C872FFB52FB92399F31E09BC5C47E2882D631321E1645C4459F98228A4719509101090593E71103222A35FAD29D2F6A2325E947624CFECE80103B31F1B645A5ECC5A2EE9E130DC0A801115780F0D7D2895688EED3EADC855BC440BA402C85BD8A897AC97D9C6888D1C19B9C0BCAE368C64924D8FE18BB71DA3330B091F7EE4560ECB3293FCBEDF7FE6F195CC099CBC135C9EA5489834B30124168ADFBE87544CD502CBA542B8A053FAFB3F300F7EA06C808C34C40CEFBB4AA2C46D9297ED549A7D5C8EEBD2CA306150057B9F7424077EE1D26381E064EE9FB2F1D6EFF1BB02DF8C10AC1F97C623605782D892C9DDE18E47FC9890B22D322E2287947184CF2BDA35064CFFC3B2288E70CFA69649813EE34C297DAFF0997C38902F585B5709CDB8DEA6850DD1844B84BA35E4C64119B7773286A5C4BF9CCD5E635774A730B2C940D45B45D46D236344F7EEF1FF5A8FCD92521506C3AB923A25D5F85B2207C0CF2A02786DD13FD13C669F4C08CAF5D6457ED86F3811E7FFFDE152C937BC5F8384C8CB9C13DE7839FEDBEB280A5E867970735AA8EB9ED9F969DA0B71076CB5FC59ED2437EF5BBBB7ECE22C890B6D05D95421B368DE7C6BF1F5560D98CC350326632B1C224AF4BAAE86F36C8FB8F3BF58B519E3D62BE2BA75F3D9BA169113476F5BC7FCC787A15AC898569260B3BA67ECD1A41E91ADD49AAB38F190D9B7781FC91484E0C40288DF7B3F92EC37B0A9CC110A61E391861E0CA3B23DA738575556BE9904369F0960558B24B02C22B65CF793C6A55FF35AA66E1D6682E781881B0AF595697B977C4BBCB79AA6F8708350F0AF1F1916084F8D02506FC060DB71433352806C7A0492E782A4EA22E550255ED21217B3A52A07B006EDEF4C873410BE75082BB103B11281DCFF7E5D1C532BF7782CA4FCB924D4A218D515BC4FE8D1ECFFF834135A388F96DF87AA72C1F936A69565A3917574DD8C672358782D3F5FCBDE4A15C691158956144189B64355A287D0C744F7544D651FA8FCAB0C90A0489266933600EB4E2758B19CF4EF0D84E3267527C6EE5FF0E812E10588262259472882BE688804293375C0DF5C9731A1F97F54428DC1C306B8044CBE1C1C3C9A6F5035930273FE7A92ACEF07FBCC0A2D11282DF10EAE4B04C99CE1A60F9B84BCF4BCAB3C3F042893C25412455658C56929DA376247D60D50A215430FACAB068CB8BF3153F7132C8527BFFA599866D5EE70FBA538A683613E0EDEDCA5F0E7361 +ss = BA4C61F3DFBAFE6B6A15471149A4B56E61C8177D13C07F34B3C0AF594E793214 + +count = 71 +keypair_coins = DBF1C465FFF3D9F783BD9EE61A573715E45691147B8904439B5FFAA64F94FF7B5C2478CDC8D59AB164856623D53B9E60CF0AA8214CB64E674140BFD6DE9FDFAF +pk = FB70AB80405C4C59421F913A78E89F67767E71FA51431061746A74746B1FD544065788A7F880B9C81C007E6091E6118F3ACC518BB06579B45AD1374404284B0F1C370C53062CB79A08015B4086626D3083EE7B427B24613947588F7149777A3FB5919C73D5A23EF5445F24ABA79B94BFBA774F71C84F929978C44E07A84BB9139B32FB97D4B20E363A2098838C6A3C51AD244B540B90020C5A0CE2B135918DB1E9093A0CC43AB210D28A7889DA51D88C7B3D1452D7879F34A130BB263F51429086E39051B8ACB15A8A34D7A856E6A89248BAAC15BA1138B680E79E56881B94376638F507E95809862B0897744D3D8658E33C89A7791B93ACB17DDC91CCC5B71B01B9BCA81A7485C5E4428538A3BA7F124D24864149B26D0F246E9ACA34C76103D676CD7A54ABAE1C895C37B1784476180601A67A5D04996D195363C61864CAF95E7D3B2F4ED68CA2DB09D9D34F86D5666AECAA468587FE5A3C56434FF4815C61094C831699C5F1BE9301299E3016B4CC602BB62A4F1C2F1AF247B4FB92D4A10430E29F0A71C02DF70E48E0AB79C0A31827B996B4328294864DEABF8114B4DD58B53919B1E86CCBFBF7931523409DA691DDEA60DBAA6114E62417D9BB054110D3284B3285110B7069FCC58E2E13CB50DAAA0FC082B7C87EAF13063C6A966B4CC24334A7E6FB8C3131461756A35F2B9842811F233A6A7127A33B7CC559B477B491C0155949F9952AC9631C32451B3872967955C1235B61AF676429C94E9034405BE47AC5873C9DC33ED94828C9429DD7CC29D076871222893F207B0F3A8086D77C3D7792BA25BA8DB46A554B161A30CCA878AD6397974ACB3812767A95A01F73CA80F1D83006E9460D2348C047AD60F2841DB1BAE58952142AA3491CC7DDE58DEBBAA27621C7CAF299F4325EE978CAAB6CCD4BD7510F318B20E98D26A94EE99C935629394E6B80A5614891A75B45D81EDA8A6CF8D8B43D62AD9399369023C4D677CE75F14F84B05D01B7B021E15E459BC5C82CC9C4158BA32C5D50708AD9F620297333A4D899CC7A90C28740039B351345BC7B971AAAF39D97326553740238E569D4870BB09C66AF75B532778B9B0A631D362D13D61567212E6AB523FD4C3EBD5839E4AA1421DB5E06E33BEC836876D8A8624C22FA56C43D4060A9E52F1C905EA8714D8436569D050C7A574A74535AA3C4C194BB3D4A867A07535DCDD93F644BAA2DC5242C5A58F0C8CAEDCAC7C5256D8F3B40BF57B055616C24569A51C5BD712279827BB00D274D767156173C7ECB8766202376E9A7227517BC4488C029B9B6B2642858344BD14C8837AC908690312FF5A6DE7BCB88F2CFFD40A9FC666800F9AC54FAC76FF5A42FF83B9D49233C841607AA348E2A5DCBC572D2A482F78B2CDF3CA4BBD22148C925276B6072D777D53081311A286F37AB14BA2000AD4CB82769DC889DE981C969F732EDA2717CC405CC276FC965CA2BCC80054C557C1343847BC6054157A5276432917501F88BEF0B44521C0D5FA168DD89C9E34ACA4DF0A348E53EB5C939650A240879C0911A8E1CE371D7EA45E6F90B8DB0520B115F826085EC25A108309466C11920984534C99DFBC7467AF31D5F941784586BCC0347412C48D0927A4B95A22D98B49A1A20CC72272F09BB63AA194E4450C3BC2351CA6D2043A68EC30C705CC856B00F5054A66D3140BFBB47425A67EDDBC4204944A1E379E1516E45216E12D06B2D522398A125728822CED62DACB220C845A444594B3B6977EEA89E256878E52C766A86A3FD04437B4165242553FC747B80952769C10547804B80C1A6D85A29620AAF7054A54AEC77E0E3C1ACA9613E0B877D39CC9C1C9088A96D7452A3E2C6A1F87C4EFE1234BB9971A1026292C22C94449B7C8A2CB117B8175C7416284742120C11378C03256E4D2B80D502BC5DDC1D4E3C022BEA80140307A3A214BA51C807DB26F2536829A62400FD3A8D06B788E5CD43896A9A349A4C0581662999B9AC52803BA34BB128BC0556FDC40EA9EB0B73193396D51C1BD533C4910B358969BA135F862B64DBDA9608DC7665FC61CCD645F8926D1835ADC34386CEA20FFE3283F900A4FFB693A223755A50C4771379307242E4548ED4DCBA4574410D409A4838233499A337859C64C6941D477F70BCB5A653BF571602E5224E40F228114639B811C5C1D3B614DAF84266BC4C312FA43C4109DAFDE79000AB39 +sk = 47318B2CC6A9D8BC6EBE7C12489017C03214325B61A2A8541FB783C448C3A31C1D82BA7906B09E3512AF8D00D0706A3D391281F0315044C9C4F92B0AD72C60E18637577B942A442589CBB466AC344438750B86CC86B97D16339A9DB0365E6696B183041543B031C9220E82BFB89C21A5B0A0D301109568B1C00B2B878C9284375949C88394F141ABC188EF7607CB8151BAE654A7B7BFD785B44BBBB5C5A68CA5F96BFE5ABF179CB83A58AEE518202C9119C80081BEB38CAFF81F5EA51811F13BE9491F431B127783227BF9B691031145D6A144213FB4F1C89C38C00C81ABF075C4415586BDF28B946380C948B94D7A0C3A793100842230663F4EDA9174DC7214884E0F552A50D16DFD0A5DDFA7920B0AA50437BFC735A546F5B0F4BB22E174B061BC80E91428547576B6205490CA3934C9B15FCB69611A1639974478800B2CBA3D5243A0E2762BE2F87035295FFF40B56BE37DDC71915434C4AF6472C1E5C519506E691703C49C715B50B360A5C2FCDB79F59C7ADE27380F9905EB7AA6F5042C6A32BAE657C699EB85A53395C0303E87E89800131F96969BF45B3F574A40ED813268603A24F1C3180607814914775350B88A1FA7E1034C9CB155879668950AD5950803ABC0CC58BDFC408FC1F2BF7D3A2972AA66B58844C048150C0B8C89ACA3BD3269474875BF10A94D2B9EA3687AB9547EA59731B73A8849AC7B7C4B946D70B8B87C56B81B77024503BA87485BA3655F669770410E89FC84925B87C008C3CC13C7B9447D82FC2932A1C641230725A422B6219D9BDB5CEEF17E121132E6615075E0B26CF71E91A1593210A09507214716A3405B2503CA5F29D4479914CD10B3457AA62A6BB71BD08736E1519E69F709B8C8439B4441BBAB5D0911BC6737CA742747CA592E5ED734A8AA1B77450A9D4188E05422BD9240E285865D530E718C6F1A816153CC27414446BBA8129A1716171AA60AE086AD09951C2B9AA2744E0153CBD4EC9D1736908CD78E7CD75D0333434715C517633EE6603F7993083724A596069F3270C071B6BAB955844A081A896096F76059B9738D819CA3B6588D5F578058D28D2D0710B2BB2E307A5F9E18533713C41E172A99614A97C00AC0A83A25526C399CC9FA9B74CC4774830C8E754231B04274C90C526DEA7FE3D203688114E7A90D3AC02AE69A139649B754581BB56825A215C3BA282A26C036E5D5785C07C62956B612FC37FB73A7C6EBB506B998D54979FF29781CD09CCB64993299745B34B6D7F897C0E05E1A6966E6757DBEE29AF2EACBBB7701DBC39294DB584C7C3A7841112258951D88145CF73404A17ADB8CC4D11788225557A83B652F95053E8507093B2A8B00CE77E7BBBE83233DC18880F2274472C05E646B90952FE92440D164092A058D69C96869D8A83377A2DA92C2D668607DEC3CBEFC6242B49A9DA97C19C2067722C8D309CB898593B08B5D8138BF2FD1C59081614F764ACB392D7FEB205A85270DFC1129929CF7B53D41031C92944972B8BC9A9C494AB384996647E177A87A101C45C747660AA4A38088A5F7919CA46DAD338576463A1C1425A6C4409E2BA8217827AE83BED4E6C80AB528A6BBC1AD58C868B995D9F72C77E84173C9CAC4311D8FBC5895D694498A68E0B16037A95F9B61C95AD0B052E01DDF68A1FE5C094D3B8726545F1F857BE735475A8ABDD7C7B749377F2FE1ADB0CA283D6721A109790F4242AB1711B08CC2CF7361177969EE3106B8238E4D41795111908FE17DD68A461C490D165316E927781AD220FB371D5B1951C4D83D047B72F258865E4296A9727052F4214EB55727B23A52BC68F73CB417CB40AD595888C941AC9360C11C0D17790E3EFBCC97373AFDDB9AE3F61030729D5B7B200E4555B6D25D3E6B16E211BD05DC2C724A33FFA8BB3AA4684A422C19892731630EE2125AC8D8CDFAC2B69834BD888AA2ECA804D7A935A8D371899023488C9799B55F2D83A7D970AEE1750DCC59483CC49451991A799044A74326EB0689A1C72186226C8102B344209FB510C21A885306A69640F6ADD7858DACC86216A189984640D518312D553626DA12C9180948492EB5D1090BB896B1CC315105B2A0002F83B3997F02A227740BD4421ADE421696031C495892CD3BB68AA38AE1F02AFB536E9499ABCCB904973661FB70AB80405C4C59421F913A78E89F67767E71FA51431061746A74746B1FD544065788A7F880B9C81C007E6091E6118F3ACC518BB06579B45AD1374404284B0F1C370C53062CB79A08015B4086626D3083EE7B427B24613947588F7149777A3FB5919C73D5A23EF5445F24ABA79B94BFBA774F71C84F929978C44E07A84BB9139B32FB97D4B20E363A2098838C6A3C51AD244B540B90020C5A0CE2B135918DB1E9093A0CC43AB210D28A7889DA51D88C7B3D1452D7879F34A130BB263F51429086E39051B8ACB15A8A34D7A856E6A89248BAAC15BA1138B680E79E56881B94376638F507E95809862B0897744D3D8658E33C89A7791B93ACB17DDC91CCC5B71B01B9BCA81A7485C5E4428538A3BA7F124D24864149B26D0F246E9ACA34C76103D676CD7A54ABAE1C895C37B1784476180601A67A5D04996D195363C61864CAF95E7D3B2F4ED68CA2DB09D9D34F86D5666AECAA468587FE5A3C56434FF4815C61094C831699C5F1BE9301299E3016B4CC602BB62A4F1C2F1AF247B4FB92D4A10430E29F0A71C02DF70E48E0AB79C0A31827B996B4328294864DEABF8114B4DD58B53919B1E86CCBFBF7931523409DA691DDEA60DBAA6114E62417D9BB054110D3284B3285110B7069FCC58E2E13CB50DAAA0FC082B7C87EAF13063C6A966B4CC24334A7E6FB8C3131461756A35F2B9842811F233A6A7127A33B7CC559B477B491C0155949F9952AC9631C32451B3872967955C1235B61AF676429C94E9034405BE47AC5873C9DC33ED94828C9429DD7CC29D076871222893F207B0F3A8086D77C3D7792BA25BA8DB46A554B161A30CCA878AD6397974ACB3812767A95A01F73CA80F1D83006E9460D2348C047AD60F2841DB1BAE58952142AA3491CC7DDE58DEBBAA27621C7CAF299F4325EE978CAAB6CCD4BD7510F318B20E98D26A94EE99C935629394E6B80A5614891A75B45D81EDA8A6CF8D8B43D62AD9399369023C4D677CE75F14F84B05D01B7B021E15E459BC5C82CC9C4158BA32C5D50708AD9F620297333A4D899CC7A90C28740039B351345BC7B971AAAF39D97326553740238E569D4870BB09C66AF75B532778B9B0A631D362D13D61567212E6AB523FD4C3EBD5839E4AA1421DB5E06E33BEC836876D8A8624C22FA56C43D4060A9E52F1C905EA8714D8436569D050C7A574A74535AA3C4C194BB3D4A867A07535DCDD93F644BAA2DC5242C5A58F0C8CAEDCAC7C5256D8F3B40BF57B055616C24569A51C5BD712279827BB00D274D767156173C7ECB8766202376E9A7227517BC4488C029B9B6B2642858344BD14C8837AC908690312FF5A6DE7BCB88F2CFFD40A9FC666800F9AC54FAC76FF5A42FF83B9D49233C841607AA348E2A5DCBC572D2A482F78B2CDF3CA4BBD22148C925276B6072D777D53081311A286F37AB14BA2000AD4CB82769DC889DE981C969F732EDA2717CC405CC276FC965CA2BCC80054C557C1343847BC6054157A5276432917501F88BEF0B44521C0D5FA168DD89C9E34ACA4DF0A348E53EB5C939650A240879C0911A8E1CE371D7EA45E6F90B8DB0520B115F826085EC25A108309466C11920984534C99DFBC7467AF31D5F941784586BCC0347412C48D0927A4B95A22D98B49A1A20CC72272F09BB63AA194E4450C3BC2351CA6D2043A68EC30C705CC856B00F5054A66D3140BFBB47425A67EDDBC4204944A1E379E1516E45216E12D06B2D522398A125728822CED62DACB220C845A444594B3B6977EEA89E256878E52C766A86A3FD04437B4165242553FC747B80952769C10547804B80C1A6D85A29620AAF7054A54AEC77E0E3C1ACA9613E0B877D39CC9C1C9088A96D7452A3E2C6A1F87C4EFE1234BB9971A1026292C22C94449B7C8A2CB117B8175C7416284742120C11378C03256E4D2B80D502BC5DDC1D4E3C022BEA80140307A3A214BA51C807DB26F2536829A62400FD3A8D06B788E5CD43896A9A349A4C0581662999B9AC52803BA34BB128BC0556FDC40EA9EB0B73193396D51C1BD533C4910B358969BA135F862B64DBDA9608DC7665FC61CCD645F8926D1835ADC34386CEA20FFE3283F900A4FFB693A223755A50C4771379307242E4548ED4DCBA4574410D409A4838233499A337859C64C6941D477F70BCB5A653BF571602E5224E40F228114639B811C5C1D3B614DAF84266BC4C312FA43C4109DAFDE79000AB39BB8615509158B63BE5F5E51A0E690F2AD6FD0C56FA886BD85902ABD52598BC815C2478CDC8D59AB164856623D53B9E60CF0AA8214CB64E674140BFD6DE9FDFAF +encap_coins = FC69423340CCA2E8E96B963188545FDB2B9287959ECB7EB108F8D04204BC87CA +ct = AA22FD8FE3D2388CF610BCAC23FD3550250CCE04A2AC3EEE5446A6A61BEA88E60549836FC8E35AA25E4C3CBB26CF9EDB89BFE68DC0C8997D683C4AF2FE2B4E1A7B1FED925120DB6A7BFAF7B0585A82523D7080DAE4C6929807935CE1E5831FD985B54B07F6D0E65ABA37CB27D357B603AC44E6B6A4FEA5E12D6DA5960B39D2C77EC1AF5736F5A7513F0A67652E64CB12DC4E356EE18521F5892C9A341813DE93B286E53DC8F04C45F49372ECCE5E6969C9CDF1875040DCCD0303E6637B7A56C27C8A3500D091BA21CF8896003D6CDBD222A5B1309D75B51F0A9FFCB38AC73E1CC156493746B14DDE7C52F291DE6654937A6F90B78896A1D62FEF21A82853199A05F37CB6CC8389E90FA07E067DF85FC92D13C07B545D4C65230D00768B899C788E05AE6E659BDABC164315C29D2B3A4F06393DC9BAB9E6D46D180927459D0081DFB25A415C46705AB00EE0366133671A485BD669B36BD1FFB249C2E89DC2766C94D2158D0BCD164DD88FB7EB1C271F068D5615771F7126BE7F0B0FD59E43A1D7A8908118696D38EA4FC36CEB0592C1FBA5567702DBF939FB94002664675CB8D2DF22D6A56EAC0ED05068F871CC6BCB6940F77A9B4F9C283F09C54DE21A97F5F48FCF9A4CD14631D537C2872DFDF007ED8A135DAC8E5609CCE47624006ED414C77B5DCA7C969BC2B942F206A9E4D686596EDC7C2F9249F0F126C3B6DD2E98293E5DE8DA7AC7288AA6881B54629126D5D63F29A967177877B4C697A5866C70DA15611BD3C06B68C69B6C242BBEE42562700C7A5CEB1174F58D5CF8088032469101A2277F5AEFA739B976F4B30AF66E1A7FC88283FE59DEE3A089568ED99D812CC43D6C2D416971F734AE2BCA2EE7CD092F14FED4D2CE5BE6A79ED29BE04D7449316B3D79F326F9F5FCEB368FC5ECDE3D99A0552B9BDD9E0133317B034C0016073490C76E83C40294F148FF1BF6B618205F75239F9AC8AAD67CC3E2C3B7A4A752CE132480A51EB26260EE51660CB43FB77DE8DC8B68FAC20333166EDD77769C9790E69200435236EC4501F2E7130DFFCC7267AD94970FD6A68D147E501D71E8BE13BD9B859B19DB6F43DDC87A07F3F94F4941D8342E00D31A4D51C69D9B29AB4EA960FC560F65A00101599FE45F8EDC86BC081164B3391224810ECB8E708F789436DDF0E9C2C3C3B4CB8B1E8C3CDF3B229D681DD706C83E83FBD572680BB3F428E9FA65BF64B8F0C2F190881DBA227BC1E08A3F77CB8940038E587B1F63513C12DBB61CC964AD305C15F7416A19FBD6290EF825EB470F2FD380A1D69472E002A55AEB04585409088F20FB09C0CA7A7E286E8F240B5099F814FCD9DE1045906C307AC47773DE56D3504BA39E6F11AFA53F65008FF1CA112DC3A9F08567820E095F12423923A136561A4E9E984F9CAA1508D8F282A864B16C14771A0C3BB4C5F94399F63DB5F74EB5ADF3A952E456E2A6E803B839024B0C52BD150EF7FAF41BF465E5D5231832B7A84299D8F8E7B07CD48F8261E851F3A81375685FFF078FDB159B2898E372223C7CA7945C68A45D7AB314D492442EF1AA413437DD8B1AB7740596EEB31465347192CD83E5F4B1E569CB09342D093717F0E518BE7845B327438B879DDAB9EA0F196BC095FF0C565839D69D2BCD40075C3236ABA4719DD30B9C949ED23ABC9D7B20771F7CB03C4A8EDF4304CB49F6A6D197B8D0473ED9E48009377CE8C09DD912A0421C467F0861BDBDA2438E1F696A3AB5C00F6B2328E97CB688E7980F5BE3E6E0B7B5F3DCB92B230DA8E05F30E4C3AA0E4483B680D416176AA8B100A2CB5D8E0996F626C610F1A7B7EADC2D153AAF5374B6C1303CD59C420DD5E77A96E4FF0792E4F8F370100064F0F1C5629B1A53AAFF3A6388C1EFA1B6A66906C5BA4C9A5BC502458DC935FAD6F6285C90420DA42EA242944B21EB5F916092ECD15CE1B69D4F272D38391CE3D33CCE79A02F65ADBA75CB121A28957D98661EE90BD07CD8469CE58C1979DAEA015A73EA1F18F8F932E1F09EC5AE17F231A0C481BDDF0BFE984C8C3350EBB2A77C87053FDCC1777FA38215C1D83A15C683EDF83016C91BB5B652EA2EC74EE06303C98554BDB09622912CE147A9589229C04C64D48080F274F3C3C9BCAE5591FD0A95E95D35F69AD86F5D282E526F50D528AC9716BC0AE016DF628FD8BCAA73C39F6A62FB1292292036A600C03D14E8F6C0DB13BC01 +ss = 920C48ACA75E502412EC455D00C5DA4FE0588CCCCEA95299A6036E4ACC3082BE + +count = 72 +keypair_coins = 1F7CFD2B70863154E8A69D1758532E86C20CFC763D67C758BD10A13B24E759B588E66590B5B102B223291CC78119BB94E799E37B95B7BEF0337E6A572284B9FB +pk = 52DC3121B31062CA9D2D7599B62B942C221868E9030E52B016BB30BBA71109EC9CF44930D76757D16452623010828925C340A8C2A7772FB71A09E1CD8CB73FE5C1A8428219B9F14EAB47CCB13703AB2AAC1BAB159FC57B1ED434B5A00D5221C05EE77FAEBB4A05EA04D9C6ABCCDC5764E876305025E57B9E25473DBEBAB8BC207148F720F224B1A4887DA3604E23321F17167B01D546B5074CB27BB5B6A365B91232EE7CB7F47102902285FEF001E4914499DA9E31EB1376E110B3BB06FBB350A054BD79E84113021BD1A1637BE1A7D3057679B41F20FABF3D764C158457E7A967CD4440D4EB2C2D09808296C1D666784698115A83CE0840467449080E038B81F1C7743C7F71861D0A150C5867BB71DB4CCF5C5A92955CD33812D3590B7B999708B38D6867B979650A73A63CC9FB9BF87653C5396AB8730E38201D3D493443369A7B424FC895CBFD96271445849C38BA8C9A969CBB70626698F12223E450C58CF5A384FC784914072ED92338F11693BCC2C48C201390144BD52584260A15BB48401BAEEF381AFFC95AC96033816C3414D03EE70CA8C947C7B9BA2052393D3EE9856CD52708AC02294C4CC58461B379A8B3B5C85396B4E90B678C9817C34B2ED2FC9E8BF346EBEA1E6987B81E32B6FDE7947A1772230257C0B1C564427B0951A451C11C6F2A7C27B6391C2B0581D19BAD322038989C3540084132BDCD6368682927524149A4620326C7B968F6090EBCA4B7DA889B48723AD977BB76369D3B07873B5BEAD9CB08766702B90D16EA4CE99A7FFD3AC1B2DBA13CBA3DAFB3761F09AB7D0084F324BC15A0347FF2264BEA0C88711364EA0DAE46763A02C3A90B1655EB7D74A59D3687738F1C8B26E0929920089237A196D64A3EA58FACD259C4D72E17721EFB36C6AAA1572EA88D1171134FA331C43125EAC801D1EAA9EF426EFB2CBD6718A4BE981EBD2375B73C91B7248EF21C6BF6B29A4C385EE899007E44A50AF44FF7A4A973D933889241AEB90358F84943917441C7840D0348526B25EC3A15558562F107CF33540823788075931711C5133F8516BEF21C8425088435405275B970C457ABB73F696612B253221112A34376C3133164A617C6002A5FD143B7FA094ABAE345F78A734DFAACD7F6377AB48F943BBB3690BA32476F701C7AF32575CBAC0BEEEC43BCD8B54FE2C026D6C4B4FA150111BC58A8119C083A1A755E0E0C57BE5C0929F64946015F8AC80C07A249EB68AFFF3388F205353327B484CBBFDF6236222867BDAB6BB2FB4FDA4260FA1B47BD47B43490CB11A9C3ACA191DCAB94080BBE8E394CB988AD474C122964739F05B5964070DDAA7A4BF2227E96498F7205E17B77D926695C3508F1105E4774126F014B61194436042C3C155E4A5134DC95583C189ABA2BB29268C44E2B6B6D52B70198A4E193C0B4587AB18A0166C51365B05949A438E1F8670C69BE929B5C44E851B6C6AF3D1BC3FB9CB99A7A7AF7D6448099A0AF87362EE950BAFA5257D840F427ADCFF5A048717B60C22D5B2A6CDFC4158D5747925731AA85BC66EC37D3384FFC7910EC5B4D2CB5442E25AC411112DD4B983B68A90BC57DDB122D73372794214E4E64A07AE676DA990239498257149C299A193FA1CDEB371CC354BCDE26C3238BAE59230F4CCBC4614708FDC39CA5D916D80873908204B70391788CAC2A346A1AC72A92673532BC9286455D7EB405C830BEACA707FB865AA1D41315628CCEC14D431434FFF6350E518F3EA8422B44CEA3B6B39910BA6B5265E8D18452F7119384244228A983C3AEB0B139A96830AE90B9C2E569FA885406C1270F1654CF69A34C2375F2BB537F39A61935AF753CB6EF139317105C9F4B3DEA094093D667396552B2B9562CFC0E9EA43C54F99430931F10BBCC0C81270AE352CBDC29658188E67A3DE915469AE4263667665385381A352B48176539F59D4E2B19737309EFE6C40A1A4D3F52A7FE47089ED22FB3B3C24531865BEB47F823221C690B60586928EC5CB9505AC6B9C764B62B63273165F70E76034614EC354B38786FEB660704A5DE79B1D3399DA5C8B1E0416AF49C22D7A6982A338471CC88B18258F2F3B55BF51BEBDCC53A7829E4C875F18127C7B5473F0252BFE4735C59388B305F3F106803C27C6BC3C51D38070F1561EAC805070AC24099BB9A086057DF0C5465326E1932AA50DA74AA8435D9294FD6B7C05A153F30 +sk = CD28AA8C74142A0508C2534D5ADC64284806BB2C653BB9783ADC640E9945C253AF86F57C19B42C6697AC85D1BFA46B5231559C11F5A0DA9B2BF43C40001D4E6C00B81237343E15A41DA190CF8940B641A4B42B72D9CC8BAC681369DC07D80AA62F135B0F956355A4A68E575F34393C42BCCEA68A7A63C269A5821557299FF63B9F0161368F6084132C8B56984F4D1626D7436DAE2596E1B24A86562374B066D2483A1B354FFF9766845480FF396F6AD089B724B0F15A34C2288DEB05A8418909803CBFE2F3C63C30056F358FAB798F4E385EB0E35ED0C38ADE7382787A2502D117AD0BC6CC0A4746AAAD23345F10074B21970C18EACC898472766B2313472DD3348C82F69B7D961CD35A8C61984E7CA20AE6382F04A977A72B532A1395707CBB7CD595E0DA0202498058E59F22E0C340C438851674E3AB1E0D872FDA3BAA7F87B67F449E6BB461BDF1CD771475D5B59FACC30181599DDAC8CE68DC2DE5741B21422FDD512B39D9633ADB202AF3941E323C9326297CB58086C3282F722C4D50B94B32153FF30B91F07A811A9D9E07B7667846806B6F7071AE29323156B668F831A9F79AB7949CB363DCC8D151349DB4B5EC1266E7F5AF98105C95C0A4D47648AEEB01FBE1113948B407FCBE199BC2CDBA40257745D765C6A0766012F19DF41A770E96CC95D3CBC70549F7E61914A73DC71062F2A3A377EC26DED59E0CC85B11A74F43C3237C7561CB7046C0E660B5BB0BA0634FF2B211438A9B9B906F241B04B2439F29A3CF0AD9128D683F0C2C26CA050978CC179872B1664A751458C072106FDFA07D97105188278268B0481018782F361D08555FE5799A0654398285B378F7A9F143CE20673184C75E8B662085899812912FB8A60485921B2F7B3FEAB95CB7AA327D8B9DBCF7C7256A131270B731E33F8F555CF4F8B7A1E6AABB4C83D2938B7B21BEB1C3B3CB3BC08BF52FC1F5715FA89EF8E205D85862F6A2CF420592AA24568FA0B8DCBB90D0B654C7C82C7411B6C3E219F46C352AA034C4FA0AA4FC47DAAC204B351497727B96714359A66466F6C4CC2B83BF6B87785367C7116489D6C5FEB975E41C4BBB2A3D8FDA920021C523227A438374D96032F62C41B17422584AB5880475CDDA8B7F4844E5420C25D97235B0ACF71012ADAB59298BC80052AAF1807E8015695D92184741BAD318BA9AE27C306A2E42C80512534963B70B9D0B7F5AE70326C33E7D43249E8C9CE386947C167C8F33C88947244989C45B4858203249FA5A136734153CD94F1AD467B5043F7ED77F58D34490D1B5F9E323F3E2146011921B8A9F94E419BB85AD965443E7F4A73534457BE43EE5F677A63A7738762B799600FA0B9CD328AE4CF507C1D9845EDA77C30BB7C39C618AFB402CD9B016F0092CB61E8BE13A18925CA122A142409B8DC637A364093CD76925A194AEDA21C61709255BA2DE330693B888A6C2C6F0C39FA5B4C7FCFBCC198B3253C0ABC5AB5EDFB438ED3A82B72B5F54A39D21C37879480C4A648F182A94EA566C598BA4CF697140A20FDF4CABBC540B80E8664216A6E880553899964A7B239D00C68E720706512CD2A58B9C49BC0ACB90283B506CA196F7855ED69AB21F059A11FA3FC4670DFDCA6DC0A17C3E407CA5F7C0BF4481D006BC6F257323700A3027B296B58B4C4716200C8B382190C1CBA73B87C1497B69E8755F9CC5228EFBCDE6F2C0120A524D87080590A92222725892B588BB8EC10760DC535DC2029E4BFC7DEE8005A82446534462FA1443CA492999C01D87D71E0B6C9D0E7A9FAC2264C8C80BAA5052F9E876CA5B5D2C286D78467B8BF35E51C27B7F34B45D5534B45B520AA18A85E54D22BABE9B618B098A49810CCC2ADCA1B8226F8AB826ECF9C5FA2B665EBB5449075BF6CA53DC5665CA639EAA96120585B9B772A77A17BC2634C268FC9DF25B516878901A1332DC3A0A38CAC0104C59522947B92ABEC9AA8D943AA710305A9AAAA751B564CBA271355BA882BCAEE053487B0C899AF306678BBEF3B603A8902CBD61AA78639EEAC2A387158E27F629395422A3C922DDD45BA7C93C6B97148DC7B990C51C63101672D87D10C8782CD48DC34A925BE78B245016A144C392447F576282E1C83745FB395BB2A4F5F2BC224A0628F75621817798F70437E6381FCBCCC547CD52DC3121B31062CA9D2D7599B62B942C221868E9030E52B016BB30BBA71109EC9CF44930D76757D16452623010828925C340A8C2A7772FB71A09E1CD8CB73FE5C1A8428219B9F14EAB47CCB13703AB2AAC1BAB159FC57B1ED434B5A00D5221C05EE77FAEBB4A05EA04D9C6ABCCDC5764E876305025E57B9E25473DBEBAB8BC207148F720F224B1A4887DA3604E23321F17167B01D546B5074CB27BB5B6A365B91232EE7CB7F47102902285FEF001E4914499DA9E31EB1376E110B3BB06FBB350A054BD79E84113021BD1A1637BE1A7D3057679B41F20FABF3D764C158457E7A967CD4440D4EB2C2D09808296C1D666784698115A83CE0840467449080E038B81F1C7743C7F71861D0A150C5867BB71DB4CCF5C5A92955CD33812D3590B7B999708B38D6867B979650A73A63CC9FB9BF87653C5396AB8730E38201D3D493443369A7B424FC895CBFD96271445849C38BA8C9A969CBB70626698F12223E450C58CF5A384FC784914072ED92338F11693BCC2C48C201390144BD52584260A15BB48401BAEEF381AFFC95AC96033816C3414D03EE70CA8C947C7B9BA2052393D3EE9856CD52708AC02294C4CC58461B379A8B3B5C85396B4E90B678C9817C34B2ED2FC9E8BF346EBEA1E6987B81E32B6FDE7947A1772230257C0B1C564427B0951A451C11C6F2A7C27B6391C2B0581D19BAD322038989C3540084132BDCD6368682927524149A4620326C7B968F6090EBCA4B7DA889B48723AD977BB76369D3B07873B5BEAD9CB08766702B90D16EA4CE99A7FFD3AC1B2DBA13CBA3DAFB3761F09AB7D0084F324BC15A0347FF2264BEA0C88711364EA0DAE46763A02C3A90B1655EB7D74A59D3687738F1C8B26E0929920089237A196D64A3EA58FACD259C4D72E17721EFB36C6AAA1572EA88D1171134FA331C43125EAC801D1EAA9EF426EFB2CBD6718A4BE981EBD2375B73C91B7248EF21C6BF6B29A4C385EE899007E44A50AF44FF7A4A973D933889241AEB90358F84943917441C7840D0348526B25EC3A15558562F107CF33540823788075931711C5133F8516BEF21C8425088435405275B970C457ABB73F696612B253221112A34376C3133164A617C6002A5FD143B7FA094ABAE345F78A734DFAACD7F6377AB48F943BBB3690BA32476F701C7AF32575CBAC0BEEEC43BCD8B54FE2C026D6C4B4FA150111BC58A8119C083A1A755E0E0C57BE5C0929F64946015F8AC80C07A249EB68AFFF3388F205353327B484CBBFDF6236222867BDAB6BB2FB4FDA4260FA1B47BD47B43490CB11A9C3ACA191DCAB94080BBE8E394CB988AD474C122964739F05B5964070DDAA7A4BF2227E96498F7205E17B77D926695C3508F1105E4774126F014B61194436042C3C155E4A5134DC95583C189ABA2BB29268C44E2B6B6D52B70198A4E193C0B4587AB18A0166C51365B05949A438E1F8670C69BE929B5C44E851B6C6AF3D1BC3FB9CB99A7A7AF7D6448099A0AF87362EE950BAFA5257D840F427ADCFF5A048717B60C22D5B2A6CDFC4158D5747925731AA85BC66EC37D3384FFC7910EC5B4D2CB5442E25AC411112DD4B983B68A90BC57DDB122D73372794214E4E64A07AE676DA990239498257149C299A193FA1CDEB371CC354BCDE26C3238BAE59230F4CCBC4614708FDC39CA5D916D80873908204B70391788CAC2A346A1AC72A92673532BC9286455D7EB405C830BEACA707FB865AA1D41315628CCEC14D431434FFF6350E518F3EA8422B44CEA3B6B39910BA6B5265E8D18452F7119384244228A983C3AEB0B139A96830AE90B9C2E569FA885406C1270F1654CF69A34C2375F2BB537F39A61935AF753CB6EF139317105C9F4B3DEA094093D667396552B2B9562CFC0E9EA43C54F99430931F10BBCC0C81270AE352CBDC29658188E67A3DE915469AE4263667665385381A352B48176539F59D4E2B19737309EFE6C40A1A4D3F52A7FE47089ED22FB3B3C24531865BEB47F823221C690B60586928EC5CB9505AC6B9C764B62B63273165F70E76034614EC354B38786FEB660704A5DE79B1D3399DA5C8B1E0416AF49C22D7A6982A338471CC88B18258F2F3B55BF51BEBDCC53A7829E4C875F18127C7B5473F0252BFE4735C59388B305F3F106803C27C6BC3C51D38070F1561EAC805070AC24099BB9A086057DF0C5465326E1932AA50DA74AA8435D9294FD6B7C05A153F305CF14252096E4988D8ECC4AC6D29FF09C55D666865863D03A68DB523728910A888E66590B5B102B223291CC78119BB94E799E37B95B7BEF0337E6A572284B9FB +encap_coins = 01E6B1B765E4C42464F6A35D1DF3D2C673D752683850FA4D147D4E0629B88B10 +ct = 98F0D34306F56C305679DC96138348DEDFF9E40A6E8EBE8FF6302CD5CA57A0E3FFAF4FED7598E7F32265059AA7EED3137EBD73F0F42E352B943B696403A133DE09AB5FA33C464B4FC25486E0CE04962192D7F7EC1199EE25F4E306964CC8F149B6AF26C21E35C6522D3F9D1C67807A4667206A6404D7018FFA58744FD29991533D2A2B29008D3DF0F54244C1877779D054846116635B00370A0F0DD31AD44D18D3036E42E4DB68473CD8F8AB69716A16439B95C191E7A0B123C0A4B8688E8C10C7A0CE81551F6E25C3BD74A821CB7EE19B4FCCC1EB839BCCB006F760F38A6DFE2FE937E8A6467765FB5F4D3FFD1768C1D2827877CA5AC56007D1D23A3B5F5BAEFC75E8D4EE40D753A6EF30647D8A10B214FC3A1F58FC31B6B4404D45C38A60F47CFA350443F6502C1BD25E1E1A0D3EBBAD52615E87CB349F9314DBD39C28A681D8DAD067FD403AD41C60D5D7C1BADFE843AC3FADE5390296C7C1D708B4EED0C74F7EF9E74DCA6FA4F108A7B7002102F1241419A6389173A8DF7C635A34E92BB03D829AE5C744C4C494EF768BB01BD60F46EE90771D8AB900B2508A98A14A685B69C97743A5729C30CBCA2D98433C4F193CAC625DAB4891451FB152CAAD7F214A724506FDB4AA69FBDCF05BD292D403BB7E744DABA5D20CB82853D9957B2F189624344390DCE822C6288DC537105476A6A5CFE95F6247F87E91F6337EAA67335E44E898B67B3F38E2B37FC7917271A3F848F555275B84AA8588CC976AEC6851EDC66A2E4D8DB7EEBA15A5387DC0FEA3552B18168B6B8C3F758D8516DC2E7B3CD2D5656757F63114110B40144A16E299E0EA1451470135F8CDE980EBA84A4E183FBF38694125749041F0E17492171691313D6B38A00D84E7EA0DA6D8143537BA625E039D3858D7F7D5C1C9755DA9E078598FC99F0F7CD459DE159C74FECE9A8BB503BB7412EEF96CE3371766876FD3B8EAA5D23DA2747C74E78B44C6D53F2CDDC4422B89E6C699BE65C85748D388DF469D3B22D2772FCBE9E58AAFD21A5B39A40DEC59C5853F5B01E05FD8DB28A56396D319D0A8D655418523D633E78A39CD07BA77FB192603CBFAC2B15E22696CF678CD0D1345405FC787E0E81BDEB4290FE6D0981040074DB199E9CB2D71D0C048F776C394447111F78E723289607C7D580FBB64A15223D05297662BD44E0B57570E77CB8ACD83AB8D7D259CCB67142EBFBBF7F58A78C10ECE679D82D7BA8B7AAA104E9AA27641624CF1352465CBDE8B884F11383445ACBB12F9C242446DF02966D48EBC256AFE3611565CA82CE325E6A56C9E65D4261A2F7B8A39AF5895CE78D82E126BC96943A103697A1973859FF704E5315629AFFE0AB8AE229C9786AE4A7DB774D423E5E77ACE2FAD6970CE584C12DD93DF535A693ED85D0B60D82587837D7927A4A00F34309955616C27E59FBBFB00041EAADA7E5D6F42DB7BC2B72AE904830E1A1344066F0E288FF700C493105245A620B03E236E9394A41DA74E2694617FE8A0C3E882972BB8CDF48633370BBA72DB03190804686676F8DD2A8FECE8E210673C06CC8BF9DD3DC0815FADFCBFCEC9954E893B837E4D297825B4E66BD37229215711362DEE44B466E26A9E4C261EC82C6331B4D277CB9C391FEF0F83AC4FBA445B4A5789D45BAF3B54FBDB39F24BDBA1F19E26285932FBFF5F6DB60F0319A483D0FD2258AC69847B61B53C560C3FA8DBFF0383CF1C61F7657C2BB9A575D636D559B35F786FFD06E30B6CA845C4BFE904E27666EA8AB6E3D82377295F2684ED1137384806D96F197193FA7B54D0CBA5C2FDC767FB6CABF118A25998CFE0452A2C9DE70220A2B1BCFF60B19812CDC1A64888E4E4C0DA867D7832E939DE903263B0F3A297B83952172EE1CFBAD5098AF816B126C977BBF2094BF67DF2C6A6B727AE27BBDB19356D537B2A433E200B049FA16D8DA3A7D9E2EC867A0F13788F97CF872B904F8AB6BF1D3D7C99C1A2210153AA68408741871141697BD63E06237B5A8B25F71EDDB2882694C9C90FEF78E49A6719554D50454993FFF766246C0C1E08F4896E3817AFF633D1F75206B1BDF8583ECFECF399F45CA1232D12A97D32302D8D4639F3B0FB6BC243F77AC432CD3B0F26FDAD751F5209E0FBD862930122794DF011BE18075B9E20F0441D821672ED0B96B7A41E4FCACA3046A31964BB464A0070752E9B4089CD9EF79E5C6670ECD75989 +ss = D4535E861BB2594693F30EE46DE8F7880ED1A510B30F604482D2FBF8FEABE06D + +count = 73 +keypair_coins = 3A19577908EFD37697B8EDC7FDAF47D1BD3AD01A1B77FAF794BEE5B9C3192A6F08A2455063246EB5761E908816E48990D670308B0D34D7823A325D49A1A4DC0D +pk = F1B45961C6216FC930A8760D4B79AFE948166CE6222B16ACC847AB4BD9540CB68872C9095AA7619B88414E313051B7ABC0248EAF745C7BEA31B01B29C5105FD698119AE0186E7C89AEEC141027B19A5AC3E1C419DEE19825F518D46879F43C8720E23F8916ABAD006B3BCA9600932A67938015964B25B75D95788278D0AF8BE577EF5CB1FE61CFADEC5500AD17DE196A1F95187106649EA4227AC9A96091617D673F32454FE68442F0509FAF86A06D4C421746310341257F48C51C961342372954E8373796A089721CC646B6C27B2D7E594B4F9CA5EF4767FE24920EDC60CE2ABE17E36331AA082D1B66D708304AB884EC6C7E9CA98D7EDB489FB2AD522A2B0881997662205A38A35ED77D8AF15B70346FB825A25B0962F0A8BEFD5C602550925AC9454B6A4C02DB9AE9A569DFFC568D70A1BFC95C108B03F16C799310A4AEFB74DED63C3AD4791CE3AD8CDAB1DF854ADC814B2A1164E551A36CF87DAF367F8767B122D4C2CE30632F22341B5458EAB4CD2E9547F83B2D50AC57D8C30ECBF5387DB6049A61768EF21123936664A46B4A2CADBE1B7A5FF752DEC141F38AA5B0B85546B77F67D32D40F6A588E63EF136013F0BA4E2889714C309835BC0D8E858863A29622A843CC49DD2B85E66214C0B2695DEC22D3C4A0F6544940AC77EB8A1C415AABE7797BB4E8079CF74943C5190A549A78038883EC62093A70EE6022DF193A4FD7BA17714AF692923B650B94F5B854D07139B240C29361AE9A2CF34FA4F1F6C2924850471D6338206A1B8C806697589B5D8A2AB860F4D1614426452038983DFE2CA14AC40170AAD48809C99F68E5197A0F02A78B481062413CD8779C59EA9864BD9C68E8705F4179405D5A5FFB2273051BC1366A26312895345B81E780FD1683EC8E3261E1291723978A5E3350FFB6E1A7923B363162EB14247684D01CB3F48B7ABEB2154A2751061327EA5C3839FA0A0DB315B7CA60B0A7C5903309589E8812F5301DDA14E98C92C028C1BB57C1B23F1B90EE5BCDB448229FA6EF147C56862BABD6AABE7EB142E9A671DE69786010720ECA14EF6BA53D71E5BA885D50BB325707865B564E0018D89F27F8FD2678BE207EF830B3A6457166B031A307CEA082B8260937ED83F20646E50BC022F81CC6738B16F16954D983CC7A38D365462A564C8D4417C29EC50DAF373F0C8134D53BD6EDC509F544B27D69085D6A0CBEC817609B8BADA6F8810CF0BE61AB3D678757131FF93B5BA9A9EFC54AAC9FB279991370742AF6BE65145CA215EF35DBF512F13F88873F87B17F3C4D9E475F90A02D270AE72734029710522B93762D404691910A3E79686F6AEF2118446D23955DA68A477BAFBF278822276B3882FEB3112F2A47EC753510FA97BD5E4111EC67A66909FA3557D637C3686A214A81A6C9E983039D5CBD2B1853EBC7697A8C0AB34342FD3561D8B3DDB0575EB62C0F509079A5C5A3EEA1B23417D70EAA585AA36AC24993C6CB463D63FB6129583E7908DCC4C6E55BA3CF30EEE2842696777989B90AC577BDCAC111EE344AD1478DCFA7BD15911D0E745A523A64DBC28F03C336DBC9A86C146C8F842478A172706CDEF994D87C562D3B39911441E6570397F503DA1F07C0C6045C3E863C7F3BCD41B787C8016058B81FC7B3375E9185696813A589C75995EDE730D39715E66A370C127121235CB7785A42BAB8A091872650062A4FA6F5825A5C2138D0CC74ED874C6A8E89CB7565879D66D34865B85342B350477688A0FC2C5905216A7EFF70BC742723D34A3DAA13B7E094970136D5E959119A79894F4B72F55941B157C601A9CA5066083B2805846267CB3C989926D72FA18ABD97CC0531A8747CA42D0B35C89478FFA2D3F769B1B2C0961EC877E704212115DF3E171EEEA463877B2F911878A15310B6042C1624F6232867578A842CBB477202395F51C3C129385993023325EE405975E062C705A63951B080BD4B98E3388C74CB6C4D9AB3D66A5E543481F300C2F8A1A17E7CADC83195AB4C840756DB9FC11C39196BD34071E1AC098AB332354BB23D5A376CA35862070C933875CE21DD7383A41AB9ABFE2AC96170C22C5133E07089940C03FF80EE80AA18B33BCF8061FD838B44EA3C73E278A7DDC7E1E7B56A63BC2FCDBB48EC711A0E259E3548F38022A5E3553DB5E8548C3B3DC474F7843C49A8DBFC939C41AF7F8EC6C8354AEB0C67E05EAE0 +sk = 8DC4A33D0A013D102A7ED6A5303693669033816BCE0C8A83594695531999647A48F6708C65220BE4D9A60F013201A36EE053796356B26E3617126C3D0A354D2FBB82312A372FFA37B939A7BAC8AD0E127F18EABC771462FC57B542A73BB7067FDE6BCFFE4982E6DB3394264D34DAB222318856BA8B6919C5A0A667866C0D2166B69AE04432C044F289BFD7255542CC7946B82C2DB388C8B656F234A3B607C2F6611ACC3A5A12C8111E42138ABCA9B8DBA79921A177682C2AD1138B133636951F5AA77A52B7554943AF52F7B53D0B84ECF44FD77018F7062E564C5E58753994724242D6B3A8F8A66DF518F7E13A0A5C1C4B253DCE12AE197342F5D72C296498BC9888EC347F528958AA689C8DDB81870184C9E2254F918B7465354826870300790044165216C8BC279AE93854381C28CB438BCE444B2258AFC3A84CD4F91DE8373F877B30137C4CE4664E4D330BF763B344489604E97F4C9C24FFC226D07C5824CCABE38CAE22487EA2EA0E89920F304BB911B401F45735089512DCA2298EA1A57F643CD7524A3D6C9F055B25EAA62FBDA318A7B8C8DC9C5CEA953AD5170C0452A7BC04469987712D0522256A1EC52961561175C32ABE93DC5ED37289B9D4CBD3966911FAB85FE47B3C68692CF5A845286BAEF91493E15C6D23437BF7517EC5CF609C8628D82FF7CACB54D4A5EAD25C85F59AB51151F9350247782459B598A2089A85F2C9BF66797E863A4CA0732268A4E40C57009D0C7D1AB1FF46B78E350DBFC19FCAE823BCC040183A27182ABDE00A966A6075E68C011AA62EEF913024CCC85B460098FACC9C4C81D17C577BC009B8F9416D225D156C4E75B84691A90948D31883B1B2AB3635DC357AE867B2496983CF9595423C541E3C17947042B3D141EF825C99862302BA911C67619434B3F9CC489E8C8ABAE92AF1EC3045C895EDB41F745AA1F3D1A625E47EABB49432129A5608571431C4890C8FA5769563B8B1F9BA3C1B77B034F568038865C90304A4F79F65F74C17FAB9E6B52236CB636EF5B686271F955A9E889B7A1EA1A010828AEA1A838DE1723F0149CF172F48890161C34039E99B36185F068B5707FA476D650BF149479B8C928F93089A4B941047B5B528135685797E0B9E65F595D9016A614393CFD630C6A217D0A03091853F606B238EE13C92C2B5D9E19B2C57638CE82A3D767639E115838B8EEAA5A47B7B686EA05CC088ABD47A10AE593AE39A07F55CB4C1347ACAF7CF59422182749E6AEC39D62CCB876094BA3CC0B871C57A03A00AD67C5C1C6EF911C6DC36B13CAB713BE1A6610CAA46DB4EBB86B76572A0BD60ADF163B325C89B506C33CC343C37A2BCA7CACABD90494F044B550778677C2EBEE76E03622705556B509C204087B5C5E5936C0153857691C3149521B800B76C43195897067529A4A87D68E974ED57178B7980EEE227E4150AF1234025757EAA3B645064202D632EAEA3943B40CB10922BF569AB2C44867C411BC8240D110134D78143D3D44B450056BE166B57921FE64A44F80968A1941D91A971E10C347ABA369702B1ED542984F28B6254BF61D94B69F015B0E32B05E8897502238FD21D87978EAAD45BF5997654B40A903319CA64095C9297B6393B33066D876C52C5DC2F79F0501AE14475E179FE3B5747B7B11AF7B6C7187EAE775E4BEAAF1E904F96A741A6A4820027BFD6B15513911D921835598090B1F145D2885063C24CBC26B3CCF22787ECB3B67CCE6DF4C1C45270239545463B0FFAC611DAD17A6E81C4B80543E6E7CEC66C25C8E23560D32FBC8C29740433462749F15658DAC545347C8D4D5470E15610F7515756CC4EB73966718BAF841995D1ECC081D68B4275CC8E33A87CB61DF5DABD0F7CC980D5A043C431D8B6BF2B661D7841CABA2CA6AEBBBA4F338459561C0CD68B07AB2D6764C27EBA2CE3E33452F072A8DC37B5D192DB301CD2937015A5C08442731C97A0D9333A62648B43453750DC1FD4752EF16845067271A6B236857C69F3CBA42A2C5818564D2CBC33D0E43C926A4D57C38F618B51FC0C86C6E778D478916C4A186052B4DC9A89F7E4C0B089AA23A771BCC06F3B43A8804A18CC4B8DED358C7BA66B5F7385996968A27793FE845B40A4AF8177CCFB45CA82F3513D29BE6DEA3046C9BB080220BBB1A0B30C10F1B45961C6216FC930A8760D4B79AFE948166CE6222B16ACC847AB4BD9540CB68872C9095AA7619B88414E313051B7ABC0248EAF745C7BEA31B01B29C5105FD698119AE0186E7C89AEEC141027B19A5AC3E1C419DEE19825F518D46879F43C8720E23F8916ABAD006B3BCA9600932A67938015964B25B75D95788278D0AF8BE577EF5CB1FE61CFADEC5500AD17DE196A1F95187106649EA4227AC9A96091617D673F32454FE68442F0509FAF86A06D4C421746310341257F48C51C961342372954E8373796A089721CC646B6C27B2D7E594B4F9CA5EF4767FE24920EDC60CE2ABE17E36331AA082D1B66D708304AB884EC6C7E9CA98D7EDB489FB2AD522A2B0881997662205A38A35ED77D8AF15B70346FB825A25B0962F0A8BEFD5C602550925AC9454B6A4C02DB9AE9A569DFFC568D70A1BFC95C108B03F16C799310A4AEFB74DED63C3AD4791CE3AD8CDAB1DF854ADC814B2A1164E551A36CF87DAF367F8767B122D4C2CE30632F22341B5458EAB4CD2E9547F83B2D50AC57D8C30ECBF5387DB6049A61768EF21123936664A46B4A2CADBE1B7A5FF752DEC141F38AA5B0B85546B77F67D32D40F6A588E63EF136013F0BA4E2889714C309835BC0D8E858863A29622A843CC49DD2B85E66214C0B2695DEC22D3C4A0F6544940AC77EB8A1C415AABE7797BB4E8079CF74943C5190A549A78038883EC62093A70EE6022DF193A4FD7BA17714AF692923B650B94F5B854D07139B240C29361AE9A2CF34FA4F1F6C2924850471D6338206A1B8C806697589B5D8A2AB860F4D1614426452038983DFE2CA14AC40170AAD48809C99F68E5197A0F02A78B481062413CD8779C59EA9864BD9C68E8705F4179405D5A5FFB2273051BC1366A26312895345B81E780FD1683EC8E3261E1291723978A5E3350FFB6E1A7923B363162EB14247684D01CB3F48B7ABEB2154A2751061327EA5C3839FA0A0DB315B7CA60B0A7C5903309589E8812F5301DDA14E98C92C028C1BB57C1B23F1B90EE5BCDB448229FA6EF147C56862BABD6AABE7EB142E9A671DE69786010720ECA14EF6BA53D71E5BA885D50BB325707865B564E0018D89F27F8FD2678BE207EF830B3A6457166B031A307CEA082B8260937ED83F20646E50BC022F81CC6738B16F16954D983CC7A38D365462A564C8D4417C29EC50DAF373F0C8134D53BD6EDC509F544B27D69085D6A0CBEC817609B8BADA6F8810CF0BE61AB3D678757131FF93B5BA9A9EFC54AAC9FB279991370742AF6BE65145CA215EF35DBF512F13F88873F87B17F3C4D9E475F90A02D270AE72734029710522B93762D404691910A3E79686F6AEF2118446D23955DA68A477BAFBF278822276B3882FEB3112F2A47EC753510FA97BD5E4111EC67A66909FA3557D637C3686A214A81A6C9E983039D5CBD2B1853EBC7697A8C0AB34342FD3561D8B3DDB0575EB62C0F509079A5C5A3EEA1B23417D70EAA585AA36AC24993C6CB463D63FB6129583E7908DCC4C6E55BA3CF30EEE2842696777989B90AC577BDCAC111EE344AD1478DCFA7BD15911D0E745A523A64DBC28F03C336DBC9A86C146C8F842478A172706CDEF994D87C562D3B39911441E6570397F503DA1F07C0C6045C3E863C7F3BCD41B787C8016058B81FC7B3375E9185696813A589C75995EDE730D39715E66A370C127121235CB7785A42BAB8A091872650062A4FA6F5825A5C2138D0CC74ED874C6A8E89CB7565879D66D34865B85342B350477688A0FC2C5905216A7EFF70BC742723D34A3DAA13B7E094970136D5E959119A79894F4B72F55941B157C601A9CA5066083B2805846267CB3C989926D72FA18ABD97CC0531A8747CA42D0B35C89478FFA2D3F769B1B2C0961EC877E704212115DF3E171EEEA463877B2F911878A15310B6042C1624F6232867578A842CBB477202395F51C3C129385993023325EE405975E062C705A63951B080BD4B98E3388C74CB6C4D9AB3D66A5E543481F300C2F8A1A17E7CADC83195AB4C840756DB9FC11C39196BD34071E1AC098AB332354BB23D5A376CA35862070C933875CE21DD7383A41AB9ABFE2AC96170C22C5133E07089940C03FF80EE80AA18B33BCF8061FD838B44EA3C73E278A7DDC7E1E7B56A63BC2FCDBB48EC711A0E259E3548F38022A5E3553DB5E8548C3B3DC474F7843C49A8DBFC939C41AF7F8EC6C8354AEB0C67E05EAE0345118A7B9BCC773F0EC10C3E353EB4365D2BBFF3B812DF4635D5C8265B5D8C508A2455063246EB5761E908816E48990D670308B0D34D7823A325D49A1A4DC0D +encap_coins = D7A9EE0513802FDFC6995A975C992350A5277EE79F1837E66959D1D0016EEE34 +ct = 35137CBA18F0B63074F661807199FEED5DF343BE4732FFAF10A3C34A2C19426B7DD84AAE3D27859FF58B70C0214E1575A0F8E850904CCC4A391018E5F02E196C3BBD09B79A30E30FD9BD4BFE4B7F91BDB8EA53F9012A7EB53C6E6823F99F600DDC09A26E48ECBC17B7147401FCDD87329C331475B0F8D7138B605D70ED35D3CAA9B7193BCC823AF49C7EF3968A4444E237974E801E008600E601773C0CBB275488C9526D1F58CA6341BA5728BD036244D71C569299105638FF1E10C48F0A21709B3F9E7379C613C54E173F4EC542787FBFD261ABBFAE95E14F7CCDA1D80B85F7CEF09EEBAD9643546479A05537374B69068E37F6B5BB149C9E710A4A586D13E911645C2A9105F8261970B2D6482F3203EB68E8D7B8DA9631CF386B87059CC6ABE626CD96F3B16D5A7C2C3285A33B70EC73768847D2AC49DE7C1CF64C28ADCF5E8465411C5951979129D59A0AB3ECE5E28638E961CEFD97325F1EBE7B8844DFC995061B594F78320BC77F87D7F1F531FFCEC609999EB5FD80BEADB484FD875717CDA2006E8A361B0F6004C10D85E7342F027D8C9EE1B18F0EDF271E4CC3FFEF777378EA8151C7245418DFEB93D4ED23EAC249D964D7AF0C97F0D4EE5107B88FD3FD2C78CF118EED6053A79F542D1A631580C11DF5282DEA39DA685754059D205BFE74EFEB514D395A1E6FE679C4B3420FDBDCAD781369323FD60BE897049936426ECB0E2A2B588D3FB23C49A4AEB2C427FBFD901CA104C5CE0356B661C08967353677952C883CD68F008065C3CBC8645B093CB2B607E593D136919A0DC6FBD5F2A7C0AFB5D07F3E0321377A2932DC7044DCBD0C2288CB1843FA65A4EBB6C2B003C2F066D19FDCD68B4F13AD10BC08CC0C17A482A5835D0B2C302D297AE0447BE41362AFB1C58E368FFD3B6CCACBA14787FBC89EA9569E66EE844461C723F18A779C47036DE5C384CF7DDA6474965E0C1F7CA7BEC3A8967CD94A3924DF95A1284508DC6E6570D91BD0A6FC569153CC268C1BFA14D7B9AAFF11A5A45C4459460398009ABD6357E4A2D7B014504D97D68F1A5622FFA3556B8572F0A1075EEE76919F7F26DA47717F74449DF02524E1789098DE466432A50858FC857B4AFB369A7AD58920C63AECC44F8249453DF2198A95A3F008F57E08B6E1FD0B126056EE0E4EFF1A6AFD29E1CE247EF2C8F329CBB4720770116CE7E5866127419A8A93938C50D8C407802DC6E8CB9E115844C22326DF00047F1EE41A958747CFAC66F9D6BF49D6E6DFAAF61D33DEE8CE9D510E21D7A7E065A3EB02157A36D21893F99BE82A70053D588AD3C631BC98F615063471701C22972463B3AEA374F3CE0B6FF645726DD0488F7E998E82486E31EA267FBF84B9ACA8F56E081BF0CC223A39FAB91E535D19B349D5F4949AD4389613A8DEF92A54A991E4742317C93A311A5B272A20849689558764646D648550870FFC5EBE2A5AC6461CC4074CF53B434813B1D9D4A762DA3E4BE00F5009499175ED18DB02819BB8EB560E6DE31C64177128378A3DA6C8E50C73F3C5B35623BE7507C20C39B783D1730071F1C4F396A24F30BD23EDE117ABC4E622EFFEB168017DFE0046D1D602170E510FCB05C34F68559B8E62D168D2B83886D8487FC472C7873B285C34CF9162FDCFB91C6272B71DD0DACD3B991C1FE3160A0C64953AAEC2B5E85AFD6C9535FA707AE5D261B9DECE1041844F6E417EC90597082858D751FFB04A2A6E8DE3AAA5D7CFDAA50F74BAC6198939979734BA0006309748611886ADF76122C00899DB1579E89B98FAE8DCC984BCEBF4B1631ADE937B7A545B7BEBB2191877C7A96D714BCC8BDC9FF9346A72362CBE93CAF6EA027E9E714EDDB0425BD05CF77F62360CEDA7222315A584E4592F83496654457D22F309CB0C309895E54E59CDFE819812F27F389DE17328CE6A5F286598BFE679396FD9A5F74A8F831F1EB2DD9ECB98D4BCA77E7C29B735869DD75DB8F808C41EEF7703D5112008E3B7DDF6467CC3A3A4AB199205F6992AD9A02FF1F7E5259914F571FC5A8991F83F967C22DCEC99E9B4DB614454703DC463503B14A3F5AA3333C5BD9C538BDA07C41E8086A3CFA1598BBFC99ED3229A6E1539E3048C7EB955569A5301815CCFAF92201A2752BF9F79CB7C1ACCD910B2C6A3DF502E823AEF88EFC9DE5AE42BDF7F3A991B317D1EA3A0343782F77F3CC07A8D806C7FAF66F88115AB +ss = 3B3A6F0D858D92DCE4BC7124BBC1B386AC01A8883E870741043214F1C16526A1 + +count = 74 +keypair_coins = AE0F65E29F38804A6759F70F4D01E2AAFF7FE1C91EBC4F892DD0DE3AB2E68EA5DAD700CFD0BFC439237A0CDB3F7D6C76699AAD545D0ACD755F14F7CB3B30096C +pk = 09167020156648552C8DC941C1CC6424693025E263AEF87F3E0B7147D0B8164077DD580F8C5B8F8CE10D77B217ADFAB3C65A2E6A04A662BCACC640B0EEE6B08DC32C661751C0C8BDDFFC2E0BB78691A68E7EBA25457A42AA0C3B15E17787619824E02EDC7804161A3E7FB092E897506B8333AEE03FD8B11C943853F1A9A44F5927309ABDE1321D60F73E41538CB9F83E3FA004011A94A200CC80EAC685D85ADF295B3DFCC175E4AB1E3CC0CB03C472655E29BA2274D759906A9043F2575F850F1152542585B9FEBA4368598C883C65120048B7C85E1A361ADB0941E6479370F01604D4BBE85BA4683BAE545B3772755765073899B00B0DE9A6D810137BA8A91AAB33EBC21C34274F3C995FE4CA8AAAB926E7BA0D83175100FB261272137FDAC3EC38AC299A25D2D9C514937E4386A06831AC39E21FC6E702A50476493754A37261C7187CAB94922AE12F2B032228934782C056AA67861775814FE5A8095C617BF590795C9B65AA6EE60B60575C881F4631849C6717905456D55016360D789A1F5AC166B1508D6100B0CE914216CA0476566EC33417AC234597A45C8A519B40842E5EE66B8B69269BE2848053C50B38C258E38AD3104E9A1A50E9872DAE129C38A367418C84F0CB5ACEDCAE229291C3F6AECA507007042F609734DAC77FA01C1735245D06F64AEFEC7736E077D5AC9D8767346250C7DCA28105477B18C681FD779123E93788624007BC729AB13352F9915D062DF3367D1ACC58ED8478A9E6216A826977B770819796F24CAD7DB1538CC41C03A8192F2323C68A9F28FB0145CB543832639158CB098B7693C615B820BA01A3838CF805B9972CEEC7689E9BAC7831701D543E87A880FE91B59743888AAC439D1222A5FC33F5068844FC3AE421CFE80C50DB3031584A21B4330CE1A7C014B11EB3526EE4DC740CA7179A428DAC27C128421167665F809959A5494C6E3A53F9D74F6E85BA7442CF68D999CE2A891DA7CB6903ADE2F576F858A5F731C259446219149D11F35D61FC3AF43BAC9E1A6A6F93469CE7A3896917EBD7C2E8C521BAC1C612F0AABA462E48A30BA3D37A28507A16E20658F34CCD3905DB5AB94D6333B1390E7A93906EB0C59932840CF55227F19A2C8728A7D385189057144B462A2338DF6151E02BBC53D35412E4235D7045E47154E4B910A47CA8EE678595BB690A6B4459B23FBAC0B51B055402A9A83F29691AE02A500C9C6352658FD1816A7A9E3F593FFDA6939820530793382BA38AA851433585A39C68C7026461F9E0000B365FF2B67A93EB83437B5207061961233013A41CF7D1CE8F86C6B8159A65CB979161410D24B1B20A1ADA82B72D127E941846E9D16D16F3B9A63B9E678057A20AACB88238ED9CA1C722307E2C2F3540AFB2B78ED999981FF6A0A0E15F3C3CCADC9B242B886D12F29AD6113D63C8268C56913458AD31A04F6130845A1942FE68B9384C3FD2F62FE034C8E6BA23BB6799163553291BA2376775C4A67914F78BB75026DF18AAC6C8C9E6E77351DBCF8B97106D7BA0DF874B1EE2BC508222794543EA60B3DC95093F288220F83B6A6B456F2A3BBA809AF288AC08B44BA9411BCCB5BA61961817E20B7CDB6EFDC4563A6B4B4888058F08AB01D702FB015F20C9202AF713DE66C1CF133BCDE0277F84A5C1876B7ADB21FC5A82555474B70443BC59355E3932D20C14887C25E9517C69D807C30A842CF50549DA1620EA315E5A20549B59106A6E1FE56D6C4657D6F69891A7449A57239DE5137E8C3EFC2994BB0B2BD8CC49EDBB3661820DA27199414A33D804ACBB1A80DA68CE288C0974B0B1A8F038FD1819BD8090FB022FD648331699724B66059D148D6445ACBCB9B910AB14CD0482972858B56541596B5B809AADF81657796C544C02B9A6EB9160BB0CC6445708D71051A89A88830C03C71903892860B950FE66495F992829DC783691876A06A1FF983965D67F2207A60643A6CBB59BE857408D802B86F054D5137EE8E6A02D2603E29B4E970A9CA5F49E64E39F70FA5912488C98D28DAEDC20DA06C811A38AAFB0064E9AB2F3628587F7A099036A0EC71D70B04AD0E26919146B4006B15221AC78EA0599325B9DE25C81506A786949DEB23BAE43C27C60B79F73635DD64B35002CE5D40F9808AE6A51CC00185DDD099212E3CB03CA153015FB2665C77D8FCC529F21AFDE0D4F32CBFA399F2973D812F516C86B +sk = 38BBB649E7520A59AC57783E32A5022489365713CCE30171AB46AB219B7E81369AF44BAB6F5BADCF613E963938A0829ACE625BD8594ED3C0981C5963F68874AA87685599041C4C296B4CC181E57667D499B2F961F44773CA958193E97988D816D702078C0147E41390F503921F139384D75EFC91CD08544536B4C9C09BCC2914A807E090D98B5C07C1A4A0C16FF0EAB557E5CCC1871BA1A36FF66B1ACD113FACD6BD16053F22CC85634A3D56E564E30862AA1409D48AAF92643B62009F8E206C2C8BB7F357B9432A8474349C3E1679F1D154CFD4A373665A86C481B9C3163308CF3A1A265A6313D0068BA2181AE5E5A1114995005C8FB574C4A7DA80562953348A80BC23CD90C37A2D166EE4E895F2A429AFF3C9EEEB869EC9982D367C5809396987A2EFE93DFDA2CF45E774CC3541BFE655A7280AF9B7601FA5183AB62682465FDB273AB435355B84563047BC4C6204AEC310D4B91E8B849182C16A57605A6F5690D3804D8857379E11B324977F30B461954A17CB16C4DD93761224A47F4C680373C51DE251CB69A2C737CBB1F76D7278033AE86480C7776CC7CA02393F333B6CC00C200AE58922756D3664A30D7B262302672C27A7496746F8F56797726340C734473522FA880819D76A004A480F48B74F7C6EE1998741D39FEC12759670B4E8057AEDC67950B929E200526BA5A27E0BBB67570BAE100B77D525AF70B7B6143A7419A35273C14B492E1E42C5B5918A62F3C829A50C1FD8715B030CEC454C90C72E6509AB1936AE7490C6B62A6720A840AA714F7B6B0134335C75C44A421598B790631E2CA497E256BE08910B69C01997BCD20591D1967EF5EC5C035B0C1F19A01BC0103DE6CAFDA45DB70950CF551DA2442741EB7233B36396C124C6365A83B66D9CC896FF448F54194FA05267B8154895173075039143DCC58062CBBB1946A917ABB184788052920D1428C856BAFB3461A463627EC7430671CE75BC2ADC95622EB2925A582A15E487787389BCF14DFD84801A37BC39136CC1A49CAB7CB924772606D48D3941BCCD3221EB418B12A6342AB6C357F273795339BBC720439AA9CD5A478122B8B01769EDB013686C8E872A4E2C049A755A8F954614665C61D5D9AEC7D67CDDB779512A308BA3CFFD5C4BC642C091226667C40957C17B3C92BEA102143DEC663B6155464AC7A9559C533A647C5A106C38972A26BEAB45C2F04C974C9BB860BCA64615B6F0782305C81862ABC973D280088BAC791876D3172D4E340F26452F60009A49989BEC107B680B62CDC12751F9079ED07C28143A405A600A974230B20719B0953DA3C2DA574CE2C31786C77600646E25B3C305F6507D91084A836366C273D62C526E0630F9B483CAF335D6BBB5BCF4ADEB4143443A07055349CFB690948487F7795B67DC2E45430E7A5C9564CC84CAC0AD0832480AA844417446B9B086A493B7AA163B76A50F35B7384BD054147A8621674843C3040CE06EAEC68B6CE8A2C5B42390C76350E10DDDB35C9F4C4A1CC148BA08601F92B2FB12C9088922C3463139239A62E878E4DB61A3529A8FA7905A7A1AAF90216DAB5026469B27D4122AF5561BB91D111A721A78587EEA259A4C7F6B743574398E30A11918896EBAE2CEDB5B35B095C3AD863068245497E16B94852D25F3121E5792D337C712206C2EF151ED58C8CED316160979D74B4C54B1BE2448562CC6C23B96C7EEB3600A028E91D817ECB13C9269BD8EA15296012B13281BDA6213F1753823037D24F14E733267B3C31CC2E2B235F1665BD6A81568C7BAFC902A6184CEA493508772866044A2F7C2ABA3A07D560D535B97499BC0E07423221797CC11C46562C721A99C100530CE0B0F8D09013D27BFF057A2456A622475297D49BB98595D6EFB69D9353561A028E6B5A9DA9A4207BA35F0A10B4CF66D7FF4ACA409C8EDB8160E8A60C5101FD480CDB05362430C98BD8CA34A318405024CB2A425A45384D501889E75C954767A1E274392C830694B59778A158F0B06CF2B444CD2C0134710B35CAC598B1DE47048D3B204D004A7D8D94810F9A751D782B7CCB158F70F262A53FA7B3D46676569F12B37370E17E1CE35CC0A230465A03903CBDB30EF18CE8B2033E9C5C1A686067EE639BF934B29B5CF2B921015549075CB0F609653E202AFA388A409167020156648552C8DC941C1CC6424693025E263AEF87F3E0B7147D0B8164077DD580F8C5B8F8CE10D77B217ADFAB3C65A2E6A04A662BCACC640B0EEE6B08DC32C661751C0C8BDDFFC2E0BB78691A68E7EBA25457A42AA0C3B15E17787619824E02EDC7804161A3E7FB092E897506B8333AEE03FD8B11C943853F1A9A44F5927309ABDE1321D60F73E41538CB9F83E3FA004011A94A200CC80EAC685D85ADF295B3DFCC175E4AB1E3CC0CB03C472655E29BA2274D759906A9043F2575F850F1152542585B9FEBA4368598C883C65120048B7C85E1A361ADB0941E6479370F01604D4BBE85BA4683BAE545B3772755765073899B00B0DE9A6D810137BA8A91AAB33EBC21C34274F3C995FE4CA8AAAB926E7BA0D83175100FB261272137FDAC3EC38AC299A25D2D9C514937E4386A06831AC39E21FC6E702A50476493754A37261C7187CAB94922AE12F2B032228934782C056AA67861775814FE5A8095C617BF590795C9B65AA6EE60B60575C881F4631849C6717905456D55016360D789A1F5AC166B1508D6100B0CE914216CA0476566EC33417AC234597A45C8A519B40842E5EE66B8B69269BE2848053C50B38C258E38AD3104E9A1A50E9872DAE129C38A367418C84F0CB5ACEDCAE229291C3F6AECA507007042F609734DAC77FA01C1735245D06F64AEFEC7736E077D5AC9D8767346250C7DCA28105477B18C681FD779123E93788624007BC729AB13352F9915D062DF3367D1ACC58ED8478A9E6216A826977B770819796F24CAD7DB1538CC41C03A8192F2323C68A9F28FB0145CB543832639158CB098B7693C615B820BA01A3838CF805B9972CEEC7689E9BAC7831701D543E87A880FE91B59743888AAC439D1222A5FC33F5068844FC3AE421CFE80C50DB3031584A21B4330CE1A7C014B11EB3526EE4DC740CA7179A428DAC27C128421167665F809959A5494C6E3A53F9D74F6E85BA7442CF68D999CE2A891DA7CB6903ADE2F576F858A5F731C259446219149D11F35D61FC3AF43BAC9E1A6A6F93469CE7A3896917EBD7C2E8C521BAC1C612F0AABA462E48A30BA3D37A28507A16E20658F34CCD3905DB5AB94D6333B1390E7A93906EB0C59932840CF55227F19A2C8728A7D385189057144B462A2338DF6151E02BBC53D35412E4235D7045E47154E4B910A47CA8EE678595BB690A6B4459B23FBAC0B51B055402A9A83F29691AE02A500C9C6352658FD1816A7A9E3F593FFDA6939820530793382BA38AA851433585A39C68C7026461F9E0000B365FF2B67A93EB83437B5207061961233013A41CF7D1CE8F86C6B8159A65CB979161410D24B1B20A1ADA82B72D127E941846E9D16D16F3B9A63B9E678057A20AACB88238ED9CA1C722307E2C2F3540AFB2B78ED999981FF6A0A0E15F3C3CCADC9B242B886D12F29AD6113D63C8268C56913458AD31A04F6130845A1942FE68B9384C3FD2F62FE034C8E6BA23BB6799163553291BA2376775C4A67914F78BB75026DF18AAC6C8C9E6E77351DBCF8B97106D7BA0DF874B1EE2BC508222794543EA60B3DC95093F288220F83B6A6B456F2A3BBA809AF288AC08B44BA9411BCCB5BA61961817E20B7CDB6EFDC4563A6B4B4888058F08AB01D702FB015F20C9202AF713DE66C1CF133BCDE0277F84A5C1876B7ADB21FC5A82555474B70443BC59355E3932D20C14887C25E9517C69D807C30A842CF50549DA1620EA315E5A20549B59106A6E1FE56D6C4657D6F69891A7449A57239DE5137E8C3EFC2994BB0B2BD8CC49EDBB3661820DA27199414A33D804ACBB1A80DA68CE288C0974B0B1A8F038FD1819BD8090FB022FD648331699724B66059D148D6445ACBCB9B910AB14CD0482972858B56541596B5B809AADF81657796C544C02B9A6EB9160BB0CC6445708D71051A89A88830C03C71903892860B950FE66495F992829DC783691876A06A1FF983965D67F2207A60643A6CBB59BE857408D802B86F054D5137EE8E6A02D2603E29B4E970A9CA5F49E64E39F70FA5912488C98D28DAEDC20DA06C811A38AAFB0064E9AB2F3628587F7A099036A0EC71D70B04AD0E26919146B4006B15221AC78EA0599325B9DE25C81506A786949DEB23BAE43C27C60B79F73635DD64B35002CE5D40F9808AE6A51CC00185DDD099212E3CB03CA153015FB2665C77D8FCC529F21AFDE0D4F32CBFA399F2973D812F516C86B772F50F7047714627BF76BC098E0B919145FCD8DF6922EBAC383E5C556738390DAD700CFD0BFC439237A0CDB3F7D6C76699AAD545D0ACD755F14F7CB3B30096C +encap_coins = 2BEE79D35D1BD40005203028B58B095DDFF33A4806A2BA264F76B6B06AF6449C +ct = BF3A2DD41A41F4F573F912474CF0BF79EBC101E6FD605F1EF56780E4C27122BFE49B3CC9D7A144D43FBC5B3FAF3B27BF5DC158B5B8F8F24B676DE71A82E354A712FECAC90B740DA9A152D420ACAFC71F2AD1796FB95B6092FA464E4C961DE6AE12BE46C4006FD5CEE3C547ABFF8788BF1291CFADDDB85F5E7310EB2188C8F9A18F973568F17328C13281FC8E81241C565501076DBDDCBA0CF2085DB7EF0359E0189DA6B87B7C52585D80CB7B7DA1AD3B354D2988F22EC7B27A17082440F601F36327823F0821D892197B5CDEC6B3D169D0A6EC96061400C825C8873BD03B7CC39973112150967A4609A64B2128BAB544C1A63BEB86B00A3A1142F04F6876DEFFEBFA495FE02527C4E9ED7627C3522E2524130D25E9FDC9E9A09F65404D599BBE7829CB21F4A4B6F52F80C6AC24AC00AF44260280304CE6AA59A3B0FB38716DE0C60ACBB293CC700DFB212F1687C16D12DD9EE0CF8F101CF3BECF06E14B5097355C774316ED1EBCAECA84355FCFEA3FC0449AAADFFCDB97FB09C31F06CB1D8E03A096D1E3295C093E4E1B85F51BCDB458629DCF132F0EB7DE22C5317E56CC92D05CC9777269AAB262535BAAF030DF4BC595244685D4DF5DF9B876EFF4D7FFE86214BFCDC07461D461819975C59AC0C393175D8E572F229024A039F8395D3FD467DDC7D1944486178BF7100B504F1836E803EF54A95FA9ED5E482039DF71BBCE5232DAACFC060BFA9292C7995115D5AC79E9008CF5893F22EB1E642DDFBE0266CE9EADEBF8E0E11A92BAC0992EBED090DEC2DAA1AA31808C50A82092857A43BE82FE2299A29C49F54FE5F7E0A2AC09D7D26CE941733B08F17ACAC50ACE0E1450940478AF522A039A276906AE1E4A8B7833735523D0F37A08BCC76D514FCCE2F5BF5959BFC4A39B1BF3D4C7568A27EFA29653CF8B2BA0A4D79F2EBBEB603B67A4026381FC28011DAC77F2F422A202684395F881F17F3C6550E6A3BB528EDDC40CE0A677D077FA31659253BA9ECD015A4D3B200AE7094AF72F13A8781AF3166D4C09D25980D92A3E51B1D4E3881D0197F9A7D0E975A70A87CF7FD7FE1D399D0F7BC6A9A70E15D8AF061C5FB30D14EA999838DB71A9901DBBF075E3F2EE80D05D8AA461DA8FD08A02D4A98D72E3A0A64B96E2B7F65E912E7A05DEF679774034DC41FF92CD1C15AADA6CB4DB708F65754EA2C6403D8B9C325560F8456536BF77F91250B52B93B7A48CC04AC827DAC9D2631233DF6DDCD8B801943B65830540DC17395EF1C54341BC729E43278694D7D289A9011DC354FC50B32BC4F1B4AA863AC3BFA88AF98C4ACFFABD9ED483383C04E7F029511E7DCFBF409E165DD846193A62B4F24851175E534B06F161E191824988487B191CD6C553FFE42805224EF894FC75C0A66D975D87CB9E9CCF5BC19287B805A18972ECC7543D3544E8EF196DBC5A0CAEDD748A8A736276C66F822E5A98A0CA0AF437B0418B9EF7ADC4DBD49E31F34713B168DBEB289875049EA0695393753273768470705A0D101CA0CAE65B3D4ED9AA006A3C2C6029022F67620958154490E652283AB812E75D3122CEB5B64F75F11CA29F0E1EDCDCFB26A6AB60F1F27ADC5E51F6E9CB9BA7ECE7F1BC84AFCB9F58C5507550C625ECA9A0E3D0B5D4D9EDB54B03B24239D678DC5D8E7707B32024DABD0F24F40A63A7E09471CE931F9E4B0A91139834579502806D1D413BA38B1932ED7E2D0028F795B42B27BA71CFF05FC15DD312D0CC014C03C0019A8829AA5C87526FBFA9D0292F33AA58A4D65F5D1DCFDBA4A65C57C9727CC55C420F88D66E0930162EFCB6180BCE440DBC4D932A90A84E37E723F4D81A3AD81BAB16B242411FE21CD887AFD6B793E0D6469823F1F84C213AD98674A628959CD11C3A3CFEDDE06AAF643E82E06C181D8709AF498F5CFD7AB159BB2B772235E739DDB6526F3DA81F174A9FE852A1721D513F94E8CC74D8822E5B0C9439B48C127C4218F5AE9C3ADC1236BE7DC82E222EF6A038610A11ACAE994733E3ACFACACC6852792131F35DB97F2EBBBEF90BEE7A7EE1E29FC654EC130E10908A2D9D1730340FCCCE1AC1937E955C68D623B78161F688925B49D6F07925E9702396CF8E7A5E8FA86083F0ECC33A0D85EAE8B035847EA9E88AC865E4CC98A8310125BB69D8B4FD4B0861EA41E381010F5A28E0461212F0D4422898031F1C5F4D02EF9ACE7846F6DEB3F3567EEB +ss = D50D1FE7C4685B7586244444D8A29A9F512034E85AA6F1F137C50DD33ACEE62A + +count = 75 +keypair_coins = 6084A235F79DD093EF6D185B54E69DF33DACEE73A9BF2F379004421A10E3A79D2A96A70166E26D17A7319E8A5E12E38CA01A98D8A5813049A5BDD355A7D71347 +pk = 50672C2E47609ECB47DB696D4FE16E54341C0A510CA0293C25F69D027A4B7CCB08C184A68DBB0E8822393AB7B05EF08C4610A0B84C8C4CD5B783E71327D925959782B6C106B08436861A8FB2C1CE2F239F19A73B84966698C52E3C380A7DA81B54AB76E62929E6743C88B05457868FFF3074F8F085DBB05816C8B4803A7398F1C0F2CB3765E84672B24FA32838F7199A8F738B89334DC6F391125569B12A670CD37CAAF00AC919AA4B92BD4DA706973681B696B33871441DACA919216760B41F5000A7BF782AC33491382B1C423734016CC8EE4B80E6E25BE4720ED05439B9DAC5FD240193746E6B196C938B345B39BF5485B5BDABA020DC90EBB5CE8398C3B0FC59EB5CA95857ABC2F6BD04BB34F2902DA9C4A641FC36A1289640A371AB965B25383B7F017834FB4C3C3477910288F8B305031A7B97B69F3EB48780D3558C7C741171815B169E4E9A62A261460FF2CAA333150AA2698D243EC55ABAD0329CF8FCA935094C6795489C902303FCCA7F257C7D072EAED4A31C9146311B21B09B38326AAE0D914C55AB756D7B0CD761510DD12572B912EC79B61FA230E4EB9DD052B29B775D891B7025BC89C0DCAA0A18855988C215C74F06B36976101C0F697CF8DB4C0FE25F1C016CD11154F5A5CEBDCC4ADD13B31A63336AE621F2257837B16FF0F6C07EBA6FE5B058A42122AA88629014256017BBEF582E123365AE37063FA97277B2063D3860D3920BECA27638F02807FA3BAC4AC08614AD1590BDC6C855F4D3B292982838923251A348CB48753EF773570AB00768341670C21DC7A356931E5B8AB51E8B2615F5689E607953F685AEB6B999815B2CC66C24F65D2EC64E4EE88D4CD830DA4C61E15A033E37182731B5B0B506DEF921BDC19A85624630BA9102226F6C2467C9EB21483BCFC96A22D8493F9EF8B7276378FFC16C3A996F5CF6755D924716524DC85C39D22A8254E74244229C975B467AC94568312333EB578A197F4530AB74514FA174855904C7FD09B2003C3B94BB41C4559B45C00F7A73935ED15A39E47BCD46497141942C3B669642060533CE5DDB0CB4C1369DEC82B8D7239637B615A086D4AA87630439D712A55556CDB911734A23779D7C5DDC628D0F326B5502A79DA80FCFB3AA8E607FD5C25B8F2768515618538A990DF66FE57C5C3B3A354655AE4FC098BCD7A382301D0B721A1E74795AC23FFB8C5493E14C0793CF03063794CB0D340A018461AD89E17EA89B7B88382B9A288BC4B13180DB6EE6224FD929B628049C20C1C830504E09651147417B552B6EC810C744210532BB011A93BAF28C20512558BC1C4C4A07565779B7FCB260839506E0E0224099C5751A93D6141F90816EA8DA87CD1105715A67D0B969D8B748A46831EAD199EB4C28B634A82D8B988D2A6D5C797943000D2546957EDA9B1573BF534B552F225253D768706C8AD4C42E2688B40965C0DEE151BE4B7625D92E79FA40FA7C00093148125C65E841CDB86AA90A02099E2C6C4C0BBC95F14FD0734872F2A6D6B3C9B3D0285B7CCBB5B715E913245C14A5AA146F003788D4A76DF1037195DA2E939CC08F56C3C25405D7D1851249496D33421E5BC386645FF3A8367C3BCFD0542C8962CE146720012087693C60E3A47DE4570887473BF9B68C22699AFC314AFD801A0CDA51FE4340E4E34EF18C07A9C7A40190908AC323068C95D59BB04BFC11AC930F99D082D547C99A807C8D112D82F1B81125B41F57A243006B772673EFD286B4D24684D2B046B53D7D26B6BBB862D64C42E0E909E813391D6A8289647E91660DC5891479C43769D9608C10763E5A35ACB9AB7552A08D167ABC9B02D3798115D4C0B6B0782C77BFAEA4BC27835B4AE525BB052F6DC04D65074E00207213D612E746A44CB5BB55311C0D4A43D2EB3C2003CF3EB895FDA1001BD55484992A384561152779DF9534B933244654B2C37B3CAA368319235A1DA431D958A4DEC38DA311412606ADC0D26022F8A822E4913B8B5E97B6C2525636B586C8B3C62AB4DC73539A028FEC33A5704BF95183847361A8143D1C22495EA4A229B4214FC22334B857344C721AC2190B554F7A30479BDBC8854C0F0219B4002A0685119AEC442242D15CDDE0983F8C9EF2B3AEE24CA7ED917B90407D5AD86906C0C865149060B36DB1CB1A22D97CA3823D34197B7D9E60E307BBABD9B3E8272A0EF1B3333269A7AF6A5BB8740BFA +sk = AF361347809757C2AE0C4A60393C90222C394CF136E95517552721FF136DCC234D64715A1AB43D15708187F89A6830791E0062CD43253EE486AC54179D320FA6A8BAC4D0C07B7158A1ECCFE52C4847403849982D73288877D04EAAD37D392AA487597F80F19AF7444E5A82CFBE51609AE515C1B320B6C75AEFC121D5E2904A0185654A418E5C7A379B41838ACE149B45C5A4040DD239ADA846102A6BBC811EBED4710B2393ECC4BB8C6254DC815D2667831F962887A74EB883A5A8642E0B427450D01321246A8797B7BE1211EAF64B0C706EEDFA17CBA2B010626112AB6B2B2B928DF38CCBD9B639B9C6AD090E92DA98B5C9914549BEB6A9B5505579A56943D210722BF590D63C1ED56534A96552005226C34CC1AC32572D2AC0823BCE348086096525188088DF229536BAC34A1C95083309A0971F31D975DE0598E4E009D24661B2A79DFAE85343B94FB1BC171493AD77D767E0814837348616205652EB4F98838CE536691DE8C3AF0A4970EB0C3600B4605841BCB0884E08BCA3198B04B2AFA6F575229C56462B9516026D32D2CE33A4B1ADD3B411371EA6516765F457613CCB50F94AB9395F6FBC94395A6C9C104CE3B79171A83A49B22ADD3A915086B804C3B42301BC1F14630EE3217F059AEF485C019A4248B4A78A516D75919EB2B15BB1E5A34CB6B470CA7A797BA1B5193CB4565497F98BFE30A7578044867897C332687D925C8BAB05D0C35693F557F541B571D6AB7E4A752B80267B0329D7558FE4BBC54C8612AA95C03F81641A129B1793160DBA78C4E0269E9361087328A73C67C0044217A25C2E05B64A1B8EBEC972606BC220B1A456D8BA86A76AC4A3C06429CFB6035EA50549DB887A5F6170EA282BCC295A2EF000F571038FA97B6BD98FE0399ECE3755D4B55E16261F7FAB678C394C83676CB9F080BCC915C8B1C67DC998D7097074249585E31C5B30BD0250ABC570531DB43F546C2E05983A7B5219127809987343CF722FC38525B2ECAAD2CA703679CBB7500420F83960D7505BB7B7B59A8B6F0C876C7A53D893A10468A516FA7A6A08C04D3259AD003DB768559E173DF06A08793B10E5A1A46145B6F0FBB230CA504424B4E9617CB3F509993567B4CB94CB2CB39811BC1EAB31B5F5691FF4108E5A6EAA9B15DC2AA45FC4AD26B9CA007A7C2A680ACEFA88F12790ABEC7E3DA1C13A355C1C669117070A7E1976F6859921E273F53632B4144B58E0A74207100D2CADE0C8A0410814D40A4234843A44978D0D4A173BE52434760423235F5D7C8E1F56C8181487BBA930CC9272ACD524EB6C9D71D753FE62B0E9BA33A478B7E82B36D9690607550ACA261085A08725281B02E531432B35398B7ED1355B8172776926BFE41880DF90AF6951A58981C708724DEBA6B6C2BB8AF1C0009C71A0B82AC0D14CB0910A8EC3988251DC9E93F17E067608115C85BB6C47D33A2A9359A35BEB47C3A04AB65537F59BC1EBACBED4B97855F753A954929B6449A4DB7D2098CDFC04008873004BC535BD5C74DD49247419601513C4E8125731307BC858845896A67D33902AFA4B58B50BE969B947851BBD791D66887CC6E92E19A2B92BA6BCC2825C4239AB2894B2467547FF3A63BEF65EDCD579215ACA66A13CC6705453C4964F1C29499179CCA36A3B998BCD173458127B5F5C9DB4D12448D3914F4092F7F37F4D826221EA8BEF6889179919EAC60DC2547C5E6550F45BCB3D4B41DE1B12273675A0F1C611B6199F27CBD277A38A67B77AA3AE87751E96F4B268F75B36D070CC1743B469A2ED493D50004EA5269E91BB4111795741F713918438B9945458F2836D42247254B2FEC86CCED59B0C721F3C372923C0072F31576BAC1C8B986B25E035FEF91FAFB1C7D0C19C94494F4FF57D86064B22B008214375D0E61361E2CDA31472C5D1853F6ACE7F8765659ABDF95904DF05B976039336C9753DBBB216E599347664A7B170EB563AD464A16EF963FCA77564B794408ACEE8395135AAB683A14B0DC18413F31B8A4929111550B07B50DB2209403854BC4391E115095D2B2F632A76D4015B7CC34E9474A75C124396483C8F0C03800B1F539623574099077B7DCD364E34A122BB0B738D863DB019CD19967E48A181ACB23CFF56346F32135A30AEE015AF3B463885497A844562107A6350672C2E47609ECB47DB696D4FE16E54341C0A510CA0293C25F69D027A4B7CCB08C184A68DBB0E8822393AB7B05EF08C4610A0B84C8C4CD5B783E71327D925959782B6C106B08436861A8FB2C1CE2F239F19A73B84966698C52E3C380A7DA81B54AB76E62929E6743C88B05457868FFF3074F8F085DBB05816C8B4803A7398F1C0F2CB3765E84672B24FA32838F7199A8F738B89334DC6F391125569B12A670CD37CAAF00AC919AA4B92BD4DA706973681B696B33871441DACA919216760B41F5000A7BF782AC33491382B1C423734016CC8EE4B80E6E25BE4720ED05439B9DAC5FD240193746E6B196C938B345B39BF5485B5BDABA020DC90EBB5CE8398C3B0FC59EB5CA95857ABC2F6BD04BB34F2902DA9C4A641FC36A1289640A371AB965B25383B7F017834FB4C3C3477910288F8B305031A7B97B69F3EB48780D3558C7C741171815B169E4E9A62A261460FF2CAA333150AA2698D243EC55ABAD0329CF8FCA935094C6795489C902303FCCA7F257C7D072EAED4A31C9146311B21B09B38326AAE0D914C55AB756D7B0CD761510DD12572B912EC79B61FA230E4EB9DD052B29B775D891B7025BC89C0DCAA0A18855988C215C74F06B36976101C0F697CF8DB4C0FE25F1C016CD11154F5A5CEBDCC4ADD13B31A63336AE621F2257837B16FF0F6C07EBA6FE5B058A42122AA88629014256017BBEF582E123365AE37063FA97277B2063D3860D3920BECA27638F02807FA3BAC4AC08614AD1590BDC6C855F4D3B292982838923251A348CB48753EF773570AB00768341670C21DC7A356931E5B8AB51E8B2615F5689E607953F685AEB6B999815B2CC66C24F65D2EC64E4EE88D4CD830DA4C61E15A033E37182731B5B0B506DEF921BDC19A85624630BA9102226F6C2467C9EB21483BCFC96A22D8493F9EF8B7276378FFC16C3A996F5CF6755D924716524DC85C39D22A8254E74244229C975B467AC94568312333EB578A197F4530AB74514FA174855904C7FD09B2003C3B94BB41C4559B45C00F7A73935ED15A39E47BCD46497141942C3B669642060533CE5DDB0CB4C1369DEC82B8D7239637B615A086D4AA87630439D712A55556CDB911734A23779D7C5DDC628D0F326B5502A79DA80FCFB3AA8E607FD5C25B8F2768515618538A990DF66FE57C5C3B3A354655AE4FC098BCD7A382301D0B721A1E74795AC23FFB8C5493E14C0793CF03063794CB0D340A018461AD89E17EA89B7B88382B9A288BC4B13180DB6EE6224FD929B628049C20C1C830504E09651147417B552B6EC810C744210532BB011A93BAF28C20512558BC1C4C4A07565779B7FCB260839506E0E0224099C5751A93D6141F90816EA8DA87CD1105715A67D0B969D8B748A46831EAD199EB4C28B634A82D8B988D2A6D5C797943000D2546957EDA9B1573BF534B552F225253D768706C8AD4C42E2688B40965C0DEE151BE4B7625D92E79FA40FA7C00093148125C65E841CDB86AA90A02099E2C6C4C0BBC95F14FD0734872F2A6D6B3C9B3D0285B7CCBB5B715E913245C14A5AA146F003788D4A76DF1037195DA2E939CC08F56C3C25405D7D1851249496D33421E5BC386645FF3A8367C3BCFD0542C8962CE146720012087693C60E3A47DE4570887473BF9B68C22699AFC314AFD801A0CDA51FE4340E4E34EF18C07A9C7A40190908AC323068C95D59BB04BFC11AC930F99D082D547C99A807C8D112D82F1B81125B41F57A243006B772673EFD286B4D24684D2B046B53D7D26B6BBB862D64C42E0E909E813391D6A8289647E91660DC5891479C43769D9608C10763E5A35ACB9AB7552A08D167ABC9B02D3798115D4C0B6B0782C77BFAEA4BC27835B4AE525BB052F6DC04D65074E00207213D612E746A44CB5BB55311C0D4A43D2EB3C2003CF3EB895FDA1001BD55484992A384561152779DF9534B933244654B2C37B3CAA368319235A1DA431D958A4DEC38DA311412606ADC0D26022F8A822E4913B8B5E97B6C2525636B586C8B3C62AB4DC73539A028FEC33A5704BF95183847361A8143D1C22495EA4A229B4214FC22334B857344C721AC2190B554F7A30479BDBC8854C0F0219B4002A0685119AEC442242D15CDDE0983F8C9EF2B3AEE24CA7ED917B90407D5AD86906C0C865149060B36DB1CB1A22D97CA3823D34197B7D9E60E307BBABD9B3E8272A0EF1B3333269A7AF6A5BB8740BFAA9F015F625356A6BACBB5E565C70184940891589309A571B7166C2EE713B8FBB2A96A70166E26D17A7319E8A5E12E38CA01A98D8A5813049A5BDD355A7D71347 +encap_coins = A8FDB315F75AA1E656CAD005010B032BCE1DCDD7CFF8C938A5314ED240F480EA +ct = A382DB2AD5CE3BD114C1287738C32F5115E807C837EFCDDFE91693EBC7ABD3C7A3F743ED2D3BB6AB2BC412325BDDE8D6D3120520B177C7DEF9021A180044BB63C27205D9A2017CEBF83614B0B1091225DEF049F7600CE40807038CDF6AD5A5F7E2538968733E4D40BA4A1E81F7F30D09E7BBC107E71C6A4F5AB3BBDB2EF4C136ECC6F758FDF0F249E40853F59C4C146D9A35F005105D13137743BE2677924D287B9782F24A3C5331A9A532CF3C8E19812A5AEE650EDFE97022BF30BCD2075A4137DB456A8E8CE19E995CCC5146552E3CB488325424EBBA18A1FD7AFE3A3B7C57185B14545816344F9BD8EB18F911F92F768327E3B9802CA0EDDBAC63BEBAC157E06A91BFAA2CCBEAD3ACCFCC0D98BE4CEF501C3350907A5FC21FBBC30E89E97BF8BCE8F1DA813F017B56D4A3D2CAC5E6F73F3EE71919BCF6D5FD8172286FC08238148AC8F162CA2A23A628BBB8EF06C3380D24637A1A51E11BF74AD8CB2B65BAAD5DEB476A80E7B81CFF5338E7BB944A37542A5D62ED93C0F5928199F9B901C7A97BC43BDAA362BC81B5832A981A7EC13B8A2E734D1A61A04383CBC7DA106D785D55C0C152D4F5C374399F2AB735E47F61D04C0F0AB5641E3C7B0FDD1BE75AFBE139B24D62A6B4FF0465F8019746ED73F0CA51DBCBD8A024FB6CA2C862759B9395416840D6474DB92E1B10680D174DE52C67D9E27E562F2F18914EB2F33F0C78F7DDDEFB91B31460F57AB7A5E52B0162F2925299AC4CDD877C67068BBFBB7DE75C01BC23CE9BAC1EB93971EA9988535F692987EDA0CC079A4397C900CA0878A67FB545B32B5D98849059D49044DEB67F534A9E7763E7DAC9392D8945FFFAE30881F4887CC34BE152273E467A01A843301F2E0CA6EBF7E31F3057781195482FB430CEF90BDD7EA368C26CC93A265AC944961CE119B4A5D321CC4909E220E72A9D52B49473E7310A6C7E56159CF478B62D27926F0E54937D1650AD0AD716B2189A1AA154EBA1D4465B7FF81E0FF159A4363E504C483AD0AD8BA983D60EB1D30EC3C9211323EB43C017FFE9B24FA3EF7CF04C2DC02410FD9E5AD1194B092E47CAEED5DBAFA14841FE738A491956591A11FF0F1C98EC077C6F457AA3269F645518EDFEA3FEAD30C3C502299999555B5F9060FEEA35177E60D608B9F67CD11042E603FB1477D807A3AB47925E173E1856FF30CD274CA37D0E1FCA220BD399E64DB21CB63D8FB86352163BD3E1FF6FFC48DE7646A59203E6BD5FE08660B28A807F9F9A0F9715F64547CB6D510B4E027FE2A34E4D0AFCD2B6E2C07F22EB3E5025DD9F7357AF3FA4A92DFF914DF30AB92F19E4FADAA8EFAC91913904D8DDF24413F0B720CBCDAB9AC1A1AA92563CD50FF4167336D85A69C4EE5157194A9DCF1C3B6D0A4C1A3F58864C298B28D8D844F0DB9BE321E258BFDD003FA7F3688DC884492B6FE1668EFF742531E496940399D4FC628F8F9C743E148566EA67B98B91B9135C6654C8352979A0993CFB87C699F969070042E3B9FDB66B2667148C71C5E51DA1F970D3532AF736B66A32199A20FB5248C1213FA4BC6F487FAC018F08F131F3D3622577E2D6F523321BA887924ECBFA72B90686F14562FAAD1231107A5CD527544BC5493F7084FEF6A50B19A49DCC1C8D0DC6A5ACB810592E21C300C1E31B0699FC91BE26D4F2B514FE0FA990D7DBBEAD29CB2C9D285D17A0652A48834F193259CEF30D1569FE355087C7441822713C2B532046D350C65438A9E1D934D8C6CDA9FE56D18EE58148F400F94B6E1C299661AF37C6057E783361C4540E0F9A12CB943BC8CC4AFA8601C8A92D238BC39BFF2CBF3CFE800FF9B5CB8E501DF35B94411320EC3C35CCABFA2CD10DB30D7ADDF99FC9AECA25EDF1E1007A18544029AC5AF2907ED21963CB8FEEDC899CFDF083EC2E81CFD10824CF409DEABF6C4809BF13C9DCA8654A3A268842D3239544B83433CE0A2786364124DBA0AABE37771A1D99A0B73ED2D4D920C0820CCF440BAFE29A1E033D22F5C9DC20253934CCA6E8616597013E01BF30F74055222771E458E7174FAAB5435C125FCD3AD93B6EA5E5F5A17BFF6ADAC0C26CAEA431E97C8294A8BFA2BDCDCF9B403E2859F7E2A1BF3ACB8260CCD7146AC279E6F1E326F68C8FBCC46D385600B17B0E737944394125CB19B45DE4F0C979DA2A37B9740DD078044036988E74CD8B6221542929A7534484625F748ADC +ss = 1DFF346BBB5F07A83CAE994161954F4C8C27AE946B7FC05B5887E3D2CF26C78B + +count = 76 +keypair_coins = ACD1C0217FAD5CAA4235544DD9DE153AB1880CCF4C76F16F236FAE4E4BFDA04CCD2DD7A1BE89575BE8C14529BDE4D832CC005DEA955065C08B3185B215DA3A2D +pk = 25879DF1312D41F14B53EA0FCB973EAD32CDF833463EF73EED9A0CE2D09FAFF9CE3A06030B3021CF4360F3E4CF93528BDBE69D0655171BA7B6D93CC220A10D37E828E54629C6239EE13C0A73E58F0AB6632E764A840753393B206C180B3C333275DB3F05516FDE08803F7BCC10589F8F54793F732CBFE82658033694E6AA74823B92CB616433072D405E3B38A42BA35252A99CB0A568D51B4562CB3AF733AF7A179FC66CB56292BB1D796BEBB5C400F30098591447191A7CE6A3B2CC3FC7AB7B5C6CA02C6808BE45671012867812C2BFDACB9DB982C2893D150B6C70347091FABC0297356F033BDD6734736907DD3A9E60E4637E2AB768E9558339921D8C1A8218926815CACCA840224052D574164A4661AFD903D4516E43E3984B31554E5B666A9CBD332A9E6C63036D34189616CDB3D100331BBA659649EF0ABB86502FA994B941F9A354231110B8080DB75C69EC6FFCBA48642B0EF54479DD7995F7F9BA92F8B473CC7E31D04948648AF330AA09996E868C75BC3949BC3BC8E5923DF68B5DD78BAFD3318AE4FA6224B8A7DC9814F7B35839B05CB709CB1CF2C1E80AA879C58B29677CDA375A5E4229BC8431D48BB08AF0BC27F982A6723E60B00DF6E607665B7A4B4CB35E5162BA3698B7140AE7A25A3EA76DB07626AFC773854038B3D13654B7CF0A1A8E75959E5EA0797EF4A64538C19F0028DCB5CDB5803815467E57ACA68FE00C3352602897AA88021203A4B970EBCCA77846E5C01ADB22859E41CDBFA8A7BE9B932AA2C6D391379A035455D84282D5AB90D5B6DE056F211CC6AF61C1D5B643F8D299C249C055964C56906F88778A4600BD054850A9D92557AB2C33DCA2EB2857B9617018AB08F25493B265B10CE74889D8CAFEC53F7B6805BFD637A6B6ADE8A65D7F885C3AF645CF08BAE250753EAC8E2B734A75976AC9EB8D2633A980285EC33B154C1551162C81F0254D2EB55A7DB13F5D766330F65CEACB55FE058AD06686E50BC544B48F1358532603720079B7D0609E5B36B8B7E097D40CCACCF496F3F00FB957162445025ED62592FB61D41A28B16A1F3A3CC83B1B173E9599E5C49A41B93169DBC4FD006A93BB233EF73DF88116E091B17A06125F651F52D501DC86A856A96A43601C46F32B1FD6900A6513F7D298851B443242C62B34236C7495881CC3FA592EBD4397D5422F3C40CA62980188CB4AA3499D5D2799F23C7E86057A14476AB4C7668F1C3CAEB0A980D13DE0F3129E151C0813B259D53EFA07681048888DBC082ADC4DD324A028D48FE728701398CE20425BCC9B410687363AD771218285617A39F3C7BFBB2A6C006125D6FA6DF88898F7B236F7581A8A077038A06394782CE7862185F4CE98AC06C25B611DA7701A80329228391DA903607793BC8A2189A123C177AF9D987AE9D1C6D2D01BC5910F56514532D582CA092939119444B3B736ABC0FB5140E14C723B1C6ABC2034929A7EDD48CE3D469B16B09CBBA5008728BAABD54D15F427D2EB5E890A5A13224038328FCB227BAF6A7EA3B82AAC5844D809AD86B6ADCA537C2C0B4E0D659606F835129905A6760CFD68B5697B9A8EC00159450205CBCFC0F8C9FB8898F135298EE99A154977FAE7BAE16AB9325231178A764C1B10B5C427598490CD9539B69B1848980D09768C435233F52376371B7971D861C8612ECD160655E83BA1E60A553B4905D35EFA1BBF58318D78353DA822241A354B439B2449A2825D43212BE80483C167E6C5B50883412571CD2AC3C1B5AA1EC9C232E6B9B5A2091E189B3AB0B323FF13654BC60ED42857755902D063619AB98FD8790D05D85BEF1AB23A09A9C241A3CDEA620B6C338EB582DBDCA9A6AC40FEF7615091445A93B8FC2001E09816FFD54F7870B5CE6A4FBD46C3F42B8E63619B7675716BB65EAB17299B57C45C834226DCC6C1F98593782C9733A078DB34A137C5422CC1DD87A614C1604972559937102AE60337D997CAA06B0F33C43B093AF04595E5AB48A7A0966FF318A735024F004D6F1893B48B74B42135C43425C1CA48A93691603AB62D2B80FA5A92EFF7A218239B4814352A230CDC1249B09833BE95C5F46BC5905B73A82206BD6658464659293691EB58551973121A42385AE81AC9EA2EB6419A915441F41946E504A6B9D5716E909BDC49337909282C554F3BE4D7FAE86455763B97EC8FDBE9640219B35FC36033966A3525D485F1 +sk = 31CB44A14C3FF840758055BF2AFABAD14A723C048D4D20C5908BB781844D574A96A0807C59D5192548A0089396A78B953AA52677B9A111CB012954B674571C5D0C7C5E6488D498290F7665F4F32DBA7228ADE2A724413798EC32619901215663B2C26360612558070BD06261BBAB86B4F96056A498BF37B1B84238C5099EC8F1AF4251C0862B861F334EEE85AF8D364A54F6BAD0E44A23A0577933CA8482889A955086EA3A2C94B057C1C20D540CD6D2976126854AC123CD386A855CAA385927318825494861079AC84606AC0F1810EB78A8398740BE69CFA1777C61A5CC1D758AE28C072D6087C379A567648558AC8A1883734C64361DB33CDD156FD371A2ABE534B162C6E336143B944DC2309AAC106525D6586793A2B3420358185FC787C2CEE3875E3425BE5627C1D49313413EE498B17E8C295908B718B3C4A6E03024D77F1EC37EAEB7462E09C683CB9B272431EF0ABBD0422AE2569FC37902AB90BD2C236F4DA66D78301A61765A77E43ACE81102C7355749C1463B55F10E26727086D73A1800924C6B0EAB6EC905D5B01ADC538C9EEC7A25989B85F24B1F68B9A22637613E9ACF609A67CB20B38BAB1A8D81CBD22A5EA8C7587A13BF8EB8A37E5949084C26B4433741A31C502A4C412535FC6A1C5000057C65103027F78F81DDFC4A8843C59F8563BEBDA15DA543BE2146A3EB7B521700958BB2A5064923236193D981BD1E2920D00B1CFC504E32495DBB116C5BB7AA21B6CEC5C9FC0B1AB73330544E7AF5BB1CEB7C159E3509938D0332CF51ADD245606617DCEC688F117BFEDC27DC5B8B4884446861B592B720B53FB23CF08513F66C3B51833E51B9A63E297054A8C03F8BAA257C64C2C8A265A8A92052C41146BDB3A32CE0B7196AA33564806DAC33AC05A20178C2A0CB04000D484F0325C9D16956DA0AF88F68BB72B7BC6B122A486CC1EB01BD3027AA316C6D7C1AE7D8B9A747443C5D7237989A93ED939D905832E76AFAE4172D5F70589E54F7B5CBABB536E5F316B3D38911513B400AD83F7B2A3C72A6C09EA3B4F68129ED285FB99442FE61237D61756A2AD78B7790EE69748B79E42EBBBD6B9B0D803A3EB77477609AB2CEA5920128356C369878855126C22F1AB66A3A4C202892C8863B609F7926175CF1E3967EA93B7ADE7A8E6779672023DD5D81BD4D9345AF36A38DB17E96B8D85B7C0BEB586AEFC9FD9EBC585F071C1B9C34FA2283A60884A0CC5EA210887AA677D24192DB582F05117FA189C868A3CFFE8B2FB584686EB3D009733E1D86C07D6A9893C7E9410B4CA99A4A880B48053878A45340D0056031068A63113BE4B51A630016875541E099935EA92B2668AE84C5A183CBBFED619691038973CC07B72ADB803CBE26986C827AC75428CF183CD5FE7C9C719378438058F470B62FA977DD658F219983F97B517BB1AED01A478A18DBB89AC1B916419A3B25F388C276C190B866356EC84C33B29022286C08A34D26948C59341A789CFA168ADC0C7A73DB36A72EC6C2C688C06AA3EB1FBB25B7B828CC3719C7B2473719F4E2B5C4AB8A4FC172A132439E0E3AF22A1BEAE17BA4CF39A155925C62A4C9CA76436496646906630B9349A335A4852C01B018F77DA15A4A47EFB74A64FA803B5D6927642B16E3AB78D13894104882AB803DA0015B80021EB029FDA191EDB38370C2C4D0F1C9D76D776CF4750BBC0116263B65548CB51031748480225D85F364A0EE2F18E0C1A19203C9145BCAC3F175ACDF926D42B9CB6D987B9698167D775C04A877A460E47D24866BBA3564727EB2A2DDB6868899262404884A138B20B1AA21A7003E35A79422C35AC37059E59164F805AF26A4A8B3AA0A0931E08182F347151616C2C86B6A83699279AC00195449A1EE11490076A5FDA3F044A75E844AE996B7C6022B2E09C0992FC08A16C29686C7C20FA5394D0A7378202958719633281435B055F3936EBBC1BFCBC5F4105B32EA37E4A222368919EB5F07E0C07B6E7D229E4B51B3BB9586BDA9E90383F958B0C9777A2D8331C7E777021AB9DA0A45A14B8B88AC78425F19BB6048209223786D19F5463724F009C71CAA35DBC67F661AE04E5B3FC9B1D59119BC5506FECD01D6C574880FA8920C54A3204C61C717E47676692DACE4B48236009A85CC212F7D9447AAA52ACC65D25879DF1312D41F14B53EA0FCB973EAD32CDF833463EF73EED9A0CE2D09FAFF9CE3A06030B3021CF4360F3E4CF93528BDBE69D0655171BA7B6D93CC220A10D37E828E54629C6239EE13C0A73E58F0AB6632E764A840753393B206C180B3C333275DB3F05516FDE08803F7BCC10589F8F54793F732CBFE82658033694E6AA74823B92CB616433072D405E3B38A42BA35252A99CB0A568D51B4562CB3AF733AF7A179FC66CB56292BB1D796BEBB5C400F30098591447191A7CE6A3B2CC3FC7AB7B5C6CA02C6808BE45671012867812C2BFDACB9DB982C2893D150B6C70347091FABC0297356F033BDD6734736907DD3A9E60E4637E2AB768E9558339921D8C1A8218926815CACCA840224052D574164A4661AFD903D4516E43E3984B31554E5B666A9CBD332A9E6C63036D34189616CDB3D100331BBA659649EF0ABB86502FA994B941F9A354231110B8080DB75C69EC6FFCBA48642B0EF54479DD7995F7F9BA92F8B473CC7E31D04948648AF330AA09996E868C75BC3949BC3BC8E5923DF68B5DD78BAFD3318AE4FA6224B8A7DC9814F7B35839B05CB709CB1CF2C1E80AA879C58B29677CDA375A5E4229BC8431D48BB08AF0BC27F982A6723E60B00DF6E607665B7A4B4CB35E5162BA3698B7140AE7A25A3EA76DB07626AFC773854038B3D13654B7CF0A1A8E75959E5EA0797EF4A64538C19F0028DCB5CDB5803815467E57ACA68FE00C3352602897AA88021203A4B970EBCCA77846E5C01ADB22859E41CDBFA8A7BE9B932AA2C6D391379A035455D84282D5AB90D5B6DE056F211CC6AF61C1D5B643F8D299C249C055964C56906F88778A4600BD054850A9D92557AB2C33DCA2EB2857B9617018AB08F25493B265B10CE74889D8CAFEC53F7B6805BFD637A6B6ADE8A65D7F885C3AF645CF08BAE250753EAC8E2B734A75976AC9EB8D2633A980285EC33B154C1551162C81F0254D2EB55A7DB13F5D766330F65CEACB55FE058AD06686E50BC544B48F1358532603720079B7D0609E5B36B8B7E097D40CCACCF496F3F00FB957162445025ED62592FB61D41A28B16A1F3A3CC83B1B173E9599E5C49A41B93169DBC4FD006A93BB233EF73DF88116E091B17A06125F651F52D501DC86A856A96A43601C46F32B1FD6900A6513F7D298851B443242C62B34236C7495881CC3FA592EBD4397D5422F3C40CA62980188CB4AA3499D5D2799F23C7E86057A14476AB4C7668F1C3CAEB0A980D13DE0F3129E151C0813B259D53EFA07681048888DBC082ADC4DD324A028D48FE728701398CE20425BCC9B410687363AD771218285617A39F3C7BFBB2A6C006125D6FA6DF88898F7B236F7581A8A077038A06394782CE7862185F4CE98AC06C25B611DA7701A80329228391DA903607793BC8A2189A123C177AF9D987AE9D1C6D2D01BC5910F56514532D582CA092939119444B3B736ABC0FB5140E14C723B1C6ABC2034929A7EDD48CE3D469B16B09CBBA5008728BAABD54D15F427D2EB5E890A5A13224038328FCB227BAF6A7EA3B82AAC5844D809AD86B6ADCA537C2C0B4E0D659606F835129905A6760CFD68B5697B9A8EC00159450205CBCFC0F8C9FB8898F135298EE99A154977FAE7BAE16AB9325231178A764C1B10B5C427598490CD9539B69B1848980D09768C435233F52376371B7971D861C8612ECD160655E83BA1E60A553B4905D35EFA1BBF58318D78353DA822241A354B439B2449A2825D43212BE80483C167E6C5B50883412571CD2AC3C1B5AA1EC9C232E6B9B5A2091E189B3AB0B323FF13654BC60ED42857755902D063619AB98FD8790D05D85BEF1AB23A09A9C241A3CDEA620B6C338EB582DBDCA9A6AC40FEF7615091445A93B8FC2001E09816FFD54F7870B5CE6A4FBD46C3F42B8E63619B7675716BB65EAB17299B57C45C834226DCC6C1F98593782C9733A078DB34A137C5422CC1DD87A614C1604972559937102AE60337D997CAA06B0F33C43B093AF04595E5AB48A7A0966FF318A735024F004D6F1893B48B74B42135C43425C1CA48A93691603AB62D2B80FA5A92EFF7A218239B4814352A230CDC1249B09833BE95C5F46BC5905B73A82206BD6658464659293691EB58551973121A42385AE81AC9EA2EB6419A915441F41946E504A6B9D5716E909BDC49337909282C554F3BE4D7FAE86455763B97EC8FDBE9640219B35FC36033966A3525D485F1655D6F749B0A013BEC99E017F5E13BFF76680A2F9386F2AC6938D7950D5FA1F9CD2DD7A1BE89575BE8C14529BDE4D832CC005DEA955065C08B3185B215DA3A2D +encap_coins = 794B565FE52DB74E9C19E9364EE545D7CDA5A67F3850D318C3812691356E5520 +ct = C9CF688C98B47B72F6EBE4DE5A54D7020431D4EB212CC976BC3BB5713DDC8E992FAD49F231CC7A37B4DC98451AA774501F0AC0E5C267B0F8D621248D25916A18E60856046C5482C39CE5697DDACEACFF054316C1884E92202EE8A32AEFA8D3050E4DC7B64DA43C4765947BEDAC90565E140C019212015B0CA7FFD8DC9EFBE5C19629D68EAE2755169E47003791D028653975D3FD11C0EF44AC6418D6FCE15565D6CD57FF63E74966676C4A0CF45F35E0C171BFE7DC97503BC218F468BA3EF1FD02A6DEA931FA95C981EF1F0DFCC8268E3E1B7A3C18F07AC08AD468EC70540C9348D048D68A796BE7E8B17B934C12D837C8E2470B033E912854CBDF3851922048ABC4BBA7EB555ADE969BDCB09C5CEDE131817F432C412C45ECFCFDAEE2220A5A5D265ECA163123DF098996970F6C59A3A8400A341B83590FEFDF28F028512F1CD0D69CDEFC6B7E18D86D0AF80E6980145A1A5F738840445F1ED4B03E7D0C44CA76BDAA402C8AAD0F942EB036064541A7894164FA5C0AFFA9255CC7E8DB76F493872CE110DBDBF91FE0BD498CF5DEDFD89A35AED0F6F081E8AC876FFD5A02BE67EB0989A24BA4D24B9DEC6ACB0E70151FC458992B35C0FD65873ED19CC261B024167961D5690969F522BCAC36A5D916007453EE760CF4A65C0FED8571CF5093AE827DEB9A1C3503C19E7E95ADBEED6B41BE91481A10AC293CA8AF4C50D849F46EBAAE2BEC6DE26B0D0C757CFD2827B5248954890628FDA600402532E45839ACD518E69C2E6BE587700AD6F58537E935D50633F441DC365E460E01DAAF1D19BC3DD5DCBB4C1304568F8F494FF45784C221A458BE3FA8DC8E94E66D8C5552469993D055C7E90D8193122FE2C842DD82651954BD2693753236A9F4D766C5BE7CC81A5799CC2607DC3D5441ABB43C74FB75108C853E9434CD3A3E0798113338FF28749FDD13A6CE453284DDA991A1C3AAA3CA52B011A19DE60AF215F3E65E0D7DC728EAC87B0FF8FEDC96B159117341D5B887EB79B3D527EDB98A3796D01BBDA381F34CA66B0870884F3393C1CDB0F6788B1E6C6C3D9EF755CCA5E73D678C6BE48CFCCCA62242819F0D0CB50FED71CED07E09D42ECAD7BCFE467AAEAC54703C59C1BC80590F638523D18F5738AB2FCA8BBE47A742992D5125F102AE7EDD68A79586AD593E5488A1EF771903FF2E9B026E6F418975037D5C653F205052D334DE32828C0631A91A82332F3D63BEBFDA1C96557B4A1C287501B27716D1E3D720EACCC2295415E4453ACD940D3DCFCAD58F3203561E320CDF6C18311425583A08C7267573FEB5DB88612F1E616E7BA7330AC6B1A58933331704F41C4FF8DAECCCBD107311E006EB3C857995F421B77B6C29B99D7494D5C3BA6BCAB46B73EB484DBB98AEB29B7822E259C3463D25705E030E994F4514926A77D580ACA52B768B5867AB604D435C8823AC0EF5C32F3DE9D7803C7E11C0DB889F4FA535FAC9039E512338A798C89AE0A2FEB4702E54DF4D077BD05821483F7DB799F48E632D795E5F7D160DB82087642830E42A8FCA2786798740E01085884E135220C5792DFAEF876DD775614567E1B03C729174D42659593A3B17C989DD118E40C1D4841E009B8B2EFC333BF2411B0BF03257B1A9E254236BC897A134CF3E5FD1E132BCA98C4C31D3475653EC514495DAED1733D42667BF0E9FCC6ABA8F53316948D1DB404471BB7CEB736C6DC037470E71DC08958059519CE99656B1443D8CE3467C2B83840343F842FB900511F935B88A6579CF8535A33BDE7E8319AD91B6903885D74C724E6305F8DE2B91E97966821EF0BB50A7E4B3D9E0A484ACAD0E872F83AEFD5D620CF1DBC7BF7FF36EA2105DFD449A418A810E4EE6DF456AA77A4B73B61FD6BC6DAED5E6D2B6B0770585C64089B8C11764D8C2A28A5F4B4A2A727374D7B8C40EFA617192F74B44E7B761F502A897F2100A4F88B5A29EF4B688C7D0AB3B1FD32E5EECDE30B3442508BD4D98EB0308F9AF5E53AB755D03139E6E3BC4E15B318BB769C9C09BDDDF85CA76D5754082C7C8ECC8030949D4A0D90A9F67D63D8B2CD95D4AD75C78FCA7515BE342711D53A271B59CB3152F6279B11F954B40AC7332AA0668FF976D029DA55633FCFD42625B26C1D9509BB90FF76ECB3DD2068D32120FB666FBD3DB89FE852EEEB181B6F7B5C4B671A44613926FA40560B491FDC1F0ED03817A1BEE76B4DA +ss = A378F354DA0D03FF5D42C5A822F53A6AE955D6853BED1A9102A3A19B06C05D36 + +count = 77 +keypair_coins = 241191401A63AFA750F05662E354DDDBC683C776CE3222BEB83E3CF913D7ED7C9508257A83CCFFBD0677795070695CD40D7B7F39A891D25E7E208BB9D65AF538 +pk = 32A8B2861C097612CDB6F437E844B131E016F3299C31185123951B2901C5FB8296762292D6B37F5BDB67000D91974C77ADDA0E8601A03432C648848E38E45D8B9A45D8263E64D603E0F50D3F438ACC29CCBE54BF6CDB0500B50344A96837828BC568CEBAF055F070737F4771C8B4CB87230AFBE824D6312ED22CA5E2D4C5DC354D44935CA64AABC5A64186E51697B9444A50569861404BD7A9B76898A3626EDBFAC8A806751D328BC393B83525514C56B7727110F802CC41BB9C43666B25E26987CC813FB7193954A0258C61B4E13F2DA32CE3F1C030BC0081060A7E091929CBB729584A888A06610489F3312BD576666FA09013F4A191B498B9637DF5AC5610103DE4734C7E82C99062C34063B01FE2210D0BBA1A15406836275AA119042B5072E77523A655F41316B3DC31F39840446886AF337D2EA0C532999635786D9A6948164C361877891AD903A0C725289C4C02F81ED3452858D93489A07EA071847C38780C86C6DE1C22F1DB704A2249C6A96695AB22B9868D639CA4A8346AE0845AA8BA151E14941BF447B2701CB715456CB91B927C63F829C562628E01F88499A60AA69A0F3EF410EBB2698889711891B008C0B11A98C47E291B763039E5A214D35485CE4884317C5ED2449EE97566FE948F8F397864538CE789B2A1B3A654D0B13D23B8AC2869B4062BA3A27AF9F4468A216789B92BDCC8AC7FF2B86B134606A693A1915C55421E8260A872F57A73047F496442D7B1CF44830A8CC01B27B54F495CB984E732C4A40F99A17C5F469F311B6BFF9C582F888910DA60E6211C788C2FF2AC489F1163826B672E6ABFEFD917184B3F66D72DEAF652E6A596EBF5248A2809C3187C4A3834F220C28F55B589E161479882AAC21407E56D4C541282B1B330A7681DB50BF30463168733FAA52CECB1A8C2D51724B7AFE1976E42AB7FEFB1C234DA45AAFB803E80C972559694548EE98BA2C818010CA940F41429A8222B8739C872B1AFCA093FAAB792C3E965E7B0BD8850BE2498286ED9B8C9A6987577B98EC4A7835CAE03B28AE9130AC40C5AF971738E423F7F905A223A6C27752BFAF4C495874D0A984187631F50B8AA87EA806E78A1C18C78040548443587486171A11288D4D2A7D19B809EC8C5116575F3C47A1B419529112417A15CDA9A0FAB5B7968A0937B4C443DFA3D0CC893D4BAB60BDA28DA5A7A7FE6394F6B1DBB207B5ABB9B0157A029063EDEDA1D0F162BC536CDA44B598396772E4A3173AB4A22CB91E4B165A3587F687BBA350698D6F87958279E8176A9F52C7D99C55035164706139EE7923C64BAAEFCB99BF37195EA6B657D442097289DB24568D970CE526C11F507CD7BDC3FACC879893C33D35B734FB9928F82867C5266DC1199EE679AC2C337C35C435F90C8EBD0AA29E22A169BC36D605D5A2CB1EB914534F5B3D89A769D806DD87B0D32C63D0225CAC6AA1B8C3B7D9258CA68CB8086B673322716389876D85C71D2F5BD3D081D812AB37D026A34324135E5988FEA7833973D3B25AD2B8777F3F8691B5671D05B266B61C272076ED0D23604EC7A670C634A7074E889C030026A1B29C4B025C59D43029BE2C2A2665DC2F1423C063E1B78B79B550DB2281C3BC88DCED5345882B30DDC400A62BD35C52BFB063213947B89A91DF0FC0F34F53555853A8724A9D15A00B285ABFDB39E97B5AAAFB429042AAEC4D21303F1217A3C0AC7D249A3174FA8E67DE44583BB3549AA585404DC77A81756D05A42D650BEBC225FCBC132936C9741B496D1C95D8318B6B9B9A71C071F7AF5547F895FC4E313E3A262D31695B9471DD8F50F6E227C7774260D60AD56AC7608430F1C370CB917ADC3B7717B484B52158740740366A42D9F010C333611E0D29523B04618895CD91A21629146BF1870ED2584EE8C0A728B7535284AD30A3ED13339DB15B77A8CB2599954EFE44D0CC57BA0B0687D39094E034399973E2D09116B225F2D41A86B61936743806E41A242B63AA19532F19C5FCF0204329537E996A08BF52ACF80C39CE1938FB581543CC77146CD34A5223AF8BFFE735FB327C888208B5DD648D41CA209F976F6F226F853545A525F3DFB258C8074EF9A442C639A38459FD906A8982A69E29608DA98B4C4A59EB6EC04382CC584E663F5751F6AA0486BA48CE69988CC535190195D95FB6EC060B5257AC37481FAA2ECCAEF99C0DA37285D53BAEB0E25BDB9 +sk = DE9A3F4DC6A54E98C850E3AF0F7ABC5CB5B363BC668F2C10C6E197927C89E57088C4960C46B767E27129FE78C7CAE38717E6A2A7FC16DBC1582AC697E8915C90281A0A784C4B75345A13161BC6A586166D4385B507748D3B9516B10550F05782125C10F3761AEA2C631AFA83870C003950B891D96AE721317B192F21A50F2B2CAF49F81177790C29C02216759B005692CCAB4281927A46739FF7A9583E9A5EB9A62314E4967F5BB375FB627E5A45B918C801B4B1DAC24D55C13AA7FC5CFC104647295650B5CADCAC2C74AAAC28B82233F64C1C01AB50F16213154D0312C5ADD25AF449CFDDF494045000A01C449D1084C876163C83C13321B1F6F87757DC186D4C30CE916240E538F196936AB9BB419093FD593409F3A308827AD9002E5A621FB1387AC06B442970CDA9C720AC9049CFF1C307806E9FF9209FD0CC52B9517C685C36C45801875DBCE490163C91C707755CC8701AF04DEB9AA0CE460F24C72E5D811C4ECC297ABCC4C9BA304C75812196409C19BE10C494A8B138A6F05FB5558E7F2CBF6F1694E7D417F73781205B941EAA3ECDF91C71E998F9A8B6B72400A048A77CE4AD17EB265313303CC86150D477E42A39CB4B8C5A3723D03550F4B76D5FB7B524EC2658D374A8C955B0FB3FE878072EBC0201B2328B737F9F19BCA8411F35980890D71E7BD9707C917545AA6A659C3C70877134BBB0A1E970E7035021168C4A493CE1C9950456A76CDC05FEF147FDD625D2B4BC51B39F3B9BC73A35A06A7485306457544B88C168B22E81CBE9BB0174A2B526B6BA0641456A3CC941569124557D3BC652DC8259AC66552DB0AE06CBAEDD091C268C2C6F4BC7E948329778CF48C3B37F9A3ED714C5C8E0099036514D9A052631B256FB7E7F7C91EA0311B8DB8721D5001AE90991111C5873499BBA20A9D08A135ABEAA544706DABF7338497C578084E1BDCE9155F87417B29313DD39505CC90C45C12C324B5D5AF01EB2656D58607724725485465E33A6A64DA220421C038F0A625254AD127AC941EB23362649D2049F8AE8C057321AEEAA31E0E98FE3DA74D53938F4F900B6A33F1305A383CC12B35894AD498293957950010CF7912174373967C294BB89A90331C828048E3FA862FADC95283025E2F66DCA10104BE8B9F286C198B8C9F0F24C79A454E8DC0742283CBBA84B95B388D8F6912F4B74198AA52AB561CE59508CA6CC09251FA2780EC0DA59D8B12B17179320D23B822A3395466DAC34384A364D06882592734F72AB0D2DD7131196AFD4DA54FC5801D85928CF61BB257274C98479EE0C2F65FB985F6C669D948FAC153158530849311F0BC51AE72BB8C23AB5FED55E793A4E8489B423044A1B017273A4BE35A305E19934B99B45DD2734AD4CB4C5B368C7A32650F306B7148C199A44BCC3A297429CCA6015E906204C827CFF8C9DCD48BF1B638091F732DFDC570CE6618DFC839B4A4648A52BB8302E32098C26E9A51A6571C9C290005265B6359F07598B10C7674F5356B0365CEACBB55B1A1822811C92C44F0E4BBDA4A13364749C5384CA7670ACCE69BC48B6A0B0B2BAE8AC5CC40ACA6CE24957167CC0F24DD0CAA3A0228C13934FBBB0C205F53D713AA441F5B0FEB01FBD008209296CC096645DA876B961B0EF736996D95766BA0D9F89A4A9BA5D8E31AF9F5274BDF093E40169C9B94B0958AB9A585645DA158A6176C8BB196692BF52A8158D7C9C2CC6937516450F50BAA77022C748C19E68CB9BEC6C115806A30552EC242D81B036D840C3D1A9BC15BA4434D4176418686546CC38F35CEEF112689850B6BC3F7A3A544EBA0BA809153D4C3A21E72A2A9C09845CC07EFC1282123652826EFD0267F5C9481D8C5B07370015D593B1828DEE3AA6F55B31525B9EA8C9772740BA325B072E9211AA104BAA516E7F528202C5B0F6F8A4965332EB711ECC9A9E4B85BF9D0CBCA759093916C4992A338DC385C9280DCFB50805D95525D59603E8051BF70049698629267B2F29BB93F769B3C3B553F20CDFF72BB77811B39C276623C98197CB528B9F90E470DBB378AE9750F1405C11551E6962709A266E6717760ED607DB4741468A81AEBC72ABE9080B428B5844B646855F01F989378702A6894E24969FD605B261129BC0A567389ACEC88B0F15ACB1189718115556CBD99A32A8B2861C097612CDB6F437E844B131E016F3299C31185123951B2901C5FB8296762292D6B37F5BDB67000D91974C77ADDA0E8601A03432C648848E38E45D8B9A45D8263E64D603E0F50D3F438ACC29CCBE54BF6CDB0500B50344A96837828BC568CEBAF055F070737F4771C8B4CB87230AFBE824D6312ED22CA5E2D4C5DC354D44935CA64AABC5A64186E51697B9444A50569861404BD7A9B76898A3626EDBFAC8A806751D328BC393B83525514C56B7727110F802CC41BB9C43666B25E26987CC813FB7193954A0258C61B4E13F2DA32CE3F1C030BC0081060A7E091929CBB729584A888A06610489F3312BD576666FA09013F4A191B498B9637DF5AC5610103DE4734C7E82C99062C34063B01FE2210D0BBA1A15406836275AA119042B5072E77523A655F41316B3DC31F39840446886AF337D2EA0C532999635786D9A6948164C361877891AD903A0C725289C4C02F81ED3452858D93489A07EA071847C38780C86C6DE1C22F1DB704A2249C6A96695AB22B9868D639CA4A8346AE0845AA8BA151E14941BF447B2701CB715456CB91B927C63F829C562628E01F88499A60AA69A0F3EF410EBB2698889711891B008C0B11A98C47E291B763039E5A214D35485CE4884317C5ED2449EE97566FE948F8F397864538CE789B2A1B3A654D0B13D23B8AC2869B4062BA3A27AF9F4468A216789B92BDCC8AC7FF2B86B134606A693A1915C55421E8260A872F57A73047F496442D7B1CF44830A8CC01B27B54F495CB984E732C4A40F99A17C5F469F311B6BFF9C582F888910DA60E6211C788C2FF2AC489F1163826B672E6ABFEFD917184B3F66D72DEAF652E6A596EBF5248A2809C3187C4A3834F220C28F55B589E161479882AAC21407E56D4C541282B1B330A7681DB50BF30463168733FAA52CECB1A8C2D51724B7AFE1976E42AB7FEFB1C234DA45AAFB803E80C972559694548EE98BA2C818010CA940F41429A8222B8739C872B1AFCA093FAAB792C3E965E7B0BD8850BE2498286ED9B8C9A6987577B98EC4A7835CAE03B28AE9130AC40C5AF971738E423F7F905A223A6C27752BFAF4C495874D0A984187631F50B8AA87EA806E78A1C18C78040548443587486171A11288D4D2A7D19B809EC8C5116575F3C47A1B419529112417A15CDA9A0FAB5B7968A0937B4C443DFA3D0CC893D4BAB60BDA28DA5A7A7FE6394F6B1DBB207B5ABB9B0157A029063EDEDA1D0F162BC536CDA44B598396772E4A3173AB4A22CB91E4B165A3587F687BBA350698D6F87958279E8176A9F52C7D99C55035164706139EE7923C64BAAEFCB99BF37195EA6B657D442097289DB24568D970CE526C11F507CD7BDC3FACC879893C33D35B734FB9928F82867C5266DC1199EE679AC2C337C35C435F90C8EBD0AA29E22A169BC36D605D5A2CB1EB914534F5B3D89A769D806DD87B0D32C63D0225CAC6AA1B8C3B7D9258CA68CB8086B673322716389876D85C71D2F5BD3D081D812AB37D026A34324135E5988FEA7833973D3B25AD2B8777F3F8691B5671D05B266B61C272076ED0D23604EC7A670C634A7074E889C030026A1B29C4B025C59D43029BE2C2A2665DC2F1423C063E1B78B79B550DB2281C3BC88DCED5345882B30DDC400A62BD35C52BFB063213947B89A91DF0FC0F34F53555853A8724A9D15A00B285ABFDB39E97B5AAAFB429042AAEC4D21303F1217A3C0AC7D249A3174FA8E67DE44583BB3549AA585404DC77A81756D05A42D650BEBC225FCBC132936C9741B496D1C95D8318B6B9B9A71C071F7AF5547F895FC4E313E3A262D31695B9471DD8F50F6E227C7774260D60AD56AC7608430F1C370CB917ADC3B7717B484B52158740740366A42D9F010C333611E0D29523B04618895CD91A21629146BF1870ED2584EE8C0A728B7535284AD30A3ED13339DB15B77A8CB2599954EFE44D0CC57BA0B0687D39094E034399973E2D09116B225F2D41A86B61936743806E41A242B63AA19532F19C5FCF0204329537E996A08BF52ACF80C39CE1938FB581543CC77146CD34A5223AF8BFFE735FB327C888208B5DD648D41CA209F976F6F226F853545A525F3DFB258C8074EF9A442C639A38459FD906A8982A69E29608DA98B4C4A59EB6EC04382CC584E663F5751F6AA0486BA48CE69988CC535190195D95FB6EC060B5257AC37481FAA2ECCAEF99C0DA37285D53BAEB0E25BDB91C3C2AED0FF6944819C93F9A9FE77D14A16A385F644DE118099FD4F7F57DB9A09508257A83CCFFBD0677795070695CD40D7B7F39A891D25E7E208BB9D65AF538 +encap_coins = 848DB3A6D5CC33F17D978A283B8267E45510CF6C6354EDD5E2476821E12BE3E5 +ct = 8F2A0ED3B1E7F81AD4C00D6F72768CD3E1FCB91BF5C44CAB1167352D4A1346C45E180552B8D1347E5FABF8E4F3227C92D320520DBC8DE28E42274899019C9A582E42E87F427BB6C8F530BD012F562D3E3F3E468ADCF30E7FD60CCE4FD4824F6534B09C9FB66578693D0F0A7116744AD09940FC0A9D06D583DAF40ED57D75AA059345C62AC509EF203CA12B4B93E4E75E700256B60F1396BD763C1E5872DFCC89EB73452CAD1FAC26D26486655D997786B22BE4B9E0D9239ECECDDA267348AE3B67D1AAC2C7C48A3337B85ADD4E450D6ADBA06B3B070682C458E4E7FC167FCF5F0970C706817BBD690FF528F9D0BB4956C5B73357CED473D04F2DD2B69EA73E50FA899FE60E768EBE7DC0104D7AB6AD9D2B70AF7D3BCA6694ECD6BCB1FC0170E9C53DBDEFDCAB5894CE951E2A6EEB1906C8D75784882AC4B0742F30AE47690E1B64AAD6C499D2043FA8E5AB08A9F939E450F6B128B06FCB49CB0C6A53BC5B63EC67316CF9D468214D051A11B7879C5CB615935F5C200BBD2A04C0D6BF3362639CEFABD150F35DE76123BEA4E08EAE488144B44F4B05D60A386135D18B112AAE25C2DBD48B9D230A15625902FD3C1EDCCF5AFDCF5EB119EF01ED4B81F41A3BA7D680FE53C92EFF27A42DAC48FF4E174E8F02636143303B4EFCE7F543534ACE3CCDB2CEDA248EA6F01E89E347D664DBEF5BCFB24B6882C7950A6EE0A7D0DCD876883D88A12A9DF6D5575B1DED4B82FB1C742328D7622AFF2C0FC14907529E9502D7F50772D76AFB22D44F6C427FAD387CB426B9C33C46F2DDB827B67182F91B66DA1BA29BA5F570701B1C7404FB8A2235EE5630A5723C875EBC2D5C8D51B8C6DB276315A3AE1E5E8175895BD4D44EBB395ED1B8D4C3AEF2CEAED28AD8B7768961A5F403117C02F56984D3FF32B5E6315344D04FC0326B0FF525A94F556E362E0217F629E0B0A7265D315B45C25158B4913AEC03E5EE2CBFB6C1BAAAC89A8A4502F564B8068216A265ACBACDD2BB9E4E4E32E874B33AF8992EB23BF8222D387A9B99FB30C2E5A9E47735DE7FE7617419B9217CD16A47944B1A090029971DE04A0AE5A5328ECB331E3F52584F3B3F1B849E9E51BE1E7785504B7B2AA30E74460D745A034D1281AF5DE1AFF4C6652C9E676461C009101767C7BACE83776A90848C501DBA68E73568532309C950298C8C26955FC7B558E881CCE96D401DD033382D1E987CC7865D0EC7CC682BB8EE2FA6B3A28B807EDE1FAB7AEB8C154E0D58246346AD357F4333FE365CCE1071464CB1AD8C198DE2E1E0DF3FCDE2002CBA74D0FCF4D9126A43B36F60022D51C53DB43651C26BD09B1CF86F7E429C5F5FEC74B1846D46940992FF7A5D2E2C55697635441087C88A5256D58AFCC35FA5F47580D3CC17D1898B888263F72D18FEEBB525352F1F14E39F7ED27B54402701E394D7645707E307B3F53A366DA9E0EAA616069922FC5BD202E1F18C922F5044AFE487D89631D967224B637EE567702F0E60803DBBD4C92E12CAFA869D1532B45B13FA47409B72C624D3578A528B263D3CA228ADE26D417C830B7AD0856E75AF8CE2A740B8AA89C780ACE07EE922C7D2B1563295E5867677E9A3A7F3708204155A84B22023BCEFF5F7AA6C805C15EEFD2F7BF6F0EEEC7DBBF0DDC0E44C520B605DC8731DD0B1E1985E2570C067524275804C68FD491069D15CF211C505AE7EBED40CFC501C769DCB980328BE406A0D29DDE6D35D7C312D291714C4962C9F6EFE3220140005F15924A129FC4DE4736D95F5F8C09A9C15EAEEEC8FD5F53B09530A30D69A6F6D0E731B56DF7E1E5DE7E96CD1DAE179013D2EF5E8A2F7CE8D0092A3A7F129DC05394180A11DAFE9B178D38635B037845E7A067C9CF3AE181F8D21D404678200660D0D1E7174D676450F7BB731E9F7FAFE3E4652D5F19EE75FE6FE202290D546C8AD63BE71B196B4D3C294EDD4600097F36A3E3D498AD0B65B7D7C8F828D0F67EFEF275A2E94E0C21DDB53957DC812F03A9FDCA54261E02BC808910BCF47E59E9F0D97EB962E7CF044AEF3607ED5D1667766698B10CDC5CE2F14A2EF76187C39F5E6C4CCA9E9411D6629A709650D77D73470FD2FF69359D167DD9ED8556633E37A2CF5A8869E80D285D116DDB649DF8C515F472B13C9102FC0251CB4D1C020D18EC108B30F021503E63F1175CE658D6676D4AF5BE26BBAB9CED95FF695FCDC5F61E31F +ss = 7591AC558F6F449D2F0D788D8EF2C62C4707E6DB8CB3301CC830010DB9B643FC + +count = 78 +keypair_coins = B9A6B0C05677E957D41A34BA03BD06F2A9092E31F63389397D7E70FDE6409D1824D67704139CB68EDB8F14C5ECFFCE83828208EDF58C0F494FE3CA22CFDF58AE +pk = E0F7B1CAB23A3379CAF84AB285E12EBDB602F431A82E0B098EA1A1F18B18411989CB1B035D0726865712F5CC1E6B51674887B0E00C2EB067731DC8419E64B816955B407A1A813666D73B53D7955639A877A961B4915483AF565B006DA5423C5644AB3F243C7AA64C5233D4B9A391BC55B30DCCF33DC1A93B9B784C7C3429CE8684E1910800739839BCB926374932A7241267835CAA9131818EF9AA4EF5C1A3E2F03BFC83076D8A827C082F0D0C2FF89A8FC2E62A96396DD411259D26C7B9C84BD38C557FA45103F3B793097EF6B775F050033109AC7C606E2CB05497C9C596639A63171F5E70775DE9C545B919B9E199F4D76508549EE1EAA404F5534EC862E6037B5F484AFADCA26599A203825297864EF536CF578C277B6541083168D14B3E782A3DED29BBF8A8B1A0F831658582B68B8744C66EF3F385B7A018E3E5CC8C581198E2B4B372002EB756BC7A65A4D67C86AB022F549BB97904E035173AE9C1073A9D23A315D054CF0E3BA27D401BB04569065256BE9447A06CAEDD97871B52624F43916D475C7539BBBBFAB35C0864C8C77B12242797323BB12935BF5A08C2EA4D446305A7345DE980A03067513F6402E14B29E7287E30194DD76856ED80C55BD65849C1135D398994007B1F14A452E36BBE7283CA7B3ED1B67D0FC3667387C9B3C3CD8314515CD2C4E51B96A8D43A1C755C65740BA9830F65356290953B9DBB03600B18F4681F6F039379F26D40F2C8CAB57378B66AA245197CEA225EB9B712C95C4BBA470B07BC6C458AAD71BCE067B0991036F5F54636248C516C88EAE013232C0191257CD0A6322704C9A6D005FC80C6C6BA0636E701BC5847C091045BAB969AB85F5644A5F8F43858C94B276201A7E77AA5C413C57B40726302559762EC40178199526AE63279FB510C8917AB40C1B1BB15DDDB6D1C2B22520780F222C15AB2A16BFA28753A61A949AAEA6ABC3E3083A467110334A959FA582261561D3C8FA671AD34B8B7FF2B682020651935CAB1B227D75261E3C98930961457A955275734D9F41C61069E1A5569D38A1A1CA1876E481D94851E62918FBD550E45FBB79A7130643BC1FEA1C722675398498C6874AB1A7997008A166C9146882C37E4EB64C3E306D2B2B4C1409A81DA2122A5360430774FA56C5A3520A7E870AAFB55773124D93B17451C01C7E21BE33A9DE7A500FEF26C7117C13599024EBAB75BA9710C5465A089375B2A751F5C3EBA8151BDA4182FF3280826C3190B9B11B89BF9D151C4A939510007378895F916BBB8E107031459E27C9EE698A269425EBF5A484812271EE667E8C6B9F5AB3624DBB09C5B83D5FCA7BD54AF3B33980EE435CD5A4E3E6BBFD82C10C997ACE9E09F77CB9FC4F8C13B25A8A12C52C7729F22A3290140C7AD0480C00A175DB293CEA64D422BAF4BD306C5D446D48B062F751F47891A8FA82B9786148C364E4DD85507C07A9B4448E57C2795554B3CF53D5D14AD3179669862123840A7AEB57240D69ECADBB48521C196DCA4705671B1E566FE59B08CB963F417ABD01A1915A33367508CFA9C89413B7709EB48E9BC2E809A56B027B6DD3A513A2428466C29B6AC802F9A83536BA1ADFB96270C57A0743C12733525311E8FD04E12C52F15468E84C6AF54D8BAE8214C152C56082465B79A6CEAD444AA767571CB1351E4CC05A8A75057C5745ABB125A5382CB8A3EA2170C104CA21CB5DA000002B7231A8A0A23E50D173485C7D1CDA9E8C1DA913161E34FE0A986ED5C1183D383067B7DC6C75ECFE4C044C7ADA3FC8010AA4E8F28BFA72C4D21F170569165CE1762248370B8CB76EF5797253567FC98A2856870B9CB312E4A3D93B506A8554738E522E11BB3B7976F9AB17CE8A190B0CC810258972A10283C21B9FA36384AE0BE5556AA252A59C1AA7617B480729C0272576DFB0C6108DB290A0CAFB8588F6DB8B933970EBCA0933C9382ACAB4DC0C75C4E9A469AD60C86D7474440B870E7958B600B6A3B48CB13C938652198C183347358CCCB4D45AB3A4FD7C7730470C2218726157F89FACC31B6449FD6B4666081572CA291BA6E3657165B053C6A239876CA5EAA0BC659B0B1635942A90B39AEB6B22F2C521BAA4AA98579FE79B541E3ACC5D006CA6586818664EA6108BF0080966BA83C77AED8FB2066C94458E70A90327B7C13C809696C0E4711CE152577517BE0A2FB3D597FA5804E0C106A4C10 +sk = C65B5692B9737BD5BCEF94376A685FE08CB59C2B94884B47BB6A4B292C4EF8DBCFD1D9392BA3C464442CBE0879FAC60CB733496FFA7116011CADA07377EAC759172DB45C9035532A5A48C18F3343E7FB3A0A7A1DA9C75F647648A822BB8FCC59A2E0476FE958CDF968433B46EA296056A8460EDC0B7D4430252B227CC38C8DFA639A72759DE9325D3BBBDB1A5305E546580127B11332BB666236924FF1F13105176B81A777EBC946BD4B962E8050C0F80BE026A513F7C9C74308F8336A9BC73BCABC8353AA10AFB69AA502B3B6E9A53AC67F8CD8784BE4519AB3C6E8E47212BB59EC3958BE442BF2162DDA987C602030770555C0BC62B1422367B95A91399642155CD0B17DBB848B642C765FDA2400358040D4CD154A68DB36265BB525FC90988FD0C04BF0B66CE052BB216D6183B444CC385BB8AE17388D5E8024AA41563653B5F72899CC16B37D642F6FF7385F557C941571A1C73BD9425FEF3C343ED9B88BD02A9BE5652736AE69949E43B5C9719C4B8E42C9071C10E3D454B3C90D315C93579CB106A3B16BAB7163983F5C514B818516BBA802B7FB1166679EE03C4C41EBCFFC6322DB61A7988927DD83B48C24BFE82A4FB1901F70E2C39C411FA65C43D56C02C79849E7745BEE15B70E405939B055C2A76FE1021E094B4671A290F5D708EBF0B1155B94FEE9B34CD9858D3A8DD4BC27F5FC0627F2A80D6681C11324ECB74639540B72A23083C3758CB29AD40C979B42679E1436FC56B3A7D1115137015E2A2AF9A8BEF038B6905C8847C16558BA2BC6EA92AD90B026228695D664720C15E6708B0934064760A745EA4A5587BA211312C7203005F838A2D5B7BB09B8DC7AA39D4956D494472F71A268991CA907AACF8048FC98C095798D0EA043C42C437F6762ED3678B6D701560016F405CAD66117C786B56B3A88FB5968C26869F73A2227B129553B220F67CAE75B5433B29259553AB4375A0AA6766B2AA0AD480B6969201ED21CCDA0A39F8B8F565112565065D8D26DBC1A57425A29FE0A606BA826FFE45A69493B08B11712E88A2B4B0371DB5C0EC0125E2659ED08275D18277B9C0CA51797D46CAFE91951737868483A418427733EE2637B4AA9496C30FECAB67B0B7278A76DA2DA201874711E6928B7A40E7859378C867B9BA81529656200584EA9A5881B657B68980EF8CB201338AC1B856C4EC5B0C48A80BCD6676C0CA624F05296E59155D5587C2C20BFA1BEF1005BBE9840DB205D9658935A67614595BB3FE48E52877FC5BA639D023F54D534C58CB90A0A98BD1C2E9E940FDC61193D4753D17463D7EB8C9C6575E0F6845B5C0A5BC69C5F90128D3078960671394B75C5C72EAFFC1E8EF4AFDB395FFD40A2F6BC75FB9B79E1D8756705B710B0BAC1DBB4AC312FFF30745590739C08BB25CC9EC62CAF1226176C161ECE62AEDEC392A3591EC2AC80E92571C1417BE7D82B2F9A1990D50DAB78C1DEE631304AB5AC57274846A8FDC6547B224C72E0781B233FF8A6C876ECA3A3E060A00B560F661042E85340C4A8257660C0592A429C7B81B5137D410B5492864E156DAD292DABF59035FB0E02247E6C6847CFD86B6958C74209A8F389041E5389EBF5B9B633B7FCC08CFE14BA466A36777830D840B5FA9B7234403074861984E0593C72C3D5405BC375255E239258B47D782056F106A4F9A493B584909006061CD98EA65A8C131B6AD696B993A66ECF2C32AE1A12E24C83C7B696EDFA64B69B71EA7A02A85097D25BBB21FB1475D250D64A9C87598AE12C0DBB7BCABEFCB48266B483AA5310E2A734A8519449BCFF963C4C10340FF42E2DC883D9C15D744A9BC2D1752383B6C9409E29B331E87C27A11189C41CB8AB182F82A920BD7C9EBF785B09B5BE32813E8C128139356F4D60B2CF5C80BFA609B9026A18360DBDFA75D49755DBFA421E9407DF6218333331E8917955A551A7F962B8E7BE6CD43A8A35318406471161205B5A71E238B911EA2B536C861B0208B654A1FCDC0B77E5429379295354CCF6E93D41C2233852451C8B44B151286020B4093988FC23C533FB83C510720A278E75EB047A86AD2654225CD0445D7B9585873672522E3B18C9BC74AC2F536B5E6BBE6C1A250E50183C16BD79A970BBA86693CC508094091E207600009D3893B6AD96433720BAC145B6E0F7B1CAB23A3379CAF84AB285E12EBDB602F431A82E0B098EA1A1F18B18411989CB1B035D0726865712F5CC1E6B51674887B0E00C2EB067731DC8419E64B816955B407A1A813666D73B53D7955639A877A961B4915483AF565B006DA5423C5644AB3F243C7AA64C5233D4B9A391BC55B30DCCF33DC1A93B9B784C7C3429CE8684E1910800739839BCB926374932A7241267835CAA9131818EF9AA4EF5C1A3E2F03BFC83076D8A827C082F0D0C2FF89A8FC2E62A96396DD411259D26C7B9C84BD38C557FA45103F3B793097EF6B775F050033109AC7C606E2CB05497C9C596639A63171F5E70775DE9C545B919B9E199F4D76508549EE1EAA404F5534EC862E6037B5F484AFADCA26599A203825297864EF536CF578C277B6541083168D14B3E782A3DED29BBF8A8B1A0F831658582B68B8744C66EF3F385B7A018E3E5CC8C581198E2B4B372002EB756BC7A65A4D67C86AB022F549BB97904E035173AE9C1073A9D23A315D054CF0E3BA27D401BB04569065256BE9447A06CAEDD97871B52624F43916D475C7539BBBBFAB35C0864C8C77B12242797323BB12935BF5A08C2EA4D446305A7345DE980A03067513F6402E14B29E7287E30194DD76856ED80C55BD65849C1135D398994007B1F14A452E36BBE7283CA7B3ED1B67D0FC3667387C9B3C3CD8314515CD2C4E51B96A8D43A1C755C65740BA9830F65356290953B9DBB03600B18F4681F6F039379F26D40F2C8CAB57378B66AA245197CEA225EB9B712C95C4BBA470B07BC6C458AAD71BCE067B0991036F5F54636248C516C88EAE013232C0191257CD0A6322704C9A6D005FC80C6C6BA0636E701BC5847C091045BAB969AB85F5644A5F8F43858C94B276201A7E77AA5C413C57B40726302559762EC40178199526AE63279FB510C8917AB40C1B1BB15DDDB6D1C2B22520780F222C15AB2A16BFA28753A61A949AAEA6ABC3E3083A467110334A959FA582261561D3C8FA671AD34B8B7FF2B682020651935CAB1B227D75261E3C98930961457A955275734D9F41C61069E1A5569D38A1A1CA1876E481D94851E62918FBD550E45FBB79A7130643BC1FEA1C722675398498C6874AB1A7997008A166C9146882C37E4EB64C3E306D2B2B4C1409A81DA2122A5360430774FA56C5A3520A7E870AAFB55773124D93B17451C01C7E21BE33A9DE7A500FEF26C7117C13599024EBAB75BA9710C5465A089375B2A751F5C3EBA8151BDA4182FF3280826C3190B9B11B89BF9D151C4A939510007378895F916BBB8E107031459E27C9EE698A269425EBF5A484812271EE667E8C6B9F5AB3624DBB09C5B83D5FCA7BD54AF3B33980EE435CD5A4E3E6BBFD82C10C997ACE9E09F77CB9FC4F8C13B25A8A12C52C7729F22A3290140C7AD0480C00A175DB293CEA64D422BAF4BD306C5D446D48B062F751F47891A8FA82B9786148C364E4DD85507C07A9B4448E57C2795554B3CF53D5D14AD3179669862123840A7AEB57240D69ECADBB48521C196DCA4705671B1E566FE59B08CB963F417ABD01A1915A33367508CFA9C89413B7709EB48E9BC2E809A56B027B6DD3A513A2428466C29B6AC802F9A83536BA1ADFB96270C57A0743C12733525311E8FD04E12C52F15468E84C6AF54D8BAE8214C152C56082465B79A6CEAD444AA767571CB1351E4CC05A8A75057C5745ABB125A5382CB8A3EA2170C104CA21CB5DA000002B7231A8A0A23E50D173485C7D1CDA9E8C1DA913161E34FE0A986ED5C1183D383067B7DC6C75ECFE4C044C7ADA3FC8010AA4E8F28BFA72C4D21F170569165CE1762248370B8CB76EF5797253567FC98A2856870B9CB312E4A3D93B506A8554738E522E11BB3B7976F9AB17CE8A190B0CC810258972A10283C21B9FA36384AE0BE5556AA252A59C1AA7617B480729C0272576DFB0C6108DB290A0CAFB8588F6DB8B933970EBCA0933C9382ACAB4DC0C75C4E9A469AD60C86D7474440B870E7958B600B6A3B48CB13C938652198C183347358CCCB4D45AB3A4FD7C7730470C2218726157F89FACC31B6449FD6B4666081572CA291BA6E3657165B053C6A239876CA5EAA0BC659B0B1635942A90B39AEB6B22F2C521BAA4AA98579FE79B541E3ACC5D006CA6586818664EA6108BF0080966BA83C77AED8FB2066C94458E70A90327B7C13C809696C0E4711CE152577517BE0A2FB3D597FA5804E0C106A4C10357D61586F671648188F070899D2EB3408158ADF5E8056EF37AB6D8817CD827524D67704139CB68EDB8F14C5ECFFCE83828208EDF58C0F494FE3CA22CFDF58AE +encap_coins = C1C78CAEC83245FCBE98A15314940686FA06E675E68C24E069509CF1974AEE78 +ct = D42DE7ECBDC673229CD0B4D077A9F2423CD1D1451C7572FDD92DAC0EB0240A907ADAF57BC6C318989577ADB79F0D7A5568342A3B2484ACE373332D99792940A39731FA70036848B3410A6B7B6373FC57E9CAE3E78EBAE3138A023CCDA91B7578E29CCAE259AF93276BBFCD4989BA4CE06C8DC6D33F6D3B91157A9998CF5544162B2903282451A54191FA3395053C9386FDBB4B98CD27DE718D06F95EBB17CB791D2F29BF9EBA1A784069FE3F7EA329BC3B370CAFB03CB7F613FC560F30352E14CC0215490A331283D39D7B0ADD8C54511A682D4EEDB127B60A9FA13A94F57CE05BC6D7B57227A79C8194F89F512E532A043BA3A372434A7D9ECDA9B10C2451CD2A1C8C38AC54CC8F263F76A3E0A2E7DDE6476988B5D87E578921F971FF4ABD6E20C7BAC237B080FB090ADF91C5108EC468AE6B7EDA54E0BC16EFF2AA0D9881F19E71CC6CBBE59CC2218A9EF55C56E06DA4CD25E204A2E85F2CD348D126391173D0CD3227F819406A80C9B018769F784D574BB3AE327F57D3649FC017DA95271FA3FE8283F43B5AD25611840377093F4BBF4E4959656049160E78149D5DA3551CD96A2EA732406F8F5885D8785392EA9E0A34E0CCDBDD95297364FDB13C6024B55223BD78DE1EE9CCE074D5DC2D6EC267290A77871C647F3CF427008CAC2B21408B5A3565833CC811EB3404A8F37B9839E9C738DFC0272B084A7F4E459C5FEDC48A748BAA16D447207A656AD15C9507391D4C4226F4CA03F64421B90E0F0C09E4476D53A1138D835D0B449E0AC5DC892907E1A236B8CEFA66D1B0952E6FFE58E556C77478119D42839106EB08C322D585B14ECE322B9645224080C5C17A6FB8407A81A733C6D70E6B5D6B824EE3C1FCB2E73F46D1514C2E05B04B17CBE0CD76B23EE8319B7F36A53937217CC1289D967FE0F85625834B252FF6E6B9442DB6B26F03B09F8CA48B9DAD2D0770C31E7D5ED4407D67422742713176DB85879A5D484C43BC248C87DD235985A985C091086E7FE7EFDB2B3FC0AF56054FB426BAB364DBE48F72FC1561CB675634CCCBF5FD8EE412C7043360CD3CFD6D1DA8EDE344A8BAD9393E23355E3909DF58FA6CAB602647EBE4E2E00BEDD636382CD8F02EBDB1D5B05EFBE0DB29DBE5E4DD61A0BEA74596AFFE824F739029ED6C79EDA82FAD7E066208EDEB73CEF56F28800E4E008E3ABD74EF16B7CC538B36B0F2022984C48A0328D4BE89400066B44EB08B3AA4F04B204AEC8D5676286FB232466210CF738ACCFB701F8E37E96EBFF980E495494723862013808E2DCB46C4AFF167915190E4BEC01384D8CFEAF9B60D958F9D4FCDE2881D4DA0696415C793D15C301C5DF49F185F1CF7209070B041CA4430BCB313FF9C14F7010A9B0A7D2F10618D414C3957512F5532B839F484260ECEE502F1F1537864E88FC683C01675F6480B45A1C5F5C35D0CBEDAA82BD742DAFB8DD9C800CB3D29DADA1529D92F5C1F00439FC2BC420895FAB6BA169A551E31E0CB1735679A57084538471F60CA9CCB48BDD52F5F64955782205A4A670AD11D220061127E389F1C9D9FADF1853D43F5A59772FBBC3F0E2410AB20E1D80691B51E732D5EFF5A8DE12FF272C22F1272F6E5B063695757CC99B0DB59D796C0ACBC82A348727397860E578069E8B3C1CBBE4A40C368374D0C6E3CEA606A209FA3F56F3CB4D1F6C5B059192B419C18C8127C9CDCEF110F967C9FDA203CFDDDB9D9C1134C80C1CA3B9A3B21D6E08FCFA6E9B74831B4B2B1F5EDF526D882EA74345A3275DEAD3B9D3506763248884E1689D2CD8CD0AB19E735BAF8E18DFAD066D797B8CD67721BEAB73414619DCB5E4AF17DECB2146A32495315097C125E1EF0E92C982EECF1628D799CF6F6C9404A78BC29F02B4DF2447FDE94596493EF562613FBF44E4D5933DFA0D3118B18C4FB480B9BB78F7D31634E49CAC3CCB792F757BB79728A9D521A42234EAE3E647E879284AF63A9BD034F8213749C0532D6C6AF8EF94EC09F91F4DCD86E4599BF73A2BB6954F2CF0D24B69753AEED4971098A301D750E728174CE90826CD8DB752219ECC38C67D2D8206C88FF6D2BF17A3D01719F8EA0BCDCE505BF71A6029E6741123EDBE611D2135F5F5DC5964064E6BFABDC29F61239DD2E56B018B9653A4618CF0F7AE9971E6EBD9DF1A1305482950C684865F0A629A7AD63D22530A8F254C622A994D874833636196DABA8 +ss = 06021B392B2A709F9E0855F12AF3FEBAD4943D55E1F925C4A0684B2E04254AC5 + +count = 79 +keypair_coins = 28A96C71577BA00C94F99FE965BC595A26DB2B3CA6AB5CF8E443CDD8462B1792CE71AC90659FF2DD31B35C165D3929CFA5E94407A5A798C568E6098F631923EF +pk = 2C12BE5E04521DC3892AD41CBBD769AA8B79CC9801866C87F7194D89FA56329100F63788904C7511533ECC5B8E7FE45659BBCEABA74402605A84F195925A71E3153827A5B417E0B994AC6355071AD98B1328F919D6F8C30EC7AD3366683AA3472132C801E59176711E2B20C251281311A6041AE71F96B9AB225A35E6273B5878BA6E362BB1AC896A557078495D1ED08264984357498D119706B7F4BB42A8700EAC4E80164E19C2263A425F4FD18F39C2B3E6D70904E7481A14030B40BEBC26BE4930A05B4236436698EC5A5591B88985159CFE5C55D7D84AFE7A9BC6999B1261355BF296BE8726B04A066138C714B229028B2DC5E5233CEC7ABE672A0F67572EE2A0B84B6F231A37BDAB5006A9CA184CBB82948C46B6882DF10A6BC12A8E637D3D437023B99197C207ACC2157C43396BE138EA06ADC0BAB4AA2ACA95D5989CB6B9F1987A58D52B0B460956452F6C00D08A188030BCAFF3E9CE91AB88DEA04547BAAFF1D64BFE3C2F5050A398CCCEF166A6FD82151738B227C04288E8BBDE4C45AA285AF2767D17B4A66529A06291757CB52EA67865AFA5390A02D0E93226EB200A03FC0E83203E08390AF0875F2331B8076259D9378DC77877652747774B85064B878B816CB30C6341C4529FD112B1857D2C2C104A57C52E6C7ED5274873E43303238D19F21447CB45CE568E3CA4863BE289E5917E38B4AE2CA117AE7A45B29C345E8A463CDA4264877964033025B5A77E8824B928BD2305421B810732A1A2A96225CEF965E46369CDF15E0B6129B5AA061CB88688FC0E0DA00D71612A56085BE7D24F88B4C2E6B7125A58C253C8272B04A0DF60485147B85BC566FD34CE78A95A235916729778E4B521BA59B4187A34F1E5BC47C6AC83FB82428C30796B5629E712B8E3CEEBA7B32EC4A4B9E115576A6F74495A7210C68AF925C7CA5F0818390EC408757170C8090C4EC78FC312A1D9A4CBB4533A00C5ACF67C845E9B7831B5824B44A0D7B52E32BC1799B649497B4542970A50EC5A412594D50234CAC594EFD1B415B777CA759EC6C51197177DD183307313A3EA9B7976879B85703BB81ABA1AE3727E962C0AC0BA7F60CF0CD6C8E863A0C6F395B41935FFE6B56D7026A0655D2176BE3CD9537C227CF79243E09A5D04783ED170AF46ECC670B16A47803FFAC59744AC514D84AA544350510706AA408B91E1BBF4387D13E05FEEA35263446BC7D32648C8131D1B53D8DA5AE774634B85BC77742128BB984CE4341D1B05CFF711EE33AFF31B849C66791FD5259721BCCFC8A1836CC95C39540652A305C410E61A980EA5B720C472683811C7C596B635072FE7589C1700D72BC2A84106A296636107454A7A47C66A1234A3A3ABD91CC7B049738B6AB7D70F450C64DAAACF2CF9148C1806E2308F9C883875AB36FA20593559CEF890006EAAC701DB9D80A762C448AD14C4B8DCD22C2A4B26FF23912E30C1C4F0467762B39689BB9ECCA9AE56BC20C1347C6B4657D780D0A6C0ABE904C9FB8B7769C550A11DBF54BE2F2B4FE895B74002CE859228EEDB676FDC15FC52C5A0679399205CB0B964E8E3576DAB64F21741009082B04A9A4881C91BE1CE9A68291087619B8922524222B1385454F59D355231F75071CDE1CC1F96B45425932406380FA54653F521C5A178EAE6AADAB4BDDBA968FA037A94688643961FBCEB633CF95C253668187784B09A7270993F6F12C96EF91CEC254CCDA64BB71582F20227DAC5BDFCD535DE1324520731747CB81CB96F13633DA59318119150A002A2417AB8963B51F4FCB4C3B34CA9964FD5D94E57B23ACBBACFC1267641DA2083E55F5CA34695C7A45A283B15365AB9DAB4118CB230EA06EB4A2FBF952F1342710ED07A2CF16E3145490A2A3A9FF308E0555E0015029E65AAE08024B2637DA6B0BEE9797536004F9C54A782FAB6EE67A8847143529C8564C37845F2C281664366205F51E8B577B19DAA25162F291E21CC498A5599A48C439457A2C98CAFE7E600718B282C45C58F04306AEB59E5D6AD6F3A3140903C6B8636EB2800C554C4753A3C981914D4C6C6914B56FDC26132FB281E944F27B4ABB3EB937CC49707E89EEDA1694DEC921B6A6D9C238681DC2F844096AF3BB25D61BB81D557478904B87511B5C2ACC402A9164807909376B800B8AC970648DDD5D61BCB3F79106FB3F881087B21E528BDC627A8A1FDBB3B1FF5D83954F7 +sk = 52D431D74363BA07B7EC47C2A5B98157F616B8C7B7D3E68CE3F2A31365BF4E21747203C5EDD758000A8C09D38A83457FB7B015BDB187E842B46CB9BFAB29A917435431184219339DF7CB81018A81B283814FF8B15E3A526AC35185BB45C7A865C45AB0CA1C7C5CAC9E35F753D378556A62C8AAC92F0FF59651C1ABB789970A32C69D153B14A687FC2A56B9E0C382BA4F907A0BEF79BDDFF781776ABD042044A1C84C4C80AB9CE9A76BFA6374E9CEE06081E3661A09CC3272331936CC85D6B2319CC7873227303191C36842B61013C0A41082B82034A2E1BFC8C47916859EDA53033D5427741510E842265AE36D530A19E5D7365127BCAB5B506321ABE2B69DE823B660B4699F8859DE76899098159C211CFFE51C7198CF1025BF9EE69236C913B16AAD84AA4C381A577B6C7A3403627B323F11EBC1F304747F47407DB9A8C9E4B866082597F28B6EC272AD2140A43A52188B061650BFFAE19761BA99CA724B71191B6DC5B16450CAC50B247415370D5B207701AAEC3A13CB477983F180388050175658CCB4714ACB603B6B3AEC340DC6C164FCB81331EC194C382FED024E0D962B056627A5B05A00B5511D78BADAA489F8BB3F3C5B484F9C1450708B89828EF24B815EB43A6B8B127BFA49ACACAFC46434987BCAF5F91A926140BD56504FB4525EE1921B63733DB2986DC133078CAA44518871BA12894A553BD024FB731A0AC44AB80199394A2385BC440515877CB69B73B0C847E40ADF238847608908C20BF7E1B86FA84781371D4CB52FCF2CC30306C8D98C679D4CB41EAA0EA8B395C08CAC6DF2348474A9504592ECD34A93B3262C9751E42193719B617355C59A25679D909A5E756C8DB03E3B174E1A063EDC733B9350B4F738618648BAEAEC5B76376D05329BE6E706E632BD61292755F361096CC4565573562053B4402C42C85B5299B1CCA0B9CFEC4605D63665F24561D8C1DCFA896D1C6D8918A3E6F2A8D4224FF97503D1EBCC8D5395F0A64D1454623890BB7AC6B87B29333096535118CD243C52E49CBC0945385E38781B9BCB6B220A66D96D426B9A1F4C4C4D0349CE2BC790732247EC5D98E43BCD37CD94B652BFCA7B988B063BB102EA0772DF0AAEC74C228261B4FA7A49F3B329F2C7C6D04C859C9816D5BA2AABB85E52DCAE066B9AF4D9951766041CC783DC672DDE42558F50473BB43BC1F93BC6EA7D33F46AC4999CD33698EEA603C7DA265AD713E48691C8B048B21134C9998DA19060CFB6AE31CB5A3B7387F2257FE94BB3EA4C963D01849FB021741395F1862085F031B6B05A7834551A6C8F0EF91397A29E12DB6D776B05C7F12C8B260CF128C02E48A9F403A487AC3A6C0888C5299414AAB1D7283252F62F465867A851BE9A82C9A79A25CFA727C632727C765D4C496D466942147A8A7B65AEC4BA84E4E2745671BCB207654B087A26F93AC77C82CF34A7C2F86FE8F48FF9A0B663D79BBA6B2B8908B32FC145E4F65C6A8A379A99C9E68A10C278130A1969E0CB708D0CA6FF1669D8756D1D530ADE051ABA3A07903B5D801456315057187758351588BED222785C9FE83A0FB4C59245CC2A72B309767348EEDB7C2097B457BBAC8AA96A67D785803744E149B3F131A8B1271ED42222F95622D63157B80A5E83D887C54C8F0303749D48A91E2C2F693ABDBB23246667B8108B921349A8A945A27172807D72992CD744626662B1C4AEC2567972B8452CEB75632BB81DD156EEC21AEB92124B417F828A7339B90774520DB6E890DF621C559BC58B7C66398676806B502313CED89800D9A26E1579B565A66E3132199BE13E6FE8001E36630143C96E53736E7672A7B2C0EE6AAF122BA1D49416C299795DFC47F7C5841134B429ECC73A974248642454760DA77B8A9D13A297C4399D2479F3E6B0E56462E113300AF202E745487ED781C98A8CF26C23ABEA748EB851AB09BEB51097EE06B124225070F83D80D5AF5F75695CC89FD42566946948ABDAA068032A7C31C35A1B29423B8AD4B7537AF1BB187C111D55576F9C382E391A56850231E36AC8F337086B81B0256A5D32880391732285A9092310BBE67701780CD77AA7E2D54CA2E03711988AC2FA27A9890B3720C783000BFD06224980199AD092DD515456F2CDB8C23BA190594E4C9A0DE60E2ECB483011C0BCB3612C12BE5E04521DC3892AD41CBBD769AA8B79CC9801866C87F7194D89FA56329100F63788904C7511533ECC5B8E7FE45659BBCEABA74402605A84F195925A71E3153827A5B417E0B994AC6355071AD98B1328F919D6F8C30EC7AD3366683AA3472132C801E59176711E2B20C251281311A6041AE71F96B9AB225A35E6273B5878BA6E362BB1AC896A557078495D1ED08264984357498D119706B7F4BB42A8700EAC4E80164E19C2263A425F4FD18F39C2B3E6D70904E7481A14030B40BEBC26BE4930A05B4236436698EC5A5591B88985159CFE5C55D7D84AFE7A9BC6999B1261355BF296BE8726B04A066138C714B229028B2DC5E5233CEC7ABE672A0F67572EE2A0B84B6F231A37BDAB5006A9CA184CBB82948C46B6882DF10A6BC12A8E637D3D437023B99197C207ACC2157C43396BE138EA06ADC0BAB4AA2ACA95D5989CB6B9F1987A58D52B0B460956452F6C00D08A188030BCAFF3E9CE91AB88DEA04547BAAFF1D64BFE3C2F5050A398CCCEF166A6FD82151738B227C04288E8BBDE4C45AA285AF2767D17B4A66529A06291757CB52EA67865AFA5390A02D0E93226EB200A03FC0E83203E08390AF0875F2331B8076259D9378DC77877652747774B85064B878B816CB30C6341C4529FD112B1857D2C2C104A57C52E6C7ED5274873E43303238D19F21447CB45CE568E3CA4863BE289E5917E38B4AE2CA117AE7A45B29C345E8A463CDA4264877964033025B5A77E8824B928BD2305421B810732A1A2A96225CEF965E46369CDF15E0B6129B5AA061CB88688FC0E0DA00D71612A56085BE7D24F88B4C2E6B7125A58C253C8272B04A0DF60485147B85BC566FD34CE78A95A235916729778E4B521BA59B4187A34F1E5BC47C6AC83FB82428C30796B5629E712B8E3CEEBA7B32EC4A4B9E115576A6F74495A7210C68AF925C7CA5F0818390EC408757170C8090C4EC78FC312A1D9A4CBB4533A00C5ACF67C845E9B7831B5824B44A0D7B52E32BC1799B649497B4542970A50EC5A412594D50234CAC594EFD1B415B777CA759EC6C51197177DD183307313A3EA9B7976879B85703BB81ABA1AE3727E962C0AC0BA7F60CF0CD6C8E863A0C6F395B41935FFE6B56D7026A0655D2176BE3CD9537C227CF79243E09A5D04783ED170AF46ECC670B16A47803FFAC59744AC514D84AA544350510706AA408B91E1BBF4387D13E05FEEA35263446BC7D32648C8131D1B53D8DA5AE774634B85BC77742128BB984CE4341D1B05CFF711EE33AFF31B849C66791FD5259721BCCFC8A1836CC95C39540652A305C410E61A980EA5B720C472683811C7C596B635072FE7589C1700D72BC2A84106A296636107454A7A47C66A1234A3A3ABD91CC7B049738B6AB7D70F450C64DAAACF2CF9148C1806E2308F9C883875AB36FA20593559CEF890006EAAC701DB9D80A762C448AD14C4B8DCD22C2A4B26FF23912E30C1C4F0467762B39689BB9ECCA9AE56BC20C1347C6B4657D780D0A6C0ABE904C9FB8B7769C550A11DBF54BE2F2B4FE895B74002CE859228EEDB676FDC15FC52C5A0679399205CB0B964E8E3576DAB64F21741009082B04A9A4881C91BE1CE9A68291087619B8922524222B1385454F59D355231F75071CDE1CC1F96B45425932406380FA54653F521C5A178EAE6AADAB4BDDBA968FA037A94688643961FBCEB633CF95C253668187784B09A7270993F6F12C96EF91CEC254CCDA64BB71582F20227DAC5BDFCD535DE1324520731747CB81CB96F13633DA59318119150A002A2417AB8963B51F4FCB4C3B34CA9964FD5D94E57B23ACBBACFC1267641DA2083E55F5CA34695C7A45A283B15365AB9DAB4118CB230EA06EB4A2FBF952F1342710ED07A2CF16E3145490A2A3A9FF308E0555E0015029E65AAE08024B2637DA6B0BEE9797536004F9C54A782FAB6EE67A8847143529C8564C37845F2C281664366205F51E8B577B19DAA25162F291E21CC498A5599A48C439457A2C98CAFE7E600718B282C45C58F04306AEB59E5D6AD6F3A3140903C6B8636EB2800C554C4753A3C981914D4C6C6914B56FDC26132FB281E944F27B4ABB3EB937CC49707E89EEDA1694DEC921B6A6D9C238681DC2F844096AF3BB25D61BB81D557478904B87511B5C2ACC402A9164807909376B800B8AC970648DDD5D61BCB3F79106FB3F881087B21E528BDC627A8A1FDBB3B1FF5D83954F7EF07B1F4886B895A3246241DDC084379EEB0F0ED84BDCD318FE72C9B546413BECE71AC90659FF2DD31B35C165D3929CFA5E94407A5A798C568E6098F631923EF +encap_coins = 59BD98530C55222A8294517068B7FD7E3210FCC2BDF400F4E584BC209AFA44D8 +ct = F283F53A5A01BFBF28C49A825E3F059B03E292C806C8F8155C2F95D18B20D8262851D0B9A9C1FB6E02C534C5C87AF471FD44C45B59128ABEAF703163F08E066701642989F86F1D6FF6891DD28C7D995064BC3BA64F0F213F3A00B3ECAA84A3DF5D6E76228AF55938500989A290E71965F24F6A051E78016F81B65B78D3E91D09D19BBB4A6A65F60639094AD5793FE2EF8417C60F1E4E3F12A80F97B870A2BF2F8A09B37F8C07FFC32655633F3D16FF8E6809EA7872B910313A5815A58317A0D3CFA42366981B0551096E76FFB21B9F2FCCF4C550C523792E66544A72E14594F4F567BD337D588BA6F5320FE36F8544ABC400F634572CFDDC108CCA6429CD7479DD601E345E40FCDB9361BD4A80F263E5E10599B9C096B5BC212C4244E0EB07AF05BF66175172DD7E69D19EB7FB680139DFF17680A7F668C28EDE0B7D91B64A64BE7056D7F9194778D78690EA4CC47DAE78A701A683D995E1CE6232AD6A66875C2A367AA590CB7B56FFE7A1ABFB14DBF413AC169E169BC519E13D8E0DF12DD6A2DCCD35AA10116B8E89FE22001BB9FF242CC8D34341AE32E5006281B4F82295A5F41ADB12D1B0A08FF1D4692CBA1DD5408B8A66BC1E8165A041408F803E2F9E06D6547F150D26A0ED1DE932EF09A000610CB10A062EAF58DBD3198615D22E4F3A882B30F9E17E7009DD53AB7D5FC1BA2B3801659BB84B5B2E95FE7A6C3EF842C45BE9C84491D9D83477CCB8A5C375619A1F3EFBACA902C613BA2A287A320710A9537694F1CE6B7DA1FF36DF375F1C9F64A439582915F8ED156F231CCFA3C68115E58D861407D4A6ACE676637E2337AC9CA3E512A96EA612635AB06DDA303B85E6EB0F538B34640373DB12E9347D0CC8A1E2487802262DB66082CB54AAA934467B255180D6B2CF12D10FD5F015E20822138F1F20D58BDA320B2E420D8BCE24AA095875580F26A9D1D4FC4C625EB2939B13D6612A0BC27A48B063D323C042FC38DEFB3B7709F36ED684F479971859E3B4BE25979DC756D303F0A5914DF62484EDEFDA8194B124F085579DF512396490BD25C72B830EAD31DA809956689C0E550E78C00F25B8AD7D7AEAC222D7DFFF1AA312D78B468CE29764D901970F7034A79472916FEF2B5AD858CB65D7BCAB50961EC84EB62D64B4800CBD1678D43DBA103C022C26459CA5D27C12B8AB859006B016DECB0051E665D08B06E1D94DE935822D4ABF681D7C85FCAABC5816AD7F2F9F41BA87EF209E2C60CAEEA0299656C1A4C4A84C40C5AD70E7FB214083E65434BEBE4C4E823CD509E26C38A66AC0FDF45944668D03EE64AF4A7AD7D9096415AF3C1CFBDAE5D91E6668330CD82BFAD4B7EE6675E2CB52DD9843F99EE000062990E5452F4C343BB85B346F85E238BEACD3705D959C832F1DD90A6681DFD35E14DA4317CE6C347579156AFD6075A28E0CC311B76032F4A74E9848C6BA0F3E6BAD462DD952A11942575D6044FBBBEA7406D1712FBF58050E578CA83E9AB8ED9E21D2B14D8CA0AE5489EF632264D9AE8F70A887B15B839EBA1B906798626D75323E4EC9F0C9A589C24AF99BE114684A70136CDE28420635B9EDD51B0891AB64297153D98C8515AADABDF0B75EAE331AE8F03C87182D6A80E70EF7D11C0902F5A511994BE78EFF57576990D7424575296131A105B2A89593916107592F71A6684A032BE61FD43E485E41C21090CA3E98CDD0125C6519F0238196BBA4CD0081572D277722C49A274E989317CC3D0CF717F17C63C70F9EF51ACD0B0F518DB16DC37216A62C6CE504607D3D967484B61357086938741260E6BD6FE97C215A8AD2EBF3A9441333D5095844ABB199CD3C30CE3FCAA058C398E3189EF07EED44EF9202E3A328A0F4F0F1E50003ED28CA1C6761D34D7E298E5DDA2AE307296E8FAE072BBD59D35ECC33C4ED1F2F3AE2D4929C4514E09899BA511C74263F68A1B704186389DF61E27759B2EB04B3BAE35FDE4FAAFAF143EC920E9A97821E104DEFBC0171328B0AEFAE32885365B21AE4B3E2B9111B0B474EE6EA31C9763BF181BB000575C469F0938A3E585C0982B4D67E175A49618C4750116A017F85AA0987B27315D6B69980501CCF3D0567A8BA34281245BCB0205A5C71DB4B8695E319525CB1A6E52BB7095430F611E7729720DF87170594A2899D76209475E9256453DC2D6AA5938CE6B23F8A66C5DEFB73AE9E59DCE236908D818DB871 +ss = CF5B4C0396F19307E31690591F9B1DDC21BE6E4CC6251B281B93663866A11A5D + +count = 80 +keypair_coins = C08BA2EF8C3A0A043AFAD931652D7A19E6E8CB670F840DE5F1FA03309B2CA9EC4248FF45452BCE5777B08108E059234029D3309CBC2BCAAD8EBB37DCF27832F2 +pk = 88B1B22E1B2CB01B18957737B65A63DBACC6828418150978215B85703586C1060740D56B50B40F806A7D2B83890D2996CDDA967654506E096A9E59B69378152F4B8B2C1050A9E2BC9E20B513813DB6F6B42701BA8BA3A03E80362C7904F240A49625435C00D040648262B44D881882DE55CB3BC1968F5B3FE78BBEC040A50972237800C378EB9CA8735F5502AC220988675B99BA17414A077D8B9C79E468A7E3A7C9F65B36D41B9C88509DC25276FAC066199689FD29C58A5B702B1B9F7E2C30492A9BEBF99A300C57D3863365236AF8D514BE837E0DE28079E22B3F6C9991504C73BC2603161F8836A8814095AC527E0969C00DEA613DE63B05033B303C5937815B02EBC3466B5BF287265852665AFA4D3DC7622650A0CA7438D896404E5B2A09220315BBBD5BE37AE3A61953473E2BE9B39CD71C072A97DB3AA7546A9EBFC651500633A30919FE41A435CB5DD9B247192B233B676D2432132BD4CCE04C30AF99344E20AEB8E9B6545B4E9C9BB211E5ADD2071911DCBFDEC072CFB76FD6366A74AA66C1831E1B6AC6DEF02D703BC9A9011480032E0B1A8E668CC3BBB46510B993958A455B25C025F19677F1C03828335B85868DC99C81D3B75D0042C3735CFC063B68630C00680DCBF561FE07BA4202B1045A2EACA9033DDBC2F3E620CFF6158C904666927D61D4702C84AAB51C60A748ACB573704A5B422057AC3933233DCC6C6609CEF96993CA951F89E10B68217D4A59839F261FAC87375A38314F4B7CCAF5321A305FF7137E4207A9DB03AC08370DD903A634B8951FD6C93BEC205434AE6FC066EB18A4A1102297ABB8CBA62980340B2D643BE20C067DB031AA886282B03DFF2870FFC455CF78A1657AA19E958DF64B21CD9467A1306AD40195DB3A9398C86C5E4111CC40816A860909EA742F8B14CB2309860B5D300253FE6149B236AA8FF44DC8D79B852888A9B2988644AF45C030F5A69E93A44BDB454D79C36F2A1B13DB7B395CD7B7DA192DAC99B4D5560FCBD96312483511BC8D9E738BBD4CB5E708CC0A02056A292180D06D0B0983A2748DBABAA88AD144AA1028EDDA8DEA7704908440DD9A272FEB8138146E44E574BE538183A391225BCAF9475350939F5B14AC75336DF086453B69BE85B350F829ABDA504AEFB2389322AF5DF12CFD399CD19B52CD8850510C37E6C087AC060E468C97FA97857E78712C17696FFBCDA6F13248733CC03C4F08B92000590D79D74F1AD2336B9368572230EE472CC3D28A03A7547B5C7C1E63809C9AAAF783569109522075B9C979C444929376021B7FA06F5ACC940F2984B118164AB204EF2BA59DE476E0BA22169888E64717E8635E7A30BE99441814B5141A658BBE25641D3557F07B33D3027AD1A3C51FA497DCB6BEDE058C18B6ADF41374CA1984A0F43A6D25BA1B162AE5FB9693607BC2FB279BA5B3BD19408AC8CA13E8C80F2139BF410E3065A0BE22800C0305966832899753D342694CE56483A45F0D56848484CD1B9C949C192658E14E7C6ABBAA51CB45441AF9E46BAC064376509D533718678A614C1B9E99796C0D4C8AC6AB134C4AA79A1C22692183C9F2AF94836A52930680C974355104A05C0CD3A5C34D6A7B524B1DFFE1459754066AB41A0B7315F302955BA23FD2B4588BB58048E981B0CB1DF247874699021368277127912848CD65229C59617A7783542B289456337DD572C8E703AB1F22AF68C962C9387E92D754027619B7F9ACCF233A10AC294EE15C3928934EE0B342F39F3AC5299CA681F5C569A2D87429BC7B4C492A9A09A48E17534E7A74023C0601E92BB13AB2F6918A44066E58433C2CD811EC5A144867C666B390841712D0659528FC76FC2CA17D3656B4B0673F682BD37980897B02D3608ECBB27B76AC848D55658F2606FB761154B0C516D0787909A59B35BB73E43988CA7459C22DA04CB91C784F47E39152293679B41D13EA4908836735C3A28768509B2C6DC3D220C3DB729437BEA79727AE8156E2798AB7E9ABEF81437DE27E752188DD22913E477230549F564A353FE17D513A72ADF132EB0B0F3905CACE01B05A073498C56221A4B9941A0223D4ABADC87F83B6AA153920AE58CEDB7AA5D4EBB6F4B34570079D6D1354AFD1C30EFB1AEA9C25EEB07CB56417C134CD45441ED49182651AA5DF5B6C82EA6A76CB62D3AD7357CC617D597A3DBBDF515F6852D71220768859D599BBAA +sk = 28BA2F24DB8E2A5B21092964F1871E97E10F2727C8B27916A5068EDD27670D26B91A93332157AC686205E23616EB0271B081B51923C5996743CC114F3AD310CD6791AEB05F77960991513EC655533921A8D14CB2589399EBF18F7BA89BB7D6CD2D7336ECE1B7B63B98F26A49D356578CE7275EE67677D1482E1BB3D85B88325BAE0A00CFD1288C34078D73965442B7B140705F0FB76EE3D0921112C400C7A4D1337D6A3A8CDFF9AF05C64C079C64DD143F1FD56C28096313E82D51836A2DC1B0F37A2E00545F802B417A9406E55420B4D71FBC2210D05A771CDC164AD50932EA40A876051828236153B4E1715EDB1453045721E89A60ACD0066227704B8AB991E8A06812226BC59943C0814C847A1865C19DF4B7FA13BA3EF95543E724EF854CCB28BC1DB49B75C1ACA3649F848BC6F32C139AA79197543C628238ADB755F4DA6BD67130772B4790B28C9F1544A4E9860E875E68C1CDD9CC0CF17451434C7C53F3A9BE39849720B1B80A836BA4C531D49BAD16077E90203C9120C23239CEA972454B08A5F10812443CA75B913DF98DBE29C3312157E156311F67354D414AA041833F8454ACA5B3898B3572E819FB2C4CADA43C9C5191D6F7AED8F310CF77CCAF0C478686952E71A8A8173D0C223B04462B96C04EA7B218A13519B90CBE3BE8C32B276F90D349ACBB6362706DCD54AAD0497A058AB0138A8E57D514D5D431043184BD1A07B77C3299BA6C7205938ECA8403F31A1C605A942B73775A1AC11C40D81988E69C15079719AA769B5F618052D5290D84714CA57418366C15B74DA4E98DF96ABDD19884EC1703F7978C4DD72B48528789D7148F16C23EF8BCD1F353CC4A76E7C238AEB1035424300F529ACD46926874190556133021A6A9283DDFE02EDADB7DE23A4D141B0787539B68110B4882A51F95403865BECEA06E2D7A1C1F534FA3366BC1AB387EB867477B92F00C0D09615BFCC1138137CEDE4098AD57894FF74982D71BA2ECA6A0F502CDC9C89BC6A44BD84FD8B62BB5D84332FAA830E2A732259945028D2830A8AA866F92C24E46D164C4F4658791C11F0703D906A82546C75F81285C24597BBA4B1BE3972F069D6B383D61CC32B9B66604B7CDC4BB39058C74CE770F04F758E6124543E13D2365A915802F75E90997B10B15E650AEE33A291C87030517B6C29CF10670D2DC5C8889AAB7518B4DC86D86E25C52ACC4DB175A5957118F983C3A4443B33803A3161AB24004B7A789778C8414A8AA8C819468EBC28B68AFE5333F7E666D44B5A961533280B0021BD3B24E2AA51BA58F2F45767A5722E918B1204656A2B44CE628A3A84125F918999A6311CB3569431C7B0D6B58ADAB6A30F9473B3747E33C7A2A9BAF87B709353A77743949277147928273F112B5E618167A5715157B49CED69A2492203A08730ED07B7AA14BAD136CFA969DFA68C28AF40B9763872ED1B05D4161489BCE1F473D4CC067A86258F6B664D2436D4856166CC60467887F9B97439F607D336114E46B2A2964C228A18EB532CC4C6813DFB841E60C3BAA59978234A06FC95AAAEABEC0123230AC33BDC48A4452403842BD6158C668F28F20BB5501984C5D3992594A9238E03798D178702B86973350DC21617AAB9B4466903D4914D37A2EC3D936C162933505B7F45C3A26FCB3B32BC3DA91AAD5D7A8AF045252202312D98A7877935CD6B8C9499CE722C6566BC21FD427F1902E6BD190C8889824B35B79268E4B2C4AFDA48B0C98856A097BFF3C4523BC02739349AAC7B8CD286798CB919BB550575B44BA40226CB323F83886E1E164EFB1AB648A1A738747E799327F58630134BEB48A187FA5694279BF644997448B57F909292807C441B8061F8A4C1D1BBF8C55836EAB38FA483B66A652C556191E9C959C45A4175244B851B294E38134284F771B81CC72BEE2BC188D58053C7589394B49B5B33CBE12993549C2AC05BE0DDA9B63D97E45E738EB2738C59224DB502A0FE3AA37D113CD3393419C850B77B4B1393884DC9EF3D189EF3499372C8851F290F928A9C05A0A210926CC1B5728115771E55FA14C23AC4B1E9F507B02164F2234050F06896BA969347B3048D42892600E7DBA3B8DA0CFF0D1707C0185F9B16FCA3921C2B648E130BFFAE62F0FEA48AE91588A15C064A9CFB0BC862DC9CA88B1B22E1B2CB01B18957737B65A63DBACC6828418150978215B85703586C1060740D56B50B40F806A7D2B83890D2996CDDA967654506E096A9E59B69378152F4B8B2C1050A9E2BC9E20B513813DB6F6B42701BA8BA3A03E80362C7904F240A49625435C00D040648262B44D881882DE55CB3BC1968F5B3FE78BBEC040A50972237800C378EB9CA8735F5502AC220988675B99BA17414A077D8B9C79E468A7E3A7C9F65B36D41B9C88509DC25276FAC066199689FD29C58A5B702B1B9F7E2C30492A9BEBF99A300C57D3863365236AF8D514BE837E0DE28079E22B3F6C9991504C73BC2603161F8836A8814095AC527E0969C00DEA613DE63B05033B303C5937815B02EBC3466B5BF287265852665AFA4D3DC7622650A0CA7438D896404E5B2A09220315BBBD5BE37AE3A61953473E2BE9B39CD71C072A97DB3AA7546A9EBFC651500633A30919FE41A435CB5DD9B247192B233B676D2432132BD4CCE04C30AF99344E20AEB8E9B6545B4E9C9BB211E5ADD2071911DCBFDEC072CFB76FD6366A74AA66C1831E1B6AC6DEF02D703BC9A9011480032E0B1A8E668CC3BBB46510B993958A455B25C025F19677F1C03828335B85868DC99C81D3B75D0042C3735CFC063B68630C00680DCBF561FE07BA4202B1045A2EACA9033DDBC2F3E620CFF6158C904666927D61D4702C84AAB51C60A748ACB573704A5B422057AC3933233DCC6C6609CEF96993CA951F89E10B68217D4A59839F261FAC87375A38314F4B7CCAF5321A305FF7137E4207A9DB03AC08370DD903A634B8951FD6C93BEC205434AE6FC066EB18A4A1102297ABB8CBA62980340B2D643BE20C067DB031AA886282B03DFF2870FFC455CF78A1657AA19E958DF64B21CD9467A1306AD40195DB3A9398C86C5E4111CC40816A860909EA742F8B14CB2309860B5D300253FE6149B236AA8FF44DC8D79B852888A9B2988644AF45C030F5A69E93A44BDB454D79C36F2A1B13DB7B395CD7B7DA192DAC99B4D5560FCBD96312483511BC8D9E738BBD4CB5E708CC0A02056A292180D06D0B0983A2748DBABAA88AD144AA1028EDDA8DEA7704908440DD9A272FEB8138146E44E574BE538183A391225BCAF9475350939F5B14AC75336DF086453B69BE85B350F829ABDA504AEFB2389322AF5DF12CFD399CD19B52CD8850510C37E6C087AC060E468C97FA97857E78712C17696FFBCDA6F13248733CC03C4F08B92000590D79D74F1AD2336B9368572230EE472CC3D28A03A7547B5C7C1E63809C9AAAF783569109522075B9C979C444929376021B7FA06F5ACC940F2984B118164AB204EF2BA59DE476E0BA22169888E64717E8635E7A30BE99441814B5141A658BBE25641D3557F07B33D3027AD1A3C51FA497DCB6BEDE058C18B6ADF41374CA1984A0F43A6D25BA1B162AE5FB9693607BC2FB279BA5B3BD19408AC8CA13E8C80F2139BF410E3065A0BE22800C0305966832899753D342694CE56483A45F0D56848484CD1B9C949C192658E14E7C6ABBAA51CB45441AF9E46BAC064376509D533718678A614C1B9E99796C0D4C8AC6AB134C4AA79A1C22692183C9F2AF94836A52930680C974355104A05C0CD3A5C34D6A7B524B1DFFE1459754066AB41A0B7315F302955BA23FD2B4588BB58048E981B0CB1DF247874699021368277127912848CD65229C59617A7783542B289456337DD572C8E703AB1F22AF68C962C9387E92D754027619B7F9ACCF233A10AC294EE15C3928934EE0B342F39F3AC5299CA681F5C569A2D87429BC7B4C492A9A09A48E17534E7A74023C0601E92BB13AB2F6918A44066E58433C2CD811EC5A144867C666B390841712D0659528FC76FC2CA17D3656B4B0673F682BD37980897B02D3608ECBB27B76AC848D55658F2606FB761154B0C516D0787909A59B35BB73E43988CA7459C22DA04CB91C784F47E39152293679B41D13EA4908836735C3A28768509B2C6DC3D220C3DB729437BEA79727AE8156E2798AB7E9ABEF81437DE27E752188DD22913E477230549F564A353FE17D513A72ADF132EB0B0F3905CACE01B05A073498C56221A4B9941A0223D4ABADC87F83B6AA153920AE58CEDB7AA5D4EBB6F4B34570079D6D1354AFD1C30EFB1AEA9C25EEB07CB56417C134CD45441ED49182651AA5DF5B6C82EA6A76CB62D3AD7357CC617D597A3DBBDF515F6852D71220768859D599BBAA1A2D9EA0D2280249D9D756975C6979A8770BF4B5F6ADDBD76D045A816BC1BE384248FF45452BCE5777B08108E059234029D3309CBC2BCAAD8EBB37DCF27832F2 +encap_coins = C11E2FCD6CC56977006F5DFA825271C6FD49069A747EB36C1765F5D5A22B38B3 +ct = FE3172F16CC8839B30C9B78782CB27E618C2194B4447C9A24A0FB79EBFA14E18397E615D47DD21AF3CDF1D87C8C0A8D66E8E3C9444BA537AEB246AA32F014FFBFAC2370A6D5E90E97140C2930E062E40684FBDBDE90E5A54C288DE92E269E75252873122C9088E8C48F251EDF73977149C3FCC9ACC8AA1D590A3B1A00D52DA896DEBCA22897E908083F530BE310F747D42E4A164FB0092C7C85394D87FF7ED1ED6C4A1D90F842D0BF8A638B113AE728964D27E5EF1FAF35B6B3DA2C0AB7980994B590CC3A93E3702B27CE4039B8E9BF0315F88E591F0144F38FC158261A1D46528A7EDEB144C3423F4DE4FD09C14BF5FA80A0BAB552A5823C326F6810FE6ECE6E8AEA6C4B28B31C0BF4FBEE7A0D048754E4D71E38F2FEC636B8F7A305215E614656169812E9F5363C2C9AC44105E7437F598D75CC54968116F511BF97422C45A7196823595A5A41CCCD2433722B1EA77594F38A24D1DD28DBCF97DC0FF0694C83B173379EC87A13711768FF4A65118DF61C6754A89C7FA62249DB7DCA45A2941AE9019B9273BA9A92AD544649742AE9DE6C06886EB4538695F9EE93124C43323EC7F82CEAA48CE3D4CB8B58EEDBE67FB765BD99E8FA8858C4431EBD475F320E8434B87EDB2681DCEE36042B5336AE6974D68EBA5FD81D67360B04E1A8194A5A7298607F3A421BE05E8716E28EA1333D609546F94C9985A8A20C0FDA57B2A5AEA64E280EB9D715C536A61498B3A978B63DE0C01C74BA39A45CD7D0B8EB6739CCA632CF54600B858025AD2B9E7C54ED0C48F1CE95FD2B1F6332EC45B58CD918F54C0CB9F3EE4372825E1FD101D49EA33357F94EFD866BCC3DCD40FF174D74C699FE123670802E4629034A605DCB9EDD978DF7147EE6E7F7C154F0C6DD932D362DF5FDA00A5083CF5BC5449DA7B9DC2BA41012405DBA9FEF6AEB9BE9C003CBC43A19CD9BDFB1767078D998E7895EEA549936621ABC96347AB26E11EE7DAB90289642B757C64EDE91DC4EA0355A4B4A64BF7DC520C81424DD4876DC9C429A6220A1124CF928A0E627C00612E9D06B2221CD02E19BEA788C29E089CACCD7D86D5FE5C2AA7DA09C8885D3EF642135C587AE2AF6C224F16FE0A65A6C80C542B8AB52A229F29E6E9F80DC3696467903065B7997535E51B183E24B2BC78CB0AB3F41AB8E04F57EC96A80A5D755A1E64DACF0F0BF47083E7DC1A94414687CDCF8FBA1137EAC83B19405887C988A8064CA65CF0C774BCFFD39ED486B29D9FBC3AAD90466EBC5FC0420F0790579817A082EA4B0F5F52B59DF040BD2D5CA807D0A93F9229026D9AB6C3615B19C4BCF16A3988D2AF73ADDB963BB7B25A3DAF0FD821468D3EEDC5222D8E4E693B342EA570BBEF9446A47AA4EF6C47A82B86D39D13D46B499DEA67FC88E62B7D6FDF06BB63D526D679411632C18B6FFCE260FF5CA7C9461CD3DF606DDDD493008A99F21769C1DADA616FDF0FEA78219B50F2587FB641B92BC495A638C32F5041D5DB52B638FB3FEB861F7C3E714D1622B39F64A534FE70398C05D7B8149FDC22D3410CAC8660C6A09B59BB4638F501465C72C90876404C5AFBC34CCF2C466EA83F9D8E6A088A5F0256072242050366DCFD08504928C58DB2BEA6D3A4D393FC63E96CF5A3C57FD6467F9252FF9DC8F3F852851A1545A96870B3E22446C505E2FED47C93AAB54500A9D9D93D0C27575C8F4ACE60870B9C633EAEABD23EBCD1406F99E212FAF04B1D210E1D5E9833B7EA68CF612F022D7BD722A9E7928E3335704224B730E0EC838B9F2E3960BE3CC897BD64A6A43CEDF80D28FDB0E20DDDBA00E4B58C95CDA844F9CF52F85E67F73826CA27499780130BD25A45924F2DA883B61611D872408A4BC1306CAF8FEC2DA4D67B960828703AC6D19DCB65AC56C160EE57A83F26079F0270D30B479E4BC26EFDAEF883E0A9C8DB5C23C445F33B93C6B22F16F8B434E129536E39E0092594FDABC05E58EAB33F0E447B0A3FA7AD13F1D081BA5ED61F1617479B6581D1F9465D41D02A70248B09F39912A3E5A9FC5C63AFAAE226F55C1962BAAD75077C6A286AB67C1AA7AE069BF9864AF1190268396D159AA3DDF89EAB07C73F97A391F7EBF8EB2DA3A0AD40D92E933EDBF994878BA0FD1367C4943ACDCDE0E04F8002EAAD3029026247CB5A34A456B7A95A5AE98838D852C78FEC718D4B318F8D80A1FED2439BEA715DA4273C872473BEBCB3 +ss = A8343D2E54358038F124102641D24F583D74A960A3BC2CE8563A4270FBCEA133 + +count = 81 +keypair_coins = 0E3B30E102D707538C2671060F603BB0B8A014103F132D63B09ECE07E4A4C75B7B129A56B51BE635054CAB9E84F2DEF59A3F8168E301EA2BE388C45B8CB022EC +pk = B3F044AE2026D8B17F397AA66707C6846531CD5B3DB17CBD072BC4E2747EFBD5749A52C8BFA2327DB1A0258829BF7BBE4F59B1A6D8B8D3954DB41BB4A20B0D660C21D6202759601630854EE75CC29454AB1A3469BFFA989076301132AADEC892978B3E15082BF84897238AC6432ABBFC59A21C43C0BEFB55E1B582D26344A6A7B507F31BC1495CE2D5943466996A0691D80405CC21B060568F55A18FEC917106D7277793089E147D759988569820E0254EE7896E9797612C655E71371178A14B37B3A2C2B18BDB952A5295BDD4385C190B3D61136F128BA74C2C57612708F900C144093AE460C86C7A2F0B1903FD9A889DD7874F6543A2E112219869819C35C055813A394333AC6C9C860AD7505F8AA241046A984403B798E3211469CD1D8A57455702B2816F0B2B3EC60B273B102559099528D306FF23BE250B50226B497B60B7540813F5B0C4A11732A6B9583A21B3DD2028E79A82EA0144EF34C32E4392A11241748351046B9454A50E9F90739D12A96A928E75806F24004B4A926F0E8769F90A921C4323D7FB7CC74C2E33248C30B774B795CEA60C47EC52A01AE84247E53243542EBD8ABC24A183E2D72247628269E108A5E93F11A45CA9561E8FABBF85AA61C6BACC2493AA93A38BB72421E8913FCC635EA0F2AE17BA41E43C5AF3C83382F0667B6113591B6AF80950D5074A3F8C4FC2E550CA9743DFBC4C1F797543FA784AD8687DA8A643476FCAE931C1C7477F063CC7C224DFE3BEF7E0AFDEBB5F91B2532BB867AB3C08CFDB6A64BA1876285BF6463B9A241512919C9B72669ED252FAA0AEEFBB963076592F9884B5E60E42C2008EFC08BCD1CC2BF31025C386CDF99B49283D6D7B0A24693618D2A2FAC3B7ACC60EC970B6D357B199FB6AF3039EB6601BD57506CF8292D3181EFF61CD380C525086962B58BFE53C3C0844431347A2F2112776818FA3EC2937B4B3B21C52BE816637C38A68AA5373858E16C18134093311292814101CC2940B7F61953CF5971FB5CCAE59ADA4373DBF9C149869A0833BCB97D9BC68D6581CFB803264599A9CB1CAB10A15178F6CB23DDCE70D060B0ECC7A0FEEFA35B6DB9800567417775E1DF95EBD32A4E67616381B48595933F301408E2CC1951A095994428EA01883B4A8A8D780CF960D69A18425258EAF63AB2F2752AA411856B78DFD60C2DA74C35F517718C3B117A98E968A72C3150105CA44FB02B14C439ABB81ADF5A94E2E5B7A8971848C4A9156E1445F41CBBE2C7C18785BAAAAC24BB87936EBCC8EF6CA4A951D1DE8C2E6C5658034C1FDE4B75DD1A176824298A669B0C4355AAC3E201380C42CCA5060192D06606E8430E135C50997579CD756DA40336541A781E6702C0041C696270B65A92D531E964A1E953555628929F7FB59A7C2A5CFBB90B4F04B129CC011F7ABA0942247908B22267DF9333E8C762143C4B68909694DE674CA14C7538604A7741FBD9004D861A04F63B74106729C6759718125CBDC40FFCC60C4AA30C7DA001E30C889276D48B1329AC033D5365D76C85893DA0E15590BCC064F0803CAD5E80355FA56974AC577DB713862545AA43747F9456B822E74E56E3A825E0F6259A3551565215DCAF4C9CE568C25D9C9C7471806210969146BB64C7AF9A03EC276AB4AB10E8DC227AB491473F09718C4A046E84889D7C40F0BD0878675DEEA6C8E071B0E819F77147631939C035A8F9A4644B3DC35C3DC328C1C0CC6CC537AF884D7C6000DBA9E1E3062C2D43A30EBA1873409422A5F664174D2F536E8420634558F4D427D3B8B48B96845B0F1847208C374F31D419988E9434A9F626DA5258C00654B6789122DE71788D6B259A29EABF83A42621B1BCC1924A79D3FB59AE6475AE6714296BA1528F30A66C2597ED308A3973A501CAE96E1779813195805B12B0B008090ACAFEB591AF94EA6394A2AC955FA1B5D8DC388498C6C8B1829428A838AB73EAB19C6CE4A409FC782FC399FCADB90C9A7A86F9799A3DB0273551877522FAEF812D452B6444C4ECF3B9A9670810354B5BD57BA43AA5C4F271A03B2800F5290650A08AE83061F331489265B2F2A3AB1F4B3159103773B7806157E26EC1892E2C3D121A601777834B52939A658531646E713222943A0DECB5B82BAA4BAC41F1CB2AEB3076A1A20A382698CE3919ED717408E0934FDE42A5E1CBF04C80F37D7DFC7EB53A785194C4A1232E61C37A5 +sk = 2F766AD78A0112B8CD4BF28DD0F589873553BF114F19C2719F61A32CBC85C71975B911237BC6AA6ACB32B613CAC9DC80C85493FAF63C3E337C274542AB4729D02ABC5DC07309032C7112540522575D663C89714AA7A456410144D7C2BC1041C03D5A56E08CC7E5663C01F52E5077288BB8CBFBA21B4A8A19C055691E05C22F94C62C3CC2B6A9C155E2A4EB2BB9D95B8C9D5A6394D05AF87B038C210D9FAA266CF07088B3CC7AB56FF3366FBD595B3C790B5497B34B94A72D8153FA13B40BE96B51315CA4D22BE3828C3556843545C47B0254266A802A44BEE6E5A19A446472322C6AAA4CF47218EE3C99247564C552C93ED589EA8BB2C637BCF7277D5B5058DD80342815B2E8864B4C330920A82EC76B4A7BB893E0D18278F47F84743223A67F2983AC8C4A1845A61259670B02D6053CA181BA4C1BCCA05B7AF2A27C59C1E4E38DA723B787AA2F36C71E3BE05039183BFFEA6AB3BC779DE2273326B327D42517B6C6ED8C7F96C6330D4C39E3D2A7B81A538693329ABBBB5947B068C3CF7B45C173C1BA9964C86ED91D0BF64E209C1910C218434311A50A2128D52754148159891E00475654AB30B9693AD507B2E19ACB7FE6B14F27C09C6B2570B861926683A285014631C2D7CB8C0C10A25D073D3C067AB819B9DC27971825AE21CC2E50D377E3396F0266A5BA598BBE9A868B0B6CAD2CA3A8CB503778967BB930D90795719B237238C1F831007C690186949C600C6F587AC0D81C8334C57FE0C59DB3E2815D63C26C620FDD75836261644D99327A334EA5A40571F0CDA39CA716D2BB894A50BC4CC84D6621B60509DAC77ECAA39B9779A3696749CE83933EB70C1E85BB2DC3421AE9A0EF40AC2D83A1FAC16C6DCCB0AA16AFF9A94BB6D125665C3001B845E7F20E7C90A3DB636950B0836BA008DA33500FE47FD4A81DF0E268C62974BAD02A6D3B2267F917E2046DF3C1883187683F030A28A129902083CE26730438B0DC0042998C9472F5A7FDBA371D74481DBCB9BC4CB281E7CC1DC4455823AE1AB8B233E83324544913DC261B6274464B656BCB645F87B0CF4512AF443959E67C47D679020C2905D45E21DA586EE8291085A8A432AC6AFAAC594081EC298DC13175779B8635FC8EAE58982258759999A57B704A5B040245D282A9B6C9CBCA838399523F26695F60389AD42F6512783AE65A0C25B7258674398839AF28866671329109A58E579C026549F0B7041DBB6623665FBC9A2EDE41C0436635325912366AB1364B5A3162C4B8C2A14480AA6BF165588B8D26EA968291CABF66A4E26722F87977DAB7807A2C65A26A9CBD339BAC0B24E6B46E0A8082BE95BB7A41B1B8B670ED3105EAF994A06A6414E9ABE2A1B608C29C94B846012A0FCBD6959ED411D8D0C70A32559C68C74D94B2A9707B9D9755E3C69AC40782E97A1F904A32DA824C7459B59B174A9FBB6B41947F47B3361D5558D831B2B444818FFA4C17F4BFCF8B9C7CE451F4CA99884C13F85C24D3CC4740D2567A54AB0583A175759FD7E197F3000A39717BFD9C768248518D50791CD84DBA795E85388DCA21507BC669FF0B906BF515F38C04DC838D0D1357377B1601887AE1B0A0C4490D38A871910C695C50008E5A5A0F4CBAF8497A56F6707F970B77962E13A5C09D8A6EEA50840413BA51E22AF3666098F23C12A9A6FF6785975BA75C6823E5980B78CB3E5D20B7EFB9307468BF3B06CBDAB62F0C4CA7157BB22E9595A4288E16416AAC3748099229D397A1F716AEF05676C2A035629C6878865940F17FA0D2AE5315C4340C7191B415046994B9188D4E22C50239901408B64C1132F854A13DE43884B8CBB430B277341E74318669D2411D49AE3D660F84E35538C7668BB8C7EDF39A3FB33BF7E45336FC68AB37477C037F7D4A460F3C211847468BC10E0AB67576605216F058153C4F5E041900265BA367AFBB21BB13600C4AA74FC55222BE11C88298B35789532F357157F48931C2A58CD6A75E82BF411A0311FBC2B84A67D7353CD13AB939A05D55157A19D226DEA6191D30B28AA916624872BD067B2D7597D73419FC5CBE3A46C36D0047C231BB4C12609425C1F672B69F57AAD8F091222C109FA66512046822B4C7C57AC9F2C9C701D7167697BED93C789A626AF045A8D5A2C2D51383E41211BB38B76C9684B3F044AE2026D8B17F397AA66707C6846531CD5B3DB17CBD072BC4E2747EFBD5749A52C8BFA2327DB1A0258829BF7BBE4F59B1A6D8B8D3954DB41BB4A20B0D660C21D6202759601630854EE75CC29454AB1A3469BFFA989076301132AADEC892978B3E15082BF84897238AC6432ABBFC59A21C43C0BEFB55E1B582D26344A6A7B507F31BC1495CE2D5943466996A0691D80405CC21B060568F55A18FEC917106D7277793089E147D759988569820E0254EE7896E9797612C655E71371178A14B37B3A2C2B18BDB952A5295BDD4385C190B3D61136F128BA74C2C57612708F900C144093AE460C86C7A2F0B1903FD9A889DD7874F6543A2E112219869819C35C055813A394333AC6C9C860AD7505F8AA241046A984403B798E3211469CD1D8A57455702B2816F0B2B3EC60B273B102559099528D306FF23BE250B50226B497B60B7540813F5B0C4A11732A6B9583A21B3DD2028E79A82EA0144EF34C32E4392A11241748351046B9454A50E9F90739D12A96A928E75806F24004B4A926F0E8769F90A921C4323D7FB7CC74C2E33248C30B774B795CEA60C47EC52A01AE84247E53243542EBD8ABC24A183E2D72247628269E108A5E93F11A45CA9561E8FABBF85AA61C6BACC2493AA93A38BB72421E8913FCC635EA0F2AE17BA41E43C5AF3C83382F0667B6113591B6AF80950D5074A3F8C4FC2E550CA9743DFBC4C1F797543FA784AD8687DA8A643476FCAE931C1C7477F063CC7C224DFE3BEF7E0AFDEBB5F91B2532BB867AB3C08CFDB6A64BA1876285BF6463B9A241512919C9B72669ED252FAA0AEEFBB963076592F9884B5E60E42C2008EFC08BCD1CC2BF31025C386CDF99B49283D6D7B0A24693618D2A2FAC3B7ACC60EC970B6D357B199FB6AF3039EB6601BD57506CF8292D3181EFF61CD380C525086962B58BFE53C3C0844431347A2F2112776818FA3EC2937B4B3B21C52BE816637C38A68AA5373858E16C18134093311292814101CC2940B7F61953CF5971FB5CCAE59ADA4373DBF9C149869A0833BCB97D9BC68D6581CFB803264599A9CB1CAB10A15178F6CB23DDCE70D060B0ECC7A0FEEFA35B6DB9800567417775E1DF95EBD32A4E67616381B48595933F301408E2CC1951A095994428EA01883B4A8A8D780CF960D69A18425258EAF63AB2F2752AA411856B78DFD60C2DA74C35F517718C3B117A98E968A72C3150105CA44FB02B14C439ABB81ADF5A94E2E5B7A8971848C4A9156E1445F41CBBE2C7C18785BAAAAC24BB87936EBCC8EF6CA4A951D1DE8C2E6C5658034C1FDE4B75DD1A176824298A669B0C4355AAC3E201380C42CCA5060192D06606E8430E135C50997579CD756DA40336541A781E6702C0041C696270B65A92D531E964A1E953555628929F7FB59A7C2A5CFBB90B4F04B129CC011F7ABA0942247908B22267DF9333E8C762143C4B68909694DE674CA14C7538604A7741FBD9004D861A04F63B74106729C6759718125CBDC40FFCC60C4AA30C7DA001E30C889276D48B1329AC033D5365D76C85893DA0E15590BCC064F0803CAD5E80355FA56974AC577DB713862545AA43747F9456B822E74E56E3A825E0F6259A3551565215DCAF4C9CE568C25D9C9C7471806210969146BB64C7AF9A03EC276AB4AB10E8DC227AB491473F09718C4A046E84889D7C40F0BD0878675DEEA6C8E071B0E819F77147631939C035A8F9A4644B3DC35C3DC328C1C0CC6CC537AF884D7C6000DBA9E1E3062C2D43A30EBA1873409422A5F664174D2F536E8420634558F4D427D3B8B48B96845B0F1847208C374F31D419988E9434A9F626DA5258C00654B6789122DE71788D6B259A29EABF83A42621B1BCC1924A79D3FB59AE6475AE6714296BA1528F30A66C2597ED308A3973A501CAE96E1779813195805B12B0B008090ACAFEB591AF94EA6394A2AC955FA1B5D8DC388498C6C8B1829428A838AB73EAB19C6CE4A409FC782FC399FCADB90C9A7A86F9799A3DB0273551877522FAEF812D452B6444C4ECF3B9A9670810354B5BD57BA43AA5C4F271A03B2800F5290650A08AE83061F331489265B2F2A3AB1F4B3159103773B7806157E26EC1892E2C3D121A601777834B52939A658531646E713222943A0DECB5B82BAA4BAC41F1CB2AEB3076A1A20A382698CE3919ED717408E0934FDE42A5E1CBF04C80F37D7DFC7EB53A785194C4A1232E61C37A5A57B333A2F41FDA2EA72EA11D8BD642D911F6AFE90E60492EBEEFDC17A9321927B129A56B51BE635054CAB9E84F2DEF59A3F8168E301EA2BE388C45B8CB022EC +encap_coins = 5D5B9BC8E9D09B6D5F96D13A5B7A8D8F491C15E7AB912A17CE8141299FB6CA44 +ct = 2639D412C91BFF206FB8C6CB4AE9C856190572E9882AD4643FA4C86348ACBFE3B1B45926EC301BE7FCE1929FCEB8A3DD90D3ACE7F1E3C450DAA03F791ED27C9FEED720D3BDAFC249AAEDA8B998756D13548FF2F537B9B31C43AA05E5A3E3B4B2858328E1EEE7A3A0565B83996AAA55595DA1525B5933CB8DB4F3CDF679FA49E5E83E749F5388745330B9383D0E95C4AACAF0459A1AFD9C7830592D1D3BD11D9E5DE17D96327C8173DF7A11D7CC8D7CEF3D058604935C988992378568E63BADE6FC014B4A81CE501ED3354AA96C2AB9FBF910DECC8736656249CC71FFCC59ED78F7E588A2F4C7F0375B6553261B57280D99340D3B31B6E1D10322468EA282B1F0F86CEB4B02DFF9EBA1E58D8B877029680E912E8722959B6D35AA5F67B347F0ABD6C8314BDE83B4AC72E3325E1997EE04B32A38A25B3CC442C00BDC554501EEDF5EC656F4604EFD7D07864E1C1D91265FBC55E4D1B1ED1DEAC7A1741C4B193CBD0D44634C76EA55B373C25E6589C61A094A887B9CBD249869D884520A22774D143082E40BDCBA22DFBBB0C2C0539CB0ADB8910E2DC0C2D31AC42ADC5724739D1D61986B8BEDCE815FBC5A1EEC10CB353FEB1A85BD53937A7CF21D67B60B31AFAB250CD78AA545F4BD87CF74042207FEE4783CA2F06E3E732727B7C5370EA85E8C6C0A1674371B3AEC106CD62A055475AC1F7417E5C163A64CA13ECB8213596A56194C32A34447C254E1E2DDB4EE5CDB7AE91920C351E343DFEF240D2F813C2D82C263C6A2D2B2A3A247293B94F00A156760043739868E92F15548CE8D27EB2C882A58B5385EF26A78E493AF496DC0B2429EFD0695A5123C2639251157303AE487397D77733EE8C5BEEC97892A7E08605A27BC1E6CD8FDD55FF57FD01B76C01034D75B8F82DAE3D4C6C0E6FB774C634BCF04ED73A6EF369F3569E6D82881CD9E9DA9E2234119CFCB3B77C7B7E09A0EB2CAE870663BFCC5611567D1AAD98919ABA772F4E48883D9309B4FE1E76AA15D8CA4DE26E9A42909420470972AC1C3914ED3986865F9CD7970E6FF976AEB7076244EAF065560AFFC6A62FF4459CAABCF3F6DE510BC3618CB9D694A141BE1C72DA5F72AE9DC92DC33885CD1A784DB13B257C2A0C9BDAF5D136F08F2298939CFA03F6DFBE5C385AE6FD1EE8F42C55CDFAF3FB5A493F04CFE34A6995DA90DCF71E29DB5327D151AB5C6D64297134F9920FFCF63C9C317CA0DACD04E52DFCE58C593FD0FD4647C88159F73611043401FEA17966E1EA01ED64BEDCB415199C871BCA8CC509602A10F35567CF4E46A4C0DF4A797F09DDEF923354503D4E2159D0B08E4607A21D9C620E6EE1F40BDDFB7881A8036B8E3996C3D6E8B28FD87B32118BB30794DC094F3E831AA16C510E7D3261F49A51F6E1BED4EECE9D73DDBCBCA81C296F78B7FBB90B9BAB73E9441C0F54BFC979927264815A90CD4524E2AC949F0615CD509C20BC206DC3B79EDBA7B447EA20A6CC3E71AA598967A4ED683860C6E7C42DECFD1C23EDF5A68353FC7D2304C72902E4F8BEA97495220FDF90F4DE357BD4836BB709D0E090CDB13D00BE952F72C146C57F3F5D3724D644736C3F1616CAF0317BE2042138B9D12BF3D0A98A25153A2C57141EBA80030E6FC8D554B6B5A323604F816939C8F63BD2BFA5B3FFDBA081B31B7B82AA97364182BE0E2ED77B03EEBCEC2229CD633BE7C8AF0A41CE1E6C095C89B58F04AEC5F736DEBA48C90287A4BD1E651D498B98D77EA3D2BEF0918F061070153A39BD0A511B6BBC5F5BB79220CE4BC74192105A4366CF1902C5C2508A363DF46C1983F7E415AFF5E5B43292159D9CC55BA42BBA1F82BC370C290E49F6475A1BC3285419DDF3F9B19B2317AB8BFD56929F000F1A8E42244BCEEC3881AAD6707E997027DD71453A599B557E249E8B52883EF3D2FDEDC738B85C719C3EBDFE92E4E45A6D3374BB34A4CFE91BF98EF4C8CCA55CBFF2E013872AE78FC5ED54F0BBE60F3EEAF62669469774CC3E8522210C439125892DBF5BE4E59895883408411EFC3843F811375C50C0FA403DC36CBF5C71946F039B1A233FEC5463472D24F13C1B59713D6A2B7B6EB63D851453EC92D18698A46682A86FEF9C36DF2B56B0F281F945D2BEDEAD520A96278F716CB444429CAFB879987699316E47A058C58647D6043BA71FD743D25C805140293852AE6FAB7F2BDDF2B29242CCC0ED42AC567BEAE +ss = AD83606F3B990EF1A68CAAA2CFAABE6A9D821ADB568B2E40C5B0EC318EFB77EA + +count = 82 +keypair_coins = 2478F7D3DE6041E7E5CD11C5E2EF483D1AA6218EB126444091535F6AE532FA73F0C083AE8CFF7A4BD779D4385E111ED4583FE00D30E651F171D7E8A90EEC0DB5 +pk = C3C489DDC6BD144A0458168E5B5686E92625325A8418565EB6FA0FB7619773356E92DA33DC0B479B1A8C62C63FED955F18AA4CB7BB2578E2A42F9B41C60C45728C75064A68D4869DB54845E8CA8DD38A5840B39B00FA9C4801107D0326EB24C7FD4612BD91275ECA20F057C27E10B92E0B27C07A4D621751EF66307CE584708A5A58661838B56E2B2670EAD04A9DF7CF09BB8C83842DCFE4CFAB4A83E75773E57B908FEB46BF44013744BFB1D3CF98D34237B29207961D5D5CB43D6A49B17601743C86640AB9CD4A1786448C89E12ADF884147E2CF091B66DA57883CF36363611E04005BE8376FE99C28FBC50092A034FB39ABDCC97C6AE0565DF82D4B59A947434D32938E8EE6687BABBA86236FCED497C57554DF73CDDE43B7DF119E86B92C407CCCF98581BC62BA89228432A4922EE5C47BE661DFB543EF26306F5301169A31B054CDA1449CC2FAAEBD04C2B5823F58997DEFC48F6DB37300B0C1C475A866B035639A5BDC4669CDE9297D5BA8C1348792C8C2FDF3CD2125CDD51C7C3FD6AB6B31B8C529B84CB42DD8E2A48FB240C6B703C787590ECAA1F74044B5E295122C0A81C3A71322A2F4C9A33EA67D341A4426D60169ACBDF19827759C144A271078582A33541BFA9367B757BAEF6890CFF95D32D68F6C90338A20298B000E9144112DC22F4BB3117A6ABF83B86B2B3B9CC244330B97392DFA3202EC7746D081F0A036360ABAD9D7028AB5BBDE47403CA1A7C68A2C1679212BA707663CA412692049D45017F4993BEAAD79A990BFBB416D3072AF8749F7F251DD51BA3C8B80CF34CC21EC923EE2A52EC3C981602C94D668BDC108154429508296805C156F05AE7908310FC176BA241CD35275B4C89E52786665E5798CA71A5EEA5A721B51DE6A78060A58F1A24DA91666FDEC925231C8C9F53D2FD270920092F29515DCE0A8A2C6CA1E68BDA6EA24B29424E22523A7D41773252E044356650AA5AA467B3CDB72BE7700D268572D620279CA0668AB514243599DE939A85990BC7CB640019BF8271EFB7B1D32487B2E912E4F0267FBF197F1E3C4DE63AD7455BBB2204DB4C5995641892330C5B5140DCF0A8009D135A92352E97584C1F294E9548AF9EC348E7408B448B85D234F6ED614834706A0C978AD9A08CC814953B8BBF2BCBD87071B597343629B3745D212111B7230AC9275C037D5E747AFE60CBB9B439B06BEAF537D6CC80BC1D1CA3DB49F53C4A935A0226F37A85B058F32E307CBCA9B7C62BA581B351FF5CAFB198494D5ABC4406E30932355754AB2A38232561319B0081B266B1FC714567305E0B27D3D6CB8457BAF9242C598AC29520432FBA3C3968C8E81078989380085178489EACB2C10C452079B1C33634DF13D82B81DA91AC85E43815F262C133075CFFAB454F50AD6C35410B295A5357E95FBB8A1D80964A40184A19618D2C0B7E13AB5828B60D461E10B41E3274363687CFC5849FE6BADFA11821A31C2F724735CA1C4CB365B16AC43CBB24EC865A6DEE75B7A6815500072065AAAF7B9AF31214AD30AB984C57515A94A67B7391A37044CC22C9976851B19CD975A2C3BE0539B213B9032928722029AC59231C90945A9BAD4D39EBE623C08DA1421D90FCD990BF8F8807B18C99A3799DE3068A09912BCDA3F5CAB1089CAA3ECCC831F64BEF79C538127B152F97946A264F4085C50299601043860D95832D15ED6F06051D12386559ACFC5934CF4110827476B32AF4498819E3CA252F28B48A96195F0A7C8E01A81D00C9063ACC0954337D360B514906504CCCE6A54BAB7A3624130630A5F93C97AF1C1A981B50EAB54937251B9E1388842847EC6F4296870B51866C04458152FE3844CD879F335A7A1FC0B04094D2692CBB2F84F4A02B500D38FCE69145DAC4D0E4339D7978EF6E651C6110154046050B52BF29751C0778BD5E0409A1A2145BC87B1554B5EE209ED03CE01C251F4F39A67E09F2629A8024896C6C59F2E9A2E26523273E337B2B80760DB1025F5B21931A82673BE930AB5358381241ACF46879650C208CE840B48041997500C8E6A89DA2B59FC5BB6830C5C6CEC510B13C74724A93FF7978C3A2B61F85F0B10BA790512D6422900DB29D542AD96D8B6C0D954205A0D2C74810EC4469BF2B902811E5F5778A4190961853C777514319CAB0CC90CC91E7EFD93A5D7DB1850127DF85B8F086DFC57F1F62A86D6EE7E45AFF3F27BC1 +sk = 6C33B8AB2B4FEBAC9FF7DC3E4A689F468A4F08D5C87EF8A142B4766E24073DF336EFA5A0D6FC17B6BB2C615658EB04AA9035560FF7979E27C65A85CA6B1B9BFAAAB23D89C6A825CDF7E312F81066D516BE72680E5A665830F74E371BC411BA86F00704DCD3C40C8C1295D6B52ACA51AD41732032535AF95BEF907127EAB1EEB54899A36961793EC47B91D9725643664082C4375F4843B0031B815C8DFFCB7F25D4414191746D5AAD14093BF2C005DF655F69917BAA956721B4CB8B8B51531A4A6C0CA50F8AB21DFC7CD9F81D730157A59B971E4B4A0FBA8EF49754A7C2BE0325C8BC623FD2A94A6CC4226677260FFCB64D75167D63334E395DF5BA4505495CBC8C3A3E40AB68796D6C646775339C29683A21F921A7C6A79D39A95C876F782A27A6365908381D793B537D1A681CAB5599817E050CCCF7803BF9A90CCC4084743C96069183B08702979C9DCA2B9D9BC26E1DE849976AA1465B29EB260FFC64478C39945A9B402520172CD7861C5A0CC089A028C8200208B3E4D7B3A91CC8C209C5E1D201278B01CAB34126C701BFC2913DF501F6D73D9424CF1176B8616C04C10940EF9832957585EC350E9761505162AECB28884F659EA23125C382CF24F383F9B09FEEE8AACB981DF21A6BCEC26E2A67493B919FEA06170C18B79E5A01E6E89516707BCC7CA353727825514AA0D52504606013E53BA916BD133814C36B98FFF15F847B7383854F692450AAD28231F2BB4FD839D2B532066114DA65BE8CC5073F9992E03836CA3A623C301999A56FB00332D1BA8A26D599D0F5A97975814BE81FC9DBC536D1C165A131CA3C55D04A05D7A53FFF1299D3860CAFD8BC6E3B97E72A595D294303A12994510F74887FD1D7BB18DA70BFC5BDD58C1F6C1CB56F5994B7F2225CE0AB29E8CF3DC851F1AA5BF2BA255F7215CC71C5DA95115D6A98A2317224BC6DE1B2C79353BC5C3C046A7A0933A73419F7B117B88F3A53777143546CD29014E15E37C33770A8A9A11BC2F38777E400132A812A984908B3D2B87FC465B564045E79453C0666E3682A894C269551AFE25286FCDB681CB50B260B4327B46C2D0699BECA103965B0A218902EB4680C1B8C3ECB2011A396B0DCA97D56AAD231168FD9A7CF177B85B7729DE4A4BF035482AA7758ACA9E1F36BC9033EA34C6DFF91091E8B36FD2A2C6B1094A8338AD540C8F53CAB80D73E7DEC3977452915B616D0F0BF9E842663CC477CDB5DC94579D6222D1B647EF4D358C5435D3D0799242B66818A683E8C5651B0B26CE4909F8656FF35CD7FFA1C5988074FFA32DF093BCDA32AEE2003825593B545B44190787C4C8656D85CAC293F615811CCB35EB0413F44B1722E0A182F09481712AC68E3C9D31085EA77946A54BAA91C8AB8E814C5B94206070C0A6037BC02A292082018933A5AC32141180A6DC760C2C9ACEB3B1A1505464150A732664AA51B02A721B63759379A638BBFD07FF9A7A84E071FDA70200C61894A8891DACC375C120A35E0A4F296A02845477BC0484FB5BC539C3B8BEA3ED2511D480B1DBE76C640622B67A1A8E000B954057322CC005F88284D6290A5D720E32B5F6CB6B992BC182D66A73B5019572867640343F267133B060545D4B2668B05E9D1AB7B1AA5C3287D9B08A79C9A5C9B6C93C5165C0E6B8C40D527DDFC01B3B88354C73F2544B5506C1E043100B4C399D2B6B8DE81CC6271495B3C00893B744584AE83E300BAA0531D191BF77015F28B2D95911CBB2A1C16265DB900761C5333AE8074F387A97258CC0ECC391500083EF0922E00C692C9AB09ABAA30C54984E918CFB332F96172EE1A0440D3B92175B386309475C92C25199D6FE75B1DA41D0B86A68131A57FA839A1884F526948BFECCFAC320509868235F05CA7B57952B3C5E65204F11C81C3077CB14C0B33633F9006B5D3C67F130C3D78038D7FB4934E4CBE8E3429A0C737EE48BC96849F360C83F2707BCC23432264728DF21D4AC896E51A06A3B776CA7386D6072046ABBB52C655DF001B3007AF2586B07CD7C81F38333784C2CF671CF7F3830A6144D4107FA40480852B3BB4F22BD2A33585E88E47C2B539DC099C298EE492CBD7D7A3BC5707C3C782D8A96A14701C352C1FF276A15762AB624C6D307A5B4DCB323FAA9DDCD52289D60531D6A93BE9C28CFC9EC3C489DDC6BD144A0458168E5B5686E92625325A8418565EB6FA0FB7619773356E92DA33DC0B479B1A8C62C63FED955F18AA4CB7BB2578E2A42F9B41C60C45728C75064A68D4869DB54845E8CA8DD38A5840B39B00FA9C4801107D0326EB24C7FD4612BD91275ECA20F057C27E10B92E0B27C07A4D621751EF66307CE584708A5A58661838B56E2B2670EAD04A9DF7CF09BB8C83842DCFE4CFAB4A83E75773E57B908FEB46BF44013744BFB1D3CF98D34237B29207961D5D5CB43D6A49B17601743C86640AB9CD4A1786448C89E12ADF884147E2CF091B66DA57883CF36363611E04005BE8376FE99C28FBC50092A034FB39ABDCC97C6AE0565DF82D4B59A947434D32938E8EE6687BABBA86236FCED497C57554DF73CDDE43B7DF119E86B92C407CCCF98581BC62BA89228432A4922EE5C47BE661DFB543EF26306F5301169A31B054CDA1449CC2FAAEBD04C2B5823F58997DEFC48F6DB37300B0C1C475A866B035639A5BDC4669CDE9297D5BA8C1348792C8C2FDF3CD2125CDD51C7C3FD6AB6B31B8C529B84CB42DD8E2A48FB240C6B703C787590ECAA1F74044B5E295122C0A81C3A71322A2F4C9A33EA67D341A4426D60169ACBDF19827759C144A271078582A33541BFA9367B757BAEF6890CFF95D32D68F6C90338A20298B000E9144112DC22F4BB3117A6ABF83B86B2B3B9CC244330B97392DFA3202EC7746D081F0A036360ABAD9D7028AB5BBDE47403CA1A7C68A2C1679212BA707663CA412692049D45017F4993BEAAD79A990BFBB416D3072AF8749F7F251DD51BA3C8B80CF34CC21EC923EE2A52EC3C981602C94D668BDC108154429508296805C156F05AE7908310FC176BA241CD35275B4C89E52786665E5798CA71A5EEA5A721B51DE6A78060A58F1A24DA91666FDEC925231C8C9F53D2FD270920092F29515DCE0A8A2C6CA1E68BDA6EA24B29424E22523A7D41773252E044356650AA5AA467B3CDB72BE7700D268572D620279CA0668AB514243599DE939A85990BC7CB640019BF8271EFB7B1D32487B2E912E4F0267FBF197F1E3C4DE63AD7455BBB2204DB4C5995641892330C5B5140DCF0A8009D135A92352E97584C1F294E9548AF9EC348E7408B448B85D234F6ED614834706A0C978AD9A08CC814953B8BBF2BCBD87071B597343629B3745D212111B7230AC9275C037D5E747AFE60CBB9B439B06BEAF537D6CC80BC1D1CA3DB49F53C4A935A0226F37A85B058F32E307CBCA9B7C62BA581B351FF5CAFB198494D5ABC4406E30932355754AB2A38232561319B0081B266B1FC714567305E0B27D3D6CB8457BAF9242C598AC29520432FBA3C3968C8E81078989380085178489EACB2C10C452079B1C33634DF13D82B81DA91AC85E43815F262C133075CFFAB454F50AD6C35410B295A5357E95FBB8A1D80964A40184A19618D2C0B7E13AB5828B60D461E10B41E3274363687CFC5849FE6BADFA11821A31C2F724735CA1C4CB365B16AC43CBB24EC865A6DEE75B7A6815500072065AAAF7B9AF31214AD30AB984C57515A94A67B7391A37044CC22C9976851B19CD975A2C3BE0539B213B9032928722029AC59231C90945A9BAD4D39EBE623C08DA1421D90FCD990BF8F8807B18C99A3799DE3068A09912BCDA3F5CAB1089CAA3ECCC831F64BEF79C538127B152F97946A264F4085C50299601043860D95832D15ED6F06051D12386559ACFC5934CF4110827476B32AF4498819E3CA252F28B48A96195F0A7C8E01A81D00C9063ACC0954337D360B514906504CCCE6A54BAB7A3624130630A5F93C97AF1C1A981B50EAB54937251B9E1388842847EC6F4296870B51866C04458152FE3844CD879F335A7A1FC0B04094D2692CBB2F84F4A02B500D38FCE69145DAC4D0E4339D7978EF6E651C6110154046050B52BF29751C0778BD5E0409A1A2145BC87B1554B5EE209ED03CE01C251F4F39A67E09F2629A8024896C6C59F2E9A2E26523273E337B2B80760DB1025F5B21931A82673BE930AB5358381241ACF46879650C208CE840B48041997500C8E6A89DA2B59FC5BB6830C5C6CEC510B13C74724A93FF7978C3A2B61F85F0B10BA790512D6422900DB29D542AD96D8B6C0D954205A0D2C74810EC4469BF2B902811E5F5778A4190961853C777514319CAB0CC90CC91E7EFD93A5D7DB1850127DF85B8F086DFC57F1F62A86D6EE7E45AFF3F27BC1D3CD2FEBE168B1DDF776B954E96085A7D475E3C8CBDE68F7C80FFC9FA46B0D43F0C083AE8CFF7A4BD779D4385E111ED4583FE00D30E651F171D7E8A90EEC0DB5 +encap_coins = 075246AEB644CA0C05B7D6E50083363D4F89291711D8412F0131CB1BDD2C70F2 +ct = 74E0ACEABF3F4807D30488369683EC66D980F8BF8883B87A3700C7F0EEBB79FC683354A271971727D6E541F3958C48AF3E38AA73BD6F595582508B9833DE14B4A472DF3B93BA60E64347160F78034E79C4E71C57929B515B65FC59364C57F2EE10D14F00FC65053479B5F9224D227FC7F10776ED41722E7FCEBD907C2C7CCE5CEBC04D22CDB66092F52E13F10BF57366DD37BD4B899CE36453B7ED4CA5D037B4362547970B85BB56BE5B5677BEEA40DCCC3677801E0B4C4DAD30E71ADA2911E40D6AE64FF553E480A72139ED75787D96DB938D6686C5CAA055B35A8A05A386D735529FD70E4FEF0FE76D500241AF2CF5C2A83F9B7DA1246CD24FBB725CE92F850AC25125692C6A2229D149F5CD3A329E103FFD1748B2295549B4ED2642456EA1B72171A5A72CF8C8A9B04B5906C2CE927A279B35658F098F525F5D92F8D5F5DA70E2E5C79F57DDAF5D434D9BE820C7E0EC26057EA55C855F85AC52E87DFD97CC691743142AD70026D717363A6890932D7EAB758AE108C9483E459A83AB6F95B3D00C86A39135E8F6D6D7A4E8E88BD21EC0307E2DBA6F0D90CD54A5A8BF3533DB8C04CF5C95F35445BF8FFFADB27190D25CAB0FF032D5B46AD2A832B55E22AA82DDADE57F38D55888EC5AB46D72006E5032F8C40BECDFE08C9B41AEEEF6406AA543A0241E867DA5063F68D5EBECF572CB2C32620685CF36D56889C002DC0EC9801A0E11B803F7AA595A53D08399425AD04158B41EA50FC4EFE09B0D6CDE5739F5E389B376C242EAE9DC22AA1389913B7356AD25ED2FFBB2E3FEAC76545347E12711EFCFBC88FA4BBACD25D8E4B3680364A790EA6E93FE52B012FB997642ACDD9865D1C634D2A75F42051D65FD08336BB6DC66A7587B53E12EF5E95057522123E36697891F060240AE008CD9A7F165C09AEC77B38BB9BD0AFF8912DEF4742293D46D1E829E6ED46D71B549E8552C653E121DECFD27D322B66CD194C0F99C52D3DF60B97E5BB155E749ADFB549DF1BA6383ADB3755031D1D0C4962B9CC1DA14874693580A3EDCAA7A78ED19BC5251F0EBA70E070BA6C401666879567067A628479B4B40744F10B63AE87608699EFCC0DDF867E2F2E53F1C6802737341CE478C5971A22D8F11CFB19CD615030330B71ED41F815A8686A5B20EFB3F41B277F437DDA1939D4ED6D06292F615B74D410AF7DA3E56DA7574663FC5FCA37F837CFDFC2B5096E406766344615649AF337AFE20DF456CD1521BE7F44169A4744F633A57D4A03B9BD3D8D8DCCBF3394F86AADC5688ECD63F289BFA594B4EA49523A216E328880CED53CE399DC57FC3A234970AAA2DBE1642054B8E1180D65726962FF8D252C02216E77350FD06F90CDAA6FCE25793C5550FC9B71F6E7447C793395FF6201E95AEB206EB4DC6B5C68278E504E7316B9DAEFBC8B6C67E11044DEADDEE7B96C983B3B3B4D0B6365A8B4B94BDDBDD47E7BFE0EC9E93A716F8891F085C92272B7B6ED3A2AD939E908628B62DB303AF55F58B8B667C413B2A3CCFC3E5A29CFCC95E3AD8077FD632597160ECB060E41676AC99A323BB0D12800C00C3545F5AB1B6C033A427AABEC36AFFE77941F0B86A39798834208A36F2FBC6F1E54D431BE9C591D1621BB4710DBA80A90A4821D359FC5B3D83D2B5488BDB0BF7F4A1A65B7BDE4D76BFC3458ECAB841B1897FE5E959AF70B486B3DBC91F60FC0DF054D7062ACB4F4073505222AF4AD31482D96CCA05360578EE64C2F54C0B995681D6A7EC603B846A46FF08043FFA04FB346A6F2F11B836BE35184BC0B5A21A71984DF5D18EC529188BE655D286165DFCC326BD99ED02DA7826A8BDB474878F4D8C75664C870EFEA712314992B47F2C72C687A039A59D0B91AF8A6F1610527AB3C561CCA5B8AFAC946201EBEB21FCDC5B0C950E56C6C8E2AE5B9BAB83222A5F4784AFEC71B65A3BE40E0235FAD136361B246F68A897EFC2469F9AC97CCD19C376836C6247ACB3971DA62B9E9EAAD1CB726812CF9FC57D3CE20F7420580CD625FFEBC289EDB250F59A3BF8F79270E8B2F24283B3A6F7365CAFFD3E55DE5CF76740234D69717CE08B82D248093581FEA1AD931685EE54F9EA69EC88524D6D7A3079F844BFC912EFE63159DFA525654192C91CCB1869620BA09CF48C01EECD3D97C8B6D6077B6D5FA2376F82F5D3A8B5CDFED0EC395AC13D8491D1E59A756069B5FE7C2F0A276F5939F0 +ss = C44B00C1C88D088CA76D16D2B3F2A5C398347A36145CF974472C16712C5736CD + +count = 83 +keypair_coins = 9D405D3EBDAF35FA8722DE431B669722ACAAEA2FD10B814310B17F78B66147D1B46F84F01FEFC519E118AFFC4A7A1560F1F8ADD6DE72615229B997B2CAD6393C +pk = D3BCBE7EC12D1AF108849A2CEA79BE2DA250F029382498919D670022F38BE928A341B9783E164567AA87A9055FCA176AB4870A2C4A68473C737B9A778467855C1C4186438A65333795F5A5B25641F86B9F5D4C682B1A878EA7463D51504BD6B62A44B0C0251AFAC229EA8359DA303066531EE34451FCF796544125F933CD52F9B2A5E72E1A42A45AC9A80730376076CD57A289D5D97E4E1C5826757943471FA4AC0B7DCB737BF95F92F2B94F844B2B26297B2A44DD9013767B8B2CC7C1C8C83583E78F12E60050EA0E45E3453EA86166B70C21B0310059C58E684ADE01B18F93440B0292DCACB6C9E3488E235F219C91914302D1495134E9C2B2A3ACB6F4357C740AEBB4534448BC482A07ACE3B2211BC6CBFAA95BA4171F955FF915A1D5B13CF07184BBB230CE99C8A13264D3B98C0AB0986D62CA8E22286EC90029623D0F033BD4C13A26F08120F76ABA45A904D01266520206E6A76697254B7120296820D0A0A29F662FB623C34EB282852832C044565860200222524B42CD2C8676CCE763E28555B8E86A2C710B47D40A788513D140A41A65BEA5CB054B73CA98C3061A39C6276A96269CCA4597897C37B25F672C0F3766BE5065A05B19B4CCCB1A6771421B5CFDB7094C89C48C20CAFE814D98D41BB5733ACA166E044810704B1F9D632ED279275C802640D2BF754A99367B4A5FC959C8F309AA028CE21057FDD943DE716E3F66B76660011AE354EC9475B4452932859D2DAC38A853CB1EDB09E04A367E02A92E89794A0C4AD866C65F3B4657492D0B575215E7926BF455686393AE7C507B9C8B9062C89B2310725BADDEEB8A3079A7301B5BE5F463F826CCBC8719E017550734812F1B18DA724B99641E5406244A28AAD89920731B387B934D02667E86B2051D35AD6820909924551430177F934650B61EAE840D952B9F1F8B7E22AC6D6B005013439A01698644B2CAF2B205044846D84075B715835A18C5DF409F686A78DC675AEE4944ECC806339B5CC8D8BC64D24BEBF75A74207E60A37787C59C5E6875F61238FB43745E58BF3D2168C844B7C24C4EA2822F3ABCA76163A40A219D2798A2E1A8C606520C5A622653348A63980E61F52654B385575697D56C86ABC5536AD67264A7C3813C1A1EB21442B1C0FF129F93810685A359FB13167E59B2DF26C6068B641738B6AB82357C95C0CAC43A21F867E005C96E1A4DD240975264606CF8CE8FF7BF0984770A282C969253189CB70CD3440A92C56319C9387733AF98CFC8892F0E6736C6B44A0B952934071737A24A3400257E3C1690EC9F76726A327521AFEA4259D87EB6978D4C77AFAFB1B9BE81CC4CE1197592BC26908C469863AACB89B13B231FCC9669B8ACCB2A4A61F641CA173DBD2A1494519B77ACB0DEDC284F068E5FF73BFA9109C1FCBF34B15F3C78C19A6B6EB693B64155B5E4E77D67547D35B56A0ECB7EEF98798AF94F4319997FE1BDCEB9513C2AB34691292BB961DDD202398B99C8F1AEEED7302262359BE5B1E53689103246A473549B8274A1753721C621A0F468A6A9080A007287731BB8D99360689FE616C707A9C0C04C919B05A5ADD406A7D1AAF9D675922439E4224300B18E5D2966A6104CBC5A43786584EC877198DC8317753C6F0109A11C3808A50693A55CA75B5F75E74D475690AF046E535AA79C7B4A1606A6D4F05E20C2CF9102593CE45770DA720531CBC50552F1B097A5A96BF291895AD9C0FCBC6A462068EB2CA7F65217F0678D0E25C447161CBD9029EC24845C5C1B2B7832AE41172EFB8FABE6543AE3BBDE44A0B9F926B1538CDB6685EB244CABA69798298B8FC38FDEAB5043A567C6C8117091523209CA8DD342E3BBC0E8CCA579C603DAEA4E11B06BCDD5BE898B825452A28D15261BF9ABE00A7ECA0474AC4C92B0938AA2A00854F3A665EA56169B3C572187EC88945D6C9637B4A8F91249B8614E9647760EB68D2C08C21F390E36370CF30CA0BF0B5C48F7287C822026E30850754B51682A0EC016F4FA0773B642D4C5481502BC9F023DDFFB199FD241F3C977A9522DE7F61EEF4B0AD3166515697EC9EC5EA87796DC6A24DA4939E8B5AF7FB191F861ABD3850E4ECB1F8B819DDFE605ED6A113AE4075BA67414B4690F59B2A6121928EB21C4D5CBBB4551D2C00FDE22B537522663745B46BB71890031FFECAF8FC027D2DFA2A4AD271DD702F055836F40CA137E5D0EF9 +sk = 2220BFA6A447DB5013ED5811B45742B6E95C723A35851518E04B1B619C5607944C341A1ACA4C0EB297BFE3990D514ABA3DE30867D646CD76A1EC1176F1E84EE60704B0E04366E27ED0F321BBF42322F5289F5167435B880851B48DE717E40A1B56387D4705815701BC2B80C55F33B3C20244E0E27FFCF43C457A3674000A4404B4157CBEFA05C54F50021684059939A3AA088DBBA13BE56047DF450AFE33C8742ABB0CF48E0B1C24E8719EECE41EC4A3254836B4E45B4EEBBB43D398A813BCCC0C42CC4E437050740C892B657765B252943896325E3F4C45887452847AA315BA8C811B39254A5C3EE64F65823FCF2A92E3198D2981289E021530AA4CBD210FABF51094392E25E755D778A02CA145FFF47165711AB9397A0F9B3DEF26BD0E5143C23A815C8582976521D63BC74D8B42B95280CDC77DE3528628862F44D475F49AC204C87D2647414A4A136A094B7FB923BFD3496B187592E81B8168BDFFD9522F60BC37052FC579CB3F7A398DD677BA14A3FCA1248057A59A58531B7A1F1773735A27612520B03121390CF624D46927CEC7C7D00AB13DC2BA6445236BC68642EC9659D7BBA40AA692C40794BC4BF5F13FBB617E711A54BD825329AC6A9AF2A88A54A600C0CD6754B4A3ACCADB397CABF2AF41463C00512D6D206D011BAF6D833E4ABB8DFBF736DF8036278A8125389C3B99940881760AC150967464483242DD52358A075271FB82D949AF57F345E5DC46845A94A37893613A76B6E7B4D0DB0EDDA213302677FB73C493A349704333278B201B6BAA8315731A348DED27283DBAA05E057C26C35D68A5252F1715337A1543895DFA4C395F9909B7B1283B450B71730292C32DCFFCA05221B14849AA5F94888E2A3FD33CAB3B380F8093742247AC27012E8D7A6B8702983DFBA43601677679568A8051925133FBF6550DC318E387C3E3176EC9C3CAD6A739C6BA5B72FA587F000CA8F06EEA003CD05970652B0F3F92B8BD4AA1570B02CAB21D2BD0A9937A499943CE285B32706589C11CB662461444629F5C755B4A09805DD5659127BDCF5466270A5CB6328FDD0583E701AA98D34095506284B63A6F7B39D0B31FEDC43E20E4BCB39B99D82515E041627FC5402290BE758A062822C26B750463141D9DE8793B385F556A3A3F74BD8AB61F69304AC4082E08F2CD05E5BEADE17D2C87B9535A084A6B0547389D08F548030B1DDA0137D170039E082C5583BC83695AFF0898F7E19E54204582989556B924DF35A00C518AB95CBB466B5BA0D8AEF007A8294294870902E74152832365FDB79508B69E45484139B4342DF8C391864B80E807B9DC8DDCD4463FD1A986986B81A62D79AA9565308AC1471F09D09A23F24E4EE5522B00265770674C61348FDB3BFDD539994B20FF22B210162961B56DBA538252610FA607372DB1317497B85307B61D890A62B90E4DD37246763DC6093AF5F4CD0DC20081BA4CE2D6BBDC969580607022C590A1687004B0730AF71C60590D1A6B2A5E51C742D2CBBAA826600055F4811287A062DA1696A22808507AAC327A9194C5C6D49C823557100C158E60B845AF953539A855D217C5A77599B1783F7488AA85F222DF73B837E4B8D1006A8FD6B5B06083A3884F67E9CB7E962CD3B8A8CF22951F74AECBEA2D599C533DE42A0CCB5E94439144551F5D839215D9021FECBD03D8B856D66D37331997A77F46F067A83727BB0CA6B3746F7CA6A233EA575D908775C5A7EA497917B17B51EC8D58350AACC1CCCAD921CA06061E82067FC9215C5A3E75B861491771196836BA56C99B25CC5AC10008730518311FCB7A2ED14972B72533C7C890D83A5E34F75E0065021830386B1456DA6A6CCA5A474C3790850A71C0E84BC7125FE21A9FAB396B37287A106BAEE569A7ADF0845B49B096F689BA245707647E7FD70EFA020A342C45335CA9E0809982ECBC38F55D4F9A9C36578198929EB8290E55848D04AB7C952513EAD8484D44CF46F6959717B0C009938917AD916909DBC764746C3CC612B5B72B4F16049140B5C261E29B326716E401470E7B6598AC37C7C57DD3D47D548377A4939A0A7886EB7780C667B4339873BE5AC23765A05DECA7B264978B14952920AC0880A274D3A5FFC825B9A891DF5560938B9FBA313E05E782691BB9C0488A7838A4B4CC6CD3BCBE7EC12D1AF108849A2CEA79BE2DA250F029382498919D670022F38BE928A341B9783E164567AA87A9055FCA176AB4870A2C4A68473C737B9A778467855C1C4186438A65333795F5A5B25641F86B9F5D4C682B1A878EA7463D51504BD6B62A44B0C0251AFAC229EA8359DA303066531EE34451FCF796544125F933CD52F9B2A5E72E1A42A45AC9A80730376076CD57A289D5D97E4E1C5826757943471FA4AC0B7DCB737BF95F92F2B94F844B2B26297B2A44DD9013767B8B2CC7C1C8C83583E78F12E60050EA0E45E3453EA86166B70C21B0310059C58E684ADE01B18F93440B0292DCACB6C9E3488E235F219C91914302D1495134E9C2B2A3ACB6F4357C740AEBB4534448BC482A07ACE3B2211BC6CBFAA95BA4171F955FF915A1D5B13CF07184BBB230CE99C8A13264D3B98C0AB0986D62CA8E22286EC90029623D0F033BD4C13A26F08120F76ABA45A904D01266520206E6A76697254B7120296820D0A0A29F662FB623C34EB282852832C044565860200222524B42CD2C8676CCE763E28555B8E86A2C710B47D40A788513D140A41A65BEA5CB054B73CA98C3061A39C6276A96269CCA4597897C37B25F672C0F3766BE5065A05B19B4CCCB1A6771421B5CFDB7094C89C48C20CAFE814D98D41BB5733ACA166E044810704B1F9D632ED279275C802640D2BF754A99367B4A5FC959C8F309AA028CE21057FDD943DE716E3F66B76660011AE354EC9475B4452932859D2DAC38A853CB1EDB09E04A367E02A92E89794A0C4AD866C65F3B4657492D0B575215E7926BF455686393AE7C507B9C8B9062C89B2310725BADDEEB8A3079A7301B5BE5F463F826CCBC8719E017550734812F1B18DA724B99641E5406244A28AAD89920731B387B934D02667E86B2051D35AD6820909924551430177F934650B61EAE840D952B9F1F8B7E22AC6D6B005013439A01698644B2CAF2B205044846D84075B715835A18C5DF409F686A78DC675AEE4944ECC806339B5CC8D8BC64D24BEBF75A74207E60A37787C59C5E6875F61238FB43745E58BF3D2168C844B7C24C4EA2822F3ABCA76163A40A219D2798A2E1A8C606520C5A622653348A63980E61F52654B385575697D56C86ABC5536AD67264A7C3813C1A1EB21442B1C0FF129F93810685A359FB13167E59B2DF26C6068B641738B6AB82357C95C0CAC43A21F867E005C96E1A4DD240975264606CF8CE8FF7BF0984770A282C969253189CB70CD3440A92C56319C9387733AF98CFC8892F0E6736C6B44A0B952934071737A24A3400257E3C1690EC9F76726A327521AFEA4259D87EB6978D4C77AFAFB1B9BE81CC4CE1197592BC26908C469863AACB89B13B231FCC9669B8ACCB2A4A61F641CA173DBD2A1494519B77ACB0DEDC284F068E5FF73BFA9109C1FCBF34B15F3C78C19A6B6EB693B64155B5E4E77D67547D35B56A0ECB7EEF98798AF94F4319997FE1BDCEB9513C2AB34691292BB961DDD202398B99C8F1AEEED7302262359BE5B1E53689103246A473549B8274A1753721C621A0F468A6A9080A007287731BB8D99360689FE616C707A9C0C04C919B05A5ADD406A7D1AAF9D675922439E4224300B18E5D2966A6104CBC5A43786584EC877198DC8317753C6F0109A11C3808A50693A55CA75B5F75E74D475690AF046E535AA79C7B4A1606A6D4F05E20C2CF9102593CE45770DA720531CBC50552F1B097A5A96BF291895AD9C0FCBC6A462068EB2CA7F65217F0678D0E25C447161CBD9029EC24845C5C1B2B7832AE41172EFB8FABE6543AE3BBDE44A0B9F926B1538CDB6685EB244CABA69798298B8FC38FDEAB5043A567C6C8117091523209CA8DD342E3BBC0E8CCA579C603DAEA4E11B06BCDD5BE898B825452A28D15261BF9ABE00A7ECA0474AC4C92B0938AA2A00854F3A665EA56169B3C572187EC88945D6C9637B4A8F91249B8614E9647760EB68D2C08C21F390E36370CF30CA0BF0B5C48F7287C822026E30850754B51682A0EC016F4FA0773B642D4C5481502BC9F023DDFFB199FD241F3C977A9522DE7F61EEF4B0AD3166515697EC9EC5EA87796DC6A24DA4939E8B5AF7FB191F861ABD3850E4ECB1F8B819DDFE605ED6A113AE4075BA67414B4690F59B2A6121928EB21C4D5CBBB4551D2C00FDE22B537522663745B46BB71890031FFECAF8FC027D2DFA2A4AD271DD702F055836F40CA137E5D0EF99499C1B006A0EC2C299C41C3F728C3BB7848957FB2BBBCD05B65233B89A2B1B1B46F84F01FEFC519E118AFFC4A7A1560F1F8ADD6DE72615229B997B2CAD6393C +encap_coins = DE5840C7A3B6585C81CEF65C8256BE98FDE71F70F5F5F17EF8008E64849CB02B +ct = 6C012862CEA22473C569F40C25824DCBCF839287AF1A8A1995012E54531F6831AD96AC60CC3571275CF5B4A5A338AB44C2F1ADACE78335ADD692EE353362535E85CE2A68A1A35860BBD324C7FAFF3A9D703C1CE872966497931D50E37CD4B99FCBC640E7458D863A48EEE89730365B962D6F15D9C8F3CB57FEA3325F44138B429436CAD5B5313500278DB9F213178C6A4A6C5C8C690AF90829FCB03C0395365B4132DF85D4D6355DE746495932DC5AF1FE3775579D2B24424586960BA6331F1D9B68016D097824222D68F8197243C7D54BE7B653C0907004AFBC72F3BC21CE80B45F90700C58D17CF794B309AF9E24849ACC1E51A2FD915B81743E5C163F0CA6F99F5914E25BC8FEC2451587E4527085FB88BA8665E39F6B31BD84442E04CBC2A7FE6FB263EFE29E764897A2E09F1229F91D2D7154F376F8CF1C7BD283AECCC2DBCCDF790F8491BDB0085CB91747D22D31E5F04124B70CC44125C96AC6245282996BE45939CF76BB5BD0C93576462C4D98039B8BED0ABE0DD3AAF1FB1B7EBA57397C670100BBB95A04A541773BA04EA65A4741213AF2C6FBAEE19A0AC77614DB00D06BD08040DD92715A4DEA3D4CE4C7E730466CE9710172D6DF80E26F5BA428EAD0027176BF51C908A7D0A9905DC70041C6BBD4F2636905951FC875847CFAE1FF328EDA4FD2527B64984987C24B8624FE868E04BAD7479C26DA50B5E0108D8F4E9D550D85255A2EFC33970E2201F03800DF7CEC4EE5C4EBDC2AC9E1D7BB3696B7D43FA43301AC88D5B52609C14F98BF4E0BBCB72CD0E7E33DE80667D5DCAE4DB5C567A2478AB0B8D19C7A8E4581E3B95FA5A7EEE2EBBC3F2384BEC40DC9B8D083CEEDED4EB48AD214AEE698519E8A8A5AFF862B6FAF1544D84177D19949829FF9B02510A63323B91EBDC4DCC274E0DFC0B361BA82D3FC74420F43AF60E5DEE0BD1E5F0E5683C4F758249CBAF8EB831E867735B88172E33589F1C4703ACDCA0938B57A0857D7A1987A0FC359F11D1A516B175DE9B4422B78A1F2425C2DC71A646BB0A8FB7DC06CEEA854C9DFB4E5ADC9AD46FED85E5317AE9F143A704C171960BEE106A7B77A1330E6565DDE9E0F087422DA85C33807A29EB2174C1082C6E633FB5480878406CEA19D71FB49EFF41336F6A41480E26F3B18A66A0FAEDF0B242125098C3EDA06209568FF9F2578DEDE47E0AD16568BB5F18B7260BA73DF1DC286C09382C7E240634C13C16CA18A48414F5A9816E778DA786F08DF7DB718019164A085C289FC463D506DE20666A76B0BC8DBE38984774DBF1B1224F097F3C42D05705726E3454F59CDB4404ABC3E387911119515E9760ABE072C1154152E852927EFF78BFCB81228C907514F951C6471234848D0E7C86D2633F1F95C71B91C535408EE055149E9B7B48E6969D5E3F3ECC0F6AEE90C8A4C8755B95A3EA1010A5A269DB960FB9BA9CB6F6DAD3554DFD18C70D7BA8C80A0F9410A418588A2D14C5409D37DBE148399826E4C1CBC035DEFB7DDDB1406A95F00D5E6F5BDE93C3EFCA48FEEAB1464DFA4532F5F976EB70D3641974E850084BE9DD593DA45AFF90E9F4009404E78317C70B5141AA67109CC41490545A951411F14AD4797A48FE344334EA3F92CA163829987A64FAC97183B44A14C9AF927FBB0F53B7DC5CBE42F0C760D5572CB93FDB415E3283A01A7D4776B51AFE99E310B5FBA7FCC5201BA649E78F8C26807546E3A9BF47CA9A0852379D3212CCB47CAA6EFC3B9EF77984BF2F713C2A01CD1CABB4B5C1C7E01EA60BBA182F059361B247B56D33A70C9EFCEF72FF3AC836F601255B6EF63E1DF388E421E5E02B24209EEA71518B84C62ECEBEBF501016714780858858ED6F6F0DE4DA4A55DDC7B68FECA4D6C0162F606561362DA92D661806F12B9BFC4925DE41CFF733BA599462378B924D40BC76B594C63C5B5AE2B40F9020374AD929CC5F60E847A4F50D856D57A7E09856625417A9CB89A50E2CA815871B95702AF12EF6FF57F0EAED015758CB00F9446F0D9FDCF13E034A765D8875D2FDA76E7F2839DF58177CE732478389DD456E917F65979DDFD43FD4BBBDC5C50F75575FD3B98247538A50BF54A106F84D22AE352910B2C9CF280793AC10CD3B136EF983E8A24BF5FCC383CAF9F976519EE59B2E26681B696680CB72AE8F1A6F715E2329F4B07D7AF0FA239D0D370887570EB69B410555C4CF38BD680196983 +ss = 996F151DFF7D95D32B8B2D7ED135EC65319D47DDA1FD4A642961F933CDD5A09B + +count = 84 +keypair_coins = 9A86490F0615F3EDF789CB0654066E9EE339CC59F968281F3B89213F83C692ED1056461570B29E27126962068B2D07EB33DB448A2938785E6FB3E02675A6EC67 +pk = 60C80E77B5C6CCFAB6F463A63C069276C9321D8C961802A956F0B8F41307A73B5B4EA33828D1BAB555C02616115F890AE7B1C5E6061A484825A448452BB26FB9B13D9BC002E6798D54238125477BC01BABE0EC7753FC8C8C959916F16206A7CA31C7B121724E05BB5D71C648FEA759A5D2B58A257E728230C2EA779EC4C55F2319CBF9CFFEEB1F285A9FB0D4A391386CE69BBB6E37A548246D1061494E8766FD96CCFDE9BA6636CC3B4858097C7CD6B83E53A2766642992881A2F1C8B7454586CB3822C125AF4D70B15CCC546843100B1443E365CF31680656879F00E640692B94361286104C79AF9C1CB2B98F01E3B9480C5B0AF0988DC7BEBB33BB3AD87CDBE09828A25F17FB323BD17A11AB961C236EEAB89CD7C3030F4B437C09AEC5F461AFE64E1939C93081B44C8440F7B070FE982C16CCBC99FB0A8332739B641B326CC689C51C7EE33003A277C41C2A05676620EB9806EA6F53C2060F13A75FF67B7D1B4229443ECC4023C84293F3CC58C60A1BC00A3D1AD31AA88AA6D2923643585D39E16E5C8BC5E650A578D60584BC24C2FA2AAD7B2CD9C99FFEE6033353B60F506B95927DAD7AB997868119B5976F561007B51ACA6B36B08B03AE40A9DCDC19FFB776304BBE7D3ACA167753634969CC57C48704A19A22416D2CB658E75AC2D428AAF9A13E6693E4D94DF1F2A6559A4FDD16354C77129D32BDC3FA136E180D66842FD2A9540C63AE7412ACB67B788936066AF5B7FC44409A77A27017C9B883B705CAA371B831C7195ABC01530A97728708661D343CBCA7AB7268B36294B2EFD96F87A298092684B02569AB5911F4825826362414FA2F2B955F6A318BFEB18B12D058E4926CA973248D162164ACB5B7A8A7641C9557A8A0FAB208AC2744810397CC049EF46756E4D14A884745E73454E1D675C3743A5DC2546C424735813AB05353CF65B604EA3E44D8828C7A3AC9851848090B0639934D9B19CA7630844003A944238876966A62A87218714A4B3F89638A064846FC4163D03341840091D75B25DC9A7FCBBCA04664B218F4B525F45A4723417E3597F9B99AE58012F2C3938C40CFE1281AA439486D5791E745892EB36905CB142A5C718F456B74AB213F4AC50CC000CFAC943C60C3DE626080B525C52051EA231F18DC126EB1C6FB76232D5722CEE0C9E458C09A38C35AD64959BC64FF252358A5CB1B07384288B457AB15651935A99072F12336E14882A2D0B6F918933CA0574B49B214BA4018CA4B1373CC0F007B683A9A44F842610106DE16CF202BCF0896C9506855BB4849BEB06289B72041C75512E152183242A5162678D10D870AA888E218AE969C13B024729C7ACD818971E598E495902CE92D29C73D355BC44EB544AC760C0CD58AD8157FF242963AE3CAB5BC37B9C78EDE033C210C59E20245FDCB51F7CA9588359E2264118CE4057DD7C6ADE4BFFBCBCBA5F9433314CBEA9309A0D86A15BB6F753ABDC47149F6BB0EB339734AA1638FCC633244559A08AF3C4B15E6BC8CDC63398165ACB51925C7141CEA32773FE5B0A64075D66C653E750CF42866255A9BF7D4B66C488F774193CE9B35CE52A164BBCC41F7B6779A9B35127BA7087A4B673096BBA4048410778B18270674AF334BB92475CE2787BF9A08B587A6D48845E44C6E04A254425CCB59B5972FB3A57CDB02F5100D45B43B76140C6047BC5EE59FB6E012660138D7C107285A2D461B20F1D49E1C206FFB28BE65E26154A64DF73358DBB49B77258FC45A15B9A80144099BE67B76FD60B7E01518074B766211132E157EFD507B5970C862D5CB870751DA46AE460416EED595A74724152BA84229905880CB682CBE477995437125FCC23677C25FDE14533C6AAC694206AEC917162B4EFB61A1BD7C7DD7DCA9BD07341438C7893CA4FC8CA4C337A5D7EB9A030B7D7872A694881916016C1AF8ABE353CD1AE2263CF417C013CF46212B3D5720AF335D40B646A794AE602B5345300E30F4812E295F3CF07C2117CEF1C591CB9A350FFCB718C64B0D76165E9A719FFB75F46B861F968EEAD3373C3CBCD6A983C9270FEE433B2970B6F0947B8CE46FCAD6518D5042D109BA53D324B9F657182BB110961E96A8B34C5A4B808840DE8B71D0D87A510944A9973DF9A900D9A6C272A61BEE2200B4C80AA1DC7681B837EB865A17ECB56E0AEA501BEF8E12D3025185BA4CF8EDD1B0F297471D58C26516 +sk = 7934A9FABC835BF9A77BB807332251DAA00876E5500D2C59F07485ED01BC934911A336ACDE5527DD166476CA1D1AA558CD88CD7BD17CE1791958E851991867C0525C9472A953C8B04A730E2E132C6C26811CB86F3234229F4CAA2AEACD2E3C840E97B8F1805B94D7317B08354BCAB64887A4E6A98FFD90A7544562CEABBCCE6489C6E8534119C9589C405D7A96DE3230094A459549B6F37078F2C01FC9080F049464B0A969EB742419147C8B39B8065A769D400A17BB25DE51A699B69D54BA460D33AC6A6965916829B7A578D0B24BFF786CEF9963BF961ADCC20F9A0CB1C159865A344A0E36879C67852DF50ACA08A46E72A4A70C027CE283DE5BCB219808F2635BD7540915C5485AB70358CB017882B12ACB4426B22B02605873F2BD0DA59A658075136CBE15418CCA0A11386AAD43A52E3C5AC97F36BC7F648808C260643C325CF456E6166EEEC74EE8476AD62C73D7D334AC279D84B66B6C8AAC217A813DBB3DC6007317A165E6A1657D0277C1E683BECCC956D973C7624E959724FF9275C1AA2BB5ACA75159721B8C6D7B299C7ACB4704C654335982E83AB3724CCAB3709D20601C2A943D5BFBB3D384A7E83A7793905301B1704CF49992077B19F0204F3394717C9AB9A173113004FD325EDB797A30155D0D2A1E4984644F245F5B495B56A98FDC487B29B4A5C6DC4E3047A8DA2C9325F1705613705628458BD525FB333087CB4B967A61A994CBEFC504D18C1B8A62898AF32BC454A57E264722897D5DC71E32C2495CA857E1A234AE61C77083BA9B780342D7CFDFF8B7EC1257B79CAD017113A3238510C5683C3A8C396986ED392B0122C16E34A7249691EA7A931C44087FA1731746C1F3855BC72414FE3484D85B5E2586B6231B4BCF27831EA7B57070A815795F43E90B2112B235F5959EA253DB76192BCB11D4E16399D40C5DC0A15D98C3B3B0289F07839F7738ABA3281D45AA0A9CA1D349A64E79246C2C7770227F1E1CC74DB8AB7EA7B0E60A9DC0E45443B30CA656CD6A8897AB105BDA51B02179936F04374554A52992710F2A70972479462A2859736C2FE4359A474939AC3531B2905F90BC38860B5615ABFB1A1327814C01048BB93C9725C7C3B0547921975766A97E29D529E4D8A090C36820DB0FEC33277CC679CD4A51F7CA05F204BFF20ACF63EC403AC7CCAB951A8EC166C545ABFCE8734833274F724E77E68137967DA75515E3C270CE79838839721BF3A14C952085071D6B3A555CE62D96E7736A583F44F726AEB921CAA340D4BB788D63645DEB2621629DFF8A2C51D23BFEE95CAA7756F1884A0CD263039C37F7415E83D4908507C1B17A7308CB329D829C86953422B8B2F1786A4B86B980751255339258572A02AB22AD845632F859EAC223E1245AC3533D359246316A3CC1AC58B4E6386592859547171CE05DD7A76BF8E93901EB7F40114175AC45E0B35109AC57BE844C52D31A7BA60A24F30EF0E45581242C02E020EC86AF106836B3DBA8071BB8E8574FDF208100982E55F4B0DCA72521440A2AEA68C57B2039D14B21A56274972ECCAC7EED41C4B26CBE2C973507F1CDF4E618077406CCD3C8C5118545178351522485730B1A1CA7971B01766B914E83520BCC82131C5E5A632F88EA070EF636D02752CA06B94DF20DE6F757021C1FE4E4883F123D097993F1959ED8076C0491191B0A05774C5A2D6AB94EAB91B1CBBAB07B8027FB57730820F19609136131833BAD67D888AA29BD69169D8957A5CB8C3A14B54D3F78154108904EF15D1F73CA9A635FE1231EA9E18CF3A473FE7492A3636D85B70EA43A7AA68C4F3F24C2A2E88F2BF5568D790E51122A27AA41246422EA78BEBFEB6038DB3FF65881BCE84496E65D82F5C318C0217B5B5E299B570B038F740238A264B00DA749CEA6AE22BBA8BC314552132894D79D23E73C492857D22A6F64AA160C774F8B24A8B14CA805619231347463A22F06AC2A96660EDADC1BD767524600BA35789C0896897F2BB1F0C88C0B875952C9A352AC4D78B69C55687015544066463DA8E0B1A3A8481D6BC89FF3B9590B94E03AACF4C0C12E404CD51AAF3D696C54158101015A550A455A28042C73627C7A414938636481647C30C90B6073B1582E31C275CB12755A287F967A7C6C377AACFABB57422510CA4505128B60C80E77B5C6CCFAB6F463A63C069276C9321D8C961802A956F0B8F41307A73B5B4EA33828D1BAB555C02616115F890AE7B1C5E6061A484825A448452BB26FB9B13D9BC002E6798D54238125477BC01BABE0EC7753FC8C8C959916F16206A7CA31C7B121724E05BB5D71C648FEA759A5D2B58A257E728230C2EA779EC4C55F2319CBF9CFFEEB1F285A9FB0D4A391386CE69BBB6E37A548246D1061494E8766FD96CCFDE9BA6636CC3B4858097C7CD6B83E53A2766642992881A2F1C8B7454586CB3822C125AF4D70B15CCC546843100B1443E365CF31680656879F00E640692B94361286104C79AF9C1CB2B98F01E3B9480C5B0AF0988DC7BEBB33BB3AD87CDBE09828A25F17FB323BD17A11AB961C236EEAB89CD7C3030F4B437C09AEC5F461AFE64E1939C93081B44C8440F7B070FE982C16CCBC99FB0A8332739B641B326CC689C51C7EE33003A277C41C2A05676620EB9806EA6F53C2060F13A75FF67B7D1B4229443ECC4023C84293F3CC58C60A1BC00A3D1AD31AA88AA6D2923643585D39E16E5C8BC5E650A578D60584BC24C2FA2AAD7B2CD9C99FFEE6033353B60F506B95927DAD7AB997868119B5976F561007B51ACA6B36B08B03AE40A9DCDC19FFB776304BBE7D3ACA167753634969CC57C48704A19A22416D2CB658E75AC2D428AAF9A13E6693E4D94DF1F2A6559A4FDD16354C77129D32BDC3FA136E180D66842FD2A9540C63AE7412ACB67B788936066AF5B7FC44409A77A27017C9B883B705CAA371B831C7195ABC01530A97728708661D343CBCA7AB7268B36294B2EFD96F87A298092684B02569AB5911F4825826362414FA2F2B955F6A318BFEB18B12D058E4926CA973248D162164ACB5B7A8A7641C9557A8A0FAB208AC2744810397CC049EF46756E4D14A884745E73454E1D675C3743A5DC2546C424735813AB05353CF65B604EA3E44D8828C7A3AC9851848090B0639934D9B19CA7630844003A944238876966A62A87218714A4B3F89638A064846FC4163D03341840091D75B25DC9A7FCBBCA04664B218F4B525F45A4723417E3597F9B99AE58012F2C3938C40CFE1281AA439486D5791E745892EB36905CB142A5C718F456B74AB213F4AC50CC000CFAC943C60C3DE626080B525C52051EA231F18DC126EB1C6FB76232D5722CEE0C9E458C09A38C35AD64959BC64FF252358A5CB1B07384288B457AB15651935A99072F12336E14882A2D0B6F918933CA0574B49B214BA4018CA4B1373CC0F007B683A9A44F842610106DE16CF202BCF0896C9506855BB4849BEB06289B72041C75512E152183242A5162678D10D870AA888E218AE969C13B024729C7ACD818971E598E495902CE92D29C73D355BC44EB544AC760C0CD58AD8157FF242963AE3CAB5BC37B9C78EDE033C210C59E20245FDCB51F7CA9588359E2264118CE4057DD7C6ADE4BFFBCBCBA5F9433314CBEA9309A0D86A15BB6F753ABDC47149F6BB0EB339734AA1638FCC633244559A08AF3C4B15E6BC8CDC63398165ACB51925C7141CEA32773FE5B0A64075D66C653E750CF42866255A9BF7D4B66C488F774193CE9B35CE52A164BBCC41F7B6779A9B35127BA7087A4B673096BBA4048410778B18270674AF334BB92475CE2787BF9A08B587A6D48845E44C6E04A254425CCB59B5972FB3A57CDB02F5100D45B43B76140C6047BC5EE59FB6E012660138D7C107285A2D461B20F1D49E1C206FFB28BE65E26154A64DF73358DBB49B77258FC45A15B9A80144099BE67B76FD60B7E01518074B766211132E157EFD507B5970C862D5CB870751DA46AE460416EED595A74724152BA84229905880CB682CBE477995437125FCC23677C25FDE14533C6AAC694206AEC917162B4EFB61A1BD7C7DD7DCA9BD07341438C7893CA4FC8CA4C337A5D7EB9A030B7D7872A694881916016C1AF8ABE353CD1AE2263CF417C013CF46212B3D5720AF335D40B646A794AE602B5345300E30F4812E295F3CF07C2117CEF1C591CB9A350FFCB718C64B0D76165E9A719FFB75F46B861F968EEAD3373C3CBCD6A983C9270FEE433B2970B6F0947B8CE46FCAD6518D5042D109BA53D324B9F657182BB110961E96A8B34C5A4B808840DE8B71D0D87A510944A9973DF9A900D9A6C272A61BEE2200B4C80AA1DC7681B837EB865A17ECB56E0AEA501BEF8E12D3025185BA4CF8EDD1B0F297471D58C26516AA14EA531DF0A7F93225DE1C75ACE0D2692BC750B1B538CFD0D860AE9C5A8C131056461570B29E27126962068B2D07EB33DB448A2938785E6FB3E02675A6EC67 +encap_coins = D45FB8527103ED4A9A88E77EDD89261B4E0D74B9B3A3F81016F534EDB12F3D36 +ct = AC38482227486612343522CFF2504761A9168535CB841CA0F57104AFA49E66F6D3444EA2E62356B60CA5DDE48E060E3CBCF8149E6760BBC2F84182CBA9B738B450C2DFC6372FFF1E0709AE67EC3C969016710661F913B866D3A2AF22FEB2DA598D9D53596D47E90B434415585C7A8E5D043D3A4B6BF1FBAE8D18B45289DD3061418D4CDDDAFFB4FD52CA6A7AD6B0DAD2EA1AA3A801FC08BA7380C5E4AFFE55122541C8316EE9EE8CA19EBEB225124800BB40D044DD138DD6088BFA931940D5E4F4F86784860F2395A256703563782B2F2000B231FCF40026CA22910A83B8BB583CEA67DCD6D5A0BBE709047796EFED60AF62846EC67BB7574149458401ACE7AD48697D130BB7C946B967FD6D5C9587D7C737BCAA9AAFC848C7625EAF28BA996D9EDF713DD41F4B9EF24B0BCDC15E56F1CB522593206D5DEF2203E7FAE3D5D06ED73F7AA5404CE2BFBD9A30211F8CADC7FD4BD9E12907E58FE050B96EC5D357FBAC9CD8B21B57F0E6DC0DC65737ED174433A2B158B345117BCF920D608A3B259FB757C13D151B93AA89DD644BE677B32BAD77241D8990C56E9AF3EB2B06A6EDF0441603E4E62F8CEE0CD0C44F01A09925609A2913999FE2455F21307EE10571899D57F7E7E16FC95D4570F14A6C69D717D85DFA83B01FA17B5B25A47E854408C0A3FBA36DC532F45E4188DFCC22A28304FF726D6C5629077706C41A97DD2F26563C316F8A4A8DB641EC3DBDE3ED3A3D1AB376900D16F4A55C2BCEEA3470029B612A80068F20286F8A35AC0386C3144988CD394F221522C2AA240826BB847D7A011D3FB3FCC6FF6AB170364013A213152927D21258C32EFE85399EA79E9A32E4DFA639B5C82F1EC3DA5296D29AC70806D97B7CB8DE51A4A143C25C1262FCE61C80405AD409F7108835280FFAD4885126150934602C3F28FA28B1354C34CDDCC3E88CFF6E13F13262F0009505121978CAB3C4D16E6C1E4BFFE19992938C72988FDC22D5BA1D1D69864F186914BF559130EEDFB2E8F21F265C67D3DABC7F511C097896C9E0E5E4CD5527CA1C3ADACE8B3F5613FE688BE11B4F2DEA056FA7F71A878F1F4F670ABC96AB9A4A532AD0FD93BBF5ABD30C67935D7ED8D95FB6FCAD7A36DE9B6F6B7D0DACEE3A5AB5678983054D2B8CC8AC9048A5E55A27A3EACCA80D65CD55519FA1127A1284B2C2161C42AEB8A9B871B9D7DA597893C184DF04A873791E8ACF8173939B6D0DB098E2998CB91DCF8E2FD685EA2AA8F7A0554C8DF21A86FB18C03D32A5A6A657F81685A1A38E0E70372E531E3FDDB953213C68E7F337823021E8F55AFE5AF43647FE811434F5AB54A35BFD535E55245B08FEFFDABE880C3DB5FDF983B17CD24B115910594A3C9EC9F16C0F1AE7038867FBCECA81AEA1CA674D2F5B7368E0A0E854EE0A056D5B1556D4BE6A75684452FFBEE502928CB59746B2ECB1C7776E5797B52BD79B608055B1B8041EBAF501EE4E60886B7CFF4D533972FAF84AF05CACA66FE8C366549B7B116DF91519D9C2C1447C89AF9D8B24DC38AF2DD06D33F727C9D196708C3685CAA6931253B2FD5608F202651963C976280FEA62E92862BD6DB035C1CC63F972ABA6D8E61082070C5F6BF9C2560E9333C748AB06CB5C7E2D6DB8DC3D22283910DDD0203928C3A0E455B3785899FB718EE007CE27F3F64A752825B4D48066858130103D4D4784E274711D6308EC4509774F497FD523541C4011D14EDD324B5EB313791C57C4AAF08F1B1F9895D5B1BE938EB8BE42F1AE52737509AFC22135D2D333F5391FC31E46FE8536963B3111DB497BA23A35AB2BFE8B7C8D78CBC5A1F5B4931C249A53CF437E41AA58C02D0C5B753DF6B9CEC6839F63FC2103B1A9C18114ED2F3C5F0BEF869DD7C7152207C59BB99263AC1FE54E08843AD574C8E131B68D31E1A5FF2B9F0C995F4B5176005184755ED4351764521C58AF90F71B849803B41025D18B9D8AA86F7E901D63CA226392584B374B958788A62540AA1E46AFC202869EB6A7BAF734507A414F04007668B1EC8C8EAA56508B0A0F12FC17304DD636EB928D8B95E91194EC62D250694676B6CF5EE3B3D4C0664DEBAFB40B5DB3DF7BB792A2176E0550B3D0B3EDCF9742E99D5151061BF84C47462F04FBE48AE5BFD42AE4C9D9D5FCA43B41A06CE70F24E149F17BD8BA93080EDEBBBDA6C74401E3E8B746DFA3607DBD0765D8E19A2E7035842C7A +ss = F0D44D22D04D1AE9EED8B567437437FFDB0FB5F7C3DB49CDB5D914769ADFD665 + +count = 85 +keypair_coins = 6DFD9B575872560C7BDC2732C4A28DAC4DB04E535EB8E402C3DFFD145C09CE472DC85FEF74A61DA258EDFF86F377FF16F321689E7BA5052364D2448A333C7961 +pk = 9D9171D1FC6308F0C7B2015FBE1AA7C3084AFD14382CCB962CC7B9CE97A4FF140F77A87E44960E6FC73CF170991BC57FDE0C406E432253A2AEE4B0BEB4D26E0194601FA576CD89A5BCA45E690833592B874D3B3CF303475F1140A0FAB6129296C51B4A5B30650B8C26B5E67100837D011C2AA7881BFED806F308BF2F99118565CC85323410ABC6E34520B818B49B6369DCA3A1AC2776F75142B84C76A43223FE2B7F78544191AB4F0B9316C3B4495514118C63C1F9691ED6EC30670945DA0A92052A7D2D11C4E0F8BE14B867D4708F6FB4569B6081BA685C78E2C835E0BC29BB416DB14CFDF3C98E8A4AA7161859E2CF74277A4C4731224C0649A01ABCF92EA723784FFC290775282C256D433A64B705899398ACA7E084AB6958C801B27FE8B39FF4BFBB1AAC410421C50AA911706790D3C350B6126CF9242E33A359E21E4B72561F1368C3D2265B710BF0D6ACEE3A5286F51DBF16C471327612EBAFCBCC5E22A5B5196A06336968976A9308C075816727997B7D52E34B648B8BDBF229AA4925B3E5167DD1CAF619BF0D620540F29F6E77091C4B430E708D01EC9E2E0CA44E766C7643084AF17722488F4786A720EC6DC4765E0F558A7A9C449F04333476262D65C4BA175A0E2BB29B524F8465A73436BDF6494578020A425149F3CC0C9B474D5EEA98AB529AA1C97A84B54C064C8902153703618E5B99122D4402681A9C72258137B94091382888B4636CA983C79A944A4BA0169A730F7401D58196DC193742FC4D20ECA71AD359987086ABA19FFB05C0E09A0A8581844774B12BEB3692E055DF16B67706902D625590037997A3BEB105931AFA84B5FA389FE2B2BB2B5F521169F18B012D17A5AD203E2508958954B8FDA5956BDA2126503F34C571457056B333C9DD265BD9D4A9EA601620454BF020120D5A0E99F837CCE92E20865DD7870A1AE12F1DA8B369C814FCF63A9FD830C4827F6B151449879C4BA9691E68A02AEB89F362A9BD57909C3AC1E064780FA1C74BA21DAA4B6684BB64EB108987B18BE7683924E3202D45A5C4F3B2AED5666A8CA54B48C32BC55B60064D27B53E51222C4DF502C8415089255E8A095EFAA822B892B2A0A17A146216282991833338553C8BB4947D892923010711084A19435B5C3F6A6AF7F89457AC8A5EA4679FA2921692C8AF459AD8CB22EC187DFFC3425D88B6396CB7FB627F5FC718752658A5FC92539668C7327B90B26572FA8BFCF705F11422382079E2333AF6B51E65310751343764BCAF5A981A260109986B5C29D2691F4A981D391175A21E16A13DD2501F5A256BB86169C63BA737296A5BACC65781B8CE07B4B8F28B173B42F802BAF5F235BC06C9D752351980A72B52250269AD66A098FC9B68AD57C698A014B9D1C278F3559B361E3B8BA2D690C5380765DE0B2D0E3C63792C7F9C8122B297BB8CB8381D6780505C253399C61D4445E244B4669A3CF1CB7DC227CE9655A9EA275AA5529FD8CB5215893BEC6A64201629031B16A8957623B0619B33C6B90C78F4E21F8FFB94D1A6648D330D91096BC87093417B1BA6E14EEF17CCF3923A84328B5B60ADCA0C4348D9198262B27FE56EFF73566BB5123D7CA987A26FE9A00D41A2405FE31AF48BAA3A5249E4C6A638985669D576DC7C9BA575380E959EF93C2DC5DC15CA87CF3F98675EAA87EB5A51CC3450B946B810D05D94A815376868C5D9594FD02891637FF517A6597A1272B7C9933C544793AD167B1537B478EE3A20C8B874F5FC95AA46851FB1610453583B23C280838573770609344F14C4CC1DA33720B3257A53A8E58C1C0EE500A3E4781A2CAFEA727FF3B86CCBEB9FB63B0F215AB297ECB1485589766CA828332942EB9C4037BD76AA1FD24160FEBB8DC499C486A6125C137B77597317F06323C901ECB7B17B75180C71C6B1646751F2522F1A7D13CB7DBE0AB46385AA94B84ACB565F32470FE75B7F9C876287F2AD5B0B52E4B5AAC9A43EB17B207943ACE482B46123652F7460CC64427710603A8307EF748C37F5784E0379773CA7576589C7CA30EBE78F5905B350C4BC37591BC1A926D57C0DDB5B52024AC3861785B6134AD8C067C5E9A47EA96F57B40426697E12846BFDE94AF1B27AE4305EDB932B79AB745ABCC265B8C7A37063DDBCC972C26864269EE557785690AE6401B7B384EC61A83F9056F3665E523A0C28D48E778B0314C1EC2A83EE9805D0 +sk = 46F47850E2B9AA4A6D209125BE58806002C278A6295DA7A4FFE85551529F17D83B358B243F2A622F353EB6138CC6380F8AD3340D7575E865A6CFD34BF473A3DA8B9FC961CD921452D09B3209D041D6612576C573B08422715160B891A3370268468078F5464D7E5B84B3A3793F0C7CB2A0A13DF37B9763CFBF054C768B1E65A00E8366B406251F812C5D428853D0E00F7BD58A8E348275461C1336C2AC6A39783A35D849AA9A847F37F50BE0B95F617BC7ADB28C0506C16EA3CE89AAA28A9252F0E228D0FCA732289D05D9395133A82D8CB76DB2023924273B39CB52B5A846F338B96C5B6F3ACB41C7265A0C5B13094231F05943D58875BA7C2A6889F16107D325AD1B810A0B3C9E8928169D440194BBB90F771796856F9878158A432EFF742FBFD5ACAF59521E361F448C0BEBD805A1B4435D0761D0448D83E1201A506A0B0A4980172D05E88D7D87B42054680CDA74A386027AA4C3C5193FB1A893BEC2722D55AB9B840D99CC81408153B383345192649EB99825BB4B1957326C4791A2722951C0AB67472F4841C20C23926C3C331F24C360E81977C2791FF3171C2C489B68C923B65D8EE6BD2D510E6AE97FB771BAB401BC1A42935F38A0FD43AE2F8A24D8FC3F6E15C2C6BC800B73CCD8E91C592452484B44E6B2A624881064526182950349C78C7D58180B1676B5191EB6065C50596232B9566E4B8F0635A7D71927F8EB8572E62D57996DDF66CFED2147DC3451E95C034D6B9145BC0D30C915D66B1CCE367406212F8BB40755091C9CB0306A490EF5336E21F82C1B7B6CCC8980DA28A348815112F00C57362EB163A36E016D60F020BD12B6796C9A88A8AF4E833FC4585652E76F2FF77DEED799757C7F64E07EE6E6A300DD1CBBC840AF561746D279BEAA71DEA5318AA3CB3C4C63C4A91E0FB60D6DD6ABF1FB24D1B078DE9413F1B0BFD8916577C4CC9E0B0C332625A5FB705E94BABBE0659E022234586529A194012A6E9E7650C504C380436E1DF83E5C5C9E22F79F394BC0F22A0ACF114B90829B43112FDD617089C8B9D872B70D7027D74402B65058347B56074BA33FB91998E5A559D46622F5423808C8236317767A32E4772AE66CA472EC7828D682D045835EBC5E0089B0FF955DCFB9605214A3E5087F7EE57D5369ABCFF1BE00C7BBC5B5B25A0C1D853424123C98FB330318432D324BBC7330342224BAFF909849D65E1D08A77E07D07CF16CE6F64FC71374EEFB66BF9C742E518F2E30C480F82652B81C4CE7BF42593B990980D94062F96A7178258F31E2B90E86241C04B7B44057BF4700A040B6C0B08E4E8A6BF1CB1EEF738F51CA9BEB9C19B94B1CC623704A6C2455009F48B4CDD0F4A5D7F06320457670DB92C7A4371743593600022DA4600C56296D336A52E98888818CA10282D4767010A7ABDF81BB6752048B5B163DA385D7C5CB134108ECB03398500C1612A1BD563B21A0BC7B94C9719A75BF3B3E02143BF04A7E3D9B0070C4B449CB9594A1A8BBF871E595178BBCB611B466A8677905443ABFA1601A9664C5F54F36DCC1DDF35381F586B4AA4566C02BE610186DF8493A30479F4C72AAF049A6666E806B13FD77C3B738721F81218B48984EF374BABC0156F94ED581133C180C9CD067DCE401739190CA80CC8D441B78A986834033ABE3432F863CBA79CBBACC2E5463BC3BD1B0F1307140D56A0E0768691747143721C76847DCE7B86337A584A146DA0C664D904441441BCE3276C7D8906BD336EE07452626853098444339824DC5A82D0B515164882C99851C189DE092CC955C9FC53C041471C4E4F7CC8D16AA74D83396D88264314912632E87F68F36AC0ABBE568F1A5BEA9E807C21A57E7103B4FFBCCD02A5FE3774E54B40E6063AF2CD48C73E82D1D2CC893C35434472E2A892A05D566B890369F996DBBD9C1D8D542D29021D2F4619D89826DC45F4212BD2E607E92F80B75BC9CD8A803AE3A749F539165CB2BACAA005A2787DACA403C83BAA258B7E8061AE4D11B5D255B12D6CFC4650AF458A4B0A37C69CC8774BC4F51979A120292EC6C8D7193C5B52021B452807AA78C2C26CF4E4C2FE6236D2F3CCF5273BD3DFA2653498B5B681E18996098CB3F593947FED05A927223B27619EB484BAC5561BC7CA8A112136501A461538B23D07B47B3AE35420D9D9171D1FC6308F0C7B2015FBE1AA7C3084AFD14382CCB962CC7B9CE97A4FF140F77A87E44960E6FC73CF170991BC57FDE0C406E432253A2AEE4B0BEB4D26E0194601FA576CD89A5BCA45E690833592B874D3B3CF303475F1140A0FAB6129296C51B4A5B30650B8C26B5E67100837D011C2AA7881BFED806F308BF2F99118565CC85323410ABC6E34520B818B49B6369DCA3A1AC2776F75142B84C76A43223FE2B7F78544191AB4F0B9316C3B4495514118C63C1F9691ED6EC30670945DA0A92052A7D2D11C4E0F8BE14B867D4708F6FB4569B6081BA685C78E2C835E0BC29BB416DB14CFDF3C98E8A4AA7161859E2CF74277A4C4731224C0649A01ABCF92EA723784FFC290775282C256D433A64B705899398ACA7E084AB6958C801B27FE8B39FF4BFBB1AAC410421C50AA911706790D3C350B6126CF9242E33A359E21E4B72561F1368C3D2265B710BF0D6ACEE3A5286F51DBF16C471327612EBAFCBCC5E22A5B5196A06336968976A9308C075816727997B7D52E34B648B8BDBF229AA4925B3E5167DD1CAF619BF0D620540F29F6E77091C4B430E708D01EC9E2E0CA44E766C7643084AF17722488F4786A720EC6DC4765E0F558A7A9C449F04333476262D65C4BA175A0E2BB29B524F8465A73436BDF6494578020A425149F3CC0C9B474D5EEA98AB529AA1C97A84B54C064C8902153703618E5B99122D4402681A9C72258137B94091382888B4636CA983C79A944A4BA0169A730F7401D58196DC193742FC4D20ECA71AD359987086ABA19FFB05C0E09A0A8581844774B12BEB3692E055DF16B67706902D625590037997A3BEB105931AFA84B5FA389FE2B2BB2B5F521169F18B012D17A5AD203E2508958954B8FDA5956BDA2126503F34C571457056B333C9DD265BD9D4A9EA601620454BF020120D5A0E99F837CCE92E20865DD7870A1AE12F1DA8B369C814FCF63A9FD830C4827F6B151449879C4BA9691E68A02AEB89F362A9BD57909C3AC1E064780FA1C74BA21DAA4B6684BB64EB108987B18BE7683924E3202D45A5C4F3B2AED5666A8CA54B48C32BC55B60064D27B53E51222C4DF502C8415089255E8A095EFAA822B892B2A0A17A146216282991833338553C8BB4947D892923010711084A19435B5C3F6A6AF7F89457AC8A5EA4679FA2921692C8AF459AD8CB22EC187DFFC3425D88B6396CB7FB627F5FC718752658A5FC92539668C7327B90B26572FA8BFCF705F11422382079E2333AF6B51E65310751343764BCAF5A981A260109986B5C29D2691F4A981D391175A21E16A13DD2501F5A256BB86169C63BA737296A5BACC65781B8CE07B4B8F28B173B42F802BAF5F235BC06C9D752351980A72B52250269AD66A098FC9B68AD57C698A014B9D1C278F3559B361E3B8BA2D690C5380765DE0B2D0E3C63792C7F9C8122B297BB8CB8381D6780505C253399C61D4445E244B4669A3CF1CB7DC227CE9655A9EA275AA5529FD8CB5215893BEC6A64201629031B16A8957623B0619B33C6B90C78F4E21F8FFB94D1A6648D330D91096BC87093417B1BA6E14EEF17CCF3923A84328B5B60ADCA0C4348D9198262B27FE56EFF73566BB5123D7CA987A26FE9A00D41A2405FE31AF48BAA3A5249E4C6A638985669D576DC7C9BA575380E959EF93C2DC5DC15CA87CF3F98675EAA87EB5A51CC3450B946B810D05D94A815376868C5D9594FD02891637FF517A6597A1272B7C9933C544793AD167B1537B478EE3A20C8B874F5FC95AA46851FB1610453583B23C280838573770609344F14C4CC1DA33720B3257A53A8E58C1C0EE500A3E4781A2CAFEA727FF3B86CCBEB9FB63B0F215AB297ECB1485589766CA828332942EB9C4037BD76AA1FD24160FEBB8DC499C486A6125C137B77597317F06323C901ECB7B17B75180C71C6B1646751F2522F1A7D13CB7DBE0AB46385AA94B84ACB565F32470FE75B7F9C876287F2AD5B0B52E4B5AAC9A43EB17B207943ACE482B46123652F7460CC64427710603A8307EF748C37F5784E0379773CA7576589C7CA30EBE78F5905B350C4BC37591BC1A926D57C0DDB5B52024AC3861785B6134AD8C067C5E9A47EA96F57B40426697E12846BFDE94AF1B27AE4305EDB932B79AB745ABCC265B8C7A37063DDBCC972C26864269EE557785690AE6401B7B384EC61A83F9056F3665E523A0C28D48E778B0314C1EC2A83EE9805D0E0013FF7EB7B8266EE94659F3372F5981CE1D87584CB1F0E80DA2C0C95C16B4E2DC85FEF74A61DA258EDFF86F377FF16F321689E7BA5052364D2448A333C7961 +encap_coins = 147C065D7CF409A115A8DF448134E1081E296F120729CA37B4185B73E2685931 +ct = F19D2E434E400CF9247CBDB0F80DEA6F915E0BA2F35F34E12DEF57A78C4D2BA4E2A21B91010C6DCF9C4B5FC01EFE0A0D5CE009FF0A99A4FA6936EC0B05AF2719BF504EAE1882E72EB2EA004C7F7851AF09A53648B73BF04D5180ABFCF637BC0023BE8094D087920A3725C6BF8336EE3291F4E0ABA39EDDB375B584E9C97CCB5DF4A1493B33AB3EC9805E2CE4BAA4DB900EAD14D2AD98277EF8BE3846C94DCF14D580CDE90E79901CA979DC21900EEEC6DB34E64EC545729B64FA44D0554FF5069A7719BF492F49E013A2476DAE80403190AA533A284B5477417B583A52D394D4DEA4FF189FAA8565199D245EAEF076F2E7545D567F5F132096F1E59ABBEC88742F18B86B929BA65A3EAAB1A6EA863BFDD74FF3906C986993FDFD31391F579023365CF7617B023A941BA8113F9BDB25B5E38342B5A5B4A19BFD7EEBEA0D55F4AF28159F005E00BA5B6B6D747937D6F8A241C5148C5B7C9FE71FCE6EF49EEDF0BBB4BC3DD9D216888CBF74D70476C9DEB3FC80A4F159F61BC630918F0C2DAFFDB53394874FA5E5A721CD2C543DC251025987AD0D1D6CCE864EEF703AAC68CDFB250546C63E03E460C0171B4CA76D1E5B08F46698DE04DFC41644CB16CB01837FD9906EF09A8EEA23B0D8B08D95A920C60257240410644664558BFB730ADDA7AD8097E77C65DD0CC4194994A4416C82AD89C3F3A0ECECBA52F60268814E729EBE79F1F6241B203774C2764AC90FBDF0A4C02B1C9ED213DADB0ECBC9CF615CD7EDF5116430A298D29ECF739949579915DEFF4B999D6D656A270A433614658872356DECE7C17931EC8CB8174345CC43050FDA0DC4730F85DFF7563665721F47E82C990D9995843A7D80575E1EF9D990CB083BE93FA5E2898391D3CC1F84FB15902111C2FB3B069992A7585B33CAC7F0A2FD7C431B4963172DBD76F27B7F36F7F0186B649B1D57F06831FEA705943771CC52422C0EFC41093D9DD1BBF4B77AFF1661386C4C5450ABE50AA88653FB3EAEA41DBD0D2A34634A28C6252DEE68358F471F615396F1B5952E78916170EAD8CE4C9B53EF2E7E2BE1E7E8459289CA75B0A4D2FE33EF1554E8369A469B50E88843FD9AD8C1A9D7DE7BC9F751AD4B9B40D8433B862434BE1ACDEEC898E4BB889FD0996B0499032ED11BACD1FC1DF87CA00F49EB2752A058C795178A9025259B0246B84F7C67B82FDA17C89578A59FAC7BB8AA45005C0B4CCD258C656385092E98919A70A30B75862D02D11972546A813C855B2CC49A8E352BBD43B2B79ED5924928E91C61BC62F0E1F21676ABF1729113CAE97841B862408AE84C3DD849F6E64E2B764DD4C7785820886254410839AADF0121F00F42E10A7954164F168A2A5430F386506865E82ED34A0D38B95737D0D1840D1E56D2DB437570D875AB3E64162654EF6573FCDD15381FDB2F110882553664D6CCDC18969FCD2734C491F72B25EB8618731E97D8E38EA43E3C08B2E1DBB0EC63BD76F331D47FC9A28FAA749F9773C719E0A9464819369E7FBCA6131FEE31126630F86A9E9B237C0E0B9C6C3682B4AED3800EE6F8A5BF7DC672F2114597BADB34FBB918E50A41131A7186160CF017F96903EB5F14501FD8A82ACE2713E43C247B093834FDF27C15977F496730F9EC11B3E2CB274D1E5E48AE7E164C5879BE2F3F91FD7FF5D1AF15A71338871A927733D76007BAD9C099B0D2585EB253202D12BD75D7A830EDEF0740FE8F25393BEC7BA86CCC035E306CF28F736CF54B33F937ECF962921A2803D0702223BDD9737974DDDD8CFC795867D29C6702AEA4AD39F4EA83511678C5335C8FF2740CD192152013D19CAA4D352850695E00B35EC13610B5245C2F33AAAC44A3F9B3BD388601A2AC09D9C83FC44739649FAF6377CE8B3AE50253C98D6342052687C0F6BBE97698A131F2EC98EB30C4995D4CA2F97AC5BB4F188D58546C1E81D40C2C3D2AC9AF1A5599ADB68A261A5F1B9C3C8016899325EBC4438121FC373D989C5A0E35B79D4495B7506DDBCBFFDFE0C969D4A6AA140A70C5482E8D6591CFBFD9FE7AFE52752008A2C1635316CC4BD92A8B2F653AB2E7D4CB8501B70B3289C3D97ACB2B771B9260B5812011662D42DD5E0A0DE55DC19B7889F802CED54F00F0DB36A2EC8F7FDE988F6DF623F18CDD5B39102157B065C54B675120DCCF2B5EE6DEE0E4003F79EEE997EC33570154355E1CCB23796217EB67FABE +ss = A8360F2661D7A9E5A95DD771B2D9783C39708C49F792A5D2CB354990D14BFC36 + +count = 86 +keypair_coins = 6FCA9F4E384D8418075CC064C70730801BDB8249899D456A77130D5BEEB3662CF4626AFBAE65EA913CDB263C9615A5F66061CCC74B1AC83B5FBAB8FA1EB6799B +pk = B2197FB4A3AB3D470A0AC937D1B37A3AA5B4F6A69BFF4C57A8306AB886243EE6B34E8922F9B416FAACA70A850D9AA008B382383470C0BB971027CB329CC91A9D89BD46B64E26B30DD01069BB8C99EC91895769BB93661B429A0A2C6BA5EBEA62CC6B6923B27D9B99B8FE2A01DB93A6FE6362D530093D4167EF35626438A949AC2F77772B1FFA65F0C771A2C18CEBB2B9A3366F42782353B07961D485B7B70020A36C5375152F558F3E028FBBA53405F58918541AFD0B89E4092B0EC372CE48C4222A6B33A192D380A1A133272A6B2A66816F33E410EE02362F6BBBE44976DFAA4BDB99BFE9897894C254E5A51728858ED386980C52064EA3A1A837B5BA02BA34FA6DE770B001B9A9FCC90FDA64359F37B85F203C0FF5CF1E7C4681E990A11183D158269267722441048911B41BE8B63DC139859973EB4578C929B730B1CC93A4CBB6CAAAD874391687732EB99170ABC2812865C3FBCEF19B732ED91E02930C790BBBD6F411BCBA06769B779E125AE3788D5B3844A3A7B4DDF8BF3E53274C29AE25F4573A459FC2093CAECC197E050075262C7FE590B9A90DBFEC86A2546E800BA726D344C0C667445B35872059365626C4B9AF412B701E00392171B1F8922129123F05F3696F47C405739E0460590A52AE7C875F0A088B0E4924EF3711B66B3FBDC7CF9C183183F8CB122570CB2C5F18F66FAA2CCCFB42645F3809DCB623DD48936C0440DAF036F12BA9F3573623360FF00AB58604106FD820BBA7A9E9B09B7C022262330627302E0852B70C020432235B11D750BB5A700B123DCE093E25C993035CC1C3237743BCAAA3620A33B16DADBC93555C13AB0781463A82DF942B58930CDDE7AA1F256CB7860D0704A7D82182CD494BD803684C4CB4BC278655F31EB439C9AACC78CE21967EA07E1A6B99E7F8253229754C7A97FC6411549641018CBDDBE2CD0FBB12F35C0791031735D4AB51C62E2336025F0B327BC82D92DC91DFE544DB159319215C40666B86917BD2A889DE8647AD658C16B9A3E1D21532011FD40B5C548534F9151F39DBA83CC3170DB022D488662A0223C750A1D4E048CF9157BDCB0C75185E774AC10BE2B0FECAA021613CAC50461A380F419A9FDF075787FBA921A6A9F3BA49D78892771994FFF11A57FB27DFA895D4C2A58820798A7B0BCC096B2F591A4C53BFF56B054F059E21330C308A2AB9E403E5B6B7EC7574640812464710B508043FFC3B5D2092AC45B39D0C743EF1873286A6779C15669B854549A156B77D42DA9CB39B868C70A037D9737746B6F1B91733C41C610977A5F66B98A167D9A15E4F8750EBF00876783BF23B9E023793B6C54AD3A3C2D33AB3EB0A2A7CCB9CF3F187BD8B358564BD9948810F91B9DC426588C51432C83A4D704677F2918F6670E611A410014838E9BE4C12415CD64CA1AB5DC5F81EE8610ADC6C29F5DA8224093D350AA4B7988303411B1A55A240AB4AD7900A4F3718A58901371623DFCB7515DB485D1736068A1549714402649B1CC322ED093EEC5022113384B8E40EBD9AB8654393C013C99380BE30E16D565170D2F20D12859E795C2EB28C8900910E3B294302D420193B540F826B48663F726304CC936FDDFA8FEC5304D2100C45D3A0B9308FD032B535780DD6FB7649410867E610DAFC425202316718AB0104552393084CE56E2A36A5EAC1B0CD9899E3FC2816F94B59CB76C22742F736AFD60B9615130CAAE76F905CBC1414C8274B11B713CD049803796A8BA121A95E946BE67418A205759A3A285AA69FF254BC2B39AE75021227C6C48A377F9E2267B3725666E6480920949C413A1E805A52F159FD216938D0AC4743BA060B7FD8AC2071C7022C66680D80AF15736C5A3500826C1448E601058BA38C278DF84A6E65357ADF6735F114BC17011EB9BC48698893ACB932BF6AA9D9F845DE9C4E4D4A1C93A1C9BCE1023181746B7559BA6370FEF77671769CBB53B2D6F123CB800F26CA8B6DABC7C24560D29561D8C0581391329E73209551BA29A579CF40C6BF792B0801B1D24204C20139CAC32BEAC739E2269440C02990568EF2A9CDD3756923A100D97C42D45B71B0432176238C8C69AF81755B194A2AEDD65C1C4118A320C4AC672E78BA69FD80828B7094227BCBADE5536F95B440FC9B953B4E0729BD185CA617560546EA3591818F0DDE74E33983C010419218B08822DA9C3C62EAE1F2284801B3E4 +sk = 8747252C693A0D6C06AB66071B13517E1C45ABB370D26ABA3FB31641A170B365C5F6235D1FD688D81C72716A3921420D228A7BD5A1C48FF445C47489B8116B7CA14D3EA78B20A7B5E579C5681187A2AA8FC900557501003FB9BEAD185BA9E7939F247BF1757EA66A4392095EA90239A3C67A8CA70186047D9A6B06B8887FAE01BA8E556319A003934C88DDEB05F9F3B4964A6545E8443F57383A2BCDAFD96C794B399296615BCB9C59F8703595709724B6A4BCAD06E116F4542C4322072E3C6713015B1339512419B4DAA8C87F5A8BFF481964A8AB8A101943230F9527A10A604DF6275E1EF18FE54A57D7544402134AB77802333897D4769AC23093F9B951D735B5623452C90270A0896ED3A81BF1191E451A4A67A4542556AF78F1690982360FF1BFCFF66386827DF93BCD894AC8C996BE6E0A29DE70CCD459B9DE46ACC9E8043BB82D01C40E5785845FF4B0DDB8184AFC5E52A72E899093669A9EB110A100A1159241BDD40612A9B1955B1752810764E7B68D89704A61442ADF68108AA229E406CD10B6527A39A6B46068685B5E802CC25614492DBB6E06BA2160E930733956E7B29AB9981D4B477CD4EAB880E56EB711B278F540AC204A996B32FD06B8BFCB7729660CF5125FE1626199F6285DA628FAF491DCE2CA3BF285902350D52C0649339F31EA3AB764B90701BD647194FB27383681C13470B8D5CCB61DD74C5F666FFEA7B0714C469C4803107235599C998349B5BE7AB9E9DC6F01E928593939270411EE2490F16C54BA672EE03B710978760B962319BAB3C2FC67CD9C2E9D4C153A8717826BC4C3D6C7444C051A61A06A2C87A1207A20754E9D7725B91077766871509CCC93F5A1FC1C20680263082801F6B81E8F319B92110F2DA22F0D8C251EE4531B127C44B378DA6A0D26F55DE3285190BA1357012E42521CD1855252147D1ABCB1582422F55091B5EAADE93194CFA0BE536343A282C4A948C355984CD20A7CA454BA034AC7355B02730107A71B3986FA01FAA38D17E07494FB510E5526F690BFB27294FBB963A0606E140A182A9A247029ABDFF6BD8E876EC92207312432CC2700EC4C6A4A7037C5B612EEB2099D54872A5884E28981D794C7855590F1F1464017C8724BC92E0B644DE92B5B80A573F641E4E65BD6F0396184086D6A5A50662F9CC6241FB7241D194B6D23AE6FA3C59FE60C81309FF7E39F93F72BCB0696EDC771A80CC5FFC74138AC9D01B95DEFE7258BC555E3E28CAB6A73372337EFA0B4AA0C7D13B312A7313F8B63426C6677407903822AA1ACF4ACF4A130C4C68DD4DC47DD061ED0A4969E5AB630BAA11FA0AA51133C6509C83E603425A385730AA0E07A2BAC0754358C812F483F5CA6BEF3105CCE4CC33532116C6493F19880F693581E08999BE24DB44B84970C8FA4F6784D50614CDC9E626A31966ACF81309EA6A730EB42011663CF10A90A9EC12F3FE133A7D02CFB95CECC6B52CC08571BD03E8315532B7C76C2040B60E9021A24734854B6A3D77CBFD087015410B7322AD5D9B04F651F895AB5BFC25F8CC9703BC67DC5EB5AEDE41682A17FEB1B4339335EFAA44A64E8B4EB0BBE17FB00875A06318C1E68C42E6CE0946A59C61700A7277976E2E8BFDA906DAA229D20732B60965DC5D794DC5306E68226AA18081486C28B28093B12280FA2965CBB012AB67A05664950A069D13332BA5C19C8D8C7583C1F74E4AA60006C3E2C9B8DA1BB8E1935730C31D3EB066697B4FA93AC65E21651535AC1D3983C915B72EB260980C37033AE51C833E4E3C1CDEBC03A7B17E85C224CA078DD91024805C444D766BBA603F225073846BEF949937C6BC2A6BB4519A5B00036A5D688B354E64775431AB18C37B0167495B31328454368BA49EE2A542447466269C6C122B78AC44D60C983650237B2957FCE240D39817180A1898FE589C0044819037F1F679AFF2C11FC4C0D2E510FE35272D1F823C2781198AC1859E2CE252709D4BB8C0DCB64C4F2BAA33985312A1193095379D9CFDB508CE634A0E305AD9D554053950BD8B902EC462D0A1910303B4BEDE153B11C915DBB1FEB52B312C42F754C0131C1218F4CA4402C4D74430B9415C586419210196EAB4C6BA4587FFAAA71583C97C329731CECAED1414AB3ABA4D830A834D6B8013495C89C4B413414B2197FB4A3AB3D470A0AC937D1B37A3AA5B4F6A69BFF4C57A8306AB886243EE6B34E8922F9B416FAACA70A850D9AA008B382383470C0BB971027CB329CC91A9D89BD46B64E26B30DD01069BB8C99EC91895769BB93661B429A0A2C6BA5EBEA62CC6B6923B27D9B99B8FE2A01DB93A6FE6362D530093D4167EF35626438A949AC2F77772B1FFA65F0C771A2C18CEBB2B9A3366F42782353B07961D485B7B70020A36C5375152F558F3E028FBBA53405F58918541AFD0B89E4092B0EC372CE48C4222A6B33A192D380A1A133272A6B2A66816F33E410EE02362F6BBBE44976DFAA4BDB99BFE9897894C254E5A51728858ED386980C52064EA3A1A837B5BA02BA34FA6DE770B001B9A9FCC90FDA64359F37B85F203C0FF5CF1E7C4681E990A11183D158269267722441048911B41BE8B63DC139859973EB4578C929B730B1CC93A4CBB6CAAAD874391687732EB99170ABC2812865C3FBCEF19B732ED91E02930C790BBBD6F411BCBA06769B779E125AE3788D5B3844A3A7B4DDF8BF3E53274C29AE25F4573A459FC2093CAECC197E050075262C7FE590B9A90DBFEC86A2546E800BA726D344C0C667445B35872059365626C4B9AF412B701E00392171B1F8922129123F05F3696F47C405739E0460590A52AE7C875F0A088B0E4924EF3711B66B3FBDC7CF9C183183F8CB122570CB2C5F18F66FAA2CCCFB42645F3809DCB623DD48936C0440DAF036F12BA9F3573623360FF00AB58604106FD820BBA7A9E9B09B7C022262330627302E0852B70C020432235B11D750BB5A700B123DCE093E25C993035CC1C3237743BCAAA3620A33B16DADBC93555C13AB0781463A82DF942B58930CDDE7AA1F256CB7860D0704A7D82182CD494BD803684C4CB4BC278655F31EB439C9AACC78CE21967EA07E1A6B99E7F8253229754C7A97FC6411549641018CBDDBE2CD0FBB12F35C0791031735D4AB51C62E2336025F0B327BC82D92DC91DFE544DB159319215C40666B86917BD2A889DE8647AD658C16B9A3E1D21532011FD40B5C548534F9151F39DBA83CC3170DB022D488662A0223C750A1D4E048CF9157BDCB0C75185E774AC10BE2B0FECAA021613CAC50461A380F419A9FDF075787FBA921A6A9F3BA49D78892771994FFF11A57FB27DFA895D4C2A58820798A7B0BCC096B2F591A4C53BFF56B054F059E21330C308A2AB9E403E5B6B7EC7574640812464710B508043FFC3B5D2092AC45B39D0C743EF1873286A6779C15669B854549A156B77D42DA9CB39B868C70A037D9737746B6F1B91733C41C610977A5F66B98A167D9A15E4F8750EBF00876783BF23B9E023793B6C54AD3A3C2D33AB3EB0A2A7CCB9CF3F187BD8B358564BD9948810F91B9DC426588C51432C83A4D704677F2918F6670E611A410014838E9BE4C12415CD64CA1AB5DC5F81EE8610ADC6C29F5DA8224093D350AA4B7988303411B1A55A240AB4AD7900A4F3718A58901371623DFCB7515DB485D1736068A1549714402649B1CC322ED093EEC5022113384B8E40EBD9AB8654393C013C99380BE30E16D565170D2F20D12859E795C2EB28C8900910E3B294302D420193B540F826B48663F726304CC936FDDFA8FEC5304D2100C45D3A0B9308FD032B535780DD6FB7649410867E610DAFC425202316718AB0104552393084CE56E2A36A5EAC1B0CD9899E3FC2816F94B59CB76C22742F736AFD60B9615130CAAE76F905CBC1414C8274B11B713CD049803796A8BA121A95E946BE67418A205759A3A285AA69FF254BC2B39AE75021227C6C48A377F9E2267B3725666E6480920949C413A1E805A52F159FD216938D0AC4743BA060B7FD8AC2071C7022C66680D80AF15736C5A3500826C1448E601058BA38C278DF84A6E65357ADF6735F114BC17011EB9BC48698893ACB932BF6AA9D9F845DE9C4E4D4A1C93A1C9BCE1023181746B7559BA6370FEF77671769CBB53B2D6F123CB800F26CA8B6DABC7C24560D29561D8C0581391329E73209551BA29A579CF40C6BF792B0801B1D24204C20139CAC32BEAC739E2269440C02990568EF2A9CDD3756923A100D97C42D45B71B0432176238C8C69AF81755B194A2AEDD65C1C4118A320C4AC672E78BA69FD80828B7094227BCBADE5536F95B440FC9B953B4E0729BD185CA617560546EA3591818F0DDE74E33983C010419218B08822DA9C3C62EAE1F2284801B3E4B503F8EC36D39FC7B4B8ADA1CBB933B9DB9EE118BF081ED75DD5DBA7590F6C8CF4626AFBAE65EA913CDB263C9615A5F66061CCC74B1AC83B5FBAB8FA1EB6799B +encap_coins = 90CE0644A11E7225DA1F86E1D34D506FCE42B809D968D23FF0C6AE57AC5EF075 +ct = EAEB6BAC1CBFAA0FEC3BAFFD32D76B5EC1198BD58B41C1A8C3AD242ABB0EBD8885327667E70014DFC9CA211E205B9C9FB41449CF4BE000F0550E80B84DE0DCC4A4ADEDCABA2DFF49F19565271B81208C0C98CFA4EA5FBFA7D13980DDFE5F27B37EF7589BDC0184809189F4A793F6EFBECD0CE9B5AEB642592247AF0C3E7B0261DAC950B751870A5053099D5882F2106477FEDCAB48F933E2F31D03EED5F6284EA44C6B55248C3999BCC2B16D53B3B6989F7D49D08726FC58A032D51E2EA7CAF4BD2471A68E09C0B36FD6550062565C64BB6EC5E3A35CD020AD283C3788C66649CF7FA73698C59F33CBDA8D9ABEB09C03FB51130D00506D08B2BD85FA7450FBD4FF37DE8B210C60B74F3ACDD79481126B137A941D2ADBB75107D6D36BFF43175E32C00E2E2A956DE35DC0AC2C781ACD762CDD8AE2CA7380AA7FD51493436D708A25449FD10ACA4599F9372FA85DCD2A2FD4250B942214FEF6C488B25B855AA439E31BAC35AD38DEE989A8458DB741D28BE5F81979119C62C74ED57A11045574527E7471A12E62C27E2015E70E63AE57AB0954B7D1E864EA2F65DEED7D5F400A36F8C90928A90CF8203939B8FC8C99CE4956B7821FBE17E38915F16F567A4EED992665D126181B2C2B9EE0A3F33ADA790D37313ABCAA937FFAB4C9C6D23D4B164249D4740FA3DCDDE625046676342B1C7729E9C38C7AC183F588D419B0DD48C3BB6A77CEB7AA33B28BC3D91C07FA44BA4816F3607F44DFE0C7D4EF142C626E335657B155D8084CC48BA5F02C8E7BE8D78CF49A5A10D8E3DF0E3872574AB24AB22068F4E1263F2D0230BC8715ABB66789B46114ABAC8D7D3E3E83A89F1DA7B6EBE9D92807F22435D8D37D0B8C000D4678E4B88A4EB54BEAE7F129B746D54519CA0196798DAC3F2DC9A12C806EA4A05CCC16734F9791F59BE5F3436C97DB8872AEAD08FE37F77BD0779012AF564ABA74D444EAD8A25394366FEF7F14327137D44CB58271FC225B51232572776FDB04FB651D85E285EFAB17BBA4C70F44F85A4A23159A423217C44CFBCE5BA3792D479AABED9F6001EB3A53BD978AFEF402AC641A52C4019646D1CF0604B646D9126A4C4DCB80CB237E126D8C8BB0B4B5CB67C4B80347A7C76711D8838A20860E56822BE799C828E82F3FF7953672F7EA592A8E899778FDD023EB7B509DC4696F6B0CFD07BE493789B5C71FDA525AC7CA002F393CBD36B5A3710039CEF1689924EEFE6AF541710FF74FF87C9D5E81807392B01C0FC099386B46AD3E43C384D95E3E758819E531BB86E0EB94DAA64B944122903C1908F404298107BB0A4684E080667113722AB7D9E989763F01F39E7F415B40EC812D8A7F80AB40CE5DEBC2C3B01349305BF23D5D3545626D86036C4140CD642E9CDB5C335C6B3C6515C2E22E760165AAD5232F75C20C5DBA8720B2B3FF999C0C149D6C6433948539A95BAF3A2A68B6BF836E4F670EF95ABED4428290BA5A82C15920E9D659B7759358CE1E45B3C2134C8345D0BF87B54EE0F55E6F51F129C44B8B96828ABACE181126F6DABAB74B1D012E81FE1E464DC93EE734A558C542E5588CDB241FD2D29318077DFF889391BAEAD69BFDFE91E972306A94B5C6F81F3824B48CB6189FFA91F416386C64E2EED0062044B106B382A06DDB2A141A10C2C12C393CDFFEEC0CF90E0B96939C5DA45DB23A75226C731C40455E037E599537E9F38DA8A341956BB8A8F21E6FDAE64D6B533E2EFD03A497D94DF029FBDC4B22B15A543151B2937FA782FCC318D4E4F20AE42DEACB89CEFCCE4FA56DA6733F705AD33AFEEA6492BC53A1A8FE2C665A2AA1038DC557F580F06C90EB61AD9E7A8135336070F776FAF49C3D6EB479476ACB3A222172A6119E115E1B80C53B558588CF0F037BC4EA4A989BBB87AF91DFE9D20AAA66809CEB864518D5C9E6B608E039FD9FB1FF48A7EECBDE1DCE8B8B7FC815ABF5F1ADA075C8DF82622BD50B80D3F75C17F79F38E177322EB7174910CA4BA33B5680A9CA1D15EDB70D7F6A6C78F44A7D03B9AEAE1A274D52D0316E30575C9D9D8926D149854D1AAF017EACC3107FB3A7BFA5822236AB78FA6E844790747C1EFDFC666B703DDA6E61CB9FEF7A6708F0314A75F5F3108DF9CF357DCBC58BA2EAAEB5C415EE265FADC8481B2C4136250ED83D7F0F20EC7C892AA52426B9A54F944FCF21EB6FD881F6985B2FA7D8A14A1D482C8BBF +ss = 020E73BA7230FDB0F9C084665FAC5080AB4382046E84C536A4FC6BF2AC6C53F7 + +count = 87 +keypair_coins = E58F71BF175C0550A67E00E0F7B3B7FC36BC2707BF0C93044A492626DE36301AD79909F31E8168AC129FEED8EFEB21F07C02F282CB90F63EF10EB2F4A9ACB886 +pk = DD9521E55C85D1AB71750942BAE014469040333767DBE4AC80E4B3D6751F27FBB0EB0418406111C9E77C39977315526BBE1C8E06150A0384CA618001B08554C472464AE8B4B9EB679A790BF0E311FFC20B9A28A2EDD52C4CB51BB739712419A116B1C0DE65217AC429B091BBF94CC9E24886FFB623889028490976074888CA731AE4F9A9E0E4099F149372390BD2B78516044067201DA469C7950BC9C681423B9A45B579160430ADD2B34D3DEC2CE84270FBC019847C017D098BC4224BC9C99ECEF95947E358F0F85DEF6837C5361FCE2145FAECA7ADE0A612138C8CB26BFB534C2087C8DBA4CE1F841E704652A093AF188C55AB221123540A1007190453163A573D166617F452B9B2C7B9638B0201292DCFCA46F4B9C95C1C8A47F44C19380A061B51942636C3BC8950F01186878004DB1EB6A3B2AD5410C3484AEA11A8D38881DE278124C4C2B592B61BD87AEF623DE1B5B8B2D016A2D985976062758849362B2631A8A08404651305484A3B2DABDA9982566822002BA1E83BA8B04C7BE77D4086207E5B8310FC28812584129A4C03E938E950CFD43C3023A8774B42C9338BA497E853BA684C24AA03ED33B36EF8C50BE44CA349BDAF986F38A93676A7B4CC659656715D0FFB8287B86CC0964D3E1B77E7D83AFA733789709714EACD47B8BEDE99AABA2480002C0FB9136E397790BCE939086BA75467340780CC31491E82172803A57129B3CFA3957BB70B114CFA99568428C540B187B98DA9EAA20F3A7771D80146AC21B8908260C2CF79383031FB99CED3BE7C86168549B8E2D2474E96BFE28158D91A16D5230B2F7B27D645C3B2096659A60C78A602457B0EF8553BFF9508175B5E10E08326139AEF678703D39693215D5D821811BB0868E483C646A4DBF0958978352B919C1354071C42BD39E9B9394AA54CA577D9B963F4F35606FA892166AC71A3BFA3572BDA92C2F9872BD19276CF66C31AC6CFED109BB36B77378C5D9A747637F1950CF36C5B22130EB018B607B74A270E0B733F12E426A2EB02FD3713F72C682D87CB6752A6A3037816B9A1278151C662529B54C52655B76C534E09CBA4CCDB85289528B8F0201081CB05066515A3CFCCA9031F386D6F4A411DF397E526B754A0CFBDCC7968A03FFC7349F32036AA4B15123A6CE8D47F87516C717651D56CC7E2147CFF3261EC76C045A32BEB047760295E79F8C501C46B099BB7B508CBBA9B099F612E595B41D32A946E0BCF26A0C5664B70971853B7965725D52BB371A03F456BE855AA495A2E3D9925F6A7C3B98695B5E179E64C17410BACF2035E4FD3B938C98DB2526804C79322230BA8455DBEFA40CAABA9757380944193063335B6721225F40702EBC418022FC2590D00F918765AC41CC6B40D39B45291AF80F721069C7F73096B7B0A202749C70CE672F246209C637375E75A1EC03102940E8C17566B7C2AD43167F48A56C55C6B38D289D5675B9B224B7155905C814E175052A7E67685392448003D8E2815BA9810D8930051B615558CACD704202AD50F52890500E8BE5CDC91DDFCB61948788A9CC2167A0021566A863B875361153B1A57E0C62F8CB11D3B3840F570B922E4A88151AEC22BAAF7559F724549B892575430383473B9183214104006DBFA356E2C31BA283F778776B43530A857C8126780E29C0316C64DDB1A947D747A8ED831135A8146936090FB59192B32B50327218125814B2863F2473B708338390AC2E507715136C8786FDCD1C10E2B0D63D2CEB6A4B0D8DB6F8AF354BDD1BFC6C71AFB627686761D97B761FC0ACA584539117CA416078C784972F67CAADFE67F38EB1996E749E2F11A3C47C389D5C3F1F52D33F14A094CCE5557154001AE2D17A2896AB4D0744E9DD4BBDEDABF34D38C1C81812A3CBE4A065A0D6CA0CF3A9F5FF0268162A5B3D872B6782CAB9149C52C2726079396B01866E00A20BC82208009F625323DF535F1658A1EA29B933368992A89EFA0BA586381D845099C35A299A467CCE67AF2D5B066D9891462114569A2261ACF20CB64CF3819D0E0A4C20A153CFB5EFC9C45501AA26ADC5B26553B520A04C4388D665B098FE52B5AEC48154A2AB5053279256BA4E6975F4764C77A5FAC85275FEC08D62534353B17764177037BAE5F010266767164B307D4D375C85549EDD3261C6E600B1787BBBC13A01210C0764A4A2578D4BF90A24704178F06A4E4B110F5 +sk = A32B081D2579D7737A984126B05465963AC3D0FC3D471B94E30B242699AE3EE7A305D187D9371AF3568D7BBABDC30CA69BE166AAA07C67799DCE7345B2024EE41C5A6F35733CD12EFA19256DDB74440829C6B52AAA25B258BAC8D950CCDEA410535BB3A44A46EBC44F5772CDAD96596980C32A14916CF5C4A2FA8538491F7EEA270543ABC467344FF098EDB4762F658B6B26431B9863CFA7546C1489A25BC9061B8CA0165528241B4BC173BF17B4E7873A5081016A1C55E4BB1E7F71B849274D03E05E866656C126485979CE9660AFDF3622E3051F76D02243E660A5A78C663880A7F9765DF45410926A86ACC7962878B4037CF2960B06F072367B476EB24B8C57924A9C699815BBEB0BB10B2A88B0C63F0171C759D59CEA91C5C043A41A8155E462325893685F18C5458A0AC3E5BF2C696C8F07727C090E1D3502D075A706551C54A00A710027C52CBD83FB9DBD7567ACA2B6EB809C00838E56B209E0C5AAD2E6235E2C157D3659D906452F4A8C60B26F838A51F6789E42C00580E4595A5C0A12B796CB44240A4724C298ABFF1332BB0970A3EC475A434EC4DC2A4AA92C42E22035A4499C66827C882B542A8FB22B6B6054984FDCBD6A637583145010D89A4654BF0BC0A0C3B86788459B659A539833629C1B585A13134D766C9E8003282683AAC1486A934EDD3A7511319A7952B5EB7C5947B69AB5C904B2481A7709C95BCA352DF45E8BB87775A9CB566581C3777E7B975C629C89063C8F0E982A24D344EE8A22221A02C6538154217C453AC0ECD4BB1F820BAAB94D920765C4AC15972AA79BA974F3B5055EFA7FE5BCB454F7AE70E1C017322A20C73EBF278054060687C6301E13B52952459C56BC8D8795044302FC9123921143EC2C73278939826682126B65C7D9BAC044AE6CC7CA40F92C8FF28470E41D51895ADB53AE30216B1ABA552FCC14AB277A872029F3DC8D56794D842BA06770808F1C097787973B0A14280C5FBCC45C102C23821A07EEA6C3ABB4B52AE116F4B38E4A50CFB849177766495463197BCA3197B53AB72B172C163003C9AB89721EFF925F56B59373F5ABD1430B0731419A12BA80641628D78D712BBB74579C0A18A4CB2AA6EDD76FD7605FBF8214A00AA44E486810F3AC6E36345431C23F247F251112CB8A6C76444B1A5277B7C68AFD2C49D4A81FC5069B9A004CDF0587A4A193D243BC5F16357E1B1F280706B4C16F9D8B3B6A5815A1597C49076589D5303A5C89AD320CF6042F2F819CDFF04B850870E807B4F2B6BF99AA8F3FD16E95B3BEDF247CDBDAB048586116DB7A4530C360BB240FB2964FD41A5128CEE9FA6AD434B536345A49BC758D849260B78CD9F3B3E8461CBE906E93B209742C0ABEC1C1BBA9BAA05A8FD05637D26548F48512F5477B93D0BD54F6674158B2F6EA0488191EB023A641B175CC689A2F326214793228138D6DA03BFE4466DC962FD2A7C57102CF3F96CF3A6619D2F613CA063A35F4515C0473140B8EC3C53B1D9974021616BCA2459BC31502DAAFC861990C1B97EA1AB5AE018EAD781A67A075CC4924F9EA364BEC33ED167637F0A643C3A810914A49366AF69B3CC25938E77422832B7078C6BE562513EE3648758515E3C04F27EB5CF0C73EFCE032CF027C7D6916072B6984452CDCDCC5B6293CB98111E13040548C5C4ECB4EA83C01580887EBA79F0D700CE25274F4612CDB8427FE9377B7AAA517F12D2766834314263E27086FB8969A38157D9A02DA83772691184DF5117AABB901899E0E78A42C335B7EABAA462852423748916B9261E834320CB8E8576988321ABA321348E68A424183E010BEF6F0844B8C7164FC967FEB02C76000B372A1547C88C7402347326CB43712BE145E1854649B07AED70B798E845F7C4C5B0457BA58A370A9758940053476750C5168494BD733EF0C6C3A06117AA53DB762440969A1939539F85C1145307526DB7F43EA595833A7A49ABE0D3446F2345FB429C4ADC43B2BB17BAC8C6259F2551B3C28AE1B57FA49889AA6A2503A9017F832666610FC24A4A8657475D3A329D31A793A6A4024330F0B6D7FC2250E6575D8A8947FC30D431CC24417A6ED4BC131B253AF142F2CA88FD0C9A44F811103B064759CCE44E02CBB062458502B71B9083D097F926A0DA50B6914FC70E0858644253FDD9521E55C85D1AB71750942BAE014469040333767DBE4AC80E4B3D6751F27FBB0EB0418406111C9E77C39977315526BBE1C8E06150A0384CA618001B08554C472464AE8B4B9EB679A790BF0E311FFC20B9A28A2EDD52C4CB51BB739712419A116B1C0DE65217AC429B091BBF94CC9E24886FFB623889028490976074888CA731AE4F9A9E0E4099F149372390BD2B78516044067201DA469C7950BC9C681423B9A45B579160430ADD2B34D3DEC2CE84270FBC019847C017D098BC4224BC9C99ECEF95947E358F0F85DEF6837C5361FCE2145FAECA7ADE0A612138C8CB26BFB534C2087C8DBA4CE1F841E704652A093AF188C55AB221123540A1007190453163A573D166617F452B9B2C7B9638B0201292DCFCA46F4B9C95C1C8A47F44C19380A061B51942636C3BC8950F01186878004DB1EB6A3B2AD5410C3484AEA11A8D38881DE278124C4C2B592B61BD87AEF623DE1B5B8B2D016A2D985976062758849362B2631A8A08404651305484A3B2DABDA9982566822002BA1E83BA8B04C7BE77D4086207E5B8310FC28812584129A4C03E938E950CFD43C3023A8774B42C9338BA497E853BA684C24AA03ED33B36EF8C50BE44CA349BDAF986F38A93676A7B4CC659656715D0FFB8287B86CC0964D3E1B77E7D83AFA733789709714EACD47B8BEDE99AABA2480002C0FB9136E397790BCE939086BA75467340780CC31491E82172803A57129B3CFA3957BB70B114CFA99568428C540B187B98DA9EAA20F3A7771D80146AC21B8908260C2CF79383031FB99CED3BE7C86168549B8E2D2474E96BFE28158D91A16D5230B2F7B27D645C3B2096659A60C78A602457B0EF8553BFF9508175B5E10E08326139AEF678703D39693215D5D821811BB0868E483C646A4DBF0958978352B919C1354071C42BD39E9B9394AA54CA577D9B963F4F35606FA892166AC71A3BFA3572BDA92C2F9872BD19276CF66C31AC6CFED109BB36B77378C5D9A747637F1950CF36C5B22130EB018B607B74A270E0B733F12E426A2EB02FD3713F72C682D87CB6752A6A3037816B9A1278151C662529B54C52655B76C534E09CBA4CCDB85289528B8F0201081CB05066515A3CFCCA9031F386D6F4A411DF397E526B754A0CFBDCC7968A03FFC7349F32036AA4B15123A6CE8D47F87516C717651D56CC7E2147CFF3261EC76C045A32BEB047760295E79F8C501C46B099BB7B508CBBA9B099F612E595B41D32A946E0BCF26A0C5664B70971853B7965725D52BB371A03F456BE855AA495A2E3D9925F6A7C3B98695B5E179E64C17410BACF2035E4FD3B938C98DB2526804C79322230BA8455DBEFA40CAABA9757380944193063335B6721225F40702EBC418022FC2590D00F918765AC41CC6B40D39B45291AF80F721069C7F73096B7B0A202749C70CE672F246209C637375E75A1EC03102940E8C17566B7C2AD43167F48A56C55C6B38D289D5675B9B224B7155905C814E175052A7E67685392448003D8E2815BA9810D8930051B615558CACD704202AD50F52890500E8BE5CDC91DDFCB61948788A9CC2167A0021566A863B875361153B1A57E0C62F8CB11D3B3840F570B922E4A88151AEC22BAAF7559F724549B892575430383473B9183214104006DBFA356E2C31BA283F778776B43530A857C8126780E29C0316C64DDB1A947D747A8ED831135A8146936090FB59192B32B50327218125814B2863F2473B708338390AC2E507715136C8786FDCD1C10E2B0D63D2CEB6A4B0D8DB6F8AF354BDD1BFC6C71AFB627686761D97B761FC0ACA584539117CA416078C784972F67CAADFE67F38EB1996E749E2F11A3C47C389D5C3F1F52D33F14A094CCE5557154001AE2D17A2896AB4D0744E9DD4BBDEDABF34D38C1C81812A3CBE4A065A0D6CA0CF3A9F5FF0268162A5B3D872B6782CAB9149C52C2726079396B01866E00A20BC82208009F625323DF535F1658A1EA29B933368992A89EFA0BA586381D845099C35A299A467CCE67AF2D5B066D9891462114569A2261ACF20CB64CF3819D0E0A4C20A153CFB5EFC9C45501AA26ADC5B26553B520A04C4388D665B098FE52B5AEC48154A2AB5053279256BA4E6975F4764C77A5FAC85275FEC08D62534353B17764177037BAE5F010266767164B307D4D375C85549EDD3261C6E600B1787BBBC13A01210C0764A4A2578D4BF90A24704178F06A4E4B110F503341657B159925CEDC8967872A45A3C1F0122979AF87A878A2019B3F17C8BA6D79909F31E8168AC129FEED8EFEB21F07C02F282CB90F63EF10EB2F4A9ACB886 +encap_coins = 8BC7F573082482206ADAC45F410A9A3EBEB4A8538999B681072C26731023FCFF +ct = 1076EBA8BAE46E6593BC8489CE76CA034D1558EF147F6C09753A642924CB97A81A4C583682733D1F285DC97725FC79514388E996720C57A1AF855359E1E43FAF0A719E31E29C5FB6D2466175CB2FE82D8A0BB1B1DC57F3EC109E242DD31290481E63D94D6589410850BD2334C3992551D9F69695B0D73CFF6F3F363434EB37B03B3CDA3FD3CB28EAE9D6D3620B5541D5F659D88D6F04442F4327755E16EBAD5D15383991C40B274B33A1D381872500DDBBD50C531E4616868075E98A82EEC466167C214A1FCFE5291C71A36CEA2C19E7DFB76F7B236DED708D4829713AFB806B3F41CAACBDC98A54723BD090BDA5DBCE6E6D626B9A75EEA856DC326365E99B70BB060DA7B98D791C323D5D17DD6A35999B6100808173B82F254D655763BD4529E84D5915F3C5F0E44AFD556EE6BBC4235A78B1118D29D834333DF7629BF7BDE9B2428661A5B2B8C758537764EFB98F1D114ED124A857BB88E30918D021A515D710426558E95F469890A2A894201E31EEB17123527F69C9C4A1E3E3C9F33B91FE4971717256E830E00F3D08795A3360636E14CD9CDD266E1370768038119F8BDD64C8FCA1DE2B02E2CED0CD6E67C9CFEE70DF28476AB89E1DEDE78DAE37054A282EC5E29B178A7C340C27B8F442F73975BDD173671B3F7DB5DCAE20753099CA38C7F34417467CF822036A90350724A2EF58C60DDAD71C1697709CA314455C4B11B0AC2F9E5937BA353BAABD8A48740FB89CC28C5298FE02A9E0EBD17804D2AFF184D1BDF6D140D87DB87640DBCB98DF0844D8E8B4CBAAB34A1F9C0A5A7A02653F4749055955D5F5736B040DC06AA9BE03FFDCE10D7CD104667B8575DD77AD4B97A7BA2F799E2C0F29306E01E0C3E32315A495A8C2DA36BC46DA224C19D8FBC4C9BEC126DC8FC7183AFB586952246D0060554D547F195FAC1FB9543558CEB9E3CD09F6B3444060BB8BC1AF59D5342171F34E02367A72315933AC089C53517198FE4D9CD8A4D468E5F992FB60B67A881B1218E298DB595B4BE912BB21F7686CD6731A96ECBACF138A33C3B7DC27551CEA710A4CDF93C4C190F90C7759ED036CE9BC99BC095D55177B05A4BE98978B4685DA3AD595F7C040BC7EE013ED34293AB2B2C2AB17AAA1C4CC9A243FA495CD64A25C21F1942479EEF479D86119D9D24A72D5850F7262FD5E30E2D2CD08B89289EA3EBA54281C12AC2BCC802CC93C74CB5597A7CA360303DABB288EDADC9C37A33858E46F0A14C26B11AC1D33D50D23ADD3C9A148A9ADCC16490451A2EF364AC22216E26BC5940D86C6935B7E6167F8F96E4955CE5F2417245A977C462EC367053FF0FCD1530FE8A52D6E068D785BD7C6F3269E07EBD21B755FFDB9A5BF730C611C66372CAF3F379F414116A98B8DB6DE01EDEF226FF6F685BE5C5EB2D4D0C1202830947C6A084A5B61CE97C9D13DBA13A6BCDDBDED6DCB147DA21831DCE88E0774EABCAC67DB743E8E02122FAAB0B7CB6C7BB5026F5A7E731BAE576295B5822E2C533B513CCA79DECEB81290C93B0CF74087C453CF86C838C7D602510EC87CBE0B2098309FFBCC785A7F07A5B866B011063F86F3698B031B8AE3C1D52FB4269CCF7497C2EF9F122A0FA6FCB535704E2684167966997DBF7A632ED6C0E22B40635D971E75ED3FFA29671CD7B63E98F3EDF623D0855AD460BBD04B50CC150CF276E2AC1D306D8FA306C11E6EBA1DE2E9A81323E2975C5675C7C7F19922A36BC0CD117A056F8B573C50788BE30994AA0241B9EB606B94CB0E2F40047D41678D29B2A468C7FAA8A862F36EDAC2AFF1581E249855B707FBE89635FE9DE349083E139262C2520B3462D65FB2D9F0D4FFD8A52215781CCC016F1A7E1BE34E4607E7235EA5BB2F1175F47FB219D388DDA286B97BC92E9612970C1AA733E911D8D8DA085D40BF7C3CBAFC7229DA3962C86A1D39E3E75C2F52C32EECF0377BDBF8DD0CA702769B3D33362FC5582974DD972BB46CB1E7740E34077A47EE7E28608C852AF392E5D5A9F38B63F2F5D4AC5009EB652D104C4EC261567A52C3182D020017B6408BF0015A769AF38195BF6AA894A717212E369F38E27371D7357F39F524AFB31776E0DFD1976EAC91E1F03C815F1E56B8BECF4268CC9E7B8D4B770762849EACE7B3D78D2BA81234DC8DA2A99326B2BD1D38CEAC9A31FBA896FE4F3794D00BE1ED595159892408C66EBBCE737A406CD5C45E4FD0 +ss = E2D07A6E3FEAE164ADAB32CA4FC72881FE77D68720EB4BEBF3ED9D890906FE7E + +count = 88 +keypair_coins = E3FC575ED51513E62ABA655D24CD9C8F1C6C848AAFFA946C49A53AC3EA59E474648E3FAE1AEA06E15778F3442223574E9C7823F36CD16C72618846331F95E91C +pk = 0BA19153D3A984E76DEE73B825996798BBC7C24C5E45D45F26C39A879C676D2532D3C11F376B1F1CD8776B6280CFB52559B6B3BF4716E9B49997911BF8DA16C4147A2CC9BB379AC5195A320783213F62156C127257A469A428834D384B1ED48A8A576B240C1C55B84D61E248DF45A52199143FB141B39C29631216A32B8DFB876DF873456C14178C4360B8215C71E219C08C915A9AC02304C958C1BF7E65B3742BAC539059EEC85FB6CB608975B401C83B490094A6D1714876727EA34CD27B7385D7575FF49931820FD5DC33F3881554C25DC41A65834115E1C899EF8A080FC6C53B81B3804508FE4C1FE6904960D96F8C1576614474C9191C99FA3A201A4143B09AE0F3432BD13A3442CE80EC3CA3C94BF2B45FC398165318BD8D2683148315D1969B70840AF5B42D5779C844C48CFC0488EC65B414837A965C65902C21A2C48A590CCF9FB9C6F9E45913AA0577D2ACBBB29B5357CBB6B16FE6BA9ABAE44645CA68573B5FE325670F2C4B5378C040171EC3A25229B1C3DF175DC1D4AF59035C7AC449D07C72ABB6A153BA50C3E80FEDD62BEEEC1ABD53A45A7C33ED4117F415B77A43A0D7BA4AE2031E3C57C945B9ABC3B5B3B7915784EACE07E7CAACF256CD27B28C2924B01302C9432E5F3A2A75009D03E36FCF7089FCE58CE57492443323AB494C07146DB2AB8E3263955EB373031C22DA591EC5CC3CE0155F69FC43C8484A9E332E2DD433A888190B05747E0971005B8026409AB874CD65F533A51A40A668900EC109DE60749250890CE91290A43078E3AC85502B4F34518886578C26353A6577FC51510DDCBF4FFB6B501662DFD1001D6354B47B0528DBBC0D6A18B58C605A91957C27BA354232751810202A891AA83EFAE7957AC2883605375778369589597A8B4F23F325ACD8683C4B1DC3103002E1C588039E08A7C3C92137510391B3F75B99810F5C932A80A7B5D8164D999C131828A59A939D90A8CAED47C205681973A38074243A787866588399A199C8BD74C8B6546168E255CA13B23D0775EEB727E3CAC8B4305893185517274C4A4ABBED709F2B986BC02592D1DC38CDE048E5F63F15086F11031348A7A68E044CBE1075F1EAC3C330477FA5124C832C2C880E29DA691007A82B79611EE04B64280E51D201AEA5B00A633E59DC0C20D72742A925D4CB19661CA864BB79A029C7100911DCDA5FA1B36392D3432C187DDC51190C563D4C180DC87976A142962023301ACC29AB63853813185B6390FD84B7D395514BEA0B35B22D9DC19277AB7D0D602725A9CA3AF87DF9F96DB8BC6A3F27891F9283BD6A4C4966CD26D3C96C2B4D808A2CD435ABE4173EAD728A200A43F8E21907020D6C19293EB02785571A399A81B8205485C54AC19BB298C8941DC06ED7796A39EA2C84D755A0E90B53F86EBFF130C6008F2DD69AF0017BEE0C6E13A0BB2BD73B02431BD211A5FFFAB76F96C080482055837A6295209CB2A62505B846005CA5A482709411B5B94BC3781A557B2EFD85B575621CAB87AAAD6844034C4A1DDB43D70687D968BFCE441E7054A9C9905C114B9791E65BB23AA0CF22AD7E005BCB38B24DEB2E7741853EE7085A93250EF7624BE270BEDCA3D322842B477A507C3DDFE3325D893CFC432F07C15A1422128B5703D92812B87915E86A8F8DE97F163CAF5F695EF9994AC4D7932FB9629DE72A988194BA13C996C2252968708E6468687B1A91063DE718331027A54AEA679861B1B6B6930F8947AF72A1B30895F225A7BBF7CD7E8A857B6216115C8E98689B89C7686D282C44407C44EB64D3795D51665BD538C33A7915B5F7773FF20B6D289D2425A2EA4A14E8E2A349A78C76F8760082A1F8315B4DC41109A05C6053484A1B381CD8412DF92EBED7C489EA3DB9915A23E07C37F7C805E448A5F08A89A860B96C4BC7A10D4C30522CC900291A8504E72F4CA5229135827626C138173F73F123FE013F3612A27DF9965DD78C6F1A2C3577C7CF866E70190C8A249A6AC6C1EB45AB61F9A021470135292D6BA6C26455CF0876C9633B4AFC24779C908B5619CE1DF7464E096AEFE51B5F43BE40B556E2C5C41503857F8A6B4ADB2A5D8A67CB668930889D68295736027B5B1A4B3CF44A05101F1BD4B365B8C54117C6027460E14BA516724361D34887A693067791FB183C9C25FD45802D5699F33205A71D6404704483BD2C82E92BA9457926A45BFA0985 +sk = D1F46E67CC5AEA63CA9EC413938661C2F8156CC79E10A64174774545B597E91A8CADB58DEB15B27F343073B071873870BF858B5FA3AC3689698DEB68C570406972210C2B9909571A12753448E00E6A0C165A101469828E8F60A16B55478C8899D9A38C1751BF220A60A999B0D2A429B375137DB8BC9B85AD5FCC073355AE630100F8FC68EBB8534135590CE22D0A0672AB54936C8665AAF476B50293A32135283777C375767B04547501A53B72A14D3C4DE4E001D16B2B2B598A22D784A3711C39DB183AC82CF895B242954B41C713BF464464917D6B608D21B67B3519A6DF161AD237359E262B95C6BE3A8522B9248346785FD0DB03CD083A21092F4D91AF156B12F4C9C77C11CC0B68ADBDB813BEB21289743758F8136661704D0C5CA9302A064040334017D47815B7C35363F5C730298670536C69C122CC91CDFD18783EFC4C39C8C29CB1023F1488A7469F1CFC1D7EBB3D1CEAADBA3B07310000BD89C043290ABED896E655CB1F43A1C7335AEE30044D9652E6D3B8E394218F63072C7050A2984032C45735A3AAA4108AED8B9A19C13B9BAC28CCB123D9987C45B91E89B7A949B5B4AD56ABE4237F21DBBC53AB651BD4B703069F82133C54ACC1AA415DF9961A4785337535869FB758CD04B798907E36197EA428C66AA516F602404E87341E154A0E09C881725CBF00761FD9645B658D97D21F33059E4A898DEB0C826D9057AC302663897D71567117FC4416C860775B026E51A52663711868777D542F1224B277EC005F2BBCFC0C84146591CB36CABA82692B010DE229797CAC57AEB64AF446A896527BED9B3E55539C0F6A0E9ECA5953890B95B0B282C3A4C46A44A8705A54A8806CCC0D3C736A20D34AAB118813651D85F12906958933D69679D0457A4817DC83B525CCC63E94C1BCB1C869CB3A0BC46D47084481C2563754AA8F44682B870ED04996CB8886F43B91AC8767AE12856CE5B85F55C8802830BA1BABF5797D0DA723EEC24616A195AC809371D93F89B19C874C840EE9C39E7370CA561B6E91552CEA47F1D09C9CF633E7CABC9EF85F89D01A29D9CFCA8143BB05C3015B3C6035AFDC45AC7B08B5406566BF864657BB3A82322793906462C03C20969F76C2C8C8EA2622A373C3E40164A77055EBAE05787965B60A861C09658C32D4194DCCD7AB1DF87826590890B1785F0385B965B5AB3B870A0088696A783B5C7A69962B86F789BD43588705315258C117C4313198AF42E2B7FE39894A86189FFC4E8C6BAC5E7A0F03D86D18089A6999972F309A6DEBB365781F64197165D259BDA98C7A920A9E790BDDC587E7C08040D649B8B08FBBF36D1904970354410BD77B87889668566CDF4A94E1C65B04D33C269C5152B049850857308BA1310283A976A31DB34722E97C97DA85D14372E14A8A95BB45C63670BD7712686200D451CAFE599AB0D3A183D2B0DF7B8FBF0995042BA0CE682EBA8B71DC6C0744262C75B7638B51B9C4931D4F7C842328486A799D06027CD5CC75E4B1B6816C2AD66B86ED047EF978184BD344C00AA1200432C5D142246B883B5B85AD5CC8F8FA994F4A790F3B6C201353F77AA9B7E9BB195375060282B7DA42ECD36295FA55F8B5CE94B812BC421B47054469D39E3483A63583AC5A97CD63312E776902B73C34D5D81A35153589FB6D7590C0F9B4996F83CD4631A7FB6C09F60A0FAF7C5D24F9983D9CB9B19566F1EB6800024FDF032C4032C778D74846F4C7B63A3EFFAA5AB619AD3C62680F5290ADB5063F0137F0CA7B694978C622A9A34BAE292719A7F9CB67033C0DE773359AAC3577BA38446A5610ACB9D48509413B1CB024CD25A4A5A882AC31CACEC34C25FA073BD38A8356934423A838415355680BC7155D433B4357ECC6221BA804602317C7703AECC7FDB30781A715849186F126619FE78F610420D2BB3ADEB085753A710AA07BA2139C0897A172DC09E7235BBD0638D8C695DBA8BAA8B04F7A058EDAC52622B4A9638155D56448A3977786941AE23C6DBD05C4FE466412F29C74EBA96921612EDC0BD5D12E72E944E5105843034D9070416B649491C7B4245C14CC152107BC68B6078B76CC61A6B371E95202292584A1734F3C4214C2371B8168C6EB9C7E7EFA76432316D140AA9055577D874A7AD70D16A3783F7904F3445E7D81260BA19153D3A984E76DEE73B825996798BBC7C24C5E45D45F26C39A879C676D2532D3C11F376B1F1CD8776B6280CFB52559B6B3BF4716E9B49997911BF8DA16C4147A2CC9BB379AC5195A320783213F62156C127257A469A428834D384B1ED48A8A576B240C1C55B84D61E248DF45A52199143FB141B39C29631216A32B8DFB876DF873456C14178C4360B8215C71E219C08C915A9AC02304C958C1BF7E65B3742BAC539059EEC85FB6CB608975B401C83B490094A6D1714876727EA34CD27B7385D7575FF49931820FD5DC33F3881554C25DC41A65834115E1C899EF8A080FC6C53B81B3804508FE4C1FE6904960D96F8C1576614474C9191C99FA3A201A4143B09AE0F3432BD13A3442CE80EC3CA3C94BF2B45FC398165318BD8D2683148315D1969B70840AF5B42D5779C844C48CFC0488EC65B414837A965C65902C21A2C48A590CCF9FB9C6F9E45913AA0577D2ACBBB29B5357CBB6B16FE6BA9ABAE44645CA68573B5FE325670F2C4B5378C040171EC3A25229B1C3DF175DC1D4AF59035C7AC449D07C72ABB6A153BA50C3E80FEDD62BEEEC1ABD53A45A7C33ED4117F415B77A43A0D7BA4AE2031E3C57C945B9ABC3B5B3B7915784EACE07E7CAACF256CD27B28C2924B01302C9432E5F3A2A75009D03E36FCF7089FCE58CE57492443323AB494C07146DB2AB8E3263955EB373031C22DA591EC5CC3CE0155F69FC43C8484A9E332E2DD433A888190B05747E0971005B8026409AB874CD65F533A51A40A668900EC109DE60749250890CE91290A43078E3AC85502B4F34518886578C26353A6577FC51510DDCBF4FFB6B501662DFD1001D6354B47B0528DBBC0D6A18B58C605A91957C27BA354232751810202A891AA83EFAE7957AC2883605375778369589597A8B4F23F325ACD8683C4B1DC3103002E1C588039E08A7C3C92137510391B3F75B99810F5C932A80A7B5D8164D999C131828A59A939D90A8CAED47C205681973A38074243A787866588399A199C8BD74C8B6546168E255CA13B23D0775EEB727E3CAC8B4305893185517274C4A4ABBED709F2B986BC02592D1DC38CDE048E5F63F15086F11031348A7A68E044CBE1075F1EAC3C330477FA5124C832C2C880E29DA691007A82B79611EE04B64280E51D201AEA5B00A633E59DC0C20D72742A925D4CB19661CA864BB79A029C7100911DCDA5FA1B36392D3432C187DDC51190C563D4C180DC87976A142962023301ACC29AB63853813185B6390FD84B7D395514BEA0B35B22D9DC19277AB7D0D602725A9CA3AF87DF9F96DB8BC6A3F27891F9283BD6A4C4966CD26D3C96C2B4D808A2CD435ABE4173EAD728A200A43F8E21907020D6C19293EB02785571A399A81B8205485C54AC19BB298C8941DC06ED7796A39EA2C84D755A0E90B53F86EBFF130C6008F2DD69AF0017BEE0C6E13A0BB2BD73B02431BD211A5FFFAB76F96C080482055837A6295209CB2A62505B846005CA5A482709411B5B94BC3781A557B2EFD85B575621CAB87AAAD6844034C4A1DDB43D70687D968BFCE441E7054A9C9905C114B9791E65BB23AA0CF22AD7E005BCB38B24DEB2E7741853EE7085A93250EF7624BE270BEDCA3D322842B477A507C3DDFE3325D893CFC432F07C15A1422128B5703D92812B87915E86A8F8DE97F163CAF5F695EF9994AC4D7932FB9629DE72A988194BA13C996C2252968708E6468687B1A91063DE718331027A54AEA679861B1B6B6930F8947AF72A1B30895F225A7BBF7CD7E8A857B6216115C8E98689B89C7686D282C44407C44EB64D3795D51665BD538C33A7915B5F7773FF20B6D289D2425A2EA4A14E8E2A349A78C76F8760082A1F8315B4DC41109A05C6053484A1B381CD8412DF92EBED7C489EA3DB9915A23E07C37F7C805E448A5F08A89A860B96C4BC7A10D4C30522CC900291A8504E72F4CA5229135827626C138173F73F123FE013F3612A27DF9965DD78C6F1A2C3577C7CF866E70190C8A249A6AC6C1EB45AB61F9A021470135292D6BA6C26455CF0876C9633B4AFC24779C908B5619CE1DF7464E096AEFE51B5F43BE40B556E2C5C41503857F8A6B4ADB2A5D8A67CB668930889D68295736027B5B1A4B3CF44A05101F1BD4B365B8C54117C6027460E14BA516724361D34887A693067791FB183C9C25FD45802D5699F33205A71D6404704483BD2C82E92BA9457926A45BFA098560C001172C4734A620C248654C58F1C10135657083DE776116A6ACF8A55F3610648E3FAE1AEA06E15778F3442223574E9C7823F36CD16C72618846331F95E91C +encap_coins = 6E357DD587894D497886BB4C678CF1ED347D1D85BC1540D31563106341718E16 +ct = D7612C060B1EFE062684C8837212FFCD6B4435D18E42F20BED488B5777DB4166C6A03B045AC1444FCF8E302B25A73490E5D408DB8499847A6344DC374C101E03F0100D8AE8EC7A01A91360BB8FFBC459387853985E2B7EBAD14EAA9EFD4DEB648D5D81F5BC0E50219D493DC94D9BD46718E6829731ED7F1A4AD758C835A4F7B80EBA41641816593F75A29293CA27B1AF48692C19CADBA3F4B39313EB0E45A3DFC250B25283ADD18E6462591E9BB3183617E75B3F5617D3DA2EB68ECE676FE1829C6B588EB2A31C8F5D8CBE15AF5706F22C4E941EA6663A927E66A3DDA786A286D37B2B3BD017562B1A5E4940037F7835382DC9BD3EA82ADE4354D082CC7E8BE7C825AB0E446E35768012832AB65A2617B4A37DFEBC7BAB69919DEACEB28D9DACB74B053840BFD2DE27651915AFA7EB0D2E323A30142176022C580D5A7C831D49D692D12290A8FFADBB6AFA9D3F8C6F9FEF7AD0211007FA2FF2A23FF4842679DA8FD002888E7DDDE3B852A5C7848A18489D8D33630BC12D6AA7FB8B7001F5D3C83CC1801CBC343C4613A64CF8960531EABAB88093EBAE866F09E1C8633090B2C69E11349DAD30F73EB4335B1F7EE84248972FE06AF4A615E17412FFB7879B6147143F7FF23BC1BF8EC984B54F3DAC85FCC94FF4A52C9175BC40D112536796966633657FAC1DDC5E86C785DDE06891E203B21389BD4CFB4AA95F79F94D44D77536B31C0B6694CD8A370E96B88B6EA4922CF3C39D02C2D25F2536422D248F6EF011658251D93EEC6B5F2382B34A006BC8E680F0C46A37B5FC78E3646208D38EA29DAEFE9085AFB8A86D149018E3B8C5F5F5D4FC4C5BDD2ECB978A01B96CDE95067AE330969556428421447D508DF15907F9C0D12BE4A5D092B5655EE135435975674576DAF59EB6456CE773852342DEFD25332F031CAC67F2AD7F9E5408070AD16422C47B0DA7E9B7FA19BD6A731C3F1038E3C09F3428B05105F2F0198F47A661BBCC6B28CB0ED3F8684A871BE7BFBA52273EC0CD103807823AC5B5C43721C9E6F864FBD3DC0B3C60ECA5E5ADB3D757DCF65CB099B5D9FE595C72E8DCA95E3D742B871CBD8AFFC0F47FF6A88F6F397E99EAF992B33AD7B3E71763363C97075A9606CCA141839CB6E29B15CFEA90C4D9C56D1A2521532D078C4511AE55B55A50C323139679B2BB5EF00C418486505CAAA929B7F2180507E25FA848833C2FD1AB16B4E2C3375B10FE6C180BD4EF49BBF477CCA8D41E82CE09DE9A4D505FAB30B3BF2B839A32C36DD678C2F06A51299718F7307F824B172C007257F2E3F3FDB6AFDB52E9F06EFDAAE3CA1AF22F4443E9B8A638A3404B8D93CF5930A93C2E41E1FFC4FD3E3B2C9D2FB94756FB057EC85F3C32A41DAB56E9710B893B9AE1ADCB2CFE7A109A7A73F634BEBEE532C85D702D0C39D32C806022DE0B4D54C6250414ED43EC329E7EEABF5267A50910B4CA65E9C028BA9E9E8EFD1FDDFD847BE7AEA41408A835418659A344805E0E08CCEBEF915EACC17EC2748381C408E369809BABCEDCEE3E9E66F8FB830EFFC55B7FC7FEBBECA2E9443154F993C2A3783FF07D5B271965F189F79C69E9876ADECAC33E7ECB4C82E3918A5219CD331B75A042D3B34CA9093ED281E972749D05AFE3B36335117FD7B1E85147A9328908F72FE0E1F4F83330F2B11E468595AB1C3753B14FFE48BE979C68A0908726F64D0BF1C18E0DA921F1A6B3092681D7C365F474EA0A05F4696527963A92CE8B5292331EB9C8D6F6FCEC6949AF4800DA978FC41FD12E3D448BDC236ED2C15143607735847AD6FAA5CBB66346EC764E60D5B6507E3CADA3DB4CEBE22BFC4CF4C830BFFFD1CAE62CC4BB5AF88BD56753557C3DF0A9E8222EBD26AFE145737B5A498906EFB9B12DE698818B051FC7019C8C3A7548A4E30F54F376B56132C306C38865A4D33D5F17DFDB72C060FD46CC5D1309CDCF9338D7EAF4C87A52E1C30DF142C039CA12086C43E72AB04AC2E6E54A37F57C12E61EE428A970BB07555BA3E2D9C8A3583D8974993AAB69164C8BDD41594D815A08322362F371E05F2776B434B4DE25B5D4956B1A2E44D9C6E5D8FDB49D7FC8B1BEF4EFF1E0E610E91368A673A94D50346E809F43E31F5D6FD904D22BCD97FCA5E51A682B6109ED69865F80C4EE7F2CD3E6B1549CC8BDCA599B38B4DD43C2B31E9D30F24F3C96B05CE8ED039D3CC19AF98FD509F19BAB0337 +ss = 9C6E38BA9EA8E833A9129015A29171F6663F7A09D86F4A293E8D50AA3DE0C616 + +count = 89 +keypair_coins = 470B4943F0FE7FD0D8EC5185ABA0D1DB09D112934E4FB4787E2BBC6B88466E7BBB02D701FD1350AAB462CB65DAC4B2F75928D378DFD7A0360DFF9185175538FE +pk = 29D5526CBB30AA578643B133A0254D6E22C33EE80564E7424F0842B113636010C566EB59F9923A021B2A19C08BFAE521E44324EB5BC9873846141CA7DA45BE4F8619B334A7CF52093B2177F4A71AE211081A096071F958277555709B2F459685FF22849A86375E157258D24563B8028A728C5EB0BEF79495C1C53979880930539227C188C2027681236439085B41763D6378A4EA0254A7416473E67D49FC5DBCEAB81E56A30E2BA61EFBC97367C06496812BF79D449492F96682C2716053BB54DBF1BC22F32E6D88C2A1947BB599A878B84F29021EAD84A763EBA7B9F3422466836BB6AD029543041115D638552CC2017A84AD4CF687DAABA75B0C0A73A95F39ECC758264D48063924E9A0E793B5275C7090F9655C2325A3AC19F9A5B0327B80F220B9122583F5D908CC21C97083227B568C47E58A2A7843D2141411B08F9CF61DEB4A9EDF41617FE26BF9C519D0CC80CD292585DC4CE5A90339216A6F876206732AF6DAC9B2720025B31E17EC47DFF321B06107993A414F1509839886BC526F8051C4380C3FAF4B64D7E3C9F9A76E9D440A67499322B37C4AF9B26B2814A2B8B699AC0ADCB25835D038B495978E2446A1C33D98269A9D28C1CFC89C3BE645AE53B44DD4709587C53DF10C578562A91B55CA04AE8530C6ABA9C16CBB0684385704C15D302C1AD4857D0D1657DD85C536CC76F228641899188B9222F2B208D34222276A3C91628772C6245433A0FFD16B0812299283AC8D5A36B868B9FAB4189AA64A0B90B606E695FA542B8C7C3FF0F0A46D5B00DA78236D518D34756A2F32075480A4C15B7C27CC8E4A93180E6B5859120A24DB2DAEC61A479CB039D4B9E6041E816C96862C2B1D616748444B4FEBCF7A129E6E7817950C77A3FAC386FA787EBA4157B720FC26629842A145759CC8FB652811A8A3CACC29571463AAA7E1033CF0B4B2275B7D2034A48F49576975363085B304C0426EC26FDB17CA8FA5496D794778C49B4F74A58240BDD39C2FD6628011837451CC4389A43F3BB20959928B77394651E4C2CDC44CB9499DEF6B366D15550B41AC89707E57B271AAD6113EF7A9B1575C69E35E4D75BCB0333E89C091603B7EA5973A277672A1C504CC2C45022906106B97D4FC01E98A876BE91D88F4C908B892B5CAB99FA878DD1B3B1688976C148BD0450216656028D9C2FCC3BDDAB2CE6541810CB84F4AF414EEB863B7C7452BB79A96E790CCA35BDF05B4C3B059801B2BEE373DA6A0C3DF79C986E71A6788712FC50AEA51044C2B82B3D201AC7A1245C96767F0CECE2B4AF175329A4973696C5DEEA91075A6B8EE2C347D15C89448CB48D22126D82732C1293288AC60BB3BC3CA1E208BA71054399FA4A5D1DB7389379600C128B0EC1803B88DE90369903799CF5CA0C5EA0B012B691B0A50B9011AA412509D1ABF24E252E9D2CBB315361977770ED77310C1705E46B06A5C1C35FB5E5C9A8066D2750B388855E982BCEAB6B5E8018181B66717142CBC3729B13E2B34205FB06724EC13C3C2977E346E50A79498F94756069693989B77432F8B5AC8D2B06F2E227C4728288E91BCD6CAC439B068E2017CE1C808C74098EC2C099D81B9DC6AB7E780C0C1669806E3CF34A1C1D5D002AA1C9301670FC4E45B64C59481D1CF6446468806683F57B3BC25B032AA40D2C188C5A2A7D47B41B4753D5F7A3B22BB70643942D6C35317F05E6ACBB4F6794B1B0C3BD47893A7F9CBBB61C608068054B385A9578303111972E8888C6427AFE099A1A07FB3879B821B25FD1699AD001F51B27ACC5B2926AB2CAEAA9341E1A627493F44F561EEA57745A0764A840963024FF6C070AD95B285A74527FC3DA894C06F7BB5DE61A012547F87C1517B9AA5575A1AC9A30D858C912BA096CFF4A24085C750AAB463F8B956FB837EE300470452C6431D128B27472B5CBAB268924ACEDEAB3E7B02B2B201A44E99654910CDC8D5206496637E88929A1BA4436272F6B5CE41533450663F7A1A9144B5400D727FE6342C6CAC6E2C3312015B571585303967422ED8C5D4B75E4F203BF2F86CF0370AA9324C47246A27D9076559C906ECBBECBB20E020CD9B6328857832AD8400666B943F8418F57408251B91CE341A2F63601DC751C0B301729CAAD8425F717250D5A249B1175F9AE8A9DCC8CD149B9BCA489F02FA05307D7163B35BA6A4C5024B70BA27DB0DE8D64BB8B55C83BFDD24 +sk = 09D0009AA9878C697E2EAC9CEC9675A9570660346547D7AA8D4548E3AA917E238CBBC10C389445D15714B237566CB44132D6983C9610E779570B74482D5BA2742A1BB51C68142C1680B800F1938795367B6D8A56C32A0D77922C78116643530AAC01CFB2692F4BD6BBDE615A3335B397487DB8A1175A043719EA58D0DBA627D7C8511468B34442879CC227E6B39E084DBB68BE71CB988766114A80B1979118ECA08217540F032966688C99FEABA06D0A0A1E701DEAACBCFF9C2F2948A209AC8EE505C85FE0444B5C70D067100B63CBD6D98F9AAB73CB06C97FF31D7AA0CE188707DDC5C07D495B27957B369055650ABD5D9B9F75761770920DD0B574A5841C3BBC9F6F1AB0179C118C7A83B2934E950B3DC732C84264C66FCB0DF78975FCAB5FEABA4E6AF97131696A0CDA1CC9E2C40A266FBE6667C1ABB361F063103311A792B95CC525FF872BF3F394FFB48B30B334CA02BB32A901E3478F811505DA066DE6A5CABA425DF83C27565CA48B16BB2855A797A72DFD57615D5117B24374C2D306473A349521A8107790D268AC6B5813C593CB9E8621F8C68FD2E8082C491C95C5AC74C86DD37B0A4EA0CB66AA576AF50FBDB0A31235BDC9E8107F1859ACD2674FC72C6669A3465556F90269CC30B0A8F53563378EE016A7ABCB5460D5371B01754BD7373C2314E2A42D98636112F3CBE0638E513B38D4850AFD6A1D3D485308181FEBD88B75F532E4541965E0BC592885FD1C1B3108C33F74725850617B526AD4F2C8CECC19B0A0ADE15057C90AB086C26CB014BFF92988903BAFEFA3C4C96CCBCEF178F988A40D339DB324257DE69A119125C52A4147360B1274808299446EE768680170457ACEF18814559996FA96B418275E031199E0D578E86C946381C369AB839B1A75E9D6845C98AECA24253B3B0F00EC7E92CC6F6A40A4D8B04900CA3E78CC7A5C51886E0901A908BF0A08947E3B524F1C606B055451AB6EDA2BBCF832510B3075E2CB0ECD493B71102F4EC69565F96651A3A2C3B738C2D55805798253E055DC8508B98822E6803785130D22E494B50025B0CCBC69667013C4CE4A140C2E9BA928D41D7FB5237DA8C5AC0310EF5007B2B0C6737BC17A747C5A2C1F3C1166BC2B0AD7AAAB1D870E54694C1CA293665286C4EAA35D34BD6EA7AACEA04871C257CF63641264AAA0DB4F65337274356F71D02310A57E44D23EC6B4185BC5CB45A65D3B592AF3138216332060264A6E53702D766D0F4A0F14F70B75B780688591CC414283A59AD2F84D665354D71C2AAA1C278AB6C8BA902283B286F82761906C9B2796595BF5AC01455ED2B43607207A30C949AFB1BA5C50659143C98237279003CA820B4B5963B0882A088CE09C99F4A6368971A7D6885237BCE28580E2EC483FA305FFFC0ACA173A89CC41727A55D4E29A8C410B3FE851B3D58B58C31920759ADA529DA162CCE47618B2F715F3658D71F5455365C67B04748B371A5A96B75F342CC4C031C713C04D2B6CDEC0CC92B7596BF4A2A0C91537A0C8174B3456489D2DB70D3AF2995C4830245120E9411E92ECB2293700973386983A0C6591CD5EAA34D5CC00FD672D20A604E78696D5542646C120E02C8DC5162630E71465ACCBB47CC0EDE06FECA295830091000BB220CB2A41777647D6084C853CB69AB9AB97204B14B31BF4B1AC577A76110F5CD17DEDE14D095662B5D12C931B1404D3B0ADE5B216E69FD480A9335ABD312065E187A03891A4E9A91FD01A57A8E8A1FFA075D8E68152CA058A876E2BD80E46C22AF8360E3734145EE882CFA06C22167F03E103ABA731E7526033BA815D9C3775D311F5D92A31D552D89BB291663ACE4B5916436E1086B46879950DE89D453A666F0B514AC31EFE398ACC52370E27C0F681A97B0966A3A14B7E45BFBE688B5A1B40D9F515B688218EF95A9AB211CA429CDCD6A4913B2ED87C9F65D64681B9BED10C09C94B9C0D95C75B69721B119B95583EACC884A56AC09BD3BD6F197A0EFB6659E89BA3A019EE12B8EF056A44F174F0219F89616330D2BEE1580669396009895CF9991A49E7BB89719F6D340BF33C427FABB2A5C96D81C42E18A96470360D96279BAD640BDB41A40ACA9142275CAE4B95DA8ACF98BCA3456C574ACC43D3D72A2C6542D1A25C554A8439D9565AF29D8617A129D5526CBB30AA578643B133A0254D6E22C33EE80564E7424F0842B113636010C566EB59F9923A021B2A19C08BFAE521E44324EB5BC9873846141CA7DA45BE4F8619B334A7CF52093B2177F4A71AE211081A096071F958277555709B2F459685FF22849A86375E157258D24563B8028A728C5EB0BEF79495C1C53979880930539227C188C2027681236439085B41763D6378A4EA0254A7416473E67D49FC5DBCEAB81E56A30E2BA61EFBC97367C06496812BF79D449492F96682C2716053BB54DBF1BC22F32E6D88C2A1947BB599A878B84F29021EAD84A763EBA7B9F3422466836BB6AD029543041115D638552CC2017A84AD4CF687DAABA75B0C0A73A95F39ECC758264D48063924E9A0E793B5275C7090F9655C2325A3AC19F9A5B0327B80F220B9122583F5D908CC21C97083227B568C47E58A2A7843D2141411B08F9CF61DEB4A9EDF41617FE26BF9C519D0CC80CD292585DC4CE5A90339216A6F876206732AF6DAC9B2720025B31E17EC47DFF321B06107993A414F1509839886BC526F8051C4380C3FAF4B64D7E3C9F9A76E9D440A67499322B37C4AF9B26B2814A2B8B699AC0ADCB25835D038B495978E2446A1C33D98269A9D28C1CFC89C3BE645AE53B44DD4709587C53DF10C578562A91B55CA04AE8530C6ABA9C16CBB0684385704C15D302C1AD4857D0D1657DD85C536CC76F228641899188B9222F2B208D34222276A3C91628772C6245433A0FFD16B0812299283AC8D5A36B868B9FAB4189AA64A0B90B606E695FA542B8C7C3FF0F0A46D5B00DA78236D518D34756A2F32075480A4C15B7C27CC8E4A93180E6B5859120A24DB2DAEC61A479CB039D4B9E6041E816C96862C2B1D616748444B4FEBCF7A129E6E7817950C77A3FAC386FA787EBA4157B720FC26629842A145759CC8FB652811A8A3CACC29571463AAA7E1033CF0B4B2275B7D2034A48F49576975363085B304C0426EC26FDB17CA8FA5496D794778C49B4F74A58240BDD39C2FD6628011837451CC4389A43F3BB20959928B77394651E4C2CDC44CB9499DEF6B366D15550B41AC89707E57B271AAD6113EF7A9B1575C69E35E4D75BCB0333E89C091603B7EA5973A277672A1C504CC2C45022906106B97D4FC01E98A876BE91D88F4C908B892B5CAB99FA878DD1B3B1688976C148BD0450216656028D9C2FCC3BDDAB2CE6541810CB84F4AF414EEB863B7C7452BB79A96E790CCA35BDF05B4C3B059801B2BEE373DA6A0C3DF79C986E71A6788712FC50AEA51044C2B82B3D201AC7A1245C96767F0CECE2B4AF175329A4973696C5DEEA91075A6B8EE2C347D15C89448CB48D22126D82732C1293288AC60BB3BC3CA1E208BA71054399FA4A5D1DB7389379600C128B0EC1803B88DE90369903799CF5CA0C5EA0B012B691B0A50B9011AA412509D1ABF24E252E9D2CBB315361977770ED77310C1705E46B06A5C1C35FB5E5C9A8066D2750B388855E982BCEAB6B5E8018181B66717142CBC3729B13E2B34205FB06724EC13C3C2977E346E50A79498F94756069693989B77432F8B5AC8D2B06F2E227C4728288E91BCD6CAC439B068E2017CE1C808C74098EC2C099D81B9DC6AB7E780C0C1669806E3CF34A1C1D5D002AA1C9301670FC4E45B64C59481D1CF6446468806683F57B3BC25B032AA40D2C188C5A2A7D47B41B4753D5F7A3B22BB70643942D6C35317F05E6ACBB4F6794B1B0C3BD47893A7F9CBBB61C608068054B385A9578303111972E8888C6427AFE099A1A07FB3879B821B25FD1699AD001F51B27ACC5B2926AB2CAEAA9341E1A627493F44F561EEA57745A0764A840963024FF6C070AD95B285A74527FC3DA894C06F7BB5DE61A012547F87C1517B9AA5575A1AC9A30D858C912BA096CFF4A24085C750AAB463F8B956FB837EE300470452C6431D128B27472B5CBAB268924ACEDEAB3E7B02B2B201A44E99654910CDC8D5206496637E88929A1BA4436272F6B5CE41533450663F7A1A9144B5400D727FE6342C6CAC6E2C3312015B571585303967422ED8C5D4B75E4F203BF2F86CF0370AA9324C47246A27D9076559C906ECBBECBB20E020CD9B6328857832AD8400666B943F8418F57408251B91CE341A2F63601DC751C0B301729CAAD8425F717250D5A249B1175F9AE8A9DCC8CD149B9BCA489F02FA05307D7163B35BA6A4C5024B70BA27DB0DE8D64BB8B55C83BFDD24647A136F20B22C63AFD2B88D14FE7677CF5C2B78223A587068377021F6EDFE9BBB02D701FD1350AAB462CB65DAC4B2F75928D378DFD7A0360DFF9185175538FE +encap_coins = 0C7068E5864FAE7D1ABDA0D0A5C1E62FE5E1CFC2C96D82ED6EF180815DFACC66 +ct = 0D4E87BD1FF400520874A110CFB7E83D4A47C96679C12508B919C9F8885190B930C6575C1E9C933F53E6F75ED49EAFA91FE8F3A477EF062C2F46DE2B7343A60334FFC43D26ED51043293C1666F7DDCDAE2D5F622F61DFEF55DA30D57DC7114AB7B2F00FAFB4434C4AE9DCA623F1783830EB8B5B740F3B71471FCB85961F9ABF1782282FCB5C25C67BAC4DE9FADD071ED271DEC95201CF5844FF9507EA894B57488E50E7C1A639394D71FC68A0B3A0B1141E5EC440735DA57ABBB5E2B96838B6B1EAD0AF4E55311C5B9FA76E963FAA0E7686FEF27E090ECDDE7CB05BE7200F0EC01E466EC6D4306A23D79DB5A2E833BF4C9C7E8D9778C03FCF9E5E57943789FF0EB3B67C5D3546055F63A3C502D3B436A0426DAF9FB36A8F9A800133F666528BE94AB36A2C063307D503CE290938F122C7490718D0396B4FC880198C31C50503D05BE30535475E29E5F897CAE68FDE6E9B2F4451C02FFC693FECFC0002F8710B026FC111A3675FAD0A9A7C819CCBCC33E2CEA35E03F7C800D110A545B4C36FCB84841C83CD82DEABAB837FF50CAEC276F7A7620EABA1F91D2586D6CD52AA05F919CCA6FEDCA62DCB9EC8D63B7787C761DC48A199DA93324ABA53188621067486FC6ABAD408CF42DE5655D010FF38852F0FC5370DB37669FA9562EEF662D65BAC3E81ACB09239E875932012D106861EAEAE607C10E1379704803789A39EE988AE86C1D7267F1C8647623E95CA72D57AD4D0C55C59DC31255D53EFE9A3C007008225B20022BEDD32B86443CB746D9BEF2085ED6B7A0EFB36868208D3A872142D7F96DEBB4AB2827ED1E9E9D6CE6335FFC7A02D62C20219708176BCDA9580A0D23E8D102DA13D2BAADDB58B1FA1EA5D0AD62B006AE8D298EEE25F31621EB4603103B970738F27D986DF44BDCB90B1390B40B0ACDA3F06D51050FE435B2E1ECE9EB5C813D2D997217457573C18EA9535731A194F02B00405C309125E54F19BA1F63EC10988839118D1F93E0EAEB3A1A0D0B44EF45C06F7ADFB56752448494345D678BC9FAE309A52EACC8AA7073B85D5AE554739206FEE96161095BA1F1D564A6776113CED5B41F7A0C4A46D5C821667E8E36A3A968B4904A76706DB3AE95F21D9F9CD5A7ADD3E193C8E290CD32AF6E54DDA3EED918B073B6F1AB31933A4ABF1D1CCF334295CBA72AA6E0FCCEE4F5D60BA9260C90E528BFF7F8C7789E473451E02C32B4032CD81EC5B814ADD21CC0711BE340F748E6C52A376806693F07EF8D99E9CB2EB675DDFCFB4EEF417E1DEB2BE4BA1FA895588FBC36ACD7F5C90F56BBBBF7BDF8E60CB41663DD2042712FCDD63B9CAE3E89D8FBBBDB3E55C39AE92B2FDA72BE9DBD5FDD7473FA4032548311372A451337BB5E5C7ED34D5C3E50D559E134F8E18362264E2B2C2A2090E79AF4D0586B7956B8F1D55DCCCBF59D825319861E1ABB4A532D249ED448863A90A2B9D8DA1C2DF836EA42695B2EEAD6A4BFDC26AC282ACEFDCDEBB5C0898D02981F2539B6014F6766D9105A0841470D424AE840F06D488523019E270CF33409333B5FFA95D0870D3E8CF1CA573FEF690C6A12D23E49247B9D129463B8EBCC162E796FCBD1D81EF07C7C909F940F1F1196F78502A1C52A36F45596938F8C001DD4E6B30F93232EA876E41DDB50314112B35814036C968B67535E2923AFF0915074708E902192460C3607D13937B21BE1607BFD93A4AB897A70952CEE289AF78659573F81AC9A4AE65C628C7BD3BF7CE4849DDA920F7C947E97E8D0640E995FEB4BDBA097936B246F20F326576759CBF63CD41672E24DE7FCC95C4A458F47564CD279C8FD474E571A6DFFB29CD507DC63D895755520D9C165EB82D9638DC3755CB1F78AEDB0E3DB84C2E7E4AB9AA1BCDAD79B978ADE97979E9E20F362DF722DBF887F4C26FE2FFF433036AF5439388664B0220436ABAB2E5831D06D9FBA25ABD60D36ED0E2930E6D534214F3658D70F7BE87C9C96E18A0A00C081D8788FFD791D75BBC685DBFC7A18511E0C53AC7CC8A3A2BF95FDA9C4281990D5C81F3DD16299C9A60DF6F6830FA931B0F8B8898B96B666E3A7C29496BE4CB1BD341A647F8CAA78AE74478D856989F7CF111FC13A33EDEBE665CB09F65D2F74D208F535D53BF66BA6298BB9C7A53551D373D215443FFC61B6393EE37D0A8EA4829F13ED39645C9DA07F11DDF6DEC31A98413C9158205679BF96542BAF0B +ss = 884C49B93A32AFFCC1253EB937B96CA8B5E11AE30D7C4076C85F4C2250F3B2F2 + +count = 90 +keypair_coins = 6DF4385DB978D27B27D2AA5E452E4152B36F097503D9581AC3390105C5727E7D165FD0A50A39142F7C6FAA2BFD417ADFA4224858281696965772F448C7AE22D4 +pk = 5FC836B5E569623B3A02227B1C21A206E83A9C5B3CE1594EB9099174FB34E5B5C333E510AC2668A704548F02B47AF007C237353A468F6DD38EE8878F35FB7D7E63A3B1867B2B47BCE58A4E95930A65C2344510A450B9C59C24326C16CDB447231A026304BBCC9823C3A218989EF2352D445CA22B6B03186407D7973B4117C2914555ACB33B4764515C4A37108306447F9EB200F8572C8467A089B824769B7DF39967289A93B7F55E1A8447F862C1528C3DC4684DAA9632417622C950B617E1A074B3B7FFBC23576A63857C1F386A0FF2A151652961137237EA346E691C4DABB45562653E26A806C6031368C17421747FFDD4725C02B40FC59737A75BA713311230CFEA4C1BE8A7C3ABA9B589B6180DD701C4E704D69A0684A33ADF1802EEC804F44C2923AA8A577C34A4A678DD2446B7546AF0021DF00A431241509F6117CD32177DA708A2D8472F8270E96A4BD21091F5D28B13FCA8F7E2ABFB57A9E4A522D95896B5811686E5B23D4577ACE10EEFDB9E1FD84CC51918D592857526C83F51C60D4210D92A425D7340A50423EEA17B8BE67325A33539BA09BB734ECA0A4C365170448A126721484CF947933CC984CC7662DA79D65601C3729881E9B4390A99B0EA62FEA97EAB9619D71B7BC282622FF0CDD0E72A3C8ACB7449153DF92E672C5C61B40E04854B0B523398A2634B727DAE3657ED985B550849D51A04F3318892F7A4A2B73C8C301E2CB5AA60E5438D8962D8A36857F08C075948095C86DE6BC34E35C8CAA04772BAB591E0137C4ACA7C34598C65102E80AC0D677511B854A8829C08EA7766EB04C6047612AA83C17AC38A545A2863161BA3BF6A8005E9FB560597162EF1299D621B62C8A7B8C08E3A693FAF0607081C6DA8523805999E8B97056B5385834726BD7995BF6217C5E70863036B81C297ECA1995AC48B6B7AB0EA85C3667370FABBCA8D4C2D758A80BBF07839CB85D9428AF1EAC0D7C083567A85D13515FF399BE3F5931D992C953A664EB8974A434270B47D3E635618EACD0989A15EB065348C34A19442DB928D1E8B2B28A0858ED7AE8A5BC38087CC85515A344B4CBF529D7560590B3BB56DE5331945C0C0B21D5BC8751D9120182C7348305EDC765787AC9B784AC4BCEA454E6A4C89132E6CD0A477F3BF43DA356B66A8BD0980146B5D5137262B0062541960C0B19123A549DDF31D1C188171238259FB661E17363E12C57BD873C643222D014A2AE15CF6112C7FAB407FC12B32C12AC65A65CFA8674715617BBC6E0F96A5406C8A765BC35C699619D01B19919263102F5EF2A0C110752D3B34FD489B7A328638210307C6CDACFC6ADA87190A98B0D008644B91AEF65618507A7F59B89E7EB36998D26BEFC4B723741E0C35CF73E8041CF51AF9832BA43B8E95E368974C1DD61AB65E24A87820CFAE295D0CEB8BD6109B85174C80869716A6016AC8190DF173AB61C4D3C4C37AE11593AC9A09C210B663BFEFAB5EEBC30DEB27CD25A8511BB2AE87851643B50D1B4CA5BBC66D49AA409AAB9E7F3402FFDA93ABB53ACD45BCC9978200E94CD4D617235B52D9297D4CD374B998698D82948DAC3DD780C9336532C499C479756D50E9048432CE0156CBBD9C85F5CA06AB57B62981494622A74807CD881A58EA10A6E5C885FAD611727441DFD52834D58B6408C7D06209BBB224A5D01EEF9B491D13226684BAA5A1A771971DD112AC668108963BB1864AA8AB7913917C980F3AC1C435457684AB758569247C98286B2CBC78263F1CB88478A931130B496B12F7428087162B6D525A8216061A3859A7A470CB9B88BB0C8B1E21CE4977A73FA5798CC814CCD1AA84370FA408A83E73BE1E12511A59486C49C6AFC1367B85231F47CB34C1A8F9A963CDEAC7FA6076EB8A657E647466FC82663884D7C70EACC760DB1B0BE0B30779C98396AA3F2004976C8493AB90AE60996056668C8C2CB9065B6A2580A986D9853C071A02343B8903C0184991E2A71298269A17F64BBE1B6B51D0B299703A04A22E17C33B29634DD1766BE40357F33A000A52597A3B5E4852473D886E06DB52B7605DF5FA4E0D5A0F291B5421E2C1232553AE2472682A7352775C6CA4B189F948012C417C8C764B8C818DB252CEC8CB627455D9F792D7047CBE98B74EB26C6971BE56B7219DF092E4CBAE163D5181CAAD6A478AC9AE82EE27F7256F4D4CACDDD43F45CFA4DE4DD067CDCA +sk = 96D9C668915384C2847B7991E5F557949C99A3D46A2FC9AE7448A229A89EF7F405C2911777FB1E2F44721BE8CC326A80E524486A16A083527E22D51E4EF624B02625FD6A857BEA2C0590A3A4E39F0E041B7284BCC501201842345ED5CEB097A5A5F730EE53176F8ACBF9E03C6DC4A069718DD64C47E1D17323D29ACC630DB2DA9922804802CC768070245380CEC6672F6A5A9D14E4012BB13CAF8C320A320ED63B0591087A0C5A76EA29B57D5C997FDB372E9A57E3F4827A2441CC485718A421D3C45BD0426A87589362E52953822CF785802B2C6AA441ADAEF93DC6451AC68A9867C9B9703ABEDCAA540146BA6DD8ACF7DC317A82A4C1396267032FCCB53BE9306E20E4713B82842E03B7FA984E5827C441E293352B2E2A51566EACA8D9C4206000655F761729020F7FF9B230D6C4B986BC94551175A8ACC7E2A2C174C500666D3CF021A9B40F1A465447291F920865AD16240309B5C838A2DDC5BEB8AA11BF987AA9D7C082E8C55C63AB01D0664E545E505B4AAE50606136B6B01499A5BA10174852224AC6BD242D5D21758C4342F9A02A3D46A9A845112ADCCBB73488CFE3055CAC398B0245C467B94EB342E1845969D70511BC7100F886308CBF21C13840BC17626AC93DFCC4EB22BA18F62B15B521539901166598F25555C32587637A341017885AF1A6D1841AA1C747D918253E1C873C2CCF292BAD45805D8946B00DD23CBDA03878F66357D175D67A1B743C1E5428CE90661067011874B062E9AC8A0F726B55B76627C53338549C3F2605840A11D5606ACD104BFADCB51253AF718835826628235878D6160F15033844D76AE946AE6C240053C2AD6C3A3D72E721D9565A6C79B56840CC5A878C6A4033BB9C88DC43B130348082E41C269CC0D3B05FFE356B5695BB01C95F8AA9C30E50CF31F11419E13ACFFC7192B75948E06A68458DB80A8F71573B6EDC1513AA5B060CB77B12C62761BC188159A49C95180249B3E35C3100635012637CB9CF17CA9936787AAC954BCFC655AEC8B4215861A7709F2846A1C14889D0384591753E3F19CAD2236DFCB7B225ABC430A7B61E6018AB30146D60A6563B2F980ACF66186FEE70A458750CC62C433E651F447CCEF8A773BB2731A866832AE535F0D82E605371F6B35FD6FC1188A52080C609BDD8748C321CA37190321B286C849D35224BB5107D83E2827EF0C63859133852630B237247AA8C100678E43618289239EF19C99AA6B9156704643285BEC89F0B0C21F3A091E2063E5D3029F52C33AF97529E701298D3961F492E6B731D4E2064D034533F4611FEFB64F1899EF563AD71A52E20B199F0D80C557CC8CEDBA3CD1746D3A6AC2E697637F08A43D681ECE3769C8980C76A26ADCC585EB1194D28AB163ABA5563A5C7985720248662BBC21470022EF4110B33B6B8B744A80AB36D0A9B0A7988A0C98C6A597F8CDC76791C467B0CB53A020928F7A55981B520017BC06B36D10A21433797C15124E0892A81230BD6BB4774D46F73B874602588D3F8966469194041BDEE87AC54059458B19724949E7998AE8018755D491BFFDA76A70A64EFF902A4281734A7484037C739B7BF71B658B779CF6370420D2073FB820BEA1B1DF29C3B12C54E6967A9FAEB87BD8C0D3FFC2C1B821B42584B97A935FA04B81252CA53333BD2AA2B7F6220742B366F2877E793CD948B7C3135457E46AE107C6E74104159A82914A7059F25A2737C1DDC299ADD2B43A2F6C25381058476B01A14468DDB6767D18C1049C676E335EEE0A23B2B14DDC7421999310396497C642E5F30003D18BC76DBACDD06BC73F12415BC3250DAC8BDBB4426C92430E00BDD0234C1E3680DC94D4C30C484D610463A48CD6864EDA31BA63C7880371A854551ABAABDC14C225FE59265726AD0746B30F85127D12158F8181439A68CC177DFA817678B08B5A5C1B9F75BFDF0C7BA019A92A512B2CA5E91F2A6E1E24238491D3AFABFE279A9BDAC45971B80F187730F518194CCBD327048C9FAC4B75A38CD9432D1074F4152398EC4B2B0607C9A9BACE0D87A36827BDCAB03E55A9B9667AFACA3395EC412872427CC230C4B04BD17C2017AD39834A94B98E7B75E47BE158627AA6270DDCAB77BC166D2B969EB4C34BA0000A13861C4DB47DB85839828C6EB2074425816F026096463595FC836B5E569623B3A02227B1C21A206E83A9C5B3CE1594EB9099174FB34E5B5C333E510AC2668A704548F02B47AF007C237353A468F6DD38EE8878F35FB7D7E63A3B1867B2B47BCE58A4E95930A65C2344510A450B9C59C24326C16CDB447231A026304BBCC9823C3A218989EF2352D445CA22B6B03186407D7973B4117C2914555ACB33B4764515C4A37108306447F9EB200F8572C8467A089B824769B7DF39967289A93B7F55E1A8447F862C1528C3DC4684DAA9632417622C950B617E1A074B3B7FFBC23576A63857C1F386A0FF2A151652961137237EA346E691C4DABB45562653E26A806C6031368C17421747FFDD4725C02B40FC59737A75BA713311230CFEA4C1BE8A7C3ABA9B589B6180DD701C4E704D69A0684A33ADF1802EEC804F44C2923AA8A577C34A4A678DD2446B7546AF0021DF00A431241509F6117CD32177DA708A2D8472F8270E96A4BD21091F5D28B13FCA8F7E2ABFB57A9E4A522D95896B5811686E5B23D4577ACE10EEFDB9E1FD84CC51918D592857526C83F51C60D4210D92A425D7340A50423EEA17B8BE67325A33539BA09BB734ECA0A4C365170448A126721484CF947933CC984CC7662DA79D65601C3729881E9B4390A99B0EA62FEA97EAB9619D71B7BC282622FF0CDD0E72A3C8ACB7449153DF92E672C5C61B40E04854B0B523398A2634B727DAE3657ED985B550849D51A04F3318892F7A4A2B73C8C301E2CB5AA60E5438D8962D8A36857F08C075948095C86DE6BC34E35C8CAA04772BAB591E0137C4ACA7C34598C65102E80AC0D677511B854A8829C08EA7766EB04C6047612AA83C17AC38A545A2863161BA3BF6A8005E9FB560597162EF1299D621B62C8A7B8C08E3A693FAF0607081C6DA8523805999E8B97056B5385834726BD7995BF6217C5E70863036B81C297ECA1995AC48B6B7AB0EA85C3667370FABBCA8D4C2D758A80BBF07839CB85D9428AF1EAC0D7C083567A85D13515FF399BE3F5931D992C953A664EB8974A434270B47D3E635618EACD0989A15EB065348C34A19442DB928D1E8B2B28A0858ED7AE8A5BC38087CC85515A344B4CBF529D7560590B3BB56DE5331945C0C0B21D5BC8751D9120182C7348305EDC765787AC9B784AC4BCEA454E6A4C89132E6CD0A477F3BF43DA356B66A8BD0980146B5D5137262B0062541960C0B19123A549DDF31D1C188171238259FB661E17363E12C57BD873C643222D014A2AE15CF6112C7FAB407FC12B32C12AC65A65CFA8674715617BBC6E0F96A5406C8A765BC35C699619D01B19919263102F5EF2A0C110752D3B34FD489B7A328638210307C6CDACFC6ADA87190A98B0D008644B91AEF65618507A7F59B89E7EB36998D26BEFC4B723741E0C35CF73E8041CF51AF9832BA43B8E95E368974C1DD61AB65E24A87820CFAE295D0CEB8BD6109B85174C80869716A6016AC8190DF173AB61C4D3C4C37AE11593AC9A09C210B663BFEFAB5EEBC30DEB27CD25A8511BB2AE87851643B50D1B4CA5BBC66D49AA409AAB9E7F3402FFDA93ABB53ACD45BCC9978200E94CD4D617235B52D9297D4CD374B998698D82948DAC3DD780C9336532C499C479756D50E9048432CE0156CBBD9C85F5CA06AB57B62981494622A74807CD881A58EA10A6E5C885FAD611727441DFD52834D58B6408C7D06209BBB224A5D01EEF9B491D13226684BAA5A1A771971DD112AC668108963BB1864AA8AB7913917C980F3AC1C435457684AB758569247C98286B2CBC78263F1CB88478A931130B496B12F7428087162B6D525A8216061A3859A7A470CB9B88BB0C8B1E21CE4977A73FA5798CC814CCD1AA84370FA408A83E73BE1E12511A59486C49C6AFC1367B85231F47CB34C1A8F9A963CDEAC7FA6076EB8A657E647466FC82663884D7C70EACC760DB1B0BE0B30779C98396AA3F2004976C8493AB90AE60996056668C8C2CB9065B6A2580A986D9853C071A02343B8903C0184991E2A71298269A17F64BBE1B6B51D0B299703A04A22E17C33B29634DD1766BE40357F33A000A52597A3B5E4852473D886E06DB52B7605DF5FA4E0D5A0F291B5421E2C1232553AE2472682A7352775C6CA4B189F948012C417C8C764B8C818DB252CEC8CB627455D9F792D7047CBE98B74EB26C6971BE56B7219DF092E4CBAE163D5181CAAD6A478AC9AE82EE27F7256F4D4CACDDD43F45CFA4DE4DD067CDCA1CDE599B2DFC69D59036434CC0423337513FB9506452BD8F42BB82661AD0065A165FD0A50A39142F7C6FAA2BFD417ADFA4224858281696965772F448C7AE22D4 +encap_coins = 5486A0032681FF89526326CC4BC085B8023614DD1621850619C6082483D84C0D +ct = FCA6601383C108D4B4C94BCC408C9D9A8A1A59FE24A34F70A755B5EEE3C20BAD12AB1F0102F71EBE937B20DE8C6F5530111CE303F3FE1F9CF783580E9E0602B9BB06D7783890C618FEED44FA5280AE950D21636228244B01B631F04E2880BF6CFC9C1B2246AA8FC2CECE236377B95F5D5EF14FFD780B44038A5B33CCD6C808CEBFA521B73BB4EF9F203748D1CC8EF0C9913F60CB45DC6921197C4B9E45025CA17E7DB86A7BBDAC870CF5E9CAD77F669F53A6FA52A5677A9AC741071539FD390AB0A8CF47B5F5A7E56A6F7CB142EA3EE94185D86A18BFCCE7547EC6B65A8193BE5B3D4024C632C5E8367B0A3679A09F1C3D081C392878A61C91096CF45F50E6D5B2A758C16E6E57F30FA90056D9F8030535D7AE05721F9399C0B5EE2D5DA4A6893261501803F7D976946E8D7C3E684CDDAF0C582BF76A66F7AB98F9E4BF9E44E250B7A4C8707557EE7AC07B2769B7A8F529AC0A23F8E37D47D32EDE40FEEC04AA9FB14186A19F3FBE38B7FCC4F3A6022CF433C3CFD016A10FF78A24CBF165DE4E578B9D66CC989CE42A78EB1DC07BB845831DC9AA78343545C517BBE7E1BD21F860FC2374F5C86E81475EABFF5639C019A02005D58B65EC5B9411E25723696BD2CBF55ECAD9F52633BCDDE3BFFA673C929A2620352541E8E9465B2BAA9AD397431FBFCCC80BF8F63BE460577AD1885F9A5F391DE5A05E9DF5D4DC8A53940404E313009BB932B142E6BFF9ADDC1BE08A1D14D8919887C7F21CD4C5872F39C68000259749F6C9AC92708E7CFE25A4550942516ACCBA25A284D94BC1516BA574A14E2C564D373B438FC694AB6D41E60AE3335D134E919932E029BB681BD0923C3F7416686FCA86ED3A53B9679630C62E4CB8D20616924CFFE795817BB9854E914E19F9CFA50F1856CB054AEA72ADEDF6573AF110E3DD67EEA1C6C0499664599953CB509A80B97AA36032C600B144E93C7CAF8F6583AF0673551754DF5D25FAD1A7E3F4B5ED50CEF10302A7555796A0B362D6D9258B2373B62592D1AB039CD29B06550123630B1DBC15C96E947391155FF98AFCF4870DAE1F049D4B30889B474053ED686476BC49C4DD592A976FE53F3397C3A1A03A98541B12D79547AA9FA1DBF26D7BFE8745ED4DE104C0F351A2D7EEA3CAF460BD30CE9391A023F66760EFD259B6847E2D2FB682A84395E3FA7C88964D00257FEB76E7663FDEF13365E0605741FD0AF0C042D6881085EAF0D4E55432D98D6A8E8923DCB73399683502250970EEEF60883B0DF3E88B26075225470D98C1373314BB0AC6E84EEFC6C0D1AEA0114539F2AA99CB1354F63627D83AA57C5C080B896525154E6DFFAF072228B8D0B7D6FE63B6A57F7DCF8D23863ECA6128B8E05333AB7EA6FE8AC5ED60416B48BB198F91C3988C45459250D02E8377BBBE7A82CE271A36A03096715C6D3C43B20DECFB44D79683BF8AB35FFD77E0DC08996524C17D8E7FBF08ACD9F335902786DED5D2E46C56B2D94BE5A30A5100E6EA6F232876054E13E8812A528E88AAEE0F61D60ABD4321B77DA82F5DA5FDC82E4AD1DDD74DC0C9A19A788D0C22D4441A2A272F1BC0D3DC3055FFCF007B027DEC8DFEA53AAA1B1B13FAF9B4D22F8BB6E04A0CB740DC2007182C022039B7FB2A056C0A9413894056EF320A2DBE4ADE72DC68CF9880F8578091F7C2D2C857A6C8F43621ADD1DF402E42F639DEE17A9EA81AA444513F4D0D8A28132114F8CA3FA50D01135856059E9279C938398291004920F14F0DCBCBB449B89326DC848D67F0882C3765CCE18B6B21B0B9031A78EE210475D710D4FBCD6F7FA8CCDE02BA92A10161BAAA97937EEFC3150D7D20C3CED58207753ED59796BA9DD86C630676CA975F3DE7C20EC515D039D35B9945B26478D500A6A74896C1ED978F469CC91E8F18625059F51D763065FBE79CB9BF7DDD26A4FB885EFA47F35A562B4608FB6B8A566667E85E038FF9C01E3DDFD4CC6193D80FC75122058C9CB2CAB0502CA522B27B481444FB195DE3F1A73D5CBFA3089CF07FBD5066E2BEFFB1082AA4BCC07670231D7047275F5EFE12CD0CBBEA84D6D9CD17281B23AD11C4BFB297DED5A47E0D4407CE74C509CF32526FD9177BE1E9202795AF79249B164C964CAE50295898296D1653774A9226ECA593375DFE5AD3FD2D48F17A5F07C397B3F16E2DE4AA1DA7D6D004D6E0CF4CABC1911417A2835EF6E24319260C5EAA +ss = E46DC5099392012F964EC6B239E324F35C3B547A0EE8ED4640720A60FDE2445C + +count = 91 +keypair_coins = DBACBA825728444921B227CDBA54446B3F6881B47BE9CD02832F78B023B1BEE0171EBB1A64C173B3D4D997C12F734D2D57FA2127052887DCC6461FCC23B66FEC +pk = 3D8A9E39BA19EA979AB2C504335C03DA056801F4C782D95DC2E163A043CF2DB760EDB7772C50CF5A62BDA4742D2EA296B121094AB5CBF017755C74B6465137A1D32F4CEABDBF34A7471B45B166AD05EC69238B030C31485695A9CD615DB68C83E457222D85960FFA8BA6C8CB5721ACBCA1A7B09B155A555F406A660C325C6166233C0500A0475931B27481A015AE521C7050AC2F605F032899EC655F0B662D7B65A3B21680D1B53FF554987A99258DDA8CC711A18AD8917F838CF0A16D4F663BFFB33AE9E3AFE97B1BC5F9B1A53052F8907145440664BCB5570A368044151B0045515B94B7B8073615B2889A280E59940131BA50B016E0B8C6DF2B34C29023E0773A06431397A68580C47610B50E025B0FBF374C40C1BA82A11B69FA9B6E522D4BAC7FBE737A18085056BB7F7CAA2C4C3BC5B6401F06B102A3B5673C7C8F1CB269438618F9717640C76A4F058AB864348F068691F95996072354532F3A3B6AD0E1448880CAC03B6E2A84717158339C063147DB0C586032B7D10A69E17C1B62C1AE5344483676BFE8928D637AACC4B613F24D7E2A46DE3449F17B0062FB209CD9631160CE38A95361889B167CAE272CB23F85BF34E14C789472974A176C567756C1C0EBD9905CEA70CB88A55C68B476F877C605390EE1274C07CB95939C9BABC97EC51DF82A9B7D0908DDC3434208911142CA9B8620694BB3AA9ACCD1BC236A9A89547A26E44816CE3846F980C893B29E6E6C99580C2D0A905643F556F592AB03228CD1585A19F4B82FE9C1D3E4ACB41B66F01779AE136D77D40182BB2524A87E1CB511E9D591F06B91A71594DCE26CA8B20450B899E22C679AA7ABF5B178B1637F998502F7C7B4A03974A840C9DD041C43017D8F7927F94989F2A16A1F7CC9B09908DA388A68B13F39FBA43A391D75C76148444954063D9163B6AB1509B03863DFD62D94B59E849CB545DC7BA58502F6C5CD89DB38B2CBBDEF23BD191A57B4433872EAAAD5D69B2C40797FC29955960DBE618CC5D21EB9EA720D77C3F8B3C680974FD8C474F9D588285609ABD4166A45CBAB974AE884C7061C6F129A1DE7B33D819C795C5A4DD37838CF499A09387EAD56466CB54CBBC865CDEACEB3F263BF774623A37BCDDA056CE232B2B2B4F2E22F6EBA975C933191812C9AE55D6B7C6C76C10983B02462E220BB90C946573E3E2BB87540034F870FC69B538780090C3B89C18645569B124C03680DFC10CD3050B33C16740C54916C5ED1604EC092793D097B94B4CA3474B6D90382D5CB21E8BC8488451AF2492310B7239D9A46F8C868890C7B531834B2BBAACA7AC34651B941D32477193CDE0A3347323B77CA97B997C429A2544A1590AA8252D6E0832E128262284908AB785543BCE3E6AA43D4005B469EDA56CB28B45C44329CF7F79CDEBABC3A9C6558997E04F980C562C852A103FB40AE24E26A8BC8BF014690B9085F6E7BB947F2CE93550327A61900AA954CFCAAEE412AEE44CAD3958555D18B59A0835C015CEBC77242052F13A780BEDACFCB9998DF665A1EA24887B570F36198836C6C57A95DE6349D031B2B33A3B6D52292EE853BD3E77B44836B28AABAEC37872708CBA8234827EA922FF698BD4BC9824491C6890C094B625A5B747B2280FD300455739AF8D97FDC39CF741128C03283F0BA09FBE19A24598E143B5A856A5B41334839A6188E769F78AA24673B3F69C51AE2C5AE98BAB4B0254CE8C85204E6AE38B80A2F24C162427A66B09DEBDC8235E96D25E96132617DFF682CD03896290832E3D7B5959331C7025868803A0C292AE4068F1AE8152221A4607BB9E4F94A5B98701E027A8AD0913B0BBD0BA551B00B0EEBE302E5450681878992A616AEF08A6C16175A5C22317CCC48200BC7452414080ADF9216989669A560CAA70320938C812AD12278588965525538921E5920580516156FD563FC732E37E5591E000B4ED9B93211579D21CDE3A951395A21289576AA5C0B0C87BF36ACC28C0AB51FC86DA8CB00D23C40459088A1506D8A2168F94A365FA56EBD751A51C84342931A5D569793569F8FA21168AC2DF9820CA3134704C533A399219EE79F4571B1152C95333C135E442D5C5984E55516F958CA38927773A2AA526B89B79522348C1244220DFA84C6778466D2A287A774141B9B5CE0443B5F846A2DBC4A0DBB11C51840059EC11BF6CEFA3AB473E1CB0F0BD17EE0BC3C59 +sk = B1C127D24808FB2B9922332832131C4FD67FE8A1A070AC8D17100BF9F6291EFA0BC8114D98F65C8F4ABAC3AB17B4241DECCC37688B881BCB68503B54379838BBC100B5BAB306327E7965B694644C470A5148666C7FA89872D39AFF60BC533C83F280ABFBC26F073331EF40B694AB25FEEA5B2F55196798B70681CAA21537DFB5746C66129775852E5850F57C2DB2E8A0E90530A57B387B1C429101D04096C3E0BB6E9AF19F83B1B0B74C47BAC678B0F2269798573FBCA5D8E687965B13E495827ADBA63DA8A17564A3E68037B3A4991993401C1C6B149895FFBC03760C13595035A713140EB7A42FF6ADFE6BB371C9AF5A686EF858A8FB7A63FA137492B53305685205B08D44A3AC8F8948F2B7BED9CACE27AB6265722D8F2950E0C9ADE053A4C4CA8E3F80A907A39E33DB78E6065FE9DC050A5A730595AE5EA32E38C512EDB79DCF345F1D9C238A1732C552AB8DB2CCCCD11822972896B323CC43AA03633617F82E89D63D4A1003CF9C5CE3379B1D53A63EAC57ADBC91510316ACDC30FD74A1A2E6C23584AD1CB28444F9231661079B0913E20B3278D8A2E8B18556F336CB750694066B6C82C5D267A903B624CD440D8E187D9E438D178C8394706F016B835E1522AB6904F80CC24358B7DD3BB271039ACC174164021E8A522FAC473054D5B4CB3BC64BB107C6B637CD6360E312A85A3B1E3D2B64436A87E81016ACB763A23CA9B7463023148B0C4888BFB18D9441841F723B9436B77B09C79FC714385A3AE97B5BDE0A2A0C541DCD2B668C696281389EC270BC6D088FC42506CEC85BCB4B611342AF0A61B1B9D75E0DF43BE293CEE6EB0413363716EBBC48EC6C361A48B9D871BD5742FEF2AB286094A92B508CB794F2F69A8EE15C2D748D8FCA8CD2284719815E75B3B0DF76298E48280BF530E09A34D166CD5379777D472F0994BA8E5629EA7691FB973F45869635B61B277C375606B911AA1228271C85B047942A52187BB231412B50F5BE423476720240E62B9D3CFC5B7AF5CE9FB38E03349063741ADE945E994A2D6492A92B1250880318B9B9CE845BA29BD3733228AE960663050888BB98A0FDC21D6FB34CFB5C1AF6D9B98ED6AE454C09B89B6067401FB30A17DD331A845C713715B5BD4A087BBC14CBBC9D2EA83D0F9B0D56D939D01B7D590B3082D2405A20724E2C44B5123BC1407B11DA3DE5889AC52B7B7821C4AF1303D3959EEF3888B8847F3E0695B5B844E8E3C221718A25057E707A50E0159AF4462BB1D103B9057FF7FBC1740BAE1AFA44138AA2B7E3270CF80A6AC745CF701040C97253133EA195648E929E6C6394940B6ECEB18844F1C862DA6597A46F64E0CB5D2803EABA4A08110A011A32452185A6425D9D44B43463893369514957592F519C22D2B06BDC762C519D5CB84E9A68456AC60AEAE85AC6453DE2BCC103E32DD509309FDC08E3B3698A193D83D62DF74719703BB5F8CC5DB7B88B80110D74D6949D00469B840FF7FABDD4C0CEC1A097A6117C28046B06B82C8EE8204296428AB703840ACF7F3333D742726B114D3292B3154B2C4095B6D465657EC0780C488A0C60443717109363C45777271955135E60B46104BC18BAC09A18690B37C8078A226455320CA539F57A0706239E62716FCA94AD8FC2C1E5834396072B134636AEAC2D6A1B91B403B070D97C53C2C91784438708BB2761CBD4B99083096610C53ED9354F459C2E91F47BC8220F75B367CA8A8670F45CD118BBC72BAF225274D2344343A51ABFAC2AAB439FE5D2207BB1BFE2E54E58688ACA733846B7C68D12A87B905243A0324698AACC579260E94FCABB28DA1C8B6887CE10C99C2357BB92091CE1395C6ED345081C8B74D5A9BC961C9D79AFE27A2894117FFDD9B3974526D33C2D5FF5757598853AD14520CCA34B817D097A7CBDB7888B48B67F3A8D0CEB89AEB6374C97B130A658B10C1F78D38241120A3DD7A66CF76FCE43A6FE9C6BC6324A64646AE09A2F948320DB54177D2A35EEE87918AA0874A2CE286528ECC29668D7B53591942C70206C63C6D8DB92AAB03053F81E166B5F40D17D09B3760C944CD24C5EECB7C780B39608C318AB3031F89559DDF76CED962C035B9D7B7CBED0985A2F0B43AD8849DC5A190C62A131E5BFAC2C7C11ECA951B2A19674315B811E09847C49339C3D8A9E39BA19EA979AB2C504335C03DA056801F4C782D95DC2E163A043CF2DB760EDB7772C50CF5A62BDA4742D2EA296B121094AB5CBF017755C74B6465137A1D32F4CEABDBF34A7471B45B166AD05EC69238B030C31485695A9CD615DB68C83E457222D85960FFA8BA6C8CB5721ACBCA1A7B09B155A555F406A660C325C6166233C0500A0475931B27481A015AE521C7050AC2F605F032899EC655F0B662D7B65A3B21680D1B53FF554987A99258DDA8CC711A18AD8917F838CF0A16D4F663BFFB33AE9E3AFE97B1BC5F9B1A53052F8907145440664BCB5570A368044151B0045515B94B7B8073615B2889A280E59940131BA50B016E0B8C6DF2B34C29023E0773A06431397A68580C47610B50E025B0FBF374C40C1BA82A11B69FA9B6E522D4BAC7FBE737A18085056BB7F7CAA2C4C3BC5B6401F06B102A3B5673C7C8F1CB269438618F9717640C76A4F058AB864348F068691F95996072354532F3A3B6AD0E1448880CAC03B6E2A84717158339C063147DB0C586032B7D10A69E17C1B62C1AE5344483676BFE8928D637AACC4B613F24D7E2A46DE3449F17B0062FB209CD9631160CE38A95361889B167CAE272CB23F85BF34E14C789472974A176C567756C1C0EBD9905CEA70CB88A55C68B476F877C605390EE1274C07CB95939C9BABC97EC51DF82A9B7D0908DDC3434208911142CA9B8620694BB3AA9ACCD1BC236A9A89547A26E44816CE3846F980C893B29E6E6C99580C2D0A905643F556F592AB03228CD1585A19F4B82FE9C1D3E4ACB41B66F01779AE136D77D40182BB2524A87E1CB511E9D591F06B91A71594DCE26CA8B20450B899E22C679AA7ABF5B178B1637F998502F7C7B4A03974A840C9DD041C43017D8F7927F94989F2A16A1F7CC9B09908DA388A68B13F39FBA43A391D75C76148444954063D9163B6AB1509B03863DFD62D94B59E849CB545DC7BA58502F6C5CD89DB38B2CBBDEF23BD191A57B4433872EAAAD5D69B2C40797FC29955960DBE618CC5D21EB9EA720D77C3F8B3C680974FD8C474F9D588285609ABD4166A45CBAB974AE884C7061C6F129A1DE7B33D819C795C5A4DD37838CF499A09387EAD56466CB54CBBC865CDEACEB3F263BF774623A37BCDDA056CE232B2B2B4F2E22F6EBA975C933191812C9AE55D6B7C6C76C10983B02462E220BB90C946573E3E2BB87540034F870FC69B538780090C3B89C18645569B124C03680DFC10CD3050B33C16740C54916C5ED1604EC092793D097B94B4CA3474B6D90382D5CB21E8BC8488451AF2492310B7239D9A46F8C868890C7B531834B2BBAACA7AC34651B941D32477193CDE0A3347323B77CA97B997C429A2544A1590AA8252D6E0832E128262284908AB785543BCE3E6AA43D4005B469EDA56CB28B45C44329CF7F79CDEBABC3A9C6558997E04F980C562C852A103FB40AE24E26A8BC8BF014690B9085F6E7BB947F2CE93550327A61900AA954CFCAAEE412AEE44CAD3958555D18B59A0835C015CEBC77242052F13A780BEDACFCB9998DF665A1EA24887B570F36198836C6C57A95DE6349D031B2B33A3B6D52292EE853BD3E77B44836B28AABAEC37872708CBA8234827EA922FF698BD4BC9824491C6890C094B625A5B747B2280FD300455739AF8D97FDC39CF741128C03283F0BA09FBE19A24598E143B5A856A5B41334839A6188E769F78AA24673B3F69C51AE2C5AE98BAB4B0254CE8C85204E6AE38B80A2F24C162427A66B09DEBDC8235E96D25E96132617DFF682CD03896290832E3D7B5959331C7025868803A0C292AE4068F1AE8152221A4607BB9E4F94A5B98701E027A8AD0913B0BBD0BA551B00B0EEBE302E5450681878992A616AEF08A6C16175A5C22317CCC48200BC7452414080ADF9216989669A560CAA70320938C812AD12278588965525538921E5920580516156FD563FC732E37E5591E000B4ED9B93211579D21CDE3A951395A21289576AA5C0B0C87BF36ACC28C0AB51FC86DA8CB00D23C40459088A1506D8A2168F94A365FA56EBD751A51C84342931A5D569793569F8FA21168AC2DF9820CA3134704C533A399219EE79F4571B1152C95333C135E442D5C5984E55516F958CA38927773A2AA526B89B79522348C1244220DFA84C6778466D2A287A774141B9B5CE0443B5F846A2DBC4A0DBB11C51840059EC11BF6CEFA3AB473E1CB0F0BD17EE0BC3C592A50C7A070B3DC7E107EB1E8B96D62305C13327D729BF9D97C69F1FE6EED2B52171EBB1A64C173B3D4D997C12F734D2D57FA2127052887DCC6461FCC23B66FEC +encap_coins = 87D356BEDD39170C21194287FD3095C451B1E877DE2FC9E51B58294672311A75 +ct = 3863783F7804EF00F3FA68464DE78B3A251D5B3E20BBC902DC3DEE906634DA3FF72AB3BAE821C573FB2A270CFDA53F35E72B8D7F6746A8ADFB23C7929EEC75B12A296D0C0F5EC6BADF940601589925F06E3FD5565F965383BDC8E884EF4D8E19F07EB4DF97F58394FF2146EF8433B2CFF84627FF9A57B98D64FBC6966947E69D8B5BF36A5B5AF6A9DE6F61021FFB8294BE377A313CC0D023712D876778C03CB7461668CC614F3A90EBA73E675375BB5B5BCD4230DF70EFD788392A3B1647A6CB470E8BB09ED44C12D1D385710B8C3E638C26ED676DD76C7F1B89F4AB0987B039A33008397CE60F084260EFF7BCA4807EC77906EC5C13DF729EE70565AF29F3D497BC4B869D3471E89393ED6B6A5FD9896CCF510EEDA1851E1711852BC5F73890322493EF64B0E911502FC1EB0706B82AEC19DCED70784E31877082C3AEE100832BD3A94B4C574EF68F46611996D51B758C7ADE5E683EA7E40934876AB1448F35FE6BDD8114624EDE1C6DE2183E3631DE187D87461644EC6814FD15DFE8BB78860B8356ED8EE7309011D88C22C0628F9D5DB984BE1DCAE19F90C0B9320DD8AB13AD844564F790F4EF97A027E8F26A8A0A2E87FC1747C7703CF175157F6D5E3D47D7D75B8270B81914C22528278FBE5658B8DC275E5C82E3A88E56FD55B14DE2C245479DFB716D5E4934A8ADF88AA3D4ECB8FD88B14EF14BEE88A393F88F2F070EB64F3415698AE81BBD4688C5C12EEB8BC31C541C96B845598170E6972F0E8B3F00C999B21BB04EA01BBB430FB5E90F90C039B37975DB5AC858703CAD4EABBBEC01DD45195A62CDCE86ECD6361CD9848DCA7EF87B449BF672930BB23E812D06632551E676B169587BCC22B8CB8E52607DAE51E4FA603587B7991C8EFF24E59AB035366509AAC8E4197071154B7136EAF36B323CEECDB94F75601155DBFF47F4BF73E07978B174A3F9F2AE6DC68E8301B5F7EEBBD1954DC132758B989B84C3E6FE324B641E42230058D12502E69F8E26996672D445BDC6D1B5231396479FEE5CF111D3322323DA1EEAF36BF3D2A32EEB5492F76AE07C093E5CEF0D178CEC7BDB7B2AD0BE4452792198CD5BDCB98AD69914054271DB6586F90D1FF4734EF22E9A3CEECD3A167D2F247B2166034672CFF92A9311217EC75064B0A56BB52C58717712F26A662DD934796BCB628292939C37A8B98A8C0C7F94656EA9C5F19FD901DAB16D56F245C92A929DE1B071C08056A76D32158FCDD083B3D71BBB114180503F16E6B6F54EAC0AFAB07781ED15F9ED1A272F0286A43AA0DD0F6E9A44546498198F49621F98D182C14270C98A0D3CC01E0AF584D31A537DE1579184D71A97D3A90000310649B08A2EE1FEC7EA7B9B3166508682DF44358523F8D9F10CA8FE4D1E303D9E3BE387681BFBE11867B8388D0ED03BA29418BDE7C9C39B51CA92513CE2674F8F1EAA5B665224A239CB05A25AD408DB92C9AA938E3DBFC2A2A98F7761AF5E4FF000DD89A53A91F09B2692C73071F8F877E5EAB8A9C7B00F43080E8205358D26710E47847B4064228DC68E80628809DF5C290D3C94F9A4C6504EA2AD1DDFBCF6EE99A6BDE3550783557541D43B658BB7D014F85163F012DF9A2755ACFB533B27432FADD63815CC7FBCE942A207A10193AC1FA853FBC33F94D0920441EBE575F956F736C27988D29EFCB826C7D57180F2ED818408B41E1DAF8CD58D785CE64B73CAD62E70C7F74B54F3269DBF422C9A114E4FC2A74A81B3D1EE3082232681232F295C7547227F9CDBD5770B207BADFF0E8E903073FC0CB4CE730CADDC59F6D5EDF329A8996ACCFFCD7D0DDB98ABAE80D8ADF1C6435A8A997DBCB1CFCDBA0F45261C20A837CE163ED176904F2D5A9A5CCAE6F1B974B2C1AFCE4A6D9CEC345D8B8BA6A6DCC0536DB98E1BC4D18409A31E50495A759C7D160606781B3300686A41383DFE8B03D3DF8943F82EE64DCD907FAD81997B893A85AD0D25742D7E8BA5A694B4D84FB50F480EF86FC8E25F0CCB0CC3216212A46B28341F2B8014DFE8922D3C391AE61CD116BD3443BBFBA7EEE279F15182BD7CF829E2A309E4A97FC63BCB943F9CB5050947F7CDE175A01EE19D619135667A522776CD5520F5B2377473EEB01942A0DA9F87A0CBB3B9D7DD4A8C1B73CFEE9E30A068E274DB9078C37D82F05E30B1D49AE1984B18302B183572875750F04A9CF8EEC15AAF622B7448FA3310 +ss = 31D2C38F6FE1612A1292626016D478D90924E1BFB527602AF4C18E0694ECD7B0 + +count = 92 +keypair_coins = 690EB71FD7052B906EAEC09937A8ED374E0B02AFA27C2F14399932BE5839FAD20B472C6DA19B790E6C9591EE625B42CA0FC04FD9F69D72CE4EFDB3B9ED8D9C29 +pk = 355A23B704C6448BAE0A62C2473C1DAC43425852245FAA8514B54C2ED51305047E5B44618F166CC329172668306984151C31CF04A9864267A1EBE30FAA133FDFC040ADC3CFA49A3C0F4CA85D7A52A72B71F217278FA787A2E3047922BD339176CBD5049D498708D65F2BEB4FF3E544F973A4B9E19E6704B019399683758010E5B759095F17989D4A25A2D9199C3FE73D7096442F539F29EA9E6B06BD39E1630DB0B5FD819DC4002297A205898108050C9365014351F38C017564D6798A16382B6F34907A4850A0183B27243EC4123CE3B00CC682C1CB8A9D97845F5D24B5FC35C7E088CBED62910C4050EA6B76C88C87F9577941F6A5B3F2B614C94224C26A36A841C3B40469D2C0CFC366DDAC23C8C2BFC401AD78C758A6CC1684D1AD400BAD5D88417503CCF169481FA437E4A8CF78B907890CBBC1AB9F46178EE2DC6DBCC1604D2B766707B88C1A343BC5A074FC481533CABA15CD3787962697B11DF700044A79A809112516A88C2C662965A2DA9B996FF92D951337B4B9C11E7947B14212A6F3CF19D2C5D86CAB5267A1C8065EC045517DC9BE0783194BD846DFFC50EB723EADF08AD7B86881CC33E4D9A9B407C7D464C156E94253A8B2A0128D52A34E27610D9A902D4151105409BE06A11FD3F73C88B79C9EE630A98105556B777A5BC680A803F5A7B603F16643AB0A9EF7161861B3ECB5636A9529A24A59F17A389B61AFF5E633B863065F37789A538F8353B80AD75B4EE876A6CA363B6679680115F4B9857BC88B845510027A0E9014621DDA9A31E12222522557F8C86D29A499F0547E35A99D81B1A02147DFA3C45BEB8A3026A23FD20297D20E33503CD49002A9FC7FF8200AE433B921BC93CF10209A05242788908F71BAE849518BA305EEF84597F654754A7808D81F2CB62BBB282911A0C5636CAD75B53B454A5A923A5FC8E956C9CC527BC04B846B596C9B222A953DB76485C6486907F898F6835A6F315AE20B57D3E56953170EA586658B9178C638C9C22C941097838AF0123A601D0D4108B2EBB53B46233408CCBAD9597633440EC1AFF61743F0371CE62CA1977AAEA8D98900F0016E5A9248661FBE5C1A4D261C5426A12715AF037A5FFDB38B8DFBC11EE3B4EDF289C3AB3995959078091E888AC0107467BFDA6F3D35516BA7404A4733C8CA4ADB010F7399AC5F14C2CF992FA812CF72F2C79750CF52E648DBB8C3B14698BB517166BC1F663594EB9A6C476C58BC103EA7F03F37205C5C355A2633B9CCAA829E3366FEA63932550617AA96D267CDF4B98CFE3334AA0A5C7600CE6AB6AAAFE7CFCCE4BBBE2756B7CB10D6D6CC8C71B32A04CC652C01E2B62A73497DBD9A46EACCC382C5903FB405D950462EE6C87D2631FF97ADB38939C4F284489BB9D1072821C108886842F5C1B402AA2E49D37AAAE13B7C14B5A748C2DBC45BBE5BC2ABBB929B613767A720BA572CA63C2080C4547C9024D2F451F25973F064941E814E3EC74B4C1770542B0782C67580B7A695C2AB29C95DA2C18E4563A24101B11084586CF9A42ED62A2BD1570FC175F4D5BF50F8C4A196AEA1953199143EFB5183B3A905510623EFA47C4A52522787723AF5B5D05B86D15126EC6BA2201120B5A527324A9895F62959E24AA6F8C95D9001E7757FA5B3A80085BC48BB0D34388C0F6CB647B0A7CB992519922A730865A4032B51708FB6602B08D144336B7C7B65730D8677399436FF5711EEE7B935D67054982472B96CCFE7279F1A673BD61757F7B951A5BC9C4B7E52C11A09F350737120E0923F8C1A2989F19A6FAA06105391B39B266D9C768C658D56FB59F57020E0D17FEAEC496F729A810821FCE59CEBDC24E8B7CD3B869144225CA4B5A5C72432738BA5B939C64CF338021181765891469AA7AF34A628950165A1328CC4C2B6874498A8205C675214137E47080624E250521CA34E394E829206DF285E7F84A8B117C24B1450F883AC88D47142A64552AACE5DD85332AC168ABCA2597BA39320653E8338303552B419C84ECC014CA3006B50A6F74B8AC57378F8A06006841F972B703A2B0DAAE868698B778BF6984DBC7BAB537B29EC5462463295CA1581E2A60F5C169B494D0B7793AF3313FEE3742D84C1D20B6B47877320E25AAC270E3739B34063B62FC171EC6A6BA7B62FAA650496A63110D057C2E5851E08E31FD88AF2F84B0CF79A88DE834C1F17C7A5FA17D329CAA0 +sk = EEEB8866B17CDA12A45FCC6F9D05AFD103835147647A7301EE071366398473C8103AB3B064E340F4F9866190ACEDE02473FB49635BC38DEBCFF0F34C5175AE0EC025AAF19CCCD46D658C2A6BA62B50D1452B09C21B430EE9A3CE05D36A8E1AAB2BF0185F35664B4999CC8C0DF049C01056AF6AACB025708C184534F1172B28FCC94AAC2FB7012E20443F11F43478E7B1DD8A5C7D9B5A8818C0D2259C7F710F51003777B060F8DB5FE06C3520D35E97F6B5792B0AC3304349387B637686CAC1A6E45149173041FD7C3CFFF5A398BA832DBA04DD7179D0768122A701F4E0BFA48149FF140E2978A723FB985B939458B081E1068EE5102E5F540365E6ACCBB8C28DB84125B21E8D04622412C2F075CB57019EB828616CAA245A8B099A01BD86268CF491823E440E984335AF59924FAC1D43263AF725895C717E827532D35C7DA9AC1420B46AEF13C9F33A427BB5A1BC646F7B54A21760527D303BACB2A21AA39C5577BCD5F416F126741FBA9C2CF9401EC20A14E9A7BB927CC8135BBB0C3180696093289F4B19539C58655B8698A5D1339C9490BE7C04AD3311FD422045A5027B203407CB5755462C21AC51F523389E803F30E12FA9C0AA7B4A1FDD85C66989AF558CBA916C9A037AC7DE1A3F7F1B5BD3208FB6F28661696AD0DB88D10A3B224A5BB5C99CCC96820E153E478AC579C65BEC5A3D4B85AFF1C4AF5BB222E7AAAF9E9149AFD11EA5E86990913D2B543913942D148639D9815D4A8908362A84BFB6AD20B8ACF9596DF4187009E7B773070450010744712F9E7A9B8E9624E3E2B1D6140A9E4789775ABCBD2657AA487740314EA1E446DB5C09746ACCAEE29783B23EBFB255BA5C9706F1254703C676EA09801762E9FA45D858732AE7218B37107B3708EABA05D2C035FD447CEBA46EE446AA324BC184E7B929F7513C16BFDE5C5E55C05E6B5041552C17DD223AF273CBBF65A44B4B6DABD51B341464A9993EFFD671481592C5A655D116B963975006B13503BAAE38332248F58656620098F42F97A813DFC7B4DF880E5E783AF5D833B89079474040AC05A6A7EC5E9EC1BDB282443C736514514F1CB7455958608A62503428464D89C66B209C417445416A54AA66234B1A5BF1C0C3F7064B6D0A7243E170B6ACB01C033C5B1670A3BA6801024C03B24CC1786025FBC56BF04F3B241E4BE701C9764938695BEA4316ADB6ABACFB44F2041D2C29BB867379374B211E990F194B872A7B684A212DC179A4ADD943AABB1E6BEB93F5CB100FE342D0781AA80989406571D1B79D08E31AE15B81740A22DF02270F920EBFAA3C9D74392CD64E71F363DF221134E9BE32B6B855FB76E15B5C91CC6C3F750AEED71071A0803987CA7F35882AC31413A6001A6023C0A183961722B6EBBA16F5577D95BEA2C5AB446AC8E57ACC96281A07599A8D335C2C12388BB0CB9F8633CD2251C8A7563B396072D0CF6E7B8E3AF2192E5731341214C30708E128914C124973E759D4221F1735386B874905220C41FC731A22B9C665CEF0CC5353B799399905F0ACB549F13C6FA56FAE2907D0353FF2054ACCEC40310A2C4B62AAC3F392B014BA88FC90EB868693EAC83516336BAA601F600518FC820BC8B0E76C664F3CC8E6A5CD6C34BF246A5D52F93643111F8F9557C3499664EC572DDA5D73220A170095AC2764F09167E0B2277F08B23101BEA40923A282132A07222CE0C2F1C5894318B591E5591FF20A5D8BB735CB3F7B161A1634267BD33721BA066713A4C25CAE04A0973CCA6834B717C7AA9BBAF1471AAA24D92C5242C388DE17A42019506DC7CB6CD7315437595A9221C76C7862057AFD76ADD8E852062B017CF77974062D00B9A6452CA040D839220372F7D44C36115A3FC5671EB652037421D08484A68B779E94B3F6AA5E74DC282525859A3945003C7FDEF3B57CB5B43F14A290A1982DDBC9D8611AA6140EA8C36C4B5953ED45BB7DD96D50956924ABBC70715B768975198627A9E64499AA778B9C4DF403727486329678790BC8623414436D79BEEC3624BD20423D14C91E4414EA4784DC405E30F5734A4005B6791059EA8BA7CC224146A856F514753005AF7ABF5DBAADFD0492C95125493597520478304696FA30681134C5D3B71FE5C54EC7D06588798B31D6890EB842E0ABA055017B8EBC4A355A23B704C6448BAE0A62C2473C1DAC43425852245FAA8514B54C2ED51305047E5B44618F166CC329172668306984151C31CF04A9864267A1EBE30FAA133FDFC040ADC3CFA49A3C0F4CA85D7A52A72B71F217278FA787A2E3047922BD339176CBD5049D498708D65F2BEB4FF3E544F973A4B9E19E6704B019399683758010E5B759095F17989D4A25A2D9199C3FE73D7096442F539F29EA9E6B06BD39E1630DB0B5FD819DC4002297A205898108050C9365014351F38C017564D6798A16382B6F34907A4850A0183B27243EC4123CE3B00CC682C1CB8A9D97845F5D24B5FC35C7E088CBED62910C4050EA6B76C88C87F9577941F6A5B3F2B614C94224C26A36A841C3B40469D2C0CFC366DDAC23C8C2BFC401AD78C758A6CC1684D1AD400BAD5D88417503CCF169481FA437E4A8CF78B907890CBBC1AB9F46178EE2DC6DBCC1604D2B766707B88C1A343BC5A074FC481533CABA15CD3787962697B11DF700044A79A809112516A88C2C662965A2DA9B996FF92D951337B4B9C11E7947B14212A6F3CF19D2C5D86CAB5267A1C8065EC045517DC9BE0783194BD846DFFC50EB723EADF08AD7B86881CC33E4D9A9B407C7D464C156E94253A8B2A0128D52A34E27610D9A902D4151105409BE06A11FD3F73C88B79C9EE630A98105556B777A5BC680A803F5A7B603F16643AB0A9EF7161861B3ECB5636A9529A24A59F17A389B61AFF5E633B863065F37789A538F8353B80AD75B4EE876A6CA363B6679680115F4B9857BC88B845510027A0E9014621DDA9A31E12222522557F8C86D29A499F0547E35A99D81B1A02147DFA3C45BEB8A3026A23FD20297D20E33503CD49002A9FC7FF8200AE433B921BC93CF10209A05242788908F71BAE849518BA305EEF84597F654754A7808D81F2CB62BBB282911A0C5636CAD75B53B454A5A923A5FC8E956C9CC527BC04B846B596C9B222A953DB76485C6486907F898F6835A6F315AE20B57D3E56953170EA586658B9178C638C9C22C941097838AF0123A601D0D4108B2EBB53B46233408CCBAD9597633440EC1AFF61743F0371CE62CA1977AAEA8D98900F0016E5A9248661FBE5C1A4D261C5426A12715AF037A5FFDB38B8DFBC11EE3B4EDF289C3AB3995959078091E888AC0107467BFDA6F3D35516BA7404A4733C8CA4ADB010F7399AC5F14C2CF992FA812CF72F2C79750CF52E648DBB8C3B14698BB517166BC1F663594EB9A6C476C58BC103EA7F03F37205C5C355A2633B9CCAA829E3366FEA63932550617AA96D267CDF4B98CFE3334AA0A5C7600CE6AB6AAAFE7CFCCE4BBBE2756B7CB10D6D6CC8C71B32A04CC652C01E2B62A73497DBD9A46EACCC382C5903FB405D950462EE6C87D2631FF97ADB38939C4F284489BB9D1072821C108886842F5C1B402AA2E49D37AAAE13B7C14B5A748C2DBC45BBE5BC2ABBB929B613767A720BA572CA63C2080C4547C9024D2F451F25973F064941E814E3EC74B4C1770542B0782C67580B7A695C2AB29C95DA2C18E4563A24101B11084586CF9A42ED62A2BD1570FC175F4D5BF50F8C4A196AEA1953199143EFB5183B3A905510623EFA47C4A52522787723AF5B5D05B86D15126EC6BA2201120B5A527324A9895F62959E24AA6F8C95D9001E7757FA5B3A80085BC48BB0D34388C0F6CB647B0A7CB992519922A730865A4032B51708FB6602B08D144336B7C7B65730D8677399436FF5711EEE7B935D67054982472B96CCFE7279F1A673BD61757F7B951A5BC9C4B7E52C11A09F350737120E0923F8C1A2989F19A6FAA06105391B39B266D9C768C658D56FB59F57020E0D17FEAEC496F729A810821FCE59CEBDC24E8B7CD3B869144225CA4B5A5C72432738BA5B939C64CF338021181765891469AA7AF34A628950165A1328CC4C2B6874498A8205C675214137E47080624E250521CA34E394E829206DF285E7F84A8B117C24B1450F883AC88D47142A64552AACE5DD85332AC168ABCA2597BA39320653E8338303552B419C84ECC014CA3006B50A6F74B8AC57378F8A06006841F972B703A2B0DAAE868698B778BF6984DBC7BAB537B29EC5462463295CA1581E2A60F5C169B494D0B7793AF3313FEE3742D84C1D20B6B47877320E25AAC270E3739B34063B62FC171EC6A6BA7B62FAA650496A63110D057C2E5851E08E31FD88AF2F84B0CF79A88DE834C1F17C7A5FA17D329CAA05F166082AD3AB0C739CBF0A6BBE2707741D9B5F53A0E16199280A2376C9E5A170B472C6DA19B790E6C9591EE625B42CA0FC04FD9F69D72CE4EFDB3B9ED8D9C29 +encap_coins = A172A053269AF9BF0C132BAEBA3BCAB0C3222520EB90A6F7BA15F507273C828F +ct = 1B5E0ED507F770F039BF29F4C1F264EDBE5DE494755131FDCF392C6C18245778DC266F9B42C1DF973F2858023E8C774598CCEC04F0EEC86822B8030C53BDF2CCE64D5D8186EFD3FBD87B9C73FE74123DCF24B344DDD45F2D824537EBC8C673E9444DAD1B3B180415D61A500134F527B2E46F86AA1A30BF1766B5178D0E3C43CD78DE03E726A8E61CA5E7A5831507445D2DB64F412481598F699C17AB1A9AE6CEAC0CD491435DD64A3AB426EDC2414A5AFB361CCA39D007DF65BBFC6BD9FFA114D4B7DB5F1568828BED40BF9E5AC1BBEC1B369D29897CDE8E9C4CB17F8F068EDFD49903B6790F15BCC147405CCB90B80AA44FEE9E596EEA23E9ACCFA7346F20C3B6852A610460D20033547DE2CC8822917F4466D3E8E90E217D328D46D35426151F1C45406828B44C63C435989D39576C7ECBE18B1207732CE1C966C7CC980603949D1E5FEDC29C0BA75616E1ACAB70277DA24CEBE16C8B9D03BF5390C6EEB0284ACBF68CF83E4468DDE173491412B1A6B773457954B65BB56B81101ECE9D29E631253FCB26C3871ABB80ED63217BE54DFE7B5E47A696DAACCF44D542087083DAB164A3C0A06A19A022EB8A8F1E47E94B364FE04D240A464D5264F7228BBC4DAF47F9E1E7175336E9465DDECF39A28DAAC880119E385115B3A1C0FDA0E8A65E225D4C0D0E5306B01DB6291029AF76DDAECC25401C07598560F5B652E47CF6BCAAD56A8B6928A6B5AA3CAAE97A7002EBA9D1654830915749EA75A4F0ECDE9E524A48A3807E2396F065C2AB9CD8BCB02D2DECB8A7971A2CE790017F7AB94CCE2514DFDB711F133214627904956286507ED7ED80A44B6FC6EF6F60C210F70645F62463C862E09D6EAA7D2F009E52965A40AC87F7D53270D8C0299D68EE3AB3152228DCD976508ED6B9B43B12D1B56C59F417A24906E1A37D8E48DEE1C753B9AE4CACDD66340F555C75F3D4951B5186DE466943139A38CE5AEF14ACFBD172DD14A681148AEE2E5D5E38D009420B7EDD9DE4352FE347607090DC2D06525F32B28AE86FAC64A9DD1B3A83D9733111AF43E45260274968D999B82EC60594B828A5EA75AEEDB02A4C296147D5DFF44AE50BD24AAEE05B2991692A02F15B054AB791950AFE07BF5F8879784B1AB3E9A5139D0B79593A9154620AC2DCE00A5DA9A0C43A40D027B041EF81A8763CE41BD1411562742083DC544B4393F76CDE34B956DA38994B02447561858E15FE4A2975EA0157CF2847189E8131F5289BD4D9C4D212DB254A1F26A6228DFBA9E9FA4AD74DE3C403A9DDC011910F42BA84EC310DCBC68BEBD0E22F155065E266D5E8BE6A6FC87B9E8C2A893760320673DD0F1D4D028806E008DAD6F58F635006993131C91A438131BC370C0E1BCE0108CB031A3CB1459A0FA48CCA5897815CAE2B9E278ABADDAFEFC493DEEC18EA99D0CC8567E6B29D76B1B700BF273177CC8253C4BA1C05CD0AE6875C04F0185131E95349D7BB27D05CBF9209B5EB6397B5C92BD110D3ACFC3B8D24BFF2227D3FF6B158214F895ED44BEFB1F28FEFBD6E0E8F8EF770C9F90B7D85B931C4B69C223E96410633F3E529FA96B8F1D9E4C2AF953BD38A50406741548AD9A08B826439442620B3330E8D79E452049A139A8B7503AF8450BA05D3FC34E818ADE8BAA23E66CCBA61DFFAE259D132B85BB3EFF18DF26B96ADCD8B9802950F62DAC16C9D8C0D4F9560583E39A7432EA7458333A6AC3CA0F30BDCCD0818F258BE672B1422C5C51317063BEFCDAB70A6F8204767A1CB823E6CE70ED944B20B87942F95A60DCAA4C7A797BB17BC61C5584D17E5A58E3672AB97652EA6F3D3D31216EF58A1846D2A64B62577795A1510336226B24C2E6075B1717449CAA1459F3E003B56F6C824C3A125F2E39CAA2C1C5A4D16A0C594A7139C8748D17D29E91D8D880A05C8B9E7CABCFB8580D68D4F8AA9F7F402096B482C4A67B0C574900CAD334CE63AA32CB7E9164680EDDBBC5A3027F28A554C4A63D44C21CE4F3B703B15DD3F80BE4E8C74A9673DD24973B9FA6A4199BABB993AA3A386C3ED9635B0AB59E7FEEF8A74FBABC3E7D9F2FC56CB94BD15D43B71843D9834619764A31473DFC7E47813FD564C76186EB7F520F39E0C580130BFEABA76B7E04E986BF943F62C0B82305E4AD575B6C0AC55FD8E31305178011297B5465FC717407055815BF8DB52998217BCCFE1BB20CFCAF98FB252E250D24F +ss = EEB511979B17B821CA1CE569606A76144179E8A8BCFCB3108C44773C89BEA166 + +count = 93 +keypair_coins = 32E0EA9089FA928482C0770DA545AF1BB871A03CE38604138B0D08EA2A10CA2B56DDB63A495D1AFA553A815CF751D711478A39E8D1AACA992796B619C84565CD +pk = A3637B6EDA83BB2281B6320527E3B22BC08B5AA644402CB674059135D9C928BC4598019722B8AF0B647DD3F02D553BC457BC763883288DBC461E775909745317F67017D3AB5AC283D0462167DCA55E7452438529DD715F8AF6438EDB470B816546D078DB0AB2588BB56B2C0E06741CFA28C997A128370C1D72221147F0218784633B45207A3B43FBBBB0D0CAC41FE70213475E61058CF21797564B0DB1A2095CF367B9561AC2681AB8B6CE7D240B5D277169C31EB99A4B68B92B3ED1CE6333B404E8807B32A0B03080664CB9F0987D2EF56308707B46B14F5667B2ACE438701CADD7B4026CC5886BB7C0160A9684D5220D422497A9162D84C2500C0BC4D8BF20A904DEDABDC56A92F153770AA95244220BBCBBBA66AA89823289A2335898F01789E8A845D3B5A22C34C70A6CC7ECC9EB4B65AE0551748734A1244A30A837ACE642F020779F6B6CCA633E33FAC08C51330EE0BF70E8A6AE4A7DF0F2BE54B10C6E418426C69C212A33B6B897B31630C6928CC4865606CA1F7CE192411C8D4812645C0655E23553B13C6C7C073E0AC92F35465A1B8A505DE879998BAE71608AF9E943B4CAA34F248F6DC679D93033B51C53315AAE72D843884C83A0A711D009414C215BADC32A5F74CFB3179D6EF26818D7C79393B8BC8B8D212092F2250101560CEF4ABD4132CB31996B85432BF437037D73516927300528763472C0D5CAB08294154001C3C7E785F3E887F1BACA5FA9498947B691E7A2ED1C9F66F9BD60FA1823E32935515F90234B7613AD5EA3734A6C0A9422A97DC7042A0434A684083E8BBB40D2C4EBC08496A7261EAA269175C2A8A0AEF21474DD4837B6B1C7BC112D67A1C175B2634737B43E5475D5EC9A75827F02091DFDAA20FD43CF59922479A671363737AB1CC307225BB4118D1A714DDBC08B770283061762BC098415E1923ECB3E3C92216D30694FB869B514A314DB3FE8DA5FD4930ED0979011D8B1FC723AB617B6DE420482E8B9FE2A3874B788F0416DCD20704C20285247784477385A1CB219313B700284097ACBB90976B94A5FD8984BB6B7121BB020E589804281BEDCD78C1CF0AA7AB136C7E7AFC206983887BEB2372784A2C388A18B1DFC5E077703C8EB7F8A966DEF46225C8B3FD0F85D6E3A328C8C1BCB0B55D0341CDC866E1B040E09C960337A9FCC5C587C393D29E5B4921A9E2377775905AA0CEB54599BCF04421056915CC0D79830EB972C01BD3756270975BD63E224D0F58307EC2986699D5F536EE6C21F5DE6844DA70B797C8EF5B9A473624C50647D171682F30A2F3FD7C670595243D59487CAB8D0A7727D40350F9BB7D984BA82D8CF39E817C8984C17892295E09FF674A684272CC710BFFB263BEBF1BE44665C85530D13F891026790C2C1590AB6159CC22B5EC76057371BBA107FFBF402631297C2C59BD05634BA628A7BEA14F3985D2B5260FBC64664BC9EE308694F8BB3C4BA1F4EE43DC4EB4BEAC095B74820A2787AEEF612C0C48AFD0B20EBEC9417B12C7AA50F4FC86558D36FC764C5B69BB4BFAB3526D533DE0C2E2BC1CDD4B897C9F990E8987BBAF147A0C4428AB68CA077A2A2D3AF76261A1F371FDD503F6D9517A8BB0D53499D65208BAAE23C77580BECD252D006BF27BC11B87C19789384F063538448B98188B0DCA07328265F4C4B68DE438D8420874625BCD12912078056C7DB367A1598BF200F39D2A90E12C8DBE7AE4B780C8F5662C78916AF1A270DB365CA9097A37525AE347961B13B9B72C68DFB7AD7517DFB318D5385B7343A63F5026BEE90177FF212BD6B639BB15D7949680EA38336891653D2C5AEC083A8873362EA5E6FB4B0B1E19E48C1B90235796BA570AA0A3B1EA6C483D3079C71CD153B246993B86B506E477625B3B939FD9616451B90DA9348B87C0201E087A5592A208AC9AB7CA6712758ECF4CF1AF163CA3A369E82B46D941B15A42D31F8775E6332387036CC1BB31C5505D52B1A0753098D40B4999A74E4743A73E539D9E7A9514AA5671042A68BA6EF785234622F7440241A55A71F018A09EBAB25F7913691BF787B781EF818C8238CFE5CBFF3F8895A19C24085337FE10EC7B326DA82283F03240A02AAF2658E04F7626DA155A9FA8117EB3CF3F36D1E48BAA2F68D158A0123691872AA74C64670437534B6DBA775F80E14BEC0494BAEAE3C7AE947BD69827E1FB86388052C3BF3F8B4CD25A568 +sk = B27CA8D40A1CF8AAC1A62553FF541EF56B4B4E352E38C0AE8C2CB2240C2D2525ADC52B1953A1C239E3ADD71B5F7693196875BABF8B31EDC528F3B320E6569997639F1C9B5279C38D5DDB3B691B0228AC4480D45077DB55BAC24285C5820C49BE25632C4AAAA23ED84E10A1256D9CCA9B584D423A9FD37276CBFC5953C9284A4097BF71706069AC413AB857C64EBD179EB75496170778AFD74180D877C9D69E1956450B1289948323F64227960A0B24B442E78C551C5B35E89B34B018B80BD094F7594365195F44C05BACBB2E0A976A86559BD6B23D220B5C900375C6B188FB353C3B064CED669BEE6751D5D22659EB89900A92B7BA84EAB58B7E95CB8495191CA0491EF75A3ABB9469A7939796C2F8C15CA22283235852B0A96DAEC403C5C057B5AC91D09CB16E01BB0D078170E0CE9596B913E953C5AA67BD8A2FF20C0261CA814F334244886DAA0694368293FD858E14E23D13E66AC89A58867574804786C4C48D2FC003336C002A7776217ACFE7084588455A0A85B8AA51C33E99B1CDB75541855577911DB00475DF42168E7A21EFE57402303DFE37AB5BF10200395550A1639DA2AA8E358748EC38946BBD3DFC27DEB08F4F017ABE33A2DF3B9B96CAC0E8C261E487CFFF31A1484CA5E04036797CB4FC87AE6CC72F9EC0835AE2B160B425ACFA8B75236D92870E4D43BFA7EA5C98827F95DB6DD4200068650E3D8812DE827C3F660CF8049933DAA52793AC10F57AD8F2A7445927CA6022D5A485F9424662A175B2A6349B248AAF4853BE709D42228C3CE3B13990794B9698869842B81649CBD9482C2435886441ED9A7927384371D02005A514717ABEC398BD183B321134A4DE85A1FC9B72F7268CCAFBAE289C15DCEC18BC26B81EC43C6B8A3919625165617D60C33F1E6B04CD5492414A15BBCA5CE84284557C9CB481A951FA5DF2E444E2C20969F38284E60FF15B0EE707115880BC6D3834230C7D22C7CD69229D1EEA957F58B2D47B11CA97C926070CF1C1934EF83F5A26241C7C73959C8A0501C2C1C70671987243635FEA56CE6EE292B1D6AA26C4CDDFAA1751520FC3218E7E20C13C6A1DF4835C7D6C0BA45923CEB2AB40FA7FE3732E47AB652309CDF28091D8D86308B73F90D86995220ACDD9C544C95FCD24A77E7C90F2F15E52AAB595E11B1AC0799A3CA95E0644771420AEDC777A9048FA89CE94780C8F2B903548BD46A2C22E453B68736F5CCA6C35EBB027C0C7035678F7F69A9CA02FBB4B23746759660251F6757BE3AA1767D7280AA75B60A7A0CC892F70F67CDA886CFCABB451A36023C688D7AB5E0A3B5BC88514CED3597A594D0E28C7AA25859E57BE9FB12691C047A8A7373FE1695AE742027A8F5630CB2776721815742C66A4BA0C7E7E8B8281144B80288CC7296BFC8625A2CB995B548D48294B2FBCA97D375B91203392CC27FE835F62DB97B14739F6C8B1880A53DDD388E2636F866416817A110258A098D9AF4458A64C68654E97099746B9B9E23ADAB5653970C00719B54E4A2D2092CD7BD62AD9317357E35224184A4E24B4A58014F666B33E1530365070B73AA6DA432D04F2588F34AC1CB3B3F7FB4AB200B459966FAFC689CC40ADAD0C26108859A2943E6157C22F9861EEE9CE412212BB11BC6C5414E781414711C8C61B29C0F90303DC5688DA9D00B78EC8A80A4C5485B67BB83C850D2C0CA56E45A30F35250700469B957FBF90A6A097AF95E4CD2060B38F8136B9F493E9C4B6B0395E04A0761834619E5B84AB33C3CEB083B1D268E468158232075F3A821BA286D84002C3757B99474B56820A414131E60636D03BA019FC37E8C63EBDDA124A9370935926CBF1950AB83E56F088F36C24EA9A84E042447718220BDC53254708BF85971ED83027750301A685D2A91A652633E2E55CEC7932126852D0216F3D943F5ACC9DDEAB99EDAB31E79A5BC5C5971F5B5FF6B50A57E2455F45346C3275CC1B1B0DB991CF3BBB3D2A2F522A9EE5426556D84C5C0AC7D827A0E173480427AD9F637C1A71A2816858B2C152C33CAAE1FB5197D874D6F817996946E563C8DE22AEE6B5735E46CE6912B22F9187F8D75B4D47497D435F91759E1D1168341A48CB5C9FBF19137D397A2A1C75F0E71BC17A88E00837DE428BA61B3A1E1C88FFE5A41570CCA144A33AE851A3637B6EDA83BB2281B6320527E3B22BC08B5AA644402CB674059135D9C928BC4598019722B8AF0B647DD3F02D553BC457BC763883288DBC461E775909745317F67017D3AB5AC283D0462167DCA55E7452438529DD715F8AF6438EDB470B816546D078DB0AB2588BB56B2C0E06741CFA28C997A128370C1D72221147F0218784633B45207A3B43FBBBB0D0CAC41FE70213475E61058CF21797564B0DB1A2095CF367B9561AC2681AB8B6CE7D240B5D277169C31EB99A4B68B92B3ED1CE6333B404E8807B32A0B03080664CB9F0987D2EF56308707B46B14F5667B2ACE438701CADD7B4026CC5886BB7C0160A9684D5220D422497A9162D84C2500C0BC4D8BF20A904DEDABDC56A92F153770AA95244220BBCBBBA66AA89823289A2335898F01789E8A845D3B5A22C34C70A6CC7ECC9EB4B65AE0551748734A1244A30A837ACE642F020779F6B6CCA633E33FAC08C51330EE0BF70E8A6AE4A7DF0F2BE54B10C6E418426C69C212A33B6B897B31630C6928CC4865606CA1F7CE192411C8D4812645C0655E23553B13C6C7C073E0AC92F35465A1B8A505DE879998BAE71608AF9E943B4CAA34F248F6DC679D93033B51C53315AAE72D843884C83A0A711D009414C215BADC32A5F74CFB3179D6EF26818D7C79393B8BC8B8D212092F2250101560CEF4ABD4132CB31996B85432BF437037D73516927300528763472C0D5CAB08294154001C3C7E785F3E887F1BACA5FA9498947B691E7A2ED1C9F66F9BD60FA1823E32935515F90234B7613AD5EA3734A6C0A9422A97DC7042A0434A684083E8BBB40D2C4EBC08496A7261EAA269175C2A8A0AEF21474DD4837B6B1C7BC112D67A1C175B2634737B43E5475D5EC9A75827F02091DFDAA20FD43CF59922479A671363737AB1CC307225BB4118D1A714DDBC08B770283061762BC098415E1923ECB3E3C92216D30694FB869B514A314DB3FE8DA5FD4930ED0979011D8B1FC723AB617B6DE420482E8B9FE2A3874B788F0416DCD20704C20285247784477385A1CB219313B700284097ACBB90976B94A5FD8984BB6B7121BB020E589804281BEDCD78C1CF0AA7AB136C7E7AFC206983887BEB2372784A2C388A18B1DFC5E077703C8EB7F8A966DEF46225C8B3FD0F85D6E3A328C8C1BCB0B55D0341CDC866E1B040E09C960337A9FCC5C587C393D29E5B4921A9E2377775905AA0CEB54599BCF04421056915CC0D79830EB972C01BD3756270975BD63E224D0F58307EC2986699D5F536EE6C21F5DE6844DA70B797C8EF5B9A473624C50647D171682F30A2F3FD7C670595243D59487CAB8D0A7727D40350F9BB7D984BA82D8CF39E817C8984C17892295E09FF674A684272CC710BFFB263BEBF1BE44665C85530D13F891026790C2C1590AB6159CC22B5EC76057371BBA107FFBF402631297C2C59BD05634BA628A7BEA14F3985D2B5260FBC64664BC9EE308694F8BB3C4BA1F4EE43DC4EB4BEAC095B74820A2787AEEF612C0C48AFD0B20EBEC9417B12C7AA50F4FC86558D36FC764C5B69BB4BFAB3526D533DE0C2E2BC1CDD4B897C9F990E8987BBAF147A0C4428AB68CA077A2A2D3AF76261A1F371FDD503F6D9517A8BB0D53499D65208BAAE23C77580BECD252D006BF27BC11B87C19789384F063538448B98188B0DCA07328265F4C4B68DE438D8420874625BCD12912078056C7DB367A1598BF200F39D2A90E12C8DBE7AE4B780C8F5662C78916AF1A270DB365CA9097A37525AE347961B13B9B72C68DFB7AD7517DFB318D5385B7343A63F5026BEE90177FF212BD6B639BB15D7949680EA38336891653D2C5AEC083A8873362EA5E6FB4B0B1E19E48C1B90235796BA570AA0A3B1EA6C483D3079C71CD153B246993B86B506E477625B3B939FD9616451B90DA9348B87C0201E087A5592A208AC9AB7CA6712758ECF4CF1AF163CA3A369E82B46D941B15A42D31F8775E6332387036CC1BB31C5505D52B1A0753098D40B4999A74E4743A73E539D9E7A9514AA5671042A68BA6EF785234622F7440241A55A71F018A09EBAB25F7913691BF787B781EF818C8238CFE5CBFF3F8895A19C24085337FE10EC7B326DA82283F03240A02AAF2658E04F7626DA155A9FA8117EB3CF3F36D1E48BAA2F68D158A0123691872AA74C64670437534B6DBA775F80E14BEC0494BAEAE3C7AE947BD69827E1FB86388052C3BF3F8B4CD25A56840B3A72C164432E6CA838693EF25B30013E5CF56C1E6142828107A10CABDD16956DDB63A495D1AFA553A815CF751D711478A39E8D1AACA992796B619C84565CD +encap_coins = AC46852132E10665C4983E3829BD9DE2ADF693CCCF572B4EBC5C0A633230B627 +ct = DFEFEB85A3E57BDEDC316907B03DE1C5A3888A71CFC3A8CB6CF8DF1167A6EDC98DB17C6E510087E4986B316A5E28A29D7EA15142792ADA40E285A9E92050FE4923F466A7C51EE0E43E7DB3DA92E4E0F208DF2C28BD2D5CB3746AE1E7652547BB47675DDB55C8A4C25648C3910111F86416F97A526389F1460DDC4E39FA2054189214A90626DFE2B13E62AE96F46A6ED1D86200D0565B561F1E8E71C827FFBFAD0DD7A5C083383861D5B6B1CDD2142E6E59B1840069D488A53B8F8EC9488172D61BDE16D3BFD2E3958A14B546033360C808B6B8D3404676B1F28DF826BCD48EE8D214885B4170B65BFB4C693CBE63592D38D54FEC4A9C03519ACFD258088883960D7717B5A2B8E93BF7DC1B0DEEF318E45C4A4BBFCC7E7EFFE8C6B75DA1C0AB7B2E133EA3AFD991E665F887333CA7CE6CC0BBDA08FDFCC5828FA4C429363D93B43E149C1C8C722C770F2851A250B81C8F46A5E53ABE18BD408234F40057BA73A6D862C33C6B0409E5A4DFFDF1DEA33E685EB366A6BB4561C64A2167814259D223DED8A192CC43A2D29993C998634B8FA0281112F9B6C097A26069C90C8A79F767C3089F4996E2E5483C945D6F74FF60FDAE085C150D9E9300CC790DA54B123496C1D7AE64CAFC814D4CBBF6F8290D216FF40902997B9637C5E63A4152004E52134D8A6BA4F0A9D36EF4E5694EB817C33212423DC4DEC8275E115CC4CFC9A0AA610B561FA05A72EE891EAE2BE4946B268E4CEF4DCE47BD4CB06F4F2A3801E2A39BF65272D0943BBDC6184F809A5C3403E994C48E7F27A5177BB8453F06BBFA35A5E44FE97FA5FB77BB9A9C131239671D95EB233D5072C8D801D216BD8113FA9C70F5771B86971D59FB4976EFE7CE15161B7E739F1F236CA859DD2DFDD23ED98CE1EF971D32028E98EE93115B49248AEC39E8568E49E50BF06EFB986495CAFC32B2065B5268B40BB31858028A37B446E7955E16FC9ECD29A6E5E8DB18BE2D9C45AC7F42EF7ABBEABD3544F461287803BA685324CAE7A7B3B08A26EE6EB5C75875CBB0336B27E6A2E049633393F710BA861F5123743459A77DF02DDC11DB670FF6294A1E5AA60811D6820BA25BD5C2A20A703E940AB1F7FC83FA77DF47ED94C0F692BD427AD41100415B383E656C2BD490D806982412A686CCE116BCF158557921BB2026C0A37B8D1C8E2FFE85F3BD6DB02C0F680965FC83128FD0CF6C569EB70421AD92CFD7C8C6F892FB94FDEA9E17A82853FC03E771B00908C01DD9E782CE7892E001CD94159C3056F03784B7EA28E49A6FD2E5234C9E6E40A5419ECCCA101D7583A2874AE11254B1AADFF4963B493A8961C25B93DAD6229C740C05DCE2485DC99496DED365A56439EA0AD2E873CB8C66717AE577A4B4536F10C8C09BE2D2245E6FC8D30D5A2D9551F1681E2B797048967CC7E4D034298D544963B477C4B665F0291FA6A1173BBE0CD03546F852396C40490B24329C65D49C0DB39F54869FE5F412876E9CCF01433D421829114717F8D19D65BEFC0F7580E458437D8917AEDD0959F9B7E55D7D6D4B5E1377F9566B1FAB06020AAE87144CC4CF3EFCB0072BCA110F85BEE3E18BBCE0D7647C0384C8C29C027B6FE201306646150ECB85F8D08BEB21D8AA06F9753721AC680FF03C98420BEFAC4C89AED676D3DCBC662A66AFCF1AD791B81131A8047B11AF36D7E0F905B297A324F659966FF145F0FE0DCD3021386DD04A6A6B39CA1BD4E28B43524BC1DE44131C5B50232AC185F3A9D89307964D859F83F3A9BD93AED91A812337F0A177D5AFF47A6FAE5693C2BF310C9D63330D2A4515E95FE66A855A436EB881A4E901CC3A307CC280A7D593C9AF46436C3374005A3E4B42A4FFC8C6574B577C218AD282C3E5BCD3CFAE4FB1C30CB47B9B5F3E0D97738C4CD99F02317A929FCA6EE4E2638A90FEAFE70A922AD24501E115C9274184B4BC3827F6B4E9175A348BE30C9ED2FA185A7B556C0AD420933FEA936391D72C863B027891FF1F29A322D8CCBE6E0AA009D17748AC64AE2ADEDFEDDB5032554E0CD8A03FD0234578369CC9A29664B67D6B2A554374382D7C3EBDE78B8603534F41A53E962D12EC81C9BB08364D72F56874B1A9106DA4E5698E8932282D7B2B7AF63E07C4E647D8B36FC0D1A5DC729E37FD40EED2C3DAC04DDA5F402BF4CF7F70571E49FAA119C326DC86D8E57EC3D5F9AB6AEBD3048C5296B3B76AE55162 +ss = 4B9399FED11D42ADC2B7A407B412C73858619C75D8FF3552EE81F10EFFA17E12 + +count = 94 +keypair_coins = 6FB2EC719F2A0DEA152BF3F64B9D148F8AB8BA88F64E61F5DB53E12D59F52557D3698490455837FE52948613EE5FC2284F00B130C72334B1D8E68C7B09B2DE2E +pk = 5FEC35AEC29B1CE3387AF3327D49734CACB798C955B329BC90122CE43C3CD1FBB939518C68D1B044E0CE31863D2EEC9607410F0A6B74D40A6F93E7A88442AA0111008D38661241AFAF6A2101DCA37E83AA4E8747CE884CC1C29725A19510C7688FFA569CEBB45DD87FA7772BDD6B6F26E48C5EC93A1D66A2519C571C1B0979E28A82EB9FAF136FEB21152ED15502521176C9CE3E2AC3F3DC78FC620E151BADEB9B400DA2029F1B1C2FA70BC8CA232CBB69B0F98A39543B03F67C1544402F518CF5477D6C4BAF11F8BF44BB1208EC96082BC260E52D2EBC17C003A7816A5D940CB0BD7329912C4239B2910D27CFD2A48C77501E0586A2B88C99C1DA29D0167A88ABC35ADB5A79C76C89F4C814BA410D9B2DA6994C5A78C701CA91F42348454261F6F7A23EC89428630C5A88C9E309D08E8B7E9B353AEDE6C952E36973A23E9AEB8EDD83B256D913B9B64E392936D538A9AB250175544A70796202154350696C9056695D9C0FF730C27EA71F1562A04EAC9C7D8B38D551C447362DBB1277E6408A09855D1292956C72B39E802A19573C620A74F996492FA15322BAB6342A8F90A747C3A40AF020A2AFDA4D37620100351F3A5086818260592735847A32EA5A4E926C82493C7BCB5B76FFA8562AAC97B701A2C5909034A748B9891CB5E430836036CF686D8BE47E2CD5559E500EE617AB436306614C4F026C6E57021DA6F3356EA54E924799ED6827A1F311C0A340280AC21B110EA33809CE3744AC4539E4E912F4A99066C26D3F047AC87CCDC55529E710517FF042A893848D5ACB44191C6057A4659427A7C2345E9005135BB3856733320CA4C031C3B86AA83CDA29F40467D5306DC0142132F1A844466ABC1B28D94B4D1B98AD5FF80886B38D2A15505E8CC24D9B3273039C2BABAF8380568A1136610BA3CE49ADD830785A1780EB67B6DD628F718CA7F1BCCA357A1531999D96556515CB680E153C98281DE817AE5F4762C03952C74A8A973993FD778F49C38B59838F793C71BDDA96FB8A4007F1069E6378E7F0B4AE2B890DC84294627A10039D7A46B3C705493C6471B3CC9CA2535FB8CB19798B7D4D562EA33869383B28FF7B9462124070A1C17CD4B2BF4A622E054A1CC29BB177048A62BA8FE66FBA75CCA14048DA8A41C2E3A13DA8AB593C14D0B295B1B587AFF8778823AD2CE3644DE2B236BC144AA4C5C2DC697AE3C681AC10B5F53CA1D84334A7908C48BB7F5C93388186860C781BC483B1975219D24677487161B15407E52FAF51919BEB32B6C3BB1FE993EB15A4AF84A64ABA7D794252FAE6785B1054C24AA6B249840B08B3FD47A275D1A0930B2CA6E8B0D4B498628418AF01AEC4C049EFF55A576123C1E58DAFC5B00C2373ADB7CD62120B9A69541084100FE44776D3078D66B143B7536888C4128A2A637C66D270C0BE49C99F1241A951C413409D16CC653715B88E869216EA42FF505ED71C550848A98315C84550CE83BCC750E4CDB8084F882A29A5A0CB6048B5CEA41B9B8C2FB3C949FB928770E411DED9902774B529320F768445349A310C727F2012678F44967F37B0A7CC3D4AF05FB285A82CA568E88C87168B14A84B90BC6297BCE393AEC894D7B464852BBC55F3C85F447980C904BF067F9CF55C756A6967B95BC4A08427A8C9D3AA6EA8913BF47A823F0050DE189C7AAB2DBB040129F40B5A885CAF20281E39C178A79729072AD360876ED670C192912095A01E19AF47F11C30A44AF6165ECF290F885998B9CB4FFCB1B7D71C7A4C21C0ACFC8F9A942B7BB266C49A528A28732F65B4038BB7DC2670EF20CDE470BD142A836BEA52DC4460C0E01D1EF06E7E7775E9A888CDB8C2E6A6078BA3126572886BB091A14735158B4AEFF26A852B6B400698434C61031540FEA976B523627E1C11F5E14C5D5C878C607AFAD79E425B62D5A56530BB6BF889581045CC4839857EA16BD9775AAD3609D5287AAE66C60F916DF54C88E8F291D8019C6A4861D2D68EDEC96A19E9911A49A043086247B37B8CA9A8C16B8C9147016C9CB2018305DE8321F4D0C158FA2452347C78A376F399780E59A5A4E1C8BB793FA14CAC662732805146D2EA5CD67196257362922A81E2177AE5289F2BCA3D6B2B0168A263C642CF8E2A3CE8577151ABA48B828FD70670F45399FB897E85B45AFF5F477504DF1B1894FEE3E6BBF8218590936E0102DCE8ADF459D590355576E1 +sk = 2735BC066A2488726C89432E56452ACB24A2A5407522988C0732CE072128C8D5147C42988F94A8516C77873858394A2BEF65B87741C5B9691B6DB84E3B1B2B2F851B1305832E4210E5D05710A5BB7195B8BEE0CBA9B5BA21BA57B962A280565AABE1C9015635CF1A7121A8581FA0A78AB26FC82838B6A405C6FA5D46469136CCCC34930664240915BA5C86E67ED9E73F4B123233C92D73BC05408005DCD6CFD62635C3026C990753C55CA8DD385A29B1C79FDB97C0B4CC8F26B28BA573B5194D6BCC065F5B97DF702009C43A65ECCF452447AF91200EF68F18CAC25E5C71E62A39FD7A26C6B64B47E29D1E4084801599ABA838A3808ED83454B506965507CC6D0B34BB139300D1014168A79D5707C74BBC7B980461249FC31734DC384C9DAC4EA6EB4701402084719593B62AAE53C8D55719945975CFD25BFF31C886640FEC37CAB3942676C840A453C6751CAF16A4743495BCDE6528A942A47E7C2D6499B2A872A76E928EF4B0AABBB21604F33231235A7CB47C96D9C976A2AAD533A06A24024AD0925007984D99ABA3AA8168A8AC92F662348686F756BDC1A23F8537545D13AE9F657CAA801788C9368864A05F40AF22E33E10705741F06EF577CADE6CCBF1D01065565A5B13284690BF611093E45684D6C69FC0F548AF852248DB6A6E86A2A907C95CE0053FD942A92B024DD18803474B03F73FC022912257454C008D137C5E8404379DB2719581AF17108A03F58DEA58892912C5FAB701D28CA845068761F6BAB69BBB75584F7D289DD921AB30379248C91106A784738B17CF0044418BB9CE34BCD913BB26D04CA04896109A255A39BEBA1A2B58490862409E473CA623933AC14C90F64CC74AF396C3186917061B5C8C28F3E8B694535FC2C73AF9843031C19166D2C8A3A76A2ABA45ECA36321BA367BD5B176B5C7B8D7B7192C95CF2803E2C3CA5D585C4EA63009C7B850F08759C278F1027C59499526A8B2E494203197A9304022FA0C4E47A3A6FBD8BC59A7C1312A6D19D3063E8078B1A1BFF964AF48151E4CD3CD87F49BBBE01AFA3A5BF46A7F9BC97DE729285AF35A6A9168683658EE37BA6D9499CBAA8CB44C93BEB287EF7CC7B1EB6491154C14FC2027AB49316B70B8237A546090C9687CC70CBFB82208A7F61F63AAC1A42961568407343A050B1048967C5334F3542860249FF9C2FAC8639EF8C125D0B9FD537FCA93C1006A77499658C0286267B910C10B12A6136152BCBC03E782C41B1FE94A000CD974A3A9ADE3A3B8B4BB8ED8B403683AB4EA3B84B84C4825F61F99D72EACD894337523C6B6AF765BCC99393213938D66B18B2B168D6C73C2EACC42AD22255CD3AC6D75200111C0A6076F02F906B1C96213E80310B8752B1B619E72366F9A0BA4283520333EBF8693F93A7FD6C3560058A8D16CB50B585B3D519E4263B050259A9A0A8823E3CADCD0B81C1CA53820323A9539133C68B0A6CAC1FC834B808D9375431F961FE3233C49FC9E88EA1ED0A068A271B502C0A0376A1309F86013B4947BB671C1B048C0905C8CE16D8035C7C05B9CB8755C7D7B6DB2907DACC5A91B61B666837F209075E8AC5B86444B49AC878F9B2E18D42E0F791AB7CB7C973CA8E0437F15888916DC5D02F10DAE54C86CAB52F2B07F023A639288B2491145D56B7AD962840132667C78473E339F99FB9ADC722F956165C5A8A8C5CA5622B504A624AF6CA26443E776856292851C7F25B983878C9C567523BE99BB7568B9A7488B96925A0FBB07E7599448AA98DC112F6CC283E7F57758C1B43EB9A926B2379DF6C40E49159985CC4061618425B1D0AB1533BB3F5D03BE664B8DF86B95AE8918837A4B35023C9926CEF826BE5645784B33B333B7B0EFF9C98A2793D08B2A11512F3E9120BD0B299C6C5B17103B3264964D58C4D9C51CD8F995EDB72406CC16452A483786A81C6A45BAB840DFA1C9CC978D6D9C3E22C4AFBAB8265816CBC322ABD4E510985520D9FB0AC69702A784734F230847170B532C3DABDC06B762B22C738AF9C9308A9B8B3FA6C376464F6C691265B43901561F44D9A1DCE88E2D544BDA01080FC0B58FAC9FB854C9D2E96AE20A9E19B22FD69B6FF88A6BC324514987B039804B71C1C745D77362801847C780922B68A85C17FA750E2CE19F3E7765A785B4603931F9BA815FEC35AEC29B1CE3387AF3327D49734CACB798C955B329BC90122CE43C3CD1FBB939518C68D1B044E0CE31863D2EEC9607410F0A6B74D40A6F93E7A88442AA0111008D38661241AFAF6A2101DCA37E83AA4E8747CE884CC1C29725A19510C7688FFA569CEBB45DD87FA7772BDD6B6F26E48C5EC93A1D66A2519C571C1B0979E28A82EB9FAF136FEB21152ED15502521176C9CE3E2AC3F3DC78FC620E151BADEB9B400DA2029F1B1C2FA70BC8CA232CBB69B0F98A39543B03F67C1544402F518CF5477D6C4BAF11F8BF44BB1208EC96082BC260E52D2EBC17C003A7816A5D940CB0BD7329912C4239B2910D27CFD2A48C77501E0586A2B88C99C1DA29D0167A88ABC35ADB5A79C76C89F4C814BA410D9B2DA6994C5A78C701CA91F42348454261F6F7A23EC89428630C5A88C9E309D08E8B7E9B353AEDE6C952E36973A23E9AEB8EDD83B256D913B9B64E392936D538A9AB250175544A70796202154350696C9056695D9C0FF730C27EA71F1562A04EAC9C7D8B38D551C447362DBB1277E6408A09855D1292956C72B39E802A19573C620A74F996492FA15322BAB6342A8F90A747C3A40AF020A2AFDA4D37620100351F3A5086818260592735847A32EA5A4E926C82493C7BCB5B76FFA8562AAC97B701A2C5909034A748B9891CB5E430836036CF686D8BE47E2CD5559E500EE617AB436306614C4F026C6E57021DA6F3356EA54E924799ED6827A1F311C0A340280AC21B110EA33809CE3744AC4539E4E912F4A99066C26D3F047AC87CCDC55529E710517FF042A893848D5ACB44191C6057A4659427A7C2345E9005135BB3856733320CA4C031C3B86AA83CDA29F40467D5306DC0142132F1A844466ABC1B28D94B4D1B98AD5FF80886B38D2A15505E8CC24D9B3273039C2BABAF8380568A1136610BA3CE49ADD830785A1780EB67B6DD628F718CA7F1BCCA357A1531999D96556515CB680E153C98281DE817AE5F4762C03952C74A8A973993FD778F49C38B59838F793C71BDDA96FB8A4007F1069E6378E7F0B4AE2B890DC84294627A10039D7A46B3C705493C6471B3CC9CA2535FB8CB19798B7D4D562EA33869383B28FF7B9462124070A1C17CD4B2BF4A622E054A1CC29BB177048A62BA8FE66FBA75CCA14048DA8A41C2E3A13DA8AB593C14D0B295B1B587AFF8778823AD2CE3644DE2B236BC144AA4C5C2DC697AE3C681AC10B5F53CA1D84334A7908C48BB7F5C93388186860C781BC483B1975219D24677487161B15407E52FAF51919BEB32B6C3BB1FE993EB15A4AF84A64ABA7D794252FAE6785B1054C24AA6B249840B08B3FD47A275D1A0930B2CA6E8B0D4B498628418AF01AEC4C049EFF55A576123C1E58DAFC5B00C2373ADB7CD62120B9A69541084100FE44776D3078D66B143B7536888C4128A2A637C66D270C0BE49C99F1241A951C413409D16CC653715B88E869216EA42FF505ED71C550848A98315C84550CE83BCC750E4CDB8084F882A29A5A0CB6048B5CEA41B9B8C2FB3C949FB928770E411DED9902774B529320F768445349A310C727F2012678F44967F37B0A7CC3D4AF05FB285A82CA568E88C87168B14A84B90BC6297BCE393AEC894D7B464852BBC55F3C85F447980C904BF067F9CF55C756A6967B95BC4A08427A8C9D3AA6EA8913BF47A823F0050DE189C7AAB2DBB040129F40B5A885CAF20281E39C178A79729072AD360876ED670C192912095A01E19AF47F11C30A44AF6165ECF290F885998B9CB4FFCB1B7D71C7A4C21C0ACFC8F9A942B7BB266C49A528A28732F65B4038BB7DC2670EF20CDE470BD142A836BEA52DC4460C0E01D1EF06E7E7775E9A888CDB8C2E6A6078BA3126572886BB091A14735158B4AEFF26A852B6B400698434C61031540FEA976B523627E1C11F5E14C5D5C878C607AFAD79E425B62D5A56530BB6BF889581045CC4839857EA16BD9775AAD3609D5287AAE66C60F916DF54C88E8F291D8019C6A4861D2D68EDEC96A19E9911A49A043086247B37B8CA9A8C16B8C9147016C9CB2018305DE8321F4D0C158FA2452347C78A376F399780E59A5A4E1C8BB793FA14CAC662732805146D2EA5CD67196257362922A81E2177AE5289F2BCA3D6B2B0168A263C642CF8E2A3CE8577151ABA48B828FD70670F45399FB897E85B45AFF5F477504DF1B1894FEE3E6BBF8218590936E0102DCE8ADF459D590355576E1F475DA2EC982C47D91B24BB5EC6C51910530EEC26F38541B173B38927D23C568D3698490455837FE52948613EE5FC2284F00B130C72334B1D8E68C7B09B2DE2E +encap_coins = 1D0144EA8AA44C56C084F3D692D40EE9ACCA9835F74E2DB60116DB3669C8EF73 +ct = 5035A8DB407366BD04D80BDE74E490815F5096101FA7D8B9828909FFF86DDAA995949FA4555DA8A16FD12131DF0FB2A7411D9846557A79E58885223171AC268BFE1E69F6256DC8B00950D325EEFE2F6A81511854762A91F784F2E31FF8BB3A224F721E0C64B41C78D29F8D90B5E1585293D86A745BAD181D37203401269F8624A8AE8A0607FF53AC8BF6F4BCB9756219F3B593B9FE9FA733BF8DDEA3F03F08C1CE104B009DF57D5250555A99D49E6A6F40CC64F4454B16DC459FD941F378945E19EEE2806EE5BA773BBFA75CBC5CA6439DFC2C6D1DB2CB131228DFC3717D8AE1BAD4FA5121329775178E1331543DBAE70AF015D9B7BEB90F36BEC3BA5062FCF9C0BF9767731E6BDA8E4CD54710D54168C893CFCBA6AF059CB43F77BB5E6629FAA33BC588DB4222FCFB458521C49025316C06F3FF542552EDBE6E65E5821EA4D564225B974D25F27B78AF60F2E165E843DD6CB5552DF01C29D23381DB6CAE6CA03DB39F528E1F24FADDEB0D1F356F4A35B21E48CC503B52AFAEEE7993995C3EC017F0FB21B76F75B261043BD42DCA2567087DEE40320B657A381F6275FA054A1BC15ACDF1F51F53A23DFF82E86DBC0D7E623252529A3469D3C93C3F3EE0700AE8DC0D0A215B3D004B6855AE67B57201391545CC7C68DA55134F475699E351CB28D44FD1EAAE04D92097566D714434E253048681CEFA391C0B33C0729D1F1369909BAC4E76BA4E30A24945C4C53AAE4B7F5821953B7E727F6F37D6A36C68D0527A865C8AB3E02CA767751935BE9DD935951A089B6580DF4491AFAF9576CF069DFB7C5AF167BEB234525B4991AA532BB64345A72DDD94C54EB3331DACDD3D9DC3DAE130E06ECA448C4580D9779D177461459DF14752D8C2F741D42FF5BAF04E97C056B9A573F903548925408CAFE729BCAA237B76426DAAF39D70E7A1181168C15A0A94CFD238A3E2D95F46D3E57686D8B37413E021AE69A024A24225C6D87E01520FD0434E8F84185DC0D9027E789577DB871A10EDAF1BA6DD7A49A0B6E1FCB3769E12F90F6C72AC1E0D38F365043A070213A1B38DFB20F8C8CB7E5705F8A2096AE31449A83D4CF66A3E010DB3348D7A13E119C5857290A8173DDB2425748ED2FD364D8A6B7ECDFC204B79C09AF4493B7373C56C60E1DFBF2A3D0499A1C66E3DF18BCE2F2EF40BC71899946428236EF07F3AB3453FBF42DA70C608037C1722FD8EF1053B9A9CF85455C48FFDAE0679414779E5F9609922B16D0D984F77EBF4FEAB8700E45B5312A938F1BBFEDBC2B69615A6262F28C48EA19C598DCD8E57B229A3F2BADCFB3CC431481BDDF87778CE668CEA9A6E7A7B680EA57BEE8E537FC4EDD42A1FBA6BD8713F6A65F47FE352A2CCED78C50E49011604EC6DECC9BACD47FC866B153498D0347BB272AB9C401F3744FD4C622BE7D4E028429193B63ECE754F73DEF424F3386C2333F9605A3DC330F1F5ABDE45B843C35575500840C1A0B00100FC0566F93ED294E2AC3FF61C170852232E38CAB41939BCE7A4101445B0CA7CC6042066D2AE45C1779B4B64C81529BBF338FFB34ADD7BBA79E954723947D067101C38B6CFBADF8E5E99879991DA1F9D47F571A3159149A06A07849244EAF797B733D79BA258E0790D3B79815FA087E158952710BBFFD6217BB3EC31DC9C88FF8657E1C98A8F6F0481A5D54A9E24A87195B2E7B727C8CA6CC18C334156CB91A6778E0C28C991393FC315464C2650451A87E768D81577298C652CFBD669FB7A7E6380BF72F0A92B2DD5C2D925EA693514A343C83558DE4399E6406B3FDE3081A4D1816A03EE08ACDEA36D8413D798CBBE50C07F8B136A918B8133BAB96BA04F82331D49DBA2ED855B55C0B40C2574C59AD8A6DC13E90D0D6A08EB654334503820BEAB57BD54C2B9959BA83D4E22EE4AA2AF1C68C5D149C78B9D1D1007521626B7C327F885805CBBA57B6E6A76056526B35957D1D7F1A2FCB4D456171A6AE29B92CC9674C41C270C414A1DC4A4CC4949B31F54F90E9A949B9D5A3F305ADCB03D9B6DC725CFAABD2E7C56E5B850B044D1FB30FE75BD2C2310E7DD6733A3C28BBD0BBEC7A6566B2EADEA2F92B2906A9558242D438EC1960B49C6BC37E2CAA035A305AD04F84F349D131629A0CB23C6863D825A2A2120D8CD48F6D64C267D75C3F5AB42D084A7EDAA7BD41324AE4890FF2401CC0AB8C5A7E161552C68051A75D6BBDDEE +ss = 0807B47CCC3B83052DE50B828B05CE56989EA70CF7EBEF5AD82B27057D744F59 + +count = 95 +keypair_coins = 527FB88C8BD9A4D6031DAD15E63878ABD2B559E7E08D61F69E8E78FCA964EE6A229EF54E776C02586F3F46D723E7932215FB7E09C397D1552CDFE3457241FC30 +pk = BC859F23D76DA58B31D2677F9DE1841E50C263257B04D84419C3892D590B286088E35B9ED4A57257AB09286934A0E63326876EACB60FCE3B9642019560A5646F522FBDF34DBFC8599829105222193903C97101A8DD4806788A8ECC223EAC5206A8706F38AAA4DFC87181AB07E37BC3106590FE18996E5B88FDA7AF242AA56E42CAC7113392317604CC89E1F067896755EAD0CBFA201775329D2C8804F485CF61CABFE35A33CFBBA7D2426AD2F59A98625315633B0424AB2F2326FA8488FA92895EE08EDBF32F6E318DD22A5719D3C4782BC1787873E93773B310CA9B036680BA69ACD75036952A330ABBEDFC5477545AE7B09B6F3467A900083D4677C6B5C0DCDB9886F26B1C9B6E180B8F5020AE1A68B9ECC3A154A084A365A9035841700966CCA311C09B13FDEB4DA6517C9C3A9C3CD9C336607A53F1972856B161B2878C5689E8EA7124CB768FB48EFD92489A1BB3660422BCF72CCBBCBF0D7383EF47586863870620C025D6B65CD5C861234194448A021417CD28474743A5F9D34C3CB6AF9AF96A332A3CA21CAECDD89939395997A39466B528B2FA2EAFC943B861C78666A94E1091EFE4AE69010F0A139CD9984BE6F23A237CBC1345A53FB0489FEC34CEBA3874F631F4A34598A7BEE966225E2B251ADA212B9365BFA2613BC4B2E0962493C0C461361FE555AD61BC6DD54B844114781FD37291B7C3E7090CEA1A20C86B3637011493332925F503B4AC6FB625CA41601995869443DA8D82B81412012DCFE22EBA66072A9CBF65F34294B4C85FFABCAC3358FD6193C8DC1706C05E123B10445BAA34C6616863807551BD33546ED39112F49C371AD31C82EA6DB593A173884D005A0A5184417D5A16EC87225BAC3728530EA21913B6B05283A4C078950CA84B73E417CD1878B1AC9388241C3E006D5C0B1148DB78B319293707D92210622CCE348E5C0572ECD7718BEC7F6C644680BB2A6BBA55D412776303B8B5CC2603356A7F685095DA747A3480DAE39537780188E264EFB88BDB8C82CFAAB5586B3629410BDF2274E8E2B76673C700C45FDEF297778CB8DBC4BCEC24C349170B39F96A5E3C6EE7D1C8DA58357398A5F0202743339AA7EB74E0A5B8542909C29A8337E6083E3663DF918C6A85246769B01403BB24C25C27DC8A4841166A86698EEC30F049A80F786F6FA29CC8F7414517429F4AA76421CC8CAB09874BAE0F9999F0A846FA742D8D087BCD929D42E89F994BA2D421058B429E24C753436B908833C2B4365047DA4825EBA955E9C5DE3A02C11C3C8E214416F2A8EFE6B3AD033BC9ACB992D77D8D340C69CB97CD59C7A5B127C6B46A51267B2471031166815C105914590C2AEBAEE9A9286D7C7D10B42C80077DDAB4BA9BAAC51FD2512B481D1B1713AD4136B1A4A375959710A156FDECCCE7A2C7DBF2CE57A9520B7C9509075BEE4C5F4E3A2B45A748BFE210C88BA484556299511C10F762C162BD0114433DD1913F628540571C04F79490C30ADE20434341B59E2BC66F489058D0AA2F14575942299783CAF2E7B40D2A7BC10A150A6B0B1FA2A8FFB9631909BFC41C911A269859E458B7C36704E3B552EC8276E855C95B25066A85D1896123DB2297A75FDAA015A60942EC7266F8D00511A1603FCB2E6D533E3FC7C126D2753B9704ED2C5608A226CFF698A8FA53F9746EEAB1C51796BE3C013C44F0AD8EC2037E75369877C4D63A1FBA7AC534F4B6852068AB973E1D9B96BE70CC21659971C90AA7793E51A517F3108A2FF24FD3541CBB89B75786A546B346DDC92AB5EB93227057F0FB76E1554C0CF19BF0D08E33FB1ABCFB71C1A0779A91A42AF586CB27A9304A75E9604211640BE36739FDE51F2D9107FEC20FBCE665A45A1AEB76403958B94F23ABE59C315CE9699203681167C379AC3F0F956070D73CABA5BDF50C153E941158F2202DE5857B834E3E553F7945398BCC70EE00CCE8EC15296B2364393085F2821D36CE6F04B0B336BBA762C387C69280BB4FFF179EEF54B925D99176167F4F916E2BFCB945A1BAB4E5398A03C17C79992848BDEFAC5FAE4667D37C75BAE231D424381C39722FBA787765B3005699B7B08D2785805D476679E29372B619E3568EB263C2AAD8C891CA561271CB5868B5971445E1CC2E2F1A11E44C0A798C37250CA802EB4502D86DB3CD5D09045252960A068412F1BD67B83A217049D0685EC3D63D691559A327B2 +sk = A680635121C694AC4672C809BB3B913E8CA2F659C756DB1D7BB2369F41AB4AC9B3F5141216F3C997B00DCDE37352D46463F371FEC14B26AAB239498D44975F787504815552E727329DD78428F5568B912C76B572AD9B3D335A9F5BC0283C76AEF8D81369A0CEB4523BDC4BB0607C29D9998962F76B217774D74A3453A61FF1F40F89A51365212F39A07E913824BF36B6DBF6C8934014DD8716E998A982B124AED8B082C3A2998708BC1C4733773B73E0BE315203E8E264A032797280CA0AB023A9D81FBF0565F491837CF031E219084B640EE8710589E05E1701870BDB7BF0B0BB539A0B3AB0028447110288C1D7D83F89578413A46B0B04406657B4E7E5A6D04BBB91055BECC8AB907CA9647C4B8B144045B6CABCB974A47A35308A23E9C9281C61C556EC148C9A663AD9518CEA36AAEC71B6995110FC01CB66B75E128478280FCD31A3416A12E28C15BA617574730437DA8BDFB86B58D88C789C4F9E23ADCEE53B170C6A0B80033AD52CFE1A155EA1A568F5B2EF77AB74878E0CE42A1F7C3C845713D17105AB2C91B83836E11B9858A66997B22E8A67682588CA78E6B6D736298EE34B100BCE61E0AD921A9F020A7032351DAED655D35B3659A96B32DB9E68D882FC986DA904408A98C469A84CD29CC999B2B071F84C921C585B9B3233C5BEDF82637BB1253A4B29B36B42B54751DC629A215656AA1890C0C56E0CB62A3C02252B771D72375A60374BF8D84552080E0D456579930B3F2A2A3B7913C031112FABACAEF75BB2DA5202D7671359282CB4707B52740D9CA06AB7034B48A292404D26B6CFD08C8B0DA61550044069F4CF27488C028001F2C29292840B60B321DE5CBDEF1CA216838091C3172ED26D141C957DD93BB6A59D9E883640D87A2A85605A9730DD5333843805374B58747C7262D5A65EF442D6843DEB731C943269B4A9BF00F39B4A3847840C1BF4B9907FD7B9A66C5DA724CEC467102F080D4D0BC519D0B2504A05F7207EDCE7398D009348F64267E01B0EC207780791942565AEB061BF03719D706F87953C4757A75A126EAD15C6C9447C02938C3B75A58AB25CE65A5CAA21898FA8050319880223899F5546E0D253DF7950691B86F8E3115438C3B80CC2E7A6178A96A0F38A0CC47394BE36C9B0721580D646A89B9327210D40728F4BC4ADBD8B130EECCCF528A5A09595F32C0F64E602F6898B8A4C82D79A8ED31C4172A7812C295C93841929B782B334490EEAA38C17CB4E77664306BC7B01726EC656E24311C51B0524C72F0745665D43073604C59EC88DF6FC9EE2F2A0476079BCFB735E562F57E2B0E1987A0220C98F0B4CDEBC70F93CA709C5C2FAC7098A7B866662ACCDF09C85974D7C88CE9AFB01F48276EE320D70C7C0E15950FC0775E13173B60555A470302D0A0047260E5CF85EA2F3C326968D3C308C15EB400B13BCAAA65EBF941EF59A069BA0BD3D00841B6124574303BA8C2BC9F90F107865882C18EBA462F6B09EAEE05796E43A8647C59C64B7A8DB9C0941299280AF728B872C303755B682A3EC10C5876F040543BBA028E870C02A4312AEE9CF2BD1302DF80BD0FACBD0765A778A7FA2D3A4C9675965D6799FC7BD4E28A4E2A53948790234F62BE0F0AF0CB460F782A85D7488C0B9706DE1C667F41BD67B9D43FC33647BCFD1E5BB6E2AA92E653764640A6D59A8271BB278160C9A153C98247B376069CDF349EF76C20A8867892258C21923621A4828A39FC6B72443A467A4590BCB0295AF866F04791B005D0659143C54A4295CC883DB27CA9C5190388B84F8E41AA85924E73025A7B7932D834074A39AEB92BA5079CB6BA77A94FA2F7D305E6421CDD093582868B1E7B90348E04875B837466A174923ACF40972ABE89A77FBCC32810A0E400A5D0C1E57E62AD581204DB84B63D522CFB6423429647CD32544339101DB3CE037C15FF6C26FC012D2DC05B76A35C5FCA7AD284AD04B4696807C95E0C9ABD0228487493244A86D713A4B4B13978C538EE77414B354B30548FEA56395220FA60467249B13C59A50C20888AE5998AFD287A8C1179DFA5610F5987F6021043B7CF6D749E3AC2FD6D58B3E9C78F5EA88D0C691BD2544AA591407484CD638864BFA49AE75BBE2143216C1AA76278CC3BA3F95B413EDE648D883B825039D2AAA1539173DBC859F23D76DA58B31D2677F9DE1841E50C263257B04D84419C3892D590B286088E35B9ED4A57257AB09286934A0E63326876EACB60FCE3B9642019560A5646F522FBDF34DBFC8599829105222193903C97101A8DD4806788A8ECC223EAC5206A8706F38AAA4DFC87181AB07E37BC3106590FE18996E5B88FDA7AF242AA56E42CAC7113392317604CC89E1F067896755EAD0CBFA201775329D2C8804F485CF61CABFE35A33CFBBA7D2426AD2F59A98625315633B0424AB2F2326FA8488FA92895EE08EDBF32F6E318DD22A5719D3C4782BC1787873E93773B310CA9B036680BA69ACD75036952A330ABBEDFC5477545AE7B09B6F3467A900083D4677C6B5C0DCDB9886F26B1C9B6E180B8F5020AE1A68B9ECC3A154A084A365A9035841700966CCA311C09B13FDEB4DA6517C9C3A9C3CD9C336607A53F1972856B161B2878C5689E8EA7124CB768FB48EFD92489A1BB3660422BCF72CCBBCBF0D7383EF47586863870620C025D6B65CD5C861234194448A021417CD28474743A5F9D34C3CB6AF9AF96A332A3CA21CAECDD89939395997A39466B528B2FA2EAFC943B861C78666A94E1091EFE4AE69010F0A139CD9984BE6F23A237CBC1345A53FB0489FEC34CEBA3874F631F4A34598A7BEE966225E2B251ADA212B9365BFA2613BC4B2E0962493C0C461361FE555AD61BC6DD54B844114781FD37291B7C3E7090CEA1A20C86B3637011493332925F503B4AC6FB625CA41601995869443DA8D82B81412012DCFE22EBA66072A9CBF65F34294B4C85FFABCAC3358FD6193C8DC1706C05E123B10445BAA34C6616863807551BD33546ED39112F49C371AD31C82EA6DB593A173884D005A0A5184417D5A16EC87225BAC3728530EA21913B6B05283A4C078950CA84B73E417CD1878B1AC9388241C3E006D5C0B1148DB78B319293707D92210622CCE348E5C0572ECD7718BEC7F6C644680BB2A6BBA55D412776303B8B5CC2603356A7F685095DA747A3480DAE39537780188E264EFB88BDB8C82CFAAB5586B3629410BDF2274E8E2B76673C700C45FDEF297778CB8DBC4BCEC24C349170B39F96A5E3C6EE7D1C8DA58357398A5F0202743339AA7EB74E0A5B8542909C29A8337E6083E3663DF918C6A85246769B01403BB24C25C27DC8A4841166A86698EEC30F049A80F786F6FA29CC8F7414517429F4AA76421CC8CAB09874BAE0F9999F0A846FA742D8D087BCD929D42E89F994BA2D421058B429E24C753436B908833C2B4365047DA4825EBA955E9C5DE3A02C11C3C8E214416F2A8EFE6B3AD033BC9ACB992D77D8D340C69CB97CD59C7A5B127C6B46A51267B2471031166815C105914590C2AEBAEE9A9286D7C7D10B42C80077DDAB4BA9BAAC51FD2512B481D1B1713AD4136B1A4A375959710A156FDECCCE7A2C7DBF2CE57A9520B7C9509075BEE4C5F4E3A2B45A748BFE210C88BA484556299511C10F762C162BD0114433DD1913F628540571C04F79490C30ADE20434341B59E2BC66F489058D0AA2F14575942299783CAF2E7B40D2A7BC10A150A6B0B1FA2A8FFB9631909BFC41C911A269859E458B7C36704E3B552EC8276E855C95B25066A85D1896123DB2297A75FDAA015A60942EC7266F8D00511A1603FCB2E6D533E3FC7C126D2753B9704ED2C5608A226CFF698A8FA53F9746EEAB1C51796BE3C013C44F0AD8EC2037E75369877C4D63A1FBA7AC534F4B6852068AB973E1D9B96BE70CC21659971C90AA7793E51A517F3108A2FF24FD3541CBB89B75786A546B346DDC92AB5EB93227057F0FB76E1554C0CF19BF0D08E33FB1ABCFB71C1A0779A91A42AF586CB27A9304A75E9604211640BE36739FDE51F2D9107FEC20FBCE665A45A1AEB76403958B94F23ABE59C315CE9699203681167C379AC3F0F956070D73CABA5BDF50C153E941158F2202DE5857B834E3E553F7945398BCC70EE00CCE8EC15296B2364393085F2821D36CE6F04B0B336BBA762C387C69280BB4FFF179EEF54B925D99176167F4F916E2BFCB945A1BAB4E5398A03C17C79992848BDEFAC5FAE4667D37C75BAE231D424381C39722FBA787765B3005699B7B08D2785805D476679E29372B619E3568EB263C2AAD8C891CA561271CB5868B5971445E1CC2E2F1A11E44C0A798C37250CA802EB4502D86DB3CD5D09045252960A068412F1BD67B83A217049D0685EC3D63D691559A327B22B22F73A770CBDB80DA84F97F27A14C5DF5B3372D52503D3A20C3CB2BEA8B404229EF54E776C02586F3F46D723E7932215FB7E09C397D1552CDFE3457241FC30 +encap_coins = 1407C5B3005F98C64400FE2201F1A2B77B378FBC8141F175AB2D1C2A58846693 +ct = AF4A1549EA7648C3B1D2CCD87943AF70B875D553A4B2C4F9853B408FA4BEAE90B33F330253943DF81A8921E795AC6B24015D2E8A2B8FBB5293A8C96DD446AA707B19373BC26A632190FD96EB60768A14B60CB0313BA0AA960F621946C81C8A7E2BDA3C1155CC76048028137B2DDF3C3C79B930682994C409B4D91CF26E955BCA8AEE4E460B674479C68529E91B5E04E6E5C1DDCE504C116B571F1BBD9012C8447F6646326DC94E49981FE3452119146B33FD7F64FF52D252E3116D28AECD9798CC1E716C5D3E3D37D2CD15D334A4B121D0858E80B703053A2A17D3C170F67123DBBCBB2A2DDC8A1B6B90F4E66C2828F675A4CB2BD0CC8C22B22EA8900BB862C8479EC1336FE62307E9C661064CFBC77F70055F07DEAE7BAF9BFB7547DDCEBA13C63180150168D6C0F7B16CA53A208C1D5974E82AC948A118B5E972EF8629E2AFB0D0A829FC9CDC3FBE7ED71A22AD2C96756C3E71BA5242B7A178E4BBBC88E5BF50B6DEC71476792479FDF5DDA9D120D6E520C1BD9703B41D972F8F1FE7A40B49A910DC6EB568ADAAA04C221E8E24540552CF13356B03C72232B765E131781BD9F307277C8148AC82DFBE0E32FBEFA1A41BF74832C0E1B22EF419BB1EFD2DB7A23E4BF7C42D11C88F7984F39E3BB34AB7BFB2A2DEC313D4B4203814F4A070B505F17FC5EAD07EE110653EED7D3ED96A75A2989B793DF72DB078F34E318BAAE59E5263C131AB42915E5EF535C564A47A9617CD7278CE10D4580C5426B9C10C76107A262B17144FB12238201F31583A36E1D2845472F4AB522560F5A1A732BE8FC03E007DE7F168745FFDED1F00E9CAA55DFD2D969F5E439AD98F08D0BF6A897602EA5B57618EC0566166A1C314904392A490F9454EA13B7BA5534FA2582FC9E1D20C96CE248BF0067F9E02FEE30B5F2E26E425453F1A76401A3DA79A37F70A7B4C5FD3166F798F192D54928871705AD97D6AE8DC490CF33069D266E64B8E173C6253D3A82484B338F3176EC74383F0B56DFC421F4E53EB7E5F11E04004EF53745EDDEDFBB42074A63ED9735937DB428C0AC666D6BAB6600B8AEA8AED3065E0FB0E9C201F2805ABE2FA62984D5BFBD584D97E0BFCB0917D46F0C412E7C2400EC33F9BCDFADCF5B51979EA765F1B33F5AEF5BB29FB07DAE7DB1305A7E7D4740A096238A14F3D0DDAF3C8B8EE17A52AA659CD00A59002D332E6DCCA05284B3D1E5D4B1B46FB03C4ACDE60286568CDA0C32A08CBCD69B59360B518F3D67F09D121B9B3A26B068D5A74DD59902D059220CE96AF6A1532ACCA58D46C500ADF07EFA033ACDDA23C2624646AE52F202D2A42CB4680B7AB310889E208040DC296C1D3893728C25A28037C2E41F15B652B99FBF25FB141EC0FD2A6DF590C8441EA09D6AD5D32A2DA1049025180BCC9012D025178010934679ACF7F0AD1D02994560653A1452F52ED4F7ACD5029156EE48A6A52BCEED24C120D10816F825766476AF10285FD94BB316CD84863E3A03DB02BD0B333BC888FA761D3DE8C3857BDFEF186ED61EF37324262CCD8AAD18E3B4066C0DF323812598143106CED04E4984F6AFC1325645E9D3FA42FBD454D97F9CA72C8E8A4BF312F5446E37D82F5C0B1A822E06E111A0BD475A339A086E28F594481EA2C77E01B94CE24878B7BD73C99B5E0DEFD5E033A5FCC75B6D3667C8A57E34127E504762E56356ABC2FA914DA8A4AB94AF0AE8877E92582E9D33A4B4ECF6A0EBD6ECCE3D26D6238644A084089DB94ED6F77BFB60D25860BAB15C039076436E0C7A0CF570A7188703D73E21A9EF34A90E4B70F66C825E275F69BF1F683BDA47292C003FD26939933ABDB1EB09707B4D98E16723B80F5FC445460C58A7A93A60B3CE1B56BE9346A9CA4D1B1C0FAE9CEC0827DBD637EBE7228E3737762E684BE96C77848FD0EC8A291418DC7AF5F83077F97C2B0D5D7B64328B29A86F763ADAE02CEC063708953A27DC4F036DE6066C2D28978C05369AB40038562B7844378D7E95D72FFC47252FFAA2CB893AD3002C7B08C70B70AA4596DDFBB467E68B3470CE1682F216C9F45C0F82B246D8E5B0F75813B3407A4D3C931B1366170AAEF72480DE13A0C27C06AAE284BB15950003172DC9F65AB29485F87B7C1BD15722B21452E79BCDA849B3FCE8A7479B7D4FC5C20D92F73ABEFF903DD577F5C598EAFD7828B077A84D1DA1A67BED336EA25E443F4439F90FD13B6 +ss = 82973C6F4B8BB56120B94D7EEE66321BBFCB4EF0EB2A589DA72B0CD58A5859D4 + +count = 96 +keypair_coins = AC6FCFAEEEF795B6EF9E062F02BF42975FA01E7D91BA832F74E05269A72684D066BBD48DEEA2A0A14BCAA97E18D848E609339DC39BCECCE7077F2D7432DA536E +pk = DE90503D536A810BC927784AAC5B15FEDA774ED1B0550B7A7E656817866881A2A4EF682462E75391298F75F2061C70141AA682D50787162A6DCD853971665C9609BBD90AB833367A44A0286D860C04057C8ED7797712AFFA2557E2DB46B546390F3163F05316AA8A12A7D49C4FE03337CB9A7218739DDB184C1304530667B9B54441015B9F8501F902BC2F3000A4855E68D7350E83728765057959662504331D5026C8D52088593D0ACC1F39E74A7FA59B959967073BB14DE163D73308C276AC0E6BC26E1C165B873E46972B72FC214544317C31556A76C09588C45E4762A1B43C7EA2A9DD238AC6E39E9CEBAA1945544FD8702D7066D329C89656499E6C8264CA1BE481AC792C5A52188E8A954C06A96E13604E2EC0242C78BDC7763359A47C2C5C4F7762819504740C043B2A5BC8DB00CC4AA9A8C6354DF515BA7D7039F0268637430067B81284F866BDDA366A8C25C3808AF025561F24BBF8671305BA3AED330898F18B854C501549AA9A1C68DCF1071AF689F3C4A46B19709CF02BBCB07F65B44E9F9385C94C4385D88F8B502CA9E19A246498646BCFA1308F8A6C45638A0DF58668F55A3D30440453C36875B0AA1B5967E617A296D284C4E2828B64B83FB176156BA7FE864007414C3EB247C4063ACDD61B4E5C42B9147044B6916FA9BE1D25BA71A035D766BF4C1C336B836B512A23549BBC53E1A8FADA8246B41CF93604BC9B792868734FA755B06A7821E688CE17C9A00C7F9FD724DD494B070B9D4FB0A2963CCF41777F86BA3B318A1EA543913D5A653F073B34C64980E02CBE17CDBA5A286443677A152B0DA21EE54991F34B758B87A3CB690858F29A003031E8A99964F3A904023404CA51D730957F34A0BEB402169A6BF7163963D87D9C6159B8E342CD8738C945B832B698655071286338B67B372A067305E5299043C884B4AC6F624D06F1167003CD5659B68F36BCCDE8B37C817DB27870DD196135B21849843835EC1EFED74AF31A3BFC6CC33A988322622E2841799635084AABA1ECA13B61BA765466B05C742279067C5A1A1355737C84199932660B15E1C124F5718E86A8953A0EA5182299A8A4C4A82F91AA901F40A64C2C1457864F0BEB17F5B6733FDB8FA9A04D9ED1480DBB2EBE1B8A37917ED30257CEB062D4B3CAAC11CC1283542B6A711A737C64981AFA7CC0DFF00C7019AE2169BAD10A6F60F094020B7B422B006135B65110076DA0AC1E9B8F354A46200B3D58113953197E7A942671E3CA61C17F4256737DC71B12291EAE2626EC136B6898047427525290A62380B2B246AD86AB59B12499C77936F816CDF15C5873147E37A71A2993AA11042CC83CA7B7656FF35429795A9BA01075D670A464B33E368B70CE7B484E864EFA8B890892B8648461A61B75BD7455979325755292576878D0F94728FC2433C1C04AD8B52E55C93F36C564630C7CDA98C29631B9939E64D86A8BE9CEAE4BAFE668399B287226B59807F51FCE23361E2ABDB21A0803F4AF1DFC8B55A594E746B241AB0BBA37B285666DE8431BD3E28C7D6B64E7E1377364C75C1A1B6B8147D91074CD862DED548788D825BDE070EDE391B0A794FEF56231F36B7C451D25DB6419E761E700B080DB345C613226D38895D55889B10754B9706C33144805325C3295359CA2AB758DD321154CE457B9734EBE32C02546A7556B599733C036060631D5B4FF6C57A1B6C5065B80A691CBF3C604DCF49D914853C87B6758A58D56E406C04230548954242AA799E0532ACBBDB9D9A50DC2BAB0C91B0268BD2F0427717BC5B9456895C1660CAB6C312549A8F15DF9C7957B1A9F3C00A7487A812D429BB8F232B559A5DAF57C27A96A99327A39F5B1EC95B4161316F1A27AB2470A162231A93761CCC64689D430D4872ACF18A4EF71C0B6EBB3D552B2BF4ABB43D70576C9A67C3647D5919BE77A0AF046BC6580BF05B109A66256A21BA44C45C516212AEADB7594FC6CA17BC436102EF3D99722FB3BBB0BB39C9A1C14085CCFF8B57140488270C165A8ABE44333999A383C83BF1BDC6CF63258908ABE715BB383C385FC26635283AF0853B3E533CC6CC95591C08FCFF360FC6B506B861444B3B328045270B001A481662BC847FD15924F5744E359C18514A909CA163FECC8A1521C1B2955AB7917E343C452FC489FE06B5FC03DC21F6D925B9F6D92FFF175C9DD625BFAF502B4E2870961858852 +sk = CF8293B02A9A6F579F51066BD6E51ABD270104634CFD482823102F2B63B18A8BB4F45A5AF4D8202523CC1779B44FD283860BD004307C399CA5D8EACADE156AF824A988F5AC6BB50EAFA6177A95B9752C922BD6A7C4265A6A88B11D0403E47127B1E80787742669E763929483393CAD6EF91F18143E9D2B7CD3E028C6F56B91768113259BCAB926A082A2A6185A1BF18656448A628258E21A3C6CCA23449B4F9483AE9D01BDD4BC674E06566300AD2A215809E547E2626F8D9437BAA727F3F05C31E85E4D34643148981BB6A82C3C75099A33A0E7528D45303D98223E1A4EF6536170F53A0C61004BEB75FA34B8AED5156E4A538269775808283CB0BA5282607D50661D2A626FAC2737C98CF33050353BB83E1C1136F1C26FE48D81973EB974AB1BA4B97C95C0DEE065523430CC06620DEBBA3DB92888497658BC5C64B98BE65AB2A0738F0750022B95A66C583354A63865B5237FE7098D279C53F731F3FCAE8689754194A7B888199B89761FD09FF75677B2C500D7359905E76357163834712659F26D0D8C9B47192404975CFB89969A77615D1A3FB404BAAA54511FF1B3B08C1577EB274F5B3B0B825434E87F60D18FA73141F912701A99A7C11305000789229A144A0899685596AA646F13573EBA0B54DD3205DE2C60C3CA1614066474B89F2377994BD14EE0A77E1D4C0AF77748C1E623CB8947A98636694C4EFAF0CE2BF779C66A317989A335A0071505831471C8D845A5FA4B3E42D195074244F70578124C4C7894AB84584DAEC8C13A6598524C023CA99F4C0499A68ACA3E6827798B10EF9A4639605E2FE8656606438274AC8ED8C87AE0A16BA3B8E5857A7F25831D8B85BC7105828575320C6BABA75489455154B31E50074A313BA9AD10B747F39405544F44949DDE165070C8271F1BA80E57BB5BD1320C8A1F8FB47354079532BBA51282AE3197026E18C46AE6B2AB9940EABA9F1EE421592770C9A9604263A4917C825C084C3534381F22C057592DD97940ADB1A439D5128CF795CDD25640FA9229220A1CE4A6624CC9956105465246334C77FFCB9907159461CB1416637D8DF34AB4B401413C27B6D5A1D23331F88273222653ADF9685A614BEC9840355B1A23A0C4CE60B0B678AFFED200BCB383BEC2580C89127B2870745C15570BA1CEC89F5DCCC47BE517BB020C57959E433C11DF10810D5B37AA8AB3392B3358793246F11ECE238646724BEB859C861463C42B5030D9A1FDBA3E1D391F9CA5A99DF58A7948C66FA2B50864B73A40B52DC7CFF031B3A3B21009268CD5CB00A89B44C156333B802AD03B2F07F70F7C11057CE78705AB6EE43681AFF0874030807412A7743399CAE832F6F3B65DF56AB1B30D6967379E10B4EF53B9EFB5632A23B942F832A7FA22CDE494B0C7393D51AC807A38AF119D526A5A3B91068E107812269EC85410AA739C288C20446B68880343F2E12157094DD424A349D1523E76C0ACB9C29C22B6346386B522B0466BC8A85B97430A1DF80850510C4825EC4F2AAB987C4A07F11693E7BBB4662A4890A3C54EBC0CBBD75CA468428E38276E81C43D81A8D0E3BDBEBAC9AEB89FC9D7870BB88C5C16A137C41FEE75640774C4B536BB1D7BBCE797847CF84043D49019E92FE9E9808F25990F79B52A4445CA842057B02418964FA53478ED974E781901825A3B33E0333C64C765857C97120BDDAB43A6154336C0A1BCA4AE0AAACB3EABB4CA06928F351B21C99D40F533F3059A87A8AC7FFC5F37BC2B3722118A9AA945C935955809F1095EEDBB252FA1264D37666596C771A663EAB836FE703150236B769C07E23A9BDF43886A265101C20C8715057D281A7B0699DF7C7A1B4055E29945952027A06454E9295B89CA0A8C873F7EB86A39E83176E0CFCA61B333E32EA658120E417D65FA9F23E3B634E8A3430220ED775155E0084B9713BF2920AADC2DE53905A030AC5CFC4405960772F5354BC20EC760301EB77C1EFACD29878306699954AC96BCDBBCBB1642811CB18E7B96D16540A8394574A85D0AD6C4F53025B790685DCCA38CB95F95FCBBF5240AE18A3913365A4F96A8A77839E1A269F7B94B3DC58F6AD94BC4F15409F775685016340C03521218DF1C68FD554D0902B05F935EA20C6BA835112E408D2A756581D8BBB8ECC463761C722794DE90503D536A810BC927784AAC5B15FEDA774ED1B0550B7A7E656817866881A2A4EF682462E75391298F75F2061C70141AA682D50787162A6DCD853971665C9609BBD90AB833367A44A0286D860C04057C8ED7797712AFFA2557E2DB46B546390F3163F05316AA8A12A7D49C4FE03337CB9A7218739DDB184C1304530667B9B54441015B9F8501F902BC2F3000A4855E68D7350E83728765057959662504331D5026C8D52088593D0ACC1F39E74A7FA59B959967073BB14DE163D73308C276AC0E6BC26E1C165B873E46972B72FC214544317C31556A76C09588C45E4762A1B43C7EA2A9DD238AC6E39E9CEBAA1945544FD8702D7066D329C89656499E6C8264CA1BE481AC792C5A52188E8A954C06A96E13604E2EC0242C78BDC7763359A47C2C5C4F7762819504740C043B2A5BC8DB00CC4AA9A8C6354DF515BA7D7039F0268637430067B81284F866BDDA366A8C25C3808AF025561F24BBF8671305BA3AED330898F18B854C501549AA9A1C68DCF1071AF689F3C4A46B19709CF02BBCB07F65B44E9F9385C94C4385D88F8B502CA9E19A246498646BCFA1308F8A6C45638A0DF58668F55A3D30440453C36875B0AA1B5967E617A296D284C4E2828B64B83FB176156BA7FE864007414C3EB247C4063ACDD61B4E5C42B9147044B6916FA9BE1D25BA71A035D766BF4C1C336B836B512A23549BBC53E1A8FADA8246B41CF93604BC9B792868734FA755B06A7821E688CE17C9A00C7F9FD724DD494B070B9D4FB0A2963CCF41777F86BA3B318A1EA543913D5A653F073B34C64980E02CBE17CDBA5A286443677A152B0DA21EE54991F34B758B87A3CB690858F29A003031E8A99964F3A904023404CA51D730957F34A0BEB402169A6BF7163963D87D9C6159B8E342CD8738C945B832B698655071286338B67B372A067305E5299043C884B4AC6F624D06F1167003CD5659B68F36BCCDE8B37C817DB27870DD196135B21849843835EC1EFED74AF31A3BFC6CC33A988322622E2841799635084AABA1ECA13B61BA765466B05C742279067C5A1A1355737C84199932660B15E1C124F5718E86A8953A0EA5182299A8A4C4A82F91AA901F40A64C2C1457864F0BEB17F5B6733FDB8FA9A04D9ED1480DBB2EBE1B8A37917ED30257CEB062D4B3CAAC11CC1283542B6A711A737C64981AFA7CC0DFF00C7019AE2169BAD10A6F60F094020B7B422B006135B65110076DA0AC1E9B8F354A46200B3D58113953197E7A942671E3CA61C17F4256737DC71B12291EAE2626EC136B6898047427525290A62380B2B246AD86AB59B12499C77936F816CDF15C5873147E37A71A2993AA11042CC83CA7B7656FF35429795A9BA01075D670A464B33E368B70CE7B484E864EFA8B890892B8648461A61B75BD7455979325755292576878D0F94728FC2433C1C04AD8B52E55C93F36C564630C7CDA98C29631B9939E64D86A8BE9CEAE4BAFE668399B287226B59807F51FCE23361E2ABDB21A0803F4AF1DFC8B55A594E746B241AB0BBA37B285666DE8431BD3E28C7D6B64E7E1377364C75C1A1B6B8147D91074CD862DED548788D825BDE070EDE391B0A794FEF56231F36B7C451D25DB6419E761E700B080DB345C613226D38895D55889B10754B9706C33144805325C3295359CA2AB758DD321154CE457B9734EBE32C02546A7556B599733C036060631D5B4FF6C57A1B6C5065B80A691CBF3C604DCF49D914853C87B6758A58D56E406C04230548954242AA799E0532ACBBDB9D9A50DC2BAB0C91B0268BD2F0427717BC5B9456895C1660CAB6C312549A8F15DF9C7957B1A9F3C00A7487A812D429BB8F232B559A5DAF57C27A96A99327A39F5B1EC95B4161316F1A27AB2470A162231A93761CCC64689D430D4872ACF18A4EF71C0B6EBB3D552B2BF4ABB43D70576C9A67C3647D5919BE77A0AF046BC6580BF05B109A66256A21BA44C45C516212AEADB7594FC6CA17BC436102EF3D99722FB3BBB0BB39C9A1C14085CCFF8B57140488270C165A8ABE44333999A383C83BF1BDC6CF63258908ABE715BB383C385FC26635283AF0853B3E533CC6CC95591C08FCFF360FC6B506B861444B3B328045270B001A481662BC847FD15924F5744E359C18514A909CA163FECC8A1521C1B2955AB7917E343C452FC489FE06B5FC03DC21F6D925B9F6D92FFF175C9DD625BFAF502B4E28709618588523D8FE8354D81146FD65AF657DA08926BD3A6ECBC2F81CB58D1AAACFE5B6E686F66BBD48DEEA2A0A14BCAA97E18D848E609339DC39BCECCE7077F2D7432DA536E +encap_coins = 19428B5875ABCE53A0C9BAAEA7707855E56D971083793B2960986D38E2880449 +ct = 29B83E41A8F490BEE572DFA7506648ED1C9BE44AD7DCDAF314A307010478836A3A52C21CC9A6872950DF78EDE4B7C1DEBE87C6B180DF26C7EE8F07AF7E8F33A0ABD6AB5A7D1858FB8F66A0AD8EE4481C81B26D0CA02714B33F0357DD062B4C5FB2F67597AF82FD31A322413F6DC8C75878FBFE75DAA3E7A405FE424B33BAEAB1DE29C00DAD6D1DCC5EC6F09DF66E97651A01F935E7DDF761B7F4FF66235B0447E885239122452FA899D6D78DFAD5534BD3BB87FA9F351C49873C10019AE9D2EEDEC5FAFE663D24873565F8F071BF2E989D30A6DE140598B3DD0435F1DC5752A592F00EAC3F41076F18D5A1764769B051D8A82C8E6BD9EC0AAD121D4686AB7F94DF322DF2F003FB0FA78A26E0C489256B0B465A152ADB4142B70A9876ADC7BE9A4C750ED3F21BA55B75DC31C853C92F5B8859CA99AFF3892C84C23A20AFFE2BD233833A08543578C10DD5356DE1F3311A9F08B1583A97CFAE921C714FC0D9EC97AC55BC6B7FC576018B91B72E0F3D699D879027BFC735459D72F324E40544D1880BE9FDA961364FCE713C30F674E66EC0B939BDA2CCD75436674E1F6F429B6AAC510C6B1CFD08B55DDA0B9105F3F36921493E96CDA06BD17ADB455DC8791C4E59DC294F888F8F9554242969A0E3C9C4D152311CF97265B68DC79ADB612020C96F3904649144514474E91CF0F37CA8097DA5A1D6E29F8BDE48C311D30137CBEFE349DB75C760EA91DB72E373560270E4FA215A71077F819F71121C2B0471BF81F75161381814D3FDD05C0DCDF41E03D973551CFD3F032C4B4ACC6C6FDE88EB9DE9C859CAF6D8A694B1E400D81E8AD456B3CDD9C97EB5B3A9CB5ACC4603B4312E710E09242EA8B6B559ACF99D12926DD46380C9267B0D0361D282DE3A641762B1F22E55A940EFB0971C60FB85F1097F84FDC0E697DAF4ABC027103741E481B83974038F67CFBAEC03D2E30530FCE91C062D35D1CD67AC2977A9896806DE3D3F7E55ADE9C3010B37C2B24D2DCC41515976D1BD2AD94DB836EE953D02AACC715BCFD4066E5426EBDC22E7BB81CFC3DF158F02444E7013D93793CB4310547DFEFC4B1178512B9487A158C6DA24E8C1DF67D3C8C49D0E1E538236BDE8E3723CC720C1087ABBFF3EED5B60EE35C6305B6ED52A3FB486CFF2076F34427EB291D79544A13CA4990F4D355C73CEF68D273320B7BDF63C0F86975D76E14A0A1AABC9F04742792A288B05FB7CC601FF091E956CCE53B0F4E2DDE3E3DE180C3339C70CF282018E02DA6B2697BD8DE11A699647A14E20239668683AAEA05F0DDBB5880E14892C9B34EDCC340B65678C767A6EE4ED80F344A3E1DF5F37E48E333608B2D687E19C16D17F7B58C0480CC451CDABED055839A32F8535D5F9340923AD5227574780BE6C4A3A08DB27BD0C6E8065337EE4173DF18BE24905B5C6CFC9B6AE15A930FB08A593C4427D2E9D9CF0E6494C059891F8A873EC0E86BD11D18A04899280CC57A42AA716EEADCE962288181773960CA516088437FD84AE64D5215ED7727251212D1F7DB59C5AD8FFDD0A0491A504855A2F14680A5631CCFD03BDD2F0DC8BFA11DD6CD6DA9A399FA3419637F242E0DE33738EE00F415CC5D548E468914DEA6D88627D6C87F76A353913092F486C6169B8B788A99BE3093FDA5941FA6FD33D9A240ACCD4432CD5AA1DF88499525BF73140FAC1BFC0EF67D28D7DF9F69C60AD477D4E04EC4BE55B0E64A47D24A84F90D34C5B346C140B81B0B9335EE3746C803D2EEF5D2B8E9F600D5212D7314A4505A991AF80FAE2F1672AC56F6D6E03F00A740FFDC2100E3C389FC6A8805D9D97B5C696BF6416811B7F7EA84B84240D9D3BFDD01A9A0E6CA888741A7BA3AAD2C06128F1FCAE105C06069C299C185509C0E5AC49BF8A327B545751AC54267AB47776431D07E60D31205209340330F2BB0C6132FF332CD30E6104AD93EB58C0256559A51413FB947EC2944CE7A4524C221C434C7D718DE375BB9DFF253C20B7CF5DF72B23E543380E31616D4E90BE704FEAECBAA7715CCA370400ED5ABBEF86AC7F8DB877AFA2A6794F60EA9918EE905420360B9434ED93DB3C40022BBCA2647FEB04E5FB7A5428A6D631B2EFD69368F04ECE3A00FF1FD316A8CFB7758A3407A6209B5714B78A874142A70CC6857B46880DDA61F6C87DAE97D2EB77D6254A7B6DDAF977BB54492201ADB8C916E2E97C18E131DA141974 +ss = A18C9E9D7CF15245DEFE5D67CAE930945E5E8EB3D54C1F4F825FB48B59DD7C21 + +count = 97 +keypair_coins = BA2FB9318D4DBE7488057C33E95E6F054583A2800C41BB83083C330A914A12CF3E3A1BCD39C74C1B899FFA21A6FE100804A551199D32DB4A75E6314BFB58F70E +pk = A0EB8FEA64C6C0DA5D9A16254D897856A1486C8B2F773C18BAB3CD4F80C83DAC6DC9796100886D14B4085BB2265BD9C2F021034EF1083D58AFD447CA55526D2691781D409649E88F43CA4E9B4AAF9BD9588AE52D126692B181817ABB5291F660ADF3A0044A0C527B233327C0F9DB047C9415C806414BB0758DFAB9A7D3C28484578B6084B65AB0060CA20895C6BCB5353D295DB2EB32170B5A214669D4C4971A1993C1B98557CB5F76E5B8E306ACA954B04BFC6F0B0CA903A66DB333168C32033375A0321A287E133A9ACA8EAB024A85761AD4776B03A95130D0178F93684A2C0A519501EE5B85C4C3278E8B4E7B2B461CD4602A7918767B315CBCB885410CEB025F1342C2388637EB69AB0FC21568B1178EF3669A1B9E4FC30EADF5BE70143ECDF543F1CC88E05A109920A5F3B4AABC0B8197783E8A16B1E06BC5E7089CC447186830A1D5BCC8BB31A6E91B691A65721791B0334495CD014C134617A3318A7906069E0574D83C8A44326DB67CCF94A0A735942DE923B5A6D55B087B4390E975E6B3AAE4606ABD3500FD54837FF875C54BCB7B5739DDC0ADAB741E57946AC0948CCEF5CA791A46C669C552B97EC35633A141B92DE18B0DBA46DDC64431920938A927C255AB78FCBFC9653E1C0B8A0F42489674C0F79C30CF8A5073A06FBFAA888E914D53A3B6A86418F5EC6DD5A6B56973BDD9744D0EF326AB49291BA1B1A9F1A68DA542FD944B3B88C6C364752FA6233D27A792E6A040F1824120AE9AFA707D7206966A4EA361681627CB346572619C9A7D539DB7469E60177E98674398EA296FC3005800C5DA17A80EA06AD23A265AB7293401CDFE3460921596A7C228C883B0E1E48365FB02EB50950DE3AF481439DFB98447F3406C81161E643F7095CA8C7A40B6D47F13D338BE25335438CC457B3E99C820E1F258825988D4827B5B1506A0129648101BD18823B2F2C2A142387F1A067A295175F5922EEB1DE320711F0B729971BC7647889EE86CB5F44363A992369120DC837DD474BAFFD381253680F00675FB380BF96A89E282AE67C32B94AB48E35029145748EAA76037A98788C45DDE75085D9C5523A7309804745F626F89362F7BA94738C5B9BA0B11BF560E855356E8CAC1195CBB2921BFDAD80DB6B3BD9916A7C6CCA281914F4FA5AD26D00E6F6ACAE0DB49AE970755D16B2069B1A7EC0D7B879AF301A9BF5519683BB3A59B066B62C8D150A316508B8C2C62A7F20FAE59B3CCB0CC5E21055C7A638E11242C39855545B0A880484FB555F0FA4BB059AB05457BED820EEE0767470628F81A321F113A8158A1AD1367F11802F71B90A8B4A1CC3C16552C11064AC01402B8B4B695D19BA74991673A963537B2AB14333633E04B0859472ECAC568C87700A5076C8C265A3B0662C4250AE5CB53771CDDCC2473F7BCC52CA97BA018BEB6BE5BA5420F7B2882F3ACFFBCA13193C71EB60D167C1D9B256F4706A19204A017204AD28B6A0F607D61A97CB578CFC9633BA9D6AB84367CAD900E5CE147AC935AF727724AF3AC8F0C86EC70034EA7C7F5330889B402F6B7BE7BB6C7751411120A5B6577C131CC75667990C0585CAACCB1AE144140D47239B7ADB311B338DC8A8E5B10C08B3AE26C945D680F4AD35DC07639C581301CA981BE25075363B8D3A6B2165C99C0B61C298A502123C40E1CC223B21EFABC1C34576E206456CC082CD4048FBB576E720BB967F5B58763342C98AE883CB24CA32E06398C56EB6A7B697DF092926A8C76DC160F0C577AB476303647BAD3B6951949ACC2A69E793807A77C7EF163A25C842723D85665B121DC8622772CACA988C5E8281D2E7055657100D31688B09104D0470D8953B82EA4C6AFE50BB96B68F5524AC3A5A92CD26F26B142E37920AD36111226C763E3CE29C9C1235C8EA40995EB867EA8E844ED819C10F62172C52558667F4121BCAC1815EE2806D863C22F10A20E74425F6C22B1900B520A5041B0A7F5842AD0FC0E19C893D7E42B1ECAC89D9A989D8C45DEDC5621565E2E788147C42EC4DC6A8CA22D4A1904787AC8B75232BB13ACA7E30825E865BDE0CE8EF1C7E2172D759873DB265638FBACF7763B80FB4161417559A32C2D6CCE4834BE3316181EA4C5CD29687A498953998783057DF991300F224324B207B723607961622F20377715B3DBA61B94849DEA30E28720BBCB90C7AF7FEB0AF619A0CF57D173405C82 +sk = A428A1343429CE9C3DADBB6213410E264426D1CB5C69C68E7F377BCBC454AAF867771258FAA622B6367FC5CC46E960682A3984A13230B3D7C25A69CE4AB9AF0234A109878E0CC42A9B858DC559AD3FE82C4060539C08828C51B337B7C0EA768BA646A2F04900A235A4042B88E8934D3B62821A13B67A912F162AA80953CB71C396D91B91521B6665062551E0A6CE453C233460789138CB16AC6E598F670C70D6325804CC494466710D984E3EA551F5EC60C5031E94421919F62C301181831B7FB4FC61DA443FE12784CF84B5ECF240DAECC87D711AAD10808B96233D345BA80B0469797DC03583214355E8E9A356E367A593A6898355AD129A8546A0D03B2279021889C118DB3583DA691A9AD544086540BB2178B2125F00C94AE753038486B6CDF1CF7E5A2202290B4E5AC807EB04BEA95678B52FF76C4757C68D2EB9283B8766F1A39E06C999015B1F1D5C3164338AEB432D54B338C361B9A7258981555FC2563E585A6FF60886C32343E0045746E50FE78A0A9BCBB6281ABE3474BA50E1267B3276A1327A8F128E2B5AB077618C59902C35488553F745D2A0C942B81C0AAB7AFD0C869B9B9C66C1847257CB22B018B81B25C468A9BC35A180B090F4BB90C4EC035C0078B799046833CD90F7BC2678CAB9B75B95A6B457DCA8FCB84937C01479A0B7B6DA9643DA507A2B8B1AE25373825189729BDA8B35FCEA315B3B359705CD5B486582379093E64F431309F0389FF899BEB4C3CA9689B412A210EB654F183362AB8398B1E3696DF7432BE662CBE62666471F2C056504A5C1C91017A6326ACC7306524058FD0937DDEAB972B00734F60D065A1BA8655DBA3093D161B99E698FC778B2FE782FA8EC7C62D422E17B24FD107B87A8338AE7AF6994C70D959CBFC3720B3174B9658F5D43713CD47325EB926320073F384F04E6831435524B686F2CD377C18363F8E554DBE6AF09F93C2FF2A1F4A87159472E7D7A4DB9243A1C6A636AD50735B870F1297B6D6B5303E2552A54AA5991340AA40301CA2D6BD9A765B72FBDE1C3C44A7649EA350E00CDE59628E06ACAD29888C9B73CF0AA65D44B60F086C21C6ABCBD544295317B55EA9AB1117989AB7B7304304E5612119396727943678C31CF2B1779C946B82420A557A8D6426263D33C7F71591C7857E90A7FA05158E315AE19D1046249B3011B22291CAE30501D1423674824B852C34C97258AB972AF6C5195FFA20B6CF05BA0498A529756F173349BEC8C180869293C5967454D01CB3C8EDC7A3A776DBA54C37513727A69CAACFBAAD8EC4A529A1872CA25CB4A99C38B225E379ACE27485D8B91FEF9CEB97C04322B59F533745D23720AE457FA11B3A0B831DE777D07F88ED1771FA1D89DB9ACBC7BAC471BD423ACAC482BFB29DE13881AEAAAE2F340C1E747A73B9071CC551EA59B03646B65BC2E6E04875754A77025985A026ADCD321574AB45CDA47134B560219338FC93B0A398D7F85169B4B32C2EC3A06529F8E3A57FD353327B03F87D5CB60C67074146FB460476C92619D9C23BA7A371FD9425CFC6486992959109CFA1C1A75AB9EBA4235AF63C6F8648AE7855A4EAB5C9D3923386996181980B16B02A53060E5A64A8CF3CED087BB64F93693CCC0E77AA355D741F1F562692477AE0082A4E73E21F05FC386A8B32B09A4B79C41612EAB0C29FFE610DEA9713DA3680BE504F528B5EAAB6D5CAAA20C7221AA39345AD0B6AEBA27A563AB6E1B65FD70A81D4CB97F6BA16E35773AEB8C1917AAFC9B8F5254380395A41B474B27463F42E7C7B008A52D4395131C13CDEBB7EFFA846DFA429AF7393F8A688203BB6A814467D1BCDF931AD12811F22C0A0AA3C1949B2EB266C59AAA542605319B233769544070171801417816F730391A4D5D09127AF868D8EBBD58B767B1AA7015DABEF5B32B773B9329898CEC8C94D80630B8447CB1C17C3C400134217C0ACAAAF73B4B03132D779523E0C9CC52D28693DA3DBD5507151C348B11898AD548EA305CA0484C67F1C70435C84096117702297F0094113B1C6AE66B25090F9B22A15CEA69C95A2B8801A6DF8611DBBC4CB92CCC21424F2A2537AD50206CB4BB90935381E62C571874F283CDAB005254220D538115A75298E440924E9A3823D69A5EABA0AC73633179040F95A14026455F9403A0EB8FEA64C6C0DA5D9A16254D897856A1486C8B2F773C18BAB3CD4F80C83DAC6DC9796100886D14B4085BB2265BD9C2F021034EF1083D58AFD447CA55526D2691781D409649E88F43CA4E9B4AAF9BD9588AE52D126692B181817ABB5291F660ADF3A0044A0C527B233327C0F9DB047C9415C806414BB0758DFAB9A7D3C28484578B6084B65AB0060CA20895C6BCB5353D295DB2EB32170B5A214669D4C4971A1993C1B98557CB5F76E5B8E306ACA954B04BFC6F0B0CA903A66DB333168C32033375A0321A287E133A9ACA8EAB024A85761AD4776B03A95130D0178F93684A2C0A519501EE5B85C4C3278E8B4E7B2B461CD4602A7918767B315CBCB885410CEB025F1342C2388637EB69AB0FC21568B1178EF3669A1B9E4FC30EADF5BE70143ECDF543F1CC88E05A109920A5F3B4AABC0B8197783E8A16B1E06BC5E7089CC447186830A1D5BCC8BB31A6E91B691A65721791B0334495CD014C134617A3318A7906069E0574D83C8A44326DB67CCF94A0A735942DE923B5A6D55B087B4390E975E6B3AAE4606ABD3500FD54837FF875C54BCB7B5739DDC0ADAB741E57946AC0948CCEF5CA791A46C669C552B97EC35633A141B92DE18B0DBA46DDC64431920938A927C255AB78FCBFC9653E1C0B8A0F42489674C0F79C30CF8A5073A06FBFAA888E914D53A3B6A86418F5EC6DD5A6B56973BDD9744D0EF326AB49291BA1B1A9F1A68DA542FD944B3B88C6C364752FA6233D27A792E6A040F1824120AE9AFA707D7206966A4EA361681627CB346572619C9A7D539DB7469E60177E98674398EA296FC3005800C5DA17A80EA06AD23A265AB7293401CDFE3460921596A7C228C883B0E1E48365FB02EB50950DE3AF481439DFB98447F3406C81161E643F7095CA8C7A40B6D47F13D338BE25335438CC457B3E99C820E1F258825988D4827B5B1506A0129648101BD18823B2F2C2A142387F1A067A295175F5922EEB1DE320711F0B729971BC7647889EE86CB5F44363A992369120DC837DD474BAFFD381253680F00675FB380BF96A89E282AE67C32B94AB48E35029145748EAA76037A98788C45DDE75085D9C5523A7309804745F626F89362F7BA94738C5B9BA0B11BF560E855356E8CAC1195CBB2921BFDAD80DB6B3BD9916A7C6CCA281914F4FA5AD26D00E6F6ACAE0DB49AE970755D16B2069B1A7EC0D7B879AF301A9BF5519683BB3A59B066B62C8D150A316508B8C2C62A7F20FAE59B3CCB0CC5E21055C7A638E11242C39855545B0A880484FB555F0FA4BB059AB05457BED820EEE0767470628F81A321F113A8158A1AD1367F11802F71B90A8B4A1CC3C16552C11064AC01402B8B4B695D19BA74991673A963537B2AB14333633E04B0859472ECAC568C87700A5076C8C265A3B0662C4250AE5CB53771CDDCC2473F7BCC52CA97BA018BEB6BE5BA5420F7B2882F3ACFFBCA13193C71EB60D167C1D9B256F4706A19204A017204AD28B6A0F607D61A97CB578CFC9633BA9D6AB84367CAD900E5CE147AC935AF727724AF3AC8F0C86EC70034EA7C7F5330889B402F6B7BE7BB6C7751411120A5B6577C131CC75667990C0585CAACCB1AE144140D47239B7ADB311B338DC8A8E5B10C08B3AE26C945D680F4AD35DC07639C581301CA981BE25075363B8D3A6B2165C99C0B61C298A502123C40E1CC223B21EFABC1C34576E206456CC082CD4048FBB576E720BB967F5B58763342C98AE883CB24CA32E06398C56EB6A7B697DF092926A8C76DC160F0C577AB476303647BAD3B6951949ACC2A69E793807A77C7EF163A25C842723D85665B121DC8622772CACA988C5E8281D2E7055657100D31688B09104D0470D8953B82EA4C6AFE50BB96B68F5524AC3A5A92CD26F26B142E37920AD36111226C763E3CE29C9C1235C8EA40995EB867EA8E844ED819C10F62172C52558667F4121BCAC1815EE2806D863C22F10A20E74425F6C22B1900B520A5041B0A7F5842AD0FC0E19C893D7E42B1ECAC89D9A989D8C45DEDC5621565E2E788147C42EC4DC6A8CA22D4A1904787AC8B75232BB13ACA7E30825E865BDE0CE8EF1C7E2172D759873DB265638FBACF7763B80FB4161417559A32C2D6CCE4834BE3316181EA4C5CD29687A498953998783057DF991300F224324B207B723607961622F20377715B3DBA61B94849DEA30E28720BBCB90C7AF7FEB0AF619A0CF57D173405C8236FC15E2340175A2A64CA1CF31A4B38ED5F797AAA8ACB0C3D2ED9C19C7099F273E3A1BCD39C74C1B899FFA21A6FE100804A551199D32DB4A75E6314BFB58F70E +encap_coins = EEC1E23E58387EA5247E118B6204176E01C8FDE4EBF069F4B1A460713B5D5FC8 +ct = D34496A1A3BFB8C7F4E94E2FEB654C384CF002363201281589B44369602033D98F09EBE72DD9F32D661F6C8B218A1BB6A689DA7696E5C8A07A47609C6CC25F7D5286290D67F0BA1869A83D90011AE95E9F92728074B8EFD4E7192937238CA207FB5B08DBF2FAA5D010598B88FDEAC248E4487709E5BF78725ABF8E0176944AAEA9F5722D0431A232EA7AC79FE860FE6B6443B53FB7AE2A7D81930D07682DD77B2A8D45A726C629DB4ECDAE05D7A34E880E2FB1E861AFBC72F2A28E3EF87728750710744496E241505AFA5FF3EC06E0EF32E7A282D57F5EC0681AB6E72726047E15BF264DE20D3804FF92A410C6E9F97E8FBBD6DA25865DDCC4F63BA7FB18061CB7E7F0711AD33C1D550A50DBC69736192F18CAF2A0E225B963BB5EA4018891166DFA8A0466A54C31E2BDF8A479018B2A86DDF3D19A72FA100382A02F46810DAF00A45CECBC7E18D72E7714B181D93D78FB477F32A51EEFA8E237DD0E3F5DFFF188DB179B9A117117394E67BAB2B9F012316586F81E51B760FF80D5BD5C152D3B480055920B12AE45008A8606410D62C17C216C4D65E862233C161ABB6189BAD5BCD3F667094AE94418DF6F874321BFB865A4D179E05BCF2C710F07A3333D84077A9BC3AE9D6FC6BAF7EA1BB61CB5D3D6430159404DE73D24BFA8B3FB8956125C8DFCA7C4A6C07EECDD178841B3476D11E92E90C35FB6498E31A9B4ACA04A60A6A04C1620BC71C82D2B2E83A84340F0242269B47DB3EC7FFCCFD510C340847E4F2DB12D498BAA9ECDD44327DA3EE654C456DD3F08EA6D4B7EA55F4C61A3AEAC21694E270B6A5009CB0D4191F8759008D03718A9D879D833D936EF9FCE616727571099A40AF7E2AA7452C8369FC4199D27EED1062C473A13A81606C60359BF84AD8A943CCF67BAAC390289E6FAB31D84FC900F31DD8DF8DBF5322AFA7BB304C55DFC86EE8699F7F803DF98C1B79E8DFCBBB91B80933EAD38AE97B9093E1C407FF5232B6B24B599052B4EB782084C421FDF71E5971487F25365664E36CD7AA1FA86589F0B298EE1456B41F85B3ABDCACA689DB9DF858BFE176D147D25420A26F8A16B873704CD688F84863AC1066C17A955C94EA57B086DFCCC628CB18236B73C8DA167796F4FFD8D428CE430C8F71341919DC64EB4593BD2E4FFFE2DC8E73C43587A5C9608CF16748AF1C2ED09F5A72DE495E18DAEE9EDBA34146F3C3E83514361585F9065B9D4AE79D758004FC212E3EDF53244548199A49D3EC5FAB46672ACA4D323A48F7ACE013AF97755CD99AD4AC46B632F4F9B7FEAF332EB9118BD2EB1AD3527E82DDDE26FB93E806F27032DD7526F552C04423D5B61C4557975CAAB2DB708B4EA45163C06AEE6E697DED181B4E659D707C51E57DAEAF94FF3634A8FC7E788E603F63C24BFC3CF601349C24E411AB1950813852AE1DB69BE5C48C634EFF213DF948D0F001B147251E2A564423B4873AEE95941828C68592A9096E0682053253351E60B2A0DEE87A51EFD55B918F56F99F76C5D77C3355180DDAF76FC37F433AD8900BF5B352F0DE274924591FF8F6920CE10A4D35E0F12C91EAEAFB77F15639F95F944E704D9AA09BA9DC8732954A9C23BB610A853262A4E48EF3E6E730A5E0AE5EDA467307EDE6EA52F286D0CC2B0FCFD70896E99D71FAD28A461E197B9F3B4B4246C20ACF036A7B95C3685C7CA9E9AA7C3CFA27F30EE133387332EBF7DEBA3A80D189B8CC3F7939900416144ED1D51901C75E4CA2B999EF93BFF2D122B1E68FAA6584930CE69A512D552D545935A03B131BA86FCF5E9F44865C0F5CC74FE7F521E0E9C359471AECB2D6E750DF09C4AA11E434F2FE3BE043BBE8E3363ADC5EE34CC83A40E9A927745E6C1CF4332E54E17274F3B00776DC49E3F9EC77863F43399D2A2956861CB3D9CE92D9E08328A8D13B9DEED29AF9D6DD391939701CE3C5A8A61A0150A442EACDA3D9FEC48B838E325587806E65224485F1FE1A541FBBCF5B035130795892D680D9F7A77556BC9254F870F3B9CD3683F6F2092DE5E554D54C3550992443B63A2382F87ADAB97673EDAD6791125540857ED17350DFB9022C59DB08F9BAC7C163481071925D53074CD8F834C736A035ED719ED0D8FF821F0EEC49E965126F0A8C20D56537134B60DE4D7A4C3CECEF8068825E59572C30C6D780FB3F28A5A2DC3C0532C559B9365FDA675EC055F1506B0EB2CA2652B2E1B +ss = 7F6F60AACA664DFB83CAAA9B8E426FA4B34A8D6E77DDD9EB1775C2719D8C2611 + +count = 98 +keypair_coins = AA6DD1E5799CDF7AF9C4FC632B3EB9D51D66E85C8E0A21EC98664FC51AB63C7DAFF7ECFE33EFE4042A44F2F801170616925BE8CCA1BD1812A7335DCD80F9CF14 +pk = 935770F4970A8E4B7B83C12A1E44C3EB360B42E77BD4435FB6F65CC14B894C387D0445AF3F28CC2434138A07A667E5AC6BBBA72DC3B7EAF788D8621DDE4034A430C2DE165B313733E2DAACEAD1A014FB09D5B834411B8325728EB325B12310992012A7C4E05DBA5017A59BA9777A9B3D5A681F79252E1C15FF8593BEF7CD3C059153435BEE16CD2B8433EF80BB21CBAD40C6B945D7B6DDAC39D0D0B558C7A42D9BCC701AADEA5707F77498D5527E4F0B0BEE834946302191D06F46116A77B884479A75A585A0C2105343584AEEF31BD8A7AABBF669A2B2518F3805BE390159B974CE43C83EF68B72024A42A942D8A03FFC5A5429265214B68DFD4AA094EC4E1BDB6D8295C36CB50FFFC35C6A8B95172A0416130AF7560EF1020CCF09C400101705EC1305AC95CA03143D22C93D72BD07E83AFCA94EC379142BEA095C754533D802183A9B3CF2796EE2988184076D6C2235F39D250B080750762A0A31FFD26130700F6799867CAB43841AB906377EE5BB48DCAAA3BF79584AF9360C937FC371C1DE16BF2BA57359D060328A8CC01B948ED14197286AD0E8ACEF142DAC64B4FE260CF066886C8CA9292BA2B3315A2D719C53B7ACBB5125BBEB8D3DF4CAAFB08AC54B8AA2816D3B44630623101F3B69E15C32C8E6912D61CDB2602734B206863C9B488431D72000E59C36E031471BD693E238314BC282DD8B4702D334E5985A8E89045F40652300A9DFEACF0C922E5B631F00C434085C5DAC53BB4637C624C80DCD59A2205C8C5717554C114999E79B7EF020B7961F007541D009350BCC427AACCEC0B0C9E3656214255689B24AE3CC874FF7C0574B09F0D8223E4C19CFB381A8C72F7324AD9E600669204B2590BD9FF6A589D26E0F2BBE575C39CB304ED5C8B692A17B65A7A27623144E7248EEEBC4AC80239DE04E8B3928E750A0BD44C30315647B5A6BF3E5955971C9F62B44EE01221EF93FA76843BE32408563C111447541D98263212CAB014E7897AFBCA8618A27B56BB9725AA1B711315E30AA445537BF02A201E5362E6B6B82F52506CF8C1E82F7912612B6E9126B7E725B30451D2001B76CB575EBC847DB9B2A048277202B1434F9C936DA846A6773DFE4193D019C7A7601FCA114737559DF7AAC095849692831156A13A9060510E05BB9F48A01506A08F63CA5CB4B032962B6D484E8CB742B0709023B9926562BC83C72C047833E27760D6A8A8C559A096600254909DB3668B0E2C8BBAB67413827A2C808BF6C2662553B4D9166A152931F30031FB15822C12462B714276C743B2691E69321946CAD96F9BD71982F47970FCE751B013630F5AA90334C657D286F94D325333B64C6BC9955E859F8C51C1961400388BB9DE91FBF4BAFE8853B1CE98E9F1076AF1406458B00CCF021DA408575E126D850A3A1D51F31069194D65C4DF88B94D8B43A4B6EE651654D6BC72B8C283C49093EB3B1DADC9BD329B11862542DA3B770657318F13FE4B07B1D22482C0410652A3B52C2216F3028FA47C3E5934C3540B644A282729196CA366E1064BF5E57AE739229E3F092C3CC91E8E833C4E314B6CB91E6873F35CC4AD2B60281C862B9D0CA89AA0966713CA0E973A766CF303AA1082266923CBA1CE7A91964440D43878FD359583C6DE0F5C6C86424A1096D5BDBB843990F0B8285681BBA7AE82008A56F992267133B7BD1A55F0FB37F84D6B2609CBC49C968925069AAB3498FF7C986F522B0F2A1512A8CB5A6BEBBE62F28901F2C5073896381255912FC482E9EF57132EA5F5F61B36A5A17366CC924D8859338CBFF9782D168618AD6A7E53446BC7BA73C86B8AAD129CCD6C796B2883FF989650C04AF16B339EC34912226F586286A553DB3362C5E1056A369B22C1467CDD4A633B03585F82116510127AAA1459B2DFE049E6F191DD7CB4D0A8AC5DF064E64B9021440357C4562302BB0ED0A6AA94BA1DD55A50829A574007608BC61508A0F17D41DC3BBCB8E91C4DEE25D2EA4700D905348026046450AD0C2768AD72EB0B770D45A7416C041160170B8511DA2958F44C9B06060183BB37967282062E0A93EB5BB4B2B15A4152C6F19B730B724F94AAB64B60B7EF5080B251AE0290746C249B1A76C96825653A89914B1CE70982D3CD437837854C6D28F871999073B1C2024088F9B8C1EA5C3F4E86DC76AE2B345932A0E7025F8CE6101884469E31AEACAF4D77E3F1201BC75 +sk = FA198BB15B4278509DC232002C75A8BBF1853C474C8248B5062821E4D77FD5880979922016D17377F76A89AB9477A1024C9780FB728F6DF3295666828143C52FE817B9688C70EBA292D2716AB4970840ABC4603F597B5FCDEB0144813602242625A067EA48B426738DAD0AB986369AA5326DD199C72212C59AB20C8F63429683721A2C682C5AA853B86542698732AB86FE39C340DB2D452286FDD599336B9923599B66C144C0C7848C20A6979133FB7B5EFA3726A4F44389CB93D6A9C1B7E300CB852698C236AC00B2855861C88BAD062A25423362C7774C1626834EE59880762508FB518F926A3F475D01AA8E5C8C4140537091D494AF66B0E9426359032A2264AF67E63541C2408B1853F87C68C28C8C13417F94D77F6AC3315F23405C233E14F7762C152609AC34842553DE175A6FE1C08B44BAA9D15CF09A6049B05B69F71DF322171701AE91D050778A6754E374878169181A2E1336677889318CB54218AC055491B918BC2553023167151C98B30E1340403E0C59B3252F4D0C85EBAC1877798C41AA43C5C7B738B7CE116428C049370BA6665BE646B3125AEB947B1F3B2EC5357C7566C13EAB148C453D6B2274A9295A06C822DF9222CB2026F19603B5602D08D46D4C71384E776AF2A441894826E4559F5975C586E47BC0236B4897622AE4396160334CC97ACA101805814AE44786D1E445147A4728275C32554B9BD148AE9605E10C5A6B556704F1C17297A32EB311F1E92EE5F160E8522E06554B93B5C796E44086E75D236CA88ECC533C3B348091891E35639BD6CBDB3A408720B6E3A328C4268454169267A5C5348703C412C58846C192E0A162014600DBB351424FA8D0599775BD2D851DB4B07438F655AAD6402628563DB3A435F75D440636CD64041DE162D178C923490839F190F106BE0020AB63E7B3EB718A4FB59E01057C416C330CC26E485A6D9C72B707DA0B297C0A25247D26D40F044844C2DB883A5BBFC2B06F1BFBCCC6D10B65C9BDBFB806D7A04CD71774DD60BC423C1DFA897A0512365CD54A90BA6AC509298BF6455363583843925281AA405C291F11695CDA995A9AC5F742351560B38F8720D66327B4DCC47626744241679247CBE42695B8D81C37C718CAD53D1B318F9F900757267C43B982F26639901028F8F636C35091F1CA90A1E329D5CB069A918F45A078F33AB4DFD248390627926AADDFF47ECEF1718B2B048304CD40E72FB0872B6207856A61BD764034E82BB426747405E1AE5B93C63CB12C7BF09E47E27117D26ACBC102B043616E60B714316DFC17306A77800EE87E03E4B74759794EE6943DC274AEC1A08197A841E68F258202B1124803064F6E3295DD51AD18949A5A383A81363BB00118A8569A38D138BF8835362C723E999402D3CF728B0E11F647CE2B9390615B9E50487E23CEE6F9CEFC4A1CE5E83D28D642E3C16934B43931158CCEF3832A457A5E833F317918858807AB084F687A394C257ABCD8435CD717D1E6B79E78A37BB71A236729839B89A9905B5D935AFDC2C1E6C71C597898C6A69765BA05E9784B7849C685AB5B6DE3358C6299D8A4B075045D6EE15B639601AA95603A67378157B54889C3021453E373208CD06C0DEB7747E411C2150B7D93118870818D5502490121A43898DCA59417088EB0D9CE88497B12294687619053D9BEAB9A13C663B24058B620826FC7B03442BC998F568CA7F570DC638C0F781114FA6642E2CB4EAAC2F638C85251C1F99422B13A1D58BC541DE67069A228098BB61AD060A39CC5FA5B9495B79C92993F97284C9A657BE1E528AE333061759C38A5A662AAC58D214B7F837311C92E5D042142190446AA3D646495554CC7F37656ED89749F5028B1EA008163B5BB13244DC41A394A18E589A85A2BC4E71B596E15B6FCD64C59EC031678AC9E0A439B6A31233C0F1B6B5164320F74860817CB3A82F79828191300C8B9543A5B1E2C59B9C6867EAAB23C542787262233578C1FF30A3A1A06991343962119EF718CB35080C6C785F91709F8B713EC7B1F47BB9D2F1C9D394CC6FE24CE45840322912F2288335AC78402C2CAC4614B93A97104719A68963696A82477DC43A959A9AEB004AD3016AB18A33BCB3F61F731F91AB66D61867A94B2729C01C3D50737720249406333ACB1DAE84C9EEB89935770F4970A8E4B7B83C12A1E44C3EB360B42E77BD4435FB6F65CC14B894C387D0445AF3F28CC2434138A07A667E5AC6BBBA72DC3B7EAF788D8621DDE4034A430C2DE165B313733E2DAACEAD1A014FB09D5B834411B8325728EB325B12310992012A7C4E05DBA5017A59BA9777A9B3D5A681F79252E1C15FF8593BEF7CD3C059153435BEE16CD2B8433EF80BB21CBAD40C6B945D7B6DDAC39D0D0B558C7A42D9BCC701AADEA5707F77498D5527E4F0B0BEE834946302191D06F46116A77B884479A75A585A0C2105343584AEEF31BD8A7AABBF669A2B2518F3805BE390159B974CE43C83EF68B72024A42A942D8A03FFC5A5429265214B68DFD4AA094EC4E1BDB6D8295C36CB50FFFC35C6A8B95172A0416130AF7560EF1020CCF09C400101705EC1305AC95CA03143D22C93D72BD07E83AFCA94EC379142BEA095C754533D802183A9B3CF2796EE2988184076D6C2235F39D250B080750762A0A31FFD26130700F6799867CAB43841AB906377EE5BB48DCAAA3BF79584AF9360C937FC371C1DE16BF2BA57359D060328A8CC01B948ED14197286AD0E8ACEF142DAC64B4FE260CF066886C8CA9292BA2B3315A2D719C53B7ACBB5125BBEB8D3DF4CAAFB08AC54B8AA2816D3B44630623101F3B69E15C32C8E6912D61CDB2602734B206863C9B488431D72000E59C36E031471BD693E238314BC282DD8B4702D334E5985A8E89045F40652300A9DFEACF0C922E5B631F00C434085C5DAC53BB4637C624C80DCD59A2205C8C5717554C114999E79B7EF020B7961F007541D009350BCC427AACCEC0B0C9E3656214255689B24AE3CC874FF7C0574B09F0D8223E4C19CFB381A8C72F7324AD9E600669204B2590BD9FF6A589D26E0F2BBE575C39CB304ED5C8B692A17B65A7A27623144E7248EEEBC4AC80239DE04E8B3928E750A0BD44C30315647B5A6BF3E5955971C9F62B44EE01221EF93FA76843BE32408563C111447541D98263212CAB014E7897AFBCA8618A27B56BB9725AA1B711315E30AA445537BF02A201E5362E6B6B82F52506CF8C1E82F7912612B6E9126B7E725B30451D2001B76CB575EBC847DB9B2A048277202B1434F9C936DA846A6773DFE4193D019C7A7601FCA114737559DF7AAC095849692831156A13A9060510E05BB9F48A01506A08F63CA5CB4B032962B6D484E8CB742B0709023B9926562BC83C72C047833E27760D6A8A8C559A096600254909DB3668B0E2C8BBAB67413827A2C808BF6C2662553B4D9166A152931F30031FB15822C12462B714276C743B2691E69321946CAD96F9BD71982F47970FCE751B013630F5AA90334C657D286F94D325333B64C6BC9955E859F8C51C1961400388BB9DE91FBF4BAFE8853B1CE98E9F1076AF1406458B00CCF021DA408575E126D850A3A1D51F31069194D65C4DF88B94D8B43A4B6EE651654D6BC72B8C283C49093EB3B1DADC9BD329B11862542DA3B770657318F13FE4B07B1D22482C0410652A3B52C2216F3028FA47C3E5934C3540B644A282729196CA366E1064BF5E57AE739229E3F092C3CC91E8E833C4E314B6CB91E6873F35CC4AD2B60281C862B9D0CA89AA0966713CA0E973A766CF303AA1082266923CBA1CE7A91964440D43878FD359583C6DE0F5C6C86424A1096D5BDBB843990F0B8285681BBA7AE82008A56F992267133B7BD1A55F0FB37F84D6B2609CBC49C968925069AAB3498FF7C986F522B0F2A1512A8CB5A6BEBBE62F28901F2C5073896381255912FC482E9EF57132EA5F5F61B36A5A17366CC924D8859338CBFF9782D168618AD6A7E53446BC7BA73C86B8AAD129CCD6C796B2883FF989650C04AF16B339EC34912226F586286A553DB3362C5E1056A369B22C1467CDD4A633B03585F82116510127AAA1459B2DFE049E6F191DD7CB4D0A8AC5DF064E64B9021440357C4562302BB0ED0A6AA94BA1DD55A50829A574007608BC61508A0F17D41DC3BBCB8E91C4DEE25D2EA4700D905348026046450AD0C2768AD72EB0B770D45A7416C041160170B8511DA2958F44C9B06060183BB37967282062E0A93EB5BB4B2B15A4152C6F19B730B724F94AAB64B60B7EF5080B251AE0290746C249B1A76C96825653A89914B1CE70982D3CD437837854C6D28F871999073B1C2024088F9B8C1EA5C3F4E86DC76AE2B345932A0E7025F8CE6101884469E31AEACAF4D77E3F1201BC7526A1B77AE8A807E9DE16A9EDE5DA5AEC3CA5F23F5EA00E455D4A091467E6AC6DAFF7ECFE33EFE4042A44F2F801170616925BE8CCA1BD1812A7335DCD80F9CF14 +encap_coins = DA9C015B918108C1596309FE0042218DE4C31900B8DFA6C1CEC28AD10988BBC7 +ct = 707E5B831A86D3622A2FB3D61B9600BFF5CEBFBB43958F4B2B13BAF71915ACCA275DBC994A52F5F346488B44A0E3203EDC35352023AA01C1C1A302CE81B16BBFC5AB6B3E343D2DC132C6DCDCC1241F71270AF67818C329F8862D2789B2FD27CC33868371362832B2AEE9A2E16B19E3BB3B7A8AA70B34F3BB5AA28B5236C41A7DB6135B1D39D0FC2A6308F31B7F49FE2D8CF4D0FD97F98FEF25C6B85A2534182CA4609CD490734D6BC1CB3C48889BF92CEC0DB3DC80D4489AB88866A025C1734ADD26030C8CEDD7114C534F30F9977BB36DA2FB53C0D379B6F05E7FFBBAD6087677E96661AC5C1F88830A86FDB9997FF12B961C0363BCC89369D6F86F8995FA79A4E342A2774F0BB1F368EAAE47DD3F9A9AF674311A8ACF19A3387336114C7F90861A1DDF2CF3CFFA30540BF0302E4BE0C0DF89E833FD4C328443E9525AB5FBF8DDD4B9D91652AE171ED15977E9DB96C80C23C4A4CC754DC141D6A1B69E8DC20F593530F36DDC95FDCCB347E73E36C512CBCC95FE350840FA393B545519110A729D9C4E5495D6B833D96196AD2016A9418BB3FAB8AC8D457357EEE05C89824C9031C63BAE4DE3FC52AD3D43D98A8D53BE1587E3AF4F9738755F18E23346B7F176A0685C49AF4C6063B2CA4FD37EB8EC9DA7425A89C841AD1C51A23F525FCEEF8F3EC1FED63C914A3F5424A933C1DC3AEA1237E8AC6D39FCE95466D91C59CDB4C12320FCD2F4522D07340CBF38F599D9B1B061F768F31DF98E64FB2F1181CC2F47ED79D43000F84083C605D20A895631163AE961BB55ED72AC93C5F52BF007CE19B9F2F5A1BC6B99EFDE60191BFB01FDFF662F13AC64B8D91066725721666AACC7ABCBCA07FA685FAF8A33AE4BFEB9035E87A7E0A4E8831E0030F8291B7A5F0586594E876E7331EC7FEF6B9322D4583FB1B38262A7E5CCFEC658EEB0B698DE9CE3367B65ADEE5FC3B9EFBE3C2DB5674F3D6416745049F758B7E347EA9AFB47C80A4731EFB7F6EC51308DCE0116CE313E77767E60BD60DC3E56583450D8CAE3F008B40F0E8319E91AF882450552412F43F5AF966EFF87DD7B88568AB701DBADD400AFCE440EADBC7C22B6F15265B90F2092617C2410DC21BD18F0E0353A5B8826E9A67A23744FC51345E8FBFF19FF308E9066FE97AAE69BBFC382D77FE8B32FA78294CC8E55512F3254204DA47135482FBA3D9124B569BE55DF1A7FA397237877BD3C9C48AF38DD881A11672503C21F644E1FC2B9971DD996545E8743EA36F4901D39B26F27F46CA421F2455A4E8265880935E128E9177DC684F769C6F0E95259A9F49E93834DD56F71F476E9C107AE149959F6E4471287BB8D6A8B4A90B6B2AC24E9EB6DD7B62A8C46BADB15ED6C793DB462A7ACC6839214666D3011ADB0058299F5569B09D279A9A49774CC20DF910A47516A611A6ECC8B29844ED8B51AE904C2522CFC0F400A0E1BEE691F8ACEA7A832E4FB934E2E59B3BD5DBC5E187F2E33ACF8146BA621B71FD19F3ED93866490CD872B0799E4BD53E24309E381BEF0DBD39DAE0E95BB7E4091051952E0321DD15B6394E439AED49A00688F4B59421FC55BDA840AB1C2095ECE155F2635CED4F243EC2FC4C6E1B063D77B98728A5EFE5AAD536B74E44F1820E891E51F96B4857FD5299A21967E3194A72A20A626D6C2D46A11D77A33A503B3E7C8FD137F0E5B3287B1EF79A9B2896F980C3309AB89AF20EE0B085969EB5B218E6120AF373DA794F745B765AAE8DCF5AC4A620377E07E7E1690019FA31117F7709A971B55B0043618B14017160AF387497B7CDB74DB24B2403DA2DE7798250E0CA19760FB9A6E9BA8CEAEBF9CD8F0D17D666FB8F4D397AA274AA65D494EDFE30AD54E72C2EC558A53BE7CEDB75992969C076D3000FB952B6C3C9D2B578B5785BEF6C3199A6CAC4E6F833DDAD92D7A9D69E3583ACD488B66AA36DBDED12ECC56703E5D698AE8C02AB472E10853211C99743D9F8C7A2CDA8DA2151E7BEB73B810AD846E49E27D07B903E512C318E86F4CBD04DEA2A74D227AE9B5C22E0C430294F4A80B63681E2524629723BDB4CC32DEAAB749813545ABA72E556B341DFB14BCB42CEE2C5D1E84E1F5004B33ABF7743794A63E8DF50E6C56CEA94D894DE8B0BDDD8E4B5C3F43E97C189A7F3F92F0571679050AC6910D1BBCE26777339E5109FBB46611D6FE89A92F5BA2A1ED937D2C068E7250C7C875E2D9301 +ss = 68E8D5D0106AC7C233E2F785C44981C21303C409785688D8BE540966263E55E8 + +count = 99 +keypair_coins = 195D6C86A3DF4C21E3007D7F2768B43C74CB3060E0ECA77F0A5D3271542B9A84D375BC4FB24E98F1EAA01E50A588E96A2B26DAF9421437313FC7E4B520387050 +pk = 5064909F424A15515FBF534B4F660B09E9146C40AC273822EB116AC60782DC519805C41F39A306D7E21D0FC2264B8BB6637B113144B0D459BA833965D3A39C51355416F672B25811F5F2CE8CEC777BA322CE506823D6005D1147600808CA3C4D344A5F9D47336254766003341047AE044691650C907D937E5DAB543F767FADD988E0BBB7EFC25874D5190B893039493204F67E11560E49412B484781C571324F76218976A1633BC4CA3C0A6D8211C6C0171E0993BAF46406F8B85FA0C7F0551B74AB81D642C634EA74B269837E2588228A8645764A2B9A7BC2A802682B22C24C2A55439D14D12E620363271A4468FCACFA8BA686F1BDBFC70CA9C0961F9A488B7962B8C718B9E7A33D8B5306E6A05616C2A1484AA044200038624F65B8A92BA4739C714AC71FB8F12AF92C5CC06C2BB59367C5C471BBE6099D1B19C9BB1AA168C071DBC6E01C5C72FA33171C52B78C1DEB32134DD8AF5D147BDEA32DD6C52450C112BC5A0D9E03B06D807173304972A9866AE4BF6B053D98680858671CE1F252293972C42C4BF6EC2BA9F11BE4325C34F89E7D500DD749AE3C845F7D56815F11A2FB07B9E3F88CACB51E2ED258CF5BB981B089CBA18F902C14E04503302CA929319645154CFA878CFC777F2093A00916A617B6086D973208883ACE08270EB16BE4EC404EB2951BB1AC825840BEE09EBA19A90B5316AB79C3AC062C07F45782F4CCBDEAB590196F8436A8EBDC90EA944C50E842342A5A558AC8E833908C0577F28A15E49863A2139DEC116D99374236C8A7169053FA716756299ED16125D699C39357133FA49FE0DB960A8CBC0ADB979239B64A7B3A702878FC1610868790ABF3968873AE5DC19020B28F1405CCA1B0800EF236E020AED6157892161B54BB3D14A4C64FA1AB949648020CA86064B17FE8B3F7D915C72A68E2B46F16267B7598BC112537B7681EA2BBA503D8A62D55CD76E6579BDA3E032399BA2CA6CF0B74CCC51F9A5357FD4B92CE4906183C0031727C7A966BF0C485A9312F7A76554A35C065278860396C2ED4B0B44B85C3D7C16C65C33FC2033C04294A91323F1602A6DA351F0A6E478264E0E4A6ADDA77DD6A2535A748DAA074AF31AF028509F2C27F15F00E60E72F7A7032DFB99D50C88814167A838758C2685243839D8AC19E76133B40DAC70E49B33FF83299862C3496999DFA90470B7BB17BCD14019B093B5787ABADA26700A83377AE57173FE528D6DC35EFE846D95933D68144EA3ACA554CA0E873BAA6BB926D70A09306621B3705942B4E0D60CBF200C10C3C4D5F7C8C75899AEAEA40CEC8928AE25BAA2C7F139392221CC7042C05BAF58371010492BC2125D27A9BB01A28A3855C98B894D4165689AF39C0A26A6B920874728D475DAA731940457B24199D11841D5BC369962C1CF3920B6AF974B3150189919959C3B4E556C56FB22E5597B64506575F6799DD86CB0669651A1C017C8A74E5F63CC60B9047B21DEE777DF6010BD6A614F9A63C72074B7909137CB7155FEA72BEDB7428E0B197246AF69121E97923F861AF31F10249E11795A180C0C6C056D58D848A62370278308C4CC2B466A8D7231456C06E4B9F1FAA65A8F0113F99238C52AE3C3A24600C4E943947C8C653C946BBF6B4CEE89646AA23AFC7B22F0D45464337A90A7C22CBDB4449B24D5BF3C070778773B92055206CA895105E264C9757918F6BB76BFC93DE826C61C77B6A51B135915235271FAAD3CF608C0033B2581FC522965257EEF576EBF7379A173B1B269E27648189696B30346D5202B560784777F88ACA2C9F900344EEF8AA0CB4A86ED6335BE29B91248780674BBADB5B11F967A663C2F9129B73EC584C50AAAE9771D258272198261F362D93830880E4B60E4B142B3822816501C89B5011681A5EC2BA2B03CF9EB1886C33C1C72CB6061B10638931E5F1461F413E5766A7BECC59A052A0E221C6419752258955DCE743131890BAB88B8DCC5738EB6F409C1C0D888DE1D0C5A7BB03E80171C2B41DFD411F74B5165804B82EF473BDF5CA37983CC1047FB5A4A34598C8A98A5B0EA78FBE27B9929753B89A6C9F2C7D0677ACA4E296F0D975F2F5731D822627C1964EC1BB1AC7452BF0C5C0735D6F75304EFA4410E4CD20557B574CAD1674395436203DB728A58B8E0B95183C10653B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B8 +sk = 55873EC8C5BAC259501E025FAED327B9B659B0810E7D43B8BF7A25A8C1A51062CFBC9BBEAB182747196797913398DB1C1CA41C1CC3A883400A29797AB4CBB553076C204167AAD2208355279F504DD9A476985362898B4E423821CC2642C335C3C953C866451CECE03098D5A2AE366DDAE1A06E05547E1C0C0667CC98494BFA778EEBC5CBACCC3038F93B82E57F814799CB7A921FB14042AAC83A1B4897BC6A15C87FC94144828966C49B6CB8F842A3157B60D6B3271C3661529D8A93C7DAF7B4DE1396308C0CBBFC9F984617CBB5B1825C88BDBC4C74C58EF3D54D089613A6A431E3A59ACF4201FBB6828DB0061F1BC514DCBFE72023CF8102E9834D5D6BBA8A354FE04C6008B37F9B07857CDA1238F5A562F288F3217FFD1A1BF8B2A0FCF3AF0310C84BD6CD805C246C4A227C9BCF963093A9755CBA968E7C06CC4F987B516171461B69E013076CB652C2A0B10F1B0FC9D6B583A929FA3905BA4B6B41F19D862C82B5F170277530A278773FA740ECA749C00A61735AA1A27719CFB75EB0768956718239F43239E25A316339DB665EB9784AB581137D020B992782956522B824B3EA4CB540A4B12AD7C512046711B0463F779E1279BCD2B7238580C72DF6120850376DB48978DC717CD1424D0B5E7331B76D0AC0B024C6283C8418E5B1A7A297AA483E5D2A65F2181EDE32C69CC4B9A8C4C0B90BB17EC06336D2100766AED931876CE45435B5662DD8A5B9F545292C870A16925546AE0CECACFB737647504EA1A29D13E0BC2D060BF7480345051E9379CFB0F901B9A426641802E5522FF8B199439026B123CF9B5827FFA147567912C46C88CEF0B41D9526D227A72262C0E3B3157DC4898E07CAEBC8038142B5172A799B8A6DB0F7703730C98E1957FEF13D5D7B2A52945EFF5C4337B6CC5004BACBB419BA73568AA357F61C70383447C6015A5896B9C0C0A2F2C7A76D940278D736D6B685F4FB3CC392CAAC1830B439468B6BC73585B4205751E55103099986308702A477588611A990580D88657024FA6D371550141405A8240109824788675D2546AFAD54628E93281ABCCAE4EAC11D200AA5C40A9E440D9F2A40DEB31C2688A3266C9E16B60461087DA271A1973374C99693C8111F9D458F92AC3208268078B177C818038305AB421B6D8297063061BB36F1318BB2108163A723A4BFC3C2A25F958F28B2B806A15E4310B8852103843C8AC26C7773084F1F82151C52083E69772A049123027916F039FD08713B98039F3B84CC83A8F88B2C19F48A958A443339A5A2158DFD7A08D11983601A1892A8C1152C602EDB1592C3AE555B2EE54C5DC6020C0B95626FC06D85D78120AC135FD369DE6B6AA902BB015A7BC3BA13A7391960C533D2F1A6278494E78B6A3C5B91A2B1AA2A0752E5C0A30E33CC86DCBA2E3232C98B9AAF1BBDF9E825B15A6DC3A741D43A53EB10AD18E93541E224EC5A952D673984990AF0D81577D1BC83B09856794D11707FAAC63A1E49A799224B51464916BC07F0A69F06F26696F5806E92CA4ADA050CDA48A9C90635A9C68ACC753A711115C35488758A68256A32F4964C431D50C0A8C5053D1A41126A952270A309F69931C32194FD201BC3809DB548A0005585081C6B11DB7A19E14F9A4777C5C12B35289100D979E5B5B306C6692136A839CA4DDA2A1E9D3BB3C418A732EC4997D124B7D6CB4BB090C0F35AC2D206F2B1B19DDA1929AC935B2CB24E320EA87ACBCCCAC6D4454B8A183E89E8738DC645F50239232BA5EA03BAA3590CD29C05FF4C33D8107AADE2104BC879EBAA431294B201E2B589647C29C66F7F3677EC30BB1BBBA093B60ABB147CDC07748B098EC1F83855464B1AEBB41BF30F4CEB59C41C24701A39DC74B44FD8505980C1786275CF16272A29C285406C70EAC1DE5969D459CE1F211C8A47BE727A57A772566984452E2B2EA96ABAEB3A0990B9A7FBE5147F6A438E27A3624355B97C7140406D52870C421754886ACACCAB09B2351AD28716C476B61D7C9082F8CD81D31554F334AF75030C4075D2965A9DF37AF81A4588AC0241183247C5047BB81DFB6BBD7252993D69CF5660ABCF2AA5C9787F10C02793E9BB1CCBC3761B25759A38CF2C28ED1CA65700112E540EB4B0587E036B9502223FB95E2815A5E6F9C384369C24B1A962C4B05064909F424A15515FBF534B4F660B09E9146C40AC273822EB116AC60782DC519805C41F39A306D7E21D0FC2264B8BB6637B113144B0D459BA833965D3A39C51355416F672B25811F5F2CE8CEC777BA322CE506823D6005D1147600808CA3C4D344A5F9D47336254766003341047AE044691650C907D937E5DAB543F767FADD988E0BBB7EFC25874D5190B893039493204F67E11560E49412B484781C571324F76218976A1633BC4CA3C0A6D8211C6C0171E0993BAF46406F8B85FA0C7F0551B74AB81D642C634EA74B269837E2588228A8645764A2B9A7BC2A802682B22C24C2A55439D14D12E620363271A4468FCACFA8BA686F1BDBFC70CA9C0961F9A488B7962B8C718B9E7A33D8B5306E6A05616C2A1484AA044200038624F65B8A92BA4739C714AC71FB8F12AF92C5CC06C2BB59367C5C471BBE6099D1B19C9BB1AA168C071DBC6E01C5C72FA33171C52B78C1DEB32134DD8AF5D147BDEA32DD6C52450C112BC5A0D9E03B06D807173304972A9866AE4BF6B053D98680858671CE1F252293972C42C4BF6EC2BA9F11BE4325C34F89E7D500DD749AE3C845F7D56815F11A2FB07B9E3F88CACB51E2ED258CF5BB981B089CBA18F902C14E04503302CA929319645154CFA878CFC777F2093A00916A617B6086D973208883ACE08270EB16BE4EC404EB2951BB1AC825840BEE09EBA19A90B5316AB79C3AC062C07F45782F4CCBDEAB590196F8436A8EBDC90EA944C50E842342A5A558AC8E833908C0577F28A15E49863A2139DEC116D99374236C8A7169053FA716756299ED16125D699C39357133FA49FE0DB960A8CBC0ADB979239B64A7B3A702878FC1610868790ABF3968873AE5DC19020B28F1405CCA1B0800EF236E020AED6157892161B54BB3D14A4C64FA1AB949648020CA86064B17FE8B3F7D915C72A68E2B46F16267B7598BC112537B7681EA2BBA503D8A62D55CD76E6579BDA3E032399BA2CA6CF0B74CCC51F9A5357FD4B92CE4906183C0031727C7A966BF0C485A9312F7A76554A35C065278860396C2ED4B0B44B85C3D7C16C65C33FC2033C04294A91323F1602A6DA351F0A6E478264E0E4A6ADDA77DD6A2535A748DAA074AF31AF028509F2C27F15F00E60E72F7A7032DFB99D50C88814167A838758C2685243839D8AC19E76133B40DAC70E49B33FF83299862C3496999DFA90470B7BB17BCD14019B093B5787ABADA26700A83377AE57173FE528D6DC35EFE846D95933D68144EA3ACA554CA0E873BAA6BB926D70A09306621B3705942B4E0D60CBF200C10C3C4D5F7C8C75899AEAEA40CEC8928AE25BAA2C7F139392221CC7042C05BAF58371010492BC2125D27A9BB01A28A3855C98B894D4165689AF39C0A26A6B920874728D475DAA731940457B24199D11841D5BC369962C1CF3920B6AF974B3150189919959C3B4E556C56FB22E5597B64506575F6799DD86CB0669651A1C017C8A74E5F63CC60B9047B21DEE777DF6010BD6A614F9A63C72074B7909137CB7155FEA72BEDB7428E0B197246AF69121E97923F861AF31F10249E11795A180C0C6C056D58D848A62370278308C4CC2B466A8D7231456C06E4B9F1FAA65A8F0113F99238C52AE3C3A24600C4E943947C8C653C946BBF6B4CEE89646AA23AFC7B22F0D45464337A90A7C22CBDB4449B24D5BF3C070778773B92055206CA895105E264C9757918F6BB76BFC93DE826C61C77B6A51B135915235271FAAD3CF608C0033B2581FC522965257EEF576EBF7379A173B1B269E27648189696B30346D5202B560784777F88ACA2C9F900344EEF8AA0CB4A86ED6335BE29B91248780674BBADB5B11F967A663C2F9129B73EC584C50AAAE9771D258272198261F362D93830880E4B60E4B142B3822816501C89B5011681A5EC2BA2B03CF9EB1886C33C1C72CB6061B10638931E5F1461F413E5766A7BECC59A052A0E221C6419752258955DCE743131890BAB88B8DCC5738EB6F409C1C0D888DE1D0C5A7BB03E80171C2B41DFD411F74B5165804B82EF473BDF5CA37983CC1047FB5A4A34598C8A98A5B0EA78FBE27B9929753B89A6C9F2C7D0677ACA4E296F0D975F2F5731D822627C1964EC1BB1AC7452BF0C5C0735D6F75304EFA4410E4CD20557B574CAD1674395436203DB728A58B8E0B95183C10653B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B82460170E6CF1DA1E7B92037F51B4E7674D9ABF74F5C225C5C6CE16A971691284D375BC4FB24E98F1EAA01E50A588E96A2B26DAF9421437313FC7E4B520387050 +encap_coins = 05874F9D5A2E9133D385F3326FA925129DFF03359D78B0D07ED78FD5C1307800 +ct = 1676438E2F1D8686CAEADBF5FA4A3C83D252607B015EC7D7138C75DBA8A804BC3F0E284BD4FB1262481DF6565C4EA5B95B45916D6159D06D6BDD05BCA2840490F823C2323E54B583643EE311C97FD37F78B0E6F9775BBCC6F11974BF338A864C5ED8F36111BD6D69221CBE27029F31C12D40D117B5BAE93DD0E724C23F98CF69D7C990420E57E9DED2DFB2784E81F5A6FD92BCC95194333835FDBF4A08CD969AC1010ACA6FCF174F3402AD7C1F9E9400CC595BC73C7B9CCDFB33F59C5FFA700717E250C209FB29C63F9290297D40865338AB9DC942214B10A768AE82944980290C56B62BC1121C9D8A651A61AA9CE1C5578F0107DD952E325718FF08B62525B611454A7478A3548C43EAD4E14F749C94A4B06F49F8C663AEF035140245127275739091E381114F5F04E1B8901DAA131EBAAB0C8578721F934633CF47943CAD178EF9EAE9FF526825801E455266C296853991E457CCF7E68C5E36A666B59272DEB94630E4754F93C57EDECFB58D07740D8042578256B490849933FD6954277C0C8EB920E0ADEA2815D85838D81ED6A2F74CCEF832F9BA27E2D540DBFD4D45FD0BAB681C8552AB4D36D3823D7BC73F708EAF51A04A1552472BB4835E93B4E81FA0448730F8E4F10764242C0BB28206AB726F0E999E13B56553FCCBFC0A47CCE27A66C421AB52BC96B679BCC60F91281EA7A739A3880C37B1B3DE7C8B08BD5D699059F57020D3B1FD0E3D86C856A938658585BC9FD296CB633417FA30DDDDA2E164AF5DAB1A1F736C307E0E9EBF6901C92D9EBEB6AC37F59BA91F840552D12CAAD721F7F9A240202EDDE4E4CFCBA422366DEBE68A48D140B095F520082162AF9993194161157C1C7A2ACBAB57A9885EB08BED2E023759C381F2BB1100343BF09304940637BAEC307C4AF146F4A2F842E17077C1DF2E1821B9687AF3E965CA40B80EA089F54531D48309C5B7F11A6B256A544BD446FEA578BD1185FD3EDA9F42841BC64B792A01EDF36E6982E780012E36B4831CCF857B7C54A63443B747058EA132DA2143B323003C158271C1946D64992C2B7C3D3E113B4E6CD005592CCB3FC49AC0AD055C7627D2261EED10BB4A9FB13B09C01288684CF2B32028E9FC9A7DAE2D6810040589BDDD71513E28275E86DBFD118BA4787BD8C078EDC4B90E8696E085003950A7B64E171EB5B3DE01A99C382C299325A81FB4E1598F97C4302600F46EED602430C8A92EEADF8A88C449787B53071B1F5F3CDECBD10653F73FBB976DE0165755F5DB4218349AB24D16A15EAD983D0F11EBC8E93402C02B53EE650DE56A8628731241150F4D02695F26383D6558033B86475E5C1E2320F8B8A00CA1D7918797054F82DC009872E72AAF615B8C1162290049AA2196D080200F1281B0A0682B0A877B6250F45D142137A6E6E7BF49C1A7BFC4CCEA66ADB4E7A8AD713D9473ABDFDA0746F914FFCABE71508FDBD2D067E367148C06D7800DF5F82B87378F3B2D59D4893644820FB333D67E2CF18745688401AB72B11DA59DE5DC449B207C33F13C9BF68B9678AAA44F360C09C15C9EFB902735B429C6ED5B9E76BCD9C45187ADE4C18B0A7DDF33E984E3BA0E9BB503FC680D2EA6F837B0F2A7D097536E4517FACFA85D002089684C71A8B626F6ED1BF99C9DD5EB56395048807F3092061551B84D2EDBF5DFC8905F6FAC3008C3B1041D9BBC98E2051422AFED0E2D52D7C48BC80EA57ACCBD45DBCA5DE698D38F0C6114379EF0E9A7DE5DF5E04281CBDF62C5321CE2A2493EF0D3FE5B18B2CB3695763CF96E16BEAF394F0F548D085E34EC4FF728B66E06B44931A197F9159874A23765F9971644E4C5F374CA749B2F5F796257BCD03755E1C1C80FDA26E6907F7291DE61A28A7D55C710A47BB1CC57F1200A30411F5106CF1300678D39BE9C4E7F195DA7EA8B93BC02A0B27D366A51657C61EF689C7DFFE2DB27AA58ECF960920B31283D2DB337BDADA0CDD95D0D51DB029FF562226B9DA7393685598CBE461614B701C6C7E1610C49634C92536DBDFDC12DC6D90852DC18459DBC7C19291ED87BCF8B34D50EEF28FE6E88429F2B4FD875D703F0977E29E2E452F70D08EEE25D5CF9414CD0CD704499D2B68FC5F166D6280659AB4F87F277E7032EBC407896227823201D886EC980427ACCA498CB94D9C5511AFB66D309C9184989690E4F3239716FB90601AA01F47FBCC32828470326A5D7 +ss = BC3D5BFDC91DC7CBA649CFEA9E44A56A96E69F1821D6A4A8232A7789349BEF01 + diff --git a/crypto/ml_kem/kat/mlkem768ipd.txt b/crypto/ml_kem/kat/mlkem768ipd.txt new file mode 100644 index 0000000000..844aa12541 --- /dev/null +++ b/crypto/ml_kem/kat/mlkem768ipd.txt @@ -0,0 +1,802 @@ +# Kyber768 + +count = 0 +keypair_coins = 7C9935A0B07694AA0C6D10E4DB6B1ADD2FD81A25CCB148032DCD739936737F2DB505D7CFAD1B497499323C8686325E4792F267AAFA3F87CA60D01CB54F29202A +pk = A72C2D9C843EE9F8313ECC7F86D6294D59159D9A879A542E260922ADF999051CC45200C9FFDB60449C49465979272367C083A7D6267A3ED7A7FD47957C219327F7CA73A4007E1627F00B11CC80573C15AEE6640FB8562DFA6B240CA0AD351AC4AC155B96C14C8AB13DD262CDFD51C4BB5572FD616553D17BDD430ACBEA3E95F0B698D66990AB51E5D03783A8B3D278A5720454CF9695CFDCA08485BA099C51CD92A7EA7587C1D15C28E609A81852601B0604010679AA482D51261EC36E36B8719676217FD74C54786488F4B4969C05A8BA27CA3A77CCE73B965923CA554E422B9B61F4754641608AC16C9B8587A32C1C5DD788F88B36B717A46965635DEB67F45B129B99070909C93EB80B42C2B3F3F70343A7CF37E8520E7BCFC416ACA4F18C7981262BA2BFC756AE03278F0EC66DC2057696824BA6769865A601D7148EF6F54E5AF5686AA2906F994CE38A5E0B938F239007003022C03392DF3401B1E4A3A7EBC6161449F73374C8B0140369343D9295FDF511845C4A46EBAAB6CA5492F6800B98C0CC803653A4B1D6E6AAED1932BACC5FEFAA818BA502859BA5494C5F5402C8536A9C4C1888150617F80098F6B2A99C39BC5DC7CF3B5900A21329AB59053ABAA64ED163E859A8B3B3CA3359B750CCC3E710C7AC43C8191CB5D68870C06391C0CB8AEC72B897AC6BE7FBAACC676ED66314C83630E89448C88A1DF04ACEB23ABF2E409EF333C622289C18A2134E650C45257E47475FA33AA537A5A8F7680214716C50D470E3284963CA64F54677AEC54B5272162BF52BC8142E1D4183FC017454A6B5A496831759064024745978CBD51A6CEDC8955DE4CC6D363670A47466E82BE5C23603A17BF22ACDB7CC984AF08C87E14E27753CF587A8EC3447E62C649E887A67C36C9CE98721B697213275646B194F36758673A8ED11284455AFC7A8529F69C97A3C2D7B8C636C0BA55614B768E624E712930F776169B01715725351BC74B47395ED52B25A1313C95164814C34C979CBDFAB85954662CAB485E75087A98CC74BB82CA2D1B5BF2803238480638C40E90B43C7460E7AA917F010151FAB1169987B372ABB59271F7006C24E60236B84B9DDD600623704254617FB498D89E58B0368BCB2103E79353EB587860C1422E476162E425BC2381DB82C6592737E1DD602864B0167A71EC1F223305C02FE25052AF2B3B5A55A0D7A2022D9A798DC0C5874A98702AAF4054C5D80338A5248B5B7BD09C53B5E2A084B047D277A861B1A73BB51488DE04EF573C85230A0470B73175C9FA50594F66A5F50B4150054C93B68186F8B5CBC49316C8548A642B2B36A1D454C7489AC33B2D2CE6668096782A2C1E0866D21A65E16B585E7AF8618BDF3184C1986878508917277B93E10706B1614972B2A94C7310FE9C708C231A1A8AC8D9314A529A97F469BF64962D820648443099A076D55D4CEA824A58304844F99497C10A25148618A315D72CA857D1B04D575B94F85C01D19BEF211BF0AA3362E7041FD16596D808E867B44C4C00D1CDA3418967717F147D0EB21B42AAEE74AC35D0B92414B958531AADF463EC6305AE5ECAF79174002F26DDECC813BF32672E8529D95A4E730A7AB4A3E8F8A8AF979A665EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B53922 +sk = 07638FB69868F3D320E5862BD96933FEB311B362093C9B5D50170BCED43F1B536D9A204BB1F22695950BA1F2A9E8EB828B284488760B3FC84FABA04275D5628E39C5B2471374283C503299C0AB49B66B8BBB56A4186624F919A2BA59BB08D8551880C2BEFC4F87F25F59AB587A79C327D792D54C974A69262FF8A78938289E9A87B688B083E0595FE218B6BB1505941CE2E81A5A64C5AAC60417256985349EE47A52420A5F97477B7236AC76BC70E8288729287EE3E34A3DBC3683C0B7B10029FC203418537E7466BA6385A8FF301EE12708F82AAA1E380FC7A88F8F205AB7E88D7E95952A55BA20D09B79A47141D62BF6EB7DD307B08ECA13A5BC5F6B68581C6865B27BBCDDAB142F4B2CBFF488C8A22705FAA98A2B9EEA3530C76662335CC7EA3A00777725EBCCCD2A4636B2D9122FF3AB77123CE0883C1911115E50C9E8A94194E48DD0D09CFFB3ADCD2C1E92430903D07ADBF00532031575AA7F9E7B5A1F3362DEC936D4043C05F2476C07578BC9CBAF2AB4E382727AD41686A96B2548820BB03B32F11B2811AD62F489E951632ABA0D1DF89680CC8A8B53B481D92A68D70B4EA1C3A6A561C0692882B5CA8CC942A8D495AFCB06DE89498FB935B775908FE7A03E324D54CC19D4E1AABD3593B38B19EE1388FE492B43127E5A504253786A0D69AD32601C28E2C88504A5BA599706023A61363E17C6B9BB59BDC697452CD059451983D738CA3FD034E3F5988854CA05031DB09611498988197C6B30D258DFE26265541C89A4B31D6864E9389B03CB74F7EC4323FB9421A4B9790A26D17B0398A26767350909F84D57B6694DF830664CA8B3C3C03ED2AE67B89006868A68527CCD666459AB7F056671000C6164D3A7F266A14D97CBD7004D6C92CACA770B844A4FA9B182E7B18CA885082AC5646FCB4A14E1685FEB0C9CE3372AB95365C04FD83084F80A23FF10A05BF15F7FA5ACC6C0CB462C33CA524FA6B8BB359043BA68609EAA2536E81D08463B19653B5435BA946C9ADDEB202B04B031CC960DCC12E4518D428B32B257A4FC7313D3A7980D80082E934F9D95C32B0A0191A23604384DD9E079BBBAA266D14C3F756B9F2133107433A4E83FA7187282A809203A4FAF841851833D121AC383843A5E55BC2381425E16C7DB4CC9AB5C1B0D91A47E2B8DE0E582C86B6B0D907BB360B97F40AB5D038F6B75C814B27D9B968D419832BC8C2BEE605EF6E5059D33100D90485D378450014221736C07407CAC260408AA64926619788B8601C2A752D1A6CBF820D7C7A04716203225B3895B9342D147A8185CFC1BB65BA06B4142339903C0AC4651385B45D98A8B19D28CD6BAB088787F7EE1B12461766B43CBCCB96434427D93C065550688F6948ED1B5475A425F1B85209D061C08B56C1CC069F6C0A7C6F29358CAB911087732A649D27C9B98F9A48879387D9B00C25959A71654D6F6A946164513E47A75D005986C2363C09F6B537ECA78B9303A5FA457608A586A653A347DB04DFCC19175B3A301172536062A658A95277570C8852CA8973F4AE123A334047DD711C8927A634A03388A527B034BF7A8170FA702C1F7C23EC32D18A2374890BE9C787A9409C82D192C4BB705A2F996CE405DA72C2D9C843EE9F8313ECC7F86D6294D59159D9A879A542E260922ADF999051CC45200C9FFDB60449C49465979272367C083A7D6267A3ED7A7FD47957C219327F7CA73A4007E1627F00B11CC80573C15AEE6640FB8562DFA6B240CA0AD351AC4AC155B96C14C8AB13DD262CDFD51C4BB5572FD616553D17BDD430ACBEA3E95F0B698D66990AB51E5D03783A8B3D278A5720454CF9695CFDCA08485BA099C51CD92A7EA7587C1D15C28E609A81852601B0604010679AA482D51261EC36E36B8719676217FD74C54786488F4B4969C05A8BA27CA3A77CCE73B965923CA554E422B9B61F4754641608AC16C9B8587A32C1C5DD788F88B36B717A46965635DEB67F45B129B99070909C93EB80B42C2B3F3F70343A7CF37E8520E7BCFC416ACA4F18C7981262BA2BFC756AE03278F0EC66DC2057696824BA6769865A601D7148EF6F54E5AF5686AA2906F994CE38A5E0B938F239007003022C03392DF3401B1E4A3A7EBC6161449F73374C8B0140369343D9295FDF511845C4A46EBAAB6CA5492F6800B98C0CC803653A4B1D6E6AAED1932BACC5FEFAA818BA502859BA5494C5F5402C8536A9C4C1888150617F80098F6B2A99C39BC5DC7CF3B5900A21329AB59053ABAA64ED163E859A8B3B3CA3359B750CCC3E710C7AC43C8191CB5D68870C06391C0CB8AEC72B897AC6BE7FBAACC676ED66314C83630E89448C88A1DF04ACEB23ABF2E409EF333C622289C18A2134E650C45257E47475FA33AA537A5A8F7680214716C50D470E3284963CA64F54677AEC54B5272162BF52BC8142E1D4183FC017454A6B5A496831759064024745978CBD51A6CEDC8955DE4CC6D363670A47466E82BE5C23603A17BF22ACDB7CC984AF08C87E14E27753CF587A8EC3447E62C649E887A67C36C9CE98721B697213275646B194F36758673A8ED11284455AFC7A8529F69C97A3C2D7B8C636C0BA55614B768E624E712930F776169B01715725351BC74B47395ED52B25A1313C95164814C34C979CBDFAB85954662CAB485E75087A98CC74BB82CA2D1B5BF2803238480638C40E90B43C7460E7AA917F010151FAB1169987B372ABB59271F7006C24E60236B84B9DDD600623704254617FB498D89E58B0368BCB2103E79353EB587860C1422E476162E425BC2381DB82C6592737E1DD602864B0167A71EC1F223305C02FE25052AF2B3B5A55A0D7A2022D9A798DC0C5874A98702AAF4054C5D80338A5248B5B7BD09C53B5E2A084B047D277A861B1A73BB51488DE04EF573C85230A0470B73175C9FA50594F66A5F50B4150054C93B68186F8B5CBC49316C8548A642B2B36A1D454C7489AC33B2D2CE6668096782A2C1E0866D21A65E16B585E7AF8618BDF3184C1986878508917277B93E10706B1614972B2A94C7310FE9C708C231A1A8AC8D9314A529A97F469BF64962D820648443099A076D55D4CEA824A58304844F99497C10A25148618A315D72CA857D1B04D575B94F85C01D19BEF211BF0AA3362E7041FD16596D808E867B44C4C00D1CDA3418967717F147D0EB21B42AAEE74AC35D0B92414B958531AADF463EC6305AE5ECAF79174002F26DDECC813BF32672E8529D95A4E730A7AB4A3E8F8A8AF979A665EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B53922D4EC143B50F01423B177895EDEE22BB739F647ECF85F50BC25EF7B5A725DEE86B505D7CFAD1B497499323C8686325E4792F267AAFA3F87CA60D01CB54F29202A +encap_coins = EB4A7C66EF4EBA2DDB38C88D8BC706B1D639002198172A7B1942ECA8F6C001BA +ct = D13B96D6586F1AD5BCAF251E3CC9C42DD50A34CDAB37EE370F8174B6D52B55A9CB6703C4CA7B7B515E71A608C4489204A84BB6475BECCCD21C98C6D2DDC48AE3A8B569015F4385B9BC80BC25F98CC9F66D75DEFC1F983F7B90B44AEBD416B53379FD3482981A2439051D1AE9BFECDE0B8EBCE6405D5FD0C2260762EAC85B20AD60538A7AA5C46D8AD68196D7B877211D7BC08A3AC037A7539C6DA67AB5B04B5B39A7E525F7DDC65E2747FB295E4982DA339620DCFC8E7B56581DC941662CD53D4BC61EE74F11869465514D26F0CC5A35FB67C8C52F491482A4E64311FDA2296166FD94D58B1F6B9EB2EB50B1268ADE982C5AE0810308223ADE904C81090B6B2148F0C5CE4F516D6103E859A057F672D129A247C9880E0086DE29BDAA2291F4E393FEBD6446DEF6F9F6A3E79E05D2F3347982E1BE2292CD8EF8E609957C00306B910CAC7C5FE3D4BC1142645736AAEEE51CC3741D61A47F07B06968006D69DE00D4B0A61847CF94560D2756B0FCE7BE621910BF3673068C658B322BF3F66F5C90C6B1FA025BA9960CAB409C4D6A9A26B5CF00C74E4127050CCA25D21DA89CE2BD92E281B4D56625344EA6729536B1E75F2A02908728D4A04395294F421B77C62A9B024B930C6B5FA5FC530566579D85DB94E8C3D65790F3E7E4D816F224D35A29E44776926F3CAD8A4CD68AD9ACC2BA6ED00D2D606DB23DAF15D7A5534DDBDFE663F7E1B782FFA43E80AD9D5C41035B38C84B00EC17D0CB855942BEF28FA21F32916C9C2BF7CE7BF8AE7E81DB957469428EE265AF6C3B899FA49EFD26D17E671CE086B73B519A011DC971B970F8B27FC7474C29B36F4BEF70808297F0CBCD97AC5C1DCDDF6CE4221077F0762FB7C7130C9790F2818EC059BAED9D53721E4385861A1252EF73B0DCA7FA0AF1055344045A14F492F7109C26755115C99A313DDF6588644284E7C3BBFF0E64DF1C802119DF0A68BA94AB7A0C463DC925AD00EBF2EB98411358180D946B8DD83EEBB2B9D525B544BA86255F3AF379EA1E12DF5A99A77DDD325FA7D8907EE8D328400D1DFF4EF202530CD6DF1AEA6EBAEFD219F31E6F614CA4B045FF6AD35562997DAC57CB0FF74F64B67694EC1FFD25E22DED3D2BCDE07B51BE04D512EB12114C40E787486343C27EB9BC329C2EF555F2590A330A44FC0415369883F3934FA1B557897D2AA0EF135D2C9936A63BC4EB10DDDA7A0D4AFA8C6CD23E7313B2DF6BD5E6C653A5CA88897D857887D3073598460808DB9B5CB3849A07061A019A835A0B5E486BC0F1B665B79019BE7FC547191E3202A5D6D857861C8A672BA3CAB343F5F2584B90634A39FDBC52865D6D3069BC1A6279CA50B0868FFA9C284547E4082943293979DB171E7E6860C3A2222094D4408A20A69DD83F26003805E81EF6009A4A98B8B18CD7FE09B36550D700067DB97E74C1507EB45FB5EC95A1A4A9ADE7C690B8E13BB6669AC28A56F962E69023A559937572C02D9F38D3B15DC3A819141C3B4ED0D9811575F4B3030EF556807BABB2B92FF073 +ss = 1460F573A69383D92C2C272DC0193174B44D227BF95CA81E14A758C3F7E59C15 + +count = 1 +keypair_coins = D60B93492A1D8C1C7BA6FC0B733137F3406CEE8110A93F170E7A78658AF326D9588522D326E7F105F11C4E8D97E119E193AF42DC28409F4F7572ADA538B52C1F +pk = 6DD406B49B9CA035467FD26C6C0B824BEA310F435FBE8BBBD3430B5C39889E6B117E994E2F08823A33789FF858B72715323C6204A241D9835EC0DA85C5884A8A96210219099C8C383C182632280356C1B4F298405258A170E81624E861FC1082D31867A9037E3B90B0AEEAA064D27020DA7BA79398FA92A963A8A294E7720BD4CD9EA213F08063079C4D55B094BEBC4E979444F462B967972E61206FCC80337911B02C7396BC64405FFC0B77CCCD2EBC121A734037CB90B77846B2359C30A451BEB20A6D72C238284E5DF2AD1CC1A33FD5A104965C86251A596360D541240A4828231A827A0168B6D8AC7E27328173886453A9C91498765C2BD9EA9F666BB4A1D60F992538A1A746DF845574F99ADAD23B9744AFA81C7FB79A32B175706454438F46B8985132B8E1CCA10C2B0FA011EAB2428B88CFEF9378A5228E55D7463DFA5022C998ABD6354118B5116B3BC1004F0008134B85A1CF2A9F409A10E14B6D06C26D8E355864C35BC71B60D5CAC33A513EFDF6B9BB83BC880983682C8FB8A81B6927CA52E93835956795488181A8CD82B1A50DD18A25F35E2643CDD76C282E7018BB99624F031418FBC8052C4179B43A5998BE9A20CD2D8A883B313EC282598202ADD6471971C88CD9607D3A8052519930BC5BC71CA4652352B4D02620B8D983B9849CE8B8935F1A4DECC3250DE7B0CFCB49EB7B74E0B5792AE97633B092081C3C6BF58F1B242CA07610C3387098AC3F0F9043901C614590C4EBBC64CE1971E824694A999CBCC430AE923A1432B6A4911162213C429481394A27006B9D48C0AB5801823D756BFD8C6919502D613594AEC81F5669BD4E8495292606959292467CCAC7F688333B3F48A39FCE5C42C9C2653886A5ADF4747CC943B2416348F46DF5B58E4916BA64E9664A4BAAA3E0A9652408C8E5076C226C3A7932C42A846949A2A26B4E2C452F86CACFE5C201AE1321AB5C2CABDA557648A849241F077A799EDBA3582202CB27763047219F5546CF18819322B9C63974B322B949BAA491D97C70F20545886C87086721D3CA2AEAB441264B516975ED0C6044A425853528424532E4D721E85CB0BF65C26082C790765B062916FAC4A0DCECBC2E900C6F600270838E2DF20EE0A907E3613DCEE049C445640362C980A292F123C6C9B5918F21443C996016C44D2A124C5925A8E0C48E89BB167A129FCBF67ADB89903E1249F6028BC176BACC722366139858E583EB582ADA714E79B5AD1BC1A6F18754E100624620968D0702E080BEFEC425BC16B650A307802004C57590897C87E65347F32C324569051D798BEBDB421EB28B2D1A0C662444C7DB32BF97845D7225C7539F457894EB87606FA85B5E804053FB6ECDEA773566C006E540EE65101D99BF314181D666680985C78B103DD00A040DC69CFF389FEA7C18E48A363B943FF042B476DC86BE953A5925076CF749A62A77A9406165D31DACDC3A677B9114D8BF84B43F59F647FA4023535140FDE04285921184809C5F193A7DF45F62187854061A4D6754DA528F3B71A134AA487D9B5F7CFC6838108B8B95B51F5540C9EA5F29990F7BE07EFD502461033F103723093A16DD96C098977F81330249183CF35A636841BD1A9B9796F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D2 +sk = 94B49EA42526935245C45A7D580B6AEFF8BBE0F5342BB8BD2550212AD5935F45CBA7CAA6DF914007FBA79E9946C9433A86A2C4202BBDCEA008AF78975E6619D3582787530DBB7318A530B7B5A27D24258C7CCAAAF505CA92CB853A5818D4269BE812BECF169A05E71EB957557787C2F3B72315281DBA87476B157A06095A30D52B388AC22840755B43440A931DF8A709DC435B415A7BABBB04CCD93CDA00CA1FB090646B1D6514813368A794D38C907163B5917496B018C519B160C5144D6424495626E3A5AB9FFB8D8D3168D77599A88A1D12C07D86498D88DC1AF7FA7DE15073FD4B62801C1A902B215E7CC3EAC350BB63ADEAF9C7594844795A9A6274AA3ECA0CD10891F05795A77B30ADD76B6B1A35338B8156690CA2EA1C9C3B602B23324925314F726535B36DFB355225D37E7C85BE15A5976A8A6AD4E2C35D4C45ACC954368BA6DF88A47DBB8C782336F7EA507A6C2D26D952DC03B4BFB89872644084783AB493CD72D3BEFC2C803B692729638AF69B03E6DB9B82E678A42969FBE770FEF65723F77DA6437C20B203601C884A9B9E08C0B1DDBBC1A66517DCFC76B3F125F7795E5DDABEF0CB00119778575513E05AC38A7901A0E8C8794685C0F274050097BC50168818A74ABA5D71980F5C76279EC0214CD51EFA8A21391567FA052E6DC0CF9BF216CFF9287C80693645A53D71B3D7509F6A432D51B2B0AAD129B594278DA74FFACBB713357D735A744B7C65E482B7E172C67A5B4EDABAAE11222B8BB6B4564AB4FB20C28B4981614B69BB188DB6056607E089F64803D89210C7E604266B00548A2AE27996196A6D6F762C27B22731F7942543CCEF3856EDF9AD1B1B1652A33C3E038DD9B2CD9A4612CE174315E67B26DAC767E50E68508D104BBAE1A2B89B78266D27B109F90BCE1581A8B8888C90C1C4EA5FC1F009D5073780CB4545087C88026B9B9ABDDAB923DB52620713C8B5AC3301E8715AC39D13084926E841FAE41A7BBB7912E10680A78C0C363A251720B2D69467B6CAC5D894F862595072A7C9B14BFEFAA2FDCC75CC42892CEC6184B52962B9B73D663B7D76C1EA499D538BB45A4CAECEE0C8EB93BBA5EC1A8C936156382B10102E3211B2DC15663412805F60590EC33DBAB80D2A3BC05FA8AF5145644F712E004C20F799650159C40DC952C9A54C27E816C3A6A95EFBAB24A31F6C402300F9BAF88A46644B4DF8A24979E80DC30425B9E75A753A36510B87C5FA95CBF36E19A12245876003B54D4E008EF7AB9D83C5A2406014B5CC33B6167F4C452AF45084B7412EC19556D82B0A6A90C1AEA60A72312D8A7A8E5060189717094FF950AF2B503988964F0AA227C523487471D3BC905B6672BE20BC714729B7A71478B07A19F777DEC546C624723AF7B5F6C142274AC5652A7C2D7ABBF1171F2BDB12F1ECC876681A600806D6FC229E6A8F6424419187BD22E49B8F27486DB25371C169B3F61E81131B57659B1030A959790BA5D6424580B1F588326DB9CD01A260B21B8C42062B883854FB173EA7613764D41DD6B89468C7BA6C4236D1A0436B945B8B340983023139293FC48C07659B955453BBA07B0EB4E2A91F594232A47C65C66E1C5C8279F179925C55EE3A0B6DD406B49B9CA035467FD26C6C0B824BEA310F435FBE8BBBD3430B5C39889E6B117E994E2F08823A33789FF858B72715323C6204A241D9835EC0DA85C5884A8A96210219099C8C383C182632280356C1B4F298405258A170E81624E861FC1082D31867A9037E3B90B0AEEAA064D27020DA7BA79398FA92A963A8A294E7720BD4CD9EA213F08063079C4D55B094BEBC4E979444F462B967972E61206FCC80337911B02C7396BC64405FFC0B77CCCD2EBC121A734037CB90B77846B2359C30A451BEB20A6D72C238284E5DF2AD1CC1A33FD5A104965C86251A596360D541240A4828231A827A0168B6D8AC7E27328173886453A9C91498765C2BD9EA9F666BB4A1D60F992538A1A746DF845574F99ADAD23B9744AFA81C7FB79A32B175706454438F46B8985132B8E1CCA10C2B0FA011EAB2428B88CFEF9378A5228E55D7463DFA5022C998ABD6354118B5116B3BC1004F0008134B85A1CF2A9F409A10E14B6D06C26D8E355864C35BC71B60D5CAC33A513EFDF6B9BB83BC880983682C8FB8A81B6927CA52E93835956795488181A8CD82B1A50DD18A25F35E2643CDD76C282E7018BB99624F031418FBC8052C4179B43A5998BE9A20CD2D8A883B313EC282598202ADD6471971C88CD9607D3A8052519930BC5BC71CA4652352B4D02620B8D983B9849CE8B8935F1A4DECC3250DE7B0CFCB49EB7B74E0B5792AE97633B092081C3C6BF58F1B242CA07610C3387098AC3F0F9043901C614590C4EBBC64CE1971E824694A999CBCC430AE923A1432B6A4911162213C429481394A27006B9D48C0AB5801823D756BFD8C6919502D613594AEC81F5669BD4E8495292606959292467CCAC7F688333B3F48A39FCE5C42C9C2653886A5ADF4747CC943B2416348F46DF5B58E4916BA64E9664A4BAAA3E0A9652408C8E5076C226C3A7932C42A846949A2A26B4E2C452F86CACFE5C201AE1321AB5C2CABDA557648A849241F077A799EDBA3582202CB27763047219F5546CF18819322B9C63974B322B949BAA491D97C70F20545886C87086721D3CA2AEAB441264B516975ED0C6044A425853528424532E4D721E85CB0BF65C26082C790765B062916FAC4A0DCECBC2E900C6F600270838E2DF20EE0A907E3613DCEE049C445640362C980A292F123C6C9B5918F21443C996016C44D2A124C5925A8E0C48E89BB167A129FCBF67ADB89903E1249F6028BC176BACC722366139858E583EB582ADA714E79B5AD1BC1A6F18754E100624620968D0702E080BEFEC425BC16B650A307802004C57590897C87E65347F32C324569051D798BEBDB421EB28B2D1A0C662444C7DB32BF97845D7225C7539F457894EB87606FA85B5E804053FB6ECDEA773566C006E540EE65101D99BF314181D666680985C78B103DD00A040DC69CFF389FEA7C18E48A363B943FF042B476DC86BE953A5925076CF749A62A77A9406165D31DACDC3A677B9114D8BF84B43F59F647FA4023535140FDE04285921184809C5F193A7DF45F62187854061A4D6754DA528F3B71A134AA487D9B5F7CFC6838108B8B95B51F5540C9EA5F29990F7BE07EFD502461033F103723093A16DD96C098977F81330249183CF35A636841BD1A9B9796F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D22CEDAD700B675E98641BEA57B936BD8BEFCE2D5161E0EF4EF8406E70F1E2C27C588522D326E7F105F11C4E8D97E119E193AF42DC28409F4F7572ADA538B52C1F +encap_coins = 46401015603C5E2174CB94AC742E836B516E2D570F15DE0B9D0204D79AC64BA3 +ct = F60638FCE41247F51274055EE89130BB905482F23D1914A501EF2A6C23F56BB4BBA0599C263BA4D5F9B31CDDAB90B3A329229F17BCB8F7F103BD842EA37CDE0EF4798BB12A79C49C69C6419C6DD1D8C0DE97754524808ECA7BCF6262ECC31B0A86089420CA9418CFBDB5C5BE19C7D33CD74C3BF005777FEF3DEA1F14E86206FCCAA268A7CB825C8F2ECD7947696CB710484BAB551EBC3C14B81DFF2898A4BC145E72B9B0CC9AFE3DD805AEEBB1BF73940890D1730E774DE326BFE531EFF9FF9623BF14353A609B1DF6523E2F53A90A8B9817571598F67D9C7AE4F0142383A2F7D494518475D13BB0B60DBA7C97A2FADBAF16F3F153E9D1FAEA711EDC16F190E2BCB36D58D1CB6EFA9B3A192BEADC1E3EDC3083E6E8E8344233FFDF4D5A3157F973104347F8B4B493777A6978DCD98BA375122936119A8EBFE8CEAED7B461527FD213C8238BE1A8A1D44D6E7D2E84AF8D2974CD9E8988C45073D18402F919E3B6C8D073D292A1B87962534CDB1505F3E77042EBC00AA567B979B46E709FE4D023EC22A8703A39EF9856FC8A1785E77374577A7F7CE965F5076F652B77D0D59FA929430F97CF2A9C7D4DDCFE988E135B4C4EC925D56EFEB5D55D45C9BE059CACFE8A5FB4A8EA53FDD7CFF0E6C03CC01A45FD78C6FEBB7432F2C562278B9D0DF9CC40161B4FBD726E12E4D8E4D356032768DD3B3B67DD6E844D983FEEBCFF008508FD369B558B9102C10DC20D5F66DB3A5073A055C59B387B44089CA0D0C52B8953466F62C423905A32B903426F15E8E70509543A2D022DD4479B9D453CB2FF30332D24CD8D95B1A7618E98806F8E340A123EE41022A8C03198619289593AD942374FDB6F7AC3F548B46FF75FE1DCAF1C19F856CE790D51AFBBC2A000317C178F7045DFF00B91AD5A5428C25B6891D1470FE3B215557EBCD53EE47C785AD9CF87983BB608E62997D43ABF9A4C1BA66DA974F327CDC5293D83E1AE680AE4316489F23428CAE12C2885BFF0B2C89EC2903F393294EC75388B28F3966037F293EA041C730952539FC8E124846BA79A454EA6171A159B792BEBCED1F47E2488034E05240CCACA485A5C07C392A17E60775E2552666371564A0E31B3FD2AA185D4E3C48A3326D8AE732B10930BCC8EC5AB8AE0798155DADBE5905F855B996645C01CDCE079202666391E57A8E721D5D660F680C7D426BAE9F6617D07C7457324EFDC80B3FD2E0FCA774C0E4F77FFE862CA78FD0D91DCCC55A6C5C609C716D53098DB46C4608A1F455957E8BF87F6F99E18FD7F8ED771C7A0B7BEE1C34F7CCDD1DE08C5EDAF4B5F8567B56620A564CD0C674D0AA28E3244F4639374F7BF814F54B6DC5FA66F2AF8C1A873C4A140F1227BE01FAC40DAB7A68FA4C3B819CA7C72D9B70407BC9F1E2AE27551B9A2A2C533A3F4AEF4165AE6F4EB326E4A732AC4BFBB82F761869D2EE9072B5D91033714C09801F5F084AE32ADC47A4F9DEF32C942C7E1B0E687522F25DAF9A0D5254DBC8C315BFE45B77AB87FEA0C436F09BCA414F3DBE1020D +ss = 7CA06F75490AAB6218E89A10C19F9313EBDD219FA79E44C2E4440FF1A3C2D291 + +count = 2 +keypair_coins = 4B622DE1350119C45A9F2E2EF3DC5DF50A759D138CDFBD64C81CC7CC2F513345D5A45A4CED06403C5557E87113CB30EA3DC2F39481734DE9E18BCBFBECC6719F +pk = F5A35B4EC7538B62289DD1204DB91AC492B610538C93EB5F2637AD97DC88F0035FF3CB735CEBAC9BE7CA78A4149CF10B6D93283050167E737596B711A9F32A0F6909975055CE6632F4B42CF9A2361CF69047B5BDE1868DD745A82CF473EBB30D86A71793364F70B1255B1C2003F166683C936A7977DF156A84051E69B95E02616DD3090DD38086EF3BC12353BAD25377618965C2810FCA929DFBF46F20360FC847818CF90DBC044EED16B3B9052C5C70A5A430441E53A5527A689F49B35CE82B84D6057C5269FB60C710C5731F431A970B86431125910277FA7C310A2285117B47B95054E4174A1EB11DA3E3C26AC25619D36712B11B2EF7405BCB943DBA10D50C0436B50DE5B04D96488A38F53DF37895AC20C10D959D81A29FE1F319FF871831D93C54654172A02E65599F9D820AB037438E62714BE6C7D868B66AC03C31C8753A062318CA36B6E59D340B9696D47C38F115104765865353A05C8FBC4B0A62A96577E94C17094DE259006F169E75B8919BB4C37DF6787B59BEC8FAC999A90B73123A5CC8772AD67585C879EBE05B5C06AFDB440ADFBC4AD400D0E634822A843E9B165F2F0BB748E231C0E0CEECA8806046B5DEA7CAC614A5E2CCA3767556448785DBC739CAA9C58FAC291A0BBE96E9AD36A4A1D9C96939603BCD76A81C040FBA27A5A39A1C387CAC9D1B086E512468D378E96039AAE2622FE5483673850D411AB64B892F2C29853822EAE76FEAF5716A660B55C2020DD3323A150CEEF9AB79925D2BC09CC6FAA31727A5912A7F5E9051F8B94D8866C4DA173D3F2A388E6C44218338CB85702CBA2F602C24E1788158B0129E7C15DCF2CC6ED55C54B456CACC07D179B432A5AA63E8AC59F0B6979A833D99C13AA0C56CB65928032E2F30583FA6C038748CEB77A91C631DD09B575F13126F1447CAB00BC9C85FC7601DA44AC5FEA5ADCBB599A409BB1A67B24EF438D750BF87A8814DF22449C9256DA1286DC623E81546C283B80CC88C48F003678AB35380A6DA551AC7041CD5112D59D15A80032C28B61A1BB3B8A7267ADF4662B5963468B3BC5918418F980CD7DB3946C5A67F864DC1F3ADEA12142FB71FDA590E070007662B5C3B8B31AF169A092A2E466AA01AE879641BC4D1D62523CCAA3ED436CC089B2621456114215D1A9EEFD1016DC81D5320956FD942BDDA40F3A033E5170CA6A2C57CE17EAFC97AA0959CF37B92E789636F159FAA827DDB895553540D52A61EDC1B3DCEB22A7231C48037CC78594718902333D0BC4FE6B29352991E2BA5D31217457007057B9D3C07C39B7C7EEECC222D4415D6D9272EC50B81520BC607592947C86D2612E434C22513235536CD08F10022B97675B89F1DE58130EB6797380F6B68773DFBBA0664BB7CAAC84F7B06711587C6ECAA383505F62751C8346BDD502A58E9326E4A0D2D29226F794AD0064B2CF0A56E6A67C18B331F5537D2FC6C3AEB52A5C3313118CB7D159B8372158C1A7BFDCB65D426458EDBCF8797383E272D3B18BEE68C4D74E25751AB1CE4567D66B714CD62A8E9B886BAA812A9F50739E30F296791414727D55003BCB52AB6BB74CAB215B348AD06F974192CBD61576BAFFC815999AB8556583024CDBD1C4398F4A4AC60E8CB68627382A145F91BE9D78FD51BA5E3FCBC3155B62BC07751DD +sk = 72408D44C2BE6E83C803DA2846D852DEC1848EE41504B5C91F774F6E512B51F71DD1520203C486F63240BAB4C1DBB212299753B8627F9BF2117CD6A83BE4075A385782AB804A420972EB25BC553EB981AAE7D7A715111338529F6116C10B10BBC20B31C3161D4BC1A5F050220B5584ABD6A546AB51A9A10120ECC131220502697E9D61BDBAD346FC43824135692204B49B5B377B870B7B28C86946077A215ACAA11ABD851ECA479988BC69CCC9975EB42A33523C525434BC594217912123957DCDC18E410A6D6A811BED8A0B4135B56F4562F343AAEC34396BB0556D7962679A76934B016B4B4BACC14650C55C3AEC9BC2E85B548B5D3EB891B6596F0C44009BD0982D98BF81AC77C8DA98264A719CD8568E48279DF9C8E9552B94AA773B43A70742C75F041915752551347F00447D72D934BEC553BF1014F4276015E0B4DB77CDF8C546AF05861804A5B7D92838744511AC6C8BE55E883ACB7775B98C4B4C9C8789AEE317F8F02B4127A6AE879D02C13772A003928041C53351D8D70CE59B14CAB5CA31D717F69129C8FABE46582CA5298ED156209C25BC57870EEA34255CE1B4C426211F957D74876DEC169C4C516C8716B3DDEC6C3E610C31F0C52E13650F0B1C70124DEE27111A76ABEF82C8FD3172D554121E6A87E9D3B58E11379CB812B7F4B95D46104934CE75C715771204D7C46AA9439836453BDA709CEF3BC1C9341994F25C48B5C80FCC8A67E316C431BD302B20904456B3283E9BA1BDDE494CE9F8A3F0B432DCA69D0BA9C43C703E1616272CD6B904D5B6279C55A539B7E46A601B28493E38A2CD9BA66D997C8C5C3B7631822C529FA48835F8A08F322615E96B9087C71C9F262B68851F00486489D25C92221C2759C89440CE733614B8C7A06F26B374CB4F8A6A7D67DA521EBA7232C0A4C066886B8450755896CFF77A369BC8FD4B3B5B0731452A908ACC68366B8EDBA66D09F212C9330C83990AB2DB7095D708B6C3589BF929FEA31534646537D2AB023887FC286F00F46F8A360476998E4FE7315F03C234929247BBA2A05297A5E01AA9CC6158458E2302513274A2E3359D66126F5FD44D348BA2B634642EA26C6CB616F64A2D2C819ABAA48BC565CA0AB67E6CFAB1129A0144C10A003B44BD3879B4E62E0AD3A58BD86A7030BE34309F3309642B017B0AA03FFAB4012B36ADC49A95DDBA67CD81306EF6BB20B546BCC55EAC2B815FB38BAE991D6AE7AA87D42ECBC740CC816A3EF42E9D204CA0177CDB30CDCB870386C320FF51B137578B029125BA518A5B887D7B9050DFF113468608F6335EA81A59B87CB753724ED0E159FA4709AC018A31194247A6A9C65443A35AC36E11BFA6A8559CF20E50116EE5FB3780FA03DCAA77846B18C04894E50486ACFC3B8FEABB8CF860D79C2734A700AB731739244580653699B51B7FC440B8CB1D6BB1360291BDA5B11AEDA3C77A25B40F96763A372512561E0D52848FD6A3A8241DEA49C4C24692CB43AA22067072FAC2DFF7898F298CBAE17F9CA68A132321932295161A1F31C178932004D17854D7D9C69F6640EE216747102280191A5695433763B6CF3B86756AAE22A37F9F6920C361C2AC68A7E11C8F5505AF2100651595BFF5A35B4EC7538B62289DD1204DB91AC492B610538C93EB5F2637AD97DC88F0035FF3CB735CEBAC9BE7CA78A4149CF10B6D93283050167E737596B711A9F32A0F6909975055CE6632F4B42CF9A2361CF69047B5BDE1868DD745A82CF473EBB30D86A71793364F70B1255B1C2003F166683C936A7977DF156A84051E69B95E02616DD3090DD38086EF3BC12353BAD25377618965C2810FCA929DFBF46F20360FC847818CF90DBC044EED16B3B9052C5C70A5A430441E53A5527A689F49B35CE82B84D6057C5269FB60C710C5731F431A970B86431125910277FA7C310A2285117B47B95054E4174A1EB11DA3E3C26AC25619D36712B11B2EF7405BCB943DBA10D50C0436B50DE5B04D96488A38F53DF37895AC20C10D959D81A29FE1F319FF871831D93C54654172A02E65599F9D820AB037438E62714BE6C7D868B66AC03C31C8753A062318CA36B6E59D340B9696D47C38F115104765865353A05C8FBC4B0A62A96577E94C17094DE259006F169E75B8919BB4C37DF6787B59BEC8FAC999A90B73123A5CC8772AD67585C879EBE05B5C06AFDB440ADFBC4AD400D0E634822A843E9B165F2F0BB748E231C0E0CEECA8806046B5DEA7CAC614A5E2CCA3767556448785DBC739CAA9C58FAC291A0BBE96E9AD36A4A1D9C96939603BCD76A81C040FBA27A5A39A1C387CAC9D1B086E512468D378E96039AAE2622FE5483673850D411AB64B892F2C29853822EAE76FEAF5716A660B55C2020DD3323A150CEEF9AB79925D2BC09CC6FAA31727A5912A7F5E9051F8B94D8866C4DA173D3F2A388E6C44218338CB85702CBA2F602C24E1788158B0129E7C15DCF2CC6ED55C54B456CACC07D179B432A5AA63E8AC59F0B6979A833D99C13AA0C56CB65928032E2F30583FA6C038748CEB77A91C631DD09B575F13126F1447CAB00BC9C85FC7601DA44AC5FEA5ADCBB599A409BB1A67B24EF438D750BF87A8814DF22449C9256DA1286DC623E81546C283B80CC88C48F003678AB35380A6DA551AC7041CD5112D59D15A80032C28B61A1BB3B8A7267ADF4662B5963468B3BC5918418F980CD7DB3946C5A67F864DC1F3ADEA12142FB71FDA590E070007662B5C3B8B31AF169A092A2E466AA01AE879641BC4D1D62523CCAA3ED436CC089B2621456114215D1A9EEFD1016DC81D5320956FD942BDDA40F3A033E5170CA6A2C57CE17EAFC97AA0959CF37B92E789636F159FAA827DDB895553540D52A61EDC1B3DCEB22A7231C48037CC78594718902333D0BC4FE6B29352991E2BA5D31217457007057B9D3C07C39B7C7EEECC222D4415D6D9272EC50B81520BC607592947C86D2612E434C22513235536CD08F10022B97675B89F1DE58130EB6797380F6B68773DFBBA0664BB7CAAC84F7B06711587C6ECAA383505F62751C8346BDD502A58E9326E4A0D2D29226F794AD0064B2CF0A56E6A67C18B331F5537D2FC6C3AEB52A5C3313118CB7D159B8372158C1A7BFDCB65D426458EDBCF8797383E272D3B18BEE68C4D74E25751AB1CE4567D66B714CD62A8E9B886BAA812A9F50739E30F296791414727D55003BCB52AB6BB74CAB215B348AD06F974192CBD61576BAFFC815999AB8556583024CDBD1C4398F4A4AC60E8CB68627382A145F91BE9D78FD51BA5E3FCBC3155B62BC07751DD3DBC65B722A8982D058E27D409F04F744551ECDE9015B62607CF67BB8ECECBB8D5A45A4CED06403C5557E87113CB30EA3DC2F39481734DE9E18BCBFBECC6719F +encap_coins = 8DDCC956A19E14E33DD2F1FCC4E6AA816F299F76CBF95B962A0535A7E2949405 +ct = 6B9A9197D340D1C9D1CC00DFDE064753F3DF484966CE3A1B0B75580811996134269F12773AB4927AAC3F72325B2D3D30287FC7FB9B47A797A95156A1CF36ECD98ED729753273233475AEFB02EA78D29510BC5ED1A896BE4B03FB80E0B97E687D79EC1A84BE8B94663AAE60AF47C9CCD9032330BEFD68BA26100A05197589746F1D7CF35D3924926E264CA5D401AB7D4146F8DDD35271236F878DC9C79EC6119ED3DA0CB1021AA342C25F73386804AD116D2E206735734489EBFF90B01D220C76F6FDF40A40320F645F28C01B2C03F91BD9597E31AED82D1AE9B0754F7C9A8181E7E5ECB8B89B246F16E7414615F69CA5EF8BB182EA721AB094301946AA2264130F61402B2F74E95725B1C8A3D5DAB2BBD17381FA89716221098CE987B136E4800C27723FC8DD64EF8DDC087D11973952766A4AFDE4497CD11FBCC266854B33975F73B1928C06AB7E5F78AFAA3A69CD21101943E4155F5444BDEE0EAE7723B01328686179FF3674AD0C8526D32107C0630074E4D54DF2DFB80363FB86F5DAA3AD3616E7FAEF1BB89B814E5316E07DE2C006289AB950514646CA5E73E29AC85821269F62100F07FD23DE481A516CE406A42444E79FD1C7D9DF45BA6D3F8643B76E277E7062108BF417E732A5FED82EEB477CA881A82B6A1E7C66AC5E39A1C20E9A86B8C3BFFA6CB127EB49BAAB68549939C1A96BA947AE89D685A02C9D2C8B26E843BB02D5639A10BF3DC779B3E08E1B9C9CEC7BBFBC2F926B55420DEF878AAC12579C0BBA21CA72BC9F2FDC48051151F98FB5EC126600EA683B601585E2861A40BF79295D3AA5B1298084F508869DA941604D09433612EA06D0CFE5390AF1A4A20716AB09C99CF3BB80D2AD16ED7D0C639ADA53822E571F0015D16DF04916667DD7FD3442E77D3745ECCB03C779FD8DDECC7AB0080E7A999B5FA2FD36BD083FF15E3E9BBFB0DDE88182E2FFB222AB6873F6624BF1AE121030067675647E40E3527D452A7260A3F990E99B00736EA1F73234C66B01D76723EA456B8282565371B891BD8EE171130F67B69A4E7900048EA6676FF3F1977F35D4C0DF6B3D7DEA8F9F4E5E4229A949188215B62C995E72357EADC3043BE96B3D7E528F3E2D82F904A7590D0733FBB75A3AA7E992B9C7998B85D01F52F1FA7B07388506DAF988EDABC320020153B962402131E0B6718BB1D007795D132EB9F7EDC2D317CDA9273DA7F6C220E3A02A33F4C9DA477031D360240CB35B75CED7053B8DA8051A6A8E362A79A0F1B7622DBA415BDA5163F20C83649FB38D10BF6AE89D186A831401D5341FBAC2C70B3049CE25044CF46BCBADCC03D9A8C7B7AA0977036180C090AE2B0B785F0D64174331307B7532B0D99485561A4AA10FDCAD900509ED778EC1133695AF7568022BDBCFCCE960D31C13EAC743772FCA2D906732285CD43393DFF6847AFBE9B81CB335C36F1132EF6DAC14E3816F8E743461BB16C17368804CB3F14DFCE2C9887BA73EB798F4EDCA596A858F1C52C50FF14D30F2CB2C45A59CB8D0C29F7013 +ss = 57D3C28B11497BDBCB6CB8BD09E459292F7904E1F78FA5D2B8DBB33B23B21D9A + +count = 3 +keypair_coins = 050D58F9F757EDC1E8180E3808B806F5BBB3586DB3470B069826D1BB9A4EFC2C3E0351BDC8A2DAF0258645C383021DF33FE59B553A8270C1B7A4D0AF155999B8 +pk = 25949FAEA67E908040A25908A7E33199D586F22A3CF5A7AC49EA41BF83452528C7F12118E0685B09D30947AC76F4F72E89BBB7579BBA13D3CD4E262FCD385EECA8B780D7B6D3343CA7EC1958569C49808B97586C263903989928AB9B63EFAC00B27037637897556B8AAB33198C144D226AB9284541400138E03A31F10CBF1CC4BF633C3AD70C65218C1B18770C91D139971574DD90317A421B8BDC56C02C2564B2496793A27A12009ECCA141AA337E911F0B448D913394EC1ABBB46A568BA749F0FB0A2C4562637A220225A0AFAC0E9A53CA4F506391D7483932814DEA886C89879237A95C03684CC0C2D2701B40E5B3A340316159CBC56BAE84130F2FA830501257F8A8948F482AD194CCD4F6BA6C01BACC4C1B9C3188C3D002F8F18F62393B373396F6C510308B6754B8CA81F53D5A1512FFC3428A6C2A543A61FE1193A86B97B260339FB43A9F0375B1C2C62DDB4C1F6629DB701B2D2A50577CC7D5D55A30766400842938D83A6818A128310D16648614A6B6DF6B5D8D9A8D0EA4A127F4233B9A50BA539F5F01B62513A5C7BB8EAD8463C0A346252C94F753A34751B078A06DD785AC6532C2730CAEF7249515514F8E18713C2A72D8949DE781C698E708DEB35448CA1DF99B8E09AC4FAF694CA71B7BD41BB7024C0435424831424F680A77F13506A56C97B6966AFAC4B90FE60BF5E7507E6A7093C47B5F8CA47D86C767455D645C502D82CF5B1CCD8880758BEA855DC71B1C98494862030202C06B935125654EE498A7E7F37254084AA1795484FA77926C8B438592F4D7BAAB58978329CF12F461B1F93AACC7117980774E12355AF27E506A2AC63C4ABFE585B2123E2404B9EA9753FA101604663D07E153C07B743B23C56B86A91CA34111803A1F5865E47807C012A81885104495499884B495EA3F457A2AE1363221B2A94BE84E27CC9E8BCA44F8FBB92746821782B3B92B1BFE87127F34076BD4ACABF60E4F9B97A8F63008B584D0221AF927C67D616BB9933BE9486E38D7BEFDA11A27175F670600041A6DBF0C9A4364B3FFD28ECEEB0C8077C3ABA19C6123A20CA72C0776AA8E21A582168591C7C1EB146BA820C9EA1AA3374625C8744612BCAB37250FFB34A89D305C35169660DC9B09F7C960A4C4450B1A2E56088E8605FD75A35EB620C3C90B93FB001E03C006A15B67136EC1C354D405A61014821FA9590DD212CC6095DD011BD8801A10F08F15DA21C14CACFDE606CA02B7E2E1483E3514CC6BC88C2987587458D77851E476AEA14A94C176A4EAF865D58C033BA2280EC0521BC53DCC3772D48258593A5A1F9974228652B8CB4A08296EEAE869C733A316D926D400CBB09A2DAF532DA06522DA9694CEC2A29CD4C87F6A6C837C6EF6182A30548AFDB807BF447953A3827DB3122BCC7E33576A33A943492A61F3625DCF412793996C664A4664B3666C154F90B40C3EC514C4B1A2D265A23B897177342B76C69637D52E356620F468480472923313A658683566DC8F8FC1079F248F9D8AC67D4CA703339AE28A86EDB4BC21DB231DFA970249AEB1E2138BD4791352151520A73B0792A0E77D4967BC8B46740CF5599D4056F382C9006B79938825DFE2806CB6AFE7523D940792782D978970256C691434F939B02C14F42B1874087EA68917C2F3E31315E22581 +sk = 548A01803A231CA63843872ABF16B2C4B9AB7407A093B354F8882C6775BACF2931DE0A501C5A7EA7EA5C3BAA067290B9FCA059D69CC6DE9B772CC058470544B64B11ABB77F490746384B83283740F0702E17D046759B61E75030F187C2283045B22B4F9E222CA44980DCD0A42E5704504BB3E097CDF93A99F057AB21E3AC305666710C3B4C1B750AA3AC0F00A6F592770D8082F6157ADDB170A956456C7616C856657835970578B35FA87D8F79C2AE54AD36823C6A13A4207453FF324F17D13D43A400A2102B6F6224E6F2132BB14A32FA3F10A446D7944428B66E0E0A04B204C5993C03C294927C60540F836572793C8825376332B64D109BB7273147A878FF0B0BD2808B62104515D0824C90A4E249B4EC8C0F6B572BB621B7A74089DE4B49EAC5A3CFB61A5D6B420779A29E1C5AE98AB30E01A0B45538C9A14CE61C4DFFA27A4E462757A3BDF00C0206C5BF5233132C47B7111771DAAC633E22132AE82CBD616EC92B4E9D1C88E7285B84D9A12E14897A020C06832E9CAB42102AB999838A93A77141D12FF068AC13DC4C685328C7036CCFC2087BD92CA5A675CFE40AE4C32B28EB770DA04234A456EB889EF92A93A0D3ADA8061599D99CD8A96880A2B5E440766A9C81E7A24F14C295283C333A0576B49C569C99450F8714160C4CC49828090BC2CA390094E14BD6A3011A5C038F0927FB4BAD38440EA9F96FEE99141C564A91F9C86DC72498F89D05B047461699FBBA62EC28698E273E2B8436A6EB8C9C094D3404853A45137881C691352F6240ABD2298488299331CC03B1A3106F242D2871525587888E448D0F45A61480BD7E377DD5B63E143093FCC8BDAA563264BAA458649CE7FA5826E4B9B49159E7541D432143C5093A2A5BC5B835535FE7395EC556BD467A10975CE26304BB892D056A6EA4C5CE08D033E9334CF7F6750CB62209BA21F6B147AC875C3F1195D9D991E333C7C25465176B8A566A71451B8305F35D831A36C57C64B664C707F3BF08B54FF3847F1EF0AC4B32BA7D563AF40228B2957B8A95063A65BAFAF86609B4BFE1127C029C2EB224465E1C178C74CB5DB4C0C2AA46456761EC4A528AB2BB8F92C120A1B78A9517A29C8EE408AE7FAB4FDFB1941CBBAE4C3630F407A2C23C4D10A58A8E64546727153D61766D0242C5132236F637B7323905F4A7811C1B8019A808946C11A54F8CA6C16E06AD9A685EDB094616A80383A79E482C611760C249988547194266000722743346D13C80F72117C25CBB48490E05789C6A5E85ECBFBC73669F249C10A12ECA037DFD15994CBC450EB40868ABC2FEA05B5058429B6B04DCE2C4E2630A13DBA2BEC9BE9C30B9F90B45A97040A1F227200CCB4A4413C8B0C5B169830D451BC7993EB3D5B4D914A02C3183B7423D61101B0E3AC0A2A18673126F69511F27EC55E28B975E22A8CE800C37473CAC71788A42CD39C26C176C9C255C4355A62C0B84CDA33819A1AB6C07BBC4F2847AA23A600829CD516485DFF565DE9C392791B84BDB4580326F5128556D160100622AFFA2756E1CBD0A0A1F217A0C198A6DC043B1C50813BCFB3C2488A5C02C79393B65F39990B610274FA77B814BA93784562E0794C179549EA0927D9B4A25949FAEA67E908040A25908A7E33199D586F22A3CF5A7AC49EA41BF83452528C7F12118E0685B09D30947AC76F4F72E89BBB7579BBA13D3CD4E262FCD385EECA8B780D7B6D3343CA7EC1958569C49808B97586C263903989928AB9B63EFAC00B27037637897556B8AAB33198C144D226AB9284541400138E03A31F10CBF1CC4BF633C3AD70C65218C1B18770C91D139971574DD90317A421B8BDC56C02C2564B2496793A27A12009ECCA141AA337E911F0B448D913394EC1ABBB46A568BA749F0FB0A2C4562637A220225A0AFAC0E9A53CA4F506391D7483932814DEA886C89879237A95C03684CC0C2D2701B40E5B3A340316159CBC56BAE84130F2FA830501257F8A8948F482AD194CCD4F6BA6C01BACC4C1B9C3188C3D002F8F18F62393B373396F6C510308B6754B8CA81F53D5A1512FFC3428A6C2A543A61FE1193A86B97B260339FB43A9F0375B1C2C62DDB4C1F6629DB701B2D2A50577CC7D5D55A30766400842938D83A6818A128310D16648614A6B6DF6B5D8D9A8D0EA4A127F4233B9A50BA539F5F01B62513A5C7BB8EAD8463C0A346252C94F753A34751B078A06DD785AC6532C2730CAEF7249515514F8E18713C2A72D8949DE781C698E708DEB35448CA1DF99B8E09AC4FAF694CA71B7BD41BB7024C0435424831424F680A77F13506A56C97B6966AFAC4B90FE60BF5E7507E6A7093C47B5F8CA47D86C767455D645C502D82CF5B1CCD8880758BEA855DC71B1C98494862030202C06B935125654EE498A7E7F37254084AA1795484FA77926C8B438592F4D7BAAB58978329CF12F461B1F93AACC7117980774E12355AF27E506A2AC63C4ABFE585B2123E2404B9EA9753FA101604663D07E153C07B743B23C56B86A91CA34111803A1F5865E47807C012A81885104495499884B495EA3F457A2AE1363221B2A94BE84E27CC9E8BCA44F8FBB92746821782B3B92B1BFE87127F34076BD4ACABF60E4F9B97A8F63008B584D0221AF927C67D616BB9933BE9486E38D7BEFDA11A27175F670600041A6DBF0C9A4364B3FFD28ECEEB0C8077C3ABA19C6123A20CA72C0776AA8E21A582168591C7C1EB146BA820C9EA1AA3374625C8744612BCAB37250FFB34A89D305C35169660DC9B09F7C960A4C4450B1A2E56088E8605FD75A35EB620C3C90B93FB001E03C006A15B67136EC1C354D405A61014821FA9590DD212CC6095DD011BD8801A10F08F15DA21C14CACFDE606CA02B7E2E1483E3514CC6BC88C2987587458D77851E476AEA14A94C176A4EAF865D58C033BA2280EC0521BC53DCC3772D48258593A5A1F9974228652B8CB4A08296EEAE869C733A316D926D400CBB09A2DAF532DA06522DA9694CEC2A29CD4C87F6A6C837C6EF6182A30548AFDB807BF447953A3827DB3122BCC7E33576A33A943492A61F3625DCF412793996C664A4664B3666C154F90B40C3EC514C4B1A2D265A23B897177342B76C69637D52E356620F468480472923313A658683566DC8F8FC1079F248F9D8AC67D4CA703339AE28A86EDB4BC21DB231DFA970249AEB1E2138BD4791352151520A73B0792A0E77D4967BC8B46740CF5599D4056F382C9006B79938825DFE2806CB6AFE7523D940792782D978970256C691434F939B02C14F42B1874087EA68917C2F3E31315E2258194391B7A41175A41C15CD995EBC69C83B29E4BCEA6C186611DC4A79578E37F4C3E0351BDC8A2DAF0258645C383021DF33FE59B553A8270C1B7A4D0AF155999B8 +encap_coins = DED872C12331243854D57FB85475E4A45D85378AA15CC73DBAA11D6C3EA9A080 +ct = 31F9781C89F01126791ED356804616BE0775E2B9A8B9E7C587DBDE8D92EA0FE3299CFDB51D8E16A8FBE67573E7DA19F3231DD795F31615E683B38FC1966CDDA46534B9E6382D660E1E2407183B83A4BD6A932D73A43ECD21629AEC31C1340709FD7D096FF1479E3C2C5D877E2863771BD44FBB27946F1679DDE4B8B54E2FCA0D77687A6F99D50D8FE06DD12B4F1877FA98A20D94B6197F601CDD9D69CBD16BDF1C425E62F921C2AB06605E9574AD7A7957991CAFE5BC3B9EBF971E7C56F19E6CFBD904F8C9B8C8A606197D083F139BEFD23B67FD061DA22DEED51069FB145A3B6D1911397C2145B0F7ECB37297BEF627B879AF2623E0D7CC10E6E01A3F99FE68FE9A3FB4C26A4DB4C0AE7D41FA7C269434D2FBFE08AFA5BBA5B046DEB450ECA6C6DFA15AE66C69A4F09249E344B541E7B664BDCF14D26BD3F5C941CA6F0D43581826DB15750F5E8D4A76986C94140A91A77BADF719E802B7610F6B6C30F36B8B19A9DEEAA235E4482B13F29075B1060C5A33BD1ED707874A3C456DDD91CAEE0212E00C48ED3A559EBBEE72E29F7C11AF0EBB1B1505FBE89BE8469A8535A2BD6AF6BC35C77073A56A8ED85703CAEDB5F9A1E18D398187282AE92AA73C7B5AB5E7B583BED808477BE2D4F54C54EA118E1819D2DF492E530FDB04FA2ECDAC202835A80CC38CB5A13954A700B98E0C6EE96D6B8CF0F6D3910685CA1B02B7C7E7FCA681A1EFA1ACB00AB76D70157ADCBBF02DDA0E0C94061BB14B1FDBDD4F5AC7B4C41363A946795488D9A2C568C4919BEE30F791923C2F98EAEEBB088287A5D5C0ADAEA8F70D0165EE29E2CC5E2F5489C8B3A8586081C7C40980C5D1CA7441612F1B4BB69B25435B34006FC12470746EC3C7F880A2EA223EFFBF41BB459DD92EB87771EDC768718C5EF06D658F5DAE7AE6AFC613CAE6BF58C8DCE17BC256408D364835C8CE0D948A2583567FFFA2C8F79ABA7DF916F3F661C4160E8387EB6826791656B4A06D05F7E760E5DFB9BBD0639E95B6A815F8E2EB909FE18004271AA40581A46F3894865005ABC214D3AFC6A3CEEF4A383EA1F41301AD1DD71B9F98F94575119FE1A8525BF2515D1A8D65015733EB07EE0B6F218339654DA72CD40723DB6F209DD1FE94432B598131D8DA4BDA11166675871D24413C9CF4A390DAC5F680BA007923A70AC2B3268E541887F6BFFC2C00AB351FC34F9B5764E5FF9ADE9DB5E484AD6C91F34386216F9E3FB0910A8A1FDA5A6EF5133D99D5D08FF5C2432792BA2D4DA18E62DC0716FD4A45A6044F024842AEE218F9178469585243D4749B09337ACEFD3CDE97E6D99C3475EBB1B265271683E2696574E46F4B314169E0A83A145C47B5101D20B56C3D89576B44DBDBFFC5D8DEB8108DA185BA7E4ECA97F3DC0217C27FB2B95823E805F841EE83A9D57CE50C86172FB4B8414EF4A0237583066202290A1FA996E85F043A6FB07AE170F65FF18BA1A4E4C1C7B0EB8ABBFC09EA0E8C340A19EF54BDC5BA34B82EAA71E2C5906DC8A6D36E2EF6FBAF9D9C91D28580 +ss = C0858517D0C27B05325599951912324DE393470811C6E19D99AA9E4EF4F0807F + +count = 4 +keypair_coins = 66B79B844E0C2ADAD694E0478661AC46FE6B6001F6A71FF8E2F034B1FD8833D3B68C0EF1663E52E24C33090EA8F4F564D85DACA610FD7C2D5756D7D882408DED +pk = EB14CBCB226951857BE4B3BC2A1B578B148E824A2414412A3D57C8213793C418BF2E0803DE4A16EB9C8B5D53718D38AE40299B89793F14741792BB10D9C21D5F06633AA3CF1CC78D0DC99983076F8756B2F96B2095E0B812160FBB9494038A88057671DC692F14A956D5E6565FF752D28237C70B8F8528CB1A04CFE5E6495BD3B46A3264FD7364E0D54F2AD27DD27B022EFB3D3A632A7F99551BC3317250207F2658F363164A9631A34B468E9B3C9B34B27A3A02FCBACC516469F69B3A51554B93E05FD6DCB098E8AF8A3681CE89548CA311E2F5421CA1496A532366435CFD56A26A245BA68655DB99CD113C1AD1170BAB16A22BB3399E45C6A9BA45B5DC5DA04A426C635C844744C557AF7E49CA12437CF455B302C037BAB4954627A2363020C4AB5CEEF5AAF2E352DED62FD6A52ACB70C84723A527BA34F179204B26AC10692822AC66CC56BFECEBA65C33295FB805C596A48A0C59477405C21AC3EDD2C27E56C19BC84D710584ADE48647C681746038AC74AB73591FDE872CCDFBC3CB1218FE12ACBFEC9248C00E19424B1FBCA70FC5193151AAE1415416BA2D7FAA6A2C745CDEDB94295438BB182DADB77182B2BE5BD1CE0CC028B7EB71BA8CAC8585CBA3CA01620B63FC91BF3C210F67C65C92F893FC616158C104A5799720AB0FD907798F0678746475C8502029865DD653209A39C0C362258A266B1B244A4F42B4ADC1C6BF602FE61125C3B989C018C0A0E0C73E35ABC97C9EE695CD265909AF82548B865EB4238376A6AB53A6BAEF185799489F64E200FB542EC3D1B42E8B3960E02730936D620360FF4570B4079B369A83629B599E7B27FF48C37F727A4F93BBB2D4B7E1C73FC0D6668E53C1EFE0A0B547B1F38C51F4001654F45BF0E5766CA1C662F2CB99A6BD42A17F89C80A4DB03C990A81AE9487E1A52C13720266083E152061AA08C03A7A703DE58251F129546A42282515A3E27195CA97CEB39B00566CF4ACADAF320D5C88C75FF310F10BB5AD738D38AA47C945235E1730B6CC227A194DCB04CE046A22C37319D910060B594BF8A64F2C4B8F26000031948046721E6546893A341ED2C32804149954E3788EA5054C51A43DA89F9C789EDA6727BDD4BE32B15D47B9C327EC68422813B00950BD73C96C7175274A5EA8BC128A7C0993031B4E8A5D3C074D2D1ABDE8239D5AF58C06509B24109C84297E3FEB447FB3926DC19F39211119C4597711A222B341CDECB0698580E422A951DB2305D4A7A871967DB945A60439DE206955C371EA52452F865DA438130D2B8EAB3669A97911258B08931A2E36C6C390B6845E8076A0D621D7692971BA71BDA0B8AAF7BA0AD3C4F05AC23621A146C68BBC501854062B924C3A64916A1B9B19CE5B466F8672EDE621EA987F83495106DAC22FFAB6F4A5CCA797587126CE50589F68A2084875BBB505C7FF46922EB496DA260E3719CDB2F23950455DC8D36E3932518BC11BFCC067AC533360B86550B6AD09E93DBB092BE410721D48BF56B3594B93CBECFC785A5852B598425E4C4CDCC7CAE1907ADEA5772276B2929B9507DB5C06041E5F9846506055417C6FA091652A4A424BF6396D46365BB40601E3A55801B93A1CCF39126BA7F025A2467F6D44DE229C527F6E4E7071CB826CFE76FEA483D9163EAA84F6AFAC495A +sk = 944AB695C2345BB67894D451EA2A5C92561A5467C769352379950879899C9CAC9D05E89CB2729B2BB47724923FCA357623C69643569D66912B2F9B3249908090D4C5F68388A6141163C931DF430D70290950B07DE410AF913C0E5A215C3059785EF05B824545ABA0B95E7279D1C5726B59890B82131D5C62E8B3BE33B8016BA0C321C248A5293C71ECA570C9536F958B84663B1DD5BB6F272C3E201F014AA3AE05640ED92200274D45D9BF4410CE8EA72D680ACE1EEB04CD8B002DE72795DB60681BC9ECD387FCEA796FF7726FB29877F895E6832EB7EB179A5956499CA3BCF3283FC8489D494A88668E6614B1F49824F12A448B31A42861190CE3A9F73C6FFA25622D7A504E0694BB7C75EE71CC8E718CE9D57AC86A11721721E6181F157C333AE098F8A6823F765B60F0300F4733CF65240C779569620213B8A331731A7B31937104BECC0995EF57255261AD9B246009F855CA82AF2001B256760C1543074D70B3C578279B35137E16AC2089A4C60038B8671D308964B68A2211187154746C27F59C8105981C8C7D0AD58717978C01A66B5EE1697188BFAAC9B927822C940C5380409F38459F5B302CF7DC9D6BD823A0308B0DA45C35D541D2346BAE4173FB0C677EEC26A94C4158B28D4D7B4B0F62A4AB06BAE0B42208B099A174BB4C482C7C321AACA49C4A517114A5CF408750E8588545134F83A67769CC6E0B413BB800C04093184625A7EE24134A721D5FB1571CD82DD1D7C5F9103E0C2C4416CB775AA28DF48643084B391DD2CAF39278E9A31D2254871B170AE1B60A4E39B1F5A8473F580C7153CAA1369D8E9CA381660A57CA8D2523202816767CA8CAC0914C16F1CEC8EA4EA5DA930E0403E7A876C390BA31FA250D946A2EEAA479888011DB7942F7676A120338357BCA38C4C95088A4A0884B8B4C14E9C09E831F8AA658ED77CC164124CB281F61856BD6C965B6B6CD60B1B1034888F3970555443F0F5CC29C800F578806BEEB4730AB9AF4B9BEB89502AB48761E188CB9AA95BA06B28CF4B89C200B2145A4339A53406B6790A518F54902EBA0230A8C2A45447125B7330F12645D935E00651CB4996E395543B7E643137ABF3DF59E042ABD6FA11927062D73D0A107BA6FEA0908FF6759A972C11E864EE7393254051BDA558D4B272E6CB2C337747A7EF46F5AC872D5D5238521C09E21495EF98B59C22961E5A4967370EFC4865F06A72A41464D37CE4DD1803BC117888B681D35195C857A47B764C6799A86E27327EB0403931E29F90FEE8628AA43B333615BC0F251707024AD41A24E3C4F15B99E72F536DD989C0325225DC682E3611640D99C1552506E687E18A883F90882056C14385BC08BE82616D811A4FB2DC93670945B7EFA17593C4B7BFFB76F9A805F5230C50B065DC77B409CA8CC0B7190AA61614C528AF2D1AC130C19E4362E85A40693A87C00935A887B9B58699777453D8278C445BBC8D225412BDA6FDF026207E3B207613D2ED74C085707EDD555FE4C00B40B2A83AA219CD643F1D83EC0FC21BCF94FBA6A8262D959C9FB345F2221082C40A1501C46C55082DB2709230B04090558CB6D6815173525725D8CC0BC93C881C99A16041757D6A05AC71A15E887EB14CBCB226951857BE4B3BC2A1B578B148E824A2414412A3D57C8213793C418BF2E0803DE4A16EB9C8B5D53718D38AE40299B89793F14741792BB10D9C21D5F06633AA3CF1CC78D0DC99983076F8756B2F96B2095E0B812160FBB9494038A88057671DC692F14A956D5E6565FF752D28237C70B8F8528CB1A04CFE5E6495BD3B46A3264FD7364E0D54F2AD27DD27B022EFB3D3A632A7F99551BC3317250207F2658F363164A9631A34B468E9B3C9B34B27A3A02FCBACC516469F69B3A51554B93E05FD6DCB098E8AF8A3681CE89548CA311E2F5421CA1496A532366435CFD56A26A245BA68655DB99CD113C1AD1170BAB16A22BB3399E45C6A9BA45B5DC5DA04A426C635C844744C557AF7E49CA12437CF455B302C037BAB4954627A2363020C4AB5CEEF5AAF2E352DED62FD6A52ACB70C84723A527BA34F179204B26AC10692822AC66CC56BFECEBA65C33295FB805C596A48A0C59477405C21AC3EDD2C27E56C19BC84D710584ADE48647C681746038AC74AB73591FDE872CCDFBC3CB1218FE12ACBFEC9248C00E19424B1FBCA70FC5193151AAE1415416BA2D7FAA6A2C745CDEDB94295438BB182DADB77182B2BE5BD1CE0CC028B7EB71BA8CAC8585CBA3CA01620B63FC91BF3C210F67C65C92F893FC616158C104A5799720AB0FD907798F0678746475C8502029865DD653209A39C0C362258A266B1B244A4F42B4ADC1C6BF602FE61125C3B989C018C0A0E0C73E35ABC97C9EE695CD265909AF82548B865EB4238376A6AB53A6BAEF185799489F64E200FB542EC3D1B42E8B3960E02730936D620360FF4570B4079B369A83629B599E7B27FF48C37F727A4F93BBB2D4B7E1C73FC0D6668E53C1EFE0A0B547B1F38C51F4001654F45BF0E5766CA1C662F2CB99A6BD42A17F89C80A4DB03C990A81AE9487E1A52C13720266083E152061AA08C03A7A703DE58251F129546A42282515A3E27195CA97CEB39B00566CF4ACADAF320D5C88C75FF310F10BB5AD738D38AA47C945235E1730B6CC227A194DCB04CE046A22C37319D910060B594BF8A64F2C4B8F26000031948046721E6546893A341ED2C32804149954E3788EA5054C51A43DA89F9C789EDA6727BDD4BE32B15D47B9C327EC68422813B00950BD73C96C7175274A5EA8BC128A7C0993031B4E8A5D3C074D2D1ABDE8239D5AF58C06509B24109C84297E3FEB447FB3926DC19F39211119C4597711A222B341CDECB0698580E422A951DB2305D4A7A871967DB945A60439DE206955C371EA52452F865DA438130D2B8EAB3669A97911258B08931A2E36C6C390B6845E8076A0D621D7692971BA71BDA0B8AAF7BA0AD3C4F05AC23621A146C68BBC501854062B924C3A64916A1B9B19CE5B466F8672EDE621EA987F83495106DAC22FFAB6F4A5CCA797587126CE50589F68A2084875BBB505C7FF46922EB496DA260E3719CDB2F23950455DC8D36E3932518BC11BFCC067AC533360B86550B6AD09E93DBB092BE410721D48BF56B3594B93CBECFC785A5852B598425E4C4CDCC7CAE1907ADEA5772276B2929B9507DB5C06041E5F9846506055417C6FA091652A4A424BF6396D46365BB40601E3A55801B93A1CCF39126BA7F025A2467F6D44DE229C527F6E4E7071CB826CFE76FEA483D9163EAA84F6AFAC495AC5DBD68B3A8C148B2E7AC049BB986E14DD1CEBFA1CBF3EDD6BAE85A4D2DDA082B68C0EF1663E52E24C33090EA8F4F564D85DACA610FD7C2D5756D7D882408DED +encap_coins = BE4B5E900BF3274D5C6556CE983F3C13EB314E8B3AC969BE600A8C769A6E7C76 +ct = 8216710C6EF419E5A05E36AAEB860C93E48A04D645AACF4EC411EA7BA7AD892DF895ACCBABEE859C80D30859DBC24DC48E04AC054A7AE4EF6CACC5CA3C5E21EEB2AF4E1EBAB32397AE6E642BED9FFA464A3C9CA7079D6CC638972FDB7C7D0444131CA690DFA2FCEAA156CD9C3E9E10AD5FD33FC38AE25E45EE5B3655A5AD2514DD35C76DA2FB302DA66EA48BBAF18413648DECED46ED3D14B19ED1AB197597A0E6367ED864E0F310F1C619FF1898F727FF576CC8AA2C5EE252F8A0460664191696C6CCBE9A61470075FC5264D1DDD097B5D70BF1F4B112168AA048411F843E4A0DD3D9E227A6040AD8B2B60CA6B36B77B20DB9CCD7AACF6FEF02EFF82E3E9A6782D5ED18CD3324E16962EA71B32C184A1BC0F20B3D39C892177E7CE5F76942C72166628E513CC19FE6943BCAE08926A70CABAAB7C5F4796C1EB41D8C03A9B9C2C8EB4F4A776B37CE83CABCCDC685452A7DD115960158F439CF6868A4C6ADDF88C8D6462961E8743B1F24BC28EF30EE788D7D86B381A111FE0C53CFADDCD7ECB994F1D9637A959F88FC683BC2B7E0284F76474CC4CA505EF1CE8D52F4ECBC743E94318C4F7C4D03F3D5427C97D72D59B4EFE7C85E6C745573EB78D753E77E1A2D4401960369AA18EBA81C4F4AF5BB3CED30C0E02EDB250AC00C90E8860C147A5687B531CF454A98D00BE85AC4D6832AF98ED3AEC3E6CE65F873F420EB39A6B4774BFCC72EB763E2C06DE8B594F4426D84C95070794B9FC231A99429B38DEC37E133E90C8B1DC0DD0180A2CAF7C423CE97A336C25891A8F7A0271C48355C0C9E8B38CEA3E92FE51AEFB57A8D55150335D9C03C6BAC161FB1E312E9A79AF2BD1F2886D0443FE524EE909845BC4675D2CB1A79ED50962865D99404294BA747D5EEBB7838C96F621459466AFB31970F2C2F92A21F889C7B754BD8E9B0254A97E599B0F72347E36FBD1D2F60CE238175968C96C4C3081F58AC0C2EF2D1046F1312B811CD2B0362BBB4EB6BC41560D1A116D8989247A80ECB47121E2B83E4760D99262B4F1E7275F967311482B7FEC821E84336A646579F73B69BB1099AC8C3AE084B7911B0A203D2D8E0A555A52E57648E45CC94B7403F181608AFC4A886AC5663956B903D7CC8A3945C0A462F0BC1169C1A662604205E9EE877294D38D4E911E54367803371F0CF142D2051B60A32C1A6CBF3B8C6C29CF09FF7E54320056B443388FDD9A377E4BF17FD8369BDE1168837EB647CB4372C60E950E8BF9662BF7E298D53E5ABEC6D170C4D8473CC8B00CAEDBE20A7667B64B4E76712E859C74523337553D654A042512C361EAC6E42721ED669541086346A7836A3FB9F4781FC73496242A10BD5382762769872C626084DEAE865EF9D2F1F67B35BE2AABF4A8842F6C91F579EA36C86588175D9DC82B19D3BDDC406EEAC7C38D131A0E9E2DB04B7624A7AE9452C16F9A2D0F23BBF435E8C5529634B083A6ACD4C7650EB94ED71B5A8E68B8DCC849870682488EC25E43822515DC3A3E7FDADEE2395C2B613C7E3CFDE2B5F +ss = 7F20A54FA2F1F84093F5CEE4C8F31640BE654F07BC939952284BFB3B0440A079 + +count = 5 +keypair_coins = 7EC408F52C9AA723D0C41D9987682A5F4CE6C9DA7CD0215AF60BBAF5484AB3530DA1D147E7686E428AA1775BC2EB045D1ECBB17563AC966F708CF3882C47B5AD +pk = 86B5C9A75157E73CCC2E138518EA98A246145DFB6BAC9B2FFC333C0BA5806047CA9BA8AB797937000270E773C9863709E59786F8EC948ED27660AA3758E33F59140E527787FA74A2CE22A4A8F3037A26903665CBFE8A0677EC273F590D64C97F69F396DB78448535746B43296BFA2BF0A251BF986A524074C1F96077F5219CFA9124D1458520993F627AA8B7B6A0F191683233E0BA6BDE24561A666FD10151B0C52C9982C301E0970C3363DE27825A5BAB078848AA5CB75A90C1CBD24CF67A68F3417780CCA947131E4573934F9959787B6320A4B47BB311048289E2C915E35344E3A144E2708893138A15A03FCE3816945464C229C587093B5CBBB519767FC65C078D6C684B8B81C1F9CC2B3BA749FB3074623E3C9124A8E1A513510357656B37087BFD02773FB59157EB885E1501740483F3EC070BD492DFC217D7DB99CD7C9D57B937297634C3494DEB585B8C93CD4EAB1865F8A9C8BB15DFE583C7DC0427274F8DF3C693FC351289964A89A3C745967231261D949552E0809BA9B7C5D258AF579A4515981E991D93154BCAA170491B06752415B1D52BC2A98B7F39C5B91A87EB759A9A4537218156746930A347A5026911ADC0412F10A7A7C200A1514D500805C10A276C327E4899AA3F9B95D1BA2347E0140184B1235A719E6C4A3011576235215D77084034771129C33199B70774B2130898A0C69D8F39C3A50B273C665DCD8031B4454D144A4356B9C2B16641311856CB65466991B06D1A8A74A5AAD6B5B935B65DBA8374EE690CD1C701A5A28B41732B5F88A9AD919A7FA563BAFB529885488F544E1240B3CD673F94EBBC91B4757444A302578AA953161993CC918216BC56BA53EA17664BC5B543A38C3516D4063C35695791D8821240BB749CAF98896C4718A9DB33C1A7E9B91B9B6D06FBAA58E507F8A105E2F71F6095621E354B3DEC1F9C979ED7B3AAB56B4741110FDA601FAC78C2EDC386669118A425C634157875F61ADF10C43D2184D3252EDEB11A61EB67A349405EC74B9FD307558A887EFBBB46C904F9469DB491605A3582BE433BED57363426055CC4852ACC0317F24D89903A918875C949556A6A458FA3CFB5797D6A3A68EE9991D97A38E16B9A727C5B2E7B5E5A0029C1513D5A1A98EAE78713785BD4322261D90109A0806E565EBD9308849CC6708B536C83A2FA35995C819D99B850251C1D50EA902A053C7CA31FAAC37BCB1B40D6123CC4D52002909D0AC566F7D75DC89998036AABB267C5AA70184AB4CFFEAB018F195F62879BE0A51B42B843CAF7C494C181C2F06866CB2287A00349EBB136747DA52A3C4A3C581798C413929CE3E698FA594F019579AE329A22D4AF66F27B46453F22E61AA6EC5D7D854FF6D3C3D4117BE2145B5C2BA7A57AC968A5CA43B461F808167FB5A76A942C95145098B95CD46439669C00366960E2162AB613C5ECB151359B093C27C04AB230FA7C0074684996F44939C81FC31373C8231BD0B6679991A32A031002B257B2F31101317B3E2B6B28B8911E3991479444C6086110B7A70125CA71C6659C970F94D0942124C17CE3AD50D5A7019146BF51B012D1CFA0F59B220A795DC6B3D7896AAC680ADAD383EC46762B669D35909A47C12DC8EE619E1A0C8915822D574A243F67E14104D4F021CF95BF33271C9BC9 +sk = AC65AF9FC8B905D09638374E58C551DA08AC4EF86A8FF04489BA462841A85D907ED0C70E1A790297AB2DF7D6CDFC5C6AF513144DA105DDA2C75F00736DD91564A79668E335FBDCA1C9D31592E73D60066B959A2FCBF55474F9C21BF058F021457586766FDA4FAD521F64940D4932B07AD8CA7E1A06662730EA6C15AA1C2F9662552313176AF04FA4A98962101492566ADB8BBC3EC04F9CAB9EBFE5860F886D57A2C73FA050A3607A8C0998754B417C9C5AE2FC3F829CC3A2EBB1E927AE87B68C6DB355F4C661CD000D10D6BC31CA1C249A9B3931A4D1C57904DC6DF923839D9A90AA2B93A87C44B5F82E6A925D22E679428064FFCB9621067B75477FB7D51A1D3B9D9DE4051CF874CCEC12976562752CBFCFC59F56C2C60B8B4610A9BB36E9019B974502407D57289726AB8A38D7A6C880074A5686619ABFFFA5757DC79E1449408851502BEB8196F493F4A724B9D681645A07B193586C5C05D8D10E2C968BD251B88691C368DC18CF8270DAD3C22BF5093DB4CF05668F8C6315C0EA3F55495E784CCD6055AC451363FD77A91686AD77C5AF53141EB5E7534FAC4DE481741E48B414302E4743789E250C39C45C0A15CF42E7B3631B6A8C0971C8A34B8200BBFE11004AB06BFC5949C3615B02947C73E7A0717C6B60F2679DAA21AFE4C55768A08E70105868AA6AB4AAA848C79BF125883907B9DAABE367AFCE273E2C168AAB02ACD27855E2944B67B938170A9258F67397770136E466758C260CCB7DA226B5A95692514727FD48953C62959C88C8784A8A52131C4BA5A6D757B4311048B602B554E8AD509B0C12B0A64553CD4270CA92F36CEC227E16A217C769A2BC1AA6C356A5A39C69F4963BA6273DB9232F1D8A28CE65B5B9058F1B8A164AB0380C42A8EDDB6C2B8B19F26B557C387E4DB9AEB92C4D7D0A2CA1E35F97E05CF590BC511AC5EFB2357E70525BD027B36C6781C4B86B0069E7B89C8CA643FB9990ECAB2CC5A8A5A5B2B0441076CE934D96BCA9FFC10EB6E7BB093675E97B68894BB030581D89123642C1118364115A76AD1C181EED4B691BBC15DF182DCDE00C71F8685B71883A184396D3475CBBCB674360DC14C42DD6461514479C85557194A97A654C4BE7620FA84C59DB5057A0886D760460CC4A3A713F4FD4BDEBAA93B943C48E6348053703ED818FDD9CBD62E246C0B69A265AA381822D6A474C5AA530AA5306A0C8572C413718A278194367405789E1F749AB4A02AF87B362067F3DA12EC01A83ACEC26A390CB5419B351BC95E08C7338FB933B81476EA950881275A186C9E9F99DAB63634E6B7314188BFD686D74EC203B71542B62B1C0C7712745940F7B9237551467470E5B1BA2F8E34CF585ADBAF980317C9DB1147382946C12223C3A45973B879A523855BEF121151BCE620216DEDC6C3457CA03951FF45B662F79A1A7A5CEFE9A846DD5774C7C2A22F842E4E465A94314E036BB55A2787A1A0F0F111143872DAE74AF706A369CA54259B80578BACD497700871842B98CAE2AC3B572F98F145CBAAF54569779B616242060B30B2A482DAF335C9A502CD318296958C696F7080C7A3926C7B62F36A5DBFB87EA0518358155E8E94390B6C0F808B91C166577037D86B5C9A75157E73CCC2E138518EA98A246145DFB6BAC9B2FFC333C0BA5806047CA9BA8AB797937000270E773C9863709E59786F8EC948ED27660AA3758E33F59140E527787FA74A2CE22A4A8F3037A26903665CBFE8A0677EC273F590D64C97F69F396DB78448535746B43296BFA2BF0A251BF986A524074C1F96077F5219CFA9124D1458520993F627AA8B7B6A0F191683233E0BA6BDE24561A666FD10151B0C52C9982C301E0970C3363DE27825A5BAB078848AA5CB75A90C1CBD24CF67A68F3417780CCA947131E4573934F9959787B6320A4B47BB311048289E2C915E35344E3A144E2708893138A15A03FCE3816945464C229C587093B5CBBB519767FC65C078D6C684B8B81C1F9CC2B3BA749FB3074623E3C9124A8E1A513510357656B37087BFD02773FB59157EB885E1501740483F3EC070BD492DFC217D7DB99CD7C9D57B937297634C3494DEB585B8C93CD4EAB1865F8A9C8BB15DFE583C7DC0427274F8DF3C693FC351289964A89A3C745967231261D949552E0809BA9B7C5D258AF579A4515981E991D93154BCAA170491B06752415B1D52BC2A98B7F39C5B91A87EB759A9A4537218156746930A347A5026911ADC0412F10A7A7C200A1514D500805C10A276C327E4899AA3F9B95D1BA2347E0140184B1235A719E6C4A3011576235215D77084034771129C33199B70774B2130898A0C69D8F39C3A50B273C665DCD8031B4454D144A4356B9C2B16641311856CB65466991B06D1A8A74A5AAD6B5B935B65DBA8374EE690CD1C701A5A28B41732B5F88A9AD919A7FA563BAFB529885488F544E1240B3CD673F94EBBC91B4757444A302578AA953161993CC918216BC56BA53EA17664BC5B543A38C3516D4063C35695791D8821240BB749CAF98896C4718A9DB33C1A7E9B91B9B6D06FBAA58E507F8A105E2F71F6095621E354B3DEC1F9C979ED7B3AAB56B4741110FDA601FAC78C2EDC386669118A425C634157875F61ADF10C43D2184D3252EDEB11A61EB67A349405EC74B9FD307558A887EFBBB46C904F9469DB491605A3582BE433BED57363426055CC4852ACC0317F24D89903A918875C949556A6A458FA3CFB5797D6A3A68EE9991D97A38E16B9A727C5B2E7B5E5A0029C1513D5A1A98EAE78713785BD4322261D90109A0806E565EBD9308849CC6708B536C83A2FA35995C819D99B850251C1D50EA902A053C7CA31FAAC37BCB1B40D6123CC4D52002909D0AC566F7D75DC89998036AABB267C5AA70184AB4CFFEAB018F195F62879BE0A51B42B843CAF7C494C181C2F06866CB2287A00349EBB136747DA52A3C4A3C581798C413929CE3E698FA594F019579AE329A22D4AF66F27B46453F22E61AA6EC5D7D854FF6D3C3D4117BE2145B5C2BA7A57AC968A5CA43B461F808167FB5A76A942C95145098B95CD46439669C00366960E2162AB613C5ECB151359B093C27C04AB230FA7C0074684996F44939C81FC31373C8231BD0B6679991A32A031002B257B2F31101317B3E2B6B28B8911E3991479444C6086110B7A70125CA71C6659C970F94D0942124C17CE3AD50D5A7019146BF51B012D1CFA0F59B220A795DC6B3D7896AAC680ADAD383EC46762B669D35909A47C12DC8EE619E1A0C8915822D574A243F67E14104D4F021CF95BF33271C9BC962E0447F7B5AE8A806B741CA5C302230B555C3786C11F3EB43894A8F45E3F7B10DA1D147E7686E428AA1775BC2EB045D1ECBB17563AC966F708CF3882C47B5AD +encap_coins = B0C99F495AD0CFA090C5453402FB93B6BF35D02077C5F6388810CEE3EDF51A99 +ct = 47DCBFDB494870A4237AE75CC7ECD80C95857B94077AFBA064BA3F347FA65F3B0784CBE661AF614E97C8B21CB982E3DCF38CE7EB4E31C04D5C71EA1C609B1C672DE875C5D53ACEDC021FEA3062AE823DBA53601D70894C57BA78CB46EF9A1A6BBEC4716074CA5009ECB909E3163CF21985F3158356B7701DD2A8CD00558FF0EE736068DAF79B1C11368BE8ED666DED32464EC57EAF203F9AB76CA77697DD09926D46D290114615F57592AADB80257BCF209977D237506963880C92BF2846CC4F16DDDFC41B3011C18E48EC8CF7109F505CC72480C3F4841B2C79C2BA99A35890EA9765F5DB99D4A578E704EDB0ADA3EB1735DDD2DA5EB24795DE70072F0D811CA0D1F7C1544D3CD1FF9F4E02D8A1739D77F5223C767C0D62D5F9401B0C4D7444469153D05CCCD4CC06FB0F31CB0CF101C11A4215763201CB0EC3BF58453D2E46192A90A1CBB13421658D37171F84AF02C5FBFF5B4648BF7D131E4F8F716CA6ABF024C357B72DA52DA74A2EDEBDFC4D8B685163436C17EAC994BAC37AE466C17A2252CACD6FBAC2477633F97943465FA9DD15051CC15FA339066EC2D2505A77CBD336239FD6510E7C02F329AAC835B70E69AB3F7A4C24899C05B6D27954AB766B397FB05F45BF2AD32244029EF1F2214D7FEF5CAB80D03348B856EF5E92F47C8302E8BEDE3F1A809CD647CD98432330C6A11E7234DA332A3B226340302DBCBA40AD52281EE2622E6456467A0E077DC89D240728EC9D3E0F84D634B6C1862E62FB11655D9698497482BF4FF0401BEA7AE94B4C150A3A6EEC62A4550DD96D4688E80136556B2FDE7BF8B559E2572270DDC4698DA2F734EB0CEFD7F1F059164EB4F26AFE5A5BA6D2624B37C5C84EB2D683F3C146A9BFF6D6A6440B1F6942ED77BF34D959FDA8597EDC9455F6B07815D6A173A47CE1CAEF3300E323819924C6E3CBD10CB82C8087B8B08CCF04850DBE8DCA712BDA6E078F491982DA64121896E45F6136937B4A4FC79414ABEBCB229D6C4A26FDC7E23BE56188022C729182267A337B3BF93CD66AA5F7181978F81707927153D7BF8FBBC4AEE85F94D6BE33603890C3BF41026BE126CA3F22155D8745E629ED12834F7070BC157C8AD306D3FC5B8B8FE977844C708F34622D6C64BAB4ADAB3B98C4EEA7A0D4E596E865B1E9077B0AE9D41ABA4F3C3B12627B270151584F1F961CC16006B9CB8EA4C0DABDB730BAD8C91FD4E281E5BBFFFB652C7DF6B70663746ED8314FE6F6A6E0FE59B53045B2D1502145EA3BAB123A29559D08253967E90AB82242F7C9D1EAFFAB702178D1D08E1C9051EA424EEDFE42970E1C6D1E8DFA16EBFCCE8AB9A495FC23975D30C584A284E5A0FCACA6C4BE533E08055A2196CF3D2456D4E8484837C6FB53F01B6CCBDD2F28EDF05AE81ABB51263B8A8584F8862453C962FF2490B02AE7EC7F8A0EDB01E290835D840C8DE325AD19235436FA3CB619CDE7DB879B8E2BDC5FCBF87984E1E07E695BFB1F155BCD799779185DE3E1FA28A8B369DB5EBA3BCD0D467E2E2BF816 +ss = 082442B947F74C4E9A1C3E18A2DC9E761677251BA93D4CE000960EE23C2CDCDD + +count = 6 +keypair_coins = C121915BFEF6ABDFC177DAE2F5A24218F9ABDA2559AFC6741B08E0E61AB433EB729B5A50627688A4CB3E37CC0FEF22162DDBD848E5AA641731F8E60B4B79C93F +pk = 05EB362461C4A2E81885084505C3862C3B647D181805205EF3E4CA5C30C46A0C21EB97700B70C2BEE78D862B3E19DC1E0CEC0AE6998A7B3C4FDAC39A950027FB2A3BEE027A8E54B4A5B981BBA01BADC0B5BA6A36A2913F1C1A046036960790CE2CF2583E6C62A778290F242B49606ECF24B3A0DC023B22AD8945A0B8DBCCC9356475B36B2A990D7435B12E1536A21079FB7802B998488E690F763646C3B66ADFBC8161855B20EA18AFD87229D05E60372694E4C4C6215344DA04173559D7954B029555E6CA4356F6CBE325A39431A64DF06E75C63ED0E40BB0CBA6ED68BC7211B02F1165C370ADA1E0ACF4AB61C87CC32F7017B4A26FF8CC0784F76047316AF6398DDECC0C62E9A37FC4CA685017B33AACF597767312192CD330B2F3A84E0BB858480A63A607295A39F61510DC2C6998614013F45D319858DA8228FE5BB6EAF3B03AA60F4B721A3F046D3088671930672C61C92D6005254372D8081BE322CCEAD06CDD472CC5A481EE385096A5B8CE64B57781CBFC4457E917162DA007BD7BAD8E3803E05B08876842D9E6A0A545407A5067EDE3510CCC4478C040310AAF46051454D855D1A5521E2514AF676846650E0043BEBF453E7488B6DB8AAEFCC16E26A75C52BC0EF3C80DA3BB39F73B9852B54D9C606363438C45DAC4FF1A1913D81B9A80544177BA7DB6503A04A5405299F80A83FB7135FDE04F8CECC0962461C0E80298D219531C9CBF00A3BB5B84908B5A807739A63485128512C0478084C8964F9064CD4514CE92C30454AC25B48919B719C5A853010A2EB712B80975660456562C4C448C39162CA63AED14AF7F28875149857F9B8965BC1D04CB8EE2E67C14A493A3822FCD0A2DBA2677E719B8F2C8BD09431B82BA56007584BEEACAA1F081D244B0D771BDB0C8033B18CA9597443FF8CDF754569DCC2DC4D4C212E2BBEE88925CE73034E19167CC7AC46059CD3B9EBBF6BC3A476F08438C61971AF139A248821002480F42C2B9C0979AD3BC6868565CA3FCBC124A7548D53F56B51C9F8AA387B59B07638C7AA45704420B3C24642035A7884CB42F877260C29697809AA7482E3FC356D8CA061C1C443CF24C4535BDECCB02C3E3B8B1D90E5B47BD11615CAF849DA5811AA743B9BD7810C470187E81AF9BDB4D1307303F615ACE2A58E7ECB3BE260E9F7C1E10EB3A84F207D2E75A30C7C741EA45FB04A9473C1425F80A9186A7F2625EA6ABB4AAEA3BB50602DF23ACF8E452CC01A909EC9034ACB47B969D904213F0A79EDB7766D0290005C954A1DA0155F7318BE854FDB038D019C1904B714F0514AC331C3813BD703B45076365BE4B47EC510A9F585907BC0F461A6BEFE13A2667593E12134A86AC139777A50CCDAD16B6891A0871621B387684B5226368400164B29109328F672CADADF7648377CD11C9232094165BB1CF12F694F940C3CD784C84925BA74C8A49DC27CDA4C553C85334A860A8A55D8A75969977AD1F505B9B20CEECEB24A262C707843310F39434390EA5315A67491F0592BF722A1C2658C8A720991B26561E14B178C3A1028003CAB8B69F60828F47B876D43D3F193C3820804068A5CAE76DC3F27F5F1323E6A2797B9A13C86713A83BA9C161899CF295CFB4A4AA443F32D16B72616A0DB4D3849FC41A7A6BA87F4AF757A0AB1956518F +sk = 67A93BB27ACD00C9B95AA03552809C38A08480DBAA67A9584A460345E20E5F381C9A82710EF1709CA51393F916345719BD3144B3121A8608C0A48017963387F7A31C5FEBC6B6749E6BD9BE3C58A9A77B53D7762F5854A3467A85941CA2C03873C0458B940275E5AB85B83A5C2027894B92246DD8632D68A310FBC6D214381128528B375FBB8C3C7923AC6A8C7F9E37C2EA4C6B72E3451922761AC274B5CC8569CCB93917A748E93C190320E3F1381E08CCCCA70903975AE25689C12709C8E9096B16A26E4439C2552A088194368B36EFE3871A6A1CD54CA0C70974AC936E45DCA01DE296A14C7D20652999E61841DCBA6C0171FCB406E14A95B0C02517447BB9370996176BFDC5BEB4316C0ED34A13431E34AB27D9DCCD3DDAA49D314659BB8D89325099D0B06931796CE65C0628C817393BB1870F19A10CFE3546D8BBC2509058327626F490A1BBCA6FBB653EE1C3555203353509AB14B64CF8A29C32B17096805B8D751848DC4494279266F2CC474228B2B703CFF81F0F29152F4570151517995262D705AFFFC08DD413C12F37B605BC32ECC1292B9AC99E4A34F911C8DB990ECC9A3DFB37517446908B91B1172A3D4F547B3AA642709BA40C3939734545DDB6B45C66A1A3E58C6D1929E5721BFC6A6021A635D86C8378D4A0BA68CE385B6B7FB983EC4A95C8B20B3EC750B082BF2CEC89A6F8C2881650E5B71A0135C865BB3FB12A4C2C3C917D655A2997984C8557ECF1943436A9FECC5C84808E38701CC26A251F458334F59BD40BB0D8F82E74071A5AE3C9439541AEE59C6E46A5852834CE5712B3665018154C5339467D606AF189CCF20C68C583C96D969815109CD3ECAD4F5AB0A8BB8A7B68359B0319078A7405821C2709A615864422BA0A3970C8EA138FFC1522B1A53ED1C71D396A0ED6B782C6552C70216679BB4761A600634276D553CD703897C6943A859112CAF9A7AC99517C23CE6457AA069B6FD2775EFB262DBC27B02FE6923D14B047A25CDC6B86D20A55D85108FF276F121A352E098E5D4CC3EF92B3A1C4A38244621B055D5F812189F6941B492330FB1AB0A442A656655455B38B522DED5640CC4136DF6CBF4C4B0651531CD8C95280E2AF13FC57C977BBD1A8BDD253096EA98C3AB33A516448A8301A4B141AE213BAD2F640B2D5846C99A25884360F604333197816BA9DD1D0C427C5B8D3A6B434207B8539CE5092CCDA67A755D6A6D7E8BB6BB02AF1CA7283E797F24A1042D29B64262F29B0482B840BD70A3D6D54205DF412DD6490E3DC38C1236758F65E461B11CA480B476875C692508E7BB90C430797E1917041642D88506C07255AA92EA32508462C2F4A1661C05114C9361F651B7C5FF70B42659FFEE71F58CB79E445536B8948142CB4EC16CFE5B21DA659C2DCE452346323F1632C37F128A6525F40E03D6C073E05476252B2B0483C4B87C1C1FD8C972CF651EB9684FAFBA3F862C8619C089F01277C14BE7CF7790712CA1E8877A48909EFA31D814C1C21F4A151B886076840546419A1C8B6CA4466389A3F6DBB69E8494D7B25A4E9B234A8D928A26B946FF305B8A33B0BF8B3EB992D68C312B4074788E69D1A5A211C3B55F8C654AE778FBADA1D75FB2305EB362461C4A2E81885084505C3862C3B647D181805205EF3E4CA5C30C46A0C21EB97700B70C2BEE78D862B3E19DC1E0CEC0AE6998A7B3C4FDAC39A950027FB2A3BEE027A8E54B4A5B981BBA01BADC0B5BA6A36A2913F1C1A046036960790CE2CF2583E6C62A778290F242B49606ECF24B3A0DC023B22AD8945A0B8DBCCC9356475B36B2A990D7435B12E1536A21079FB7802B998488E690F763646C3B66ADFBC8161855B20EA18AFD87229D05E60372694E4C4C6215344DA04173559D7954B029555E6CA4356F6CBE325A39431A64DF06E75C63ED0E40BB0CBA6ED68BC7211B02F1165C370ADA1E0ACF4AB61C87CC32F7017B4A26FF8CC0784F76047316AF6398DDECC0C62E9A37FC4CA685017B33AACF597767312192CD330B2F3A84E0BB858480A63A607295A39F61510DC2C6998614013F45D319858DA8228FE5BB6EAF3B03AA60F4B721A3F046D3088671930672C61C92D6005254372D8081BE322CCEAD06CDD472CC5A481EE385096A5B8CE64B57781CBFC4457E917162DA007BD7BAD8E3803E05B08876842D9E6A0A545407A5067EDE3510CCC4478C040310AAF46051454D855D1A5521E2514AF676846650E0043BEBF453E7488B6DB8AAEFCC16E26A75C52BC0EF3C80DA3BB39F73B9852B54D9C606363438C45DAC4FF1A1913D81B9A80544177BA7DB6503A04A5405299F80A83FB7135FDE04F8CECC0962461C0E80298D219531C9CBF00A3BB5B84908B5A807739A63485128512C0478084C8964F9064CD4514CE92C30454AC25B48919B719C5A853010A2EB712B80975660456562C4C448C39162CA63AED14AF7F28875149857F9B8965BC1D04CB8EE2E67C14A493A3822FCD0A2DBA2677E719B8F2C8BD09431B82BA56007584BEEACAA1F081D244B0D771BDB0C8033B18CA9597443FF8CDF754569DCC2DC4D4C212E2BBEE88925CE73034E19167CC7AC46059CD3B9EBBF6BC3A476F08438C61971AF139A248821002480F42C2B9C0979AD3BC6868565CA3FCBC124A7548D53F56B51C9F8AA387B59B07638C7AA45704420B3C24642035A7884CB42F877260C29697809AA7482E3FC356D8CA061C1C443CF24C4535BDECCB02C3E3B8B1D90E5B47BD11615CAF849DA5811AA743B9BD7810C470187E81AF9BDB4D1307303F615ACE2A58E7ECB3BE260E9F7C1E10EB3A84F207D2E75A30C7C741EA45FB04A9473C1425F80A9186A7F2625EA6ABB4AAEA3BB50602DF23ACF8E452CC01A909EC9034ACB47B969D904213F0A79EDB7766D0290005C954A1DA0155F7318BE854FDB038D019C1904B714F0514AC331C3813BD703B45076365BE4B47EC510A9F585907BC0F461A6BEFE13A2667593E12134A86AC139777A50CCDAD16B6891A0871621B387684B5226368400164B29109328F672CADADF7648377CD11C9232094165BB1CF12F694F940C3CD784C84925BA74C8A49DC27CDA4C553C85334A860A8A55D8A75969977AD1F505B9B20CEECEB24A262C707843310F39434390EA5315A67491F0592BF722A1C2658C8A720991B26561E14B178C3A1028003CAB8B69F60828F47B876D43D3F193C3820804068A5CAE76DC3F27F5F1323E6A2797B9A13C86713A83BA9C161899CF295CFB4A4AA443F32D16B72616A0DB4D3849FC41A7A6BA87F4AF757A0AB1956518F0C1D832AF7B7282D8BD81A2237107EE60D81E28EB64D6A153AE0EAA1A25797C2729B5A50627688A4CB3E37CC0FEF22162DDBD848E5AA641731F8E60B4B79C93F +encap_coins = 187361C0147168EFC571FC7C181BB39144A8F7EA3E878D28024D19BA42135BD8 +ct = 2346F9715D35D5D500C8F5966CC4241BB74BA3CBC5BA3B922C36A1A68CB93E5F62421110AE7C7FACC663E787EFF1426CC170BA73FF934F912E65779FB4D2CB12264106FD64821BCCAD40875A69EFB650EEAECA8797A629B30E6DE6437EFC8D9CD3A54BD9F0CDCDE0D3BE33A3C41899B36E077C7849D53803124B6973FF3CC79095BF3C27B7875971F2B6A6FA581532F540976A34B625EFE3704F6EF04258A189365F23A4B4B710F1242E4E0AC44ACAE9F454158F7FBAA16B2AEAAF51D014524D870B8BCD788BDE7CA8004F585D7BD897D79408498C6582CA3E3CC76479ADD4E3186DB2772379FD927BC2D08F4E4AC595D22FC2F840404D85513E1EEE05C42885CA70B04EFE791F0DA09F4F6032BF8983E8C9179A0E1A085CEA8F95BD82BF1DE23C9B46BC3EC92500AEB4F4118F16E7BB11944DBDDDDFDBB0DEBE077EE505A90AA1BC0A240493D49D1668CCF1A14B870D6859554FB0A047632A94C0813B19BEC4EC5153CD8D1B307A024943ED80DC7E6703028F879B5676A20C2AB590D997759B9052AA2FFE749672760B54A0E276630829B3A6D78D85B25CD8D1765906660A80D90B548D6397948D6A717060CA9B8301C7751FC7115CEA08B5FABDE7045FAEBCB409344E0B7E5463D1F5E0BB722AB73C584F605197040A1963C25DD723AD1F5F9ED36A893AB426E7472FF5566D7A7CBADB495E01B28341671B5C3B84D87A024F3763CBAA8E043307EB2707762986A0C54FDE5252B67015B24A31E8197064E83440019728DE6EAA27A348FD7BA0B4B0BCEC5302793FB961DC11DEA0FCC23C84BE5BDA50AD6411C8F440AC15874F3016E601884605815E3B3ABBCCF372C3D68C8FE461684EE3AABEA909E5E92DCB39CD202E7D48FC28868D6058EDB4B0E55AA7BAC47CD1EAA38ABAB0A2F103A9271ABC739DAD188F2EC030B015897A1267D8D31666BA0908636BC6CA5D55E7660DBDE81E02986A675DF9CFF4336F3BBD02B9902079BAA0D59B7F1B6738992CB5481510B97B7B26A052A4817E36BF56C802D23FE457BCDBD5E9CEDD151FC6759A8C794F35E33D41EE1F4B6D783768B1D48C95DC8D9AD86713F5A64DC191B4CBF0578080B9E300F8EF7EF1EB72B8C0EFB256DD249434DFB46A72BFC82DA2563A46E61F158F3032CDC49B2B96D8CDACC55AF3004F23F587F9EF8470D0251B9AC3B7453FB8419BEA5771B6ACA2025BDC7DBD16682E3A0862445D79F149070E9DA548902B58D234B07DA0D12C42ECCF56DE3701566D063583D5FCCF3E88EA045A353461A21008D5E7712B6733DF7D75DB2C87CD5A8D9885178E8C7373B345C8DA3B4840E09A578338DDB25519C5E7D17C9C58504983BE22F0E569D28F195E746AD1B52896A9CAABDAA218EB727420CF90A5BDBCD0F24750BE25F6669282A70D64F9FC9BAD4E0DBC3572824C47F0C4AFF6BB86D936EEBB0EB7DBCC9D795B8469A2D0D7E55C108AB0D99068BD6BAB8E4A1BA62EA5EC89F56B7ED9A6425DA741EE74523A32A3B7A168E81D6CE1632B89C2D2B1269014ECB4 +ss = ECFA00644757C95E8A66C87A4D1FE52EBB7592234EBC5CFE51941D8C12118095 + +count = 7 +keypair_coins = D86634ECF96CC2603761E284C0E36734CEDEC64E7FF486469E38539C71141C5A0472C3D61E4CAE91B22D2F5A316794C723FBCF7546DB47A42A15F1450CA3282D +pk = 89C28969078E11664CA1554ECA81B9542BAE2EA8CC12B44E81B3354818141AF0B494543D4674160A086F7E8755A87258E7E6A6AEB96955286924B42636E04583F74184133D8ACB9067925F4969642F274085F70FC12361FF96C3130B143E23797F2A3A6CC757C97454CC8AA5D9C062F9254F4CC7335B44CB66DC712B4677C290CCBBA08CFC3948C535BE29F44736A23B4C8CCB3978404E419A08A67AA555BECB48BCC161CBC5492B55E3498E74BB515C28A7A44A3AFA0148EC3411D82A1AE103513074A13938A5FC17DFABAD006D90455B4B5E45079D7BBE956C7A18A8BEC9A64C1DB72544CB00C6997D545AC7E3BC5C6565885536AF486417E728CC99C78CFA12A1F7697F1AD26EFEB7262800AC4E0121E766AA9BF0A74AE635074C62FB6CA79975761419B12A985ED7A2C8788C9020462FB5764C087681BE1595A5EA4EE7234AA2D22F4119B559A536E0DA0E8D0B2E493C2B5BD576459994ACD684A81A0955684818E1B88E348446A22C9143A4EEFC7D8EC678624763D4548FE2451F078582C93C986B0417E1AABABDD76DC0532E252B59E47370E81951EF75AD48C223316A40237152E3508EC164C7375594F73B5F0483C560F52F250AAEF28431E9D1B2B9DC650D2371BBB7C8360C72369755BD8696FC5C83FCA76A7FC02EFF54CA60579CAEF6341385AEEE34C7182445BFDB549BC59F70B76368DA88D47386F75968ABA093E8F42DD3C7CD68C8028A90CB0C93CB44D42EF9D15E6CA978ED5B88914C4E20768028F2C927A33433D33C5E6A45A6C5AE8C252A83E68EC121347B025865F26912B89A9DA7472B75B9ABA75581852B97D27EA7C9C5C7E8BEBC0094C01947F43A2C6501C97E43231310167ECCBC4C3A2022839584A12AD5B51B4CD308C94302E58C70EFF7B24FAA051CF548B5A73AB4254179EAA038EC95D4D4182D2971084CB33A6CA1106076DFA76EC0C4B3BB5C7266A481001CAD07D12051A77E31603BF47C62DBF959C89774587111DB1B038AE834E0A08C27F2B772A967179A9BADA1AC12BCB8FD3B06CA44B3F11A6762AB51A9A0B67FB83DEF8C9A712A1469B719F2557E5A03C6BAC808D0E0AA304955A3E961618920D0BC2347C74AD6725A9A855D1D8456D2C26ADDD849E59B7CE7C85765064ED6D63039E368E9F18D4FA11E16F8CC88BB3FFB40B4C6269996DA8A6B5586365292B5B1C78BF4161C171E2FC7A6A8293A96D61D683275EAFCADFED74473E30A1026809076A1025398B745BE723A78E008C85B558D2B76392F5015D1024C171C0FC6C7C0C0E631BEF57166E660269231C3216FB08B6CFF0A420AA413EC1285B7B5AE9FBB15F9FA6B8AF29EC061996A7612DE524C7E0724766BB51E1264AB50C3A095815645B1D1021060B90C96555E8A001044D16CFFD7719858065EFCA6C2654EA25506F0541FAE242DBB154E420C0DD4E13A79053B431B7C00768BF0F781810A0832A2B814C5517AA1A0949523E12AA35893912256A7370BCD9FAA30788B631B87731CC5C831A26E8F48AD7CF9C935301AA8CB006AC59FD2EA5BDC1736B2A5523FF3C4D8F429DC037292E863A087BB29CC2732BA30BF11490DBB1F3ADB3448D6110A774B25D242602C250999CE69D1B32AD3702602E6D28FDACDBD2A03546764C4FC1C62C0EFB3462C7C88AB8D94E20B +sk = 0FCBAC2FD83A9EEACE0215C784E20260F0991B225897E94ECF93368B79565B478731537EAC74550CD599D5268E03A25CF327606686AB8864677907A3C3555018B478FBE125498652D5259A31C2B4649C14C89BBC5758A9B53C64E95BC9CE30C306372D431CBC642C0D60E25136C3919F3BB48B280B9D5CA0B21BB4E1510AC49AABDF02C9FD66420B475D0731918A4A5D3C7A963A468FB7A86C128988EC36C34F475F2B87791F5604863BA6DCA297EE29238BA79EEEC5096E9B336CF0B24DBCC9FEB8BFD77AC888554472D7732E7492C231302A073680C684870B86A05592355BAF2620B51DDC7B17C9328D7A74DA6367D9EC2B87E9221C297B5398CFB55C10E8A68323AABBED806C2272C192FB180E7A5B958A02DCA5C55654A43C74216B192522BC2A2DC05BF865062CF56839831EBB837A3ED8C7368C15933730667B7463AB7026848BC9BA14616B2E88E17ACA4109B5DB56510B408465523307619FCA752919B947EB40E5E8C19A7B4A9099734D648DAAC8C81C1C628C895400E245DF8A324899273EFB441B564305EC48AB305C69D37E846AC9B77A2917915E82286DDB397936769BE7E37FA7F27A003090C7F2B9B395A41370B5A38C07C2D8314627267FA06BFC416D8AC1155DF645C6150BEE70C4CAD8C6A5C564BA2571C9BC9BFAF0C2D12578C8198D49E1414CBA5749D712556A537A4131F3F085F9047735482E23342B218101AD30122113060CCA4196F778C77CAD2EE58B6F23071A85B79C1215F0A7C8745ABCDB768C3C26042D09A9A0355A5C45745D1ACF52C205B949ACF581AB75CAC74F2364406A43A74269645166FE167642900D169A1E84929DA4CB361E80C42DC702A79364F1D664528B6CEC667BF230078AF06A0B48466DC90B34EA7101512E37D8BA3A351D7023AEE652351AE514B8D217FAF09A07654B0CBA1850041D7206CECB05C8F6703F762C97DBF82255DAAFCC3608E8891E3AD8B3D4E18DBCF6A1C2E74CDEB87D15236D70943DAA722481692890A548D7C69A14FCC1155202CA4941C3900B57A452F281091A94781C64A9583C8D302C21484CC6159B88A931AEDC4291E097982EEB0528C152A43B97DEA2A0B36922FC60C226B61068C792F377B9F655940D73702D41BC515086E8F9266C53A4C15A35907CB2FC2A2F19BC5F974034677A33B648322CC9BFCC6B947B5346DF2044249623E53430895295327C9B35F59ECD4A9521F4B93A4C031A624C12F40BA17B9F36908E462B928AD452EC74B84F9B5C1C69660038C85D6743F8A5A65B3787B5640D683B7A45009A1EFCB5E50A35244C9431F21F1B6826311673832CCBC1794FEA917268F5323726698F67BDB41BCC012218929649C972149393845DCBAC7FB58582964405D4ADEB814037A39E512C3FCF72A22AB70E21FBA3822B493DF9983866412F0439E1A613914042C982739031949B2780D8133E13E632FC4281DE567A333C5D8AD458B848CCD65BC87A8B6B29134556A6780EB7B02E4437AE69C09E304210D5CCE3CA3DFEF261A809BC5DC44787A20AFFF49F3E0156E7B428AE1CBD3292C9D818844D4767342708E4016EB9BB0F7099876C26729F443E7CB3B9666441DBA01C8397953F586E3DA45789C28969078E11664CA1554ECA81B9542BAE2EA8CC12B44E81B3354818141AF0B494543D4674160A086F7E8755A87258E7E6A6AEB96955286924B42636E04583F74184133D8ACB9067925F4969642F274085F70FC12361FF96C3130B143E23797F2A3A6CC757C97454CC8AA5D9C062F9254F4CC7335B44CB66DC712B4677C290CCBBA08CFC3948C535BE29F44736A23B4C8CCB3978404E419A08A67AA555BECB48BCC161CBC5492B55E3498E74BB515C28A7A44A3AFA0148EC3411D82A1AE103513074A13938A5FC17DFABAD006D90455B4B5E45079D7BBE956C7A18A8BEC9A64C1DB72544CB00C6997D545AC7E3BC5C6565885536AF486417E728CC99C78CFA12A1F7697F1AD26EFEB7262800AC4E0121E766AA9BF0A74AE635074C62FB6CA79975761419B12A985ED7A2C8788C9020462FB5764C087681BE1595A5EA4EE7234AA2D22F4119B559A536E0DA0E8D0B2E493C2B5BD576459994ACD684A81A0955684818E1B88E348446A22C9143A4EEFC7D8EC678624763D4548FE2451F078582C93C986B0417E1AABABDD76DC0532E252B59E47370E81951EF75AD48C223316A40237152E3508EC164C7375594F73B5F0483C560F52F250AAEF28431E9D1B2B9DC650D2371BBB7C8360C72369755BD8696FC5C83FCA76A7FC02EFF54CA60579CAEF6341385AEEE34C7182445BFDB549BC59F70B76368DA88D47386F75968ABA093E8F42DD3C7CD68C8028A90CB0C93CB44D42EF9D15E6CA978ED5B88914C4E20768028F2C927A33433D33C5E6A45A6C5AE8C252A83E68EC121347B025865F26912B89A9DA7472B75B9ABA75581852B97D27EA7C9C5C7E8BEBC0094C01947F43A2C6501C97E43231310167ECCBC4C3A2022839584A12AD5B51B4CD308C94302E58C70EFF7B24FAA051CF548B5A73AB4254179EAA038EC95D4D4182D2971084CB33A6CA1106076DFA76EC0C4B3BB5C7266A481001CAD07D12051A77E31603BF47C62DBF959C89774587111DB1B038AE834E0A08C27F2B772A967179A9BADA1AC12BCB8FD3B06CA44B3F11A6762AB51A9A0B67FB83DEF8C9A712A1469B719F2557E5A03C6BAC808D0E0AA304955A3E961618920D0BC2347C74AD6725A9A855D1D8456D2C26ADDD849E59B7CE7C85765064ED6D63039E368E9F18D4FA11E16F8CC88BB3FFB40B4C6269996DA8A6B5586365292B5B1C78BF4161C171E2FC7A6A8293A96D61D683275EAFCADFED74473E30A1026809076A1025398B745BE723A78E008C85B558D2B76392F5015D1024C171C0FC6C7C0C0E631BEF57166E660269231C3216FB08B6CFF0A420AA413EC1285B7B5AE9FBB15F9FA6B8AF29EC061996A7612DE524C7E0724766BB51E1264AB50C3A095815645B1D1021060B90C96555E8A001044D16CFFD7719858065EFCA6C2654EA25506F0541FAE242DBB154E420C0DD4E13A79053B431B7C00768BF0F781810A0832A2B814C5517AA1A0949523E12AA35893912256A7370BCD9FAA30788B631B87731CC5C831A26E8F48AD7CF9C935301AA8CB006AC59FD2EA5BDC1736B2A5523FF3C4D8F429DC037292E863A087BB29CC2732BA30BF11490DBB1F3ADB3448D6110A774B25D242602C250999CE69D1B32AD3702602E6D28FDACDBD2A03546764C4FC1C62C0EFB3462C7C88AB8D94E20B2B757AC0425152BEF72ED852AB1EB44F4359499407BB6A020FF843A31657C5FE0472C3D61E4CAE91B22D2F5A316794C723FBCF7546DB47A42A15F1450CA3282D +encap_coins = 295F219917D44B474DE067472CC832406BCD18447DF12F87BD117662CB0F2E77 +ct = CD361223CF480B80ACE3632A15063FA98F6D61D4F65860C7E14714B5A7F28DE5C091CB130F239111311101223FB81D89AA7C23798E0392177DED4AD50C0E71121FCD0C0A36C0DA37EA2C7E87BAC9E0F934673C305A91D4D9E857D57773E6D579BDD3BC5DBCC7ECF6AAD3CFE9B33881433C7C32BA76AD88007A9C6FCA5B2AA315CED1397937742B2FCD39B0EC57B7A5CEB7949B248214C555803ABA844D22C1E075C7B425CA65D7B9270D0A53D249AE6AC4709347E4F62D13F3CC8BACD7DA4CC2C730308CA582ADB17A6363DB63D5BC66AF66AFDA1ADDC227F3F0F396AEA99D022CE942ADA36ADF7E4A65AEE1CC7455BD70C3A89558FD9CD15F08D5BA7295194CA218049E261EA8AE277B87A6A1EF3A30F8B56AB9350FA78230E04BD446775811555001D2D3743AF7EA5061117B3B30B281BAC42C4D88B231EAFAEA4F97E8932347D55DE342A23F31660F4C08D755AAEC25B6BF57B2AE28B2E0610FAD7A6E12A4F591A17BF302F10EE277A482DE6338984BF7D9433159E29AB5BB6D79FA4359BE043E7CF607E3D1149D43CC3511B333A7E8204F58BF1961604F0194027FE6F29B582020A80F8127EE4C49082D822359BCC108B9ED03C3A59AD06AF9FECE8771BA321505CF7E5A25565CD823DD8F2AA583F45BDA76BAE8276758E3E5EFDCFF3B7B929D71BF1D4041BD655B25D7FAE7266F3755157172FB60642E02A70EB28A226C6D9E0CED87EAAF37ED78721FBCD57FEFE2CFED54B41CEF16732AC20845905902A5BD18825250D53C1B210F1CFC4DEA5E454EB0D0A2B34506C4FAFE78E38705C959A6F693421C57D01ED31649119CA21B5362BB90446462B160B0EC5A61D2D7EDF69277D3E1DFAE1476DF3EC51143249377E95C6D40D3FC3295724475A791C4BDB1D9FC766597B1C7F2CAD42910684B54390ADC84851DB9A7E8D1A3433C85A9D452CF0BD3C8EF679E131D6E9DD82A6BBF6AD5EC44B5E001BD2BA3BC12DF443ED32B47EE0BAA6EE9EECFE7DD52EC7B996585E9AD17D2D7F5D9FDF5B77A5D552A3B820C4EF1B326FBB225F67BA5D20F80228A24B88D5B690EEBB1E90AD53B4ED3D010443F6923ECBC1DFEF56480AE53EC0454B7C036299D2460390A5EB17D53707C2A909C94C88D475FC8977D3B92C91E0E698C35FBE479FA35C0603F25354EDEEC851E69C697B9F262AC06F6C584CCA8AD96102DFDD789F76AA00E25CE771400C8A32F0B981FAC3B81F5D4DA1C13D9D61C1421D6FB7D7786EFF8F2C4505103966B98ED2C5AC25FAB0A9BC507C5104890375360B3D75C86565E0C0E6C0AE5ACC984B675ACA97E7A9B77F547EE179C511A9F49BEF615D7E2D1B00A846906CCC062B183EE2BDA2202FB084CFC89AD84B2DEB8681BBBEE3E1231105A77DBCEE19E3947BCA5E9515BBADCD582483F96FFBF4D3AD87DC47E1CC5E8D14811F158A41630443951819BA864479F2D2104FD28B8C478D954478269B47949901709F1C58C59D5B540B9D2A1F44F92CDF810C5D5AB847E9754FCC89821DB578CAF9F75C2C93044 +ss = B4AEB74357E6F7D976F210BB04FEEA974A4A56EDC42C733DC1B456F215CC3AA2 + +count = 8 +keypair_coins = 0610678FF4DC3128E1619F915DC192C220F8FAD94DA1943B90AAEC401683A49281B292427D57FEEB160F9347348632E1CD340960F6E6EA2422D194A0109AF1DF +pk = 764B51D1DABF923518DE898C5E7CB5E0066FD69522F5889DC05C41A472C983583333132052A1C93A464120B325764B8665CA42555B98D8D6A93C88A0A383AB51280F52873F2BE26E12C131677027C616711D478342CB424B0463C88161ED84BF6E869ABE9CB915D13534D2756DD72343359E9911624DC7C6E828B19D6CB178C43A5CEB9360D2939DF2744ACCB4DFE8AA5ECA35BF87C6BA265FB4AB7C4888516EC91E52C4030F5453E6BC9103B9C19CD83E69048272855B11B8AF3EDC09B04AB31179BEE59ABC76726FBE9612D271B7010844F62535F2F30D8417C35F17C1619B055FAB6A0F5458568C753310299FCB335A7697E7CBC9B9EB1B14AC2D0DDB765B266B6D68BDB5B0236895328540B20F91BBD2910625E674B33A4F8B6C1B4F66C4130C2E973AB72D809282CA63EDAB71268C02A9D020BFC805410AAE2DD4B699448A56049D1E9A58C5FC2ABE159DEC69C5027099A3B57D3A2560CE24A6F5017D32E00F3078B792309384421878CCA555B7065D57537C804E10BAC052788769B7C1121A78911A153FB56A365A2F97B070D7B61724D0C4D14C295D78BE57A8AADB873D3AF6B74D020B8654CF48543DE8CA22371A48DED585B7073ECEE0C44EEC27C85B5A68F6B454B0CB10692039CC68EC2C2BF892804520C71BE5B7BADB807B4059A3D87D32548BA3E4B698CA150D784A8C2C35A67A8C92C68AC0037888B65A4C9800BA7A1EC050627AF648FB61C87CC55B8243545AA514CBC550A8804C8598CD35786EB8C6B06077A1E2D4344E4A6BAA789C305B6326E0BBD4402DBE26CEC08A7C1A19457BC2677F15B984A74FBC52CDCE48618D50C47400011B392908AC2CF08A579783A80FB2990CEA90EEE90B7DD81E6CC9C961372D8C720D7EB223D5A6A16D4571C1A93213B32289934F7B30A63527C6399920086940B7696503E623E63A050F4B69810B6E6F6729E5782B572221F596A09A1879BBB46A62A955043A30A2AA3E62E02CE1AB6F3D03693A8CB653E361D8783FFA37274AE06A3F2292F1A6557182006E493FF2653437A64DBEA950BF6A8CA8836407FB489D42A6F6257770310F28715BC6411C81486CEF3CB9AB500558F070F4A15817F8C177D63CAFB176CAF3B2B1CB7B7254C18FE15111FCAB9E9A9682F41C9FD247EC532CCEF514860A3FED330255323DAFE46EED198041D732538C9424D43FE2F5481650470F08906791B2BFE65A445BB26AC87D9BD04AA648A54DC13A137B60E5C2779FE4B5A866620DC2829D42384AEA9AB1552FCA920F8929B7BAA059DEA53E6A5B3E492A6E45B5AE11F6AD24D035D4246A0CD53436687A0204A1DE29AAD2C8B53AD4B938A57C2E29555219544FF64115CBA2668B54C6EA8779146980B58A2E669124A81ED4420C87B0601DE23E3CCBA915FAAD0C2B47EF6238DBA9449274C64CCCCD85E91712470E8F9A2866720059A8501C7762C0883CF9827BFD62BDC0882EE03B457BE2B2794B8BECF74EC0DA4684282200A294C13C8A9FF376C1187911121BDD886F27514846F740B72AAD5544CBD97A7E208635480ACDDF404FC067C82A45B5C97829F06ABCA5201429E9A516F66E65D07075CBC0C60C2A9734BAADD68F421617FBF9515B569FD08BF3AEF948095DE1AFE74BBC3BDBB45FD8F92EDDBF0C682C81A98F930F6165 +sk = A5C7981510819EA27D27A945A0F6619D730DD196B6F3A158A4C48ACFB82D1C348540160B0CC665C43C4C0E4567B46867CED06D2CF228D0B64706227593DB7392395B7EA95360105C1BB05472787430654AA03B6E894C2ADD2A0467EA51B9486F3DF18274C0A2079459DF3B9AEAB15D203B466EA426911572251B0C8FB51A31AA142BDC4142E393D3C527C841A03F796E0CF7CC71DACB47456FDD386527BCCF6E43013EEB755924A22E3A55F74A8974B38E06908349FB3DA5887D1A041C8ACC6F07A75198462353942267D7600D5243095BB012D2A70BE0A3FB2BB599832F8AA68652846BA501BAB3AA574AD08BC991C8B86717B87A45041657D0264F35F0C2B70324EAC43D591202CFDB9A7D357489F70F86D6308D3382CF9139106CB28D947AE3BC389EF18B728C1568436B3EF80644009A80F01EF550C794011E44F2812EF507BD55820A872B90E797626B8EF2D94012B4CF639BC5C8A7B87306753F93CB12E46A66C4B2053C037B87C51436CC83B884F7634A6950C419684AF3B78D41006467105F753194144539DF45AC7FA46E71815F53D2304B474A434B02517B083B058AED078DCF86746313BD8108148EA34658613560CA722A126DDA147AF8C5733705BC8343331BACC5B5B80E424CCF6114955056329A68A2A6403D65197C21DA02A390C41EF713A814A798A434145B9E3A5C31A9614CDAC8A8BCAB6B5274490F5C45B2A307F492C28FF40EE39C2068A5826E8466542559E9409FF11B463E9A4EBA0A2172EC8EA6332D3A5BB66531B670C52CC2F8B651B513E60A9E64795369E0C2CF56A9921669299B6B5399537E112AC358112810ABC6945BDE69AADA92552A10219A630E26E4AC7D9B5C7469A960AC64A6D127971296C53A15DF4C847D061E69CC030B9CABC6E58903C5ADC88882CAC147F2888263ECB6AE97A9B2AA245F131E2E2939F5C8BB8FFC012CB578B9BABF90DB062502B1923CA88B35C424FC6524128FD1D7B5CA719F5A9A538A51A97ABABCE07B006EB701AD8490B74462F93648FC39A2004DB6E951B4C8219CE49395891594353B92B6B496D09376FB28711D87221851A5FDAB80CC52A6352C062F06C80F891DA2A07573B42BF0F6CD5D6B63FD4B1C5BF2572FC8460385A642E6290FB79A9B1CB18CBCB34BD87F7EB595F0598C67709D72011FBDD07A0EB6616A88B8E33571BFA7597BE4CBD6976B93E32C2C088DE3AB59DCF2234E553A5B2AB143C46DF13211E816AED6D02BF6C13FA7F8B282237F249AAEDBD3A6FE8771014C1B811C05FE86102C0B0E7E9B961C1000C82408D8A8AA381552920803418C49E1662C7ED8C3D35763C510585A78664EA0012A8A02F34B2BD7E96EE5C298DC296537C985577CAC3E310568353EC2CA8EEAB4BB1EE2393D5B3CDD25305B148FD8AB11F60B5871E9C9359A46A5DA003E98B61D82C51CD9262764301C86268DB87FA6273F9FA3C35B1C1FD822AAF2F74EDF73AB5AF9175070BDD7D5CC7600A516726C3E49348D138D19836391A54954AC4A0C029B1441C37965422019C2CA49CFCA81317A211E22EA2297B865DA163A0AE2A9DC25701E71847A05754CB733620A824F090D591C51C345420E226B8F3B846FD356E78B87764B51D1DABF923518DE898C5E7CB5E0066FD69522F5889DC05C41A472C983583333132052A1C93A464120B325764B8665CA42555B98D8D6A93C88A0A383AB51280F52873F2BE26E12C131677027C616711D478342CB424B0463C88161ED84BF6E869ABE9CB915D13534D2756DD72343359E9911624DC7C6E828B19D6CB178C43A5CEB9360D2939DF2744ACCB4DFE8AA5ECA35BF87C6BA265FB4AB7C4888516EC91E52C4030F5453E6BC9103B9C19CD83E69048272855B11B8AF3EDC09B04AB31179BEE59ABC76726FBE9612D271B7010844F62535F2F30D8417C35F17C1619B055FAB6A0F5458568C753310299FCB335A7697E7CBC9B9EB1B14AC2D0DDB765B266B6D68BDB5B0236895328540B20F91BBD2910625E674B33A4F8B6C1B4F66C4130C2E973AB72D809282CA63EDAB71268C02A9D020BFC805410AAE2DD4B699448A56049D1E9A58C5FC2ABE159DEC69C5027099A3B57D3A2560CE24A6F5017D32E00F3078B792309384421878CCA555B7065D57537C804E10BAC052788769B7C1121A78911A153FB56A365A2F97B070D7B61724D0C4D14C295D78BE57A8AADB873D3AF6B74D020B8654CF48543DE8CA22371A48DED585B7073ECEE0C44EEC27C85B5A68F6B454B0CB10692039CC68EC2C2BF892804520C71BE5B7BADB807B4059A3D87D32548BA3E4B698CA150D784A8C2C35A67A8C92C68AC0037888B65A4C9800BA7A1EC050627AF648FB61C87CC55B8243545AA514CBC550A8804C8598CD35786EB8C6B06077A1E2D4344E4A6BAA789C305B6326E0BBD4402DBE26CEC08A7C1A19457BC2677F15B984A74FBC52CDCE48618D50C47400011B392908AC2CF08A579783A80FB2990CEA90EEE90B7DD81E6CC9C961372D8C720D7EB223D5A6A16D4571C1A93213B32289934F7B30A63527C6399920086940B7696503E623E63A050F4B69810B6E6F6729E5782B572221F596A09A1879BBB46A62A955043A30A2AA3E62E02CE1AB6F3D03693A8CB653E361D8783FFA37274AE06A3F2292F1A6557182006E493FF2653437A64DBEA950BF6A8CA8836407FB489D42A6F6257770310F28715BC6411C81486CEF3CB9AB500558F070F4A15817F8C177D63CAFB176CAF3B2B1CB7B7254C18FE15111FCAB9E9A9682F41C9FD247EC532CCEF514860A3FED330255323DAFE46EED198041D732538C9424D43FE2F5481650470F08906791B2BFE65A445BB26AC87D9BD04AA648A54DC13A137B60E5C2779FE4B5A866620DC2829D42384AEA9AB1552FCA920F8929B7BAA059DEA53E6A5B3E492A6E45B5AE11F6AD24D035D4246A0CD53436687A0204A1DE29AAD2C8B53AD4B938A57C2E29555219544FF64115CBA2668B54C6EA8779146980B58A2E669124A81ED4420C87B0601DE23E3CCBA915FAAD0C2B47EF6238DBA9449274C64CCCCD85E91712470E8F9A2866720059A8501C7762C0883CF9827BFD62BDC0882EE03B457BE2B2794B8BECF74EC0DA4684282200A294C13C8A9FF376C1187911121BDD886F27514846F740B72AAD5544CBD97A7E208635480ACDDF404FC067C82A45B5C97829F06ABCA5201429E9A516F66E65D07075CBC0C60C2A9734BAADD68F421617FBF9515B569FD08BF3AEF948095DE1AFE74BBC3BDBB45FD8F92EDDBF0C682C81A98F930F616553B9D62E64F9069D9FB94EA2C0806459B201531F4FDDD708D162981CC1FB375781B292427D57FEEB160F9347348632E1CD340960F6E6EA2422D194A0109AF1DF +encap_coins = 281481109453C6238EB72D8995D5A09BAEB0B830E40FB09ED20E37BDE4826DDB +ct = E49ACD43305211CB4319D02ACE5A3D03FAD14ADE9E27EBCA014597DB6D17AB0E8A603600CF0E5245BCAD4CB57CD2B7B9750A756369D2887D77125F165E0C71BBB0F35511D7A5BD0565A3C0D71D283BDF6E57E7248F0C4CBD03884954425BC0473CB45163E4A9A4BA1A1AAB654672C1C556824B090C5E89528BCF0D6A606A1E0F7E5B7674657AB128715FAE0AD6A3DC10D94F866571F28A57691CC900FE1083B01582093F269EBC3345030ED88561E8B1E5CDA815AB307755458CD8A6EF9446AE9BA761EC8253445A2540E539B84BBF4F0D962454C3F9FD2D97773591B6482858AEF71F5D71065406D41744C247CF4E5A19AAD5E8AC80A19E5E8033B434996BA1BF0A8E75CEFD4CFB884C45FE275DD09C9D96CBF86CC3B6220B709C5D31B1F426AAD2C3DA7BB1F6319E822A490BC7A0608F2BC38745DAC09ABBF8D1B9F363E3353CDCB1C74D072AFE7E0D3F23194694C98D769AEBD029D9080CAED6EE045174713B665FA6D10F04208A2C49023A37363E954C7A90DCEFA83CABA4E233F71EE004B1B7CA55BE16EFB59D39B4E48390BC8949962E2C37D5E383C105E1F79D93298A3DBA28A922E10441F656AFD8AFE80E1D3028EF1A9BFA9F6169CF19D1B6F0FA1CB3AFE4CBF3A930C08C85D1A50B23B679CFD5222E809BB937C23D768620CB0A8EA2A75CB378F9576A3265A733EC360A63C7CD481DC0F151549B22E9C21FE8B383F2CCD2E37A6E9B71C7445A196F322A28C5E432F14B14982AA0632E627C5E778C7E5CDDC3BF83AA1C5B0959327C5B4E527C85CD5470369B184CC1D33D7BC3B59FC2C7516404A3165803FE658EADFC1A3547C961C124138ED157F2E5118D991BDA8C35C2A735CE212C603DF22E05D30FDAB2D7BB559F088DF8F92CF9394ABF4332DAEBA077C3B58D2B401E488CDB07863E27EF5E8798F5515059A9604995FACE2F9DA4C2F9ED84D9A532077B9E0F5FBBCD28D0B5B00ACE9596BE1DA968B67703A0D8E6FDDB5A0CEBE42E7FEC430D70F01D6408B84EDEFB54344CFCB3A6905621679C4C1E5947AD9CA3640B78261168BF02A5282DD6094A9BF94526745F749507822943B3998A0CD378345B52D36D5A4FBD89E14008FD204FA3A5EC84E10408C593E34FFBD3FC2CB8D21BE723AFE04735A202423C1025B584CC6CC81F069F7F0BAC3A1150F13BFFE06F89AE9AE2C1139B21F2A6BCF5EEA2BB820DA5BDA266BEAC3BA69A56607685B63FCD6D3AFFF4F4608B834E478286B8D08FB1D78C6C3744D67373B17948921EFBB0A8EE297288063E80FB6B1D32FD274AD1B1915DBB8CDC5624ED6229F7382E0DE3A67A63176147472340E11049E22DA22C3071F66FAC1BAE0E9A4DF79392E448F0E82AD3EAEEC587E06993AB6DA74E42552A3544026E517E6AE248851473D0A84DD2A84FB025C40FF7DCF74942F821FEFE3999D1B19A8EAA46B3DB2299EA02A444134B4A7247E037D9D4BBDB4DD96DE48B1608A745C6AF4AC41D649CF18458588D053D26AC29F6763EE887B0227A26084EBDD1BB34784FA460 +ss = 1C14CF303C1330C50786FE731325B1D31D7D11E39C1DC9EC58CB3C9B5D290A38 + +count = 9 +keypair_coins = D322D56D8EF067BA1F24C92492B9C56DF3A6EF54A304ADC1B69913766A1CE69705224FCA29659D6C7A880A5F20D5FE02DC4491F2F095DCF2DDECBF105014C5A8 +pk = 5A1278BF11B37FBAB1DB212359473012F3B545301DDC833C69A75AFE16744557B5E28BC0EE895DA16C2C5DD34FE6783949D555E580C1BE7994BB008DAF27A47F554932B87222E82EC670490CA5139FF49D5ED896218825056A8639B31D3AC8550356A408A01404C6AA9C2B7284E7C7C27036256B7902445DDE00630D81930F4CCC518B9EFD8AB24FC16A365B8068C90F7E09BBD23C2A6AB12792D245551A9894F704042501C8FC49EEAA0132701E29A3C97834530A7C61F1B8440822CD1BB6B11DCA2A5951B4DEB0B1268C2F5AA8CF76A6BD0BE3013A37CA1A903AC634405ECB3714BC54610BAA63BACF0A263D8CB018B03B0A286083998A7E8B2A573E570179712130A19F9EBC2337D43926F9C96460996CC03199D81A0E19259DA696FECCA7906931A787A5C264826099A3E03339295B587E7A4EFEC6A11AAAAB057AA8689473F1F211C6D85499C46746BB00BA687A17877E6650C678D13861337FAAA7045A16B8EB7173E7C08B6394B5F2B99EA3083BA175C55D350FD61B73AA790CA6F479FD4B01282B6BAEFA00A1946F6DFB855CE7BD50389D42856823301E01A228AC754CB65A0E323A0943B75741CB498CC499C8649B6BF87E991507194983AAD1B57994B7D79BBCF2EB3B5F8734CCF3CEA2662E95D486989144AEA22C94C363571AC7DCD81F577645CF19B313F849B422AFED963CDB701395020C2D18601A40A42429896AA9B0B1C10C4876928AEAC59862414E143722A0B94746ABD157343D15BB9FE500763B18C61B184407449B1B5BA8FB1554E4BB58AB99FAAAC9CDC3B698E64179B089B786204BF95EDA86474EE799440478348989C91C3462446724340CD2376C682907EDB58C85A4CE3EF46CC5D0CA345590AB14844B224735DC05E0E66EDE94258F395FE867AB9D8C1B0FA80743002A15DA197614295DC358F40758C9CC05E45BBC659B93ED611AA58845D94ACC7AA75DEBA56D4D83C640C252975BC3165254C92957B78C9583B370AD785F2C16CD5CB9913839939C7293E6B956E23CC5D14CB3AB2A2E94F179BB076355157920085236F60B84449D43AC89C2B46DAFA6B784438F3510BFC48357A5681043BA7428583BB5E912B08786562579DF58A41BDB82114344B3EA3574B997F8564248210D4E50AB2277100B9A5423178B1F138E9D427762253CFFC3CD095CB53A776F4FE015B5168B1A9759AC4ACC77F90C69B307192B7B866753872A69813B1BCAAB5CBB8126D8998E78D99F5A527992B89495A28E3FA83E75337CA2B896172AC244AB7E30761C8E3A00890046E5F599EEAB65BF1A4CDEB5791CC10ADE7197FB5BC754233F3B10C9BA2240ADFC61C05231C36A6CF71AA752AB3C95C3756EF9373B677105D11F86E68036348BDD181F27407E344BCD297CB02BC44F077976ED588D6A846C2F839BC9BC4872617BDC17A7BAA97AF9A9322FF015956678E8D622CFB1A11ED929F29BB1F094C17F49417C09C1C443369123CAF8701199C43BFF97034EFC6999424144C9395D9063BB153C0ED82B1C5659BFB23D4CD2C758A26B6C448525060F686BB14873CBF5046B3A3033C5C8081027BF5E3C51F6FB6A1D54A77C46B0EA4299A9DA4AB03B95F9D3601F553D46800F661E2C9A7E548CA42E385CC6A0678F9E9D268FFCE02C4B465A46773432109A75 +sk = B04C33B257B199352A85B55624F1A1A42B2AB72C4810B839B2BB2F51A502CD498AA258373EB3BD43E03973D129E4FCB61DF58986809EC4EA4333659F03DC0FAB236CD4E815D3F9524E90A28A3A0AF869735B362FED9837855429700CB815C43A6E650E54D6267A832DC0385696274E1E73A12B5960A8409A4B4564DE909B797771B4839782526FD69ABF516A73F9EB8130F41CD6103A6E67C6724186D1C709D3D90141B1BC1C028E28324DE4846BCC6837FC243C54DBA144C40FCC6223FD19B8F54C11BC0982FFD366530ABAD387946E1495A3C05D9CFBB62B28778905AB7D576610A74B3DAAC9767A051B153AF7C6BF0177A4074397BE410411CB33DDCB895091990DFB85AEE15E9F288D01EC5628034A4ADB01DA09283493BAFFD36D224B1EFE096289A2AFD427B82F8B04EA44319F4A16BB07BD21026F2EF550B919AD01CB3744B37103EB54E62400E03367001510776698E28B4FC367A77F1B4690CC2916E8CCF1FA55AA3495014724F1E66EF7CA8283D917B501C931274D9808A8103004176BB69783C094BBBBECD5B90EA14E7CDB9768498B22332283F6A079991988AC6A85BB591EF299BC57027B0CA9932A41C14C193467374F133BB8539C2D5164EF11B70B4A2CFCDACDF6841CD835C4F4E174BE3C26B55770ACF4137666A431D669FD5775A71749922C0B223ABE36284FC880C3AA2A41F45A4A299C647D6738585287F7A47B88EA1C6C088C6207646D99CEF5F56A2E02CD3EA85202C7725DFC99D04B2D52600F0F89366A3A83F8DC74E4A27FC58A622061A6332403AE8CBD0179149B841F5E0BA193EC237AC57A4CD5528C10545CB75E35A20C3CE63950C09A7B0810B84124F3A00C9EBB67BDA9B2AB42113E631123B4A85897160637A32EB856D55C2905F7C655D40C84E92E773056D2392D43E33C4F9256DBFC7AA0683802D04D218139F829AE362C1F48096FE47B09756C36873CADC5300CEA8094E6F8925C1B81ADE69FEE5420B7E94555286CDB596E08CAA81F758022B3A949059AE91AA9B78A825703CD53D1235800681DBC7657A777BC267637CA2954C09344110A05E2BB90A83F95990986FB559BB1282778933631701393B705A5C122EC3645C1B364367C83444D30FA438EB3A478A0BAE14270CD49556399085C566D9E6C467DCA66A3F36370693AD5F86A9932773AE5064E9BC73FF7979A5510C88198BEEA7EE2AA494EB046E4D70A3F9CA0F88B234F6918F7EB41DB97A327654836510276E0154E7A4DFA088B8ACC5F02F598D1494BFBD07C3132C5EF6C3B466606B3D93DA2E69C96744095435FCACC2D24C3016002B5C4B988877CCDB9233C490A8B121BA7821B529DE85E638168B0565D50F735D1CB54CBA91CFC1B9EFF882A643121E877C43B6147A2A8266196346859CE53340208253CA419276B884DBB3B7A30AC3DE983C75AD73995A0B62DE7563EC9A4A715BCDF376DFB6433DE691C54E660F4AAA4B184015026B6189415E66C90DD32C0B015AEE63B5D8B3CB9EA206E45AB4938BC86FC54C7598C6553C29AC34B2213B90AFD144C8B4629A560382778B28D666667CAAAD49633A8F985730318EB033374B5CBEBACC7F453CCD8E77C5A9ABC12DA1BC1733E5A1278BF11B37FBAB1DB212359473012F3B545301DDC833C69A75AFE16744557B5E28BC0EE895DA16C2C5DD34FE6783949D555E580C1BE7994BB008DAF27A47F554932B87222E82EC670490CA5139FF49D5ED896218825056A8639B31D3AC8550356A408A01404C6AA9C2B7284E7C7C27036256B7902445DDE00630D81930F4CCC518B9EFD8AB24FC16A365B8068C90F7E09BBD23C2A6AB12792D245551A9894F704042501C8FC49EEAA0132701E29A3C97834530A7C61F1B8440822CD1BB6B11DCA2A5951B4DEB0B1268C2F5AA8CF76A6BD0BE3013A37CA1A903AC634405ECB3714BC54610BAA63BACF0A263D8CB018B03B0A286083998A7E8B2A573E570179712130A19F9EBC2337D43926F9C96460996CC03199D81A0E19259DA696FECCA7906931A787A5C264826099A3E03339295B587E7A4EFEC6A11AAAAB057AA8689473F1F211C6D85499C46746BB00BA687A17877E6650C678D13861337FAAA7045A16B8EB7173E7C08B6394B5F2B99EA3083BA175C55D350FD61B73AA790CA6F479FD4B01282B6BAEFA00A1946F6DFB855CE7BD50389D42856823301E01A228AC754CB65A0E323A0943B75741CB498CC499C8649B6BF87E991507194983AAD1B57994B7D79BBCF2EB3B5F8734CCF3CEA2662E95D486989144AEA22C94C363571AC7DCD81F577645CF19B313F849B422AFED963CDB701395020C2D18601A40A42429896AA9B0B1C10C4876928AEAC59862414E143722A0B94746ABD157343D15BB9FE500763B18C61B184407449B1B5BA8FB1554E4BB58AB99FAAAC9CDC3B698E64179B089B786204BF95EDA86474EE799440478348989C91C3462446724340CD2376C682907EDB58C85A4CE3EF46CC5D0CA345590AB14844B224735DC05E0E66EDE94258F395FE867AB9D8C1B0FA80743002A15DA197614295DC358F40758C9CC05E45BBC659B93ED611AA58845D94ACC7AA75DEBA56D4D83C640C252975BC3165254C92957B78C9583B370AD785F2C16CD5CB9913839939C7293E6B956E23CC5D14CB3AB2A2E94F179BB076355157920085236F60B84449D43AC89C2B46DAFA6B784438F3510BFC48357A5681043BA7428583BB5E912B08786562579DF58A41BDB82114344B3EA3574B997F8564248210D4E50AB2277100B9A5423178B1F138E9D427762253CFFC3CD095CB53A776F4FE015B5168B1A9759AC4ACC77F90C69B307192B7B866753872A69813B1BCAAB5CBB8126D8998E78D99F5A527992B89495A28E3FA83E75337CA2B896172AC244AB7E30761C8E3A00890046E5F599EEAB65BF1A4CDEB5791CC10ADE7197FB5BC754233F3B10C9BA2240ADFC61C05231C36A6CF71AA752AB3C95C3756EF9373B677105D11F86E68036348BDD181F27407E344BCD297CB02BC44F077976ED588D6A846C2F839BC9BC4872617BDC17A7BAA97AF9A9322FF015956678E8D622CFB1A11ED929F29BB1F094C17F49417C09C1C443369123CAF8701199C43BFF97034EFC6999424144C9395D9063BB153C0ED82B1C5659BFB23D4CD2C758A26B6C448525060F686BB14873CBF5046B3A3033C5C8081027BF5E3C51F6FB6A1D54A77C46B0EA4299A9DA4AB03B95F9D3601F553D46800F661E2C9A7E548CA42E385CC6A0678F9E9D268FFCE02C4B465A46773432109A759CFECA12DFE978BF0B7AD7271487CF61B2B8F7C60F389F33FC18439A95BCBB6305224FCA29659D6C7A880A5F20D5FE02DC4491F2F095DCF2DDECBF105014C5A8 +encap_coins = 1E712B1EF59C5594B414D7C1156B8E4FF3C3D24C92AC92C734F4AD03449A7E28 +ct = AF15327AA0C8E25D9F701283080B3C51B839AB8D2FB6A88E07510C8E2410D4870981238E72B3BB85975A2939B2DE89F8EF0801C67E45B7D8322E68171B1A25D81EF5FDB15EC48AA5C1F90108005876E0D02FC4EDE0B37878DEBA3DA122D97223329AC26F6A118ED6CF51F6A0FAD53A8A50CF1AA312557419E7B5739448B4DDA2FBA9414F525A4BB18CDFB418D514613534BC49093D7DB167A6F49407B775F4B90CC29B4042EC305AFCFDC824F6E394AC228B8D9FA56C3E75EC11C287074286A7E3F09FE2A47E8C6159FF13D6B6DD4BDF0C5DF58E2A22D5483800765D60580985DD0C0B4D0EB12E097FF5CF22FD66E5FBB2B2EE129020D6D43EB237ED3426F4469DD697BEBAADA84CD0F1DA63B5078174CBF8C60EF4F47C330F7146E49E82B6598D9FED00C85E616A21D85216E14239EBCAE1F2E8AC776825C58B45CEF71CD1DB9490A3049C294A6B1BFB4307CFE7A10D38918AFC5FA5941260043119F2DFE3AFBF54CDEF3C3097F11EF2A001DD87DE7E8AFFC69A5A0338C332899CEE8BABBD4C0BCAE20E16FCC2FB2389162147F443339E5D4C131788D737A3ABACB183782656639892E847728E9E40090C172D2A52645D8EA64E78F06B31E89C02E07E3ABE96CB402BC183A235AA85274B403C7615DEAB646D852123DE6BBF74AC3B549BCFB8551CA7777D5212216AF9FD07760E05234B00685522AC486E0194B0454DB6D3136F1A87E1BA2C346D78DFB66C946DA73CB28AC2D0D335F8B30DFAED385B7DFA58AF6012B31AE765251DC04DFF0408963705653AD99301A10B30BFDE41E4EB727563E469ED330584F451318D9A18C1DCEBCF92FB10A2B92F1EE349636137896A86490AFD92314FECB90B3205EAF973B68285C8BD7D91C0FA8D5BBF8FEF8E3DF9C9119519EC4C59D9AAC385166068F0157BCC7C224FDA8C69B0A714A297E7CB2702C23099E36F72BBA26A38DBCFF5F616F8D4CA39C2A0CF723BD24637268DDDECEBEBC51260FC0884AE6131A2EDB292674A2DE76B70E2A2B235F93067949C8BD1C304096EC39A794B196465F96FD07DC61A3BD634179FE27AE52663A85E73B2ADB64DE463EC776C1CEE6D07E0CCEFCB008187A3F55510A520638E8436986599D30A73A1558CF31AB2619295C75909C5C5F1A9A31343C481D3D6F43209824D18FBC834E3ACE191A6B605A6D7BBB3C14071F8604B5F4E26044ED51DFA235F881CA742EB2C2E3EB45F12772C643600862A5281FDE42C61EB1C211BF694F1B2BFAF5EC9AF8BDB9881703CCF6D5BE1229124A4A49143D89EC579AB5D554CACFC22BA9AD903C8D83DCDA1291AAFD77F92D1FFCCFA3F08FC8E3E692A64F58BEE94F9AA6A65E3FFA4A1382C7EBFD103F1F3FC727AD3DA44B9B0C7EE68A23778885FD1EA20CB9CA4150402064D74E0E6D102E5CCAFAAC7F02CDD4DBA342F379F90BF5866D9BB67A2B94A153129D19A1FFBD27D36114420A7D0CB210AA9A34182141DFF5387CAF55B2F47D615AF558A582E383E1EED8FEDF7ACF6501671A12958F1E74C856E10 +ss = FF77E8FE0458DFD2C82F6DAB5DBA05944C7D88A02FCAE8448D9044D12279D429 + +count = 10 +keypair_coins = 2F1D8A3BEBB34540324B9485FDF3D5BE3B858F544ABC3FC641B5728CAFAB03BA6931E7324D5527DCD0EA7E2E6C2A82D4A80C3EDFB38752B36581F3035ED9A23E +pk = C4A90087866B29244C3641310E94B8311A1303465975649288713E79CA67A9085C8F7449C0BB9A6AB196245B0DA028CC1765A8BA0501D5E360CB3064E11554F3FC2914F1260509073B67B4A0570D7F708CA7C435EA987762F2A5A23CAE53907FC9DB26942136D72202D0A0BB10B65D422091ABAA1C21D152DAD59C25D20C016237634741DEF8CA26B9CCE3097FFD896F1BF08300282FCB7000C7E1956673223902AE5B43BC63B6806C469A4EBB8BD34B057B375E725B07EE856FCC0453379B96F89888D21A7BD5EC91F837B90A2C334A97AD70D87BDCC12892D588D06655F6103E033547CF5933EC237B21B2956E5921CF10A0C55A70E4A24A57B93F6FCAAB2A44BB079987EBA57223B4B9DEB60EC6464FAA4058283B8CBA6956C792AE8FF9184E93C2E2152823C15412C102518462C2691DB1C64412EB1EC6D75D47C82FC5A9214670B3297067E30C6D9CE0CF3EB314CC1A4CF35342AE419513EC2BD47182C4EA52626A56F7831DBDC5719F532A5A421A7BD5A115C2195D0532E7C1C0FFE40166404137A5B45D7B2CD31752E1646588021508293FB881123F61034318700EEAC429500905179B283162ED0B69590541EBA0848DECC94BD18C888170A4C030A89305FE97A2B0292390A3B1FD6AA22909CF0134A2754728B6FB5180276B7D65C2FD530B4FF48CC7C7093DFC2B418B97762C42BB0980C7F41D9651C69387173A6718038010F50B79B233187BC3A0F7C770E50ABC62E8ACBE297C58C58055387BC7711473D81CA97B6A6E6504870C0DE1D806E3603ED0B04D01DC62529434014C5068C3AB3D4A909A079947127A8A2746CC8126F0212E21A0318EF273D5E0BE16253848413C5CEA22853C6E63B675CFAC1D6590004A2BB3BB4974E79ACA0DD927607A71D4B4C9980A86E5A2B5A84BCD2E694190491060411B332AA7E7766A4C693B00EB9D68F34E5B0564DE24377D3A6D45F72D82EC24FB268537C07B81AA79B5B28EF5A657E0F8B6B2F3A4279ABCF06CA2A79401312943D1D1086D91B1AD3030D0C0BB21806CB87B56ED391E6BC6AAD974034664B4902336D6E45A7449CB656207D59367F2B142746636E44726F111603B28670F47113D28CE6BB11F464B181CB3205FEBC13CC70D3FB35924A641A1117DF5CB65FD9A69C71BB800FC22A6BC47E52756C23533A3A494733B74D9689D64A849D048A2FFAA62B24BA53CC76CE8489D7515834AD3A2EA920E4F2275F4F7BB361866647C04C573BF47E6B54CD31810C7814AB5CD27DA1905FC5976286B781787D2DB606C036A2616AF7946935713CE2C7AC3FC4972ABAA2229C4C294E7A70F97BB6D119BE54553EEBAB1C80C8DA7459258E44A234357A1C9CC46412794116123D21DB27455063672245460EBC8B6B1116B34F2401169ACE16A514534154E798AE3155809B651CA963F854BA501407920765A14F826DCFA4BC4F21766B05BCEAC55E6854F1AD080D9B2538848A8DC7857F10C4C843C46B172ADECE3707E01C03059313BB96BB144996B127A16006DB4063CA1251F550836E167ADEA545B3A0C55C0AC5DE3FCAB6E8242C2C5C09313646117A95EF46536DC74D869301335A2F9040484FB0C9CB85A3D034D55B03C66725D000C47537E0D5AE249EB884B67DADB110119F1D0A5EA38CDF9F2E0E27C75A43A +sk = A5019E7B82405CAC3C8F45BEC4E70E20590BD7E543D465BA702CB1447C0F114CC44F404A31B091C638347CF5A464106A2F92A0B4E600A3D86AB9F57EFFF088D1887865C695C3AA29BA08356DA1B4042146E8817F2BD56BC014071B896D5B2CBA9FA124CBA45E294A0F30FA01E4EB18262059CC987C64F9185AAA12D7EA1F2780308A91A3B2F171D9C41D166872BC7B070D44AF8556A356B631A6EB2E804CC09C531EECA476ADC8143EEBA767298BF29C19FB2496E0C573938BABCD749EE2D02E9817A3EE5A687F9324E7E1082892142C04AE9715C4A6980D73C6A54C16BEEA97A659DA476E49C1DD1B8292E04321783E0A66A36267673E92C2C7463668B1742987405C1621F94B87CE88AEBAEB7BFD787116B30A5B64A7E8956321463B351A9753A0389937B7AED431A5028D309CBED2D8AE67F859CE371CD1B3CB11A8A70D3B9B92E15530A260D1874118EC505FD451897712AE4104E67B1D2BB2676589AA4E8833E03B017AEB2666464C87BA809F2BA29106B49647666FC58C712B5B8127882DF3723E74A9B9E4B0E5A96BB325144111C75E96A13B5566E8258E36D34A76096F9B013236B3036BDA5E3D431AAD3CA33E9A0916D8CEDCD3466C75C1B5603A3E724C60A796E0844CC0D79686F086C510CA0CB11C2E936ECABA446560AAF0931C6A82298BDC7FA82AA6A0B32D361B3335CB83DDA38417720E9E745BB9CA008908CF6931AB2B4A7B78036704153359DC4FDB5742AB3C39A346005374CF3107B95CB771FF1C9592D59C810A93E3593169AB26DE85077DD79A3B3AA03C332A9D177D7EF88624C285A90099D1D0209A0BB0C425CE6AE9221613B2CD596AA77BA2BB98A385D2898D504D68117ED06233E69C43B541438B3274B579C1A5C27B0D85159836AA48907F768C97B6B2B19F475655022691182B2D9C80AEC12ECA0890C9E47BF764684FF1A94D1083D85905212431AFE09342004B44A090CD71357D2431C923B3CE08BC836B3EDB82AB2FA3C508867EAE87BF2768AD61D4894B123B6F861DB52B9B3EB77A8C99839E9108704C907E258F8D8001567078037AA1AB87B03A46AD3A0A30C753B8BD790923B7454F84C67AB6BBBCC105EDC36AB6AB67C28C1D3A54BD06F9C09C12CAC8483E015301DB6650CA3228ABB8353D2B3D95FA5D99E96BCAB65B37DC8A1E958F7395391BCBB4A944AA955BC2176AA6600A0D40489D0534423776184C85057AE00E9636BFBFA76C2D329625747968F53D1EB26CF4F95D6CCA45C60B2DA0F1899A7A1FC651C12BC2C3A2CA16D8ABA4E05C0CBCBB2B72C48EF55403462AB49CF6576D8C358A865DE1F795CC0629F4B13837B6B1704250B8E97F7A116FB63A0DBC12C955B49A67094CFEEB0E8C7B23ABE4BDABB787D3E45EAD108A96D3206A4977AA128866E596DFCA9D68996D82021A4380C0991561AE40A96BF490DD5538F0718098479A5763787939453A7A87A359643885BC5D6149EA048B5EF1ADC65C78E4A9C917160BDC625352596034B3558F98637B33061F769CBE341F9C764238318882CAA978996D1C321A92838D109C187011BF84D17FEFA0271EAC7D5EC90743130234E79089F5B9A6F0267813939B5A3B22321376FB1792D8BCC4A90087866B29244C3641310E94B8311A1303465975649288713E79CA67A9085C8F7449C0BB9A6AB196245B0DA028CC1765A8BA0501D5E360CB3064E11554F3FC2914F1260509073B67B4A0570D7F708CA7C435EA987762F2A5A23CAE53907FC9DB26942136D72202D0A0BB10B65D422091ABAA1C21D152DAD59C25D20C016237634741DEF8CA26B9CCE3097FFD896F1BF08300282FCB7000C7E1956673223902AE5B43BC63B6806C469A4EBB8BD34B057B375E725B07EE856FCC0453379B96F89888D21A7BD5EC91F837B90A2C334A97AD70D87BDCC12892D588D06655F6103E033547CF5933EC237B21B2956E5921CF10A0C55A70E4A24A57B93F6FCAAB2A44BB079987EBA57223B4B9DEB60EC6464FAA4058283B8CBA6956C792AE8FF9184E93C2E2152823C15412C102518462C2691DB1C64412EB1EC6D75D47C82FC5A9214670B3297067E30C6D9CE0CF3EB314CC1A4CF35342AE419513EC2BD47182C4EA52626A56F7831DBDC5719F532A5A421A7BD5A115C2195D0532E7C1C0FFE40166404137A5B45D7B2CD31752E1646588021508293FB881123F61034318700EEAC429500905179B283162ED0B69590541EBA0848DECC94BD18C888170A4C030A89305FE97A2B0292390A3B1FD6AA22909CF0134A2754728B6FB5180276B7D65C2FD530B4FF48CC7C7093DFC2B418B97762C42BB0980C7F41D9651C69387173A6718038010F50B79B233187BC3A0F7C770E50ABC62E8ACBE297C58C58055387BC7711473D81CA97B6A6E6504870C0DE1D806E3603ED0B04D01DC62529434014C5068C3AB3D4A909A079947127A8A2746CC8126F0212E21A0318EF273D5E0BE16253848413C5CEA22853C6E63B675CFAC1D6590004A2BB3BB4974E79ACA0DD927607A71D4B4C9980A86E5A2B5A84BCD2E694190491060411B332AA7E7766A4C693B00EB9D68F34E5B0564DE24377D3A6D45F72D82EC24FB268537C07B81AA79B5B28EF5A657E0F8B6B2F3A4279ABCF06CA2A79401312943D1D1086D91B1AD3030D0C0BB21806CB87B56ED391E6BC6AAD974034664B4902336D6E45A7449CB656207D59367F2B142746636E44726F111603B28670F47113D28CE6BB11F464B181CB3205FEBC13CC70D3FB35924A641A1117DF5CB65FD9A69C71BB800FC22A6BC47E52756C23533A3A494733B74D9689D64A849D048A2FFAA62B24BA53CC76CE8489D7515834AD3A2EA920E4F2275F4F7BB361866647C04C573BF47E6B54CD31810C7814AB5CD27DA1905FC5976286B781787D2DB606C036A2616AF7946935713CE2C7AC3FC4972ABAA2229C4C294E7A70F97BB6D119BE54553EEBAB1C80C8DA7459258E44A234357A1C9CC46412794116123D21DB27455063672245460EBC8B6B1116B34F2401169ACE16A514534154E798AE3155809B651CA963F854BA501407920765A14F826DCFA4BC4F21766B05BCEAC55E6854F1AD080D9B2538848A8DC7857F10C4C843C46B172ADECE3707E01C03059313BB96BB144996B127A16006DB4063CA1251F550836E167ADEA545B3A0C55C0AC5DE3FCAB6E8242C2C5C09313646117A95EF46536DC74D869301335A2F9040484FB0C9CB85A3D034D55B03C66725D000C47537E0D5AE249EB884B67DADB110119F1D0A5EA38CDF9F2E0E27C75A43A9AA64A30BED5AA8300772066EF577F79BF4813E3315A15F2C28B2665E4DC7E2F6931E7324D5527DCD0EA7E2E6C2A82D4A80C3EDFB38752B36581F3035ED9A23E +encap_coins = BCD1828F520DF6A11B417BC8EC4367B6F7CCC47A4F69AADC445DC83F15482ABE +ct = F43DE76B96736EA271BFE716171725D7DE80B4373CE197990F415B7586CA388662FA1F1E0789B2BEDC2F45F229E63B84CCD3048680D9FA91F0B6839DEE4A921B787B816CD99C15294DF18A3062450C691E0489EE5B839E8D20EB6FD8407A1DFDCA5F20A7796308A0C6053498509F3EE159D9F06A79774948820B6AA2F606A432D009F224870C31EF9E1AD3D799E44922BDBBF47487EF133ACA108FED996B8E89CADD1B1424C0DF1FBC87BEA65B533C27792BCB3A2CFEBBABD67112DD390C74FA7F83F5257D5ED2D706EEA5ACD29012C38B21F804A36BF7AAC11A47E860908D616710199F6B9868444438AF806EFB1FD2789D1767E98505BF9347CDD873A1EFAFA511DCB1AD6CF2AD362BFB8EC436FAF2E5798B05E4C0D8E3A9F16B0F262EBF97C195F2AAF66B6DF402767EBD285A3697E527F0940832362BCBE9AAFF7A581D2E2EA54F9CE7F30699FF759B4AA0CEE0E271C8999B3AE43F025398DAEF0E3E1D567E1724C12F99837EB9781569FEE0551CB8E52F2EA5625B180050415C7A1988FEA2FFB1B719DAAA7FAD13E6ADA58158546FCB4D9E61049459F0E4D1E5422E9C4E35BA36B129B94B34677CE9AC90042EEDDAEB3541C8F398EBA0C414D4FFB421D93054055AD1AC34E24C56F8360271F6ADBFFBBBC7138ADF6A2CD9FACE73A0B64783B6753764CC0CF5A71F878A98F18F9005450501A700F64C43485B913FF1677CE062030F582E3136E20D7C27675165110A579AD05E99FF3FD3EB20588277FD98044FB21B71D46553C05A3FC70A3CB6AF08C23BB5C4CF417EE9D935A11FF5BA6316ADBB29FBFA3C66A9D1ABD4D2F09AF3109BDE003FBE7076652C0A6873F2403BC0B00069B361A0ABDE88EC152BB5540A2B2CE05D60FC5BEAECE7AE10C89E5EE67CA80CC768E2EB4991D3273B601128EA42395CAEC0563497E856EB5CF55C1A67FE75ECD65CD9C4D91D5D0F6506C3497B0C2F109EDBF870D321F26BA54ACA52E6C43B6C8BF1FD9FC3635051B4E4FA4EF732B9BB4CB081CDD7E934B15364A6EEEDC4C517BA24CDF2C8FFFB7F24F31FA0BF8207EAD329EA61962453D63ACC3BB3C808026B9FED77DB5CBF533C894ED50D1F553EFE0C12BAC842476452FBD7E5A326580772AFB890958AF4E7B31DA2723E42C3674D75EB37868AD2B09156C3D8DD88274E05B2ECBDA432F373AEAB7D53993C648812B28E9EEF8758033BB322E1DF6439D74472A8C89CF75745627575123652E6CF04A57889AE8B3DB77648186B4D13CDDE921CDB7046BD0CE124BEB9FB36ACAAAD9F445101993AC863B116837FE5F057D823EE1295DA9B361A397D7208B466B6490F6E045BF00E5125142BAB1539C0FADB62FF15AB7321684C0287661C61134ABBF78CA252073DC3ABDED707B59A6CB97AB2A2BFDE69DF8BA5A2FC71ABB70D33222C7AA788344F51C0461896A421908A647AA4B6725BE54AF7C2ABC27A79C73627C16AB59B6DB45BD6184F91B4077F51498CA53CCBDF489982F9C20FBF47E8A43DBB5B17F2DC3C4E5DA582B0C37124 +ss = 53A2C4D5E96348634D8E0B8165355EC7DFF157E93C4A4CBB6EBB0A89E5A1C5F9 + +count = 11 +keypair_coins = 31BEDA3462627F601CBC56F3DDF4424E1529C04737EF0EF2AF6D7401F653B8A13390C2FAA8E2BBDAC1EDF5A5B6803BFD3C58DCB1ACE60333D03CDE2C71737F55 +pk = E9718A491B3262D206BE72A9CEB000E81B6BE6668D14A124BB49BE524ABB09B91942A60ED38B1974E36376A7724DDC7E5A993EA9C25F40B80C766CC57E807BD5932603403458B84703CA58F8E57C451227128654DF4537FCE6A57BD1BD6FD8C5BE1135B2C82CBFA4B96D577575406F92538034D22D6198A9CD000FC8DC8988F95608C1974C4359ADA14F7DD4870C63BF79886AB2D4CAD1C89A8FE232FC1C8C515B7D2AA9CC35759EF583244EA767916478F8415FDF7B1CF85A80F4D6960298B977A7ABF380709EF904C1706EE3F51ABF415028321E4FC79FB2E15454C47B3572BC09C62C0DC466EFAA759F116E8BA4717F91220F125656BA7C52338AB1FACB0FA6A75CE61F3135911D5714FCDA7A5A271205547018CC0607C5AA7104A4A77266C0525579F054ECC6C62522068E79352AE7A1C3265413459939764A4421CAA937C8F9B2B276A2C77CE7814FE9034783B8AEC29881E2563A63780CBABBCBE72501D68F1B72C6EF3C5D84A4BD7CF4A84686682FE36A151BCB3BB76CE5FA67AE545C9621BED149BE06AA2E72F72D1B24B086836B525915B93A49D90CB3C45877C54204A605CC27F1828DE6CA1E95056938A6C9651EB3B4A9B09C5AA9FC4401215D9EA9015A996F9A7B898CEA466CA14F0065A5B1F374D422B4A277A011F3B3E8143B053507BEE829E582528DCB3C9E950F39D17AD0A849C701779D070E34CC606C84A596650B7776A468659344446BC19186B43CBF042516A7B133065393C83B85313C53B71A5BC4421A91694BEEB39760806D3B910AA8EA546F53763B656C99EA50A179986DC3786A554B819317FB58564DD69428BB1D7BC45A642A8AB9CC013F932A67222D1FD42B455930B8147D6175C66330217246C400C4B619B922182101B2D8165F93BEE58757C14CBFC958552137B904009FCF845321841F8648B8F9E58D1572119B11CBCD59480246A46E255ADCC1649817A052736ED9C18A262C36F7C37918DB789AB177ED39ADD0850A509319888073B54BC3ED81000C780FC87AC5C302235A959B1164B491001B92811D4AA76876065E841B276A27B868822FD1DA7C3FD1831D88C9F5D891FF610CAF264FBC9280B8D4085251774EE20C23576ACE6215B3EB8C1610CA2405115E89421418A7610C05BB526FFA39918E9558C6CB2618A612B6D38BF8A2569B4C3AE902A4AC744ED4BCA8ED783C4EBA450470AEF5EC5370B87DAA419145298170D64CAAFC2EDA7C989645B9285A3FBD16C16E0C1E3FE085A6BC05248426EF106E7F6012E80882682660CD05CE49520785EA66325078F9A91E5FFC3BA0833DE333326FECBCD8878F286064CD1B672F210133E30D106C61AF9A75A7FC64FB5B1E1A1649FAB356C0F26B9062C5DCEAA7CEE502C750A93187A21C11B1B7FCAA45F8B857D38E18287B1E878C7EE59E07966F3619BEE70253D77065C02926BFD9B031260B5AF95846573AD09C42573C8338609FD3E5C0B50092B17A83128A4A9F1A6A232252884504846B3B7DF82981DBB036F6A57C5C19136789AF9690A978145EA6ADB74132EC55840965083F388877A93FC01B006FE4CDE4012A1814B327A12CCA8991CD18027F4485B4025B5583747FBB37916585261ABFEA163B617347ACAF453AE235166CDD8AFBFFDAAAB9919F0CFFDC75D8796FCC28 +sk = 7EC737EBF52EB7905DA8B3C58508928DD74462E8968A1265BB3B9780649210C8202E2950AC11863BD78AF3123AE9899CEFF1992608CF5BD1B4EB0AC1C13CCAAB4CA89A869424BC1AF777CFC7D90A071273F5AA5DF310493FAB17CE5B6477C773D8CC81D995509FF3A40CE80E734A9E8968B7FBE79A9900AB85F7B442077A890688DCBA0BD5E64AE491CE5D39B554E6B82B7602A149A686C19FCEE21B8E3B1792E7529F2307505C77ED84A63A68258E832BF0F118BC05C91A6B216EBCC051B90143B9748B365EC841B6098C4EECE8AA8231BC24B03E732A0EC55AA5B0E3231EFB7C7F0AB21E2544072C22B6B4075049B63FBA05C68A936989BAA2E55AD1846FD1E335568B01D4ACC869E710357708BDC25DB545447E41727224545CA8C16BCA5458EB24D746A12E170EF191CC8DD840E26910CD9484B4E40D0C7446959A521618B9BC472C8001AD0D1C8428C43C0FB3230FA9B17694284375A0E1563FDAEAB6CAD367C9949C4723802D6931F0C212B03004675652B958518D31C8D4B06DFD99820702319E668DFFB5C88622170B0C0EABA56EE7B77EF5D7600B9C0BBBEA5B99E05A9443BB81A68C22C7904A1755D4C80A47AC148ED13C3981C6BF4122A7880FDD597429A32D6046981146743AE85CC8C0CCB715937F29C933D63AB475C2C5483CE07ACC5B8BB4C7456398A9236D02BED9B951F6D43A67EA06F7FB803ACC33E9552E7150C34003A2E2E11BFC0BADFC537EB2B69122352FFB62B285B6CB0935ADFA0385DDA074F7A63ADB76BCF4A80AA83A1C32F87BE3A786537ACAA32178B136C8BF817AC1CB1E25B44654266F4B2B14F33358B9B75A2D916D78E89D3CEC68B782734FE052449598D847B2A02C3056A64E72C5A3B34685E9FB2C0037736E0A21DF39A356310777A36FCE908C243A4A50216B6199CD63C7BDB18B95FBE4615E9799757176FA4A88C93459BC3030E09889EDE148890CC221362472586E3C026B0DC10BA5A823F07ACC1C693E9BF31518B90359B7AAEC54473552835B3590174109337B6171EAC38DE29BDEF8095DA13A8F7014B3F531FC152CA5EB19859673D52067E28C7513141245376BAF368B07627FB1B844FC033361994FFB3B39822A2A2DE17597D16601329866F42C3697A6F5132DCEA2140B871480E50523C3C5227537A5089FB6742CBFCA55BA9C307A321ABE440241E34151B2C2AAB6AD55817B115330C0B15891FA35BF344BE7D93AD44BB27962101982902427242F5B06F85204E738AEC7A333A15001252004B21B5E6FA95A41A4456F74C9522657A9A40F8C4A162F4951CD5BB8A4F334F45A3A73266E1C386CAED53AB52B9A4DFA173B96869FBA6C72987F4B328A0E56A08C96A00D78854D6762EA2394C2A102162143CD40192749CFBC5031739711F1EA8C37DB5B635BCFE9B6396E2902D56BB135EB8975E1B0A171258D39A7AE84AABD46BAF4DC2A6FF18FB6002CE232B7A45A532DD54D3DA8C580D6CEA4209098930477D207622A7CDEDC2E72C24EAF5787D4B2B461889D23AB93A4BA327C371EFF58CFF7F65738886ABD046895834AA06A6CB57973F1011353FCC1452B015A324C406515E9290AFF4356FB393B57F4066077B2152819B6A69DE9718A491B3262D206BE72A9CEB000E81B6BE6668D14A124BB49BE524ABB09B91942A60ED38B1974E36376A7724DDC7E5A993EA9C25F40B80C766CC57E807BD5932603403458B84703CA58F8E57C451227128654DF4537FCE6A57BD1BD6FD8C5BE1135B2C82CBFA4B96D577575406F92538034D22D6198A9CD000FC8DC8988F95608C1974C4359ADA14F7DD4870C63BF79886AB2D4CAD1C89A8FE232FC1C8C515B7D2AA9CC35759EF583244EA767916478F8415FDF7B1CF85A80F4D6960298B977A7ABF380709EF904C1706EE3F51ABF415028321E4FC79FB2E15454C47B3572BC09C62C0DC466EFAA759F116E8BA4717F91220F125656BA7C52338AB1FACB0FA6A75CE61F3135911D5714FCDA7A5A271205547018CC0607C5AA7104A4A77266C0525579F054ECC6C62522068E79352AE7A1C3265413459939764A4421CAA937C8F9B2B276A2C77CE7814FE9034783B8AEC29881E2563A63780CBABBCBE72501D68F1B72C6EF3C5D84A4BD7CF4A84686682FE36A151BCB3BB76CE5FA67AE545C9621BED149BE06AA2E72F72D1B24B086836B525915B93A49D90CB3C45877C54204A605CC27F1828DE6CA1E95056938A6C9651EB3B4A9B09C5AA9FC4401215D9EA9015A996F9A7B898CEA466CA14F0065A5B1F374D422B4A277A011F3B3E8143B053507BEE829E582528DCB3C9E950F39D17AD0A849C701779D070E34CC606C84A596650B7776A468659344446BC19186B43CBF042516A7B133065393C83B85313C53B71A5BC4421A91694BEEB39760806D3B910AA8EA546F53763B656C99EA50A179986DC3786A554B819317FB58564DD69428BB1D7BC45A642A8AB9CC013F932A67222D1FD42B455930B8147D6175C66330217246C400C4B619B922182101B2D8165F93BEE58757C14CBFC958552137B904009FCF845321841F8648B8F9E58D1572119B11CBCD59480246A46E255ADCC1649817A052736ED9C18A262C36F7C37918DB789AB177ED39ADD0850A509319888073B54BC3ED81000C780FC87AC5C302235A959B1164B491001B92811D4AA76876065E841B276A27B868822FD1DA7C3FD1831D88C9F5D891FF610CAF264FBC9280B8D4085251774EE20C23576ACE6215B3EB8C1610CA2405115E89421418A7610C05BB526FFA39918E9558C6CB2618A612B6D38BF8A2569B4C3AE902A4AC744ED4BCA8ED783C4EBA450470AEF5EC5370B87DAA419145298170D64CAAFC2EDA7C989645B9285A3FBD16C16E0C1E3FE085A6BC05248426EF106E7F6012E80882682660CD05CE49520785EA66325078F9A91E5FFC3BA0833DE333326FECBCD8878F286064CD1B672F210133E30D106C61AF9A75A7FC64FB5B1E1A1649FAB356C0F26B9062C5DCEAA7CEE502C750A93187A21C11B1B7FCAA45F8B857D38E18287B1E878C7EE59E07966F3619BEE70253D77065C02926BFD9B031260B5AF95846573AD09C42573C8338609FD3E5C0B50092B17A83128A4A9F1A6A232252884504846B3B7DF82981DBB036F6A57C5C19136789AF9690A978145EA6ADB74132EC55840965083F388877A93FC01B006FE4CDE4012A1814B327A12CCA8991CD18027F4485B4025B5583747FBB37916585261ABFEA163B617347ACAF453AE235166CDD8AFBFFDAAAB9919F0CFFDC75D8796FCC28241E5C7B836862D7482D507973AE3FD8DAE96EEC4ECEBCEDB68FBDA75E04B4013390C2FAA8E2BBDAC1EDF5A5B6803BFD3C58DCB1ACE60333D03CDE2C71737F55 +encap_coins = C5D2E4C39EF9B75E3691B929F1618699306802ADC2D04BB0219418F7BB0D2B19 +ct = 8C79C54583CE1958D0B3088EEFC52C49845ACA1D2632F870AF6A08DACA728900E55C9D94E93FD7A3BE53A717637AE10AFB1EE99C2ED1A539CD33603480398A0731D1D0A7A6596FB925711D5EC03AC1E14F4FB38647273B6FA9553D6975621BC754FB43168F7D41F250F924CF81FFF79D72816E02099520388DF8B02574C6A408787EC28536BC9D8599414967D3115F3AE2C02D7471924098B01D02FBEE27C40C137CD99013AA981102CF026032B5B65C257B422FEB678724FC7840CF8053BE8B67D69E0C374017FA56CC8D63FA60B2361D6CBC55BC2BF70B9292882CA64F8F79F21E9E05BCA16DA8040C8D8E74B326DE94ED968F177DD1E2B2FAC383268353F379BDED6E4DA7B00B8CFF78B7CFF30927DA63695CB5046624F31881AD11475AA5B9AA012B211307BFED343F7AD9AF306B571F0B54B19288CE2535F5E5EFCEC30DFF2C7940579A0C96C7F46863CFB9ED0191697705AD9A223C63282C95D13522C0A1899E8353E73960C67CE78EF6C0F1D78BE8300A2D0A7634ED40B51DF8A6351B0C5061C98BBBF8ADFC78E7980C2AC73DE555285C0EEC678F220020E3A17ED0C5D6915A016C40985627F25541AB754A2FE80E8592EA30DF4B719036A91CA8BF811E9C38F8EF713373993774A835A97BAA0CE43D8C16C9F50D6ABD64BAFA57BB5978372E88EF61CCF6F20B3AD6F02C263F4510CD7AE94239911E30AAF2592B192BD0158483C5B2E6A5476D1C4DCBF50B594CB821794012627710992B24302392356578BDCC6B282E6570ECE4684AEB4C637ADB1EA869ABDEA6B08B3F8CCC60386B8EC3AB7AFEA1FF98185455282DDD0653DD0897921FFF87A518ECFA0B800DFFC598EB091410E658361F1D7134B88D08667BEC52D211ED914CAD7BEF3448B80AD62B4CF7D31635EB71E83AEAAB16C17195EFC966E911191BCACA4E64D7586DE2E37A1982CEB3B63E45D7F6D10B7300710652C671E40E558F002170DFE9C5E8532EA801760B9B17B5B82DF714FCBFAB3CA931428F269CCE7BB952DD03B2CDE0AABADCF5E0C2770435A3694EB05079F37BFA59B74C357386112764BCCC62CE3D254BB713A7E6D294DF36DF43091B7955F6E5C620BB342F1DB33707C74F52B0E859F0108CA38A86BF2779487D6185D43D31F3F70AE1B8E1232830799324BED499E64129FC776605B3EAFF91B870A392690B9047C72D64B67119EC4597821A26EAAB5B499046F4703AE53F01210AF8797A55E380B326A5C1B344C71E9E0E646B7A2C2D3243244FCAA39549B2DB519BFE0BFF9A512AFC5F188BD7E9DE766598FB11E13AADC53138E0A832D75C76F40D7322E50D7D7FCC1825928790F10BD8F1CB910E0B1B937D865B3E92757EBF0200EFCD9F84587C38DF11F3F6AB61612AE5CE913CE84888BFB0DCEB5907D8FB9DBE6340FF9B5CE625E62F0AC14F679BE865BCB51C359039F9504BDE03F796A5DC8009095591B7B28EC28D2CBBB374BF2D8BF35ECE18511DDA1366FEDF49C57DAB52732B2D629898E637624BC1A587077C4F346E5171 +ss = B3668D62A092EDAD32A4D1D4A8D919A27197F88FAB79F33AA325D2EF20C73C90 + +count = 12 +keypair_coins = CBDFF028766D558AF4466EF14043A1A9CF765F7748C63CC09DCEB59AB39A4E4D605F30457945F8B1560010C71B40717FEE3264A27EBAE2AC8ABC16267FB0F3AE +pk = 14345D52853184AAAB60195152259D9B643D864C4EC5FC4978C657C3365EA81212EB91339AAA4BFA87A197A04D46A7B666837F55DB6F16C095DB449E9BAA879AE14016EA4F8BA975DA26CFCF59401237ACCB908EFD17146E9439B1473BAFA07703F2932D5C598276B59B419402D681D87111F70C20D2710E10A407634AB216907D7363AF0BC4647DBA208F9C6744D71A8A1C1A99082A3BD8A843E4CE581412F04877EDB1709D1A9623C3C428EB111A1189073C9A3D34AD16AA1F1551A07E6880147360E60888DDD5B0956036951021AF4699C96382CC0C16B3F0B960135391C6692B0C556A5B9AD2F8A5ED0CB0BAEA2406868AC6F7A5A44B722721535E098FE832C9AF148AE027604C47CE4D3214A1BC974675289AC7BFB9A644DB30235A664417C57A8A46A86E18A10F81B87F4B4727F7234017088F447F28680B0600AD1DD672F0EA19E38A39FCF964CCCC64528C97FA474EF3AA6777676B3DB443D0A2042C744555049C48B2BC2577738A698BC58910F55B0EDE555B171838F6086CA365AED981AA5354561411990707BD3305CF4D10161FD3124156691DAA5CF3795653E2AEE1C4BA021B0EDD0809B14905E46C2CD0BB1E165C8AA428B180EA394E6C92BD6873E12328E5E1916C94C81393172DF3815127B937B9646A783524671FBD8B5F01395178C6A9FF42C47D8B25FB37A2D1DA975F69C7A8286504FAAA6AD5B05307C2D20B4F27640FE59B1EF407110A317CD72023828192B131CB9AF96899A69B0F51125B2828F29493A997A33023661BB7811C4593E4E579F8B17D0CBB6037D9273932AF4EB235F7D01DD398B70752A925968ADBF56CF132B85680ABFFB937C35425C244345E805BDB608CB0666984775AC1852690908CF2A60214F6A888004AA41A44831537E55A5DFAE7B2A4448FE6C562EA66764DFB5FA508B6738C4F52F10D4A852D38F5354981CDFB7A851A675C5A01C2FBE886192582D1F08AB37753BBD81BA6D848949731C99BA92278A2833CC11AC3BF603512BD6557F9684EB980C7588424DB0C1E2BB2BD09196A7DA29D79208DA50C4A0C839284A44D8861706E991EDD099E0B1467B88948C89778787C26DD4436FBC4BFD12B0ACC00AB4D85B613BBA4F928BBFCB04E2EAA51B81845C3A710BBC8458027A4F055061D0B39AD28482646AEBC5458D0E70D396C99A0B456837376110488F49A83F48372327467AB87870D11B3C1E6C112AB3D6D486A99BC2B9B368A0695C6C6251D6BEA5B56FCB96FC23475719B8CC82806875CAD772E4716332FFB02189438E27097E565159E4B1790558273CA887FCA2A6E7226C53879ADBBC07AC1072E6AAFDD2A1DD89677842041F33C447204A3FB91C1E4935111AC739CDC9FD6F2BA8C0C66DFF5552F3B2BDFDB19D4F65CB3B23777292CF97CC54BFBC41ED041E53318386173D229B9288C5D68E87D0CE2032D481C46B646EF71940D97AF370732533260C6AC943272866BB2BC90EC64424C67B1C877F5D2B35C39656957BBE40C53ED88C4124764B726A5E24ABA7B0C866A52385C85C241677F75487D4156C85DB639AD741E0412438BDBCEB6092FA14501FE1C5E95D90833332DEBC0441554A8CB5A8F7826B047882B415B78A0C2E966AC7C67B03EF5106F0A751017B67CC52A3D0E1586C74513D2B5F13260 +sk = D62C6CE5E7594BE682A8167743106A44482E3A79CE257635773513F0B0BF77A161C8274A705B93D2EAA899D8C0126AC8ADB7B3BBB5891711380DA1A9DE0541E4160DCCABC13A165B5C54178DA95B919457C684B9CEF81E97637C73F22A3CE9295DE79BEDD83C3FF871087B9412301863E291B04779457807ABE4687368C84B3408E26AA30BF58BBE4BBDED32ADB03607598714464222524B3C2CD4C15F98A2E6695463257BB8FA9A84131A64D45A57B9A539094B5E957496B79008878396D3B9B2EC41CCA75B66FA6D069A51AF611D4BC03E20CB12A216072D7834D996AE99E1CC6522A42B48C54282CD0AE8CFDD1B874FBB4EC17434AD584AF5B4561BC1597AAB63390B60FE7C052E57846E1A8C4F6C6758798B70503507554946382FA6E2004A616A40DBC2B0C596C2CB2873C38E6FF82FF159BA93563D23671DFC433949D3705F398B3752680169657623937A8C357864C39D82C16DA5C1EE407FC7FAB357C0B114965E89815409964CCDC54CD8D5B17039AA9283A59E746A45A2800E4806064683C292B425C18F73AA2F720A6521A050C5196BDABC9B094895B9527759C1A7210958E11A3411B05E67097FCE2C11ED024A85A22684B51EDD652DED89C23E1440CA5616BB754361C549776222B8B297F8F4BB7F818D3B29B16C369CC8BA9D91E6012BF006999C7057AA2A44C30237314079B2A55C63990C3AB657CB80D41022651097ED680D200195BE82A9B9D08B24F039BFFC42C66459B0C8889DDA6714B63762494A5E6106F34223990772B1CC12DC660F5BE62EB0A15C16D4A0303773D768C7DDA7B749711F7C12720C150D30EC6B625624E3F94861483BE03271D8B05780AB62E0294A8CB193238530B49455718C872428BEA1D84955F54A3BB619DADC6106EA3EF27094A085634624377312648AC46559D7A7DD902497AA9F22879D131A08B9223A05E5B76A00807225B304480F6105CBEC8A11CEA18E8910A9BBA691047C95676C9E2DC7AB76537691DBBEE397738C613E1FB00A79F06698C10EC26C97DC00B82A54AF572A02801AAC20983311F42BCA18699A2684E4B5AED83C7AD89A1705F1605A87CABEFAC499A56058D8B02BD597743524A90C3686D9405E33C3D70880B6449D41A76F83E23759664F1F301D3935998D690A7167AFA11A59CF8B87624283A738C0D221B1B55453504AB64FB89824351A49EBBCC291465AF92F50D7B53874C1190A766DAC5E70706F88097BE4500942534DF5E5887C48B234C11992F32BF3F2867CC055D7D6C3A4D25D2A141BE7D706BC1203814667552888E3BB13221A10DC3A4157D811A7CA23088BA5AA1A3FD60C0C6AF29B3B52AA6DA319D8E359D842C6DC65C29ECCC0523115D15B19A7B90D1090C5949CC66A004F0A0513132640A284A87384C7ED06782607584BF5CDD8F099ACB0229CC9588B024B0F3B5BA80B962218B3BCE4C0F542BAC9E8C235362E33EA30D789094FE82FBF64569907755ED7BFD00C3F6F446DEB00A27B37BB92E454AAAACB69DC854532C718C85508AC8742C7180EA805A78999111915BD414275E92D75C1953C10968C802E4AA6429ECA0A5EF49FB4046ED2C93914400B0D882B67C275C483037E859C8C015114345D52853184AAAB60195152259D9B643D864C4EC5FC4978C657C3365EA81212EB91339AAA4BFA87A197A04D46A7B666837F55DB6F16C095DB449E9BAA879AE14016EA4F8BA975DA26CFCF59401237ACCB908EFD17146E9439B1473BAFA07703F2932D5C598276B59B419402D681D87111F70C20D2710E10A407634AB216907D7363AF0BC4647DBA208F9C6744D71A8A1C1A99082A3BD8A843E4CE581412F04877EDB1709D1A9623C3C428EB111A1189073C9A3D34AD16AA1F1551A07E6880147360E60888DDD5B0956036951021AF4699C96382CC0C16B3F0B960135391C6692B0C556A5B9AD2F8A5ED0CB0BAEA2406868AC6F7A5A44B722721535E098FE832C9AF148AE027604C47CE4D3214A1BC974675289AC7BFB9A644DB30235A664417C57A8A46A86E18A10F81B87F4B4727F7234017088F447F28680B0600AD1DD672F0EA19E38A39FCF964CCCC64528C97FA474EF3AA6777676B3DB443D0A2042C744555049C48B2BC2577738A698BC58910F55B0EDE555B171838F6086CA365AED981AA5354561411990707BD3305CF4D10161FD3124156691DAA5CF3795653E2AEE1C4BA021B0EDD0809B14905E46C2CD0BB1E165C8AA428B180EA394E6C92BD6873E12328E5E1916C94C81393172DF3815127B937B9646A783524671FBD8B5F01395178C6A9FF42C47D8B25FB37A2D1DA975F69C7A8286504FAAA6AD5B05307C2D20B4F27640FE59B1EF407110A317CD72023828192B131CB9AF96899A69B0F51125B2828F29493A997A33023661BB7811C4593E4E579F8B17D0CBB6037D9273932AF4EB235F7D01DD398B70752A925968ADBF56CF132B85680ABFFB937C35425C244345E805BDB608CB0666984775AC1852690908CF2A60214F6A888004AA41A44831537E55A5DFAE7B2A4448FE6C562EA66764DFB5FA508B6738C4F52F10D4A852D38F5354981CDFB7A851A675C5A01C2FBE886192582D1F08AB37753BBD81BA6D848949731C99BA92278A2833CC11AC3BF603512BD6557F9684EB980C7588424DB0C1E2BB2BD09196A7DA29D79208DA50C4A0C839284A44D8861706E991EDD099E0B1467B88948C89778787C26DD4436FBC4BFD12B0ACC00AB4D85B613BBA4F928BBFCB04E2EAA51B81845C3A710BBC8458027A4F055061D0B39AD28482646AEBC5458D0E70D396C99A0B456837376110488F49A83F48372327467AB87870D11B3C1E6C112AB3D6D486A99BC2B9B368A0695C6C6251D6BEA5B56FCB96FC23475719B8CC82806875CAD772E4716332FFB02189438E27097E565159E4B1790558273CA887FCA2A6E7226C53879ADBBC07AC1072E6AAFDD2A1DD89677842041F33C447204A3FB91C1E4935111AC739CDC9FD6F2BA8C0C66DFF5552F3B2BDFDB19D4F65CB3B23777292CF97CC54BFBC41ED041E53318386173D229B9288C5D68E87D0CE2032D481C46B646EF71940D97AF370732533260C6AC943272866BB2BC90EC64424C67B1C877F5D2B35C39656957BBE40C53ED88C4124764B726A5E24ABA7B0C866A52385C85C241677F75487D4156C85DB639AD741E0412438BDBCEB6092FA14501FE1C5E95D90833332DEBC0441554A8CB5A8F7826B047882B415B78A0C2E966AC7C67B03EF5106F0A751017B67CC52A3D0E1586C74513D2B5F132606AD1D739F1598A16C608A240CD13DFAF8263D74866315E2898A3431CF19E4685605F30457945F8B1560010C71B40717FEE3264A27EBAE2AC8ABC16267FB0F3AE +encap_coins = AA9D93A4F2747551DDB0453F9717E1789B64AC9C19BA3DA020261936FFAA9CA1 +ct = 9EBD1A7929A3BCE5F174DDCFEBFF750F6CEBFCC753D694C076FE5E54F53D46A90564079CF7561C26909A9A7C8653048ECA14E43CD681A65057F4950DF2FCD02DD5E72C4E593F81B450226CBAF287939C9E7BE8E33DDE78AB24F23194B375FF995308B3BAB8217A5F1717DDE813F4EAAE39F31CAB02C634DF9301773CEF9DE068D02F50D143B12E2BE58070310938EE611155EE73AC0B211479C6581BE4B0EF9FCF10B3DBB7337B9D801C1F2897DE46B28B876AD3553D5A9C5EF95C0DEF96308AE06C577211BA81E28AB4029FE4A7DE07EFFBFEEC9D7A1B8ABB88C41564B2FFDC532F49F38A50886204A12F36CB56A07F6AEF5D6008AB3FB9EF11C68189ABC1608612EC156EA99618FF857A0AA03FE5B7C3AED56F96CE751FB04F09604B4587D3CE237864553C854875EE3B1A0386F207991024802748E5335D09BCAD30B2F4F59A293867DEA121C28415ABDAB47D16DA05D0CE01711E48B376367954239E88AA4D533887BFCE4691695E5FC66543DB119EE02EB01AFCD0002D03CCCA574E25B7D4A567013A5BF4FE02CB9D7E6BB5A9EDB9CE24FA43A27C343AD10477A72E1A46461C672DAA7B16513D244E0B08B220F81C2085CEEB867D8ADDEF69C2C40D3DB714788B7668D7CEC55EB2C63E9401B8EE5AC96E51007592B8F3FC8133CE8262E587B330D2166FF9E1FF78A9039E965A6F0C96264CF7557FEE02309B1A0F9960F0EB068E5A9B3D6802E71B014EB52DCF13E6C2770765CDC51171F9352336DFE36397BF1CC21B5542EC7EAA03B079890C3F9EB0D1D0CE2BA64EAF4C333CBE7827CF4EE5D5FD271059D3BB6EF8ED40B994D1860167FC130B7FEC61AD04AB7B8F453ACB4C1E314F0E674F975E8DF807FC29800B48FA6C1E062C728EDE677D14677F34C17B52C7E4633FF754BE813E3F36455DDC603DA7E9D1C37FCD5AD14BA0EC200B2CB64D230BCEC41D0B036591E5F0EBB7096F8A9CDC1284EE6DC80B62DD7D30FBEA9D17F423E30D0AB96FA4F3207F8082033380E2671B4CA392108A47FB873CD5B100128C45D13882D576282CB06E592D752DFB7B255AFEF048CC61A36329806A41B6990751F5C9EF15A7081A89DA306F36D505E5175E275DBDC855F7E6E6E32785D0878784AAD7E1460E0C2E0630032D25AAEBE669B0C3267815FAD12D7CB534B8E0D0EBE166716FA3B99A0D9F8C487C016A2E44172FD0D65C188672888E7E407D0F89F06EBC92419FBA768A5C5659DF8516E1BEB3F70260728A7E7B6B6069D4FF27A3B0C7EB7F40EE146BF00A72DCB3130438983D4B4F1A0930B0931F304914F9D9CE7079427482E134BAED17BC1FC5EAEE511C3435EC35A91EAF9CB91A833404FA8EF0132E0BA39E351EE68E7C5869C3F440B2C628558E91F1F6A390E47CDA8D0C5544E63E88E09D19F7840D4F1EA17CF1E397AD9C93C373B242492687284C8064D76CA875584A3817B530ED6A04D95DC637229BA46584B3A569D8A517364AB72E3431C055DD76BEC1780DF33DC0358BAB730FAD98CAA98FC0381D0B75188F +ss = E2C19C840F2378FCDF9A8E71DE83815C4C41A9E579ADC6405F14CE91232E3F53 + +count = 13 +keypair_coins = 4C04310BEA66305C6CA8BA6B8F61CA96257A67663AFC11761F13FB5C7B324B6B0A8155459118346A84683DE346659727DA4B64A1050C5271E968BA9CFDF6029D +pk = 8BD98BE4597242C95C9641B194A093A928B8D3B30F33C10BA326943A8B704C09A6DFA55F700C488C38A3334716CCEB6585008A853162E40A544C0A16878328F47C4E67B5AAD276A2DEC4C320047E2EAB345CC14982B96D1D13566DA409E93072377A1729546117A04CE291A2090B60030A35D5B360F9F871CAD52F37E63954DA0E0A8675ABCC3717972F89469978730607293267CAC89E3C96A98576C2351D8756429722A1278A173A75114BAA4F0EEC6A12B09CAFDC99FEE2C1AF7ACDAE3C747B94B06517464F654ADAE25888A15CB4C5017076C9D3FAC3B1560DD9112D88B2BCF31B15AC420FE5A698D52AB41EF33FA6CA8D8CB9B94D58648F39A138974E8016A972308C7B040D2FA32BFD1096503A3A0E84B9941188A6720E06E6641B896D365190369766995826B72122D780477581BD69B348BB6C5C8F65B4D84AC3F0768EF6645E422B3ED7E38D0A423409C285D0E21BBCA97BE6707557BB0027E755F9A81912D04B9EBB374BD79411B2C283068670431F2DE58D346BB525D192F128C9316742115275E9214DEF7A61DA509B5848013B304216F783D77C3F57B76FB8DC984F05AB557709DAE4691B519C44D41813E4B61E6664AF5C970AE7A810714217745AF087BB00575B18081921A854B7D953E29CB1DE704E6578283292168EA73A03E2082B8B641C819649270011861A7B301DCEF74E9B116A86F717E30BA6C5398E34390072E20C82F570FCFAA2BD8847A7187052E6B9D0D9BC9FEC0217373BCC7B8D38245E40A1597077BB00A408E9EB2BB451C31A746D2AA07FD6432CF176382B6665D45343CF32731817023EE046577ABC342BBE25416DAEE417F2971A8ED4C839126E996A8DB40A55BD424C0E534CAB677FA1C6B692D2B7E322A331305F75289A1ED102ED604722737E76501C7E7ACC69842D6FFB2D31D1003C3B3BD8F4458D93B0270CBA21DB21A7D16E22E18584E68EA5B890EE839DE75B68D60B25D5452BBB91658F3220AAAB200EE7A8F070A5B5AA7FA30A768275970012324FE01910E8647945AE6F8B3A17D08E5C36AF468A7F6308751C4141439B567EAB03D72538DDF71DEBD2AEC5DB13537A2B0130B4C2F6662182BD08EB750EB681FCE77981A3012102C45642BB8A44AD5CB27CDA8369EC28190F64987EB600101ACEAE7A807158CC8100555A82644B3B513D7CB283A363C70A4EA090241C8A96AC562E7FB3C38F3515C3A68FECB271713729FB77A1A68695FCF995855749C1F0AE09F90741EC332E7602CADB69E55438B9D8CCC213119627410488145777907D280DDB7391D2EC9F27371277C266BB1B14F6EB8D46B2C8BCCB0C68F3BEB2D87B07044904D5B08E84305B0686F923985A49ACDCB1A662D1A08948C9B8D95883518D0AD3933976C464A41C18351216D84066D71164A32D41886A153703C584B747555EEFE8309F0810D49C0DF8C5512B245F637C9448C47E1456995E922460B8210C7AC1063047C3764077288A1345C23EE0C8FA6865FDD52ACB49614207285D241C14114DB55CC0C92049F3537ABFF81B8A30A02E5AB013741B36D92191691B3197CCE8D2328BBB6FF61932434899AE01412B231B0EFA18D8381555866091C77981E753F8A2B95E8095765EF7A13BD38F9FED3BF36477916CB802690A213C83F6624A067A5E2C +sk = 212393FA68C40D1153EC29801F4472DB30B8E6516647CCCC6A160BDAC4299D515717D46BB4248673D11558D8AF5A6373720A9C96A4C51BF12AC506CBE51B560AB742EC684DDF86CB08121BDD412E2476842D051E3182C415C49B7184C9322242F70B63A960576296A8AF5451F5D474019C47E1822E2B1503D30CB8EA20B3CEC334A2114FC2381D910A98E633716EF9CA2F7939C7033BAB756371D6C2E906061DF822113C57DD5992C8826ADECBC9AE381931473558AC94FE8A19C9C4BEA3DC40DEFBCBDE234A211623F8D80BDEFC74F657A797098EBBE2B6B57438C2253F89D13BCBD5C0C4204DEF79BB37859E36E920768CA7D0651A7EC9BB63336698ACBFB6C9A384084DEFC1BF5D9C050087B691D40344E107BEF0241BD99463532A05B795F820213392CB16D668605CA86DF134C03C4A7DF581F8CA7DAF732F5AA75146457163C3ABFA9C655F966A607A69AA1234FD1CA2A97213F280A10E84C4AAD26C0EA2CBA6773D63B39EF7350F6D284830EC3275E5BB9A318B03F87CD3F3BBA41632C0F9A1E65989B74B91B23A82BCC22D617AAF8B14C10D0037AB970B8CEBBEC0CB866BE5057964B7CAE6C9B3084A696602A25961DC53558C065D6D8B25248ABA262B1B635322BB82165A8CBEDE60BBF6B72459D47B64A964B3C32CA563BA5AEABA8ED912D81B2E733B4B4587A99AE5037DD21DFC9ACA5D869596E36547C0336AE774B8BA637622A597C05DCD43B092D938429886C708448B24A45A701CE9FB9DB54C67BB531BCFB82EBC15C127409B02A3350D6168F1296784B86F7310B9160681F0133A66356843401B9C0414D7F687AAE41A36857CCD3B26BF8C11DEF30769E30630169365AA3C3B53CC89D9CF47C2CC6C166F197C9E5C5B2408B03C41B0613703CC4872BE78DCC4B28089D7118CA1186BAEAC1355D5B9D4E45515897AE233A26810356A373DCBF6CD5F02CDDE8C468BE006DBC67E60A69908D1171D4A5EC1643B87059CAC80C259788EAF195F4FBCCFC4C0284BE822F94C2978FA119371291657B927F8B332124D61D17E21A36485D2C3F2893865F305589A8D048B06FBA7BB9F087F96D5785678A7F2D16C892CBB2273677ED0CB70F5729AF0A0403B0BF0608ACEC1CE32F2924535C16E8423BE0C8854E439EA395DD792399DC98AEEB7493B64965858BE35977DC053B3C0B3788FB4244CD3B49E40934F90B454C983DA38B2B5C88521347788F832E9C64A6CD012511234275C9F6C251442A87B496743333A161D8C04E3D78BE3097942AACCEDE09B9CB673E1FA261BE71DBEB5C4E1049B2B2A00311ACAD4470F8AFC85172476B949AEFBC0110A261461291B5FF7A74697C88AD40C82770FCCF68B9AD5382125879E637B7CEBC1AAE95B03219CF2488B2E3B2E51480C8CD8022C2092470236FE6042DCEBCA24CB9EE9379386D80E54C232DEC93B99B694E99AB5E41CC8CFB8928D5C08EDC7A707044B49B8A131986A3F37BCDBCAB5255B64B4905A93A719D01A32384A87543B6BA1A22DB75C9BAAD257BC8B9D8B78641B394C7AE064087454CFB17B307BC35A97CCCB842602990747D60F30D220ED3171FFD7A2B77049DC210E2377607B817F24C011DD736D7918874AEA4B8BD98BE4597242C95C9641B194A093A928B8D3B30F33C10BA326943A8B704C09A6DFA55F700C488C38A3334716CCEB6585008A853162E40A544C0A16878328F47C4E67B5AAD276A2DEC4C320047E2EAB345CC14982B96D1D13566DA409E93072377A1729546117A04CE291A2090B60030A35D5B360F9F871CAD52F37E63954DA0E0A8675ABCC3717972F89469978730607293267CAC89E3C96A98576C2351D8756429722A1278A173A75114BAA4F0EEC6A12B09CAFDC99FEE2C1AF7ACDAE3C747B94B06517464F654ADAE25888A15CB4C5017076C9D3FAC3B1560DD9112D88B2BCF31B15AC420FE5A698D52AB41EF33FA6CA8D8CB9B94D58648F39A138974E8016A972308C7B040D2FA32BFD1096503A3A0E84B9941188A6720E06E6641B896D365190369766995826B72122D780477581BD69B348BB6C5C8F65B4D84AC3F0768EF6645E422B3ED7E38D0A423409C285D0E21BBCA97BE6707557BB0027E755F9A81912D04B9EBB374BD79411B2C283068670431F2DE58D346BB525D192F128C9316742115275E9214DEF7A61DA509B5848013B304216F783D77C3F57B76FB8DC984F05AB557709DAE4691B519C44D41813E4B61E6664AF5C970AE7A810714217745AF087BB00575B18081921A854B7D953E29CB1DE704E6578283292168EA73A03E2082B8B641C819649270011861A7B301DCEF74E9B116A86F717E30BA6C5398E34390072E20C82F570FCFAA2BD8847A7187052E6B9D0D9BC9FEC0217373BCC7B8D38245E40A1597077BB00A408E9EB2BB451C31A746D2AA07FD6432CF176382B6665D45343CF32731817023EE046577ABC342BBE25416DAEE417F2971A8ED4C839126E996A8DB40A55BD424C0E534CAB677FA1C6B692D2B7E322A331305F75289A1ED102ED604722737E76501C7E7ACC69842D6FFB2D31D1003C3B3BD8F4458D93B0270CBA21DB21A7D16E22E18584E68EA5B890EE839DE75B68D60B25D5452BBB91658F3220AAAB200EE7A8F070A5B5AA7FA30A768275970012324FE01910E8647945AE6F8B3A17D08E5C36AF468A7F6308751C4141439B567EAB03D72538DDF71DEBD2AEC5DB13537A2B0130B4C2F6662182BD08EB750EB681FCE77981A3012102C45642BB8A44AD5CB27CDA8369EC28190F64987EB600101ACEAE7A807158CC8100555A82644B3B513D7CB283A363C70A4EA090241C8A96AC562E7FB3C38F3515C3A68FECB271713729FB77A1A68695FCF995855749C1F0AE09F90741EC332E7602CADB69E55438B9D8CCC213119627410488145777907D280DDB7391D2EC9F27371277C266BB1B14F6EB8D46B2C8BCCB0C68F3BEB2D87B07044904D5B08E84305B0686F923985A49ACDCB1A662D1A08948C9B8D95883518D0AD3933976C464A41C18351216D84066D71164A32D41886A153703C584B747555EEFE8309F0810D49C0DF8C5512B245F637C9448C47E1456995E922460B8210C7AC1063047C3764077288A1345C23EE0C8FA6865FDD52ACB49614207285D241C14114DB55CC0C92049F3537ABFF81B8A30A02E5AB013741B36D92191691B3197CCE8D2328BBB6FF61932434899AE01412B231B0EFA18D8381555866091C77981E753F8A2B95E8095765EF7A13BD38F9FED3BF36477916CB802690A213C83F6624A067A5E2C9510A2A0B4FCBD414FC61AFF04A8DF579660D14B13C40EC0470C45F639B65A580A8155459118346A84683DE346659727DA4B64A1050C5271E968BA9CFDF6029D +encap_coins = 8AF3DBB32AF8DEC4843AA90BBF43A5F13686D9738911A805C62636C111B2E140 +ct = 7E3F72704DEDCB7FA7842EB6D4AA4D0D1CB765D8CEC29FE759D099C802D67CA1DBE0ADED23A4C478FB8EA1A06317EDC08BDE1DFCD7A9B82BCEA02C6C1EB5A5B0B18D33EC047BBB4B8D17AE337A3859F091E60B516BC9760FB6935AACBD1DC7DFAB6E200E740496ACDBFD145E911141A8708779E41900FE1F21272CAC5B5CEC500C2145B76AF79765516B3095F9FDEC5A65E30A5BF3BC7E800BEB04BADCEC7EEA917CBF83EF83B5F383B11190CB1CB02A7E7F33EFE2F0803239A2C0D942552500AD9B7AE61E17FC05A5DE4B6B1B2A5A57161CBD4BC982649A8AB4FD7AC2EC790F00004CDDE57A32684D4FB1D60907DB1B8D796F62D2C765E8177FCD0FB1342AB68DEFACE05963B7B84F44B23AD0E8F93573413501310A02C9B9FB594F2576F69DE0EA30D7873F1822984C8224A1377DC3BF900C94434E2865E9E0665BDC090F3AAFCCE625D248918B67699CA77DACA06D1BFDA1634861277994EF522777336C5805EE86532783BA557939B5B2BF80E477157EB1BC0DA7D162D965E4B3C28A7BCD9C58340E6771AAD0C128674698ACE934F531B67EC80161EE9CA62CFE239B309F2EDC46CE9FACCD7B19C11E7F5E62C8F3459F5BCEE32F92A1C8B0D98E1B539D594555B44C68AC44389EA4E9F4AB823F44803D0D0D497F05D0B1E9836CAE8FBDD57D92D221AE3B1D301B872C9EC6E1FA51A4E93904D6D1CF571D2DA511ADAFC231BDE291AABF7C6B19CFA17610998ED145A13AC5E6874E4D32FFFC6CB2F0F98624DF95BB2C5C5842AFAE732591791C39116AF3866AF3A227A42C2EC3F188991AA1A23EF81896D2A2A2F0753F6936BF34963CE8C184F7E53149BA10A9C8266322C3C6B945DB0EB652EABBF042469EA201560F03BA3B523F29E9F1AD1545FE83B46785FB461D000FF55E36605EF1389DA66E790FDAECCB7A0C42016C40A68A51CB3F5F3F5C9956FAA815A49F578DF015DF360FD8D42C39896CA8B33B81C46D1D7C9A3D95EA6D3F9248A4591D9F2A064F5677F375EE6273BAFBFCF101F42EEB19E078B336804498DADF4F79001B537C58796159DE3737A1E800970D79ED4BFE373372D977EDF2576F2DBC31560D49AC475B5546545B9C5D5D75DDB77162088B9A2B58ACA964436292EFFC111A5174CC6CA8F218983563040B405664FC2147CB050826B75D67EEC984D1B16132DB0BFB43DE07556595A1D5A3D728E129DB6FCDF5830EF767D0C72077D227022A937E91BE07A8E3F4EBECDEB09CE85C4632E40DB5121083E92D307FE02944DF9A88616043D315BBB584BF42F82E0EAF18DA0768003BCEA3DEF8A89380A601544798002A35FF03CEB9188C5C237C36FA0C22119A24267981656DF2B7C4AD7BE0DF35F34CE94DA31C64F75A831FE557E731097FC4CC7F51F4A79E9602C107DCABC4A34A3B48C233B4D156E0D3860D181615DEDAB813C2D063903A7421380E0C3E57779C91AF37092FDC8EFEE4294ACF66FBDD8F0D4D5F89F4391CC4C9DAA90CC17B664BAB281C059866AB67465A444338B8E3A04EC7B868 +ss = 07163CD065C6976622FA92B5F0E93E6748111AE8A8F7194498EB2F6664D336AD + +count = 14 +keypair_coins = 38A0D5F41D7DC1896EFD1B45B0485634CEF149828751B96087A0A6DD81B4D58A08AD5BF30D584AE9C8425AB3C8F1FB9960752721CB2C8310CD7BAC84808BB979 +pk = A6BB3B93C181B651918A25235E22779CF052E1D30E6852557CA32AAF841834B423A9E61CC24B5231D7590F863E814AA19F123C0CBA97CB3773740871AC23868731748355A85F03B275B3273486142153BE4920BC9EE77AB5C05D2B96228906586EC831EBE8CF6F9BAC3631B7CC904DFC768B1A717274B33F70D08B6A79C4AEC3597E1C9664C9472B6C100C1601F27BC0AED37152E20B327B5D32646F2980BD780C8F476715AC04BF1E03C2D4A31DA23B14DC0233C1A2C2D983627BBC845F023E349CA59626A99EEBA5DCC12E8B82076EF2295238667308451C2052C6F9B127778A3C656213A23DC7E25660443183298753475BCAF667A9483192C6BF553B7E50B44A84A4B881B0365FE513FC661A03689581E045D2F921444C6A76E6344ED8A335B6681CCBC7B42B50B9B03558C64DA65088F60B136882012135A8A659355503918BA25DA1C167B9FB9F771B5727493C921338C1ACCCEFA80201039D28C968AA3A40C2A28835F63BDE23B9722A245EE3C859997F45E10A11F1906C1485B0B51093F51819963393A692ECDB1DDA2C88A6133F69F401B124CAD796217C818152A528F7D073BFCB9EACCC6CC8825AC4612533126C1CCC736DB53F648201FF29A6C3F77B41E01DE2087986F237200014E5FA540735513400004B5925CF64B0FFE9575E27AC19AC5644F355231BCDD70348C4507C80780F1D51ABF6AC4C5E2957A94325A3F64E83A0A192516F6CBB40B8ABBA5F8B85BF2AA60E44B46585BF009A723FE1A44FC97543F269F670C593935BDF87A52A1A31CD2B9AD92807407B5851B49EB1A2318611CACAA7710B6764A7E57F8962BC3FC483A8393640E602CA55526EB1BE56F2C61CE802B9592F24C14AAA75AA4B002AC9B81FC1327B2A93AA889C9EB178BEBDC91579CA7BD30796CC324447892558D2C052308946A451CA49816C06AAD39603DD3841EF03CCC1075DF164739FEB342ADCCE87AA12F550200CE94765EB4F291A5152941B4EEABA91C3A59257C03017C0B7E0003B07657BA60B4256A8A4B205D7646813246385B348EC157DC6EB3BE4546D7EB85C29512840018968743D2CE147F071C8F96C7436596337D69F5074485BF4A288833F2855787F8A18D874C5A2A41422157F65B62B5E581C2181A7023698FDC1AC60A8340A34B29F81B03DC35DA2B453FA61293070B1C6DB57F3040C3AF7766C69B84D624DBA1163FEB0C71FAB6582473F93C8753D67B0259A2EEE1C847B1B8A73455A74FA10C3A4C21A35AD20FC36D563BE9BC55350F565E4076670F0C77B3C4AA2A06F7BF2AD1BFC4FC8721618454D640189A6F8B3D6C71086DBA68B213F4C51100A6037E717147893CDAE20A97759204B2C684D8206FDCB10DF575799AAA3DE388CEAD4446DCBA8E14368F7202520C71E453B41CCE426BE6C1E29AC475C45742DDACF7C520DA15780A9056183900559129E5E3CBB3FEAA288B25B6FC69BB8B164C1DB8E24391172A8C23859545E98A13725130E45C3D1CBB5D6F5C0DC275608163916013E6E466C29502902C97D3BC33DD006ABAAF2AACC40C046E55951D744E31887155A3FA880058A8767B35684445982767C697540CE339A0F4C29C2AE42B5DAC5047C12C22BCC155A63A8610DB945708CB5425CE0C3C651532A43D32473F236519D54FDFE0A815D +sk = 69E774DB244D05192A2E064257F3A7B9B08941A2018ACA28C610B8BFAB59176BAD88B9A7781222CB03AABE6A4C2937BE24645A28C3A7931240503769EDD1865F72B44C4842114980BA64A59A647438C5476A700D0DC4A63277C4DC73A3DC9B59BFEB0DDF0817612AB73AB14378E93FA4982D15131C5016B36A639E4F689E9B6B2D2BB2501E130EEDF72AFE4861AE7CBE7E717B4C4001B78BAC719C6AFD40969392CFB1D918794B4988A7C03A23C8C5A751ED2C39D3E18474B43CF8B7814A5932224141FD543871AC102BB0A349153EB4A13AD57AC06602BFC6C1B4425284EAD058572A1C7C0CAFDC6756555B2033D2CE67F9155B16726625928EA26D13E2C0C0A66988EAB99643B4CF23AC68724CE635188DD8B3F2F421E8E8A9F838B707A16FBF27445A7555CFC052982CB002130CA3500CC428AEF14281564997D5F37D0A1C411CF73D3D2082E4C26C3BB7BEB9FBA2D9EC631F8953B3D03075318B4B720B4FB5B177D43C11E8979C640639136FA20B718C0846404B2F0604C55CA82F519241D811A697000DBCE1C743410E92922E83446410A93150178A4A2B52123174DB128B2EB97DF4E8A617D5876AB9977DAA8B7845537DB0A2B6E0599C0CC165438329D1251D6AA09D5B30F27040082A135C2B831B7722C416072C655C4D511E1FDC0284932849126D49B5A03B3593894BCA250B0D198601A02900C9406D8F5B69BEDA735A3512BD355DAD587BCA7330364031573B44EB9C2BD103BAFB7283C1B923AC3A41F0607D4B7B7E1E681AAC9B4090538B6B7975B9C5C64C6196577B7861CC88ED6C3365AABCC9B97A6A318A39A2BA8B17376509A563B58DFBF4584E6B00D56BBBEC309164982D1B906635A146C04BAD613C02C8E2C2D0597FC285779C628F3E290A84D8710745C444410F129A140358991D601FDC787FAF4506C6003E2130C2E03B3FFED39CA3B9BBAAA34ABAE794D4266E59A80EFB44528B2B234D70025767A5DEA09032767722C61E53423417458DE9E809A42257A27001E9C8AD43B775BC853D8475ABDAC86811D568E9E38747618AFF0B0901283A3913B6595CB2A85B6D42101DCBC90146AB85EA5449850BC9D8B1356F820EF365731F176EC0A0A5B7F35D9848C426F32D6A37046574A93CFCC043614E8708026621A06AC00582DA7B64421D4F50AAAC1BB10D6BBAEA31808712B891344B7B865243614CD706C2DC098B0A069FCEDB89ECD67DE8319C92F3AA0A9B92A1FA256302587A5859408B5CAB563EF1814CEA386BECD756DB669FDF87A003EA1E7654CAB281220B21CB234AC1C4B459EE48517BC838082191DE35B265D5264119C05CB500A05307C806AE8246128A8194F61024F5B2B7C410689150C0A8F68E1B3A51DFAA834B7C8ED989B351E683AF7BA73DD91E9733282FA2559AC53AA2819811190B5827000D98433241A3DA2B77F4E588B0088E3D3318CFD049C4777F7B08678144618E2406B9B6B72698888C4529B7E3B272E92620BB36792266C3DA4C9C403D1D49650B5530BE017C3B99C068890F2705702440AA0BFCA823059822C18981A03B16670E127386265487665ACA4C171E023621A853965A629757148E37833D31E453DC9B20191C94230833A6BB3B93C181B651918A25235E22779CF052E1D30E6852557CA32AAF841834B423A9E61CC24B5231D7590F863E814AA19F123C0CBA97CB3773740871AC23868731748355A85F03B275B3273486142153BE4920BC9EE77AB5C05D2B96228906586EC831EBE8CF6F9BAC3631B7CC904DFC768B1A717274B33F70D08B6A79C4AEC3597E1C9664C9472B6C100C1601F27BC0AED37152E20B327B5D32646F2980BD780C8F476715AC04BF1E03C2D4A31DA23B14DC0233C1A2C2D983627BBC845F023E349CA59626A99EEBA5DCC12E8B82076EF2295238667308451C2052C6F9B127778A3C656213A23DC7E25660443183298753475BCAF667A9483192C6BF553B7E50B44A84A4B881B0365FE513FC661A03689581E045D2F921444C6A76E6344ED8A335B6681CCBC7B42B50B9B03558C64DA65088F60B136882012135A8A659355503918BA25DA1C167B9FB9F771B5727493C921338C1ACCCEFA80201039D28C968AA3A40C2A28835F63BDE23B9722A245EE3C859997F45E10A11F1906C1485B0B51093F51819963393A692ECDB1DDA2C88A6133F69F401B124CAD796217C818152A528F7D073BFCB9EACCC6CC8825AC4612533126C1CCC736DB53F648201FF29A6C3F77B41E01DE2087986F237200014E5FA540735513400004B5925CF64B0FFE9575E27AC19AC5644F355231BCDD70348C4507C80780F1D51ABF6AC4C5E2957A94325A3F64E83A0A192516F6CBB40B8ABBA5F8B85BF2AA60E44B46585BF009A723FE1A44FC97543F269F670C593935BDF87A52A1A31CD2B9AD92807407B5851B49EB1A2318611CACAA7710B6764A7E57F8962BC3FC483A8393640E602CA55526EB1BE56F2C61CE802B9592F24C14AAA75AA4B002AC9B81FC1327B2A93AA889C9EB178BEBDC91579CA7BD30796CC324447892558D2C052308946A451CA49816C06AAD39603DD3841EF03CCC1075DF164739FEB342ADCCE87AA12F550200CE94765EB4F291A5152941B4EEABA91C3A59257C03017C0B7E0003B07657BA60B4256A8A4B205D7646813246385B348EC157DC6EB3BE4546D7EB85C29512840018968743D2CE147F071C8F96C7436596337D69F5074485BF4A288833F2855787F8A18D874C5A2A41422157F65B62B5E581C2181A7023698FDC1AC60A8340A34B29F81B03DC35DA2B453FA61293070B1C6DB57F3040C3AF7766C69B84D624DBA1163FEB0C71FAB6582473F93C8753D67B0259A2EEE1C847B1B8A73455A74FA10C3A4C21A35AD20FC36D563BE9BC55350F565E4076670F0C77B3C4AA2A06F7BF2AD1BFC4FC8721618454D640189A6F8B3D6C71086DBA68B213F4C51100A6037E717147893CDAE20A97759204B2C684D8206FDCB10DF575799AAA3DE388CEAD4446DCBA8E14368F7202520C71E453B41CCE426BE6C1E29AC475C45742DDACF7C520DA15780A9056183900559129E5E3CBB3FEAA288B25B6FC69BB8B164C1DB8E24391172A8C23859545E98A13725130E45C3D1CBB5D6F5C0DC275608163916013E6E466C29502902C97D3BC33DD006ABAAF2AACC40C046E55951D744E31887155A3FA880058A8767B35684445982767C697540CE339A0F4C29C2AE42B5DAC5047C12C22BCC155A63A8610DB945708CB5425CE0C3C651532A43D32473F236519D54FDFE0A815DCFBE9649D9D1C384BAAD67B91B2F3E21F2FADD6BB582A0B9CB016051DD82C75A08AD5BF30D584AE9C8425AB3C8F1FB9960752721CB2C8310CD7BAC84808BB979 +encap_coins = AD44643A608B78BECE50B8309F573AAC3DA68125CE877E8BCBDCD51762AA0A9E +ct = AAF11BCBE3CE59E8B7D51C9E29795D270B02F3E9BFB99A38FE0043D908AF437FFAD557BE766E81E0BA378545BC5251352D4552E0974CF1D9213CE0E1573A0EC68CBF362B3C29D2A3D4316684FCA170EC89748F3C8EDB3BA21D31F1B914165FAC1A3F40ADFDA52118536DC7354B5BB59FC9A2E7ABE3C3512347A6A278E638588D9EE6B34400E4CAB73D011DF533B57FFAAF6D5A4F8C622D53880563A0962F301014383F665901E225217FAA91365B81CB51B987725A98DB8BF219E2AE7E71D9EAF8C22F5E4DA761D462BC897F5E690146379EA20EA54FCB4A8945173ABED8CE0606B361215092F61ADDC455341970E9B8C800988BF800116334A390A191B8149D0032CB625140C74467A688D0CBB7D4946E28B2C72CE4FFDA4A0FC4311E688318A0699E392FBCF48339A33A82076B6D847D5841CBA57682277B77C65177C37580F05139AB2E8F88AFE894D40BCD7DEC3F1E01D72C741822512D30D7463A17D18B6513AF7E75130D5ABF667F071B43C313865842578F44D353E26416BD5E70F4D1BF0D39D18173B85DAAEED29A681B3A3AF07E77B75D4C1109D8E1E853D7965A863ED84C2D4B2FD6FAF01F916D7A77EFD073C57C6DADA183C44412F4EBCD894B9837AC1DAACD3A36AB824529CDD169D5CEB46B6CBF30AF441944F5CEBC0B9E12D837D6CA69F13456F3483F59B17A9537016DB99E973555E43001017C8A6013BCC58B079AF9C15892314A5B0C133997ACBD8FEE90D53272E474D1677A893E2E480ED09591F828AA0C2F5B368894502FE0DD4BEB40B37CD37CDDFD4CDB418F9049C3AAF7E1DD4E3EE0E904BD6D581AB766FABE57F7977CE7B08D46E027C4B7878A901584A3D6BCB7EFB79786DF891E1C8A3405FF0CE6E3C25BC44A6DE813EBD9A9F13539F2256E29119C45367D770F655E1D86185A31A7EC5322846E0DBE30B4E30B213FD90D9A1C5437C82978847BDD5EE00E793682D77A144D20FEB66C4A245C4A35C8F50F5C944456E91D987ABB2674A5798FA6D426B90861B37D6C37F53BB898791EAE95BF7C3A2B9FD68E5B8E5975A6A185099B52D7562BDA7D19BA143D51B3D976286A9A891FC704D9960902250E2216E7FECA41EE842DC252955CB1C28521223AF688C325538CA59C5A0EF968E52FA73E2BC10A7058D60CE5774A3831C2AB0B214EA7A1DC8DFBE0B037306D65CE4A44A20969C48E21F207D6515F10CFB3E7C78667487BEC3306650A8A26BCF8EDA17685A99C94CD48718FA08E2EC267DDB38804FCD1DCBF64C0B77E3EA7A74077D8F000953A12010DCA80BB6A8514A046B080B4CB0CC19BE94225D469312807667C3928398E3FCD4D658B3C22466F45ECE9D00A34C333A108F6F18AF2ADBB2ABF1F0A9AB048071FDCEEC4E381675F81698A111BEA70F359B7A3A9ED50069713EFB28AA3968E376A8E1BA130F9FEDC60555850FD4E81F341CFB4574042378F17385692301BEEF0CD57670DF4EB9DE80EC597F65A4699AD32B263971F8087E02C11FA957859F1E41DEFC2A378A18B4794E615 +ss = 794A5CB19552D8B4B4E4EB3AC5DC75A69FC5E98ACC4B93E99DE85586C85A352E + +count = 15 +keypair_coins = 97B5665676E59E3538EBADAA8CD50DF1F9FDA1502D9894C616A946078E56B62148B1985FD7938595DAC8AB776701CA1E9FEF47350DFC45355FF1E83A08BFC3A9 +pk = 8452A77401C4E343BDCBDC985B70189EA976E3D65C47649593C9CFC112A4292238302253118CAB8EC52060305392E6A131F0445A0BB4E11A1A8D7465E704B3134C3807D9BE9F8B2ABD57A00758685392592FA0B01E116410706A669A0EC5ACB524D1561A265E307C24068B12897568490458121C572C2CC43B2464F2703212641202A40B27A41FAFC4B24BEA9F26711F28B1050645A38757708AD607FF6763F14C15A2CAADFC2BC4D23C576E5CAE6A20B10CC9CF610A5931AB4C59ECBE67EA079BC3911A96B24B86A0D6B99CF85AA44094B0F6C55924776C4E1BC9CFC88A127B8195145DA3515288F933DA602F1A2747A6856657B2102774BC1946163B534D02A1CE2E641CD9FC7F7D48B6F643AB53045BC690A249433553845B34A5953C873C1C686C83BA46ACEC4E91046F9E7590196C9C24A747C6D986B4B414C223A52A6C88475405232C78AB3AAE8861A45A817EBB16C3A3070B8E842527E965013244FE50907BAC3883122393340B1E06728FA0400791B1DC3BA103C8AADB6CB0328B5EFBC85694164D0934C207B63614CCA28ECA71E5F63A58604599EB6D1D248A37EBCB17335713C4C9A0500FBF893DF475CF7C19792FD56FE0A7505DE0158F34603E0071B2AA0BDC8A12376A1313F571D33686D505660C4BACE8EA40820918E05BC15B381B90D9B31BF52E1B18C422C3935D04140170542829CDCFC883BC344606E75A2EE7AF469C5A81DAA1071771FFF275F2358472B409B1EC31EC887FD6E76CEEC6812D40BA4469B3EEB028A0A6875A19B7ACA51465CC3FE78566A3EB1B98C621EB3BBDA4E7BEB5F2344B64013EC233FB5714BC68B767DA8B60A6B0FFC8565369C19877C16D7C70F17B85F7A228D28A5936968915D026CF683C762714830C1742AB4DFF789F1F43782622A070A4AB52633EFC52693B695DAB939BC24944733905AE86801C4577324C625159B141C5A1014A6E458B71A959001839C461E17A3AC46DA47AB687D2342FF63B83D3331510C98AC484F44B7FB6A31F6926CF047982C400008BB3B0D1EBBA3CB2345613680531B0708A64B937C88B2985C01A10EEA22FE5022912F9AD2BC667CEA16B0A091F3FA9BBB9B8C30160717B21CEF9D74458241BEEDC215D44900CF40709F6671F221D39C804EB6756C812364DF0503355B8B01102574AC3F07234BBB1B658EA822D52A452545DA3544C041C3A3F89BA30005A992B432178BFBA078686A07971601F8B12C22B23B69C05A89ADC2469287F052A6D4F58798E10A464DB4AA71AB30A94854D1B8C16893B432A8DC2859C66A168C8C5AD4D04559056C4588B0A8755013E378545B47EFBE90CA97552C9B8711D3281CC7B9057F78A68A59D5AA642D1E9233DE093DF5705D8639D702097F0DBC98451A46905AE72D876E1243546590599FC5923B37B4CF0A3F7CB47DFE8AF00F6A999127A256681A5705BF5100D7096713C49149C7C561C0783E048CC3444776BF8997671970535C2CAC5360C9B53E0D952AF348A28E4826DB9810F07110A48771C2C9B21DA3CA719C7A5407B92020AAA0180B4D6B3AE42A1C09CA38FA59D1ED02A3A0079F2E922D0B36D9795C1FA42354CA51DDC11A315515A45BC7E1E21BCD3287E18BB0AC3F8119A88D1FBCE1D3419BEF67B6694D9FA1BB309CC61C819176964DC +sk = 48C78CB714B9CF88A8B317A6FBB681B8F47D56524122156503823B600236D3726EDD9087504705CB4698A1515DC0D80B3F87C63D575170F45D121A848D897C3C0063DFE9B2D616A96552384FB72D6226A193F90E15B364AE667C34BA27FDD0AC0DEBCF450578C6D182DA365D40786522C37B54E0126ED7B3C6BCCF28F40770F23736B394210B67EBFA72F6B27799FB1F6E48CB7407261A86884621C529974635B35F5B4C530E68BEE8CC213387B66A4127D01223180067A2EC24B2EBB579F74BFD5417FE995BBF816737722912B5B4DBB4C938D0686D1C2A44880FA7231944C195FBD67C67E60861D169DDC41F8150B52A68C14425190BE2ABBCF5BABB734AA03538899678D4290738CC63EEE611E4344EA73B9C41F36C712A4C6C72422000CB93E144F3C588A2299D5704CB347B90B2905CBF69CF1DC5C670909C478094E88C01BB3B3E4FE246F8DC3C62DA37BB13B6E2046911D85D5790869FA4A54FF16794620480919C0DD74B9887BB5C125C34D76B3527A42A46B689FC4C57571AF13C44B7D30A041028E97C0A1E50621567374DE7A4207ACD4CB18417C7984645CF4F2B5A5434BE8F119798C0760229301E14431B0B652C643C0EA0CCAA13CBC6FA6DC8D348B908B78343978FD5A0EEE90CA5104184F33F107837B3EC667EB207000570DD33856939BC8BA671B3731EDB2A94596A8F2F37BBBF5048087091FD2AB164F5C6A8F92F65239F08844ED4F605E3BC1BF780877EEB3F4C85BF696C691F85A947461331AA33B15973AB4923F429C7913731BC025539232217F801EC7078E2F0AF3EC7494684BFC40B4FF31798467746F60BC9BCCB5B1E397DFC6165773A965E55034DD1094966694D7806F2F505CEBC3B3DC307405431FCA21614089C633B522510A5FCA73462B32FD69200DC614C5E88454F181D845B19B8866259A2372BB3361B9ABD5AA278B1773057E26108BB020A9610BC19AF13454DF46B4FB5A68C3E7ABA6E7197AD63439C7252CF9507E32072E437296883C93902250165A1AEE8BE0CE6ACC2029E10E97536EB958B691AE3E3AA9996986805C6D1F6356D26C1E63C550381B292FB1B95E183CA933D5BE1BAF6294C4B248B4264724712B2A2816ED3D09042287EB8A17AD6C86255AC492F53A21EBCC19B3C8BB1E78F58BA98BC8AA77F6A5CB90C0456E1CD663137E11185536B02D8708644539701B193BA52258064B289D053404BC78A397AB86895BAF1934E8B2F6CC3AE48869BE7422E581A6FF748519BC30BC96C716B0A24A02679ACD5151CB2A0FA127C81EA513C3CCC3B84A34025522486CE424BC04C860EDC5758AA990FED372DB324614FE91589D78ACC88C43C2643D540A509F090EBFA6214832C76CA982FAA1CA4465F9C14AB4E6459F072558946CEBA113B5FC7024A364970C72933331A6A4B0D4196B9E6219595E229F3E28FB2D5C6C4C041DB226AB611B04C3A80FB5A7F15E08DF3347DEF02663AA39409AC4E8C8BB0934B46B6A8816CC70C8C0B11A7EC1CCE57BF5BAA30E69207D7E59C9E386D5CF7863C133BA1B510F5E06C4876BA7849611BACC369B039EFE173DF6B8A22469E1F200F2AA53FF84390B88302D9F9915C4B8257754B3423097E7C6B8452A77401C4E343BDCBDC985B70189EA976E3D65C47649593C9CFC112A4292238302253118CAB8EC52060305392E6A131F0445A0BB4E11A1A8D7465E704B3134C3807D9BE9F8B2ABD57A00758685392592FA0B01E116410706A669A0EC5ACB524D1561A265E307C24068B12897568490458121C572C2CC43B2464F2703212641202A40B27A41FAFC4B24BEA9F26711F28B1050645A38757708AD607FF6763F14C15A2CAADFC2BC4D23C576E5CAE6A20B10CC9CF610A5931AB4C59ECBE67EA079BC3911A96B24B86A0D6B99CF85AA44094B0F6C55924776C4E1BC9CFC88A127B8195145DA3515288F933DA602F1A2747A6856657B2102774BC1946163B534D02A1CE2E641CD9FC7F7D48B6F643AB53045BC690A249433553845B34A5953C873C1C686C83BA46ACEC4E91046F9E7590196C9C24A747C6D986B4B414C223A52A6C88475405232C78AB3AAE8861A45A817EBB16C3A3070B8E842527E965013244FE50907BAC3883122393340B1E06728FA0400791B1DC3BA103C8AADB6CB0328B5EFBC85694164D0934C207B63614CCA28ECA71E5F63A58604599EB6D1D248A37EBCB17335713C4C9A0500FBF893DF475CF7C19792FD56FE0A7505DE0158F34603E0071B2AA0BDC8A12376A1313F571D33686D505660C4BACE8EA40820918E05BC15B381B90D9B31BF52E1B18C422C3935D04140170542829CDCFC883BC344606E75A2EE7AF469C5A81DAA1071771FFF275F2358472B409B1EC31EC887FD6E76CEEC6812D40BA4469B3EEB028A0A6875A19B7ACA51465CC3FE78566A3EB1B98C621EB3BBDA4E7BEB5F2344B64013EC233FB5714BC68B767DA8B60A6B0FFC8565369C19877C16D7C70F17B85F7A228D28A5936968915D026CF683C762714830C1742AB4DFF789F1F43782622A070A4AB52633EFC52693B695DAB939BC24944733905AE86801C4577324C625159B141C5A1014A6E458B71A959001839C461E17A3AC46DA47AB687D2342FF63B83D3331510C98AC484F44B7FB6A31F6926CF047982C400008BB3B0D1EBBA3CB2345613680531B0708A64B937C88B2985C01A10EEA22FE5022912F9AD2BC667CEA16B0A091F3FA9BBB9B8C30160717B21CEF9D74458241BEEDC215D44900CF40709F6671F221D39C804EB6756C812364DF0503355B8B01102574AC3F07234BBB1B658EA822D52A452545DA3544C041C3A3F89BA30005A992B432178BFBA078686A07971601F8B12C22B23B69C05A89ADC2469287F052A6D4F58798E10A464DB4AA71AB30A94854D1B8C16893B432A8DC2859C66A168C8C5AD4D04559056C4588B0A8755013E378545B47EFBE90CA97552C9B8711D3281CC7B9057F78A68A59D5AA642D1E9233DE093DF5705D8639D702097F0DBC98451A46905AE72D876E1243546590599FC5923B37B4CF0A3F7CB47DFE8AF00F6A999127A256681A5705BF5100D7096713C49149C7C561C0783E048CC3444776BF8997671970535C2CAC5360C9B53E0D952AF348A28E4826DB9810F07110A48771C2C9B21DA3CA719C7A5407B92020AAA0180B4D6B3AE42A1C09CA38FA59D1ED02A3A0079F2E922D0B36D9795C1FA42354CA51DDC11A315515A45BC7E1E21BCD3287E18BB0AC3F8119A88D1FBCE1D3419BEF67B6694D9FA1BB309CC61C819176964DCA19C2C9C907B129D01CC44A95949121C39534CC98B6D105E60FE519A000CC2AE48B1985FD7938595DAC8AB776701CA1E9FEF47350DFC45355FF1E83A08BFC3A9 +encap_coins = 4FF3F8A7536A4C7D4BDEF0400ED1B450CAC329089B1443BF148FEA0A01398912 +ct = 822722B4F0C1FD3E731E7F1C927AE8CF8AAE036D769D25781E9920F4BE0783872D254B0204BE0FCF57ADAC373AD0B128F98CE8AE349EA57196BEE3B0D10121AF74B271234655070E1512F21F7EDD67E3959B30FD9D58FEE57817D546613CAFEF0EBDAEC56A3C8F623042159E2B923EB4857716C2D066AD5C38C08CC1D42EA80724232DC02DD73897C888F60A563C9CE49B72A5AAD2FCBD6E1C63F77F0D6CA3E29CA2CDFE3C883954E38493C7CF1AF16B74656596A6715F81806EEF1673352CFC5E083106A05C1CF1E39008935560C173F4D96FBA7864F5E5E54C6277A36AEF8467D1250D085A794A0ECBF163FCEC392DA81FA81C73FAFAE02FE93DD06985B23052A8451FA8D40694F3A90B0CAC31F98C0431D1E118C6E8DB7EED573A2AD4AD1F4C9364C60A9F7FD4E3229BECA976A4800BBFB10064F6FCF789BEDE41BDC270520133096AE5D74E4DA083BF1D415EE75FA138F53F6E3F887825D6A7666B7CB4568D8A24B4A048225573FDD2DCA312C6C66352B904922677E87755558A9FC9520965924855AFB1885EA04E6E7DB56866BE0B88F6AE1B2A3C4B046C3D6BDA32BF02211733B80F1BF5B67D191A507AE1EB5D9E82FCD47D62F81370060667A8091037D571E4E8C03E66C23049DD7B3F7700E3AAC89990571ACF7D1E5BC9918EE763AA070F85CCC982E28F1F4EED1C5C6619814FBED9694F2A6D0320ED9CB52094CC7BB13954CB4B3F35F11E9388A9F3588CDA554E04736A842D7D3A4BA3D1B2C679DE7D9F925D1D3A946278F689AD0A27499B81818A6C667C24AD28513CEFC8EBBA6CEDFD29D70E212849B7CFB28A490E2B38D1C84F1ED243A5D22A2A64E9C2FAB8688842811917079B188A39E05A6151D008B39074654CCBC3836CA600F0B74FA4164C84511A2067902FEA3F8AFA87D4A4B755884CD2EC4C37295F2A3B01FEAD8337354F065C8584949875B2558116DAD3880E2787784BFBA01129A64EFEA61F42CA723E9988E9F2EEFED147ACFDF4306D9EDE134842DFD35D1E5E0122E1EB288D8E5061792C8B4E25C6348580F36DC9458BD6B9EF127C618617CE9F8C92E40B0E1849CCD68C883780A0015C3EA6DBEB5B11E75F2B4B66AFDF856C9419BB254EC5E4FB6D5A7BDE05F5BCCB31602F51C77D22E483C89F5FA3747CD5B988F9B1E5052C3B7D4570B6F5E70835C780E273B00E8378764F363CCA773C88184AFF9099486A53BEEF8444EB363E69A656F41CB3B7422AB6266AA535610CD99CA92C77AD751D95A9A5E1E6BAD6462FA54E926EF9F1E31ABC20A24B49098F6B1AF0BD63248C88675D7D4348DF856D6E782E9D9E979D97FF53D5804AF958BDBC9000CCDE7D2CF184770581EA4498AB6D6C53E1672C954BFF43973D286EE69AE19A5055D2A739EA8B3256E105D1ADFDABC18B3D222CB8BB5B1A03DC0A959F47D59C499416C0301FC003EB4144B5A23359A7DF09678BDDF11D352EB2D65147F61E3380486739251C10871060A36B6BD7E8B64EE02FC24BBB5E5F65DFD91D9D5C35AFFA912DB65F15 +ss = 9E30C8C6E962986C1B4C51C49B2D248C3770649B951A9B6C8C06F4A997E6F199 + +count = 16 +keypair_coins = EF99224A03A85A46EF115474EC5B5D620DA6795D6EFCCA4C9135D19958A9DE6285C3A8B3732DB34F4CD985B65E078AFE6A735B53F4BC36D4762A3E45D1DBCB74 +pk = A16730C3D8A8484295A1D995716A3BF93C7270671AFB7886F397AF65F5BAC1B1A1A49084D1A672A1F98BCA762287E90410AB01098C74869B42479C2CAE5906AB354970C05CD256514F5C2E763230B6770884E7B700544977993DF1F57969E0265FAC4F474B76648B36F5711163638069820232B8A64F16BDE83557B0540405D7987CC39069923DFA984CA4045999A77483E04FE6EB0BE954A74C13CFCEA79ED0D8124B01B740A26ED961B2BC496CBDC539A10B8151E0078F66751FE78D2F3A5100761C8BEB514923A7B4F3AE208766FD852222DC31FC1A59A883C401459DC73468EB35AF61D28EC1DA147C882CC7F5AD5204BD8DA270E4C91DC37BAAE1811CFF4CBF8605BB48AC8585094327A8C17527BF5B3968AA268E152B6896A288A9722183E199F608CD7A412CA949113E87A956E4AD12737D53C3BE4752533BC755F7A1C4B07661E988210AC72131B4496941893A9C6F1180BA622436EEB02F3A3A090C00B1FFD310E811A7A8B87984D275D76B0F99ABBFA45CC5096A1562A375F0599D9698B18012A84A0628601C731CE1CE6824907F1B16878A75418C2FB0751202FCC988779BE2326E2E5228C9493A0E628441B13D58B3C79DF34B7B53C7BE816CC7368F2F31C380296250B33269158C4F9706D75B3B5536ADFE5B0BCF514899287B4B637BB4249DB25A0413533D628597DDD745A7F5270D136763E48A517CA62E116913350E7361580CF77BCDB5B607B38D49E1581654A61AD9602F4415F484BCCBD833255A29D2E76262B401F7FA5A1E68BB136771C41B29333B653602B79A2ABA21004E8A257DF7362163B6512EDA4E1376ABA1FACF04D1AA56C814000D718B5B504F1B9D2E627B8A678D0294C5E3B186A67C082B90ABB1C839232912C39C3E02717A65E24A185A5D96E99851EB538A4AB872148C2D7BC52EC4270F708690D0678D43C783CA194B4AAEB6F2156297355D7823E0F80890608768C65073E04E7E5B45ACBB1CB6446483E7C315A0A0C2066F080A53818A4EC0E4973F630F6822A437F6684FC9431F20A306A055F9906435172699B3CD0D46457BE26560F692864A97F80B493093270B5225980287F1F5711B355F9CCC018D670ED8BA64F10BA98B0068E7714074E14736087819EC2CBC960FE6939A4E9A4DE2045B53E81FBB845B0E546DE6B34EE9E91ECF0C9F74C569DEC949D3EA11785639126BBD45137021E9670735488E46A325342A2B4A959297816D1AC731CB501D628BC09083AB5C4DAFC09A36C7C70F2885A6622BB7162AA2C999927A1FB749BAE280237DB21418E2CEC419990288B813E80765B47E4C314171B849E570C7533CC5BB77CB9F10272926C382FC0796F39924B6971FE6B54638C4CF25318E146AA02769E64C47E4DA2D5264B282B32933D8C74242AA73C15875934E99D6C570572E03C54E47726E3B0416D3737A29624169778970E99DE64BC2B16039AE97C7472A41C9A6C6FD45BD7738CB662505BB26A307A2CFB9680F5CAC086F9BBF7799263C0B5367032196F1BD842534601094668A33BD339DB59746D63BA6007887AB750F5887453E02B22C3148BF6C48C806A94CB7BF23568789A1260C87AF0548C71881401C565268317756A211B6955ED03C49E0BEB46C4EA9FF7BE444932E61D464966BFFC96BEC0647AB34F2 +sk = 953B6E6F452FFAB6B9E27B707F600992E228F5FAC92680AAF31300154B218AE51A012A4CF53840CFD714CB63CB4C7AA0E8EA6E50803CA370BB38C7205D9365448B38308868C83348ACC365BE62B4FA763ECC5112A48558E57230D92B5869D77D99A5C0BEF49819500B333300910117E05B082D15368AE529923C6BC9D3594AB33C91B81549829A2EE55AD152493E80AA80399F770899EC05417A698E6493AA647691FEDC92854C23702CAAFC8AB3A3194CE8437B8E2A7F69454ADF3170C282972ABB93CF152DD85587F6272B0B71590C81B3A9F680D19445FFF0C395310A17F55272CC3E1364A9AEA7A67AF4561CF10043B7B7EB4AB0791A8D62814F4B6536CFA69CA0493FEC1A53D58709FBAB9C87578D83C9441D62C267E7AA4EF0AFC7106C9F834A5A13206C4B58D7378AF90B85F7E05237559D6D7819F455AA01D68BC297A8DD760A0DF971542919979218B4861A49E45AAB12BE67080D197C25CA53483D781BA27893D23BAECD393DD1643DC2A53275C84A19900B364CCC94A8BA3B5768F8DBBE08A7B08FD2746BEC62C98C5E5198695B12048BA5C98753AABA88BFBBC6C8DE490AFAA8343D334AAEB72532C63D60667079B41B6A287B04C797458ACD9104C94E96BF18137B0868737DC00A8E2164E0980B9B2135DC7C0E80E1B930C22874FC2CDBE0B5542732E8FA80E407A1A6E5AF0AA3168A963587379AA3E6A2B082A8A35604BAD827BD6AA1FEA76A608100DDC40B17283EDDAB2335B8796DC1BB57887787A4273C4185867368BE581F6E5767BBF0580F07B003556ECFFC3AE336260FA0A80A2C9E4C9914144551C89A9D68373ED9C7AFA83C75C6B8AFFB54187D3B46ABDC61D9E070B5584BE7564F932985EA4C739CC906732A7CF79A65F0F7B0682CAA5D2070B3E0699B1BB3AC0B38CAF22CA4DB9472D06B02954E36C0A3D8890473588C77E43990DA1C7103985761CA711109BEC0B805607D732A36BAF897E93C6D9A988B94C67A4592B7583126FD452FF0B45A033824983715C60478685B9C2D013D41B47EB342A05FB76232554DF30990D6F1B37EA9172020C66FAC8F415615EBE07833A2588EF622034074B214CCD9395648071821D1109DAA87C0E00CD9573254538EC3B8459CE56578C09CA66A508E88C4DBF6183A268B86FA4B7733A8CC89AC81619AF8F56D8ADB1F665A7AC413005BE730AA41CEF2B06A7FBA535552C8CEF73E90A8584A8B799C323F61FAAD4B8C25D06CB883493147069EB1C9C8FB262B699693D0601262E9CE5B383A0D27C1572C49547BC908C003490827343A690859A15B20119975C35AA991183052F117B53D06C5F4683D19CA5BA6F5595B8B269D96C1B3524CC8FC6EEC750CA33B5518603F59B50741D246642BB88EF61A8BD4C54F48AF3F573D4CDC5143ECBDDAB5A281400721544E16E35EA7A05F161003A6C3ADAF690189BCB074F546BC2033B1E8B00D56CF32E0733DC81D05EB358D148A91FACA963B814A9C5FDFDB4DE79B729DFC26C3D9B48A4730337B0BAC8C2A3628268159979F6B10AA9AB90ADAB98B9C0928FC4E3570AB01F02D5A64C5F605596E3498EA532472760F61CB2EB734C174E48237C656636645886B65C566BF95D927A16730C3D8A8484295A1D995716A3BF93C7270671AFB7886F397AF65F5BAC1B1A1A49084D1A672A1F98BCA762287E90410AB01098C74869B42479C2CAE5906AB354970C05CD256514F5C2E763230B6770884E7B700544977993DF1F57969E0265FAC4F474B76648B36F5711163638069820232B8A64F16BDE83557B0540405D7987CC39069923DFA984CA4045999A77483E04FE6EB0BE954A74C13CFCEA79ED0D8124B01B740A26ED961B2BC496CBDC539A10B8151E0078F66751FE78D2F3A5100761C8BEB514923A7B4F3AE208766FD852222DC31FC1A59A883C401459DC73468EB35AF61D28EC1DA147C882CC7F5AD5204BD8DA270E4C91DC37BAAE1811CFF4CBF8605BB48AC8585094327A8C17527BF5B3968AA268E152B6896A288A9722183E199F608CD7A412CA949113E87A956E4AD12737D53C3BE4752533BC755F7A1C4B07661E988210AC72131B4496941893A9C6F1180BA622436EEB02F3A3A090C00B1FFD310E811A7A8B87984D275D76B0F99ABBFA45CC5096A1562A375F0599D9698B18012A84A0628601C731CE1CE6824907F1B16878A75418C2FB0751202FCC988779BE2326E2E5228C9493A0E628441B13D58B3C79DF34B7B53C7BE816CC7368F2F31C380296250B33269158C4F9706D75B3B5536ADFE5B0BCF514899287B4B637BB4249DB25A0413533D628597DDD745A7F5270D136763E48A517CA62E116913350E7361580CF77BCDB5B607B38D49E1581654A61AD9602F4415F484BCCBD833255A29D2E76262B401F7FA5A1E68BB136771C41B29333B653602B79A2ABA21004E8A257DF7362163B6512EDA4E1376ABA1FACF04D1AA56C814000D718B5B504F1B9D2E627B8A678D0294C5E3B186A67C082B90ABB1C839232912C39C3E02717A65E24A185A5D96E99851EB538A4AB872148C2D7BC52EC4270F708690D0678D43C783CA194B4AAEB6F2156297355D7823E0F80890608768C65073E04E7E5B45ACBB1CB6446483E7C315A0A0C2066F080A53818A4EC0E4973F630F6822A437F6684FC9431F20A306A055F9906435172699B3CD0D46457BE26560F692864A97F80B493093270B5225980287F1F5711B355F9CCC018D670ED8BA64F10BA98B0068E7714074E14736087819EC2CBC960FE6939A4E9A4DE2045B53E81FBB845B0E546DE6B34EE9E91ECF0C9F74C569DEC949D3EA11785639126BBD45137021E9670735488E46A325342A2B4A959297816D1AC731CB501D628BC09083AB5C4DAFC09A36C7C70F2885A6622BB7162AA2C999927A1FB749BAE280237DB21418E2CEC419990288B813E80765B47E4C314171B849E570C7533CC5BB77CB9F10272926C382FC0796F39924B6971FE6B54638C4CF25318E146AA02769E64C47E4DA2D5264B282B32933D8C74242AA73C15875934E99D6C570572E03C54E47726E3B0416D3737A29624169778970E99DE64BC2B16039AE97C7472A41C9A6C6FD45BD7738CB662505BB26A307A2CFB9680F5CAC086F9BBF7799263C0B5367032196F1BD842534601094668A33BD339DB59746D63BA6007887AB750F5887453E02B22C3148BF6C48C806A94CB7BF23568789A1260C87AF0548C71881401C565268317756A211B6955ED03C49E0BEB46C4EA9FF7BE444932E61D464966BFFC96BEC0647AB34F2E4174B6E7542FBE80AB2BC06DFB802F691AFF147FF90332D5EA739216C18D87285C3A8B3732DB34F4CD985B65E078AFE6A735B53F4BC36D4762A3E45D1DBCB74 +encap_coins = ACE5E23F87CDB061C1821314F8353CFA96D69CF902A2866E5075A796B24594BF +ct = 72C22278F96655911148625A62833FFAC3CFB53554283B89C42BF5F1237AD715290C0F58C73743F0ACE534B8E27DFD2E053D54AAF33BDCABB6F263D1CD50B72B9D0D0D8884D9F2E6CA2249AECB32CD01507D2F079CB1F693E0536644078EF80003D26CE4F561B8669D0BDB5B7EF680430203E87D3C35A0D4536B9C9BB2D92594DC9EB31C1F85B6CF888A21CCF3039BE9D06220B247DDD809F125B8BFC9B40E484C5F6B3A3B85FC1BA1F2387C0E5C2DBB59DBF78DC22D00C0B5B0CEB360F222AD91935ABBEA835F0156C8C19EC6BEA067C03BACA54DF44D42D5B83035BDA668B0E2BFFF951B8B2E32573A96EA211EDEE9DB3F4F9141804D2B85A4EB5C727D91A0CEC961246932999ED8AB963AFD0C9D87D77CB18BE8047A722B40BC6D4C87DAB53258C97D0D67A67C52D699ABC9BCC2F64D5DC11FB941898CA5C26DA2F1A2AC21131929332DE37909311CB2DC67139360AA9C1DD897208518314AE476971BB9AC349F75C0E3C9E556CBD45F8B74ADFCD78B4AC6D117D7378F3B1A064C1414F2AD241654AB744AB0B1273A11A5D7571FD9F658CD0A4B764B0F20F344F4D69852C5379FA2F68F8C59CFD656AAAAC74ADEB986CD457B79B88C84C7E4149BDF4F8981C87F55CD7C4722B87BCAFFF11A2024AAD9FBACAC12342BEA737948020F287CD85F85F905917BCB4B5E6E89D399F6F8E7F203DA9AF3C04763BEC3DF069DE27D289EA97B83AF785262D3ECBD472B4A412EFF1306021C59E8FE0F2D8B70E532F3E4A31083ED4BBE5FCE67A9C1EC8007DE8798197D10D7B4AC935214EF5D4CC6AED1B76A0ECBB244D2C9283944044F563D04C5224221E12931232CA8027460ECC2ABE4C23CFE5CAA98BC7843DC7FEFBA3DF0C4BD5E1CCFDA91BDFD859D678C0C7474EF02F6EE44ADFDDA4EDD1525679C5FA82069F25DB8E4657D4456F8989D1CA5DBEF3A6C8102FB707BBB63D66AAECB4FFDF1B445A5B65E080CFA80542F786E4AC8E71F56BD4B69B290B5B31A2CE1268F1118D9C5BC20DE4860D17E0F883D70478C74B470C9946C28AC4D7C109826D068D6B49EF2CE4FBA229BC2219948280F7FAD9B1D4DE9A00E40EFDFFA5B8751374961A3520AC100D0F0FD779810AF16C40F795DFA43BE0ABD0F6C2BFF0B6D3B72C9CB628421332ECBD8DFB1047DECBFBD8BF8ADF4993EBD60AEF98CEE5B6D0124153233B181EF6EE6F50795159692B1B95F164ABAA755444A4CF2279799304AE11D23E1E55FFD385FC7B06EBE4C2C5586F89533A045C1436F79F7D5559D11FC793FBB503FF01158DE93B0646E9BFF8E22E711B571A6A5E10F7A6A123F45DB39A5154CB92118C917053807D24C667B7E6E043F5D3E10B25298B883677B9166BA8A1AEEC2B2D717A651D97699CDB55B95C1563716606E6174D7CBCBDA9D3AC81620275D377FE1CC765A2F20DFA911AA2FF3C0D8BCA2CE29DA946790C74E07E25BAD8DDD81ED62957CA59F6FD478FC9590238332EC785E9496F33DEED940C787D3CF696DCC0C767D1DDB1DAE5DEFB70884EB26D5 +ss = A3DB23ACE4A8EF0E43134949DAD1C1A89D9CC527115530575306AE97D59D0845 + +count = 17 +keypair_coins = B12F6FD965EA9C5B947DB80FC60C83D5E232DCA82E7263027C19BD62E5A6FF5511C11C1086F0365E9FBD525B3FCB4E4F169FB488BF0CBCB455EC098D49E903C9 +pk = AD735E9E838DA63AC7A3E1CD3E574DB17C2601D3927CC2A9D228A05F5C1E51A63634383FF5E03151F43C66A07BE9E992AA65CA4CA17B1E021E06B261CCAA89B12A4916A5A4E39826A94C86BCBA9FC7D65FF04549DB70B300B1CB280B3A41E82B6C8B0A4A3C5E40EBA59FD18F004CA3E4C15BEDF22E099C99A3D114EB0C5988BA02873B9581107A23E54A8E51AE62375A887929F7333D4D763E23B20A246785E07700BB16C531692531433EB6A6594D1464BCA7348022C1D4219CD8AA6614862C42376C3A0C4674181983F2A2CE8B7F32659AE87ACCAB6023938592E188A3C1015E98720EACC9AA837A49C4617A850C89E1212478F3C6BBA51C30A64A8A1C225274C92EA953872342A96CA3235CA7A9467BE55250796126B30694F71B2F75B56D84AC89C4B635118145C7B8967DE515ECC719E35804194B7EA9304636283CBF72339474CE1DA00106110A596725574747DC07B3F0C7C527ACA703CB23BAA080BB7A4CFC1009B3E5AA89659121E365FD6CB6FD15AFED70779A978B3FF50F915B6C16A350141721EFD61085189C3265530C1A17491B317031B4E4667EB8314AD34CB7DAA50566A9812377CF24076FC3DC748FD58865B1B02DBB831B25B7B7383579376FDAA6C8A5323230025A4BC66977F6A458374FAEB14E47F70E654C42C94A5FC5E386A57ABDE3F29349623E4DE92F900527C165870FCC26A2F95FA1850F2C940FB7B87686E253DD54B6706A84A0C70E3AB04CA8446EFB77609E9815A261AF5A135836064D44A485B5E850F10153653838E5874B76568516E847A2A9B186E8A50C34C2D2B0839EE58024211018B0A13FC781623CC313B30C26A258106941A66B3CD9481ACA7C7E3CE3202F098746C42C58F4C7DBE52FB5F606FBF31B9B5022E691CBEF1464F6942AA503147EBA081817AE28581ECDD867A96195DB320BD2D91C36DB01ADE9AFFB6B00F86C13E2E252C988300B05AFCD007470CC3022E96AF0768DBEBBCF62B53345B213C1544491F1BC75BA96BD73BE57A2CD6874511B44BF2DD27F4FC87C167815FEC59F7A043F699BA4D23400886A7214160C23DC96056BBCC7007A0049435C534B66971E6E5C90EFFA6645C45031C0C905B9887700181565B53165BAB605A51BCACA0DD0C308A46432794C38F21E04172005F4348211C63A40CFFD7C32BCD57FDE852FEC793CB7013E74504721F6BFB7637F73319F75B08E3C25777C969C6EA000C9B79D6F16A00CC4B00AD7CA4F8704B2E54D9D27524F6B80A6D51F85447B22C29AF0036C6BA486862C8B4FB03F26042A0E195A3E91BC303770AC844E77805E41EC6ACA920FF3A1A3ABE81B598C193723B20C8685590131DA89C0ACE08A592489791911C92C7E6ED55F642CAF918173F190B2FB8CC0CB2139FB6CAA259B5A4634CFD0A532B719903E32831489A2D390B4C5A5066B4AB5A3316441B162407096A0BC0342599804752FD4F21C45923705A7A04012AE4A900C01D584F9F41676C36681994C2F4037BDFB84A69A81FA561E5BE05777B571922988EAC714FF249926FC9CC4E93666E198308A434DF74DFF3C5A440948437A7C500582124574AE225F52D322D0909B5E946A5E22AC8F774F69C48B7874417BB1C0B93CC0A90D2A9640377808CCC2673495C4839FDA0D1038B27BEFE3D22E2B727A +sk = 87C0B4D44CC9EB48C126C5877FF87929B08485FB81E479139C3299C70C43C3FC8C238A81D4E61E62A33DB2499C866B7107D116B7FCB1B0530A7E758A8D487D11575079265B3158302A23732BD07330071BD7CB7199476C39B583A2446109E99FD5C95BE21A292CF37490906E84A82605B8455825C82ECA4B7E218644460CE581214C78AC4473688BD6A9A826217490AD791B7835A85935782847981CA97B6DFE88B63701CFBE3929A2DBAB1628155506C353639D153656B90C5AFF36BAEDF1B87DA5BCE2A108FB6C3B29E77DAE803A0DCBA48AC6882F6C1194E88387F30A47C27D02C37D988346A2A29584A55CB5D3C44C05A18619A4FD412BABC31A046221B3994C8F22CE272C9E6E948C3D043295F413349796C38911F8DCADEAE47351C15E9A1743EB65BDC7471F37FCC93CEC867CD4808ECB281FC17EFD004DD64AB432D664864B43F8A9B1E763529AE2C413ABBCF30A4A478A30A0104D802037C4A8AF01B534DD600E31A1630FF13B2F730924CB790166AF3B7322BAF4409CBBA500C1BB32894E65445F04E4B4B4933DE51267635037FAA44E2775CAA4212F4E0600E51069ABA662C86145E2117347BB1748D63E412550C004237CF02B02AABB18D8533D19B1A879A079B31D529AACBF5258483C80738B380C83119C12B23CDCBC7D027506F3705CE1316DD24594A4BD32D10382F8AB47478F23763898398D7430264203A76B0C4455237F3E765EA5516388595CE9E2BCE2DC2258B5B96C782865FB5354427A2D7806123B0CCA782B1C329411C6C133934BA4A959DA88A072BC6E2D63A007572E36B82C5643564BEC47BC8953D4AAABD146AB5EB36E33F825FB9CA01E223253C320F76C98F810CA52A2C604622F7A60378809A59B19680AA69EED2003E272B8A1F3C8A55BCA129640C5A00D187BCAF465204C73CEE66A2FEEA414F02859C9988356D26665196674D25E64CC5689965CFDB2C0E47A531CE32B3DAA9C649954342A3F62253FDF826AAFCA7DC85A7A8E15161435212D7A4A3BD4B57A2CCCA3506999D407D9B6ABCC97209FA97454B0974DC2C7CF3C3FA40306CD6239DC450536974A8AB773374504B9889CB42BCE4EF4606BDAA559346F18D087BF8B7F0D9B21B0C9B75B5903194B0744A1C47483488EB4C1CA2C83D8198CC6A523D9329F6582863CAC2951268C01770A8081C1C26587D7610088E6068E020E10472C825C395AC6783F074EFA8597FEAC3734399BFA247E4E1531EAC70FE49355E44B3BA5439EA1E65EDA94485FB710124BB968490F1C8B68E87A4C4682156FC06A33275B6B202AA0D508B3789AACA627F0F0C19026CEC38A95F7547D936B255BE7A7525C97AB4282714C32A23C4723A82298F2CE90FCB4761B9EEE869E4D3484BA2B222DC28BC612B1F41607CF57781990009F29617549C0B2179705A34916DB154AA3747867C3EF6A0693BBA5C1D42E14B3247B41059F92607A60AFCDECC1C6F3839DB943F5EBC4D340AABE21269095B3F7D9BDE9EBC21DE788794B63E1098CC2903A83CA2027E8BCB78B855FD56FCF16B45E47994AAC71FC815C521AC1A1B697A18569AC2816F52640CF9059C4EB95E6FA1B32B77BD7CBCB6AB384DE74B6A2708400E980AD735E9E838DA63AC7A3E1CD3E574DB17C2601D3927CC2A9D228A05F5C1E51A63634383FF5E03151F43C66A07BE9E992AA65CA4CA17B1E021E06B261CCAA89B12A4916A5A4E39826A94C86BCBA9FC7D65FF04549DB70B300B1CB280B3A41E82B6C8B0A4A3C5E40EBA59FD18F004CA3E4C15BEDF22E099C99A3D114EB0C5988BA02873B9581107A23E54A8E51AE62375A887929F7333D4D763E23B20A246785E07700BB16C531692531433EB6A6594D1464BCA7348022C1D4219CD8AA6614862C42376C3A0C4674181983F2A2CE8B7F32659AE87ACCAB6023938592E188A3C1015E98720EACC9AA837A49C4617A850C89E1212478F3C6BBA51C30A64A8A1C225274C92EA953872342A96CA3235CA7A9467BE55250796126B30694F71B2F75B56D84AC89C4B635118145C7B8967DE515ECC719E35804194B7EA9304636283CBF72339474CE1DA00106110A596725574747DC07B3F0C7C527ACA703CB23BAA080BB7A4CFC1009B3E5AA89659121E365FD6CB6FD15AFED70779A978B3FF50F915B6C16A350141721EFD61085189C3265530C1A17491B317031B4E4667EB8314AD34CB7DAA50566A9812377CF24076FC3DC748FD58865B1B02DBB831B25B7B7383579376FDAA6C8A5323230025A4BC66977F6A458374FAEB14E47F70E654C42C94A5FC5E386A57ABDE3F29349623E4DE92F900527C165870FCC26A2F95FA1850F2C940FB7B87686E253DD54B6706A84A0C70E3AB04CA8446EFB77609E9815A261AF5A135836064D44A485B5E850F10153653838E5874B76568516E847A2A9B186E8A50C34C2D2B0839EE58024211018B0A13FC781623CC313B30C26A258106941A66B3CD9481ACA7C7E3CE3202F098746C42C58F4C7DBE52FB5F606FBF31B9B5022E691CBEF1464F6942AA503147EBA081817AE28581ECDD867A96195DB320BD2D91C36DB01ADE9AFFB6B00F86C13E2E252C988300B05AFCD007470CC3022E96AF0768DBEBBCF62B53345B213C1544491F1BC75BA96BD73BE57A2CD6874511B44BF2DD27F4FC87C167815FEC59F7A043F699BA4D23400886A7214160C23DC96056BBCC7007A0049435C534B66971E6E5C90EFFA6645C45031C0C905B9887700181565B53165BAB605A51BCACA0DD0C308A46432794C38F21E04172005F4348211C63A40CFFD7C32BCD57FDE852FEC793CB7013E74504721F6BFB7637F73319F75B08E3C25777C969C6EA000C9B79D6F16A00CC4B00AD7CA4F8704B2E54D9D27524F6B80A6D51F85447B22C29AF0036C6BA486862C8B4FB03F26042A0E195A3E91BC303770AC844E77805E41EC6ACA920FF3A1A3ABE81B598C193723B20C8685590131DA89C0ACE08A592489791911C92C7E6ED55F642CAF918173F190B2FB8CC0CB2139FB6CAA259B5A4634CFD0A532B719903E32831489A2D390B4C5A5066B4AB5A3316441B162407096A0BC0342599804752FD4F21C45923705A7A04012AE4A900C01D584F9F41676C36681994C2F4037BDFB84A69A81FA561E5BE05777B571922988EAC714FF249926FC9CC4E93666E198308A434DF74DFF3C5A440948437A7C500582124574AE225F52D322D0909B5E946A5E22AC8F774F69C48B7874417BB1C0B93CC0A90D2A9640377808CCC2673495C4839FDA0D1038B27BEFE3D22E2B727A2006A70FA33FF4A65B00553734C5BD8CCA0A65EB3A115D96B8AA90F8FDC5F8F411C11C1086F0365E9FBD525B3FCB4E4F169FB488BF0CBCB455EC098D49E903C9 +encap_coins = 95BE66CAA72E47634E9748BD26C12B04E2193A69140284624D4E177F4DD66F7B +ct = 837A56867C492DE5087E6A9FB284BBA7C531E838FBEE074A0F91B1F8EF8BBC0824C52F37D36A66E13D0D4D7748E9CB31D8DFEDC8005E3265C0611C7617416586C8C3536D0A5A5F62F75CD36887F11277653256340ABDE1DDCBFDF314E84AE1A0D6A3CEC834E56CE04DF572CEA151252E4222A0D741696D21501DD04869C458733CA41D599057757A5046D2BE44990318DBC6C90DA3081A0401EA36A66758F69264F2979095EF1D872F760AAB37179E0ED1C3580CCC879F0D3CFADE5AB0BC6E71C9C736CF5D4C6B13EEE1A1C67A1BF65713C887A1BFC7C55BFA1C4E6125F376D43535DFA99FF1EE88CD144D062FB13ADABEA70FBAE0D82D81EBC535DF7BC541EF9C47E5180D64AFFBB06494A7F20DADAC7D76E854DB51EBA0731ADC4C21FDFE124DF477A1482D2831614D22897E4FAB4E6E5A0CCBE8D137A78C1E916D92E269F570AAE4B7C4AD908D67FCAF067F4A39B3CDD1C15489CBA46ADF4C964CBCF8740AAF6974C19705267BFED3C2F2492F7222C9AC16DC5A22C1191B49CB2E91C1859E762220FE1D3C4C7EB35A69C0CE0C11E0AC564DA3A01DC34E114E11A597039587E1D6359DBF4FBBB2368840B27C03700FC6CC54F44B2CA95785BBA9424A0268654B1874FEF93175F14296B60C67DFCDA240CC4801F72A87BA93D6400CE8DF9F6034D67C3A71C6E92A7CBD2FE08B9C1B1C20F90679B04597CC0E6BC8BD229FD583C8279E8C7817E25A456852211897E138E44DAB6AE2C32C47A755F8C7548F2BDB801871A6AA2D5E006959C080236806498E4380E2E93E05007B38F84F7FF51FBEFD3B77A385AFB050B7169D679FE4398174A60313E3777399CC118DE1E86BA8F3A9181F0715FDBCCC65D414F5D253CBE6B8B009B3F0D9CD3F10550EE5F98DF64F54E69B959EACCBA812D81DECDA6247F8733A38D61EDBEC24A93E88092FD2DC71337EB3195C74664C08229917F2EF40E02A984360AADE36F3584C77E37D63041E0875AFEBC0D91C461E707A2773F1CBF20924F83A86244DC9A7C11B495DBEB58F5CE25269F0E08B42F1333F08181C91FE256128A6635EE2D2994F9E0D7FF05831267B27B3AA08FCAF589ED5B037930B0B8B9A706B5680C56BF5EA9031FB168BCBCAE6C2E7CBA93B1064A313A41E4227D2042272150AE04D9A6846D0E7D2CB9D1ABB4AA79F096B886049759A958FA8C4321968313D1F731AF0C5DC602206F23E05463967B3C78AFA4962FE4173A218B88DFB818BB6EAD94A4A606184A7FA411A7EF95F3264FC88DD33C173CA9023A18477B3CF63974EC1D83B916CFFF97C21E8C74923DADB6B130A23536D13584E7F98F6F7AF0682A5C78577B0E808FE1BEF0EE399B607E6C65C1D7F4B4E701FF94E516E752ED8C589AE1EBBFEC8A2337CE5ED461611394C583F0647B869B85123EB16C53683753747B353654F7C549320E86E84F5D1DB4FBA6FFA470BCFE014591063F215A52C3CD86E97838F6202372FFD42125354C7A0125F05D222FB76815C20A0EA2C3F5DEE8170DDF12835B65E4931963D +ss = 88CDB3F900436D49FE112A0223D3190364F94A6740D073B17DB7938E159C6E76 + +count = 18 +keypair_coins = 9F52AF92CA165FDC38788F2B59BA02E01C8281FF7C1E60504688043A5FE814B0284837F7EDF4788F32E757949CFA69DDEE079E2E00E439ECEDC8512097E2D2CE +pk = E0B9190B548BC164BB826874C1800980DAB529866B951C01C20CB4AD363C681336B13105FC338B1788AFBFF321BD981974C33D98A35666EAABE3612E61839D6AD65490D71AE992111719AACF12A060648667E34D09343D93DB88ABC69E0E098A63749BDAD39F8C6B93D75990B0731621CC04E6E2061E93CC4B51209EC92ABB303BC638C52AB2AE40D746CFCC43B7576A240540BF410C14744F80A442D0555D474192BCD9B187A56691B63965973C7793668682852F91CFBCE70D6D4832A1855CC4B83A847734C24019C508B2D29539FD1A114F787285E197B51BC092F80B559446F1076F02E984A1B27CAE7AA1D0B50967939AAC74CF2335AD421021E3225D94FA3B09148E60C20E8454C68A8022043206B7BB1E799C9B69286509A188DB29A9EBB078420A0844C858CF4B11F9B4959934002BE0229E714350451B9C2775A5CC8C45B07E121290EEE32A73D46F8D7C55311A8C29027356139F153CB405FA14064C5C31060D7A964B33D76BCD4809D21B34A2F7806486BD2835B7F871164AE496D4264F89FB4EB15B7E5A7232B6C68B11351A41B09BB0C92C8437534D2B4C0CA2538023B29DF93D93C98136780FF6F82846CC2868664322AB28DCD7279F68994BA5A5ED406D4D717D16C14DFDDA58DB1524F7C53F3CB170D45A411B07CD64F001DAA0AD1BF63A11550C0C154D20F5096DB44D1AB0A1C9D66581891A9314C18F778330A0936E7A2F3E19C18F7BC87CF078627770DFC5A2FE71B27EB8276863C3295C11E08703EF4A4FF6B3A1871C7B42C43A6EEB6BD1526AA95B7DCD6B38EDC207C630BED1768CE9505544E9053E5C8CBF6A181A1A0F48C8A98B59C3ADEBCC3A5C99E61588834024CFC71C9DFAB1DF558711B311404A739F79B45B1A8A7633081A27A08C3C16478C9D24C1229723ADDCEA225D39BDE7851345B18B1B08254181B01623347A9A57F5D902290B10476083949556663309059815626C3CCB5302B978B2CE82AF231934FFC7732352B990B21B69210F2ACC048387B95C346974C2181148078154416E08564D664DB3045DBA82C9A7934DE51AB5C1D7346A391BACA48209C8C7235309943C1CB9CAB4771C7EAF59321B510D430C88473AB16F54AE461A5DC613C6FEC61A5E899552E835EFF57FC34B7992755D178A0365C52B3F020AB40020CE21B45717654634606DFB2917FCC266193E2E5B2C4559CC5652AAD1121CCA0711E26C23EB33C1F7D389F2D742F384725D3268F8159F8C463585998289E58369FBB883CAAE21B87139E52D7EBB92B011CBE6426390458247C45F06F2519AB35B35675BF93325351617AD3AC470F73D3D3985E10277A647C96A6C56CC2346563CC496DB232FD742AEA3ADCFBC506CA8CBADA7B040A04F6E329FCEA77BEC0683E1A87C396113639159D9CA52A5A5484D2839869A2E80557A6BF7CE2EE295A464AAF835C542457D021C65C2B2A457C771FCC47F8B1056C8B7AA61D1843A40C4C9B083269B2E89FA3BA5959F89972805FA4B46E35ABEF0C57D875C54804DE77071F1219195BC8B4F7C18A19A7953573E7F4157CA03BE2852461A784E736110157BA3F83A6947AAA09E9BCAE730B9B212BB837627293A485ED6B42CA1CF26792676C1F4BEF1609E71524B877F53FD3133BF71AB13912BF37C2CD7A359EAB035CD +sk = 4DBA785B32456E16A8E9A20FA7536F1B4555A9B403A09738657A148361788D3C358A7BABA8B4C58AC979C4F786E588AE245CB0C12C284F848B89585F76892FD65CB906D39B385A04D2F5B2154ABD1E77AD9501ABAC73237780B33C601FAC50BA3FC07E8525819593B7D7E69FDEA46F14F1128A475E4784AF38985501DCA6D20BC8DC1C5C7740B33804358F71B6E97B2A0E7350F7608321736083DC54E0253C6E5C5665D0B7E68355D4E98DAA753C1ABC1429B397DA773B043459E5AABD093A5B0210502BC2CAB250041997861286924AA0A190307431719588CC2E6FB68711C964FC20393C73B7C967C603120A3CC11B2EFCA3DD6616D0E2C835FA92946A40C4CC2F4655301ECB09424286B3C7A07AD3C6EA37BF6132AAE2D9A335E34B6C816D93CC7EDE020AB723B272B70F494834CCD93BD7800BC39919DEA4BE4C585F827A4351E233026760DC83377329CCBFF180A562AC50833C0F861E795C00EE74B584F693222B28EEFCB445F19B06154ABD0110C6A017ED525B5FA30C64E60663573B8691BA68E2BC580157F1C66EBE388AA2747C50919AF644ACD903A801A5C04A6A2EAC686C89835CF59A791AD5642274A0F78244491670C66C9BCE24BA5CF6B86967AEFE6728DCE8973FD29045DB844DC80022297CF530C8ECA4808F603A90A840AD70A803E6A0BFB44B38616816073C5D7BA26A64048F81A3BAD3A0C9CB0672C7466E38824529298A7C0D82940540C312F429411B403F64E419CF720E1F73026184CEE538B27CFB91F16186DCD3904BA6A34254155B3CB3157937D5618568F46F283C7C0E88696324A4FD77C3E6FA5B5DC0A13116274E5792FED69EABA973730A79878103BF63934D179143DC23ED39585D40C06A99AEE0F4462F123B8A6B539DEA9E05117B08338DD6754398E7496F612B4D892CA54A13EC9B2DC7022CF779668809AD6DB97A6E8B15FF0A862E664D292C4AF549195A23C19E2B9FCDB9B4A5B9AE517873CCC644993196DE5C2716D58D50E7CF11558F44A16580C980654C8CA581671121CB2F8CC6F90529C9754CF0700B30943EEA1A7B05F0BC8FDC1CF776B0CF2C2EAB927DC83197A4071DABFC07F983BF4D2C613E087976ECCAAC031B88420CECEB6DF0350F04BA61AB39CAD4C6B2B32503D773A34514B7D5BBB9D5E7BB6DD9AB5BDB8F34A9880C49AB5C40970C435508E26CBA50705C6538686249D344BDB7C820A5C8869B371B8FE13922A5AF390BBB7B809C392266541671C75CC2B7A7248D0234FCA16DA64265E5C70257D770D2E9982D5A1C6D19BF0BA48B53AB900FC8280C754C14774939B83C63592A12F35D198194679942EC227B46CC8F353A0547E929175C3585107239AAAFCA151DF3C835E770921E5C9B134CA7E27A18C7656BFD6A4FD2431CE1743576E575DBBA8905F4CC38108E3CDCBF0155B5300A100958AA99940BCB473EF64B05BAF55E91952C46851D313B0990EBCF2148CF28130CF49C8D080841FB81384E73367C792A11099F5B898416946826714E252457B23A3A1E33A36EE2612372CB2C04030840A87F96A31913A428CCCDD2817B38372DA4637F46044F2218C28D525A57D9C0CD2864FD43AA5C9A003A09A35BA786A7520CE0B9190B548BC164BB826874C1800980DAB529866B951C01C20CB4AD363C681336B13105FC338B1788AFBFF321BD981974C33D98A35666EAABE3612E61839D6AD65490D71AE992111719AACF12A060648667E34D09343D93DB88ABC69E0E098A63749BDAD39F8C6B93D75990B0731621CC04E6E2061E93CC4B51209EC92ABB303BC638C52AB2AE40D746CFCC43B7576A240540BF410C14744F80A442D0555D474192BCD9B187A56691B63965973C7793668682852F91CFBCE70D6D4832A1855CC4B83A847734C24019C508B2D29539FD1A114F787285E197B51BC092F80B559446F1076F02E984A1B27CAE7AA1D0B50967939AAC74CF2335AD421021E3225D94FA3B09148E60C20E8454C68A8022043206B7BB1E799C9B69286509A188DB29A9EBB078420A0844C858CF4B11F9B4959934002BE0229E714350451B9C2775A5CC8C45B07E121290EEE32A73D46F8D7C55311A8C29027356139F153CB405FA14064C5C31060D7A964B33D76BCD4809D21B34A2F7806486BD2835B7F871164AE496D4264F89FB4EB15B7E5A7232B6C68B11351A41B09BB0C92C8437534D2B4C0CA2538023B29DF93D93C98136780FF6F82846CC2868664322AB28DCD7279F68994BA5A5ED406D4D717D16C14DFDDA58DB1524F7C53F3CB170D45A411B07CD64F001DAA0AD1BF63A11550C0C154D20F5096DB44D1AB0A1C9D66581891A9314C18F778330A0936E7A2F3E19C18F7BC87CF078627770DFC5A2FE71B27EB8276863C3295C11E08703EF4A4FF6B3A1871C7B42C43A6EEB6BD1526AA95B7DCD6B38EDC207C630BED1768CE9505544E9053E5C8CBF6A181A1A0F48C8A98B59C3ADEBCC3A5C99E61588834024CFC71C9DFAB1DF558711B311404A739F79B45B1A8A7633081A27A08C3C16478C9D24C1229723ADDCEA225D39BDE7851345B18B1B08254181B01623347A9A57F5D902290B10476083949556663309059815626C3CCB5302B978B2CE82AF231934FFC7732352B990B21B69210F2ACC048387B95C346974C2181148078154416E08564D664DB3045DBA82C9A7934DE51AB5C1D7346A391BACA48209C8C7235309943C1CB9CAB4771C7EAF59321B510D430C88473AB16F54AE461A5DC613C6FEC61A5E899552E835EFF57FC34B7992755D178A0365C52B3F020AB40020CE21B45717654634606DFB2917FCC266193E2E5B2C4559CC5652AAD1121CCA0711E26C23EB33C1F7D389F2D742F384725D3268F8159F8C463585998289E58369FBB883CAAE21B87139E52D7EBB92B011CBE6426390458247C45F06F2519AB35B35675BF93325351617AD3AC470F73D3D3985E10277A647C96A6C56CC2346563CC496DB232FD742AEA3ADCFBC506CA8CBADA7B040A04F6E329FCEA77BEC0683E1A87C396113639159D9CA52A5A5484D2839869A2E80557A6BF7CE2EE295A464AAF835C542457D021C65C2B2A457C771FCC47F8B1056C8B7AA61D1843A40C4C9B083269B2E89FA3BA5959F89972805FA4B46E35ABEF0C57D875C54804DE77071F1219195BC8B4F7C18A19A7953573E7F4157CA03BE2852461A784E736110157BA3F83A6947AAA09E9BCAE730B9B212BB837627293A485ED6B42CA1CF26792676C1F4BEF1609E71524B877F53FD3133BF71AB13912BF37C2CD7A359EAB035CD631E1DE2556AE65D57E600C21E8E355A4ED586D667177CA0B7545CB5A23D669F284837F7EDF4788F32E757949CFA69DDEE079E2E00E439ECEDC8512097E2D2CE +encap_coins = 53D3FC9947DE6EA6E5B4B5E89D236258AE933C485C2AB4B1D6DB8282173A7C8C +ct = 10BB8ADE6CA719CB35F0F2AFD65B262B42DD1B2F7B5A1F7DBFE636E085EAAA10985E6BD32FA1A859F62C72F33EFCD727605C6C0D89AD66B73477DBDF3FFD0C8780DBEFC5BBC73BBF3A8EA60581773F63F06CC05DD0A893295E23FE3425B47DC94BCDEF059AFB26D8C8B4C6A7A50E5020CA7A303DE93E6EC92C1AA0D04B553FC6F759223332686ACACB096FD10E1DC7926DB74AF0A1FC00854B63057C786E6037E93F4CD6FF5E548A640C0E84055C805DD79BC041E731E1F29DB1FC6C90A88399AF4AB5BFD81691FAC1E36B9189B9748FEDEC5793948E13E6D575E1E3CC9A170A86BBE9012203ECFD3A1047E660BD44452DA022EA00584A5111267E8726B00945E8E29D61BB8B601342D96BF7425B471115073EDA82820181B05D2DBBE462F684E9523F119FCAE4E7F274165D548E1A2D521511A8F2C743A8FEF2FB309EE673EB1FB37452B8E0451A16C0AD45B2FF4E5AF441A944B8915378D3CCD35A5FDF26590F896390D3B4FCC920C936AF6CD1C4AE62EDC0FBFBEF74C04DDA89749E91770BC0CB6534986F0E6EBEF7DB6AD54667ECEAEB1DEC17E447F6DBB90129376122130AC95B6BA81B9A508B1E3ACC1E2915BAF690E00F0C843895521813602DBBD3E688E8DFF6B3279E5BC732B7D3CDDB1FB915DBAE938F6B5A8200E61DE9EDBA6C5C8BA24CAF15389D3079B87C7B534B552B266BC58CF5E9CA693069CB83B8F293D27AE9A7C4E121E1D77F41703C9B961E23A53871099F3C4FC3B2B0D8CB61B25DE5B03AEE73E8037A2EF412C4F17AB2ABF5961BD054D3FFE19AE6DC54138D8A0FA2B9E0008EF820E0DBAC0753F60C1832BC0928DACDAEF53348C8A185DC50797BA680D73A39C140055C6B6147570FD3A6CB5B3C20A848509255DBFF8E9F922BCAB848E9A3EC2D8CFFDE83D3DCC5757A2DC5B22FFE423368CDCD5EF3817AF3D05AC1C41E42E22B2606677EB7C5980C97253C3303CDAA27C1707EC2EB7E289CCC80E10EB7DC64A97EA3F6FA549F1A6C7AABB156486EE43C378E00A1E81F6B9C9E42947D26F7786755AA105C5762AF313C9BD64C4878A571E57A4A585038E6E31F5F780D01F24379656F63437C1881A86FE705EB13B3A2BB3C3E94B574569E023AD8463B75D4E7CA11CC9ED13EEE9E406FF74300390AFBECF483AD76AA9FF2530113C4011EEE76CE5058E22339C53F68ACB67DC45A9B57397CBCD825337F3C3365C1A1EDBEA863BA1AAA8DCBDA73A99A846AAB390D6738F069ADD17B54CE21F70CDB59098490689F00D49C5AB4A1B4DD60D4D6E5EA74BB809B88C8B8C6107B3083A983E257A6D11BC085B19EEFAF1826BEE0E9806698DF6ACFA774EBB231F403F882E1736243A58CDE625829FDCC44E3A58DD71512AC17E6D0326319F0925F2C2EEC0FE88637C78502D3C334064216483C70B5F5123109D00152B371924167F5E88071B0ECB515DED270BD8C0AD1D336938251CDB3FCB2451BB8D432ECBA65AAA10CABCEB463A6A364FE70DF618F88C7295DB73CEF947C32BCB3B688A47A481ADCC430 +ss = 4D363A3200134219189C5E71DFD606B675DB8FDA35A845444473B675557DEA0E + +count = 19 +keypair_coins = 851EA90FD3854CBF28FE39FB81F68E4B14345CF0D6EEE7EC4CE772513DF8410D11BFE66D2D15C33524F478F9A6BB3AF2A83357197C834D399A8625F761529BE9 +pk = F1390E49F3B488AC39D0E43292B70042C52355EB48B841887EA256055A688FCAC5A71C896414CE75F57BBA12967215C50D4B5BE692B6DCD1AD2190A3D785C19E283F87F784A03C8F52A23E150734FDD7BEA2AB6D122C928606BFB60570BD696D9676397AC3AA1D062EE1AB3922A2C9B5B02D14557164149C62E8029B139E6950B3F8ACC9E8C30274B69926C1658F7836F479C8CC70138B829848C7698B179643B7550E9193D6FA87350503C2B69136B08CC298B5C335B1AB95054D13C9260625E34C6C2FB8186E1916C137AD9907C8B2AC9D88FAAAA0375236751A47918F96477B7EC01819F8AE1D72951E21608C87532A9428BDF4CB5658440CB025CE3B271652961BD935624B9EB70047E63184B9503ADCD057B6744FE42908CFA325E401B9D0DB5ADA201F5D64350D392C4FB842823895E15720DD7785C7F5986F15CC2565A71F6CA11B854A293C9CE6C9A1F4AA3917130308F2A2ACA964790BAF960AA12DE3334D146E64DB81EF09563C9667381424C809441EE989EEC93597E7C5B558A89DFAA976F6934CD18B8EACB6F2F54E8F748E4BDB69B0764FD59352575066DC242DC0F1356FAB4467C8064FD23F8823148B77A4ACC642EB2C181FD5CA251B323561191CB15F2FF0784900A15F67014B518453C4C3663528FFB53271E195C27533FEC8C3B159AC1BF39C6FDC69DD5A5FE5872FFB6B2271A09966A5C738C48E63E141D65315051610F0F5588AC97F14100027B144AA23774F199D0D9A122953ACA8782A4136820FFBCC1F2692BB919B674AA1F4D679E8418E8597C74D60C5C287CDE6D44492411222636B03CB661AD66FB442193690A5F1D6B80A947442A46BDD239FE3989E6DA86949474E395056A5E6CB42B25343A7C73B650D843527444243852518A9034B9EFA7A6BB8505BF605EC238FFBC08CBEE35A94845D7319144B381819D0928C27023B727656EA843140649C03098FE74C717AABE91948EA7698DB0A86D34296B5E50DC0A9949C8BA07F64CE60DA2B6E62458DA229D52C08B9B696A124A8CBB791C0D255D3E4A69ED2C242000DC6476B4555552DEAB63EC19FE8783151DAAF78E561E1844886D4418E7510BD025299B1C83C7BA22F63335B9823043336DA897A44FC6A28B44C68A49B436B0DFA406BE642A5BD303BB0D633685364D80440CD7189B6B34F6535101979BA9D251474FC91BF2497670BAD0DA78AB3C13EEAAC864572A2F919546A57C719BCABC9DC8215B492D53118C2D379E879234A700638370A530577700982C4334673AA5D71DB98627384E8CA876E24B5A31575EA3C334D3C7D3ABB6D8891B4904B8F5DB93D0531CAFF25BE53E28C45C94758E309B83ABC2BA66D98D3BDBC53B7D06592F2712663C777DB60AFF496A217E82D8272C3A218AD8C8B04AE7C66BE35C08E3A955FBC18EDD07E8E68A806FC3FE218B87F87BC332B86C2625D8FF01C9FF6214B75A20CC465F847511030B47EA664A75B3D4ED9038A9C747C6872DE0A57F3B76C60585ADE64570A21CF8548A5BE4996BC22B3D16A7BBBD20149034764B820892B9394581697E39F9B35077EAAADB06702968A5E5418983110A97D4749D3160DDB2B9C587767FB56B9ED9BB3D91CBEAE141769C2128E0ACADBAFD72FCA96AED457CAAFAF51DC8C30CEAC70CB4621CD4D7B4C +sk = ED55584416844E1CB3C75ACFB3771013D1AAF1FB3CA8A5B718A8CE02A15AE26BACC7534F8B084A665B0608780E532A161686B07FAA83884C6A0EFB490A8A3FCABB50ADD21F58AC43EF4355246B1A661C5937562FA6067E7AA66978E4B36EA1431ED41E4E4282D4003D5BBC06CDF7AF225B6560C44F43A278677ABBA8C6B79741B3CE7C0D0769AB407C9B39C032F0E42D1866ADDF2115E2F3336384C61CE9319CC92AC1350B264CBC4059B94372631C8241CA376AA6F76111537018C01D1346019D628F1F00CDF828B48C47CBF958989B846ED893BB0B6444BC2A35C6443F77D757A0CC957716373460A7A94151CC548F0C78AA5A323581C192D00B4D96219806A04B1A0AC829002B7FCBC8CBF8A8E3ABAFD3DC2164D03A24C19D50133E967C7668AA8B81977B400067FAD2CA802A76716B95E3D28BE5603E4977C33D3BA5DF2446F6265827464641204ED972286B58567BA129BEC0CD6F1644C4032EDD6239309AAA259A3D997B1ECC535F17D773AB1C5350E3C82C600175269700A56B0D4211DD02C13D4BC7C54238F40163441702613A1DE34BA9B0B42EF0A29300098667E8003588577E64B031139DD2180DB113623FC4B74E946EEF86A1A6BB52764C6C12911765E37A685400888AA9140A3ADFC48712688435258D56337FB8D8A9E1F34BD2E818AE3B7480F500FB6BB03BD50019C33BD37B060BC2C45E8A2267D18927C0AF66076619889FF6B1769FE59E5F131F5FE40DB2815BB6886B7BCA9DA659935DB493DED9A808157E4151B04C153E673333424B7AA939559E4CA973F7644A813B8D9C1DB8C87CAC6365C0E008E329403C69490976CD3F006F3138114A6B3E6B3C4F054451E5BBCB7D232F285A2EF5202B81740053512F8E4B33FDA87EA61042D1F9736ED58E9047C8744735A728B636DBA7ABC33B2DE0B1572A28B23C25A8668CEF9291990A499BC8935F955E1CF0301A65BE870B7F01F06099192431F3436AA5AA6564C4689C1D2E11540355138C91BA6E0182B6DABA0E7A177FF320C6B04977D47DA0D51672EB96CA054AD2D4A0F72930061775592AA40E9C9418CA611893044460495D8A46B242201886CB52E38D91D25D7FA8262290628D91323DD2A51F8C7A33487232F4934133117699028381751D8594FD94910EE4115389C57262BA579220567A7B5B42441A641FD6630D7BC06802878C76BB9EA576965EE45ACB90BA549A01B6E873A1D8C741662067A116E64C8897E83204170C9BF2676EF60C20F3450804C7A1B80725DA17F9DB18F715B7894CCBB53321CF01755D168D19A96356EC07EFC62D9A8C3A8FFB15500433F915137AC42A474B8E43F283BDB2B46CD62D509A5AEE8CBE23B74CD48079D82293BFC9CD931289A0AA27D8A930BEB2000ACC2019E3CCE107A18E9C4408C516FBE19E45459ED77231851B88B6B73156EC820A4C097072C2FD61C83D23413AD510662894DAEB238992138F98185042B53A637AEFA83378B026FA7BC314516B25D343F0E0AA7772CD2DA27F8B39A8BECB44923792A7D586631B2AB963AE537768E45961F5F96CB42320E75738A964168B9403D5B3591AC5679A61857C818B2A486BB299019C7B03BEB50D2D40A17E84712AAC01F1390E49F3B488AC39D0E43292B70042C52355EB48B841887EA256055A688FCAC5A71C896414CE75F57BBA12967215C50D4B5BE692B6DCD1AD2190A3D785C19E283F87F784A03C8F52A23E150734FDD7BEA2AB6D122C928606BFB60570BD696D9676397AC3AA1D062EE1AB3922A2C9B5B02D14557164149C62E8029B139E6950B3F8ACC9E8C30274B69926C1658F7836F479C8CC70138B829848C7698B179643B7550E9193D6FA87350503C2B69136B08CC298B5C335B1AB95054D13C9260625E34C6C2FB8186E1916C137AD9907C8B2AC9D88FAAAA0375236751A47918F96477B7EC01819F8AE1D72951E21608C87532A9428BDF4CB5658440CB025CE3B271652961BD935624B9EB70047E63184B9503ADCD057B6744FE42908CFA325E401B9D0DB5ADA201F5D64350D392C4FB842823895E15720DD7785C7F5986F15CC2565A71F6CA11B854A293C9CE6C9A1F4AA3917130308F2A2ACA964790BAF960AA12DE3334D146E64DB81EF09563C9667381424C809441EE989EEC93597E7C5B558A89DFAA976F6934CD18B8EACB6F2F54E8F748E4BDB69B0764FD59352575066DC242DC0F1356FAB4467C8064FD23F8823148B77A4ACC642EB2C181FD5CA251B323561191CB15F2FF0784900A15F67014B518453C4C3663528FFB53271E195C27533FEC8C3B159AC1BF39C6FDC69DD5A5FE5872FFB6B2271A09966A5C738C48E63E141D65315051610F0F5588AC97F14100027B144AA23774F199D0D9A122953ACA8782A4136820FFBCC1F2692BB919B674AA1F4D679E8418E8597C74D60C5C287CDE6D44492411222636B03CB661AD66FB442193690A5F1D6B80A947442A46BDD239FE3989E6DA86949474E395056A5E6CB42B25343A7C73B650D843527444243852518A9034B9EFA7A6BB8505BF605EC238FFBC08CBEE35A94845D7319144B381819D0928C27023B727656EA843140649C03098FE74C717AABE91948EA7698DB0A86D34296B5E50DC0A9949C8BA07F64CE60DA2B6E62458DA229D52C08B9B696A124A8CBB791C0D255D3E4A69ED2C242000DC6476B4555552DEAB63EC19FE8783151DAAF78E561E1844886D4418E7510BD025299B1C83C7BA22F63335B9823043336DA897A44FC6A28B44C68A49B436B0DFA406BE642A5BD303BB0D633685364D80440CD7189B6B34F6535101979BA9D251474FC91BF2497670BAD0DA78AB3C13EEAAC864572A2F919546A57C719BCABC9DC8215B492D53118C2D379E879234A700638370A530577700982C4334673AA5D71DB98627384E8CA876E24B5A31575EA3C334D3C7D3ABB6D8891B4904B8F5DB93D0531CAFF25BE53E28C45C94758E309B83ABC2BA66D98D3BDBC53B7D06592F2712663C777DB60AFF496A217E82D8272C3A218AD8C8B04AE7C66BE35C08E3A955FBC18EDD07E8E68A806FC3FE218B87F87BC332B86C2625D8FF01C9FF6214B75A20CC465F847511030B47EA664A75B3D4ED9038A9C747C6872DE0A57F3B76C60585ADE64570A21CF8548A5BE4996BC22B3D16A7BBBD20149034764B820892B9394581697E39F9B35077EAAADB06702968A5E5418983110A97D4749D3160DDB2B9C587767FB56B9ED9BB3D91CBEAE141769C2128E0ACADBAFD72FCA96AED457CAAFAF51DC8C30CEAC70CB4621CD4D7B4C87F3829EFF562789B3E19FAFEC92E4B5F95B45F3786F12D9C24915CA484A49CE11BFE66D2D15C33524F478F9A6BB3AF2A83357197C834D399A8625F761529BE9 +encap_coins = 64E3FBDF8D2349A497B5C9FA3AD3F7396FC1A9769175A336181C42E95C4889D1 +ct = A925E35FCB8711E3617D0EDAD1D21AF974700F833148396B27835AAA6AB43AFEB501B65278FF1C4A37A2AEBA9AAB52B267FF1CF204E5949CC7EF735CAE730662B89271DB739041BD05C0778CD741E7492EB5D4671BA56C27A3F3CE9DF46B4B7230EA113FA75A53CCF8F42C01FD13A99CB44A91E9B77B227F2E2BE7B424AD07B0C9CE4BC12500949D428BDE8D305BD0E4E98F8AE63ECCA26610CEA8FB01217EDBCFE6E3B6FD3DF04F8F4C1833760975D74CD9730410649950098FE966B7A750F732DA6706274C5D3794E5BA443A3D528CF6CF169FFA60B003F048597B879E497721F50C9D62E11C4E4D278CD35C374B55E44FCFCBF21ED0683255F2E37B8995AC8B0725004207730B0FC41643FF2582CF502FB0CF51BFDBF5F6C08201BAE44C3AC8A749DC8FAE4C29F40A5D3143F8E6792C1048647DD1D49FBB45490F3544AA8FCD6AB5AF449FD1171862922BE34ED6354E0D63B36BC654CAF92191D2A2EEB435E7BA8D6919EB8543E94B214610A988E4056063B5EC3AA3D8EED8BA7B5B15E9FB4708E0AF00C9CA34E2E982F66C437D07CC99FCF709AEA0D28568F693F2C4ABFE0165EE80634D2B55C45CABB20BA657073FC8DBE5EC66E8B1C250DC81411B2153ADA7D9611D6612C24FC1419338BF7096A89F0429041FC2C1E27262E55969D5B17984451726A12AFB2ABC193D9D6D610FAA9F80669A5D9E0A170B50A79ACCFD3E1F621CB6FDD95A3265B29130696E72A8D2A405D079583FEFF59181C3B11A00615E608FC7832E6F7981B1D01A260B10D936EDCCFFF95F6BAF5C09F43F3FC90D2B22ACFC9FA2046A029E217224208039FFAE194E7C76C38230322F12881E3F319C41349437ADC05F48032BBBD9391B9868D6177581D9BDCA43420B7E03E3A0240FBEDB41484B2560FD1325B9D4A2FBFC9D8A6768FF3DB7BF2F779B2157CA39DE367E168BCF55A2FA3DD813E33173377B509204BDBCF4E25D20EB66A211CD1A2457E3F93517FE6409680803599A0BEA22450985110F6C138892758B13569CC74BDF22348986B27DF705E7EA84796C01219614259DB57208DB6E9D932E7C94BC783F32250086580F7B5141888A42EAB619DFD926F95DEDC495D25E30730B09AEF05F9247DDC12041096CE8DAAF3745B0138C37E0E2037A6C8F309BCD085D80052B5F4A4CF71E49C073A9EDDCBC509CCE026F8DEA0376C343372CA692F5E35451ABB2E13B70C795520EF24BCB5A93A057B8B8BDBDF2E74DB1226F319BAE6F8F702BFB1ACB3E7642B87447C9AE693719AE22CA7FDC568B0426BF80E6F62216B46FDB2C6A52617FA45B277E41CB113B1921D4829F6290863FE28D04C9FA89F634C5238755333053262AE99A6DEB882EB2052CFAF7EAB293F178CBBD05009E8A69184650DB6A5AA480D973A296CB75FDB7EDA118B58A0B23A41E60A325BBA67ADF355B4DC3B500D2EE7FEE2175A5062CC303643658ED70D1D3E57D9C3A62F92628DB9DAA47C4D3E76E7E4B959D83215F6D8EF08A5634C00AB2A3AF2AC7F964B0670075ED +ss = 54CAC3C7B8261F42B7FA913D6FA29B67493BD969833B2734636BB99DB92040B7 + +count = 20 +keypair_coins = D304C9389CC973477F169788ABCB9D511F843219D246A9B587822F422A70C23810EFE801AE61866A7109F40ED932E67B0AE9E966D1EC5F917E4A9F31A27EE13D +pk = 2D7B0180596BE297A4631ABE0D48A046DCC99C8912B8255FC45592A2A61230652BC7C450A674CCC3ABB27395738D177E7579AFDCC30E74E7C7B5AC5DC235176343CFC4920ED8D9472E13C9B36A6D38BB44756BC31FBAB62893656DA065901303700A14B2F785D98896AE97953BA358FD53091012B97498CD7516B0E1898E2F6803C5A13D70F5BEC346917249940BA35E3EA954F6CA13C343A09CFC02D8E66852C1AE0FF8B22E7424F53B1897EA11268A6B866C09EFE8694031754ED1A2A147C0086283284133AA6C324E0B0570469F09E0901F25213FF9B113147990B54CB241268E0B6C7A3A90C638B7C483C71AC1344BD65C988736C4756E0B71111BF5B810FB3CC4187363A94EFA020DE1C3CB9A005CF472BEC5685322FAAD5BD1CB0F240458B56FCC5A6167F22577565DAC1BA9B984C33C348BABB70506B87926540547389B805BA01E4443B5D60B9A407F8B060FCD96C4B717BAAEB72400EAAA9853B962E8A0C8D966458CC4CFF31E960C447C6B205629419478360CDC945D6B9A55504D853C1E51364E7A9AAD82B64FC37A02E4139B9E6C392DC83C04005F6D1299D990A89ED68ACC31B5D1D224F2C8B3CD5280A12C6E088CC2F9D3C59AFCB9FEE458AF5135C9B4B477D878F34723E3912189D2764F9366AB8752C9248A5684296ED46F404A1739BA72D5D652C614860D41898E45B72BF66D587089FCF49E3B94CD26999D7539C32BDBAC0139B20988CC7B578ED880048885355F193DDB1690B9092AA2A86AF03A41797120BE84334EF25C2E70BFE8E0A658F03435B65787F38BC9452DDC584162955F8B8560991C407FA0C12D770E80FA4A2CF7B853708BEF2A44F959B9D05B6FAEF83F6F41A2454257B0157C55047AE7D0CC17079E118C8A4EE3358D877251970EAF86684EC70858A94BBAA4BD2FD1895C2223320CCADCE636C2156471B76C48D53E6A6C12A1317C39C48BF3A0AA0DBC8AFC034B43398B9F1C56D407A4B7C2BAC134024DF6AE9800B230E2592F529F79F0AB048867A349684B242BC4D2284A6106DBA36DE7B3A114B6353B479D014A69E33ACF5C465CED6669B22027D6657F12379ABBD248C6967834239E2D3A0211B73A77D681B61892877B7E102A53CB4602E3DC1704EC92A9E260D9817C6393062BF520F7A845FFF19123A1662FD241090AC81EE1748EEA878D53969FEA20FB95688FCB3D235910F154BD09A75556D890409CCE0A20C6CD2A59664BC4ECCA3D4725910D210DB0C848CE7242CCA945F1568561BB90D9A4C3DFBA83074A16FB3AC934C865DCEBAF6FD90D5B458C22542DED5111E77C12D8656908557649E9155A8472D5213B46F739F095B5FD4A2418074EF7DB9385F19D6630AA29B28881AA3474B7AC352C5DFBFB20FD7B8A0B87CF3933547CD498256A9E17733AD6967D7B9C7ADC64A951EC5C8ECB75B9190064F3A862D10CB5707215F456CAA10A2C240619925A140B6CBA878A0D40283EFB9E1562C227D716D2935E8D96649C06AE9465AEBF552D68DA1E7991BF987A4DFF4371049A0DC9E56F110779D562959F278B069B3C7712AF29027AAD6109BB0C3201565C0B0892A62AA74CA7BD6B48039066A95DBCA4E76A3A323612269546B18BA1BDA19C123C24504ECDF72189DFA1CD24EBF011A3BB66D35F78633E1EE7B249FF +sk = FFD8874D8B37C946409D69CB03529B7D1A43DDB24792D4773CC723643567671B8E0FC2B903D302679A530118AC453B0541A2389C46B38F317B43130972271D8146A66593B8FE659DB570C941F1ABB4F295493085A85277062C3D4DB168E466015EA506B5B8A805A435EF6812A6B68AFA9372776717C1042E24E7A10A842182E7C40C4CC547B98FE007A1D98804AC5BC3C31B6511425A558C73E5B1935C7A664EE224955B6D67CA54D47B04E1622716A27B21F12A2EB27C16D26A541CB0C1BA5A1A8629B7F2222B84CDFED9CB6F666B41C92FD0B074F42B5D2EE72E8C5443F34C5DC2920DA165558AF074E3CCAE84C1CBF1F70624E1A3A30A7DB045A2C4A79BB1A4B0F01187BBD8B29A8C60B07068A72264D9B305B5E391521BB945D53CE1D65436441932EC5867549408B47F28D3BF37D7AF0DF432CCFC3667F4ACE969542CD626637B570FD84210B3AB5456B23B8B339F4885E9A96BB17CCF1CA4A962C5667D0C3DFB356146C04BB8391197D54D0F4202F160824D900B27B36BF8ABC7876CA331C2C3A8A161D98523ADFC1EF9D538C9203A6729CFCF6089F7D72F57093EA3A34113749F23EC21C051AB2C836679B0210A549F2678C7187691DE949994A25769D4647FD992BE411E24E302C07569CF26C11F3942CA505391A794D42C77DA0A324B05908AEB9C70B88B38A95F371B1902E06D071457BBCB382AE4C36F14AB3A747A30CB7E9D35791879873A0333B3FAB967770465A056DE9C4420662C046AA8CA32093AE23ABD80406FE60BDCD1725DAAB0E50931C575A0C9137FA61442B1101B05686D398A6FDC0BBBBB25A073E99C3702B9268CA91420A1198B5C54501A03C878B6827E6D586AB42C2FA47258D1255711654968FC80E1364886F18E98FC10EB85645B399788DC225B1A233FE564604A86397A4483C102203188DF667961BAC9EF19B99432475C0A2C9978C81CF5314A2B2AB37479549B14C8D70ED8F0C6625938CA4A92BEE5A7AADB286E507EE8890772C3353E35C2DE8696041BCC8B81997F8C7800417C91C32E9B8B34B62A25E5C2AF2854CF902269C3C5B50A5209DC1C63F8835B3A73137D855C69F9335FC66EFB985933F4A66B084AA58909E658998A15AE8B087120F59A00426CF9A327DD48467F8C12CFBAACEA7BCA7407060C42950CF9543CAC1EDF9C296D978A2C36AAD92B665D6C9513B59278AC1CC781204E555E27F81E976A74D3055A48035203472960E596C7C4C2D0158A006D884F40681C6610F1124574EB9FF5323E10480D0E306F1E398AD1E6CF8057024D072DEF4719E3A6BE9AEAA07B56077BE495A635C67066A2945376C9836EBF4C413A05A9B1348C31329884BC7D820A6BAD7A63BD62518878A97FB525332433573973DF74A00EC02D50198A2B1306005335E6A51191505FB244999CC333BCFA4E7845B766B050CF66607982014D28548A4454F86A06E9321C82781478CB938C709EC5CC81EA1A9269543DC8EBC6D253BE1698990C81C587D7263E7445BAF53316C23EB8863D151A4E5659928AD704C1C7B2BD2A1987907A05CCBD2F0C78232A10653452E3DABB7598CA83D37166791EF11A2524F371180984BF72A6E2291301606B7351A284A1A62D7B0180596BE297A4631ABE0D48A046DCC99C8912B8255FC45592A2A61230652BC7C450A674CCC3ABB27395738D177E7579AFDCC30E74E7C7B5AC5DC235176343CFC4920ED8D9472E13C9B36A6D38BB44756BC31FBAB62893656DA065901303700A14B2F785D98896AE97953BA358FD53091012B97498CD7516B0E1898E2F6803C5A13D70F5BEC346917249940BA35E3EA954F6CA13C343A09CFC02D8E66852C1AE0FF8B22E7424F53B1897EA11268A6B866C09EFE8694031754ED1A2A147C0086283284133AA6C324E0B0570469F09E0901F25213FF9B113147990B54CB241268E0B6C7A3A90C638B7C483C71AC1344BD65C988736C4756E0B71111BF5B810FB3CC4187363A94EFA020DE1C3CB9A005CF472BEC5685322FAAD5BD1CB0F240458B56FCC5A6167F22577565DAC1BA9B984C33C348BABB70506B87926540547389B805BA01E4443B5D60B9A407F8B060FCD96C4B717BAAEB72400EAAA9853B962E8A0C8D966458CC4CFF31E960C447C6B205629419478360CDC945D6B9A55504D853C1E51364E7A9AAD82B64FC37A02E4139B9E6C392DC83C04005F6D1299D990A89ED68ACC31B5D1D224F2C8B3CD5280A12C6E088CC2F9D3C59AFCB9FEE458AF5135C9B4B477D878F34723E3912189D2764F9366AB8752C9248A5684296ED46F404A1739BA72D5D652C614860D41898E45B72BF66D587089FCF49E3B94CD26999D7539C32BDBAC0139B20988CC7B578ED880048885355F193DDB1690B9092AA2A86AF03A41797120BE84334EF25C2E70BFE8E0A658F03435B65787F38BC9452DDC584162955F8B8560991C407FA0C12D770E80FA4A2CF7B853708BEF2A44F959B9D05B6FAEF83F6F41A2454257B0157C55047AE7D0CC17079E118C8A4EE3358D877251970EAF86684EC70858A94BBAA4BD2FD1895C2223320CCADCE636C2156471B76C48D53E6A6C12A1317C39C48BF3A0AA0DBC8AFC034B43398B9F1C56D407A4B7C2BAC134024DF6AE9800B230E2592F529F79F0AB048867A349684B242BC4D2284A6106DBA36DE7B3A114B6353B479D014A69E33ACF5C465CED6669B22027D6657F12379ABBD248C6967834239E2D3A0211B73A77D681B61892877B7E102A53CB4602E3DC1704EC92A9E260D9817C6393062BF520F7A845FFF19123A1662FD241090AC81EE1748EEA878D53969FEA20FB95688FCB3D235910F154BD09A75556D890409CCE0A20C6CD2A59664BC4ECCA3D4725910D210DB0C848CE7242CCA945F1568561BB90D9A4C3DFBA83074A16FB3AC934C865DCEBAF6FD90D5B458C22542DED5111E77C12D8656908557649E9155A8472D5213B46F739F095B5FD4A2418074EF7DB9385F19D6630AA29B28881AA3474B7AC352C5DFBFB20FD7B8A0B87CF3933547CD498256A9E17733AD6967D7B9C7ADC64A951EC5C8ECB75B9190064F3A862D10CB5707215F456CAA10A2C240619925A140B6CBA878A0D40283EFB9E1562C227D716D2935E8D96649C06AE9465AEBF552D68DA1E7991BF987A4DFF4371049A0DC9E56F110779D562959F278B069B3C7712AF29027AAD6109BB0C3201565C0B0892A62AA74CA7BD6B48039066A95DBCA4E76A3A323612269546B18BA1BDA19C123C24504ECDF72189DFA1CD24EBF011A3BB66D35F78633E1EE7B249FF699FB2F061A75F111F4A7A60195D9045DC01716B6502CC107CBCEDF122E8F61910EFE801AE61866A7109F40ED932E67B0AE9E966D1EC5F917E4A9F31A27EE13D +encap_coins = 7274CFCAF30A61D198328BE008F814B2A87D50570B58A80C03FF151A774C589E +ct = F3C772EA381A44D891E37833D5A58DB63C4CF1D5067F98E300533996E53B61D3969F8AC31BF8B3583B6B4173A4AD8389217A17DF9C8531BA1077CACE630BD1D52BCBDA1794E15DF4396D80FCAA7DD49ED689930D6985C0AD83CBD79868AED178559C14919361C0E63D92370537990CD8ECC456A5578C56A5B8A3FA8819A193078215A4AE6BFDDF1B7C8390D59BE9CADAC05DAD2B64D59CD2E9AF402C05855080D00FABF43DA1D8B3398993165475BE692EA56C40AB149249D471FD895E16519695D66DABEC00D9810B6B15915B6E3DF167FD4AFF2A5E197B2893477BA1C6A8DE0A5CE8575F05B251FB725A79393B8233DFE393F3C7309E22039569454E3FEC6CC0990E6749B1416C539D04949797C4C16FFCCDD55B8A7EC7B4F85A8E90556AC3211136E7BE50863F312E278818289922DF3E4569B612D5E53554B0C9BE4F44C44863C88144CE545E3B65E3286FA6C5F9BCDEA8211A96CC99443501D8D44C8BC7B1123AFFA71FAFAE909573B465985F7A58D690A13D14F7B2EF58A9C1F86541101AA90A1B9B6BD51AA1CAD725B00FEA5C04F6C55681DF298AB8D7CB0B660217B778C3246C3E9C8EF3C2668919D564A33A23229F8A184364B031AC5F7930D8618C6875867831EDC864325792366C12836AD596E6BC74EA31FC7F3BD336AAECA6B9066B9B4CEAD4840DC53C0BED87CDA830B0B0ABE8B15A8466E8D7792DE028D0EF16BD9D642AFA27042A47C85D54752476763DB2E28754FBFA303741D10E34AB88BF42451485AA63D75348A4AA1DACF4FC7F0BEDDA950539097A86CB1ABF642E4398332BB407186B0C0D1D91D985A5C0F6782D5764484F38A09A76B0AB3F76E54D0134E15ECF3063BA54E182DA32BA6E947A72AAD101A64DC54F299C7B305D904BE2D489ED565C229209821F17900C9A1FBD9A8C3465FE8DA67008EDA5E64AA9117DCFD25BA54F285B402C2EFCC7B20BEDAE6631F7C0510A2549660BEE2A18A12DE559488C58CDD0ECFB0F1B60F0760D7FC7CF8822934FB110B174DF12D24CC6FFEF8823792D0983B5B64709B94D0D514D818EDF5E5355EBC433F4F1204936CBBF28B450680780B4E2A63CDBB6C90BB3A1ACF2EA830D218626405C071B7D49E7D84774F93DCE2169FF60854AF43F24D189AF5AC26A0C224873A24BFDA0E62E59A7E3FA178B534C8A0CB17C0A55C7B08D7EA73CBBD208AF4E21E1B749BF4ED4B14047292230CDC905CD296DA6AEB44D0A206CDCE3EAC75B2A5857301AF743B6CA721C27DCBF7BD8A76B6D251BF8006AC2220C9E3CC27DA347160E0BDECDB9E6311432FBBB4E4C1F07D2E8F7A9F7874DA280261A9F8CBC3D3AFEB68D7B6A726C84233C444DEF7CB29512BF811B706B3745AD21E9137BDC004E71F2C47FAF4A146D1B3FAF991094C7C04BC6B3EA48518420CE0494B0ED117E5029ADEBE061FE8FFF66382FF8470CE257C165834AF6E2C800FD0B4DD6204866BD8C3A5F93F22D8CD70C1394EE6A33892985390D8E691E04A505DEED42046AF00489895BDA16728E6087 +ss = 04F380D7841528316439EB1960C612CF3ECE3D425AA33FF4343B4A87B3202866 + +count = 21 +keypair_coins = 89A6E3BE304A3518FB82B18CA730F0B359CD6BA90664A493FB4F8EDAF965B9C3921BBFBFCC283E1D1DB36E99B9CC6CCFFFBFDB86DAB7B6C7CA02CDA227DA8632 +pk = F3576FF861541032094855B18CF574D868B0EB783CE9011F28FC14C486B122CC80093897BFC8AC1082421F99767BC42B0FF41B22DC7B50D5556041338E6C4368AB190E92608F6CC69D8B33F1AB04DE68CF96D9C5882C97CF28C30B86924AA57849954369C5427C876A9B1CA341E8522E1357E60A4450B69F150658715403D1E1C957E5A914B9A3BC4C45489053306329C7984E76F169C8639DE4080DB1671ED01A24724A101DF89E45B5B385CA2EF663586AE58D9B33ADE9738F84482E6E28909E7641AA673AD772B125161A316166E1717FDBDC8D02B2B2B6DC21805619D4FACC40E9A21BCCA9D4DA71220A4631E95B25E960192A22A39B904BBB02F1184B79A97B3CC16B5E4B5EAF278913B7A195F3107342A77A68CAC90C1B5A3CA9B354A6095C29C09C5AC2B44C6CB28A250834D5F2A307EA3434977D0087017CA2692B79008640B770B41EE2C2C77BCC2605F1857368C8E12983AFA8633C870115A3818D6BCBCEE864A8DB694F4B77BCF63A8AEC407A45716AF6358065C30B77B68C2198B2FB558F463A7477B9FA7680F1E65706A888B8740A87CC7E7949156F896C182B53E464721E46A258820201887CE9B83D43250B63E2AB29900A115084A6E66584F767853B2E684C547D97266B36B6838AABA73298DAB79C58C88F1B51113EE752736B7566EB5759CC4DBC37551135BB3C87B1A6C83AC5A38DBD78106EC0C5E9967A6D81139CD516027C25AFBB6C47E3802D56079E6265C4F21F1315A96AB994597214B814CC53E8566330CD51FB4045F605DF1C7C9C255166651DE6041B7FD85C7E376E28076AD352051C65494A1054C30930621C53EE8947DCE3C55BD686F186CD5AA21AFC17664D36A2D7F5008AE83950B93AE510847552A5C2F761207B0F478C73C4D6313C8ACC25B13EA64A72EE3334013CBC0A855B55E88EA17466534786B6176B9053CA9D0494C6B4A940B70B68F40BF570C461F11795952E69F21EC4562DEC99448263188EF44E71A1681D626CAC69C6B56AB51AE656BE1CA028672D97D044E43577F26329D50851B0F8A4A1B6C2B673AC6418CCD58005AD400C27D274DD4732E56B5D7C0B6EE731A99E15229F7295C153AA3A873C20C23A35B6137C824F6FB021A0E28F98BB3BE8DC07A5B038DC89944952913AF7A39A9B00F1A038A628686A735DBD4C45E0B8BCDC1C1A902CC4D0571CBD589F507A0C0DCB81BD39811E723358D6320A3049BCC90D776562EB34877978C9929548286A85EFB85F7C6C76FF255F13A0CF5E70304F1CC838FA398FB34E26CA662759C8F3657125DC2AACDC4615653EF074A784500EC60980BE4AAC94B0C7A9012DBE73CDBF1687A684AC63526778926654A4AE4CC779A600A836E3273ACB95A802051F18AF32683F52363572583FDFE30287B2632874CB04832F55E0944712C86D37420137C56F6251A1352AE37A0C3FDB885CB561E63A493A15BEB5E3B123ACA6B6B7294D8002E7EC758AD2C22D336AAE3C067703821842CBA2DC0B1B7A45CC0A48202A002F927122C040F84A884C1334C1E17347108B91C055D331C0B170C6F06048B40CA0BED838AD963FB8747CA714CF1D3267B701132046699798421ACC06A3BC1ADE172FC62123235C2D8DBFE40DD56CE5DE6756CC4B6AFDF64050DA2EECD9953E893C53BF7FFB +sk = D32CBC1116AC88219F9AF2C33BEB59BB94B372F97815278F0FAB2C690C94B8F209DD1575BD7C0BC7F48AA133BFA068CF1AF1612C3325B8D08963BBC66D938F46843FEE424357E535C2259ED958A75CA6203286190BE53A9B46373F8B41CB38C1CAE2BCB91898669A872F1A8D9CD21227E42ED655569202CC6B494CC6A6BDB08731CDE417F48B86554CCAF953B8FB70AEC727085510CDBAA7CD2A0BA853928886332FB1E3A419C49B34EC90FD31B716252ACCE7A79D05CC04074D69AB3CC9809102261A2191A086231DC70AA583E86912E5BEB2C1A22E841F39DB531D5C26CC333834A20480D6B1CCF19A654149045791D33B414696375DC3C7B0644626E8822C5325D52BA764F2361D853D244416CB9A5BC0540E1238CCB53438C90A196A45571F743894F060F6031FD623ABEBB4AFEA05190DD9452C981352A78E09579F05E24DB2033AACFB10D9335986E8542D9480BF5603FA932D2D0878C3753E6524A809324AD6F169D7FB6D9C0264423A632996ABF297707D8412A6B86160B69980E18ADD1C372FAA406F540C00ED0A75C3544811759C3B5026E6C19102B7160883ED002DE5807B5933934FA01559C4A790230EE93C215BD75AFF117D0F170B4FEB7AEF5B007ACA616E688161FC00CB037C8232CF2DCA569F01A2E1DC2AF7ECB6111181F2EBCB1DF27C6EA84251D8A2B6B6582EF915E2B8C7F8FB6BE8844478FC570B8054A067B34120B47FC6AC68125CCA8514DB4540B7796C9FD05523E7014DB34B8EC94D5EB66C9F5CAE2F838191D2234F43C72262A18DEBA17AB495B7F0529D89B8E1E407BD5A185EAA2444D20C6C9566526B8707B13BB0CC8D9589773DB90952A5CD78E43BDC68CFA4401D7912618F456EB4F97AC1B49AB948592976233F962B1916531FD1672BB69BE320A2985B38B80279572488C5F86BF3D55FB9FB90449B66FC874B94292000466786FB7E393765C7057051999711D234B4D277419320E0046EC0925B41D6B89C62133BD2734E296DCFE90BF6344219A6A22D2CB50C75BC02B07FD0DA11FE0A0A0B9AAD76001D5D7C8FEDE065DDE87D5D47821E756A926638395883879A91B94C6164A40895476269917CAEB12944DC956174B6CC5154944571A6F6553F604D3212728FB08AF6E8C0EA00265AC0C5464595B31A9131871D79298867AAB426D009480C0BEFC08ACE14991399079CB62DE9E6BC80C88C3339640FC667EC837B691C3DA4556A952B3E63C162EC911101C5A49B35475AE68634A7B0CEFCCFBEE608CD4C43C8EBA7A8F957DB595645C64ECF08B50C7438BFBB415C27A45AE940AD077E5A533825D998A9095A735B5D23887B0048AF49CA85F18395C7D3CD06BB687C92CDA9AC9C03A9333A866A9639803C76B5B189294A269F389ABB5010789D410B88215C554008CB10274F781ED6B0BE3903576CD16934C4B6B65296C477AA174043F06792F3944EFD0206E34042D827CAFFD2989B936B91694825C4BD8B10C0777B11971CC1EFB93EC1B3674AFB4FD07568FFE89C707B5785C140D51B433B7942D88A6EF9BC9D091472833004005AA803A050CE03B2BB551F62FB1FAC6649D3E14F0141B2EACA73B700489B73A8D840834A7802A96864610B10F3576FF861541032094855B18CF574D868B0EB783CE9011F28FC14C486B122CC80093897BFC8AC1082421F99767BC42B0FF41B22DC7B50D5556041338E6C4368AB190E92608F6CC69D8B33F1AB04DE68CF96D9C5882C97CF28C30B86924AA57849954369C5427C876A9B1CA341E8522E1357E60A4450B69F150658715403D1E1C957E5A914B9A3BC4C45489053306329C7984E76F169C8639DE4080DB1671ED01A24724A101DF89E45B5B385CA2EF663586AE58D9B33ADE9738F84482E6E28909E7641AA673AD772B125161A316166E1717FDBDC8D02B2B2B6DC21805619D4FACC40E9A21BCCA9D4DA71220A4631E95B25E960192A22A39B904BBB02F1184B79A97B3CC16B5E4B5EAF278913B7A195F3107342A77A68CAC90C1B5A3CA9B354A6095C29C09C5AC2B44C6CB28A250834D5F2A307EA3434977D0087017CA2692B79008640B770B41EE2C2C77BCC2605F1857368C8E12983AFA8633C870115A3818D6BCBCEE864A8DB694F4B77BCF63A8AEC407A45716AF6358065C30B77B68C2198B2FB558F463A7477B9FA7680F1E65706A888B8740A87CC7E7949156F896C182B53E464721E46A258820201887CE9B83D43250B63E2AB29900A115084A6E66584F767853B2E684C547D97266B36B6838AABA73298DAB79C58C88F1B51113EE752736B7566EB5759CC4DBC37551135BB3C87B1A6C83AC5A38DBD78106EC0C5E9967A6D81139CD516027C25AFBB6C47E3802D56079E6265C4F21F1315A96AB994597214B814CC53E8566330CD51FB4045F605DF1C7C9C255166651DE6041B7FD85C7E376E28076AD352051C65494A1054C30930621C53EE8947DCE3C55BD686F186CD5AA21AFC17664D36A2D7F5008AE83950B93AE510847552A5C2F761207B0F478C73C4D6313C8ACC25B13EA64A72EE3334013CBC0A855B55E88EA17466534786B6176B9053CA9D0494C6B4A940B70B68F40BF570C461F11795952E69F21EC4562DEC99448263188EF44E71A1681D626CAC69C6B56AB51AE656BE1CA028672D97D044E43577F26329D50851B0F8A4A1B6C2B673AC6418CCD58005AD400C27D274DD4732E56B5D7C0B6EE731A99E15229F7295C153AA3A873C20C23A35B6137C824F6FB021A0E28F98BB3BE8DC07A5B038DC89944952913AF7A39A9B00F1A038A628686A735DBD4C45E0B8BCDC1C1A902CC4D0571CBD589F507A0C0DCB81BD39811E723358D6320A3049BCC90D776562EB34877978C9929548286A85EFB85F7C6C76FF255F13A0CF5E70304F1CC838FA398FB34E26CA662759C8F3657125DC2AACDC4615653EF074A784500EC60980BE4AAC94B0C7A9012DBE73CDBF1687A684AC63526778926654A4AE4CC779A600A836E3273ACB95A802051F18AF32683F52363572583FDFE30287B2632874CB04832F55E0944712C86D37420137C56F6251A1352AE37A0C3FDB885CB561E63A493A15BEB5E3B123ACA6B6B7294D8002E7EC758AD2C22D336AAE3C067703821842CBA2DC0B1B7A45CC0A48202A002F927122C040F84A884C1334C1E17347108B91C055D331C0B170C6F06048B40CA0BED838AD963FB8747CA714CF1D3267B701132046699798421ACC06A3BC1ADE172FC62123235C2D8DBFE40DD56CE5DE6756CC4B6AFDF64050DA2EECD9953E893C53BF7FFBD3413880D082F26986FCF452A84A8DA934ED06198B290ADA1789E74D9081A9E7921BBFBFCC283E1D1DB36E99B9CC6CCFFFBFDB86DAB7B6C7CA02CDA227DA8632 +encap_coins = A0462A5F2A6C43D1198D54097E08D20C53D87B7C05DCCE5418838FA8E73A9C8A +ct = 127797A15A98A48DA756BD56AA7044C00D92B57BA37F1047593B715312AB77019442DE340AFBF44134C7562BCE027E7DF1A2C6C0965D01EBAF2E33714A31944BC5F1866750584330E153645AF82719A4B2AD93BC85870603A9E8804AEB859E3608376EC737F55C0E9462D47749038C70E7D4665DDF78DCBCDC46AE672DC0E627CFB320EC8234D4269EFB498088E761246ECBBD4CE81E12A039891230CC994B7AEF1D9FFDE6D24E246826161D2C4452358BFAE9A06768876099166A430FE8A20BE0E6F1F252467936F84A1945963DD42DADA8AECF02D41025D75215CBD0A47C11DCC55E51765971B05FCDA4B117E983F2AFE8B3DD4E414EADE3BCAF53E97A3E830256F661CCB0A83DA1F4292489960FBFCE1A087E0BEBD241D9C84E99EE1028945E0CB01A6EB4BA339456B5FC9A824E49F2D4C4225A1CF38E9ADD1F62A73244123B13BD94446343750EB4ECEFA9B99690ABA5190CAD3BD6D1A50E1F83A566520C5E7D0900A17947970E42A1D63BC858088480F35E97CC5604D344FC0CD4E81C119D3F89B41171C127013E3234909849DAB16563A823BB8E93B757F63FAB3F09E14329321430C0D46403C0A55EE68739318E524F445F6A374CB032B6688555F79D99433A663DB2EDA5B74B4315FEAC8D0053F489B15E2197F7EF8BF677E9B3ED6F7965537049C08D64C019877EEFA3E18BD0FED245BC5BC21CB67154E5C9454D7465BFFB5350B76C14BF4166FFB0389812161BAE0AF80E78995E79E292ABDE5537532BC94E30B2222AE4535B3802579E773A733081D2E458EF063C39E6E9F1BCD4999566445FCBD015E8E35EDB47C2298137D0A405F73CC5CEFE5882EF88EBEF7AC98C4E50A5B98F1743988BE9BC124E62C3C9A65F7FC594C13C305088AEABC4FDD34AF0ACEAAF410BD6D2E2082E792812803F922499E4A192C0FC90F60F960199D91627C98C68DAB75FBB21548A3F3A8337D187E6294C489C0A88B2095B23D233A9AAF7AC592DD7B6C4155E2DF132C605CF36367848EA2E1740C93C3926821E654D52883F2C9E0F820BC9037F45DB5B809A1661579C4CC1D24DA918FCCB960B998A1631CC4AAE3DA1DA9B18C7B6CC0287E568375CCDB8B32DCB179D4E3B342E88A5CF347620310AAFB93FD16DAB3E79DB3313047E7F6BEF5B9B27D6A7B3AF617CB2BC79A8C71B4D9E8B71BD499741916FBDD17EB1B9A124C265C43C5B496BD5AD62D425A9865EA63F2BD235F87CB1280C125BF36A2C73BB6A8BB7BD8BC9A92CC8E9657D2DAE97CA729AD53C3CFED6B8C59BCDE1D11196F5330309222BC9A24701FFE370ECE6CA2D0FFB6F956A4ADFD1E4DA76E6FED09E358E93DCF831119FBBBD92D26DC77D8160C95C6B5F45FCEAC2292432C8166D33A1D20C330C74B6C63079A15715CD6CF62116993C0DB574345E5F8A071E6284D102C4CFAD515E3FDB0B6770C3490C71247A604C71FAD84B161B633F3BC0E6B80C6D316EB932228724C37DF56A6589F1BC237325522F2EBE4BCD61983995411629B5657145DF52C2D4A829 +ss = 160B5ECB8D716FE55187632277FF23A74EC598CDC1A640DA772FB98979CF98BD + +count = 22 +keypair_coins = D569B935CE015C85F792F8F7FB0D83C4F53B492959361DD4F75FB764D656450140B4E01E03F62E5F489C39C78D387BB33B526CEB6907734A5F788209AE3C2647 +pk = 4C376BA98C3A0415A3BFB0AB42D0A3D68CB171109C5F83147C33ADDA2CB07C62A9025B44523B0AE4CB8A8BEA5E550B717CA6C8271997CFD6C5ED76AA44E43DA2A02D35610787F22966298FFBB45FD78A8D36EAB454675D6951A70472CAF06640BC1B97D6760E74B41C577855BC0756ABE528EB4894E8776F1E739DA45A9F84C9BF3C72B43262525B547F75176AB2E12D8EA808D3B0355766BD69D964EB3B450A96C835D7B238220FEBD62443B03985731333C54382D20200E30E4CBB2B607AC998F20DEF865BDF47CE78AC3DBC1ABE33245D6FA7583B31B6FE7B6EDE7A8EC776B20F7BBE7E376578F0933B761BB0952161123D61282CD6C80CDC8A85F9632ABA1A8EF5925E410BB80BEABC67735D07E4ABDD587827745A3220A24A7B3902416BEFAB3073C2CB1FA76FF04315B653B3E7C18343391F92015939829DABD0289B5AABC4CB5335D963AB842865BB7C38106EB1274ECCD0140B415901279E8719C0415517B5101394F78A48F565317909371A3154D291698B0BEDE17052F30786DC2D46E71EDC438C288CBD44445F993926BFF0A8CA1A033B656C2362A659EABBCF37B2CB5916940AA9B3E850E51039C08C8588347E1099A0D8380CCC4B8CD0C87218BC24F09126A82A3D530A75500254510AC765CC1DE612A4CEB14DB78A7141109F947B4329158F87E4C8B41A92AFCCC9EB749D66A71159DB90E7A36642636AF22CC0D541CE52DB7AB44BAF30560691A637C93193A11A00EFEC075289953FDC9DF3EC3390342AEE44C08D661632FB0303681E1F89CE1300B0C1A36E63E5A45886A4C76534FA78B87A75CF96AC66205C28766BA5EEF7062363C19091C61C543D5C1B8A547372515722EE515E8EF52BF8E089D93377E2C8458E626D3391953D658CDB05C7A40077F4E19DC0B132BE719014C12B0CC242466112E94809630B63FAD12C99D271DBD38E5AFA54C894542B940415354203A0C8A785AB94200EE0CB976991C642257D9AF6998B61BA27B236FDFAB86F834FB2D47CC0904B9D6ACD2F8311F0D4B8AD81A24F712D92272587220E8023A8BC13BD17572D38851778F319607752466CB0DE7C5C12103FAE4C57D953B96BE93262BA9CB05405A5D2A9E012B21A22A2EF33A385C898C80AA9663565B63241A1B206F3379ABE8262CFA49BA05C3B43E9485E60CD38D66EAED114EF81AFD66B2594BAA361D3C3B02069B1A164BC387632E24C82A91BE2CA390EB585E900173699A8B26B8916E52BD643645D3225DF38BA50A50EA013B4B2A86EE1F76278E27F5A4142F034004B567F309C52ACCA3C7530162ED744A67481CA338861CCC3E8331E1C67886023743719493CC3CAEA51438E28AC4EA06B906789A65220E3C7407C874C6322BE1F9B627386081753AD618A8DCC013395F20F5017AE2B57BA908617490460D5A67FAE2660A56C4C4D97BABDA0BAE0F494260877F7077AF2536B2CA46E297C61DD8422BBE515519210DABC02E7047B13F16607AC15E4950574C43BF8C39A2528ADDFA2782506635E5626967A1F30C02FA3442FA93250571A8173999A88DC27B43C476468A6A4739972DC1B68493413A2743B9B563283CC886916ECA5887796A4F833AAED6639B9D531EFE5CADF9225573A23664C9CEA086428DCD19FF40A06186A41FEC0723953781475F648 +sk = 818B55FA5AC30A81891F3A3643924B2B046FEB6765A61CC81C9059D1F82F6A0067A102825C88A530D15F0DD95F0B4742D29ABE7044C62D45A05BDAC46130305E3C3417D67F60B92EDEB6B2A398119AD160EE3CB0FB52144435A5BB5412C0512DC6121BF6E72D0F87A3834AB5338196FDC950A3CB1B7354C4E50369BD4364CEE9066A221DFCD580F1B914C0C335F547748BB19264B7879F206A9C610573B8676BD0BDFD777A2A0CA5EC891A1317C5289784DE114E84C53B983778BF8933805256C9A9BD05A11AF8F5AC271AC3F1E635EB9A8263C855BB230F58EA3B7E8287D76258AA57646B97560E593944C4CB3567A2C382A795C991F69BC2DF2CBA8837C9A3B58A9DAC5E4D84B50722A144737EA38B14BE51C41CC55C53340ED158AB4A0B0F0A2612962B89CC2AA8B29198F2E04B0F0CB586F271C6414F31A71A45ECCDA8C597C38415D262571BF0A7BFA17115E0C7731C70C2D01C492C85DE16C511102C5A96973C724F3B58B504EB65F56116AA7779B76B2554736D9D6176DFC6BA007A590A311D4B86A7A6251FFFE6086AB3319DB48C4DCB91FE680F45A9480241242E4AC9861B62860837CC813FADF00751C8021F7A1C4D7A1E5F13BC3E8462F372CD7498197D172EFF98B1F8BBC37974B025295A80E3525D282FBA8467F8079D78FA6068E23BDBB3349A31506E474EA228C3927A554D7747BD3621A0343CB155BC786075C3015C3692C0FC65B194A12152A14153A03D5147B0CDB423A3B50ED6461813F9AE1FD63AB7A53031DAC2D0F87CACD1CB81461C8C08BF367C4CCAE7626343469D417ACC705546293498035195240387FB1F2E7C005DE000E530B9E21CC7DBE463E7D24ADEAC1127026843B87CF6FC1BB94674399B0636506B1ACAB72F623ADEF866F883762B5B4509CBB2BE142C5C550046E10D29FA431F9B7D977253928A8D2D4C33ADD899AD736B40CB4FC656BE02D90BF8D393D632A1AB509C432511F1CA16B01139CB0627F6503BBA75440414AF97A04BC5239567C060EF94C9BA7221D4612EAA640BDBB8B72E32A4668401AA79421BA68115261A8D94878C90A0468510B247968B7463FF49A0578044C5E9147F0739F6A17B18828BDCF56966B1CAA125CDE7BA6DCE939E56D350E896CA6219A6B8947E3909361754593FB8A85E742CACB74E1D45704FA4CFC91C142453BA5C08558DE1321AD6A6A2804769A0BF69770A1264BA5148B40A3A9BE3C513A382CFA3C244C9A138EA9CB8DA7627B350CFF87AB064A079876893D893250EF59F369C41F9EA40DAA5A5984C19CE06CF9BEC2947932133A4157BB8CC3C72A1FD25715962A9C88026C018B7202885224019466540C9EB5482A87E665157BE7722BC64133C827C20B97D9E692342F23FDB1B75AB2CCB6FA5973820B92EF1BB45C2B5ED1330C1417CCFB39FC6301B8A749D3613B3803A6ABBA20990151305CB32BA6A5B558265C2E27D8D49AEF3E91819920DB20360355919D5F641922233A1C24C0045172CB10F9564A029F07578A48A4D215248F3AC7A912EF8E56E366B03C567AB978C750D85454C68A5806AC38B7B3395F19FE78A001C5867D3E90E9B54BD63954761AB7F4A57B1FA32B65F285742C1207AA0684C376BA98C3A0415A3BFB0AB42D0A3D68CB171109C5F83147C33ADDA2CB07C62A9025B44523B0AE4CB8A8BEA5E550B717CA6C8271997CFD6C5ED76AA44E43DA2A02D35610787F22966298FFBB45FD78A8D36EAB454675D6951A70472CAF06640BC1B97D6760E74B41C577855BC0756ABE528EB4894E8776F1E739DA45A9F84C9BF3C72B43262525B547F75176AB2E12D8EA808D3B0355766BD69D964EB3B450A96C835D7B238220FEBD62443B03985731333C54382D20200E30E4CBB2B607AC998F20DEF865BDF47CE78AC3DBC1ABE33245D6FA7583B31B6FE7B6EDE7A8EC776B20F7BBE7E376578F0933B761BB0952161123D61282CD6C80CDC8A85F9632ABA1A8EF5925E410BB80BEABC67735D07E4ABDD587827745A3220A24A7B3902416BEFAB3073C2CB1FA76FF04315B653B3E7C18343391F92015939829DABD0289B5AABC4CB5335D963AB842865BB7C38106EB1274ECCD0140B415901279E8719C0415517B5101394F78A48F565317909371A3154D291698B0BEDE17052F30786DC2D46E71EDC438C288CBD44445F993926BFF0A8CA1A033B656C2362A659EABBCF37B2CB5916940AA9B3E850E51039C08C8588347E1099A0D8380CCC4B8CD0C87218BC24F09126A82A3D530A75500254510AC765CC1DE612A4CEB14DB78A7141109F947B4329158F87E4C8B41A92AFCCC9EB749D66A71159DB90E7A36642636AF22CC0D541CE52DB7AB44BAF30560691A637C93193A11A00EFEC075289953FDC9DF3EC3390342AEE44C08D661632FB0303681E1F89CE1300B0C1A36E63E5A45886A4C76534FA78B87A75CF96AC66205C28766BA5EEF7062363C19091C61C543D5C1B8A547372515722EE515E8EF52BF8E089D93377E2C8458E626D3391953D658CDB05C7A40077F4E19DC0B132BE719014C12B0CC242466112E94809630B63FAD12C99D271DBD38E5AFA54C894542B940415354203A0C8A785AB94200EE0CB976991C642257D9AF6998B61BA27B236FDFAB86F834FB2D47CC0904B9D6ACD2F8311F0D4B8AD81A24F712D92272587220E8023A8BC13BD17572D38851778F319607752466CB0DE7C5C12103FAE4C57D953B96BE93262BA9CB05405A5D2A9E012B21A22A2EF33A385C898C80AA9663565B63241A1B206F3379ABE8262CFA49BA05C3B43E9485E60CD38D66EAED114EF81AFD66B2594BAA361D3C3B02069B1A164BC387632E24C82A91BE2CA390EB585E900173699A8B26B8916E52BD643645D3225DF38BA50A50EA013B4B2A86EE1F76278E27F5A4142F034004B567F309C52ACCA3C7530162ED744A67481CA338861CCC3E8331E1C67886023743719493CC3CAEA51438E28AC4EA06B906789A65220E3C7407C874C6322BE1F9B627386081753AD618A8DCC013395F20F5017AE2B57BA908617490460D5A67FAE2660A56C4C4D97BABDA0BAE0F494260877F7077AF2536B2CA46E297C61DD8422BBE515519210DABC02E7047B13F16607AC15E4950574C43BF8C39A2528ADDFA2782506635E5626967A1F30C02FA3442FA93250571A8173999A88DC27B43C476468A6A4739972DC1B68493413A2743B9B563283CC886916ECA5887796A4F833AAED6639B9D531EFE5CADF9225573A23664C9CEA086428DCD19FF40A06186A41FEC0723953781475F648E6EEC2929FEAC2A86C9DACFA6214E2E353FDA2D547C3829F5678025FF8418A1A40B4E01E03F62E5F489C39C78D387BB33B526CEB6907734A5F788209AE3C2647 +encap_coins = ADF233A4311B157829D49A0BCB633571230F7060F3CE655551AED8BE8961D1CA +ct = 8FDC65BB37E3567DEABDC678F45A8C16AC5EA2D77CDF67B2E99B884AA1BDBC47412B9459E8DEE983626E3E582C7B013C170B13F98D5BFE221C0DF63E9E811579194E7C4956BD0B8C6C0C946393C9159C964258239C29F5B15FF2392A2C465F859C614E548E87CE2A30942E66377E8CC1E6F17D1BB1BA1DBF5C60A607DBE4518CCCAAD2BC7AACDFB996BF5A413F00B7A102DDF999A6F0A0EDBD2CB8CBF0D03EFB41131CEA1B5C698194CC7E1EA59E648FE0846416792EED6C4D75CD01B7452D3C8B6E417AAAAFBE6A915A356B0751D57979F29FE094D486C0E0203680E38456C4DF909D60B4BD8B3CEEA85CBBB1FE49B4F859DF81B0BF6DB26EABF7ADEEE17A003ECE129257E905DA0F02A0091E1D75225003570EF89D6AD8E0FD2C0C4E569B6033E3F5F5059F803B3E555F39F9D4BC16257D3EF42F31D28776A05FB545856E46F1CF9173BAC6EBD8843E2925773147F294598F09DF08ABC6A81733D75B7CFCA44ADAE122A0A607CD6CA9E34B88B83AD256658A661BAB300F6BD242CFE6AD1D630CC88DE3322D46044F8E373CCCB7C5D9FDBEAB00FCD41CC44997F0D85B615F0FCB5AEE489ADD8B73CBE287A5AFF69D241C13C1BDF6EB0DA899E7F86D803F9ED5BF90563C1E80AEDE5C86ADC5680BDA1985321076B41A76F35ABDDCE9CB32056D9DFE304D1CACB5B11A906EA470FB4E1A28618FCAFBCEDCF2816A601FCA55232503B2A992CCE70E317FED28DEF3E864DDFFD519CDB0A2489CC732A8FD57D8EE270EF3E3F97F2102C9D5E088700B80B7469FF98DB610102A1B39FA48679ACF57F0E9D2D3C83035B5A2BEE5F58741C02BFB6F20D07C42070D4A1AE9DA64301A279646CCAEC0B43D3B77FD2B43B220DBBE83BBC8D47D58F01D2178509276A2099D855E3CDED97E2A6D92A6ACB9EA84422AA90A809548C8FF689E0755087CA0E97F5710F11BF56D10078846D470A3A6A061B6F0346490574BA41BB935E413B2CF8904012CFC4213B117FF5906E48830291A7B21786F3EFE737F0DBA88C5A0CBD42578F8F80465477B39354555D15EA6F3EA88DF3B9748D6083BEB47E903D7BAA3497DF57405BA8D7309F3BB918279668F8944314CDCC18E4A334FD28B4D8F088DCF82A9CCFDA9C76986C9D83EE864671A5B4216F5F5331B9BED7A04D5EB1DFB8023794FC462B71108846E2A0DEDAF9271C738687676319AB294CA123E06B599CF960774996D663F68B0C028F4D75125D7AF4F55B1DA98F28EE05C27270A482E55197BBE73E1B4E59FE98AE9A8C14FF54BEBBA433684456929272E1D75FAE8271D1C207B4083974608E0AFCCF2EF3F10907A99289ED8B346EAAF220A97F82718BF782F9D7E2991F3BE12A1DCC8562B4BEB9D4429842DA04FECAB26072C2BDC93E14ACA49EB21495E7D2615C97794795C0BCA0C0E4573CA760C0F38AB263EACDA3274BD4B9262981B742E3A2EE746B6C626E9AAA010503C48DB62D09F437F26B3A22F74E2C7D6BB929751374A37FD92E51F6EB6CC8FAD29A5BD64AD247593B5DEDEB9FF +ss = 4E366C3D6EA9DA570B650ED2909E11A8E372DAF4D580050958F116FB41BAC319 + +count = 23 +keypair_coins = 5CBB141C2763425C274F7404FE530D9116E08C33F9F200A20B011CF563A28990870A300648D2B1F1A637374278BC62B5ABB56380CDE88EACFBADB3224795A125 +pk = C8735813347C3C7C05F81A176264A5FF791D9801AF88047574008C870635457126B4069071242C24DC0977A8C13D43B889D27F08984D9EA657D241922BB12AA28A1408825B02663B970778BF669D585A975ABBA6BCF8513C11BC73A0C33897991C3428A5CB4DFED155B9A2909E6597DD8CAC1AD62F9CFBCB27088860512859761885C5B6C5D89FD6B18F9E324EE8F80B4C507626762A22F4CB7F4527527896AAA97A69B8AA4FB09B16CBAFD73A667E9CB085F7CA36067D4F740694E6C83C671071762FBBA26A640C86422197894CAF01B0AF66960651998073BA7FCCD3189148187BA22DD2661262766399A6B8BB943AEDC590FA048816D1B9D827CA80935D30E1830C8115B18B754F20ACD7A376272C119CC8210C9AA112D604B2022326F51AD674AA1579C081F12DF04A9A2B4571FC1C21A8A4AE2C701EB2EBB0CE65CD2FC22FEE530FB3DAA6D82B3D46E33E9C918F6D33ABAEC34F45391245453EF4D128C4C068227A6511800D69F6A31A1421E2D322F897145961ABEA377C9393ACBFA72AB3C3AAF7F04DDAD50077E7C36AC46E083075265C58DB4B7B47DA253B8A9361C08A1248B53098C6B797622E228939F110ECE18C02AC613E00B624C61EFF4524F92C1EA632553D9B90CD886FD2C364B25C877459BA6DE0AC8CC2A8B0F2C6D71A051F8727C2892D1934857EB995A8D728B9739872EA472E6602F2C39484D290109BA924933D6AE52C30EB4D80935F0D2C87D4DABF07582CAE3C2F21692F0825C079EA6700065A6086B197582B76CAC90A58451D7479965475AC8A6AF662C7D23055C404246264C97BD23D280B43CDEB59BE0CB31E04474CACC4A1453FA10A9E1E4050F97CA3E9AB31E561AB18CB3AF721570380023A9349ED6BBC5DF66BB243928DD3A4B5E113A0F99725C9C8BF673818B89030DB28EDC536C9620A1625C8A647BD3D7055039753E11C4B1BE3AE79EB565E6367690B5338C554CFDA9369E9B1BA75651A0234D2325ED82369BCD415089692547B325EF28189482714C80DCDC5BFF72A6152B70AC2F16707C63A42830DD6CB88EE646D882338D3DCB202408FC5210C71D1A8BA02B8C2AB7E06E43CCD85CE39A215E67914369C749C3978778592D9E34B7671283DC787446B5B70A32C4C1CA4613B01A5D0BFE55016B897130D1BCFB49BB5F08C5DF9F15B6D531B06C53A389500675AAFCA9700FBC310FFF968300360AB631AD95649F0BB47E55B90B2593D9A60BB0477BA848C0DB9F8BF6C774CF8348C65695B31B921E4439E976B4306A47069C25E4A7515866C0BD77B44C7881121025CD2F28430383600E4BA0BD28074B7BBF2A2A3BD62A73BA240D644AB1F89ACE0C8A83AE62F642237DE265765458D6744273E4372ADD9CF5215BD39FA516575BAD72034288CA3E0D3BE57DBC7ADA731F5F13FC0252BC5A9213F502C342A451B933D3060A2AD8A9C13013E3D93455327C187547809FA57FAA299A843A251F8368A715508C32AA57A42F9551520433F9675ADD0359C5997C341464264986FCF67261D16B7A6989EE33730754A2CA0F66B6C98CB421C8E4B36002561B1A5550B93B144D5552AFEE236357C8093932829F864963159A8E7CA992B8FAE006190B55C6A4FC08AD10190D2A178865ABFA35607E1A88B47EC8EA71B102D7F1567BED46A +sk = 91C087E623025864C3C5D9049E865C6226CDD2B39F8A1578EB69A864CCB2FA155DB32702DEF5B50E973495997E18C6C21756568802A4BBB86C5018016FCB0655B09E6A4B39A8BA2D70E32BBB255BDD296C998A21F5716D49968DD02A9C4F4CB9DC72C874C232011225F8E8840F7589C2D285C1E72C8588C0A33A502A385D0527186CC6809185408E9C7FE6262725528A439332F93A5BA2943E6DD7B30D79A25939A4C0802BF57C755A5A0EBBDC8390F8AEE407A541C46CB1530FE1642215556D20AB942DDBCD1627826648ACC3FA1367DB0B45075470196B46697D9EC6974F477EDA553F80B701E853398C69A6E4970A746534928631E6B811E533A4D1E89CDD6969BFE0C861D2CEC3E16D0035BB50573ED61B5DBD45C8C5B223CEF4266C5A6DAF104949EABD27D3319BF12A7AAA4E5F636732B28E902A1098972977D98C00A267225B84AF1C8C404A52472B8D1A793E370B17A9935EE590331256620E302E390474DD6A17D17A50291B6BB940BC43F89FDD22109A72C8ECF9ACB1E67EF6A423396225E6ACBFF2880C35673135C5183BA37DF968330CE992DAE04E9455267A195A41893194BC51C67393251A11ED3C0829D99A3D23CEAA387208E00974E73178459BDA539BCBE89F5EEB05EE21BE3B1159018A3262120C21D4972ABA1A1350231D3A646BA70FA5B641EBEA1B130470A5EC7C40627035B03D15696BE1313B458CC9AC8460CF281A6976A9D2CCAEB9FB157300B4289A55ECA386D3D8A7D16C21102AACF361578010042C3A6397E2CB2EA5224141A1D451B38FAC14D7B64BD7B72DB17408B0A8906CEC108BB926DF54299261B6B5C6A636B395ACB651CE6B6018EA9C92C1525DE1624B5570F7000466CC09A909CF36F34687265B61DB6BF2882514705FB37346385CBF4DF33B98686E0189BDDEA7268F598DB1B6CC7B32792D5546E242A807E760ECE7080392823004453048C6F743B87C1670C6D10E3001008A24590294BC9AC899BD588197530FEF9C2B85AC66520A195C77A7AFF61672C8CB74C07D43A2BAB7A764E750663091A005C9AF8CC4B55D502169D4293E79B365F60085B1CC2F4900541588819B5EDCAA3B80253178639F63A3091701C7E7B04E95435BDD2114BBD3ABEFB23355591B0FF102BC94B56B338083B82328712733F2762C5B1D0845073CB3B46AA28CE2CB282A4347F2118A6E062D7E8524147545488A01378A853D489C03EB0C6527307FB0CA5F7AAB6C328438D33CEDC10733AB8A68C7AB88E0B06FC51C92C557FD59488B6245796B7DC291728121BC7643AA5D56C483186CB55086D7E8654691CD5EB97580F0A553A2613C486C0B9566A6F05F9D2B82B57345AEEC1368CC126AC53B9E794BE471C16A498B743C1848A14D53478FC341A0ADA42BC2E0717FB6965737876468515195050D64079D624DA1596F88819FDF95653B8217F9885D151821A9529420AC95DD928FC429674025882C9758226194615304F1F5CAAA456182C1BB11F0A02B6C758EEC4AB6441879A42450A024559697C4494D8AAC2F7045342234CD8081C0077C9232E66838460EA26274329988AF3A82B898C4EFB033FF4101F302A898E84BCEDCC45E369CD1BB7F3517280D6655C8735813347C3C7C05F81A176264A5FF791D9801AF88047574008C870635457126B4069071242C24DC0977A8C13D43B889D27F08984D9EA657D241922BB12AA28A1408825B02663B970778BF669D585A975ABBA6BCF8513C11BC73A0C33897991C3428A5CB4DFED155B9A2909E6597DD8CAC1AD62F9CFBCB27088860512859761885C5B6C5D89FD6B18F9E324EE8F80B4C507626762A22F4CB7F4527527896AAA97A69B8AA4FB09B16CBAFD73A667E9CB085F7CA36067D4F740694E6C83C671071762FBBA26A640C86422197894CAF01B0AF66960651998073BA7FCCD3189148187BA22DD2661262766399A6B8BB943AEDC590FA048816D1B9D827CA80935D30E1830C8115B18B754F20ACD7A376272C119CC8210C9AA112D604B2022326F51AD674AA1579C081F12DF04A9A2B4571FC1C21A8A4AE2C701EB2EBB0CE65CD2FC22FEE530FB3DAA6D82B3D46E33E9C918F6D33ABAEC34F45391245453EF4D128C4C068227A6511800D69F6A31A1421E2D322F897145961ABEA377C9393ACBFA72AB3C3AAF7F04DDAD50077E7C36AC46E083075265C58DB4B7B47DA253B8A9361C08A1248B53098C6B797622E228939F110ECE18C02AC613E00B624C61EFF4524F92C1EA632553D9B90CD886FD2C364B25C877459BA6DE0AC8CC2A8B0F2C6D71A051F8727C2892D1934857EB995A8D728B9739872EA472E6602F2C39484D290109BA924933D6AE52C30EB4D80935F0D2C87D4DABF07582CAE3C2F21692F0825C079EA6700065A6086B197582B76CAC90A58451D7479965475AC8A6AF662C7D23055C404246264C97BD23D280B43CDEB59BE0CB31E04474CACC4A1453FA10A9E1E4050F97CA3E9AB31E561AB18CB3AF721570380023A9349ED6BBC5DF66BB243928DD3A4B5E113A0F99725C9C8BF673818B89030DB28EDC536C9620A1625C8A647BD3D7055039753E11C4B1BE3AE79EB565E6367690B5338C554CFDA9369E9B1BA75651A0234D2325ED82369BCD415089692547B325EF28189482714C80DCDC5BFF72A6152B70AC2F16707C63A42830DD6CB88EE646D882338D3DCB202408FC5210C71D1A8BA02B8C2AB7E06E43CCD85CE39A215E67914369C749C3978778592D9E34B7671283DC787446B5B70A32C4C1CA4613B01A5D0BFE55016B897130D1BCFB49BB5F08C5DF9F15B6D531B06C53A389500675AAFCA9700FBC310FFF968300360AB631AD95649F0BB47E55B90B2593D9A60BB0477BA848C0DB9F8BF6C774CF8348C65695B31B921E4439E976B4306A47069C25E4A7515866C0BD77B44C7881121025CD2F28430383600E4BA0BD28074B7BBF2A2A3BD62A73BA240D644AB1F89ACE0C8A83AE62F642237DE265765458D6744273E4372ADD9CF5215BD39FA516575BAD72034288CA3E0D3BE57DBC7ADA731F5F13FC0252BC5A9213F502C342A451B933D3060A2AD8A9C13013E3D93455327C187547809FA57FAA299A843A251F8368A715508C32AA57A42F9551520433F9675ADD0359C5997C341464264986FCF67261D16B7A6989EE33730754A2CA0F66B6C98CB421C8E4B36002561B1A5550B93B144D5552AFEE236357C8093932829F864963159A8E7CA992B8FAE006190B55C6A4FC08AD10190D2A178865ABFA35607E1A88B47EC8EA71B102D7F1567BED46AC74F3B7FA6E2EF8CE99508C89CF3C71D666AB065A262581A5FB01B2C9B9444FA870A300648D2B1F1A637374278BC62B5ABB56380CDE88EACFBADB3224795A125 +encap_coins = 9DB1C63EF94F37D77F386DFE00D619E2D6789FE8237028E79B7B1EED9C16FF5A +ct = 480C8398AC625C10C90AB69D0642D6C7AB10B5ECA72552B0A1BFC09E48A39617C2952B820935AD8221ABBDAF0E1E28252B8366C0B469455765E026730EE5C615E70DEA87C93AF1E17F44DF2F0F89BCD8FF8A9A296E353AC08FA18F1394C951C0F0E572403840412C9E8E1FFDEF061BF0F6CF3D882EC81447A9B3A791078B6EBB6F3FA22D4D2472DDD4FCD751E9982866192C8C1209911F629F3E096446DA3A2318477D109372347AFBB76F073A60828234F07EE095A100AA4696EFB2D1AC500C6205BA7E2964F3BAAE12FCE349044C20E78A51D9E6A99661139878CA0E23BE6B4F0EDEB48CAD5F25CBF57D30AF566792DA7EFEA37A6CDE073060307EB4835C6343BCCBA1EF6A3FA3E71A0C9BE9DFF5AE0DF36DD218693AACFBBDFD7642E53D5000173FA705B6635BF5C1B0CF183426DD9DA693BD77D161C70B3C961FE7D0A6755BD4A35DA04A950BE0C1AEC5A07DBDC71BAF05355719705FC3D63F3CE13DF2EABD1E9D0EF026F2AE74C36F57F8A81BE31F19162658894D83A9BBDC5F175DB778E0A4C60C8F1DCBE688E49696BF7B54D95B06554F58EB1B62F585BBDEDFB3B0DDFBF89297AE8507E9F1547BC75816C81A72A433B534B6B303C4D73AF3D79D701B2DF6AC711A403540ED664018DD00A07BEEBF99742A47E147D16150B075F5B23256F12564FAFBEBE317DF96141E4367B4EC550C9D7A06F248BB6D42248054F7C250993D48DF2870F0EE67C4E4A765ACB45D414FEFC659FF8AA7EABB4FFA5EFB6B58923C5B603108738C3072DA13BE186AC334EDE79860CCBD92A2088095D27141229BFD649D794D1369537271D5FECCE4667300571E0C53E9EA5AFBD61829DA06803006236ED4D38ADEEA0EFDE8EB41E21C9A913CC07D7A21509CC505493E391DE0EDF0DB280E276ABDAB73DE4A1075AB8C9B1BC9819A65F918E810A6AC36D5485F6553F4C18139F7C235D6454D771B194024DFF5861F21D85AF3FDF4ABE2ABEDEBC073A54718A4A5029FEF4ECBFC40D5C2840FC218E306224A3AA87FA59C9820D76630BF338102DB97E8A598CFA8CF515B1A90224004BA189ADC9EF0C557748DE0720C1D1298FB1FFA119557E126D81941FC6A9479F80EA0888AE7A2A8D5CCF114B6428215A5DBC912A64EC29578D7343C11E33BA6546282D25DB4DAEDED2D1C83AC532695939E550ABB56964CB04EDE28C48255BCB2B48803ECE26BC42F509AE7AD084D402B1F2CB0A1869945AD35224CF82D1452E8C54B97C81B6FCBAE9572992DA8424CE5C8C6E4E09E2E295EB083FE02747DA52687E4DDFE76211BB947C84C361213D9B21408A14144B85564A39104C9E63C7BF6B0BDD99CC36D13D4E54DBD3E83C2ED65F12DF5B110BE1A6799125BF323A663BCBB3B96D32C4BCCFD820A583BA8B9B98B3DCD7D81FA9C9EBF433A926BAEB11A56FD038703911CB9125D57926D9B08A4A51B7CE5CA6AC388F9A74065F40AF6308A78E7F7F4C63264EC7540CAF44087442E7FE7F9AF7FFFB2E971957D9EA07AE541656DDB0FF6C069B24AAF +ss = 5ECCF621AB9A0C96475A8D23484F2F6EEA704862E4291E628FEE08FFFE1E0D0B + +count = 24 +keypair_coins = 293ABB6D1C207927945417CF84883EF010823E11B487ED55239E466E83696D0C0914D81173BFD7729D81603DEB601C93969B81C401E2B7B922B2873F8AA2D998 +pk = 04A592C364AACB2C89689106ABA29029C58DDF7050A2C78787358571AA506570288E747A4204C43E8C6020AA3E2D77B36C3440A618C55F3CAE6D43B979786E6A181D4107CB723BB6D0729CE3EB98E7A979CAEA9508563D5A0B7A7BA55B8985B71F3C489B370D37A66CE048A9DD27AD17B38C66880491985B2AF8916C547E9C6CB16B506170F29304C4393E8274EE254A3F13C6B0E31105442BF92799F21774BE9A0F64970E6AB581626115A1AA3EE4DA7936504D036B75BE6046E5778F58CABA93F8640BDB24982C17BA3445F2AB983B685644B596EF66ACF739039AD0A3CD61BB80B000F7E8BF53F60EBE235C0BF22C7873AECC6B3AE2F3B2CC3BB47D1B88423A188393C43C4999C32A886807CC4262BCD5A588C5E1BF8ED6A6EA9910C19A6042679926F314E7C7C85BF550482735E7FA088C857AC1578560A1A2F7E831223CBDE33A46632B7E24D400A82A8C7307C23D6CA25075B58E727673D7CB5554042CFB9B7F95B11A55A9FD63B1B9F0B60F6931A0BA1AD28B485753446B0005E8710D7189BF438407B8BA36A1687A48E550FA37CF4C6B591AFCB0AF6B8D2EA5A97B6C1729E7AE22E28F2082A5E653B5BABB0D147A8748F2606DDCC7847C24F0D32771B910CCBA85BEFCBD2B89C5035B2062E6B9BB40828902B82E12B752D48D52B7A6599AC014731E8DA091CB30186C849B61954DFF867899E5BF27428229376AC7D97FA03996160964ABE56D3D0278F9F91FEC6BC821FC822949AD5EC8A9D728B95B19052AD9442FA0527B3935F4697CFA3C7413CA2E81B32A57F69479E89760A46D710032EFBB662F9467F0D03C806B619B9228135076FA235D502230E56669E2354C1B412ECFD01A429B5C76B17AE2AB99C73B4110957AA38C22C8FA39C00261C78AA571B953D868690761655FF700803A477917AC8A6105CBFC220A30A0CC1466D7598B2058B3899C567A71A66D5C9DA75085686AA4AD4015100360C6102C84C336C13B229FF599DEE4CB2C90A1516682330722DA110F42F7C0A4F23A2089ADD65438DC66246671BE41E7766641B4C9139777E08CB4D5B953E602931A7DB3E1CE70D765516242AE8987454B898F19C5103BAD39207BB16771B5D4191ABBBDCA9B5BEA711081CA6521149B60975E02CC2250A355897960A8E203BA148F8BE76452420D2134B607976F7809CE97597D8CA57337FBBD6748C03227607FA082195B49753C43047B95A020C7D195B01DD3CDDC4C091916C37E447ACB606F2D232C37C9871831C1FB9A8D00717762F18E62E7995A7393E0A82617DA4674078D8F10065A28649E53377A88BB0F996D84FC83E9496564344D65B73AB96C4E887107D6C14488E604DFA15E55004FDA8B65AE19006EA7C8A7471B354A4E746703D5C79857A02EC222B78B966ECF161D97BA7CF39B37FE173485A0156C3712A6ECB14E629899DA9163709B672A243D1B87E15C0AD611419D85522252BB5A02AB725CB5EAEA5BDA73976D534A881B8C32C5328D117306FC5217AAB89CF51C6174489AD241D1CB261D449F24A235FCD46FC19A8D14A4281906236738A060061A494947BD91604431B1A2871080616EE2E915863B2BF2D9CD86743B0CC12A5D21C6C745B34247C17F9447579FCB9BD38AF3B64CC94782E299E1D98E68F8BCEFA20D1E8DB8552516 +sk = 817471E55466B5BABF92A2AD879C9C951BA60D230ADD630984B2528F9AA07FF755D7D79A2F9AB53D8986FD90895D5401DD97AD3F7A922516279B5858F2087E6491B7BC42B8A52A5952F23622D5603A0A3152990CFD6AB9CD863345D8BE5E295C06B79332B0AC89282E61E5534FE0AAC95ACA140398B64175235B94417B8799A4B6D6933A8B815BFBDCCF886664E7B8C5CB0B999BDCB2BDB288D569666C421E2A950D198158C0D36CED3A74D9032AB7A2B9F276BE025296A773266E516826480E520B844EB69710120373A94705F9030CA200A7F85A94DB1F55D46081570925A476099C3EBDB32C532A6D8F16BE4DE6416D0C30D450808CD3C08131A92551985B92255282BE6087703F182156A13CD144ACA3924FD15492DFD253EE5C9E78853590930521E843A0E37A26994197B3161EE1A60861C344720286B6566796787B05CB8FD76A419C364F1830FE2BCD3A2970E2DAC1DBBB3803F8053591B29BF64C2DC660EA9938200738E2C0C318B77FF86749C43C72F9667D80D462D549BDFEA30CB0D9641B29308A461DF72914B4B40213B62E68B161F83224C1A45472B5464F97C6D6371C69CA0D520426DB8C1E938A934D50AE0B03BE706B74CB8C674EA955A4D8AE1F6C0B56263041FCA1871A5799921C45D9BBF13C01F0A9C5D973086B33ACF923A2721C8B2FA7B058BB2E64F43BD80260B6BB19F26A4F55D53E7CCB1BFE3AA424976132C3B4B3A00908E722557A3657D285C8580EF45B76A207CB31A71402BA1EF280048378B80DC3312F78A74065B2DC873B22D37990E465E425B992722A25009A93A7A005D91B9460AB7C2336BD303883A151E829234C964265E42FBF8252CB89858D590CF0830E59C54021B83DA94884A173BE6BC454AD5A719252BEB52A4F7544A7FBC03CE9091E9ACC0568306E5BEC2ED942B39A8455FA341B84571AC3FCA43C14563F91395D117AB021C8F141A4EC7364BA4ABDD8896BC6B281C751A66C767AC960AB52058335E14E7FD8A4E1D44DE2670F9BBC67F682A0657530EBA11C31381897D989BD392FAE02D0AFBAA5AFA1748A80847AF4B326F970C6161E15B212A1C66003A4317348374E66B29FE87F36D01AF5F1C75BE11BFEA21DD8626765C46F0C153D0555B419227D50DA5232810D8517B1A5E4147A52AD07012D8DA23829F39A40C70D565937C58A11B1A25B27C8207246C4E1B40230E39E4F089D43D562EF954F332B7EA6B36EA28A9D26EB251AB562C0E44BD238874E93A4D3B900A4B2B08A0B68C2B82C0CB56325548DA3316279672913D2021D742C3619823C4391E64112B5B77E8D707F9C1A37D3464CD5F96543F720A0CC6C9631458CD9CEDEA7B6FCAA76D1E60C44F74B986A772CF593AE712214E21179519C39FA533A724FE8177EA59B1123E831E1DC561543A7E559697572157B60499C4C615D02099D34B0738581061A85B2DCAAF13556208B3E5AF388392490FC338DBC55BBF7D25F49F61BD7363CBE3841AAFAB88524B0CA3381F5B22DC84C6A112979C3C39E45157C0749C04B022F83F53733A21E1F1842E0E72F78C6AE1E337B53215AE8563B16D99EBD6225766185A0D92F9A28BBF4E2B444B7C8225148F601D014BBB8839B4B04A592C364AACB2C89689106ABA29029C58DDF7050A2C78787358571AA506570288E747A4204C43E8C6020AA3E2D77B36C3440A618C55F3CAE6D43B979786E6A181D4107CB723BB6D0729CE3EB98E7A979CAEA9508563D5A0B7A7BA55B8985B71F3C489B370D37A66CE048A9DD27AD17B38C66880491985B2AF8916C547E9C6CB16B506170F29304C4393E8274EE254A3F13C6B0E31105442BF92799F21774BE9A0F64970E6AB581626115A1AA3EE4DA7936504D036B75BE6046E5778F58CABA93F8640BDB24982C17BA3445F2AB983B685644B596EF66ACF739039AD0A3CD61BB80B000F7E8BF53F60EBE235C0BF22C7873AECC6B3AE2F3B2CC3BB47D1B88423A188393C43C4999C32A886807CC4262BCD5A588C5E1BF8ED6A6EA9910C19A6042679926F314E7C7C85BF550482735E7FA088C857AC1578560A1A2F7E831223CBDE33A46632B7E24D400A82A8C7307C23D6CA25075B58E727673D7CB5554042CFB9B7F95B11A55A9FD63B1B9F0B60F6931A0BA1AD28B485753446B0005E8710D7189BF438407B8BA36A1687A48E550FA37CF4C6B591AFCB0AF6B8D2EA5A97B6C1729E7AE22E28F2082A5E653B5BABB0D147A8748F2606DDCC7847C24F0D32771B910CCBA85BEFCBD2B89C5035B2062E6B9BB40828902B82E12B752D48D52B7A6599AC014731E8DA091CB30186C849B61954DFF867899E5BF27428229376AC7D97FA03996160964ABE56D3D0278F9F91FEC6BC821FC822949AD5EC8A9D728B95B19052AD9442FA0527B3935F4697CFA3C7413CA2E81B32A57F69479E89760A46D710032EFBB662F9467F0D03C806B619B9228135076FA235D502230E56669E2354C1B412ECFD01A429B5C76B17AE2AB99C73B4110957AA38C22C8FA39C00261C78AA571B953D868690761655FF700803A477917AC8A6105CBFC220A30A0CC1466D7598B2058B3899C567A71A66D5C9DA75085686AA4AD4015100360C6102C84C336C13B229FF599DEE4CB2C90A1516682330722DA110F42F7C0A4F23A2089ADD65438DC66246671BE41E7766641B4C9139777E08CB4D5B953E602931A7DB3E1CE70D765516242AE8987454B898F19C5103BAD39207BB16771B5D4191ABBBDCA9B5BEA711081CA6521149B60975E02CC2250A355897960A8E203BA148F8BE76452420D2134B607976F7809CE97597D8CA57337FBBD6748C03227607FA082195B49753C43047B95A020C7D195B01DD3CDDC4C091916C37E447ACB606F2D232C37C9871831C1FB9A8D00717762F18E62E7995A7393E0A82617DA4674078D8F10065A28649E53377A88BB0F996D84FC83E9496564344D65B73AB96C4E887107D6C14488E604DFA15E55004FDA8B65AE19006EA7C8A7471B354A4E746703D5C79857A02EC222B78B966ECF161D97BA7CF39B37FE173485A0156C3712A6ECB14E629899DA9163709B672A243D1B87E15C0AD611419D85522252BB5A02AB725CB5EAEA5BDA73976D534A881B8C32C5328D117306FC5217AAB89CF51C6174489AD241D1CB261D449F24A235FCD46FC19A8D14A4281906236738A060061A494947BD91604431B1A2871080616EE2E915863B2BF2D9CD86743B0CC12A5D21C6C745B34247C17F9447579FCB9BD38AF3B64CC94782E299E1D98E68F8BCEFA20D1E8DB85525167378EF967195C977D43A50D03205044006715A6A8A8263D717F40170B49E6BD00914D81173BFD7729D81603DEB601C93969B81C401E2B7B922B2873F8AA2D998 +encap_coins = EBECB3E8C3DC591EAA503C332C8FBDF07804FC915B771779C1BE60F42E2F3EAD +ct = B5CB471B75CA90F9E2EC373494B16B8C96FD976CC99884A16D60C1768DBC9CD0BB5422A5137D5E3C6B98066B6CA31D5D3C3EC598EAFCCA20DD4F5255E7220F5E35E8429921F2788C5C678D2890831C5C100DFA0050E13733D5684AAB70AD26741E2B35BA077B5E2EE7F538CA110B94618707D2411BC735050AB1646B553921754D9690195FAC0ADB0B2A443DB55EB9DA788C2A0F5B39AD7694CE4F948294961926A9A8912AAEC6A2A4526BE5A9622D597E87D698B9B68CFDB43AAFE287396B4D9D1FAEC0DFA56B66A8FECF209D3D99308E381252E76AB08DE41EA98E6F5E38DED850BDF2FFDBB4E6B5F01938A3F189291C89115B2FCC8612EB28E2A6F855F0D62737C5C168A7A40E59DD3783E7F17FA792174F46F7DFDEDFACDB751C396B9AA5F3DCF616BFB1DE5F0F4E20248E66715EF9190029EA704CE163543F8557CC45B0E516230CADE4B69AC97B3FA7B0EC611BF6AAFABEC49D967E71E9BCB29FFE53E170685A4EF7574D77DF8FAA573C804A3E592DE4F65DAF0FE5C417F8E5A40AC07CF3F1530F4BF478170B9F86CC9B3FD0EE8B8762267EAB75F947722E7F9CDFA7C759C54B093E05A2D5F31795EC0050E37ED9A2FCFF08CDBB6A5BE9E81BC31CBEEBA26AB29B4AB7DE5875C3A86B8BDC12A877302C353607E1093EA34EEC6724602F968187A4A24E300F156047F19B84FCDDCC2232DAD9C7087787C7967574C786682E0FB67B5941851A46B4994824ED6E26C14C6DD8D0C1FB79F7B1F682E5DC6512872BF9A47B98EA5592F6EF136A1B49F258E9F4A9AF0D5D501C54805D5DE745197438CCC9B25BA9BABB8C1B24F979C3062289A126D1CE671212D59DD8B295CA4E96A7472C0723EE271255A4D1F0FD45B63A4D71B22D579A39899B6B5342F34415EEEF1BF6F281758C673EC97B9E7FFE0BA3F277F7DDFB24141108C185BB2E66D079EA3128D9EC2E912EF9964014CB4ADBFBA6C89EEC8DBD723E3A1745AC0E0199A946AF3A51616D5EB1413C25C8DC5E87D7C7007C222D989CB4E89BB633789AED3A76E4804C998EEFFD9CF510E286BFC3187EE5A71F5DC1D6615EDFAB9B4972454F867C269813A54828D0B03D1964DAC14837C3A53ECF657F977C3DAD1C842E4D636342D33827845A2B76F15A7F2BB171886FEC9A3B0240259779DE76D0324EEDB458F86E9A0EC30E5B28F676D51C1D1FFB85312B5AE48E9984FF9B79676BDF60DB0763C45BA6BE533AE6C3C8D0EE87336407EBC9711C899B960E82928C2A6259F248E123ACFB0365F636FB9A0565271987189515A213CA0BB151266BEB90AFAB094E3180A7D2E99FEEFDAD480D173EAFF71E74AED0B91C95031BA069C959B54D28496A08BC8BB738D0A63F31225BE657E70AF8E0A00AAA9B1CF055EDF033640577C76BF30FC5C46FC66A277D93F1B9773C14CA4221D4DF57E0D3C7D147700FB0BB3E91E5F2A71D93EB304C1F1AA74834A137C75C0925ED023577D89DDA17E6CDA49FCF7B4D44912005FB22C9C358E3E17C4AF23603F663BA58010965D1569B93 +ss = 9C5462C2F6642744C58E0FE1631ED21BFF41EF5FF4E8184A85E76CFE3160FBB6 + +count = 25 +keypair_coins = 74D87C7556F2671F2D666854A4D6E073E69F35421E6E1A428CCCEA49C37F972CE82AB6CD4250546E9D3AAC903D6CC326CC39AE0B04CFFE6C6B3FFBD29AB63DD7 +pk = BFD11FC259A2115806F9F68AB15859A763A49D169D615B4999714D550707E8A0C0A93C8DB2FB5E4DE7C93111206F052A7D7A5E0B5632D94C7A87596D24E950B361A185F065FA96435F312745164693FAB8D3A741C56C6F10D8BE52C06A5D83CB1BD327E5B28DB12291D907A2888136B6FA3A20A48990C6B6C81499DE2BB12D19B591234D55C4549A3861626167C5A17CC2A4CC9F668DF0707D26795DE7F771BC614B994B574FA309A1E1C8B4A0A4AD6240286BB78BA701ECC430269A37843149E1F1AAB731523359C735694F09298E2A1A08C6EC273B4A1D57118B20524FDA18190C2029DA4095EAD53212F609A76A343D5C68FF17CE6B92B340DBB8CC6C03AE4B29DF243B93233AF6B95EB5A7A8B8643B0CF5A8114152B8EA54F0E3668511CEFF536D888BAEF85A62299C641769023B7B92088546F338448C1977804B71781A554BCA5F13C0480B42C5A6626904516139ABAA54B429E7A0502B17A5A2727A7F230D63C5764DD497F164B24E5BA3A626785AD1B917A6B77B175E64323783C9791832A7C442B895EB338E6A29EF671D4D7C0230668C14BC794CF11340229AC905891CF1C51EF62B6A4A0553331F7F581054DA45C370BF606126B39492E4A3B8592BBE0359BC017557379471EF922367D82635D8494C88BD38A7720669A1F9145367A92090FC5DF15C034B82CDD9B7CB9CA76E74B2069C36987556012BF0746424677F60ADE29C9CB52C6D9CC2052394691D7306952C65EF498DA41279EEABCCC66B3A41747A8B447D7EE81116EABC04F4B776923C93A28FFE888652FC34415BAAEB6854D4732745A4BD5BA61C35678780063ED874C81823CEAE41B9684A05410266F7ECAFFBFCB5285472E5B02FB8C15D126410F0BA3BA8536CFDB65D23797414A55F2620BE653A98F33C95690714FBD3418C6893F8693908D41D6D69A744E63B2B0C190E3B1696A5C8B1CBBAA4719A0BD184F896C9D8F926DC933BA81B2785C05A51B22A95191F43DC23B42C050DC9133DE2B003A5B6F1A5730F490454C58AF291CD8D46ACDE69842DF79353670A54E2C88CC693745516EE64C2AFEBB95DF25EC0608AE4AA9C89215D471BBF68DC6530FC0FEE495FDFA09E98BA8D37F9636B270BD1102579EB7F1BF0B911CB79F03537168867EAF60D77D48BE27BC935B02662929DBF2263270670E0601E5E43008BCC07F06451E54755FCAB421D584BB603008C9909CAA61CF99A4B43A93EA8A3440991BA402C9A8FC51F90584C55EAA450B7A600342E98420D728A8B6344659F2A0263140E69AB86BDC6B20B3AA0920B90C70C0108358C8A92B27635154AF9A0A76080EE593CE3D37E40FA33D0C654AA77171F822E0082C95CB60B54A6A26099443F671E863889F35A0B9597B3442A71FA704F164834FC9C8E2C63847C9992CD73C1BFE7ABD3D75448D21926DA0938F92B9133A92E426DFD2634A677878EA9820F5C26A2382FDB1C4B8ED59DB74B4490B87B0DFC35F5B22112E5110D494E53C50D3FD6C64CB485BF5AB37F7A1B709122C7086D3FA56FDDC966DB2C53E09B976F986A334290DD8C3C7E6582C4EAAB182766FF70503B03B4E68261CD0303F7A83732795CBF84A04D78A541A0929691C94A094B7B8F92C5D5A3BC95122A6A7968DBB1334A712823D470766B3B9E7B55672D02AE +sk = 60E93BEB5544294BBD612141956430CFF041E0F969E954A48298C7B5F321B9E1B70B7C796A753CC5BB93722B20380ABD6B8AAC4F0B102DDAB380B88AB9DC040FCAA8B775882A673864FB757A3453273627DF0690C90000B54112DCA50235BA14FEA59A764736A018A091B822A636AE7934A33BC5C15A7B77E1E53289C9757EC75CBBB792645325D6755D79B972AE993C9E3413AC040B3BCC85C4F98A2E185BF4EA1D19A4737DC78547847B7EF385D2A07BFE272764CC873BE8CB1286A0E7C83539D2B9BAD5A17F0893CCF41E2B5CAB8F66706955C5E168A99E9820A8402CB25A434F1A149F0148761014D32A51BC73A8CDBCB104C29BE554B2724107EF314C25D082C7252E0CE68833A47A619A611B08394960A64D8C22C25AA1121A8033605C9BF35221730B15E6269CC25FEBCB8E3336870B3C1C9D3A89DE4A9042758F517B55F85133B403C501590A0F53542239118F93874B319BE0D063AD82144ECA6156051424235D785C92AC00C412F8AC0FF5B88F056142F8A0934734B09BA14C00089BBA136279A5FE462082AB4B0709A6DB3279F8E9544F3909FF78B264399C2ED129C803B341D816EAE96BC531952D55059EF0233B0C18E1F7AEE5498FF6F11DBE801DFE193BB61B870008AE57483DAEB8CA7CCB460193C68A509E8DC738FF227FDA89B21EBA0053992A4D3A1F8767C0D3F3419838C8C7A2C0B3D68E737BA77221C68A8570948A322A143E5A03888C08A1BB7C42E9DB9111819ED94523848BC32781A881A468D26AA7FA4ACB926AB8695B24A094B8CCB0423192CEA88C1FAC818A6B0CA19E423B7AFCB51B121D48EA44037963EC1A325DC0BF7555977F468FEB49B8346338DB983E512B2FDEB35A300495F437CBA88C36D01536F7A56BC9DABD1000B77751031102CABA7182E2C440919435A14BC1AE1B354499324862885C9C301B7258FAF778CD0A4721F26EE32C5DCC7A7283DC10E3CB04713255D0044BF1D9234F5180F32483F7079B2C0558B95C622DB01BE885B2580931FC8617B6940DDFD54CB327712DA02F90A6A8DDB6BA17A31FB1D7231D94CAC2FAB88A43B0F56968FE2B724FC8A97E1A371C96A9A17A94FDA08897BA1EDF959F37029A84E707EF676B89FCB5E94B8997D95542E26CBD28A7D01B1FEF76B1C91AC327874C04F01B2D6280FDC60CEAD3587BC0AA6EC76F064B3263B2419BF3120AA7791053BFA6E089F6CB8BB020B5C5E2517D4B2F34EC3C4237AF98DAB3F4D44AE161773ED53F391A689D7B38F01155FCD080869656E15BAF9A2A6419B38C2EC39112B4216FBC5D94771FCC4369EB90AACCF3A752020E24F97C30C4C67632180E9B928A0941C23C03CE588F7D841AAB91B74B7959BFD8B5B042294EBB094B523DFC425E9EF70BD2E2BCB2937EEDBA0AD018737BA91A3691030C1A6E54C0BD4336A4BBB7C5DC79057EF5C574C04DFCF9C8407CAC999A54975B1A45519075CA167B8285B2D554EB81702E30626897413051AA546BC63A42723BB95F0DCC525944C967D7A5793C34C7638EE59608C8680F2418B648B7450B09C31BEBAABB956E1203BFB3D377373B5483C93378F15DCF2959D0E02A15E2277B7AB78CB2BA78703F13DAB307BA1B663C86BFD11FC259A2115806F9F68AB15859A763A49D169D615B4999714D550707E8A0C0A93C8DB2FB5E4DE7C93111206F052A7D7A5E0B5632D94C7A87596D24E950B361A185F065FA96435F312745164693FAB8D3A741C56C6F10D8BE52C06A5D83CB1BD327E5B28DB12291D907A2888136B6FA3A20A48990C6B6C81499DE2BB12D19B591234D55C4549A3861626167C5A17CC2A4CC9F668DF0707D26795DE7F771BC614B994B574FA309A1E1C8B4A0A4AD6240286BB78BA701ECC430269A37843149E1F1AAB731523359C735694F09298E2A1A08C6EC273B4A1D57118B20524FDA18190C2029DA4095EAD53212F609A76A343D5C68FF17CE6B92B340DBB8CC6C03AE4B29DF243B93233AF6B95EB5A7A8B8643B0CF5A8114152B8EA54F0E3668511CEFF536D888BAEF85A62299C641769023B7B92088546F338448C1977804B71781A554BCA5F13C0480B42C5A6626904516139ABAA54B429E7A0502B17A5A2727A7F230D63C5764DD497F164B24E5BA3A626785AD1B917A6B77B175E64323783C9791832A7C442B895EB338E6A29EF671D4D7C0230668C14BC794CF11340229AC905891CF1C51EF62B6A4A0553331F7F581054DA45C370BF606126B39492E4A3B8592BBE0359BC017557379471EF922367D82635D8494C88BD38A7720669A1F9145367A92090FC5DF15C034B82CDD9B7CB9CA76E74B2069C36987556012BF0746424677F60ADE29C9CB52C6D9CC2052394691D7306952C65EF498DA41279EEABCCC66B3A41747A8B447D7EE81116EABC04F4B776923C93A28FFE888652FC34415BAAEB6854D4732745A4BD5BA61C35678780063ED874C81823CEAE41B9684A05410266F7ECAFFBFCB5285472E5B02FB8C15D126410F0BA3BA8536CFDB65D23797414A55F2620BE653A98F33C95690714FBD3418C6893F8693908D41D6D69A744E63B2B0C190E3B1696A5C8B1CBBAA4719A0BD184F896C9D8F926DC933BA81B2785C05A51B22A95191F43DC23B42C050DC9133DE2B003A5B6F1A5730F490454C58AF291CD8D46ACDE69842DF79353670A54E2C88CC693745516EE64C2AFEBB95DF25EC0608AE4AA9C89215D471BBF68DC6530FC0FEE495FDFA09E98BA8D37F9636B270BD1102579EB7F1BF0B911CB79F03537168867EAF60D77D48BE27BC935B02662929DBF2263270670E0601E5E43008BCC07F06451E54755FCAB421D584BB603008C9909CAA61CF99A4B43A93EA8A3440991BA402C9A8FC51F90584C55EAA450B7A600342E98420D728A8B6344659F2A0263140E69AB86BDC6B20B3AA0920B90C70C0108358C8A92B27635154AF9A0A76080EE593CE3D37E40FA33D0C654AA77171F822E0082C95CB60B54A6A26099443F671E863889F35A0B9597B3442A71FA704F164834FC9C8E2C63847C9992CD73C1BFE7ABD3D75448D21926DA0938F92B9133A92E426DFD2634A677878EA9820F5C26A2382FDB1C4B8ED59DB74B4490B87B0DFC35F5B22112E5110D494E53C50D3FD6C64CB485BF5AB37F7A1B709122C7086D3FA56FDDC966DB2C53E09B976F986A334290DD8C3C7E6582C4EAAB182766FF70503B03B4E68261CD0303F7A83732795CBF84A04D78A541A0929691C94A094B7B8F92C5D5A3BC95122A6A7968DBB1334A712823D470766B3B9E7B55672D02AE16FE956BE4601573D72306A251F69BC2181253E2417E178341FD6553303AC189E82AB6CD4250546E9D3AAC903D6CC326CC39AE0B04CFFE6C6B3FFBD29AB63DD7 +encap_coins = A9DA4FAE601738A23F95165DA22CDAA8BD455688B6033C74B4604DABDFD46FD4 +ct = 29587FF1D9FE8E6A7E37899F7359DD6881A0B5727622E83AD2557227963F8836D0B004767A59F560BBE3C3D6DF1F08D4A1154E78EE29D92FA62348C45AA49A8FFA4D95F7379CCFC5E5823159639B6BC4665C4B6EDC7B4D08E3144C00A724A4989ACC1381BC268DC2CF22B804F232BAE16381A4E3CA6EE88C67BC9DB3B2E823896039981D74A7C9592F687984F217714C55ABD3593E19C644086C0E90A3413A750EAB9FD12FD1FBAC27B895A01E136195FC8F5F64C86BC5A29BFFB8B26D0F5AF6DEAE6C5F2D24075B59FE83F249C2DB464D97F03D774B782D749D73E56D138BB3282A3AA08171897476B3A6F5FEA22C16843347C21C531CF35EF74CA46C4A55C434A44243BECC9DD4AA1CA24E2439CCEBDF230BC65B43AB8D1C35407A8AAF0D7EC28CC6329FE91B975AB27A1A6DC53E7800A57686E47C687FA4FA802A405AD26CC80EBF30D036630F8DA87233CF6E4AEF71BF8F727348A0F90E71FDFC2F36C95860C14D761C906A1BEA518628BCBF59E112F20F9235BA1C0D46036EE1C09FB4B817A19021A7E3E23085CD5263295DFD1A8D23BFBA48149BEB971C4BA849C50EF7E1208E9CE8DB36E1FA3C13D4C02F8E581A2D41E34BD017591219E948D2AB6612F8BE11EC784E1C0EDC2711B7B07171AA14F5589E4A36043496D416EAB3277CA0007BC691382E82AFDBC3FA707E86765ABA786CED9180DB4F8ACE57C70614391E13E87D527B08ADF06222EF06C3DF78529B557A8F53E085A41E681C7DA4366BC6EF73F38F435E88A4883EAD60E6D354092FC1C6D0053D6F83C63151E2786E04722F741425984D8E4E029D1C38A6E67A6FB46E7579E6D1296DDE0523AE9F0FA398EF48751B9BC21ED629B9B223C90A3560F870C05C11D7DF66A22CA0A1AD387669AB5A9E61BBDD5DBEFC16BE4D698B598A76F9EED0A07C9A130528F3033E22C0825E2AB42DE3C3242EF912F2A23A1F09DECDEAB19AA061538A44B80899CE039CCB7ED573D9C1BCDB1BE62BA4FA8715F257597EE48589375C78DEEF6FE94BB6F87DB83A0F17C68080B957C7994B8B4CF7BED199521189006165DD82DC06AF9683536E266EAED067D8FD70E8532AF822F0C1A153433E2AC2E3601BC73B98F9B87653E1BFAE2F562F12199C52E126283E9627496568675BF3A9B0D42ED07606F3B7CA9221511177D2B797408E1D0660988E50DAD746C28BC9B6F030116E0C1666D5862D52C42B2BD2412FEE587643D9E758B80E0517693CFE46C166BC8F0F63B1FE61DF17D8993EDADD5D0B7646600214BECCCA2726424E86F75C37A00BB854E1767A2319299EB26F317A3A0322266F2C491F8A714232433ECC7789B9827519D31409E9CF82578891FADDEAD606572E82D0F3662BD78A00C75D74920194DF979ED222B37B03705B57222E923183C4B2E9BFEF581767DB54AA188FD66BB1F56D6DADF9466580F7C5028AF5E7C35C3736704D4BB5F29C03BEF5AD663CF6AC99DFF867EF232470EC2EFBEE6C6EDEF3D78CEA13F461D1C8D16B758C01EAD31550E8CA71DE +ss = 016E1A77AE909C6EF7A8B38456A01D1B9AEAD47AA379F4051D74756223FC2EE8 + +count = 26 +keypair_coins = 013BAB0212D04ECD54B478DAF72748003A25E2CB060BA6CC50BF95C292B8206BF7642088944D664CA7996BA944EFF7E4ABD0B900D3D1728D99A9F722F928FEDD +pk = 12422CEA108045D2888E2C29CE0BCD454B95C09730D6C4698E779987523DE0E972332544C34350D29C7BC030BB6273B9F1C98C3A63170ABB2641C54DAD64790E83387C51AAC922814F834C4745409273AB00051B2A819EEFC9A048F222626409FA7B3F8D27A0DD754F9372AA37EB92F6454FDBE3116D406B571203DC05201C31A52BA8B2B95B191A7B7B55E743C4CCB80A710863AB741B727F176224012C539AF2BD062BA6BE7A42EAC08C5B6B420BECBB41B55454EC1F41347CCD984F11767BFC82665286A56DD31598834B37CA6EE93658999798EAD094298160B7E6C76978370DB3180273401532315168A161E087D4C6086846A3B60B80103C1AD814843BCA7AB329C7914982ED32BF16507B3024A16F231281A732D3D155FA60260064919C484C1741874BA96CFD91AEBE5C314E407A66D7CC4C846176D759618654AC2A52FE69C69A375ECF625E2889ABEBF395FA20561BA6300A72A2091356FCF197C866AB5468A3AF7BB3DE755836D9784F7C0949445D83B3358721C7DB3C09B5120F7F757BFE3366AE4365B677255EA680F27C310F768E56F1AAB8792259340BD6B984406148A254BB605A291C0946C83B1E9C5BB3F879A787B9106F98809E94BDC23C062D592318F9854DF04BCC343D64387BAF398599BB352F82B1F0A5B530E824CFD69D7A4A15CB5624F70CBEFE1C61302B8FCA337D70D1900DC817837619FA893208DA873C350F02892097708CC637093EB25BFB4B3C793331F0FC73C5446CB11276824CBE419378A224A683FA0D17C671FB8C4BDAF18C20C53A21A4BB8FBA9AB7A1B7ECCC81946BB5FCB15E1D08ADA7761A55D503DBA912B73765FF93A6AB642B5FB72ED4F16657AC448A1957413CAE547CCD76D9936C860C70C5635C28754421AF13448959D67CDEA3997EE923AA326129B5397C15AB90F95832F263E080A42460CF9F081152AA59CF17263D008ACBF146F34A7808257689A3148E58A0A0117FBB47BCA97810A42A7E0F734C0A17745AFC6ADE752080B39F3267399C20B1FDFA195437B83EF5125405ABA8D2CA42040371C541A5FC339772948A21B7EFC30C909C7938779BD012642441083150118CE431BAA72E989425210945A7C47479F4873E3C3CA6698ECB2A050415066D0BBE5E240222A2884B3CC17BACC14164BE0D21330456A279547579F8A4E9443D913A154210A3FD1A1A263186445A8E1B884BBE8B54D0196AFFDC47544C8D10A69378FA139BC8A422C44C5568555F9080F170BC6E97284F448E6C23885D603A732C469B376A762B5068E29E80B74F994588D9822F3E81BA6FFC273A9C905D0910062BBE94AA1E0C8C3424303845779F8C9B515DFA0864578A66DA8AD7B56DA2810C11E1A2888B88BB55B8C096A145B62AD9D2C98E003658C9729D7B82550527411A9C0B981F3479251C1774014749D211687DDA83626C6BFCD5B08F8075954BC10F48623838A736E38C1143B9472B4DF5D30D37F0BD7C727A2F16A3CBE0015DAB5A12E27A63F7AEDB841D6D9BB1A79A5C3E903C9E374DA62A298C549B9842B77C33AAB6B4939AEB55704CB610D084950C41B746AFD7157613618F6F1574BA51B36F7828AF0AA4F79C0840EA3D679013DF619046E935E0BD96EC59643250A0B38F9779B0142A9E546EB525E72AD204D1EB31A6 +sk = 3A756D6DD157ABA65D60721C41EB4EDBEC38834C22E9AC88F03119B472BDA0961D1F5C3268EC6492F92D5D066DCBA69CE9C20311E1C15FA81FA5014C6C956F88055FC2D35E6B295D05D6167E4375BFF23257BA72C0F97F452B609F22B57F7C27F71A4F259938B5AA18097399A0D32C3602203BB6769015495B4BB7317C9E99C966215C58D3455EFCD36003826C2C7B1BB437A66A968DCBA35DAD7098FCE9133110A109C2B91764719CA25866C98550082E88F29E78B38B40A53C4D626FE63390A290B54389624C597909D79FD6A658E2166704C386EB1C8E951B4C7619B7B79349C3F59505809B1095405949CC55C109A1108649552D5F83A970083BFFEB6550893B5C5106417B0CF1E44B6B05A9F9093E386C9D43F14D4CFBABD3B17EFB49AA2C571AE99197D2E4B7D58775962570D528B8EBB8032E8065BDCAA391837D483A27239A4A8C0B8F13013F4AAA6BAC0CA86E532523D9620BF9C2C3E2AED2365E90A1699A4CBF454C4D2E2C4273E93456142F737C8B3697B9821039142C3E25B346D020C829850D6CE2649087AB762C25BAA2639C8C7A852BC76D456EE69747FE561E267844A7E51AE05C5820F0C2B880B05CC935A3BBADE2C6A4881CAC21938A304C4CD2C1CC1BFABD932B777CC459BAE4BE75389862464367C6318A0521DD62C5F070A139A95522D10D2E4134C06522CF52834562A208B22A95431014934F51EC49F5EC087D1435DB935BB5223C3EC87BB7F7427A458232474AD9CC222B422149977C7F366F48B0B14AB260BD0A8C04623F9B12091AE049725064D0BB4A249075816AA249718F1A7768C3469AAC7182D2F01D6373038D7C4CA24802693A354C19C66DBA1C05EB180AD04C1FB095B42947D16B66139384C71206BD0BA9AD9BBB5DD7593D08616C214FD9013E792A5B4930122D1C571F1315D235562C167D7546C8EF7536A929982F6A55CE7209B0D5735F69AC6C52A824E508D2481A5BE01075C54D8743BCD76767B69B5E350989E629C97AC1982A75806126245FA692DEF22B15A29499C82EF7F993EB3472F850527D900DA2F513A9366A4FA978038B9E46752DBB8084FB12CBC591008D692544078343E9AD67909DBD77C18BF18F02607210F4A0F5DC749F8B0BF371309027968968678B0135AF65138C5544ABD57ED8A646409224D32052BB14BAB4D51DAC981CCD838B4A513A36A351B81A0785CA281D7106872583B8BABBD62A5787BAB8EC9019C7009130EC6BE4E25D9992AA1DD13DA9C1A7F1CA27FD78968741436003789B8C781C599C98D2465C7513CFE85154D7A655216E5B3B800DEAA6B9DC7C0D998B9CE2B99DA6AFC27A5EF6C152EB16184D91CD038CBA69835AB3500AC2E87368F37888BA90F219CE9DA24109F0B3E1894DB5F640A17B0E705195A350A61EC62B2C7A216231C530F557D4C5605346A6500B7C1484012FC87DD4526823C447B71A726D65753716B30C212565DAC474CA3ACEE664218285A5C4A726F681E98619E2A289D08895BEA26BD6A3BFF3A5C5C1EA894CB6440D075004F879B41A14EBB82B74AB0131D0B3348742DB7244E750AE2B7BB57F8A95379502827880F8A50ECB1394DB2553C07627C113A300078DB1BAC7B5007812422CEA108045D2888E2C29CE0BCD454B95C09730D6C4698E779987523DE0E972332544C34350D29C7BC030BB6273B9F1C98C3A63170ABB2641C54DAD64790E83387C51AAC922814F834C4745409273AB00051B2A819EEFC9A048F222626409FA7B3F8D27A0DD754F9372AA37EB92F6454FDBE3116D406B571203DC05201C31A52BA8B2B95B191A7B7B55E743C4CCB80A710863AB741B727F176224012C539AF2BD062BA6BE7A42EAC08C5B6B420BECBB41B55454EC1F41347CCD984F11767BFC82665286A56DD31598834B37CA6EE93658999798EAD094298160B7E6C76978370DB3180273401532315168A161E087D4C6086846A3B60B80103C1AD814843BCA7AB329C7914982ED32BF16507B3024A16F231281A732D3D155FA60260064919C484C1741874BA96CFD91AEBE5C314E407A66D7CC4C846176D759618654AC2A52FE69C69A375ECF625E2889ABEBF395FA20561BA6300A72A2091356FCF197C866AB5468A3AF7BB3DE755836D9784F7C0949445D83B3358721C7DB3C09B5120F7F757BFE3366AE4365B677255EA680F27C310F768E56F1AAB8792259340BD6B984406148A254BB605A291C0946C83B1E9C5BB3F879A787B9106F98809E94BDC23C062D592318F9854DF04BCC343D64387BAF398599BB352F82B1F0A5B530E824CFD69D7A4A15CB5624F70CBEFE1C61302B8FCA337D70D1900DC817837619FA893208DA873C350F02892097708CC637093EB25BFB4B3C793331F0FC73C5446CB11276824CBE419378A224A683FA0D17C671FB8C4BDAF18C20C53A21A4BB8FBA9AB7A1B7ECCC81946BB5FCB15E1D08ADA7761A55D503DBA912B73765FF93A6AB642B5FB72ED4F16657AC448A1957413CAE547CCD76D9936C860C70C5635C28754421AF13448959D67CDEA3997EE923AA326129B5397C15AB90F95832F263E080A42460CF9F081152AA59CF17263D008ACBF146F34A7808257689A3148E58A0A0117FBB47BCA97810A42A7E0F734C0A17745AFC6ADE752080B39F3267399C20B1FDFA195437B83EF5125405ABA8D2CA42040371C541A5FC339772948A21B7EFC30C909C7938779BD012642441083150118CE431BAA72E989425210945A7C47479F4873E3C3CA6698ECB2A050415066D0BBE5E240222A2884B3CC17BACC14164BE0D21330456A279547579F8A4E9443D913A154210A3FD1A1A263186445A8E1B884BBE8B54D0196AFFDC47544C8D10A69378FA139BC8A422C44C5568555F9080F170BC6E97284F448E6C23885D603A732C469B376A762B5068E29E80B74F994588D9822F3E81BA6FFC273A9C905D0910062BBE94AA1E0C8C3424303845779F8C9B515DFA0864578A66DA8AD7B56DA2810C11E1A2888B88BB55B8C096A145B62AD9D2C98E003658C9729D7B82550527411A9C0B981F3479251C1774014749D211687DDA83626C6BFCD5B08F8075954BC10F48623838A736E38C1143B9472B4DF5D30D37F0BD7C727A2F16A3CBE0015DAB5A12E27A63F7AEDB841D6D9BB1A79A5C3E903C9E374DA62A298C549B9842B77C33AAB6B4939AEB55704CB610D084950C41B746AFD7157613618F6F1574BA51B36F7828AF0AA4F79C0840EA3D679013DF619046E935E0BD96EC59643250A0B38F9779B0142A9E546EB525E72AD204D1EB31A6633BEE89571E8FC16151491EA71234AB83289426559F90C67903A36E4AFAA6F4F7642088944D664CA7996BA944EFF7E4ABD0B900D3D1728D99A9F722F928FEDD +encap_coins = E821E6E3209B923765F0DED2D65DEC798C9CEEE04665ACE3061FE506B49AC7D1 +ct = 48380C6C22B1D98AD195A8780E7517F92C25BBD91D8BA68C63CB4D553C23A7FCAAF96812B4541DD435D14EB57B35182882645D2762076CF54AB70BAAA243EFD4F39E17265BE171E9FB603BDBAD009527B53BCF612340155D9D59F998F0A07A7298BE1078613537664D56536C92D265A06FFEEC84B95D1B629FE6C0A67AF30AAF5B2E91F0D8A33C1E5BDF0C9D60401299B0DDB4C01272884A3CFE4251A7F19171E8831F65D22EC3739E5513716E38B62CA8BA8ABA027D76A81A6B00DAD5211A9EDDB30CC288F31A8D76C3F0717568AA03405C1C71AEE17A442D899DD9F283005721D5796045378AA905E1C2CAE5AD8786AA3556723B98FBBD90B5D28B3AACFBF626A9C6ECE6327815AE052CBD31E32CFF99D1B0E15F9B16766F9949D9F45F3C67EA668848BA83ADD8DDD316E5CB5C76B106B9E76FC2D9D97A8B2211DC2D65138711E4E919EF0EBF62667F2F430DCFCA3375D4A27F50A6367F5642E437DDAEFBFED3A148DDE3DE6AA8999FB73F53CD9F73F37E171904D57F355D346CF36C9DB4A9A9744C8541ED91FD5ADEE47347F69ECCFD08C7DDEC2D6A1555FF6642FAC2108C112D2B3D762FA246B1453C33A845F735B73EF016C3DC2EF88DBE818ECFCF73BF915E03CD147CE30403688A70E5BEC05E0A37FE174D37AC2D443093CA0F48B9D7BD90C972B05A0B9999E81F3CAB9E56CA91CAF7173B31462428608CDDCED2C89E540DDCDBBB9F573FDB0469EE1ED1EB2A52E737F020EA12C3FFAB73D53DD904D2C920D9D733EE7A6876E74331D22F14C596CBA19E69CC4BE72A9E9BB26ECFEDCAB38CF63EAD771E231770F9FDDC111F06FD938A50FFBBB6E1CF2B5D12EEFB88B7F7D44F67E3702C8546EC98977A28EAD4DA1DB52681651558FBED59E0A2C22DE2BCCEEEFAEDAADCE13D03C761409EB517C77B489BAF36FDD13A4A08F57B25EF6FD2618C6484F798A203E421FC6447C3DD2487DCB9913D65712C6FB34760BD1F07F4F9B605B917307E6FC8C8CBC87E88440008302DBF1708DF3986AC284740E3444ACB74F88913F50F5515272560CCC8D59E6C2ECA1314B4551F81ED073CCC0F242A637481F787F215F4115C2A42BC0F3D1647ED181ED9AB1294C2B9DFD4D1F64C57CD5C2FDBB548CBC26374AFE8C24660C50F5475C4625AD23D006B309CDBB78A7F769316184AE9F2664F6D7969D9D28BA50370BF0D01A565355E6B4D2794B1AD08524A2913C60A6A470244A1CDE2F0E357996DF9BAB6F0D6DB8621C7A7B72F51E8A23273AEF9417A3F5A9A3B1EF33B0369259F6CE30FBABC6ADD38BB1B379203F622998AB3D97B1870F4B06A69666A633E4D87119090AAD22CE1793F7DEA6DF784A5A4020C5D7CA676F0AFB7129E7F18756A14AADBA2CE57C875257FFDCCD01520481D9992E1CBE802DDFAD74A9E9F00C9C65833411E046D7A5FDD25784E964F5E7377221F06FC7D62D0F6B960539C069C76B5B80F94D6017442EC1FAA3A9551B9D5999DFEDCFA9A6FF439C2A08DBB0E3727219AD93DF2296779CBA425AC0212 +ss = E688170871DBFB0F0C93BD5389DCCA06ACCF082595CC6A1A12197715EC262277 + +count = 27 +keypair_coins = CCB073C4B90BE0AD746E26FB093B60C70110BD1DCBCDDB566A8CFFB7B3CAF80E55F35361778BC0A53EA94003FCC0252D8333C58152482AF1E9C9D2BDF12F377F +pk = ACE2AF54375D684A6CB1FB38BD9C803A158483F91175263779E75B6D42734DC72FA02BC3B09630A0F79E2F95CB067C7DABF42F409A9635D55106E91E32341AAA4808DF6528C3BA98886184E0195E3CA09D9CC525980CB5A2E9027C6A88E9042BF77653B9DC02AD3CBB04F594BAE08DA4683DFC960708D85E39A28AD6E6A7DC81A2F0F8167633901298628B695CC1868756A97D80B1AFEBB71EBA5969A1086DE4D611F737AF56A83C7378C6E5E04E79A8967514CC668BC8FB7C7A1A671E29D55068E34D883A8320438AE7A44F01DB1D4DD07304081D684796A9257154381EC44562A8D005F3DC4C94D5CE9E36705132ACC8876142194DA54934095C2D5725A10E376432B17BF7D1B085D342CB3C633A085E950248CCC9C7FF350EFC341D07D0CA06E6BEC943353C479506691F2347A29CCB34AD09C929692ED98640E6B8560529CB17030EBFA4C769FC7707C75D86C234EDD78E7B3010FE86BF71748CC1C5B00023944774200B2163B403B8207093DFC959B6AA09FE6B98F6E83F972A50ABF113E9DA2FB9FA10D0D05789CCAF05C448854249BA8973A19C537DD69D3F39744DA89DEBB58705EC90EA56CDF428087D8333B16B1A9E59794D49A40B513B50867979230243B27F3D784932E1CAADF8B58FE11BBEA62DA4875D004A73FBCC90B566AB998A45099194D449CC60B0562570648AD588B213CB99A01283706878287930A71B68B43F87023D2F49829ABCBDE6A37A941182B78B8CC1B93982C7A24457A9E1683D2BCC97B4259518E0102760100E1C26CDD85022A04A91168486BA3413613DDD6C42CCB563379A08096B287B41A011FC9594D132E33957F2A5BC1DB4C57B4C8D9D3135476095DED35B2FDC09D8F996E332BAF7939EFB1032E529606677BB1144374C41C08807C9C0868B0C32772F18B755D7BC5C5B12F8EB9CA9DAB589185553B74408301062C90B2D68504F0718D42A1989F050F9097889AACDC175CD7E6768D626A8C9AA1B0CD6CBE91B10AF1A3E507575B47B6AC8C2B7C801A81985A81AD4AC04B32D0DD880D43B3D36857738369B7898B231B24CE6E9944526B9EF370354E21E38F6AAEFACBDA63497A85327A2112A5DB95179C5285D805698209F2A1B67A7730405B02B3507B4E4B65298734F5EB1B66BCB68F9369ABC01C7E4545568D432A685A6E038122253987EDC55EFAA3D926413DBDC43F9908DF1925031F45D28712734FBCEC3724653B019F7D5698DA7B0C3C90EECE1A1BE3567A253A143723B9550C8F7333DDAE88208667353A6184853A85A99C0C463189EB5763FE59D678349F536C56D014CD92B56ED2AA6B0518F1221A49FD6588650057FF00AA29B93F182B3437386F1F846D2A3C60CD900559425B2B7A5FF88CFABE24BEDCC825552577B5C12E4856DDCD91B0713526098B5FA555F105A0F1219110347AF9016254951C3CB5C7EBE602564242276399B0048AD8D370B544B1CB9789694C7753EF2CD4AB51513CB33F38BBB10C83C9A1A5FD1489D97476D9BB314849581D688C3DBA01662B539C50B0DB8E889A4654E6AF708A64910FC503CFA0ABC21B8ABC233AB978965059C41D1123A4BB90306AA09263B25BE885F4DB186D0E720E97524464C7F1B57E338A864D6C447ED4E29D88C30BAC7D2D0CDBAC43E9F4176F0078C715ACC +sk = 0BAA531A985251B6B10153C8FCE6938A280E93F9ACE7A56DC7F44FA8BB2F88C09290888DA8134A0FC43CCBB75B50B6A724D6812183ACF876036DC252FC893419280314C7611750875821B2F3AC4F1C20B06365709BC07AD4161C94C41930568996F8CCA58C4A0536CD5668488715593E66621F96C87A2178A36438DD4C390CA0532D30B88DB712CD3C50D30BAA91C98CF0BACF32C60C81468307CA35B47ABFE59174E53467CF7B1D376758F1A5926FE225F0078FF288AE24D23241709E471624285C4FBD35A333088DD643CF6CB0AB6B27C8B679792ECB8BA4C28CD8B09677F0A7EBB692ECA6777922C4ED6C20402533CBB9A3F1E0C10250209EF128A626B763B30B5E49C4C4691E3A13C2C2601B6666ABA1D099987990BD1BB00AB5806390CE8088CAE30A5B20567295ACA7F0191CBDB4795E78BF150C7954F9A49880C218C23E59014620E18F18C536DA0B7807B0C9E11B1E341C2E7E5BA799653FC669C1032AA014CB79769361B01091B5E000CBE100933C6D05714481F491B2355E72638831D0C4F4DAA18C6B4AE6E825E688CB812490FA13B43D306E5BC857FBC18A61923F6B685E5FBB5BE9C1871A9822FF07CAEFF40318482144143CECC5B0C579C84FC949EF359F0B24B20FC0A9F3300A3217A8058469C78B7998744024E275CD1C70A96A75FD86019CA031FEC081DBDB796A56186D9A1DF8C098940527D34A1DF2DB50B5136B6737829F0CB1DA3B131AB238207A011F02BCD346A0A7138EBE3CA2D78646D7F98D5A886A24B83F8FE84AE81627011A2633F1C159C3870F7C69126B3C31F50D356888F9077FC207168CB075E0940FB7A0BECC556DE78089ED512A39A6ADCDA9C3C5126D874B50C163BA7B091656E52F9813CB318C87ABAB12A3F8996A4CB446D0793055CA177A1BF455CB956443E56C160F4788CDC6B008C086403BC910332D3E3274F9825E9964484D7A52C91C275E153A496801C0E6C8084B25B53C8EBA77A9412291DF78BD39895DFED82FD3C92947A1BEAB598D33DA8344C88A9E073E28549FC939CF5C6978B6F74CCB23675616899FB69C5ECA0C6B68090A338EAB57A222FBB5A482837C097BD40141659A2A71D81E3BD38D60D0A903592B768B0CE60A7044350A75FB02F19482138603A9D8CB89BA6A32D37A15549548AACE4636047D66CA4DE6CF7643C2A5939478A39873820578150172F965D4DC6CC6D7ADFC360568A53C97D268900B7B20122E50CC5E460304927333BEB7BF73446064D76C3AF1274B503203804774B00F02534772CCB83CAA8475651460B156A7238DA2A9847D445F55687A84BAA06DD69D4A637EFCC1C09F81BB97B541FD77A96883869731AC776913ED6C02EF03183B27B4655639509B1E8BBA74837375628152814448F270B6DD865C888180AA071A2AB42740E93F05B32A9C85A069420BE2ECC5335738F9D46C90C5AF1625779F3A329DD693706618AFB300B5C7099C220126C8398FBB8F32A2A35888BCAA187950365F022585C2E08243F53122B6C5EE9A95B84151AFD10B2110135C2A940BB8370565BCD8739609C44F4AAA7C5C266C6EF7CAB87B351236702E327B3E53555E24ABB670CA6E505DF0E0AECF7513F7E36374988DACE2AF54375D684A6CB1FB38BD9C803A158483F91175263779E75B6D42734DC72FA02BC3B09630A0F79E2F95CB067C7DABF42F409A9635D55106E91E32341AAA4808DF6528C3BA98886184E0195E3CA09D9CC525980CB5A2E9027C6A88E9042BF77653B9DC02AD3CBB04F594BAE08DA4683DFC960708D85E39A28AD6E6A7DC81A2F0F8167633901298628B695CC1868756A97D80B1AFEBB71EBA5969A1086DE4D611F737AF56A83C7378C6E5E04E79A8967514CC668BC8FB7C7A1A671E29D55068E34D883A8320438AE7A44F01DB1D4DD07304081D684796A9257154381EC44562A8D005F3DC4C94D5CE9E36705132ACC8876142194DA54934095C2D5725A10E376432B17BF7D1B085D342CB3C633A085E950248CCC9C7FF350EFC341D07D0CA06E6BEC943353C479506691F2347A29CCB34AD09C929692ED98640E6B8560529CB17030EBFA4C769FC7707C75D86C234EDD78E7B3010FE86BF71748CC1C5B00023944774200B2163B403B8207093DFC959B6AA09FE6B98F6E83F972A50ABF113E9DA2FB9FA10D0D05789CCAF05C448854249BA8973A19C537DD69D3F39744DA89DEBB58705EC90EA56CDF428087D8333B16B1A9E59794D49A40B513B50867979230243B27F3D784932E1CAADF8B58FE11BBEA62DA4875D004A73FBCC90B566AB998A45099194D449CC60B0562570648AD588B213CB99A01283706878287930A71B68B43F87023D2F49829ABCBDE6A37A941182B78B8CC1B93982C7A24457A9E1683D2BCC97B4259518E0102760100E1C26CDD85022A04A91168486BA3413613DDD6C42CCB563379A08096B287B41A011FC9594D132E33957F2A5BC1DB4C57B4C8D9D3135476095DED35B2FDC09D8F996E332BAF7939EFB1032E529606677BB1144374C41C08807C9C0868B0C32772F18B755D7BC5C5B12F8EB9CA9DAB589185553B74408301062C90B2D68504F0718D42A1989F050F9097889AACDC175CD7E6768D626A8C9AA1B0CD6CBE91B10AF1A3E507575B47B6AC8C2B7C801A81985A81AD4AC04B32D0DD880D43B3D36857738369B7898B231B24CE6E9944526B9EF370354E21E38F6AAEFACBDA63497A85327A2112A5DB95179C5285D805698209F2A1B67A7730405B02B3507B4E4B65298734F5EB1B66BCB68F9369ABC01C7E4545568D432A685A6E038122253987EDC55EFAA3D926413DBDC43F9908DF1925031F45D28712734FBCEC3724653B019F7D5698DA7B0C3C90EECE1A1BE3567A253A143723B9550C8F7333DDAE88208667353A6184853A85A99C0C463189EB5763FE59D678349F536C56D014CD92B56ED2AA6B0518F1221A49FD6588650057FF00AA29B93F182B3437386F1F846D2A3C60CD900559425B2B7A5FF88CFABE24BEDCC825552577B5C12E4856DDCD91B0713526098B5FA555F105A0F1219110347AF9016254951C3CB5C7EBE602564242276399B0048AD8D370B544B1CB9789694C7753EF2CD4AB51513CB33F38BBB10C83C9A1A5FD1489D97476D9BB314849581D688C3DBA01662B539C50B0DB8E889A4654E6AF708A64910FC503CFA0ABC21B8ABC233AB978965059C41D1123A4BB90306AA09263B25BE885F4DB186D0E720E97524464C7F1B57E338A864D6C447ED4E29D88C30BAC7D2D0CDBAC43E9F4176F0078C715ACC3217D034B472A846CD317681C0F36FEEA187BD40E546DC4AD69C2E67FD9D830355F35361778BC0A53EA94003FCC0252D8333C58152482AF1E9C9D2BDF12F377F +encap_coins = 1332FBC0A80D85A33C44F3A9F060AD7AC8727576105931BB0401F47B31990836 +ct = 2065B316588B8ABF94F546B82155BCCC4CED1FE0F076EC970ACBA4419FF9C5C765B764C743A862B11A06355BCDB8FD6882647129C466FB3F9E259535EE659989EF8100C0D2CD170FEE3AC39E2F67E88053DBB738FBB2C3DF2891624F7B97E9A0CEDFC5BEA65C5C68E1A4913BEED526137F0684B5D15785DFE52112189D37DCC538D40933F6C3629E4394AEBA0828C2FE919B32586FC9676B43C569DFFC8AEEA4E65EDA31FCAE780F19F29AB11103EE33887995D53DAB102A4AF4A49E257B3D4B356712684E38044CA90CA0849FD584258BD88C43E43B100F39902C1104773BBBEE3ED8E50C8ED61AE6C9EBE1CEC5B0F7E40932AA756CB53BD0C18D9E0EEE0DB9EEC2DA115AE4B8A3746DADD0CE7963616570D7775F85A80A0367F292E17BA989455772FF84B533DB2820247F2D85F1FEF57830BF9913A33E47335F98357674764BD0BB87EAC748E5B131A1118C67EF2250357199F1A408A3713EA71D92E96900CDCFD08C38C3C2D0BA4B81FB1B412FCC1A59A1C0361FBDBC00B10966D430EC27C5DA9C7D3BE36422F76E4B82694F0E5AD07902B38B0ABB39E632F5FBCAEB3C8FC33703BA6D08738CE4DA863772F58007C398F1EB360DB5B44A4B7B6FEB5B4B86A1953ECDFDC0FA640EC2FB5F14B00673F056D77DF779A282B54BA63A9764C11A67AB70649FCAF796A9B30DD2D4BAD78BF41515F2C731CE5759BAE5C2003B78C9F9375113930C8EB34B8667E8DE41473BBA4A6EA6B51DA3B970A630B829C8FE62200BC8BA68C1449F3640827798124ECE9CCC6AEEBB94EADE93DC4B882D8977A3C71833139D9EC116F54159B9B12F61D5299998F1BA2CFF2DBBD07EA5211723F59DF7F395EE82E6173DEBBDB209309EAACCDA9DD993AB2E12C9FAC8C27924CE1A596876E724B3E4D25770C05831FBB21F77B9B454322C3099CC75E44D50A667CB65C33F0786AA342669F4C79FC0D90D9F8D0C5BCB7E9F47E6FC3799F346F65B816A73CFAA36A2D639C1FED4A85B5319B37E680DE0255793391AFE8DBDB06A4E0E14C36798E7D75CFF2451C2B9FA229EA8EFC3BF6D65290577DA85B744361090C6554AD78471E510A83507DC5D4930A12A67CC902F4ADBFA5A0496BD866BFFF581C4AECB9DED607F5B7F226A790ABD11CEEFB2529AD4E110C1EBA34D0CB6919383250AA7F0FCDDE515135C233BFD67E33A89B9F5F029000C95573A06DB9743F05279D647A7D3B33E13A404E103669135BBFD294F7B0007AC394CACE87CCBA7A2462E5A51498C398DBF83606EC908AFFA10FA3347B52139B3EB616AB0EBCD2EFC966C5EAAC4341B00F639E17A5BC50C1888549B15BB45553ADC89CCA1116142C3F8046F6605BB7E566A386751CBDA3D6F768C0737A145115027A3DBFAE4B893515C5F18517CA4474A1DEDA297DC94924662D96EDE4E4A23E75759DCB3D7013F50A28AA649650FCB68908F00C6FF1366761CDEFB6F7C1967C3901F310C00C85D74A70BC193DBD74263A7504C35CE4CBA327C006E443644CB0EF1B36AC66E675C8BDB +ss = F150B7D47C6AEB0920564B34D145C59F5D5A60A709E23AFB52FC54C41A009B86 + +count = 28 +keypair_coins = 2E889F44E28901E9AC7CA6B2FFFCB124C8979401B17064D7E1D51A7E3C3ADBFAB2638686DB9A0292ADC26E549C7152FF36D9A7293BF1380BF93F1498546EB93B +pk = A9C823EFC5C946DAB44B5B2068D61F00E7B0D87CA67706343927BFE4C12D20D69C4A5BA892F97EEEAB7B5A45742CC4AC4D37219AD72AC312051D31B8385CA2293415A13BB8983B8457B8AF9DCCA9E6322094CA68399AB77DBB9F6AA7CED5F224641C3FA07507DA9A08E0D180D52585DFB3B2FC95CDC733A573A888D403CBBB71C120BAAE2A195278370BF33299B9B2684ACCC5288A3CBA1277FD3999839A6ED29BB91D71A528BB2E4F953778BA23341CBA4B9B3C17F9A8366212AF3B722397419E24874B163470B3B2B7F24AE62258983B6161C6773B5AC90969C03D01CF4669B9D1F46E05705D4F676D464264D7549E1E2C3290C9B2BF5A71132057531714BEDBC7A91BC0AD56254D298908D33D588951333B3CB7924ABF14B0D70652C45AA62CC3062D851E45C866C6200DF4E74A9E559B9E6AB738F2B0DA9693CCEC3D968A866F0220CA95B7C6E8B04EC41D39C17EAFAB77444AAD4CA3A9D6B5B5D4611A6C074FDFB01F7DF68AD2440EFC5588F3B4A5C4106EFA3B9B6BB35C327465C7B656D1C1C6409993FD91CC20172E53190DAD63CE02691AC326904CBB6424C906BD091312C1BFE6969BA6AABEF954B5C8D439DA5064A248C92988961FD2254479946DEC829C76CBA61690E3C541648228B59805D7FB2ADB6AABA70718985279452A2FB1414E4704AC3DC84D3EB767101C8F4FEB24BC8148316609BF963AFA826A9B87638424052067CE8FB393D9AC579AB1080D1C549FD5103312A1FF9988DFE7805ED906FE9228E25942D49484A4510E0FF9A4A54A22CBA6BE945126EBE461C5940A74E1517C60603B2651E8371973DA7051EB7197713F5583BA51B92A9EB3179B45A8A8A5099B40C29F59146F25A563291364F236038C79B784BF09524FC6810F91B777BAE252E5B723E8059C06157653E335549784A15553FF9A7A29407D87725AA6B7A2A2669CC776BB810672967CB5B8B9A9BA751A9E69A8DDF796B1F324348712FF0C23F49A1DEBF210C027995B8A7CC5B288C4C74218E5086112237128CC57F4BFEDDC21ED23BAD00C58D835B5A3F0C8FDF1001E0AB26C2CAD47D5CAF2252CAFD3520E36AE21119E56FB456F277132059CA18623BFD994878C794545BA4A04436D804231F430B12808FB01647FA15D94B975BB6798AB7C3F6355B9BD50BC1CA00EE76342C8609BE0BC893DEB398B65A453BA08BEF83B805B61945229D98422F59C27E86022DA5620D737867828540C20B097076BC6C03E5435AEE1B9AF19958A7DFB921DA414280429DA389EEFE23FC9578B714B4F2E5B19B792903FF45ACA045BEC0B3D83C204747A2E24971B440C10119941D9316F45A87C4AB2AC0F7C4BDE9BC8EF73A7F42513BE3420C56720DDB984CB173587462AED9996D2A848D11344EAC02351E6C5A18CC7AE813BFDC50D5B143F4D07AC72A213A0577F9802043A585D95031D017B319358A24B06B7C2EA19F22B6634146CC0A123A8051C51E6AD6A956B1A935FFE00BC65C44A60534D1375570BC036EDFBCE66255F523BB377B2256C29B870DA2C870868299828F6FBBD8E0A109386B8D743A6E7A38384D5933E64565A037B9F520ECF8466F2073EEAF03D1B606F947CA2D2CA49E4B41DE9011FFBD23920C0D2D0CB20E3A9C63BFF3E047504A8965639E8FD0DB690FFA1E791FD +sk = E0C2121F06048FBC565FDAA305202D439AB3A81B31FA257AA6F4273547C1465610AE51C2C1C8603AA36D1575754A86C9194B1CC6A9B8C9F77CE6484C5198A193EA4369293798943F7918142F849C8D7479EB0588E6E6B4ABC4CE81A406642414EB4137C2DA905CE4AD2B750E7D966D34A3B1BFA8CA5C8070456B1F6D5B71E582C9E1E2BF9DC37AB60A09E797A43F66B27B04C13C034FA6F594264C9D7DA884C762B159D775F7750A1862216E8BC992C9B2E0D18513F409DF8B0811EA89D2A69B66D34E59BC93F5C7BDE25140A976A3195541EE22A7EDFB7F9D647616B31399B6C924022F036225AF7C34E6D221213AB5F7A20B908325835266DA1B456F5649B895BB032142FC5C700CFAC4C2A44CF1F96D57B8BA1EF2C9332A612E8BB9043559B5567090873D3F9450F37670B473A96F812CE1D71892E43C9FE61FA594601A27A98EC817DD822C625B98E0FA8F2D5A311A87A6C23B4DFDF44D7511373E64A4A18A833D654A946B0DA9694329023086013A919971CC4C8A45916901B45C25C28EB6051600644660796935E65A4700496BC32204201D5C8708FDECCBFE949D1339947C6BAABCC67EC901659D220FA4D1A3DA1A4ADC2B1B323BC4CABB6065D9032CCCA3DD3C8689C9A35810BCB30B99B3F55CF2AC8258C5B85C696A372C7AAB5B0DD62ABA06804466FA4C22B2CA0E09B7D47C4644898AACF6899C79B5321110F010CD40253E40C5920DB980A57C01B55C506A6662BE1253FF171412820272613940704F63E70340414322B69B60B50BBB4459C1D6A0F25065DA032455598EDF678505F54B51713209565FC4812AD5F8A05A926340FC3853719146D049017475A09A1FD2D47B35371D715C455DEBB3A40A8A0E83247B6B8FFC05B2E857B5D8B201E56C109DC155B720B2528301C49237F7A629234231FBA25C75D600BD360796A68991BC68CAFB5B0B7C748AB7039D8C4FD1B3B4DE76C193123E50109BA70956B9556F245CCD4330B888D43A84714E8CF17E5713B5AE5A9FC3A331718C227EF4BDCE131F31028D68529F06A218AC32317E9B7634C572513974DA2BC3DDC4C07F2C6B8D3AAF5734B5D9E691D790B0FA67CBCF36C0372C056C268E0C243132DB5DE7365310F5732151B80BC98A2BB76F9E8C616FB1C90A5B83CA5738BFA9CF1FB96242998A44D667A57B517A834834AC0F2AC00E91B32E4E7AAB452249D31575BC96C8652CA8E4C3C0D3277A60F5CA7BEB80B563391A3B8E1A1A97C85823928877954C28D052A2C116BDC325B687D26D1CCB3386CAC9BD4C10C3AC381E056F9060C89E25A910C78E677964D153B74554C8F38939F881543F820B6F11989589302EAC53111A45F7664616999D7A64AA26E4CD74539DD496A1F0FC530415B16FAA4AC86341C5400CB1BBCFFD2707BE12C31ACC9B5C94B806B71DAFAB1EAAA087EFC1419CD2978EC1B973336D27B69AF2FA85F6C33B73770C0F6B85D855938ED8758E6AA5724B8C0D457B29A9394A3528DE99CBD7A875BB5B299C8A6DFE416104A59AA9E958E3828D3C651B5A9A7E81D7738374692033C4C68254D5170204F83A9B8520016466FD9189EFBACAA23AB8F962AF7D66AEC2E27E468B9C326711673839541262A9C823EFC5C946DAB44B5B2068D61F00E7B0D87CA67706343927BFE4C12D20D69C4A5BA892F97EEEAB7B5A45742CC4AC4D37219AD72AC312051D31B8385CA2293415A13BB8983B8457B8AF9DCCA9E6322094CA68399AB77DBB9F6AA7CED5F224641C3FA07507DA9A08E0D180D52585DFB3B2FC95CDC733A573A888D403CBBB71C120BAAE2A195278370BF33299B9B2684ACCC5288A3CBA1277FD3999839A6ED29BB91D71A528BB2E4F953778BA23341CBA4B9B3C17F9A8366212AF3B722397419E24874B163470B3B2B7F24AE62258983B6161C6773B5AC90969C03D01CF4669B9D1F46E05705D4F676D464264D7549E1E2C3290C9B2BF5A71132057531714BEDBC7A91BC0AD56254D298908D33D588951333B3CB7924ABF14B0D70652C45AA62CC3062D851E45C866C6200DF4E74A9E559B9E6AB738F2B0DA9693CCEC3D968A866F0220CA95B7C6E8B04EC41D39C17EAFAB77444AAD4CA3A9D6B5B5D4611A6C074FDFB01F7DF68AD2440EFC5588F3B4A5C4106EFA3B9B6BB35C327465C7B656D1C1C6409993FD91CC20172E53190DAD63CE02691AC326904CBB6424C906BD091312C1BFE6969BA6AABEF954B5C8D439DA5064A248C92988961FD2254479946DEC829C76CBA61690E3C541648228B59805D7FB2ADB6AABA70718985279452A2FB1414E4704AC3DC84D3EB767101C8F4FEB24BC8148316609BF963AFA826A9B87638424052067CE8FB393D9AC579AB1080D1C549FD5103312A1FF9988DFE7805ED906FE9228E25942D49484A4510E0FF9A4A54A22CBA6BE945126EBE461C5940A74E1517C60603B2651E8371973DA7051EB7197713F5583BA51B92A9EB3179B45A8A8A5099B40C29F59146F25A563291364F236038C79B784BF09524FC6810F91B777BAE252E5B723E8059C06157653E335549784A15553FF9A7A29407D87725AA6B7A2A2669CC776BB810672967CB5B8B9A9BA751A9E69A8DDF796B1F324348712FF0C23F49A1DEBF210C027995B8A7CC5B288C4C74218E5086112237128CC57F4BFEDDC21ED23BAD00C58D835B5A3F0C8FDF1001E0AB26C2CAD47D5CAF2252CAFD3520E36AE21119E56FB456F277132059CA18623BFD994878C794545BA4A04436D804231F430B12808FB01647FA15D94B975BB6798AB7C3F6355B9BD50BC1CA00EE76342C8609BE0BC893DEB398B65A453BA08BEF83B805B61945229D98422F59C27E86022DA5620D737867828540C20B097076BC6C03E5435AEE1B9AF19958A7DFB921DA414280429DA389EEFE23FC9578B714B4F2E5B19B792903FF45ACA045BEC0B3D83C204747A2E24971B440C10119941D9316F45A87C4AB2AC0F7C4BDE9BC8EF73A7F42513BE3420C56720DDB984CB173587462AED9996D2A848D11344EAC02351E6C5A18CC7AE813BFDC50D5B143F4D07AC72A213A0577F9802043A585D95031D017B319358A24B06B7C2EA19F22B6634146CC0A123A8051C51E6AD6A956B1A935FFE00BC65C44A60534D1375570BC036EDFBCE66255F523BB377B2256C29B870DA2C870868299828F6FBBD8E0A109386B8D743A6E7A38384D5933E64565A037B9F520ECF8466F2073EEAF03D1B606F947CA2D2CA49E4B41DE9011FFBD23920C0D2D0CB20E3A9C63BFF3E047504A8965639E8FD0DB690FFA1E791FDD1756ECFAEB695001AC490F36C4638151BEE98D367FB7ADF0E06A470844068AFB2638686DB9A0292ADC26E549C7152FF36D9A7293BF1380BF93F1498546EB93B +encap_coins = 13A6DE9E8AE97898FA9382E95D49F64EA8592ED38C3AAADF36D20C243FA0AA53 +ct = CB78816EB950D8187F66EFCAD240D91BAFC1FDC1C5323BA60BF9D6902E34DF54C327B9D93ADA2C02DCD774C08961248B45451739205D0383C043B583E6FD8EA36932D4D86B13C24990747CD7C2254A27555B8CA0323224A966F954BE599648FFC0D0CB4AEA5CD2EB54D46ABD1B37B3324FE96C8712CD2DC16C6BDBE88C030D96CCD8AD1E71443C751DA109E91A677AC7BE74524556AEB42DE0D0A1E4B3B5B8AB43C66E66804B02864BFAB4780D53390F98932D0C46852EA1264DF5F96867C9B8C66FD5D200BE72D4CB6BBECE3B8DBF0FD512A8203904E55A37098B9A93BA058F63380A48C519CAB2B7DAE8CDFE59C630A4F354880D1B772C7CDCAD22D50CD9E18E87319E6F3C980CB395F249604F6AD152205927E30DBB8F9C80E7EC710E1BD8E023CE0B50D9964E5698FC0C7BF59DF680D56EDB655728AD4670A1E2C48489E10C72850FCA61041695E488BF0B9F607357A703E519B4DAC9B21791E1AD77FE0374BCF59953C1289CBD646A9552FB81C903EA26C94E101EF9A37BC3C3A0A0E9C3FED3CCF2D87E23A4F2B77EF2C8FFFF0C2A72D62E8C57ABC05BD737592BDCAC96677C461FD656D24F1C1E68336273DC893E67D1C0591E64F9097D45E2607F5BCC35044B713BE421CD106A92AB1866E195B1A48D7AC6E0664B4FADF90E3771092C8C498EB0EC0798F84F46C3A88433A4E1CADE4144499B707ED620A36A0063281E8A9979CBD6A0A83DC31821DC0A1FD44B67BCF7B14F7DC7CE2386725C98CB5E772D0AC34570B2EFF1D688B85543B10A9AD33EC9EC0742E3CC9A37B5B37115407F0FA35925D37302D7D8A87E089318E8FFDCE95C213D162ECD41ACAD4D5036E6AE2D1C00BE2CEF47A01EE7BE81D5F1F97D9EB4742DCC549919E6ACF7E318600CD5C786E9164B563AD5CC6D954EC16A02170C75FFD639219A1A449838AC635031682155EED371FAAAB012B3B9D9674148FD1B13CF679E572686528D8A8C370D651C127FD79F0B1ECD61BE943D51AF56A416B8EDC4B4DE6AE954CABB46CAFFD017A45CF6A406575BCC84C9E128211F2C1C8B030D32F41F19E1DFE9D79488B87E18813D69A657CE7B72235F53C9ED5ED65F9B89D897E190C4384BE9B8689C14C271564EB2E9C206D5A88A7FD18BE31DC7968165E03AF75A9548F227311FC5C9F7FFB40B98979FDE655E60F5F02DBBD6504E070681282016B76FE2FA2328B25AE5A697BA581346EDA82771B1A8A91586A5E3D0ECB7C0CD0E14531916E793A9D738FAA9C83849E59D62A52CEE46964CA9D55B95BA150C2DEEF972A8D6351688636660CBB69F038D57BEAE037981AA74D8F115854FDFC6F3BD6A9AAB78C0E8DC60B8FEC28F0E68CC188BBD46C1D4BF921DC017C806F5620B74E5CC11EC6DE5974A2E7FFABDCCDC01138A01335C99DD5208BBEAC2FE2D093ABB8F0CCB7E167DE779BB88BB0E39C8F0D5AE3B58E664DC3C2A7301A8AE07335F6008A1957D6B1839985238CB1CC07681F47AB093536C27880B7A1C4BD09FFA7A6EF144692A2BCFE9117DDCCF +ss = 8A2EC5558E193C476A7FCC373F96073FE0AB13EC87ADF3110A2EE013CD5A318A + +count = 29 +keypair_coins = 174AAA36410566DC15A5E62874218D7ABDDE0B2C0F30D877BB80B1ABD5F5A0A43AFCC6703873BA41A425FF19559EE47D056D3B5B9E567E5CF24EA17010A5C3CA +pk = E71B4FF986BEE57636F904C856AC93E0C18775864B7B932AF200251B0328F5B3CAA38116C5A187305622B4A152CA337ED7A3690C31161862447B847F5639C5851133F627B5980572023B4ACC37C32F6B70B3555E0EC4C5809C9582407A0E59A866991564CA55B21A48EE530676A435D26B749C1264F9E58C3FC619D1A23EF5F6300E96665EAB70E7350852115F5859BBF1A8308977648AE5CF5A55C9FB42801ACA4F0592254461A632A94A9C3A7CCD05C8B7C3B09666BE54F072CDC58D8CBA687D609D1F021115085C340153CE63A37750ACBDA01A6944A46CD16CAD098464A109BBB611A83346CE6B59A5F4CA3CBB4394DACA06E5708459CC777534EB80A620C308DD779B074C11F31679AE98AE569BBE79CB04BB127208E24BA008BEA28C5DB5EC18F31C50712171E27042651701C3004E057A6865D54763843D27873220C174C57154C9A9705DA162E8685A035B34E15C411FD1B7220C57265C2BA7579F4BD9AB1461650E8027C0BA79F2BA3F14093CAB6015D8CC092905A6B8F09DBFD5743818489ADA2BEDF88CE592396074A79824457F7CAEFE334FC84869FF43641821AD60E80407649EDAA8BDC2FA877ECCACCAAB8A1F35A1573546AC382222C193BDDB31275B84374CB4679A5FFD803EFF07987ED085FBD43E45752DD9A32F5EC03E7B74567ED9674E1070B026801E99CA27EBC0ED24742530507E19B97A09877A1B511DA3B9835268AC35AE44187EA14B996DD96C35686EB98A81F1B2AD90A80D0C989B12813E7DF2B34573B876289E7C79481C7247E637A60F9B2D3FC129C379A759756408636048565CBEB24C2186A875606A43D20BDDD8B9D70781B1848BE54A075FE978A3E112A567223D21BEB3395921D1A100C578E7EA0455949B7B420B6494688AEAC00697AE1914084EAB375D86243B50A948874DC973B7670C8F9173228B64647E58761442A2CC90165B188B58025F8EBA65CC654575A1BB3823A1A29633AAEA1763F24486AACAFD611C28774C98D89B3CE8A696E29F62775B5D5C50847C3AD4BB968C441086AA070097508DA888B5B202E5A3B5DB579943F0861A5B6E2D58415019182262C444FABB77679E019CCED4E0A3854507FCD0935BF81B0E8500DC6C0B3C154ECBA94D166407C5DCC67BFA6AEA8B4EF0C53859BA4416D5C1975C1FEB6BCAD8076E6B020A62B077F0141DEB5AB5986B386D51CB7E8C779654AF5E5485A969467012C572F62DAF788D1F58BF9DDB4BC6E04B00218CB671CE8B2515B072B76CF253A4006AC5437C107A077F162A3984586978CEB3752B1FA1A2B525961F96C63D7207ECC4C0268A354AFB00231B1CB6EB4E4A694524448E7A043C22A5BC1094B23D3C5D0A9641F909A778EB64BAB84FEEC3A53730405C92130F756050771999E469CF07CC8C308ECE9B827D7558BF882630556150A602D9400E3D4ABB229A9D8B8132A7F0C0C5475BB852000B63228C490472B42488AAC0ED647B1E834F248534FE2195ADF6952B83B6705593A1E53F0315613D2596AAD44E27A26D632B9C71E9C9E5A6AB733C7E81E54DB3437D894A19B4710A3CD5075602B176EC369F5116638775574C74425789154B0BDE48BAD6E52C91C451C87B48EC406674A75B0CD39D1173C3F411AD1EFDD8BF4BE2AFEA69C2327BD070CD1432C8D219 +sk = 25933617206AE881C4DE291B4F269F2E51897FF29D3C6803E1A4C58E53051E879F1AF333393C75B366CFE2E84CF9CC930D1928298897480571D7050751601BC119B1071412EFE8873AD325BC00420D13A752D33087BB6F884628DEF98F4FD21D01113219203F93419875C91CD33C7976B7A45F510F70E6002957AC49B862CD35640CE84E6B989201A74EB76422F88B31C94ACFA811605A32634199BE1639A50B709E89683C5CB0C975D627B76223EA48A2352C8BCC254ABC60812A6A5AB7747CA82073D1D31FEF708866A9801AD067A6DA0D848C409861C350DB559A0AB1D91C9BE0C149D6C241A13849D9EB2DA4B9B9B30B348217491449A43EA4544467824FF954C4869C8DC0B2BA2744C8D38BA584CB78EA6F6188BCD090267BA46882F16964AA003E2C60105415F937CF13B9CD00456D3545BC5E48B6DDF61A14ECCBAC23BB1D071BB14361B4C9ACB7B48805B7890C3676B550238391B388260CB0E2567F725B0382C7174440D82BA8A6D226D325CDD1C26ABD510ABB195B73D203F9DB7DB44ABBA87581A3C57F079B44A9455E3FA16EC87A0CC14368569B35517272220BA7760A8A0508BF0033031D42763FE89B611366B8B93D2D523D5C872BB99BBB099515A5911F1182404B7B4CCEA91462C6A5ABC16C64F55AB38A763A03BA48E0268819B6DF8BA88704AB4C7BCD8F8A150CA434AB0632ADC522A49C0E45997375D69901416792F845FCBC1A18789B22870401D6872374B15C851ABA4C3CF5A8930D34C74FD444A2C87F90D9353CD77361E26C99C8027B50504BC5B3F2BC27F3978822113E13D71E19E3915A9A4F0646AEF6D513E155B41237B2AB08BDF38322BF4C00706C0F22854D080BB8ECF58CC9B75D19A0185412A74B3C7D61A04DD8CB07BB37156C46221A7183BEB9321C58A924048AB86032F54815DA1BB33AD4312391C1A6778D9070B1A4542AAE231AAC97BB5E1A1CF42792C9921313C07ABA3A8C15DB5D1BE417C3888A2E0921A7AA1926044AB865935A2738B4378484B44471DA250E41925E976BEECA9F93D191B0C85B487BADFCEC4BE7C7683C508412E096AE888BAFB97CEBD3266EF7397004CC56741F53683034FC3160522E6BDABAD190C51F31926AA94B2F2A4506D69705623E3047176B46169AB8A715B84848BB4FB9830BE744CAD7591DD8D128C1A40F8A5B2829A92177D73CB1F319C0F45557A69AD790C87A6B8314E618444081C221C07C4BA5C1C450B8080DB278770A0C110DC386FB8411D4B983503964F7B6AFA10AC5154CCEA9E6222B4A70E5175F125B0A83010474311F8EF84FDF3AAB6D508B313A93C29675ABE12CDE50BD4B5B7E13C7228D9AC9DF569CC1BBC995EAACBC2290B0293A2BBA70AE8757C5A7CE84386093E02B3201573C56BCC368A7DD404371453C38823BA4752EDB663E5FB99C5E91CA9BA94CAEBC9D60A6318CF62168A86C0C419CAD1BC4FE514A745BB2C81701B89BA371CC1F10B50D95086D99778383108DFED849A1F74696464AA1D67F7F40BBC69C1FD907696D6227CF20750D68A3D36C600448C91A523A16E5C84B40819BBB2BFABB2CB03B658FD0656F410752F52BFC9BBA4A3A8D09D5835B1540F5DC673DF71540F560E71B4FF986BEE57636F904C856AC93E0C18775864B7B932AF200251B0328F5B3CAA38116C5A187305622B4A152CA337ED7A3690C31161862447B847F5639C5851133F627B5980572023B4ACC37C32F6B70B3555E0EC4C5809C9582407A0E59A866991564CA55B21A48EE530676A435D26B749C1264F9E58C3FC619D1A23EF5F6300E96665EAB70E7350852115F5859BBF1A8308977648AE5CF5A55C9FB42801ACA4F0592254461A632A94A9C3A7CCD05C8B7C3B09666BE54F072CDC58D8CBA687D609D1F021115085C340153CE63A37750ACBDA01A6944A46CD16CAD098464A109BBB611A83346CE6B59A5F4CA3CBB4394DACA06E5708459CC777534EB80A620C308DD779B074C11F31679AE98AE569BBE79CB04BB127208E24BA008BEA28C5DB5EC18F31C50712171E27042651701C3004E057A6865D54763843D27873220C174C57154C9A9705DA162E8685A035B34E15C411FD1B7220C57265C2BA7579F4BD9AB1461650E8027C0BA79F2BA3F14093CAB6015D8CC092905A6B8F09DBFD5743818489ADA2BEDF88CE592396074A79824457F7CAEFE334FC84869FF43641821AD60E80407649EDAA8BDC2FA877ECCACCAAB8A1F35A1573546AC382222C193BDDB31275B84374CB4679A5FFD803EFF07987ED085FBD43E45752DD9A32F5EC03E7B74567ED9674E1070B026801E99CA27EBC0ED24742530507E19B97A09877A1B511DA3B9835268AC35AE44187EA14B996DD96C35686EB98A81F1B2AD90A80D0C989B12813E7DF2B34573B876289E7C79481C7247E637A60F9B2D3FC129C379A759756408636048565CBEB24C2186A875606A43D20BDDD8B9D70781B1848BE54A075FE978A3E112A567223D21BEB3395921D1A100C578E7EA0455949B7B420B6494688AEAC00697AE1914084EAB375D86243B50A948874DC973B7670C8F9173228B64647E58761442A2CC90165B188B58025F8EBA65CC654575A1BB3823A1A29633AAEA1763F24486AACAFD611C28774C98D89B3CE8A696E29F62775B5D5C50847C3AD4BB968C441086AA070097508DA888B5B202E5A3B5DB579943F0861A5B6E2D58415019182262C444FABB77679E019CCED4E0A3854507FCD0935BF81B0E8500DC6C0B3C154ECBA94D166407C5DCC67BFA6AEA8B4EF0C53859BA4416D5C1975C1FEB6BCAD8076E6B020A62B077F0141DEB5AB5986B386D51CB7E8C779654AF5E5485A969467012C572F62DAF788D1F58BF9DDB4BC6E04B00218CB671CE8B2515B072B76CF253A4006AC5437C107A077F162A3984586978CEB3752B1FA1A2B525961F96C63D7207ECC4C0268A354AFB00231B1CB6EB4E4A694524448E7A043C22A5BC1094B23D3C5D0A9641F909A778EB64BAB84FEEC3A53730405C92130F756050771999E469CF07CC8C308ECE9B827D7558BF882630556150A602D9400E3D4ABB229A9D8B8132A7F0C0C5475BB852000B63228C490472B42488AAC0ED647B1E834F248534FE2195ADF6952B83B6705593A1E53F0315613D2596AAD44E27A26D632B9C71E9C9E5A6AB733C7E81E54DB3437D894A19B4710A3CD5075602B176EC369F5116638775574C74425789154B0BDE48BAD6E52C91C451C87B48EC406674A75B0CD39D1173C3F411AD1EFDD8BF4BE2AFEA69C2327BD070CD1432C8D2191B1B0A8682CAF72DF2E0A48513A7358EDBC77A615D6BE6FE2A7145BE66B7C5093AFCC6703873BA41A425FF19559EE47D056D3B5B9E567E5CF24EA17010A5C3CA +encap_coins = FFB94FD16F27B1B653E0882F4E86B8AD651A38C01A33FE0A34DBB425937E242A +ct = 62186FEBE3DC2B82007E4A9535DD4D4E7639EC638C0E1D68D00B480050A711893D14D899BB7F84A6CA211A110751DE99356EE4EBC5ADD57AA6923643109129E94B27F04B46023F27633BAC1607508614876D6658FFA95369ACAE694A47D38A626D9A4EADCE37B6AEF72B0BF8324B9BF22269E1D2431BCFD7911B489F3C3CCB70ED416D638A95F330DDE640F31319DD1C1F835C418D3AA17800CF8DCE85D2B5395B51851A03EA135BB6BF924C6FF2582DC38B9AF144F2E1109709390FE01732DAA00FE7B575194B152654649687A71FD5A0DBD2D798C6D3A39F4A11A22BD2680D2CF09A2DCACB5E86B57639B6291E91FEB7F379E58333C85DF5D0BAF4E27980D7949A4176013046BC3691AC962474407DA70E5DE88A2BF6D570DF236047D2979D2569A11B7F2BFF21EDC4651C12FB69D5674C7C374FAE96E0C1FE2D3278AC701391B3373592A202F956789429C380D392EF41E3C8E78840933D5524BA055CA198C68482CFE09A4EB3FAE199427F84B75771B7F77AED19716B36370BBF4B89C116D920ADE5EA334F84C1ACC00BCF6EC5DDB79B0F7B4DDDB6B5DB6747B5492E2D5A48B93D84D27DD7F7DEEA612C3461A40B71FB9F11923B1B7F7FB3CBB89E82AE27A450EABDC69CA629C1EE912E3E32445EF8B007D5B971F5927307CF22DFE0575CC8D824F64CA6C20CE9361366596FA32059F909A58E1BFC8F080B5E5D3B59BCA5A0434E8BF24FB0DD7932202BFB1836767414C1E92FC66055F7E951F0D7ABCF4CE65EF1379AF6C13828724B801C387369CBBA9F2D41239DD95172E2C16D68E70D870558855143AB537993051F4CA57D7AE71E87DEE9E8A81DBCAE5DBF9D50C2B8D0B509E2D9215DDCFC6D2849E86523373446EE3489D41957DAA71B6C59D0B412A2D97A74ACC1142A31AD6A1A260561D4C33CF50F87EEF0875D94C16C20AE63BF9DB722AC58A3A3028FC53F5656CC2B701696AD0343F65104BBC7446ADF6AEAB8AEB6688CDA95E09774F2B24F431581EE765564BA5EFFA7EFCFC6883D673C45EF4E2AE3D75B4A4AEFE0BA205F52D4A6E05038163BAF5B0A04B3787319F5D3BD4D0069E41FD6725347C514F03F77F860BA99DC63108573D2C77A45C746BF6D3BFEA5AAA9F709BDAC011F94009A61812A99B8298D73EB1AC1697BB93F0B40645F56DD2AD91F6BF7EFC8768715D7CF9C5D4C4D660477C59A5315006931553B524B306261672125B7291E5CA84ED15030488AB8A027D28F7E24C54F9EAC4B6DD69AC353AA5EB1448A74A68175D88A2768DFF00D75926D1C7B71BFA59BC04BA59C8AC7CA1C75E6F02EEFB9AC4DCA8D5EF96DC5DFBAC06C4891CF3E49B7ED56FC324E4886E3EC7B895C6DF28DD28CF4B04F44BB367D0F68E4D5565EF07A8EC92F588F403EC1B8F39FC41077F927F393C7A0324E5E1B8DCEB39906052564596D89C38F2C88992788CE89C171548BFA50BFCE934F02D5D849E170D6700CD397658A9B5DC99388A474969AE96E58AE6669475958559C891E62CA1EEA0D598087B97B45DDDD +ss = CA2A954CCC529708D25CF972DE39638DD8D7323AC8C48DAE7157F4BCD00A5CFF + +count = 30 +keypair_coins = 351FE4313E2DA7FAC83D509F3103CAF7B4C64A4D458FEFDF636785AC361A1390A4CB53697A77FE6E39EF13C7460D657197BC1C7EA3DF65B85C8DEB43A058BF1D +pk = 8518C8D8DBAB01F270C3131AC1586BB783B35DB82F3C24AE2B767E2C4A7D15C2A86EB19FDFC41113A7501367CD70D73D0F63705487AC4E0BB1C84001FE6657610C7D64FA3DF4538BB6069128C4597EC9B291938EA5D7CD46897AC2179B52F1CAC91B6C36F37A59780E454C50C5DC354B56A43040804DE2394BEA14C2D385E082C5F181228D62307F5A6A1AAA1EABB84F90F34310844DF95A4E6D423D8C993FA7F390E6984E482024C2968254B54B7D3418D6F859E295665262246E1BC8CD6C9B726581CEE69140F85C02024C5B59AA0711813D66433AA384B2A4A3447939378A1E6A98936BF04AD075981D93C53E9635B5E285F96755F8689B5CE5429142AF6FA02EDEB1A719B272F6B0A6211A5B9807CE6FF368739B51D4D9480BD884C8B456569027B08A3CB928645D450C6264C5FCE2A2DE2B241F965034A08716649A3C71020A6986FBC8BFB5B4A2CB162749264CC1E44BD66223F3DB1B9BD2C68744B52ED7BBA0B9773DF128883110D2CC4757DACAF7F4C90FE02884E1A581D89AF687AC79444C9D801D156325590A3A24441B7C2C893B777386198C16374329E640B6A439FE5BC71AB3AE195575A71CBAB773AE6F0B5AB2D750D222A5D36B86EA2AA2006C54940A5F843AB708D19D5937643309C12D522DD479C3B2D57DD5696D25615ABBB573FDB62EEE5C6A6546CB1FB188F356800FF4177C69B636CBBF9EE9A7C7D512CA156490C96B347A5BC2CB257A061452DAB5FD15BDF5026677F14967B6C825D03EB782CD0422BD1078B7781624DC318A33B0C437D6C35997A22E30496E876762BA5DCF5146C5188DDE6C684C265A8F05031904572F7554123832C78767FF4B5FF525680C773AB3BA1A93776897D57B0D507B9391712344326F090B3D964DF8C293B6638FA36815C7CB9B7962956F903F62C4CE3D7646EBC1A8EC04A815191CB4BB085EC8693F2188F490731C087C23A8BC7CFB32FC019D106934B2D17706526CC6F787BE424BCE5B26329591C47402D57548110CCB42955C422323ADDB4987FB0F3441558964BF14021A54277BA14C5773A10B81C1427F51173F5C6CBE1B7575A4B6766AC355BC443E479A2953A51F7010F7B04B23E0CA93D08836432E3AE5A1A6BB62F5476C07914F88532CECD00CEB340588AB675F93C286E7288DA1C6CA3621AD6A4AE1FC64AA15B27A7C3EABC120E7460737585B5773AB18E23EE185C900ECC3B765983CB807E2F7047E6C999C6716E26801EA938302ABC312AA797535358196B63309846675BCF1B33343BC3D4D172DB81947643A84FD2173FCB0477AB87B57B55899A308D51311C9BA6916F15947D707D88B9228D0488DDACCB25455CF782B7A18264E55C9B6798F39A53F53240C82FBAF461364CD5202C5C94CDFF23E0F731624E69310E5B47964B2BFD3A59A5B0D55A026E260731DE346F74938ABC607B4F579B8B200ECEBB633614A46983E60E442A4914C93FA62219025E4A99D71032F0B00906126365C467E0A235570A544A7640F23800CD5F2A825479A632343F20801F1774F0E8B7DB96A860FD40A43CB7ABAE76039C6BC80B94EC315AD49E9904908A20CB444BFE219452C464EEB2914EC19031152CACAA00DD541FDE81ECAF1F339E468BE45459E708BFB464D0C480A1BECDBC021A06AF7AAC4772545EB +sk = 719950ED1960FF6C2D7D59BBECB83AABE1CCB569B76CD9B053389C552CB6BF847CF4FC1F18A03E66F02CDB284C15D656151644F78CAEEAFA8B12CB7C616256C032CE6112735A74285D66A90F3A745ED8733C195F6B1B9B272897520A02FAFCB958A9669990B73420BCCE373ACF5A1C86A555C3C48F78166C0FBB023C49608592261060884B408C9FDB1F4B023506D3516956B02637AF26FC7B1D9345F8B54B5AF96997D39FA32C01AB64A6AB7491D50303B4E8A134086110D220462395B9D89D9651205AEA9E1B88BC80C4C8BAC44AF4F1886EA788A0B259DDA78116051059853D2CD073ED8CADAD9AB04F7175D57C3224E953509588E788713D5A6714D0AA48E972F4FA55F16579D9BC6988F562CCF1286E87AA785929BF8266D7E340022C0221736C3CB372B85723042382092545A45032EB727BDC750449C786145ACF42B85D4618B0D6F009D0224A816620F1DB67F59713090B0849559A51B9589532CE2DC25DF8F09AEBDA932073A2AC2115B12C5F94C64750220D645B34C14AC1B2208565377D61426D7F2A25CBD969A2705EA330B676EA6EEFCBBC6CD40DA9C0716D147B398B7D469A919D83BAACCA80F0E41414382804B0A321362E14E766DB2450F599963CC2899E1048D839754858910D12C23F99158A9A3149362690A9C5540133E5F217A7B66B0D627321C810F7D1639CCA948D708616047F85BA41CEE9211DF72731AC0986D1C3149854B71683FAF68179799B12C031A2A84574B9A67C96A708355F7A86BFABE63DDB94B6C048359481CA7A45CBAECBCF34407D8E378733F812926599DF5C156A94945FC7911DB26BEF17074470A7BD6B60F771CC3F396E847195CE26444B641F91B468FA1670D0184942472667AA76E42976FAC48E78DA72EF0C207FC7400F92699B46345E4C9972A35DAEA31ADBE87980438DE4F211B005C8DCEC1A6EECB56D891677F9006C49385E8AB20A19B74325A9A95083BC711537480DB30719815352616B2C5721979BD4267FB134188A75B9CB303215A76A246D8F69ACBD173D069B2B99B727829AA5469A0212C006A88AA4A6B614674674FA75500AA294711C178B741B0275280BDA27813647A5DCAC3A258991DB4BF436C23F37C697115143A2755FDC199FF32B19209D7FF904FEAABFF7383884C1BAE3C0CC20D019066653B99C1CAFE366567C9238785B0F0B4D1432A9E02CA2D9A3B37D84646B157684D7AC720727AF4533749A9FF99BAD8F3877DBE5CFF9C75B38C4002178CE30773EE36A14F1497AB386CB36420F04D85C8312CE25B357D3108226925F6B85C7A3729064F81AA66336163C00506BBFC82030F4F33A5BE7330926BB3F849D1DCB09F5CB814BA8A722506D0A037E6EB26216AA3C4D4C05D5CBCF0358501936AD2BEB3563C341E2315DE6D68404ACAB0149BAFA84491AB67A2DD82972220B0DF528DA7C4D441C8CDAF508CFA2C0224932E7E5215572AA433C9212022899E43A93CC7C8F4AAC6ED5ACBD0162E4DA4B897B7BDCD72A0B2A2354F61A6C211089C11E476715F3369859C3021584B6593B5784344D53B40DA0725A90804C45D02F6EB7670071660478C53281B5E290BFC77AC46602B530B1300628A7A4F20CE227688518C8D8DBAB01F270C3131AC1586BB783B35DB82F3C24AE2B767E2C4A7D15C2A86EB19FDFC41113A7501367CD70D73D0F63705487AC4E0BB1C84001FE6657610C7D64FA3DF4538BB6069128C4597EC9B291938EA5D7CD46897AC2179B52F1CAC91B6C36F37A59780E454C50C5DC354B56A43040804DE2394BEA14C2D385E082C5F181228D62307F5A6A1AAA1EABB84F90F34310844DF95A4E6D423D8C993FA7F390E6984E482024C2968254B54B7D3418D6F859E295665262246E1BC8CD6C9B726581CEE69140F85C02024C5B59AA0711813D66433AA384B2A4A3447939378A1E6A98936BF04AD075981D93C53E9635B5E285F96755F8689B5CE5429142AF6FA02EDEB1A719B272F6B0A6211A5B9807CE6FF368739B51D4D9480BD884C8B456569027B08A3CB928645D450C6264C5FCE2A2DE2B241F965034A08716649A3C71020A6986FBC8BFB5B4A2CB162749264CC1E44BD66223F3DB1B9BD2C68744B52ED7BBA0B9773DF128883110D2CC4757DACAF7F4C90FE02884E1A581D89AF687AC79444C9D801D156325590A3A24441B7C2C893B777386198C16374329E640B6A439FE5BC71AB3AE195575A71CBAB773AE6F0B5AB2D750D222A5D36B86EA2AA2006C54940A5F843AB708D19D5937643309C12D522DD479C3B2D57DD5696D25615ABBB573FDB62EEE5C6A6546CB1FB188F356800FF4177C69B636CBBF9EE9A7C7D512CA156490C96B347A5BC2CB257A061452DAB5FD15BDF5026677F14967B6C825D03EB782CD0422BD1078B7781624DC318A33B0C437D6C35997A22E30496E876762BA5DCF5146C5188DDE6C684C265A8F05031904572F7554123832C78767FF4B5FF525680C773AB3BA1A93776897D57B0D507B9391712344326F090B3D964DF8C293B6638FA36815C7CB9B7962956F903F62C4CE3D7646EBC1A8EC04A815191CB4BB085EC8693F2188F490731C087C23A8BC7CFB32FC019D106934B2D17706526CC6F787BE424BCE5B26329591C47402D57548110CCB42955C422323ADDB4987FB0F3441558964BF14021A54277BA14C5773A10B81C1427F51173F5C6CBE1B7575A4B6766AC355BC443E479A2953A51F7010F7B04B23E0CA93D08836432E3AE5A1A6BB62F5476C07914F88532CECD00CEB340588AB675F93C286E7288DA1C6CA3621AD6A4AE1FC64AA15B27A7C3EABC120E7460737585B5773AB18E23EE185C900ECC3B765983CB807E2F7047E6C999C6716E26801EA938302ABC312AA797535358196B63309846675BCF1B33343BC3D4D172DB81947643A84FD2173FCB0477AB87B57B55899A308D51311C9BA6916F15947D707D88B9228D0488DDACCB25455CF782B7A18264E55C9B6798F39A53F53240C82FBAF461364CD5202C5C94CDFF23E0F731624E69310E5B47964B2BFD3A59A5B0D55A026E260731DE346F74938ABC607B4F579B8B200ECEBB633614A46983E60E442A4914C93FA62219025E4A99D71032F0B00906126365C467E0A235570A544A7640F23800CD5F2A825479A632343F20801F1774F0E8B7DB96A860FD40A43CB7ABAE76039C6BC80B94EC315AD49E9904908A20CB444BFE219452C464EEB2914EC19031152CACAA00DD541FDE81ECAF1F339E468BE45459E708BFB464D0C480A1BECDBC021A06AF7AAC4772545EB2C54DF6E9020E1E44B11B471DEA97A382A2FE8D1042565BCD51EF21CC0884D68A4CB53697A77FE6E39EF13C7460D657197BC1C7EA3DF65B85C8DEB43A058BF1D +encap_coins = DA8F1FA1262C71363592344AF3AF48D678DAC8E93CB11D2DF01A93FEFE97C4C8 +ct = FCD64B8902B3F7F5F29BB1D3C78A1D230AB8881339F722F0690A605CD99F82DD71E8AF7B51F78B403998E08E627668B54CE351AE3DFA596E6FFD7445E690BCA9247D2AAC78E7FE71751D04C0B97E3F2071B42935593CA215D05ACAAB27BFE4A02793D131B9DF5F52356CBDACA2657044625B0A32BFF5D4BEBEB358910ECE1865E212388D990B3F3FBF11CD98AEC4DF3E180EA4F2398166B4A5F78B9D10973315B74E83FEE1EE70F653C43243A8CF3EFCD1B6651FAFDB902EE4D251EE1E11C61F509C1176CE4B0F7931C33A3838B56012234282711CC49F2F8E9BC4B95A29FD2A1897964D8AE1F1A3F8E120BA28F1EEFBD377F0EEBD99D1D41FE246EB767005920553413B2B1E88443ECFA364EA359DD0161EEDFEB75FCDBCD77CFCF1B33B081F9FFC5BD3457BE70565D1138467EC62814F7B59017FD9BE4BD49217774960F3DF3A75160D65AF2DA2FA7D7CD9CC79756E99A3C2AA1832B3C75EC0743FB624EE0C1D6E9D9EED5B0B8E27C18B4E3E77D04DFB49A154422EB91214F9A337007BA5176C03885AF0D39DB79B53278A863F9708CE6F29472F1F438EE175CA3175DAE225350B515B251AB1C045720D89A245C65821C926480676599B23BC2995CC0FC1936A0531418262B334937167B1D1088A54B0641B00DCCA91536BAF091BC7782125D9E6600397E1AFC3E5B76773DD324B43835D865D206D89DDAB6A1FCB222F168B341027B287CBF842DD29984B034FBD5B578F957B700A8C5F8F105969DA7FE27129ECBFED6B4C463A45DED1CA730D9EC83E0F99C17A1D0EDAD595C9C2A9A6029E10A3F24868D71412842CAA8F755563FFD07478CB02D7EAD6E5B9ECDA9EE22794A2CECECD646212C5C979579BD6192D9DBFE1B719D1E931AE8E6B4FE5F6F32E3A45B89957A56A22C44EAE7A11C7DF772DA817F423278C979C7CE2FCEB08093AD792EB0BA6A5CB76E637DB763DB5B0A6333E221E82A32362FDFCA3BD165FC122342E67DD0DFF94493D662D736F578B86C50FB4074BC2DFCD54CE80F60621B514C74FD958A6EE009A6533A1C129EF4BA8F44ADEBBE82B340B2C6F6C4B27DC11A6C604B7BF2556F80BC2E1B20FDB456151D251DF401117511C4686C71DAD9D9BDC8BAC9DF736744BC44339DD33009A52205812290FD78064B61A6CC668776BB24A903904CE0ACFB7590068D97FD550F3DD88DB2876EE8F2C5B7F582A3BD0F3008FA2015A0A4B15EA05A9C84F4E82EF8CE5FD008D2B6291967B408582693CFD74F8690D29D03ED211A5BF0EC2B9A61E1EF46C8FDB6BED3372B0A5E83D77228B0AAC23E4C200EE3DD92BDC386937A04CC80A951B3CD56484DD6AE136B667F172B6F6FC45F5DC04D7D7D28A49D22170B9EE87610DE052CBD215E165EE28E1C5D21FCC65A24088E32A13F1D883F8774729166F5CC5579A8CE5928B1B7BAD819C01B59B415650A9065381DC7BE562BDDE47209C1AB58A0C07178604616CC6D83BA1E9761556B86E9D0BCDA73B6A450017FA1CDA0BBEDF846D12A54B8DF7F43809A3C7B37F +ss = 58008784BE263327AB4E974FCDD2CE549178FFF85BC82507B7330CE42A8DE16D + +count = 31 +keypair_coins = 9BC5315580207C6C16DCF3A30C48DAF278DE12E8C27DF6733E62F799068AD23D195927B10C3BE5F19FB055A71CF9610FDC0F03E23FD09EEB8C63B7BA3C0FE642 +pk = 5E55633267468551B3EE117792C80C1A802230AC805F769807976C06399B97B3C93FB83BDC136CB3CBA70BB4AB5F11602E977ED051115508668C244A44E09569A13507D4009AB72B16CC3BC615C12ADA7C56D50BA6307D00801BEDF8526F0A9366869A4830314D162F63AB8F51996663C1138641275E164DDF60C7708A75376BC235E16D5C22033DE1A149153D1868679E1825F638967BECAB5B9644A6E201906771A703B7844CB5CAB61748D202D38B5B8F03CC45626027895E23D0C1C1B526C6D519620436ED593B58732164A39639C813F6032EB902B05DB15C5D8825C8B11815768D29522536698A751BC1F9964DC579358ADC57EB83A0D2201B9B9354B1B39C6E7008D5F3189902964973AF9A9C694EEC1298D68D3372783D34700B0280D692998B49A9BB76293D7A95363B317670352A71822F415B1C97742934713C5995FE5CA9642C3AC18B73C43357D4D497B3905DF7F58C6566621EEB25DDA29D97B598970684C5780F665243FEB854F9F566177200F9331CE353CD1A23CCE8AA4529BB667D1B9E59B1A312A7C6FF08871CD95C6934419F475C1C08395CE1A3AFF83DD14784303B4BA7751054AA59F5710E4AC6039F3168C1B601A5278562B525ABB11E66193DC9D34446BBCC8163578CB8065F89B9F43407F79246CAD2B6B8B40F16B839A060A95B76855237BAB2FA315DB48E40842F8306125FB04145356BC50B00E3389DCCA26FF048AF5A730AC573B5B80331D2597C4188227682075BC0000186B8FD26A383E1BCE5C19F13B18CB21602F2160DAB202BB07B63D925B71708095DAA662CF25DCBECC99395400A79842F5C40E79B46B5384CE730439F537BBC8A8608F61520E120EA9843456118A0A4CF36384832B12076044C65F06C8F8CC31752469C8A1E33DC529AC05485548A6E075F46A089AA8446C0D465BD43CDF0343ACC9668FBA2A7F7191A9D29BE7E9300CEF33D13A11EDB2B409DE297F30B8A7B077FD4CA4D1AC74B31092ADED0503CCB5818D1834A734E15B74D3FE550EE49773A800D86F129B4E0250EA1C43DA3A3B802B0757C6401EA090F98A28291621341A9D98C67BB001E46E89973F40C1C4950B0E34F07772BA6379FB6A93ECB57369B48B3ACA26EF815C615B4A97AC2190FD2B15E83AA10545FB859635D084A57B0268FF085D9EA4B7EE1763B914E67B33DC46037F39815A1F8C58663C88662B91BAB0DB6758288C682372A269C64CF3AB5C46DE2C8F0F1B7780A068948B9480C6AF10251453C1FE213855D74675CACC7B162917730AE74EC7A8E7673A7D0887EDC175791309AB28E6CCC629BF79C6D69B19269A19488B7B88A45A199841916BA4A2A1C2456A108A5CB4DE1B15356CA737369668B0B5C7BC10E22377D6B5FEF7515B4F348015872E3518C2676079B8A06DE8B53BD189EC9766C04C084E74C6E747C783FF3A99B930547A72FC3A179CBD62B52D46207E79E37D65C9F3C4839D1AFC167AE4041671E2C1BF3324D875B78615067DFE11653E6BD4DD5414579AD8C942081DB4F1A10B0E1054FA3D79AF6A285F2107D4232700676B8A007057D15C923A7889F115762B4C242392CE7C4438C68C6C3FBCCCAE4A071E404C24274F5066DEAF5359EB3382EDA6D6338F166ACD09E376826299B77B781250C2224486EF23D424BDD +sk = 4DA026F053C3EC1712C7F294DC891E26196894A1B620F97429574EDEE9568E113FEB564D89A1883D5A0329929CA57AC001925C8D616791842DCD291627D61C7C2C3F842B547F074F46F082A06BB4282323A291C3CC07904079125CD5A854168D83BA8AB6B160B5E1881D25403B297C73048E3298287F51529A8BA2DEDA6B4D7665A373171B03B1C0BAAB6482C50CA3A028D485CA8491B1B73767EC9EF8874A54D4CA414895D2E49FB2AC0CC80C9D248B97DDC51D00A10CA3324FA8A6373A99C5DC1BB7A389CD9A3C6931FC7BEE05ABCBA579251B742F46383AFB48FAA514319B8F9A0491F9212DA443ACF9B9CE5B29A6E723A4EAFBA5C1A7B3E017870FB35DBA8A69F1F7995EF2AFF817907DE5C66899824889A760CA4A38A57B3AFA880A3524E138B37487B2EE7332D2689F99A5A3748020FBCA43ED6045A5ABA65F6C67783CB74C217BA987AD381938B4A651B6908FA4F18E6D073A6992160438BA3C9547E4557E1E724192414C912648D25907BD8B069C845465616969161C483927F5D610C815638E242323465839D36A8149BAD494B71F1336A3F0A954369D4265B6CAB935F06694C482B500CB77BB32C4D805A295A692648A31611B206D06C2E86C61675577053A747BD3A748F452B480028EDCBECA8A10EB843EA8A71E21E9B822D80860764D8C5A77EF0222F8004C902C832F1A344758776EEB99C3EC8B24CCBC03F5BCBE59027FB424E6C580CC3B41C041984EA552BDD6396D52867887430A2534A44BA544A0B285C061D7D6618C76945A5C3B29BBBB09A724B1AC53E5954F66708C8C0B2D7DA57C62FC8B80E73D737741F9141F7164B4EAC08822A4C340B5B74CB5C2D407B9D63365C55C14C5E6AB43A8BC68908C34074A9BF4816E000DDB464656C379FDD829B6961C22E5345674243CA64705212D52E616664587F90947FEEB4366A7ABA98B76D9F79A1ECC4BF50571A07CC57E0CB1AF828BB26263A8A898BF3B7B0ED07988E82DBE3C0405D46B1CDC37600570FC37AD9B2237E3032BAB1A0AE420B6F011A653987305AACC8876AC4D014B7E619227B8B35BA2616C9575506870FAD2585549A2F902B185D7A61139C027912EE2A00EE460328B16CCEEB259149A0881F8152D563BC0243302D29FB98CC57A45369517640BF0BF63A555A900269878C4BA567F8D376176D6941D34957E1373B7520483394C3606089D14AEE0917059227BD848BB22E088DEF4194BFCB36EAA81D4DA713E37BE79E52F51BA2C32F05D06405947838625E49F5F6BCDA5E683D014A12FCC0C81601B52F80C39B6659606A8FEA82C62E061A939CB4451869922083268561E16381B026152170104E11F30B2399F4097B94078ADC66F23F85BA6651E861237700BCB1AE92E2BC652CBF19BC0FCA0D7F7577C9C96DBC9B8B07B917F258C15661DA17621DB1287EBAA7714A54052FA660F034F227198EA14C2467B46CF9877F4E0C29962992B560A7DB93C8EC13343F734D86BC548246A57473D1285463D0942F288245D933DDAB7A09766A9F8C178EF539F9CE9A0E97364CAC0366B5B08B4C1B081E01D198C2AA5288617A50019EB3A40A300AF538119D733F2544D18B9094F387A3F4C17BAF01523F1455E55633267468551B3EE117792C80C1A802230AC805F769807976C06399B97B3C93FB83BDC136CB3CBA70BB4AB5F11602E977ED051115508668C244A44E09569A13507D4009AB72B16CC3BC615C12ADA7C56D50BA6307D00801BEDF8526F0A9366869A4830314D162F63AB8F51996663C1138641275E164DDF60C7708A75376BC235E16D5C22033DE1A149153D1868679E1825F638967BECAB5B9644A6E201906771A703B7844CB5CAB61748D202D38B5B8F03CC45626027895E23D0C1C1B526C6D519620436ED593B58732164A39639C813F6032EB902B05DB15C5D8825C8B11815768D29522536698A751BC1F9964DC579358ADC57EB83A0D2201B9B9354B1B39C6E7008D5F3189902964973AF9A9C694EEC1298D68D3372783D34700B0280D692998B49A9BB76293D7A95363B317670352A71822F415B1C97742934713C5995FE5CA9642C3AC18B73C43357D4D497B3905DF7F58C6566621EEB25DDA29D97B598970684C5780F665243FEB854F9F566177200F9331CE353CD1A23CCE8AA4529BB667D1B9E59B1A312A7C6FF08871CD95C6934419F475C1C08395CE1A3AFF83DD14784303B4BA7751054AA59F5710E4AC6039F3168C1B601A5278562B525ABB11E66193DC9D34446BBCC8163578CB8065F89B9F43407F79246CAD2B6B8B40F16B839A060A95B76855237BAB2FA315DB48E40842F8306125FB04145356BC50B00E3389DCCA26FF048AF5A730AC573B5B80331D2597C4188227682075BC0000186B8FD26A383E1BCE5C19F13B18CB21602F2160DAB202BB07B63D925B71708095DAA662CF25DCBECC99395400A79842F5C40E79B46B5384CE730439F537BBC8A8608F61520E120EA9843456118A0A4CF36384832B12076044C65F06C8F8CC31752469C8A1E33DC529AC05485548A6E075F46A089AA8446C0D465BD43CDF0343ACC9668FBA2A7F7191A9D29BE7E9300CEF33D13A11EDB2B409DE297F30B8A7B077FD4CA4D1AC74B31092ADED0503CCB5818D1834A734E15B74D3FE550EE49773A800D86F129B4E0250EA1C43DA3A3B802B0757C6401EA090F98A28291621341A9D98C67BB001E46E89973F40C1C4950B0E34F07772BA6379FB6A93ECB57369B48B3ACA26EF815C615B4A97AC2190FD2B15E83AA10545FB859635D084A57B0268FF085D9EA4B7EE1763B914E67B33DC46037F39815A1F8C58663C88662B91BAB0DB6758288C682372A269C64CF3AB5C46DE2C8F0F1B7780A068948B9480C6AF10251453C1FE213855D74675CACC7B162917730AE74EC7A8E7673A7D0887EDC175791309AB28E6CCC629BF79C6D69B19269A19488B7B88A45A199841916BA4A2A1C2456A108A5CB4DE1B15356CA737369668B0B5C7BC10E22377D6B5FEF7515B4F348015872E3518C2676079B8A06DE8B53BD189EC9766C04C084E74C6E747C783FF3A99B930547A72FC3A179CBD62B52D46207E79E37D65C9F3C4839D1AFC167AE4041671E2C1BF3324D875B78615067DFE11653E6BD4DD5414579AD8C942081DB4F1A10B0E1054FA3D79AF6A285F2107D4232700676B8A007057D15C923A7889F115762B4C242392CE7C4438C68C6C3FBCCCAE4A071E404C24274F5066DEAF5359EB3382EDA6D6338F166ACD09E376826299B77B781250C2224486EF23D424BDDBDCAF7B417DA8B8933279B33068F6FDA313826C2EEC500B224CBE046ABEB37A7195927B10C3BE5F19FB055A71CF9610FDC0F03E23FD09EEB8C63B7BA3C0FE642 +encap_coins = C08EBD7CDCD4DFC51CF41DB75F31755F2B3FADB6A059499DD431EB931E348143 +ct = 50DCB075B04325383572C6683C7BDBF7426899D5AD665F2604B44F9C86312A384D1B62733646197381475910C0F5DCE7E35E785177FA9439113E34F5F6E80C4A0603328A79473DFF643E4546A9390626C8165BF3FF12E82E8BB9DCDF93248B29D81E61BC16DC6D0A7EB698DC86A1B065FEBCCDFCAA3F37BE2A9B3B7B5AD609F6B3D809C55903DC301A0280582639B43660BEDFCB10341D073E21275477D143151BFA7A7BF992F3CA6F1B6FA3804C96B2E352573467738229B44114B4083303D800C7CFDF137127913BA75F253F34DA66A7EE81AEC56BDA0F8A62A7B5E70B462C1D45A54A10D72A12D66D1B13980ECBB6AF43FBFFCAA18C7571EDB4B5FF913767856042AE70F0B61DC20B73C940049EFAB64E6850FAB76EE61EB609A98AFEE31C7444267CBFC47B793C7A57EA69D83E6E20EDFDCCEE1586710B364FD97A7B7EA4A7C17FB7295A388A44768CC5E89F6EA62C938DD8DBD62A319AF281C3C780D7FC4349290DEDCA09AFE2E03E6DF2D50DEC64971640AAAA241533818358597855BD29AF6E0AFF932A308B4C2590B13F29CAF50CAFCCD4EB3D17DDC33E84997E1512F5BBE729425F63F96023E191777EF613161040D648F42709E82BA79FECE9F40698F66E14E6098132E274B2FFB2C41C555467151DD1E16184785A459BDF444E3C8B708B5CFBA5485ECECB6927CA8F9385CD3FCE952CBC1BCB1790AFD1B5B2DAC2539496CF58F3DAB549810A23F74058E3F946AA2F21173FBEC752B033C559CFEC5C65D5DB5A41CB313EC2FF1C259F4F86269E5719A29BE8E35FEB2D7B908260D4F22B83AECF322ABBFFC650FEDE9687828D1A2500238E3F97C4C13CEA6F15F48C9AEAB72983427FAB1EEA1C92B60DB7D4E649995D899FF7DE37EBA0132775C615BA3B3516815C36F132E668963E9116153BB0D35CC8DF13CA687A4BCC23C40F60AC6E325CD887D6AAB7404943A81A50D0B05BE7650612CBB167B528BB23C67D4B0E9190FDACBC5B3E784F0BF94A4B43C9912241151D98BE3791351D34F3BD695C9BEAC6D0256436B23FF0D994D56F708CAD8C113695B25C9F8E5CCD9948C9A79B946DF043BEE2DD73C490E0CA7D7AA020665B53E3BA7867A5F8563E1838A186C80A1B29E0C8B84122FCE66D00B4D9D55504510FBFF49D663B00DEB3706B00F584A17375CE7A433E9ABF938792E242B64AE2EF65ED39D3EABAA89376448DA129159C8F915A429EA0524A4C5DC86958FCB5A51299F748DF2D76F156ECFB01A1047B3D63AD6B12D46BCA2DF3DBEC119DFD709642384947404E569A0AE0EBBC9D6097BF7E2B1A45569F9FB9E3BBDA262362F70181038BC40CBC76D997C1CEABF1601DBAD99A57E420D333E860D6F836133DC8B1660C6682D5094AA49373994D869BFDA7DDF46D1B56D303D9229F55F1572269257B3A79D2550793BCCA689BFFEB1B7EACE83E8D698461A07B813445B313B0500CB351AF4E01E4E0679178D0106B8B085ADB189B67DD5123553E0DFB1711621142541B8BFA2DB000411DECB6F6F0B618 +ss = 0A950A267AFFABF0644E2351506C01E6762782220815A93F9DD1E439EBE7DCAC + +count = 32 +keypair_coins = D8B907B34D152FF8603B73051F772DAA71EB902C47B7E2F070508269D757E02E7613C090FBE4AFD54869CE826B72F3A5EC823D9A1C983A3D31B2387ED6B0C613 +pk = 420A3005A17C7B4A08178B83F8540601145B102970B3FC29F30A4CA1A8A5BC4164051931ED68A59EFB2B50D549BDC1A65E9909F5AA690B0235D32B1C6B2886CE2959FA189E2CE24224E99255863E6D964D4F422C02646A461BB5ABF86F4B4C0975765A5B0CA01081677334AF26C3467DA771CDF40EC4293608801CAD9C61D5F80839774EAFF772B139051BEAA65632120F00171AD020276A1FBF23517582149AD2C73450B11315CA4B244E7218800350AEB5808DA774030635BC247508144740634AC4A078A5AF2816E9206A645287DE06263277242DBA12AF2A82CE13BA6787C5AC3020E5D30CBB92452985AE41027056F492BB1A5E23332698240B5038302E552C5ACC0443A8795804126E15369AE96CEBD7C9765233982458AD6520550BAAD77BC74296BADCD4CC37240D0163CAF8C806A0CCC3F4125A0874CDC1C67E4626C9C753453FA37B208CAF5F523388D6308248B7688C80F6C925895670A1397880933AF0152DA1E54F7A7B512AA87499F7A718E62A7CC5BF5687ADD09060426B0D3CD292AB9B8372083EE462182872815CD740FD69ACDD24615110BB618CA1EF662715F028864BA0872B8C199ABE40F35F91906A821B8CE0742F931C661C65AA2445371A300E68F23B767382F3701CE685CEA5F59C50E82E45234169C3BBAC814AB9D68F83842C513A8FAF475590B3BAC2E3A4685B8F71208357D221AE41310E8454D315670C3A3409A2A95258B9057B42DEF7A7C6F588F6DA61183ACFB18A7CEDF138C7984B50A940F17C687E5A2F83451D94398F4C82C93A375BE195B4B219232E9A766E77040D3B9125E70FA4097D807A6D25323342508F2490A59702575D64AF146088F59802AA2CAB3537A8B4E92A10EC447BD89F9FE738D92A5F83C2861628601E42BB427B87C2153D4BC44B19413B79BAA5EF55325BA8A42E1A88548155D03AB116E47EE0455F0E5A71BAE3A03EF476F77A9A9CC6526DF1ADBEA64930B6995F60181544356C0982E957C5E5186F321B9467D05DD5970A96E226C89673E50A056E7C0A8027ACA8A5CD93723353CA1991730DFEA1AEE943CB0D62537CB5AD88C14F52A78CB6228EF4750EB7DB0AA831A4202B178EF47446A06A17E7CAF5274F384B36832A07AE0A66069BC59FE439F7B6005F064D865B550505210768BD636C61F0E7A1BDCB3C3065908D51302EE234A3FA113A1A1A2A618750075A6EC277CBDAC535FC1524A62E3C0601AAD1C46026AB6B8495C1B7093F776F9E6B3B533267AB99801E83BD18570166387F14ECB4D279B86CFBBAF90649E5C514E432561F850497D47C2BDA1BC2C398B306751991392C399DF6F408FF836F989C41CF76234B9445D9F81F4AAA987C1721C0C726EFE44C311A589ABB5E0AFBC4ADD9BFF6F87597A52E16A53D6C3551B7E6BE0A1958A89A739E0717F0A86BE0385C5CA433B68AB9506BA3A6E00DEBEB1AD0519E228B5B2D9AA3C9B4A2BFC8B35BF0A04B5A9D0154AEF1A9478DF4C8A0354F8878331F76C8CB6851940C996109113446367497CC73D395B34A9C7DD9621C9BB277BBACA6D976C3E65FC3FB4588643AB523BB35F551F1F30D0CD1C40D14B09429215E0C5325BB2B069B85C9E0BD9FA841771AA7C9709046B442990CF89513930F122152632A3C3D7C15C8018E1C23AA33CB89AD +sk = 1F83902BBB77A97B032277079CD0CA70D09D57385CE5C1B3C08B80ED95B2BBE70C101CC1912B71B29B87DD08254B593D616A31FF4957C7C0C325F82024F6A7B125B0FF799FFF47AFA6A9A7055382BCA08CBFBA71EA1B530BDA5A4548922C90C6DE8927494370EFA6C96780086BF585AE6534DC05344DC1941EF793EAE214312A371ECCCEA680C1A166BA97E128064748269922C9A19CEE4B8A669ABD146491ABE31A57B724F3A173740269A33309F651C934E09A564627896150ADDB8BA181CF2503256512B0DD5588F4372781F35CFC0328C0DAC842A1B3F418B6E8C567F410568F2C6BE8EAC9BAB558DEB08389BA08BBAA50E1EC5DCE044EFE5830743402402A167A9369E1D281D37713EB656662600840409C4FB971C0FA7771BA53B6C13EBFFCBB85AAB3316A3A99A9CED8BC4596932B3D052FBB13A5CBFB762AD7A08CA4AAF33862B6325BADDB0E56D395E8F92EBC7347E847956B471695C978DC2431EF7286C0E0A880F7871BB05160209900C0C403DA599B988A8EF0A716A9535B71002B3BCDADE60053F5A8BC66419FC907F1EA718B7BAD6BB76FD3F710E6778587C36BA5E4C2D7796185BB72C5FBB839B6C91119AE6C954E9B66C3EDB500D884428BE2C7CB6A6C86B807A6059739E23F70433D8A7A4AA768975AA6B0C3924CC8827CFC731A464121090A685820068019197F489315A2274A7133422B2968830271FC94B1C775C5A21E3B07BCE543B32F00B7250CABD0D04A2529347848830C975261A54717324533EBC0EC627F2064BA693A9BF9A16FCE87A8D7270759A06C00EAAB71A5CC25034120445334A39D63BAA2AB3254D77A921209750F6869E6971D05DA1E1BB29CEC9CB7B4962370E5C139BA472A75114B28BBB8E7069C5A8201B730DB571C1EE0B10E1C42B4A97FB7F7AE54670D12859D68199443157DDEA85760445895E7175EF8BB919C7213F427301C4F6561AFFFB0B03CF1AD05613C52DC5CA71A74545ABE77D239576303BC9678272873D9B28F4A4AACFDB46940F59B0A82A75642A0CD794D63D03D43F65E753A6AA2B58E0CC664A48CA3D8A3B18C7B05CF8293D3E23FDFDA93506C831455B648E2017FD866C87683AB307C6FD9CF24212509D777F34B0618776864EBAE9FA5318E739692C5AA86648D49778B67F81347B434CCFA990EE9A79DE94C94054E6E4A8A152B5F4757B89F075A27AC464CD1801D02AB64BBBA4F932C0003458FF73011282BF444961C54C5275408C4F79C3C553424AA4AA13A53D59B1B785C0FFB686FDA185D5438AF5C494D98B80381C821C493BC0E7797CD1995DB681EC9E18859A9229C497CC251AF12D9CFEBC6A19C599C9D364E587C7D32245145A60CEEB54CC7EC5B541B71DAE959C800A747EAAB53F8CD24365C91F53B7B0B9D3630361D41ADE4C82C85E04D8BA243763B3F9DD65D60921F962337A3421051D36889253A423939ABEB0AD962CE1E1A9931C960D9F4948723CA17A731ADFB4834615693F622470225CFA7B036B931A2240564CC35E59A7ACAE48707491576CC1410A304E0885534F577692C5A237344A5F674EC7C45BDA3242D70B004D5AB620CA2B1AC0A56C0CD5B942529B054E0F840E3C1837E0053539B4A420A3005A17C7B4A08178B83F8540601145B102970B3FC29F30A4CA1A8A5BC4164051931ED68A59EFB2B50D549BDC1A65E9909F5AA690B0235D32B1C6B2886CE2959FA189E2CE24224E99255863E6D964D4F422C02646A461BB5ABF86F4B4C0975765A5B0CA01081677334AF26C3467DA771CDF40EC4293608801CAD9C61D5F80839774EAFF772B139051BEAA65632120F00171AD020276A1FBF23517582149AD2C73450B11315CA4B244E7218800350AEB5808DA774030635BC247508144740634AC4A078A5AF2816E9206A645287DE06263277242DBA12AF2A82CE13BA6787C5AC3020E5D30CBB92452985AE41027056F492BB1A5E23332698240B5038302E552C5ACC0443A8795804126E15369AE96CEBD7C9765233982458AD6520550BAAD77BC74296BADCD4CC37240D0163CAF8C806A0CCC3F4125A0874CDC1C67E4626C9C753453FA37B208CAF5F523388D6308248B7688C80F6C925895670A1397880933AF0152DA1E54F7A7B512AA87499F7A718E62A7CC5BF5687ADD09060426B0D3CD292AB9B8372083EE462182872815CD740FD69ACDD24615110BB618CA1EF662715F028864BA0872B8C199ABE40F35F91906A821B8CE0742F931C661C65AA2445371A300E68F23B767382F3701CE685CEA5F59C50E82E45234169C3BBAC814AB9D68F83842C513A8FAF475590B3BAC2E3A4685B8F71208357D221AE41310E8454D315670C3A3409A2A95258B9057B42DEF7A7C6F588F6DA61183ACFB18A7CEDF138C7984B50A940F17C687E5A2F83451D94398F4C82C93A375BE195B4B219232E9A766E77040D3B9125E70FA4097D807A6D25323342508F2490A59702575D64AF146088F59802AA2CAB3537A8B4E92A10EC447BD89F9FE738D92A5F83C2861628601E42BB427B87C2153D4BC44B19413B79BAA5EF55325BA8A42E1A88548155D03AB116E47EE0455F0E5A71BAE3A03EF476F77A9A9CC6526DF1ADBEA64930B6995F60181544356C0982E957C5E5186F321B9467D05DD5970A96E226C89673E50A056E7C0A8027ACA8A5CD93723353CA1991730DFEA1AEE943CB0D62537CB5AD88C14F52A78CB6228EF4750EB7DB0AA831A4202B178EF47446A06A17E7CAF5274F384B36832A07AE0A66069BC59FE439F7B6005F064D865B550505210768BD636C61F0E7A1BDCB3C3065908D51302EE234A3FA113A1A1A2A618750075A6EC277CBDAC535FC1524A62E3C0601AAD1C46026AB6B8495C1B7093F776F9E6B3B533267AB99801E83BD18570166387F14ECB4D279B86CFBBAF90649E5C514E432561F850497D47C2BDA1BC2C398B306751991392C399DF6F408FF836F989C41CF76234B9445D9F81F4AAA987C1721C0C726EFE44C311A589ABB5E0AFBC4ADD9BFF6F87597A52E16A53D6C3551B7E6BE0A1958A89A739E0717F0A86BE0385C5CA433B68AB9506BA3A6E00DEBEB1AD0519E228B5B2D9AA3C9B4A2BFC8B35BF0A04B5A9D0154AEF1A9478DF4C8A0354F8878331F76C8CB6851940C996109113446367497CC73D395B34A9C7DD9621C9BB277BBACA6D976C3E65FC3FB4588643AB523BB35F551F1F30D0CD1C40D14B09429215E0C5325BB2B069B85C9E0BD9FA841771AA7C9709046B442990CF89513930F122152632A3C3D7C15C8018E1C23AA33CB89AD61E27E954728E2E2E230C94FF009417D7372938E2C29C38AF22184EED530FA1F7613C090FBE4AFD54869CE826B72F3A5EC823D9A1C983A3D31B2387ED6B0C613 +encap_coins = 0727DC8ABDF2F12FCBBFCCC9C84B6DFAD8E1EB346249EFE569F2ACE9D8614A07 +ct = 980C7CE5EDBA4FCE0108EDD1E15C86D68F58538C2A6FED56719A2FC83D8D97C9757B8EAF8674E78669314FCBB5D0C4821EA6FA0758D853A927553D091B480721D419D22C22A5DBB17C23E79C8A40F60FCCE30D186478BB0DF9EC8C1B4E828020E94047F130C10786850010ECEECD2A7714E8D43B91B5E5C61632F94E6FC4EA41FDE31F6F362776C836DE212DCE2C6EE446302EFBA891DE947876E68FEC1A18B0389D3F11F52191294E1E528B94958FEF03E6C9025F41EBAAEE862E49F6BF9A1946E130C50200B4EBAFC5ED8CEEBF70263968BE8418166D9AB641EC7A9D34302894A550FCF699894EAD453AF7E4C511BFF043A5448B6680D4CBFAEC995B13EF3660F9F42A4E1350E2D36746B73368D0CC06A05997D7A54B08486A4A90C53CD378A54123F2FD659FF3D0FEBBAD3975BB9706E923A297FA8554F91CC42E509B6F0C89DC4A9903CC6AAE283540505BF4A5EDF6C586865DA0866CA3EA6CF4377D317B58D4FA683146D4E4857BC1D9A851D48467F19113B23700FD9CE3EB4F602BFEF95AEEAA8E22F2BD39E56DE5B2AFC5C6B5954C5D11C26FC926D61B8BBC5E03529A9194B5BDDBCE8A04FB1F3223934049E7664F71BBA1A0F8D31985B08DAC9577AE10B44B9297A136060CE3AF5F665C9B7B98D0C47C68F7D1A328F9D08E2220523F0A2A4A86F4D899AC27A47D39D991C104468D76057C98F203EC7593BE05F47C60F0C22804B742C55132C43BC1A22975AAB9E65C3631F8EE1426CDD66B5F788C266F8DEA4B0FFAC86DEB2A72B771D05B40E2C12DACC1826F0B51655F3713B7829C46D0055FB264C9EE3CB581F518BD9112988915C5383FEA503E6320FD9EA5304FE10E19B60330CFE41C6B12907B0743F3FDF3BD232829047C5350CB46222422D413C455B4AA27ED6753351AC218A12145B9AAC38872988499F0FF7F91622799466C5B66B6215A12A930A4DF2672B7A3912B98E3325F80AD05E79389C8F7C90766D869C8CFA8BF237ABC78F866C4A49801A264CCFCFD536F5CB16FA3553708B1930DB15DF768E21ECE3D488E58EF199D64239285F90945F0DAE7662FF163932721F8ED5A3737781228EBF74DDD086AF0E70DD5BBC617C73C7CD08306AC9BAB04A0FBF6D647D14CAB32D45796AF5EE5CDBFFA037D9B171B892C307316981098DFE0539DE4C38FA5989E121F88E2D7E8C2730CEADA5CA893EFBC229F9ACE7EA2CE62548D6F6581284F771BEEB12AB63881EBB343994F7FCB2ADA47FAC1779F46763866ACBD8D4F57254824B2E729085E596AB10735AC2A49DEE13B17BE2546D7D599A2076D299F115AD80D6D2A3E52C0423F605E0CE26A22A30369BF74ACAA801FFA77E448819D7BD1A4DF1FC7E43D644C8E919D2A873F824FAD3E5FD1807C31F2D02799EC3AE75764D04D73F322B4081867CE5736B5C18404EB60C4F3695A239262261839C37E38AD4AB8893322E3B2BF9C55A3662842C845657103AF7AD52761EB15B3D4AB2FEBE73D555E7EA66021AD3AFB172009B709581BFB33A4252725A2CD +ss = F9D4D24CB3E4435000C5DA3482513E957D057F0A915AFE36E6AC39B42F78458F + +count = 33 +keypair_coins = 684A29E4E5480A5F2533E1526B5FAC8CDF5927F3D85087C71F928C59690EB565BB3EEAC4320F84D09CAD413A7D7C19C27668B2E0E1BBBA2D159B833DB6C0F50A +pk = 63992E0D6A8F811B3F0D30807456C84C8BBB008D3B126A31424954CBC6CDBCE91E25B19928F4A41B1371447BA3D173915580BBD7899E9ADCA37B4B5A21E715101717710BC7EEC56EC2E58002127D1898BC55F8A3BE385D607B3BA6561991AC6F0913617303830DA25F0CF0AC14E67ABB8097D17B0AD1EA8C6C267ADF51A15A9A363D7AA5C8EA535A89115C984AC5D6BFA922C6FC44A3B35CB667F939FA6B2676BA212C17BCD25C82E8172F6A7506E8B77D82CB21D7066DA93A7EB3CAB8E881A24C7592BC6B656E459AF33A06FC2846D71221F1DA641004B68BD65DC28A59036CA678508614B15A93E74F89B8AF58200D50E718DAB1C41C4556CD47B43F14092CA47397243983406E12E423233C90CFEB661A32CE65AB464DB58C922BB693F56553961868B064E17A11162A7F0E3AB0B0AA76B8494BA394C902C598C23721DC16C51D46B8258C635763776B922FCAC747985B94C006696F18BA49D0C5EB0525CAD1349745691320969B6BCFF69C30851B41E66AAC3353C6894AB0097B4EC49783CFE4960D61A6F94B317D488D2D04A8B42C7FB7D89D52D89B2DE30336333C50895348870BBC311611F27845C7775128A9CC831966FCCC06292D86B582A18C6AB2FB3CCE03701BA91047227A9FCBC6F16130710756C5DC288BA92402B5B7DC90C39193737C206F3F8230261852F1694258D47C469C7452156E70634384825BC52B03E90720066B609A4102862433E2621987E23AF51121BED807810501200B776F847FF615C0F594420DC29CA6573276559C1C84B0723569DC2A76728909D9D1279A8C240A3979B0B44003687A412389581B8EBF0CCB06C797F7F5815CCBB434132ED5F1340E2C669430B13A709F7D1612AF876454F06CCB7841F84C60F3806D5E423CB34B23BBA90AB630403A46783329707388A1F4232785D4723C993CC62284D0E35242E52CFD6981268B86F598B11472900F83333C48627D402ABBA59C6740B4A40ABC3200B5D9E13010FB4DD6BB503548C777256E0729905A89BB386459E0B885B6E3017C94BA93C7518F017695F5BF5B99214C8555BDA863FDD11D40053C0D652696286D2BA14D569915E4532132527CE1B88122640AD668A20964476DB20AFCA5CA663C6C17156AB3CC8E4B723B3A5209D2D10767DA52B2443764F91A7F3AABB35137EE18A1F744562E22385716892CA77D518C4BEC578E0F1145B3241C1831BF782C760F9081A1191812790531648954163B10E6A1F02B2B9E17CDD439C6707AAB0DF09236BA33D9B271196A398FF0B2C9521E57B6C8833489C5328F4866C14D2CC1CE037400DC610B28CD99150404A175662102F9617205C1CBC24B5716C7B9B0E8635BF960BE5B632A976156C64078CBB23EB86B7BE9A2D3E12F5B56406CC51796C66A6E871DEB601CC767C0B8E45744346DE60BB160808210506C5779BC275940E000314F30555677689F23009A583CD6F9779C83530E5B2A5A0A771BF1376F0091C627AFECAC104FB2BA251C074E359E5FC44DEC244CCB78423532A7EB27C8313A341DC1431035162838835C85C677A420B67C847DC6605821587C8064E0BC2F4FE6A6B22113E73519125B92B3A66F15564666023EA99273D0D5657CFE1B1B3BBF85039A8189076A3752784E23D8A802023FD0743EB03D989A6968 +sk = 8B78635AC351C94BB6B1D2B861E4914DCBA415F66CCC465B370578E136330A2C5CB0CA2857E1CB733A75E5CC4FCDF7A12580017F1C0FF484401CB23318A98000637B3D065608678103940D8BA75CCBE58206C130ED62BBC0132317B6556A9C2AE8F71A43712002D795CA52007782652D291DFE535F75034B0D624277527A6EF623168AACFBF721A9E8753195B82EB9855467322AAB0AB1701546C470AD139944B6736E1C97C9768370846B45693AAED9C80A7B53B863830DF61FE9600AD5717BFA2C8E59E30C8A20179B27B59341C855677880330AFD1A227B6C6313E17C46E87D109A4AEC4C1795908DB6046598483159907A667378F80BCB84472D5A748043B1BAC10BA5BCF61B07A2B13B12C347F3253E26C25EF0AF6A003A67B0BEE98A7C5A489C9EC9AC1F042C6F2BC7585CB01BB4B55496A93DE903EC974398E277CA7CC25E3265A879420EA0BD8451716AC21F1BB806C12B3488D408EBF18B89B79B1F8C09EACA235F1C165F9504FF987139590F9977513EE037249B4E25E51A296526BA76CD3295895A571CAC279BC65642CBA501C8F131EB52B5C7CB73B17757440B1EE4E9295D404177E542BD744AA587738BFAC0EF3C1FA0F19B0A5C5E28B53C2340C7FA061AD354C85AD26993087B61AC2002795D5ADA7A3E6747AB8110367C824988CA705B818D7A921DBA33371405AD235B18E463A8AC88180C88F071579FA5AB6D904A2F53B03F7C7EC39C473632369F984F8CC66DBD1924206A6376706CA36601BE7B16EDD17E93CB9A0437B3615374329B0712794F5058790D88182BE4863293133A83AA00E07C8E79C6F12C33FA9437ED984A1392903DA89BD43184DB6C8DACE3789AF5CBBA092010B889CA98AF99E5B0B3D4399BF61266E833A55A85E11784708B98EFAB223A27AEA1A16E76A73C2027759FD97A7DB870F9FC79AFC89435D092DB556E0A738C133B259F86C98D78A43A49744F306DA8CC6C9098A5A9CB091C9BAD94970F03B543D669A9AA4944E0C08DDFCC1D7D485FA414B0765A88F175AB6C94B12A2177DCD4998E6AA263EC3FD5BAA2466CA04568869466887F7BCF636C7A1F084277532841F51C3EDC5C1873BCE0F07A8871740C4AA82BB5AB164916082B795EB0660BE32DA9972840C927B7BB4061343D56757258BA4C91624F21DA11CB265B00B9AAFBB1665679C86EABBDA12B74F1C5917101D0EA2BB293C71AD5B556369378A8D5B7297C9731705DD4493DBB173AD01458686A93287B6DA0A6923B913989B69612A915A03A0962379BBC466A03F5517AAA0C0B030C6CA420636B2EE8821916E9C7F2BA228BB2AEABBC292F6C07AD85C6F43CA90D42629759536046394936C3AC5AB979D5CEC1A1CC19B5C17EDB47B0F47F34D616027B29A12725BF14B62FBAC4F2CC6EECE89CA0467D4868C11C17299373687B657D132C55785080F5B87F0E3C1504673825B98E8A0AA35F2C8D84F41B060AB43A930E7BE1C9D04746169BB4AB403ED8C74AACB868B4A93F1DC55144738E2736749AC64170CA7D0F0348A9550EE494466A49617B541068F2C57AD4108AB813DB58526C7647D55C1CB657CCD1143343AAA8421C23BD0C822F763B6A82B7D0041648A143BCC43163992E0D6A8F811B3F0D30807456C84C8BBB008D3B126A31424954CBC6CDBCE91E25B19928F4A41B1371447BA3D173915580BBD7899E9ADCA37B4B5A21E715101717710BC7EEC56EC2E58002127D1898BC55F8A3BE385D607B3BA6561991AC6F0913617303830DA25F0CF0AC14E67ABB8097D17B0AD1EA8C6C267ADF51A15A9A363D7AA5C8EA535A89115C984AC5D6BFA922C6FC44A3B35CB667F939FA6B2676BA212C17BCD25C82E8172F6A7506E8B77D82CB21D7066DA93A7EB3CAB8E881A24C7592BC6B656E459AF33A06FC2846D71221F1DA641004B68BD65DC28A59036CA678508614B15A93E74F89B8AF58200D50E718DAB1C41C4556CD47B43F14092CA47397243983406E12E423233C90CFEB661A32CE65AB464DB58C922BB693F56553961868B064E17A11162A7F0E3AB0B0AA76B8494BA394C902C598C23721DC16C51D46B8258C635763776B922FCAC747985B94C006696F18BA49D0C5EB0525CAD1349745691320969B6BCFF69C30851B41E66AAC3353C6894AB0097B4EC49783CFE4960D61A6F94B317D488D2D04A8B42C7FB7D89D52D89B2DE30336333C50895348870BBC311611F27845C7775128A9CC831966FCCC06292D86B582A18C6AB2FB3CCE03701BA91047227A9FCBC6F16130710756C5DC288BA92402B5B7DC90C39193737C206F3F8230261852F1694258D47C469C7452156E70634384825BC52B03E90720066B609A4102862433E2621987E23AF51121BED807810501200B776F847FF615C0F594420DC29CA6573276559C1C84B0723569DC2A76728909D9D1279A8C240A3979B0B44003687A412389581B8EBF0CCB06C797F7F5815CCBB434132ED5F1340E2C669430B13A709F7D1612AF876454F06CCB7841F84C60F3806D5E423CB34B23BBA90AB630403A46783329707388A1F4232785D4723C993CC62284D0E35242E52CFD6981268B86F598B11472900F83333C48627D402ABBA59C6740B4A40ABC3200B5D9E13010FB4DD6BB503548C777256E0729905A89BB386459E0B885B6E3017C94BA93C7518F017695F5BF5B99214C8555BDA863FDD11D40053C0D652696286D2BA14D569915E4532132527CE1B88122640AD668A20964476DB20AFCA5CA663C6C17156AB3CC8E4B723B3A5209D2D10767DA52B2443764F91A7F3AABB35137EE18A1F744562E22385716892CA77D518C4BEC578E0F1145B3241C1831BF782C760F9081A1191812790531648954163B10E6A1F02B2B9E17CDD439C6707AAB0DF09236BA33D9B271196A398FF0B2C9521E57B6C8833489C5328F4866C14D2CC1CE037400DC610B28CD99150404A175662102F9617205C1CBC24B5716C7B9B0E8635BF960BE5B632A976156C64078CBB23EB86B7BE9A2D3E12F5B56406CC51796C66A6E871DEB601CC767C0B8E45744346DE60BB160808210506C5779BC275940E000314F30555677689F23009A583CD6F9779C83530E5B2A5A0A771BF1376F0091C627AFECAC104FB2BA251C074E359E5FC44DEC244CCB78423532A7EB27C8313A341DC1431035162838835C85C677A420B67C847DC6605821587C8064E0BC2F4FE6A6B22113E73519125B92B3A66F15564666023EA99273D0D5657CFE1B1B3BBF85039A8189076A3752784E23D8A802023FD0743EB03D989A6968672E53B28D579974D268132187E7BD72238639C6F2CA154D50D98C74096EC330BB3EEAC4320F84D09CAD413A7D7C19C27668B2E0E1BBBA2D159B833DB6C0F50A +encap_coins = 492D4CEA1C6E07D9535AB2FC21D773BEA7EE2C7D66EC80D41191AED269A398D6 +ct = B120BE9CEE70428FBFF981405E438803B2AE92C86C036C488F75022ABF077869162F99F0453B76253A7C5BD295D65FFD56B98CF2897C572C31FD0795323BAB383D1FC6E1EC518B365158B8D254FAA66AC91F3431A95F8E2353819DB524A144D6DBEACDB92B05E03E05F2D345D6FB8E2677D5E002C5CCDA1E0728C8B490E51463B39217E7609FF16B9D01302CA2A348F2F75C4E2986FC5BD87DFFF75E7A7E0F7241A7005D02791F043E47B5024FBF2FB71A61E321497F2C1E69BC50CC2762BD4A2D4B7375BEC9382CAE6F9ED64E9479B194BFDA52FE1A7EDC2A19C0410E33829A1C3EBA7B139B971212537FA32CF1F40D0E5F527C72A94F225C5CD1D849102946E5D255268EEE1BFD76542DC0351913970C0E73D5D6AEA204A28695100032C8475831EA43494AFA0C1E0D3A263EC4AB76D1D9B443D31AA9621C2D949CD109C503A739E1FABE154A3D8A070FD3F93020EF69FCD0B3AF9D36B4E1496A0ED3F8910D8CF5F9D9161CD4BEC3D39F29C524D81280CE499C8B0473C1E4A2782024395E402A2911F77C97882D2599B03677F34539DAD7ACA4F171FB882B9D89082286C1761679AAE31AEAB83F22180B9EC69DCF22AC8FB8E81D100768BD9C386933C8850BEE094EA2273CFC49C61760C97DCAAC17ACA99D3DCF7867836482CAFE94936575E426E0E804DC05CA020D17D2F5E6E144E647E87C186A40625C62EC8D711FCB27859F90FD2D0C0BF6A23F78F28F7FBE97CB15B7020AA9E62F19D25684C5935D1A4C0938CAE5C26BF27ABF055E66D84D24C28FF8374926C6238668111A0B1F49DA2D78E8EFF3A79EF3BFE448695BA9978BB6B4A091472CADEB7AEC0E6452165E7605EE7FB56970F9DFE8B72784EEEBBD456B76BC175268434ECFA8044A4991CD2826BA78B7083B7A89B13510440753737C392C197EBAB2D69D6040767CD83EEF6108DBBD16D1879C518351843C057F78D7684B824791C867C219D4932CE8FAD6DCE8E0F91E1EC5A6F547977CEF2A1FBCB8D7AC072024CCB261ABFF365B3F2E7C703854E246746BE3D6FAF2208FD8895288EFE376504ECA189E352DDB20C2D8648EEFD779931BAAADE4C823EC5137FF4AA7F07848E8BF9E8B2A8B0646CD6FE8D0FC061CFC112844F5E8476820C321BB502E02F29931F0271AEE6E1FF73CE57E8C61814A450CCBCE73A8C345D7D554EC58FA13BB53E473BBAEE3048C16AE4EC0B1F7C99C2D00768931D8A1C0D4A7D9D9950A5F044940D9283E62F31E9B6B0F9119E929E682793FC5ABF105E5F4DAA8968DD9CC25CB02456BBDBAF297B5743D95BC7CA68CB323D796906BC35FC2A49CB3435D79664E9F350840225CC0CEB96431795F6646E2A3AA9D47ECB183134260842C68A63C78E9E3BE85031D2E8DBA9E871C30E932BC1C017428FDFE1DDC7D20B7A542022B51F50DF331764C1AD7BA6C3F44C840CDCBA29B2D84FBB314F2E8F2D98CA3D176D99A335011D2331259AB75658E591A33DD12CAC0301A584F6D455F3988D3764022014A57DE4C2DDD62A8D5A216A7 +ss = 9BA312722B5D9586905E6B8B5F27CE6EA6437EA5116EDD119AFB92C22EC71359 + +count = 34 +keypair_coins = D76B3573F596EB286AB5231FEEC7499686B13021BE36CB126C7EBEB9D7030DAFA8AC144DFDA421DE1A7ADDC92ADB79BBFA9657F3DC4B78A7335F29DB87B290D5 +pk = 192042D43A4271E44D1546306137A4427130C86A2025BCC297EB36D3C44E7CD4B0B1C22005FA702AC12569BCCCCAF6AC9256A1693C8B677C5CA243B9C8556CB3A268165596FD0470400CCF5E3B56714792F7A87B9E03019751425695AD70E4CE0B2769571901C6C2003B58152FA9757922BD28A094771B0CB1DCC73741B14B402E8AB86DC0F647525C131E9AA1A9729075EBB3CDEA4D31F6C3B23A5BCBF74A3C653D4C015CE5F65FD1042A137453462B8710704BEA463204C463273BB71056378850AD28F37EDE664E38514DD735BF9AB9B95D367C54D84FF085650AD33EBBC982A329C6FE3A516EF387BD0A0417C2655A5476F51A68CBDB4AEBC53F00C11E78E5BA6692A516C076330C20D0A09F167BBFE1C956A619825A8305D1AA9AC5736E6D24145924B2409A8688B41F33A181A9E4858325140A797F2BA81D50F21AF88650CD0BA8E662077708551A947C97C0A3355852A77576CA5B054D3B0B9FD973DADA618BD02FFF1CB59EB56B12C71B24BB1F02E27282D21281493AC7D07A20B124AAC30B7BCB8C2FF24B2C927D3D62ADE0357BBF7C1281FC94DA2B21D10A5E5EE07A3FD9CF93E34615B871C8DA7DB5441020D0522C12711E1963BE54739BD43949999083115988A09C6020CA88124B35C34EBFB0743B494B2666CCF5B5235968275FABCF9A054EF92833D8EC816D68C07FC53634A02CA192A411C87DD1F17FFEA094B6868638716CF593B33483591E4049E4E7C65C8618B242B17D6021BF0A70C7C59BC81C34F5441B063B9A1D95481E6529602B95F874BF1C649D95A072E70A52E9252E1DD1BCCDF64332345355F7CC48EB7DD1AA2F2C31AD1FD58B8B3A711D113C270A90AA2C5C79958F3907AE3BA071AA6144B88BA6C5575BDCF5331729A65D8ACF3DB97ACA4191B72A2BC1433FB3483EFFF09698C291DD868275DC5A86D06D97305BA596515E434A8D956B2B73B3C00821BA055AA7541E4F35896113ACFD9320FA91585F3212CFD5B023A77D7C5C0CEB746723C2C7D7417BFB740E4BFB2299B29F987698EDFC1B8D7B33DE2C80D0CBCB44F05B1DDBC667005B6E4335751AC281022CBCFAC0A55226FA69CFF845007B9A16D2B6BAB3135B325B12C263A81FD423120A6FA639910159B693406411A289863736557A028BBAA23E0C984F04543E61916D9BCEB4F64FD48823A4B13E4F83B43D443F62ECC72FD304F71772CCE318C1DA9A57A67502A1119313B93C4A66D03C2316C2CC5C2285B1E80C413B2F29C447DC975923D9100BEC9DB958ACD7850AB0777D82814929121BB87A6F4F07880510331EE6171797BDF23850D5FC1802E432B2F51B3CBC37631C9729892B6A09BAF6717E6EC39EC2B3489B33BAF257C35B9CBEFFDC1A1334380FC35DF386116BAA9BAD3A0A8381C4FDFC4B1B98836F23AB923175EAF72C59D9C500E10944FB0FD701BA5142B3CC358BFAF2732D643D0B135C8F991B0C73789C465A7E1B3EA6804B5AB9AB2E42CA1E91158019306855A5767893BCD17E92A41470D721F6432448FBC370C64C3E330D83987F3A9479F000C75320A296393E253A68E0E1C05969784F5612ADBAA2662459B09638202B74D8D5CBD2B01A915AB2AD06B08670546D8B76877B8B2EAA1ABB3132E55D8BD5B08678BFA4243430BB4D059B58A4B0CF0FD26E +sk = BDDB6A1BB704F8B530860B719752402098C84AE4809B01C8EC7583A66A3F4BC290BF2173ABB41868225606D54991F5B547C2254C74391717045997A57BA534A97B3605E1AD9F7C6446AC08BBFB1999179BB8F67731A63CE1C717F30B57FD17BC00605E8E14127EB0C26E324AABD45138484A51A15DD2464440178CA7E966D4D58383F6BF9BB2A971729074781A8D978965F9A51EB2729BA8C308474D56089F2CC869B523C41C409507A671F0F3621E057662454D49C49A398343D64CCA74B7822D773373D5185426B7B3951256154A7B78CB1F5049DF0371B840AB21B83944FB383CC84AD9E24FF42B2731276C1D26B6120534438B029C4AC7C0739453C2860D32ACD75229C63A23A7201C303032BC0A410319035D38A3C9802D41A56A8C6C2496DB10441A2BCD13A81F90CDA2564CC9E4020A47595A30994888B383E996115AA282EAC3E3594447110C2D07774F9312D796C6B74A7634B6C0DA2291458A35D3022BEE048483461CFEB152E1D2CA9195AFD1F9AA82131804D35E739299C539B913C54A0C58683259B3137AA464B9C6E03B0EB751999B6C5354D6171C78CBBEF1B456EC4C88199764A5761D18C0849C1B0A263EA401B86CBA549C712E4A251830F7B6EE16B2BFABCA3CE018C3833BB881385C272DEE151AC35A2C9561B3C1266855219B0C6B485E669FCBC49B24C50C6C3237AA6B116085085405115E0422D956BEAFF9360B58BF915654B9B887AD9733F425A5C6990B3F0223D8099BC0E95C6A5702CF5667209ACE08FB4697D02DC45CACA8074185F54EC4641B35BACD2F0B770FC215FDC171C98BAA7AB6C0450BA6E47A838575A528F7BE221C3C91F02734269A9425A2EDB76CB6D077ED76040A716D39C9C87A58AD8867954C752367A905AA158E0A9019DDA50A6213C260F7BD8A0A6E8CF581FB74CB17283F3A1A8AA9A0418C79A948199365A6A1045238104280AC704B33791E156A2377BC83E9B9C86D0A3D2AA3287272BE6431BB4E598232312D10D03BCB13B4D838A9A624566C6A25FA44A0934AB6CC333E6D52AF3EC26A6FB97615CC3C77102D1A315486BC69C555A3E8271660222A406022E8D97251308A90A15F748153C1168CB133593C1641E164C8A06CC008059C55449413C2B28667B99122AC42B8BFFBC15FE395003249C676DB7589D2896E7405BEF8AC510782FF204454C8A0390C332CEB7A5A3123EB1A1AD0470096058358BA779DF70106E24990DA77AAF09705110993F16A2320A941D8865B387236CB8528BABBF2D9196C15898BF71040D3BA500CB7B1AC85DF11003A058D838C2652D4577306023C756AE9715136E91B20699FEF425E48953FECE15BAF27489D929876803EB0B5764E6338BF5970C2F35D1E815BB5B0B1BAB630138859B729923343C3D24922A8522E38E19868B8A4585ACF14B795FF3A609D93B1A5CCAB08F877C5B71EA78C2819113FB3632D5D995B02926663F2AB8E3A73DD6AB93503192E0243F2593618E3A809684BB6A31674E77802828FEFEA3A50FCAEB1088F7EDC036CB84329C988D965071E97C1311643BB1CA2B43CC57C84CD5EA9109AE36DE2801CBDCA3BB6F977959578954AC17D303841D5726631663F12816EDAB5192042D43A4271E44D1546306137A4427130C86A2025BCC297EB36D3C44E7CD4B0B1C22005FA702AC12569BCCCCAF6AC9256A1693C8B677C5CA243B9C8556CB3A268165596FD0470400CCF5E3B56714792F7A87B9E03019751425695AD70E4CE0B2769571901C6C2003B58152FA9757922BD28A094771B0CB1DCC73741B14B402E8AB86DC0F647525C131E9AA1A9729075EBB3CDEA4D31F6C3B23A5BCBF74A3C653D4C015CE5F65FD1042A137453462B8710704BEA463204C463273BB71056378850AD28F37EDE664E38514DD735BF9AB9B95D367C54D84FF085650AD33EBBC982A329C6FE3A516EF387BD0A0417C2655A5476F51A68CBDB4AEBC53F00C11E78E5BA6692A516C076330C20D0A09F167BBFE1C956A619825A8305D1AA9AC5736E6D24145924B2409A8688B41F33A181A9E4858325140A797F2BA81D50F21AF88650CD0BA8E662077708551A947C97C0A3355852A77576CA5B054D3B0B9FD973DADA618BD02FFF1CB59EB56B12C71B24BB1F02E27282D21281493AC7D07A20B124AAC30B7BCB8C2FF24B2C927D3D62ADE0357BBF7C1281FC94DA2B21D10A5E5EE07A3FD9CF93E34615B871C8DA7DB5441020D0522C12711E1963BE54739BD43949999083115988A09C6020CA88124B35C34EBFB0743B494B2666CCF5B5235968275FABCF9A054EF92833D8EC816D68C07FC53634A02CA192A411C87DD1F17FFEA094B6868638716CF593B33483591E4049E4E7C65C8618B242B17D6021BF0A70C7C59BC81C34F5441B063B9A1D95481E6529602B95F874BF1C649D95A072E70A52E9252E1DD1BCCDF64332345355F7CC48EB7DD1AA2F2C31AD1FD58B8B3A711D113C270A90AA2C5C79958F3907AE3BA071AA6144B88BA6C5575BDCF5331729A65D8ACF3DB97ACA4191B72A2BC1433FB3483EFFF09698C291DD868275DC5A86D06D97305BA596515E434A8D956B2B73B3C00821BA055AA7541E4F35896113ACFD9320FA91585F3212CFD5B023A77D7C5C0CEB746723C2C7D7417BFB740E4BFB2299B29F987698EDFC1B8D7B33DE2C80D0CBCB44F05B1DDBC667005B6E4335751AC281022CBCFAC0A55226FA69CFF845007B9A16D2B6BAB3135B325B12C263A81FD423120A6FA639910159B693406411A289863736557A028BBAA23E0C984F04543E61916D9BCEB4F64FD48823A4B13E4F83B43D443F62ECC72FD304F71772CCE318C1DA9A57A67502A1119313B93C4A66D03C2316C2CC5C2285B1E80C413B2F29C447DC975923D9100BEC9DB958ACD7850AB0777D82814929121BB87A6F4F07880510331EE6171797BDF23850D5FC1802E432B2F51B3CBC37631C9729892B6A09BAF6717E6EC39EC2B3489B33BAF257C35B9CBEFFDC1A1334380FC35DF386116BAA9BAD3A0A8381C4FDFC4B1B98836F23AB923175EAF72C59D9C500E10944FB0FD701BA5142B3CC358BFAF2732D643D0B135C8F991B0C73789C465A7E1B3EA6804B5AB9AB2E42CA1E91158019306855A5767893BCD17E92A41470D721F6432448FBC370C64C3E330D83987F3A9479F000C75320A296393E253A68E0E1C05969784F5612ADBAA2662459B09638202B74D8D5CBD2B01A915AB2AD06B08670546D8B76877B8B2EAA1ABB3132E55D8BD5B08678BFA4243430BB4D059B58A4B0CF0FD26EB86D5B13BB8B72A9FB81245AB712F0D10F0E2E09B222143C420E3F2C3ACEA27BA8AC144DFDA421DE1A7ADDC92ADB79BBFA9657F3DC4B78A7335F29DB87B290D5 +encap_coins = A0CAA815DEB43343D4C18FBE19B107D20E36F89AC9D721EE8E82CCA43F9A28B7 +ct = FDA5B60A6E668CE106D03B3B1E9BF6339F79D7E59F05B0F7C32A965AF7E8876F54F92E54FC1A0C31A38823382B85AC21D1D04134585A80A0BA6F21D62050DE1179DB4BBCB5CBE83D206DB03541FAE0A61ED487342467F7944AC63866278EEBF909949B0FF62D49F542B1AE77E0A09085891DDC23FE59156F55987D6956914A0F0F49E0F3CB8DAC9BEFB9726FD2F7E2BE314188CF5F2D12666119A337AE58DA27FA7AD11F7180E64A09DD70F69D27A23C41B6EBC6E23A9BE481D888BF6D02BF34304B40D728C972BC0BE7A64D1D8D7745756189A6A9572FACDC0F2ED7B8772242FB7E982E942E155578D82E5D09C913E349BD8CB34778BE0887E6C1A47176869BAA20D69D8F9359B279916BAD52D20EE4E4BEC94C3B7BC23CCE244C61512E543BA2DBDB8236801894840226C4E61B2DC7AB60020188AA33929E390D6A78AB4996D510F8964BB51ED23898803251BEBC8D04A51D219A4C6F563F44CA8FE995D35610480146A3F2B6498CBD9A30B8893D9654A58D94B4B987EB2BDFE432593BE78EEE0C0754BC8F100A1468A7D452D7F84ABBEA688B79F76DC115B87C72DF08E00961962CF2853169AF012E4B20D1DD6E9A71CBE7E95BDF314DAAA4F7CC4010032734CCF92398FDC5F762D663E191CF10F9938A838AC8A63E0D725848A5B3B8F07C5FFAF9EF8492A9441699592B62B7281CF6704615D07129F0A680DF01EA019F27792A7BDB6AB12C275E38C596A85C00A877F3DA2F1808E2AD17F41ECEBBA6F69A14C7328E9E875AC1840E2F3F0FC6347D160118ED6E8601FE0AE127C7B2369ECF02B72B20C6939931302BA97823B31273413897AE04CE3920E18686AE9A1D1E95FAF0FE414A85B2155DB6102867D9E5B578B2B502641163BAE8FD5AE20237F2F34337B107AD4457283F4800778C51D0183094419ABED7D3683613B4DF1DE5C1BB9CF1B2789612A35F29814FB79D1495E59EF16651C6DE6A81D48BBB8AEC3D2EF7DD0B1C25459AB91D6BF909E6B5F27937B4DC02427DCC09090AF0FFAF84EC46DDACC88F19A70C87D1D1FE1B666776B7E5774FFC81B688007439B421D9773A8CEFD589EF6EB05B2B91ACAB04AFDAB5D54BC94BEA5941DBCA23BFFFCE4ADE3FE9FD5FEA4F9A852025D580F5A6BE9DDB2C3673573FD813D246ACC374D436815925FDB09CCF4155DC08ED6629E3599300BF9DEAFB77DBAD021731B2FE9747098A8D7DB02E8A36B4711205EB1B2B49FC3E9620BC915C82BB232BBE23D36D697B8B552559594D42B86A51EA931992E0D3D2DB4968473CBA62BB3C41FEAFAD179B3632BC2CC45AC3D68D015BAEB072D5A13A8413680358C5F4E2F4ACA9BAD110F57A279BFCE32DB5BDC9B7979888625618AD4BA10F07704AF583B08BD86EA8462E457C4F7FA8E0B528E405D3104AAC024C3A3E6462C05F78DF7C7A5629726419A839B15839EC763BAE5488B608C0CEB992E49454403020544982B1E4447522E8BA002AB2A9455371CC0F6C4C46BEA05536B0CB5370FF6BF13272708EB5826C1C6F550786 +ss = 2E7A7F18CC02E426EED8C39C07743B71B2559C0739A69B3FA5146C037BE36A51 + +count = 35 +keypair_coins = B87439FDE81C9E39EEBE7CF741C685785532C1DD23E8EF868B9CE7A541010F3D6EDA18027C6709111F1987E026A481D46003AEAF2FF23B675BC349C749F300C5 +pk = 38E84DF3C6A2DC2389897C3745183E08C1681B5B9F57C16AA2C12778528510868964122C1747662CF97D8B0353BF23693A70B3B2A7C8CD5C5508A227261CB7C3022058E318D3DC39E320770724351AD78010EB423FFBAE6714999226895AC23735A9119622BBC0811516D617353C7F769628925BBD49629FE0AA333D1909A16C5C27604B7DB0B4E602AB27987DF23C3718630BA4C2846444B83FE914D840CC8ED79A85B645A32809CA069FFBB8B3201131CB129DB9282B73174F8D4A14A37393552B109D2271EDDA8D968AC3FF67AA3374A2355C2EC895441873325DB71C91020E91F19347D965F1410F606862F69643216B869673B5A70583FD1218639B5036CC11D051A13D219F3969C817326D2B60BA5C13CD8CBC9313AAB478833D73716A2A48438FC529084C241BCB4FD67179D1F5494B4BAC2B05A5767B9647EC8829A500D1365BCA7B8CE7B75BFEA0C68F8A28EDB7BC4A3817C0D32C4E10169832B9ABE271CB0B473AAC2C3DD39CE895551A297A61F47162D97C41F051D48B62E5A8882DA62FCEE16EACFB89B98A12AB626E69D77CEB3B6B02878CE346AE5CF754C3F6097E0B5EB7AC80B9B8CCD9418F63E545D01C7D17A71E45EA3A6D927484D4976CA936FE392CF2052535C201DE9464008C932617CAD94085C5816AA41973A8D21610430AC4B3080DD480169258E65B53E340759BFB70D68B15B868C4098847901A6B255938ECD15D5EA94232B2971E3BCD56205FC6F0425F50AB880821F56C7B25F51F2412CD7FA023852CAD04F2704D4103D4362E965473ADD3563D9B36E5097C982506865454BA30AF132BC17C807309723847257C697C525E27CC570A88A1688134F4193DB67EFF018F54751E578483A77A119210106FD03066C403B3303CE54B39493323C4334D4A7A20AAE04D8EF529A15CB7D0900FBC4236C717310246C9CBA14D6874BEAC61B566593B5EC5887272B914EA655D254D595824288A666F10C7DA583F933052F43B0B0FA59248B0584F193AD548A12A845FDF14A73A0A37ADFB4D1845AFE6B56EA50B00A5503CB542C254A26F456AA3286B0126350272638EF0B4A3ABC56FC8D0AEA2F7396D97B64C56817D58C32103996DB88345D377FB7B2644FC99A24258C50730045B897AC908F7FCCB81BC2B51C286899C8C499C1757C6B0A6AC0A8482159D564CDB746037A1224CA72177F79ED19A398040426664ABFBBB7B7BA99906E7982B665A551881E0F02A97409A3E2ACD37FA96A4F9293F786A11B21E1F0BB22CF400DA06081BF68111A9BB64469487D4CBC10578106B381B8B054EE29339E1830DD613E19A9BAF9A81C2B9AD1D121A47D40234BC9D4B79C2F5F165BAB5A2DB68C59C0737E0E4786990A92476AEA44105F3C77FEEFC342B458E4310B9B110A8B2C01593B512F069944828A3F6A219354BBDBB1C344F24AA0784160CA704BFD89C4933B6123C4434CB9A6CE16D3F042F1FC571DB728119F6A33E4A9F6981193D60BE6AB916818B8E1FF9A1D1A59DE8824F808043A1949A5520B675D8834EF65C1D47AFDE2710C6B63998D43AB47A681F0A856D166C24494081E076D5FC05B541145D3155E232A5AF0AB96ECC0B09C2C41E285D350500A4F8BB32E99B4B05D558EA7918A7881BCF516457AD2C3AB72EF2E04E3A4ACB85A987C2 +sk = C6389F081CA0932AB66F658046C1278B38BC42B5C4E1A7C7A51B09D8A159773B67AAE1C2AA8666000C6E6A014B5C0369DFF147688AC6FD48C73D783E3025C92D782A479ACBDE8A7548384B763A868C46178345A773A9852016B9FE765DB0BBABA5751E8056B7564C53FEE8040D3C0125115D323C62A3F0A2B518330B6CC4ABCA84F62C792D07C1E1A0BBBD7C5B9A698CB683981F8828EE69912600311A0281DBF9C6C9E69DAA26A446D136E8B0310F236D7A5A49B2BC616FD346C3462AB09544998C8D5EF641E7B48C35BA7A68F25414F703FB02B501C69C58A9B798C8C76923272ED9BF432208BAB30F2DB45E1CDC56F6EC11792A33EC1A62B3FC992441527E63328A46003DB49B7DC07F73F705CA0220DE94BEA4967213D612B5A03B2C16A9BD4C66E0AC893263169A87AEAE67843944628E6374B5518BF40919840B8E6C64172BE3A35EE5A29777C035463380203072EA50E7DAA4F906D01C502560621137B91649C97417CC2D3E1677006226D4621073CB1AA213525199BBBFA78F1899A53CB2B8D00819869867A41B2F48C615EFE2C8DA15A4E6965BEF0C4207A499A2156EBFB611478182D85A71C9F8776D28051D1A6E4A104E54615992E0595CA9B0CB2A0AB0159575863F3145B3401498949502B2EA4392C77728215F8700C93F5846A1A8126EB6B72248BD1047BBE62AA58737268428509E53575F945735E75B42DB2BA2F21B24C990A847241D2C3533B10D50847C85D98143FBB2EB5138ACCB055A8B8BCEC8AFD7B5697306165AF982190821A14301EF0A90C3D829ED9035430725A99C67745CA415600D10D7C29B228998D7402EFC1F0D0476C4D74C34754AF9A1AA1213C9A0198065378DE2D023EB73B3A4BC5801D98213AB7040CB63318B8395DBAD6C7C604760CA679B301AB08EF1A948A5A83DEBB39651310B368C736A56977F78AF0916364F278A4E3973374213F7A28BA70296D1916FC65CAD3B33C4E1597F818CBC489BA970680999C373DBC246740C07D97C5E1EA5AA1D627757F4467E84AB9C5BAFD9BA484F1212706788CF5AC1829C7FF0A66F26C30AAE327BB7E167BDE95FB5829340B187162A5FDE3A7CC6A0A05FDB6F26902BDB0C6C4F75692E67AB1C8B1B46A40E53FC901DD892A3E612AFD1CB2CD52BC5B0C3191137E602B0A5872D3A961EF7168990B634F438B744375D75995943CAAA47E3CC5DC634432B6CF2DB29B637A5E22559A59971BE46004FE2A40F7C330610377A5B0EACF79D85F3C86223A4C90C31C2495314748601431FA1F49ABFF2575410AF33F7367C5540084B75D6736ECAA010290839EE2456EE16BBCB57C601F26AA104916254A689C24CAE98296E4BCEF8770ED7485511F55A46C75592C88D6F76005356C397EB1E61CAA04BF55A05C8409E644055759A7E60C1C8210221FB97780B92C2C8AAFB6B94C259A9CE6291E18A801A82456B93C221A625129A1720328F11574A5C35C3650A7B57619C61F47ED6319329F118F4C31358A26A7E9191CAB61012A71B27B47FA13CB0B2C959D913A2F4BBB3D106AB695A4C13D41256A0B442F0428DE78F90609A11B8CBB475083712539E1AB034903C30F6B73BB8229ED50F901B142A597E7FE48B38E84DF3C6A2DC2389897C3745183E08C1681B5B9F57C16AA2C12778528510868964122C1747662CF97D8B0353BF23693A70B3B2A7C8CD5C5508A227261CB7C3022058E318D3DC39E320770724351AD78010EB423FFBAE6714999226895AC23735A9119622BBC0811516D617353C7F769628925BBD49629FE0AA333D1909A16C5C27604B7DB0B4E602AB27987DF23C3718630BA4C2846444B83FE914D840CC8ED79A85B645A32809CA069FFBB8B3201131CB129DB9282B73174F8D4A14A37393552B109D2271EDDA8D968AC3FF67AA3374A2355C2EC895441873325DB71C91020E91F19347D965F1410F606862F69643216B869673B5A70583FD1218639B5036CC11D051A13D219F3969C817326D2B60BA5C13CD8CBC9313AAB478833D73716A2A48438FC529084C241BCB4FD67179D1F5494B4BAC2B05A5767B9647EC8829A500D1365BCA7B8CE7B75BFEA0C68F8A28EDB7BC4A3817C0D32C4E10169832B9ABE271CB0B473AAC2C3DD39CE895551A297A61F47162D97C41F051D48B62E5A8882DA62FCEE16EACFB89B98A12AB626E69D77CEB3B6B02878CE346AE5CF754C3F6097E0B5EB7AC80B9B8CCD9418F63E545D01C7D17A71E45EA3A6D927484D4976CA936FE392CF2052535C201DE9464008C932617CAD94085C5816AA41973A8D21610430AC4B3080DD480169258E65B53E340759BFB70D68B15B868C4098847901A6B255938ECD15D5EA94232B2971E3BCD56205FC6F0425F50AB880821F56C7B25F51F2412CD7FA023852CAD04F2704D4103D4362E965473ADD3563D9B36E5097C982506865454BA30AF132BC17C807309723847257C697C525E27CC570A88A1688134F4193DB67EFF018F54751E578483A77A119210106FD03066C403B3303CE54B39493323C4334D4A7A20AAE04D8EF529A15CB7D0900FBC4236C717310246C9CBA14D6874BEAC61B566593B5EC5887272B914EA655D254D595824288A666F10C7DA583F933052F43B0B0FA59248B0584F193AD548A12A845FDF14A73A0A37ADFB4D1845AFE6B56EA50B00A5503CB542C254A26F456AA3286B0126350272638EF0B4A3ABC56FC8D0AEA2F7396D97B64C56817D58C32103996DB88345D377FB7B2644FC99A24258C50730045B897AC908F7FCCB81BC2B51C286899C8C499C1757C6B0A6AC0A8482159D564CDB746037A1224CA72177F79ED19A398040426664ABFBBB7B7BA99906E7982B665A551881E0F02A97409A3E2ACD37FA96A4F9293F786A11B21E1F0BB22CF400DA06081BF68111A9BB64469487D4CBC10578106B381B8B054EE29339E1830DD613E19A9BAF9A81C2B9AD1D121A47D40234BC9D4B79C2F5F165BAB5A2DB68C59C0737E0E4786990A92476AEA44105F3C77FEEFC342B458E4310B9B110A8B2C01593B512F069944828A3F6A219354BBDBB1C344F24AA0784160CA704BFD89C4933B6123C4434CB9A6CE16D3F042F1FC571DB728119F6A33E4A9F6981193D60BE6AB916818B8E1FF9A1D1A59DE8824F808043A1949A5520B675D8834EF65C1D47AFDE2710C6B63998D43AB47A681F0A856D166C24494081E076D5FC05B541145D3155E232A5AF0AB96ECC0B09C2C41E285D350500A4F8BB32E99B4B05D558EA7918A7881BCF516457AD2C3AB72EF2E04E3A4ACB85A987C285441CBD71C18717E9DE7359B920A9A3BB7F32E619806F4E4718C585085BE6246EDA18027C6709111F1987E026A481D46003AEAF2FF23B675BC349C749F300C5 +encap_coins = 281023B82D26FA61F9A306CCE0FA00037556C9A0B597FC734AB2FA2A146C1661 +ct = 60E9E0FF53F5DA1D972FE25BC5650B6C8FFEB1AF913E6B891D1B906AFC407BEF8BE4C27A12B20D6B639A241138F9F8B1F30FE71E2811D37C8905EEFCCC01C05AFC6361D89D49F765F58C51D666C0CEEB4C608AA1E8E72290B3EC88751F27E986FE2D7EE2E88EACD8C2115686081575A2B0A2607B179E4809C74A76369964CC46A4A2A063AD7767011D27F5BC6A05C97C843495E4FEB0A31BEA9F799C6BE75EE4B6F3D8CDDF220052D6CBDA9C9CD88E45E11A03429C1BB5874A7B10B370C87B150A5D35558B1BA21399F5C24F3FD5205B21F5406FDEA8C1D5FFFBBCD2971675322EAB4C6EA725C45DBDBE6EC3011237D694DB2B069F216BD89CE1B7BD57CE2032E54BE69C1E64D212968252A3218E39F54AE4FE1CFEDEA095720192CADE296C1AD725E098AE6CC59D8CCAFFDB71B718AC28CCAB1727E84C1DD19E1D15A5232CA93E890A46FDF3ADB467A2FF1AD30C820B8FF93D46792946A342EB8D652CED69E9001E078DA5FD361FF21C1A4394ABE1CADCCD5DA429F8627C23585E802378357A3A665A9050A66FC227229DD16D80AD61F34F3310A486F3FAA7D70686AF7203346AC6BAE9C01E4669496C343AA9EA771199E876604BA8AFEA562DA9FE5028AE4FE4D40A37ACC58BCC2F199313381E4F531999E975D4E19FB729E908B617EF31DE62EA31DE31BB8219EA57BD702C85F3D398EEDAD126A73458395B1F5CA4A7863543611D1185328F1EA81CD4D3B60F44523211E70899D57FF36FC206D9D70163C38E90D6B0286AFDC9BF829A1EE1DA780908FD010B0462427E9CEAD81063228167BC2A04A04651700F9AAE81DB1F52D71EDBD3D2B6340746B6A732F76363607D789D822E6C00A36B9901853C630A2F0A3E90D5C1F6EA64ADA06E2BBBBC892E1E83050FACFD96F13B1382D790E04964493C757AA79C4C1C9C1DD20B390DEEB74AC39F734842D8935A4C3D06351303C449C2A719D0718612E15716E37CC7821E91BF4F08C9BC23EF1B5CF8FA90B622B7B160018A704C34FDEF80B7D7ACCA250B3D5F93EF1CE3E754F270854CEF93E8AD7E211E3D7012B62C40601112A75D8A4A101D2AD6FB9EBEFC8D098CD0F69AF5AA1E16F6960CA16C31D42645EC860A98AE64084855BB812D63571DD1EB3D35DCC657C742B0B8D6643EBBE4977FAD2006D77A16402C89AD825E93FCD9C099E30F07ECBF6597B146FB75BE49331C19936D6BAB39F67C1F684C11314FDAB1BEFDB1763517FAA1B40B950647FCE3050A4283D4BA22C94C56618C01EC65E872C8BC71F4A43A2AEA2617A7CEECB910E75D28543B2B9F29B17F042F203F44DA4F67A1CE54B282AC9D533785FA71840743126F768AFBBCAFA1D969F3D25DB643544AE4C2592C01B2C9338F051E53C77E1701429CAB6F34BA24771581A820A1B1E90283EFB57C17F7F8C290127575594C07DA50779D19382249DFAB97439DEC0D91F7609EDCDEF607CD7EC972604DF7B68F222756FEE09D233977ADC32415A105628EDB49786CBB5EE0E91C3BD722DE69ACF78E764DB2F0 +ss = 034B0A42ECB7B7A8A0CEB8FDB13F4A1EA0B3305C942EBFD69F0D9D9A9A88C91A + +count = 36 +keypair_coins = 056661B38038DA4FDD7426F32A81576C73ED84843B305168A374F934E27A4E1BBA2DE5DD570E201786CBFD5D27020B649B011455909AAF0AD6D92C1B4BB1F8DB +pk = BE390596BAB505E51B3FC147AF616E0F94506635A758964B3E7CC067B80827DB21DC87450FE1415EE41FCA8A2B56B355FFF13616622FD1A19A7CD98F5084610D1AC9F1B8A6E78CAD9281A0AFA5A7C2A9A87916710EC9C5B3544B76B4808D01399F219B745962536026C79841F11961B63C10C99074EDBCB4ED786F7E8C3826609533E5BB4CB80F3E515299EB757C217DA2806D26664F154C0CC2B4A644B224933502ADF5A66F5B54CD45A71589219AAC65BE0623CF5B4C0DF17E72CAB64B91BFBD903D75E164E2A0C9E2C997F36A0B432177DE617F5E6746BD82984BB9375B4A0A12E96D06045A3A984667D03D8C08CD980B59CB2B0983B13F9C53790FD43653E78255882F9B0C980EF6B062789332A6B67B2B78E9E370B78181531846B9980A8AF905FEF403F47B891A6B440EE71CC5D6BF3BA5C7B087A31123AB61EC9F2D0C89E1EAA7DAC36613A15F147938D32673402164B001975D9C4A8BA5CE84D20B47F26EBA5909183C6FE1343D062389B9B99CEDD21E30D5841FB68F3450A47F4C4BE5E8C413C37EA4D5AD629141D7430938158CD04492BBA8AEDF7477ED13A0B97C8217A300DFCB22DE05449547626D21409F491098162D7AB477E3EBAF0E15124F449F08E47D8EC6847A0AC839BC5D237B3D509A8B5C44C8FB6705A467A3D4D9102FF2B6ED976CA9D856E9F257D5D586C7D8A4C2617DCA73AAA65719A21538D9E6997C5637DF8C5A2AB98A169A5BA8F708BBA55F2C0A9463C9B4EF0C9822FA64ECC72C8BDA4030157BDE5073FAE6A6E6F036121125DFC5A9DCA1504A1225E6DA9DB4D0665F6413386153AE25BE78B3410369BBDBD84A86C6C7BC924DD70005BEC0C54E07B4ADFA2DAEB8265DD98BCB8968A2F683A3B07633AAA0290550665C01FDEB22398ABA31140FA7494FD6A0087194673F51AC7D759D649A2FA4D7520FC67138F445287B681F5C3D1678B497129BC6624163E3515C8381E85C173D6A4CC0038DFC2064A213C557931E2E7138FA1A6BC3EABA08965BD803BD5759332CB1BBC4C41337BCCCA153905990970C261CF63A53204B6F8CB228D4234F08837425A82F1DA9BE43775DF88A20A0381F70044C76B3524B437CF365CB131BAA14EA6F24502336762C8E126AFD009E1997B8B3BC20C246070DF7B33BC9A7BDFA8CCD576925968915F186CA4A5A4934528DC75282E246B0824EF7118D39DC1F07449A218836D47CBB7365B677EC7D6222ABAF33068B5730D9E674CC008125226CBC5382A76A9823DB1B42976C5C90C23BC02EB7B874DFF93699E6035A838B22A7126AA42D62682505F9BBC77143DCA061F5C38E99652FC2E28E30CA8D62127AF02186BD9C95602992E20BAA636AB050AB870B11C52DA19B3A68B7A07A8CFBE7BB016A2537E50464265FF6F065D7A8C30F659998A35D79032F887B4629D07BB2DC895F09AC0387CCA9C5CD1AEBC08A687798721F24CA43C2C5AD42D1B6641838EFC2A72EF210BAD10218846F25DA336A4C00C4A29EAC8A608F2261B8C76B18F10B7ABA755771376DC7B876152F9FBA5370262919511D4AD50D76AA5CD6566C29225DABB3B668608D9DE5BAC08320CFC3570A0AC8DEB4BBF3D941F9325AAF546FC368AF005CAAB7AC6A7DD70D90506DDBB5F53A83079ABA0927BD52A68E278D3F01AC19EBA6BD +sk = F75196A57024BE817EDC544DBD552F6B42BA121C2B8EA95E55017856A10C5905A8BB2590E63B449364802C6B438FC19EEFC875017ACF652A8F0D6AB0F7F5ACA1F1833ED3551D37419D906D2B55123EC14D5F109ABCD9382E990628BB30D882CCA8665957346C3A08553C870D32F77E66348CA9DC321960B7D50B09DE64178411439C021899F2B8C583762043A4508C3160544ED2264735C600A6AB43C8515532130583298A11450AE3B7C99FF559A1D33115DC2D2489934518BD52FBA1CB9A019D918464B59CC90941599253957364DCCA9F95A08035F8BE5BD36DB6B19F1F191A6E4B7FCD493B7A41C90BC76FE882AA0F3B39B6F454785C5DD1D106C80960BBE5846D90BCDE837CD277A039DC22427B86A6658F97A60101665F3F69125445647F3BB2D3125C80D89AAE6096A01C24902321933909A8A2925FAA1E7407B3C90C8A53D958C1C83465E557AB620E53509EE8C960B3C547FEA08D4FFA215742113ED9661B57AE1B30BA5768645C632DE76B96161A9B6C34B8DA48B75D176C2C849AAD55C6680BD0863273C345C4C7379CF3F873FA5953F53B9A026A4DC120C96E279085566C7D090EBA276A0928693E639B5564A59C08AEAFD25915F5478DD86E938A11529BB9A2B0B83487C696E79F1FD034EF000FA502328184BE42B8959D9C0683F3BC20E71902423AB14A4744E162F6A2B474DBC4A6F21FC0432CA7422CFB253D0F952BE9C13125458DF8753F5D551CAA38BCCA1625B533051C5226C8768335854E7477064320CB765AB9EB311A1859B4B5A006D918BD8508A971205E6902897CF95E0B652E09030794B46FCF7A784560C0A18B8E6334A57EC177BA56A8BB9A857013C6B9998975379BB04B540015A14A76C658F856BECCA363CB37997BB85B185AA0104063696F1020BD1B443419989798826E141A24A3533494391FA233CF848451CBD609D014508FE137534C42D6F22ED2CB82363C847865AA243CA993B14992572CBF5535845CC708BB09A1E8A7834C200D8036768755AFAB53ABA85813EB859EE83EFEA7563EE4BC158599F0CB04033393C829AEDBDA289ED852E1EB1FEDA9484777051F967E048041BA3C313A1414D463CF3EC36801AAA1AA540DEAB122AB530ECACA30101A1089087311972B338B045A1637189020C3030E63F707FEEA9AF844C7E1B20B4A5348C1A432F341BB9F598B8C0C2F6F55C4D2C2C22B187430748F82842DABA92283DBC4BD20636B6754B20A7127F01FCFD4013A1155E4746DBF3CA1F34991FE7C39ED99BDF5760D39DB8E6C428F2DE8157BE0139415AEA96BCF6FAB633F2257B582312D3C7ACAF6A5F8E55AD699672160CA01246545059E58502E28199CD0F5505ADCB91900A283F0B059F33D1A8B352010A3C815717FB3A9482C946DF0C74A526353D5C9ECD2590C5050996393A02286841580AB599BFBC8838A53301BB11D5FD492AF40BA26224505969D88F6B193EA42B0348954180E17124EC2C64B962A92AA9C3FE2D72F94301531C4AAF847243702BC8F9C37D64B54F20AC003B844C52417E1436D2E75AC09C313C83B8575E791A7C95D0412CC61521A6826997561485DEC26AD7BAA8E065E9A279ADD7301C5C74C5B95C1B6915EBE390596BAB505E51B3FC147AF616E0F94506635A758964B3E7CC067B80827DB21DC87450FE1415EE41FCA8A2B56B355FFF13616622FD1A19A7CD98F5084610D1AC9F1B8A6E78CAD9281A0AFA5A7C2A9A87916710EC9C5B3544B76B4808D01399F219B745962536026C79841F11961B63C10C99074EDBCB4ED786F7E8C3826609533E5BB4CB80F3E515299EB757C217DA2806D26664F154C0CC2B4A644B224933502ADF5A66F5B54CD45A71589219AAC65BE0623CF5B4C0DF17E72CAB64B91BFBD903D75E164E2A0C9E2C997F36A0B432177DE617F5E6746BD82984BB9375B4A0A12E96D06045A3A984667D03D8C08CD980B59CB2B0983B13F9C53790FD43653E78255882F9B0C980EF6B062789332A6B67B2B78E9E370B78181531846B9980A8AF905FEF403F47B891A6B440EE71CC5D6BF3BA5C7B087A31123AB61EC9F2D0C89E1EAA7DAC36613A15F147938D32673402164B001975D9C4A8BA5CE84D20B47F26EBA5909183C6FE1343D062389B9B99CEDD21E30D5841FB68F3450A47F4C4BE5E8C413C37EA4D5AD629141D7430938158CD04492BBA8AEDF7477ED13A0B97C8217A300DFCB22DE05449547626D21409F491098162D7AB477E3EBAF0E15124F449F08E47D8EC6847A0AC839BC5D237B3D509A8B5C44C8FB6705A467A3D4D9102FF2B6ED976CA9D856E9F257D5D586C7D8A4C2617DCA73AAA65719A21538D9E6997C5637DF8C5A2AB98A169A5BA8F708BBA55F2C0A9463C9B4EF0C9822FA64ECC72C8BDA4030157BDE5073FAE6A6E6F036121125DFC5A9DCA1504A1225E6DA9DB4D0665F6413386153AE25BE78B3410369BBDBD84A86C6C7BC924DD70005BEC0C54E07B4ADFA2DAEB8265DD98BCB8968A2F683A3B07633AAA0290550665C01FDEB22398ABA31140FA7494FD6A0087194673F51AC7D759D649A2FA4D7520FC67138F445287B681F5C3D1678B497129BC6624163E3515C8381E85C173D6A4CC0038DFC2064A213C557931E2E7138FA1A6BC3EABA08965BD803BD5759332CB1BBC4C41337BCCCA153905990970C261CF63A53204B6F8CB228D4234F08837425A82F1DA9BE43775DF88A20A0381F70044C76B3524B437CF365CB131BAA14EA6F24502336762C8E126AFD009E1997B8B3BC20C246070DF7B33BC9A7BDFA8CCD576925968915F186CA4A5A4934528DC75282E246B0824EF7118D39DC1F07449A218836D47CBB7365B677EC7D6222ABAF33068B5730D9E674CC008125226CBC5382A76A9823DB1B42976C5C90C23BC02EB7B874DFF93699E6035A838B22A7126AA42D62682505F9BBC77143DCA061F5C38E99652FC2E28E30CA8D62127AF02186BD9C95602992E20BAA636AB050AB870B11C52DA19B3A68B7A07A8CFBE7BB016A2537E50464265FF6F065D7A8C30F659998A35D79032F887B4629D07BB2DC895F09AC0387CCA9C5CD1AEBC08A687798721F24CA43C2C5AD42D1B6641838EFC2A72EF210BAD10218846F25DA336A4C00C4A29EAC8A608F2261B8C76B18F10B7ABA755771376DC7B876152F9FBA5370262919511D4AD50D76AA5CD6566C29225DABB3B668608D9DE5BAC08320CFC3570A0AC8DEB4BBF3D941F9325AAF546FC368AF005CAAB7AC6A7DD70D90506DDBB5F53A83079ABA0927BD52A68E278D3F01AC19EBA6BD065FB6156ACAAC591F1BF3CE71C4A046BE8C6C55EB9A84D29569BD2B144C73E2BA2DE5DD570E201786CBFD5D27020B649B011455909AAF0AD6D92C1B4BB1F8DB +encap_coins = 2F349AE0CA4E08E2A8CE5D568829CBAA2150B69D13FFF8A46711B0F5DCD770CC +ct = 529208240AC2078F870F1753133AA73535CA88A448325DF579556D6E05A95E699F786C7CA0EC268F8B235F218361905DD360B97610A467151DFFF1475CC773C98C9A0DB4853DB954D5F1E6D6718824697BBCB3DB99758683E0193ABB88652C2D01F2778EDD59F1CA74B6B3834D0B07FBC9A543206A5076E65DFE97D24FF4FD4084C98F754109EE935E14537F5ACDCE7CF3D765CB7A605CDC37D9C0C3AB3499F14A7F5021300ECD0AFDB6B2452AF961CBBC3517FA2AA8C654A0D4E8682279B664A2638F4D041FBB70F99E3AF9766363CAEFBF4188D8E941758D8AA323885ACBCBEC335B847DC077F0B1C5A548787FC553DB89BCAB6F3F36D9E1D39E71BE36675E8B8044584058930BB8C9833B3AB56922B5CEC35CD3FE33D820CEEAE7CFC9234DF037EE7E132AF5A41E3CD614B3F218A85146E281360DD700C361D578D66EEC4818A77E2A78CFB9D4B9F82C0DAF305D7B696985CDE24444B353F399ADB9B5122B1E0DDDE0D56F6FC4B2ABFE010AD093213EF78AD8BF26F07C5C54750F015F85AE05BC69EC61DAAE0189D71E3F954806AD3E5AEA17D144F8AB339BFC6620130DA3C5BEC94B8F6951F718E5781D419B1C1EFAF49B46EF2CF98DB938E7987A75FC31FBE5BC1925DFF710E670A57E60710F0FE51F92CDA6A982B172DE9EA6C696657737BD8572464F134B8DC6F5A396B6BAA8336C2681DA0BE70687F5556EFC8664F468A9E462048781E98B3692ACAAB755B3B9F394DDA35D0AC4C4F98FDD24C32926D6C63740D3790020F9FA85080BC50BC6BD95141E638ADF4ABE13BCBF74523C64B95CFCD3B212ED444AA3F6F948138400EB020E16FF4BA82F3D970A68C5DEE84F75F3E548873369CF5AFF2A4F286894D3B25D933AFEE9042C3026C29299505318C1ED38C47D8C4D1DC8DC06225BC2E6FC9C4CD8F15841495EF6F99D999D5A46605E5750DF588968AA11829455C7E42625E053C83147787DE17846D918B441177279452E5D1BA56F3F2E30E558A8E9773701C201E05F6CAF4176933B79E023DF50954741F545186174147550963D7DE34369361A7DF8157775C22736283358DB6CB349369449EA9A054CCDDBC68CF98D8A39B90B76DE7C1C38895C035C62D76E4CC3C5823282E47D43B83778B7DCBBDA7537BC7812F9E5160A5E782E6B0B6216C78FEB46571270045736899FF5C37C20D585508A0FE902B2A4474174743C0EB47A5DFB898E99197FBC1265B2E4659BBE097C75839ABC238E6BDE6964291725156A4971283F2DF95F224465577A0D42AE815B1884471FC109962B14196BCE3D5716F63CD7E34D85E6F68336D011A2A0DE963C7B659C7624639CB837C5F36267343BCB2D612DE5B067409399FB7C44BF79E4EE0A29793386D5E81C319981F82F5A5267C657139BE3787DDD597757DBA794A10FAE02A660892502D435FC18E127DB67E66851CB1B7298074E4782FBE635A6D93275AFDF74BB68869FB3653282839AD229C0120E7FEDE6E6716E932F8EEFC86F838A44E4E4B45FB35A57E0F276EA7F2F +ss = AC21234F79F757260908EA2EA4FA4D4191FCA2FBE292D8ED71932142C11EE11C + +count = 37 +keypair_coins = A1B52D871612A1C611AE0944F9E71858F35D3BD14F20E96A931720668BDF0A6BF25F42AAA0D647322BD837CB730AF6082D2FA2D17BD63B162B36839FCC2DF0C5 +pk = 99315A88D083BF5196F65CCA4541BD4CE3526E514DCCAA8ED176BA58014BD0AC486056240CE06C6C182040606DD98978D6CBA367EB0EC18401ED348743780DDBD277F2BA22E1B34208F215F8F91A048CA497EC37A7663587AC85F221810E64ACF87478A101062535287250907D0854B93A9D4BB39CD5788BE361C00FAA87BBE078B26353A51B7BDBA58D17E5496EFB263DF826A59296A13535ABD799CB931FA5886E35476DFFF97E82870653D5C4BA09C2658A9A22838BA0C6AAA4AB7B19699B8B27243C42634045506762AB1817534F419591B04622C650B828B3D4A66D9B163D09847BD172BA8FF452759184C07B11183665C0185E0A089C957135DCE64BDA52338B6492A27A1238AA567F017DFFA796DE84532FD5BEC8FA800FF4C5E34791CC5AA02901B73885557CBA188F72AB5A35B489E98AB377691033934029118A34AF7D176A436139AAB3AC127A8F510C8719936E8676CAAC2211C8292A42F274C7FA85C542B21422C5790079F34A26F0678C005818BF4981A2B4C7DB780C0BD43AD55C0ACDF1AE0E0761D7527813076F3174A1D49C74659A453E09C2B4468DE6F185D5F3C04F2B7E59E05317586E743285E6817283CA11FAAB44271A4667912DF262C0C03843730ACC24E80E2EE0251CCA86A83853E6251E3036714576B1C171A112E7A15CA215F63039AAA7632EC77880B89EF8A45CB0B3746202ACE1D7221FC98AFB73A28A6AC2AE443F16E6072D6B3DA1A3BE5FAC533A9175A5F176FE131F021795F8880D320C6096AB63F53525D01B32A2CA90E1A9138E4CA72502785976BEE4E566DC0CC1F3827733B0A7D00CB58B6B89C5E26D2DA00429A2450E269DA77C46B5C954CEE6BDC0339BA357A9B9951802A255B74A4F4CA1297D124056147A0F8123EB903071546D2C22723367308601A22F199F9588734FE1241450A45FD7395DF965F46574A030581CC714A50C08DA03A51B367B524A2EE4E56752DB9B66D9C6B07702EC23BCEF798D68300859383C5BACA9D8F08B71409AE5552209B5237E697BA55328A1693AF7FA0BA27020DE2C35F643514DB292C061C8E2085D06C101644C94D17C07560811C093AFE61C6B4FFB970382CE9FD25F76C6728108842B3841DBBAC62504185EDC32DFB817C45878189A7AC02859ECA77AB445797E030E910243B121A859A05D8CAA3C32FA54D033714D20A771C7CCA73999F6D91D4DB4683A9543D3C978F1D56816D75590642CD4AA7D9E9C709C6CB5AEA8832D7C84C576AFBC837B6615B8290078E2C0AC9A8CCFA8338B36649B9F7C41D0064DCA53B8FA1793CBDC8F7B75306F19C4127A214E5532884274646B91F49A1E36A3B42CFB90B27425D2645C5ACC2482289D0B4B84A6359007F23B9F528718E6C499590D6BB2A5BB674E89561AB1A48E3988927AC41D05BA143799214701B2F6D708D365BE84BAA60DF8BF7D969A425C93452A0277F218790C80C60B4B59FC6131E7865D1135AC84A6655507C1D98F6665C932093D61FA578E7ACBFDF49F2E15C138BAB4152C005ECC44FEC299094A285FF50B09388B6AC3972911CFB8ECC9F0EA58761741ED23CE16FC02AF5A341F65043F0802C0353D987C718FB72D3D922CDC861BB6A8AE003197C8F9C878A367C021DB7E9273FE2E03A2716683DAB6CAED5C770F6E7984 +sk = F8FB5BA9D24C8681558CD13593F0CEBB335B6F65BD5DDA6DE6D19E09F15165051F981AC6472B263CEC43883A79149707093066FC129AE148B04F860C2DF119F8A51056EAA5DFD89BFC564226E56DC391ADE1CC2A1DF58EDD4572C5A147BBE21283B97F1B213BC276A471B63A7DF1CDC86C7A69A34ED17A425B37AEF969C1CD079529BA29A2E2C3412C5615E23523F3124C00C778752BB9B3677B90885CC21B0E257BB7F335FD53928B737D19DA3B3208219E6C898E96B45F801135A09A1425A0986C597E2B4042C1A4E6D7A4D0E30E729C73F2BBBE85B579C3C13A34344A7403B95D425936486C3B602804C08EF6F5AB22C400B9523EA3345ABFE666023BCE6A1B63A872C33E3AAF0CCAC2C40A4D5A48107D0C7AB09001EA67CA6F4C1FA7137D259C860D032C396BCBCB4177F82439852463B640855CE604F91C8F2E4A0899B2102C6059DC077D5EE6054355C546C2148077B8DEFBC313C71F1A420DACE126B16C21E40064E2522F9E224CC8E3526B1A99A2F4A81EFC2DD3609043246D461C7C1AF025B56A9C7E72ADEA57584CF044C2F0BB60352C32400D1631C034572EE46B71EDBC0334031AED7BC26AF543028C3918109DA52A6ABF3217A2219C0607BA9EDAB5B4DAAD5EC7948393C4A670C340688541AA713B596843E5CCB9616B54E92610539BFD39159FAB36D4928EE9CC8B1291AC0134257E242FAEB595100AC113AC416FF517866021B550B6D063512DC37477117D025964C95C13535C2F09A96740037FE1846EFEC4446EC03F93FA6B6FD8B539F0196444A61823B08CB74B7520618C08324F0667F142BEB3A34C2C5286B3D159FCE3B046079F07E558BA28A8893A8C94F9711C227FAC6900114C8BB6AA5369B059DBBCA008482A1843B62A1B06C68C6B2F40BAC6F02B6CAC1633055A178A396EF35F59F1A76543953D3B07E2B8BE217C5D5B1A82F9C080F4119D22275958026280BB8C96626C1D0BAEA6658A29546E09418AAF85A121F8647CB4789484BEE0189B9AB10852C397A2E25B9B15B71EF17440DC3554DB740289BA05111979614AEDCCA79699021F4BC3A4C68B39D0256D88CDD7A24E3AC31DAC35388720671A12A765D705F8429D0891C3E0D8062AD45A0B882BC53016DFB007D1C550998963D7E12FA51C7361D86156EA3A8AD7018C627A9EA18F9D3787AB3B88A27B3F9443AA87AB75EB1364A4C66C50E8170892A08FD15CF2913749D0C61305C4DE45A1BA2550009726A0873C70049705009DC8327BE3610F61F9BC60A26D14DC0C3E67CDAE4B5AC0D5A0638804D6C6B4CEB351F0C19F0974324CFA28FAB704B4677AA3F2BF65686C22100B74CB9AB5F7215452CBE8D6909754304573A9314B3C8362CFC34C6302B3CBD5DC482E76576FC5900B367016C03A860A88744928CAE55413231CA8A5008D210CD2E317D1BB6BC8624ECB83002E66092D8AA77FA0C6766532178A8CFB532C70F1114E5156E91486C3C7658E2A22CF0A77873C944A5A4BD70BA1686146E18B328D30813C9850C3003698C5AFA2082B3425C785200596592FBFD7B2AD5568F9D278FA24C523251BFC966A69CA882E707426563D2E099295305FE2E2A96F968A92E9423DC4A1F6662F68299899315A88D083BF5196F65CCA4541BD4CE3526E514DCCAA8ED176BA58014BD0AC486056240CE06C6C182040606DD98978D6CBA367EB0EC18401ED348743780DDBD277F2BA22E1B34208F215F8F91A048CA497EC37A7663587AC85F221810E64ACF87478A101062535287250907D0854B93A9D4BB39CD5788BE361C00FAA87BBE078B26353A51B7BDBA58D17E5496EFB263DF826A59296A13535ABD799CB931FA5886E35476DFFF97E82870653D5C4BA09C2658A9A22838BA0C6AAA4AB7B19699B8B27243C42634045506762AB1817534F419591B04622C650B828B3D4A66D9B163D09847BD172BA8FF452759184C07B11183665C0185E0A089C957135DCE64BDA52338B6492A27A1238AA567F017DFFA796DE84532FD5BEC8FA800FF4C5E34791CC5AA02901B73885557CBA188F72AB5A35B489E98AB377691033934029118A34AF7D176A436139AAB3AC127A8F510C8719936E8676CAAC2211C8292A42F274C7FA85C542B21422C5790079F34A26F0678C005818BF4981A2B4C7DB780C0BD43AD55C0ACDF1AE0E0761D7527813076F3174A1D49C74659A453E09C2B4468DE6F185D5F3C04F2B7E59E05317586E743285E6817283CA11FAAB44271A4667912DF262C0C03843730ACC24E80E2EE0251CCA86A83853E6251E3036714576B1C171A112E7A15CA215F63039AAA7632EC77880B89EF8A45CB0B3746202ACE1D7221FC98AFB73A28A6AC2AE443F16E6072D6B3DA1A3BE5FAC533A9175A5F176FE131F021795F8880D320C6096AB63F53525D01B32A2CA90E1A9138E4CA72502785976BEE4E566DC0CC1F3827733B0A7D00CB58B6B89C5E26D2DA00429A2450E269DA77C46B5C954CEE6BDC0339BA357A9B9951802A255B74A4F4CA1297D124056147A0F8123EB903071546D2C22723367308601A22F199F9588734FE1241450A45FD7395DF965F46574A030581CC714A50C08DA03A51B367B524A2EE4E56752DB9B66D9C6B07702EC23BCEF798D68300859383C5BACA9D8F08B71409AE5552209B5237E697BA55328A1693AF7FA0BA27020DE2C35F643514DB292C061C8E2085D06C101644C94D17C07560811C093AFE61C6B4FFB970382CE9FD25F76C6728108842B3841DBBAC62504185EDC32DFB817C45878189A7AC02859ECA77AB445797E030E910243B121A859A05D8CAA3C32FA54D033714D20A771C7CCA73999F6D91D4DB4683A9543D3C978F1D56816D75590642CD4AA7D9E9C709C6CB5AEA8832D7C84C576AFBC837B6615B8290078E2C0AC9A8CCFA8338B36649B9F7C41D0064DCA53B8FA1793CBDC8F7B75306F19C4127A214E5532884274646B91F49A1E36A3B42CFB90B27425D2645C5ACC2482289D0B4B84A6359007F23B9F528718E6C499590D6BB2A5BB674E89561AB1A48E3988927AC41D05BA143799214701B2F6D708D365BE84BAA60DF8BF7D969A425C93452A0277F218790C80C60B4B59FC6131E7865D1135AC84A6655507C1D98F6665C932093D61FA578E7ACBFDF49F2E15C138BAB4152C005ECC44FEC299094A285FF50B09388B6AC3972911CFB8ECC9F0EA58761741ED23CE16FC02AF5A341F65043F0802C0353D987C718FB72D3D922CDC861BB6A8AE003197C8F9C878A367C021DB7E9273FE2E03A2716683DAB6CAED5C770F6E7984CED77D358342759291C2BD225B0BD82D659D28A24BBC5EDA8F47975B780CD129F25F42AAA0D647322BD837CB730AF6082D2FA2D17BD63B162B36839FCC2DF0C5 +encap_coins = 525F15E526198ACD1D2B0BA0886071E482866312CDFDEF01C20EB2935C28EC84 +ct = FD3EEB777FD22EC4142689A7C6637682FFFB460EAB0C2C59F43DA72B974DF092C9F0DBF9A32A86B1F13D4CDE67CCCB6212D51552160F0CCACB47624C8E298C7F079D899B685AB6CC0690DD6788B62C1F8E28577B6B2B34E5CF1E5F447E578206E5FFCAE60BBD5AE9BCBD23E7841A0C6D43A91B4DEFEA13875394806066EAA926751055AFA88C111DD59E5500E3C5E1BEEC91B4F241DDB27DA0B2E37CC4842293999C86E1440C87A71AFAFBCCCD407191A328227F7E25F033518D13DFB09DE28DBD757261C2866F628AD54FD7C17DDCBFEC78D34BDAC4EBAF824DF5DFDF6A740DF1AE2F0E211426E7A21BD7ADD8389BA6DE7354B8892F78DB7D33C1E3C6CB141EB835710828E22109C1E26C991BF0B8DAA3D58601830D91FDF25968567B931FBAB73AC7DA59E2E8529F64D597F10977A96A81F5E171A96562F124C17F99B102F4BE9C49DCD89637C7D2663BF377DCA4EE850B887E20BAA8CA4A0220786562A8944BE343AA4B603C442E04965A4C86A49B90B0039F04D93068CCFB461E692A83424A5FC7C0974C0FC495A7FB52840EFAF585088925A89FFBD4C66DBE26190399CCD6069D1933CE9B889B04AFAB2198466F3758130A83975915E84EB8553258BEA90C4715F6B3F05C81561644CE27D4B832E1DB458EE882EAC9249FEA0C79B85B467507859F043BE1089DBABCFFC8E823340849942530896C5F2763DFA9694277856B2DB01C37B336CF8E14B0C8CCC3A07D349A361D09FC2466389E264E8A51B792352DF1A4BA9892F48513094B4DE3A3A1824F216992AC3F518F01ACF61B68DFAF2548D36148C6E3D46CED0C5968C1EBD739B4BE2995D81A5B4AA342F862656EFB0D552091AA143DD34513DCDE45B72C71ECDFBEF865BF433F96AA4E5D258D1AA0693AFEF12C1FBD39F3697DC1E569935A43B709827618A1B3C5ADE512B5E55A9641BD5A7E0FD58A3ADFD068E822C766428AD52ACAC95F4B1F73FDB4B1319F7F2C60D123761642999017B8E05D5844C80108EAE3E66198DFF68829880B0602A755EA21226CD578196C920DB5BFE8D6214035B686AAE1FEE37E2A28FAAF1887D2DD0028BBB05BE814E908FF956A83C2342F37B05C48FD032951D59077E1C6BD0DF666865445A938DA403C9B8638A0F38B16A0F1985251495255D8980925BA4C1B98DC91FA841CCD154DF23D7092F4158C4B473364FC22D197A21451471D8258015229EA4E3B11A8C389809E05348E5B2F436C29B274B2EE63EF07C2C602F88CE4C2E1036C9D25E737997B08F7ECBED91DC49025663FDA8B600110F77EA197449BB21EC1E21794A6A77E4FAD1C9D146C6B02EE8E9AC13F5255B863964CD5F2FCE1EF57D4913EA16413918C6511852926DA90B864092C10FE08A1CFD7D6864DD429C408E960B6381C22C3716B11A02D1833900EFB482E7F376455F017995089D85990A6D471AD19EEB25F5DB622FF1CBA8B66685F2EEC2FBEBC7CD95AACE9123B1DAAC526589FEB058DB50E97737BCCA785FD6DA85B382965A33D3798E7DD91474188 +ss = 5299F08547B1A22CD97C0D9C055049D66F61CF38B391B0489232215B602F5D91 + +count = 38 +keypair_coins = 952B49C803D6D6FBA69F4375ADCE8594847A00BCAE2179DA49AF2AED0423250223DA505EA48A79EB504EEADDF7D19D736F39A46C837F2A0C2BF3FB876ED8E6BF +pk = 2E7240107059C16C3EACF4A1A8342B73911DB6A51D3CF12BB168229A1B29F7C334D0D1AD99932F21BABFD8153BAE937FDD2393D9748518F12689CA7627A1041D868094AA7440C6724B4430EBD20776B602940C9D1FCB5A109978573434DA891962B645002508E46992C0C148F5A039609826BAF5834BA7271C443B69DC5110C4B7089068D16202CBAB2E1E4525738A19C8315FAE806FD139BE91F4C1E192A2C04983291340DAD4018A8A83C27A57C622408F933A51B7618148B16375A80E0A901F10AAF6E7803CB2A693ABCD4CA8BAFB942086F42F6B743937098E3D2A607F212F766603C9D89ACCF7AC584491F230BB1108B1465B865F824215D79FED2525D7E95C7976946E22A9E6510AFA2A9E8AF29DDB65C47BE8820561661050B70EF3B7BB249B7FD0CEDD688C37D7A3DE667626C2B389B38BE066089405703BD51FA32199E9C83D5265BD62A2AA2CE521B69973A18777E32151D3D5BA1983C8659A79AC978FFA15CEAB733B49EA8F7A853D4B06CAFDFC64C9D00E55D814536171496037036A078D026164D7B07E3277B7ECAA770B06DD291B9AD29241C3BB43553BCCF66A1DD81FE2E2BF79F1A21E1539D0BC517A9BA8EDE2C39DEAC4CDB7C65FF96048461BA2E350017095A35C1BFA25C242B000AFFC8AF29495A2D349133C343D680EEA815CDCD89C4FC283CD5136B89ABD473B4AEFE2228F4CBA5E0C10EC7A1083833735F081034AA7BBF20C11319CA263B52262096E505C45805E73619E2CEB242E559883D20DDDD4120F0C9E49F4995376284147CC2D2A96A046BDB3F56B6DC1889976AE1ED732EBA43AF5941831B2202D6091C16B680001A82D98CCCCEC212B79B5A884756C75CB2545316FC072D903C670864D5A13534E545D836276EE594D3A7841E5F91D6B738D97E73A7274671D6470CD2719B0515FDD67C6E4969AD213254502C5AC9BA23C264A375237369B46D0C45745041A20511459D3321EE9B395978F2C575EBE1C6CAED03AFC7027BC457E03F527B0CCBAEC71850E0955F0A2B54D9BCE69B6C8FBF90850168ADAC411AD5C973B578424C55CE01B3EC2825B0085232469968B8A96FE7B9F26846F789323A15AAE6397242A712CD26B0465BC038A4AA30DAC42C0036C062C21C3A4178A0C92B8992CBD54A6044B789D943F1EABB0BB24C3D0D4C067251779374579B27C84FB435E6C745334485FBA84676750A27C520F79366D008E4BE93FE8A958E8D06B8EC323BFD5BD01E86B1F13302EB17AA3AA8FDB3445AE5775111B2124E2A35021C04945661B2C510A29264AD855836C7D8EABC069011F8814934BB4B32176C0B59B04C5FB6CDBC8BC41B0BCFEF4423635C0C7AC43E4D5286C74920EF37C951266B92074D239B2BD0A0D6C096141FB6A718A213A3387D75B927CE176169738ABE0CFA6B68D3B064157C3CB03C5793A7400C1960351B059E43A7F1B28AE5073780CC606F7E40AEB458DBE95A31C23AF7E760001B0BD601647AD1805C4329E46F490575CA928FA908B5A30FD31520C61C9F1CC5EF18578B350A929164DE33B008338180CE41C45327152090A91B8C9B3928C2629A48D78ABD1992720E841A52CA91A15A1C7953D18B4BA1F990AF34CA408BA2D449F94385651C3B4C0503726CAFA118167110E848FBED995526B458D362061A1 +sk = 5B47B61CE23572623C431A498E378C6B71A5CDCCB58E225310217F6F2B1B7140B97349B965D9C95332A66D7A9879F24C479851A0EA485254755DB347BFF9A06D00502AE3A910C06771AACC0A51ADD07A291496AC10E2899B6562DCDA7B6B9B7EB516335D222C43498859D87A44CB8AD589A06E609FC5798CA06744051533D5C6154608C790A8ABD776CBD2984B57E1CF4E0638C77915DD89249D3C0775B45CC159B44BD32F49A51A1E398763E35DBF5C6CCB100929C9B91047A1AB98A140E00F77F5076310C33179A8C80449591C4156C244EB8C8B3009328139C18F8C59E1961A2B91C840D552C2E4B3897265B16C28DE6ABB72D218EF713A1D179CEA38561663C9BF21B68166AAA45748316877A9A5BED6F5230D3015193AA5A9E1B34DC6576B57692B543FFF321B14879A24728DE3D6A297C06AC6CB28EC3482DA708ABAB28FA815272624AF6E26A879F65C6432812470C52DE01EDCE20681DB43A967069DC9BB34F9C540A21B8D7322A3675FEE059F5F655CFC480BA31255E899C48A7C25588303D67055434702ECCA24D31A9D69796DF408328912ADA084AB122C6AC53C3C349C105270C9AEAC73923614EA9129CE4C9FD8D78BD33045D8557AD3D0A698B34A7C073B93783670662F8558375647747905402A6AABD1698D1D3B430CE8B5EE8665771A34CA73B2DEE04497C997C9E74044230690354B7AF23BD94AA02CF599554391095C0D53F5C1DB19AC33189B2B9AA3C48BC4E09BCDC5029BD3B45A370C59045ABCBFB257DDF30085DA053056C17DD0B5DDC6494524875AC189E6C7A7CD483288F03ABC155BC2022EB427B7D5093F4616C124B7C29A0043181C7BDED83DE7592511E3617A75652D4568D7C7B3AB2B7464C514CE6CCF54FA8D73E61834E534966620DC59196AB44B736151A27C02E065A000611542FC296A69A24989331EF980F708142D7274EA863669A52039B59D48B90BCC75CE4B434F5751CEF621CF3A29873C003A57276128E70BB4AA5DE581834946741A8134890491D37B6051959739FA8EB81C6947141704683124136C1C382760E13F00C59AB5BCBCEF98B973831B91BA87FEC02216619F012859FAA6B01B1649786B626348182398226CF794095681D1C25800B18BF33CC71123898AD2AEE46905A8118916BA8651328A051697F8041667789C874394E96A0EFCDA8998D420684217952496AE9117C6C618513C147148979F5C8BFEF8C7CA1836430C3CFB66B17CBCA63ED1A2157961CEE600617157AAD986B5021F4F69C3BEE6AE181A076C3CABF076903BD59814352F4EE2C04A138AE0EB018A2193CED58981CAA3BB032317499E6EC4BC5CFAB8B389467EF295DBE7305BD1CD099364D7596B1801008ED734D7775C5606AF0F1A2978733DD7F55556DBC5FBAACA5A95BBC287B6D3A43AA9B78AD10A025F46AF233512B126230CF928FAC14D753160BAD961BDCC4D5E1B4EDD241609A0ADC6B3C6CC9660E5371D6C1655B4465F16D535ADCC54F8376371B758CACB81D84A7B3E6B8754B430C0753982A89D5CA8B2F4244AABE0BF05F75ED0B092F332AA83808F897BA21906AF25E68A88B61A357A10ECE1977199203E465EF9BC020E145F6421ABD11B182E7240107059C16C3EACF4A1A8342B73911DB6A51D3CF12BB168229A1B29F7C334D0D1AD99932F21BABFD8153BAE937FDD2393D9748518F12689CA7627A1041D868094AA7440C6724B4430EBD20776B602940C9D1FCB5A109978573434DA891962B645002508E46992C0C148F5A039609826BAF5834BA7271C443B69DC5110C4B7089068D16202CBAB2E1E4525738A19C8315FAE806FD139BE91F4C1E192A2C04983291340DAD4018A8A83C27A57C622408F933A51B7618148B16375A80E0A901F10AAF6E7803CB2A693ABCD4CA8BAFB942086F42F6B743937098E3D2A607F212F766603C9D89ACCF7AC584491F230BB1108B1465B865F824215D79FED2525D7E95C7976946E22A9E6510AFA2A9E8AF29DDB65C47BE8820561661050B70EF3B7BB249B7FD0CEDD688C37D7A3DE667626C2B389B38BE066089405703BD51FA32199E9C83D5265BD62A2AA2CE521B69973A18777E32151D3D5BA1983C8659A79AC978FFA15CEAB733B49EA8F7A853D4B06CAFDFC64C9D00E55D814536171496037036A078D026164D7B07E3277B7ECAA770B06DD291B9AD29241C3BB43553BCCF66A1DD81FE2E2BF79F1A21E1539D0BC517A9BA8EDE2C39DEAC4CDB7C65FF96048461BA2E350017095A35C1BFA25C242B000AFFC8AF29495A2D349133C343D680EEA815CDCD89C4FC283CD5136B89ABD473B4AEFE2228F4CBA5E0C10EC7A1083833735F081034AA7BBF20C11319CA263B52262096E505C45805E73619E2CEB242E559883D20DDDD4120F0C9E49F4995376284147CC2D2A96A046BDB3F56B6DC1889976AE1ED732EBA43AF5941831B2202D6091C16B680001A82D98CCCCEC212B79B5A884756C75CB2545316FC072D903C670864D5A13534E545D836276EE594D3A7841E5F91D6B738D97E73A7274671D6470CD2719B0515FDD67C6E4969AD213254502C5AC9BA23C264A375237369B46D0C45745041A20511459D3321EE9B395978F2C575EBE1C6CAED03AFC7027BC457E03F527B0CCBAEC71850E0955F0A2B54D9BCE69B6C8FBF90850168ADAC411AD5C973B578424C55CE01B3EC2825B0085232469968B8A96FE7B9F26846F789323A15AAE6397242A712CD26B0465BC038A4AA30DAC42C0036C062C21C3A4178A0C92B8992CBD54A6044B789D943F1EABB0BB24C3D0D4C067251779374579B27C84FB435E6C745334485FBA84676750A27C520F79366D008E4BE93FE8A958E8D06B8EC323BFD5BD01E86B1F13302EB17AA3AA8FDB3445AE5775111B2124E2A35021C04945661B2C510A29264AD855836C7D8EABC069011F8814934BB4B32176C0B59B04C5FB6CDBC8BC41B0BCFEF4423635C0C7AC43E4D5286C74920EF37C951266B92074D239B2BD0A0D6C096141FB6A718A213A3387D75B927CE176169738ABE0CFA6B68D3B064157C3CB03C5793A7400C1960351B059E43A7F1B28AE5073780CC606F7E40AEB458DBE95A31C23AF7E760001B0BD601647AD1805C4329E46F490575CA928FA908B5A30FD31520C61C9F1CC5EF18578B350A929164DE33B008338180CE41C45327152090A91B8C9B3928C2629A48D78ABD1992720E841A52CA91A15A1C7953D18B4BA1F990AF34CA408BA2D449F94385651C3B4C0503726CAFA118167110E848FBED995526B458D362061A12FDB7C7E39CE1625C20A13A1C91AA5909D8B03B064D00877DCE2415020370C7223DA505EA48A79EB504EEADDF7D19D736F39A46C837F2A0C2BF3FB876ED8E6BF +encap_coins = 06430DD2CFEA620F387E8CF12A48DC32E25B9EACB9468C42057B01A3CD76AA80 +ct = 90FAC90412502ADC0777127028F88C9B3341E0FF85631F8D5F2EADFDCEFD4C47063DC67C059BB5D59D796C1F980DE7F25608808C7DAC4AF4CA328428AD7F5695E346744EB8E05553127E26163A17AA1CBAF066AA5E03CEE0009DF596D44FC587F8E13CA2DE93877870ACAE838B0CC1207D35456808142C363FF711CBAE66685CDFFEC8BCB1560166122628F205990610C5907F780042A9C9BB0529EE712013C64FA5B632FD825EF672F307DD85A08446E44BB4CA493BBCD170AF688740D9FFB2E0C2AB3052380044C5916665FF3D71FAC15C642E2D8FE0F8E000D8444B6C45E74E7E087B3434D8B2EC54555860E6C2C83DF594730D68CA3004192C13269E14CA98570478BC92F2A416AA501DCA7847F361BA66D770C71A4B84A5D97CEB29FBD52C0BC2B03292D7611157633597E4BDDC5A6BF695CA02D892C7ED0A549FECBDBC1AFAD990CAB786148F0997655E52300CBB2A5D4A8A0DA68A1D0EC13DCBB313D56613344FA5B0D1150556A979C57B4074D64187648C79A4173F0B36B3FF35A01A425A57B686A9F06D6D637655AC742CF99CE5D6AE1D72444BDDADE56871942C1C07491D42586F8DE2AE955C9A2D6E10B1904E4E8E4FE779BAFCE4B7CB70FB0EB0300A511DCF12DAA9022FBCAAA104A23C1F1B1DC052B296AF8003016EE45A77A79BB6EACC0ACC09397C7385310EBA41775454E5D0D37DA6B8ED0B6CA4CDCDF0D74564BDDAB46D0D23642D56306F566DDF8A3DA8586801926AE668D11F1569697B4B180C72C8073F89FFBD57B6A238CE0D2DB5B34A09944BB1DF09B3DAD9B8119244904F4D825D12EC7BD8586151138A9C6397C7F432FAAC8E48DCFB6ECBF330F96EA2CA6377EEAC0F81CE0FFE223EE924D5B064C3C7EAA3040EBDAA62F699AEFFB8829A7D719AF815B9A414298FBF3098EAAA04E675D3E1F6E0941D8A9255C14C184A0EB9A57F572FBE8B22A2D3C4AC311A44C1E4C38C467BAAA5549715E9F3DE5E4E97411E78B9B8C99FE731D9115687DF6A978E360687072CC6497CD6CD0EE76619BE293A52C60F365CD3991F864E602769106D827EB28ED65D2BBB2A65E63840977167A0BA6A151BAEF9B770F49EA6383B0453283A1640C2E295FCABCC227E844E6327A0C029CE88086907DD8EEA3A8200680294D9EF323FF7157EDE52027FAA0530F211460A44169AD2CFBC6460F5F136ED70DDE09584880B2D01743BAB57B489942F9216B40C2DA92DFD086414E4B8EE8CB8DE6225A9DE5D6B39251217D5A0B91ED6C6A0A8B6ED4CDFB548E156106882E8A5348616CEF5FC5B8CE38BDD3C0FD9229BE2FEC9FAAD9F476553F4EAF016E309419BBBAD36DB672277458C2BBA8A7B6DD761F6A5D21E9866DF12474BC0AA918294DA50A1938648CDA9F3D46465FC49F20B4DCE3B0F668CF058766C380AA2E2D36B6DE1C5D2D73ADDE03AA695DFD7D9DCBD8A97BD8F4E3966046909CD5B20FF6480D9AC3ACC32CF969424E8D12333F377C964A6FE54845947752D9001A22232A413795D4D8C638CF43C4BAD645C +ss = 819D5EB67A67F9AB9D00779A1CAAB3BE8783B45C158FA554813C8DA2EFE31EAE + +count = 39 +keypair_coins = 3C815E57E9233E975FA1630208AAB206B71AE0DB37A7A8789AC683D9F9B2D2985532C666D12D7F321AA87F8A1F475B161BF3812EFA99269925F5F29B1E030B5D +pk = 45FC2D1BB1872A743763F12D29D937F3F2A41D257531C1172AF59C90806C7E5A15972A8CB9DCA049BC92700A72B4FA5A739033437C946EE062AA86C12103B557822A08084BE63C4C74D1B92608C3B02C6520B2991F8499470114FB659F89A937A25897FABA6C0DD142D8D4868EE3C6483128241B287CBA0AE49430DD6A28D1339605A4B750E6029F73BAA1FA8CE6219C36A40E5542AB45CC781A613FDF416502743DF8CBB3C4B864D0B448A20C0B0942A829601F2B131FB038587A99B80EF44033061B2E4B8F9A12C3C03193506B62AA1C7AB08569C7D0A88C8A098F87061EE41000FD202E2C3AF4E625B34787BCE55F74AA58EEB9124DE7089E51A581893354B36FE035CE5FECAB74018EE6209B75FC2702429C932ABF71D89B8C82C047D77725CB6ED98608F2BA0B3462C1D428352C6376F6269D9869AFF4BC821870B63F2284D296677B6145683BA6282C12C72512EF015EB19BA86B3571BE7438F17311655C118A530266BBC6D9D10636B6347C630607864949DABFA558522C100F6C7941A076109253B5FFD76328C99590F48B3FC7AE7A5847CC958FA5523F540AB54EA0A302174E6C401341759C121B355C9280D2AB6A84F9028634BF7E3CA90679ACA188667D5086DF35B88D95B262E8478561A414B627F43B0FB8731D3BDA73C6396594694A9F7024CFD55D3AB88342516CB34A922E6835EB8C067BD35CE0B3711D7BAD2D7529464C493ADC40D8EC8679C903E8984850034EF4A828D3FABCAE9474F7278CBE79C8E5C1C948B94798D4C68DA8255237AD8B0B38CD4A8DFDE5ABF6B2CFAD98A677A8C40E208206774661490C3C212D23327A46A23DD6855275B78D29830B23900B13C638E31B4745A917D4FBA95A04956C371212E475271CCF94F6295346118806316EC01D08454B0CD922D6F1A3E4A651A7A931F380042A09244BB39973EC5872C28C8D41C4BCC72CA4409A363C49995C45C7909522128C03814612214A5EB01527B67BCE4463202CC14E31225B36A7D7D10E26966BEB389877AC0062F9172C0517CA8676F5A44A10106FE75A31A4AA86688C075918A4D8A7461DCC1EA1193913C259E3B44C2D976EC67613468358886A9108ACC7D0C6A25F5A991D7C53B8638C24A585F07AA074B5A2CB514BF7178E14112C8B31727A38BDD20A5AD087746768957F837179D50D25F6697F4A88D056451A593E385B74DE8A01CF0244E70AC9AE36B2D76CB91E5419165C6507D141148869D6676F28645653BC78C96B9E7F382CB0C6768E2968C513C7AB076928781A6530CD3AE3286B0C681743A58D9C524BE5120C880605BC139F672E30174095932A000800D58A926CF40873C44AE6096940A3BDB6E7966595BB3D23C9915BC7E29AAAC9F0344C9B6BBB25CB0AA084F616332197295163989E1448784082C327075DACBB7D912025E4786710B0C7452F827ACEDA11A73ADA09C3E54B404419DBF3A8F8B6096A73528DC50FCD230155A97A614663174683D1095D97B7C0E994764DF2095AB7BC029B7DDA3799E5A88ED825CF1674AEE01BB0C17A5C84B8AC1BA061302BA9CC20CD46F769E1021C03C43AB07BAB1BB0C7F3426D252A15ED5A27854CA7B177A6F79502789842E229637FD32A677F68DABFA371062D8B8CE9DFE0D90BF06044AC3A840CEB626B16E134 +sk = 2C021F19322A908456F1677D31DC8A4A2A734A2571D19C421C47AECC507C3C53A931113290B693AFD1B7FFECA87CC90B0419C48BC4359D64146D9932BEEC78766408F59216C692228FE59B768C92F4D5A3CCFA6A35599DA2695766D754C1F682AB13C8966997F37A74985551C36828224C177D3A3ADE3C2C20A907C830BC32906DF70B021B47C38C606EF951ACF7C1512AC15FC0D761C9057A7DB1AC6C56198F9A8ED2F67A0F159A5EE6612109254D57745736CC3CDB634F5658FB684D805888FEA8582135BD4890343A545E4E0A6F0C130B8539125AB06358F8BCC0A4B44A7A4903D018C960CA45779BB564A30CF1B340B4C317CB77DA50BF899C10B4676F3C295B90E93C2540A9E17C3BDE560F351C81C58B545306449585718E9199A6302E3B0CA1E737C07A4B7E21EC154604590D415F4B82778778905360CC2E49BE4B08C94A744995F18959D4492F0B7A3F53A98F9A8D914863B9583D866712FE583FD2677E8A3B8BA5341902178824F4C41BA21CBF7A4B666ACB413C31CFA744B9A5405EFC5B53A2C64481270484134753C1B0407E23B95850A8C026843643E42B329BCBB7422DF5CBB968B04F39210A4EC959E1B5C9CB32A180588B9BAA690F7459B1282D9E9200BD1A0E910A3EFD948C3BD0AF04D866EDC61C866B48D7AA22E6FB5025C6892C66116E271B998B888E0481ABDA592C8B36F7464704FC22C51B5BA995928FE03594A8073AD790798AA304579822255E61D11557092BC9B5BD4C94068C60B2940C180831C5167487B7538C9AB47DC268215C8C7F324563D3973FA73BBAF07C771B15070D880478D2693535425FCCAE0F8272CD7224F3795A70241D480425E4A74922309906E1C11C5107E9F34FAC3536354100F911234D55769B763CF2408B9812AA6B7C2601161953CABF0733CD3AF819F5158A136621FB159DB3DC6C3F3220ADB8ACAA8CCCB7CB2EE583B9909C903FF43612D178C568AA7E9217E345CF4DAA9AAF17CCA1B5A4A5A73CE9B0581E73BCC019BCE2B68C8C273DFE588BA0861C5A73A6EDD9BBDD66935AF04E5EA81A55D62C9A8C51B3E6A402587FF4F837C16380AEF5640F333DB08A6CDDB425CB4189ED773D8ADB91E2708F12B78A0105BFFEE30873C1B6D5D5469F6464705741EC4310A8185A1553372F6091C769109F19527E95A6802C2A49127077B21126E7531A5941298BAE199309CBE00D97513BDE1AC82292CA1A76957D20A306932F83994A00F21D89519E16138F0477667F338A67450E1248A682142A79D9AB6B58B88754362A32AF3402D062A554CA8A40DA0481BA721A9B023DA71987B744C6B9AB5E80830F8B7200241007F0EB72AE3694EE92814DF4B1DB269F4404CD0C77A844D2B751F5A0BD1CB93D61A628098D0EEBC941827F77139831575B98E47B7DC3676D887B56D0AD96BCAA1F280049776339CB3FEF6489DBD26205530CB08C53FB0839B49909864AB06B2C3FE15957DDA96CCDA90C51904DF02C6A1E5846F892A1683838B9760AB900664A1A039B6A1C75F9C4B05340EDE9881F48869DC881DA0191E24BB5AEC448EA052E57E69EDF254575FCA87A1B50E6D39520630688B04328A70CA1A871FFBCB0A8823DFD4747DC859B45FC2D1BB1872A743763F12D29D937F3F2A41D257531C1172AF59C90806C7E5A15972A8CB9DCA049BC92700A72B4FA5A739033437C946EE062AA86C12103B557822A08084BE63C4C74D1B92608C3B02C6520B2991F8499470114FB659F89A937A25897FABA6C0DD142D8D4868EE3C6483128241B287CBA0AE49430DD6A28D1339605A4B750E6029F73BAA1FA8CE6219C36A40E5542AB45CC781A613FDF416502743DF8CBB3C4B864D0B448A20C0B0942A829601F2B131FB038587A99B80EF44033061B2E4B8F9A12C3C03193506B62AA1C7AB08569C7D0A88C8A098F87061EE41000FD202E2C3AF4E625B34787BCE55F74AA58EEB9124DE7089E51A581893354B36FE035CE5FECAB74018EE6209B75FC2702429C932ABF71D89B8C82C047D77725CB6ED98608F2BA0B3462C1D428352C6376F6269D9869AFF4BC821870B63F2284D296677B6145683BA6282C12C72512EF015EB19BA86B3571BE7438F17311655C118A530266BBC6D9D10636B6347C630607864949DABFA558522C100F6C7941A076109253B5FFD76328C99590F48B3FC7AE7A5847CC958FA5523F540AB54EA0A302174E6C401341759C121B355C9280D2AB6A84F9028634BF7E3CA90679ACA188667D5086DF35B88D95B262E8478561A414B627F43B0FB8731D3BDA73C6396594694A9F7024CFD55D3AB88342516CB34A922E6835EB8C067BD35CE0B3711D7BAD2D7529464C493ADC40D8EC8679C903E8984850034EF4A828D3FABCAE9474F7278CBE79C8E5C1C948B94798D4C68DA8255237AD8B0B38CD4A8DFDE5ABF6B2CFAD98A677A8C40E208206774661490C3C212D23327A46A23DD6855275B78D29830B23900B13C638E31B4745A917D4FBA95A04956C371212E475271CCF94F6295346118806316EC01D08454B0CD922D6F1A3E4A651A7A931F380042A09244BB39973EC5872C28C8D41C4BCC72CA4409A363C49995C45C7909522128C03814612214A5EB01527B67BCE4463202CC14E31225B36A7D7D10E26966BEB389877AC0062F9172C0517CA8676F5A44A10106FE75A31A4AA86688C075918A4D8A7461DCC1EA1193913C259E3B44C2D976EC67613468358886A9108ACC7D0C6A25F5A991D7C53B8638C24A585F07AA074B5A2CB514BF7178E14112C8B31727A38BDD20A5AD087746768957F837179D50D25F6697F4A88D056451A593E385B74DE8A01CF0244E70AC9AE36B2D76CB91E5419165C6507D141148869D6676F28645653BC78C96B9E7F382CB0C6768E2968C513C7AB076928781A6530CD3AE3286B0C681743A58D9C524BE5120C880605BC139F672E30174095932A000800D58A926CF40873C44AE6096940A3BDB6E7966595BB3D23C9915BC7E29AAAC9F0344C9B6BBB25CB0AA084F616332197295163989E1448784082C327075DACBB7D912025E4786710B0C7452F827ACEDA11A73ADA09C3E54B404419DBF3A8F8B6096A73528DC50FCD230155A97A614663174683D1095D97B7C0E994764DF2095AB7BC029B7DDA3799E5A88ED825CF1674AEE01BB0C17A5C84B8AC1BA061302BA9CC20CD46F769E1021C03C43AB07BAB1BB0C7F3426D252A15ED5A27854CA7B177A6F79502789842E229637FD32A677F68DABFA371062D8B8CE9DFE0D90BF06044AC3A840CEB626B16E13486BB11E7D9C1368FBBA34CE3A2F169C2464EF5FBC11F73843C456467B6CDBD4E5532C666D12D7F321AA87F8A1F475B161BF3812EFA99269925F5F29B1E030B5D +encap_coins = 45443194C6681FAEB9E4CD954543BDB55DC9FC5478555DBABAFF127CFDD85438 +ct = D66B23F5E11561A9E7AAD595CE6F50374A0C5C13D371040388735DBEF59DDB0399EF723985977BB5AFA95C92D884971595B41B43AB74102EAB5AC7F2454C7A5345772206AB598C8FCCCBBDFC8609B839229D6FB87D59E4306E2BBBB3B161E6E8C136A360DD7A8E69A36B3C9D18D60B8055752DE7DE3750DA3500A1C0CE062543EBD6716487D56DB917CF01D217BB1DC44383EB3DEE468C248D418CE16D9C2EF6D81A70F76204A9D391394E5A69D147FB624ADFACD316D316D0E5A6FC726C36D0380A69A28FAD9CE26F8029BF3B0E33A4C73925C3B5158C6F7B42B0858C502979E923B06EC7DFEB554C6FCB24EBBDD678197EA3C02D2ED5050273E12A5059B7405A9405188112ACDDB377D7A83A8C48F5D2A145E1846F883137FC805E2C9F9EDF8CD919B31EE207D2CACF99D62B8D21F3B6EC58EE7AFC5DC3C681F9F1D5B86941E6FFAE15C31EACF56CFC0D190F6757C0386AAD2B6711A7CC9E2D700188B7F220E4E584DFAA313B236FE77D3B3A63D85B425D8046DE7D1F81ACB24BE72FD001EF4E203D1ABF4DB2E7C16F33B2B44A691C59D07EEDBED4F919EA63CD28CF80F82A07F2045CC6781F7117E2A9B2D001F18636DD19191F2698A5C99B2CDAC2CF8FEED8CBF1DBC8BCFF10ABE197B4455BD630C33F0A8E9834E33B16B1159A659791D67973146B861EF6DDC9BA230BD64BF13FA57E29C1A9C0A25D517D06DCC3056D79D16A93FA95992670E5A99190B1352832EC14446A11D5D41EE54496F22082A331AD67BD8819D5A801BEABE60E84313287339BAABAE1761E01D447B6F7128CEF8DF5E3CED043F0468134E1A14085689FA6A47FC2E952BB4D1E54D08F0C29B87344AB68F0471D4CCC6A3383419CE95531D16F5267844B35FD402FA47E9925D075CD7D98E2E043D21F87864A4B0D8D2275144C18115695A762142F29EABF24A8518D85706068CF43DF88D5252C513421ECCEB57FDD5DE6B6044E8450FA4437F4D45FD5271FF64565CAE61FE7711548958D1F1439F0BFA8AE4E2CD8CAA084796CD86351B605F3313B3793A6F28B5389CB449A7E62CB5016B27A5AFD701672D89EB8D363BEF2363FCAC71050983A4643400823B7915AC421C8745FEBFC9098E911C02BFDCCC42A88E56F798AD010DBD2AAB03083DB597B3A1CA83208468845FF23261E9B0F390877FC035EF60B5D995EE9EC290FE2F869F95DFFABFFB4B01CBDA14563282E7B16C7DAAF5CF3F858B10EE0E28400C65B565A66BE25C0CD465ADAD26C307E2B7A4D476A6135A8FD904712AC7ED7EAAD87915C7E26331F007F2CBFF6D0248DD882BF5DA0D70CD223BD6646EE34E353062BD30241296AC92359F1C66B6BBA837CF33D1385F0773BAE15238957A509FA56A41058DD1DA61C188C9CB563DF80A4C16A091AA407A5E6A482CB8A3785941F592A9D5B2F2912A10A10B0F68A3B290F4EB64D0FF718DCBCA4D3EFDD13CA489EF85B87D27E067B3F87C49DA9E685D1FFF5B4C3E6BBAD5DBFDF65F15387B814477540F5D70BEA3C59FA3CCE1B291C08 +ss = BA5F0E30257647CD1BA1E9BB446BF9469614351931907E29D7CCA5E87FDC476E + +count = 40 +keypair_coins = 588760826DCFBD36D9ABE6AE44A669BB3EBBA6A218EAB69E30F18A3BD536576E173DBCD4922B8FA921DC24240B2173C2E65A839357F8E4A93F51E7DAED4C8C00 +pk = F6446774B30FEF5B426F563962CC29FF78ADE42B497DC3B970F1B848B1141D7A5F45A37C25B125AED61863F22732A06128BCA08EFC8CB176AB6343239B572E1C8C138D829810227AFAABB81CCA0A73131155377730A120558231E8F8A598A2B730578EDC7800B0D6C5627530EE92930EB2B40A9888CF648263B688F0A12E08F004F4BB449A25282029CFB73C32F8D31229D0A58E6AA08698517FBC5F619837AE3331CF763631D305E88C8F85413E9D5420CC282BAD24A783011184011A79A3B305DB5B3032B75C55907CA5C7F839320028305C439C39484895212B1E87925999681819416DCBC7EAD45AC2B1262154BCE16866C04561EBA2C9EC6022B07A57A67C7B901B5DA3BB8025C7585C86BDA0810C442C39374040236A82884199159729834663D3B1967DF9955DE3A387D93D50F5001924C4FE433D016BC2B6614F2D3BA72FDA226864AD6BA5B8C31681DC104348EC2B29C39FC9F567CAE17BDF1C6E215C92EFFC60E2D6A3A3106BCED0BF301B542F7987B582B0780B6D398631EB8559459B1DB01A0443100DCC731291C737499C2F86452394C0B6662401FB57A4DB232E40D1B0F2511EE1EB15DBF7B603E2A67808C064FC5103FA7C9C954FCD12BC619582F82590B323698A328CC14ACB87C217E39C309421C7E6EA15BA6C3BD8587126C5AA02C26308C9912D7262DBB91AC2C2CDBB9CB009A3AE10761771740B2E6558FAE775DEBA7A66086859270EC07B584334900C278002D8A47D01547DBA3036336616A8C12415B86A1423A6C9AAB5F085C7FABB6355B3DB4023E47C7917C10C284333110BC978B2C08E16512BA95A07237CC35C97BFA51BB1B25E30750E65664377BA49200AA6E935B4C7451E547859EDF03BCFC6904DF05220C02F5E576604A873EE82B7693B962853B5522A5B0986348DA63DF86A64671737C17201ED556E92ACB56F065EEBD31BEF43CA85DB1FEAC395E19110A2F0C5B90459838CBF779C27247709765569E5A649BF160301003169E4AC2BAAA4C4697F25869AB99179F9F792D9B19DF0C148DF7C6B9AA20E63426697D83A6E33B35F4C7E798175BFD73CE60A050146A3D893C4DC9B2FABF5960BD80FA0679433BB33BB91915E93C1EB2AA16CB13E0B9870FEF99835A674B1BB76946BC4064CAFDE3063498CA30AEB3983F5CDB3A6B9C4970459D969F4D8B6BA27755B6CA8FBCA178DEC28DFEB2AC03318BE7002A9A4CD7B1749A7FC7F09A6B560740DA89BAAB8130872510C99630F3B588069D50A9550C97F8198B7A46148FA7AC1580632DB1EF49528F9125784A5BB2757235FE44E74529A7CE88E91543B2FF81D9ED78E2647AA07033CF3422D34942E7830191B104C7ED56B8951A9C8706E4CB33CB0B918387B869084386420C13B09BE75D2A5E9276246B674E96BAC7782541E1CA441E53FF3B9C702CB95CEAB628D1617704A448EF743E8B811FE52C659CBAAE22377F28646C45642A9886628C9B73C510BBFB645D4077C1D8B954BDC8B707B7F6BC4701BB1AF0F28B88DD282B78B7EE96732521AA6180B6021AABB415839DC3A1F6F545C1320C58B965B62993ABF6A10C18A22CE6A45539685F297B1F04A130465845D189D17552E2F4917E924CC0D2DBC2DDC739F6B876472EB12CE233CCD402DDEF61523FD6FEE69A88F34A34C +sk = 47A7741316BE87861AEC518A9B38146B43AA54A98F47E242866B8D79F731D98C754B572A2A9170A7EB4B0D73B38D6665D1E43AF0B61AB95CB54879707805BD787913EE369D231C600B76949BF86366579AB62724CAA1BEABBB02FC945BF007CF57A225AFA67393CC58804A15016A12DFB90D5A52BE41F907B1F2C4FE93712F555B0AE896E85931020089642A23E4C38581D4C40A46AA8DDB3C26DB0E29FA5F7A12B6CA32CD2AB6B50327AD0DD8139AD83DCE676AB2DC0C2774C86A2C72A5FA2D4DCAB588A66D6551C040E91AE045698AC0A1DFB95048C545D08654C1B560384561AB07BD8C61182F99C79A2267C961AE66434321E8501D474AD84AA71286A948C5AD187232CF72576F167D63992F62D3423CE75577C2052EF84019404B0E1706BA704FE3D116A518293112B8B80708C094BDE829AC38E362A404BEB67026EA6782362035CAE099302C5660931CE31B93B665059633699EC44C28C2BD230B1942421F12388900081618BB29E315BEEAA090A06AC7FEDA567FD1A12D1A41EBA931C279ACDB875D9DDB7CD9A6ADBFB32239E843012A8CB91776775408316B056FBC42758772C1E53EC0344479C2791B837A6A34AA77710D35593A55E57572FA99711BBE5A83454BCA7990E834BA285A09AA11666CB2B2F39704904354687D0524888CF6461EF302139B042540138E322453619B3DD715B617230E08C4585478F9996798E9B47C712F82BA45857551EA4C79B4A0577938666403174E84585E684783D33F3B701420F66D48473FC6BB627B399E90697E760783A3E09D6531CC524568DEF8507F0437314488AF7376BF2A6BACF783B632197D8565F9456D04A8476DA8CD6C988D26A56D29479A2DBB85AFC18DC81A8611BC4ADAAAAA440471B530053ADB874DB67102B6A64FFCA8BF8487E18B2F7582B71FD78D85F819C24B892741A83E67585B6B1AE5AB6AD1F5CC02AB78D0ECBE01087F46AC9BFCA464A4B9CA817C3A1AF5CB0A6A3F1DD3A2EC06774E805E001B44C8194660A280D0D59BFEB35EBE9C943E626B98E488F8984275401BDC4959993345C38BC801B95D56BBB47A2B23F5F1223D5A0E2A827D4578948CFC5432627C9586275679202E3C970FCC980AF56757912080072A4AF234DD030EC481A6ED8030921691D6126839635C6B270497CA4A87D4BEF47CAC60752383712636752A4AA18AF13BB36EF445FE653628704E4DC2CADD62839F9842F9B2C264AB4FF648C59D15708F55AE4A396D5F4BC75D20603C03CDEC4252FACC579A0CBD1F64A734E8350F03ACEAA2734DE2B486F6B93C36AC11803E564070ABA97D2309078FB43768F98EF5D03B09FA10FFBB0BEB3B5FE01310065508100206A640B93DE87BD94A634907730E30800803B233B95D1CC7CCE49C08AB143734347F3459A5BE0230F9481D50B4B835A91736D6A7B351C8082A4D080967B43B0553835BF52943A380051F48C27823C5AA0B20B7B733DCB004B2A7819BEBA4B3FCB1F991789C2C57CA01B50523214AF309FDF421187492C411C14128744BF4A83599A30B86194473C2BC9222FB4BA34108689AA8065AA24FF3559A76F759768C81A8CC5AA2A6792F3033B2437B05068BED096475D9280BF349F6446774B30FEF5B426F563962CC29FF78ADE42B497DC3B970F1B848B1141D7A5F45A37C25B125AED61863F22732A06128BCA08EFC8CB176AB6343239B572E1C8C138D829810227AFAABB81CCA0A73131155377730A120558231E8F8A598A2B730578EDC7800B0D6C5627530EE92930EB2B40A9888CF648263B688F0A12E08F004F4BB449A25282029CFB73C32F8D31229D0A58E6AA08698517FBC5F619837AE3331CF763631D305E88C8F85413E9D5420CC282BAD24A783011184011A79A3B305DB5B3032B75C55907CA5C7F839320028305C439C39484895212B1E87925999681819416DCBC7EAD45AC2B1262154BCE16866C04561EBA2C9EC6022B07A57A67C7B901B5DA3BB8025C7585C86BDA0810C442C39374040236A82884199159729834663D3B1967DF9955DE3A387D93D50F5001924C4FE433D016BC2B6614F2D3BA72FDA226864AD6BA5B8C31681DC104348EC2B29C39FC9F567CAE17BDF1C6E215C92EFFC60E2D6A3A3106BCED0BF301B542F7987B582B0780B6D398631EB8559459B1DB01A0443100DCC731291C737499C2F86452394C0B6662401FB57A4DB232E40D1B0F2511EE1EB15DBF7B603E2A67808C064FC5103FA7C9C954FCD12BC619582F82590B323698A328CC14ACB87C217E39C309421C7E6EA15BA6C3BD8587126C5AA02C26308C9912D7262DBB91AC2C2CDBB9CB009A3AE10761771740B2E6558FAE775DEBA7A66086859270EC07B584334900C278002D8A47D01547DBA3036336616A8C12415B86A1423A6C9AAB5F085C7FABB6355B3DB4023E47C7917C10C284333110BC978B2C08E16512BA95A07237CC35C97BFA51BB1B25E30750E65664377BA49200AA6E935B4C7451E547859EDF03BCFC6904DF05220C02F5E576604A873EE82B7693B962853B5522A5B0986348DA63DF86A64671737C17201ED556E92ACB56F065EEBD31BEF43CA85DB1FEAC395E19110A2F0C5B90459838CBF779C27247709765569E5A649BF160301003169E4AC2BAAA4C4697F25869AB99179F9F792D9B19DF0C148DF7C6B9AA20E63426697D83A6E33B35F4C7E798175BFD73CE60A050146A3D893C4DC9B2FABF5960BD80FA0679433BB33BB91915E93C1EB2AA16CB13E0B9870FEF99835A674B1BB76946BC4064CAFDE3063498CA30AEB3983F5CDB3A6B9C4970459D969F4D8B6BA27755B6CA8FBCA178DEC28DFEB2AC03318BE7002A9A4CD7B1749A7FC7F09A6B560740DA89BAAB8130872510C99630F3B588069D50A9550C97F8198B7A46148FA7AC1580632DB1EF49528F9125784A5BB2757235FE44E74529A7CE88E91543B2FF81D9ED78E2647AA07033CF3422D34942E7830191B104C7ED56B8951A9C8706E4CB33CB0B918387B869084386420C13B09BE75D2A5E9276246B674E96BAC7782541E1CA441E53FF3B9C702CB95CEAB628D1617704A448EF743E8B811FE52C659CBAAE22377F28646C45642A9886628C9B73C510BBFB645D4077C1D8B954BDC8B707B7F6BC4701BB1AF0F28B88DD282B78B7EE96732521AA6180B6021AABB415839DC3A1F6F545C1320C58B965B62993ABF6A10C18A22CE6A45539685F297B1F04A130465845D189D17552E2F4917E924CC0D2DBC2DDC739F6B876472EB12CE233CCD402DDEF61523FD6FEE69A88F34A34C29253478090CB4D580BC2A912645BC685061E5D4437B3811EDA69C865EA9923C173DBCD4922B8FA921DC24240B2173C2E65A839357F8E4A93F51E7DAED4C8C00 +encap_coins = 52081A3D33DD573D4554EB48C3F83E7961C3909B6053AE3765369B2BAE10CB8C +ct = 43285EA237FD25EE82D45D3598BC34D4B932338962AD03D4F7BF9DDB083542CB372F00F55F02E2A122BE3135848CFE537547196FBE5E311CC07B5354ABCC221E967E854D4DBECAD53CC273E6699E6F7510DE0947706843AA805DD3ADE35BA39CF1F57CF2A1EFABD1E45EEB6E905410350828592FFFFAA0DC0AC7D85F0B5317BB14B435A69DD1165847D97B899ADAD88EAFA1DBFE2CC8FC2150908C90A33B8E63A7783B72A83A0476BAE35DB74052F27679257B95F2AF5D841D75AA4E0DABD8BB599781C1C06E380BFC33369A0CD687B3FEC78B8E667F98246A0E24C82993E647873E4077BE6A545EC55B70CC6D362A8CAEE31A20A107599B29BA2350E328D09CBECBD0D06B74A3B7518376BC3D4DF3628E171B4B9F77DB3A99D4938BE29FCDFCCC33F47CBBB1E24210A2301BF0A49C804E50EBB2EAE2DA25B17CE8A17BDAA5ED473CD17B70BD49D009CED7A517572B28295ED3570843509D3F15A1BA1BB55A4429805D915A2CD15CD56024C4AC082E446442D584172AE3B61EDDF05916DA2D63168AC3A2B6C1E61398F513A20441FED1016D7FC9D2957F5CE46B1D1B0DAF61974DA9FCDDE816146B480BDE4F50C6A1085C693DE73DCAE6767C52DCF8D50E8702991624DF13BE459B50FD2CB6CFE6AA840A7B6CA99E068CC9B0F62972EBE035DC0B0E62EFFC460CA0C6D79BCE59682800BEBAA590D486331EAD0A87CCC3A730CB8CB2C45841A942B22C6E4813ED836BBF64E3CACA10E87DEE4EC128DE3585BF5507137872ED05724C9662417B12D9F173ABB3BA53A8D0DDA67009266338E6CBDCCA159BE0390921153EBE7924BCD5A013915728769A4E938A7B69789582F0BF579EA7A7FE556A42362F32F70A2EB2721DCA8B6DE0BFA806DCCF736B3836716B2C62F7E788AE08994C307E4B1E8339416E06A94A640CF02E261E8F95989B8E0E8C74C6472EB6FC3055299F9BD8583B7F4DCB0D6912E028905CED44B072435B6BCCBC6235A386490EC3FB974CA69DA6244703D6599DEDD257BAF753404628FC5CC69166D87A33B79C9865CC0A0B0374216DF066AE3D74BD70EA5A2046723DAF58ECADD3675EF46AEF079ECDD69C9F0568830CFF5B36688B43DEBB867B9BC6C82659847E6AFBAAEA4905A5F24D1B89F1B83AAB3BE59AF99ECBB845F18591DF4D72B9A083E3F0C5D1ED9C8A288B3233634C02CD2E7D4403D0C34A92670D774E84D60352E1EEB246BF74EFAC67B7102064E30407AE35E024B1E8782AD34CF0D81404D304DB4DCE301668C6919323492335730EF79A3109B6366F46D4FFB797BA9A776248AC3910309B187431487D4093EA14F74ABE7453262A32D326E85E7561AF42E2B41996140624B8ED762B9331E5C5D9CEAAFA1CB89D61BE1D7419859A499EAF04C04BDEA6430844446AD34C831D4EA2FE1F349623AAE17C185238B2127D77FB40F4B318F2017A6782DE2DCABA0A0DC50444A5518DE73188B7B13E8752926BEDDF68BDA964F8337DF15A86A6795CAAD83A0BE7CFCE8DB60A98D00329455972303C +ss = 247562CEC50DD14948EAC590FA642A465B53B8009EDA63498FB5BF9C5B51E0FB + +count = 41 +keypair_coins = 47550E9EDACB6DDCE3D9AB81F6B61080DD4F2693854ACB05E0CCC7A4FB6390FB7E30DD3B9F9D66518A0525F030574C504AB3851B77857B70858C130CA20ECE35 +pk = 5FD557F7434FCB61B199E793C5E763764C48DF412ACB7C756E1370CD117F8C10CAFB39CBF0C8C3F5DC8DA1855203D02B39647856B55C38E944617B8348D16A8221962A42398FB61978F40328C83A0B49BC843060D1711E289434DB4B5B0838CD87949DF5AC0727D8A528B8B5BF30CCB9E37A6664050CC5880D34C13CA42C1779B8D098C5E0876627C17A79B6BAD44A9A38C56883D97CF2D2B114A1C4F1A502AB4A9B7B5398D9E73E543B860F87062E27A9FD1A2035185F0D98857B0759BF1C39A41984C8C1A1A9027944417F84CCA0DD4206E9133F6EB6A989075D004ACCD9F57CDC928CD455443F0222DCAB9A8890004C2596EFEB06903B5D0AF33A88F14FEC760FC074A3DCDC744E9864E7EBC608A56002E483E60B8202B31377DC7F5A486D5A060733FCA9836AAEEAE05909C6B6B0DB4531271FE4F3548BD5BFF1E92160321218F963081C518874C0CBB792FDA4513F7902BE6547745A0879BA6CCD7C0F73B123DC605BC7995BDD14B018D8278C8C3966AA87A24B4A4BD3ABAFE0C8173C028DF14DAAD39C288943EAC139210392BED70C38D7AF7439697BE96977D23A27CB6E7DE7B785673C9D1B33A081A9CD417129430C6C6300C496B04E1796C9C781E4211915162DE147501B7BC55F8913C66C5CBD209BA6D115F753BA739417C8EB182200113CE17C935A0622DCBC674553B9DABCDA17BDBFB4865D58143C149512CC2E74A2B508F67BE8058461252D95042F8B7641E1D85161521B81A616A02110D7EA3BCA4723D003A4DB1673D64273B34C9432AC981A0C01DC8B8C0ED5A05D20C5331831CE56014AB0732B301CA2F8569FC061DDAA95D63667B9ACC7A1EA656F821D55A31B41F32DFB3B66DDD5CD2155438DB6923069430B61C85AB309BF56B0ECD990427C1B7D93991E783A647B1DD66696659B5C926485E1642854F0839033138A3A54C349C138977275E71E0FE985493CB85E0923095804037462AE248780006D0778334F664262E88498FCBB22D46D4F4291BB90AFBBD40FBF2B302415CF195542DCF3375E78602FE1067638AB995B70E6DBAF7B75BC11701207E489F361512B590A860401A3FACC1EF1375D8B64E0E5C7F863786D3984710C2F55ECAC578C41170194D832929075671B814FABF45C6E2BCDF8C0CBE2954C5A414E3F8878AB68CA13189D97F316517ABB4C5187DBB03413DA654E650EC1CCA0BC9472BD4BCC60CA6FCDCB26E77A025EB70EC0E60E20B19D30FC261AD11D3C0C56ACE53DE82C6A38CA5D59E9C24568B7CD15A0531315DEC20D9CC957FCF8958E3747471A8D944A6678F6AC8A8763A1759B3DC83EDD18CEEDA5036C31A897B65612D2B176E9648352899BB2869F48B1E70C1FF04864487258526226A7DC64306B6838F4286B9A81A3193F5C9C711DFC5B9FE79BC6CC14C934591F93860B66511AAB061295AF186B8CEFF5772FE50DFFBA4F5256522B5C7C55A6BA9B13B615FB3B3BDC4B159A1C84C85D717824A0573CBF219FD9B2A32AB66BF8A498A04AA4E22509A5057997B74AB5A1B27B96656BC194AF08114551709A41142B715C6E167E5BA5945729BFA702C236073FDDDB4CEADA972810253D642EC094333C028B0AF40CE2E29993369EB7DDD07164969A62466B80918873A4EA56CD80A8E559FB30F6CCE44F1F8FE60A +sk = 35E4451348CFB9A06F1836296178B6AF41A1C0196F26525831C081EA779E6B8C4B3F150AFE2963AA756968358BFCD47D76415ED4294F02A843F89B87D6803BAD504A9165B9BEDB0C946058965B64BBF953E719160B53552C100D251CC9C111837E0A7C4C043BA0777E53B39F658B41B5F8900D4721268A8AB868B15A12C3B8F41316DCBE117AB3A027B8FC2CBF3566569A130D6DB132DDCCC5EED69A392BAE8E4A7BD6C9708A48BADEBAA79FA1AC1E729EEE0399803A374D3733AE501F1A846CD2F5166DC31B4D53750BCCCF937B1CA43C3A6CD5601EEAC251F9AAB8B2489E22CEFF436F1142CCD1BB17DFC75DB6125A1A433325A5599FD23B49BBC3D1B9195B984303735F9F2646EFD050097AB23A8AA5569AB744A934C2991BA046CB012467D39C3936EBA9CFEC4268E1A0EEA559980133B4121F9D5A603E092C199818C057B7C841A7DD00AF2C0AB3637878A9EA90BF377874FA38BF290FEA6131345340857A1A53D4BDD9201B99FB628D975A91001F907A2E9AD37C9B99B8AF915070339FDF76125D9556B1716CB74A9F18092AFD887880526FD82CB002CA49E879C50E33AF2E747104674EB1F30859E3C22F3AAEBFD30FD672B6AB855928C4085130488540C8CBDB832AE25249F46B7178AF9769A4B359664BA48DA4A746C215C58AC2752E43835B5C2A9EF0A3FCA159D29038CD60CD60F5BF508521D3D59C4F083653264776501B4FC62337FC37562973A1F9BD9532B4BDB25C21597A11E17096B155CD43C76874C44F25C1AA1BBCEA897367536ECF4124FEB6CDF2360CD5A082AC03B5E94232DFB44E1F124FDF65A4BD03B16ED729884065D77135F1F730A7A91FC2EB43271C0B2BFB8E615C07DF54041917A95B0544E8513E8C6060D14C0FB802C0F2680051341960654F3594C9972C08664B7BD30B2F031827307B95FC525A2632C2456041B1286D6F175BC0B41942E8B8BE69BB364A11AB4CC199F20AEB516CED1ACC1F4B2B91B860331677290C643BB9A00B4B65644592C5CA5BB19B25D2A7080CC32B08910C137946A3FAB6C8E31A1E97A4735A5C0A239B073C6E056053CD6498117497870718D35235019B3EE6050DCAAC31A27167FE35CE57586C364C13BCC7587CA066C6E05673E2BA0186281D94843DF10BB3A93C05025C0C691A0C41B229A55B7B506724026C4F1B48313788A212B0C951783EC9447E64314E878734AB59401923ADA0586225C7A5C00A5F97BB76632DEC47C15C06C7C20090C790404B3044136C79F46181CB1123A7D3CF969B72F6CABE063A35774A60863267B1BA34B93A5D3DB25FECE84A02429A9D142ED897320BFCC114391BCC097A078B04BD9356113B3CB993C19384886DF182E37BA659D5B8BEE24445411E318CBD092B8F8E53C63BFA3896A2CDBDC66E27F25C83FA85C260A34FD6CFE6872172F1361AA125E6C5C6C902CDEC68708C14C175E910CF002AD647A317F78F52F76BAE006A3AA51780D37A00AA20C6A532281719C5AC88641A9D15549088B5A4DDA23F443335ABFC5C2F7C5BE2A142740CBFD612A83AF271AF0AACB43833B56295B51A885D798825C3A2C04B399C528530CA24117B6E762C7B6527B0509B5963B68560015DB4D4895FD557F7434FCB61B199E793C5E763764C48DF412ACB7C756E1370CD117F8C10CAFB39CBF0C8C3F5DC8DA1855203D02B39647856B55C38E944617B8348D16A8221962A42398FB61978F40328C83A0B49BC843060D1711E289434DB4B5B0838CD87949DF5AC0727D8A528B8B5BF30CCB9E37A6664050CC5880D34C13CA42C1779B8D098C5E0876627C17A79B6BAD44A9A38C56883D97CF2D2B114A1C4F1A502AB4A9B7B5398D9E73E543B860F87062E27A9FD1A2035185F0D98857B0759BF1C39A41984C8C1A1A9027944417F84CCA0DD4206E9133F6EB6A989075D004ACCD9F57CDC928CD455443F0222DCAB9A8890004C2596EFEB06903B5D0AF33A88F14FEC760FC074A3DCDC744E9864E7EBC608A56002E483E60B8202B31377DC7F5A486D5A060733FCA9836AAEEAE05909C6B6B0DB4531271FE4F3548BD5BFF1E92160321218F963081C518874C0CBB792FDA4513F7902BE6547745A0879BA6CCD7C0F73B123DC605BC7995BDD14B018D8278C8C3966AA87A24B4A4BD3ABAFE0C8173C028DF14DAAD39C288943EAC139210392BED70C38D7AF7439697BE96977D23A27CB6E7DE7B785673C9D1B33A081A9CD417129430C6C6300C496B04E1796C9C781E4211915162DE147501B7BC55F8913C66C5CBD209BA6D115F753BA739417C8EB182200113CE17C935A0622DCBC674553B9DABCDA17BDBFB4865D58143C149512CC2E74A2B508F67BE8058461252D95042F8B7641E1D85161521B81A616A02110D7EA3BCA4723D003A4DB1673D64273B34C9432AC981A0C01DC8B8C0ED5A05D20C5331831CE56014AB0732B301CA2F8569FC061DDAA95D63667B9ACC7A1EA656F821D55A31B41F32DFB3B66DDD5CD2155438DB6923069430B61C85AB309BF56B0ECD990427C1B7D93991E783A647B1DD66696659B5C926485E1642854F0839033138A3A54C349C138977275E71E0FE985493CB85E0923095804037462AE248780006D0778334F664262E88498FCBB22D46D4F4291BB90AFBBD40FBF2B302415CF195542DCF3375E78602FE1067638AB995B70E6DBAF7B75BC11701207E489F361512B590A860401A3FACC1EF1375D8B64E0E5C7F863786D3984710C2F55ECAC578C41170194D832929075671B814FABF45C6E2BCDF8C0CBE2954C5A414E3F8878AB68CA13189D97F316517ABB4C5187DBB03413DA654E650EC1CCA0BC9472BD4BCC60CA6FCDCB26E77A025EB70EC0E60E20B19D30FC261AD11D3C0C56ACE53DE82C6A38CA5D59E9C24568B7CD15A0531315DEC20D9CC957FCF8958E3747471A8D944A6678F6AC8A8763A1759B3DC83EDD18CEEDA5036C31A897B65612D2B176E9648352899BB2869F48B1E70C1FF04864487258526226A7DC64306B6838F4286B9A81A3193F5C9C711DFC5B9FE79BC6CC14C934591F93860B66511AAB061295AF186B8CEFF5772FE50DFFBA4F5256522B5C7C55A6BA9B13B615FB3B3BDC4B159A1C84C85D717824A0573CBF219FD9B2A32AB66BF8A498A04AA4E22509A5057997B74AB5A1B27B96656BC194AF08114551709A41142B715C6E167E5BA5945729BFA702C236073FDDDB4CEADA972810253D642EC094333C028B0AF40CE2E29993369EB7DDD07164969A62466B80918873A4EA56CD80A8E559FB30F6CCE44F1F8FE60A286DE7DC142EFE935E84B0AEEBBD32D050FD9D8B008A94E59454B19EA401611D7E30DD3B9F9D66518A0525F030574C504AB3851B77857B70858C130CA20ECE35 +encap_coins = 6A56EA6B25105666B70C77C9027468B84E2B069070EF3380403066430733575A +ct = BA04778D05ED448B71B15650A7511AF5C093B419CA99716132BC241E4E719B36D6B90AC08AD151F75FE51C3102B066C618CB0F71A73A62BE505C614BBE11EA26A654F6859B8B1C34E547B956137A73C0DA40A48409178E58CD3F2B7B9EF396C341EB5CC544D7AA5A27140CB61B352FA089E37969330FDEFB39F7948DB00C0BCD8F825F19954FBB8AF0AE9A12DD2DA30C8218C33352ED79F70EE8B734F8E9F7DA8673FF996EFA862503EBAB8D7659096EE9F5C6B152B67958C503CB452087C89299097F410DD6A6FE3113961297D97AC6DDD5A6B6418E36872E2566122C4CFC848DF8F64CF477C1839C8C6B69FCC6C6D668D290FCDEE1D2F9E49340BDFEF34739268F18FF2AECF83F2F8D03D39517B3AFDF35808825C6BD0872EA9CC98CFC9101B2CEC55CC6AB6DADA8AB042147BED31F74245E09460706B0E4E999C586BB70C2E07E94BC5787F196E2FE3B6163481ED917B4E3D751E33819926AE359981F67762BE62A645C45A5FABB86A9CF67D1DB5FB57E7583C67D98976040AC8E23B03AA0808B670FC4F8A6DE255D4DC12EE1C537EA189CCC3D35423937A6626D37F4AC03BE8A9EBC7B8AB597078385327F4FC7EC10AE8DFA53CBF75B6E222C347C7AA83675A01D2613C05E404EB13057A2C2A222AE525EE2D5AAB0489622600223A25ABB44F42887722F31EF64766EC80859986D5F2C2AA0B1570492B39C28E7F0D3CEC25AED62DCA0791CB42145D5672EB2A252457701C00807838D2F8AD1493D3500ECB64A7B2856898E979E4947E83D4D1D2AD4078916C6B31E936373C46860AFCE5F2A2F186FF79EEC79D7794BE73875F7B76C114E1523B6460B2039BEAD802255801F682C120638E4506C1AEEABDDD5D93C550EED03108CEAD1BED23D4573BF59CA7AFDEF0054448EE8DDDC91F339A8C5D23B10042CDAFB5BDDE4ABB0472E8B02CE4DF2BD10BF2EDAFD6F8A3DB05FAD66A6610A66E4F4AB5A93DE15CCC25A23C438963B5258030BBCE1B2268958536277ED91A07B08713B973BFCD1F151EF4039E0BD9A5D605AE4E82E97D90EE5EE6B83469FB4F4649B8D5E6B2EFC5ACB710E0851CF25A61ACFDBD1B127EE48358A62218100D2AEF0B7D4684C1A1C3DE597BFF8C9073BE1D7ACCB97A0D9E75683C7E53C9C01BEDFCE8A10FF0121AC388E8E08E15B1667AFBAE0CA61C9544E62A91A34D0A9C3BAF02F010DA20F601690425D229017FD543A2D8E7D9C23CC3778302B853A772E05856104310D119456100F753F8347495C0C7FED930CA8A1FD0CCAA427E04E9E494F6E0D9625E5D7158E598383E2A2CD2BE71CC6C0E20EAFF950FC8FF8BC31861351241175D309D99696D739EE55E60414361F57B15FB251F550B439CC88CDF1A792A9692D611934AEA9247EEECAF733A55EB20B29D6E4F18A826ED360445DE3711A179411C9220884807329F2295162A748CFBAD260DD850CEF6F92C730333A89DD14A2EA4A61E46A21D37D925F7698F0DB809535F39FF0C6419887EBED10F84CC08DBADFF84AFDFD20C512F34450 +ss = FD125B3F05D1EFFD5D5780F04BCB63093A5D46546672FDBB3C20C9D88E178C97 + +count = 42 +keypair_coins = 610AFB64BE8CC1DF288CFB016EE2F44C6C07113DE7F6FEE071FE0C3FE31C621505913FFC8D7FB91C97DC1E0BEA9DC9955FA28B3CC0B7415C192F81912D70516A +pk = D5F135D06AA99635C9B53244E1F898D8494B681312BFD243C8EA5B7E71CCB7A5386E477D01FCA3EF4122A63934843450A446CAFF55184D052923A393FD887DF6B045659CC282D1424B19B17CC2A2384132EFF067A0347F88C6B392AA56A3519A440438D3F90F6941112124C91FC31187AB0CE6752D9B336A1E230F97837A657599E253B7798C912A66A48314447C352B84590941355C6BD1C0951374105858A46502EF39CBB58B8E63A64E2B99C4825912155695893A62AF6745E76058D551A946161F25F1B8FC045602344A7F342FACC50E9565C1D59A459D34233C1921CEAC6E0BD936B496C8FD6A619D8B0649EB458F8943EAC97293635092666688DB559D255CE9F280227755C3605D6ED007CA718527227FA1F40DBCD88792801D8DB6B2374A23178A72276C790F902D7E969F2686C9508186788905E77132DD909397F6B6BAD3CE77E8CD4C4A3B9686CAC35ABC86D57E911CB58B0C997C1935CA64918370809D3B1B70CB09641878E7C0A141573030AA2B687761BF43AC89A81E73376793ECB32DB53368EC9E079172E9AA482FD8652583B9155683DA3467E4546F26AC98371487527C37B6646CA582017892A188FB2440CA7240C3C22577230B59AB8EC038BB95CC49C2A2F59A4A22C0C482713544FBCA9D7404B3A6AD86E8764A601B7084289858BF62A2828D3091FF015089726CA23B1CA0F87195BA1ABF80B01F101F8584C15289196744500000B431A60267174F2CC56860BC5AB4EC20D19BA8ED47535EB42FE1D33F2980BA211805A3618F2FF64D1CC634CAA6B40FD23615538366DBAF41971D8B5857298C1E406A293C1B8B7F4A499A97BE8CC51B5382020EA9C7CF809FA7323134290FA461218F4A6F495CABA2D1511EA48B7E0905B0465F7A6711F2716B17DCBB4B9A1B31933D7D3622315C79F3F11A93C8058FBC01C4839A808A5D2D45B99F7918FAF52DB1D81D669C7988BA7EB8847187AC7B76404B1A139DC4E4917C9B4E29833FD9FBC36E4BBA96E25BDE691CE0C369ACE7183C762BD04785EFCC6B614165C014A0FC4B64B24B3B46418AC5B6B7BF69CBC75090B69AAE46B4A12FEABD4E134BCAF14922367B50F17976C6705E175FF34612CF7B086ED733DEAAB0CA815A53C99B2985963DB89BDC284D251340B0E3AE20990EE93344DEA18063DB6EF4374A331244EDE00B46676475937A9472C82E124B1751A9E4203BECC77ACE092B055ABF0892637B39C3A9A011219C88139277B8BB73B9508142421939380ACFC2B81523C72E923609A0505E2979E086AB85F9663E549F3350A694458CE7B02BD8716C0F8B8946A21D99D97632952BEE898989C1ADEB710E15BB25B0A22BE598A65465BF2B899719D00F9D16367E9436803BA8C17B6B3BF62A10A017C177125396BF6745163FE24C455319CEA69393CCBAE42508156167B28A1D1050BDEFA5A789BC389031BD86E72AF5F5BC80A215260737839654998295D5ABA8C11A5417B55D67201243393B7593400D46CCA1D321C027BFB09CB08A1738C88B7D47E876EF7517F8D96CC1C93B9E93B7062227A55996FA958A684AAEDA89587B015A6B336DFB610721298AC6AB713F3A2E37B2AA7B1CCD2A876F03C72546B861E351A73036F4B363137340EFA7764C439F68D3C8E0723683AA8254A66284F447 +sk = 03A941A829C025261F44172ACF806BEA5B216B58BAB845328C36CB925A5169D6B1FF141BA44010FF2C1A446113C443C6D98CA879E673CCCB84D5519067619EDF59C23798B9B6BBCDC0D49DF5F4B21563AE54E287DCCCBE4C53C62918A6A213C460EB8C92377CB57A1B6D6467D40297FB90C6907B6BE5B03DB314C3AD5B2F46999743EC7FF0B055AF2B2753695395C6157C60115E183DDA398D136806B7017BB4FB4F36B7653BD17CABD1BFFEECBAF2EAB65B853C710820818B05AFB86388F327FEA6C3562A027C610AFD9C0BBB23A571489120C2BAA0D7AEFFD196B2DC8B40D4016FDA16062512A64462FE806D5959C49DFC0C9B2955E6480B7AF0011EDB2D44C6A43D08B5F469656CB9396C9C640BB077CC24AC0F293BAB4CBADD998ECDBA31534408B74420CB432826CB5DC8224C48159626053096063841153F723761F83315629C945778A24F826A28A90A5854BA7E80C48E44929EECA17E28304BABCD0AF4198962A045292F09AB5B7197A685A67D07EC9769B69E64EA1457FB8E1A70B23AC4A797132B021244944143E936C6E5D840494B674FDC9AEE84A091175F8E3121150B1375E028D0AB6B709A443F14C56AB67E3A8721A4B698EAC9615FA12C0E5277E4A412508446ED4999687AC5AC626CCF5468F3E944B8D099FDC319337C85E5024A0798556CFABFD47A40146691D32C0F179B5BB3C3088F2CB29E2B961B630610D1528FAB952DC75D23339C26A38F68421C12C2360F369ABCE128CD64551CA29455E02AEC7C359CF9182F5642F1BAB42814AEA8F2844AF15670421E0E113063B4B8C614487F6B6236DCB21E48613C0635E5F6A6A6E070FB665756F98156C65A6F407E1014BD6540A92E8A09EF6C944DB876250B951D16332251C5BB6B79F88928ADF6BEF819A241068B08337136B8BDC33476FDDB0292B68EDE75490DB193E267BBF2F8459FABB17D10BEF7018AE895995200453065AD45457E3E86A12C554DB3617A99613767598031C86BD5815585444DFA41CBE068034FC0A1CC2636D010230870776D2645DB640B409A292ACC909AAA11D0D05A1B1469EA2673020BB7EBC7381190C271E2CF73D37F61F12C8389843B0540117C7AB924C140D1409F701AB0C0596103A1AEF3C93A2A79BE19C7870ABE83232A7DE265A1A1280D30490FF50C414A006D8A403C50948DA4B1054B18BE35A8F9252079C5ACB2104BD42CCB51617839E07380FB3A62B3A5080295BCCA410215AB5C30A89B727363185363027BB1A6B09FE83233D79E4527371ECC8B879C81A25B3E6E088D2E786976396EF8D6C383495B52EB69BB718DD7FACF5F120303EA259FB2BC32A5269AB45E6BD8AB9F9456A68B869A4C13A0B6C98DD1BF276572EFC9A31591ACB33B9945919FD20495DB284BD4BA7C66620754E58396C0A191F20304B545AA2279CBE62D08EB4C82E60569598147F9910EF70ABF792D375420BB999E4A9CC28DB0193A124D0CC78807A54D13933B25B350A16C842E4B31337BC7734104FE564C20F27ED6AB800717BAAC4A9C954C6EC5238BCDF309C6FC497A6A9B9E4973D7D44EA53B90DB26912AC7796C327D24D3705DB5BD0266B17B145FD8CA77624C8ECCAC1C209073B2A639D5F135D06AA99635C9B53244E1F898D8494B681312BFD243C8EA5B7E71CCB7A5386E477D01FCA3EF4122A63934843450A446CAFF55184D052923A393FD887DF6B045659CC282D1424B19B17CC2A2384132EFF067A0347F88C6B392AA56A3519A440438D3F90F6941112124C91FC31187AB0CE6752D9B336A1E230F97837A657599E253B7798C912A66A48314447C352B84590941355C6BD1C0951374105858A46502EF39CBB58B8E63A64E2B99C4825912155695893A62AF6745E76058D551A946161F25F1B8FC045602344A7F342FACC50E9565C1D59A459D34233C1921CEAC6E0BD936B496C8FD6A619D8B0649EB458F8943EAC97293635092666688DB559D255CE9F280227755C3605D6ED007CA718527227FA1F40DBCD88792801D8DB6B2374A23178A72276C790F902D7E969F2686C9508186788905E77132DD909397F6B6BAD3CE77E8CD4C4A3B9686CAC35ABC86D57E911CB58B0C997C1935CA64918370809D3B1B70CB09641878E7C0A141573030AA2B687761BF43AC89A81E73376793ECB32DB53368EC9E079172E9AA482FD8652583B9155683DA3467E4546F26AC98371487527C37B6646CA582017892A188FB2440CA7240C3C22577230B59AB8EC038BB95CC49C2A2F59A4A22C0C482713544FBCA9D7404B3A6AD86E8764A601B7084289858BF62A2828D3091FF015089726CA23B1CA0F87195BA1ABF80B01F101F8584C15289196744500000B431A60267174F2CC56860BC5AB4EC20D19BA8ED47535EB42FE1D33F2980BA211805A3618F2FF64D1CC634CAA6B40FD23615538366DBAF41971D8B5857298C1E406A293C1B8B7F4A499A97BE8CC51B5382020EA9C7CF809FA7323134290FA461218F4A6F495CABA2D1511EA48B7E0905B0465F7A6711F2716B17DCBB4B9A1B31933D7D3622315C79F3F11A93C8058FBC01C4839A808A5D2D45B99F7918FAF52DB1D81D669C7988BA7EB8847187AC7B76404B1A139DC4E4917C9B4E29833FD9FBC36E4BBA96E25BDE691CE0C369ACE7183C762BD04785EFCC6B614165C014A0FC4B64B24B3B46418AC5B6B7BF69CBC75090B69AAE46B4A12FEABD4E134BCAF14922367B50F17976C6705E175FF34612CF7B086ED733DEAAB0CA815A53C99B2985963DB89BDC284D251340B0E3AE20990EE93344DEA18063DB6EF4374A331244EDE00B46676475937A9472C82E124B1751A9E4203BECC77ACE092B055ABF0892637B39C3A9A011219C88139277B8BB73B9508142421939380ACFC2B81523C72E923609A0505E2979E086AB85F9663E549F3350A694458CE7B02BD8716C0F8B8946A21D99D97632952BEE898989C1ADEB710E15BB25B0A22BE598A65465BF2B899719D00F9D16367E9436803BA8C17B6B3BF62A10A017C177125396BF6745163FE24C455319CEA69393CCBAE42508156167B28A1D1050BDEFA5A789BC389031BD86E72AF5F5BC80A215260737839654998295D5ABA8C11A5417B55D67201243393B7593400D46CCA1D321C027BFB09CB08A1738C88B7D47E876EF7517F8D96CC1C93B9E93B7062227A55996FA958A684AAEDA89587B015A6B336DFB610721298AC6AB713F3A2E37B2AA7B1CCD2A876F03C72546B861E351A73036F4B363137340EFA7764C439F68D3C8E0723683AA8254A66284F447029A2E12C3E6AA668AFB5BE8A82576813FAC7B8E61C5A88AFF94ECC2770C585E05913FFC8D7FB91C97DC1E0BEA9DC9955FA28B3CC0B7415C192F81912D70516A +encap_coins = E75C36E2C2F58F47597A06FF4BE1CACA2984C889E08A9C9D4B2831D6A6EC17E1 +ct = DA5BA9F8759303D89B9BD2E7BB0369E703BAE700A65BA8A9ADBEEB6407BB83A475BC3B622EEC072EA4B16973E2DEABF87203F3A283C5EA343FCF199588836E88AA62018F0DD1969EAD44584196E2419584F26FABA9975923FB34419E3B42FF55882D3EDD07BA0664032D105B86FD08CC72D53508CFC659326A31E719630954A96FA3B4513A69CAD5FC00CDD8E83D85AD21F4FC134F8F4FF01E1C7E6433F8A501BB5CD87A5933BEB16932483C0C9143E233E537B4DAC97AE1DA6AC17A622415A10EADEFB5A0291C165B4D09FC42A584E15482A8C064D31D08337FAD45D6BBC0FF3B42004FE76A6D73C161264429E865F486D66E26A3978A939FBEC21A0FB798C16A967E958EEE896D448ED9E71DE68B7976AB8CE4B3453F8E8A87CCE6BD1853C199BC0C266601BFA1CC9DF42E54A74EE4B8A5011E180F4758FCD1150B3DA0D80729C3721EB856B613C7BEAD0B7EE557AEF68ADF105C0B8381D5D1788DC2E178458F28E8D2DF310EF26083A8C21C7AE5A43F91FA1E6C83012D87A9BD6D2302361F7E2779E91D1C6D2C58A1FFB167ADBC1FFC52878340DB9C423A61F06539AE3282DF44DC466034DD2897718B01226E88CB9CC943BE902350FAC2266F3CA485ECEF3A54C8F73183AF33869C4D6CC969BE4E9976609FB48303782F21782280600092FBF5E00DCE7CD6947CE390D3F4F3D20FA557E67EA49DA6B81F0CAF72C619095A2221D7AE4462C478C70A379D64468A30E4E5EB584A1D544FAF7E1D8B650D140DB1E2FF66E4D9D1B4148990606F38C74068271FA7D8F583651015AF891DC2DBEB0AC03A702808DA5E8432D24CD70A0BDF545BCA59518BB833ECD3564A3C1D27F055ED159DC3A81D6BD93CEF3FDCC5722F1658AF488DB4160FA97E20D5DBF16CBF6491392A469EE585403127D6DEFD434B3EE2EC6355CBE865166176817E0B3CCB87206E72DEE4155B834252810A7362DDFF9DB5ABEBB76CEEEE10EDF9C048479AAC5F171DA5A9E67BACC9ADE65B4D540E4629929EEF2DCB1EF6999682EA0A8966D551D2CC643ECBBD51541587BC2B0D16975FEA30A46043B490ED70E7A0CD3BA6C1A0ED4B1122361965F0139D3D45FE38FA9B7DE94BE4454D57975C9F83D6BC69ED644309C621176F0ED6A9D47EC5EBC18441CFC69852D7BFA4921E9FE409AAD5A67E6DB7C40F724F9DDA2DC982FA831FA09CA50D73B69E554127796BF5B9C7530C087667E3A4D488076B32D45E483EF59CC8D6C2FF89990006055145979369420647849406A4743E8355AD1B5ED56ED5D796C44289C1DE9F83D428468E79242ADFAE7BCB09667EFAC67E59C9E8FB9476D5E7CF55A4C1125054BAC8167F1E5D3F354DEB8AA7DEFE422A4C107330D07C4E1C736D8B51EA340EC94461B87E75F498ADD59CC607A47DB7190896EDF18632EDE519A0AC2657D415FED03E097A463D6C7127A25AFA34EA0617BD4F297DD37BF0A8DD2EDEA47655035F93193C68035BE223833FE08624353E7C3E52FA5335A2D93EDCCBB27E7109878273C5BD030B889A +ss = BCC9C42039A770E1846A38E37E1A5E7702300E9B29DE5241208BDA4B1D8FA98D + +count = 43 +keypair_coins = E1953800ACAA85AC02A906C72CB8E8D704E8D27820345F88F71E89C1F549AFCC97C65A12D87432F475509F11E0884FB51B5D970C1B6D2C87C70590CF41C16B4F +pk = 26AB73A3355199A1833A1268A37A087DDB57AB621046DB1F407C804C488E4196048CEB762B9024C2157E7DCCAA1A762881280715A1467E766DCCB159F4780A39BC4F4A59715700070318C2AE03706B639F79A8A81AF34FBF6C9ACE4843151AB5C3CC81AF08CE392335E4FA913052119904745EC68CF3502F4663BDA74522DDD61A318539E10A853BC90A5B06AA12018C6BAC4A8123719C567719CB723B420540EBCD84C2787F37A76C6C40FC983436C26F7FDB14DF17062BE752AF2C1F1CD1026856500F3831CCA75EFF7A08D4D9C819D295674550C1C951FF9A0155856C3CC143824556C09025D55B0DB7192D969926C18912BF5CA8629401B8C53E23832CEFDB369020583B360595541F48573BA1557FD0C1058A8CC5EA7CA7F092B7DC7B4B04490FA4E72A37AAC0E33B1746ACA327258D9D29ACF140C5F70B8F94A23195D60D30A498259C6F9D06BD69F82398953B4FD39ADECA972851431B59C9614B7867CB1228E2519AC130F003903D801F70BCCD776A9B916684CD89CD71723CA732A21FECBB90D547646B987155CF5425ABBB2406CDC1821AFA8DA120A540D1C3AF175032444E1FD85F43F47903665BE922636755B5E75A90931C66E89345F57CA4A032959BDB4521CB62BB1377DC5C99FBE36C71347B81A80B6B7251FAC3732475009A719F4374BD5FF01CCE4601E761A754E05756968F33FCAC4D6A540D93951D0BB4D0D838A3112872020C2DC67718888DBF408941B877EB6543432675C879AA85F102E608AEDF267E32D333CA9C3860F907F17B553580AEC75902EC304E6C7996EE34061B40A9F4F8BA2CCC55775490DC9C2A6D5C0134E809BD305D7445C9EBF7B89F9604146B2E55A1090597033BAB2A25A3886DC524F4908ADBE98DC2D74386806AD641712D9C23A19562E4AC7F57A86FC98663E455BD963C4E63D8471B504C14EB718D8BCD6475CC45687F55099F8FE2035F3812F081B6DF2A174999765CD69433E5312BE67698346FA1030A40943F8927B2CD8A1E2CF2514333BCE85A89A6A99D03C4A5C0B847550972F9D1448D1819B3582B99A50FF97C124398CFF30967013C4DC4D374379B4E8B037EB0E570AEC147A1C99CADBB651BFB576AD61BC5449C5737BC4BA4A01F24AAD80375ACBCBAAFEB564665A192211B4D6918260C1251EAA1014C6F41427465609310D8B665C6763639C71AD48019905CC0874BE438023936856017B5562A9EE79686BCB55E04A38EB9B3BBFC07ACD4865860A77AF3B5ACF7DB344F139F79D5953778124C2C92D29CBFEDC21678E54861ECA5CD350FA09B1365FB74435316F37386B9B510E2BC585DA30A71ECC7B9913921EC8D8FBA2DBC97807B693B1E306832507CAC90410E0576611BA79C1CA9C0B106D0147680790EC5051798592D3035AEF57A0174CBC70B435710C51695852841907D41A8180123A4D911787B674ACB513C84047BBD5851C3E83A8A046062C06BD84397858241C95B8D8D2A2C53038856247506065A70A5A29B701BAE1B488A68C2BF02472D86BCBFE263E7820902102C612747CD60344957A871C7774A0980B70B56F7BC45F8E2BD2085AF080CB923B55640BAB2AA2C30F206CCBAD17BC9F58C1CDA80399962268F2AE99C43BBC1FA7D8949CD772A745BD9AB018FD3F6ED02F32CD2BF845923 +sk = C842401604C8C4C78D8417C804C2723B14733044AA2755897F65987951218361A07AA84D6AF8A956454036B79E145C93B9D4B862146BD4DB824CABCB61FB91BC306F851C9E93AC266E3C9E9C939BE422B07E512D28503A6EFA9D3EA8861E39B1AD481B8AD1805A8C0D48179AA1203C2ED7BB59D5C8EF651281C77F83AC7B49EB997965B161DB025B47CE6E2C09EDD41F5EAB1C8B7B4D20783D60C90DBFE6AC387B629BE10351868186F6A0BF68905F8C1CF34303FB577C25212919533C7044697D9425BFB76BD9D367F43B2D3613351D95395F4C2BAE63B2A4608C69364F41E85D542A08F35B940FBC3B48F63360B50AA88259C7CB4634E5A34300C5957A3644F6AE381389B53210110329FC61519113C17E64782239941CFBB11A647B814372E313205844592CC3C17319B41FF21A0BDA3F5ACAC3F18BAD085C8F27B7758B7519316653BA9C253DC94CCAD37F98D00B9FE67E2A13662C77921E4A9A86C8089682811E53A60B1089A1038483E615E6EB109A3B7636E02A44C2C3A81B96D84336CF594D24172BE1BBB9C7B3685EA45E45B81D731B9B75CCADBFDB768119B20A0C346156CBCD5BB107A00A0E3C6E949B9DB0B4AE21026C915908C5F38413C648EDB20623F35B382B0CD5F4A8D7062BEBBBCC9E809BDBB5C84042BCE2E81BB0D795C6786AF95A7E7B0629F7978A03558F98709A86319570273BEA71986AA92560260D022569D4C98A85BB98AA198DEFF63DC6BCCD1E6032EBAB8CAEE5CF4717B17D89125C67A8A472C371153A4FC9045FD3304A74B983936060F42C80454A005342C1318A284BC5B9A71A39E748A94739536B517DAC1619C00DB64C81001ACBC2793F9F29B42214442FBA962F331D48C300DA2186D21A4DE61C4B5948C7EDD1B9FA5865CAF2280A81B9F7171137D6A678C92745B1AEB9DB686BA84D65F6BEABE332FF036BD113161FA068E74032CA5736D3EA3A01F1ACFE067DFE5A5B398575BB9B148EE6155BE2B4B67B348420CE758C5855102FD06A1FE8D347EF1B073F064F1F7926BE5B2343029E5B7468E93B8ABEC6BE231B6BEE714031E04ED23C6DA37032ECC00374706EFF7453DD931D80029382F17E82A85AD7A8B25EA97D1D2AA21238B25517008B0400281168328B02869889F7F142CBF1AE8DDBA5EF2713DE649AA9AC56229494DB211B90B96AE3B2829AE528C634110A3BCD355A243F3654295B0B79B9B7D43272321959B3632313AAC107C8B7AEB83172778B7B199E736307FDF5AC6AEB40CFE750B7227F46A00B9000880D405877B63FF6C616BF4A51CA11C863A79B0E099308B42CBB7997420008268A3B762B9A5E181DA14A4A92A5B55E7950268A9A83402889A98835CB9562A5A627750A5348B3398B39783009A081A058BBABCC7740AF00B8CDBB4E0842C7F14B47FF4CB424B6252CCCCEE30398023A9B50B4BB4A2C1FF0A007A0A54EAF421FC2113F0353C7A1DA6CBF3C7F5B448B86534FCE3B3B82C3B82C3420BCA7C865AA22461B3D95522E9792B37B78C5555A62A3439F3BA7646076111336079BB8352A286E542094BB58B07CB832E2B288021034ED4934469B1723E57E57E358942730196140F47658258A761EDCBDC046C08BB89726AB73A3355199A1833A1268A37A087DDB57AB621046DB1F407C804C488E4196048CEB762B9024C2157E7DCCAA1A762881280715A1467E766DCCB159F4780A39BC4F4A59715700070318C2AE03706B639F79A8A81AF34FBF6C9ACE4843151AB5C3CC81AF08CE392335E4FA913052119904745EC68CF3502F4663BDA74522DDD61A318539E10A853BC90A5B06AA12018C6BAC4A8123719C567719CB723B420540EBCD84C2787F37A76C6C40FC983436C26F7FDB14DF17062BE752AF2C1F1CD1026856500F3831CCA75EFF7A08D4D9C819D295674550C1C951FF9A0155856C3CC143824556C09025D55B0DB7192D969926C18912BF5CA8629401B8C53E23832CEFDB369020583B360595541F48573BA1557FD0C1058A8CC5EA7CA7F092B7DC7B4B04490FA4E72A37AAC0E33B1746ACA327258D9D29ACF140C5F70B8F94A23195D60D30A498259C6F9D06BD69F82398953B4FD39ADECA972851431B59C9614B7867CB1228E2519AC130F003903D801F70BCCD776A9B916684CD89CD71723CA732A21FECBB90D547646B987155CF5425ABBB2406CDC1821AFA8DA120A540D1C3AF175032444E1FD85F43F47903665BE922636755B5E75A90931C66E89345F57CA4A032959BDB4521CB62BB1377DC5C99FBE36C71347B81A80B6B7251FAC3732475009A719F4374BD5FF01CCE4601E761A754E05756968F33FCAC4D6A540D93951D0BB4D0D838A3112872020C2DC67718888DBF408941B877EB6543432675C879AA85F102E608AEDF267E32D333CA9C3860F907F17B553580AEC75902EC304E6C7996EE34061B40A9F4F8BA2CCC55775490DC9C2A6D5C0134E809BD305D7445C9EBF7B89F9604146B2E55A1090597033BAB2A25A3886DC524F4908ADBE98DC2D74386806AD641712D9C23A19562E4AC7F57A86FC98663E455BD963C4E63D8471B504C14EB718D8BCD6475CC45687F55099F8FE2035F3812F081B6DF2A174999765CD69433E5312BE67698346FA1030A40943F8927B2CD8A1E2CF2514333BCE85A89A6A99D03C4A5C0B847550972F9D1448D1819B3582B99A50FF97C124398CFF30967013C4DC4D374379B4E8B037EB0E570AEC147A1C99CADBB651BFB576AD61BC5449C5737BC4BA4A01F24AAD80375ACBCBAAFEB564665A192211B4D6918260C1251EAA1014C6F41427465609310D8B665C6763639C71AD48019905CC0874BE438023936856017B5562A9EE79686BCB55E04A38EB9B3BBFC07ACD4865860A77AF3B5ACF7DB344F139F79D5953778124C2C92D29CBFEDC21678E54861ECA5CD350FA09B1365FB74435316F37386B9B510E2BC585DA30A71ECC7B9913921EC8D8FBA2DBC97807B693B1E306832507CAC90410E0576611BA79C1CA9C0B106D0147680790EC5051798592D3035AEF57A0174CBC70B435710C51695852841907D41A8180123A4D911787B674ACB513C84047BBD5851C3E83A8A046062C06BD84397858241C95B8D8D2A2C53038856247506065A70A5A29B701BAE1B488A68C2BF02472D86BCBFE263E7820902102C612747CD60344957A871C7774A0980B70B56F7BC45F8E2BD2085AF080CB923B55640BAB2AA2C30F206CCBAD17BC9F58C1CDA80399962268F2AE99C43BBC1FA7D8949CD772A745BD9AB018FD3F6ED02F32CD2BF845923E3EC3671CC7675A321AF8584A0961101C04A432772431E77F5740BA3B2EF488D97C65A12D87432F475509F11E0884FB51B5D970C1B6D2C87C70590CF41C16B4F +encap_coins = C068B1A68F7F29E1A8313876C4D37A23167E9BB9EC5A47013A5A840DC77D4BA6 +ct = 77DACF5595D8D8E213E084DD83D7A343551924A0F4A522AEDDDE51E1932A6789F9268DAE67F6AB3FD1181635520C5D3B27BFFA75882FE84C9DDE4A62878B3AD98412DB0907C758692E229A7692E7F8D346C7058AC7AF03076269E8C13F8A3088DB27BCA936AA85FEB6C3868CE4E76BC2529179B55C5BCC61744799EDCCDBE9EE95389042944CEF2A5D4B1C8E22788F9279010974F57188F3D94493979EF58AB95E89574C40D580F7353E5B4F202E61328CA922FAAEC93F09376183A09AFD78320FD690E1AE08CBA37F4B8964CD8DA1B2C45F62CCC6CF67C2DECC0F41DCE462424364F822D176F6DF6BE176E293DB16990C207A36D7C89EEA27A35C8849A232093D5179C63410F94334D37F1B81F80565E71A407E6C4242E18EB388E7E11CB25D12786198837143848B6D3BE1F621A0E420463B35E0B71480066B4E1925A264A87AB6603EF4ADCE0975C27172B8406FE3DA9870EEF93BD3FAAAA34E415F0236E1497E0146C91BD67144179488B28848D43E9C546E2FDD92DF5CABB6F1DAC422307608DD9BC8EBA71D0AA4FFFE0746729FDBED5A4F0966D6ACD08E816F6BBC31835E073A2C04F80DA395F672C39F2316EC9F3754C5CC38C5BF743816FEDF34E8F0A74AD5755B3A68E47479569CDE78C58E31379F5BC6D204741F2E3368C494A26AF37782F76B0D7104D1A3CD50774B248B7A9F4AEEF8F049B83EC294AFB9342121AB94A06136FA13462F690847781F27DB608839298CF49ABCBD013461AF42E2FB1F998D77C8255A6B82D11E1A298CCF85199FFC33A58D50A97A46471F3E591CA4B5D7FE95F6BFAC54C748EA8BFDD64BE3E49E9B18C0A996A55E3DE3200BED6AC3DA708FDC85E36213219DCBB8F00516285B374488AA8592BBD7A1B3878064BED8B6E1367BF0476FB8A1586F241C49D66B73F490952664A134167500720F6D9FCFFEF3DE98E450C3A44846C6AB4F9C49E9AFF15F8F11B407D02D21B8381F8F0A37D74AF959F3B24D49A480796E19700B6806060B83393CFCA74193123013661110C0128D9D79F40636246D69DFCFE9CB9ED4133F93B90FBDBC662C7B240D35863870AD58A2758E810A94A11D652A6389C9C8D8767CBEE6E02CBDF9BDA374B96675B92BF07790873D41811FFCDF33B80751FF8229CE3F1C24118A24D98116D8400A29667B453E8CD76A5ED10264DF3A4BE9AEAA9BCD8D5E0306F11474391B6640B3144AA4726A1B907B5A969E904B7090E2BC42DF405E4F2CCA2BB02FE3E7C4ADD0F6B63DEFB6A7FF6CC443A11BA7B1B31FB75D4BDB1D52F9A8D4F8D8BF9F7A5C5B18CB9DD28E43EBCDD2DF8AA97DE006B0059160F7EEC9B19B70E44D1944D39E0EFF758223B9DFF954B625AE142E452BC5338AA1FBD4885972B7A56DFD6F4519ACAB96F3D218B9235BDF7CAB218779E11CA70CB7450F5F3301D24D6CB7CE2C58F90DD74C9DA66F9BD1C11E74479C6F2DCC26F7BC94130B10CA618B2693E76A0CB0131A99274F804A90A1713116DCC0D528D3766FEA799D7E8E575B20419FB61BFC +ss = 78A4EE59D4AA5D7C68F22247A6D1D512267C2700E831AE979B460011906DF4C2 + +count = 44 +keypair_coins = C719F9B2D16399B7326CE4ECA30DABEFE8FDAAB18E9F6DF888B0A134EF355570A49F3B482A66256D7F667585925CB7F58894E42660EF2573AE33655C231DFB0E +pk = BAC16E6E3C5E5D9C8CA207A5C77C7883B917FE0463D3101962B802549A87BF39B9BC7A30A5B654C9C96B14BC61506371E4768429DB8F7C0A6204903B9BC9311C66B907C5825621B7EBFB52F6C7CF75C169C17129595631A2FA95920317AAD4CB338329ADC69C6795158558638C474710C78763E012240CBDC2E586ADF93C028522321A94CB766F9E983FB5110A10476ECBA92FC0C120CC83632409940DB249EC569ED5740471C86623B06962910307781349F342C759886F7C376CE708091019FC407EEAE76409387D151C97CF7270319143471A84994BB596F9B5E1A78D33428740FCBAB415C575E478DB4B4E30771802E409B8C1AD4ECC9CEC1B7396E664645CCE83A40D512684E0B2750D8445D2180BE5B4CFC09BC9FFFC8D6E49B49D68C4D849B584512CBB55283722CED5566149811545609A4C5459F523C1C76667859760E690385F65768331B7654C30B8C0B26F2B8089A3C5B4F21EED42179C54AE61D22736512FA3AAC6EB018946A47CD79ACD545719C829B304477541EA92B10A1CCAE8B36BA83D5AD83083FCB51DF653CE899227C52581699B7150456CFA1910212F7678056A33755DDC7D0648164AA297F196057060009DEA8D87E86B6ABC0106A5536D7C83933AB12E294B4F50870FA0BEA16AB49B88A60BA7790549CCC0E6571E81875D5632DD8A5627E48E0395BB4C243ED9D53CCE7B591949408D2C87A5E295E3C3231F4132E1117B835529456A53D3D748C16280F4D597573685B04780F611094C665C66164A1323C290BA8C8B1031B142A3B53062AD5C59D8D112F9926E5AA591ABA711EE2BA1509AA09B86C60A969020D74E238B849374BCAE7788FAE61296D5AC7AD0927EE30912C4287E3981B7851D5823295076365196BFBEE4A3CC189020254F31B06FD8D70C43A94CF380C01936465A334FA59B3D39296305DC8B775269EE204639BB3A30AC437936CBD734A5C6477B2A451EAA0159E571BB12473B77698621D5247EB5012F608C6F070A67551F6F63ABE87BA12A56B2B2DBA44BF72E01C9A2C490579D2C103CE91A841C4F4B3AAFDDAA0CC3D33D31EC3FFB4A3F9AB87F93494720D386BB13CC482A4ADAC46395479D1421AA91216BBF56BCECB89F11588B4085A62BA0A47EF9A184C2C9346525CE006CA4819857FAC8B1498C9CA1222175CA5B01B6BD502F69F8977A0B3B04987A1897A8F2F20DCDDB098AD070D15C15C099A5672C17087C6B58245BC25C382ED3BFD5BA9B8E48932A27546A089113F37E8C85971FA10D465970D61446F106CCA6200F85EB2DE2947BB4EC57E58C1F7BE6B6FBC025A4A41EB05C516578AE9BA4C197B692D20976116BA35660CC5B612B616269A837012230B65F2913E5D0362D0B510F1272716A4DD2832D3BACC914929FF33354C01217D8A0745C9263B5D80A4F497D99D98A4D895B59A59A1DC173CA6945FA54C398F351C8C3AB8D66CB8971A68157CE3CE82104094FC83C7306D242F1F0497180842BEB8E126988C5A830D2A39C2711B033490FE1D53E432C7A453B4CEB05A5644253797135231228F246BC6A1445EFC16B2F2BC674327A62EC32DBC209F2C4A5C600920D2856DC34549BC4656F7953E697CEA6F2891FD65321F89BF2D90CF3DFC681C2FD81792135E1938CA482EF3C253D8976201852444E +sk = 0C9C633FF39D1C6C29F8356AA02981DCF189D6535E2AC00750C30B111A88B21024E4823E7D543614F30112F7C78F1679DAB68B71AA992538658FD0C8E2984ABDC09647453B3FD99DD860238CF40C9112A7DCB57E06540148EA4AD6F97020474AFB65C5C67AB4FDB1515C6592941B1E38D4097155BD194B5324F464DBE678ECE9B5F8F57822F87ED7F3A6B470CA3FEA3314B4BB404CB66E3BBF8F2953F2682CDB65CFB47906B3962443775796564D75CBB4B9BB24A8A98D7723269E8204BA89782F974AE591808E97CB2468252C8539C2454041C9232F33B43ED8359DD6856C98BA4FC09E92F9A4AD497F8F1159E159B5AF795AB09C20AA753931F47764B6CBAB6968C7A779802B469ABB1E7F677A0A485FF5CAB2F028112EE8C35152703BB14127B33FB00A0CE21CC607E49A73544029BACA215A67091A9AD89A408794C4D2DA78557B1D31686C6B4C3749958EFC60891F12C9E0B7C19613823EEAB1D8F672089339E46C16DAF0C3B7D53727605C26A723518A2651D8762AC373817BBDDBEC1EBCA2CF91FA2A66896C55A4C946A791E5502FF19AA21CB132322BBFD127C10D87563028BC49B222E5401ACDC81991828E4C111A54566E5724B40A452C0F4632B7B85F0445C881938134D516113560B0065BEB409FCEB25F796C0BA0AB190FAC0214007916CA93C2ABB11BD88553AA34C3C518BFEC423728C86E529C300A1F70225F2F683911040FF9405614E1BAAC070E0E90337E134E3C93081514A937F9798EA7B57B3A3A0B829A2697B0778C802116C067A5C368576395C43D33882F97C770519C16426284E19BAC180A2A6CB85D65B1A115316B08541DC231C123C184E82C691F20749A4B92F2D1040D09519DF7678AC282FFF9CF5124ACBE04388CCAB61BF71B87AB3B830A3EF6700A68B06770012424031E89A895AE81C8ACA9169D6495CF01CD8BA0C27AE132C16AAB0EBC4B13ABB37D67CED10A0246E87BE1233FF09A6802F6371858972D21B48D410D8CF3A8A1E664F62028CF851A134037142C20E8EAAD7DE32581B39B5D93221CF72124A73DAA2B61F3D7C8F25A973A815B351206800BBCBA60AC8C2A86A7758B38339751C23EA5523D84EC982A260256C69AF739349D206CE9C9A70DBB0A950A0B63815994A6878711578BC22942914DF8489EC5A09258EBA796E8A6FF5483A71887E55783A94201E5B88898870E67D32EAAB132519624F4B28F22E80903E591331CA792C0CEF824BC62168BE6EB8F7BA299BC519B0C370509E38377F171761521F8FC882D1B8D0DB3C2109A43D1754F75529F7B071B7492B753688FEEF12FDA217CCBA484AB79192B7933781811986430BCC010B50A5621EC15DC7BB545CABC77C336892A0DF4436E732B905D70769865CDEE0A9906438E9D921F521862A3227BAB93202DA0CD19F6221BB68FDA8155AE38132CF2A30A4A5C3DC0B17DF0016FAC3BDD56CD9D06CC8F2C6B4AC41207FC1AEAD0CD87506CAF5C043941513F0A4ABF725818C7686F0745ECE93C23F2951EE263F51A3FB3630076DCA4EA80A156DC6B4248246F638024B8782C9757E076CEAF18CC27284C321BA91766454640AD32D97E65650B39C9B23FA80405F8CEC82ABF70EA4FBAC16E6E3C5E5D9C8CA207A5C77C7883B917FE0463D3101962B802549A87BF39B9BC7A30A5B654C9C96B14BC61506371E4768429DB8F7C0A6204903B9BC9311C66B907C5825621B7EBFB52F6C7CF75C169C17129595631A2FA95920317AAD4CB338329ADC69C6795158558638C474710C78763E012240CBDC2E586ADF93C028522321A94CB766F9E983FB5110A10476ECBA92FC0C120CC83632409940DB249EC569ED5740471C86623B06962910307781349F342C759886F7C376CE708091019FC407EEAE76409387D151C97CF7270319143471A84994BB596F9B5E1A78D33428740FCBAB415C575E478DB4B4E30771802E409B8C1AD4ECC9CEC1B7396E664645CCE83A40D512684E0B2750D8445D2180BE5B4CFC09BC9FFFC8D6E49B49D68C4D849B584512CBB55283722CED5566149811545609A4C5459F523C1C76667859760E690385F65768331B7654C30B8C0B26F2B8089A3C5B4F21EED42179C54AE61D22736512FA3AAC6EB018946A47CD79ACD545719C829B304477541EA92B10A1CCAE8B36BA83D5AD83083FCB51DF653CE899227C52581699B7150456CFA1910212F7678056A33755DDC7D0648164AA297F196057060009DEA8D87E86B6ABC0106A5536D7C83933AB12E294B4F50870FA0BEA16AB49B88A60BA7790549CCC0E6571E81875D5632DD8A5627E48E0395BB4C243ED9D53CCE7B591949408D2C87A5E295E3C3231F4132E1117B835529456A53D3D748C16280F4D597573685B04780F611094C665C66164A1323C290BA8C8B1031B142A3B53062AD5C59D8D112F9926E5AA591ABA711EE2BA1509AA09B86C60A969020D74E238B849374BCAE7788FAE61296D5AC7AD0927EE30912C4287E3981B7851D5823295076365196BFBEE4A3CC189020254F31B06FD8D70C43A94CF380C01936465A334FA59B3D39296305DC8B775269EE204639BB3A30AC437936CBD734A5C6477B2A451EAA0159E571BB12473B77698621D5247EB5012F608C6F070A67551F6F63ABE87BA12A56B2B2DBA44BF72E01C9A2C490579D2C103CE91A841C4F4B3AAFDDAA0CC3D33D31EC3FFB4A3F9AB87F93494720D386BB13CC482A4ADAC46395479D1421AA91216BBF56BCECB89F11588B4085A62BA0A47EF9A184C2C9346525CE006CA4819857FAC8B1498C9CA1222175CA5B01B6BD502F69F8977A0B3B04987A1897A8F2F20DCDDB098AD070D15C15C099A5672C17087C6B58245BC25C382ED3BFD5BA9B8E48932A27546A089113F37E8C85971FA10D465970D61446F106CCA6200F85EB2DE2947BB4EC57E58C1F7BE6B6FBC025A4A41EB05C516578AE9BA4C197B692D20976116BA35660CC5B612B616269A837012230B65F2913E5D0362D0B510F1272716A4DD2832D3BACC914929FF33354C01217D8A0745C9263B5D80A4F497D99D98A4D895B59A59A1DC173CA6945FA54C398F351C8C3AB8D66CB8971A68157CE3CE82104094FC83C7306D242F1F0497180842BEB8E126988C5A830D2A39C2711B033490FE1D53E432C7A453B4CEB05A5644253797135231228F246BC6A1445EFC16B2F2BC674327A62EC32DBC209F2C4A5C600920D2856DC34549BC4656F7953E697CEA6F2891FD65321F89BF2D90CF3DFC681C2FD81792135E1938CA482EF3C253D8976201852444E79836213A513BD4CFD42ED281304E3EE4560E4E0C60FA53781F83D5BD2BBEA52A49F3B482A66256D7F667585925CB7F58894E42660EF2573AE33655C231DFB0E +encap_coins = D5668FF18683EEA789415D6FA2A5A1031B2980B1E641F521D5235D50E04EAC25 +ct = 650094AAEFC36C819697DEDE7A27764E696E2BB8E421149C225E6EB67310052E9F89DD787D9188C21CEEFF31BAC396F34428879B3490E8D7C4FA71397D98F50F4AD26E2AF6A00E7C408B12A77A1E3A25D5B1817D5218BFDB6FB9FBF6B3FD209BB76D0F422A2D1A5A2FE04CF3E8E08CE828C63D14BE05956F440D079B03421D45E06C8D34697F4CD3401855057EB68A76F7C6E73767736140296B3B3C467FDB51DFDB53D57AE8ACE78FC2D36EBB4EDC2B82AA679201E2F81A9DBA111B0F348D7666580EF56246446E3FD33E5A6960FA19DB85D4B93E1B593F5BD6D6E7316304B2CFF7040C946B6D85EECB8C64B090912BB8930E2C655736A1AD56EE649E8D4E54104AE440AF0E082F7634066CB571940A6FD19F3CC9D0E12AA027CCBCE27ABE0BFC70506E403BE11A8840E78144EF0CDA1E585EB3328D1A958E47366940FC907EBA3930BB8241853FF804B7D3A27D89F8067D5A139C1A41B9BD1BDBFBE94499591BA27C681CC62404448E344C3F6D6CED6AD242B6D3AFDD2C98A7AF02632F9F0F67C7EB687C87C1B74EF4C1A818D0EBADD71082F809EF7EC65A731FFBE76AD33F83231AC086329C10B018BBA51F897E081F8227D734F7901095F8AB9208E1804F6273D1ED43D0A828B4A2D85EB776D70B2911214674375A81C037D90D474B8CCA3FA484ECF55AD901C559CA9E27EBBD89FD6BAF104E0CD40C97D07A6F554897BC3200A0CF7599FCE58D14D39992961E76ABF30E8EA78AFE52892CA5FBDC849C0C8090083B70A4A86A0D40343555A99A1DF2913A1B6AC8AEEA58C8B2D3C7C417D241500ABD5B59F93B908C5838E51A584A6FD5023FDFE83C9A380A0C6450AE9BEFD9BBEE95E25F54BA7C0DCE3B34742BABFA21D343390C2D29ACB9A8530177697BCDDD4BD7C4BA52748785AAFC2FBF1CCD3F11661094731A6CA83FA2C3620245F76D8A1618C8567D5A9C2AB65B2DC8E34DDEA837A64DCEE639D34EC95527C896398275E0D5855D19151A25C0F2A0C305D9F1EDE3A2C1380A39B5ECC35AA53C80888421EA72779BBF2278A7C974EE3CE6933460EF9FAE955DB8B9875BA2ED2E5DE03F81DBFCE57CCECB49E6C1BB8CC182B062D84B727D57136785BC8FF1223BAEB36FABE1ED5B6F65467F8532FFD935C8ACA2AA92544E848977C2D175285A5D8A3B076E3BE3C9F12A6F72341912C2DC4F6F326976AA6E577B4B60FFAD0C8F4FE1F0A3F36750F53C4BC981CAB867C081FE8927E09229385B290C1F711570EC85C2624215DA615ACFF26D685F28CDD737A093C0840F7290174A2AFEF8EEFC64A219AA38970FF8C5A3C01DA5E1D0A6E5E0CA13D0922B0CC6B5FCE181574D10591E291DA245F0AE22FCCEFFC420E73D3A23B155EE7C0D204F9870A33D6F9B5EBA9D6B78A03F5FC14C2A3762D006B9ED43AE8DA4600E2E909CF2701C02CFA6E7E5C12BF8E166A7D7E886953DFAB3BE81BE6B439F7D1748797C342B737DD253279EEDD3A859117CF8EB41F39490209F67C8E5FBB5D2526C7B127E9A2F5E3940ABFEAEB06B +ss = 9D782EDEBA3F818256F43AA326EB1E585766742B7B043E2E72436AB5416FF577 + +count = 45 +keypair_coins = E9ACBB774BE970206C3A738E243B420805A509FA59FA902044BE2F0D013650D21D9667C03155106785069387CE7D25CB09C5516D52817201D6653F20E775B453 +pk = B873B2397A7C7ADA2F4B0B589EBC97C50174E4317ED5D9CF2878C924937BD258BACBFC83283A218D443D8EE43F8CF3C64459B189E6B3AD100A6C6A3EDE9916F89B8BB67CAC332C0519F502A4C427F5C9AF1A16A59A2122521A0C624A20149765E986339ED63567CC29CFF15D7E8AC026C96F08D6AC4E057DB4E66361B18CCDC3BCFFC300A996AB7346232DB7310662C75B39AD7AA080B23763ECE54960397B8DE836071B8914D56F95A681ACCB8FCB9529E5E4CFC2EC0601F7B0B291524E180AA0A69FA74AC2F17AA88162C481F51543A5A527DA5C42B59F9A72B14DC91574B51E5806ACE3F022D1F19E3EB621560478BB70BEB8407719A01E16313D2F0C785E3B9886F679ACFA465BA974676C0689A149AC04996F4132DC4974F2FC322B56115A64B0B5DBB8DC71869CC655DD61390B032F062B024BB71505640A41CC6174B68870DA11EAEAC28AD061F3ABCCF4E12231655EAF9285B205251EA69371D90527793495835715AC005868A78B1CAE80025426848C4AE869B52034BB266E1B97480AAA7A31E384780442D9933FDB750EFAEAC0BFA802E5314D28A17D374CAA05B46121E16362E8341DD923A66872DF3C942177B58951C40AD1641F53A53D8708EBCC22AAC67EF262B6155007DC6880A1F45CAD3A5312B282055B1E0B181D9B396591FA78DFCCB9D6A92D5CF8189C14C68CF4238654716F0A1E4F2542CD35A7E4E2185814C1F5B16D8C423213C69D5958C46960B8DF589C185087EC5474DF3C5112B5BB6BBCC6AB7160ABDC2AB28801D775CAAFA049479A837CFC8847763559EA86239889385BAA43A2848B489087FB43AA20ACD7AC05606767798500F9271271E52032F21FC2A82D8D15BF774771B69C570EC488053743DC5398C4363AEB3932A5C54D16F45A033386DBE3B2D0A851116C2CD2FA4671B95CF7E60BDCB4976A2393647B714031870B1A6B2D486A5CF2A8093B7B948C9418F3A27F6296EA12336B8A6DD5A5715CE9A70DC6978038369A10332E3AB6C2971961D5C66441ABC3290113B21C46E96C509AAF09E658D9B77928935B9A122E42BBA23F920B58EA48F3F19A7924128669C09E135F772C275E55904400495153A691794A8D182EE1314446371501E87C41A944F850C9CD288CC2EA90A4E27864C79E554CC5924C4CA9A217DCA424EE8B76E49993AE4B085E9809EAE27401EB9C6C794A67A31705876243478F86D5B9F9CB3295422816526439950A412B4D1D28A70C6B9794C959BE155AADB39E00B418EFD0664B08843D20B71C547F1468C5FDD92B9D818336282F34F19B515946A7961B5A9319D9444CDC1ABA840CBB57272E4DA4AB20FACD5FE4958A57C3C812978FD772C2862DEA8B60B30A601B692DADAABA0F361CFF27C5C734A42265341641B861B7899CB311E7E0ACCE396BCE2809F24289C5361B91CBA88493991987C0ACA3B070411481E154104C15780ABAFE725DD3E1ADF00BB0EFF4A29298AC10C63FC0669DF6379294AABB4588AAD2087C9C16C9AFB654F0C9C213D79CEE1A843A84742D574DE252A4F24795E9AA631D5198F07511160300A2E02A402B4CF8AA556CE67BD341307CE5A1EB6609EFEA3F066379865489701783B2C95EE6967F0893D44D76104BF396577FD719D69EB306117F3ABD65385A87AF12D1BB6D0433 +sk = 2ECB7CAA911A2F615A13CB82E5A8BE85E1C2BCF06C71B9696682532639B57A91537E470E8514390949CFADC80B0E5C3EE3ECA869E22250560D8896B5F6EB0FC6EC0A6D01760C9108B7A26CD79039BCB3CF9EA0432FE0581626CFEDABC12F758B407C8E9DFA373F45C377FA6D41A7205A7322B737CDABC8114DF437E864C4ABBB3DD084964F971B36E24406A7A7544A260D917C0EF95CCF33B1833BB6D4232BFCE37B96004ED7779258FAAEDD9ABAEB5051D8F605EB85BE0F9599FF28B40587488FA376729685A8336C0DD213F55447E2C4895111B98E73BD783B2D08960ABCE22F6F894AE5456577A81156C66F6F1BBEBD9C04D1AC43B77936F13060D3305A3893A825781E47928FC492ADC16B31B2669882FCA10581603B400F297B7FE7525D20E82958099B2D118ED3A14A8A915731525C470B7852A9B0EF04B4A3B0B65B4C5D7D486366175540A91E752993BA979D8A446F94088C7C3A02FD5C051F900A141957E63CBD71AA012DB60A02B3872F3A623218A6B1F628FE8580E8725D9FB647F128C2519A8A0CD0649671616B462B83904CE621C95FF44697CA71CE930EAF0B28A6448A1C6B38C14800427683B71C954E49B6A3B978417B78DDB1A1B9729B89160B4C7BA49F312E23632460913D82D655D6E00B5B17A635827D8A0781E12A68C536AB40909F46A7173FA9CC9990371DCBC0B8A433436133AC123A73664A14E1409B4476AB001C17F26EBE968ED8C6A9D491B92F234499435E2DF615C849BE5F6422C8BC9DE8F148A7C0713D93642DC852B33652287010F02B1D7B77972C797ADD3A38651B4C11EA968CE53F10D38DF4160101FB0EE557BCF5B3328E12150A7C0D769812ABF2AD2C1C7661844E6B34B25E7A30EC64B6E7D4282F48344BFC6F33AB3C428C76705CB9B1E9637721C9EE60874017013374082892B4AF174749041C606B3F6690146BF1B0C8D2844F80594F265A8FB639E209C9B7FC418A230AAF340BBA34C1C66B7D570918ED6CAF8F62768620058CC7CB4FE1C762AA96A5015B82216E204C5821022CAA84AF9B12B9C9BC683747A2724C88E650539779742EDCA6A6A6C5F5D68FAAF73D4CC7AAB9B105F3A1B46CC96C915912E807AA6C841F6BE63812062ED1D07BC9164ECCEC7E6662056313CC32F63C6181CF3343ADC9073888D5756F508D65025BF6490A5F6B164A942466E60C4410C72AA69D2CA10459B890A4CB22A7613D44E70AC96ACA21169F932A6134D27A6C05582E830C0BA137DF060C6249B360831CC6B993E3D455C2E61694B11B520C64078BB552A65A3BAB407D46C0EE173BBB52A95C7CBD8612380FC0CF1655C8E691BB0493103EC80A5FC92B4951A0D78768504284AD52580F16247B3C44AF0A397F28CE3D0C0E4D34CC48B26B3998B060F2A9A013889685446B6281B3341C08E8300A013390A881A3A4937B412BF4745B069ACBF5315B9955AA4999BA827BCCBBF776829291A9067272059104522D69D1834886BDE76C078A6061305833FEFA710EBBC0DD0729493A285ACBCF2708CF93ECC76B85691E20BFA4379C8521420C231F68429BB5C76E69378F6EF3475FCA5760A5BE829C2B4FA955E0E0931423B0A615194C26225BC538E2DB29B873B2397A7C7ADA2F4B0B589EBC97C50174E4317ED5D9CF2878C924937BD258BACBFC83283A218D443D8EE43F8CF3C64459B189E6B3AD100A6C6A3EDE9916F89B8BB67CAC332C0519F502A4C427F5C9AF1A16A59A2122521A0C624A20149765E986339ED63567CC29CFF15D7E8AC026C96F08D6AC4E057DB4E66361B18CCDC3BCFFC300A996AB7346232DB7310662C75B39AD7AA080B23763ECE54960397B8DE836071B8914D56F95A681ACCB8FCB9529E5E4CFC2EC0601F7B0B291524E180AA0A69FA74AC2F17AA88162C481F51543A5A527DA5C42B59F9A72B14DC91574B51E5806ACE3F022D1F19E3EB621560478BB70BEB8407719A01E16313D2F0C785E3B9886F679ACFA465BA974676C0689A149AC04996F4132DC4974F2FC322B56115A64B0B5DBB8DC71869CC655DD61390B032F062B024BB71505640A41CC6174B68870DA11EAEAC28AD061F3ABCCF4E12231655EAF9285B205251EA69371D90527793495835715AC005868A78B1CAE80025426848C4AE869B52034BB266E1B97480AAA7A31E384780442D9933FDB750EFAEAC0BFA802E5314D28A17D374CAA05B46121E16362E8341DD923A66872DF3C942177B58951C40AD1641F53A53D8708EBCC22AAC67EF262B6155007DC6880A1F45CAD3A5312B282055B1E0B181D9B396591FA78DFCCB9D6A92D5CF8189C14C68CF4238654716F0A1E4F2542CD35A7E4E2185814C1F5B16D8C423213C69D5958C46960B8DF589C185087EC5474DF3C5112B5BB6BBCC6AB7160ABDC2AB28801D775CAAFA049479A837CFC8847763559EA86239889385BAA43A2848B489087FB43AA20ACD7AC05606767798500F9271271E52032F21FC2A82D8D15BF774771B69C570EC488053743DC5398C4363AEB3932A5C54D16F45A033386DBE3B2D0A851116C2CD2FA4671B95CF7E60BDCB4976A2393647B714031870B1A6B2D486A5CF2A8093B7B948C9418F3A27F6296EA12336B8A6DD5A5715CE9A70DC6978038369A10332E3AB6C2971961D5C66441ABC3290113B21C46E96C509AAF09E658D9B77928935B9A122E42BBA23F920B58EA48F3F19A7924128669C09E135F772C275E55904400495153A691794A8D182EE1314446371501E87C41A944F850C9CD288CC2EA90A4E27864C79E554CC5924C4CA9A217DCA424EE8B76E49993AE4B085E9809EAE27401EB9C6C794A67A31705876243478F86D5B9F9CB3295422816526439950A412B4D1D28A70C6B9794C959BE155AADB39E00B418EFD0664B08843D20B71C547F1468C5FDD92B9D818336282F34F19B515946A7961B5A9319D9444CDC1ABA840CBB57272E4DA4AB20FACD5FE4958A57C3C812978FD772C2862DEA8B60B30A601B692DADAABA0F361CFF27C5C734A42265341641B861B7899CB311E7E0ACCE396BCE2809F24289C5361B91CBA88493991987C0ACA3B070411481E154104C15780ABAFE725DD3E1ADF00BB0EFF4A29298AC10C63FC0669DF6379294AABB4588AAD2087C9C16C9AFB654F0C9C213D79CEE1A843A84742D574DE252A4F24795E9AA631D5198F07511160300A2E02A402B4CF8AA556CE67BD341307CE5A1EB6609EFEA3F066379865489701783B2C95EE6967F0893D44D76104BF396577FD719D69EB306117F3ABD65385A87AF12D1BB6D04330C2E803C2872400C49E1BB10232946AB939319E84FF32CD354DC15D082CDE5A31D9667C03155106785069387CE7D25CB09C5516D52817201D6653F20E775B453 +encap_coins = 07B6B69B60DC15A90690B3FC53E8A4655275E0A1A502551D8BF2EB337B1CD2FB +ct = C38DA83A5586D8B9EA311F66B07406A1963C8CB892558C3B1EBF5ABC50B2BE5B2F9A6E75A57E77BCC8D98FA51B48B432D2621A216041148D8AC0F60350CB67DA0DC21AF8CE9F4F38AFB84F858E95478B3F44C463D2BC6209CCD76FAB82C18BE6F22ECF0C1F579F4F26DD775A2086BF4EA8A6DA9E56F8C6C52A80AB219C68F9D233B1119AAB5EC530F1A32E46C83C8E1D518B0FCAC439FBCBE00C5BAC4D03E48BA509FBBBD4FECBD4BAE6F790BB9EF2016974482AD41B30A911ABC0117ADE46FB47F9FB28C2E320B01747EE832C981AE1D1CFF2B2CE797D8D39B1E04FE807874301194DE85CD058CC2157E54B0EED9000A4E05FEB8104687DDBA10C0CE53A6BD703FE4085A04D41D06B683202CF31D349637D5E55AD763983E6B94EA481BD43695B473CE51FCAF3AE8473D16DEC90F38C93A73151FC771EBC955114A47CDC504904A1463DBE3213FD4BF108E679E081358CE5647749BC8AC8C908242E868BAE25037403054CE2806F2FAED565AC2A47EC842DFC43AA604EFBAEEF28307C037FE6E2D0B27082654608324A4C8D298C7B9A3DF141663E68ACD4CC0FAFFC2710DBCC4FBE7F807FA08B5E35D5741C2005AAEFBB76780BE87E67CFA9676939B0EBD1554C41C4D11622B1EED2B6C65D293FCB5DBF01612638C979C75FAC30421E298735837920FEBCF677910A964B5A5B745275D608396D6CD133D1203ED72843BE0B7D6EC79622930F8D00CA179D22B99AE280440D3300D2E0EA449A4DD84FA1D416E866C8B37A00768B32E343733D2DE5ED89BECAF537A246FB7F276418C434ACDDFE2225FC9B53FD84763E2B42E4ACF57C24A71CFABA9BE42490B419EC000E53D1F6FF865E77AFEF45CEEB2C526260B03FE779E0DE8CED818AB17AC90749C9324BB4EDFCA5411BF6758C32B572185B76AAF5853810B0AC6A7C99005CEF58481F359DECBE58CF5E8BC04A45251E9FEC674DD33BDA92D5235593C83D6B389D086A5D859DE46FC4A57F2BD0D0560AFEDC017FF9FEED8A8E727E4454185CD339FCEEF6F81000661DECFF0A175423337CC32064E5CD8810D854741211AD68ED7C5D574E962989173A9B24DCE6795FE1D57699AF00D4FBE3F2253A1246D3692BDF8AB4B8C152DDF33356E75E18197889934CE029813A465E6AB5B978CF2B1303BF0D4716773955A2A5E3A7E5C1043E03760EF077F77A66AAFA941C05203271FA49E4F6E76D324EF463AFC2179A0AB7C2C269E9096AEC415E19EE7F68B228B4B05191AC549A5F37B465CAF1E4A24475BE16FD5C7A74BBFC416D7F98068A844D2F50D108220AB42FF032B00FEFC18CB887F2F3E922C49CB1DEFEC20D7E0032BE1A2708B074AAAEEB005C079FAB94599D2F89AD8786F2B71859A90457B47E7488AE70442C723BBF78E707CEA150F60533B10FFC213CAD2A4112D5C2E6B76B9BEF3B9FF9A62C44A52ED04F9B18C76E01AE2CA1CE86B947A82C14638C465C2715983735ADD8AF549C3725C9132104700007A76DC7F1C4D0C8316C2D5028EF5C6B3473B466334BC1 +ss = 618F4ECE7C4393669F273B8A937DE3BB779911CEE8E1FDD022550D8E2915D336 + +count = 46 +keypair_coins = C1B3CBFFAD4B306F9AF0CDD3028876486DBE858875C9B6497FE20172A986C82BB5B9E60227058AFD73501B1C4E45ADBBD41C7BE8D14BCB8E98AF77698FDF6B69 +pk = 0846C63E2C3018BC8733F05F8CE3B614088A787669205AC9889BCE2D3B523F366F4BF811F004666B2B654431B135D97A70A00FB9A3928C1A4A2C7285F6F7B19BB766BBE6B966B4013EC06833EC6F1118A772C2465D81B77BA740B7EA33129218542A41E2F1B10F42BB42396E9A6C5011351E783641AA692A982272D9544AC93580FA6A51B8C7B6A4B5B1CE3B58F1D901855BBB2B68B988953AB63607D988999ED96E5A4B963497A061AC69BD90C4EAB7C0DC17820B6963B0293D4CA30D82F5997A877A9AA71C5C7893C1D153AC6779D0A88190B13DF828BF3AFAC9D7EA392FEA899EF844535187AF673972399A5FA31034C02D70B57B97434ECBF3B1985C86EC75B23AC0AFAA67225F12A257B78341966BFD2569670680E012899C112AD3873AAAF26D2F4A5C8CC133C92B9A446530C169B6B87B118D03329374A71ADA1778A2035986CEAE200C763A12B6E2B2FDB672B4D58D8BE640E61576F2CAC617A5ADA5D1B874BBAC9D272EE4C881BBDCCA1C9A84626012B988395EB5A4A48BAB1E7551B6CB57EA7B627138C3AC252BDA1A83CCFAAD69E38CEDA6B149C1B3BA295FD5025C63225CE88CCDFBFA6B3950CBCDF96E14DC0962745A5FA32D10525F71D895A2085620C89024D922359741BE366CE9038AA3B260320A456858A7B8D01BCA12316E9C6D1782BEDCB590A1D2AD9ADA0C26D3818652CE6F3B6403C94DBCD1424D090E9DEAC559472C9AC19CBB26C16E8B27DB9140A1161EA96A171728689CD6B6BA0C8002BA6C46719A1A0C175638770CD088AE29A7FA958209788ADE14354A1B0880F05EF7C15A6786BE063B357FC7521973ABE4FCAC0A8C26F3EAA052959E2F973709C9C6BBF4C889C8B76C0AC81353B4A4DC81B7D316F75ACCDD1911DF10A7E838A7C2023EA1EB0A956ABB53FBA02C48396807229F492966796805E04AD62B8107493AAB264A5BEB32F5459C06AA6E7F79ACBF171899A911FA910DFA6687B2C28C1D419A4817ABCF656FF669B587B72374F3CC20B92858361D21BB85A3B9ABA157100875C993B54CCBC84DB2D72374BCAE29C5479CC95197E625DA047447EA5797551595853651912DAEC4891E68901BB67FAA98BC5050BB50E913645874FB7A0E51C816ACC88A7F8A4AD383170A583A2E17B0D5766E12DCC827386BA8D868EE16B2FB892ACA3941CDFA7A487C13AF9787A309779B759CDC037C13E839314803BB10A3AB19B7FAE477C8C322BF05BD3AD9CFB0B241371C85FFCB607748CB518A6C896830B191737BA289B15288AB59869E22637C57019818801EF9A6B7160AC1B5B4D7519B41905E6687B3FA7230EB88A3C9530813561308B68BD2B740E7AA08CA72CD6468C008CCAB34AB99B6773C533B3914B19B2B80BF7E783E7BD9366C8962E7F3410F34651EE606EB737E6C9C5F6D306AF7348CE955228CF02D15B8ABAED16994B56260221BEB1A29BE5596E204B9CE111127989BD2AB49CF27C976F74AA7B084FA6B8400A25F3C36213F7C2D160045D865C75AA14542F5A4E4D1459B5676491C6A3FA0A2F0319CA1A63A401C9C3A14C94F0016A9A69E64C522AEE93E8B96B4F6691322242B20353E0D8B995A6A9129E961AE7349F92C92A90B833E82B9FAE1AD459AD417635C409C28F9EF936AE28D221563E30F83162CEF01B482889E +sk = F3AC3178BC3E6B8002EB20046EE3288F9CC63C1ABD0B14A118D52E2C9A998D4C67E2014415084F520945F55B985ADAC8C503079789AECC491EB7BA540F32BE8823A4A837786BE140D260CFF5D46186588F4FE2419E0C4BA1B619567B9D8206B53AB1289640520F2259F5D6854871498B23696A321813D7A544E77FB3100B34C89AF2C63856FB43BB0A74A6073958D1199B4098386984847962B353B4D81AAF4CF65349C8197DB8C1B29A91FDE5AF1F9749A96B3B82C567207A81A163347919AEA565304B4820369799D352CE72415CF1C692537A48AB603B9DC741A08A66D874BF46DAAD570B6F1F4133067A1D900CA87CC25E91C4CE1C84B46D3C5BAAD46FED227268F1A9DBA968EFF27249B3C6E4C7C19E8A13046A2B45BC24F4304A80C09D37AC289F924F33E97181B8393EAA82A6FA54F2E76DD88791B5C3773707046C362D94EA547C3050AB251953464F4E540764B08103A88E448446F6B82375C15E3CA9A98798639B83638ADA857BDC1E3C6705471975C51B8087A26348BABEFD234D27D6C055D3AAB7560B28DCC13D343A79530AC868B5F6AC83AF04B8D7A20B64DABE9DE32A5C1B2C2ACACCC4588C1BA26F5462AAA5C1BDBC36467F346A1AB5C5840A07BD33CEB44093659BB0451C4C87CA4852172DC0BC3674B4275078CD2B9A3AFD61BFE454107D092E5840C4968C547ADC723C1970CFE705C5D33E3A4533F0028655C6BA44AB22C2A4C85A82B4B6DCC09765124E43C985459CB2AB1519DB1EC6F348D017A785484802D90E0222CA2313B4FBC465DEC0CD4F3A5675E33CF0DB79145867D5F0B8F340526C8A744929728CECCD146B6E66D03F660AA4E2E15D200B5960F3A03B571BB2E59160048E498C15379027E07987DDD841BDACA79764BCAA1C9843FCCC65B53695335D9D4CC789E062571665DA99B4E10368467AA551775C39C7C9DFE7624E8940F294C8655503F2F970071B40F6BA3544C64C41887184828BE6057A9E972631604901A7870733580C6AB8D4AA18B49CB4D567577AA8B0CA2490EDC68B168583B8B38415D32F5558996CC911A9470951430C36F71712F1C579A12327C41C441C980C286B71A31748EA54DF2A557FD1701C3173944B7B40117EF9CB08A7D03D45531B8DE4C753F697EC4B4303448C260B0783C81ED599425D9B16806828BF795C8CF65A95F366BB90110CC75D3E6064BEE17CF1497F36C48E68B46EC07417B2A876CB556C705C7DDC387D74F2B0AEEC9070D227AF09A324495F551680A474328D379AAC253A6F4C42C865A183D7C2F4F8CA94A92388B1AFBB5408CB1C0FCD3C945E2923ACDB7E16A45C03EC3298B3C44E9C1E75D049B2EBBCF2F29A2D3B7FC68644530010E052A0D357809009CD786604A39898B385B70AD7B3BE011EA83B93D4426F4F20A3D0836FC6FB532FA14536285013050C16D01C5752884E49A82A4A0BDBC8BC2C7598D548278703AB4C607A16B1BAB64052F40A06D3915CD03825F12C069D956F2A5662E05804183932B5216CA66274214ACF5C01A7F4C77EBF522DB776068F94151F7AC33831259B53BC48E99C50B260FAEC0B7BD3CD4FA9B5A5C2588CF098FCE5AAEEB15FE651355537953D9B8580313B56336F0846C63E2C3018BC8733F05F8CE3B614088A787669205AC9889BCE2D3B523F366F4BF811F004666B2B654431B135D97A70A00FB9A3928C1A4A2C7285F6F7B19BB766BBE6B966B4013EC06833EC6F1118A772C2465D81B77BA740B7EA33129218542A41E2F1B10F42BB42396E9A6C5011351E783641AA692A982272D9544AC93580FA6A51B8C7B6A4B5B1CE3B58F1D901855BBB2B68B988953AB63607D988999ED96E5A4B963497A061AC69BD90C4EAB7C0DC17820B6963B0293D4CA30D82F5997A877A9AA71C5C7893C1D153AC6779D0A88190B13DF828BF3AFAC9D7EA392FEA899EF844535187AF673972399A5FA31034C02D70B57B97434ECBF3B1985C86EC75B23AC0AFAA67225F12A257B78341966BFD2569670680E012899C112AD3873AAAF26D2F4A5C8CC133C92B9A446530C169B6B87B118D03329374A71ADA1778A2035986CEAE200C763A12B6E2B2FDB672B4D58D8BE640E61576F2CAC617A5ADA5D1B874BBAC9D272EE4C881BBDCCA1C9A84626012B988395EB5A4A48BAB1E7551B6CB57EA7B627138C3AC252BDA1A83CCFAAD69E38CEDA6B149C1B3BA295FD5025C63225CE88CCDFBFA6B3950CBCDF96E14DC0962745A5FA32D10525F71D895A2085620C89024D922359741BE366CE9038AA3B260320A456858A7B8D01BCA12316E9C6D1782BEDCB590A1D2AD9ADA0C26D3818652CE6F3B6403C94DBCD1424D090E9DEAC559472C9AC19CBB26C16E8B27DB9140A1161EA96A171728689CD6B6BA0C8002BA6C46719A1A0C175638770CD088AE29A7FA958209788ADE14354A1B0880F05EF7C15A6786BE063B357FC7521973ABE4FCAC0A8C26F3EAA052959E2F973709C9C6BBF4C889C8B76C0AC81353B4A4DC81B7D316F75ACCDD1911DF10A7E838A7C2023EA1EB0A956ABB53FBA02C48396807229F492966796805E04AD62B8107493AAB264A5BEB32F5459C06AA6E7F79ACBF171899A911FA910DFA6687B2C28C1D419A4817ABCF656FF669B587B72374F3CC20B92858361D21BB85A3B9ABA157100875C993B54CCBC84DB2D72374BCAE29C5479CC95197E625DA047447EA5797551595853651912DAEC4891E68901BB67FAA98BC5050BB50E913645874FB7A0E51C816ACC88A7F8A4AD383170A583A2E17B0D5766E12DCC827386BA8D868EE16B2FB892ACA3941CDFA7A487C13AF9787A309779B759CDC037C13E839314803BB10A3AB19B7FAE477C8C322BF05BD3AD9CFB0B241371C85FFCB607748CB518A6C896830B191737BA289B15288AB59869E22637C57019818801EF9A6B7160AC1B5B4D7519B41905E6687B3FA7230EB88A3C9530813561308B68BD2B740E7AA08CA72CD6468C008CCAB34AB99B6773C533B3914B19B2B80BF7E783E7BD9366C8962E7F3410F34651EE606EB737E6C9C5F6D306AF7348CE955228CF02D15B8ABAED16994B56260221BEB1A29BE5596E204B9CE111127989BD2AB49CF27C976F74AA7B084FA6B8400A25F3C36213F7C2D160045D865C75AA14542F5A4E4D1459B5676491C6A3FA0A2F0319CA1A63A401C9C3A14C94F0016A9A69E64C522AEE93E8B96B4F6691322242B20353E0D8B995A6A9129E961AE7349F92C92A90B833E82B9FAE1AD459AD417635C409C28F9EF936AE28D221563E30F83162CEF01B482889E5818AC8D7A38C781E3A0BC43D088E6D391D1D67D9639B260BB6F58A19A57150DB5B9E60227058AFD73501B1C4E45ADBBD41C7BE8D14BCB8E98AF77698FDF6B69 +encap_coins = D70B79DE7C2F7CB8D18EAF1CA040F6D8588BA85512AD000B59806BA485538377 +ct = 4D4EE1EF37182A59BD1E8437223326DC015645D098B01D4A55F78EF5BF3539D0E669A8818DF4EF96F694708DB55D77C36750C0C2580AA5AA3412565D693BF757216B51560E4A77A7641F3C209238695FF87B0AFB970970BF0ED7140ADE2A770E3A9D1EC64F6C3480E9F7798120E07F55575B4DB3EDFE14C04D3CE59CA1598566B2E83DCF2668D842955D377C2CF8F3AC0C15359B1E0E60D22A7696D03080774D8AAD50283C15BFA8A81BFD362D47365352B6D6F8C610773786C2354F2AE1E8C05941F6F9BB3E5F3AB2C5DBB01CF10C4CAE89E222732DDE775B43DE60ABB960603FDDD72373B52791C64FCDA50373ACA4EE126CF2AE98AA922E0584513E6B519D30AB5843F7A3C06956C227CE90DE5A2EDF3D7AB4C3048440C0C8664F506BE28CE83F29DE35AB19CCA5F4DF2AA7582239A57A211A46B9A5E7CDADCDED473EA9CA3D58A75C9E7BC805DB8CB5981E884A86392504B4BF774D7D772035CF79172F4176ADCE8D87D11292FA80F8B3690DD58379AACDFA71B700DE4FBBC0045E411CDFE958E056B79E78A4CA218280D3344894384A9D2524C64989B22AA06E3F9C4D2CD37938E0FEE64592AFD41A93F61AEF3E7E94B3DB9AC882715ABCC0C57C344AE711684B0C34220182AA8DAAC8336EECBC999DB1875E948AF7DB945B8208D68DC35FCFDFC2B6DF9E80829CAFDDCA0C7B979A43A0B05D380012681E4CF76008A714B9D693B53880C75D715D1C3704C783C40347A42D180C848F1850D7B8BCCD86B6C5417BE906615B60171D5EA0187C5065078901A023DEFD6B5B8F26CF59F8C4D9E4F4EB257247D0A8A9B376F22BE7D4701BAD3B15EA0C73F22EF9957C1480AC96BF80140CC773C8715FAAE46435F16C0110BEF1B7D841C75CF1B9C3BD3419D41D66E09132835BF68A4EA1CF046A41654FFE8B378DE2CD12DD1B5C03E80511E1C534D283D2EEEE559A6FE4133A5040ED76263738DD921FE706B82F85E29790C7067FDC332B804B5835FFBC8D621E379D42D1E3D90EB850B0F5E566C7DF707C456B29F29B352ABD4EA8DE0002929F91F1F1C6EB5365F8FB432BD74CB6A5D993DB59D547D7C12F43CD42C0239A5353C735ED3519D590697CBE737E788671EB640C153631F20E4DE774326DB0095629EDBE2B8DFD1267DC2FAB1E7AD5A180372C1B72F6359E8711321E0EC40BB69BBAB6E2558D94520638F9DE6604D83891232534314C75C53E8884EB8A8085D939249E74355C67E03AA0417301CB619D2B8200122CF6F612A3624A90DD7757C89D01CF8A7839C61A4A0041599EE88D4A235D2C9B0FC537E5E55AE9FD5C8EFA364C12E688F43F273477012651D066C76A23C5E26775EB63E360E3FA96FE58F5DB49EEDF8D6C90FB97CFA6D2808F91F816585B5ADB3AE8D289C738E159863B9CC51EDB7108B71D15CA5EDBC87028129CA8CD8BB5EF1CADD70B930243E877082FF0B58012E97A560BE1F5A1DBE1647CE999F5987A81A59810725A2DC2FAC903B951382A3B504287899F93D6689F03E07AB6B2AEAACDBA +ss = 3FB42AED91616BB85D06748999B29C6A287AE6C6E33941CE783BC3245C729D52 + +count = 47 +keypair_coins = FF7495B8575B5A98E4FD21FB4C3E58CBB60F14BEF21AA74CF8802E3153F1480711C033D4A4BB231985CA7E851FC73EA4B2C29E131B7F442DB8A66A9E5B31934B +pk = 964435FC16BE2CD2276B7BC78EE8B5C963AF2AF4673A93940B429131663CC124BE5A706BFF5C157DC17DC5CBC2A11418DC4B8A28C841C5A831B1A2BA989A20FDD17DD06706CEABC0D20714D5595D54216E9FB6824E3272DE0A1E262AA246494152B1CFD95C970F38AA35FC0337B26E76C77A0A76BC2C57B80757550B11807A423B85E32DDB537AB6D4694CB8B9ED58B11C9A6ACC746749C21011A66DBD7896329C3A31D0A7E1E78EFC93574CB7B051D79188EA4981DC6299EB9BD1BC1A133A41565305CD4A09FBB10934E7A3D132BB0EB83559C484EBC92F7CF93E445020B7187E2705A2D1A8386C008EC7F22FE172088360CD3FD160E7020B6D0C747CCBBEDDB1B84FA7549F625DBC064621FC2E13F720188C200C1AC1F10394FE4117018B9640632FBED570C942575FF61A7149A51F9993B90827EA2A08C32A330747CA27ECAE452154CE1A6A67A8B63676998AF929E8A7A9D2AB709E2162A2E0BC0721BFC7E49C5B2C9BA975B3BD881AA3782391F5CEE4CC1835C83732C84F54B373EB18869B2C90E9F986A0EA345CBB020333893B463671C95E6AA07193D06F7E62BF4361CD0009B1E528C85D147D0E650CEA7B0C67F1B4FB754BF2F1A7B9CC621D4C34682A6195776BBB9B2CC866CFA94C368A2B4B346C75A2A6BFE946CEF09416AEF21B15D3C72B7CB408141608C058E506271380841656963174C70E09C1F593ACDFB9BF4A3A9387B693F882495149C62A77595574C0BC745B51BA8338C6361A293402E74DF74A7A70B49FAA1AC4D66B89FB6C31DAE59F318B610F00BF4F4A282F752A070582F2F3C141E168F6FA037F23945893766215B9EE9A3A1DE662060A5B1FD34BC8DAC56C0875A6F82ECF8863C1692DC2073CF517CBED3C362A853BEEF1A8CF2247000CC4CD8176CE980D683B8AD89B3EABA3B962624F5AB3695FA10A88055DDD664A2BA0749E439A39C6999496999BE3BA7BBA2FFE06388B1A6C83068AE70A1C6F8A36E788B8AA148933C896EDA61EFC86CBB7D5C9CC96C9F137C6A9210347289010979BC1E16700A610C7C990D685550F537AB0C45B2BC57E5EF4C08B2220961C6E17E95E2E4482A4A94DA2E17B6854CE57C263D69429E1566BAB646FDB216E0444CD8FCB7DF4168AE66223A0CCAD971583B5917C4805271A17B4A1E17462815CB39332699AC447332A3F7ACEDC03541E93A822A96089D6A1F47A7DF35CC9B659CF419BCD2131B98AACA67343CDBAFA3DB35661C38C0BA1E18043A4C945067ADEE46E428A16011ABFEB58C1BC8B2330288B57CC319389921857C9D015A0471128C34CBC13417DB24B91A3567AC299CFA6D4C2F1123661A3CE0996111D340D9613B966955C6A758FA7F3556F6716E5AC7AD3A93174B2032A983CC0C73C0DE302F9F83A0DE89A1FB576CD3B41505B5BA712C387730C45399B8CF0B0E548CBED984E7BB5095CF7263B05CBA437AC6FC369EBCA85E0211715133BCC314723D79C9B93ABAC57AD3D3A5E77F2986A3539EB795A5B4967AC7753115B916236A97900870B658B9D4B3E35827E1AA9ADC3500FD9BA18FC6B03465903858C61C1259CF485338CB700EB731F31643B469BB259210CEC78C158E3290573C5228518E4697F19171D8F1A3A633448FE9C83BD28097BB29A168DB5AF1D1B354B6881A2CE509B +sk = 37F7089480382622AC6687B4B15BBDBC1A9AD7467E8FF4CF44F0614DE74B9591B9C5410D2D7084BB57AC27963AAFAC148DE80DDA6232F4A0C634D677A80C226FE67063191C05A54AFC026080877538F63DF93CC6FDECBBC0A9A0A4215488DA1A2F7B1EA8F8B917F32F397B94C80170BCD423C1F1BA4C736449F84BAFD6711B0070DAE72DE1EA3923435FE15A4FB35AC98D6379F0A44C200A37704B5B269BA3A555961ACA5E2CC1518FA4BAD3C23438E06952C9317D198B0C112D79A89560DC3361F5732F820CE4D16ED448AC2ED221C8EA3601602C27F640DCC394A7ECB5079978CF52B80DE15C3015839A44B9EE36837866C5C8E9579849B331E53DBC049E46DBB524C2090A54BA793C845420A7C2C29E78A9B8C83C310D780F74127C02A59AB68C1B29952DFF1196D0940EDC338DF3E1C1C8E34FD0DAC4D5596F97A2AFA98B1E8BE46BC0A96DF412639AE5B52229086229B5BC79AC020B61A56C04091C10CF9940F798A9C50BA1F5FB30BFA947F20B62A60215C5A88D23B70C0E299C53F49A1ED511AC5812558133D9F195E1FB5D77314559EA79E63A88E781C4224155ABB5CA91F089C0C609CECCA32E549B0CBA167D9307A3A64681A815A69C5D7E787751162483E7701437034F0864D8D53201FAB9763C7921ECA6F11247E7EA364298C1C3AB893549572BEC45C1A8C3B88659CFD526810B23F2095AA6C1424C7178187109F83063B52547B9C731F9933622A33C7A8B927A50191593488F9A0D12331017919159C7A027C3956FE109393A167A6475CEBB49224736847319D161490EC52396D7BABFB638BDEA29F50C9CE37314FC858455F63FCC70CFCB751DF12274FEEB45A124AB1B997C917A550C3469A0C185EB0238FFCB4DCBF751E12CA17A71B807B1446EA7180EE302E6998EF8D12A857C84FFC377F5E42FD41238A54345229916A715977025B3B4A6060F778DE7D426A2F95927335CB202BF4080B8510CC0DA12C4EAEC4BBFA42997E21504B8C5D32604F1D66E8D55B50C393F973ACD37A236DB595E3EF08239C42FB5E9243D967181B9B94F4521C104A8AA726DEC057ABD419BC8C6CF350C91ACB78B0832144F409F78992652E30EED7BA2375B3245D877C8E8B873F0427071C956633495381A2C642B15282B9945C758910FE469CD091B4458218105DA96A479BE0AC6B3BA155D359B2815916E93E9BAD3D431945B852E519DF0129174B24A32CC9FB8A62DE96733D153A799CB8FBA3C86B9101CF3D4A97BD3B699467991A57129607C27274D3224CD1848C17F1550BE47B71A119873045E215BB817CB92C12A7BDC6347DF8B64DD686873D800B4672AADE8AF56D2995546CC37C06F9212A54745C5597184EA85CEDCA7B980386FB91B8AE677A035A4547B5848879C2567C8CD6AC285F6F2460DBC0B73F5AE0993C988418C234895380C556042ACD15A6C015A13EBE16CDEA4BE38528A9D244230A0AB053C568E31C64D06A3D7BCA0E5207B7669811A3512F8AC6887137B0B7627D2401CCD604AE786753FB6568CB522B28712211208C1849D1F75CC4FB951D2AA081ADA952998B0B0E938B77359233A76C135897E91059CC5639E978C12C6BBFB735FEF4BCB1D60180DF21D964435FC16BE2CD2276B7BC78EE8B5C963AF2AF4673A93940B429131663CC124BE5A706BFF5C157DC17DC5CBC2A11418DC4B8A28C841C5A831B1A2BA989A20FDD17DD06706CEABC0D20714D5595D54216E9FB6824E3272DE0A1E262AA246494152B1CFD95C970F38AA35FC0337B26E76C77A0A76BC2C57B80757550B11807A423B85E32DDB537AB6D4694CB8B9ED58B11C9A6ACC746749C21011A66DBD7896329C3A31D0A7E1E78EFC93574CB7B051D79188EA4981DC6299EB9BD1BC1A133A41565305CD4A09FBB10934E7A3D132BB0EB83559C484EBC92F7CF93E445020B7187E2705A2D1A8386C008EC7F22FE172088360CD3FD160E7020B6D0C747CCBBEDDB1B84FA7549F625DBC064621FC2E13F720188C200C1AC1F10394FE4117018B9640632FBED570C942575FF61A7149A51F9993B90827EA2A08C32A330747CA27ECAE452154CE1A6A67A8B63676998AF929E8A7A9D2AB709E2162A2E0BC0721BFC7E49C5B2C9BA975B3BD881AA3782391F5CEE4CC1835C83732C84F54B373EB18869B2C90E9F986A0EA345CBB020333893B463671C95E6AA07193D06F7E62BF4361CD0009B1E528C85D147D0E650CEA7B0C67F1B4FB754BF2F1A7B9CC621D4C34682A6195776BBB9B2CC866CFA94C368A2B4B346C75A2A6BFE946CEF09416AEF21B15D3C72B7CB408141608C058E506271380841656963174C70E09C1F593ACDFB9BF4A3A9387B693F882495149C62A77595574C0BC745B51BA8338C6361A293402E74DF74A7A70B49FAA1AC4D66B89FB6C31DAE59F318B610F00BF4F4A282F752A070582F2F3C141E168F6FA037F23945893766215B9EE9A3A1DE662060A5B1FD34BC8DAC56C0875A6F82ECF8863C1692DC2073CF517CBED3C362A853BEEF1A8CF2247000CC4CD8176CE980D683B8AD89B3EABA3B962624F5AB3695FA10A88055DDD664A2BA0749E439A39C6999496999BE3BA7BBA2FFE06388B1A6C83068AE70A1C6F8A36E788B8AA148933C896EDA61EFC86CBB7D5C9CC96C9F137C6A9210347289010979BC1E16700A610C7C990D685550F537AB0C45B2BC57E5EF4C08B2220961C6E17E95E2E4482A4A94DA2E17B6854CE57C263D69429E1566BAB646FDB216E0444CD8FCB7DF4168AE66223A0CCAD971583B5917C4805271A17B4A1E17462815CB39332699AC447332A3F7ACEDC03541E93A822A96089D6A1F47A7DF35CC9B659CF419BCD2131B98AACA67343CDBAFA3DB35661C38C0BA1E18043A4C945067ADEE46E428A16011ABFEB58C1BC8B2330288B57CC319389921857C9D015A0471128C34CBC13417DB24B91A3567AC299CFA6D4C2F1123661A3CE0996111D340D9613B966955C6A758FA7F3556F6716E5AC7AD3A93174B2032A983CC0C73C0DE302F9F83A0DE89A1FB576CD3B41505B5BA712C387730C45399B8CF0B0E548CBED984E7BB5095CF7263B05CBA437AC6FC369EBCA85E0211715133BCC314723D79C9B93ABAC57AD3D3A5E77F2986A3539EB795A5B4967AC7753115B916236A97900870B658B9D4B3E35827E1AA9ADC3500FD9BA18FC6B03465903858C61C1259CF485338CB700EB731F31643B469BB259210CEC78C158E3290573C5228518E4697F19171D8F1A3A633448FE9C83BD28097BB29A168DB5AF1D1B354B6881A2CE509B172CF4F8DACE8A96B8F70DA966080A5E3F132873CA7544343377A99B65E8147F11C033D4A4BB231985CA7E851FC73EA4B2C29E131B7F442DB8A66A9E5B31934B +encap_coins = 8449BFFAFB415183EC7E27D7FA2E30AE045B7D860A4F59AD0C551A8488E1DB6E +ct = 6720D73768ED3C4322F51D5B4EF01D878503CD94947ED1624325A29F0ACCF6BEB57CC1C59B306C7BD2352BB7EF065723F9F30E9ADE86F65C6761ADC0F45D2C6FBD471F0434176CF107B7971AB5C78CF0B193AA61F95869026B88900409261C56A4B8098C33D160FF9E32E1AF1E73E3D0D3DB824B82C8BC193C9255AF016E41CB201B0CA574AB9ED36C7A2F8F648E4E589FC78532EC9BEEF128EBC412FB0F34CDAC8A1B6A7F5F8A94DC3B42881556DB2882D4693B2DB0B37B753A0BC86A2374CDB3F4805D81109011EA9CD6DDAE908F264E45586EF8DD4B687ACF8D3BB021B8ECCF71F2C7687DF06E4565A6EB0EE10845ECD9D2B690E7F12D7414E7BF432641E227DC23E05586D5E6231741DC995D3FD49BBF4BDFA1DD8FF6269BFF2A1413CFD1F3B995DC2E80359918E8ACEE302A12C434218CF03CCEACD739AB4333F421870C128504C47526B8C3FBBFD4BD3756EFA3BF6F82BF8CADEEA72C6346B5D571CB57065FE27C51261C82D81D70915A00CEDC5AC45E0A66889B65877823A1840DEF48E161F16EC786D82FC2A01E367AE9D0867B5FA08C243970786262A1856B6788A603B50944450C139944B5F20A92062D90818EE26D0795901F87A2C16C8212083D266D5DAC9031028B5E5EC3FCA10434CFCCB77B4C725267E462013CB18913367452EECE3DE822B8E9D5D9F59DCB0FFA38E5F2E497C01896EC13714F8108135843E832CFC6D915B124E694994C417758E02CBBAB0AB6B6E3FDB601AE7870D0CC16AD6098213010E80FA72D36D649F52840AE65AFDA8FBD772AB3AC96F78BC725CFA825A67E5C622DE0644ABBA253584D24B4CD9F37743B5F5357D78AA667151F345987A688F0D4DF6086DD8C15EBE4227BE0C4E5FD40678CB15398D0E71553538030BC825E29849A2C43DDDB3B218AA2A8EDF77A7A5FE4E41C7A535D2B24B53A6A8142176D75E94450AFDE88320683648318B56F6AA9FBDDFF56EF63E42B479065C760CB1122BE97A86C7C6DD42947A17D781FF8251104182CF9EA6A88EDD60722A004F5D4D7F0BD80ED2E3C0710611B0C9A18752F0E39B014AB62E48F0B968F440CF42B6078C3B93611552406B10B7C69F1D2F278813416B1AB36277D8215DBB60E359DDF5240872E4F56CB8D3CFBF4F6478B6A876B7755357BB8A1CE8A2D1EB896E77A420A40A402746A242A33D906BCB42DF56CB9DD1D4789EBA710031BF20A657D87EE20798321EA779D1BB453C5330D25D3942854CFEE2A9AF120E69DF4A31ABD362CD36174D7015ED23F76CF0B1D8FB3BB9D114C817727A52909393168507BFAAA6B15BD2B0BCFEE3A0DD27A2C7946B3A004E02AE8B2CEB226E4E17E1400AC8AA8E72041A24633243F83A13B392440294DE7E0D7EA47E236D5D37B83E0EB477551D91E76AE7826F7A866E895E58237E3385376ED3DEF465A30AB1D00DE6B1DFB21BB9D0F74AFC0F637AD2A382C77191BBEB7A03DD90D0AA8FBFE81E3B3A2E47DF5A525E83B89843B31B184C1EC46E54AE734521E1AF098FA8F08C80CA5C5 +ss = 4197C16AAD6FDC186D5AA91000898B67CB65280503EAB4826D7D3C4669AA5D70 + +count = 48 +keypair_coins = BDC3FBA1C32751139FC45BACFFB3EA97F26573D804A5F27A459293D95190ED8E75FD654BB12DA3469881ED591A82F58B4BFBAC587D045FDF3AA0348029DEB1A7 +pk = 58718343322DB0162D26965D5E946B700AB88D702FD5A1376920B5BE702297AACDE28588DA91C719D40C1FAB0AF109742AC26C456961338C44C93C83AB58581635499545CCA66160E15A35BA4931E2B91FEE68A8734ACBF72755E8D452D17215457161284435EB6A7A2933C8D146A12679143B80740F68AE052087EEB988771A8FB43B34D6EC79868A0670551BDD19CB5313892BCAC9E4FB500D3375AE471A3ED551B2D9C76142B22607615454A910F8578E44B448AA9200D805CF4C15EB635013BB80A65593FF578C794066F05ABDDB850FF976C74ED6ACB4C41064FB5EEAB479A13BA57DCACF7F02421603194A3CB549F08C0D700790809EE0E585DCE4088F96A740320C57D5A632C8BF5DC173F0F841173AA47CA42004B808EBC2A6A1770AD9DC06027557F80420DB47B0158A1D1FF32007FC058875C4F5D21FABB67BFE8909E10B51BB35C76D0605D0E6A97E56CB93DCC58F722D95F33008B0A237B711420A20269A7097396A4A98BE20B8226E103CB1136EA3FA39D438B305B63FA049C420CC378392B9F911BD7800BBAAF2BDD7586780C7078DEA622DF51C7190841585BB16BAB9A0D83625D55826E3949AE018E7C4703CA082466B9A078393C30A4F6B7B1FC775C9DFF7CFB5909CAFBC66EA946E6F098F881B3039C251FD3AC142029E8728082F838A202CC3586672CB6285B021C41E3C16F5787CE6E319D849483FE40D989C246F7C36C11A991234AE7FEA68770C79D8290AAE3BB72BA014AA1279FD13977A49B0CDD494CA00C610CC2306059B695686399C1590F274F735142639425DD88026F8BE0F260CD66672A12B5C7B5C7323408A2711677F062625EB8F3541098D079C13208415DCCF3FF72D1999721DB3C271F7521DFB0F129B3CB6885310A0689166A3B97B09610347CEEA5579650720DB621DB20EEEC24EEC2144FB523ED2D30F64B9C6655928B3D06E1FD9B088AC8B7C964213E5674757C7BD48A3D066355F0249A50548F430C55A6CA0471953EB7C67E140AAF6322B7741225931622DB114ED46B9EA997974C9AE2F54B87125CE79E8621D712688B50C7A49877D52091643A4A43148550135F27BB30EA131521583F5B79255309465F4B9F2233027855CC0E7C93BB33705136C88392CCA717254640C540573D3A20032C9B297EB5B02C954C744C4C6143A56EB48F1D15439F885803BA5ACB524F3D54BED37145CD9173ED92A00F724273787CF1B89C788184DE0905BEA74FB331DDBA00CDA70C1547C634C706A8447145489752B0633628BA4F5286851E1B5FFB8A7FA2BBAD3F92C542ACE74E67AA07B467E70B6A7D3056592B36A7A37C6C7114C610721E9C6EA933742E43609C41F6F3803E99A8D5A27B069BB73C892BF07524A8B2989633C96CCF33791BA29F3D575F249C640093046D1684FBC701AC633381BB349BB7D351230A8BB1A22223DE3850258AC7043B887770A307C3746002CADA2826E47F7694EF51F94FB9E3645AECE6273298592BF00C0FDF14C07D8C9FCA401FF351D2E35491AEB55AED9B1B0EBC2424CC729AC7EB07630B8B11D0E47C323D6B3C0BA12DC235D5C310CE2C7BC1F0A8467D627568A185855750E12717760355A0B8A756468E95406D375F6A1289B8CDBFED9F6518D7031C57FD3455D4544735CF52680424C90F14F +sk = 5E43BFE8EA443466AB6B087DEADC672E7AADC85521D549B978B054A9B8949E519E3FC3A653607D794491341039713037D31C9824EACE39E7127A974403441E25B714FAFBA4B98041E85B2FD8D8ACC2A69AEA9C80930306B46BAF5245A505D48E293A77AA4174D1C095B0B4A45754A4A94BCB01D4543BF7C7DEF2AE2009408725C58BC76BDE03ABEF3C4EE0831D3C6B2632609707B3B861F093E857902D52A2A48619B1EC20DDE7A923412F79C22389601473076965959B2AA3C79DD31B98CA9847731C89B0929EF5174CC6B92972CE2C07C8139A62C901216245CFC92B2DA158079E1C93C8E08FF438A02DDCA4CA948F47A106D40AB6A5B0AFAF52052F237E44F0765B3436271421308611845785E257CAE691C39FB8C80BBC1C5FD687A547B7E8E3AA1D7C15A918984B6B359CD24711CBBBB95716EA54A8D3511C5DC983FA1B019E0B0D7DE90C3C0A9E7652C18E72CAD6F9C510E64F0CDA8CBD86502A5880EE1536EDD16AB36BCFD859CE879B3F5D6A0D90630668B7385C8599ECB1849A4942D87A91497129E196309156C9AB245F4C637080C963F9648FB2BA6F32D2566F88BCE680203DFB827438295F8670C9BCC34A98497851BDB0E631EA06ACCC26373809986DA62FA714012D2579D5D61443330E3B882C800B6C9D02C98E9859A4022DB4A09510FC91A3B95BCBF73B3A09311CD13E52B61733E02DBB400E8A54A30668311AC02FAE2B55FE05C95AC43875D92F3C2ACB3D4A6B53D363D5D75A697061055A3A788BCDFA051EDF97C3515CA920EBAC9E7A998BB598B8436BDB63550E416D2AEA5057562A901B609B129D92B27536E02C26EC6A3B2C5F6B733D0529330E9A89600B089DD30A0BB52530A3062BE741B09818A78B4FB9F274B7262CA23B3F2A40542CAA64FE38A6ED06BEB5498733A38A7FD0B5AEC2673ACA2B07E00909E68D40AA207FB179CF7A60A9E13719635A15CB221D1CC88B921E950C94CEE17D60F80CA5B4A656F501D7136D1245207479A1DA42C26C48664297562A0BAE0E7906E9D853FC7C490E4078B5B3B226B37101A31B5D05A26F1CA1F231A853F23F59D86A3FD269A0256EEBD02CC0C6B77F1B1C613114E1084D8D1CBABD0C7702F43D2EE01DB985382C562F1B7885A7015EDF59BD8988B5BCEA1CB04639BBF5B119E6293F908245455070DA3013D2B6E2116776694B44E3A7E433407099A51940870B336F547677665C7066E181CE266FF0E508268731BD13AFA2ECB4546276A5DC50772A6FA38541AF968AE5C59E2D04C3B6002C7120A6A970ADA2671590411552E48E7119C7B7F7AC97429E9B7CC0B5242DF277CC10E7C48976266643A9B2308CF1799324780743F95E65851C03599FEA7129D5552B86AC35AED10B5F00058A8742C02A3E4F6CBF5DF61C66143EBE933060C98A4BB55318566184601BB395625FC86E4BD47377B54459B45E50C145596B9178D57D01BBBAA9A63BF444889FC810F1E40E07D289E0B04A58F84348463B9FCA3176AAAE6C1C119CF679BACC6EB685B9F443C2A9E304BBA0ADF3888B42698AC1F68F1626439E796E1967C7BEF581DBABB6C22C9C16029E18D8493A524FC2A41738A25E735C665E79AC423ACA37B5222D970358718343322DB0162D26965D5E946B700AB88D702FD5A1376920B5BE702297AACDE28588DA91C719D40C1FAB0AF109742AC26C456961338C44C93C83AB58581635499545CCA66160E15A35BA4931E2B91FEE68A8734ACBF72755E8D452D17215457161284435EB6A7A2933C8D146A12679143B80740F68AE052087EEB988771A8FB43B34D6EC79868A0670551BDD19CB5313892BCAC9E4FB500D3375AE471A3ED551B2D9C76142B22607615454A910F8578E44B448AA9200D805CF4C15EB635013BB80A65593FF578C794066F05ABDDB850FF976C74ED6ACB4C41064FB5EEAB479A13BA57DCACF7F02421603194A3CB549F08C0D700790809EE0E585DCE4088F96A740320C57D5A632C8BF5DC173F0F841173AA47CA42004B808EBC2A6A1770AD9DC06027557F80420DB47B0158A1D1FF32007FC058875C4F5D21FABB67BFE8909E10B51BB35C76D0605D0E6A97E56CB93DCC58F722D95F33008B0A237B711420A20269A7097396A4A98BE20B8226E103CB1136EA3FA39D438B305B63FA049C420CC378392B9F911BD7800BBAAF2BDD7586780C7078DEA622DF51C7190841585BB16BAB9A0D83625D55826E3949AE018E7C4703CA082466B9A078393C30A4F6B7B1FC775C9DFF7CFB5909CAFBC66EA946E6F098F881B3039C251FD3AC142029E8728082F838A202CC3586672CB6285B021C41E3C16F5787CE6E319D849483FE40D989C246F7C36C11A991234AE7FEA68770C79D8290AAE3BB72BA014AA1279FD13977A49B0CDD494CA00C610CC2306059B695686399C1590F274F735142639425DD88026F8BE0F260CD66672A12B5C7B5C7323408A2711677F062625EB8F3541098D079C13208415DCCF3FF72D1999721DB3C271F7521DFB0F129B3CB6885310A0689166A3B97B09610347CEEA5579650720DB621DB20EEEC24EEC2144FB523ED2D30F64B9C6655928B3D06E1FD9B088AC8B7C964213E5674757C7BD48A3D066355F0249A50548F430C55A6CA0471953EB7C67E140AAF6322B7741225931622DB114ED46B9EA997974C9AE2F54B87125CE79E8621D712688B50C7A49877D52091643A4A43148550135F27BB30EA131521583F5B79255309465F4B9F2233027855CC0E7C93BB33705136C88392CCA717254640C540573D3A20032C9B297EB5B02C954C744C4C6143A56EB48F1D15439F885803BA5ACB524F3D54BED37145CD9173ED92A00F724273787CF1B89C788184DE0905BEA74FB331DDBA00CDA70C1547C634C706A8447145489752B0633628BA4F5286851E1B5FFB8A7FA2BBAD3F92C542ACE74E67AA07B467E70B6A7D3056592B36A7A37C6C7114C610721E9C6EA933742E43609C41F6F3803E99A8D5A27B069BB73C892BF07524A8B2989633C96CCF33791BA29F3D575F249C640093046D1684FBC701AC633381BB349BB7D351230A8BB1A22223DE3850258AC7043B887770A307C3746002CADA2826E47F7694EF51F94FB9E3645AECE6273298592BF00C0FDF14C07D8C9FCA401FF351D2E35491AEB55AED9B1B0EBC2424CC729AC7EB07630B8B11D0E47C323D6B3C0BA12DC235D5C310CE2C7BC1F0A8467D627568A185855750E12717760355A0B8A756468E95406D375F6A1289B8CDBFED9F6518D7031C57FD3455D4544735CF52680424C90F14F268B6356F92C57DA6DD34494B927E8764ADF0AD519612EF0D1B8951E50966C2F75FD654BB12DA3469881ED591A82F58B4BFBAC587D045FDF3AA0348029DEB1A7 +encap_coins = FA2C8B8C0F711A6D31C496199AD1993C31DB62DEBBC11BA3B3A86FE4278C365A +ct = F06D63761312FFC41CA35166F452D47A86B3B351D528DFCEF48A13B285225521C667513148D98E5501D5C0780E169BC13BEDB356CFF9355C51C4C3E9B2054A1CDA27C9217A172C8A63337BF7423797E1A4CD65C9201B22E81380DE4D4CDF13226FD4D827E9C069C5AB72DF97891693EAE37529A82CBC91BC4CDAE0E99EE73554BBEA00CF2F04B4E51AB17440005B4E9FF6CDED01247DDA9C0CEBD21971D4A4C40EFDCA37BAE907754CECEE4F28B86F55772449F32488408B2A6AF4F1A587F03D151195FB8F7DCDCBD5C26B319874A7694F579809646CFFD9D52AC29B220F42FF716D0ACEA609F4339C157886EFC5E8C8368651931FD4F6AA6E0C7444478310AC0D6857C3FFC283692474EB77ED94008F4ACECC1A860BAA3B3D22095CDAC6CB864045F5187342321A2EAF661E7912782BE7C4C9C771234C446EE33A33D7B64F8EA83DDB579569ED290387DADB5AD0A46E12DBE76CA5E99B367E3AE6D8E8E0808AB0377041083B048AB78C536E2BB6C1394E1313075A8D488E507AB0ED848DC28472F359BA36F09BD0083BF56E3AAB3DECC8243D2FE303071F128C9B7E7F61FAFA544AE6FDED2A91A60CB06575C7256F0AE2623655C4D5F45101979B0A280CEE7C758D2C7D01C094C5F46A854736B7CA7FFBAFA32DFA0091C88F20680DD925A8CF26CE1C8423B04624C153F51E16B57AA94EF801F0DA20B4645D88DFF47624437275CDC5532AE3B79958D7E4FDDA0519F4441F7AFF5D3312DE736BA54BE887057A889C008FDFDA2217DC030E4A8151B03FCE577A0EA3DC05234ADB74E27785F3787D35934541FD7CF2BA1A50C0080F26013362002E200BDACC13C4F2C208EFF68D39A2CC461079C9A101D792E5CCD55FC1419DD3E7FAED3222C1F76861D1461897B3601E5922641701E297A352BC11CE254B7D3CA5AA1E33E09DC3048FE433D190B87009C80A1561E563D7E6C4C51391D4349C227EEB7C2ABA5921FB35C5C80DC08FB628879856C6AF7E80A5B93CD5DCD64AB9B5198F988DA5C717D0100B03E9A56D20491BBC72E7ACEB66B602D283C76A1E075B3560BA920521CFB87A3260EDC2703BB6FBB790DDF3CAB35BB0CD87231A51EBC9A66B848170B98CA7C7B1FCB0179EDB3A9F353921C4257905F483CCEF02782E62E0039040F600C3444159AE1A2489CEAA1CF763AC455CBD223B356CC7EB006CA100A406921320DEB0BE4256BDC6E653DCBD27A9B01A599431BF68AAB3C357C2186ABECFF3D67009873B1FD8EC2A4EF44B2C86CC0FEDF2AD38DCC69B02CF30B1BD43AEDAD2EAD94165C715B61EE7484123BBC47D73293BF4B7690BBA9090D661DF0F054FAD31062018A45D0EA4F414C2F413F939C0AC54B034C79DB7E7C2E3718A2649F7150501244C40F4858F05E8A071FC8A56F04AEDA538B23F2773D5912C17B46BCDE3D0A45481FEC220C9EAA88FBCD5F8B77978AE7E0FC1497E5E31909FE7C97A220DB32FF1FC6B16A49E63ABC472C179978A12548105CDB70D9A34065A22A23787306A45A9380EAE75E76D +ss = C5ADE7EAC4CA60209D65539C8551F71602F2C6AA00FC244EFF0CFDB3F84B98F4 + +count = 49 +keypair_coins = 447F6076A627BBC5AD7773FBFEB14B4BA9AC43A0F8B99FB6DCD5E452AA3C47EC4C7E3A5FA1EC46B73F87AF48578132EB080AAA37D31F0C2A041C5948E59F44F9 +pk = D8279F9A0681CB98BC38CB551320031F46262799C182B0355EEC82CDB58D750596A4E6BF1213490810415A4B347E13C9E8514890A0995843936BE342E81C7F4971BF9B75925D61AC8C961492A85D83FA8E33C12FA37BA08D7C681C521ED4060481F58BE673007A081321E01E21419E232283A01CB1A4481550DBADE263382EB93B7E42470B265027A933C480CDA340A9A4065B4BC47990833786456AAAB5A81C0A46E0076B91BA5BB4D4ABE21C6AB193B3A3671C18479DB082A706768A63109D2C4224D71C7C95755CA24B056C355E9C22CF5006662B3218EDD4B317B19962CB514AF123245B152EAC41391CB432C6CAF9295C66DA4E5737AE3D60023F46AA7A604C64A6C403306CA4B96FC2929AED5B4CE7E6C631B473D7D61CBCD19826AB82C0C58880D77CE8F9BCDBF59D645424BAACCCE334809B43ACB99248BBD966C88793A273AE857946902649F97B5516FA2EA2A84FCFBC054653852D8421B6B78C289B49080C8EFAF85DF195AB5562A03E7099C43C439A25AB41390B86DB4F57188F002129F3EA1FFDBB9E9C688EBBB26E0D7AC6EEA395B698A134F70F98480E87313B79444963557CEE82534E9C1CF10B74718CAEDE3BCBD98A68D9956FACD8A45E2184C16B14048B9D28E8BFBF5AB43D1B650EE8CF13148CAF451CFB144656052CBAF82E2F765C8C9C66C23B0CBAE0257D6000F247200AB87F93B5167478A27B42AD7681B6919529BB1430DFCC809E171A334B33A0527A1D9519C18130971C55F6EC172B86248059830FC57C7356C9BD8263F7D571D0F7BD87D2A1686A7C41DB9306558CBDF39F0176959A188B4D457B40C152B7EA09F6860D4D945E78C45EB68B579D48774EB26AD43BC1BE3C0AC327C80B4C1115C2CB58BBC24A18146470ABC223AD51FA10EEFC311F1AC02AF4C7432210233A4ABC408B1DB484E7885D239C0C2B9C4952E577A8EBC3D6A7684E711E12DB96E1F988DF423A395301D2C15FE2F1ABF708BC64147A30E2717F7868FF602D50FA9A3D0B3A0097259AC52057DCC14319C438E113DA967F6DFBA4279245B72CC86CF724C81769DAE271E18C0B6CFA84B916AC89B12A1F8B05D88527AD40346775CC832713146806A2B2884E35628169BC12F67811B507BEE3BBEBCA81AB93B5D700AA92898B3F5CB6E9D345483CA3743457FAD8CC5BEC2A8E7A22A41BA8B67641AB181D42ABAF94D0055206B648C81361F8486408B610BB3552299316B5C0B7D301D9F1C3D55621859AB2EE922C59B11EA9F2A1EFE277C534128F2CAE6B598C0FA059EFC2C24E8A0C2337BC2C57A0BC64A7FCE190C656B529D21244EB66A900288B5C484BB033020B9B9BA3019B72387F2746B3B893A1427882BC3135F0A17F8271F9C8480EB60732672D44336B32F851A283224144C480AA302C05836EDC1AC4569A6020130B341466322D17811229441C4513A2E8041C85E035113992F16799DFE8C1EEF3AFF8CA2F341628808A81E8B66EE5BA47AD0863C735A904565F036A85FB1203058137AAD2206C303F22D3027E732542A342CAF3376D6B065A745E31E865FC2243DA31CE08EABBF8183B4294700BF8928DA8CA78BC08490810C39747FD3851211B22F26451F6772E0C75659133E8D8C063CD3044DA1719855FBBD9796314B11DF8459EBD2D92B7FDC94C4C +sk = 469963001D4D93DA7CBAAC0ACDFC833C47601AE334DCC0022A9220138C16B9ECA73AD1863431A34F593ADDCA4F0EA393FC4595D22A7CADD0A8D89827086A955400ABAD84226541114CFCB3E3A240FB600DD6C0960A7976175C56B0B48C66721E13882E3AA5784E12869F0C8518037955F876997975D27A7C92D4CF005AB859590504C768B02576A94263C87C4BBFE1AFB09B8C0A5C067776A0D96A5D12925B44AB3D3E57C6971B0A86617F65A16C7E9B42C283577219409E1CA4DE08A92DC5B4E8E87051680C1B24068DDA801FE871E0B28AB0611BBB97CD49BCBF159B7785830BC9D302C0A61AD138277AFC2374AA64E983506BD11288F4A20376B50AE1C1233A1ACF30AF1DA67301A5A420AA826DB58322DC1C7AD8BFD25C3B21025B565C357B4A0802E615A35A384F1794A0612E030228A865A0390197E7C27F45A4258FE26082C850170CAE86721BB5C68CB32153B9934DE4CB11528C570AF363925AB0FEDAC79748B3489B7180E81FF6DB702D5A100336955EC02FD2B9C86C2CC001833B0BA1B7DBC9699C6556B448324D29B0F6A4028BF48A49B1CF60B4A9F91321AA64CA849848CEE2BE0A29219F783008417DA307710F87CAFA2603FD206E5698177E81470AF4C608A6128908541183A5B4769E74166349E55B4D2A2A84600EF712C2D1F13F4FB3C91BCA8CAD209CB5BA0FF578BD6E29A0CF07A972D262A2EA3C4DD44A5D55446C174B345B96871076FCF785CCA68545EB6BE64BC9BE17A7D5914D8A50B286D3A2A8E1A53FAA53815ACF0237B8BF204C34766E97883071E56539361BBDF29187C180414C83D9C09E30983995AA4850A6B2358AA6240642CB9B0FDB739FA5A93EC60C11061AA8B5E71316A517BE2BAEA2F74BAEE32EEAA0A75D2030F5E8BBE1B517F56511FD8AA499621A9EF6C88B96A9F33B2B3CF04381B5C97B743063A6286751AD9EE14903C4674B308DD5E28BC700134C43C788B04460DB78A0E795E24698553722B4C3A095784828960672CBCAFC11AF32C918ACE0580D5BCEAA574409854051A2419F148809147133866F9B651A38622F21E0614F10139BA53724831FF312157146169EA29293D2A3F1250AB9CC877D448ECB53139E6C5487DC2931D45B4A74C34BBA11CBB965E1E664ECFCA54DB7BFE7E61DB2382E50076A70A9AA028670A354013C894B729945830B1125AA53F4D352BFF33FDBE7C64BF70A4C3ACFF3680976FB26368693D928122ED5707B453A1DD714FA9C5A8E6534D45B53A2BA464E217DC0461BE31C5763715BB66B6F3A4C0E7A3A4CC107602CC3B67487A7D162422468B5CF33C8E5A63F801C2016B15C40398F914CBCDAC9664B7601680346FDD3A499D89B5CDB7E77CC8A1215661AA34737149BD0734F7BE6A0C20BB94E6A89DFB9B0A9D6C4BFB86408922FDC9650DF7577E5A89215C8636D5C376F4596C329158964084200C91AF4A7699018C6D139F521204BC521110AA222203774DB88AC0AC94CB97720A71411EABEE0B2863C35607A617E761298825ACD91C73685198BE96B84A98AC7295142F6C19BAB0082C53A8A50A3A39EEC2A34E859CFA2C88C9CBC77B1BDB5377981F61C1FC394D70820336BAF21820D44C0956E09A5D8279F9A0681CB98BC38CB551320031F46262799C182B0355EEC82CDB58D750596A4E6BF1213490810415A4B347E13C9E8514890A0995843936BE342E81C7F4971BF9B75925D61AC8C961492A85D83FA8E33C12FA37BA08D7C681C521ED4060481F58BE673007A081321E01E21419E232283A01CB1A4481550DBADE263382EB93B7E42470B265027A933C480CDA340A9A4065B4BC47990833786456AAAB5A81C0A46E0076B91BA5BB4D4ABE21C6AB193B3A3671C18479DB082A706768A63109D2C4224D71C7C95755CA24B056C355E9C22CF5006662B3218EDD4B317B19962CB514AF123245B152EAC41391CB432C6CAF9295C66DA4E5737AE3D60023F46AA7A604C64A6C403306CA4B96FC2929AED5B4CE7E6C631B473D7D61CBCD19826AB82C0C58880D77CE8F9BCDBF59D645424BAACCCE334809B43ACB99248BBD966C88793A273AE857946902649F97B5516FA2EA2A84FCFBC054653852D8421B6B78C289B49080C8EFAF85DF195AB5562A03E7099C43C439A25AB41390B86DB4F57188F002129F3EA1FFDBB9E9C688EBBB26E0D7AC6EEA395B698A134F70F98480E87313B79444963557CEE82534E9C1CF10B74718CAEDE3BCBD98A68D9956FACD8A45E2184C16B14048B9D28E8BFBF5AB43D1B650EE8CF13148CAF451CFB144656052CBAF82E2F765C8C9C66C23B0CBAE0257D6000F247200AB87F93B5167478A27B42AD7681B6919529BB1430DFCC809E171A334B33A0527A1D9519C18130971C55F6EC172B86248059830FC57C7356C9BD8263F7D571D0F7BD87D2A1686A7C41DB9306558CBDF39F0176959A188B4D457B40C152B7EA09F6860D4D945E78C45EB68B579D48774EB26AD43BC1BE3C0AC327C80B4C1115C2CB58BBC24A18146470ABC223AD51FA10EEFC311F1AC02AF4C7432210233A4ABC408B1DB484E7885D239C0C2B9C4952E577A8EBC3D6A7684E711E12DB96E1F988DF423A395301D2C15FE2F1ABF708BC64147A30E2717F7868FF602D50FA9A3D0B3A0097259AC52057DCC14319C438E113DA967F6DFBA4279245B72CC86CF724C81769DAE271E18C0B6CFA84B916AC89B12A1F8B05D88527AD40346775CC832713146806A2B2884E35628169BC12F67811B507BEE3BBEBCA81AB93B5D700AA92898B3F5CB6E9D345483CA3743457FAD8CC5BEC2A8E7A22A41BA8B67641AB181D42ABAF94D0055206B648C81361F8486408B610BB3552299316B5C0B7D301D9F1C3D55621859AB2EE922C59B11EA9F2A1EFE277C534128F2CAE6B598C0FA059EFC2C24E8A0C2337BC2C57A0BC64A7FCE190C656B529D21244EB66A900288B5C484BB033020B9B9BA3019B72387F2746B3B893A1427882BC3135F0A17F8271F9C8480EB60732672D44336B32F851A283224144C480AA302C05836EDC1AC4569A6020130B341466322D17811229441C4513A2E8041C85E035113992F16799DFE8C1EEF3AFF8CA2F341628808A81E8B66EE5BA47AD0863C735A904565F036A85FB1203058137AAD2206C303F22D3027E732542A342CAF3376D6B065A745E31E865FC2243DA31CE08EABBF8183B4294700BF8928DA8CA78BC08490810C39747FD3851211B22F26451F6772E0C75659133E8D8C063CD3044DA1719855FBBD9796314B11DF8459EBD2D92B7FDC94C4C4C6D304E0494D88D83B5E3AA5761DF3B299551A24F28994D2747B2B08945BEAD4C7E3A5FA1EC46B73F87AF48578132EB080AAA37D31F0C2A041C5948E59F44F9 +encap_coins = 0359CBD196B3F4E9A0F8506A14A90AE501B00496958C512744EC20E95B065497 +ct = 894C1EF672678A0E6136F62C52A7E642FC5104AA2423C3BAC538E0E4893D5C4B3C204F5C469A956AD55EBAF3C82AA91BEBAE235AD57E810AA4C2E51B69C9FB8CF71E2B722BADCC98F0E0352E026D98D6ABCDA9C61C3196CE3C64D8093414079C9F464406EED36B21F1D66FC855D45EC2AEE1181731B2706EBA9AB1349867A76A0BC0321F8326218910F1F4F885F3E01027589B0BE2DE423A40D6DFF75D1FEAB428A17A98E0EC17594419EC27054B17B425128920FF787AC9F273A59CAFB6A52DF390E103F26F24EF5C2376A97B91BBD1F91C4A9C6CE0C06E676F7AD7F02AEBF41443A0BAC614BE48F76E5966B9740742A601FB87A45CAF1F903D65CD9EDD850E7F5D17648ABEF415B0AD79757611F4EF97F8FD2FA2DF4057E11938C13C6FB6ED2675C277CFB03594EB6096073D5D18F3A4FF829FDCC04B8BA3072205D8C7F69A61AD93CD8063928B1EE4BA8135103A4490FFB8C696E886BEC1DA525BC4FEE26E4B5CA04704BEAE4E30EDCD2C15F5B73C216945BAFF24E03C566399FA57D0949B1E7502459ED9C7D513B8E4F42B8EAF659DA1F3B68DC5ED8E44BAAE6C971B149CA42F807C2F17B42F606994590BAE8A3BB3EC00568C7EB47AD6D82A4B7A4BA9ECFBF84E0DAD327945D61AAA24F9141A3BBE4358BA43818A56AE46B230A937DD88BEE5DE7946F968F7F3AD6E50C6E3BA8D376B465584DDBDC5ECDF7B707F4F2B0E2D679422F49D38DBD491C899E3743607B93A43EA7A4E58615D2A267CAF3F9380BD8B2D9D17863E4264C2D17B5053F2A536EBA74C7DE641586DB7611A1B5D54677BD2B5F5999593894540B8C8244521076633B892F318C5AB83130EA76BE201DC59A254EA9E0164B5198FB2F6ACB5431C911931DAFA3065AE4C0B0734C52EB9C940B345D76387CF8B9FAD6E749119942104DA41A0F5119352ABA4AEDB0901CE8D1B24D4BC06F551CF53A3261C741B9E87103907991B1C7182C8E09AABBF786EFEF6BF82608BE76C0A95AE99E4098440A9FE8BB169415D96D668377485C767B35AA98E248432D1B3768231F7CDF6EF5975CF9A46715573219E31BAA56D5A68095761A87DC433849E9044EB555BEF2E0ACB48B0A3ABC1ABA69D946CC795A56A91E271138511E8C8AA2099F6A00CE880CFA4EBFA6B66E7FCAD0B856210FC057A972AAD6FDD539249A0D77BD891C4E7ABAA8F6EE48663801FD8EB49D2D35A103D85B29896C902A6CF2EDDDB8D9C1DB3071B91E6560E06369219F120FE60CFDE4E5DBB1908E58103DF3B5BC22A24B5951B49FA003E585F78A64EF0F7FADEAEF3F2DD69398CB9798B48ABE38182D8E531870C858F693CDD232FD6DFCEFD8DA72A3773B845A895EAB95FB5A0566D79FA683A8B1BCF889B43956BADA63577AE1FEFF4629352F0B4C16782AFF640555F4D24A1403540EF13205E4F119DF890F6CB9DAD0D9255CBE1ADAD85C1048F30DDF6AB98B72A6007B01044CA92126E41C958EF1D0589A56A40D0EE1FF03687339E4697BEFAC60D3B3860EEC133CF1554F84C9F1EAD58 +ss = E8167D50F2C74925434B2E86C2469AF294074C4B30EC4019677E2711F3F157E6 + +count = 50 +keypair_coins = 2D5DF64D62CB07FE630310BB801C658DBF3D97993E68626745DE39D37FBFC2B26CF04CA090E5805FE0FFEDD6BE0F254397155A7639C5AFBB30A7A75CFEBFF026 +pk = 41AA7B69158362A41767486EC3DA09AB4335FE2A25DD6C07366478CDA91C691C5ED9264F771124C1F3693050802F480F5DF89D5BE189DA765337A69C5C838488A0A4BA7880E91871FE346CF3ABB0AAEBADB211B5ACD3B773C9146CF97920E509DC202F79B14734C9777A567CD44A43500B5EB8005BF4C5A387701286639E6D9AC2574B33F2432B3A787039E34B2AE511A27825CBA7A8E09B401CFC6123D3B4C42318E7B032331230DA960A09F61A6A196DC185BB8BF1C1A6B691A06CB57F12BE1E45269C56490E256A83C13352A878C724242FF0681881160ED03166612D69894951D65B95E690DB46129D149AFBA2C835D3B138036931423D2F84CA51179466A1028D1601D5C397CC81B1B5E468869185B25095A0E5B5DD6A421B5C7ECEB58C4CF97B7FEB114FBC435C78857C65098D3017FF8A58F5927E5EE7712FA0C2962939B9D8C84BB6428B3902881188DF17479EC01E4709B7840235CCD77ACB0BB3A05995693781FB711D61F2883827A96DDACE29A9CD43EC6ABD4691BE1A758B72A629F6AAE1C795981C0D8BF8160BFB3B8F5047E1A410CDD49C6A42ADF0BCAFED1B21EEB95D504B1A48B1ACE228BB5E1508BF05128F0CB63F5597851B9DF4CAA5B6AC10F7F6188DC41B02761F840CAA42871C55205CD09771AC9125D6265DDC56A466249FBD774EE53756035349CA12A48237221BD53D7FF1AC18242442935BA818A3B50007A3FC14A2FA3ABE437FF14705DF0CB5AF97561A608A3FEA42A809A7A7D5491453C849DAB7ACD99636931C007A70D01655C7302F9A26012C494DE47839C1EA2951A87FF73968DAE83A86F392F021873BE4C75D2B0700A3B540F50CF6FB664A4627DDA9C75394032F434655755D12D4C781E2324AE00DD61744CEF6C5EC9680F379A26284BF9590A33350905E080E9B70547AC1CF3AD888F30232FDEA7BD2C184F9E1A9B6835401E737204C5EBF2B28F2B58EDD399F873C7849CBA8064B8A20C9C391841875B4963BBA2097B958D752739383BF26787E64EC215974B45848185F44B8780C0714B9651A7685E673CD1B6230C5D6639EA5629C20659802BC6F2B95DF274836241165A524EA99A941312FEFC7CDD2FA8016D69B652C3E94E73C70C97F65B3ADF14BBA2D31916522701D80252E9C7FBD7A17D306A4E1E02CDA405F3F07B38EB65824D5C9D8B91F7013784FBA0DF0348F21B00EF5A325C745A829714A5B9ABA16ACBDF029771D5415E867590CC5A57360A8969407F0749AB8A08A65E37E70146FC1B7BC40D789EAE83761E77749A07859BBC046B5A87E3A92A5368251127F12D27789318F8B9C3C1F79211922C852A0B0E10BBB631599190B49A66937920B3F113185D89C6E37DA5F7CE9C12D37C12CC24741CB9A79446606EABE8C9AB06D8963C959955F198E03A0BD127242DBF2A2180281A7B65F54C28EC9C6CAFE64881D6456C07607CDFB89E2CA2FB3BA8F8357720051C30952734932B08B508402A6A2F4F9C76B053C12A267618928032B5D9E41990A18C2C04BA7C2868AD9F4538FF1B494707EB9DA6B81374D7F9731F9A26089D7033A8C24600944D65871D313387B4101C0AAA27AE19D978653638577BCF4CAF48083EEEB57F401544D4DA3B73DC1C5C4A047B0A5EA85EDAC7BEC66F4D87FD2FE422E7DBCD02D1455 +sk = 3C14BDD913CDA0F267ABAA8B0A30A5EAA527638C01926623B0BC2BA55B0B596A92BAD72E92845828E8050F4C2F40873918E4524CEA8505208D345783F71202496721E361A582C5445FA31FB662A64941ABF9FC203AB4A741C9214C1B80B4CA617C4976C819794F53CACDB3509978A6DF5900016278388234CC1A09B804679F36718255B2DB60A7EEE5BC3BC78BCEEA8060354B54031C4C76B30A1A8B1EBB697FF8606CE408FBA72DBF0856E5B53B1E4A4ECC746CDFC77545B46060974C8A788A1D59529A9AAA571B895BE01ED5C23A0D22707D89467A5B9C662767A0D77D5C49ADCA983CE7401F34526DAB1CB9FE744BDE8C54C230705548B9ED00B9F4EA055466CDE77019324C0A7C9BA404B641A6530AE64A964EA47E6E80AAA4652C9A8B66061103F385479E50A780249A909C92B7913329A478880162D8857D58FA39D3283F5A2A7F8FF6ABFFE2463DB40728D06166627E9C92283FA57A2E46190AB869B6C21FBEAC86911284153B259BD2A442070D1CC581FDD333E5990F84AC67F47491DF01128F0959ADA0891C236E0ACA87755289C0E6C8FB136974C97DBB1B8871A4C70AA001FC950F0CBB3ACE4AC44F800252F5BD76FC1DC09A3D2F8860385A4BF8D765B49C5379140E0A2801DAC947C23803AB6B467F2BB1B019B9D53771418312F51B28DB18BE216794A0467D79AC8ABAF2C90F4B1B3474C168BCBCC1E6AE59C5781296467F2B8D63D5842D67935DD429BF8319BC0B8199CCA9D3F78C483B8E0771622EA764FA610EE13C1A188C56D0B5C17094C1B7A45321BB69D99A666A7963268A1D0A0491B8B5CB700A7D86AB9039330EDD8BB17CF1AC79355A82166458D2323E070AC109C98D201358F22BF9A3B513B8BBA43905D1A790A7B1A11F682583AB4FE0A82F3E316B7C70AFDD823C8FB7ACFD330B22F378E8597CA5357454A71197CB4039E9A81D7995D14587B479657584407B281886D6A7FE9B6170A056D2003BF898027C275B7C1C3D1D0C157145BA52D264699B969D60AA3873A9606041C20B17C90055B8016EA703539638CFF8AA0A219542BF51B68CF153A86149881C087D898EF9C3A089CC70A8656117131AA3F233C73CBF439022D224422920501C07243432AEB925C4023185D3F897A79A983D857C6D1422F9B22234005E00882F77C7704CC74ADEA4C8F3971E7964BA1A530C1F722EF696828C46946F0B329D909A47B83353330630359EB8E9B7E78ABC50FCA8C3AA9AF967C89F464430C815D1959A21A226A966A6434301FA600A4D129886826803EC49A54A34ACD62B50E33FD782937571816421341CD76A3570C17AC9C338E4AC4C51077650B98AE445D236904DA694F755C1A5B288275B517B4C9B896C49BBC18933E52D34969B6AD8ADD604B526488C6397842A54B6657B93386B0ED7D36FD2F448EFE43B0A144C33F729DF530C8B6340CD61897B3C50B0D8BA81228604F7A4BCD120CD2A7BBBA3B4818177C435A2B0C3AD838C6D9BD3903D64B32B8A8DA5D93589021251D14C920328C4063C2AF3C8C41228355527ADF41037E1AC6AA69A427A55354CA9D54025306C16F93154776B4A7AF9C9EF2298DBA9B669C40BD0601ABD410357B8940511BEB6C96541AA7B69158362A41767486EC3DA09AB4335FE2A25DD6C07366478CDA91C691C5ED9264F771124C1F3693050802F480F5DF89D5BE189DA765337A69C5C838488A0A4BA7880E91871FE346CF3ABB0AAEBADB211B5ACD3B773C9146CF97920E509DC202F79B14734C9777A567CD44A43500B5EB8005BF4C5A387701286639E6D9AC2574B33F2432B3A787039E34B2AE511A27825CBA7A8E09B401CFC6123D3B4C42318E7B032331230DA960A09F61A6A196DC185BB8BF1C1A6B691A06CB57F12BE1E45269C56490E256A83C13352A878C724242FF0681881160ED03166612D69894951D65B95E690DB46129D149AFBA2C835D3B138036931423D2F84CA51179466A1028D1601D5C397CC81B1B5E468869185B25095A0E5B5DD6A421B5C7ECEB58C4CF97B7FEB114FBC435C78857C65098D3017FF8A58F5927E5EE7712FA0C2962939B9D8C84BB6428B3902881188DF17479EC01E4709B7840235CCD77ACB0BB3A05995693781FB711D61F2883827A96DDACE29A9CD43EC6ABD4691BE1A758B72A629F6AAE1C795981C0D8BF8160BFB3B8F5047E1A410CDD49C6A42ADF0BCAFED1B21EEB95D504B1A48B1ACE228BB5E1508BF05128F0CB63F5597851B9DF4CAA5B6AC10F7F6188DC41B02761F840CAA42871C55205CD09771AC9125D6265DDC56A466249FBD774EE53756035349CA12A48237221BD53D7FF1AC18242442935BA818A3B50007A3FC14A2FA3ABE437FF14705DF0CB5AF97561A608A3FEA42A809A7A7D5491453C849DAB7ACD99636931C007A70D01655C7302F9A26012C494DE47839C1EA2951A87FF73968DAE83A86F392F021873BE4C75D2B0700A3B540F50CF6FB664A4627DDA9C75394032F434655755D12D4C781E2324AE00DD61744CEF6C5EC9680F379A26284BF9590A33350905E080E9B70547AC1CF3AD888F30232FDEA7BD2C184F9E1A9B6835401E737204C5EBF2B28F2B58EDD399F873C7849CBA8064B8A20C9C391841875B4963BBA2097B958D752739383BF26787E64EC215974B45848185F44B8780C0714B9651A7685E673CD1B6230C5D6639EA5629C20659802BC6F2B95DF274836241165A524EA99A941312FEFC7CDD2FA8016D69B652C3E94E73C70C97F65B3ADF14BBA2D31916522701D80252E9C7FBD7A17D306A4E1E02CDA405F3F07B38EB65824D5C9D8B91F7013784FBA0DF0348F21B00EF5A325C745A829714A5B9ABA16ACBDF029771D5415E867590CC5A57360A8969407F0749AB8A08A65E37E70146FC1B7BC40D789EAE83761E77749A07859BBC046B5A87E3A92A5368251127F12D27789318F8B9C3C1F79211922C852A0B0E10BBB631599190B49A66937920B3F113185D89C6E37DA5F7CE9C12D37C12CC24741CB9A79446606EABE8C9AB06D8963C959955F198E03A0BD127242DBF2A2180281A7B65F54C28EC9C6CAFE64881D6456C07607CDFB89E2CA2FB3BA8F8357720051C30952734932B08B508402A6A2F4F9C76B053C12A267618928032B5D9E41990A18C2C04BA7C2868AD9F4538FF1B494707EB9DA6B81374D7F9731F9A26089D7033A8C24600944D65871D313387B4101C0AAA27AE19D978653638577BCF4CAF48083EEEB57F401544D4DA3B73DC1C5C4A047B0A5EA85EDAC7BEC66F4D87FD2FE422E7DBCD02D145572BE2F5CD569E6229F00014854633F7B278E90AF4EA593411909467A03E29CFB6CF04CA090E5805FE0FFEDD6BE0F254397155A7639C5AFBB30A7A75CFEBFF026 +encap_coins = 894F98D7435D1C0C3667C22A218A449D07F117D46FCBFA4BAA09F62403827464 +ct = 5B1B3B72E2F199B42C043502EDDB711E53C24054172565D41E66D4282537FEEBA7504469C7FC7BCD16633DE1272F527A3E42830DD74629B9781BA33AD866C441932768B3DEC2098C48F2CB512AD19AA36E9B78C04EBF1CE6C2B94CFC3304EA210AB150F589E6B24A2FE936F39633A5C4FA020EB29C89DB9EC20EC01B37724E43A207B6D3F076D0693EED88EC41448225C8A06A6893AEB8571D0982CF652B619831DE79C7F735D2ED86A742C10F0A1752CBFC68519B67A873C1D48F8C8CB9EF3696A9EBCFE2A53F544BDF1286AA14643544FFEDDCC11E67E45A6430E26743107393F8C2AED228DE21F1BDAAE8746F903CF77AC1C662C1AAE7D4056625A7D93CDB7C453E27B4A1E105DCC9ACA0BCF3D868B371F3331FA557C2A706AA8D97571983036F5B2BECEF7244C4FEEE553378112C683FE3CB7ED4B4D03B77BB701868F803ECA7122D2BE024B2FB6CE14F8F1F6789848F866A77EF6C85F39F065B724352401FF7CF3B990DDA7AC7F593BF4379E986CD461E4CF14116C4F7C9F622430B0393DC5D30AE63DFD41ED02C1827EC48C22E91301279C6FC28AF4564495D9F610C6DF5FD66B915B148E6A1C82FA2F16E8A7A1B369A7DA42DCA7B58F00AF9ECA5EB52A78668CEF4C84261BD05CF300CBED95C15A231A205FF36E5268B876322921A8CD5486AE5A3CA1F0C1A2BDFDAEFEA827849C78DFA21AA9F64288DE7EB361D949C3B13BDE52C498B17B4DAB29DAED805F6125DEB6E54D3D1C846AB82BD0E14F26A5DD21148590EB20878324E1BB387217F8B016A1F04D7664514BC6CB455480F4EB7FD57C1F84887246B7F799C570D9F1831F62A21E6A63D4B2C5D23593DF1D5A54B3BA197411BF561E9512D7209A707F7ACD6897EBAFD88A19BC50A165978AC278F12D6D34268EAF8AE6B32EEE3FDAE2DDD6C56E38FA99A046149B16646D1482D6CB4D8AF4A8109BAAE010E2763E42C240A61BFE05EC2D9AA45AC6E9FAD31DA9CC250BFC5279313AF5A65B6763E5D780B860273B08F77903F067B51E4076380336414AE1E8200BE6B6100E9143A6BDD3C9C16FB22E0C8D64FDD23688E4B04D4B8B5765691B7DFC4CAF16BFEA2A51DC28C8B5B77305B4D270F3DF5AF41450923D043D3B743138D45A8090FC05AD3A4B3EB2CB611BF1A25B3B15A9537AF49DFFA6E2A35696F4A589B0F22F028AA1999865F09C7AEEC901933D21E9BD482F890533F0ACACBCF19B71B7A4791B8BD39DF6F2EA2AD08C7DADE740C5B8D045586219730D055133840BD66D54B23092F55A80E293E6F7B34E6135A2DA08737D0068AD449163B2D2BABE3913885980A12B842D42AD82BD21B093A3108B5EDE9CDABD5A6D022C942662C4420591418D8BDDAE8BA8ACBED5BFED3BCB5678356E422227A88E3B4675D425E7BB72F79256F466FC3D35F71A439B01E1C212E59E4A0767E14E547E145735E1E0F9C0739F76A0AADD8B052229F02628BE9820DA505F7046DB1427BCA184389F484E606DE4359EDDDAF7BD54759C92248E352C31BCDED590C7C0276 +ss = 08BE70E91B98730E5C7DFEB15C1A020E31853E012B04C0B70CE2560D3A6E27BF + +count = 51 +keypair_coins = 25056D1B8113BB362DD979D98643D7A7AC9C4F95994C0BA060609B6D07002FF30D5EC1BE89D37BEB810DB438778BAC52CDC1FE8F5C27AD825639E12ED908FA31 +pk = 32B6C92F059443501427AC964FA569CBB074C71053F179BF1963AC704489EBB9936E23950E51AB7E26A98D6031C652701FA4AC59AA7C15D88C0337A067257B8D916DB0456FAD9622F44A928DF6CCE84A3E6634C9CACA246208920C487B9A666342ABC389C14C499785BCB91A95DC868FA20D25B08AC0E48C72E9B486151F21B11731D1BF049174ADF279F9020AA98C38372877299C4F54A4493A3B20F8BC71CBC490B363C4162055CF3A5C13650DB1154687462FC01B5E5B78C9F603255A24189B808358E17E01B9CF736A77D78A32520B6DDC9C1DD65A00E84B562B607B6AB472D5173AB53A97DB08B322E95CB3378D5D088CD3CA6FA4739C6633A27D686ABF040DCAA766BCC18D6B8A2F91E51ED6D49AA37AA44531BD9DFA25C116A842E50F53A68BF1617245E8B7DA778EB3343D3F2575EA84627C640A6509133F4C5D78151A6695245659955CD3824F264A7DF58EC87C8AA3066ECD1B68D848CB758487E647223C0154388912ED028AE364A9FA9A018D8558C3E9B179B66F2488C2BE8792B1849FAC0401A9756F209889FA637CF7ECC4F2C0249EB5C6F7E0219FAA2A9433759AC70DABC7BAAB623C2023CF7EC869B75BCE953CA3316B7A6FA685BDC7C8D467273268A0797B8D6FE57DDFDB03FFF7AD3D5B9C80DC1939720EE8810933A04F51B78262910D7E28C0EAB06B91980B65056472A293F2361183125670AC2426E514790B945D6B09C9EC354FE7C895A30231D95794F89EE60761AC9B2AAA9A75EF168C0950AFB498915B2518E010C3800764BC5A65C0C54B2AF686B7D954E77BC4CF8137AB398FE93429DD0AB80FC846D4CC8DB2B9B2B4BB36D4C4121639C1E74622E59250701302301B4DF96B2FA62736B29CAF0866096F842898B2C6012B93B5AC23D1F39E192002FF0B9005FBB8CFEB8930562A4E0AAE7A40C5032B8B33D0760D96C7C203920E2439D3EA02372C7F5D80B92259349076BA20C3AD4FD21752A3963CC5126342A963A363C1157F33189732F7243E465B14969F1CA199AF45B50851266742151A235A8BA9A595534BD6AA31CCF52B8C5885D571A93D2577C57057E2CAAE68C9C84F565C72681FB15056A345236B02A1E5B13289388F035A2F8E03402F8B0A44259179A904C94725319ACACD28AC1E449B87E8916091940E33861A4A35A8600267F04FFC6A3E06C60858D578BEC60EE7716FD4B0225E5CCEB5FC5437387522200F66FC880E0C874119C71F462CB4EAA24E67BE77CA67278344199B27E2A55B50F372B65345122225D7324CA9504CE4D12BC101639E93B331E3B60E1B520E03C9703A69F54C2B1A52254AC44B86F310A711263A5A9B87A7116EC5654F7297EA76B63F939C1F49CE99D52BC58876160401558193AD98C7C8F4B6822712429679214BB2B6E8B324B58E1F57695DC8968BCA7EC3717DF12C1279408183B49679B349E2E45686E722C3A57BD9547A65656CBC79AEC1D3B129837D84A6975D018C7AB04C88775E9C68839955775FD66AB02AAD69B76307F51DB2AB33915ACA61969AEFF14674A557C322AF6997B1A8D9C51445884779227EE742986446EA1719808996049038E0D9AECEE828BA054417CC3A683A7295066AAEE9CB429C4740531990744A987152DCA2388BA27E3769C8BF287E54E41CBC0ECCA95CE621F2 +sk = 2D149D32C41889573CCB5166C597C3FE207CB806BD13A8A7BDF86267A93DA7110A31F22221A17A5381C367EB1B9CD00810189C1F12358B59ADBFF2060ED6AC6712C660B51B553402D406BCC1D2444A863B6FF261E17AAFFFD01BAA2B05CD83050AB460CED09BC7C0C2963784B7F9798D837BBC0483001539F0EA65A0574B46785645019B25130095725FB71556ADD2832EA245E250973F504DC58A4BA3C45CC8259E7906588D688F4F4CC79A1A955EE31E0FE931D16CC9DA767C3A48BAD09874F7730FA74C349D2163638AADFB59A462E904C5530A0B485541E391B6037041EC6A0560563F186BE2AB97A42520A7DACEABF1216E16870437CF012A6B6D082BBB23349628AF4DD8CA9EA986498A80EDFCC2418C3F5A627BA8BAADF3739B3C578B2F193F57B72DC2827A2DC379AA31B6127C65352338C012CFCCE0AF1B33150D488CF47134E06B5EBAF0432C172090FA6671670BF7B66002E135E7C43D938343D5729E22E5597A06209E0793E65417DE945B5E1AAEB2740FB1B350C902C1390A97586564FA94120CF7538B21AACC0AC0831B477E37C9E984B73EC91ED88705EF4CAFD2F15A50227C0E4C0627D2A6D7875E9605AFEC339799690BB6F0A5B01141A6976FD51AA7A079827D37CA89726686BA95D6F275A59341FA229B4C163C260C4DBC4587C50AB8F0AC777849B5F700209F17C15251854C35AA23C20D486122EC8145565966F4A067251B96461950AC2171F1996E94517610338B88C091C356804CC691922449DB0645A404AE4A641D1482B58E6230C7965C23605D66E96C8F0418AD786801D7530CFA2B5B757E06ABC10518B274E3992E538922B717866C7EEF827D2BB4C05FFA3322981CD8069DFE028D878A8B7A002472D302253A83AB84ADF5530CC5F4671BF5219FE600BA97ABD2555C52857ABB76CCF4760ADB30346C55AA5340B189E1968F72999E64C0B76297D232412B3C9384783457B83309BA7EF74ABD50D16EA1C32A2362AAEBD02DA7790FB8827FF368261CEC14F3A2095323502446703783CA9B6AA595D690031297C59B25414455C155924A47896716AC45330CE7069D131B75A57769FD4B4CA1990170A3570160CDBEF1C930063D56E3546F09B1CD913C82057C0BB89111E6B1BBA88EB8CBCD72078FCBF5059FE25C84BB5607D7B20BD0733FD96DBAE2ABD9531DDBE3CDD89A926361BB56EA0E5F9181B2C8C1532312F3F9005135C07DC211B824B1E63AC96E64845C35C41E0313511A5D429663796ABF2443908D353766D40F47A910FD04A710BA5D6A5B301832A5B6016338D8858B220E8219512B643B8B60CA2A9347EC39638B787FDB44CE72408DCD2504DE24AF91130ABC09B2E7C9BB26B3393EE06FD77019ED3466E019AC92A416C9683DA22CAFB1A9AD3475AF17A15EE9F97446096647578F77FA02E79904FCC008FE509425446CA2A4C1DFF32CDFA4CE120230BB5CC9CB49A2E2841BF69A1C49A762EC171698CA0445201C485A15FEF2562EACABAD3259119C9BA4185677E03AA0470CA848709C4BA0C8E5814416C5678033C819773DB36E7A90C65FA82FFDF6921C38285122163BC0744DE5C5363C9A973428A6DAAD20E5A62D37017B464DA7637D32B6C92F059443501427AC964FA569CBB074C71053F179BF1963AC704489EBB9936E23950E51AB7E26A98D6031C652701FA4AC59AA7C15D88C0337A067257B8D916DB0456FAD9622F44A928DF6CCE84A3E6634C9CACA246208920C487B9A666342ABC389C14C499785BCB91A95DC868FA20D25B08AC0E48C72E9B486151F21B11731D1BF049174ADF279F9020AA98C38372877299C4F54A4493A3B20F8BC71CBC490B363C4162055CF3A5C13650DB1154687462FC01B5E5B78C9F603255A24189B808358E17E01B9CF736A77D78A32520B6DDC9C1DD65A00E84B562B607B6AB472D5173AB53A97DB08B322E95CB3378D5D088CD3CA6FA4739C6633A27D686ABF040DCAA766BCC18D6B8A2F91E51ED6D49AA37AA44531BD9DFA25C116A842E50F53A68BF1617245E8B7DA778EB3343D3F2575EA84627C640A6509133F4C5D78151A6695245659955CD3824F264A7DF58EC87C8AA3066ECD1B68D848CB758487E647223C0154388912ED028AE364A9FA9A018D8558C3E9B179B66F2488C2BE8792B1849FAC0401A9756F209889FA637CF7ECC4F2C0249EB5C6F7E0219FAA2A9433759AC70DABC7BAAB623C2023CF7EC869B75BCE953CA3316B7A6FA685BDC7C8D467273268A0797B8D6FE57DDFDB03FFF7AD3D5B9C80DC1939720EE8810933A04F51B78262910D7E28C0EAB06B91980B65056472A293F2361183125670AC2426E514790B945D6B09C9EC354FE7C895A30231D95794F89EE60761AC9B2AAA9A75EF168C0950AFB498915B2518E010C3800764BC5A65C0C54B2AF686B7D954E77BC4CF8137AB398FE93429DD0AB80FC846D4CC8DB2B9B2B4BB36D4C4121639C1E74622E59250701302301B4DF96B2FA62736B29CAF0866096F842898B2C6012B93B5AC23D1F39E192002FF0B9005FBB8CFEB8930562A4E0AAE7A40C5032B8B33D0760D96C7C203920E2439D3EA02372C7F5D80B92259349076BA20C3AD4FD21752A3963CC5126342A963A363C1157F33189732F7243E465B14969F1CA199AF45B50851266742151A235A8BA9A595534BD6AA31CCF52B8C5885D571A93D2577C57057E2CAAE68C9C84F565C72681FB15056A345236B02A1E5B13289388F035A2F8E03402F8B0A44259179A904C94725319ACACD28AC1E449B87E8916091940E33861A4A35A8600267F04FFC6A3E06C60858D578BEC60EE7716FD4B0225E5CCEB5FC5437387522200F66FC880E0C874119C71F462CB4EAA24E67BE77CA67278344199B27E2A55B50F372B65345122225D7324CA9504CE4D12BC101639E93B331E3B60E1B520E03C9703A69F54C2B1A52254AC44B86F310A711263A5A9B87A7116EC5654F7297EA76B63F939C1F49CE99D52BC58876160401558193AD98C7C8F4B6822712429679214BB2B6E8B324B58E1F57695DC8968BCA7EC3717DF12C1279408183B49679B349E2E45686E722C3A57BD9547A65656CBC79AEC1D3B129837D84A6975D018C7AB04C88775E9C68839955775FD66AB02AAD69B76307F51DB2AB33915ACA61969AEFF14674A557C322AF6997B1A8D9C51445884779227EE742986446EA1719808996049038E0D9AECEE828BA054417CC3A683A7295066AAEE9CB429C4740531990744A987152DCA2388BA27E3769C8BF287E54E41CBC0ECCA95CE621F20831C75B153FA17D336A79FF6E88DDF485DAF7B1B0BCF39D8DF15319D52AC67E0D5EC1BE89D37BEB810DB438778BAC52CDC1FE8F5C27AD825639E12ED908FA31 +encap_coins = C07D2A9F28995F021A974E798A55AEC0230B11B9EE542F69925D009159425E81 +ct = 9A0BA7D006759107801AB28BADC32C472825457E464073D1D52BC57A79E6C7ABB52FC5ACB592E1C1CFDF6CD57B1329D08B153CAB46F1588CA60D2730F756AE8F5A6E87A500A06F1E346F5FC894ECB6113679085C101736A7C55DD70D1071DDE02EF7A5639EF19D37CBE9C3B0785D0C7FCE5D6C600EE81F71898B8EF6449A995D57CCA2305F82F7B8D40EFF3C5F7C94E63B72FA334E3F68D1AC6546E35BA0EEAC70D17FDC8BBAB982E453B8C7879E2072BC84F4F7E9FB8DD26403BC2098C7A99E0A35AFB235C5E73EC82925C4B74F9A38F3A2F55AD715692EA5545A7C9CE353870A33B16DE043CD5821BB94A82D6241F0FA48CBA5E7E2D6E37CE0D42FE36B7845B4363C16692FBED5A8410B86C33D8C846476AEB385724AD77DBEC8263A59E9AC51F4CFED239A7D7CBCB41B6905FF2B082D6D6555622B8E1A055F4D8FB5BD891A5AEFD038B6C31CCEEF02E5C85B683AEC1542D39EF40122FC17C395349649B66748D9181E53FAA4AE6BC6A7CA25B0D7C386240C0D8C8D9D0044A126BD5BEFB1ED0C5070AC5397CE118AF53D7B9437063D3D2AEDB640ABBE5F10DA9379722B22D1ED79F8EA9FFD66D4505822B0393ED1271396A29F2A20C8349F07148E4D4C787497B36A62B87229B4015D2D825AB7EAB4408B52267F0D88FB085E640985A87CBE6B12739DF6176FDC3E8594F9B7904146162520EE72077D3375E43E6BF4B0CF072411D70CA3F66D586B3ABF8450DF60B7C27832AC0A6F7DF36550AC3CD3BC279DFAB66813DF6C31143C2C0126258A796C23BC21629D3E89228F8D10EDA4F6D2FB2CCE407E864F7659349E2AD5F792DA58DBAEC9A5F6BEF7AC860816A6C5DF16A2ACDED6AE2385175C88917A9C3197C417699CEE034BD02F6F84E099CD4E17C15DEDB8D02A112D755EE071BBA37C4CB22AEB7874DADB041EE912EFCA224E71D562863ED3DF6C68C67979258C7BBFC28F7061765CDAE9C5B126E260D92708BB43F8C035EF2E95CEACF0AB02C2729D9E87C41FB567C8161A3A3CDCD4F36AB44F4165C55A0B944AB434ABB3601D8FFD9AA29674CAEDE9883C72D5FB1719691D08C9B4159455DD01FF4B76FC8B59658A286B7C6DEFBF319ADDC9FD92414798F60698809EC238BFC6056FDD5ABF82CC28453EA2CB9BD36624A7FC65ECC8493CBFDC6F6E9FC86958C87D9E77AE802CF2338E8D520A2F5B4460B50F6F8534E2CF50AD48EEC53ACA87B5805211794B262BF09D5BD87947347E22395237F32F820642287FB3FA28BC2E3D07864D0FDAAA3EC79FF1C56950B87FFEAC816F7124F44D637F8AED447CACE6BCB6D822BA069E3D5AB57D0D9F90A4628EF0BB32A7599978765746A8D7DD46F8A5D58E3835E5E544BBAC01D4ECD1C320ACB70F1DA6CF0BBBD016DA83D4C7CBB0132479D4A2A7077D4AAED37DCA4CB55F99184808C96C677ACF7EEC5B745461B76909ABD7EFAE9009A071E4B74B2E444DB2143DCAD5E63F3D0D8BA61B48677B1826F41F05A198686E86BAE9FE6FE3C1105754E51A3D314A8E02EE0EA2 +ss = 11B7BFC2474A85E9C699B20BA61FE50EF52F9331E6D815CA24EFA4C7CB5E0DED + +count = 52 +keypair_coins = E4D34E12982AEEB1D62FD488D9B9E28557ED3429292239FB4F76FA9098009ACA91FD1369E8228B3979984C15440EF268FD3629C186D6CFDE02B0F8A7908A7EE2 +pk = 7C6B065EF3308AFBA0CF3607B2C98D83F76F7C058262B55F7C0746B3C22437F00DE9D7CB69F40AFD60AE74B0506AFB96E30669F51C464A27B4F177666F92459B293DC208A0DAC5654A8058A8FABC2D1853009743A598BAB2C248068750F01227BE5A4F7C4C6948F9167E88894D43B5AA44687FF177DE837E2F0537F708A8F73A11FE6632DC285C9026BB23424AC2D1CBCE39AC6A0A7686F088D617B096436C9F773E7CC50CEA1C08DB20C2949A7878D18E7372CAE746B04558A8FBE97DF0B9A69090449A507E6E1C07A35680412033127037607B2F0502690B47BD300A84C041650DC748AC2C060260C933A0B81847243FB3267F3CC8DBEA4CEA40790F37CD0373A71EC00634BB3B3B087A82CCB1E1DAB77300156D8094A1D61D1F1BB3F977B749C938AB8092D71C93394856ED133075E2BBDD3CC0F27C2A2D34BC0F633F5E55C0A6C989B1E277EE9132F8779923EB2E22F78A1502BA5E55B6D53A05137867C10536E672C7336A3EA1F237263A6046F260ED3871F1D479BE589744361A0D819439779075CC47A5A33E18326615134D9F09B68B6873C6CCB682F6B75662CECDF5432C37189AE09FAF36735EA01C12F9CE64F4116D509C70E0072A242FF126710D178DAAE86539226C92D090D9B60DC63539F51B46DBF24CC8D54EDA255E0AC19B03D34F5A270B6FDA6D6408BCF1D2A46824B5290B8A26A8131402C9AEA052D0101759345F86A66A4D238A20C6531D792170C52DEED889AC3050FF87C659524337830C205622A989736B788092101933C0073C0B686106A9B88C17958A8711D272392AC448B01507634DF4A23846AA9D594C80BCA99F17505AC1793F2877BAB4F1B211D2985842795C4C1B9FC018DD15B510556EF89B687E6B01701CBCE0B56159A90F7B2C6FC1039AA38449A596C087A62B2EE5A7C3799F5A601BFAF8B9C598834FA115AE010F71167FD41B5CCCC45146009752F380CDC56453E554CC779604F976FDC34E9F135261EABFFBF00AFC514F2699AA6A5ABA0638542891C6858C7F6C6C4A12E4CE2D89B50B04C33EF262EE8B0D9A7777D3C56C85B1BAFAC7052FDBAED24303C843110C1892381887EB351134798B9745BC229208B277C2C999570075903DEB530BF22F7906B75DB35C3B24B04751BF6ED41724058C70988952D86B48519264D25EC2B817894AC370BC081362C841EBAEFCD7625A67A48E3CA492D63BB9036A5B9A35D21470586510ACF76FCC683035B18C05ECA7D0702E0453AE00A8144779117D7C19CFFB568A3C0959193D689A6ADBAC13DF43907FD45FBF3313D49425D32AB9D81C6BD9B3486C3636E6E0015152C1CC78C809F3A3FFBC6F0628609B996980B3C43294C0E293940CD65A34BAC8FCF020CC611E3E2C8E52F5AE886B8D9480551D012885318E5E6C1ECEE0A3D75B342667C691D19F34FC7946E7A7047097F7938516CBB6C7F3ABDB85B15E302A5547198AC0B89E7C2BFBF74050970E8DC746CF16BEE6147076BB89C5124A89E070A785427CEA590301CEA7AB28ADA228EE7BC7FCC17074063358A706989C8D6C82677287905722CCA0A24FF91958C44A3044787EAB3599EAF241EADB932B06B151A1A02BA8B244E9262B96144302124DDDB5584ADF5FEF6BDE5872A551B6840E3A082A8AA6DFB7232A6813367038CC +sk = 85B01A4A587BAE308D39792B47F71997FC55FDC2746F881DDF7BC215145C56D399C6447ADA39230866384BB718ADA160A7349747867CF695CCCDB8A4F1FBB3E573ADE85CCF38924F36482BACB9798D481521A0CAE103CC9FC9675184490F281D3516CBEE910287758A4C374C0A4313F1C29251B1655522936DC329F540A1FD887F0C775823436DF736C367AA3013341E66854FB39A9EB90B23CAEC3E84690AD531141F39914A77A767A47B60F2868CF11311AAC9DA94C72E9624D21814CDC99C89A4B35E1C4C63CBB3EDEA06888162E180503CFC6616B24D270601D0D275C03109DD9486220B66D523A8111B4DE5B99D236586A09A4F77A240CACB4A737C770BC4915F55B609075EE68499654BAF90622647052A8369872A93114C80C60FCA1345E20114552119669A0D3A7188D3326017CE92112F0B715C26B40851683478E5C719C11088F00AAC577F5A8763D4A76E3CD00CD9061F021672847BA0D4785EA7B1B28FA364E64C4FB7F718D2352B1FC26858B6552419A4D8E1B22F8C7992E3B5373183D040948777C356D514FDFB2D0C5A636BC5416A799270E5C975C0A62F3A76FB134646B333B75582F7F2C51CF4BD37835C3FDB2CE1EA86306362F8216D27E40CA43A45EDC9554F08C604624659AA10EBD29E59A60F7BD66EEE447F4398ADDC73387579148BC4A26B6749C961926FD34296DB3044CB0D2D1312CA6A6755EC48C46865A36A6330A9AA5D39167C6062EF1A7C82CA5C0AC1B163B85E43C278312C4304AA127D66576E7218C2D0C850108076109919AC6931264DC2E919FF441875E607A97772FEB45F14881FBCB37B4D00B45F416CF56C9501C6598FF9425249740EACCA49D92E31D679A4F16C3CCB4384DB45E47621719C6C585CCC03355216D43625C08760254AE3CC4AEB1287CD5C3F0911641B05C7036C9BB360C72902325830BD25EACB5A88ABDC926E0F205EE857AA66C8C47E434D8BB4A6CFABBD8B681C427846F0E18A2762152B170063B489A3E6B8BA06B00F14A3F2E6AC00725E5724CB629B7A312B3A1221C9460917C07637B71050BB644A38A8192270C857D43EA9304495206BF62B1C4C11B04A817AAA996B2A266CEB8A80AA46674F16207B61BFB484AF461B6DAD9A9E6C22C56F81BB355A6705310E921239497809012159E78A8A249796C155A9DC7CBFE7384DD092239C29773F6610E536A77B879EEF054C5E539A381043C1B53D69566A96D1931B166C6F066CF0EC81E7492A200876D42007724AC916460A1266AB77A327EF1282479685BC43A2718C93A806C3DE3A0CB918C7A734CB04759341C5B1496679987AA5DB93B70F903A5F4024C3DA6FE8BB2EBC27182E1179611C61F8F6214069AB83C7165A46CAA74BBCE0897FABEA9B6B58CD34E7535B0297B4359960D23E4A498CF7610601D92AF2FB6163C4B2761615121B62A7900B08D61065C83A69D51253D48399FC665962AD36275ED3774F114A079F13B8BCE420B44638CFA6CE6018B58BEA422A8287A6680EB21C75456592E8B24CB6C26EC3D3C1DC4A19CA16888E9B7FEA1A863B7A0143307530B533269A8B692CB4522AC1AA27B01D38603FD009E1C02017BBB36DA2049A2C5045A63081266D7C6B065EF3308AFBA0CF3607B2C98D83F76F7C058262B55F7C0746B3C22437F00DE9D7CB69F40AFD60AE74B0506AFB96E30669F51C464A27B4F177666F92459B293DC208A0DAC5654A8058A8FABC2D1853009743A598BAB2C248068750F01227BE5A4F7C4C6948F9167E88894D43B5AA44687FF177DE837E2F0537F708A8F73A11FE6632DC285C9026BB23424AC2D1CBCE39AC6A0A7686F088D617B096436C9F773E7CC50CEA1C08DB20C2949A7878D18E7372CAE746B04558A8FBE97DF0B9A69090449A507E6E1C07A35680412033127037607B2F0502690B47BD300A84C041650DC748AC2C060260C933A0B81847243FB3267F3CC8DBEA4CEA40790F37CD0373A71EC00634BB3B3B087A82CCB1E1DAB77300156D8094A1D61D1F1BB3F977B749C938AB8092D71C93394856ED133075E2BBDD3CC0F27C2A2D34BC0F633F5E55C0A6C989B1E277EE9132F8779923EB2E22F78A1502BA5E55B6D53A05137867C10536E672C7336A3EA1F237263A6046F260ED3871F1D479BE589744361A0D819439779075CC47A5A33E18326615134D9F09B68B6873C6CCB682F6B75662CECDF5432C37189AE09FAF36735EA01C12F9CE64F4116D509C70E0072A242FF126710D178DAAE86539226C92D090D9B60DC63539F51B46DBF24CC8D54EDA255E0AC19B03D34F5A270B6FDA6D6408BCF1D2A46824B5290B8A26A8131402C9AEA052D0101759345F86A66A4D238A20C6531D792170C52DEED889AC3050FF87C659524337830C205622A989736B788092101933C0073C0B686106A9B88C17958A8711D272392AC448B01507634DF4A23846AA9D594C80BCA99F17505AC1793F2877BAB4F1B211D2985842795C4C1B9FC018DD15B510556EF89B687E6B01701CBCE0B56159A90F7B2C6FC1039AA38449A596C087A62B2EE5A7C3799F5A601BFAF8B9C598834FA115AE010F71167FD41B5CCCC45146009752F380CDC56453E554CC779604F976FDC34E9F135261EABFFBF00AFC514F2699AA6A5ABA0638542891C6858C7F6C6C4A12E4CE2D89B50B04C33EF262EE8B0D9A7777D3C56C85B1BAFAC7052FDBAED24303C843110C1892381887EB351134798B9745BC229208B277C2C999570075903DEB530BF22F7906B75DB35C3B24B04751BF6ED41724058C70988952D86B48519264D25EC2B817894AC370BC081362C841EBAEFCD7625A67A48E3CA492D63BB9036A5B9A35D21470586510ACF76FCC683035B18C05ECA7D0702E0453AE00A8144779117D7C19CFFB568A3C0959193D689A6ADBAC13DF43907FD45FBF3313D49425D32AB9D81C6BD9B3486C3636E6E0015152C1CC78C809F3A3FFBC6F0628609B996980B3C43294C0E293940CD65A34BAC8FCF020CC611E3E2C8E52F5AE886B8D9480551D012885318E5E6C1ECEE0A3D75B342667C691D19F34FC7946E7A7047097F7938516CBB6C7F3ABDB85B15E302A5547198AC0B89E7C2BFBF74050970E8DC746CF16BEE6147076BB89C5124A89E070A785427CEA590301CEA7AB28ADA228EE7BC7FCC17074063358A706989C8D6C82677287905722CCA0A24FF91958C44A3044787EAB3599EAF241EADB932B06B151A1A02BA8B244E9262B96144302124DDDB5584ADF5FEF6BDE5872A551B6840E3A082A8AA6DFB7232A6813367038CCB30CEDC4316B63D75B641FBAD2F33241A3FC47AB8B3EE1A3ED597E5B04F77C6891FD1369E8228B3979984C15440EF268FD3629C186D6CFDE02B0F8A7908A7EE2 +encap_coins = 135CD8F8172371CEF32284EC766614CFDCA11DBAE8797B92227DA5E487E16435 +ct = BAEA3C15A6503F0A489BB75E27CF4BF39EF7C90BCDD9905549118069695C0ABF4E36679776AD3C463734FEC395A0CE79A6953BF65E23E5D2D7ED9D64ED2BD3C51F6EA58B4F3BF07E9DC2A9E8B9B2F62573B3C4B30104C22016611F0B2704C47518384A6343A8B32A176EFBC224F048FDD6DA8BBDE99775F69CBB4F4D30BBADE0F876E5FABD983C50B8D4FAD49F07510EA7AB6ECF2E742AD8474A49D08B42216C2392E24EC937093E64A46A047E4425B79AF3D491191D79322B8ABCF38CE26408B6E29873F35A65829149F313C96F9C9E565B886665093D9D81AE1C2F9FD9B2E09FF9102CF8D3664C112C0FA3A61CFDCD9BD287CC4D8696844C6A43279A3827EFC7DFCAB3837430CA67E03E328971D2218DD6A53031860520CC361430AA804FDDF96CCB193A477C84B306411A1E3D3ABAB1230E9596E872A01D9305289C0A74CB44983CD0F22C9DE4AA87116D0185F53863BBF03FEEF768E151DD1A504BC708179A87E245D871D3D9FE47E9369D8B70D668F48F57FF44E38BEB2885F5CD6AB518182A8A17958E7355781D7C002AAFE97E4F2E4A5C2F1A32D02C5981593C577567FBEF70E9437F0452D26A67537904310E9A776C326C8103C7E9D52548C5902B02DEB93DBD21FF8ABD4A741E7DC35F8D61B9112E46B3890CC8F1B0A15F1803A94B4F9525323418D987BD2FA9566991405DD403E86D722D62D7A7F3217060182DBE9E0DF1889CD16CD60A39EB0E32D2B5B99CE83ED493BF21049D0AE8AEBFAF41CB772DF25A4925F3C0E5772575E883C16CAE7FE7594CBDD59E0F3416629D617D46329A2950D05E8B0070E090B75AF3A23D336D2638C325621C5D39B8B44CACE95F6356F0A6968539C141B330480166ADEDD02EF081C58A5EF2497138015975BB9E3E9D0A28C93EE833887840339BEB6C784CAAC7ACA383B92D4CC00D0CAEFC432C6B80E01273AFFD1465DBE3CE753EF87BCA5AB25ED0CBFAA39806E7829384034C1239892921671F94C16C3FC64510C19867101915D51DCC10A41EE6DF7A529AB467C6667C4E2D3815324181C7241FF8CC4C2140F2FFD460D5EDB9AA9BF1C0CD77377BAD8F6438445DB6E0AFD72B0E5ADDA43F4F76B81A5963361AA0852C2D752369939C2DAE22CD7C8BF1FCAE7E9AD531C631710D0CFE8B92B0CAE86254EA62077FB37C300CFC4986779D96637C6D371CA709E1A3E8DCB6EE74452557C5011097D50BAEEAA469D8316389E869E3349A9657F07382D39815086B6122E0CCC3F1F69AEF65F495FD41C44FF4411647DC40D085C3AE17E567FF7D6E1B07A5D1C39DBDD8A5D020F959660209B5B4F77755AA9776191DBAADF143156DFA01E99E05DD66FD209022028A8652024329B910A7CC0D681128B6098A9961F866EE987A7186BCD5654F4A20E0A6F163D6465FE0D31E80FA14330692A1CA642B4F6C66D21A51FE880617DB46756E6CF9B00C066EB7FF3D74DCA4A53315640B6A3262C36286690681BA73E7137AEB8FF3B952C9B57B8026C8950B0453057AF8888E55440132473E +ss = 28B44CB0820B37D6011E5D42C1F15F381D29D5250114C63453087B255DBD6CE4 + +count = 53 +keypair_coins = CD6A99396EB3539CA663A51E42063A3A262CC1C5A5FCE1566F0597B52AD9FA32AC8557EB61A3D4A2400D3A604092CC3B92032F4D3B563F3D4AA19387EEBF2A76 +pk = 9E686B49D538CF32A05AB82372F7525DF40085B3413F078226B97C234B815EC615B2683F1D9AB32DC0314C6CCE6E9620C8E73B1DC85BED5205CDE5A44F40427865A62356CE44751C7278A3B236BC2D208C7B383129661810A6A2962496D058CA4875AD234C2DF951612E665984BBAE791C279EE835B105202D4751F1A330DC6B0BDCC38FDD6458B0CA7A9BDA026BD64E80868B87B58CCF2A37CA94CB06279EE77A6731E847487142561863B5F38C5AA4C0158AC28E95012C10A8B8E99EF7DB12C05009311A74791C6C8B355E4A861DD3CB6FA085884D7A7E8CD270F656CE29F9BF3B91B798032C16B00F8CD722A1CABFBB25C3002324C56B66DF87182504581A76297EE1181CF05A6D89698CC94021B16574264435F2CB137A7A667A4548C96F835CBBCF27805AE37448674AA998818CF26D15A63689777A9B98219AC3B9ECF84203826EAE294800F5A07FFA886CC86E7D095F42C471C121A69A1972A7906ABBD31003F6C8C0D07EF481B55FE185811084D9A472CCBCC586B6A9A6F24D269AB36126A3F0381B29532D027C2D5E21CC5B9C6EC8303E4B388A6B7216B3E581C0566558107C8B94C599F09C2ECC4B7A824FA3DB9A29722317D5BC5D43827F4BC6D3A91F65DCA56BC26DE9D40BF2F69263CB010A9A24A749C931631EC2D13EA4D5136AA8A97EE019AE1291EA34B0807886FFA323AD3B0F83F82E5D9A2D748945A3CA34B9535D0460A6F734BBEEB66A4E3C257BB079F5D80F6DEB0DBEC130FE4A182FDB16291403F37A191C381723965C3FD90D9F2B67C36CA3AC141030AB516A01453532AA06B73A91B5BA7D1A308E286FCED38F2858801022A453320A857B564179C55F0436B25CB191865DE69877B47041D9D0C2C9BC42CA513F207A72EA9A5CC48B573FB402BA8B5AE6D73F2E0B044B8CA67C1031577099B9975FAD7103C7F6BF80099BB51138D8A7AF7BB509B761A9C6407DD9826B7FF87879098248D779D6F26AA0215084F286AC77C50849AD19F29A32B07EF517000FF71799D6BE1D177508BB969D9479C6C037A5A18BF4302720E240DFA603B7F8745144906BB88522505B19336BEE5572188853A47B4F8ED8A040B251307299BE642E086317E1504784990F2149CB2D89B1A8542E4A19CFAFD57ADE9A234545142AFCB3E544B49DF75B0CC78F5AAB935752746EE7A7F7936777330A66C1063C50BECC4286A3DB4AA66CB602553849B5BAAF83965AC6BDB19A9E5DB8251DE0267EA3C0EEC342B51505469AA7FE936A5829463892645438A3A182859DA136E033B926695421A1891610816E136DBBE36ADC08CF00E4B44649410B2A11EF254144C27787E54CC5A533E8E54F11EA94F7E9C2009D25A6248321F04A53C31787C12ACA9CC78FCC06B161701852215BC6C29D1779F5C183152CACB583A90399746F75C5BB337F1B580B9029B112579884F792EA5A52187A109F547CDA89B7FBBA90C66065A33423DA4515D13BB5FFA074AADB0C55119065A51239511BB33288F994B121DA8913992B979A59BBD64036968621E76AE336096FD6125CDAC4F767A883E6448B078DC04B1F2B7AA49A1180C0F3BC65D2A93458291982652063419A9CB7F1042C38F483C4A90E17ACA78E9FE10B44687F9AA606CAE8888E4C21AB0F7B85EB3D3A2A3D2FE8ED883D1DE0 +sk = CE732E28B21F42F2BBD1B049E6B80264B218B581CBAB8C9186E325F7617895E6320FE5C697FC3B82546681B3CA5F4A52F1F7501B652F86D35CCB9756E869795C166362FAC89C7B5AD41C7C74C596E2A7458E419CD10C10C890C94FD3564AA25F1EC3A3282607D8B1864022CDCCEBB1B1E48961207E29264A9CA86C94B71D5382C9C6B8004C818F51A52006706285BB3281618A157C80C2C00905C33316516C17F04460124FD79A1C330417984220334C84D96A66FC8A5556814C58F7826EE86F17319DA3F504F0124C3F06CA50792C1E1800FEEA8A8E8805A54BCB90C52ECA144677327F5058CCA151617F443DABBA304B353F4A5CAABF0C179A772582711C033B3F3C1225F191B887D8294FD18914850DE6B194B91C250374963BDC7215B07CDAA8001372A21F0C3845979386C27949E0BBEDC0B004258866A01EC5CB82FC751BA2F4510E514A3FA09B6AEA7E5E45762076B81D781C2BA91DD6F40CF13C91E947A7D7ABC2A2AA91A1404D87462B42AA71EB15209A9B0D4990C2265B051163CD2BA8319576758237482F500F7E94B3FF099616225737A766C10B6AEB213B5B073EFF93C3AC91BBF2B93FF47C84D7CA2E794990E2DB4A7E9AB19CB50CD522427E6A935CE3976490B21792CCE5E4B971668C4793CA4954B477703730411DF1F5AD2557CAEF78C914D0C223D836C407936EC58825F3B2A1925A5164B097A94A13D8AD3A27BF1FFB0C08C72B92215CB1B67C7D2C4A7BC7A6A8A054D2A34DE69C78195BB149E4B4CEBAB78F41612DB19540385F2F74757C662C2DA3C7B03A34A9524E2AB90F5CC21FC0D2AD84BB996E6C73426770FFC1C9942CC22AA2934D97A66037A18760C51B0236CA1B1880A2286EE5241FFC220A4C6EC0E296090874B3CA751DD701086A15F419C67EB4514744047D7848980C036107586D36818E74AD98989C8C02AFAB4134EE0B545ED707876A613FFA10BE7C3F10B758B215827ADA9FA1C83B129C6BDC5B621D3A5DA7F396D6E29B184A38D8091B6A2C288EE2CAE833A68A3CB6B30BAC5AD7567C788D8C803A7B622FBD8A253B274B93593115B5B7A5282EAF93706C88C178BAB897B7198C23B844219852A60410E8AFA85C902EDCB9A5E87A31CA84AC6B89A75830566062BC159CB129277AF0645D5817C8822E384040F1621D66D41643897DF21C1013CB1B426A703F120F21C780C67BB011FB3E8CB746C0B14C9F847DC1235F72E6BDFDA1C55BD26E377395C4B17B764A41E0F7312782BF71820DD379BEFE58901A011FADAC1EFAE549E5933AA9F9C64CE2273C486B56251674D56212C0AD7637854C7B8447A135FB960FFC435AC7553DFE935CAA98BF32186817B5ADB42375E96C30D0A96DF39658EDE95912946813CB75CC32B395AA73A916514533857B4C3405FC32C2946CF4F4251B2091B6CBB00CE296459C45E558B5048B79CC4CB8AA01BD7E82320637A62E2038D5B3C0593B42D32A38BE8312AB022EBB496A5FC4A991A1BAEB660A23988FBA329A79DC7144D20B5246466F25AF4AD971014970EBE2B36316B86B3585F6B0753711A0BF3952C688B4CF6C8A24C0964CDC1F5C1C34B3C28359BA232840063AC30BDDA83F0611042FD8B7C2BB439E686B49D538CF32A05AB82372F7525DF40085B3413F078226B97C234B815EC615B2683F1D9AB32DC0314C6CCE6E9620C8E73B1DC85BED5205CDE5A44F40427865A62356CE44751C7278A3B236BC2D208C7B383129661810A6A2962496D058CA4875AD234C2DF951612E665984BBAE791C279EE835B105202D4751F1A330DC6B0BDCC38FDD6458B0CA7A9BDA026BD64E80868B87B58CCF2A37CA94CB06279EE77A6731E847487142561863B5F38C5AA4C0158AC28E95012C10A8B8E99EF7DB12C05009311A74791C6C8B355E4A861DD3CB6FA085884D7A7E8CD270F656CE29F9BF3B91B798032C16B00F8CD722A1CABFBB25C3002324C56B66DF87182504581A76297EE1181CF05A6D89698CC94021B16574264435F2CB137A7A667A4548C96F835CBBCF27805AE37448674AA998818CF26D15A63689777A9B98219AC3B9ECF84203826EAE294800F5A07FFA886CC86E7D095F42C471C121A69A1972A7906ABBD31003F6C8C0D07EF481B55FE185811084D9A472CCBCC586B6A9A6F24D269AB36126A3F0381B29532D027C2D5E21CC5B9C6EC8303E4B388A6B7216B3E581C0566558107C8B94C599F09C2ECC4B7A824FA3DB9A29722317D5BC5D43827F4BC6D3A91F65DCA56BC26DE9D40BF2F69263CB010A9A24A749C931631EC2D13EA4D5136AA8A97EE019AE1291EA34B0807886FFA323AD3B0F83F82E5D9A2D748945A3CA34B9535D0460A6F734BBEEB66A4E3C257BB079F5D80F6DEB0DBEC130FE4A182FDB16291403F37A191C381723965C3FD90D9F2B67C36CA3AC141030AB516A01453532AA06B73A91B5BA7D1A308E286FCED38F2858801022A453320A857B564179C55F0436B25CB191865DE69877B47041D9D0C2C9BC42CA513F207A72EA9A5CC48B573FB402BA8B5AE6D73F2E0B044B8CA67C1031577099B9975FAD7103C7F6BF80099BB51138D8A7AF7BB509B761A9C6407DD9826B7FF87879098248D779D6F26AA0215084F286AC77C50849AD19F29A32B07EF517000FF71799D6BE1D177508BB969D9479C6C037A5A18BF4302720E240DFA603B7F8745144906BB88522505B19336BEE5572188853A47B4F8ED8A040B251307299BE642E086317E1504784990F2149CB2D89B1A8542E4A19CFAFD57ADE9A234545142AFCB3E544B49DF75B0CC78F5AAB935752746EE7A7F7936777330A66C1063C50BECC4286A3DB4AA66CB602553849B5BAAF83965AC6BDB19A9E5DB8251DE0267EA3C0EEC342B51505469AA7FE936A5829463892645438A3A182859DA136E033B926695421A1891610816E136DBBE36ADC08CF00E4B44649410B2A11EF254144C27787E54CC5A533E8E54F11EA94F7E9C2009D25A6248321F04A53C31787C12ACA9CC78FCC06B161701852215BC6C29D1779F5C183152CACB583A90399746F75C5BB337F1B580B9029B112579884F792EA5A52187A109F547CDA89B7FBBA90C66065A33423DA4515D13BB5FFA074AADB0C55119065A51239511BB33288F994B121DA8913992B979A59BBD64036968621E76AE336096FD6125CDAC4F767A883E6448B078DC04B1F2B7AA49A1180C0F3BC65D2A93458291982652063419A9CB7F1042C38F483C4A90E17ACA78E9FE10B44687F9AA606CAE8888E4C21AB0F7B85EB3D3A2A3D2FE8ED883D1DE0EE044DBDF6787FF038DBF9C133557169C62FC1CE2580739369AA87DF00B49648AC8557EB61A3D4A2400D3A604092CC3B92032F4D3B563F3D4AA19387EEBF2A76 +encap_coins = 96FDAC8DDCC219F5ABACD5F20FEFEED980B40339D4147C6A066D6B6D67458760 +ct = 7B53422191B607B546C53084EEC63363B4A8282E2F8C3B2F2E0DF6C73C9C292C03D6A7328E705F29E510366E058E05D78B495A9D4718E978E0CFE2463917864AC146A971644712CB96391CDE7A55DEB140A69B145CC9E1E974831F7FCDFFFDF91BC8D00B947D32B63BA87D02C74E2406C2F0220706492CA6DCCB8F67C97CF0EE8A2CD6C39746748EBAA862F63006281B0BDE2AE508CAE33392A22309712AABE93E30BE0C8B8327CB299E8ECA6CFFD484F1C75E47E546876F4332610A30EDA4C394445B3E7EA5E455566E6E3D55EE4D35004877BB01AA1E9ADF7AB2D0785B91C002BAE2A4235A07A4E8ACC0D7371E779D266867BFBAE9ED4F5C83F5BD3FD3DDF88542D3B8FE8BA6A7695B28E9D48CE7AF62F1BA08F82439C5FFCAAE5F49A70A6CE1F4CEB55ED3DB04441F9D549DA0D777C21621A49F1BD1D264169BB61F2F19167BC8FFF32684FBBA79B42FB1B0D22E9200FF677CDAA7282FAD209848F7014519C2984C8E8B19E9370D1A93EBDC12B6BF6D48A10679CD4CBD4AF0763A6506FECB223602AF8A2AEDF17F61A32094A3E58DBA1055AE1EFC959F035A1EE637A1D465C47439EC2D75748461F79EF081B5B76C48667D4C96D85B7D6E8F4D5D8577EA6143FB0721A9AF3E54C11AEF42DC387087B150069735D4448631C68D84C683002CAA4F0AEB3D02194837EFCED022C1755D27AAEF19240FC88A53323FE99E112B04BC00846641614C2F12023AC48F5093787E498B8E3E3EC5239DBD2DD038FC99585E02F85BB67CEA98AC89DA62CB1E83918DD2A986FCB6FEFA9C5D0F65560B197F217AAD88298C333FF6BA5355DF716DD50B68E598023E2C24093A93249B9531AC13FC5FD1C7B11A5DE8DEAFC3D5E1D2102868F2E1E6C12818CF7CACF2BF330977E4EA5C8D951B0A4F64370A8862593B2DB8EBB4348B7F5D9805599512EFA26AB5EF2C1373DE2DFCC947170000D6366118D6697F194B0F1E8D86FB21BD6D12C781A61B8E32682EA6BED20C25CFC7023603FA6BE27F3CC2357B2C2BB514E3F7ED083DA1901E067CB0DE79BE0EB6E9A714DBD6B63DA487FFBC91E329919C1466A99A2362E34D1F99C35F73D52165E9D4138EFCC39930A93DDF62FF4D1CAF06256B5AF8C8D81E14C0AE50B00C2763BB0D4765A97C4C782CBA6BEEB6B12244A1613A44E7C55C507642DBFBE7816CA1A873A816D4B1F94A1D80827F7DBEB6169C7C7178632370640E1675DCF735D8973FEBE64C41CA449170BBA575AC4D77A2A8EDDA54570B796DE1C21BAC638F99CA5930F385F6AE632B8AD847C43A359B571EEB06ED78E4502629253F3769164E004BE6E5B7E4D8679AE19D7F3BB8EBA2D2CA36302759F087A84EFCC4BE902904895E0D9725F97DB0CB3BACC71210137F1FB625C0421D3EA63B0AE888366E376BD1F3DDBE5DB693DFF2E998B752CB97CB3864E23C7CB2B67448C151B5ED1B8A78BD58BB12390FE2AD206550F327B9C3CEB8F1BE50FCB8D7FB827279A9F1AC0D714BCB710834225B7E6B4D53CF6A75C4C282031225BA +ss = 6336970864CD8A6B3674BDD3760C6BBBB9BFC3344256F4E7A789CF8BE4C7C2C7 + +count = 54 +keypair_coins = 6C8C53ED6F65E6B2E324B84364E10DE42D1C26A106D4D1C99EEE79C78586FB5555BDB92F28D0393C0F7850C7F6C371BD4835D6DB61C138B0FAF22854466231D8 +pk = ECD4C65CEC93A9B26EFE3B667405482E3AA37D48AEEA67C1698008DA4B68683697DFD34FD72A6F39EC0AA0806EA5C59B4554182F6034B9C5B7CB438E21A14774D58AFAB0099E478A4BA8568E192C71DB7C208B7115D29BF649BFB3D23C2D70599682C549EA28DC16597A43AA6E65C77C432F554B067A64AD62AB71492A1AAD6045677C74E3E8773FB8665259ABD821BF07D2157C09199435BF41992628534DAAE814EE4AC64AD89FFA1547442B8CF6F54664C550DA5CAD0D828174805DA5D66F01E584789992BF0A4036D770B6C5B3E21B78F5DA2467DB42479B478F0570D48071F028110F555857E4ACB555B9C7D5B5D913B75D5B393BD4B9B2C12D34027AEDE4A22FD80ABE26A9C93C938C6B1348708D1BDA7FE6C55BF66981695487AB81362F50B7376C6A52CC39769B921F575E5D7A9666ABC2DD9459A5595E3AD631A0C638C3A2181B649704748141394053849B4F996F9B8A68567B73227B8C9E4588EE4A13B75379D2776A7510ABB21941C2B36357E8248686A5D973B946B82E40802290651A073636B367671C9C001AC91AD03B9D6E83721AE1247CC188FC05B0249571656A276EEA09B6D3376C208335618B1FC2748655CEEF805C39165D0CE9BFED062ADD0C0A50E43167C80E5301A076C9CDC1F13852A5987AA3CEF5E5864A706B3DE947D2AC8E8CEA0C3F83745BF3185BAC9FD0162510F70BD20129D7C5215026114C4B5EF044A8A29A3F01FA02A0A3CE928A65CE8CB566848110994E7CE20EA5C30304D6CCBC7477BB78B3EC527758B7828B836DBB2742AF6095A0BB882C2C9D8E162618029C1FB5AAF4B963FCC4A35AB78B0D9942FBDB53D4684CA85218DC27678719CA0D4A8CD8E9BCAEB944B7C0670AB171927C56C35034AD92BB3E6714D0F7C137C2B9A1FC5B72367C35C55D5FEB93D1274B88BC558158C5D478C34B68240AD193E95C0311AA501B3C1C44B20AB6CA2D2DE1C56B65618CA53F0E91550851BFBC289206D1406B27047FE610EC01A86E8BA94516AA926B99879836DBB27A7056C4D54BBD19A44096D1B3F3E9956CAC29E7AB95F175B9D9A0078DA633F10A6FEE899F400533F0F77102DA19FB02610003674828758E23B5EC724C6829B95B8A6750F1988F431E7537CA9D05701AC8AE2034688082C5C20A122C6349DB27AB958504FDB4C527B223B2420DB7246A4A69B58085A3C1E6997DB19FE17A2BC23BCD60B924CC393EBFCA864DA054BA38BB733B00FDF57AB147B922278FB132C5F5774BFE368DC2B66583790D30D282A248B7E9D43A562BA1892A985B75A7AFF961762A05FB35B9420905BB8C4DE00A3846E38CA7D71411E89F9E2C9489C597834C7A5315080130648F5347639184F315BFF2D580FFD0227C9185ADF9203ED50BAA43A9174A7AE9B5655F2245A15C30F877BB7DCB2EC184138792738113895A980DCA31BAF6B5261E10A1D98AB660C066BCB05AC25429775C3BD1550D4A823FC96442CB2770751C812CE67613E48BFBE66A0FDBA909317513220EBC3C55FA1364F318812199009AF24F9F70C36F81B22B20BE53208F0DC44DD3B6ABB7236E1FD37C53FB1EE8C86810863A86B0029A58955DC73EC8A436112B5C3A75CEEC356BBD91355E4C3941A07E45AD3ECB9AE67E7527F70F6E07A757BD112947074D5120A1F2A1 +sk = F76C7D8002B7CA65BFE6A59AA3645A8E51AFE5FB80145241134CC072A60AD4B72D80C2BCBE1630EEDA661CB62E01B0798203A1A287C4B8F725DD422BEEE6627C864149EBABD84280739193067A2348F2861DBB7F1A0914BA2BB3AC6C80D5CA1F483C8B86C1CF5A2C3BF8F6728555799381A1B1F3CD02E445CBE798AC0361E15335380051294667B9149F38D85A1839AE43D331BF14091C4ACCBB24C8E8105A9D1185BA880B7E13CD3563AA235B899E7509525280A37162C043B089D5A0BD48B225EBB2D0538F49C8AC3C3B0677D8093CF70B3404016B4686D653CE4715A85953171BB937F5A1916271AD53318E8155269DBA4D0A520D057963E70CC01E680FE8408D03D3275C95A2C528190924749BC32DC31B21B58C6F5E4B59C157CAB7653C0D146DEC9A3F94E241993B09BD62446F35AD7772279E116464FB316DB8449A3AB7525B3E89B12B54F14FB19057C39510B072894831A5747782D404487926AD756B1BF81CB416D94265DCACEA475FCDAA727D0B5F01B376250B123F717FBB0B1976B7704FE5AE5AC10CD17B87FA8BBD3D824D3B91B567B5C20243677D741AE2CB1C1D049A842B7F9DA9CECE8931851BB35776CAED97C27D395108E42661AA60CC181ABB2774C67773FB29B445F3554D386C87D489D895A43EF268AF0C81F6065E57E744F719120323B013D35801E26BAC2700968566512106F5161EE8528372D45A42B41022239FB0B3CD23C4251927B355719A1F2A0689A4ABC508660DBC282706B765CA4BC1887FD064CF8285B1155863E15B112BCBB1962255B362CE8FA4C51C97CFCEA7004DAA9F746766F2F5487C93B99EE9825CB78AB0A98BF6863A083758E9279245E495AD0A5B86724C1ADC3E67D756C1C8647FB4BA32B75A6DA3A05A870FC1E12CD279666CA046E064A74625530E742EFC72C1D5F959C9D256389C4C63609FA11A8FB5E70E1E2256C8164D80C69FB8F4008A647AF7F3AD960265F55CB786E8726B65689A6A751FE045B7D45AECF50605D135A44793AD2C6BBA5A59D293528BD94D65F54BAE4798EBA5B26DE8B225728EB8836AD1F373F66A2134B8B429A8457B600C5A3274B0157F66F091EC88436D5667802A15749B4C9C499A36C58FC5A7CCC10A604ED00DE74BBF433502C02AB0ED949F5DA8B9EFB83C4A2395E49413A7030F4F95901E8AA2716A3EBB09AAF61C9384586021301DE0F8C085421460A10FDD176C68B4C115C91DAC04121924213855AC22E8C98E3643C3D7C3B6C6C4CA964308510525C5AA00C32AD9BA258BC44A9F521A2873BEDAF7C56BFC26A320C0FE95CFBE12C0038C1A65B62C18C37E61A2B9194C9EC1DB8B9FD036C7C3A620B5C661D8AB0B46A6CD3391E53218E40CBDB082C2207630C2715541B10E3C395BF2A5A15AE8B506880DDE937432ECB150F9B3C136881058A750024D9B247232B7289BD07462C051B7BA599C985C6EB08C7AC22135C99E85930113554C59AC06AE298D5935658F513644B01132B4C1AB84677E342A1F4A8A9D5C6A44659805CC8898E563823C8286D54A1CB4B8DB866A8F5C74F782784E4B6FBAD380C5131FCAE11D4EC89DF82490B4F1BABD4673D7417B9CF04513718F2CD0CFC29707145034ECD4C65CEC93A9B26EFE3B667405482E3AA37D48AEEA67C1698008DA4B68683697DFD34FD72A6F39EC0AA0806EA5C59B4554182F6034B9C5B7CB438E21A14774D58AFAB0099E478A4BA8568E192C71DB7C208B7115D29BF649BFB3D23C2D70599682C549EA28DC16597A43AA6E65C77C432F554B067A64AD62AB71492A1AAD6045677C74E3E8773FB8665259ABD821BF07D2157C09199435BF41992628534DAAE814EE4AC64AD89FFA1547442B8CF6F54664C550DA5CAD0D828174805DA5D66F01E584789992BF0A4036D770B6C5B3E21B78F5DA2467DB42479B478F0570D48071F028110F555857E4ACB555B9C7D5B5D913B75D5B393BD4B9B2C12D34027AEDE4A22FD80ABE26A9C93C938C6B1348708D1BDA7FE6C55BF66981695487AB81362F50B7376C6A52CC39769B921F575E5D7A9666ABC2DD9459A5595E3AD631A0C638C3A2181B649704748141394053849B4F996F9B8A68567B73227B8C9E4588EE4A13B75379D2776A7510ABB21941C2B36357E8248686A5D973B946B82E40802290651A073636B367671C9C001AC91AD03B9D6E83721AE1247CC188FC05B0249571656A276EEA09B6D3376C208335618B1FC2748655CEEF805C39165D0CE9BFED062ADD0C0A50E43167C80E5301A076C9CDC1F13852A5987AA3CEF5E5864A706B3DE947D2AC8E8CEA0C3F83745BF3185BAC9FD0162510F70BD20129D7C5215026114C4B5EF044A8A29A3F01FA02A0A3CE928A65CE8CB566848110994E7CE20EA5C30304D6CCBC7477BB78B3EC527758B7828B836DBB2742AF6095A0BB882C2C9D8E162618029C1FB5AAF4B963FCC4A35AB78B0D9942FBDB53D4684CA85218DC27678719CA0D4A8CD8E9BCAEB944B7C0670AB171927C56C35034AD92BB3E6714D0F7C137C2B9A1FC5B72367C35C55D5FEB93D1274B88BC558158C5D478C34B68240AD193E95C0311AA501B3C1C44B20AB6CA2D2DE1C56B65618CA53F0E91550851BFBC289206D1406B27047FE610EC01A86E8BA94516AA926B99879836DBB27A7056C4D54BBD19A44096D1B3F3E9956CAC29E7AB95F175B9D9A0078DA633F10A6FEE899F400533F0F77102DA19FB02610003674828758E23B5EC724C6829B95B8A6750F1988F431E7537CA9D05701AC8AE2034688082C5C20A122C6349DB27AB958504FDB4C527B223B2420DB7246A4A69B58085A3C1E6997DB19FE17A2BC23BCD60B924CC393EBFCA864DA054BA38BB733B00FDF57AB147B922278FB132C5F5774BFE368DC2B66583790D30D282A248B7E9D43A562BA1892A985B75A7AFF961762A05FB35B9420905BB8C4DE00A3846E38CA7D71411E89F9E2C9489C597834C7A5315080130648F5347639184F315BFF2D580FFD0227C9185ADF9203ED50BAA43A9174A7AE9B5655F2245A15C30F877BB7DCB2EC184138792738113895A980DCA31BAF6B5261E10A1D98AB660C066BCB05AC25429775C3BD1550D4A823FC96442CB2770751C812CE67613E48BFBE66A0FDBA909317513220EBC3C55FA1364F318812199009AF24F9F70C36F81B22B20BE53208F0DC44DD3B6ABB7236E1FD37C53FB1EE8C86810863A86B0029A58955DC73EC8A436112B5C3A75CEEC356BBD91355E4C3941A07E45AD3ECB9AE67E7527F70F6E07A757BD112947074D5120A1F2A1E965AC6995D525E324E8252D8E2C2DA909A29B24BACA8B68DAA5122CB539A47455BDB92F28D0393C0F7850C7F6C371BD4835D6DB61C138B0FAF22854466231D8 +encap_coins = 5E4723F16005D54429F70BE509C3149F769C7179C155393CCBDE778707CF3A7D +ct = E67F564F0C7718C0A03ABEF273A72846B9A01A70EF165A34901A3BA3CDF5225FD1D0BABFB20E641028020E20BFD781AAB9DE3C6FAFE26B0D9128D24E856236AFDE0255B93349B7592E9BDD8336D6DD7A05CF63B8EBB86A060D58E21B309A39F864C1E2E30F66B9DBBEB765CC230C87150C136442390B57CC08E9A50E1C7460635A536B17A90DBF8F9DD7E10D437AFF2AA30C5291B19BBDDB18F267512D163F38D131652ECD62B1C9E7C7F778985D45EC028A05D683506DEB26D6CD5BB07C75700E6B0E51B18E857059DCD096393E37B4EEFD06F3830AE7CB2D293B995DA53C8AB0EDB72B939E78E63AA200DED02ADCD3F9B690CE25708DFC3989C11D6F2BE9696B68DE0A7869879B67BD38EFC58A13F318BD7EB3CB34940D80A1B8E4F0FF7BBD0012841FCE507ED815ED1C86AB83DCB79966B2E94B3013907B10E9B6348720974B16AEF8D54400BF547326C12B3B823B2F81A9D122B9CE9EBB65B59856BFCA113A4AEC64A853739A73E3BEA599593BD50F46822DD2A8CA304D9C34CF20B38F1B386F8715F33836746C5D253C823108383DB4BB0B22BA1B8D38E34B001E2FFF1A01DA6B7E5841A84AB6D6C7B88EB31B5F77D5C0B1807E42776AAB0F6E842E5DC52B32F3047D861201F4976F589B59EF139D259523901D77ABD3E5D089E971623AF54EA7808A844F7C88B16AC188D61B80914A3031C61ED4FC9090654992EFBC85728CE0A893A841002422C1AFF8FBFECF82DC45F6F7A2869E8BE5E2155B46830F051DCA12D9356E048F34FCDF80BECB5E15136E3C9C72D3A68E1CB1712E08E429ED6C5C6623C8DA2AE465F58CFC88A1941E961175F1DEA20BDA32287D56E48FF1D88C216FAFAA16E0CEED611A18F6E698943254E984785CDE9E8BFFCC19F730FAF257AFE59891443AA37F9AE9B42A817E8F5F7CB7C4ABD1019CB9EF8A705E56599C3296F1BBF336BAD9CD8A7C86880A48690A9812DEAF1B920A6184D2CD0078E2B850ED2D3A5DDA1B262CABEB2441194DD31AED0A422480A0745A7081F0E4D50BB8DB578D5C4F52FDD6752F573BED2FA45448B2DEACB5A0C142901C08538D08B008CD003FB784FF247723DF80E0916E4846354F4D45494A0B818AA983E3EE63A530A4209D5015993F70FC5872BB919C469DD70141E5700716EE88DADE06C1B7009A8E33AED80C2ABB17CF553514FF3B70679A05E78EB7DF775D1137BE3B0F5BEB132BD2ECABF8B729ED1E6C6817881456E404B96F78F15DDD7356022C2D2AC5DAC015C5D9B26E63D12B46380BC9F33C5231C0610AB5E782E8B9D0F8E97BB9677D3FC3094F312B2F338F4B75A7E13D1A0018BB704DFEC7340D61DE2634F20EE000EB650216B3FBCE08B64F0B3258299D1D67E97A08D217808CFF510E3599A4EF1B3E0F76C5F88E1814DCD782657A923F8AE00BBB25CC58E0D34DD35FEFB704ACF138D0CE527A4BB24CB075F9183A6ACC2842107BD5834A980D91FEEB7ACCE06ECBEEC444229E437DEDF2C957049E6F8AC1910A097A863288CD37E1B5C567F42D22 +ss = C2865575E8346D295D1E3E1DA0E317416E47323B7065877735C79167DCF8DC8B + +count = 55 +keypair_coins = 2107204CD995F1DF14314D5381F8C5440F09A347502E161CFFC0A2EC3DCFBC73C95DF27DB27FFD4A8FDF31C4474CBFE2F5EF99F760E97FCF569D8AB22C2855A5 +pk = 8C5785417B65B2E4235CC67947D7B214627D326AC1ADEBCCC3A64017E004499A8887C4A649E443E74720F0B1BEDD52B1A8EB78B3AC2D5516B7A3233BE9448575209675F4A813120422684191D6771EF2B44D92B2CA3BCDD5F5AC20A63EFC237FF9D99BB4F5094AFC187EBBAD39B8B9CE75902190741640BABF653886162645A84262A24B1885C626403F23136707816ACF28950BF181742C98347022CD5941B7B69E21B5CFC2B4C6C5F301BD32A2E7882A1E1A9CD94743FC86AF0CD26B51B3512003CBE8628D299663DA40BAEF443677033DA8B8C21E0A0F12FB93F4D63809375FC877866394A1A5409E2F13B3E5011A2A5877732415281B7B19991E6EE0A470561B6BCB46D87B4086F18CA29C5FDCD622F4315DCFB11DB2C6CF136B7B0A870AE89669AD1011477899B8F679E5C9A8413959CA0CBFB3B54AD58C98B94760058C6F1F499435118D9143723DA05BA8F13E5CCA1813F91CE01092917BA1D798BA3481121026713BE1889B58375E5C4F9BB0BCC5FA808E2C00A36CA575C68B1D232778F71BF0927C5F2092D0629588826D02005DB9BC0DCE456E2B928EC9FB9C7A138E7B1065A2B660C287C3D062144CCA71E5C1294442073AD48AFC555767F1BEBAF550D520659496AF9237A22C27670A080F8A461778AA42C6CA9A954C28A658C73847A586FC3EF266562240ACB6978E026152B1149B8D426AEFE37BBD263A00DA05DF48375E53BACF9C4C11D4BBB055666AD008736B9C323A9974661215495E032AAEC611AF0E6A9244C2BFB6F3195D5121EDC3C0719C3FC1365C2BFC70D5C6140E6A383714A0931CCDFF946ADCF73993AA113C90AEF03374E251ACE73770A350428EC32A9DDB4AED8832526968412863966228644B9AF9842C2E967957F10D350A3499876F25D157BB2812501C8DC95365F83BC64B6340FA6CB4C2816B31824D028726DE0112AA9CCC9E0B6869099D310AA6E5B79609487E7A20A56BA75C45986F92F5A4D1672F3D99927A1193BA15BF5DF2586E823292593C49321BAC9044E4844A7A6BCB08309E2520B6ACF20E73BA5B05931E29BA43B2000A48C72A5DF05EF715CD8865CF16A835A83C271402071D1068A426839CA424CB666545664EA5E7461AF147B9D84583285EA1A05A02732031BB0BA40B14C828BB0E82807FC57882B31D9CF509BE7B712F56994721B55DA921EEE8AD45C8B4E99931C9B71B473A89A2D4821213A1ACFC453A41784D35B522E93C2D994D083674C71583782128476B04FEC71F17CCC65B9C83F52C207B08ADB10824A505B6DA8A78D4C599A5B09979D9491E1383EA155576730614FCBDEC1A8C801B94083A0FB55790B136BC5F37B752F3A6C636481DEBC5DA8892AC1B04AC7447953015E7251838ACBB6E24B508578B62D7450C46C76272806AC407112B73F7946D9654A45E943B406776E057C22E669B34A39D92F87928F8689CB8363B5B07B861BE5A750BEDB4A909605E6E26A489A5A4D9FA7BE3976479F8ABAB955200C479E75983BE821E79682FFB18553B72CF0797B2D2117ADD5AC0ABC71CF0E4CA83C26D218295AEC75872BA3A8B3CA22A2AB83404A046355FD394BF35D66DF46A6124D18B9A4606305A5968C4CCDF6B77A5EF23C5D54C68389E610B30DE122C2B2CDCEA30B3C780612FB9992721E26273 +sk = AB150A2298917B1707AF1AC0941ACC5B6B259D1AAE8F878BB0A37089B845991B203EE4C8F1A58CF9D2CC0059ADE2DB131BDC5FE3049E17F350A805C6F30479BE91B12A36190A5332ECA4737DF5A32FD60CCE222B592060ADD75A62F88D5BF6426FB18A944195F1ECB1BABAC1DCF20C39339ED45AC8C3AB582382480851107683102FA1914E753731964FDFF686F0A354703858C15C99F30A19D9C281AE93004C718D1CA5452FE58183D806DD666792DA7A76B0927DC77793396E4508200EF5097E45095A33AF5683A4DD1A5F6878C1E6FA85771A990EA16F7A28034A897855769DB8E4A9A425860FEC7031D09E96B665F57662B2BB86E362C3F9A706E354C12423AC6CDC74973A0767D73E75F5739747433C3451F8E5B85E5311B6E009F79C00CC07BA26B74D512520496B1998A4445C19249729225044CFFD51679B495511223417B2BAC86CC242241F2B70966E9A7A03C3CC0AB526ABF857DC1A140AD85825757D2B5A59B97B7F8C5015DA02159D013C1F15491FF4CF64C564E50C389F6C85B7C060F98011A4518CD3B48C2DF68C67F3497F439C11F8504E577CF49ACFAE704A2B093238520292602CC2138762D87536F6285C001D6975A242654DDECB5663AC44228BBE5BD58D9B90426C66802B466B21DC8D7A23893A953033874D0A93626C00B6A4FA3FE9EB0DFEBA2F3E789AAD8103CA153FBD7218B95547DE700CA526AED4F159639C59A7699296486188C3CA111479DDAA747F99AC825C7593911D6261683CE92EE8AABB77F82AB14838DB54149194B12791C4991181C66BCF05C67E19F05DCB658D8DFAB09C180967311F4E2AA03D9B8218889F87C5A5680299A7459AFDD69DB27302D9761DAA20BE37900B971694D3B6AEA8C6B5D53A686BEAA478F2ABC17C1C461807597148719925590C1E482AA05BB73077C017C1010EA576BFB5A63031875A23B0A019D608D64A30D0DCB39D750099D1C7583C34AB1CB1DD99A115547E3E4CCDF2A872E821B2330A5F6B30918226B7FCFC9FB4F37D8103437DB12EE073A49D29A7359316F8D922F783797E49B8C2B6146F76C7F8A66838C86364A788D3C4AE67D02CA09391E8547EDFE86CA1D131C5B96CAF479D9562688D1238C6196526B17844B475149AC3A76865C94993E518941A63A2E4559E81A46C8A99AFD2A73B36C633DDC6B32B14723F04A83AF89A420A3D04810311A28880247236A3761236B068A9A4EDF55317E8841218441EB1137342977215992BA99C1EEA7DBEA33AA83382B909BF1EAA9030B4386F8BAAEA643E41531204BC0DF8243F81367F4D979BF0125B84EB5D5DF53318463102938A85214AD7355960300DB40719A2ACAB9297381A6708391C78A8D4029487C324291A7E4A0945A806E0F24368C7A2AF91B8BB155D04C557759228673B548B6A4FEB8944B7334BCCBAB144C84344457B8B794A3D3B4DFC2357BE9227F9C4CE8B98003452C1D8D19C7A8332403A41308086346129D3F929B847BAB1AA5D88935D816A708C6A5E41023BCD4252569CBC724A53DF1B88909267A932186C751339863C8DD49CBE200797186924C26EDB976DE613CC2C46BEB06B39F5C264716A76E67831E4198822D77386592C777A088C5785417B65B2E4235CC67947D7B214627D326AC1ADEBCCC3A64017E004499A8887C4A649E443E74720F0B1BEDD52B1A8EB78B3AC2D5516B7A3233BE9448575209675F4A813120422684191D6771EF2B44D92B2CA3BCDD5F5AC20A63EFC237FF9D99BB4F5094AFC187EBBAD39B8B9CE75902190741640BABF653886162645A84262A24B1885C626403F23136707816ACF28950BF181742C98347022CD5941B7B69E21B5CFC2B4C6C5F301BD32A2E7882A1E1A9CD94743FC86AF0CD26B51B3512003CBE8628D299663DA40BAEF443677033DA8B8C21E0A0F12FB93F4D63809375FC877866394A1A5409E2F13B3E5011A2A5877732415281B7B19991E6EE0A470561B6BCB46D87B4086F18CA29C5FDCD622F4315DCFB11DB2C6CF136B7B0A870AE89669AD1011477899B8F679E5C9A8413959CA0CBFB3B54AD58C98B94760058C6F1F499435118D9143723DA05BA8F13E5CCA1813F91CE01092917BA1D798BA3481121026713BE1889B58375E5C4F9BB0BCC5FA808E2C00A36CA575C68B1D232778F71BF0927C5F2092D0629588826D02005DB9BC0DCE456E2B928EC9FB9C7A138E7B1065A2B660C287C3D062144CCA71E5C1294442073AD48AFC555767F1BEBAF550D520659496AF9237A22C27670A080F8A461778AA42C6CA9A954C28A658C73847A586FC3EF266562240ACB6978E026152B1149B8D426AEFE37BBD263A00DA05DF48375E53BACF9C4C11D4BBB055666AD008736B9C323A9974661215495E032AAEC611AF0E6A9244C2BFB6F3195D5121EDC3C0719C3FC1365C2BFC70D5C6140E6A383714A0931CCDFF946ADCF73993AA113C90AEF03374E251ACE73770A350428EC32A9DDB4AED8832526968412863966228644B9AF9842C2E967957F10D350A3499876F25D157BB2812501C8DC95365F83BC64B6340FA6CB4C2816B31824D028726DE0112AA9CCC9E0B6869099D310AA6E5B79609487E7A20A56BA75C45986F92F5A4D1672F3D99927A1193BA15BF5DF2586E823292593C49321BAC9044E4844A7A6BCB08309E2520B6ACF20E73BA5B05931E29BA43B2000A48C72A5DF05EF715CD8865CF16A835A83C271402071D1068A426839CA424CB666545664EA5E7461AF147B9D84583285EA1A05A02732031BB0BA40B14C828BB0E82807FC57882B31D9CF509BE7B712F56994721B55DA921EEE8AD45C8B4E99931C9B71B473A89A2D4821213A1ACFC453A41784D35B522E93C2D994D083674C71583782128476B04FEC71F17CCC65B9C83F52C207B08ADB10824A505B6DA8A78D4C599A5B09979D9491E1383EA155576730614FCBDEC1A8C801B94083A0FB55790B136BC5F37B752F3A6C636481DEBC5DA8892AC1B04AC7447953015E7251838ACBB6E24B508578B62D7450C46C76272806AC407112B73F7946D9654A45E943B406776E057C22E669B34A39D92F87928F8689CB8363B5B07B861BE5A750BEDB4A909605E6E26A489A5A4D9FA7BE3976479F8ABAB955200C479E75983BE821E79682FFB18553B72CF0797B2D2117ADD5AC0ABC71CF0E4CA83C26D218295AEC75872BA3A8B3CA22A2AB83404A046355FD394BF35D66DF46A6124D18B9A4606305A5968C4CCDF6B77A5EF23C5D54C68389E610B30DE122C2B2CDCEA30B3C780612FB9992721E26273A3D8A85F38CFDA38C66AE39B2F9186EF7BC1E0C98E8976A6CBC6C4875D73D7FBC95DF27DB27FFD4A8FDF31C4474CBFE2F5EF99F760E97FCF569D8AB22C2855A5 +encap_coins = 2435BE12E5A6B3B230F3B0B24AC28FA464B9E8DF34ACBC8C6EB16441739C1B18 +ct = 9EAD6298721B6B0F280DD0186514F1F4F87388C0BD8D32BD1C6525B24523363F9DF4ADB7488ACED3E2CD808123F8E4E7B5609A18CBC4DE338514842B39F4985F5D9899AE7C592701DC4EE2EE56027F186126497FED6C9F77BE9E90710897EDABF6A403A235648F062EA2A787CA94718D445641DFAC2613D54DD4D4748D8AE499CF603F60DDA8298EC7DC87D7D33939BE2BC52AB11B69B1060E13664FA82E8E65220F2BBA3852635E2C93DB58C255488A75D74CAB92F7165433E504C4138768E9443E647FF2C31599E3C201D71271C5A5880FE5375E5AAD5C1EF14C632FCCEC722CC691B39532F6D1D917B7719D24FE6EDBDD529F776C46432CDD2CF6E1CFAB9429158A572F61CD6F24F8BA0043DF7352A04CD881F13272DEA42EFD9887725DD69DAC05070DEC74E9D1CB1E2D05A92F4F8ED30A5EFAC05EE9B7C453BBFD8D81A2DEE00225A3E1C594901F1AB3902FDF79DF6B7356A5346051E698EF8BEAA2F9FC07531D9A67A37D8887627E3945F6EEFCE9C5CA38BBB76B801F2CE7B5042DD8E31CB180BF1D9A1B6F81B976F208557B5D63A81E9FD225808A6D856C512C51DA9623D65D9442D2F1B9F0ECF9E105615F7ABE641ADB0871ED1CFC63AE8031B26DF1B34F14292186B6F6D2F8C59E43FA096F0246C05E8A2DE99F9D314EEAAEF1B8F253D45E2E8BF60B6576E223704AD896BEE4A21382C44AE612462DE9CBBBC604F7F0217B0E8814871663ACC8E5C849728E5488D874DC66ADF01FD724F61375CBE1A09F7C92BCD108FBA4CEBAAC4A0E9C659249E0393C9EAB1924FA6CC05A6DF0236623D7527E927C908C61E3178C2415334626FD44812A07E643FF6B913B8F924D8B8B2F59951957F405D5C2E6984D7B32821F245463DCCDB5E293BE962FB9AFE0DA6C6D0140C5D72FCE7085AB2C23FF4E30A512B48DCF31914C45EF33398D2B2347881D5A2D0D18E14D71F13C4FABA71401AE7643EB07134736AA200750AD26607410DB2778CDA859187BA4898826360FA0897DDEA66574CE160A2898FCBDC2433E4B824D1DF133B37F7E30CB367B5D69D1945A2211A8F0B720E8B0E008401EABAF10B197795C372EE1401B562C33321F261A04B0732E5EEDF0408B13B91325BE954F1CB804A408057672D9ED6EEF3B47704AC4B1E8530832A3F530BF1AB468A695089C63760FF1DDCE940564EC9825BA54619968363E48B17250F57D6C91CDC094BDB2B40EE194A8B8FF919D99A4A975C35AF2EA3EDB669A3970ECF57EE89E2C11E8A9455C68CE35EE047FFDEF98CD8EAC00A6520D2D8A880E6A031016A11861EADAFB7EDF912E368A91D4F3873A057B5A80AB65A64B0C2BD5BA65A5788A3CEA8A9000383FFA75862E9037A608AF8EABA37FD8B91680B0A0EB032AD479AD9E6E5A8D0E9374936D19BC462078ED28F4E4A04BDD949E6D3C76CF424824EFA51BADC7A5A02D020C5AEC89E86404AAF490809AC913514675585F725B4197424CA3F65CDAE823A03EFDF9D4BDBD720B44A56655E68E330C8E6826D37CF794940B44FF +ss = FE0D49911C876535E0EBAD25FCF5D05D0F1041F40315A5E1165FD08F53C443E1 + +count = 56 +keypair_coins = 63A925685A8AC5BBD918FAA33AC397D1FFBCF99135D9DA7C3D6FF7AA4C50AF3D284FDCB2D2A697D75E985AA43FAE0DF266A8056C18CB0BBB52B4EC89D66C21E8 +pk = 605471FEAA9E92B94016A9A05F585F3C52A993A91A6DB73C9AE6364DD2A07B6C2AFB449122E76A3B273D424B94343B3BD7E7B1E1366204820819C8BA8970218A22262CA649D8E3223167BE77D9A466C860AD7C320B227E873A0D68FAAA441C0907805996D64F7759BDEED65CCE25B367F02094714BE404CA9FE56F6AD99E7D38B5396281314898036493002CB516878DB66AB19E09478872C0F76ABBE0F754B443B13DD5AFE610C1ADFC52FB3C82488984DBCC4D9850A0EE4BBC07D0051208C87914A3FA5159C775AD91A552C2FA2AC573787FFA68F456012AF600AF60183F97CB3E2936EF683FD8E2B5742C6DE946B96F825CD0F4807640A532561C70600D4995BF8D2CA543DB1EACD68D28B207617C23CD9A57BBF75ABCB620D941913E6506AA0123F89C261CE9C39C605646904D22586643F4AD250870AFE94DC950913602CC1CDBB77BB9B4DF518D1A18AB0C5A25948302C0535908E70F84587EFF169114161C3E646740893FAAF6B37B42168FDBC494549776D528BFA2C2BAF6A00A7498F403347A646C9A58328C59274AE8CFF8B82787A29D67336DADD3404FB5509640C29C9456FCF82D4ABBCD9899AB108A1FEF872617C5CA780970182861C046A594D62757D33247B79E12873493634C16FA70983C9B593814E69BB160120B4129370519327AC2332063992AF4370D9871E7A27D13420A6FB16ED9B579D1CA1D36A2094EAC96B537109AD83F4DF1A1D2E184C309AB65D75A3E409C57578214EA4035657757AB92AA930A76D251A1B87BC6B58F9D900E38156D73A1961C43BE2E044314C89EA9601937C0A87D9C4B14CB9E79D83E722CC40B048BEC5CCD038304AC0A65BF93B9A787105EB31B5BE8845C5C57B9A9CAF6243F54438ED84159F5B1B8B246073B1715B0F635E8078991118DFEE2CE08887F9680BD4E672D3AA78DF8954554D398D1675D785B85DD28A1675944D7597968F22855999F148CCEABFABC2358C315076C6B4333A82520A8332543AA100034BB0A6776CD959BCB263074FC28956726D0D99B9D81A7DEC14F13AC5CEB5B9EAAECB28E282BB517CAC09809073C3D085718D1DBBD75EC83707CC768BC79A3B637D0ACB34F37C9C2B4C0EEF3233CF91C0BF5A6A9279F6AD136808A9A3515B02E303F4DA26F93264C5AB9010A9C8550B9076D6471C196675EDB08223672C1A229AD31C05EBC4FAB557F46B4BB37DC2B605A87B888A1F475516DB87B92451127436EDA7922BB45B8B8462122542DE969C31622CDD62676A8FAAC5663A8BC2191711383EF4C1CD7A183BB55CC3C83B566E5514F233D79A2963710C5E5225F7B09B0B6176F451A7F77570B1C17B7BA335511BC3C3FEB884E459ADD3A594DD35662419272499B4E9258DC9ACA946CA80911999D455D06407CF9C69E814478A9F5151780BD754A440BC69925155FFF0A675E0C322C69174C27CD804279EBD3260FEB62C0E24EB63C7A042996C25BC9342C589C340E99999F9C5054FF35C760A43974096C5FD23BB9E51E2483722A132B0277BB24010297C4BA2C58BB286C49ED20B7AAE98C5D9B0601F06EE53C1808E07FDA53114EFC6D36B28B906611BE3A29E68A8DA76457BE5419D70059F7C329AAD28692D45892F335D02D36153217D5DB379B621E416A54CE8071DFDA35F639A04B14 +sk = F80C63DD6CBDA93B6CEE719FBAD6BDBE1A03F18B3379306ACE5625FB38C5EDAC9C8C94525C85961E14A76082BBD760CCF9B5AC777088B0CC80E0304FBCFC697CFB13DCF1CF777325EB473D11A43DA4575B697A860445B02CF75E8B945FF9433A337C754E19453D4BBFD2F07C76E8B7A68B92ABC870B56202F7634B9B37902D39BCA04653FAD9A0E4F0BE548ABB97C7A1FA18C34CEBBAE3987F4B3C52A5006629159AC6875276053908B389D931BC7E2871751169B6D81C8D8B5F52854A3E644C5C504675D688BA030E9E78A79E7788522516FFDA2EC9946AA9791A634B6AB6D04456003ACF348BDCD859567A74A7B73556820F8DFC12E467AE2FD11025E430114A5A60D3B42BB43845721637A69596EB953AB7B3E3B28B3BD9923DBC5189A37E9FE7BD9B763FA905314C0A35387A8E8552BF7135698E15B8D99B0777A0A5AF1B7DAFC172AA6A4D69202F10351603771876C580A7D24479DB0D804B6513A09281F291F2706AB128905663AECB0BB31A41046771449D12C335051A2EB50CA81ACE90940A8A6A355B21A9C7505491EA3B48B5323CC567EAD909FBDB380FD504C851452BD34F0F65A39AC62D922A3C50A8566EDAB03358745D701332E4011022BFD4839AE7B6745C66ACA80ABAB8213369E299253B40A7922DF02AB70F9723BACCB1AD563AD20C5EB8A01AE564BE24F40CE91A0F06EC68C0604C74250909D317F8968947A12EA297A279821F1B5377B02653D66897AA526CF51553C268481F7174BD9495DA4B0305650358A637A5FC31C99BA7BA304C6811B555E4B1C2F80EB4223C54032D16238861FB650BCBA24B127026FBA51F5985476103FE1375B94007A06BC2AB048BCB4A78E6D3C748B141BE410992733630B8C917F89960273740A595071824A9D02908D52D334373E8A575D5D52E96E5AD0CC95BF2C761AE577B9EF6BEAD33103E5033E0765D748C409F8A44227B8F55838B38695C5E132F2CB9BFDD7CB8522906E9BC03DDA468A04012277417869277E2169C63112E6A8942A1C13AEE97300FF4CAABF862058B6E7CC16F34C79BA200853701A98D630936A8A595098C8B19820AC91F47451E011069AA688BFBF5AC4EE018C53639A1B0573C8A420C4619166B011E79BD0B843D97766810A48E55D5CE389B5DE4A739F77CCC5FB70D52B3CA5D01729935BF7E4BB984576F2ACB7466C8248F975BAD539B2260568DFA34CF2974D83699761C95405943A7A88374112F8AE79B4D244BF2D683F7CC7A533229BBD8B5E822C8B3449548634FF34BCAEFF25A41AA84A1FA1F52F486F89630A7730E4F81AD23C14D6906816A849810951727042ED0782EF26C31281C0AADE6C9334A88ACB917B781C4F16327196422C24541065B5E80F4374DA0853D478625A68F728A20C1C82CA4FCC4D62744FA658059141221A917D6121187D3B621179AA8F7B7CD0904E6E0787F9A5F65EAA78011B6B63290A55542C80A4BFAD64677467DD1B12785E6BFBC31C1F3D46DB55C0A035604EF658279DB3232C675BC0BC97717CA3EB71D4F44CAAF1B07BDDC90AE982886594F98C41AE7481562CB63D0B2539EEC589146735490A4A87B6EC5CC77BFC0810627AA3452CB061A1648EC7CBB4937605471FEAA9E92B94016A9A05F585F3C52A993A91A6DB73C9AE6364DD2A07B6C2AFB449122E76A3B273D424B94343B3BD7E7B1E1366204820819C8BA8970218A22262CA649D8E3223167BE77D9A466C860AD7C320B227E873A0D68FAAA441C0907805996D64F7759BDEED65CCE25B367F02094714BE404CA9FE56F6AD99E7D38B5396281314898036493002CB516878DB66AB19E09478872C0F76ABBE0F754B443B13DD5AFE610C1ADFC52FB3C82488984DBCC4D9850A0EE4BBC07D0051208C87914A3FA5159C775AD91A552C2FA2AC573787FFA68F456012AF600AF60183F97CB3E2936EF683FD8E2B5742C6DE946B96F825CD0F4807640A532561C70600D4995BF8D2CA543DB1EACD68D28B207617C23CD9A57BBF75ABCB620D941913E6506AA0123F89C261CE9C39C605646904D22586643F4AD250870AFE94DC950913602CC1CDBB77BB9B4DF518D1A18AB0C5A25948302C0535908E70F84587EFF169114161C3E646740893FAAF6B37B42168FDBC494549776D528BFA2C2BAF6A00A7498F403347A646C9A58328C59274AE8CFF8B82787A29D67336DADD3404FB5509640C29C9456FCF82D4ABBCD9899AB108A1FEF872617C5CA780970182861C046A594D62757D33247B79E12873493634C16FA70983C9B593814E69BB160120B4129370519327AC2332063992AF4370D9871E7A27D13420A6FB16ED9B579D1CA1D36A2094EAC96B537109AD83F4DF1A1D2E184C309AB65D75A3E409C57578214EA4035657757AB92AA930A76D251A1B87BC6B58F9D900E38156D73A1961C43BE2E044314C89EA9601937C0A87D9C4B14CB9E79D83E722CC40B048BEC5CCD038304AC0A65BF93B9A787105EB31B5BE8845C5C57B9A9CAF6243F54438ED84159F5B1B8B246073B1715B0F635E8078991118DFEE2CE08887F9680BD4E672D3AA78DF8954554D398D1675D785B85DD28A1675944D7597968F22855999F148CCEABFABC2358C315076C6B4333A82520A8332543AA100034BB0A6776CD959BCB263074FC28956726D0D99B9D81A7DEC14F13AC5CEB5B9EAAECB28E282BB517CAC09809073C3D085718D1DBBD75EC83707CC768BC79A3B637D0ACB34F37C9C2B4C0EEF3233CF91C0BF5A6A9279F6AD136808A9A3515B02E303F4DA26F93264C5AB9010A9C8550B9076D6471C196675EDB08223672C1A229AD31C05EBC4FAB557F46B4BB37DC2B605A87B888A1F475516DB87B92451127436EDA7922BB45B8B8462122542DE969C31622CDD62676A8FAAC5663A8BC2191711383EF4C1CD7A183BB55CC3C83B566E5514F233D79A2963710C5E5225F7B09B0B6176F451A7F77570B1C17B7BA335511BC3C3FEB884E459ADD3A594DD35662419272499B4E9258DC9ACA946CA80911999D455D06407CF9C69E814478A9F5151780BD754A440BC69925155FFF0A675E0C322C69174C27CD804279EBD3260FEB62C0E24EB63C7A042996C25BC9342C589C340E99999F9C5054FF35C760A43974096C5FD23BB9E51E2483722A132B0277BB24010297C4BA2C58BB286C49ED20B7AAE98C5D9B0601F06EE53C1808E07FDA53114EFC6D36B28B906611BE3A29E68A8DA76457BE5419D70059F7C329AAD28692D45892F335D02D36153217D5DB379B621E416A54CE8071DFDA35F639A04B14AA73B40DEDD61E6FDAAC86971965C03AB14AE69E8130426FDF830BD57D0974CE284FDCB2D2A697D75E985AA43FAE0DF266A8056C18CB0BBB52B4EC89D66C21E8 +encap_coins = 630F384162DD6F8206CB36D2278AF30CCDFC73105029DD507A18AD433503CD7D +ct = 36C576E8A237A88BB107C2587795A2EA217370DDEC354468DEA7905D8CC9F7673BA981D0E3EA7619F5162F355F3185907CC22C93E35867B1D5D35FB0AA9BB596E3C92A9DDCB2740DC7A76DB318AC8AB44DDC8A6D3D8EF45151232087051A97A6BBA2898CEBC3A58EA632EEFDACA147680C249E7BDFBA0E0B78422A1D8335210DE0C34A515D47F5BBE22D86E58FD7ABF379B6C0F933E86FD19356B29B98CC13D294213C2D72D7122E475E01E7D40493656CEEBC5FF0D40D34F021E9E7076C9C21C671CB31BF174FD5664114983F3BE75804670A7105EE8143AB7E50F681A232B6F50EE658ACD9220896855B03FC14AE691E5F4F9A0746A6F28454E280FA71656F4FE76DC66E66F132DF2810D16C99F04BA073E5DF0063C997D7A9DE65C7BCFF19A034D017FF6B227E82FE04A00D228ED2CCF0238AD5EBFC605DE2292E97E69EE6A5DAEC30BAB63575C471331030D0B3735AB1B3B68931732A63D945B5B3C53785BA423610FD186B156204C5D13CC519BBDA512464772D8462D1217EC4E223CE4F43F3DA269554C1053252D6A74ABD38E2AE20D4CD1FBFB5240C684DCBFCF48E3EC0ED29FB7FB8B5F59AFC59B3447731007158023FB5132B0B0A3F7108FFBDDF38B4C75525360A2A34DCDDCCA703EBF1F65AEC727AEFDF97CE874CA5AC2E370BD109DD3EE36646955821774C498CE47430755C469BEAA1771E4CA055856328A6CBAD33AD7E80839973937B791AABD1E3978246E9671AB937E9E4D8B87F5D9D861FD8BF173E5A8CB20D20DC21CF07AF6274B3F4857A6CD2D42B3C7F474C69F26E09E0BF3AC29BDF0E8114DD68541EEB287E0B93D2922EDFBDC5CB4A80A05D793DEA7A278B2CD60B81728F5E32E5B939EC3F86782EFC882B38D862312BCC0490698DF5AE61BF34C4E9B74EBD8C28BA2F5F1535ADF34C3F3631CE66762A0FC527C184AB76800ED0FFEDE64A8167FB289DDF43980CEBF2E3A146D9794AF666E3AD2D871254EEC650C3516DBFAE3A8A1C13FA0D4437370EE6C82B3FC412427B495D939A18DBEFA352D90D6653D74E0B2AEC7F0E1E8FA91FE0E687D3458176F9532B6AA093F7433D2F8FA0B096224C59701189FC028121F794C58CD5F037624569ADA1CB360C868F736EB33C4E6714B94544F05E7A3BDCE56018C52A470503B455C2F764A682926F48F72AB5B05A3B430CE92B15317DE58C60B0AAA2FA68AF9E4C234CADFFF66C9FEBCDC8DB548812014AC89C8FEEE8FD29E54E21D1C8CA6FCDC3901D9D699AEB1C6A62979043448D39E92B286287E616D6195F7F1F93EDD50AFBE397E54DA077C0B9D412CF7F6952616630799DDD15E4A2B1F907A98929270A048412A30A237B805A5848DCFE1F2D53EA5B442A8936AB80DBD190EFC144CC34216002C80D4CBE8489CE5A7CC115AF4072F6489DA361C89FC5435999355CDC11430CDB9A7751C5343A51ADBB828036010F0796BA2CD64F2C2076CB8DE7E3BE934D5008F2E5CCEB18D31080C392982E3F93E2824545429E64F054ACDBD5C89F7AAA164221 +ss = 40F2C0F5F4D2215BBF6D7CE287EA8EA394660B7CF5C7E3DCEDDF79F663777667 + +count = 57 +keypair_coins = 6A1AEE5E708C1B47F02BDACCE4F56C860F74FC7CFEC1EF3B58285B1C8AD7FEC211FE1EBBD66174798908AEAA16D79212E61D5C30364864FC1E09F1B20F296C11 +pk = 5B668AE6721C79E07EE5D26233936D195B62B192058CFBCB0A5A73EA0154D78224EBE84B7B611CED7256D0726492A4B41D4A8D6B2CA73A3668F93A77294439B0D8CA9A725C5278C21D896CA5D706E5F03D71526CB175ADE2606E3C3A24D510B4D9816AA6846A77663A80F5AC0D364747307068DA942B15CD2E02A3EED2818F9056D697897B509BD5048B178240C841580BBB77A79423996072F39497869007B19442F401009BA1A039C18F191CCA42F9551713CD791C9FB847690CF6247BB752A17A9873E97BCC36B793B6AD827ACF418543054698D77693F9C38C84354CC81C7A3B6A43ACCCC32DA070FE29411F17A420521FC69C0D09A6425A20AFFC98681568B8CCEA88E54B8DD9F12AEF4B3C10F256EB1519671091984A1DBE972A901BB4B24246D7DB01B86665374BB6CB841B3CDB2593BA5C96E32C20936ECBC4ABFD24AF76158B36A2C752A9BBA8946B34C414EEDB355A3CCB87431221AA2E936B0BD7540E697142DA0817B1B51314FC71CF4017F50544474C572C70BD142C676B69AFBA4292F5F19E88163F2FFBA3B1685073C3BBCAC825B095B5D259228A459FA7E866E09735E4CAB8FA733D4DB6A98172846397883394059C635D23C09FBEE3CAB350B9976C6A8A900C8E1693C3704E779049CD1221CE767651BC23755A3A49C6BE0C314A8C501579F7A447070EFFE0314FA3687AB92090738434E55280A42F22A66EAB77A2932B07E6857A32E31A527A2A909865E053A32148B59CBAC224C12468E444916CA375DC204C600899F90BA7C854B3646F2AF3981797AFC4E261C7A93AABC40A93990DABC82564336D01B2447FD35E8E86A0CBF676CFE6C3D229B256E585D8373D26C3AD66161890325533818F845301D9311BC8035714A722ED9206967123E65410562A745FE28F90D50D772A9CDED6354132688DDB1AE6956EADD896CFAA71C44AA925FB3B2C6B7D5E47CBAE00A91040456F4023174C73DD8A4D50F9714AD1CFF718321677A6962587BA6CA82C341F02A7382BE9715B41994DB91E6D0B487207B9B660793E62470B806A7444B6FAAB38F48747484062FF443AE1DA9E7EF41F797398F0527406787E00E197AC3248EE4A0E5037CF6C754AB9A24D08936E9D3313B99AC18886CFA9972030F1A40E58B25939A21698C434391785A3A98F0445567A9DBC0B4284D49652BB1862BB76FCFC6ABE60831CAC9AEF6469464319411A30F7601B5358568B014E67A76EA42ACACD7C3FC2F983BCE1BC0667897B92590DC724B5284FECF7C36B3842C61C27AF1A2F2EC95899591E707272BEA384CB9C8C9409BB26D743FAF196D3B8B33119A379D5CBF6823D4176CA83BA4E2A426745F346A42861A7B5343AD3AC26EA8895F24A379C449156123ED91A4CA701BD789DA84BA0ED5C707D373634AB7A65680667191F806B6F62CACB4B40AFDD649CC9D1650C3A5E40C8346C91B27EC1B1A957C778EC9C968C670FC84645FC07881C54946B5AB0B6033F45AFCC6A61FBB99746F3991F5B827C22972939C5FF620BDC4B131EB393D108C56556719ABBB978452FF0A12A1D138C9065C304C8514658193232C832B05B0B21A10483C6FAAB378C6B1415B75B43796F314542B9D7C87C1CA5FC13A12E8459454D36096C3BA38E979A3D4C852032429BFE1E663E0C256C2E93 +sk = D809438C90AEA78B897A528534FB009D716DE8D513D32168A1537489E52255D00F49C424BF5B5DB0E15A3A9B9845ECCF287776F9700FF5BB7AB9F40FFEAB7F148A9633546846B672CDA9AB8A37C8F9711B76474E7975AB7E16675A8626F8648B605066A4FB4A5C255A0A39387B03BB7F618C9ED1B37E488D4B7175B593860F6C97D637A2D8761D3B933291B2CCFA6BACC4DCC4DDBCA804C7C55EDB9FC5ABB503036059DA4D2929447CAB1BB1CB746AB01293A2B2F2638BEB06030D476BCD2C335DD5226B7450F8B5B2B130332DC9210640C10DAA5FAAC16C1381C2A0C4AAE3174BE4FAA53CA9CBF29769084715D6F8C163A0185030B0C7C9621336A9875946FBB73BDA9774C07615711451F5594A44313878204C291AB7550AAF981409D4D7CBEE727BA689400DAB7382605F03873F38566421A354B59A3B48BC8F62A09519D932AF5800A9A0C6EFD5783BD93483A0AAAC7853C890C3BA18835D1A2E8F14BD0768CC7D0B951909825C988648F797F5711FBC654380E661BBC41CF89B088E1410F19669AEF65FD817564A4A4F40281B5E16A69BE2B503495A4B6B680A08A54FE0B80AE668041AA120C7A363E38AAF2156CEE293BFD4396DCC503646ACB74B9460142E4476807C058D72C9610E3CBB50A29ED7244419C2C258659B3A8A23E7E69A3047298378424B7A12DF3CCE34F1364732B292B105EEE6A487126815BC0013D66FB7099EFD4931E4301D570BCF2FACBA0B433B9A03147242C298052650416651DB690CE81C268381032B17C429A8E418B7E2BB63D30B570DA588CBC36DC3798C65F81EF05530B9043310E182E88BB3E58356DE408898738C9B3C457FACA42B9B81ED7C4118869D5153338EF4260006C6BE294B528C779BD6C8FFCB16E2AAB439D3032B8AC45216282346200CF1C812033A4F9667AF842481D807F92245BB322E04343971A656087CCA8CE9BD3117013AE816BA745888A4AD51A167A17482EE5B88B0BBA455A565B1D97BD3B9BEEAEAC0B4F2879A727028D4A1C61900D0770F15451A01964366D8A6AD1B5BC520392D43BCA270CCF9A72DF3D68B955C4BED0352B3F78151C4716512097BC92F2CF0A2560923D01358AB1B5F8B7BC687F5C110B04C6512372F119FB23BB852398A6F599F4D145A8AFABAF8AC8726ABAEE569C4579B494A01C67E232B93080D5DF1542DD59F21760A24747E98E26466280C04D1784D9B581B4CABCAC1C3DDE1CA8E00588E0732F76B99EC844032D99EF65C8A9EF4A661E78A47B0542B3129E850647862132C208CB9B3986EB5B510EA1854300EE966B0D3BC09922260FFC96B894A181A95A41F1BB3ACB2572475B3FE8933FE3902C965678B95512289CFBAC30A2B159B8F2B3535E40881D81C204CBA9080B9A7B23190965EB660754368955C0C7929E9447B92AC78E7867C1B4770596047FA820C03A11CAA3C2BA48120E29AD46C289920222C511C9E18343AB20067F926435C6D6B040955F9394601B805E38A751BC8A1853FC05857EAE658A8A7CAD729373E73253E7728FDCA89E347BBFC48A7BAFA48CB167111367F40C93BF71CCF208A891C383BA3B593F2663148D779ED82B23F4B6796209D51425E9168CB22224F39F0695B668AE6721C79E07EE5D26233936D195B62B192058CFBCB0A5A73EA0154D78224EBE84B7B611CED7256D0726492A4B41D4A8D6B2CA73A3668F93A77294439B0D8CA9A725C5278C21D896CA5D706E5F03D71526CB175ADE2606E3C3A24D510B4D9816AA6846A77663A80F5AC0D364747307068DA942B15CD2E02A3EED2818F9056D697897B509BD5048B178240C841580BBB77A79423996072F39497869007B19442F401009BA1A039C18F191CCA42F9551713CD791C9FB847690CF6247BB752A17A9873E97BCC36B793B6AD827ACF418543054698D77693F9C38C84354CC81C7A3B6A43ACCCC32DA070FE29411F17A420521FC69C0D09A6425A20AFFC98681568B8CCEA88E54B8DD9F12AEF4B3C10F256EB1519671091984A1DBE972A901BB4B24246D7DB01B86665374BB6CB841B3CDB2593BA5C96E32C20936ECBC4ABFD24AF76158B36A2C752A9BBA8946B34C414EEDB355A3CCB87431221AA2E936B0BD7540E697142DA0817B1B51314FC71CF4017F50544474C572C70BD142C676B69AFBA4292F5F19E88163F2FFBA3B1685073C3BBCAC825B095B5D259228A459FA7E866E09735E4CAB8FA733D4DB6A98172846397883394059C635D23C09FBEE3CAB350B9976C6A8A900C8E1693C3704E779049CD1221CE767651BC23755A3A49C6BE0C314A8C501579F7A447070EFFE0314FA3687AB92090738434E55280A42F22A66EAB77A2932B07E6857A32E31A527A2A909865E053A32148B59CBAC224C12468E444916CA375DC204C600899F90BA7C854B3646F2AF3981797AFC4E261C7A93AABC40A93990DABC82564336D01B2447FD35E8E86A0CBF676CFE6C3D229B256E585D8373D26C3AD66161890325533818F845301D9311BC8035714A722ED9206967123E65410562A745FE28F90D50D772A9CDED6354132688DDB1AE6956EADD896CFAA71C44AA925FB3B2C6B7D5E47CBAE00A91040456F4023174C73DD8A4D50F9714AD1CFF718321677A6962587BA6CA82C341F02A7382BE9715B41994DB91E6D0B487207B9B660793E62470B806A7444B6FAAB38F48747484062FF443AE1DA9E7EF41F797398F0527406787E00E197AC3248EE4A0E5037CF6C754AB9A24D08936E9D3313B99AC18886CFA9972030F1A40E58B25939A21698C434391785A3A98F0445567A9DBC0B4284D49652BB1862BB76FCFC6ABE60831CAC9AEF6469464319411A30F7601B5358568B014E67A76EA42ACACD7C3FC2F983BCE1BC0667897B92590DC724B5284FECF7C36B3842C61C27AF1A2F2EC95899591E707272BEA384CB9C8C9409BB26D743FAF196D3B8B33119A379D5CBF6823D4176CA83BA4E2A426745F346A42861A7B5343AD3AC26EA8895F24A379C449156123ED91A4CA701BD789DA84BA0ED5C707D373634AB7A65680667191F806B6F62CACB4B40AFDD649CC9D1650C3A5E40C8346C91B27EC1B1A957C778EC9C968C670FC84645FC07881C54946B5AB0B6033F45AFCC6A61FBB99746F3991F5B827C22972939C5FF620BDC4B131EB393D108C56556719ABBB978452FF0A12A1D138C9065C304C8514658193232C832B05B0B21A10483C6FAAB378C6B1415B75B43796F314542B9D7C87C1CA5FC13A12E8459454D36096C3BA38E979A3D4C852032429BFE1E663E0C256C2E93CF754F2EE43694865A09CA7BEB0DEDA9B1328FD0ABDF30CA5C338E27E8BE04B511FE1EBBD66174798908AEAA16D79212E61D5C30364864FC1E09F1B20F296C11 +encap_coins = A0F6AA73A5D09451A39087FD84F6872CE2EF031E6C02468B433362311346FB42 +ct = 464D1B25970FF541DE77D2A12D814ED5897B2E724F70821C0828D8B00FF34416F55E261AAFD0691D58CA79020FAA84084420D974AB77399C87FC6CE6834C3F7C121223C2F5DED3DFAAE2CD18E341C38434ABB716C9C48FDE561EFEE787A33C2CFA09A0EDF717BA7D13D11E5A9BF93245D34C5537CE099AE6C8B0D0C730CF12515B1EDFEAA17C2FD2F3021D135B270A1B03CE65755A625CC60D248E830251BF7BEFAFB72B3157D131A258EC21855E38CAF51FE7D2C7A0A9C6DC4320A10FE5524E4B4936CCA32680B7592FA0C320B0D3BCEC79ECE88657C069B912CBDF04AC2BF30353940282569D080C1D9BF98C37E8B2839EB7F8DFBB9F4A84B7A6167DAAAF6728B130002607F0B31A215EAF7D709D8687AECE3A4782F0A6467BC6AD13C97CAB738C9ECA5F739E1A3FA68E53C453B346E24C7F08F0C7D8309ABB44F4AE8A3626D453B7C16BBF46E8ED27A2B1E35E46055278F217E12F3B8FAB050F77F35572D332865C31E77ECA04AD4C51493797BA02B2F2EA9E1C2BCD486D6BCE5541756073EDFBE233D81FC39CE6D2B1BE6B2C55833AA8770DBBC820B8A51A7D95BA317395BC277067A545224E4E9EBDE134C650DB521691BCD115819BD4A46ACFD64BBC873D9E64422F6AA38369765D366453DFFF6EDD31F1E1BF2D214BA17D9FF4D5FC1272F7CD6AC33774A3787D89A500FF7B96A729289C39B967D6ED5BF82EAFD3267D68E0A575F4314C8AC6D35596931E762D148E0AC09801FBAF88819F6749E220C490C1E4D8BEBC8C34A4076968EDD3DBE0658910846C801BBC6D6CB628DE6CCFB56D912CBC4F7366A89976D94F3A1087ACF122F72AFC5B3E743D4654C916362B50D2C27BA867491E842B58D3BD0D77DDE7AC118DFC1FBF5D68F80636679618AD0FC8550089ED8A32F975320BA341A75E172354B03B356C98562846D6B511827095D70AEED21D1CD5BD80E2F69EE6E6673139E849078073438F1844DB2831C89D964BDDCA7C4C0C754F9C7856B6FBA3ED299C5C634BBC3C2F59D79DD6758594276ACA04F04B18FE6338EB158EF90A75F70E563E3451BFF1CCE0236C72ABE32A6CB4DC5857BB2C0C811ABBAFAFEBB65C461BBAA278AC7C94792C29589FFC36F233F639A9316C30A8742C48C3B2BF5B09A6FAC44EFDA6868040D5CF9A49285D28E3D2EE74B2C92DC62354DF5ADE85EB95453FC2CA9737D43766BBC8D27CCE89B14F3E3807D82403DC9CAE99A68C9734F893624270E5F7A4AC8EDBEE26A50E45C0A8ED040A98F40A0ABAFCEB307E1B7F23C52FF4F5DB811C636B917B79CD889A493BD20528C0F15C24CE7186F8D2FCDD78CC575CD1085E0536F6C1265BE3AA7D460C754AFE99BF1ED2D3D3BAC980F2B90BB144EC91A76F423AE6C900E02711976C941BA7C67DAF2F5CE55F97375392326C0D95AB800F808980502BD73F78DDA25CCC31B81A5CB7325F2F8D66C9D3BA985297E65AB1BCDF11CF42A3F129405111DA41CAB70905CE953AE7C8F7FB85F795205F22606FCAB067A7553FDA68CD911629DD08 +ss = B82E5857200C398C297840CC0B14B83510CF03DE5D85E71584EC22A38A830239 + +count = 58 +keypair_coins = 6396B328B100E4C7F4BCAE69875EDEA1A1982421558C608C13C592BF7B5D0FEFBAE49824E1A023A302CDF665AEC15B60F7F77AB2A0FFFD5246D07AE975A0614E +pk = 98CCA518437873F144E7E261E8465B3720582CF7706D684F84E618E8834F35857D4A8BBC303134B5E235DD1B2387A81C663876C5530293F99571B97AE5A299DF0C012E9662947089C9F81687722FBDC30CE50689690B30932A8A3CE7BCF6A353BF988DD310A2C347BFE6B30999E69C455B9F472B9BCA0216C84265E5D9486F6A7F1F3125C16467AE41B9F85180497B255ADB06A406A13A221388E14C0DE8CF73B6A952C2B2501644831C3700B7C273B7A3180A7641621F33B41C0F9255EFEC1025FC46F658C64FC89352C54C264B97E5A91C2386CD3790605127740DA2076EAB4876E128F3746843205B8328CFCDC65FEB92C2D973BBBFC68FD7A46DB51641B7830E73589F41D413FB571C37685DFF142863078ACF00043395BFAB3589B0CB435981B84E54318AB46E398389B8E146CAB2A9666330EC4C90A652A0F036951519880A45BF5D000D4E40C6B6554CD222880D0B91B67153C43909EB2C0926354D436C2318C593F9FC214B548E17245C0C9B83174A6783508B97AC6A8D8A88ECD278E2E52C3C9138B1685DABBA2BB1425075B298CB9120E790AFDCB9792C88698CC156CA5A789474992F470B1D554514823E87BCAE52CCC872C951B0C24B4A2B0460F488EE7768D56B07DC79B3B4CC321E5878AC0A5C3146AAEB6CA123206B0C7B5AA6E0BEC5D0A903AC9415DA345AF199CAB86BA99234C9526E6E8812F6DA8001F31337B8498A8374AE527B6032A0CF3142D1D34181A5AFD6AA432A588AE1F644F5A100FA593F0ED2753F441AE5677484738FF694ABCEC58781B06D0213579F827FB4F97B3FC343A445BA3035AEE989685E7B20BE6103FD39AFABC334417379BD666181925ED369680B851A54C41B6546B9C04CA69742B2A814763674ABC9CBCB03E96F9466CBEAEC698CB5C9ACF814E90887F8D15BEE556B28F50B739185EB7A5A06E896ED0048BBD905E016436477A68EBBAB1E172928AC8FA9A8B0A0D999B135A753A29A47D0136865B0F382572B0697D0FCCADC8A77C1B591BD73B639E13F9C21B6F0969B0ABA3EA807303377AFE0F49421B68D0712823FC448FA9A468FA000D5964BCF9A9E7FC92DECE03BF6732A36935B25023B47FC94C15795DD983BB4531E935A19778305D0E8A75C2CC770EB46B6D5759DF503BAC33F0669C775729C59EB94D48223D763880E8B58473683CEE48E309380F7B442E6C83F0EB9BBB0B1AE805B1498471AC1149D578B454041AAA2F5CF13390F10A72DF3385C6A8A1F990BB946F4C888E585069B5849882788A1BE27DA0725276FF9DB130519050B74CFF69A68534222499CC61F5845A8FC0AC5629E0CDA20D3EA2F0046B78A2267FA0187F15721EC53083018772097892BE85C1BE99480247E6E30AAC8FA2C593C630B981E57515E0F7414CFA8B606D931280A950E567C93B319FD23CA1B682FC0B960DD309F80455CABBBC71979C59A025008462C0681465D748FF2A6AE24E86C79922E2845568CEB5063FCB81B78295B93A80B221AE7E14A9A9BB7182C1ACF347F2FA73784835F3375A29ED05E4BD120A119CD0FDA29F76A1EB873AA88D0CB3C661FF0D5652F2B4604E2BDB1497486687F17B8CE7A096A59E0922260AE99BB7412E306CC0B25940FFDDF25214EE4DD4E1AEB851878E2493C05E2BD5A30B5B99D369454 +sk = BA45541CE7B3DE134E6B17030710BCCE09BCDBA837F23566DBF1928C99CFFCB674CAB9C41B3151FAA3078177B9126C7973E25687452DA075965BAA804276859B092D9D4095B5E3A27943776DA65262511F62A3AA875B258C7929B502AD6CBA00E3B38011C943310BB5CB24791A71BC5A2796D6197192D9594936089D88BFE976058CA16C152193838A3D7306B312F8160DF15288F9063514A403ACB76BE298F5C92D65A90A0BCB28A4F438EA447A9C881808A18A2F5C3C1B876B3AE94ED28478FDDC1E98A64FD797A0931CC4A18777E5D481D9E92C0CF2B5F5A58635B368CBC8C25DC733550774C0861795939B74E83A23757C212927805663DE14A0FA00CF10F51850DBB4CDD7CAABD5C09B2818CC0A09A58169E3827969518E8FC7BC8325B45656861A848347A358EF1155E5D43F7910A738A132C8892977075C9A19C1EB6399F2E7BF1DBAB593A907BDA509EF5B0DE35A222FC951A0829A838591A0441294C35CA0B86BE6FC02E1EA1B7D4004E5BCBCAA2A280EF37067D72790BB5D59587E050272DDF8B117286FE80C1BBF078E6D259A9B53BD6FF1B43A86B24ADB27BBFA3546C179B8F295726AB768BC7FC8DC2A62715030D93581165F1E4A03D42374A31039D55741C9C49A1C807468CC826F0380B90C9C3F319CF1F73811D674B05C147BB2613BA56365EA04872B9244B236B0D480DD0B47B7797A23286269F97450E13791B205C8AA3310B72F3423B263D93CA320AE1FF04FE6E3BB703A6C4FC17DCFB6341AEB485576B53D1CAB71D9049DCC68CF86008BDB6152994E70152F96C8AE4A0819102BA5077B26086B2DC6B04B324A31AECCB372CC18976BB9DA42C8EBA89640149ACC544511546C5DD293C3173EF28CA92B85B86188BC6FC09E2725307A2C3802C6086F922CDDC62B5989C5A6846496D2BCBF7775A4B3737EE6C6B69CC3373C96E79675CBC781146C7A78824AAE4322E1A69DBF64336EFC3348E414ECAB04010B9F7399310253679B48AF3C23961BF345B35172C1D472F9A31274C730373A29154A581631A0916A21259A46EFA387B36CC9272B5284085709E46F07BABFCC835959D841B3647F51147A013987DD9556111435124101E5D42FF0848BFE2169A49485C094226EC6994CB50BA9F6476FB2A39522A08145B987593F2FE67A2B2CCB036C4E6540145758C6745A389955CE9744CB8030BD85A838A5904198B318A4D265EEA61C70E5A34156BA00A53F05C9BE7F1AC214F6A75DC8154EECCEC7CA6218B34B8E063231C450EA3A8B48F7C97D9C58FED709C350A28A34873CE76F0FC7A4237AAEA0804E2D3874D726AEC41C3AC8E02706DA459C01736B7A5E0936B3ABCCBEBF146350EA2A246C225BA897473817F28C8D6BBB55FE98A48DE682A91770EDB1BDB190A0EFD677A7FC29FC62690668924CB5887F4078179AADE85C0DC8E3529862B2760B187B7778A56C6B026769E339ACA5F8C948801FDDC4ACC3BCC7FF548DD9FC12CD7A394C24A7CBE18D3D22AE3B48BEB295905B217AF384393705107F33B02547822B0A2CB1B57B6FC637E071C0FDBA2F87F010D0C81C42DB454F5C7BE69AC0069C33330BC40532248FD0B90A28908F7471FBCC543FA94403818698CCA518437873F144E7E261E8465B3720582CF7706D684F84E618E8834F35857D4A8BBC303134B5E235DD1B2387A81C663876C5530293F99571B97AE5A299DF0C012E9662947089C9F81687722FBDC30CE50689690B30932A8A3CE7BCF6A353BF988DD310A2C347BFE6B30999E69C455B9F472B9BCA0216C84265E5D9486F6A7F1F3125C16467AE41B9F85180497B255ADB06A406A13A221388E14C0DE8CF73B6A952C2B2501644831C3700B7C273B7A3180A7641621F33B41C0F9255EFEC1025FC46F658C64FC89352C54C264B97E5A91C2386CD3790605127740DA2076EAB4876E128F3746843205B8328CFCDC65FEB92C2D973BBBFC68FD7A46DB51641B7830E73589F41D413FB571C37685DFF142863078ACF00043395BFAB3589B0CB435981B84E54318AB46E398389B8E146CAB2A9666330EC4C90A652A0F036951519880A45BF5D000D4E40C6B6554CD222880D0B91B67153C43909EB2C0926354D436C2318C593F9FC214B548E17245C0C9B83174A6783508B97AC6A8D8A88ECD278E2E52C3C9138B1685DABBA2BB1425075B298CB9120E790AFDCB9792C88698CC156CA5A789474992F470B1D554514823E87BCAE52CCC872C951B0C24B4A2B0460F488EE7768D56B07DC79B3B4CC321E5878AC0A5C3146AAEB6CA123206B0C7B5AA6E0BEC5D0A903AC9415DA345AF199CAB86BA99234C9526E6E8812F6DA8001F31337B8498A8374AE527B6032A0CF3142D1D34181A5AFD6AA432A588AE1F644F5A100FA593F0ED2753F441AE5677484738FF694ABCEC58781B06D0213579F827FB4F97B3FC343A445BA3035AEE989685E7B20BE6103FD39AFABC334417379BD666181925ED369680B851A54C41B6546B9C04CA69742B2A814763674ABC9CBCB03E96F9466CBEAEC698CB5C9ACF814E90887F8D15BEE556B28F50B739185EB7A5A06E896ED0048BBD905E016436477A68EBBAB1E172928AC8FA9A8B0A0D999B135A753A29A47D0136865B0F382572B0697D0FCCADC8A77C1B591BD73B639E13F9C21B6F0969B0ABA3EA807303377AFE0F49421B68D0712823FC448FA9A468FA000D5964BCF9A9E7FC92DECE03BF6732A36935B25023B47FC94C15795DD983BB4531E935A19778305D0E8A75C2CC770EB46B6D5759DF503BAC33F0669C775729C59EB94D48223D763880E8B58473683CEE48E309380F7B442E6C83F0EB9BBB0B1AE805B1498471AC1149D578B454041AAA2F5CF13390F10A72DF3385C6A8A1F990BB946F4C888E585069B5849882788A1BE27DA0725276FF9DB130519050B74CFF69A68534222499CC61F5845A8FC0AC5629E0CDA20D3EA2F0046B78A2267FA0187F15721EC53083018772097892BE85C1BE99480247E6E30AAC8FA2C593C630B981E57515E0F7414CFA8B606D931280A950E567C93B319FD23CA1B682FC0B960DD309F80455CABBBC71979C59A025008462C0681465D748FF2A6AE24E86C79922E2845568CEB5063FCB81B78295B93A80B221AE7E14A9A9BB7182C1ACF347F2FA73784835F3375A29ED05E4BD120A119CD0FDA29F76A1EB873AA88D0CB3C661FF0D5652F2B4604E2BDB1497486687F17B8CE7A096A59E0922260AE99BB7412E306CC0B25940FFDDF25214EE4DD4E1AEB851878E2493C05E2BD5A30B5B99D3694543A842153DEE9E035299D7E268C9492D71188F9FB24BDC2DD20C1DDCA647A1523BAE49824E1A023A302CDF665AEC15B60F7F77AB2A0FFFD5246D07AE975A0614E +encap_coins = 2905F02CE2C10E4AE7BB7F862D1D377F8DF3A1280481E2579D49191D1EE6EF6D +ct = 7CC6E914B37B2AF9F5BAB4AB64227256E57B92D55EE5EC299A563F199C9B1D4A3BA92D17B46ACA8ED7BF9A9F138104BC61C595447D30604BF146C73654A6057978A0B6E2FEE7ABF0CC219E8BD29D33E07EB478C23403E46E0EBAF19B1F5D06D71E9CFA4FB77537EAA6206C4637AE62318E9973E6D5C4574914F2773F501EAD76EC7296AFF5B0A6A5444B27BB2EA0BB16BD31EED10713748CEEB9CA210BED0AF80D31EE93EB817ABD237221182193AF39D4450BE11D56B1BFCCEDA4D9B87A7335BC25FD303E10E719EE9F232F686ED1581F531639EC1D93B59EC10EEED06A436960FE93669B1AA56E4712213E0DA93ED2E1F334AD8BC52161F2024148C0DEA21B3626489E426E46291B9E5EB8CFB361094F076FBA227DE05AE8E5FAB6422FBABFB8E574BF4BE7FDAAEA445971D3BB146EE0E523719AC181C3DE27739B38DF790FD9C9788B74937D1CAAB364F9553D2BC105A5458F50C49124E7B8EF78518848C4771383AD31B2CE64C35357079C648665F22C100273EAD313947E12750F4ECF96ED3C299222480E183246363ED0B6139458655FCD1C0A96B24301A6FD42982391221DF1CBC5A52B348DFA779A07B74477FCB43220409DED87AF3D5CD8D4C46E4C85300C49035043B1B7E632A85984FB5B3DD6EFD41CE0A94D01E0B64DB5EA3632FFBF5DB6AE4D2FD41448001B48B6088B8A9D2CACE1625582086B1582935E9A7A9D1D51F69BC746CCBAC08B1690EAC042B6B5A8342EB9348E783390C1AF463373D649066F619C9095429987A694EDCEADB6C3B2533795651E5D9E36429DD82EE6AE2FCE5D5F870F2BB7F203B2039D87C075F13314ACD62A04C2EBB7672CF68DEAEBA018D8909420FC53ED9BCC429E2CDCCAB3A1A38A96424FA13C5B9A2ADA4D759CCAA3AB1745DD96F49212B9778F7565497A42C3E037D38AF8738EA4C7C576D809B7001153095E348E0307ECCDE50404E818FC710DC62C889EECB9EFE5787ADEF1893455DAC9D83F81B8508852AC2E8C2DBE7BE72E747F1DD1B4A02015D4A4F2788E0313029481133DF18BAF95E5D740EAC5B9F54506A01B527F79ADB0710121249F0A35C5FF0B571DF0C4049B182B1A20A5A0F14F355D04D8D0A13886F918BFF31C861269A35620F7CDEFD8E93021BBEB32A6D23AA41BFC16C3D7E4D7F101B1E2D2C9E94F6B95EA42913DF88DE491684DD09C945381A884A94BC5473F11D51B86D5A2F7BCC8EB7E685AAA7A3E97AB48FEA542D7B1F5E6724B5576BEE1F5B91BAC113DEA3BDDE95C970DD571AE2B64D5456617ABBEB56E757B9199D84EF71D595B480F8CEDA0F0A85E699EE99E609BB24F978FBD3A7A0EA9246F3FFEF9F65552B347F53CC2545C197E1BBCAF0E8C977627E21318F8145177965B08C11B0B96756E88CFE0C6C01917E5668FFFDD92075A3985479ACA2EB7C13EF032CC2DD187CA2B3567B256C86CDAF17300DB8F2EDD1EC60064074F2BD3064027CE06F9FB9F838693F32982DB2380032E344F2AE19F99933A522390534CC12DF417307295EAA4 +ss = A1676FB1BF8BDE481425FD5183CA9C41B15364EDCB7DBF5E8002E81ACF830BF2 + +count = 59 +keypair_coins = A453BCACDD2B0D4646009E5ED451C3C45F08FB827EF733DB3C517A9DC1AF93E6E39CC6C99EE6FD8653D15505A6C2A713D41B43FA521CFB214E8D1B38440F4640 +pk = 5E451E4C8C85A192C91DF27C17C0684BAA6375B17586F8BF1EF12B91615BD08A340C58629CD45F7A392F10A04916C249AF956B180BC418B8A95F66B2D0847E79D247B430812D682B1FB91879FAAB68F25602579BF0D895073780007B7D61940239913EB217CB16A63EA08B29656712A21A32C754953335C29E769DF17125D84C32B3250EC96067B975BF524091EE4013A8B67A19A331DAF38A396A765F7820A5E3606A734F5BA854D1E6B6E70CB9EE5B00D4D18D928921EBB8048E284A3A05A3DF9469EC53195180AC9F869A8E8866D69019E9730FD6E672DB024B6ECB4DC55729024033703B6FDB7BBEEECB2345782815843B7B7664627CAD52038F98DB605FD23D24080F809A276419C876AAC69977998B1400395829656C97BE262E053197EAD738D9BC995145CB2713B5E181223E04497C8114EC5A05384AA31CB84406F93365D7059DD88DB8F94A8F068FCD10BE96E32A0E926DCA518B3FE9286A755F29D83CF667407758141B2011FBB1764D3334F3A763A17CCE33C2816AC79EC4CC4C2D842B004C352ABA419BE87281779300708BB20143A43413A2A55C41E36444046A3C021A4D7818DD146D1DC335C66152866597AA69A44F39A2814A4830E002672731D93B7FE5F77587B782AA279CC9807D6126392F812E83662D49DB231DD3060F882D71D2A0A4C94ADB3784BA1785187423D7E8A82F379EECBA7E6F6A67B568698AC3A2C0B096B015100BF9ACFEE522A0192E49880439CC1FA9B30FB7A10544E1867B0C34DA981CE6E660CEBB8853545994454815178C60B04DCA7073531AA2A5095F7B8578CD9889F3428A7D1C72B8FB320F304FE5D23A4291666BF7AA1AFB5086532FC5AA347DC29279A4484261614F2774C81374AA453024B68D384B01565A36D98B751297477A61780E98135375AF8EF68359332826DA01BA6A73D5263ABC659454F57D83172D0E515D3754270AD84543D995C0534788A6786927B952698ABE693BFBB358E9E393151AAC991C97FEC8C55CC407BF027DF7E2A505DB531D47344552321107B651FA4E47D4B389C5825E02CA1F42839ADA4D7EEA2CCB24A74E34672BF1BC4F33C88C3603A3FA6CE87AA5CFE30125F99E81550C19B58A807BA8A586415C2924A6E467CA8BC85A5400F910457E8B9D74A11E2668C0F1A2A1D0389361D09900EC6671206139380EBF9390B2401555BA0A57FCA36D2742F569A573096A2B442C5992C3FB65271479291F097CB94589FA15BF73CB9319D93860EACF1CD1BF7D380E03587CE3FAAEB6360D79574803B5C49841B74918768EFB518CA46B26929F68639EB8FA9F73E61A8B69B004CB5D9D92CF0DAC9ABC03171444A03409714DC1514931182701C19E242AE73B465AF335C8D3588FF468346ABF76604B6EF887A7EB8E8B44005BB55AF328155AF7928C732E7805010CF0A50EC68E29ACCCEBC4A39E2ACA10084E2543746BE6C81D482F6F3C1FE0D31C6A69329D783A1BFA0B43E289A2F843C71196809CA4B82C75C59C7AA5D311350AA55E89735D9C34E6982D17C033937253D9778CA31A14A9894C5D801415056552C410484970CF2AC86B374644A37976EC4A123C0603CCC01C6C6E994514F13885BCEB2F8B0A57073E0F3130DACA54C038DC1085402160513337AF2B6DD900B04DC3BDFCC90BDB +sk = 2D80A415A1B29961459E396204E5B5E65540A2A9AE9CD52D867A9E20952FC7565B66151653448353697B09723B17E3B1EF375A3E260A5869B579883FD1EB3A06DA5C11E493F4CC9D18381856FB2C36223E7214AD78A178B2153DCDE882451776478A4E06B392CE9B9D0310A5A134B42C37312A8932151571D85CB69D9333FF8685569568A0FC4568682EC2F5506F59742601C46DB34EFB9665B5815574518FF677BE1C0991B644B5931B112220C6EEE10C37C19316156BCBF354FB661635E42F6B26B07F9552D7B1A65D51C7EB6A132034BD755674DFC14345AA72ACBB85D4724B2BA14925421E570543AE904F9BC4016BC0389FB9922CB12A393A24DF219290DC506E501003C0AE8CBBC685A25A91147265207F93F190B12BAEBE7CC7EDEC476553762EA45E48694DDD172B6787B7D9719E89D77563C9C2CCB77CAEB23D7AA9181B82B6CBA09AEF1851235C7986194C8322280B4192B94262FC79CEACE4B894C86814D4929BD773E6A73FB0C7C36C67391A314555674CF415292055BB39319DCAA7B07230204C068028B3AE7A7223DF112032D60EDD1B6B52EA1ED13B86231A1EFB2969A691CEF0D219835A44E907BB0CD2CE6DA1442AF1460F2AB882959E0862BCCFCC6E3FC2BDB5EB673B218D6E9C5DC6461D8796945B614C81A68F9CF381D256BC1E63285141814077AF5F54C2C6B487DD29CDB1D2CE08F09122D09632AB823CB00D86A57F8933743F347C203894D0043F5692A6E12283ABFA1B98B39C6D638132EA4B94644E89A0ADC35816BE01A408F752B3215029D7661B554BD39ABAA906AF32F877CD4B28BCC217825AC897D06A4C233462FBA602A81321DB93279A19BF44131B86035DB3C4CA911F1FA30146F9BE0333650C3C24A5C85BF5E252413853DEFB040F8A16F4ABB9E18CB3D496A69B356D8206C106864C7464A7A7EC5E998B3FD5B18DF1D947E171272EC5AA1137CCBE50AE73ECC106250C0392A41A73A4861ACEA19257BE33CEF406B7EAC1796F605A709A4BC06BBE40867966E830E8AAC19AF626A4642A8447276F09CFBA6486564079E1AA38D7E179D9634E3398B743A1812F02818E979B4434A4516C2C77672600D5B7D3BB6D7E3253189C3694120DBE2519C62C80558AC1D522855682962DF611FEBC9F33FA27A0787501A42802863B5CDCC6AA81B964CC2C9B8081B63750A6358DB5566A0D3229D2989E98199855A2448F54688ED2487B816F5CD651206350FBBB5CDD995A9DB37B089CAA57AB0DEDDC9392EA1C0F99031A42C350CAB7B6F54C1E4ACDD0E28D7975A188502FEF055FEB5889BF87929B6006562626335B05EDFC544F10CBD927AB3C4C9E806700349B9A0099801D5948CFF3BF0977A9691A25AC880D593A36D1E5436EAB078BD9A6BF25BC3D6B5BDFA02AAB06AB5842C440E40D430AAD9311015A8767417B233FA8CFC64914533031AB39B845A3C50CE00BA0F1A586053768EA48293044F3A831B456320600404761C7E826A0B111AE37DB49B31BB3E9389BD3E354F08879906996DF2036AC49B9C773AF5FEC5375519AE7B8C61CE475AC544D13A5B421B8A686251B6D1C64F8A353406248B0430C8A3A308B600D0C9506D6509AAC9A460935645E451E4C8C85A192C91DF27C17C0684BAA6375B17586F8BF1EF12B91615BD08A340C58629CD45F7A392F10A04916C249AF956B180BC418B8A95F66B2D0847E79D247B430812D682B1FB91879FAAB68F25602579BF0D895073780007B7D61940239913EB217CB16A63EA08B29656712A21A32C754953335C29E769DF17125D84C32B3250EC96067B975BF524091EE4013A8B67A19A331DAF38A396A765F7820A5E3606A734F5BA854D1E6B6E70CB9EE5B00D4D18D928921EBB8048E284A3A05A3DF9469EC53195180AC9F869A8E8866D69019E9730FD6E672DB024B6ECB4DC55729024033703B6FDB7BBEEECB2345782815843B7B7664627CAD52038F98DB605FD23D24080F809A276419C876AAC69977998B1400395829656C97BE262E053197EAD738D9BC995145CB2713B5E181223E04497C8114EC5A05384AA31CB84406F93365D7059DD88DB8F94A8F068FCD10BE96E32A0E926DCA518B3FE9286A755F29D83CF667407758141B2011FBB1764D3334F3A763A17CCE33C2816AC79EC4CC4C2D842B004C352ABA419BE87281779300708BB20143A43413A2A55C41E36444046A3C021A4D7818DD146D1DC335C66152866597AA69A44F39A2814A4830E002672731D93B7FE5F77587B782AA279CC9807D6126392F812E83662D49DB231DD3060F882D71D2A0A4C94ADB3784BA1785187423D7E8A82F379EECBA7E6F6A67B568698AC3A2C0B096B015100BF9ACFEE522A0192E49880439CC1FA9B30FB7A10544E1867B0C34DA981CE6E660CEBB8853545994454815178C60B04DCA7073531AA2A5095F7B8578CD9889F3428A7D1C72B8FB320F304FE5D23A4291666BF7AA1AFB5086532FC5AA347DC29279A4484261614F2774C81374AA453024B68D384B01565A36D98B751297477A61780E98135375AF8EF68359332826DA01BA6A73D5263ABC659454F57D83172D0E515D3754270AD84543D995C0534788A6786927B952698ABE693BFBB358E9E393151AAC991C97FEC8C55CC407BF027DF7E2A505DB531D47344552321107B651FA4E47D4B389C5825E02CA1F42839ADA4D7EEA2CCB24A74E34672BF1BC4F33C88C3603A3FA6CE87AA5CFE30125F99E81550C19B58A807BA8A586415C2924A6E467CA8BC85A5400F910457E8B9D74A11E2668C0F1A2A1D0389361D09900EC6671206139380EBF9390B2401555BA0A57FCA36D2742F569A573096A2B442C5992C3FB65271479291F097CB94589FA15BF73CB9319D93860EACF1CD1BF7D380E03587CE3FAAEB6360D79574803B5C49841B74918768EFB518CA46B26929F68639EB8FA9F73E61A8B69B004CB5D9D92CF0DAC9ABC03171444A03409714DC1514931182701C19E242AE73B465AF335C8D3588FF468346ABF76604B6EF887A7EB8E8B44005BB55AF328155AF7928C732E7805010CF0A50EC68E29ACCCEBC4A39E2ACA10084E2543746BE6C81D482F6F3C1FE0D31C6A69329D783A1BFA0B43E289A2F843C71196809CA4B82C75C59C7AA5D311350AA55E89735D9C34E6982D17C033937253D9778CA31A14A9894C5D801415056552C410484970CF2AC86B374644A37976EC4A123C0603CCC01C6C6E994514F13885BCEB2F8B0A57073E0F3130DACA54C038DC1085402160513337AF2B6DD900B04DC3BDFCC90BDBDA43CAE3C4DA51D69A57EB87094A03CD3A9C3E6B4ED864CC691A60F0509CC646E39CC6C99EE6FD8653D15505A6C2A713D41B43FA521CFB214E8D1B38440F4640 +encap_coins = CA41A891E8B3CF62F7CF5E356FA7705DCF26478B2CF2561A0DE208DC06C02059 +ct = 31C8EAB2B3CC9DCC6239B441F672516DE0EA74ECACC9C969F0265D95D4B961FF86E52B13E7C35A41EB30CA90B93AED0C9D44D5D9974DE3F9A857391FE5AAA9995C6C245A5A43D152F551781C879FA9F104AF1C7203438A8588E9F5C6BB76F368A2F376DFA6F18DA1B75A05C9DD1924B4F96B1198EC4B318DE939B719F5BBDEF86BF84F38CAB63195A3EF1BFAD58F035BE8F3D5207847075154CC6819FC4D646D067684564DE74634751583DCD4189A59685E206A30B8BECAC347F9DBF1E00C9934E15B76362245CEBA5A11DEBF7D5CE958E4EF57A999454869CB3CD4B3D13751BE5653BFBE87E9C8BC3EFE4E019CECA26B2F073146ADAB9F0E9944D1BE094831E9070E943FE65462C3F24EBF338D765A19912AD7CFD6E6DC0384A6F3FFE77DA6BCC581EDA4829D450023C8F2314AAA501F7835816F4746D1681FDDBCF612E40439FAC48FCE20D2B46245D921270F4C920807A7EA63F5067EB0D5E8055AE68C7896B7F21E59011C63F4386D2E55D00DC84A6B101EA61A5164F87FB87D60EA0BCB7598BDF6194799A56494991B26ADB20FB3BBD4103C32D06DA9C387FD90303D2264AC109BD9A938D4F98861FE9C32857085FF9B525E4E2B310033882AEC6D95DA98B3438D510F8704DACD441DEE6D61002A357FA8C2DB3DCFAF6BC7BB9E4C1884FAA33C2806D711C7AAFDE01B99BBF043B9C594684DF9A8DBC1571CE1C565F8C0ABC6C60CBBA2C255344234EB0E1A9ACC0C1710B816D13F64890E1CB8C383F9E40F509EE98CD7F1A209E18CA8E7984BE00C802CBF0EB0DA5E770FFBA225421FD77B16E2F730EACCE9CA324020ECD994B82A8ED719110AFDC5F6E9123D350DF25EFCC0DC737C4E7B7DBD69AEB22756F82C1CD845AC0BE3997893E33E99D837E19C57DC57563514B86019BC4F9B7055881B2F249DFC5894D859E04370AE0F61E12F24EC0CFE04D55EDC69203084FE74BC273206DDB29C4C2C8712F5EED59131C321FCEF0F16A6F6962836A24D1E1BCF97941E6801B1A31DAB34C8531037BB0C8F563C05D15BE20B62B507AF36DF40F9A1A0D10D6AB981B38A2F34D346452CC02F40266F7641E01FD8BA4C0D936F9071CE7E8539BB0A64D6E674CF644AFC3D30E66A4FFF6F1072FDB7FF5E2AD8335DDEA2D7B07331B49461CCC5F8641661C37DA91071BF2A7B5A59DC84636F1E13EA0DE04628926BD352DF77AA24B07C3EA33F3220B04A75E02C99E626FCD7EA9585B22558C7AF7B183E45C529273CF5AB8875A0DE2FACF17E1F64AD343E2C8DB1C45C1FAE2C04B41265120EB274002D5E5F73A460E87B8A35B38B16267709D3CAFFB3EE27E688F2DE3B293950CB70BACC87DA04198AE5EB82D6A13DBECB9794D92D742BE81164E18DDC4B04C9D148A10E28031121AB084C0D251DD3D84E8335C596302521E4D99E06A173F8DECDAF9C08D028CA36AFDEE40365520397319D53D734CA4CD82659343B5C315BACDAD988159A91FBD30826F2A3CAE975B0479BEAF45EE2DC58EDD47A0A0D30D996F1B76FE6A77DC0E9 +ss = 3EE950C6975C5E90DC9C53E541453B82CAE8CBEBB102A820C558C84882A94E68 + +count = 60 +keypair_coins = 47CA2B77C5B717F423222C2730CA5CB9C856BC951D01B2B2C80BD76CCB5539B7D55EEB68870B6DF148654F14EB4B3AE9084B40F8B5CBC83FF4C419DBBACBD190 +pk = A20C8DA5745F754B89A990746EF771CF07A6D8109998936B282757F344A1B00B851EAAC27A9A7FBF480D44262868542128461598B5597B10CD3A2A26E3F941A9A4719AB2033FA1181ED08E3247BDD396A834E43F5700522CB307FF4B150BBA9D8B6AAB47361A7947B7A04B8D923202AB1A3D6644BE06BC6C1E0735D5D92821C5B8E9B9A83C343D0C456B181B6FA566B0E83602428B6CD33405A95ABB623A73299C5B4550A7D6C31D6EF81473489BBE457E744B5D1E39AB74D8A051951ABD01A6CFF3942A102A33080327437635C1C17966834340C26654A3F38616E5EACB0E489141B14E9D1B15B7FB30927715273547999B93EA2A1CA2189F5645CC4889943F3CCD95496B71F392F78A82AA1A21D66382C37154323C0616804F50125D6B0698E5DCA3E2D5658CE153BBF57E4B1908C92587B8C863FF4872E9E1963AE6C971C6AC3932BC974B9F15E5743EC069ED203C3624A022F9A7420BA951425A432B46C5E8BB666091D6F223E357CE96C55BF067B3C3F51ABE70ABD85A73A42233800853031313AE9971D280B3AED18489E75CDC16CBB3EBC95A8C97A768AAA6C0BB0DA7943037BF2B4A523E33ABF669C262941F326B11EC6BC8EF51B0666268D6D433B5190BB6996F65925A7EB0761EAB6906178BE9A923D1C61C0B7683CEA681648C44608217D6DC86441A8F423A9D1C288B32EBCD049C15EC151E256A322EE79E2C689A23A53B8D473F4C643AEDC646401761A7B75F7BD4145E837B756003BAB223FF1A74FEACC2E449B5DD9B5777D62FF0E20E4B395821474AB428AA2EA219BFA169B95039616598DAE0B9282C69CE329B534BC7AEA58E17467B1348B1AB2A031324BF835C985371B0F53877DCA53570199B23BC4D70A9425A32B54749082E794E10012E9B458205E106DA807C03AC3202A4350050815487626BD018706C69A6AB02FCB92621114A16CACFBEA02AEC424F82FB874800C61CC23BC6618ED75674A70A6C43C4068E2A7C9723A054967E4DAB09F337695BBB01053A7C5DBC764A0856D2B75DD4A94A9898AF8B95A62B487EC7FA9F00AB75325C9AB8248F1DB65FD7661DFB0B8EECDC2A4134103380988758379D0A73B0F348B00B4B13B115E74674AAAC2BA8C2A7FF440340B622B5C0BCE05CB601259913C488FEE540D7C058A28A0C28B856EA800D26A6A26F8BCDE7D78298314CEA6056B00A845321A245949A8C7C98D9F8821F1264C658A8061A3014249B7E522D586A54AD7A12AD805544247D74058BC9AC0F603A44AC5199BFFB69C1570C4076B345064EC00C5AE0D6A2308947593A84DDB6133BA40577B7B245C20B5D04C5D08281CA0AA10DA2A358386D2A4C048C89A2402C9150A7419C0A1AA17562FE786F00486DC82A9809DAB08F7B16D9432981087B6741269424598EAA99082525D5DB0DEAF1B96F55B41EE209F57ACEB895BABC38828B712724204744834303C496B7171FC458534F46892627AE54800FE6F11D06B6AF2B6B9259144F769B1F16C0586C9CAF01F8491251907FD213AA6C0BCE5B08F060124FB99822D964C502AC49C16CE9FB17EB0C91AF559947C056AF77CA687C4F675C89BE35AAE91584CF82202734379B56784FC5CE56E3852D89B052367D9A5D375D06EC7863E051CB44929F17A4656A2CB2C58D8D457897A1AA0D +sk = CA481DB6775F3D276A56CA0E60CA79BE147E63B6898F4B814C69A06F55111C9824CBC1C109A01A7BAA259DA651A1A51D60BB358432550BC1AA1CF3656E0667D726C69A39AE564BB99162C824634B8B8A706D82175BD9657EC09A308B51A3B429822667A5135FE4350A8B3CA10E8B03B6DA0BBD616CEEC0A08476909C6182EF0314B284CC3F43C337307FACF7B617348779D7493AE0A25D415124BC5D9134182169238CEA1A46A3001A8165713A3E5C16AE03A477207B99C2CC674FCBB14CA439FCC3032E4C2F1E92841D73859C76CFBE245193816D87C12BB3F12763174997760D6887A429A37F78C32CC1AC8FACC587AA235821C254A2341B7C6BCF8B52C908836B67D39D63458AFA9530FC2748DE4A698AF346F8B5405DC7B43B05953554021AF73C585B6EF248C07ED23116BAA18C845571823D25CBAE0AF57D4F6AB2473B5919CBABDD7B4CCCC1BE89150CFC585953389172590EDD61C3885446B500495247AED57A9FB1140CEB6B29F7F9A9F524106D8CADA3432C12468F9BFB9A50B920CDE85654C25249350F6760293DDAA28C771963497C4C5230C05862A4391330F54CADC3B0C92B9798F5BDF8B21016725AC8F565466464C2033872684608111248FCCF94C61337EB6B1A9017E342C29EB2B148936119797FDB2757BEF51A9A2601A00C6F0547B1831B1CA1118CD2E1CDD601A0B491C588CB5ED88AC36AE183848B9F87264CC5B020B2E965E5B89FF74C58CD2B338177BF1350AFDA9A74516A5845381E5FE132B4089506E8CDE6346FCC760759592345927C5C6A97045B0AD3973E806778759B35988953C80B3E7574B7CAA225C744372EE3042E07CCE978A3F964395D40176AAB7905A4BBA98250F594C5A96BAC41851E09F897DF0376A89516040C1F8FCCB93D44AB474C56913826C9E2171EF67510B53EB31153FC028B3625AA7A353BBE79CC76D393E209115DD00B5D6C98F80101705544604351CDB87715618343BC3FA227C1E9FA1EA3989390B02C59EC9174E5165239427592A2D973774CA62DBD9410164BCFD95834C11621F7DA54DC55C44C594785FB0016448F2CC39A05E01D8581658A2410CAA630347C3F0F6C86F344816BD13B3A04313A730F2DE9BB50659B642353F6463D2E2A1A78B722287616CDC266B01098B3544632152DB3B23938D67C63E51949496E13182326D5B7D70B81D90CC6C5D84D4E5907833A7A76D3850AC4993A696C4B210DCF352A32B4C83DC9114305308129BB4FF73A91D733303BCA92FC0083D95D32CA54557A6FF3C42C2BAB46FF913E1D39BA3F6092E30AB47F9985C7C439448C92B245259D388E291C04DE427F378011CA983B21B2BA8BEA9D6EB36001AC4FA5061EE1670066F9252524848973782774CFA795A2285A2669515D4FDA7093BC54439753FB6B4E6B781EEFF574155B2438E074B332417D751EAB1BA1475436E8FC1B670C3928A3553D2BCFD1A59C46EA2542884F91F98A38D42ECC026EBCF91258ACC99A50AE1EDC88B90C98B74C3961B70759F39B3C20175FA80386376CDE2B66DFF213151B800921AB6932B45B720932A540C79CCA0EACA0A9D5BC841C3ACF3C08096C0446326114F05CB09745EBB986DDB76913FAA6A20C8DA5745F754B89A990746EF771CF07A6D8109998936B282757F344A1B00B851EAAC27A9A7FBF480D44262868542128461598B5597B10CD3A2A26E3F941A9A4719AB2033FA1181ED08E3247BDD396A834E43F5700522CB307FF4B150BBA9D8B6AAB47361A7947B7A04B8D923202AB1A3D6644BE06BC6C1E0735D5D92821C5B8E9B9A83C343D0C456B181B6FA566B0E83602428B6CD33405A95ABB623A73299C5B4550A7D6C31D6EF81473489BBE457E744B5D1E39AB74D8A051951ABD01A6CFF3942A102A33080327437635C1C17966834340C26654A3F38616E5EACB0E489141B14E9D1B15B7FB30927715273547999B93EA2A1CA2189F5645CC4889943F3CCD95496B71F392F78A82AA1A21D66382C37154323C0616804F50125D6B0698E5DCA3E2D5658CE153BBF57E4B1908C92587B8C863FF4872E9E1963AE6C971C6AC3932BC974B9F15E5743EC069ED203C3624A022F9A7420BA951425A432B46C5E8BB666091D6F223E357CE96C55BF067B3C3F51ABE70ABD85A73A42233800853031313AE9971D280B3AED18489E75CDC16CBB3EBC95A8C97A768AAA6C0BB0DA7943037BF2B4A523E33ABF669C262941F326B11EC6BC8EF51B0666268D6D433B5190BB6996F65925A7EB0761EAB6906178BE9A923D1C61C0B7683CEA681648C44608217D6DC86441A8F423A9D1C288B32EBCD049C15EC151E256A322EE79E2C689A23A53B8D473F4C643AEDC646401761A7B75F7BD4145E837B756003BAB223FF1A74FEACC2E449B5DD9B5777D62FF0E20E4B395821474AB428AA2EA219BFA169B95039616598DAE0B9282C69CE329B534BC7AEA58E17467B1348B1AB2A031324BF835C985371B0F53877DCA53570199B23BC4D70A9425A32B54749082E794E10012E9B458205E106DA807C03AC3202A4350050815487626BD018706C69A6AB02FCB92621114A16CACFBEA02AEC424F82FB874800C61CC23BC6618ED75674A70A6C43C4068E2A7C9723A054967E4DAB09F337695BBB01053A7C5DBC764A0856D2B75DD4A94A9898AF8B95A62B487EC7FA9F00AB75325C9AB8248F1DB65FD7661DFB0B8EECDC2A4134103380988758379D0A73B0F348B00B4B13B115E74674AAAC2BA8C2A7FF440340B622B5C0BCE05CB601259913C488FEE540D7C058A28A0C28B856EA800D26A6A26F8BCDE7D78298314CEA6056B00A845321A245949A8C7C98D9F8821F1264C658A8061A3014249B7E522D586A54AD7A12AD805544247D74058BC9AC0F603A44AC5199BFFB69C1570C4076B345064EC00C5AE0D6A2308947593A84DDB6133BA40577B7B245C20B5D04C5D08281CA0AA10DA2A358386D2A4C048C89A2402C9150A7419C0A1AA17562FE786F00486DC82A9809DAB08F7B16D9432981087B6741269424598EAA99082525D5DB0DEAF1B96F55B41EE209F57ACEB895BABC38828B712724204744834303C496B7171FC458534F46892627AE54800FE6F11D06B6AF2B6B9259144F769B1F16C0586C9CAF01F8491251907FD213AA6C0BCE5B08F060124FB99822D964C502AC49C16CE9FB17EB0C91AF559947C056AF77CA687C4F675C89BE35AAE91584CF82202734379B56784FC5CE56E3852D89B052367D9A5D375D06EC7863E051CB44929F17A4656A2CB2C58D8D457897A1AA0D6533C524A32345EEFDADC74A3C6AD7E981832797FAF1068955B79F118DFF9358D55EEB68870B6DF148654F14EB4B3AE9084B40F8B5CBC83FF4C419DBBACBD190 +encap_coins = 7343358FD131BC289BAEC8EBFCAC5C52C29A86C89F8A2B89C695D8A9A7AFD491 +ct = F485CB73A987E05ADB9C743381F155EF4FD49F5EDC31DE396EB2931318ADD019F830EF7CE5C86AE2067C7E0F01CFEDCDDE2E4F804628AC682EDFCA9213378A4965C3E5A3E68BEDD2E8E65A84426F86D1F182A028F11AF07F2A4DF44BA1798789E7D96BB8AA60F270D177FE111667BD2E77ACB4FB5A27CDDB7DC92E6E359F4A056CA261F9B8034CC3D6FD43FC15293E3C8B746415E667BB7042EF16281C96F4A5BFB0F6AC04B7C9CD2338F14DB73790B8B93E119E388250903A1B2FF765D039BE171B640D186B4330F8E0FEA18886D1C4DABA4C3A5E93EECB087E5A4AB250CC0E91BCA6613FB3AC210795E5BD731FC932016F1D29929631DD9AE03F699F200B3C1E600B22D234D8DE1A1B12668A20773D8DCBD4A60FBBE66FB7BF8922649F922D1A133F7C35433B5E72EDFEBA501E50D7E0F88EFFF50C284D441A864636035A09DE1D7C62B4160CBA6FEF15155CED41585EDDC4B0312E44C7CC907560B439FB303A2A79CA6DD5ECAA02A978C76E2B9A71973A2E7A8E75AE55758CF63659891A4720AAEDB3BB22D9A7E6FACAF41DDD84194283AF8F2977A606F5710A49A7127C2D50F627261CBEA0FE18DF36EA4A8813CC148C2193550F817EEB96E340D90BE782FB35BACB2D0EDFBFDDE1B2E5F82521E9A53C422F8308BCAB8BF8F95E3DFCEAB6A6DE6C366127F97E29F529382EC4C9C40D378C254EE0E53E81BC2C1D1D1D31B50072CB7CE6BBC6B7AE2DDB63DEEDD8E1A9B4D622F49C191396733FF07B11B539B6A3B7607F20EFF6F2A672927E00654DE97A7ABECB0FD53C425F3A600EE8863EE0DE773C3F03DF2D4395194E9B236E616E51967D630B915545B09B9F5C8EDB5EED9DA8AE628082507D5B49930D14A44DC0337F0942F18A0750F787458107C3FA6368137B237B3338522A247A17359F2D0D8D7A722FAC2B3AA6683763B95BF065B8A86ECDF51BF2B73D001A8BEF8083A21EC44C130E4F21F643EC0AF60754542C0E22EAE05E5FDE0F933765CEEACC351D982D6EA939670144C136DF840DD51AD7C2EFB74811883C88A14651900090381022837946CC3F27A892F2950DF37ED7E623816E498E0AA096C1462B2BCEB267B48976C9B0F0CECB41B1AA0A918C980D0E48F0996618FAD8069FC01257D4EE6B7F2F6FDE3668B4BB8D95BB7FC19B98CB80CEDFC2A3A502636BED54A6252B9A65952ED8017A77857C1DFA1A6365D715D222703C2BC282B110E63C4D478E6432E13C82E000544C9B1E8D16FF24AA309DE170937E2570CF6ABC8AE115706C16986BBFCD51D96DA912782044DAE97FF7D52C38AA1469D11801AFDFBE6EAA0296A3A5530149BD8AC55502A78194D53571E90DF716F4741149CEAE4D3ECD3E6711F35AD4A29867EB54ADE12610FBBC07359697A7C88C1D6F0E945F863A3694BE727C8CA6C3FBB46FE81FA3B803BA7B0AFC8BEEB16BE24E4B7D6FA028967E5685FDCA28E8E2A5FAA138C1DC3E8AA5CF5E71C5F53EDE7570E49748C26B22161DE5D6CB7EEAE9438E19ECB2A32B7E514E53DAEBDC7C +ss = 5A020D0F9AC9826CB6D43AC73ACFA6CD978D3A547AD510261090498E05B9C345 + +count = 61 +keypair_coins = AAF6EB40E596A5E3E8218871E708B089240DCBE7FD3641F0E5E41E071CE49107AACC8BE341A319F425312EFF5DACB31E6E772EFADDE7250DB9F613C13B454565 +pk = DB55C6CEC7B63C0721AAD84D2B6551FA941167C78A0C105ED9E5300A24BB2C8B2265251A38EC2B9D05A0635B2849A81A2A7C6F2660504D5602FD2763046820CA168D70B76E35B9641CE46A44F2A394F496DC32353C1A84302381E8D74CE4294A4A260A5B0704797567AE831D7C4410593CB7B9AB74D2042C84805C3AEA6EBD193A927C8189082333B3A5E96857E3970BE7DACA4C884D7BB0B3B9C250CB4135D0B8C90AE320DCB3C423E8A6DE79AD594240AE7AA036E320AD8807CCB7A1BC80C704C9532960864A9528347636B4123337DB7E2DE37823C6AE084418FDD05FF7E904211924FE5A370537762DFA012A2153AF96A46987776D245FDCB9434D66AA10524A3CA74E494C9DE919C8E23C3FF77C58CBD1CBAF5B8A69803A32E23959B2A7D9F808689906A0985AEFF5A8464A2AF64BA053A3C18D89B2CAE3814CD712484288ABF7655063C403F635D7A2AFB9D804E2E89677131BBBF7009C981548036726D25F05F004D605A24B7C2BCCC4294F065C013C8ECB242D25611B5C82BCABEB9E578758F2F3AD3F087BB6813DB1F3990C867A2E679F47F074FD012E87B3B6F51CB1707B9287D99FDBF43C8E58940109C376789E16C4A30B6BC34C870364192C555B81AF58962AE771DF477FF421A9B46C6E64BACD1A8A6D00DA4D9507212C910ED2C62D199C7E330A11982C514F27AAC092A5216B13AD54BEEBAA4049065A68D8CE9B1C969EA01599A71D633197BC33C2F6F958F72CCF14C7C09D973770F170F1F7BB9E458A00936D8677717F4A17655BC7A7EC56119779F7AA391D2356AE3A97D7CA04971CC2515154E148568C176A659A8DECBB2C5C449CCD914D3CB7431CB3A0A400A8C7B59B1CC770C5BB5B64E0932C61783C9979D6CBAC042216A0CC5800EA160C8C8556E0721D610FCE13992396C382E93BAD1514D780CEE046525C443FAE063C5882A01E5A73658A30864B1D6344A6CC46729BAB7810C46F5B480D309A263E30461769A55A2965BA6BA0B44054F211B98C6C2355150ACAB81881E5AC1E561A4BC4B39F9902D1027E56155F5D71B7CA67415185319BA769F88345611CA2C20B233DCACA9DDBA42EDB204576BD028A79BFCA57C9DBB0A54B933C970DE35032B9B51D00C9922ABB5106897CB896065FCA846AA486D9C27F5B616E99EA0ADA711729B75D86669645B9A223959B3C1C2F3AB6536D74295473C4C055AEF8C2CD2D321E9E73CBB872698B3A60667BC768014332083139D08C321157CFF1481F259ED56A7A3FF1717BB64FC951297C709A4AE3C05FE3910D6507AC947F944B970070570FDC9843A8A5BA564141F80F1654766F93048BE6297A1CB76C105A7BA3ADA06A42ED1AB3C17542201712F11824766C07BF14685AB0A9F69A15AD6574E59709D2411B37B509DE3B7FE5E8B0AC65922DF23E680C33141418F9551660467ACCC0C794A67CC530A5B130B4CF1C28747601D26983764ACBDDD30E42EB96125956A5870142574419977209A12E09AB3C5E8A22C1C5252527C90987A816B8830A757EC44B12E2E2BCBF19097D02B19AE47CC7BC99189370A1AACEF36415DED82FA7A63BE809B515F79F06612DABCA5768201C59E2C92EBA6D13B72C31648EE1D504EC3E89C8D796E77FA9A772499AEC973B63E864CE36A29DE99ECEC9695D12112C +sk = 90D7129B79C095B3063F53058A4BAA74C262A99C822894254A050409215FE67773C26C7A6DCC739D8406A6055B388204604C7B065C0CDCCC16FA880858A36D6200C6CEC473BF81B245E09C6E5A55A8D8314334C23DC14FD6A9C011A2CA93753AFA8609320B1D01FB9A2A4263DDEAB8D5A00C40346B8F84AFC7B945F521321103A5219B533F52BEE42256EDD1B9A526013A00CE07D44EBFD66C0BB67775D1ACDE4AADB7C98731931E54F5C458264894971DF5D0CCD93817BB77A2E7D29CE47ABA205C0971F34096280CC725A3C22A4EE24A9938CC2FCD9A670272A463C852EFC04388CA8CE86A8E9F63273AA208610C2274709C55922AD371C197741AF0526218E84C3BCB61355AB94D5C94DCBB4BC08986AC075E01134B4029C8C1D78F829796C1CAB0EA2075BC25B797D82A8E0385EF1094D0A2B1731624308487991A7164D8A507F2390F354B4FA3A225D5A46463145EBB57B98724F1D3CABF11AD4FDC00BFA267D8F3107CEB7DA37C060AA23E247C28AD0069D30681E37807117AB841F23548CAA02212AFBC1BC54297202FA549DEF55DDEB5BA4D10ACE2650511366EBE9C1D61FA9D5574C86C0714AA523CDF946E1FD259148A7E2AB5C21884314E3B8082BC210B5209CCB6B95EAA2EF62203A0B707BF9C5DB1A155169B07D41C0EDB9709744CAAA36622F189773AD7A59DC142317454D9C81D55D1C637876F104B6836A6842B87174290125505461EEA77D63A8DAD03C7941B69D7F66E434922E13A8182FCC35E51C9CE81978E35818504CB32E4A6DFC777227A5484409A38B2A1E2243110E84D024B1FE0E0BB36D4AAC0622152599FEFA177B294BECE391D47553983E420DE5462C72AB588B2934680A399AC40EF35A5E8819458E0A7BED1AFBB29A446ECBCD4E45A50176EE201526E314CDE085AFDA30226039CEB41A14D87256BF566DB30AC77ACB80B29B1F9D602E919707C96863304372A353771E1CE994241A12369FBF42BCB4315592724CD5085A589B1B4CA46DC49CD65A1247178151E455741C8B5D7C9CAFCB75BF27A5B4ED05B22E932B1E3BFB0C93248400E5485486E0C39FD5CCEC680C78E6137BE96823DECA37C6306D31C9142FC03EC540AC0120EBBE9BD5237583E1972D0C4676708AD35B559FB89BD872428A3E0504350451DD65F58BCB292C0BA437394DAE55E6DF13A8F41827939016A081935D1788C4807A53A011B89528FB60F386632E725B163E83E105324C3914F26F389DAC199A926A25A02624D9A530BF0AFAFA4C5FFE6A5EF9422E422019FF337D1BC2FE16A07D9A046D183137D477DDA378E17A95FC7E02ECDDC0D551724A4F36EE7648C9AA771BD15AE29B7259ABB63D0983917156EDE6557BE445735EC539B2199F9816C562842627CC83BCAA659075F5179ABDD1A7056D27F7DD96A6813A940A9321CFB1946E95C16836EF028106BC26A3EE450D8E569EEB23B70722BCBF828821648B1668E6E47869AFB16C0E4B827C4CEC3C4C9948A6C7F874968DC80160A811CD06D58A885D033210341A6F7907F53A82C98468F6BDB7CC7A60107973DB0E70F9A387673234D6665019676215EE4597C65A13A2636CEE74266F373A4E48BB1DB019BF44EBFB0A5DB55C6CEC7B63C0721AAD84D2B6551FA941167C78A0C105ED9E5300A24BB2C8B2265251A38EC2B9D05A0635B2849A81A2A7C6F2660504D5602FD2763046820CA168D70B76E35B9641CE46A44F2A394F496DC32353C1A84302381E8D74CE4294A4A260A5B0704797567AE831D7C4410593CB7B9AB74D2042C84805C3AEA6EBD193A927C8189082333B3A5E96857E3970BE7DACA4C884D7BB0B3B9C250CB4135D0B8C90AE320DCB3C423E8A6DE79AD594240AE7AA036E320AD8807CCB7A1BC80C704C9532960864A9528347636B4123337DB7E2DE37823C6AE084418FDD05FF7E904211924FE5A370537762DFA012A2153AF96A46987776D245FDCB9434D66AA10524A3CA74E494C9DE919C8E23C3FF77C58CBD1CBAF5B8A69803A32E23959B2A7D9F808689906A0985AEFF5A8464A2AF64BA053A3C18D89B2CAE3814CD712484288ABF7655063C403F635D7A2AFB9D804E2E89677131BBBF7009C981548036726D25F05F004D605A24B7C2BCCC4294F065C013C8ECB242D25611B5C82BCABEB9E578758F2F3AD3F087BB6813DB1F3990C867A2E679F47F074FD012E87B3B6F51CB1707B9287D99FDBF43C8E58940109C376789E16C4A30B6BC34C870364192C555B81AF58962AE771DF477FF421A9B46C6E64BACD1A8A6D00DA4D9507212C910ED2C62D199C7E330A11982C514F27AAC092A5216B13AD54BEEBAA4049065A68D8CE9B1C969EA01599A71D633197BC33C2F6F958F72CCF14C7C09D973770F170F1F7BB9E458A00936D8677717F4A17655BC7A7EC56119779F7AA391D2356AE3A97D7CA04971CC2515154E148568C176A659A8DECBB2C5C449CCD914D3CB7431CB3A0A400A8C7B59B1CC770C5BB5B64E0932C61783C9979D6CBAC042216A0CC5800EA160C8C8556E0721D610FCE13992396C382E93BAD1514D780CEE046525C443FAE063C5882A01E5A73658A30864B1D6344A6CC46729BAB7810C46F5B480D309A263E30461769A55A2965BA6BA0B44054F211B98C6C2355150ACAB81881E5AC1E561A4BC4B39F9902D1027E56155F5D71B7CA67415185319BA769F88345611CA2C20B233DCACA9DDBA42EDB204576BD028A79BFCA57C9DBB0A54B933C970DE35032B9B51D00C9922ABB5106897CB896065FCA846AA486D9C27F5B616E99EA0ADA711729B75D86669645B9A223959B3C1C2F3AB6536D74295473C4C055AEF8C2CD2D321E9E73CBB872698B3A60667BC768014332083139D08C321157CFF1481F259ED56A7A3FF1717BB64FC951297C709A4AE3C05FE3910D6507AC947F944B970070570FDC9843A8A5BA564141F80F1654766F93048BE6297A1CB76C105A7BA3ADA06A42ED1AB3C17542201712F11824766C07BF14685AB0A9F69A15AD6574E59709D2411B37B509DE3B7FE5E8B0AC65922DF23E680C33141418F9551660467ACCC0C794A67CC530A5B130B4CF1C28747601D26983764ACBDDD30E42EB96125956A5870142574419977209A12E09AB3C5E8A22C1C5252527C90987A816B8830A757EC44B12E2E2BCBF19097D02B19AE47CC7BC99189370A1AACEF36415DED82FA7A63BE809B515F79F06612DABCA5768201C59E2C92EBA6D13B72C31648EE1D504EC3E89C8D796E77FA9A772499AEC973B63E864CE36A29DE99ECEC9695D12112CE2F60F27DA7F318EB94A74B437F8E0BC9513E9BCC38DAD99C174C1D75E0145F1AACC8BE341A319F425312EFF5DACB31E6E772EFADDE7250DB9F613C13B454565 +encap_coins = 1BEAAD495CE5DA859511454A6E6D84C3A3E0D73BAE4CB1CF8EE16AA1539D37D6 +ct = 891AB1AA2E5F63F7ED733A36D3FB1685A6393CF9C6D59F67F7E3D47EE3B7B43623E5D8C4B94567F39C83F7878675AF4737D5D78FB3CCDFE49D9BACE581E0CEF8D82DB2197C90B022BC761AB9FCE1B7A52EC2343F5021BA90494569C5FBB6B1F80972904286E135A6FACFFA91DCF5B86D03A4752D920BA32CD48D538B38E86904ECD6A04D0F0C6B5EBD4E6CBB613044DA6E7AC65B13E289EE069819B34DA78978875B574C2DE7BF205073BB1ADD7AE88BA094D96E26230FAB458EAD69D7AC8E6DE89AD6795BB30F2EF077A6C47125AD2E7DF75323F360FF4F2F228D33A6205C767F08DAFABAA1E96B05F1A60FCE2D3D48AC6D8E1DE772D6F4D0E0F9DADC5D5F2D11F1BE12AEEC41CA19FF7C48FD027A287AC3D26C904E2B67398CC5F8836E16100411F16CC088E2189EF62B5B2376DF1FF945E7434E167ABB3177AC8016BBA1EB211CD1BFEA8A3641E560D4EBF6CDFD8816E1A59756B4D89EE2AA51067A0E07F5D77058D397CE568E1A9FFB4BB14FB951F52CEC22442E48C57E0BD871CB798072E1B171D4C7E691E6A58508E871A64612BD90FB2383E4ECEB81D8ED0EF91FB2E574770DB7546427850095DA514A078A41100773D80B83D956C6F5EBE53990E6EC834E59C878A53B6D47242F54B7B6297B942126625C1149CB1CB10FF3FA6DD5ABB5E34C87FB192873E18CACE7CF0B866CEA5F2388395233BB403F8D81AD4F9D284EFF72632FA45A2EB3D9EBC7C6D65295BFB73BCDBCFABA19B6044328CA2AC954755A1D25830478EC043A9CB80FDAE3E3870642DEA3E954C6393D4DBEC2BD5765380DD92BD5AF15672CC2A4A047731D0C0AF9B9F83CAF17E414A04F165D0AFF3D6FA1EC8135048E170551EBF106B6AE0EA71BE710898EBFEA9B9B8D1D97741384C2919779D0450D320727858A44D3248F0B1DDB4C694FD79B035AC7D293B4EE0CBDC41B350CD33816CFBC2991F26AFD3E2312E91D5415E3E68A90C4529CA65664D79AD79A9FA947BD407A028831CBE2BBE5C3DF475FCE34444B4C97F743B68948594D9A5F116F36B42CAF656E30E2524F7C52C45E1E9727E1509FBB85DD904B1C663011E482B3AB95B957D5B3586A519F7B215101758B9295C6C1EC2EC8D68B22EE91D296E93E6DA4BC9B045A31779242060B657486A43EB716C17332E8ACA5103ABAD2A48C85C811A03F01AFF9006D1B839E2F1E5AE34085CC60FF2D3A6CA7D05E04EFD81B25BAAB48C4271C591FB3E146DA4FC7BC80A349DA8550C058D4432423F81257C4DD90E9DE0621F171A7A32B8065D72FDC90BFE1CDD2FD4D786696F66EC417C239B5FAFEEF1A2559A3C8BC48278AF703844E7BB3DF0CDC1B85C0255772B83791065F9FC28CACE53C61136C762D1DDBA519D7CE02DF0DF83D3F2EAD10FA2B11DBDD3444DFA0DDDD3E912B7242778514C0E2045B5DB0AF6517B5DD24555223816A523B66461C5FC9D6FD8A9A394A8432AEBCD5FE9D342CA3667D49A53DB1840CA81B0B3E12D313C9F1873F8D637AF3BD60C459F29FC12B207BEBA27579 +ss = 6EBE495E409B039E504A06A0EE6FEC60AE49C05CED0413E6DF59BB74945A4543 + +count = 62 +keypair_coins = 6500F32C93415CFDBC0BD31D78D5BE95CB9060C8CFA2013955B56F8B6868B3222779ABA933159A5AA043E2FBE31B14D2E56F93E83763E19787607196101D3F26 +pk = 7A2912329482F244226AE33507BA8FC8366736352380B346CA39A936190F09576C5188C5E82315E3532F34D41F1B50BCCC42C1138802CCD5B50A7846FFA7BCADD91FE757AB7FE30E873BA233E13B21D25461030593433F4F66482D94B916AA8D1B4B8D6786926E9364CB579F52236218F199C3925142B53500291A3164516FABB941F98F0DAAA1E2D619C9622D649A0408AC02D5CCB9B787C1F9B196DA37020E362ECDBAB03CCCB63B659C6347104074B1F8254499C8452364726B1294669A3A24AC8B487752175B30CBA68860184D5F78B845B107BEBA80F8750475D059DAD57CAF827878B926FACBC00B54388F24B7B431347E334FFA046C45E234124C958CF66023DCA620E1400CD5C08B89554A474D7D04086E5CBD0D051C03C4580D3442A575255C833026BC19DD301A70367FED300EF27779D2A49819A370519C7FC404ACB3FA441A931C67A3033799519C883BEA134242F35F92393DC134BCE15713DDB33E252B991AF10C7134A8ACD09408C8CB2ADA36BBC25224E8867A4138ED9B4DAF403A477321614B3EE5C7BC2281441936B0B05513C1525421871D007346BCF52D6E09B756B4529BB5480AA3165E617CEF41720167707F35A4415975A62114C7918AD83BBD8905A283D14D22B2400CB29FB1E102562CBEE5A9C10929229F8C60A4B153C430A361812E75B244E4C3954A945459F735D45572E83B505030C13867C720567FD681C539D7094F5558DC5A86DA79B38049B0A45A1259713AF2C1640EE0279BB7191F0C0EC59C2F91184CA70A2E8B7576CE493E32F2C549C4BAD6C925039C4C57114075281AC7631FF4D94EE0723C3400CB2D73C184489AA5B440AD470CDE548F2F70903D08B9B4CB6DB68A5D4FBB049A5A9727F50F9E6C59295C62BED7182CA96D6093578DD014F7EB0B121AC6FAF917FA9B47F6650C6C7336D8848DEDB92A0F70971E456E9AE625CFE266B1000C4EA6252DE1CE20C014BC161FEF405FF327CDDDA37BE4919C2A0C097D6995B0EB743FF66A548307CEE1080A13841ED12333E62EFF081514A5915022C550C6021A27889BB0421DF3A709AB2F9F3B0C0F6019FA8810CE3A9C37F53CD651ACB4E5BC1D8B231F373B7A4CA6723A9710681016943F29697B09F6ABFC1C60E8FC4C201A9AB05C260D2452C83B88423B904DF74F425A9B4D116DE0D059D96779D61017C2E984C2BCCD6159C82DFA5AE7BC63E59304B1105CA054A71D753E7E583742E715BFECC80E51245FF53C16854AE0AB41C581402221CC8834A5F4556A84C19F6172C7C80C759299A42C71BD67040A29185A45C14B91B56A4AF9178E0BBB0C4C197549B5C9765A8874686C63445DEA7A85D43AC4D0B979B4CA13A80BF8DB634A163FE3F4327210A7A128716B9805BC1920DD322B15C74FC722A126069ABB8C95BD090F84497D832A1AB72358D4193B6542BFD627A139374404DC1998416F46054D1B4B538E778D6D0507FBF5571BD01CE56362164793E58355366495AEC80EEA35463C4044B202451B3604D6AB96ACC3617ACC1015379564D6A5FF1A6AE4D802712A94422A99D90988206776055545172B0282B5162B479D748A2E9D22356AF11DAF2629036665EED0642044B76775CFD9417DDACFDCB371AAEF7ABB3C2CFDCA88891DBF808A90028D4F12C57E4985F7 +sk = 0246C2025246911B525E6C3421584BFDBC83D73AB936E76A26236A85215C78DB7DDD010C2E038E3DDA69B5AA2E9F4997D8589BDBF918BE1C046CD518E6958AE6925146009D185B53456B5E16D59257F20CD0F6677535510D02602D5BA5B61C440FA07FABB1B5FBB38437E90522665776892EF205A41A1A2083902648844DC9D65E633266AF871481F036A2888D3FB9901355397F37875A4494777C781EC40478D09A820204A4115701D25A74B4BD91676EA6391FA160617C80CD05B0A80E040CDF22B29978CA55282F2C40316A35433DCC8FF7CCCF4280C0B11C548B5CC08FA45BD0760CE03A02F25689D0F057FAE44CB1574C42E760CB331C2CE4BE16823DBB2870592BA844F30DC407298590A088425E023B856E106437C6074547260A856E648CBA07E51A23E70D7CC65656B4692EC24277F04905C4AEEAAACD36341C705B504CFABA73201C2745AB06B056F1768447981E0D676EC904698EDB230F369190D8C1DADAA5CA59001EE8A68C302F04298DC5700C56B2B577D89CD9A585B239089847CD3E96CA80D928867B27F3657987724FF9031649C246CBCB4673F6CB8544150C9975A13938C89A68CD0B6DE5237FC8D2B7A6BB94E0C0856F00B821636801E9AC84F35276065EE4108BC1D755C1C428566A1CA3762D050458DBC7093567A4465453AB8656272A3C03B4A3C55929271437724471D5D4926109C9792BA49D117813948106D27C33069EB3C40AA8370B79E23F35934AC28666FE72B43F722151F3C26C96CC3B6A40D9E1876E55970F252811070FEFC00D70A009E4871F136A08515AB239C33E2DE638C4260D0C89CFE30B8F8E5927F2C59FEA3947FFD0BD636B10876C3C387C00E15469B42B80BFEB8681DC7715C2B248CA6FED92A9399B72D1023F9507229593BD9BD936A0F6ABBA09BC3367782370B60D9CBD0E8B3D5744101C8CA97EAB822FA4CC399B5BE3195CB1E3C9260030AF60BBE3295C4DE898C502543589142CF48DBC7505EC9A9D93CB6DD4C9678C1CC0A082C5631A255142603DCC01FC07C27D628D89F09B473816B5D5171C18A3F9737BD6D3420D4BCCBD3A5624A2686E54062CE4696E061C83BC2586F1A618639E51E63BC6C64825EB50D4F88334B29145BACC49E28DD564B7A578217FAC230AD00A44F3ACBF8753AA572D66E1AB9198CECDF9BC722455BD267FAF98424EBA4031C3BBEC8298A9388CABC6B3BEEC7A7FBB1C814811117A9D550407C9E6099CEA65ECE641F69454B6A0CA9BF86A3DD472F7C0A7703C6A5B25464C0B091B29258DE673220857878434EA14CF50054FB2E63547E9BE15107BEB7A78CD5C00CBB1462A0347E72B51A15CCB5C333894ABA511295B37C97C7F4C2EB6D97219559B40A67310F457108015AC1B8E3AE15ACF85689C4058EC8A0BB18B75615011F2701BDE8BA70986B39D3368E1F978675A49FBE8509F1239A1C88F1DF4ADF0AC8B68A87E2A403373FB808A7B1192371C7E68B80854B0E4335739090B953A2B67999F9878A32415B78C22289EEAAEFE3298FD38ABEB6ABCF5A55BCA388004E46375A729CC45926A7C3E3BC8B4E2A2B196AABE5651B642C1CB50F666A1BB6DA4D1CCE8C6344356A68DE044214453D03B5C7A2912329482F244226AE33507BA8FC8366736352380B346CA39A936190F09576C5188C5E82315E3532F34D41F1B50BCCC42C1138802CCD5B50A7846FFA7BCADD91FE757AB7FE30E873BA233E13B21D25461030593433F4F66482D94B916AA8D1B4B8D6786926E9364CB579F52236218F199C3925142B53500291A3164516FABB941F98F0DAAA1E2D619C9622D649A0408AC02D5CCB9B787C1F9B196DA37020E362ECDBAB03CCCB63B659C6347104074B1F8254499C8452364726B1294669A3A24AC8B487752175B30CBA68860184D5F78B845B107BEBA80F8750475D059DAD57CAF827878B926FACBC00B54388F24B7B431347E334FFA046C45E234124C958CF66023DCA620E1400CD5C08B89554A474D7D04086E5CBD0D051C03C4580D3442A575255C833026BC19DD301A70367FED300EF27779D2A49819A370519C7FC404ACB3FA441A931C67A3033799519C883BEA134242F35F92393DC134BCE15713DDB33E252B991AF10C7134A8ACD09408C8CB2ADA36BBC25224E8867A4138ED9B4DAF403A477321614B3EE5C7BC2281441936B0B05513C1525421871D007346BCF52D6E09B756B4529BB5480AA3165E617CEF41720167707F35A4415975A62114C7918AD83BBD8905A283D14D22B2400CB29FB1E102562CBEE5A9C10929229F8C60A4B153C430A361812E75B244E4C3954A945459F735D45572E83B505030C13867C720567FD681C539D7094F5558DC5A86DA79B38049B0A45A1259713AF2C1640EE0279BB7191F0C0EC59C2F91184CA70A2E8B7576CE493E32F2C549C4BAD6C925039C4C57114075281AC7631FF4D94EE0723C3400CB2D73C184489AA5B440AD470CDE548F2F70903D08B9B4CB6DB68A5D4FBB049A5A9727F50F9E6C59295C62BED7182CA96D6093578DD014F7EB0B121AC6FAF917FA9B47F6650C6C7336D8848DEDB92A0F70971E456E9AE625CFE266B1000C4EA6252DE1CE20C014BC161FEF405FF327CDDDA37BE4919C2A0C097D6995B0EB743FF66A548307CEE1080A13841ED12333E62EFF081514A5915022C550C6021A27889BB0421DF3A709AB2F9F3B0C0F6019FA8810CE3A9C37F53CD651ACB4E5BC1D8B231F373B7A4CA6723A9710681016943F29697B09F6ABFC1C60E8FC4C201A9AB05C260D2452C83B88423B904DF74F425A9B4D116DE0D059D96779D61017C2E984C2BCCD6159C82DFA5AE7BC63E59304B1105CA054A71D753E7E583742E715BFECC80E51245FF53C16854AE0AB41C581402221CC8834A5F4556A84C19F6172C7C80C759299A42C71BD67040A29185A45C14B91B56A4AF9178E0BBB0C4C197549B5C9765A8874686C63445DEA7A85D43AC4D0B979B4CA13A80BF8DB634A163FE3F4327210A7A128716B9805BC1920DD322B15C74FC722A126069ABB8C95BD090F84497D832A1AB72358D4193B6542BFD627A139374404DC1998416F46054D1B4B538E778D6D0507FBF5571BD01CE56362164793E58355366495AEC80EEA35463C4044B202451B3604D6AB96ACC3617ACC1015379564D6A5FF1A6AE4D802712A94422A99D90988206776055545172B0282B5162B479D748A2E9D22356AF11DAF2629036665EED0642044B76775CFD9417DDACFDCB371AAEF7ABB3C2CFDCA88891DBF808A90028D4F12C57E4985F7D4BF608793939ECBA27DFF5889D4D921C583999A57E20A48085AC549573E6ABF2779ABA933159A5AA043E2FBE31B14D2E56F93E83763E19787607196101D3F26 +encap_coins = D2B388FDF32C5CEB6126F9F28C341D109C1CBC6E69207BD655B969DE1B8F7B0C +ct = A41EF792A8F44ED819360F7D0F77A2E037114339438C1F783D903348D94815271F84A54989B7788E12B0BF69AD494157B3CAEE4FBF412D9C09D4EDAE9C8532D12C0E5E797F0BB52F6F8427E63F08CE8661CA1499F28F3BB084A16828FE07E3B4B60F0C5005FC19C800D7A83C409FCD93764F3F7B3F0580F6831B10555DE762675233CFAC4358110BA7C86970A9253310E3B2CE92ABC9AB92D12334AC80EB0069DB0882F0E9183573CFC918566CF1C2DA068CD23A18F87A286CB364D9AB9012B0D7E0E92CA05D01FA298B40A5423D61EBF9702540F082101FA22891FD4BBCE0152DCC303A4B010F31A08F1F585895AEF5EC53B81F3233ABB6494B94521252030A8B210E840CA52B4C01602CC717B15271D32711E5F137E5A39C5E72EE53E68C15C2082B4515D0FDEDBC69525CD33C6645AE99BF0D00F52B43AF6E80D7B6DD3C512C9FFFB75DD942158A6CBC471CDBC25BA7F177453F7A611984DA3161496907C38C1D90D7FE02EE3074A26D3F54ADD7E116BFD6D73ADE5F41B27FC96FE74263E0AF87B62EE883D2CA98CB1465885F64A5456E8F32651BEB723D3A1A6569D724642B2A6F088AF4F226EF90C6A6684E1D640DBD2A117923634589A3DE374D0D8840122F7B18F5BD222557D1388013D601B1EE518BD17F7A19951190CDF70CACDCA6C0860918FA3698FD32DB2C95F1E212690A26DD6553C1ACC3275141B231468953EA282CE6420C46302C897F0668FE4C9A1678DB70C76D3EF4F2DA2AA1BA0FF04B82B463105FB21CC207AF6BD5DAD3B51F03DC48CFB29D1327076530C2E51C972DDF3FBB8B88F91D62CE74C02C7D6A1095409B81C004F034FC19FEBE99222814A1D54D742487E31383779499B78516E960A8FE60029D417D210B61587C4ACD34DA8E2454EFCB06461F878363C6369BEAC64A28D61D9B3BB17A0824A250BFC44C414C01A97273D98B7873FFD4E74398E263A2A6B0D1CC64524D437539C4FA8DEA2280FFB466B461E9227FE333804BB84EEE75FB01807559F11A7EE688403AD4FF9693B354CBF95C9CE4FEE182315111567C9F697966BF4C84BD0D394F6BC2E6BC0B0A9320A3F5AF8DEB5A0A18E8FF70CB4674FA611516C53940C98FF240F51AE887A13493D22E9C9BC66081D7A608BFE0BE44A34907B7066B351B299B3EF3BD9D7F316891D79972C65A7D973F2E67FF0EA3471E2E5C066B19D08E66DCBD59E180581C9B4ED6DBD9C2200991B33A4E0E35732E0CADB11B535FF573706B47A3F015B3CE1C5BE6E963679058CE3B2B6F841F6178ADE0FBD962EFDA97A13CB51E8A7635329EB3F516116251FE49D7F11C260D28A54A5D758CDA90A7090C76821252D2D8355D0AA604D4BF8F3C1D04B19E302208F0A4F92136B6C6687AB32A8B7A6E084D0706BFD349BF1AA9D2327D978865FC88D9F86406BF8361A870A3AE3CCF048B748FF00258B843EA19C57DC19411D4DF13E2E70B596641E7ADB385649AE829F4AD9F59F023F961D7D10A94D92FE2E1DE2E03A1C98B56A0C9E7F60A3572F03C277A +ss = 13718DA36873842E229CA5C142FF416F257E160CE7B0B7EC407EE55242ED1811 + +count = 63 +keypair_coins = 7643CEF2D62CC5AAEECF754653EA62294CD2208E5BF3DDEEA209E3DC45373D4992CEDEF206325F68EBC282123EB0AB02874F8A3C6665B78346775351AD99CC3D +pk = 8E892A62437CE84445F2E82B495C9730FAB393DC6F3B36BB2A63759A79AE27B162250076A608522440AC1E04630BA766B4C256341C6AC967B36E6934DC58CDA15621827B9558076361192E89708ED88A71826A20E8EC948B9C7915566C70A7C15A72C36ECC7A3CC644EAE696022657C53500A0F13A8AE50FDFA432D8D2530999275E5B9C1D341FB34B8A5A7421B7D290CBC3218486B555C92572BAC8F1085F058A87FD48796824844553261CA11F06978A03F3A8D68657C22064AF83166280AF52270E004731D20B18982283E51CA3DB7A2679DA6FB0AABA1E75A2D283ADD699A797E1BE93502C6823007BA5B9760A338768615B671BAEDC6A6A6937B9E1C35575776A4A791FEC7751079C6683BA29EA28BAD199175B9629C44BBF219CD88A19F1089AA551946E58032A9C9DFD29BC4CA3B654F494990CC02BBB8E1280B54BA3920EF98903F171C27A5C0FB679C8E84774F22136E89915A534D973733410A96280A3207407235CA0D81A636A35B9DD628DEE9A64A12918D0DC6D4C600989168A163730FAB8C78E61A57970C16C813B791A0EE9F625C438CCD1A9429A93062C4AB38DA5890188829AD116A6F1564A43A2E4F3BBA3712207B65E701995C99B29D691C86BD9844AF2471EB5CECD934F764629DC25839C809432E395FD8582CDA980359246EEF0637B9771FA5853099007F173C8598164DA69C8E67A910A50B9940B213547815E0589326B02FF21B89BC4200219652DEA6CCD59883E29127E2ABE3787738B124D839A67E02195D64989520737E3AA99C6822F2C32249256C45455CBD931A5A1FB27CD56A21E22B51C03217AA387E151631CFA445B2B77EC90AE01828601961ADA8A8E6192104F02BA5064C4EFC27CF2DC3353FC98F34BB947B21EC5235FBA6CAFFB6BC6B1C09A783AB8EF14C4921A28A3896BAC07AE8BA98C117B3624E01ED0496A8C649A38A33FB679BB535A7D1960028CA6C8BA825178E74F0E50B5D74C2A9119B595B863D0375A3DA173C63A03D8C60A8D613CC08064588890E3894A9BF4580704038841526AB84E27CABC8FA4CAD6DBBDE9B53017F100778478B86138FBD6BE713A7E695358538BC4CB5A4FFF531BFF178BB16ACE5A295CA0340985F34267A3A931998B29A36935D3B13AF0631CD37777689CA0B43B9208AFBAB88EF886A8672B331224C66C6086B8B15A8EB86107FC0AE260BF08F970CDEC98ECE9A197751B6996258FFB6DCE05306380770DC63498E9B5D65ACAC5A179D8946B27630525B39C3755C070A120C9F468AB3AA8B1A48848081B888BAAA1156BD600733BE887ABF962C46107C432C34EDCA8E549977D9A6F7EB77EB9974BB353896E8261502820F599257CD9C2852328B0FBC5C2B98658D67E4A636575A46E074A1EFDA2CFA50A0594B0A421661D81D95A9AE0CA1C037532BA7EEAD089961C29765C443D428BF20767D1F08615E85D0C08B0FA5076E297143249283C13486F61A4D9D39780624055D6043120A510D4A686F9B490C74F2DA782AB42157A00991BE019E093A509C0C00B7C1E6AB611DFC4373C640A2F488E7632BE1289666206CBA2B096A479B2140C6AA301BC448B13B6839447C4675AA1BE46EB6ECFCB4DDF2569B2D79ABE93FCEAFF0F0FF88688C870D19759A41D3D361A0CEC73CC908F52BAD8 +sk = 34C91F6EC981B1830501D8969F8847B2C6BD5D5C43DFA044C43B551E610D5675BB7E7C9E393B411E69575301BF4EF4C7FD0B4B59E213905A254EB5540ACA856C370DD28899541B725091C23907C04390AD32A56385075F42A7545672544FE177B74C7ED99507E4D95DEF7C4A9F84C9687B9BC318A23EB452FB7635D5201165A47391D21A7CA732FE9B3455C44EE4E54FC3A6518D51402CD5A2D49429B9C8815CD4B1A22C59ED368ED6C7A9DF83B958CC83C4654C5CD040245543431C0D2C9091376611CFDC2EB9181B21C8417E3931AA2B1141C1051CB82ACA4BBBE6DABDA3356BBF4962C3F883D0578580477AC56353AC7524F3855DE2B00967B7BEE0668112D51CCBC139FA73374DF2685A3CC06838B150F92A64C17772053DE2B05CC4D51832B8A2B8428436D99E1F2484B127CE0D861DC8A11AB0B0019E0B3439733B36A7A600F4638D820BA5624B445349A86465E1B25DE787207DDA0B629CB472D415A42A8BA191B76B5829D4D987A2B0C235521C187A0BADDB603D755EB37396CDD57FF76276CCCA997B00CD481587CB8728830021DCBB8478A267B744A5BFD08B4ACB2C1E726121996E55B60D40F6975637831C392845D6823D4B9092151149992794F4AB29D4164A44239F07C365A87ED9786AF7A57AC0BC0D491018007B6BF7705A21B082D1E040A4F4C25E329EF9A8518956044E7683AF94728487A4F95305D4E15AAD45C040F1CF9C442C519B2AA47A4DFC29063243C21F8B838171701B4B73516944EFC4B61FB5BCA63C3ED12A123F55B832E6C312E8BC48F145D62953F5901F7530068F2C9C9F51CA8FCB342852936D414FDDC2C04F551C827071F99C7C24C991F9C97E10E051694C86789A9442D79092B6547D67AF70D8C8B074CDBF854718A882DAACA3B8EAAD0BB1C2D3E859D3EB03C0A23B290518EF88CE1BB02FE71399EF71B380EC1AEC4C7C6BF3830C1B15F7718D0E471D10234393D94FBD3305ABD09CDF070A0ABC09D7497D2F9B939794B923EB3F28B40904A53A05216A526132D9F3CC64606B40F26434142645D79481A8316E8CB0A9321A4C530A0AD139ED5953168A4AC864C726874E1366AB09A249F251CE5B1A7F5CA60AD66375BFDBCFA3D7AD23A13649C03327D409FDA64581CB00A696557945C58E96C1C889BE648C4885958ADEA79AB212A0BB15506BF5635E437ECEE47B60032B4273B8C96806639C87031B6E23B71996B4576626124281AE4CA0A8FC081E1C91667967B25F76C4F72624CB29BD0A865FD67A4DBF14ACC7A09871BC7ADEAAB37B298F12B60B6372B741681627E4C8346C0D34392716EC173B1B711B1C0A1D010DCA486BD5167223658A5C55BCD0739DCFE30DFCF9BD8AA45B3CA0B5A90243547767A1843E4C87922031819EF9249800C6DB8B0270F9CB8F2624ADF4199741870B0630E1BB1B325768C79984D5E33283A991BB3C98B6BB8BE0EBAAC47C4310C51EB565BABA36BE54F6A3151A104911C38EF78E61F1654EF35B2C836C2321A52FAC710D6B03811444DE5B8403569C8CE0444EF615DAD54AE5649E68AB437C00A2C9EA9B18F59346D8B2A5C6582D763730BBC7F24A7EE7C23607C0683A2826FBB4BAD4A58FF6E3BB3122BC8E892A62437CE84445F2E82B495C9730FAB393DC6F3B36BB2A63759A79AE27B162250076A608522440AC1E04630BA766B4C256341C6AC967B36E6934DC58CDA15621827B9558076361192E89708ED88A71826A20E8EC948B9C7915566C70A7C15A72C36ECC7A3CC644EAE696022657C53500A0F13A8AE50FDFA432D8D2530999275E5B9C1D341FB34B8A5A7421B7D290CBC3218486B555C92572BAC8F1085F058A87FD48796824844553261CA11F06978A03F3A8D68657C22064AF83166280AF52270E004731D20B18982283E51CA3DB7A2679DA6FB0AABA1E75A2D283ADD699A797E1BE93502C6823007BA5B9760A338768615B671BAEDC6A6A6937B9E1C35575776A4A791FEC7751079C6683BA29EA28BAD199175B9629C44BBF219CD88A19F1089AA551946E58032A9C9DFD29BC4CA3B654F494990CC02BBB8E1280B54BA3920EF98903F171C27A5C0FB679C8E84774F22136E89915A534D973733410A96280A3207407235CA0D81A636A35B9DD628DEE9A64A12918D0DC6D4C600989168A163730FAB8C78E61A57970C16C813B791A0EE9F625C438CCD1A9429A93062C4AB38DA5890188829AD116A6F1564A43A2E4F3BBA3712207B65E701995C99B29D691C86BD9844AF2471EB5CECD934F764629DC25839C809432E395FD8582CDA980359246EEF0637B9771FA5853099007F173C8598164DA69C8E67A910A50B9940B213547815E0589326B02FF21B89BC4200219652DEA6CCD59883E29127E2ABE3787738B124D839A67E02195D64989520737E3AA99C6822F2C32249256C45455CBD931A5A1FB27CD56A21E22B51C03217AA387E151631CFA445B2B77EC90AE01828601961ADA8A8E6192104F02BA5064C4EFC27CF2DC3353FC98F34BB947B21EC5235FBA6CAFFB6BC6B1C09A783AB8EF14C4921A28A3896BAC07AE8BA98C117B3624E01ED0496A8C649A38A33FB679BB535A7D1960028CA6C8BA825178E74F0E50B5D74C2A9119B595B863D0375A3DA173C63A03D8C60A8D613CC08064588890E3894A9BF4580704038841526AB84E27CABC8FA4CAD6DBBDE9B53017F100778478B86138FBD6BE713A7E695358538BC4CB5A4FFF531BFF178BB16ACE5A295CA0340985F34267A3A931998B29A36935D3B13AF0631CD37777689CA0B43B9208AFBAB88EF886A8672B331224C66C6086B8B15A8EB86107FC0AE260BF08F970CDEC98ECE9A197751B6996258FFB6DCE05306380770DC63498E9B5D65ACAC5A179D8946B27630525B39C3755C070A120C9F468AB3AA8B1A48848081B888BAAA1156BD600733BE887ABF962C46107C432C34EDCA8E549977D9A6F7EB77EB9974BB353896E8261502820F599257CD9C2852328B0FBC5C2B98658D67E4A636575A46E074A1EFDA2CFA50A0594B0A421661D81D95A9AE0CA1C037532BA7EEAD089961C29765C443D428BF20767D1F08615E85D0C08B0FA5076E297143249283C13486F61A4D9D39780624055D6043120A510D4A686F9B490C74F2DA782AB42157A00991BE019E093A509C0C00B7C1E6AB611DFC4373C640A2F488E7632BE1289666206CBA2B096A479B2140C6AA301BC448B13B6839447C4675AA1BE46EB6ECFCB4DDF2569B2D79ABE93FCEAFF0F0FF88688C870D19759A41D3D361A0CEC73CC908F52BAD865F03ADD3941D22C80D50659F501F8CCA1B448D84462CCB93D5F065889484BC092CEDEF206325F68EBC282123EB0AB02874F8A3C6665B78346775351AD99CC3D +encap_coins = 5741C37BC610ABD8F8F9673D0267895A4E77235ACBDB294ECA9DED915410FB1A +ct = 16979B9CCBB8D01F811FD3F8D27E34210B9D343F40E6049673C1D02DDF6ECBB42B940C5B76FFD8804A6DA6B207F9AA0BE63C9FC1060273C47A09466013199F10AAE71769C3A8B6CC14DD497FD9608689C2D754FF3A1251C186A070AE0B8625251BAE26F1D47D83865E6B71D9F30EFABC9307006049E6AECF0E37C9F3251E7C27F4C5489271E58E30819231C42E149EECB8971AE4586B645664F9FD6B8DD6546E3C98882C93791882CD7C61E5DE43DEEB59E933C9E9806F22276FB8CBFBDD25E42A1D02FC4B835E5B67D7A7AE43D973F23EC9344F67384C907B867FDB30C8197667A67E7EB459A5399433326418323457A2724A16F5BF4A527C31B63FADF5247FD9E8380EBA69BC4794133B28A995795D58097FB48DC6DBA765114A1291EF12B6532135432483F73226084AF9E1BA9C68F81F19E40F267F394E5ED9652ABCBE3657A1D4EE7B5A7B62A94243242F386CC47646A0BA80CF06466EDFD38F64CE02E64A0A16ABAEBF61CC52249EB11B4618868CEE6705403378B6300518331658587A895323C6588E8C85CC11BB566CCB8428007292D430958B4A44D28EC3C6A0BC50C929E7A422392570346C4337450C82A9267818FB1928EFBED46C41085938EA442DD79172A5DCC8EFE8BB8BD7524E404610D0D495DB4897D797685A90466CC4936D1DD9027412F8F8938897BB8A2655FFC45E44219240F167910EA27D79B265D64BE935497961B8D990C987B4FED21056CE829E5E4E1C409A17693EF8521C1A8B7807B723958819A26F227CE2DC93141CE3B248E3B0C0420EE69B92BE7A1241583CFEB4506041E89FEC38AEC7B02100713DC20252E67C9C9AAF2F73B1777EA9095B358792B7B80FA41B4FE6ED81EF4762BAF0D21EEB5898CA5C3974C17DC7A5766E65D503B4CBE59B906ED11B8F815056D1400560511BDE00DEF4B64104F943748821FB9C342540CFEAD38442E84CBE6B1556DB621496C2B91048E28D33EF9B2BE3AD7A8FAF04C377696ABF50A0BB09C07646297160F080EDB90A74FF803781F8817A02ECD9AA62C4EBE9515FD0ADFFEB7EA775DD65BF64D2B0B9C1D3F6F5DF3F2023EDCC954D24B97B19C652FB754F291451FB1DAC25290D601B94C8EAAC7923A0263FC4FEB70EB3FD153937047E5E388AF532E2741AF951A7C7C1EC9AEC04493AD9C73103033AFA7DA8C014D10F464C090FAAC0FB2D92C5FACD4934B47C414B2E43B324D6C970B92DE85367F11795323D043F2A56BF62546DB2C28047E306EC2DBA5CAEC6D3EE21050854C9D1C94AF5268A45721C7B7FA6BEE275E8E9D23468812CD28635187FEF25C221C391D7A7F499650B5F059625E87BA00A57CB8C51E98E14B95F5E8FDEB6E9F2DCB378A991A7D047599BCBD89997DEEA6DDB338DABB1689A811EFF30AED59D17E9746724729351E3507AA0CD4B567494FEF7B22278B40D2C42D5A305BC49849902C5B9040326A6E0E5D6DB039F59F65D05DEF4540A524515C8DA48CCB13867F082BD03B1D822FD654F428260F5A1A7D2821EC1E87CEC +ss = E5398378607B281F73F6FC93A7CB58811AE9F8D986BBE0D8C19EA0B3971B6C42 + +count = 64 +keypair_coins = F8EE95521060C03BB8DACC79F7EB7DB640F545F315613A35D447A09E504CB4E17373D22CACE9F3A09FCC5E85067EE05C0E537AA0738F79101236B4E7D28F2889 +pk = 61101724795296A2499158C8E1B50E4C900D65C8AE65503932DCA40E058E8192CEC2A997CF12C8A1227567B12A1B21BB31D3198C85C4878C6EA1967668E3952D04B4123CBB9CD8C77F3A7397A9133D99654E6C56E7465D9B98BDBD624C12E36C62B60B6A32C9086A8EEB9B8919706F4573A33C393F74BB51D5609231F1707E152F23F36F6C6830EF28253C8CB81EC5C27ADB02FBDA5302212826F0B88AA4B4D72A509E29CB1BFC8177C019C60598E693BCE999AABC4621123415235208E7869F62AA7B50A51724C13DA2DB59D5BA5302C772F2C1820FB0882EF32F73321C17F40D019CAD39C3B12C57C3519CA0B38366AC4353B133C39262BE6EE47ECF660286F6CA8EB7090418ABA0D9833E22B46B761FA2872FB80972B551809C02775BE07C796636A2C619FC748B90D28E1E702FFB0653E250C8C3759178C39E42411327A81C7E7887B21915A5CC032C37A11382C4D9186221B1C66AFCAE8184559910201C8BAAACEC62BAB984E080433B9465E64A2D987028E9D9090CB2C41753742CD77F0998C672441E83D45F2D06C22899C2136362271B731F6BA3965B32E2517463E627AECA0AE5644BB8602F7FC599ABC120AA111E2E549A276A18D2A92C39502F6F9519CE76C0BCB514E8084C7122A321479338F59ECE08A0ACD30F0AD68F2091855D5980219083398A6C0A63C70D3743678A1C0202A69DC526DDB77E30B779C36AC2575704EAD94DDF1661A38B2624E733F2E2AE18467CE2C3083B75017411390314AB06ABB4D0FB58BFF99DC3949E92994703E85FB6B863AE1C29BDD6656CD75D9BA453AA115A32745F2DC1829881A9F4D5CC2CC053AB79B89D107E6054C69DC93F5AA9C8CA6CC1A7583F2E2739B102378D93990CB8280B21A5D5BA8415C48EC17288044623A9631577C16639922978258CEE0B6C51BBCFE3F70BE07CBAFB7C58111CC7F2F922AA023D5AD01D2D31A57E0469AC428B6FB88A97D957AE22BEB768C3CB7C9F02F583FA2513DB7C580D2986984314E8B346A06501D8972E31AB8EF5B983E9A15E8FFC624D0041FD523570960E09E57D616A06297BB3F9D938F5655628B06C4F6C4FA5F8136F8CC05DFAB7389237EA75AEF46117BF1B67AA978BA622491260128E743F28F95F533B708F3C59230B23FABA96FFB5C239B32B30A65B36FC5A0A76B76F04A60C9C7D5EB78EBE44B736EB56A0812F59D9B5812916246228F2523175242CD1F432F9FB054A8B52D824349DC0756091B2F7C21E2A899362157BF9F631287B90D6C80FB55B1469273F79892435D031B62982C49A1464E2274F815F56F3B6F8C949BE11388DF1151E7077F603AE592623E4259853A2B90159344B041AA29C8AFC5074BEE81959102E0C57A761F1B1AA65B1DCB66A18BBBBE12B2B2942A37D13C77C77B2BDE758EB1901F74C7D57D373A47737D6E23998E35DCEE70983359B4162C7135126E90A807604034D52ADD3530456B66F0DA64453150AFBB67D67D9B359137C2420250C279A1C537AB06952E4823F09372198C253D5B71A7E70A1C48B1DCAC3A85FEAAC35A11E670B2840A57F2A7C77B6A00CC80A282F0A1C8160080C702D619A6B6D68C757306C93A5B21BA8185B1A46C79B03C35880A7B265A3E05B2DB868482FCDBA0367177BBBCAD04F3A50ADEB85DED90BD59DAB +sk = AB4545850434076342EAE8409FE0590C34955E860267305FCA05C347BB3E53BC714E3134A6E9B338674A9AABB02F021D1A09A190757F03D573C27687F7E35F2D77294D10CDED732218395B344523F1B704B27689DCC286B5C98217F239C159AE5D655436F00517A50C6DC6B7F4F111E7F37A0F319BF6ACC7B0E3345C9367B2A2B8D9D644936220C0A817FBB38CEB3469CD55C661E1C58D06807504443448C4E53204DC59C60A5153494478EB4056C9A85967A42EBBC287AFDA51FDD6B84B285523D41D80A56F7A68A168A4527D902311B18D5E381CFDD578BB7924FE687D3AEA5607906815181171A727E4DBCE1B678762A8B03C2A2BFF1635CA85332AE90F14B880C5EC4E5389B7816AB885C44A8D83C5EF0C4C754C7B6E673D984938D3CA4EB0F5B83B90BEC27172AC85154EF27B91623841E188D76B040F958C38C8A112C05B54103E55A159DE0954F2477E798A573339508B7C2AC3872A623429777BA3179060135C083E2198D1E0AA01967C39C27372A1A36A92BAC3BB13EE3C94B1F0391E2702C50253DD497F16F39BDCB9C68CCAAB6312084884B113E70F38555422767F4E613B2E87AFFC01395FCA37DF0A1AEF74263C1001392732D9D1047CC7C6FB910AE6136C33094526876A113514F2918909532A759617DBE2C97E72176490995DC82B663655DF65324B1996A42150BE41B2A1C90F03B2A6F04174DA1B1CC7FBB024C3C972B9714300C683C28A90F48B01C28607922C3ED25601A609673481B365544B7C36A9550EF20C37005B0E395A268E90CE1A5271E1421B46303B80CBCC81E2894D7569E82C2F5D8C6996C766BC505976628CADD84A3F468C67C209117C8254BBAA1BA584DC2661728A69E959949ED6C9F1B42F01EC8E55614AEB7168CFBB5E16504EB9F585C7789C48E59C17B5975C444BD6E32A6654BCE298A605043BD367400C14B1D8E1A592A034543C04A44C85711AA66C807FB07378FB525600C19D9A4A9A8C920BA7DB0B1D912A45F2B6D518B469E9121D25CF40499196376D3D92827E1B96AE255AFF288037793C7DB07E1D15533C07162AACAE3255C0CC368E2FBA3FEF09540952910EAC0FB2F3AE376AA666FC97A3E122570CCF797C79EC575835E0BE6E808B3CB1B72D8241C3679BF15020B6A63BE65B95A2C9147EB98C6553C71C550E37603E6B73C877C94E7B603A22ECA456C1409D5AA049673D0EA17C123B1835692253FCB589186BAA498F39481C3D0640A4D34931033B30F26EBED6CA9C49BA6FB219D6DC8461937284235A6417CC9C0CA0AD385B04B01C81D5A7B97A34977250E3679AC55C3D76D83B1F7B99DBA039DC179147223B5D6C11FC9109DC062A1E4B7C88C710C449320949BB4405B28EA2C04D48C58AABB46EDAA58E442F3AB6C9810B6D702855F7CA91AF71B0E574BAC1040DBE864DDAA76827874839414CF3418D1702C6F368A10714CB25E208C8A5779F639837A07E348841A11714F41399DA175C49678307D3634D6B9921880FD43CCB8D7842E5F34CE44A4923E7CE6B671C7A989AA748604D147CE7AC25A1533E80AB321B7AACB8D523A3A6298BEB0CFDA435D77714993173D080827FB07B7855769EBA987696AFDF58231F361D61101724795296A2499158C8E1B50E4C900D65C8AE65503932DCA40E058E8192CEC2A997CF12C8A1227567B12A1B21BB31D3198C85C4878C6EA1967668E3952D04B4123CBB9CD8C77F3A7397A9133D99654E6C56E7465D9B98BDBD624C12E36C62B60B6A32C9086A8EEB9B8919706F4573A33C393F74BB51D5609231F1707E152F23F36F6C6830EF28253C8CB81EC5C27ADB02FBDA5302212826F0B88AA4B4D72A509E29CB1BFC8177C019C60598E693BCE999AABC4621123415235208E7869F62AA7B50A51724C13DA2DB59D5BA5302C772F2C1820FB0882EF32F73321C17F40D019CAD39C3B12C57C3519CA0B38366AC4353B133C39262BE6EE47ECF660286F6CA8EB7090418ABA0D9833E22B46B761FA2872FB80972B551809C02775BE07C796636A2C619FC748B90D28E1E702FFB0653E250C8C3759178C39E42411327A81C7E7887B21915A5CC032C37A11382C4D9186221B1C66AFCAE8184559910201C8BAAACEC62BAB984E080433B9465E64A2D987028E9D9090CB2C41753742CD77F0998C672441E83D45F2D06C22899C2136362271B731F6BA3965B32E2517463E627AECA0AE5644BB8602F7FC599ABC120AA111E2E549A276A18D2A92C39502F6F9519CE76C0BCB514E8084C7122A321479338F59ECE08A0ACD30F0AD68F2091855D5980219083398A6C0A63C70D3743678A1C0202A69DC526DDB77E30B779C36AC2575704EAD94DDF1661A38B2624E733F2E2AE18467CE2C3083B75017411390314AB06ABB4D0FB58BFF99DC3949E92994703E85FB6B863AE1C29BDD6656CD75D9BA453AA115A32745F2DC1829881A9F4D5CC2CC053AB79B89D107E6054C69DC93F5AA9C8CA6CC1A7583F2E2739B102378D93990CB8280B21A5D5BA8415C48EC17288044623A9631577C16639922978258CEE0B6C51BBCFE3F70BE07CBAFB7C58111CC7F2F922AA023D5AD01D2D31A57E0469AC428B6FB88A97D957AE22BEB768C3CB7C9F02F583FA2513DB7C580D2986984314E8B346A06501D8972E31AB8EF5B983E9A15E8FFC624D0041FD523570960E09E57D616A06297BB3F9D938F5655628B06C4F6C4FA5F8136F8CC05DFAB7389237EA75AEF46117BF1B67AA978BA622491260128E743F28F95F533B708F3C59230B23FABA96FFB5C239B32B30A65B36FC5A0A76B76F04A60C9C7D5EB78EBE44B736EB56A0812F59D9B5812916246228F2523175242CD1F432F9FB054A8B52D824349DC0756091B2F7C21E2A899362157BF9F631287B90D6C80FB55B1469273F79892435D031B62982C49A1464E2274F815F56F3B6F8C949BE11388DF1151E7077F603AE592623E4259853A2B90159344B041AA29C8AFC5074BEE81959102E0C57A761F1B1AA65B1DCB66A18BBBBE12B2B2942A37D13C77C77B2BDE758EB1901F74C7D57D373A47737D6E23998E35DCEE70983359B4162C7135126E90A807604034D52ADD3530456B66F0DA64453150AFBB67D67D9B359137C2420250C279A1C537AB06952E4823F09372198C253D5B71A7E70A1C48B1DCAC3A85FEAAC35A11E670B2840A57F2A7C77B6A00CC80A282F0A1C8160080C702D619A6B6D68C757306C93A5B21BA8185B1A46C79B03C35880A7B265A3E05B2DB868482FCDBA0367177BBBCAD04F3A50ADEB85DED90BD59DABB8A3B8CF4709204A2FDB19889B0022EA655DFD58FF27E17D530510E1EEF457937373D22CACE9F3A09FCC5E85067EE05C0E537AA0738F79101236B4E7D28F2889 +encap_coins = C4D1D167371706468915DFA7F41E45FC48FC5E02EF79651C81C87BEA7861B2B4 +ct = C5E6613B0E5EECDC14B4EE3E5B57929AC03652AA0D646C9D2C2B9D33A86C3AF47F0AF45F15F89767089622F847FB099E8EE60991BA5826736FA2EB48113078B07B5DD0CDE89BBFB58D1F665A9E5A49B730B017A9C10B3F7252B282D6F921391347E92602AC0916AB439C4C54A265A2CB9E0E4B9E87E78D54A05451C6ADC72E9A885E32415282D6C1CA5291E7D53B8F2D67D629BFEDE7D7FA28D3BAD56C52113C1010841D5250DDDB128C56F7E0F6EFB89F5DB4765E0C5C3012BD4F6B85760E4CAC6A5A82B816B5060407BA37F446F256AA3DAE760199B8C30EF858FFB86913653BCE3EE3BF442D598F3C1729CF33B214ABDE7D6E20DF2E4532918389EBF5DD2642AF7D3D59B123C6D30FCC1C30A194AD4567DD34CF9CF7D4CC1D813DF8F2F46B7F3F14C97E2C00F94F5F29CD0ED45284E477E36B19FF41E5C5DEB4D8FC96DC8FFF2E42D8C603DF5C9B830DE830BABC31C82FC699D4861844A73F7078BE0C6FEBC66A52A6AC603D06CBF3D7A11066545479AE7860079671FA391BBB3C2B4E2D5AA9B521E6FA246A1D40EC9E1A5EA712433F1C390301D001330DEE4F116B9BF49A3094E2D27F6625CC0128129920797E4B3B7777F3CC07FCA1674B7BB52C41B6D194119E75A95C9C9A3252389FD90DDFD0A9F06CC90782C46C6B0C36ECFD48CC5486A0FC7450A19B1EAA6BD182C914D042F00813D5376C8B5B9A73FD1600C6C89D00308BEF333E8106C1FD1BE400515EE4C18F0B436777953578929AAF623A9FD9CF7D470DF46B4FA7C2590AD4956A7C5D97490001E7CAA7F99AA171994816076CBE3CE7FFE13D1AEAD0B562C8C5347EDF3574FC95C5F2D2554C641406D1E386182C9B512F43E825172348FC56E923299793C4C50AE0E34CFB60AEBBD599858154548E89C9DFE8923F739776113F75CF58B67B79594FE03B969C345D2AE8DC6CA2F36136F1C34547E7CF7F64BFF18BEA8E8E1134A68ADD58EF245921EF70F794153549BA08F99E72A2DA21584811DD869737362059110CA8164A3B46EFED1ECD265D5532BA37CA43A06DC43A9A0020BE610599B4880A98DC89A6E7881EC607981438F7117874673F407C01193165FB85934376DDA1723ED3E16AF7F4A0D3A079BA6797637F31E3B446A5F7C4B663C34070BE49EEC1E88DBCACFD7352B80EB0D7B3214E61863DF5F615815A4B93F6860ED822A2274C8BC64EFAA61C9471468AAF3F0958D7CBBE886B491A70028F3A040E88E6BDD9B641F9182B03DF4558BEB65DA4E4ABC3AB5AAAE8A6D644212C7C7B25563A25F8B828EC241835C2EE77357B07BE5C817D68DBD1D2EF2F72E9A963C3693B759060304325D263D31BFE67DCE3FC1D9E502DB40ADF29C655E05FA4EA172579AAAE53DE5E99B09F585BD55F1488F48361EDB6C55E52180629326D46B3EC270D6AF6533081615AA918FE1D76A3EC3B7135E3638DBA929960591B2B71D94579DC3E65309314804E73C42DD067DCC5103E6C721733D8606D101772B193531617AFF97233F4607850CD2CEBBC1BD91F2980 +ss = CCE008CBB7F83B2EC863B089B7030AE360F775439A96F0A51061A76B7BC7BCF5 + +count = 65 +keypair_coins = B8BD0493A882E3A49B4E0F6256FB1FEA0912562FD9BA26EC3D6C9CC12C8973ABC1B070E4E519D727F677E011716436BEE9DD0188FE38C00D0FF425AD794C07D1 +pk = 657B941F466659FCC971C1174AA4459551848E7A116B751E5E4022C8F2A4B3152A1B26A3096539C9B0BD6A435EA1E33413AC4D5F401F5DE8570CC11CD4BB9FAC473328D55501702743E2C8D1B97CEDC8AD3D55B67D284158EA8BF1A4A8A17A9DE6D5669E8B9571200B05300CB30BCEC4A58B06F70830C2B32D28992B70427781854456129CBAB53A7C72FF557193D3A221D06177D002095BC04E993B8606245416C3B998B01716AF3B43A535F7A6BEA71270B34EC808CA00E9453AE660B732963BA634F14378B1691A90E3708125CDE31BAE3D10451A5643F526CB790A8D6E091A725681FB539E9B05BDA7B04C48A31B39DA6E39E6BE624663B6284DE9F958C50149CE4090E6A486B68511AE90A0F093297BF090DB3C81D34400A40CBE11D74271E23BBB7A49EA875EA7F7CC25516A899198362ACC52C8A8CA14BEE12BBCEA9A6E3509B6887A3D1D4C3B2B4314C4C44F44C96F48B29A8E7B85339037ACF131F2692B7E7A49282237C8F37267C835C24883D1A189D4DCCB7C6BB1FE622FC31301A6D3612A448084E0A210449B7E15A4FD84A9A538B2D5844DC170C911FC1282BC513E8C18C469A01A548D1CE4853128A03A8B1D369B353C3003B0A29D210AB6AF23ACD010AE3671493C774EFAD8B3746180746401D0E5862A3265E7969F247C954955B4AFC13FC420143C10263EB1C6DABBBF5A8857A7F3BEE7658C8399503C21A9A38BA554132344E214CD2036C2B30D0770CC5DD87ED9B246E7F955EA926965748CB9E58351A938F7E4AC249CA5C970CFDE48C0ADE051BA873D36A581E0FC50D9583109A79549FC5B32BA432444046AC0A66F3C64AE1498F43B1B36D8082442B5AAA7BBCFF2C4CDA8C0C4D2C62CF9135A75709CEB5B82BA4EF5716C4986A36BD7B4AD5C3A505869FD34AEC2D7CABA492F4BC30D232382B2651D5923242BB50DF87092ACE5566BC5A18FB2925CAB467B641DF7B5B91142318D120456245F2F0887FF13516D23216637393C469CE1F776CF2426C6577844CB3D4E0A92ABA85FFB59979A7C33EAF51EA2BAC9862160BF8A85553A3D4EDC05DA102106F632C91B8D1DF2A9B2734185283941EBCDFD788107B307738786D6C0A0E7D4957DFB17488C5D6CC11B83E3504EF2923034A06270563E18A18BB29F48C36A64C132AA626DCFC5A615E4416DF76746673E500186A117A27C5007A4B04867213C33739E27058ADB23C0DE35CE6158C99E59B88B147E2AC05F09F7C0A414C3240ABAF65C24CFDB6857ECA66BFC58E52472861BAB1E03CE70D2115480B443A9BF799379AF9AC978D0072F75BC7923816A189DA5974ED948B8A709A8191CC9BE60AC2A383A7E27CC62543A2A0CA9EA6897D284AE79B595D0893514F75DB35C9254B7AC47260785C1B86A98A5DD733D3DC2B947D148F698C5A117821847604151068412268169C86D50BE92D77683386025704575177AAC0B9D3D3196A610985E860E2F799F480B1331BA346DB0C379CB1833223836D88FD4E11DBF2985825C78330658B9A189233BC76B172127BC7A98E6C644D28DA7B0857F67157AE2C27659297C32A7EB653697A295097A32AC235A11887388265ECB3B46A75C865C239395300D0F8152CBCBA77B4D655C9F1EA4B448FBE32C4996FC298D26CAE25D276BCF6E66BA65E3E97791 +sk = D7E3338B3CA1D6118B7485BF85AB9E8F6C36E158B67D2C3530B0A544B8AFAA0A8604710987429D0D1B1EAABA8F06422E992C475DC4CF909061EFE673A3547575E8B00BA47D5A158C22E6B2C280B3152165A5A01A43D801E96791B6D99C92C0B0602C94C0B13F2672146A7044E4372C5FA8843FA7974692B0F292AF9FC3B5793092C705421E6AA39B7B3EEC76694F5555985A94879ABF737949BC33CFD1F8563565B2F345B6B3389FE061509BE046B3A048A73599AC20466F0707E9B46045352F94507659BA428CC6994EE3375B07D09AD3BE1872C15692C7394626CFC01BF5435D7922BF9199533A22CC4FF021A97C571DB311485B36E2A3344EB880C67819AEA18B09919FBC57CBC11CB228F8C24F38A445C512245C3A5CBC65D20269EE849BC268899981B9F334704499B60A891139D9470A1A147F38470752C4EAEC5B14D51817FCCA22E7BC1C585CD2189131960A9E9284AC7940B2949707EC7A67F22DB280775D8163394A3A9557BD48F50C26F177FFE83030A3455DE1196A763F8AF156DF73CE3BD07AC70447573A79DD04A59E8B40E39C6FEA736E14F1B1B67B5CF556C3ADB29FACFCA4E6D8B759D37737863DA2A7AC4A645A8F202AD61C17068385C21415F7E14146D896020B89CC73AAD60135D5A3B94879184E086F1066A9F56041B6029D1F538FB5B18A7A741E04E2C158B69927A1A7708BCC411988C0C315D0D1BC3A31B0CD473FCD3ABACB1BB3EB23224379B5350081EFCB8C45584D3B845E2500420453718AD83194130983A355B1388BF246B9FE7400443C52629812FC1125C3800C3F824C0FF95BC24A2E8B306D5E3278FFFC585843BBFCD06D2EC3482295717A5111AA7B6475040083106A01491CF981197EEB77D9B01C2BE476F07C59CBEB5C4D19A2000D61546A9CC149A149BA8E57CB0ECB3105D94715C7B1BA7800785EDBA95A7352583354B93CBEF98C78BFA946A7431813EC36AC45488B170859C098B7C6813CAB2FFB519814C3A9DE3C254ED7A144FB6D15B183CB48A9021972233382FC8C388511ADD6A86837801F4BEA0DF0103B3A152648BBCDA68499352691BE0C3E5218A7C22C8CE49790AF1BCD4F6717EAA18CB489B446D24F5CE239C79A6E34215E87BCB8461B5B509C895EC22F94C17C3BCC5904D968C469B200D3322B423761E3749556476D925A915971A62A5A330ACBD106AD77DA7897815CFA31CD44310D44915D762164B6170B2916B5427C694FF3340FB16B73500E92833ECC35BB25DB6E652701D85AB215B366A173604C2797C2A9C420E069E7E4B3D1120DBD1C196D105211134478D23CC4428F8F56182FF3A51C7B84F01A08BA157E86B9374FB7C2E7ECA3D4B65F4A73472E38C6F7C06883C99C4CE934F9B04436D250EF262C42D4862B90C11F4924087469210A25CF4CB29D139D85D9C904004CB246348C60736D707B2B9B111C91ACD3937D9E8934032746AA5025BCEC8BF637936448A0DD67A27DB2A74B60BBA82BCC87D73D4A9033C427A85883613EDA43829C7CA3C7A8F24364633610D8199A5EC8038D0B6686ABBD47692ADA94282C40799ED4BF8ECB65EE7C8B2047C41EB255318C139B89CE909831FE3024BAC10B4110CA34F1BD657B941F466659FCC971C1174AA4459551848E7A116B751E5E4022C8F2A4B3152A1B26A3096539C9B0BD6A435EA1E33413AC4D5F401F5DE8570CC11CD4BB9FAC473328D55501702743E2C8D1B97CEDC8AD3D55B67D284158EA8BF1A4A8A17A9DE6D5669E8B9571200B05300CB30BCEC4A58B06F70830C2B32D28992B70427781854456129CBAB53A7C72FF557193D3A221D06177D002095BC04E993B8606245416C3B998B01716AF3B43A535F7A6BEA71270B34EC808CA00E9453AE660B732963BA634F14378B1691A90E3708125CDE31BAE3D10451A5643F526CB790A8D6E091A725681FB539E9B05BDA7B04C48A31B39DA6E39E6BE624663B6284DE9F958C50149CE4090E6A486B68511AE90A0F093297BF090DB3C81D34400A40CBE11D74271E23BBB7A49EA875EA7F7CC25516A899198362ACC52C8A8CA14BEE12BBCEA9A6E3509B6887A3D1D4C3B2B4314C4C44F44C96F48B29A8E7B85339037ACF131F2692B7E7A49282237C8F37267C835C24883D1A189D4DCCB7C6BB1FE622FC31301A6D3612A448084E0A210449B7E15A4FD84A9A538B2D5844DC170C911FC1282BC513E8C18C469A01A548D1CE4853128A03A8B1D369B353C3003B0A29D210AB6AF23ACD010AE3671493C774EFAD8B3746180746401D0E5862A3265E7969F247C954955B4AFC13FC420143C10263EB1C6DABBBF5A8857A7F3BEE7658C8399503C21A9A38BA554132344E214CD2036C2B30D0770CC5DD87ED9B246E7F955EA926965748CB9E58351A938F7E4AC249CA5C970CFDE48C0ADE051BA873D36A581E0FC50D9583109A79549FC5B32BA432444046AC0A66F3C64AE1498F43B1B36D8082442B5AAA7BBCFF2C4CDA8C0C4D2C62CF9135A75709CEB5B82BA4EF5716C4986A36BD7B4AD5C3A505869FD34AEC2D7CABA492F4BC30D232382B2651D5923242BB50DF87092ACE5566BC5A18FB2925CAB467B641DF7B5B91142318D120456245F2F0887FF13516D23216637393C469CE1F776CF2426C6577844CB3D4E0A92ABA85FFB59979A7C33EAF51EA2BAC9862160BF8A85553A3D4EDC05DA102106F632C91B8D1DF2A9B2734185283941EBCDFD788107B307738786D6C0A0E7D4957DFB17488C5D6CC11B83E3504EF2923034A06270563E18A18BB29F48C36A64C132AA626DCFC5A615E4416DF76746673E500186A117A27C5007A4B04867213C33739E27058ADB23C0DE35CE6158C99E59B88B147E2AC05F09F7C0A414C3240ABAF65C24CFDB6857ECA66BFC58E52472861BAB1E03CE70D2115480B443A9BF799379AF9AC978D0072F75BC7923816A189DA5974ED948B8A709A8191CC9BE60AC2A383A7E27CC62543A2A0CA9EA6897D284AE79B595D0893514F75DB35C9254B7AC47260785C1B86A98A5DD733D3DC2B947D148F698C5A117821847604151068412268169C86D50BE92D77683386025704575177AAC0B9D3D3196A610985E860E2F799F480B1331BA346DB0C379CB1833223836D88FD4E11DBF2985825C78330658B9A189233BC76B172127BC7A98E6C644D28DA7B0857F67157AE2C27659297C32A7EB653697A295097A32AC235A11887388265ECB3B46A75C865C239395300D0F8152CBCBA77B4D655C9F1EA4B448FBE32C4996FC298D26CAE25D276BCF6E66BA65E3E9779146FE6C37136273736CCB11DF5B6D55DEBBC087DE802404B72A003C5E8C809719C1B070E4E519D727F677E011716436BEE9DD0188FE38C00D0FF425AD794C07D1 +encap_coins = C83B6DDC081188C55BD3D236D360F73C5CABF211676ECCA5A0F2DA3550D51BA6 +ct = 4866F0AEEFB3ABCB2B98D7B879B5178A350CEBB7E7551173ED463059390A29A19781E6F8EC204F5E77D41DA3D73566226CDB5DA3AAF5E3EBFA76E971B91A85AD993FCBA53C5C300E2F5D49ED9546DA565BC235B6B17E3A15E50668CD83BBC1DF4FE614D46FEA749487934CE543E579C66FBF4007FF784F78B5286076A7DF81EB8C8F10388069D0C0B9A0ADC71AA5320991FACD936A289D0E4D9AD5BD84E0A74FE23EFBD40F7F75676394EDD380D47B610E4DDE013C547A7DF39F77D27DC12CE592BFFF0C37A155459717DC7159D04982C69EC03CFFEDBF6AFAE5452E4AE0BC4D3285998D08391CCB262068A8EFEEBAFC72E4160FBB4FF02846673EAE8F2EF42601B7C496546003D613C19A590AE030BD6E06E33025843F7A5C4B299062CEBFF25E9E7FDB81C8F1B83384BAFEE2D2F7B64AAD757A4274300D85ECEEC3DB9F5F991F777406C6E02C10708FCD596A7D5525765E921CADAB99B1DC080996B2B3A56FF805E6F007C0E612BA1056B9AC8DC183B5D5C82B00AEB19EB15E2C556D863FE6FF69D1EF626F3BA3E8F6188EFCCB0284225418CD8F63F3F7E87D5B9C3557F2D6604DABC902217BC18EAE1535816802BDCD757C574D962FA7C7AA1F5A236C725AFAEDB85D9C5ACB1D42390C9186C0CA1BCE33877A7DD95348CCA33511632023D1DB87056545D8B06FF51C23CB2EFFE7C92AD495437D1401E0B11693069B3730D96301F273FDAAB0568BF2E574473C89FC327485FF7EB8E300E0D86055B8729403774AF9B5E7937D9F3BDFED36E284C96B2CC4ED101B2A5B94D0BF742AAE6473536E66BE388E8A1B8E8B2454D8076061F75296970C330DB3A1DC53FAA510C952E03886FDC771BAD55273D315BD263FBF50B444D7351ECFE306D8A8248404F2593AFE951BD1AEE0ECA39DDA6A26FC724CF48ABB039CF94C9DA0E9576B81CCC5B178C91A72926E176713D74C915C14367C390C5843D021688CC93F8FB153032706640671A7016ED36BE50483A99CC6DA378EC960A306BF98E41375A122C5B0B5BD9D9F2ADA3EEBF7FB8F0FAB0B5DFFA4E171F8C12CF86ACB65B919D0BE42FEBCB1287AB50F09F5AD95A812B4D3024E65F239424C6876507C5F7617D3433F60C16293EAE76992A0783AF4F38DA5884943D2BBDAEDF427212B10239BDEE710F691A11C3C561817E87147C9E063FA3297F9F8AD61C72DB74A9E3A322293A3EADB133A88F162F5DF95E10C6FA5602C97E65AFAB4BCB55D8E43C183AB8B046530AF005A75B71B7C2B0D1A29E58CDEEA452A6F9BF0602D53DE5F1D8325FDDB1A7404DB0C08BA0A3FDA8739698274851AD55D22AE0679DBAE56AAE91A1C8FD900D382792E49364BE81E34C78E7900555066EAE7AAEA777F15C9F7BEC089038BBFF8B784F86EC94FE407F8644963C361E8D7E504076142249389D466E45C89053B951C0766A7B3169C2967A50949376DD70806D0458D258C3B8B20F903F3030A571B1817124A269FE57F2B708605C2E1A46FD4F4DD35A7B4272684D5292F08D1B0DB1ACD4185 +ss = 45B97D6EBBB1DC841FF6C4D407F40496A2FCEECEAC09703967F75FE1AA01CA27 + +count = 66 +keypair_coins = C0407E41DDF48D333978B89BCF2DB01E4613425B456249E76A6F25B8A2827BF5D89CDCF4B8ECE9F441926532427F01E9DD71B86EA949A59B14189AAA249AAF77 +pk = EB9B77F8C16DCE72611902A8CCB81E8CD4C5A2FB1D8FC30CE226BB45779F41073FF3EC0362BA152102CF45D3A95874A551C14C8A621436E248FFBBC4CA3B4033D50EFA392DBAD9C339745803F845736C30BF309546229EF52788AB223758C03491F62913FB4CA4307DC6B4C7FD9503A701AD21671387CB2CBC728ECFF4641E312779C7034CE720554A948A021751D4628890CA7367611D4B9F269C5CCB2381F1F6A01B0634D9C5C954FBB934E4144922CCFA2035892C4CC2A8457300946ABA4FFE77868D34C7A90507BE43748A366C49D0A927E66610A08CD0152A2C1BADA92A05694B6E3D2610ACD4579D5634FD2675F2101290E2BA1855252B57A438B50FCB854EA7B6A89B109EA9857C23AA38333428B94CA5A524977D72077B56978328C18980382EBC967DD37E6136360A958D5F00C3B9996DE3B97B6468B9F98C3C50F37A9E73AC8E8364288347D9B018D437B3B065C120D26E9033078B5838DFC7CE68F244B32C5B4AC04DEF068F58FA733E99A418176575EC2BA0F78D4C402D67176DB5717023B57F8D26C636A11F49B926D20B277D2613941C3E786B1A9A3C1135993BCE22A1DE16434A5902C0F101993B65777399828BA52330A2F356203521A3C59B6007C3AA41D198A8232D27C05F8E0280C9076D54D5AEBDFBC95C7C06BCE24507892641F90D2B774A2D98764C42BCF009799432B706DA59BD84CDE4892427C0586929C99850C7D769AD9A221C85A4062A62B2A1847454554224C4CC47898574FA66D147C4AEDC59FF612F49285DB54170508C89E6787A8CE6515CEC673D4545970CA8EC486802933E319800FBE46D5CC14C8363656DAC0600D895FE383FCBC3614FE334CAC0A94C185B73DB30CB5A56A8D04CB271B13859862F164F980625D78AC35ED120605CBD69E6410EB05168819440816EEBF8CC9AD153CDA5BC2EFBB00A7563A55856711231CD12873A9A56996C174AE43B5C172A1445BB40CB3DEEF9051035B33214A61E26852EF3BCB3FB319E1B4D6BD832D6B9BB54B6021D180881D59D2458564ACBA148B0AC36CB501CC8242919064EE24343F26A87A0696000533A20943445C72B9260B4C8A46A1C921C582600D978C5370B400B2412F73541A13BA0349E66FA4025735CAB6402AAC51E08A019B48115C49C665F415244FA91C208C6B1F2BB02BC18C47A5AEE366EDBE3BAE1E41A8B405DDEAA22A2FB254A6B70DC5A16C0217E4DFB933A127039B788E6C035DF8993FF86923500BA466A81D34A0ADA271DA4262F33123A1B81A13621211845A167449D93370BD95A89725A56A8452B510A7FD2642AF41A4A7856ABD9688DD7C85433A868103679A8EB2BDFAA0CB52CC141267E91E2C1E57162C6B4897C9004A3D375C1C8BB87C5AE2CC80C2A107E0F904E5BF8065AC96C9152AEB07322FA181A83A9CBA0224C9FAA0F06CB67E2787EBA832D3F53AC60B7B014D28945361759689C3EC65F8B885EDA081443A2AFD2A735B1C57C201AA4D273B1302267E5A63ABEFBCAE8E1B2D3883439E2BE2436382EB9BD62146DE0E446B6E2BAF8300575091DB145A646C733BF352989938FDD8003218A607739C60DA6758BF448BF18A22630B08AC40635382E3BF86D16625C45E12EBEEF4308B229C948D425016D674119C0AADEFEB21338BA6CEDBF7DF723 +sk = D338B8576C1FD9168551A681F9C590095B6B8D8474F571226A4B68EE81A83738BB964356EDB663D925960388C92896029A201EC7F046CDE497E3384F613A444634AA3C41656C6031D5233720241603612BEC1032AFA7B3D41242CE374C8B118CF6219FB5E645002530781CB4660403F88287D115BAAA07CE95496A7232862282A653367FBBCA1E337155A3C8905E368C1974418E735F93B6965FEC11CE7B43D81710D727A4C4B434003B9110D013568B7BBFB341212543031C862FAC505944B86394554772047B2A864A6675ED984583269362759CBB464E7E248A48C3554B8054ED9342AEDC8E221439F812697B691BD5C89B7FB11EC716BFF96C97DD73C45B00980BC6B1F69117C2329386518058E97B26626D98196025724BAF0C5729109399E035ACE9A630CB6D7CA9CBC16AB560DA5C01E37601BC0DCA7A3AF891B80418C0056145C7AC8C176605411A39BFE843CAFB4FA61463B20A504E984308F2B82CA7081A97951D0961B2664E2D7B41DF902571D02C1FE24EC0EA998609248CF51CF2F81D96A983DBD29BB37B9A7D559C72FC0BAAE894583A842FCAC92D910C7D682DDE70A4A7B26E3259B290A182392CBE36B68D2E321708E9C00D8C06DCA5043C1A461E76438B7801E8FACA17045B272B16999471F8FB42F53A43294124C3B2B7F7A13EEE8B195A01871909A70E41A0CEDB37F3F733EE259F40C1CD12C79DAF90788D78CEAAAB9E1D20B7FF8800A17AC28953A4E90B257D099DA195B6701A695195BC730389A84A499AB784762631935A5A974398C6988A59822BC6382B9CDC6072F0A6CF65C9DFF2309D1A433AC52E6CBAB472E788F76558D57986BAC5C79B921F06E509DB18C70EE88AF044B527E221E5A5105A19610F059FBF6009B985190AC81640607CC4FB69D4892B5D9AC12BAC26765AAD5C874FE3080BEFF77961CB9E747A8E4B4ACAF3F3B81D51A4A755AE8EF2994E8A722DCB5B8014C1CCDC6A79046664C3B75C02B91E0B4C5C250B8EDA5D67E9A0984A6052053D22266B2413B98D841E8AA686F4E0AEB8D5B2ED2C8BBDDB0374D0AD8CD47A0E6945F0AC352307AC0DB224EBA29BC09397F05B1308828CD42B85C556BF0A938959FA7CDE083D3D0163C21B016133145AE0C47EF73604999E76F9AD19432F82E762BA8174F89A23D09333F7E677F33BC15BF996AE6999ADA8747BB0C454412C2B651D2A90382937427EA555B3856D0250AB1E3663B8D78F3D96CF9EB90B5A501129715DF5DB38086076C4B351305A9718903ABF12609FB1BC8A59162E2152F8E0C62241CA5DEB5260D71AE162B7EA827A342584576B00DC674A5BE149C7744D7FF43A5B04A3EBD38C110630FF656F2FF042EB603403D14F18EB17CF675C995C2790E936CF8B60E758484BC04314E50105B28346829077AAACA72ACB46D331E9127B17DCAE5E639D2B33B9F3CCA468F731BF0B332BA41D196AB77B3C436702078730369CF59144540EA08B5025A4C880C1530F40A852E35F96519C91EAA680D90D25A4256FEB1878B48E39143CE43378EB3335D3E03F2A358782E0B54AB56860148DC0FA5CFD149CF26A7260639A347AA72B977B6F38BF29E1472C26B4D7F80E4BB3192DE06EC05A6AEB9B77F8C16DCE72611902A8CCB81E8CD4C5A2FB1D8FC30CE226BB45779F41073FF3EC0362BA152102CF45D3A95874A551C14C8A621436E248FFBBC4CA3B4033D50EFA392DBAD9C339745803F845736C30BF309546229EF52788AB223758C03491F62913FB4CA4307DC6B4C7FD9503A701AD21671387CB2CBC728ECFF4641E312779C7034CE720554A948A021751D4628890CA7367611D4B9F269C5CCB2381F1F6A01B0634D9C5C954FBB934E4144922CCFA2035892C4CC2A8457300946ABA4FFE77868D34C7A90507BE43748A366C49D0A927E66610A08CD0152A2C1BADA92A05694B6E3D2610ACD4579D5634FD2675F2101290E2BA1855252B57A438B50FCB854EA7B6A89B109EA9857C23AA38333428B94CA5A524977D72077B56978328C18980382EBC967DD37E6136360A958D5F00C3B9996DE3B97B6468B9F98C3C50F37A9E73AC8E8364288347D9B018D437B3B065C120D26E9033078B5838DFC7CE68F244B32C5B4AC04DEF068F58FA733E99A418176575EC2BA0F78D4C402D67176DB5717023B57F8D26C636A11F49B926D20B277D2613941C3E786B1A9A3C1135993BCE22A1DE16434A5902C0F101993B65777399828BA52330A2F356203521A3C59B6007C3AA41D198A8232D27C05F8E0280C9076D54D5AEBDFBC95C7C06BCE24507892641F90D2B774A2D98764C42BCF009799432B706DA59BD84CDE4892427C0586929C99850C7D769AD9A221C85A4062A62B2A1847454554224C4CC47898574FA66D147C4AEDC59FF612F49285DB54170508C89E6787A8CE6515CEC673D4545970CA8EC486802933E319800FBE46D5CC14C8363656DAC0600D895FE383FCBC3614FE334CAC0A94C185B73DB30CB5A56A8D04CB271B13859862F164F980625D78AC35ED120605CBD69E6410EB05168819440816EEBF8CC9AD153CDA5BC2EFBB00A7563A55856711231CD12873A9A56996C174AE43B5C172A1445BB40CB3DEEF9051035B33214A61E26852EF3BCB3FB319E1B4D6BD832D6B9BB54B6021D180881D59D2458564ACBA148B0AC36CB501CC8242919064EE24343F26A87A0696000533A20943445C72B9260B4C8A46A1C921C582600D978C5370B400B2412F73541A13BA0349E66FA4025735CAB6402AAC51E08A019B48115C49C665F415244FA91C208C6B1F2BB02BC18C47A5AEE366EDBE3BAE1E41A8B405DDEAA22A2FB254A6B70DC5A16C0217E4DFB933A127039B788E6C035DF8993FF86923500BA466A81D34A0ADA271DA4262F33123A1B81A13621211845A167449D93370BD95A89725A56A8452B510A7FD2642AF41A4A7856ABD9688DD7C85433A868103679A8EB2BDFAA0CB52CC141267E91E2C1E57162C6B4897C9004A3D375C1C8BB87C5AE2CC80C2A107E0F904E5BF8065AC96C9152AEB07322FA181A83A9CBA0224C9FAA0F06CB67E2787EBA832D3F53AC60B7B014D28945361759689C3EC65F8B885EDA081443A2AFD2A735B1C57C201AA4D273B1302267E5A63ABEFBCAE8E1B2D3883439E2BE2436382EB9BD62146DE0E446B6E2BAF8300575091DB145A646C733BF352989938FDD8003218A607739C60DA6758BF448BF18A22630B08AC40635382E3BF86D16625C45E12EBEEF4308B229C948D425016D674119C0AADEFEB21338BA6CEDBF7DF723A074ED1F76E97D68434BA4AF2AF0E549204222679E9E643580C35AF3CDD247CED89CDCF4B8ECE9F441926532427F01E9DD71B86EA949A59B14189AAA249AAF77 +encap_coins = 5ADD4FF6B8986E4B0DBC8E05801F48B7FA41AAA10E2311F4FE1E0B010D569862 +ct = 67D2E6BC2749E1DF8C7F8F274561A27EDAC1604DB7373F454173F127D580497A4C5214F0DD37B339CADE38C57AF44E1046038C0CE89FA8A85D8DA7E8145451061A29D6BB06B298FDD57D430679DEF264E9F1C73B8B790F532B307F44997B915939F56556E4A2F2A8DAD19FE9C457F3FEE34B81391B99033B5B067A46167C2346C1F95CBEEE82821C056D6A7A5F776E6372272285D0929C9706947855C7EE40ABE4CC5B0AD74497D3F2EB49C7B5AE3241078745E0F7F873FE1D7A14E72873A9AC66F9F8853A3F2D956DF54CCD4FDEB02F6C22ED57F92A52311D017D9D570FD1EA2CB7CF610C3EB9C611FEB29C0CF32F34A526076F59AF7F8E2D683BD564E0F48F951AA71BE1657B0F496B9B8F23B313F9F2942505E52B7D1DD0122843B1F958D0BC1EFA69C212ECB904A759EAE6C773261B50C05E10909CA2F874542195F3EDCC002267C9A711DA781B03CD5F49279C2B476578BDCE0B01DFE2E388289A1E4DE62C49CE2211544B76FE1D863C5D341DA5C7B32F258B33E20048C46ABFF1EA6F3A97DFACCB599FBA78380B2132F3C82D997D3DC6AC46D56A61C0F0FA36C1207400E1EC2B2E4AD1BA9843A622C74445111B914BF12CF7F028A8022BC15FD5DBA031444B8268E43D3BEE90A17CDF95442AE19FA5176C2C6ACEBC1CE8BC49CBBAC91FCE989053C0EA4A4F1C3F5C2A7A20FC462057D39F44D9017141053BA49A18E67BD80160DE28D5DA7E7F761AF45C7C727BE5BF3EF8C33BA8A188AA701D7DD32564D82EBF1A0735CBA4C610A7A95A027EDB9E0E1C6DF79B8294CF774E81EFE3174910F5FE14EDA1A8C661E76DAA14D759DE43F1C2BA7BE11320DA3682AE632C683C1EA1CA4FD107CA323552806D493D8D805644E1A57BB74A7EAA14851038058363BFE34BF52D819A1036A0D63707D00D1185D0858C5F5CA847407DC4E3479FA03585371C383CF8D77D4EB0CD9CCC790981EAA3AD7C478747362F20037AC5E43499FC3FFBE3BFD3EC1DDB4F1F618BD28A6FE3A9308CB8621872F76E8727B6F3975C638A5D067505D14C405E4486E09A158C8CFDB45F623BC640DA92667D555E138DA640D3756B4CEDE2463F7CD8BF5F2DBC6EB15A4AF4BE1136B38CEE90417F704A5DF00C1EE823668E7799DC0A58DD7DECC0D6D767BCA483010445B27E749FECF00B236C219EEE5D2D7692CF0735E51337987C08271CFEC7F138D18CE81C95CE0FC4472BEEA1BDE3BB1C1006FC405C1E978E9D8D54A0F617AF1D04CBE2E3A49A2774611C68A9E95FE83C9C020FCA60F81E883CF50DD85580ACF348C7F2B8FB3C3240DA4141BA22FC482EACE88723D4241C23AC56A7C4070BB4A1F3B42BF3089A6E3A7D998EFC44BBD9C16C1F5573C45B1BEF3146150DA92170F2527B831C5B17D4BF1CFC60AD5D439D8D31574A667D5B614EEF0EE765FD52FDF7B439C62EC958F0D8C9BE9CB62BEF54A81887535D221D6383C582B7CF82FB768902C3A407C8C07EF759A5F4E35448169F9C5521BAF159A6FD5D2F11C83FBC34058BDB7FE5164219 +ss = DD789E66587EC52EF9C471D0F6461D5DE7C2C072CB44084C42AC17AF4CABAB7A + +count = 67 +keypair_coins = 334382D39164D1989696A2FF77B25A28AF8BEAD9883B5365EB6FCCA7C1781CC98AAE27E7D301495DAB212A61FD3F209A8068FCF9A61AD83463C00D2CAB426633 +pk = 9BD11C902A159F41CB5395BE189B1B7E98CC23658DCCC7BF9A843A77B2A6BFA27BC941B04F391950D998C607A59B49330811200B38B243060B55E381C078100DA84975091F3A0ACB06F22AE3FB1B7D756D36F54200A367C109B13CF40F3671231D5B0CE9E5908776768767209F4726C54277D0F8B0E05BB4CD50BB5547A01051C89ABC4A352745316C8D85A3187D68382EF05DC96294446972F4C76C7B9B91A4BABE06FC634E76AE4B778F939C308F22B8C816BC3FD6B48E168F5DFBC19FD8CB7E4686BF2325CB060638C723364B27C8E3123FE26CF9862F247CC31C844AE77754206B03B497BB3283CC7E38664B23771F709E1D308CFAF5086F25ACBD04CBD9F1612ACC2712D129C9C195BC024CB057B0766AAE7B533E60F04D947947F920470BC37E5EB4AC4FA1C48066877B4456D4EA2A5EE089DE38A7FC7573FAE5480BEA823727132651A85D873378CB97D6F7BE1250A94621ABF5EABF0114952665CD2A5005AF338B36D19F6E4C8F77E2CFB6F24D3CB7A909315A026B5AAD50A9CD4BAF3308059A91323B1C226FFC76B3565CD9386592476B76057E3477C8B7CBB201CA91546A2354B59328D411A724CBD8B3689EFA335D879996FB0D1D2244EDB361BE4B2489E84086F4A995F20FFA9404082C4E66061D3EF668FC155BCE04916C92B8FA46B77A4A9FA82C8C0CA5A5A5245883D25FDED230E74B22394169464BC33FD51FB7F2AA9214B1ED546DCFD00AD554AEC80882EC170C6EC44794204170D738EF9341D6034920A7AEC3B68FAC00527B2812D88969C6207F9AA122464A4D76320EAD6271D2836E574155310A756CD4249FA7474B301CA978A0653935B7740A16C50DF1EB678C1BC3EB451CF6FA35BEB903CD89CDE0AA58A43BCE9CF591286792FB3B5E658B5A32196EA24A4252B093D2AB40884C39A4ABCBD19B108B81172E18A84A288AAC2982D113454335423148168BB6B9D97494179BBA1EC8760BE59D06251B94B4BAAF82A6481C4A8F33B0FC3164635452E6497F992308688352CBF44537C618000536F9C41A64361EE162236F9227219B8B84A3984C649EA82211207C974F6C7575027AEEF57E496A58CE2719096A58E2E31E82844F4D674A4CD9CFCADA79AFB0C63E634D2514BA4D8604CCC42B2EEB64691AAF23727C93C4ABE1423C27B3B7ABF0B649334760056E591C32FE812A753723F7C93EF5524C8E0267DB177E6E55620715688CD0AC70B2A90E133CAEC86945BC74D7EA1CB88479A37B45EAE4993BB7048E5316BF66B9715591148C9A20A35412C2404BB62C512B3800B9AE104453D95ACFFE000D3AE85B96D8092532796A03039BA2154F84AFA4A402ACB673B8799441BC505E836C3B558E1FE2057FA79153E1630D72AFD96AA4FE9C0ED4822AB33A559719B81D274EF0A2773E405761A036521278DF5AB3617CBD89D7543CFC7C6AD373B2D0B781DC78DD3B2AFA34B6565979231681FFFB8C62843DCD11686EA59406E23CDF96AED95554E47027C5B6976F5515BC40B0E3A31C556219F89B73C0871E1FF552CA04C33DAA4A363794CC7C0E05249B53D20460EAA8AD217787C8C9423A7EB71058B5A8081B82454DC91F77F8608D60CAFF30A7C42424542A1746F0F10FEB3F0FA52EAAD4F2D4C36E59CA0A5389566FAD53898992A17BBE0A0F +sk = 9BFC3A71FA83A4070DB5064ADA8410A770845E818C49B91E09A251E1925EDB226EE8AB153F94B2417560D88959113A6BBC854B0065748E6A7DB90977ADA0216F3C41CFF70E5202B306CC22FF8A138C360D75B9CB1BBA849C5BCC8C9B55E80647E513C9E3E15F66A144F013822DA24266765E3F1125F435BDA4C46EF57430EAE331E1D54C91960EEB363CA25387D0D441ABB930E4A7C329191C5FF7A87996A4B1AA74162611E67B303E284C7098A65069356B55304B11B8BBA66C5829647493C09BF62166017977A988333092EFE98D9C13A2BCE53F8EA2C81A0099B7D5C2B11704971366A5565CC14610DF796C604700680226CB165E9ACAA6AB507A923B4D472A4B6C9424E7F5A622F87F4F8A1083B4755067A93C285CC0748D241C7051971128CC5AF4DB5C1F7C144F98B6BF9703F5338628CA22DF4B84D10312EDDA9DF71442464A24491A62687928C22455DCC23ECA964E9248543520790D813924CB58A0C156AAFBCF63906EC5FA891936C7E16B5FAFD98026D64EA2012BD75B6C5F376EEB74AE9B29CFF7041C650B91A2B852C021562BA33B66EBACF787BE40810F22AA43F4174571C77710F775D1719968A5523780B613262F94BC36B611B63F460DC6E02CC588AF99F164302276B0386E697469C55928C0E62438C25AF90577DE0883CF45819262905ED30D9A1A7918B82F9B4A28CA5B8DD1D9AD4326ADC7BA69C087765CC6511668CC0BE83D510245F8834E890662E06774F389C0C623BE3212AAE5ACCEDB101C43463B68889EA9A2C21AA0ACB5329FF80A336F8914FBC602E2B9AE452647777651CCC4BEF70AC06423B66EC5982C861AD9723DFBC834CA6A6433174C1D6C1AB9569265A96AB5D48495D72122763B3A7275B297713F1A729BDC48329B64FFF9C45955C6091375D4D77FBAC540DACB140666610EC7A15FF18BC741AA69425508D5CF682BAFB6D3C9DFE02D80349597F56FBEBB7EC8031FE71B6D6C065C4E6B5E5D17ABF3B412DED81EFCC8B6B1935FB37B467A5CC61F318AED20678800726509BAA73BBA244030500050D4B23E4AD71349CB0877566AD100BA77F8B409BC8F0EF8CFBCFA3CD1BAA1935C9ABCA798FF6965EC7B53141B6709597BC4F9983766403ED80DF4095D59AB482FAB7FCA432EF5E76AFFC77F74F4CDA522A0085A4917D04167A00B09863850D6CAA0621C2D473DE0763B7D3168B6147BDB009EB260901FA82013C8C0A3F6C39DE3CC49A773D08B357EF932077B5BAB86391239B3C366C43010AD15EA2EB1E05267029E5AD8139728A907B98761B65DD6DAB895363159B48875FB6AA80882256A04460B2977280688745C5914C089B37BFC949A8F9864AFEC2E4DC13F6092070EB561D09B530EBA2CCD66B87B0986ADEA1933448066521E28AC2ED9C57EDE492799B401CDBA8377D593DAFC1A0D233004E25877242C30070779D8BC5BB488DD3988004B5A8554861B560EBAA5BFFF7C89DED193EA077F421C216996C1445B165B912901B217315636A168C0216AC026FBBD4239858837B02DAB5A39D1BE6B072468A264661C5E34F42380C66526377C990092434BCB551A744227445C5108FCFC3CB4526D0B711DBD4539CEA05A08A78FBA723F9BD11C902A159F41CB5395BE189B1B7E98CC23658DCCC7BF9A843A77B2A6BFA27BC941B04F391950D998C607A59B49330811200B38B243060B55E381C078100DA84975091F3A0ACB06F22AE3FB1B7D756D36F54200A367C109B13CF40F3671231D5B0CE9E5908776768767209F4726C54277D0F8B0E05BB4CD50BB5547A01051C89ABC4A352745316C8D85A3187D68382EF05DC96294446972F4C76C7B9B91A4BABE06FC634E76AE4B778F939C308F22B8C816BC3FD6B48E168F5DFBC19FD8CB7E4686BF2325CB060638C723364B27C8E3123FE26CF9862F247CC31C844AE77754206B03B497BB3283CC7E38664B23771F709E1D308CFAF5086F25ACBD04CBD9F1612ACC2712D129C9C195BC024CB057B0766AAE7B533E60F04D947947F920470BC37E5EB4AC4FA1C48066877B4456D4EA2A5EE089DE38A7FC7573FAE5480BEA823727132651A85D873378CB97D6F7BE1250A94621ABF5EABF0114952665CD2A5005AF338B36D19F6E4C8F77E2CFB6F24D3CB7A909315A026B5AAD50A9CD4BAF3308059A91323B1C226FFC76B3565CD9386592476B76057E3477C8B7CBB201CA91546A2354B59328D411A724CBD8B3689EFA335D879996FB0D1D2244EDB361BE4B2489E84086F4A995F20FFA9404082C4E66061D3EF668FC155BCE04916C92B8FA46B77A4A9FA82C8C0CA5A5A5245883D25FDED230E74B22394169464BC33FD51FB7F2AA9214B1ED546DCFD00AD554AEC80882EC170C6EC44794204170D738EF9341D6034920A7AEC3B68FAC00527B2812D88969C6207F9AA122464A4D76320EAD6271D2836E574155310A756CD4249FA7474B301CA978A0653935B7740A16C50DF1EB678C1BC3EB451CF6FA35BEB903CD89CDE0AA58A43BCE9CF591286792FB3B5E658B5A32196EA24A4252B093D2AB40884C39A4ABCBD19B108B81172E18A84A288AAC2982D113454335423148168BB6B9D97494179BBA1EC8760BE59D06251B94B4BAAF82A6481C4A8F33B0FC3164635452E6497F992308688352CBF44537C618000536F9C41A64361EE162236F9227219B8B84A3984C649EA82211207C974F6C7575027AEEF57E496A58CE2719096A58E2E31E82844F4D674A4CD9CFCADA79AFB0C63E634D2514BA4D8604CCC42B2EEB64691AAF23727C93C4ABE1423C27B3B7ABF0B649334760056E591C32FE812A753723F7C93EF5524C8E0267DB177E6E55620715688CD0AC70B2A90E133CAEC86945BC74D7EA1CB88479A37B45EAE4993BB7048E5316BF66B9715591148C9A20A35412C2404BB62C512B3800B9AE104453D95ACFFE000D3AE85B96D8092532796A03039BA2154F84AFA4A402ACB673B8799441BC505E836C3B558E1FE2057FA79153E1630D72AFD96AA4FE9C0ED4822AB33A559719B81D274EF0A2773E405761A036521278DF5AB3617CBD89D7543CFC7C6AD373B2D0B781DC78DD3B2AFA34B6565979231681FFFB8C62843DCD11686EA59406E23CDF96AED95554E47027C5B6976F5515BC40B0E3A31C556219F89B73C0871E1FF552CA04C33DAA4A363794CC7C0E05249B53D20460EAA8AD217787C8C9423A7EB71058B5A8081B82454DC91F77F8608D60CAFF30A7C42424542A1746F0F10FEB3F0FA52EAAD4F2D4C36E59CA0A5389566FAD53898992A17BBE0A0F26659F74FC9EC372FE18BE4ED6AA28B7CD84AD1C0F0115DAD011A11D20FDA9ED8AAE27E7D301495DAB212A61FD3F209A8068FCF9A61AD83463C00D2CAB426633 +encap_coins = F9E9FD68166F1EFE1916C2E0868E30CD14CA6A7E07C44A1E5ECAD722D016A3BD +ct = 2D8AA97BF288CB53DE8205E31C5153C11BB4E19DC1512DD69D98D5624367BF69AFBEC4CDA8104E4E003D2E400FC8D3E596127D5639D3A706FA54CDF482F8C80497F7EACB29C4A06C3998F31D10B253D0CF1597D5E9A0620BA1252098DAAC8D56BB09D867A176D4A56FC2CD9AAA306EC6F5F9CAA7BDD20E8F88CC55D2D3CD8ED2735C9089B734E72FC23DE227955CD9E186D267D32D0AEB249E6F18E8D5EF7E562D881B03A4AEA338B7508C9BDE20739739639EAE82C9B670B9761747061C695ECBF2FAE1676943A37CCEEC46A557E69BF51EE43A34FF1F1BA34974C51B86A15B4B2AF50B2CAF8BED87BF79C10E610750F7007B4C57191D959F00427CA9B84406BBC720828AC72FCF123E5B69496CBB008914763D8ABC50195EA452829D585AFDA008987869E5AA8B6601CF8A1EB2667D9B6F5EAFF921B84AB372A30F379D8A1E59BF802452B9ED55E1486070BF6B3CC196C8CA35ACABA9ED0196F0300793CD1ABF81AA8B3354F49BB05B6A787867D915EE605A0E11199EF8E7CBD7C22319AD9E2BE11B8DBAEE03332BE8B2297985A5A3BA63DE4A328CCF0260472558486D188DA99AD1FEC7DF5D95EC3152DDB5A7A2BA9B5F270A5CDA5FD4BBE64B862472D46ED46B9A91EEDF2506002803A5E3E31230408D25792894C04ECC29E801727C9F5849938EDE594807DC69D76194C54332C1B22DBAECF87738C662B5EB93AE22F68C5528ED6F699BB0FAFD935B10D677FB513E9E6F60D2788123F84C0CEBE6C7F8019B7B3807FB78C60604304A406D6B3A77256297A91D0A493F2BB7E2B8E400D8946D47E4BDC2DFD734A9A9EAB4549A38DA545C61B12ABDEC08C01A9997D4AD66B35A219DE35008B3581A9F8B8F08109D249384CEDC112D8C4A43D4EFAB6AF8261ADA5F9ACF7D42CD745FB7B43D1223B903A74663FB7B4315E675CF9C08ECDCA0B7468BA88824B5B6A93279211B67115F0C1B9673834D63E21668DBF894ED536252F32F6C131E41B9741738123C4327E732C0112E9CD0788E7345FC071B70E4FB3771CAEAD56B699159C48336D01DF3A9BE2DAF2E7DC20449279D2C8A7E388B3F04A1E920FF03EF262A354232B4B4AE31294B9C7EEC348211456FE7EC6BDBBC3CECCF9A59820E2955E0A4DC27BB422C286FF14D546947C8E18717B330C6A8890442F1901FFDFE725B63636CBDF9BADB020F9857AFCBEFD82F7EE46FB7FD0C0EC795619ADD7A759E3F2E932F21B38C2E2D13735A0F191F83793EBB075E951B483E72C5D2B5FEE4CE22C353454C0F5593DF1BE33C6AB7E2B12BA06F9544E31EC6AB0001E942C68E7AED27D8B86A12EAB4B1A2D757C1E52FC4B7064B590CBDE4DB3E370ED441184CC0E172C83D3BB60EE7856D2D672A8C9F72EC026A5613E26FD3A51F07D0C21BA0BB4F9C53673A6F27088B902D261E544BE549E3B49DDE516D8C35A05BAEC056258FB481FAB058744193A52D6CEA955817DCE729A82D95AE4B022F6E0E1CE9AC3D2389F903ED99115E2DB8393AD45B20C3672AAD9B2B168B9BB080B6 +ss = BF7EDCACC71270DFFBA4D5981F98CCAF7502F8D8EA4A482C1D38378ED4D25CB5 + +count = 68 +keypair_coins = 6995143E8EB8A6E93840F76EEC844F67D2B5F75B1839A5040337E61F9806764AC30E299218D4A39C2EA3FC06439FC4C411E99BBC34B8F30D23845E91E71FEF3C +pk = 8683354B3C3F035586B50B88C4140F346A05ADA7CE4BEAAA5F096614CC767AF89FFCCB95124B00E8379EFAF76CA381AE4886ABED9240BDA4710DAC62A71017059B07921C770DA1CA2D209338536C3A9B5238313BCE565FB861BF8AD3A78F030B3F646B34347F1D215E8EC1789D602D92A971FA3C2E892A09CFA68968F96F206A7535766ED7533497FB051C8036B0AA81C2C802FB7333CC6744EC830E4BE56EF1E4874371409486C477CC4EE90092D2919F585BA21F32BC973ACAEF42B4969746AB2618631B6536EC298B2828ABF41E24776BF288CA6A4A8094D63C7CEAC44854BA9E4837E44B3A7B269D6CCBB6D1712E9FFA937EC5194A3541E3FC9C685102F9A47FAA077FECD688D607996E5B60C1715E617994B842B46574B87086A061488BB2445B357A38934B612C16168E662112756BFD764A4FCC5F7B1634F6F28094464D600046EE03B4540C1049BB3D18F783FBA2AC5BD36ECDE662D9E08E2A89CB754B090DB7175277941E5973D010AE08A4B4C922AA99F47F657A49C3B81FCDB54C905A3010405ED544BDDA9942BC857B6D979F796C859E0627A5212543477ED791C2ADC95FDFAC9D21D19750B8B5DDB95F02D721A9304099BA6B2CD0A40C1A2F9DC1649B2318ACC93A5FBC52E3F4900BB44D20A7250142AE5F3B77C0720C77104B74C78EB821BD32E260051C499B5CCDD9D716521163557B5E4526ACAF09A2BEDA04994188A5065B4A975B215171EB288024581CFFA37D6289813773B29F1C0EF5587F9C98049F548D2A0C3A5C71C1693B5EC8C64CE0267FDF625485DCC4B5553C5736A0D0623CFE20596F984C014AAC0380BA9B58257A993B1BE3BD2CB9AC25912B36B2C085443074F093510A46CDE5441EE3CC88DC2CD636A5EF77310F91CB21ABB149DB2541407726582B54B50306CAB4B5356492C220C138C64B4AB293680E01C2AEB369BD611064FD8955B790222BD5997DD76BFBE50A2BD039C1F14F0469B623C53195A3B2FF068182D951DAB05FFCE9A6C8FAB42886987B7999043C12870965BD463980AA6B35E13B5BF9C25B64920D7788A291A98EBC30D3785783C27E53CA9AE809004F23706E3CC0B9AC0BD571084100299C932DB2933CD91566AAA367371B16069A706BE664E86107B33B1CF05360248C808EA250FCACAF9096715478463932A1C632CC9A185EEB08583A9309259C567743995AF013216B1086815B851655D0F14FCC43682720ACDFC36F35806894177EA2144F6E28837CC887E560874DDCAAF60A3580FCC7A5F1733180B1F1202A08182345370CC5C46CD28A507AD846D1D9415AF679D4B22EE560C6C1B2499D5B74AA2758DA090E62713343B3A8B14C68E415A3F196C2573C5E828A16CEA51443104F9CD899AD03C3B727774B48AE61DB98FEDA4C1E029B57F89D1735381166B70450215AF92120CA61A8A38E575ABF2CFAA54C613031A9BA60275D23178BA553A3ED7179AAC44FB3607E93C1C57C7BAD6854533844BF3D6A9B95A966F891612239CF6CC41DF1A859AFEA9C0CEC6D2679CD7C71C2CF251DC9759666C871853A1012294022FABDEB2269B430397F337B3F416E528748903CCB8B24C8FA28197244C0AC3A0345E699B247C863E9A58D8CAEE564224FAA36C70ECD281B67EB98908468420B38F3C24DA9290EA98B24 +sk = 5E484946337E3F4135D738B0862B69F7B247A5BB0812D56201300C53BB87B798B2B551CCEA75A87F002D7DE7878ED08E976A2CB62B4AA559BC36816E9690973F608B262612F89B5BC784365E33193FE9013C05818E0A7151297EA53C95089388BE203071D0335535436C799F6D3AA3260A9C8C9C9E36F79F13135C3DAB92914137C33773660AA15557C32B7A086A5A1CFD125DEA60183ECBA94DA22F0F3A18DD2131BC792C4013B7BF84A7840C976C53117653C4F947839D8CB35538BB97899418688A9E062F9FC17D77450D85261AAB01BD9EE77E917966BD26BD3D3990AABC8561CBADDC5A22F8C80D99453FA7350B2A022E4CA48DEA6C9C07309543611ABFC7CDA76AA03E51ACFDF0CC73921EF2D02F45990AEE50CA77B93F14E4BEF44576134391F7B67658E1CC7876713742267A556EA8F562BD858B24E04314B025CCB5BE0650642A23460C3C65E0D6CB68232CFF709204B7B7CAB0741807100A712686B982F632095D7730DD9385A7A26C23741474E12CD8FC259EF346B5F287EB01B046104EF8415372B47DA145AB0C5C1774626B5DEA7D72DB4C62FAB14C03CA51384420690A799194E8AA05BB914DB21956BEDC948299BAED7289C884AB9833C8669422ADF51D4E1A0466056EECA478F11AB55CE2CE34430ADDC889044A5601357EA6A5B097B54252B046FA83C0211C236953954C36840E390D2707848C0B879ABA2354EA200FCA56CBB86C0C2269A81C790B966893F782AAE9A4BD1B02FA85995A757FF2083FD26347C97711E07560AF77CB59C7CD64F7CDBC880AD26A7BD7FCB9B210710E581C49453A3200AC08554A641068E6879BA6665AE9F281FC14C8FBFCB0CAC0081C1A06DB017D80048B324248F699825A489D0726893E109127A0AE802CCA29AC56F6118D209A54CB842C9A8C539E43B9681CB868018C95D872C532A10A77BF52A796D33187FB8AA3FD780BD2C4B30FB7394DC64B0FE05B81128763A1325BD00EBA411247B1C22A1146FEBA1B255C51F74999DD29A9453151BD9869E3D548347B93C1B798FE92A053B88C80D7AFA5C561D31435D61251253B9A4C2B0F42830C81E990006DCEBDDB7002240EE8E276D4E31C2D249B84414F3997B9C4F5C0698CB2A24C48E3605F6D704E5DB734EAD12D62634DEDC68ED6A1248273BAD5ECAC0651978B098FFCC148667671D4B59EA6095B0B363C31299E5B90282F914BEBC66F6291338BB7600C8310B83963336952EC33854ED7C979B71F30188180B11BB66314C93242ECB890123C9F2AAA786ACBC7DBF560CFC1625D06C3828998ED51B79D28C583BB38719706D1D67B9BA5A556CB9EE1DC4FF2C53C33969F2F97BB93056729F65FD90AA2D7113EDF611C521761BE671FE37BAADA7A2B4A114DD458A19966A2A42914D61B47AEF5ABCCF8240C88AF752B51BCD0A3788C2AA38AAD8DC00D835476C8386DD3A8628B261F1D6B2B9F771842C97DA7BBC3D03696F60524BE6476430044F6A8AA48C22901F750DC55C1EA7813EC3518B26B3FD0657EA6FCB6BE94C026244A0401593664673FAA680F866E174143B0CC086FDACC1F7126C3E941F090332D8487D5E66061D5311C9B5C8EDC39BDFC34948400A9A3AFF3A85A8683354B3C3F035586B50B88C4140F346A05ADA7CE4BEAAA5F096614CC767AF89FFCCB95124B00E8379EFAF76CA381AE4886ABED9240BDA4710DAC62A71017059B07921C770DA1CA2D209338536C3A9B5238313BCE565FB861BF8AD3A78F030B3F646B34347F1D215E8EC1789D602D92A971FA3C2E892A09CFA68968F96F206A7535766ED7533497FB051C8036B0AA81C2C802FB7333CC6744EC830E4BE56EF1E4874371409486C477CC4EE90092D2919F585BA21F32BC973ACAEF42B4969746AB2618631B6536EC298B2828ABF41E24776BF288CA6A4A8094D63C7CEAC44854BA9E4837E44B3A7B269D6CCBB6D1712E9FFA937EC5194A3541E3FC9C685102F9A47FAA077FECD688D607996E5B60C1715E617994B842B46574B87086A061488BB2445B357A38934B612C16168E662112756BFD764A4FCC5F7B1634F6F28094464D600046EE03B4540C1049BB3D18F783FBA2AC5BD36ECDE662D9E08E2A89CB754B090DB7175277941E5973D010AE08A4B4C922AA99F47F657A49C3B81FCDB54C905A3010405ED544BDDA9942BC857B6D979F796C859E0627A5212543477ED791C2ADC95FDFAC9D21D19750B8B5DDB95F02D721A9304099BA6B2CD0A40C1A2F9DC1649B2318ACC93A5FBC52E3F4900BB44D20A7250142AE5F3B77C0720C77104B74C78EB821BD32E260051C499B5CCDD9D716521163557B5E4526ACAF09A2BEDA04994188A5065B4A975B215171EB288024581CFFA37D6289813773B29F1C0EF5587F9C98049F548D2A0C3A5C71C1693B5EC8C64CE0267FDF625485DCC4B5553C5736A0D0623CFE20596F984C014AAC0380BA9B58257A993B1BE3BD2CB9AC25912B36B2C085443074F093510A46CDE5441EE3CC88DC2CD636A5EF77310F91CB21ABB149DB2541407726582B54B50306CAB4B5356492C220C138C64B4AB293680E01C2AEB369BD611064FD8955B790222BD5997DD76BFBE50A2BD039C1F14F0469B623C53195A3B2FF068182D951DAB05FFCE9A6C8FAB42886987B7999043C12870965BD463980AA6B35E13B5BF9C25B64920D7788A291A98EBC30D3785783C27E53CA9AE809004F23706E3CC0B9AC0BD571084100299C932DB2933CD91566AAA367371B16069A706BE664E86107B33B1CF05360248C808EA250FCACAF9096715478463932A1C632CC9A185EEB08583A9309259C567743995AF013216B1086815B851655D0F14FCC43682720ACDFC36F35806894177EA2144F6E28837CC887E560874DDCAAF60A3580FCC7A5F1733180B1F1202A08182345370CC5C46CD28A507AD846D1D9415AF679D4B22EE560C6C1B2499D5B74AA2758DA090E62713343B3A8B14C68E415A3F196C2573C5E828A16CEA51443104F9CD899AD03C3B727774B48AE61DB98FEDA4C1E029B57F89D1735381166B70450215AF92120CA61A8A38E575ABF2CFAA54C613031A9BA60275D23178BA553A3ED7179AAC44FB3607E93C1C57C7BAD6854533844BF3D6A9B95A966F891612239CF6CC41DF1A859AFEA9C0CEC6D2679CD7C71C2CF251DC9759666C871853A1012294022FABDEB2269B430397F337B3F416E528748903CCB8B24C8FA28197244C0AC3A0345E699B247C863E9A58D8CAEE564224FAA36C70ECD281B67EB98908468420B38F3C24DA9290EA98B242CA3D8AD2DAB1DD8A2F4320658FE6EACABF70D907920593919119CF374516336C30E299218D4A39C2EA3FC06439FC4C411E99BBC34B8F30D23845E91E71FEF3C +encap_coins = F866365324CFDF8254EA0B73B7947496F9FD24BFDC562DB4857EF5C659441CF5 +ct = 3D885E27EA316A5E5D77716EC827FFA87F96CFAD628292864CC7E15460BC40D60F945AA64DA35D5A4B2C11C6A82C8A61C399ECB4D5EBCAD661A2BD3D3E0C51911B6C4AF729189CFAE2B84E60A92CC90D829AFC55C1698FF4807F097574ED5DC0651CF6ADC9FFECD6EB9FFF011971027D1521E8623620C4A68572206F91DC57F9ACF8830ECC22AE7DDCD8531E3986C075717B2A59346328ED9BEB48EFC2540F2BC35E8C1A56FD420C997857DE656028FC04B23F29539529D14A71D4695E6B2FD89410A90B1D417CFDAA8EE32C8D5997FF70C88F13BB5030FA59590F996F98032651C12DBC6CB83E507A276E59F1D909C1A6087A2C06403137E4670158D1A0B840466DF2DEB4304F9D1B0218E792692B7F5CA1E227FE5B0E1F215118CC96EF3BEE1AD899B5A6F9997B325BE2EED66C9D0A9971ABF9C23F1384FC40E2BC8E722EF8064884988CFA12B2A416A420ECAD52D415E17B8BC79AAFFE8052CC3DBABDC2A8DBB67AA35A6A54384AA7228B372313807C57A848B3B8CAC78365E8A37357C59E93F3CA959CA3F04528BE2BFD1BA47C4E2C110566F9547E0866276FCA8D37770783ADA1FF043A4FDD265495EF667721A1A8E83CD822528BEE0BEFEE37A5EFEF927D18227FB6F7BA0FE1A07BC300AE281B50AE884BA38D5DA90F456537395F51C351B8DA505C94F94F12FBFA7362C295DD3616B337E392B14BD74A1923FCFEDA5F81CE02AA978952A5E83AF7A9FAC5AF0513DE1A6173F98B3F89CFCF7ED13BF2BA6AD405D3BE21FE673FAFC8431FE5226CA0DFA075E5353555B35E181511404C91AC75A2EA3F510D2C7721147E243C1BD2627A824F70F2E337D39CE34532293DAF09C88E0525B4CFE0F187DC713FB488BFFEB5BB379A44DD5BB37142BD08B8308DB8E3C61FC527A28F31D8E21E53FC32C5941E0A267164F8FFDE21AA58290BF5302A0684E343C5119F832174E2736AEC1483233333613FC3650696A8E01FAD1D9AC277A9B3AF9D03BBC71AF37FAFCA4879CDBE81DF809D3446C3A4D0CAB809A789FEAA85FF121CB6E75CA9289EC4129C105F6EC231872220B51ED525DAAD5203EC3D20D3965FA7C565C17B69933ADAF2D8E3E3DD024283187D5D9CD92A1AA47AFE3444408281F4F996251EBB30D3693367D59CCDFF815D8DB9D621D92127CF89EED459B121C5B28C23654593081D94D8655CB7A51B63AF581E421C735D113BD3C6B952650D38CD89E955C3278EA3282D68736934DB0F56D22B78B47E3EE1C26CAD26A5123F2261C5AFDBA1240E55ED955C3FA86343D3DF901C5C14EAF9B525391C68BFA38FC92A611AE88FA2A518B7361F527E4EE4DBA8BCC2A08E130C230C188EC57E939C6921F7E3ACAFA4C1A3A5D65E7BE4175829B3A494BCDC9CAFD2F988A76470CDE8B21F8A391AE05689C91A9708DCA8B58BB2688BD0652F7716A17F60E71FF39C918082C37EBE4F0B2EEC569FB7236C609EC2893687E1A400CADC619000A128DF5A5F8EC82B493DBFC6EB28DB6D910D824909601A89E3CD83C3683A610F +ss = 792D526ED63F602F8D353C92E76AC32B021ECC7C5313697DCBA7ED953A099BFD + +count = 69 +keypair_coins = 995EFF7E0D195C6D0533F3DC194D47E60F9AD14696144CDE694D60A95F3E96B4A33923382F8863478882483037FB1282FF917EB6658A7154C6AD64B5858C629E +pk = B147B4694B12C461130F3126F8F71673E4643B2147DED2A7270AB360F6303DC05B03A314BB776C488318686069C3A4C91CC62435E829A6A8621EF5CF838311A4278D7F453EA5484D32F94C2E9628F5532FF93771DAE106C8AC9CC80AD07D306B1DA78463A08226657680E5ACABA6819543CD96194AA5973D4F7B8682B13A07E7A5194C91EC95A2D671A2627710A4C78AA107B3707942D0C78F3EB2B3A58B7833FCB0FD7785E349A2F0027AFF079B62A68E3F425122F7BC0A0B4C053A6696F90A67088F139B2A39F542D6439091E4C1A0824734D8B6E5E6483F48CA738C39A5BC2016C0746CFA9C1889297F5377D614ACFF2833CED20ABED0AA6C7024221B73D53610575C6D91A262A5E834ABB63CF74207437B31B1E989ECD7416B2C4E7BF807B5F8973006877E204A42774C93A1B394E885CF727B7FD286DEF2B4C8D5684460219C31B1B225AA08AC2EE1DA3922E935E981B3B5E2C3D044A784BC965A580D3052AC48000EF6183B94B0A870E65207BA8029C0BD34A10443E5706792207FE2224DA533D307C3E3077E6E1CBAD064B0399ABC6F445B651864F18B42E1A518FEA187BDD08072E47588527C3B9A5EB244AE9E910F93C92B69FAA7250BCF38E68E9C3A2B2B733B18032F37673907097A4CD65A9B396DB4859312D59113E07B39746C52126EA697A69929B1B625B5AE1B809CE9A811D13CCA70971AE8BD6AD223206691AF6897F136CB451699E0A19739D52D60CC89DFD654A320A79B2C7CD55116843239D6847B8BDC1EFA29CDC0A979F0E3A8F225A16FCB7996FC8CA3E79FAB55B93DC2A395117426A17AF4D404151814CEC80E856B777EB35085F1AD14285078803C2D76AC1D25C3F8609AEEEC4ADBCB64136516A2077CFF4C13748C5D1FE6386782688D944E0027A2F8C9AF77B79352EA5523767CBDE4577877AF1F8017E4DB244E833E99DABD0FC70824BC3C50A38275040446A5C74406873BA0B5BFC2570A406570B424727379E5C1C39EC194A29A8AA249844BEA2A078C1C0F25A400D6BADA80731A00B87BB5A19325B4E79B78AF0BBB2C52C3DB38AE552CA972C3927291145438115A952BF2A85E78F6141E1CAE8516B056E614B7015017E71D54268AB9919B7EBA09D196768D99651D60A334FC443C8CCD9064A420263A68531F0E86CDC48776A3D44B4726916273A0D3002DE095526257BC5E6246DCC10814D1907885207A53241A184AB7E40D87148A336A33262A4BB0826B417ABCDF957F68737ADEE682194115348AC58814661765BB321254A874C4A3C6745CF984528C2B9726AC35441015233219E169D0EA761425C06513720881B330185B48BC271B275DC024419D8761EB23801EB704F6326F162656713ACC2915A1A6F877A583C8372CC391EBCF2CB22873C5BD22C58C80640CCE759B2C09B368AB4AB504C613493479B7725A18811837213F9237734577AF09C4BE0B3FE07AB78B712B0683060BE76920CC5FC56993E56C7B46A543AD675B2D13357C008911320E0D292268768B8370C66CE757AF191BB703CB5732113ACB8F02618EAC98693224ABCCEA04E7B3157C03B27A3CC4F0B880DC4877AC35077C1C2D5584B971261D2C4BB767C75907827AD7370F4074721445E155A3A1624CB4ACA373DE6947F148CA7E2B3C93605E706EDDD992 +sk = DE4627135B3976B8AC07C0059BB28D09E98E3428228C1786C2E8A1D6029D93CB9EED217D09B03E9A7561AF7441E4271C7B6C8C862C5A93E955A05A87B01A63D9E8A334B26E1FC0346051BF31D078860A9AFE939F4A90C2A395B2B6C205475164E36A0C2930CD26E26420470B0D068E36971A978B17BE984A418A3CC5C6B62AB00D6DCA5657F71E08B215EDFB88A5B6751EAA525DEA4B0BD41430388E0CFB445DA3347EAA375B86858F19C81B73A4BF88C2F807638D808F78535B9FC6C6BC0C1402E16F0B784F9A22A30E5C6C1932C2063BC558A7B2636C76D5C0CB77E6C5518B3B31D920A23B2BFFF3AB93FB03B3386F670B07655989C5185D5D393631E9ACEE701DAD333379A63EFBCC636BF2B4FA05B84A375559079C5909651E481DA96B01A771BEFC7BC407DB7D9F94B819A468D443A7AA8C9B4741266875268602336C1B1160A4CE5D41C57FB915335C87A72A7345316373D921A6D0CA09606154199C4F06C244A7C568BC5D82449149F92AD3350B51D3C474E77A3A1053160570C876132434AEDD92C8961B95588910102C62AE1A75479175CDD666AB85478EBB6133920E9154441F1383B0F147137614DADC823F1848FA478B1F301D3F745C647C216C741DFD3B3195483F24F1A5313CB458273FFEB559689004CD534EC1369B0C68A873651F7413037118C6F98C538DAB9C1EC649FF2301A03A650CC0C138E79D15F9079A639737E840A7DC720B173BB329A34CF65418495E4DF2805A491A4C96B47D452725850CA8EB3944399F9D14157FA46B76F0891525461113766DC025EE1C2E735198C3DB253A2B8A566CACB81B65A1C9473C6C6DA9743D780685CF83CEBB441CDFDC9FBA20A9CE2943759C4D08C57A0E74BB0E1888E94723169437AEC19AEC1A2A46C81AE4645DE32BB18F3527F4DCB8221A0F7BE74F3F5A8CAB0609BE216465819FB858232B008A855C9E6B54439A67AAFFD9701967BC46A274D1D6AC1D45CEE7C54CF49669E89A44FFD7B73B2A12327A85BF5938E6975B949C03EF3A1D824CCDE033CB175A3356C8A998E4C69D94630A896606FC1979DCB5C172A54EEA2E99D5AE331BC64D708FAE45C514A2544843CA59C3C122947BC3660DA7357AC0E33F55485E79EB3117D14C42EC5C56653E0DD1A4E8205FE571823098AD8D9844A25B92238063A92040C500CC0BC2B25B493E4CF69DE95C87B03B773A796D13F42014847727345888EB06D9251AEDE24D03E292CB452A3A38A0A461C8B4F9CD9F87B09BC0CA98E62E5027595C24792F818865777A346004FE3B5B587452648263AAF688154526D591ACADB74520F3627D7395EC7B71DC3C6E8414985D591A05C88B6455870C48B12C576D7B328B88795295C051CA6293B0FB4DC61AB8AD34CFB114A4C7E44AB4667D4B1948C83C28BAA424B19370AFE997D8B08E447A2EFF376024F5CA54DC8EC0972B96F057ACF5A6B0D32869FAB3E1797EE2571B1620A076082C4BA6799C27B07FB073092A7A2F7AA110635CB94900E487A6664B318F54956039C57CE509EDE489FAABAC96CB11F58C87708A8ED3408A526701BFB8507D67415FE64E7D41081AC12C21F3092AF02810C604F02C4064E348B4F98F6BE65D87650EB147B4694B12C461130F3126F8F71673E4643B2147DED2A7270AB360F6303DC05B03A314BB776C488318686069C3A4C91CC62435E829A6A8621EF5CF838311A4278D7F453EA5484D32F94C2E9628F5532FF93771DAE106C8AC9CC80AD07D306B1DA78463A08226657680E5ACABA6819543CD96194AA5973D4F7B8682B13A07E7A5194C91EC95A2D671A2627710A4C78AA107B3707942D0C78F3EB2B3A58B7833FCB0FD7785E349A2F0027AFF079B62A68E3F425122F7BC0A0B4C053A6696F90A67088F139B2A39F542D6439091E4C1A0824734D8B6E5E6483F48CA738C39A5BC2016C0746CFA9C1889297F5377D614ACFF2833CED20ABED0AA6C7024221B73D53610575C6D91A262A5E834ABB63CF74207437B31B1E989ECD7416B2C4E7BF807B5F8973006877E204A42774C93A1B394E885CF727B7FD286DEF2B4C8D5684460219C31B1B225AA08AC2EE1DA3922E935E981B3B5E2C3D044A784BC965A580D3052AC48000EF6183B94B0A870E65207BA8029C0BD34A10443E5706792207FE2224DA533D307C3E3077E6E1CBAD064B0399ABC6F445B651864F18B42E1A518FEA187BDD08072E47588527C3B9A5EB244AE9E910F93C92B69FAA7250BCF38E68E9C3A2B2B733B18032F37673907097A4CD65A9B396DB4859312D59113E07B39746C52126EA697A69929B1B625B5AE1B809CE9A811D13CCA70971AE8BD6AD223206691AF6897F136CB451699E0A19739D52D60CC89DFD654A320A79B2C7CD55116843239D6847B8BDC1EFA29CDC0A979F0E3A8F225A16FCB7996FC8CA3E79FAB55B93DC2A395117426A17AF4D404151814CEC80E856B777EB35085F1AD14285078803C2D76AC1D25C3F8609AEEEC4ADBCB64136516A2077CFF4C13748C5D1FE6386782688D944E0027A2F8C9AF77B79352EA5523767CBDE4577877AF1F8017E4DB244E833E99DABD0FC70824BC3C50A38275040446A5C74406873BA0B5BFC2570A406570B424727379E5C1C39EC194A29A8AA249844BEA2A078C1C0F25A400D6BADA80731A00B87BB5A19325B4E79B78AF0BBB2C52C3DB38AE552CA972C3927291145438115A952BF2A85E78F6141E1CAE8516B056E614B7015017E71D54268AB9919B7EBA09D196768D99651D60A334FC443C8CCD9064A420263A68531F0E86CDC48776A3D44B4726916273A0D3002DE095526257BC5E6246DCC10814D1907885207A53241A184AB7E40D87148A336A33262A4BB0826B417ABCDF957F68737ADEE682194115348AC58814661765BB321254A874C4A3C6745CF984528C2B9726AC35441015233219E169D0EA761425C06513720881B330185B48BC271B275DC024419D8761EB23801EB704F6326F162656713ACC2915A1A6F877A583C8372CC391EBCF2CB22873C5BD22C58C80640CCE759B2C09B368AB4AB504C613493479B7725A18811837213F9237734577AF09C4BE0B3FE07AB78B712B0683060BE76920CC5FC56993E56C7B46A543AD675B2D13357C008911320E0D292268768B8370C66CE757AF191BB703CB5732113ACB8F02618EAC98693224ABCCEA04E7B3157C03B27A3CC4F0B880DC4877AC35077C1C2D5584B971261D2C4BB767C75907827AD7370F4074721445E155A3A1624CB4ACA373DE6947F148CA7E2B3C93605E706EDDD992DE62EFF56F6B49A156D065D85EAF0AA21CA229A20FA4E1372A410AB1C4AB6E7EA33923382F8863478882483037FB1282FF917EB6658A7154C6AD64B5858C629E +encap_coins = 4C25311D7B2FA56A45F4EC1CB4591C627B52EED4D2409EC70EBE855D988893D8 +ct = E231DFD7BE900C8D18AFC20537A468230863003DF833E55C81184C27EA20F89BADD14C52784133DB41109466BED2ADC8DC6E701F86537A43E8B541B7BA546A559D734C09A3915F7311EDF10F2A569ADA193C2072DA737095A44DCBAD6EB319A948359D5F4FE93C1BB44A7D80CEB452E207E3A441F95F214DF8610B6523BB73D1FFE3302277C42A30CA78B4C37027C65C55A0B124307D33D864E47967A442F37080EE9D647BF7FA5DC1D92AB65281C685AE192646B563E146B5F678F49AAE0B7A60B886F6A2AC65BEC28785C7745FE0F67C5682C495A188BBC5031BFB0F3668FD5DCE4923C0A58892360DE2EA64172B53534F5A629C4E5921F81192271A14581B366F7DA805DD91835DCAD6EB32922802BAAF1CE06F559DC34846643C3D83E689D3D7246ED71D66D19DF7194F7474C01C0ABAC4BA9B10729FC37E7B70273FC526189F137A29B89D1B2CB84C1D61C422DD698C1ED83574DDD96752CBABFCDCB895E50075B8C317BBC82B97258F4FC72A1E9DBEF6F9081BBF60791B4DB0B325578F37AE5C31CBBD877A424F10A5089B2733DD86004C9FB6951275F70067D90446F233F3E25287144061284C014BAE9CA75FACE7A82A135B7DB79EC7EA056AA9DE446BADDA0EB5C71A76DF8D29721ED3018E0F4F91DAD2AA3D35A2CA81AF33E62E70669224C1E901332E4485A173E0558ECD465B3CFF1F7319328419EB4073AA24AC24E5A10FF8D65D147723F8E0B874DF4DA29ECA25BF596C51134BE2AC05DA941BD2722ADF7C10FA3F8EE41B77D80F3C360F2A2FDDF3AD921EF1BE9948737215E2186DA36E1BE9419C6C955263A056A352059542FD9105232E87AF7568CEA110A5CD572F696ECC9A47F40270085F8778B4DA3C655EBB6B17F1EEBAD0690D09A7A03F32427DECA42F6C0670DF835B61973B3290A193DBBA97AD4B139D21C1044D120767DD75A070BCEFCF3AAD51E300B952A3181C580FDFE3922C1A69654A240FDED658A4ADE07772C3D881564C7DE2B79E84CFBE69A4755411B0370D98DE514E0FB39CE53B82CF6B9A5B8E26E5262D59008183557C4EE55E6B924DD5AE9CCC7F38E99BD6F28E1E1F9405E9D928F1DD5671D1DA869201855A5702F34E2157134C6FC3A46A8ACAEF0A58E4758C4447BAD6A98A998CCA266E9D800DA180CC1E8A979792F2D9B8AA3599F2318D2DAE1990CCD65526BDC73B54B6827247E7C659BA87190600C3580A21A9510FF5598943345C50ADB289C514F780C5B34740341E92497DBDF2D8B708B38F359D66FBDD6373292DAEEBDDB86B78F10F55328FDEF5CFDFB6F768396EE00D93C340B5AEBD7EFAF5B980037D3BB14C5860108BB727DD4E9DC49CC2CC7E826E73DC3E1FD3591316E368F4CC33A5072A4FCB106558DAACF814193D726CD0BFF0DBD59010051B4D1946D36974CFBB38C09FFDBA51BB353D599E6D39F0BD34C3CCE0EFACB0BE588FFA42970B66183184251AA37FD4AC5C2110E0BA2E7D808FCE0923FE5F0F48BF6095B7BF52667ED5927439589B77019C0B74440B +ss = E1EB308A3ACE733DFA73700195B5BEB0BCF96739328DF7301BFABE07FE1239A3 + +count = 70 +keypair_coins = 3E809EC8DD0FEC0D911A4E3FAC20F70FBB128C5DE94DC7184CA7310AE9157A987B2DAF2EA1F1011C4BD04208E9E90B9C2BBE2D8B96A1565CD1163966F5337E4A +pk = C0C8122855031D7BB0CA735042BB43B8EC6EE13061046ACAB9B873B13519C22678ACE2B59F92AA4E8269844B1DE5E3426D66C0451A8D78CC07E719033A536C2BF4C7397C64C6478BE5F42A06413B8B44111AD9742B8B020711446D63CDD64490C0917557B884EB429B05DBC0DF7ACEC032ADBBA55D3E104F7BF391CBA28B903A07712A8DA3A1A92F5682CD650A628573844032A307704FE77AF738696E974181A85C5CA1C14F7546F8713701115883480BE2CC686625A37B62292367B5E1546F4189592639CDA4CC20974C6A87C0377D15B8EC5C84B70233B64800B79C62E536553B43263532C6BC2B726970CC58BB20F0C0BD35B317D9B66B327BBEB5175D9611985AD799EBB19AD0587AEB856C288464D983256649827DE9AF0FC79AFA1AA5817C06D3447A25AB3EB8248167BA60A4462ED47C007107B1EECB630AC4707B837F24D26DA46BCDA77C4B6ED5B4118B79294744788B9A9C21B168565D9398B41EDB91517493F5FB48AE5CC04FB95BB13A8FCDB8615262408AE25C2985189BA8AB99643624B70557A984011474586C357F1C7551F0BB069336FE85BB903040F48C4A111113507055F2716D37EA6A6FFA48F40584914C4738397430D65756F298AAD345671077DA8A4173728364A493BDCA944B1879B114166CC3B8293937221257C2E78F8F1C7794ECCBF0368CE34921A2EBB01E32A92255A676E77C39564B575AA5D1F9C7D1388226D636F4F12C5636B2E2F712C59CA583A811BDFA56448C013CC820F21A36C3351AEC3C2C6F01243FF47BF17181ECAC752108C43A97729C6B9472270FCEF5A7C08665F7AA9FAA55B152163E8446C1BEE5082192B5ECEAB269EC13E7879DA3768BBEDC0A104C5E9496C63E9507881A4C8E758211076653F369E58B59BD7CAE5B9A64772C2A84329E43F492FECABBB56514CBE70970F361E6D3C6595065F6CC668C64BAE7D587FA8BBAD129136D5C9B6F757A51E653D2754AA0E35307845A55B80086D5A0E86302D306B9EE1550419B495D424F701A098220897FC47333D5A1E994C8584A00D79804E4989A1CF02DCF9A0AC2AC52BE1090BB149778235FF6091075A5360CE095CB705C81E3BE126984F51AA471F90FF98C21D3989FD936502A8A2B38C4A2320A618DF751C7099D1063495A6A5936C744A094CC1FF1B04BA8B56B0464E852BBE06176034CBF5239CD2C687FACC2CD37329ADBEC3A77B4842AEC40BE902E8AF72FA5805345668408CC7B6073097391921E765E4D76025FD5C78E246DA268A4DB21446F2CC3273861D2081DAACC2CC775631927B709DC1FA8993B1E92619590C08940342219682AF351495B2E0AAC74786C897FAB196ABB609E216997C2C7B283BFEFCA4B1F2B1B6E98991BB32424321AB7D61E4D13C44DC93295A75F6145BF2D4B8F1A03109BD7038EF4B16FC15F44CA6EA3411B68400EB20C46C11CBB98201D705A6CF4F4B792AAAE80D97A6AB830576AA651142793FA7DA0B8BEDD877217D54897375EC285849A79268BABACE85176842C601EF8C740A21C2C5321436A21CB968ECB5410E811912CB0962F713322021516535907914B86E9411D27CF164B580528768AD37B57300DC201557BB0A142D9416ED7AFEF52D284175DEC18F24979EF5BA8EDDF7CAA3880AEC7B42A147E75F0DD62B3D0 +sk = 84D7070EE80107976BFD1B0DB6CC33F3C98178817D8460B63DC012311638AA43B253A705BC994931BAB38A62C5D1DBA793B8437BD600A8725D36AA898E353D6B955B80F8578F855BCEE194CE2C6E4C6179ADE8176E34578FB24B6D60C395B674A7A8A4C72550F83A09D24582F94125690428A4E76972B77A53E852FF3718A440B67D6521CA699E5A8C434DC47A38032129BB76BCB4C810028938FC94F1741A1FB26EC95252E259B8F9176BBAD8763CB63DA6F295B460CDE1479BE8D6B9E3C49AB77845C21C8F3F88741759461E339F76376AB81B4F07E7BF0DB861A4AC5B24E09D4144AC900B43CEC07F1DD2CC4F7C976EB0BAA4D8637BCAA70946391109981E978CA023313B200092D26CCC823EBBAA85B8BA1680636D0BE656F01769555B058AF7825FA00D10A38B0A2B127A773CAB406C1D4310A0882889759F20B44AECF68DD24416D9491CB523A1AFB1A1ED87B28E5589F4059132603E228B185D426F49031AF8FA21B11CB0F37C4557F94B2F158340921F95091128C5616F54105D47253F150FF335081D231F5B308A526B9506B03E0B5C6A88394F0C9C6E7C2B475C7508A3A8B1E0D571D1C364784CC8A7CA7AE6C2B24366A0D2865658D42A8495B24A16C9A9D8B1EA77332A1058DC292EC02C4723FA7204E93EEFC24F10C4877425975CBB6142026A2AA649FC6C77E8C72DD3E5B0D9E9495A02C251B12B7AB51F6A9853BFD151A4873CAB4102DB62676496A8B38C8038E4C6D988880A6B2774875A5FE69693D9726AF64A51D77A03E523BAD8B2A6DBCEA137A051D19E81059D07437E38DB7891956C5B2C8ABE282B5A02A5530C56A7B4B46DAAB256588B04344365313A3AD94A2D7ACA4BA7072CB9259E2676A5C86215B24FAA159BC18BCE05451C69D2699A056ED3F6A7F2BC7676F11BB06CB72DC53D7EA6BAFEE89797B57445F3AE11262543A2882B863CDB455D5EA03EBA56946DC61D798A76BDBC4CA7F2A102C518224A2091211EC4D251CCFB08AA2598065A79B8B61A56E925031A579AC5BDEEF1A6E0B1381FE180DB008F19E775E030052A624B91D1550FE5365260150CCAAF228ACB8FE471D2C8B4B27BB57D62AE9AD9CE15A0B72ED98B8A619CFDD3A17ADA37CC455D77640EA327088E9C33D4281B65DC9A27C68D27088B1F2A5FC586BB0993753E62A67BC3886048274AC267A95B42AAAC3E60C2699321A79301ACD350B92899A2C0CCC4703B243660A39C5901E3B6BB146C588DD3431C4A5BEAD8AA29E04F8FDC0D04783751707CC25AC359952ABE7384F839B42D9C9982DC66A21C7FB5CB7316748423E25005D389BCD56FC498080F88CD75EC974CA9CE9F2BA995B50ECA85CF09612FCBDC492CCC6D0662A59F8CC0FF3355F17424ABB6C774A377B81C12B9982F60777926BA0B860123434CAE8F926E902A5E633019E3C62087A1BDDDF2186768BAF91656D903C4F1CA88163B8DCA041823BB6EE525583816CDFAFCCBCFE63DCAE0B93C46A14FB72114194CD084C208921925E7C55EC807EE6C0A8DDB71C4AB3BD5836B7FA160009DABD1E5498D005718548324B0339EC71AC4A75C81F522DFD92B64E3676B337758490E068C3CC747BC004DA30CECAB9C542FFCE826C0C8122855031D7BB0CA735042BB43B8EC6EE13061046ACAB9B873B13519C22678ACE2B59F92AA4E8269844B1DE5E3426D66C0451A8D78CC07E719033A536C2BF4C7397C64C6478BE5F42A06413B8B44111AD9742B8B020711446D63CDD64490C0917557B884EB429B05DBC0DF7ACEC032ADBBA55D3E104F7BF391CBA28B903A07712A8DA3A1A92F5682CD650A628573844032A307704FE77AF738696E974181A85C5CA1C14F7546F8713701115883480BE2CC686625A37B62292367B5E1546F4189592639CDA4CC20974C6A87C0377D15B8EC5C84B70233B64800B79C62E536553B43263532C6BC2B726970CC58BB20F0C0BD35B317D9B66B327BBEB5175D9611985AD799EBB19AD0587AEB856C288464D983256649827DE9AF0FC79AFA1AA5817C06D3447A25AB3EB8248167BA60A4462ED47C007107B1EECB630AC4707B837F24D26DA46BCDA77C4B6ED5B4118B79294744788B9A9C21B168565D9398B41EDB91517493F5FB48AE5CC04FB95BB13A8FCDB8615262408AE25C2985189BA8AB99643624B70557A984011474586C357F1C7551F0BB069336FE85BB903040F48C4A111113507055F2716D37EA6A6FFA48F40584914C4738397430D65756F298AAD345671077DA8A4173728364A493BDCA944B1879B114166CC3B8293937221257C2E78F8F1C7794ECCBF0368CE34921A2EBB01E32A92255A676E77C39564B575AA5D1F9C7D1388226D636F4F12C5636B2E2F712C59CA583A811BDFA56448C013CC820F21A36C3351AEC3C2C6F01243FF47BF17181ECAC752108C43A97729C6B9472270FCEF5A7C08665F7AA9FAA55B152163E8446C1BEE5082192B5ECEAB269EC13E7879DA3768BBEDC0A104C5E9496C63E9507881A4C8E758211076653F369E58B59BD7CAE5B9A64772C2A84329E43F492FECABBB56514CBE70970F361E6D3C6595065F6CC668C64BAE7D587FA8BBAD129136D5C9B6F757A51E653D2754AA0E35307845A55B80086D5A0E86302D306B9EE1550419B495D424F701A098220897FC47333D5A1E994C8584A00D79804E4989A1CF02DCF9A0AC2AC52BE1090BB149778235FF6091075A5360CE095CB705C81E3BE126984F51AA471F90FF98C21D3989FD936502A8A2B38C4A2320A618DF751C7099D1063495A6A5936C744A094CC1FF1B04BA8B56B0464E852BBE06176034CBF5239CD2C687FACC2CD37329ADBEC3A77B4842AEC40BE902E8AF72FA5805345668408CC7B6073097391921E765E4D76025FD5C78E246DA268A4DB21446F2CC3273861D2081DAACC2CC775631927B709DC1FA8993B1E92619590C08940342219682AF351495B2E0AAC74786C897FAB196ABB609E216997C2C7B283BFEFCA4B1F2B1B6E98991BB32424321AB7D61E4D13C44DC93295A75F6145BF2D4B8F1A03109BD7038EF4B16FC15F44CA6EA3411B68400EB20C46C11CBB98201D705A6CF4F4B792AAAE80D97A6AB830576AA651142793FA7DA0B8BEDD877217D54897375EC285849A79268BABACE85176842C601EF8C740A21C2C5321436A21CB968ECB5410E811912CB0962F713322021516535907914B86E9411D27CF164B580528768AD37B57300DC201557BB0A142D9416ED7AFEF52D284175DEC18F24979EF5BA8EDDF7CAA3880AEC7B42A147E75F0DD62B3D066F161D27DC34E1A2F4B98B14A2B221D7EAE26A593BFE432487D9994CB4806567B2DAF2EA1F1011C4BD04208E9E90B9C2BBE2D8B96A1565CD1163966F5337E4A +encap_coins = 37A2BFA95682BF678CBEFC25BC48BF62FA950BBB7C0E7051CEE508F9540FDBEC +ct = 90FA8DE0840A06D3480F2D0DDA057778697A8DD7489D2C06099747B8F9EA6D48FC4DC40DBE0653EB7E8BDEA35A5A4A3367E3030DDCB33258B544E1D303353893BFB29CB3F7B67E02A025CFFAE328CE7CE9EEAA3D78DDFFDE7A278C2DE76DA777D05E19746020ADFAC44B5D9BBAD481579A107FFC3CDB082E5D5EC6116B80F6CC59A14B77996757055E25771388CA50C8654B43E7F0C02E2EDF3621C8F5EE76D15A7555ABCC4F27D35BABD0CEC3E2CE7E2ECDF52A224B2AA91DF0EB934651CD3C37A91ABA0C482394A9B5CF7E8506E8461CC2638C027AD7F24985988EF4AA8620D1C4F931C8B951283D800681EDDDE8947772B36AAEF9CF4CE01642EF7D6C46F2A722FEBAC87D3C3049B2F1FD599D117330CBC7257AD68450E6EBE0D28AEFBC5796465603AE4251A65B3076383DEC3552A6057E73038825CBF7271973036DAE02442F669929F35546A1FAD9863469229387F3B2B169DF57E67A679A40046BF8B90730DE2EACEFDA5125247966F7E4A4F285C2B4E6F2DDE06C66E834D95DD62977DAA9A8EA02C180D727E1C0CEE546EF37812EF7146CF4C590C6BEE40A388AC030E1B238442258201DCC868291C985CAEF0F67427456894563AD074D95F6D44BD08E6A17A102432903ECED3E2674405F618E567A671081A072148920C853B6AEEBF6BA1AF507FF95728DA25766412BB3F55F98A62F0B74BD629E6AD984D04D3DB46FD3D26AD15176ADAFE1A93347FCA6A3F7F49DBD3F7FABB0391131898F7A13AFE66FEB1DA90E7B1CC1FD12DDC740DF59CD466E44858FCFCCE10629062E84EDE1BF03E4B20313A742873F9B1E7A3EF6F89196F7BF7A4025C1BB0BA207D29ACD651C4C31CFA36505A4BC9551F70EBA0581160F48CF052FDE842CC03138DA6E24F150C131F0BC2A48D3AA58F236589EDA3F75DED4AA7C459DE09F6EB19FE35BC47543AFF8BF4109DB258207A2287143CEF98162C03D0FDB8B5FDD9445B2F712643092F868EB97CE7045A13B20D6C45906C22B55FC9A11FB12C121AD9F86982DDCB720E69015BEFB50904EF0AC903F75D67C774062D5DE5D2DBBA69A983D985A2858B30BC411F0DC10CB9D30759DAC150FD484B1FB557D38201E6538CF55F969321C4C69FC828092DE051207AB58C8CC1015B7F01E3E8B32D3AA02113EEF1536C58CBDB50424949E211A0C4D778BDD12638135F09120359BAF815D2CB1EFDBF44D7BC709BA19A0A513852DC6AAC9AF9605247A6054437DED52269AE3D562968381C22BEAE6811816E48C2E27FD5BFE86BD455EA271DF7D70A59D532255A59F0C005AD7D7BD26D162EF64B99A991D86A48661AF300EB7D5944FA5CBF6CD3E3510F178AAE69500B730EF314E68C53699F5B8247B05372D0D5898358FF1CC5DBB79E10B851B6C9B8E4D11C53F8CB424340261DFB2FC4164390A0A4D5E5CAEDC5F82216C576D12ED6908E0FD21EACEF225D09314C66E25DB6E9BD0F8335FB87960AE5F0277201285C906D40BBBF1E29B97F835AF830FB3F96406C5D036E71B606959D572 +ss = 6A54F3597E7C60BCF0FD8B7B34CB4C9350DED0AA726CB2071830C70A2DE8D428 + +count = 71 +keypair_coins = DBF1C465FFF3D9F783BD9EE61A573715E45691147B8904439B5FFAA64F94FF7B5C2478CDC8D59AB164856623D53B9E60CF0AA8214CB64E674140BFD6DE9FDFAF +pk = 80B3B92647A1DBEC6BB883A4B2160E4DCC84C89C6ADBD955CC055933D3238E325FA826ACEF899A555873A5B9C189117844202C65E40EABA07D9FA94D421BAFE8F3A5E3346B6B93CEF8B75628E4418E2885660B1D3DF32D1BD50CC50757C5227928B32E0C567872E66BCB58128B15C8696710A7B33BFDA469128996F6979F896B93D22910383C90D0D877A56B4B7C77C53C99128719C2995497DD36877276A25FA8B74A4947E223215A314A075585DA457DAAF17C41711363950EF9013A8AD95F9E07635546485A3568AA502D608321061A6999057E705C46B6691183874FA9EA38BC392F718C99DDBBA59A1865A135207A00058A408B6C61772CE777456C92B28A51CE823F7524A26639AC64AA49D6903CC2B2B5B60B59643BC950230362CABA6ABB5BA4F6964331B1F62099CF385BE3F5B43C2B8402006BB3386F5A16354E45118F0B759C3363AB4069EC2C4C15CAC4E07A24FAB0C682548337D157E6BA213C7801DC5A0A7045A442B4939D611469746E9DA665E2E910B51C56B77A035900B25490216C0BB53E04173B3BC454A7A17D77283EE278E7D30496301480C8C1AF6B3E1DCA213B174F968C8A45A3BA2044BDDB1492BEF2AF610B4ED2481AE0823DF53282BA7750FBC7A764DB58E3789CCAEA778083C27ED101E3C75BE5486249F9818A08047F97447773C7DEC3BA7C59AECB5778A09CB7F1182B2E0A01C182A1BD13AB7D72AF97F96F564607A9A970B35A6ADFF275C35C22C2444AD6E997D821C065EA49080900E766C0079B7ACAE7BC7CB3B31301656FD39591E0BFEC2C33F05A0DD633BBA463781F1C519D902342BC12BD16C1AC8305EA9769E489073297784EE45F99B248670749C728385F601FC84C1FFB298BCC447537785226BB5DE712B7BDD04A0CE39226919105F06ECF6BCDDB0CB5EC3B5505B5A169B05480B2587CE4934D2B232A44A6683920A81A6038C59497C9B47FAA62F4F2120B15C360616E6573BCC5A23A88887B50D1A7DBAA429BB00A9F87B63829B1B641922425016C979DB571BA0F1A139267BB362C68F47689715CAD6636402049C2B5C616C321CBA6E43C1C1A48A0E141CF3A71C0099BD183A5C0E59BCA9A2FB637C1B534CB6687493EAC495ACC7C5FCC4898A52E44094FB1B7014A15C88E11A9E7244EE53C2D5B16708C233ED37859268501630A296D63C094F563F0E559C59453ABF05A93722AED5AC0C3CC6A0BE7890F8C3191677C21F70C8153CED3E2BD96A4BFDCE27F86B809D8AB04DFAA837FE030F420B845D23C78CC82A2D7C440897C91C3B726B4622445899DE72BFA263B93C3CCEAA8500B4B0C240046387B25BD98B5901AA670180A2A8B27DE424F4D804A68DCA2E044430D701B67E9B4AF33C60FC54BB3A94A8B8604FA5882A401A5647B8DFBB20878E4B4094136BD4B5BC14288463C2E87F0CDF6D9497FDB5F42F26D2F9CA2E048A757A59B440C2C5642232E714D11FBA959AB9AC52126BF689864AC98CBD1A633BAA3ECF75C09C4C6878994CDCB3E882798EA02AEAF39915DCBCEBFE2BA14E620F53B3D83AB58BBF99509033DB99B0ACBAC29FB4674C95CB94982AC398C2771A8AB6DA1CE9B0771E3D5C2E7655B4BB99EBBB57ADBC7A540F228114639B811C5C1D3B614DAF84266BC4C312FA43C4109DAFDE79000AB39 +sk = 47318B2CC6A9D8BC6EBE7C12489017C03214325B61A2A8541FB783C448C3A31C1D82BA7906B09E3512AF8D00D0706A3D391281F0315044C9C4F92B0AD72C60E18637577B942A442589CBB466AC344438750B86CC86B97D16339A9DB0365E6696B183041543B031C9220E82BFB89C21A5B0A0D301109568B1C00B2B878C9284375949C88394F141ABC188EF7607CB8151BAE654A7B7BFD785B44BBBB5C5A68CA5F96BFE5ABF179CB83A58AEE518202C9119C80081BEB38CAFF81F5EA51811F13BE9491F431B127783227BF9B691031145D6A144213FB4F1C89C38C00C81ABF075C4415586BDF28B946380C948B94D7A0C3A793100842230663F4EDA9174DC7214884E0F552A50D16DFD0A5DDFA7920B0AA50437BFC735A546F5B0F4BB22E174B061BC80E91428547576B6205490CA3934C9B15FCB69611A1639974478800B2CBA3D5243A0E2762BE2F87035295FFF40B56BE37DDC71915434C4AF6472C1E5C519506E691703C49C715B50B360A5C2FCDB79F59C7ADE27380F9905EB7AA6F5042C6A32BAE657C699EB85A53395C0303E87E89800131F96969BF45B3F574A40ED813268603A24F1C3180607814914775350B88A1FA7E1034C9CB155879668950AD5950803ABC0CC58BDFC408FC1F2BF7D3A2972AA66B58844C048150C0B8C89ACA3BD3269474875BF10A94D2B9EA3687AB9547EA59731B73A8849AC7B7C4B946D70B8B87C56B81B77024503BA87485BA3655F669770410E89FC84925B87C008C3CC13C7B9447D82FC2932A1C641230725A422B6219D9BDB5CEEF17E121132E6615075E0B26CF71E91A1593210A09507214716A3405B2503CA5F29D4479914CD10B3457AA62A6BB71BD08736E1519E69F709B8C8439B4441BBAB5D0911BC6737CA742747CA592E5ED734A8AA1B77450A9D4188E05422BD9240E285865D530E718C6F1A816153CC27414446BBA8129A1716171AA60AE086AD09951C2B9AA2744E0153CBD4EC9D1736908CD78E7CD75D0333434715C517633EE6603F7993083724A596069F3270C071B6BAB955844A081A896096F76059B9738D819CA3B6588D5F578058D28D2D0710B2BB2E307A5F9E18533713C41E172A99614A97C00AC0A83A25526C399CC9FA9B74CC4774830C8E754231B04274C90C526DEA7FE3D203688114E7A90D3AC02AE69A139649B754581BB56825A215C3BA282A26C036E5D5785C07C62956B612FC37FB73A7C6EBB506B998D54979FF29781CD09CCB64993299745B34B6D7F897C0E05E1A6966E6757DBEE29AF2EACBBB7701DBC39294DB584C7C3A7841112258951D88145CF73404A17ADB8CC4D11788225557A83B652F95053E8507093B2A8B00CE77E7BBBE83233DC18880F2274472C05E646B90952FE92440D164092A058D69C96869D8A83377A2DA92C2D668607DEC3CBEFC6242B49A9DA97C19C2067722C8D309CB898593B08B5D8138BF2FD1C59081614F764ACB392D7FEB205A85270DFC1129929CF7B53D41031C92944972B8BC9A9C494AB384996647E177A87A101C45C747660AA4A38088A5F7919CA46DAD338576463A1C1425A6C4409E2BA8217827AE83BED4E6C80AB528A6BBC1AD58C868B995D9F72C77E84173C9CA80B3B92647A1DBEC6BB883A4B2160E4DCC84C89C6ADBD955CC055933D3238E325FA826ACEF899A555873A5B9C189117844202C65E40EABA07D9FA94D421BAFE8F3A5E3346B6B93CEF8B75628E4418E2885660B1D3DF32D1BD50CC50757C5227928B32E0C567872E66BCB58128B15C8696710A7B33BFDA469128996F6979F896B93D22910383C90D0D877A56B4B7C77C53C99128719C2995497DD36877276A25FA8B74A4947E223215A314A075585DA457DAAF17C41711363950EF9013A8AD95F9E07635546485A3568AA502D608321061A6999057E705C46B6691183874FA9EA38BC392F718C99DDBBA59A1865A135207A00058A408B6C61772CE777456C92B28A51CE823F7524A26639AC64AA49D6903CC2B2B5B60B59643BC950230362CABA6ABB5BA4F6964331B1F62099CF385BE3F5B43C2B8402006BB3386F5A16354E45118F0B759C3363AB4069EC2C4C15CAC4E07A24FAB0C682548337D157E6BA213C7801DC5A0A7045A442B4939D611469746E9DA665E2E910B51C56B77A035900B25490216C0BB53E04173B3BC454A7A17D77283EE278E7D30496301480C8C1AF6B3E1DCA213B174F968C8A45A3BA2044BDDB1492BEF2AF610B4ED2481AE0823DF53282BA7750FBC7A764DB58E3789CCAEA778083C27ED101E3C75BE5486249F9818A08047F97447773C7DEC3BA7C59AECB5778A09CB7F1182B2E0A01C182A1BD13AB7D72AF97F96F564607A9A970B35A6ADFF275C35C22C2444AD6E997D821C065EA49080900E766C0079B7ACAE7BC7CB3B31301656FD39591E0BFEC2C33F05A0DD633BBA463781F1C519D902342BC12BD16C1AC8305EA9769E489073297784EE45F99B248670749C728385F601FC84C1FFB298BCC447537785226BB5DE712B7BDD04A0CE39226919105F06ECF6BCDDB0CB5EC3B5505B5A169B05480B2587CE4934D2B232A44A6683920A81A6038C59497C9B47FAA62F4F2120B15C360616E6573BCC5A23A88887B50D1A7DBAA429BB00A9F87B63829B1B641922425016C979DB571BA0F1A139267BB362C68F47689715CAD6636402049C2B5C616C321CBA6E43C1C1A48A0E141CF3A71C0099BD183A5C0E59BCA9A2FB637C1B534CB6687493EAC495ACC7C5FCC4898A52E44094FB1B7014A15C88E11A9E7244EE53C2D5B16708C233ED37859268501630A296D63C094F563F0E559C59453ABF05A93722AED5AC0C3CC6A0BE7890F8C3191677C21F70C8153CED3E2BD96A4BFDCE27F86B809D8AB04DFAA837FE030F420B845D23C78CC82A2D7C440897C91C3B726B4622445899DE72BFA263B93C3CCEAA8500B4B0C240046387B25BD98B5901AA670180A2A8B27DE424F4D804A68DCA2E044430D701B67E9B4AF33C60FC54BB3A94A8B8604FA5882A401A5647B8DFBB20878E4B4094136BD4B5BC14288463C2E87F0CDF6D9497FDB5F42F26D2F9CA2E048A757A59B440C2C5642232E714D11FBA959AB9AC52126BF689864AC98CBD1A633BAA3ECF75C09C4C6878994CDCB3E882798EA02AEAF39915DCBCEBFE2BA14E620F53B3D83AB58BBF99509033DB99B0ACBAC29FB4674C95CB94982AC398C2771A8AB6DA1CE9B0771E3D5C2E7655B4BB99EBBB57ADBC7A540F228114639B811C5C1D3B614DAF84266BC4C312FA43C4109DAFDE79000AB397537E68CCF14E8B7E57090D8F648529DC461CA3950288879E88116ACAF57B4A25C2478CDC8D59AB164856623D53B9E60CF0AA8214CB64E674140BFD6DE9FDFAF +encap_coins = FC69423340CCA2E8E96B963188545FDB2B9287959ECB7EB108F8D04204BC87CA +ct = 64104B36C672AC7E8BE943086586B0F19C4B6FD8DB974679D2C74271A5F445452A7D946B73CA9F110713316EDB1BCEDF19C6E6AB49F4AB546E5C4503BEF830684D7DD9A52CB26098EF97B89D3C35C2EC5AD92BDDD9D849CEAD2B0D19D2ED95081045066EF48EB3A1A61DEE932657E1FEDCA8FD6D4C640A9629A2E66167BDEF2D0111E67370152615EDF677F7589512ABEA34E525D2121A379F368B16947D477144829301A11B399FB549D05B5415A595EFBBB3A04BE12AFF85F6AC7CFBA22FB953E4D3B82A39CDA2120873422282AFF3DF2CA6C16901D731DE7D2570AA415D2A954DF523251F6AD019616A780573F4C5683E8EF9E5FE8499ED00329169B7D6CCAE687B9D5E448AE5CA1788F10BB126F6CB0F95C940001137E0A0CD62A3645F6EA28DBB1F8C3118F26BF794B8F80747FA2816733838D4C1C62BE7C51C0A25DD27B316579C6462D49BFF52CAFDAC5AE262B88A1A9734CECB04BE568295C9088F4CC60983B5BD2928B3FA708139149D89D610AB3B6F915CA6B6627E71DEC5A6EF1A4ACBBF7021D4080539B2F9EB77AF4E2F2F8004F2E21868E0ED7A0DD52F41990732F21802B1814EAC1B262309970733FB218CA074613219071E922E345A8354E253B7B646271A21F0B4E3EC91C1F11BEAC1B141EFBF46FECF7D00767FC94CD78AA970EDA5F4498E4D5F490E56C7AAE3FB44A09769AE8B4912E27D1E5F5D3B2DA08F95014BCE2F7132A1A43B0BE1B977B43D15DDC56A92DAEBF4B544FC6876A1A5774A662EBE098C369E71A4B68BFC7A9B7A0BE9C3BFAF387777E4B9D5BA65ED37FFA181CCE1B076F57456C9957545F493E906EF7816DF62534BA8F10424501E73E7B4DB2FC059F04A56EBBE04F634B54E09F359BCEB492A30850A9CDBE6954BEF3FDF36D69E8409014663CBDDAD6D460EB3E86D9CFCDDA3DBC219B689158D67C67030E3EE81693C9C581E7DDA396FCB76A3B1E0D90962E41161BB2D7746638AAA542DFCBD76A3DC87AA85C9E29060458F15E1ABFC8CBF336686F0AC59DAEE90AA8BB05FBE558D25B47366B6B80549A97F0A89E4CABF7D2CB0DC5F63217808006E29256FF85E0680542A589B52E6DA00BBE456E007047358FD7C5445A0B5679C972D0439F7F0B2F793C5AA8AED248156AF3D671A22BD76945AEECD6C65F86BC7873DCCFB82E667A8319674D39A2C6A38AE0E73865285ECA5F9743BFA255DF6B453CFEABED103D16114F5713E593B1B88339166CEFD5E651B08E9208968E03F75AF07B9573302F52E87D3251D8D64E2E379A1B2D502C543F6A61E96137F868EF382CC7EEB06017AECB4B5EFCED7A46A3A7B2E70E66D4BF65E561A3058F28D1CCDB971B8AB2CEDCE8D284AADE0242A9AB584741397620B4BA43CE0CAEC921521FE8AED9E78A5E1D2026E05ED1AF487D32C0F795BC59A60603AC7928D3E31DC88D0824428EEE4134985C7CF58613368D672634327B532AAF89E717012E6AA1604FEDC22218E22CF8D7529A967C00441E035E2111573C024445BCFDC6DDEB5CE1B3D6E +ss = CD0E055432E110BCBA3C34AF1C0BE0CB266FF70E52010D30FBA733701CDEB18F + +count = 72 +keypair_coins = 1F7CFD2B70863154E8A69D1758532E86C20CFC763D67C758BD10A13B24E759B588E66590B5B102B223291CC78119BB94E799E37B95B7BEF0337E6A572284B9FB +pk = 03A20A0337040ADAB8BD449E0BEAA93B07512485BA33F291AF1A44540BD04AF4A3DD2A09F6454D7304D0944674A580551061BA5F88217AA57C10640DC1A97396F138C1A32CF40B0BD9286F88C4087F9084A9012D248C63EFEC072D77AB0E736719A23A913B7B8B62AAA5BB40BE97CBBC1C29EDB283C776AEB9B032E2C2691AEC9CE89617B84B09712B40E2B713E566C714E0BAA75957D6BA5062BA76471357252B72AC66BA97E10921CA2313A232A6BA908DEA13645B5617938381FBCD748A11F61CBCB615C458D056F0D55A449C4F544C6673322EF106010CF139D1C586AED5A5DC210FFF7A60F3138C34A4244398B692C567ADE5BEB55C1EDCFCBD93183E1ED0C2AFF5BDAB67B51E39A58BDB8388D67CC1EC0D7313B7EC8A56CF3C9B73214C4ADA14592794749B6834E9B81A2BA47DE929E9AC7856B56549F40F38F0784BA0CDFC195952D3155222BCEABA0E3C233FF7E19A65822437217A42721F9C060AC2CBB9C4E6BFA9FC3014D8ADD7B4BDF78291423511F9874A07E06A82B6369FE349E08333C7F56B7B7B808A0B4E888A95799A2DF4873944CC43EB958B1508C66E571268E79A69178793E7A4D430507E1259D01C86F999C16772CFB7B4B330114FF55A51EE5407BCE95A6D27875A91773420C24F8734B3023E9DB777819CA2163C431DE46F22F38398D46EE352B815B6B07E1A242B01A4230B59EA8C7B0C3C3DBE2B7C77B4C860660DAA04C452E391C710722C67BC0632C072FC1E5296A2E70932D4D38EFBB96BD636BB41260A7BF27CF5E71CE3708E6884CF0B8584ADC3CD3B5C5EE1003A13731704472A203C8F9B49534309BF2B60CC3E2448E02B5A46D889FFD78FBE722A709A2D5B5C8A7D805BCFF44052C553CB990AD016079BD87DB7573EB1D431D1E549EDC8AB56A0BF52999F32555E8EF2B03182BD8D812CCA638055A73B548C8B432A2A7D4A6A074AA212D50362D1382747CA8DBB95E03945D95B995D6346D7DB47B24B86E4F774F3767DB7996335B789733CB251F9B1EDD04F8F8CB7AF4C947AF224DFE0AF6A42C7B65120B9C18ABE9161D88CC5C4780FD74403CD177F7160281884A11CF686F0F523F39CB7AD39B780F13A8EE83C0D646F9D85BABEB306D53A7DF53AB00B5A1AA8C215914A48222940FEE10D1939BA5C93617690CAE113A59DE071C969436B3771FC50B2F4AA641A4C852922380A420FCDFCCB81816F4B474A2AB293A4D97B2B280CEF031148EA7E4C9C0DB7E7CD0E50B203A6B7519C3CBC8062C9B60B8B81CD956463B8180C67F34BE4868E3BA94B9F0226D9F010D9EC5EF0BB62C865C807184B96526D94170AF9474BBC100530F7C77E46B98C2AA41F92A48D8027C855C7F84684389BCC8E7C67164A204BC5C0C90828FAA439FBA235B6F20785CC8EF4C090A708BFBBE26E1933886CC96AD9B4562A119D4C66589C85BF0E55606886206734142D432C1B032E0AA93EE3731F069A8CC069A03B95A8AB873B447A04EAD3A32BE3054AF834882BCC581712BE18539B805577E50FF5D982C98C0B0DFCCC96A4C6429281068C8429997DC17A6600F0736B8453E3D77636FAA8D0CA89F9193BB34819CA1117EA368EA23198EE11345C613993EC052992954099BB9A086057DF0C5465326E1932AA50DA74AA8435D9294FD6B7C05A153F30 +sk = CD28AA8C74142A0508C2534D5ADC64284806BB2C653BB9783ADC640E9945C253AF86F57C19B42C6697AC85D1BFA46B5231559C11F5A0DA9B2BF43C40001D4E6C00B81237343E15A41DA190CF8940B641A4B42B72D9CC8BAC681369DC07D80AA62F135B0F956355A4A68E575F34393C42BCCEA68A7A63C269A5821557299FF63B9F0161368F6084132C8B56984F4D1626D7436DAE2596E1B24A86562374B066D2483A1B354FFF9766845480FF396F6AD089B724B0F15A34C2288DEB05A8418909803CBFE2F3C63C30056F358FAB798F4E385EB0E35ED0C38ADE7382787A2502D117AD0BC6CC0A4746AAAD23345F10074B21970C18EACC898472766B2313472DD3348C82F69B7D961CD35A8C61984E7CA20AE6382F04A977A72B532A1395707CBB7CD595E0DA0202498058E59F22E0C340C438851674E3AB1E0D872FDA3BAA7F87B67F449E6BB461BDF1CD771475D5B59FACC30181599DDAC8CE68DC2DE5741B21422FDD512B39D9633ADB202AF3941E323C9326297CB58086C3282F722C4D50B94B32153FF30B91F07A811A9D9E07B7667846806B6F7071AE29323156B668F831A9F79AB7949CB363DCC8D151349DB4B5EC1266E7F5AF98105C95C0A4D47648AEEB01FBE1113948B407FCBE199BC2CDBA40257745D765C6A0766012F19DF41A770E96CC95D3CBC70549F7E61914A73DC71062F2A3A377EC26DED59E0CC85B11A74F43C3237C7561CB7046C0E660B5BB0BA0634FF2B211438A9B9B906F241B04B2439F29A3CF0AD9128D683F0C2C26CA050978CC179872B1664A751458C072106FDFA07D97105188278268B0481018782F361D08555FE5799A0654398285B378F7A9F143CE20673184C75E8B662085899812912FB8A60485921B2F7B3FEAB95CB7AA327D8B9DBCF7C7256A131270B731E33F8F555CF4F8B7A1E6AABB4C83D2938B7B21BEB1C3B3CB3BC08BF52FC1F5715FA89EF8E205D85862F6A2CF420592AA24568FA0B8DCBB90D0B654C7C82C7411B6C3E219F46C352AA034C4FA0AA4FC47DAAC204B351497727B96714359A66466F6C4CC2B83BF6B87785367C7116489D6C5FEB975E41C4BBB2A3D8FDA920021C523227A438374D96032F62C41B17422584AB5880475CDDA8B7F4844E5420C25D97235B0ACF71012ADAB59298BC80052AAF1807E8015695D92184741BAD318BA9AE27C306A2E42C80512534963B70B9D0B7F5AE70326C33E7D43249E8C9CE386947C167C8F33C88947244989C45B4858203249FA5A136734153CD94F1AD467B5043F7ED77F58D34490D1B5F9E323F3E2146011921B8A9F94E419BB85AD965443E7F4A73534457BE43EE5F677A63A7738762B799600FA0B9CD328AE4CF507C1D9845EDA77C30BB7C39C618AFB402CD9B016F0092CB61E8BE13A18925CA122A142409B8DC637A364093CD76925A194AEDA21C61709255BA2DE330693B888A6C2C6F0C39FA5B4C7FCFBCC198B3253C0ABC5AB5EDFB438ED3A82B72B5F54A39D21C37879480C4A648F182A94EA566C598BA4CF697140A20FDF4CABBC540B80E8664216A6E880553899964A7B239D00C68E720706512CD2A58B9C49BC0ACB90283B506CA196F7855ED69AB21F059A11FA3FC4670D03A20A0337040ADAB8BD449E0BEAA93B07512485BA33F291AF1A44540BD04AF4A3DD2A09F6454D7304D0944674A580551061BA5F88217AA57C10640DC1A97396F138C1A32CF40B0BD9286F88C4087F9084A9012D248C63EFEC072D77AB0E736719A23A913B7B8B62AAA5BB40BE97CBBC1C29EDB283C776AEB9B032E2C2691AEC9CE89617B84B09712B40E2B713E566C714E0BAA75957D6BA5062BA76471357252B72AC66BA97E10921CA2313A232A6BA908DEA13645B5617938381FBCD748A11F61CBCB615C458D056F0D55A449C4F544C6673322EF106010CF139D1C586AED5A5DC210FFF7A60F3138C34A4244398B692C567ADE5BEB55C1EDCFCBD93183E1ED0C2AFF5BDAB67B51E39A58BDB8388D67CC1EC0D7313B7EC8A56CF3C9B73214C4ADA14592794749B6834E9B81A2BA47DE929E9AC7856B56549F40F38F0784BA0CDFC195952D3155222BCEABA0E3C233FF7E19A65822437217A42721F9C060AC2CBB9C4E6BFA9FC3014D8ADD7B4BDF78291423511F9874A07E06A82B6369FE349E08333C7F56B7B7B808A0B4E888A95799A2DF4873944CC43EB958B1508C66E571268E79A69178793E7A4D430507E1259D01C86F999C16772CFB7B4B330114FF55A51EE5407BCE95A6D27875A91773420C24F8734B3023E9DB777819CA2163C431DE46F22F38398D46EE352B815B6B07E1A242B01A4230B59EA8C7B0C3C3DBE2B7C77B4C860660DAA04C452E391C710722C67BC0632C072FC1E5296A2E70932D4D38EFBB96BD636BB41260A7BF27CF5E71CE3708E6884CF0B8584ADC3CD3B5C5EE1003A13731704472A203C8F9B49534309BF2B60CC3E2448E02B5A46D889FFD78FBE722A709A2D5B5C8A7D805BCFF44052C553CB990AD016079BD87DB7573EB1D431D1E549EDC8AB56A0BF52999F32555E8EF2B03182BD8D812CCA638055A73B548C8B432A2A7D4A6A074AA212D50362D1382747CA8DBB95E03945D95B995D6346D7DB47B24B86E4F774F3767DB7996335B789733CB251F9B1EDD04F8F8CB7AF4C947AF224DFE0AF6A42C7B65120B9C18ABE9161D88CC5C4780FD74403CD177F7160281884A11CF686F0F523F39CB7AD39B780F13A8EE83C0D646F9D85BABEB306D53A7DF53AB00B5A1AA8C215914A48222940FEE10D1939BA5C93617690CAE113A59DE071C969436B3771FC50B2F4AA641A4C852922380A420FCDFCCB81816F4B474A2AB293A4D97B2B280CEF031148EA7E4C9C0DB7E7CD0E50B203A6B7519C3CBC8062C9B60B8B81CD956463B8180C67F34BE4868E3BA94B9F0226D9F010D9EC5EF0BB62C865C807184B96526D94170AF9474BBC100530F7C77E46B98C2AA41F92A48D8027C855C7F84684389BCC8E7C67164A204BC5C0C90828FAA439FBA235B6F20785CC8EF4C090A708BFBBE26E1933886CC96AD9B4562A119D4C66589C85BF0E55606886206734142D432C1B032E0AA93EE3731F069A8CC069A03B95A8AB873B447A04EAD3A32BE3054AF834882BCC581712BE18539B805577E50FF5D982C98C0B0DFCCC96A4C6429281068C8429997DC17A6600F0736B8453E3D77636FAA8D0CA89F9193BB34819CA1117EA368EA23198EE11345C613993EC052992954099BB9A086057DF0C5465326E1932AA50DA74AA8435D9294FD6B7C05A153F3082F68B15681CCA5C2852C18D6E88BCB102A059C1D21936582ADB71790CC0A33588E66590B5B102B223291CC78119BB94E799E37B95B7BEF0337E6A572284B9FB +encap_coins = 01E6B1B765E4C42464F6A35D1DF3D2C673D752683850FA4D147D4E0629B88B10 +ct = B7658C85D18BD68C9FD83CF29FB5F5D4885EF1B15787DA9B0D8912C2A9907A4BB8CDB7EB1153C5EF77F90CACEB08E698AAE4B359DF085869FFFE6417791D28795EE961649EE1A50634CD881D75BD50B381E38E3C8CEC596F4A77C737F66A942F4CEBC9D1A38D1DE2DB59A43470075FC7DFEC27BD16173953DB20B8330405866DEF7A9BD827D6EB24ADFA2D1D4103F17AB5EB86543D42FD7213A78666A2D7383A122D146182EB47D7D39F5C538E52958F82B1C52827751153B200C07B1D66825D594D434CB0B6FA23C1E462972D6A38665A2046FEEBC6E92E0C22AD2C5A7B7155BB879A86ECCAE66A2AE3348EB0336DE44E1332ADAC8E3811295235A6C3D16256FF9C71C3FD12AD4BACF9EE78B99EDEA34619D2CC996DF82CC9E386B95BF3AA27717194751BD556FDAA64D3572D25DFE7C8939AE6E73D52012A8CA16100B6DDFDC4F289532F02F4FB9B19D4C23D6D3F30A6742CAA692582D886ADF1EBB56391968DE76B52D64665E719AB779915FBCBBB8604DD8B0F54DEBB619FF5B02BC7C2616CE6CB5BD79019CE92371EBC5C188F6B806FC4DDE1446B9A812458D8D0AEE6899160F8CEA115D586986E1C145EDB594182F56AC41DC6E3E8DD7C395F7B9F1331884390FA2FBAE6F53D6EEB8852F8D18A729E755BC00872AF0ED9D429EB0909D6E596711200B24BB0EDDEE80F0D5103099EE6ADAE13A24C93BD148EF1FEAC537F752B83D55462483289A305AAF1516DA3DDDEEFD2A386B1665D3B3035121A527A4B54B27181D4D00CC6EA3FFF186947A253E725B1C043BDE2018117ED2AD74C6B4DBDB4623CA3617162B3A1CE679CC444BFD12B24F0D2D98E85F0EF03DE3391F0F854D28259697CDADF7A7952E08C6B521938655C6687838025488D7B8847BA37695BC1CF34CE8C25A86CC6B8438ACBBA14BF283C817B5C1627E8638FDDB0714308C9197EC057122933FCC9CFB7BBF195D5091B98F7E6A6F80634232CDFA3FFF0B279239C48DFF4D2AADE1A909EC15DEB7E9A56505BA422435BFFFD81A6AE8EFBB4D72F3C1370BE278ACF0FCCB3F9C82910E0C92B006E39388D42104705A147E4FBDEC5DA51E0F70EF4C51F8D2998478D2EFBE725776F0CB0E00EF3F374D1A80BAFD50FE362869645C7902D50051B603F8329C02AA7595E17C1A2DD9DD48F90BA6E4B06993970DF2412C081A5E5693821C85D8B6981916264A7CC7AFFC224A47D59DB9DF1F30DC726D6F0F81C596A092F626A45574E518D1570A77BC427FDAB6A6C8E0F8E8281F86E1FFC8418CEB0EEF8CED5AE722E6059CA59432AEB5027E3F4ECA4D33E782B07F95A01C3C3DEAE758A5E8429D1CEF9F86E1C225510FD6F1E1A94F672FE3F350DF561ABE16FF5BA41AC13E061CFE3115E3D614224DF0DF8584D014EABA340E2512D0F58DE67D71A4D9DA16C7B5BCC98306B562278D6D5B352D20CEB8F01655225C08F2E61A8C97108F426D8137CA678B3E15A18EE23ECF74E1205B0C4FEE6883328E262B121E2451EFDD66353DA8572CA87177E7165E7DA0E56 +ss = 11289A8C4D0ACB00567E38127F448BC5CEBA08D0A5D7530D6ED38A60A2D255A4 + +count = 73 +keypair_coins = 3A19577908EFD37697B8EDC7FDAF47D1BD3AD01A1B77FAF794BEE5B9C3192A6F08A2455063246EB5761E908816E48990D670308B0D34D7823A325D49A1A4DC0D +pk = 611BA36D3A65C0D17CB22B7F3A682B593595B1C682D521A16DD621A05A7D22C9B2D29C9BB75CC5A8567ED3A545BAD39E2C85CEC0F83F37C6AAF101BEC273BCA5D606A5E76FDC183175A233C93373E956580A522BADD22D97D71199C1A7B4149E652686EDA541E69187A2ABB68F89AE9492443547CFDE7B5D609B4835911D154C33E49248C4CBB244ACBF03E93E52E71ED87A75CBC43C3F505422C1AC31C014E82009D4B13BF2CB7DAB16896A320FE6C0476F37767CCCCD80850DC94B410B983FBBCB484DD09B44A817FD95686106C710D983CD2BBC11DC4AE59091A401A6941BC704142C792C407F7524EDE1A71A726E2F921B0626768307C31DAB514A783FEBD67B50E93479D2C7D1787142F591607B7A5626A718D502B37A6F5B8766E8175C6EF276934A12AC1107AA3362840513D3F5C02042AE681181DCAB30F6810389DB07C3FA1790345E786031E3196BCC01C22BD064B2F9C439D7B7A7B7633232AAA4D88E0288CDB791049B8A8C64883637098DEF7C88FBCB974554AF0F3C51C70A758176215871227869766452871602093D6949E1D078691537D9D7030B36926147AFF8151CFBA202C0364795122D1D748A18289CDB33982900B38EF9AAA5D10D146985C757CE5CF82AE0A2489E0C00C83550D455A03FC885DC7A5EBCD71529ECB0CA13CE1259186F9B0CEB4B90789ACA0762C8BEE063780801CE365540F440B0AA0128103AE0F5B4A5D9B98FF3AEC5793E8FD046A7E15B517C5C4164105E87C593DB19B85792B6C705E615C4D95C38BC4BAB4F30737A20241A3189EB38865C6B60F6341DFB931626E729CE39313E122687862BCED934CCF88411730FD066BE831542ABC5B15A1CB2D3F0AEACE904CB419754D9A5CFA35D72E570C8D3B0BDE5A5B18201F14CCA3E3564C16769757A2DAA89B03DD993EC8B7C9FCC63098478AF1890346A8824A4B142F88759F382292AC404F436BD21282D6A3242417B36211C84B75F388151F087186CFC01E59383E8218039DB15DA50120AA1C5489743BC42335A774F8494A4244ACB6677B22A46224DF7BDD8A9292AE58E07F3068CD975ABB51E44631172535E52C910B48748A190C50D877903A4C7B9F4B18993669D254EF566058528A157428111D43D360AB54343ADEBC2A3636720F1E0C8CCFCB0FC3B71B55353C2682946408CAD171FB711CF0B3AB561BA6722647ACEE4B8DAF0AEE2C43352609DC617549841ADAC54ADFD3319EFC715DD917AB2B887DFEB49CBB6323ACB566E43638A5C9B6F865DA4157CC3F866066A551230A335510F55733CA4F3A6329AA0830894E06A05EE578C45B3117FD07D62718A9842CED5F49710F7B15741BA5B06298C550B96BC6FDB0561926240FAF09012E2CB49C66868E27EA318AAAC50BF882C5BB8E674381A96645B7A7DFA936201933C31955E24912E436528027B39F74A909AA5EF4653CC23C5E448BE6F81088FD322FBB1779BE52AD60005C2F57241932EA3B435C47A39E6E0477B989C00BD5EA71BA671D8A37DC64D36216CCEBB14E6DC7420C362926B555598B92F6A78061423A4CC8961D57733982FB8C78573C35584185FED801EA674A7FDA06008517B42D1A45FCC50416883D0963D3B744EDB5E8548C3B3DC474F7843C49A8DBFC939C41AF7F8EC6C8354AEB0C67E05EAE0 +sk = 8DC4A33D0A013D102A7ED6A5303693669033816BCE0C8A83594695531999647A48F6708C65220BE4D9A60F013201A36EE053796356B26E3617126C3D0A354D2FBB82312A372FFA37B939A7BAC8AD0E127F18EABC771462FC57B542A73BB7067FDE6BCFFE4982E6DB3394264D34DAB222318856BA8B6919C5A0A667866C0D2166B69AE04432C044F289BFD7255542CC7946B82C2DB388C8B656F234A3B607C2F6611ACC3A5A12C8111E42138ABCA9B8DBA79921A177682C2AD1138B133636951F5AA77A52B7554943AF52F7B53D0B84ECF44FD77018F7062E564C5E58753994724242D6B3A8F8A66DF518F7E13A0A5C1C4B253DCE12AE197342F5D72C296498BC9888EC347F528958AA689C8DDB81870184C9E2254F918B7465354826870300790044165216C8BC279AE93854381C28CB438BCE444B2258AFC3A84CD4F91DE8373F877B30137C4CE4664E4D330BF763B344489604E97F4C9C24FFC226D07C5824CCABE38CAE22487EA2EA0E89920F304BB911B401F45735089512DCA2298EA1A57F643CD7524A3D6C9F055B25EAA62FBDA318A7B8C8DC9C5CEA953AD5170C0452A7BC04469987712D0522256A1EC52961561175C32ABE93DC5ED37289B9D4CBD3966911FAB85FE47B3C68692CF5A845286BAEF91493E15C6D23437BF7517EC5CF609C8628D82FF7CACB54D4A5EAD25C85F59AB51151F9350247782459B598A2089A85F2C9BF66797E863A4CA0732268A4E40C57009D0C7D1AB1FF46B78E350DBFC19FCAE823BCC040183A27182ABDE00A966A6075E68C011AA62EEF913024CCC85B460098FACC9C4C81D17C577BC009B8F9416D225D156C4E75B84691A90948D31883B1B2AB3635DC357AE867B2496983CF9595423C541E3C17947042B3D141EF825C99862302BA911C67619434B3F9CC489E8C8ABAE92AF1EC3045C895EDB41F745AA1F3D1A625E47EABB49432129A5608571431C4890C8FA5769563B8B1F9BA3C1B77B034F568038865C90304A4F79F65F74C17FAB9E6B52236CB636EF5B686271F955A9E889B7A1EA1A010828AEA1A838DE1723F0149CF172F48890161C34039E99B36185F068B5707FA476D650BF149479B8C928F93089A4B941047B5B528135685797E0B9E65F595D9016A614393CFD630C6A217D0A03091853F606B238EE13C92C2B5D9E19B2C57638CE82A3D767639E115838B8EEAA5A47B7B686EA05CC088ABD47A10AE593AE39A07F55CB4C1347ACAF7CF59422182749E6AEC39D62CCB876094BA3CC0B871C57A03A00AD67C5C1C6EF911C6DC36B13CAB713BE1A6610CAA46DB4EBB86B76572A0BD60ADF163B325C89B506C33CC343C37A2BCA7CACABD90494F044B550778677C2EBEE76E03622705556B509C204087B5C5E5936C0153857691C3149521B800B76C43195897067529A4A87D68E974ED57178B7980EEE227E4150AF1234025757EAA3B645064202D632EAEA3943B40CB10922BF569AB2C44867C411BC8240D110134D78143D3D44B450056BE166B57921FE64A44F80968A1941D91A971E10C347ABA369702B1ED542984F28B6254BF61D94B69F015B0E32B05E8897502238FD21D87978EAAD45BF5997654B40A903319CA64095C9297611BA36D3A65C0D17CB22B7F3A682B593595B1C682D521A16DD621A05A7D22C9B2D29C9BB75CC5A8567ED3A545BAD39E2C85CEC0F83F37C6AAF101BEC273BCA5D606A5E76FDC183175A233C93373E956580A522BADD22D97D71199C1A7B4149E652686EDA541E69187A2ABB68F89AE9492443547CFDE7B5D609B4835911D154C33E49248C4CBB244ACBF03E93E52E71ED87A75CBC43C3F505422C1AC31C014E82009D4B13BF2CB7DAB16896A320FE6C0476F37767CCCCD80850DC94B410B983FBBCB484DD09B44A817FD95686106C710D983CD2BBC11DC4AE59091A401A6941BC704142C792C407F7524EDE1A71A726E2F921B0626768307C31DAB514A783FEBD67B50E93479D2C7D1787142F591607B7A5626A718D502B37A6F5B8766E8175C6EF276934A12AC1107AA3362840513D3F5C02042AE681181DCAB30F6810389DB07C3FA1790345E786031E3196BCC01C22BD064B2F9C439D7B7A7B7633232AAA4D88E0288CDB791049B8A8C64883637098DEF7C88FBCB974554AF0F3C51C70A758176215871227869766452871602093D6949E1D078691537D9D7030B36926147AFF8151CFBA202C0364795122D1D748A18289CDB33982900B38EF9AAA5D10D146985C757CE5CF82AE0A2489E0C00C83550D455A03FC885DC7A5EBCD71529ECB0CA13CE1259186F9B0CEB4B90789ACA0762C8BEE063780801CE365540F440B0AA0128103AE0F5B4A5D9B98FF3AEC5793E8FD046A7E15B517C5C4164105E87C593DB19B85792B6C705E615C4D95C38BC4BAB4F30737A20241A3189EB38865C6B60F6341DFB931626E729CE39313E122687862BCED934CCF88411730FD066BE831542ABC5B15A1CB2D3F0AEACE904CB419754D9A5CFA35D72E570C8D3B0BDE5A5B18201F14CCA3E3564C16769757A2DAA89B03DD993EC8B7C9FCC63098478AF1890346A8824A4B142F88759F382292AC404F436BD21282D6A3242417B36211C84B75F388151F087186CFC01E59383E8218039DB15DA50120AA1C5489743BC42335A774F8494A4244ACB6677B22A46224DF7BDD8A9292AE58E07F3068CD975ABB51E44631172535E52C910B48748A190C50D877903A4C7B9F4B18993669D254EF566058528A157428111D43D360AB54343ADEBC2A3636720F1E0C8CCFCB0FC3B71B55353C2682946408CAD171FB711CF0B3AB561BA6722647ACEE4B8DAF0AEE2C43352609DC617549841ADAC54ADFD3319EFC715DD917AB2B887DFEB49CBB6323ACB566E43638A5C9B6F865DA4157CC3F866066A551230A335510F55733CA4F3A6329AA0830894E06A05EE578C45B3117FD07D62718A9842CED5F49710F7B15741BA5B06298C550B96BC6FDB0561926240FAF09012E2CB49C66868E27EA318AAAC50BF882C5BB8E674381A96645B7A7DFA936201933C31955E24912E436528027B39F74A909AA5EF4653CC23C5E448BE6F81088FD322FBB1779BE52AD60005C2F57241932EA3B435C47A39E6E0477B989C00BD5EA71BA671D8A37DC64D36216CCEBB14E6DC7420C362926B555598B92F6A78061423A4CC8961D57733982FB8C78573C35584185FED801EA674A7FDA06008517B42D1A45FCC50416883D0963D3B744EDB5E8548C3B3DC474F7843C49A8DBFC939C41AF7F8EC6C8354AEB0C67E05EAE0104FBF09445794C0EA0654F5CAF70EE09D51C8386D4E1F467B10633C710AC2A408A2455063246EB5761E908816E48990D670308B0D34D7823A325D49A1A4DC0D +encap_coins = D7A9EE0513802FDFC6995A975C992350A5277EE79F1837E66959D1D0016EEE34 +ct = C173DD81EB181FA2AFD1DAE26B2DB2B18773F375C047DDC52F7B6EB3D25E924C4821558373D9925BAC6BB80C3DD2223672C3BFAC360F9AEFEA371B87DD5A20C73D2BB5A4DFB7E9AE2D3FD659501C4BD5932CEA9BE91905FB714C8494C1A90CC525D7E612C9C6F3961CEC98EFC7C04B48A5A38E48567CF3523A924918D2FB68B741581D7410D447F14FEE3A29150870EE891E283C2B15FEFF76C6FACB1F6C82F12E22DC2CEC8CBE474F5D61BBB766531C982C0E6329CDE58DBBB90597822F86F03E8E0435AA9E28D04BF89C30945C1E68DEC27BA37660C03CF356C534C763A5032C14050E1DDE0624464FF8DE43E4E7BD46AEFB4B97A89E43D015FD23E256B2C7B4DD9467E2C077025DA3C2A99D1EAEAB5E341781AC857A5973BB44B34B9E058ED0706C20618C48610964F2766545075A056524DBF5B2B9F668E4D32A69E2E016997A00CF1F00DB372303F2A3A81E73D6FEF7DE43286870805CD41C83509D8745BA94FC763013E08D4A5A18C2C6771CB1E601B9135827071A745583E1055450377EB52679FB9CDE898B1FBC76AD6F5E70600542FEC5E9EA5117C7EC81A9AC6D3FA3C1649D75BB2E67AAF2A0BCDF2AF388FD128D49FB3728C1588DBC9549BC2F6A9C6F0CF5E4CCD9727633BE5EB5EA3E98FBB8D54B008F48B669E9D87739DFCF847C2BD9FA97E4805FD1B5B6528DCB18E7B06AF2A9B6F50C595173580161E4A05BF7C0D887D1327989CD6C3B5B426A52B0D927C7CB6636278D31930F9278A23C07176379370501A78A886B2BDD05025A0E23562E23C1C6042CAA1DD2DB438E8F3A0C1386C360B08C25C7AACE0AD55F6C3257B8C0387DC2119E89AFF41C8998632B65DD7BCBC119E544B224BA11C3705E19A58420A28AD0F90215E239B71A925DEB75247FECA05F141D5114771DA5FB11B57CBB83BC93D529137AE6EF81602841CA2EAEBF8D142A56A3A0836E77A5383220D5E30722CD70C872083BB752468578E5F7EF05622E768C83C2AFF787AA0563C6792020C653565BEF985669D5067C2D2AA6692E1AAC6744659C3A1B70DCBB851490A620A50457F2F31D3D3B2C197B90D83D8E723CE61EFEB11D882A766C3C1F7E0EA24283BA67F06AD2BED185881D4D46B7ED2B48D35AB1A5AB85767A7229F75698463A8F078BF1B9017BAC783DB6311F9FE659496B53271097E8F2067EEFA35CD8F509E0D1D5063559F9843B178FC5C28D910E7B2F31235BE3869247F349E5293C0F2CEB4DB0E908217292AC9B601EE0ED7A82B499053FAFE84BC9432DBCDC6FFC5093A09C4A60CA1E844C4851D78FDD14DE78F847244A55E8DE3AC4074E9E2749EC0CA345730991505C474048565BB551E1D93C4571F0378440D7644C92B43B8B6AA5BAF437F87736817C6CD98C6524092404672B8CB5454F2AE591B6B18B920CEE22F4517E609E3EFEA6F05C0FEB963323DC6C28548D1EFD2742C9DFC8493B582E2855ADC17C44252344A4078C704A39FB7EBDE0A8BE24AAD1143DDAC3937459A7BB4819AD22C94B6D1699282AA059 +ss = E9616B25A3261EDCCADBFBE4B797302C1101431E02CD2E47FFB4968086644749 + +count = 74 +keypair_coins = AE0F65E29F38804A6759F70F4D01E2AAFF7FE1C91EBC4F892DD0DE3AB2E68EA5DAD700CFD0BFC439237A0CDB3F7D6C76699AAD545D0ACD755F14F7CB3B30096C +pk = DB0A138C9442FD3A7580E68EEC01077D31525465BABEF901806363A2D664EF8C1908A30491E336E27B0F8690AC71C30ADB145805A15FC654AB8982565EAA96FECB93A2EC7EBB697652965FC5AB837F6B7A20E224E4361977B71C694A88E5252F608CAC97E97DD7C80A5AD10D62681B57162269F7B8D812AF039226CE2A7930E43007C0B3EC6A4CDB3897EE85796D051CB053881E1B9706A572CCC75D0EF32F92610C40DB4553824F1A352FEFD979A310124B9456A9106367EC6A50DB6FE0B057FDBB00A46028C0D6A638BB7F2139CA6DF68F014C4E1E0B79670869353912B5D67EDD4B77C70C067AA76D174CCED6C7A901C65737082276188CFFE28BCFAA2604447E68D490C0F11CD22B8C351C2D63E7A01EE460BC408E174BC4A6CB023492C6EED42F5D85244EC883B1B49B8E3584F27835F21B6B2E6060E0671F289771D124168E196EDACC1ABA26CEC9E09FE7367F46893C2EA3677CAA3005E34E722608A3B64A3B987289952DD695A82DE89B9034390355C5E33546EB833F602CB9324C095BB4CF66C05FA0AB98D69BBDCFF155C3169F3DF2A575901724B678FB080B67F32240AB8F0198CB43176F6FFC93FA602748D591F0B2ACB9AA67A8D8B15C27140C320B0EE040E737077A8C9FD6A20DCB865FF51C41808757B0CA750C502A356B1C7D821F1BF804AE2B337819C5EA89542E079045C887BA6550E4F05693F5C7012424D37A17E2294669C0538CE69A1F1C1F121784E3C3537424BBC4D73CF1A685F03A24C4BA8FD603B328D2A07FA2B714DC1EED17693727732EC7BE2B02C0614CAF3D42B222061DDCD758A0674133E6CFC5362F855B717695ACDB971AAF16320690606C1C42238856D757B5D610BD64427F04C97ABE1BC6B0185116CBBB2DCA28B5D7A9AEE205DBD37E92BB36311C8936D958AA1744CA67332A600D8C719377273C7FB0029F27C75817746E1058DD196DE71B0E4302682DA21B4EC1BECA3CBDF690509573959D816CF5FA034CE01D6A4AC477E3BFEA75732678AEA6C0A5401C623DC225C7A9A7AE6A572F738387181913CC71B9379A5A2BBDC45773C6A1167FE756E13731F47226BC678331312B99428B07B2122B2B9DC86B01C5F090FF632FA83B598863C0B42623549CA831F66BDBBBB1D4747D56A97DCEF9C81766A3D90043C1A99CE5E81105E9113043342A539DE446A7C5F9C4B46A8CADEC388FBB8BCA527D90A56C649200CB2A7F968611934014F9A7B6FAF3015BF6494EF72FBA0C7BA40C499357ACC96562C65B9CA7C53231045E35771947172118EAA02CD95F7137C93E2159D9389607C3011A76363560A97DF950B0329258B0126C7BC10E4081CE46B7C7B0AF0752B038386E9AFA2D0A7543D85AB909376B618C0A2D33875D264B76941430E81C48832F43270160176ED5938492A06CC08392237CAA8487ABD3C83019000BB6671784109C7BC4C2A0362A5B5122E620ABA511C49CA42D75091B3B1ABAAD9B8162BC27F182AE310872E789CF05F6C949598C41C3B73A1A9CC0808E68F95C8AD8392F021F77C79618685DB2FB1D04A9A8ACB8441CCC764AA3B191736F5A24AE31C23428390C1C22C6A6052664DB63B94960A433584036C05E031A07823A03CA153015FB2665C77D8FCC529F21AFDE0D4F32CBFA399F2973D812F516C86B +sk = 38BBB649E7520A59AC57783E32A5022489365713CCE30171AB46AB219B7E81369AF44BAB6F5BADCF613E963938A0829ACE625BD8594ED3C0981C5963F68874AA87685599041C4C296B4CC181E57667D499B2F961F44773CA958193E97988D816D702078C0147E41390F503921F139384D75EFC91CD08544536B4C9C09BCC2914A807E090D98B5C07C1A4A0C16FF0EAB557E5CCC1871BA1A36FF66B1ACD113FACD6BD16053F22CC85634A3D56E564E30862AA1409D48AAF92643B62009F8E206C2C8BB7F357B9432A8474349C3E1679F1D154CFD4A373665A86C481B9C3163308CF3A1A265A6313D0068BA2181AE5E5A1114995005C8FB574C4A7DA80562953348A80BC23CD90C37A2D166EE4E895F2A429AFF3C9EEEB869EC9982D367C5809396987A2EFE93DFDA2CF45E774CC3541BFE655A7280AF9B7601FA5183AB62682465FDB273AB435355B84563047BC4C6204AEC310D4B91E8B849182C16A57605A6F5690D3804D8857379E11B324977F30B461954A17CB16C4DD93761224A47F4C680373C51DE251CB69A2C737CBB1F76D7278033AE86480C7776CC7CA02393F333B6CC00C200AE58922756D3664A30D7B262302672C27A7496746F8F56797726340C734473522FA880819D76A004A480F48B74F7C6EE1998741D39FEC12759670B4E8057AEDC67950B929E200526BA5A27E0BBB67570BAE100B77D525AF70B7B6143A7419A35273C14B492E1E42C5B5918A62F3C829A50C1FD8715B030CEC454C90C72E6509AB1936AE7490C6B62A6720A840AA714F7B6B0134335C75C44A421598B790631E2CA497E256BE08910B69C01997BCD20591D1967EF5EC5C035B0C1F19A01BC0103DE6CAFDA45DB70950CF551DA2442741EB7233B36396C124C6365A83B66D9CC896FF448F54194FA05267B8154895173075039143DCC58062CBBB1946A917ABB184788052920D1428C856BAFB3461A463627EC7430671CE75BC2ADC95622EB2925A582A15E487787389BCF14DFD84801A37BC39136CC1A49CAB7CB924772606D48D3941BCCD3221EB418B12A6342AB6C357F273795339BBC720439AA9CD5A478122B8B01769EDB013686C8E872A4E2C049A755A8F954614665C61D5D9AEC7D67CDDB779512A308BA3CFFD5C4BC642C091226667C40957C17B3C92BEA102143DEC663B6155464AC7A9559C533A647C5A106C38972A26BEAB45C2F04C974C9BB860BCA64615B6F0782305C81862ABC973D280088BAC791876D3172D4E340F26452F60009A49989BEC107B680B62CDC12751F9079ED07C28143A405A600A974230B20719B0953DA3C2DA574CE2C31786C77600646E25B3C305F6507D91084A836366C273D62C526E0630F9B483CAF335D6BBB5BCF4ADEB4143443A07055349CFB690948487F7795B67DC2E45430E7A5C9564CC84CAC0AD0832480AA844417446B9B086A493B7AA163B76A50F35B7384BD054147A8621674843C3040CE06EAEC68B6CE8A2C5B42390C76350E10DDDB35C9F4C4A1CC148BA08601F92B2FB12C9088922C3463139239A62E878E4DB61A3529A8FA7905A7A1AAF90216DAB5026469B27D4122AF5561BB91D111A721A78587EEA259A4C7F6B743574398E30A119DB0A138C9442FD3A7580E68EEC01077D31525465BABEF901806363A2D664EF8C1908A30491E336E27B0F8690AC71C30ADB145805A15FC654AB8982565EAA96FECB93A2EC7EBB697652965FC5AB837F6B7A20E224E4361977B71C694A88E5252F608CAC97E97DD7C80A5AD10D62681B57162269F7B8D812AF039226CE2A7930E43007C0B3EC6A4CDB3897EE85796D051CB053881E1B9706A572CCC75D0EF32F92610C40DB4553824F1A352FEFD979A310124B9456A9106367EC6A50DB6FE0B057FDBB00A46028C0D6A638BB7F2139CA6DF68F014C4E1E0B79670869353912B5D67EDD4B77C70C067AA76D174CCED6C7A901C65737082276188CFFE28BCFAA2604447E68D490C0F11CD22B8C351C2D63E7A01EE460BC408E174BC4A6CB023492C6EED42F5D85244EC883B1B49B8E3584F27835F21B6B2E6060E0671F289771D124168E196EDACC1ABA26CEC9E09FE7367F46893C2EA3677CAA3005E34E722608A3B64A3B987289952DD695A82DE89B9034390355C5E33546EB833F602CB9324C095BB4CF66C05FA0AB98D69BBDCFF155C3169F3DF2A575901724B678FB080B67F32240AB8F0198CB43176F6FFC93FA602748D591F0B2ACB9AA67A8D8B15C27140C320B0EE040E737077A8C9FD6A20DCB865FF51C41808757B0CA750C502A356B1C7D821F1BF804AE2B337819C5EA89542E079045C887BA6550E4F05693F5C7012424D37A17E2294669C0538CE69A1F1C1F121784E3C3537424BBC4D73CF1A685F03A24C4BA8FD603B328D2A07FA2B714DC1EED17693727732EC7BE2B02C0614CAF3D42B222061DDCD758A0674133E6CFC5362F855B717695ACDB971AAF16320690606C1C42238856D757B5D610BD64427F04C97ABE1BC6B0185116CBBB2DCA28B5D7A9AEE205DBD37E92BB36311C8936D958AA1744CA67332A600D8C719377273C7FB0029F27C75817746E1058DD196DE71B0E4302682DA21B4EC1BECA3CBDF690509573959D816CF5FA034CE01D6A4AC477E3BFEA75732678AEA6C0A5401C623DC225C7A9A7AE6A572F738387181913CC71B9379A5A2BBDC45773C6A1167FE756E13731F47226BC678331312B99428B07B2122B2B9DC86B01C5F090FF632FA83B598863C0B42623549CA831F66BDBBBB1D4747D56A97DCEF9C81766A3D90043C1A99CE5E81105E9113043342A539DE446A7C5F9C4B46A8CADEC388FBB8BCA527D90A56C649200CB2A7F968611934014F9A7B6FAF3015BF6494EF72FBA0C7BA40C499357ACC96562C65B9CA7C53231045E35771947172118EAA02CD95F7137C93E2159D9389607C3011A76363560A97DF950B0329258B0126C7BC10E4081CE46B7C7B0AF0752B038386E9AFA2D0A7543D85AB909376B618C0A2D33875D264B76941430E81C48832F43270160176ED5938492A06CC08392237CAA8487ABD3C83019000BB6671784109C7BC4C2A0362A5B5122E620ABA511C49CA42D75091B3B1ABAAD9B8162BC27F182AE310872E789CF05F6C949598C41C3B73A1A9CC0808E68F95C8AD8392F021F77C79618685DB2FB1D04A9A8ACB8441CCC764AA3B191736F5A24AE31C23428390C1C22C6A6052664DB63B94960A433584036C05E031A07823A03CA153015FB2665C77D8FCC529F21AFDE0D4F32CBFA399F2973D812F516C86B0F353D6A29813D354471EB8B4C38DF93939EB3B1DB80DDD1CDD6558A9F2687A3DAD700CFD0BFC439237A0CDB3F7D6C76699AAD545D0ACD755F14F7CB3B30096C +encap_coins = 2BEE79D35D1BD40005203028B58B095DDFF33A4806A2BA264F76B6B06AF6449C +ct = 87E52A8AEDE00EEC6689B803F7BFA0F3592E5EC2E083863FC8B5E2559D1BFE49C077998BBA9808D9A7D5D2C0BB55C2B6A063A3D049482A9911FE8AF21BFEBB72992337C0A35AD4CEFC4D15C59A12F0CA0D1A920995428D7D7C74B9633E41443A3ED979F2F17C89CCB35573CDC33EA998715C57DFAFC22C8B739818F7DA1315952791E7C1D9C98AA0632F5119401277187485DBD634CF88582F3E27CBE973FFA338BEF925403720B0E1DC5BB9D5378580696F62B3ED3E3DE2830BFE2DB400115F3190F6B8E73CD0293F75A8EDAA8FD142A36681E0A554367C16E941ECDAEA994F3A5D018C5BB58482846122481B0FB822AC4D4ED7A5B0CAAD4FA3DBE603BB1E4C126104ED56A07EB91DF1326EFCFFAD6A3E102296E922AC27B647C5FAB5424573555360CA19C9DF7AB1AB43C19A1151C2F53ED9032BCBD971BA6F4877BEC79937C68098B6DC530683A7EFB6793EDDC5BD7FDD614C63DC9707A9DF105B54B6174C4E2C13860E13A6E9DE1FEB471ECD9AA3D55F50E7E3806BE98CAE3A565BDCD4C1F4F91A98A0C3D75084A92BD8BED01457F66CFAC46C4BBF2CFE527756C3DF21623E8EA287A8FC79EE6A1BCF73BF58D8E5CD58873E89F66F5DF99FD8C25664B1C15978F9ACDCF02F2FD3C93E8D3FFD2A76CC330EED44928C2B1B08541529B43C618B8BCEB13FBB07AA80FFA71C976E012813A197DB54B2E3F5A564A229B62B01F98044535363DA50B88080386450F86E049C949D0F3A55AD2F4F69D081121D8B26329F1144E730F6BAF0BBEFD499EC8013D958213A1E7EA94CA0E3DCC06D733DABBAF2BD0834C530CA7D9DA0F602DABA03E976C502E05191F7421C7E452B05D1E20465EA9B717C5309ABA3D33033CF7DB2AD95AF56159E425D35B097B13F0E043BA43E23FACF7D5F6D6C5A1033ABF353710677E5629AAE0111A0A3F101F5FF10D763CD49122829199A84DCA84295F0B1B61B66FB83EDF3A51F0CA2730EBBDA2DB0C111612C07A7941BFD4BF5527BA0DDB44DF9E487E66341191A993FDC6781F6944D553F4F287AB17D55DD75251E57A6341CB6C7D83B1B1B0EAA491CBDCDEF2883E4918029EE4C7B7F2E19C8C213BBC66A184514B9C830B8930180EE72CDE72CE7A8E6C2742B376503660FA8B1F59310C87229F2A4579414D07B80E25BC8DE32F32776C4395390ABB0F758CFC5A5EF364279A6B6896AC95BE0AFC4D85CC2EEF3E99495ED5097970E8A237B40ABF89ADED64A6C0D468761A37816B3D4AF903E2EE0BAABFFE13B93F6B51B5B5CEFBA42995650519A9DE024240958A18181E8D2928413507918AF68DB3972FB2F7112DFF7E8E902DAAC9F6DF1CC2AA8F1FFFFBE5E656E1594B54D1393CADDC6AE059E48EB6472D4B979C4D9EE80D19F07B3B67281B36D010808F65370987A32854A540CA8AF14B61C6AC21DBE6C5025AF6745D13636366574D73D6200F6FFDDC13F216BF88507A1C5B53D01C90FFE181B3292D72E606F44855FA785C1FE6F15D511822333CE5C5011B56F49644B4A9ED8B7555490F9 +ss = 586A425A78D2DC217638D3088949F1A526F611784A01E415BCD29A41D695EAA6 + +count = 75 +keypair_coins = 6084A235F79DD093EF6D185B54E69DF33DACEE73A9BF2F379004421A10E3A79D2A96A70166E26D17A7319E8A5E12E38CA01A98D8A5813049A5BDD355A7D71347 +pk = 35A0C8EA287462D8CF8841CDC9016796500E61E89EFF672E87C667F453C8CCD148B94C9A9A3765649CCC6E1C05E5350218D091783B6C7E4958A0807E73E9839992C8C36A87891B7CE5D7122E38B5CDD745FEB1058FC2827B882DF77CB564323746855392247B054527EE862ABC91A557C431E55B81D23B1C1A94992EF540E07338FA944D24B17ED4E693EEB8224A0C5307202457C8033AA4651B2B30F85A9BD8070D1B11675FE240A1009DACFAB21D50036426A6DC9C3DFC05CD1612BA91DA51BD5A0F7EF9B235F1B3B2641747AB8A380B42C060357BF259548CB80788CB41DA4C7D3C4B9401925588920DF255167240F6B092C1329799F0039B74CBD549B2C053A71D4641071A3A95A460B2B3A8ADA727193267DE555E6CE87986AC06E647C4B7967CDBE5083C4B99A1B44B5DF58959C48BEABA0818608FD4046EA0C09A28416C6A97A1066C0650CA619D14A056252D38539F1C2676B69CC53502487389648FE596783BAAD0D7627CC6AB2DA5B6788410B67285841A323E04D037F25E103B38B07672248186C969B04661AC6B2753C5429EEDA389599B78E84608DEA89556A9510627B29E13B1713A1442158561DB8F435BBD6234A420618985DC4F71F0A5F15762FA16084F178E0E76BFC9EC5C35FB52E52301E6809CBB287D42B7591828AFE605CFCC93C337BAB78B55237B075A8BF08C48C15087E82600655234FA99F6987DA7904EF50A1599867D56760AE1D70006925ADE67157508289F137DEF9B9714F4CB72A017EE6A6325F9418F3A0EA3A8762C55987AB406DD9A6D248A33EAF264774AAFF6F00607F37BC20041D3A170E07407792A43C5407FB3622CCB065B74BC1A54F86AF9F7246D288FEE725A6FD85E82477483F778D5388728C4565467A9BA3216D92089BC1C742A20B03BB526B73573CDC91AA8E085F1ECCD1866280E791BD1E43D4843A440E050E2967DAAE26686CC2D32F512332CAC82095AB0005133023E75C9C92B0388BC8B2822A82F93FC3520972E2E0A062A388931092BFA8758F251895C641186D1B40F6A332DF3088BB24381DA133CE40D3461A7D87A93E702472E49AD91CC013C936B02A96C4CE14C2B23AC79869C6D139C8D85B58DA27C6EB4C4250BC3DDAA56DBBBBFFAF452C09074E013A3C7599CD5B8A876076523C6B0AEFC6A503BCEE0FA76407B779DB92453F7AAA4E58401CBC6F3718A3352013E1383B4222572118878C99289B91B02D929DBA06C6DEB6F4C2B0459F86D04FC8D287B6A676B17E45997027568BF7BCCA05C3D394C1557873711174242CA50CFA30BB3D715D1400807CC5FF1049CE720BE3C360FEBCCB61DD7244F4352B655A517485AB13B413983CC089749AC7144312966B2C67AD50096BC176142858881F09E3A075F8FA6BF638A13AF572BA026A172B23317A01A999C8C1EF478422CBFA9802F98F2856BD6A11F8584C532807771C19C411A2900C5A57C9B8E44B4C07B3BE3477BAA738AB2C407653A309D7A82CFC6B86A1B59AD1251E008598E453E04E3306C1877DC703869DA25A9B91FEC80AAF4F30B4D0A83E2DAAAC73990F05A9002D6ADA0409450454291E37112A9AD97147CC89999DC89A30C809757933C5D0356F329BFA3823D34197B7D9E60E307BBABD9B3E8272A0EF1B3333269A7AF6A5BB8740BFA +sk = AF361347809757C2AE0C4A60393C90222C394CF136E95517552721FF136DCC234D64715A1AB43D15708187F89A6830791E0062CD43253EE486AC54179D320FA6A8BAC4D0C07B7158A1ECCFE52C4847403849982D73288877D04EAAD37D392AA487597F80F19AF7444E5A82CFBE51609AE515C1B320B6C75AEFC121D5E2904A0185654A418E5C7A379B41838ACE149B45C5A4040DD239ADA846102A6BBC811EBED4710B2393ECC4BB8C6254DC815D2667831F962887A74EB883A5A8642E0B427450D01321246A8797B7BE1211EAF64B0C706EEDFA17CBA2B010626112AB6B2B2B928DF38CCBD9B639B9C6AD090E92DA98B5C9914549BEB6A9B5505579A56943D210722BF590D63C1ED56534A96552005226C34CC1AC32572D2AC0823BCE348086096525188088DF229536BAC34A1C95083309A0971F31D975DE0598E4E009D24661B2A79DFAE85343B94FB1BC171493AD77D767E0814837348616205652EB4F98838CE536691DE8C3AF0A4970EB0C3600B4605841BCB0884E08BCA3198B04B2AFA6F575229C56462B9516026D32D2CE33A4B1ADD3B411371EA6516765F457613CCB50F94AB9395F6FBC94395A6C9C104CE3B79171A83A49B22ADD3A915086B804C3B42301BC1F14630EE3217F059AEF485C019A4248B4A78A516D75919EB2B15BB1E5A34CB6B470CA7A797BA1B5193CB4565497F98BFE30A7578044867897C332687D925C8BAB05D0C35693F557F541B571D6AB7E4A752B80267B0329D7558FE4BBC54C8612AA95C03F81641A129B1793160DBA78C4E0269E9361087328A73C67C0044217A25C2E05B64A1B8EBEC972606BC220B1A456D8BA86A76AC4A3C06429CFB6035EA50549DB887A5F6170EA282BCC295A2EF000F571038FA97B6BD98FE0399ECE3755D4B55E16261F7FAB678C394C83676CB9F080BCC915C8B1C67DC998D7097074249585E31C5B30BD0250ABC570531DB43F546C2E05983A7B5219127809987343CF722FC38525B2ECAAD2CA703679CBB7500420F83960D7505BB7B7B59A8B6F0C876C7A53D893A10468A516FA7A6A08C04D3259AD003DB768559E173DF06A08793B10E5A1A46145B6F0FBB230CA504424B4E9617CB3F509993567B4CB94CB2CB39811BC1EAB31B5F5691FF4108E5A6EAA9B15DC2AA45FC4AD26B9CA007A7C2A680ACEFA88F12790ABEC7E3DA1C13A355C1C669117070A7E1976F6859921E273F53632B4144B58E0A74207100D2CADE0C8A0410814D40A4234843A44978D0D4A173BE52434760423235F5D7C8E1F56C8181487BBA930CC9272ACD524EB6C9D71D753FE62B0E9BA33A478B7E82B36D9690607550ACA261085A08725281B02E531432B35398B7ED1355B8172776926BFE41880DF90AF6951A58981C708724DEBA6B6C2BB8AF1C0009C71A0B82AC0D14CB0910A8EC3988251DC9E93F17E067608115C85BB6C47D33A2A9359A35BEB47C3A04AB65537F59BC1EBACBED4B97855F753A954929B6449A4DB7D2098CDFC04008873004BC535BD5C74DD49247419601513C4E8125731307BC858845896A67D33902AFA4B58B50BE969B947851BBD791D66887CC6E92E19A2B92BA6BCC2825C4239AB2894B2467547FF3A63BEF65E35A0C8EA287462D8CF8841CDC9016796500E61E89EFF672E87C667F453C8CCD148B94C9A9A3765649CCC6E1C05E5350218D091783B6C7E4958A0807E73E9839992C8C36A87891B7CE5D7122E38B5CDD745FEB1058FC2827B882DF77CB564323746855392247B054527EE862ABC91A557C431E55B81D23B1C1A94992EF540E07338FA944D24B17ED4E693EEB8224A0C5307202457C8033AA4651B2B30F85A9BD8070D1B11675FE240A1009DACFAB21D50036426A6DC9C3DFC05CD1612BA91DA51BD5A0F7EF9B235F1B3B2641747AB8A380B42C060357BF259548CB80788CB41DA4C7D3C4B9401925588920DF255167240F6B092C1329799F0039B74CBD549B2C053A71D4641071A3A95A460B2B3A8ADA727193267DE555E6CE87986AC06E647C4B7967CDBE5083C4B99A1B44B5DF58959C48BEABA0818608FD4046EA0C09A28416C6A97A1066C0650CA619D14A056252D38539F1C2676B69CC53502487389648FE596783BAAD0D7627CC6AB2DA5B6788410B67285841A323E04D037F25E103B38B07672248186C969B04661AC6B2753C5429EEDA389599B78E84608DEA89556A9510627B29E13B1713A1442158561DB8F435BBD6234A420618985DC4F71F0A5F15762FA16084F178E0E76BFC9EC5C35FB52E52301E6809CBB287D42B7591828AFE605CFCC93C337BAB78B55237B075A8BF08C48C15087E82600655234FA99F6987DA7904EF50A1599867D56760AE1D70006925ADE67157508289F137DEF9B9714F4CB72A017EE6A6325F9418F3A0EA3A8762C55987AB406DD9A6D248A33EAF264774AAFF6F00607F37BC20041D3A170E07407792A43C5407FB3622CCB065B74BC1A54F86AF9F7246D288FEE725A6FD85E82477483F778D5388728C4565467A9BA3216D92089BC1C742A20B03BB526B73573CDC91AA8E085F1ECCD1866280E791BD1E43D4843A440E050E2967DAAE26686CC2D32F512332CAC82095AB0005133023E75C9C92B0388BC8B2822A82F93FC3520972E2E0A062A388931092BFA8758F251895C641186D1B40F6A332DF3088BB24381DA133CE40D3461A7D87A93E702472E49AD91CC013C936B02A96C4CE14C2B23AC79869C6D139C8D85B58DA27C6EB4C4250BC3DDAA56DBBBBFFAF452C09074E013A3C7599CD5B8A876076523C6B0AEFC6A503BCEE0FA76407B779DB92453F7AAA4E58401CBC6F3718A3352013E1383B4222572118878C99289B91B02D929DBA06C6DEB6F4C2B0459F86D04FC8D287B6A676B17E45997027568BF7BCCA05C3D394C1557873711174242CA50CFA30BB3D715D1400807CC5FF1049CE720BE3C360FEBCCB61DD7244F4352B655A517485AB13B413983CC089749AC7144312966B2C67AD50096BC176142858881F09E3A075F8FA6BF638A13AF572BA026A172B23317A01A999C8C1EF478422CBFA9802F98F2856BD6A11F8584C532807771C19C411A2900C5A57C9B8E44B4C07B3BE3477BAA738AB2C407653A309D7A82CFC6B86A1B59AD1251E008598E453E04E3306C1877DC703869DA25A9B91FEC80AAF4F30B4D0A83E2DAAAC73990F05A9002D6ADA0409450454291E37112A9AD97147CC89999DC89A30C809757933C5D0356F329BFA3823D34197B7D9E60E307BBABD9B3E8272A0EF1B3333269A7AF6A5BB8740BFA12E89C47142418C26396EF0174C02F69DC00022D56494D31AF935490EDEE63852A96A70166E26D17A7319E8A5E12E38CA01A98D8A5813049A5BDD355A7D71347 +encap_coins = A8FDB315F75AA1E656CAD005010B032BCE1DCDD7CFF8C938A5314ED240F480EA +ct = 27A22F78BEDFFBD2E9E2C8B99B3E4C3D950F6519EB7B1B99FAB97172ECD6D889488D28CBB78F239D6989165FB46D91249F1EBFA31919F0039D9F0A3591509E8A9BE4D0E4992CD720A6D929DA2E8A26B3756C950B03806123B1B1039975E91E4C756C6C97A14486237B534EFB34F59D7463012283727798565E2D084F3721697CB59ED8385DEF45B7D9D951A673DA94C4AC2CE68C22EC25F1A4BECE95C2B34DA932127C408E991D41E60FA578CB2DDF50614B8C59200968C42C03641D7B264F506E4934E6172BBD50F3741F974270E62483A697E93EB113C64BAEDEE06BC8E570FAEA56AB5152D1F4FD815CADCA12363D0234AD2C4E74F9BF4DFFB55CCCDE9CA989DD8E7E6B2EF79219BCA2D0E53ACCD1E8BCB90C7F62C0B545AB7DB4FF3AB27E4AF010B7E37720A7CAF7C9E3BA3F2B2B9F9827AB5D86730ABB32EDD2E7A2CD43BEC5344DC7DC08A6AD7439F0BD94B6F0AB695C2709439255FB0AB7A0ECD253CD01679151F193634B5A683E8F4DC44A1034AB39307C4E82439BFDDF293FEDC59B3FB6072CD86069159A5FEDBCE0B18B4A5B2AF62E5EA177CEA37868E85C67151926B9E74AD5F790C9190F10F1B95D98FD3B11D387C5F5A468FBB63C4910B43D8BD4933F164BE4EB73ED3ADCD6CDD4B41A8905CD95454D26871717F66A6209C2E385C839814378AC217E7EF4C5305CF1E8C69C7270AB6C3523D82DD2738D6AD418745449C3AFE9B8466F17925B9C6708529C55F4FC7518FCF7F78BCDDC2AB1AA65020C2217018150167C909D640CC00773DCAD1706BBF671F15353D11796D8C36C6921D3003D0ED9C5F9F24BA0AC16D0971DE5C835E176EAC03AD827A9077CBEAE8A8CCFCD8DBA2B569F20086B4016DB989CAF8EEAC0FB08C90E7626B02D688EE0E5A89C82537B5B7CCB73DB5A76143FA99261F74FDD2666F361B17A2A25B6A99372223F88E3AE6EFF6335C6E8CBBD8682F64D1019FA97394E4768D9462A81600F1D94E17E1DFDC65CDC4F0AF465C7F078EDEF6CFD2AEF96E82C3D1A616B0F5603D43CD493FCFF8916BA48CF211EFD1B4F14701940787AB7F9FE7ADE9C43F1F9436F9F72D67F8CF207D3DF6E15556E5E87AD67EBC19692345CE79DEE5C964DFF28A11DC75FAE30DDA39182DA09654C470B8BC0C81139635096C5BCD1A37D6E01CC858E501F5F398A50894F2E9C750A09CB5880D21736421B5D05C75EA40DF57FED7A58C97046B27C6A2C1DBEEED1C36B2D7391412F8FE28EB50898A393784520E454A5FB4E05F8C67E14F5861DD7A58DC9C7F760FCE10C60973D5B8CBA138E705930DE1AB7FC1B6BBE2897BE6C82F2C23A6F9CB3E072069D801BE5BC58988EE6ADD2C18414F49D68564F00810F1D98CC50FBCDE8C0354F47E5258105D9149DB987F0D14EC2DD4972FCEC78F821AD57810615096C773A3FBF45F6A414DDE765417A105E842682327527BB249D85DF3540721CEDCDFDC4E5D6432A99FCA4E09EEA689E2896C5F0C2EB14317CD37786063847C7F92853084931E6D85B27409C2D012F +ss = 542C773F515D31AF4E937259725A9EB45B14251BE68F0685261EFEAB78900A72 + +count = 76 +keypair_coins = ACD1C0217FAD5CAA4235544DD9DE153AB1880CCF4C76F16F236FAE4E4BFDA04CCD2DD7A1BE89575BE8C14529BDE4D832CC005DEA955065C08B3185B215DA3A2D +pk = E4749BCD8577D50A102352B869402EFDE59F5FB54BBEE919E7D4A8BB8CC40FB8C7240401113152BA727CECFC8E4B817C5D537DF050902BD03DF866317006A2AEF59CAC269813A47FD337A0C5B694F4B080F100089255614634A2B0BB1ECBCC3F1D84CDFB3054FA749736E531C2E673716079CF45C89B444B7D821D892C7EC39A74D39B815C2B9981CA47F5E56840341FF9D23FC877285F9B90FC78BEA1B9C5C647AC52D066AD7B8CA2AA01E0729FA22C39D9C3C6CD833C6AAC061AAB1C1EE6819D2A245997B8580A9E1630112CC6B62C4952215A3281111675F25A10CA0C32BC68C7BC920BFBC7BCD82EDFE130B0434AFA29B2B9D90AC3F1143B5664E5E51984B52D976439794507D92CB256A1520078972B843FF3DBC6736602F68B289E0850EE845E49586C889CCDC104CBF13470F6F6C0E6766007E5C3A1348166933A45A1A62E0B749EE14A38E11A094BAE60A38C84079D81AA655782138671A0FA186A727457D351A8A45B6FE05369F7B158DE844E31117DDC47AF9FE52075C6ACD5F93A31C38EC7F608FF9096C8562E0271A35FA7265A56B24BF31C6A727376D1AB3F600573342E60884F41D355B2336E464B94554B7C108614C3394FBD561A2E74BA7045C0D74032877901E4F8A95C41CE9FC72013C51FA93B5C0B3C3B0A8C90CE0960F510A9F6A453B8B0012F7C2430350B8A4B6143AB5ADC7AAA6F3533E230C3062B7CAA33B1E9A3BFDA7BBFFEF8341AD0A33AB272BADA717A4790F4C99CF430BF114B62854810EAB7AF582A2EA327A599C490E25795CC5C42219771391B33DF4C7FC01524C4C520EB4559C2EA8C38AB5CFE27035C756248662C1E969EF478A2D2419ED9DA7125EC32B0557EDB5B77E0DAB221544E5F7A57A2941B89B803ED1C7D8DE65F64A29D8E7BC2020B723D391987F83DB0BC35E96AAE7B2772B37159A3257EAD277532119CF55959FBEC482169C5391A9409877C79255CBD1C8D2B8352CBA074BC4714DEB09F9CD81624D2782DE91EFBC30882C45631E96E35C9B53F77CC0D268722BA5EB858A1DE719A88EC240DA229CD7766B9A237641C1277C006A6672BF61AB5DAB4C223B7381FD3C16704CF7920B2F11210C969B6B46A152B72598DE4AAC1665D72A45BF51370DE61559F83081DCB6AA49339E489968C80498550AFC467C8AAF0C6C1B9085699B801C75EACC3142BE38DE6F6A64AD6708C426EACC13B09D8BEA819BDC200258D31A8D1F308D0A7470DD35161379191576A03B81D70EC58565CA7C4A6BB333338D8113D70F5BEF45B6835917E17C2945A06CBB7F2225675252F351593B06A6DB504B6E67C6E88763FB06879187C5053029724B3477281CC5C5294B36B64F12A08084EEA098489D5CAD338A0CFA61231268BB866C2C524C71BD6A467C845AC7A4EAC579049734970859A2EA753C6B93EF01532B130A103C6244A17870B75023E0014E6D8433AE5CD2B145BFE253A8BBA300B6465FCE277E2FABE36D6C8112887CB0A6DAEA4A54E258CF89071E407594DE1BF1F4AA2BEB50263DC5D5FC729B632957375B5CE6373D9B93211A66A29736A6ED616EF8538E95C45BF595B2EB743D79436D6385BAB74C80D88C1A1F4022E6C3BB3D2294C474C2C554F3BE4D7FAE86455763B97EC8FDBE9640219B35FC36033966A3525D485F1 +sk = 31CB44A14C3FF840758055BF2AFABAD14A723C048D4D20C5908BB781844D574A96A0807C59D5192548A0089396A78B953AA52677B9A111CB012954B674571C5D0C7C5E6488D498290F7665F4F32DBA7228ADE2A724413798EC32619901215663B2C26360612558070BD06261BBAB86B4F96056A498BF37B1B84238C5099EC8F1AF4251C0862B861F334EEE85AF8D364A54F6BAD0E44A23A0577933CA8482889A955086EA3A2C94B057C1C20D540CD6D2976126854AC123CD386A855CAA385927318825494861079AC84606AC0F1810EB78A8398740BE69CFA1777C61A5CC1D758AE28C072D6087C379A567648558AC8A1883734C64361DB33CDD156FD371A2ABE534B162C6E336143B944DC2309AAC106525D6586793A2B3420358185FC787C2CEE3875E3425BE5627C1D49313413EE498B17E8C295908B718B3C4A6E03024D77F1EC37EAEB7462E09C683CB9B272431EF0ABBD0422AE2569FC37902AB90BD2C236F4DA66D78301A61765A77E43ACE81102C7355749C1463B55F10E26727086D73A1800924C6B0EAB6EC905D5B01ADC538C9EEC7A25989B85F24B1F68B9A22637613E9ACF609A67CB20B38BAB1A8D81CBD22A5EA8C7587A13BF8EB8A37E5949084C26B4433741A31C502A4C412535FC6A1C5000057C65103027F78F81DDFC4A8843C59F8563BEBDA15DA543BE2146A3EB7B521700958BB2A5064923236193D981BD1E2920D00B1CFC504E32495DBB116C5BB7AA21B6CEC5C9FC0B1AB73330544E7AF5BB1CEB7C159E3509938D0332CF51ADD245606617DCEC688F117BFEDC27DC5B8B4884446861B592B720B53FB23CF08513F66C3B51833E51B9A63E297054A8C03F8BAA257C64C2C8A265A8A92052C41146BDB3A32CE0B7196AA33564806DAC33AC05A20178C2A0CB04000D484F0325C9D16956DA0AF88F68BB72B7BC6B122A486CC1EB01BD3027AA316C6D7C1AE7D8B9A747443C5D7237989A93ED939D905832E76AFAE4172D5F70589E54F7B5CBABB536E5F316B3D38911513B400AD83F7B2A3C72A6C09EA3B4F68129ED285FB99442FE61237D61756A2AD78B7790EE69748B79E42EBBBD6B9B0D803A3EB77477609AB2CEA5920128356C369878855126C22F1AB66A3A4C202892C8863B609F7926175CF1E3967EA93B7ADE7A8E6779672023DD5D81BD4D9345AF36A38DB17E96B8D85B7C0BEB586AEFC9FD9EBC585F071C1B9C34FA2283A60884A0CC5EA210887AA677D24192DB582F05117FA189C868A3CFFE8B2FB584686EB3D009733E1D86C07D6A9893C7E9410B4CA99A4A880B48053878A45340D0056031068A63113BE4B51A630016875541E099935EA92B2668AE84C5A183CBBFED619691038973CC07B72ADB803CBE26986C827AC75428CF183CD5FE7C9C719378438058F470B62FA977DD658F219983F97B517BB1AED01A478A18DBB89AC1B916419A3B25F388C276C190B866356EC84C33B29022286C08A34D26948C59341A789CFA168ADC0C7A73DB36A72EC6C2C688C06AA3EB1FBB25B7B828CC3719C7B2473719F4E2B5C4AB8A4FC172A132439E0E3AF22A1BEAE17BA4CF39A155925C62A4C9CA76436496646906630B9349A335A4852C01B018F77DA15E4749BCD8577D50A102352B869402EFDE59F5FB54BBEE919E7D4A8BB8CC40FB8C7240401113152BA727CECFC8E4B817C5D537DF050902BD03DF866317006A2AEF59CAC269813A47FD337A0C5B694F4B080F100089255614634A2B0BB1ECBCC3F1D84CDFB3054FA749736E531C2E673716079CF45C89B444B7D821D892C7EC39A74D39B815C2B9981CA47F5E56840341FF9D23FC877285F9B90FC78BEA1B9C5C647AC52D066AD7B8CA2AA01E0729FA22C39D9C3C6CD833C6AAC061AAB1C1EE6819D2A245997B8580A9E1630112CC6B62C4952215A3281111675F25A10CA0C32BC68C7BC920BFBC7BCD82EDFE130B0434AFA29B2B9D90AC3F1143B5664E5E51984B52D976439794507D92CB256A1520078972B843FF3DBC6736602F68B289E0850EE845E49586C889CCDC104CBF13470F6F6C0E6766007E5C3A1348166933A45A1A62E0B749EE14A38E11A094BAE60A38C84079D81AA655782138671A0FA186A727457D351A8A45B6FE05369F7B158DE844E31117DDC47AF9FE52075C6ACD5F93A31C38EC7F608FF9096C8562E0271A35FA7265A56B24BF31C6A727376D1AB3F600573342E60884F41D355B2336E464B94554B7C108614C3394FBD561A2E74BA7045C0D74032877901E4F8A95C41CE9FC72013C51FA93B5C0B3C3B0A8C90CE0960F510A9F6A453B8B0012F7C2430350B8A4B6143AB5ADC7AAA6F3533E230C3062B7CAA33B1E9A3BFDA7BBFFEF8341AD0A33AB272BADA717A4790F4C99CF430BF114B62854810EAB7AF582A2EA327A599C490E25795CC5C42219771391B33DF4C7FC01524C4C520EB4559C2EA8C38AB5CFE27035C756248662C1E969EF478A2D2419ED9DA7125EC32B0557EDB5B77E0DAB221544E5F7A57A2941B89B803ED1C7D8DE65F64A29D8E7BC2020B723D391987F83DB0BC35E96AAE7B2772B37159A3257EAD277532119CF55959FBEC482169C5391A9409877C79255CBD1C8D2B8352CBA074BC4714DEB09F9CD81624D2782DE91EFBC30882C45631E96E35C9B53F77CC0D268722BA5EB858A1DE719A88EC240DA229CD7766B9A237641C1277C006A6672BF61AB5DAB4C223B7381FD3C16704CF7920B2F11210C969B6B46A152B72598DE4AAC1665D72A45BF51370DE61559F83081DCB6AA49339E489968C80498550AFC467C8AAF0C6C1B9085699B801C75EACC3142BE38DE6F6A64AD6708C426EACC13B09D8BEA819BDC200258D31A8D1F308D0A7470DD35161379191576A03B81D70EC58565CA7C4A6BB333338D8113D70F5BEF45B6835917E17C2945A06CBB7F2225675252F351593B06A6DB504B6E67C6E88763FB06879187C5053029724B3477281CC5C5294B36B64F12A08084EEA098489D5CAD338A0CFA61231268BB866C2C524C71BD6A467C845AC7A4EAC579049734970859A2EA753C6B93EF01532B130A103C6244A17870B75023E0014E6D8433AE5CD2B145BFE253A8BBA300B6465FCE277E2FABE36D6C8112887CB0A6DAEA4A54E258CF89071E407594DE1BF1F4AA2BEB50263DC5D5FC729B632957375B5CE6373D9B93211A66A29736A6ED616EF8538E95C45BF595B2EB743D79436D6385BAB74C80D88C1A1F4022E6C3BB3D2294C474C2C554F3BE4D7FAE86455763B97EC8FDBE9640219B35FC36033966A3525D485F12FAC52CA60594E514333EAD02CB1BFA5CD1D9ECDA4A0B25CCDFC47AD3F632A85CD2DD7A1BE89575BE8C14529BDE4D832CC005DEA955065C08B3185B215DA3A2D +encap_coins = 794B565FE52DB74E9C19E9364EE545D7CDA5A67F3850D318C3812691356E5520 +ct = F9473E5F3D507F8C5B6DA9D3F4CE753D6E0B53D517A4C2B8A4F6A0C5AC5B07E7E680E553546281291113654264615E4618E7E9E3B4DBBABB7BA43ADA670036034C612649593EB537DEF2D696D8710075F2FF9B3D7607A2F51EE06FDC6E923FB013DFFDDA6852BFB9F13177E755ADEEB574EC0689F426825ABE8313BC4A561E9D82FA2F8F33128F2519884FBEAF05DF17BF7CB87946AE524B41612D7475F473AA0C6E7948190511002B893D75B2800E610D3ECB685A0803DEB8A2C9F8C4B66FAF020F4E08523443C1945AFA0EA6C35CAF55D5D91965E1CB096EA7234D26596C4255195036DB72415B1FD6A1929A6C5737A4C7CB52DC24A20DE4F099F09A99F36906245D3E735146F31216FE1E373F794728B1F5FB0D7F8C9DDDA1CC81C7C8BD3BBC3B3EBD2430B8697F6C12770ADB52BA0D37A583966FAFD668B62FBE5327FCB7694A39CFBA43A65B6A489A9A849EC66F507DBE3829C43886C1C0ADF1DD3387A8CA8087F49791622FF06773A7D10424097ACD7174BA446E3B1F59CB9707B1C200EB213AF88E07ACFB28F90670F2A755D9BB7E0C92B44256A1AE9B7AD2E62B25218B478CC7CB1EF03BB17CDB23AD33AC7AEB19025AF6504D95DB1CBB53CD5B19723B9D56C786DC45703A938559FA597A4B9ABFA20B73735375F5C687C4B315107B108244594F67CC6B7AF6948E721AA2FE5891DF2AA6800FFB9DC74EA155409044DC2F5ED4D94B199D3B37FD726B8C5879352268BAD048664394E51B5AE8397E5DA14A24CD119EB5E7CC6C4C0A207E28AAE2A00900EF447F16E35FF786583EFDDCEB392074F0060614A0ADD60F9A4CCA0CFDDCC2D279E0489F6419CD4B302B0B383ACAFF3B83A5175BD2AF4E91417FD299D7B45B015E657EE9E804E31594A068AD9FA5627A4C2E16E145770C2BF1DAE3CD2532F5982A34F6F251B65D514B9BCD7248B75BCF0A83254EC01D364D021AEFF9CB5F25D606A1830477A4AD78224F7B00307A628AAD0C21397CD661630338AC9D6B392F71E1FD6356FCE6E9DFED863DD52C23C06482301ADDD1725C7836D7E2B850655C427269805A0F5741996669F93122F1A400029CD10ECB096A8E6C6113D89260BFF3B29945ED2AFE46970CF9C4B5E71E845D61901371C12CEFA14AC6D6F77A029782AA8FC461AE1CB55967647DF0B5ABEE096D8C891C5A9CAEBC1A8407824246EF05132B558F56F21ACCD4D6068BBDC45442326AB70E52B067F2B5CF36725CF8A92EF906406E016E174328F3CF068D581F6E155CE0CDCDFF7679AA57826ABB6A038471CD77868F33B64FAB032AF194D5C2EB89091AD4B44AEDDE55F0CEDDC3C22A0B1C7B08461957C1053D817E576C7F87CEA920AC3B4BF31E08E5A7B9A8F72BAD9B3724E7288F4E73F704BF4897BD5DF859FBA7C57C812953103DD4FF11AE8212B3224A96D0B6C4A71B53733CF657BCA452E019D1DD769BF1ACF7E2282EBC3A4A5CA1A1B5B931173EB31160C1748C7449F7A86A3407D27354D1E5D46B31CF7523514B6CC447569E0C8ECB00A446 +ss = 32B13A9EE75C0A5EA2DB0B9BB0D21F169508BCB2DE4DA85B7F887D34EC63F1AF + +count = 77 +keypair_coins = 241191401A63AFA750F05662E354DDDBC683C776CE3222BEB83E3CF913D7ED7C9508257A83CCFFBD0677795070695CD40D7B7F39A891D25E7E208BB9D65AF538 +pk = E26411E0CB6648D36C6236468793848AA4B7F4510377E0A24BDCCB712BC98CB21CEABC08101328D3D032CFE9C82D21372924C69AB5A402E9B3D88C87E9BC5C90335E5AC231A1B87EA3C2527B82445D7C8596B10A609616E4DA431C9593B91A1AA21A2E436A359A7A5901902A6B516D562363BF95890501AF4C5946626ACE3F276AF8966709CBB9B666B9842102F3077978E4872307AC65EA11002CBE4DD0BB83677419B89C9E0C9847FA6441C86B8B601663E40357831D1B3C21B4A8985ED50E546C2917F332D4ACB59BD64D9BE88EFB981362458B8D868DA7EC516EA9C807A29C5D51385781302072C1F3295DA2559003D4265CB330F43AC5B774562C182BE83636FA034BDBC3CB25AB6C8C21C69B873329321533A788287A40C1659F457C5E6E15456DA54A7FDB18C8BA246447606F2AA340A48B4FC667D7E67EFEC47910E05C3DA4463B75359668821711530835357B6A8EC62A3E7817C508C79754063F7110362BE73416A46533341CDE577C17A75B3316AC59575EB1A1575EC0104EE77F70941E91786AD457832E1493466A3FAAA55911E9BACEF8CE49F579F1753B5138797EF827F0BB0821EA69BD9C43ABF2181D0775FB64B8694C74F0323600FD3E5F1BC5CBDACDB2329928247E4759747C02CDD924CF1C93BAE5C37BE8C3B9C7E09B4660C3B9901EE33B62350A695D799B52743D5158C015CC609E891C87F9BA02616ED2D3A1C14AABEF101B4B42AD5C47916481BEF01B11B9496819AB76A428C0F5B8A69EBB24FB5B3407E1C22E2020341575C7098E63379406C9B60B6A1733C171682B1776719DB5ACBD2AC6AC4B97AA0A3C8C168A5AB389010A01B4DD01829EE4A402E54E633A229A94CF96E01F72EC4054C13335B89BD6E91E965BC324924C028B433074C9705AC4CA2682FB1B385F058D574515319397754CAC9F68CB70022882A24242D1C3F1242CABDAA4D68A91DDC8A22C939BDF1539645A912A33C1D11A5849211D831ABC2C86834BE35BC3500CC44522BF9ACA86988AAF580BF45A5FF7F8192E110E163356B8A52486F772204BBBBC19BEFC631433F081E8556579D288B3B27C1A8209ECFBAA30A82B34EB722FE2BE60534E2F625C0AE477826A9E75B7C5AED2398525358BF0AD127C15915133A32A9ADD47A72270A98F942807FC59F2420E14365A758C534F289160A65CFB34619C7C9B2992083CC699F554BD64586DCF379605581711D607235C944820CC28416AC761498D8B54193A8CAC8B815D7B19A21B02A6D5A737C4984F3A888C0B9E3F51B95ED9430327642A082787132E94D6C26B298B77554E7F2237AC286F419266580697FC9316EC1176C4D763B194C52D79B25604974C1BC899560B72094701709797C5183391A268853B9FF3AA277C707906BE0B078FD6619050E14B48BC73F877BEE69A3EBDABBB8B2198CF51B14B2CC9ABE673CAA803B419BE1C34B6341C2E83D2013152B557A87AC4FB55C5C86CCBBA995492CF960479B044B3D6233317677C78A453D4E247ECDAB3FB200C3D2A0564C4100A995C4F70597E498CF0897B507AB35E4587E2B875030303DC2CA8CEB41AE2A9725085C12040C8D0CB20ACE46F1936725BCABD60D0B880F7AABC887090195D95FB6EC060B5257AC37481FAA2ECCAEF99C0DA37285D53BAEB0E25BDB9 +sk = DE9A3F4DC6A54E98C850E3AF0F7ABC5CB5B363BC668F2C10C6E197927C89E57088C4960C46B767E27129FE78C7CAE38717E6A2A7FC16DBC1582AC697E8915C90281A0A784C4B75345A13161BC6A586166D4385B507748D3B9516B10550F05782125C10F3761AEA2C631AFA83870C003950B891D96AE721317B192F21A50F2B2CAF49F81177790C29C02216759B005692CCAB4281927A46739FF7A9583E9A5EB9A62314E4967F5BB375FB627E5A45B918C801B4B1DAC24D55C13AA7FC5CFC104647295650B5CADCAC2C74AAAC28B82233F64C1C01AB50F16213154D0312C5ADD25AF449CFDDF494045000A01C449D1084C876163C83C13321B1F6F87757DC186D4C30CE916240E538F196936AB9BB419093FD593409F3A308827AD9002E5A621FB1387AC06B442970CDA9C720AC9049CFF1C307806E9FF9209FD0CC52B9517C685C36C45801875DBCE490163C91C707755CC8701AF04DEB9AA0CE460F24C72E5D811C4ECC297ABCC4C9BA304C75812196409C19BE10C494A8B138A6F05FB5558E7F2CBF6F1694E7D417F73781205B941EAA3ECDF91C71E998F9A8B6B72400A048A77CE4AD17EB265313303CC86150D477E42A39CB4B8C5A3723D03550F4B76D5FB7B524EC2658D374A8C955B0FB3FE878072EBC0201B2328B737F9F19BCA8411F35980890D71E7BD9707C917545AA6A659C3C70877134BBB0A1E970E7035021168C4A493CE1C9950456A76CDC05FEF147FDD625D2B4BC51B39F3B9BC73A35A06A7485306457544B88C168B22E81CBE9BB0174A2B526B6BA0641456A3CC941569124557D3BC652DC8259AC66552DB0AE06CBAEDD091C268C2C6F4BC7E948329778CF48C3B37F9A3ED714C5C8E0099036514D9A052631B256FB7E7F7C91EA0311B8DB8721D5001AE90991111C5873499BBA20A9D08A135ABEAA544706DABF7338497C578084E1BDCE9155F87417B29313DD39505CC90C45C12C324B5D5AF01EB2656D58607724725485465E33A6A64DA220421C038F0A625254AD127AC941EB23362649D2049F8AE8C057321AEEAA31E0E98FE3DA74D53938F4F900B6A33F1305A383CC12B35894AD498293957950010CF7912174373967C294BB89A90331C828048E3FA862FADC95283025E2F66DCA10104BE8B9F286C198B8C9F0F24C79A454E8DC0742283CBBA84B95B388D8F6912F4B74198AA52AB561CE59508CA6CC09251FA2780EC0DA59D8B12B17179320D23B822A3395466DAC34384A364D06882592734F72AB0D2DD7131196AFD4DA54FC5801D85928CF61BB257274C98479EE0C2F65FB985F6C669D948FAC153158530849311F0BC51AE72BB8C23AB5FED55E793A4E8489B423044A1B017273A4BE35A305E19934B99B45DD2734AD4CB4C5B368C7A32650F306B7148C199A44BCC3A297429CCA6015E906204C827CFF8C9DCD48BF1B638091F732DFDC570CE6618DFC839B4A4648A52BB8302E32098C26E9A51A6571C9C290005265B6359F07598B10C7674F5356B0365CEACBB55B1A1822811C92C44F0E4BBDA4A13364749C5384CA7670ACCE69BC48B6A0B0B2BAE8AC5CC40ACA6CE24957167CC0F24DD0CAA3A0228C13934FBBB0C205F53D713AA441F5B0FEB01FE26411E0CB6648D36C6236468793848AA4B7F4510377E0A24BDCCB712BC98CB21CEABC08101328D3D032CFE9C82D21372924C69AB5A402E9B3D88C87E9BC5C90335E5AC231A1B87EA3C2527B82445D7C8596B10A609616E4DA431C9593B91A1AA21A2E436A359A7A5901902A6B516D562363BF95890501AF4C5946626ACE3F276AF8966709CBB9B666B9842102F3077978E4872307AC65EA11002CBE4DD0BB83677419B89C9E0C9847FA6441C86B8B601663E40357831D1B3C21B4A8985ED50E546C2917F332D4ACB59BD64D9BE88EFB981362458B8D868DA7EC516EA9C807A29C5D51385781302072C1F3295DA2559003D4265CB330F43AC5B774562C182BE83636FA034BDBC3CB25AB6C8C21C69B873329321533A788287A40C1659F457C5E6E15456DA54A7FDB18C8BA246447606F2AA340A48B4FC667D7E67EFEC47910E05C3DA4463B75359668821711530835357B6A8EC62A3E7817C508C79754063F7110362BE73416A46533341CDE577C17A75B3316AC59575EB1A1575EC0104EE77F70941E91786AD457832E1493466A3FAAA55911E9BACEF8CE49F579F1753B5138797EF827F0BB0821EA69BD9C43ABF2181D0775FB64B8694C74F0323600FD3E5F1BC5CBDACDB2329928247E4759747C02CDD924CF1C93BAE5C37BE8C3B9C7E09B4660C3B9901EE33B62350A695D799B52743D5158C015CC609E891C87F9BA02616ED2D3A1C14AABEF101B4B42AD5C47916481BEF01B11B9496819AB76A428C0F5B8A69EBB24FB5B3407E1C22E2020341575C7098E63379406C9B60B6A1733C171682B1776719DB5ACBD2AC6AC4B97AA0A3C8C168A5AB389010A01B4DD01829EE4A402E54E633A229A94CF96E01F72EC4054C13335B89BD6E91E965BC324924C028B433074C9705AC4CA2682FB1B385F058D574515319397754CAC9F68CB70022882A24242D1C3F1242CABDAA4D68A91DDC8A22C939BDF1539645A912A33C1D11A5849211D831ABC2C86834BE35BC3500CC44522BF9ACA86988AAF580BF45A5FF7F8192E110E163356B8A52486F772204BBBBC19BEFC631433F081E8556579D288B3B27C1A8209ECFBAA30A82B34EB722FE2BE60534E2F625C0AE477826A9E75B7C5AED2398525358BF0AD127C15915133A32A9ADD47A72270A98F942807FC59F2420E14365A758C534F289160A65CFB34619C7C9B2992083CC699F554BD64586DCF379605581711D607235C944820CC28416AC761498D8B54193A8CAC8B815D7B19A21B02A6D5A737C4984F3A888C0B9E3F51B95ED9430327642A082787132E94D6C26B298B77554E7F2237AC286F419266580697FC9316EC1176C4D763B194C52D79B25604974C1BC899560B72094701709797C5183391A268853B9FF3AA277C707906BE0B078FD6619050E14B48BC73F877BEE69A3EBDABBB8B2198CF51B14B2CC9ABE673CAA803B419BE1C34B6341C2E83D2013152B557A87AC4FB55C5C86CCBBA995492CF960479B044B3D6233317677C78A453D4E247ECDAB3FB200C3D2A0564C4100A995C4F70597E498CF0897B507AB35E4587E2B875030303DC2CA8CEB41AE2A9725085C12040C8D0CB20ACE46F1936725BCABD60D0B880F7AABC887090195D95FB6EC060B5257AC37481FAA2ECCAEF99C0DA37285D53BAEB0E25BDB93EB856043B822DF9D60B55FCCB537AFA3CACCA9EF50433BDE1DD9831E534D1929508257A83CCFFBD0677795070695CD40D7B7F39A891D25E7E208BB9D65AF538 +encap_coins = 848DB3A6D5CC33F17D978A283B8267E45510CF6C6354EDD5E2476821E12BE3E5 +ct = 0CC91E4BF6C355CCF53348CF26983E783633A88C18A4D44527D475CD1276CF9412A34CE3696848A167286C85FF6BF570ADCFAD99472F9D00D4D34BEF35515C03B14732D622DDEC1CC114CCD6F0C99C9132028494E958E25B7F7DA4B161788B6638DE5E460CDC7CF6E66585E677B49D22CA3608CBA74715DE4B209EC9146565F56C52146D422466C24265C04904A0751D2F00FF8669A494CD46921B145860291BBEB6461C6535950BE4558DE79526D6568DA959AE6B07D9A36A1DE3912A3ED7B303E0AA7A1FE5AB9B3352B969DE1BE505D1C60C17C8ED94BA3B594B220659148B7820820770A76D5EBFF7DA3C5B8FAE5CEB0194CAA466B7050103201DB3FA4E55D302DD61FF8438EA0D8B2FB88F6A237134365D2D521C56A52415D2933F576FC5A0C9765DA7685F532CC042585F5491E2F5BE793284BC2137B2F1B096BEF1FCC2BF08CF6A6206E51496FDBBFD17702E6900558B2D6DA8FDBE8749A9277AACFC1C155DCA0BCE6A1E97821F3B2E9F07790F1A1EBAE9A2705BAB04124F2FF516CA4E26EB39885C1326C1761BDC19C839F9416AF259CB26FA185968B90ECD1103C7773CB5C71F783E583830BBA21A8538C131DE763643DB2F60B445C118F36CFF17E831D24FF748265687EA5596528F22AED02895DD8A257A4CCDC3507CC107632247B3BE44499658A915941A7A9C8052EFE38285FAC388FB7440068B156461D9F2B06DCF266F1237BF5EBC35271F6B82FF423EEAEB9A710EEE7D44A791237FE0661FC54018BE6669C1C13FAF765AFAFFB332B109FCA3F3D8964BD8EA18C127EC1FBA1E2D7409E98CBBD1FB2CD6600299C22D02E61ADB4C994CFBF99A0E851CC12D9F1C0325A05C3BC3A8F8CF57F12F1146FCB443C4B8E48719FFA9F15F8AD453C96E7E05C28822DC5D21C7F858BC89F54E843C25149DBA18EC20CE4F4F19A9F4D4EB0E9C1F7F5F957CB2D16D3F94727E38387A0ACDF50376E28B27C234375C5A031AD9EDD77274EF14A91A53968D167467233A96E2FCA22BD94AFDEE4ABC68D4B2FD7A18F474104B87E4E90DBAC0322AA93C4CE78FCBA820DD5229A8B2022FD04969D498B5A4D5B09BB0088085D88B94C9EFCC64B7C904C4B20DED97618EDE67BAA102FDC68051DA87054095C964D867F3D423EEE598D38A80718F1BAEED7C70E80B5EE34589E936121E22484242891D6222D3BE6F33E8D14E01E4244DB84B5A209CED97EF0A405BBFCA2B584F7100CF4CE269618CD385BCF898ACA176C24A755C059B6CDBC3CE6EB02A656C6B48DF2492A0D201543945FAED2FB5F110E03ABB281B78D45C5EC3A756DBBD5A1373766AA7BBEBAA614914355F1A79CC3DE3A288E4C5EC46FA25CDC1018F81727649EDE40B2C047E72B7DA7619140E67615720EDF7ABCD6C83B22E3438F24AAB84978B688A7DEE37337EAF95F3D2B61266D6B3568FE03F7CAFF6945AE21F796D8FA1394FE0B95E9BCF985E4975029EE00DE0ED404C21080ACDC67D5DD2ACF87BFE72E1E4B73C469E6ACE6C69DDAF839D060DBA45ADA5 +ss = 8053C5B5F8EF3A9E42F0A459772B75E915A3E9D209D54386626A7377CA15E63C + +count = 78 +keypair_coins = B9A6B0C05677E957D41A34BA03BD06F2A9092E31F63389397D7E70FDE6409D1824D67704139CB68EDB8F14C5ECFFCE83828208EDF58C0F494FE3CA22CFDF58AE +pk = FB262AA9A031E49084A6127B8410A5A46CBCABE6B18F607C97D4AF6C6A598A089BB40C1998D16CD307895035B15DF2C34BFC05F634813EEC780C96B83FAB557075CDE3B64EAE6BA98B65106E729B81D11C926404E99164BAC5B546997D2A842F6AA9CE1F6BB7AB7551A06A3649E1CAF7872AC675CB8981A124CA05A318BFF9A234853821A3036A86404B0F056491A5B20AE09DEDB123DF8B4E9EB612A00207C6CCBC580373B0921FE2831F50610340865232C60660655184D8A0867A47811B88BCDC4E6DEC5874839919188F63740588BA97405BB1FF2925C1553188C0137336948F7809DBB96D2F910A9C0AA95D49267E543057976E3DC7346CDC7560E68911B8829D37BD0EB20DD5E2B0EB1538A98A76A68798B5469F9DCA82A08648A2DA13BDC1A9B52A7B6F345626BB691AECCD14EC20F1C252B4FB2595474B2DEA0EDDA47B87CB51F020072D489A2E79CFCF9A12B52BB4F626C35BA4C0888C7939F38E6126484A7932F5D6A029E1CA5CEA27D729065D7137BB518C1885A299B58E1F6446FDD8449E58A21453CDE7AB683BEC6D84876CEE590D1AD93852885DB721B85D4061DCA1327179ACDBFC329416B23234572901B3F63A2CDA36AA65B17035F449AF2B404691957C30028F053989C501D8C2CF8A8CC0C04AA59F3B19A98777F814A18A0753A7180264E59F2BE7C9F0266B8DC481CAB4833BE8B3B599818AA930571748D41657256015F68A8C887C23205A6655F30C51084925167BB75C98B8A25B7579BDF40A912365164814794BDB0B78824FE9066CC63473496AB9CEA06248D883D1846FC8084D59F05277AA3EEC0C3186D68BDCEB6C240CD0128A6BC1361467B861AB025309C82183233C37B35E8AF1B464331CBE7CC3974A48A8E015A491677567472F263E31188966EB556151819CF52772053936ABB0D0A48E99357E558301DC8157A8A7853212828269786919A8F9032E17F9B692BA8EFAEBB602E83BD4B75160541500779D1907B1159170DEA870E6F57F5229222E85B178DAB32F897BF45510EAD084887566942656357B7896570756AB1614994F982841A525C8EC63CCC8E4575DF03BE2F5CF96505ADE252FA4E80FCFF664F6FA8C337980251904A9135ABCC509DB15A49FE4C6D57B41BB6383B3483CA5F5CE11641F9EAA423C0C3254A508D4319DFE72168070CC8C771ED3E06CE74C93240947A8DAB87D889F9AD894F37243B25259153324E103B73C708371400EBF007BB5459EE084BE938A18D055AF7CC7AA98FBB88A156849765936E7273BC385A1BCA94A74368168CF26D8806C7901EEE2359C8694B5439F1E82C0A6892E4A68C4858A9A00B1496E177D1EFB57EB9C0AE382B56626595673230903CC19C79714364CC4B10891823535E21CBCD45C90D471E684AF1FE243E925C848565A1989637F7614C900AF1BEA9049B78E07F00950AC800EF72860E209C192A4AA0B901090987BF15A2DB6165516AD0238A40B0BB233A365BBF2BAB2F60EEB8A54771A8D8E5279E2740298563AA2868E2DF1BE582897C7A9A0547ACC2D8933ABA9CBD5D937073455489A30E8CC3659C03D37240BFF084D77F09DEE76B60952221ED2C1AA73B772CBCEA4D7A1FD64561E88BB90327B7C13C809696C0E4711CE152577517BE0A2FB3D597FA5804E0C106A4C10 +sk = C65B5692B9737BD5BCEF94376A685FE08CB59C2B94884B47BB6A4B292C4EF8DBCFD1D9392BA3C464442CBE0879FAC60CB733496FFA7116011CADA07377EAC759172DB45C9035532A5A48C18F3343E7FB3A0A7A1DA9C75F647648A822BB8FCC59A2E0476FE958CDF968433B46EA296056A8460EDC0B7D4430252B227CC38C8DFA639A72759DE9325D3BBBDB1A5305E546580127B11332BB666236924FF1F13105176B81A777EBC946BD4B962E8050C0F80BE026A513F7C9C74308F8336A9BC73BCABC8353AA10AFB69AA502B3B6E9A53AC67F8CD8784BE4519AB3C6E8E47212BB59EC3958BE442BF2162DDA987C602030770555C0BC62B1422367B95A91399642155CD0B17DBB848B642C765FDA2400358040D4CD154A68DB36265BB525FC90988FD0C04BF0B66CE052BB216D6183B444CC385BB8AE17388D5E8024AA41563653B5F72899CC16B37D642F6FF7385F557C941571A1C73BD9425FEF3C343ED9B88BD02A9BE5652736AE69949E43B5C9719C4B8E42C9071C10E3D454B3C90D315C93579CB106A3B16BAB7163983F5C514B818516BBA802B7FB1166679EE03C4C41EBCFFC6322DB61A7988927DD83B48C24BFE82A4FB1901F70E2C39C411FA65C43D56C02C79849E7745BEE15B70E405939B055C2A76FE1021E094B4671A290F5D708EBF0B1155B94FEE9B34CD9858D3A8DD4BC27F5FC0627F2A80D6681C11324ECB74639540B72A23083C3758CB29AD40C979B42679E1436FC56B3A7D1115137015E2A2AF9A8BEF038B6905C8847C16558BA2BC6EA92AD90B026228695D664720C15E6708B0934064760A745EA4A5587BA211312C7203005F838A2D5B7BB09B8DC7AA39D4956D494472F71A268991CA907AACF8048FC98C095798D0EA043C42C437F6762ED3678B6D701560016F405CAD66117C786B56B3A88FB5968C26869F73A2227B129553B220F67CAE75B5433B29259553AB4375A0AA6766B2AA0AD480B6969201ED21CCDA0A39F8B8F565112565065D8D26DBC1A57425A29FE0A606BA826FFE45A69493B08B11712E88A2B4B0371DB5C0EC0125E2659ED08275D18277B9C0CA51797D46CAFE91951737868483A418427733EE2637B4AA9496C30FECAB67B0B7278A76DA2DA201874711E6928B7A40E7859378C867B9BA81529656200584EA9A5881B657B68980EF8CB201338AC1B856C4EC5B0C48A80BCD6676C0CA624F05296E59155D5587C2C20BFA1BEF1005BBE9840DB205D9658935A67614595BB3FE48E52877FC5BA639D023F54D534C58CB90A0A98BD1C2E9E940FDC61193D4753D17463D7EB8C9C6575E0F6845B5C0A5BC69C5F90128D3078960671394B75C5C72EAFFC1E8EF4AFDB395FFD40A2F6BC75FB9B79E1D8756705B710B0BAC1DBB4AC312FFF30745590739C08BB25CC9EC62CAF1226176C161ECE62AEDEC392A3591EC2AC80E92571C1417BE7D82B2F9A1990D50DAB78C1DEE631304AB5AC57274846A8FDC6547B224C72E0781B233FF8A6C876ECA3A3E060A00B560F661042E85340C4A8257660C0592A429C7B81B5137D410B5492864E156DAD292DABF59035FB0E02247E6C6847CFD86B6958C74209A8F389041E5389EBF5B9B633B7FCC08CFE14BAFB262AA9A031E49084A6127B8410A5A46CBCABE6B18F607C97D4AF6C6A598A089BB40C1998D16CD307895035B15DF2C34BFC05F634813EEC780C96B83FAB557075CDE3B64EAE6BA98B65106E729B81D11C926404E99164BAC5B546997D2A842F6AA9CE1F6BB7AB7551A06A3649E1CAF7872AC675CB8981A124CA05A318BFF9A234853821A3036A86404B0F056491A5B20AE09DEDB123DF8B4E9EB612A00207C6CCBC580373B0921FE2831F50610340865232C60660655184D8A0867A47811B88BCDC4E6DEC5874839919188F63740588BA97405BB1FF2925C1553188C0137336948F7809DBB96D2F910A9C0AA95D49267E543057976E3DC7346CDC7560E68911B8829D37BD0EB20DD5E2B0EB1538A98A76A68798B5469F9DCA82A08648A2DA13BDC1A9B52A7B6F345626BB691AECCD14EC20F1C252B4FB2595474B2DEA0EDDA47B87CB51F020072D489A2E79CFCF9A12B52BB4F626C35BA4C0888C7939F38E6126484A7932F5D6A029E1CA5CEA27D729065D7137BB518C1885A299B58E1F6446FDD8449E58A21453CDE7AB683BEC6D84876CEE590D1AD93852885DB721B85D4061DCA1327179ACDBFC329416B23234572901B3F63A2CDA36AA65B17035F449AF2B404691957C30028F053989C501D8C2CF8A8CC0C04AA59F3B19A98777F814A18A0753A7180264E59F2BE7C9F0266B8DC481CAB4833BE8B3B599818AA930571748D41657256015F68A8C887C23205A6655F30C51084925167BB75C98B8A25B7579BDF40A912365164814794BDB0B78824FE9066CC63473496AB9CEA06248D883D1846FC8084D59F05277AA3EEC0C3186D68BDCEB6C240CD0128A6BC1361467B861AB025309C82183233C37B35E8AF1B464331CBE7CC3974A48A8E015A491677567472F263E31188966EB556151819CF52772053936ABB0D0A48E99357E558301DC8157A8A7853212828269786919A8F9032E17F9B692BA8EFAEBB602E83BD4B75160541500779D1907B1159170DEA870E6F57F5229222E85B178DAB32F897BF45510EAD084887566942656357B7896570756AB1614994F982841A525C8EC63CCC8E4575DF03BE2F5CF96505ADE252FA4E80FCFF664F6FA8C337980251904A9135ABCC509DB15A49FE4C6D57B41BB6383B3483CA5F5CE11641F9EAA423C0C3254A508D4319DFE72168070CC8C771ED3E06CE74C93240947A8DAB87D889F9AD894F37243B25259153324E103B73C708371400EBF007BB5459EE084BE938A18D055AF7CC7AA98FBB88A156849765936E7273BC385A1BCA94A74368168CF26D8806C7901EEE2359C8694B5439F1E82C0A6892E4A68C4858A9A00B1496E177D1EFB57EB9C0AE382B56626595673230903CC19C79714364CC4B10891823535E21CBCD45C90D471E684AF1FE243E925C848565A1989637F7614C900AF1BEA9049B78E07F00950AC800EF72860E209C192A4AA0B901090987BF15A2DB6165516AD0238A40B0BB233A365BBF2BAB2F60EEB8A54771A8D8E5279E2740298563AA2868E2DF1BE582897C7A9A0547ACC2D8933ABA9CBD5D937073455489A30E8CC3659C03D37240BFF084D77F09DEE76B60952221ED2C1AA73B772CBCEA4D7A1FD64561E88BB90327B7C13C809696C0E4711CE152577517BE0A2FB3D597FA5804E0C106A4C10306AED2A804A1C9BAD4AB9E59F6126AD7C8633CDD0C2DD9D4C6F639D312ED47B24D67704139CB68EDB8F14C5ECFFCE83828208EDF58C0F494FE3CA22CFDF58AE +encap_coins = C1C78CAEC83245FCBE98A15314940686FA06E675E68C24E069509CF1974AEE78 +ct = 87AC7AA20F9FFB5FF87E17E463D212CE2DEDED6D64A5224B75F549E9A394ABA5C41E8082C174AEFFF9E4A65A35F24CED2955F03D2988536687544413484762592D950806A7F06FA3E6E05516100B104D4D20383FD5ABAB7B059E337447DA71BCBD213009A15E1AF1D2B65775FECE1E5A7EB086CFFACBA0950E188F8E68ED5B940308413F573286E22A2C0E05C15FC19E595DF9EC13B5029F471DD4F98A2F06C4D94A42C8BE53CABC455C4F800D9EF3AF241F15D54481D8038CE94F6BC4CB0C6846D9CE16F79CFA1276DA2F08C10CA37BD09CB63FE0CDA84BA1669145B0478ACC7C213F8C5C40A1989440677EE2050C9CB10C4DE3DBFD10EE366113814BFA7C5E3E8909BEBF8B191B7AF8194EE9598BED4492DD3285C422A0B552BCD0133DFB286F0267D721A04ABDA0078A10F503C766D7E0A592C30F5B26F0DCC5B607CBD4DD457B64D7DB9EC33C1EBC1ED569A3EF9760741AA28BEDAEED72354C8288CCC397C2FE83F7BAC79A9BBD89A579C1108EEAA9296CBA258219369DC3F92A8245101112AD6BFED315384DB7A168FA70BD12FA2ED419D6C3694DC55B6059557FEB08FEE76B3CC8B08F1BB026A6B77E75F36C6DBE632E1C8E511A2E3211B6718A6DCB7F456203ACFFF8A15EF0EA0768782A89BAFF94440846312987CBC768220A4D189510F36D900E3FC2B7656913211F228BAE25E05425FA1B0AC4DFFB1605EF3C92AED0BCF4C24C0D2501CBDB908EE4AAE198CD4FDEB8081A918E89381E37EAEE6615BFB0CF5BAF727C1A907D5115D3580F3193E6F3B6C69AB6932D763226B0FF9C2B01AB79918938AA29EDA04A90590B8319A62BAC734132C3272F93012DF3A90C14BF550E5710D4B1D522AE38B269B9F36AD5E94C1B404E2605177B3D673831E366560316998873513690BF0908862575726DBFC23CDEE517D8AE8F2E7514A43ABB170BB4C8F5DE5E425299D3BA9AC91B482C4C348E98E65A14F6D0D7A9F6624769D2DAA7D7625E9EC71B47F443878546A665DBB6705B946E8BBBFAE12306D53B7687804363012C49C74463103CAC2CF27238317E7B6B33CF2C2415455E35DEBB9A6D76AA0664798F01E74A362096376E0F86F6DC0D6451E4A467C72CBF5AA188EA783A37B54FB551A30DF1AFD778483BFFEB27406A74D562E45A3C849ECB15EE586E081282ACE639EB95F99E92187CF1752EBBB574669EFD23CE714F472AEC96E031A6627C16C355BD067A8D9B539D2E9A1325F36FD4163E5B4889F9A071BE3ECAAA98F921B94B0C22E7E78C2ACDC34C6FFF70E8F604E024AA5A92E54D37DA4EEE6322C6673F141F947A5E08B035EFD3444D44D84C8EC1F248014692C72D2AC520C76166AF0833B84007F9249291A4C9678675FB7022895293788FBA328FB0F855A192EF498BF7F16FD0E43FE24D2BE5EEF38724FB69C3A2932C382FDA9C143184F60FBBEB5B9179B208A7AB1705CB917778378658125ACD78B1E2CF142EF5C1B6CF9488AAD6EDEC3935EFDABFB929D60B053F8B33C80296986F4418B3FB4FD0DE +ss = 8BBF8A535392C99BAD81C98ABA0D84400724A3C46A8523A482E5A00665CF0E88 + +count = 79 +keypair_coins = 28A96C71577BA00C94F99FE965BC595A26DB2B3CA6AB5CF8E443CDD8462B1792CE71AC90659FF2DD31B35C165D3929CFA5E94407A5A798C568E6098F631923EF +pk = 5226AA8EDABD5A4A5A7CF6633A394B756AB38BC652EBC1BDB728C74EC316D039AC982B118F1AAEFEC04E48448D45F72B319289691A93A20283C3CB1FEC992364CA83226332107704D3390F71E1883B46BC2F31B4242744E0847E72D5645586AD0B8C0FE48AC04A003045AC2D2101B52C7C1D494673BEA69766A5ADCB38CE3A978209471B5D7095A720A4C1971D94970884F11FA90C5C8B7009E2E1769B382004C93A2D9187B23929D941468444CDDE233DB3791656C860705B714E3AAF076921458B8DDDD61E09AC461E96A1B1E9AF19AC6984129B6C8CA9D4E39D70277B5D9A6A4B605F5E0454AC05729C2691E87A8D79353289678490A822C41C52A2F56B91A35F89918AEE8935EF2BBC48485BD747CC5C59066B7577739B669AD21A5561018F021663F5CF48E08F39881D221552C846AD789810030326C8530DBB369681C69CC00C2390FA857A37AD81623EED4262DB69929353118A0886E6C1CA3D36C65898968EB7C187B7B866F18A8BB369AEC780E0033EBF1B0DF846CD60633A461C569683598C7744FBECC54282725E337CEC503D12A87F9CF5BA6587BAF31B852BD45A871ABB81E88C8B8A56D324C87A777BEAF543BA153A222418BBC57D7E1325FC2A075608988BDC44E276AF10CA2D7E52B045514080597A0FF73732789D0F955F93BA77E8034900251416B43E291984CAD36C53C947CC954A8320C11424BE43283A6DC586A9FB39B2927867B79772DC1CAA16234233ADB5AC819F1A172DA5194EDB997F924A827A85FC7C7A8281C98F7A9CEE443F68A2AEA6001DE7C7475B46B55EE8991DCCC6527B5FA1393C9107C4D35A073CE29A7EA205A9279B62F5CE21F3AAB0838B42E6679000CC4C182504A2A4E81757B7F6A183428786F09C76C69E2D7598F1E5049CB57738DAAB6972ABF6D8BFD2AC7137493BD2B8B5F997519B2026EF38623294B91999A5419356BFE03E338194E471926FE5842E79740F416ADAE2A24F441BA4A0C08ACC175F347EE3B614664496A5E51C01A55B1D2A3E8486CEC4C3BA461970868502A0F9553D776514857BB8A872C7F736CCB432B1392E99568B51B9C9A56C441AC0CCBE785693722F90D63A0F78C8EE777236EA43DE2583D0E093EC8BCAB7C8C6DDD8254258B7A5732939D953E491A6BF310449083986B2A0F236C5B9A300DB22299146B9A0943115845F3FE98045CA844BCB1132E0BC98CB54746937B1479DADAC5A4F9320DC572BA81CB250F13869D132FA259604A76A5DD56A7543B96C3096D3046389A917DCE53CBDD9AB04A65B31C6C5CFA23A2AD53FAEA3BFF3985FDFF9CA3E3965989C072F4659EE8914DDDA0ACF30A64A1A823B78561D5A9304950EA3056F50B82915C71AE0B6883EF319D061464D8050F37C24C62C7693F204DD4B4D74B66DD7526FDBD707A3490769764ADBEA61C09A2D7F464D7E932705212D6A9151B46C2ED93A7B99C1148F679D622419A4574310AC20941B3E51591CA5D53CFF51A6ED2C081EE7B4BC23C8BA8B1AA2924406618715731B1CC404929A38911020FAC6647C24306E349F1ECB4E2F530E8F200EB9C0A315606A3E130498F96AD5865EBB4CBB55265E69316A3BC96E51745B02F4A593B796B5951F48DDD5D61BCB3F79106FB3F881087B21E528BDC627A8A1FDBB3B1FF5D83954F7 +sk = 52D431D74363BA07B7EC47C2A5B98157F616B8C7B7D3E68CE3F2A31365BF4E21747203C5EDD758000A8C09D38A83457FB7B015BDB187E842B46CB9BFAB29A917435431184219339DF7CB81018A81B283814FF8B15E3A526AC35185BB45C7A865C45AB0CA1C7C5CAC9E35F753D378556A62C8AAC92F0FF59651C1ABB789970A32C69D153B14A687FC2A56B9E0C382BA4F907A0BEF79BDDFF781776ABD042044A1C84C4C80AB9CE9A76BFA6374E9CEE06081E3661A09CC3272331936CC85D6B2319CC7873227303191C36842B61013C0A41082B82034A2E1BFC8C47916859EDA53033D5427741510E842265AE36D530A19E5D7365127BCAB5B506321ABE2B69DE823B660B4699F8859DE76899098159C211CFFE51C7198CF1025BF9EE69236C913B16AAD84AA4C381A577B6C7A3403627B323F11EBC1F304747F47407DB9A8C9E4B866082597F28B6EC272AD2140A43A52188B061650BFFAE19761BA99CA724B71191B6DC5B16450CAC50B247415370D5B207701AAEC3A13CB477983F180388050175658CCB4714ACB603B6B3AEC340DC6C164FCB81331EC194C382FED024E0D962B056627A5B05A00B5511D78BADAA489F8BB3F3C5B484F9C1450708B89828EF24B815EB43A6B8B127BFA49ACACAFC46434987BCAF5F91A926140BD56504FB4525EE1921B63733DB2986DC133078CAA44518871BA12894A553BD024FB731A0AC44AB80199394A2385BC440515877CB69B73B0C847E40ADF238847608908C20BF7E1B86FA84781371D4CB52FCF2CC30306C8D98C679D4CB41EAA0EA8B395C08CAC6DF2348474A9504592ECD34A93B3262C9751E42193719B617355C59A25679D909A5E756C8DB03E3B174E1A063EDC733B9350B4F738618648BAEAEC5B76376D05329BE6E706E632BD61292755F361096CC4565573562053B4402C42C85B5299B1CCA0B9CFEC4605D63665F24561D8C1DCFA896D1C6D8918A3E6F2A8D4224FF97503D1EBCC8D5395F0A64D1454623890BB7AC6B87B29333096535118CD243C52E49CBC0945385E38781B9BCB6B220A66D96D426B9A1F4C4C4D0349CE2BC790732247EC5D98E43BCD37CD94B652BFCA7B988B063BB102EA0772DF0AAEC74C228261B4FA7A49F3B329F2C7C6D04C859C9816D5BA2AABB85E52DCAE066B9AF4D9951766041CC783DC672DDE42558F50473BB43BC1F93BC6EA7D33F46AC4999CD33698EEA603C7DA265AD713E48691C8B048B21134C9998DA19060CFB6AE31CB5A3B7387F2257FE94BB3EA4C963D01849FB021741395F1862085F031B6B05A7834551A6C8F0EF91397A29E12DB6D776B05C7F12C8B260CF128C02E48A9F403A487AC3A6C0888C5299414AAB1D7283252F62F465867A851BE9A82C9A79A25CFA727C632727C765D4C496D466942147A8A7B65AEC4BA84E4E2745671BCB207654B087A26F93AC77C82CF34A7C2F86FE8F48FF9A0B663D79BBA6B2B8908B32FC145E4F65C6A8A379A99C9E68A10C278130A1969E0CB708D0CA6FF1669D8756D1D530ADE051ABA3A07903B5D801456315057187758351588BED222785C9FE83A0FB4C59245CC2A72B309767348EEDB7C2097B457BBAC8AA96A67D785803744E149B3F131A85226AA8EDABD5A4A5A7CF6633A394B756AB38BC652EBC1BDB728C74EC316D039AC982B118F1AAEFEC04E48448D45F72B319289691A93A20283C3CB1FEC992364CA83226332107704D3390F71E1883B46BC2F31B4242744E0847E72D5645586AD0B8C0FE48AC04A003045AC2D2101B52C7C1D494673BEA69766A5ADCB38CE3A978209471B5D7095A720A4C1971D94970884F11FA90C5C8B7009E2E1769B382004C93A2D9187B23929D941468444CDDE233DB3791656C860705B714E3AAF076921458B8DDDD61E09AC461E96A1B1E9AF19AC6984129B6C8CA9D4E39D70277B5D9A6A4B605F5E0454AC05729C2691E87A8D79353289678490A822C41C52A2F56B91A35F89918AEE8935EF2BBC48485BD747CC5C59066B7577739B669AD21A5561018F021663F5CF48E08F39881D221552C846AD789810030326C8530DBB369681C69CC00C2390FA857A37AD81623EED4262DB69929353118A0886E6C1CA3D36C65898968EB7C187B7B866F18A8BB369AEC780E0033EBF1B0DF846CD60633A461C569683598C7744FBECC54282725E337CEC503D12A87F9CF5BA6587BAF31B852BD45A871ABB81E88C8B8A56D324C87A777BEAF543BA153A222418BBC57D7E1325FC2A075608988BDC44E276AF10CA2D7E52B045514080597A0FF73732789D0F955F93BA77E8034900251416B43E291984CAD36C53C947CC954A8320C11424BE43283A6DC586A9FB39B2927867B79772DC1CAA16234233ADB5AC819F1A172DA5194EDB997F924A827A85FC7C7A8281C98F7A9CEE443F68A2AEA6001DE7C7475B46B55EE8991DCCC6527B5FA1393C9107C4D35A073CE29A7EA205A9279B62F5CE21F3AAB0838B42E6679000CC4C182504A2A4E81757B7F6A183428786F09C76C69E2D7598F1E5049CB57738DAAB6972ABF6D8BFD2AC7137493BD2B8B5F997519B2026EF38623294B91999A5419356BFE03E338194E471926FE5842E79740F416ADAE2A24F441BA4A0C08ACC175F347EE3B614664496A5E51C01A55B1D2A3E8486CEC4C3BA461970868502A0F9553D776514857BB8A872C7F736CCB432B1392E99568B51B9C9A56C441AC0CCBE785693722F90D63A0F78C8EE777236EA43DE2583D0E093EC8BCAB7C8C6DDD8254258B7A5732939D953E491A6BF310449083986B2A0F236C5B9A300DB22299146B9A0943115845F3FE98045CA844BCB1132E0BC98CB54746937B1479DADAC5A4F9320DC572BA81CB250F13869D132FA259604A76A5DD56A7543B96C3096D3046389A917DCE53CBDD9AB04A65B31C6C5CFA23A2AD53FAEA3BFF3985FDFF9CA3E3965989C072F4659EE8914DDDA0ACF30A64A1A823B78561D5A9304950EA3056F50B82915C71AE0B6883EF319D061464D8050F37C24C62C7693F204DD4B4D74B66DD7526FDBD707A3490769764ADBEA61C09A2D7F464D7E932705212D6A9151B46C2ED93A7B99C1148F679D622419A4574310AC20941B3E51591CA5D53CFF51A6ED2C081EE7B4BC23C8BA8B1AA2924406618715731B1CC404929A38911020FAC6647C24306E349F1ECB4E2F530E8F200EB9C0A315606A3E130498F96AD5865EBB4CBB55265E69316A3BC96E51745B02F4A593B796B5951F48DDD5D61BCB3F79106FB3F881087B21E528BDC627A8A1FDBB3B1FF5D83954F79BB3963CC1C5CF2B2D1C6CA76226328AB765A79999CCC71FE98D5BF3B34F51B1CE71AC90659FF2DD31B35C165D3929CFA5E94407A5A798C568E6098F631923EF +encap_coins = 59BD98530C55222A8294517068B7FD7E3210FCC2BDF400F4E584BC209AFA44D8 +ct = 9C87A778A4D5A67C6A57FBD3529556306BC0B5682CDD512355089E421CBA8CF3CE74E58BF2B28CBCEC3FA5236CEEB190F10A5AA269D8B4F9A148A4FABB8E33AFE45C6A4F5F90B1675C8EFB8ABBDA5766F29A69E3A3C4C723190DB1A13B442D1AA08EE97BBAA316A3FB09A625BFB543A46D75661BFFFF3603659476D0A5CED1947BBC876F87F0A55B58ECF64CF8C4C3FBB03D352B08821B0F2564A017379DFEDA75DAAD3A255E1EA91EA0C8551E679ABE6027E3975B4A53C3DF95CF9AD171BAAF4A0DA95E5F4B04E8D3512FDD18E0E7A2ACCBBAA9E0619573E134F77A670F9AFAE4D8BAB257BB94217180183EEFCFBEAC744503EFE2C9790A5CD9F16E38C0AB2AB714CBF3344B0596116A69B8A9E589A7A3D396B1514E941E326BB1D2B754F57EABBC6E531063092F19BBFA1A1ABC6E0155B806EB9BFB4191603A647C118FDD0E795A62A26B4E0A108867BD7A91923787FE031AA9E02B3363089D5995A3FAA238F22252A85A94AC3B8D3B22684E94B78DB7B02F10BA4B65476F5DAAF405C137525B10ECB3B3DFC524956DE779114093BFA23FE430F3BA032561F393F5C2E9C03AD4B8F79337353BD37974A07A4200509CE5E48EF490BF031C411FB1EC8CB245725D18109775C77BD93B2AC1D91D1C4DB6C5F7A40513C70708C837931B6B52C0170305A6C914EF07984F29A705C52D76606B30FC5C00FAD0D8719E55561F1188F4DC289D11AF8D7D2EF9AB694293523C520B60C78961DA395BED6ECB4C5EF97FEC93948FB11A60B63320EB2B95EFDEA801CF53F7F58F9E7A80CACAEE766F5AC0FA07F1684A3422D5F90E7DFF5994B4364CCFEA484ECE3C8056D5B2C837E90968B612EA0078412220B18E1721DAE047FB8C3382DB51F7C4B99824816F2C2C6F435F4D39C9FF9D6EB1A67A3078C923A2115D9ECF43D4CA49BF729420880A54B57889C5E2B7775BD7681D5FBA0ECEABA141852579EE43D824CF97FE19C61014768A08BB240A7013BF7F82A73714FD8C64115618E5DAA911EEC270EF4F0A021CCDCDC63A9237B46D8C757407E2637399EA1B1EEC62688173C2BE93313DA04103E82E3A0F6F1192935027CEC2C27EB293390C3B49116170F00D2CADE14235D1C203537521847AC4741C3C6CB236D01A69042614C9D462ECCE0BDC318DA3F612E099AAABCAE67A2F82D855D625BD6284F686426CDAC5FA1DE28F296524117B7AB56C677B92642ADCB864D6F404AA7764C4740401E4899563F1FD58F33462B50C6B3D8269199E4E37FF96E807AF0998AE53780128141F103B232F3C2EEA671EF95401F6C024FAAADD1E86A938D13D23F06F80F551CC50F92E3F120DE542684942C5485A09EDA7149A609641E35E725C801EFBC642238F5D8B3183649617F0CEAE9A72AFC9C806AF833D7AAD2C31E43AF4E55EAF4C198F281EFDBEA7D32AF4CB54959AFC3EA26EDD570B16A0C3A29F0B60A37DF6DD77BB0A71C7DC13750D178FC7441B8E3549BFD78F3638E9EAABB1D91D827F657B620E87E736A42636EBBB5138E93BF8EE +ss = 86E93FDAE44A1A43345283DAC1E7C893EEBAA43F60952B90E5C96788130B104E + +count = 80 +keypair_coins = C08BA2EF8C3A0A043AFAD931652D7A19E6E8CB670F840DE5F1FA03309B2CA9EC4248FF45452BCE5777B08108E059234029D3309CBC2BCAAD8EBB37DCF27832F2 +pk = 724ABFCD15255F0A5EFB7783D909031ED02C52A203DE570873C7A7C556202D53A6C086899802BDC877BC6A813AB59B781BB95F4FCA9EE76028AECB9142A992DD7180BC1C15DBEBB66765C5ABBCC5EBF764D5234D89A378D5925FBAF63A00E35D568804B973450A045E55C7C5F4907FEE390FE6877963E386BC20CBE929C3D247611E346EAE401ACB972843DC204EEABB043644EEA29BA2C1A160B98F0D28CAF0677AB2ABA362B7BFADACA4E1197F54F03AC8033814A71E1CF407972B3F1D9A986637A972B46D3AC46509C053EFBCB9A475BC4055265961C79E1374C2159BD2409A84F22755A1B32E4B604783BCB2AC49A27A5B0B07AE346AC38F54A2943559F02270BBB19508E903888ACA4BAB72E332285837B9EBB466E5CBA74D5AB6BB3B2A0FA26209A97F959C905BB4B058BA8ABF30A5A6C190A018A9803AC29D84BA710B30DA9A0844CC1A1478C289C32737144812355E0D7589B9AB765CA3B23353A350876F05081F3E4B14D8F66C998B81F458A394CC68C3B7BFD37366EC93113DB928E5F9BF0E9AAAEAFC619E332A7EF3898A66020DFC64F671879691C023409B53686770F8148A2B6F7B62B6AA42981EA0CEA7753599585034B9AD99C9AC8B12872B1A47A088BD8AFCA2D42093928A4FB770198C4CC50B0214C4C94FC7B62B5E636423C6ADB553B138591F6372CA6D53343FF7C70782A2DDC4801B262F220A539181C13F3C3E8E0A0D7191A43A54AB008D326DF803FD8757F88AC9BDC8BC75CB83517AC71FF8613B3BA713377FDAD2199BFA332B8C22C136350ADB9553E3643D0C45413782F3BC9E941965DC051DF98738CF50113AB422E4A22759CA016BEA6FCBA390ED64540112842F5B1373A2847107A43403B4AA5CCAE154B9C54831E3911239B79F1FE997BAE30A542560FE6647A2E7C4916097FD484C3D040456EA2BF8B63DBCDCC8577B7AED99C05FA28D468272876B614045095E918600F7C94BB0944F62235C169B58789AE8BC3E6F677CA8D238602399E307553E235D11836BE120B3BAC41B0A668E0841AB11F49E27AABDFC27AFCAABBF542911B6A220CDD626D819C44C72556A3946DF86C43D1B8693944D399A3B5B1309B9780E34330CA387CDE8E4C9B2D0775A962F447828D6295873CC1629777FD93C062098B6149A3E7C383E2C33CC3FE7730537416FC1ADB6C09F4CAA736E4C796D2A97FA3807C9EAB72993B4B876136B856C7BC75AD054288EF491EFFA872247A99AA39A9C2B7602027D65A169317CAFCBB77C37D89ED32489E3C2557998A06689B06AB96615BB5752D439DA446354CB0640686AA794444A806C31D721B8C6B820810A5AFC00932A885107B5F968B5C8EC98207293D8851892A01DFAE4A99832326E3863BCDA75190C4A487B46E3914B702017B1B520CCC30A5C475FB2DA94EA217F76556BFEE825076533973BAD3AC7305B5C764CD040D723617090AF4A7811E9AB206C6A331A647D9385A5E7D8BAD6C89B390B617018C4A0691D262429BBA173598B37D7C245452853506437E756A399670AD8E292B0D820E3567047C82870E82236389D99D678CD9B49526AAC30D1B830B12F4E62407A59C8F88B7B5D088A2D08B9F114C3F158650F32C682EA6A76CB62D3AD7357CC617D597A3DBBDF515F6852D71220768859D599BBAA +sk = 28BA2F24DB8E2A5B21092964F1871E97E10F2727C8B27916A5068EDD27670D26B91A93332157AC686205E23616EB0271B081B51923C5996743CC114F3AD310CD6791AEB05F77960991513EC655533921A8D14CB2589399EBF18F7BA89BB7D6CD2D7336ECE1B7B63B98F26A49D356578CE7275EE67677D1482E1BB3D85B88325BAE0A00CFD1288C34078D73965442B7B140705F0FB76EE3D0921112C400C7A4D1337D6A3A8CDFF9AF05C64C079C64DD143F1FD56C28096313E82D51836A2DC1B0F37A2E00545F802B417A9406E55420B4D71FBC2210D05A771CDC164AD50932EA40A876051828236153B4E1715EDB1453045721E89A60ACD0066227704B8AB991E8A06812226BC59943C0814C847A1865C19DF4B7FA13BA3EF95543E724EF854CCB28BC1DB49B75C1ACA3649F848BC6F32C139AA79197543C628238ADB755F4DA6BD67130772B4790B28C9F1544A4E9860E875E68C1CDD9CC0CF17451434C7C53F3A9BE39849720B1B80A836BA4C531D49BAD16077E90203C9120C23239CEA972454B08A5F10812443CA75B913DF98DBE29C3312157E156311F67354D414AA041833F8454ACA5B3898B3572E819FB2C4CADA43C9C5191D6F7AED8F310CF77CCAF0C478686952E71A8A8173D0C223B04462B96C04EA7B218A13519B90CBE3BE8C32B276F90D349ACBB6362706DCD54AAD0497A058AB0138A8E57D514D5D431043184BD1A07B77C3299BA6C7205938ECA8403F31A1C605A942B73775A1AC11C40D81988E69C15079719AA769B5F618052D5290D84714CA57418366C15B74DA4E98DF96ABDD19884EC1703F7978C4DD72B48528789D7148F16C23EF8BCD1F353CC4A76E7C238AEB1035424300F529ACD46926874190556133021A6A9283DDFE02EDADB7DE23A4D141B0787539B68110B4882A51F95403865BECEA06E2D7A1C1F534FA3366BC1AB387EB867477B92F00C0D09615BFCC1138137CEDE4098AD57894FF74982D71BA2ECA6A0F502CDC9C89BC6A44BD84FD8B62BB5D84332FAA830E2A732259945028D2830A8AA866F92C24E46D164C4F4658791C11F0703D906A82546C75F81285C24597BBA4B1BE3972F069D6B383D61CC32B9B66604B7CDC4BB39058C74CE770F04F758E6124543E13D2365A915802F75E90997B10B15E650AEE33A291C87030517B6C29CF10670D2DC5C8889AAB7518B4DC86D86E25C52ACC4DB175A5957118F983C3A4443B33803A3161AB24004B7A789778C8414A8AA8C819468EBC28B68AFE5333F7E666D44B5A961533280B0021BD3B24E2AA51BA58F2F45767A5722E918B1204656A2B44CE628A3A84125F918999A6311CB3569431C7B0D6B58ADAB6A30F9473B3747E33C7A2A9BAF87B709353A77743949277147928273F112B5E618167A5715157B49CED69A2492203A08730ED07B7AA14BAD136CFA969DFA68C28AF40B9763872ED1B05D4161489BCE1F473D4CC067A86258F6B664D2436D4856166CC60467887F9B97439F607D336114E46B2A2964C228A18EB532CC4C6813DFB841E60C3BAA59978234A06FC95AAAEABEC0123230AC33BDC48A4452403842BD6158C668F28F20BB5501984C5D3992594A9238E03798D178702B86973350724ABFCD15255F0A5EFB7783D909031ED02C52A203DE570873C7A7C556202D53A6C086899802BDC877BC6A813AB59B781BB95F4FCA9EE76028AECB9142A992DD7180BC1C15DBEBB66765C5ABBCC5EBF764D5234D89A378D5925FBAF63A00E35D568804B973450A045E55C7C5F4907FEE390FE6877963E386BC20CBE929C3D247611E346EAE401ACB972843DC204EEABB043644EEA29BA2C1A160B98F0D28CAF0677AB2ABA362B7BFADACA4E1197F54F03AC8033814A71E1CF407972B3F1D9A986637A972B46D3AC46509C053EFBCB9A475BC4055265961C79E1374C2159BD2409A84F22755A1B32E4B604783BCB2AC49A27A5B0B07AE346AC38F54A2943559F02270BBB19508E903888ACA4BAB72E332285837B9EBB466E5CBA74D5AB6BB3B2A0FA26209A97F959C905BB4B058BA8ABF30A5A6C190A018A9803AC29D84BA710B30DA9A0844CC1A1478C289C32737144812355E0D7589B9AB765CA3B23353A350876F05081F3E4B14D8F66C998B81F458A394CC68C3B7BFD37366EC93113DB928E5F9BF0E9AAAEAFC619E332A7EF3898A66020DFC64F671879691C023409B53686770F8148A2B6F7B62B6AA42981EA0CEA7753599585034B9AD99C9AC8B12872B1A47A088BD8AFCA2D42093928A4FB770198C4CC50B0214C4C94FC7B62B5E636423C6ADB553B138591F6372CA6D53343FF7C70782A2DDC4801B262F220A539181C13F3C3E8E0A0D7191A43A54AB008D326DF803FD8757F88AC9BDC8BC75CB83517AC71FF8613B3BA713377FDAD2199BFA332B8C22C136350ADB9553E3643D0C45413782F3BC9E941965DC051DF98738CF50113AB422E4A22759CA016BEA6FCBA390ED64540112842F5B1373A2847107A43403B4AA5CCAE154B9C54831E3911239B79F1FE997BAE30A542560FE6647A2E7C4916097FD484C3D040456EA2BF8B63DBCDCC8577B7AED99C05FA28D468272876B614045095E918600F7C94BB0944F62235C169B58789AE8BC3E6F677CA8D238602399E307553E235D11836BE120B3BAC41B0A668E0841AB11F49E27AABDFC27AFCAABBF542911B6A220CDD626D819C44C72556A3946DF86C43D1B8693944D399A3B5B1309B9780E34330CA387CDE8E4C9B2D0775A962F447828D6295873CC1629777FD93C062098B6149A3E7C383E2C33CC3FE7730537416FC1ADB6C09F4CAA736E4C796D2A97FA3807C9EAB72993B4B876136B856C7BC75AD054288EF491EFFA872247A99AA39A9C2B7602027D65A169317CAFCBB77C37D89ED32489E3C2557998A06689B06AB96615BB5752D439DA446354CB0640686AA794444A806C31D721B8C6B820810A5AFC00932A885107B5F968B5C8EC98207293D8851892A01DFAE4A99832326E3863BCDA75190C4A487B46E3914B702017B1B520CCC30A5C475FB2DA94EA217F76556BFEE825076533973BAD3AC7305B5C764CD040D723617090AF4A7811E9AB206C6A331A647D9385A5E7D8BAD6C89B390B617018C4A0691D262429BBA173598B37D7C245452853506437E756A399670AD8E292B0D820E3567047C82870E82236389D99D678CD9B49526AAC30D1B830B12F4E62407A59C8F88B7B5D088A2D08B9F114C3F158650F32C682EA6A76CB62D3AD7357CC617D597A3DBBDF515F6852D71220768859D599BBAA6D029BB2121C788B5B6EAD7226DF664490DAE362C4BEFB615717D81C656B32734248FF45452BCE5777B08108E059234029D3309CBC2BCAAD8EBB37DCF27832F2 +encap_coins = C11E2FCD6CC56977006F5DFA825271C6FD49069A747EB36C1765F5D5A22B38B3 +ct = 0EE0B634F06E0A060868C84658246D06BB56941C21625C4F5622624468AC984385C2649F412606E07775495D6E1B016B8CEDC96F96D21B8716BF6FED7756C71B80D2E4FA1411585EFD93DCFA519FEF08610431A5D04BA378EB73360B269F3AF3AFEAA77876B604EBA3CBC3DEA034111C6B951E235FF9127E3B429C6F949C4C7B7984624D9CC2CD19AC90DC5429ED8E8106EE5C6B5EA0DD41C14F2C29F6B5B35DD7DC571215BFCA8AC7507229A352FCBBE7C2E74D786887D90B6AABFAED943E9CA1EB2B2B503FFBC035ACBCFEC8B55C5CF9B6D4C6593BBB6B491CE9C59B1B94FC5DC807F7236223CB97BA6B4255EC9B500BA6AE5A786B9420334CAABD67498DDD606414B25624DE9E2490770387383882EC7F9D235CBBFD878B846F7AE43E58551E0F20B48FF7346E677574342082276589D3833CDF55B78C03C59F1C6EA13FF098FAE320EB7B7D7C4271CB109159FD51B0A811E57F88F1E25C726657810DECE726F426813C38F84962B5FBA43EB78AE4DD48B2E732D6F530462E0EFD55DC30B6A2369A0C978AF026647C2DF0E190011E010959D3E919739F55AAA439847EC68A18615BCAF0D5DB03EAE43AEFB795A00A80535B1C128A717CACCE39A6A6702D962761BABAB9F86E20DFDA0F36237366022B0AE6A67DD04E2F8E872BE0010F0D5FDDA963F88A206FD04DF505C035B52A92D08DA5DA95424A4AC9D8366CB18EB35CF6A2091F78EC670869BAE1D926FB51E2FAB330914CE3FDDC384BF4026D198D8E39EEDEE77A2099FFD718083840027F649C7B8AC4D7F05E5765417AAB0BE2C5CD7EF05C54BEC283BDE461B1936335601D5A128DA1C84CD898BB7A4F208D30DF3C7651F5DF7DB8F2792A4D5BA6594520745C216A7524B40E55D333231347B7BEA25A92B6BF839E44AD86099B0E3DD2C94A58850FD6FA97F21C706367E493659AA71CDCE3AF407CDBB84F4C925B4FEE1AB597686BF2EF798986FD755C65683E82FC9AB58129F40894CA9E692F96BF58B70B935BCAFE1F53AEACF1BA0790588CF69F59A2D6B0EBAEBDD33D5CDB5B5EE7984DE78FF082F6D36C3DA99D89B2FD955CF0F00ED82D99FEFE90694A34CB3F15841F70E2C823BDEC2678CAD278E67A9268313BAA5ED439537F3B9D4E490B2F4431E351EFAA925BE4D94CFAB26E4399A9FE0905C5AB60C1F7B23172705E4F7CA06C3741C0E819E5DA1501B8A65D41928AC95E0E1235D0D5F163937B86EB00A0D7C74B6B5729C64F4093F44188005310ADFE6223188E787F0A980BD29AB94E6B71A72D2B778A29D522D5F499200C4CEA46B956263A0490C7ECC88192C80F95716AFE5723F3853CC4A8D1307D5645B6664C417E4D7F837A60C5791F0FFF7F1779102D4E1F5E78F22998CBFFA405361DE2D8CB7656A438DB604BBF3DF59B07914798A4B56B35FCF9A8BB8C0E672B12E486374B9C0A6C52A5ABFEB3E159276E998D39328D67E656F053367008EC69A7F3CBBBFBEBEA6C1F37F24925374AADD9A4B13105066C45D29F4994C14AC42C4B6D1F47A8FA +ss = C4880AEA127420AEB4A96DA81CD6B2562063DB9C0D585F874DF097DDAEBA5B17 + +count = 81 +keypair_coins = 0E3B30E102D707538C2671060F603BB0B8A014103F132D63B09ECE07E4A4C75B7B129A56B51BE635054CAB9E84F2DEF59A3F8168E301EA2BE388C45B8CB022EC +pk = 30E92DBF312758B73BEB83625DF3B8D5C47A7A334D4E140915CA1401D461D7052E9FF05F73A1598DC9622C324C1C8B5DE9B0386EA3CD95B86D80085588AC69AE310BE6B5B5379202F4F14878FBB5508907B99490E4191B1E13A6890A9209F0A12910A3E096747EBA94A337AF9E609DA4E8A9F8003633EC099983B8E778CA3D72BCA1C19B4FB4A0FAA4459EA06782367580B7AA49AB74B60C4CEF7AB3BB9BA081227A7E1AC2F5400F8F7395F96567403B2401A2ABB0B70E92E6CA2102C597F496CC8881D7B688861C7988363112155B5B88271072A7A7D68B76036059CA5E402532CE8763C52CA237A334832832F2A49BE3907D15852FCED4675547796D3046535390D44580C24BCC3D67A50CFA2AD8936D46121A7F60179BE7AAD0746E8A2C8CAE124D27181A374493DA6A68D47387A44460B39A45B2619F1D29B08BA4495230470B87BB926279EB760B9041632317C4D7A19E7753458DAC07EB73331D808CE318555E1A2828DA2F1D101CDC9B8363990B85064F63226C36C71061444E17A28C3B56332BAB4BEC2602F5C31394C870DD21030997564DE52602C2628C41CB7AC2388EF35371F870A21675AC522660268A1802A2E4CA4C7152A9776410910175FD08C5E0307F4C2A61C877ABBD2185CE58738FDA15335ABA2C77A804F94077A777FB49854C7A78462263E435A1D7B4A5205AB879438A91EB60397704CD937E66C7310625A6276182D86894EF9750F1817D85709BC578092D3B65F5C84514361264909DC2147AE6F3A577097E64BBB2C679C845D827B1AC393497575E385BB39563E125C3A3925A21160201897072F03F45D6BA85DB7EB1D5B8EC7111DD785EBDE07056653507E967385945389493B95C0A95827583F01DCD473FD3138887D3472E18B24C1B7E2C837668FC6917175471F3CAA1323A34432B72C7B68F658868A2AE87306109B1053ED2BCEDCB7037AB72D8C2BF48D29A0822575CC91CA1E5698286C9B19A7471A5B652F6A900659DF9183C76417F0FC89D743AA635791D588CAE6F650F3D314D65A6AE81A935F38B964F290BE7A1A75F256776F17383F9BB9F9203415622B60B2A152A7CE3420CB49C3592AB8AAEC009A237A12C2C04ABAA08A382622DC84A053C94881664A97381AB88CA41846E82C02E00C6033B4721DB29B71FD29069297A2CC387F2AA5336816C66E75B594BCD144171C3F7AC6DF8A9A10A71F35B39A3DA7D53571CB33860315288C2F7843E855D27DB6F27B38940F973B2B063EBA12B3A8B73D46C6781AC87F44C91E982CB27E534161212B367AB74A318B0F41E7A060823F17814F9A6E4F5A9093A6379FB0291D99916B15ABC596550F152BC79703F1B0393B720CB85A510D4C9557ACF3E620CF994C0BF8C06C2606041E7C3CE6044879A7612C3A2FA587B1B7676B956291A7BA5A78527A163AE08696C7C881076189BC1623C8D360C8D85C287A9C0C6965D0FA315E2037EED604084416FE31B2F01C7678311ADA765ACD7F70DE59A9A85A8249205C78CAC786AAC9A0A0A7352B18F9CF936165A9C39D99AAC7C175A5025F1C66D04354480175FC3249930E66C9D06AA50E7ADFEFAB6AA9C205C1507A8F40512A45CEBFB2B39F3330A962ED717408E0934FDE42A5E1CBF04C80F37D7DFC7EB53A785194C4A1232E61C37A5 +sk = 2F766AD78A0112B8CD4BF28DD0F589873553BF114F19C2719F61A32CBC85C71975B911237BC6AA6ACB32B613CAC9DC80C85493FAF63C3E337C274542AB4729D02ABC5DC07309032C7112540522575D663C89714AA7A456410144D7C2BC1041C03D5A56E08CC7E5663C01F52E5077288BB8CBFBA21B4A8A19C055691E05C22F94C62C3CC2B6A9C155E2A4EB2BB9D95B8C9D5A6394D05AF87B038C210D9FAA266CF07088B3CC7AB56FF3366FBD595B3C790B5497B34B94A72D8153FA13B40BE96B51315CA4D22BE3828C3556843545C47B0254266A802A44BEE6E5A19A446472322C6AAA4CF47218EE3C99247564C552C93ED589EA8BB2C637BCF7277D5B5058DD80342815B2E8864B4C330920A82EC76B4A7BB893E0D18278F47F84743223A67F2983AC8C4A1845A61259670B02D6053CA181BA4C1BCCA05B7AF2A27C59C1E4E38DA723B787AA2F36C71E3BE05039183BFFEA6AB3BC779DE2273326B327D42517B6C6ED8C7F96C6330D4C39E3D2A7B81A538693329ABBBB5947B068C3CF7B45C173C1BA9964C86ED91D0BF64E209C1910C218434311A50A2128D52754148159891E00475654AB30B9693AD507B2E19ACB7FE6B14F27C09C6B2570B861926683A285014631C2D7CB8C0C10A25D073D3C067AB819B9DC27971825AE21CC2E50D377E3396F0266A5BA598BBE9A868B0B6CAD2CA3A8CB503778967BB930D90795719B237238C1F831007C690186949C600C6F587AC0D81C8334C57FE0C59DB3E2815D63C26C620FDD75836261644D99327A334EA5A40571F0CDA39CA716D2BB894A50BC4CC84D6621B60509DAC77ECAA39B9779A3696749CE83933EB70C1E85BB2DC3421AE9A0EF40AC2D83A1FAC16C6DCCB0AA16AFF9A94BB6D125665C3001B845E7F20E7C90A3DB636950B0836BA008DA33500FE47FD4A81DF0E268C62974BAD02A6D3B2267F917E2046DF3C1883187683F030A28A129902083CE26730438B0DC0042998C9472F5A7FDBA371D74481DBCB9BC4CB281E7CC1DC4455823AE1AB8B233E83324544913DC261B6274464B656BCB645F87B0CF4512AF443959E67C47D679020C2905D45E21DA586EE8291085A8A432AC6AFAAC594081EC298DC13175779B8635FC8EAE58982258759999A57B704A5B040245D282A9B6C9CBCA838399523F26695F60389AD42F6512783AE65A0C25B7258674398839AF28866671329109A58E579C026549F0B7041DBB6623665FBC9A2EDE41C0436635325912366AB1364B5A3162C4B8C2A14480AA6BF165588B8D26EA968291CABF66A4E26722F87977DAB7807A2C65A26A9CBD339BAC0B24E6B46E0A8082BE95BB7A41B1B8B670ED3105EAF994A06A6414E9ABE2A1B608C29C94B846012A0FCBD6959ED411D8D0C70A32559C68C74D94B2A9707B9D9755E3C69AC40782E97A1F904A32DA824C7459B59B174A9FBB6B41947F47B3361D5558D831B2B444818FFA4C17F4BFCF8B9C7CE451F4CA99884C13F85C24D3CC4740D2567A54AB0583A175759FD7E197F3000A39717BFD9C768248518D50791CD84DBA795E85388DCA21507BC669FF0B906BF515F38C04DC838D0D1357377B1601887AE1B0A0C4490D38A871910C695C50008E5A5A30E92DBF312758B73BEB83625DF3B8D5C47A7A334D4E140915CA1401D461D7052E9FF05F73A1598DC9622C324C1C8B5DE9B0386EA3CD95B86D80085588AC69AE310BE6B5B5379202F4F14878FBB5508907B99490E4191B1E13A6890A9209F0A12910A3E096747EBA94A337AF9E609DA4E8A9F8003633EC099983B8E778CA3D72BCA1C19B4FB4A0FAA4459EA06782367580B7AA49AB74B60C4CEF7AB3BB9BA081227A7E1AC2F5400F8F7395F96567403B2401A2ABB0B70E92E6CA2102C597F496CC8881D7B688861C7988363112155B5B88271072A7A7D68B76036059CA5E402532CE8763C52CA237A334832832F2A49BE3907D15852FCED4675547796D3046535390D44580C24BCC3D67A50CFA2AD8936D46121A7F60179BE7AAD0746E8A2C8CAE124D27181A374493DA6A68D47387A44460B39A45B2619F1D29B08BA4495230470B87BB926279EB760B9041632317C4D7A19E7753458DAC07EB73331D808CE318555E1A2828DA2F1D101CDC9B8363990B85064F63226C36C71061444E17A28C3B56332BAB4BEC2602F5C31394C870DD21030997564DE52602C2628C41CB7AC2388EF35371F870A21675AC522660268A1802A2E4CA4C7152A9776410910175FD08C5E0307F4C2A61C877ABBD2185CE58738FDA15335ABA2C77A804F94077A777FB49854C7A78462263E435A1D7B4A5205AB879438A91EB60397704CD937E66C7310625A6276182D86894EF9750F1817D85709BC578092D3B65F5C84514361264909DC2147AE6F3A577097E64BBB2C679C845D827B1AC393497575E385BB39563E125C3A3925A21160201897072F03F45D6BA85DB7EB1D5B8EC7111DD785EBDE07056653507E967385945389493B95C0A95827583F01DCD473FD3138887D3472E18B24C1B7E2C837668FC6917175471F3CAA1323A34432B72C7B68F658868A2AE87306109B1053ED2BCEDCB7037AB72D8C2BF48D29A0822575CC91CA1E5698286C9B19A7471A5B652F6A900659DF9183C76417F0FC89D743AA635791D588CAE6F650F3D314D65A6AE81A935F38B964F290BE7A1A75F256776F17383F9BB9F9203415622B60B2A152A7CE3420CB49C3592AB8AAEC009A237A12C2C04ABAA08A382622DC84A053C94881664A97381AB88CA41846E82C02E00C6033B4721DB29B71FD29069297A2CC387F2AA5336816C66E75B594BCD144171C3F7AC6DF8A9A10A71F35B39A3DA7D53571CB33860315288C2F7843E855D27DB6F27B38940F973B2B063EBA12B3A8B73D46C6781AC87F44C91E982CB27E534161212B367AB74A318B0F41E7A060823F17814F9A6E4F5A9093A6379FB0291D99916B15ABC596550F152BC79703F1B0393B720CB85A510D4C9557ACF3E620CF994C0BF8C06C2606041E7C3CE6044879A7612C3A2FA587B1B7676B956291A7BA5A78527A163AE08696C7C881076189BC1623C8D360C8D85C287A9C0C6965D0FA315E2037EED604084416FE31B2F01C7678311ADA765ACD7F70DE59A9A85A8249205C78CAC786AAC9A0A0A7352B18F9CF936165A9C39D99AAC7C175A5025F1C66D04354480175FC3249930E66C9D06AA50E7ADFEFAB6AA9C205C1507A8F40512A45CEBFB2B39F3330A962ED717408E0934FDE42A5E1CBF04C80F37D7DFC7EB53A785194C4A1232E61C37A564C819D9BF66855F6AE70627F04DA8378547E5867E2EB9759FE0971EFD601C4A7B129A56B51BE635054CAB9E84F2DEF59A3F8168E301EA2BE388C45B8CB022EC +encap_coins = 5D5B9BC8E9D09B6D5F96D13A5B7A8D8F491C15E7AB912A17CE8141299FB6CA44 +ct = 8055EEF1E7E8381C5AB7D61375D0CD6317C58F1D5C79AA5D986086A3498046A8CF87E00FB606598A1DBFD418D558DACF89DF656186EE7CB71B90A38C035758724BD97C3FF7499E65C3A461B8929A3863A37B10CB2CBD6C110C9EB73E017A104513F8C9D7D9C80C9D4322EF0419CB732B00E2AE366D31C925AF659474F2FCFF470A996B5717AB68A5E15E5722665CE55BCF50223452ED2833857160F56EB2C73E8185947C22F676DCAF679198F7A3B780CBC545BD0F2D4B375F8795F008A1074AF6C1AEBA37599598EF159E38458E9D805200CD27DD0E4DBBFC6D0CC23C0BD31B80374CC92F67ABE7B1E9FCFBA32086CC7B82D18BD1991B94085DBB6AEF7F9E80D525DE7F2FD44B40D607F7A986B0630E0C411B810FDCE2568942A12D698A1F953BAEDDC54E4C331D2F75B27DFF0820A5BEE954C3F5EFB5F824DEB1CCF56F3B873829BFB4C8312E2E783ECFB6638F0842F905BF14FB377C3F79F69234466FAB21275180ADB6EE164B73B32F445C3EDF4A43852D0C35B53B76966BFAD84ACAB3F906CFE1F8E9346E22E1EDF03714EA276249295F0A8FA14CC9F5585FBCDD7AC231C94E1F5A3E43F6A8F9A5B240B9749DD26E6C8C46932616F07C0CDE3B43C22EEF685D2618EDE2CF16786DEB0616A4AF9F53CF926334B881E1C845E90E0F6B1DE4BA4DDBFFDF462E51E12E6F4970A66F33E64BA040E2D4BD2A0824A487CA363F7E8D4519198EDA027451967AF05C9EEFDB54A93214A0B8134AFE83A7861B828FF0BEC05C5127421A8DDD20708EC489CAD0752BFD4E69C303386F7AD044222558DBC06F9EB3673C9DBCF48DF227C835C852F2336F8CA7D097180AAB26D0E0B15C9C6FDBCB469EBA6BACEDB2A11204B27ED2A57A6434F661A65D6BF69819093F33E6CDB8157E966804443BCE3BCCA63B99E363752603B1D5E1C4A7E966505106A4FB920474C40997AD180B974C444703431276A8AE9EBA72BFFF8527AF405779E17A6C14F4589AF3AD28B0211BCD3E576C4FF4189882A4743A485AE42F260BCBC279D2477261F75D9EB3DA149A7E1169F401716EEA4567096A4C5C76150B9D1A8A83ECD2E81171F994E65E5C8480DF4C107CB5A002972E1AF91825CE08B30174A84E393E2790E4200BDF718F437102B90785F882ED8715AE9F061A731963FA0273CAB196B8FCC950291576DC55F8DF1D86562C8CECCB6FDF2A023817D6B09E0CEF53B4765A0D62F2D940A3C5741AD0A229B8C29252B810AAC5C698335C4ACC93AB59375595F1C9396BF74F38469C828BC6D5EBB86A27D23A6A943547414726D27C61BB0A9546F452525F3D6391992A66088F9032576E58EE880313F8463DCBAFA41DB0A2085759C4555423C1D52D65B57A4CC7C03F075915C067E7A64FC98A2F7183D58C0CFCF0FB4B21020CD13C7B4F7E65F843667BE67597DE1F3FEF0A6B5FAB0F9FB09BD4DA631372ECBC3500FB6560288EF41CD153191E9D7F8696EBC5F899EF77496FA6FA089BA009F11404C47F0C1D15CF60A6EC791070A550002DA4A0FA09 +ss = 67F2E28DA0E65230D0CEDE679CA0DA4D8E970C8532CE81DD3BCD9F3743218BBC + +count = 82 +keypair_coins = 2478F7D3DE6041E7E5CD11C5E2EF483D1AA6218EB126444091535F6AE532FA73F0C083AE8CFF7A4BD779D4385E111ED4583FE00D30E651F171D7E8A90EEC0DB5 +pk = BE0AAFF4D255D72C6E8424C2D5D23F0AA4C28094691AC4BF0F56A51EA4799810CFB024C151C35CC3C6CC90A41AB964370C2BC953A84A73C87A02813DE34B933F233DA28643A93388F944C033236372FA6E6ACA085B598123F27122A40074A4AF57684D46398E5D58B13A863B0B984E224A7AD52C1C4EB26909451DCF2A15DCB11AC4CA38D93CA350078138E0AE87F1390FC9045EEA420260C913C6B54DD93495F31AAC32350CD03500DA308FD8BA0777C999CB4982C91E569A1C52396EDC506AC7CC43264A05CC880191501860F1A32F7760AD3B17FF693508339FCFC05FAE095C6A96C1E6864BAF147186BC22DD882620E5A5F4516DF92B8B715394C5677D0DB913EFB25459D6C636442A8CE22899F8943957BB2B281A8ED14BB5D0CE6DE3086EA8B6165798619B2ECBFB22727CAFC6409E23088C6C940C23E86A603788C07BA89D6BADCEF07D79174ACF70C55B7B30C067BD8202A1A70998459C54384196F814515EC9C7F360061270090EF37AD32115242C2AADC0121E1A08623038B311982C669DE3DBB1C7789530191B07A947C9637BFA241ED35AA1D03C81F0D70F8B95112A3B1B08B25C34DC7E1D577FD30A808AC574DECBB51538C2A017287E62128F32AFB0F7A73EC8831E6B975007592B5C652FA636C7315BAA474F873A5DA2E82FD146268DC951689BA83E046C0F4820447C3B3E6C78CD240BC4D21E0A4660EB1C69402B617B83057874122E203BD6313D7874A987F2987599CD4D7946E50665F7D9A80651CC8DBBBC4DF605F48274FBA0640F8609B6554A7760856259C32DF00D3056AEF65436A285583CFC9D9A644F66E382D4907C6D78AA461A2B6BA8887C238F81D31E796A675EE8B7A598AFD5D79A0587965420A2E9F2782B71331737680A499AA759824D11ACF1A001F9A5865B6568ED8A1F4F4CC38F74C24E231965E9830232924526BAA377B2EE933A1FC4677EE74FD98A0881628315AA95085C7415A1A51A98406FA345A69802BA71CFC885816EA30FADEA0232B13EAFBC24B84347124BB41F8C663506665CE4C3801B09933C19675C1F9CE54C418207B69215C91B10451730DE65A4AAB6C97804AD33C50233F83599133510BB334D9C1F4B7970087700EF45500CCB31B7933FE74A346AEA4C9BD409BC5A186F00BDCA67CFA8D041DFEAA56547A71C35CEF1B664629AC9D4F431CFCCAF62A781A4BBB2ADCA7A7914627DA380873977E6E1A11FEC0938A3A886E9B328A8A539557F6C700285693266742F779BBE2E7A0603060673C7BE9591BE19A57A0CAC91CD1C61860A86356B90715886ACAC2306190CFF686883A61E56140F64BA76123C1B07614FF5C8A4B402CDBA738AB68B749C1151DA62C30DFAA3BF826D4848C4910C9EA20669735CCA4DF583E0C5412B610BCE816FD17AB9C203A7EA42081901C8CD78940F090EFB49718AC90AD6A101093580C13B5FFA0AC0D7B094D913A9DDFAB03F835F79173E966746C69A0228D06A2C363E94522EC68312CD312ECCDC688C4A88F6A5B7C3464CB7EC842FC1377359A162032C8C504105461936714F451481D8A4942D1715B6A65583999B96B0C47A914F2F721F5EC6315C91B009E714F6518BFDC75E828256F25740C91E7EFD93A5D7DB1850127DF85B8F086DFC57F1F62A86D6EE7E45AFF3F27BC1 +sk = 6C33B8AB2B4FEBAC9FF7DC3E4A689F468A4F08D5C87EF8A142B4766E24073DF336EFA5A0D6FC17B6BB2C615658EB04AA9035560FF7979E27C65A85CA6B1B9BFAAAB23D89C6A825CDF7E312F81066D516BE72680E5A665830F74E371BC411BA86F00704DCD3C40C8C1295D6B52ACA51AD41732032535AF95BEF907127EAB1EEB54899A36961793EC47B91D9725643664082C4375F4843B0031B815C8DFFCB7F25D4414191746D5AAD14093BF2C005DF655F69917BAA956721B4CB8B8B51531A4A6C0CA50F8AB21DFC7CD9F81D730157A59B971E4B4A0FBA8EF49754A7C2BE0325C8BC623FD2A94A6CC4226677260FFCB64D75167D63334E395DF5BA4505495CBC8C3A3E40AB68796D6C646775339C29683A21F921A7C6A79D39A95C876F782A27A6365908381D793B537D1A681CAB5599817E050CCCF7803BF9A90CCC4084743C96069183B08702979C9DCA2B9D9BC26E1DE849976AA1465B29EB260FFC64478C39945A9B402520172CD7861C5A0CC089A028C8200208B3E4D7B3A91CC8C209C5E1D201278B01CAB34126C701BFC2913DF501F6D73D9424CF1176B8616C04C10940EF9832957585EC350E9761505162AECB28884F659EA23125C382CF24F383F9B09FEEE8AACB981DF21A6BCEC26E2A67493B919FEA06170C18B79E5A01E6E89516707BCC7CA353727825514AA0D52504606013E53BA916BD133814C36B98FFF15F847B7383854F692450AAD28231F2BB4FD839D2B532066114DA65BE8CC5073F9992E03836CA3A623C301999A56FB00332D1BA8A26D599D0F5A97975814BE81FC9DBC536D1C165A131CA3C55D04A05D7A53FFF1299D3860CAFD8BC6E3B97E72A595D294303A12994510F74887FD1D7BB18DA70BFC5BDD58C1F6C1CB56F5994B7F2225CE0AB29E8CF3DC851F1AA5BF2BA255F7215CC71C5DA95115D6A98A2317224BC6DE1B2C79353BC5C3C046A7A0933A73419F7B117B88F3A53777143546CD29014E15E37C33770A8A9A11BC2F38777E400132A812A984908B3D2B87FC465B564045E79453C0666E3682A894C269551AFE25286FCDB681CB50B260B4327B46C2D0699BECA103965B0A218902EB4680C1B8C3ECB2011A396B0DCA97D56AAD231168FD9A7CF177B85B7729DE4A4BF035482AA7758ACA9E1F36BC9033EA34C6DFF91091E8B36FD2A2C6B1094A8338AD540C8F53CAB80D73E7DEC3977452915B616D0F0BF9E842663CC477CDB5DC94579D6222D1B647EF4D358C5435D3D0799242B66818A683E8C5651B0B26CE4909F8656FF35CD7FFA1C5988074FFA32DF093BCDA32AEE2003825593B545B44190787C4C8656D85CAC293F615811CCB35EB0413F44B1722E0A182F09481712AC68E3C9D31085EA77946A54BAA91C8AB8E814C5B94206070C0A6037BC02A292082018933A5AC32141180A6DC760C2C9ACEB3B1A1505464150A732664AA51B02A721B63759379A638BBFD07FF9A7A84E071FDA70200C61894A8891DACC375C120A35E0A4F296A02845477BC0484FB5BC539C3B8BEA3ED2511D480B1DBE76C640622B67A1A8E000B954057322CC005F88284D6290A5D720E32B5F6CB6B992BC182D66A73B5019572867640343F267133B060545D4B2BE0AAFF4D255D72C6E8424C2D5D23F0AA4C28094691AC4BF0F56A51EA4799810CFB024C151C35CC3C6CC90A41AB964370C2BC953A84A73C87A02813DE34B933F233DA28643A93388F944C033236372FA6E6ACA085B598123F27122A40074A4AF57684D46398E5D58B13A863B0B984E224A7AD52C1C4EB26909451DCF2A15DCB11AC4CA38D93CA350078138E0AE87F1390FC9045EEA420260C913C6B54DD93495F31AAC32350CD03500DA308FD8BA0777C999CB4982C91E569A1C52396EDC506AC7CC43264A05CC880191501860F1A32F7760AD3B17FF693508339FCFC05FAE095C6A96C1E6864BAF147186BC22DD882620E5A5F4516DF92B8B715394C5677D0DB913EFB25459D6C636442A8CE22899F8943957BB2B281A8ED14BB5D0CE6DE3086EA8B6165798619B2ECBFB22727CAFC6409E23088C6C940C23E86A603788C07BA89D6BADCEF07D79174ACF70C55B7B30C067BD8202A1A70998459C54384196F814515EC9C7F360061270090EF37AD32115242C2AADC0121E1A08623038B311982C669DE3DBB1C7789530191B07A947C9637BFA241ED35AA1D03C81F0D70F8B95112A3B1B08B25C34DC7E1D577FD30A808AC574DECBB51538C2A017287E62128F32AFB0F7A73EC8831E6B975007592B5C652FA636C7315BAA474F873A5DA2E82FD146268DC951689BA83E046C0F4820447C3B3E6C78CD240BC4D21E0A4660EB1C69402B617B83057874122E203BD6313D7874A987F2987599CD4D7946E50665F7D9A80651CC8DBBBC4DF605F48274FBA0640F8609B6554A7760856259C32DF00D3056AEF65436A285583CFC9D9A644F66E382D4907C6D78AA461A2B6BA8887C238F81D31E796A675EE8B7A598AFD5D79A0587965420A2E9F2782B71331737680A499AA759824D11ACF1A001F9A5865B6568ED8A1F4F4CC38F74C24E231965E9830232924526BAA377B2EE933A1FC4677EE74FD98A0881628315AA95085C7415A1A51A98406FA345A69802BA71CFC885816EA30FADEA0232B13EAFBC24B84347124BB41F8C663506665CE4C3801B09933C19675C1F9CE54C418207B69215C91B10451730DE65A4AAB6C97804AD33C50233F83599133510BB334D9C1F4B7970087700EF45500CCB31B7933FE74A346AEA4C9BD409BC5A186F00BDCA67CFA8D041DFEAA56547A71C35CEF1B664629AC9D4F431CFCCAF62A781A4BBB2ADCA7A7914627DA380873977E6E1A11FEC0938A3A886E9B328A8A539557F6C700285693266742F779BBE2E7A0603060673C7BE9591BE19A57A0CAC91CD1C61860A86356B90715886ACAC2306190CFF686883A61E56140F64BA76123C1B07614FF5C8A4B402CDBA738AB68B749C1151DA62C30DFAA3BF826D4848C4910C9EA20669735CCA4DF583E0C5412B610BCE816FD17AB9C203A7EA42081901C8CD78940F090EFB49718AC90AD6A101093580C13B5FFA0AC0D7B094D913A9DDFAB03F835F79173E966746C69A0228D06A2C363E94522EC68312CD312ECCDC688C4A88F6A5B7C3464CB7EC842FC1377359A162032C8C504105461936714F451481D8A4942D1715B6A65583999B96B0C47A914F2F721F5EC6315C91B009E714F6518BFDC75E828256F25740C91E7EFD93A5D7DB1850127DF85B8F086DFC57F1F62A86D6EE7E45AFF3F27BC1DB315CAFBAEC2F8A0142F45AFFFF65289E826C9244AB1CB03F9F65DF3E3CBCF7F0C083AE8CFF7A4BD779D4385E111ED4583FE00D30E651F171D7E8A90EEC0DB5 +encap_coins = 075246AEB644CA0C05B7D6E50083363D4F89291711D8412F0131CB1BDD2C70F2 +ct = 8856146CC12FD54E5E21AB6C5D6961810D5B74F2D491DBE4D46E069DDF6383652BB9EF2955C32032392DD42F344ED15C750DF8493C8EAEE281915B9B3AD4DACB19FF4E417E8C93B2DBE6527D5673168A15D3F0989496DBBEEC1CED40F7118CA6A7B8789A57528EA426EEE8EF9BADF06BEBD56431871AE9ED848D3C86157B6A9054552E5CFE452AD0531F86A78CAFF934D9148059F76B86B0E8741EC1916D81D24301C0A3F77D145E68870E53C77D0599AABDACF7F0A5574C6CE98430CC156D2E5B06193800A0FF55F7E3EB8FF3B5408EB764C6C578A42E36BF1FD4409ED23B95F03C56A0E4F423CDD1C3A1DBA430C892840D6E068E4E71B93F9BF3EB177D3EEB6A7C3D69017D4222A315CAD8BABA0EFC35AF9B2259F1B8436EDD0E47ECB09D919529DFDF5E0D664E9DB4DCE8A3563596BFEE87EB68BBD8B506F23F8282A51A2A7EC9DA0FDD2340AFDA5202796FE0EFAE87BAB9A33486CAA693E1D5EFCAB17A14816688EAE313C01EC3849048A90157E5515D70B74C055A4AF307D5A34B17719EEF941B80D4EF15A9CFFD5A93D79FFB7D4C87003D979EBAD5B28EE1E8B673772C87B8A441C72E41548BD62FEBBA01D02DF30367D20A599AE8B8140DA4F1EE35744C4C591013F7DFF675A2552BDB4621E322D0DF9FE8C4FC7D4B52314A89851C62585CA2ECC813BEF5AFD8027540DCC422420B121D71557CD40CA3CC8B540EAFD9BC40007846095C4C909B620CD9C3201229A31D855CEFFE7C8B80608A8AC1C6CDFD3D7344B21BB117BC00F8B2DB04D7E7E57DA27D60E6F2080E5F97EE9CF70F7A01A1EBE50CB25299524B001B947080ED26E232F2142623FDC97BAF3C7266C0AF57F385FBAB0D6353A82B0C588477E78AA4AF1B817A35BD448BA4C29581176C27EC5A12543EEA03EB57726B8C7C0CF01BAABBB9D81D5A8067C4E39B8EDF3DD43D18096C4651FB1E85BBD6B20A65F877C4999429A30BAE80096391D8ADB92040864079E8DF9FD54A1F6D9710371B3D27648C29F93C9FDF1C19DBFB611F3605E0BAEFCC1874991389049393387128F5FE50564A24201E024E95647D5AEE7E7E351FE01F3563349493F3889BC54B29F531914545C8D785545EA09151A12E0C873E9546DCDD7AA78F37F32FB72AC5EE01C1814197AC0042523EAC3F672076DADB7A8C872D078D7C76C7B16E08FF54F8982FF49ADA8C84CF90E94521F6F00201462151913A15929005DA8286E2F8FEE69C3AD1B841C8FC9BCC9544C5DF5608E69F980FF0772DB6532FE276AA7D24010B27BB58134959B03708A83ABA7C22415BE3BAD9D0CB45F0D8FCCE42F58D64508A11A8275DC7289BBA124EE0C0416016BC22214936ADC68E35B2DD9BA6939119ABFA9F140F46C14EBBED91D33F4E83A21BEB9D14E60DD87B3070EFAE54782D70946A6BB8ECC6B31B1884DCDA7E8E0428C73780AD259E07BF5523F99630ECD51B05BA3C058E9DE2F24C47F06A01537E59C3228111DAEBE4A3328F56E70A0EF47079D8C9C1303D9EF325E87517DD7F1E0AAB5F5D6F +ss = 1FD88AC828C344A627CF29883BD07A328D1D7CCE9C821C7C14704ABF998776E7 + +count = 83 +keypair_coins = 9D405D3EBDAF35FA8722DE431B669722ACAAEA2FD10B814310B17F78B66147D1B46F84F01FEFC519E118AFFC4A7A1560F1F8ADD6DE72615229B997B2CAD6393C +pk = 690B34B6586039100E84215EDDB39AD2D40BA9F80165623122A2C5FAF3437AB0376894CE67397D32A67C3BFB9761850C1C68AD988348725C83A378143D504400F995157903B9D04EE43404AB2CC7C35B8E0E09CCE4559945F5640450703F81C35ED332746162F7B8328F78BFC3359E7C1B4FCF06155FC745C70245FFEC09ECA957C8475C62B05BFFF288A5E5A5C78206E48C3EF373658859C3D9636786980578C07B764641D6A87222224557D10436FC72B563883ECB0934E50B6EC89429D7792EC0BFCDA416FC2AC323A58DF3FBCDB6E023140478868055251B1C09FA023E240E109869C1D2967F598A529042D9859F97CCA2E85A635418707B3AA1835B77DF93AE4DC53F228083DE6A04BDF58655C59BF57B107987B88CBC001E010B9C2458BDF138288190F955B62C7013DD5784C809A7B1A29F8C3C33F0311A555306327392DDD44EC8F72FD5893F56F58BAF207F9EE98B7E31092F761C390763A8B57409C7C5C665A913E20C9B62A5E80646364AA8E3B95030FB2FB289991B8637EA57C7B324A25E0389CE979B5E816FF841456261BF042C85DAD84F80D788076B7C69CABB8E389A72657D7D63949657B934A468516C36674194DF1AC3F595A294C28D24C26E1B1B5AF5B542E025A182868E1555442E0B0D064865ED5CC1665074E55AAAD601779E591E1ED2AB07CC551437603D24CA743218FA846822B2857F871FA26834E0422746A6C7DAD256BC0B4BFFF21BD7309482D7669F8857543A0436140EC684C959D26F2F827A84B37534B7AA3BC0A08163689F01141B511E7D11A316D2AA7D73909E889DD000C20E38667DA048278B5EE87188607B4210642F5C38866FAC1549637C600C8BE8C60C11AA394E8344B6C6536E687EF6DABAC397ABF1CA7486F6AE87D8A3DC8070B5687F7C6A73225B9233685C6B703D33677998C24E40A72894193CCA1C5ACBE4A133D85A6912587AD4AD522214974CBB1F877E16164683021EA9C335D41B000CF52A3ED45B2D95B7E2D061B5213DB4C6BC36D76DF5DB9EE6984D31BCB1F6757DE7E51871F1AE7F388C5134956D3286A49BBA39967889C9A424772BF5DAB014C94893A4C8B74AB099687919243C7633CAF297B2B73AB15DF419F6EC22D15A95553831BE379ED0489749C495E3B6B8E190049A8065DBA8933FB21BA3A751CFF289A2E2772B06A4687338CA88C0EEF1488B848AFA1041F4F9607EB18BC0650055803041B728F2F1922CD984D228096FF29E71F097921423CB82254C40A615240A2482A3F5F095F5B399A8F9ADDEB6B726F43E3AF64D09038CAFEA26686CAA2CE2194CBA660EDBB083F92DC2A51142BBC922958C86C62CE7A4B3A4C95240D72244A912C3C193485208CDDC4514495B35863CFC6CB41FA721A78080FD7BA72669AC6B29ACCD3B832D35AD70F7584E197D695B78C832000C1C337FC019F0AAC04B2149A469420C15B2DAF5281DBA5DC3618E0135C043F139CC74B14E7451FC11328F06B73F124766403541131D94506628C30B7BA68564179FAED9C9D2A20F3B61793A33A65E92B699A47FDE974EECBACE22690273A757DA903A886778002D283A819CB1EA2D34B8462DCAB57C85653E363629D9270738434AB1BB46BB71890031FFECAF8FC027D2DFA2A4AD271DD702F055836F40CA137E5D0EF9 +sk = 2220BFA6A447DB5013ED5811B45742B6E95C723A35851518E04B1B619C5607944C341A1ACA4C0EB297BFE3990D514ABA3DE30867D646CD76A1EC1176F1E84EE60704B0E04366E27ED0F321BBF42322F5289F5167435B880851B48DE717E40A1B56387D4705815701BC2B80C55F33B3C20244E0E27FFCF43C457A3674000A4404B4157CBEFA05C54F50021684059939A3AA088DBBA13BE56047DF450AFE33C8742ABB0CF48E0B1C24E8719EECE41EC4A3254836B4E45B4EEBBB43D398A813BCCC0C42CC4E437050740C892B657765B252943896325E3F4C45887452847AA315BA8C811B39254A5C3EE64F65823FCF2A92E3198D2981289E021530AA4CBD210FABF51094392E25E755D778A02CA145FFF47165711AB9397A0F9B3DEF26BD0E5143C23A815C8582976521D63BC74D8B42B95280CDC77DE3528628862F44D475F49AC204C87D2647414A4A136A094B7FB923BFD3496B187592E81B8168BDFFD9522F60BC37052FC579CB3F7A398DD677BA14A3FCA1248057A59A58531B7A1F1773735A27612520B03121390CF624D46927CEC7C7D00AB13DC2BA6445236BC68642EC9659D7BBA40AA692C40794BC4BF5F13FBB617E711A54BD825329AC6A9AF2A88A54A600C0CD6754B4A3ACCADB397CABF2AF41463C00512D6D206D011BAF6D833E4ABB8DFBF736DF8036278A8125389C3B99940881760AC150967464483242DD52358A075271FB82D949AF57F345E5DC46845A94A37893613A76B6E7B4D0DB0EDDA213302677FB73C493A349704333278B201B6BAA8315731A348DED27283DBAA05E057C26C35D68A5252F1715337A1543895DFA4C395F9909B7B1283B450B71730292C32DCFFCA05221B14849AA5F94888E2A3FD33CAB3B380F8093742247AC27012E8D7A6B8702983DFBA43601677679568A8051925133FBF6550DC318E387C3E3176EC9C3CAD6A739C6BA5B72FA587F000CA8F06EEA003CD05970652B0F3F92B8BD4AA1570B02CAB21D2BD0A9937A499943CE285B32706589C11CB662461444629F5C755B4A09805DD5659127BDCF5466270A5CB6328FDD0583E701AA98D34095506284B63A6F7B39D0B31FEDC43E20E4BCB39B99D82515E041627FC5402290BE758A062822C26B750463141D9DE8793B385F556A3A3F74BD8AB61F69304AC4082E08F2CD05E5BEADE17D2C87B9535A084A6B0547389D08F548030B1DDA0137D170039E082C5583BC83695AFF0898F7E19E54204582989556B924DF35A00C518AB95CBB466B5BA0D8AEF007A8294294870902E74152832365FDB79508B69E45484139B4342DF8C391864B80E807B9DC8DDCD4463FD1A986986B81A62D79AA9565308AC1471F09D09A23F24E4EE5522B00265770674C61348FDB3BFDD539994B20FF22B210162961B56DBA538252610FA607372DB1317497B85307B61D890A62B90E4DD37246763DC6093AF5F4CD0DC20081BA4CE2D6BBDC969580607022C590A1687004B0730AF71C60590D1A6B2A5E51C742D2CBBAA826600055F4811287A062DA1696A22808507AAC327A9194C5C6D49C823557100C158E60B845AF953539A855D217C5A77599B1783F7488AA85F222DF73B837E4B8D1006A8FD6B5B06083690B34B6586039100E84215EDDB39AD2D40BA9F80165623122A2C5FAF3437AB0376894CE67397D32A67C3BFB9761850C1C68AD988348725C83A378143D504400F995157903B9D04EE43404AB2CC7C35B8E0E09CCE4559945F5640450703F81C35ED332746162F7B8328F78BFC3359E7C1B4FCF06155FC745C70245FFEC09ECA957C8475C62B05BFFF288A5E5A5C78206E48C3EF373658859C3D9636786980578C07B764641D6A87222224557D10436FC72B563883ECB0934E50B6EC89429D7792EC0BFCDA416FC2AC323A58DF3FBCDB6E023140478868055251B1C09FA023E240E109869C1D2967F598A529042D9859F97CCA2E85A635418707B3AA1835B77DF93AE4DC53F228083DE6A04BDF58655C59BF57B107987B88CBC001E010B9C2458BDF138288190F955B62C7013DD5784C809A7B1A29F8C3C33F0311A555306327392DDD44EC8F72FD5893F56F58BAF207F9EE98B7E31092F761C390763A8B57409C7C5C665A913E20C9B62A5E80646364AA8E3B95030FB2FB289991B8637EA57C7B324A25E0389CE979B5E816FF841456261BF042C85DAD84F80D788076B7C69CABB8E389A72657D7D63949657B934A468516C36674194DF1AC3F595A294C28D24C26E1B1B5AF5B542E025A182868E1555442E0B0D064865ED5CC1665074E55AAAD601779E591E1ED2AB07CC551437603D24CA743218FA846822B2857F871FA26834E0422746A6C7DAD256BC0B4BFFF21BD7309482D7669F8857543A0436140EC684C959D26F2F827A84B37534B7AA3BC0A08163689F01141B511E7D11A316D2AA7D73909E889DD000C20E38667DA048278B5EE87188607B4210642F5C38866FAC1549637C600C8BE8C60C11AA394E8344B6C6536E687EF6DABAC397ABF1CA7486F6AE87D8A3DC8070B5687F7C6A73225B9233685C6B703D33677998C24E40A72894193CCA1C5ACBE4A133D85A6912587AD4AD522214974CBB1F877E16164683021EA9C335D41B000CF52A3ED45B2D95B7E2D061B5213DB4C6BC36D76DF5DB9EE6984D31BCB1F6757DE7E51871F1AE7F388C5134956D3286A49BBA39967889C9A424772BF5DAB014C94893A4C8B74AB099687919243C7633CAF297B2B73AB15DF419F6EC22D15A95553831BE379ED0489749C495E3B6B8E190049A8065DBA8933FB21BA3A751CFF289A2E2772B06A4687338CA88C0EEF1488B848AFA1041F4F9607EB18BC0650055803041B728F2F1922CD984D228096FF29E71F097921423CB82254C40A615240A2482A3F5F095F5B399A8F9ADDEB6B726F43E3AF64D09038CAFEA26686CAA2CE2194CBA660EDBB083F92DC2A51142BBC922958C86C62CE7A4B3A4C95240D72244A912C3C193485208CDDC4514495B35863CFC6CB41FA721A78080FD7BA72669AC6B29ACCD3B832D35AD70F7584E197D695B78C832000C1C337FC019F0AAC04B2149A469420C15B2DAF5281DBA5DC3618E0135C043F139CC74B14E7451FC11328F06B73F124766403541131D94506628C30B7BA68564179FAED9C9D2A20F3B61793A33A65E92B699A47FDE974EECBACE22690273A757DA903A886778002D283A819CB1EA2D34B8462DCAB57C85653E363629D9270738434AB1BB46BB71890031FFECAF8FC027D2DFA2A4AD271DD702F055836F40CA137E5D0EF9C8D853E65B5B118E28B7CB6F0D5D6F282E0EA20FD72F3690A6B232B20A8A55ECB46F84F01FEFC519E118AFFC4A7A1560F1F8ADD6DE72615229B997B2CAD6393C +encap_coins = DE5840C7A3B6585C81CEF65C8256BE98FDE71F70F5F5F17EF8008E64849CB02B +ct = 2D3569ABDBEC0A456BE87FC227E396666759C5C965BFC2CAD4450039E0DEE617FA6864950A25C07B7B22D64AAEE0322808C196AF27D942DB05680B634FC8D4F39DB50C025A1F504F78F5EFF83717FF2296D945AA55F202DD370723F854D5392FF968DBCE24069C90FAE3DAF1DE25E8A61D31AE1E8914E740199287F89085A844D8D571F4F4C4C128CAC8A566F713F8CE555046D4708EA3187EEC4B1DA6C1636E1548FD53BC685D8562B01A1CA4BCB9A7D1D9627F2E0ECFF24EA445E8E878160A5E4E604CC14C50DA9D7A010D7EC7B5D8C3FB8951C38E30D9EDB6C0A97346F2C0D9EEC3A34298278138C95DD7D6BD6658F9274464EA2D4BF1AC497597B5472A7B5F246B01D18E6FE3EBB1E2D205316E893D3A229228742280E513BC658CA8D6418863829FAF47153EE8EF9E459E6D1DDC5FE27B1CCE52874410DE38B62667B4ACEEB16EA953102615528B6B3F2D3A7C19A63433CD6467AE334FF5A7CD1DF4137CBF3F548AE3379EA8DA103CB539C63C164B9CEEE91C9C45B4D5C8AC949A894D48C0AD8D8CD217CFC0CF8AEBB8E95BD4BB735DD164618BC2152D021467634553587E54A62179FD9A2D8B87BE565B1A6DD4640C2F3E4B10520AF2E66ADDC5AA4BD51826EAAE63436E0E90D9A8EB7B274DA6E7F63A923C7155EFC35648CBF61EAFA9D9E87729DDF3B55B921D9720E25F94EE71A531D2043E206EA750115BD83AD98C131838E728A05B9797575443AA26A80FCA153558EFDFABE08C937040401F88D1CAC10C7C32AE19ABE745BCE1389016484287EAD70F67CD895B1BEEC0242918D019ABF147928264FF4129759045118F79729100A58714AE29F398D770A0E3DA7196B3B77EB142D9513B27233406B5AEFAC843633848A65A726E6C5EF60D41D146D55291EE2874654602E0356E443C9EA97920264E98AEA66CB569198EABEC1C55C88289729D76790504E453CF954FB9B70EA3E66723E5BA46FC7A50D77B5E3A042C118F51353A0F806E303650F2213A315CC219B760E1BCF61CC5C7A428D768F870C188A730FB594E608E9232150E334F3425BD324CD92470FB6049D2BF96A9179293510DF882758439EF7F3B1F22EA805D7A820D12C6862CBC3A7756670FA069C163ADFD270D4D6CBC640C5F650F8BC03952F5A2BCF5D4517ACB2A977DBC415D679C614C401F8308B0A7F0DD2A7BE3E0F7BC25320741B2B05C3F8039C2A14FF1DC2989509459A311031D70D2BC58772768B6F6F142D6A792C8028B69976145500D9DE9300ECAF11B7224B1C9C98FEDA4FE4EB36009524A27A93C6CDA9A30FE27918A59AE407B98910FEF1177D42DC5C9B82BB0278DE1E1620BA754E159C5A1CC524DB4B75418C54BFDE7DABD22E51E75D31E284F20D3B0DAF221CD263E670D952A1F21CD16912D8C21FE83A86313935FDEE0AE72E9214DB00F5ACBE3D464804D61086A70D84DD7DBB2AA39F479719E702C26CDDB6AD6DAEA8331822801BA03E394D92805FE7D6D459D1143D7213CC73F06FD0F2D30ABAD7CAF281CBFFA936DE7 +ss = 827C23D58E079CEDAA9CA13591550BD2A9121140B6D4AE662287066B6E443D1E + +count = 84 +keypair_coins = 9A86490F0615F3EDF789CB0654066E9EE339CC59F968281F3B89213F83C692ED1056461570B29E27126962068B2D07EB33DB448A2938785E6FB3E02675A6EC67 +pk = 44BB530C48419ABC7578B33D6DB56C76179E9DA3808BA4C8D7C227BA5C64AFD5C87E01C1AD12A294758F45804719DC7369950E9E6398BFCB60A7819585A689462346AA5968DFA83BBB3B8A51BB59311C9D100A4A0C7586056201FFC3CBD92C3A42D6851EC064A89227B4D1551CA7AF6B5B3E892B4E44571669412E4240A08C42551DCC50086389F9E0C0290956B5AC58844A84BE308D0A5562B57B5CBC594CEAE87910A13167F27CE63B822F201AF5E9C33BCA746BA7C5E8541FFF17324228321C7A0EC976646A6B5615F80FB56351D319B31960AA8823426682A610652652994D4A78C25659B533F5B40E6236A6E704CD891502E9C2D1858CA64C94D3734AC0BBCAB2DB2F9E03450E721A38C82A4C26A487F006E1966FBF8063AB115E74F441837506559BA5B7266F62B17E4D959209B657193689A0354149880D08434FBC282713118D9DAA89C52186EA918CE2C170D8380E45A32E9F710CD6F89DAF91C9210B767D743F61655A9702051D7C8A46F17A681B136C0863CB62430D084D282099D1636C04D6B1EC212A74046D2D8108470123DD751DB685A1A1FB3A3B2C216F51302FA13AD73B919A439D424A4AD9E12994D1963B3C0E0316739CE50A1A7C23D65ACEA61423A5792321A84AD2E1B3F5B595F11637EACA77FC753260E04CEC9CCF55D70D4D567BB78749EFD005C9525F6E921F0630C25CB9A129781B9B864B7556272D5B4164E340D9464BF192979A073384F6A5E52AA0B6B74D43FAA5412C5914524974161AFCD91660705659DCA87BA482D67C8C1400B069E66A19905B331243701AC8261952C5B736B25290235669FBDCC254631294FA2E97C440D97A0211C35C2FF4B6009AA66E27CC09BC09307C7B3794A5D189892EA60B2B323E95057FF355114AB48613E2760E00BAEB82B0A763067E216AAB899E7CA06E195A5E92486CE8911BFD5C7D956318AC3B029436A9D88C56AAE2A3DC7B382F2C5E7265A037A827761447FC59A40A3C8693BC996CA786FA7AC1BBCC6AA404A1BFDB3D227C6ABE42CFC463C2F1542AE418CF4B38CC2C1595F9343D41B4A1967C7C94A7A0AE91CEC8235705805AF096CBEFD0CAD6DC0BB5130907D64E76E4BE957A117D121D66071598112EA7D02B9648CF53E57AF9E7CC3C9803AAB327D87C53E41CB9BBC42368D332E0A963C3385C18936AD7483A5F4292B625C844C2282F25AF0C86984DDC09371AB555D57DE146664FAAB59DFA514F8BB8D397A987BBC8DBE147EFC2A34DAAA712BAA1E36C9C5113A7F47BA8C4A83DB2DC79AE93688AF7C480DC8ADF0B12D7F5453E669BE2D805DD6961454BA8B40C6EFA961E53DA19EEA2243C998B504C8AB9EAA2DB11B2F9B591990040954A1567074E69154AD6E618D0830D3B554FE4C99F48B51CF6609952CC9693ACAB000C335B98126B4B45A9F317F80A6049558FE9D855A026AEFDC649D295387C530E075CCB32AAA202171C6F6907A4A2202A9C5FCF252D98328F12F927E31C596047140AF9B177E0352B120954D00529A07D6B2BCE5026A6D7CBA01231A85BA39B1692694788C9215B69FCD111FDC8934A1BA24CC7890EB479AEF01FF29161B0A7AD921BB72A8B495FFA74C62C880BF03F0BC175EB865A17ECB56E0AEA501BEF8E12D3025185BA4CF8EDD1B0F297471D58C26516 +sk = 7934A9FABC835BF9A77BB807332251DAA00876E5500D2C59F07485ED01BC934911A336ACDE5527DD166476CA1D1AA558CD88CD7BD17CE1791958E851991867C0525C9472A953C8B04A730E2E132C6C26811CB86F3234229F4CAA2AEACD2E3C840E97B8F1805B94D7317B08354BCAB64887A4E6A98FFD90A7544562CEABBCCE6489C6E8534119C9589C405D7A96DE3230094A459549B6F37078F2C01FC9080F049464B0A969EB742419147C8B39B8065A769D400A17BB25DE51A699B69D54BA460D33AC6A6965916829B7A578D0B24BFF786CEF9963BF961ADCC20F9A0CB1C159865A344A0E36879C67852DF50ACA08A46E72A4A70C027CE283DE5BCB219808F2635BD7540915C5485AB70358CB017882B12ACB4426B22B02605873F2BD0DA59A658075136CBE15418CCA0A11386AAD43A52E3C5AC97F36BC7F648808C260643C325CF456E6166EEEC74EE8476AD62C73D7D334AC279D84B66B6C8AAC217A813DBB3DC6007317A165E6A1657D0277C1E683BECCC956D973C7624E959724FF9275C1AA2BB5ACA75159721B8C6D7B299C7ACB4704C654335982E83AB3724CCAB3709D20601C2A943D5BFBB3D384A7E83A7793905301B1704CF49992077B19F0204F3394717C9AB9A173113004FD325EDB797A30155D0D2A1E4984644F245F5B495B56A98FDC487B29B4A5C6DC4E3047A8DA2C9325F1705613705628458BD525FB333087CB4B967A61A994CBEFC504D18C1B8A62898AF32BC454A57E264722897D5DC71E32C2495CA857E1A234AE61C77083BA9B780342D7CFDFF8B7EC1257B79CAD017113A3238510C5683C3A8C396986ED392B0122C16E34A7249691EA7A931C44087FA1731746C1F3855BC72414FE3484D85B5E2586B6231B4BCF27831EA7B57070A815795F43E90B2112B235F5959EA253DB76192BCB11D4E16399D40C5DC0A15D98C3B3B0289F07839F7738ABA3281D45AA0A9CA1D349A64E79246C2C7770227F1E1CC74DB8AB7EA7B0E60A9DC0E45443B30CA656CD6A8897AB105BDA51B02179936F04374554A52992710F2A70972479462A2859736C2FE4359A474939AC3531B2905F90BC38860B5615ABFB1A1327814C01048BB93C9725C7C3B0547921975766A97E29D529E4D8A090C36820DB0FEC33277CC679CD4A51F7CA05F204BFF20ACF63EC403AC7CCAB951A8EC166C545ABFCE8734833274F724E77E68137967DA75515E3C270CE79838839721BF3A14C952085071D6B3A555CE62D96E7736A583F44F726AEB921CAA340D4BB788D63645DEB2621629DFF8A2C51D23BFEE95CAA7756F1884A0CD263039C37F7415E83D4908507C1B17A7308CB329D829C86953422B8B2F1786A4B86B980751255339258572A02AB22AD845632F859EAC223E1245AC3533D359246316A3CC1AC58B4E6386592859547171CE05DD7A76BF8E93901EB7F40114175AC45E0B35109AC57BE844C52D31A7BA60A24F30EF0E45581242C02E020EC86AF106836B3DBA8071BB8E8574FDF208100982E55F4B0DCA72521440A2AEA68C57B2039D14B21A56274972ECCAC7EED41C4B26CBE2C973507F1CDF4E618077406CCD3C8C5118545178351522485730B1A1CA7971B01766B914E835244BB530C48419ABC7578B33D6DB56C76179E9DA3808BA4C8D7C227BA5C64AFD5C87E01C1AD12A294758F45804719DC7369950E9E6398BFCB60A7819585A689462346AA5968DFA83BBB3B8A51BB59311C9D100A4A0C7586056201FFC3CBD92C3A42D6851EC064A89227B4D1551CA7AF6B5B3E892B4E44571669412E4240A08C42551DCC50086389F9E0C0290956B5AC58844A84BE308D0A5562B57B5CBC594CEAE87910A13167F27CE63B822F201AF5E9C33BCA746BA7C5E8541FFF17324228321C7A0EC976646A6B5615F80FB56351D319B31960AA8823426682A610652652994D4A78C25659B533F5B40E6236A6E704CD891502E9C2D1858CA64C94D3734AC0BBCAB2DB2F9E03450E721A38C82A4C26A487F006E1966FBF8063AB115E74F441837506559BA5B7266F62B17E4D959209B657193689A0354149880D08434FBC282713118D9DAA89C52186EA918CE2C170D8380E45A32E9F710CD6F89DAF91C9210B767D743F61655A9702051D7C8A46F17A681B136C0863CB62430D084D282099D1636C04D6B1EC212A74046D2D8108470123DD751DB685A1A1FB3A3B2C216F51302FA13AD73B919A439D424A4AD9E12994D1963B3C0E0316739CE50A1A7C23D65ACEA61423A5792321A84AD2E1B3F5B595F11637EACA77FC753260E04CEC9CCF55D70D4D567BB78749EFD005C9525F6E921F0630C25CB9A129781B9B864B7556272D5B4164E340D9464BF192979A073384F6A5E52AA0B6B74D43FAA5412C5914524974161AFCD91660705659DCA87BA482D67C8C1400B069E66A19905B331243701AC8261952C5B736B25290235669FBDCC254631294FA2E97C440D97A0211C35C2FF4B6009AA66E27CC09BC09307C7B3794A5D189892EA60B2B323E95057FF355114AB48613E2760E00BAEB82B0A763067E216AAB899E7CA06E195A5E92486CE8911BFD5C7D956318AC3B029436A9D88C56AAE2A3DC7B382F2C5E7265A037A827761447FC59A40A3C8693BC996CA786FA7AC1BBCC6AA404A1BFDB3D227C6ABE42CFC463C2F1542AE418CF4B38CC2C1595F9343D41B4A1967C7C94A7A0AE91CEC8235705805AF096CBEFD0CAD6DC0BB5130907D64E76E4BE957A117D121D66071598112EA7D02B9648CF53E57AF9E7CC3C9803AAB327D87C53E41CB9BBC42368D332E0A963C3385C18936AD7483A5F4292B625C844C2282F25AF0C86984DDC09371AB555D57DE146664FAAB59DFA514F8BB8D397A987BBC8DBE147EFC2A34DAAA712BAA1E36C9C5113A7F47BA8C4A83DB2DC79AE93688AF7C480DC8ADF0B12D7F5453E669BE2D805DD6961454BA8B40C6EFA961E53DA19EEA2243C998B504C8AB9EAA2DB11B2F9B591990040954A1567074E69154AD6E618D0830D3B554FE4C99F48B51CF6609952CC9693ACAB000C335B98126B4B45A9F317F80A6049558FE9D855A026AEFDC649D295387C530E075CCB32AAA202171C6F6907A4A2202A9C5FCF252D98328F12F927E31C596047140AF9B177E0352B120954D00529A07D6B2BCE5026A6D7CBA01231A85BA39B1692694788C9215B69FCD111FDC8934A1BA24CC7890EB479AEF01FF29161B0A7AD921BB72A8B495FFA74C62C880BF03F0BC175EB865A17ECB56E0AEA501BEF8E12D3025185BA4CF8EDD1B0F297471D58C26516F69BD52CB1D071F1CC7720F949D44F66F40C917EB30F3A4B0EB519ECAD2D03DC1056461570B29E27126962068B2D07EB33DB448A2938785E6FB3E02675A6EC67 +encap_coins = D45FB8527103ED4A9A88E77EDD89261B4E0D74B9B3A3F81016F534EDB12F3D36 +ct = C9ECE74C33484EC099E8D7360DD9BC375637999957068289073FC71C4A4FB301E31CDAC360AEDBE543B5BE26AFF8FD1B8178109785ACE23BB2E6CFC582E2D69C142D7393E83A8CD4BA73E9F747BA39FCC55342B756FA3F71FB208598AEBDEFC62B6EE6FD7893ACE34CFA639AE02C285FEDB61D19898ACF8C14011FB2938E0EA6FC5156606685F56459199C804AE9B2FC1671EBA738097CAAAEC3B9E7215B522DA600C23591DA170C6E22AC4CE1A88FC99FFA7A484F35AB2E00A6CD18C0910BE13A37984634C9B761E309365DD013E335A3A7E5991E3AC237A83F40AB04509C3362B9718825453E2748BCF4D66B4C79006B3AC6D233AA72F4F9B05AD92D886C566266AE35A04A47DF6BF805DE5F06B39253EBD8A3D9F5C779EFC2DBA29FE051EB9E6F675817BFB195C4A378D3F179450DF2EBC2B6703EDF81979528507E31E578102E60F58D01C449F3C5D49B546DE94E5C9EA6B2BDDACB80872143184A8D23487C11A610863FB2F4716672706D1EE0B8D73357FFCCF71C1F2E4C220457E9959EE9684C567E4A77C7A39F019F9608A7AC352AF987EA1443618E80D3ED05E663D52813DE7C883D1C723B2589706C4A9611C26E4FBE4B0FE80B3569827596096309BCC5892ECDDC69799D7243DBE650A3C0FBFAA81D76592FE7451485CA85144B3A83FC0F6045649F92FB700DCCEB2D09E20AAA88B44159839C5AFC28B60E130C4BE988B5E9062F29267561CE3FB7F8B06271510B2EBDAF209A671FFFA0BCB5B4FD5D51E0D4DF76516D4A2E95EAA2AF7420F50BACFBA306051136F879AC9B482114ADABEAC62EE8F9096075E184641366C40B2B8F24DFE1F8BF68B5C04F9BE5EE87FFFAB1C2F507C913896D870A374F3BEE4A59E0E2A3E391553B3AEED9E901CFD90DC8DFDB8D5A6F431698D4EC36794A096D9A9D1F3E723119A2A7E6C7E72B7450CD4881901020C06EE407B0068E9718CF831EBECD34EE75026AF467CA2B73801A45770C1A9976472C14F8B92E14520946B7F6745F82A0FBD8539711217F666BA3FD90C30558F9884E09E015203677A5FF437AC457D43D39D463E3FC4DFB59015C450FBB1586E2D9AAB76C5BD43042C85FABBD37039FE1A5972AABCE2B8F1978334A4951E1230E8CC5D94F0A1A1A33275E7EC8DFA5C4D174398B165D835DCC1105C8B7C69BA6D48568E0CA7842727283992455613DDAE2885D94DB5959A7E15646C320C42B06FCB7C1FC8BAC8B8538990A6A571A8097B7A1502A1DBCC7881ADF0F21F49B02AD67C5E306EF2609BEE261441139AF73B00E7A2061241F0FA2C64370389777AB60FEA8B04CD74F7C9E5396852BB9E9FCFDA45AD180C68B508830EE8A261E05F27C643C9C3C9F7742FC02E1EA04D28551F8A595CF99B32D304E0F589923165E718A0C08E178A9949BBF8AD43671699467EAA39A6AC1C81FBCC6608D110E6853DAB2584AB8EE33EFE8D32F6188B393564F5253AEB9D1590A3F7AED63594D39D7D46B44551A41A66672FC5367DB7CBF1A55D547962E0F23E192579B19E9 +ss = 6E20E8D7D899EC62839D375E81D7FBD6E6255DDE5820E9DC63978C6442520716 + +count = 85 +keypair_coins = 6DFD9B575872560C7BDC2732C4A28DAC4DB04E535EB8E402C3DFFD145C09CE472DC85FEF74A61DA258EDFF86F377FF16F321689E7BA5052364D2448A333C7961 +pk = 9EB92FFF176A27197EB4AB0171211DC7FA954C652698C50105B5C2E9F7A2A887BFB40880F8624E1FC67B1B43A51139AC6025B9EEB60925D424BB82C58B4B617618C43C99B07FB14E5B86538D29700E1CCB4F53A52BDA2EF566B20D8CCE1D7616DC81398D14ABD03964940C794E6100DA994D5BC0BCF28B04A8971214E7AB9285515EF09A7B486ECAE5C84655C9EE15255B715C3B784D9C243993171C604A3E29450728396E7572228610BB9AC04B06577B3636C137A24E2139B48DB005553152C6B040CF0B2408248675EB90AFB66D6105537A316C7C989746F43C3B284342E2CDB5F2183A16CE71AB39C67797112B0B907C00F6A47F17DB08D924826D526CF88234A25676D82449F93B2859076978860E499A0DE134A936E35F06A7802456008C23970818318AA2B55A1762A9394DDA7A49EBB4B38469410F5945DBA2801AC25BA39A2DF819B0DB194B53C4247FA5065FF99F73E71D51C22F51FC262DD2809EBCC6879B0D90004DA5BA7CC9462F6C822AC8FAC8AB95B769A465CD743BA2BABB26958AB9C3494D329A0C736C28A9CF84F5C90C5A0594485A9B339212D01BF6910105D44109B09BD063B4F2F3B903C94DC650812AE5CC87527754D476FFA82F34F39B5462006029875712CFB1DA648DABACE5AA1590B5CCEA82C20E74795C71BB70826EF4D0BBA580A447693A42D8AF3256C64CE327B370CE576B6343F2BF8FECC76E1434D5E448AA8A3B326584DDC56496704BE54108F8572170C2BC39680598017641422BB81645959B8092E82A54C68AFF60B78BE78107E7BCACB241B09913461579B52AAC5C6C8627CC033BE2273580A523D4CB7979CB65D7056643856BE187DDAC112799559A87168AA96A18089A6C547E87DA949C62B8EA876AA0192AF409BFBC354F05DC08FED46904A2688FBA59FB71B83031A19BC8A6350BBA93552BE0C01B73C89964563FE588A5B76971DACBA69868B588BB2F9076532D6A8FB4316DDA4C85C2945A2A29B6EAD3900E50ABEF2B44375AC36BCB0E028A20CCE58353C827F1D53A9A0510E3827CBD1383A6D18C0D22C374E2B6061C2197A6CB094CA9DCB42F0418C24A9CB893C45423447CD5EABB0B9B410C9144013543E5C3BAD525377CE8073D4A5F4A22BB24874B7E21523CCA731265572B487E3B42AE581A617437348C290F00AD09460AA0C7B6A1A53128E4E01B3C406A296CB35CA0BD0D1917DFF42A4848AB3BC28A2A28044C719CCAAC45C513CA007653BC854DBDB79181157AA17220153CA3563B21BE77ACEAE06BCD02531FF5B7F5453DB0119364DC4E97AC7A495287815B5EB512129643AAC4F42B3AF35AFC1207DB0A3194302FEF097BAE37BF382C154E78154B3407BBD90BB2143BC285AF1EA0B1B4FBCD3EA373A077C6107AC2800C89F20544CB7A83BAF26EF19367724B1C989C39BCB4337DEABF7D531FE2B3327F4AB0F6457C5F3869590C49664923993CB2B0103B8E8A41CC5793ACD192A047972978A2EA1B9E354CB135F2AD8928574B2C14FBC1A4C02715292C9052B69AB2A8329C02938BFA0994C209F816A24EB13F4365AF2D20240EF66F9BF6B39D54AB5D350C7CB3CD6F645379815AA3028232BC89BB89BFA2C62E351A3C6401B7B384EC61A83F9056F3665E523A0C28D48E778B0314C1EC2A83EE9805D0 +sk = 46F47850E2B9AA4A6D209125BE58806002C278A6295DA7A4FFE85551529F17D83B358B243F2A622F353EB6138CC6380F8AD3340D7575E865A6CFD34BF473A3DA8B9FC961CD921452D09B3209D041D6612576C573B08422715160B891A3370268468078F5464D7E5B84B3A3793F0C7CB2A0A13DF37B9763CFBF054C768B1E65A00E8366B406251F812C5D428853D0E00F7BD58A8E348275461C1336C2AC6A39783A35D849AA9A847F37F50BE0B95F617BC7ADB28C0506C16EA3CE89AAA28A9252F0E228D0FCA732289D05D9395133A82D8CB76DB2023924273B39CB52B5A846F338B96C5B6F3ACB41C7265A0C5B13094231F05943D58875BA7C2A6889F16107D325AD1B810A0B3C9E8928169D440194BBB90F771796856F9878158A432EFF742FBFD5ACAF59521E361F448C0BEBD805A1B4435D0761D0448D83E1201A506A0B0A4980172D05E88D7D87B42054680CDA74A386027AA4C3C5193FB1A893BEC2722D55AB9B840D99CC81408153B383345192649EB99825BB4B1957326C4791A2722951C0AB67472F4841C20C23926C3C331F24C360E81977C2791FF3171C2C489B68C923B65D8EE6BD2D510E6AE97FB771BAB401BC1A42935F38A0FD43AE2F8A24D8FC3F6E15C2C6BC800B73CCD8E91C592452484B44E6B2A624881064526182950349C78C7D58180B1676B5191EB6065C50596232B9566E4B8F0635A7D71927F8EB8572E62D57996DDF66CFED2147DC3451E95C034D6B9145BC0D30C915D66B1CCE367406212F8BB40755091C9CB0306A490EF5336E21F82C1B7B6CCC8980DA28A348815112F00C57362EB163A36E016D60F020BD12B6796C9A88A8AF4E833FC4585652E76F2FF77DEED799757C7F64E07EE6E6A300DD1CBBC840AF561746D279BEAA71DEA5318AA3CB3C4C63C4A91E0FB60D6DD6ABF1FB24D1B078DE9413F1B0BFD8916577C4CC9E0B0C332625A5FB705E94BABBE0659E022234586529A194012A6E9E7650C504C380436E1DF83E5C5C9E22F79F394BC0F22A0ACF114B90829B43112FDD617089C8B9D872B70D7027D74402B65058347B56074BA33FB91998E5A559D46622F5423808C8236317767A32E4772AE66CA472EC7828D682D045835EBC5E0089B0FF955DCFB9605214A3E5087F7EE57D5369ABCFF1BE00C7BBC5B5B25A0C1D853424123C98FB330318432D324BBC7330342224BAFF909849D65E1D08A77E07D07CF16CE6F64FC71374EEFB66BF9C742E518F2E30C480F82652B81C4CE7BF42593B990980D94062F96A7178258F31E2B90E86241C04B7B44057BF4700A040B6C0B08E4E8A6BF1CB1EEF738F51CA9BEB9C19B94B1CC623704A6C2455009F48B4CDD0F4A5D7F06320457670DB92C7A4371743593600022DA4600C56296D336A52E98888818CA10282D4767010A7ABDF81BB6752048B5B163DA385D7C5CB134108ECB03398500C1612A1BD563B21A0BC7B94C9719A75BF3B3E02143BF04A7E3D9B0070C4B449CB9594A1A8BBF871E595178BBCB611B466A8677905443ABFA1601A9664C5F54F36DCC1DDF35381F586B4AA4566C02BE610186DF8493A30479F4C72AAF049A6666E806B13FD77C3B738721F81218B48984EF374BABC0156F94E9EB92FFF176A27197EB4AB0171211DC7FA954C652698C50105B5C2E9F7A2A887BFB40880F8624E1FC67B1B43A51139AC6025B9EEB60925D424BB82C58B4B617618C43C99B07FB14E5B86538D29700E1CCB4F53A52BDA2EF566B20D8CCE1D7616DC81398D14ABD03964940C794E6100DA994D5BC0BCF28B04A8971214E7AB9285515EF09A7B486ECAE5C84655C9EE15255B715C3B784D9C243993171C604A3E29450728396E7572228610BB9AC04B06577B3636C137A24E2139B48DB005553152C6B040CF0B2408248675EB90AFB66D6105537A316C7C989746F43C3B284342E2CDB5F2183A16CE71AB39C67797112B0B907C00F6A47F17DB08D924826D526CF88234A25676D82449F93B2859076978860E499A0DE134A936E35F06A7802456008C23970818318AA2B55A1762A9394DDA7A49EBB4B38469410F5945DBA2801AC25BA39A2DF819B0DB194B53C4247FA5065FF99F73E71D51C22F51FC262DD2809EBCC6879B0D90004DA5BA7CC9462F6C822AC8FAC8AB95B769A465CD743BA2BABB26958AB9C3494D329A0C736C28A9CF84F5C90C5A0594485A9B339212D01BF6910105D44109B09BD063B4F2F3B903C94DC650812AE5CC87527754D476FFA82F34F39B5462006029875712CFB1DA648DABACE5AA1590B5CCEA82C20E74795C71BB70826EF4D0BBA580A447693A42D8AF3256C64CE327B370CE576B6343F2BF8FECC76E1434D5E448AA8A3B326584DDC56496704BE54108F8572170C2BC39680598017641422BB81645959B8092E82A54C68AFF60B78BE78107E7BCACB241B09913461579B52AAC5C6C8627CC033BE2273580A523D4CB7979CB65D7056643856BE187DDAC112799559A87168AA96A18089A6C547E87DA949C62B8EA876AA0192AF409BFBC354F05DC08FED46904A2688FBA59FB71B83031A19BC8A6350BBA93552BE0C01B73C89964563FE588A5B76971DACBA69868B588BB2F9076532D6A8FB4316DDA4C85C2945A2A29B6EAD3900E50ABEF2B44375AC36BCB0E028A20CCE58353C827F1D53A9A0510E3827CBD1383A6D18C0D22C374E2B6061C2197A6CB094CA9DCB42F0418C24A9CB893C45423447CD5EABB0B9B410C9144013543E5C3BAD525377CE8073D4A5F4A22BB24874B7E21523CCA731265572B487E3B42AE581A617437348C290F00AD09460AA0C7B6A1A53128E4E01B3C406A296CB35CA0BD0D1917DFF42A4848AB3BC28A2A28044C719CCAAC45C513CA007653BC854DBDB79181157AA17220153CA3563B21BE77ACEAE06BCD02531FF5B7F5453DB0119364DC4E97AC7A495287815B5EB512129643AAC4F42B3AF35AFC1207DB0A3194302FEF097BAE37BF382C154E78154B3407BBD90BB2143BC285AF1EA0B1B4FBCD3EA373A077C6107AC2800C89F20544CB7A83BAF26EF19367724B1C989C39BCB4337DEABF7D531FE2B3327F4AB0F6457C5F3869590C49664923993CB2B0103B8E8A41CC5793ACD192A047972978A2EA1B9E354CB135F2AD8928574B2C14FBC1A4C02715292C9052B69AB2A8329C02938BFA0994C209F816A24EB13F4365AF2D20240EF66F9BF6B39D54AB5D350C7CB3CD6F645379815AA3028232BC89BB89BFA2C62E351A3C6401B7B384EC61A83F9056F3665E523A0C28D48E778B0314C1EC2A83EE9805D010E01965F9C196D2F5F90CE3CE8F552F8A0D76BA8F5345365392FEBC505600122DC85FEF74A61DA258EDFF86F377FF16F321689E7BA5052364D2448A333C7961 +encap_coins = 147C065D7CF409A115A8DF448134E1081E296F120729CA37B4185B73E2685931 +ct = 2355A22B9BA71369030FB2E6A6B20BE459C88DFB194F96E206957B3D40FF4ABE9929EDCE72A06849B916847050856190B18E1FDB6BACCEEFCCEF923D835ADC5BAE7C0044BBEBB35EECA1D18BEA85121A587CF032AD63476C40A9B519D33EE700228576BA37DB5BCBE480268391FF1B76A8AE5AE71A171D41107129B4BDFE92A7FD3020C2DC9D1B21E418C4D02BA4AD0232D12AF11D4AF9D4C6DCB8A594C323BB0C3F7D8DDCD85538ECFC6D771491E97FA367AD16EB72B60D9589DD2B4E6FA87194B134B50D793107D2565615AD067EF81C21DBAD2BACBA12107E2F9A4FC795ED1E30F1322CCCEC99BEE719F7CCA1FF7E6A1DEFFF11AD69020DAC9EABF1596517700C6F76FE95D4888B5AE58A075A7C9CA2194C52E5881FAC3DEEDAC1CF4092D40C222346D6ED8BFE34DC89D6896A6601BF72D79B724AF64314FB8C55C74783F37E9C7D1246379EFCB3961888F76F3DE2293AF48C16F97337AD4AEC91FE0047388AC863068EAD95D4424464DB03BB5F120CBAFE71FDD24C9E34C691CEE9D7DA90D7E21CF2892B71CC5BA2BB3045D78D48B4581EC523582D84A2A8A4F23360CE0316B0B562905249094D17517CBB9D51C4752AB9833A13908D149E97C74FE9D126245C943E4E460058D2D0F49140AB2C6B2ABAE60D89F838B6139EE4646266B5EE060980FC25D224AD03BCD6B38D8FF151A97703109CDCE20009CAE3D165080B9C6CEEAD0ED9F29C366542AE795A85159C653E711883168D6FD3F18FD2EA627F6D9FDA74E7CD59A8D34E2332E4D18D8B16D8BD3EFFE0D3978CA927095D985BA5680E06008C12EFB915A0875DBFB8044A8A470F5431691086CF8D4DEFAA31C7EE4E7AB3496BD3D6D9875CB08084CB8668EBDFE9857FC7E9E37659941E3123FBF11339A3EAA8D18EE77AD7402893FD3D1F2B126AD26840011AC4C9F31FF76E0191AC07129CAB5C0FCB6C85071E6C194CF0B3EB8B78E2BA60E0727654B7C78252B1AC5780B8EA2684BDF833A666ABDDF712A1259CD74DC4370F24E7BE786A561FC33384B8340C90CA0B0A8BEEF3AA41CE386D2F4A5D5927885CC30AD36C2D0B772A9FE0DF91712F44B2D6D42CC561D8B7ABB1D50FEB17FB317C7E68801E351E828EF1EC38E186AEF504FC7FE5D05D3C40EDE1F273E55F4CAC07B0F04362A7EDF25EAF941A2669D5EC9222A50F723059F79B36D1CDE4F7142662E9515DFFDE8AA8DAE1585ACE5B3F645963EC67E80A9F0E8E3957ABBEB26912CCA8A3A378FE17D1BC0724029E4C1937D574126298DD8BE9448A96B5D47CE04B4D9F69D96D174A37AEA3433081FA60ABA48D642DC19FC4E98DBDFD3348F1A226C288E86BE37AE943FB16368406889B0CCF729EAF21232F01077C269FFE964BC1B6C8BFBE2E37FF8819FECA4A94EC64A1896DA3EFB082DC854D095E2994BE5D11C0060F6161F74838079E719289875F2CEB6F4063DB465513784CA3C7BA2888328564F3AAD93C6F74EFE8C2B83D12902365F2932419AA704D31806A5C93557C3CB8C60C8FA2FEDB14AACB +ss = 5A1B31E2936D1CB11179D456608333801904253A3B6A53121350C61FB5D86EA8 + +count = 86 +keypair_coins = 6FCA9F4E384D8418075CC064C70730801BDB8249899D456A77130D5BEEB3662CF4626AFBAE65EA913CDB263C9615A5F66061CCC74B1AC83B5FBAB8FA1EB6799B +pk = 5C405485D51FB10CB0F150B9DB466C53E070F5849049D225047BC47AA15F630A6D62C5B179906EE6C067FA3384A4C22748F984EB31AB4CD69083DA31A5B45F586560371BC99113C44D05828FA7687AA649B261BEB0EB4EEBCB8548139BBD6A0A844CA1E4E59F3D7C4372EA8632B278A7E68B59032012C5518A8021BD5367557077C9C1B4A50944EA1A834BB61004B2CBA7F6401A57839A3CB85B326449A25457851B4A2BBA2E2187F040745FB608079C8B59D2B191813D51C5C3F329B1F5E40771E1B33F63CA400555CE5351CFFCA2DDD268D7855151618587C8B037E7CA290467E4A7C2C38290B84AB8DC4A839F57102DD559114092165B13B130B41BEA2F857C84AE45C1734375A3EA91021014D29AC58F12BD5A44B91CE986E094A66089479DCAC23A6275B864195DF24F2D4A97F1B26B508C3A5BB89B9F0A913867C1294C252D5022D9FC60FFEB3FF3C29B2DD1AA97F22271C5C8E749CACEA39F2C637FF4A235882747CECA1D95E093966462AD401510EC112026BF0FBC106270988B2C35CC7269DA693A7D67052F9156D30C916AD6552EACAA3AC2396BC56668686EA8A1578E46658A71B4B7365AE56A263C783973C1B63100B1AFF4C3FEB64856A781334C6E83519E541511B4D581914C697FF31239DAC56662A145316AC4D14E522480782C4EC52B1A2B8A85F657217ED11426A2A606C01C17171FD10824C07042B189225D40919AAC5CBE05B031689B1EA61041F6091D961A8910A205E62FF21909C6B4095B270D87C9727A2B611118C84AAC033EA9CAB5F40EFAD6117F2160A56505FD775D3F415AAE9271A9B2B1FD1964EDFB772A9C4875F06826A49C26E93F0B1846E006468DE71B98AC6FC0F81AB146236739C9A7B6C13952089D621936E8B265B50DD4016547A2ABD52339DAA0B459D265558A1D9B61C73E49346396B6155195C9C3A437614E68E23143F09FD28857AAEA50AA808600F5C5CA33C5963CC00C4B1C1CE2609486AC4F1B2DDB7B06ACB62398A32320F315DABCAF5D4A833E2A01A6E7C971CA15E40C459EF18DB8452AABE1584412B4C4DC52E6004CA56B5F48555041CC828A7A6DA77C435F05574E5C25EFC3C6057443EB77993C987CAC2363C3030D88E288F4D08966E624794078A39C53ECF273DF178CB022A5FB025A2687409A785CD6C019F5761B0A3087AE91844A69C2A89C1A00B1CAEC7C1F7A67425B87BE02D80B67CA6C7DC3B45BF425DFD33DC5A13E7531907ED6329593C333466D9628668B98422C985182F8C0952CBF5052225363398E516D23678B5320A9CCA38E21C6BE86822C4FCBB9094277BCE80992858C5498C6BCC57DB982C196B1A78C317975544FFDF33E57A30DD29A5CA4A22A918746FD9A84EE1008DB920432E39B6FF182C930243CF350C6F486832A807A36C8A9242A5C39140EAA7A45BACE0086A86FE36BE28ACEC756B5E9A47225638659B250C52B564751CE8C42C39BD1046D2B6CDA70B7951707B63073F0EB5EA3FC5229F816EBF4007CE97307C6607B4CA17CA30330570D4F39BF76998147060CC04B33D4B91294F85F4A717EF9C288E3741F70FA5823AB8329F56D9D0B05C996701A050A387362DB09427D5587E7751131953146EA3591818F0DDE74E33983C010419218B08822DA9C3C62EAE1F2284801B3E4 +sk = 8747252C693A0D6C06AB66071B13517E1C45ABB370D26ABA3FB31641A170B365C5F6235D1FD688D81C72716A3921420D228A7BD5A1C48FF445C47489B8116B7CA14D3EA78B20A7B5E579C5681187A2AA8FC900557501003FB9BEAD185BA9E7939F247BF1757EA66A4392095EA90239A3C67A8CA70186047D9A6B06B8887FAE01BA8E556319A003934C88DDEB05F9F3B4964A6545E8443F57383A2BCDAFD96C794B399296615BCB9C59F8703595709724B6A4BCAD06E116F4542C4322072E3C6713015B1339512419B4DAA8C87F5A8BFF481964A8AB8A101943230F9527A10A604DF6275E1EF18FE54A57D7544402134AB77802333897D4769AC23093F9B951D735B5623452C90270A0896ED3A81BF1191E451A4A67A4542556AF78F1690982360FF1BFCFF66386827DF93BCD894AC8C996BE6E0A29DE70CCD459B9DE46ACC9E8043BB82D01C40E5785845FF4B0DDB8184AFC5E52A72E899093669A9EB110A100A1159241BDD40612A9B1955B1752810764E7B68D89704A61442ADF68108AA229E406CD10B6527A39A6B46068685B5E802CC25614492DBB6E06BA2160E930733956E7B29AB9981D4B477CD4EAB880E56EB711B278F540AC204A996B32FD06B8BFCB7729660CF5125FE1626199F6285DA628FAF491DCE2CA3BF285902350D52C0649339F31EA3AB764B90701BD647194FB27383681C13470B8D5CCB61DD74C5F666FFEA7B0714C469C4803107235599C998349B5BE7AB9E9DC6F01E928593939270411EE2490F16C54BA672EE03B710978760B962319BAB3C2FC67CD9C2E9D4C153A8717826BC4C3D6C7444C051A61A06A2C87A1207A20754E9D7725B91077766871509CCC93F5A1FC1C20680263082801F6B81E8F319B92110F2DA22F0D8C251EE4531B127C44B378DA6A0D26F55DE3285190BA1357012E42521CD1855252147D1ABCB1582422F55091B5EAADE93194CFA0BE536343A282C4A948C355984CD20A7CA454BA034AC7355B02730107A71B3986FA01FAA38D17E07494FB510E5526F690BFB27294FBB963A0606E140A182A9A247029ABDFF6BD8E876EC92207312432CC2700EC4C6A4A7037C5B612EEB2099D54872A5884E28981D794C7855590F1F1464017C8724BC92E0B644DE92B5B80A573F641E4E65BD6F0396184086D6A5A50662F9CC6241FB7241D194B6D23AE6FA3C59FE60C81309FF7E39F93F72BCB0696EDC771A80CC5FFC74138AC9D01B95DEFE7258BC555E3E28CAB6A73372337EFA0B4AA0C7D13B312A7313F8B63426C6677407903822AA1ACF4ACF4A130C4C68DD4DC47DD061ED0A4969E5AB630BAA11FA0AA51133C6509C83E603425A385730AA0E07A2BAC0754358C812F483F5CA6BEF3105CCE4CC33532116C6493F19880F693581E08999BE24DB44B84970C8FA4F6784D50614CDC9E626A31966ACF81309EA6A730EB42011663CF10A90A9EC12F3FE133A7D02CFB95CECC6B52CC08571BD03E8315532B7C76C2040B60E9021A24734854B6A3D77CBFD087015410B7322AD5D9B04F651F895AB5BFC25F8CC9703BC67DC5EB5AEDE41682A17FEB1B4339335EFAA44A64E8B4EB0BBE17FB00875A06318C1E68C42E6CE0946A59C61700A72779765C405485D51FB10CB0F150B9DB466C53E070F5849049D225047BC47AA15F630A6D62C5B179906EE6C067FA3384A4C22748F984EB31AB4CD69083DA31A5B45F586560371BC99113C44D05828FA7687AA649B261BEB0EB4EEBCB8548139BBD6A0A844CA1E4E59F3D7C4372EA8632B278A7E68B59032012C5518A8021BD5367557077C9C1B4A50944EA1A834BB61004B2CBA7F6401A57839A3CB85B326449A25457851B4A2BBA2E2187F040745FB608079C8B59D2B191813D51C5C3F329B1F5E40771E1B33F63CA400555CE5351CFFCA2DDD268D7855151618587C8B037E7CA290467E4A7C2C38290B84AB8DC4A839F57102DD559114092165B13B130B41BEA2F857C84AE45C1734375A3EA91021014D29AC58F12BD5A44B91CE986E094A66089479DCAC23A6275B864195DF24F2D4A97F1B26B508C3A5BB89B9F0A913867C1294C252D5022D9FC60FFEB3FF3C29B2DD1AA97F22271C5C8E749CACEA39F2C637FF4A235882747CECA1D95E093966462AD401510EC112026BF0FBC106270988B2C35CC7269DA693A7D67052F9156D30C916AD6552EACAA3AC2396BC56668686EA8A1578E46658A71B4B7365AE56A263C783973C1B63100B1AFF4C3FEB64856A781334C6E83519E541511B4D581914C697FF31239DAC56662A145316AC4D14E522480782C4EC52B1A2B8A85F657217ED11426A2A606C01C17171FD10824C07042B189225D40919AAC5CBE05B031689B1EA61041F6091D961A8910A205E62FF21909C6B4095B270D87C9727A2B611118C84AAC033EA9CAB5F40EFAD6117F2160A56505FD775D3F415AAE9271A9B2B1FD1964EDFB772A9C4875F06826A49C26E93F0B1846E006468DE71B98AC6FC0F81AB146236739C9A7B6C13952089D621936E8B265B50DD4016547A2ABD52339DAA0B459D265558A1D9B61C73E49346396B6155195C9C3A437614E68E23143F09FD28857AAEA50AA808600F5C5CA33C5963CC00C4B1C1CE2609486AC4F1B2DDB7B06ACB62398A32320F315DABCAF5D4A833E2A01A6E7C971CA15E40C459EF18DB8452AABE1584412B4C4DC52E6004CA56B5F48555041CC828A7A6DA77C435F05574E5C25EFC3C6057443EB77993C987CAC2363C3030D88E288F4D08966E624794078A39C53ECF273DF178CB022A5FB025A2687409A785CD6C019F5761B0A3087AE91844A69C2A89C1A00B1CAEC7C1F7A67425B87BE02D80B67CA6C7DC3B45BF425DFD33DC5A13E7531907ED6329593C333466D9628668B98422C985182F8C0952CBF5052225363398E516D23678B5320A9CCA38E21C6BE86822C4FCBB9094277BCE80992858C5498C6BCC57DB982C196B1A78C317975544FFDF33E57A30DD29A5CA4A22A918746FD9A84EE1008DB920432E39B6FF182C930243CF350C6F486832A807A36C8A9242A5C39140EAA7A45BACE0086A86FE36BE28ACEC756B5E9A47225638659B250C52B564751CE8C42C39BD1046D2B6CDA70B7951707B63073F0EB5EA3FC5229F816EBF4007CE97307C6607B4CA17CA30330570D4F39BF76998147060CC04B33D4B91294F85F4A717EF9C288E3741F70FA5823AB8329F56D9D0B05C996701A050A387362DB09427D5587E7751131953146EA3591818F0DDE74E33983C010419218B08822DA9C3C62EAE1F2284801B3E47C3991FA7983D0DD6E7157CFB152538466E9D5C3998A2B8ED862162B91CA851CF4626AFBAE65EA913CDB263C9615A5F66061CCC74B1AC83B5FBAB8FA1EB6799B +encap_coins = 90CE0644A11E7225DA1F86E1D34D506FCE42B809D968D23FF0C6AE57AC5EF075 +ct = 436CDF47BF07BC806EB2B2D2D0CA1A103E5FCEB0A2B37DDCF5C5D402105309F33B3D1ABA0D11821D4866F0ADDA5DCDEBDE58EFEA48D4203E21E96DC573DE83A15E5461C2E103527C10078413A998FA2963AEE5AD1B26BC3963D5C50EBB4BD276E67F0855AAD7F517BFEB3CAD1A4EAAFABF59F65624782C935389002DCF9420B4B111AC42E054DF00D9D80B32094D9D346669BBE67D4C39F4C7C3A487222FA4610DD61635C27EC1EF94CF4574686915657A5DF009D7F2377EE9035B01CAE1A614B8F141976307A8CB9C42F65D232B81E2130C71A2A0E4299D66FC42E63C0C4814A5E285B04B9EA5B8E1CF8A71632FA3518F99B2EAA08DBBA9BFAC8062E6ACF982330E2183C45FD6D54D95CF0BC7A18C0D4A28AE377D8BC479CD3424F587B3D2605F826A76E615E06BBE9BB87C05A0C18E2C22B0446660E5B286604E116D424F8D3400448BAD4A22EE0112476BBB2A1D18C20034AE320359303275206AFAE537CD1CE2B1DD8793D431A42B1B66BB090A8AC0AD483205B4F2C09BC0272489A99562DB6520B0FC517C06129FDC71886ACDC502DCB61D04E3D55F17CF121510B51F2A8AFAEE90682A171C19EBBB8576AD0C329D7CD2BF687BF5D817112B6F0DEEA403EAA3E3513C8EC651BB0816DB3BAAAF68771A8FBA2376FD6AFDB0FD5915C9778D92E11DE5E91817F55D8DBF176E9A0739AB7E21CB1A8E091E7D73AA031A3CBF3765E3B7380FDDC2033903171FF90B48B6D1AC80C2B171F177CAAD0B5418DF7586831D27C7C96F74A2A6CFB89F1ED90BC32A560B1C7A9A54F95973F69A525F820FC1F12D1ADCCF12AF64ED7C39E099B40758E2766905C644D974849358713E6377DED0AE907EAC372AA80D147AFA97052CB7723BF12974BBB25DFD6938B433233432A08AB93EEC6B7B0A13FEA83501B97F383FC29B9121C7F56252C6698EAFDD95735B5516E146A3F5E940179D25B7B20395CF1C2D8D6744F1332F2D3027DFBB887F4463A5D9B08B7E69478E2593B1D31E8DB8CC5B01E89630A155BB87E141D65C8C033EB9D1DB7A6365D1181A4C510DB4B493DC7504AC53DBB07EF6E1ED8271E600FDC42671F1D89524CEFE90605E66305101AC2B2617048C57D21ADAAB2B616A7131183DB0F17E32EE8975D3317F53D232C976003680743F5F19ABB4A717DD6748DCA8D9BF83DDE5172FF50481288921519A6EBDAC29A3AF88C8E11A5D57ABDBA01DD98F27920A2EC7E62DD05EBE9384A76F5E21607D09281B870BDF6AC9301386407D4F0C50F8AA6E74DC7810A09C87E49D89B330272329A1D175F4572AAB50DE0140E7F4CEDDAC9499230145922C3ADD4501411B0D2FA6BD2812D0CF7CA181A2CCF42CD95A56F6991BD47ED2BE7882FB57521DA9F68488EB4BBF37D4B6EDB4781D21B0282680554C6B8387338C55B65D7C6CCDB4068C4C1DCCC4EDAFA1ECA3EB299678F7B76AA149DACF857ED1BC18E5F6B60406071AD00C398B42CCE201B219BE9F8E62FBE4FDB2CD7CEBC6F4CB50EE6E309C66BA934B6A9E14E6735D06CA +ss = 6E98522C0F419EC8B1F2254DDF9805D7E7EA147E2FF1CD5219F55E01F91A939C + +count = 87 +keypair_coins = E58F71BF175C0550A67E00E0F7B3B7FC36BC2707BF0C93044A492626DE36301AD79909F31E8168AC129FEED8EFEB21F07C02F282CB90F63EF10EB2F4A9ACB886 +pk = 7E395F02D56D41B5C5889BB6B2F149425A2AC8AA06FF23A82841887DE199B56C91846392A026B50E87453F44588EE6AD4A443F54D25ECAE39AAF286EFB47A760DA01B6C13FA178811C47A0DFB14110FC6482543E8A3A52ABEC3A8D7176AA2868B2D46CF68538C27514222A34371C25FE832184206E5ABB699D61426027A942581D0BAB075A367793C81B7FDC11E2F6772C8040D271BE5D07D00B330A6C874B46D26F51DB8F43F22DFCD72613F8C22D15C28A2B384051142C148B07F7362EEA4771959B635A215B1351F650342D2A071ACB16DD8AB50539096F295E44173BCAC20F3CB271A8041E3008A742057EF2FB2D78F8A3A3C252F6D38D8E85BD57A75D45AB4DC21B8033992CAA623866E8989F98560DE33004D3409F233020899340B2591E1A4A0223A79E20B4B85C632CE7609C0C45A0246251468C1B6C20716315A54520C5718F4C5C7066331FC7E953ED91AA5F3B92E69617B29C256657124242AE8305780CC0CAF00C92896929A1648BE9B47F86F144A3B12D9DD51F347875E6DA935F0BD043ABBFDC7B85066A7836D442872C56FDD41D9A3A01D9AC6A12531079F74B273CA129F36A7AE463F6464436E50FA70CBC2756BD25234893B50A2898345E588B819C0955E9C50072517D58B0A3E4BFC9832B727C7F2FA924AC672D4D104A8F3AB81200A624C61EB6AA7B4553AEB2084360F1C03E443AB99ACB63AC699443A638BA9B8013C7ACA95ACEBC9ED6B12E8BE5A6CCC74EFEA7CEFC7A0F5EE18857250D08F03CD94CB4C455141D7AA2FBFCBE3EB896C2404BFA3580BC63B73265581D87618B206CAA9468C65BB1863B18F560413D1B1D392259F37C00F7D89124C56913483513006FEFF89092F218FDCBB8B118B206B64F2DE52BE0B553665C32831BB4CBA3762991716BE65E6A222B30A0A5CB246207352732BC3C8AD7A2C3243C62424AF222A922787F7FE44DF05299DA1105F9EBB0C5AA18B6C6C73F43390AF9C2454442110AAB4AA629C8F300DD38318C43A25D269885F970DDD8AC1E5918E59A3D53DC8A44873EEA97C31F34108B893B634284D69153779230C28B2A1636B6B839A4D91B7E23F0414B111F2E7C1B3ED58613120FEC37C78308587494233313950D82CE946778E044C3D245A19C29B09A80C3B55416A811AF33032A0068C7A4767F05E9AAC3E8B99B967F88D5281A38B072B8C4E194794C40BCD5366714525E846048E55C008CB48B5EA0C61655B8819B08FBB88337E20D63003F2453462598CA66181ACE033C707C1AE9760CED165596B2B163E54934540C4F7097BDF14D29EA850B95BE6FD42973436144270549A81B5F73192C2C6AC2474686A9A3EE556B6F26A9039866176026E25A60B5864E963850CDC8219D21859B5C5C3714434EA53BB16786DDE8036F317C430B3BDB025E6B62C097340F1E961B90E0C5182183DE05B293A05B58DCC251D8A2911C6E71A635F5179D06D93D33D8CB332C8B835C0E2973261BDAA43E414153118B66C641F834C949E77FCDBCB59DC27089138A2E07A5B40C7666794FD8E6B97685BC4A3C2A65912C35F50A278BBAD765C8C775BACF28181D61530E54AE7FDCAA2681A01BF51C0D7A033D6B005893B98DA86005381F1C6E600B1787BBBC13A01210C0764A4A2578D4BF90A24704178F06A4E4B110F5 +sk = A32B081D2579D7737A984126B05465963AC3D0FC3D471B94E30B242699AE3EE7A305D187D9371AF3568D7BBABDC30CA69BE166AAA07C67799DCE7345B2024EE41C5A6F35733CD12EFA19256DDB74440829C6B52AAA25B258BAC8D950CCDEA410535BB3A44A46EBC44F5772CDAD96596980C32A14916CF5C4A2FA8538491F7EEA270543ABC467344FF098EDB4762F658B6B26431B9863CFA7546C1489A25BC9061B8CA0165528241B4BC173BF17B4E7873A5081016A1C55E4BB1E7F71B849274D03E05E866656C126485979CE9660AFDF3622E3051F76D02243E660A5A78C663880A7F9765DF45410926A86ACC7962878B4037CF2960B06F072367B476EB24B8C57924A9C699815BBEB0BB10B2A88B0C63F0171C759D59CEA91C5C043A41A8155E462325893685F18C5458A0AC3E5BF2C696C8F07727C090E1D3502D075A706551C54A00A710027C52CBD83FB9DBD7567ACA2B6EB809C00838E56B209E0C5AAD2E6235E2C157D3659D906452F4A8C60B26F838A51F6789E42C00580E4595A5C0A12B796CB44240A4724C298ABFF1332BB0970A3EC475A434EC4DC2A4AA92C42E22035A4499C66827C882B542A8FB22B6B6054984FDCBD6A637583145010D89A4654BF0BC0A0C3B86788459B659A539833629C1B585A13134D766C9E8003282683AAC1486A934EDD3A7511319A7952B5EB7C5947B69AB5C904B2481A7709C95BCA352DF45E8BB87775A9CB566581C3777E7B975C629C89063C8F0E982A24D344EE8A22221A02C6538154217C453AC0ECD4BB1F820BAAB94D920765C4AC15972AA79BA974F3B5055EFA7FE5BCB454F7AE70E1C017322A20C73EBF278054060687C6301E13B52952459C56BC8D8795044302FC9123921143EC2C73278939826682126B65C7D9BAC044AE6CC7CA40F92C8FF28470E41D51895ADB53AE30216B1ABA552FCC14AB277A872029F3DC8D56794D842BA06770808F1C097787973B0A14280C5FBCC45C102C23821A07EEA6C3ABB4B52AE116F4B38E4A50CFB849177766495463197BCA3197B53AB72B172C163003C9AB89721EFF925F56B59373F5ABD1430B0731419A12BA80641628D78D712BBB74579C0A18A4CB2AA6EDD76FD7605FBF8214A00AA44E486810F3AC6E36345431C23F247F251112CB8A6C76444B1A5277B7C68AFD2C49D4A81FC5069B9A004CDF0587A4A193D243BC5F16357E1B1F280706B4C16F9D8B3B6A5815A1597C49076589D5303A5C89AD320CF6042F2F819CDFF04B850870E807B4F2B6BF99AA8F3FD16E95B3BEDF247CDBDAB048586116DB7A4530C360BB240FB2964FD41A5128CEE9FA6AD434B536345A49BC758D849260B78CD9F3B3E8461CBE906E93B209742C0ABEC1C1BBA9BAA05A8FD05637D26548F48512F5477B93D0BD54F6674158B2F6EA0488191EB023A641B175CC689A2F326214793228138D6DA03BFE4466DC962FD2A7C57102CF3F96CF3A6619D2F613CA063A35F4515C0473140B8EC3C53B1D9974021616BCA2459BC31502DAAFC861990C1B97EA1AB5AE018EAD781A67A075CC4924F9EA364BEC33ED167637F0A643C3A810914A49366AF69B3CC25938E77422832B7078C6BE562513EE3648758515E3C04F7E395F02D56D41B5C5889BB6B2F149425A2AC8AA06FF23A82841887DE199B56C91846392A026B50E87453F44588EE6AD4A443F54D25ECAE39AAF286EFB47A760DA01B6C13FA178811C47A0DFB14110FC6482543E8A3A52ABEC3A8D7176AA2868B2D46CF68538C27514222A34371C25FE832184206E5ABB699D61426027A942581D0BAB075A367793C81B7FDC11E2F6772C8040D271BE5D07D00B330A6C874B46D26F51DB8F43F22DFCD72613F8C22D15C28A2B384051142C148B07F7362EEA4771959B635A215B1351F650342D2A071ACB16DD8AB50539096F295E44173BCAC20F3CB271A8041E3008A742057EF2FB2D78F8A3A3C252F6D38D8E85BD57A75D45AB4DC21B8033992CAA623866E8989F98560DE33004D3409F233020899340B2591E1A4A0223A79E20B4B85C632CE7609C0C45A0246251468C1B6C20716315A54520C5718F4C5C7066331FC7E953ED91AA5F3B92E69617B29C256657124242AE8305780CC0CAF00C92896929A1648BE9B47F86F144A3B12D9DD51F347875E6DA935F0BD043ABBFDC7B85066A7836D442872C56FDD41D9A3A01D9AC6A12531079F74B273CA129F36A7AE463F6464436E50FA70CBC2756BD25234893B50A2898345E588B819C0955E9C50072517D58B0A3E4BFC9832B727C7F2FA924AC672D4D104A8F3AB81200A624C61EB6AA7B4553AEB2084360F1C03E443AB99ACB63AC699443A638BA9B8013C7ACA95ACEBC9ED6B12E8BE5A6CCC74EFEA7CEFC7A0F5EE18857250D08F03CD94CB4C455141D7AA2FBFCBE3EB896C2404BFA3580BC63B73265581D87618B206CAA9468C65BB1863B18F560413D1B1D392259F37C00F7D89124C56913483513006FEFF89092F218FDCBB8B118B206B64F2DE52BE0B553665C32831BB4CBA3762991716BE65E6A222B30A0A5CB246207352732BC3C8AD7A2C3243C62424AF222A922787F7FE44DF05299DA1105F9EBB0C5AA18B6C6C73F43390AF9C2454442110AAB4AA629C8F300DD38318C43A25D269885F970DDD8AC1E5918E59A3D53DC8A44873EEA97C31F34108B893B634284D69153779230C28B2A1636B6B839A4D91B7E23F0414B111F2E7C1B3ED58613120FEC37C78308587494233313950D82CE946778E044C3D245A19C29B09A80C3B55416A811AF33032A0068C7A4767F05E9AAC3E8B99B967F88D5281A38B072B8C4E194794C40BCD5366714525E846048E55C008CB48B5EA0C61655B8819B08FBB88337E20D63003F2453462598CA66181ACE033C707C1AE9760CED165596B2B163E54934540C4F7097BDF14D29EA850B95BE6FD42973436144270549A81B5F73192C2C6AC2474686A9A3EE556B6F26A9039866176026E25A60B5864E963850CDC8219D21859B5C5C3714434EA53BB16786DDE8036F317C430B3BDB025E6B62C097340F1E961B90E0C5182183DE05B293A05B58DCC251D8A2911C6E71A635F5179D06D93D33D8CB332C8B835C0E2973261BDAA43E414153118B66C641F834C949E77FCDBCB59DC27089138A2E07A5B40C7666794FD8E6B97685BC4A3C2A65912C35F50A278BBAD765C8C775BACF28181D61530E54AE7FDCAA2681A01BF51C0D7A033D6B005893B98DA86005381F1C6E600B1787BBBC13A01210C0764A4A2578D4BF90A24704178F06A4E4B110F58AACD8940FF6FC27F175342BE74D48075F8AE9320CAE20A41C879C27C1BF815DD79909F31E8168AC129FEED8EFEB21F07C02F282CB90F63EF10EB2F4A9ACB886 +encap_coins = 8BC7F573082482206ADAC45F410A9A3EBEB4A8538999B681072C26731023FCFF +ct = 67D655425DFEF7E8ED253CE4F08E08525AC6145DE615E6CE9053880A21631CEF61405E9A4F40B21EE2EE808503939C140FB399E5636D7CC3E7562D27933EC80CCF67A40B4AACC65BAB87BC87446E7BC86FC3D703259C503CA8E3D7C21A7C89AC266C77F54B3AEF980A083F1AD7DCE2D73502CBDD982FC53C7F17CBEC18A66F1FC9D20A787F001948DB39545245012DA543ABE8F643682536E9885DA7551D6247954FF068554C1E4DE53EC5EAE0B5A4CDEAFD3F9D8D88E6C27E4254B644EADCCE490D947EABED21C1C632817F57973951247A9777976E0F8803D6A89B61805EF8B4B13197D643EF26FB4913573468A94FAA582625815FA8FB94ECA110E7F0E8B394CC4C62C4BCAC308F267F4B8E2EA4C7A25D6D4B2E91F79C788E0E7103999868D421CAF0679A48D351BD37F66A7EB97847B8E528F7A081783E9E21E39902DFB50542DB4E32CC894898F728CFF2B3CFFD69402C787276CC1689BB558632F4336B2CF851FC179BA56CEABBA5870C86D55269D6DDC758DE568B1E230A3E1AE733096AD051C9E852DFE717B8C951AF6DE3232D31A50F22E77A6ABC46C2532E3BB877EC792C68B2948A70CDD3726F35EEBD54854B27EB43B9A17E46BDDC79F747C8AE36275DD8D147771F4E1722B0D3394241AA02307F3E7E4A4A5BDCD83B559DF154E5D77EF50450226B03CE298546BDEA91DD40954B674A7C5428D81456B93F1B84A1D268348BF26ABC1F7535D29C5923A3BCD3F93636F0C4FC0D2A5A15BF8949545907D35B627249C50ABB2672AE5CFE1AC02C0E96EFBD56852964CC92CAC651A7A0AF81243609043B01958EC5EBDF8456F401C620B585EAE2BBCED2F6F1F91118CB5325909FC5DCC63174ED4164A45C67AD9C936D42CFC8259AEDDB132CA86CD2A18AB1EEFF35DEEAEA11629C1E57A789DAD576A8D4EC2B5218AE72042315314628233E6325EB518BC0D4D9F47CD44436B120468B368701602BCE2F060ED6F3067C2B963D9F2303EBA63B648B9DCFEC4534DB59B6DC00574896E7096FF7FBD4B94C02127F97107798F0057310038B17236EFBCD9EADFB9AF8F91AB55E46A7D99878E3AB55D863AAF5D48BCAA3A9A2B02EE54C978B0C5503A5D561E2D33589C3E41ADAEE18BD46647434F59A2160717021198BA669297183613F25B6F247C2BBF133A5867E554F5C9324EDA03E6980594B4C8D9D31D3E439FC5945879CADBF9C701784122ECE30D6B836C01F3F62117BA7BE959E3F008A8435B498797A17AD9A4FFD7B3894B6538EDDCFBA4A2D460E5EFF9292156A92E2FD19F7C10823784862B87CF19F5DCD59D8D1876E3B248D6DD2D58BCFCBF135497B08B5D0236692D00F1117DD96635B629B9D4D81B1A8A94F9B6BE7939FA90619784CC65EB048045343C0C0FA54C5F58C0C75B0DFF8BCD38E44C9A45F1F34F728AE829E825062901AB7286FD4429D609EF63093124AA39DCA203F2E201DAD8E6C16AC9F43136AC52C6958F273B630F2150186A7F0F8E70B6DD331AA5BB94D00B7A26B7D0D23D969AAACC2 +ss = 5F40486D6CD463359464296CD0FAB7200E6FA2C896A7AD78108AB279A8115476 + +count = 88 +keypair_coins = E3FC575ED51513E62ABA655D24CD9C8F1C6C848AAFFA946C49A53AC3EA59E474648E3FAE1AEA06E15778F3442223574E9C7823F36CD16C72618846331F95E91C +pk = B5D6022EF207E7629736D614527619E33CB92600A1E39A20B25A5B16EB0EC1070E5D566B28449BFB38936F44721ED428CED5768EE647A771B7D76A30C7E5563B515F5AA89FFE994CFFD9277B0695049C355267B3A07C61F3C5A2C0D4AB8DF76129C19F44F762B51BC0374A43E6F6C1155901B2430B2B77AFC9BA4E14D3658607387DBC2D12B99EC0C0B0C2721AF298A6EBC92A7E6B97BC460674931E21F68377C8303B24CAE8D5AB720C79C4399414A514254603B565397857A7078B36E24A262CF9070A92C034C76614D5AB455B60B3B3388500946677195CD587942342A6FC91BEF144EA412ECE186A422B85A213C43FD0C361AA00698458F5C5370C6C553A9C238201754E2B2E2785BB03053E0B414E472087A0276BF2D805CF477378CA34D8F01C21B433F33B49A8B9BCF762451460558FB9C3CD071E654C250DF04B6541BAA278C1669BB49CA3AB4C78CC92D0137A2864BAE0C904E23AA28395EDCB435D9C1CF742562D603BC61C521145CA16F69192B137EE372F04402527BC557B754E187355A388410751267561A6B1F59E04190EBC604FF64A2B08B244B57ABE84F18938C5A9ECDC972191BBA33915C653A84B1A970AAC7343AC98BDB7BB877A3170E8B1E8693FA5089F421281B5763865C584CFDA6AAD7482D00A0520D947FDDB173947865FE178F9800570D4B2B9529A42A514A8691C8531A271C18E5F84380C20CD9A992051D29B5BE76B2235B511514904E3B284E8854556334515162DB1B09894B18A3127982269509BBC5E8758015A5B810569E544BEF9398F7D195A50A958DD78BDA187CEA0B7B2BCA04E2CD90DB634A3D52B734E224C4C60BA3C8240D7B2755AE5892A09A0E7EA1B2424402C45A0AD59563AB97ED906A1A15B8C4412219203CE6826B91DD00AD602089EBC5163B416C0D02009A7A5440350A00A7B49309CE39BA26DF79ECE038F23F4B4300C01287A51F5FC619EBA04AB1B78E6396BB23C1CB86A0F3BB11F7D31A161A480B8F33734CC63EA7219D76BAB759B1AB3405CA61B535B893B1BF2B678849751A6A4F18923EF44470E543924D0C462D8A078782B80241334F547D2AA474D95B8709747162B228993BA15A0C4FBD8BD662A1A2F01CFA859CA723A011949823FBB55947B9C27C2BAD547B0E6D29665071B30F3C8C536651E6437C0D4A314AB38A8F707928C0C2B864A3A67397A936DBFB98FAB2C0935441B83157D05072891A43573882BE97686534C8BC7015AC267B75F0A79C6991CB6C96C735A4BEA90ACC9BB6BA1B12388F0821A074018909F76944D9295B5EFF73E70AC1B0E1644E3A40685305F8A0626B2F05969FBB4CAE07C61F6213159B3471654A88AB58EC3A648F2944625820F6592C67126BC085DCE216FA708089D4947AB911AC14C00E53782A01580FD967594E0B2B2A3272D590AA70C7A3F419ACCD33C1B1294D21242C739A3E8E577316C23EBD4B4C4D0577B2BBB12CCA71841B54C0B76729320BCE26DBFE5BBC017C92491762A6C938D4BB0099AAEA190813A3A78E5685D83975050D719D6B6A80AC313D3018D25B9054B5013F832C1353401E6CBA3FE527B8D2906871B79836CB35284725E733D8FB60E6A8410E5F61428A3CF9C25FD45802D5699F33205A71D6404704483BD2C82E92BA9457926A45BFA0985 +sk = D1F46E67CC5AEA63CA9EC413938661C2F8156CC79E10A64174774545B597E91A8CADB58DEB15B27F343073B071873870BF858B5FA3AC3689698DEB68C570406972210C2B9909571A12753448E00E6A0C165A101469828E8F60A16B55478C8899D9A38C1751BF220A60A999B0D2A429B375137DB8BC9B85AD5FCC073355AE630100F8FC68EBB8534135590CE22D0A0672AB54936C8665AAF476B50293A32135283777C375767B04547501A53B72A14D3C4DE4E001D16B2B2B598A22D784A3711C39DB183AC82CF895B242954B41C713BF464464917D6B608D21B67B3519A6DF161AD237359E262B95C6BE3A8522B9248346785FD0DB03CD083A21092F4D91AF156B12F4C9C77C11CC0B68ADBDB813BEB21289743758F8136661704D0C5CA9302A064040334017D47815B7C35363F5C730298670536C69C122CC91CDFD18783EFC4C39C8C29CB1023F1488A7469F1CFC1D7EBB3D1CEAADBA3B07310000BD89C043290ABED896E655CB1F43A1C7335AEE30044D9652E6D3B8E394218F63072C7050A2984032C45735A3AAA4108AED8B9A19C13B9BAC28CCB123D9987C45B91E89B7A949B5B4AD56ABE4237F21DBBC53AB651BD4B703069F82133C54ACC1AA415DF9961A4785337535869FB758CD04B798907E36197EA428C66AA516F602404E87341E154A0E09C881725CBF00761FD9645B658D97D21F33059E4A898DEB0C826D9057AC302663897D71567117FC4416C860775B026E51A52663711868777D542F1224B277EC005F2BBCFC0C84146591CB36CABA82692B010DE229797CAC57AEB64AF446A896527BED9B3E55539C0F6A0E9ECA5953890B95B0B282C3A4C46A44A8705A54A8806CCC0D3C736A20D34AAB118813651D85F12906958933D69679D0457A4817DC83B525CCC63E94C1BCB1C869CB3A0BC46D47084481C2563754AA8F44682B870ED04996CB8886F43B91AC8767AE12856CE5B85F55C8802830BA1BABF5797D0DA723EEC24616A195AC809371D93F89B19C874C840EE9C39E7370CA561B6E91552CEA47F1D09C9CF633E7CABC9EF85F89D01A29D9CFCA8143BB05C3015B3C6035AFDC45AC7B08B5406566BF864657BB3A82322793906462C03C20969F76C2C8C8EA2622A373C3E40164A77055EBAE05787965B60A861C09658C32D4194DCCD7AB1DF87826590890B1785F0385B965B5AB3B870A0088696A783B5C7A69962B86F789BD43588705315258C117C4313198AF42E2B7FE39894A86189FFC4E8C6BAC5E7A0F03D86D18089A6999972F309A6DEBB365781F64197165D259BDA98C7A920A9E790BDDC587E7C08040D649B8B08FBBF36D1904970354410BD77B87889668566CDF4A94E1C65B04D33C269C5152B049850857308BA1310283A976A31DB34722E97C97DA85D14372E14A8A95BB45C63670BD7712686200D451CAFE599AB0D3A183D2B0DF7B8FBF0995042BA0CE682EBA8B71DC6C0744262C75B7638B51B9C4931D4F7C842328486A799D06027CD5CC75E4B1B6816C2AD66B86ED047EF978184BD344C00AA1200432C5D142246B883B5B85AD5CC8F8FA994F4A790F3B6C201353F77AA9B7E9BB195375060282B7DA42ECD36295FA55F8B5CE94B812BC421BB5D6022EF207E7629736D614527619E33CB92600A1E39A20B25A5B16EB0EC1070E5D566B28449BFB38936F44721ED428CED5768EE647A771B7D76A30C7E5563B515F5AA89FFE994CFFD9277B0695049C355267B3A07C61F3C5A2C0D4AB8DF76129C19F44F762B51BC0374A43E6F6C1155901B2430B2B77AFC9BA4E14D3658607387DBC2D12B99EC0C0B0C2721AF298A6EBC92A7E6B97BC460674931E21F68377C8303B24CAE8D5AB720C79C4399414A514254603B565397857A7078B36E24A262CF9070A92C034C76614D5AB455B60B3B3388500946677195CD587942342A6FC91BEF144EA412ECE186A422B85A213C43FD0C361AA00698458F5C5370C6C553A9C238201754E2B2E2785BB03053E0B414E472087A0276BF2D805CF477378CA34D8F01C21B433F33B49A8B9BCF762451460558FB9C3CD071E654C250DF04B6541BAA278C1669BB49CA3AB4C78CC92D0137A2864BAE0C904E23AA28395EDCB435D9C1CF742562D603BC61C521145CA16F69192B137EE372F04402527BC557B754E187355A388410751267561A6B1F59E04190EBC604FF64A2B08B244B57ABE84F18938C5A9ECDC972191BBA33915C653A84B1A970AAC7343AC98BDB7BB877A3170E8B1E8693FA5089F421281B5763865C584CFDA6AAD7482D00A0520D947FDDB173947865FE178F9800570D4B2B9529A42A514A8691C8531A271C18E5F84380C20CD9A992051D29B5BE76B2235B511514904E3B284E8854556334515162DB1B09894B18A3127982269509BBC5E8758015A5B810569E544BEF9398F7D195A50A958DD78BDA187CEA0B7B2BCA04E2CD90DB634A3D52B734E224C4C60BA3C8240D7B2755AE5892A09A0E7EA1B2424402C45A0AD59563AB97ED906A1A15B8C4412219203CE6826B91DD00AD602089EBC5163B416C0D02009A7A5440350A00A7B49309CE39BA26DF79ECE038F23F4B4300C01287A51F5FC619EBA04AB1B78E6396BB23C1CB86A0F3BB11F7D31A161A480B8F33734CC63EA7219D76BAB759B1AB3405CA61B535B893B1BF2B678849751A6A4F18923EF44470E543924D0C462D8A078782B80241334F547D2AA474D95B8709747162B228993BA15A0C4FBD8BD662A1A2F01CFA859CA723A011949823FBB55947B9C27C2BAD547B0E6D29665071B30F3C8C536651E6437C0D4A314AB38A8F707928C0C2B864A3A67397A936DBFB98FAB2C0935441B83157D05072891A43573882BE97686534C8BC7015AC267B75F0A79C6991CB6C96C735A4BEA90ACC9BB6BA1B12388F0821A074018909F76944D9295B5EFF73E70AC1B0E1644E3A40685305F8A0626B2F05969FBB4CAE07C61F6213159B3471654A88AB58EC3A648F2944625820F6592C67126BC085DCE216FA708089D4947AB911AC14C00E53782A01580FD967594E0B2B2A3272D590AA70C7A3F419ACCD33C1B1294D21242C739A3E8E577316C23EBD4B4C4D0577B2BBB12CCA71841B54C0B76729320BCE26DBFE5BBC017C92491762A6C938D4BB0099AAEA190813A3A78E5685D83975050D719D6B6A80AC313D3018D25B9054B5013F832C1353401E6CBA3FE527B8D2906871B79836CB35284725E733D8FB60E6A8410E5F61428A3CF9C25FD45802D5699F33205A71D6404704483BD2C82E92BA9457926A45BFA0985149E0B6B49FE8ADBA1217C2C57C83F2B8C5F1D92F319E502B184A65869214F75648E3FAE1AEA06E15778F3442223574E9C7823F36CD16C72618846331F95E91C +encap_coins = 6E357DD587894D497886BB4C678CF1ED347D1D85BC1540D31563106341718E16 +ct = EB8F4303810F5DCE157D562B289E50243897F77673570DF5C856F1BEB2D743071AB087C8A1A5CB348E89078151CE8A86E8F0D6975B981DB9B05E5B2F7C50897A79D14D24C9A2C6CE8A343745C6277E2572E5452D61313C20A9A552BDC542E1566A7B82E940268BA9A1EA248CD68D069BA75DF9D9FB8488DA53855C2226CFD20F0498648E541E1594808D9172EB2C4FB08E3DA3F9650026E4F34F4759B93F1CB68ED3F389E61AEF94C2F793DA0CECDEA45AD01BD856D69BF64568D42D51231F3133B39A893BDC06AD359327E69AF54933AB1BB3448737DECD03EE9316CB8B6ACC1CF0BAB6B03C313121EADDFF0AF11557C00ECF65E675EB8E78008FE6CDD1260D292FDE63B7CFE40E60DAD36D7D72ED6C81F29B39145D73F2B657A5387FC20FBD871E81AEF2AD06A4530C1E5BF00234A092B3FF903EFE6552E24AA12B844A49EC86D3AC1A87974533671F779010A6FBFA5E486A54E0D44B5E71EF300CC66B43024EB2E3110440A1C3C9F70A237D0A710724A9366C23703C7B4E7B16B936AF9E1A60BC0DDAC878F552707DA488B536F34DE7B9051F2999F02FA6CF55F6C7D9A6822D5D9FDB7DF80E91AD1EA7DF5D6E4F022621A6A5BC34FDBA8A1772A304BE808A300C51EE3E2974A48117F3B9E682E8D5F83A366129979CA1A44BB401D91ECC941103F226EEB185181A259DEACE880F72D7A145335BDCBFC9615EBCF06DEC27EFE19C8DFF9FBA16267A8901E2C311B9C32724C7099A917CE78885E74D829BC1D75472771585A1250EB209F458775087FD2608746870E897B1AA889ABA38C9A14D7323FDECCF1E6FCD2CD4237DFCF6000C3213D3E71AAD890C04B0CE3FCD311FB1AC007C5B067A5A7F84C40480D6FB551720EA08584A5E2B9AD475CBBC6E57A91300F4342AD31C4B20F345DE326441BF91C968193556998FF51EAA6B9390DEF76E4758B927874BAA79D376441E67232433769CCD272D467C7DD7788C0A4A99719E8537317FF755C8E148FE5521B3263AC15366F11F8BDFA7013B7CAA5B62CB55D0444E4B075587314E36378288D3AD512CF276C7996D5470FE127E8E55CDB4216B54317F103E133B20EC177169F2061F2CBF43A9945396B239C208549FEFFD58E63E7A724034B58CAD5FB61493B6A67075915A3E492962E9264382A93BAE9FCFEA1FF0C30BE9F521F5CABC8BF28BBED8A58A0BE9F454F4C3C96DE31C5238D64543CA1748B4A7C5E86EEFDBC9A87FE1BCE4A36261E8547465F2B008E58420892902F79F989707693A71AE0F03D54F2B4DD634D032FB03C77CD24C2CF30853FE7CD1352842ABC870688DCBDE05AD5909BFCB3794CC1F8FB7F8D6A98061F3AA965AF50640D1D7F4D29DD0E346CBC92568B9D2D6887925658F712A656CC04A39BEA964000F7A4BDF97BBFDE5D55BC384098231CE774A31E62ADE752EC6D29ED90E8ABDFD6A2E146CFAC96AA3CFA1BA7F33BD8780F7D2E8F858911E29CD2510F12D91E643BF5F449E4D16AB93FA52B06C980CDE2427F098259DAF5C31B18150E88B5E80 +ss = D8B6312262738999B5C37EE0249A08736D84FD75A5A085E491F64F7CA14C3E29 + +count = 89 +keypair_coins = 470B4943F0FE7FD0D8EC5185ABA0D1DB09D112934E4FB4787E2BBC6B88466E7BBB02D701FD1350AAB462CB65DAC4B2F75928D378DFD7A0360DFF9185175538FE +pk = C55170FE0945513748C0ECC9098A02E9D51E44ACC267272633645AD562816D479466B54D2150AFB682B4F32265F1F4BCED21CAF7C7980105B08056CC4192BFE0DA9AA5E00864B0A34712204CF6AE82DBAD360A7C840B4804826C39A59AE029056C1B2542B6A589EB47C14A70ACD1731BB0A4D657656915B91D696B2F92AFD82245945C7B77958A5B6A3B6CBB179AB83A0F32591B757E8B68368D6A5EE63490604AAE70EA7FB4619C91A455429A6B195214BD28BC717385D3CB8235991C05088C7939BF852125DAFC3BC368479165438092B530BB2B869246988B8F85425A2A523ED108C6D2F54358580944D64D801078A4B621F58012F9D8A17A92AB8AD43821E24E2F87BFA844ABD0C6B08650AB76D5397F2CB0060B31AF689FC8612249D46374848F496B360E733FC991809DA804DCBAB14030A4BD18CFE37B41CAD91A66A263437B7DDC2484ED55ACB16AB95A1A8C9345A898E89C37248F9768524C616BABD17A8DC7924F37345DCC32DE04273C5A0AC038A133BA01CE2481FFB57BA153826A7CC4123570293C82082B6A75FA05031CC7FDBB9031E10CA94AA283AA26EB3546F894B646B9A85AFC5DF3B513DB522EFB340287C64492AAAAC5FC25547129B56B9541EB0912222C2E60A11B9304692A749BB174CB47679CC294253B0F768A7872F698C23493FD908C9FF95F9275551B947BFE84780F86C1E0BC105F6CB7C9430369B58BBB07B3B0C87D8541618C76A43D52C98A08166E052B4487177AD222E6A002F7FA3F3601CF1EF0B4C02AB550D76447EAA695561118A46301B544B493C368B5B77AB17C5AF4543FA6A8C682A46AF39CA48046B1529684A53D0E492E1B8596F55334ADE15591DBC4B411537C88A5113458F187A6D77278675B0C85BB017416B6E9543FA1B924B631AC1DDC5556127548FA8CE0C90125139BDF13428E2C7805607A44251A5F289BE4E3A2C3C95C5B5CBF7C87B4A7D87A39A44B672BBE9AF8343DCB062EA3A039E949A7F151C8900484368F1CFA385BD13CF55685BFA4B959F8634ED7C437FC9C044B401683CC7482722C98583DE24EAD414C1833858BE987672C557DB87AEFE4CE2DB8A676D14083462DB35862DC0CAE95F88EC1F59426FA2E24E9CFC54813BE07C98F78A87B9703276B455E15474D7A283D5738D4B639369077E7790DEAD3336E1467C871A571080004A91162FCC31D2912646A9406902248FBBF28DAC4343B081C327743335B9EFA4B7FD13D5177064A5B6E8065B64D8C6580B47E6472C8F5139268145BA7A23A02F59ACF680692B20EC2DCC087A99BE036BF7E9C8C0DF15F168C508AE28E33D951740A9B0F0321E35CC01328B7BA860592B566CB369B21F51B7AE583D26652DA729F07F5B8D59CAEC65AAE42C7C9CBE73C68504F26670BEDC542FBDC67A95C9F2DA1A08E559797170EE63147A4688C8E101E5AAB48A4D1862506CFCD297C7EA61A9ED4A54FD3A28380292FC1570FA2AE43920B0E940675B60534425C69F35BBA714C88B3A6C323090B4C56B7F89963059F8CCB0994373FC1344412F694175C2EABEA110E035BEE6ABF546396D79472EEDA164BF49350F54C2E75754F502DE4A42721B37974A8266C49B57C6837B38A28CA489F02FA05307D7163B35BA6A4C5024B70BA27DB0DE8D64BB8B55C83BFDD24 +sk = 09D0009AA9878C697E2EAC9CEC9675A9570660346547D7AA8D4548E3AA917E238CBBC10C389445D15714B237566CB44132D6983C9610E779570B74482D5BA2742A1BB51C68142C1680B800F1938795367B6D8A56C32A0D77922C78116643530AAC01CFB2692F4BD6BBDE615A3335B397487DB8A1175A043719EA58D0DBA627D7C8511468B34442879CC227E6B39E084DBB68BE71CB988766114A80B1979118ECA08217540F032966688C99FEABA06D0A0A1E701DEAACBCFF9C2F2948A209AC8EE505C85FE0444B5C70D067100B63CBD6D98F9AAB73CB06C97FF31D7AA0CE188707DDC5C07D495B27957B369055650ABD5D9B9F75761770920DD0B574A5841C3BBC9F6F1AB0179C118C7A83B2934E950B3DC732C84264C66FCB0DF78975FCAB5FEABA4E6AF97131696A0CDA1CC9E2C40A266FBE6667C1ABB361F063103311A792B95CC525FF872BF3F394FFB48B30B334CA02BB32A901E3478F811505DA066DE6A5CABA425DF83C27565CA48B16BB2855A797A72DFD57615D5117B24374C2D306473A349521A8107790D268AC6B5813C593CB9E8621F8C68FD2E8082C491C95C5AC74C86DD37B0A4EA0CB66AA576AF50FBDB0A31235BDC9E8107F1859ACD2674FC72C6669A3465556F90269CC30B0A8F53563378EE016A7ABCB5460D5371B01754BD7373C2314E2A42D98636112F3CBE0638E513B38D4850AFD6A1D3D485308181FEBD88B75F532E4541965E0BC592885FD1C1B3108C33F74725850617B526AD4F2C8CECC19B0A0ADE15057C90AB086C26CB014BFF92988903BAFEFA3C4C96CCBCEF178F988A40D339DB324257DE69A119125C52A4147360B1274808299446EE768680170457ACEF18814559996FA96B418275E031199E0D578E86C946381C369AB839B1A75E9D6845C98AECA24253B3B0F00EC7E92CC6F6A40A4D8B04900CA3E78CC7A5C51886E0901A908BF0A08947E3B524F1C606B055451AB6EDA2BBCF832510B3075E2CB0ECD493B71102F4EC69565F96651A3A2C3B738C2D55805798253E055DC8508B98822E6803785130D22E494B50025B0CCBC69667013C4CE4A140C2E9BA928D41D7FB5237DA8C5AC0310EF5007B2B0C6737BC17A747C5A2C1F3C1166BC2B0AD7AAAB1D870E54694C1CA293665286C4EAA35D34BD6EA7AACEA04871C257CF63641264AAA0DB4F65337274356F71D02310A57E44D23EC6B4185BC5CB45A65D3B592AF3138216332060264A6E53702D766D0F4A0F14F70B75B780688591CC414283A59AD2F84D665354D71C2AAA1C278AB6C8BA902283B286F82761906C9B2796595BF5AC01455ED2B43607207A30C949AFB1BA5C50659143C98237279003CA820B4B5963B0882A088CE09C99F4A6368971A7D6885237BCE28580E2EC483FA305FFFC0ACA173A89CC41727A55D4E29A8C410B3FE851B3D58B58C31920759ADA529DA162CCE47618B2F715F3658D71F5455365C67B04748B371A5A96B75F342CC4C031C713C04D2B6CDEC0CC92B7596BF4A2A0C91537A0C8174B3456489D2DB70D3AF2995C4830245120E9411E92ECB2293700973386983A0C6591CD5EAA34D5CC00FD672D20A604E78696D5542646C120E02C8DC5162630E71465ACCBC55170FE0945513748C0ECC9098A02E9D51E44ACC267272633645AD562816D479466B54D2150AFB682B4F32265F1F4BCED21CAF7C7980105B08056CC4192BFE0DA9AA5E00864B0A34712204CF6AE82DBAD360A7C840B4804826C39A59AE029056C1B2542B6A589EB47C14A70ACD1731BB0A4D657656915B91D696B2F92AFD82245945C7B77958A5B6A3B6CBB179AB83A0F32591B757E8B68368D6A5EE63490604AAE70EA7FB4619C91A455429A6B195214BD28BC717385D3CB8235991C05088C7939BF852125DAFC3BC368479165438092B530BB2B869246988B8F85425A2A523ED108C6D2F54358580944D64D801078A4B621F58012F9D8A17A92AB8AD43821E24E2F87BFA844ABD0C6B08650AB76D5397F2CB0060B31AF689FC8612249D46374848F496B360E733FC991809DA804DCBAB14030A4BD18CFE37B41CAD91A66A263437B7DDC2484ED55ACB16AB95A1A8C9345A898E89C37248F9768524C616BABD17A8DC7924F37345DCC32DE04273C5A0AC038A133BA01CE2481FFB57BA153826A7CC4123570293C82082B6A75FA05031CC7FDBB9031E10CA94AA283AA26EB3546F894B646B9A85AFC5DF3B513DB522EFB340287C64492AAAAC5FC25547129B56B9541EB0912222C2E60A11B9304692A749BB174CB47679CC294253B0F768A7872F698C23493FD908C9FF95F9275551B947BFE84780F86C1E0BC105F6CB7C9430369B58BBB07B3B0C87D8541618C76A43D52C98A08166E052B4487177AD222E6A002F7FA3F3601CF1EF0B4C02AB550D76447EAA695561118A46301B544B493C368B5B77AB17C5AF4543FA6A8C682A46AF39CA48046B1529684A53D0E492E1B8596F55334ADE15591DBC4B411537C88A5113458F187A6D77278675B0C85BB017416B6E9543FA1B924B631AC1DDC5556127548FA8CE0C90125139BDF13428E2C7805607A44251A5F289BE4E3A2C3C95C5B5CBF7C87B4A7D87A39A44B672BBE9AF8343DCB062EA3A039E949A7F151C8900484368F1CFA385BD13CF55685BFA4B959F8634ED7C437FC9C044B401683CC7482722C98583DE24EAD414C1833858BE987672C557DB87AEFE4CE2DB8A676D14083462DB35862DC0CAE95F88EC1F59426FA2E24E9CFC54813BE07C98F78A87B9703276B455E15474D7A283D5738D4B639369077E7790DEAD3336E1467C871A571080004A91162FCC31D2912646A9406902248FBBF28DAC4343B081C327743335B9EFA4B7FD13D5177064A5B6E8065B64D8C6580B47E6472C8F5139268145BA7A23A02F59ACF680692B20EC2DCC087A99BE036BF7E9C8C0DF15F168C508AE28E33D951740A9B0F0321E35CC01328B7BA860592B566CB369B21F51B7AE583D26652DA729F07F5B8D59CAEC65AAE42C7C9CBE73C68504F26670BEDC542FBDC67A95C9F2DA1A08E559797170EE63147A4688C8E101E5AAB48A4D1862506CFCD297C7EA61A9ED4A54FD3A28380292FC1570FA2AE43920B0E940675B60534425C69F35BBA714C88B3A6C323090B4C56B7F89963059F8CCB0994373FC1344412F694175C2EABEA110E035BEE6ABF546396D79472EEDA164BF49350F54C2E75754F502DE4A42721B37974A8266C49B57C6837B38A28CA489F02FA05307D7163B35BA6A4C5024B70BA27DB0DE8D64BB8B55C83BFDD2429B1BFF7F12EDA28DFEDFBF0AC16E27008C9FDC62C35E53B28A312BDC91C40BFBB02D701FD1350AAB462CB65DAC4B2F75928D378DFD7A0360DFF9185175538FE +encap_coins = 0C7068E5864FAE7D1ABDA0D0A5C1E62FE5E1CFC2C96D82ED6EF180815DFACC66 +ct = B54E1C3C3F39EE3B62CF4D40392EAE63F9C56E93A9E80FF9A6A4F00A6568A48199F8FA3BE3FFD3FB14D41B3590E18C972714A93164137D24E98178ED4DCFE85CC754BC6456F17137C9037C8D1A900BA2487246FEEDAD3CA9372CE99E79EEB4DADBCB6595FBC4D3D6ED9CB1D0C2747A8CCD5708AFB294B1097953F680398212738A5AC9C01D0D621D31DD77DC1798C019D627B9AF416980E9076D04192E9FA6423DA230C4C676627801FBCEF08C21842DC0690A7175DBCA0C3432ACB034333F77FDE0CFBEFFBE3181D740F692FDDC67A6437CDA5DEAD39C8F2F53797F8273435413943DB9E8764B7475AABA2EA8F1C1DB11F6A698FF10242D544FAFC476B7013EFBF8D9B4B4F6F239F003C9325C34B8B7F5628202CA228FB0A5AEC537127C4ACF198CE74AA99B55994FCB9C91814EB8D4DB6027CC517FBB779628CD19B725BE7B688907DB60C5E91D0AE74D60C674DC1C329FC3CB2F3AE6652965590D329DF95EDA0973CC2E0837223B7F76D8597701F5326F29BAD1D625DAD4628E0109D0F12908CAFB6A491AB87036DB388FC9788FA67BCB206958E591A7FAB4C46980D28EC37DA2F65DE513FA73C99024A81D3A2F93C61567DEEAFC25EA9A7EA1FCC172344256DDE171E7DCC3D051AB12B611D1484815789E91A50E543C4DAF44373F8D79FADAA4533036EDCCFDD0E26F836F02EC7DA2253EE51EAF0BA635CD94C2405B61F9D9184F1D6E62B8682579DB6C7E0C430E8AA34AD933892E75C6235CBB484512C51DB2CEA68675B3BAFA95B9E6ADCC32584713BE3F43921A99EB0ADFABB475FC4E30E2AEB48BF34548F5DA55964F95182403974C216DB2E3A5743C74DFE3D3C2F904A41529981B917C6876098EC71C458110D185BE533EE5D62ACBA06E678BDB1ACA43F056983F48AA018964781C9F0A301216281780D0C7A1543D1981B8F7EF14DF8E2ADD9E3A538F98C6B931A11CC87118B12AA91BE766B7493FA5819BA0E5979631F9F20DFA76BBAE028DB1DBABF562ACC9B2DFB856401435E2ECAF2766EF95205BC01683F76E02FC12F1154DFE4C9820F8C1A1360B97F228A034B7B769C79035D54ED53A4E0B582AB880D88D3369605552208EE85A806424E29D6EEF20D0CBB81538C99D7613D40671A6ED419C196E4D95979DB1E817EBECE715029B681BA2B3EE1A786D5C6ACA00B12EFB2DE288CA5A221C9B111072850F5FECE28ACF544745D3F3DD23F5A83D5D0385BC2AF068BC0AD77E38937860260B44C9A0B43156E84DEBDBFD1605A92620419F56556846F0C5952DDE73594E3EFBA964F02871806D6CDC1F713D4EDED8E75A0E830AF33623915D4D88A1DFA8EAFAAFED26AABF786E063AE18B06749A480BF4C28C501AA3A76A5A289844D5F01211E018B381DAE15DF195F2891AAAFF5A42092613317BBD7B71A146E3742922A0978E181DAD65365980995CCB0CAB8AB8DD37115EC0AF0CF6C472FC083511B978051F81C8DAC92808A2A0204F473FA658107C6631AD5A7B6A58F331D8DE6446E36C482F820DF6A254 +ss = 86D1E1F87406302C1D044F5C319B2DDA1D3E0EC5CD071A42122EFB684839665E + +count = 90 +keypair_coins = 6DF4385DB978D27B27D2AA5E452E4152B36F097503D9581AC3390105C5727E7D165FD0A50A39142F7C6FAA2BFD417ADFA4224858281696965772F448C7AE22D4 +pk = D3B1CDAFCAC7F6D08082DA095A7658B3A45F7BF717D4B80A3A050A04CB23E01103FFB1731B2C35A9DC23C4341976B188F5226459A02D348BC9D2064D574040147B41612914CFC2954E4190905446E5AB8632EC96145B917DFB4A9DAC62B18CB0120679E739901D9BCA662024335A083911AA53828D6D79C948425422C32EC471C2FA843B54F6731FC401475612A135AAE4B146FA829871C0654C075DCE41190483C3EF60B7336200A4A39CFB6787AC09AC85F4CB3DBB494727A20ACC8A1CC9CC765862B0D402147A08A5E4AA6E679D482786910399BAC7A36EFA477236B1A01BAF452BADB3F184D7D6AC6EF64CDFB89D1CE66A059A4659D8137DFB3C95CBC9E8D86E064CBFDFA50C68130A8D82258407BB7B926F7A802B53209F3AB78784102E88FB91E6311D496251F7B574AEE5797E881BA1DB16AF40281586267D826C0F33A0518C26E6533E19EA0EBF29474A131D882A189AC03B835C16C34C9AE7A1C4D9F5159F85B8542284E0409DFB0876FA6488E6519867B5C53896867772210E95399A1733D2E78532B7651CA9704AC063DF086CAE4AAF65150093F27054F34E2849449C7680EF1CA1A0AC399A01A9B74484A967592CE85086230582518414C247BB7680ABFC2A04A35A20A851B73548A8E4CFC2B84CB5EC24108396C28498A6614790D56BF8D1B9F9E40BF574C497218EEBC06217C9BD361BAA5D0715E666C2D3D299346A79BE0BBE4B7CCD49F948A60438514129C126AA1F3875718922C5124728F09FE5437AE83194DDEB81F0D744FD2B9B59FC223E2792501B4932924FACC16C1E5444DBD6A823016B3AFCB46EF59CEEB49728AC541BBB6BB64B7E196C59910628C8CA22B1138D884842C387B594B544E5D99784B06ACC3B5D80BA81CD34739A20AF11F7735D645D9FF25C07F8AF9B5902524A1953CA2A58D6B796E3695A006AD6C703DD161C12C01B9BC995773C5D2CE59470C765C3F5401CC07885C77BFB3C15D7F766F0EC7CB3F601DBFC210D599093A21C87D82002212B06898A5A878D4EE913EB451DCE14A1BC424838D4797ED14D9EEA2473B304D6624F1725C820751A9D313CBDC79AC9A26548587FB41371C5F48A4DA04D37AB7189685AAA054853F0491A0388AE4B7AF4259969E29EAAA2B2EB9503518C7C53BA0E6BD20EA8355A63F1C481EB5E662A0B792014AE4C0981274D902759AF794338072A839B05D9D42C1EBB1A3DA33B54066D1A63024A3B1D1437B37A83BBE816075CF416275A6F58336905937105E63A1A017F87911CF0B41DAA41A5DAE3856A606E2A9333176628198B49D2517F54A9182E4BA877760517DC94A079538822251204B4C4A2382CC7889BF84923C09072F86BD1C5879ECC3A37678E6D031568C24012578DDE5CA01005B2DF71A4A0B0455A03AFBE7C366BF1B086973038FB5DEBD793A303B4C867B611772733F66574CB0D7C303563C389B2F1B46E98945A94B142B2B0D647521F4B58F12326FD86286A448909191BC600BC7578B0169A45C071C77F280C583788F9C2AA1200A73431AD56D23B20471BB67A627A594BA9922B1FFB75D2D030432A954C71235A9278857C3010A8A8906C070B77060FB831842140770ACB92E856C8A95E163D5181CAAD6A478AC9AE82EE27F7256F4D4CACDDD43F45CFA4DE4DD067CDCA +sk = 96D9C668915384C2847B7991E5F557949C99A3D46A2FC9AE7448A229A89EF7F405C2911777FB1E2F44721BE8CC326A80E524486A16A083527E22D51E4EF624B02625FD6A857BEA2C0590A3A4E39F0E041B7284BCC501201842345ED5CEB097A5A5F730EE53176F8ACBF9E03C6DC4A069718DD64C47E1D17323D29ACC630DB2DA9922804802CC768070245380CEC6672F6A5A9D14E4012BB13CAF8C320A320ED63B0591087A0C5A76EA29B57D5C997FDB372E9A57E3F4827A2441CC485718A421D3C45BD0426A87589362E52953822CF785802B2C6AA441ADAEF93DC6451AC68A9867C9B9703ABEDCAA540146BA6DD8ACF7DC317A82A4C1396267032FCCB53BE9306E20E4713B82842E03B7FA984E5827C441E293352B2E2A51566EACA8D9C4206000655F761729020F7FF9B230D6C4B986BC94551175A8ACC7E2A2C174C500666D3CF021A9B40F1A465447291F920865AD16240309B5C838A2DDC5BEB8AA11BF987AA9D7C082E8C55C63AB01D0664E545E505B4AAE50606136B6B01499A5BA10174852224AC6BD242D5D21758C4342F9A02A3D46A9A845112ADCCBB73488CFE3055CAC398B0245C467B94EB342E1845969D70511BC7100F886308CBF21C13840BC17626AC93DFCC4EB22BA18F62B15B521539901166598F25555C32587637A341017885AF1A6D1841AA1C747D918253E1C873C2CCF292BAD45805D8946B00DD23CBDA03878F66357D175D67A1B743C1E5428CE90661067011874B062E9AC8A0F726B55B76627C53338549C3F2605840A11D5606ACD104BFADCB51253AF718835826628235878D6160F15033844D76AE946AE6C240053C2AD6C3A3D72E721D9565A6C79B56840CC5A878C6A4033BB9C88DC43B130348082E41C269CC0D3B05FFE356B5695BB01C95F8AA9C30E50CF31F11419E13ACFFC7192B75948E06A68458DB80A8F71573B6EDC1513AA5B060CB77B12C62761BC188159A49C95180249B3E35C3100635012637CB9CF17CA9936787AAC954BCFC655AEC8B4215861A7709F2846A1C14889D0384591753E3F19CAD2236DFCB7B225ABC430A7B61E6018AB30146D60A6563B2F980ACF66186FEE70A458750CC62C433E651F447CCEF8A773BB2731A866832AE535F0D82E605371F6B35FD6FC1188A52080C609BDD8748C321CA37190321B286C849D35224BB5107D83E2827EF0C63859133852630B237247AA8C100678E43618289239EF19C99AA6B9156704643285BEC89F0B0C21F3A091E2063E5D3029F52C33AF97529E701298D3961F492E6B731D4E2064D034533F4611FEFB64F1899EF563AD71A52E20B199F0D80C557CC8CEDBA3CD1746D3A6AC2E697637F08A43D681ECE3769C8980C76A26ADCC585EB1194D28AB163ABA5563A5C7985720248662BBC21470022EF4110B33B6B8B744A80AB36D0A9B0A7988A0C98C6A597F8CDC76791C467B0CB53A020928F7A55981B520017BC06B36D10A21433797C15124E0892A81230BD6BB4774D46F73B874602588D3F8966469194041BDEE87AC54059458B19724949E7998AE8018755D491BFFDA76A70A64EFF902A4281734A7484037C739B7BF71B658B779CF6370420D2073FB820BEA1B1DF29C3B12C54ED3B1CDAFCAC7F6D08082DA095A7658B3A45F7BF717D4B80A3A050A04CB23E01103FFB1731B2C35A9DC23C4341976B188F5226459A02D348BC9D2064D574040147B41612914CFC2954E4190905446E5AB8632EC96145B917DFB4A9DAC62B18CB0120679E739901D9BCA662024335A083911AA53828D6D79C948425422C32EC471C2FA843B54F6731FC401475612A135AAE4B146FA829871C0654C075DCE41190483C3EF60B7336200A4A39CFB6787AC09AC85F4CB3DBB494727A20ACC8A1CC9CC765862B0D402147A08A5E4AA6E679D482786910399BAC7A36EFA477236B1A01BAF452BADB3F184D7D6AC6EF64CDFB89D1CE66A059A4659D8137DFB3C95CBC9E8D86E064CBFDFA50C68130A8D82258407BB7B926F7A802B53209F3AB78784102E88FB91E6311D496251F7B574AEE5797E881BA1DB16AF40281586267D826C0F33A0518C26E6533E19EA0EBF29474A131D882A189AC03B835C16C34C9AE7A1C4D9F5159F85B8542284E0409DFB0876FA6488E6519867B5C53896867772210E95399A1733D2E78532B7651CA9704AC063DF086CAE4AAF65150093F27054F34E2849449C7680EF1CA1A0AC399A01A9B74484A967592CE85086230582518414C247BB7680ABFC2A04A35A20A851B73548A8E4CFC2B84CB5EC24108396C28498A6614790D56BF8D1B9F9E40BF574C497218EEBC06217C9BD361BAA5D0715E666C2D3D299346A79BE0BBE4B7CCD49F948A60438514129C126AA1F3875718922C5124728F09FE5437AE83194DDEB81F0D744FD2B9B59FC223E2792501B4932924FACC16C1E5444DBD6A823016B3AFCB46EF59CEEB49728AC541BBB6BB64B7E196C59910628C8CA22B1138D884842C387B594B544E5D99784B06ACC3B5D80BA81CD34739A20AF11F7735D645D9FF25C07F8AF9B5902524A1953CA2A58D6B796E3695A006AD6C703DD161C12C01B9BC995773C5D2CE59470C765C3F5401CC07885C77BFB3C15D7F766F0EC7CB3F601DBFC210D599093A21C87D82002212B06898A5A878D4EE913EB451DCE14A1BC424838D4797ED14D9EEA2473B304D6624F1725C820751A9D313CBDC79AC9A26548587FB41371C5F48A4DA04D37AB7189685AAA054853F0491A0388AE4B7AF4259969E29EAAA2B2EB9503518C7C53BA0E6BD20EA8355A63F1C481EB5E662A0B792014AE4C0981274D902759AF794338072A839B05D9D42C1EBB1A3DA33B54066D1A63024A3B1D1437B37A83BBE816075CF416275A6F58336905937105E63A1A017F87911CF0B41DAA41A5DAE3856A606E2A9333176628198B49D2517F54A9182E4BA877760517DC94A079538822251204B4C4A2382CC7889BF84923C09072F86BD1C5879ECC3A37678E6D031568C24012578DDE5CA01005B2DF71A4A0B0455A03AFBE7C366BF1B086973038FB5DEBD793A303B4C867B611772733F66574CB0D7C303563C389B2F1B46E98945A94B142B2B0D647521F4B58F12326FD86286A448909191BC600BC7578B0169A45C071C77F280C583788F9C2AA1200A73431AD56D23B20471BB67A627A594BA9922B1FFB75D2D030432A954C71235A9278857C3010A8A8906C070B77060FB831842140770ACB92E856C8A95E163D5181CAAD6A478AC9AE82EE27F7256F4D4CACDDD43F45CFA4DE4DD067CDCAB990059E901097D00E0EBAF40C5D5DAB009C66798489D357E760478CE884CCE5165FD0A50A39142F7C6FAA2BFD417ADFA4224858281696965772F448C7AE22D4 +encap_coins = 5486A0032681FF89526326CC4BC085B8023614DD1621850619C6082483D84C0D +ct = CAD5FBC2A11AD5FB386F6521386B300BA979BA8597A1781B7FDD605D3121C1710E5F586061D7D508DD16EBFD08F903ED5D796F4ABA4311A58BDF08AEBDFD0A54B3F91F570CD55A56F701F2704FB09637DA738C04BC50A6342E6ECFC5E8B53EC5DCDE88E3420E376F36C4F2940052AD08D981610C9434F37A70EC0698E98B3664B8581BFD91B0012008214554833D28C0AD2B34CE331A4A9C1AA25E5416509ED7D33C41EAB5E7032766A83F3966FEBB4076EE83AB8CB4A167010AF557C7E135093A2675CBC2562F607F0794BD63430AB6D7BD0464CEDC2E45FEF21C427D665DE5C3F60478503D72534DD372D57E980DC88CBDDD5EAEDECE2EF488ED64023678468D0D53B107AD1AF7CEE33A34ACCEFA56EC40E2D34A747921DAF7BDD781E62375E6D294289C7154DCD0716D359C24B0933AB7C83D2C0FC8BD69937D8A3A01202D07C4E37918F84572A908B2C57CDE76A018D576A8967C0FEA971FAAF8331AD5ACF5FEBB84C9479813EA56F9AF3F8B0258657251BAC38B9741B359E83CFD7A6163470DFBE7EA06F5BCE1AFB94BF1DB2B82E619A214D63D0410D0BDC27C2A718F71A2449EF28842585868C3A15AABAA40DA9C48E02182E70033AF35DE4D8E5833EAA1114D7BBDB70B94C3E5C9E9D49B75117EC292B2A5D25CC76F71A697A0659CA6D494FF0D916A752F33238A06012CF1C259FF061813B3AC88662A58CB3D893617CA002BBD5E3AA8052B089D9DD628852BD1F4C43EA00A3FD1CA6D3897D05C040B55F93A294F56B94CBA32701A6D003D30E8F9D786FEA4AAFBDB57D5B9E1EB6644E5A6B8C6C49A10D5D0DCB818F04C473991F92A541738306CD3C7577FAF0AEF6C1F8F6D95E5303FBCF94908B90BAE9DB8C33A57948D7D2165AF0688425526CEDDCBD8A7837E626A7191EB101FF3BBD4AC6D6690DD0DCF76F00D1BCD9BFD9E99480B5247D370C361D1816B1968ABE7F70A8D74272B20A79BF363297DFE4A6C7B021C8F8DCD031754D78C685AA86D5D246F29DE8B4C2735C19A832AF76F689E3FC989D3CFF8215579CCB26F92D7BA3CA95CE191D7AE20D903DDC9C6AA84D9E6FB90EC4103781FDCC79E0E728A318C8D12075A4A27C005CBF440324B86D99E0A67387896D8CAC3AD2252CEDC3490A1C7230B515BD9CA9BB08B063143AA15A59B710631B39FC6EDB716D9B74F26DEA4EC9F1A6B2094FF5C7A799CAD7735E3B8E90181CE7D05F28E0F7FFA1B92EF678B700EF90B0FEF3C56AA275E4F07060E486E2CEBDA5FF1BEBE0F53A8E1FB72486875CFB201770CF21E5F9F350172BE899FB7DDED9BE2F7EA4FD28E76E3D7DBCB310D62A2572CA9A3DEE66654482443C90F8F05768568E4288A4E00C5DB5E5EB5411DCACEDAC76DE763A0F8E906797908930DCA981812172690C65D77912A335EB1A79A53BFADD49FEFDDBFD4C1093D61433B469267E0D15BF04224C6A12C502D1E9C8E2D47E981FBB88953A5D501B0D3AB47981AECAA6193028C1BFF2A780A468742DD1D24AD6D461645900D990407C9D2763580 +ss = 9B892665A45ABDEA0FB08C9F1DAC9EF5B9E49EC9E7C9923340CF344C2C1CB112 + +count = 91 +keypair_coins = DBACBA825728444921B227CDBA54446B3F6881B47BE9CD02832F78B023B1BEE0171EBB1A64C173B3D4D997C12F734D2D57FA2127052887DCC6461FCC23B66FEC +pk = 112B1DD09313B9A25B7094700639775F89B8D0314EEF0186ADF7CEABAC36CC9292C270717F27CAEA51B1AFE1CFE6B6A1CB1A7DA53C6715C9C9B2694BD5A581B733AD4841B229FB7A17BC213B969935C672D0993A94EC170BDC8B7C800E66BC6514F84FBC81C7D1C9417B79A82E5B3980ACC792A19C46D13A2E75A3AF791BEB401F7555793D94C0EE1B9E98A5B6C52777E537BFB287268CA9524A4438AD87A0E85279E474C5BE7740B7867D8B04781A2436A8D343F62274E236C736DC3C59D5B326563B9C86798AB14A6C9A0E67B36DB89A82AF690DA7016418BA2D6C435E39095BB81A0E49C01A73A31EC9159844D1A3EB233D16B932919421E6A342473A71DE629477183E8F34B2B7C8ABB7A3B6E516107CB5229D780B93417F9BC94C38BCAA58F34DD88835308C742875CCCF4928122199CD932148F48A94C5C2252295890BB4645761D3C2C0F33AB3E1021AA56B573E9C6FDAC37C83F678B97148CE573A244B0487F3CF771BC7B6A13FE53A6BA58854B87A67A6A17D6A301C85F7C061071B4DDB27B3F404DC402EBACB8254A0568D48B2D299BD831188886A65AEA5CD8D987F6017A2F4392F455C2B4F9B63E6CC1A27EA38F2588B0F8086D7A5C5E4B05B76D2B8918820CB8851704CA6D730861B512FEFB0A76B61401E23B01EA710C5E3B73FA716DFA6408A635423C61372592DBF174D6D811EEF7C4D885BCA5FE669233A141E43810AD10235CB59F824728BD7ACF17765BCD354A493AA60438F07D266D728B640CB07D50275BC2605FA6C964614B2C8143B37B184F3C30668662149BC18C6038706C12F0D31B896B69A7D588D0004497E4808D8C12253987F000168EA758A5B32C195F03F23A07C5A546A6607084CF79E073BC6CC1CB372E385CA827C490A42D900035BF735C6242031B8332BC57765ECCE4792706F1CBA0C7CC390E7BD3595AB876C4E397C58FC325C9607B0EE39692C31730EB4744E967E7FF8139FD1A545622EC870516B2925628BA782CAC845B2429C3CC0EBF7747F414E8D35CD4A91C959D2276404A5DF4790F4363104E6A0D1D60A48B65BBD92B417B51A5338CEBE36C0F218BF27968C05D99947E9B44B4B5B2934C538F85CD7C8B9E3C31637E14C5C0279CDD6386E20CA89A53671FB2F04249565491AC2F900AD380D1A68B67693B185F26A232AA1B43503398002085713CA4B2F94CBCF6E837B020404B7F519A2B520F93B901943C918393F26061346A0193CE9BA8A48B5C4B01B0EFA231EBA0528C5B38CD32CD5D22586494734FA746B411759303A51A12EC58B03FC99A1EDFB1CB01375032054878A6EC9DC4425945AAE387E7FC6CD399C90049854CF51B3DB690EB78A0A2DB04D05102DACAA9834620ABA427B5733BF1D1693643C88BD265AF0280ECC66344B81129C491B3998C6C70CCF03257C2D06115B72AEC35B4C8774CC7936C578B29FB3B0A5C66709363B73F41B08DB919CBE57AD817CBB5DF62B7836AF6FF4AB8CBB07C9FCB7E3D601B2117E6A7242ABB24EA96CA867B597E9E9B45C01ABA9B54D2D323DF8B38D3D37B72C2790E1041037355F274CCEAC2714A92955B31C55D4903A85BCA55B2BC22C536AAB22557D912FE2234423E7BC0894BB5F846A2DBC4A0DBB11C51840059EC11BF6CEFA3AB473E1CB0F0BD17EE0BC3C59 +sk = B1C127D24808FB2B9922332832131C4FD67FE8A1A070AC8D17100BF9F6291EFA0BC8114D98F65C8F4ABAC3AB17B4241DECCC37688B881BCB68503B54379838BBC100B5BAB306327E7965B694644C470A5148666C7FA89872D39AFF60BC533C83F280ABFBC26F073331EF40B694AB25FEEA5B2F55196798B70681CAA21537DFB5746C66129775852E5850F57C2DB2E8A0E90530A57B387B1C429101D04096C3E0BB6E9AF19F83B1B0B74C47BAC678B0F2269798573FBCA5D8E687965B13E495827ADBA63DA8A17564A3E68037B3A4991993401C1C6B149895FFBC03760C13595035A713140EB7A42FF6ADFE6BB371C9AF5A686EF858A8FB7A63FA137492B53305685205B08D44A3AC8F8948F2B7BED9CACE27AB6265722D8F2950E0C9ADE053A4C4CA8E3F80A907A39E33DB78E6065FE9DC050A5A730595AE5EA32E38C512EDB79DCF345F1D9C238A1732C552AB8DB2CCCCD11822972896B323CC43AA03633617F82E89D63D4A1003CF9C5CE3379B1D53A63EAC57ADBC91510316ACDC30FD74A1A2E6C23584AD1CB28444F9231661079B0913E20B3278D8A2E8B18556F336CB750694066B6C82C5D267A903B624CD440D8E187D9E438D178C8394706F016B835E1522AB6904F80CC24358B7DD3BB271039ACC174164021E8A522FAC473054D5B4CB3BC64BB107C6B637CD6360E312A85A3B1E3D2B64436A87E81016ACB763A23CA9B7463023148B0C4888BFB18D9441841F723B9436B77B09C79FC714385A3AE97B5BDE0A2A0C541DCD2B668C696281389EC270BC6D088FC42506CEC85BCB4B611342AF0A61B1B9D75E0DF43BE293CEE6EB0413363716EBBC48EC6C361A48B9D871BD5742FEF2AB286094A92B508CB794F2F69A8EE15C2D748D8FCA8CD2284719815E75B3B0DF76298E48280BF530E09A34D166CD5379777D472F0994BA8E5629EA7691FB973F45869635B61B277C375606B911AA1228271C85B047942A52187BB231412B50F5BE423476720240E62B9D3CFC5B7AF5CE9FB38E03349063741ADE945E994A2D6492A92B1250880318B9B9CE845BA29BD3733228AE960663050888BB98A0FDC21D6FB34CFB5C1AF6D9B98ED6AE454C09B89B6067401FB30A17DD331A845C713715B5BD4A087BBC14CBBC9D2EA83D0F9B0D56D939D01B7D590B3082D2405A20724E2C44B5123BC1407B11DA3DE5889AC52B7B7821C4AF1303D3959EEF3888B8847F3E0695B5B844E8E3C221718A25057E707A50E0159AF4462BB1D103B9057FF7FBC1740BAE1AFA44138AA2B7E3270CF80A6AC745CF701040C97253133EA195648E929E6C6394940B6ECEB18844F1C862DA6597A46F64E0CB5D2803EABA4A08110A011A32452185A6425D9D44B43463893369514957592F519C22D2B06BDC762C519D5CB84E9A68456AC60AEAE85AC6453DE2BCC103E32DD509309FDC08E3B3698A193D83D62DF74719703BB5F8CC5DB7B88B80110D74D6949D00469B840FF7FABDD4C0CEC1A097A6117C28046B06B82C8EE8204296428AB703840ACF7F3333D742726B114D3292B3154B2C4095B6D465657EC0780C488A0C60443717109363C45777271955135E60B46104BC18BAC09A18690B37C8078A22645532112B1DD09313B9A25B7094700639775F89B8D0314EEF0186ADF7CEABAC36CC9292C270717F27CAEA51B1AFE1CFE6B6A1CB1A7DA53C6715C9C9B2694BD5A581B733AD4841B229FB7A17BC213B969935C672D0993A94EC170BDC8B7C800E66BC6514F84FBC81C7D1C9417B79A82E5B3980ACC792A19C46D13A2E75A3AF791BEB401F7555793D94C0EE1B9E98A5B6C52777E537BFB287268CA9524A4438AD87A0E85279E474C5BE7740B7867D8B04781A2436A8D343F62274E236C736DC3C59D5B326563B9C86798AB14A6C9A0E67B36DB89A82AF690DA7016418BA2D6C435E39095BB81A0E49C01A73A31EC9159844D1A3EB233D16B932919421E6A342473A71DE629477183E8F34B2B7C8ABB7A3B6E516107CB5229D780B93417F9BC94C38BCAA58F34DD88835308C742875CCCF4928122199CD932148F48A94C5C2252295890BB4645761D3C2C0F33AB3E1021AA56B573E9C6FDAC37C83F678B97148CE573A244B0487F3CF771BC7B6A13FE53A6BA58854B87A67A6A17D6A301C85F7C061071B4DDB27B3F404DC402EBACB8254A0568D48B2D299BD831188886A65AEA5CD8D987F6017A2F4392F455C2B4F9B63E6CC1A27EA38F2588B0F8086D7A5C5E4B05B76D2B8918820CB8851704CA6D730861B512FEFB0A76B61401E23B01EA710C5E3B73FA716DFA6408A635423C61372592DBF174D6D811EEF7C4D885BCA5FE669233A141E43810AD10235CB59F824728BD7ACF17765BCD354A493AA60438F07D266D728B640CB07D50275BC2605FA6C964614B2C8143B37B184F3C30668662149BC18C6038706C12F0D31B896B69A7D588D0004497E4808D8C12253987F000168EA758A5B32C195F03F23A07C5A546A6607084CF79E073BC6CC1CB372E385CA827C490A42D900035BF735C6242031B8332BC57765ECCE4792706F1CBA0C7CC390E7BD3595AB876C4E397C58FC325C9607B0EE39692C31730EB4744E967E7FF8139FD1A545622EC870516B2925628BA782CAC845B2429C3CC0EBF7747F414E8D35CD4A91C959D2276404A5DF4790F4363104E6A0D1D60A48B65BBD92B417B51A5338CEBE36C0F218BF27968C05D99947E9B44B4B5B2934C538F85CD7C8B9E3C31637E14C5C0279CDD6386E20CA89A53671FB2F04249565491AC2F900AD380D1A68B67693B185F26A232AA1B43503398002085713CA4B2F94CBCF6E837B020404B7F519A2B520F93B901943C918393F26061346A0193CE9BA8A48B5C4B01B0EFA231EBA0528C5B38CD32CD5D22586494734FA746B411759303A51A12EC58B03FC99A1EDFB1CB01375032054878A6EC9DC4425945AAE387E7FC6CD399C90049854CF51B3DB690EB78A0A2DB04D05102DACAA9834620ABA427B5733BF1D1693643C88BD265AF0280ECC66344B81129C491B3998C6C70CCF03257C2D06115B72AEC35B4C8774CC7936C578B29FB3B0A5C66709363B73F41B08DB919CBE57AD817CBB5DF62B7836AF6FF4AB8CBB07C9FCB7E3D601B2117E6A7242ABB24EA96CA867B597E9E9B45C01ABA9B54D2D323DF8B38D3D37B72C2790E1041037355F274CCEAC2714A92955B31C55D4903A85BCA55B2BC22C536AAB22557D912FE2234423E7BC0894BB5F846A2DBC4A0DBB11C51840059EC11BF6CEFA3AB473E1CB0F0BD17EE0BC3C59175EB63C3144108548720CE7EE0F43A9FF3F52A9924EFE9F2F59318BB93C86B5171EBB1A64C173B3D4D997C12F734D2D57FA2127052887DCC6461FCC23B66FEC +encap_coins = 87D356BEDD39170C21194287FD3095C451B1E877DE2FC9E51B58294672311A75 +ct = 33D1A2473A7C72723E0A1BE599EF62DA72FFFAB28B13C7F33BE7BEFCF20464CDD89315B5009928BDDDD6254E3F07F240BD69CF66A5EF2F2267229E1B1C9B38EA01FAEA242A9AA6D142A388DF86D0821FC3F6B4B281828D9839CD75E1D9E3BF6A5D1D8797202E16BC0D655359BFF8FF2F269C0D5C9AB0EE6B9D423C97B71477441CEC61B19FDFF35F1B3FCEA3ED46D56A308E1BB4B161A40DC339C936BC6610EB07F42C9A430D00F1DAA13393460809D4E9EFFC84F8C1092B63F9E0EA0C9EBD2B855C58500EC30500CC44FE514356CF84B67D9209D1CCD8AD787AF565CAD1AF6A2265A7B859E0DDEA348185A312FBB26AB0314F0BAC33042C692929369DAAF9419E4FE44ADFFE731217C9CF0D1CAE2A08B749ADA93113770C6C9AD4C0BD0B04EF43819A70D72938D84A3F98F4C676449E136ED863E910C84BC7378CA75DD21FBE784488CF9DE9D06F7B0BBECCF49B9942DC0BF5C907AD4A8A2A6090082AA45AF16DFC55ED400F576CAB120F9B014BA6D8E83962BCADA64E86CA28EB6D740A24610B908EED630548E51D0276F15037F28DC51D3911A558E5C6287A76972260CAC1BC43AD1CB167CE22F00E1142E74EA9809002927683278C3CE656EBA074FAD7199971EA2B6FCB4EE52B7E4B9F1DDAD82C5B756F5BB51D8ACB1855461104C7830BC24E211423F95826BAE42E3574F053E0515D033749BDFAAC4D43B1FD5E437BEAAAD7AFAC6373C8C633242C0EA3653D6D60ED772D70183F9826226803BDA2848E5746A501E7DE9FCEADADA2D5227EFFD1240045FD1E1A180B150CE1641E2868C0CFAA774975081470CD23BE8DBDE1E06FE24EADEE8E7B47F6D0AF6B83E04637448F87024C7625026436CF0E4012627930FFA8DF73A41BDB16A9F6051AA2AE89FD62B577673642AD90C522C9A4F4B32B96976A4E23506FCE49D0E5A8C6AD0BCFE5178D86E04F1FB6ACC008D0C05ADA4D0D7C6430B9E0382D2923954CE5B8B4A97E8C5684803DB7024909F0083AF39600CFE5EB4DF8C3162BF8F1911EA6B225BE6334A593D31D83D537FC7F4D2C6F7BE051EA6576130DF4BEF9F741E6E4C8111FEE91990A0E9C8059ED5440B9416ABB5ECC16FFD24CA16E524DF7BB7EE13DE24D5F043DA50867C58FC23441F5B496B5FBD8ED8BCEFFF7651E3FCAB74BD1CB0371C515042D657FBE05B738E8C188286E6C6FC7A3D040F6D45A29AC0C4E4C952262E296B3A6D76AC8AC3C11AF5E809FFD6255D6AE7D0E86B49FBF6C93BA40C7572998A15FD494C0DBAC724C909A70D834494FEE90C38AB3BDD1377070BF83ECAF516871B142D442B240825450A3426C30978FD8506D43E57F64FBD00C4A66A897E992F4CB1AA0A9CDACDEB4AB6F1DA2B89164B018486A00F65A308B1013400989379F6D914C87E36A1E851C34D7E144F0B7673BAA22B0C9938B3355DCE2B9D630B8DE36F51E2942CBE89DF7F700A92317AA5FB3F8E76B3EBFC1CDF6D414B7DB6C41F4EC281943D223561A87002F12D50FF160CA351D53F3603C8D6AB79083371BD322 +ss = BBBFB22F6EEF49A100E6E7DCC6AD61A2972D570739DDFCCAAFC2DB90E1CB92F6 + +count = 92 +keypair_coins = 690EB71FD7052B906EAEC09937A8ED374E0B02AFA27C2F14399932BE5839FAD20B472C6DA19B790E6C9591EE625B42CA0FC04FD9F69D72CE4EFDB3B9ED8D9C29 +pk = DBF001BFA28B07E21ADC142C75111B9785AA2109A795AB792DE4CB7B6298A504200F8850D32CC44E54182761A1C9C9BA591A9FA6873A61025515B068099BB1E63751C5B887D283077F86B733E4344D13310CE12D22322F254A0E92779A87067D19C53C70DBB927E14E1F2892B5273949428EB4C70C49DA8AA7FB87048961DB4892A6F89F18F0BB69347B9575025A964047AC7BD2C7472838383A6072F8338B23AA07D6B7B221E18D4E3C62641916106694315A2FC5BB88C6D664667680DF556C3C046398A88328421F32ECB758BC64CF246815A25922021DCB67C995FC72CC6B46BF5CA9EF3998535AC5CFAB70AA54318F9532DCD138A4C03E2FF5024C52BB486BA7665B27610B822975C412331ED6C98E66721DAA1897936371113A4F17D96EA735A5CDC019809C3907C03FA950C00EBA9DFFC69A902151A39163F2931E1C0271D491562E0A87FDF7B7846C31151017EF08727DFB68F22A8585295659EA358CC1B85C9AB4D107413225B8259804B31850EB347E1FD37F5435617A7A07B15321CC204B1A6B7C30D67E91C088A458BEF5CB704E6B662189A9C0079E224A94E21502C0F1A4DFF6028EF6645CBA38C0C86EAF673E9B2613620BC216914A9781645FC48E33CB9EA06182637439F1D1A19FA50CFD3B5E2CB8310229B74ECBAEAD4B079D535521B8587A2995FA9B8C6694BE6E432343C97C16CA23BF53883E23CC38F10C38E54F5639B9FC0943A4F41CD0ACC8DB40CB12E644CB74B9D4B858F7D6767830B92381A42368476CF2602ADB9ED08B35FF5C4D1EA93C94AA75E218779825401D859902D19822E9820D86C7E57562795B89CDA97EBA773070BBC502884A6F437D7EA7A459C0764CD943E0B6A5B61B8358530459685E2842AE9AB867FA712172207E692A7AFFA872323779087547C3D8B89F368CE078ACECD55AAFD5305371A5BEF24FB255211B2169F4543927C845A3049F7A88513A682303960C2D12BC277656F15738C4368DEB70CFF2A32A1D179F4FDCA57812CEDB21B356E0AA63270788B510E58B4BF613473FE931DC80A9CB8BAFE63AAAC3913936C8A939C413CCA10A1277409250B5DA321EE5C24AD3D093C1C7095FBA34B81380E5DA561BC039E3A8C15FF3982A7938BC16446A3AB2679A50C2E5C1D1A08127DB4CEA30340B5589B2327988C97B78F003D1315DACB301520A11F9F0B4FB33CE7C0203FF11C6A66136C0AAB83928C145F4B968783B131281F2153925DC13AD133FCC5247B595CEF0F03FF0DA0A429C0DE9A54F66C03F1A616C7210B7ED3624FDD27E99F38472867A9283C6B294B0D7014CF9EB62F0D7B051B190F093450453C056081370B45F5EBC4C03808FBB5C6D8B659BD22612C2872DE9034B11C6AA6D356B2BACCEA0F909DA0C775969C12FD5BB0C8A9BED5172A9358E01C29D308636B5D668F5B2C9DEF1380BA23B5C84259D887D3DC4882702B41D99C72C800DD5B19935D7722610741A105C1D227C38C5665CD5A6DAAA991A9868499830C1697FA430BF4F95B03004126FAC283A167281E4B847EBA8487B0032914EDB0B67B1E320C25BAB50499378115CB07A9000E0156C9C93C1D90693B9C22623A3EB15618FA1C470481C4CF292B7462410D057C2E5851E08E31FD88AF2F84B0CF79A88DE834C1F17C7A5FA17D329CAA0 +sk = EEEB8866B17CDA12A45FCC6F9D05AFD103835147647A7301EE071366398473C8103AB3B064E340F4F9866190ACEDE02473FB49635BC38DEBCFF0F34C5175AE0EC025AAF19CCCD46D658C2A6BA62B50D1452B09C21B430EE9A3CE05D36A8E1AAB2BF0185F35664B4999CC8C0DF049C01056AF6AACB025708C184534F1172B28FCC94AAC2FB7012E20443F11F43478E7B1DD8A5C7D9B5A8818C0D2259C7F710F51003777B060F8DB5FE06C3520D35E97F6B5792B0AC3304349387B637686CAC1A6E45149173041FD7C3CFFF5A398BA832DBA04DD7179D0768122A701F4E0BFA48149FF140E2978A723FB985B939458B081E1068EE5102E5F540365E6ACCBB8C28DB84125B21E8D04622412C2F075CB57019EB828616CAA245A8B099A01BD86268CF491823E440E984335AF59924FAC1D43263AF725895C717E827532D35C7DA9AC1420B46AEF13C9F33A427BB5A1BC646F7B54A21760527D303BACB2A21AA39C5577BCD5F416F126741FBA9C2CF9401EC20A14E9A7BB927CC8135BBB0C3180696093289F4B19539C58655B8698A5D1339C9490BE7C04AD3311FD422045A5027B203407CB5755462C21AC51F523389E803F30E12FA9C0AA7B4A1FDD85C66989AF558CBA916C9A037AC7DE1A3F7F1B5BD3208FB6F28661696AD0DB88D10A3B224A5BB5C99CCC96820E153E478AC579C65BEC5A3D4B85AFF1C4AF5BB222E7AAAF9E9149AFD11EA5E86990913D2B543913942D148639D9815D4A8908362A84BFB6AD20B8ACF9596DF4187009E7B773070450010744712F9E7A9B8E9624E3E2B1D6140A9E4789775ABCBD2657AA487740314EA1E446DB5C09746ACCAEE29783B23EBFB255BA5C9706F1254703C676EA09801762E9FA45D858732AE7218B37107B3708EABA05D2C035FD447CEBA46EE446AA324BC184E7B929F7513C16BFDE5C5E55C05E6B5041552C17DD223AF273CBBF65A44B4B6DABD51B341464A9993EFFD671481592C5A655D116B963975006B13503BAAE38332248F58656620098F42F97A813DFC7B4DF880E5E783AF5D833B89079474040AC05A6A7EC5E9EC1BDB282443C736514514F1CB7455958608A62503428464D89C66B209C417445416A54AA66234B1A5BF1C0C3F7064B6D0A7243E170B6ACB01C033C5B1670A3BA6801024C03B24CC1786025FBC56BF04F3B241E4BE701C9764938695BEA4316ADB6ABACFB44F2041D2C29BB867379374B211E990F194B872A7B684A212DC179A4ADD943AABB1E6BEB93F5CB100FE342D0781AA80989406571D1B79D08E31AE15B81740A22DF02270F920EBFAA3C9D74392CD64E71F363DF221134E9BE32B6B855FB76E15B5C91CC6C3F750AEED71071A0803987CA7F35882AC31413A6001A6023C0A183961722B6EBBA16F5577D95BEA2C5AB446AC8E57ACC96281A07599A8D335C2C12388BB0CB9F8633CD2251C8A7563B396072D0CF6E7B8E3AF2192E5731341214C30708E128914C124973E759D4221F1735386B874905220C41FC731A22B9C665CEF0CC5353B799399905F0ACB549F13C6FA56FAE2907D0353FF2054ACCEC40310A2C4B62AAC3F392B014BA88FC90EB868693EAC83516336BAA601F600518FC820BC8B0E76C66DBF001BFA28B07E21ADC142C75111B9785AA2109A795AB792DE4CB7B6298A504200F8850D32CC44E54182761A1C9C9BA591A9FA6873A61025515B068099BB1E63751C5B887D283077F86B733E4344D13310CE12D22322F254A0E92779A87067D19C53C70DBB927E14E1F2892B5273949428EB4C70C49DA8AA7FB87048961DB4892A6F89F18F0BB69347B9575025A964047AC7BD2C7472838383A6072F8338B23AA07D6B7B221E18D4E3C62641916106694315A2FC5BB88C6D664667680DF556C3C046398A88328421F32ECB758BC64CF246815A25922021DCB67C995FC72CC6B46BF5CA9EF3998535AC5CFAB70AA54318F9532DCD138A4C03E2FF5024C52BB486BA7665B27610B822975C412331ED6C98E66721DAA1897936371113A4F17D96EA735A5CDC019809C3907C03FA950C00EBA9DFFC69A902151A39163F2931E1C0271D491562E0A87FDF7B7846C31151017EF08727DFB68F22A8585295659EA358CC1B85C9AB4D107413225B8259804B31850EB347E1FD37F5435617A7A07B15321CC204B1A6B7C30D67E91C088A458BEF5CB704E6B662189A9C0079E224A94E21502C0F1A4DFF6028EF6645CBA38C0C86EAF673E9B2613620BC216914A9781645FC48E33CB9EA06182637439F1D1A19FA50CFD3B5E2CB8310229B74ECBAEAD4B079D535521B8587A2995FA9B8C6694BE6E432343C97C16CA23BF53883E23CC38F10C38E54F5639B9FC0943A4F41CD0ACC8DB40CB12E644CB74B9D4B858F7D6767830B92381A42368476CF2602ADB9ED08B35FF5C4D1EA93C94AA75E218779825401D859902D19822E9820D86C7E57562795B89CDA97EBA773070BBC502884A6F437D7EA7A459C0764CD943E0B6A5B61B8358530459685E2842AE9AB867FA712172207E692A7AFFA872323779087547C3D8B89F368CE078ACECD55AAFD5305371A5BEF24FB255211B2169F4543927C845A3049F7A88513A682303960C2D12BC277656F15738C4368DEB70CFF2A32A1D179F4FDCA57812CEDB21B356E0AA63270788B510E58B4BF613473FE931DC80A9CB8BAFE63AAAC3913936C8A939C413CCA10A1277409250B5DA321EE5C24AD3D093C1C7095FBA34B81380E5DA561BC039E3A8C15FF3982A7938BC16446A3AB2679A50C2E5C1D1A08127DB4CEA30340B5589B2327988C97B78F003D1315DACB301520A11F9F0B4FB33CE7C0203FF11C6A66136C0AAB83928C145F4B968783B131281F2153925DC13AD133FCC5247B595CEF0F03FF0DA0A429C0DE9A54F66C03F1A616C7210B7ED3624FDD27E99F38472867A9283C6B294B0D7014CF9EB62F0D7B051B190F093450453C056081370B45F5EBC4C03808FBB5C6D8B659BD22612C2872DE9034B11C6AA6D356B2BACCEA0F909DA0C775969C12FD5BB0C8A9BED5172A9358E01C29D308636B5D668F5B2C9DEF1380BA23B5C84259D887D3DC4882702B41D99C72C800DD5B19935D7722610741A105C1D227C38C5665CD5A6DAAA991A9868499830C1697FA430BF4F95B03004126FAC283A167281E4B847EBA8487B0032914EDB0B67B1E320C25BAB50499378115CB07A9000E0156C9C93C1D90693B9C22623A3EB15618FA1C470481C4CF292B7462410D057C2E5851E08E31FD88AF2F84B0CF79A88DE834C1F17C7A5FA17D329CAA09BC32A138A2FB5B6072464172ABE0FD97E9EABF357C3FA5391D94A415B53ABD30B472C6DA19B790E6C9591EE625B42CA0FC04FD9F69D72CE4EFDB3B9ED8D9C29 +encap_coins = A172A053269AF9BF0C132BAEBA3BCAB0C3222520EB90A6F7BA15F507273C828F +ct = 398C4E7AE6F0D8754C3B23BFC48C0CE74EFEC8A3FFFFAD47579CA028206D3E0A97BBB6761BF5E9598CA025C05445C237A5C9546302356A43C0F5FC64E3AA701BA1B936A3C2B512C8AC89284AE92EACF12FF994CA06DC224C3ECED6028CB90656DEF5EB08CB5C3C0F7FB14E2C0CE9007BD3F2ED271DFFF067C711A03332423C3E2486D16B0EDAD0F8F1D0AC6A231C7BF7D97828E3CA6D6A7585E4CADFE29880B879779060D1563077824B9796CDA81EB2C23C2133B8229EECABC756C2272CA91CAB3D0A4AC09677B7DFA3AE6AA12BEB9312B2C636C1CEDA259AF68172241A03453C767D135F74222B03AD12F0C72AB27C5A46D8106DD7BB77FE68A6DC17F1D2003AF04D67B933FCF59514D4F7250D2A403ACFA06B6E1A32428599A152FA51D9DE841F0D39238FB312146DC888EBA41C3C69369E4ACED63E8BB1353700B1A8A27DF82C6CE224E62B38C60676CB7AF3E8FDC855481843B5CADD5E6E9A8F51E89E6741F51A842B3AC2562C63922DD9DCA466FDCDBBDDAA7E3DEDCB1EA45B3000BABFCA2B8413CBA10541C2CD3FC425717033E135289E109BCCFDADAABC912720CCB18C48EAF0CD9ED3B7FD0A7A6E1C21E75841F60093622C6634342239E932496B6D2657F71E84945A7B7361CC125236E662FFECD2D29C9ED5EECD91A6BD4CBD9C3F22D5F35177BE3BA5B290B513DFC98A26A74F31832A30EA14A18B76260A9279D009EABB0CBCFCA67A5CBF9A5C8BF5F3824EC0EFFCA1265F98010F702A14CDC020679848744CE5151E5BE6CC415A05E2892CE05CD4E5E6C2834D94AF29729932F0A7C9456ACB10D53A26F9EC2D27D16F5B3F7777D94EA52710E147CED883284A4288F3042BB732103A6EEADC712153911F9440D75EAF01058DD064701A96B0299C8CFF5D0E3D27694AA729EE8BC085CE7EF484F41C76DC569387443274AA2D951CB6879E4DB998745AFE0243CABDB3FA6FE57244FE18A1F23DC79E320237039D08977F8D24A77782F1CC40FEA4A5260391DB4F58AB786A77E0F704066CD89DE6C81889E0984541A6290764634062C97B6EB0F448428217337347A5F54CCEC9783F4E8D5F25CBE4E3F9409F014A4D000ACC6CC8FAEDA1C1CDED26A8AA86B45DD7F88B6A177AA50A98C9AA8E315ED94AEE69A3A5BAA705D9144E8C72ACED89D5CEF6623BB0D7393CB45640CA56BF17254514B8DA197F9F20F81FDE2B87F59644A4E0288460CA1D8D5837855E463DD6B148C54B148E89AE7C14E9299F153B9ABFF2A9D5CE6F41A8A94AC904EB7B119B9D816E8FED7936440A21FFFC9EA89583D5AC9093F5C911B2A0F8DC83E39B1F86B5382A7A1FB22C033EDE30FB5F07A36200949491CD0FDA08566F71FEED83FE21C11C7342F38736BAF9BF0B63B2C29F9F19EEF5B98508BC213F8CF1E4026973F75C4E07C2F13369E006308DE48922FDF975A1CA03A502335A286F55CBD17691355BCCAEA9C49E48356D817ACFD8434791A868BB6E3A12041E2A5E407284732799854979159D70205F526DF229284BB12AC67B25 +ss = 894A4D596E75B5300B45FEABD3FE8D3EF943743023446BDB2F44D10137847367 + +count = 93 +keypair_coins = 32E0EA9089FA928482C0770DA545AF1BB871A03CE38604138B0D08EA2A10CA2B56DDB63A495D1AFA553A815CF751D711478A39E8D1AACA992796B619C84565CD +pk = 2DF84A0272C13DA5A495942BA848AC92D302A98A3E55937B8B1B49FE588BE32A540EC90B5CEBBD90D1B80DD24D32EB85FC041A7CA307E522B8C5FA9C85BC258C8ABB9F2678D29569F313A1E660A2454730261A6766945CE42C140E5181C68461EAF12D1F185C358233B9BB4902FC5089F851BAC83CE3F07BD7B185EF08626D7029129703334084375BC5BA27BA023CA6722319A916BAAD529715661E3A413C8137CBBB206E313906DF1CA77CBA73E5499F54FC53047741AF2341D5623278F76131AB47AF10BB4DEA8F493B6C0E4829ECF4C425A46D21755E93E5A80D0A927739848695BE93444A98A45D02D1131E493DA5A0A1117B41D4AB3DB35A7A2E95C6055BA70EF159E7AA0DD5452598F91477087BEF1396ACD48E747B962205AF92EB99FAA809B4BC47EB93BFD3860102D4ADCBFC39BE80024550656C42785A6788C7A851B107823A02A3DAA4CAF25097F1F9AFB29416DBB360C4A824E3CA2A30E19F94B805DE181D0A028E685C378DCC225112899A6B79869109CA4B094909B21042C179C6CDEB22564CFB6F89135022FCA3028CAF7ABAB19A4045DD5A60721C6BB47AC53E40CD932511F2E5473D3B4CEEB44BE1A00E090A886D345B13A58620C49CA0893F23058412054AE5069C1014361CFB0379C2215F330ABC647114A3C597765FD014C64C8C1B1B45B3BD02BE9D5A55B0CACFCE297581FB48FE0256F4C0CFC84AAE1C542F36730E5F10795C72157C653210686801210418B549A7398CA8B7C70ED007CB153D2A55178AE23A5B095EE2D116B9F3A1A9F19FAEC40D75256CDF76AB8E393210D3AFAE375A7BC384799A6EFC5B76F287499C6701368B8DDC219A9F2295E6E01D22C4A50BD08179A08044B702FFD786FAA088F867B63B951A92751CB0F839CD554A83745444C3BB88D3609A9A4BC2E0BC73108A71CC7534217872539BD6E942CD36A09AA0374A3894D279A1F7C38A56E7C0298948C330B8C3A5B6AEC3BBDBB87384677ADA78017564A7FE40C2983A9ED3ACBCE5E29E3A78502952A9540A44975572A1512B1D4284D9BB528E538F43A15216F4B4F2A5208E06C43896A19C416C99C3B677564975948468792EDB6532F9B0567F407FC6D6C302766C6D1373BF78A18896188CF20CCEC39632269F6A193DE5EC5DCA85CAD6BC79023C691D5682643B6F314827E0B24539E2AA91123B3FE42308F041DFB6C876D079D60A3EF5735AB8A36ABAE34F4A12729BE4A00F753C7E4699572375E6C7B037948684206C08A27EC12B26F7349CDACC3559AC29D5CBC35C310870597E391AC4E4C02991096F37492083BC1C43304BC3D5925843622494C735942DAC8904CF195387ECCDCFCC8A999B6D1B744A542359E6B167F91022BE1660BBD218A6A6861AA17C57152552172F38B43D5281956CAA77DAF9B94CF60CBF08CD9D9B4C1EDB6C4A17BAE3B36800891910C280C3E7CBF4AA11F33A7C70E3B419C2B2B9A64709C31878F913FB934D77B4C36E329BA98B44F394631E0A289042061F527D67446D6AB55CE7B43EE1080FBAE67085A2A03B36CC9AD9B5B546156C3C5A79B092A67912A19575F6B5546397C15AE334B451C3D919422F28B70727C75FB631A2AB012BD5971B5B2B75F80E14BEC0494BAEAE3C7AE947BD69827E1FB86388052C3BF3F8B4CD25A568 +sk = B27CA8D40A1CF8AAC1A62553FF541EF56B4B4E352E38C0AE8C2CB2240C2D2525ADC52B1953A1C239E3ADD71B5F7693196875BABF8B31EDC528F3B320E6569997639F1C9B5279C38D5DDB3B691B0228AC4480D45077DB55BAC24285C5820C49BE25632C4AAAA23ED84E10A1256D9CCA9B584D423A9FD37276CBFC5953C9284A4097BF71706069AC413AB857C64EBD179EB75496170778AFD74180D877C9D69E1956450B1289948323F64227960A0B24B442E78C551C5B35E89B34B018B80BD094F7594365195F44C05BACBB2E0A976A86559BD6B23D220B5C900375C6B188FB353C3B064CED669BEE6751D5D22659EB89900A92B7BA84EAB58B7E95CB8495191CA0491EF75A3ABB9469A7939796C2F8C15CA22283235852B0A96DAEC403C5C057B5AC91D09CB16E01BB0D078170E0CE9596B913E953C5AA67BD8A2FF20C0261CA814F334244886DAA0694368293FD858E14E23D13E66AC89A58867574804786C4C48D2FC003336C002A7776217ACFE7084588455A0A85B8AA51C33E99B1CDB75541855577911DB00475DF42168E7A21EFE57402303DFE37AB5BF10200395550A1639DA2AA8E358748EC38946BBD3DFC27DEB08F4F017ABE33A2DF3B9B96CAC0E8C261E487CFFF31A1484CA5E04036797CB4FC87AE6CC72F9EC0835AE2B160B425ACFA8B75236D92870E4D43BFA7EA5C98827F95DB6DD4200068650E3D8812DE827C3F660CF8049933DAA52793AC10F57AD8F2A7445927CA6022D5A485F9424662A175B2A6349B248AAF4853BE709D42228C3CE3B13990794B9698869842B81649CBD9482C2435886441ED9A7927384371D02005A514717ABEC398BD183B321134A4DE85A1FC9B72F7268CCAFBAE289C15DCEC18BC26B81EC43C6B8A3919625165617D60C33F1E6B04CD5492414A15BBCA5CE84284557C9CB481A951FA5DF2E444E2C20969F38284E60FF15B0EE707115880BC6D3834230C7D22C7CD69229D1EEA957F58B2D47B11CA97C926070CF1C1934EF83F5A26241C7C73959C8A0501C2C1C70671987243635FEA56CE6EE292B1D6AA26C4CDDFAA1751520FC3218E7E20C13C6A1DF4835C7D6C0BA45923CEB2AB40FA7FE3732E47AB652309CDF28091D8D86308B73F90D86995220ACDD9C544C95FCD24A77E7C90F2F15E52AAB595E11B1AC0799A3CA95E0644771420AEDC777A9048FA89CE94780C8F2B903548BD46A2C22E453B68736F5CCA6C35EBB027C0C7035678F7F69A9CA02FBB4B23746759660251F6757BE3AA1767D7280AA75B60A7A0CC892F70F67CDA886CFCABB451A36023C688D7AB5E0A3B5BC88514CED3597A594D0E28C7AA25859E57BE9FB12691C047A8A7373FE1695AE742027A8F5630CB2776721815742C66A4BA0C7E7E8B8281144B80288CC7296BFC8625A2CB995B548D48294B2FBCA97D375B91203392CC27FE835F62DB97B14739F6C8B1880A53DDD388E2636F866416817A110258A098D9AF4458A64C68654E97099746B9B9E23ADAB5653970C00719B54E4A2D2092CD7BD62AD9317357E35224184A4E24B4A58014F666B33E1530365070B73AA6DA432D04F2588F34AC1CB3B3F7FB4AB200B459966FAFC689CC40ADAD0C26108859A2943E2DF84A0272C13DA5A495942BA848AC92D302A98A3E55937B8B1B49FE588BE32A540EC90B5CEBBD90D1B80DD24D32EB85FC041A7CA307E522B8C5FA9C85BC258C8ABB9F2678D29569F313A1E660A2454730261A6766945CE42C140E5181C68461EAF12D1F185C358233B9BB4902FC5089F851BAC83CE3F07BD7B185EF08626D7029129703334084375BC5BA27BA023CA6722319A916BAAD529715661E3A413C8137CBBB206E313906DF1CA77CBA73E5499F54FC53047741AF2341D5623278F76131AB47AF10BB4DEA8F493B6C0E4829ECF4C425A46D21755E93E5A80D0A927739848695BE93444A98A45D02D1131E493DA5A0A1117B41D4AB3DB35A7A2E95C6055BA70EF159E7AA0DD5452598F91477087BEF1396ACD48E747B962205AF92EB99FAA809B4BC47EB93BFD3860102D4ADCBFC39BE80024550656C42785A6788C7A851B107823A02A3DAA4CAF25097F1F9AFB29416DBB360C4A824E3CA2A30E19F94B805DE181D0A028E685C378DCC225112899A6B79869109CA4B094909B21042C179C6CDEB22564CFB6F89135022FCA3028CAF7ABAB19A4045DD5A60721C6BB47AC53E40CD932511F2E5473D3B4CEEB44BE1A00E090A886D345B13A58620C49CA0893F23058412054AE5069C1014361CFB0379C2215F330ABC647114A3C597765FD014C64C8C1B1B45B3BD02BE9D5A55B0CACFCE297581FB48FE0256F4C0CFC84AAE1C542F36730E5F10795C72157C653210686801210418B549A7398CA8B7C70ED007CB153D2A55178AE23A5B095EE2D116B9F3A1A9F19FAEC40D75256CDF76AB8E393210D3AFAE375A7BC384799A6EFC5B76F287499C6701368B8DDC219A9F2295E6E01D22C4A50BD08179A08044B702FFD786FAA088F867B63B951A92751CB0F839CD554A83745444C3BB88D3609A9A4BC2E0BC73108A71CC7534217872539BD6E942CD36A09AA0374A3894D279A1F7C38A56E7C0298948C330B8C3A5B6AEC3BBDBB87384677ADA78017564A7FE40C2983A9ED3ACBCE5E29E3A78502952A9540A44975572A1512B1D4284D9BB528E538F43A15216F4B4F2A5208E06C43896A19C416C99C3B677564975948468792EDB6532F9B0567F407FC6D6C302766C6D1373BF78A18896188CF20CCEC39632269F6A193DE5EC5DCA85CAD6BC79023C691D5682643B6F314827E0B24539E2AA91123B3FE42308F041DFB6C876D079D60A3EF5735AB8A36ABAE34F4A12729BE4A00F753C7E4699572375E6C7B037948684206C08A27EC12B26F7349CDACC3559AC29D5CBC35C310870597E391AC4E4C02991096F37492083BC1C43304BC3D5925843622494C735942DAC8904CF195387ECCDCFCC8A999B6D1B744A542359E6B167F91022BE1660BBD218A6A6861AA17C57152552172F38B43D5281956CAA77DAF9B94CF60CBF08CD9D9B4C1EDB6C4A17BAE3B36800891910C280C3E7CBF4AA11F33A7C70E3B419C2B2B9A64709C31878F913FB934D77B4C36E329BA98B44F394631E0A289042061F527D67446D6AB55CE7B43EE1080FBAE67085A2A03B36CC9AD9B5B546156C3C5A79B092A67912A19575F6B5546397C15AE334B451C3D919422F28B70727C75FB631A2AB012BD5971B5B2B75F80E14BEC0494BAEAE3C7AE947BD69827E1FB86388052C3BF3F8B4CD25A5687EF43A72EF04766F1E899D25C9A005009C788B5FAF985123CFB3FB97975DE26D56DDB63A495D1AFA553A815CF751D711478A39E8D1AACA992796B619C84565CD +encap_coins = AC46852132E10665C4983E3829BD9DE2ADF693CCCF572B4EBC5C0A633230B627 +ct = 4771AE1674A00E2A0D604393524EA1187B7992E9F409ADF851C3A624D6C9808D0B26475E89C6DC73C87F32D283A92BC5759A3020F1DC64A8F1E4348805E98066585889013F53D5681D7FC1BB41D418B1AD729513DA83829FA1C86A7E4BDDADD85DA52C55E3DD995FA548A4607CCE5BFAD282AABDE914BCD8DFBE1DF22589B6BB99B370998A029CD04BF53BFBE1FE1DD43DB6B5DA9A2413A7456D560324F8DFA08E0FAD257368520026364A1C243909A4112DD26DD34BD5DAD4EEFCAB52A44A01D30A24C65404900B9B4E8A27FD63F7D792499E4BAC8C170346E5BB2318CF4F3502701CE27DFF44CBA9761650A348D219B3E28A690ACA9F56546E424830E5C74C000B5C4536ACCD48DC4EF011790FDFD61AEF23B7113AC4D7F7046EA85CE3FDB3C193BE379F9B05F1D94ADB6DA3B8DC4DFB91EC54D1C725E45D046BB0AE28A0402144391C783C2E69FFB5BB9A009B44541F1F8D9B685726E8A2A07DD93B962EF5A6D2C14A0DF5E8186CAA26ADC58BF2F826B99E3EA196AD0EAF002230FAD3CE927761C24D90E100B2500C1FE2FBAF7B95FDB39B3D75EB7D3971FD0A1C105E763CA39796EBE15EB816FFD37BC98D245E84499EDBDE6B3824F116889B9315CE6FFCF8C66E67925FE292DA8AD6901B0CD48CACF9DAF06BCE31818C136F30E7B2B4F59CA7B0095D65D98056DA60D2C0AA1D3DDD35B1A8259566AC80E00644F2227786C5A2FA5E6EDA83695F3C7F486BC7502D9B7469C0B5F63740555D719DB644CC9D938E938FA96D68E9BB3862BB05062139E036010903335EE8D37E3C66A26DB29520A4A491C4EDCBF0A83D48B710EDFFDED91B88A05B3F41282539E17EEA76D8E9862A87A2040C9BA672D67BE8EA54C88FB57F625E99B9D7325CBFF9A97690D3C6ACB5A165A62064A2011F3DE477F18C434B95F85A2C8466EBF5691C0CDAA99BECA0996D514EA14EB9E8FD545141C0EDBE871DFDEFA959559AE154B3FC7C139F301BDEC5E089168F097000DC5601EC9F98FB0634F1C3ED62E5BFFBD7CD379F20174C592C5D63DB74D4742510902D86B56834954A5623395342F4A497FB8F1F28A0ED47AEB8AAB5FAABCDDC76DD3CE2D7809E6171712DA289ACC4D1FA3A130E694758C05E15D46068B0CED84E50ABFBF61BBFD97F343E0890AC06CE3E03AE5336B801DFB4C7DA8FEAD9CA61784AFF266731FFA6F239515E2A494421546805C1F212F106E1816C4656EE4B956BE300E74884CE698ADCC5AEC3923726C2EA4D7EB058EC61565DA1A54AD740D4CF364534204E486D401B92682E1BA65B28823CE4D2C8347C250778CAD8DAAFE4B92A93A5A4F0DD03AFA4EE679AAF5C233442D426B45D18ABAAFBDB2FB9D96B03779E96B2D27559D039E0E1C0C577CB5FA444D153B791CF2426BDAF0801B032F440925531F05302264F54D6FF1511EE2DBE072234AA85C2AD41ABE4D57600D490C7E9AC2D4FFE8A69BB775D89C9CA3C4103DD822D28454E01514D732133E80061C79991E4DDE261A9C741D65B07B0F2957C0ED01D79CA +ss = 3C0E71B90B0CA310CF77EFF994FC2ACEDE65D12431D08B9EE758E1FE896B3B2A + +count = 94 +keypair_coins = 6FB2EC719F2A0DEA152BF3F64B9D148F8AB8BA88F64E61F5DB53E12D59F52557D3698490455837FE52948613EE5FC2284F00B130C72334B1D8E68C7B09B2DE2E +pk = FED53D194419C06B92E51498AC2601869A1024EB0370CA3A420C48A765A5B99BAB88A759251CB83259A628603C54A831AC0147F3A97B8329474258B7BD6067476605A2B2B8311252FE54565C865E2DD96EA9E43B23121C27AB02C348310ACC38D9D583B0D8105DC87896C238069C689027910F9BCB5D29AEEBF57C2B9C78F76866768C0699C6BF743C0B43108C128A5277F39B32C351926369FB8754CD0197EB9AB602F391C4BA564BE2C3423005266229A10B21D31A7CC3D40C2E7192CB6628AFA692D3E75AACE66E7BB1169893C8EE45BDA5560E7F79C711D32D52C0C783EB40BF8977C3063CB114B6368A8D1486A86CB108D146A648E080751440F4D8087116701987C328D8547D0573F8C03D321AC07138A60954297CD832DFB989FD99ABA8B213E7501CB3D25B384C023F66776EFA3AD4981037A54400729634A782ADFC24404BBB4F2405A27A8500CD79E8521DAEE48848E485F53A28DE91089D849EBFB54D97D0CFB3CBA46A27438F426EEA1A0122F2180630864AE46CC5F3A828725CAE89331D540B5B3633EEBC0228000D75908F21277104D7816F56854C3289AD1A5C72C1655830089CFB9C90B1306724CB2828BE679B989A3565758B058AE983C1EA9B71F10553795537D454EED50F50A40274592AE165C846D85527E479E3FA8D8865047BF68D200287C0A5B8A6A78C4769BB3A795979B774713A522DBB723F3628F2F4126B639E3B4C5C4B076D321A208A123D82852AA0DB6FF8457E745B6B710B396C8106E635A379E22C59F17DF7B7070EAAB38D5448E4AB67E6B21078D5B9F9979C6D7365CD1423CEF6B4C2B186AC6B792EF9351B6040F423CA22E7A1455A0473273E3B53B92A132D7C44556477907FB41F981A06CAC9BEEB9655FE90C4FE93CC33337D78294F7C128FFEE82B0D4211E550342C599C9932A201F3CB8BB253A0559FD667A3D2CB46A4936F5CF9C4D0D105880A446066AE06841E12F259E4E6220D932633F77F9A6B463E180778D53C37E0BF423717F4D476ECAB6BFBDA7E461AC3CC9806FF4B38FB80C0AC9B0DCEF56E9B27881D1AA0892657B12A913A8AB84037A6C78399F53816D79C6A1FB40F1CE200334A7E74760999F8A0294C3029BB23EE0CB81700B95BA20140CC5DE537ACA62C9808240E74D508A93263EB14B7D202A31DDC2147747192BA1F38932538241AD1DB35CAA40097393038957B64E716D4CB3675AA9EA46257BF55A6D1FBC2C356B020073E16EBCBDDB3692515BE92DBA54CB62C702165C74864C3A7CE67D8AF92EB78496C4E8EB78B55DB7963B016A252A85E655C95936D6006BC07BA6250E458A387BD7BB43A3F5A16CD8733B66565377C1A74D5488C1A0DBFD7A6DFB474EAF29FA80AADC83267D0B98EB7A8AD3AEABA977A0A5E55B8937AB68E385F94DB13FBC6C26BC23B0B8BA331A578B99B493D875F206C278A3B4F63E156FD386FC13104D6DC96AE9BB3055481B846183DE71ECA09273E58C466EA225B1824246C799AB8B045FB844572882299BD6F1B2787E1094BCA102FB20E0A274257062385DAC60F37A15B0496ED23C465A3BA46BCC0BA9B5B78C93B45CAC0151687859B155AD62A8539CC6B872AEED63847CA64797460FF5F477504DF1B1894FEE3E6BBF8218590936E0102DCE8ADF459D590355576E1 +sk = 2735BC066A2488726C89432E56452ACB24A2A5407522988C0732CE072128C8D5147C42988F94A8516C77873858394A2BEF65B87741C5B9691B6DB84E3B1B2B2F851B1305832E4210E5D05710A5BB7195B8BEE0CBA9B5BA21BA57B962A280565AABE1C9015635CF1A7121A8581FA0A78AB26FC82838B6A405C6FA5D46469136CCCC34930664240915BA5C86E67ED9E73F4B123233C92D73BC05408005DCD6CFD62635C3026C990753C55CA8DD385A29B1C79FDB97C0B4CC8F26B28BA573B5194D6BCC065F5B97DF702009C43A65ECCF452447AF91200EF68F18CAC25E5C71E62A39FD7A26C6B64B47E29D1E4084801599ABA838A3808ED83454B506965507CC6D0B34BB139300D1014168A79D5707C74BBC7B980461249FC31734DC384C9DAC4EA6EB4701402084719593B62AAE53C8D55719945975CFD25BFF31C886640FEC37CAB3942676C840A453C6751CAF16A4743495BCDE6528A942A47E7C2D6499B2A872A76E928EF4B0AABBB21604F33231235A7CB47C96D9C976A2AAD533A06A24024AD0925007984D99ABA3AA8168A8AC92F662348686F756BDC1A23F8537545D13AE9F657CAA801788C9368864A05F40AF22E33E10705741F06EF577CADE6CCBF1D01065565A5B13284690BF611093E45684D6C69FC0F548AF852248DB6A6E86A2A907C95CE0053FD942A92B024DD18803474B03F73FC022912257454C008D137C5E8404379DB2719581AF17108A03F58DEA58892912C5FAB701D28CA845068761F6BAB69BBB75584F7D289DD921AB30379248C91106A784738B17CF0044418BB9CE34BCD913BB26D04CA04896109A255A39BEBA1A2B58490862409E473CA623933AC14C90F64CC74AF396C3186917061B5C8C28F3E8B694535FC2C73AF9843031C19166D2C8A3A76A2ABA45ECA36321BA367BD5B176B5C7B8D7B7192C95CF2803E2C3CA5D585C4EA63009C7B850F08759C278F1027C59499526A8B2E494203197A9304022FA0C4E47A3A6FBD8BC59A7C1312A6D19D3063E8078B1A1BFF964AF48151E4CD3CD87F49BBBE01AFA3A5BF46A7F9BC97DE729285AF35A6A9168683658EE37BA6D9499CBAA8CB44C93BEB287EF7CC7B1EB6491154C14FC2027AB49316B70B8237A546090C9687CC70CBFB82208A7F61F63AAC1A42961568407343A050B1048967C5334F3542860249FF9C2FAC8639EF8C125D0B9FD537FCA93C1006A77499658C0286267B910C10B12A6136152BCBC03E782C41B1FE94A000CD974A3A9ADE3A3B8B4BB8ED8B403683AB4EA3B84B84C4825F61F99D72EACD894337523C6B6AF765BCC99393213938D66B18B2B168D6C73C2EACC42AD22255CD3AC6D75200111C0A6076F02F906B1C96213E80310B8752B1B619E72366F9A0BA4283520333EBF8693F93A7FD6C3560058A8D16CB50B585B3D519E4263B050259A9A0A8823E3CADCD0B81C1CA53820323A9539133C68B0A6CAC1FC834B808D9375431F961FE3233C49FC9E88EA1ED0A068A271B502C0A0376A1309F86013B4947BB671C1B048C0905C8CE16D8035C7C05B9CB8755C7D7B6DB2907DACC5A91B61B666837F209075E8AC5B86444B49AC878F9B2E18D42E0F791AB7CB7C973CA8E0437F158889FED53D194419C06B92E51498AC2601869A1024EB0370CA3A420C48A765A5B99BAB88A759251CB83259A628603C54A831AC0147F3A97B8329474258B7BD6067476605A2B2B8311252FE54565C865E2DD96EA9E43B23121C27AB02C348310ACC38D9D583B0D8105DC87896C238069C689027910F9BCB5D29AEEBF57C2B9C78F76866768C0699C6BF743C0B43108C128A5277F39B32C351926369FB8754CD0197EB9AB602F391C4BA564BE2C3423005266229A10B21D31A7CC3D40C2E7192CB6628AFA692D3E75AACE66E7BB1169893C8EE45BDA5560E7F79C711D32D52C0C783EB40BF8977C3063CB114B6368A8D1486A86CB108D146A648E080751440F4D8087116701987C328D8547D0573F8C03D321AC07138A60954297CD832DFB989FD99ABA8B213E7501CB3D25B384C023F66776EFA3AD4981037A54400729634A782ADFC24404BBB4F2405A27A8500CD79E8521DAEE48848E485F53A28DE91089D849EBFB54D97D0CFB3CBA46A27438F426EEA1A0122F2180630864AE46CC5F3A828725CAE89331D540B5B3633EEBC0228000D75908F21277104D7816F56854C3289AD1A5C72C1655830089CFB9C90B1306724CB2828BE679B989A3565758B058AE983C1EA9B71F10553795537D454EED50F50A40274592AE165C846D85527E479E3FA8D8865047BF68D200287C0A5B8A6A78C4769BB3A795979B774713A522DBB723F3628F2F4126B639E3B4C5C4B076D321A208A123D82852AA0DB6FF8457E745B6B710B396C8106E635A379E22C59F17DF7B7070EAAB38D5448E4AB67E6B21078D5B9F9979C6D7365CD1423CEF6B4C2B186AC6B792EF9351B6040F423CA22E7A1455A0473273E3B53B92A132D7C44556477907FB41F981A06CAC9BEEB9655FE90C4FE93CC33337D78294F7C128FFEE82B0D4211E550342C599C9932A201F3CB8BB253A0559FD667A3D2CB46A4936F5CF9C4D0D105880A446066AE06841E12F259E4E6220D932633F77F9A6B463E180778D53C37E0BF423717F4D476ECAB6BFBDA7E461AC3CC9806FF4B38FB80C0AC9B0DCEF56E9B27881D1AA0892657B12A913A8AB84037A6C78399F53816D79C6A1FB40F1CE200334A7E74760999F8A0294C3029BB23EE0CB81700B95BA20140CC5DE537ACA62C9808240E74D508A93263EB14B7D202A31DDC2147747192BA1F38932538241AD1DB35CAA40097393038957B64E716D4CB3675AA9EA46257BF55A6D1FBC2C356B020073E16EBCBDDB3692515BE92DBA54CB62C702165C74864C3A7CE67D8AF92EB78496C4E8EB78B55DB7963B016A252A85E655C95936D6006BC07BA6250E458A387BD7BB43A3F5A16CD8733B66565377C1A74D5488C1A0DBFD7A6DFB474EAF29FA80AADC83267D0B98EB7A8AD3AEABA977A0A5E55B8937AB68E385F94DB13FBC6C26BC23B0B8BA331A578B99B493D875F206C278A3B4F63E156FD386FC13104D6DC96AE9BB3055481B846183DE71ECA09273E58C466EA225B1824246C799AB8B045FB844572882299BD6F1B2787E1094BCA102FB20E0A274257062385DAC60F37A15B0496ED23C465A3BA46BCC0BA9B5B78C93B45CAC0151687859B155AD62A8539CC6B872AEED63847CA64797460FF5F477504DF1B1894FEE3E6BBF8218590936E0102DCE8ADF459D590355576E12C0DB43F39B672B2CD912F907CF76A0F6FDA925EB2D205546431BE0B37B20411D3698490455837FE52948613EE5FC2284F00B130C72334B1D8E68C7B09B2DE2E +encap_coins = 1D0144EA8AA44C56C084F3D692D40EE9ACCA9835F74E2DB60116DB3669C8EF73 +ct = 36722258822BC10C21C6B956A9CE0E20587A37959426F955E29400F0951376AE5178939500A844B7EEC60942378A04C882A22EC4DAD2DB8E99BFD80AE328AAE84651D830998CDA34A040C0C437A8731223257C66E2CEAA725E3B960DD415B8D9836D46ECEC0FE9AF5E11FDB3429360BEE9FC982E30643066C187074D40E15C66709B708A75F0FE12162B13963FE157D31DAC282BE5FCE76CF98F190EFFA353BB13CDBAC4D9E3C2763F5113A59B9E8BA6FF28B8D56789FB7C1F3765229D189ACAB4A151CA0761198E6E066A61B103E36C816C340A4F52457CDD0CF9262B12F472D3056F8203ED909C8B41A4CB15AECCA7DBF3B647B5FD0BFE2088D59D1D4DEDD389B1E1C27381BF5B3BFCE87EA5D2A1A6AA833B106F290F41DE6D9D584211DBAC48B14271CAE15F9670E6E17F7AF7D31B2DE8563A4A447FA30709BC5A08F35CEB59344DEA5B8E5C2CBFFDD67A44CF62835EE9E7BC9589D1665A13E81CE0C3F68297566E761D6882087890F40F07EFD39A2CE80B3842EF0A5026A69151CDE5A24C5FA92E201464C9E489185778DE40CC47CC4501013CB2BC59346CF9A9A06F900D01EA97A44B12A2C36BF5BE44056A0D105BE4A12BEDF7398C620ED141D675FEBB33562F7370C347FE1A4E928BC938E20E12C34DC847EDB4B26CCBB25AC9501B60629064DCD442C980E3B97D61A068B3537BD03BE5415D2B1888E6709C1AD089481E19AC241AB5D634253E6A55E53B37E27892E613A0FCA4B99CA57E35F05E8A0E60022CD6F49D17F72AB789DD0AED87BC6A24E7EF0FC175D44E422FB635EE9167B9477C08380C44F378024C12EBE474D8E0DA4FF43411C4A2BFFD06F4FB7DC9ED76F4850457A6D40AB6C719F5B807D770479E21688C4EC219A21FD92254674D5157E27DB71AE04CF6AD241744C04E45FC3A6D89DE74B235A58DB52D6C6306DE576D20A0EC53A78D18E86541C19D93DBC50B202589A85BA31348AC92400492B2C576A1D4EC5768CC9C3ED1A11BE692CFADEC54A99A22B4C49DE79C9C71B074BFCDD94A5DDE7D98AE6C1F68F845946D66781F0EDAEEB4800F5DB88CB599FF2549F36E1465B54B17DED1E8AD960219E4D321DA900E0A53E2DA1A9E5C6BE850D44DDA1E6E0C27290352E801CB219A7AE172C25CA06F51A09FB5B4E2125ABD2B81C830743B6DB4E9994809F67E8EA0975415AF90FF18F6A291D8FFCE133328E7C7385A527683A9CA7FF091C5A24AD40D9E160C1A4D1FD5B84F8CC4716A21AD3DD6D6A25CCD7DB61806D79B9399031D29D3AA3E956F8413045F989F9A54C251ACB972977DADDA61A57E2E61684CE6150A051B4EF75C25FD998E4E9C2537171F37FDF65979B952710690D325ACD6C4A763994F8E73694553D7CA5078E012D596403ECA009E8B4B6F0494E85DC126E89126B6CD1AAC7DAA066DC40D83AB59D34FF8F6EAA1731FB05A473EA81AEEEEF4E5CBAAB2CA862A3132086F498B7FB78C063381F5B4F68090FE998AC8270D6ACE509CD85F6255EB8C1234601BE406D4BA35D8E85D0A +ss = 34385BADB991E44425BCB966AC8DB27AAF0C196288C0415B9774883F95D1432C + +count = 95 +keypair_coins = 527FB88C8BD9A4D6031DAD15E63878ABD2B559E7E08D61F69E8E78FCA964EE6A229EF54E776C02586F3F46D723E7932215FB7E09C397D1552CDFE3457241FC30 +pk = A0E473A9D639B1299251B46D07C79C0DF1CEB995A968B5B707B760D8BCB120F6226EF5B742F34548902A7C73338A8CBF8D6B02A83470874B1EC5845DCFD3A4067C420F8485FAE1286A23ADB7373B9217C6DC173748870BFD164A16D62A3A6608F5E2B7FE78B92364A4B821967DB45AE29AA1B11C0CD67CB4299B32D263AAD7A26EEB3A69BA56790FD806ABE3935D82487AEC3205A856B4981E7F53B8F82A30D13C1B725B1418607B6619B0E8A8870BBA6070E33545730182FB5F6F9938AB2CA68C50719FDB472A88384EF210B0C22785367DEDFC840979AB758479506064B7971426D70AF9A95E7D585DC8B67D4FFC2082BC45A4FA9B4FB9541493C3DFB88FCA757ECCB50F1A9CCED9C046F37062E3879E13958BCF063041E858810B057680276D2CA12A307F511217FD626561587617674319382A4A00CE5E3BCFC5ECB5B3816133910650A469AC663F7A4A742DDB87C4E5BE636213880C246370B1CBB8ADAAB6BB7E1185E1F95C945BB001A0210CF56F326B35051B8DBE85245F9BC6D973B39AFB3A3B961501862B4CAABD0D55693C201390F48FB7511990571985764BE7373A7FC4BBD5E82B31F52494B15B6C2C8B5B593182028BD7AC7A40FB446EA756463C396DE29D0FDBA2569B9001E169F7C824C8A42D313A15B682BD52004867837344324E2F91A06A4C9F7CA447D6291635257CB0934E015C1937F732C1BBA2C13591CCF4ADD16960B2303476000D984A8FC8036772C3B7C5721261387AE535129A7921A1711C98103161A95EBE16C0E0A28555DC3598CAC2D701A98CA249801A4BB10379A5C29A1932ACB6F6C3D040639FA98FA7297C6D453E35587488576DB9BB2F9D1C37F8260CBA3BA90E4B779867AD97DB03FF005ECFE3470D2C25D54105CA287A9E0C039C2A2B71A1CBC6260D59A268D60C05D61202EC336CB8285B41A043BF58949DF50DEF5937BEE1AF32D174E8FB463D03449BA747E92A79A1EAC8DED247AA0A50821A16AD4C9F533A0FA24684D452A71DF461AEE15CDDC2185551112682B4867C6CC27C43BF835432CCA184840B85886A5D970E9F515F7F97151410C401E9BAADF41CE2B8642313C295D28587A327C41C24DA18967A6426663642DCF389C50892D6847718365CBBBB80723C1397B90447B197842C96A141BF6CD317BF12BB64C664FD237E886A9F793313AAB15F668C91C71149C4B90B35B147F7C34B8AB6948799897855B22283050B113D64A60AAC739948844A9F99C448D21C414425D77560670C298F493D891128AB1665D8141D2B1C8E67950A68255B7F9376332B1CD7C6630AC05AE7C127FA7ACC35E640E94285E78661B15B21685A36C889A8CC890CE53C36EF23C2F17CBD8C31351BEBA827949F8707A05324ABF05AA71857BCBE690405AB0030E648FCD3BFC0F2AE2C627E04F490BC3BA237059AB93085DE218029F056B0F57ABD342170F5B16DB069073A3C16BB1C0BDA5136952919B22AC477AC2489237BB0869656614E4AC248B003799C761B2BA5F2711B24A01419C88937DC4CE745ACC16C796E0123A4228EC623A2A4E059B80B72BEB1329C9204B6555B0A62C14DF0B19B4A157BCA985090B428DBA8587B53CA2714B2EC2A04D306B3CD5D09045252960A068412F1BD67B83A217049D0685EC3D63D691559A327B2 +sk = A680635121C694AC4672C809BB3B913E8CA2F659C756DB1D7BB2369F41AB4AC9B3F5141216F3C997B00DCDE37352D46463F371FEC14B26AAB239498D44975F787504815552E727329DD78428F5568B912C76B572AD9B3D335A9F5BC0283C76AEF8D81369A0CEB4523BDC4BB0607C29D9998962F76B217774D74A3453A61FF1F40F89A51365212F39A07E913824BF36B6DBF6C8934014DD8716E998A982B124AED8B082C3A2998708BC1C4733773B73E0BE315203E8E264A032797280CA0AB023A9D81FBF0565F491837CF031E219084B640EE8710589E05E1701870BDB7BF0B0BB539A0B3AB0028447110288C1D7D83F89578413A46B0B04406657B4E7E5A6D04BBB91055BECC8AB907CA9647C4B8B144045B6CABCB974A47A35308A23E9C9281C61C556EC148C9A663AD9518CEA36AAEC71B6995110FC01CB66B75E128478280FCD31A3416A12E28C15BA617574730437DA8BDFB86B58D88C789C4F9E23ADCEE53B170C6A0B80033AD52CFE1A155EA1A568F5B2EF77AB74878E0CE42A1F7C3C845713D17105AB2C91B83836E11B9858A66997B22E8A67682588CA78E6B6D736298EE34B100BCE61E0AD921A9F020A7032351DAED655D35B3659A96B32DB9E68D882FC986DA904408A98C469A84CD29CC999B2B071F84C921C585B9B3233C5BEDF82637BB1253A4B29B36B42B54751DC629A215656AA1890C0C56E0CB62A3C02252B771D72375A60374BF8D84552080E0D456579930B3F2A2A3B7913C031112FABACAEF75BB2DA5202D7671359282CB4707B52740D9CA06AB7034B48A292404D26B6CFD08C8B0DA61550044069F4CF27488C028001F2C29292840B60B321DE5CBDEF1CA216838091C3172ED26D141C957DD93BB6A59D9E883640D87A2A85605A9730DD5333843805374B58747C7262D5A65EF442D6843DEB731C943269B4A9BF00F39B4A3847840C1BF4B9907FD7B9A66C5DA724CEC467102F080D4D0BC519D0B2504A05F7207EDCE7398D009348F64267E01B0EC207780791942565AEB061BF03719D706F87953C4757A75A126EAD15C6C9447C02938C3B75A58AB25CE65A5CAA21898FA8050319880223899F5546E0D253DF7950691B86F8E3115438C3B80CC2E7A6178A96A0F38A0CC47394BE36C9B0721580D646A89B9327210D40728F4BC4ADBD8B130EECCCF528A5A09595F32C0F64E602F6898B8A4C82D79A8ED31C4172A7812C295C93841929B782B334490EEAA38C17CB4E77664306BC7B01726EC656E24311C51B0524C72F0745665D43073604C59EC88DF6FC9EE2F2A0476079BCFB735E562F57E2B0E1987A0220C98F0B4CDEBC70F93CA709C5C2FAC7098A7B866662ACCDF09C85974D7C88CE9AFB01F48276EE320D70C7C0E15950FC0775E13173B60555A470302D0A0047260E5CF85EA2F3C326968D3C308C15EB400B13BCAAA65EBF941EF59A069BA0BD3D00841B6124574303BA8C2BC9F90F107865882C18EBA462F6B09EAEE05796E43A8647C59C64B7A8DB9C0941299280AF728B872C303755B682A3EC10C5876F040543BBA028E870C02A4312AEE9CF2BD1302DF80BD0FACBD0765A778A7FA2D3A4C9675965D6799FC7BD4E28A4E2A53948790234F62BA0E473A9D639B1299251B46D07C79C0DF1CEB995A968B5B707B760D8BCB120F6226EF5B742F34548902A7C73338A8CBF8D6B02A83470874B1EC5845DCFD3A4067C420F8485FAE1286A23ADB7373B9217C6DC173748870BFD164A16D62A3A6608F5E2B7FE78B92364A4B821967DB45AE29AA1B11C0CD67CB4299B32D263AAD7A26EEB3A69BA56790FD806ABE3935D82487AEC3205A856B4981E7F53B8F82A30D13C1B725B1418607B6619B0E8A8870BBA6070E33545730182FB5F6F9938AB2CA68C50719FDB472A88384EF210B0C22785367DEDFC840979AB758479506064B7971426D70AF9A95E7D585DC8B67D4FFC2082BC45A4FA9B4FB9541493C3DFB88FCA757ECCB50F1A9CCED9C046F37062E3879E13958BCF063041E858810B057680276D2CA12A307F511217FD626561587617674319382A4A00CE5E3BCFC5ECB5B3816133910650A469AC663F7A4A742DDB87C4E5BE636213880C246370B1CBB8ADAAB6BB7E1185E1F95C945BB001A0210CF56F326B35051B8DBE85245F9BC6D973B39AFB3A3B961501862B4CAABD0D55693C201390F48FB7511990571985764BE7373A7FC4BBD5E82B31F52494B15B6C2C8B5B593182028BD7AC7A40FB446EA756463C396DE29D0FDBA2569B9001E169F7C824C8A42D313A15B682BD52004867837344324E2F91A06A4C9F7CA447D6291635257CB0934E015C1937F732C1BBA2C13591CCF4ADD16960B2303476000D984A8FC8036772C3B7C5721261387AE535129A7921A1711C98103161A95EBE16C0E0A28555DC3598CAC2D701A98CA249801A4BB10379A5C29A1932ACB6F6C3D040639FA98FA7297C6D453E35587488576DB9BB2F9D1C37F8260CBA3BA90E4B779867AD97DB03FF005ECFE3470D2C25D54105CA287A9E0C039C2A2B71A1CBC6260D59A268D60C05D61202EC336CB8285B41A043BF58949DF50DEF5937BEE1AF32D174E8FB463D03449BA747E92A79A1EAC8DED247AA0A50821A16AD4C9F533A0FA24684D452A71DF461AEE15CDDC2185551112682B4867C6CC27C43BF835432CCA184840B85886A5D970E9F515F7F97151410C401E9BAADF41CE2B8642313C295D28587A327C41C24DA18967A6426663642DCF389C50892D6847718365CBBBB80723C1397B90447B197842C96A141BF6CD317BF12BB64C664FD237E886A9F793313AAB15F668C91C71149C4B90B35B147F7C34B8AB6948799897855B22283050B113D64A60AAC739948844A9F99C448D21C414425D77560670C298F493D891128AB1665D8141D2B1C8E67950A68255B7F9376332B1CD7C6630AC05AE7C127FA7ACC35E640E94285E78661B15B21685A36C889A8CC890CE53C36EF23C2F17CBD8C31351BEBA827949F8707A05324ABF05AA71857BCBE690405AB0030E648FCD3BFC0F2AE2C627E04F490BC3BA237059AB93085DE218029F056B0F57ABD342170F5B16DB069073A3C16BB1C0BDA5136952919B22AC477AC2489237BB0869656614E4AC248B003799C761B2BA5F2711B24A01419C88937DC4CE745ACC16C796E0123A4228EC623A2A4E059B80B72BEB1329C9204B6555B0A62C14DF0B19B4A157BCA985090B428DBA8587B53CA2714B2EC2A04D306B3CD5D09045252960A068412F1BD67B83A217049D0685EC3D63D691559A327B2AAE8E61B905723FA092FB95B839F6DE3670C39CE0498C27B87D20C24E7F64E22229EF54E776C02586F3F46D723E7932215FB7E09C397D1552CDFE3457241FC30 +encap_coins = 1407C5B3005F98C64400FE2201F1A2B77B378FBC8141F175AB2D1C2A58846693 +ct = 6E7FA1360F88E9427272ABBDBBD9D21F43894DE5C55CAF16A61609BA4A4DD248EBB8015ABA77B449A1248A2FFAE702B3695DE0AAD27BDF57BA6867CD40EC3398F71E782ACD62E51F7BFF21C87744FB8A7F9945127FF2355C43ABFB1108D8E779EDE235CFA76668BF017E5C77F138F8E6A5DE680A74EC9048FAD377704D5FC06599D4721565A8073C59A872EAF6C3C2AF1B20BE181D0A350E2A50FCDB825D467B318108283ABE2D2088713122BB7245B2A3AEA13B3AEED0F8995A5F1879ADA12E48F02C7837A9BB7B650A815CEA180980D531EB68E68C05A571D6711149ED159BBCEBF72572EF48A7200B487214DBD81D83C9EB3C6686FFFCA4CA89B4D994879E990BCD75B74EA43CD6F49A04CBA7DC87EA217E1FD894B21E4C1E1E433C4C2AF0429B26ADE0FC6605A6CF88AD03CCEB70BCBFACBEE2394FB101B71AEC65489B83ADF18C932A925D5B0BB04A47AA94ACAA2CFA95FBF3AA3A1BE788BC3DF48749571B5A0E55507C59D11FC3A5A545C5F3612AEF4EA464B9179F59BFB9C503EC92DE80B3C3ECF7D921C3D775D9D875BDD6D858F0E419FB4CFF7DA20300064AB372827405BDCC3D87BF53A4ACEB9ECC189BAF4247B8A6B7A8DB669C9C7BC364D976CD0F062601E678D3A8F37B3DDCCC069B60861B9B4638CB17CC9E2C6761C4A582AD425A749A7EE2D5E0050E040A97E5174FFCFE9E5762801C1E5852989579BB0754A7C048E54C1B0AEF6B2A920BEE91E4B3E4DBE7B3087EBEC6B7FDD7DF5EDD27DED6ED3C7A02A0F744E242220BE67BAA45460D4F041976C4A7E0870F96A39E0598F5BFF25821C44D18666143F44039BE1CF8DE4D148109268E54EA5BF79F2B364F8B2F17E098FC7976D75AB1A5A443A5786D8B494CE3B4328C389A90F32974D08C9C2CA2790F7013D2126831DFA992F12560F5B9934D629FDB3C1A339AC255DB4A3E004F46E941A11FF32D8053260B963B335F703E8B00DA71D637CCA89E16A8A9AF4DC92AC18B1B0F62853A875C955F8ACDEE5E63D4EFDD1C2D26F9342D431A100E02C27C57485DE327CA97A27B53A6BC30EEDECD8F7BA7E7E700D2B0BBFA14AAAFBA97306BC3D15841D58BA4A6F244D0045DF58ECFFED690DAE96C6584E6EFA35AD010DFB21F348B965626B541D4043D3B073DF8C020B5E8B2FCCE6B18125C114F21AE1D5678E0CBF34ACB2C0C2B4E4DB7A3CC4F45E63344041EF4D7225CFBDC4D9CF3F8F6C5566090335580F83E2A80188DB667BB0F5F5812BBDFBB35C5D71F31FBC2AC335EAE54677163ABD787FF7F6617EF9CD3DD2BCBE92080BF1D76FC83EE209F364AD7ABA07A9224C81006194ADA80E51E34C9180E11478EAE8962551C9037C1A639DD8B3A4B400B41F2382CD7F4E5D65C50D864794A5A3F224125C7E9E7693FCADE8D8EA63BC182F8E1EB8F70FDA2BA6EAE74E32EDC9A3DEB421E52C05DB0E81A3F23CA3DB18D5C7F5DD1A0B73E7515AD7721AC37F54ABC634A66C874D7499A74E00F471CF76ADB9B023D93E9512C19B9974064B2F61AD9B13E133C60 +ss = 4726929011926EB0AE28133055EDB8E1D5FC8B879807F33C80D5C79D691C52E5 + +count = 96 +keypair_coins = AC6FCFAEEEF795B6EF9E062F02BF42975FA01E7D91BA832F74E05269A72684D066BBD48DEEA2A0A14BCAA97E18D848E609339DC39BCECCE7077F2D7432DA536E +pk = 4D960C98359F5719B20DCA6D1E2916F2829E73F79B55B468170B64F2F8B0C788796801C8EC244E1973C7E033B768414C55D43079B2711BDA630E678B184A70DD161C4DABBCB91C07FB634620D1450664A444E82D22A0A4F54AC6C7C02D74120B2CE205FE49A139B9C8194341F4295EF126B37F3B22E35792A8853B60EB3F7ED01314491C4451470870A5EA5B1D23442019BC1DEF547FB8935ECBEBA0833228B8D7BF2A4ACA52436A3F993F6164666EBB3C38317BF5B48CC7182C00D58D4A095D0FD4C60E4229E77803C4F38F22464C7A4259E45AC71E8CCDE6E5738DCC798777317F9847F8357DCE21B24AE462D0465F1D58203F3B8590D88DEB9C6DF4722A1420A9EA0813EC3777A6CB11CA0271292B6C662A870C292291164004299C82442A8DD5404E74CFBCB45175237AE5649F7136CB47B9C6C053203F265BAB420EEE2C95A5960F8A87C3333785E1B89FF841A6AA5AA964F3A853E512ACABB60E29C3A4810DF33830134C0E49BC5E1BA41B07B671E1BA6BFDA82576406E6DA854920A46914C8EA986B1D6A0328D4A450FC0CE698B9D16954AAA0C52B6F2B5FF7B5347E84C3AF403E9B31EC180238CD5AF96F5C6F0D3644AB51717F7255AD6551F44378294778937CC56B610680704BFB37E3CCC07C5276777E37F36623DEC8225388C3A5A2C7026EB902C63260CE27FFE657BCE34A47DB43667B9293E04AB9677B6FDB0B0A429A4435A9F5624628A2C07BBFA8AFED562BE4233019524E67CAE6F955226437433BC59835561C462071AC38058C145787C242D4B6DC055170675190882792EA49726DC8B2CB638763784D3C23E1791C93A55383A8C4B59643626F8948D228B670312893AB3CE5B123401B1B24432545889D4D124D2B846070C1663B87A3475C01ADC4F4DF286FC91C76B018C05B5A26A696DF86C4B1FBB2ED3050CC9B54CA2786839F854B9461655972FE21C3C98007A693A4D0B8AAFA3AB73F1C411DD283CCE59528477B6E089847CE6518F29B523602F80AC573618070BCA649EFB84FC3947D43B229E05682914C153809521EC9B7978A6BD667F59B18F1D986222DC9AB345AD2C7C7CC5799C15297C22C3734DF18A218C5BACB364C9136B8E055053567A1856C21B96A1A2723913C98CC364BBD1FC4EDEF37E1853C523727A6C677CA4C82AC4D49238E1B60C1531D1DC9835C4A96124A0011C09350353AAC4568A84293E8666F6016E56C38371489EDDBB3DF3E53E6767BD01E231EB122F13F59A83A35101844AB389954E8068F6D7128C738AC1774EDC6465EAE8CCBABCBB41271467C407D36928D9E3174C99665E3A9AF0FC1B2733925B254A3ABA050EC3925DABC511427C0B2930BCA63BA7629366C1BA620CC0D7090752157B5D70C098745E37DB7316056C7BB37C024226425107DA8BA0E9C30E2606752F31A017E50A0E10C05332677EC851EAE14F594A55D07392C23A962248CCEE1221FEB2C8F801860892B33EF2247B801E5FF55BA97675A71037FD133133840050B8B7914125E9D30165847319EB1E483005CA0BB8338B75EED618C47408D0260DDFB1527640A148F29E64F65FCAFC59A8715A8126830024767009BAD41A3385C0173BE51A35F3825843B59FE06B5FC03DC21F6D925B9F6D92FFF175C9DD625BFAF502B4E2870961858852 +sk = CF8293B02A9A6F579F51066BD6E51ABD270104634CFD482823102F2B63B18A8BB4F45A5AF4D8202523CC1779B44FD283860BD004307C399CA5D8EACADE156AF824A988F5AC6BB50EAFA6177A95B9752C922BD6A7C4265A6A88B11D0403E47127B1E80787742669E763929483393CAD6EF91F18143E9D2B7CD3E028C6F56B91768113259BCAB926A082A2A6185A1BF18656448A628258E21A3C6CCA23449B4F9483AE9D01BDD4BC674E06566300AD2A215809E547E2626F8D9437BAA727F3F05C31E85E4D34643148981BB6A82C3C75099A33A0E7528D45303D98223E1A4EF6536170F53A0C61004BEB75FA34B8AED5156E4A538269775808283CB0BA5282607D50661D2A626FAC2737C98CF33050353BB83E1C1136F1C26FE48D81973EB974AB1BA4B97C95C0DEE065523430CC06620DEBBA3DB92888497658BC5C64B98BE65AB2A0738F0750022B95A66C583354A63865B5237FE7098D279C53F731F3FCAE8689754194A7B888199B89761FD09FF75677B2C500D7359905E76357163834712659F26D0D8C9B47192404975CFB89969A77615D1A3FB404BAAA54511FF1B3B08C1577EB274F5B3B0B825434E87F60D18FA73141F912701A99A7C11305000789229A144A0899685596AA646F13573EBA0B54DD3205DE2C60C3CA1614066474B89F2377994BD14EE0A77E1D4C0AF77748C1E623CB8947A98636694C4EFAF0CE2BF779C66A317989A335A0071505831471C8D845A5FA4B3E42D195074244F70578124C4C7894AB84584DAEC8C13A6598524C023CA99F4C0499A68ACA3E6827798B10EF9A4639605E2FE8656606438274AC8ED8C87AE0A16BA3B8E5857A7F25831D8B85BC7105828575320C6BABA75489455154B31E50074A313BA9AD10B747F39405544F44949DDE165070C8271F1BA80E57BB5BD1320C8A1F8FB47354079532BBA51282AE3197026E18C46AE6B2AB9940EABA9F1EE421592770C9A9604263A4917C825C084C3534381F22C057592DD97940ADB1A439D5128CF795CDD25640FA9229220A1CE4A6624CC9956105465246334C77FFCB9907159461CB1416637D8DF34AB4B401413C27B6D5A1D23331F88273222653ADF9685A614BEC9840355B1A23A0C4CE60B0B678AFFED200BCB383BEC2580C89127B2870745C15570BA1CEC89F5DCCC47BE517BB020C57959E433C11DF10810D5B37AA8AB3392B3358793246F11ECE238646724BEB859C861463C42B5030D9A1FDBA3E1D391F9CA5A99DF58A7948C66FA2B50864B73A40B52DC7CFF031B3A3B21009268CD5CB00A89B44C156333B802AD03B2F07F70F7C11057CE78705AB6EE43681AFF0874030807412A7743399CAE832F6F3B65DF56AB1B30D6967379E10B4EF53B9EFB5632A23B942F832A7FA22CDE494B0C7393D51AC807A38AF119D526A5A3B91068E107812269EC85410AA739C288C20446B68880343F2E12157094DD424A349D1523E76C0ACB9C29C22B6346386B522B0466BC8A85B97430A1DF80850510C4825EC4F2AAB987C4A07F11693E7BBB4662A4890A3C54EBC0CBBD75CA468428E38276E81C43D81A8D0E3BDBEBAC9AEB89FC9D7870BB88C5C16A137C41FEE75640774C4B536BB1D7BBCE797844D960C98359F5719B20DCA6D1E2916F2829E73F79B55B468170B64F2F8B0C788796801C8EC244E1973C7E033B768414C55D43079B2711BDA630E678B184A70DD161C4DABBCB91C07FB634620D1450664A444E82D22A0A4F54AC6C7C02D74120B2CE205FE49A139B9C8194341F4295EF126B37F3B22E35792A8853B60EB3F7ED01314491C4451470870A5EA5B1D23442019BC1DEF547FB8935ECBEBA0833228B8D7BF2A4ACA52436A3F993F6164666EBB3C38317BF5B48CC7182C00D58D4A095D0FD4C60E4229E77803C4F38F22464C7A4259E45AC71E8CCDE6E5738DCC798777317F9847F8357DCE21B24AE462D0465F1D58203F3B8590D88DEB9C6DF4722A1420A9EA0813EC3777A6CB11CA0271292B6C662A870C292291164004299C82442A8DD5404E74CFBCB45175237AE5649F7136CB47B9C6C053203F265BAB420EEE2C95A5960F8A87C3333785E1B89FF841A6AA5AA964F3A853E512ACABB60E29C3A4810DF33830134C0E49BC5E1BA41B07B671E1BA6BFDA82576406E6DA854920A46914C8EA986B1D6A0328D4A450FC0CE698B9D16954AAA0C52B6F2B5FF7B5347E84C3AF403E9B31EC180238CD5AF96F5C6F0D3644AB51717F7255AD6551F44378294778937CC56B610680704BFB37E3CCC07C5276777E37F36623DEC8225388C3A5A2C7026EB902C63260CE27FFE657BCE34A47DB43667B9293E04AB9677B6FDB0B0A429A4435A9F5624628A2C07BBFA8AFED562BE4233019524E67CAE6F955226437433BC59835561C462071AC38058C145787C242D4B6DC055170675190882792EA49726DC8B2CB638763784D3C23E1791C93A55383A8C4B59643626F8948D228B670312893AB3CE5B123401B1B24432545889D4D124D2B846070C1663B87A3475C01ADC4F4DF286FC91C76B018C05B5A26A696DF86C4B1FBB2ED3050CC9B54CA2786839F854B9461655972FE21C3C98007A693A4D0B8AAFA3AB73F1C411DD283CCE59528477B6E089847CE6518F29B523602F80AC573618070BCA649EFB84FC3947D43B229E05682914C153809521EC9B7978A6BD667F59B18F1D986222DC9AB345AD2C7C7CC5799C15297C22C3734DF18A218C5BACB364C9136B8E055053567A1856C21B96A1A2723913C98CC364BBD1FC4EDEF37E1853C523727A6C677CA4C82AC4D49238E1B60C1531D1DC9835C4A96124A0011C09350353AAC4568A84293E8666F6016E56C38371489EDDBB3DF3E53E6767BD01E231EB122F13F59A83A35101844AB389954E8068F6D7128C738AC1774EDC6465EAE8CCBABCBB41271467C407D36928D9E3174C99665E3A9AF0FC1B2733925B254A3ABA050EC3925DABC511427C0B2930BCA63BA7629366C1BA620CC0D7090752157B5D70C098745E37DB7316056C7BB37C024226425107DA8BA0E9C30E2606752F31A017E50A0E10C05332677EC851EAE14F594A55D07392C23A962248CCEE1221FEB2C8F801860892B33EF2247B801E5FF55BA97675A71037FD133133840050B8B7914125E9D30165847319EB1E483005CA0BB8338B75EED618C47408D0260DDFB1527640A148F29E64F65FCAFC59A8715A8126830024767009BAD41A3385C0173BE51A35F3825843B59FE06B5FC03DC21F6D925B9F6D92FFF175C9DD625BFAF502B4E287096185885264E085F67E48F00A7A7F82963E8C67176BFF839A54FA1008328C0612F98D83D366BBD48DEEA2A0A14BCAA97E18D848E609339DC39BCECCE7077F2D7432DA536E +encap_coins = 19428B5875ABCE53A0C9BAAEA7707855E56D971083793B2960986D38E2880449 +ct = 285206087C2F1F2DA73FB53A8A9492E14C9DDCA39BE5DD8C0445CB65855F2865A80C67ADB7B2C71BCA1CF9D5C4682AB00882404CA646C3437CE8E1F09916229E44955A6F9E2651CE9534BDF1BCBEE6BE2A75C64DC263385319F1CA3ADB0A29D01DD0D947C3D55A716893F2B4BF5064E5E62CCE3763B966BF0495C67A9042AD7527308D603BD9E01447800168997AD0C6D855128C70AA4D8BF556FA650BAE29AFA2AA7A06C37AB8C4F0C0B2E226D7EADAA83096C62D2DFE51B99CDF0A0923AB8FCA6922347257BF7526D6E4588E1CF9A844BCDFE26E26BFC8E9E1373B5195A11341757CB36575A57D994E1B105736C4CE12E05F1298ABA38BA60EC6EF6A3F2E830C0B05D53EC2580A86032EFCCE78C73AE9C69647FA5EC969F3795208DFC3FBFC1C403F085483700CC3052491660C48BC22A02555FF2134B7E244E527C606AA720DDCDCD0D61FF409F8A1C87C68E241ED0CE7BB15FD3ED4506E9D5DF256D3DE1D1553B5AFD03A970F2CA4EB32477CA4DFE2CB16B72ABDB91AD0F3AF94FE6C7546398DD6A38115A040AE2F53DE31EB9E99F28890A74487E112644E4AE1D631DFB5526E3E506F4CEC0D0DCEC28BF564F1DAA7CF7DE4E2AC8625D54129571A83E8B3BBAC42B6F7EC44675106516ABEA99D562747CE095C4A123A550428C7B538C8B77C9E259704BDE0887A22D065D77EF264E20E6DBE9C48FBE956F20BF4ACD2207925CE9CBFC6D21FC392A1D7423AC4A4E14D34ADFA063798F61DADEDB2FA2E118765C05828B99FAA5386C8AFC6F21133B486346321A12B70552BCC8F416826F868E8ABE6D6741F950199ACD57C1B2D64F8CBC849424CACF28AD11B781087552C5D82C038B82BFCA8812C41BB59185A6128994C734D5EF18E72022895BCAAF8B019B565E3CD90A150677D5F35A5C1A0E505ED07EEB8A371B76DF239736CFACF6ABDA3ADD732CCB13FB540C61DADAA340E8E67ED78FB5A664C3198A7B303AF891678948C30B8BAEE0A9DE7AA9F7767875A2A8F0C59B51F8381022307127259427E8441F83664AA990D7179F78CF67DEBE307493439869612E85A38001B613ECA57E0B04BFD94710BFB80F73EF9088317713D1AF8A7F531C5EF3E5E56A647B007681555B2FCD6C9C0D88427D7F42077E5D12AD7C940127DEC837A68FAA0095133015E22E3377995DE41EA9F6E194954E5D57665EACC4A12D1ACD827C2AFF7757DA74A17CE472B019B6E220C7B97137FE4C7BDF997B3ADD4E0E2AC771D6B7D4CE4826493DC3B8B0197C384FA38AAA4B26C36D9E9A7E1E328E577F8E6AE4A297B2D111F4B1A85E33CC05EDAE592FBDF47AB23766FF91C3F90054A18BBDA4D15CDF4BFAA34A03D8052C6F4C08909638C79EB022B27CB32F2E3DB8F39265DB9FE120F52859AE0CCC2ABFA7DBA6A09317F02831C15850D331B51BF89D2D7656AD228D3FF95E63E9A0AD0A026835F681503F2D0B68297B662B2B247D6C7E4EA6F8E098B1D9DD41E93883A1FFA36D95902BA2EC6CD05F6DF85EE8B2C5C1C56EBF9CC0FB5BC11 +ss = 292E6DAE0A593D50F6FB50A8AD71DAFC9BC616E7BB9AD7985D31B49DE6EAFB5D + +count = 97 +keypair_coins = BA2FB9318D4DBE7488057C33E95E6F054583A2800C41BB83083C330A914A12CF3E3A1BCD39C74C1B899FFA21A6FE100804A551199D32DB4A75E6314BFB58F70E +pk = B49B9264FAAFE731C0DEE965AC981965A28FF907CEABAC477E2C9B6DC95AAEB0531CBCB65D8B3F6251BE17ECAA89A5B57C1198EA66AF1F4461B91C360E4531C4D49269896107F10ED1F1070E68CDDB2A4E06C387F3126087A71A366A250B450BE1567DC957BBD034B66AB65FD4EAB2D89B8481EC2427A4AF3C1B861C799263F492779053A0128508C86EBD6201C876BBE8AB8053B790314047A1901C9F327207B2130BE5BCE8504BB03817A380975CD81FE0C0416986A7B74A16A21146636ABE4D2B2C5C1223D39265A6845804D49E5F160ABFE3CA21A345B5D044AFA5636C37B976F2894869BF4500C62AE9941B9B3C3E6064FEC351268243FD75BF287CAE8AAA9AAEFC1CFBA1032AD2623A6239A7F834A4826F86132B59AB24EFC9C57CBA929A64BA90271B987BC08A913298911650399429E9BFC40742DF735F7CB935EDA73A41F96CAACBB34324B29E64348C6063AEB0BCEE9066028B3340AA147B09C42752CFD6D491FFA497E17AB6C0726AEFE59C2577764A1A996FD879E58C23F1C0AC9E9372B3F0BE42C829B7B09ACB722E3189A2B3E72124895CCAB565DAE583C6C76C34C2C0075568379639869325F6E92E0B91A2D4100B2F4AA6486B756CD521E1B781A964A21B8B0C72637A2E4299FE15C1AC275FB077CF42F36453E7603C91A648E09CBF128ED188639B7247584B333003A2175BC587925111654F24680C540B32643B035FF38BB4598785524504EBCB26163D513867D74744C8B562BD48989B3A328374A125CA05FA962AC08B0D22277E578206A165A9E3D31A084B4492C664448AA62986B55FE8C8420816A5A9C035644F592969FD0951B6E9AA57303D1F9927FF6B3DE99263E2E11CD8317CFC899A45706746E9850922B9A4F9CDE515623F3C48B86379C969969934CCBEC4BEA3E9796889CBCC56285E9A85F0B3471BF9692F3C72FFD945089B9A262AC1A8844C38C807F7274708AA0587F94A107089A99694FC627291C30FD6B0430ECA692DB54A96019EAF89635CF54F579A63048070B7F32DD2C32A18E2B7E8400344412E9DC5943BF3AF11B4AA6C328499DA7C220670958A22BFFC89B8F0091C8665B6605571D8A1B5C934CE4686C7C047AE416BC6E39B7CCC92CB076DE94001374217E9B8820354351CB377B4F06B7FBB69F64C7B48F781DED2CFEE998718D875EB94866E7C5135358EA4EC92849978438C77CEC1BA1803BF9933C8856657C953125EB76014BACCA8EC9BE6290936130D166B187E1463E55CAE3AD85E96E81BC574220AB0CD374AA1F657ABEA849259B4431F1A00EE59B35486BEB09302BF71B4C2E840963333B4A3BE37F8048D42A0F67C886DE9B47611555495248AD4C587577D45775F52135518793EA14582BF153C74210C36B9251609A4B28559ADE5A93203725A475971B92BEB88A69357BF83F384577CC1DFB62C70FC65401073C67A66AF878FD961BACF46C633E7CAC0E5092458CBBA0C3B69494C4C0C0DA6025CD6516C1AB89B3216BB9BA123040051563610251974A0B11BE7190504522A128CA3107938F5B18E4441B52F7944B0E54CD3946C57E7AE3475BEC06791A9F5A83EACBB12F40AC971CB475610A0E6C546998DAFE5C2ED852D7715B3DBA61B94849DEA30E28720BBCB90C7AF7FEB0AF619A0CF57D173405C82 +sk = A428A1343429CE9C3DADBB6213410E264426D1CB5C69C68E7F377BCBC454AAF867771258FAA622B6367FC5CC46E960682A3984A13230B3D7C25A69CE4AB9AF0234A109878E0CC42A9B858DC559AD3FE82C4060539C08828C51B337B7C0EA768BA646A2F04900A235A4042B88E8934D3B62821A13B67A912F162AA80953CB71C396D91B91521B6665062551E0A6CE453C233460789138CB16AC6E598F670C70D6325804CC494466710D984E3EA551F5EC60C5031E94421919F62C301181831B7FB4FC61DA443FE12784CF84B5ECF240DAECC87D711AAD10808B96233D345BA80B0469797DC03583214355E8E9A356E367A593A6898355AD129A8546A0D03B2279021889C118DB3583DA691A9AD544086540BB2178B2125F00C94AE753038486B6CDF1CF7E5A2202290B4E5AC807EB04BEA95678B52FF76C4757C68D2EB9283B8766F1A39E06C999015B1F1D5C3164338AEB432D54B338C361B9A7258981555FC2563E585A6FF60886C32343E0045746E50FE78A0A9BCBB6281ABE3474BA50E1267B3276A1327A8F128E2B5AB077618C59902C35488553F745D2A0C942B81C0AAB7AFD0C869B9B9C66C1847257CB22B018B81B25C468A9BC35A180B090F4BB90C4EC035C0078B799046833CD90F7BC2678CAB9B75B95A6B457DCA8FCB84937C01479A0B7B6DA9643DA507A2B8B1AE25373825189729BDA8B35FCEA315B3B359705CD5B486582379093E64F431309F0389FF899BEB4C3CA9689B412A210EB654F183362AB8398B1E3696DF7432BE662CBE62666471F2C056504A5C1C91017A6326ACC7306524058FD0937DDEAB972B00734F60D065A1BA8655DBA3093D161B99E698FC778B2FE782FA8EC7C62D422E17B24FD107B87A8338AE7AF6994C70D959CBFC3720B3174B9658F5D43713CD47325EB926320073F384F04E6831435524B686F2CD377C18363F8E554DBE6AF09F93C2FF2A1F4A87159472E7D7A4DB9243A1C6A636AD50735B870F1297B6D6B5303E2552A54AA5991340AA40301CA2D6BD9A765B72FBDE1C3C44A7649EA350E00CDE59628E06ACAD29888C9B73CF0AA65D44B60F086C21C6ABCBD544295317B55EA9AB1117989AB7B7304304E5612119396727943678C31CF2B1779C946B82420A557A8D6426263D33C7F71591C7857E90A7FA05158E315AE19D1046249B3011B22291CAE30501D1423674824B852C34C97258AB972AF6C5195FFA20B6CF05BA0498A529756F173349BEC8C180869293C5967454D01CB3C8EDC7A3A776DBA54C37513727A69CAACFBAAD8EC4A529A1872CA25CB4A99C38B225E379ACE27485D8B91FEF9CEB97C04322B59F533745D23720AE457FA11B3A0B831DE777D07F88ED1771FA1D89DB9ACBC7BAC471BD423ACAC482BFB29DE13881AEAAAE2F340C1E747A73B9071CC551EA59B03646B65BC2E6E04875754A77025985A026ADCD321574AB45CDA47134B560219338FC93B0A398D7F85169B4B32C2EC3A06529F8E3A57FD353327B03F87D5CB60C67074146FB460476C92619D9C23BA7A371FD9425CFC6486992959109CFA1C1A75AB9EBA4235AF63C6F8648AE7855A4EAB5C9D3923386996181980B16B02A53060E5A64A8CF3CED087BBB49B9264FAAFE731C0DEE965AC981965A28FF907CEABAC477E2C9B6DC95AAEB0531CBCB65D8B3F6251BE17ECAA89A5B57C1198EA66AF1F4461B91C360E4531C4D49269896107F10ED1F1070E68CDDB2A4E06C387F3126087A71A366A250B450BE1567DC957BBD034B66AB65FD4EAB2D89B8481EC2427A4AF3C1B861C799263F492779053A0128508C86EBD6201C876BBE8AB8053B790314047A1901C9F327207B2130BE5BCE8504BB03817A380975CD81FE0C0416986A7B74A16A21146636ABE4D2B2C5C1223D39265A6845804D49E5F160ABFE3CA21A345B5D044AFA5636C37B976F2894869BF4500C62AE9941B9B3C3E6064FEC351268243FD75BF287CAE8AAA9AAEFC1CFBA1032AD2623A6239A7F834A4826F86132B59AB24EFC9C57CBA929A64BA90271B987BC08A913298911650399429E9BFC40742DF735F7CB935EDA73A41F96CAACBB34324B29E64348C6063AEB0BCEE9066028B3340AA147B09C42752CFD6D491FFA497E17AB6C0726AEFE59C2577764A1A996FD879E58C23F1C0AC9E9372B3F0BE42C829B7B09ACB722E3189A2B3E72124895CCAB565DAE583C6C76C34C2C0075568379639869325F6E92E0B91A2D4100B2F4AA6486B756CD521E1B781A964A21B8B0C72637A2E4299FE15C1AC275FB077CF42F36453E7603C91A648E09CBF128ED188639B7247584B333003A2175BC587925111654F24680C540B32643B035FF38BB4598785524504EBCB26163D513867D74744C8B562BD48989B3A328374A125CA05FA962AC08B0D22277E578206A165A9E3D31A084B4492C664448AA62986B55FE8C8420816A5A9C035644F592969FD0951B6E9AA57303D1F9927FF6B3DE99263E2E11CD8317CFC899A45706746E9850922B9A4F9CDE515623F3C48B86379C969969934CCBEC4BEA3E9796889CBCC56285E9A85F0B3471BF9692F3C72FFD945089B9A262AC1A8844C38C807F7274708AA0587F94A107089A99694FC627291C30FD6B0430ECA692DB54A96019EAF89635CF54F579A63048070B7F32DD2C32A18E2B7E8400344412E9DC5943BF3AF11B4AA6C328499DA7C220670958A22BFFC89B8F0091C8665B6605571D8A1B5C934CE4686C7C047AE416BC6E39B7CCC92CB076DE94001374217E9B8820354351CB377B4F06B7FBB69F64C7B48F781DED2CFEE998718D875EB94866E7C5135358EA4EC92849978438C77CEC1BA1803BF9933C8856657C953125EB76014BACCA8EC9BE6290936130D166B187E1463E55CAE3AD85E96E81BC574220AB0CD374AA1F657ABEA849259B4431F1A00EE59B35486BEB09302BF71B4C2E840963333B4A3BE37F8048D42A0F67C886DE9B47611555495248AD4C587577D45775F52135518793EA14582BF153C74210C36B9251609A4B28559ADE5A93203725A475971B92BEB88A69357BF83F384577CC1DFB62C70FC65401073C67A66AF878FD961BACF46C633E7CAC0E5092458CBBA0C3B69494C4C0C0DA6025CD6516C1AB89B3216BB9BA123040051563610251974A0B11BE7190504522A128CA3107938F5B18E4441B52F7944B0E54CD3946C57E7AE3475BEC06791A9F5A83EACBB12F40AC971CB475610A0E6C546998DAFE5C2ED852D7715B3DBA61B94849DEA30E28720BBCB90C7AF7FEB0AF619A0CF57D173405C828DAB879DE09B58D0FC7ADE140393FFB5343ABBDDABDC118FAD519B14436A964C3E3A1BCD39C74C1B899FFA21A6FE100804A551199D32DB4A75E6314BFB58F70E +encap_coins = EEC1E23E58387EA5247E118B6204176E01C8FDE4EBF069F4B1A460713B5D5FC8 +ct = 5F5EBA019340717CEEFA6DFDCC3E1F9BD574615FFF6A22A04DFF4DADF3495A0BA0E36EB96F68ED803CC27E4B585F1A29D2604D41EA48C5C57E6CFBC1F192DBEAE2AF413893CF9247F2110068FE54D45024955F53E9F7CAAFA6CE6062F14FDD118F9F50F08E03FFCE928625F246DF6E295701D68009ABE021B3980119325D9D643B74E1F59441821D89590820E759179F1572E3852099652BEC299C2658E0F421C84362077D962A2456894735F8BA17E01AAEB3530B4A3563F11F24E7C168160981E9570FED394B5F831BAAF1330180F33BAACC82DCF1D01F12F8DE83FDA7985E024A6D86E1E4D2B4C5D16659A28B7D7DBA1F169138C327052BE90E0831CFE40098B1E5C628CA39C1B6CF55352E9E86CCF1E71AC2A1580375BC01375BFC13DB35E1A9B4CEDD171718A5A7075B6949224215027901053ABBFDD7C6DAD93513CBF527DD1F434EAE116C598014C016212D2FC1F7D135EFD6628D66B6F218BA6A015CECC346EF6EC19881F2938E808597363B2727B56029D3A8DA7EAA4323C07598B579CA4F31BA0EFF662CA695D15B8887AAAC844E5FBD485493CCA8DC24713F49F8FC5A0496250A9AC8CE238531572A8F85AB15FE2DBD70E3CBDA4D10773D49320909F24A4DB226D5219A2D6001A338EBC6E102731A2CA5AFE904C57BBD0B066ABB14B4C26140B37AF78B2E9C88E3348AC5BDEAC65D22BB5971DBCA83672EFD509AC8CA5F7DB02405CDD35E3A24BF23CE5001341058409AA0089EF70D7953DBB679254B8100A1700F03C72501F43EB1D1D5F35B39AD4FCF636C3489DD50823A7883F65E892BB78629F8CDDBB27772ADB7E4D4DF5CBB2A3BF8B5013E8495E613F14D2A580568ED474062CA51B308EB187D315D20838B20F2338ACEE81AD6AB2EA7B26656DD289E87E2B99FB0E1C339481A1B164116428F4220CBBC4577103571DA57FF0E11EBAFFA55B6871639E13DFCBD8191FE83E6B5A4E276E3A86128B3C703C8DBBA5F0AC0BE8080AB93335472299547DF0A1A25617909F1F7A8D6D9796B5F790B89A41A504E95B8DB89A3D1192E34B9F1A654214BCDC98C2F20EC94D2B704352E196F73C1A7A526E2E10678FD3417D7A662A8A993850E1F903E85CC5ABB8A13CA0CEA263DAC3E4C3911A56CD439DFF978D1CBFADBFAF828D45C4DA2FB5F5E6E0C910654298A03500662F9A4EFA5E26B74008CCD1E78B0B879AEBD3CA35E2AC898AC070AD60C7E15107A5B2E5A587E06960179319E6A0B14F25DDC4338B4C3DCDB2C288DF9186FF7ABCC4EBBF9D018A9D98C21F4F7266F8F210DA4385C42738BC75260F4B496F82C67990D12CB5AED10F08184DD94C6A1AF42F8E8D99F5B014C6D8666AD536926366DB3A146B12793AE2480DFAC7E7ADE569AA3A4717ACD44B36B926E15BF0E3EE921233DDB6F3FCB8569D1EF0A74E2F851D2DCA7013747D361627B98269C35C71E39FB24D1A02397701D9E81D4D6C793DCB777FF6BE9BD25B33468C8E1F14A2A39B705F0DB73332246B82B01BECD0BDB42329FAF684C3AC61A +ss = 6AA07D31CAECD34B786845D20E24DB069D24B6301A8E90CD2BADA69023B3CF48 + +count = 98 +keypair_coins = AA6DD1E5799CDF7AF9C4FC632B3EB9D51D66E85C8E0A21EC98664FC51AB63C7DAFF7ECFE33EFE4042A44F2F801170616925BE8CCA1BD1812A7335DCD80F9CF14 +pk = BC962535672A8D77C9EAF9726CC1A8B8D87D61B1461F33B7F7F5A003A8657297CD100324FEA561BA879FFA75287D9A838275734593ABC2B842D9353906334D3F9324C7D00EED794C78310421DB45CAB6900817348D67490BF1485E85A3DFA255694915D286AB5243B62D3A91F8493F0B19626FB89C0B9109C6E1084BD8C848C06B3472A65A2646DD89BE2D922A0D2C5E816652C826854AB36F44809EE56C9F7E26A1DC30823535997A05255756704AA1029B86601E2853C2D34A192A9B2B76B31C69C1A048A76A6A58E48BC8E512B1C767347AE28AE046076C20179D0977D2D54A3F78ADD2EC6BC06071D9447F0461846FB1A5E91A760112424082C2994A98D07AAB29E818FD15134DE437C7FBC59469CE8BA80545A4A5BF337FE142B72E602D8A1B3009CC95975759AD38274E234AEF0552B8AA65CDFCAC975495A84C124F8426A9C87D8DB03CE48B0382642CB9E31CE210B774724912B09B16D88AE007AC4542C092F9BBED9C262D823D9D5719B357821D4C245F384FC923CD334B9DFF579E324A0BCFBCBA61FB7AE9F69B3AB88693E005EE32BD1A6A3CA950A22421125391A060276B07242A795085D0098906969C421CBC469128FB5393B72590FD391DCDFA3CF87B9F7A4C6CC3A1791AE1717478A5280A3B7580BBEDF88F0DD7C1C09AA67D6B284334049398BA983BCBACB8C56237BC3EFB3FBFDCB358A006457832DF7A01EFD937E68B3299580CBE1C9F69E165D22683B3721E4189ADAAA91846B7717D41BAF8D9A1DC76C387F0B55C2552533326597466ECF06ACA624FBF73226E471D835B0EE4A24A8F1C5FBE359C61D974A4D57C2F7C49822286CA27116839B784D6782C13B606B87804BA0969C7C47C7A29CE16CECFF5514028C3D84944EC8CAB4B4ACB5B681723511087E25B8AE84F3741A2DE6CC21E7A370B35C255C34555F29645D4B420494C4D993BA3F092EE240F1D3691753420891ACFC9421C361CA2186B563ED63456096227EAA738A33AB56029976C1125DCA790114AEB83AEBCF271ED59BBC2E8377301B53D697CFABB4C6B40BAE19B6CECD421A1109F9CAC7B71C749E60A2005A30179C393D5033CB4F8795DE4C98D91538FB9A8CB1654B1E6A82918471470461F54CC71FBA50DEB3E1221C55AA616AD5262E352ADB7A89CA04557A2090FB05704B9521809B8CABFA325892AB46765CEE83850586918422212C812373A1C6217BA890B4C5310F7B0D5D8275B884AA9E4914C85023AB53BEA88AD4281A7F501A87534AC1D806B0F8691E9F1BC7171001043015B391CFAC09B5FA88F840C63194632BD5A012B34B50441BA08C879C44654F136CCCBB7114F7B4099016E0193CBBAE63522927DF4B740B3CA5B32B741EA15A47370B98926A1F90618F5235357E8087443C93444803DD22BBDD5340C876D41F3AC1DB59E9EF17DB71369A315600FC6801A54483FB015AD3766284A97CBC241AD73461F4B2A0F6645EF428805762A6E57474D29288404AD98FAB63AE95E25436626BC66EE10C01E55103597288AC521B463886F863833948455319D3455110B68BF7BC495D1A922191A1A230A5F036C3C4AC05EE2609D09891CE368C01F037D818805A566193A433E924B30F4E86DC76AE2B345932A0E7025F8CE6101884469E31AEACAF4D77E3F1201BC75 +sk = FA198BB15B4278509DC232002C75A8BBF1853C474C8248B5062821E4D77FD5880979922016D17377F76A89AB9477A1024C9780FB728F6DF3295666828143C52FE817B9688C70EBA292D2716AB4970840ABC4603F597B5FCDEB0144813602242625A067EA48B426738DAD0AB986369AA5326DD199C72212C59AB20C8F63429683721A2C682C5AA853B86542698732AB86FE39C340DB2D452286FDD599336B9923599B66C144C0C7848C20A6979133FB7B5EFA3726A4F44389CB93D6A9C1B7E300CB852698C236AC00B2855861C88BAD062A25423362C7774C1626834EE59880762508FB518F926A3F475D01AA8E5C8C4140537091D494AF66B0E9426359032A2264AF67E63541C2408B1853F87C68C28C8C13417F94D77F6AC3315F23405C233E14F7762C152609AC34842553DE175A6FE1C08B44BAA9D15CF09A6049B05B69F71DF322171701AE91D050778A6754E374878169181A2E1336677889318CB54218AC055491B918BC2553023167151C98B30E1340403E0C59B3252F4D0C85EBAC1877798C41AA43C5C7B738B7CE116428C049370BA6665BE646B3125AEB947B1F3B2EC5357C7566C13EAB148C453D6B2274A9295A06C822DF9222CB2026F19603B5602D08D46D4C71384E776AF2A441894826E4559F5975C586E47BC0236B4897622AE4396160334CC97ACA101805814AE44786D1E445147A4728275C32554B9BD148AE9605E10C5A6B556704F1C17297A32EB311F1E92EE5F160E8522E06554B93B5C796E44086E75D236CA88ECC533C3B348091891E35639BD6CBDB3A408720B6E3A328C4268454169267A5C5348703C412C58846C192E0A162014600DBB351424FA8D0599775BD2D851DB4B07438F655AAD6402628563DB3A435F75D440636CD64041DE162D178C923490839F190F106BE0020AB63E7B3EB718A4FB59E01057C416C330CC26E485A6D9C72B707DA0B297C0A25247D26D40F044844C2DB883A5BBFC2B06F1BFBCCC6D10B65C9BDBFB806D7A04CD71774DD60BC423C1DFA897A0512365CD54A90BA6AC509298BF6455363583843925281AA405C291F11695CDA995A9AC5F742351560B38F8720D66327B4DCC47626744241679247CBE42695B8D81C37C718CAD53D1B318F9F900757267C43B982F26639901028F8F636C35091F1CA90A1E329D5CB069A918F45A078F33AB4DFD248390627926AADDFF47ECEF1718B2B048304CD40E72FB0872B6207856A61BD764034E82BB426747405E1AE5B93C63CB12C7BF09E47E27117D26ACBC102B043616E60B714316DFC17306A77800EE87E03E4B74759794EE6943DC274AEC1A08197A841E68F258202B1124803064F6E3295DD51AD18949A5A383A81363BB00118A8569A38D138BF8835362C723E999402D3CF728B0E11F647CE2B9390615B9E50487E23CEE6F9CEFC4A1CE5E83D28D642E3C16934B43931158CCEF3832A457A5E833F317918858807AB084F687A394C257ABCD8435CD717D1E6B79E78A37BB71A236729839B89A9905B5D935AFDC2C1E6C71C597898C6A69765BA05E9784B7849C685AB5B6DE3358C6299D8A4B075045D6EE15B639601AA95603A67378157B54889C3021453E373208CD06C0DEB77BC962535672A8D77C9EAF9726CC1A8B8D87D61B1461F33B7F7F5A003A8657297CD100324FEA561BA879FFA75287D9A838275734593ABC2B842D9353906334D3F9324C7D00EED794C78310421DB45CAB6900817348D67490BF1485E85A3DFA255694915D286AB5243B62D3A91F8493F0B19626FB89C0B9109C6E1084BD8C848C06B3472A65A2646DD89BE2D922A0D2C5E816652C826854AB36F44809EE56C9F7E26A1DC30823535997A05255756704AA1029B86601E2853C2D34A192A9B2B76B31C69C1A048A76A6A58E48BC8E512B1C767347AE28AE046076C20179D0977D2D54A3F78ADD2EC6BC06071D9447F0461846FB1A5E91A760112424082C2994A98D07AAB29E818FD15134DE437C7FBC59469CE8BA80545A4A5BF337FE142B72E602D8A1B3009CC95975759AD38274E234AEF0552B8AA65CDFCAC975495A84C124F8426A9C87D8DB03CE48B0382642CB9E31CE210B774724912B09B16D88AE007AC4542C092F9BBED9C262D823D9D5719B357821D4C245F384FC923CD334B9DFF579E324A0BCFBCBA61FB7AE9F69B3AB88693E005EE32BD1A6A3CA950A22421125391A060276B07242A795085D0098906969C421CBC469128FB5393B72590FD391DCDFA3CF87B9F7A4C6CC3A1791AE1717478A5280A3B7580BBEDF88F0DD7C1C09AA67D6B284334049398BA983BCBACB8C56237BC3EFB3FBFDCB358A006457832DF7A01EFD937E68B3299580CBE1C9F69E165D22683B3721E4189ADAAA91846B7717D41BAF8D9A1DC76C387F0B55C2552533326597466ECF06ACA624FBF73226E471D835B0EE4A24A8F1C5FBE359C61D974A4D57C2F7C49822286CA27116839B784D6782C13B606B87804BA0969C7C47C7A29CE16CECFF5514028C3D84944EC8CAB4B4ACB5B681723511087E25B8AE84F3741A2DE6CC21E7A370B35C255C34555F29645D4B420494C4D993BA3F092EE240F1D3691753420891ACFC9421C361CA2186B563ED63456096227EAA738A33AB56029976C1125DCA790114AEB83AEBCF271ED59BBC2E8377301B53D697CFABB4C6B40BAE19B6CECD421A1109F9CAC7B71C749E60A2005A30179C393D5033CB4F8795DE4C98D91538FB9A8CB1654B1E6A82918471470461F54CC71FBA50DEB3E1221C55AA616AD5262E352ADB7A89CA04557A2090FB05704B9521809B8CABFA325892AB46765CEE83850586918422212C812373A1C6217BA890B4C5310F7B0D5D8275B884AA9E4914C85023AB53BEA88AD4281A7F501A87534AC1D806B0F8691E9F1BC7171001043015B391CFAC09B5FA88F840C63194632BD5A012B34B50441BA08C879C44654F136CCCBB7114F7B4099016E0193CBBAE63522927DF4B740B3CA5B32B741EA15A47370B98926A1F90618F5235357E8087443C93444803DD22BBDD5340C876D41F3AC1DB59E9EF17DB71369A315600FC6801A54483FB015AD3766284A97CBC241AD73461F4B2A0F6645EF428805762A6E57474D29288404AD98FAB63AE95E25436626BC66EE10C01E55103597288AC521B463886F863833948455319D3455110B68BF7BC495D1A922191A1A230A5F036C3C4AC05EE2609D09891CE368C01F037D818805A566193A433E924B30F4E86DC76AE2B345932A0E7025F8CE6101884469E31AEACAF4D77E3F1201BC75919A696301240CD6129F66BE58E19D99B0D827D9932785CD9EA3D92F7BA54463AFF7ECFE33EFE4042A44F2F801170616925BE8CCA1BD1812A7335DCD80F9CF14 +encap_coins = DA9C015B918108C1596309FE0042218DE4C31900B8DFA6C1CEC28AD10988BBC7 +ct = F86702AE13B846A0A6757F591F92C2E87727718019F6D94C79A8367F758720D9C2AE669F9F8DD60465E2BDB0E90B1052CB33B20C12FC7BD7003CDBA0721881B28BA6ACBC602717A080F80BBE2B46B3B6D059553FAE7922C79EC637BF830949C4CF1CB987AB82CEF75C964B87F9844A76177E28C3639F0E5772C40D9A005E56783A9A021AB319F2AF1DE5326ACB117FAEB28D541A4641B500A75CA7DEE61738266297479D55AC616D367BA7C4BBA9BCC33F18034BC719FB6454532FE478C789A4CA3E785B83387E7CAFEE85BBF15769DE3819599444F324F045BC63380704A4B6CB454C4F4C198108D55441FD99BA54B8BBBBF70B46D6BB6E290273B734A383811DF907390F876A3C3ED9AF0938717C57C561B4F8F4DDE282F27DA9F6027F36B7E6A3E9915A66CD2545A04FDC7F4949188DEE15DA9B00E765748C9B814065C8805D897028D59D119B6E0C3A1528F8C258AE10EB961795549A47D064921CFE93D2484AD864147F567CF8C212983530D87C4B4E4AFA409D0888283EF932AFF73F8884AE34AB1C377695F7CB32BD55F7F9E9DE3E97CA311BFE82A3EB66BD059DC1802B1E1A8CFF0B76694DC738426147985CA8426DE1B2D49E9727E1389EE153F0BAF265352E404423B87DF38CA0A0EDB7363C8C2095EF98750E0993FC80C693D96EA190DDCEC7442D24A9B5BF8B3723363422F218EF9B5583F1ABEFB5CB344E7F15CE2B88549651CBA704D6EDFA597CAA117D3F066A66924AE9CE82A41CFB58E87F5D63ACA47BB4FAFBA80743D42153CBAEDF26119CDE20AA1179B1FAFEC657370BFE27383C53A8BFB0CCA277B346EE6C4FFB926F8A8026FA65ADF81E58D238F2ED7A0D9CF261BDA392B25B7C26CA9C3AB38D114D843336A5CD110FD09CA1366C14F0B0095C0308AA12C375DF360A2F36EA5191EBC05191B80E32B3DE7B80676B91283C83A42E53CF923333295C0353AB9455939CF8EB5D57DEFD48032AF582611E55391321FD04C2DA9BCBA3A8161471F99514F9E85E490E89B304C743544669070D8E7B6D6EE08B9685A5A9E70BDEA3D051327F259CDB7A3E449473D5ABB57321BF2B6A28CF0213375185A00CD21A676B6102B64B3C8CB243DBF7407CAFB22CFF983BCBB0535CDE380F29400505989A9E68C4A2128647C42474BC7C26C1C73F881CA1F8D148C28BC193D59BD9B60101CCCAEC97D27ECD1D16B5FF277DFE771226ED0075CED124C3C732F4F57E969E8E076865E44C4A7E683FEBEC4E73EE78736840406E6B658B2E516752848D4F11462035C6700E8FBB1ABAFABB1FDCE53D53D60C97430FE3A3FFC60AF80D9866799A95076FF8ACE6209E3FDF9C6D4679A7D445B3A0B9039A6DA47501A914E75182398EBA624EAB029CF7BE8BF8E5C96402C6600DA67520A08C20F74C7B8C891D3A493C6BF0F795B227D90D9764301D42D9FA2C6A835859642C4DA1E902B4DED8A8FA8387857B976A11736E49E14E51E05577960E20A391F3EAC8FFF41B01C3FD525484CF210611F27F73378FC33FABE819519B +ss = 01BBD6A971252D67A10D0EF15FC4A5D2E501A7EAB8B6A8FAB24702C714714711 + +count = 99 +keypair_coins = 195D6C86A3DF4C21E3007D7F2768B43C74CB3060E0ECA77F0A5D3271542B9A84D375BC4FB24E98F1EAA01E50A588E96A2B26DAF9421437313FC7E4B520387050 +pk = 28441CC07C18856568C4FC0EDDC04175F564BDA148788608B71756367551A5709127668EFBD60B389877001B948F2C50CE62C7ED63122DAA7C1889400A4175AB959D09AB124BEA2C9D3659B8B4861E482EDED950DBF57A47C87F79FBC143D20420F4162F711963C47DCF7B8EA7FAA329D6A70F601D3A1B15A7890804917C84477D95F916A3761E3D94A0B0D69D9B7C39692B7F4ACB9091F87583810CCF67BDF86C4BE8F08762F2C3428646A3D33DF4B67EB87A2662353A208403BF59334BD9758A9439F8D8BDD45195F2255282A73456D168A2B249E8D180D5B310BA828685B3A1DABA2FB88783BB5062C13B79C2B0C3A10085664377EADBB477329567D1158882085850B95697248C6271F44988218777D33823AD70791BD40E29825ED124B963E05D06547C740A5AB7A1488E38C464B53B6F016BA1B7648A14AAA111907846C5DF162F61CC62747386915724A3B054E868BC04C934D64B7F2FF461AAE980FA806CCA7A9C4D7255564B420887946F7A72E4D1384D8222C70330B09C08D9A70AA176529F0685D087B8F9EB464A776F93606B05D0729FD2AFA7969EEC2662EBB7C7FC821D6B5393707ACF25C0C2C81702CB195F8CF730E8A46442E91E18FC7577F4AAFD6933450491EE24763BF6786D794D889C3005A323CEF2A8863C7AE00998D2E3CCC1F5A6C8A933D5D615CE82AF312990969C6288B6893C42142AD87AB483362461B87C641F646410EF5B393283230220A34730397188920B6873F16478331CB22A5A2C73273D865985533A1F8E109DBDE719C10C8ED87A831AB65562751EBBB15D3D5B6E01F78DB26A54E47943D6B31F916A552ED01A39F96DFF820765D6AE52265010545162D509F6AC3F9B7C0FD0ECAD4008732D6A9DF9449B2017B389522F11870704127BC6D018E0A420DD441EBF636C31B3B63DA9C00DC15BE0B3188371BBC855254217B99294815D78194FDABCD1970E31E38D37B4B1CC69BF428514F50AC9BCCA9125E6473028571BE535FCA274651752DAC691FF8A28C555036378B260ACB060FABA9573B0B65CBC76B892425294D65658F4A1B3309B424C6865BF1AB307B88022087F97F6882D4360ECD91F3D2513059A784BB256E47670AFD5C1AD5C177142A2955B082FD0B546577CA5286E0F1C85AF8B0BD5650038609E8EC8344E6CCB6DF93A056644CB89294FA19266948E9A561BFA66517A900B67F6BE5EFB853C703CCB4A296A493C24607A6AC4A749361D8F738080A80CA62AAF658B6A972894E6CA402AF3C09D2A6E9C181005E0C4D193361859011173BC8B97755FD1085B52808373B29733A7D0488C5F890364ABB9716920C074645AE023679BC9C2B3AD29B9051A94A124A43688A1027C35B90F9303664AA37AA92284F97DBCC7AD0F12B5B6BA38CE0A07130110518C74EA36CA6D6A44399A3983101458F926E0BB3357BAC5A294446463814806AD1623185F295D27F2C913C9608314174B2BB8BC03A92DB6CC6F044D964A7E3E289EA8F064D9B5C0D0EB43357495D09C0FBC4069903BCDC683763BC4C6ACC2517B7C94E3E0265029BFF55773421BC6143A38F57410BFB50BF21BAFEC948548A87667D95439BB78CCA2C9DA670BEB4C816478683B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B8 +sk = 55873EC8C5BAC259501E025FAED327B9B659B0810E7D43B8BF7A25A8C1A51062CFBC9BBEAB182747196797913398DB1C1CA41C1CC3A883400A29797AB4CBB553076C204167AAD2208355279F504DD9A476985362898B4E423821CC2642C335C3C953C866451CECE03098D5A2AE366DDAE1A06E05547E1C0C0667CC98494BFA778EEBC5CBACCC3038F93B82E57F814799CB7A921FB14042AAC83A1B4897BC6A15C87FC94144828966C49B6CB8F842A3157B60D6B3271C3661529D8A93C7DAF7B4DE1396308C0CBBFC9F984617CBB5B1825C88BDBC4C74C58EF3D54D089613A6A431E3A59ACF4201FBB6828DB0061F1BC514DCBFE72023CF8102E9834D5D6BBA8A354FE04C6008B37F9B07857CDA1238F5A562F288F3217FFD1A1BF8B2A0FCF3AF0310C84BD6CD805C246C4A227C9BCF963093A9755CBA968E7C06CC4F987B516171461B69E013076CB652C2A0B10F1B0FC9D6B583A929FA3905BA4B6B41F19D862C82B5F170277530A278773FA740ECA749C00A61735AA1A27719CFB75EB0768956718239F43239E25A316339DB665EB9784AB581137D020B992782956522B824B3EA4CB540A4B12AD7C512046711B0463F779E1279BCD2B7238580C72DF6120850376DB48978DC717CD1424D0B5E7331B76D0AC0B024C6283C8418E5B1A7A297AA483E5D2A65F2181EDE32C69CC4B9A8C4C0B90BB17EC06336D2100766AED931876CE45435B5662DD8A5B9F545292C870A16925546AE0CECACFB737647504EA1A29D13E0BC2D060BF7480345051E9379CFB0F901B9A426641802E5522FF8B199439026B123CF9B5827FFA147567912C46C88CEF0B41D9526D227A72262C0E3B3157DC4898E07CAEBC8038142B5172A799B8A6DB0F7703730C98E1957FEF13D5D7B2A52945EFF5C4337B6CC5004BACBB419BA73568AA357F61C70383447C6015A5896B9C0C0A2F2C7A76D940278D736D6B685F4FB3CC392CAAC1830B439468B6BC73585B4205751E55103099986308702A477588611A990580D88657024FA6D371550141405A8240109824788675D2546AFAD54628E93281ABCCAE4EAC11D200AA5C40A9E440D9F2A40DEB31C2688A3266C9E16B60461087DA271A1973374C99693C8111F9D458F92AC3208268078B177C818038305AB421B6D8297063061BB36F1318BB2108163A723A4BFC3C2A25F958F28B2B806A15E4310B8852103843C8AC26C7773084F1F82151C52083E69772A049123027916F039FD08713B98039F3B84CC83A8F88B2C19F48A958A443339A5A2158DFD7A08D11983601A1892A8C1152C602EDB1592C3AE555B2EE54C5DC6020C0B95626FC06D85D78120AC135FD369DE6B6AA902BB015A7BC3BA13A7391960C533D2F1A6278494E78B6A3C5B91A2B1AA2A0752E5C0A30E33CC86DCBA2E3232C98B9AAF1BBDF9E825B15A6DC3A741D43A53EB10AD18E93541E224EC5A952D673984990AF0D81577D1BC83B09856794D11707FAAC63A1E49A799224B51464916BC07F0A69F06F26696F5806E92CA4ADA050CDA48A9C90635A9C68ACC753A711115C35488758A68256A32F4964C431D50C0A8C5053D1A41126A952270A309F69931C32194FD201BC3809DB548A000558528441CC07C18856568C4FC0EDDC04175F564BDA148788608B71756367551A5709127668EFBD60B389877001B948F2C50CE62C7ED63122DAA7C1889400A4175AB959D09AB124BEA2C9D3659B8B4861E482EDED950DBF57A47C87F79FBC143D20420F4162F711963C47DCF7B8EA7FAA329D6A70F601D3A1B15A7890804917C84477D95F916A3761E3D94A0B0D69D9B7C39692B7F4ACB9091F87583810CCF67BDF86C4BE8F08762F2C3428646A3D33DF4B67EB87A2662353A208403BF59334BD9758A9439F8D8BDD45195F2255282A73456D168A2B249E8D180D5B310BA828685B3A1DABA2FB88783BB5062C13B79C2B0C3A10085664377EADBB477329567D1158882085850B95697248C6271F44988218777D33823AD70791BD40E29825ED124B963E05D06547C740A5AB7A1488E38C464B53B6F016BA1B7648A14AAA111907846C5DF162F61CC62747386915724A3B054E868BC04C934D64B7F2FF461AAE980FA806CCA7A9C4D7255564B420887946F7A72E4D1384D8222C70330B09C08D9A70AA176529F0685D087B8F9EB464A776F93606B05D0729FD2AFA7969EEC2662EBB7C7FC821D6B5393707ACF25C0C2C81702CB195F8CF730E8A46442E91E18FC7577F4AAFD6933450491EE24763BF6786D794D889C3005A323CEF2A8863C7AE00998D2E3CCC1F5A6C8A933D5D615CE82AF312990969C6288B6893C42142AD87AB483362461B87C641F646410EF5B393283230220A34730397188920B6873F16478331CB22A5A2C73273D865985533A1F8E109DBDE719C10C8ED87A831AB65562751EBBB15D3D5B6E01F78DB26A54E47943D6B31F916A552ED01A39F96DFF820765D6AE52265010545162D509F6AC3F9B7C0FD0ECAD4008732D6A9DF9449B2017B389522F11870704127BC6D018E0A420DD441EBF636C31B3B63DA9C00DC15BE0B3188371BBC855254217B99294815D78194FDABCD1970E31E38D37B4B1CC69BF428514F50AC9BCCA9125E6473028571BE535FCA274651752DAC691FF8A28C555036378B260ACB060FABA9573B0B65CBC76B892425294D65658F4A1B3309B424C6865BF1AB307B88022087F97F6882D4360ECD91F3D2513059A784BB256E47670AFD5C1AD5C177142A2955B082FD0B546577CA5286E0F1C85AF8B0BD5650038609E8EC8344E6CCB6DF93A056644CB89294FA19266948E9A561BFA66517A900B67F6BE5EFB853C703CCB4A296A493C24607A6AC4A749361D8F738080A80CA62AAF658B6A972894E6CA402AF3C09D2A6E9C181005E0C4D193361859011173BC8B97755FD1085B52808373B29733A7D0488C5F890364ABB9716920C074645AE023679BC9C2B3AD29B9051A94A124A43688A1027C35B90F9303664AA37AA92284F97DBCC7AD0F12B5B6BA38CE0A07130110518C74EA36CA6D6A44399A3983101458F926E0BB3357BAC5A294446463814806AD1623185F295D27F2C913C9608314174B2BB8BC03A92DB6CC6F044D964A7E3E289EA8F064D9B5C0D0EB43357495D09C0FBC4069903BCDC683763BC4C6ACC2517B7C94E3E0265029BFF55773421BC6143A38F57410BFB50BF21BAFEC948548A87667D95439BB78CCA2C9DA670BEB4C816478683B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B8CB6D7232426BDBDFDACD373C9190722E7BF342825F7D829185DCC9120588FC76D375BC4FB24E98F1EAA01E50A588E96A2B26DAF9421437313FC7E4B520387050 +encap_coins = 05874F9D5A2E9133D385F3326FA925129DFF03359D78B0D07ED78FD5C1307800 +ct = 64896853F9415AD4A3457E9B23B20C105E29D48905A9E302C73B4D6131139D90FD24FA74C236E17B88E99E8EE53B1BACD2CF0A894B11477227075E136AEA82FEDBFA08D34F4ACBE01FD5B4889EA3449D33AE78F3878885653783721423AB71AC377E1E0887A5D7B86685FD3BB5CA671E1F1655722EEA33D0DDF04AD6D39D476E6EB001F5970C78F495F01FEBA6EA3D2B0D6CA11E4130EF8729A836A3321DC9451915770C6FCACA50F71003DCA19DD9D789FEF1145B10A8C0F334A268257058BE45DA58D2E35A7E303E0D28645DD4B0115073919F0CBCAFBCE6906E8C36840F8050297F1D6B48CD92EE268F582BE8C151F10D37D0A71DF4F47D3C9BE532ECBB7713C29A2442E98E54D4E4360311393AF40F8B95242D0FD733AC76DF604D0627EFE49B4E1D708C9F39D74AB4086AA578D4126C7B30635D9750D4E2D7485C1AB57612EBEAA4E8E0E6E3898B1C23D53F46DBD736A64D962D3773DF9B1091F095B0D87D33A0F3030D268EB660AE82FAFE36C337D6AF289235AF01D7415323BFA183F90BB8336F202191AE294230684D0794B18BAB40E284FDCCE80CD894B77732EEDDF80726141B31B43C75A3543670558012E9178D27DD4497BAE5F901F7A70AB2FC1CB542BA1FEB32992B9141B8E7CA010B99B74E3C212EA90D4C8591AB1511C88C278D29E144039E23A7B0BC946B46734734265E1DF34643CBBF36E439EE8B194C7A8E8B75DE782303FDA00A80B5CAFB7E49500BE86766F7F9EDBB013DBA6F4E115C62D840F1BF08BF90B075EB73E70F34BC1E603FBAE6F43632089B8FDE88F319A6E9B39B86DB9AF2E0846D9EC559A227C25691C9B32B17F57BC9E96020F167924BD567EA20D583C2A6D4966698369C39BD7CC1192DA888C14A4334480202D23E55DEA47B745144CF00030A3514F01043FD26B0591AD3E8BB19A8151A9342E90A98CFEBD96189DCAB1459BFA7A0F185EC1979B3E2C8AE5FE5E752F4696DBA9DA27DBD6700707674203673A7486DF55E6C615637564C43D3C91D40914E2FFD75A8C01AACDFDF4B44126DFDAC18A46C5893E291B3147AF7E4D03CE518C319E3BE0D2CD665F1F4769238DDBBCD61B371DDA4E3E6FB7C27118DCA0F8CAF0E179632C9AE770E7CC95146DFC9B8CD1296B259DF0BBF60C30C020D7035EFCC499B06190CD00F9C1CEAD31DFF5FA9AB74A5B8F5802E94E12B97D996E47F17EC81A78C8DF58916EB305E401EAC6A3FBD846EFCD92F8913A09A0DC6588B5186F1CB3F37F44AA01248EE88CDC785FB970A7F0A34E6AB73ED0AD4487DDF0F0F398EC34490A1F03FCACA7B98C3DEE6DF003867760F7D5E9957246157C8B3CE988674A94D9A826D3B76F693E90E07D76C7235A0966DFDD3ACF35C70ADE590B288FCD2EFF074F6EAF75DF00B61EF25CF8948DF1EDECDF57CE58F9E636ED38E0ED3EDD8010794B85FBDB7D9C8928BF1951087FF8C12C48C4820F4F9865CA39C730835F5C11F5E938556007945EBFF82E3F055E0E7ACBF48A1D1FB9176E77C9407429BA17557B06370 +ss = 477F645E1A03A787F29F7B15932F65AEE1D74EAB2ADB4F378E263FD8E2EBD526 + diff --git a/crypto/ml_kem/ml_kem.c b/crypto/ml_kem/ml_kem.c index b4d05a630f..1aa4d860a3 100644 --- a/crypto/ml_kem/ml_kem.c +++ b/crypto/ml_kem/ml_kem.c @@ -39,3 +39,62 @@ int ml_kem_512_ipd_decapsulate(uint8_t *shared_secret /* OUT */, return ml_kem_512_ref_dec(shared_secret, ciphertext, secret_key); } +int ml_kem_768_ipd_keypair_deterministic(uint8_t *public_key /* OUT */, + uint8_t *secret_key /* OUT */, + const uint8_t *seed /* IN */) { + return ml_kem_768_ref_keypair_derand(public_key, secret_key, seed); +} + +int ml_kem_768_ipd_keypair(uint8_t *public_key /* OUT */, + uint8_t *secret_key /* OUT */) { + return ml_kem_768_ref_keypair(public_key, secret_key); +} + +int ml_kem_768_ipd_encapsulate_deterministic(uint8_t *ciphertext /* OUT */, + uint8_t *shared_secret /* OUT */, + const uint8_t *public_key /* IN */, + const uint8_t *seed /* IN */) { + return ml_kem_768_ref_enc_derand(ciphertext, shared_secret, public_key, seed); +} + +int ml_kem_768_ipd_encapsulate(uint8_t *ciphertext /* OUT */, + uint8_t *shared_secret /* OUT */, + const uint8_t *public_key /* IN */) { + return ml_kem_768_ref_enc(ciphertext, shared_secret, public_key); +} + +int ml_kem_768_ipd_decapsulate(uint8_t *shared_secret /* OUT */, + const uint8_t *ciphertext /* IN */, + const uint8_t *secret_key /* IN */) { + return ml_kem_768_ref_dec(shared_secret, ciphertext, secret_key); +} + +int ml_kem_1024_ipd_keypair_deterministic(uint8_t *public_key /* OUT */, + uint8_t *secret_key /* OUT */, + const uint8_t *seed /* IN */) { + return ml_kem_1024_ref_keypair_derand(public_key, secret_key, seed); +} + +int ml_kem_1024_ipd_keypair(uint8_t *public_key /* OUT */, + uint8_t *secret_key /* OUT */) { + return ml_kem_1024_ref_keypair(public_key, secret_key); +} + +int ml_kem_1024_ipd_encapsulate_deterministic(uint8_t *ciphertext /* OUT */, + uint8_t *shared_secret /* OUT */, + const uint8_t *public_key /* IN */, + const uint8_t *seed /* IN */) { + return ml_kem_1024_ref_enc_derand(ciphertext, shared_secret, public_key, seed); +} + +int ml_kem_1024_ipd_encapsulate(uint8_t *ciphertext /* OUT */, + uint8_t *shared_secret /* OUT */, + const uint8_t *public_key /* IN */) { + return ml_kem_1024_ref_enc(ciphertext, shared_secret, public_key); +} + +int ml_kem_1024_ipd_decapsulate(uint8_t *shared_secret /* OUT */, + const uint8_t *ciphertext /* IN */, + const uint8_t *secret_key /* IN */) { + return ml_kem_1024_ref_dec(shared_secret, ciphertext, secret_key); +} diff --git a/crypto/ml_kem/ml_kem.h b/crypto/ml_kem/ml_kem.h index 2471a840ee..076289c901 100644 --- a/crypto/ml_kem/ml_kem.h +++ b/crypto/ml_kem/ml_kem.h @@ -8,12 +8,26 @@ #include #define MLKEM512IPD_SHARED_SECRET_LEN (32) -#define MLKEM512IPD_KEYGEN_SEED_LEN 64 -#define MLKEM512IPD_ENCAPS_SEED_LEN 32 +#define MLKEM512IPD_KEYGEN_SEED_LEN (64) +#define MLKEM512IPD_ENCAPS_SEED_LEN (32) #define MLKEM512IPD_PUBLIC_KEY_BYTES (800) #define MLKEM512IPD_SECRET_KEY_BYTES (1632) #define MLKEM512IPD_CIPHERTEXT_BYTES (768) +#define MLKEM768IPD_SHARED_SECRET_LEN (32) +#define MLKEM768IPD_KEYGEN_SEED_LEN (64) +#define MLKEM768IPD_ENCAPS_SEED_LEN (32) +#define MLKEM768IPD_PUBLIC_KEY_BYTES (1184) +#define MLKEM768IPD_SECRET_KEY_BYTES (2400) +#define MLKEM768IPD_CIPHERTEXT_BYTES (1088) + +#define MLKEM1024IPD_SHARED_SECRET_LEN (32) +#define MLKEM1024IPD_KEYGEN_SEED_LEN (64) +#define MLKEM1024IPD_ENCAPS_SEED_LEN (32) +#define MLKEM1024IPD_PUBLIC_KEY_BYTES (1568) +#define MLKEM1024IPD_SECRET_KEY_BYTES (3168) +#define MLKEM1024IPD_CIPHERTEXT_BYTES (1568) + int ml_kem_512_ipd_keypair_deterministic(uint8_t *public_key /* OUT */, uint8_t *secret_key /* OUT */, const uint8_t *seed /* IN */); @@ -33,4 +47,44 @@ int ml_kem_512_ipd_encapsulate(uint8_t *ciphertext /* OUT */, int ml_kem_512_ipd_decapsulate(uint8_t *shared_secret /* OUT */, const uint8_t *ciphertext /* IN */, const uint8_t *secret_key /* IN */); + +int ml_kem_768_ipd_keypair_deterministic(uint8_t *public_key /* OUT */, + uint8_t *secret_key /* OUT */, + const uint8_t *seed /* IN */); + +int ml_kem_768_ipd_keypair(uint8_t *public_key /* OUT */, + uint8_t *secret_key /* OUT */); + +int ml_kem_768_ipd_encapsulate_deterministic(uint8_t *ciphertext /* OUT */, + uint8_t *shared_secret /* OUT */, + const uint8_t *public_key /* IN */, + const uint8_t *seed /* IN */); + +int ml_kem_768_ipd_encapsulate(uint8_t *ciphertext /* OUT */, + uint8_t *shared_secret /* OUT */, + const uint8_t *public_key /* IN */); + +int ml_kem_768_ipd_decapsulate(uint8_t *shared_secret /* OUT */, + const uint8_t *ciphertext /* IN */, + const uint8_t *secret_key /* IN */); + +int ml_kem_1024_ipd_keypair_deterministic(uint8_t *public_key /* OUT */, + uint8_t *secret_key /* OUT */, + const uint8_t *seed /* IN */); + +int ml_kem_1024_ipd_keypair(uint8_t *public_key /* OUT */, + uint8_t *secret_key /* OUT */); + +int ml_kem_1024_ipd_encapsulate_deterministic(uint8_t *ciphertext /* OUT */, + uint8_t *shared_secret /* OUT */, + const uint8_t *public_key /* IN */, + const uint8_t *seed /* IN */); + +int ml_kem_1024_ipd_encapsulate(uint8_t *ciphertext /* OUT */, + uint8_t *shared_secret /* OUT */, + const uint8_t *public_key /* IN */); + +int ml_kem_1024_ipd_decapsulate(uint8_t *shared_secret /* OUT */, + const uint8_t *ciphertext /* IN */, + const uint8_t *secret_key /* IN */); #endif // ML_KEM_H diff --git a/crypto/ml_kem/ml_kem_1024_ipd.c b/crypto/ml_kem/ml_kem_1024_ipd.c new file mode 100644 index 0000000000..4d7529f6e6 --- /dev/null +++ b/crypto/ml_kem/ml_kem_1024_ipd.c @@ -0,0 +1,19 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC + +// The following two lines have to be in that order, first the definition of +// KYBER_K, and then the inclusion of params.h so that the correct version +// of Kyber would be selected. KYBER_K equal to 4 corresponds to ML-KEM-1024. +// Both lines also have to come before all the source files. +#define KYBER_K 4 +#include "./ml_kem_ipd_ref_common/params.h" + +#include "./ml_kem_ipd_ref_common/cbd.c" +#include "./ml_kem_ipd_ref_common/indcpa.c" +#include "./ml_kem_ipd_ref_common/kem.c" +#include "./ml_kem_ipd_ref_common/ntt.c" +#include "./ml_kem_ipd_ref_common/poly.c" +#include "./ml_kem_ipd_ref_common/polyvec.c" +#include "./ml_kem_ipd_ref_common/reduce.c" +#include "./ml_kem_ipd_ref_common/symmetric-shake.c" +#include "./ml_kem_ipd_ref_common/verify.c" diff --git a/crypto/ml_kem/ml_kem_768_ipd.c b/crypto/ml_kem/ml_kem_768_ipd.c new file mode 100644 index 0000000000..2680636fc1 --- /dev/null +++ b/crypto/ml_kem/ml_kem_768_ipd.c @@ -0,0 +1,19 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC + +// The following two lines have to be in that order, first the definition of +// KYBER_K, and then the inclusion of params.h so that the correct version +// of Kyber would be selected. KYBER_K equal to 3 corresponds to ML-KEM-768. +// Both lines also have to come before all the source files. +#define KYBER_K 3 +#include "./ml_kem_ipd_ref_common/params.h" + +#include "./ml_kem_ipd_ref_common/cbd.c" +#include "./ml_kem_ipd_ref_common/indcpa.c" +#include "./ml_kem_ipd_ref_common/kem.c" +#include "./ml_kem_ipd_ref_common/ntt.c" +#include "./ml_kem_ipd_ref_common/poly.c" +#include "./ml_kem_ipd_ref_common/polyvec.c" +#include "./ml_kem_ipd_ref_common/reduce.c" +#include "./ml_kem_ipd_ref_common/symmetric-shake.c" +#include "./ml_kem_ipd_ref_common/verify.c" diff --git a/crypto/obj/obj_dat.h b/crypto/obj/obj_dat.h index 975c1ee59f..3610dcd2d6 100644 --- a/crypto/obj/obj_dat.h +++ b/crypto/obj/obj_dat.h @@ -56,7 +56,7 @@ /* This file is generated by crypto/obj/objects.go. */ -#define NUM_NID 986 +#define NUM_NID 988 static const uint8_t kObjectData[] = { /* NID_rsadsi */ @@ -8889,6 +8889,8 @@ static const ASN1_OBJECT kObjects[NUM_NID] = { {"ffdhe3072", "ffdhe3072", NID_ffdhe3072, 0, NULL, 0}, {"ffdhe8192", "ffdhe8192", NID_ffdhe8192, 0, NULL, 0}, {"MLKEM512IPD", "MLKEM512IPD", NID_MLKEM512IPD, 0, NULL, 0}, + {"MLKEM768IPD", "MLKEM768IPD", NID_MLKEM768IPD, 0, NULL, 0}, + {"MLKEM1024IPD", "MLKEM1024IPD", NID_MLKEM1024IPD, 0, NULL, 0}, }; static const uint16_t kNIDsInShortNameOrder[] = { @@ -9019,7 +9021,9 @@ static const uint16_t kNIDsInShortNameOrder[] = { 114 /* MD5-SHA1 */, 95 /* MDC2 */, 911 /* MGF1 */, + 987 /* MLKEM1024IPD */, 985 /* MLKEM512IPD */, + 986 /* MLKEM768IPD */, 388 /* Mail */, 57 /* Netscape */, 366 /* Nonce */, @@ -9927,7 +9931,9 @@ static const uint16_t kNIDsInLongNameOrder[] = { 972 /* KYBER512_R3 */, 973 /* KYBER768_R3 */, 504 /* MIME MHS */, + 987 /* MLKEM1024IPD */, 985 /* MLKEM512IPD */, + 986 /* MLKEM768IPD */, 388 /* Mail */, 383 /* Management */, 417 /* Microsoft CSP Name */, diff --git a/crypto/obj/obj_mac.num b/crypto/obj/obj_mac.num index f05cb00246..bea973d162 100644 --- a/crypto/obj/obj_mac.num +++ b/crypto/obj/obj_mac.num @@ -973,3 +973,5 @@ X25519Kyber768Draft00 982 ffdhe3072 983 ffdhe8192 984 MLKEM512IPD 985 +MLKEM768IPD 986 +MLKEM1024IPD 987 diff --git a/crypto/obj/objects.txt b/crypto/obj/objects.txt index 35062e027f..79b0aa1742 100644 --- a/crypto/obj/objects.txt +++ b/crypto/obj/objects.txt @@ -1387,6 +1387,8 @@ nist_sha3hashalgs 12 : SHAKE256 : shake256 : KYBER768_R3 : KYBER1024_R3 : MLKEM512IPD + : MLKEM768IPD + : MLKEM1024IPD # OID for DILITHIUM3 SIG Round-3. These are temp values from # https://github.com/IETF-Hackathon/pqc-certificates/blob/master/docs/oid_mapping.md diff --git a/crypto/ocsp/internal.h b/crypto/ocsp/internal.h index 875f809d85..cbc44bc164 100644 --- a/crypto/ocsp/internal.h +++ b/crypto/ocsp/internal.h @@ -264,22 +264,11 @@ OPENSSL_EXPORT int OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx); int OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx, ASN1_VALUE **pval, const ASN1_ITEM *it); -// Parses ASN.1 contents of |OCSP_REQ_CTX| into a der format. -int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, ASN1_VALUE *val); - -OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, const X509_NAME *issuerName, - const ASN1_BIT_STRING *issuerKey, - const ASN1_INTEGER *serialNumber); - // Returns the internal memory BIO of the |OCSP_REQ_CTX|. For AWS-LC, this is // only used for testing if contents of |OCSP_REQ_CTX| have been written // correctly. OPENSSL_EXPORT BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx); -// --- OCSP compare functions --- -// Compares certificate id issuers, returns 0 on equal. -int OCSP_id_issuer_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); - // OCSP extension functions @@ -292,13 +281,6 @@ OPENSSL_EXPORT int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *req, int nid, // by its position in the extension list. OPENSSL_EXPORT X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *req, int loc); -// OCSP_BASICRESP_get_ext_by_NID returns the index of an extension from an -// |OCSP_BASICRESP| by its NID. Returns -1 if not found. -int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *bs, int nid, int lastpos); - -// OCSP_BASICRESP_get_ext retrieves an |X509_EXTENSION| from an |OCSP_BASICRESP| -// by its position in the extension list. -X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *bs, int loc); #define IS_OCSP_FLAG_SET(flags, query) (flags & query) #define OCSP_MAX_RESP_LENGTH (100 * 1024) diff --git a/crypto/ocsp/ocsp_asn.c b/crypto/ocsp/ocsp_asn.c index 6236ed1e0d..ebcbd30a72 100644 --- a/crypto/ocsp/ocsp_asn.c +++ b/crypto/ocsp/ocsp_asn.c @@ -101,6 +101,7 @@ IMPLEMENT_ASN1_FUNCTIONS(OCSP_RESPONSE) IMPLEMENT_ASN1_FUNCTIONS(OCSP_RESPDATA) IMPLEMENT_ASN1_FUNCTIONS(OCSP_BASICRESP) IMPLEMENT_ASN1_DUP_FUNCTION(OCSP_CERTID) +IMPLEMENT_ASN1_FUNCTIONS(OCSP_SINGLERESP) OCSP_RESPONSE *d2i_OCSP_RESPONSE_bio(BIO *bp, OCSP_RESPONSE **presp) { return ASN1_item_d2i_bio(ASN1_ITEM_rptr(OCSP_RESPONSE), bp, presp); diff --git a/crypto/ocsp/ocsp_extension.c b/crypto/ocsp/ocsp_extension.c index 890f06f79a..721333bbf2 100644 --- a/crypto/ocsp/ocsp_extension.c +++ b/crypto/ocsp/ocsp_extension.c @@ -37,6 +37,22 @@ X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *bs, int loc) { return X509v3_get_ext(bs->tbsResponseData->responseExtensions, loc); } +int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *sresp, X509_EXTENSION *ex, + int loc) { + GUARD_PTR(sresp); + return (X509v3_add_ext(&sresp->singleExtensions, ex, loc) != NULL); +} + +int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *sresp) { + GUARD_PTR(sresp); + return X509v3_get_ext_count(sresp->singleExtensions); +} + +X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *sresp, int loc) { + GUARD_PTR(sresp); + return X509v3_get_ext(sresp->singleExtensions, loc); +} + static int ocsp_add_nonce(STACK_OF(X509_EXTENSION) **exts, unsigned char *val, int len) { unsigned char *tmpval; @@ -80,7 +96,7 @@ int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len) { OPENSSL_PUT_ERROR(OCSP, ERR_R_PASSED_NULL_PARAMETER); return 0; } - if(val != NULL && len <= 0) { + if (val != NULL && len <= 0) { OPENSSL_PUT_ERROR(OCSP, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); return 0; } @@ -88,7 +104,7 @@ int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len) { } int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs) { - if(req == NULL || bs == NULL) { + if (req == NULL || bs == NULL) { OPENSSL_PUT_ERROR(OCSP, ERR_R_PASSED_NULL_PARAMETER); return OCSP_NONCE_NOT_EQUAL; } diff --git a/crypto/ocsp/ocsp_server.c b/crypto/ocsp/ocsp_server.c index 31afb710da..02c33ca415 100644 --- a/crypto/ocsp/ocsp_server.c +++ b/crypto/ocsp/ocsp_server.c @@ -10,8 +10,20 @@ // SPDX-License-Identifier: Apache-2.0 OR ISC // Modifications Copyright Amazon.com, Inc. or its affiliates. +#include "../internal.h" #include "internal.h" +int OCSP_request_onereq_count(OCSP_REQUEST *req) { + GUARD_PTR(req); + GUARD_PTR(req->tbsRequest); + return (int)sk_OCSP_ONEREQ_num(req->tbsRequest->requestList); +} + +OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i) { + GUARD_PTR(req); + GUARD_PTR(req->tbsRequest); + return sk_OCSP_ONEREQ_value(req->tbsRequest->requestList, i); +} int OCSP_id_get0_info(ASN1_OCTET_STRING **nameHash, ASN1_OBJECT **algor, ASN1_OCTET_STRING **keyHash, ASN1_INTEGER **serial, @@ -34,10 +46,16 @@ int OCSP_id_get0_info(ASN1_OCTET_STRING **nameHash, ASN1_OBJECT **algor, return 1; } -OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one) { - if(one == NULL) { - return NULL; +int OCSP_request_is_signed(OCSP_REQUEST *req) { + GUARD_PTR(req); + if (req->optionalSignature != NULL) { + return 1; } + return 0; +} + +OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one) { + GUARD_PTR(one); return one->reqCert; } diff --git a/crypto/ocsp/ocsp_test.cc b/crypto/ocsp/ocsp_test.cc index cf591d4b65..0da4669acd 100644 --- a/crypto/ocsp/ocsp_test.cc +++ b/crypto/ocsp/ocsp_test.cc @@ -946,8 +946,10 @@ TEST_P(OCSPRequestTest, OCSPRequestSign) { pkey.get(), t.dgst, additional_cert.get(), 0); if (t.expected_sign_status == OCSP_REQUEST_SIGN_SUCCESS) { ASSERT_TRUE(ret); + EXPECT_TRUE(OCSP_request_is_signed(ocspRequest.get())); } else { ASSERT_FALSE(ret); + EXPECT_FALSE(OCSP_request_is_signed(ocspRequest.get())); } } } @@ -1582,7 +1584,7 @@ TEST(OCSPTest, OCSPRequestPrint) { } } -TEST(OCSPTest, OCSPGetID) { +TEST(OCSPTest, OCSPUtilityFunctions) { // Create new OCSP_CERTID OCSP_CERTID *cert_id = OCSP_CERTID_new(); ASSERT_TRUE(cert_id); @@ -1590,8 +1592,14 @@ TEST(OCSPTest, OCSPGetID) { bssl::UniquePtr request(OCSP_REQUEST_new()); ASSERT_TRUE(request); + // Test that an |OCSP_ONEREQ| does not exist yet. + EXPECT_EQ(OCSP_request_onereq_count(request.get()), 0); + EXPECT_FALSE(OCSP_request_onereq_get0(request.get(), 0)); + OCSP_ONEREQ *one = OCSP_request_add0_id(request.get(), cert_id); ASSERT_TRUE(one); + EXPECT_EQ(OCSP_request_onereq_count(request.get()), 1); + EXPECT_TRUE(OCSP_request_onereq_get0(request.get(), 0)); // Call function to get OCSP_CERTID OCSP_CERTID *returned_id = OCSP_onereq_get0_id(one); @@ -1600,3 +1608,23 @@ TEST(OCSPTest, OCSPGetID) { ASSERT_EQ(returned_id, cert_id); } +TEST(OCSPTest, OCSP_SINGLERESP) { + bssl::UniquePtr single_resp(OCSP_SINGLERESP_new()); + ASSERT_TRUE(single_resp); + + // Initialize an |X509_EXTENSION| for testing. + bssl::UniquePtr ext_oct(ASN1_OCTET_STRING_new()); + const uint8_t data[] = {0x01, 0x02, 0x03, 0x04, 0x05}; + ASSERT_TRUE(ASN1_OCTET_STRING_set(ext_oct.get(), data, sizeof(data))); + bssl::UniquePtr ext(X509_EXTENSION_create_by_NID( + nullptr, NID_id_pkix_OCSP_CrlID, 0, ext_oct.get())); + ASSERT_TRUE(ext); + + // Test |X509_EXTENSION|s work with |OCSP_SINGLERESP|. + EXPECT_TRUE(OCSP_SINGLERESP_add_ext(single_resp.get(), ext.get(), -1)); + EXPECT_EQ(OCSP_SINGLERESP_get_ext_count(single_resp.get()), 1); + X509_EXTENSION *retrieved_ext = OCSP_SINGLERESP_get_ext(single_resp.get(), 0); + ASSERT_EQ(ASN1_OCTET_STRING_cmp(X509_EXTENSION_get_data(retrieved_ext), + X509_EXTENSION_get_data(ext.get())), + 0); +} diff --git a/crypto/pem/pem_all.c b/crypto/pem/pem_all.c index cade0a2586..95695b02e3 100644 --- a/crypto/pem/pem_all.c +++ b/crypto/pem/pem_all.c @@ -116,6 +116,7 @@ #include #include #include +#include "../fipsmodule/ec/internal.h" static RSA *pkey_get_rsa(EVP_PKEY *key, RSA **rsa); static DSA *pkey_get_dsa(EVP_PKEY *key, DSA **dsa); @@ -241,3 +242,41 @@ EC_KEY *PEM_read_ECPrivateKey(FILE *fp, EC_KEY **eckey, pem_password_cb *cb, IMPLEMENT_PEM_rw_const(DHparams, DH, PEM_STRING_DHPARAMS, DHparams) IMPLEMENT_PEM_rw(PUBKEY, EVP_PKEY, PEM_STRING_PUBLIC, PUBKEY) + +EC_GROUP *PEM_read_bio_ECPKParameters(BIO *bio, EC_GROUP **out_group, + pem_password_cb *cb, void *u) { + uint8_t *data = NULL; + long len; + if (!PEM_bytes_read_bio(&data, &len, NULL, PEM_STRING_ECPARAMETERS, bio, cb, + u)) { + return NULL; + } + + const uint8_t *data_in = data; + EC_GROUP *ret = d2i_ECPKParameters(out_group, &data_in, len); + if (ret == NULL) { + OPENSSL_PUT_ERROR(PEM, ERR_R_ASN1_LIB); + } + OPENSSL_free(data); + return ret; +} + +int PEM_write_bio_ECPKParameters(BIO *out, const EC_GROUP *group) { + int ret = 0; + unsigned char *data = NULL; + + int buf_len = i2d_ECPKParameters(group, &data); + if(data == NULL || buf_len < 0) { + OPENSSL_PUT_ERROR(PEM, ERR_R_ASN1_LIB); + goto err; + } + + if (PEM_write_bio(out, PEM_STRING_ECPARAMETERS, NULL, data, buf_len) <= 0) { + goto err; + } + + ret = 1; +err: + OPENSSL_free(data); + return ret; +} diff --git a/crypto/pem/pem_lib.c b/crypto/pem/pem_lib.c index 0c7152be92..01c6d6bca7 100644 --- a/crypto/pem/pem_lib.c +++ b/crypto/pem/pem_lib.c @@ -546,7 +546,7 @@ int PEM_write_bio(BIO *bp, const char *name, const char *header, goto err; } - i = strlen(header); + i = (header != NULL) ? strlen(header) : 0; if (i > 0) { if ((BIO_write(bp, header, i) != i) || (BIO_write(bp, "\n", 1) != 1)) { goto err; diff --git a/crypto/pem/pem_test.cc b/crypto/pem/pem_test.cc index 390b74938d..fb960f63c2 100644 --- a/crypto/pem/pem_test.cc +++ b/crypto/pem/pem_test.cc @@ -187,5 +187,81 @@ TEST(PEMTest, WriteReadECPem) { const BIGNUM* orig_priv_key = EC_KEY_get0_private_key(ec_key.get()); const BIGNUM* read_priv_key = EC_KEY_get0_private_key(ec_key_read.get()); ASSERT_EQ(0, BN_cmp(orig_priv_key, read_priv_key)); +} + +const char *kPemECPARAMETERS = + "-----BEGIN EC PARAMETERS-----\n" + "BgUrgQQAIw==\n" + "-----END EC PARAMETERS-----\n"; + +const char *kPemExplictECPARAMETERS = + "-----BEGIN EC PARAMETERS-----\n" + "MIH3AgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP//////////" + "/////zBbBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6" + "k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsDFQDEnTYIhucEk2pmeOETnSa3gZ9+" + "kARBBGsX0fLhLEJH+Lzm5WOkQPJ3A32BLeszoPShOUXYmMKWT+NC4v4af5uO5+tK" + "fA+eFivOM1drMV7Oy7ZAaDe/UfUCIQD/////AAAAAP//////////vOb6racXnoTz" + "ucrC/GMlUQIBAQ==\n" + "-----END EC PARAMETERS-----\n"; + +TEST(PEMTest, WriteReadECPKPem) { + // Check named curve can be outputted to a PEM file. + bssl::UniquePtr group(EC_GROUP_new_by_curve_name(NID_secp521r1)); + ASSERT_TRUE(group); + bssl::UniquePtr write_bio(BIO_new(BIO_s_mem())); + ASSERT_TRUE(write_bio); + ASSERT_TRUE(PEM_write_bio_ECPKParameters(write_bio.get(), group.get())); + + const uint8_t *content; + size_t content_len; + BIO_mem_contents(write_bio.get(), &content, &content_len); + EXPECT_EQ(Bytes(content, content_len), Bytes(kPemECPARAMETERS)); + + // Check named curve of a PEM file can be parsed. + bssl::UniquePtr read_bio( + BIO_new_mem_buf(kPemECPARAMETERS, strlen(kPemECPARAMETERS))); + bssl::UniquePtr read_group( + PEM_read_bio_ECPKParameters(read_bio.get(), nullptr, nullptr, nullptr)); + ASSERT_TRUE(read_group); + ASSERT_EQ(EC_GROUP_cmp(EC_group_p521(), read_group.get(), nullptr), 0); + + + // Make an arbitrary curve which is identical to P-256. + static const uint8_t kP[] = { + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + }; + static const uint8_t kA[] = { + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, + }; + static const uint8_t kB[] = { + 0x5a, 0xc6, 0x35, 0xd8, 0xaa, 0x3a, 0x93, 0xe7, 0xb3, 0xeb, 0xbd, + 0x55, 0x76, 0x98, 0x86, 0xbc, 0x65, 0x1d, 0x06, 0xb0, 0xcc, 0x53, + 0xb0, 0xf6, 0x3b, 0xce, 0x3c, 0x3e, 0x27, 0xd2, 0x60, 0x4b, + }; + bssl::UniquePtr p(BN_bin2bn(kP, sizeof(kP), nullptr)), + a(BN_bin2bn(kA, sizeof(kA), nullptr)), + b(BN_bin2bn(kB, sizeof(kB), nullptr)); + ASSERT_TRUE(p && a && b); + + // Writing custom curves, even if the parameters are identical to a named + // curve, will result in an error + bssl::UniquePtr custom_group( + EC_GROUP_new_curve_GFp(p.get(), a.get(), b.get(), nullptr)); + write_bio.reset(BIO_new(BIO_s_mem())); + ASSERT_TRUE(write_bio); + EXPECT_FALSE( + PEM_write_bio_ECPKParameters(write_bio.get(), custom_group.get())); + // Check that explicitly-encoded versions of namedCurves can be correctly + // parsed from a PEM file. + read_bio.reset(BIO_new_mem_buf( + kPemExplictECPARAMETERS, strlen(kPemExplictECPARAMETERS))); + read_group.reset( + PEM_read_bio_ECPKParameters(read_bio.get(), nullptr, nullptr, nullptr)); + ASSERT_TRUE(read_group); + ASSERT_EQ(EC_GROUP_cmp(EC_group_p256(), read_group.get(), nullptr), 0); } diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl index edda3a72c9..2d295d3201 100755 --- a/crypto/perlasm/x86_64-xlate.pl +++ b/crypto/perlasm/x86_64-xlate.pl @@ -1499,6 +1499,7 @@ sub rxb { \%define XMMWORD \%define YMMWORD \%define ZMMWORD +\%define _CET_ENDBR \%include "openssl/boringssl_prefix_symbols_nasm.inc" ___ diff --git a/crypto/pkcs8/pkcs12_test.cc b/crypto/pkcs8/pkcs12_test.cc index bb15f87cf9..2a78a9794c 100644 --- a/crypto/pkcs8/pkcs12_test.cc +++ b/crypto/pkcs8/pkcs12_test.cc @@ -184,6 +184,21 @@ TEST(PKCS12Test, TestEmptyPassword) { TestImpl("EmptyPassword (empty password)", StringToBytes(data), "", nullptr); TestImpl("EmptyPassword (null password)", StringToBytes(data), nullptr, nullptr); + + // The above input, modified to have a constructed string. + data = GetTestData("crypto/pkcs8/test/empty_password_ber.p12"); + TestImpl("EmptyPassword (BER, empty password)", StringToBytes(data), "", + nullptr); + TestImpl("EmptyPassword (BER, null password)", StringToBytes(data), nullptr, + nullptr); + + // The constructed string with too much recursion. + data = GetTestData("crypto/pkcs8/test/empty_password_ber_nested.p12"); + bssl::UniquePtr certs(sk_X509_new_null()); + ASSERT_TRUE(certs); + EVP_PKEY *key = nullptr; + CBS pkcs12 = StringToBytes(data); + EXPECT_FALSE(PKCS12_get_key_and_certs(&key, certs.get(), &pkcs12, "")); } TEST(PKCS12Test, TestNullPassword) { diff --git a/crypto/pkcs8/test/empty_password_ber.p12 b/crypto/pkcs8/test/empty_password_ber.p12 new file mode 100644 index 0000000000..3a87ebbb5e Binary files /dev/null and b/crypto/pkcs8/test/empty_password_ber.p12 differ diff --git a/crypto/pkcs8/test/empty_password_ber_nested.p12 b/crypto/pkcs8/test/empty_password_ber_nested.p12 new file mode 100644 index 0000000000..63671b0a65 Binary files /dev/null and b/crypto/pkcs8/test/empty_password_ber_nested.p12 differ diff --git a/crypto/rsa_extra/rsa_crypt.c b/crypto/rsa_extra/rsa_crypt.c index 0062ac2d8c..220e81c7d1 100644 --- a/crypto/rsa_extra/rsa_crypt.c +++ b/crypto/rsa_extra/rsa_crypt.c @@ -75,7 +75,9 @@ static void rand_nonzero(uint8_t *out, size_t len) { RAND_bytes(out, len); for (size_t i = 0; i < len; i++) { - while (out[i] == 0) { + // Zero values are replaced, and the distribution of zero and non-zero bytes + // is public, so leaking this is safe. + while (constant_time_declassify_int(out[i] == 0)) { RAND_bytes(out + i, 1); } } diff --git a/crypto/test/asm/trampoline-x86_64.pl b/crypto/test/asm/trampoline-x86_64.pl index 4ddbe4712e..355c934b10 100755 --- a/crypto/test/asm/trampoline-x86_64.pl +++ b/crypto/test/asm/trampoline-x86_64.pl @@ -140,6 +140,7 @@ sub store_caller_state { abi_test_trampoline: .cfi_startproc .seh_startproc + _CET_ENDBR # Stack layout: # 8 bytes - align # $caller_state_size bytes - saved caller registers @@ -306,6 +307,7 @@ sub store_caller_state { .globl abi_test_clobber_r$_ .align 16 abi_test_clobber_r$_: + _CET_ENDBR xorq %r$_, %r$_ ret .size abi_test_clobber_r$_,.-abi_test_clobber_r$_ @@ -318,6 +320,7 @@ sub store_caller_state { .globl abi_test_clobber_xmm$_ .align 16 abi_test_clobber_xmm$_: + _CET_ENDBR pxor %xmm$_, %xmm$_ ret .size abi_test_clobber_xmm$_,.-abi_test_clobber_xmm$_ @@ -334,6 +337,7 @@ sub store_caller_state { abi_test_bad_unwind_wrong_register: .cfi_startproc .seh_startproc + _CET_ENDBR pushq %r12 .cfi_push %r13 # This should be %r13 .seh_pushreg %r13 # This should be %r13 @@ -357,6 +361,7 @@ sub store_caller_state { abi_test_bad_unwind_temporary: .cfi_startproc .seh_startproc + _CET_ENDBR pushq %r12 .cfi_push %r12 .seh_pushreg %r12 @@ -383,6 +388,7 @@ sub store_caller_state { .type abi_test_set_direction_flag, \@abi-omnipotent .globl abi_test_get_and_clear_direction_flag abi_test_get_and_clear_direction_flag: + _CET_ENDBR pushfq popq %rax andq \$0x400, %rax @@ -396,6 +402,7 @@ sub store_caller_state { .type abi_test_set_direction_flag, \@abi-omnipotent .globl abi_test_set_direction_flag abi_test_set_direction_flag: + _CET_ENDBR std ret .size abi_test_set_direction_flag,.-abi_test_set_direction_flag diff --git a/crypto/x509/v3_enum.c b/crypto/x509/v3_enum.c index 3efbca52be..e24fc6b322 100644 --- a/crypto/x509/v3_enum.c +++ b/crypto/x509/v3_enum.c @@ -59,6 +59,7 @@ #include #include #include +#include #include "internal.h" diff --git a/crypto/x509/v3_purp.c b/crypto/x509/v3_purp.c index a7a4e888e2..fdd920f779 100644 --- a/crypto/x509/v3_purp.c +++ b/crypto/x509/v3_purp.c @@ -118,26 +118,21 @@ static const X509_PURPOSE xstandard[] = { (char *)"timestampsign", NULL}, }; -// As much as I'd like to make X509_check_purpose use a "const" X509* I -// really can't because it does recalculate hashes and do other non-const -// things. If |id| is -1 it just calls |x509v3_cache_extensions| for its -// side-effect. -// Returns 1 on success, 0 if x does not allow purpose, -1 on (internal) error. int X509_check_purpose(X509 *x, int id, int ca) { - int idx; - const X509_PURPOSE *pt; + // This differs from OpenSSL, which uses -1 to indicate a fatal error and 0 to + // indicate an invalid certificate. BoringSSL uses 0 for both. if (!x509v3_cache_extensions(x)) { - return -1; + return 0; } if (id == -1) { return 1; } - idx = X509_PURPOSE_get_by_id(id); + int idx = X509_PURPOSE_get_by_id(id); if (idx == -1) { - return -1; + return 0; } - pt = X509_PURPOSE_get0(idx); + const X509_PURPOSE *pt = X509_PURPOSE_get0(idx); return pt->check_purpose(pt, x, ca); } diff --git a/crypto/x509/x509_test.cc b/crypto/x509/x509_test.cc index 9cb794de16..6d78309855 100644 --- a/crypto/x509/x509_test.cc +++ b/crypto/x509/x509_test.cc @@ -400,16 +400,17 @@ diyu0fZ/bPAM3VAGawatf/SyWfBMyKpoPXEG39oAzmjjOj8en82psn7m474IGaho static const char kRevokedCRL[] = R"( -----BEGIN X509 CRL----- -MIIBvjCBpwIBATANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJVUzETMBEGA1UE +MIIB6DCB0QIBATANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJVUzETMBEGA1UE CAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzESMBAGA1UECgwJ -Qm9yaW5nU1NMFw0xNjA5MjYxNTEyNDRaFw0xNjEwMjYxNTEyNDRaMBUwEwICEAAX -DTE2MDkyNjE1MTIyNlqgDjAMMAoGA1UdFAQDAgECMA0GCSqGSIb3DQEBCwUAA4IB -AQCUGaM4DcWzlQKrcZvI8TMeR8BpsvQeo5BoI/XZu2a8h//PyRyMwYeaOM+3zl0d -sjgCT8b3C1FPgT+P2Lkowv7rJ+FHJRNQkogr+RuqCSPTq65ha4WKlRGWkMFybzVH -NloxC+aU3lgp/NlX9yUtfqYmJek1CDrOOGPrAEAwj1l/BUeYKNGqfBWYJQtPJu+5 -OaSvIYGpETCZJscUWODmLEb/O3DM438vLvxonwGqXqS0KX37+CHpUlyhnSovxXxp -Pz4aF+L7OtczxL0GYtD2fR9B7TDMqsNmHXgQrixvvOY7MUdLGbd4RfJL3yA53hyO -xzfKY2TzxLiOmctG0hXFkH5J +Qm9yaW5nU1NMFw0xNjA5MjYxNTEyNDRaFw0xNjEwMjYxNTEyNDRaMD8wEwICEAAX +DTE2MDkyNjE1MTIyNlowEwICD/8XDTE2MDkyNjE1MTIyNlowEwICEAEXDTE2MDky +NjE1MTIyNlqgDjAMMAoGA1UdFAQDAgECMA0GCSqGSIb3DQEBCwUAA4IBAQAuepA9 +byX4PkpJcYKb+Ofn6f/mgB4Sh1BBRp0HMFm7Q3jryXB6yPZYp7UtwAufZUzbV42U +kOifOtDyQbu+fcpnpb4D9oWoFlr4DGQ+n23wujHizoTEYhhcZMj4U5yooDfmK4lI +GU6zzQZKG+1PaS6Dm4f6+kA+ekVUP+ZVjPqHP/K7Uv6akSKV7gAWs49N5QjrJKMQ +3Igrbg4Et2ipaYgThGj8t1MUZdVY4UPtQ8oltSHkFEvH4PxOW/xKpHT4QQMl/WTT +QsQqOlRJBG2ci7pu1fzOylY35YFEAApkND/MkQjQfylNNgCzDWWAPQx0pDvVKQ0v +WXdfcGJRL1D3xRXk -----END X509 CRL----- )"; @@ -1740,6 +1741,86 @@ TEST(X509Test, VerifyThreads) { thread.join(); } } + +// Using the same CRL on two threads should be safe. +TEST(X509Test, CRLThreads) { + bssl::UniquePtr root(CertFromPEM(kCRLTestRoot)); + bssl::UniquePtr leaf(CertFromPEM(kCRLTestLeaf)); + bssl::UniquePtr basic_crl(CRLFromPEM(kBasicCRL)); + bssl::UniquePtr revoked_crl(CRLFromPEM(kRevokedCRL)); + ASSERT_TRUE(root); + ASSERT_TRUE(leaf); + ASSERT_TRUE(basic_crl); + ASSERT_TRUE(revoked_crl); + + const size_t kNumThreads = 10; + std::vector threads; + for (size_t i = 0; i < kNumThreads; i++) { + threads.emplace_back([&] { + EXPECT_EQ(X509_V_OK, Verify(leaf.get(), {root.get()}, {root.get()}, + {basic_crl.get()}, X509_V_FLAG_CRL_CHECK)); + }); + threads.emplace_back([&] { + EXPECT_EQ(X509_V_ERR_CERT_REVOKED, + Verify(leaf.get(), {root.get()}, {root.get()}, + {revoked_crl.get()}, X509_V_FLAG_CRL_CHECK)); + }); + } + + for (auto &thread : threads) { + thread.join(); + } + + // TODO(crbug.com/boringssl/600): Add a thread that iterates + // |X509_CRL_get_REVOKED| and a thread that calls |X509_CRL_print|. Those + // currently do not work correctly. +} + +TEST(X509Test, StoreThreads) { + bssl::UniquePtr root(CertFromPEM(kRootCAPEM)); + bssl::UniquePtr intermediate(CertFromPEM(kIntermediatePEM)); + bssl::UniquePtr leaf(CertFromPEM(kLeafPEM)); + ASSERT_TRUE(root); + ASSERT_TRUE(intermediate); + ASSERT_TRUE(leaf); + + bssl::UniquePtr intermediates = + CertsToStack({intermediate.get()}); + ASSERT_TRUE(intermediates); + + // Some unrelated certificates. + bssl::UniquePtr other1(CertFromPEM(kCRLTestRoot)); + bssl::UniquePtr other2(CertFromPEM(kCRLTestLeaf)); + ASSERT_TRUE(other1); + ASSERT_TRUE(other2); + + bssl::UniquePtr store(X509_STORE_new()); + ASSERT_TRUE(store); + ASSERT_TRUE(X509_STORE_add_cert(store.get(), root.get())); + + const size_t kNumThreads = 10; + std::vector threads; + for (size_t i = 0; i < kNumThreads; i++) { + threads.emplace_back([&] { + bssl::UniquePtr ctx(X509_STORE_CTX_new()); + ASSERT_TRUE(ctx); + ASSERT_TRUE(X509_STORE_CTX_init(ctx.get(), store.get(), leaf.get(), + intermediates.get())); + X509_STORE_CTX_set_time_posix(ctx.get(), /*flags=*/0, kReferenceTime); + ASSERT_TRUE(X509_verify_cert(ctx.get())); + ASSERT_EQ(X509_STORE_CTX_get_error(ctx.get()), X509_V_OK); + }); + threads.emplace_back([&] { + ASSERT_TRUE(X509_STORE_add_cert(store.get(), other1.get())); + }); + threads.emplace_back([&] { + ASSERT_TRUE(X509_STORE_add_cert(store.get(), other2.get())); + }); + } + for (auto &thread : threads) { + thread.join(); + } +} #endif // OPENSSL_THREADS static const char kHostname[] = "example.com"; diff --git a/crypto/x509/x509_trs.c b/crypto/x509/x509_trs.c index 680f6d651e..95daf46657 100644 --- a/crypto/x509/x509_trs.c +++ b/crypto/x509/x509_trs.c @@ -67,7 +67,6 @@ static int trust_1oidany(const X509_TRUST *trust, X509 *x, int flags); -static int trust_1oid(const X509_TRUST *trust, X509 *x, int flags); static int trust_compat(const X509_TRUST *trust, X509 *x, int flags); static int obj_trust(int id, X509 *x, int flags); @@ -82,10 +81,6 @@ static const X509_TRUST trstandard[] = { NID_email_protect, NULL}, {X509_TRUST_OBJECT_SIGN, 0, trust_1oidany, (char *)"Object Signer", NID_code_sign, NULL}, - {X509_TRUST_OCSP_SIGN, 0, trust_1oid, (char *)"OCSP responder", - NID_OCSP_sign, NULL}, - {X509_TRUST_OCSP_REQUEST, 0, trust_1oid, (char *)"OCSP request", - NID_ad_OCSP, NULL}, {X509_TRUST_TSA, 0, trust_1oidany, (char *)"TSA server", NID_time_stamp, NULL}}; @@ -155,13 +150,6 @@ static int trust_1oidany(const X509_TRUST *trust, X509 *x, int flags) { return trust_compat(trust, x, flags); } -static int trust_1oid(const X509_TRUST *trust, X509 *x, int flags) { - if (x->aux) { - return obj_trust(trust->arg1, x, flags); - } - return X509_TRUST_UNTRUSTED; -} - static int trust_compat(const X509_TRUST *trust, X509 *x, int flags) { if (!x509v3_cache_extensions(x)) { return X509_TRUST_UNTRUSTED; diff --git a/crypto/x509/x_crl.c b/crypto/x509/x_crl.c index fd0752d5fd..fe78c0c6ed 100644 --- a/crypto/x509/x_crl.c +++ b/crypto/x509/x_crl.c @@ -63,6 +63,7 @@ #include #include #include +#include #include diff --git a/generated-src/crypto_test_data.cc b/generated-src/crypto_test_data.cc index d98b091311..5e517143be 100644 --- a/generated-src/crypto_test_data.cc +++ b/generated-src/crypto_test_data.cc @@ -86,6 +86,7 @@ * crypto/fipsmodule/ec/p256-nistz_tests.txt \ * crypto/fipsmodule/ecdsa/ecdsa_sign_tests.txt \ * crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt \ + * crypto/fipsmodule/kdf/test/kbkdf_counter.txt \ * crypto/fipsmodule/kdf/test/sskdf.txt \ * crypto/fipsmodule/modes/gcm_tests.txt \ * crypto/fipsmodule/rand/ctrdrbg_vectors.txt \ @@ -101,6 +102,8 @@ * crypto/kyber/kat/kyber768r3.txt \ * crypto/kyber/kat/kyber1024r3.txt \ * crypto/ml_kem/kat/mlkem512ipd.txt \ + * crypto/ml_kem/kat/mlkem768ipd.txt \ + * crypto/ml_kem/kat/mlkem1024ipd.txt \ * crypto/ocsp/test/aws/ocsp_request.der \ * crypto/ocsp/test/aws/ocsp_request_attached_cert.der \ * crypto/ocsp/test/aws/ocsp_request_no_nonce.der \ @@ -194,6 +197,8 @@ * crypto/ocsp/test/ISIC_D2_Issuer_Root.pem \ * crypto/ocsp/test/ISIC_D3_Issuer_Root.pem \ * crypto/pkcs8/test/empty_password.p12 \ + * crypto/pkcs8/test/empty_password_ber.p12 \ + * crypto/pkcs8/test/empty_password_ber_nested.p12 \ * crypto/pkcs8/test/no_encryption.p12 \ * crypto/pkcs8/test/nss.p12 \ * crypto/pkcs8/test/null_password.p12 \ @@ -5874,24 +5879,34 @@ static const char *kData71[] = { "nvalid =\n\nCurve = secp256k1\nX = 9b7b993ba3b85662957c32dfa0708ddc923d9bc8351fffe011f08a6dc49ba91a\nY = 037ea8412a78c52314615bdd6cdd53d7f4248217378aee9df7fd476ecca3c306\nDigest = adbb36e2d528cfa55aa000e39cff0d325966c6f9a17b673b6dea25c99c51a0e71bdd02076544f848634ff2e109d0f09a\nR = d423d2515734a5699401452991cd8f929b379793e4d8d379dd44b9174b9cef3b\nS = d17ffc3b579466c17d962882a7e26e4f478b1324b52a01c0e3627c40eaa808e7\nInvalid =\n\nCurve = secp256k1\nX = 48ed7d9d5c75f82e6d550ab9fc42152eedf0fc2e682e3410f2583077c940ee2d\nY = 5c644b2ede3b6e4f2f5a3b9098d209880c83e6dd58b2fe108fb0f729aebbdf2b\nDigest = b64d60f1946f62492e8b4f1fc2bdcc47d8acd93525217213d25145b4adda62b61863aad2d111eb7ece6ed5620001f86f\nR = 46f9283b123ac5612273584cf33c7060ff0a5178f572019486c0ef807f1829a3\nS = 3c06af5f2dfcdc201c8d18b20c26ebd28bb14879ba1c957a7bf661a3fd97d5b9\nInvalid =\n\nCurve = secp256k1\nX = 8d1511f0034bfcf0cc660fad4235a9c88e6b46c6ebd4560cb2f894e0f520f854\nY = 0d1ba373ed0f5f861a15ebcf266dee6899d526a941ef4d1ce7c95a155a6eec44\nDigest = c2427651830f2705f8fa18c438c6875878ffd9a15e2eaf5a257047cada340680efc1e73f4f8893c1bbe99b47caedd2cf\nR = 2556c4fb79f281ee0f0c0ff2a705cc4c2bed9dfa5709ef8374eb0e81b92fe15b\nS = d0b33bf3c8ada326ea51a950cb07119dd3a5d07a5ca774a90cddd9e8f612ddff\nInvalid =\n\nCurve = secp256k1\nX = 7efc935dd9cfe0dbdc611fc3218701c574019022f7db5f25b3cd89922e8e7368\nY = f3bfea51ded7a0c493c8cf0e3c71d53b5b3fd97cbfc579430c7b33c8e669bfa1\nDigest = 778a1fb89525c831c21d4e1f1cc831af6fd8e8b937c5cd95e6ebe13d26a267f7a3b7b2a0351220f4e112ba29c24875b1\nR = 116dbb1d0894acc20694c35bd431a1f27320cbbdab89b3ac699c21c49ef5c7de\nS = e99a0122b34cc4b560f05a751b9cbec5eb5751467121c254eb547207cf575c2c\nInvalid =\n\nCurve = secp256k1\nX = 718a4f3f347acedbccc2721ed1fd4b4f54039d8639f611176fc03022701ab22a\nY = 2f4d85bc691414715902fa3f6a689e903cc9943ae5fb88aefd376535b64f67a7\nDigest = 05672a6238ed82aa8e8a5d484f980c5772cb6ea9773fe7d05d0129bce2c92c00ed69a2edcb23a06cb65236fcf61543cb\nR = 09417018ac9ce2e586594a2ddf57f1fa92aa579f51054439eec4cb5e4b2b6121\nS = fe3a8507229790f6e9db8f4eeb7d9235caa808876a425e9f8de1f7b5b0143302\nInvalid =\n\nCurve = secp256k1\nX = 5dee1e763810d7d705705c18ede40f7e316180dc71a9652b257e5c95e01f2516\nY = 35733de959e74b07ff82ecc0c7edb7b5d0e91763cca25217c416f9b19b419528\nDigest = a1aab701a8bad12a09b872b46b276f6e32fcbdc2fb93860dba12a0c1f4a6fa77c156849d6049004254ff228d00488ed5\nR = 140cc67b09851fab40751e8f8eadb40dbd09e2cfc5306b5dea514410f64b53d7\nS = 0ae47ad236e90162e3b6541033840d2b6f4a6e605f09cf2d5b9780698f21aac4\n\nCurve = secp256k1\nX = dba79f80b678d505d72eee12ac13fa95b2c60612f2b7aac7e8982789cb0ac860\nY = 9d47707f14de95bf394f98e042c0640e26f9250d50894f91919cacf5baadcaa1\nDigest = 4228d1cc1754f95075859af8e8c28039c9c94dd62cfc0231c350828d6ea9f4b8359d157720bef239bb4d70c079df13cc\nR = 04736f61b41fb206b8b42cb350f90272383c2a990c82b8432ebb826c2d4017bf\nS = fbd2b3e299f5988c03be1edb301905f3797acb2f7543dd8bdaa9697030b31447\n\nCurve = secp256k1\nX = 9a6e7e4526bbb8ffb5727f4bb199508759a180b1f6b47bc69d5ae16a88fbecd8\nY = cb64a914c92111c56e553c24e30821b2419dcc2eff121a94a887605f3d20238a\nDigest = 8eb63e78c2e5f6beecc541ce20452110fc19cfb453e59b484301c4229416012b8e00232776df7563a66d52654909b449\nR = 92c4e8a4de9f4d2ebfaf9560ac4c5e7aba27329e12856082e68d555f1d51eb59\nS = 6c39123388c50803c9f43fc641eec6abee7ef60d180b9b665446d7bafaeb0c0f\nInvalid =\n\nCurve = secp256k1\nX = 617b67572089bd813818db014a77f7a0537842e465e0ab2c23ad112ecfa38ba0\nY = 4bbd9aa5d0f48ce8faf580d06609d84575014b61b78237bf5be9127fcbb7b5c1\nDigest = e2d8cf47feb3dc7111e6e68b01676025c9890620c07931f88abd0633af68b78d83c58cff825adb5c55b8309d6d01aa96\nR = af95d817a32a48ddb5231e1662cf27a74bbaaf49709350608fa86480be3fa00c\nS = a97d396f7229d2ce35749e6ba966a6e4fff7b57ace61ad55705934c3cd3557c4\nInvalid =\n\nCurve = secp256k1\nX = 95b6eed0c044602787fbee9fe73e599ed9686485e47f6817086b9e651039cab5\nY = 173679d75e4f00371c3d9de3bf39dd5f92075d7e49a779039ab91a6b942329c7\nDigest = 67f5556ddd9574cb8e6423e39d6cc04c4d0bf0f825de92b052a5a22e0ae4ca57c12fd404c16055538e37db29633269b3\nR = 60bf5f9d70d7a24c4ca37840d16d7c6b4649a59d89cfdd949912b332d294898a\nS = 9e8a36667687011719ba3c79d0484d67df88f0991c6fb339d8221ddd94deb9f8\nInvalid =\n\nCurve = secp256k1\nX = ad1ce18541ec8aa3e2f53445a45bb028f8e6bb2b09a4991d4e4bc41f8c9546d9\nY = fd55500bd33397dcd08b21902f49d9df4041b2d777574446a71a7e123f58f4f5\nDigest = cce739bbb4147a9502886d7f8bc709c16ab9f44096c58c96c64eaef4d9798dc886f1b1fccd84add17e37452d125e5ede\nR = 15cab9c987f3ea545a9801c44ef9c1bdc533aebb8cd6456ec914df159a0bf317\nS = 1cb90cef0c1a5c972715133b8af8a3765687b3f1fe73a55b00876caceea400bc\n\nCurve = secp256k1\nX = e6314782a8884ae12a97e9bab71ce12e841825ca3ccae0236b1e0ad83897f4c1\nY = 2472dfe67fb77ea40b686547ea9f5995504dba6988140d1364b25b374d8beff4\nDigest = 2a970bbed85c778998e129f9c9d9694d4d59d62593421c2d9a8db1e66ec83a63844e8ee26cab7e63b7009c520a88558311734ebf0d8f63ad8660790203c1ff18\nR = 6ced0a0122c90756dacce78a9815f17cc48756125e28e00e63311825e17d2847\nS = 9abae278f47bd2e02e7ca21577e0155243275abf432c4e5ae7417c4a6aecf6f2\nInvalid =\n\nCurve = secp256k1\nX = 12b1105f7064849d9bd25133effbf706627928e60a3a979cda1e69bf91fa3efb\nY = 51683ce7c0313f6c27ad72fe6485727074f6ceea8ae2cc26ba202102556cc509\nDigest = e8862782c9d1cf4522442d5ea7d5f4bc35cc3521c421d1b9ecfa085c5ccaea2ca6375580e6f9a7635a5bd717b3a04b45deb94b3eae0d3603d6dbe24ce8da1111\nR = aa741ee8c2de4740b10b2f20076611e2e07ce513a9cb9f2e5f19b6dfa7db1946\nS = 13c9daf8ca2efc93ff922ae5fdb980fe1e93beb0c4a46dc5fe6b57bab5e77610\n\nCurve = secp256k1\nX = 29d70470da04016fbb04d727f574d8486d2093ce1088b29b6cadab409dcab85b\nY = bfdd76c8fa25bb84787955aca222372ccbeee09e95b7d7aea1d1c466e4774565\nDigest = 9dd5b78413f3836d7ee41a6ed9b84981e98f63a2e708cd3eaffcae92e71976f583c164fff08d372a38b6faf3c0f1afb0c67e05a258cbe86d4f50f9df77eef05e\nR = 2853eb7667bd6a32bd05636616a3a98d4214522a6a242e0c3f4e0297d50aaa41\nS = d73a4c318fe2d9bf3db25feb89d17ec19f92aa34600061a7ac4c34a6591a85cc\n\nCurve = secp256k1\nX = ebeec13d218dda5f2a23ba2f83889adc7151f13c410d3be3471bbdc0b724aa63\nY = 5a44607a4e6b5ca85102ff5bafc586a9bf991bcaca9a71399b6185d81daefe01\nDigest = 6ebc402045f8a5c00ab8f1adf2f1556361778356fc420d557896c699421742f9028aa6726b50634fc3d7460a07f966b72a1f5b6cf2e95db8c243a51577c47ded\nR = bf053911506cba59303dde75e60bc9e4b9555ae2359fd0d8fadecc9bbdefc488\nS = 8d55864592b534fb82318269f40aa53c9c93205d950e1d4ffbed8b4d91548408\nInvalid =\n\nCurve = secp256k1\nX = 35a100b5b858ccd8dc3d0446cbe5f1901b3f3285392ede47b20a24577823bbc8\nY = cc64a03cb0c295fb7a168da09e6f7ace2fa6c9f4365d9a099ab290867883e2a7\nDigest = c3267288fc34ef16c703164473150c5c5d879a5db2e26e98388274a15679393309c9f73ebc963d1a4dbf89908cfa4ff63f900462c6cb6de4ef7669c95da35503\nR = 9c50c85b97f558fdc331ea3ea4e2135630342b6963953316f39c73c226b78d65\nS = f11d762687f954d51d503af09e0a8fa6bdb19f22d7d2e8b1c6ed31657619330f\nInvalid =\n\nCurve = secp256k1\nX = 9f8fd3083ecc2748570bbc2747448596056854abf9a5f9c6f01e6339e69d334e\nY = 576b6936946a73b4fc9a2598287260bcbefdae0cd12bf0f894e0104f48626e43\nDigest = 70b146db3e884304a098e3e06ca8ecb8f33fd27eb607b99a6ace582799455f777c8aa58e93ecfbf75529c741ae9b8bfe03625197630b91a5351e3d4198b6af7d\nR = d36e7dd8e2ec9fed7134abcd1f319e1d66161a162008be7f4a984fd92f8a435e\nS = 0451340f6a2fed462ccf764766e4c4997f61a8a4e4b01e0e963e76e98f396ae6\nInvalid =\n\nCurve = secp256k1\nX = b7985293b965abcfca79c3d2b984615faed1b430d6af760afeb6d6ff6b01eecb\nY = 4e12dbb2604cb2adade9d2b194cb5d6a4e40928805b8b1b3c75a1ed88ada8a5d\nDigest = d4162198edef3f3a80d75e1574388474c3030ea5d60cfd03072f9c195d44e28679686c06a9f6fe87a5896961386225601b5a94b1d4c6a6a668016ec5e87d563d\nR = dcf1ab28090bec4f38bd2ba40ea793ab5e4e83e707813816918457cba760f209\nS = 358a5dd20720c38c857eafef790debca4173e01a8db9b3b08d696e38f8cbf33d\nInvalid =\n\nCurve = secp256k1\nX = e42b7345962623d6727b61ff01973fb6ab7bb871019ed2f65f3f2d53acb0fbd9\nY = 6aee6ef0680591673a6081f6ab3d76afa78fe2ea0c58cf8985930154b7ebfcce\nDigest = 1b0ab7469792f2d7bfd416143adddefd0a184f63c55e3d914e0294d7f7d18bd401ca1fbf24332d36d28508a10e02d95ba02464cb295a4bbb99e7ce8f44c8eb9e\nR = d78af41883031e8f41884af2bdf9c6af6f22187db8218ec415f83d9f872134ed\nS = 660248da7c76b0e67d178fd9ea09f1085fc8195ff7cc596fb81d5f00ec49f7d8\nInvalid =\n\nCurve = secp256k1\nX = ecde189d62285e20daca54cf5c46bba0d3c8a6f2d78d936de78922469cf255be\nY = dfa9462a7672be14d740beaf4c9d7d08fd15bd2c38650d8393b1cba76c8dd3b2\nDigest = e6", "d808edd7b61b73931757994bec2e96bc66d0e75774e1d7d0bb3740cf94213513e086f1ec97491689432d56418192b35f50271dacabb0774d97a9ae25bbe32d\nR = 462d150c45029a313477e56bbee4a5727f09f20c260b69032938264df02d84ef\nS = d5f67f36113a1456d41d9b952b19c163757ffec6a53df81245623117bb48490f\nInvalid =\n\nCurve = secp256k1\nX = 0fcd57afd513475da7a607c4869c4cc38c78f586953f1091e72e995d35784856\nY = b7bc8a52ce86f41ccadb8d72c6ff837bda78fbaf456b331c77ad198531816224\nDigest = cad0512da3e255c36fdd26a7123436ceaf42979ee53e7f02397444a477c7bad35285c74d1bdde0d24a4335e8f6242047b19b71181f4806a5be9b5230a2bc8b4a\nR = bd2cacdf71c5193c68ead184fd9965ade28f66bee7d85fdc051173a31345e7d4\nS = 254d5769620b17daa9f2bcfa62d5c5e3082ef3fa5e6684762221798878d4ec2b\nInvalid =\n\nCurve = secp256k1\nX = e4310fa037e4a0390cbadb3150f35ed16243bf358bb1456ad9462e933c874a13\nY = e7f852d48a450894dd7bbe7e79a045f89d1784a698de5bed397e3568bf91367b\nDigest = 4ebd58cf7b1c8f550bb8da80e083f4850be72a789075e9f1a7ecf836cd599d0043d5faca1e9b77bfd7b2242836b9bf11b0f534009f5034871349ec7a40428a5f\nR = d1f85c51d2b2e1c113f72300b349fdfd68febb912f9b5ebbe02c2b09b8b23f24\nS = 06b265d770e5701319a7d5e2a4c505b882ca348ee72dcd67793e38f2cf7f02ac\nInvalid =\n\nCurve = secp256k1\nX = 53da65176353938b8a77abc0868734521e0a133f7c78e43891ab83dfbb404868\nY = 4999a2a869e2f87484e55f6fd3ce86eaae9504d9044e26634bf3043546341eec\nDigest = 12489530fdde9313cfed3c2ded5460941e262516b2e57cd5644a009ad431ea4697310d0d12cf3407e4cf87b969f74b0a4c781bbbfa206629d0201e9f14429521\nR = 1251b3d5f202122f0fb16b6ab72e3d9fe20a099cdd794eed1ad299187e831e4f\nS = f9c4873d8fec5c99ac428b020936346a45244551c265fe4282db1f442f0b1960\nInvalid =\n\nCurve = secp256k1\nX = a2f1a28a07cad2a57fe1a4fd8407675ecc7f2ee5788ac7ddc03f45345db22a56\nY = 00a8a4b6141f93823402f56bc257e767ea5fbf0c35129294df1172947c347da5\nDigest = 01dc41259f8ab7d606d3a0de895df56ffc5e88fca4e510898a2726c58e156543f21382d4fd68e053f24bb7d5729556591397708f8d6b7a67bfc08841811b7a80\nR = bc6e2101135a855bf90ba4a472a0c1c439d0789fc7df72d71aefe65489a667fc\nS = ea80fbeeb9a9d02c6bef928978e8f5a1e3cd1c018d72e3e0222fa4eb76759290\nInvalid =\n\nCurve = secp256k1\nX = c26a515a07ce011c532fe0d4676b1f0e52722c9fef084dcb659988d4406fd957\nY = 792c9f2523dd47b4810a73c6918279fdb4d7370eedc098fd791278018b060fc9\nDigest = 1972f6930529b069ef8a810ee799045f543d140ab9051f3b4e77d04a947b0cc6699089041ee70c39dfb9dc974f56e5d0718c259d317936117351d17bca862e35\nR = 47aaeb8e4da9a35f7bae48a461f7cc3ad5c35a1194bc783a84fdbeb1eb7acf25\nS = 95151491fa604fe3bbe66e606692b2cf1d86d97133d1db6fa9f9b4af0489810c\nInvalid =\n\nCurve = secp256k1\nX = 44aae91adf8fe36b7db076b285561b434e2fc8a209f5ed39b88f4c9eac903967\nY = 8bfface0a2ccf84f5b4a7385e7e09135278e1df259d5a4a36585ad45dcaec5f5\nDigest = 5874bb5ed58550e92f513cc89301680bb820f80045661e8bcaf83846319b785f9982822770fcc7ab96be443cf1bede2659291b68457e6eff787b5872421909d6\nR = b06c721c236de3208161d3796b5c95521592a6febff8783bc059cb303c9715ee\nS = 062c1cad8ed4d84f0aba72796ef94ae3f925b9a498e02f90ebdfff5bf9f382be\nInvalid =\n", }; -static const size_t kLen72 = 38595; +static const size_t kLen72 = 46600; static const char *kData72[] = { + "\nHASH=SHA1\nSECRET=F7591733C856593565130975351954D0155ABF3C\nINFO=8E347EF55D5F5E99EAB6DE706B51DE7CE004F3882889E259FF4E5CFF102167A5A4BD711578D4CE17DD9ABE56E51C1F2DF950E2FC812EC1B217CA08D6\nEXPECT=34FE44B0D8C41B93F5FA64FB96F00E5B\n\nHASH=SHA1\nSECRET=47EA5D00826F111BFA468E899B0CA3FDA7C8336D\nINFO=DBED14156E1826AA1D4D66469C64A32571701131B27A8C595E8C0595665478FCF1B95C76AE997DE6184C919F4B810D588548508CD4C457A541260725\nEXPECT=7DE374B5EF7240FD425B7CF7C54C29F4\n\nHASH=SHA1\nSECRET=3B16654E2E89FF4ACC57A6C5C8AF8064807804A6\nINFO=05E16ED1B560C4C9C43267F12EE454DAFC0161BEDCE1A7D371EC17426D081EFE54AF8C2F2566D4EEA38AABAB91FB98FDBE16CCB6B114D677BCB00C66\nEXPECT=1D29A3D2499E9473DC62544D830BA773\n\nHASH=SHA1\nSECRET=57E9FD6E0C54C90065593B44482342F2EA72C128\nINFO=BBBBEFD47C997609C4522F64BC94A028A5C55C471181C74FEF5A539BA3BE77674B4EED9BB5EA0995B162027164E38DC63CEEB0CE6F5E7730EBE3471A\nEXPECT=9691F99B94F20F9C548276DE4EAF0665\n\nHASH=SHA1\nSECRET=F7CA5241794B7E6BB242414431B04C704F00E018\nINFO=124690EBFAD3486989A0AE06A080208273B0A23FD5B706B4084A059AC769E7668E6C7A652E155B5EBC4A8325D70C25C73805346FD269FAEC8937483B\nEXPECT=81369F6D72726BE58BE6429DEED8A4CB\n\nHASH=SHA1\nSECRET=B279F2098A21F15D34B2EDD452ACEC93985751E3\nINFO=96A4CAA2244B55D65448C1B701D3A1A6B6FF7DDDE45777D04B84944035E4A6C37B156B8D504C8B039F68E78EB98D2E1AE7BD9A137E3576206883E427\nEXPECT=4F9443CE7C76B8B7752ACB18B2F9B060\n\nHASH=SHA1\nSECRET=5A720D9E92E76E47D7A63B94BDCCE70A1E2E45AD\nINFO=EB7BE6F431C40C9E9A4AC3B2D511D7BBDB9B0E42AB6988A28D2333263EB86587FDE8D7E5F733E204627AAEC5CE5C7A83603612341B706C0F6B1EA95F\nEXPECT=8164B4521BC9F09B8F4663762CF55B7E\n\nHASH=SHA1\nSECRET=433B7E6742BBD8040F7BAAA7882EB3BD9E9408B8\nINFO=67E84ACBDC0CBCA9C176A11CE6AF5F849AA17ECF97349DEF6B69F79C149FA4094630DAFC76BC69A66F1C68EB249C1DE2674A681AC0E2522BF5E760C2\nEXPECT=84D2C95EEEED9AE098800F337316E2A5\n\nHASH=SHA1\nSECRET=C67BC860F8D775DBDE482B02918FCBA9C21DDAD0\nINFO=26D73E0BCEFB7E1EF62B675C263B7905B86B3DE8E923E40DDE9BA8A05DDE67C963A732A42281DAA93CBB76AEC6FE8D583C0A7DF035F8207E2E72082F\nEXPECT=98E53AECF42D67E92861C2951D9D4F67\n\nHASH=SHA1\nSECRET=88A2B39B436A45728838014D445F162FA9FD7B0A\nINFO=F6647876BF617132A07C5C1B49A28EEC3C2B6A1074FD5142AAE132D533E4A172CB166EA89B7CB1CDD164C6FC7F254A06035B2B1D28AC45FF0871AE04\nEXPECT=37808EB40AF34454AD4DD6750BDC8E73\n\nHASH=SHA1\nSECRET=C1EFB8D25AFFC61ED060D994FCD5017C2ADFC388\nINFO=B92FC055057FEC71B9C53E7C44872423A57ED186D6BA66D980FECD1253BF71479320B7BF38D505EF79CA4D62D78CA662642CDCEDB99503EA04C1DBE8\nEXPECT=8DB784CF90B573B06F9B7C7DCA63A1EA16D93EE7D70FF9D87FA2558E83DC4EAA\n\nHASH=SHA1\nSECRET=7E925CDCBC2FD5B3213CBA7714CB71D359936109\nINFO=1F95A577958981B7477CA2A71D44E66564E5A56D8189542718EB1ACE81436E16F4158789A46D19D4384E15555BC3B4FFA10B5471AC33BF904982F49E\nEXPECT=557B5E1FE770B4C76EA0CCD31F5C1DD4FFA0463A8CE9FA04F7F5D1AA53380043\n\nHASH=SHA1\nSECRET=98B6F0B4B7A822E8F567A32D27FEBDA9E46217D3\nINFO=E08A61238719B21FB5F6361F215EB5A5603233BF73A101F32F0963974C0117FC22D024D8193F19FE095CC873AFC7B89888CBE41762E7AB6E8B783A00\nEXPECT=5504793A62976E77B1F3F8BBEBC5854E1538FA002A98AF5B935D9850B65F9A61\n\nHASH=SHA1\nSECRET=BA3E6131CF924C0E67BE01205DE07CC8C77CB94D\nINFO=9D13B23FEDB18BAE4DFCF8C3F6070E83EA87A1ED20A4013737229E05F6C1F8F26B384A2CEDA37D632595156ABCB2120BDE03CC3AE9F3E58BCD9AE525\nEXPECT=5A4841A14A12F04C65AD5E60C9F10E4CED3AFE9EE10AA8AED66BA629D86E213C\n\nHASH=SHA1\nSECRET=5A3B55D4A4897A1F5AD4A3A5E2259CCD7B2FF62F\nINFO=F02EF61961BE2DEFC3CB9064F30F9FD7CA80174AD3F60E02DD7B64528B6F4018029864555D3AC03E4215CBDDBFB4F258A26BEC46507A9CFE055437F7\nEXPECT=CB09826916E9B73BDDB6BF25E6CAF5B6856F88D51DB351FD8315E29088985921\n\nHASH=SHA1\nSECRET=7B9167E2F62F379659AC044F450AEF7BD5E938C6\nINFO=F433E8F177D8FD5743ED5990A8A0EDA19AAE08DB11DB6F82E4E1DEE67D699F9E11D29D6D7DA8F06EB7E973F3A133FD54C0E40A445B5803D5AB366537\nEXPECT=44BBB6978694B107716347D6C674A634597CFC51A825B19C236DF68C3F409884\n\nHASH=SHA1\nSECRET=6F9D1E92A8F155C2C71CA9D6860FA4DED3B5E01C\nINFO=D2EB8E67B3118569162850CD849732242C2918554C4CF861948168B8DB783D45BCFDCEDB55BA9AC90E3914328333B5F12CD5548EDCB11E8BFB3F405F\nEXPECT=CF4E88BB3231F905E403653FE9661836A325A00A3914EBE1923562505A1F00AE\n\nHASH=SHA1\nSECRET=8B20D1F259C52CE5AEB06A824966955110145A8F\nINFO=43D9DBBF085414BEBBCAE8AAF890AB14A90FD925A582B010F9C3A08A3E10A897CB5AE809982C558B65F7C15FE7A316D5417F26C273075CAD5701D15D\nEXPECT=4E2338976E7832F16FCDF06FD3DC4BD777D170CF56F6A8E2117435CF05D2B5F8\n\nHASH=SHA1\nSECRET=693B557C8FD4054A8176CFC31B681815DBE07180\nINFO=8E948A3451AFD83B6041576D959456BAC97B9F93A3D133198CDA273D846F7B8BC9AFD19B8320C3C50859C292EBF967D88EA09124B333B1443163F18C\nEXPECT=359B213884B0AA5650353A53FCBFBE5B0E0014F367CC2D430D7C437A3C09326C\n\nHASH=SHA1\nSECRET=FFF0FEE2364B5596F7388EC0021DDBA8CA94FB20\nINFO=5E40CEAFED97475454F581ECB848BAD010AF0D6783B32CE86BEC57AF6E5F05D6C731911F526ABAF49596D5FF0B29C20BBF7B849ECA058B1EABC60D64\nEXPECT=4BF749512E8493F2BAEC602BD1FB1DF841CC92496BB28C05363F77A4F2A54BA8\n\nHASH=SHA1\nSECRET=E02BA5D5C410E855BBD13F840124273E6B864237\nINFO=B14E227B4438F973D671141C6246ACDC794EEE91BC7EFD1D5FF02A7B8FB044009FB6F1F0F64F35365FB1098E1995A34F8B70A71ED0265ED17AE7AE40\nEXPECT=F077C2D5D36A658031C74EF5A66AA48B4456530A\n\nHASH=SHA1\nSECRET=D1BCDF028960195CECF478B9E861EA243962EBE9\nINFO=EC4B12610F46F7FE4411E39AB28619EBFFEE6DFC638E4E938EF1E04342D75DEE121B375BE292295704C0908AA61B488F6A29AB106468134E71B5439E\nEXPECT=09D71D8AEF2D34E552F9BE25FCFA60F87F5DB6AB\n\nHASH=SHA1\nSECRET=D1D2A910D689848FD220FF30177C690395842C69\nINFO=E8CEFEE65EB88095B6FC81D9313E35B490946F9F114AFE236D5D89277740E500FE50C2B900B6C9139B0AD93F398801707189ABF3BC73779D46FBC012\nEXPECT=60D8206CE28E33C67A884F0DCB8AB70CF55DA75F\n\nHASH=SHA1\nSECRET=887B74B2C8A6EB888FC389CC2DA1870F04047472\nINFO=C95FE491B7538A9D69E4CE3FFFC6C79AD8BB14CCB5FBBFB0A371ED6C018640B96382A57B23BAAE3F4D783A3D21D5B9D9E111A244C960118A22269CDD\nEXPECT=F6602DE3DFCE074FE322D267C99A508A46CF2562\n\nHASH=SHA1\nSECRET=F6AFA445041C7073A74C1FB92E915143F2F80BBC\nINFO=07511C89C68A9ED06D525DFAF84E5115E60789200F8692EB13B2069900C2F88AAFCBB0B759A113E7FD65F7EF57913419B54DFDFCBFB48A9DD7B14D19\nEXPECT=23264C430FEE98C67796483A203861ADBB9C418F\n\nHASH=SHA1\nSECRET=EE5F23363E74A7F46811BD78E306DF6D0D546A41\nINFO=2793B5A9CA4723093944B9D585744A41D4E037F6B774A94E8D94EA43C92CFFE4E142BE1539EF9B30765BE3B8ACA854BCC4F300DE400C4FEF345B5F17\nEXPECT=9ABA4A847A411483BE6ED032B10213F1058A2E85\n\nHASH=SHA1\nSECRET=D20FD65C2A15B99E189274DE5639B30D9D9DB4B7\nINFO=52D32FC17DC3827B316FAEDB8B8FDE901B35576FDC87669A685F20B1F8B2DE059F75634ED7B07BFDE390FC970B6D1D686DFB60E3BA968A84F161FDB8\nEXPECT=E9B534C532601378BE46880716F797156B9496F2\n\nHASH=SHA1\nSECRET=8025B3590CD514C2F95DE9CC9003FF825622EE30\nINFO=170F08FB74DA631D2A8935EAC2E0CD59FF83F733D298930B6C458F7F8822FD621356861D0B98D0A8B137A1987C731199FFD4EFBEABC99C2A65810F84\nEXPECT=587E581D9E59418D57EAC0ABF93D9405CF4335B1\n\nHASH=SHA1\nSECRET=9BE97630193F094DEC260D4CD87CCE72F66DCE58\nINFO=C5DFA14DF472B472A4BCA208C6D822E7FD46716ED1AE232CF335F6672335E1FCD40229F8C90E42E4833DA0AC9CA3702E79576079050E1762C2A940A7\nEXPECT=50E16BC16B54C8693B91A6AD362B255C2A7C684A\n\nHASH=SHA1\nSECRET=A8FB15282F90F49937B5ED6427660C37B3069583\nINFO=6570AC2DC0CD78465803341C29D73FBE5AB804B21F677FAC533218AD967749FCDDDD83F74A43839C64B073DAD3B430A4D199527A794F0F56987EA917\nEXPECT=7DBF26FB3A07AA3EC4B5739F3E08FD2B2D1D820B\n\nHASH=SHA1\nSECRET=693ADB9037184627AD300F176985BD379F388A95\nINFO=7F09570C2D9304EC743AB845A8761C126C18F5CF72358EADA2B5D1DEB43DC6A0F4FF8F933BEF7AF0BCFACB33FA07F8CA04A06AFE231835D5075996BE\nEXPECT=52F55F51010E9BD78E4F58CAB274ECAFA561BD4E0F20DA84F0303A1E5FF9BEBC514361EC6DF5C77E\n\nHASH=SHA1\nSECRET=70EA0FFE1CD76DF86B78150993ABCF5F86E2DEEE\nINFO=AF780B1F4C00B555761937FC569533710DC6C6B76C1B956C9B02ACF8727677D36C396ED1F3AA6671105C8F16C8DC75C1F7262BFB3DDEB80B96B3DF81\nEXPECT=780BB40A387ABF54A92AB91D24F3151236E9AFB8E826866F4433C32F0C6BE4EA347A78E2335F282D\n\nHASH=SHA1\nSECRET=EEA784C3E3181AF8348385456878A775C3A41708\nINFO=51D601ECB9CABB4C5CC6348983A1D24344831812F6D3559399396418FF8824B7EAE36350BB40DD66EC0677F49B5F5AB9805CB272562ED5C7CE0B30C9\nEXPECT=2FD6DC21E31CEE812AE3738CEA9F7C2A121C0A0F4B985B1D506EFF72FDE7FB6F0948C92A86B4B525\n\nHASH=SHA1\nSECRET=3BE6E8A3EE32F99313A5B8A51E23E355812A4779\nINFO=30C3F68EE6E2FA79E892680A699831134E04099F99ACB76E35437CCDF1950EFEF3E7BDCDD15F5DFFDF4825E288323FB7789EB1C54B38A6D8B50EE5BC\nEXPECT=0059FE3650673C2192A8D7746B6EFC8", + "E069E42CC6AD9A10C46B6B741CC7D1DF04BE7E0FF805F0C26\n\nHASH=SHA1\nSECRET=9ECA5318091614B60A3E44F69BA28F411EA990E8\nINFO=1079043F6F6DD21F7269A3C4214AB4D75282EE64F913E9ECC668192B6214FB12743EA9B687ECDA79D4CD97C2F78D9267A508FF46B95B0C8F1F31AEFB\nEXPECT=D8575B817887183D95E92FF4ED887E52EE15BD75820DC1A9AE753DA6B97FCD6D82E8F457C2036770\n\nHASH=SHA1\nSECRET=F9DFC13F0413C469F04135FAC630830F31ED82A9\nINFO=B663C6CDE0E3B5B0341F1905D19D58EE2E8DA999D788D34D4B8B4C091D97DCC73C1093169CC1D37948774FEC2CF08964D2EFD82F71A4407288A29C24\nEXPECT=4CA390CCAFE9D66D4B43A02CC337C3DD74D7BE5C49BEFF5EC4E139B2DD38CA695AA87B11B96031CE\n\nHASH=SHA1\nSECRET=EB0A4598FF09189A9136A97BBF8718A0CD673386\nINFO=17D388AE1CA1F603422E5E218E1AAA9E28BF24A794F073661327412206F2A2A6EE5EC0DA1BFF02DEE876991AB9DBC69E30E7F2596750B7D974E21CB2\nEXPECT=0AB9FD6102904D02D1CC3A31FFD8947444D1A15669847184540B408C072052504E066E4C995A388C\n\nHASH=SHA1\nSECRET=18A5533DF305E0217B622CD1DB488574D835FF73\nINFO=FF2E2C3E28BBF915B15E58E59E5FC2A49705D7EB17A84D9B410A84F2BFBE493DE705EC43491D570ACBB958AEFC4BEBC47AE7B2BC189D42EEA3C7188D\nEXPECT=2830800C092C409CDCC73424A032456D05386FEFA101F01D69D5414FD22CAACFB23B9CCF7730504E\n\nHASH=SHA1\nSECRET=25C999C2BC65F3AEA03A309DC8CC8C000A11ED96\nINFO=FA7C3D22F1BC8EA5918FA71ADA7AC52EEC0D3C19F25D177A3DBB14FB3F369F52DD35F5430600C877850870A2021B15E426744569136E3A075419C3DF\nEXPECT=1BA4EC321ADCF193C10B3D09BEC935E0286634C6579A95EFD492E812D085CC93C53AD29582247C45\n\nHASH=SHA1\nSECRET=5A254A0DADA84BD3AAA5111A1191E654DBF9E728\nINFO=3583D0B1D0D70F26DBDDAA1DEA74E4986285185FF21333AD44935BCF68953F1D6DB4686C53BD6521C590CE9082E282C9493B2C7BC1F99D9F89D3EEBC\nEXPECT=263FE62A0442DF8230D29EF860276D3A1A3F7E7216CEEB3813CD522EA2FA81B3E4AA4B08D7117975\n\nHASH=SHA-256\nSECRET=DD1D91B7D90B2BD3138533CE92B272FBF8A369316AEFE242E659CC0AE238AFE0\nINFO=01322B96B30ACD197979444E468E1C5C6859BF1B1CF951B7E725303E237E46B864A145FAB25E517B08F8683D0315BB2911D80A0E8ABA17F3B413FAAC\nEXPECT=10621342BFB0FD40046C0E29F2CFDBF0\n\nHASH=SHA-256\nSECRET=32C4003872A146194023EAC1BDA74DDF2B66977DAD8A554B974CA2A62F7E4F43\nINFO=33D8CF6D0C759FB622D867EA8CF1285DE4020AF81CC287ADDF38CC2DA4643E6DB3B215AD3E33BFC47877C3620E336887C3C9AD4A1C6C0476B0F90A33\nEXPECT=F593AF0E1A492A7B904A2662897FA1C1\n\nHASH=SHA-256\nSECRET=3C87E9CC98579B2749FF92C8B823A2AD6B367AC26622E7B5B80A2CE6F450E361\nINFO=777D66A24C2D3CC3299CA0718F4F6DCD1161ECBEF6EB3C71F0BC145B4E765A6EECE807A74CA7A698D55B2EB0D30D8D3E5CD71FD2A02B5608274C95C3\nEXPECT=EA6425F03803F2F06C42D8BA11CE4EE9\n\nHASH=SHA-256\nSECRET=DE1F4ABFE78C4DD6F02331C057EFA939AE2DB1F1E7E7C650E07537D259B1EA72\nINFO=4C1F00198D76F3630D3260F56D94F52507394F4A98CDC2937D4ABAA76EBB3FD409A8769DF074DC002917EF818A4852CF004F0225EFC4663211A08C5D\nEXPECT=74182AE81EE88C6A1634FF4991BEB9EE\n\nHASH=SHA-256\nSECRET=8C299BEEAEA05F445D59F5C354DBD0C8B4CD009F197A35369FB3B8612B75026B\nINFO=1A73FCE114CB427DFAA6A699AB2751BF7136FA03D238DA492D9A036143148334294D0BDBE4852C8FF37706BB27D722DDF909BC8BEF91AC72E1841CAD\nEXPECT=16614F3E848515CBE526FD2B1B5A0BC3\n\nHASH=SHA-256\nSECRET=FA1F4C6CA4268480527B37CC1635B69D4A07118F720C60BD13CEDC867DFC2754\nINFO=464516D6F8BB6589928849B984BEA6DC3A45A3E3CBE9B27A95E94801C718901764D78910E72E5FE69860E76E8F2BBBA9298676E8A86B3D63563B45A2\nEXPECT=67507B8FBC813D2387F69BC4D3BDA44A\n\nHASH=SHA-256\nSECRET=AB12CA4709CA38350CAF5602EEE5218EC950353D19E65DE9EFC4DC2D19FE3017\nINFO=A8DA5B25E4F292C149C88F9203C5370822193CDAC135FBCD6B03F42300B8C372F68520DD3B525C79AA25F250B786E6DE7F5D73B5FB46C987671C7F76\nEXPECT=A7F44187D4EBE759B9A37E484A844E2B\n\nHASH=SHA-256\nSECRET=12A9C4B3921B4EC2754E1CF093A38A98702ACF0B8EB30F4BF654B8E3A10D3990\nINFO=C5170E6E67CCEFEBE8415EE2FB6429DF37D6C2EE8FBDD6B970C3A98D486E8718C2202F7FC09FE438D53DFDAEEB0874EF0FD7B4DFA209CC9C5C512BAA\nEXPECT=9D1A3121760B17EA787E0F64C90BF109\n\nHASH=SHA-256\nSECRET=218B0F76980954CC381F2646636907E702078F7902A1894952966547ACE91B19\nINFO=16CB8BEDB363B4795153A105C6049291F1978E7B2AAB01AB64E29C9BB562418CF3AB4F1EE6111D5ED2E58EBE3AD9665588E0E4D9DEAE8524B5B79ED8\nEXPECT=80175FD5C9CA252C52BDCB5302DE3DB1\n\nHASH=SHA-256\nSECRET=3433F2C53824D6EEBE11E11EB656DA9740C5A342F5769DF7FE17C4C4801132CA\nINFO=07E3F8FF03E6AF5AAD503CACB1DB119D3178BBD3E2377888D6F5E6B7BF7B8F7C563A88AA8A778848F4DC01B29CAF85A3B2307E3CDFE3DE1E7043DDEF\nEXPECT=AE81916CD3641C59897512649B657252\n\nHASH=SHA-256\nSECRET=E204D6D466AAD507FFAF6D6DAB0A5B26152C9E21E764370464E360C8FBC765C6\nINFO=7B03B98D9F94B899E591F3EF264B71B193FBA7043C7E953CDE23BC5384BC1A6293580115FAE3495FD845DADBD02BD6455CF48D0F62B33E62364A3A80\nEXPECT=770DFAB6A6A4A4BEE0257FF335213F78D8287B4FD537D5C1FFFA956910E7C779\n\nHASH=SHA-256\nSECRET=AEEECA60F689A441B13B0CBCD441D82DF0CF87DAC236290DECE8931DF8D70317\nINFO=588EC041E5733B7031212C5538EFE4F6AAFA4CDA8B925D261F5A2688F007B3AC240EE12991E77B8CB8538678615966164A81872BD1CFCBFB39A4F450\nEXPECT=3E81D6113CEE3C529ECEDFF89A6999CE25B618C15EE1D19D45CB376A1C8E2374\n\nHASH=SHA-256\nSECRET=95C8F76E11367EB55526A2B393AE906583D1CBDD47962146F506CC7CAC12F464\nINFO=CAD60E904B9E9C8BFEB4A81A7F67D3BDDCC05E64255870403770F3533AE6DD634CEAA56C53E688BD137AE6018935F34B9FB084EA48E4C688F6BBB388\nEXPECT=CAFA5CA03F5FBE2A242004ABCBD3DE1059C7407B1EE579255124AF189BE0B556\n\nHASH=SHA-256\nSECRET=4D05391FD6FB1E292E78AB9619B1B72A7D63EE59D7435DD71897B9FF7EE7AE70\nINFO=F078E6F9B7F82D64554FA6B604C808F19B1F6AD6727DB7AA6F1C86694E104B5256C8B4039919646481D7EA2452C72C17A3E8D7D3916285460AA5EB81\nEXPECT=6B16E8F53B831AA5E86BF97A5C4FA37D089BC172DA5A1E7F662DD4A595339AB7\n\nHASH=SHA-256\nSECRET=0F68A82FF1671634CC9136C564A9E02A767621DD74A1BF5C24129B808214B752\nINFO=648599809C2C4E7C6A5E6C449F0031EBF55C3661A895B44DB0572EE88083B1F4B12602AA55FC1DF150A65A6D6EEDA0AA79A434A1039B91B5A58FC7F1\nEXPECT=E297640F7768485D4A6E7CFE245F8BFA84700D99762692EA1A425CCC0275E8F5\n\nHASH=SHA-256\nSECRET=43EEF6D824FD820405626AB9B6D79F1FD04E126AB8E17729E3AFC7CB5AF794F8\nINFO=5E269B5A7BDEDCC3E875E2725693A257FC60011AF7DCD68A3358507FE29B0659CA66951DAA05A15032033650BC58A27840F8FBE9F4088B9030738F68\nEXPECT=F0A339ECBCAE6ADD1AFB27DA3BA40A1320C6427A58AFB9DC366B219B7EB29ECF\n\nHASH=SHA-256\nSECRET=E5F31D98A13F2390B354DBA08E1E85116F99A56C2E8761D386958A0D0A888A29\nINFO=02113F45151B63F374CFCDB1BEDE41CEF2226A42B6C02C9F090F9F3DB39D4E98A8258C42E27224279CD45C2501CA45A008D8F38915E5B45B8B995F5B\nEXPECT=98E7A023092A3064050902C8B90C749D72005626E0296E1DFB28C10E450B2DD3\n\nHASH=SHA-256\nSECRET=E6CFA4864D31FE09960FFF968AC62F03B6F63B5A221CC95C3A1058B4B60FE9BC\nINFO=4670A7C2C8F5643B75EA4CEED87E253E58FFAA87472299160D35240753F3164C0820374B1F4BEDB2DC34692C8B7E06C7951EE73F1645B10E3F272D17\nEXPECT=4F208E7306B076BF06133F439A6617A3D650253CF87775C3D6D7FEDE32139F4F\n\nHASH=SHA-256\nSECRET=2F180B1A10445D3D29683B3FACB856807689C6DE54C760F6050C3329A4A1DE4E\nINFO=4D48CA49A279A79BF9B3A9E346C3AF74926FAB6AD881027DEE6A6F40DCF67ADD04EFEC4D86DF31BBFC190D43E3A7AEEA9BABCEBAEAD3B07B69DD3D6E\nEXPECT=7765D245FDF143B6CA4359A2503AD1D8EA8CAA7DA8D556B1FE8E25C44C70DBE1\n\nHASH=SHA-256\nSECRET=2EB0A49FD3199A57264F746B1C8ACBC76F7CE51223F72134590FBBEB3176264B\nINFO=980A908ED38B6E699DF3F44E651F0AD3A9D209D3867C495E52673855D09E4F1A58FB477067C400CACCA9AB9260E205C4556905F2727925561280639C\nEXPECT=06D5ADC2D5C517BF40406CC6BB56553B222F70ABF2BB505584000E88628BAF17\n\nHASH=SHA-256\nSECRET=DC60338D884EECB72975C603C27B360605011756C697C4FC388F5176EF81EFB1\nINFO=44D7AA08FEBA26093C14979C122C2437C3117B63B78841CD10A4BC5ED55C56586AD8986D55307DCA1D198EDCFFBC516A8FBE6152AA428CDD800C062D\nEXPECT=29AC07DCCF1F28D506CD623E6E3FC2FA255BD60B\n\nHASH=SHA-256\nSECRET=7A7ECEE4F04C1F5453F29B8C65BEE909F673C44F65E8F9CC18C31C32E9BCFC5A\nINFO=0E2B53DD63008E0663962A25DA9CD55FC2EA377148783DA229FF7E3BD6142A43C854B6B5D06D87B535936F1EDC7CD067E8DBBA220A1F9A5932B32A64\nEXPECT=96FB8EF9380AC9DE2711EF5A83249E608DC7BFFC\n\nHASH=SHA-256\nSECRET=DE71295DC50AC76EB5579410869E918B7BE757AFA606C509BE4378BD98EDA686\nINFO=33CA974F8A1A065B75090C34C948449910495611E28ECC62CED29E5B3AE76217E139267041BA40BE235DE130438C1B14AA833296EB8E4BABE2101010\nEXPECT=385D60538090A45A2B2544275905C4C16E9F23E2\n\nHASH=SHA-256\nSECRET=389DE0B914661C8AC9AAF11D261F6261BAF4652886CF20D2B13DF67BE2E3B185\nINFO=92B3D47EA042591DB5B531907E09A45A60A9C5C5FE0251806B7805B641C5B3EBCDE14D6CB542B4CB242B04F5A9B60B2C66D1A24C66141FE0B818E93C\nEXPECT=B12A4E200180D20DA404B44C952639A955DD83D0\n\nHASH=SHA-256\nSECRET=311AF73874E13A8ACAD981490113934065B3BD5D448E2BB8DFA68B70C69D7D45\nINFO=EA20FC9D32CDD", + "C78DCBCA2EAD6C5C66744DA85D95B643D3FFAB2D0E2D5677DD3A27313153B019CFCD33B3E305ED66404042B2DB0E3DE2267CB557FD8\nEXPECT=C6E86D1043333FB690AD23274A908204D6BCBBAC\n\nHASH=SHA-256\nSECRET=756F9980CBEFEA398350B886CA4C1B2910708B5B8154A0EC4B9648AC77B9D7DC\nINFO=3F09AA15D2FA769C6E8A3380BC55844827BA3EA64CCF177BEB4BFBD5142B3963BF696803A89974AA7D5AF0192CD525A83B71CD8EE7B0BC92F07B9515\nEXPECT=E3BC62B38A7B3C7E7FCB9EF007AA4AD6A9BB519C\n\nHASH=SHA-256\nSECRET=AE815BFE220407BCE6638F20AEFA109B63C7382E91D7BB8B010ED7C6D8D3757D\nINFO=A221F1A3623ECA5F6385B57E7AFE67D134011C6058E3977DF977BDF0C7AB0E14B6D5C059F39948982912B047D00103DC4836E59B7A470222DBAE72CA\nEXPECT=ED5E876D76227D0A7F1ACF5CA08C812995303FB2\n\nHASH=SHA-256\nSECRET=D5110C808A951C5FE36AA4852FBDE7E0BC372A2C69A35ACFC890CC9FF78E40FB\nINFO=F45187072A7D78FE91282F5825DAEB256A28A818C70A285262B080CD3EE2EC785125B27E4026AC9688A5EAE657DB578CD207956249F04A064870D677\nEXPECT=0E7DE25FC559969C08D973AB40795DF74E51965D\n\nHASH=SHA-256\nSECRET=4AA25A61F8B31F061E0FC1D541DEB20E097663CC57054E1F9A347989D8172D62\nINFO=E473FE5877FA137C50BEADC2295187F1B66E35C80B7864BF01C1C620FC09893991500E9A93851AE122170911562BF6EE3C75D5DDEADED27814623D2C\nEXPECT=E235FF72D9C0A64A80CD86FDB26F1CD8740E2704\n\nHASH=SHA-256\nSECRET=26B29556106C06A85C6950AAF20B5E08A523E80E198A725B69E23FE93BD2E16D\nINFO=BD973F9BC6FF0226B2ACC682E0084B8C67B285EA9B8B838938D18F96DE84521FE47D560337115F8232D765166751F1B7026E608D25EC6504346D106D\nEXPECT=E23B197D4D5FD8081CA54DD86A1D459CCA7C69B0\n\nHASH=SHA-256\nSECRET=C4BEDBDDB66493E7C7259A3BBBC25F8C7E0CA7FE284D92D431D9CD99A0D214AC\nINFO=1C69C54766791E315C2CC5C47ECD3FFAB87D0D273DD920E70955814C220EACACE6A5946542DA3DFE24FF626B4897898CAFB7DB83BDFF3C14FA46FD4B\nEXPECT=1DA47638D6C9C4D04D74D4640BBD42AB814D9E8CC22F4326695239F96B0693F12D0DD1152CF44430\n\nHASH=SHA-256\nSECRET=22256CA571D5C896DB80A8758FF81CF8631D2BC38C7E76F3BAFB0C2AF540A356\nINFO=9DD2DCD97B926251B50C6111D988E2951B02ACCC143702C88920CF36848F7C731756AB0537CB26E22725F11DE069E5335802B0CB56C158DD75014791\nEXPECT=A11AA3B1A93D2CE117550866C28D6974CF626719385B8868101A71A5D2AA793BC23C3CFDEBE52EC9\n\nHASH=SHA-256\nSECRET=8066E057E73296158ED5479848317AD5E64EE8FB2E54D4EF85B7792F57F6F887\nINFO=16DA06E7360E4C27419B5F697E4C8548925CE55B53AD9E5E85B94C7F8E57AD142A1A0A0384337B1ADF6410EDCECEA921152B94D6B23A192CE6F602D7\nEXPECT=6EBEF64B358050EDC3C841F52188C5E442CB69630FEC0BE5114816AF616A333F0AAC5153E9265AA6\n\nHASH=SHA-256\nSECRET=56F06CC0BC392AB108696C7DF71495B5A5CD3638E0A92045AF7CBD3076F6DD18\nINFO=4FCAE8F32B08B8FB746121A2DB2BC99FBB24B9FF11C60A1DC91F14AD9A60C6BAFE4ADB4DC160E9901EEEEB212A147EE0A7E76D4AEFA427F66A205C86\nEXPECT=CCDA8231FA5C0702BA282A8F18A0C1DEC6BAEF308625FB8F504410522C3F3B6D647C177054317A07\n\nHASH=SHA-256\nSECRET=617F1B6810C551AA5C21878B00656351466069D41ADC7FEE1CED3F2F3432435C\nINFO=2113F7005C580B77060990C2A3F9E8C8825F0D7E93A3F69F208EBB5B97C488DABD0DE7C7F00E08B4515DB2C02E1824F96E71C9A21A18079C4B649D81\nEXPECT=0325B1C85F3D25AD5EBC2E7B380CFEDE6B3C8ADA1AF0D0D5BCD9D2B34C29083115168B8AEF54C584\n\nHASH=SHA-256\nSECRET=659EDB9A0DF51A3867D4AA01F74F60B7B151B01A3437C2F774FD37B6881A9CA4\nINFO=3FB60870A5813BADFD7AF948C3C924BEC05C92D540140BF28F2546825C5FBD40F1571493A178467FDA9793F2F7EED45B40EF68E0107B8D74C0CF32E4\nEXPECT=5C12C7B6EC38F516F72E76689C3106EE00EE8C2F50862CBF7FCB74BF8798EB761A33838788E276A3\n\nHASH=SHA-256\nSECRET=5703C556E3A53B8D2BF3C5CA773D0C6ED2C1B66A84E6680475A8286941B246B3\nINFO=119E37D64B5AD702CA59F7952E5822CDAFB723C0F92CD70338A17E24D3AF6267AF792B189A01A8A3353ACD7A85B4D63BF7E4B22F73D7992E8E4E7389\nEXPECT=E302C1C1E5C8F688A7580997399433FBAAE499400B8A48901D808839C1EB49DFDF6324145F1EF01E\n\nHASH=SHA-256\nSECRET=9A6E83B91BD999737E577E449142DAE05968E774B223C1185DC574DA785C93CC\nINFO=4B5845C6737202632B2946C3579D9D4582B475DFA373945B0ABC68C8F0DAA36520179439086C6809AA182094453BC0BFFEF0DC2888B96295FCD6E442\nEXPECT=E90E3ED902A8EB1FC67823AF534A2B48466BF2C5877DAD0AADC7D6FF741D8F437B2E6D0031846960\n\nHASH=SHA-256\nSECRET=9BEBF465003A85BC25ED340C6095D963885504D3CF0266AF252EFFD22AD32D6F\nINFO=17506DB459DCA14840917DAD23264303AB1C83E35018A72258099D20D4F8AB85C5227404B23AED6AE108BD1282E50A00D160E534264770A11B4FCC75\nEXPECT=1A32EA308AA6DC6F1B7C77F1D9AAE40672FCAE22438BBB0528E280073B31797886B6A80036A00E19\n\nHASH=SHA-256\nSECRET=1D9209183E557D3AAC7E2AB53D26EC659DF2A745FE56A53818EF5853A42CE194\nINFO=C01A431A32833930A22ABEE5C6EA34DB459316DEF3B241529ECE7E39E2069A1E6B942946132EEBC9679801D2CEFEF4BBB6A1B84EF853325B7BC498FD\nEXPECT=DABCFFA16A7589DEEE6C768AAF01E0813DE909005526DA54700083EF068F854D49941279689A1726\n\nHASH=SHA-384\nSECRET=216ED044769C4C3908188ECE61601AF8819C30F501D12995DF608E06F5E0E607AB54F542EE2DA41906DFDB4971F20F9D\nINFO=638E9506A2C7BE69EA346B84629A010C0E225B7548F508162C89F29C1DDBFD70472C2B58E7DC8AA6A5B06602F1C8ED4948CDA79C62708218E26AC0E2\nEXPECT=D4B144BB40C7CABED13963D7D4318E72\n\nHASH=SHA-384\nSECRET=912141F04E2BCF79FE4BAFE46F44DC9082CA39DCF964D9409C486139787467EAC87095A8F2E2561C19D418EE6F3D836B\nINFO=CBA728C3CB42F62B9FDE6598C8628E0F88F7639FD605B39D81296A0749F27C8B75830686DEAB949DE1BBD0062E46524B1F30746C1CBA02508FB4C29F\nEXPECT=158B313C6D28B03B288AE2154EAB2140\n\nHASH=SHA-384\nSECRET=43C80426677180BC073D093A809436E16D56082647CE17948765D560B6CCF0442129EB55341370768197BADC754B095D\nINFO=FD71974C9F2D40C04D62B73AEDB6A380AB65E84712E7C7DC3C109AE30311F3EDE77C7ECE413DD5769FD74CBCCB020C92F7B87C376205FF9490B689C3\nEXPECT=E241E2C538FD0293DE1D5F6E7CD56C7C\n\nHASH=SHA-384\nSECRET=06F29A5D684A2EEB623532484A691AD85040D987248DC82C51D9B0B7E7BE51847E9076E26FA7D33BE6856207FE4CE035\nINFO=56FAFFD4911601C217725FD816FE0C1A1FBD8F1553F20D8101422FC72058CAB9C2E63A6266A726075CC31EDC0A327FA4449B5EC981A86D9141932AB9\nEXPECT=A2DF03F0212038CB83BA468E9E05A502\n\nHASH=SHA-384\nSECRET=FCF5DB9AB3214FD36D9FB4247AB2A6F58862F1387917E585FA656FE0A19847B3C111FBEE5A868092F224C79658EBDB52\nINFO=C792FC8B32A86C94212B5C845FC78A9A66D94EF98378E4D800B369F543F0A077FDE0B6B109EFB4C6BACFA1502249DDC1E39C7C56DFBE3B285D8E1970\nEXPECT=B75B0C95AE60EACF7ED7B6A216C0A395\n\nHASH=SHA-384\nSECRET=4179A34CAC89DE053CC0E1557D41BA96C2AEA4E35A0D304DFE2D4591DFD5DEEDCE94FFC7BA6ABA8B17DCDA0E9CF8C420\nINFO=3BFAB95F22FC446E0E3682EE197F34DB085FF24088FB6A26299878A309EAE112EE32BF4882E218AD0A618B3062D685707E1261C15D62D14C5CE958D0\nEXPECT=49A25905C12EF9FECE58C0A2861078C6\n\nHASH=SHA-384\nSECRET=816E498680E5CC39B8264709B508AF653A50B927FCBDCEFF2EBE62BA3A25B79950268D3114AC49168C57C419FD77DC50\nINFO=40486CB22CACDDDE870B727DE81E11667EF92CB4F920CE7F2F80A0EF29ADD016142CE2694E866E1D631B5C1C13BA1E3FD0DDC9A16447C20186FAC13B\nEXPECT=79A867C0333D346F0DF8EA2C6D4CB14B\n\nHASH=SHA-384\nSECRET=6CFC570A4ADCEBCCB8651C6DB504E765364079EF34315C783546605AC48CC2AA933C6F10E824ACC3C7338A09C01E1A30\nINFO=D5F8EE6DE37E3D1A54C370BC2A80C88749A546857C60C6EE6DF22F4F166BE188BD2999870FA5FCC1D7CC455828F3446E6A450A14A667E715D3C16622\nEXPECT=7CF844677F8970285AD148E9904AB137\n\nHASH=SHA-384\nSECRET=D6D454975EDF1598FC5532C5C3D9FA0ECD357EA587B0601C90C7515729A84BE28C0C9313A6EC757B8C2AF5C17E994675\nINFO=5C3EDF4D856931D83F8939BE9A245EF34638F406DEE47AAE5162A71F0F68C46C95CEDE46FA452A83D0691E7D06DA9AB200FD5FB2F7C5F28C8A122C41\nEXPECT=0B14055CFB841A465259B80DC3E87D90\n\nHASH=SHA-384\nSECRET=D62569C3669F1012C966F54AC5AC121D8A89871582347B13B208DEFD50CD3BC4908C9896257B10345BEC2D40DF2B6C5D\nINFO=918C0244A3A7870E3AE4F8C07628BB754A0F6F8A52137D549C7E9E17103B42A029688857185E608470953F787CC97A7ED75E7A3609EED2F3B1A20E39\nEXPECT=2DC4524AECCB5A21ACF1F0B13053F5A5\n\nHASH=SHA-384\nSECRET=8FCA201473433F2DC8F6AE51E48DE1A5654CE687E711D2D65F0DC5DA6FEE9A6A3DB9D8535D3E4455AB53D35850C88272\nINFO=195BD88AA2D4211912334FE2FD9BD24522F7D9FB08E04747609BC34F2538089A9D28BBC70B2E1336C3643753CEC6E5CD3F246CAA915E3C3A6B94D3B6\nEXPECT=F51AC86B0F462388D189ED0197EF99C2FF3A65816D8442E5EA304397B98DD11F\n\nHASH=SHA-384\nSECRET=96C45DCE79A02D2BFC2A10A8E744C974812E6A9B83474CE53743FCB334B87D826F411BAD836DE017790CFE07087F8B02\nINFO=80698CD988E02B1BBB0D02C1BB2BDAF544FFDB3527EDE621D2F2F5EAB4A4964EF530378E94AE9AB7484D1EEF854832D5BB204A8BFF21651A9E3CE758\nEXPECT=8EF1E0FC26D3997F985AB5567066391C0D8CED54F1CDABCE57B5ACCABE21EF78\n\nHASH=SHA-384\nSECRET=822C764A1B117085C10F0E689814D2BFBD9B43287F1A8C75D795A9831A286184C8586F3577B6E5BBCE1637925E04FC47\nINFO=AF346110B941B11D2189316C9FC2B9F4213775A5D7368D35412678A28FCD03B07F0549666EFDF30C80F0AB5563720A56EF616A13BB8F7780036FC08E\nEXPECT=E0AE235CB8238", + "0527BE76934A69622396D90E7BFA7E2D295E4375BCEE0D1B101\n\nHASH=SHA-384\nSECRET=340E212D758E83CC5B89E4B56A86EE8C9631AE4E4BBAEC15AC095EA4407BC7B634AD630DD0BE85A91C08A8C7E1E1030B\nINFO=3CD5561AD12FADFCE408E04180AFCEE38B83156B9E4BE0779C4F0DB9E26BFE5CCD43E15921977CD26B1DB8288B80089EB7D1BBD7F59E1011B3E18B51\nEXPECT=05FA577B7081210E7C9DE69DB03D7C2026CF4469A90BFA29F1C2C10818D463E0\n\nHASH=SHA-384\nSECRET=BEB7DBDE7E0A8ACCA2F3EBF8C37A1E9C318E447B9592F93FC9021E690888391A354810B9673E1E2400F05060D3AAB851\nINFO=560BE29C62ECA33855BD1CC70ADFAF4E7EABA4FE55075D466E91467AC4F4B9BEB678E1B2C961511AB12AFA28D34A11CD2EE2B151609BC851036D1845\nEXPECT=63F96D3339E355487091287012D8D46280387567AFB67517AC616D340FA36466\n\nHASH=SHA-384\nSECRET=A360F0B516FC35A76D1D4A9EC6A08E856B8EFA9310411398BF1AC69F28539300BC2256D76388E504C1F60C8B60E60698\nINFO=0206FAF5C9AC40EAACA9A1D16AC71F19E2DE844DB2E73E4FB7E34567E221D5ACBC6931412745DCB0B05E119284D21C4BB3F9A939271750F68784FD9D\nEXPECT=88ECEE742A071F9D24720520E8BDBFE140CE57E7FE2B686966871EED0A6165EB\n\nHASH=SHA-384\nSECRET=DC875B2F393C1D40C241261B0918790601C8B908608448F766E6E8AECFA5E4927E7574AF4030047D98B11468108288E3\nINFO=C63AE3B995AFEE4AC3154BF9EFC6BB10E537736AB5BC427F3C376BE8FB81AA5E0764A4B0165EAAB0A519ECFF45E6F6C769EA664BDD6935C94D8ACEC2\nEXPECT=473DC6A980D6E2465BFA3D02E7E5341B9CEA5E09F27767A5C58F7DB60B5F744B\n\nHASH=SHA-384\nSECRET=49DB7631A3507F02D6B9048E26AFCE48B05E91B50FEC3B7CCF2E8BDE9AA9D79C0B6673F814D8CE39795E79239CBC3967\nINFO=C9083A35299B25141CDC60B4CC7C24263693F15E7AF1A8C6D121D798FE0B9948A83338DC2CBDC75876EFC83FD3398CA0DF223B105B0F13EC2033BAD4\nEXPECT=B350425347979C6F1C100DB1F6DE919100FF713765C1DEA146C62A69896235A6\n\nHASH=SHA-384\nSECRET=E2168AB072C12DA471FC024FCBC52778E9BD68F44762B9D8BAAB746DB9C14FFE7181F71C2EE6488130832830FD0BD5F0\nINFO=59569454B2F5424A914A2D166DA8EE127B0EC5AB4788B115C1D9966A5297181C64549073229A32E5DE40C94A8F9EFE71A0C968F6330482876E37BEDD\nEXPECT=16CB6BC93D9A001460B83259BC9A4344D4B4CB422C6102565DC5B190DE1C5673\n\nHASH=SHA-384\nSECRET=00A12D3CE4FF75A6E30F41F3557C826AF1326B6302F4CE887BAD3D3317A548C8C03A057284DCC38D8BC690BD4A565F47\nINFO=24C5C0B2C810DFA08E35D7FEEBB8C78E0CD726C92ECD42D9171013738CA2531A947F523C37F64CDB04305BD969D1D6F9ECD46405D28280F968500BA7\nEXPECT=AEF3D57C8DA7D9582C5D1C62D6B64896DA9B1B0E4012A44CDC3DCF4B70AD6C66\n\nHASH=SHA-384\nSECRET=BC3157B8932E88D1B1CF8E4622137010A242D3527B1D23D6D9C0DB9CC9EDFC20E5135DE823977BF4DEFAFAE44D6CDAB6\nINFO=B42A8E43CC2D4E5C69EE5E4F6B19FF6B8071D26BAB4DFE45650B92B1F47652D25162D4B61441D8448C54918AE568AE2FB53091C624DBFFFACEE51D88\nEXPECT=91314BDF542162031643247D6507838EABA50F1A\n\nHASH=SHA-384\nSECRET=23D5F3F34C9FE733E808949F4011BA3171376E3BEE807EC5B28496BF4EB51D85AA37C42E1ED93CFFBAB96C6DCA3AFB3B\nINFO=6EC7B6BBD81A312FF787DC6AF7C7C7B9CDBB7D0C19D808536BC0990BD7E79E232BBC1433CA567CBCC4DAF79E8D7224C30124A639852587E2715AE62E\nEXPECT=C3C3579CD70AF7F8C184C580224F27F7664C9FD3\n\nHASH=SHA-384\nSECRET=0000D9B7EC6FBEFDF256FD68220B5205AC65A2001145118C50BA6B657032198B8B7CE3B2F7068A780DC17C22459AF2B7\nINFO=D857541C62B85756DC73DE7DC2D86F5D5E8B28338BB0A945B5C4FD7C81F71961B9705D3D153B19195D003B74212068ED10F96C53438653087A0152CF\nEXPECT=793EF113F96397AB0031EAA0FAA777C107E7D03C\n\nHASH=SHA-384\nSECRET=4F3D744D3E449E0627BF4498743828F86E638F60620A7ED4A7C9B5B073691C9EC94728C58822E827F0F6CCF86DBC1CAE\nINFO=301FEEB25E6CA8503ECD821F1D3787AEBFB3D0EC518BB31174F5209B2AC1F28ED3E698736BAD10A18E3CBDB5DC27BBD12D058B36DB0892F9CFD08300\nEXPECT=85EF9505B230565ECCF2A64AB3DE53E5A91C7B51\n\nHASH=SHA-384\nSECRET=6AF3E1659EE7CAF1D10AD9135C9757350F69886CCAB1BA4FDE50C4614B319E2B20ECC7636C5F6BBAE71CD35565A4A2C8\nINFO=79BAC447F12FBE96C197963B91B939AC3DBF4541BEDEBB22C5677F54B377A0CC3B55A2BF4033D422401A149E74A81615472D0D4F8E4F0CE54384D844\nEXPECT=28ABEC20D6F092D09E32360986359303753CEDBE\n\nHASH=SHA-384\nSECRET=0299D1F064352D5A83FB61E1E050980F65B4B440819D2C1C29B6AD5BDFB2C00347DA993CC9EC00FCC4BD01C03FED9B65\nINFO=6F9EE5CB3852EEC2AC3F095C25C20363D0F7F4770899BF99187E2A830C6571AFF821CEB7E80B6C744F8C5E7BC0B2B8196FB540002B8DB7BC60913998\nEXPECT=293E0FD3E4D06EFE9EE1BA7D8BAB1D36BD7509C1\n\nHASH=SHA-384\nSECRET=1EDC7FE9AD33A7F6F12F350C128E2893EC1BE59C0A77FA5896F2E276BF9EB19CE5B1C1CC2FF25F9391DA304D26037BE3\nINFO=FE3483540341174FADD6BFA9F96473EABD964AD588AE1460739DEB3BF512475C6D57E017DC46E1115733DD81FA6A5DAA9C1F9D23C0AFBBB36958CDAC\nEXPECT=3C192347CE7313E9E54291C37C412CF90AF58A65\n\nHASH=SHA-384\nSECRET=27A9A514E63943E9B90CAD1291FB2A3054C85B4A745CC3CF31BDC1C8935D153FB495E7BA4AB641B7C9E3B5A7C497B1CA\nINFO=C5AF66CE6C03FB7FD88017B38149A32C8C9DCAB96665EFAD28DEB71B61EE75887E1324800B01B13FDD5DB00B8BB4BE50CC2EAEEA43CF26E77DE6DCB3\nEXPECT=886DB74207DE3B034F3E70CF9B47324D57DF5185\n\nHASH=SHA-384\nSECRET=E358BB04A5AAED97939AE415AB3FFE9D2AB14C86C3C3F72B285BFDFB7C1440F80D75CCF28D2C64D503426F552CB4FDBA\nINFO=6B93ADD9163F5E14DF0160B0EE0402B3542F920FB12CBA71C2C7988877BE46BE951113DABF48AFF27E8C9B214CBF293B8A966D2EA7FF515B6BDAA8E1\nEXPECT=48BC1BC135D5CE4AC04B11E7C50CDBBF84C44ED7\n\nHASH=SHA-384\nSECRET=6E3AB74222CAA37F732DE378992BA75C37B1C14B3F5A2C2BB42C270D6F213EEBAD3C3524A4B354F753BCE5ED7CA865DB\nINFO=79D39097B19BC6172ADB445CF9418979B943825228307F2F3AA8A591E0331C77BA01AEDCA2C094390C04694DAC907BE1ED20C124C0C1E5B278F63A3C\nEXPECT=629354FADAFB077D7344F524B82B7D14A5CEAB22\n\nHASH=SHA-384\nSECRET=582F968A54B8797B9EA8C655B42E397ADB73D773B1984B1E1C429CD597B8015D2F91D59E4136A9D523BF6491A4733C7A\nINFO=E6D3C193EFF34E34F8B7B00E66565AEB01F63206BB27E27AA281592AFC06AE1EC5B7EB97A39684CE773D7C3528F2667C1F5D428406E78CE4CF39F652\nEXPECT=691726C111E5030B5F9657069107861ECC18BC5835A814C3D2E5092C901CB1FB6C1A7CD3EB0BE2A7\n\nHASH=SHA-384\nSECRET=BDA32EBF6B8D6C21B4078C05582CCAC57D0E09D598ED51CA808BBAE4315FF3082086E772A50F828BA3A8A47089604C1F\nINFO=723A6AA3E2093F2B3A377E4D716CFADEF784EB38D10302A8BC88294FFAB02E8AB43E6C83A70489DC91A4040E1C04F711A9ADF601D49A2AD07835C668\nEXPECT=92EBA10440A0F28ECA40C765CC08031BFBAEC5FA2A2D3FA19069CB3D5DD08E01702CD5EE16328D0F\n\nHASH=SHA-384\nSECRET=BC8D610533E7FD81F3F6AC2F93876BE259E88C6F234ABD0880762D12CD7D2134F252BECC395CC48B88EB645D722514C7\nINFO=29A5EA0DC26206268095791A2C0B1819079C88F85DD0259BC8EA74D6BF504FFC21C6CD5F92F74A02283DE4E33945393E64CA4B0F691885E4F2762E27\nEXPECT=6E3A1B6233D8E08A1CFE49C9F9E8605FA366F61080C5F1A750B22113168D36001DAAC6D7BB8C99D4\n\nHASH=SHA-384\nSECRET=D6BE75028F7BD73620667EA50C4A674471854B677FF0B63026460C3000D11B5210029F2979B3EEAA613812983E7D7693\nINFO=5C2CE248C0A73A29A6E8E7B3FDBBAF0198D636E6D9D6A547685C27134D80411D122F96311434798CB19B3D446F52D7D1D74BF3EE3FD1FEA2A3B526CE\nEXPECT=E67C995DA49F4ED0F6EFC09F839C795E8447E17790F9805AA8A93A4DB9A03970C280E9159A64FEC3\n\nHASH=SHA-384\nSECRET=F7678CC0B7AEC5F4BDE487F30A5A88C988FD24C463B9E46B3B2AE4C765CA79C48ABE691CF93B6B435B2BDFF2A3D491F2\nINFO=B04C945BF149F2F6D17438958D1A725C3A8AB46CAA15A05E809524B9D1777EFB48E7D6BAAF5D3EFBF30B69B326935E59411207B913F38988E06ABE5D\nEXPECT=65E303ADE8D5ED5559C40E6312B10EE4F2F4DDEE166127547FF1A14CC0318CDC61D1D0C3D6542AD9\n\nHASH=SHA-384\nSECRET=D5D78EEBD12F82F398235CA72AF4277DB475A80DA843F36E1ED95A661E1E610A2C7DCC433E60029C6689980961F3590F\nINFO=094C5D7C7457C51C877A0BEA03FBC44165C10635A4E64B8556C8ECF20914E621EF34224496489D76F67B2639608820ADA74137916BFB315BD50872ED\nEXPECT=A16E9EC1BE1AE3B40AA906C8E18E9A7697CC34124B7B04957CE149BC39BDF27016F5839E21EA7976\n\nHASH=SHA-384\nSECRET=58F1A4C16CB332631B217A8E1B5CCA843665064CC61C9E82AE4180D574DEF4E2A3AB9403036E3915D95044997F1BAB81\nINFO=C77A0BC9543841DC062C8ABB804978A3AF7192244AAC4F73A821750BA38D486D5A2B4F8D927F830772C4E5208E91C37F82B7C658D240E14E20D58CEE\nEXPECT=B2D075292489BBD177F72E5E800618D04A30F9B6E0A8D1FCCB438AE6F646A33E0C47D3625AB87B6C\n\nHASH=SHA-384\nSECRET=AAB0E07E2845CE1664057AA15A1D50C35CE85591C5E0D8D3AA7E8C5A58B0BF56C270957F3728C9745A4BC696F87CA0F1\nINFO=3C115BFFC26D419182433BD43570FB3F6F2FFE37855A5546DBC542990FEF1E332C3A070743BA31E984CA18CC94E33F4F2C744F6B70234A7BA80D7E4A\nEXPECT=001CDA059179ACD067BC9129017D24E8B99A2D6604E14714F720358BF7F43CBB6A4AAD4623267E72\n\nHASH=SHA-384\nSECRET=0C5620F34AA7029F655A9EB9B051F13251D65BDF99D390B8F67898EB2216EC10BACB29358B895529DB64FBFC942FD0FF\nINFO=6D8B8CDF7B699C0205C6FEB4AC1839D3C436CF962F8575EE67FF20D69103C4AA93BB369D360980181E38C44215065C99A066946733EDE23185183617\nEXPECT=2857C7B4221A02B6717A1C67B1EEB64DCDA8162284FAAE88466414B317E45457B5AAEF5B5089722F\n\nHASH=SHA-384\nSECRET", + "=B57DC52354AFEE11EDB4C9052A528344348B2C6B6C39F32133ED3BB72035A4AB55D6648C1529EF7A9170FEC9EF26A81E\nINFO=17E641909DEDFEE4968BB95D7F770E4557CA347A46614CB371423F0D91DF3B58B536ED54531FD2A2EB0B8B2A1634C23C88FAD9706C45DB4411A23B89\nEXPECT=5949ACF9635A77297928C1E155D43A4E4BCA61B1369A5EF50530888550BA270E26BE4A421CDF80B7\n\nHASH=SHA-512\nSECRET=DD5DBD45593EE2AC139748E7645B450F223D2FF297B73FD71CBCEBE71D41653C950B88500DE5322D99EF18DFDD30428294C4B3094F4C954334E593BD982EC614\nINFO=B50B0C963C6B3034B8CF19CD3F5C4EBE4F4985AF0C03E575DB62E6FDF1ECFE4F28B95D7CE16DF85843246E1557CE95BB26CC9A21974BBD2EB69E8355\nEXPECT=E5993BF9BD2AA1C45746042E12598155\n\nHASH=SHA-512\nSECRET=6024BDC82440473BAF798653BCB846F8503D73B6EDF5CEBC116374538B6256AC8A8AD5FA8C7FAD7B3F089933B9C7326D6B80572635C9F5F6B38643971D075B9F\nINFO=1472A96BC81881767F6154B2BB79F4DA8578D447AC495D7EDE31454834BE3D643034B2E16034BA877A846E6E6E22B284B6D894395F33B4BEA5F1CD7B\nEXPECT=ACBD761E976576B189696D26E745A680\n\nHASH=SHA-512\nSECRET=6C7D94622A2D1C4394768A39CC340C6887E06C4A88D57AA7822F0F2B3FAC0192E851F7DD39CBEFE6CCD70992E27EDEA4729B215CA2DACB05373A411600233CCA\nINFO=52D1EE8B4C0AEC771E236E86928B4E943CEC53401848B8A353FB2DC0C74D9CFF74E8086EF5542E3F210209FF614D1FD3177B5DF4DBF89978D1ABDBAA\nEXPECT=F3048AEAE11B116A234659D40711267D\n\nHASH=SHA-512\nSECRET=E0630545EBDC440F373D194FC6C4629A62AEF028DB52A3FADCD32DA24C2FF79106D349AFD8500D6B4FFBFE2A9D59803FB90F25B60FD029C3B67C21DC070D852F\nINFO=1821CB3B1CDE82BEB76E55CAC866E3BBF7EB541E0AA66C3DFBE509EA7870670745ACD5451D775464AED2D66E5CC4360C6B7B75B35A3820CEC217A086\nEXPECT=90FBFA27119450ACC8E6D74B03B05558\n\nHASH=SHA-512\nSECRET=7B3088F0FE86A0C71CC02660E3AB04D3789500AB9551DD59F030847DDA0E14DDA8D6A2051379D0F591269C3DFF303CBFA08424F421913B3BF9C3C076012AD8FC\nINFO=8524FD3E73EB9476513E31005D29DFE6927D877B74734EDD8C2B886FFD3F053000D28344EE9FD9340B448C29FB1725657B314DB93C639F98D756CD9D\nEXPECT=5122A61ADD589993111739F4643EE406\n\nHASH=SHA-512\nSECRET=F4EE35D1575D273CE42A66D6A6E521E87FAD64BF81C99F5773B60C0A9FE2D4D97C52E6E0C1775B4EF7E41E92A1BD32EABF3FBADB93F6A0B3E7324B7DA043D6C9\nINFO=92364F044E0D64A8FB4C53CB1B73A665AAF66FFC9DDF4152AE9DA35B470256B00B50234E26C3149F1C380DD93E75ACCACCD167E1D60A8A06D31BB2E8\nEXPECT=E2B4CB180AB6730BB0C16178B20548B6\n\nHASH=SHA-512\nSECRET=DB3DB876166713A7052A9954F2D37EF35E446368CF84CE5C315B4F59AC00D0D9EB22B119D040BAB5F25F224A24D94901015A2223856203DAD2260164ECE61935\nINFO=77D5AFC143648A249B17AF10D688188A780542DB7F2E3D4265D16E4FC94CDAB158C5AFB9C70AF2D1668A008AAD4ADA64A9DBFA97B439002E4BD3DBF6\nEXPECT=B01C96BAF28CA5841CB6E4E0CAE30D59\n\nHASH=SHA-512\nSECRET=7C977B74CDF87721A37C6F5E9D7C91D1E11744514D51A68D12D1837D26B79611E86A05A4685DBEE8EB0B30962B19B96F373F5ABE92FF0235A4AE7C35380794A5\nINFO=8DA372E4D534416D9C4FECF9D22DC576F889BC6F27453CA75458CCD8F88A8600BA03D4D19480D2EF899DC72DF0732FCEE8ED997FEA4F2D526BEC44F3\nEXPECT=B22DB6AC3A88AA1AA093C0FE55E2639F\n\nHASH=SHA-512\nSECRET=6E6ED01FF12D3251396BF56062B1B3C79B55B4373C0331B14AA593A3EE005B5F068F0EFC56026FC72D66F2744DD1F168F247912F9B26EBC59463B96BD9F1A1A1\nINFO=5ECA796BEF031B87521ED0904BF1D855589749B0183E993D99F741619B62644FA686A4C90F7F1E6ED5344EB75880724C09B751617C31FA5549828A25\nEXPECT=B03B235F5AF9719F35F215C2F94A76A5\n\nHASH=SHA-512\nSECRET=F4CD4F279A128C74E5EB821472098204ED96ED61EAC9281BCD53FDE6890A2CBB1CDB97E0E343FC8588B932CD701AF88F0A7AF723D5C0850E3E01E47612FCEC83\nINFO=EF470DFCD57359F558354F845FC8CA3A1A67419A6D0F6DD698C78F9A57E820C3D8786F3C589F9693B8F3FB3E123A482386C1C0CFE26BC5322E90FD4B\nEXPECT=FAA720299513B73DE2B54896D9A06BCC\n\nHASH=SHA-512\nSECRET=5BE2BF7F5E2527E15FE65CDE4507D98BA55457006867DE9E4F36645BCFF4CA38754F92898B1C5544718102593B8C26D45D1FCEAEA27D97EDE9DE8B9EBFE88093\nINFO=004B13C1F628CB7A00D9498937BF437B71FE196CC916C47D298FA296C6B86188073543BBC66B7535EB17B5CF43C37944B6CA1225298A9E563413E5BB\nEXPECT=CEE0C11BE2D8110B808F738523E718447D785878BBB783FB081A055160590072\n\nHASH=SHA-512\nSECRET=B0B5599C29CCE7644372B278A3275F3E0723739F42BC03FC9A4ACA09D9CECF9AFDC30393DD1CF7499236239608A258F5C48E66B663F6521049A482B63D468A33\nINFO=F00101F38E5D6098CFEA4C7C8490EB5505390000478A645E6621B1F711105BDB4820DC0C783BF980C062899B70875E17CC9116F2FA588A942405BBD6\nEXPECT=768796179CA511B841717887810F870FA3C12641C95ECDCEA8590D730EA43B8E\n\nHASH=SHA-512\nSECRET=52BEC703DEC94B80ED2F8449C752EE4B8B8B1B80E55B6B0E1E9DB1770DADFBB2631DF554D1BA41BBBD0E587369AC81B40BA6D941FB62DBA78A76B554EB03C643\nINFO=9F51256B1896925866F22053348EF6E8A52EC580B1F32BEB2574AFD23A5460C30E8C811D0E7A2887BD5CC0653EC8D68DCCA43F71A8DF1F0193205B75\nEXPECT=B19AC7D4EFDE7C62191EA76530D30DFA5510CC74BAFACAEA5CBE2CED467FA1A5\n\nHASH=SHA-512\nSECRET=8C472849C12153D5A47360EED0438689D056C08496D285A179297A93DFF50070FD3C2C2D88F1C4A25B77C1A5EFB47BB8F881C89F24D464BC23C4F200291D6251\nINFO=F2D317F020B212066EF7C869C9C56699C1D4DFDB74CF679B97D718E701E442B117A6D1162BF825EF491FA628EB249A1CE28018B8A5BD0B1B296E4D92\nEXPECT=FF82B4D0FC9E17C0539FA2FE66F2E1A07B7B593A1342CD0B48162FDA68B7D80A\n\nHASH=SHA-512\nSECRET=104280C86C79879E96CF15DE96412492FFF5D4DBFC677F7D384C09A4BCEE160FA3C972969D12F9B1542D570BAAEBBD801F632E172A8A00477EDC06F938EAE198\nINFO=ADF1F167939087D71FE8D9DDD2C903C542775129DAB2EDC2446CB394A808BA49CF4710EA10CB72A4EFE8F1A32C03D14660F10B0AA9255BD0EE865C10\nEXPECT=5CED814230D7F07DA116D7930B4DB6B18B391BB869D15196677BD1D17F2F8C7C\n\nHASH=SHA-512\nSECRET=DA48986B8C84D0F6B2D6BA9F2C02A53ED8F173B238DD8F3020E15EAE425871CFF148F15BB0BA17C2AE00F44B2C14725A7B130505469BC0706B699E2D901AD16B\nINFO=08528600237B6D049268B7BF3E2FCD9373A6B2F6732EC89437EF8E134FB947C3F37F254C7041D3F06F789953BACED415E9D1DC400FB0025BE180425B\nEXPECT=50EB29E9CD5CA7730FA565870B23A40DB75B5E051B35850C98FC9613A251BDCB\n\nHASH=SHA-512\nSECRET=195E31B3DB4630A9E66CDE347716F50227F8A81C397A72E30D27AAC27F8B9F2F2B453E68FABC9D209D443D952263DB0C341C866D966EB4DB8F8ACF8EAFE7A227\nINFO=2B281526345351D797BE0A7DBC517BB9C9C220B5194CEC3847F6FAC4AB1030867D1851CB8D46561DB605506567DC2F39DDDBF471E4A7D51B23745592\nEXPECT=AEFF884DCBDC002A5F7A877A34F73B42ABAD2089D4E39B721EB370B3D87627F4\n\nHASH=SHA-512\nSECRET=7A1F12A3FAD7E0D3E244FC7BD3F0917E47BC76C60285DED739DDF9462C160CDFCCA887866D6DAEFBF12E7410FB1B50AD6C8B21B6E56877F47E8B14A0AC9F936D\nINFO=77097024C944E349F0CA2A579CF51353F50664DDB4BBBDBBE01DFDE80595DAA5D043D9DB9651FB821CC9ACD72FA91B2EE93E23EFB39409711F3915D0\nEXPECT=D2191B6AACC7668038D762C0CD5915BF68E490671EC4032C20297A64026FE042\n\nHASH=SHA-512\nSECRET=7A41DFE8D0C9AC924A2ACCD615AD3C0BC0D7E124FED6B2B7E05B9F8E6ADE0678E98D45766F9697CD187BC10321195FA1BB84B55BF94BB112D73C6ABB857F40A1\nINFO=E47AA81AF8D1074C8F7FBCB589727EC225163D076D4E8CEFC827C78EBA7B42D5E70377D7033DFDF5EDD93F605DD9B25D75548518E405563D1D4BF313\nEXPECT=5DBF1D3DC128E67F2452ABA858B7ECFB87EFBE66B714541C0D4C009C2B92D7F9\n\nHASH=SHA-512\nSECRET=B27BE323EE094400FC9DACAEEE0365E0C0C52811A6081551DD46DD86302C6396FCE80BB60E306C9785BEA1270356A1C2B4DB7634D5C04891E85417FB72CDFAB2\nINFO=6EEDEA4C7C2AD22289C4E66A96E7A7A1CAE7D340FAE412A6E77697C2081A27560A9F0CB0E412297F99103A233A7998650590C5A7E2861738BED7C9FD\nEXPECT=D0656230B86E4DC3EA2BDB8D62B452262462EED61229D1E2B92758B57C54C434\n\nHASH=SHA-512\nSECRET=9DD03864A31AA4156CA7A12000F541680CE0A5F4775EEF1088AC13368200B447A78D0BF14416A1D583C54B0F11200FF4A8983DD775CE9C0302D262483E300AE6\nINFO=037369F142D669FCA9E87E9F37AE8F2C8D506B753FDFE8A3B72F75CAC1C50FA1F8620883B8DCB8DCC67ADCC95E70AA624ADB9FE1B2CB396692B0D2E8\nEXPECT=96E8D1BC01DC95C0BF42C3C38FC54C090373CED4\n\nHASH=SHA-512\nSECRET=6AC19B36AF7D0E5C65F58DDA2FF76C68567CD8AC16FF2463FC3C8654DE45A05E39C75D83758351753D2E143629AB9075738B037A1EF41F7EFD70F1E700F7F67B\nINFO=4BA9F9E8E33B40F4390333F597AB565B27A841D5FAC930F67101E65973F071AC6BA3941C9D22F40CA44E91657A629B7F56980E0ECCAECB943B16EE27\nEXPECT=3E43B70633884480DDD93D6F20BA512B55590B68\n\nHASH=SHA-512\nSECRET=2ECE7BC9EB5249F5179F2528A062D0DC30496604BB76F26E160D3633140FC6EDAC717EB5402D0FCE56B76B7CFB0AAF47B6AFC410FE06EFB049FA28953D7E4942\nINFO=1EE1EFE3AE248819C5B33DEB7869C3540CD8ABB7DD522C5F0AB71618159CD0D23DD805F14EE27E012240CFF85F57C72F88D5EF6E2196EEDE8CF7B786\nEXPECT=2DF4FA52D2858700085570901F5F857314E1E02D\n\nHASH=SHA-512\nSECRET=283E37FE181516DE2BFB14E6291EDB91DBDE4A7B1475352ACC47EFDF244A2BA2E639D9B028C02DFEBF51DD2D37C4DA64AA89E6A64916D58F1C80B25CC080A950\nINFO=578CFE1A70F52F7E456A22F1485BA23830E3DCB05700ED2812CADC181D448F1119FECD8FCB49667309CF0E316470590ED93BAF567F469DEF5", + "DAFC3B1\nEXPECT=24719CB6F6B10E2EB586A0E167F5683DF2113771\n\nHASH=SHA-512\nSECRET=4A66D41EBCB184C3148A0DEBD67AF5C8ECE3E6A1C13C413789796A99A1ED24ADA2F5107C91159306FE8F68C245499FBFD8F85009A100C8535D22DC71DF09F74F\nINFO=40EAF429F7DEE6F5C91F2351BA51E53CF6F7F836398DBCC33381B4EA4046A5F2CD545C932E58027A1E724FCF8552CC79ABBCEDED385A524648C1DAE4\nEXPECT=8F1BDCB99AF0FC510AD4825EFDD750D3CAB7846F\n\nHASH=SHA-512\nSECRET=95A53B3F953AB90D4F85E7E8437325BE1A0235A89311FA1C7405C3C0BC61F14EF6E7CAD32165AEEA2AD718BEF144D66302E989E2F1A323E512780D28B6DA74AC\nINFO=37495216C113EFD2CCAEF3583A87B067D65C165DBACEA9E04EE34411EAA6616FCE5348ABBD121186F29E071C467B60D9291CA2EB664EBC2A7EE50EAB\nEXPECT=71A5B1EAB411AFBA65081D4D0471D532BF0EC65F\n\nHASH=SHA-512\nSECRET=FC3EF290A89B79E95DE83326B34242778FD2D542457365E2719D328FA5581401EBFE6E2655DA070AA3E26B363B595E1AF7BABD17075DBEF1775CF6157D3C716B\nINFO=592E1984BDFB4BF18DE83A6B19CDB63F27B10985E7CA520B71EC392CE09E1D2DA14C632553574B876752B9D572ECF41BC5AFD057BE99D8019E19F7E8\nEXPECT=083CD3B0B564EE7C5E927F32D10190749715B21C\n\nHASH=SHA-512\nSECRET=388B8C9BB988E762EDE3CC072BD88BA7294785AFB0D6506C2357A5E23331A51E968F7BF50576EF9E64B69B4F48D6E509639CE9693E3F2094FA33B97963E1CC6E\nINFO=5B8FE0C658C0FD7698234C477860531221A7F48617E4405D5C8E8D3550F105B78469A449CC2B855D4A5357C1C612234B2AE2B820F07487B094AC7C3F\nEXPECT=735102B59B09D06D3E6C9494433CB03F5B8CA383\n\nHASH=SHA-512\nSECRET=F1E39D9D0984641F24702F8B37FBF9A8FAFBD17FC23569E940C31384CDA58C0274B167B1AFC9FF44473D20D6A23C922502E31B3DAD13274B22024FF4EAED668E\nINFO=C880707804A76450019632C32F037F97FF2CE7FB1541A9ADBC092D96122CDE19D5FE81CD12A60F491C5877B601E4ECBE0FBAEB67B446C4BB2A9ED60E\nEXPECT=5440C3450AC332D0A8F5C724647962AC82F659E1\n\nHASH=SHA-512\nSECRET=9E0A79B1D6C672D3235464CB2BE6A36D02C982387DEF7E2FE32A5D2BE7343FDC038AF48FB941972FACC8E33D6286E142852DC4CF2667A3C97DD557BC6FC66E98\nINFO=CD356D14E32BF958C17711D26A30412088A2E214E600E692ED4966212565EA891C807E1E0BDEC0A9DBC71F502F09975FCE910C7723DB4DF380E7FFB2\nEXPECT=F46693300BC3BF106D6A8566481FB12B45EE1F95\n\nHASH=SHA-512\nSECRET=A9F4A2C5AF839867F5DB5A1E520AB3CCA72A166CA60DE512FD7FE7E64CF94F92CF1D8B636175F293E003275E021018C3F0EDE495997A505EC9A2AFEB0495BE57\nINFO=8E9DB3335779DB688BCFE096668D9C3BC64E193E3529C430E68D09D56C837DD6C0F94678F121A68EE1FEEA4735DA85A49D34A5290AA39F7B40DE435F\nEXPECT=6DB880DAAC98B078EE389A2164252DED61322D661E2B49247EA921E544675D8F17AF2BF66DD40D81\n\nHASH=SHA-512\nSECRET=244356BE9B327964732EB4A7C09B04B420712396EB57F72BC94924066C687E878E798E0A033A1EE1A4D8CDC2DA0443ECD77401D0460CD906EAAB02656C1EDC98\nINFO=D806E2DF8C85D3BAF5D67E9C97B746EE6BBB1BC10DCDF6C7A6075C311CF34752ACBE60E68F23C7F890B5EA7300A1AD32178254885246F0493987A6E8\nEXPECT=F0B5BC749EB300CA217CA82FDFFED89B1BF2C8AFC2B36EE2B48695E5085B893A6DAAD5474F74EF0F\n\nHASH=SHA-512\nSECRET=F5567A2DD9236A99200C4BD5390743E2560BAB4B196E3C732B01ABF900C7649CAB5B957DA6AE8FD025605147B36572C19F103670B16F6BB57C138754479AD45D\nINFO=A8CCD4BD36FB0ED0765E9662F1028D600BD650E4C2CDDDF94B27EE881120AAF74B727B02F0036B46162062E39ED43FA85687A58D177AF6F566811889\nEXPECT=2E55B73D126DB0F92810266C92E4DC7A7F2D32CBED9EB4EDAB519E5CC9138C642FD4B229780C17BF\n\nHASH=SHA-512\nSECRET=46A65F2E432FE2AAB26DE24D1B9D39B44DA270230F17844D44E249565A125F87A070B4B2EEAC0B3A6C54ACFC49DDC6360F59FE0E330E0605C61E85C5C27FE756\nINFO=B06A23E05945F96A293DE59DC3DB5972CA1FA00B4647AC38F753790335D5DAEB2FFE09CF8924AC4E80B275EA4DBEC53B9E2AAF90DF0E6FD82AD69F7C\nEXPECT=04BBC4F93FB5C3589690798BF793C10BB726F87A4A2DE93B8FDF6BE8015ABE156577119C5637AE71\n\nHASH=SHA-512\nSECRET=8D371552164BCEE60771E876CE546C4B0277B978E0963E2312666FED5FAAF340A55E00644CB36474464A4C2775F480D88E2D3B41F31E0706209EB8E51595B92E\nINFO=F570212DB2D3F314AFAE51F83875E4DA7DBC13073ECE83A6727E011DD0F748F569714B59F44930067B8962B83289B441BA65B0E2237AADA36800F955\nEXPECT=9565B54259FC5C61A7F7448E6BDFBE48191C2DD6CA61CE35EAF3717FFBFE1C467B3DE080FAEEB8B4\n\nHASH=SHA-512\nSECRET=07F8E73D47DE5F0EE2CCF871C702A92A1FD15A4DE130611E46A4247A0497465B3FB5D785C01ED1CF061C73FE1F55DFE0111EC735D376BB39AC6CF83D7A2371C4\nINFO=C13AADC44D9C3A209B9081B19BE6556C9FE7B491E0B8D98B18AC82C6B4DC3E8EE23B82DB2BABC27F055979511895E296B6D9F7DDA35A0E265FB3C645\nEXPECT=9E222EBCD27C7CA72179121C6C60FB0DAAE910620CA7B01A8D0154D48DA9C7D7AA9A5667375FF518\n\nHASH=SHA-512\nSECRET=5F00B6755ED8C9D3EA8CECDD8C17CA3AFEDD25871D1C50B302C1FC864D04147382313E6A701D9B6CC3DE791FA65A782BC0D74097361B12A5B45408F1172DFEA5\nINFO=5669569B911167E8F9C6B1A83FDE57B6DB4171AEB7657AA94D87D542BD9D4E89F69C89E0FB4B3D3502702327FBFE653AF60A7FE1AB600E2620D765A6\nEXPECT=D937822EF92073CFCDB5D8DB801A3875E45FE34D316F40EE57140E1153E4D28251D0A05A9F49EA66\n\nHASH=SHA-512\nSECRET=BE755AB76FFD8F2EB3F246E036BCC06DF39E83A471F468C29EA8BCEFF47D28222637C1CACF2FDBD233545CC888474A7B2131CCC735225027C517C48420D10ACC\nINFO=4E39D12BB306F5D1E1859484215048CE6FF0033B3199CF1732D0088C4187D49884FE30571243B2A643BC56D4986DDA958ED5C279BF7A9BE2E37567E3\nEXPECT=302E5F81107D186C054173BC705E11A648A5DCEB8435510C3CDC80C9984CB9C9C362840D44265E7E\n\nHASH=SHA-512\nSECRET=2C94C4873FAF4DE3E93152B49428C92C865DC58E1E336FFB9AA50523DB6311DB34D5A731164073D7958506501CDB4DCE05B845198E6FEFE63DB87837C2434850\nINFO=27FE559B6D92995338283A776159856285474B74302DEDCB3E7FE191490EAB7F580212CFEA6F6013388E3DB28443F454280572B90F0DC2207FDCC0EF\nEXPECT=42885AC518C97BDA290B548B597B7F04B20BC34A0A6D9DFC89A446D9F23A1CCCC37608FEECA7A4C3\n\nHASH=SHA-512\nSECRET=0FF2C279653A7B954AFB0096C2B16E591FA32EEF39EDD8141C6513D6DC6C0863AF0E94BFD57B17817CD1038F37639CF8D63871AEF46EE81947526BC5454C13F2\nINFO=16EE1DAEF6A0316AA0467646C521FA30165FE336B249600F1E565D287B97018033E2BAD45D76C6685D77339B27EBDD9CCE1B34C1E4619A97774D94E7\nEXPECT=BC0E3CB2B78BD9D6E2EC544672ADBE44398FDBA7EF332F1C4235C104CA32EC00FB47D47209E15197\n", +}; +static const size_t kLen73 = 38595; + +static const char *kData73[] = { "HASH=SHA1\nVARIANT=DIGEST\nSECRET=81f3d2ad1f70fd67a374547d59506a04d545f4e869f00fa0\nINFO=434156536964e63969525e54d806789d7121a1b2c3d4e581597a0e979d5c99a79b1789b41ae57fef5b916f85a1e449\nEXPECT=6ff62398511a8a243513\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=1b36653c8d00d4742982e7347e3591b04a6507ffff2d60cf\nINFO=4341565369647ebfbe28a821381fd4acacbda1b2c3d4e59f086148af5b212020587c5bca84b1cc856ee790473f6f43\nEXPECT=190109cefea280e8413d\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=805ed191d06b9e65bb866babe3d81dfdaf50170a57b6fd72\nINFO=43415653696432a993134a35b0bb99b23c50a1b2c3d4e53948d820d0da600eb36a3d0b4074508306d74879cccec51b\nEXPECT=5bade971de631bc7d912\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=d3cd77a44a1e951b23b698b04c3f342780b00917c9c2c2fb\nINFO=434156536964600097e08aedd076438dcb2fa1b2c3d4e52880245fa69c4ea8b9dc5e4d8f4984c98855c1303aca04c1\nEXPECT=f53465669cf0a327c2e3\n\nHASH=SHA-256\nVARIANT=DIGEST\nSECRET=a4801c1ca39cc74b7df5c127593e3482f4c4e4e945753076\nINFO=4341565369649a34a5c3879740e3907add7ba1b2c3d4e5658aaff1cc4bd0aa8e7a215ad1f61873ce67cd7b83225010\nEXPECT=13229b870d7e49795f34\n\nHASH=SHA-256\nVARIANT=DIGEST\nSECRET=008392d899edd742510212be86e6ba5eede4f354b034b2f4df0e6f5a0003f3b334aebbd3\nINFO=434156536964808e2f1e4b8a68301e33483b423d0a9b6d15a1b2c3d4e5f3c9e8598a950b971c402d0d65a290845fde\nEXPECT=2041f42703fd9ff370373fef399009cd\n\nHASH=SHA-256\nVARIANT=DIGEST\nSECRET=0189e7c2133207b3f37741fd596d532bfd37a62b2f6577678f42e0643300a3f20c1f4bed\nINFO=434156536964cc2ac48877251aef42fd21686b0aa425a838a1b2c3d4e5da4e1b22f244bdf689861da265954b433e14\nEXPECT=247b5fb8977bf202b9c6fc81e07c7deb\n\nHASH=SHA-256\nVARIANT=DIGEST\nSECRET=07ce5c270ad7d39b0d4c594eb66620fbfc424ee8464c6c12cff08307d34f74082b7a9f54\nINFO=434156536964bd813bb05390d7bbd94ff0b3687c157ca53da1b2c3d4e5a42c7a0c533d316edcd318fbac3a9f754f5e\nEXPECT=fab546ee7a66c58e0a0501ce63e0731f\n\nHASH=SHA-384\nVARIANT=DIGEST\nSECRET=016995ef4b250d677dc674577427a0603b5d2185ee66e88c2f450c47727cfafa5707c5b74f9d6a2403f571094eaa7ee54bb251de\nINFO=434156536964ac9a3236f3d2a4cda1ada36079b3275556220286c036169ebda8a1b2c3d4e575408962a5a3c8afeb92\nEXPECT=86a4a396d8819edfab9784f668b997fe9a1da99f6f08c5b1\n\nHASH=SHA-384\nVARIANT=DIGEST\nSECRET=00c12d6863ff167766e1ee061eb53109f281d5ffb0593939fb37281354110cffa0f73f2f3761524f86d047e57f8e3fa04f7ba9ea\nINFO=43415653696495b4b25586d6a8a0653ea547ce23d757ee125ff89f889e9cd4c0a1b2c3d4e50ebd18fdde3f0429c876\nEXPECT=3ca777a800ff751ecfc610b08ce3506aab4541cba38b1cb8\n\nHASH=SHA-384\nVARIANT=DIGEST\nSECRET=012060eb88ab29fa77688ab0ea23fcd21af79456598b82f5212e7e0b835fecca08c6a6fd5d49a264cc6d66f93bf8a436c1fadd60\nINFO=43415653696433a0c05720cd9ae757b38a71e9abd634e90fbd842bf15b1d4c0da1b2c3d4e54e7d6c1bc80533e7452d\nEXPECT=241e45e9cbe075abe0a0aed94834d97f704d4a62da1889ec\n\nHASH=SHA-384\nVARIANT=DIGEST\nSECRET=01b11eb41c758b28cb326d78e33ffcacd5ace2ab395281f791fd4f7a80649fd47d4d091bb9cc1c725a4c32715165291b5f522a1a\nINFO=4341565369647cdaff4407f99eae33795b0aaf968c20b0071dfe9fe0e3f80eb7a1b2c3d4e5457a0daef12445a665f0\nEXPECT=c0f969c63e99d1798f0a52907b6e42c952611940618733c1\n\nHASH=SHA-512\nVARIANT=DIGEST\nSECRET=017812834e28c2930b612b15de106b241948a823291480cfe2c7515530aff60cd8eee86f6100769a889bbfda985d6fb60e12104c\nINFO=4341565369644e1d7bb30359f9dfcf4a622e809a87bf0c78ac5775eb8b54ef66a1b2c3d4e54f288cc26c3a5c84d344\nEXPECT=61b86d9bf5783c89e9a30b4e30d2c0096544c74d1677820f\n\nHASH=SHA-512\nVARIANT=DIGEST\nSECRET=0184c49404209f6c0af846444fb5705da3875c8a84b6f43004e9e6fae6d2faaaef26d0853fe191624b74de855955807077cd1e6a\nINFO=43415653696426abad2b9558fc7450a4e2a9416330626c17ad5a7667ba7e64cca1b2c3d4e5b49c2962094b5387f0d1\nEXPECT=76ee4f052b5862138b91de6b57b9f9ab74f8263ef72948eb\n\nHASH=SHA-512\nVARIANT=DIGEST\nSECRET=016774c65fb07b9d3d737d027ae5409999b1a3965c8f9d4b470c50be201e75f9ee6cc6cfe3863d0e683971b92512cfb64b816e24\nINFO=434156536964fa87a7dda67d13f0aded76ef7a62bf5b9ffa25e024691a7e1f40a1b2c3d4e5902e4f6e3f344a95c3f8\nEXPECT=51cad9a349609ad538704ab813d82401a23f2c1c7d429912\n\nHASH=SHA-512\nVARIANT=DIGEST\nSECRET=0058d0c565a00f423efb4ccc321acddf7b2e24ba9e259c5ac43845e97b1117a8b89a30b02f9421e31c60ebeac22c6b42b95d4a56\nINFO=434156536964f5c1165e63acf905b51ac0bcaf116b51737b49a3f6cb1063b1e3a1b2c3d4e5e150d4c3b125bf032b47\nEXPECT=7abf9a0654a90c18b0d423bb20c3c4d6374c8dfd06446848\n\nHASH=SHA-512\nVARIANT=DIGEST\nSECRET=005f8c03ac2d9313e2cc5b30dcc9133cbf8c53671af5e80032bb36b9279cc41c8742f859b3c64097ef1ba62a1c4b6d02d9ec1a6e\nINFO=4341565369641253e69cd9f2692f10c4d09c1be8d1967445c4e4596ffa61c2cea1b2c3d4e5f776d55088934bc8d5d2\nEXPECT=00059c8673b4d3e269147e91591385d5636e793cc36690ae\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=81f3d2ad1f70fd67a374547d59506a04d545f4e869f00fa0\nINFO=434156536964e63969525e54d806789d7121a1b2c3d4e581597a0e979d5c99a79b1789b41ae57fef5b916f85a1e449\nEXPECT=6ff62398511a8a243513781f02d9e50d412c247c84a01dac17f8d8d74bb5ddc5c5d156eb0173e597cab4a276aed4f42d74b5a105666cddd26efc1fa130e1b062f2431c974eca6bc81c8fdc0a78088271cbd3aae0972d37016a293b59fb5656ff169da3ac23cc39723fa887342346fb5859b63ebb86eb19ccff6e314253b9a771\n\nHASH=SHA-256\nVARIANT=DIGEST\nSECRET=81f3d2ad1f70fd67a374547d59506a04d545f4e869f00fa0\nINFO=434156536964e63969525e54d806789d7121a1b2c3d4e581597a0e979d5c99a79b1789b41ae57fef5b916f85a1e449\nEXPECT=94a283be5d007b1729f8a7ed1a9bf0361435131c4477e750959bd64426c1fa16df07f848e1ba90d8d3196424de928cdb8a5eda08ef03a5ca907b07faa0d4ac096a9dc7c5fa1f931336f864fdd9038b2dda14ca933c722657c90dd1c82c3a99af48fdb599a975498f023424c5a6cfe010dd800e42c55de57a5d75a6cd54e299b9\n\nHASH=SHA-384\nVARIANT=DIGEST\nSECRET=81f3d2ad1f70fd67a374547d59506a04d545f4e869f00fa0\nINFO=434156536964e63969525e54d806789d7121a1b2c3d4e581597a0e979d5c99a79b1789b41ae57fef5b916f85a1e449\nEXPECT=98989fa5f8de3098dfa089a454c24586f75f5bdc1e860d6088f42d9cc129bb462ae243b7922a6c276891bee5ca79b0744b7ef4cb419db1e4ab80d67c873cb62912cb6cef80f17198e02ff590af59faf17e3128b80879606fa346f14930597005d2be607b08b4361a403a28f18f5bc485a8c53921fbe8adcb35e64d4dc9227a5e\n\nHASH=SHA-512\nVARIANT=DIGEST\nSECRET=81f3d2ad1f70fd67a374547d59506a04d545f4e869f00fa0\nINFO=434156536964e63969525e54d806789d7121a1b2c3d4e581597a0e979d5c99a79b1789b41ae57fef5b916f85a1e449\nEXPECT=8501c55696448de9e6b452cd56b022cba6826e8d4fd3d1f75346ef4698169b2642ffedad53e948ab42b923f54083244879b735e5e478139cb500fa7972d79f6c4cfdbc243f34b37bede60315c7e92500fee77cdd1c6eff97ff6a181d39dfe01350ad1702eb37441256bca3d0ddeb6043daebafc821afa2bae9a5457515ddee56\n\n# Tests that follow were sourced from https://github.com/patrickfav/singlestep-kdf\n\nHASH=SHA-256\nVARIANT=DIGEST\nSECRET=4d7920736563726574\nINFO=00000000000000000000000000000000\nEXPECT=5f225b4801843ed861b95f5b0a3afd78473498f0b5cb6d7769e67458e057da8c0311\n\nHASH=SHA-256\nVARIANT=DIGEST\nSECRET=616e6f74686572206f6e65\nINFO=9014bf55dc1e03babb5ca1c1323a1e5b\nEXPECT=4f0a3cf7d52987ccd470d4a8f9d41da9bc6dcf4945c1e522c04fd0c070c397ddb7f4\n\nHASH=SHA-256\nVARIANT=DIGEST\nSECRET=65306334326336353234373139\nINFO=dbebe4f7dde938229f26651e011f7bbd\nEXPECT=d9151c3f36f6980951d84cca75ade71b\n\nHASH=SHA-256\nVARIANT=DIGEST\nSECRET=cf80cf80cf80cf80cf80cf80cf80cf80\nINFO=676c65eb966200b04a2bb870d7ed20ce\nEXPECT=c5bb681f1a04713ee7be14e0190676773b0ff63561892fac030b18cca38955369cfc32cdd956ef6e2e4301deb61d049a4d82e57a434168bc5ae084e0df15c0a0d8232d7a791088446b66e612753d36649e70a234a360b611baa07e4a6a7c660db2a1b56acba42d6d3d83b3ce51c787c544bb14b1c94b780fab5c0f966efd80f4a71cd4f267f816a3bb1ec8ceddcd810d1665742c8f68767cd9d7f87ad97792edc6896b6518\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=4d7920736563726574\nINFO=00000000000000000000000000000000\nEXPECT=eba887dca269a550a3882f06f3b1c30058751bc4ec5375e5435e525aeca9782e6311\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=616e6f74686572206f6e65\nINFO=9014bf55dc1e03babb5ca1c1323a1e5b\nSALT=ebf4c1e001f26879afc76c7a45ac9541\nEXPECT=8a6484427e5231642a83e7a01fd410040dda5bf3b3d34ec626a8603ac1a5e2e38f02\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=65306334326336353234373139\nINFO=dbebe4f7dde938229f26651e011f7bbd\nEXPECT=cceb4536d8431c4d91a5c6f061955aac\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=cf80cf80cf80cf80cf80cf80cf80cf80\nINFO=676c65eb966200b04a2bb870d7ed20ce\nSALT=1aab1829c8b7ed941b3dc8359dd1f402\nEXPECT=2933b1a656efd556c421533e4fab685c4a9c32f15099a357a73a59c6acebb01b9685631d6208992413c2397c58e8020e588cc16f1f1b470a411ab65d6a0503e3728be789e54e313d49bd1edd606757db6c605ed1e346dd6841afd895379ba09dde046a19dce0a8d49b3ed5671d448e141da5f6bcf3aa5313affd8a1478", "4c424b6d5087aa038ab13db398abbd50dfd39d1134dbe88e308373861d7acf1d79b740f717193d5b\n\nHASH=SHA-512\nVARIANT=DIGEST\nSECRET=4d7920736563726574\nINFO=00000000000000000000000000000000\nEXPECT=8930b01ea45ed7c97c31b5d98a84c48c198c3e5db28241ba9c8417ff1986b53bb4f0\n\n# Test Vector from https://github.com/openssl/openssl/blob/9fcf57b45985336b04579dd317d0dc990a9c062b/test/evp_kdf_test.c#L901\nHASH=SHA-224\nVARIANT=DIGEST\nSECRET=6dbdc23f045488e4062757b06b9ebae183fc5a5946d80db93fec6f62ec07e3727f0126aed12ce4b262f47d48d54287f81d474c7c3b1850e9\nINFO=a1b2c3d4e54341565369643c832e9849dcdba71e9a3139e606e095de3c264a66e98a165854cd07989b1ee0ec3f8dbe\nEXPECT=a462de16a89de8466ef5460b47b8\n\n# Translated Vectors below from https://github.com/openssl/openssl/blob/9fcf57b45985336b04579dd317d0dc990a9c062b/test/recipes/30-test_evp_data/evpkdf_ss.txt\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=d09a6b1a472f930db4f5e6b967900744\nINFO=b117255ab5f1b6b96fc434b0\nEXPECT=b5a3c52e97ae6e8c5069954354eab3c7\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=343666c0dd34b756e70f759f14c304f5\nINFO=722b28448d7eab85491bce09\nEXPECT=1003b650ddd3f0891a15166db5ec881d\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=b84acf03ab08652dd7f82fa956933261\nINFO=3d8773ec068c86053a918565\nEXPECT=1635dcd1ce698f736831b4badb68ab2b\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=8cc24ca3f1d1a8b34783780b79890430\nINFO=f08d4f2d9a8e6d7105c0bc16\nEXPECT=b8e716fb84a420aed4812cd76d9700ee\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=b616905a6f7562cd2689142ce21e42a3\nINFO=ead310159a909da87e7b4b40\nEXPECT=1b9201358c50fe5d5d42907c4a9fce78\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=3f57fd3fd56199b3eb33890f7ee28180\nINFO=7a5056ba4fdb034c7cb6c4fe\nEXPECT=e51ebd30a8c4b8449b0fb29d9adc11af\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=fb9fb108d104e9f662d6593fc84cde69\nINFO=5faf29211c1bdbf1b2696a7c\nEXPECT=7a3a7e670656e48c390cdd7c51e167e0\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=237a39981794f4516dccffc3dda28396\nINFO=62ed9528d104c241e0f66275\nEXPECT=0c26fc9e90e1c5c5f943428301682045\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=b9b6c45f7279218fa09894e06366a3a1\nINFO=0f384339670aaed4b89ecb7e\nEXPECT=ee5fad414e32fad5d52a2bf61a7f6c72\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=08b7140e2cd0a4abd79171e4d5a71cad\nINFO=099211f0d8a2e02dbb5958c0\nEXPECT=6162f5142e057efafd2c4f2bad5985a1\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a2\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f4853\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493d\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759a\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac704\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbe\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf1050\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f3\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616166f\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616166f10e5\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616166f10e5d2b4\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616166f10e5d2b4cb11\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616166f10e5d2b4cb11ba8b\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616166f10e5d2b4cb11ba8bf4ba\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616166f10e5d2b4cb11ba8bf4ba3f22\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616166f10e5d2b4cb11ba8bf4ba3f227688\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616166f10e5d2b4cb11ba8bf4ba3f2276885abf\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616166f10e5d2b4cb11ba8bf4ba3f2276885abfbc3e\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616166f10e5d2b4cb11ba8bf4ba3f2276885abfbc3e811a\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616166f10e5d2b4cb11ba8bf4ba3f2276885abfbc3e811a568d\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616166f10e5d2b4cb11ba8bf4ba3f2276885abfbc3e811a568d480d\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=ebe28edbae5a410b87a479243db3f690\nINFO=e60dd8b28228ce5b9be74d3b\nEXPECT=b4a23963e07f485382cb358a493daec1759ac7043dbeac37152c6ddf105031f0f239f270b7f30616166f10e5d2b4cb11ba8bf4ba3f2276885abfbc3e811a568d480d9192\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=d7e6\nINFO=0bbe1fa8722023d7c3da4fff\nEXPECT=31e798e9931b612a3ad1b9b1", "008faa8c\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=4646779d\nINFO=0bbe1fa8722023d7c3da4fff\nEXPECT=139f68bcca879b490e268e569087d04d\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=d9811c81d4c6\nINFO=0bbe1fa8722023d7c3da4fff\nEXPECT=914dc4f09cb633a76e6c389e04c64485\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=8838f9d99ec46f09\nINFO=0bbe1fa8722023d7c3da4fff\nEXPECT=4f07dfb6f7a5bf348689e08b2e29c948\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=3e0939b33f34e779f30e\nINFO=0bbe1fa8722023d7c3da4fff\nEXPECT=b42c7a98c23be19d1187ff960e87557f\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=f36230cacca4d245d303058c\nINFO=0bbe1fa8722023d7c3da4fff\nEXPECT=50f2068d8010d355d56c5e34aaffbc67\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=7005d32c3d4284c73c3aefc70438\nINFO=0bbe1fa8722023d7c3da4fff\nEXPECT=66fd712ccf5462bbd41e89041ea7ea26\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=c01c83150b7734f8dbd6efd6f54d7365\nINFO=0bbe1fa8722023d7c3da4fff\nEXPECT=5c5edb0ceda9cd0c7f1f3d9e239c67d5\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=da69f1dbbebc837480af692e7e9ee6b9\nINFO=9949\nEXPECT=33c83f54ed00fb1bccd2113e88550941\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=da69f1dbbebc837480af692e7e9ee6b9\nINFO=17144da6\nEXPECT=a999c28961424cab35ec06015e8c376a\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=da69f1dbbebc837480af692e7e9ee6b9\nINFO=dffdee1062eb\nEXPECT=4101ad50e626ed6f957bff926dfbb7db\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=da69f1dbbebc837480af692e7e9ee6b9\nINFO=9f365043e23b4648\nEXPECT=4d3e4b971b88771f229df9f564984832\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=da69f1dbbebc837480af692e7e9ee6b9\nINFO=a885a0c4567ddc4f96da\nEXPECT=bebbc30f5a83df5e9c9b57db33c0c879\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=da69f1dbbebc837480af692e7e9ee6b9\nINFO=c9d86183295bfe4c3d85f0fd\nEXPECT=87c947e45407db63eb94cbaa02d14e94\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=da69f1dbbebc837480af692e7e9ee6b9\nINFO=825fadce46964236a486732c5dad\nEXPECT=192370a85ff78e3c0245129d9b398558\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=da69f1dbbebc837480af692e7e9ee6b9\nINFO=5c0b5eb3ac9f342347d73d7a521723aa\nEXPECT=c7b7634fd809383e87c4b1b3e728be56\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=8d7a4e7d5cf34b3f74873b862aeb33b7\nEXPECT=6a5594f402f74f69\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=9b208e7ee1e641fac1dff48fc1beb2d2\nEXPECT=556ed67e24ac0c7c46cc432da8bdb23c\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=4d2572539fed433211da28c8a0eebac3\nEXPECT=5a4054c59c5b92814025578f43c1b79fe84968fc284e240b\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=4e1e70c9886819a31bc29a537911add9\nEXPECT=ddbfc440449aab4131c6d8aec08ce1496f2702241d0e27cc155c5c7c3cda75b5\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=68f144c952528e540c686dc353b766f2\nEXPECT=59ed66bb6f54a9688a0b891d0b2ea6743621d9e1b5cc098cf3a55e6f864f9af8a95e4d945d2f987f\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=b66c9d507c9f837fbe60b6675fdbf38b\nEXPECT=c282787ddf421a72fc88811be81b08d0d6ab66c92d1011974aa58335a6bbbd62e9e982bfae5929865ea1d517247089d2\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=34e730b49e46c7ed2fb25975a4cccd2d\nEXPECT=39e76e6571cb00740260b9070accbdcc4a492c295cbef33d9e37dac21e5e9d07e0f12dc7063d2172641475d4e08b8e3712fb26a10c8376b8\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=e340d87e2d7adbc1b95ec2dbdc3b82be\nEXPECT=a660c0037a53f76f1e7667043f5869348ad07ac0e272e615ce31f16d4ab90d4b35fe5c370c0010ce79aff45682c6fb8b97f9a05b7d40b5af3c62999a10df9c6d\n\nHASH=SHA-256\nVARIANT=DIGEST\nSECRET=afc4e154498d4770aa8365f6903dc83b\nINFO=662af20379b29d5ef813e655\nEXPECT=f0b80d6ae4c1e19e2105a37024e35dc6\n\nHASH=SHA-512\nVARIANT=DIGEST\nSECRET=108cf63318555c787fa578731dd4f037\nINFO=53191b1dd3f94d83084d61d6\nEXPECT=0ad475c1826da3007637970c8b92b993\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=6ee6c00d70a6cd14bd5a4e8fcfec8386\nSALT=532f5131e0a2fecc722f87e5aa2062cb\nINFO=861aa2886798231259bd0314\nEXPECT=13479e9a91dd20fdd757d68ffe8869fb\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=cb09b565de1ac27a50289b3704b93afd\nSALT=d504c1c41a499481ce88695d18ae2e8f\nINFO=5ed3768c2c7835943a789324\nEXPECT=f081c0255b0cae16edc6ce1d6c9d12bc\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=98f50345fd970639a1b7935f501e1d7c\nSALT=3691939461247e9f74382ae4ef629b17\nINFO=6ddbdb1314663152c3ccc192\nEXPECT=56f42183ed3e287298dbbecf143f51ac\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=a72b0076221727eca4d3ef8f4d88ac96\nSALT=397dc6807de2c1d5ba52e03c4e6c7a19\nINFO=12379bd7873a7dbabe894ac8\nEXPECT=26c0f937e8ca337a859b6c092fe22b9a\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=0b09bf8ebe1e85a049174c521e35be64\nSALT=313d29bbeaa5ac9e52278f7619d29d93\nINFO=e2ac98de1486959bfc6363c0\nEXPECT=4bfdf78782a45e2a5858edb851c5783c\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=e907ad4fe811ee047af77e0c4418226a\nSALT=5000ef57104ca2e86a5fec5883ea4ea8\nINFO=c4ee443920f2b7542eee2a24\nEXPECT=06bfbd9571462c920a5a1b589c765383\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=608dae15fe8b906d2dc649815bdee148\nSALT=742cc5a02a24d09c66fd9da0d0c571f6\nINFO=ba60ff781e2756cba07f6524\nEXPECT=7f7f9e5d8f89a8edd10289f1d690f629\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=eb39e8dc7c40b906216108e2592bb6cd\nSALT=af9f612da575c1afc8c4afff4ced34e1\nINFO=84b7f0628df0cb22baaa279a\nEXPECT=5202576c69c6276daedf4916de250d19\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=4bac0c1a963b8cf6933beb2ad191a31e\nSALT=debd24d71a1a7ae77f7e3aa24d939635\nINFO=9e51c8593cec92c89e82439a\nEXPECT=ecb9889f9004f80716b56c44910f160c\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=8aa41e3c8076ea01ca6789dd18709a68\nSALT=7c9dacc409cde7b05efdae07bd9973db\nINFO=52651f0f2e858bbfbacb2533\nEXPECT=b8683c9a982e0826d659a1ab77a603d7\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d3\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d8\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d89102\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be0\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f2\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c504\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a1\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca6\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd99\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995de\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02", "b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c710\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca9091\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca90915dda\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca90915dda0ab6\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca90915dda0ab68af2\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca90915dda0ab68af2f355\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca90915dda0ab68af2f355b904\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca90915dda0ab68af2f355b904f9eb\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca90915dda0ab68af2f355b904f9eb0388\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca90915dda0ab68af2f355b904f9eb0388b5b7\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca90915dda0ab68af2f355b904f9eb0388b5b7fe19\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca90915dda0ab68af2f355b904f9eb0388b5b7fe193c95\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca90915dda0ab68af2f355b904f9eb0388b5b7fe193c9546d4\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca90915dda0ab68af2f355b904f9eb0388b5b7fe193c9546d45849\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=02b40d33e3f685aeae677ac344eeaf77\nSALT=0ad52c9357c85e4781296a36ca72039c\nINFO=c67c389580128f18f6cf8592\nEXPECT=be32e7d306d891028be088f213f9f947c50420d9b5a12ca69818dd9995dedd8e6137c7104d67f2ca90915dda0ab68af2f355b904f9eb0388b5b7fe193c9546d45849133d\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=f4e1\nSALT=3638271ccd68a25dc24ecddd39ef3f89\nINFO=348a37a27ef1282f5f020dcc\nEXPECT=3f661ec46fcc1e110b88f33ee7dbc308\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=253554e5\nSALT=3638271ccd68a25dc24ecddd39ef3f89\nINFO=348a37a27ef1282f5f020dcc\nEXPECT=73ccb357554ca44967d507518262e38d\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=e10d0e0bc95b\nSALT=3638271ccd68a25dc24ecddd39ef3f89\nINFO=348a37a27ef1282f5f020dcc\nEXPECT=c4f1cf190980b6777bb35107654b25f9\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=451f7f2c23c51326\nSALT=3638271ccd68a25dc24ecddd39ef3f89\nINFO=348a37a27ef1282f5f020dcc\nEXPECT=ddb2d7475d00cc65bff6904b4f0b54ba\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=0f27277ee800d6cc5425\nSALT=3638271ccd68a25dc24ecddd39ef3f89\nINFO=348a37a27ef1282f5f020dcc\nEXPECT=1100a6049ae9d8be01ab3829754cecc2\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=20438ff1f26390dbc3a1a6d0\nSALT=3638271ccd68a25dc24ecddd39ef3f89\nINFO=348a37a27ef1282f5f020dcc\nEXPECT=5180382f740444ada597197f98e73e1e\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=b74a149a161546f8c20b06ac4ed4\nSALT=3638271ccd68a25dc24ecddd39ef3f89\nINFO=348a37a27ef1282f5f020dcc\nEXPECT=44f676e85c1b1a8bbc3d319218631ca3\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=8aa7df46b8cb3fe47228494f4e116b2c\nSALT=3638271ccd68a25dc24ecddd39ef3f89\nINFO=348a37a27ef1282f5f020dcc\nEXPECT=ebb24413855a0a3249960d0de0f4750d\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=a678236b6ac82077b23f73a510c1d0e2\nSALT=46ee4f36a4167a09cde5a33b130c6e1c\nINFO=d851\nEXPECT=5dbe10ead8f81a81a29072eca4501658\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=a678236b6ac82077b23f73a510c1d0e2\nSALT=46ee4f36a4167a09cde5a33b130c6e1c\nINFO=b04da03c\nEXPECT=0a08d7616dcbec25a36f1936b82992ca\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=a678236b6ac82077b23f73a510c1d0e2\nSALT=46ee4f36a4167a09cde5a33b130c6e1c\nINFO=f9e8b47eade3\nEXPECT=84a29697445179b662d85dbc59bf8042\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=a678236b6ac82077b23f73a510c1d0e2\nSALT=46ee4f36a4167a09cde5a33b130c6e1c\nINFO=5b141bfa54fcf824\nEXPECT=be7660c840644cec84d67d95ba7ebf2d\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=a678236b6ac82077b23f73a510c1d0e2\nSALT=46ee4f36a4167a09cde5a33b130c6e1c\nINFO=736e7ddb856f0ba14744\nEXPECT=e3010b1fbcb02fd8baa8449ac71d0c62\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=a678236b6ac82077b23f73a510c1d0e2\nSALT=46ee4f36a4167a09cde5a33b130c6e1c\nINFO=c54320ff6e7d1a3b0b3aea00\nEXPECT=df0ac84982999cda676e4cbf707c42f0\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=a678236b6ac82077b23f73a510c1d0e2\nSALT=46ee4f36a4167a09cde5a33b130c6e1c\nINFO=37ab143e1b4ab61d0294ea8afbc7\nEXPECT=93eec7f4dda18b7e710dbbd7570ebd13\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=a678236b6ac82077b23f73a510c1d0e2\nSALT=46ee4f36a4167a09cde5a33b130c6e1c\nINFO=c3146575d2c60981511e700902fc2ac1\nEXPECT=e9125f77d699faa53d5bc48f3fc2f7d0\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=0031558fddb96e3db2e0496026302055\nSALT=1ae1\nINFO=97ed3540c7466ab27395fe79\nEXPECT=ddf7eedcd997eca3943d4519aaf414f4\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=0031558fddb96e3db2e0496026302055\nSALT=3bda13b6\nINFO=97ed3540c7466ab27395fe79\nEXPECT=ec783ca20501df3cacac5ab4adbc6427\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=0031558fddb96e3db2e0496026302055\nSALT=c792f52e5876\nINFO=97ed3540c7466ab27395fe79\nEXPECT=9303a2562e6f8c418e3fcc081b94bdcf\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=0031558fddb96e3db2e0496026302055\nSALT=a9b7a64840d52633\nINFO=97ed3540c7466ab27395fe79\nEXPECT=aab6b0dc19bae0dd7fa02391ac3d6ef1\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=0031558fddb96e3db2e0496026302055\nSALT=8f62a3ec15cdf9b3522f\nINFO=97ed3540c7466ab27395fe79\nEXPECT=1516d5ed7f46474d250408b0864647cf\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=0031558fddb96e3db2e0496026302055\nSALT=55ed67cbdc98ed8e45214704\nINFO=97ed3540c7466ab27395fe79\nEXPECT=38bf96a3d737a84dc10a835d340b6866\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=0031558fddb96e3db2e0496026302055\nSALT=e4946aff3b2ab891b311234c77bc\nINFO=97ed3540c7466ab27395fe79\nEXPECT=3ddd870471ff028a63c5f1bacc7e5b5c\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=0031558fddb96e3db2e0496026302055\nSALT=91e8378de5348cea41f84c41e8546e34\nINFO=97ed3540c7466ab27395fe79\nEXPECT=bf1eb0eab488b2393ad6a1c2eb804381\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=4ce16564db9615f75d46c6a9837af7ca\nSALT=6199187690823def2037e0632577c", "6b1\nEXPECT=0a102289b16cbf4b\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=2578fe1116e27e3a5e8e935e892e12eb\nSALT=6199187690823def2037e0632577c6b1\nEXPECT=dd5773998893ad5a93f9819c8e798aab\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=e9dd8bd75f29661e61703346bbf2df47\nSALT=6199187690823def2037e0632577c6b1\nEXPECT=32136643daa64aaac0e2886364f157ba923d7b36ada761eb\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=e4640d3752cf48186a8ad2d7d4a81210\nSALT=6199187690823def2037e0632577c6b1\nEXPECT=6379d59efbe02576663af5efaccb9d063f596a22c8e1fed12cde7cdd7f327e88\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=3bd9a074a219d62273c3f639659a3ecd\nSALT=6199187690823def2037e0632577c6b1\nEXPECT=cc45eb2ab80272c1e082b4f167ee4e086f12af3fbd0c812dda5568fea702928999cde3899cffc8a8\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=2147c0fb1c7587b22fa44ce3bf3d8f5b\nSALT=6199187690823def2037e0632577c6b1\nEXPECT=4e3a8827fcdb214686b35bfcc497ca69dccb78d3464aa4af0704ec0fba03c7bb10b9a4e31e27b1b2379a32e46935309c\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=2c2438b6321fed7a9eac200b91b3ac30\nSALT=6199187690823def2037e0632577c6b1\nEXPECT=b402fda16e1c2719263be82158972c9080a7bafcbe0a3a6ede3504a3d5c8c0c0e00fe7e5f6bb3afdfa4d661b8fbe4bd7b950cfe0b2443bbd\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=0ffa4c40a822f6e3d86053aefe738eac\nSALT=6199187690823def2037e0632577c6b1\nEXPECT=0486d589aa71a603c09120fb76eeab3293eee2dc36a91b23eb954d6703ade8a7b660d920c5a6f7bf3898d0e81fbad3a680b74b33680e0cc6a16aa616d078b256\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=a801d997ed539ae9aa05d17871eb7fab\nINFO=03697296e42a6fdbdb24b3ec\nEXPECT=1a5efa3aca87c1f4\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=e9624e112f9e90e7bf8a749cf37d920c\nINFO=03697296e42a6fdbdb24b3ec\nEXPECT=ee93ca3986cc43516ae4e29fd7a90ef1\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=a92acdee54a84a4564d4782d47801ec0\nINFO=03697296e42a6fdbdb24b3ec\nEXPECT=3116b87eaffaa0cc48a72e6c1574df335d706f7c860b44e9\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=e60d902e63b1a2bf5dab733cadb47b10\nINFO=03697296e42a6fdbdb24b3ec\nEXPECT=3fde6c078dd6dc65aacf62beafa39398d2b3d7cfb4b0ee4807bfc98a15330eef\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=d3b747a1d1584a0fc5aefcd4dd8ef9c3\nINFO=03697296e42a6fdbdb24b3ec\nEXPECT=2c4363597d42f9f8736e8050b4a6dd033d7ddac6f7211c4810ef74aff01f101d885767d7ae6f1d7f\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=119559a2c0a8888e9c95b9989a460d97\nINFO=03697296e42a6fdbdb24b3ec\nEXPECT=97922585f69adf484930cf22b8378c797694438502fa47e2f19f0fee97ca11451f3bc81a20c1d74964c63ab2d5df1985\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=807f375266988df5d0ae878efac424fa\nINFO=03697296e42a6fdbdb24b3ec\nEXPECT=ba78ef8ab720fc583bb64581917634fca230876cc344e46b44fe61f3bdab556ee753743b78db4b16c0fcd8f987aebad15d0b7b13a10f6819\n\nHASH=SHA-256\nVARIANT=HMAC\nSECRET=f7906f870b256753b5bc3ef408e47e9b\nINFO=03697296e42a6fdbdb24b3ec\nEXPECT=96bee2ae234f98c285aa970bd54c2e2891febf734bad58a91dc7a97490b6b05fe539f2156ae3acd2e661eced0d59084fda340cd1ba3daa7ca2a550d7b1c19462\n\nHASH=SHA-512\nVARIANT=HMAC\nSECRET=73b6e2ede34aae5680e2289e611ffc3a\nSALT=28df8439747d5a9b502e0838ca6999b2\nINFO=232941631fc04dd82f727a51\nEXPECT=b0d36cd7d6b23b48ca6f89901bb784ec\n\nHASH=SHA-512\nVARIANT=HMAC\nSECRET=abb7d7554c0de41cada5826a1f79d76f\nINFO=a80b9061879365b1669c87a8\nEXPECT=71e29fff69198eca92f5180bcb281fbdaf409ec7c99ca704b1f56e782d3c4db10cb4158e6634d793a46c13bffb6bdb71a01101936ea9b20f7dbe302558b1356c\n\nHASH=SHA1\nVARIANT=DIGEST\nSECRET=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nINFO=307e300a06082b06010502030601a01f041d301ba0071b0553552e5345a110300ea003020101a10730051b036c6861a12904273025a0071b0553552e5345a11a3018a003020101a111300f1b066b72627467741b0553552e5345a22404223020a003020112a10c040aaaaaaaaaaaaaaaaaaaaaa20b0409bbbbbbbbbbbbbbbbbb\nEXPECT=e6ab38c9413e035bb079201ed0b6b73d8d49a814a737c04ee6649614206f73ad\n\nHASH=SHA-256\nVARIANT=DIGEST\nSECRET=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nINFO=307e300a06082b06010502030602a01f041d301ba0071b0553552e5345a110300ea003020101a10730051b036c6861a12904273025a0071b0553552e5345a11a3018a003020101a111300f1b066b72627467741b0553552e5345a22404223020a003020112a10c040aaaaaaaaaaaaaaaaaaaaaa20b0409bbbbbbbbbbbbbbbbbb\nEXPECT=77ef4e48c420ae3fec75109d7981697eed5d295c90c62564f7bfd101fa9bc1d5\n\nHASH=SHA-512\nVARIANT=DIGEST\nSECRET=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nINFO=307e300a06082b06010502030603a01f041d301ba0071b0553552e5345a110300ea003020101a10730051b036c6861a12904273025a0071b0553552e5345a11a3018a003020101a111300f1b066b72627467741b0553552e5345a22404223020a003020110a10c040aaaaaaaaaaaaaaaaaaaaaa20b0409bbbbbbbbbbbbbbbbbb\nEXPECT=d3c78b78d75313e9a926f75dfb012363fa17fa01db\n", }; -static const size_t kLen73 = 9174; +static const size_t kLen74 = 9174; -static const char *kData73[] = { +static const char *kData74[] = { "Key = 00000000000000000000000000000000\nPlaintext = \nAdditionalData = \nNonce = 000000000000000000000000\nCiphertext = \nTag = 58e2fccefa7e3061367f1d57a4e7455a\n\nKey = 00000000000000000000000000000000\nPlaintext = 00000000000000000000000000000000\nAdditionalData = \nNonce = 000000000000000000000000\nCiphertext = 0388dace60b6a392f328c2b971b2fe78\nTag = ab6e47d42cec13bdf53a67b21257bddf\n\nKey = feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255\nAdditionalData = \nNonce = cafebabefacedbaddecaf888\nCiphertext = 42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091473f5985\nTag = 4d5c2af327cd64a62cf35abd2ba6fab4\n\nKey = feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = cafebabefacedbaddecaf888\nCiphertext = 42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091\nTag = 5bc94fbc3221a5db94fae95ae7121a47\n\nKey = feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = cafebabefacedbad\nCiphertext = 61353b4c2806934a777ff51fa22a4755699b2a714fcdc6f83766e5f97b6c742373806900e49f24b22b097544d4896b424989b5e1ebac0f07c23f4598\nTag = 3612d2e79e3b0785561be14aaca2fccb\n\nKey = feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b\nCiphertext = 8ce24998625615b603a033aca13fb894be9112a5c3a211a8ba262a3cca7e2ca701e4a9a4fba43c90ccdcb281d48c7c6fd62875d2aca417034c34aee5\nTag = 619cc5aefffe0bfa462af43c1699d050\n\nKey = 000000000000000000000000000000000000000000000000\nPlaintext = \nAdditionalData = \nNonce = 000000000000000000000000\nCiphertext = \nTag = cd33b28ac773f74ba00ed1f312572435\n\nKey = 000000000000000000000000000000000000000000000000\nPlaintext = 00000000000000000000000000000000\nAdditionalData = \nNonce = 000000000000000000000000\nCiphertext = 98e7247c07f0fe411c267e4384b0f600\nTag = 2ff58d80033927ab8ef4d4587514f0fb\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255\nAdditionalData = \nNonce = cafebabefacedbaddecaf888\nCiphertext = 3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710acade256\nTag = 9924a7c8587336bfb118024db8674a14\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = cafebabefacedbaddecaf888\nCiphertext = 3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710\nTag = 2519498e80f1478f37ba55bd6d27618c\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = cafebabefacedbad\nCiphertext = 0f10f599ae14a154ed24b36e25324db8c566632ef2bbb34f8347280fc4507057fddc29df9a471f75c66541d4d4dad1c9e93a19a58e8b473fa0f062f7\nTag = 65dcc57fcf623a24094fcca40d3533f8\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = cafebabefacedbad\nCiphertext = 0f10f599ae14a154ed24b36e25324db8c566632ef2bbb34f8347280fc4507057fddc29df9a471f75c66541d4d4dad1c9e93a19a58e8b473fa0f062f7\nTag = 65dcc57fcf623a24094fcca40d3533f8\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b\nCiphertext = d27e88681ce3243c4830165a8fdcf9ff1de9a1d8e6b447ef6ef7b79828666e4581e79012af34ddd9e2f037589b292db3e67c036745fa22e7e9b7373b\nTag = dcf566ff291c25bbb8568fc3d376a6d9\n\nKey = 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext = \nAdditionalData = \nNonce = 000000000000000000000000\nCiphertext = \nTag = 530f8afbc74536b9a963b4f1c4cb738b\n\nKey = 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext = 00000000000000000000000000000000\nAdditionalData = \nNonce = 000000000000000000000000\nCiphertext = cea7403d4d606b6e074ec5d3baf39d18\nTag = d0d1c8a799996bf0265b98b5d48ab919\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255\nAdditionalData = \nNonce = cafebabefacedbaddecaf888\nCiphertext = 522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015ad\nTag = b094dac5d93471bdec1a502270e3cc6c\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = cafebabefacedbaddecaf888\nCiphertext = 522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662\nTag = 76fc6ece0f4e1768cddf8853bb2d551b\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = cafebabefacedbad\nCiphertext = c3762df1ca787d32ae47c13bf19844cbaf1ae14d0b976afac52ff7d79bba9de0feb582d33934a4f0954cc2363bc73f7862ac430e64abe499f47c9b1f\nTag = 3a337dbf46a792c45e454913fe2ea8f2\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b\nCiphertext = 5a8def2f0c9e53f1f75d7853659e2a20eeb2b22aafde6419a058ab4f6f746bf40fc0c3b780f244452da3ebf1c5d82cdea2418997200ef82e44ae7e3f\nTag = a44a8266ee1c8eb0c8b5d4cf5ae9f19a\n\nKey = 00000000000000000000000000000000\nPlaintext = \nAdditionalData = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015ad\nNonce = 000000000000000000000000\nCiphertext = \nTag = 5fea793a2d6f974d37e68e0cb8ff9492\n\nKey = 00000000000000000000000000000000\nPlaintext = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nAdditionalData = \n# This nonce results in 0xfff in counter LSB.\nNonce = ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nCiphertext = 56b3373ca9ef6e4a2b64fe1e9a17b61425f10d47a75a5fce13efc6bc784af24f4141bdd48cf7c770887afd573cca5418a9aeffcd7c5ceddfc6a78397b9a85b499da558257267caab2ad0b23ca476a53cb17fb41c4b8b475cb4f3f7165094c229c9e8c4dc0a2a5ff1903e501511221376a1cdb8364c5061a20cae74bc4acd76ceb0abc9fd3217ef9f8c90be402ddf6d8697f4f880dff15bfb7a6b28241ec8fe183c2d59e3f9dfff653c7126f0acb9e64211f42bae12af462b1070bef1ab5e3606872ca10dee15b3249b1a1b958f23134c4bccb7d03200bce420a2f8eb66dcf3644d1423c1b5699003c13ecef4bf38a3b60eedc34033bac1902783dc6d89e2e774188a439c7ebcc0672dbda4ddcfb2794613b0be41315ef778708a70ee7d75165c\nTag = 8b307f6b33286d0ab026a9ed3fe1e85f\n", }; -static const size_t kLen74 = 157331; +static const size_t kLen75 = 157331; -static const char *kData74[] = { +static const char *kData75[] = { "# These test vectors were taken from NIST's CAVP tests for CTR-DRBG.\n# Specifically those for AES-256 with no derivation function.\n\nEntropyInput = e4bc23c5089a19d86f4119cb3fa08c0a4991e0a1def17e101e4c14d9c323460a7c2fb58e0b086c6c57b55f56cae25bad\nPersonalizationString =\nEntropyInputReseed = fd85a836bba85019881e8c6bad23c9061adc75477659acaea8e4a01dfe07a1832dad1c136f59d70f8653a5dc118663d6\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = b2cb8905c05e5950ca31895096be29ea3d5a3b82b269495554eb80fe07de43e193b9e7c3ece73b80e062b1c1f68202fbb1c52a040ea2478864295282234aaada\n\nEntropyInput = edfdb55e77d418a63e4414dfd42225ed257cf74e99325fba26e8f3a4524a71bc80a731af23256908cb4675a9c253ea6f\nPersonalizationString =\nEntropyInputReseed = a9372fea93d607fbbc75a97b7f65f2d4ae8c06bd184981572e888a35c5794d2bb380a4ae04bba27f2efcc9e7914b96dc\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 11b1a0f0bb935ec0c54e089e0cd20832d1f00e7069f30e9ea2e35b7f15ecf0577d0e90035bf0f91ffd9e8a1fa8a507503739afbec19393e02c9b7c230cdea36f\n\nEntropyInput = f253fd442b105434c0f47ba9b6798bc20c8832a142a2a6d965678485a3ac52393528a5e092341d60ad74429f4005f8bb\nPersonalizationString =\nEntropyInputReseed = 600c822b198dbdcd9d13ee25bd4b846e5d8665725eac5347b4cfe7512c1f3fbdc4c51c85d977ca58e9e6485a17c533bb\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 076419bdd354d6a1f1415a0a71bed94db29cad22f0205d983c841874497875a4857404e573545366850fe6eb5286e0deb87ddd63bb3317b4556a82920412aeef\n\nEntropyInput = 8dbf2c37dbbf3862f05af4b32e98edd3d8cd7bd34d8a23daa2d15200daed6e9d238387ba85ddfd35a2986bdf5790e1a7\nPersonalizationString =\nEntropyInputReseed = f67aed05dea08baa16cbb669ae310a0b8e019da0a7fe2762abf684121292186a50bc13d568576ce5d7aeb080e4604a1e\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 69666e65c5623140da35927ec39189fcfda0891674efdcd2a7d6f2628921a37bd49a164590413c04f6090a50336f040b015dd8c45452991bcdd96994c5ecc6bd\n\nEntropyInput = 2fac25dcea5274a7dbd6af112d757b59a4447f5dcbda972666af071c5d8f71583ec6914a1e685f610b8a43ffada0b411\nPersonalizationString =\nEntropyInputReseed = 52f5b1f927c0873ae375d6a6e140fe594fd474a63bcdcd6a98109e32ad980ce534714ec626dad7acd43101415e5817d2\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 3096cf20137eb6f94d9d26a4871eddf10285c6984776847105ca9294aafc68925ad8bd7f36bb68fe371476114649ead11b926f9f0fc1d21c744342ff5c44c8e3\n\nEntropyInput = 4133a0e6ce837125f46f2a44e05c4f64d76879156ea16a1d16db1d3ec460cc53609fa9e4b3081f9dde0b79f00c93ac5a\nPersonalizationString =\nEntropyInputReseed = 4613b2327dc9054f34faf933d62bf7b12ec8b34626c07ef7512cecd8aedcbd4023f26b859a941c5af77ec1e2e02a1d9c\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = be02e94fd18c488741fd90b6980118dffba1cda5bd25aa23d44414392201c5a78c3ea68252f92afaaf540b298d3f80a94818f1d1ca84c2be5f66a46191a7548b\n\nEntropyInput = e312fd67b5009ab1c896ba8f85d53fb29517ed2a26d20a4b9d09505ec004bef5739cc94e7f368989c675eee1f40501a2\nPersonalizationString =\nEntropyInputReseed = 176ec11c0d4462ea26b1bdee41208e3ff3b430de11f12567ebe982c16d709f681fcd9f5bd5309f3f2a9d80b3a426929a\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 07cb9f51e34be38fe1d1c18858ee44db227c1e6a6c2f7d09e9143e87e9e09df0af9a5cb7a183e5d26359509fe619e52e59e3333d3620373d3ae5a008b51ef786\n\nEntropyInput = 3eaf30117135d9167c829e35bd8da227a6302471b649381858085e67c65496058ded0ab176a38b3888f4e3c2e65269dd\nPersonalizationString =\nEntropyInputReseed = df60a1b9fb2f8501756edd09e489fc98a60ed08646f5a2e018f55b71c76b9b7718ac4ae61b41241593829108ddeb0ef0\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 29c4d540354e97f50f3fb1de84eef471192cd76a670de34176c6465523ff249ed5eafe2c09f091f5ed101cf8a971d782f150a2642ed291e850906e29328d6b8a\n\nEntropyInput = 99d5543c192c6a1069bf548d80d678bc42c1f020f0b29a0ceeba424c03f8a8aa38df1c0fe100ee4c1b0bc870b4afa3d2\nPersonalizationString =\nEntropyInputReseed = a0fddd29c792f6f411b5d532fff2564d492ca15ac8b7fe1b4575e9b59806823665ad7ac4e2adcd2803ccaabe87ab75ed\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 3d58e98a1f4beda50f84f773c405d106b28f4be6da2a2942098403843bffa3323c53661a7f072a020c68f55ea2b3a9cf9157b7c4cdff5e642ee9be1f436f9c18\n\nEntropyInput = 2151ba6cf2ed6a7366991e516443162b6ed4e7f8ef2d6c81ec5e5feb0061e20ced65da27847956194dc6177b5e0befa9\nPersonalizationString =\nEntropyInputReseed = 73418efab1c6039145dc6ce09b84abde4ef4f8eaccbac250213bdd75e2a5e8b42ffb1367bd8d1281e3b0051651f78a05\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 5b219cb285c820f3bce52b9eff15afa042de3036f1a52896eab34e4476c28c60127cf8daddce0809efafab03c9269cd220a49f79220e14db9d208311d2a22a1b\n\nEntropyInput = 7c7321b69fdefdece32c45e47cce07a0d599e83ea8ee5781e2f2ff341f292c0bdb848e5ab379771639e811fed45f63d7\nPersonalizationString =\nEntropyInputReseed = 4b04652d3d0515b305f4da346754c0d398c8cfefe8e5c1edacb79cb8396018bda12ad7d42bf86e801159bb62c34fff68\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 379c12dc2c8a884c6f40df5353047d74efbd9c626795b86256abec4a6f42ba26529f19e4b043f53776180c7ab16a3817b4a50c09bb3355234786e714edb9e2b4\n\nEntropyInput = 3a56329b07dffb8bc7761c0c2b4ec4ec3b7ed2513f0cc3d9be3eb9a153e8e1605d9392dbb951e4b0989ef473301f6f57\nPersonalizationString =\nEntropyInputReseed = ff6efb9b946748af0992bdc38eeb15d4991bb610692e1fe53ff828405924a544ee0e4da70aa1d0ae55e7925a58cf5597\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 9f32e40391217833176ca768beedd2839892c6fc17dec5c250f0820c576e4ed615729653515ae13292a2e4aedaa2df74c6535d8c625dd1cab479d3c5ae7bf955\n\nEntropyInput = d550f48af436ae42ea48a8cb0cd615be8db51691b365ef20ed826b28561fbacc9deb28cd3d83655033068948c55683da\nPersonalizationString =\nEntropyInputReseed = 76ea2e732f77b337ddd402e367c158dacc3433feb40d7b4376fb8dc449891336b00841580ea189583ada95cef783d540\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 8433b2ac45da6fdcbeaf3e6f76e66beb5b90a89a9cb197cfbe405ed53b1dd51a42cfc9aec5fe7cf778f88031fb7b15b0874d4d1ea87ef3895848721b34fb1a35\n\nEntropyInput = ce6137f720affd106396d9b66540580ae216d5d7dab48ed2729cdb3e587c7d8da13ce39ea8d9d8c22220a96b74e7ee9d\nPersonalizationString =\nEntropyInputReseed = af9f12fddeef001b08a5993f62da5e7c3aff23f882ae874b9f66f28eca1106e6386dd82f07ae1fb6868f186e2ec4f449\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 219fc160dbc136cdc9a7c3407eafde4639602cc58101c512dfbd85cc26b61fc9a94cdf76f15a1de7a46e36ab64aca3eeae36acd6e3d0b3fe59b75958b3eddd24\n\nEntropyInput = 1accff5a19861164c5d2cf542cf41a789f143c7956518ae158d4449ff0c257a00966faa862ccbb363bcf4aeb31089134\nPersonalizationString =\nEntropyInputReseed = f2fa58209759d84bf38a1656bae655669767a902ade22a830df56b32ef9e1c992335eb4cb27eeb142bfd21b5d31451de\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = f214b4055d182cb258d9e9b61251bebc9bf090db662c4e36023cc156964fbbe1cedf691cd0c3d7db4262fb65a5d34b942f909b0f31fc18009766413523dcaf40\n\nEntropyInput = 99903165903fea49c2db26ed675e44cc14cb2c1f28b836b203240b02771e831146ffc4335373bb344688c5c950670291\nPersonalizationString =\nEntropyInputReseed = b4ee99fa9e0eddaf4a3612013cd636c4af69177b43eebb3c58a305b9979b68b5cc820504f6c029aad78a5d29c66e84a0\nAdditionalInputReseed = 2d8c5c28b05696e74774eb69a10f01c5fabc62691ddf7848a8004bb5eeb4d2c5febe1aa01f4d557b23d7e9a0e4e90655\nAdditionalInput1 = 0dc9cde42ac6e856f01a55f219c614de90c659260948db5053d414bab0ec2e13e995120c3eb5aafc25dc4bdcef8ace24\nAdditionalInput2 = 711be6c035013189f362211889248ca8a3268e63a7eb26836d915810a680ac4a33cd1180811a31a0f44f08db3dd64f91\nReturnedBits = 11c7a0326ea737baa7a993d510fafee5374e7bbe17ef0e3e29f50fa68aac2124b017d449768491cac06d136d691a4e80785739f9aaedf311bba752a3268cc531\n\nEntropyInput = f963096540d0023d6703e18248755ad16aea91852a2db0dd0f6a414d2a5822f3224ac8b1d47b01aaecc93ae299081d7d\nPersonalizationString =\nEntropyInputReseed = 399ed54bd846de00d42fb1f92d1ade93e81e32cd6ce73825f0bf86179dd46fd79bc8cbbd3b8834e58cc86619e19b08b4\nAdditionalInputReseed = ee073f9f6145d0a7c09a5e4a12d65baeba360bc9b5d7cadf93e7d2454dfde507af37e49782cf8550dd3a548e8cf98563\nAdditionalInput1 =", " 6a42ffe56dac0b4dc5d84b49698859b3645c920151565bf29f56b6322244bcaa7cd1ebb8ee9936d8ee1d280f547ae245\nAdditionalInput2 = d057c418a758d99a8ee855093da9bc1734a5168a6df9d9c9924e8bb472b5945563d86350dcf3e11aebcbd06a22b9ef78\nReturnedBits = a0cd72e63f49ce4c1d64e21e92546afced2af268549ef48d3ca88afe4d4097f91a52ecd0e7ad12ec0a1f67dd8c5325b78ee507c0a63cf90d64e9c47862acedf3\n\nEntropyInput = 333a0269eb0fb1d9d1e92f55de9e13cd7e24de64f5f276382d3eb2ff356a66679a9a75d2da31d39a940a09cc85d9d531\nPersonalizationString =\nEntropyInputReseed = cbf504cc473c9a6e66493b71b9684e8df458e65d2cc676e4e6ad43eb59172932c0956d0623134a6a3bba23906ec9da0a\nAdditionalInputReseed = abc86c71ae0585827ffe0d19a9fe97f23cdc4afd67978e553e0669d4635ca1df30250843fefd4d1288f6fbc3bfe04a72\nAdditionalInput1 = 15d15fbe7c060e6811bf47c21e93639c00cdcc562f4e02c88f7e347ec14a2c8410fdb2ddc3dfa62ba9ed1758f12017df\nAdditionalInput2 = fff311ea4c5cbd8ce53c45fe8d8106c28eb06d01ec9d8245c29f95b50b13085a0ec28803d733bd0d8a75193e63e21d5d\nReturnedBits = fcdb52bb6e2ba8d896973b9284b32af6364a34a2b80b3e3c7684c200c9e0a02f7bc6c3cd32b159df9b98da07a17baab9b0b07eab214544d5c562e454ec643de1\n\nEntropyInput = 86e4c30c5a7dfcca86eda7723930ab3272635f0ad9e2fd70a2d7a69b6a07dc0cddeabffa9c411198e3cb7589cb29d3f2\nPersonalizationString =\nEntropyInputReseed = e1af1c42cd29dd002e10e5839e8b679d3c5192da5e1b655123132ff1ade22b35651ac6df66fa14f36e1832be7a176895\nAdditionalInputReseed = 5f619073fa2e98b9f06bb4676bb972379ceb727e1e8768ef09e532cf3d8fed5ce92a7528eb55ae552959d74f75dd0324\nAdditionalInput1 = 330e316bec4955d907d7d7bf2b7149f0aaf4285ed1a2b7e387376ea1a4e0858c114ec3ddddf7a1edd7c8a29b1f12b998\nAdditionalInput2 = 405911cf7c6779e02e4740fa9737f189370292494c80621cfaa9f7d16d68219e72d474f8d5a54aa8ea8020dff9c36650\nReturnedBits = e359c3e23315c9c1d69ab2ec96ec3c6c5aad868e58709e101b0fa08c4041248e4d538d038993250d395d9651513514fca5760dcb9970dce53d2d1c2712bc56d0\n\nEntropyInput = d8cc5d13badedbdc2fd41852247a9f2879b0103b4a8186f0a08da7d55453b7484f642a9e5a5182340584d2ca7cd5ed10\nPersonalizationString =\nEntropyInputReseed = 35788b8369fdc3dfd206efb873b5c5215f5b8ecb0541fc0a0e027e868a91053b5d58cc8ca0751e0c0893c868e2322471\nAdditionalInputReseed = 6afcdc760fe62b080f141886b516623971f8014ede86e50d62d307a90cf3512da5fefd37b3932d3d9d86ad0c03447be4\nAdditionalInput1 = 72105702fbf1da4c10ff087b02db764804963fd986de933b757b8fe5a6016e0f2700573925aced85c09e2ad9f9f7b2c2\nAdditionalInput2 = 65f9a3fe4e1953b7d538f6d6ca3c0a73bda2276fe8f80860c07b7ed139d748c3c45db5d96598f77ff863a43977ba390c\nReturnedBits = 7c2b600c3f550671215b03ad7aebf71086ec59aa4f45cf6b3bac9bba2e108f801f6478b098fcc4e063454cd3f64a951ed70f619866c1a4e70b5c47458c09e083\n\nEntropyInput = 07d14a0d9fbc76a155047a93bc0bb2b578fa7dd75cfe9a44bb8709fe3cc2302fdcc06a9c6751f4602a3a4955c0f38c7e\nPersonalizationString =\nEntropyInputReseed = 8babab6b9f8429f554156da3905122cb48c0b901fb6eaad8df771e8d583ba885dfbad02e47524b1981768593bde88260\nAdditionalInputReseed = c185c45cb07e8c8ba8eb31d3bd48a7c864137c689214c2fb3b1d6d6abcda84f2922a862a0955e67695391d60d6f2d1bf\nAdditionalInput1 = 326a5c9c4a1a2b6fdc369fe2a171bf625dc26e23d1a34faacf59bd33be98ff7ac7f16e485b6da3145ea4db37ee4ffefa\nAdditionalInput2 = de096ad13dcc1ee1449c3a0661edee028603590f087474161a7ab8fcfac896a924e14b0a57aeac17fed676f4b9c7168c\nReturnedBits = 60911e6e6455bf4d85a4f76378390f6cd537d7cce88228cf34e4a4889adf62a9cc1070dfc39c254e81a8557bb2c350fe3f462199e377d3796ed139117b6b0f45\n\nEntropyInput = b3458c6b38ca70c44fc6c601e088863fafc953c6b5d3ee57fb1a07f3f65dd5e6dc19aed17aa5530913aca598b26a40c0\nPersonalizationString =\nEntropyInputReseed = faa8d3feabf972e482e5a0b3821c23ba067c45267e3715a4c10f65716a348030d7fa5637e9f000b3e47d786c013fc035\nAdditionalInputReseed = 901ef89ea38203b83249a34a1a8cbd0da4773ccd503d60a395be3a3db113613e6c571a49960a4e99d302b6f237f64d54\nAdditionalInput1 = f2f87693d1f28f95b0a6459c538e82be99a8cefe8a2c7ca037822072e63670dd141873f3dc9e309c6ead40783f46794e\nAdditionalInput2 = 93cfefbb7624a137cbd7b177918823893e77251fc5660a76ab0cfaa3b340ae822a8a75365056f06b0a7e76afc39f6819\nReturnedBits = 5bbcdeb5d7d1ae19e4ef7878abd1ca4f2641d42c765b94a7689172a4e90baae46ebcfa5427a882c1614cab36f186a98dd3a15febc4b23add955f69dbfd5e5d2e\n\nEntropyInput = 6dbcf6f2f3997ed55471f779039982bc84a1c052fbf5883d6f62c0a61db108386e74759d7237bb0efca030aac76bc7e6\nPersonalizationString =\nEntropyInputReseed = 1a16753c195fed27a1abbe067b2b22aff4c49ae7832d18d01cef5ea5c7d5833008036f71e9c77c1629b6f61370b57f7b\nAdditionalInputReseed = ec54395931ac0aea2a8739d4c51e33c8425906005c341db373247e73b968c2c79257cf7ac74353c00fd81a80f4c95b8c\nAdditionalInput1 = dbd6bb5579a10e395b534431f3ab7c8025527bf99e4f7c162d681f8d35a56f6a03729f07ab43897ad0e80146044b1614\nAdditionalInput2 = 5d35742c25620bb795eae41178d7fc86d9cbe050ea702573ae6adb61e16c411b7445548dc535d57371bb11e2cdd59597\nReturnedBits = ba3905bfddcabf6dae311d1fc19fff1f6fc1ce779e38f864b7ccd2aeb1b3d6ec1845305c29d39b8736b3977277ecaf5735d0e4acefccf7778ac3542af815fd41\n\nEntropyInput = 3a9e8099007c67f6e5f98525cc4295a68c5d5135d01f5f66305c7048ca02525caa3f790b2d12a8520e9963a9cdd597a8\nPersonalizationString =\nEntropyInputReseed = 15993dba9775db8a5bf79778a316f2910d4dc0be59c3b21c650e3aa89c8c89b33fc69e9e5d642e7fee16d61b691de2bf\nAdditionalInputReseed = 946121bae27e5804daeba0d7dc7ae0c1c397bfab106e13b8b7c5462b540d147119af5b7c4f9c198161e5aa9be34e2d28\nAdditionalInput1 = e9799421e75bae7086731a21242dc101c93b768fc747734a357454fc0f7c082cfdb79b8bbcea2d1122d89316a7bfbd3d\nAdditionalInput2 = caa04f94b4b9d694e2c4bfa1e8e708b9c00d9c3d645243acfcb879d2e2ba723d9e48908738114eab7d15f8cf36b043ae\nReturnedBits = 9bd50f3c5384eb28d931f03a64eb97ef140e1e81f4c1d9c910cd7d79a40494e1fcc53d82cd32df35d53b05a450e54b7ec71e28359c1273848e5ab117d5ded88f\n\nEntropyInput = 7f2a0213de6738ec62bedab769a5f01732dad2d35dd4cad7a765dbbb6f9101f57b65ec8fc4e23fb3479ce6211ca3d84e\nPersonalizationString =\nEntropyInputReseed = aeb097e9ddc4dfe87874ddb1a856ec3d00fff1b38c8f954681c11e61bac8b6b2e2d8d010e6820f9c4d807b295acb8ab0\nAdditionalInputReseed = b33ad3dec7d529b71e39d59147f79b4884039d1112804fe8c70e174fdd9828c06a4d44d20aa5fc1918c3ee8082a2bf93\nAdditionalInput1 = 8632d221757132bb7b883b7dc26755f62ec2ffab0876168d11ea7b92774c15c553b11320393d64a2262133608ca92a18\nAdditionalInput2 = ccaf3bc3ae9cdbfa885aa8414c1f823c6a3ecc020b619201a52ce0b7516ba1f49755c450c532bfe11c06b9d0e049ccae\nReturnedBits = 4b1c065a288e5eec56b67fb341e25fc7521b794b52b94f9570bdb16583bb6f7a780aea5297496355ffb4bf5a444c277c96394619cc33cbb5a3b2a9f49b00f9df\n\nEntropyInput = 80773d0272ff48ba84b98c817365b097f21258624d0de8529381977950a5e49ff2b79d0f2522269970ea6d484198922c\nPersonalizationString =\nEntropyInputReseed = 9b101ac018be88da3611a236dfb1300c0049947e9f6ebef7a3ad6e1499efeca0b142826fa06f427e271865232a18dd29\nAdditionalInputReseed = a67ee22453dcaa5e4726e3084872145ab60489bcb6e83346c108f3efcce5b3d988b84d58786658d87c2dc3b9035e9d88\nAdditionalInput1 = 546515bf86e48dfb2b4dd21c2b46f10c1e797ab799b51822e8e7cd99ccebcca00b8899ef6af5cb395168aada9056a6c9\nAdditionalInput2 = 57bedda63fc5f792a608be111141a12e522496c086194515909bddcd868be997e718e7c5899e28dd6b123cbcc3f2a8f2\nReturnedBits = 4075461e459f15cd32030551be47528223693c2f44e32443cbe9271eefe74fa0a6e1ec04f4b8f41d7ed6c5f455281a3cba56d952b08b7753f6a3d7da3517317a\n\nEntropyInput = dc132c15af0e214d1b56eb88849e96b81dc17f238eb3d1bb9a659219dbd77eba38ca2796a8011e29cfad76f8cbbf099d\nPersonalizationString =\nEntropyInputReseed = cba23d4fdbb6c11e38012b71ca264bff9d1264bb20a39bb27d86dcdf7d72ce7a4f5c124cdf2aca6aaee20832495181e6\nAdditionalInputReseed = 07e043add7cc14612a82926c09934dea092f4618cce25674972b1f50b2907c7e3d40a25722ea49b0c7ceb6b57ff2d870\nAdditionalInput1 = 0017ff834967cff8827598ff6c00a9c97f0347c34f2523a85dd7d18ff5575756c1f5383de50338d0ab0505841d70a193\nAdditionalInput2 = c404dbc3cb0851b08530f96500f5a2c10d8985c82dec2ba31d4199fd07687ccf124382fbee3fa119938f0c72ac586102\nReturnedBits = 1935cce86bde7087fcab30b5dce0e072ad741c2f281902e1801e56c08ae8b256d27514de92dd48a838ca426820002c1206f86cad37cfd99d3a935e05f56a7507\n\nEntropyInput = e48495930a7fc86ecbfad807d40ca84ba35e346c812090def8f44d9e48b0a40704ac67ec80ae15b12e858ae85a7ed9cf\nPersonalizationString =\nEntropyInputReseed = f4735954d17e99077061c9604e8f1734d61dd662e54e37256c0f8bf276e025d59d21cacc0869ededb44a2aac9fcf2ccc\nAdditionalInputReseed = e796322fc0ef503251f6d4bd72dc5ea8100", "c5a59f1a4fe4837fa8eb2623bc650a0cd48c306f139e0ecd169a51deb2cd0\nAdditionalInput1 = 1c844d24b7cd9512e5035bc457612ebf6d3df6867aa909038bcbc1f474f7d0783ed474e34525a817bea1fbc883961e31\nAdditionalInput2 = 5c5671ba79bd0b83f74d0ed98e9c8b369a2de34188d8b7cada20b3363738d1252ece1e6a26d007acdfc5b6108412766a\nReturnedBits = 40f17e2bf6084a6447f2c40d601e16a43098dadd9f9614d518874623e8e684438c02e127e582b000dfd46df03dd5435edc4f0f47098320fd311afdbb8542c4db\n\nEntropyInput = df4a888ec7363fadd99ce2223ed39577a41bc220d20b253f98dbfc617aff8fe4ac66e5da1b5097228422cf8242baaf53\nPersonalizationString =\nEntropyInputReseed = e16dca80b2061706e8180dce8f59e888f150836a0bbceac179a4b8d882eead78709ed9951102728abbbbf9226a2d913e\nAdditionalInputReseed = febc9f6b9f2b90b4320d5d41e5c5506fa32b164d86d5e7f91d4a360fe179c127bd2bdeb78fe760174e856a5e04ed898b\nAdditionalInput1 = 0aba74cd299e75886c9e7e5293e5915d720da2c8c1cca7f0e1d6f2b672b4014eb4582e97a877121c87956185736ba0e9\nAdditionalInput2 = e451eac802660ac843fc72b66d59f1e1ca831f22d6a361929043f7626f1d82133f512fb1f2d8ca51004f80ed600609e4\nReturnedBits = 968b708ed6b54d2e5a66d46f22998748dfb5cf47e817732a40938bf3593fb251ccf8f2076837715d14b316bfb52560135602ff98338593696bf80a462b214c4b\n\nEntropyInput = 43bc561c4dd1b904a5333a092a670d0d1b61128a13be2e538a329094574819284e414b938dc8b1860b385c293c03010d\nPersonalizationString =\nEntropyInputReseed = eb362136f4ccc9e302505d525befbfa99d8c3336187d5902b03ed75641913ce973743757f97dae9366874ba62bd87013\nAdditionalInputReseed = a901f4daaa638804177a0b263e8cbc81688df3beb218b02316da83b729230a9e5112fb3896b727298755bb9ac6b6250a\nAdditionalInput1 = e33d181f3159fb0874eff5ef8ddd2b51a60b13ccf046f7e637ed27bed81bb604277f7345e6b8f0e09f925793ce417fff\nAdditionalInput2 = 3ecf6233820e6cceddac7b024c490c5ee14c73d5b598c92cda30940471b6ed450019120689aaf157fd87b71b13afea25\nReturnedBits = 9d793dd96b870dfa0267623bd1c2d8bd3e2c63e9f211340f630fea01358011394154145a10659c4d98274a525c48a90da0126a99b85ed5b4b903195f0dddc762\n\nEntropyInput = ffad10100025a879672ff50374b286712f457dd01441d76ac1a1cd15c7390dd93179a2f5920d198bf34a1b76fbc21289\nPersonalizationString = 1d2be6f25e88fa30c4ef42e4d54efd957dec231fa00143ca47580be666a8c143a916c90b3819a0a7ea914e3c9a2e7a3f\nEntropyInputReseed = 6c1a089cae313363bc76a780139eb4f2f2048b1f6b07896c5c412bff0385440fc43b73facbb79e3a252fa01fe17ab391\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = e053c7d4bd9099ef6a99f190a5fd80219437d642006672338da6e0fe73ca4d24ffa51151bfbdac78d8a2f6255046edf57a04626e9977139c6933274299f3bdff\n\nEntropyInput = f1e0d7b1ac7e4e155bb588500f57d0c59969267ea5427e2d7fde1f9c54e67b7f6562bfc1019b8b5799d2a833fdccac79\nPersonalizationString = 86da37245d9bd1fb59a4bc7abd289ea2999258042c5fa696f2da7344bb6ebc5b770ca284bfe642570b52ef47b780d5c9\nEntropyInputReseed = 9c2c9c07cab12cf50f8846148034a416c83366c1e20776073751553cae69da8d1f6bce6bde27087659d69a62e2ba7c3c\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = e0ac06d7eae89469b6c14a31e7f0464ee21f7b30d2264c2de3e435cb40d0e5043ee13dfbc0342156750880b2d5dddb3bebb43b162a8478235c8b87f96d0284fd\n\nEntropyInput = 1dbee767e9916ab322ba461fbf9f7515cfbcb45944a7b471577da087690d94d967018b631e0c1f64da3c805d049f449a\nPersonalizationString = 966b5cd94019d4d90b48ea7f540a698cfe30d7eb25f5f7e5fe42d9f53ebed6e94e733b0794fc6bf30627911e20cc18e8\nEntropyInputReseed = 96e828128f183c76c90ec8341a43561368b77114048ccb05db66128d54c9539d1adc1d72f7fb0950e41b1343a9e4df76\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = c4d3f5c55d3979b174020650ad7a46b423ec446dff2a9e9fe0a782bf65a72d5fcb1896bc1092a8c73f41295e2e7044434f88aa0aca78f7eac40e322cb7c25563\n\nEntropyInput = df588bff3a1fc97a908067da6a7fef08c889ac29ad7d639bd047157bacab4dbdee3dffe575f37d071af94cbd7628d398\nPersonalizationString = 548715cfb28c1bc56453b8c39e24cfd64077c0f6e9d959d51b9f0667b97d3c4e1a179d1a554df845b24c26daec85845a\nEntropyInputReseed = f8c165b5ebd8347a2ffef2218f993877027e977598b4fdac2f65d8d994c7432900f8407ab5aed1885dee5aa2458f5998\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = deed18220bd8f72a34559924f3cad925ee717690f76bc223d5ffeebbb554b61b9d9eb6ac5697b06331e236672677e2e01d6e3fd581a4fa1ebad289797b68955f\n\nEntropyInput = 98555093e443fe8e2bc8d2eb4d3a7abb8eba00b25683a6b31191fff7c043665ec2cad3e99e55bbc241b8edc699dbc9ed\nPersonalizationString = 5627a0a55457db05e3903d4b69ce15f55f933168d6eb374c044e8f1040f61ed7eb24f87f91c68cde050f504b8965dd81\nEntropyInputReseed = 18d17e1b68378801f83e7aa9a6d4b84d3960022c740e6c845869a5db553d2e02479cd92f3c0d8abd3e92fc9c9fbc6a3f\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 7a7f0ab07a540b4e9a3eda3f8bd1262015d8ea6d512dbea05942421f5a73242ac236009ef083bf2e51b19c40d1a019367a6b96fb52d254e4d881550aef0549ed\n\nEntropyInput = 07793bac6461f23e5eb0d1bc60b5f735515458d1530540df1c8e6fc5c3ebfb06b9db60a8947eb629ff7a375fe680d696\nPersonalizationString = c1e2132b77b6c15742e06e856c1549c4ccebd1b2eda93e2c43391b52cad51490fe34157f57be9eb4eff463b059986680\nEntropyInputReseed = 23e47e0c41462f7c619bbcd5b73f9ab1c68c7cdf1ec92c4c37126402958e110e329107742e70db611b93974c393936a6\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = e6dab4a887f48ec33cb293ffdab5fc69595f94c72c5a9bb43f468f75490190b7e0f14f5c04550cb62a6d0ee0c3d834be3434c8229c124087bb985a06b9a37267\n\nEntropyInput = 25cefa0512921fd4a3a4e5e7c48c6201185a6968419ae5bcc6667bb74c35de4f91988a33f25ea88a8443c65643cc73dd\nPersonalizationString = 07ddf125960c346680b4b361c0a9c6dc1008a85ce1861b45ff18907e6e7db41b046e5f016617e6c5b0ceb5575ac278a8\nEntropyInputReseed = 8cf41e5413b0c8ffacbc4dfc119f10b47569359b911448f45c7ad63dd58e872410c25176b986fee8b83966d0098d996a\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = ab58ec5c35600566dd2ee187a5b67dfa65bebe13333670d2a198fa5af0c20294c6cb69d37564d2b2587ea5587e12341e77f47f173d6cc9f9b9e5dedf0ee1a8d0\n\nEntropyInput = 929f1dec0a6d14de483a2fe114a430796d0b449fca56a4ddbbe661bdc26a8df85cafad7b677ccbf1fe4cb0d5e8cb57a9\nPersonalizationString = 0bf8c590a66653c0494750d10274b583d86e540b517bfc23bb3b0c9fde373e456558468603c2115c97d3662e6825f4f2\nEntropyInputReseed = 84030628534b7525dbd4023aed1ab08c4f2b86a7c2fa3bc9559b425cce07c34fac14e963256aea03f74f1122a7a30483\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 199f2dce5bbe32c693151a216fb36ccea7996c313f6b78fa30ad812a0e603965023fc29706a71b753d79244cb9e8fdaff467e0f963426b10ad89a98e987af316\n\nEntropyInput = 7bc5d970186b9e1b0052b7564dbabf61c89cb3d64ff42f9a62d625112aca0486cdf0336c3612254b40cbfba83ab65b42\nPersonalizationString = a25326fef30f9c94423d99759a1ee575536a9715df9526de9a0b8dbcc3a2234cd835615f5dfe7823927355f569ec6f02\nEntropyInputReseed = ef8a0137013be212402e42b28c03ed6420881aa38b3a3e6e90a861116516df1ef732a19e8935ffcd9be7a2fc236783b7\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 29f81ecf3f41d278c01bba9af9bc0fe6009539682f46723ce5b0ff75fed217ad71580b5dac46289e324d824094c332c3955c528257701a14ec2bfecce4f62a6c\n\nEntropyInput = 0c841a245a19295281163b07541590376d31d86a9be99e66cc22352dabb29f95e113ee233d74d3f2b7f2f608830525f0\nPersonalizationString = 28d3581054d87f153aee12edca47bad80bfc9b066ad1e8b9d96c851dc7b8ed768cad007b891d1c9447d43065b483d085\nEntropyInputReseed = 587a1dae75c2a1f2dea7fb42ef7bf38646b76a964ecd7043d8b62fdd9e6a5c007882f02f78fd040561d15a337e59f257\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = ba7bce080963fe2b4e8f0e1aa700e92b3908e18dc78728666904b0220e4077fef2cd18bbea29a2755a3499798cca445bb75269a5adca2f291dd3875457c69a89\n\nEntropyInput = f4afddabe515ca3e776730e7d44461b27e8f72407ca398d3fb578365e09ea8c24d6c4b09724907a610d755407d38667f\nPersonalizationString = 846bcbc7014ca8c6fb042a80d4a8c3aa50b6c5eff15e4b12f966ab17e6514cbb22fb2eed628ee5c2a8acde821a956078\nEntropyInputReseed = b2aeab1165b150908c9bb52c2b7167c149ea4fb4710edc8acfbc63f7652bb552d636a7e6fc3d1e74d3f65461baaac087\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 2a0335c3caeeec7c797f99fbc145654d3985c3c71025c8e4bd4b098801f15d21c272420417d805b0ad1ce68f904502a46130246315957bc07a5db4f3447a84e7\n\nEntropyInput = 6942413e05ac487cf539bc61aa6866ef8cbd9d0f15e1385f37bba5a951a29fc956d46f8740603af7c71800048c8312ad", @@ -5913,9 +5928,9 @@ static const char *kData74[] = { "887d92419e3c839b8b1dc43c6507026f1f851e\nAdditionalInputReseed = 857848c62203307b39728acf11ac8462302d3a41d186778b3f112a86270252f058fbe5767496e47662186b8d0817de02\nAdditionalInput1 = 9a08df0de742fd2e2d55121a58b700dfbff250a4881b02fc3b8952b48ecd4d034d6e7c757cdf91bf7c31dfaf70b1da22\nAdditionalInput2 = 3bf0e4f1291a8bc272cc985878335882c75831510f27963c7c01a879c60c5b67a9a14a656a746a80a091adf6ffb1adf6\nReturnedBits = 69361d61f4cf5ed489888934f320a9acc5383e719f09a1e30b6029bf71d4b4cb54859798ace2d8ee5e681d4acb223b9c119dab2dd07e6db3f7f844c2b46b9c47\n\nEntropyInput = 6f45b55ac62d5ffd452d36b1e4b18cc6abd6ad93e87558b79fbe99b4f4a962b74bad00821019bd126d6f9dd73912acf7\nPersonalizationString = 913a783046baefe428346085fd640caa1874d4aa6974832cacc5b51e78514bcfedd174606bef1721df7a1194a0ccd1e3\nEntropyInputReseed = d9e19ce3197004ab3a4bf995a481149b6d8e59a3970161cb0d3917374c0c86bb5e9bc509bd01b6796fa1e77e5fdddb16\nAdditionalInputReseed = fd31068c90614e04463acdf856b034293a079a816f1c5f3de63b870a9876f7397d2f93bd3f6776b56a78f7178e1fbb87\nAdditionalInput1 = 068e3791b91adb820b27c45a5d8544eed3133486a7d2d0bc503d8abad8b7093f3df214f1e0ac4ff2d347c760b2a605d5\nAdditionalInput2 = 6c55927a349d321d1a2141aeccc3543e9726ffcf3d8fdfe1aed63c61972a213c12ea65d648e476268611e9b08486a648\nReturnedBits = 552b4c4035d964b5eb26e3036445793df67b7321d36e8d2362fe284503b587c961a33b816b40b93d4b006769177c6593c553b6e669076f25a3e2a7214156c249\n\nEntropyInput = 8d492df46257a62e717302992682e28494f84d0f3237c16439efbbd16a94b3356eb7f7c2a0206892045a0d7d36d69f03\nPersonalizationString = b915f3311feadf6676df2389baacccdafc74cf200ed7b99167b33dafa875ce4aac1a61ce54972ec54f9b0901a3b050ee\nEntropyInputReseed = 2e345fe3a471c5066b20f4aaeaaf73921426ac1bc0509e93671535a8fbc016f5967403d6d13b4760491bf973c47a8ed5\nAdditionalInputReseed = 2e8f1f01a7664890feef93152f7b7f05032b4c70c58b5f261ef0a9c2aef23f2a14ee57c3d3465af24289b1c850e52ef8\nAdditionalInput1 = f8c218c996284f757c491cba025fd84cc701f9f83a16f03c314712c2354fee39214ed5994ab24641826bc15ed1bb5f61\nAdditionalInput2 = 146c53dc4af90f26d8c85822810d9bde2949495c23ca2c7c13ceee8221cbe8105491d560e0044c8d50d7e365da41890b\nReturnedBits = b19dd18494235abdcb3b4e99c9355d19d543c7fb7e1048d63d9e25abcc12dcb31549cec2818667713ad1dc35142072ca8daa511927aca71303493e500503be8b\n\nEntropyInput = 2a595f08947d0056ed19ecc8a547867834c125cf1740230a1325b93bf29951cbedcaa6a8f5cbe69801fb9a197ad576c6\nPersonalizationString = c0fb9dbea13863dfbfdb2c0dd864887413794a07a4dd228836f0f6afab901496486a2d508a3f4b784d83382629cddbc1\nEntropyInputReseed = a3ddfc3aefc94dcaf656f4d8eef0065a6d233a76e0a4c26e2d8bbb86459c9e4a173ff8cbec85ebc14712640741427668\nAdditionalInputReseed = d4eb9b12fc2a6fc75a69701c8b5ece02e47f813effb705dbdef0294e38907f5aadf40bdbcc067d0ebc0bf3661a2e0990\nAdditionalInput1 = d3c4bf4f8a3f61413fe1953523ba83bc02ae6d7eea1c8ba288f8e06f0d0276e61667a410f90548d283c4f1ae79483961\nAdditionalInput2 = e6fc29680eef141e1372e17729c9f4407b3f7a57057be1081ce46c78693334bf56867791072d9d18a7b4835bf251712d\nReturnedBits = 08475bfb8e621e12e212f4960e737023f7a3de3b204b6ffeeb929f424ca78c6ae2e0d726237915e5e244616713e88a39df302208e3a324f5444213b70b2e9c09\n\nEntropyInput = 3d5332b91dcaad893df504c7c675b69890b28055dfd3ec7d0ba56990dcda175096ff8f8f9f9ecd6dddeb96b829b98c3e\nPersonalizationString = 34753432b3c6bedc4d2296dffce8a66591b400867f7edf10cee447046f5f767036da9f3f4a02f7b8cba7bdd4365c1fef\nEntropyInputReseed = 1a69af0ff696f9a2fe0fddd26ccf6fae215faf91804461928c884eec13b1dd1501862a738373454e1b449c6026cebceb\nAdditionalInputReseed = dc47e104175f3c9812feed9e143da5cd7e553e3423db5bc8be3b652f577100267ff795804aaf42c3991589e7688a977b\nAdditionalInput1 = e64c0cad3dfc0bf0eba3317cf37b7779b91bf3de3e0ba36d3e16feb0014286596edd364c197847e8732925f971294dfa\nAdditionalInput2 = 1ff3a6bdb7e319a86b35d062cf017ed270c6b5511bc3d63083272e76bf4db9d90e836f18d98f1f79c2e91eeb0bc635e2\nReturnedBits = fdef7e67c3d19f5f74784bdc64d2c23d0a3f027846da2b2afba940fdc2f066d89b63d27e55d3d0a88bddb97e29676894ec8a18268e4bc27d181a867c5a80fe2c\n\nEntropyInput = 156c8c0f44f4a8f17044957b572ed16d54b73a9510d2b260a036ad6ef223f45e124c4ae9dae0fdf5684792da0ff5ea0a\nPersonalizationString = 1472f56d5498564a5b53d2eae27103f41f565d7873b37c37c30472075f1d84d69a8d68c92636ae06aa61678358cc47d4\nEntropyInputReseed = 6bc2bfd44f72982b23b6d22c85f7d601d5941ebe6e9ee9d06a8efe652539ec00b1136adbc4e43aaab76c3ad6a57a267e\nAdditionalInputReseed = a83b1547fadb97e491ef0bdb8b0d006ab16638fdb211613051f0f57586c146882f1062b7f71a8c15bb27200fa83ffcaf\nAdditionalInput1 = ac188da8a895e0807bab61b1ebd73acbe43f99f375c7d29174f675e1667237cedf1d41fc50da277a0db21ee2891a5abf\nAdditionalInput2 = adf9a30b6cd9dac23f193f66df9d606a5765b96cc42c099530c53c26a6d6bcf0779ae060d188e1cc5bdab6c312892267\nReturnedBits = fcc79828bf2c9d3d799d7a0e83583c70aeb156e25df0b2fde030c2775c9986c8054e848128ba38ff5e5b0b1e5b72f9e41726b960008408f5152b1a47072fbdf7\n\nEntropyInput = 5e0dd8e37aa23d0fe79efcb8e5538ee90ffb5733decc83f7677488c4f64c2e0d2a918968a5c7351de9360f23fe606a4a\nPersonalizationString = 5161b794e4a13371b320ae4b2b6b698e4df507402a7582555598089dd9484358d37f891294948512e4198a79de8ca3d9\nEntropyInputReseed = 850ffb89bc23562f3ea03947c1afa7309a0ccdc0b714bc94ff45d66884b74fba0bffce97887f2efc178388f36f0ea95e\nAdditionalInputReseed = 50f605cb940f573c4ef3ddff8caa9a3f544f40fdf583b82cd79338523d896f72f86be1f9bb37d9aca02a2856f713c812\nAdditionalInput1 = da7bcf6810a6b3820548065edbec0fa2fd4bc03e5d50666f98a8bea6b744e04aafa0714582f11b6608852c45ee51df6b\nAdditionalInput2 = 4e9c0c770699656217a0b2dbb466a0fcb0cdb5d4a4a05da40fa2eb546f2f0f28aea575a0bdf6e89352d519db44f47dc5\nReturnedBits = 40ec0e8e3e54cd4fd78f5e006bf3134c378ba619ccf9e7530c79217da631458b5f9135bc8b0d6f2e742c53b58d0ebc18263f9d2ef37a2fa0fb086d2193857863\n\nEntropyInput = 219a364ad362fd8a1d69c1284fd64cc9ec05e6bfbdd133ac9170594b5d95946d3dda2ebcc58deeace86f9dca5ad99c18\nPersonalizationString = b0b27b03fc65effe4610e61916f2e9bd252d47efcc08b84aa505b1befd3a7e9295ca764ac88f099bbecc28301f0f298e\nEntropyInputReseed = 1bccdb4b2ce863fbee104d7a56f2cd88a44a088392883a6db30e6fc7bf5611759c71d53a61fe62b6314d7426e510a722\nAdditionalInputReseed = a06eab3b05eb3649a01be82a356030effdbf45fd71f49b1862ecf33fdb28a7191a34f104b9eda1da4ba48daf9da381b6\nAdditionalInput1 = 88b17e13e02a7e9a3f8263946fae0b6a9052692c3c5cbe858369c4d0b198b9c6a8f4c87ff5e6b2835a7944b911266aa9\nAdditionalInput2 = 828222c8a275427a5f8a963d0d65e92f6170d5089c9a162429c093a28dd69f71135342f16b3baea9a4764e2cc3762267\nReturnedBits = a739f9fee9a40049e42b00b381a1f663877abb776ec655e3a7870bd94bea1a25d3c6d380eced435e498044daf78b349bc1868e4bff6257cf2711ed08e2357201\n\nEntropyInput = f8513c2f6e46f75fce3671ccb3c69158583a873b0dda83d8b1cd548f4e5efd75642f2c23cf8792d51023f31d795f6f5b\nPersonalizationString = e94f7212257885511b15a873d0158fa5ea648846afbcf9d62a7abc4e6909dd43c671fa18bc289f47e2301e9aa69c3e88\nEntropyInputReseed = 487b9c1866ffdaaf6760cdee3df5a930196d30b0ac8db780656577ddfc1ff3508c451ef2b0b478a2cf0c73027597b2ae\nAdditionalInputReseed = 7387b59f8c78e79d36edacbb428fd515ef9e58086059bf7fd642053b0f5706cfe86eb3c35ca0b6f02e5d1304e476e3cf\nAdditionalInput1 = bafc59ef40e59d8c28851212e1c357cce0d06f02c69d14585170ca8eb18396a331d635cf0651319842cee2f7c87285c2\nAdditionalInput2 = 82d905ba69b6c45ca28107beb6698a152631ab48614235f6a9f12e019f66bf326151d9ee84e0cd42b6566dbffb46ec35\nReturnedBits = 163f48d09f3e9ebf9f8647766a0b2e189a2f3a21a5a4e31c8a4f3bd138cc50030ac8bea1c4d9e9aa0b67f34926239fbcedfd1992da165b941cf03b56737737b2\n\nEntropyInput = 0a8f092764d473d48215e947ea8a32b5da8ea86d8ed0d83bce31b1b5a21e7c5f1af2186a39caf9afa61644caef02ef9b\nPersonalizationString = 84637faba756917b0f44ba2e0e26546f5239782e4d9f952ee251367081629e71c20a7459995a7563810daeab74220664\nEntropyInputReseed = eacaded3d89a63b94a5c14c3087306e670fc4ee7d56cafef4c5aa7d553ca89ed34418056a44f5447e2b07dd541ac4645\nAdditionalInputReseed = 104a1541313fc4be9d34bced288c1c1b6fa793e9096f8be5673a2c6825dabef91fd88e45a061b2d897f9b5e8a8ae0ad3\nAdditionalInput1 = e30c9d8aba0bd5dc63d911897e4dcadbeacc3ed9392d8e361b356e02a81d65bdab91f7e9f8dd2b2bf9af0da5100e77d4\nAdditionalInput2 = 2bed42b8c05461ba2756a5f38393d5538d20eb9cf1c06775e7fef7284341f61ccd34b0148d1e870c1992dfd065560ed6\nReturnedBits = 855a6af3e6dddf194ceaafcef6f7ee91f489a61a73b759d41be4d5298510b9902f5b78b1162cba417684519634b578afda9802bd782f04b3a25106f3586ad8a4\n\nEntropyInput =", " ed63e3b88a2f0d6a40b7b36a06cd8d40ec10158ab6c4f8dabdb879e45d22db573320d2641bfd7db31eb6bbf4c6330b9f\nPersonalizationString = f82a5ee81f349a69dfa6a6e53b406bb560cb0339f61b3886237023ae4582b9725b8774a8044ec5134ebd4d7606f18188\nEntropyInputReseed = 7104522c2a69bec7e010d9670d7ab92dd817ac7ff05d63ab0e12d431d4c9aef4d715421c1fb5d05d3aecba36859a6038\nAdditionalInputReseed = 3b83034ea440604d0b7d04857623e9adc0eb9aad4a45b2079863eed3d72e65abf67d255673e769a2e2584eea59f1ebaa\nAdditionalInput1 = 8678e4f831887e96a27c3a8ce0963f4b34bbca25791b06526cb6c55624c33d98a0356be624238cecacba3535e872c4c7\nAdditionalInput2 = ec3452ea2722984bbe6a5b7c22ad58df37a854abc8630b9e21bcd0469eb207e5f44e044f5f666920dd55e81a393500de\nReturnedBits = c340765fe7a3479bef2d7d59e321066f8ad0db53aed4c517bf8339566bf877d53921e6de2650d0080529004a5fd32124ce8e58a040e2d55656b37d9ea827cb91\n\nEntropyInput = 882ed05487dce4b4f9e58ec4f2da1fa5d8ebb4ef9fcbf7b0a0e15c4dccb8e19788f86dcf2885e71a20cbd9ac10a6648e\nPersonalizationString = 05f5bc41687ea1e4c34a69944fbae283cfee4c42b1bbd78fddb0973d0fca948539b6843658b67c30b73191b9a0bf2921\nEntropyInputReseed = ca1603d4c8711404c7bdc12c7c75b2943a4b042ea1d2eb54506a6876952157caf3b152dc75f27f2213645a141577e8ba\nAdditionalInputReseed = 83cda53380888d53515e58154f89d5528ab69f31fbcfca34988cf03c4cae5f60aa6291f32d99ab2a726b6e08d2502cf5\nAdditionalInput1 = 5bf5ca9f964edd91e8ef491fd3cd32faf9cb9d1993d8221914d1751fb0d4252a5ca950e213f088050900b2bd74f5e336\nAdditionalInput2 = dba28dc1d8d615651547867d4ef42519045ee16378143685101da47a27b55498078e8a8f4854052f7cc6f5b02e571ae8\nReturnedBits = 01f11971835819c1148aa079eea09fd5b1aa3ac6ba557ae3317b1a33f4505174cf9d7e940821c9b0e5527a1d3e186a7a83f187c62d3223cf5964ff9526d8484c\n", }; -static const size_t kLen75 = 250241; +static const size_t kLen76 = 250241; -static const char *kData75[] = { +static const char *kData76[] = { "Outputlen = 128\r\nMsg = 84e950051876050dc851fbd99e6247b8\r\nMD = 8599bd89f63a848c49ca593ec37a12c6\r\n\r\nOutputlen = 128\r\nMsg = 9a335790abf769877c9e6cd3d5199e8c\r\nMD = 2ece1768a6ef6568a2dff699613f49d0\r\n\r\nOutputlen = 128\r\nMsg = a4db76d26235e64dd960f4ab6023e475\r\nMD = c7284f7eb5b7c89ff2890addf1c6140a\r\n\r\nOutputlen = 128\r\nMsg = 8d13e66f3c4ab0fe07c4f55ab4bc4ec6\r\nMD = af8ece5999705d0d604cf05481a79897\r\n\r\nOutputlen = 128\r\nMsg = 261b6d999f1e6202cc9e06e203aef6f3\r\nMD = 2806515d35b2fa14dca982edf003427b\r\n\r\nOutputlen = 128\r\nMsg = cc0a939d40fefdc6c99acfa37de10df6\r\nMD = b70b724a91ba865ef434f85048504891\r\n\r\nOutputlen = 128\r\nMsg = aa65f144d632d7ec0f2b391eb8bd23c2\r\nMD = 2c160a9b7473dc0dfd5ba8089e7c7a95\r\n\r\nOutputlen = 128\r\nMsg = d58068a8ef3486dce8c88fb4c7385e30\r\nMD = 5f63f137c7124c6617777f777756c801\r\n\r\nOutputlen = 128\r\nMsg = 32a36452a646beba4bf611e0bf2cfcb6\r\nMD = 3df0ccef456072f3daa5642d4b02bd5f\r\n\r\nOutputlen = 136\r\nMsg = f167511ec8864979302237abea4cf7ef\r\nMD = 20f8938daa54b260860a104f8556278bac\r\n\r\nOutputlen = 136\r\nMsg = 34297d1ae9370c83ae2baa7993638c73\r\nMD = 40a091f062889c81727272f3e4fc96fad6\r\n\r\nOutputlen = 136\r\nMsg = f4453766b7572c3d4a97c2b95d02d1e0\r\nMD = b5fb489da49f500db79d1f1ab0cb98a867\r\n\r\nOutputlen = 136\r\nMsg = 4e6e586ab1991a9fe5bea54a3cf97787\r\nMD = f8569c829df9e3bd4e290de87f0ab4bbe5\r\n\r\nOutputlen = 136\r\nMsg = 2dc3d1a8d03d79a7277b3557b0548bf0\r\nMD = 05b54b3bfbf8958e97a1c85db7856c1db9\r\n\r\nOutputlen = 136\r\nMsg = 16cbf0273eaf6e7158bf635b731c80ac\r\nMD = 8660a4c21d6cfd5a47dc2cc7b867bde73e\r\n\r\nOutputlen = 136\r\nMsg = a0a3dc989c9970b11041b37b3a68885b\r\nMD = d4020f952d6588a151187fe70ed6a31fc3\r\n\r\nOutputlen = 136\r\nMsg = e9474a9e7a8bd81dbcca534d8c78267a\r\nMD = 5ca33a1ba329ebadca76735d27c5b09477\r\n\r\nOutputlen = 136\r\nMsg = ec83d707a1414ae98d088c956ff1687d\r\nMD = e6c1945ec92c6df1d571ef9bba8d60e128\r\n\r\nOutputlen = 144\r\nMsg = 96dbe183ec7290570b82546af792eb90\r\nMD = 762b421dc6374055a061caeddcf50f5dfbb6\r\n\r\nOutputlen = 144\r\nMsg = 70bee186dfacaca737b2b099a4de13f9\r\nMD = 0c5e6530a41b3fba4b8bbc4cef2c7568c290\r\n\r\nOutputlen = 144\r\nMsg = 3ef719bee1b1485cc50e521c2d19a7fb\r\nMD = 3d9aaea9bb2522be4172702d04af3f03efe9\r\n\r\nOutputlen = 144\r\nMsg = 07e4a2db89616043a8387b4cbcb32828\r\nMD = 7d9ec770c2a0123ea3d9cbec3eca1c04752a\r\n\r\nOutputlen = 144\r\nMsg = c05fcbd92b77c08ba6920b1600d393d7\r\nMD = e9a1db5ef2cab2b32d6c8e4daff4d24eaab4\r\n\r\nOutputlen = 144\r\nMsg = e137b0843baff9dcde0a617cb889f3d1\r\nMD = a08532d0cb489b187b67613b6ccc2b3e8e3b\r\n\r\nOutputlen = 144\r\nMsg = 75827fcb0c0848a332d08376666c4b89\r\nMD = 80fe3c82824c1541a6edb6c68e22b885fda9\r\n\r\nOutputlen = 144\r\nMsg = ca12721a7a44544d9518aa0d4e407529\r\nMD = 25904657e9903ce960b56bcc42a4e9ff7b33\r\n\r\nOutputlen = 144\r\nMsg = ef741128cb1abaa43680ccdc7e12192f\r\nMD = 0bd267b9be1cabd995247d9deace127c9d46\r\n\r\nOutputlen = 152\r\nMsg = 365c75b9b325a2e1708fb9d91539343e\r\nMD = 6004bf78fb5f0e181aaa8f9890aaa06a7f03b5\r\n\r\nOutputlen = 152\r\nMsg = 9551d68d4867475fa02ec3ba669c75eb\r\nMD = c7bf34cb74b9481cd031677d2d0ad2cabb078e\r\n\r\nOutputlen = 152\r\nMsg = 981f4788c57eb8d064805357024d3128\r\nMD = 4c206447e85a2cbd4fab891ef3140806a32a89\r\n\r\nOutputlen = 152\r\nMsg = aab231df86e774b3761c099046b851a6\r\nMD = e8d795b389dca8b7b52e768fec79a1b7a60e5e\r\n\r\nOutputlen = 152\r\nMsg = 75668a67645b9f8c0a737bca19231253\r\nMD = 9f2ccbe1ffbefe78979dd23e6ccf9ed3dc306c\r\n\r\nOutputlen = 152\r\nMsg = f8922574de4dee7129eec3037926e972\r\nMD = 93e7fe138a2e2a8e7ddaf8e8e5595c55f98d87\r\n\r\nOutputlen = 152\r\nMsg = 9b0d9b36c46c2cae148dd0f2ffe9a8e6\r\nMD = aab2216446d3347bb51a6240c33dc58cbc054f\r\n\r\nOutputlen = 152\r\nMsg = ded94e2f7dac06b4245a5ae06c63d9d4\r\nMD = 7fcf3586f10aa31cfba4717461958245eab3ac\r\n\r\nOutputlen = 152\r\nMsg = 27a771a406df8862fe9d988f9f82d269\r\nMD = 2d8fed871a7fc7521ade70df9564d525537761\r\n\r\nOutputlen = 160\r\nMsg = 3458d31eb677c3a369d58608715480ef\r\nMD = eca90329dd0e76f5051eb5cd75f5e015f0348993\r\n\r\nOutputlen = 160\r\nMsg = 7243050e327a3a22236772bdc9506cf3\r\nMD = 62770578d0504dff65e54dbe3ceb509e8cb89160\r\n\r\nOutputlen = 160\r\nMsg = d5e102fd62e05073237c292598bbc774\r\nMD = 7cca5b42a17dcec21511f13930283585ffe774fe\r\n\r\nOutputlen = 160\r\nMsg = 9eed6dd16616ac286c2d33722e421f6a\r\nMD = 4c5878233a58f9069f9df74977e217e238b03a78\r\n\r\nOutputlen = 160\r\nMsg = 4cb7f08addb2374f00342f267ef38e7e\r\nMD = 0d140c1ee0a89f69e3d5acacb282bc71230d546f\r\n\r\nOutputlen = 160\r\nMsg = a035c12af3fb705602540bd0f4a00395\r\nMD = 64689beaddf7060d7043f97d102cd14ee2c83542\r\n\r\nOutputlen = 160\r\nMsg = b62bae726e14fe9ed55bfa762815f15f\r\nMD = d98b628dc2aac97ea43a7a843f55e3d7eed5c1df\r\n\r\nOutputlen = 160\r\nMsg = 70cd55d250661efa8cd5aa0b7ce231ad\r\nMD = 481f166894ee480648b093b91827e1847b7a8518\r\n\r\nOutputlen = 160\r\nMsg = e8dd215f3107d4f2b7fca3ba036f869d\r\nMD = b727d3db9edf072ff87a1e6920abce8c66c356f2\r\n\r\nOutputlen = 168\r\nMsg = efd99fb27a8dc1c9f31e5483b35784a4\r\nMD = c0cf862a4230b413d88a0205a17352b1683ad1b8e2\r\n\r\nOutputlen = 168\r\nMsg = 05a32829642ed4808d6554d16b9b8023\r\nMD = 2848371f7341d499fc848ea8f249a69260f98b10ec\r\n\r\nOutputlen = 168\r\nMsg = d244e11f506eb5ea5b4a6b328cdc80cc\r\nMD = c1dcfb1a8c6af1f3faee61e7e4c6f99d774405a238\r\n\r\nOutputlen = 168\r\nMsg = 9e8bd95c7b59826a7639adc704dc1ac5\r\nMD = 2dcd280f1530bfaeb7361a0caf1e3c1b7617e11665\r\n\r\nOutputlen = 168\r\nMsg = c2e6e39c94baccf48efcb08f2e08084b\r\nMD = 1062add607a6a79ed9a27413b6a6758eca6a71f357\r\n\r\nOutputlen = 168\r\nMsg = 81c8bfe6fc0b1e92ddfad4215752bdd2\r\nMD = 3b37b980afb04ada89695c70c27eb887a913a502ed\r\n\r\nOutputlen = 168\r\nMsg = 27583ecf40b46eae9cf7e6c708c4870b\r\nMD = 9c6c40fb1e8b281541e979f7f2700cf0419233fbe3\r\n\r\nOutputlen = 168\r\nMsg = 56ee0025d5dc36cb53552dfdb9713127\r\nMD = fc20a0bc0e9e0f5670758bc3b5f50bdfb278d781b3\r\n\r\nOutputlen = 168\r\nMsg = 91edd2a26865b659598f7f6c1c94c2e7\r\nMD = 52cacd1c121c20973ad01e53d1e418ca15638084aa\r\n\r\nOutputlen = 176\r\nMsg = 7ceb1e7161c9170d3c6ae5cfab3b4e3d\r\nMD = 420890852bd43a6399f9fe1760a76a26540cf03f28b8\r\n\r\nOutputlen = 176\r\nMsg = 59bc722152f2a73b17a7bd9a5522ee64\r\nMD = a4880b7b6049284de401592ced25d1c05a55e90bad5b\r\n\r\nOutputlen = 176\r\nMsg = 004da551df7139df9f34299ff0d5ce59\r\nMD = 41deaa74c79677f8b5e80e26cd2f48d8b30fc939ac57\r\n\r\nOutputlen = 176\r\nMsg = cf5881a68d477d9b2d26dbcdf2020940\r\nMD = 081bd131f9b131e28beb9f76a549bceac680ea9103ed\r\n\r\nOutputlen = 176\r\nMsg = 497a69013eeb665c73b60ba34397b019\r\nMD = c80ed4ac9604b1bbd23ca48bcb8b01dab730af9d1c73\r\n\r\nOutputlen = 176\r\nMsg = 08206d367db60c75ad9b3c8bbfae70ea\r\nMD = 904062b64201aa792ad9dd2917757f96c707312694c9\r\n\r\nOutputlen = 176\r\nMsg = f03ced4f360ecee8f76248536e1c04a3\r\nMD = 09b5166e6eaec706ee55931e3b5947803dafd8c9362c\r\n\r\nOutputlen = 176\r\nMsg = c7280bba55803bc5a86a11c366467fb6\r\nMD = 32d1367afe291d16a06c48c59ccb01b64086c55d1336\r\n\r\nOutputlen = 176\r\nMsg = 0d6295543e7d7a46c70a9dbff7ece755\r\nMD = 414cfca0e209e5a979d74cefb9bb1aab57526a7a8609\r\n\r\nOutputlen = 184\r\nMsg = fbd93adb9e9176398cf1136a1f02c6df\r\nMD = bed2e63ebcb926a5a18d523741d1cbc9f5ecc98a97d9c0\r\n\r\nOutputlen = 184\r\nMsg = 4c1a84f9eec120ad7c5dc0b1015778da\r\nMD = 854ec602ff61e496ad68143a94a290ef1af167735d318e\r\n\r\nOutputlen = 184\r\nMsg = 4c9a0106bdf32f111c983b3fd9c7b8e6\r\nMD = d4d4d9225d523ba24844c5f77d82da81b4861302a0db5b\r\n\r\nOutputlen = 184\r\nMsg = aa369a4009f21fcc54815d8fd9cb2f45\r\nMD = 5aa0fdcf526ede4bc11e36c0128dbbcb5893ebf945b9db\r\n\r\nOutputlen = 184\r\nMsg = d3a08f2cc59c658a4c69176ff0c1830d\r\nMD = 47cf0672e166060135762779a673491c864600ed004b3c\r\n\r\nOutputlen = 184\r\nMsg = 932f457305a9a14330a29121c58e074d\r\nMD = 205e8affdf54f6d475ff391fd52915e4c0afe5b8a6c18d\r\n\r\nOutputlen = 184\r\nMsg = 03aefbdad93b6896dcce1c729fbce988\r\nMD = 7e84bc8d013ee9c40d29b570b2ab37ad93bc74ada2d51d\r\n\r\nOutputlen = 184\r\nMsg = 2d31ec167adc7a023568dd02f71c11b6\r\nMD = 25f5715991dbc0e4f7029fc9eec8e64159d30e669cd792\r\n\r\nOutputlen = 184\r\nMsg = 7bca487ff0ce5452d92e225c9b8c5bfa\r\nMD = d45f7d6c309543281f62bb91f03ae976a3982e690cf803\r\n\r\nOutputlen = 192\r\nMsg = aae474370700c8896ff1bd90df4de3b6\r\nMD = 73750ba855ce376034dd5dc9c1cf54e3e2e65bb0a1c7209f\r\n\r\nOutputlen = 192\r\nMsg = 431d4c79faca0e15b720aba4190ee430\r\nMD = 6fe71e38285f0c216f08ae4ffe8af13502538a19413bfa0e\r\n\r\nOutputlen = 192\r\nMsg = a0b250e40e54e3046564aeec126da60e\r\nMD = 6223b013a47db143f7fd3a99b897cf8ba1b394bfc58fe0ae\r\n\r\nOutputlen = 192\r\nMsg = 64465d136f9081e293b3aaee1a6310a1\r\nMD = d664a13ff90ad944fa60040904e06bb69a8ef39e84de7707\r\n\r\nOutputlen = 192\r\nMsg = 382ce6a97be09193404b5f3865e6baeb\r\nMD = b824c8f435b8f86863d40522bc5875be67bab4f798794c7d\r\n\r\nOutputlen = 192\r\nMsg = 4bbae3b83ecc337e0854273d3ab17467\r\nMD = ", "f6dcb321edee6846adfadff9868f2ae5341446eed3a257f2\r\n\r\nOutputlen = 192\r\nMsg = 70ff9f09596e13a9ca6a73d0bd95265b\r\nMD = 06eeda2bbdefdb2dd1567b6d198ab73b742d6c923ba0044d\r\n\r\nOutputlen = 192\r\nMsg = 672630af113a015cea520e6e48bc8726\r\nMD = 25021f325085becfe19e19093574e86e32ca51605c0ee895\r\n\r\nOutputlen = 192\r\nMsg = 500e735c87c19291749b653953b724ff\r\nMD = 4848f7a15cdfcf2cafe00186ff688eb626bade0e0877a894\r\n\r\nOutputlen = 200\r\nMsg = c1b88c92ecccd4755987dfe1a915f986\r\nMD = 6e555538878906721fbd2c8334f4934174ae5317cd249e92af\r\n\r\nOutputlen = 200\r\nMsg = 593def2e2124b69fb8e139272e922e71\r\nMD = fe1119ec2a57d3f22561b9675d8091adbb50dc702363afd61c\r\n\r\nOutputlen = 200\r\nMsg = 2f034a5fd01e46c9bd1951f1a76e4f3e\r\nMD = 45e7e61bd5cc353eb81b83c6f135079893667c9b52475ee096\r\n\r\nOutputlen = 200\r\nMsg = dd71192a4a9c80781b418ca3eb1d5671\r\nMD = 14d8f04d32b86eea2777797da4e96e4763022f5383310ac9de\r\n\r\nOutputlen = 200\r\nMsg = 86bbae4f6fb8d1d54f026fc84fb58540\r\nMD = 61789ea823deaf5c0eab33f10d13edc49a58dbd3f2dda3428f\r\n\r\nOutputlen = 200\r\nMsg = fbdf1a638c314f7d4c06d8133c6664a3\r\nMD = 6b5741086698203f572ab5eac2ca3b4aa17b9374dc943f0fd5\r\n\r\nOutputlen = 200\r\nMsg = abcf1a831fb7db1715f9e9b142c6c39f\r\nMD = ec1370181cc07bfd882b0fc33f964f987542fec1cd856c8f58\r\n\r\nOutputlen = 200\r\nMsg = d525aed5907b542bf35ec5cd6c167769\r\nMD = d025c9553362f7010e38a9aac418255ddf3f68243d55369770\r\n\r\nOutputlen = 200\r\nMsg = 489f322110002548de11c52e10058945\r\nMD = ec9804e417e0ec0f465d102f613d3902e0534dafe40df2601e\r\n\r\nOutputlen = 208\r\nMsg = bf8594f322de3d179722d182273f51ba\r\nMD = c2e5b8946c6c73739678a3dbca41a8a615a0967773a51d2fb387\r\n\r\nOutputlen = 208\r\nMsg = d87f23db7553ebfceaaee817a49b0f1c\r\nMD = 6136ccea5eb15b2229d6fc169db69d229fd0fe7a02ed6d87ea58\r\n\r\nOutputlen = 208\r\nMsg = 521701465c9acc253eb47b5c0b3c5a99\r\nMD = 24581c251ce64fc80db5a59718174a3e50860b6ba6c3c2958bfc\r\n\r\nOutputlen = 208\r\nMsg = 87f6866a72ebbfb9dee65892a2ea953e\r\nMD = 81c720730917bfe26ab5fe8a827742a42cea8048afa2c42b74f1\r\n\r\nOutputlen = 208\r\nMsg = c3adc0c2ffaee0394fde2b061d12f4bf\r\nMD = 3ef8f195b39e065ecf350d3dbbd79cb148c03bbeb2401576ff27\r\n\r\nOutputlen = 208\r\nMsg = e4a96e93bca819d46c7c31164938482e\r\nMD = 1dacf817ccef372c343dc3db365abe2af088379a226d9b1a3b46\r\n\r\nOutputlen = 208\r\nMsg = 07e3a2e0640ea1a22203706b62b54471\r\nMD = 95ea9f55a285d83174b3cdefd95bcda974e484cfd3b50d84d17e\r\n\r\nOutputlen = 208\r\nMsg = 6fe4a3c04e258859e3826140222c6d3e\r\nMD = f1caa4de0a00fe7be1e882a427a1932418188ca58daeaea57e62\r\n\r\nOutputlen = 208\r\nMsg = 368bccbd80655a012c3a9468f42a28bb\r\nMD = c46ec72fbcbc7fc9c9a3e160f66426a7e7b58da1072cd92aae43\r\n\r\nOutputlen = 216\r\nMsg = 606e64147e3db716c3d20d12144c9db2\r\nMD = ae8b8acaf035d9d42f53c437fb4a08b129ac6e29b7abaca6c59ca9\r\n\r\nOutputlen = 216\r\nMsg = 938ded9a183b6faa6236347ada548ba8\r\nMD = 5f5d977ced561df28906243b298c2974035e3bb83f3d3123f93dbd\r\n\r\nOutputlen = 216\r\nMsg = 9d3218a3b9046e80c344dafc5c9ab416\r\nMD = f20fb033f7a4c01254e580556b36aaf607a904f0d8d87b75bf2186\r\n\r\nOutputlen = 216\r\nMsg = 9719a6f3a37e1af1d79016a5056b9822\r\nMD = 9f23c82a7a958443ab3851f0c1cc1dee339c282dfe9d76d5bef4b0\r\n\r\nOutputlen = 216\r\nMsg = 3629384895a8304336460ebdcac42216\r\nMD = 078d5e9d7b92a70da55b31d0e82ff2018759b9b91deaa3f43372e5\r\n\r\nOutputlen = 216\r\nMsg = 8582cf482e3bc15988c987fb075dda11\r\nMD = 4f03cb4d9d119301587e5b866d3cb3872ae8dcc372ab121f3f1707\r\n\r\nOutputlen = 216\r\nMsg = 1bbceb569ce7a3c5ce121cac63bb2ba0\r\nMD = 56ac3177da634f0f4a8d0bc49dc6762193218ad80aec2290c50534\r\n\r\nOutputlen = 216\r\nMsg = e68a402884a458ee49509f77d18fa46a\r\nMD = 9dae63347ed29e71c73e8c589184c5c94a85051bcf841727681a6b\r\n\r\nOutputlen = 216\r\nMsg = 4a37b8498861c3cb5d145b35c71f9c86\r\nMD = 69f8eccc9dca32fb1725f912899bd55ef8e5cf6194710acee4e779\r\n\r\nOutputlen = 224\r\nMsg = cd10343363fe9ba5558a0d547bc3a5fc\r\nMD = 750120acfe4cb4181831b8e8793bdd3481eb9c45daa7aac24035c8ee\r\n\r\nOutputlen = 224\r\nMsg = 1deeeadcc8711b5c4f0234f033b15252\r\nMD = 4cb4e14dbb2e0623d061cba81b01cdc9efc547b8659ccfbb58c56402\r\n\r\nOutputlen = 224\r\nMsg = 64b865cff25adc9364ff36eb75cc17b2\r\nMD = c4f83d6fcbb3f29dfb3d8ebcd052ce6056bcab730b794458e6ae2ba7\r\n\r\nOutputlen = 224\r\nMsg = 90723cfd10c22113bd28dd4c09a5843e\r\nMD = a697b354f636a1cc9985590bb84aea11dc8ed80ebc95f90911188279\r\n\r\nOutputlen = 224\r\nMsg = 2c9b5a2717f05a6db21a2a5149c51af0\r\nMD = 76af83b5a0dfdbbca38c1befaaad3e63ee45a3325bc584c1e0c22ce4\r\n\r\nOutputlen = 224\r\nMsg = 9d1336eb5e7e2ab35dbdf9de54aedd4e\r\nMD = 93788a24ede50f27c922c10bf3a9cd20c3d84bacc0cd6fd3ece586bb\r\n\r\nOutputlen = 224\r\nMsg = 21ccca432f535e4624b7ab39ff49c8a5\r\nMD = bd62b3ecbd2bc05b9cfc4c1248af8413dbdbdaf19fdf60d3134bdd93\r\n\r\nOutputlen = 224\r\nMsg = cd65479018c98f9e784485c42fe58f1f\r\nMD = f5e4adb0747b70b66ba3407d8b4cf0fe64b8a312eff550979b515079\r\n\r\nOutputlen = 224\r\nMsg = 2e0b24fc8274fc7644d81796d0b053d3\r\nMD = 0691797d9f24556c5dbf1fbb9c5bcb447cba326ad60940d0c55f25ac\r\n\r\nOutputlen = 232\r\nMsg = 73eeecd1f5c1a64fbbece5876c101e32\r\nMD = f297d2264c57b39a2cb988e68d721f4bb1690aab0c302a9048608c640e\r\n\r\nOutputlen = 232\r\nMsg = 5f67c964bfd9fb70f56ed94565898393\r\nMD = 52d45923709c9df92ece412005c6b953166716b2719478e8730941a4fc\r\n\r\nOutputlen = 232\r\nMsg = fa43adcdc394f77c4e64747f19c833b7\r\nMD = 32f7d93bda1aece6fa39095c4b55e9a34c4c56a18cd82d5a22f5ef73e1\r\n\r\nOutputlen = 232\r\nMsg = 4be0a6f888f251902eefcd035f02e9f4\r\nMD = bf7390dfc6aaf8f56d23979ec1d92d2092de3fcf170747ebcc32d1ef9d\r\n\r\nOutputlen = 232\r\nMsg = 71eb3e6f0e8845ffb1e7950dd1ee875d\r\nMD = 888c97aff7adc72af2f2c8daaddfe661bb8571a1ee9fdd6bf9ada0563b\r\n\r\nOutputlen = 232\r\nMsg = 9a137bbeb20d05f3d4a2959a1d4d47aa\r\nMD = ca8c36ea428cb2718feca0451e3d98613ef27b587b43973773dd2f2e40\r\n\r\nOutputlen = 232\r\nMsg = 43707282fcbc66599cb04ba3138d31c0\r\nMD = b9a7cfa9f54c0ea302182d82324f76dc0718d266879c1b9f00e62612d3\r\n\r\nOutputlen = 232\r\nMsg = b232d9a085d7d13d5e7e86616a32278e\r\nMD = ae8dcf860461325b6359078ed3af5497be642b31e2e69200fb94ef773f\r\n\r\nOutputlen = 232\r\nMsg = 64e7bcd2bf9a94b420aa117a53bd0b2e\r\nMD = 6316b49efa50b05be9995572b6da84a1b60820ccaf2911c6ebfe1db751\r\n\r\nOutputlen = 240\r\nMsg = db8e4d7be53d2396fdf82726b2e57a1d\r\nMD = 1aa263d0ff30785a74ad2ab0aa635ced434de00e39b3e544aebbfdab0adf\r\n\r\nOutputlen = 240\r\nMsg = d94aec50b9725a976ef047e0a8457ddb\r\nMD = fe3e414232ec75a304cdb8efb854c14982a20659e6120ce0cfad027dbbe4\r\n\r\nOutputlen = 240\r\nMsg = a265cc7609106afe878f41bebcd30dcd\r\nMD = ba648549536ff8a6e9acf75cb44f989fa9154297039f8b1c5cf14a8d59e8\r\n\r\nOutputlen = 240\r\nMsg = 52a10c3726f7d4be303e17edf530b5f6\r\nMD = 3beb8559d3331fb86d13e2910a9a6d423baeef09af488cb7231bf5aff200\r\n\r\nOutputlen = 240\r\nMsg = def73dadc3bdcd938d2c59a76a8d9322\r\nMD = 3a3fb3a84ef8006c2e5bb946013ece9551105bb883d1bbf90a21247f162a\r\n\r\nOutputlen = 240\r\nMsg = 3e3acb7c71e82d4c557bf7a95093d6d7\r\nMD = 9b7729cf16cdbf5f1cd0582a1492755d48fec6c55510ac0b3770a2bd32ee\r\n\r\nOutputlen = 240\r\nMsg = ed81dded03dd2b214c939579be11e764\r\nMD = 7c48fc1782857b5e2f0502e58f516cbc4548598dab186cadd0028fa50ba4\r\n\r\nOutputlen = 240\r\nMsg = 22e1df25c30d6e7806cae35cd4317e5f\r\nMD = 7a16ecd689370df719ca1e4f5add393d23a2ba4cb0cb1d22e0090ecc1461\r\n\r\nOutputlen = 240\r\nMsg = 6cb98a9dbf7c4982ed9c2d4a71b62da6\r\nMD = f0b7d6013b1b37bec7424890067faa81f345751b31ddd0fd304d0bd00ca4\r\n\r\nOutputlen = 248\r\nMsg = 5d8e8b9854a597c3277395cd3dd5c28f\r\nMD = f67d83cbe49b580d00c42a5fdd6446a755e227b57e13ec3072fe0fadacc950\r\n\r\nOutputlen = 248\r\nMsg = 44364eae415dbbfdd75dbc38a998387d\r\nMD = 1c97c7294c140a1c57c5efeb2d7fc2769d53ce6789d70af2c8d0ae4a5ef858\r\n\r\nOutputlen = 248\r\nMsg = 6da13cb59b6b208210ba6c34716e0c5e\r\nMD = 970f21db638b8f59ec8af7e2d713f56933a19c1c830fb87eef9e324f3ec890\r\n\r\nOutputlen = 248\r\nMsg = ef46ba25fed903837bd6f14da02125b2\r\nMD = f7b188cb797551ccb5c431d405fe609021efa437233a78cd7afdaced081472\r\n\r\nOutputlen = 248\r\nMsg = 1a26596839fb83304bc469fbb56434d9\r\nMD = 0a610c3dc22292e8309b335b5030078269fe6f5b39d50ceeadea39b4d9de0e\r\n\r\nOutputlen = 248\r\nMsg = 87d5aa9f54af9d83b1b57678902059a5\r\nMD = b2274f89944d2a84aa57d8d8b470da9036036d74bd1cb0adaaa2935ffdfa3b\r\n\r\nOutputlen = 248\r\nMsg = da044864c8217a77d663aa3bc90d6716\r\nMD = a209bac56d92f8e6b2907b934322951cab36cf48f00358ba2e45364be416bc\r\n\r\nOutputlen = 248\r\nMsg = 381e6b77a78a3c072c9d5be23fc11d50\r\nMD = 20a8e73ec0e9ce0e6b8a53f41f63e8df06bc54a20b30bd5515210a3f5c36b7\r\n\r\nOutputlen = 248\r\nMsg = e1095a806e6e42bc225f85edda98ff55\r\nMD = e94ebee167b533ee2ff4348d984e472695e1361234a2619310222bca76b223\r\n\r\nOutputlen = 256\r\nMsg = d94be6703183babe2a30331b0028193c\r\nMD = 0583c92e58ec7df9365dfa9ae3fab8bab0ae1a85c24cc83475", "1a39159fe17d77\r\n\r\nOutputlen = 256\r\nMsg = efd1c510ed89cabdf29598c0e41265c7\r\nMD = 117df5485b9c7d13f31e7897da27d508da1437fbafda349b33715e73d935c615\r\n\r\nOutputlen = 256\r\nMsg = 35f05940542b20c76f0d26f0826d78e7\r\nMD = ea14fce8784800d1153d46273b377ad7e2ecd69c0203ae508dffe5cf6d5226fa\r\n\r\nOutputlen = 256\r\nMsg = a35ee6136d2e323ffc855c709c5426b3\r\nMD = 1005e8b44095c70b7fe22bf2eb0be4b46ea09ca75ff8ceb0167b86e4e7bc01e8\r\n\r\nOutputlen = 256\r\nMsg = 9de0f29ab812173dddb33afd611b6787\r\nMD = c7d46e50d46ac4c1899778b36b06b2ac624e2b83c9e01deb5d47c0b82e41df71\r\n\r\nOutputlen = 256\r\nMsg = 049a9a408e559aecc24b3eaeb3164a8a\r\nMD = 9eec3746f1ab442cb915aa0df5c8205108d35017e6998351ee70df7340564cc9\r\n\r\nOutputlen = 256\r\nMsg = e01cbb1ab95410653be263b1c63e9e53\r\nMD = 4abd4c46f3d06e4fd8e0e7b0a98496159350ce8af7ea331772895d71ecf8af63\r\n\r\nOutputlen = 256\r\nMsg = 22634f6ba7b4fccaa3ba4040b664dbe5\r\nMD = 1a3e90821cd0a88e5a6da728bacaa30f7a1086220e72d1bfcff922034d29e629\r\n\r\nOutputlen = 256\r\nMsg = 0ad6dcfcb33ad0fe51b0bb94cbd4d9da\r\nMD = e97c9f53eb6128128b0c40efedbb61acff8a616dea7035f102addb1f5d38df68\r\n\r\nOutputlen = 264\r\nMsg = 31fb6be396d8ef43f09a7687d60fe70b\r\nMD = fd982f75a66ff3798b35b41735a4337a3d76a5e5b7cfb652bcef82b418c51daf63\r\n\r\nOutputlen = 264\r\nMsg = b9978bf8006d4551a3b905689a60a8f8\r\nMD = 0dad76a9d67cffaaa23c98f2657ed832d2f95576f29e10681354e810f478708960\r\n\r\nOutputlen = 264\r\nMsg = a479e25d7777bc8fe36d6e0037bcdfd0\r\nMD = 7be13f84f3832297738997eb7986ccf3d1bf01a6cd3b80c8e7a52644312cdaeb6c\r\n\r\nOutputlen = 264\r\nMsg = 0242d981f25245a3958b75c364d2c993\r\nMD = 19396a40377259d78d4fb54ff4eda0b8f787194058b06cef56265c12a4b791a7b6\r\n\r\nOutputlen = 264\r\nMsg = 5dc1c80a7222096061bd40e9884ad4b7\r\nMD = a3125bcd727c879195b4c5af18da122bc8c43f472e88da841891493d4a202bdf27\r\n\r\nOutputlen = 264\r\nMsg = b2d13f4b112c07a623cbecf198aebd4b\r\nMD = 63232f5d7ba05802ead9871c0e01ab3a51ee236cf48a1f4080ccc1098584a500c8\r\n\r\nOutputlen = 264\r\nMsg = 287eb556d3afce478b22e6ec16561354\r\nMD = 55695ec7eb5390855ce2bdb3d511f6e9142f5d83043ef7d21f4a05aecd5fef5147\r\n\r\nOutputlen = 264\r\nMsg = 784ff7a7120d59ed3be228d9aa3a6b65\r\nMD = b11928c301c805147e9612ada417f1f8b8892084696715c01ed02a7ca3a0fe65ee\r\n\r\nOutputlen = 264\r\nMsg = 4002a1c254eea1b8d19d5e5a977f5ead\r\nMD = b8e44fd448bbb543f6218bfb4e54566f56375bc34f8909a065a1c6fe66bfdd7235\r\n\r\nOutputlen = 272\r\nMsg = 6c05ca3e4adf27a7cd58f3dba5b377d3\r\nMD = 277ccfd7ee36bb1141eec0a99650498375ad2025cd51ff3b11e57efe3398384c0b61\r\n\r\nOutputlen = 272\r\nMsg = be8d6e95afe3352398ab8c46f6837197\r\nMD = 436068899fc704424cf9320f74ea459520ad2aa71100d63a3ea35d0920b8591640d2\r\n\r\nOutputlen = 272\r\nMsg = 7851f0c1af7177b47d571ef45c1bec7e\r\nMD = ef86289f9d2d3a7fa0ac43b04078d3f66b080d186fddff37abf14d75428335d52b14\r\n\r\nOutputlen = 272\r\nMsg = ab1f4d58e5e1f6cc779f9c79d9840efd\r\nMD = 7f86c629c003b280a6b846fb80a64a6b934f74ca1d2da58c436221e0c8ad0e5bef91\r\n\r\nOutputlen = 272\r\nMsg = e65af6eba1ef23e092f1e292e9db9373\r\nMD = 1768420cf1715a683b1f4362ed5f1fb526abef00c6da0956f449d6ab6b43549e4418\r\n\r\nOutputlen = 272\r\nMsg = 39b8e4d45bb2171a2e8add1f599c31c2\r\nMD = 441a42b95bea14c4de59c0c84f5c6b342f69a57bcf20d49eaabda3c203fe7469c0de\r\n\r\nOutputlen = 272\r\nMsg = 817699ddfa19c74ef86a35235dd37142\r\nMD = e4d8d262fc4d14f06262d7e8680e067f12f7f1c5f16fd716d222785faf317de76073\r\n\r\nOutputlen = 272\r\nMsg = 14d7b612c9317f74a3dd0d52b1ff068b\r\nMD = 161133943424b01b527e068e564d41e10c76f11f8c037b54956f59799f7fbf4b86fe\r\n\r\nOutputlen = 272\r\nMsg = b4198bbe3b74e99cfb67ba6b0fed218e\r\nMD = 120dbe573475318958ed3706b12db19b1aa913c0244596337256c2abfb214f30b818\r\n\r\nOutputlen = 280\r\nMsg = 232932787545f1472327c69bf48d4541\r\nMD = 0a8c2486eca2cf405ecd2c470b053134dd555ef63f1e0a40162ae839c142f6a31b1194\r\n\r\nOutputlen = 280\r\nMsg = c8dc8746758e816050c9af7669aacb2c\r\nMD = 6ea118e6e5f94e479ea25f8570e6ffaa970509cc1ecdc49f6b7875608520510f863c2e\r\n\r\nOutputlen = 280\r\nMsg = 5119fa5a2050a98d065f7d58161bc069\r\nMD = 82ee650cfd66c0b3ccf2cf2dd38af0d53c35906730929b6e08be092669b04fd3899e68\r\n\r\nOutputlen = 280\r\nMsg = 1c85bbb71d5035f88ba97a785b88338e\r\nMD = 14df1e0e753711da0ecf22f9cc680f601c3773d36332fc4a3999a190a39d377d3b7612\r\n\r\nOutputlen = 280\r\nMsg = 7263e1e02b649db6ca6349f6811cc3d5\r\nMD = 29fa11b87603f1716425ccc5fe976a4f297486de523e8fc5395541446bdc4bd712c866\r\n\r\nOutputlen = 280\r\nMsg = b64b8a4367fe61337c57d2afe0e24841\r\nMD = ddd46cc8947eabb2cac38b8efaf723f49cab562b34003b67cacb9b79eef4fbf3f93a22\r\n\r\nOutputlen = 280\r\nMsg = 5237dd1755842fb9e6b05395c309b27a\r\nMD = ad6249f9b7c82f3d8629107cd46a6305de395a1c9975b150eddb3b5732fc627b1d2516\r\n\r\nOutputlen = 280\r\nMsg = 9c2791a5217557843180c2dc983619ad\r\nMD = 389792af36ec599b3f20c36ae7330ad179c334dd98d8667b936860f93c612cf52f1da0\r\n\r\nOutputlen = 280\r\nMsg = 3f493fcdbd50e1ff2469e73ace9a0fd3\r\nMD = 74c85db2151f1552929594c3df4b0b57fb10945e94727811a5a04b63da7dac94ae556e\r\n\r\nOutputlen = 288\r\nMsg = 46ebbd7578e17f867b723c41b5bfa16d\r\nMD = 769adde27ba528586b6a2fccc42c7adb40a6aff905cd59f1c51258c72702615cd465ff46\r\n\r\nOutputlen = 288\r\nMsg = 0f1124928660658aab0a581fe5aeb181\r\nMD = 744964f4a20589f18f451823fe2125933e4ab8573c5bf0066bcd1229e05a12e7ce4b43f0\r\n\r\nOutputlen = 288\r\nMsg = e9967d7440b6f3d21f700615243671d8\r\nMD = 7e4efb0f6c8dc4b21d211fece5e9e33a69b8dc963373fd2a35c7e31519c489dcac4d6ec4\r\n\r\nOutputlen = 288\r\nMsg = d0cd37c9d1f77bfb8343ac648e8fc46d\r\nMD = d32fffe1ff1f309fadb62d6672594d4b35e3e5ac853820b0b571aea514657079ec2d4fd8\r\n\r\nOutputlen = 288\r\nMsg = 139ed70a89b46ff8dca4258568a85b5c\r\nMD = 67b355969d1136efbac4ac6a7c755f67b23d973814f75954649cea82a66227f8b32c8da7\r\n\r\nOutputlen = 288\r\nMsg = 03dc52dda67b20b69778f8017eaddd05\r\nMD = 4d41619f155ad8e836933a53be15541593429c45e56a88d2fb797c10efd0a13e1cbd927b\r\n\r\nOutputlen = 288\r\nMsg = 49670867f30599b35a332ddf57f1101b\r\nMD = c9d4c164f8198988fe6eac2acca49ee7a5ca238e744aeaf2fd0844c85d05f6f6ca40ee54\r\n\r\nOutputlen = 288\r\nMsg = bc0b3c3bbc2fa2d8b416c2398ed0fe87\r\nMD = 87c1e6ad94bdafd851376d5d9c8e79942141f55314d02fa0aabf308be78b948af428c3ef\r\n\r\nOutputlen = 288\r\nMsg = 9bd2bd3a384b9ef141ead26304963549\r\nMD = 3cdecb09f1673d8c823da2e02a2eeb28f32095e7c0ce8ab391811c626c472511a433845b\r\n\r\nOutputlen = 296\r\nMsg = e776e6749c5b6c7def59cb9834098453\r\nMD = 15a4dd7c93286572de39b7cd692b57744fb65017a3277724b2de12ded2e1bdf6951884c268\r\n\r\nOutputlen = 296\r\nMsg = db3f1aa51e1308e19a52745e1a272fbe\r\nMD = 5c810492e3009f718d4c565712a996d6288f3f6c9ec60f591bc9662ba958cf46bdb4c9e488\r\n\r\nOutputlen = 296\r\nMsg = f9f861654ea697456a5d9044ee8e0605\r\nMD = 6da43906375dc782711e179582cd435cf422601a346369a69776cf4eab0f2acf954aced2e1\r\n\r\nOutputlen = 296\r\nMsg = 5b2f2f2af83e86d42c4e98153fce2779\r\nMD = b6e0361dbce6d4a809a2e982f1dcffa4a49781c989402bf9c603cdacbc15484261a47b050d\r\n\r\nOutputlen = 296\r\nMsg = 3b2013ffe1813edd6cad8cb6d7c76cce\r\nMD = 97b10c446d9dee64dd29d3f8fc1da19f2418039c36119eacaa72ec11b0d799f2038f7315ce\r\n\r\nOutputlen = 296\r\nMsg = cd54df0a90999f5d266ca8fd4f1d55f1\r\nMD = b78e03db2786126861b9f0566485a39acd47a5b18625624be85e10cb64809e4ee37fccfdc6\r\n\r\nOutputlen = 296\r\nMsg = c8a0af2b725b947cc1e6c6ad1674bc2d\r\nMD = 57f729bb247168426f2a9bfff1420c2543798b8c55e4fb43a396f81bb28fc4737bb6b1b803\r\n\r\nOutputlen = 296\r\nMsg = 094cd1050f2f8706e65b2ae33ade6335\r\nMD = 944267af083995ba05ec13e798e0de6bc8a127959c6f6744458d242f470d0c0341b74a7499\r\n\r\nOutputlen = 296\r\nMsg = 613927ae151bc7377d1f4d3516dbc21b\r\nMD = d68a076754a81b75646f274eab062560c4140fa1e21dec1ee5cae1410a58409df9a8820e46\r\n\r\nOutputlen = 304\r\nMsg = dcebfa827fbd92d6744cde446fc86216\r\nMD = 2be1ffc9f8c66f059c2361b177f80e4a7fe1deae96f563a4c4e8afc8c22d149628a14ac6cb50\r\n\r\nOutputlen = 304\r\nMsg = 216649806a6bd9326b64413cc14240b6\r\nMD = 37599550bfa7748a4fb19188985ddc0fb4258b8a232c00e55824f061771d20c1ae1d635644fa\r\n\r\nOutputlen = 304\r\nMsg = 9c68494913481ead7f77714e09d0c770\r\nMD = 0f57cb41dfc6aeb4d2b9ca9ac3cc76e80e46b874fb5e977201ca3bea45ff6248014b3387c92f\r\n\r\nOutputlen = 304\r\nMsg = b4e9418158bfb48e4308fc8627391098\r\nMD = e83aa3d9c905a2812d6aa91c56d338c7706897cbb6bd6b7da77b2a0a50cd28d57c07528f8f5f\r\n\r\nOutputlen = 304\r\nMsg = 98a1b7cfaa254522016fb13ae4808eaf\r\nMD = d95fd1da91b299ca31cd2f1fcedd5f7ba1cf65e1df676c21ba98131048e3c66859dc5a7c1efb\r\n\r\nOutputlen = 304\r\nMsg = f99bba3e3b14c8de38c8edecd9c983aa\r\nMD = e2aeb7c11beae1ddb8a5b03c23fc32628341477a41532e4ee5f50c3fa69a26d77aa66d272025\r\n\r\nOutputlen = 304\r\nMsg = 2273c4b7196f6e1df9dd3bb18e69f899\r\nMD = d98eb65131498b629d703fcd132598f7027eac343e10420d919fc52b5ad7715eab9268af3790\r\n\r\nOutputlen = 304\r\nMsg", @@ -5948,9 +5963,9 @@ static const char *kData75[] = { "MD = 30fd44c645ae813c877da92633e692efc24d01be938a839b52fc62e2905b6c5f510ebecad428d62025a1686e64f87d3c9bc00e1ec89947f76c04abbcce77cde07b590e03f023445b94530a97ad157b7eea40af6f61a5e390946483ec972281e98797073ab345dddfbee8feb633028fee2c3a86612058974246fcce650f4c2c496d0db43a15bcc30a59\r\n\r\nOutputlen = 1096\r\nMsg = 4bff8e8f6c673636d936c2e60e0b235c\r\nMD = 7e0ccdcb0b2768509e16f8228748de52cac312089068ca8f8ba47d4ddf73f077000b7a7763880b3efb1af5b16c743a7406157bf7400e43a11b4cfcb3b3a094561fe6fc25e1c6423803f532c700e63a31683909a6eaaae18bbf47f3a2023011e68bc42ca70197595dd50501c1d4393055ac46fbcbf53f1bb20beb1e4c08546b58d38dca2876ed16a9a0\r\n\r\nOutputlen = 1096\r\nMsg = f97cd1a658a0e3388d82f8092abf4843\r\nMD = 872eb59d9d70b83f5d39e7de815b3bce0179b04048e6de9664344d3c64693e6b028f639ad8cc7247fc80abad96091967087f2e9c70dd202717de8e6bd8bd9f17a93928c5c172b98270e9ab41224d8577e60db4978846e54496ca2bad6fb54ae35553f69ccd9c82a7478b82796ca8e4577838d5939a2159380c906b5058a99a7db4a0cfc1f47e370fda\r\n\r\nOutputlen = 1096\r\nMsg = 9fc3be491d72741ffcfd9f799b5344db\r\nMD = f9c53cfb3165759acedbdcb7388d7e63144d65f0c7eae56ec29cbea8e1deb5fb9c70f1d2796c900fe822195ef5ebdb92a65e4f312b588b4cf8b28073a891efc34c9c81c3fc647ba90e598e3f8151a15471bd716b029c8661b39c3b1b123934f491fa7527734522c6e6ba1065f47b80e1c6f7f65f51fe8adb7f05b92f2e70d3cbdebc6ed50d9c444e84\r\n\r\nOutputlen = 1096\r\nMsg = 0226e31d4aa59d8c6d2f6d1718898f5d\r\nMD = 4ad124d90504a8e0c4d3c28db36e6d51bbc842eb0da64b4d13d89319649a00d6c44999fcab35dd3d1b661616b4a925bfe81b9392ed8eec1f0017b81d9425877eed43f0753e42e7a15a9c33eb4b96b217d9c9006c26df12d3ec4fc11d5c569eae6b640b56df0a1bfeacb74623b1dfadf922ae0b987e6a110094fad040cfe685ef638300d3b334e87e58\r\n\r\nOutputlen = 1096\r\nMsg = b82c63b9b7e940269eeb55d51157081b\r\nMD = 7b9d06b952e929ebb1751f58adc0ea1863fd3eee907953cb2a6b47791a33f5b5231552e4b5cb38da4423668f3b9b042f903c9871bc6b2a5a6c10ad38efb7b23e59e3f443042662f47e1239cd2c44905f21ddd07505935cf2a016a15407457ec0a706befed5cd2ed5463d41ac11b6c69594f1c19a1178fffb3a30d1f0822d3b207d57d4e51516ea0cf0\r\n\r\nOutputlen = 1096\r\nMsg = 4127250fd2738463c4147d299b4ecd7c\r\nMD = f99c7f56657824a577d0e341425a95d9c35793075a359433064ca004ed078d4d363f0d50c5047ad9a7579d5a9e469c8eb200fcf1ddb7690e87d11ed4e5383c334590921c11206f157a618bbde8037622f13aceed9b281b2bd7265c782b811cfb7e73ac177f6c90c5dea78e98335a047d2fc2e04cc7f6603a347036db34d205b25f1fd16cdfcbe24cb3\r\n\r\nOutputlen = 1096\r\nMsg = 87a65a7b0e5d863d3acbafae5a4cc9c7\r\nMD = b25eab758604a7c4e1f3d3a435277d12a8a86b61573a2375fb90f2acbb80b84006d8a24acb734cd868f5d04a9e537522c492587276cdc1d574283eae58dd51bbf4636ea328311264e3404488e9aba5c860eae958f80a665f46a9a3b06be57a9737e70ca103badf718ff390c2eb082ce70a723249d0fd9c1efabc6f27f38826c84ac1270e4736c0940d\r\n\r\nOutputlen = 1096\r\nMsg = f2457c380ce6087cc27c5e7626a13a3d\r\nMD = ad37d7b12741105b2d783d20e29a2fc620aa4f5d39198360a9606842404d82a690f1934ffdc63efa17e57816e0412b93b6ca2a127f0110a37b79255d70d9b6559d655582d11bfd82939dfdeea95c557134b8a93e87af91ce0b4119190f31c6f43ae3dbf1ca2abe8e6f3aa8f61fb508fc7126a3dadbf49306d7dbc8789018723810a00e6d61b0e363fb\r\n\r\nOutputlen = 1104\r\nMsg = 3c4b7eb4d5969aa664f884f3a117de00\r\nMD = 7075aaaafb02f5af3591b1da41b41437b64a49a00bea28270c4d8e620c458a765deeea46f318fa3551979239c1413b47daff72537789fc533b95d272c16f8e8580e44b0dd978ae7438cb6878f0a1235f418d07214e5c8c9b2051d30e42c554edf11c253a643b33d4a83184690255bec41c93d6c133d7f0a1369d379fe076664de833781f8a6009d5eee1\r\n\r\nOutputlen = 1104\r\nMsg = f83d0c37a194599ec17436ce1ce69bb1\r\nMD = 2cf7d0ba7857c31f8caf57b27fcb25ff1c2b9cd230e79187ed0c714c769aecd8dc190bc18df91d5a94621ed17dbd4b2846eb1169697b1d251ca27ef07c07d62ad7a97bb4ee86a0cbf0f4b895d97a8a45138e711feb612ef066c8887bea16314c2298e15a0dae54aee0578b6c9629965816d85b2f2deedbe16f0d573751f0bb004490598e30c99f8f2a27\r\n\r\nOutputlen = 1104\r\nMsg = d95867886776f082fd694055756c35be\r\nMD = fc229e14f3ca6162113f4e2a6ea9a2af9f7126acc32d798a966da33dc4f6fa231b6cb338076028dd2a1d4cfc9845c9d8d0891dbeca5be6143eaa08ad85c3afe33fe4a0f9ea522eccf6d29b407d8f1fa989d1724329e8051cf151009a93eb42dfa5af32c065a864a395b4629d2c38fd885b2e5dec0994731efc5c807039753e506728b6bfc5edeb787a78\r\n\r\nOutputlen = 1104\r\nMsg = ea8122bf586c0761c478323686b051c1\r\nMD = d662b85df275e45e42eb7c33015e4d1b30299e798cef08d5ee7d9de3e9e82e702d01f33fb3d7430f99b99fe36970307dd85d42abf025cffa7a70dbf3a0344791d7b1cb452f1a978d08455eb61114203e2b8d2d5d6ae1ef8df9caab3c677219dd93b1f2974d4533c1c9dbaa1396113be3435c3d0a7120e65d56eb9a91b8e0602fa10e2e1833b1adde6b52\r\n\r\nOutputlen = 1104\r\nMsg = 40a00772bbef188010b4b9096bfe0fb2\r\nMD = e355665cc5d35bd12523cb97cee7718b1c7ca4e9e4c764022b23f1b39fce986a5394a05cd05bcfef0b82b850de612e8268a2fd3dc186cb6d29cd0810af1cbb5617d8822903d42f4995b3579a11dd890a14384085ccad0c34c7dbeb4bd4aca90d7f48933df3c873726bf9534b8ecf357729f41f583dbddb29de13e7db0862ca692f45546ea5185abc2f4d\r\n\r\nOutputlen = 1104\r\nMsg = 8e0b06f2020559773b451af0e25de692\r\nMD = 43e46d8bc4afc51c50a096da3614f7aa0d1a3b6f3ff3d1da9efdfe8076d3db5c06b156e31e4d9cdf5c6cff8b74549af48232c128fdfd645c06a648555c2b094610a06efc24275531b0893d7bb17734a70c12414345227a7b4c47b28f06e5dc4ef4f8cd2cb5f614d1fa09c342265fae7e433aa1af31391951feb6bc9a77abc2555ad33fc88c8edd835665\r\n\r\nOutputlen = 1104\r\nMsg = 2c4647ca622566738f60b1e194a330cd\r\nMD = a9f641d7e5e4d0bf8891b7469cd51d7bc1133057c0a114906cee5ea0ac77a7155c53e486d6ec54113abc4f33b12c64aedd79928107ab30f2e46e83c18f651d51e2f6a0efac7e88f5a7d15b2d09091669253ff23777b08910ae4de11b7eb84087edfba079bca6ce1e738d1dd2dc985b60751528ddeb853d911c5f45ede04c002ba5a88184d1733b1be512\r\n\r\nOutputlen = 1104\r\nMsg = 8af542a4d3b765385a97a614264f6273\r\nMD = c145081d5d14b30a37e8275730c32febffbd23bae390a339908d8099bba5412d8c0bad0a579c79de2b44d6dbbeff22f42338a16c2e1251e5f9a0f5bba18320632ad9c02f35812237a7525e0c55ae9f74da353d28dba015b665e6728db7730264ae5b7dc34d0eca9b9c80db05e4288a3371b8d4bf3ba5fdfc06343bc1d65d13f991bb1f08743300d7b632\r\n\r\nOutputlen = 1104\r\nMsg = aefd329afa04993117493268a638cca6\r\nMD = dae4efd55b15b0525afba52fe0c6a1ad1a8ad163bad7df596f74a55d525ce3fbbd643a87feaee45fb436cf3bb7378c9f07bcb660b50a54bfd3f9c03272bc2193df3ce166e64e16213a034c6812f3ae15b4bcc8013deae67a46e90b204200e3bcba92e992a51d109e237d9eab845d387f130b8bc56f7c4e4b9730e6a580d63452777851ce1d046aa27675\r\n\r\nOutputlen = 1112\r\nMsg = f62de39e0c57636428f5ecdeb59e4bf9\r\nMD = cf85fab95071106c6416b0fc20ed36e6d0f19ce619134c011083c274fadfa3ea7d394717fbe61a633eb521447b2dfe7b30643c7622e3bf538673d713109e108242df57e89af7bb873138fe71f608593642ac86ff54d4095b68b1767c99f0022ca251dd62ab9619fa36bf21fd8d88063035bcf50d14935dbd5bd29bed993f741d3ec018b135bb4c9f96f411\r\n\r\nOutputlen = 1112\r\nMsg = fbcdb8c3679e4075b9b80530aabeaa5d\r\nMD = eac9439eacbbe385198c6639c524c6e90b09050ac1c8e608ed376cf0ac660894e4c24867a19b15c2575ee64ff85f112caa895a579a2030f1a6b052b9c648bd38a7650f690786b8858f0a388bcab6d2fc77ca8ebc06bb17d6ab5a4390c9466f32f308e7431d3e23dbb7f54101ddc2b21c0f00514119aa06043082392aabca8e14919bc923ab13289b9728c4\r\n\r\nOutputlen = 1112\r\nMsg = 516a274984dee209aa7a263b5fb98be0\r\nMD = b916db19c31e52d2a639b84676b23bb1b570f786c305382fbfeb78915f1baa8b7190dee198810ac0a5856ed800eb1e5acdeda8e0c5b8c5c965f23558fd6d5c6851fc37a75f08c10d5ba603fcee29a21385d6323182016c8a5e6380cb6e587081707abfc9ae66158131dc0d150253d9c610d4ab4abc01274e9003e484887899fade1a1b8aa0819b05b494a0\r\n\r\nOutputlen = 1112\r\nMsg = a0b24a038665422b20a499276a504270\r\nMD = 9f56cab65ffe5283ab19d8dc47b7e66ce267dbdd775f166d7b27878aabba4f92b14ed234788b8811394dc7048ef6e4eff461c596fccc2c72be0fc8ad863c9630cd79ccf53616b7b62e15a55454e54616606f8c53ffff9c4d147e70a6fac500cb987fcab7f968ffa02684197c2d889cd470fb873e1f2b909b9ccff676e8539cd56665d4523c97a2856981b7\r\n\r\nOutputlen = 1112\r\nMsg = 35b09ab700bb7766618a6e99c3b34a3d\r\nMD = 420d9d05a91160186b48802c99e62623eca07e3c153db735ca2e0ebde9c1b97cd0b3b43df95bdc5e5490450926f736c494015e74fd8ecc879b80a3292ada05ebb2a332567140004d00dc585cdf186b42dd34b1a11b7ee5905a1797ff3a92e86693342cdfa8f0bc9d0d821ecff8660cf25e1fdcf0d29308a4cf01fc1375b157c12d69d96f9649bc200077bb\r\n\r\nOutputlen = 1112\r\nMsg = d0a2cd13dce21f318bf8b428c33e523b\r\nMD = 9f8782cda197a20515a206354215fb5ce3d310307848e6c472ffab1a2663cccaf4ac540874f513f22384d9c821671915eb3a510c1b857db3cd490d0e7f356d9fb973dee568b416402074060c86151a5612c2ca9fc759e1828c68a08838c92730f89996039257702113719050f691d4e663ffb1c20fcf0fb89dac9a9943decd6db226347828ad0aecf22a49\r\n\r\nOutputlen = 1112\r\nMsg = ", "e7b5aade78b9b5b8419b98b49bdf169c\r\nMD = f237bc9d1531e56be09dd569fe24dbcb0425d319d01c0a3a8d68887281a948faa25f7e775c434add746e1fd9c2cca746e49fce81dc72ab1a7c8b6ace23dba3f28f3e7f09185e784057dc5be3d9fe09a5defcf7f90af2b0dc09c0256e291b6d4fc3fd340c60e8fd1ab3eaa9766201bef2b2d4ab717786953cb8dbdd5c256ce8bdc40921da3d99bb0a82f3bf\r\n\r\nOutputlen = 1112\r\nMsg = f2259981b060c3af5cf57d581fb56474\r\nMD = 015e1a273921d13aa14a0fdf44300b3c7053a913f1c01893c690f94e9655ae9bf98f08299ca8f3ca8fc2c7a5338edc166c1c414ecc03452337b35709837e53baf05916d13d816fe0ed024e150925451d7e22797f4f7563cdc176f72122a76e406da3969eacf9be5b2208dafd16584722030b8a9431cb0843cf8aefe7dc649d37ae0e68e9db715070926cdd\r\n\r\nOutputlen = 1112\r\nMsg = 6832b7adaac918587c17258d0c20228f\r\nMD = 8b6c5e626316100d9bd091a23447bd4fea16e695f88c96ee8aabe1f26d037eb344601bc228927febb990ba2d7ece2311ec40fee70907187d872e34d7b20e77bce771f8ffbb809034c8a6ca0e77ce1ec489b469cef85e516cccb3e6bfa770118cc0cb7d5f102e02ac685578bf8076264d5a262124dc864d83965886e54c2c52a60a0ffe92dd295244ca0776\r\n\r\nOutputlen = 1120\r\nMsg = a8ded9816defca8327c194a48a88ae4e\r\nMD = ed7397b2215c6c412bf444b1b96fc55c531aef025c6dd13fb4ab53fcc20c91917d82c8d6710a8d7b4c24d18b54150490e98ee01b4a4b9790d1878810a8392d3fa203b066327c0c67cace3a08c57d0d30b62ba43121d8d715637884f055c55ad6689692249885dce01c96979f1a2b309943e14abb0ba8e227bceb381667579e10694bd442b99064aa88501431\r\n\r\nOutputlen = 1120\r\nMsg = 7d3084706027fd271b9cf09c10f5788d\r\nMD = 3814484d1316a06f6ad466f9ca74dafe04cdf7ddb39931f9a20aa036c101f2ea9f8c1dd447ba3eba4d23e5f9f27cc2bfb38e3d123b73d7b8c2f495214ffbab5419e33ff3ac5e6cdc98a6b33cf87afe238dbbc30f08d99246c5a7196afff9848936a9152ea67c1fbde6177a2e9177291adce2f695a52baaf33e56e7b1390a5c92a58df0b062256212b4735f1a\r\n\r\nOutputlen = 1120\r\nMsg = e90885359d2d90e26a87873125a19431\r\nMD = 5c56b158ae664a4c91e3dac83a9133f79c526cc9f4d18effffed446d459990eb05057aecdbab0d73e06576de6ce4cd7414449538cb5308f44b32824efe8039580b3b7b7b6ac32b148b502989cc214401b98cc6454552afaea10f3b9d93a248e782e711e94bca1fb4721d2ed5cc75f3d9d4e598dc43eeefa4a995a81d6334edfc31869a0a1aee45d4369cecd1\r\n\r\nOutputlen = 1120\r\nMsg = b46abe8e27f1c3f2e443781300a951a4\r\nMD = e821b757a34f90be1e210b4e0ad60a3585018216d54872e614e7f8647102d4e50968749d109caaea13dd5d5486fcaa6b1953c71ad6492446d38cacac908f8f67420d6aa27cb191a9e2ea7a62c59b5aa359cf7d61e550d31876910d87f07a1707ca0f3a8ecb0a431cf8966846ab9404d7cf37ae90f69d524565c5733e2875a960ab07d08eafbecdb7e468204c\r\n\r\nOutputlen = 1120\r\nMsg = d8ed3f491ff1eb57f89b90c2eb6395e2\r\nMD = 521122e9c54a691ff0b1d0821ab8bb4c7c24cf0ea3dba6cddd36654198fa32c7294bf00a17e8cb6c1c747a720aff2460fca9a6d5899a298f184082ce43ec727ff7044c64dbd9a7d20e36652424b3e8f806e818c4da8181d6b35e6de5c5e287291d96a4b10386216816a3586cc788f6151906599ed22fee74ac853736c54c3f461549525b179f92c72892c374\r\n\r\nOutputlen = 1120\r\nMsg = 594970465717ec638b1b4662a3d64af3\r\nMD = 4fdef9fd37b160be0dac8c801c34bf91977acf7ecfc12c3a3899599b480802bc2fb9cf69acd86271541b95716600bce499d5ac64bb557772fdda3b0a093571cc77ba9fd4796b3831fc86e385c2a6c126c084af60a2fdf5194f2dc08e0e522b7fdf852b994d0614296a5f40b318dd35e55dc6c3627e186d0edbe2bb50cf83d345e3f82b802ee4d607c89a713d\r\n\r\nOutputlen = 1120\r\nMsg = 2ab3a70f3b01836d8efceb67490c3c38\r\nMD = ca7ca55bf123aba45287268c4050ab030b1415f4497d5fe8dbc5386ae37d24384a2fd6a715fcad48ff9e810c1d378fa70f1503767e9e338e33697206f863dc8015b4d1e9b8f81ddee22aac59d52055a1b0784a364369cc50f403045a1bdb25b639cb864f960281b26160ec89e8ec6403e054c29b4adc3b1ae9ef69498f24e0e3ac328e2f89c71348c9dfb8f1\r\n\r\nOutputlen = 1120\r\nMsg = 095a4c37e386db92fa0a2e396103ffd0\r\nMD = a972c62ff5b162006c11504dc86390bebdcc7390a36fd48303472ec827e1391ebf7ac988fd222907d6e8363f7a1e9a8c3a07a4b88d8c688793c7211a0e2d84739c8a0ed10744a06af282f160efc57c94cc48703262f6c021bf7c7ca717107cce05bdac3c4d3ea0e930ce741647b731ed5a6b90150b942a9d8f68e5ec9cbfb1dd37c1937a56f4f052fdd99351\r\n\r\nOutputlen = 1120\r\nMsg = c60a221c975e14bf835827c1103a2906\r\nMD = 0db7f7196eee8dd6994a16ded19cb09f05f89ccd2464333df2c017c6ca041fa0d54a4832a74ce86ce9b41d8e523e66ce6ef9df7c20aa70e0ac00f54eb072a472ef46cf2a933df0d5f9fafab6388a206f6bd1df50b0836500c758c557c8ac965733fdaaa59f5ed661a1bda61e2952886a60f9568157e3d72e49b6e061fc08f3f1caf159e8eff77ea5221565d2\r\n\r\nOutputlen = 1120\r\nMsg = 0a13ad2c7a239b4ba73ea6592ae84ea9\r\nMD = 5feaf99c15f48851943ff9baa6e5055d8377f0dd347aa4dbece51ad3a6d9ce0c01aee9fe2260b80a4673a909b532adcdd1e421c32d6460535b5fe392a58d2634979a5a104d6c470aa3306c400b061db91c463b2848297bca2bc26d1864ba49d7ff949ebca50fbf79a5e63716dc82b600bd52ca7437ed774d169f6bf02e46487956fba2230f34cd2a0485484d\r\n\r\n", }; -static const size_t kLen76 = 436924; +static const size_t kLen77 = 436924; -static const char *kData76[] = { +static const char *kData77[] = { "Outputlen = 16\r\nMsg = c61a9188812ae73994bc0d6d4021e31bf124dc72669749111232da7ac29e61c4\r\nMD = 23ce\r\n\r\nOutputlen = 16\r\nMsg = 74d7980949c1dc759a4a10acc3ab994b771ae6d8b5ef0005f8046233af610c36\r\nMD = 77cd\r\n\r\nOutputlen = 16\r\nMsg = 4f865b9ff82cc68705fbb6decb84cbd48f880e5b49b0d77ea77eeef45584f0f5\r\nMD = 6ade\r\n\r\nOutputlen = 16\r\nMsg = 5e30de9794d269e22aead3ce26f4f6dfceb1e3eb6ad5cb744b0020350cf0f7fb\r\nMD = d436\r\n\r\nOutputlen = 16\r\nMsg = 3fa5f3b5dfbff118e07eb21d339a5a6bb60d52d8b67feb7eb102441160ff6d70\r\nMD = 28bc\r\n\r\nOutputlen = 24\r\nMsg = 29eade8f428791131625a160f95d97e8654f5ff93fdca8915c158c7344f2747a\r\nMD = 6d0e57\r\n\r\nOutputlen = 24\r\nMsg = 213adfd05103bec8ede43e1f9df4e9cccb08126506845b93a4717ac4acd03c1f\r\nMD = 9fcf7c\r\n\r\nOutputlen = 24\r\nMsg = 3766097d363f3cef069feea2cfdab32edce440c2aa14200f3f29a961bd8b2f0f\r\nMD = e30c44\r\n\r\nOutputlen = 24\r\nMsg = 1d4010e5c963729f3492d4ef2e309ee29961f465c211a165f1394e343e5df82f\r\nMD = 4d4236\r\n\r\nOutputlen = 24\r\nMsg = 6e57ab75f741a3ab3a04f71ed7935a06309763eabf6e86c4ae744360a1829d05\r\nMD = 32efd0\r\n\r\nOutputlen = 32\r\nMsg = 687c03141fb6788f601d09c8375a4f4226b7fa3f7726c2e3d185a1970a203fac\r\nMD = a3476714\r\n\r\nOutputlen = 32\r\nMsg = f0be5e961bb55b3a9452a536504f612a3e66aec8160a882e5156eb7278433b7e\r\nMD = 1e27de8c\r\n\r\nOutputlen = 32\r\nMsg = 85a0b8e5ec5ee85eaddb72fd5c6930c14c23a7b4b07e421f0021defa9ff78ba6\r\nMD = 56db8ee1\r\n\r\nOutputlen = 32\r\nMsg = 18b1a92b57e86708b433a14968f7f993d128639e165fe4e90e2d99ad5eb0fa0f\r\nMD = 5014aaa8\r\n\r\nOutputlen = 32\r\nMsg = 7ae4899b4fa7bae138fad1a9fe947d74673355135b301acf44563ce8bbf4a041\r\nMD = f4e98187\r\n\r\nOutputlen = 40\r\nMsg = 663b8a63fa83edcd444ae24de642a73ca1b2b43e606be6cf78fedc1f2e2ca220\r\nMD = 971b2a9de7\r\n\r\nOutputlen = 40\r\nMsg = 4a83fecb9bb341ca8290358ca43a4a518a23fd2f491ea2bf62b96016e7cd7df6\r\nMD = a61fc2c5b2\r\n\r\nOutputlen = 40\r\nMsg = 17e7dfab5f6d76af3c5c58421848554367a2ad467f3a8136aa03883f7a1603ea\r\nMD = f4ef4ada87\r\n\r\nOutputlen = 40\r\nMsg = 2b5014a02af19a0f13d35adcc6a851dc56874297bbda094bc7772b345c0db10b\r\nMD = 6a4111b44b\r\n\r\nOutputlen = 40\r\nMsg = 050e5162d205984c18680f454fa304b84418ddc0b5684d911beece14c78d4bd1\r\nMD = c4b4f9ba5d\r\n\r\nOutputlen = 48\r\nMsg = b17977aced3a1184b14b0e41a04dd8b513c925ca19211e1abdc6c1b987ac8455\r\nMD = 073d08a75c1d\r\n\r\nOutputlen = 48\r\nMsg = 889f7419727c4d7eafc1ca603acce2add99da6fe5038181dd44b3fc5c2117ba8\r\nMD = ecb416a2d305\r\n\r\nOutputlen = 48\r\nMsg = ec05474e86e8d73b2af8e9795124c50396e709ceaf6e4108a1f9b79d34838d00\r\nMD = 6e3b1a7006c8\r\n\r\nOutputlen = 48\r\nMsg = dca55c76165b528f2080566538adb1f0053b66f3cea80b82ea3bd8c278ebfef0\r\nMD = ae53c844d511\r\n\r\nOutputlen = 48\r\nMsg = fbc037ab31ac0bb0e67ff7f5357a8edacc238b39ef3bfdf6c0f1a7d8bd55a697\r\nMD = 30f0a13681cf\r\n\r\nOutputlen = 56\r\nMsg = 0cf9662f935c94e203b1e3471ec3c8919c795514cdf303fd7fd5ae4122e3e1d3\r\nMD = de4ac702408944\r\n\r\nOutputlen = 56\r\nMsg = 11daf4f307c9f7bd68a1b6ecde7bb970e5ed0cbc7423fb79e032197cfdaa87f6\r\nMD = 471d3437fe5104\r\n\r\nOutputlen = 56\r\nMsg = 30e462c7eca9602312d25c0ef86414d60a31e7f627a94f8948f3ac05633d4325\r\nMD = 4ab846d5e5e156\r\n\r\nOutputlen = 56\r\nMsg = e510a97e51548149341f0938189e4b788608319cd723f83f4709e2ea4b2c2b38\r\nMD = c649dc219211cd\r\n\r\nOutputlen = 56\r\nMsg = f31fb31e147f8bf1d1ec990aff367d595e6e131bcc4b4859b9cc2cb2db1f495b\r\nMD = 96cc735c67b2ce\r\n\r\nOutputlen = 64\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e65164\r\n\r\nOutputlen = 64\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c05700\r\n\r\nOutputlen = 64\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb\r\n\r\nOutputlen = 64\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0b\r\n\r\nOutputlen = 64\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4\r\n\r\nOutputlen = 72\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d\r\n\r\nOutputlen = 72\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4\r\n\r\nOutputlen = 72\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83\r\n\r\nOutputlen = 72\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428\r\n\r\nOutputlen = 72\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530\r\n\r\nOutputlen = 80\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1\r\n\r\nOutputlen = 80\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4f\r\n\r\nOutputlen = 80\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c\r\n\r\nOutputlen = 80\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca\r\n\r\nOutputlen = 80\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6f\r\n\r\nOutputlen = 88\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b1\r\n\r\nOutputlen = 88\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f\r\n\r\nOutputlen = 88\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0\r\n\r\nOutputlen = 88\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f089\r\n\r\nOutputlen = 88\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506\r\n\r\nOutputlen = 96\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82\r\n\r\nOutputlen = 96\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e\r\n\r\nOutputlen = 96\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a\r\n\r\nOutputlen = 96\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5\r\n\r\nOutputlen = 96\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437\r\n\r\nOutputlen = 104\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667\r\n\r\nOutputlen = 104\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f55b0\r\n\r\nOutputlen = 104\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0b2aa\r\n\r\nOutputlen = 104\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be2\r\n\r\nOutputlen = 104\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506e482\r\n\r\nOutputlen = 112\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82936b\r\n\r\nOutputlen = 112\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e3e19\r\n\r\nOutputlen = 112\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a38ab\r\n\r\nOutputlen = 112\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5d11d\r\n\r\nOutputlen = 112\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437d8da\r\n\r\nOutputlen = 120\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667d819\r\n\r\nOutputlen = 120\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f55b02bc5\r\n\r\nOutputlen = 120\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0b2aae306\r\n\r\nOutputlen = 120\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be26a9c\r\n\r\nOutputlen = 120\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506e482936a\r\n\r\nOutputlen = 128\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82936b00db\r\n\r\nOutputlen = 128\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa18", "93507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e3e19c258\r\n\r\nOutputlen = 128\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a38ab00fc\r\n\r\nOutputlen = 128\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5d11d46ca\r\n\r\nOutputlen = 128\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437d8da2bbe\r\n\r\nOutputlen = 136\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667d8195c21\r\n\r\nOutputlen = 136\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f55b02bc5d1c8\r\n\r\nOutputlen = 136\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0b2aae3061785\r\n\r\nOutputlen = 136\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be26a9c3cfc\r\n\r\nOutputlen = 136\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506e482936afcfe\r\n\r\nOutputlen = 144\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82936b00dbbc12\r\n\r\nOutputlen = 144\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e3e19c258fb5b\r\n\r\nOutputlen = 144\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a38ab00fcc24e\r\n\r\nOutputlen = 144\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5d11d46cac118\r\n\r\nOutputlen = 144\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437d8da2bbe00f7\r\n\r\nOutputlen = 152\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667d8195c219f71\r\n\r\nOutputlen = 152\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f55b02bc5d1c8038a\r\n\r\nOutputlen = 152\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0b2aae3061785adc7\r\n\r\nOutputlen = 152\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be26a9c3cfc5c1b\r\n\r\nOutputlen = 152\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506e482936afcfe6b72\r\n\r\nOutputlen = 160\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82936b00dbbc122fb4\r\n\r\nOutputlen = 160\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e3e19c258fb5bdd57\r\n\r\nOutputlen = 160\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a38ab00fcc24e9bd1\r\n\r\nOutputlen = 160\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5d11d46cac118fded\r\n\r\nOutputlen = 160\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437d8da2bbe00f7bdaf\r\n\r\nOutputlen = 168\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667d8195c219f71e634\r\n\r\nOutputlen = 168\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f55b02bc5d1c8038a1d77\r\n\r\nOutputlen = 168\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0b2aae3061785adc7507d\r\n\r\nOutputlen = 168\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be26a9c3cfc5c1be2f0\r\n\r\nOutputlen = 168\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506e482936afcfe6b72dcf7\r\n\r\nOutputlen = 176\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82936b00dbbc122fb4c877\r\n\r\nOutputlen = 176\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e3e19c258fb5bdd57728f\r\n\r\nOutputlen = 176\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a38ab00fcc24e9bd17860\r\n\r\nOutputlen = 176\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5d11d46cac118fded60b6\r\n\r\nOutputlen = 176\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437d8da2bbe00f7bdaface3\r\n\r\nOutputlen = 184\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667d8195c219f71e6345696\r\n\r\nOutputlen = 184\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f55b02bc5d1c8038a1d778fe9\r\n\r\nOutputlen = 184\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0b2aae3061785adc7507d76fe\r\n\r\nOutputlen = 184\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be26a9c3cfc5c1be2f07514\r\n\r\nOutputlen = 184\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506e482936afcfe6b72dcf7e9de\r\n\r\nOutputlen = 192\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82936b00dbbc122fb4c877860d\r\n\r\nOutputlen = 192\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e3e19c258fb5bdd57728fe93c\r\n\r\nOutputlen = 192\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a38ab00fcc24e9bd17860e673\r\n\r\nOutputlen = 192\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5d11d46cac118fded60b64bf4\r\n\r\nOutputlen = 192\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437d8da2bbe00f7bdaface3de97\r\n\r\nOutputlen = 200\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667d8195c219f71e6345696c49f\r\n\r\nOutputlen = 200\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f55b02bc5d1c8038a1d778fe91144\r\n\r\nOutputlen = 200\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0b2aae3061785adc7507d76fe07f4\r\n\r\nOutputlen = 200\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be26a9c3cfc5c1be2f07514f5d4\r\n\r\nOutputlen = 200\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506e482936afcfe6b72dcf7e9def054\r\n\r\nOutputlen = 208\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82936b00dbbc122fb4c877860d385c\r\n\r\nOutputlen = 208\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e3e19c258fb5bdd57728fe93c9c6e\r\n\r\nOutputlen = 208\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a38ab00fcc24e9bd17860e673b021\r\n\r\nOutputlen = 208\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5d11d46cac118fded60b64bf4acff\r\n\r\nOutputlen = 208\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437d8da2bbe00f7bdaface3de97b877\r\n\r\nOutputlen = 216\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667d8195c219f71e6345696c49fa4b9\r\n\r\nOutputlen = 216\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f55b02bc5d1c8038a1d778fe91144a5c7\r\n\r\nOutputlen = 216\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0b2aae3061785adc7507d76fe07f4dcf2\r\n\r\nOutputlen = 216\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be26a9c3cfc5c1be2f07514f5d4718a\r\n\r\nOutputlen = 216\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0", "fe45c9\r\nMD = de489392796fd3b530c506e482936afcfe6b72dcf7e9def0549538\r\n\r\nOutputlen = 224\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82936b00dbbc122fb4c877860d385c4950\r\n\r\nOutputlen = 224\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e3e19c258fb5bdd57728fe93c9c6ef265\r\n\r\nOutputlen = 224\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a38ab00fcc24e9bd17860e673b021222d\r\n\r\nOutputlen = 224\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5d11d46cac118fded60b64bf4acffb35b\r\n\r\nOutputlen = 224\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437d8da2bbe00f7bdaface3de97b8775a44\r\n\r\nOutputlen = 232\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667d8195c219f71e6345696c49fa4b9d08e\r\n\r\nOutputlen = 232\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f55b02bc5d1c8038a1d778fe91144a5c7d3a2\r\n\r\nOutputlen = 232\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0b2aae3061785adc7507d76fe07f4dcf299e0\r\n\r\nOutputlen = 232\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be26a9c3cfc5c1be2f07514f5d4718a1ed3\r\n\r\nOutputlen = 232\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506e482936afcfe6b72dcf7e9def054953842ff\r\n\r\nOutputlen = 240\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82936b00dbbc122fb4c877860d385c4950d56d\r\n\r\nOutputlen = 240\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e3e19c258fb5bdd57728fe93c9c6ef265b6d9\r\n\r\nOutputlen = 240\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a38ab00fcc24e9bd17860e673b021222d621a\r\n\r\nOutputlen = 240\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5d11d46cac118fded60b64bf4acffb35b0b47\r\n\r\nOutputlen = 240\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437d8da2bbe00f7bdaface3de97b8775a44d753\r\n\r\nOutputlen = 248\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667d8195c219f71e6345696c49fa4b9d08e9225\r\n\r\nOutputlen = 248\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f55b02bc5d1c8038a1d778fe91144a5c7d3a286c7\r\n\r\nOutputlen = 248\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0b2aae3061785adc7507d76fe07f4dcf299e04c99\r\n\r\nOutputlen = 248\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be26a9c3cfc5c1be2f07514f5d4718a1ed31855\r\n\r\nOutputlen = 248\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506e482936afcfe6b72dcf7e9def054953842ff1907\r\n\r\nOutputlen = 256\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82936b00dbbc122fb4c877860d385c4950d56de7e0\r\n\r\nOutputlen = 256\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e3e19c258fb5bdd57728fe93c9c6ef265b6d9f559\r\n\r\nOutputlen = 256\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a38ab00fcc24e9bd17860e673b021222d621a7810\r\n\r\nOutputlen = 256\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5d11d46cac118fded60b64bf4acffb35b0b474fbe\r\n\r\nOutputlen = 256\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437d8da2bbe00f7bdaface3de97b8775a44d753c3ad\r\n\r\nOutputlen = 264\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667d8195c219f71e6345696c49fa4b9d08e9225d3d3\r\n\r\nOutputlen = 264\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f55b02bc5d1c8038a1d778fe91144a5c7d3a286c78c54\r\n\r\nOutputlen = 264\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0b2aae3061785adc7507d76fe07f4dcf299e04c991c92\r\n\r\nOutputlen = 264\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be26a9c3cfc5c1be2f07514f5d4718a1ed31855e148\r\n\r\nOutputlen = 264\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506e482936afcfe6b72dcf7e9def054953842ff19076908\r\n\r\nOutputlen = 272\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82936b00dbbc122fb4c877860d385c4950d56de7e096d6\r\n\r\nOutputlen = 272\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e3e19c258fb5bdd57728fe93c9c6ef265b6d9f559ca73\r\n\r\nOutputlen = 272\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a38ab00fcc24e9bd17860e673b021222d621a7810e5d3\r\n\r\nOutputlen = 272\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5d11d46cac118fded60b64bf4acffb35b0b474fbe85d2\r\n\r\nOutputlen = 272\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437d8da2bbe00f7bdaface3de97b8775a44d753c3adca3f\r\n\r\nOutputlen = 280\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667d8195c219f71e6345696c49fa4b9d08e9225d3d39393\r\n\r\nOutputlen = 280\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f55b02bc5d1c8038a1d778fe91144a5c7d3a286c78c54f521\r\n\r\nOutputlen = 280\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0b2aae3061785adc7507d76fe07f4dcf299e04c991c922b51\r\n\r\nOutputlen = 280\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be26a9c3cfc5c1be2f07514f5d4718a1ed31855e148c4aa\r\n\r\nOutputlen = 280\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506e482936afcfe6b72dcf7e9def054953842ff19076908c8a1\r\n\r\nOutputlen = 288\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82936b00dbbc122fb4c877860d385c4950d56de7e096d613d7\r\n\r\nOutputlen = 288\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e3e19c258fb5bdd57728fe93c9c6ef265b6d9f559ca73da32\r\n\r\nOutputlen = 288\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a38ab00fcc24e9bd17860e673b021222d621a7810e5d3dcea\r\n\r\nOutputlen = 288\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5d11d46cac118fded60b64bf4acffb35b0b474fbe85d270e6\r\n\r\nOutputlen = 288\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437d8da2bbe00f7bdaface3de97b8775a44d753c3adca3f7c6f\r\n\r\nOutputlen = 296\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667d8195c219f71e6345696c49fa4b9d08e9225d3d393934251\r\n\r\nOutputlen = 296\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f55b02bc5d1c8038a1d778fe91144a5c7d3a286c78c54f5213513\r\n\r\nOutputlen = 296\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0b2aae3061785adc7507d76fe07f4dcf299e04c991c922b51570f\r\n\r\nOutputlen = 296\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be26a9c3cfc5c1be2f07514f5d4718a1ed31855e148c4aa19b9\r\n\r\nOutputlen = 296\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506e482936afcfe6b72dcf7e9def05", @@ -6006,45 +6021,45 @@ static const char *kData76[] = { "4a0a9b453543f8c86fd97f42a3598f39e7c0fd2343afad1dc9902efa39a6d8d4f936d566fec33bd86f38f954ebad74ebbbbf93898df0d6e25482a33e8b3e190e32df4e9824c266e04ca3d86a98ecb8b6af1a5e908b7ea3b654aa459239ed8cf5e654\r\n\r\nOutputlen = 1976\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be26a9c3cfc5c1be2f07514f5d4718a1ed31855e148c4aa19b9f50f7619b04a1338b58fcb9b953d214f8218faa0e4b2daf467300283c96192d32d48b5e6801cf1560b72b5e8a418ee534e2e9ede69071403782ae08b128f236040d64f926db52af6aa532543ec211e90fdb72c9ed0efac1c8cd72357ba08310887c326183d9daddcea9e8352f89c5882fdcad24bdff26b6caa8ab3bd809d3828d3be79d0d5faefc8c74ec2356a805d9410b66607ba8e0064f2968c104d075e8796909c4c7811f1d5bbd66e53314e01b12ab9e7a72b4415fea8a06b85ad3302b5fc081bb6986f3b46ac369c1862654f7f3d1d\r\n\r\nOutputlen = 1976\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506e482936afcfe6b72dcf7e9def054953842ff19076908c8a1d6a4e7639e0fdbfa1b5201095051aac3e3997779e588377eac979313e39c3721dc9f912cf7fdf1a9038cbaba8e9f3d95951a5d819bffd0b080319fcd12da0516baf54b779e79e437d3ec565c64eb5752825f54050f93b0a0f990dc8747aae6d67d5ca8d00c98907fa276671bf4f9971d461b2924be1e4924c4d61901ddc2240ce13969191f4a34fb84c4fd8317777b4074ca440204e9d99218064a9e2c07ffa1678894afe622448fab4480aa92744d8256b8a6e5cb7890e7b66f0e0316eb1edcffd21fa0803424a4bedd811a547d89e2b26a3ef4\r\n\r\nOutputlen = 1984\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82936b00dbbc122fb4c877860d385c4950d56de7e096d613d7a3f27ed8f26334b0ccc1407b41dccb23dfaa529818d1125cd5348092524366b85fabb97c6cd1e6066f459bcc566da87ec9b7ba36792d118ac39a4ccef6192bbf3a54af18e57b0c146101f6aeaa822bc4b4c9708b09f0b3bab41bcce964d999d1107bd7c27af989ebe1e104a35478df362ec4c9628f5ea29cc1164b92960d42068a59b1ddcb8875722ed59df36ea654d97b6bf39e5075121ec93f8a8ea6ee5d923997ae8a9d4c315a3d074e3ff83dfa26490f0f5b00a3cc3f110f0f761eaac885a3d1eee302014191733bf77b4d58cca49258897d\r\n\r\nOutputlen = 1984\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e3e19c258fb5bdd57728fe93c9c6ef265b6d9f559ca73da32c427e135ba0db900d9003b19c9cf116f542a760418b1a435ac75ed5ab4ef151808c3849c3bce11c3cd285dd75e5c9fd0a0b32a89640a68e6e5b270f966f33911cfdffd03488b52b4c7fd1b2219de133e77519c426a63b9d8afac2ccab273ebd23765616b04446d6ac403f46ac0c147eda629eb7583c8bd00dc7c30fcd6711b36f99f80ac94b683ebb090581970ae7e696c4c0afa9b5dafe07d1ab80877cbd09b705a0147d62d72a506732459a54142a0892c56afb61359e910f1e67dc99c0c105325a7d9f65b9868fa6ae6338b6c153f7705173f\r\n\r\nOutputlen = 1984\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a38ab00fcc24e9bd17860e673b021222d621a7810e5d3dcead3f6b72810ff1ad242bf79074d2fd63503cbe7a2ffe81b1c57566568b01dda7b440ad27aee54d2f8696615008efee01c682dae7d875aa21ab3914d063d21f1d97fa9d57709ebbab376a88b1da805f0fc5ab8370cd3b714613fd8e5939f972d72fd5dff9e17c1ace1ff2980ac9aac5c3ffd2d97a95bf42a5d6bb914996ead2413e6dc1b3284e4f45f2f2531775561001a14213e0220f86ab32b65e2e2f9f03b99ff5e352cf461589a38af04611ff9418e2115ad25a826be63627650ae8797d401d7279241135b81308d4028e5408f99ce9455efa0\r\n\r\nOutputlen = 1984\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5d11d46cac118fded60b64bf4acffb35b0b474fbe85d270e625b95d54157d6597eb4fbdfa482e636d4a44c9de13c71387654c1a254a85063dd7720ffd5c6fc50ab97914c67ce6f0da5ae14ec0f2c5cdad79c4d85415279d21e236519dc1422c5b6dd156ffe432c14f40eb458f21e20527b23c03e299736adc12620303716933509e0f8b8a8cef58a75810406b6dc47d65ae5d89f0ebbc72d8b1315f6a4a272b0da9fa19d9fa69aba98c30621cd63a4ac0b041a9439f986b728110f44817b157de7fcebf60d7a885f1c77211e5506da6d2a73806a53f33944fcbeecc9022b5f224e7dec29fb67234ec71bf6948\r\n\r\nOutputlen = 1984\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437d8da2bbe00f7bdaface3de97b8775a44d753c3adca3f7c6f183cc8647e229070439aa9539ae1f8f13470c9d3527fffdeef6c94f9f0520ff0c1ba8b16e16014e1af43ac6d94cb7929188cce9d7b02f81a2746f52ba16988e5f6d93298d778dfe05ea0ef256ae3728643ce3e29c794a0370e9ca6a8bf3e7a41e86770676ac106f7ae79e67027ce7b7b38efe27d253a52b5cb54d6eb4367a87736ed48cb45ef27f42683da140ed3295dfc575d3ea38cfc2a3697cc92864305407369b4abac054e497378dd9fd0c4b352ea3185ce1178b3dc1599df69db29259d4735320c8e7d33e8226620c9a1d22761f1d35bdf\r\n\r\nOutputlen = 1992\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667d8195c219f71e6345696c49fa4b9d08e9225d3d39393425152c97e71dd24601c11abcfa0f12f53c680bd3ae757b8134a9c10d429615869217fdd5885c4db174985703a6d6de94a667eac3023443a8337ae1bc601b76d7d38ec3c34463105f0d3949d78e562a039e4469548b609395de5a4fd43c46ca9fd6ee29ada5efc07d84d553249450dab4a49c483ded250c9338f85cd937ae66bb436f3b4026e859fda1ca571432f3bfc09e7c03ca4d183b741111ca0483d0edabc03feb23b17ee48e844ba2408d9dcfd0139d2e8c7310125aee801c61ab7900d1efc47c078281766f361c5e6111346235e1dc3832566\r\n\r\nOutputlen = 1992\r\nMsg = afc9ef4e2e46c719120b68a65aa872273d0873fc6ea353859ff6f034443005e6\r\nMD = 45c65255731e3679b4662f55b02bc5d1c8038a1d778fe91144a5c7d3a286c78c54f52135134a3c6a19a9e6e546de21b2e8a7e280290709f0e482a51bffa95137a381268d10195862818309b2a4954c656d1725c7ad1a29973162832d62afd538cf74e1b70d1775a9f77dc7c7380ea034f5b1869af46c1c26bce29e1980f0de9e55543e7eda19a56453c8b7d58a28ad7a33bc243c7242ffda5409cfd8f8ffd4b350c6d0023f27f93e9eb46a871367706170074d8a2080f0a8b68b8fc6b14b8b4da256e9e64dcb7771640e992eea2334e6411b03368f2d7ebe2dec063a254b1975141f6117691ae6582e5547e20bf0235e58f5678d255c37350d\r\n\r\nOutputlen = 1992\r\nMsg = 7935b68bb334f35ddc157a8c473349eb03ad0e41530d3c045e2c5f642850ad8c\r\nMD = b44d25998e5cf77a83a4c0b2aae3061785adc7507d76fe07f4dcf299e04c991c922b51570fb843ab04cce25de258fda0560454c0e17be715d8051f388c48351e72ce0f8df8daa7643d3659e0e7be600a584039a14f85ad695ce143b923295e2d00c9a4394d4973302706bbbc8ddf01da7154740577c5de11b7938ece4eceb169c896d5d52ce3fe715f283583acb54078bc5ae6434c4a0a9b453543f8c86fd97f42a3598f39e7c0fd2343afad1dc9902efa39a6d8d4f936d566fec33bd86f38f954ebad74ebbbbf93898df0d6e25482a33e8b3e190e32df4e9824c266e04ca3d86a98ecb8b6af1a5e908b7ea3b654aa459239ed8cf5e654ba29\r\n\r\nOutputlen = 1992\r\nMsg = 3e20cf32669fa3fd6e94e519b52a1dba33cd1f3a6947975e9829e4db326d2a18\r\nMD = 3389aea66244b91428f0896be26a9c3cfc5c1be2f07514f5d4718a1ed31855e148c4aa19b9f50f7619b04a1338b58fcb9b953d214f8218faa0e4b2daf467300283c96192d32d48b5e6801cf1560b72b5e8a418ee534e2e9ede69071403782ae08b128f236040d64f926db52af6aa532543ec211e90fdb72c9ed0efac1c8cd72357ba08310887c326183d9daddcea9e8352f89c5882fdcad24bdff26b6caa8ab3bd809d3828d3be79d0d5faefc8c74ec2356a805d9410b66607ba8e0064f2968c104d075e8796909c4c7811f1d5bbd66e53314e01b12ab9e7a72b4415fea8a06b85ad3302b5fc081bb6986f3b46ac369c1862654f7f3d1d9133\r\n\r\nOutputlen = 1992\r\nMsg = 7d9312ffe94845ac51056c63eb3bff4a94626aafb7470ff86fa88fd8f0fe45c9\r\nMD = de489392796fd3b530c506e482936afcfe6b72dcf7e9def054953842ff19076908c8a1d6a4e7639e0fdbfa1b5201095051aac3e3997779e588377eac979313e39c3721dc9f912cf7fdf1a9038cbaba8e9f3d95951a5d819bffd0b080319fcd12da0516baf54b779e79e437d3ec565c64eb5752825f54050f93b0a0f990dc8747aae6d67d5ca8d00c98907fa276671bf4f9971d461b2924be1e4924c4d61901ddc2240ce13969191f4a34fb84c4fd8317777b4074ca440204e9d99218064a9e2c07ffa1678894afe622448fab4480aa92744d8256b8a6e5cb7890e7b66f0e0316eb1edcffd21fa0803424a4bedd811a547d89e2b26a3ef4aeb8\r\n\r\nOutputlen = 2000\r\nMsg = dc886df3f69c49513de3627e9481db5871e8ee88eb9f99611541930a8bc885e0\r\nMD = 00648afbc5e651649db1fd82936b00dbbc122fb4c877860d385c4950d56de7e096d613d7a3f27ed8f26334b0ccc1407b41dccb23dfaa529818d1125cd5348092524366b85fabb97c6cd1e6066f459bcc566da87ec9b7ba36792d118ac39a4ccef6192bbf3a54af18e57b0c146101f6aeaa822bc4b4c9708b09f0b3bab41bcce964d999d1107bd7c27af989ebe1e104a35478df362ec4c9628f5ea29cc1164b92960d42068a59b1ddcb8875722ed59df36ea654d97b6bf39e5075121ec93f8a8ea6ee5d923997ae8a9d4c315a3d074e3ff83dfa26490f0f5b00a3cc3f110f0f761eaac885a3d1eee302014191733bf77b4d58cca49258897d6460\r\n\r\nOutputlen = 2000\r\nMsg = e3ef127eadfafaf40408cebb28705df30b68d99dfa1893507ef3062d85461715\r\nMD = 7314002948c057006d4fc21e3e19c258fb5bdd57728fe93c9c6ef265b6d9f559ca73da32c427e135ba0db900d9003b19c9cf116f542a760418b1a435ac75ed5ab4ef151808c3849c3bce11c3", "cd285dd75e5c9fd0a0b32a89640a68e6e5b270f966f33911cfdffd03488b52b4c7fd1b2219de133e77519c426a63b9d8afac2ccab273ebd23765616b04446d6ac403f46ac0c147eda629eb7583c8bd00dc7c30fcd6711b36f99f80ac94b683ebb090581970ae7e696c4c0afa9b5dafe07d1ab80877cbd09b705a0147d62d72a506732459a54142a0892c56afb61359e910f1e67dc99c0c105325a7d9f65b9868fa6ae6338b6c153f7705173f4a22\r\n\r\nOutputlen = 2000\r\nMsg = 76891a7bcc6c04490035b743152f64a8dd2ea18ab472b8d36ecf45858d0b0046\r\nMD = e8447df87d01beeb724c9a2a38ab00fcc24e9bd17860e673b021222d621a7810e5d3dcead3f6b72810ff1ad242bf79074d2fd63503cbe7a2ffe81b1c57566568b01dda7b440ad27aee54d2f8696615008efee01c682dae7d875aa21ab3914d063d21f1d97fa9d57709ebbab376a88b1da805f0fc5ab8370cd3b714613fd8e5939f972d72fd5dff9e17c1ace1ff2980ac9aac5c3ffd2d97a95bf42a5d6bb914996ead2413e6dc1b3284e4f45f2f2531775561001a14213e0220f86ab32b65e2e2f9f03b99ff5e352cf461589a38af04611ff9418e2115ad25a826be63627650ae8797d401d7279241135b81308d4028e5408f99ce9455efa06988\r\n\r\nOutputlen = 2000\r\nMsg = 445b17ce13727ae842b877c4750611a9eb79823bc5752da0a5e9d4e27bd40b94\r\nMD = e7708cdc22f03b0bfaca03e5d11d46cac118fded60b64bf4acffb35b0b474fbe85d270e625b95d54157d6597eb4fbdfa482e636d4a44c9de13c71387654c1a254a85063dd7720ffd5c6fc50ab97914c67ce6f0da5ae14ec0f2c5cdad79c4d85415279d21e236519dc1422c5b6dd156ffe432c14f40eb458f21e20527b23c03e299736adc12620303716933509e0f8b8a8cef58a75810406b6dc47d65ae5d89f0ebbc72d8b1315f6a4a272b0da9fa19d9fa69aba98c30621cd63a4ac0b041a9439f986b728110f44817b157de7fcebf60d7a885f1c77211e5506da6d2a73806a53f33944fcbeecc9022b5f224e7dec29fb67234ec71bf69485245\r\n\r\nOutputlen = 2000\r\nMsg = 6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b\r\nMD = b9b92544fb25cfe4ec6fe437d8da2bbe00f7bdaface3de97b8775a44d753c3adca3f7c6f183cc8647e229070439aa9539ae1f8f13470c9d3527fffdeef6c94f9f0520ff0c1ba8b16e16014e1af43ac6d94cb7929188cce9d7b02f81a2746f52ba16988e5f6d93298d778dfe05ea0ef256ae3728643ce3e29c794a0370e9ca6a8bf3e7a41e86770676ac106f7ae79e67027ce7b7b38efe27d253a52b5cb54d6eb4367a87736ed48cb45ef27f42683da140ed3295dfc575d3ea38cfc2a3697cc92864305407369b4abac054e497378dd9fd0c4b352ea3185ce1178b3dc1599df69db29259d4735320c8e7d33e8226620c9a1d22761f1d35bdff79a\r\n\r\nOutputlen = 2000\r\nMsg = 8d8001e2c096f1b88e7c9224a086efd4797fbf74a8033a2d422a2b6b8f6747e4\r\nMD = 2e975f6a8a14f0704d51b13667d8195c219f71e6345696c49fa4b9d08e9225d3d39393425152c97e71dd24601c11abcfa0f12f53c680bd3ae757b8134a9c10d429615869217fdd5885c4db174985703a6d6de94a667eac3023443a8337ae1bc601b76d7d38ec3c34463105f0d3949d78e562a039e4469548b609395de5a4fd43c46ca9fd6ee29ada5efc07d84d553249450dab4a49c483ded250c9338f85cd937ae66bb436f3b4026e859fda1ca571432f3bfc09e7c03ca4d183b741111ca0483d0edabc03feb23b17ee48e844ba2408d9dcfd0139d2e8c7310125aee801c61ab7900d1efc47c078281766f361c5e6111346235e1dc38325666c\r\n\r\n", }; -static const size_t kLen77 = 33067; +static const size_t kLen78 = 33067; -static const char *kData77[] = { +static const char *kData78[] = { "Len = 0\r\nMsg = 00\r\nMD = 6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7\r\n\r\nLen = 8\r\nMsg = 01\r\nMD = 488286d9d32716e5881ea1ee51f36d3660d70f0db03b3f612ce9eda4\r\n\r\nLen = 16\r\nMsg = 69cb\r\nMD = 94bd25c4cf6ca889126df37ddd9c36e6a9b28a4fe15cc3da6debcdd7\r\n\r\nLen = 24\r\nMsg = bf5831\r\nMD = 1bb36bebde5f3cb6d8e4672acf6eec8728f31a54dacc2560da2a00cc\r\n\r\nLen = 32\r\nMsg = d148ce6d\r\nMD = 0b521dac1efe292e20dfb585c8bff481899df72d59983315958391ba\r\n\r\nLen = 40\r\nMsg = 91c71068f8\r\nMD = 989f017709f50bd0230623c417f3daf194507f7b90a11127ba1638fa\r\n\r\nLen = 48\r\nMsg = e7183e4d89c9\r\nMD = 650618f3b945c07de85b8478d69609647d5e2a432c6b15fbb3db91e4\r\n\r\nLen = 56\r\nMsg = d85e470a7c6988\r\nMD = 8a134c33c7abd673cd3d0c33956700760de980c5aee74c96e6ba08b2\r\n\r\nLen = 64\r\nMsg = e4ea2c16366b80d6\r\nMD = 7dd1a8e3ffe8c99cc547a69af14bd63b15ac26bd3d36b8a99513e89e\r\n\r\nLen = 72\r\nMsg = b29373f6f8839bd498\r\nMD = e02a13fa4770f824bcd69799284878f19bfdc833ac6d865f28b757d0\r\n\r\nLen = 80\r\nMsg = 49ec72c29b63036dbecd\r\nMD = 47cab44618f62dd431ccb13b3b9cd985d816c5d6026afc38a281aa00\r\n\r\nLen = 88\r\nMsg = 502f4e28a6feb4c6a1cc47\r\nMD = bbe61d85b4cae716329e2bcc4038e282b4d7836eb846228835f65308\r\n\r\nLen = 96\r\nMsg = e723c64b2258b5124f88405f\r\nMD = d09da094cfefaad46b7b335830a9305570f4f4afe79f8629ff9d0c3d\r\n\r\nLen = 104\r\nMsg = 0d512eceb74d8a047531c1f716\r\nMD = 29ae0744051e55167176317eb17850a22939d8d94ebb0a90b6d98fde\r\n\r\nLen = 112\r\nMsg = 3b9ab76a23ae56340b5f4b80e1f3\r\nMD = c0903be96f38051cfc2a5ad256aa0b8332217f450eab904ee84b6541\r\n\r\nLen = 120\r\nMsg = e9fef751a20297ad1938662d131e7a\r\nMD = 48eba36dfe0575597d13ca26133267199dae76d63d1b9e9612720d08\r\n\r\nLen = 128\r\nMsg = 2bbb42b920b7feb4e3962a1552cc390f\r\nMD = 0dfa61f6b439bf8e3a6f378fe30a4134e8b2dfb652997a2a76c2789f\r\n\r\nLen = 136\r\nMsg = 2254e100bde9295093565a94877c21d05a\r\nMD = 6965256463276dbb26ad34a378c4bacaeae79d700283b188d44d73eb\r\n\r\nLen = 144\r\nMsg = 784ef7adecbb9a4cb5ac1df8513d87ae9772\r\nMD = e918a5d52a0d42ab8ba2ea386eb6ad83cb8dd9a6bd461506be356ead\r\n\r\nLen = 152\r\nMsg = f4e68964f784fe5c4d0e00bb4622042fa7048e\r\nMD = 765f050c95ae3347cf3f4f5032b428faeab13694e8c7798eafb82475\r\n\r\nLen = 160\r\nMsg = a9ca7ec7aaf89db352fecba646ff73efe8e4a7e8\r\nMD = 65d6a49739c0e287584ff9d1f3463ce2e555ae9678147e21b5889e98\r\n\r\nLen = 168\r\nMsg = b2f7018581a4e459cf9b9d9816fc17903ba8033f13\r\nMD = c6837f12227bfbd86ccfe794053ce3a54052c8ca8430f526fd64b5f2\r\n\r\nLen = 176\r\nMsg = f50086b4dc7bca0baec0076a878dd89571d52e47855b\r\nMD = e39aa96fad581961bda032ed33dce36defde958baf9bae5dc558cf89\r\n\r\nLen = 184\r\nMsg = 6e6ef963f5000d0b91b0ad537ddc9697f8db8f10a3d5ee\r\nMD = 66dcb292b4d6bb4cdd4099b8e7bfea9658680c92c51562c091577056\r\n\r\nLen = 192\r\nMsg = 12a7b1a73b0b26a66362ec2a91ea5ff11af49a7a148a8cc5\r\nMD = 6fc91ec8ad448173f591b865ed3eb89115a278003376523c00e22f2a\r\n\r\nLen = 200\r\nMsg = 8a4768add4a9bd7b3f27461220ceae0218cf3322f4d2a980d1\r\nMD = 9a88bc64e743f2acaa1670cca7e201a299e1cce6df7015b0d2535213\r\n\r\nLen = 208\r\nMsg = 5c5b8c1902c8608c204e72a813e2b625021b3182c48b00f7fe4f\r\nMD = 31802a0fa9ae7ae88626604ad9ae41381d6f7c3c90effcfcf70efcf7\r\n\r\nLen = 216\r\nMsg = e89e5cf07afb4a58ebeee17ff596d90b3274ba348f14f284fff025\r\nMD = 3bc9b7973f55735b612ddee8cc7907a3f1429b06df7cb1293b989802\r\n\r\nLen = 224\r\nMsg = eb9e1143782a0f9fa815261c2adc2758fb1d88ffe40a0ae144189a48\r\nMD = 9d70d22520094a113297a192ead33e316924fdc7a2a9f8ea7098b84b\r\n\r\nLen = 232\r\nMsg = c4ba3bff885fb78357221a9a903bc7ebd11c771faf5789e5aabc993a5f\r\nMD = 7b0212b4ee0b14dba62c2db7a765ac56db46e0b06eb744ee35726ddd\r\n\r\nLen = 240\r\nMsg = 07810e6b785177e52d0feac0394f3ecc41f35aa08ff1ed8162575f85888c\r\nMD = b413d6f0cce14b7a1044a14bb2803d53bef907093769a5aa63a8e316\r\n\r\nLen = 248\r\nMsg = 01c742dc9ab0b05df925d4a351e38bea7ca7ad783594e22487d5b8198583f3\r\nMD = c42c707ddc7b630939544adbdbe567a333ac88c3b5e738dee8f862be\r\n\r\nLen = 256\r\nMsg = dd0f85b55fdf56ba254e06f8c2b650cc6b86bf28a14d714011141a86b8f14bd9\r\nMD = 0fe92469297c2c34911eae424710db6d312047898b9756edc5c2deb2\r\n\r\nLen = 264\r\nMsg = ddf48f4cdc856c448326092dcf6bfc4ebcf4b36fc2e516eba0956807588b6e827b\r\nMD = 6cd83ba70e1bd387d603ab14c9fdcbf9862d2ebf0987215f011abee8\r\n\r\nLen = 272\r\nMsg = c34d1f8729663569569f87b1fd6e0b954ae2e3b723d6c9fcae6ab09b13b4a87483b2\r\nMD = e57e1d24dbd9a30ab311291f5d6a95530caa029c421dde0b487a577e\r\n\r\nLen = 280\r\nMsg = 808de7cbf8d831ad4f17eb58031daed38bdab82f467f87c6b2e3a7c5de25c8e8229413\r\nMD = b3c13f11227f4386afdcf7663a120990f27da205ffb9bf83676f86dc\r\n\r\nLen = 288\r\nMsg = 5204a0a63707bd1cab67a8797994a052ee73884b325fdf37d86ef280b3f550c9eb4e7fd3\r\nMD = 6aa1060f84127bf2c988230a907242e7d6972a01c6772ba0f7b8bc86\r\n\r\nLen = 296\r\nMsg = da9439bd090dfc2eccc1203a7a82c5d6467fec4e5b0a2b2c2b9ea65b03203a8ce365fbd98e\r\nMD = e8f0929f1f6209d41185292d35ebbf5a3bfe5492713b06d56579458d\r\n\r\nLen = 304\r\nMsg = 668bbd38c0ad0881a7f095157d00f29b576b01ba54a8f1392e586c640ecb12b2a5c627a67884\r\nMD = 75dd056962c5bb5d6f616a9f57892992946d048df57c0a36a40a365a\r\n\r\nLen = 312\r\nMsg = d63ac3bcfee3a5bc503cf20fe8ff496bf7a8064769870c8fc514c29b55825b6288975beb94ba56\r\nMD = c694da941a7a506cef471fdffb5230bb6c3cd2715341033ab7268e9b\r\n\r\nLen = 320\r\nMsg = 985f06121aed603171020badc2075fd33256d67d40430839575ddaa7a3f1f22325d06ea40252d5e4\r\nMD = 29f8846aaf234281b515ea1d45674535a6126c38bd959c1995cad7c9\r\n\r\nLen = 328\r\nMsg = 8783849552be4540cb24d67996a10d16444b2d936d2fa5fcff51fb0dd5ee03998c0454289215fce47f\r\nMD = 84502256e3f4291ef4d15e8705e579951fc0e39a2d58fda74852551f\r\n\r\nLen = 336\r\nMsg = dab31c7b3f40825aac13f6772771b7e7fbc09fedf6eff778d51190ecfd4b0f256cf189baeeec507e945f\r\nMD = 97168a9c3b07ec4987a4cf1f2478731fc674f56a2caeef074590ed6b\r\n\r\nLen = 344\r\nMsg = 1119b962bed5815734af7827ec536701a494ac5d4ab83eea1b16ecc80ce4e5f8694a7d11bcba2e34f084dd\r\nMD = 205d89e032f03c8519cf43b720478389b1788f3522c3d347febd2c70\r\n\r\nLen = 352\r\nMsg = d2c45e2c1fa0c44efc84e6c0654cc0d867a3e33733c725aa718d974ed6a4b7f8f91de7d3622b1e4be428de2a\r\nMD = d483e39b7add050eb4a793e54c85b250746e382399c74736f33da890\r\n\r\nLen = 360\r\nMsg = a873b148fe1807b89cbed930a7802abad6ca0442340e62ed21b84ead9a634713bb4de5648208c0eed6738d9cc8\r\nMD = c86bcc12a6ab792c149aa83a6783ca8bb52b0ca4b2c12661c0a25d22\r\n\r\nLen = 368\r\nMsg = b3008f6f567d1eed9ab5b3bbce824d290e66f66bcfcff7f9b8994835b4d54a4e45c9b8651b37dbefe5e3fe5b674f\r\nMD = 23929753ad07e8476e7bdac8a0ca39e9aac158132653be10ebeeb50c\r\n\r\nLen = 376\r\nMsg = 78d073b4e13f6850dc1ca36683abac72336465d790eb3575c942667d1e3ecc849f37a8d73604cb0fe726ffe55744a2\r\nMD = 6229233fc655ea48bb5b48b73a081897d855f6cf10478228fc305842\r\n\r\nLen = 384\r\nMsg = 45325b80e043c0cdce3ec421ecda529481910c09730128b4bb927dda1659ddd8fd3ca667d857941e6f9fd939a1c57098\r\nMD = 776aa1f54e038f390491a5d69bde7a2dbcba97c35574ebe60c9a772f\r\n\r\nLen = 392\r\nMsg = 3bdd6821d938fac52101fbee5d6ba191fb3b6cb634dbf42cebaae57bd897481ae5ee04e2d871a4c333ab5ab6588144f2f1\r\nMD = 62f8f3baea6dcf5af25d53ddfdac0bdcde88e3895df567c6c416a541\r\n\r\nLen = 400\r\nMsg = 86fc66f2618c98fe9efa1e3ac04e340385dc2b746cbc0f7c757b88342810fe70d81200952928e7aad0c0b6b19a044537b009\r\nMD = 20a21eb1d3130a4519ce6abd5ab6817081ae1bef3603056476a00e41\r\n\r\nLen = 408\r\nMsg = f2a6168e7f92d313fc30f9e6f825a480916216f02e0308db70773ec165e25e81ffbf0220c5ca0cc6c91d3a09da99fa6efa877f\r\nMD = 5d6e5c82574f5e5c0339d3af1f9c28e17bcddc306a15187aff5d3dd7\r\n\r\nLen = 416\r\nMsg = 5e3b6b75b54f21b8016effb39276f5e7f493117ac4c0f2dec38a80ae2917dad83c68900120db1325f1f4697e0f5c25a8b92a9702\r\nMD = 5dc2147f1cf655dabb5ca4b2970b4564eb19ec456e6f966bbae19762\r\n\r\nLen = 424\r\nMsg = e7f17c131950c06311f47799a0f5a6b4996f4cc890334450e1bd6cc6f5670771c0dc607f8eceb15300ec4220510ed5b7deb3429de6\r\nMD = 4ce80dab9f933112a3fd78c1f76434b197806eddfe35cb0bdd845c15\r\n\r\nLen = 432\r\nMsg = c9aa3d0f6d878db11235e7b028f8d67e2ce26eee718f308e21132e377e3170e26ece95bd37a4bd7f873ba7f8b71517ec50297b21cf94\r\nMD = 5963b41b13925a90c9e8fbcded9a82ade8aae36dee920199f6d6ac7f\r\n\r\nLen = 440\r\nMsg = 0f170afafcefdfa8b0de328dab30b4e44d98d6aea2bc39557ff4658fce4fbf8526d8b5359f173c14e4da7cf88935c9369fc7d607863f25\r\nMD = fe7e59028c7855c37ae3dc5ee324864cfee6b8bccc2c3b5a410b65d9\r\n\r\nLen = 448\r\nMsg = 6b2b92584146a433bee8b947cc1f35b617b73f5b1e0376ac8bdadfe5bfdf2263b205f74dfa53db7a29e5078f5c34a268119736ba390961f6\r\nMD = 132cfa7e71fe0991abbd88ef588ac95ac9289b1d775b42033567dd33\r\n\r\nLen = 456\r\nMsg = 39f7a94312bea1b4fa989f5a6775df538f01704120838c4a3104256478b5c0cfbe8b86e2912c980b390ea412edddb69d461e50f9f313bc17af\r\nMD = fcc59655b8fec1a3d878345df9108bd99f4dd0e5218a55fc335e57f7\r\n\r\nLen = 464\r\nMsg = ac582b5a4b", "b0c5e9c40d8f277bda9de3d07fff01e820a1cdaf88708f1d60be60b9a5e83b5c593657387802b4182d1df4e9466e6d7ae6dc7c8079\r\nMD = 5c2e10fae8f4304cd9361690e5d2c4cd15f10a7b14ea60208739579b\r\n\r\nLen = 472\r\nMsg = 072753981998453438a520d9de2d5704292910148b8f794ec3765b240c7af1b79462fa9a2f000dd94d592d3a2a069dc244daf57b12c57675f3f89b\r\nMD = b0d290a6ebdd950811a2715f354b0d8935cb610a471cfc5dff5e0660\r\n\r\nLen = 480\r\nMsg = 66a9a6d0a322ed2852378af82c0a2c027b1082098ab750925a4dc2e8961d0062c9db02e8cf42a6b48afb0056d6c1f1fbbec3fbeef049535f6e9b3864\r\nMD = d683488c8420eb2d61e528ab0a7b73aa780a085b9c7982293b2ac6ad\r\n\r\nLen = 488\r\nMsg = 18419a8498d4e9bfaa911748186c5753d5da5aa033371ffc56650d0ae9b73f430f0d1f3c9d40362786c0429d977b899b64016eca82e64203f6685c12ee\r\nMD = 51d0cd33fd6579b05c366c6fcc653638b7b13b62798b99b36792cdc4\r\n\r\nLen = 496\r\nMsg = 4fc52009d58a0fc2573e83fa335b5c1df8c14b2e6daaf05bd6e13fd5722f28de4816772424c2f94ddc3de0d3d7e26812d014bb9fd83012dc9abf1ec9e3f1\r\nMD = 630ee2beaf1c1592eaa6263fc562a260b6054e9eab1aa19536fda170\r\n\r\nLen = 504\r\nMsg = acdaa28692f334732088f5efab2c7951fe0f845b9e2c6f1253c3cdcde30a4e8d2120e38c26422219df41eda2c8334e13f669a65f5ba2075b467eded32936d5\r\nMD = 7d4991d54c78af5809cd17024cadae783c6f5a1f0feb365b532580c2\r\n\r\nLen = 512\r\nMsg = d1593cd338b7a25bb5413f112a639fe31c981e505c81a820e638c25209e2ce56c8838a7c8117dbadccdec959a6f7cab0cf304315701d4ccf0167b4026a6744de\r\nMD = 84e18330723e4f90520d0b051a9bf9bd7b5c7ec0177803f15cf740e5\r\n\r\nLen = 520\r\nMsg = 8cf8ea25310126ae1fdce3c9195395a9d45051a2a3f08ce154d8265b54cca7031a7ec840c3a3359efa4c91c41b74baa698d54ffb9b0170f2edadc5201650c2bdc6\r\nMD = 75de14169d16a9902f6e8a3359d94594a889c4aed9246caa6cf5612c\r\n\r\nLen = 528\r\nMsg = e0320fee19af5bfd511a23cabba75acb0815525a3734305aafa49c1d8bdfbd853579646a36a7873c4cfff2eabd7e3902eccff1192aca1f6dce3cf1c988e6aca9f2c8\r\nMD = d7f2018c303ee045de4b8cdefcfb5395674e3a8770d65f0757b4cd5e\r\n\r\nLen = 536\r\nMsg = 1a424ecce1a82c47742171a701ad6e0ff1a762ce26f8e332818a7fa1a800a4e506a4bdc813a09ee1d57222ada79a12e2399549ffd80f1628ef55e231ce0913f9ab1930\r\nMD = 277f96fca5d9ab055fae5d4dd10cc49c2237bd38d95bd8dbd168ec21\r\n\r\nLen = 544\r\nMsg = af172809570cc306333c25523f863c6d0e0154c55e404722f0d4ed419713dabf8e18493a0e0b53b220a36535b1e8f0bbe43e624fac9f566f992807b6f2d70bb805933e2e\r\nMD = 9581170093600cb67063a314d8decf109ff9368ffbc90ea2d3250577\r\n\r\nLen = 552\r\nMsg = a62f4b43250cdf3f43c1da439bc5e4224b15185b60d615e38e3c512425aab145401b57ac3fc0bcc178eafef52a2b7b04b2b89e760212f96c4ee694990831858f0fa7c13c24\r\nMD = a0f5775a2d001a66f0882ce1415261994021988690840c6b4a3470c8\r\n\r\nLen = 560\r\nMsg = fcf81c93f917bb06f278f48826ef9ca8ba99ac8f00129fd9f8e81ca31750d5e54818af0331dd239eb77ee4b0c4d0c2d84794cef27da6bfeb707794d3bdbc7b349968f2a316d8\r\nMD = a97a74fb01fec5caf3477220eef6e7c36d0ba4199ddc755f7ccf94ee\r\n\r\nLen = 568\r\nMsg = e61d24b500581734c29902ade4c5035c090868df9f24bb330609fcdff4a72d6f18001424fd813cea32923d8aa86c3d215b2ab7d134237bb62e78f61cb9e9b4ef5ced23729d019a\r\nMD = 40758314f1abbd43e0bc9c73a1c7e24719d56eebcd967b39d355e978\r\n\r\nLen = 576\r\nMsg = 37b14f04233dfb4da5e5bd1852f77c41e25c4926936fe414c8108200f6f3cd78c03e2dd9615446c14bebc2c70d65506a7a5dec4808806291769e0dbab200e576f9fdb9e240c8b8ff\r\nMD = 2d36af0dd95619a96c5664d8987bbb82d183466ff44151034fed687b\r\n\r\nLen = 584\r\nMsg = 45efb0a3d8fb7bb683913459727e8756d67959cfdd4f5b80e13ddf45e09debdc2cc68ceb632d6d45a2d0a869f6d4dc4c136c805849fe77b4b381e4c6b22a3ff69947a9b5aa6b7cbe42\r\nMD = 125e983229f65bf01b59a9b619810a88f1c53b4c3b1960b52a205d99\r\n\r\nLen = 592\r\nMsg = 9b6c3c77746219dd88976966c68ead59eb62aa3cf6647798dc06d4fc7ef8bd44d8903f1b7b6f8bbf3d6249052f862e9ccfb0d1957f0bba233603bca0766286d17eb9746bc002abd69583\r\nMD = 762629518833ba68333fc3e3b4d482c60b4e0e828872826b68313315\r\n\r\nLen = 600\r\nMsg = 9f452f900219017199edfc5d7d86a162d9750bba4cec77428ed1032e5711b6fb7c37c1a65b3d041c7aa1d4f16bbcfc54f35001436b60abfb6544c0b393fc1389e5c5bdbdf2eaab1d99dd59\r\nMD = 19b432f5c38f665441d36c472d386008a5bbd82aa4eabeaabe3d28cc\r\n\r\nLen = 608\r\nMsg = cbfd186592fa68dc3a21d62db1ba55121f58fecb11695859d70bd7ed2a21a2a013a699640842973b571bf4a7c8ee4f617d5e8a4d1e8c15ae33e77097d146eba27934b1e33d8a041f2444ca3a\r\nMD = b32ad13ba4a0b9fc1aa9a1a57bdbfbebdfab71cf5a16e06040f75787\r\n\r\nLen = 616\r\nMsg = 173225324c6c350ddba227b89a651e576d1ab6a96895453c33ea61ddb37fa253e666a84d0fea609814688495246161eb9cccdd792cb1b88f36f3125d766e2eabe84175cbe66dbecc91a0ccf173\r\nMD = fc8feecaefffdaa966e9536b91dfc85ea5113a01d6b320677d727a7d\r\n\r\nLen = 624\r\nMsg = 6999f398407480cd43bafdaedb8624d9ba0972aa5a2f3504a67fe54ef744b7bb41ea70cf8faa771fac6a2f5823de83826af4c3865b6faeeee3d1d0edfe7f0e9fe3207f917b467d841850fc6e648f\r\nMD = e7abcb4c0f218814ecf45fbf28a3f286d90c5e740aafd1647437c1e1\r\n\r\nLen = 632\r\nMsg = 2727eeb1d51098c69fd8141d78f21275b2bb949e7115fd3860526bbda25547c20cf31b79919fa37bfd4726c4e77906ffe0ca9705f1782da0454e799422c815e01e785d418fa881f84341d8cd71ec77\r\nMD = 2be332c873ed4fb70bc1916c76bef2cd3385e674b83aa1ee8ad28a01\r\n\r\nLen = 640\r\nMsg = 1f48a5b401d88e6cbe37f3f634d55462865f7cde7990052a1e4a1e4cb2e58c84c2c7ef82923447d7c068b6aa25e388acfc05704e46da14316d37ccdd2706a7b79ddeb02dcdd76f342c9cb2f490c18dc1\r\nMD = 448b70f575a8a1eb74030a985e9c504d4eaf6b1814e1146f782c9af5\r\n\r\nLen = 648\r\nMsg = 6dce9a9ecb48b9da8aef51a89e7f7fc1a6a78966b7bac0ac5ba7ab18d92b616bb74537bf7eeb9bd3bdfb40a450747c3de2e6eecfb12763049148fa9134c7870ba80636fb21fc7134f92b0364f5d27deaca\r\nMD = df855d544e17f01125022bc18e9ffced12f3cd39674e68184657ec7e\r\n\r\nLen = 656\r\nMsg = d498b6901345afddc5aa50cac77f7f794d7929eed571d95b59c289a0c9f3b812b896bc7b566f5a639ed9948ed066c2c622c6e4dbb2ea37e7c06806d61a22c326d72356ec48c9b5182c29b5f923af20046605\r\nMD = 5b225c29e4547777a2c6a1a2bbe9da2dc6a8c6d0d01d8d8022988be2\r\n\r\nLen = 664\r\nMsg = e958b80489aa6a38526244da165dc4464e7961e457f763abdb23f7e48d368331197b37cd5ab1e515ceb1124848504d8be587bf3041d10437ebd53915164556b59106bebdf99115122d99529e02ee155138a13a\r\nMD = 364a988400424557a9c60e4e1f32f0855a3383c90b007d30ee3ec333\r\n\r\nLen = 672\r\nMsg = f33ba982bc2c3308f948a1b64c7fb68fb891bc05fa18781b1dc95dc749f7009adc58cca2bb0cf790ebdbb4165bbfab9304a2a6f234688dcf273094dcd8d7b38416be57cedace5783d8b92993548256b5373f2b4e\r\nMD = ca37e52f2843a0f65692c5aeed0169601da3275dfb3ee6d81b467f60\r\n\r\nLen = 680\r\nMsg = 8b5d77a906c7ec7563af7551a796e5d5dcf02c42121d7b13a49aa9d4bc79d637190e4e6510ecaf92d1104fd4ec5bd8351446350722d1b2775dbc5e65f8fab473dc637b5ca8a9eb88f68d11dde15275d7c472f9db43\r\nMD = 9337537de482f0cf88cad6b86e195a1e422e59cc60d41d0eca8b0091\r\n\r\nLen = 688\r\nMsg = 3a564a84c2b48ee26da138ce2d1ae3c7933bcd65e40288406e56f30d1c48690a4998389dd27b55376f9b4e7f43607fadb16e8933726f00a3e41264cda553532761fefc73e86ed79b849b94e0895451332dc80fe39a4b\r\nMD = 88eab3e16ca8da5716542bae3c7c736b541c896199b2cb941213767b\r\n\r\nLen = 696\r\nMsg = 618a53989ffbbf54a76f01f9b87772491d87c8f25c58eb11b18a04f5ba8ed62574c351a466df64731c911458d765cbde83e7f29de90bc1bb26cc56b35c140555a7dcf00f5394d76a4cc531d7d5f57bac7dcbd06a4f73ba\r\nMD = 4a727cc6b4bd93d5ff2ecb81ab5057dfdcbe3e0c49436a58b9ff3ef2\r\n\r\nLen = 704\r\nMsg = 31857bb4e82497b526e426de6920a6063d02264d5249feffd14abdbbf03563d4c59ad1f7572c7d0efbc46a65dea9580bde0e387c9edce27cd9b20a46f62a70e6dd5f58e40aac3a22dfb6ba073facdadd58cd6f78c02bd219\r\nMD = 9e614fc139645e158cd1b216e2623e586242af64f8483e6fca20ed4b\r\n\r\nLen = 712\r\nMsg = 14859008c83f2831be4d6e54b781b9fb61dadc40c459a93ede11b4c78a7e5a55a71701427526a03b42d883f247904813cd812e7a947c8fa37406aa6145aea6d3fd9ed494186f35333d423ce31e0cd473a031a5803c5593e9a4\r\nMD = 545fafa43afcaf38063d8a312c3a27e0d74bff957f8ef4d51cb29698\r\n\r\nLen = 720\r\nMsg = 267a14bad702ef0a8468b31c72715f0533f6b97e6e943839dea420719d6defc5a399f84689e64ecf931ee395ee49f1fe362199b73cc6cb0105b3654b16f19f06ee8aa6b5d5418743d4804f9a059270710d126765e6a49c4ce2e3\r\nMD = 9b9360a5c747e6e1288f6f9d971051ffd84641f6d64e0a4b5142e4ec\r\n\r\nLen = 728\r\nMsg = 6c98a8eb3ea4451401e0424c10cb722683b23f75ae254d62eba75abb9aa9698e65ba1ff7c9f86d36d1ca6f0425d19428441b00450e9a2ef685d5da1cd4de1e779184db743fc95a461797333808ae6e42fce1e9da5d82f90cd71b54\r\nMD = 0c6f33f9534fc52f3700f37b9ee678b4c5c8a90b1a2eb1574002e377\r\n\r\nLen = 736\r\nMsg = 4bae62a008d9fdba351a1903c66d58e587361990f7c9eea05a2f51f90a2892f60e6c14c4ed36b908c4039bc89797fd88e54281b37f619b3d9a274587229ef48351e8cb1881cb0fc83e6ddc90a05b160fd7d0a1eb0835d57158e42c7b\r\nMD = 989c156ba1fd1f70deb378e46ffcbf6f2cf9cf977a92ac51643c97b4\r\n\r\nLen = 744\r\nMsg = 83ca6d4ebdf1", "c04062ca1abb977670ef9bcc889906935fd64ff4c739912e541b8f8c7932f595ef66e18256dfa1f51f63bfe7a9df3ae2aa431771d19318d6aa3bccfac1a4c8aa0a0433ff807a881e0d5a9722aac6cd57c77eb6a9edf8c0\r\nMD = fb831f2456595fabee9d458625283a80bb4f8f031e9abdbf48b7b51e\r\n\r\nLen = 752\r\nMsg = f4c7ad8d24ed5a682c473463e85391050c026fef0b0e6dca388e1a7e2bc872a46746a63f3a2c1ca6e4c8b7c5fb6b58850d77a58988ba091bd7fafb66ced184e548bcfb1b0e6e1485fb6a19cd5ed07640a0777b82273d5e80799b7fa7a57d\r\nMD = 13bee617474b3fc3447025f2a488dba8825d46a4e128b9a8bdeb1b85\r\n\r\nLen = 760\r\nMsg = 5f81c5aec92385bfdc55ebd600f23cb04ac9d5c7a1396f801ffea1a6b94aa617231761bdeebc9ec0f4bf9bfaf5ebc7ac82a2c96f1a74c46d94f0dad0bcb9ef7b41ddaff8cf63d2b278239e6558dbaed2797ef3b7f4cff8fe592f6a3551b3d7\r\nMD = 143a6f0a20d5b4dbc5df64a7e50f9985631453eb09ded71667709083\r\n\r\nLen = 768\r\nMsg = 0735cecaedef99bf4c53242f0552f49f56bbe589a2f611af75f4f3aec366cdd6702d46391512580202b869097fceb8a45889fbbf9852472f94bc2f432bb8309c4d0c4d3fba01f6e90c5c2ea3f890ed95d132c31f4dadbf268c378fac5604e8a4\r\nMD = 9f5e9f7429e5488a843c52ffb46ae2e84228919d32330a9193af3b21\r\n\r\nLen = 776\r\nMsg = 9b4e4df92e5152fe1ec56a9fc865f30bac7e949fc4f62f0b158d10b083636b4de9bb05db69fe31b50103fefc5f8daf3af7156b4552ca3667a9d720bbb2e4bcdabadfd4b7f4fc5bc811faa36710a9d17758a98d4a0474fec27e9ef5b74f5c689935\r\nMD = 487a6f2f875cb253de4cef18ecb4f2a54388ebaffbfc4259bdd97f09\r\n\r\nLen = 784\r\nMsg = a61bef838867710ff4341b26b13b8d7af7e461ccd317b160cc4fdaaec7f1805a28ddd3663a4210a7d1b64a752e866aa7224a75bf77bd0d618bcc3b0a3eed6bfe0eb2b882819e6a4cc437bd38915ce53c55d94e9e9339286483dc230d0049777ea1c4\r\nMD = e257bc45b62d0853ba4b0f8578698f4262c31a778cb6a6317b6e6d60\r\n\r\nLen = 792\r\nMsg = c0bd79e0c5f72fcb1de6c234bdb67bd0d3f481b962a3a01f2d8c483bd7d5d98548d51d27532716b195fdfb0ea0b77db759b54e269e69e48e2cb07bc9c06259927d2755f48e8d9a020c58a9c9221a9d836f03b30eabf9099c8eeba6abed63bb38275b28\r\nMD = 92df7f848ada8a9698ddc2e7452ac8fc43cf83d2ca2cadd712c595f2\r\n\r\nLen = 800\r\nMsg = 77823af9b8796c63baebe7ba9dcde12c626b840ea04f42d878646970ca5bf7aba94eaf110da36ce0c834b654bcac93264a349f520e505f1ec903d3589e3a4adf82687a65ee6dd072d6bc05acdfbdf257cd70a5183a54b4fe8e87d1c22b2e9f4ee817c57d\r\nMD = 819a4340938497cd8b1def8444bb03f8429b9e87bad8000002d60b83\r\n\r\nLen = 808\r\nMsg = ada5651b4e240335600940f207b98371f7e743988957bffe0de8ef0862d1ba52c52b6950e7b05c3542c2fb13acaff0442d33940a0e3ea67232f8437eaa02128283ffc0cfe254ac8f542be3f05fbe4e855dd22ae98a81b9a55b3d3753111210048f2b50e068\r\nMD = b6177d179cf17eddcd8988c9108b42af9c41adcc5942c4d33b0f1be2\r\n\r\nLen = 816\r\nMsg = ff4704bbbd719b011244ebedf2f2355338fcc7d64844c3a0f36a21569b55f74a9710f8f3d8d83b9bcd733f5885c32b3d149a5ad137d016c03b93a4d11aff8218e8eeec6d6d12a41d1441f3df040feb098ca2f003c4c277fc71300cdd2a399a7bb98ae711c446\r\nMD = a1072b28f3453422e611421309aa49aaebba0273c72b835fdeea1132\r\n\r\nLen = 824\r\nMsg = eae4b62f697cf0bf40a1c2c109143c1dde18e24f1c289aba67e5c83eef52b70cf1433bb98013949285969630054e074ca2e249d465cb383dba51561cbcb626f0b3b1d542db1e1ff168f371c7c6764b4f25ade9eb351622212e99903614bbf1fe3914cdf203035a\r\nMD = f5273e4d0bf9779a0975fee23c447b3abb1cd17c34c723d62f3a2fd1\r\n\r\nLen = 832\r\nMsg = 0e39e0e6933c6104984fffe115dd8cde77edfee495480aa5e5def424f066a5770345fecb28b16caa5416bc79e2b83145409bd4bfe9a00c8493f06ea2a99dd658fb87b71eb57dafe58da55fa0411e790341e31a8ba8f35bbe71af23b4e8833fd65ec8b4e621e95340\r\nMD = 62fb7d6b3810d0fd7d96b4ff5efe7bd283ddbbeda4a21a62f985a3dc\r\n\r\nLen = 840\r\nMsg = e32bea9ab02de7d893ecb7857ba66df2c35ed258123065ca80e2a067fabb7dd4e79839ea0b3c58abace8e97bf42b0b8d97fcb09bb606a1da0243c32d24cc98985df008f8698362f2aa789e2a82b3e5b5011853d0c0e8fbd20c4d2b5f4733f2df8c5ae02e92a90d95d3\r\nMD = 278e06fd12a3e314f60d59a323673ba0a22003e42ac48e1cd04a70d0\r\n\r\nLen = 848\r\nMsg = 4157752d3d175a4bc1334fd42c204111728e7059659dcedf334ea7ce30378798d67c598a0afacca5a1c5fba923d54c72cffc9887df1b8df10d96514955056815fd2dd855d32e8b58b6fdf4d45715f636416a0137179f7eb01d786daffa924ccabd523bb31d1b5f0d05c4\r\nMD = 1cab43635d501e43ac42beee263755b9a29827e2a18b21d7be42e447\r\n\r\nLen = 856\r\nMsg = 2df12d8c256cd1a127e525ac3763e30c895982eee67ab7c150ce3deae906d2b9110d829ccfdf2793729e31e478e3a310ae525e059971a29515bad2273cee77ad89ad88d63d44e98402c63180cf5eb06d0be3b1faf5adfc5c43a79ffc09a6ee6cddf9c9a039421d5b2184ad\r\nMD = ee60f0d01008cface49af2ee5780ccdee37404c37642008a55fafaf2\r\n\r\nLen = 864\r\nMsg = 03be6940e859f9b072660dff28a187551c2425481dd0555d2dee4acc36164f84f8505b6f467ae6f772eafcc9065490d9b4ed12a690d044bf7da14986e571fe34aee28e1d698c4136cc9f95d462c990b6815a54467da6f41c1baa86c448f37ac10bbc2ad1b957b17368ce01a7\r\nMD = a8aa80d4c925889b58eff41b89682b92bea60c1c3995043dac312d2d\r\n\r\nLen = 872\r\nMsg = 0baf1ac243c1f34ca5e00aed4d867f967bc2b963e93956c35b6b68da7737de23d7a1405a5dd4a099c663cdc182d4c91bc35f7d3fd5f3ac35ad7a26dbc45e3e86264c7decc538984214a1a0a1d11679ae22f98d7ae483c1a74008a9cd7f7cf71b1f373a4226f5c58eb621ec56e2\r\nMD = f12f7a1c5c1c383a2a5fff8932e2ae9dc342b37652d47356ffc1cb37\r\n\r\nLen = 880\r\nMsg = 3c29a8c83e48194a7b87b69e376a06063de2449bd171fa91e58ed2bc904ba853bb35e3f51e7c06e96b5482aac89acfa383bbba3701d20104f8101d69de615f45a24c3e02991bf0d3bb3d37390fe87ecc64032438424218862093a69dd7b99008573661f9996ffe8ed50b7e54f49c\r\nMD = 5c6b29c3cbfd1d2eadf7c791513b27f21c934de6378ef748b779b71d\r\n\r\nLen = 888\r\nMsg = 68a3c06e0740b569c72ea6a90d8b45e83c7c350d2bcf1cf6d6dffa7553b8b998087c052e1c065d862bcc6a7a3e0a90acfa1dc410172c9dab140ead9a296811557e1647359acd40341efeb6f5b3fdc0044162a45e62b0ec341634bcecb830626930392f8c6bde85fa088a322054acfc\r\nMD = 58a691524398a5746df28ac083f15861750e0cdd1fd5e5f57c982c18\r\n\r\nLen = 896\r\nMsg = d4f757d1c33b9c0b38b4e93e8e2483ec51b4861299f1d650961457496d86614d42a36e3696bf168fd4663efc26e88cd58d151e1531467b73f69dc9ce4f8d41ce579ce1c91e6760e340e7677abdf4fec1040745aa5144640a39b8c4f884df80753a691653003d634fa5bfce81f94ec3f6\r\nMD = be11259377f09821d9dc358592b6565d8ef2b414dfaa7db5609fb751\r\n\r\nLen = 904\r\nMsg = ecd9e95f7c5efc8336f80fe67e113657b31482bafc22dc5b45073482846cdc48414d2ea855ae75d9f28a0bdbe30dbe511503788e578f20f25e20bb770ca1d787f2f02911139275dbeaa5ae1aaf155f40d7134915dac34d0938358dc8be97cf1005a922bf3d71c331282f41c86993e0ccff\r\nMD = 6950ad0f91398b39965b1859ea918c531212face1e51d4d390f094e1\r\n\r\nLen = 912\r\nMsg = 834ddd8fc7ea0c3385ef8280d3a7b22d59ad17d710a51a544a293544f30659e816a98d38a2d4d92f6f96626a7c79d6f17bfd0a558f45e2fb541172b720ec629c88a7971326050f2b9ab80d30cf8c777f80e37c98fa61797523e81e1bbbc7cd6ee22e4249dae679ce0f3eccfb54495d7e7046\r\nMD = ef21ee8d568c009eaa8d1ea770968cb718c4d56e7b2d966bfcbbf398\r\n\r\nLen = 920\r\nMsg = 6ff611208395d81500505dae050ff0c29c0afde2a8e89c96192863ea62c17e292d0502e94dcb7f47f4cdd574264f48716d02d616cf27c759fdf787cdcd43b169ea586c8bca25fa3ce1a08eb615655e2471a0faa81d2edca28eff4030fabf36f10fb5f50fe4eb727c308f317bba995b6310ae12\r\nMD = 8a29f2c0d564935b8d31b7d007f58138489d140917a28ee85d43b6f2\r\n\r\nLen = 928\r\nMsg = f977ea38076328bb0ee2297cbe3b2a9755fe8bb95ae726298e04df05201a7ccf2046b82836e092da94a4eb1c291450121718159468e8a330fc2b1272c661fb62397e874ffcd7cccbe5425af725791001c0c035ea41c8c48dabd206ddb217666e2b688237c2127e96eb049d941b34126b373e1345\r\nMD = 15180df5554387337f04de2f37a16b28125adbd02b6fa6cfdb24195d\r\n\r\nLen = 936\r\nMsg = 22a8fb43d54fff82749cdce98abe8adafcd443ffe16bf0e99341e1f7064fc07a5907c816abdb326c30fef0f5846e9e313f32b602c9e00352706358fcb7fb81eaf1857a7b0ffddf27b741a465961806ccf672c17993f284b2aaa9a2c854250a4212aa7937a9bfeefc30ec5f0067c3aaf34a1dce2ee6\r\nMD = d11fcbbb2fa03109f952a56e16867c70904552eb580a6659314bd5fe\r\n\r\nLen = 944\r\nMsg = 68727636ff38c0ba8999dde3cbd9503900d5ccb01d3c9b7959fb411eedf95cce1805cef6670d1e1133901cc06b55c41d945e654c0d18035498d4f92d167ae21b927cba3a810a41594885a00bff354ffc753e368274d01374469f1b3f7793e436ddc0822ad698f13bd15fb3ed10e0b97fac5f8778d9ce\r\nMD = 21c71bd09ebf5d09155347c4f476b8f9c5aed4579573211887ab6084\r\n\r\nLen = 952\r\nMsg = 167cb772f096b2e3b1599cce3440d1af57c5b7df5d2f460b91acc7e52c9fdb19793bc0833751d09f3f664a4167095586a564420a7810125b832e38ae7bb3a0d14403ef6157c20d3d67e6e13a44115b19ff1fb8b64ffa018133b6d532d9da69b9bffbcd74189071a57101e7239401ea50ad1ea04aab961c\r\nMD = c46cb2dfeb8b961e6e84d72e05111e04d62e3f93a055164b135b9072\r\n\r\nLen = 960\r\nMsg = b88ff728c8f829841a14e56194bbf278d69f88317a81b4749aa5fdbc9383486e09bff96a2c5b5bdf392c4263438aef43334c33170ef4d89a76263cb9745f3fea74e35fbf91f722bb1351b56436cdd2992e61e6266753749611a9b449dce281c600e37251813446c1b16c", "858cf6ea6424cdc6e9860f07510f\r\nMD = 8891cdfe486a582e8340bd8b893996d7a4e547e3bf50551902e722f2\r\n\r\nLen = 968\r\nMsg = 520f27a4d096d4193d2bc0983cf83bbb5084845b41844800c1f5669b4f67f5785c9c886eac51b059005cc3caf2f7dcfc205c230a8c924f604386696f3d5dd2a68509879d991aa49314d7271a8a8ef711b42825d3cd0071ae3bf6109772bfac1b167fad995f99b7afc2c573f2ce6493e25411101dca79b6d2f1\r\nMD = 216ea50997596f71edc94ed96e2b686628640f94a3c64adef05c2b63\r\n\r\nLen = 976\r\nMsg = 75c23e556178f00440533bcd25257934d0c6f5e68a64f1aa511bee9435c5277b02145fae1fdedce3b6b7b47015c547be55d00dfa3999920d586dbecf7ff95a775160d057308b32c661c17e5d6a772166bf69b9919ee91fe93877a50711939c85a9cf1ab65c28fa94879623faece20e1458b8821383fda2253762\r\nMD = d1631028a8e0ec4adc689cabba8bf681d11e2e2a5059f293f7ef5be3\r\n\r\nLen = 984\r\nMsg = d23373b9405024d0c4b17aa503f7e2ff7d308083124ed2cbc4d990b9bee0d70b9635872fcfdaea58a2b696d1fd8c9492cd2ec11179ee755aae5663626219c0981348a8be50c9bdf77b061121cde246649af1f30bd7e84a93d952f8025f854d7bd3d59d0ecd07e6d4d909b23c7ae03fa06fe1de1c3424999fcc3618\r\nMD = 726f6584ff9ea998ff326c9f73291ace8726d8697e7aa94f1ed42f7e\r\n\r\nLen = 992\r\nMsg = 6f057f91480fecee8a7e3879dbf8c52040f96f5929c6b8b6aea223b91843ddeba387a2288264df3d241d14b5b6bc7defe9bcf174f5060a88de1f86fff59fed52a3e574f2620922dc0c12316e5869b779a18e8697ea0a50bf20a50f169ed8a308f785bd98efe6fdf4cac4574dcae9bbe5f3d7f56a11bad282fc9c84a7\r\nMD = 6b40e5c86db3d9c384c22a46cbef5f8e8c427bb6bf43268edd918aeb\r\n\r\nLen = 1000\r\nMsg = 6f77874dcad9479f5bcac3763662cc30cb99823c5ff469dcbd64c028286b0e579580fd3a17b56b099b97bf62d555798f7a250e08b0e4f238c3fcf684198bd48a68c208a6268be2bb416eda3011b523388bce8357b7f26122640420461abcabcb5004519adfa2d43db718bce7d0c8f1b4645c89315c65df1f0842e57412\r\nMD = 0228626c63c20465d5139d1af0b9ce17e334ebe10a5eee2cafe96cb1\r\n\r\nLen = 1008\r\nMsg = ea841bd41b22e4c98b223332918eb791f51d1978540785f9c617675dbd02721831f7e7fdfa7714af7d671b588a64f49d8556b5d1c448116839771faf51a85dbb1bbff59fad8e3fe3c4eb8631aa050f505df85757ed9e9d1a26a8a0e96feeaa7af204cd23fd0e6d4ca8d5ff25b91a0f94c42a887297b230f6d5d57271e07c\r\nMD = ff33c64231dedfc247e11e35aaf82d283a9ad62034102ee2bb5d4609\r\n\r\nLen = 1016\r\nMsg = 7216a825029da1c9a9328d499b3ff98f6e18b8af368e2b19efc1c0121b35b965ab282f55232356d7fad002fe3f0b6ab7833b2cb6f2e392b0c37414cbd3661e538c8613ae0c9291928303f775dd2a2445a27e825a1a3544a9b411eb3aa87d0fdcdcd85c170511db620e747296bdc3afa39489c181f5abc76a8a404e47e4a214\r\nMD = 9440d3710b43e79899e116987366b2dd36b44b2f39e377fa2d4fe143\r\n\r\nLen = 1024\r\nMsg = 44a8508a3c3976d563e933705be4dbeebc726304b511203df7c7d1efceb6e06e91f1e57f3d8e6c105dfdf8262d984816fe7ad8f8dc95ab596fff48301f8d03137ba37dabdc4a6e664583a26b8edc42d3c2405516c51386c33a7f2875a3087702ca6721f56195053fe5263a29c8d8538dce6ce146b8b43ae520ee79a5a450c6a2\r\nMD = a2743d341023ff5f775d90185d3139a7756b0a65c19ee876ebeb92ae\r\n\r\nLen = 1032\r\nMsg = a8ef4107f41ebbc5799a716b6b50e87c19e976042afca7702682e0a2398b42453430d15ed5c9d62448608212ed65d33a5ca2bcdca7728037df2e5f9fd9e974d0315dde8290241e3e2b2cc06f8c653ebc95bc2195c24d690caed42fe7d96589f3a85eae9bad995ab829e674abcfb8efaacb1eee5703f52b979d5d99a1c1694855a0\r\nMD = b411a28ff46513d0c3d63cf78a9b6353466cba3b926a8d895ee14fdd\r\n\r\nLen = 1040\r\nMsg = f649d801b4040b7b5152f58a01e7852f565efc77b5dafe4607eee953b0ba6774c5573f1c79767121d94381c3ba9013ebef2fb8b0bf9f081f96ecf13cfad04e44c11ebb358160a89049bfad5e8e241d71689ddeecff0278063fd86b0ad475c6a25265f556b30ddb50078e216267edcd4a2b7016345d4b76806d7b02c625f3f717e0f6\r\nMD = b94debadc833d5706cd4736bb1dc75039827832ae408859e2e6a6941\r\n\r\nLen = 1048\r\nMsg = eb71b45a494e76462edf41a9fdcbb3f46fb863b9e259d0c8f4a79898516eebe8c90c3ea5a675440f3c7b1a18c14dc20c5f3dd27788c66d448acd73226327f52cd65cecc8beaa2acfa34d90ef8bfe824e12ba9870bdc4965b8ced9ff9ce13a5bd39e824893af410d08ade0cf802e7dc02b0b71d6c2a5c3356229084e53b3ae4e51b384f\r\nMD = fbbec05ee1fb5f5cd1106ed7384850059cdcda474ba7cec0407a272b\r\n\r\nLen = 1056\r\nMsg = 4eca0c51d30829b9a1d2712da1fac31f52942d77c9f20c2bf6d3751028d7d4f0d336d3dc92b27ec368caa4444b3180c1e37e98b58f25e647a9a6361f0b04cf78d17955766168eebaa993a435a88e0b39307423d6ead87f639afea75ba44bbc6bd0fb5ac84a12c2c6ed9539a7c0f9abb0c1dc9483e2f321a85244926dfd95e2f05624aa7a\r\nMD = fe313eb74f955c0cbb1c446dd4ff853f32b3232d93faba7db6d1fab8\r\n\r\nLen = 1064\r\nMsg = 97784d14db62a7f98f5ac3df742e013489ec0b8777b05ef82bba06edc5c3a807b191c65513ca3fc7690615e56c2773c036edef29aac50c2211e20392018fc33d83c436f274f7c6062c3420025e7037993f1b8cddebf4aeb20421fc829c7fb23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a7fd06f1218e5d1\r\nMD = 5504f39131773550b6f459f33a5b57a2ce60ce8bb78c574fef83dcf7\r\n\r\nLen = 1072\r\nMsg = 1ee9047351e2a13e4a2d5a826e304fef82241fbab5100835e1f850a20e51e34938b93dc852e58aab8adb0c3ccf61be9c90b53713c77ed0a5370309e6f19b290f1d642550f738c36818ddff74f77cae04af55617403b08c7a9f17e8fba0c21523575384b44ac4949e7c9dfbd1ef6a684f666c67856f8f84dba19cb38a23b0efad6eed229c536f\r\nMD = b8f253512dabf9d89d2080830f23da5893b0f87edc0bd624ea767f14\r\n\r\nLen = 1080\r\nMsg = 1f363d2f7aa89e2b6c5e172f530d1a35531d0083a5acfcd232d64db06134b8232da2368f7a46ead9a9ce55cd6af8cdbdd1582b6bad56c52a15769c3f43dcd68da60f6e7232fd2aecfb3fcd00029f8e5c4ed7ca3b3f9cf68920dbd747fb43f532b1034d9f49d546aa893be68fc3084658f22343b9068877387b8f68903071fe5877083be068d626\r\nMD = e59a19686df36bf5fe798a9565722b8e0bdd9f8eedbbb4a34a9ca7ab\r\n\r\nLen = 1088\r\nMsg = ecf5d9e29c1c04c11a9503cc223d0cee4866fa26df2b4f7c1a017939718f545746c0f137c9169692194105b2acf001e2f0e70f2332517a20c05899644af454cb8e00e5363593dc83f78d66bd0670ce8faa7244ff28d0de59e964dc68d87a30ec0ce03e49a73ce07dfea2ad54fa667bdfbe2f2222894d830dde4dc9aee3caefa4088683d7e8b9a966\r\nMD = a886eb94f15df208be122912d4edf02561482278a9f847ddc91c9bd2\r\n\r\nLen = 1096\r\nMsg = 9f44357664b5e3a958780641cca52049f3b49f07484b5f762a5571f7c9541b4346f81fa416f04065a80003864754b3b54114a77a4938c8b21a9e4d3e5d59c9fccd4d68f699f975da099320ab655a7fb51328d2c6ff460b9b40858e99f88a35be7b6a97d6b4778af2c559e616ee608c32b018a753321e321be333bb6f618f666f9a7734ab3112859323\r\nMD = 8839f755eee84e15c586b52e29a41ddc640ac432cf31370680987a44\r\n\r\nLen = 1104\r\nMsg = c1aa1266f223c148bfa3d0ab29f278334d8fcbfbf0f4ebef5c1b7a766b415155e1ea75d0fe2546115411faced7a04a27339b6bcd62e740697d06ce3cd2e0f00238c44c1d9faa85efebbbb3880313108124c5f3277c1f03ddf430a4bb4d88b67b6e3f7f96fc39e5aa2ca7e11fd5d1300aca144c5166269a1168a2e53c01c00b872c63f6833e5ace09bedf\r\nMD = 439e3c7a0d655a30a9749afdefb7e048814335849df76d526c287727\r\n\r\nLen = 1112\r\nMsg = 0a367d3789827ccd4bef5fe8eb78c20503241f07fb8c41d81e97fb53f3891962ca3c976395ac11d1f9ba7b20a52912e8e3ed92466ca5aa808166ade737ba8a0213e8fee8d67608ee9aed9e821edc9e575f1f07c3686169656ae09a0a0f70abd10cc31a8ef6e7496d56102fd8ff984e9a9f44e54495c966cf028f2a8423b46419de54541d9a08bd9654ac98\r\nMD = 40318036a595630e4135f10703be1d759a6c7e5146e0fc82abeba184\r\n\r\nLen = 1120\r\nMsg = 8a05b00ae2d5f652f02f98a1b035003f8fa7ba1b17fc3778cdb1cae35ae1f768ea16ed05d25f515f75a23db468348911d4a749c51ce39615c07892318233a667c7f00e973fae98e7c8e9a8b7902480d87ac5bef8c4252661e6e8a2e4bd8a870fe83b1aa773ed5352b2abe193702c6dfb4aa8239e55ea6fc507a704e2540e23c917a01a1cb4420b07fb90ee2e\r\nMD = 9a26f054e57aea14242d7801f3d61ddca1523b738fc26fecfa5d9a6a\r\n\r\nLen = 1128\r\nMsg = ba6442c6d2139201dfef32c1ffb0ce92dd64091bd507c250595395e993d9a5124b5199640c2fe51482774b6a27d1a1751fe0d4fe5fd02dba152ed3c344fd9249af06da85f96f0bef0a8fefb1b501885b97f70dd842d12fa19befa03080c3d6b8ae2a0d13e2fc8bfc3fe1277ef0670cac0e52bb93c4344f6db13d05188d53fbc6106538f50ffdeda2e915fab921\r\nMD = 58470da58476bcb89450c521fc396c6dc51b9fb6465c979aba5f8eb4\r\n\r\nLen = 1136\r\nMsg = 96fdb76f83bf12b3f4f322bf613fc38b2c8e0678856230418b6b062fb358488d6eed7c5c0656ec48c9bbf2da6a1473eea43faa68204f27239928172a3e49c52b58e861282c4401702337e5ce280aff00528eb26ac368db0cd0ad0eb262af226a9b16ef3bbd325614488f820363ca6ea77da4a7e8345554e57623732ee6326534819eadfe81c7f51d81ec51e1e3fc\r\nMD = be92d4a6946de0e93d5bbe420651a8befb97cbdb5d63b22aaecf453d\r\n\r\nLen = 1144\r\nMsg = 0eef947f1e4f01cdb5481ca6eaa25f2caca4c401612888fecef52e283748c8dfc7b47259322c1f4f985f98f6ad44c13117f51e0517c0974d6c7b78af7419bcce957b8bc1db8801c5e280312ef78d6aa47a9cb98b866aaec3d5e26392dda6bbde3fece8a0628b30955b55f03711a8e1eb9e409a7cf84f56c8d0d0f8b9ba184c778fae90dc0f5c3329cb86dcf743bbae\r\nMD = 98ec52c21cb988b1434b1653dd4ac806d118de6af1bb471c16577c34\r\n\r\nLen = 1152\r\nMsg = e65de91fdcb7606f14dbcfc94c9c94a57240a6b2c31ed410346c4dc0", "11526559e44296fc988cc589de2dc713d0e82492d4991bd8c4c5e6c74c753fc09345225e1db8d565f0ce26f5f5d9f404a28cf00bd655a5fe04edb682942d675b86235f235965ad422ba5081a21865b8209ae81763e1c4c0cccbccdaad539cf773413a50f5ff1267b9238f5602adc06764f775d3c\r\nMD = 26ec9df54d9afe11710772bfbeccc83d9d0439d3530777c81b8ae6a3\r\n\r\n", }; -static const size_t kLen78 = 31235; +static const size_t kLen79 = 31235; -static const char *kData78[] = { +static const char *kData79[] = { "Len = 0\r\nMsg = 00\r\nMD = a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a\r\n\r\nLen = 8\r\nMsg = e9\r\nMD = f0d04dd1e6cfc29a4460d521796852f25d9ef8d28b44ee91ff5b759d72c1e6d6\r\n\r\nLen = 16\r\nMsg = d477\r\nMD = 94279e8f5ccdf6e17f292b59698ab4e614dfe696a46c46da78305fc6a3146ab7\r\n\r\nLen = 24\r\nMsg = b053fa\r\nMD = 9d0ff086cd0ec06a682c51c094dc73abdc492004292344bd41b82a60498ccfdb\r\n\r\nLen = 32\r\nMsg = e7372105\r\nMD = 3a42b68ab079f28c4ca3c752296f279006c4fe78b1eb79d989777f051e4046ae\r\n\r\nLen = 40\r\nMsg = 0296f2c40a\r\nMD = 53a018937221081d09ed0497377e32a1fa724025dfdc1871fa503d545df4b40d\r\n\r\nLen = 48\r\nMsg = e6fd42037f80\r\nMD = 2294f8d3834f24aa9037c431f8c233a66a57b23fa3de10530bbb6911f6e1850f\r\n\r\nLen = 56\r\nMsg = 37b442385e0538\r\nMD = cfa55031e716bbd7a83f2157513099e229a88891bb899d9ccd317191819998f8\r\n\r\nLen = 64\r\nMsg = 8bca931c8a132d2f\r\nMD = dbb8be5dec1d715bd117b24566dc3f24f2cc0c799795d0638d9537481ef1e03e\r\n\r\nLen = 72\r\nMsg = fb8dfa3a132f9813ac\r\nMD = fd09b3501888445ffc8c3bb95d106440ceee469415fce1474743273094306e2e\r\n\r\nLen = 80\r\nMsg = 71fbacdbf8541779c24a\r\nMD = cc4e5a216b01f987f24ab9cad5eb196e89d32ed4aac85acb727e18e40ceef00e\r\n\r\nLen = 88\r\nMsg = 7e8f1fd1882e4a7c49e674\r\nMD = 79bef78c78aa71e11a3375394c2562037cd0f82a033b48a6cc932cc43358fd9e\r\n\r\nLen = 96\r\nMsg = 5c56a6b18c39e66e1b7a993a\r\nMD = b697556cb30d6df448ee38b973cb6942559de4c2567b1556240188c55ec0841c\r\n\r\nLen = 104\r\nMsg = 9c76ca5b6f8d1212d8e6896ad8\r\nMD = 69dfc3a25865f3535f18b4a7bd9c0c69d78455f1fc1f4bf4e29fc82bf32818ec\r\n\r\nLen = 112\r\nMsg = 687ff7485b7eb51fe208f6ff9a1b\r\nMD = fe7e68ae3e1a91944e4d1d2146d9360e5333c099a256f3711edc372bc6eeb226\r\n\r\nLen = 120\r\nMsg = 4149f41be1d265e668c536b85dde41\r\nMD = 229a7702448c640f55dafed08a52aa0b1139657ba9fc4c5eb8587e174ecd9b92\r\n\r\nLen = 128\r\nMsg = d83c721ee51b060c5a41438a8221e040\r\nMD = b87d9e4722edd3918729ded9a6d03af8256998ee088a1ae662ef4bcaff142a96\r\n\r\nLen = 136\r\nMsg = 266e8cbd3e73d80df2a49cfdaf0dc39cd1\r\nMD = 6c2de3c95900a1bcec6bd4ca780056af4acf3aa36ee640474b6e870187f59361\r\n\r\nLen = 144\r\nMsg = a1d7ce5104eb25d6131bb8f66e1fb13f3523\r\nMD = ee9062f39720b821b88be5e64621d7e0ca026a9fe7248d78150b14bdbaa40bed\r\n\r\nLen = 152\r\nMsg = d751ccd2cd65f27db539176920a70057a08a6b\r\nMD = 7aaca80dbeb8dc3677d18b84795985463650d72f2543e0ec709c9e70b8cd7b79\r\n\r\nLen = 160\r\nMsg = b32dec58865ab74614ea982efb93c08d9acb1bb0\r\nMD = 6a12e535dbfddab6d374058d92338e760b1a211451a6c09be9b61ee22f3bb467\r\n\r\nLen = 168\r\nMsg = 4e0cc4f5c6dcf0e2efca1f9f129372e2dcbca57ea6\r\nMD = d2b7717864e9438dd02a4f8bb0203b77e2d3cd8f8ffcf9dc684e63de5ef39f0d\r\n\r\nLen = 176\r\nMsg = d16d978dfbaecf2c8a04090f6eebdb421a5a711137a6\r\nMD = 7f497913318defdc60c924b3704b65ada7ca3ba203f23fb918c6fb03d4b0c0da\r\n\r\nLen = 184\r\nMsg = 47249c7cb85d8f0242ab240efd164b9c8b0bd3104bba3b\r\nMD = 435e276f06ae73aa5d5d6018f58e0f009be351eada47b677c2f7c06455f384e7\r\n\r\nLen = 192\r\nMsg = cf549a383c0ac31eae870c40867eeb94fa1b6f3cac4473f2\r\nMD = cdfd1afa793e48fd0ee5b34dfc53fbcee43e9d2ac21515e4746475453ab3831f\r\n\r\nLen = 200\r\nMsg = 9b3fdf8d448680840d6284f2997d3af55ffd85f6f4b33d7f8d\r\nMD = 25005d10e84ff97c74a589013be42fb37f68db64bdfc7626efc0dd628077493a\r\n\r\nLen = 208\r\nMsg = 6b22fe94be2d0b2528d9847e127eb6c7d6967e7ec8b9660e77cc\r\nMD = 157a52b0477639b3bc179667b35c1cdfbb3eef845e4486f0f84a526e940b518c\r\n\r\nLen = 216\r\nMsg = d8decafdad377904a2789551135e782e302aed8450a42cfb89600c\r\nMD = 3ddecf5bba51643cd77ebde2141c8545f862067b209990d4cb65bfa65f4fa0c0\r\n\r\nLen = 224\r\nMsg = 938fe6afdbf14d1229e03576e532f078898769e20620ae2164f5abfa\r\nMD = 9511abd13c756772b852114578ef9b96f9dc7d0f2b8dcde6ea7d1bd14c518890\r\n\r\nLen = 232\r\nMsg = 66eb5e7396f5b451a02f39699da4dbc50538fb10678ec39a5e28baa3c0\r\nMD = 540acf81810a199996a612e885781308802fe460e9c638cc022e17076be8597a\r\n\r\nLen = 240\r\nMsg = de98968c8bd9408bd562ac6efbca2b10f5769aacaa01365763e1b2ce8048\r\nMD = 6b2f2547781449d4fa158180a178ef68d7056121bf8a2f2f49891afc24978521\r\n\r\nLen = 248\r\nMsg = 94464e8fafd82f630e6aab9aa339d981db0a372dc5c1efb177305995ae2dc0\r\nMD = ea7952ad759653cd47a18004ac2dbb9cf4a1e7bba8a530cf070570c711a634ea\r\n\r\nLen = 256\r\nMsg = c178ce0f720a6d73c6cf1caa905ee724d5ba941c2e2628136e3aad7d853733ba\r\nMD = 64537b87892835ff0963ef9ad5145ab4cfce5d303a0cb0415b3b03f9d16e7d6b\r\n\r\nLen = 264\r\nMsg = 6ef70a3a21f9f7dc41c553c9b7ef70db82ca6994ac89b3627da4f521f07e1ae263\r\nMD = 0afe03b175a1c9489663d8a6f66d1b24aba5139b996400b8bd3d0e1a79580e4d\r\n\r\nLen = 272\r\nMsg = 0c4a931ff7eace5ea7cd8d2a6761940838f30e43c5d1253299abd1bd903fed1e8b36\r\nMD = dc5bebe05c499496a7ebfe04309cae515e3ea57c5d2a5fe2e6801243dd52c93b\r\n\r\nLen = 280\r\nMsg = 210f7b00bf8b4337b42450c721c3f781256359d208733846b97c0a4b7b044c38dbb219\r\nMD = 3305c9d28e05288a2d13994d64c88d3506399cd62b2b544213cf3539a8e92e2e\r\n\r\nLen = 288\r\nMsg = 3cb8992759e2dc60ebb022bd8ee27f0f98039e6a9fe360373b48c7850ce113a0ff7b2ae5\r\nMD = 3c00bf3e12ade9d2de2756506f809f147c8d6adc22e7bb666e0b1d26469e65a5\r\n\r\nLen = 296\r\nMsg = 22634f6ba7b4fccaa3ba4040b664dbe5a72bf394fb534e49c76ec4cdc223f4969e2d37e899\r\nMD = a87e5c78837d7be0060d8f5eda975489ec961b28d7088f42a70f92414ae17793\r\n\r\nLen = 304\r\nMsg = 6e1dcd796b2015ee6760f98fdb40e668b2cf38b05c91f6a91e83bcc8ac59f816f90a59d64e8e\r\nMD = 746bf845c08aa186b5fe1ca35528232c4a491a3a2a32cd23e990bc603f3268ae\r\n\r\nLen = 312\r\nMsg = ee0be20320f9d44073281265a6e9fa6b9d252495624b8d016b8ef57e1b4e859d8ad3b50b89416d\r\nMD = a3257baf14ca16e1137dc5158703f3b02ebc74fc7677165fe86d4be1f38e2f7c\r\n\r\nLen = 320\r\nMsg = 8ae2da242635b6568289bf6bec8a438dbac1f5b4d50a90bb7449bdb92a59378e23452dbcabbbe879\r\nMD = e25c44802c5cf2e9f633e683d37aa8c8db8a0e21c367808121d14d96c8a400b5\r\n\r\nLen = 328\r\nMsg = bdd0252dec5b798ef20e51791a18e8ca234d9bfde632a9e5395337a112dd97cdf068c9f57615424f59\r\nMD = e02c1b197979c44a5a50d05ea4882c16d8205c2e3344265f8fe0e80aed06c065\r\n\r\nLen = 336\r\nMsg = c4c7b6315cb60b0e6cd01ef0b65f6486fdae4b94c6be21465c3a31c416ad2f06dcf3d6eae8eecf84ca7a\r\nMD = 2da21867cd6b5402d3caff92a05fddfca90199fd51a94a066af164ce3d36c949\r\n\r\nLen = 344\r\nMsg = b17977aced3a1184b14b0e41a04dd8b513c925ca19211e1abdc6c1b987ac845545fb3b820a083b4f7883c0\r\nMD = f91b016d013ede8d6a2e1efd4c0dd99417da8b0222d787867ca02b0ea2e80e45\r\n\r\nLen = 352\r\nMsg = f65c3aa1d9981a84e49fc86d938f3f756f60e3858d5e1f6957dd4d268e28d68e90ba9a11d7b192d6c37fb30b\r\nMD = 3acbebf8eda9d3c99a6b6b666366c391e8200d55fd33ad8680734def1dc7ae85\r\n\r\nLen = 360\r\nMsg = 49abba1fa98f3c4470d5dd4ed36924af4a7ad62f4c2dd13e599238883ed7d0cb95bbaae58b460332e6b7681446\r\nMD = 02bcd9ea4f1aa5276f38e30351a14a072bc5d53a52d04d559a65ca46f1bcb56e\r\n\r\nLen = 368\r\nMsg = 275645b5a2514fe65a82efac57e406f224e0259677674f1d133f00a5ee9a6d1a8fed0eadbbff5a825041d2a9715d\r\nMD = c70a874d786cd0f3f09fa4dc1bb8f551d45f26d77ad63de1a9fdfb3b7c09c041\r\n\r\nLen = 376\r\nMsg = cd02b32107b9a640fc1bf439ac81a5c27d037c6076e1cfe6ad229638037ac1550e71cf9557c29c2fc6017afd5a8184\r\nMD = 36c73d11d450784eb99af068cd4e1cbc5768c8a2118010aceec6d852dda80d95\r\n\r\nLen = 384\r\nMsg = 5a72e0e1aec82a6541f04883bb463b0c39c22b59431cfb8bfd332117a1afb5832ce5c76a58fcf6c6cb4e3e6f8e1112de\r\nMD = 90fc3193552ec71d3315ebbb807913afd4cd2f0833a65e40d011d64de5e66513\r\n\r\nLen = 392\r\nMsg = 43402165911890719f9179f883bbbc2a3be77682e60dd24b356a22621c6d2e3dcdd4cb2ce613b0dfe9f58629ee853e0394\r\nMD = 5c4b6ceac9441defa99b10b805a725d4018b74b3e1f24ad8934fc89b41b8fd9e\r\n\r\nLen = 400\r\nMsg = fc56ca9a93982a4669ccaba6e3d184a19de4ce800bb643a360c14572aedb22974f0c966b859d91ad5d713b7ad99935794d22\r\nMD = e21806ce766bbce8b8d1b99bcf162fd154f54692351aec8e6914e1a694bda9ee\r\n\r\nLen = 408\r\nMsg = ace6297e50d50a11388118efc88ef97209b11e9dfcb7ad482fc9bf7d8deecc237ad163d920c51f250306d6cedc411386a457c7\r\nMD = f5581403a082bbf5ad7e09bdfccc43bf9683ebc88291d71d9ce885a37e952bd6\r\n\r\nLen = 416\r\nMsg = 3bad18046e9424de24e12944cd992cfba4556f0b2ae88b7bd342be5cff9586092bb66fac69c529040d10dd66aa35c1023d87eb68\r\nMD = faed76ff5a1cd99183b311e502c54e516d70a87050cf8961c8cd46f65c1358cd\r\n\r\nLen = 424\r\nMsg = e564c9a1f1aaf8545a259f52c3fd1821ed03c22fd7424a0b2ad629d5d3026ef4f27cbe06f30b991dfa54de2885f192af4dc4ddc46d\r\nMD = 811529c600c9d780f796a29a6b3e89f8a12b3f29c36f72b06cca7edc36f48dc0\r\n\r\nLen = 432\r\nMsg = 6043fa6465d69cab45520af5f0fd46c81dbf677531799802629863681cea30ffa3b00836fbf49f87051d92aaeac0ed09bcb9f0755b7b\r\nMD = b0fceecdaef6c76d5fc3835b523ce2416f4a9b9bd1f90234445df0f2b689f2f5\r\n\r\nLen = 440\r\nMsg = 2040c538c79237e6f2b8188c6375ec2f610ac2301607b9c23660c3a1e1c3a902cb2950c59aac3af28f984f6369c4debe8623dfa74c967b\r\nMD = e33dbdc0acc23fcfad3c759c4333410bd3a40efb1", "366ade157d2c81d65a0a6c7\r\n\r\nLen = 448\r\nMsg = 00ff6c96b7aa3cf27d036cf20af7031434113252574bda9cf9244d85aef2593d3a7a83bff6be904b75164a1766828042bc3f4f090d98a03d\r\nMD = d000eafca34815783bed9b050c6901c97f2e77d4771a0ed724dd8f6ff1448791\r\n\r\nLen = 456\r\nMsg = e8df14936cce118139e690f1662f88cfbc9c333b6dea658c02cb1d959644592842542fd9d8d61a04d4a892128f0ddff7b6502efffbabe5cb0a\r\nMD = 3479a9617a3adca35854c08fe987c2fe7ff2b01b04f2d952c107b3f066420551\r\n\r\nLen = 464\r\nMsg = 4ed981a31f70dd6b70c161be1f01fc1bba54d06d9494e7eb194e213d5e0e71e0fddd49cb1f075353da22624cbe4ba871aab32906e45b6fbb691b\r\nMD = 9c824a00e068d2fda73f9c2e7798e8d9394f57f94df0edeb132e78e8a379a0cf\r\n\r\nLen = 472\r\nMsg = 7802b70c6158bc26d5f157671c3f3d81ab399db552b9f851b72333770348eb1fdb8a085f924095eb9d5ccfd8474b7ba5a61c7d7bcde5a7b44362cf\r\nMD = fa9726ccb068c0adb5d20079c35a318b3d951eb43b196c509ab790b7e9202207\r\n\r\nLen = 480\r\nMsg = ff83dcd7c1a488e5a128d5b746284552f1f2c091615d9519f459bc9010ca5e0ac19796c4a3fd7a15032a55a1410737d07855b07f61fbd8f5759e9218\r\nMD = 8bd8d494a41acda4b7cd2994badaecff0f46ba2743458f6c3fdc0226f9492ede\r\n\r\nLen = 488\r\nMsg = afd4764cc7d5de16a3cf80c51d0c0d919f18700c7dc9bc4e887d634fe0a3aa94097d590e4123b73f11ccb59e23496a3d53d2bfa908056c11c52c23abfb\r\nMD = e9e3b3da648cf230f1973f3814eb81316d2a496826ea39adf4674576f97e1167\r\n\r\nLen = 496\r\nMsg = 6fa6de509719ffbf17759f051453c0ac3cbe13346546bbc17050541074b034af197af06e41142211ee906a476039b3e07d6cb83a76aac6fca8eac307c034\r\nMD = 766630993fbb651fd8d3603e3eebc81931fb1302a46791df259a6e13ca2cba9f\r\n\r\nLen = 504\r\nMsg = 93cbb7e47c8859bef939155bea488090283ecf5023d99767c960d86baa333af05aa696fc170fb8bbac1e6473956d96b964580ee6640f0cc57be9598e55fc86\r\nMD = d3212abca1100eb7658c0f916daf2692c57a47b772ee031c4ec6ad28a4a46de9\r\n\r\nLen = 512\r\nMsg = 67e384d209f1bc449fa67da6ce5fbbe84f4610129f2f0b40f7c0caea7ed5cb69be22ffb7541b2077ec1045356d9db4ee7141f7d3f84d324a5d00b33689f0cb78\r\nMD = 9c9160268608ef09fe0bd3927d3dffa0c73499c528943e837be467b50e5c1f1e\r\n\r\nLen = 520\r\nMsg = 4bef1a43faacc3e38412c875360606a8115d9197d59f61a85e0b48b433db27695dc962ed75d191c4013979f401cf3a67c472c99000d3a152227db61de313ab5a1c\r\nMD = 8703a1f7424c3535f1d4f88c9b03d194893499478969fbb0a5dc2808a069ab8f\r\n\r\nLen = 528\r\nMsg = f0be5e961bb55b3a9452a536504f612a3e66aec8160a882e5156eb7278433b7ea21de31e39383d57fcdfb2fb4a8d227a9d6085fb55cad3abb78a225535da0e34efea\r\nMD = 2fa180209bf6b4ad13c357d917fabb3e52c101a0cdb3f2299fa0f7f81dfb848e\r\n\r\nLen = 536\r\nMsg = 206f1c36ba25aea73398fffc9b65c4637cc1f05a6bbee014dccbd61e3b7aa9423887bbac62152a4bf73a4b7afabe54e08720589464da7985d8e6591ac081d115df2fe6\r\nMD = 558ea7c800b687380cce7e06006e1ebe0b89973f788c4caac5780f22dbf382e8\r\n\r\nLen = 544\r\nMsg = 8cd71434c00663f3bda0205508a4a266548dc69e00ca91fde06d165b40279af92674f75bd8133e5a9eb9a075c9068f68f4b820008a1fb42d89d1d759859e68f8efc6fb60\r\nMD = 085b343b08516f320a9b90fe50440a8bc51ae0850fa38d88724a4d6bd3df1ad4\r\n\r\nLen = 552\r\nMsg = 4cf5bbd91cac61c21102052634e99faedd6cdddcd4426b42b6a372f29a5a5f35f51ce580bb1845a3c7cfcd447d269e8caeb9b320bb731f53fe5c969a65b12f40603a685afe\r\nMD = f9dbb88c5bb4415e17dee9222174538eeab371b12d8d572cfdf55b806e3158e4\r\n\r\nLen = 560\r\nMsg = e00e46c96dec5cb36cf4732048376657bcd1eff08ccc05df734168ae5cc07a0ad5f25081c07d098a4b285ec623407b85e53a0d8cd6999d16d3131c188befbfc9ebb10d62daf9\r\nMD = 3571326a1577c400b967ac1c26df2a0dcf5db7070eac262a8071da16afa7c419\r\n\r\nLen = 568\r\nMsg = 981f41a83d8f17f71fc03f915a30cd8ac91d99aa1b49ef5c29fb88c68646b93a588debcd67474b457400c339cca028731df0b599875ab80df6f18b11b0b1c62f2a07b3d8209402\r\nMD = 62aea8760759a996f4d855e99bcd79e9a57ea362522d9b42fd82c12c9294a217\r\n\r\nLen = 576\r\nMsg = 5c589fc54fefc4d6e2249a36583e1992fc6b8a9c070e8e00c45a639af22063e66ae5cdb80238c82db043a5e1f39f65626e6d7be5d6a2d3380fa212f89211200412e5e4315fc04e40\r\nMD = 18deba74e9d93ae7df93c6c316ef201bf5e3a661e68868e14d4f56264f5d858c\r\n\r\nLen = 584\r\nMsg = 7c8691e7b2560fe87fcc5e2877f7e3c84d9101eca4818f6322a58986c6cf05627c0d6919ef2edc859f81fa1f33e0cc1f10edf7e52a9c33981af2ff0d720c94ea4d62170b2a4d1224fa\r\nMD = 5a5a438b57c1b3ce8756094252362afeaa9fc91cd45b385d16994ec8af49aa6b\r\n\r\nLen = 592\r\nMsg = 97359b564b2bc20800ed1e5151b4d2581a0427ce9539d324c3637cfb0e5378dc2cf6d72946e2a3535a2f664ede88ed42a6814c84072b22c43de71e880a77c2d9a05b673bc15a82e3255f\r\nMD = be54f2e435f760d5b77c0ae61ef0aa7f5f3366f47819f350dc8a39aff8c73a8f\r\n\r\nLen = 600\r\nMsg = a0dfaecd3e307c5ddf9a93603f7e19725a779218734904525b14586ff0ce0425e4efe7e1c06e745c28ed136f6031c4280fd4061d433ef700b6d1bc745064231fecf387015f94f504b6ad8c\r\nMD = 60d80f1c703dad5da93db222fb45fb7fa768c8aa2787f4b81f1e00365b8f49e2\r\n\r\nLen = 608\r\nMsg = 568d66d061306c3419a1928ce7edc8e3400c30998f09bdac6f63ff351eb23d362e8dc5927eac805d694ac9563dcd7fb2efa9591c0d827af9f39146f0424873aa8e3963d65734b1713baf0a44\r\nMD = 7a4fe37f296991121792dd7c2c30390725a1eebbf20b766a5a1c3c6c3646d996\r\n\r\nLen = 616\r\nMsg = d65b9f881d1fc7f17d6dd429faca8404e6ce60fba7d89b7fba003c8ef84d8083182979327611fc341291ba80dc70ad3b2f28b6d29b988445e7fdb7c6561f45822ac81dbf677a0b27d961dc6358\r\nMD = 51cc71b6934afcf28fa49942b76323f36cd6a0aecc5a0e49c10994ddcabdbb80\r\n\r\nLen = 624\r\nMsg = 711c88adf13e7a0e694652f2b9a397543f4937fafb4ccca7f1ad1d93cf74e818d0fedfaee099f019014ec9e1edfe9c03fdb11fe6492ad89011bf971a5c674461de15daff1f44b47adad308baa314\r\nMD = 1780e52e306858478290c46b04d8068f078a7f6ad8e3790a68fc40dccfbdadc9\r\n\r\nLen = 632\r\nMsg = f714a27cd2d1bc754f5e4972ab940d366a754e029b6536655d977956a2c53880332424ddf597e6866a22bfca7aa26b7d74bc4c925014c4ed37bfe37245fa42628d1c2ee75dc909edc469ee3452d894\r\nMD = f4afa72f3e489ad473dc247aae353da99fb005b490e2c4e1f5bd16a99732b100\r\n\r\nLen = 640\r\nMsg = fe0c3280422c4ef6c82116e947da89f344d6ff997bf1aec6807e7379a695d0ba20ae31d2666f73bbdbc3a6d6ac2c12dcfb5a79173dfc9cd2e0d6000e3114f2767edec995772c6b47dadc136d500251e5\r\nMD = 89198e2363efd4e0ba7a8a45f690f02712e6f856668517bae118d11e9a9dc7cc\r\n\r\nLen = 648\r\nMsg = 02e238461d0a99d49c4cd16f442edf682c39b93114fc3d79f8546a99e5ead02f0cfc45081561da44b5c70eb48340418707fd6b2614580d5c581868ba32f1ee3ac34bf6224845b32ba7f867e34700d45025\r\nMD = abef81b33591eedcac0cf32fb5a91c931f2d719c37801409133552170ce50dbf\r\n\r\nLen = 656\r\nMsg = fb7c8cd4031007f8159d5c4c6120dee6777a3ace0a245b56f31e8aae7828dab3cf35c308de1d0d684592ef3a9e55796603a92f68d109f7a3ac1635f7c4d334955614c812753431bb0a0743291a0fc41547f3\r\nMD = 5a67284d39e4f37caa64ca1a54593c35f6d8f3a3ec20d460393a39f6f57c4486\r\n\r\nLen = 664\r\nMsg = 6b2e868c7d0ee1c240d3a67e2fdf36e8e23817c02644a54453d10454da5859d41e833a5285ec63e8ce28aa64a50435a7740eea4b7d5827892678b35993d3f5da7a1c64f533173f3d0fa37e1aebf70827052c26\r\nMD = aecf5dab6fea9ffd1bce2cdfeec0bee9d214a669e8306d5b6688afa8957fc91f\r\n\r\nLen = 672\r\nMsg = e5f3ba000c43bb6aca4e0a711a75912a48241cffa5b4b0b17f901f9e5097d94036c205f7a307d008567d05e58ac0dfaf6d971bf9d3d450cf2c7c83f6b328f676e9ab425642f5a5a71e389dc4fa49b6d7e848a09f\r\nMD = 182d6e4316f4bc18d7163b1b21462d99f99c6f34d2c00ee771ce54fd6c5018b9\r\n\r\nLen = 680\r\nMsg = 939c61e68af5e2fdb75a2eebb159a85b0c87a126ce22701622f5c5ef517c3ab0ed492b1650a6c862457c685c04732198645b95f84ccb0e726a07ce132827a044dc76b34d3f19a81721f1ea365bc23e2604949bd5e8\r\nMD = 121057b0b9a627be07dc54e7d1b719f0a3df9d20d29a03a38b5df0a51503df93\r\n\r\nLen = 688\r\nMsg = 9eadaf4811a604c65eaa7b1c6e89f2c0ab96bebec25a950ba78aac16d9371ca1e7458acf331e077ef6a735d68474ab22d2389bdf357fb2136c9f40e1e1eb99592c2bbb95d94931016b4d37faa08b1e9bf71bf2d3708a\r\nMD = c237194b902e48dca5bd096cb51562079d0cdccb2af8088197676c17b0896be2\r\n\r\nLen = 696\r\nMsg = 71dcca239dced2ac5cc49a9bf9ea69a99be22ba62216716b524db80f337dee5eb7e032869e4adc1497babd1fa82fa8c3cfbd30d2eadfb4c5d40f99f9d194d7182c9cb7d41e8adbdcf2917e086782fdd756e2961c944070\r\nMD = 377d1cffb626735810b613fd31ef9bbb4577cd752521abe3a41afa921e623da0\r\n\r\nLen = 704\r\nMsg = ea130d3236bca7dffb4b9e50e805309a503e7347227aeb9f1bd15c263a98dd65753d2eedaa734b9ad88f41158f32419ca529f3062b910c019f3f239f635fc1116e5ab7b242feb4471ed9168474e501d39d6bae52cc21061a\r\nMD = 85c7a52d53f7b41162ea9f1ef0d07c3fb8f0ec621617f88cb3828ebe5388ab3d\r\n\r\nLen = 712\r\nMsg = 28f1be1156792af95c6f72e971bf1b64e0127b7653ff1e8c527f698907a27d1544815e38c7745529bc859260832416f2b41cd01e60c506239a7bf7553650bf70d1fe7a2c1220ac122ea1e18db27490447d8545a70bf0ffc8fa\r\nMD = b2eb3762a743d252567796692863b55636cb088e75527efd7306a2f6e3a48a85\r\n\r\nLen = 720\r\nMsg = c8400ef09c13e8acc8a72258f5d1d20302c6e43b53250c2f6c38ff15be77e3cac04d04b8421fc8fdff8be5ca71", "edd108e9287b42dea338bf859100eea376da08a0e695f0dc90b95e467cbd3c2a917a504a5ae01c310ae802c4bd\r\nMD = 69966e89b7bc7f39cd85791b92180ff3fed658d8240e393e1e6d7c24b8d0ac95\r\n\r\nLen = 728\r\nMsg = a48950c961438e09f4d054ac66a498e5f1a4f6eabfde9b4bf5776182f0e43bcbce5dd436318f73fa3f92220cee1a0ff07ef132d047a530cbb47e808f90b2cc2a80dc9a1dd1ab2bb274d7a390475a6b8d97dcd4c3e26ffde6e17cf6\r\nMD = 44c00cf622beca0fad08539ea466dcbe4476aef6b277c450ce8282fbc9a49111\r\n\r\nLen = 736\r\nMsg = e543edcff8c094c0b329c8190b31c03fa86f06ace957918728692d783fa824ba4a4e1772afbe2d3f5cba701250d673405d2c38d52c52522c818947bcc0373835b198c4cc80b029d20884ac8c50893c3f565d528a0cb51bf8a197d9d6\r\nMD = 6d5260384f3cefd3758fb900dcba3730d2b23cee03d197abeff01369dc73c180\r\n\r\nLen = 744\r\nMsg = 4e10ab631718aa5f6e69ee2c7e17908ec82cb81667e508f6981f3814790cfd5d112a305c91762c0bd9dd78e93ef3a64c8be77af945b74ff234a0b78f1ed962d0d68041f276d5ea40e8a63f2cab0a4a9ed3526c8c523db7cb776b9825b4\r\nMD = d88e5f3b2d0a698fd943233760a3000a3360d9040e7374b22e39ea58d868102d\r\n\r\nLen = 752\r\nMsg = 604d8842855354811cd736d95c7f46d043a194048b64bf6cda22c3e0391113dcc723e881ae2ad8dc5740aa6bda6669ddb96bb71acd10648380693f7b3d862c262553777004bd6852831618519fbb824759f4dd65af1b2a79cc01096d7c8d\r\nMD = 8a8ab6cf5c02b9ae8f4c170740eff1592f3eda11d3420ac8b421d93cfbb35db8\r\n\r\nLen = 760\r\nMsg = 628180e14f41ebdfde3b4439de55ee9cd743d41040f3457ef2280370dd659619fa0ce69580c709725b275a6eda8bcb82a8447c20fdf68cba15412f83e2a10079fe9399a3e3fa61975ec0a64041c0ecde59e4844e9f8a608cb22d2576854182\r\nMD = 8d154bf6f9cb72efc0d8b3927a8f690060d1d48bbe5cc72094d2c8b149a75132\r\n\r\nLen = 768\r\nMsg = fc150b1619d5c344d615e86fca1a723f4eeb24fbe21b12facde3615a04744ef54d8a7191a4454357de35df878cb305692278648759681919d1af73c1fb0ff9783678aec838da933db0376e1629fcca3f32913f84bc2ff3ffc3f261d2312f591c\r\nMD = 3f626c8bb20a132495bd3022b3fcd0ce0604b91a9d70132dab4099f73dde23d5\r\n\r\nLen = 776\r\nMsg = 6dadbecdd15e5646e3f37a6fe5b328e06113cce3c8cf07285939afba44d117321017902b3a9d2ff51f60d18e1b585dcdf34e49e170ee60fa4d1dc246548d2c1fc38e7983f42769c43d65a28016f3f4d479ebe1cd8fec5d1f886dd21aca5067d94f\r\nMD = 9098ea34c40b541b153e80a8bd92da19432b18b7d329760b302f8a54c395dd06\r\n\r\nLen = 784\r\nMsg = 9cc5fd3035b72dc63b8c3c326fd013081e6b8716f526d3fe176b45256d4c37cc3dc8417dff49ada96c702b8fd715c65fc08a17a0a720b9cf1eedfd4922ccde6baba437f782ee33b95371056b0350dad743470c3b663299f16fcfd34f6fc459cd0ee4\r\nMD = b0c04f24bb6d3d4fcbfdf9222d0e886f1eb60a0566a478085f7623a025a5b981\r\n\r\nLen = 792\r\nMsg = f3f063fbcf2d74aa5a02d240c962ed7bb119b3a212bdb41594e28428108e613152ed16e01e451fcf702b0e5a08f82eb12677652b93e05fdee00ae86cf2dc9a1fbf05b93952ec5b8515eacc324fb830e1ec236afd7d073d4b7f7ab1c2e048b99cbfa012\r\nMD = f930d79360b581b1bbfdeac57133a339444f5c44538c921631eabaf058277d32\r\n\r\nLen = 800\r\nMsg = 840739a3d6992c13ec63e6dbf46f9d6875b2bd87d8878a7b265c074e13ab17643c2de356ad4a7bfda6d3c0cc9ff381638963e46257de087bbdd5e8cc3763836b4e833a421781791dfcae9901be5805c0bbf99cca6daf574634ec2c61556f32e642730510\r\nMD = 19795657e08cfbb247a17cf209a4905f46e4ddf58eea47feee0be9bb9f5c460f\r\n\r\nLen = 808\r\nMsg = 4a51b49393ab4d1b44fb6dc6628855a34e7c94d13b8b2142e5d5a7bf810e202cefdca50e3780844a33b9942f89e5c5b7dd6afb0a44541d44fb40687859780af5025fecc85e10cf8249429a3b0c6ff2d68c350c87c2fcbf936bd9de5701b2c48ce9a330c9ee\r\nMD = 128fb4114e43eefd19277c708be9e6873e66d7fd59c58a1485b7b015facfa795\r\n\r\nLen = 816\r\nMsg = afc309e6b7b74dfb0d368e3894266fc4a706c3325e21f5550d07a6560e3d9703c134ca6ad078e4a7b82ad6fa85b0bc1ddcab05d43f29d5c58d1da78ac80c37051b089ff31ce2c0c44e9ce3abea1da0f1df28008e178fdefafca493413bf1d256c729d0a9225e\r\nMD = 03e782b01a4ba10f640470bb3cae487eb9cbbaab8c9941978b194f6a312cf79e\r\n\r\nLen = 824\r\nMsg = c5ae750f2230642092397b84ad5526c46ae9480ada16892816e0f2db7690b751035653ea2f33da3cc4168b591b46a5548eff7d012f60ccfdbb854deec9f0880c472de8e127b5144c56147cccee4732fbac68fc59a48da74b33ed9e643644bbe279795c7c737eba\r\nMD = f64b7ab243ce6e6c04b483888ba8a655465c21d95eb60c7b8d6e566a3811bae2\r\n\r\nLen = 832\r\nMsg = 603e13f61499e12ec6b33b68847a281d314f54dc705c0f3fc428981ff5689c04b519fadf83cbc9fcd0409c326035045df480570e265bb080940037ce4076a36437aafdb371c1a62af9ad9b614dfef89708fbbb5ebef2cb9528cc399781e4c5b22f1aa4dba623809f\r\nMD = 5f76962fd3d373e5db2953c0823a51fe81f874450bedf7e46876394b04d3ef66\r\n\r\nLen = 840\r\nMsg = e03115cfa19efcd796da389063c4be6acce684d983f8edfb3da6887b0b94fbb5e89e3a1a8e64fdd68f0670b1a02c2c33384a660c5a2266b3ae8a3b4cd76faecf011a7467b9b2a818020278a5a57d1eb1c87f1224c2d67dd02e81f1553eb75841532c2b7cca8fe5e418\r\nMD = d107ee6ee4a58871a33c49657faa2573e475f11918c4a4e3801d0e17fb93c6e3\r\n\r\nLen = 848\r\nMsg = 0e6c1d58b1b9d3a2d399aafd60529e07d483a2755bb7e44c373b5355632d5fca76d6ff56c93af93ddcec5ed6f62753420c1b1758e48542df7b824b00a3a54dfaf0470b18d51e31e10b12dd8e324b5dc1bb8f3b7305cb762ec6ef137dadffd4a2466748861d9004f626b0\r\nMD = 02ab2dbb02944354799051247b1a25c19f3696e1afcb502b859e83798b33fd77\r\n\r\nLen = 856\r\nMsg = 6db2a43a229b10c3629249fc5136468b4d84df7b89ec90ebf7aa7a036c53aa2dffae9e81b2c60580543dc706a5e3457abc87e248a60ec29150c2d221a6ec08a1fda4ec0daee8576904ec7ab059b1230e7bd93c4e55ba9496cbb1e352e5b8086e303b94c861288ce53c466b\r\nMD = 8cc4d39b2f5ba0bc9d2ee2a8777cf08533e60cc69b65a7b31c5c2121193aa31e\r\n\r\nLen = 864\r\nMsg = 31d995f7ff8b6de70829a8336c610f10df2c866107a4922b25151849f8566861df5a79163d02767f21357ad82733997899261f03dafb1ce1056f20efd16d4374b89768565823c38e19e899d910b847b023f1867b6e4fed02e604b8243c0bc7cb05b9ea1f17955bfa36698c9c\r\nMD = c99c7191b34c9ad3f941d4ad442cc865205cbb4c2a6927c592e831cbc4d36fcf\r\n\r\nLen = 872\r\nMsg = cb0b8cb7de621c8e0a0fc6be2fc18d0e8818a2c2dd0b3219fa87831a61583f903c4d105495976ccac973b3ae3a09771145931a9e74c19f22f45cba4c492b29b1401347122581dfe2370d3e0359578cd10a355c619711810a8f8c232578671312c0a45c7cf7e81bdd3b249044f3\r\nMD = 6d2f57a7e42b35369cf2cd60caf9e65aca7d9aa019e6824bb806348f1acf3c7c\r\n\r\nLen = 880\r\nMsg = 48dff78aed5f6e823054924a78dc1b8e51a117f1610181529f6d164ebf0f6406f0b02422cad8c916823759a361437ca17423d3fd84cc8afe486a31ccda01c732685418a32c064a7b9effb288e811ecc99adb2a759feecc3f702f31d9877dcdb717937c15fa2f163bea744400f58c\r\nMD = 14b631f0f00a3024ad1810dabf02711e28449668abe27f69380942268968d4f6\r\n\r\nLen = 888\r\nMsg = 06cc9fa542ceb35c88fb6ab82c29d5dcd530f807d3f1c3bcb3974421101d1aa6ac112de6bf979cd28eb0f70c40bcaf91ed3eca9bf9e0dbc6a0b73271d1c7506740ca9ebfb72d5e00ac5ce189193ffa308804b42a6d20402bb99031cdac65ec36eb7f59f5d299df2e0b8690f760b9a0\r\nMD = 574fd82a9fceb8f7bbbf244d16e0412cbda8153b720846c32b8f10fe5779a881\r\n\r\nLen = 896\r\nMsg = 8d93627c0b7cbf61a7fe70e78c2c8ed23b1344b4cfed31bd85980dd37b4690e5b8758f7d6d2269957a39a1ac3451cc196696ae9e9606a04089e13456095a1ce1e593481b3ac84f53f1cb10f789b099f316c948398ad52fa13474bdf486de9b431bd5d57ef9d83a42139a05f112b2bd08\r\nMD = 344ec86642eabb206b2fd930e4c5dde78aa878577d6c271cb0069d4999495652\r\n\r\nLen = 904\r\nMsg = d0af484b8be6b41c1971ae9d90650a1e894356c9191d6be303fa424f2b7c09544ec076a0f1865c8c97927ca137529d5bedc0df2ef08a4cc7c470b094b1eeaa86731c041633d24086b60f7369d59c57652dec9b3817477df9db289ba020e306c9a78a99b539128992deb23cfc508c5fc3af\r\nMD = b7ba998726477c32792e9c3eddc1cb6feb7c3933e49f2e7590d8ce7a2113e6f8\r\n\r\nLen = 912\r\nMsg = b212f7ef04ffcdcf72c39a6309486c0eeb390ff8f218d6bd978b976612f7f898c350e90bd130723e1126af69295019b4f52c06a629ab74e03887020b75d73f0f78e12785c42feb70a7e5f12761511c9688c44da6aaa02afa35b31edc94c3a0779b6ab9462525c0ccfba76986f873fe1e6ba9\r\nMD = 2f26b96c1fa3f3dee728f17584e733b4189821c659b8885a5fb1d12d60d2aaa9\r\n\r\nLen = 920\r\nMsg = 86591ada83fba8175a0fe91d264e7f9b2df97ee4c32570e76b579d6140508951932abdadd6a4ca53b8bb8c42927aac0a02126881d52d97b82b80e72dd59f6a42021651ee1bb5f7b3eb2b21d003d784b75dda87c13f714b216282e8175474fa661b445d071bd5341f3a88302f410d0f8a857962\r\nMD = e3edbc8c42ce5d2384dfb24fb1de5d4798b1bc3cc78c97033894040dfa6feb6c\r\n\r\nLen = 928\r\nMsg = 92b5a8e84b6a2ac4d5b1e61d63804abd641dd630058ec6d5f752f135724ef1947a0a84c6611d32448de6307f7b7d857404e96b81df94f87768fcfdf09faa2fe37468847542afe012995ff1bd40b257a47a7309f8896bf4fb711de55bfeb3a8be0837729ef6067c578182f17ebb080a754f22773c\r\nMD = 80ed0a702812297c2aa1b6b4b530c2b5ed17ecfba6d51791cf152d4303ced2e6\r\n\r\nLen = 936\r\nMsg = d284a0a9a4de5d4c68cc23884c95ad7619aa39b20a2cf401deaeb3362c3ce356f79cc3fa82d3d1f565ec8137e1f435f171496afaa1152f722315dca5209f0031cce39b6c3d718e007dfb4fd8de5ce1408dda04476aa8a96817afa86a4f8fb5857ae091c67ebd7db5d783f434ead699aa96e56f610d\r\n", "MD = 654eccefd0a4fdb2ac0ab56288c64399b37bc4d57ff4a9f1cce94362fc491bda\r\n\r\nLen = 944\r\nMsg = f57f0f8795385b805246a0a2573afc274346a9eccf50c626b0455a50bfb09668578b5a5afe54fbbd486444bdf97dba586aa224ce2e2b4b52f418ff06afa65a26f5204983a5f84734cd166c88cb70a73fb2db48f9ef20c1ee2c53ade07460114e98e7e2ebd24ac84ea90422eb143c4a42e2991a565959\r\nMD = 135ec8b144a667dceae8fadd287df81c10ef3ebef87ff2fb56e60ae708a88f3b\r\n\r\nLen = 952\r\nMsg = 2a41a52e6578873588a57f11f1be7c7eb398d01f3bfdec2c33fe6b65a68a534a6540978daa82e0c8fccb8c6c5242f7f97b8ffa75bdedb217bd8083439eea5cbb6d193c13bd62f5658ed4304774c6b1faf5b3dce432487840cabab415fb5d67640a739ca6e5414e760869708a9d7331e7e7ad7d55e035c7\r\nMD = a6a1b8a26f6f440f19f16dce1d3001477d73ee7f6c374bce2922167b81970d6a\r\n\r\nLen = 960\r\nMsg = 4d11aa5d3c6b6900f49ff90dd815744572be5648b64bde638b9db7a9877dd745fa8ea80e2f7f655cee85c71a4509e21d899e49b4973579815f947587a404ad83fd4a248020d9d2a65f46485373fc926d793161f63a196ae0af590923c5be2a0e5d2f69da97e0788550c9c1dee9574ddc4a61e533275d7729\r\nMD = fc5159f0ddd6d765c85fcc3fc3ac1dc0d317d8ea0b110e96ac9f7a398dc386c5\r\n\r\nLen = 968\r\nMsg = 05cd99bfe031d123ca7061d3de0956f4bbf164bad792db881713d6599ddab55ee24fcee804e360896152c8766424f8309f7a24641a07be0feb5da5e5076a9af45842f385101f93433ca5199f9c6b5872b2b808e4198aba8e18dd12db772930b4912d6f5cabeb529884f4bb142de55e021b3276047b22b64cc5\r\nMD = 8aa07742e6f1f47ad020ed6684edc8dba4af36b782955f0f972be3ae980aea0e\r\n\r\nLen = 976\r\nMsg = 529684398d68bdc19e7a00ce32cc1a8c1315b97f07137474f61f0cb84a04f2879b1109c78c6dacf7f0abf362329e3298f36fc31ef4ec06653723a5f961301dfb63537ad15946611cb2cd54ea928e322e7423fd6d146ee0b98c2c71e3bdcd33edf0845fbebd9ae4192d07acd01b432135e05af0d22f3f0c5a3d62\r\nMD = a07049b6ebd7b355479a3d802fda436b83ae6747d741cf9626f7c62f47cbd563\r\n\r\nLen = 984\r\nMsg = 982fb5f4af498a4a75e33a033235ea3ddb70d9d236519f883ff5b388cbef30126b98d96e93a65a26fb00d17246d18cf4e2db14a52f0f6b10e35a93beadc14ff118b02e95b38fc4736f973ba848e40b5527cb0599076d96bc578c4aada09e8faf6820bc4f562d5199974f808b7f95edca74e6b3940894a7f66534e0\r\nMD = 09c60fec5a089a23f5da3ed2492aa21fcf7aa36183850fafc15ae8c63f596db0\r\n\r\nLen = 992\r\nMsg = ca88614828f8acdb5fcffab6bb2fb62d932b7808e4d9cc3139a835b0cef471d9f4d8ffc4b744dffebf4f997e74ce80db662538bceb5d768f0a77077e9700149ea0e6a46a088a62717216a14b60119dd19c31038ed870b4709161c6c339c5cc60945a582263f3be9a40cd1a04c921947900f6e266f2390f3c970f7b69\r\nMD = fe2d4183ccdaa816b4446a9b6c07d0ba4b42ac743599db5dc482b1941f443c71\r\n\r\nLen = 1000\r\nMsg = ab6b92daf83275cb9c1b76cfb59fbcc8ac53188e0b6980918e7ac0c07c836ca9372d19e11251cca664bbb3c3db2e13b412a9820b65e95612042f5db24643cf9340b9808597735a1f92670ba573a2fb2f088d81087d70565574344af7576d35b2ed98318e2ca0067d4fa8e63f28045b83b6887d4ffa0668a10712ed5759\r\nMD = 744538e1ae1cd7357710b56c3bc6f1bd7a8564118a1e0f9acc30fcf0b5396eef\r\n\r\nLen = 1008\r\nMsg = bfd4c7c8e90858ccf9c8834abefd9c1846ca4a11966fdd139d6de24a6bebf4b19f58d5d51e52bddd0bc6f1c7f35998f44707cae7100aeb4adefe373101429da3fca1d15737329dbbf47c783a84de59bfbb2fcd75a1a148d26aebb8d3a9a76089c0f8e4d49b71a06f9e323e2cdb54888189887a44b1fa9cb32b7c8fb7c9e0\r\nMD = 58b17843bc851a721c5a258eef57b3854d02190e732d9b8e7a9f926ac409c173\r\n\r\nLen = 1016\r\nMsg = c5019433c285da2bb93f119e58b4f36cd1e4d99dda35dbf4f8ae39c7fe65fa0ed03bd2b96dc649472d8f1a94477ed9f29592d97c9cd54da7c790ad1af3bb5cc030b7871bc64050db779d2caf0419895bf3b7b50b8e22fbe62fe30fe7bbd6ace86ddf7b00d5d9370f20cf0f97996f4bce70bb33f1ba022cdaba0f25d55fa031\r\nMD = f7c92a3fb7f180370d628be78de874d693f74ccc7a54c741634258d8c512fd7f\r\n\r\nLen = 1024\r\nMsg = 84b60cb3720bf29748483cf7abd0d1f1d9380459dfa968460c86e5d1a54f0b19dac6a78bf9509460e29dd466bb8bdf04e5483b782eb74d6448166f897add43d295e946942ad9a814fab95b4aaede6ae4c8108c8edaeff971f58f7cf96566c9dc9b6812586b70d5bc78e2f829ec8e179a6cd81d224b161175fd3a33aacfb1483f\r\nMD = 8814630a39dcb99792cc4e08cae5dd078973d15cd19f17bacf04deda9e62c45f\r\n\r\nLen = 1032\r\nMsg = 14365d3301150d7c5ba6bb8c1fc26e9dab218fc5d01c9ed528b72482aadee9c27bef667907797d55514468f68791f053daa2df598d7db7d54beea493bdcbb0c75c7b36ad84b9996dca96354190bd96d9d7fbe8ff54ffaf77c55eb92985da50825ee3b4179f5ec88b6fa60bb361d0caf9493494fe4d28ef843f0f498a2a9331b82a\r\nMD = 9b690531dee948a9c559a2e0efab2ec824151a9175f2730a030b748d07cbaa7f\r\n\r\nLen = 1040\r\nMsg = 4a757db93f6d4c6529211d70d5f8491799c0f73ae7f24bbd2138db2eaf2c63a85063b9f7adaa03fc348f275323248334e3ffdf9798859f9cf6693d29566ff7d50976c505ecb58e543c459b39acdf4ce4b5e80a682eaa7c1f1ce5fe4acb864ff91eb6892b23165735ea49626898b40ceeb78161f5d0ea4a103cb404d937f9d1dc362b\r\nMD = 1ac7cc7e2e8ea14fb1b90096f41265100712c5dd41519d78b2786cfb6355af72\r\n\r\nLen = 1048\r\nMsg = da11c39c77250f6264dda4b096341ff9c4cc2c900633b20ea1664bf32193f790a923112488f882450cf334819bbaca46ffb88eff0265aa803bc79ca42739e4347c6bff0bb9aa99780261ffe42be0d3b5135d03723338fb2776841a0b4bc26360f9ef769b34c2bec5ed2feb216e2fa30fa5c37430c0360ecbfba3af6fb6b8dedacbb95c\r\nMD = c163cd43de224ac5c262ae39db746cfcad66074ebaec4a6da23d86b310520f21\r\n\r\nLen = 1056\r\nMsg = 3341ca020d4835838b0d6c8f93aaaebb7af60730d208c85283f6369f1ee27fd96d38f2674f316ef9c29c1b6b42dd59ec5236f65f5845a401adceaa4cf5bbd91cac61c21102052634e99faedd6cdddcd4426b42b6a372f29a5a5f35f51ce580bb1845a3c7cfcd447d269e8caeb9b320bb731f53fe5c969a65b12f40603a685afed86bfe53\r\nMD = 6c3e93f2b49f493344cc3eb1e9454f79363032beee2f7ea65b3d994b5cae438f\r\n\r\nLen = 1064\r\nMsg = 989fc49594afc73405bacee4dbbe7135804f800368de39e2ea3bbec04e59c6c52752927ee3aa233ba0d8aab5410240f4c109d770c8c570777c928fce9a0bec9bc5156c821e204f0f14a9ab547e0319d3e758ae9e28eb2dbc3d9f7acf51bd52f41bf23aeb6d97b5780a35ba08b94965989744edd3b1d6d67ad26c68099af85f98d0f0e4fff9\r\nMD = b10adeb6a9395a48788931d45a7b4e4f69300a76d8b716c40c614c3113a0f051\r\n\r\nLen = 1072\r\nMsg = e5022f4c7dfe2dbd207105e2f27aaedd5a765c27c0bc60de958b49609440501848ccf398cf66dfe8dd7d131e04f1432f32827a057b8904d218e68ba3b0398038d755bd13d5f168cfa8a11ab34c0540873940c2a62eace3552dcd6953c683fdb29983d4e417078f1988c560c9521e6f8c78997c32618fc510db282a985f868f2d973f82351d11\r\nMD = 3293a4b9aeb8a65e1014d3847500ffc8241594e9c4564cbd7ce978bfa50767fe\r\n\r\nLen = 1080\r\nMsg = b1f6076509938432145bb15dbe1a7b2e007934be5f753908b50fd24333455970a7429f2ffbd28bd6fe1804c4688311f318fe3fcd9f6744410243e115bcb00d7e039a4fee4c326c2d119c42abd2e8f4155a44472643704cc0bc72403b8a8ab0fd4d68e04a059d6e5ed45033b906326abb4eb4147052779bad6a03b55ca5bd8b140e131bed2dfada\r\nMD = f82d9602b231d332d902cb6436b15aef89acc591cb8626233ced20c0a6e80d7a\r\n\r\nLen = 1088\r\nMsg = 56ea14d7fcb0db748ff649aaa5d0afdc2357528a9aad6076d73b2805b53d89e73681abfad26bee6c0f3d20215295f354f538ae80990d2281be6de0f6919aa9eb048c26b524f4d91ca87b54c0c54aa9b54ad02171e8bf31e8d158a9f586e92ffce994ecce9a5185cc80364d50a6f7b94849a914242fcb73f33a86ecc83c3403630d20650ddb8cd9c4\r\nMD = 4beae3515ba35ec8cbd1d94567e22b0d7809c466abfbafe9610349597ba15b45\r\n\r\n", }; -static const size_t kLen79 = 23927; +static const size_t kLen80 = 23927; -static const char *kData79[] = { +static const char *kData80[] = { "Len = 0\r\nMsg = 00\r\nMD = 0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004\r\n\r\nLen = 8\r\nMsg = 80\r\nMD = 7541384852e10ff10d5fb6a7213a4a6c15ccc86d8bc1068ac04f69277142944f4ee50d91fdc56553db06b2f5039c8ab7\r\n\r\nLen = 16\r\nMsg = fb52\r\nMD = d73a9d0e7f1802352ea54f3e062d3910577bf87edda48101de92a3de957e698b836085f5f10cab1de19fd0c906e48385\r\n\r\nLen = 24\r\nMsg = 6ab7d6\r\nMD = ea12d6d32d69ad2154a57e0e1be481a45add739ee7dd6e2a27e544b6c8b5ad122654bbf95134d567987156295d5e57db\r\n\r\nLen = 32\r\nMsg = 11587dcb\r\nMD = cb6e6ce4a266d438ddd52867f2e183021be50223c7d57f8fdcaa18093a9d0126607df026c025bff40bc314af43fd8a08\r\n\r\nLen = 40\r\nMsg = 4d7fc6cae6\r\nMD = e570d463a010c71b78acd7f9790c78ce946e00cc54dae82bfc3833a10f0d8d35b03cbb4aa2f9ba4b27498807a397cd47\r\n\r\nLen = 48\r\nMsg = 5a6659e9f0e7\r\nMD = 21b1f3f63b907f968821185a7fe30b16d47e1d6ee5b9c80be68947854de7a8ef4a03a6b2e4ec96abdd4fa29ab9796f28\r\n\r\nLen = 56\r\nMsg = 17510eca2fe11b\r\nMD = 35fba6958b6c68eae8f2b5f5bdf5ebcc565252bc70f983548c2dfd5406f111a0a95b1bb9a639988c8d65da912d2c3ea2\r\n\r\nLen = 64\r\nMsg = c44a2c58c84c393a\r\nMD = 60ad40f964d0edcf19281e415f7389968275ff613199a069c916a0ff7ef65503b740683162a622b913d43a46559e913c\r\n\r\nLen = 72\r\nMsg = a36e5a59043b6333d7\r\nMD = bd045661663436d07720ff3c8b6f922066dfe244456a56ca46dfb3f7e271116d932107c7b04cc7c60173e08d0c2e107c\r\n\r\nLen = 80\r\nMsg = c0920f2bd1e2d302259b\r\nMD = 3d1584220409f88d38409a29ecaebb490ef884b5acba2c7eaf23914bab7f5f0fc97ee1e6336f88dfd4d0a06e902ccd25\r\n\r\nLen = 88\r\nMsg = 70ae731af5e0d92d264ec9\r\nMD = 563359fd93fe09f3fe49fcf5f17e7f92aab589cdec3e55e4c3715e7775814bbbfb8c4c732e28d3b6e6404860812dc6e9\r\n\r\nLen = 96\r\nMsg = 69c74a9b0db538eeff64d93d\r\nMD = 88c66389ca2c320a39022aa441fa884fbc6ed2d3cc9ac475372d947d4960579a64e061a297d1831d3524f98d8094404b\r\n\r\nLen = 104\r\nMsg = a4a9327be21b9277e08c40abc7\r\nMD = 751f5da5ff9e2460c99348070d5068d8a3d7ffcec7fd0e6f68f6cd4a2ef4226df8d9b4613c3b0d10a168eaf54eabe01a\r\n\r\nLen = 112\r\nMsg = cc4764d3e295097298f2af8882f6\r\nMD = 10f287f256643ad0dfb5955dd34587882e445cd5ae8da337e7c170fc0c1e48a03fb7a54ec71335113dbdccccc944da41\r\n\r\nLen = 120\r\nMsg = 5a23ad0ce89e0fb1df4a95bb2488f0\r\nMD = 23840671e7570a248cf3579c7c8810b5fcc35b975a3a43b506cc67faefa6dbe1c945abc09a903e199f759dcbc7f2c4d0\r\n\r\nLen = 128\r\nMsg = 65b27f6c5578a4d5d9f6519c554c3097\r\nMD = dd734f4987fe1a71455cf9fb1ee8986882c82448827a7880fc90d2043c33b5cbc0ed58b8529e4c6bc3a7288829e0a40d\r\n\r\nLen = 136\r\nMsg = a74847930a03abeea473e1f3dc30b88815\r\nMD = dba6f929fe55f9d66c5f67c0af3b82f17bcf58b36752f3165c16083fea8fd478ee6903f27f820ad2dd9950afb48c6700\r\n\r\nLen = 144\r\nMsg = 6efaf78ed4d293927eef2c3a71930e6e887a\r\nMD = 8218498ab01b63041c2ba0709e3309496124ddf0904543a9e0d9d096a750dda97f7a02208af3d8c618d4be7c2bb2a288\r\n\r\nLen = 152\r\nMsg = fd039eb6e4657388b947ec01e737efbbad47da\r\nMD = c5b3130ef8dbc580e1103fecae69c9a882d9ebf5a3def5938b07f843452a09c9f72f0dbca91d33b021cf6aa6fe60d2ed\r\n\r\nLen = 160\r\nMsg = 9c694943389bdc4e05ad7c2f63ceac2820e1d2d7\r\nMD = f692c025c5c5f3d1275213c1df9bf9eb6d2188eda90ab5bffe631f1dbf70ebd628caee88b7d149e1ac4e262873979afe\r\n\r\nLen = 168\r\nMsg = 0fb18357b018b9bbb2cbb4cac50bc85609c92b8e7f\r\nMD = d164306c99e3798790f0923fe92dbf2f96c3907127dacaa467c766ac75788062589272cb7690b8af2030dd8bd61a3df2\r\n\r\nLen = 176\r\nMsg = 26cb40a460e2e727aeb867e0140d0f34790110deb5d7\r\nMD = af2a42a4c67c3226c55b89605b0dee27e796c2792115f6097203db5aed89e35f563a8246d399fde00c2a5b97ed5a5e17\r\n\r\nLen = 184\r\nMsg = 6690a3a0373c829facc56f824382f4feed6eb184642b4f\r\nMD = 84e1b68bc9e2daefc19b567dec911ef46f5f37a74fdbbb6155e7e646f2735df2ac44e239689eb5b536465dc571e55cb2\r\n\r\nLen = 192\r\nMsg = 7d80b160c4b536a3beb79980599344047c5f82a1dfc3eed4\r\nMD = 041cc5861ba334563c61d4ef9710d4896c311c92edbe0d7cd53e803bf2f4eb6057235570770ce87c5520d7ec14198722\r\n\r\nLen = 200\r\nMsg = 02128283ffc0cfe254ac8f542be3f05fbe4e855dd22ae98a81\r\nMD = 3840981a766d725f83d334e8982965033a5fbb5107d94ffef33b1f700cd46348091a49f6620c37ae3ef5b20513494826\r\n\r\nLen = 208\r\nMsg = 27911dd0a6843ccae965d876aa1916f1dcd71e518f7f2197152e\r\nMD = f59f8428555984d1526cded8129c649fb1b683d35cec7c5e1209441a6a9e7c17f0784151b5ab8a8c492b402a3acb98c4\r\n\r\nLen = 216\r\nMsg = d9378bb66e8c8dee556d691cbc9fdddd6333ca5d50668862c3c57d\r\nMD = 994532d1a557e990b1cc9e0395a2ad8b05619ca322db9da3c4ed2ee194c051d04582fde72dd2b8f674cf6ec958db75da\r\n\r\nLen = 224\r\nMsg = ae1828047c5f82a7b9712f3399832124b892f2f7aea51c8fe3536cd6\r\nMD = d51111f8bffb44d81ad19683198f29d2033144d3cd856c749cac5b9cae0e712f500f8d0ef813f38e305ce175a7d6162c\r\n\r\nLen = 232\r\nMsg = 7dd2d76fa054cf461e132e9ef914acdc53080a508cdc5368ab8c6224ff\r\nMD = 6c0b3395e4c86518ab0a06267320ee9ec95e50385b7a2527ddaa1bd0ead262c56122d4f4eb08b0ae22b3ee7e6f44dd18\r\n\r\nLen = 240\r\nMsg = 6fd72888a021f36e550967cb5605b55b78657c9272d93c3ded340d67da6f\r\nMD = 0551583a5b4007401c77ef4382fd8e245c9cf12e976c9766af6b7ae3c7e07a82b3079f903b083d5ec85cb94e46a85ac0\r\n\r\nLen = 248\r\nMsg = d500eb9546553619cdc31e0848c502db92d547efef3ae5eeaa22258afcf0a9\r\nMD = 5edde2f94f8695f277ec05efcc00761fafd272200aed0e63d221c2b6c65b4972a6526f9a1f2e6ace0e81938f043fe877\r\n\r\nLen = 256\r\nMsg = 6189597e0198a18c65fa0bdd0797f13037c75c4058b7d3454c0f71bd2dd13b6c\r\nMD = 110630ca7631b7620e6bee6ed6e929098965571936c34829484983eba9532b8175528c228c57439453f027a4f7c83ca3\r\n\r\nLen = 264\r\nMsg = 243b941d748541af303f8e9d2c371cd03e437d62a9df485ddc176dc65da8c7da00\r\nMD = 5884201f7a555ea3c5deeb019fd9e8c161e1b89756045e475b141ec5135ce5a41c93e5e1f79534d36fd8345ba434da43\r\n\r\nLen = 272\r\nMsg = 2dc3d789582c1a806c3b491d5972ef8f1733f1f5e02866dc9de2a8029ec0ab608d13\r\nMD = 05a3903b519cdf679120c7ccb4ef178b58e4502fcd461360988fa06669294851e629d9dd3e77ffb73d24599d5d3edd36\r\n\r\nLen = 280\r\nMsg = e5b3f6962fe57230780b3d55b29effe0dfebde2c81ba97d4512ecdbd33eca1576a7f82\r\nMD = 7ac2776afb74f55bbc4f6eccf825ee13ac7445fb54974e6c24ebc0f03fdcd8530199a61106a31b4279e02201ee0f54fd\r\n\r\nLen = 288\r\nMsg = da03486aa3cebbd6502e9f5a6f0f835e973a581befcc1aadefe7b3696ba71c70cd58c584\r\nMD = 02c44ceec0bb7dc0f664ebe44230192b5b0bb646bb944d23fa1ff3586dc0523fa9d7f0dd6df5449ab9edd9a1096b07dc\r\n\r\nLen = 296\r\nMsg = 3c686d321ba66185cdca83ba9f41984fa61b826ef56b136e13f1239dadf6e03d877866ccb8\r\nMD = ad624edd9f2c3a32b56c53d9e813c01d66bcfe424c4a96907d52ac1ddd68370ec86dac67504a90e8a8e75502e01081d2\r\n\r\nLen = 304\r\nMsg = 4dcff99fac33840f6532547fb69b456902d6718fd5d4538e23462db6d00da61975f2b8e26298\r\nMD = cf37dd27997c1bb7e6dc405170066e74c6ce517c029ed8dce126d025da74e0b8e86da567e8d7d8d5b5d3e2a546df7489\r\n\r\nLen = 312\r\nMsg = 2799f672328834d7eaef9439795d35ce93c9094f58ded9f17c968a97a50a9e461489fed988e7f6\r\nMD = 85cfc23c97cb13910b808e7033809a45aa0b7f7138de618c2ca622c8b813c988e264af3b96c7925dcbd1d2761757d800\r\n\r\nLen = 320\r\nMsg = c7e947507822f28a562745a8fe6fed6cb47d73145804c894954e21245cde04fa9155a35904926aca\r\nMD = 8bddf3baebbc5b04fe0b0a9c3c2b730abe918ce4892d2843c613ee96da0228512f0d1307c7d1a8922e79a92e957dd18e\r\n\r\nLen = 328\r\nMsg = 6c497bf6ff69cb39e3faa349212b8b6691ca237905ac0099c450b6d33abf362bedb65bdeb307bfea23\r\nMD = 3639fab6191b35246278522cfacee0cd5b15580a26c505ae3c46b4b1c2572016b48f1b012bbbedec47916950fbb33a1d\r\n\r\nLen = 336\r\nMsg = d15936f3b0c9018271812b4c81453c4457c7edd110bcea7f5735d6f5882d8f27155eb4cc285a65138ad6\r\nMD = 0293eeef0aa3392c93d9c6ca89c08b317622572d4de2286a4b9ae6c2f9c9e0e64ee6c483d4f10859077e3c6868430214\r\n\r\nLen = 344\r\nMsg = df18139f34b8904ef0681c1b7a3c86653e44b2535d6cecd1a2a17cd5b9357be79b85e5e04dd9eff2ca8b9a\r\nMD = db9e171d6e3336631c9ceec6b4d732ce62b015939269fb69fae7d22725500e8a2fc9f1459cf0a31fb9d16d7c44583f52\r\n\r\nLen = 352\r\nMsg = 0459dcbc149333ea2f937b779a5f3728148449a9aea3662cdd2cc653ce6a2050f9c0d54bf9326c039b263eb9\r\nMD = 464ba409fbb45e985f84ee24662eb7c042c3c2ad9649f1ac4a8b2be9c07d37ed2e4284362057493f6a7e52c356b05bc5\r\n\r\nLen = 360\r\nMsg = eb3f7002c8352270340b8da8643622e5f7e32cdb208a0dec06c6cb9e6b64cc4d8cb9de1d49397b3386464a25d1\r\nMD = a26bd76ce42d818dbec462d8fe7cdd957e6b84ae8750fb5e1c9c76bc6000e23737e073a59b4600e5056524edc667909d\r\n\r\nLen = 368\r\nMsg = 47e3e3d8c68ac9d9f4b3759d8c7d9dd901e35b096ee4c8b6cbe0cdf467463630926c08289abe153bfa1bcde3cd7c\r\nMD = b504ef475a568f9caba8352a0b2d243acdf3d2b41d8890a6fb3abb8aa28a29e0c7527d20e2d79b25b400ec27c314db72\r\n\r\nLen = 376\r\nMsg = 838d9c181c5ab59592723bd69360e0d7fd15232beada7591ea899ac78ffd53a32fc73a5fe522ed35d92a6e2bc148ca\r\nMD = 53e99e1158d59032ffe4b5ea304c7d2f7a61b6b2a96ac97832ca26013549fe3f7dcdf926bd74ceabe4f1ff172daed6e6\r", "\n\r\nLen = 384\r\nMsg = a90d2aa5b241e1ca9dab5b6dc05c3e2c93fc5a2210a6315d60f9b791b36b560d70e135ef8e7dba9441b74e53dab0606b\r\nMD = 4a16881ce156f45fdfdb45088e3f23be1b4c5a7a6a35315d36c51c75f275733319aca185d4ab33130ffe45f751f1bbc5\r\n\r\nLen = 392\r\nMsg = 8c29345d3a091a5d5d71ab8f5a068a5711f7ba00b1830d5ed0bcdfb1bb8b03cd0af5fe78789c7314f289df7eee288735fe\r\nMD = e27b39a96255ff69c45285fca6edaaa3954ce32c1e3d9b1f60c1b6676594bb45caf0889fc11daf93a1b60746229689dd\r\n\r\nLen = 400\r\nMsg = 32876feefe9915a32399083472e3c3805ef261800b25582aa7c36395fd3ec05d47b49c4944bbcc2b8b5ebd081f63ae7943d0\r\nMD = f96433cdb69a607433ea2eb77d87d3328867dc4076b67ccf17f50f9e08e89a86624b60f2ecdb8affcd431fc13173fe75\r\n\r\nLen = 408\r\nMsg = e2e77eb54f321f86f52ea3d3c8cdc3bc74d8b4f2f334591e5e63b781034da9d7b941d5827037dee40c58dc0d74c00996e582bc\r\nMD = a352ab33ca730482c376bdc573c9d1dc6d3597f9be9f798b74a57beaa8e9c57b78ee6761056eb67363e882fefcad4fb9\r\n\r\nLen = 416\r\nMsg = da14b6d0b2ec4cf1e7c790e7f8f4212b8f4d05f50e75e2a56a5d70623c0d2e0115a15428129109b3b136d756e38a5c8463304290\r\nMD = aae7ad977e17ac0e560c0e0186433420f9fddcd191b9e91567cee05df88f1e1aee50424a313998a873f7a9c289a02217\r\n\r\nLen = 424\r\nMsg = 2db06f09abaa6a9e942d62741eacd0aa3b60d868bddf8717bef059d23f9efe170f8b5dc3ef87da3df361d4f12bfd720083a7a035e8\r\nMD = 85d4e3e5abcb1b59ca6f551eb43b43ff64890511f73a9083a2ce6e9c2861c6e9664c765629024f4b01b0cd1594a5981b\r\n\r\nLen = 432\r\nMsg = 26bad23e51c4560c172076538b28716782ee6304962f68e27182048948d5c367a51a1c206a3e9b25135b40883b2e220f61cb5787ed8f\r\nMD = a44c7f84ab962f68283404f8c5c4029dbc35d2138e075c9327580baf89f292937bf99422e45756b3f942bf0a5ae4acb6\r\n\r\nLen = 440\r\nMsg = 77a9f652a003a83d22fb849b73fed7d37830c0dc53f89cea7dbec24e14f37197765206fe0e6672016e4dec4d9ebbe3e1b4423771a5d0a8\r\nMD = 29c8bb39bb2aad419a00a80216ec71ec5ec9ab54c41927e3e3f2f48f079a5886d7fe89db98c807ab686d2339001d6252\r\n\r\nLen = 448\r\nMsg = 268c7b3a84849fec5c769bc4ad377dea10c9d20c91dd17fdbd9670a2fc909d0e212129ec40dee41dbf6194a3b04ae8be5e84ad5426ca4496\r\nMD = 0dfc6ffcf4a387ec09ff862c6139a6f7ac77abb2b5e1f6dc814eb71525f8657ac74a7697c2975c70a543af0e227d03ca\r\n\r\nLen = 456\r\nMsg = b8324341a6891a6b5e001a7d2ebba6e02e8335c124185309a4c9e9907c43bd8d4fa73c527fdf783650316dd24b148870e1436ac05111e9cdcc\r\nMD = 6278d1cc17fb6d54129d04987d4774fa846dcac4ba8b6b72f41e63dc387ce0081ba29fb2c17c6744edae24e669cc9e75\r\n\r\nLen = 464\r\nMsg = 5ef8b3d79d299bee2c414560c7de626cc0d9fb429884aa69cc30095ef1f36b7e03a8ca25fb3601189f163b209e0facf8dc447f690b710fb47b72\r\nMD = 7ec9505f33f4a5493574422de078e0490b61be8e8d6f158192bb7d2bdc2dc335598dc88d9b443cd1c14b883a77119df1\r\n\r\nLen = 472\r\nMsg = ad7321c9a8b8f0bfe100811114270daad57f6e88772326b62d88a37a6f55c2cf9f759115ed6a590878e4dcefb592db151538db7de20229d26a181c\r\nMD = 3782d2caa537294e809e9df837b1b07e2f1df07d0f4c12e12459f56eeaa478d5b3a41e519d9414eafa5ddd5661c831ba\r\n\r\nLen = 480\r\nMsg = 0719d9664541f0a824f71c83b809bb6afc973c9f7428e1ed11f7c29a558e1698b796aefb49eec2b098faf06bd43e82e1312bf0388c38a5bb523506d3\r\nMD = 362c05f678df92883d56e19221391fb00d0f0afcec51d3e0feb15ba2fb60693b09d69118af649648933259d7b1e240ab\r\n\r\nLen = 488\r\nMsg = 5415c2596aa7d21e855be98491bd702357c19f21f46294f98a8aa37b3532ee1541ca35509adbef9d83eb99528ba14ef0bd2998a718da861c3f16fe6971\r\nMD = 8f9fd7d879d6b51ee843e1fbcd40bb67449ae744db9f673e3452f028cb0189d9cb0fef7bdb5c760d63fea0e3ba3dd8d1\r\n\r\nLen = 496\r\nMsg = b979a25a424b1e4c7ea71b6645545248498a2b8c4b568e4c8f3ff6e58d2ac8fbe97be4bea57d796b96041d1514511da5f6351120be7ab428107ef3c66921\r\nMD = e248a64b6ef112bf3d29948b1c995808e506c049f3906d74c3ee1e4d9f351658681901fe42c8e28024fe31014e2d342b\r\n\r\nLen = 504\r\nMsg = e64c7bb9cd99ce547d43de3cc3b6f7d87a2df9d8a4760c18baf590c740ec53c89bfa075827e1f3f2858ce86f325077725e726103fbe94f7a1466c39f60924f\r\nMD = d1e5a72d2595f38714c6198ac14f8a5cdd894dcf9b4b8e975174b100df7bbf4f7ce291b4864f27c0b64e6330f6c1c82c\r\n\r\nLen = 512\r\nMsg = 91b7a1fd0e20072d9c5be7196e5eaf8df36fdf145895b30d4e4c02010d7c663499ac9d7a44732f4c7430511ba6fb0ae4b3dc9405523a054fdf962f5c5b79c423\r\nMD = 07c2e0aeae30da83b5a6b320aa1cf727b10c2034583d7acda55648fa3daa017aa15588b6e2149101c56e3d7df7c76df1\r\n\r\nLen = 520\r\nMsg = 5bbc2d4efe63cbfc9fc221dd8d8384075a79c80a27d6a8c5219e677f4c5bb8338013dc2ab1770acf735d13c0bc704621ec2691350cf3ea2f53bded45ef8fc70702\r\nMD = dd0bbfe4b799642191abe316df9d59a3743566778b4459c51c3be3f658bdce45516ad188fbe1a8cad8a1fa78f8ebb645\r\n\r\nLen = 528\r\nMsg = 129549278e8976c38b5505815725400c3d2081edf141ad002e62ff299d9a0743f9c9f25971710b194dc88285d50b6cec6e140c19072f51cab32a9f6497abd3e407c6\r\nMD = ca26aec527fadcd5ebeb4eafa7c102f79a3c2edb452afd04f6162dd7a17bdd1aad7d616508a89a3ec6a40791d915acc8\r\n\r\nLen = 536\r\nMsg = b9a9f378adeff4337bc7ec10d526c6dda07028375549f7fda7a81d05662c8a0da3b478f4152af42abb9f9a65c39da095abb8161ba6676b35411234bd466c2914e00370\r\nMD = 99914f684e0b317f9338af0c71e9655a3af7153eb9fabaae61454bf8de9e0bfd274c1eff6c4b550e47afcb3b20fa7d9e\r\n\r\nLen = 544\r\nMsg = 101da5b09700dcadf80e5b7900f4e94c54d5f175569a854e488aa36fb41ab7220b0662178ca07a596768528123de3b2a3d944aa412875cedfeaf58dcc6d5b4a033a53b69\r\nMD = d3e32c9b271e11e4968397d85d76938b974ac1ba55bcbe8d7b7da02dbd7e3b9c9af0d98bbd7e50c436fcf9e3551e3432\r\n\r\nLen = 552\r\nMsg = 14761bbc5685b5de692973e2df7c9c4750889c19a952f912c817890546d5e37d940d13a14ac7925abbd875b8cd60e4920896ce6decc8db9f889da2b5489e1d110ff459d885\r\nMD = 272222ed50631aff465c0e6fe49ecdfdca983bcb7231e50903e200b335b845108202c28315912c9c4fd50e2c6f13a9ea\r\n\r\nLen = 560\r\nMsg = ed538009aeaed3284c29a6253702904967e0ea979f0a34a5f3d7b5ab886662da9b8e01efc4188e077c2cdeb5de0a8252aafbee948f86db62aae6e9e74abc89e6f6021a4db140\r\nMD = 8361b680243b1661d6f1df53db363cae41c2ebb7438c00606d76b9c2a253faa1f09d6f520d69d692ec1dca0c7885119c\r\n\r\nLen = 568\r\nMsg = c434d88468f1eda23848d0804b476933f24baeadec69743dd90d8455f1e1f290f6f1aaf3670c4c74f76d3ab83e9bef21ad8d9208c712ca478e70d5fb3c4bd48834c969dd38f484\r\nMD = 9c26e96fcc09a76cc13d24ad25c9cef4300e96e97e4fb59b441baffed07f6a70b1464f2548c7fd7839810dbb9e9c1e18\r\n\r\nLen = 576\r\nMsg = 3064e5ba1e7751bf7198e0811ff4d4ca17d1311c25d9c3a316b562691cde75c974b0b52645c134ddcc709d77b6c1bd24cd684265d723c308bb4d0159e6b16d97ed9ceaa57436d302\r\nMD = 1ea779739b204abe911b4923e6f60fece271eedfc7f074fe1919f0cbc6ce2a99234b003389520884b660165f5a1e80f8\r\n\r\nLen = 584\r\nMsg = 89d9521ad84b1c9afc2fbd0edc227193acd3330764b0d2cb71bf47c7aac946af85be13858b55976009f3b36b09ced4308052c817c9c4d0295225f61a9659a0874b88667cdcc5213919\r\nMD = 4209bb8f869f6f17c8d5c368c489ac51a75e24a85a12de1b16fefc292ce636ff8fa360e82f05684f6b0b074ba370a933\r\n\r\nLen = 592\r\nMsg = 3216662da0227993d88288187177a0287de4eccf245d7c718b8045bbfb8869d93f1fb9e94d7478b0298e628c07e0edaab01dcf79264dc05f8b2181aa3f831dc949726fbcf80de4c9c9ed\r\nMD = 64c45e018cfbc88f8f4ffe3cef0df3a94aab3049fafae28e28efbb2a4b94809eb302caf901010abfa194f72965663d35\r\n\r\nLen = 600\r\nMsg = e776e6749c5b6c7def59cb98340984539280a9874f80412d4df0ee73d58acd1094d49ed4e35125834cf8cfe349e599144e4f2e200aba4fd3eb6d78cde027c1d5620e0270b5e83ab26b8d32\r\nMD = 94bd67b7f2587b0bda5487cc45d00e4365f1ee40073cdf0d23a5ea3fba01eef42a46bfbac5306d67be02d8d918ae5c9a\r\n\r\nLen = 608\r\nMsg = 5d8f84b2f208b58a68e88ce8efb543a8404f0ec0c9805c760ad359d13faab84d3f8bb1d2a4bb45e72c0ec9245ffda2e572f94e466cffa44b876d5c5ed914d1ff338e06b74ad1e74d1405d23d\r\nMD = 947350307748c29467f00103d0a07c3c228c5f494fc88fe2352ca5d10449d0dda7076780c05439a09694eb528d1f477a\r\n\r\nLen = 616\r\nMsg = 357d5765595065efe281afb8d021d4764fba091adde05e02af0a437051a04a3b8e552ec48fb7152c470412c40e40eec58b842842d8993a5ae1c61eb20de5112321bc97af618bbfbaf8e2a87699\r\nMD = 32286970204c3451958f5155f090448f061dd81b136a14592a3204c6b08e922ee5bb6d6534dbf8efb4bb7387092c8400\r\n\r\nLen = 624\r\nMsg = a8cb78e1485cbb7a9474c1c1f8e0f307cda5139a7e947df5ea20ac330a6dffcad4a9bd755f9f58724789eeee532615be550dd84f5241fde0e3058aeedbf287f02a460445027f5e6b3829bf71ecf4\r\nMD = 51168bfeef8a981c0def0c4cb067baf15ce5feb8d5f7e9d6076b2836267391aee1fd3a0b5d3434ceb5cf2d6fa06fa063\r\n\r\nLen = 632\r\nMsg = 81acca82545e767ab59dcc750a09849cebad08ff31c9297f4fd510ebe6c27769938319180ccc66f36b1a7cf9c9f3538b0f6f371509f77cf0bc4d6d87facc85b933f2e27f8e1bf6cf388f80c0fcbfba\r\nMD = 4ae44d6509986893a8414753b57d11f9c554d89c15ad6d70687c56c6c2ac73537acbb0d51f48e6bea6cf762d58890d7a\r\n\r\nLen = 640\r\nMsg = 94987498b1ca87a6f3fa4b999db726115c455d0ec24029b2f5810e49a94668864b8c470f7fc07c3dcd97f41c973b45ba4fa7879ee7546596881573b6863fc39d940eb3fa3444", "084f721341f5d23d2561\r\nMD = a733b118be72a187ddcbe5ba67e04b589f9cd9f8482c4bd9d64c580aba7d19d2d1f9c1ddf95fe6efdeffd44f67fcabb5\r\n\r\nLen = 648\r\nMsg = de6b32c2d40d0659166db235259b530ea43f44e75d8b3e9e856ec4c1410bbea3696964af8b6c5dfd3304282369a4bc4e7cf66b91fecd0c7c105b59f1e0a496336f327440980a34614ee00fff2587d6b813\r\nMD = 17ba30c0b5fc185b3245313b83dd0481145953101128914765784af751745b8a2b6a90a434548f3adaf1f07f18649890\r\n\r\nLen = 656\r\nMsg = 854211bedacc19f77b46cfa447a4ad672ea9b643f09f5cf5274ba28888207e2466b38127776fb976db8ad7165a378df6ee1e3a0f8109c9aff7e0d6126fd71333c6e6ebe15d7a65151d6a4a83b82c8a6f3149\r\nMD = ca85632a9f7c32ac4705c6458770025dda4fd07a8d5d6921b897b0da490d64400587649f2d20bf608b9a18d071b63b48\r\n\r\nLen = 664\r\nMsg = 822373d9d3d5b06a8da48a43095740fb98c9caf717350fd2c3b058024ff705b9346b7f0a495a6d4d93802bc45ece777f8c6a6e7c2ef6b8135115ff911a2ba5241665b6f7cbfa1b9d93b011b3aaa1dac1853fb2\r\nMD = 6e84587c8c6e54353a6032e7505902ef7f0f0538dd1bb32922e13a7d4d98c47a541015381eab27e9186398120da7fb32\r\n\r\nLen = 672\r\nMsg = c04b701f688092bbd1cf4217bc4b5877f2e60c087bdac46611482a61d51f820140403bc85be0c336332da0938734bde8c502014f3509266c73c6c93c22a1bd0ddf15a5ce7410c2894e9d092e32c079922ba1abb7\r\nMD = 75c585503f15a526113608bc183180b1cb80f4d1b466c576bf021b1ce7a1528391f70e10446681849fa8a643cb2b6828\r\n\r\nLen = 680\r\nMsg = 009dd821cbed1235880fe647e191fe6f6555fdc98b8aad0ff3da5a6df0e5799044ef8e012ad54cb19a46fdd5c82f24f3ee77613d4bed961f6b7f4814aaac48bdf43c9234ce2e759e9af2f4ff16d86d5327c978dad5\r\nMD = 02a09d37d31e4365c26bec0eaacecf29eea4e8d21ab915dd605248764d964f10ebb8fafdb591982d33869a1d08a7e313\r\n\r\nLen = 688\r\nMsg = 0b7dd6709d55e0d526d64c0c5af40acf595be353d705be7b7a0b1c4c83bbe6a1b1ec681f628e9d6cfc85ad9c8bb8b4ecac64c5b3a9b72f95e59afefa7bcec5be223a9b2b54836424afde52a29b22ab652d22cce34b39\r\nMD = 5c84ae39d959b79555231746ad5b33689a31720ed0070f6772147977edd0aead07fb8b7b71b0bd587ebc5c1a80d564c7\r\n\r\nLen = 696\r\nMsg = 3e9b65d7bf4239420afa8639c8195b63902b24495b95c4143978e49843d88a92d1feed2eed1a88cd072d6d04ea26dce8ee4b14896fdb69bc7ff2971ed8ac5655148d2e9921218d74efdf17c56b533d0bb17d11e07d7458\r\nMD = ab7890d1b51af10285752bf9da5eee5c3e87a285dc33262d0261aa9a575f303e94845d7ab21b48f4e6884568cd78b550\r\n\r\nLen = 704\r\nMsg = 9436da433d1ebd10b946b129cb34bccec9b8f705aaba3f8561352ed36a8449aba2dd7ba15b1bc308b0c02913163af63a346524dff5521432db477f529606afb5d552efc95cb040db566b4d39eddaa19319e518a7b5c6931e\r\nMD = 968ae9104f9c907c5a72936250dfedd62cd04f6e5ddd2c113490808a11884449aaef5d013ea3993a6cb6fc5c08754408\r\n\r\nLen = 712\r\nMsg = 37254bf9bc7cd4ed72e72b6bb623a0cc8eeb963d827aef65ad4bc54913235b6d3551533ce33421aa52ffbf186eb9a2787188eeb1b52ee645c6d4a631bc071415c80014940c28fbfeb0db472c326c8dacfd6ab21f3e225edef3\r\nMD = 975e10fac9aa77b780e5f6c2151ec4a3c72ff26e41233cc774c074df1b78cce5af1191ba955a0bce15926ae691b0ffe7\r\n\r\nLen = 720\r\nMsg = 79e77cd08a6ef770bbe4bedf61557ea632b42d78637149670d4d6157d56ed7b2ccaee45d9439dcebc557b4118e86c15aa0ccc21c474b21abda1676cc56434d6d46422993e66dc99387dfa985358accf69884b9dd18a2c4d04448\r\nMD = 94729f5f99a54f5a3ea69233ff9d522392d4596eb6ac2bbb07492ece3c67317412bb47ae317ddd20536c3adc003862f1\r\n\r\nLen = 728\r\nMsg = 64b76cb554f6becc238a3fcfc3eb97993667ec82fdc3fb28d42567709c3250c7997328aeddfdc2750451ac462281bf66fa94f4b8712c7a8342660574f20268e707c466627519c56259fea55be91e10faab3ad2ade6ce8b6557f202\r\nMD = 26d48ef5067d704ee9e2a64e399de23068908b3c911ffc4056c168362c37385c92d37d51354b6505a82c4d22fec37eaa\r\n\r\nLen = 736\r\nMsg = 3df27829bfb1ab7d381f146b30370ef56b392b73b35b1be5d8bbcf88f499dda7f3c327b45350b8972991ee466545de96560cf451711fda884e3d9b2af3e909d655d25cee1c931beda79c40fa507097bdf1126771a7b9543ad5cb84b9\r\nMD = 5fa4ebfa24150236c03409f0857b31cb95b0150f381c8858b01559957b1268f73c698709233e6b15468675a102d0c5e5\r\n\r\nLen = 744\r\nMsg = b00f4e67ca08ccfa32b2698f70411d8f570f69c896e18ec8896cfe89551810543303f7df0c49f5b94783cce7df8d76d0b88d155633302d46003711f233339b1c9a8c20164ec8a328890a4932b7d90d92d023b548e4820558f8bd327010\r\nMD = eaa756b5892fdfc793d74e3f9f4d6c7a5a6a2241dd11e0c38ced59c8ec7be377a41d1d06774a5970ce9722d8e119d0ad\r\n\r\nLen = 752\r\nMsg = a4f95f6a46a9cbf384a7e98e102d1fdc96839d1bf26b35a5a0bd6cb9734fd17e8a178d4581943c0fe469fb4fe94cc2f15e1ef59ae05b35324eb57ca07dfc69d42d41d80b3c3bb64e1aea143c7d79790a56697dc803ec93e6c68f27f6761c\r\nMD = 1aff8d9c64f0c162ed0195d1f3a342a010d14be0636903c48020ba42de1cfa8b98ae2142d89af3e69e9eb4c735857dd1\r\n\r\nLen = 760\r\nMsg = 02713084bf93fdc35135515243c3bc0f4b2b447f2d3461c0dc104cbfe23479ab036762a91d1987c953f7b3386abc80b8734a1d4eabf94f3a9f2fb62c943152b5253846fc2ec8dbb2e93dc74857a7b05fe2d7ec8040ba8b0d9ae69777ee739a\r\nMD = 84da02114e341a3636f00822b32bd21a8a1f7b39f2956bd97f39346fedf9aae63b304c65c93a541e8bcda549576d5f27\r\n\r\nLen = 768\r\nMsg = 00ce225eaea24843406fa42cc8450e66f76ac9f549b8591f7d40942f4833fc734a034c8741c551d57ddafb5d94ceb4b25680f045038306e6bcc53e88386e2b45b80b3ba23dec8c13f8ca01c202ae968c4d0df04cdb38395d2df42a5aff646928\r\nMD = 81d6e0d96575a9b8ca083ee9ec2ead57ddf72b97d7709086a2f4a749d3f61d16423463487562c7f09aba1b26e8cae47b\r\n\r\nLen = 776\r\nMsg = 7af3feed9b0f6e9408e8c0397c9bb671d0f3f80926d2f48f68d2e814f12b3d3189d8174897f52a0c926ccf44b9d057cc04899fdc5a32e48c043fd99862e3f761dc3115351c8138d07a15ac23b8fc5454f0373e05ca1b7ad9f2f62d34caf5e1435c\r\nMD = 00e95f4e8a32a03e0a3afba0fd62c7c3c7120b41e297a7ff14958c0bdf015a478f7bab9a22082bfb0d206e88f4685117\r\n\r\nLen = 784\r\nMsg = 2eae76f4e7f48d36cd83607813ce6bd9ab0ecf846ad999df67f64706a4708977f0e9440f0b31dc350c17b355007fed90d4b577b175014763357ce5a271212a70702747c98f8f0ad89bf95d6b7fbb10a51f34d8f2835e974038a3dd6df3f2affb7811\r\nMD = eb396cfaf26ee2775af3c9a3a3047664ca34cbc228ccbb966df187d518717df6a328ecc316ed0ed09b170080eccc486f\r\n\r\nLen = 792\r\nMsg = 093e56d33bd9337ad2ad268d14bac69a64a8a7361350cf9f787e69a043f5beb50eb460703578a81be882639f7e9ac9a50c54affa3792fd38464a61a37c8a4551a4b9ff8eed1f487ef8a8f00430e4d0e35a53ff236ce049b7a3abdc5cd00b45c4f3d49b\r\nMD = 4a339128486e5b274fc4ed538c0ec9e57f780e9c500c5f92b04ae81a22fbeebf3785259a0bb3b6d9b47f31873cd8dffa\r\n\r\nLen = 800\r\nMsg = 0593babe7a6202077c026e253cb4c60ee7bad7b1c31a20da7aa0ce56b622eb57ed07d21a7f0ae6c6fe3c8398cc48353decfb287f1204e024fcf82a13059953b9f85797ab2217dc8dab34a13226c33104661c1ca79396e7d97e91039d32bafc98cc8af3bb\r\nMD = 5981815c1618cc49cd5cf71a4b7b32b8cd7b7ef553bfaef2149ac723ff2582a2d345c5bd05943e155ced1e5f091c5601\r\n\r\nLen = 808\r\nMsg = ae1828047c5f82a7b9712f3399832124b892f2f7aea51c8fe3536cd6a584b4a7777cc1ecac158c03354bb467b8fe2c8ce2f4310afd1e80fec51cc5ad7702566b2c5d21bc6571e4b8e7c59cb4c9e23f1ecb57ada9e900e4aa308874c2d12d34be74c332bbce\r\nMD = 7257f5bfa7d33d1cf5f4550d0cb78750e84c5b7d25027da6acec64bdf30879a0e5c97fe7c468e743aa5ec2bddb29d193\r\n\r\nLen = 816\r\nMsg = 3bceedf5df8fe699871decb7dd48203e2518fb0fce0f865f46adce5c133a921320bf40915456204869a3ceb5fca3ed40e0a41a64b8951f0fc580694cfc55bd1f5ce926b07e3e32ac6e055de9b961ce49c7ee41e06b024559b933a79518192e969855889c85d1\r\nMD = 60d7f8bd85fb7a13701db5aded2b7771ab5e476ec34f1fd4298978defbd2b31bb2979391559a164b3ed28f6a39031a11\r\n\r\nLen = 824\r\nMsg = 6c36147652e71b560becbca1e7656c81b4f70bece26321d5e55e67a3db9d89e26f2f2a38fd0f289bf7fa22c2877e38d9755412794cef24d7b855303c332e0cb5e01aa50bb74844f5e345108d6811d5010978038b699ffaa370de8473f0cda38b89a28ed6cabaf6\r\nMD = b1319192df11faa00d3c4b068becc8f1ba3b00e0d1ff1f93c11a3663522fdb92ab3cca389634687c632e0a4b5a26ce92\r\n\r\nLen = 832\r\nMsg = 92c41d34bd249c182ad4e18e3b856770766f1757209675020d4c1cf7b6f7686c8c1472678c7c412514e63eb9f5aee9f5c9d5cb8d8748ab7a5465059d9cbbb8a56211ff32d4aaa23a23c86ead916fe254cc6b2bff7a9553df1551b531f95bb41cbbc4acddbd372921\r\nMD = 71307eec1355f73e5b726ed9efa1129086af81364e30a291f684dfade693cc4bc3d6ffcb7f3b4012a21976ff9edcab61\r\n\r\n", }; -static const size_t kLen80 = 16631; +static const size_t kLen81 = 16631; -static const char *kData80[] = { +static const char *kData81[] = { "Len = 0\r\nMsg = 00\r\nMD = a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26\r\n\r\nLen = 8\r\nMsg = e5\r\nMD = 150240baf95fb36f8ccb87a19a41767e7aed95125075a2b2dbba6e565e1ce8575f2b042b62e29a04e9440314a821c6224182964d8b557b16a492b3806f4c39c1\r\n\r\nLen = 16\r\nMsg = ef26\r\nMD = 809b4124d2b174731db14585c253194c8619a68294c8c48947879316fef249b1575da81ab72aad8fae08d24ece75ca1be46d0634143705d79d2f5177856a0437\r\n\r\nLen = 24\r\nMsg = 37d518\r\nMD = 4aa96b1547e6402c0eee781acaa660797efe26ec00b4f2e0aec4a6d10688dd64cbd7f12b3b6c7f802e2096c041208b9289aec380d1a748fdfcd4128553d781e3\r\n\r\nLen = 32\r\nMsg = fc7b8cda\r\nMD = 58a5422d6b15eb1f223ebe4f4a5281bc6824d1599d979f4c6fe45695ca89014260b859a2d46ebf75f51ff204927932c79270dd7aef975657bb48fe09d8ea008e\r\n\r\nLen = 40\r\nMsg = 4775c86b1c\r\nMD = ce96da8bcd6bc9d81419f0dd3308e3ef541bc7b030eee1339cf8b3c4e8420cd303180f8da77037c8c1ae375cab81ee475710923b9519adbddedb36db0c199f70\r\n\r\nLen = 48\r\nMsg = 71a986d2f662\r\nMD = def6aac2b08c98d56a0501a8cb93f5b47d6322daf99e03255457c303326395f765576930f8571d89c01e727cc79c2d4497f85c45691b554e20da810c2bc865ef\r\n\r\nLen = 56\r\nMsg = ec83d707a1414a\r\nMD = 84fd3775bac5b87e550d03ec6fe4905cc60e851a4c33a61858d4e7d8a34d471f05008b9a1d63044445df5a9fce958cb012a6ac778ecf45104b0fcb979aa4692d\r\n\r\nLen = 64\r\nMsg = af53fa3ff8a3cfb2\r\nMD = 03c2ac02de1765497a0a6af466fb64758e3283ed83d02c0edb3904fd3cf296442e790018d4bf4ce55bc869cebb4aa1a799afc9d987e776fef5dfe6628e24de97\r\n\r\nLen = 72\r\nMsg = 3d6093966950abd846\r\nMD = 53e30da8b74ae76abf1f65761653ebfbe87882e9ea0ea564addd7cfd5a6524578ad6be014d7799799ef5e15c679582b791159add823b95c91e26de62dcb74cfa\r\n\r\nLen = 80\r\nMsg = 1ca984dcc913344370cf\r\nMD = 6915ea0eeffb99b9b246a0e34daf3947852684c3d618260119a22835659e4f23d4eb66a15d0affb8e93771578f5e8f25b7a5f2a55f511fb8b96325ba2cd14816\r\n\r\nLen = 88\r\nMsg = fc7b8cdadebe48588f6851\r\nMD = c8439bb1285120b3c43631a00a3b5ac0badb4113586a3dd4f7c66c5d81012f7412617b169fa6d70f8e0a19e5e258e99a0ed2dcfa774c864c62a010e9b90ca00d\r\n\r\nLen = 96\r\nMsg = ecb907adfb85f9154a3c23e8\r\nMD = 94ae34fed2ef51a383fb853296e4b797e48e00cad27f094d2f411c400c4960ca4c610bf3dc40e94ecfd0c7a18e418877e182ca3ae5ca5136e2856a5531710f48\r\n\r\nLen = 104\r\nMsg = d91a9c324ece84b072d0753618\r\nMD = fb1f06c4d1c0d066bdd850ab1a78b83296eba0ca423bb174d74283f46628e6095539214adfd82b462e8e9204a397a83c6842b721a32e8bb030927a568f3c29e6\r\n\r\nLen = 112\r\nMsg = c61a9188812ae73994bc0d6d4021\r\nMD = 069e6ab1675fed8d44105f3b62bbf5b8ff7ae804098986879b11e0d7d9b1b4cb7bc47aeb74201f509ddc92e5633abd2cbe0ddca2480e9908afa632c8c8d5af2a\r\n\r\nLen = 120\r\nMsg = a6e7b218449840d134b566290dc896\r\nMD = 3605a21ce00b289022193b70b535e6626f324739542978f5b307194fcf0a5988f542c0838a0443bb9bb8ff922a6a177fdbd12cf805f3ed809c48e9769c8bbd91\r\n\r\nLen = 128\r\nMsg = 054095ba531eec22113cc345e83795c7\r\nMD = f3adf5ccf2830cd621958021ef998252f2b6bc4c135096839586d5064a2978154ea076c600a97364bce0e9aab43b7f1f2da93537089de950557674ae6251ca4d\r\n\r\nLen = 136\r\nMsg = 5b1ec1c4e920f5b995b6a788b6e989ac29\r\nMD = 135eea17ca4785482c19cd668b8dd2913216903311fa21f6b670b9b573264f8875b5d3c071d92d63556549e523b2af1f1a508bd1f105d29a436f455cd2ca1604\r\n\r\nLen = 144\r\nMsg = 133b497b00932773a53ba9bf8e61d59f05f4\r\nMD = 783964a1cf41d6d210a8d7c81ce6970aa62c9053cb89e15f88053957ecf607f42af08804e76f2fbdbb31809c9eefc60e233d6624367a3b9c30f8ee5f65be56ac\r\n\r\nLen = 152\r\nMsg = 88c050ea6b66b01256bda299f399398e1e3162\r\nMD = 6bf7fc8e9014f35c4bde6a2c7ce1965d9c1793f25c141021cc1c697d111363b3854953c2b4009df41878b5558e78a9a9092c22b8baa0ed6baca005455c6cca70\r\n\r\nLen = 160\r\nMsg = d7d5363350709e96939e6b68b3bbdef6999ac8d9\r\nMD = 7a46beca553fffa8021b0989f40a6563a8afb641e8133090bc034ab6763e96d7b7a0da4de3abd5a67d8085f7c28b21a24aefb359c37fac61d3a5374b4b1fb6bb\r\n\r\nLen = 168\r\nMsg = 54746a7ba28b5f263d2496bd0080d83520cd2dc503\r\nMD = d77048df60e20d03d336bfa634bc9931c2d3c1e1065d3a07f14ae01a085fe7e7fe6a89dc4c7880f1038938aa8fcd99d2a782d1bbe5eec790858173c7830c87a2\r\n\r\nLen = 176\r\nMsg = 73df7885830633fc66c9eb16940b017e9c6f9f871978\r\nMD = 0edee1ea019a5c004fd8ae9dc8c2dd38d4331abe2968e1e9e0c128d2506db981a307c0f19bc2e62487a92992af77588d3ab7854fe1b68302f796b9dcd9f336df\r\n\r\nLen = 184\r\nMsg = 14cb35fa933e49b0d0a400183cbbea099c44995fae1163\r\nMD = af2ef4b0c01e381b4c382208b66ad95d759ec91e386e953984aa5f07774632d53b581eba32ed1d369c46b0a57fee64a02a0e5107c22f14f2227b1d11424becb5\r\n\r\nLen = 192\r\nMsg = 75a06869ca2a6ea857e26e78bb78a139a671ccb098d8205a\r\nMD = 88be1934385522ae1d739666f395f1d7f99978d62883a261adf5d618d012dfab5224575634446876b86b3e5f7609d397d338a784b4311027b1024ddfd4995a0a\r\n\r\nLen = 200\r\nMsg = b413ab364dd410573b53f4c2f28982ca07061726e5d999f3c2\r\nMD = 289e889b25f9f38facfccf3bdbceea06ef3baad6e9612b7232cd553f4884a7a642f6583a1a589d4dcb2dc771f1ff6d711b85f731145a89b100680f9a55dcbb3f\r\n\r\nLen = 208\r\nMsg = d7f9053984213ebabc842fd8ce483609a9af5dc140ecdbe63336\r\nMD = f167cb30e4bacbdc5ed53bc615f8c9ea19ad4f6bd85ca0ff5fb1f1cbe5b576bda49276aa5814291a7e320f1d687b16ba8d7daab2b3d7e9af3cd9f84a1e9979a1\r\n\r\nLen = 216\r\nMsg = 9b7f9d11be48e786a11a472ab2344c57adf62f7c1d4e6d282074b6\r\nMD = 82fa525d5efaa3cce39bffef8eee01afb52067097f8965cde71703345322645eae59dbaebed0805693104dfb0c5811c5828da9a75d812e5562615248c03ff880\r\n\r\nLen = 224\r\nMsg = 115784b1fccfabca457c4e27a24a7832280b7e7d6a123ffce5fdab72\r\nMD = ec12c4ed5ae84808883c5351003f7e26e1eaf509c866b357f97472e5e19c84f99f16dbbb8bfff060d6c0fe0ca9c34a210c909b05f6a81f441627ce8e666f6dc7\r\n\r\nLen = 232\r\nMsg = c3b1ad16b2877def8d080477d8b59152fe5e84f3f3380d55182f36eb5f\r\nMD = 4b9144edeeec28fd52ba4176a78e080e57782d2329b67d8ac8780bb6e8c2057583172af1d068922feaaff759be5a6ea548f5db51f4c34dfe7236ca09a67921c7\r\n\r\nLen = 240\r\nMsg = 4c66ca7a01129eaca1d99a08dd7226a5824b840d06d0059c60e97d291dc4\r\nMD = 567c46f2f636223bd5ed3dc98c3f7a739b42898e70886f132eac43c2a6fadabe0dd9f1b6bc4a9365e5232295ac1ac34701b0fb181d2f7f07a79d033dd426d5a2\r\n\r\nLen = 248\r\nMsg = 481041c2f56662316ee85a10b98e103c8d48804f6f9502cf1b51cfa525cec1\r\nMD = 46f0058abe678195b576df5c7eb8d739468cad1908f7953ea39c93fa1d96845c38a2934d23804864a8368dae38191d983053ccd045a9ab87ef2619e9dd50c8c1\r\n\r\nLen = 256\r\nMsg = 7c1688217b313278b9eae8edcf8aa4271614296d0c1e8916f9e0e940d28b88c5\r\nMD = 627ba4de74d05bb6df8991112e4d373bfced37acde1304e0f664f29fa126cb497c8a1b717b9929120883ec8898968e4649013b760a2180a9dc0fc9b27f5b7f3b\r\n\r\nLen = 264\r\nMsg = 785f6513fcd92b674c450e85da22257b8e85bfa65e5d9b1b1ffc5c469ad337d1e3\r\nMD = 5c11d6e4c5c5f76d26876c5976b6f555c255c785b2f28b6700ca2d8b3b3fa585636239277773330f4cf8c5d5203bcc091b8d47e7743bbc0b5a2c54444ee2acce\r\n\r\nLen = 272\r\nMsg = 34f4468e2d567b1e326c0942970efa32c5ca2e95d42c98eb5d3cab2889490ea16ee5\r\nMD = 49adfa335e183c94b3160154d6698e318c8b5dd100b0227e3e34cabea1fe0f745326220f64263961349996bbe1aae9054de6406e8b350408ab0b9f656bb8daf7\r\n\r\nLen = 280\r\nMsg = 53a0121c8993b6f6eec921d2445035dd90654add1298c6727a2aed9b59bafb7dd62070\r\nMD = 918b4d92e1fcb65a4c1fa0bd75c562ac9d83186bb2fbfae5c4784de31a14654546e107df0e79076b8687bb3841c83ba9181f9956cd43428ba72f603881b33a71\r\n\r\nLen = 288\r\nMsg = d30fa4b40c9f84ac9bcbb535e86989ec6d1bec9b1b22e9b0f97370ed0f0d566082899d96\r\nMD = 39f104c1da4af314d6bceb34eca1dfe4e67484519eb76ba38e4701e113e6cbc0200df86e4439d674b0f42c72233360478ba5244384d28e388c87aaa817007c69\r\n\r\nLen = 296\r\nMsg = f34d100269aee3ead156895e8644d4749464d5921d6157dffcbbadf7a719aee35ae0fd4872\r\nMD = 565a1dd9d49f8ddefb79a3c7a209f53f0bc9f5396269b1ce2a2b283a3cb45ee3ae652e4ca10b26ced7e5236227006c94a37553db1b6fe5c0c2eded756c896bb1\r\n\r\nLen = 304\r\nMsg = 12529769fe5191d3fce860f434ab1130ce389d340fca232cc50b7536e62ad617742e022ea38a\r\nMD = daee10e815fff0f0985d208886e22f9bf20a3643eb9a29fda469b6a7dcd54b5213c851d6f19338d63688fe1f02936c5dae1b7c6d5906a13a9eeb934400b6fe8c\r\n\r\nLen = 312\r\nMsg = b2e3a0eb36bf16afb618bfd42a56789179147effecc684d8e39f037ec7b2d23f3f57f6d7a7d0bb\r\nMD = 04029d6d9e8e394afa387f1d03ab6b8a0a6cbab4b6b3c86ef62f7142ab3c108388d42cb87258b9e6d36e5814d8a662657cf717b35a5708365e8ec0396ec5546b\r\n\r\nLen = 320\r\nMsg = 25c4a5f4a07f2b81e0533313664bf615c73257e6b2930e752fe5050e25ff02731fd2872f4f56f727\r\nMD = ec2d38e5bb5d7b18438d5f2029c86d05a03510db0e66aa299c28635abd0988c58be203f04b7e0cc25451d18f2341cd46f8705d46c2066dafab30d90d63bf3d2c\r\n\r\nLen = 328\r\nMsg = 134bb8e7ea5ff9edb69e8f6bbd498eb4537580b7fba7ad31d0a09921237acd7d66f4da23480b9c1222\r\nMD = 8f966aef96831a1499d63560b2578021ad970bf7557b8bf8078b3e12cefab12", "2fe71b1212dc704f7094a40b36b71d3ad7ce2d30f72c1baa4d4bbccb3251198ac\r\n\r\nLen = 336\r\nMsg = f793256f039fad11af24cee4d223cd2a771598289995ab802b5930ba5c666a24188453dcd2f0842b8152\r\nMD = 22c3d9712535153a3e206b1033929c0fd9d937c39ba13cf1a6544dfbd68ebc94867b15fda3f1d30b00bf47f2c4bf41dabdeaa5c397dae901c57db9cd77ddbcc0\r\n\r\nLen = 344\r\nMsg = 23cc7f9052d5e22e6712fab88e8dfaa928b6e015ca589c3b89cb745b756ca7c7634a503bf0228e71c28ee2\r\nMD = 6ecf3ad6064218ee101a555d20fab6cbeb6b145b4eeb9c8c971fc7ce05581a34b3c52179590e8a134be2e88c7e549875f4ff89b96374c6995960de3a5098cced\r\n\r\nLen = 352\r\nMsg = a60b7b3df15b3f1b19db15d480388b0f3b00837369aa2cc7c3d7315775d7309a2d6f6d1371d9c875350dec0a\r\nMD = 8d651605c6b32bf022ea06ce6306b2ca6b5ba2781af87ca2375860315c83ad88743030d148ed8d73194c461ec1e84c045fc914705747614c04c8865b51da94f7\r\n\r\nLen = 360\r\nMsg = 2745dd2f1b215ea509a912e5761cccc4f19fa93ba38445c528cb2f099de99ab9fac955baa211fd8539a671cdb6\r\nMD = 4af918eb676ce278c730212ef79d818773a76a43c74d643f238e9b61acaf4030c617c4d6b3b7514c59b3e5e95d82e1e1e35443e851718b13b63e70b123d1b72c\r\n\r\nLen = 368\r\nMsg = 88adee4b46d2a109c36fcfb660f17f48062f7a74679fb07e86cad84f79fd57c86d426356ec8e68c65b3caa5bc7ba\r\nMD = 6257acb9f589c919c93c0adc4e907fe011bef6018fbb18e618ba6fcc8cbc5e40641be589e86dbb0cf7d7d6bf33b98d8458cce0af7857f5a7c7647cf350e25af0\r\n\r\nLen = 376\r\nMsg = 7d40f2dc4af3cfa12b00d64940dc32a22d66d81cb628be2b8dda47ed6728020d55b695e75260f4ec18c6d74839086a\r\nMD = 5c46c84a0a02d898ed5885ce99c47c77afd29ae015d027f2485d630f9b41d00b7c1f1faf6ce57a08b604b35021f7f79600381994b731bd8e6a5b010aeb90e1eb\r\n\r\nLen = 384\r\nMsg = 3689d8836af0dc132f85b212eb670b41ecf9d4aba141092a0a8eca2e6d5eb0ba4b7e61af9273624d14192df7388a8436\r\nMD = 17355e61d66e40f750d0a9a8e8a88cd6f9bf6070b7efa76442698740b4487ea6c644d1654ef16a265204e03084a14cafdccf8ff298cd54c0b4009967b6dd47cc\r\n\r\nLen = 392\r\nMsg = 58ff23dee2298c2ca7146227789c1d4093551047192d862fc34c1112d13f1f744456cecc4d4a02410523b4b15e598df75a\r\nMD = aca89aa547c46173b4b2a380ba980da6f9ac084f46ac9ddea5e4164aeef31a9955b814a45aec1d8ce340bd37680952c5d68226dda1cac2677f73c9fd9174fd13\r\n\r\nLen = 400\r\nMsg = 67f3f23df3bd8ebeb0096452fe4775fd9cc71fbb6e72fdcc7eb8094f42c903121d0817a927bcbabd3109d5a70420253deab2\r\nMD = f4207cc565f266a245f29bf20b95b5d9a83e1bb68ad988edc91faa25f25286c8398bac7dd6628259bff98f28360f263dfc54c4228bc437c5691de1219b758d9f\r\n\r\nLen = 408\r\nMsg = a225070c2cb122c3354c74a254fc7b84061cba33005cab88c409fbd3738ff67ce23c41ebef46c7a61610f5b93fa92a5bda9569\r\nMD = e815a9a4e4887be014635e97958341e0519314b3a3289e1835121b153b462272b0aca418be96d60e5ab355d3eb463697c0191eb522b60b8463d89f4c3f1bf142\r\n\r\nLen = 416\r\nMsg = 6aa0886777e99c9acd5f1db6e12bda59a807f92411ae99c9d490b5656acb4b115c57beb3c1807a1b029ad64be1f03e15bafd91ec\r\nMD = 241f2ebaf7ad09e173b184244e69acd7ebc94774d0fa3902cbf267d4806063b044131bcf4af4cf180eb7bd4e7960ce5fe3dc6aebfc6b90eec461f414f79a67d9\r\n\r\nLen = 424\r\nMsg = 6a06092a3cd221ae86b286b31f326248270472c5ea510cb9064d6024d10efee7f59e98785d4f09da554e97cdec7b75429d788c112f\r\nMD = d14a1a47f2bef9e0d4b3e90a6be9ab5893e1110b12db38d33ffb9a61e1661aecc4ea100839cfee58a1c5aff72915c14170dd99e13f71b0a5fc1985bf43415cb0\r\n\r\nLen = 432\r\nMsg = dfc3fa61f7fffc7c88ed90e51dfc39a4f288b50d58ac83385b58a3b2a3a39d729862c40fcaf9bc308f713a43eecb0b72bb9458d204ba\r\nMD = 947bc873dc41df195f8045deb6ea1b840f633917e79c70a88d38b8862197dc2ab0cc6314e974fb5ba7e1703b22b1309e37bd430879056bdc166573075a9c5e04\r\n\r\nLen = 440\r\nMsg = 52958b1ff0049efa5d050ab381ec99732e554dcd03725da991a37a80bd4756cf65d367c54721e93f1e0a22f70d36e9f841336956d3c523\r\nMD = 9cc5aad0f529f4bac491d733537b69c8ec700fe38ab423d815e0927c8657f9cb8f4207762d816ab697580122066bc2b68f4177335d0a6e9081540779e572c41f\r\n\r\nLen = 448\r\nMsg = 302fa84fdaa82081b1192b847b81ddea10a9f05a0f04138fd1da84a39ba5e18e18bc3cea062e6df92ff1ace89b3c5f55043130108abf631e\r\nMD = 8c8eaae9a445643a37df34cfa6a7f09deccab2a222c421d2fc574bbc5641e504354391e81eb5130280b1226812556d474e951bb78dbdd9b77d19f647e2e7d7be\r\n\r\nLen = 456\r\nMsg = b82f500d6bc2dddcdc162d46cbfaa5ae64025d5c1cd72472dcd2c42161c9871ce329f94df445f0c8aceecafd0344f6317ecbb62f0ec2223a35\r\nMD = 55c69d7accd179d5d9fcc522f794e7af5f0eec7198ffa39f80fb55b866c0857ff3e7aeef33e130d9c74ef90606ca821d20b7608b12e6e561f9e6c7122ace3db0\r\n\r\nLen = 464\r\nMsg = 86da9107ca3e16a2b58950e656a15c085b88033e79313e2c0f92f99f06fa187efba5b8fea08eb7145f8476304180dd280f36a072b7eac197f085\r\nMD = 0d3b1a0459b4eca801e0737ff9ea4a12b9a483a73a8a92742a93c297b7149326bd92c1643c8177c8924482ab3bbd916c417580cc75d3d3ae096de531bc5dc355\r\n\r\nLen = 472\r\nMsg = 141a6eafe157053e780ac7a57b97990616ce1759ed132cb453bcdfcabdbb70b3767da4eb94125d9c2a8d6d20bfaeacc1ffbe49c4b1bb5da7e9b5c6\r\nMD = bdbdd5b94cdc89466e7670c63ba6a55b58294e93b351261a5457bf5a40f1b5b2e0acc7fceb1bfb4c8872777eeeaff7927fd3635ca18c996d870bf86b12b89ba5\r\n\r\nLen = 480\r\nMsg = 6e0c65ee0943e34d9bbd27a8547690f2291f5a86d713c2be258e6ac16919fe9c4d491895d3a961bb97f5fac255891a0eaa18f80e1fa1ebcb639fcfc1\r\nMD = 39ebb992b8d39daae973e3813a50e9e79a67d8458a6f17f97a6dd30dd7d11d95701a11129ffeaf7d45781b21cac0c4c034e389d7590df5beeb9805072d0183b9\r\n\r\nLen = 488\r\nMsg = 57780b1c79e67fc3beaabead4a67a8cc98b83fa7647eae50c8798b96a516597b448851e93d1a62a098c4767333fcf7b463ce91edde2f3ad0d98f70716d\r\nMD = 3ef36c3effad6eb5ad2d0a67780f80d1b90efcb74db20410c2261a3ab0f784429df874814748dc1b6efaab3d06dd0a41ba54fce59b67d45838eaa4aa1fadfa0f\r\n\r\nLen = 496\r\nMsg = bcc9849da4091d0edfe908e7c3386b0cadadb2859829c9dfee3d8ecf9dec86196eb2ceb093c5551f7e9a4927faabcfaa7478f7c899cbef4727417738fc06\r\nMD = 1fcd8a2c7b4fd98fcdc5fa665bab49bde3f9f556aa66b3646638f5a2d3806192f8a33145d8d0c535c85adff3cc0ea3c2715b33cec9f8886e9f4377b3632e9055\r\n\r\nLen = 504\r\nMsg = 05a32829642ed4808d6554d16b9b8023353ce65a935d126602970dba791623004dede90b52ac7f0d4335130a63cba68c656c139989614de20913e83db320db\r\nMD = 49d8747bb53ddde6d1485965208670d1130bf35619d7506a2f2040d1129fcf0320207e5b36fea083e84ffc98755e691ad8bd5dc66f8972cb9857389344e11aad\r\n\r\nLen = 512\r\nMsg = 56ac4f6845a451dac3e8886f97f7024b64b1b1e9c5181c059b5755b9a6042be653a2a0d5d56a9e1e774be5c9312f48b4798019345beae2ffcc63554a3c69862e\r\nMD = 5fde5c57a31febb98061f27e4506fa5c245506336ee90d595c91d791a5975c712b3ab9b3b5868f941db0aeb4c6d2837c4447442f8402e0e150a9dc0ef178dca8\r\n\r\nLen = 520\r\nMsg = 8a229f8d0294fe90d4cc8c875460d5d623f93287f905a999a2ab0f9a47046f78ef88b09445c671189c59388b3017cca2af8bdf59f8a6f04322b1701ec08624ab63\r\nMD = 16b0fd239cc632842c443e1b92d286dd519cfc616a41f2456dd5cddebd10703c3e9cb669004b7f169bb4f99f350ec96904b0e8dd4de8e6be9953dc892c65099f\r\n\r\nLen = 528\r\nMsg = 87d6aa9979025b2437ea8159ea1d3e5d6f17f0a5b913b56970212f56de7884840c0da9a72865e1892aa780b8b8f5f57b46fc070b81ca5f00eee0470ace89b1e1466a\r\nMD = d816acf1797decfe34f4cc49e52aa505cc59bd17fe69dc9543fad82e9cf96298183021f704054d3d06adde2bf54e82a090a57b239e88daa04cb76c4fc9127843\r\n\r\nLen = 536\r\nMsg = 0823616ab87e4904308628c2226e721bb4169b7d34e8744a0700b721e38fe05e3f813fe4075d4c1a936d3a33da20cfb3e3ac722e7df7865330b8f62a73d9119a1f2199\r\nMD = e1da6be4403a4fd784c59be4e71c658a78bb8c5d7d571c5e816fbb3e218a4162f62de1c285f3779781cb5506e29c94e1b7c7d65af2aa71ea5c96d9585b5e45d5\r\n\r\nLen = 544\r\nMsg = 7d2d913c2460c09898b20366ae34775b1564f10edea49c073cebe41989bb93f38a533af1f425d3382f8aa40159b567358ee5a73b67df6d0dc09c1c92bf3f9a28124ab07f\r\nMD = 3aa1e19a52b86cf414d977768bb535b7e5817117d436b4425ec8d775e8cb0e0b538072213884c7ff1bb9ca9984c82d65cb0115cc07332b0ea903e3b38650e88e\r\n\r\nLen = 552\r\nMsg = fca5f68fd2d3a52187b349a8d2726b608fccea7db42e906b8718e85a0ec654fac70f5a839a8d3ff90cfed7aeb5ea9b08f487fc84e1d9f7fb831dea254468a65ba18cc5a126\r\nMD = 2c74f846ecc722ea4a1eb1162e231b6903291fffa95dd5e1d17dbc2c2be7dfe549a80dd34487d714130ddc9924aed904ad55f49c91c80ceb05c0c034dae0a0a4\r\n\r\nLen = 560\r\nMsg = 881ff70ca34a3e1a0e864fd2615ca2a0e63def254e688c37a20ef6297cb3ae4c76d746b5e3d6bb41bd0d05d7df3eeded74351f4eb0ac801abe6dc10ef9b635055ee1dfbf4144\r\nMD = 9a10a7ce23c0497fe8783927f833232ae664f1e1b91302266b6ace25a9c253d1ecab1aaaa62f865469480b2145ed0e489ae3f3f9f7e6da27492c81b07e606fb6\r\n\r\nLen = 568\r\nMsg = b0de0430c200d74bf41ea0c92f8f28e11b68006a884e0d4b0d884533ee58b38a438cc1a75750b6434f467e2d0cd9aa4052ceb793291b93ef83fd5d8620456ce1aff2941b3605a4\r\nMD = 9e9e469ca9226cd012f5c9cc39c96adc22f420030fcee305a0ed27974e3c802701603dac873ae4476e9c3d57e55524483fc01adaef87daa9e304078c59802757\r\n\r\nLen = 576\r\nMsg = 0ce9f8c3a990c268f34efd9befdb0f7c4ef8", "466cfdb01171f8de70dc5fefa92acbe93d29e2ac1a5c2979129f1ab08c0e77de7924ddf68a209cdfa0adc62f85c18637d9c6b33f4ff8\r\nMD = b018a20fcf831dde290e4fb18c56342efe138472cbe142da6b77eea4fce52588c04c808eb32912faa345245a850346faec46c3a16d39bd2e1ddb1816bc57d2da\r\n\r\n", }; -static const size_t kLen81 = 7127; +static const size_t kLen82 = 7127; -static const char *kData81[] = { +static const char *kData82[] = { "HMAC = MD5\n# Note: The empty key results in passing NULL to HMAC_Init_ex, so this tests\n# that HMAC_CTX and HMAC treat NULL as the empty key initially.\nKey =\nInput = \"More text test vectors to stuff up EBCDIC machines :-)\"\nOutput = e9139d1e6ee064ef8cf514fc7dc83e86\n\n# HMAC tests from RFC 2104\nHMAC = MD5\nKey = 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b\nInput = \"Hi There\"\nOutput = 9294727a3638bb1c13f48ef8158bfc9d\n\nHMAC = MD5\nKey = \"Jefe\"\nInput = \"what do ya want for nothing?\"\nOutput = 750c783e6ab0b503eaa86e310a5db738\n\nHMAC = MD5\nKey = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nInput = DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\nOutput = 56be34521d144c88dbb8c733f0e8b3f6\n\n# HMAC tests from NIST test data\n\nHMAC = SHA1\nInput = \"Sample message for keylen=blocklen\"\nKey = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\nOutput = 5FD596EE78D5553C8FF4E72D266DFD192366DA29\n\nHMAC = SHA1\nInput = \"Sample message for keylenblocklen, but the NIST test vectors have a misleading input.\nHMAC = SHA1\nInput = \"Sample message for keylen=blocklen\"\nKey = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F60616263\nOutput = 2D51B2F7750E410584662E38F133435F4C4FD42A\n\nHMAC = SHA224\nInput = \"Sample message for keylen=blocklen\"\nKey = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\nOutput = C7405E3AE058E8CD30B08B4140248581ED174CB34E1224BCC1EFC81B\n\nHMAC = SHA224\nInput = \"Sample message for keylenblocklen, but the NIST test vectors have a misleading input.\nHMAC = SHA224\nInput = \"Sample message for keylen=blocklen\"\nKey = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F60616263\nOutput = 91C52509E5AF8531601AE6230099D90BEF88AAEFB961F4080ABC014D\n\nHMAC = SHA256\nInput = \"Sample message for keylen=blocklen\"\nKey = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\nOutput = 8BB9A1DB9806F20DF7F77B82138C7914D174D59E13DC4D0169C9057B133E1D62\n\nHMAC = SHA256\nInput = \"Sample message for keylenblocklen, but the NIST test vectors have a misleading input.\nHMAC = SHA256\nInput = \"Sample message for keylen=blocklen\"\nKey = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F60616263\nOutput = BDCCB6C72DDEADB500AE768386CB38CC41C63DBB0878DDB9C7A38A431B78378D\n\nHMAC = SHA384\nInput = \"Sample message for keylen=blocklen\"\nKey = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\nOutput = 63C5DAA5E651847CA897C95814AB830BEDEDC7D25E83EEF9195CD45857A37F448947858F5AF50CC2B1B730DDF29671A9\n\nHMAC = SHA384\nInput = \"Sample message for keylenblocklen, but the NIST test vectors have a misleading input.\nHMAC = SHA384\nInput = \"Sample message for keylen=blocklen\"\nKey = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7\nOutput = 5B664436DF69B0CA22551231A3F0A3D5B4F97991713CFA84BFF4D0792EFF96C27DCCBBB6F79B65D548B40E8564CEF594\n\nHMAC = SHA512\nInput = \"Sample message for keylen=blocklen\"\nKey = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\nOutput = FC25E240658CA785B7A811A8D3F7B4CA48CFA26A8A366BF2CD1F836B05FCB024BD36853081811D6CEA4216EBAD79DA1CFCB95EA4586B8A0CE356596A55FB1347\n\nHMAC = SHA512\nInput = \"Sample message for keylenblocklen, but the NIST test vectors have a misleading input.\nHMAC = SHA512\nInput = \"Sample message for keylen=blocklen\"\nKey = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7\nOutput = D93EC8D2DE1AD2A9957CB9B83F14E76AD6B5E0CCE285079A127D3B14BCCB7AA7286D4AC0D4CE64215F2BC9E6870B33D97438BE4AAA20CDA5C5A912B48B8E27F3\n\n# Additional HMAC tests from OpenSSL.\nHMAC = SHA1\nInput = \"My test data\"\nKey =\nOutput = 61afdecb95429ef494d61fdee15990cabf0826fc\n\nHMAC = SHA256\nInput = \"My test data\"\nKey =\nOutput = 2274b195d90ce8e03406f4b526a47e0787a88a65479938f1a5baa3ce0f079776\n\nHMAC = SHA256\nInput = \"My test data\"\nKey = \"123456\"\nOutput = bab53058ae861a7f191abe2d0145cbb123776a6369ee3f9d79ce455667e411dd\n\nHMAC = SHA1\nInput = \"My test data\"\nKey = \"12345\"\nOutput = 7dbe8c764c068e3bcd6e6b0fbcd5e6fc197b15bb\n\nHMAC = SHA512/224\nInput = \"My test data\"\nKey =\nOutput = fc993d20088ed6028478b8356aa818b82c6131f04292f97d86e77620\n\nHMAC = SHA512/224\nInput = \"My test data\"\nKey = \"123456\"\nOutput = 49d08109c1766ce6386d7b8bdaf5d014667083677096b82f56a73531\n\nHMAC = SHA512/256\nInput = \"My test data\"\nKey =\nOutput = 297753ca6b09b11dcfa97a0e9dcdc8c2c3eaac85a2c4bebe395b4630bd436aac\n\nHMAC = SHA512/256\nInput = \"My test data\"\nKey = \"123456\"\nOutput = 2ed564c398a4fab30a1c4e071fd0f5b3c8a548d2e75ec3237ca5334071a63f40\n", }; -static const size_t kLen82 = 317573; +static const size_t kLen83 = 317573; -static const char *kData82[] = { +static const char *kData83[] = { "mode = 0\nkdf_id = 1\naead_id = 1\ninfo = 4f6465206f6e2061204772656369616e2055726e\nskRm = 4612c550263fc8ad58375df3f557aac531d26850903e55a9f23f21d8534e8ac8\nskEm = 52c4a758a802cd8b936eceea314432798d5baf2d7e9235dc084ab1b9cfa2f736\npkRm = 3948cfe0ad1ddb695d780e59077195da6c56506b027329794ab02bca80815c4d\npkEm = 37fda3567bdbd628e88668c3c8d7e97d1d1253b6d4ea6d44c150f741f1bf4431\n# encryptions[0]\naad = 436f756e742d30\nct = f938558b5d72f1a23810b4be2ab4f84331acc02fc97babc53a52ae8218a355a96d8770ac83d07bea87e13c512a\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[1]\naad = 436f756e742d31\nct = af2d7e9ac9ae7e270f46ba1f975be53c09f8d875bdc8535458c2494e8a6eab251c03d0c22a56b8ca42c2063b84\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[2]\naad = 436f756e742d32\nct = 498dfcabd92e8acedc281e85af1cb4e3e31c7dc394a1ca20e173cb72516491588d96a19ad4a683518973dcc180\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[3]\naad = 436f756e742d33\nct = 6b0f4cd351730cd25993d8ad0f11bff1ef2c3a957cb4d8694bb06c60a2937385da1b47a11595dd7a9a28f76c26\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[4]\naad = 436f756e742d34\nct = 583bd32bc67a5994bb8ceaca813d369bca7b2a42408cddef5e22f880b631215a09fc0012bc69fccaa251c0246d\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[5]\naad = 436f756e742d35\nct = 23aff4f784452e70b6c2adc5c84237dae34a91246460f497b753822086fc8ae5fdd770f3c1637086e860535864\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[6]\naad = 436f756e742d36\nct = b101f7842383ab460f22dcf919e4bcc3f1004246db7b64a40e7add713838bda69c601c4287d351fc075de3f965\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[7]\naad = 436f756e742d37\nct = b46b92359b09f5b77efad33bd96c0068212a7652bb3db182c0e40cac71fdbae0ff213047384c969df46100c3ce\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[8]\naad = 436f756e742d38\nct = 49d450f5d0bdb3d8850cc9fe1ca5ffece5075280d3aea7b1a309d0ef2dbc71f7a3a4e32205e5c53a14ffbd7524\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[9]\naad = 436f756e742d39\nct = 2f8a3cbe444213a1fad01ad1b328e464f03edee81243bfdd5f1e67ca41ce14fbb0c00ae9a3f5c4dfe20e1a7bf9\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[10]\naad = 436f756e742d3130\nct = f5575c1560c23ba23ea1d919776cbe6e42829097d918dbff28583ecd2bcbbb7fb2a035ea1038eb435812e8bece\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[11]\naad = 436f756e742d3131\nct = 7809bff8c8f0122f1ac5f179443983ad0486ec3a3420353a6d91eae9ae3dd67f871c99a46054e04b96dd220fe2\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[12]\naad = 436f756e742d3132\nct = a5dadd95ac76b59aa9d2cfcace5c19eefa20ea4f9ae98f86bd1373fe19c930c2a9c31ee7fa7f96ff92885dfecf\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[13]\naad = 436f756e742d3133\nct = eecfbd7cc0ff49800c25b9dc9f0881893b275b7654c8560048a2a982663ced5860aeecde40e7e99c5512947ec5\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[14]\naad = 436f756e742d3134\nct = 9325ba3d4ae25b7494432993a1feec051f20d60afe19953c7f41463774b154be00e52fb29e25566a32358fd9d9\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[15]\naad = 436f756e742d3135\nct = cb93b418d2070cb290a01565c413fff6f206d70c7e85512c35d109486f8e28950b1951f8d420ff1c58464afbce\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[16]\naad = 436f756e742d3136\nct = 1d565b4c9b6fae2b7513a5a8ebb5285a8865734ce3f02cd7691449c60b1157c9a5b0d1c4b3ab8bf252a764a4f3\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[17]\naad = 436f756e742d3137\nct = a376dd08d1fcfc7d2fcc1bcb519cf9e10b6249fa9c02662e3d5f6cdda5e192034f19477a07f37adf6612c863f9\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[18]\naad = 436f756e742d3138\nct = a6d0fef032c38a97a76c95698270f779368cdefe837ebd39120bb867e34e3ff0e07112d48cf82624fb4996e5a6\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[19]\naad = 436f756e742d3139\nct = 75494cf44a66b3930ae98865028c415329c326da8d0370d404c5f36da228a08754e67584bd07aa3a4a625a751d\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[20]\naad = 436f756e742d3230\nct = 0f24fad490d9a581a635516006ad7ff4ffa196ceebd6509ba6e172aa1b59da60bd2b3fcc374f956672377c4b40\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[21]\naad = 436f756e742d3231\nct = b4f5b4147bbf66407d19fe5947c91d0b7eeb80dd3d97f8d10bd248126e92468dceeb8d75c0c4f90a5c9d04e538\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[22]\naad = 436f756e742d3232\nct = b95636af74f15ef84a35b7a15b5d674bf2732c95e24f5cba6621dae03087778cdbaa3ce526000c18471044ef2d\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[23]\naad = 436f756e742d3233\nct = 80893e132d80f878575a5823b5a0f53cefb909350faba8b2be46a700f254f8dc8b627f39287b5e7dff4685b5e6\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[24]\naad = 436f756e742d3234\nct = 3027f6ded51e5d1dc08055162c5ea4391ae78144a1bfcea76e78665e23b665351e5d294d785718b58bbf0cef20\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[25]\naad = 436f756e742d3235\nct = 115013b0e9571fe5adbd2e6c8f2fb342413b45fa8774112def20afd37c837657bee0561ce5958cc62bc996c0bb\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[26]\naad = 436f756e742d3236\nct = 8a261c7bf47ad9955f14ed7d23e3af4a3c49207fd3bb861714c9562e01df89f67f5b4c204a3f9981ab81c215fa\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[27]\naad = 436f756e742d3237\nct = 1c4813e184dc263c495b6944bab183585c24d3f68c719580a51e6e2bd78c219f9e01f7db082a3a41a33c19b4d0\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[28]\naad = 436f756e742d3238\nct = fa873313a5d313bae4724d007072e1294a066994efc2a68c28318f750806cb98c0b58c8eee565ce3d2bfcabccc\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[29]\naad = 436f756e742d3239\nct = a586d2e92499b32199a31a252fd5323c0b7483b0fe5568bbfd88d845d36396027f238b9a9a7a51a6921bd8786d\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[30]\naad = 436f756e742d3330\nct = f4edb9b76d8c3152bb52f8d58940bab09919f7d5b53d776c57d7b7decb0aeaf94f34ef0b7a5f1ee9ef0ee94b00\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[31]\naad = 436f756e742d3331\nct = ac143d5f263851dbfb7f6332664f7bdb8d944bb519e2f9bd1d01340400563847e24b78edb0f833b50102857f28\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[32]\naad = 436f756e742d3332\nct = 01b0bf550b7b39f6ba0a3f5bd39b8e35fe1721fa08b32ec7adcf7da3d8a605027b456a88da073077c567aa9c23\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[33]\naad = 436f756e742d3333\nct = 7712235314485e61455a897b7b7965c656a4cf0ed9bbb7f156983a24d4520bcdd5b65afaeededb3296ec3cc9d8\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[34]\naad = 436f756e742d3334\nct = b7b5beccc1a1672179065992d1d4de75bf435509e0fd1a3ee6a4ea865de64f7387e54850ec463b878cd7808087\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[35]\naad = 436f756e742d3335\nct = 1a6d8d50001d875e31f0c6a491359605369b18aad9e94bba37fc12de53a96e84bfd3bad47b98519b5de9936c10\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[36]\naad = 436f756e742d3336\nct = f58d2816634c7cd43a4dc5c904817a0fcef4ae72e75f38d5b7376e7397998be48e10691e105bf259c33a01d8c5\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[37]\naad = 436f756e742d3337\nct = 86edfe5fac0a7d0c91abd96b29be8617881c8dd60964628f93537e0d11f09bc4fa13abc4e57c1bc0df4f7b0600\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[38]\naad = 436f756e742d3338\nct = 922aa471310d038de267d919867fae99d54715563ae9f755ebd2ab48e9d45b8375fcf77e6ac8074f92d8b25546\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[3", "9]\naad = 436f756e742d3339\nct = 79897532bbdf8cbbf3a1fc4aafe1fe12011810d25981ac2c1930a575cf3fe32324385c2898f7720a8764de677c\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[40]\naad = 436f756e742d3430\nct = b8ba5849c031f8089eb724c65d5eecba4a02fb03f26c9e185a2cd76cd8a6de803338b22b8fe8799ad6ad8ed62c\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[41]\naad = 436f756e742d3431\nct = 0b64fb8a7eaf3be9e2d9e5e1ca87ffc34e812108303f6c983109acdb1a2b71ffcffd35e66ca16ebffcdde07db4\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[42]\naad = 436f756e742d3432\nct = cc83e8120748d0c2bf7a37a24265047817c54892231dfc105bc87c7e05704a1102e1b6cba77e59438eb8da18f0\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[43]\naad = 436f756e742d3433\nct = f2975c7f7ad4289936993a728334957160a716ec854d41df436a0f7ffd30134a3978d5161c86b3b72bfc667544\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[44]\naad = 436f756e742d3434\nct = 2901f92e3749d8d4827a69bbb002769ac17995f9dab380de0e8f9e082137dc30e289893d18a8f21834a7a5d54b\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[45]\naad = 436f756e742d3435\nct = d1816064467cc47210eb25cab7ddc47cfb1a9aa5a3421f461e6266fa85c6de96afd430ee8e0fb29febbe947338\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[46]\naad = 436f756e742d3436\nct = 007fedbbfb53b8bed063e3dd5d0d0faf3cdaa8638c68259cc68e601ceebc3fa0d7aabf8eef6f6e2d356e8adcf8\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[47]\naad = 436f756e742d3437\nct = 0451a985fd7ae7a22d7fb2e93f7fb4ad5bd8a49dc723b438feafc4650c02f3764668e728a95c89276dcdfc1ad5\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[48]\naad = 436f756e742d3438\nct = 999cb87e121a9adb7b6179b9a1f70434a9110ca25b72eea89c56481f83757e1b013ea0c3a17eb771e9ca641179\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[49]\naad = 436f756e742d3439\nct = f6f8c9ea5029d30937571b85a750e5ca372f437f02ded4e4ccebb8f9a69c1cbde753e4000f272268254b0ee05b\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[50]\naad = 436f756e742d3530\nct = 1497f44ec6d1396377a5f905fd779a4fc47779a5cc91f7471c52fa8d7e2355b779780919c762118b6d0ff4e197\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[51]\naad = 436f756e742d3531\nct = 302a216277bf30fd9907044192a2ed68c9f5bad7cc80f4a43b08d46199c21251eabf7f0a72349445d5553953b5\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[52]\naad = 436f756e742d3532\nct = 85fca2a350545edbdbc9dbae4ea0d53cf0c5c59e0c5ba3e0c78bc4191b83b775b7767a63175db8fa5d2b092ba9\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[53]\naad = 436f756e742d3533\nct = 54219f225567f98df7fa6c0843e08c382a352300c5f933b0eea585c97c83b8130f4fa006ea6f7d6c752f56f24d\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[54]\naad = 436f756e742d3534\nct = 1c63c110d2bd3382f2d01869e7cb0c9c3cefce54a80d4652cf8b4013538d9a517586587edb01bd4436f844c8e9\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[55]\naad = 436f756e742d3535\nct = 57150b1d36af3605fc66764ce07d5dafda5420d09c875a176945a43a1f718f1d868bea8b10ee8970bad900585a\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[56]\naad = 436f756e742d3536\nct = ae7431872eb110de13baf39a3cdc7aaa19f0dcd8e4a7a36590562f155600d421beed065b99bd5dafb60501aa84\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[57]\naad = 436f756e742d3537\nct = 9158e15fe9608e89913c13117fb78d61aef4ae6e4e1cf2e00214ac84ceb0da7ee0175e9a903a23d2d3be06e8da\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[58]\naad = 436f756e742d3538\nct = b1a6c9dffcc0ad109862cb1733e680bde703e726179f1df4dafbf832ac9b37a2cee9c997b522791ac1e166d175\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[59]\naad = 436f756e742d3539\nct = 8e12c961da22502ee54caf4ff7ef49a7197761a77ddba9f980077a0e7e5f025091e9762a79f4f6e06d793e6e8c\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[60]\naad = 436f756e742d3630\nct = a9662af8b1c5c322f54bf9016e1418595f267918cd6efef045bce86feb3a5b9fcae884dd21bbd44fe45543188f\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[61]\naad = 436f756e742d3631\nct = dedd1bae324ceb12428043686c4cde519e6f6e3b50977b6257a927f5cefea7c07fc2978f6aa3cc420e24a33ca6\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[62]\naad = 436f756e742d3632\nct = c20e3b06f604743449534e3f590b4398e8101098571b4971e07dba987869d5f75e30106efba025e31d543a333e\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[63]\naad = 436f756e742d3633\nct = aae857fa33d40cea2d5a7d7fc213013037709e86ed22d29bb7617dcb52c136a461d017d48d02006ff264cf8594\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[64]\naad = 436f756e742d3634\nct = 3404b8a603fafa37ce6377a2b65cdd6c53e566750ffe0e95d4f7243cba3d044507c6792400a91a551e03076299\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[65]\naad = 436f756e742d3635\nct = 4c2ed41a49485b292346afd28a798f2639f9078f9c5b0c318582e1cdf4cd84e723fd1b790f69828d4fb953ac1d\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[66]\naad = 436f756e742d3636\nct = 26fd94cefb27a210d6669802c7cd439ea940a83fbf290eb0b9b7d166d8a0d31bdd623e4d2c3aaec44db15e4bcf\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[67]\naad = 436f756e742d3637\nct = 0707c98968bfee0343e9fabc86fc6b3a6910a4d2272feb3654b6f6f1c19c3251bbe1349519e8b720eec2b027f2\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[68]\naad = 436f756e742d3638\nct = 27efcf37b480d38abb0e721e9c9e27c48c5c55f8d9298e2d532fd3bbdb94d9ae0bc93c9f30e23292d50ce9bcae\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[69]\naad = 436f756e742d3639\nct = 8c7a06799181970e5e37afc7ba7b9c363e46670ea907047ba1b2020600a9f19fd3b497551602d287a7ddd04da8\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[70]\naad = 436f756e742d3730\nct = 01ef6860434c054d0d1bf7325c9cbd4e929b0da00b1fb486321da6aa59428b3dbeaecc653ff1f0a8c4e81d1fad\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[71]\naad = 436f756e742d3731\nct = 5cb605f39231386b8d8566c1ccb7630475dbc2b9c98d63682e99102c63f8aa53e597a7ba0021d04d20c45ebf08\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[72]\naad = 436f756e742d3732\nct = 2f4be39a792de469e90417c537b00adb7dde3c5824126cb4d7173fce5f42ecf1d60e9ef94e7d46d2962aded25e\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[73]\naad = 436f756e742d3733\nct = 1ac5d5a0282b8feda589a0b23b47563beb031b985e7beb21a20e2fcf05e952ed2e6bf6a5728e78d1a0ac44b3ef\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[74]\naad = 436f756e742d3734\nct = a612cbfcde1f6cc45960ca6487a99603cef7c6048b244702ecee87bd9fb4918ee1d9907c3cb2cb94f98aecb38c\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[75]\naad = 436f756e742d3735\nct = a67d7a21299f8ae24fa49eac42136378b37430577e251b1a4e10c5d0536627eb552499dad55a02f31c423d4959\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[76]\naad = 436f756e742d3736\nct = 55e2a69619637bb660194b78e8abab23940be918de9c328d11fe8718fbf716d4b20aa5f5af03c04625ee1097e2\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[77]\naad = 436f756e742d3737\nct = 1e444851dbd27918d0b613584b57dba343db268fe3839e659400499c57e84dd07bdeb17241c0a63efaa5bff7eb\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[78]\naad = 436f756e742d3738\nct = 5076032b4803292150299121c39ca9dbf6f7e63a397140c3c735c9c1a7b7c903bb4f1181b913f4602e5298b06c\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[79]\naad = 436f756e742d3739\nct = a3dafa222c1984f1a739c5438f64b5bcfeb237b18143e3fea787c01de8a06d07d148d9c89856643b65c850423c\npt = 4265617574792069732074727", "574682c20747275746820626561757479\n# encryptions[80]\naad = 436f756e742d3830\nct = 86f3e8f09a8b6ffd31199a3a6589003158f7a264f74fdd90d9bbc1b5d1aa4d9832248f09499ed34332f37998ea\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[81]\naad = 436f756e742d3831\nct = 1ccda8e30aee17fe4420d55a6895316308b083beaa0bb4846044e842f70057f87813867a50ebf3c46a2a621e2d\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[82]\naad = 436f756e742d3832\nct = 9a8d9bef87933a6e6719f2d4b455898804d1f6b4f9b164d6782165ba190cf350c4513941d90bc1ef3fcff5f42f\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[83]\naad = 436f756e742d3833\nct = 72b9fb04b16ba1e4bf415508a10de5602dd220c70e2213698dde2093d976c14dd29d71f85165bc625764275a7a\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[84]\naad = 436f756e742d3834\nct = c1e4550971e20406c6a4df36d82916b7ff21a623980efcb08f1bf3555b8a46ec6709088403dfec93bccb28082d\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[85]\naad = 436f756e742d3835\nct = d1734abd432ad375c7d07575723e1f62db2222cc6587a763d75273a65be3f2114537c2a15286b232b4b755609f\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[86]\naad = 436f756e742d3836\nct = fdb23db80f5b3f4cf7ca8372300d64dc22df49047f7ac08f2c87d61e565014064b9389af0b1b8ab192062cc0fa\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[87]\naad = 436f756e742d3837\nct = 9f7c1ae175825557a6bd4831c69b5c1b230310c5c148300b5063cf8a694dd68875ab99d9655881cf048ebc0f8f\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[88]\naad = 436f756e742d3838\nct = fac0b84ca769e8127647616fe2c1bc9b82e6ea7e30dca140bb8d9f51c15c46a19a07a9a6b4c3ed2c8f861c1ab9\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[89]\naad = 436f756e742d3839\nct = f8132abfbe8ceb59eb95e81d3fa2edf29a4edbdd1484fac75d234a4e337bb44c7c746df46dd7fc291368c91b0c\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[90]\naad = 436f756e742d3930\nct = 4b6b3757d40d0aabfdb386ca7dc035aff0db22792c4ed143c6c8974418dfb3b06716a757e7d57559e9e5bce53b\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[91]\naad = 436f756e742d3931\nct = 7441092041f5daa0ccc3039c69b5b632bb940249b7f78570b603d07004d72de0f6fb99fa9c571981d795d84d9b\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[92]\naad = 436f756e742d3932\nct = aa32e2b8842f29b25f12ade4c13127c6fd35a54836ef41dbe60ef5c3a707940e5a965d1c3983aa2cafbb6b1953\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[93]\naad = 436f756e742d3933\nct = 19b5e18fed35df03ec9666383f175a0feeb992b793262a3931a39cea5952a9240957280e763756e8e42bbb3282\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[94]\naad = 436f756e742d3934\nct = 9e0e04a1169d08d1476b875ff38f08a0eecc92ae0594395cd7f23bc6639c5fb3954e2b9129775d21951f099b12\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[95]\naad = 436f756e742d3935\nct = 0ad315c17cd383eb41f9c0939327a6eb7cdfcd827a2941f2d3d8d1768eb031b7796a40570d2230616bb331e09a\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[96]\naad = 436f756e742d3936\nct = 111d003e82c2b867f7989fa420dead7e2d41ec416cdae69d65d7864733f2d7b7dacd7a17512780c1119505bacf\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[97]\naad = 436f756e742d3937\nct = cc8e6220ebca8ab1053b893fb2460ec66ff28337b158c9efc5631af4fffe49cbc3b72a6524485bca11994dd0ed\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[98]\naad = 436f756e742d3938\nct = 94d7bf876d568146f05b2bf9bbb05a9debc2f64c1d285a4555a0de65b154d383c302b072eca2f65d12ce826148\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[99]\naad = 436f756e742d3939\nct = 8050d2ae9762a4c19bd422d6b94064bf8fabcdc87d98c8b048ab5ca03454201ec055488da7795cf06893c9a89a\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[100]\naad = 436f756e742d313030\nct = f85a67e67e44d24b009872fdcb3084225c2805df1ae029793d3320d5e4ce97c756b08b9f0f829b5b37cc07d6f0\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[101]\naad = 436f756e742d313031\nct = 39c90a0c218625591ff0c8dbf7f6e8e0ebf92279b1199b58b55e0a278d7f24051b6c733ce74a0b806d16c59eed\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[102]\naad = 436f756e742d313032\nct = db08e7fe6e307ae61042b2da2c46ead96171914f3b5668afa0aa55ecd00fa760b74bcad66ef8dce4e3f29ca2c3\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[103]\naad = 436f756e742d313033\nct = 309d3e5fb0c51342033b438002d6e846555952921017177434444683a95d225e7ec4a3c14ad6e6ad6411facaec\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[104]\naad = 436f756e742d313034\nct = f27179ad35d2d96181dde3b6569a1ebcbf1fc151c5dbf14ce747fc109fb95e5732e99b08f91df32cc38be09a58\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[105]\naad = 436f756e742d313035\nct = 246386a4bd5d7fe9a386a0b76269baba96b16378a07825c72f676bc76a4fb5d525786ed10da6baeffb897848a3\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[106]\naad = 436f756e742d313036\nct = d977676edf9981c83672c3e062a3251e2e07b6fbdfdc139f678afe90832009102f28fe4b63be25374c4dc20db1\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[107]\naad = 436f756e742d313037\nct = ea17beb33f417dace9dadc51702e2baf43dcdce364abc1f70e9c73e134a102413e10916bd2d128b7f64ff24698\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[108]\naad = 436f756e742d313038\nct = 931cd288f6a18fcb9b836176bc49918d8c6b8d24fce3b26782ba6323e0d01f0ed542c666d69a5e1adf8e28f88d\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[109]\naad = 436f756e742d313039\nct = d5dd7cc956759e1b2eb99cf049e8eea9d754de9617f308f9f215a3c1d7cc76b88c7b45eb66a1ea414f10f8bfa8\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[110]\naad = 436f756e742d313130\nct = bb407a18faa9f580fc417725f6d8f3a3f5d7972711f7adcdb7a79d5e2db9668ca444d6045891590a384c3cc57d\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[111]\naad = 436f756e742d313131\nct = 8e7949a490d9e1893766586fa30ab84ad1de6379a1fcc5c73700b748576a3726da32036e08b166227257409393\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[112]\naad = 436f756e742d313132\nct = d81c4ce027db2322d6f450736279d5954502a7b4a4a60e58a4454443ed9243de2b805cd6a44de1e815377fd917\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[113]\naad = 436f756e742d313133\nct = d50c4ec8148090f231ed8c5beb042c01f12923fb8ac6043325434fcbf5075b1e629e23d7ffb50c38c61974527f\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[114]\naad = 436f756e742d313134\nct = 059f89e9d8c1a2a81fcb9fc08328396b83339ec2583d6582161af67944819283a2c8216ac717fe3c52564b6c4a\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[115]\naad = 436f756e742d313135\nct = 48f4723289cded2b3186dc81adec430dc462f3dff6a1fe76c113a105f15efdfcb61618456b4ea514b0f94ac049\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[116]\naad = 436f756e742d313136\nct = 36914027bc50597d58312645d452b4956d51730831d4087494bf55d243b682e706baf4af30fc140d4c7e8760b0\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[117]\naad = 436f756e742d313137\nct = 5bf15badff51ad5902e80fb019bf22c7de3828ac70717b0e093ce03d0d5e31f807923cf2adbed8d148a95e20c2\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[118]\naad = 436f756e742d313138\nct = 0afd4ae86b1006d622cfebc369ab16db3fdb6f5a35613016a015d1e99ba3e3c978df4d0d35d0a2f9f06fafaee5\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[119]\naad = 436f756e742d313139\nct = 961fe5dbee9b80900d894136c48d9b2f72f333d33c9e3dd6f7b6e220831805859fe70fef5c8d2e0779c035ff02\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[120]\naad = 436f756e742d313230\nct = ea658fd7a", @@ -6085,9 +6100,9 @@ static const char *kData82[] = { "79\n# encryptions[188]\naad = 436f756e742d313838\nct = 62a7f47491f3d31a422fc9e908823a8f2d7254f36131d363c32df985ed6dda80871e3829375f25a96d90b45235\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[189]\naad = 436f756e742d313839\nct = 192f865b9b0f87c8f3b35b2ce1900e3687554a48736e6188aba905ef472c7377db213d32d56b903f7be0acee06\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[190]\naad = 436f756e742d313930\nct = d0f7f686a5225d8183394c33b1f10c707e7f085660f858d3491198b3a9b4e42f6a9eb365c409993c59093228aa\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[191]\naad = 436f756e742d313931\nct = cf3f64e8b054cf660298d2e7ec7d644a2337429476a7108f14f491345c42e1164a6d96a83b0c56ebee45cce38c\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[192]\naad = 436f756e742d313932\nct = 9893da31204738a3f8f4c107c533f64cf8c01b81060308576cb94bfef56c7c204421503eda93d05f5f9ff3f7c9\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[193]\naad = 436f756e742d313933\nct = e407a8a84fc18a3df9833de5ce4e227f338cbe0549bb70d1b30abd5c8ad89f0a0de24bc8dcdb8455c80f507cb3\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[194]\naad = 436f756e742d313934\nct = c400c9a6494c2c62cfc420c7348f03b5598648842115975d204d7b039b3e6bec4f5a24b879d688b590ea0ad3fc\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[195]\naad = 436f756e742d313935\nct = 49ab830a7a7be18d1fce87538b02c4514ce2e33fe7dd0041bf206923270ce1eae49fa7afdcc23c2e7095ccd371\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[196]\naad = 436f756e742d313936\nct = d5beef3acedf662be1ac545ff22e0968ded5e7f835082563cbf32f2f97e2ec57ac0a24ef9b69b311c08b2d0705\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[197]\naad = 436f756e742d313937\nct = 3200011bd93203e202108feb721f33cff9adf984d7b765c152c42c71a08f6a4b914f59aaea2373dede1d84f49c\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[198]\naad = 436f756e742d313938\nct = 0d546040e599350adfce92d598fc83b2f17b8210648ff39c91d7382f1ddf9316fd55762a863bd39ac183d71cfc\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[199]\naad = 436f756e742d313939\nct = 56d782dcc5ae009b8b10f486678fc31d04d3e2c2fd14557bc160540eb5b40eb2f4d76a2a54f6ca7debbc8f6091\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[200]\naad = 436f756e742d323030\nct = 57584651099749aa985fa971b34618aa8d30aa9c1fcbc8cd15d887ee5ab0fa3d515d8dbba66eb3b1bd53d5849e\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[201]\naad = 436f756e742d323031\nct = d18e9ec60dfb849deb7f665a032f5819b9d047516a4be94a48e8bd2066662d183f7853b3baadfe8971e34a88dd\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[202]\naad = 436f756e742d323032\nct = b05faf558aeadfc164859a477e9cbcab1d27edf19bbcb35a813aa49282b42f8a20bf5fcf943ebaa6d94f93eb32\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[203]\naad = 436f756e742d323033\nct = c069204693e8b828a9ac4d6001f8b0c49a9e7f606a45a8829dcfbc7ef0c23618f7c5ac44a76b00d6b06bd32e5f\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[204]\naad = 436f756e742d323034\nct = 957d7c12afc411e4c87d7cc1bfac25e4f3391aa9d71bfd0b8606ccd7565a78c39b02c7c9d763a2d3529600f7f1\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[205]\naad = 436f756e742d323035\nct = 648a024a31fd41c542eb6bc1ae2bc234ad3cb899fa65b1d22e947f061c5804f86df390f8ae79642630c26ab5e9\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[206]\naad = 436f756e742d323036\nct = a54a551ae735941e911b84b09c3a33b97c8324f745220f78a0514ad814502654b0377fb45e8628575a7fb14018\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[207]\naad = 436f756e742d323037\nct = 35dd21130084fcf97491b42348efcb8271dc611c94cc57d9f1d7700efdcb207d9b725aab10b33868cacb53b5b4\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[208]\naad = 436f756e742d323038\nct = 2d7946eaf65d501637c5a51139ffe27bd5c0189c986731e9519ae256f17cc2b363adc654e28622236e9517007b\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[209]\naad = 436f756e742d323039\nct = 2182643ecb216095a07ec8e341bbc3bbd9700b98cf6108caf2c6e6a99c567ae9650e18e7137784ea60c0037bed\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[210]\naad = 436f756e742d323130\nct = 5cb48c09ae88281008141e22f274be6aeab55d061bd0592388330518bd4e9877f14edcebcdaed09b17839526eb\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[211]\naad = 436f756e742d323131\nct = ddb662da553a5f64f9e70dec7a00b5fe2492c5a8e7fac8b11a24225fec99b72b46a259f58d30ea1e565c3621d4\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[212]\naad = 436f756e742d323132\nct = a812ef927ca2d5a7e6f6c25dba203a28b3749e94ceda1d2ae2f1e4a9607304521eb2b87a74ea8d22cbddee107e\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[213]\naad = 436f756e742d323133\nct = 94f9430c6563ac09a8fa019177cb0bf6be3e222e3299211cb771a2e3c39dc490ed2962621d18988f6a8494dcf3\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[214]\naad = 436f756e742d323134\nct = 88277b8afc800e1bb7f26f46223b8ec3175d1397c6f132f1930429397b40bead4dfbd194f030b5f9eefeb88c39\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[215]\naad = 436f756e742d323135\nct = 409e3d1897304b141d13abe0f59a4b10d0af57618577b340ed6d5480e4e83457b7186a3ea05a18f80a9a6cd637\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[216]\naad = 436f756e742d323136\nct = 7ec49da8a4de583b3edebc5b67357cc3ffc51362866c02523ababe69f6a5ee3049d737e25610eb0c3a61899f0f\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[217]\naad = 436f756e742d323137\nct = 4246008ed7b0791df31f88250292a3a1e26dd47b14035e9ee4279aaa5d51bf2dfb594d68761ef239da62d38d67\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[218]\naad = 436f756e742d323138\nct = c5d310202308ed77fb3bef60298eac77608ae541bc5ab2d9fb3e43c1b3e2f20cb266927ca85af01353dbaa0166\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[219]\naad = 436f756e742d323139\nct = 812334975ad365ad977fe1df9fb18bfba5af83ee39455f877a9f496c1e883f64571917ce52499479270c7db7cc\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[220]\naad = 436f756e742d323230\nct = 7455ec4dafadc6a32c4a1482e78e7c80d34ade86bcf44860230055fedae26b642f2577dd5ec3742e06fc72b285\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[221]\naad = 436f756e742d323231\nct = d99776edf6dfa1683b926c03a35a08f5fa6e5ed4307a6bffec785ebe2ad4663e824aea40958ef2fdfcca851a3d\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[222]\naad = 436f756e742d323232\nct = e1773f8fd60b35fe8459a194b3ed05ba72f4d0f16f64169577e2ee4f0d1e9dd1fc5bc5d10da552ae5fbebb0605\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[223]\naad = 436f756e742d323233\nct = b0977a21fb86e2f53605146703243dd713979041ad41b7f4e2eb07a81823a741dfd6296f7a021d0863cdf407a6\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[224]\naad = 436f756e742d323234\nct = dcc76d9c0b453f3bfa0e93e4b21665157670d6363a0444bcc2cbbe3a82017712420fa62e5976f1eb459627350d\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[225]\naad = 436f756e742d323235\nct = 4630e92285a0940af56c00a34b93ef07e755000d4b1faafd93eb01a076798dc5304c9119ca4b458ba39742a4ea\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[226]\naad = 436f756e742d323236\nct = f980e55d2dd9dfbd6f0d7f26e681cb6a99b01536ed287570db15819ebadea6c383970e5935faa97f3f7567d419\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[227]\naad = 436f756e742d323237\nct = 8b1b4be8257e2d2383b2b5236ac58a4bbc0619129a6af82201034f27bf762f14c9e113d36b94066a52b81edb63\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[228]\naad = 436f", "756e742d323238\nct = 79368883a496b5f8962d2dd3c54116730aed4a6652fd2c222490470b66a91fbf2d8abf8d1336cf596a0c89b488\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[229]\naad = 436f756e742d323239\nct = 6e0315642bc29b8a0f6eae9f0f3772c4af2d9451b6756847cefce570299cc8a09bcb14bd3c8e4e348dc60a80cf\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[230]\naad = 436f756e742d323330\nct = d74717cc168f8cc3340346e442a7b789776ba2f5f3f50b18cb61608f1a638d57d5f6f819713bf617936f7193da\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[231]\naad = 436f756e742d323331\nct = 8885a9956a8864f070e8b83175dc2a76208c32c669fd64c84c7efbc9eae048e3a3bda1a6c5e9e014177985f345\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[232]\naad = 436f756e742d323332\nct = 8248c633eb511e4148c97a9d997288ffe3e9b130f7e1768900e07a3dbd0322bf5feaa3ef1069a69d2f63b8b5e4\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[233]\naad = 436f756e742d323333\nct = 661b8260a395a229aadb89a0b0afddd08f65597d5e2965763b4c8779bec4f5a91c6a73f395ee45aacdc03f244c\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[234]\naad = 436f756e742d323334\nct = 9e270862f567f91b5fc378247693a6a598dca076802c15f311ad977c862cae39feaf9da66ea276e3f6826ecf3d\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[235]\naad = 436f756e742d323335\nct = 9e07269e710dea587007ea36f823e5a6c361a7d852e411d0f608468b61a1a4cda1e79cfa8ae3e0398a471970b6\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[236]\naad = 436f756e742d323336\nct = a2cd8eb604f9dab48b73b5e09a99be8b4fffb8eed1ae639866fa1626acba6469a4389f867c068601e1622a61a0\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[237]\naad = 436f756e742d323337\nct = fe968506c8c9a82cac93961e2470e048eee80c4a2898677f624d8a1051412475ea905a499cf6eabe8c2ec58348\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[238]\naad = 436f756e742d323338\nct = bb45acdb4652e760404402bf5d2a424e8fccc7c5dde8b26338ad64fe2b2cd5e53f32e9e3f69a896bfc3489408f\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[239]\naad = 436f756e742d323339\nct = 828fc85f305e3e63442ea0b178d182b53055c4ad909be23ed57603d9572f8c146e17648a3a4787c120daa8feed\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[240]\naad = 436f756e742d323430\nct = b0bbbc30e91367092697057b87e49a0278d6783e7100e58052aae3d6e43d86acf15aa52826bc29b0e1a3b22790\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[241]\naad = 436f756e742d323431\nct = 2dd238f23bf4c01ec65d5a5852358a6179783673414daa0007ac448744072057ca090203229d79ad6fa7676219\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[242]\naad = 436f756e742d323432\nct = 1f086bb895f86ebca24d03d530e085e64e99194e4c4b741d80a8ecfda0a93c791b84b9c5df8fb054573bb3cd55\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[243]\naad = 436f756e742d323433\nct = 530bca4e6045806f7cbc7f47ccbfbaab6fb78470f1d722f039f37f9ce03dd0f7c466f0288cdd70bd76e57298ee\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[244]\naad = 436f756e742d323434\nct = 32d031fe93733f5494d4bf4cdf2f331e477e993daa98fea19601255e768848fac11410026b796e10b106ae8e80\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[245]\naad = 436f756e742d323435\nct = 0dfb7b313aea0e91dcd2ba7595ee587ec910e6c669f2518355538dd4be47e137873db3c9b34b2ac95ac3f7278b\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[246]\naad = 436f756e742d323436\nct = e602015ac66b00e8b34b1091368b4e1f3eb1d94277d6dcf11829a8cf3a71a554e6e2df953c916f278aafcc072c\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[247]\naad = 436f756e742d323437\nct = 9dc47953aae535a27441e77b6eee0db9a884f69c6c3ba1e6ef046d04cad1b4028c34ae259900853f104e6d5edb\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[248]\naad = 436f756e742d323438\nct = 1b174d49afa1ed54c34a0d23921d4426b72133b094e5876c9f5089a20bd01ee740b9bf9623d35079b2a7f764ea\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[249]\naad = 436f756e742d323439\nct = e9a9a9a54a5909f74cbaa86707b6a3db088f2a4458d3075be9d50795284abf0912ac094a17e8228011fe8584e5\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[250]\naad = 436f756e742d323530\nct = 5c21e68187f15c7d68c30c1d515567a6bb812f79646c97122de81e2f4603487f2398622ad573ec22d6c8d07b9c\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[251]\naad = 436f756e742d323531\nct = 5ebbb4ce70e2e65fd6efc03cf6fda8892321740fec30ea21fd742dbc1b53f531f58697dced5c6b1623bf659feb\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[252]\naad = 436f756e742d323532\nct = 0d4a1a33581ef910547ec8bde264a46441bcde2e06050b780d887bebc13f7853ab8b264fe4633cee8c4caed106\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[253]\naad = 436f756e742d323533\nct = 4e89d3f7b4f86e71601eb768ac42df8afeb983c18397fd4f277e3d1caa631d66960f923798e4b0fcd78c1ccb3c\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[254]\naad = 436f756e742d323534\nct = b640e286eef2d6078f8d5a3e801a2466042121f5f001f8ac8f3461cc261c9f772904b9c15cead99bf305063f29\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[255]\naad = 436f756e742d323535\nct = 652e597ba20f3d9241cda61f33937298b1169e6adf72974bbe454297502eb4be132e1c5064702fc165c2ddbde8\npt = 4265617574792069732074727574682c20747275746820626561757479\n# encryptions[256]\naad = 436f756e742d323536\nct = 3be14e8b3bbd1028cf2b7d0a691dbbeff71321e7dec92d3c2cfb30a0994ab246af76168480285a60037b4ba13a\npt = 4265617574792069732074727574682c20747275746820626561757479\n# exports[0]\nexporter_context = \nL = 32\nexported_value = 070cffafd89b67b7f0eeb800235303a223e6ff9d1e774dce8eac585c8688c872\n# exports[1]\nexporter_context = 00\nL = 32\nexported_value = 2852e728568d40ddb0edde284d36a4359c56558bb2fb8837cd3d92e46a3a14a8\n# exports[2]\nexporter_context = 54657374436f6e74657874\nL = 32\nexported_value = 1df39dc5dd60edcbf5f9ae804e15ada66e885b28ed7929116f768369a3f950ee\n", }; -static const size_t kLen83 = 672402; +static const size_t kLen84 = 672402; -static const char *kData83[] = { +static const char *kData84[] = { "# Kyber512\n\ncount = 0\nkeypair_coins = 7C9935A0B07694AA0C6D10E4DB6B1ADD2FD81A25CCB148032DCD739936737F2D8626ED79D451140800E03B59B956F8210E556067407D13DC90FA9E8B872BFB8F\npk = 115ACE0E64677CBB7DCFC93C16D3A305F67615A488D711AA56698C5663AB7AC9CE66D547C0595F98A43F4650BBE08C364D976789117D34F6AE51AC063CB55C6CA32558227DFEF807D19C30DE414424097F6AA236A1053B4A07A76BE372A5C6B6002791EBE0AFDAF54E1CA237FF545BA68343E745C04AD1639DBC590346B6B9569B56DBBFE53151913066E5C85527DC9468110A136A411497C227DCB8C9B25570B7A0E42AADA6709F23208F5D496EBAB7843F6483BF0C0C73A40296EC2C6440001394C99CA173D5C775B7F415D02A5A26A07407918587C41169F2B7178755ACC27FC8B19C4C4B3FCD41053F2C74C8A10A8321241B2802432875AE808B9EF1365C7B8A52902F1317BA2FB0269F47930672107B4726FEF64547394D3320C8F120B3C2F4725B0305FAB88CC7981FCB09A76A1CBF7F179F43BB0A4C8B0590857F1E69708466C7F8607391E7BC5268BFD3D7A1DFFCB4ECA2A1C9B597593013D5FC4202EC2B74E57AB76BBCF3632BBAF97CDC418A6F16392838CA9BF45DDF023777B7561833C105190F94F302C59B531900BBC816361FAA5B3380CA3A893104CA7388B185671B3E5FE3790E9A626EC46D9B0B33C7A419AF7B32B6859894F575D82AC5456B5490A7AF8FE61046360589ECBA7244236F4123116B6174AA179249A49195B356C72FC6641F0251812EAA98570B046699070E0819DC2713F469137DFC6A3D7B92B298995EE780369153AC366B06D7249CD09E1B3378FB04399CECB8650581D637C79AE67D6F2CAF6ABACF598159A7792CB3C971D1499D2373AD20F63F03BB59ED137384AC61A7155143B8CA4932612EC915E4CA346A9BCE5DD60417C6B2A89B1CC435643F875BDC5A7E5B3481CF919EA09172FEBC46D4FC3FB0CB9591704EE2DBB61844B2F3314A06BB6C6D34005E485CE667BDC7D098586928D2D91340F00419EA401351A240A0B041058BEFB0C2FD32645B7A2DF8F5CBFD873327C978D7B351A28088438837024C52B9C295CD713646FB5D6C0CCFB470734AC2B2BC8123C2C13DF6938E92455A862639FEB8A64B85163E32707E037B38D8AC3922B45187BB65EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B53922\nsk = 6C892B0297A9C7641493F87DAF3533EED61F07F4652066337ED74046DCC71BA03F30960103161F7DEB53A71B11617263FE2A809769CE6D70A85FE600ECE29D7F36A16D331B8B2A9E1DB8C090742DF0739FF060CEB4ECC5AB1C5E55AC97BB66A7F895105D57782B229538E3421544A3421408DBF44910934CC423774F1676FF1C306F97555F57B4AED7A6BAB950A8163C8D318DEA62751BD6ABC5069C06C88F330026A19806A03B97A7696B56DA21827BB4E8DC031152B41B892A9E99ADF6E1963E96578828154F467033846920FBB4B80544E7E8A81AE963CF368C9BA037A8C2AD62E32B6E61C91D75CE005AB30F8099A1F29D7B6305B4DC06E25680BB00992F717FE6C115A8084231CC79DD700EA6912AC7FA0D937BB6A756662230470C189B5AA1653DEB937D5A9C25A21D93B19074FC239D8153539797C7D4AB62649D76AA553736A949022C22C52BAEEC605B32CE9E5B9384903558CA9D6A3ABA90423EEDA01C94198B192A8BA9063497A0C5013307DDD863526471A4D99523EB417F291AAC0C3A581B6DA00732E5E81B1F7C879B1693C13B6F9F7931622429E542AF4069222F045544E0CC4FB24D4448CF2C6596F5CB08624B1185013B6B020892F96BDFD4ADA9179DE727B8D9426E0996B5D34948CE02D0C369B37CBB54D3479ED8B582E9E728929B4C71C9BE11D45B20C4BDC3C74313223F58274E8BA5244447C495950B84CB0C3C273640108A3397944573279328996CDC0C913C958AD620BA8B5E5ECBBB7E13CB9C70BD5AB30EB7488C97001C20498F1D7CC06DA76BF520C658CCADFA2956424557ABEA8AB89239C17833DC3A49B36A9AE9A486940540EB444F97152357E02035939D75A3C025F41A40082382A0733C39B0622B740E407592C62ECAEB1432C445B3703A86F6981A278157EA95A6E92D55E4B972F936C2F0A658280EA2B07A48992DF8937E0A2AC1DCC974FE00AAE1F561FA258E2D259C3E861DCE236039127606FC1CE009003A7BAC942101DCB822B1F3C12BF73238F546E01C36B5A6936192995CC69C63237409CB53C2E35D74890D18885376FA5503B107A2A392115ACE0E64677CBB7DCFC93C16D3A305F67615A488D711AA56698C5663AB7AC9CE66D547C0595F98A43F4650BBE08C364D976789117D34F6AE51AC063CB55C6CA32558227DFEF807D19C30DE414424097F6AA236A1053B4A07A76BE372A5C6B6002791EBE0AFDAF54E1CA237FF545BA68343E745C04AD1639DBC590346B6B9569B56DBBFE53151913066E5C85527DC9468110A136A411497C227DCB8C9B25570B7A0E42AADA6709F23208F5D496EBAB7843F6483BF0C0C73A40296EC2C6440001394C99CA173D5C775B7F415D02A5A26A07407918587C41169F2B7178755ACC27FC8B19C4C4B3FCD41053F2C74C8A10A8321241B2802432875AE808B9EF1365C7B8A52902F1317BA2FB0269F47930672107B4726FEF64547394D3320C8F120B3C2F4725B0305FAB88CC7981FCB09A76A1CBF7F179F43BB0A4C8B0590857F1E69708466C7F8607391E7BC5268BFD3D7A1DFFCB4ECA2A1C9B597593013D5FC4202EC2B74E57AB76BBCF3632BBAF97CDC418A6F16392838CA9BF45DDF023777B7561833C105190F94F302C59B531900BBC816361FAA5B3380CA3A893104CA7388B185671B3E5FE3790E9A626EC46D9B0B33C7A419AF7B32B6859894F575D82AC5456B5490A7AF8FE61046360589ECBA7244236F4123116B6174AA179249A49195B356C72FC6641F0251812EAA98570B046699070E0819DC2713F469137DFC6A3D7B92B298995EE780369153AC366B06D7249CD09E1B3378FB04399CECB8650581D637C79AE67D6F2CAF6ABACF598159A7792CB3C971D1499D2373AD20F63F03BB59ED137384AC61A7155143B8CA4932612EC915E4CA346A9BCE5DD60417C6B2A89B1CC435643F875BDC5A7E5B3481CF919EA09172FEBC46D4FC3FB0CB9591704EE2DBB61844B2F3314A06BB6C6D34005E485CE667BDC7D098586928D2D91340F00419EA401351A240A0B041058BEFB0C2FD32645B7A2DF8F5CBFD873327C978D7B351A28088438837024C52B9C295CD713646FB5D6C0CCFB470734AC2B2BC8123C2C13DF6938E92455A862639FEB8A64B85163E32707E037B38D8AC3922B45187BB65EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B539227FFAD1BC8AF73B7E874956B81C2A2EF0BFABE8DC93D77B2FBC9E0C64EFA01E848626ED79D451140800E03B59B956F8210E556067407D13DC90FA9E8B872BFB8F\nencap_coins = 147C03F7A5BEBBA406C8FAE1874D7F13C80EFE79A3A9A874CC09FE76F6997615\nct = EDF24145E43B4F6DC6BF8332F54E02CAB02DBF3B5605DDC90A15C886AD3ED489462699E4ABED44350BC3757E2696FBFB2534412E8DD201F1E4540A3970B055FE3B0BEC3A71F9E115B3F9F39102065B1CCA8314DCC795E3C0E8FA98EE83CA6628457028A4D09E839E554862CF0B7BF56C5C0A829E8657947945FE9C22564FBAEBC1B3AF350D7955508A26D8A8EB547B8B1A2CF03CCA1AABCE6C3497783B6465BA0B6E7ACBA821195124AEF09E628382A1F914043BE7096E952CBC4FB4AFED13609046117C011FD741EE286C83771690F0AEB50DA0D71285A179B215C6036DEB780F4D16769F72DE16FDADAC73BEFA5BEF8943197F44C59589DC9F4973DE1450BA1D0C3290D6B1D683F294E759C954ABE8A7DA5B1054FD6D21329B8E73D3756AFDA0DCB1FC8B1582D1F90CF275A102ABC6AC699DF0C5870E50A1F989E4E6241B60AAA2ECF9E8E33E0FFCF40FE831E8FDC2E83B52CA7AB6D93F146D29DCA53C7DA1DB4AC4F2DB39EA120D90FA60F4D437C6D00EF483BC94A3175CDA163FC1C2828BE4DBD6430507B584BB5177E171B8DDA9A4293C3200295C803A865D6D2166F66BA5401FB7A0E853168600A2948437E036E3BF19E12FD3F2A2B8B343F784248E8D685EB0AFDE6315338730E7A1001C27D8D2A76FA69D157BA1AC7AD56DA5A8C70FE4B5B8D786DC6FC0566BA8E1B8816334D32A3FB1CE7D4D5E4C332AF7B003D091741A3D5C965292255DFF8ED2BBF1F9116BE50C17B8E548748AD4B2E957BBD1953482A2E1718CEC66CD2C81F572D552B7187885E6B8943D6431413C59EBB7E036048490BE5289E95B20A89E8B159F61A9A9886E147568F4C9021F362F02688A1C8C3BB0D24086880E55B6EDB43F3745D2C166DC1CB743C76FE6BE523A893CC764D16435C37851252A81E2FFBA0F18971A3DEE37D4877CB928E36E5235037A6B2057897D518A5F0E348E3AB6D5B52DFC60757F3B41A4FEC7828F1DEEAF4587CCC8EADF647F4D203B2FAA05A649B582340CB4CACE57A30711BE752FACF0227D0A80C4128442DDC544BE805B9CFE8FE9B1237C80F96787CD9281CCF270C1AFC0670D\nss = 0A6925676F24B22C286F4C81A4224CEC506C9B257D480E02E3B49F44CAA3237F\n\ncount = 1\nkeypair_coins = D60B93492A1D8C1C7BA6FC0B733137F3406CEE8110A93F170E7A78658AF326D9003271531CF27285B8721ED5CB46853043B346A66CBA6CF765F1B0EAA40BF672\npk = 2C421AD4A7848CDC4B73987CF2F85E660C65E468346672AB09EA8B106B2ED51246271BC9D21672F6AA0B3A9B24C8F64722842F2E24CB2A47AAC689A5C57318663BC98756C199160F3A39C2148C574C23836DD060D1AC8A06794EDD5AA068AC19E42CCAAB951051756350C31D584A517FC9BB303276215580FDA99551E82449D8675F29C45AB6354107CC94509EE55AA5DB3A813ADB8B04005200ABA8F91B58A2D3B2B7D82C6461363353038099B7A0E981A85C75E0E422C572C506071DF54BB7B715B9F4A42DA1E89694A06475545D97A09EA36374F2C8BA40A5CC17EB1AD308AE862A26E38B2FFC11B7ABE3B58509B21649B86AAB9E0D1ABB601604C4152257A6691A964657BA0D1F561402545B782960E547A4DAB7B71AA95C67E64CAF568C3B3144FB29022CB0BF01B895E3327D019B591CA282D22105DA99B58BE42BAE7185E0B56CBD0C56EAD56B5DD34E9BC1859B927ED78C4EE1340960256A0B63CF4E1CC9E84A53A48B2F70C3C89E83A0005D65019A8419B5166469999A453418CB94295462D9256CCDDB3FCF8365CF0235F1D547498714A8B09553182FBA093F447A220146182A3ACF062A118B22CA49756505978F21DB629799CAD72AC5D17B2BFA52A6EA15672537899A313A4F0B7DF3F8639906BD0163735DEC5923A038FB7B5856570E279275C3093998338CB595C9A6B712C06C526166A725B9098EA02EA10C5D7CBB86B935703F122DEDB05233202968B59825F41F2C17BA76AC661FA69A7998C5FC6C2FB68A7820576B1FDA2C73DAA29CC21DCDCA47ADAA1B3B5258C1575FC9270712F3B8842978BE50A18DA45159B99272162891CB8A63CACFBC30BAE0A4364C8A6537E1B40E825C4A311488B133956690E494443AB44793D3717582701FAC5486DA4FFAF02C0", "58BA688FB88DEB3C94E7445CFA89A79CA5F4B991ABCE25CD6B74AFBE9C63DFA0F40180B242AB52C1A455C0664F7357C048B27E05CA46B8605E6843C66FBC2A6A29BE135C39565A916ACADBBF2AA2656125B603BC88C9D710399A84850840169BE61BD4EF3687777075F0C7870B61903A26E6391A88B114E96F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D2\nsk = E1785B13943F2661C372CA63A0C6AEDED27F46C81B837293B9867B9F7CCE0611C61B318ADFD67C09969C27A095E53C124B048CD99027C9103E85C5C4D72730A34C8ADC406ECEB4AFE02444671319DF175465EA9A0D91291C18CFC9367A333475727B64E6F73E50233B81AC0978364D18F72DB39A4041D4B25A095DF99BCBED090496DAB62AA250945A97BD297A539A1AF51648C8378C1B21A2FC311B57860C368A819F2B8C15477243256970313B2AE082C2F8BDACB658A89C6BDC788325D48292DC2395F51DF765A4A2E927769C84F5FC306568B4B5E7487B8B9F79DCCE33C80B988C955544CCA478AAC902C2A6F2A4BC9A9478A9B318F78586C696942B6F4C2931E85042DB27314CB546BEBC2236C2136D581EE22978D2B79EA3B662A8BC7CC17CCBDB59AEF8B0CD77A4A680672E9AB4ADC2D011BF471865F92F4A4769A8157B87769AC3B86448851E80F8BABF394907D4C8A51C7BA4CA62CD7AB7BBC4219778CE4DC22955772DBD1330C10055DBE106D11863D7B14B6301A622EC35F3AB9B3494C12E3929BC321950FA1036D98A3B257C20D378A9798BD3B57E50EC88617B49B75022E10130E35432F3ABC7165952E2B7652C0BB1FA92A16D7B3273D2709077164BC60CBBE747205B6DBBE5912947CA3914C1A106B66708212D443898616273E006ED507E30D7A7B6E389739B637609834561AD4E227DA0289ED9180BFAA48A58EA75CC1744F75007A99611EAE775A1F5411F1376A7F25E758C8B69BA731D28BF016970A9A3579ED7150C526B098C4AD277C6D7294462CA65B6F3B7062956551428477B9C57301ECADB9C7ADACA67C0423F42704B008A90861B45C19D24E521080C69FD20A5DCA45ACA18ABB356375A983081567E22798F530AA1E0AABC2D7B3A208446E9081BA2420B8AFCB8EDD37DB536689695749B632D99316653E97056260979974E44D135589A283DD1486856BD1AF59E24394743C7A036A68161E31010CAC462A6A7AC0058E1640AAA686311D939537171B8128965C70FE8EB0F10DC1A2BC50ABA436E2AF19FFBB3C6451A9FE7784678A519473010F9E69F9601502C421AD4A7848CDC4B73987CF2F85E660C65E468346672AB09EA8B106B2ED51246271BC9D21672F6AA0B3A9B24C8F64722842F2E24CB2A47AAC689A5C57318663BC98756C199160F3A39C2148C574C23836DD060D1AC8A06794EDD5AA068AC19E42CCAAB951051756350C31D584A517FC9BB303276215580FDA99551E82449D8675F29C45AB6354107CC94509EE55AA5DB3A813ADB8B04005200ABA8F91B58A2D3B2B7D82C6461363353038099B7A0E981A85C75E0E422C572C506071DF54BB7B715B9F4A42DA1E89694A06475545D97A09EA36374F2C8BA40A5CC17EB1AD308AE862A26E38B2FFC11B7ABE3B58509B21649B86AAB9E0D1ABB601604C4152257A6691A964657BA0D1F561402545B782960E547A4DAB7B71AA95C67E64CAF568C3B3144FB29022CB0BF01B895E3327D019B591CA282D22105DA99B58BE42BAE7185E0B56CBD0C56EAD56B5DD34E9BC1859B927ED78C4EE1340960256A0B63CF4E1CC9E84A53A48B2F70C3C89E83A0005D65019A8419B5166469999A453418CB94295462D9256CCDDB3FCF8365CF0235F1D547498714A8B09553182FBA093F447A220146182A3ACF062A118B22CA49756505978F21DB629799CAD72AC5D17B2BFA52A6EA15672537899A313A4F0B7DF3F8639906BD0163735DEC5923A038FB7B5856570E279275C3093998338CB595C9A6B712C06C526166A725B9098EA02EA10C5D7CBB86B935703F122DEDB05233202968B59825F41F2C17BA76AC661FA69A7998C5FC6C2FB68A7820576B1FDA2C73DAA29CC21DCDCA47ADAA1B3B5258C1575FC9270712F3B8842978BE50A18DA45159B99272162891CB8A63CACFBC30BAE0A4364C8A6537E1B40E825C4A311488B133956690E494443AB44793D3717582701FAC5486DA4FFAF02C058BA688FB88DEB3C94E7445CFA89A79CA5F4B991ABCE25CD6B74AFBE9C63DFA0F40180B242AB52C1A455C0664F7357C048B27E05CA46B8605E6843C66FBC2A6A29BE135C39565A916ACADBBF2AA2656125B603BC88C9D710399A84850840169BE61BD4EF3687777075F0C7870B61903A26E6391A88B114E96F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D213F0970C03D32967B06CCA4CF58E87559128D14CB3F876A1ED10EADFE03FC1A9003271531CF27285B8721ED5CB46853043B346A66CBA6CF765F1B0EAA40BF672\nencap_coins = CDE797DF8CE67231F6C5D15811843E01EB2AB84C7490931240822ADBDDD72046\nct = 148869316FF02E3434078481B0EFD5C01697B0B6A95448E34D38F1BF326AB9B7215CDBB7A43FA2AF48760E4D595278538D482E067549F46D725114DCF6EFE5DC1FE7F8E6023F225FB3CFA8B17B1DC06B1D639A786DBD337793699BFED98C533203E8A053F210DE15887CCC5174CFAA7E6D99AD11E61A8D3DECBB5D2C9DE33F96DF78855B55D9CF62FF8597C5D61DE8E24BCF6C792CB57AC0B249FDD2D83A493716FA06FAA5E3AD4BEE1BE8EA00B789E5197E02902CB64A7A7B02416427A58E1EEDE1E23805908756ACD919DA013F8B53584F77A55BF5E8F28B9FB062279F0AEAF93B2C7B76D2FC70E94F680FB7884D4FF9CBDD28A948360B8D48DB38D617B98F5DCA38965A1F42FA9FDF154EF5883EB1A89D08CB5B861F783B8FA1FE99F1253C782D2035E667E7AFA6FC8D5EECC3137633A8F9429C1A50AFBF3302D30826C8EB57BE8C11C3A9DC70CF1D8449ACE55EDA070E3FE0FF71789A32A309242A8D740413576B659120A23ED0F1C35AD2CFB40CDDA23E3DFC5E7D18E8B22C74081B604725ECCF0541EB4F007919B7ECA52FC23AE229D9754337633425E4238E6F3EB0A265C90EDAD0C6A5885B3B1B58B549C6C4CEA5154E60AEF72A72C7D991198F5C855957896007EC0BEC440450E6F64092DA3F8E12B29A26AFF0A5EA08A36C01EE46074B5B3E9F00ABE821187D3DF337E4E18CF4BBF9A0D7D2DAADF0574AF638B71178743F907CF8168B73277342193B8BA4F0B55767456A778E071B73517A3BF9A1151D51B86F26CE7F1A0D6E0D2BC8FE60FE6ABF6F01439C5B0E09A93AC4A7B03E92B80B0C669F4561E8FD3DF47B4D61C79C000CEEEC451B607AA1F3DAB186A6ABA51F155C56A1357566AEAC90B8C198E45DB251FB3A1BB020F068F7027BF86E0B83327CC88DC1B963CD9BA5E8C7B68F22A27CCF87B55481D46A804121D819C9BDFA4E0C1FF5E4907DBA06DD4E2F95FEA50A22B60D0AD383E7630494407BF6728AB7AF746F4B115F1969C50222DD8006BF0DA01756FEE5AF6A400B884F9076310000F3BA694AAE5CFF0B4C7FD837F58286A25E10CA4735EFDB7EC0D7AACFA83D2C\nss = CED6EC70083226B02057B7F47E40943320B3D10DD4AD07EFE0F007EC8C06B3AF\n\ncount = 2\nkeypair_coins = 4B622DE1350119C45A9F2E2EF3DC5DF50A759D138CDFBD64C81CC7CC2F513345E82FCC97CA60CCB27BF6938C975658AEB8B4D37CFFBDE25D97E561F36C219ADE\npk = 59720C3D802726470D1C567B5908698650360DB82700E7B9DD26013B6A8184316DF3C59194FC96A0821A95C666EC5B130262006442CEF64428794672B43BC1EEBA20DE01BC70C15835952164E5A32705BFA7C64693B9BED53462F5AA6DE2569195147C70A789DE2153B3F64411534CFAD0ADBF8BC0AA51BDAF396E5746517C5547B3112FE08188DA54932B9B458458C55F146FEAA9620E7BB6CE21648AF047E0027C3553813AA81574F26483E93A5AB3642AA1332BC34F86328E5F80B272AA8971D175EE6A3D762ACD8279331E849179B9638C17B525AC600A598E4DCB7FFD68C31A9B27D3B17F63FA0E0DA16A3E54BC85DA61A0119A95201FA51906D6E2257B2CBD7235ABE8B80E80947CECB5CE87F9AF68442E8B6336C68AB0B170A67CC14F5E5377C4CB5930705775E522CA466DFEBB1AA800B452262A01966FF624CE79561B3A40258BE53512D01B749C25EC903923EA58E6677E02B0430E996000C637D002BA09DAC9E717AC64B634688B558D598E4017CBD46A160C621DBB2B961638B08A488FE8D814ACA37165A43DDD4B3908D84246794678823E794C9191332F344077FFAA50DBD2A6E0692ADDD353588B3E87E31F3AE4030B2371EEB1CAD20699BD6A459DBA53E6E3AA8A56BE4939B3E4B58C172CBBC4AB1F87235E1F114CB93C3150E25277459C43A6AABE39AF63EAC248D19F21B17AB5A2AC14169B01563DC818552CEAB71EEC2C2422C3E5F703B84BCFB457707A0B3EDC80C0EFA324D407D077CAB9B416B3A97713B89C6D65C2584CA652E6C4416BB44D3E7478EB21CE1A555456B94271689828560EAF4394BED93A86D48EC082A7BE576B75D00EC418228BF93C7037A49339352828AF07F3729BFA739B00D04B5502B9D6054BA525D724A0DF8506D9EA56D750072868CFCF07716AF003A02C45D4991F4503BF5AC86024857ACAE4CE24850DEF0632A6DCA9756C5C8A459341C69E93E154858B7C917592BB91C23AB622D3F84B9C81445E5A1E59262BFBF025286BBBB5D03EAA794445F7839F3AB51BF5AC48C978F0310128817D27E658D9F468F77C4C69DA09DD8526539C2598F4A4AC60E8CB68627382A145F91BE9D78FD51BA5E3FCBC3155B62BC07751DD\nsk = 50D47AC334A631E3C9BF8AA02BCC7E35272025CC37F8C844641704226029A3AC14BDA6458C33790C806430BC478470B94F164A1B074C5FD034466922F41CA7C70A61C0E9727263579DE085EB468CF44A3DC112525B878645A7483C0916A28B0AB8CCAE79352E45BB186806A29C381CABA12E0B505831200F8B874964686E754B66A66B2BDE90826FD34938A46711A01599BAB22A148C80FB0BA8455EF42C0B5279122BE3CEDEF27907040F9641B681500C50679DE3F534C5AC8754F925F446C6A114A989CB7B4269A95E3630C582C9AF505AB7D3AB6533288C9316FEC5512C21CE2866AC26391C340467BAF3AB3BE8C007587B77D7C7CC10C036C06D8D1590F417BC2C8909BB85ACC8D29FADAA766E89788C406D35DA78990A0AA2A1C0D0F92F73C152CB797F976B5173010A35FC649744C69529C354B616A8BA471496970365B1EE822C65201364405838D398BA047E5342AD71D831F2762798E282D8381730184EB5536B85EC8D0F59CB5B7A10D2334F876394F1F154BD6272BBF13FFC243EA0C53B3AD3ADF9382F135766D5589769B7672B5126CCD6C8928709CD638C28A38C0AC9CCEB239F147BA6CED8BDFB39688E1AB90CE31B44B76C32DBAEDEC4B84503160DB41E19F82B401B7A97D44161DBA79D991468635F04545982F7B818585F28A320B744533113515CA95B9CB37512E339E716C92569C8ED8122C131AD265B7859BBB069C136818A24250339E1ECCAD295CF95F6290BE90E2A94B21EE4AB84EA5755332AFDB1545CB97EFFB091221B9B3690B06D66795DE7898669609FB26A5D37814E", "D9B7F55592B02A6C1205C8F0C23F0B691B6F64194D1270F8042A7EB6563CB2B178F808AAC06FCEA7432B025499499F2D5B8B476BA469E7BC43E4A091E88BCEA08454E83D2606ADE78A4984D6B6A5586C04090051462AE79680A676735267607B256D5DB4C6A7B2846A73093885B277043B7E98CEED99BF743904438C8888064EE2834109A70141F791E5E26BB5281301064935850E40641183B4C1F3776DE042A78E0966540AA25CD484182B30FD3CBF0581B7B4A31250C103B6620059720C3D802726470D1C567B5908698650360DB82700E7B9DD26013B6A8184316DF3C59194FC96A0821A95C666EC5B130262006442CEF64428794672B43BC1EEBA20DE01BC70C15835952164E5A32705BFA7C64693B9BED53462F5AA6DE2569195147C70A789DE2153B3F64411534CFAD0ADBF8BC0AA51BDAF396E5746517C5547B3112FE08188DA54932B9B458458C55F146FEAA9620E7BB6CE21648AF047E0027C3553813AA81574F26483E93A5AB3642AA1332BC34F86328E5F80B272AA8971D175EE6A3D762ACD8279331E849179B9638C17B525AC600A598E4DCB7FFD68C31A9B27D3B17F63FA0E0DA16A3E54BC85DA61A0119A95201FA51906D6E2257B2CBD7235ABE8B80E80947CECB5CE87F9AF68442E8B6336C68AB0B170A67CC14F5E5377C4CB5930705775E522CA466DFEBB1AA800B452262A01966FF624CE79561B3A40258BE53512D01B749C25EC903923EA58E6677E02B0430E996000C637D002BA09DAC9E717AC64B634688B558D598E4017CBD46A160C621DBB2B961638B08A488FE8D814ACA37165A43DDD4B3908D84246794678823E794C9191332F344077FFAA50DBD2A6E0692ADDD353588B3E87E31F3AE4030B2371EEB1CAD20699BD6A459DBA53E6E3AA8A56BE4939B3E4B58C172CBBC4AB1F87235E1F114CB93C3150E25277459C43A6AABE39AF63EAC248D19F21B17AB5A2AC14169B01563DC818552CEAB71EEC2C2422C3E5F703B84BCFB457707A0B3EDC80C0EFA324D407D077CAB9B416B3A97713B89C6D65C2584CA652E6C4416BB44D3E7478EB21CE1A555456B94271689828560EAF4394BED93A86D48EC082A7BE576B75D00EC418228BF93C7037A49339352828AF07F3729BFA739B00D04B5502B9D6054BA525D724A0DF8506D9EA56D750072868CFCF07716AF003A02C45D4991F4503BF5AC86024857ACAE4CE24850DEF0632A6DCA9756C5C8A459341C69E93E154858B7C917592BB91C23AB622D3F84B9C81445E5A1E59262BFBF025286BBBB5D03EAA794445F7839F3AB51BF5AC48C978F0310128817D27E658D9F468F77C4C69DA09DD8526539C2598F4A4AC60E8CB68627382A145F91BE9D78FD51BA5E3FCBC3155B62BC07751DD083553153F7D65CD5CBE201E681245EDA61E1EC2C7EE6B91A9CCDEB6B76943B7E82FCC97CA60CCB27BF6938C975658AEB8B4D37CFFBDE25D97E561F36C219ADE\nencap_coins = F43F68FBD694F0A6D307297110ECD4739876489FDF07EB9B03364E2ED0FF96E9\nct = 9F38D01740BC9AD1D46FE0EB0AE538866B2846073AF151F9D55FA354233D0ACF62A7A3744814CCD33B4EEBF525565AC096212F5405624B3301B14630473760A30836E64EE14F3BAD9D97CE0ABD37753D4A104184BCE3DE9D9F0F486FD4A1CDDC786B887AB225C8D10AB156FEED875EC37904626ECC5CAE50F06349404C63C3D2F80A8FF43C2399ABD9B098EAA0A124D488A1DB5EBEC9A460F027A836840003AC23ECBF9A5612FE438B960029D4DDB3E66BEB79D8A8892D2FDBC1D4E70565DBDC756F9BBF85089FC6B448FF6F03F406693A8810B5B5D7B14D61B93157B7A6379F959964FA8540A830747E7689DC7164A1A1B4155798E74A8B17C2E89D7194F8E974B704403C9675E1DC4E1C196AACB0D5137A500023B683AC632EDD3ACF949D4A1E95E38EF6F6FDBCCB5EA800BB53255A69B4E33D513B27D022D0B414C8C1A7C335804643A76A0B617D5F2D6CA6A866C7234F981B63949CB413C7C257D495319BEF42E5817798400F9904C01223B77369139152E02A843011A3DA07E399470C225DA68951D1D52C36F12D73448CC81A6DC341F8AD79B107E3426218ADEDEEFF0FD8165FFF78C2282ED24C83490F3558BD1DBE0B9113A39F95A4AA6FDF64602377A41A8A2ADC01F3BD242200B97FF7E72CBAF937BFF6793519D91ADCE6327D1DE876BA662579450E48F7451A5DCBD9A0B866682922BD39CDB893E9465DCB2F6E12864ED2D35059B636FC7CF9B995FDE29D7F464446454FDD9ADCBCEC705F8A1102698D10671AE7FC3418209BB2627BCD5693DC23EA0322B2859338D0EDECD71867B571FDDBC7137969B48F51CB6EA8C731BB1189BC75738070254DCC8F7FD3FF295D6DDD36481A66C2AED8E43BEEE1513244CE52E936F4C8CE71349E756AC52F23C89E41DB4707E6B2BF92076FA5762562C8D941A2E3B56E011EA0215DD5D0AEA99E705EE4DD39517D4071B75D1DF6B38809A5A542BDB0941813916A726ED586D3A4196032DDF183A5F6DCB4F624CD69BEC9CBF6E8554CF26DF23E59A4E265B1C976B358B768398763C340D168CBDC8BF00F62CD01E19FD8DB87429291C688BD80\nss = 6F21DF33B8398BFA65C9C243214E22D0BEB5F0D801E4F9E71D476F8B7E3A9688\n\ncount = 3\nkeypair_coins = 050D58F9F757EDC1E8180E3808B806F5BBB3586DB3470B069826D1BB9A4EFC2CDE950541FD53A8A47AAA8CDFE80D928262A5EF7F8129EC3EF92F78D7CC32EF60\npk = E5DC61CC732B09E221AD8840D101040C4428A798704DB118C037476701A79AE30F9B7265038ABCD0933D1100492A6B2FBAA7C0D6C22704571520F35E322A4BEF080FCB4C83BC62C432F75F6EF22B2B1722351343CBE4460B25B4BC806BAC542576CA42F30C7DDEF6082199A4EDC2237E5271EEB024E154CBD2D57D4D5A59840561C0C76004A8BDE4F48F4E0168CCBA259BC99B9F4C54CC2A8C1489415C422F70249235235F81404C3601079A3C8095214AE03C86BB4A1487A00710DCA3DBAC8A89D045DE4768E56329EC6709A9208DF6D3AF6F8C7DDD6284F144120E1449BFCCC6CEA22BC3917C90F6591062525804054553A46A226093383F12B8529D306CA2FA03F3371DE8641463A353513A593D601F91937C3197CD535768F78AA4EC11C4F59267B5FA47B0B2312AE97B77AA1C3631B7033CB17B5A592C89091D0A2062F8C7299A2BD7F77832899B1A84AE67A3C11E87B17A0050523B9A9BB87DB0152CBEE582B9D821937A2770D07D6E2113832C1456662AB38475A1527FD23287E45822C5D0C19875CC4C60C9EDE44722552013B6AD7EE4B860EC2FF8337789832002026D7B54676B44667961654902912E3116402824A64CC67655018803AB2C06540123166D78B87BE63997692EFC099E4BD72D734B1E9DD6344DF12070773B06C5C1FF3B32417546EA5416C204917F104A3E603BF1F09FEFC3184FA43F06200423C3026B3A2374186DF33344CDE1CCDE212EBF626410907FDA57A9538B165B3911E016438C4B3F0E485B3CA3001EF03466A8749D1488E24685FC1CC89E012758473601B572ACAB4DB6A93EDAA6AADBCA7924C23115769DB3A4185AEBCD09A9B045B3437DAB3336B47A6BC23370A53A5E327B6654091F9A435451CC26B41ECBC129AE109475793C3977B532C6A8CB3317D3270BBC6BBFBCFA1C2AB2C41908520184000E3B62DBC3005839200B486D6B89B1719505F6FC4A3B7A41CE4A4677B64688284EC18915F17133F81C4F73C13E14632873652554685DEBB7B987C66D01B9049F6B2E44960022E7916B61A55C12C4F5E099CA059E3F98704AD5CA1D2676496C21782D978970256C691434F939B02C14F42B1874087EA68917C2F3E31315E22581\nsk = 456C6C1D6630BD63C8B0243D5B1A6ECC09A28B09BCBF96CFAF056E936A0184D6774D9524F4A6000E974FA7879574629504F09A12838DA39C7A90F4637C1BCBB16677B491B87F653AA41AB5F6E279F917C65403A78D07B136AC8486EACF42252428C3B09ECB91F7A953CF98484B036F48622A6DEA3A46E7B33C500B0E39620B640F6C14BE17FC6D04CB815D4691687737F413491A8B9E30F28C7E2BCBDEB92B21A1752B6261863C84FC5918EFEC496311CBC7557223CB65F2169EB6E1BA98B42A56B71CCC6133A7B50EE4442ECECABACDC960856B590F5792D973A3AB82B3FF6B36B64757D04787E0C4728C0649CFE16D2FEBAC26A2BFABF985CC8B1B5511CA85760FE559B28072286E9B4C732B156DB2A9D08238E54336A87837DC93B4742CAC0F05C2D75CCDF06787B21548F19280C05298BE80C79296BF9609A8D88347413B426A38001D59CB5787513FB53A51A0CD39C903E12A512891C43D39372EC2C0F3398DC091729CA80061DA2484A01C58B8530956268EB6A5E764443190CA2CA896F142C16D83BD93014EF7852ACFBC48C8702F1B39513EF20F50D92EAFE74CC057ADB1C363F59A9B962697C37892759859080A287D5B7EF62A4AEC718020519BD5B59DA69C60A249B55C68C2D523A507245D39C8374C67BA02D172CC98893761149BCB6FCF93CF779431DE95132A029591C92273078A403895C40467BE735B6D2346DFA33568F654A25B7586E63B5A820998374A0A01123CB915512C1557B4BD1366BE2C259C511492D4B200F9E618608997B2B80FDD873A42859D9B98A279121DE3A5A06652BE7E948C01045EE41A08C068519D9125A7BCB79C5C713F2C4CA4DB7C30F9A7A7052AB68280A4B59D22844551E4028F8740253447A479B5FDB0371FFB4C39104B51C13A3EC7364857A775F3A8837978F560C31052B01F648DACF8440EB3500C447EF81641130CAC60748CB1E108FACC918AF165224B91FD52C7EA1A7FB5F83217284D5E20C951FA0FE47352F3A22D80D0B95875BD80640D95142DB2639A830BA302F49A8CAABF009104F8B136BB75A38D168274307DB8D136EE08CEE5DC61CC732B09E221AD8840D101040C4428A798704DB118C037476701A79AE30F9B7265038ABCD0933D1100492A6B2FBAA7C0D6C22704571520F35E322A4BEF080FCB4C83BC62C432F75F6EF22B2B1722351343CBE4460B25B4BC806BAC542576CA42F30C7DDEF6082199A4EDC2237E5271EEB024E154CBD2D57D4D5A59840561C0C76004A8BDE4F48F4E0168CCBA259BC99B9F4C54CC2A8C1489415C422F70249235235F81404C3601079A3C8095214AE03C86BB4A1487A00710DCA3DBAC8A89D045DE4768E56329EC6709A9208DF6D3AF6F8C7DDD6284F144120E1449BFCCC6CEA22BC3917C90F6591062525804054553A46A226093383F12B8529D306CA2FA03F3371DE8641463A353513A593D601F91937C3197CD535768F78AA4EC11C4F59267B5FA47B0B2312AE97B77AA1C3631B7033CB17B5A592C89091D0A2062F8C7299A2BD7F77832899B1A84AE67A3C11E87B17A0050523B9A9BB87DB0152CBEE582B9D821937A2770D07D6E2113832C1456662AB38475A1527FD23287E45822C5D0C19875CC4C60C9EDE44722552013B6AD7EE4B860EC2FF8337789832002026D7B54676B44667961654902912E3116402824A64CC67655018803AB2C06540123166D78B87BE63997692EFC099E4BD72D734B1E9DD6344DF12070773B06C5C1FF3B32417546EA5416C204917F104A3E603BF1F09FEFC3184FA43F06200423C3026B3A2374186DF33344CDE1CCDE212EBF626410907FDA57A9538B165B3911E016438", @@ -6172,9 +6187,9 @@ static const char *kData83[] = { "382393BAE1057A62471C5A3A93CC874F96C294A6A4E00E6BBF8CC4CEA280942D0C43729B2576076E73B3EDEF1BE7317CADBB58DB1A046B617800D5CA0E352B6D40A16303C596652A4A2209C5C72428DE4B0D6B6821EAAB1F6824CB35A04E067B5264359A9A6CE8B3A26259B613710A672D13D2690CAAF62C5F4E86DC76AE2B345932A0E7025F8CE6101884469E31AEACAF4D77E3F1201BC755B70C5BB1B7AF3B643588AA7C20567D4259DBE6ABD7617A61B48185DE8F21E1CFDA268813EFAB5204EFA60F78BF81D320D01AC09AC06244F7AFBD2D80FD356D9\nencap_coins = 17FC65F7FBD7C75CEEC421DEE84DFF5A8CB22764A182DB17E0EBE857F54D60EB\nct = 574635B41959D57372E6FEA9111F6049FBB50222D5145F7948AFE0E3EF9DA90E3B840F750C7F30A71C7B7F2486FB077A00A1CD8ABB76E671D6CF81E0D9D4013797B2E47845CB53BE5C5C463D153D9E1DE67BF4565BEC71EC801D7B2C0677D329BC350451DD0BC557D7B1295028F28EE1FF0BBA2619C290C3087C6E12DCC1BF1E13727909B7C9FBC7B90665FAEB7DC8F31230A2D18ED38373A90C358B46642B9988CBB285072E86C6039E4B87A38D00FCC5152EC09767FD7E90E9F8EBB9E88ADF7C1D513A0D5D81F93EDBC90BC75B89B2A61D2D8D1D87B850055B030C75CF04A78B70564BD8928C1D48C3F17910A24AD6BC9D576EE3632066E76EB4BD3D5E01D8317F4336EA145941BAB1197CD06692B513AFC0CC46A30499AA33374EF6210423687DB64D3EF2999D500D685E7FC43D4D2BCED8974FB8C591AD22AE69928C2FEB8323D92874403F556FAD9AC1237A7587121B994416991B14A66AB98B525B6EF88979CC622603DE440A7483915F944D1F2647015D1C9F1E59BC570163243AEFEE7EDB5911D608E3EE6D3937BCC1A965AFC5EEA33940ABD3785DAC52283F591F998CECFA3E77A71CA656539B1BF72EF4E71880E65F8B1F864F05F6FCECB833DE2F9C31BA0241560E2525D8742A5BA061C3B1AE5831F152FA8332948EE5C94DB912ECE572612C54E161942078B89EA0B52A482CFB7F7F6D9E05F34BCEC46E1D4465C9CEB6DDEBBEEF90719702318AB9D4E7577663930AEC3132D739F9A6A5E36922B2FCAD65DD0691626A1FD77ACB5052B123A11585A162CB6175597640B82B937A16BB87CF0471B6FD8B84E97FF9C781C94EA41B7C070EEE016F0EDEF0EE84C519C77812B0D34DBCFC9D1CA4899EBCE6D6274159FCE7F6B3A2ABE8F46B072EFDD3B1965B4CFF53530019FC25E438FB669B7D214E6B36AA88D7B23659A736D65C7585308423F5CF547524FB9E4E3397430582DC2D0B008E66A6C4E7E8B526065322BB6E61CEED7DBD9755C0D3B589CF4FD573242E6B0D454DF9482AFB14775D7C436B39FAD83BD2CA5676D0ED0913116BD7C874E1D17AE9B126D4B20B08E2A0DEB5\nss = BF5106B2FA08DD74A6069B58A6E52AA724179225630D2E368A05DB3888567730\n\ncount = 99\nkeypair_coins = 195D6C86A3DF4C21E3007D7F2768B43C74CB3060E0ECA77F0A5D3271542B9A84AE77E0F9F21EABD8C0C6EEA7767F4E10FDE5C2D79B8400BF96B19014B457EC21\npk = 45C83435071624067D69587335B97BF564929709C8825A004B028AE09C40980A07E8D4BD604527EE221E8BAC67D34CBE762C26DF8453AAE8B8C82B59C51A85526ABA8DDC4B5F63CF69A5B367D3153E460F497A209C495FCA318862D6A57800865479A006012D82F7212B40284D310E01BCB11E122C1FD303E441807849A7EA47976A99ABB7CCC4B674AD66F68ECA195789B277D23C3D67BC418CA7C908B21E53984983BA0205E4689000ACE97238B3699016FA95E7A3A59CEC0BE813638527562FA9BF10D715E7505F6E1C1433521A918A7DF52760A0D8A9549569F10827C423CDDFF82AAE01A90111395487B9C82B7B5A7978D789679E66B75087BFBFF0569FC94E94F93531B721315926388431F2A36AE0F701BAC254BEFB437C58641D4560C8738A98F30918945DB0A6900AD2C2ABFC3E0F4786A4555639D84DCDD031D8F0508D8C774D68298BCAC4F42C6A7FF585AF491FA7D7C3BBB41727699EBB315C437B210D42626EBC66C916AF1F3515374314E4F40309CA7289C7BC51C301D8180EDC792D4DD44C41B77BD47A972D8434A9F03BB3954236EC422BE0C8E991A79AF286B6A7C459A95ED44868ED8052F2DB0F3741710228979507CFF961564882B5EA19515EE00D657C7141E9B05F9A24136A2F915620B664404B5397CC7842748973D0716CC273B528D51383A63FC8A3C4A3B1A8BC965775D750ADD6996C929E29F41E42362A759BAA76F5A3DC0552F1D83195960E45837901494A87F2A6DC3B5D8B73A9695C1229A0C9BDDB0B2D99AA350C6CAC657745C1308AF354E10595F3682A34DC26D9D28E2E2C4634ACA75E94384700C9C06B1BCA348330AC1791FAB1419099CF1288283BAB03DCA09AB3593CF3B12739CB44C0C04C6B93D1EA831DF6BCB8807AA6AA8CBEC64D749A9E47F851C47C6537E196F1FCC4D63B67D29A58E86B9A72A199CBB793C5084E5BAB20BD02289B4AAA64E4C119488531E8A651A31750148E1742C5390BB9995C123F3056AD44C476468DED4B88A49130E35B4B00803DD24718674CA708E436D5C15EE1D95367C623512653C83B27B41CB308F8C2929B193B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B8\nsk = 109CBF34136DA8C797072085F046541A205922B9B9291ACC027173C0D824AB1534102B07A399853C9B5D4FEA1F7CE38302C587FA9643AF3218AFDBB48F52C516B0074CD336242591691402750384DB8323F812A8926875014089DF7698554391F1D687A1A2380E9C2B81261656632EE78996D404AB4F224C0DD3ACD6B428B8D2AF81250E7D9825640C3F94D297B2506427505EB3045A8852708B6854F0A99437F6738F22C1DCE44C160163515074C3C72E2A4041C8A407DEE38AC53335841029BC005705894AB658224134421AD4AF7543009C0093B9B38597424A32DC9A5135BEEA4598D8F2589D72855AD37CD99880C1FA91116C1A933C70A176086D437443B63523145314003884EC19A0B745855002E4B63F4978520661C589D9132CA27F84E9AB5536B60420C89C9A9717082AD58A05E8C808C7155600C199E8FC3AD01B229308071A2B9587E203FD211442F3AB9E9236AAEB8C6555C1D47A75FFF45A5D7A5EBE85A8DCB7CEB077393712CF9F7C465D066F80C359C7A3C713CC21A4653078FCC51B7232E48900ED750986156CAB756D9AF0C685263B19772B35A8AC3E214E8B7B9F3785395B500F76477858B123E24C0E63419CC6DB517A148E560A358EF50B8AB238D000181555B46DB95D9E8C1BDA5273CD58818E322831A71301D092904289CB4C017FD1C86D758C064136F6B937ED222BBFF244DE7C213CE24C967CC5787B87747A305C73223BC2A6CFCA8450D4954CB21E3D160E5B860E89DCB38F8BCFD016A927997F6E9C7C1E2A2FF97C93879CC1A5E30C20D80423F83C84373B85384BB7D88E9FECCACF73AB59969750410AE69537C3225D3423ACBA55174415A259F60E58117712C21ACEE6A97D281CC6642997833371358F60C35DA6E6A833E5BB20D94EEEA16E7093501AD54AB65CAAE67754B9560B5F68B78B44AB26B439D453412206325186BC4EC2479FC103E73B057A972AEF6949D7403BEDA51D82F0C654FA1136071B876704C7C9333DB252B4A37A06755A1CD428B8041D8C80A94AA76CD8D65D1E16A8D240AC71DB05DFB69D1439B57D9A3E262CCA3FECA48D9C1145C83435071624067D69587335B97BF564929709C8825A004B028AE09C40980A07E8D4BD604527EE221E8BAC67D34CBE762C26DF8453AAE8B8C82B59C51A85526ABA8DDC4B5F63CF69A5B367D3153E460F497A209C495FCA318862D6A57800865479A006012D82F7212B40284D310E01BCB11E122C1FD303E441807849A7EA47976A99ABB7CCC4B674AD66F68ECA195789B277D23C3D67BC418CA7C908B21E53984983BA0205E4689000ACE97238B3699016FA95E7A3A59CEC0BE813638527562FA9BF10D715E7505F6E1C1433521A918A7DF52760A0D8A9549569F10827C423CDDFF82AAE01A90111395487B9C82B7B5A7978D789679E66B75087BFBFF0569FC94E94F93531B721315926388431F2A36AE0F701BAC254BEFB437C58641D4560C8738A98F30918945DB0A6900AD2C2ABFC3E0F4786A4555639D84DCDD031D8F0508D8C774D68298BCAC4F42C6A7FF585AF491FA7D7C3BBB41727699EBB315C437B210D42626EBC66C916AF1F3515374314E4F40309CA7289C7BC51C301D8180EDC792D4DD44C41B77BD47A972D8434A9F03BB3954236EC422BE0C8E991A79AF286B6A7C459A95ED44868ED8052F2DB0F3741710228979507CFF961564882B5EA19515EE00D657C7141E9B05F9A24136A2F915620B664404B5397CC7842748973D0716CC273B528D51383A63FC8A3C4A3B1A8BC965775D750ADD6996C929E29F41E42362A759BAA76F5A3DC0552F1D83195960E45837901494A87F2A6DC3B5D8B73A9695C1229A0C9BDDB0B2D99AA350C6CAC657745C1308AF354E10595F3682A34DC26D9D28E2E2C4634ACA75E94384700C9C06B1BCA348330AC1791FAB1419099CF1288283BAB03DCA09AB3593CF3B12739CB44C0C04C6B93D1EA831DF6BCB8807AA6AA8CBEC64D749A9E47F851C47C6537E196F1FCC4D63B67D29A58E86B9A72A199CBB793C5084E5BAB20BD02289B4AAA64E4C119488531E8A651A31750148E1742C5390BB9995C123F3056AD44C476468DED4B88A49130E35B4B00803DD24718674CA708E436D5C15EE1D95367C623512653C83B27B41CB308F8C2929B193B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B801782FCE09E644E310C9286F1E381BE9EA8C54A1804E61F2958C1F975AEC185AAE77E0F9F21EABD8C0C6EEA7767F4E10FDE5C2D79B8400BF96B19014B457EC21\nencap_coins = FA0489F3730100609488E951E6AAA15C0F193BC1DBCFCD013BC418D6C507B176\nct = C1CDDAD05884B190BCAFBE0801DF40DE778C3526C3532B0A3C3210B58A58C43854193262AC73F2B36EF86E845E760577D9A84D484B5DF9D1077E31AF1250AB1F1F58A083DEEFAA0EA286EB4F6E9367F816535DA3FA561E47FE2A099A7B85D50D257867871CF5E366FFCB2D5D12794A7A3F9E386D15BF7142070D8AB1FDB1381CC8FC2E9493CAE2D69CDC895B738A1880C68B65735A07FA1750E811F76103FE5ACBFFAB84796BFC7226770E8FB91EDDF2EE277F124EEB316CAE7CCD261D8D1B616F0D61AC9A724023DBAE8DF28FB1FB838A062B8EA1CB02B885AB581A69EBB26330B5B3C2016D44A8E5AE6FC91AAAB0DCDD913297B20E992EF61D99CF3F121FA8F15B1A25B399E8102AEB82E97450E6D7A7A5B252C0B09AB3A1787F7C0D8387DC6F1246A77D358761D517657ABE83A3B9DA46CCCC8950BFAA847A77EFA05667BA303AE093F5E9F4116C7650AA55B50B60775AD09F504396EFD597928FBC7210738E4F9C769D7E4305B8480B056A5A0D3C432C189AC0771224E33239BEAFF8454B05ED2350B1F663100C66BAFC7F293EBC5FACD16B4F881E60285ED69FE34BF3E2051B9B306EEFEF06F1AFB90D5045821D0C8EF397226B3694EA9CBEABD3704D2CE4CFF3A54F548D6ED6C4BAFEDB200A2B7C7BD4D4D833AD4FF683E0", "50A98E1C3B5FAEFB169F8C1228B094FCE1FF49C4441A5425E19FE2D827989455BFED7480FEFD4B23395EBBB6275E1DBB36702D05016E415960F853A20653C3C6B96C5313BC956F6F2F90828568E53E9858AF0CE7F66E1F8D868F8F6AB9D91B6E7AB1AB8EF5D2977D1042D429F99854EE7AA417825E18CFAFEFB23FC880D33C426414C809B00CB8BE071C78EBE49DA003B3792C6906978D0E6EDC15B41990AAAB7E88C39B002E76BAB15730284C31F54F7FA6C79896D2A6BD51F6658C1E8934F26C95FDCF451A1EDE18270BEA4D7162A5D132882D1302C417311A2FCA6410443FC00A5916D8EC9FFC5A9CE03AE790A787AAEE7313B66C9A8AE1A39540776DCC9AFE4624C99393758E53E5DC51536C2E4937562DAEA312B41852DDBCD82675E820595B1BA3E7\nss = D181D65623E3A59950E40AA86A1452CDE8BF98F409D0F8CECDAAECBCCC864A35\n\n", }; -static const size_t kLen84 = 966802; +static const size_t kLen85 = 966802; -static const char *kData84[] = { +static const char *kData85[] = { "# Kyber768\n\ncount = 0\nkeypair_coins = 7C9935A0B07694AA0C6D10E4DB6B1ADD2FD81A25CCB148032DCD739936737F2D8626ED79D451140800E03B59B956F8210E556067407D13DC90FA9E8B872BFB8F\npk = A72C2D9C843EE9F8313ECC7F86D6294D59159D9A879A542E260922ADF999051CC45200C9FFDB60449C49465979272367C083A7D6267A3ED7A7FD47957C219327F7CA73A4007E1627F00B11CC80573C15AEE6640FB8562DFA6B240CA0AD351AC4AC155B96C14C8AB13DD262CDFD51C4BB5572FD616553D17BDD430ACBEA3E95F0B698D66990AB51E5D03783A8B3D278A5720454CF9695CFDCA08485BA099C51CD92A7EA7587C1D15C28E609A81852601B0604010679AA482D51261EC36E36B8719676217FD74C54786488F4B4969C05A8BA27CA3A77CCE73B965923CA554E422B9B61F4754641608AC16C9B8587A32C1C5DD788F88B36B717A46965635DEB67F45B129B99070909C93EB80B42C2B3F3F70343A7CF37E8520E7BCFC416ACA4F18C7981262BA2BFC756AE03278F0EC66DC2057696824BA6769865A601D7148EF6F54E5AF5686AA2906F994CE38A5E0B938F239007003022C03392DF3401B1E4A3A7EBC6161449F73374C8B0140369343D9295FDF511845C4A46EBAAB6CA5492F6800B98C0CC803653A4B1D6E6AAED1932BACC5FEFAA818BA502859BA5494C5F5402C8536A9C4C1888150617F80098F6B2A99C39BC5DC7CF3B5900A21329AB59053ABAA64ED163E859A8B3B3CA3359B750CCC3E710C7AC43C8191CB5D68870C06391C0CB8AEC72B897AC6BE7FBAACC676ED66314C83630E89448C88A1DF04ACEB23ABF2E409EF333C622289C18A2134E650C45257E47475FA33AA537A5A8F7680214716C50D470E3284963CA64F54677AEC54B5272162BF52BC8142E1D4183FC017454A6B5A496831759064024745978CBD51A6CEDC8955DE4CC6D363670A47466E82BE5C23603A17BF22ACDB7CC984AF08C87E14E27753CF587A8EC3447E62C649E887A67C36C9CE98721B697213275646B194F36758673A8ED11284455AFC7A8529F69C97A3C2D7B8C636C0BA55614B768E624E712930F776169B01715725351BC74B47395ED52B25A1313C95164814C34C979CBDFAB85954662CAB485E75087A98CC74BB82CA2D1B5BF2803238480638C40E90B43C7460E7AA917F010151FAB1169987B372ABB59271F7006C24E60236B84B9DDD600623704254617FB498D89E58B0368BCB2103E79353EB587860C1422E476162E425BC2381DB82C6592737E1DD602864B0167A71EC1F223305C02FE25052AF2B3B5A55A0D7A2022D9A798DC0C5874A98702AAF4054C5D80338A5248B5B7BD09C53B5E2A084B047D277A861B1A73BB51488DE04EF573C85230A0470B73175C9FA50594F66A5F50B4150054C93B68186F8B5CBC49316C8548A642B2B36A1D454C7489AC33B2D2CE6668096782A2C1E0866D21A65E16B585E7AF8618BDF3184C1986878508917277B93E10706B1614972B2A94C7310FE9C708C231A1A8AC8D9314A529A97F469BF64962D820648443099A076D55D4CEA824A58304844F99497C10A25148618A315D72CA857D1B04D575B94F85C01D19BEF211BF0AA3362E7041FD16596D808E867B44C4C00D1CDA3418967717F147D0EB21B42AAEE74AC35D0B92414B958531AADF463EC6305AE5ECAF79174002F26DDECC813BF32672E8529D95A4E730A7AB4A3E8F8A8AF979A665EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B53922\nsk = 07638FB69868F3D320E5862BD96933FEB311B362093C9B5D50170BCED43F1B536D9A204BB1F22695950BA1F2A9E8EB828B284488760B3FC84FABA04275D5628E39C5B2471374283C503299C0AB49B66B8BBB56A4186624F919A2BA59BB08D8551880C2BEFC4F87F25F59AB587A79C327D792D54C974A69262FF8A78938289E9A87B688B083E0595FE218B6BB1505941CE2E81A5A64C5AAC60417256985349EE47A52420A5F97477B7236AC76BC70E8288729287EE3E34A3DBC3683C0B7B10029FC203418537E7466BA6385A8FF301EE12708F82AAA1E380FC7A88F8F205AB7E88D7E95952A55BA20D09B79A47141D62BF6EB7DD307B08ECA13A5BC5F6B68581C6865B27BBCDDAB142F4B2CBFF488C8A22705FAA98A2B9EEA3530C76662335CC7EA3A00777725EBCCCD2A4636B2D9122FF3AB77123CE0883C1911115E50C9E8A94194E48DD0D09CFFB3ADCD2C1E92430903D07ADBF00532031575AA7F9E7B5A1F3362DEC936D4043C05F2476C07578BC9CBAF2AB4E382727AD41686A96B2548820BB03B32F11B2811AD62F489E951632ABA0D1DF89680CC8A8B53B481D92A68D70B4EA1C3A6A561C0692882B5CA8CC942A8D495AFCB06DE89498FB935B775908FE7A03E324D54CC19D4E1AABD3593B38B19EE1388FE492B43127E5A504253786A0D69AD32601C28E2C88504A5BA599706023A61363E17C6B9BB59BDC697452CD059451983D738CA3FD034E3F5988854CA05031DB09611498988197C6B30D258DFE26265541C89A4B31D6864E9389B03CB74F7EC4323FB9421A4B9790A26D17B0398A26767350909F84D57B6694DF830664CA8B3C3C03ED2AE67B89006868A68527CCD666459AB7F056671000C6164D3A7F266A14D97CBD7004D6C92CACA770B844A4FA9B182E7B18CA885082AC5646FCB4A14E1685FEB0C9CE3372AB95365C04FD83084F80A23FF10A05BF15F7FA5ACC6C0CB462C33CA524FA6B8BB359043BA68609EAA2536E81D08463B19653B5435BA946C9ADDEB202B04B031CC960DCC12E4518D428B32B257A4FC7313D3A7980D80082E934F9D95C32B0A0191A23604384DD9E079BBBAA266D14C3F756B9F2133107433A4E83FA7187282A809203A4FAF841851833D121AC383843A5E55BC2381425E16C7DB4CC9AB5C1B0D91A47E2B8DE0E582C86B6B0D907BB360B97F40AB5D038F6B75C814B27D9B968D419832BC8C2BEE605EF6E5059D33100D90485D378450014221736C07407CAC260408AA64926619788B8601C2A752D1A6CBF820D7C7A04716203225B3895B9342D147A8185CFC1BB65BA06B4142339903C0AC4651385B45D98A8B19D28CD6BAB088787F7EE1B12461766B43CBCCB96434427D93C065550688F6948ED1B5475A425F1B85209D061C08B56C1CC069F6C0A7C6F29358CAB911087732A649D27C9B98F9A48879387D9B00C25959A71654D6F6A946164513E47A75D005986C2363C09F6B537ECA78B9303A5FA457608A586A653A347DB04DFCC19175B3A301172536062A658A95277570C8852CA8973F4AE123A334047DD711C8927A634A03388A527B034BF7A8170FA702C1F7C23EC32D18A2374890BE9C787A9409C82D192C4BB705A2F996CE405DA72C2D9C843EE9F8313ECC7F86D6294D59159D9A879A542E260922ADF999051CC45200C9FFDB60449C49465979272367C083A7D6267A3ED7A7FD47957C219327F7CA73A4007E1627F00B11CC80573C15AEE6640FB8562DFA6B240CA0AD351AC4AC155B96C14C8AB13DD262CDFD51C4BB5572FD616553D17BDD430ACBEA3E95F0B698D66990AB51E5D03783A8B3D278A5720454CF9695CFDCA08485BA099C51CD92A7EA7587C1D15C28E609A81852601B0604010679AA482D51261EC36E36B8719676217FD74C54786488F4B4969C05A8BA27CA3A77CCE73B965923CA554E422B9B61F4754641608AC16C9B8587A32C1C5DD788F88B36B717A46965635DEB67F45B129B99070909C93EB80B42C2B3F3F70343A7CF37E8520E7BCFC416ACA4F18C7981262BA2BFC756AE03278F0EC66DC2057696824BA6769865A601D7148EF6F54E5AF5686AA2906F994CE38A5E0B938F239007003022C03392DF3401B1E4A3A7EBC6161449F73374C8B0140369343D9295FDF511845C4A46EBAAB6CA5492F6800B98C0CC803653A4B1D6E6AAED1932BACC5FEFAA818BA502859BA5494C5F5402C8536A9C4C1888150617F80098F6B2A99C39BC5DC7CF3B5900A21329AB59053ABAA64ED163E859A8B3B3CA3359B750CCC3E710C7AC43C8191CB5D68870C06391C0CB8AEC72B897AC6BE7FBAACC676ED66314C83630E89448C88A1DF04ACEB23ABF2E409EF333C622289C18A2134E650C45257E47475FA33AA537A5A8F7680214716C50D470E3284963CA64F54677AEC54B5272162BF52BC8142E1D4183FC017454A6B5A496831759064024745978CBD51A6CEDC8955DE4CC6D363670A47466E82BE5C23603A17BF22ACDB7CC984AF08C87E14E27753CF587A8EC3447E62C649E887A67C36C9CE98721B697213275646B194F36758673A8ED11284455AFC7A8529F69C97A3C2D7B8C636C0BA55614B768E624E712930F776169B01715725351BC74B47395ED52B25A1313C95164814C34C979CBDFAB85954662CAB485E75087A98CC74BB82CA2D1B5BF2803238480638C40E90B43C7460E7AA917F010151FAB1169987B372ABB59271F7006C24E60236B84B9DDD600623704254617FB498D89E58B0368BCB2103E79353EB587860C1422E476162E425BC2381DB82C6592737E1DD602864B0167A71EC1F223305C02FE25052AF2B3B5A55A0D7A2022D9A798DC0C5874A98702AAF4054C5D80338A5248B5B7BD09C53B5E2A084B047D277A861B1A73BB51488DE04EF573C85230A0470B73175C9FA50594F66A5F50B4150054C93B68186F8B5CBC49316C8548A642B2B36A1D454C7489AC33B2D2CE6668096782A2C1E0866D21A65E16B585E7AF8618BDF3184C1986878508917277B93E10706B1614972B2A94C7310FE9C708C231A1A8AC8D9314A529A97F469BF64962D820648443099A076D55D4CEA824A58304844F99497C10A25148618A315D72CA857D1B04D575B94F85C01D19BEF211BF0AA3362E7041FD16596D808E867B44C4C00D1CDA3418967717F147D0EB21B42AAEE74AC35D0B92414B958531AADF463EC6305AE5ECAF79174002F26DDECC813BF32672E8529D95A4E730A7AB4A3E8F8A8AF979A665EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B53922D4EC143B50F01423B177895EDEE22BB739F647ECF85F50BC25EF7B5A725DEE868626ED79D451140800E03B59B956F8210E556067407D13DC90FA9E8B872BFB8F\nencap_coins = 147C03F7A5BEBBA406C8FAE1874D7F13C80EFE79A3A9A874CC09FE76F6997615\nct = B52C56B92A4B7CE9E4CB7C5B1B163167A8A1675B2FDEF84A5B67CA15DB694C9F11BD027C30AE22EC921A1D911599AF0585E48D20DA70DF9F39E32EF95D4C8F44BFEFDAA5DA64F1054631D04D6D3CFD0A540DD7BA3886E4B5F13E878788604C95C096EAB3919F427521419A946C26CC041475D7124CDC01D0373E5B09C7A70603CFDB4FB3405023F2264DC3F983C4FC02A2D1B268F2208A1F6E2A6209BFF12F6F465F0B069C3A7F84F606D8A94064003D6EC114C8E808D3053884C1D5A142FBF20112EB360FDA3F0F28B172AE50F5E7D83801FB3F0064B687187074BD7FE30EDDAA334CF8FC04FA8CED899CEADE4B4F28B68372BAF98FF482A415B731155B75CEB976BE0EA0285BA01A27F1857A8FB377A3AE0C23B2AA9A079BFABFF0D5B2F1CD9B718BEA03C42F343A39B4F142D01AD8ACBB50E38853CF9A50C8B44C3CF671A4A9043B26DDBB24959AD6715C08521855C79A23B9C3D6471749C40725BDD5C2776D43AED20204BAA141EFB3304917474B7F9F7A4B08B1A93DAED98C674", "95359D37D67F7438BEE5E43585634B26C6B3810D7CDCBC0F6EB877A6087E68ACB8480D3A8CF6900447E49B417F15A53B607A0E216B855970D37406870B4568722DA77A4084703816784E2F16BED18996532C5D8B7F5D214464E5F3F6E905867B0CE119E252A66713253544685D208E1723908A0CE97834652E08AE7BDC881A131B73C71E84D20D68FDEFF4F5D70CD1AF57B78E3491A9865942321800A203C05ED1FEEB5A28E584E19F6535E7F84E4A24F84A72DCAF5648B4A4235DD664464482F03176E888C28BFC6C1CB238CFFA35A321E71791D9EA8ED0878C61121BF8D2A4AB2C1A5E120BC40ABB1892D1715090A0EE48252CA297A99AA0E510CF26B1ADD06CA543E1C5D6BDCD3B9C585C8538045DB5C252EC3C8C3C954D9BE5907094A894E60EAB43538CFEE82E8FFC0791B0D0F43AC1627830A61D56DAD96C62958B0DE780B78BD47A604550DAB83FFF227C324049471F35248CFB849B25724FF704D5277AA352D550958BE3B237DFF473EC2ADBAEA48CA2658AEFCC77BBD4264AB374D70EAE5B964416CE8226A7E3255A0F8D7E2ADCA062BCD6D78D60D1B32E11405BE54B66EF0FDDD567702A3BCCFEDE3C584701269ED14809F06F8968356BB9267FE86E514252E88BB5C30A7ECB3D0E621021EE0FBF7871B09342BF84F55C97EAF86C48189C7FF4DF389F077E2806E5FA73B3E9458A16C7E275F4F602275580EB7B7135FB537FA0CD95D6EA58C108CD8943D70C1643111F4F01CA8A8276A902666ED81B78D168B006F16AAA3D8E4CE4F4D0FB0997E41AEFFB5B3DAA838732F357349447F387776C793C0479DE9E99498CC356FDB0075A703F23C55D47B550EC89B02ADE89329086A50843456FEDC3788AC8D97233C54560467EE1D0F024B18428F0D73B30E19F5C63B9ABF11415BEA4D0170130BAABD33C05E6524E5FB5581B22B0433342248266D0F1053B245CC2462DC44D34965102482A8ED9E4E964D5683E5D45D0C8269\nss = 914CB67FE5C38E73BF74181C0AC50428DEDF7750A98058F7D536708774535B29\n\ncount = 1\nkeypair_coins = D60B93492A1D8C1C7BA6FC0B733137F3406CEE8110A93F170E7A78658AF326D9003271531CF27285B8721ED5CB46853043B346A66CBA6CF765F1B0EAA40BF672\npk = 6DD406B49B9CA035467FD26C6C0B824BEA310F435FBE8BBBD3430B5C39889E6B117E994E2F08823A33789FF858B72715323C6204A241D9835EC0DA85C5884A8A96210219099C8C383C182632280356C1B4F298405258A170E81624E861FC1082D31867A9037E3B90B0AEEAA064D27020DA7BA79398FA92A963A8A294E7720BD4CD9EA213F08063079C4D55B094BEBC4E979444F462B967972E61206FCC80337911B02C7396BC64405FFC0B77CCCD2EBC121A734037CB90B77846B2359C30A451BEB20A6D72C238284E5DF2AD1CC1A33FD5A104965C86251A596360D541240A4828231A827A0168B6D8AC7E27328173886453A9C91498765C2BD9EA9F666BB4A1D60F992538A1A746DF845574F99ADAD23B9744AFA81C7FB79A32B175706454438F46B8985132B8E1CCA10C2B0FA011EAB2428B88CFEF9378A5228E55D7463DFA5022C998ABD6354118B5116B3BC1004F0008134B85A1CF2A9F409A10E14B6D06C26D8E355864C35BC71B60D5CAC33A513EFDF6B9BB83BC880983682C8FB8A81B6927CA52E93835956795488181A8CD82B1A50DD18A25F35E2643CDD76C282E7018BB99624F031418FBC8052C4179B43A5998BE9A20CD2D8A883B313EC282598202ADD6471971C88CD9607D3A8052519930BC5BC71CA4652352B4D02620B8D983B9849CE8B8935F1A4DECC3250DE7B0CFCB49EB7B74E0B5792AE97633B092081C3C6BF58F1B242CA07610C3387098AC3F0F9043901C614590C4EBBC64CE1971E824694A999CBCC430AE923A1432B6A4911162213C429481394A27006B9D48C0AB5801823D756BFD8C6919502D613594AEC81F5669BD4E8495292606959292467CCAC7F688333B3F48A39FCE5C42C9C2653886A5ADF4747CC943B2416348F46DF5B58E4916BA64E9664A4BAAA3E0A9652408C8E5076C226C3A7932C42A846949A2A26B4E2C452F86CACFE5C201AE1321AB5C2CABDA557648A849241F077A799EDBA3582202CB27763047219F5546CF18819322B9C63974B322B949BAA491D97C70F20545886C87086721D3CA2AEAB441264B516975ED0C6044A425853528424532E4D721E85CB0BF65C26082C790765B062916FAC4A0DCECBC2E900C6F600270838E2DF20EE0A907E3613DCEE049C445640362C980A292F123C6C9B5918F21443C996016C44D2A124C5925A8E0C48E89BB167A129FCBF67ADB89903E1249F6028BC176BACC722366139858E583EB582ADA714E79B5AD1BC1A6F18754E100624620968D0702E080BEFEC425BC16B650A307802004C57590897C87E65347F32C324569051D798BEBDB421EB28B2D1A0C662444C7DB32BF97845D7225C7539F457894EB87606FA85B5E804053FB6ECDEA773566C006E540EE65101D99BF314181D666680985C78B103DD00A040DC69CFF389FEA7C18E48A363B943FF042B476DC86BE953A5925076CF749A62A77A9406165D31DACDC3A677B9114D8BF84B43F59F647FA4023535140FDE04285921184809C5F193A7DF45F62187854061A4D6754DA528F3B71A134AA487D9B5F7CFC6838108B8B95B51F5540C9EA5F29990F7BE07EFD502461033F103723093A16DD96C098977F81330249183CF35A636841BD1A9B9796F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D2\nsk = 94B49EA42526935245C45A7D580B6AEFF8BBE0F5342BB8BD2550212AD5935F45CBA7CAA6DF914007FBA79E9946C9433A86A2C4202BBDCEA008AF78975E6619D3582787530DBB7318A530B7B5A27D24258C7CCAAAF505CA92CB853A5818D4269BE812BECF169A05E71EB957557787C2F3B72315281DBA87476B157A06095A30D52B388AC22840755B43440A931DF8A709DC435B415A7BABBB04CCD93CDA00CA1FB090646B1D6514813368A794D38C907163B5917496B018C519B160C5144D6424495626E3A5AB9FFB8D8D3168D77599A88A1D12C07D86498D88DC1AF7FA7DE15073FD4B62801C1A902B215E7CC3EAC350BB63ADEAF9C7594844795A9A6274AA3ECA0CD10891F05795A77B30ADD76B6B1A35338B8156690CA2EA1C9C3B602B23324925314F726535B36DFB355225D37E7C85BE15A5976A8A6AD4E2C35D4C45ACC954368BA6DF88A47DBB8C782336F7EA507A6C2D26D952DC03B4BFB89872644084783AB493CD72D3BEFC2C803B692729638AF69B03E6DB9B82E678A42969FBE770FEF65723F77DA6437C20B203601C884A9B9E08C0B1DDBBC1A66517DCFC76B3F125F7795E5DDABEF0CB00119778575513E05AC38A7901A0E8C8794685C0F274050097BC50168818A74ABA5D71980F5C76279EC0214CD51EFA8A21391567FA052E6DC0CF9BF216CFF9287C80693645A53D71B3D7509F6A432D51B2B0AAD129B594278DA74FFACBB713357D735A744B7C65E482B7E172C67A5B4EDABAAE11222B8BB6B4564AB4FB20C28B4981614B69BB188DB6056607E089F64803D89210C7E604266B00548A2AE27996196A6D6F762C27B22731F7942543CCEF3856EDF9AD1B1B1652A33C3E038DD9B2CD9A4612CE174315E67B26DAC767E50E68508D104BBAE1A2B89B78266D27B109F90BCE1581A8B8888C90C1C4EA5FC1F009D5073780CB4545087C88026B9B9ABDDAB923DB52620713C8B5AC3301E8715AC39D13084926E841FAE41A7BBB7912E10680A78C0C363A251720B2D69467B6CAC5D894F862595072A7C9B14BFEFAA2FDCC75CC42892CEC6184B52962B9B73D663B7D76C1EA499D538BB45A4CAECEE0C8EB93BBA5EC1A8C936156382B10102E3211B2DC15663412805F60590EC33DBAB80D2A3BC05FA8AF5145644F712E004C20F799650159C40DC952C9A54C27E816C3A6A95EFBAB24A31F6C402300F9BAF88A46644B4DF8A24979E80DC30425B9E75A753A36510B87C5FA95CBF36E19A12245876003B54D4E008EF7AB9D83C5A2406014B5CC33B6167F4C452AF45084B7412EC19556D82B0A6A90C1AEA60A72312D8A7A8E5060189717094FF950AF2B503988964F0AA227C523487471D3BC905B6672BE20BC714729B7A71478B07A19F777DEC546C624723AF7B5F6C142274AC5652A7C2D7ABBF1171F2BDB12F1ECC876681A600806D6FC229E6A8F6424419187BD22E49B8F27486DB25371C169B3F61E81131B57659B1030A959790BA5D6424580B1F588326DB9CD01A260B21B8C42062B883854FB173EA7613764D41DD6B89468C7BA6C4236D1A0436B945B8B340983023139293FC48C07659B955453BBA07B0EB4E2A91F594232A47C65C66E1C5C8279F179925C55EE3A0B6DD406B49B9CA035467FD26C6C0B824BEA310F435FBE8BBBD3430B5C39889E6B117E994E2F08823A33789FF858B72715323C6204A241D9835EC0DA85C5884A8A96210219099C8C383C182632280356C1B4F298405258A170E81624E861FC1082D31867A9037E3B90B0AEEAA064D27020DA7BA79398FA92A963A8A294E7720BD4CD9EA213F08063079C4D55B094BEBC4E979444F462B967972E61206FCC80337911B02C7396BC64405FFC0B77CCCD2EBC121A734037CB90B77846B2359C30A451BEB20A6D72C238284E5DF2AD1CC1A33FD5A104965C86251A596360D541240A4828231A827A0168B6D8AC7E27328173886453A9C91498765C2BD9EA9F666BB4A1D60F992538A1A746DF845574F99ADAD23B9744AFA81C7FB79A32B175706454438F46B8985132B8E1CCA10C2B0FA011EAB2428B88CFEF9378A5228E55D7463DFA5022C998ABD6354118B5116B3BC1004F0008134B85A1CF2A9F409A10E14B6D06C26D8E355864C35BC71B60D5CAC33A513EFDF6B9BB83BC880983682C8FB8A81B6927CA52E93835956795488181A8CD82B1A50DD18A25F35E2643CDD76C282E7018BB99624F031418FBC8052C4179B43A5998BE9A20CD2D8A883B313EC282598202ADD6471971C88CD9607D3A8052519930BC5BC71CA4652352B4D02620B8D983B9849CE8B8935F1A4DECC3250DE7B0CFCB49EB7B74E0B5792AE97633B092081C3C6BF58F1B242CA07610C3387098AC3F0F9043901C614590C4EBBC64CE1971E824694A999CBCC430AE923A1432B6A4911162213C429481394A27006B9D48C0AB5801823D756BFD8C6919502D613594AEC81F5669BD4E8495292606959292467CCAC7F688333B3F48A39FCE5C42C9C2653886A5ADF4747CC943B2416348F46DF5B58E4916BA64E9664A4BAAA3E0A9652408C8E5076C226C3A7932C42A846949A2A26B4E2C452F86CACFE5C201AE1321AB5C2CABDA557648A849241F077A799EDBA3582202CB27763047219F5546CF18819322B9C63974B322B949BAA491D97C70F20545886C87086721D3CA2AEAB441264B516975ED0C6044A425853528424532E4D721E85CB0BF65C26082C790765B062916FAC4A0DCECBC2E900C6F600270838E2DF20EE0A907E3613DCEE049C445640362C980A292F123C6C9B5918F21443C996016C44D2A124C5925A8E0C48E89BB167A129FCBF67ADB89903E1249F6028BC176BACC722366139858E583EB582ADA714E79B5AD1BC1A6F18754E100624620968D0702E080BEFEC425BC16B650A307802004C57590897C87E65347F32C324569051D798BE", "BDB421EB28B2D1A0C662444C7DB32BF97845D7225C7539F457894EB87606FA85B5E804053FB6ECDEA773566C006E540EE65101D99BF314181D666680985C78B103DD00A040DC69CFF389FEA7C18E48A363B943FF042B476DC86BE953A5925076CF749A62A77A9406165D31DACDC3A677B9114D8BF84B43F59F647FA4023535140FDE04285921184809C5F193A7DF45F62187854061A4D6754DA528F3B71A134AA487D9B5F7CFC6838108B8B95B51F5540C9EA5F29990F7BE07EFD502461033F103723093A16DD96C098977F81330249183CF35A636841BD1A9B9796F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D22CEDAD700B675E98641BEA57B936BD8BEFCE2D5161E0EF4EF8406E70F1E2C27C003271531CF27285B8721ED5CB46853043B346A66CBA6CF765F1B0EAA40BF672\nencap_coins = CDE797DF8CE67231F6C5D15811843E01EB2AB84C7490931240822ADBDDD72046\nct = 68F11F4A8D07DBA08EAD094A93BF00141CED64E2CB3E68A59987CA3298E259ACEBB820650F861C6AF5FA565920825AE4A61A5395CEA7DDC6806E7D15D42635C8177E17A9B7110118C3FBCED5B2A73EA79B86D5B41D92C14C0302B6B1B9DB25CC2F923B32CCAA054C7B07E58EA2ECFE4F0B17C97E4E5571E04ABF67468B6DF3B64AA545B7E348E45DFB18BD186C7A17C7A3EC326E65BF7BB025D7D23B14F733698FDB79CA9CFDB85AD40F35170D98289DA8190F50A25FAC16043377736664411767C28978664444A2DA6F630D0FA54230F0DA6CCD158C5986921A356A3BF528C996A767A44FF765967A06773C4F392CE9209CBA2CE05DC63A43D1AE40C2E86DAA0F56237962B058E0D40DCE5EFF7AA165B6A9D1DFAC0D19BBC0A94466EC53DD1E28A8B01722E28C761E8AC0B97ADE7CAA0447465C40A54BA799F8A011EC1BB0E7DA7D4362215F5FAB54373791102FBCB77480A805008A5E89E6A74B15257B38BFD906841A841A475F47720AD19F34409ED6BD37C2BCD7DE06E4E04181116D0BB2050F9C60F635FEE337DCCAAEB870BA7494CB2CA590570720DE061BDD6B522EB09313EBB927BFFC920E649D98E5A4A86C2C5E3815E777F302802D98B6C616E6FCB784A16D6BF8C8AAE9BA44EC43DE816084C4C3BB1B02A603680A64FF1AB5CD8AF48774C5B5057D6682CFF3E265A63E551A20633DBF5BFEDAE646CCB99E872274C71BD61E1A518E8A2657B1FFB37701BA26B1AA36B109D75E399AF0F07D321A8E839812E6CF8EA29E95CBA3E6737F6F2113D8990ED939F86082CF5A3877144A8EF89FB5C0FD726A88DA00E986782C53D313212A9A2D20D012794E9A89866367C10EDE99EB8B03F30C376B50E7009A51F2F44082DBB62C4AC91F53399838BFBFF7ABB851C969E9003AF3FEFD138D7C5C4862F524FD97F95F9E6B5CF8CE949F748239F6DFF3535D24BB704EDF896AA06515DCA4FE776B987FE7C742CBB2DE50CDA6A2BC99455CF741F58B094BB832F2B645112F11050E1A8CB2F770709ED3D58A284012C9084CE6DE8372246CF4B4861D2E43516483E7B66F6EAB1A6AC61EA0B85F7103D9FDDA34AF13C5674ADB690EECE71CB7EDE7B02CEFDC8B052F2C8905D60D57B58576C8E9CEE41D00B7C51F8A97237716617CFC3D554D56EB2AAEB13E018C334B6D0D7A68B3294D475B910E860F17E9BAAAF7FC85FFACB18BCCA3230507AFB91620061F2FF221EA8614BFE77E64838411D7988745BF103D37F93D3E48C9B93577F1B709D58F386D110979B954B41095D58CC25E8343B1CC03C5A103B39433C844154CA9D0EF7D5E8004A44F4500BD06481DC6B8073085657AE915A3322E6CD27016B1091BA8D78EFBC32C70CCBFB8E63827D5D875302006A4554F6655D9C2104189733BF3FC5388B978304A23248D24FBCEE7BBCC9501479AA0BC19DD5C4FA6580993F4EDF4438CC7EECCD8622231C4925BE40E9FF57DAE6617BDCA8E964AAD894267DE70B45C414280F643F6F23ACC9D142CDDE71F624D69238D45B5FE54\nss = FE8AAA6558FD8087DD7CAB54B4BCE50FC625A369ECACE58B2EC36F3BC5BB4F5A\n\ncount = 2\nkeypair_coins = 4B622DE1350119C45A9F2E2EF3DC5DF50A759D138CDFBD64C81CC7CC2F513345E82FCC97CA60CCB27BF6938C975658AEB8B4D37CFFBDE25D97E561F36C219ADE\npk = F5A35B4EC7538B62289DD1204DB91AC492B610538C93EB5F2637AD97DC88F0035FF3CB735CEBAC9BE7CA78A4149CF10B6D93283050167E737596B711A9F32A0F6909975055CE6632F4B42CF9A2361CF69047B5BDE1868DD745A82CF473EBB30D86A71793364F70B1255B1C2003F166683C936A7977DF156A84051E69B95E02616DD3090DD38086EF3BC12353BAD25377618965C2810FCA929DFBF46F20360FC847818CF90DBC044EED16B3B9052C5C70A5A430441E53A5527A689F49B35CE82B84D6057C5269FB60C710C5731F431A970B86431125910277FA7C310A2285117B47B95054E4174A1EB11DA3E3C26AC25619D36712B11B2EF7405BCB943DBA10D50C0436B50DE5B04D96488A38F53DF37895AC20C10D959D81A29FE1F319FF871831D93C54654172A02E65599F9D820AB037438E62714BE6C7D868B66AC03C31C8753A062318CA36B6E59D340B9696D47C38F115104765865353A05C8FBC4B0A62A96577E94C17094DE259006F169E75B8919BB4C37DF6787B59BEC8FAC999A90B73123A5CC8772AD67585C879EBE05B5C06AFDB440ADFBC4AD400D0E634822A843E9B165F2F0BB748E231C0E0CEECA8806046B5DEA7CAC614A5E2CCA3767556448785DBC739CAA9C58FAC291A0BBE96E9AD36A4A1D9C96939603BCD76A81C040FBA27A5A39A1C387CAC9D1B086E512468D378E96039AAE2622FE5483673850D411AB64B892F2C29853822EAE76FEAF5716A660B55C2020DD3323A150CEEF9AB79925D2BC09CC6FAA31727A5912A7F5E9051F8B94D8866C4DA173D3F2A388E6C44218338CB85702CBA2F602C24E1788158B0129E7C15DCF2CC6ED55C54B456CACC07D179B432A5AA63E8AC59F0B6979A833D99C13AA0C56CB65928032E2F30583FA6C038748CEB77A91C631DD09B575F13126F1447CAB00BC9C85FC7601DA44AC5FEA5ADCBB599A409BB1A67B24EF438D750BF87A8814DF22449C9256DA1286DC623E81546C283B80CC88C48F003678AB35380A6DA551AC7041CD5112D59D15A80032C28B61A1BB3B8A7267ADF4662B5963468B3BC5918418F980CD7DB3946C5A67F864DC1F3ADEA12142FB71FDA590E070007662B5C3B8B31AF169A092A2E466AA01AE879641BC4D1D62523CCAA3ED436CC089B2621456114215D1A9EEFD1016DC81D5320956FD942BDDA40F3A033E5170CA6A2C57CE17EAFC97AA0959CF37B92E789636F159FAA827DDB895553540D52A61EDC1B3DCEB22A7231C48037CC78594718902333D0BC4FE6B29352991E2BA5D31217457007057B9D3C07C39B7C7EEECC222D4415D6D9272EC50B81520BC607592947C86D2612E434C22513235536CD08F10022B97675B89F1DE58130EB6797380F6B68773DFBBA0664BB7CAAC84F7B06711587C6ECAA383505F62751C8346BDD502A58E9326E4A0D2D29226F794AD0064B2CF0A56E6A67C18B331F5537D2FC6C3AEB52A5C3313118CB7D159B8372158C1A7BFDCB65D426458EDBCF8797383E272D3B18BEE68C4D74E25751AB1CE4567D66B714CD62A8E9B886BAA812A9F50739E30F296791414727D55003BCB52AB6BB74CAB215B348AD06F974192CBD61576BAFFC815999AB8556583024CDBD1C4398F4A4AC60E8CB68627382A145F91BE9D78FD51BA5E3FCBC3155B62BC07751DD\nsk = 72408D44C2BE6E83C803DA2846D852DEC1848EE41504B5C91F774F6E512B51F71DD1520203C486F63240BAB4C1DBB212299753B8627F9BF2117CD6A83BE4075A385782AB804A420972EB25BC553EB981AAE7D7A715111338529F6116C10B10BBC20B31C3161D4BC1A5F050220B5584ABD6A546AB51A9A10120ECC131220502697E9D61BDBAD346FC43824135692204B49B5B377B870B7B28C86946077A215ACAA11ABD851ECA479988BC69CCC9975EB42A33523C525434BC594217912123957DCDC18E410A6D6A811BED8A0B4135B56F4562F343AAEC34396BB0556D7962679A76934B016B4B4BACC14650C55C3AEC9BC2E85B548B5D3EB891B6596F0C44009BD0982D98BF81AC77C8DA98264A719CD8568E48279DF9C8E9552B94AA773B43A70742C75F041915752551347F00447D72D934BEC553BF1014F4276015E0B4DB77CDF8C546AF05861804A5B7D92838744511AC6C8BE55E883ACB7775B98C4B4C9C8789AEE317F8F02B4127A6AE879D02C13772A003928041C53351D8D70CE59B14CAB5CA31D717F69129C8FABE46582CA5298ED156209C25BC57870EEA34255CE1B4C426211F957D74876DEC169C4C516C8716B3DDEC6C3E610C31F0C52E13650F0B1C70124DEE27111A76ABEF82C8FD3172D554121E6A87E9D3B58E11379CB812B7F4B95D46104934CE75C715771204D7C46AA9439836453BDA709CEF3BC1C9341994F25C48B5C80FCC8A67E316C431BD302B20904456B3283E9BA1BDDE494CE9F8A3F0B432DCA69D0BA9C43C703E1616272CD6B904D5B6279C55A539B7E46A601B28493E38A2CD9BA66D997C8C5C3B7631822C529FA48835F8A08F322615E96B9087C71C9F262B68851F00486489D25C92221C2759C89440CE733614B8C7A06F26B374CB4F8A6A7D67DA521EBA7232C0A4C066886B8450755896CFF77A369BC8FD4B3B5B0731452A908ACC68366B8EDBA66D09F212C9330C83990AB2DB7095D708B6C3589BF929FEA31534646537D2AB023887FC286F00F46F8A360476998E4FE7315F03C234929247BBA2A05297A5E01AA9CC6158458E2302513274A2E3359D66126F5FD44D348BA2B634642EA26C6CB616F64A2D2C819ABAA48BC565CA0AB67E6CFAB1129A0144C10A003B44BD3879B4E62E0AD3A58BD86A7030BE34309F3309642B017B0AA03FFAB4012B36ADC49A95DDBA67CD81306EF6BB20B546BCC55EAC2B815FB38BAE991D6AE7AA87D42ECBC740CC816A3EF42E9D204CA0177CDB30CDCB870386C320FF51B137578B029125BA518A5B887D7B9050DFF113468608F6335EA81A59B87CB753724ED0E159FA4709AC018A31194247A6A9C65443A35AC36E11BFA6A8559CF20E50116EE5FB3780FA03DCAA77846B18C04894E50486ACFC3B8FEABB8CF860D79C2734A700AB731739244580653699B51B7FC440B8CB1D6BB1360291BDA5B11AEDA3C77A25B40F96763A372512561E0D52848FD6A3A8241DEA49C4C24692CB43AA22067072FAC2DFF7898F298CBAE17F9CA68A132321932295161A1F31C178932004D17854D7D9C69F6640EE216747102280191A5695433763B6CF3B86756AAE22A37F9F6920C361C2AC68A7E11C8F5505AF2100651595BFF5A35B4EC7538B62289DD1204DB91AC492B610538C93EB5F2637AD97DC88F0035FF3CB735CEBAC9BE7CA78A4149CF10B6D93283050167E737596B711A9F32A0F6909975055CE6632F4B42CF9A2361CF69047B5BDE1868DD745A82CF473EBB30D86A71793364F70B1255B1C2003F166683C936A7977DF156A84051E69B95E02616DD3090DD38086EF3BC12353BAD25377618965C2810FCA929DFBF46F20360FC847818CF90DBC044EED16B3B9052C5C70A5A430441E53A5527A689F49B35CE82B84D6057C", @@ -6295,9 +6310,9 @@ static const char *kData84[] = { "DB26A54E47943D6B31F916A552ED01A39F96DFF820765D6AE52265010545162D509F6AC3F9B7C0FD0ECAD4008732D6A9DF9449B2017B389522F11870704127BC6D018E0A420DD441EBF636C31B3B63DA9C00DC15BE0B3188371BBC855254217B99294815D78194FDABCD1970E31E38D37B4B1CC69BF428514F50AC9BCCA9125E6473028571BE535FCA274651752DAC691FF8A28C555036378B260ACB060FABA9573B0B65CBC76B892425294D65658F4A1B3309B424C6865BF1AB307B88022087F97F6882D4360ECD91F3D2513059A784BB256E47670AFD5C1AD5C177142A2955B082FD0B546577CA5286E0F1C85AF8B0BD5650038609E8EC8344E6CCB6DF93A056644CB89294FA19266948E9A561BFA66517A900B67F6BE5EFB853C703CCB4A296A493C24607A6AC4A749361D8F738080A80CA62AAF658B6A972894E6CA402AF3C09D2A6E9C181005E0C4D193361859011173BC8B97755FD1085B52808373B29733A7D0488C5F890364ABB9716920C074645AE023679BC9C2B3AD29B9051A94A124A43688A1027C35B90F9303664AA37AA92284F97DBCC7AD0F12B5B6BA38CE0A07130110518C74EA36CA6D6A44399A3983101458F926E0BB3357BAC5A294446463814806AD1623185F295D27F2C913C9608314174B2BB8BC03A92DB6CC6F044D964A7E3E289EA8F064D9B5C0D0EB43357495D09C0FBC4069903BCDC683763BC4C6ACC2517B7C94E3E0265029BFF55773421BC6143A38F57410BFB50BF21BAFEC948548A87667D95439BB78CCA2C9DA670BEB4C816478683B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B8\nsk = 55873EC8C5BAC259501E025FAED327B9B659B0810E7D43B8BF7A25A8C1A51062CFBC9BBEAB182747196797913398DB1C1CA41C1CC3A883400A29797AB4CBB553076C204167AAD2208355279F504DD9A476985362898B4E423821CC2642C335C3C953C866451CECE03098D5A2AE366DDAE1A06E05547E1C0C0667CC98494BFA778EEBC5CBACCC3038F93B82E57F814799CB7A921FB14042AAC83A1B4897BC6A15C87FC94144828966C49B6CB8F842A3157B60D6B3271C3661529D8A93C7DAF7B4DE1396308C0CBBFC9F984617CBB5B1825C88BDBC4C74C58EF3D54D089613A6A431E3A59ACF4201FBB6828DB0061F1BC514DCBFE72023CF8102E9834D5D6BBA8A354FE04C6008B37F9B07857CDA1238F5A562F288F3217FFD1A1BF8B2A0FCF3AF0310C84BD6CD805C246C4A227C9BCF963093A9755CBA968E7C06CC4F987B516171461B69E013076CB652C2A0B10F1B0FC9D6B583A929FA3905BA4B6B41F19D862C82B5F170277530A278773FA740ECA749C00A61735AA1A27719CFB75EB0768956718239F43239E25A316339DB665EB9784AB581137D020B992782956522B824B3EA4CB540A4B12AD7C512046711B0463F779E1279BCD2B7238580C72DF6120850376DB48978DC717CD1424D0B5E7331B76D0AC0B024C6283C8418E5B1A7A297AA483E5D2A65F2181EDE32C69CC4B9A8C4C0B90BB17EC06336D2100766AED931876CE45435B5662DD8A5B9F545292C870A16925546AE0CECACFB737647504EA1A29D13E0BC2D060BF7480345051E9379CFB0F901B9A426641802E5522FF8B199439026B123CF9B5827FFA147567912C46C88CEF0B41D9526D227A72262C0E3B3157DC4898E07CAEBC8038142B5172A799B8A6DB0F7703730C98E1957FEF13D5D7B2A52945EFF5C4337B6CC5004BACBB419BA73568AA357F61C70383447C6015A5896B9C0C0A2F2C7A76D940278D736D6B685F4FB3CC392CAAC1830B439468B6BC73585B4205751E55103099986308702A477588611A990580D88657024FA6D371550141405A8240109824788675D2546AFAD54628E93281ABCCAE4EAC11D200AA5C40A9E440D9F2A40DEB31C2688A3266C9E16B60461087DA271A1973374C99693C8111F9D458F92AC3208268078B177C818038305AB421B6D8297063061BB36F1318BB2108163A723A4BFC3C2A25F958F28B2B806A15E4310B8852103843C8AC26C7773084F1F82151C52083E69772A049123027916F039FD08713B98039F3B84CC83A8F88B2C19F48A958A443339A5A2158DFD7A08D11983601A1892A8C1152C602EDB1592C3AE555B2EE54C5DC6020C0B95626FC06D85D78120AC135FD369DE6B6AA902BB015A7BC3BA13A7391960C533D2F1A6278494E78B6A3C5B91A2B1AA2A0752E5C0A30E33CC86DCBA2E3232C98B9AAF1BBDF9E825B15A6DC3A741D43A53EB10AD18E93541E224EC5A952D673984990AF0D81577D1BC83B09856794D11707FAAC63A1E49A799224B51464916BC07F0A69F06F26696F5806E92CA4ADA050CDA48A9C90635A9C68ACC753A711115C35488758A68256A32F4964C431D50C0A8C5053D1A41126A952270A309F69931C32194FD201BC3809DB548A000558528441CC07C18856568C4FC0EDDC04175F564BDA148788608B71756367551A5709127668EFBD60B389877001B948F2C50CE62C7ED63122DAA7C1889400A4175AB959D09AB124BEA2C9D3659B8B4861E482EDED950DBF57A47C87F79FBC143D20420F4162F711963C47DCF7B8EA7FAA329D6A70F601D3A1B15A7890804917C84477D95F916A3761E3D94A0B0D69D9B7C39692B7F4ACB9091F87583810CCF67BDF86C4BE8F08762F2C3428646A3D33DF4B67EB87A2662353A208403BF59334BD9758A9439F8D8BDD45195F2255282A73456D168A2B249E8D180D5B310BA828685B3A1DABA2FB88783BB5062C13B79C2B0C3A10085664377EADBB477329567D1158882085850B95697248C6271F44988218777D33823AD70791BD40E29825ED124B963E05D06547C740A5AB7A1488E38C464B53B6F016BA1B7648A14AAA111907846C5DF162F61CC62747386915724A3B054E868BC04C934D64B7F2FF461AAE980FA806CCA7A9C4D7255564B420887946F7A72E4D1384D8222C70330B09C08D9A70AA176529F0685D087B8F9EB464A776F93606B05D0729FD2AFA7969EEC2662EBB7C7FC821D6B5393707ACF25C0C2C81702CB195F8CF730E8A46442E91E18FC7577F4AAFD6933450491EE24763BF6786D794D889C3005A323CEF2A8863C7AE00998D2E3CCC1F5A6C8A933D5D615CE82AF312990969C6288B6893C42142AD87AB483362461B87C641F646410EF5B393283230220A34730397188920B6873F16478331CB22A5A2C73273D865985533A1F8E109DBDE719C10C8ED87A831AB65562751EBBB15D3D5B6E01F78DB26A54E47943D6B31F916A552ED01A39F96DFF820765D6AE52265010545162D509F6AC3F9B7C0FD0ECAD4008732D6A9DF9449B2017B389522F11870704127BC6D018E0A420DD441EBF636C31B3B63DA9C00DC15BE0B3188371BBC855254217B99294815D78194FDABCD1970E31E38D37B4B1CC69BF428514F50AC9BCCA9125E6473028571BE535FCA274651752DAC691FF8A28C555036378B260ACB060FABA9573B0B65CBC76B892425294D65658F4A1B3309B424C6865BF1AB307B88022087F97F6882D4360ECD91F3D2513059A784BB256E47670AFD5C1AD5C177142A2955B082FD0B546577CA5286E0F1C85AF8B0BD5650038609E8EC8344E6CCB6DF93A056644CB89294FA19266948E9A561BFA66517A900B67F6BE5EFB853C703CCB4A296A493C24607A6AC4A749361D8F738080A80CA62AAF658B6A972894E6CA402AF3C09D2A6E9C181005E0C4D193361859011173BC8B97755FD1085B52808373B29733A7D0488C5F890364ABB9716920C074645AE023679BC9C2B3AD29B9051A94A124A43688A1027C35B90F9303664AA37AA92284F97DBCC7AD0F12B5B6BA38CE0A07130110518C74EA36CA6D6A44399A3983101458F926E0BB3357BAC5A294446463814806AD1623185F295D27F2C913C9608314174B2BB8BC03A92DB6CC6F044D964A7E3E289EA8F064D9B5C0D0EB43357495D09C0FBC4069903BCDC683763BC4C6ACC2517B7C94E3E0265029BFF55773421BC6143A38F57410BFB50BF21BAFEC948548A87667D95439BB78CCA2C9DA670BEB4C816478683B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B8CB6D7232426BDBDFDACD373C9190722E7BF342825F7D829185DCC9120588FC76AE77E0F9F21EABD8C0C6EEA7767F4E10FDE5C2D79B8400BF96B19014B457EC21\nencap_coins = FA0489F3730100609488E951E6AAA15C0F193BC1DBCFCD013BC418D6C507B176\nct = 7F60D2E6EE01AE6FBB198364141AF9A1AC4BA1B161CBDB16B86224FA77129864F00B71AA221DD1F300BA3EAFB2694610CA8F27C24CDFCD240961C27CF42D01561CCAF742379B19085C462270636676D6DCC5786E23D3881C83CD5FFD667C017FCA1F404A15A5BD368CD95A8FBDEBCCB9771B95958BDE3F65533190C0A758586094EBB86101582DC69FCCD7C2C1900D30648F360B4C805F143C8FE201D2DE242C66378439CBD304A30C67213F364F8FCBB202FFDCC290E85E8F0F718677FF8CB81D4AB3CF0DA5640C5F61B11A240099201D0BFAABECBBBB27A4623D77860BF52DC53A3AFB65ED2FCD4E9C9B1D1A996A643140CCE0D8B801728ED51BC3A47C9003375D8B19401E1C6841379A45BD2BE02A41222C4FE63E19C978D480E2D4E353AB957A1B81B74BBC7655A3D0261C8B2B06F6642BA4A5F8DD87B98B9AE355F57F8A5F978C6372BF594DF54DD8BF7650803EE13D9094B3EE86A1C3E2C21E4FD1F143D8A95CCE869DD365C29FA004070B0BDB899138FBF1D83EB9F76CBC112016C8CE1118FBDF76C3C907D1D3CAE2BA0BA5E419814DADEF0887CDC5817CA9C7B050574CF84009A6731136B39807687D3C3D6863C5D780BD6303F10A7D311D1C2A1C87039C17C6668501D572FC9D56B249ED0E95E17851AEBB45E288A32A1206C4FA475455309CD3D759CA19C47C0128A95DBD07E67937C0324B4B53BAB7402363FB32606387E2C419C0350943C8CB4760C2AA7D2FF9B1392E528B98493A61D2DC6D85CBF9E5759106D6BD1DAD276FB3AA45AAF75EB80BDB5D83AFFD7880371562100226B4E373B421B9EB3032938205012C6C083DD9E44BDFA842E280F03373F6E7E4DB5A50B4AA0B34789AF9AD051709B1E9ABDD71AD733DCC021DFA3A63609994F0FAFC5C1D88A39D46F81FA70E6164575321C2EBBB71F32893348AF887BAD2B1720CD5A86EA3774C1EBD53B15B9F01A4B5542A5F54053107E38ACE2594170B81DCD98D1CC47FEE808BE78DEBA05491F913ADE44B8914D65865EB0EB0F7E02DCBA1DE0D4B34E70485F83F96A5E41BBC064E3458473F43A70D51593F442EE2BD5B39E2C77C53BE83B9188101E3455C513BF4B8F744286BD529DA2804F804CE48E864A15F391A6793E4609279EAD144CDA084F3087678CA971EB22ED3B4B7FB740BE0407571F58DDE930D895140AD8EA096F06A3E255CD95AD48C4A46B99FF777B16452123A28D73B4A0CC0899C0CDAA1286FBE1C5FE95FA9418B5A473CC6ADBA14AFB06F080A544E49E148E492A8CE4BA9F4B5F781436F8FE30058A46F4D49A44E1FDE1B6F07E2A247CD3973AD76D3F473CAE88A2BAB3BEB78BD1875B240B23A901A9AD3F4421E5E355EAB0D3E1E197B246EB4F0861AEFB55BFD3BB54BF2CD6FFDCDFA0B78BAA674130CA2512B7069E7C33903A0A5EEEE7AF46FAFA52DD3F2E952CF909806B9CD2AA6826E823959A4BF03847BA50A4026FA0A72B78CBF", "6AA7FCD4908BA3BBCBDDE68708EC0AEC44B1E35C4E9E1EB7F01AFF0D9CE48F99BA01D78CEE\nss = 4793F705AED572ACE61DB13BEDE3900F2538EADDB904988C1F015BAC605A1093\n\n", }; -static const size_t kLen85 = 1293203; +static const size_t kLen86 = 1293203; -static const char *kData85[] = { +static const char *kData86[] = { "# Kyber1024\n\ncount = 0\nkeypair_coins = 7C9935A0B07694AA0C6D10E4DB6B1ADD2FD81A25CCB148032DCD739936737F2D8626ED79D451140800E03B59B956F8210E556067407D13DC90FA9E8B872BFB8F\npk = D22302CBD3399FACC630991FC8F28BDB4354762541527678BCF61F65C241146C426D23B9BFAA6B7DF18C97F20C1B6125BF874B1D89475852C448215DB0EB7737F91480E8CEBD9A0871574F5AB62D9020175EC6927CA0B54C09818E42CF92A383172422C7DC1831D63B0C295DE75159DB8034E9E07F7B0B910C3C1E5FB66B3DC523F1FA6EB4910CB89A6C17562C83AB4C18D0CD7E0796592A372AA409B1C557347CCACDC4644A119064D06DD474929D1C6FB4D686E5491CE4BC89A30BB4B8C41BCE5157DFC1360823B1AB618C14B10F98C25067398EA7018C278A4B3DF31334D603B2044EF187CD9BC6CE42725BD962C264983E9E18155A8B9C47143D70460A26A56FE7658C1F150348C6087EF758AD167887860A007A5FC37358D43B5EBEE820ACEA474F0AC07B76802866199C61231D5C747C93774D2C1E0C1C67E6C81B82752173E125BAF39B4FD19A4F453DC57976B1D97FE6996992BBB65B7CB25D077BBAA6A13322899AF659CF1B3558C1B5001154B625809ED89AEEBB89E6EA7D67F723D045AB05715C42355DA6A5C8DD39C8ABE3037751A01ED1C7374919F3121B5A52C53D1487316769F80721DEEAAAD3C90F76E7AE9E12BA92B32B5FD457E3C752C2650DFB885771CB77AC3C785A8C562E6A1C63C2A55EA47CF8B90EB8225C123C346452566235B2F31823A33521E087937A345D8D663EEAA05658917BBAA008C2E335F8850A90A326D0E66432F44CEB8289E4ECB2D12958E984072ECACB88E1348FF0B55654ACBA5B54971CBAEBA88EC4B91A94C37192FA982BECB9F3DA421603B61A51BC8E36CBD053851C77B1B926B17A272AA9023246B02B3ED47F66A00BD5684823634E7CE58CF8F306E35B1E5322824D904801F0A2FA7C2BC9C252B0A56B7BA2AB0F636021745A70A9A43E2B0A8D615970B65309624B5184BCC30B911679AEDD76025FE3908FD67897B0CF4BE5A6F5413D7DD98564B23E42A93E4AA8821CD45054C643EDC1158DB6B3DEB13FB5A51EBD1A8A78B87225A7338E101104C4A220D9BDEDD48C85A1C2DAE781A80C40E13B87EAC73A764201C9B760CCFB1AE392699C7039D27C39362B27B8FC6F07A8A3D4410F1547C48A9997F62C61074452EF1515F8A649EBCA9437205A4E8A61606B41DAF6834D671F4D852C0C9C4096611648C6A3170678B1537CC1828D93580C9E5849A9653175ACB753F2BE7437BE45F6C603E485F2EC301BB42B6C37C225D7495A584AE231890AB5C8C35C268CF4BBB0213C096019319561A8A6947637AA40D006B415BB2CFA2237E0890B6A3BC134ABF8F6585E108D15940F91F4BF5B0C818055B21DEA6E63B553988C47F4B94E7CF800A493B4734705EDC56A4B6021C629500675876804CF0B951F038A5C7FE58E89774EF2992FD7C63099D352A7D21560B788B405709861817E59A96B3A3A83CBA803B16934331071905BBEC6532900155D8AC88CB32E4E21A3BD3A03FDEC325A51CD2773964E6784FCF1853737AA64EB67564727272661ABF84313A57A44B123C65509CFB7A6F6641CDCC3B57FE628C7B8192DB44FFBF5796A8613B1FA126F6076883C783DC24E2A4464C40B3A41CA70AE87620866CF4FCB2BD204BF5C283812BA056AC0C345E379C4BA24D750901279BB2F3A16F612BFADB35703332C7C136F68EAB6755C66B6A4AD1AABA7B768A58ACAACC10A459A1CC8EF29377BC200E4D315A30A6BCC3256F9734D06E9779CAA5442A9A16069081377C76E75154368072DC446ED6C8B8E622A21E383CF9BA1FB434E2ECC81E7B78CEE986B8FF798AB18CF9634543546284EDA2A26B47F05B735BCDB1202220076DC8B4E4B9F853533C8F6C7FF38817BA49712835785F17F14CA01D0C1C1E98810FE0B36E5B427157B9418449CEDD641A4293C85C32700102ACEC22EBAD98ED160A5F027BD4CDA57F1F3720A12C134654DD5E73F829676495390D0E7929D6034E9C55F7D55BA658BC587988E8AF94960F6CFB8D5AF7A0021535A6E25E437D49A780698BE22AC9953949F571B85A685725F8207A2B0AE849B601AB91B159B3DF4A154C2041E776070AFC42969322380917C97510799F3149131477E16663D3174C7C1CAEA788535C6C005A64F2868631B31B66E205FD38C1D84542D0F1B578F58C9BF5A0FAEAB6AB6494893053165EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B53922\nsk = 07638FB69868F3D320E5862BD96933FEB311B362093C9B5D50170BCED43F1B536D9A204BB1F22695950BA1F2A9E8EB828B284488760B3FC84FABA04275D5628E39C5B2471374283C503299C0AB49B66B8BBB56A4186624F919A2BA59BB08D8551880C2BEFC4F87F25F59AB587A79C327D792D54C974A69262FF8A78938289E9A87B688B083E0595FE218B6BB1505941CE2E81A5A64C5AAC60417256985349EE47A52420A5F97477B7236AC76BC70E8288729287EE3E34A3DBC3683C0B7B10029FC203418537E7466BA6385A8FF301EE12708F82AAA1E380FC7A88F8F205AB7E88D7E95952A55BA20D09B79A47141D62BF6EB7DD307B08ECA13A5BC5F6B68581C6865B27BBCDDAB142F4B2CBFF488C8A22705FAA98A2B9EEA3530C76662335CC7EA3A00777725EBCCCD2A4636B2D9122FF3AB77123CE0883C1911115E50C9E8A94194E48DD0D09CFFB3ADCD2C1E92430903D07ADBF00532031575AA7F9E7B5A1F3362DEC936D4043C05F2476C07578BC9CBAF2AB4E382727AD41686A96B2548820BB03B32F11B2811AD62F489E951632ABA0D1DF89680CC8A8B53B481D92A68D70B4EA1C3A6A561C0692882B5CA8CC942A8D495AFCB06DE89498FB935B775908FE7A03E324D54CC19D4E1AABD3593B38B19EE1388FE492B43127E5A504253786A0D69AD32601C28E2C88504A5BA599706023A61363E17C6B9BB59BDC697452CD059451983D738CA3FD034E3F5988854CA05031DB09611498988197C6B30D258DFE26265541C89A4B31D6864E9389B03CB74F7EC4323FB9421A4B9790A26D17B0398A26767350909F84D57B6694DF830664CA8B3C3C03ED2AE67B89006868A68527CCD666459AB7F056671000C6164D3A7F266A14D97CBD7004D6C92CACA770B844A4FA9B182E7B18CA885082AC5646FCB4A14E1685FEB0C9CE3372AB95365C04FD83084F80A23FF10A05BF15F7FA5ACC6C0CB462C33CA524FA6B8BB359043BA68609EAA2536E81D08463B19653B5435BA946C9ADDEB202B04B031CC960DCC12E4518D428B32B257A4FC7313D3A7980D80082E934F9D95C32B0A0191A23604384DD9E079BBBAA266D14C3F756B9F2133107433A4E83FA7187282A809203A4FAF841851833D121AC383843A5E55BC2381425E16C7DB4CC9AB5C1B0D91A47E2B8DE0E582C86B6B0D907BB360B97F40AB5D038F6B75C814B27D9B968D419832BC8C2BEE605EF6E5059D33100D90485D378450014221736C07407CAC260408AA64926619788B8601C2A752D1A6CBF820D7C7A04716203225B3895B9342D147A8185CFC1BB65BA06B4142339903C0AC4651385B45D98A8B19D28CD6BAB088787F7EE1B12461766B43CBCCB96434427D93C065550688F6948ED1B5475A425F1B85209D061C08B56C1CC069F6C0A7C6F29358CAB911087732A649D27C9B98F9A48879387D9B00C25959A71654D6F6A946164513E47A75D005986C2363C09F6B537ECA78B9303A5FA457608A586A653A347DB04DFCC19175B3A301172536062A658A95277570C8852CA8973F4AE123A334047DD711C8927A634A03388A527B034BF7A8170FA702C1F7C23EC32D18A2374890BE9C787A9409C82D192C4BB705A2F996CE405D85A4C1A1AB9B6AEB49CCE1C2F8A97C3516C72A00A46263BAA696BF25727719C3216423618FF33380934A6C10545C4C5C5155B12486181FC7A2319873978B6A2A67490F8256BD2196FE1792A4C00077B812EAE8BED3572499684AB3371876761E450C9F9D2768A36806D7AB2046C91F17599E9AC592990808DCD7B4D0919072F14EC361773B7252444C323C308326F4A30F8680D2F748F56A132B82674ED0184620B82AD2CB182C97B481626647491290A011CC73828685A8C367A5B9CF8D621B0D5C1EFF03172758BD004978C251CD51342228989CAE6332AC486437CB5C57D4307462865253BE217B3515C73DF405B7F28217AD0B8CF60C2FFFAA0A0048B1FB4ACDCDC38B5250CFEC356A6DE26CFA7A588FDC86F98C854AC64C7BFAA96F5A32CC0610934BAA6A586B9A2054F13BA274174AA0D2B3A81B96A940666F789B5A6BCDC0A6A0178A0C9A02578A493F6EEA0D2E6C13951C9F249A5E8DD71DD49A742D451F1ABBA19AF8C547855E0AFC728E90ABB499C9BEEB766F4729CDA22263E324D22302CBD3399FACC630991FC8F28BDB4354762541527678BCF61F65C241146C426D23B9BFAA6B7DF18C97F20C1B6125BF874B1D89475852C448215DB0EB7737F91480E8CEBD9A0871574F5AB62D9020175EC6927CA0B54C09818E42CF92A383172422C7DC1831D63B0C295DE75159DB8034E9E07F7B0B910C3C1E5FB66B3DC523F1FA6EB4910CB89A6C17562C83AB4C18D0CD7E0796592A372AA409B1C557347CCACDC4644A119064D06DD474929D1C6FB4D686E5491CE4BC89A30BB4B8C41BCE5157DFC1360823B1AB618C14B10F98C25067398EA7018C278A4B3DF31334D603B2044EF187CD9BC6CE42725BD962C264983E9E18155A8B9C47143D70460A26A56FE7658C1F150348C6087EF758AD167887860A007A5FC37358D43B5EBEE820ACEA474F0AC07B76802866199C61231D5C747C93774D2C1E0C1C67E6C81B82752173E125BAF39B4FD19A4F453DC57976B1D97FE6996992BBB65B7CB25D077BBAA6A13322899AF659CF1B3558C1B5001154B625809ED89AEEBB89E6EA7D67F723D045AB05715C42355DA6A5C8DD39C8ABE3037751A01ED1C7374919F3121B5A52C53D1487316769F80721DEEAAAD3C90F76E7AE9E12BA92B32B5FD457E3C752C2650DFB885771CB77AC3C785A8C562E6A1C63C2A55EA47CF8B90EB8225C123C346452566235B2F31823A33521E087937A345D8D663EEAA05658917BBAA008C2E335F8850A90A326D0E66432F44CEB8289E4ECB2D12958E984072ECACB88E1348FF0B55654ACBA5B54971CBAEBA88EC4B91A94C37192FA982BECB9F3DA421603B61A51BC8E36CBD053851C77B1B926B17A272AA9023246B02B3ED47F66A00BD5684823634E7CE58CF8F306E35B1E5322824D904801F0A2FA7C2BC9C252B0A56B7BA2AB0F636021745A70A9A43E2B0A8D615970B65309624B5184BCC30B911679AEDD76025FE3908FD67897B0CF4BE5A6F5413D7DD98564B23E42A93E4AA8821CD45054C643EDC1158DB6B3DEB13FB5A51EBD1A8A78B87225A7338E101104C4A220D9BDEDD48C85A1C2DAE781A80C40E13B87EAC73A764201C9B760CCFB1AE392699C7039D27C39362B27B8FC6F07A8A3D4410F1547C48A9997F62C61074452EF1515F8A649EBCA9437205A4E8A61606B41DAF6834D671F4D852C0C9C4096611648C6A3170678B1537CC1828D93580C9E5849A9653175ACB753F2BE7437BE45F6C603E485F2EC301BB42B6C37C225D7495A584AE231890AB5C8C35C268CF4BBB0213C09601931956", "1A8A6947637AA40D006B415BB2CFA2237E0890B6A3BC134ABF8F6585E108D15940F91F4BF5B0C818055B21DEA6E63B553988C47F4B94E7CF800A493B4734705EDC56A4B6021C629500675876804CF0B951F038A5C7FE58E89774EF2992FD7C63099D352A7D21560B788B405709861817E59A96B3A3A83CBA803B16934331071905BBEC6532900155D8AC88CB32E4E21A3BD3A03FDEC325A51CD2773964E6784FCF1853737AA64EB67564727272661ABF84313A57A44B123C65509CFB7A6F6641CDCC3B57FE628C7B8192DB44FFBF5796A8613B1FA126F6076883C783DC24E2A4464C40B3A41CA70AE87620866CF4FCB2BD204BF5C283812BA056AC0C345E379C4BA24D750901279BB2F3A16F612BFADB35703332C7C136F68EAB6755C66B6A4AD1AABA7B768A58ACAACC10A459A1CC8EF29377BC200E4D315A30A6BCC3256F9734D06E9779CAA5442A9A16069081377C76E75154368072DC446ED6C8B8E622A21E383CF9BA1FB434E2ECC81E7B78CEE986B8FF798AB18CF9634543546284EDA2A26B47F05B735BCDB1202220076DC8B4E4B9F853533C8F6C7FF38817BA49712835785F17F14CA01D0C1C1E98810FE0B36E5B427157B9418449CEDD641A4293C85C32700102ACEC22EBAD98ED160A5F027BD4CDA57F1F3720A12C134654DD5E73F829676495390D0E7929D6034E9C55F7D55BA658BC587988E8AF94960F6CFB8D5AF7A0021535A6E25E437D49A780698BE22AC9953949F571B85A685725F8207A2B0AE849B601AB91B159B3DF4A154C2041E776070AFC42969322380917C97510799F3149131477E16663D3174C7C1CAEA788535C6C005A64F2868631B31B66E205FD38C1D84542D0F1B578F58C9BF5A0FAEAB6AB6494893053165EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B539228A39E87D531F3527C207EDCC1DB7FADDCF9628391879B335C707839A0DB051A88626ED79D451140800E03B59B956F8210E556067407D13DC90FA9E8B872BFB8F\nencap_coins = 147C03F7A5BEBBA406C8FAE1874D7F13C80EFE79A3A9A874CC09FE76F6997615\nct = A6AF29D5F5B80BD130F518BADDD6C8F17545413D860FB3DE451979EBFA5E4E3112C7C0ADF99824BB526F2C3550748ED0E134F0457A7C61F9F526F002BAADC03FC13E38131219513C3EDE061661E74F603C4FCF7951C8E52C9C213B0D22D9293663D669A6B58ED8FCEFCF8249D7BB5298F55761445B2B83CE7F005CB04248AEC8BDA22FD2D42AA766322014EA038CC32C55C8E4B9E28EC9119F527341E4F66A035121073B85DE6706DA19E0838A9F33B719A68F039B664DC002659EABFC398679AA7009CE0CD01CDAFB6CD2A26FE4101672C98FF58F7C47D5BDA2906653B3A6F9651F7A121EA77EA74723FAE5B873F9BB7B664F0C8A93831EF9D51C7CC1EF44AC0E55A55CA76D137FE9B75F40509CEF156E5AD18F9FB999680008E547D55EECD5B4D1CB1D9F076CEC21501C7402509ECB77AFB2CB9A61340A8BD1514C6E71B4AA45E47EC37512271B911F8FB46C9082C9DF07204ABB5A50E6E3647A8AD4D8D5D7BFF19C8A509308BCFB895536D045CA2B97CB16A29BB7181CAD0509DDB91735028EBA8C31D74BD275EAA65B5340B3A43FBFE0B3061D6BAE7E75B7098CDABE91D4B31E36C9AA7A8298862AD63C8FD282E03B460B3AB464CE0F27B1C3D11155ACAA011EB9E2AE3E6DDA07D6F491737CBCE9B05F9BC56BE20E8D326BA132C57FB235161144519CDF40560FBE279BDE411E112531F826D6AB10D4547350ADD2A9DE8D62C2AC82CABE6815646F4DC9742BB0C2A3F77EC7B46C6B537605FA31798CD89281221A33DFB9796E644305630332C2CB931408AB481A16D953F6BEAE3891D6D9AC1FAB38222D9271872D9D0CADB91ABE9B4E265F75C6E5E829E146C3D8CE1E9D12E0D129801957F46B0D2DBE1F749B1D08E2345F6239A731342EB75B0CF1BF411749BC2CAF2810B788C6B7238B4D3DA2D6315CE9542E24404F145755A30AB851E4445841BD33F716A586884888ECC6BC6498AA32919AE81D20C26973C2BD54582A0F6AD98ABFD2627E15690A727E69F581DD2A7127982A90E33E2D4A03FE339142C7E44C326AC46ED395A225D3033389917328B45316B1585A01B2C304B2944E903ABBB3EC5619441CFC8965A446DF75DEFA80C6E15ADBD506B7AB2DE12DDA9BC81441CFC89052E2E5808F7126C6FD3AC6AC8081258A84A09AE50F6CD7CC0F4AF336FD1D643E99079996268C2D32D909F22E3504F07FBB563196D4312FDDB9335D5C1D36E8C5EEA2278DBA23B94D193C947CC41CA993DC7DB1396340AD9C4FE687DD7B8D0C7A5120AE0204F2C665BD5F473D644C7FF26BFFBA7A36980830702128A7E661D677A092A36E7428A4139FB29B0095CC11086F447D2A9EF6C9B161F189C6299E084CB7AA00FAF787797BFB069FBC087FDE26252A1664F19C5A8A22EC5EE1AEB076357B7DC37E6B0F1520F958F7851BACB92C89FD114A72FEAC54652D45B09E1AE7651ABD164BCD537D58FA39D3EC8ACDCDF98425005862FA59692DE162B77E6297C66233348408A8AB695CE2F2728DB9FBE27E958967EC5974767C5A66023074B4A71AFD264AD2890E970A1F31D6E3311B736F9F9488793DDC88F23458064254C82A1D9E59EAD2FCEC40B430687C4B7E28960926AFCACC9BD756A71088C78450E20A2E980AEDE9EBEDFE7FABD6ABFE96F934C4B02C01CA194D01B73C25D5997039D3FCD0F099521F70CAEE69110AC1FC5A99917AD752FC96ADFAD7186D0A7C9CFE5601C07514EA6448D661C57AA20242103C4276A070A489A4CB6BCA0F9ECC4379FB220215FD91F81019D5B0AE619358B52468F272C178E3A74CF6775AA924FE329C3175D9E4C3E21AB9EC836EDC3ACAB2E3891EE8DEDA515D39AF9B8DDD0EE7B0164F805C3835F6D2BABDB30EAB4756E7EC7F829ECE01E8EADFBBED12FC283B3D4C69F575E7F80417689FDFCFC7BE27EE3B8CDF57AAEBEC4A95B7E5BB585B85227F7C32BE30DB3E65E42E30DCF5A5FA073DBA399D942F2222ADB9B9898102AFE5432EDC7F04AE34A8FEC2D81CB49A9A9B43814CE71D97F726E2B1E8F64B50E65DFB4816E12E82A3197484A4E9BBA4D2D69E3F19D0B75C21E2BFFE9FC0C98CF48A3AAF08D467F72687DF0178174B7897F734349B181ECA86A598A0C5E8C25946F24DC5572BD324A40458A788E5137F3C7A7C97FC9F12A3C463A8FE9449101CCE966D7C009323932998D56EF430C73BC24F5D95F737858DDC4F32C013\nss = B10F7394926AD3B49C5D62D5AEB531D5757538BCC0DA9E550D438F1B61BD7419\n\ncount = 1\nkeypair_coins = D60B93492A1D8C1C7BA6FC0B733137F3406CEE8110A93F170E7A78658AF326D9003271531CF27285B8721ED5CB46853043B346A66CBA6CF765F1B0EAA40BF672\npk = 05D918331371DE92C27A1A5ECE876015A959E96AAF3B1A60E9E77E46D51D9D85ABA374263BBC65AD78B2D5A53CB909682AA0BF37D49D172BB46A0271D30716CEA8AA095992DBB1132E81265A29435EF2C51DAA9F27FABF3A799813E67EFCA087AC12247B64CC0BA15A5486245DEC1648CBC7AAF40805115D78F6687C47C553D050F1E6821B368F98DA22F4AA7D738A81B298A81BC43E16C8CE1490147CA83D2DD98BB918300A26CB431C99A952471B84BF6118A4D5C0A898532CD277BB4443CD7B6924C3185CE55CADC7F877BE93306357AC71A67DDB4C545FE7301D339E933B81AC145988369FB7D31921A66403C587C165BFDD341011D19EE964B62E4C8CAD2B88E8DCCF3AC75CD3F835E2938D027C6789F54D0FBA176F9BB8DC7716CAC344684334C5704D5A54C932535739948ACC61BD67B581F75A2169A89A11076274B10563141722C9AA9A34BB28A69AD677292BE84455B24559CBBC0F347E7B36A45555A8336B8ADFA07E599633F5D1BB6ADCAF86AC9E7885039A3C1D308996AB6C966F017F8297009C9B4B573B70DA8921A0C256A9A03C0CD6A4F72C6EDB5630B1219C4A3C30D1F1586CD936E3437684AC60EFA62D0A345FBC4881B24372B5692C101195C66C3AD647CA04D37F91F813A7A6795B371A574565E14779772372CC4A79C40308EB1233ED643808E939F27571C72B2F719023E048C4D15C71B3E116482C413A816C6D3A3877F862559B4AFAF04DF9C62D02CB364AA2ADC64078B8BCBEFE043BD6F32FF62B9555FAB5C1009CFC102B9B4B88B8A93B66E3A65A62B184BB5406DCAE7B3AB6047754BD215251EBAF102356BA688095A8C9EB1A9D8771CF60E864B7B4A5588843922B6D4A7445476997A6E5620A528510439B02A4B0DE9C147BB14433DB144FC9AB4B4128F7291A637B7E609A7DE058A3B58A17501C833BE09143244CC7E2490EB01CD292454523CE413A6E8CBB67A464AEF43912B4559651258B9B812989093540DC8D202C652C71CCA1EAC46EAB3F9EC199EAE025B153348A600B0E373B7CF2620F5560A3C64C15EC85B5E81C0BCC4840466C63CB124CA45994BABC31F12486F3712D22B1F649A07B192A2451CFB079BA179C2B857C41C4F8842A916E06F9C6A07CC6A4D2821401A65060688713CED4BB72C08241AAD91B50BC1B968BCF3BDA76A8E1B20060975E8803DD7B762D9A49B988568CC575A6D34BCA13A0EF701B823296FF114EFEC9031D79A20F6C640D4519A1906183099926D44E88703DB7636E19394B2F65ABE9A8712C868697B46871D830BBC09AE02487E8D59537C3841D5B080F503AEA769B0335493B84B94C4A498B1A6E6ACB578201BCBAE6BAF0E960AA975D3F14B5179051D933C4109361F03461F265274F72416DF79D1187B6822A0C38177A02B4AFDD635324EB6737C11A631784916452C700D09AAC42EA2634ABC68BD3F41A2CA679546414DF2314D57C2B318BCB98D7B46FE1B5A7E3AF1B2047D193883CFBC6E7D29049FC9C97B344736A0A48082B0A145AA8776125558DF656718AF59964D42F0704318DB88D1E91B840690B96669C8851BDBEB6043F04C017B59B289BBF550A94D0ACA4AFF18CA84630A99B82711A661E8B202B976E65F53B5DB52B255A88692852E06BBA321B4DE782B5D951AB02EB27098813C98B0F7CCCB778B08704A068B4D48AFB30274C0759FC5BB86FA59FE61688296846B2481E18A05FB9C02931570596EC436F570C187159B25C1F6341163B79670F62334C6B9A7139044A8BBD2B5183E0F82D3B6666735A94478784AA6168D0D3272876B5476B64F7932F3AA4151CA9B604BC7FD5D1395C3708908015B0D2C8CF04858EB23238458F70F964687BB2137A0C75C06A868C3490166CF2BC3AFE9B3746E40C231B3638A3558974BFB0603CF4C28C21003DFE87B3EB959DFA715B78ECB71BF404CDB2B675160138A46501569918CB7DEEB0489A72A4799A1A4AC625D5C6021F51C357895CCBF26FB5AA372343BB1C516CEEA47683E5A4D094A3D5188270811751FB1E19D68EF637227E491CC6387760EB5A810B387F596AA20741C4627B1C13A303D160423BCE1E422D929C06F067ADB7D96112F1607D3C7E43E7AA09EA248526C6881901852123F1B734A8C1891261BAE6E7A23DD5296858B6F7813196F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D2\nsk = 94B49EA42526935245C45A7D580B6AEFF8BBE0F5342BB8BD2550212AD5935F45CBA7CAA6DF914007FBA79E9946C9433A86A2C4202BBDCEA008AF78975E6619D3582787530D", "BB7318A530B7B5A27D24258C7CCAAAF505CA92CB853A5818D4269BE812BECF169A05E71EB957557787C2F3B72315281DBA87476B157A06095A30D52B388AC22840755B43440A931DF8A709DC435B415A7BABBB04CCD93CDA00CA1FB090646B1D6514813368A794D38C907163B5917496B018C519B160C5144D6424495626E3A5AB9FFB8D8D3168D77599A88A1D12C07D86498D88DC1AF7FA7DE15073FD4B62801C1A902B215E7CC3EAC350BB63ADEAF9C7594844795A9A6274AA3ECA0CD10891F05795A77B30ADD76B6B1A35338B8156690CA2EA1C9C3B602B23324925314F726535B36DFB355225D37E7C85BE15A5976A8A6AD4E2C35D4C45ACC954368BA6DF88A47DBB8C782336F7EA507A6C2D26D952DC03B4BFB89872644084783AB493CD72D3BEFC2C803B692729638AF69B03E6DB9B82E678A42969FBE770FEF65723F77DA6437C20B203601C884A9B9E08C0B1DDBBC1A66517DCFC76B3F125F7795E5DDABEF0CB00119778575513E05AC38A7901A0E8C8794685C0F274050097BC50168818A74ABA5D71980F5C76279EC0214CD51EFA8A21391567FA052E6DC0CF9BF216CFF9287C80693645A53D71B3D7509F6A432D51B2B0AAD129B594278DA74FFACBB713357D735A744B7C65E482B7E172C67A5B4EDABAAE11222B8BB6B4564AB4FB20C28B4981614B69BB188DB6056607E089F64803D89210C7E604266B00548A2AE27996196A6D6F762C27B22731F7942543CCEF3856EDF9AD1B1B1652A33C3E038DD9B2CD9A4612CE174315E67B26DAC767E50E68508D104BBAE1A2B89B78266D27B109F90BCE1581A8B8888C90C1C4EA5FC1F009D5073780CB4545087C88026B9B9ABDDAB923DB52620713C8B5AC3301E8715AC39D13084926E841FAE41A7BBB7912E10680A78C0C363A251720B2D69467B6CAC5D894F862595072A7C9B14BFEFAA2FDCC75CC42892CEC6184B52962B9B73D663B7D76C1EA499D538BB45A4CAECEE0C8EB93BBA5EC1A8C936156382B10102E3211B2DC15663412805F60590EC33DBAB80D2A3BC05FA8AF5145644F712E004C20F799650159C40DC952C9A54C27E816C3A6A95EFBAB24A31F6C402300F9BAF88A46644B4DF8A24979E80DC30425B9E75A753A36510B87C5FA95CBF36E19A12245876003B54D4E008EF7AB9D83C5A2406014B5CC33B6167F4C452AF45084B7412EC19556D82B0A6A90C1AEA60A72312D8A7A8E5060189717094FF950AF2B503988964F0AA227C523487471D3BC905B6672BE20BC714729B7A71478B07A19F777DEC546C624723AF7B5F6C142274AC5652A7C2D7ABBF1171F2BDB12F1ECC876681A600806D6FC229E6A8F6424419187BD22E49B8F27486DB25371C169B3F61E81131B57659B1030A959790BA5D6424580B1F588326DB9CD01A260B21B8C42062B883854FB173EA7613764D41DD6B89468C7BA6C4236D1A0436B945B8B340983023139293FC48C07659B955453BBA07B0EB4E2A91F594232A47C65C66E1C5C8279F179925C55EE3A0B3F5423E20A8620572A687C2B64B6CECCB5944D07107648BA73A19FDF6BB3F57C5FA079536C675FF17A6DD22439C8D968F2E3136D3000DD70C5DB6AA212A63C9E16222BD39201D9B64534C87AAC3B53B357BBD522660CAA73B02AE4F45E1B9868ED45CBF8533720F99A1282338A107647ECC8008AB2FED262512A059AC6073264817E08332F9C8031C9913F2339169851D7B746AD9A8F2F54633D470C3376302250A3255687DEE61C2625AA9CDA852D835EC95C4348C9BE74473049ABADD65CA055239D85DCB11E6297E1667AE548664D6BB19B347288D57E3DE27369A52EA25150675507CD5282CC4875FD8C67BF29ACCBC296E26C4B4AC813877945DE0A52C355526E2404D1F262A2505DD542BF3DCCA6F0121A5A45B77B419094408F409261E3C25F90689A5680B146FC6B1B76099F6CAD427C6AC4281DB70B34CEC467AE35186D6195574935A1387C5DC795523257482A7210E1009F5337D773B2708C694359A517152168775695ACBA0735BE594C8390C760070C4912E37CE33B3BAD965205D918331371DE92C27A1A5ECE876015A959E96AAF3B1A60E9E77E46D51D9D85ABA374263BBC65AD78B2D5A53CB909682AA0BF37D49D172BB46A0271D30716CEA8AA095992DBB1132E81265A29435EF2C51DAA9F27FABF3A799813E67EFCA087AC12247B64CC0BA15A5486245DEC1648CBC7AAF40805115D78F6687C47C553D050F1E6821B368F98DA22F4AA7D738A81B298A81BC43E16C8CE1490147CA83D2DD98BB918300A26CB431C99A952471B84BF6118A4D5C0A898532CD277BB4443CD7B6924C3185CE55CADC7F877BE93306357AC71A67DDB4C545FE7301D339E933B81AC145988369FB7D31921A66403C587C165BFDD341011D19EE964B62E4C8CAD2B88E8DCCF3AC75CD3F835E2938D027C6789F54D0FBA176F9BB8DC7716CAC344684334C5704D5A54C932535739948ACC61BD67B581F75A2169A89A11076274B10563141722C9AA9A34BB28A69AD677292BE84455B24559CBBC0F347E7B36A45555A8336B8ADFA07E599633F5D1BB6ADCAF86AC9E7885039A3C1D308996AB6C966F017F8297009C9B4B573B70DA8921A0C256A9A03C0CD6A4F72C6EDB5630B1219C4A3C30D1F1586CD936E3437684AC60EFA62D0A345FBC4881B24372B5692C101195C66C3AD647CA04D37F91F813A7A6795B371A574565E14779772372CC4A79C40308EB1233ED643808E939F27571C72B2F719023E048C4D15C71B3E116482C413A816C6D3A3877F862559B4AFAF04DF9C62D02CB364AA2ADC64078B8BCBEFE043BD6F32FF62B9555FAB5C1009CFC102B9B4B88B8A93B66E3A65A62B184BB5406DCAE7B3AB6047754BD215251EBAF102356BA688095A8C9EB1A9D8771CF60E864B7B4A5588843922B6D4A7445476997A6E5620A528510439B02A4B0DE9C147BB14433DB144FC9AB4B4128F7291A637B7E609A7DE058A3B58A17501C833BE09143244CC7E2490EB01CD292454523CE413A6E8CBB67A464AEF43912B4559651258B9B812989093540DC8D202C652C71CCA1EAC46EAB3F9EC199EAE025B153348A600B0E373B7CF2620F5560A3C64C15EC85B5E81C0BCC4840466C63CB124CA45994BABC31F12486F3712D22B1F649A07B192A2451CFB079BA179C2B857C41C4F8842A916E06F9C6A07CC6A4D2821401A65060688713CED4BB72C08241AAD91B50BC1B968BCF3BDA76A8E1B20060975E8803DD7B762D9A49B988568CC575A6D34BCA13A0EF701B823296FF114EFEC9031D79A20F6C640D4519A1906183099926D44E88703DB7636E19394B2F65ABE9A8712C868697B46871D830BBC09AE02487E8D59537C3841D5B080F503AEA769B0335493B84B94C4A498B1A6E6ACB578201BCBAE6BAF0E960AA975D3F14B5179051D933C4109361F03461F265274F72416DF79D1187B6822A0C38177A02B4AFDD635324EB6737C11A631784916452C700D09AAC42EA2634ABC68BD3F41A2CA679546414DF2314D57C2B318BCB98D7B46FE1B5A7E3AF1B2047D193883CFBC6E7D29049FC9C97B344736A0A48082B0A145AA8776125558DF656718AF59964D42F0704318DB88D1E91B840690B96669C8851BDBEB6043F04C017B59B289BBF550A94D0ACA4AFF18CA84630A99B82711A661E8B202B976E65F53B5DB52B255A88692852E06BBA321B4DE782B5D951AB02EB27098813C98B0F7CCCB778B08704A068B4D48AFB30274C0759FC5BB86FA59FE61688296846B2481E18A05FB9C02931570596EC436F570C187159B25C1F6341163B79670F62334C6B9A7139044A8BBD2B5183E0F82D3B6666735A94478784AA6168D0D3272876B5476B64F7932F3AA4151CA9B604BC7FD5D1395C3708908015B0D2C8CF04858EB23238458F70F964687BB2137A0C75C06A868C3490166CF2BC3AFE9B3746E40C231B3638A3558974BFB0603CF4C28C21003DFE87B3EB959DFA715B78ECB71BF404CDB2B675160138A46501569918CB7DEEB0489A72A4799A1A4AC625D5C6021F51C357895CCBF26FB5AA372343BB1C516CEEA47683E5A4D094A3D5188270811751FB1E19D68EF637227E491CC6387760EB5A810B387F596AA20741C4627B1C13A303D160423BCE1E422D929C06F067ADB7D96112F1607D3C7E43E7AA09EA248526C6881901852123F1B734A8C1891261BAE6E7A23DD5296858B6F7813196F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D2C9EDE13BE3DBB0EDC3AB08226CAE11771FF4C0B04A564B64A0D9FF10E373E986003271531CF27285B8721ED5CB46853043B346A66CBA6CF765F1B0EAA40BF672\nencap_coins = CDE797DF8CE67231F6C5D15811843E01EB2AB84C7490931240822ADBDDD72046\nct = D7894051D7B0BED3806F9C3DDA9B06603A6E20AC35848B907D3F146471A8D6BB1B8490CB2253B95BB02E34CF5CCA8A7ED85FE0E3A418B0B7085BF0DD8079AF05234BAC561C628B0D5E3040BA34DFD6732D0FBE3EF8D180AA1B02A89792D0411731F3005853C7D14AD636027ABF12B2AFB3BD9E6047F8CF0C45A9C27CDB9516790A3C6CD4AF8F6FC16403B31F0136B7CEF43E6F02A26305D3123AFC52008F861C69AB474C65E8111D85DDE93A24166452F7557458762C32B85F863A7DC151C544E9151F2239B12C171D09C44C7323A2D6E528DBDF10D52738E973474BCF4299EF1AE762A903E5F8F4B9F9A8E04EFD00A6E52A2D23C5156CA53DD4975F499766E3D7B1645311FEE841641EB0E7C411D4746DE694EDBB6BF7F8C071F595EAE3CEFDAC36BC3C4173E359B2EDFB6E8C130C56C94DBCCFDE5C680AB3BAE44F3C0DA40D0414F41637BEEC5FCEDFA6786E25229140954AB5C9D2B2DBCA3AB66E29D52A99B9F6EDDD769ED6DA638B52BF49488CF748082932BF551F490B84D474BE95CA7D00023948A79E3FDEA65CA84301E57A9541EFE63C1AC0A3DCA139CB4B2F1132E3D1790C260F761635B94784378811158E3D694C666C15F5DB3AF6365C30071A532EDE8C30C7B29A3CD272968C6D5619ED052A97014F41C5DA8EB2B22B81FA74A21BC584F8AB5E244BCC6145FB03F5191E1D0556DBB770E0FA6E5D0084CC671F6A41AFEEC906B13CC70A0D0C6456DF5CF5CC48380C2BA66D6EDCC3DA41E9B2159F492ACD5177782FCE88F3C1978F9FAB03A8F2AEB84DDDF3AC0C9E4832D948D167C529F9D49E11EACAF7A7B2AD49733B459E428A564EDF84422ABCDD669FFC370FBE0312CD75CFCC708105741A9991F929AACB9A30342F6091F501499369C27B88F27E0DA8F914A088DD0BE64E98AA5450DF11564A7CC4D4148DCA31A64CCC0709882CAF9DAC2DB60858387EFA47A223E1D582446E64BD5F237F1761511E8CAE5296795284C350DE534401E3AB548D60425C49E9DC87E1855C3EF3433EA3022310C6F5B2063B66EF3BA001497536853109DAE959383172A3028AD56528CE0B63149F1B86BFEA3F6AABB4D921B12989A7C4763F6EFC5AB4D997A6C25D73F8C6CEC35F6D3DC20A6EDB062845FAEA4D7D3DFAB7624DFAFE5A105B17966EE76C832F5C8035D8B4119D35CAA47287BAF11F727FB27D2D071781DC61CF254F247B7132ABA286E5DC99247751C30C24FEA034978CB8B22FAB060E2A142317D7DFF4A7DFDAAABD9A58D938DBE512E78E524A8D1AB7485573713873DE1BE9AACEBBB769E9291A01B9291159CD633C32D2B62BDF6339B5155552033EA1BF4BB77", @@ -6457,9 +6472,9 @@ static const char *kData85[] = { "F9FD72E824A689EA29F847620BBF9D9FAA390B2B7520262BA0AFCDA04CBB6A1EACDBE5B116DCFABF990124FA9916A9F3E0D913FAFBC9CFEB204512B7D0C34F8663A63D186DD330980C25BEAA692A92C4ABBF8295FA3D16E4E1FD24A89ECF410AD5B22B8216ECE443B0ED6056B487AA7D72A2ABB35033A559AF46844D35321623EB90F16824A040D1D223FBC75BF2BE16B4287535CFC0634EE13A9A3D4B698389A3DB6D79C15A1A0523E1DAC3CAF0E6D6067D99030FA5B8C2377DE2F5EA12EC83B0BB905929BEFFF1EAEEB9A2910A5F5462300FAB719C29AEC41266E57353DABD8291D6A3C5A7B1C063BECEDC9E36BCF56EB68F87315F26069BB5D393B71C741D63F20F643A99F1451FA83FE41E938772A08C587A86EEF0C689BEA4166696425ECE2EE98B052AC74258DB82F65052CDFE2CA7DBC63EEA473DE7FCB8DE3C393BF854953EF06A6CE05A55366C1F3C521EEAD18BA9A0AC1F369A25BB742E105923D41203A78E18EF1C1753F77C6690BB83F801A48F764C4F79F6B99B25C33D465FC649766C49481AAA23F9F905525BF7590F7299DEF2BB42EE444A58E1165259DB11CD1382E0C495049780A939079BB2AD3177E4AA7C2B13CFF6FB45CB02691368F5DD7AD2DBFAEC9EEC02341B7B0E55079C39C1A5C0BC193C863CCBFE3CFFF01635FF11CB19B998054EF73EDAEBAEE1E3F05FE86D1E96A5C8F7312360E2FE5580A7C2F1BEA743FB8729F703BD11D9DE7B665D80FFF0D60BF5233668B19D38EA74B8D1D70526026A7B6A1E32DFBE50719DBCAF545C2AB8B2EF662EB1FC0CD0C9E5F8D31A68632E6DCA870D76A82585E779114DFEF16E8F02BC799CA8A05700E499B5EE291BA82E858C44949C40D4DEAE06C90098A2327BCBA41BE2B1EFEE112238CB013C0E587EF91DCBCD3CE067CF2F2F3F5305C8984A6D3FBBFE1DCB87BFCFF571F13E14108B9707C870357ADF6E592A8846C99EB449FB2F6E57ECBC934255E177362ED6B60F64EFD47A958DF387CF1FB76691FC30DD216C57148C0CB66FB3336AD1C60FBE930EBAEFAD8F2DD43705B1A2B47071654D815B4DA74262E0265928B3E679276C0186BF4641C908FBBEDCDEBBC34A93852302B67CFBEA67C6E3D65A0A54053E2CEF917200CF5D6CE7C7F7D908A5A897C1B6450F97EC8DF28B9459F4D849D704D2D09BCA0EF134C52237CAE19A586AE480216D8D538EE7078F0ACFF222C08B588A2D82D99B5A3D0AA4984E5D41894F52048C2C9949656B154647ADAC2CE068D06CFE965C80F802D6620D40D6C9CDFCEE3825D10CA98691750550F75BC37D857A4BF51764DDB798DA5B639CF1CBB1D5FCEEADC4CB6E7155AD1ABA4B704F51F7D7AE3C91DE2065A482755A039AF378B83645D7A5B133955B093D18BD4941D2DFC44A1363CB8E1CE5C882BA7AEDF2D9C0D07478B5B0062AB6E5943F8D89954E0F25E5A68E3C7BF067574AF921D5E0B90126A31C81BF6B37C52C3D7A3453988BFD8DC939086A4BB5B2CC2ED55905E49129311A352AF3F85413665337FE184F77C14E3F3CDBA37C9C2E2C6881D2F5DC4855335ED8E57A1CF555E1C4782B9F7F04CA823\nss = 54390804B9263D9DE67F3FF064F6D3C8318A8FB06305ABE835C23C778368D680\n\ncount = 99\nkeypair_coins = 195D6C86A3DF4C21E3007D7F2768B43C74CB3060E0ECA77F0A5D3271542B9A84AE77E0F9F21EABD8C0C6EEA7767F4E10FDE5C2D79B8400BF96B19014B457EC21\npk = 5064909F424A15515FBF534B4F660B09E9146C40AC273822EB116AC60782DC519805C41F39A306D7E21D0FC2264B8BB6637B113144B0D459BA833965D3A39C51355416F672B25811F5F2CE8CEC777BA322CE506823D6005D1147600808CA3C4D344A5F9D47336254766003341047AE044691650C907D937E5DAB543F767FADD988E0BBB7EFC25874D5190B893039493204F67E11560E49412B484781C571324F76218976A1633BC4CA3C0A6D8211C6C0171E0993BAF46406F8B85FA0C7F0551B74AB81D642C634EA74B269837E2588228A8645764A2B9A7BC2A802682B22C24C2A55439D14D12E620363271A4468FCACFA8BA686F1BDBFC70CA9C0961F9A488B7962B8C718B9E7A33D8B5306E6A05616C2A1484AA044200038624F65B8A92BA4739C714AC71FB8F12AF92C5CC06C2BB59367C5C471BBE6099D1B19C9BB1AA168C071DBC6E01C5C72FA33171C52B78C1DEB32134DD8AF5D147BDEA32DD6C52450C112BC5A0D9E03B06D807173304972A9866AE4BF6B053D98680858671CE1F252293972C42C4BF6EC2BA9F11BE4325C34F89E7D500DD749AE3C845F7D56815F11A2FB07B9E3F88CACB51E2ED258CF5BB981B089CBA18F902C14E04503302CA929319645154CFA878CFC777F2093A00916A617B6086D973208883ACE08270EB16BE4EC404EB2951BB1AC825840BEE09EBA19A90B5316AB79C3AC062C07F45782F4CCBDEAB590196F8436A8EBDC90EA944C50E842342A5A558AC8E833908C0577F28A15E49863A2139DEC116D99374236C8A7169053FA716756299ED16125D699C39357133FA49FE0DB960A8CBC0ADB979239B64A7B3A702878FC1610868790ABF3968873AE5DC19020B28F1405CCA1B0800EF236E020AED6157892161B54BB3D14A4C64FA1AB949648020CA86064B17FE8B3F7D915C72A68E2B46F16267B7598BC112537B7681EA2BBA503D8A62D55CD76E6579BDA3E032399BA2CA6CF0B74CCC51F9A5357FD4B92CE4906183C0031727C7A966BF0C485A9312F7A76554A35C065278860396C2ED4B0B44B85C3D7C16C65C33FC2033C04294A91323F1602A6DA351F0A6E478264E0E4A6ADDA77DD6A2535A748DAA074AF31AF028509F2C27F15F00E60E72F7A7032DFB99D50C88814167A838758C2685243839D8AC19E76133B40DAC70E49B33FF83299862C3496999DFA90470B7BB17BCD14019B093B5787ABADA26700A83377AE57173FE528D6DC35EFE846D95933D68144EA3ACA554CA0E873BAA6BB926D70A09306621B3705942B4E0D60CBF200C10C3C4D5F7C8C75899AEAEA40CEC8928AE25BAA2C7F139392221CC7042C05BAF58371010492BC2125D27A9BB01A28A3855C98B894D4165689AF39C0A26A6B920874728D475DAA731940457B24199D11841D5BC369962C1CF3920B6AF974B3150189919959C3B4E556C56FB22E5597B64506575F6799DD86CB0669651A1C017C8A74E5F63CC60B9047B21DEE777DF6010BD6A614F9A63C72074B7909137CB7155FEA72BEDB7428E0B197246AF69121E97923F861AF31F10249E11795A180C0C6C056D58D848A62370278308C4CC2B466A8D7231456C06E4B9F1FAA65A8F0113F99238C52AE3C3A24600C4E943947C8C653C946BBF6B4CEE89646AA23AFC7B22F0D45464337A90A7C22CBDB4449B24D5BF3C070778773B92055206CA895105E264C9757918F6BB76BFC93DE826C61C77B6A51B135915235271FAAD3CF608C0033B2581FC522965257EEF576EBF7379A173B1B269E27648189696B30346D5202B560784777F88ACA2C9F900344EEF8AA0CB4A86ED6335BE29B91248780674BBADB5B11F967A663C2F9129B73EC584C50AAAE9771D258272198261F362D93830880E4B60E4B142B3822816501C89B5011681A5EC2BA2B03CF9EB1886C33C1C72CB6061B10638931E5F1461F413E5766A7BECC59A052A0E221C6419752258955DCE743131890BAB88B8DCC5738EB6F409C1C0D888DE1D0C5A7BB03E80171C2B41DFD411F74B5165804B82EF473BDF5CA37983CC1047FB5A4A34598C8A98A5B0EA78FBE27B9929753B89A6C9F2C7D0677ACA4E296F0D975F2F5731D822627C1964EC1BB1AC7452BF0C5C0735D6F75304EFA4410E4CD20557B574CAD1674395436203DB728A58B8E0B95183C10653B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B8\nsk = 55873EC8C5BAC259501E025FAED327B9B659B0810E7D43B8BF7A25A8C1A51062CFBC9BBEAB182747196797913398DB1C1CA41C1CC3A883400A29797AB4CBB553076C204167AAD2208355279F504DD9A476985362898B4E423821CC2642C335C3C953C866451CECE03098D5A2AE366DDAE1A06E05547E1C0C0667CC98494BFA778EEBC5CBACCC3038F93B82E57F814799CB7A921FB14042AAC83A1B4897BC6A15C87FC94144828966C49B6CB8F842A3157B60D6B3271C3661529D8A93C7DAF7B4DE1396308C0CBBFC9F984617CBB5B1825C88BDBC4C74C58EF3D54D089613A6A431E3A59ACF4201FBB6828DB0061F1BC514DCBFE72023CF8102E9834D5D6BBA8A354FE04C6008B37F9B07857CDA1238F5A562F288F3217FFD1A1BF8B2A0FCF3AF0310C84BD6CD805C246C4A227C9BCF963093A9755CBA968E7C06CC4F987B516171461B69E013076CB652C2A0B10F1B0FC9D6B583A929FA3905BA4B6B41F19D862C82B5F170277530A278773FA740ECA749C00A61735AA1A27719CFB75EB0768956718239F43239E25A316339DB665EB9784AB581137D020B992782956522B824B3EA4CB540A4B12AD7C512046711B0463F779E1279BCD2B7238580C72DF6120850376DB48978DC717CD1424D0B5E7331B76D0AC0B024C6283C8418E5B1A7A297AA483E5D2A65F2181EDE32C69CC4B9A8C4C0B90BB17EC06336D2100766AED931876CE45435B5662DD8A5B9F545292C870A16925546AE0CECACFB737647504EA1A29D13E0BC2D060BF7480345051E9379CFB0F901B9A426641802E5522FF8B199439026B123CF9B5827FFA147567912C46C88CEF0B41D9526D227A72262C0E3B3157DC4898E07CAEBC8038142B5172A799B8A6DB0F7703730C98E1957FEF13D5D7B2A52945EFF5C4337B6CC5004BACBB419BA73568AA357F61C70383447C6015A5896B9C0C0A2F2C7A76D940278D736D6B685F4FB3CC392CAAC1830B439468B6BC73585B4205751E55103099986308702A477588611A990580D88657024FA6D371550141405A8240109824788675D2546AFAD54628E93281ABCCAE4EAC11D200AA5C40A9E440D9F2A40DEB31C2688A3266C9E16B60461087DA271A1973374C99693C8111F9D458F92AC3208268078B177C818038305AB421B6D8297063061BB36F1318BB2108163A723A4BFC3C2A25F958F28B2B806A15E4310B8852103843C8AC26C7773084F1F82151C52083E69772A049123027916F039FD08713B98039F3B84CC83A8F88B2C19F48A958A443339A5A2158DFD7A08D11983601A1892A8C1152C602EDB1592C3AE555B2EE54C5DC6020C0B95626FC06D85D78120AC135FD369DE6B6AA902BB015A7BC3BA13A7391960C533D2F1A6278494E78B6A3C5B91A2B1AA2A0752E5C0A30E33CC86DCBA2E3232C98B9AAF1BBDF9E825B15A6DC3A741D43A53EB10AD18E93541E224EC5A952D673984990AF0D81577D1BC83B09856794D11707FAAC63A1E49A799224B51464916BC07F0A69F06F26696F5806E92CA4ADA050CDA48A9C90635A9C68ACC753A711115C35488758A68256A32F4964C431D50C0A8C5053D1A41126A952270A309F69931C32194FD201BC3809DB548A0005585081C6B11DB7A19E14F9A4777C5C12B35289100D979E5B5B306C6692136A839CA4DDA2A1E9D3BB3C418A732EC4997D124B7D6CB4BB090C0F35AC2D206F2B1B19DDA1929AC935B2CB24E320EA87ACBCCCAC6D4454B8A183E89E8738DC645F50239232BA5EA03BAA3590CD29C05FF4C33D8107AADE2104BC879EBAA431294B201E2B589647C29", "C66F7F3677EC30BB1BBBA093B60ABB147CDC07748B098EC1F83855464B1AEBB41BF30F4CEB59C41C24701A39DC74B44FD8505980C1786275CF16272A29C285406C70EAC1DE5969D459CE1F211C8A47BE727A57A772566984452E2B2EA96ABAEB3A0990B9A7FBE5147F6A438E27A3624355B97C7140406D52870C421754886ACACCAB09B2351AD28716C476B61D7C9082F8CD81D31554F334AF75030C4075D2965A9DF37AF81A4588AC0241183247C5047BB81DFB6BBD7252993D69CF5660ABCF2AA5C9787F10C02793E9BB1CCBC3761B25759A38CF2C28ED1CA65700112E540EB4B0587E036B9502223FB95E2815A5E6F9C384369C24B1A962C4B05064909F424A15515FBF534B4F660B09E9146C40AC273822EB116AC60782DC519805C41F39A306D7E21D0FC2264B8BB6637B113144B0D459BA833965D3A39C51355416F672B25811F5F2CE8CEC777BA322CE506823D6005D1147600808CA3C4D344A5F9D47336254766003341047AE044691650C907D937E5DAB543F767FADD988E0BBB7EFC25874D5190B893039493204F67E11560E49412B484781C571324F76218976A1633BC4CA3C0A6D8211C6C0171E0993BAF46406F8B85FA0C7F0551B74AB81D642C634EA74B269837E2588228A8645764A2B9A7BC2A802682B22C24C2A55439D14D12E620363271A4468FCACFA8BA686F1BDBFC70CA9C0961F9A488B7962B8C718B9E7A33D8B5306E6A05616C2A1484AA044200038624F65B8A92BA4739C714AC71FB8F12AF92C5CC06C2BB59367C5C471BBE6099D1B19C9BB1AA168C071DBC6E01C5C72FA33171C52B78C1DEB32134DD8AF5D147BDEA32DD6C52450C112BC5A0D9E03B06D807173304972A9866AE4BF6B053D98680858671CE1F252293972C42C4BF6EC2BA9F11BE4325C34F89E7D500DD749AE3C845F7D56815F11A2FB07B9E3F88CACB51E2ED258CF5BB981B089CBA18F902C14E04503302CA929319645154CFA878CFC777F2093A00916A617B6086D973208883ACE08270EB16BE4EC404EB2951BB1AC825840BEE09EBA19A90B5316AB79C3AC062C07F45782F4CCBDEAB590196F8436A8EBDC90EA944C50E842342A5A558AC8E833908C0577F28A15E49863A2139DEC116D99374236C8A7169053FA716756299ED16125D699C39357133FA49FE0DB960A8CBC0ADB979239B64A7B3A702878FC1610868790ABF3968873AE5DC19020B28F1405CCA1B0800EF236E020AED6157892161B54BB3D14A4C64FA1AB949648020CA86064B17FE8B3F7D915C72A68E2B46F16267B7598BC112537B7681EA2BBA503D8A62D55CD76E6579BDA3E032399BA2CA6CF0B74CCC51F9A5357FD4B92CE4906183C0031727C7A966BF0C485A9312F7A76554A35C065278860396C2ED4B0B44B85C3D7C16C65C33FC2033C04294A91323F1602A6DA351F0A6E478264E0E4A6ADDA77DD6A2535A748DAA074AF31AF028509F2C27F15F00E60E72F7A7032DFB99D50C88814167A838758C2685243839D8AC19E76133B40DAC70E49B33FF83299862C3496999DFA90470B7BB17BCD14019B093B5787ABADA26700A83377AE57173FE528D6DC35EFE846D95933D68144EA3ACA554CA0E873BAA6BB926D70A09306621B3705942B4E0D60CBF200C10C3C4D5F7C8C75899AEAEA40CEC8928AE25BAA2C7F139392221CC7042C05BAF58371010492BC2125D27A9BB01A28A3855C98B894D4165689AF39C0A26A6B920874728D475DAA731940457B24199D11841D5BC369962C1CF3920B6AF974B3150189919959C3B4E556C56FB22E5597B64506575F6799DD86CB0669651A1C017C8A74E5F63CC60B9047B21DEE777DF6010BD6A614F9A63C72074B7909137CB7155FEA72BEDB7428E0B197246AF69121E97923F861AF31F10249E11795A180C0C6C056D58D848A62370278308C4CC2B466A8D7231456C06E4B9F1FAA65A8F0113F99238C52AE3C3A24600C4E943947C8C653C946BBF6B4CEE89646AA23AFC7B22F0D45464337A90A7C22CBDB4449B24D5BF3C070778773B92055206CA895105E264C9757918F6BB76BFC93DE826C61C77B6A51B135915235271FAAD3CF608C0033B2581FC522965257EEF576EBF7379A173B1B269E27648189696B30346D5202B560784777F88ACA2C9F900344EEF8AA0CB4A86ED6335BE29B91248780674BBADB5B11F967A663C2F9129B73EC584C50AAAE9771D258272198261F362D93830880E4B60E4B142B3822816501C89B5011681A5EC2BA2B03CF9EB1886C33C1C72CB6061B10638931E5F1461F413E5766A7BECC59A052A0E221C6419752258955DCE743131890BAB88B8DCC5738EB6F409C1C0D888DE1D0C5A7BB03E80171C2B41DFD411F74B5165804B82EF473BDF5CA37983CC1047FB5A4A34598C8A98A5B0EA78FBE27B9929753B89A6C9F2C7D0677ACA4E296F0D975F2F5731D822627C1964EC1BB1AC7452BF0C5C0735D6F75304EFA4410E4CD20557B574CAD1674395436203DB728A58B8E0B95183C10653B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B82460170E6CF1DA1E7B92037F51B4E7674D9ABF74F5C225C5C6CE16A971691284AE77E0F9F21EABD8C0C6EEA7767F4E10FDE5C2D79B8400BF96B19014B457EC21\nencap_coins = FA0489F3730100609488E951E6AAA15C0F193BC1DBCFCD013BC418D6C507B176\nct = 46DE29644F359A188B8631AC51575AC1656857F486F933377165C7A52BCB6BBFE1CE34A3F44F11CEF9894D6E6DF14D962C23424A007EE9E813E2EAB2A62E8FFCE34D28F339FC0A0C47F2346A20AF7FFAE846167AE11E441E63D34BBF66A87EE59B778813D79A999371D5CA4ECBD347986521934027DE0BABA46106E03E730CE215C2381E4983DA09A4A3902A9ACD41F712471B21A4816A94BA453470CA0B4EACB05D07DD01CF39125D860DBA0D920F982A189D0CDB51FFF61123D0949044B68865B9FA2AF3D72C1DCAE71E0FA93553BF4513D55BC232306E33E420B4D4CE9593DAAC87790F7FFA42F30F79DD6C6B06099EF5E590F045682196B34D0AB643F6B0EE4331ECC1E1347EC8827D201FF040B0A7236E1AF72D831B84E76A89F73B4D91570B49E52858B528B7C0871A7052A6ED75BAF6D00DBB055992C1B9E0ACB7E279D806AB238CB0D7FCA987E6ECB167638EB1A17E8AFB885AA2C1294C3F776B635B6F5B5B51BD6007CD01EE567C1FF96E0525EA8E791C4BA594FC7BC5356877E2919700AC2670669DD1BCC0C939F05D1B6D462343C8F24E8741F15D0E74D114C81A1492E46D0916242CE41F161BF0B74A551EB703F5F1715B81B66CE5CBA6D710D51D3D29A433E2922006C16C7171C84B3CC423AEF676ACBE677EB2CF91D92A31571F8B8A4C6325DFE58598C2CE8D2AFBAF498A1C8B163187F893E72EC879450486E51B9C0C63680E3DA4F5938BE104813E170302F3BF6FFE4F236EA3253CB8E040AC10EEA044FC580492724ECE9651735CC5D1789F0EF935A768BEA164068ED1A7F23939CA2673BDB980FCC1B779F25A000F9EEA892701EA8E8786C0C7DDBA2BD83569FBDE99DBBBDA7A1A980C6734C50C556AD5E459480D234E63478A9060A487624CA1CF45B42FFA61A593D0C1DCC453D6FB0A08F89D95EB7A0BA933B59C24956BA7DA66B863578299A53F189623671B6F2D804E539C742325DE8A367A6B529B9636214019D232964CC85357505923368ED52FF4DA274F8F5AE3E2AB39C67EA1E6C247E46434A3C23808ED8733E7B0AE353CC38CE039C66D3D5D1C14CAE8D68830293628A184C0539509125E6036D44A1C516AA687ADCAB3869F6C28FB711E5AE932ED8D3CCAD7AA9AFE72674EBB1DF3AA5B67CDE6C86F79C58043EFD18544C7CDFBBF72BF9F31C14DEB828BF2207D2BBA81802E74910D5E76361D68FEDBAC0C790F68DD3685905E7C177508906C47F21DF850640DDEE2C02CB357E1935A00ABB60CBAAFB1900B7D16BE43E1CC9DB2DB7CFCA99143A25C0C549BBAE09E46D8904582F5137D4165F124D02C99EC2E833D2DEE4F222C55BB796DE06F9848322B6D0503005CDBF09913C72CC9AB7921B995B4427D4E2D9E0D988C45A61C4285A0B5B0C3299C564439B1B1518839587496A5D95427188EF42CA2BE1AD56282EA99631CDEA8E8EDE0A995BFBF6E7E434CEB7E906D0809BE41F7A8296BAC019920580D73A6A98179CC1F7C8F2B1549762828ED75DE117B930EF7FB4E506B31C55CF83C06FC9683734184B530144E7DA1388AD3D3B151D33414BAD73AE8B976C56F663FB1CDB6015B57FC30292789E20BEE073866F7C86D2E279314FDD20B54E434EFFC57CFFAF93510919186BD8D93629F7BC5E6772A10F895B4A8D4F2A9E7427A95953E111A9084A742423F65AF2F70D74228AEA44F19E3A9372E8C5682C124B3E1783454B6451ADB0C836DA79F51932BFFB81E71BB51A7D30327BB9DCBE7E6B8CB2AE568F6A38893C5F951821E4D876B846DA7744A6C1A1C701548BD678E7F920974F2D02694C14A222635CA7F912A0ADA4C381086FDDDCFE99739E33D5D3B595DA65E136E88BDE57C407C0B72684ABA65DDC298B566F3F4E673B17C03AEB72C1814DD49B4E1A369632BE71C708A0D17D40FC28036C411AE737B017879CC598E17DC9A0BACD2A2767CEE2D06630A2EFE66FC71E4B183D5B48076BB588B1E364CAD0D0760338A9D6AFEF4A7DB96180F4534462A29088CA48EB4D629323AAD491CECE3BCA0F2616742C6193A7C525E59DA78D9BF36F2113C28259537445BAAC4122915B708BFC95E8B5BF06F02A41C582088EB19113C1DD53B775473F2FFBC2902F53F0B2B7F58650FB5AD30808385E6423C08DCA29534831544617B1AC4053210055584D6A262FB63620A97694C00B1056BF43CFA780AFDAC356C593388D2B802C78D\nss = D24FB4E358A5176AE303C88B9BAFEC3EEE2D20723D42A4E487A1B75F8ABC1D43\n\n", }; -static const size_t kLen86 = 672402; +static const size_t kLen87 = 672402; -static const char *kData86[] = { +static const char *kData87[] = { "# Kyber512\n\ncount = 0\nkeypair_coins = 7C9935A0B07694AA0C6D10E4DB6B1ADD2FD81A25CCB148032DCD739936737F2DB505D7CFAD1B497499323C8686325E4792F267AAFA3F87CA60D01CB54F29202A\npk = 115ACE0E64677CBB7DCFC93C16D3A305F67615A488D711AA56698C5663AB7AC9CE66D547C0595F98A43F4650BBE08C364D976789117D34F6AE51AC063CB55C6CA32558227DFEF807D19C30DE414424097F6AA236A1053B4A07A76BE372A5C6B6002791EBE0AFDAF54E1CA237FF545BA68343E745C04AD1639DBC590346B6B9569B56DBBFE53151913066E5C85527DC9468110A136A411497C227DCB8C9B25570B7A0E42AADA6709F23208F5D496EBAB7843F6483BF0C0C73A40296EC2C6440001394C99CA173D5C775B7F415D02A5A26A07407918587C41169F2B7178755ACC27FC8B19C4C4B3FCD41053F2C74C8A10A8321241B2802432875AE808B9EF1365C7B8A52902F1317BA2FB0269F47930672107B4726FEF64547394D3320C8F120B3C2F4725B0305FAB88CC7981FCB09A76A1CBF7F179F43BB0A4C8B0590857F1E69708466C7F8607391E7BC5268BFD3D7A1DFFCB4ECA2A1C9B597593013D5FC4202EC2B74E57AB76BBCF3632BBAF97CDC418A6F16392838CA9BF45DDF023777B7561833C105190F94F302C59B531900BBC816361FAA5B3380CA3A893104CA7388B185671B3E5FE3790E9A626EC46D9B0B33C7A419AF7B32B6859894F575D82AC5456B5490A7AF8FE61046360589ECBA7244236F4123116B6174AA179249A49195B356C72FC6641F0251812EAA98570B046699070E0819DC2713F469137DFC6A3D7B92B298995EE780369153AC366B06D7249CD09E1B3378FB04399CECB8650581D637C79AE67D6F2CAF6ABACF598159A7792CB3C971D1499D2373AD20F63F03BB59ED137384AC61A7155143B8CA4932612EC915E4CA346A9BCE5DD60417C6B2A89B1CC435643F875BDC5A7E5B3481CF919EA09172FEBC46D4FC3FB0CB9591704EE2DBB61844B2F3314A06BB6C6D34005E485CE667BDC7D098586928D2D91340F00419EA401351A240A0B041058BEFB0C2FD32645B7A2DF8F5CBFD873327C978D7B351A28088438837024C52B9C295CD713646FB5D6C0CCFB470734AC2B2BC8123C2C13DF6938E92455A862639FEB8A64B85163E32707E037B38D8AC3922B45187BB65EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B53922\nsk = 6C892B0297A9C7641493F87DAF3533EED61F07F4652066337ED74046DCC71BA03F30960103161F7DEB53A71B11617263FE2A809769CE6D70A85FE600ECE29D7F36A16D331B8B2A9E1DB8C090742DF0739FF060CEB4ECC5AB1C5E55AC97BB66A7F895105D57782B229538E3421544A3421408DBF44910934CC423774F1676FF1C306F97555F57B4AED7A6BAB950A8163C8D318DEA62751BD6ABC5069C06C88F330026A19806A03B97A7696B56DA21827BB4E8DC031152B41B892A9E99ADF6E1963E96578828154F467033846920FBB4B80544E7E8A81AE963CF368C9BA037A8C2AD62E32B6E61C91D75CE005AB30F8099A1F29D7B6305B4DC06E25680BB00992F717FE6C115A8084231CC79DD700EA6912AC7FA0D937BB6A756662230470C189B5AA1653DEB937D5A9C25A21D93B19074FC239D8153539797C7D4AB62649D76AA553736A949022C22C52BAEEC605B32CE9E5B9384903558CA9D6A3ABA90423EEDA01C94198B192A8BA9063497A0C5013307DDD863526471A4D99523EB417F291AAC0C3A581B6DA00732E5E81B1F7C879B1693C13B6F9F7931622429E542AF4069222F045544E0CC4FB24D4448CF2C6596F5CB08624B1185013B6B020892F96BDFD4ADA9179DE727B8D9426E0996B5D34948CE02D0C369B37CBB54D3479ED8B582E9E728929B4C71C9BE11D45B20C4BDC3C74313223F58274E8BA5244447C495950B84CB0C3C273640108A3397944573279328996CDC0C913C958AD620BA8B5E5ECBBB7E13CB9C70BD5AB30EB7488C97001C20498F1D7CC06DA76BF520C658CCADFA2956424557ABEA8AB89239C17833DC3A49B36A9AE9A486940540EB444F97152357E02035939D75A3C025F41A40082382A0733C39B0622B740E407592C62ECAEB1432C445B3703A86F6981A278157EA95A6E92D55E4B972F936C2F0A658280EA2B07A48992DF8937E0A2AC1DCC974FE00AAE1F561FA258E2D259C3E861DCE236039127606FC1CE009003A7BAC942101DCB822B1F3C12BF73238F546E01C36B5A6936192995CC69C63237409CB53C2E35D74890D18885376FA5503B107A2A392115ACE0E64677CBB7DCFC93C16D3A305F67615A488D711AA56698C5663AB7AC9CE66D547C0595F98A43F4650BBE08C364D976789117D34F6AE51AC063CB55C6CA32558227DFEF807D19C30DE414424097F6AA236A1053B4A07A76BE372A5C6B6002791EBE0AFDAF54E1CA237FF545BA68343E745C04AD1639DBC590346B6B9569B56DBBFE53151913066E5C85527DC9468110A136A411497C227DCB8C9B25570B7A0E42AADA6709F23208F5D496EBAB7843F6483BF0C0C73A40296EC2C6440001394C99CA173D5C775B7F415D02A5A26A07407918587C41169F2B7178755ACC27FC8B19C4C4B3FCD41053F2C74C8A10A8321241B2802432875AE808B9EF1365C7B8A52902F1317BA2FB0269F47930672107B4726FEF64547394D3320C8F120B3C2F4725B0305FAB88CC7981FCB09A76A1CBF7F179F43BB0A4C8B0590857F1E69708466C7F8607391E7BC5268BFD3D7A1DFFCB4ECA2A1C9B597593013D5FC4202EC2B74E57AB76BBCF3632BBAF97CDC418A6F16392838CA9BF45DDF023777B7561833C105190F94F302C59B531900BBC816361FAA5B3380CA3A893104CA7388B185671B3E5FE3790E9A626EC46D9B0B33C7A419AF7B32B6859894F575D82AC5456B5490A7AF8FE61046360589ECBA7244236F4123116B6174AA179249A49195B356C72FC6641F0251812EAA98570B046699070E0819DC2713F469137DFC6A3D7B92B298995EE780369153AC366B06D7249CD09E1B3378FB04399CECB8650581D637C79AE67D6F2CAF6ABACF598159A7792CB3C971D1499D2373AD20F63F03BB59ED137384AC61A7155143B8CA4932612EC915E4CA346A9BCE5DD60417C6B2A89B1CC435643F875BDC5A7E5B3481CF919EA09172FEBC46D4FC3FB0CB9591704EE2DBB61844B2F3314A06BB6C6D34005E485CE667BDC7D098586928D2D91340F00419EA401351A240A0B041058BEFB0C2FD32645B7A2DF8F5CBFD873327C978D7B351A28088438837024C52B9C295CD713646FB5D6C0CCFB470734AC2B2BC8123C2C13DF6938E92455A862639FEB8A64B85163E32707E037B38D8AC3922B45187BB65EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B539227FFAD1BC8AF73B7E874956B81C2A2EF0BFABE8DC93D77B2FBC9E0C64EFA01E84B505D7CFAD1B497499323C8686325E4792F267AAFA3F87CA60D01CB54F29202A\nencap_coins = EB4A7C66EF4EBA2DDB38C88D8BC706B1D639002198172A7B1942ECA8F6C001BA\nct = 56F425E5F9E5760159049B17E5ADF854E0129250848EDCB49BE2104F80D96137A706F44C4BF306CC52C89CD74F98975F5A2CCB43C26CB445C6693F8CF8FB0A2099B196B57FAF8C8631887B67A9022C8B7CBE821E1ABA1B8E5C1931F6954066AC89B26A6D2132CFFBE2F7F63600AEDB3AB610493CB403151F0EE0E6BEB3F137FC3AA4E86026EBBC9E742084866EB964803B768B0190AB9B564CE4BC3470EEF83E1D3706A50207C81391A9B75848B2E9D7BDDC392978BBAAD0197A9B26EB7F1CB4F2D3010F697E2C568870F01C219447A23740B013577DE1CCF5D8AE607019D112E8B56C7B56E323F6A2FFDC982F6D1AACF1B23F7660FF8063D098C9AE2198BC5457B809B53296FC0887029F907E12F7C72923975F2E6FE2FA3481DFD84D9850006F94F8390C80C8E6A4D3C71F56D0129CA716A8F16C84FDBD64837DEEED2FFE083B7AF098D657DC62106AEABE45C48A5733ED4D9A821BA64D83416470D2329CD40A265A6A02977365295B68AAF02596C856185AEC836B864F0D73D364DFC7AF0DDC7975849E7E78E612822215A1F9FCEA9A3BE3B4E7F2BB60E05DA14503179CC566B448F44DFA70EEA5B86A11A2FC51B3D6337BDC2F0F16DBACAF2C3A31EB9AE8C02973E2207027DC925760C0DD1831EAB0AE502411891593DF3C15F6946262BCFD7931267830F2F75888486BBD6680D42B60A8F0F20AD7FFA169FF8C6068D4A20EFB8BC8884958738E7BECC251F797221C4E45E270195FAF4B966977BA79772B0CD9AEAEB8EE3785B4D1D5ABE608C3A0969BBCB58E4C1527EF4D3897C0E935A63D06CF956B2147A127E7B01E5653CD1C84DE0183027F9373CBA12204F952FC44D8C5441A6E79CEC54F89E06FC4337453F81DCB9F4CE9F753E8D552FAE1F589549014830A6820045A16B692B9780613A40DAF305058634BAB7C54BF24BB1122D27E961BA4E0E49CD5242D047EFB66DDBD1EF9B45BCA73051679D610DAE4BB4129EC12E1CCE5B7AAD081DCF91155880D83EF68880447AAA8F9980AC253BBD430A9A63AE8A673AE9AD6375C18C438AFDC81B7F9249F870078AB672D58F0F32620C7\nss = 500C4424107DF96B01749B95F47A14EEA871C3742606E15D2B6C91D207D85965\n\ncount = 1\nkeypair_coins = D60B93492A1D8C1C7BA6FC0B733137F3406CEE8110A93F170E7A78658AF326D9588522D326E7F105F11C4E8D97E119E193AF42DC28409F4F7572ADA538B52C1F\npk = 2C421AD4A7848CDC4B73987CF2F85E660C65E468346672AB09EA8B106B2ED51246271BC9D21672F6AA0B3A9B24C8F64722842F2E24CB2A47AAC689A5C57318663BC98756C199160F3A39C2148C574C23836DD060D1AC8A06794EDD5AA068AC19E42CCAAB951051756350C31D584A517FC9BB303276215580FDA99551E82449D8675F29C45AB6354107CC94509EE55AA5DB3A813ADB8B04005200ABA8F91B58A2D3B2B7D82C6461363353038099B7A0E981A85C75E0E422C572C506071DF54BB7B715B9F4A42DA1E89694A06475545D97A09EA36374F2C8BA40A5CC17EB1AD308AE862A26E38B2FFC11B7ABE3B58509B21649B86AAB9E0D1ABB601604C4152257A6691A964657BA0D1F561402545B782960E547A4DAB7B71AA95C67E64CAF568C3B3144FB29022CB0BF01B895E3327D019B591CA282D22105DA99B58BE42BAE7185E0B56CBD0C56EAD56B5DD34E9BC1859B927ED78C4EE1340960256A0B63CF4E1CC9E84A53A48B2F70C3C89E83A0005D65019A8419B5166469999A453418CB94295462D9256CCDDB3FCF8365CF0235F1D547498714A8B09553182FBA093F447A220146182A3ACF062A118B22CA49756505978F21DB629799CAD72AC5D17B2BFA52A6EA15672537899A313A4F0B7DF3F8639906BD0163735DEC5923A038FB7B5856570E279275C3093998338CB595C9A6B712C06C526166A725B9098EA02EA10C5D7CBB86B935703F122DEDB05233202968B59825F41F2C17BA76AC661FA69A7998C5FC6C2FB68A7820576B1FDA2C73DAA29CC21DCDCA47ADAA1B3B5258C1575FC9270712F3B8842978BE50A18DA45159B99272162891CB8A63CACFBC30BAE0A4364C8A6537E1B40E825C4A311488B133956690E494443AB44793D3717582701FAC5486DA4FFAF02C0", "58BA688FB88DEB3C94E7445CFA89A79CA5F4B991ABCE25CD6B74AFBE9C63DFA0F40180B242AB52C1A455C0664F7357C048B27E05CA46B8605E6843C66FBC2A6A29BE135C39565A916ACADBBF2AA2656125B603BC88C9D710399A84850840169BE61BD4EF3687777075F0C7870B61903A26E6391A88B114E96F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D2\nsk = E1785B13943F2661C372CA63A0C6AEDED27F46C81B837293B9867B9F7CCE0611C61B318ADFD67C09969C27A095E53C124B048CD99027C9103E85C5C4D72730A34C8ADC406ECEB4AFE02444671319DF175465EA9A0D91291C18CFC9367A333475727B64E6F73E50233B81AC0978364D18F72DB39A4041D4B25A095DF99BCBED090496DAB62AA250945A97BD297A539A1AF51648C8378C1B21A2FC311B57860C368A819F2B8C15477243256970313B2AE082C2F8BDACB658A89C6BDC788325D48292DC2395F51DF765A4A2E927769C84F5FC306568B4B5E7487B8B9F79DCCE33C80B988C955544CCA478AAC902C2A6F2A4BC9A9478A9B318F78586C696942B6F4C2931E85042DB27314CB546BEBC2236C2136D581EE22978D2B79EA3B662A8BC7CC17CCBDB59AEF8B0CD77A4A680672E9AB4ADC2D011BF471865F92F4A4769A8157B87769AC3B86448851E80F8BABF394907D4C8A51C7BA4CA62CD7AB7BBC4219778CE4DC22955772DBD1330C10055DBE106D11863D7B14B6301A622EC35F3AB9B3494C12E3929BC321950FA1036D98A3B257C20D378A9798BD3B57E50EC88617B49B75022E10130E35432F3ABC7165952E2B7652C0BB1FA92A16D7B3273D2709077164BC60CBBE747205B6DBBE5912947CA3914C1A106B66708212D443898616273E006ED507E30D7A7B6E389739B637609834561AD4E227DA0289ED9180BFAA48A58EA75CC1744F75007A99611EAE775A1F5411F1376A7F25E758C8B69BA731D28BF016970A9A3579ED7150C526B098C4AD277C6D7294462CA65B6F3B7062956551428477B9C57301ECADB9C7ADACA67C0423F42704B008A90861B45C19D24E521080C69FD20A5DCA45ACA18ABB356375A983081567E22798F530AA1E0AABC2D7B3A208446E9081BA2420B8AFCB8EDD37DB536689695749B632D99316653E97056260979974E44D135589A283DD1486856BD1AF59E24394743C7A036A68161E31010CAC462A6A7AC0058E1640AAA686311D939537171B8128965C70FE8EB0F10DC1A2BC50ABA436E2AF19FFBB3C6451A9FE7784678A519473010F9E69F9601502C421AD4A7848CDC4B73987CF2F85E660C65E468346672AB09EA8B106B2ED51246271BC9D21672F6AA0B3A9B24C8F64722842F2E24CB2A47AAC689A5C57318663BC98756C199160F3A39C2148C574C23836DD060D1AC8A06794EDD5AA068AC19E42CCAAB951051756350C31D584A517FC9BB303276215580FDA99551E82449D8675F29C45AB6354107CC94509EE55AA5DB3A813ADB8B04005200ABA8F91B58A2D3B2B7D82C6461363353038099B7A0E981A85C75E0E422C572C506071DF54BB7B715B9F4A42DA1E89694A06475545D97A09EA36374F2C8BA40A5CC17EB1AD308AE862A26E38B2FFC11B7ABE3B58509B21649B86AAB9E0D1ABB601604C4152257A6691A964657BA0D1F561402545B782960E547A4DAB7B71AA95C67E64CAF568C3B3144FB29022CB0BF01B895E3327D019B591CA282D22105DA99B58BE42BAE7185E0B56CBD0C56EAD56B5DD34E9BC1859B927ED78C4EE1340960256A0B63CF4E1CC9E84A53A48B2F70C3C89E83A0005D65019A8419B5166469999A453418CB94295462D9256CCDDB3FCF8365CF0235F1D547498714A8B09553182FBA093F447A220146182A3ACF062A118B22CA49756505978F21DB629799CAD72AC5D17B2BFA52A6EA15672537899A313A4F0B7DF3F8639906BD0163735DEC5923A038FB7B5856570E279275C3093998338CB595C9A6B712C06C526166A725B9098EA02EA10C5D7CBB86B935703F122DEDB05233202968B59825F41F2C17BA76AC661FA69A7998C5FC6C2FB68A7820576B1FDA2C73DAA29CC21DCDCA47ADAA1B3B5258C1575FC9270712F3B8842978BE50A18DA45159B99272162891CB8A63CACFBC30BAE0A4364C8A6537E1B40E825C4A311488B133956690E494443AB44793D3717582701FAC5486DA4FFAF02C058BA688FB88DEB3C94E7445CFA89A79CA5F4B991ABCE25CD6B74AFBE9C63DFA0F40180B242AB52C1A455C0664F7357C048B27E05CA46B8605E6843C66FBC2A6A29BE135C39565A916ACADBBF2AA2656125B603BC88C9D710399A84850840169BE61BD4EF3687777075F0C7870B61903A26E6391A88B114E96F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D213F0970C03D32967B06CCA4CF58E87559128D14CB3F876A1ED10EADFE03FC1A9588522D326E7F105F11C4E8D97E119E193AF42DC28409F4F7572ADA538B52C1F\nencap_coins = 46401015603C5E2174CB94AC742E836B516E2D570F15DE0B9D0204D79AC64BA3\nct = 49E57994384DE63CFDACDD89E3CC14FC54926327E4D9924523D7E0DC8F73C7B6A3CCD39156DB79D30944C92C863566D79968BB84611271D325DCAA9AADFBC869EF4912C15877BFA6ED0C3B333CBFD491979422396F7AAE2C8B1D1CCF4335FAFD872479C7781003634E996C4B2EE67948EB3EDFAF73E49104F329A97BC6945B531A44C145BAA5DD813C98517DD5824791A7F67312FAD81B174A7B351E4334478E75D518CB7A30D4B9EEE9C4D6F1E423C7E84A3FD0031A790725A8D36C1F6A2E443B8F7DDFBA038FA2A192B4B750E9546EA79D05ADB3E043FF1BC7267B9C56D7B4771B05DF34DD715CE1D549A08D4B4D08269659D5298FAAB6AF725AD952529A4260F36387A809FF7C1797B6E1DFB8D77325FF823C568412B46D5246F89C81CABC6D4DBB2E9DDDCBC082A709B79B9C0DB1F2E0DF2C895ABD44ED1087A78209E2727CFDB621A5BFB84CFC9902F5C7D2475F8BFFE68B41399429DDDBE603A54C3F3F95ACAAA065CEDAB71FE418D7B6B4A1409401D87F5DAA0BA7690D7152AAC117C564FA2D2C51C6D8F1FF1507F96BBB7994FC22B9BF5C366DE5EE560DA2C6340B5825B9A7D61C0FED198809918E5252672FEBEE0A8F6D94495C9058BC0D826496659F3C9346886501059EB13524806F15977DF99126FE881397CE9F0F1383D63622B4484AE4C28E388BB83891B8B2987C3780EA091321DE80534B7F58C958F9971B5E6CD75A886751947E4BFDFEA2A9E753FAA74732057C1B8DF0DCF947184A4283A9C0138EA4068ED81ABCBBBC31A87C255FA321B312C596DEC58F895B9A45C8D1BF6C2A5193D2A0C60F1036AF71455AFD38C38C84369462F430EA29AA98E28F34A9ACCF33E605D33CB798EB23D268968C52F9ADF269C7364410DA07D7803D880F970E48185899E3FE9EDCC8990A97FCB9723E93FCE7FC4B15080F49C869B2A1A831C2AC5F035178CABAEECBF57281CC119107E625A9A2F937E6CD6E67C40DFEDEA90CDC176AEF83D2C901B39DBFB09C37CC224385F70545D4D815D26F0637FEC78D46CBB423FFA054CEA5784DC1F03B3448A93F9128263F32C4DD7CBAAA517B7F\nss = 18471AC55B75B5CA5705AD3AE683A48C30102A5A10F2DF93A943C14FAAB796E8\n\ncount = 2\nkeypair_coins = 4B622DE1350119C45A9F2E2EF3DC5DF50A759D138CDFBD64C81CC7CC2F513345D5A45A4CED06403C5557E87113CB30EA3DC2F39481734DE9E18BCBFBECC6719F\npk = 59720C3D802726470D1C567B5908698650360DB82700E7B9DD26013B6A8184316DF3C59194FC96A0821A95C666EC5B130262006442CEF64428794672B43BC1EEBA20DE01BC70C15835952164E5A32705BFA7C64693B9BED53462F5AA6DE2569195147C70A789DE2153B3F64411534CFAD0ADBF8BC0AA51BDAF396E5746517C5547B3112FE08188DA54932B9B458458C55F146FEAA9620E7BB6CE21648AF047E0027C3553813AA81574F26483E93A5AB3642AA1332BC34F86328E5F80B272AA8971D175EE6A3D762ACD8279331E849179B9638C17B525AC600A598E4DCB7FFD68C31A9B27D3B17F63FA0E0DA16A3E54BC85DA61A0119A95201FA51906D6E2257B2CBD7235ABE8B80E80947CECB5CE87F9AF68442E8B6336C68AB0B170A67CC14F5E5377C4CB5930705775E522CA466DFEBB1AA800B452262A01966FF624CE79561B3A40258BE53512D01B749C25EC903923EA58E6677E02B0430E996000C637D002BA09DAC9E717AC64B634688B558D598E4017CBD46A160C621DBB2B961638B08A488FE8D814ACA37165A43DDD4B3908D84246794678823E794C9191332F344077FFAA50DBD2A6E0692ADDD353588B3E87E31F3AE4030B2371EEB1CAD20699BD6A459DBA53E6E3AA8A56BE4939B3E4B58C172CBBC4AB1F87235E1F114CB93C3150E25277459C43A6AABE39AF63EAC248D19F21B17AB5A2AC14169B01563DC818552CEAB71EEC2C2422C3E5F703B84BCFB457707A0B3EDC80C0EFA324D407D077CAB9B416B3A97713B89C6D65C2584CA652E6C4416BB44D3E7478EB21CE1A555456B94271689828560EAF4394BED93A86D48EC082A7BE576B75D00EC418228BF93C7037A49339352828AF07F3729BFA739B00D04B5502B9D6054BA525D724A0DF8506D9EA56D750072868CFCF07716AF003A02C45D4991F4503BF5AC86024857ACAE4CE24850DEF0632A6DCA9756C5C8A459341C69E93E154858B7C917592BB91C23AB622D3F84B9C81445E5A1E59262BFBF025286BBBB5D03EAA794445F7839F3AB51BF5AC48C978F0310128817D27E658D9F468F77C4C69DA09DD8526539C2598F4A4AC60E8CB68627382A145F91BE9D78FD51BA5E3FCBC3155B62BC07751DD\nsk = 50D47AC334A631E3C9BF8AA02BCC7E35272025CC37F8C844641704226029A3AC14BDA6458C33790C806430BC478470B94F164A1B074C5FD034466922F41CA7C70A61C0E9727263579DE085EB468CF44A3DC112525B878645A7483C0916A28B0AB8CCAE79352E45BB186806A29C381CABA12E0B505831200F8B874964686E754B66A66B2BDE90826FD34938A46711A01599BAB22A148C80FB0BA8455EF42C0B5279122BE3CEDEF27907040F9641B681500C50679DE3F534C5AC8754F925F446C6A114A989CB7B4269A95E3630C582C9AF505AB7D3AB6533288C9316FEC5512C21CE2866AC26391C340467BAF3AB3BE8C007587B77D7C7CC10C036C06D8D1590F417BC2C8909BB85ACC8D29FADAA766E89788C406D35DA78990A0AA2A1C0D0F92F73C152CB797F976B5173010A35FC649744C69529C354B616A8BA471496970365B1EE822C65201364405838D398BA047E5342AD71D831F2762798E282D8381730184EB5536B85EC8D0F59CB5B7A10D2334F876394F1F154BD6272BBF13FFC243EA0C53B3AD3ADF9382F135766D5589769B7672B5126CCD6C8928709CD638C28A38C0AC9CCEB239F147BA6CED8BDFB39688E1AB90CE31B44B76C32DBAEDEC4B84503160DB41E19F82B401B7A97D44161DBA79D991468635F04545982F7B818585F28A320B744533113515CA95B9CB37512E339E716C92569C8ED8122C131AD265B7859BBB069C136818A24250339E1ECCAD295CF95F6290BE90E2A94B21EE4AB84EA5755332AFDB1545CB97EFFB091221B9B3690B06D66795DE7898669609FB26A5D37814E", "D9B7F55592B02A6C1205C8F0C23F0B691B6F64194D1270F8042A7EB6563CB2B178F808AAC06FCEA7432B025499499F2D5B8B476BA469E7BC43E4A091E88BCEA08454E83D2606ADE78A4984D6B6A5586C04090051462AE79680A676735267607B256D5DB4C6A7B2846A73093885B277043B7E98CEED99BF743904438C8888064EE2834109A70141F791E5E26BB5281301064935850E40641183B4C1F3776DE042A78E0966540AA25CD484182B30FD3CBF0581B7B4A31250C103B6620059720C3D802726470D1C567B5908698650360DB82700E7B9DD26013B6A8184316DF3C59194FC96A0821A95C666EC5B130262006442CEF64428794672B43BC1EEBA20DE01BC70C15835952164E5A32705BFA7C64693B9BED53462F5AA6DE2569195147C70A789DE2153B3F64411534CFAD0ADBF8BC0AA51BDAF396E5746517C5547B3112FE08188DA54932B9B458458C55F146FEAA9620E7BB6CE21648AF047E0027C3553813AA81574F26483E93A5AB3642AA1332BC34F86328E5F80B272AA8971D175EE6A3D762ACD8279331E849179B9638C17B525AC600A598E4DCB7FFD68C31A9B27D3B17F63FA0E0DA16A3E54BC85DA61A0119A95201FA51906D6E2257B2CBD7235ABE8B80E80947CECB5CE87F9AF68442E8B6336C68AB0B170A67CC14F5E5377C4CB5930705775E522CA466DFEBB1AA800B452262A01966FF624CE79561B3A40258BE53512D01B749C25EC903923EA58E6677E02B0430E996000C637D002BA09DAC9E717AC64B634688B558D598E4017CBD46A160C621DBB2B961638B08A488FE8D814ACA37165A43DDD4B3908D84246794678823E794C9191332F344077FFAA50DBD2A6E0692ADDD353588B3E87E31F3AE4030B2371EEB1CAD20699BD6A459DBA53E6E3AA8A56BE4939B3E4B58C172CBBC4AB1F87235E1F114CB93C3150E25277459C43A6AABE39AF63EAC248D19F21B17AB5A2AC14169B01563DC818552CEAB71EEC2C2422C3E5F703B84BCFB457707A0B3EDC80C0EFA324D407D077CAB9B416B3A97713B89C6D65C2584CA652E6C4416BB44D3E7478EB21CE1A555456B94271689828560EAF4394BED93A86D48EC082A7BE576B75D00EC418228BF93C7037A49339352828AF07F3729BFA739B00D04B5502B9D6054BA525D724A0DF8506D9EA56D750072868CFCF07716AF003A02C45D4991F4503BF5AC86024857ACAE4CE24850DEF0632A6DCA9756C5C8A459341C69E93E154858B7C917592BB91C23AB622D3F84B9C81445E5A1E59262BFBF025286BBBB5D03EAA794445F7839F3AB51BF5AC48C978F0310128817D27E658D9F468F77C4C69DA09DD8526539C2598F4A4AC60E8CB68627382A145F91BE9D78FD51BA5E3FCBC3155B62BC07751DD083553153F7D65CD5CBE201E681245EDA61E1EC2C7EE6B91A9CCDEB6B76943B7D5A45A4CED06403C5557E87113CB30EA3DC2F39481734DE9E18BCBFBECC6719F\nencap_coins = 8DDCC956A19E14E33DD2F1FCC4E6AA816F299F76CBF95B962A0535A7E2949405\nct = 57F5245F7CF4994E8D65FB0661027ACCD9574990B980564B22B1FA2D6680696A50E463940D814AB53B9BAE077C0C4F947D43DDF6DA2157690625A908FDC77A8F2EA8006EBAAC38C1DD30CB94B97454A773E5C59E7F609FFBAF2C11ED3EB0D52924F932603A809A2A2C3D2926F32FAA786B9C388C6A85A1C0A7BF48D7F2CE3DDECCB2CF16122E9C8156CB49F80C831D3A114CB18865507F14EB49671DCBE73AEF7CCFD408D82E0459E3C0FAB577818B7C3CFE3E11E3AC5DED4F8DB01544310575F5DBC150FB906AB41B363BC20D67072AF9895C02DA4DF1E84ED1A0786212A70067055FD4B8223812D89234EFD385DCE1767CD9F6921B0175961DB999922466622754EFED26C7782ACE26A5474F14B16F8D96096F3D9FE98D4B10893BF10CBD6CC7D11189A91BCBF856FA954AADD4DD8B8705EE6F3F5A8C9866633A1862ACB8CAF8C5936C0DD0B7DC4CDE607AD33F02A82D1EB4ADEAF2F8976F2DDC7845C9E4063F40ED58D774769F1321A6A2E0249C11924D66B7A2850AE1C8C9D316C578F14668C029F161FD2AFF202F0795C9EA237FAE1375F5D67CA22C4B61321C5DC06299CF42EA0AC6E553BC153C642A25B985082515423AAE4D5856B9F4AED26C51216D18EC1E389BCFEC07C6C9609079F1395E4D339F5471393D75F51A4B9BE1AC7DBAD9CE1FD3866E385D7B52EA33071B41A0795FF2C7996B652DCE78787A52EB48422D57ED3E5B6B0310AA6BDD99FAA9AE6C2FB651887EE121C12780C403181B9E1EFCC0FBDE423F8B0B9922BFB8D1CA3F993FE387DFFCB6D7D46CFD85F286ADF91C12EB03F8EA2882BF54FA05AB5CA0B3E6BBD38CC9E92A9EE0161CA3F4E710835322294B29C13AF0C74A814364A4EC4058B2A8B129E7DD58AF8DCC491468C0729A68443D66746875928010C7D1760AB5813CEFD20B9D4CE22FEE089F5293F9CCAB4746C3B34C0CB8CBE3241DFE4226DFDB6AF77A20D5A9D92C46B86990089202E07E6C144FC8FE26A46A5DE896E644F89C37515997A47B8B06345DB9BBD9691A3724C8E7F4A43A5D049043EFE3D67B6857F089F3CF879BFAD47F150B59B522AF45\nss = 0A3B1120219FCBA59788965BC43BFEE99864AF94E1E32E02082E5DAC2C63C1CA\n\ncount = 3\nkeypair_coins = 050D58F9F757EDC1E8180E3808B806F5BBB3586DB3470B069826D1BB9A4EFC2C3E0351BDC8A2DAF0258645C383021DF33FE59B553A8270C1B7A4D0AF155999B8\npk = E5DC61CC732B09E221AD8840D101040C4428A798704DB118C037476701A79AE30F9B7265038ABCD0933D1100492A6B2FBAA7C0D6C22704571520F35E322A4BEF080FCB4C83BC62C432F75F6EF22B2B1722351343CBE4460B25B4BC806BAC542576CA42F30C7DDEF6082199A4EDC2237E5271EEB024E154CBD2D57D4D5A59840561C0C76004A8BDE4F48F4E0168CCBA259BC99B9F4C54CC2A8C1489415C422F70249235235F81404C3601079A3C8095214AE03C86BB4A1487A00710DCA3DBAC8A89D045DE4768E56329EC6709A9208DF6D3AF6F8C7DDD6284F144120E1449BFCCC6CEA22BC3917C90F6591062525804054553A46A226093383F12B8529D306CA2FA03F3371DE8641463A353513A593D601F91937C3197CD535768F78AA4EC11C4F59267B5FA47B0B2312AE97B77AA1C3631B7033CB17B5A592C89091D0A2062F8C7299A2BD7F77832899B1A84AE67A3C11E87B17A0050523B9A9BB87DB0152CBEE582B9D821937A2770D07D6E2113832C1456662AB38475A1527FD23287E45822C5D0C19875CC4C60C9EDE44722552013B6AD7EE4B860EC2FF8337789832002026D7B54676B44667961654902912E3116402824A64CC67655018803AB2C06540123166D78B87BE63997692EFC099E4BD72D734B1E9DD6344DF12070773B06C5C1FF3B32417546EA5416C204917F104A3E603BF1F09FEFC3184FA43F06200423C3026B3A2374186DF33344CDE1CCDE212EBF626410907FDA57A9538B165B3911E016438C4B3F0E485B3CA3001EF03466A8749D1488E24685FC1CC89E012758473601B572ACAB4DB6A93EDAA6AADBCA7924C23115769DB3A4185AEBCD09A9B045B3437DAB3336B47A6BC23370A53A5E327B6654091F9A435451CC26B41ECBC129AE109475793C3977B532C6A8CB3317D3270BBC6BBFBCFA1C2AB2C41908520184000E3B62DBC3005839200B486D6B89B1719505F6FC4A3B7A41CE4A4677B64688284EC18915F17133F81C4F73C13E14632873652554685DEBB7B987C66D01B9049F6B2E44960022E7916B61A55C12C4F5E099CA059E3F98704AD5CA1D2676496C21782D978970256C691434F939B02C14F42B1874087EA68917C2F3E31315E22581\nsk = 456C6C1D6630BD63C8B0243D5B1A6ECC09A28B09BCBF96CFAF056E936A0184D6774D9524F4A6000E974FA7879574629504F09A12838DA39C7A90F4637C1BCBB16677B491B87F653AA41AB5F6E279F917C65403A78D07B136AC8486EACF42252428C3B09ECB91F7A953CF98484B036F48622A6DEA3A46E7B33C500B0E39620B640F6C14BE17FC6D04CB815D4691687737F413491A8B9E30F28C7E2BCBDEB92B21A1752B6261863C84FC5918EFEC496311CBC7557223CB65F2169EB6E1BA98B42A56B71CCC6133A7B50EE4442ECECABACDC960856B590F5792D973A3AB82B3FF6B36B64757D04787E0C4728C0649CFE16D2FEBAC26A2BFABF985CC8B1B5511CA85760FE559B28072286E9B4C732B156DB2A9D08238E54336A87837DC93B4742CAC0F05C2D75CCDF06787B21548F19280C05298BE80C79296BF9609A8D88347413B426A38001D59CB5787513FB53A51A0CD39C903E12A512891C43D39372EC2C0F3398DC091729CA80061DA2484A01C58B8530956268EB6A5E764443190CA2CA896F142C16D83BD93014EF7852ACFBC48C8702F1B39513EF20F50D92EAFE74CC057ADB1C363F59A9B962697C37892759859080A287D5B7EF62A4AEC718020519BD5B59DA69C60A249B55C68C2D523A507245D39C8374C67BA02D172CC98893761149BCB6FCF93CF779431DE95132A029591C92273078A403895C40467BE735B6D2346DFA33568F654A25B7586E63B5A820998374A0A01123CB915512C1557B4BD1366BE2C259C511492D4B200F9E618608997B2B80FDD873A42859D9B98A279121DE3A5A06652BE7E948C01045EE41A08C068519D9125A7BCB79C5C713F2C4CA4DB7C30F9A7A7052AB68280A4B59D22844551E4028F8740253447A479B5FDB0371FFB4C39104B51C13A3EC7364857A775F3A8837978F560C31052B01F648DACF8440EB3500C447EF81641130CAC60748CB1E108FACC918AF165224B91FD52C7EA1A7FB5F83217284D5E20C951FA0FE47352F3A22D80D0B95875BD80640D95142DB2639A830BA302F49A8CAABF009104F8B136BB75A38D168274307DB8D136EE08CEE5DC61CC732B09E221AD8840D101040C4428A798704DB118C037476701A79AE30F9B7265038ABCD0933D1100492A6B2FBAA7C0D6C22704571520F35E322A4BEF080FCB4C83BC62C432F75F6EF22B2B1722351343CBE4460B25B4BC806BAC542576CA42F30C7DDEF6082199A4EDC2237E5271EEB024E154CBD2D57D4D5A59840561C0C76004A8BDE4F48F4E0168CCBA259BC99B9F4C54CC2A8C1489415C422F70249235235F81404C3601079A3C8095214AE03C86BB4A1487A00710DCA3DBAC8A89D045DE4768E56329EC6709A9208DF6D3AF6F8C7DDD6284F144120E1449BFCCC6CEA22BC3917C90F6591062525804054553A46A226093383F12B8529D306CA2FA03F3371DE8641463A353513A593D601F91937C3197CD535768F78AA4EC11C4F59267B5FA47B0B2312AE97B77AA1C3631B7033CB17B5A592C89091D0A2062F8C7299A2BD7F77832899B1A84AE67A3C11E87B17A0050523B9A9BB87DB0152CBEE582B9D821937A2770D07D6E2113832C1456662AB38475A1527FD23287E45822C5D0C19875CC4C60C9EDE44722552013B6AD7EE4B860EC2FF8337789832002026D7B54676B44667961654902912E3116402824A64CC67655018803AB2C06540123166D78B87BE63997692EFC099E4BD72D734B1E9DD6344DF12070773B06C5C1FF3B32417546EA5416C204917F104A3E603BF1F09FEFC3184FA43F06200423C3026B3A2374186DF33344CDE1CCDE212EBF626410907FDA57A9538B165B3911E016438", @@ -6544,538 +6559,833 @@ static const char *kData86[] = { "382393BAE1057A62471C5A3A93CC874F96C294A6A4E00E6BBF8CC4CEA280942D0C43729B2576076E73B3EDEF1BE7317CADBB58DB1A046B617800D5CA0E352B6D40A16303C596652A4A2209C5C72428DE4B0D6B6821EAAB1F6824CB35A04E067B5264359A9A6CE8B3A26259B613710A672D13D2690CAAF62C5F4E86DC76AE2B345932A0E7025F8CE6101884469E31AEACAF4D77E3F1201BC755B70C5BB1B7AF3B643588AA7C20567D4259DBE6ABD7617A61B48185DE8F21E1CAFF7ECFE33EFE4042A44F2F801170616925BE8CCA1BD1812A7335DCD80F9CF14\nencap_coins = DA9C015B918108C1596309FE0042218DE4C31900B8DFA6C1CEC28AD10988BBC7\nct = 13B75C4798F622655F0903077D6159D805E312FF282C86440461715A2B628183CB5F22AEC08EC8E1EB09D1EACD3878D0100C8F8ABA95FAEA63D0ED59B111267807EA68BF774DCF23FF924ED1C67D34AA4F55BE2340CEF6344D8317575E788D177BAD6BE198DD10E0DBC72144422E50CDCCCB463A7F7A0284D25D769FFDA17B6031D7148E9CBD1F99F8FB763A60F5FA9A91B7A76275C770ADCAA6E2381276D141B75EB3E40D48E0488716C824C4C5B90FEACD6C024DA72810E2E7C14A1C0229422B61818A72076C23AF81633FDBDF2EFC2C8CAB5333AB5A12803EEE829FD9CFE5833319D01BB519F0D8C6D3BCF5CE5B0600DD5D3C5337A695AA0CCDF554F4DD1ECEEBBA01808837FDA8E097084142FA65551E87A4F2D77F3F17B624FBB6DCF7E5EB6B7224CA3E36C438B2EFC672DC05D8BF02132F40973CB1140910751076EE9C706124B960C3CD8A195A9C766F5AC549A850377A51F8F6F3C54052E245F06B279C9FEE2C71D29A983A5633D3ECD69E4A03E80A8371251326CBCF7F24530A7398A2CA0EE8FFCA3207D82291C8E5FA80C09AA4316651C1478ACAEAE7FE162E603E01ADE5787DF86436E116B9016A91F6A307403E3CD7F99D6A76E86BA66620D9890B55C063DDD318E8A965E391A257043A7B91C8F1274C0873AA208063BA738073CEA166C5CCBAB6C48EB41541A6D76A2928BA9E8D8C3A8E2BEBB6D1E96199BDA0A34F6755287635B03800B06074F0B1BB729C8B58C4EF2DAC8995431F37F7A6B49008A0F9F538BFC93F098BCCB14151F81DA9F7108115B480A500B8ED0633B05436A7ADDB681ABD7145F595F00A53ED89BBD64CD9EE3F830F6CAD472C46A9B9206D1E90E2AA3DB914B3D5C5F0FCF72772A1491ACB0521EADE3FEDB758B381A90947328FD297711D5AF1473BD328389D88F693C513BBBFA3869AEDF6DEC7A6C8CF299D83B9F354561A82F674CCCD7DC1238A5E1B78FCB9FDD9ECB59C5FDD5A5A50AA99968B084A7092E63F70882CD4BF5996C090DEB6A0A24B90A487EF2000F5F1C0B28930CD917F3E7C37187ECDA1891082741628DEE921BD9F15AA669F67709D\nss = 3F22350CD0B7AD89D7187F4F6FA0FEF87D7DCD2A69C3AA0D577041E339C63208\n\ncount = 99\nkeypair_coins = 195D6C86A3DF4C21E3007D7F2768B43C74CB3060E0ECA77F0A5D3271542B9A84D375BC4FB24E98F1EAA01E50A588E96A2B26DAF9421437313FC7E4B520387050\npk = 45C83435071624067D69587335B97BF564929709C8825A004B028AE09C40980A07E8D4BD604527EE221E8BAC67D34CBE762C26DF8453AAE8B8C82B59C51A85526ABA8DDC4B5F63CF69A5B367D3153E460F497A209C495FCA318862D6A57800865479A006012D82F7212B40284D310E01BCB11E122C1FD303E441807849A7EA47976A99ABB7CCC4B674AD66F68ECA195789B277D23C3D67BC418CA7C908B21E53984983BA0205E4689000ACE97238B3699016FA95E7A3A59CEC0BE813638527562FA9BF10D715E7505F6E1C1433521A918A7DF52760A0D8A9549569F10827C423CDDFF82AAE01A90111395487B9C82B7B5A7978D789679E66B75087BFBFF0569FC94E94F93531B721315926388431F2A36AE0F701BAC254BEFB437C58641D4560C8738A98F30918945DB0A6900AD2C2ABFC3E0F4786A4555639D84DCDD031D8F0508D8C774D68298BCAC4F42C6A7FF585AF491FA7D7C3BBB41727699EBB315C437B210D42626EBC66C916AF1F3515374314E4F40309CA7289C7BC51C301D8180EDC792D4DD44C41B77BD47A972D8434A9F03BB3954236EC422BE0C8E991A79AF286B6A7C459A95ED44868ED8052F2DB0F3741710228979507CFF961564882B5EA19515EE00D657C7141E9B05F9A24136A2F915620B664404B5397CC7842748973D0716CC273B528D51383A63FC8A3C4A3B1A8BC965775D750ADD6996C929E29F41E42362A759BAA76F5A3DC0552F1D83195960E45837901494A87F2A6DC3B5D8B73A9695C1229A0C9BDDB0B2D99AA350C6CAC657745C1308AF354E10595F3682A34DC26D9D28E2E2C4634ACA75E94384700C9C06B1BCA348330AC1791FAB1419099CF1288283BAB03DCA09AB3593CF3B12739CB44C0C04C6B93D1EA831DF6BCB8807AA6AA8CBEC64D749A9E47F851C47C6537E196F1FCC4D63B67D29A58E86B9A72A199CBB793C5084E5BAB20BD02289B4AAA64E4C119488531E8A651A31750148E1742C5390BB9995C123F3056AD44C476468DED4B88A49130E35B4B00803DD24718674CA708E436D5C15EE1D95367C623512653C83B27B41CB308F8C2929B193B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B8\nsk = 109CBF34136DA8C797072085F046541A205922B9B9291ACC027173C0D824AB1534102B07A399853C9B5D4FEA1F7CE38302C587FA9643AF3218AFDBB48F52C516B0074CD336242591691402750384DB8323F812A8926875014089DF7698554391F1D687A1A2380E9C2B81261656632EE78996D404AB4F224C0DD3ACD6B428B8D2AF81250E7D9825640C3F94D297B2506427505EB3045A8852708B6854F0A99437F6738F22C1DCE44C160163515074C3C72E2A4041C8A407DEE38AC53335841029BC005705894AB658224134421AD4AF7543009C0093B9B38597424A32DC9A5135BEEA4598D8F2589D72855AD37CD99880C1FA91116C1A933C70A176086D437443B63523145314003884EC19A0B745855002E4B63F4978520661C589D9132CA27F84E9AB5536B60420C89C9A9717082AD58A05E8C808C7155600C199E8FC3AD01B229308071A2B9587E203FD211442F3AB9E9236AAEB8C6555C1D47A75FFF45A5D7A5EBE85A8DCB7CEB077393712CF9F7C465D066F80C359C7A3C713CC21A4653078FCC51B7232E48900ED750986156CAB756D9AF0C685263B19772B35A8AC3E214E8B7B9F3785395B500F76477858B123E24C0E63419CC6DB517A148E560A358EF50B8AB238D000181555B46DB95D9E8C1BDA5273CD58818E322831A71301D092904289CB4C017FD1C86D758C064136F6B937ED222BBFF244DE7C213CE24C967CC5787B87747A305C73223BC2A6CFCA8450D4954CB21E3D160E5B860E89DCB38F8BCFD016A927997F6E9C7C1E2A2FF97C93879CC1A5E30C20D80423F83C84373B85384BB7D88E9FECCACF73AB59969750410AE69537C3225D3423ACBA55174415A259F60E58117712C21ACEE6A97D281CC6642997833371358F60C35DA6E6A833E5BB20D94EEEA16E7093501AD54AB65CAAE67754B9560B5F68B78B44AB26B439D453412206325186BC4EC2479FC103E73B057A972AEF6949D7403BEDA51D82F0C654FA1136071B876704C7C9333DB252B4A37A06755A1CD428B8041D8C80A94AA76CD8D65D1E16A8D240AC71DB05DFB69D1439B57D9A3E262CCA3FECA48D9C1145C83435071624067D69587335B97BF564929709C8825A004B028AE09C40980A07E8D4BD604527EE221E8BAC67D34CBE762C26DF8453AAE8B8C82B59C51A85526ABA8DDC4B5F63CF69A5B367D3153E460F497A209C495FCA318862D6A57800865479A006012D82F7212B40284D310E01BCB11E122C1FD303E441807849A7EA47976A99ABB7CCC4B674AD66F68ECA195789B277D23C3D67BC418CA7C908B21E53984983BA0205E4689000ACE97238B3699016FA95E7A3A59CEC0BE813638527562FA9BF10D715E7505F6E1C1433521A918A7DF52760A0D8A9549569F10827C423CDDFF82AAE01A90111395487B9C82B7B5A7978D789679E66B75087BFBFF0569FC94E94F93531B721315926388431F2A36AE0F701BAC254BEFB437C58641D4560C8738A98F30918945DB0A6900AD2C2ABFC3E0F4786A4555639D84DCDD031D8F0508D8C774D68298BCAC4F42C6A7FF585AF491FA7D7C3BBB41727699EBB315C437B210D42626EBC66C916AF1F3515374314E4F40309CA7289C7BC51C301D8180EDC792D4DD44C41B77BD47A972D8434A9F03BB3954236EC422BE0C8E991A79AF286B6A7C459A95ED44868ED8052F2DB0F3741710228979507CFF961564882B5EA19515EE00D657C7141E9B05F9A24136A2F915620B664404B5397CC7842748973D0716CC273B528D51383A63FC8A3C4A3B1A8BC965775D750ADD6996C929E29F41E42362A759BAA76F5A3DC0552F1D83195960E45837901494A87F2A6DC3B5D8B73A9695C1229A0C9BDDB0B2D99AA350C6CAC657745C1308AF354E10595F3682A34DC26D9D28E2E2C4634ACA75E94384700C9C06B1BCA348330AC1791FAB1419099CF1288283BAB03DCA09AB3593CF3B12739CB44C0C04C6B93D1EA831DF6BCB8807AA6AA8CBEC64D749A9E47F851C47C6537E196F1FCC4D63B67D29A58E86B9A72A199CBB793C5084E5BAB20BD02289B4AAA64E4C119488531E8A651A31750148E1742C5390BB9995C123F3056AD44C476468DED4B88A49130E35B4B00803DD24718674CA708E436D5C15EE1D95367C623512653C83B27B41CB308F8C2929B193B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B801782FCE09E644E310C9286F1E381BE9EA8C54A1804E61F2958C1F975AEC185AD375BC4FB24E98F1EAA01E50A588E96A2B26DAF9421437313FC7E4B520387050\nencap_coins = 05874F9D5A2E9133D385F3326FA925129DFF03359D78B0D07ED78FD5C1307800\nct = 57CC2A0ED89C9D49E7C4E7BD0DFFDA6AF8F098F935257B9DFBE7FABF2EAC18E1199CAAF212D7D47DD2FB630B0A8C6D56E5B4A14A43712F307AA511CC19DA9F0DABFD838BA0F6F537785193E83BD2ED10B58D039CBD4CF3221163FA8DCEB809F3E8743F90D6AC724C5BA7FF2C90FB2540649994D8B058086E03607F32D421795EC489CA30B9EDC63EE325C7EAF07ED193EB22FBB9963CAB2F93506DC25B42A2A8E15E7CF922C7E281372B8A5D9BC1A62DF3A42D7D04AEE9FB3DAE474C757819E5B8F6D38D7B61DCF8BCEEE3BB40B834673F8F780C62B4A5041A9E60C8293003B3F84C67D8722FDEC32309273CEBF62811490ED60F9EB65C43C7CD4562E851D7439DEA4D7A046D9DD6617492B6A5255A65DE99F3B3721723BC16946090035863539D0DEFCC56C1C754B7396F99C6A646642FFA68CB18B25EA29F0E6197648900BCC71339633A51E6487335E30FDE0CAC3B11EE50F898D6D29ACC51571523F98D585C3151DAD832278D9A954B908D0C66398D596788DD9D6F3518CD4636E270CB25107D536277DC29EB873E9576A825E2C652E0C688CEFE6F88B563C750A1E71C01FD00128D5635970F72B09C4FF3CE3B0292739E60455C0ABAF2622EC3A0FF7FBE41830F56A09B0C68FCC93BB09A3F0050206E5457B8C1392E08AC61", "24A9EB26AE29F9240CF515CC4669975371A0B4E2BA104463EA03FCBC0E845A192852A08864E966F00555407A7DF3329673B89DC7FEAC929FAFA5C76FECD1539DFF005289002617543F8F4A7BEDB861EAE5CE5DE8709895542F6BC3652EF89A8DAB31800BE8F9175912D0BE6CE06FBF67CA60E29421488E95C1502524B6AEEB8086CAD76A98AF1F10D840608F4BAC03087EB9399AD6223D3A74C425E6DAB9FF9ECEFBCF32CC4323E2BB1BD147DC6B85D2C8EFEBF0B40ECFDF3B0C8A2CBD4B271FF38316F0766257637984237F0D226E3481D4751A51ECDC05338678F449ED2AA0FC32A644A6A00AFE58996C8572860E6729219AE864E05F298D044943E7EE575589A21FC869053BD7B6F1E76057F44D23CFC2E6BC461D717BBD67F1F5FA21B44BB87A3F20C2\nss = 49394B4A11F151A194FCA2A1D8149EFB1302304D83402623B65FDF23EA4E53E3\n\n", }; -static const size_t kLen87 = 106; - -static const char *kData87[] = { - "0h0f0?0=0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\xa2#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\x30?\x12\x8c\xd8$\xa2\xb4\x65\xf4\xc8\x46\x88+>\x1f", -}; -static const size_t kLen88 = 3496; +static const size_t kLen88 = 966802; static const char *kData88[] = { - "0\x82\r\xa4\x30\x81\xc7\xa1_\xa4]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0?0=0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\xa2#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10S\x04\xb0 \xc1o\x87\xa0\xd8\xbd\x94\\J\xfdkQ\xa0\x82\f\xd6\x30\x82\f\xd2\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\x90\x87\n*\xe1\x46\xab'\x86\fvY\x16+\b\xd4\xc6\x61\xc6\xa7.X\x17j\xde\xae\x96M=\xec\x19\xb9\x91\xa6\x1e\x94\v3\x13>L\xdeZ\x1f\xd4\r\xeeJs\x86\xa6\xc1\f\xac\xedr)\xe4\x61\xc8\xd9j\xbf\x17%\x84\xa7Y\xaf>\xb2\x94\xde\x97\xa7\x9b\x83\x61\x33I\x9a\x87\x38\xf9\x1b\xa6UPaa\x1bV\x9e\xdf\x94\x81u\xb7\x02v\xa2\a\xe8\x32\x8d\x39\xf0\x03\x88\"\xbc=\xcf\x64\xfa\x8f\xeb\x15\xc3\xa6s\x15Y\xc5P1m\xffKn\xa5\x1f\xaa\xfc\x8cK\xa0\x82\xf2 ^\x8b\xa5\xd0Z\xe0\fD\x06\xa5/\x83'\t\xe9\x31\x63\xaaZ\xb7\xf9W\x90\xd9\x44\x80jY\x18\xb3\xc5\xcc\x02\xd0J4\x96\x8c\xc0\xe6\x8a\x9a_\xa1\xf9\x61\xe7\x9a\xdc\xec\xafL\xaa]\x7f\x8b*\xaa\b\xca\xd7:\x9a\xe2\x81\xe0?\xf5O\x95\xe9\xfe\x81T#@\xb2\xe6\x91\xe7\xd3\x92r\x13\xeaI\xee\x16\xf1NT\xa8\x1cYFI\x9f\xd7\x66\x66]\xd5\xb6\x0f\x35\xd3\x03\x04\tG\x8c\xeb\xe5Vo\x92\xe0\x00gX\x8d\xc9\xc8\xbc\xcaJ\xbf\x30H\x13\x8a\xfb\x89V\x01\xa9\xf5M\xf7\x92\aC\x80H\x16+D\xe2\v\x88\x9c\xe4\x46\xe4\x92nl.'aVV\x9f\xf6M\xcbJ$\x83\r'[\xa9QrW\xf2\x80\xb7\xec\x12\t\x89Hu\xdc@d\xc9\x1e\xb9\x43\x97\x8f\xa5\x34ri\t\x8f\xa4\xaa\xa3\x8c\x38\x64\x32\x05\x8agRZ\x1e\xeb\xcb\x8f>\xfc\xa8\x81|\xc5K\xc0g\xe5\xf7\xd5\xa2\xc4[\xbdI\xb6#\x86\x00S\x8e\x99\xdb\x39\x93\xe2\xfb\xbbJ\x9a\xf7@\xa0\xd8\xc3\xdc\xcbv\xfa\xef\x82\xb9\x1cR\xbd\xbf\xb6wel\xee\xacxg\xa4\xf0\xf6\xc3P\xd0\x81\xb6\xeb%8\xcckp\xd6\xdbH\x87\xd3\xb3\xe7Pb9\xb9\x92U\xf7\xb5\xaew\xf8\f,\x84\x1f\xff\xcf\x43\x32~\xf0\xe3\xe3\x0e\xb8\xe9\x11\x8b\x90\xddP|\x16\xe4\xc7^\xc6)\xe3+\x11\xd7\x90\x39\xe3K\xf3\xc9\xa5\xc0^y\xb5\xb5\x90\xab\xdb\x90\xd2\xd6\xb0\x39\xf1_\xfb$\x80;\xc3r\xc9i|\f\xf4\xb8\xe5\x04H\xa0\x82\n\xba\x30\x82\n\xb6\x30\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94\x30\x82\x05\x38\x30\x82\x03 \xa0\x03\x02\x01\x02\x02\t\x00\x86\xcd\xbd!\x8c\x44\xd7w0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905051505Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x31\x35\x30\x35Z0(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xbe\x38\n\x82\xa2\xc9\xbd\xa0\xe7ut\xb7\xa8\xfaM\x03\xe8hu\x87\x0e\x94\xff\xa3\x8a\xde\xc3\xc0\x8d\x34\x38\xbe\x36\xb2\x01\x16\xd1y\xa4\xf6\xed\xa4\x19<\b\x15mb@\xf0\x8f\xa3I\x01\xd3\x03\x13\xc5,\x17\xae\xe6I\xa7\x32\x36j\xc3\x18l\xda\x64TlL\x04\x14\xfd\xe2\x9fN%\xc9\xe5\x8d\xe6\x82\x62\xc1\x1e\xd9g\\\x9b\xdd\xf4\x8b\x19v\xc3\xd3#\x1bv\xae\xee&\xb0\x98\x02\xfeG\xa7\x06\xd3\xa5i\x91\x39S\x1f\xd6\xfa\xf9\x8dLAC=\xf6\x33\xe6\xca\xa1\xeb\xda\x0ew9\xcc\x34x\xbd\x96ru\v\xb1\xf3\x85@\xe3qL\xb4\x0fh\xa1kt\a\tt\x1f\xa0\xcb\xac\x80\xf3\xa2{\b\x04\x9d><\x8f\xa8\x43*\xa5\xec\x46\x8a\xc5\x30M}\x9b\x8b\xc6\xb9\xaf\xb2}\x13\x99\xa6]*KU!\xeen\xb6_\x9fU.\xa1\x97+\xf0\xac\xe8\xf7\xd2@m|\x84\xbc\xe9\x31\x8b\xd2\x31\x1f\xeb#v\xe3t\xd9\xb3\xc1\xb3\xa3\xec\x61\x04\xe2\xce\x9b\x00M\xf8-\"\xe8\xeb\x88\xa6V\xe9\x12\xea\x16\xbb-\xe2p\x87\xcb\xc3\x0fm\x8f\xd9\xa0\xf8\xac\x31\xa2\x00\xdf\xe6\x85uB\xf2\xa4k\xf3\f\x97\xac\x8a\xf6\x85Ji\xe3h\x89W,\xd5\x1d`\xd1\x92\xae\x1dS}ql\xdb#\xff\xcf\x45\x12\x1f\x97\x39\x88\xae\x33\xb6`xu\x7f!\xef=\x9e\xbe\xfc\xbc\xe7\xef\xd2 \x8c\x80!l\xcaJEg\xef/\f-\xb6\x9b\xaa\x46\xae^|U\xd6\x39\xf5\xde\xa3\x1e\xdaM\xb5\x06\x16\x9fPy\xc3\x10q\xd2\xe8\x0f\x1d\xdd.G o\x93\xcc\xeb!\xff@\xeb\x44,C\x9e\x85\xde)\x89\v\xa7Q\xfb\x84|3\xcb|\xe1i\xba\xb0\x34\x00V\xf8\xf2\x62\x8c\xbd\xbb\x87\xb8\xac\xb5\xd3\xe4\x83\x05\x1ch\xc8\xedWZ\x84\r\x01\x98\x80s\x04\xb7\xceo\xa6T_i\xda\xd1\xc9\x06\xbd[\xbc\f*\xe6\xf6RO\xd4\xd6)\x1e\xe4\x37[a\xf0\xb3_\xab\x30=\x14\x44\x9a\x99\xcb\xf0\xf6n\xdbO\xc5X\x13\xff\x92\xaa\t*f\x06;\xec\xbfk\xa7M\xfcUm\x92'A\x01m\xb7\xbd%\x02\x03\x01\x00\x01\xa3\x63\x30\x61\x30\x1d\x06\x03U\x1d\x0e\x04\x16\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o0\x1f\x06\x03U\x1d#\x04\x18\x30\x16\x80\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o0\x0f\x06\x03U\x1d\x13\x01\x01\xff\x04\x05\x30\x03\x01\x01\xff\x30\x0e\x06\x03U\x1d\x0f\x01\x01\xff\x04\x04\x03\x02\x01\x86\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\xb3`\xb5y'!\xb2\xd6{\xc1\x46\x8e|\x9e?\xe1=\x9b\xcd\x9f\x9a>\x96\xfd\xa9\x1fkS\xe9\xe8\xf1\nj[D\xce?\x92Q9\xb6\xb4\x9a\x90\xf7\xa1\x1a\xd2\xf2\x11\"\x86\x9d\x94>\x91\xc8#RQ\xab<\xad\xab\x91\x87\x33\xaa\xd6\xf6\xca\x30\xc4\x9a\xa1\x86\x9e:/\x1b@\xa8\x87\x8b\xd6M\x8f\a\x9d\xc4\xf5\x42\x1a\xbf\x89\x1f\xe0-^;}\xa2;M't\xaf\xdf\xb9ld\xbb\xffy\x90\x80\xbb\xa3\x9aPj0\xa4\xb0I\x1e\x12\x82\xb1\xea\x85)\xe9\x1bv(\x01\xab\x10\x89\xa9\xa0\x43\xf8\xaa\xac\x37\x18\xdf\x06\xae{B\xd2\xcf\x85}\x96,\xae?\xcaL\x97\x10@\x18\x35\xf2\x0e\xd4\x63\xaa\xe3\xd1\xd6\xf5;\x16\xca+\xb5\x12\xbd\f\xcfZ\x1e\xdc\xd6\x64\x0f V\x1fN{\xe7\xdc\xa0\x35\xe2\xb5.Y%\xb9\x34_Do\xaa\xf0\xb9\xcc\xc2Z\x1c\xf2v\xfc\xfd\xe3\x37\x96\x31\x8a\xc7\xb8<\t-\xbbK\x06\xfe\x9f\xe8#\xcf\x9aV\x9d\x1b\xc0i\x18\xa0[\xde\x9f\x65\xf0\\\xdf\xbd\x45m\x02\xda\x41\x15\xc3\xd9\xe3\x41\xde\x98\xd3\xb9\xd2\x45\x36\xed\xb9M\x9a\x9b\xcb\n\xce\x87p\x9d?\x9a\f\xfemSC\x92\x45\xf2\aS\xd2\x1d\xb5jiaI\xe1*\x7f\x9a\x8e%\x88\xd8\x10\x04h\x03~\x89\x02\xff\x8f\xa1\x93}\x04\x32\x7f\x30Z2\vngg\xaa%\x12\\L+\xa0H\xb5\xa8\xd5o\xfc\xf2}\xed\x90N\xa5\ft\xd5\xd7\x1f\xb6\xe0\xb1\x04\x8a\xd0H\nwn\xc6\xe0\xb8\xea\"\v\xfb@\xa0\x63\xec\x62\x9cG\x1d\xf7\xe6\x1cP\xfe\xd9\x66\x43\xac\x16\n\xc3\x39xK\xb8\xf8\xfc\xd4m\xe7\xb0\xdd-\x9f-vb\xd0\xa1l\x85>9\x8f\xc9\x12K\x16\x12*-*\xe5\x99\x98\x13\xdb\xf1M8\xe6\x11\x81\x9f\x99\xe2\xe6\xa8\x11\x95]g\xd6\v\x8f\xa4~\xc1n\r\x06.J\xfa\xc7u\xfd\x1f\x91\xecK=\x89\x01jI\x82\x97h\x93\x61\xd2\xc6\xefT\xea\x1f_\xaf\xd3\xa8\x16\xa9\x99\xc6\xd5\xbbs[Fu:\n\xc7\x36\x62\aX\xe1gM\xd0m\x00\r`\xb4\x8b\xc0", -}; -static const size_t kLen89 = 69; + "# Kyber768\n\ncount = 0\nkeypair_coins = 7C9935A0B07694AA0C6D10E4DB6B1ADD2FD81A25CCB148032DCD739936737F2DB505D7CFAD1B497499323C8686325E4792F267AAFA3F87CA60D01CB54F29202A\npk = A72C2D9C843EE9F8313ECC7F86D6294D59159D9A879A542E260922ADF999051CC45200C9FFDB60449C49465979272367C083A7D6267A3ED7A7FD47957C219327F7CA73A4007E1627F00B11CC80573C15AEE6640FB8562DFA6B240CA0AD351AC4AC155B96C14C8AB13DD262CDFD51C4BB5572FD616553D17BDD430ACBEA3E95F0B698D66990AB51E5D03783A8B3D278A5720454CF9695CFDCA08485BA099C51CD92A7EA7587C1D15C28E609A81852601B0604010679AA482D51261EC36E36B8719676217FD74C54786488F4B4969C05A8BA27CA3A77CCE73B965923CA554E422B9B61F4754641608AC16C9B8587A32C1C5DD788F88B36B717A46965635DEB67F45B129B99070909C93EB80B42C2B3F3F70343A7CF37E8520E7BCFC416ACA4F18C7981262BA2BFC756AE03278F0EC66DC2057696824BA6769865A601D7148EF6F54E5AF5686AA2906F994CE38A5E0B938F239007003022C03392DF3401B1E4A3A7EBC6161449F73374C8B0140369343D9295FDF511845C4A46EBAAB6CA5492F6800B98C0CC803653A4B1D6E6AAED1932BACC5FEFAA818BA502859BA5494C5F5402C8536A9C4C1888150617F80098F6B2A99C39BC5DC7CF3B5900A21329AB59053ABAA64ED163E859A8B3B3CA3359B750CCC3E710C7AC43C8191CB5D68870C06391C0CB8AEC72B897AC6BE7FBAACC676ED66314C83630E89448C88A1DF04ACEB23ABF2E409EF333C622289C18A2134E650C45257E47475FA33AA537A5A8F7680214716C50D470E3284963CA64F54677AEC54B5272162BF52BC8142E1D4183FC017454A6B5A496831759064024745978CBD51A6CEDC8955DE4CC6D363670A47466E82BE5C23603A17BF22ACDB7CC984AF08C87E14E27753CF587A8EC3447E62C649E887A67C36C9CE98721B697213275646B194F36758673A8ED11284455AFC7A8529F69C97A3C2D7B8C636C0BA55614B768E624E712930F776169B01715725351BC74B47395ED52B25A1313C95164814C34C979CBDFAB85954662CAB485E75087A98CC74BB82CA2D1B5BF2803238480638C40E90B43C7460E7AA917F010151FAB1169987B372ABB59271F7006C24E60236B84B9DDD600623704254617FB498D89E58B0368BCB2103E79353EB587860C1422E476162E425BC2381DB82C6592737E1DD602864B0167A71EC1F223305C02FE25052AF2B3B5A55A0D7A2022D9A798DC0C5874A98702AAF4054C5D80338A5248B5B7BD09C53B5E2A084B047D277A861B1A73BB51488DE04EF573C85230A0470B73175C9FA50594F66A5F50B4150054C93B68186F8B5CBC49316C8548A642B2B36A1D454C7489AC33B2D2CE6668096782A2C1E0866D21A65E16B585E7AF8618BDF3184C1986878508917277B93E10706B1614972B2A94C7310FE9C708C231A1A8AC8D9314A529A97F469BF64962D820648443099A076D55D4CEA824A58304844F99497C10A25148618A315D72CA857D1B04D575B94F85C01D19BEF211BF0AA3362E7041FD16596D808E867B44C4C00D1CDA3418967717F147D0EB21B42AAEE74AC35D0B92414B958531AADF463EC6305AE5ECAF79174002F26DDECC813BF32672E8529D95A4E730A7AB4A3E8F8A8AF979A665EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B53922\nsk = 07638FB69868F3D320E5862BD96933FEB311B362093C9B5D50170BCED43F1B536D9A204BB1F22695950BA1F2A9E8EB828B284488760B3FC84FABA04275D5628E39C5B2471374283C503299C0AB49B66B8BBB56A4186624F919A2BA59BB08D8551880C2BEFC4F87F25F59AB587A79C327D792D54C974A69262FF8A78938289E9A87B688B083E0595FE218B6BB1505941CE2E81A5A64C5AAC60417256985349EE47A52420A5F97477B7236AC76BC70E8288729287EE3E34A3DBC3683C0B7B10029FC203418537E7466BA6385A8FF301EE12708F82AAA1E380FC7A88F8F205AB7E88D7E95952A55BA20D09B79A47141D62BF6EB7DD307B08ECA13A5BC5F6B68581C6865B27BBCDDAB142F4B2CBFF488C8A22705FAA98A2B9EEA3530C76662335CC7EA3A00777725EBCCCD2A4636B2D9122FF3AB77123CE0883C1911115E50C9E8A94194E48DD0D09CFFB3ADCD2C1E92430903D07ADBF00532031575AA7F9E7B5A1F3362DEC936D4043C05F2476C07578BC9CBAF2AB4E382727AD41686A96B2548820BB03B32F11B2811AD62F489E951632ABA0D1DF89680CC8A8B53B481D92A68D70B4EA1C3A6A561C0692882B5CA8CC942A8D495AFCB06DE89498FB935B775908FE7A03E324D54CC19D4E1AABD3593B38B19EE1388FE492B43127E5A504253786A0D69AD32601C28E2C88504A5BA599706023A61363E17C6B9BB59BDC697452CD059451983D738CA3FD034E3F5988854CA05031DB09611498988197C6B30D258DFE26265541C89A4B31D6864E9389B03CB74F7EC4323FB9421A4B9790A26D17B0398A26767350909F84D57B6694DF830664CA8B3C3C03ED2AE67B89006868A68527CCD666459AB7F056671000C6164D3A7F266A14D97CBD7004D6C92CACA770B844A4FA9B182E7B18CA885082AC5646FCB4A14E1685FEB0C9CE3372AB95365C04FD83084F80A23FF10A05BF15F7FA5ACC6C0CB462C33CA524FA6B8BB359043BA68609EAA2536E81D08463B19653B5435BA946C9ADDEB202B04B031CC960DCC12E4518D428B32B257A4FC7313D3A7980D80082E934F9D95C32B0A0191A23604384DD9E079BBBAA266D14C3F756B9F2133107433A4E83FA7187282A809203A4FAF841851833D121AC383843A5E55BC2381425E16C7DB4CC9AB5C1B0D91A47E2B8DE0E582C86B6B0D907BB360B97F40AB5D038F6B75C814B27D9B968D419832BC8C2BEE605EF6E5059D33100D90485D378450014221736C07407CAC260408AA64926619788B8601C2A752D1A6CBF820D7C7A04716203225B3895B9342D147A8185CFC1BB65BA06B4142339903C0AC4651385B45D98A8B19D28CD6BAB088787F7EE1B12461766B43CBCCB96434427D93C065550688F6948ED1B5475A425F1B85209D061C08B56C1CC069F6C0A7C6F29358CAB911087732A649D27C9B98F9A48879387D9B00C25959A71654D6F6A946164513E47A75D005986C2363C09F6B537ECA78B9303A5FA457608A586A653A347DB04DFCC19175B3A301172536062A658A95277570C8852CA8973F4AE123A334047DD711C8927A634A03388A527B034BF7A8170FA702C1F7C23EC32D18A2374890BE9C787A9409C82D192C4BB705A2F996CE405DA72C2D9C843EE9F8313ECC7F86D6294D59159D9A879A542E260922ADF999051CC45200C9FFDB60449C49465979272367C083A7D6267A3ED7A7FD47957C219327F7CA73A4007E1627F00B11CC80573C15AEE6640FB8562DFA6B240CA0AD351AC4AC155B96C14C8AB13DD262CDFD51C4BB5572FD616553D17BDD430ACBEA3E95F0B698D66990AB51E5D03783A8B3D278A5720454CF9695CFDCA08485BA099C51CD92A7EA7587C1D15C28E609A81852601B0604010679AA482D51261EC36E36B8719676217FD74C54786488F4B4969C05A8BA27CA3A77CCE73B965923CA554E422B9B61F4754641608AC16C9B8587A32C1C5DD788F88B36B717A46965635DEB67F45B129B99070909C93EB80B42C2B3F3F70343A7CF37E8520E7BCFC416ACA4F18C7981262BA2BFC756AE03278F0EC66DC2057696824BA6769865A601D7148EF6F54E5AF5686AA2906F994CE38A5E0B938F239007003022C03392DF3401B1E4A3A7EBC6161449F73374C8B0140369343D9295FDF511845C4A46EBAAB6CA5492F6800B98C0CC803653A4B1D6E6AAED1932BACC5FEFAA818BA502859BA5494C5F5402C8536A9C4C1888150617F80098F6B2A99C39BC5DC7CF3B5900A21329AB59053ABAA64ED163E859A8B3B3CA3359B750CCC3E710C7AC43C8191CB5D68870C06391C0CB8AEC72B897AC6BE7FBAACC676ED66314C83630E89448C88A1DF04ACEB23ABF2E409EF333C622289C18A2134E650C45257E47475FA33AA537A5A8F7680214716C50D470E3284963CA64F54677AEC54B5272162BF52BC8142E1D4183FC017454A6B5A496831759064024745978CBD51A6CEDC8955DE4CC6D363670A47466E82BE5C23603A17BF22ACDB7CC984AF08C87E14E27753CF587A8EC3447E62C649E887A67C36C9CE98721B697213275646B194F36758673A8ED11284455AFC7A8529F69C97A3C2D7B8C636C0BA55614B768E624E712930F776169B01715725351BC74B47395ED52B25A1313C95164814C34C979CBDFAB85954662CAB485E75087A98CC74BB82CA2D1B5BF2803238480638C40E90B43C7460E7AA917F010151FAB1169987B372ABB59271F7006C24E60236B84B9DDD600623704254617FB498D89E58B0368BCB2103E79353EB587860C1422E476162E425BC2381DB82C6592737E1DD602864B0167A71EC1F223305C02FE25052AF2B3B5A55A0D7A2022D9A798DC0C5874A98702AAF4054C5D80338A5248B5B7BD09C53B5E2A084B047D277A861B1A73BB51488DE04EF573C85230A0470B73175C9FA50594F66A5F50B4150054C93B68186F8B5CBC49316C8548A642B2B36A1D454C7489AC33B2D2CE6668096782A2C1E0866D21A65E16B585E7AF8618BDF3184C1986878508917277B93E10706B1614972B2A94C7310FE9C708C231A1A8AC8D9314A529A97F469BF64962D820648443099A076D55D4CEA824A58304844F99497C10A25148618A315D72CA857D1B04D575B94F85C01D19BEF211BF0AA3362E7041FD16596D808E867B44C4C00D1CDA3418967717F147D0EB21B42AAEE74AC35D0B92414B958531AADF463EC6305AE5ECAF79174002F26DDECC813BF32672E8529D95A4E730A7AB4A3E8F8A8AF979A665EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B53922D4EC143B50F01423B177895EDEE22BB739F647ECF85F50BC25EF7B5A725DEE86B505D7CFAD1B497499323C8686325E4792F267AAFA3F87CA60D01CB54F29202A\nencap_coins = EB4A7C66EF4EBA2DDB38C88D8BC706B1D639002198172A7B1942ECA8F6C001BA\nct = D13B96D6586F1AD5BCAF251E3CC9C42DD50A34CDAB37EE370F8174B6D52B55A9CB6703C4CA7B7B515E71A608C4489204A84BB6475BECCCD21C98C6D2DDC48AE3A8B569015F4385B9BC80BC25F98CC9F66D75DEFC1F983F7B90B44AEBD416B53379FD3482981A2439051D1AE9BFECDE0B8EBCE6405D5FD0C2260762EAC85B20AD60538A7AA5C46D8AD68196D7B877211D7BC08A3AC037A7539C6DA67AB5B04B5B39A7E525F7DDC65E2747FB295E4982DA339620DCFC8E7B56581DC941662CD53D4BC61EE74F11869465514D26F0CC5A35FB67C8C52F491482A4E64311FDA2296166FD94D58B1F6B9EB2EB50B1268ADE982C5AE0810308223ADE904C81090B6B2148F0C5CE4F516D6103E859A057F672D129A247C9880E0086DE29BDAA2291F4E393FEBD6446DEF6F9F6A3E79E05D2F3347982E1BE2292CD8EF8E609957C00306B910CAC7C5FE3D4BC1142645736AAEEE51CC3741D61A47F07B06968006D69DE00D4B0A61847CF94560D2756B0FCE7BE621910BF3673068C658B322BF3F", + "66F5C90C6B1FA025BA9960CAB409C4D6A9A26B5CF00C74E4127050CCA25D21DA89CE2BD92E281B4D56625344EA6729536B1E75F2A02908728D4A04395294F421B77C62A9B024B930C6B5FA5FC530566579D85DB94E8C3D65790F3E7E4D816F224D35A29E44776926F3CAD8A4CD68AD9ACC2BA6ED00D2D606DB23DAF15D7A5534DDBDFE663F7E1B782FFA43E80AD9D5C41035B38C84B00EC17D0CB855942BEF28FA21F32916C9C2BF7CE7BF8AE7E81DB957469428EE265AF6C3B899FA49EFD26D17E671CE086B73B519A011DC971B970F8B27FC7474C29B36F4BEF70808297F0CBCD97AC5C1DCDDF6CE4221077F0762FB7C7130C9790F2818EC059BAED9D53721E4385861A1252EF73B0DCA7FA0AF1055344045A14F492F7109C26755115C99A313DDF6588644284E7C3BBFF0E64DF1C802119DF0A68BA94AB7A0C463DC925AD00EBF2EB98411358180D946B8DD83EEBB2B9D525B544BA86255F3AF379EA1E12DF5A99A77DDD325FA7D8907EE8D328400D1DFF4EF202530CD6DF1AEA6EBAEFD219F31E6F614CA4B045FF6AD35562997DAC57CB0FF74F64B67694EC1FFD25E22DED3D2BCDE07B51BE04D512EB12114C40E787486343C27EB9BC329C2EF555F2590A330A44FC0415369883F3934FA1B557897D2AA0EF135D2C9936A63BC4EB10DDDA7A0D4AFA8C6CD23E7313B2DF6BD5E6C653A5CA88897D857887D3073598460808DB9B5CB3849A07061A019A835A0B5E486BC0F1B665B79019BE7FC547191E3202A5D6D857861C8A672BA3CAB343F5F2584B90634A39FDBC52865D6D3069BC1A6279CA50B0868FFA9C284547E4082943293979DB171E7E6860C3A2222094D4408A20A69DD83F26003805E81EF6009A4A98B8B18CD7FE09B36550D700067DB97E74C1507EB45FB5EC95A1A4A9ADE7C690B8E13BB6669AC28A56F962E69023A559937572C02D9F38D3B15DC3A819141C3B4ED0D9811575F4B3030EF556807BABB2B92FF073\nss = 1460F573A69383D92C2C272DC0193174B44D227BF95CA81E14A758C3F7E59C15\n\ncount = 1\nkeypair_coins = D60B93492A1D8C1C7BA6FC0B733137F3406CEE8110A93F170E7A78658AF326D9588522D326E7F105F11C4E8D97E119E193AF42DC28409F4F7572ADA538B52C1F\npk = 6DD406B49B9CA035467FD26C6C0B824BEA310F435FBE8BBBD3430B5C39889E6B117E994E2F08823A33789FF858B72715323C6204A241D9835EC0DA85C5884A8A96210219099C8C383C182632280356C1B4F298405258A170E81624E861FC1082D31867A9037E3B90B0AEEAA064D27020DA7BA79398FA92A963A8A294E7720BD4CD9EA213F08063079C4D55B094BEBC4E979444F462B967972E61206FCC80337911B02C7396BC64405FFC0B77CCCD2EBC121A734037CB90B77846B2359C30A451BEB20A6D72C238284E5DF2AD1CC1A33FD5A104965C86251A596360D541240A4828231A827A0168B6D8AC7E27328173886453A9C91498765C2BD9EA9F666BB4A1D60F992538A1A746DF845574F99ADAD23B9744AFA81C7FB79A32B175706454438F46B8985132B8E1CCA10C2B0FA011EAB2428B88CFEF9378A5228E55D7463DFA5022C998ABD6354118B5116B3BC1004F0008134B85A1CF2A9F409A10E14B6D06C26D8E355864C35BC71B60D5CAC33A513EFDF6B9BB83BC880983682C8FB8A81B6927CA52E93835956795488181A8CD82B1A50DD18A25F35E2643CDD76C282E7018BB99624F031418FBC8052C4179B43A5998BE9A20CD2D8A883B313EC282598202ADD6471971C88CD9607D3A8052519930BC5BC71CA4652352B4D02620B8D983B9849CE8B8935F1A4DECC3250DE7B0CFCB49EB7B74E0B5792AE97633B092081C3C6BF58F1B242CA07610C3387098AC3F0F9043901C614590C4EBBC64CE1971E824694A999CBCC430AE923A1432B6A4911162213C429481394A27006B9D48C0AB5801823D756BFD8C6919502D613594AEC81F5669BD4E8495292606959292467CCAC7F688333B3F48A39FCE5C42C9C2653886A5ADF4747CC943B2416348F46DF5B58E4916BA64E9664A4BAAA3E0A9652408C8E5076C226C3A7932C42A846949A2A26B4E2C452F86CACFE5C201AE1321AB5C2CABDA557648A849241F077A799EDBA3582202CB27763047219F5546CF18819322B9C63974B322B949BAA491D97C70F20545886C87086721D3CA2AEAB441264B516975ED0C6044A425853528424532E4D721E85CB0BF65C26082C790765B062916FAC4A0DCECBC2E900C6F600270838E2DF20EE0A907E3613DCEE049C445640362C980A292F123C6C9B5918F21443C996016C44D2A124C5925A8E0C48E89BB167A129FCBF67ADB89903E1249F6028BC176BACC722366139858E583EB582ADA714E79B5AD1BC1A6F18754E100624620968D0702E080BEFEC425BC16B650A307802004C57590897C87E65347F32C324569051D798BEBDB421EB28B2D1A0C662444C7DB32BF97845D7225C7539F457894EB87606FA85B5E804053FB6ECDEA773566C006E540EE65101D99BF314181D666680985C78B103DD00A040DC69CFF389FEA7C18E48A363B943FF042B476DC86BE953A5925076CF749A62A77A9406165D31DACDC3A677B9114D8BF84B43F59F647FA4023535140FDE04285921184809C5F193A7DF45F62187854061A4D6754DA528F3B71A134AA487D9B5F7CFC6838108B8B95B51F5540C9EA5F29990F7BE07EFD502461033F103723093A16DD96C098977F81330249183CF35A636841BD1A9B9796F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D2\nsk = 94B49EA42526935245C45A7D580B6AEFF8BBE0F5342BB8BD2550212AD5935F45CBA7CAA6DF914007FBA79E9946C9433A86A2C4202BBDCEA008AF78975E6619D3582787530DBB7318A530B7B5A27D24258C7CCAAAF505CA92CB853A5818D4269BE812BECF169A05E71EB957557787C2F3B72315281DBA87476B157A06095A30D52B388AC22840755B43440A931DF8A709DC435B415A7BABBB04CCD93CDA00CA1FB090646B1D6514813368A794D38C907163B5917496B018C519B160C5144D6424495626E3A5AB9FFB8D8D3168D77599A88A1D12C07D86498D88DC1AF7FA7DE15073FD4B62801C1A902B215E7CC3EAC350BB63ADEAF9C7594844795A9A6274AA3ECA0CD10891F05795A77B30ADD76B6B1A35338B8156690CA2EA1C9C3B602B23324925314F726535B36DFB355225D37E7C85BE15A5976A8A6AD4E2C35D4C45ACC954368BA6DF88A47DBB8C782336F7EA507A6C2D26D952DC03B4BFB89872644084783AB493CD72D3BEFC2C803B692729638AF69B03E6DB9B82E678A42969FBE770FEF65723F77DA6437C20B203601C884A9B9E08C0B1DDBBC1A66517DCFC76B3F125F7795E5DDABEF0CB00119778575513E05AC38A7901A0E8C8794685C0F274050097BC50168818A74ABA5D71980F5C76279EC0214CD51EFA8A21391567FA052E6DC0CF9BF216CFF9287C80693645A53D71B3D7509F6A432D51B2B0AAD129B594278DA74FFACBB713357D735A744B7C65E482B7E172C67A5B4EDABAAE11222B8BB6B4564AB4FB20C28B4981614B69BB188DB6056607E089F64803D89210C7E604266B00548A2AE27996196A6D6F762C27B22731F7942543CCEF3856EDF9AD1B1B1652A33C3E038DD9B2CD9A4612CE174315E67B26DAC767E50E68508D104BBAE1A2B89B78266D27B109F90BCE1581A8B8888C90C1C4EA5FC1F009D5073780CB4545087C88026B9B9ABDDAB923DB52620713C8B5AC3301E8715AC39D13084926E841FAE41A7BBB7912E10680A78C0C363A251720B2D69467B6CAC5D894F862595072A7C9B14BFEFAA2FDCC75CC42892CEC6184B52962B9B73D663B7D76C1EA499D538BB45A4CAECEE0C8EB93BBA5EC1A8C936156382B10102E3211B2DC15663412805F60590EC33DBAB80D2A3BC05FA8AF5145644F712E004C20F799650159C40DC952C9A54C27E816C3A6A95EFBAB24A31F6C402300F9BAF88A46644B4DF8A24979E80DC30425B9E75A753A36510B87C5FA95CBF36E19A12245876003B54D4E008EF7AB9D83C5A2406014B5CC33B6167F4C452AF45084B7412EC19556D82B0A6A90C1AEA60A72312D8A7A8E5060189717094FF950AF2B503988964F0AA227C523487471D3BC905B6672BE20BC714729B7A71478B07A19F777DEC546C624723AF7B5F6C142274AC5652A7C2D7ABBF1171F2BDB12F1ECC876681A600806D6FC229E6A8F6424419187BD22E49B8F27486DB25371C169B3F61E81131B57659B1030A959790BA5D6424580B1F588326DB9CD01A260B21B8C42062B883854FB173EA7613764D41DD6B89468C7BA6C4236D1A0436B945B8B340983023139293FC48C07659B955453BBA07B0EB4E2A91F594232A47C65C66E1C5C8279F179925C55EE3A0B6DD406B49B9CA035467FD26C6C0B824BEA310F435FBE8BBBD3430B5C39889E6B117E994E2F08823A33789FF858B72715323C6204A241D9835EC0DA85C5884A8A96210219099C8C383C182632280356C1B4F298405258A170E81624E861FC1082D31867A9037E3B90B0AEEAA064D27020DA7BA79398FA92A963A8A294E7720BD4CD9EA213F08063079C4D55B094BEBC4E979444F462B967972E61206FCC80337911B02C7396BC64405FFC0B77CCCD2EBC121A734037CB90B77846B2359C30A451BEB20A6D72C238284E5DF2AD1CC1A33FD5A104965C86251A596360D541240A4828231A827A0168B6D8AC7E27328173886453A9C91498765C2BD9EA9F666BB4A1D60F992538A1A746DF845574F99ADAD23B9744AFA81C7FB79A32B175706454438F46B8985132B8E1CCA10C2B0FA011EAB2428B88CFEF9378A5228E55D7463DFA5022C998ABD6354118B5116B3BC1004F0008134B85A1CF2A9F409A10E14B6D06C26D8E355864C35BC71B60D5CAC33A513EFDF6B9BB83BC880983682C8FB8A81B6927CA52E93835956795488181A8CD82B1A50DD18A25F35E2643CDD76C282E7018BB99624F031418FBC8052C4179B43A5998BE9A20CD2D8A883B313EC282598202ADD6471971C88CD9607D3A8052519930BC5BC71CA4652352B4D02620B8D983B9849CE8B8935F1A4DECC3250DE7B0CFCB49EB7B74E0B5792AE97633B092081C3C6BF58F1B242CA07610C3387098AC3F0F9043901C614590C4EBBC64CE1971E824694A999CBCC430AE923A1432B6A4911162213C429481394A27006B9D48C0AB5801823D756BFD8C6919502D613594AEC81F5669BD4E8495292606959292467CCAC7F688333B3F48A39FCE5C42C9C2653886A5ADF4747CC943B2416348F46DF5B58E4916BA64E9664A4BAAA3E0A9652408C8E5076C226C3A7932C42A846949A2A26B4E2C452F86CACFE5C201AE1321AB5C2CABDA557648A849241F077A799EDBA3582202CB27763047219F5546CF18819322B9C63974B322B949BAA491D97C70F20545886C87086721D3CA2AEAB441264B516975ED0C6044A425853528424532E4D721E85CB0BF65C26082C790765B062916FAC4A0DCECBC2E900C6F600270838E2DF20EE0A907E3613DCEE049C445640362C980A292F123C6C9B5918F21443C996016C44D2A124C5925A8E0C48E89BB167A129FCBF67ADB89903E1249F6028BC176BACC722366139858E583EB582ADA714E79B5AD1BC1A6F18754E100624620968D0702E080BEFEC425BC16B650A307802004C57590897C87E65347F32C324569051D798BE", + "BDB421EB28B2D1A0C662444C7DB32BF97845D7225C7539F457894EB87606FA85B5E804053FB6ECDEA773566C006E540EE65101D99BF314181D666680985C78B103DD00A040DC69CFF389FEA7C18E48A363B943FF042B476DC86BE953A5925076CF749A62A77A9406165D31DACDC3A677B9114D8BF84B43F59F647FA4023535140FDE04285921184809C5F193A7DF45F62187854061A4D6754DA528F3B71A134AA487D9B5F7CFC6838108B8B95B51F5540C9EA5F29990F7BE07EFD502461033F103723093A16DD96C098977F81330249183CF35A636841BD1A9B9796F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D22CEDAD700B675E98641BEA57B936BD8BEFCE2D5161E0EF4EF8406E70F1E2C27C588522D326E7F105F11C4E8D97E119E193AF42DC28409F4F7572ADA538B52C1F\nencap_coins = 46401015603C5E2174CB94AC742E836B516E2D570F15DE0B9D0204D79AC64BA3\nct = F60638FCE41247F51274055EE89130BB905482F23D1914A501EF2A6C23F56BB4BBA0599C263BA4D5F9B31CDDAB90B3A329229F17BCB8F7F103BD842EA37CDE0EF4798BB12A79C49C69C6419C6DD1D8C0DE97754524808ECA7BCF6262ECC31B0A86089420CA9418CFBDB5C5BE19C7D33CD74C3BF005777FEF3DEA1F14E86206FCCAA268A7CB825C8F2ECD7947696CB710484BAB551EBC3C14B81DFF2898A4BC145E72B9B0CC9AFE3DD805AEEBB1BF73940890D1730E774DE326BFE531EFF9FF9623BF14353A609B1DF6523E2F53A90A8B9817571598F67D9C7AE4F0142383A2F7D494518475D13BB0B60DBA7C97A2FADBAF16F3F153E9D1FAEA711EDC16F190E2BCB36D58D1CB6EFA9B3A192BEADC1E3EDC3083E6E8E8344233FFDF4D5A3157F973104347F8B4B493777A6978DCD98BA375122936119A8EBFE8CEAED7B461527FD213C8238BE1A8A1D44D6E7D2E84AF8D2974CD9E8988C45073D18402F919E3B6C8D073D292A1B87962534CDB1505F3E77042EBC00AA567B979B46E709FE4D023EC22A8703A39EF9856FC8A1785E77374577A7F7CE965F5076F652B77D0D59FA929430F97CF2A9C7D4DDCFE988E135B4C4EC925D56EFEB5D55D45C9BE059CACFE8A5FB4A8EA53FDD7CFF0E6C03CC01A45FD78C6FEBB7432F2C562278B9D0DF9CC40161B4FBD726E12E4D8E4D356032768DD3B3B67DD6E844D983FEEBCFF008508FD369B558B9102C10DC20D5F66DB3A5073A055C59B387B44089CA0D0C52B8953466F62C423905A32B903426F15E8E70509543A2D022DD4479B9D453CB2FF30332D24CD8D95B1A7618E98806F8E340A123EE41022A8C03198619289593AD942374FDB6F7AC3F548B46FF75FE1DCAF1C19F856CE790D51AFBBC2A000317C178F7045DFF00B91AD5A5428C25B6891D1470FE3B215557EBCD53EE47C785AD9CF87983BB608E62997D43ABF9A4C1BA66DA974F327CDC5293D83E1AE680AE4316489F23428CAE12C2885BFF0B2C89EC2903F393294EC75388B28F3966037F293EA041C730952539FC8E124846BA79A454EA6171A159B792BEBCED1F47E2488034E05240CCACA485A5C07C392A17E60775E2552666371564A0E31B3FD2AA185D4E3C48A3326D8AE732B10930BCC8EC5AB8AE0798155DADBE5905F855B996645C01CDCE079202666391E57A8E721D5D660F680C7D426BAE9F6617D07C7457324EFDC80B3FD2E0FCA774C0E4F77FFE862CA78FD0D91DCCC55A6C5C609C716D53098DB46C4608A1F455957E8BF87F6F99E18FD7F8ED771C7A0B7BEE1C34F7CCDD1DE08C5EDAF4B5F8567B56620A564CD0C674D0AA28E3244F4639374F7BF814F54B6DC5FA66F2AF8C1A873C4A140F1227BE01FAC40DAB7A68FA4C3B819CA7C72D9B70407BC9F1E2AE27551B9A2A2C533A3F4AEF4165AE6F4EB326E4A732AC4BFBB82F761869D2EE9072B5D91033714C09801F5F084AE32ADC47A4F9DEF32C942C7E1B0E687522F25DAF9A0D5254DBC8C315BFE45B77AB87FEA0C436F09BCA414F3DBE1020D\nss = 7CA06F75490AAB6218E89A10C19F9313EBDD219FA79E44C2E4440FF1A3C2D291\n\ncount = 2\nkeypair_coins = 4B622DE1350119C45A9F2E2EF3DC5DF50A759D138CDFBD64C81CC7CC2F513345D5A45A4CED06403C5557E87113CB30EA3DC2F39481734DE9E18BCBFBECC6719F\npk = F5A35B4EC7538B62289DD1204DB91AC492B610538C93EB5F2637AD97DC88F0035FF3CB735CEBAC9BE7CA78A4149CF10B6D93283050167E737596B711A9F32A0F6909975055CE6632F4B42CF9A2361CF69047B5BDE1868DD745A82CF473EBB30D86A71793364F70B1255B1C2003F166683C936A7977DF156A84051E69B95E02616DD3090DD38086EF3BC12353BAD25377618965C2810FCA929DFBF46F20360FC847818CF90DBC044EED16B3B9052C5C70A5A430441E53A5527A689F49B35CE82B84D6057C5269FB60C710C5731F431A970B86431125910277FA7C310A2285117B47B95054E4174A1EB11DA3E3C26AC25619D36712B11B2EF7405BCB943DBA10D50C0436B50DE5B04D96488A38F53DF37895AC20C10D959D81A29FE1F319FF871831D93C54654172A02E65599F9D820AB037438E62714BE6C7D868B66AC03C31C8753A062318CA36B6E59D340B9696D47C38F115104765865353A05C8FBC4B0A62A96577E94C17094DE259006F169E75B8919BB4C37DF6787B59BEC8FAC999A90B73123A5CC8772AD67585C879EBE05B5C06AFDB440ADFBC4AD400D0E634822A843E9B165F2F0BB748E231C0E0CEECA8806046B5DEA7CAC614A5E2CCA3767556448785DBC739CAA9C58FAC291A0BBE96E9AD36A4A1D9C96939603BCD76A81C040FBA27A5A39A1C387CAC9D1B086E512468D378E96039AAE2622FE5483673850D411AB64B892F2C29853822EAE76FEAF5716A660B55C2020DD3323A150CEEF9AB79925D2BC09CC6FAA31727A5912A7F5E9051F8B94D8866C4DA173D3F2A388E6C44218338CB85702CBA2F602C24E1788158B0129E7C15DCF2CC6ED55C54B456CACC07D179B432A5AA63E8AC59F0B6979A833D99C13AA0C56CB65928032E2F30583FA6C038748CEB77A91C631DD09B575F13126F1447CAB00BC9C85FC7601DA44AC5FEA5ADCBB599A409BB1A67B24EF438D750BF87A8814DF22449C9256DA1286DC623E81546C283B80CC88C48F003678AB35380A6DA551AC7041CD5112D59D15A80032C28B61A1BB3B8A7267ADF4662B5963468B3BC5918418F980CD7DB3946C5A67F864DC1F3ADEA12142FB71FDA590E070007662B5C3B8B31AF169A092A2E466AA01AE879641BC4D1D62523CCAA3ED436CC089B2621456114215D1A9EEFD1016DC81D5320956FD942BDDA40F3A033E5170CA6A2C57CE17EAFC97AA0959CF37B92E789636F159FAA827DDB895553540D52A61EDC1B3DCEB22A7231C48037CC78594718902333D0BC4FE6B29352991E2BA5D31217457007057B9D3C07C39B7C7EEECC222D4415D6D9272EC50B81520BC607592947C86D2612E434C22513235536CD08F10022B97675B89F1DE58130EB6797380F6B68773DFBBA0664BB7CAAC84F7B06711587C6ECAA383505F62751C8346BDD502A58E9326E4A0D2D29226F794AD0064B2CF0A56E6A67C18B331F5537D2FC6C3AEB52A5C3313118CB7D159B8372158C1A7BFDCB65D426458EDBCF8797383E272D3B18BEE68C4D74E25751AB1CE4567D66B714CD62A8E9B886BAA812A9F50739E30F296791414727D55003BCB52AB6BB74CAB215B348AD06F974192CBD61576BAFFC815999AB8556583024CDBD1C4398F4A4AC60E8CB68627382A145F91BE9D78FD51BA5E3FCBC3155B62BC07751DD\nsk = 72408D44C2BE6E83C803DA2846D852DEC1848EE41504B5C91F774F6E512B51F71DD1520203C486F63240BAB4C1DBB212299753B8627F9BF2117CD6A83BE4075A385782AB804A420972EB25BC553EB981AAE7D7A715111338529F6116C10B10BBC20B31C3161D4BC1A5F050220B5584ABD6A546AB51A9A10120ECC131220502697E9D61BDBAD346FC43824135692204B49B5B377B870B7B28C86946077A215ACAA11ABD851ECA479988BC69CCC9975EB42A33523C525434BC594217912123957DCDC18E410A6D6A811BED8A0B4135B56F4562F343AAEC34396BB0556D7962679A76934B016B4B4BACC14650C55C3AEC9BC2E85B548B5D3EB891B6596F0C44009BD0982D98BF81AC77C8DA98264A719CD8568E48279DF9C8E9552B94AA773B43A70742C75F041915752551347F00447D72D934BEC553BF1014F4276015E0B4DB77CDF8C546AF05861804A5B7D92838744511AC6C8BE55E883ACB7775B98C4B4C9C8789AEE317F8F02B4127A6AE879D02C13772A003928041C53351D8D70CE59B14CAB5CA31D717F69129C8FABE46582CA5298ED156209C25BC57870EEA34255CE1B4C426211F957D74876DEC169C4C516C8716B3DDEC6C3E610C31F0C52E13650F0B1C70124DEE27111A76ABEF82C8FD3172D554121E6A87E9D3B58E11379CB812B7F4B95D46104934CE75C715771204D7C46AA9439836453BDA709CEF3BC1C9341994F25C48B5C80FCC8A67E316C431BD302B20904456B3283E9BA1BDDE494CE9F8A3F0B432DCA69D0BA9C43C703E1616272CD6B904D5B6279C55A539B7E46A601B28493E38A2CD9BA66D997C8C5C3B7631822C529FA48835F8A08F322615E96B9087C71C9F262B68851F00486489D25C92221C2759C89440CE733614B8C7A06F26B374CB4F8A6A7D67DA521EBA7232C0A4C066886B8450755896CFF77A369BC8FD4B3B5B0731452A908ACC68366B8EDBA66D09F212C9330C83990AB2DB7095D708B6C3589BF929FEA31534646537D2AB023887FC286F00F46F8A360476998E4FE7315F03C234929247BBA2A05297A5E01AA9CC6158458E2302513274A2E3359D66126F5FD44D348BA2B634642EA26C6CB616F64A2D2C819ABAA48BC565CA0AB67E6CFAB1129A0144C10A003B44BD3879B4E62E0AD3A58BD86A7030BE34309F3309642B017B0AA03FFAB4012B36ADC49A95DDBA67CD81306EF6BB20B546BCC55EAC2B815FB38BAE991D6AE7AA87D42ECBC740CC816A3EF42E9D204CA0177CDB30CDCB870386C320FF51B137578B029125BA518A5B887D7B9050DFF113468608F6335EA81A59B87CB753724ED0E159FA4709AC018A31194247A6A9C65443A35AC36E11BFA6A8559CF20E50116EE5FB3780FA03DCAA77846B18C04894E50486ACFC3B8FEABB8CF860D79C2734A700AB731739244580653699B51B7FC440B8CB1D6BB1360291BDA5B11AEDA3C77A25B40F96763A372512561E0D52848FD6A3A8241DEA49C4C24692CB43AA22067072FAC2DFF7898F298CBAE17F9CA68A132321932295161A1F31C178932004D17854D7D9C69F6640EE216747102280191A5695433763B6CF3B86756AAE22A37F9F6920C361C2AC68A7E11C8F5505AF2100651595BFF5A35B4EC7538B62289DD1204DB91AC492B610538C93EB5F2637AD97DC88F0035FF3CB735CEBAC9BE7CA78A4149CF10B6D93283050167E737596B711A9F32A0F6909975055CE6632F4B42CF9A2361CF69047B5BDE1868DD745A82CF473EBB30D86A71793364F70B1255B1C2003F166683C936A7977DF156A84051E69B95E02616DD3090DD38086EF3BC12353BAD25377618965C2810FCA929DFBF46F20360FC847818CF90DBC044EED16B3B9052C5C70A5A430441E53A5527A689F49B35CE82B84D6057C", + "5269FB60C710C5731F431A970B86431125910277FA7C310A2285117B47B95054E4174A1EB11DA3E3C26AC25619D36712B11B2EF7405BCB943DBA10D50C0436B50DE5B04D96488A38F53DF37895AC20C10D959D81A29FE1F319FF871831D93C54654172A02E65599F9D820AB037438E62714BE6C7D868B66AC03C31C8753A062318CA36B6E59D340B9696D47C38F115104765865353A05C8FBC4B0A62A96577E94C17094DE259006F169E75B8919BB4C37DF6787B59BEC8FAC999A90B73123A5CC8772AD67585C879EBE05B5C06AFDB440ADFBC4AD400D0E634822A843E9B165F2F0BB748E231C0E0CEECA8806046B5DEA7CAC614A5E2CCA3767556448785DBC739CAA9C58FAC291A0BBE96E9AD36A4A1D9C96939603BCD76A81C040FBA27A5A39A1C387CAC9D1B086E512468D378E96039AAE2622FE5483673850D411AB64B892F2C29853822EAE76FEAF5716A660B55C2020DD3323A150CEEF9AB79925D2BC09CC6FAA31727A5912A7F5E9051F8B94D8866C4DA173D3F2A388E6C44218338CB85702CBA2F602C24E1788158B0129E7C15DCF2CC6ED55C54B456CACC07D179B432A5AA63E8AC59F0B6979A833D99C13AA0C56CB65928032E2F30583FA6C038748CEB77A91C631DD09B575F13126F1447CAB00BC9C85FC7601DA44AC5FEA5ADCBB599A409BB1A67B24EF438D750BF87A8814DF22449C9256DA1286DC623E81546C283B80CC88C48F003678AB35380A6DA551AC7041CD5112D59D15A80032C28B61A1BB3B8A7267ADF4662B5963468B3BC5918418F980CD7DB3946C5A67F864DC1F3ADEA12142FB71FDA590E070007662B5C3B8B31AF169A092A2E466AA01AE879641BC4D1D62523CCAA3ED436CC089B2621456114215D1A9EEFD1016DC81D5320956FD942BDDA40F3A033E5170CA6A2C57CE17EAFC97AA0959CF37B92E789636F159FAA827DDB895553540D52A61EDC1B3DCEB22A7231C48037CC78594718902333D0BC4FE6B29352991E2BA5D31217457007057B9D3C07C39B7C7EEECC222D4415D6D9272EC50B81520BC607592947C86D2612E434C22513235536CD08F10022B97675B89F1DE58130EB6797380F6B68773DFBBA0664BB7CAAC84F7B06711587C6ECAA383505F62751C8346BDD502A58E9326E4A0D2D29226F794AD0064B2CF0A56E6A67C18B331F5537D2FC6C3AEB52A5C3313118CB7D159B8372158C1A7BFDCB65D426458EDBCF8797383E272D3B18BEE68C4D74E25751AB1CE4567D66B714CD62A8E9B886BAA812A9F50739E30F296791414727D55003BCB52AB6BB74CAB215B348AD06F974192CBD61576BAFFC815999AB8556583024CDBD1C4398F4A4AC60E8CB68627382A145F91BE9D78FD51BA5E3FCBC3155B62BC07751DD3DBC65B722A8982D058E27D409F04F744551ECDE9015B62607CF67BB8ECECBB8D5A45A4CED06403C5557E87113CB30EA3DC2F39481734DE9E18BCBFBECC6719F\nencap_coins = 8DDCC956A19E14E33DD2F1FCC4E6AA816F299F76CBF95B962A0535A7E2949405\nct = 6B9A9197D340D1C9D1CC00DFDE064753F3DF484966CE3A1B0B75580811996134269F12773AB4927AAC3F72325B2D3D30287FC7FB9B47A797A95156A1CF36ECD98ED729753273233475AEFB02EA78D29510BC5ED1A896BE4B03FB80E0B97E687D79EC1A84BE8B94663AAE60AF47C9CCD9032330BEFD68BA26100A05197589746F1D7CF35D3924926E264CA5D401AB7D4146F8DDD35271236F878DC9C79EC6119ED3DA0CB1021AA342C25F73386804AD116D2E206735734489EBFF90B01D220C76F6FDF40A40320F645F28C01B2C03F91BD9597E31AED82D1AE9B0754F7C9A8181E7E5ECB8B89B246F16E7414615F69CA5EF8BB182EA721AB094301946AA2264130F61402B2F74E95725B1C8A3D5DAB2BBD17381FA89716221098CE987B136E4800C27723FC8DD64EF8DDC087D11973952766A4AFDE4497CD11FBCC266854B33975F73B1928C06AB7E5F78AFAA3A69CD21101943E4155F5444BDEE0EAE7723B01328686179FF3674AD0C8526D32107C0630074E4D54DF2DFB80363FB86F5DAA3AD3616E7FAEF1BB89B814E5316E07DE2C006289AB950514646CA5E73E29AC85821269F62100F07FD23DE481A516CE406A42444E79FD1C7D9DF45BA6D3F8643B76E277E7062108BF417E732A5FED82EEB477CA881A82B6A1E7C66AC5E39A1C20E9A86B8C3BFFA6CB127EB49BAAB68549939C1A96BA947AE89D685A02C9D2C8B26E843BB02D5639A10BF3DC779B3E08E1B9C9CEC7BBFBC2F926B55420DEF878AAC12579C0BBA21CA72BC9F2FDC48051151F98FB5EC126600EA683B601585E2861A40BF79295D3AA5B1298084F508869DA941604D09433612EA06D0CFE5390AF1A4A20716AB09C99CF3BB80D2AD16ED7D0C639ADA53822E571F0015D16DF04916667DD7FD3442E77D3745ECCB03C779FD8DDECC7AB0080E7A999B5FA2FD36BD083FF15E3E9BBFB0DDE88182E2FFB222AB6873F6624BF1AE121030067675647E40E3527D452A7260A3F990E99B00736EA1F73234C66B01D76723EA456B8282565371B891BD8EE171130F67B69A4E7900048EA6676FF3F1977F35D4C0DF6B3D7DEA8F9F4E5E4229A949188215B62C995E72357EADC3043BE96B3D7E528F3E2D82F904A7590D0733FBB75A3AA7E992B9C7998B85D01F52F1FA7B07388506DAF988EDABC320020153B962402131E0B6718BB1D007795D132EB9F7EDC2D317CDA9273DA7F6C220E3A02A33F4C9DA477031D360240CB35B75CED7053B8DA8051A6A8E362A79A0F1B7622DBA415BDA5163F20C83649FB38D10BF6AE89D186A831401D5341FBAC2C70B3049CE25044CF46BCBADCC03D9A8C7B7AA0977036180C090AE2B0B785F0D64174331307B7532B0D99485561A4AA10FDCAD900509ED778EC1133695AF7568022BDBCFCCE960D31C13EAC743772FCA2D906732285CD43393DFF6847AFBE9B81CB335C36F1132EF6DAC14E3816F8E743461BB16C17368804CB3F14DFCE2C9887BA73EB798F4EDCA596A858F1C52C50FF14D30F2CB2C45A59CB8D0C29F7013\nss = 57D3C28B11497BDBCB6CB8BD09E459292F7904E1F78FA5D2B8DBB33B23B21D9A\n\ncount = 3\nkeypair_coins = 050D58F9F757EDC1E8180E3808B806F5BBB3586DB3470B069826D1BB9A4EFC2C3E0351BDC8A2DAF0258645C383021DF33FE59B553A8270C1B7A4D0AF155999B8\npk = 25949FAEA67E908040A25908A7E33199D586F22A3CF5A7AC49EA41BF83452528C7F12118E0685B09D30947AC76F4F72E89BBB7579BBA13D3CD4E262FCD385EECA8B780D7B6D3343CA7EC1958569C49808B97586C263903989928AB9B63EFAC00B27037637897556B8AAB33198C144D226AB9284541400138E03A31F10CBF1CC4BF633C3AD70C65218C1B18770C91D139971574DD90317A421B8BDC56C02C2564B2496793A27A12009ECCA141AA337E911F0B448D913394EC1ABBB46A568BA749F0FB0A2C4562637A220225A0AFAC0E9A53CA4F506391D7483932814DEA886C89879237A95C03684CC0C2D2701B40E5B3A340316159CBC56BAE84130F2FA830501257F8A8948F482AD194CCD4F6BA6C01BACC4C1B9C3188C3D002F8F18F62393B373396F6C510308B6754B8CA81F53D5A1512FFC3428A6C2A543A61FE1193A86B97B260339FB43A9F0375B1C2C62DDB4C1F6629DB701B2D2A50577CC7D5D55A30766400842938D83A6818A128310D16648614A6B6DF6B5D8D9A8D0EA4A127F4233B9A50BA539F5F01B62513A5C7BB8EAD8463C0A346252C94F753A34751B078A06DD785AC6532C2730CAEF7249515514F8E18713C2A72D8949DE781C698E708DEB35448CA1DF99B8E09AC4FAF694CA71B7BD41BB7024C0435424831424F680A77F13506A56C97B6966AFAC4B90FE60BF5E7507E6A7093C47B5F8CA47D86C767455D645C502D82CF5B1CCD8880758BEA855DC71B1C98494862030202C06B935125654EE498A7E7F37254084AA1795484FA77926C8B438592F4D7BAAB58978329CF12F461B1F93AACC7117980774E12355AF27E506A2AC63C4ABFE585B2123E2404B9EA9753FA101604663D07E153C07B743B23C56B86A91CA34111803A1F5865E47807C012A81885104495499884B495EA3F457A2AE1363221B2A94BE84E27CC9E8BCA44F8FBB92746821782B3B92B1BFE87127F34076BD4ACABF60E4F9B97A8F63008B584D0221AF927C67D616BB9933BE9486E38D7BEFDA11A27175F670600041A6DBF0C9A4364B3FFD28ECEEB0C8077C3ABA19C6123A20CA72C0776AA8E21A582168591C7C1EB146BA820C9EA1AA3374625C8744612BCAB37250FFB34A89D305C35169660DC9B09F7C960A4C4450B1A2E56088E8605FD75A35EB620C3C90B93FB001E03C006A15B67136EC1C354D405A61014821FA9590DD212CC6095DD011BD8801A10F08F15DA21C14CACFDE606CA02B7E2E1483E3514CC6BC88C2987587458D77851E476AEA14A94C176A4EAF865D58C033BA2280EC0521BC53DCC3772D48258593A5A1F9974228652B8CB4A08296EEAE869C733A316D926D400CBB09A2DAF532DA06522DA9694CEC2A29CD4C87F6A6C837C6EF6182A30548AFDB807BF447953A3827DB3122BCC7E33576A33A943492A61F3625DCF412793996C664A4664B3666C154F90B40C3EC514C4B1A2D265A23B897177342B76C69637D52E356620F468480472923313A658683566DC8F8FC1079F248F9D8AC67D4CA703339AE28A86EDB4BC21DB231DFA970249AEB1E2138BD4791352151520A73B0792A0E77D4967BC8B46740CF5599D4056F382C9006B79938825DFE2806CB6AFE7523D940792782D978970256C691434F939B02C14F42B1874087EA68917C2F3E31315E22581\nsk = 548A01803A231CA63843872ABF16B2C4B9AB7407A093B354F8882C6775BACF2931DE0A501C5A7EA7EA5C3BAA067290B9FCA059D69CC6DE9B772CC058470544B64B11ABB77F490746384B83283740F0702E17D046759B61E75030F187C2283045B22B4F9E222CA44980DCD0A42E5704504BB3E097CDF93A99F057AB21E3AC305666710C3B4C1B750AA3AC0F00A6F592770D8082F6157ADDB170A956456C7616C856657835970578B35FA87D8F79C2AE54AD36823C6A13A4207453FF324F17D13D43A400A2102B6F6224E6F2132BB14A32FA3F10A446D7944428B66E0E0A04B204C5993C03C294927C60540F836572793C8825376332B64D109BB7273147A878FF0B0BD2808B62104515D0824C90A4E249B4EC8C0F6B572BB621B7A74089DE4B49EAC5A3CFB61A5D6B420779A29E1C5AE98AB30E01A0B45538C9A14CE61C4DFFA27A4E462757A3BDF00C0206C5BF5233132C47B7111771DAAC633E22132AE82CBD616EC92B4E9D1C88E7285B84D9A12E14897A020C06832E9CAB42102AB999838A93A77141D12FF068AC13DC4C685328C7036CCFC2087BD92CA5A675CFE40AE4C32B28EB770DA04234A456EB889EF92A93A0D3ADA8061599D99CD8A96880A2B5E440766A9C81E7A24F14C295283C333A0576B49C569C99450F8714160C4CC49828090BC2CA390094E14BD6A3011A5C038F0927FB4BAD38440EA9F96FEE99141C564A91F9C86DC72498F89D05B047461699FBBA62EC28698E273E2B8436A6EB8C9C094D3404853A45137881C691352F6240ABD2298488299331CC03B1A3106F242D2871525587888E448D0F45A61480BD7E377DD5B63E143093FCC8BDAA563264BAA4586", + "49CE7FA5826E4B9B49159E7541D432143C5093A2A5BC5B835535FE7395EC556BD467A10975CE26304BB892D056A6EA4C5CE08D033E9334CF7F6750CB62209BA21F6B147AC875C3F1195D9D991E333C7C25465176B8A566A71451B8305F35D831A36C57C64B664C707F3BF08B54FF3847F1EF0AC4B32BA7D563AF40228B2957B8A95063A65BAFAF86609B4BFE1127C029C2EB224465E1C178C74CB5DB4C0C2AA46456761EC4A528AB2BB8F92C120A1B78A9517A29C8EE408AE7FAB4FDFB1941CBBAE4C3630F407A2C23C4D10A58A8E64546727153D61766D0242C5132236F637B7323905F4A7811C1B8019A808946C11A54F8CA6C16E06AD9A685EDB094616A80383A79E482C611760C249988547194266000722743346D13C80F72117C25CBB48490E05789C6A5E85ECBFBC73669F249C10A12ECA037DFD15994CBC450EB40868ABC2FEA05B5058429B6B04DCE2C4E2630A13DBA2BEC9BE9C30B9F90B45A97040A1F227200CCB4A4413C8B0C5B169830D451BC7993EB3D5B4D914A02C3183B7423D61101B0E3AC0A2A18673126F69511F27EC55E28B975E22A8CE800C37473CAC71788A42CD39C26C176C9C255C4355A62C0B84CDA33819A1AB6C07BBC4F2847AA23A600829CD516485DFF565DE9C392791B84BDB4580326F5128556D160100622AFFA2756E1CBD0A0A1F217A0C198A6DC043B1C50813BCFB3C2488A5C02C79393B65F39990B610274FA77B814BA93784562E0794C179549EA0927D9B4A25949FAEA67E908040A25908A7E33199D586F22A3CF5A7AC49EA41BF83452528C7F12118E0685B09D30947AC76F4F72E89BBB7579BBA13D3CD4E262FCD385EECA8B780D7B6D3343CA7EC1958569C49808B97586C263903989928AB9B63EFAC00B27037637897556B8AAB33198C144D226AB9284541400138E03A31F10CBF1CC4BF633C3AD70C65218C1B18770C91D139971574DD90317A421B8BDC56C02C2564B2496793A27A12009ECCA141AA337E911F0B448D913394EC1ABBB46A568BA749F0FB0A2C4562637A220225A0AFAC0E9A53CA4F506391D7483932814DEA886C89879237A95C03684CC0C2D2701B40E5B3A340316159CBC56BAE84130F2FA830501257F8A8948F482AD194CCD4F6BA6C01BACC4C1B9C3188C3D002F8F18F62393B373396F6C510308B6754B8CA81F53D5A1512FFC3428A6C2A543A61FE1193A86B97B260339FB43A9F0375B1C2C62DDB4C1F6629DB701B2D2A50577CC7D5D55A30766400842938D83A6818A128310D16648614A6B6DF6B5D8D9A8D0EA4A127F4233B9A50BA539F5F01B62513A5C7BB8EAD8463C0A346252C94F753A34751B078A06DD785AC6532C2730CAEF7249515514F8E18713C2A72D8949DE781C698E708DEB35448CA1DF99B8E09AC4FAF694CA71B7BD41BB7024C0435424831424F680A77F13506A56C97B6966AFAC4B90FE60BF5E7507E6A7093C47B5F8CA47D86C767455D645C502D82CF5B1CCD8880758BEA855DC71B1C98494862030202C06B935125654EE498A7E7F37254084AA1795484FA77926C8B438592F4D7BAAB58978329CF12F461B1F93AACC7117980774E12355AF27E506A2AC63C4ABFE585B2123E2404B9EA9753FA101604663D07E153C07B743B23C56B86A91CA34111803A1F5865E47807C012A81885104495499884B495EA3F457A2AE1363221B2A94BE84E27CC9E8BCA44F8FBB92746821782B3B92B1BFE87127F34076BD4ACABF60E4F9B97A8F63008B584D0221AF927C67D616BB9933BE9486E38D7BEFDA11A27175F670600041A6DBF0C9A4364B3FFD28ECEEB0C8077C3ABA19C6123A20CA72C0776AA8E21A582168591C7C1EB146BA820C9EA1AA3374625C8744612BCAB37250FFB34A89D305C35169660DC9B09F7C960A4C4450B1A2E56088E8605FD75A35EB620C3C90B93FB001E03C006A15B67136EC1C354D405A61014821FA9590DD212CC6095DD011BD8801A10F08F15DA21C14CACFDE606CA02B7E2E1483E3514CC6BC88C2987587458D77851E476AEA14A94C176A4EAF865D58C033BA2280EC0521BC53DCC3772D48258593A5A1F9974228652B8CB4A08296EEAE869C733A316D926D400CBB09A2DAF532DA06522DA9694CEC2A29CD4C87F6A6C837C6EF6182A30548AFDB807BF447953A3827DB3122BCC7E33576A33A943492A61F3625DCF412793996C664A4664B3666C154F90B40C3EC514C4B1A2D265A23B897177342B76C69637D52E356620F468480472923313A658683566DC8F8FC1079F248F9D8AC67D4CA703339AE28A86EDB4BC21DB231DFA970249AEB1E2138BD4791352151520A73B0792A0E77D4967BC8B46740CF5599D4056F382C9006B79938825DFE2806CB6AFE7523D940792782D978970256C691434F939B02C14F42B1874087EA68917C2F3E31315E2258194391B7A41175A41C15CD995EBC69C83B29E4BCEA6C186611DC4A79578E37F4C3E0351BDC8A2DAF0258645C383021DF33FE59B553A8270C1B7A4D0AF155999B8\nencap_coins = DED872C12331243854D57FB85475E4A45D85378AA15CC73DBAA11D6C3EA9A080\nct = 31F9781C89F01126791ED356804616BE0775E2B9A8B9E7C587DBDE8D92EA0FE3299CFDB51D8E16A8FBE67573E7DA19F3231DD795F31615E683B38FC1966CDDA46534B9E6382D660E1E2407183B83A4BD6A932D73A43ECD21629AEC31C1340709FD7D096FF1479E3C2C5D877E2863771BD44FBB27946F1679DDE4B8B54E2FCA0D77687A6F99D50D8FE06DD12B4F1877FA98A20D94B6197F601CDD9D69CBD16BDF1C425E62F921C2AB06605E9574AD7A7957991CAFE5BC3B9EBF971E7C56F19E6CFBD904F8C9B8C8A606197D083F139BEFD23B67FD061DA22DEED51069FB145A3B6D1911397C2145B0F7ECB37297BEF627B879AF2623E0D7CC10E6E01A3F99FE68FE9A3FB4C26A4DB4C0AE7D41FA7C269434D2FBFE08AFA5BBA5B046DEB450ECA6C6DFA15AE66C69A4F09249E344B541E7B664BDCF14D26BD3F5C941CA6F0D43581826DB15750F5E8D4A76986C94140A91A77BADF719E802B7610F6B6C30F36B8B19A9DEEAA235E4482B13F29075B1060C5A33BD1ED707874A3C456DDD91CAEE0212E00C48ED3A559EBBEE72E29F7C11AF0EBB1B1505FBE89BE8469A8535A2BD6AF6BC35C77073A56A8ED85703CAEDB5F9A1E18D398187282AE92AA73C7B5AB5E7B583BED808477BE2D4F54C54EA118E1819D2DF492E530FDB04FA2ECDAC202835A80CC38CB5A13954A700B98E0C6EE96D6B8CF0F6D3910685CA1B02B7C7E7FCA681A1EFA1ACB00AB76D70157ADCBBF02DDA0E0C94061BB14B1FDBDD4F5AC7B4C41363A946795488D9A2C568C4919BEE30F791923C2F98EAEEBB088287A5D5C0ADAEA8F70D0165EE29E2CC5E2F5489C8B3A8586081C7C40980C5D1CA7441612F1B4BB69B25435B34006FC12470746EC3C7F880A2EA223EFFBF41BB459DD92EB87771EDC768718C5EF06D658F5DAE7AE6AFC613CAE6BF58C8DCE17BC256408D364835C8CE0D948A2583567FFFA2C8F79ABA7DF916F3F661C4160E8387EB6826791656B4A06D05F7E760E5DFB9BBD0639E95B6A815F8E2EB909FE18004271AA40581A46F3894865005ABC214D3AFC6A3CEEF4A383EA1F41301AD1DD71B9F98F94575119FE1A8525BF2515D1A8D65015733EB07EE0B6F218339654DA72CD40723DB6F209DD1FE94432B598131D8DA4BDA11166675871D24413C9CF4A390DAC5F680BA007923A70AC2B3268E541887F6BFFC2C00AB351FC34F9B5764E5FF9ADE9DB5E484AD6C91F34386216F9E3FB0910A8A1FDA5A6EF5133D99D5D08FF5C2432792BA2D4DA18E62DC0716FD4A45A6044F024842AEE218F9178469585243D4749B09337ACEFD3CDE97E6D99C3475EBB1B265271683E2696574E46F4B314169E0A83A145C47B5101D20B56C3D89576B44DBDBFFC5D8DEB8108DA185BA7E4ECA97F3DC0217C27FB2B95823E805F841EE83A9D57CE50C86172FB4B8414EF4A0237583066202290A1FA996E85F043A6FB07AE170F65FF18BA1A4E4C1C7B0EB8ABBFC09EA0E8C340A19EF54BDC5BA34B82EAA71E2C5906DC8A6D36E2EF6FBAF9D9C91D28580\nss = C0858517D0C27B05325599951912324DE393470811C6E19D99AA9E4EF4F0807F\n\ncount = 4\nkeypair_coins = 66B79B844E0C2ADAD694E0478661AC46FE6B6001F6A71FF8E2F034B1FD8833D3B68C0EF1663E52E24C33090EA8F4F564D85DACA610FD7C2D5756D7D882408DED\npk = EB14CBCB226951857BE4B3BC2A1B578B148E824A2414412A3D57C8213793C418BF2E0803DE4A16EB9C8B5D53718D38AE40299B89793F14741792BB10D9C21D5F06633AA3CF1CC78D0DC99983076F8756B2F96B2095E0B812160FBB9494038A88057671DC692F14A956D5E6565FF752D28237C70B8F8528CB1A04CFE5E6495BD3B46A3264FD7364E0D54F2AD27DD27B022EFB3D3A632A7F99551BC3317250207F2658F363164A9631A34B468E9B3C9B34B27A3A02FCBACC516469F69B3A51554B93E05FD6DCB098E8AF8A3681CE89548CA311E2F5421CA1496A532366435CFD56A26A245BA68655DB99CD113C1AD1170BAB16A22BB3399E45C6A9BA45B5DC5DA04A426C635C844744C557AF7E49CA12437CF455B302C037BAB4954627A2363020C4AB5CEEF5AAF2E352DED62FD6A52ACB70C84723A527BA34F179204B26AC10692822AC66CC56BFECEBA65C33295FB805C596A48A0C59477405C21AC3EDD2C27E56C19BC84D710584ADE48647C681746038AC74AB73591FDE872CCDFBC3CB1218FE12ACBFEC9248C00E19424B1FBCA70FC5193151AAE1415416BA2D7FAA6A2C745CDEDB94295438BB182DADB77182B2BE5BD1CE0CC028B7EB71BA8CAC8585CBA3CA01620B63FC91BF3C210F67C65C92F893FC616158C104A5799720AB0FD907798F0678746475C8502029865DD653209A39C0C362258A266B1B244A4F42B4ADC1C6BF602FE61125C3B989C018C0A0E0C73E35ABC97C9EE695CD265909AF82548B865EB4238376A6AB53A6BAEF185799489F64E200FB542EC3D1B42E8B3960E02730936D620360FF4570B4079B369A83629B599E7B27FF48C37F727A4F93BBB2D4B7E1C73FC0D6668E53C1EFE0A0B547B1F38C51F4001654F45BF0E5766CA1C662F2CB99A6BD42A17F89C80A4DB03C990A81AE9487E1A52C13720266083E152061AA08C03A7A703DE58251F129546A42282515A3E27195CA97CEB39B00566CF4ACADAF320D5C88C75FF310F10BB5AD738D38AA47C945235E1730B6CC227A194DCB04CE046A22C37319D910060B594BF8A64F2C4B8F26000031948046721E6546893A341ED2C32804149954E3788EA5054C51A43DA89F9C789EDA6727BDD4BE32B15D47B9C327EC68422813B00950BD73C96C7175274A5EA8BC128A7C0993031B4E8A5D3C074D2D1ABDE8239D5AF58C06509B24109C84297E3FEB447FB3926DC19F39211119C4597711A222B341CDECB0698580E422A951DB2305D4A7A871967DB945A60439DE206955C371EA52452F865DA438130D2B8EAB3669A97911258B08931A2E36C6C390B6845E8076A0D621D7692971BA71BDA0B8AAF7BA0AD3C4F05AC23621A146C68BBC501854062B924C3A64916A1B9B19CE5B466F8672EDE621EA987F83495106DAC22FFAB6F4A5CCA797587126CE50589F68A2084875BBB505C7FF46922EB496DA260E3719CDB2F23950455DC8D36E3932518BC11BFCC067AC533360B86550", + "B6AD09E93DBB092BE410721D48BF56B3594B93CBECFC785A5852B598425E4C4CDCC7CAE1907ADEA5772276B2929B9507DB5C06041E5F9846506055417C6FA091652A4A424BF6396D46365BB40601E3A55801B93A1CCF39126BA7F025A2467F6D44DE229C527F6E4E7071CB826CFE76FEA483D9163EAA84F6AFAC495A\nsk = 944AB695C2345BB67894D451EA2A5C92561A5467C769352379950879899C9CAC9D05E89CB2729B2BB47724923FCA357623C69643569D66912B2F9B3249908090D4C5F68388A6141163C931DF430D70290950B07DE410AF913C0E5A215C3059785EF05B824545ABA0B95E7279D1C5726B59890B82131D5C62E8B3BE33B8016BA0C321C248A5293C71ECA570C9536F958B84663B1DD5BB6F272C3E201F014AA3AE05640ED92200274D45D9BF4410CE8EA72D680ACE1EEB04CD8B002DE72795DB60681BC9ECD387FCEA796FF7726FB29877F895E6832EB7EB179A5956499CA3BCF3283FC8489D494A88668E6614B1F49824F12A448B31A42861190CE3A9F73C6FFA25622D7A504E0694BB7C75EE71CC8E718CE9D57AC86A11721721E6181F157C333AE098F8A6823F765B60F0300F4733CF65240C779569620213B8A331731A7B31937104BECC0995EF57255261AD9B246009F855CA82AF2001B256760C1543074D70B3C578279B35137E16AC2089A4C60038B8671D308964B68A2211187154746C27F59C8105981C8C7D0AD58717978C01A66B5EE1697188BFAAC9B927822C940C5380409F38459F5B302CF7DC9D6BD823A0308B0DA45C35D541D2346BAE4173FB0C677EEC26A94C4158B28D4D7B4B0F62A4AB06BAE0B42208B099A174BB4C482C7C321AACA49C4A517114A5CF408750E8588545134F83A67769CC6E0B413BB800C04093184625A7EE24134A721D5FB1571CD82DD1D7C5F9103E0C2C4416CB775AA28DF48643084B391DD2CAF39278E9A31D2254871B170AE1B60A4E39B1F5A8473F580C7153CAA1369D8E9CA381660A57CA8D2523202816767CA8CAC0914C16F1CEC8EA4EA5DA930E0403E7A876C390BA31FA250D946A2EEAA479888011DB7942F7676A120338357BCA38C4C95088A4A0884B8B4C14E9C09E831F8AA658ED77CC164124CB281F61856BD6C965B6B6CD60B1B1034888F3970555443F0F5CC29C800F578806BEEB4730AB9AF4B9BEB89502AB48761E188CB9AA95BA06B28CF4B89C200B2145A4339A53406B6790A518F54902EBA0230A8C2A45447125B7330F12645D935E00651CB4996E395543B7E643137ABF3DF59E042ABD6FA11927062D73D0A107BA6FEA0908FF6759A972C11E864EE7393254051BDA558D4B272E6CB2C337747A7EF46F5AC872D5D5238521C09E21495EF98B59C22961E5A4967370EFC4865F06A72A41464D37CE4DD1803BC117888B681D35195C857A47B764C6799A86E27327EB0403931E29F90FEE8628AA43B333615BC0F251707024AD41A24E3C4F15B99E72F536DD989C0325225DC682E3611640D99C1552506E687E18A883F90882056C14385BC08BE82616D811A4FB2DC93670945B7EFA17593C4B7BFFB76F9A805F5230C50B065DC77B409CA8CC0B7190AA61614C528AF2D1AC130C19E4362E85A40693A87C00935A887B9B58699777453D8278C445BBC8D225412BDA6FDF026207E3B207613D2ED74C085707EDD555FE4C00B40B2A83AA219CD643F1D83EC0FC21BCF94FBA6A8262D959C9FB345F2221082C40A1501C46C55082DB2709230B04090558CB6D6815173525725D8CC0BC93C881C99A16041757D6A05AC71A15E887EB14CBCB226951857BE4B3BC2A1B578B148E824A2414412A3D57C8213793C418BF2E0803DE4A16EB9C8B5D53718D38AE40299B89793F14741792BB10D9C21D5F06633AA3CF1CC78D0DC99983076F8756B2F96B2095E0B812160FBB9494038A88057671DC692F14A956D5E6565FF752D28237C70B8F8528CB1A04CFE5E6495BD3B46A3264FD7364E0D54F2AD27DD27B022EFB3D3A632A7F99551BC3317250207F2658F363164A9631A34B468E9B3C9B34B27A3A02FCBACC516469F69B3A51554B93E05FD6DCB098E8AF8A3681CE89548CA311E2F5421CA1496A532366435CFD56A26A245BA68655DB99CD113C1AD1170BAB16A22BB3399E45C6A9BA45B5DC5DA04A426C635C844744C557AF7E49CA12437CF455B302C037BAB4954627A2363020C4AB5CEEF5AAF2E352DED62FD6A52ACB70C84723A527BA34F179204B26AC10692822AC66CC56BFECEBA65C33295FB805C596A48A0C59477405C21AC3EDD2C27E56C19BC84D710584ADE48647C681746038AC74AB73591FDE872CCDFBC3CB1218FE12ACBFEC9248C00E19424B1FBCA70FC5193151AAE1415416BA2D7FAA6A2C745CDEDB94295438BB182DADB77182B2BE5BD1CE0CC028B7EB71BA8CAC8585CBA3CA01620B63FC91BF3C210F67C65C92F893FC616158C104A5799720AB0FD907798F0678746475C8502029865DD653209A39C0C362258A266B1B244A4F42B4ADC1C6BF602FE61125C3B989C018C0A0E0C73E35ABC97C9EE695CD265909AF82548B865EB4238376A6AB53A6BAEF185799489F64E200FB542EC3D1B42E8B3960E02730936D620360FF4570B4079B369A83629B599E7B27FF48C37F727A4F93BBB2D4B7E1C73FC0D6668E53C1EFE0A0B547B1F38C51F4001654F45BF0E5766CA1C662F2CB99A6BD42A17F89C80A4DB03C990A81AE9487E1A52C13720266083E152061AA08C03A7A703DE58251F129546A42282515A3E27195CA97CEB39B00566CF4ACADAF320D5C88C75FF310F10BB5AD738D38AA47C945235E1730B6CC227A194DCB04CE046A22C37319D910060B594BF8A64F2C4B8F26000031948046721E6546893A341ED2C32804149954E3788EA5054C51A43DA89F9C789EDA6727BDD4BE32B15D47B9C327EC68422813B00950BD73C96C7175274A5EA8BC128A7C0993031B4E8A5D3C074D2D1ABDE8239D5AF58C06509B24109C84297E3FEB447FB3926DC19F39211119C4597711A222B341CDECB0698580E422A951DB2305D4A7A871967DB945A60439DE206955C371EA52452F865DA438130D2B8EAB3669A97911258B08931A2E36C6C390B6845E8076A0D621D7692971BA71BDA0B8AAF7BA0AD3C4F05AC23621A146C68BBC501854062B924C3A64916A1B9B19CE5B466F8672EDE621EA987F83495106DAC22FFAB6F4A5CCA797587126CE50589F68A2084875BBB505C7FF46922EB496DA260E3719CDB2F23950455DC8D36E3932518BC11BFCC067AC533360B86550B6AD09E93DBB092BE410721D48BF56B3594B93CBECFC785A5852B598425E4C4CDCC7CAE1907ADEA5772276B2929B9507DB5C06041E5F9846506055417C6FA091652A4A424BF6396D46365BB40601E3A55801B93A1CCF39126BA7F025A2467F6D44DE229C527F6E4E7071CB826CFE76FEA483D9163EAA84F6AFAC495AC5DBD68B3A8C148B2E7AC049BB986E14DD1CEBFA1CBF3EDD6BAE85A4D2DDA082B68C0EF1663E52E24C33090EA8F4F564D85DACA610FD7C2D5756D7D882408DED\nencap_coins = BE4B5E900BF3274D5C6556CE983F3C13EB314E8B3AC969BE600A8C769A6E7C76\nct = 8216710C6EF419E5A05E36AAEB860C93E48A04D645AACF4EC411EA7BA7AD892DF895ACCBABEE859C80D30859DBC24DC48E04AC054A7AE4EF6CACC5CA3C5E21EEB2AF4E1EBAB32397AE6E642BED9FFA464A3C9CA7079D6CC638972FDB7C7D0444131CA690DFA2FCEAA156CD9C3E9E10AD5FD33FC38AE25E45EE5B3655A5AD2514DD35C76DA2FB302DA66EA48BBAF18413648DECED46ED3D14B19ED1AB197597A0E6367ED864E0F310F1C619FF1898F727FF576CC8AA2C5EE252F8A0460664191696C6CCBE9A61470075FC5264D1DDD097B5D70BF1F4B112168AA048411F843E4A0DD3D9E227A6040AD8B2B60CA6B36B77B20DB9CCD7AACF6FEF02EFF82E3E9A6782D5ED18CD3324E16962EA71B32C184A1BC0F20B3D39C892177E7CE5F76942C72166628E513CC19FE6943BCAE08926A70CABAAB7C5F4796C1EB41D8C03A9B9C2C8EB4F4A776B37CE83CABCCDC685452A7DD115960158F439CF6868A4C6ADDF88C8D6462961E8743B1F24BC28EF30EE788D7D86B381A111FE0C53CFADDCD7ECB994F1D9637A959F88FC683BC2B7E0284F76474CC4CA505EF1CE8D52F4ECBC743E94318C4F7C4D03F3D5427C97D72D59B4EFE7C85E6C745573EB78D753E77E1A2D4401960369AA18EBA81C4F4AF5BB3CED30C0E02EDB250AC00C90E8860C147A5687B531CF454A98D00BE85AC4D6832AF98ED3AEC3E6CE65F873F420EB39A6B4774BFCC72EB763E2C06DE8B594F4426D84C95070794B9FC231A99429B38DEC37E133E90C8B1DC0DD0180A2CAF7C423CE97A336C25891A8F7A0271C48355C0C9E8B38CEA3E92FE51AEFB57A8D55150335D9C03C6BAC161FB1E312E9A79AF2BD1F2886D0443FE524EE909845BC4675D2CB1A79ED50962865D99404294BA747D5EEBB7838C96F621459466AFB31970F2C2F92A21F889C7B754BD8E9B0254A97E599B0F72347E36FBD1D2F60CE238175968C96C4C3081F58AC0C2EF2D1046F1312B811CD2B0362BBB4EB6BC41560D1A116D8989247A80ECB47121E2B83E4760D99262B4F1E7275F967311482B7FEC821E84336A646579F73B69BB1099AC8C3AE084B7911B0A203D2D8E0A555A52E57648E45CC94B7403F181608AFC4A886AC5663956B903D7CC8A3945C0A462F0BC1169C1A662604205E9EE877294D38D4E911E54367803371F0CF142D2051B60A32C1A6CBF3B8C6C29CF09FF7E54320056B443388FDD9A377E4BF17FD8369BDE1168837EB647CB4372C60E950E8BF9662BF7E298D53E5ABEC6D170C4D8473CC8B00CAEDBE20A7667B64B4E76712E859C74523337553D654A042512C361EAC6E42721ED669541086346A7836A3FB9F4781FC73496242A10BD5382762769872C626084DEAE865EF9D2F1F67B35BE2AABF4A8842F6C91F579EA36C86588175D9DC82B19D3BDDC406EEAC7C38D131A0E9E2DB04B7624A7AE9452C16F9A2D0F23BBF435E8C5529634B083A6ACD4C7650EB94ED71B5A8E68B8DCC849870682488EC25E43822515DC3A3E7FDADEE2395C2B613C7E3CFDE2B5F\nss = 7F20A54FA2F1F84093F5CEE4C8F31640BE654F07BC939952284BFB3B0440A079\n\ncount = 5\nkeypair_coins = 7EC408F52C9AA723D0C41D9987682A5F4CE6C9DA7CD0215AF60BBAF5484AB3530DA1D147E7686E428AA1775BC2EB045D1ECBB17563AC966F708CF3882C47B5AD\npk = 86B5C9A75157E73CCC2E138518EA98A246145DFB6BAC9B2FFC333C0BA5806047CA9BA8AB797937000270E773C9863709E59786F8EC948ED27660AA3758E33F59140E527787FA74A2CE22A4A8F3037A26903665CBFE8A0677EC273F590D64C97F69F396DB78448535746B43296BFA2BF0A251BF986A524074C1F96077F5219CFA9124D1458520993F627AA8B7B6A0F191683233E0BA6BDE24561A666FD10151B0C52C9982C301E0970C3363DE27825A5BAB078848AA5CB75A90C1CBD24CF67A68F3417780CCA947131E4573934F9959787B6320A4B47BB311048289E2C915E35344E3A144E2708893138A15A03FCE3816945464C229C587093B5CBBB519767FC65C078D6C684B8B81C1F9CC2B3BA749FB3074623E3C9124A8E1A513510357656B37087BFD02773FB59157EB885E1501740483F3EC070BD492DFC217D7DB99CD7C9D57B", + "937297634C3494DEB585B8C93CD4EAB1865F8A9C8BB15DFE583C7DC0427274F8DF3C693FC351289964A89A3C745967231261D949552E0809BA9B7C5D258AF579A4515981E991D93154BCAA170491B06752415B1D52BC2A98B7F39C5B91A87EB759A9A4537218156746930A347A5026911ADC0412F10A7A7C200A1514D500805C10A276C327E4899AA3F9B95D1BA2347E0140184B1235A719E6C4A3011576235215D77084034771129C33199B70774B2130898A0C69D8F39C3A50B273C665DCD8031B4454D144A4356B9C2B16641311856CB65466991B06D1A8A74A5AAD6B5B935B65DBA8374EE690CD1C701A5A28B41732B5F88A9AD919A7FA563BAFB529885488F544E1240B3CD673F94EBBC91B4757444A302578AA953161993CC918216BC56BA53EA17664BC5B543A38C3516D4063C35695791D8821240BB749CAF98896C4718A9DB33C1A7E9B91B9B6D06FBAA58E507F8A105E2F71F6095621E354B3DEC1F9C979ED7B3AAB56B4741110FDA601FAC78C2EDC386669118A425C634157875F61ADF10C43D2184D3252EDEB11A61EB67A349405EC74B9FD307558A887EFBBB46C904F9469DB491605A3582BE433BED57363426055CC4852ACC0317F24D89903A918875C949556A6A458FA3CFB5797D6A3A68EE9991D97A38E16B9A727C5B2E7B5E5A0029C1513D5A1A98EAE78713785BD4322261D90109A0806E565EBD9308849CC6708B536C83A2FA35995C819D99B850251C1D50EA902A053C7CA31FAAC37BCB1B40D6123CC4D52002909D0AC566F7D75DC89998036AABB267C5AA70184AB4CFFEAB018F195F62879BE0A51B42B843CAF7C494C181C2F06866CB2287A00349EBB136747DA52A3C4A3C581798C413929CE3E698FA594F019579AE329A22D4AF66F27B46453F22E61AA6EC5D7D854FF6D3C3D4117BE2145B5C2BA7A57AC968A5CA43B461F808167FB5A76A942C95145098B95CD46439669C00366960E2162AB613C5ECB151359B093C27C04AB230FA7C0074684996F44939C81FC31373C8231BD0B6679991A32A031002B257B2F31101317B3E2B6B28B8911E3991479444C6086110B7A70125CA71C6659C970F94D0942124C17CE3AD50D5A7019146BF51B012D1CFA0F59B220A795DC6B3D7896AAC680ADAD383EC46762B669D35909A47C12DC8EE619E1A0C8915822D574A243F67E14104D4F021CF95BF33271C9BC9\nsk = AC65AF9FC8B905D09638374E58C551DA08AC4EF86A8FF04489BA462841A85D907ED0C70E1A790297AB2DF7D6CDFC5C6AF513144DA105DDA2C75F00736DD91564A79668E335FBDCA1C9D31592E73D60066B959A2FCBF55474F9C21BF058F021457586766FDA4FAD521F64940D4932B07AD8CA7E1A06662730EA6C15AA1C2F9662552313176AF04FA4A98962101492566ADB8BBC3EC04F9CAB9EBFE5860F886D57A2C73FA050A3607A8C0998754B417C9C5AE2FC3F829CC3A2EBB1E927AE87B68C6DB355F4C661CD000D10D6BC31CA1C249A9B3931A4D1C57904DC6DF923839D9A90AA2B93A87C44B5F82E6A925D22E679428064FFCB9621067B75477FB7D51A1D3B9D9DE4051CF874CCEC12976562752CBFCFC59F56C2C60B8B4610A9BB36E9019B974502407D57289726AB8A38D7A6C880074A5686619ABFFFA5757DC79E1449408851502BEB8196F493F4A724B9D681645A07B193586C5C05D8D10E2C968BD251B88691C368DC18CF8270DAD3C22BF5093DB4CF05668F8C6315C0EA3F55495E784CCD6055AC451363FD77A91686AD77C5AF53141EB5E7534FAC4DE481741E48B414302E4743789E250C39C45C0A15CF42E7B3631B6A8C0971C8A34B8200BBFE11004AB06BFC5949C3615B02947C73E7A0717C6B60F2679DAA21AFE4C55768A08E70105868AA6AB4AAA848C79BF125883907B9DAABE367AFCE273E2C168AAB02ACD27855E2944B67B938170A9258F67397770136E466758C260CCB7DA226B5A95692514727FD48953C62959C88C8784A8A52131C4BA5A6D757B4311048B602B554E8AD509B0C12B0A64553CD4270CA92F36CEC227E16A217C769A2BC1AA6C356A5A39C69F4963BA6273DB9232F1D8A28CE65B5B9058F1B8A164AB0380C42A8EDDB6C2B8B19F26B557C387E4DB9AEB92C4D7D0A2CA1E35F97E05CF590BC511AC5EFB2357E70525BD027B36C6781C4B86B0069E7B89C8CA643FB9990ECAB2CC5A8A5A5B2B0441076CE934D96BCA9FFC10EB6E7BB093675E97B68894BB030581D89123642C1118364115A76AD1C181EED4B691BBC15DF182DCDE00C71F8685B71883A184396D3475CBBCB674360DC14C42DD6461514479C85557194A97A654C4BE7620FA84C59DB5057A0886D760460CC4A3A713F4FD4BDEBAA93B943C48E6348053703ED818FDD9CBD62E246C0B69A265AA381822D6A474C5AA530AA5306A0C8572C413718A278194367405789E1F749AB4A02AF87B362067F3DA12EC01A83ACEC26A390CB5419B351BC95E08C7338FB933B81476EA950881275A186C9E9F99DAB63634E6B7314188BFD686D74EC203B71542B62B1C0C7712745940F7B9237551467470E5B1BA2F8E34CF585ADBAF980317C9DB1147382946C12223C3A45973B879A523855BEF121151BCE620216DEDC6C3457CA03951FF45B662F79A1A7A5CEFE9A846DD5774C7C2A22F842E4E465A94314E036BB55A2787A1A0F0F111143872DAE74AF706A369CA54259B80578BACD497700871842B98CAE2AC3B572F98F145CBAAF54569779B616242060B30B2A482DAF335C9A502CD318296958C696F7080C7A3926C7B62F36A5DBFB87EA0518358155E8E94390B6C0F808B91C166577037D86B5C9A75157E73CCC2E138518EA98A246145DFB6BAC9B2FFC333C0BA5806047CA9BA8AB797937000270E773C9863709E59786F8EC948ED27660AA3758E33F59140E527787FA74A2CE22A4A8F3037A26903665CBFE8A0677EC273F590D64C97F69F396DB78448535746B43296BFA2BF0A251BF986A524074C1F96077F5219CFA9124D1458520993F627AA8B7B6A0F191683233E0BA6BDE24561A666FD10151B0C52C9982C301E0970C3363DE27825A5BAB078848AA5CB75A90C1CBD24CF67A68F3417780CCA947131E4573934F9959787B6320A4B47BB311048289E2C915E35344E3A144E2708893138A15A03FCE3816945464C229C587093B5CBBB519767FC65C078D6C684B8B81C1F9CC2B3BA749FB3074623E3C9124A8E1A513510357656B37087BFD02773FB59157EB885E1501740483F3EC070BD492DFC217D7DB99CD7C9D57B937297634C3494DEB585B8C93CD4EAB1865F8A9C8BB15DFE583C7DC0427274F8DF3C693FC351289964A89A3C745967231261D949552E0809BA9B7C5D258AF579A4515981E991D93154BCAA170491B06752415B1D52BC2A98B7F39C5B91A87EB759A9A4537218156746930A347A5026911ADC0412F10A7A7C200A1514D500805C10A276C327E4899AA3F9B95D1BA2347E0140184B1235A719E6C4A3011576235215D77084034771129C33199B70774B2130898A0C69D8F39C3A50B273C665DCD8031B4454D144A4356B9C2B16641311856CB65466991B06D1A8A74A5AAD6B5B935B65DBA8374EE690CD1C701A5A28B41732B5F88A9AD919A7FA563BAFB529885488F544E1240B3CD673F94EBBC91B4757444A302578AA953161993CC918216BC56BA53EA17664BC5B543A38C3516D4063C35695791D8821240BB749CAF98896C4718A9DB33C1A7E9B91B9B6D06FBAA58E507F8A105E2F71F6095621E354B3DEC1F9C979ED7B3AAB56B4741110FDA601FAC78C2EDC386669118A425C634157875F61ADF10C43D2184D3252EDEB11A61EB67A349405EC74B9FD307558A887EFBBB46C904F9469DB491605A3582BE433BED57363426055CC4852ACC0317F24D89903A918875C949556A6A458FA3CFB5797D6A3A68EE9991D97A38E16B9A727C5B2E7B5E5A0029C1513D5A1A98EAE78713785BD4322261D90109A0806E565EBD9308849CC6708B536C83A2FA35995C819D99B850251C1D50EA902A053C7CA31FAAC37BCB1B40D6123CC4D52002909D0AC566F7D75DC89998036AABB267C5AA70184AB4CFFEAB018F195F62879BE0A51B42B843CAF7C494C181C2F06866CB2287A00349EBB136747DA52A3C4A3C581798C413929CE3E698FA594F019579AE329A22D4AF66F27B46453F22E61AA6EC5D7D854FF6D3C3D4117BE2145B5C2BA7A57AC968A5CA43B461F808167FB5A76A942C95145098B95CD46439669C00366960E2162AB613C5ECB151359B093C27C04AB230FA7C0074684996F44939C81FC31373C8231BD0B6679991A32A031002B257B2F31101317B3E2B6B28B8911E3991479444C6086110B7A70125CA71C6659C970F94D0942124C17CE3AD50D5A7019146BF51B012D1CFA0F59B220A795DC6B3D7896AAC680ADAD383EC46762B669D35909A47C12DC8EE619E1A0C8915822D574A243F67E14104D4F021CF95BF33271C9BC962E0447F7B5AE8A806B741CA5C302230B555C3786C11F3EB43894A8F45E3F7B10DA1D147E7686E428AA1775BC2EB045D1ECBB17563AC966F708CF3882C47B5AD\nencap_coins = B0C99F495AD0CFA090C5453402FB93B6BF35D02077C5F6388810CEE3EDF51A99\nct = 47DCBFDB494870A4237AE75CC7ECD80C95857B94077AFBA064BA3F347FA65F3B0784CBE661AF614E97C8B21CB982E3DCF38CE7EB4E31C04D5C71EA1C609B1C672DE875C5D53ACEDC021FEA3062AE823DBA53601D70894C57BA78CB46EF9A1A6BBEC4716074CA5009ECB909E3163CF21985F3158356B7701DD2A8CD00558FF0EE736068DAF79B1C11368BE8ED666DED32464EC57EAF203F9AB76CA77697DD09926D46D290114615F57592AADB80257BCF209977D237506963880C92BF2846CC4F16DDDFC41B3011C18E48EC8CF7109F505CC72480C3F4841B2C79C2BA99A35890EA9765F5DB99D4A578E704EDB0ADA3EB1735DDD2DA5EB24795DE70072F0D811CA0D1F7C1544D3CD1FF9F4E02D8A1739D77F5223C767C0D62D5F9401B0C4D7444469153D05CCCD4CC06FB0F31CB0CF101C11A4215763201CB0EC3BF58453D2E46192A90A1CBB13421658D37171F84AF02C5FBFF5B4648BF7D131E4F8F716CA6ABF024C357B72DA52DA74A2EDEBDFC4D8B685163436C17EAC994BAC37AE466C17A2252CACD6FBAC2477633F97943465FA9DD15051CC15FA339066EC2D2505A77CBD336239FD6510E7C02F329AAC835B70E69AB3F7A4C24899C05B6D27954AB766B397FB05F45BF2AD32244029EF1F2214D7FEF5CAB80D03348B856EF5E92F47C8302E8BEDE3F1A809CD647CD98432330C6A11E7234DA332A3B226340302DBCBA40AD52281EE2622E6456467A0E077DC89D240728EC9D3E0F84D634B6C1862E62FB11655D9698497482BF4FF0401BEA7AE94B4C150A3A6EEC62A4550DD96D4688E80136556B2FDE7BF8B559E2572270DDC4698DA2F734EB0CEFD7F1F059164EB4F26AFE5A5BA6D2624B37C5C84EB2D683F3C146A9BFF6D6A6440B1F6942ED77BF34D959FDA8597EDC9455F6B07815D6A173A47CE1CAEF3300E323819924C6E3CBD10CB82C8087B8B08CCF04850DBE8DCA712BDA6E078F491982DA64121896E45F6136937B4A4FC79414ABEBCB229D6C4A26FDC7E23BE56188022C729182267A337B3BF93CD66AA5F7181978F81707927153D7BF8FBBC4AEE85F94D6BE33603890C3BF41026BE126CA3F22155D8745E629ED12834F7070", + "BC157C8AD306D3FC5B8B8FE977844C708F34622D6C64BAB4ADAB3B98C4EEA7A0D4E596E865B1E9077B0AE9D41ABA4F3C3B12627B270151584F1F961CC16006B9CB8EA4C0DABDB730BAD8C91FD4E281E5BBFFFB652C7DF6B70663746ED8314FE6F6A6E0FE59B53045B2D1502145EA3BAB123A29559D08253967E90AB82242F7C9D1EAFFAB702178D1D08E1C9051EA424EEDFE42970E1C6D1E8DFA16EBFCCE8AB9A495FC23975D30C584A284E5A0FCACA6C4BE533E08055A2196CF3D2456D4E8484837C6FB53F01B6CCBDD2F28EDF05AE81ABB51263B8A8584F8862453C962FF2490B02AE7EC7F8A0EDB01E290835D840C8DE325AD19235436FA3CB619CDE7DB879B8E2BDC5FCBF87984E1E07E695BFB1F155BCD799779185DE3E1FA28A8B369DB5EBA3BCD0D467E2E2BF816\nss = 082442B947F74C4E9A1C3E18A2DC9E761677251BA93D4CE000960EE23C2CDCDD\n\ncount = 6\nkeypair_coins = C121915BFEF6ABDFC177DAE2F5A24218F9ABDA2559AFC6741B08E0E61AB433EB729B5A50627688A4CB3E37CC0FEF22162DDBD848E5AA641731F8E60B4B79C93F\npk = 05EB362461C4A2E81885084505C3862C3B647D181805205EF3E4CA5C30C46A0C21EB97700B70C2BEE78D862B3E19DC1E0CEC0AE6998A7B3C4FDAC39A950027FB2A3BEE027A8E54B4A5B981BBA01BADC0B5BA6A36A2913F1C1A046036960790CE2CF2583E6C62A778290F242B49606ECF24B3A0DC023B22AD8945A0B8DBCCC9356475B36B2A990D7435B12E1536A21079FB7802B998488E690F763646C3B66ADFBC8161855B20EA18AFD87229D05E60372694E4C4C6215344DA04173559D7954B029555E6CA4356F6CBE325A39431A64DF06E75C63ED0E40BB0CBA6ED68BC7211B02F1165C370ADA1E0ACF4AB61C87CC32F7017B4A26FF8CC0784F76047316AF6398DDECC0C62E9A37FC4CA685017B33AACF597767312192CD330B2F3A84E0BB858480A63A607295A39F61510DC2C6998614013F45D319858DA8228FE5BB6EAF3B03AA60F4B721A3F046D3088671930672C61C92D6005254372D8081BE322CCEAD06CDD472CC5A481EE385096A5B8CE64B57781CBFC4457E917162DA007BD7BAD8E3803E05B08876842D9E6A0A545407A5067EDE3510CCC4478C040310AAF46051454D855D1A5521E2514AF676846650E0043BEBF453E7488B6DB8AAEFCC16E26A75C52BC0EF3C80DA3BB39F73B9852B54D9C606363438C45DAC4FF1A1913D81B9A80544177BA7DB6503A04A5405299F80A83FB7135FDE04F8CECC0962461C0E80298D219531C9CBF00A3BB5B84908B5A807739A63485128512C0478084C8964F9064CD4514CE92C30454AC25B48919B719C5A853010A2EB712B80975660456562C4C448C39162CA63AED14AF7F28875149857F9B8965BC1D04CB8EE2E67C14A493A3822FCD0A2DBA2677E719B8F2C8BD09431B82BA56007584BEEACAA1F081D244B0D771BDB0C8033B18CA9597443FF8CDF754569DCC2DC4D4C212E2BBEE88925CE73034E19167CC7AC46059CD3B9EBBF6BC3A476F08438C61971AF139A248821002480F42C2B9C0979AD3BC6868565CA3FCBC124A7548D53F56B51C9F8AA387B59B07638C7AA45704420B3C24642035A7884CB42F877260C29697809AA7482E3FC356D8CA061C1C443CF24C4535BDECCB02C3E3B8B1D90E5B47BD11615CAF849DA5811AA743B9BD7810C470187E81AF9BDB4D1307303F615ACE2A58E7ECB3BE260E9F7C1E10EB3A84F207D2E75A30C7C741EA45FB04A9473C1425F80A9186A7F2625EA6ABB4AAEA3BB50602DF23ACF8E452CC01A909EC9034ACB47B969D904213F0A79EDB7766D0290005C954A1DA0155F7318BE854FDB038D019C1904B714F0514AC331C3813BD703B45076365BE4B47EC510A9F585907BC0F461A6BEFE13A2667593E12134A86AC139777A50CCDAD16B6891A0871621B387684B5226368400164B29109328F672CADADF7648377CD11C9232094165BB1CF12F694F940C3CD784C84925BA74C8A49DC27CDA4C553C85334A860A8A55D8A75969977AD1F505B9B20CEECEB24A262C707843310F39434390EA5315A67491F0592BF722A1C2658C8A720991B26561E14B178C3A1028003CAB8B69F60828F47B876D43D3F193C3820804068A5CAE76DC3F27F5F1323E6A2797B9A13C86713A83BA9C161899CF295CFB4A4AA443F32D16B72616A0DB4D3849FC41A7A6BA87F4AF757A0AB1956518F\nsk = 67A93BB27ACD00C9B95AA03552809C38A08480DBAA67A9584A460345E20E5F381C9A82710EF1709CA51393F916345719BD3144B3121A8608C0A48017963387F7A31C5FEBC6B6749E6BD9BE3C58A9A77B53D7762F5854A3467A85941CA2C03873C0458B940275E5AB85B83A5C2027894B92246DD8632D68A310FBC6D214381128528B375FBB8C3C7923AC6A8C7F9E37C2EA4C6B72E3451922761AC274B5CC8569CCB93917A748E93C190320E3F1381E08CCCCA70903975AE25689C12709C8E9096B16A26E4439C2552A088194368B36EFE3871A6A1CD54CA0C70974AC936E45DCA01DE296A14C7D20652999E61841DCBA6C0171FCB406E14A95B0C02517447BB9370996176BFDC5BEB4316C0ED34A13431E34AB27D9DCCD3DDAA49D314659BB8D89325099D0B06931796CE65C0628C817393BB1870F19A10CFE3546D8BBC2509058327626F490A1BBCA6FBB653EE1C3555203353509AB14B64CF8A29C32B17096805B8D751848DC4494279266F2CC474228B2B703CFF81F0F29152F4570151517995262D705AFFFC08DD413C12F37B605BC32ECC1292B9AC99E4A34F911C8DB990ECC9A3DFB37517446908B91B1172A3D4F547B3AA642709BA40C3939734545DDB6B45C66A1A3E58C6D1929E5721BFC6A6021A635D86C8378D4A0BA68CE385B6B7FB983EC4A95C8B20B3EC750B082BF2CEC89A6F8C2881650E5B71A0135C865BB3FB12A4C2C3C917D655A2997984C8557ECF1943436A9FECC5C84808E38701CC26A251F458334F59BD40BB0D8F82E74071A5AE3C9439541AEE59C6E46A5852834CE5712B3665018154C5339467D606AF189CCF20C68C583C96D969815109CD3ECAD4F5AB0A8BB8A7B68359B0319078A7405821C2709A615864422BA0A3970C8EA138FFC1522B1A53ED1C71D396A0ED6B782C6552C70216679BB4761A600634276D553CD703897C6943A859112CAF9A7AC99517C23CE6457AA069B6FD2775EFB262DBC27B02FE6923D14B047A25CDC6B86D20A55D85108FF276F121A352E098E5D4CC3EF92B3A1C4A38244621B055D5F812189F6941B492330FB1AB0A442A656655455B38B522DED5640CC4136DF6CBF4C4B0651531CD8C95280E2AF13FC57C977BBD1A8BDD253096EA98C3AB33A516448A8301A4B141AE213BAD2F640B2D5846C99A25884360F604333197816BA9DD1D0C427C5B8D3A6B434207B8539CE5092CCDA67A755D6A6D7E8BB6BB02AF1CA7283E797F24A1042D29B64262F29B0482B840BD70A3D6D54205DF412DD6490E3DC38C1236758F65E461B11CA480B476875C692508E7BB90C430797E1917041642D88506C07255AA92EA32508462C2F4A1661C05114C9361F651B7C5FF70B42659FFEE71F58CB79E445536B8948142CB4EC16CFE5B21DA659C2DCE452346323F1632C37F128A6525F40E03D6C073E05476252B2B0483C4B87C1C1FD8C972CF651EB9684FAFBA3F862C8619C089F01277C14BE7CF7790712CA1E8877A48909EFA31D814C1C21F4A151B886076840546419A1C8B6CA4466389A3F6DBB69E8494D7B25A4E9B234A8D928A26B946FF305B8A33B0BF8B3EB992D68C312B4074788E69D1A5A211C3B55F8C654AE778FBADA1D75FB2305EB362461C4A2E81885084505C3862C3B647D181805205EF3E4CA5C30C46A0C21EB97700B70C2BEE78D862B3E19DC1E0CEC0AE6998A7B3C4FDAC39A950027FB2A3BEE027A8E54B4A5B981BBA01BADC0B5BA6A36A2913F1C1A046036960790CE2CF2583E6C62A778290F242B49606ECF24B3A0DC023B22AD8945A0B8DBCCC9356475B36B2A990D7435B12E1536A21079FB7802B998488E690F763646C3B66ADFBC8161855B20EA18AFD87229D05E60372694E4C4C6215344DA04173559D7954B029555E6CA4356F6CBE325A39431A64DF06E75C63ED0E40BB0CBA6ED68BC7211B02F1165C370ADA1E0ACF4AB61C87CC32F7017B4A26FF8CC0784F76047316AF6398DDECC0C62E9A37FC4CA685017B33AACF597767312192CD330B2F3A84E0BB858480A63A607295A39F61510DC2C6998614013F45D319858DA8228FE5BB6EAF3B03AA60F4B721A3F046D3088671930672C61C92D6005254372D8081BE322CCEAD06CDD472CC5A481EE385096A5B8CE64B57781CBFC4457E917162DA007BD7BAD8E3803E05B08876842D9E6A0A545407A5067EDE3510CCC4478C040310AAF46051454D855D1A5521E2514AF676846650E0043BEBF453E7488B6DB8AAEFCC16E26A75C52BC0EF3C80DA3BB39F73B9852B54D9C606363438C45DAC4FF1A1913D81B9A80544177BA7DB6503A04A5405299F80A83FB7135FDE04F8CECC0962461C0E80298D219531C9CBF00A3BB5B84908B5A807739A63485128512C0478084C8964F9064CD4514CE92C30454AC25B48919B719C5A853010A2EB712B80975660456562C4C448C39162CA63AED14AF7F28875149857F9B8965BC1D04CB8EE2E67C14A493A3822FCD0A2DBA2677E719B8F2C8BD09431B82BA56007584BEEACAA1F081D244B0D771BDB0C8033B18CA9597443FF8CDF754569DCC2DC4D4C212E2BBEE88925CE73034E19167CC7AC46059CD3B9EBBF6BC3A476F08438C61971AF139A248821002480F42C2B9C0979AD3BC6868565CA3FCBC124A7548D53F56B51C9F8AA387B59B07638C7AA45704420B3C24642035A7884CB42F877260C29697809AA7482E3FC356D8CA061C1C443CF24C4535BDECCB02C3E3B8B1D90E5B47BD11615CAF849DA5811AA743B9BD7810C470187E81AF9BDB4D1307303F615ACE2A58E7ECB3BE260E9F7C1E10EB3A84F207D2E75A30C7C741EA45FB04A9473C1425F80A9186A7F2625EA6ABB4AAEA3BB50602DF23ACF8E452CC01A909EC9034ACB47B969D904213F0A79EDB7766D0290005C954A1DA0155F7318BE854FDB038D019C1904B714F0514AC331C3813BD703B45076365BE4B47EC510A9F585907BC0F461A6BEFE13A2667593E12134A86AC139777A50CCDAD16B6891A0871621B387684B5226368400164B29109328F672CADADF7648377CD11C9232094165BB1CF12F694F940C3CD784C84925BA74C8A49DC27CDA4C553C85334A860A8A55D8A75969977AD1F505B9B20CEECEB24A262C707843310F39434390EA5315A67491F0592BF722A1C2658C8A720991B26561E14B178C3A1028003CAB8B69F60828F47B876D43D3F193C3820804068A5CAE76DC3F27F5F1323E6A2797B9A13C86713A83BA9C161899CF295CFB4A4AA443F32D16B72616A0DB4D3849FC41A7A6BA87F4AF757A0AB1956518F0C1D832AF7B7282D8BD81A2237107EE60D81E28EB64D6A153AE0EAA1A25797C2729B5A50627688A4CB3E37CC0FEF22162DDBD848E5AA641731F8E60B4B79C93F\nencap_coins = 187361C0147168EFC571FC7C181BB39144A8F7EA3E878D28024D19BA42135BD8\nct = 2346F9715D35D5D500C8F5966CC4241BB74BA3CBC5BA3B922C36A1A68CB93E5F62421110AE7C7FACC663E787EFF1426CC170BA7", + "3FF934F912E65779FB4D2CB12264106FD64821BCCAD40875A69EFB650EEAECA8797A629B30E6DE6437EFC8D9CD3A54BD9F0CDCDE0D3BE33A3C41899B36E077C7849D53803124B6973FF3CC79095BF3C27B7875971F2B6A6FA581532F540976A34B625EFE3704F6EF04258A189365F23A4B4B710F1242E4E0AC44ACAE9F454158F7FBAA16B2AEAAF51D014524D870B8BCD788BDE7CA8004F585D7BD897D79408498C6582CA3E3CC76479ADD4E3186DB2772379FD927BC2D08F4E4AC595D22FC2F840404D85513E1EEE05C42885CA70B04EFE791F0DA09F4F6032BF8983E8C9179A0E1A085CEA8F95BD82BF1DE23C9B46BC3EC92500AEB4F4118F16E7BB11944DBDDDDFDBB0DEBE077EE505A90AA1BC0A240493D49D1668CCF1A14B870D6859554FB0A047632A94C0813B19BEC4EC5153CD8D1B307A024943ED80DC7E6703028F879B5676A20C2AB590D997759B9052AA2FFE749672760B54A0E276630829B3A6D78D85B25CD8D1765906660A80D90B548D6397948D6A717060CA9B8301C7751FC7115CEA08B5FABDE7045FAEBCB409344E0B7E5463D1F5E0BB722AB73C584F605197040A1963C25DD723AD1F5F9ED36A893AB426E7472FF5566D7A7CBADB495E01B28341671B5C3B84D87A024F3763CBAA8E043307EB2707762986A0C54FDE5252B67015B24A31E8197064E83440019728DE6EAA27A348FD7BA0B4B0BCEC5302793FB961DC11DEA0FCC23C84BE5BDA50AD6411C8F440AC15874F3016E601884605815E3B3ABBCCF372C3D68C8FE461684EE3AABEA909E5E92DCB39CD202E7D48FC28868D6058EDB4B0E55AA7BAC47CD1EAA38ABAB0A2F103A9271ABC739DAD188F2EC030B015897A1267D8D31666BA0908636BC6CA5D55E7660DBDE81E02986A675DF9CFF4336F3BBD02B9902079BAA0D59B7F1B6738992CB5481510B97B7B26A052A4817E36BF56C802D23FE457BCDBD5E9CEDD151FC6759A8C794F35E33D41EE1F4B6D783768B1D48C95DC8D9AD86713F5A64DC191B4CBF0578080B9E300F8EF7EF1EB72B8C0EFB256DD249434DFB46A72BFC82DA2563A46E61F158F3032CDC49B2B96D8CDACC55AF3004F23F587F9EF8470D0251B9AC3B7453FB8419BEA5771B6ACA2025BDC7DBD16682E3A0862445D79F149070E9DA548902B58D234B07DA0D12C42ECCF56DE3701566D063583D5FCCF3E88EA045A353461A21008D5E7712B6733DF7D75DB2C87CD5A8D9885178E8C7373B345C8DA3B4840E09A578338DDB25519C5E7D17C9C58504983BE22F0E569D28F195E746AD1B52896A9CAABDAA218EB727420CF90A5BDBCD0F24750BE25F6669282A70D64F9FC9BAD4E0DBC3572824C47F0C4AFF6BB86D936EEBB0EB7DBCC9D795B8469A2D0D7E55C108AB0D99068BD6BAB8E4A1BA62EA5EC89F56B7ED9A6425DA741EE74523A32A3B7A168E81D6CE1632B89C2D2B1269014ECB4\nss = ECFA00644757C95E8A66C87A4D1FE52EBB7592234EBC5CFE51941D8C12118095\n\ncount = 7\nkeypair_coins = D86634ECF96CC2603761E284C0E36734CEDEC64E7FF486469E38539C71141C5A0472C3D61E4CAE91B22D2F5A316794C723FBCF7546DB47A42A15F1450CA3282D\npk = 89C28969078E11664CA1554ECA81B9542BAE2EA8CC12B44E81B3354818141AF0B494543D4674160A086F7E8755A87258E7E6A6AEB96955286924B42636E04583F74184133D8ACB9067925F4969642F274085F70FC12361FF96C3130B143E23797F2A3A6CC757C97454CC8AA5D9C062F9254F4CC7335B44CB66DC712B4677C290CCBBA08CFC3948C535BE29F44736A23B4C8CCB3978404E419A08A67AA555BECB48BCC161CBC5492B55E3498E74BB515C28A7A44A3AFA0148EC3411D82A1AE103513074A13938A5FC17DFABAD006D90455B4B5E45079D7BBE956C7A18A8BEC9A64C1DB72544CB00C6997D545AC7E3BC5C6565885536AF486417E728CC99C78CFA12A1F7697F1AD26EFEB7262800AC4E0121E766AA9BF0A74AE635074C62FB6CA79975761419B12A985ED7A2C8788C9020462FB5764C087681BE1595A5EA4EE7234AA2D22F4119B559A536E0DA0E8D0B2E493C2B5BD576459994ACD684A81A0955684818E1B88E348446A22C9143A4EEFC7D8EC678624763D4548FE2451F078582C93C986B0417E1AABABDD76DC0532E252B59E47370E81951EF75AD48C223316A40237152E3508EC164C7375594F73B5F0483C560F52F250AAEF28431E9D1B2B9DC650D2371BBB7C8360C72369755BD8696FC5C83FCA76A7FC02EFF54CA60579CAEF6341385AEEE34C7182445BFDB549BC59F70B76368DA88D47386F75968ABA093E8F42DD3C7CD68C8028A90CB0C93CB44D42EF9D15E6CA978ED5B88914C4E20768028F2C927A33433D33C5E6A45A6C5AE8C252A83E68EC121347B025865F26912B89A9DA7472B75B9ABA75581852B97D27EA7C9C5C7E8BEBC0094C01947F43A2C6501C97E43231310167ECCBC4C3A2022839584A12AD5B51B4CD308C94302E58C70EFF7B24FAA051CF548B5A73AB4254179EAA038EC95D4D4182D2971084CB33A6CA1106076DFA76EC0C4B3BB5C7266A481001CAD07D12051A77E31603BF47C62DBF959C89774587111DB1B038AE834E0A08C27F2B772A967179A9BADA1AC12BCB8FD3B06CA44B3F11A6762AB51A9A0B67FB83DEF8C9A712A1469B719F2557E5A03C6BAC808D0E0AA304955A3E961618920D0BC2347C74AD6725A9A855D1D8456D2C26ADDD849E59B7CE7C85765064ED6D63039E368E9F18D4FA11E16F8CC88BB3FFB40B4C6269996DA8A6B5586365292B5B1C78BF4161C171E2FC7A6A8293A96D61D683275EAFCADFED74473E30A1026809076A1025398B745BE723A78E008C85B558D2B76392F5015D1024C171C0FC6C7C0C0E631BEF57166E660269231C3216FB08B6CFF0A420AA413EC1285B7B5AE9FBB15F9FA6B8AF29EC061996A7612DE524C7E0724766BB51E1264AB50C3A095815645B1D1021060B90C96555E8A001044D16CFFD7719858065EFCA6C2654EA25506F0541FAE242DBB154E420C0DD4E13A79053B431B7C00768BF0F781810A0832A2B814C5517AA1A0949523E12AA35893912256A7370BCD9FAA30788B631B87731CC5C831A26E8F48AD7CF9C935301AA8CB006AC59FD2EA5BDC1736B2A5523FF3C4D8F429DC037292E863A087BB29CC2732BA30BF11490DBB1F3ADB3448D6110A774B25D242602C250999CE69D1B32AD3702602E6D28FDACDBD2A03546764C4FC1C62C0EFB3462C7C88AB8D94E20B\nsk = 0FCBAC2FD83A9EEACE0215C784E20260F0991B225897E94ECF93368B79565B478731537EAC74550CD599D5268E03A25CF327606686AB8864677907A3C3555018B478FBE125498652D5259A31C2B4649C14C89BBC5758A9B53C64E95BC9CE30C306372D431CBC642C0D60E25136C3919F3BB48B280B9D5CA0B21BB4E1510AC49AABDF02C9FD66420B475D0731918A4A5D3C7A963A468FB7A86C128988EC36C34F475F2B87791F5604863BA6DCA297EE29238BA79EEEC5096E9B336CF0B24DBCC9FEB8BFD77AC888554472D7732E7492C231302A073680C684870B86A05592355BAF2620B51DDC7B17C9328D7A74DA6367D9EC2B87E9221C297B5398CFB55C10E8A68323AABBED806C2272C192FB180E7A5B958A02DCA5C55654A43C74216B192522BC2A2DC05BF865062CF56839831EBB837A3ED8C7368C15933730667B7463AB7026848BC9BA14616B2E88E17ACA4109B5DB56510B408465523307619FCA752919B947EB40E5E8C19A7B4A9099734D648DAAC8C81C1C628C895400E245DF8A324899273EFB441B564305EC48AB305C69D37E846AC9B77A2917915E82286DDB397936769BE7E37FA7F27A003090C7F2B9B395A41370B5A38C07C2D8314627267FA06BFC416D8AC1155DF645C6150BEE70C4CAD8C6A5C564BA2571C9BC9BFAF0C2D12578C8198D49E1414CBA5749D712556A537A4131F3F085F9047735482E23342B218101AD30122113060CCA4196F778C77CAD2EE58B6F23071A85B79C1215F0A7C8745ABCDB768C3C26042D09A9A0355A5C45745D1ACF52C205B949ACF581AB75CAC74F2364406A43A74269645166FE167642900D169A1E84929DA4CB361E80C42DC702A79364F1D664528B6CEC667BF230078AF06A0B48466DC90B34EA7101512E37D8BA3A351D7023AEE652351AE514B8D217FAF09A07654B0CBA1850041D7206CECB05C8F6703F762C97DBF82255DAAFCC3608E8891E3AD8B3D4E18DBCF6A1C2E74CDEB87D15236D70943DAA722481692890A548D7C69A14FCC1155202CA4941C3900B57A452F281091A94781C64A9583C8D302C21484CC6159B88A931AEDC4291E097982EEB0528C152A43B97DEA2A0B36922FC60C226B61068C792F377B9F655940D73702D41BC515086E8F9266C53A4C15A35907CB2FC2A2F19BC5F974034677A33B648322CC9BFCC6B947B5346DF2044249623E53430895295327C9B35F59ECD4A9521F4B93A4C031A624C12F40BA17B9F36908E462B928AD452EC74B84F9B5C1C69660038C85D6743F8A5A65B3787B5640D683B7A45009A1EFCB5E50A35244C9431F21F1B6826311673832CCBC1794FEA917268F5323726698F67BDB41BCC012218929649C972149393845DCBAC7FB58582964405D4ADEB814037A39E512C3FCF72A22AB70E21FBA3822B493DF9983866412F0439E1A613914042C982739031949B2780D8133E13E632FC4281DE567A333C5D8AD458B848CCD65BC87A8B6B29134556A6780EB7B02E4437AE69C09E304210D5CCE3CA3DFEF261A809BC5DC44787A20AFFF49F3E0156E7B428AE1CBD3292C9D818844D4767342708E4016EB9BB0F7099876C26729F443E7CB3B9666441DBA01C8397953F586E3DA45789C28969078E11664CA1554ECA81B9542BAE2EA8CC12B44E81B3354818141AF0B494543D4674160A086F7E8755A87258E7E6A6AEB96955286924B42636E04583F74184133D8ACB9067925F4969642F274085F70FC12361FF96C3130B143E23797F2A3A6CC757C97454CC8AA5D9C062F9254F4CC7335B44CB66DC712B4677C290CCBBA08CFC3948C535BE29F44736A23B4C8CCB3978404E419A08A67AA555BECB48BCC161CBC5492B55E3498E74BB515C28A7A44A3AFA0148EC3411D82A1AE103513074A13938A5FC17DFABAD006D90455B4B5E45079D7BBE956C7A18A8BEC9A64C1DB72544CB00C6997D545AC7E3BC5C6565885536AF486417E728CC99C78CFA12A1F7697F1AD26EFEB7262800AC4E0121E766AA9BF0A74AE635074C62FB6CA79975761419B12A985ED7A2C8788C9020462FB5764C087681BE1595A5EA4EE7234AA2D22F4119B559A536E0DA0E8D0B2E493C2B5BD576459994ACD684A81A0955684818E1B88E348446A22C9143A4EEFC7D8EC678624763D4548FE2451F078582C93C986B0417E1AABABDD76DC0532E252B59E47370E81951EF75AD48C223316A40237152E3508EC164C7375594F73B5F0483C560F52F250AAEF28431E9D1B2B9DC650D2371BBB7C8360C72369755BD8696FC5C83FCA76A7FC02EFF54CA60579CAEF6341385AEEE34C7182445BFDB549BC59F70B76368DA88D47386F75968ABA093E8F42DD3C7CD68C8028A90CB0C93CB44D42EF9D15E6CA978ED5B88914C4E20768028F2C927A33433D33C5E6A45A6C5AE8C252A83E68EC121347B025865F26912B89A9DA7472B75B9ABA75581852B97D27EA7C9C5C7E8BEBC0094C01", + "947F43A2C6501C97E43231310167ECCBC4C3A2022839584A12AD5B51B4CD308C94302E58C70EFF7B24FAA051CF548B5A73AB4254179EAA038EC95D4D4182D2971084CB33A6CA1106076DFA76EC0C4B3BB5C7266A481001CAD07D12051A77E31603BF47C62DBF959C89774587111DB1B038AE834E0A08C27F2B772A967179A9BADA1AC12BCB8FD3B06CA44B3F11A6762AB51A9A0B67FB83DEF8C9A712A1469B719F2557E5A03C6BAC808D0E0AA304955A3E961618920D0BC2347C74AD6725A9A855D1D8456D2C26ADDD849E59B7CE7C85765064ED6D63039E368E9F18D4FA11E16F8CC88BB3FFB40B4C6269996DA8A6B5586365292B5B1C78BF4161C171E2FC7A6A8293A96D61D683275EAFCADFED74473E30A1026809076A1025398B745BE723A78E008C85B558D2B76392F5015D1024C171C0FC6C7C0C0E631BEF57166E660269231C3216FB08B6CFF0A420AA413EC1285B7B5AE9FBB15F9FA6B8AF29EC061996A7612DE524C7E0724766BB51E1264AB50C3A095815645B1D1021060B90C96555E8A001044D16CFFD7719858065EFCA6C2654EA25506F0541FAE242DBB154E420C0DD4E13A79053B431B7C00768BF0F781810A0832A2B814C5517AA1A0949523E12AA35893912256A7370BCD9FAA30788B631B87731CC5C831A26E8F48AD7CF9C935301AA8CB006AC59FD2EA5BDC1736B2A5523FF3C4D8F429DC037292E863A087BB29CC2732BA30BF11490DBB1F3ADB3448D6110A774B25D242602C250999CE69D1B32AD3702602E6D28FDACDBD2A03546764C4FC1C62C0EFB3462C7C88AB8D94E20B2B757AC0425152BEF72ED852AB1EB44F4359499407BB6A020FF843A31657C5FE0472C3D61E4CAE91B22D2F5A316794C723FBCF7546DB47A42A15F1450CA3282D\nencap_coins = 295F219917D44B474DE067472CC832406BCD18447DF12F87BD117662CB0F2E77\nct = CD361223CF480B80ACE3632A15063FA98F6D61D4F65860C7E14714B5A7F28DE5C091CB130F239111311101223FB81D89AA7C23798E0392177DED4AD50C0E71121FCD0C0A36C0DA37EA2C7E87BAC9E0F934673C305A91D4D9E857D57773E6D579BDD3BC5DBCC7ECF6AAD3CFE9B33881433C7C32BA76AD88007A9C6FCA5B2AA315CED1397937742B2FCD39B0EC57B7A5CEB7949B248214C555803ABA844D22C1E075C7B425CA65D7B9270D0A53D249AE6AC4709347E4F62D13F3CC8BACD7DA4CC2C730308CA582ADB17A6363DB63D5BC66AF66AFDA1ADDC227F3F0F396AEA99D022CE942ADA36ADF7E4A65AEE1CC7455BD70C3A89558FD9CD15F08D5BA7295194CA218049E261EA8AE277B87A6A1EF3A30F8B56AB9350FA78230E04BD446775811555001D2D3743AF7EA5061117B3B30B281BAC42C4D88B231EAFAEA4F97E8932347D55DE342A23F31660F4C08D755AAEC25B6BF57B2AE28B2E0610FAD7A6E12A4F591A17BF302F10EE277A482DE6338984BF7D9433159E29AB5BB6D79FA4359BE043E7CF607E3D1149D43CC3511B333A7E8204F58BF1961604F0194027FE6F29B582020A80F8127EE4C49082D822359BCC108B9ED03C3A59AD06AF9FECE8771BA321505CF7E5A25565CD823DD8F2AA583F45BDA76BAE8276758E3E5EFDCFF3B7B929D71BF1D4041BD655B25D7FAE7266F3755157172FB60642E02A70EB28A226C6D9E0CED87EAAF37ED78721FBCD57FEFE2CFED54B41CEF16732AC20845905902A5BD18825250D53C1B210F1CFC4DEA5E454EB0D0A2B34506C4FAFE78E38705C959A6F693421C57D01ED31649119CA21B5362BB90446462B160B0EC5A61D2D7EDF69277D3E1DFAE1476DF3EC51143249377E95C6D40D3FC3295724475A791C4BDB1D9FC766597B1C7F2CAD42910684B54390ADC84851DB9A7E8D1A3433C85A9D452CF0BD3C8EF679E131D6E9DD82A6BBF6AD5EC44B5E001BD2BA3BC12DF443ED32B47EE0BAA6EE9EECFE7DD52EC7B996585E9AD17D2D7F5D9FDF5B77A5D552A3B820C4EF1B326FBB225F67BA5D20F80228A24B88D5B690EEBB1E90AD53B4ED3D010443F6923ECBC1DFEF56480AE53EC0454B7C036299D2460390A5EB17D53707C2A909C94C88D475FC8977D3B92C91E0E698C35FBE479FA35C0603F25354EDEEC851E69C697B9F262AC06F6C584CCA8AD96102DFDD789F76AA00E25CE771400C8A32F0B981FAC3B81F5D4DA1C13D9D61C1421D6FB7D7786EFF8F2C4505103966B98ED2C5AC25FAB0A9BC507C5104890375360B3D75C86565E0C0E6C0AE5ACC984B675ACA97E7A9B77F547EE179C511A9F49BEF615D7E2D1B00A846906CCC062B183EE2BDA2202FB084CFC89AD84B2DEB8681BBBEE3E1231105A77DBCEE19E3947BCA5E9515BBADCD582483F96FFBF4D3AD87DC47E1CC5E8D14811F158A41630443951819BA864479F2D2104FD28B8C478D954478269B47949901709F1C58C59D5B540B9D2A1F44F92CDF810C5D5AB847E9754FCC89821DB578CAF9F75C2C93044\nss = B4AEB74357E6F7D976F210BB04FEEA974A4A56EDC42C733DC1B456F215CC3AA2\n\ncount = 8\nkeypair_coins = 0610678FF4DC3128E1619F915DC192C220F8FAD94DA1943B90AAEC401683A49281B292427D57FEEB160F9347348632E1CD340960F6E6EA2422D194A0109AF1DF\npk = 764B51D1DABF923518DE898C5E7CB5E0066FD69522F5889DC05C41A472C983583333132052A1C93A464120B325764B8665CA42555B98D8D6A93C88A0A383AB51280F52873F2BE26E12C131677027C616711D478342CB424B0463C88161ED84BF6E869ABE9CB915D13534D2756DD72343359E9911624DC7C6E828B19D6CB178C43A5CEB9360D2939DF2744ACCB4DFE8AA5ECA35BF87C6BA265FB4AB7C4888516EC91E52C4030F5453E6BC9103B9C19CD83E69048272855B11B8AF3EDC09B04AB31179BEE59ABC76726FBE9612D271B7010844F62535F2F30D8417C35F17C1619B055FAB6A0F5458568C753310299FCB335A7697E7CBC9B9EB1B14AC2D0DDB765B266B6D68BDB5B0236895328540B20F91BBD2910625E674B33A4F8B6C1B4F66C4130C2E973AB72D809282CA63EDAB71268C02A9D020BFC805410AAE2DD4B699448A56049D1E9A58C5FC2ABE159DEC69C5027099A3B57D3A2560CE24A6F5017D32E00F3078B792309384421878CCA555B7065D57537C804E10BAC052788769B7C1121A78911A153FB56A365A2F97B070D7B61724D0C4D14C295D78BE57A8AADB873D3AF6B74D020B8654CF48543DE8CA22371A48DED585B7073ECEE0C44EEC27C85B5A68F6B454B0CB10692039CC68EC2C2BF892804520C71BE5B7BADB807B4059A3D87D32548BA3E4B698CA150D784A8C2C35A67A8C92C68AC0037888B65A4C9800BA7A1EC050627AF648FB61C87CC55B8243545AA514CBC550A8804C8598CD35786EB8C6B06077A1E2D4344E4A6BAA789C305B6326E0BBD4402DBE26CEC08A7C1A19457BC2677F15B984A74FBC52CDCE48618D50C47400011B392908AC2CF08A579783A80FB2990CEA90EEE90B7DD81E6CC9C961372D8C720D7EB223D5A6A16D4571C1A93213B32289934F7B30A63527C6399920086940B7696503E623E63A050F4B69810B6E6F6729E5782B572221F596A09A1879BBB46A62A955043A30A2AA3E62E02CE1AB6F3D03693A8CB653E361D8783FFA37274AE06A3F2292F1A6557182006E493FF2653437A64DBEA950BF6A8CA8836407FB489D42A6F6257770310F28715BC6411C81486CEF3CB9AB500558F070F4A15817F8C177D63CAFB176CAF3B2B1CB7B7254C18FE15111FCAB9E9A9682F41C9FD247EC532CCEF514860A3FED330255323DAFE46EED198041D732538C9424D43FE2F5481650470F08906791B2BFE65A445BB26AC87D9BD04AA648A54DC13A137B60E5C2779FE4B5A866620DC2829D42384AEA9AB1552FCA920F8929B7BAA059DEA53E6A5B3E492A6E45B5AE11F6AD24D035D4246A0CD53436687A0204A1DE29AAD2C8B53AD4B938A57C2E29555219544FF64115CBA2668B54C6EA8779146980B58A2E669124A81ED4420C87B0601DE23E3CCBA915FAAD0C2B47EF6238DBA9449274C64CCCCD85E91712470E8F9A2866720059A8501C7762C0883CF9827BFD62BDC0882EE03B457BE2B2794B8BECF74EC0DA4684282200A294C13C8A9FF376C1187911121BDD886F27514846F740B72AAD5544CBD97A7E208635480ACDDF404FC067C82A45B5C97829F06ABCA5201429E9A516F66E65D07075CBC0C60C2A9734BAADD68F421617FBF9515B569FD08BF3AEF948095DE1AFE74BBC3BDBB45FD8F92EDDBF0C682C81A98F930F6165\nsk = A5C7981510819EA27D27A945A0F6619D730DD196B6F3A158A4C48ACFB82D1C348540160B0CC665C43C4C0E4567B46867CED06D2CF228D0B64706227593DB7392395B7EA95360105C1BB05472787430654AA03B6E894C2ADD2A0467EA51B9486F3DF18274C0A2079459DF3B9AEAB15D203B466EA426911572251B0C8FB51A31AA142BDC4142E393D3C527C841A03F796E0CF7CC71DACB47456FDD386527BCCF6E43013EEB755924A22E3A55F74A8974B38E06908349FB3DA5887D1A041C8ACC6F07A75198462353942267D7600D5243095BB012D2A70BE0A3FB2BB599832F8AA68652846BA501BAB3AA574AD08BC991C8B86717B87A45041657D0264F35F0C2B70324EAC43D591202CFDB9A7D357489F70F86D6308D3382CF9139106CB28D947AE3BC389EF18B728C1568436B3EF80644009A80F01EF550C794011E44F2812EF507BD55820A872B90E797626B8EF2D94012B4CF639BC5C8A7B87306753F93CB12E46A66C4B2053C037B87C51436CC83B884F7634A6950C419684AF3B78D41006467105F753194144539DF45AC7FA46E71815F53D2304B474A434B02517B083B058AED078DCF86746313BD8108148EA34658613560CA722A126DDA147AF8C5733705BC8343331BACC5B5B80E424CCF6114955056329A68A2A6403D65197C21DA02A390C41EF713A814A798A434145B9E3A5C31A9614CDAC8A8BCAB6B5274490F5C45B2A307F492C28FF40EE39C2068A5826E8466542559E9409FF11B463E9A4EBA0A2172EC8EA6332D3A5BB66531B670C52CC2F8B651B513E60A9E64795369E0C2CF56A9921669299B6B5399537E112AC358112810ABC6945BDE69AADA92552A10219A630E26E4AC7D9B5C7469A960AC64A6D127971296C53A15DF4C847D061E69CC030B9CABC6E58903C5ADC88882CAC147F2888263ECB6AE97A9B2AA245F131E2E2939F5C8BB8FFC012CB578B9BABF90DB062502B1923CA88B35C424FC6524128FD1D7B5CA719F5A9A538A51A97ABABCE07B006EB701AD8490B74462F93648FC39A2004DB6E951B4C8219CE49395891594353B92B6B496D09376FB28711D87221851A5FDAB80CC52A6352C062F06C80F891DA2A07573B42BF0F6CD5D6B63FD4B1C5BF2572FC8460385A642E6290FB79A9B1CB18CBCB34BD87F7EB595F0598C67709D72011FBDD07A0EB6616A88B8E33571BFA7597BE4CBD6976B93E32C2C088DE3AB59DCF2234E553A5B2AB143C46DF13211E816AED6D02BF6C13FA7F8B282237F249AAEDBD3A6FE8771014C1B811C05FE86102C0B0E7E9B961C1000C82408D8A8AA381552920803418C49E1662C7ED8C3D35763C510585A78664EA0012A8A02F34B2BD7E96EE5C298DC296537C985577CAC3E310568353EC2CA8EEAB4BB1EE2393D5B3CDD25305B148FD8AB11F60B5871E9C9359A46A5DA003E98", + "B61D82C51CD9262764301C86268DB87FA6273F9FA3C35B1C1FD822AAF2F74EDF73AB5AF9175070BDD7D5CC7600A516726C3E49348D138D19836391A54954AC4A0C029B1441C37965422019C2CA49CFCA81317A211E22EA2297B865DA163A0AE2A9DC25701E71847A05754CB733620A824F090D591C51C345420E226B8F3B846FD356E78B87764B51D1DABF923518DE898C5E7CB5E0066FD69522F5889DC05C41A472C983583333132052A1C93A464120B325764B8665CA42555B98D8D6A93C88A0A383AB51280F52873F2BE26E12C131677027C616711D478342CB424B0463C88161ED84BF6E869ABE9CB915D13534D2756DD72343359E9911624DC7C6E828B19D6CB178C43A5CEB9360D2939DF2744ACCB4DFE8AA5ECA35BF87C6BA265FB4AB7C4888516EC91E52C4030F5453E6BC9103B9C19CD83E69048272855B11B8AF3EDC09B04AB31179BEE59ABC76726FBE9612D271B7010844F62535F2F30D8417C35F17C1619B055FAB6A0F5458568C753310299FCB335A7697E7CBC9B9EB1B14AC2D0DDB765B266B6D68BDB5B0236895328540B20F91BBD2910625E674B33A4F8B6C1B4F66C4130C2E973AB72D809282CA63EDAB71268C02A9D020BFC805410AAE2DD4B699448A56049D1E9A58C5FC2ABE159DEC69C5027099A3B57D3A2560CE24A6F5017D32E00F3078B792309384421878CCA555B7065D57537C804E10BAC052788769B7C1121A78911A153FB56A365A2F97B070D7B61724D0C4D14C295D78BE57A8AADB873D3AF6B74D020B8654CF48543DE8CA22371A48DED585B7073ECEE0C44EEC27C85B5A68F6B454B0CB10692039CC68EC2C2BF892804520C71BE5B7BADB807B4059A3D87D32548BA3E4B698CA150D784A8C2C35A67A8C92C68AC0037888B65A4C9800BA7A1EC050627AF648FB61C87CC55B8243545AA514CBC550A8804C8598CD35786EB8C6B06077A1E2D4344E4A6BAA789C305B6326E0BBD4402DBE26CEC08A7C1A19457BC2677F15B984A74FBC52CDCE48618D50C47400011B392908AC2CF08A579783A80FB2990CEA90EEE90B7DD81E6CC9C961372D8C720D7EB223D5A6A16D4571C1A93213B32289934F7B30A63527C6399920086940B7696503E623E63A050F4B69810B6E6F6729E5782B572221F596A09A1879BBB46A62A955043A30A2AA3E62E02CE1AB6F3D03693A8CB653E361D8783FFA37274AE06A3F2292F1A6557182006E493FF2653437A64DBEA950BF6A8CA8836407FB489D42A6F6257770310F28715BC6411C81486CEF3CB9AB500558F070F4A15817F8C177D63CAFB176CAF3B2B1CB7B7254C18FE15111FCAB9E9A9682F41C9FD247EC532CCEF514860A3FED330255323DAFE46EED198041D732538C9424D43FE2F5481650470F08906791B2BFE65A445BB26AC87D9BD04AA648A54DC13A137B60E5C2779FE4B5A866620DC2829D42384AEA9AB1552FCA920F8929B7BAA059DEA53E6A5B3E492A6E45B5AE11F6AD24D035D4246A0CD53436687A0204A1DE29AAD2C8B53AD4B938A57C2E29555219544FF64115CBA2668B54C6EA8779146980B58A2E669124A81ED4420C87B0601DE23E3CCBA915FAAD0C2B47EF6238DBA9449274C64CCCCD85E91712470E8F9A2866720059A8501C7762C0883CF9827BFD62BDC0882EE03B457BE2B2794B8BECF74EC0DA4684282200A294C13C8A9FF376C1187911121BDD886F27514846F740B72AAD5544CBD97A7E208635480ACDDF404FC067C82A45B5C97829F06ABCA5201429E9A516F66E65D07075CBC0C60C2A9734BAADD68F421617FBF9515B569FD08BF3AEF948095DE1AFE74BBC3BDBB45FD8F92EDDBF0C682C81A98F930F616553B9D62E64F9069D9FB94EA2C0806459B201531F4FDDD708D162981CC1FB375781B292427D57FEEB160F9347348632E1CD340960F6E6EA2422D194A0109AF1DF\nencap_coins = 281481109453C6238EB72D8995D5A09BAEB0B830E40FB09ED20E37BDE4826DDB\nct = E49ACD43305211CB4319D02ACE5A3D03FAD14ADE9E27EBCA014597DB6D17AB0E8A603600CF0E5245BCAD4CB57CD2B7B9750A756369D2887D77125F165E0C71BBB0F35511D7A5BD0565A3C0D71D283BDF6E57E7248F0C4CBD03884954425BC0473CB45163E4A9A4BA1A1AAB654672C1C556824B090C5E89528BCF0D6A606A1E0F7E5B7674657AB128715FAE0AD6A3DC10D94F866571F28A57691CC900FE1083B01582093F269EBC3345030ED88561E8B1E5CDA815AB307755458CD8A6EF9446AE9BA761EC8253445A2540E539B84BBF4F0D962454C3F9FD2D97773591B6482858AEF71F5D71065406D41744C247CF4E5A19AAD5E8AC80A19E5E8033B434996BA1BF0A8E75CEFD4CFB884C45FE275DD09C9D96CBF86CC3B6220B709C5D31B1F426AAD2C3DA7BB1F6319E822A490BC7A0608F2BC38745DAC09ABBF8D1B9F363E3353CDCB1C74D072AFE7E0D3F23194694C98D769AEBD029D9080CAED6EE045174713B665FA6D10F04208A2C49023A37363E954C7A90DCEFA83CABA4E233F71EE004B1B7CA55BE16EFB59D39B4E48390BC8949962E2C37D5E383C105E1F79D93298A3DBA28A922E10441F656AFD8AFE80E1D3028EF1A9BFA9F6169CF19D1B6F0FA1CB3AFE4CBF3A930C08C85D1A50B23B679CFD5222E809BB937C23D768620CB0A8EA2A75CB378F9576A3265A733EC360A63C7CD481DC0F151549B22E9C21FE8B383F2CCD2E37A6E9B71C7445A196F322A28C5E432F14B14982AA0632E627C5E778C7E5CDDC3BF83AA1C5B0959327C5B4E527C85CD5470369B184CC1D33D7BC3B59FC2C7516404A3165803FE658EADFC1A3547C961C124138ED157F2E5118D991BDA8C35C2A735CE212C603DF22E05D30FDAB2D7BB559F088DF8F92CF9394ABF4332DAEBA077C3B58D2B401E488CDB07863E27EF5E8798F5515059A9604995FACE2F9DA4C2F9ED84D9A532077B9E0F5FBBCD28D0B5B00ACE9596BE1DA968B67703A0D8E6FDDB5A0CEBE42E7FEC430D70F01D6408B84EDEFB54344CFCB3A6905621679C4C1E5947AD9CA3640B78261168BF02A5282DD6094A9BF94526745F749507822943B3998A0CD378345B52D36D5A4FBD89E14008FD204FA3A5EC84E10408C593E34FFBD3FC2CB8D21BE723AFE04735A202423C1025B584CC6CC81F069F7F0BAC3A1150F13BFFE06F89AE9AE2C1139B21F2A6BCF5EEA2BB820DA5BDA266BEAC3BA69A56607685B63FCD6D3AFFF4F4608B834E478286B8D08FB1D78C6C3744D67373B17948921EFBB0A8EE297288063E80FB6B1D32FD274AD1B1915DBB8CDC5624ED6229F7382E0DE3A67A63176147472340E11049E22DA22C3071F66FAC1BAE0E9A4DF79392E448F0E82AD3EAEEC587E06993AB6DA74E42552A3544026E517E6AE248851473D0A84DD2A84FB025C40FF7DCF74942F821FEFE3999D1B19A8EAA46B3DB2299EA02A444134B4A7247E037D9D4BBDB4DD96DE48B1608A745C6AF4AC41D649CF18458588D053D26AC29F6763EE887B0227A26084EBDD1BB34784FA460\nss = 1C14CF303C1330C50786FE731325B1D31D7D11E39C1DC9EC58CB3C9B5D290A38\n\ncount = 9\nkeypair_coins = D322D56D8EF067BA1F24C92492B9C56DF3A6EF54A304ADC1B69913766A1CE69705224FCA29659D6C7A880A5F20D5FE02DC4491F2F095DCF2DDECBF105014C5A8\npk = 5A1278BF11B37FBAB1DB212359473012F3B545301DDC833C69A75AFE16744557B5E28BC0EE895DA16C2C5DD34FE6783949D555E580C1BE7994BB008DAF27A47F554932B87222E82EC670490CA5139FF49D5ED896218825056A8639B31D3AC8550356A408A01404C6AA9C2B7284E7C7C27036256B7902445DDE00630D81930F4CCC518B9EFD8AB24FC16A365B8068C90F7E09BBD23C2A6AB12792D245551A9894F704042501C8FC49EEAA0132701E29A3C97834530A7C61F1B8440822CD1BB6B11DCA2A5951B4DEB0B1268C2F5AA8CF76A6BD0BE3013A37CA1A903AC634405ECB3714BC54610BAA63BACF0A263D8CB018B03B0A286083998A7E8B2A573E570179712130A19F9EBC2337D43926F9C96460996CC03199D81A0E19259DA696FECCA7906931A787A5C264826099A3E03339295B587E7A4EFEC6A11AAAAB057AA8689473F1F211C6D85499C46746BB00BA687A17877E6650C678D13861337FAAA7045A16B8EB7173E7C08B6394B5F2B99EA3083BA175C55D350FD61B73AA790CA6F479FD4B01282B6BAEFA00A1946F6DFB855CE7BD50389D42856823301E01A228AC754CB65A0E323A0943B75741CB498CC499C8649B6BF87E991507194983AAD1B57994B7D79BBCF2EB3B5F8734CCF3CEA2662E95D486989144AEA22C94C363571AC7DCD81F577645CF19B313F849B422AFED963CDB701395020C2D18601A40A42429896AA9B0B1C10C4876928AEAC59862414E143722A0B94746ABD157343D15BB9FE500763B18C61B184407449B1B5BA8FB1554E4BB58AB99FAAAC9CDC3B698E64179B089B786204BF95EDA86474EE799440478348989C91C3462446724340CD2376C682907EDB58C85A4CE3EF46CC5D0CA345590AB14844B224735DC05E0E66EDE94258F395FE867AB9D8C1B0FA80743002A15DA197614295DC358F40758C9CC05E45BBC659B93ED611AA58845D94ACC7AA75DEBA56D4D83C640C252975BC3165254C92957B78C9583B370AD785F2C16CD5CB9913839939C7293E6B956E23CC5D14CB3AB2A2E94F179BB076355157920085236F60B84449D43AC89C2B46DAFA6B784438F3510BFC48357A5681043BA7428583BB5E912B08786562579DF58A41BDB82114344B3EA3574B997F8564248210D4E50AB2277100B9A5423178B1F138E9D427762253CFFC3CD095CB53A776F4FE015B5168B1A9759AC4ACC77F90C69B307192B7B866753872A69813B1BCAAB5CBB8126D8998E78D99F5A527992B89495A28E3FA83E75337CA2B896172AC244AB7E30761C8E3A00890046E5F599EEAB65BF1A4CDEB5791CC10ADE7197FB5BC754233F3B10C9BA2240ADFC61C05231C36A6CF71AA752AB3C95C3756EF9373B677105D11F86E68036348BDD181F27407E344BCD297CB02BC44F077976ED588D6A846C2F839BC9BC4872617BDC17A7BAA97AF9A9322FF015956678E8D622CFB1A11ED929F29BB1F094C17F49417C09C1C443369123CAF8701199C43BFF97034EFC6999424144C9395D9063BB153C0ED82B1C5659BFB23D4CD2C758A26B6C448525060F686BB14873CBF5046B3A3033C5C8081027BF5E3C51F6FB6A1D54A77C46B0EA4299A9DA4AB03B95F9D3601F553D46800F661E2C9A7E548CA42E385CC6A0678F9E9D268FFCE02C4B465A46773432109A75\nsk = B04C33B257B199352A85B55624F1A1A42B2AB72C4810B839B2BB2F51A502CD498AA258373EB3BD43E03973D129E4FCB61DF58986809EC4EA4333659F03DC0FAB236CD4E815D3F9524E90A28A3A0AF869735B362FED9837855429700CB815C43A6E650E54D6267A832DC0385696274E1E73A12B5960A8409A4B4564DE909B797771B4839782526FD69ABF516A73F9EB8130F41CD6103A6E67C6724186D1C709D3D90141B1BC1C028E28324DE4846BCC6837FC243C54DBA144C40FCC6223FD19B8F54C11BC0982FFD366530ABAD387946E1495A3C05D9CFBB62B28778905AB7D576610A74B3DAAC9767A051B153AF7C6BF0177A4074397BE410411CB33DDCB895091990DFB85AEE15E9F288D01EC5628034A4ADB01DA09283493B", + "AFFD36D224B1EFE096289A2AFD427B82F8B04EA44319F4A16BB07BD21026F2EF550B919AD01CB3744B37103EB54E62400E03367001510776698E28B4FC367A77F1B4690CC2916E8CCF1FA55AA3495014724F1E66EF7CA8283D917B501C931274D9808A8103004176BB69783C094BBBBECD5B90EA14E7CDB9768498B22332283F6A079991988AC6A85BB591EF299BC57027B0CA9932A41C14C193467374F133BB8539C2D5164EF11B70B4A2CFCDACDF6841CD835C4F4E174BE3C26B55770ACF4137666A431D669FD5775A71749922C0B223ABE36284FC880C3AA2A41F45A4A299C647D6738585287F7A47B88EA1C6C088C6207646D99CEF5F56A2E02CD3EA85202C7725DFC99D04B2D52600F0F89366A3A83F8DC74E4A27FC58A622061A6332403AE8CBD0179149B841F5E0BA193EC237AC57A4CD5528C10545CB75E35A20C3CE63950C09A7B0810B84124F3A00C9EBB67BDA9B2AB42113E631123B4A85897160637A32EB856D55C2905F7C655D40C84E92E773056D2392D43E33C4F9256DBFC7AA0683802D04D218139F829AE362C1F48096FE47B09756C36873CADC5300CEA8094E6F8925C1B81ADE69FEE5420B7E94555286CDB596E08CAA81F758022B3A949059AE91AA9B78A825703CD53D1235800681DBC7657A777BC267637CA2954C09344110A05E2BB90A83F95990986FB559BB1282778933631701393B705A5C122EC3645C1B364367C83444D30FA438EB3A478A0BAE14270CD49556399085C566D9E6C467DCA66A3F36370693AD5F86A9932773AE5064E9BC73FF7979A5510C88198BEEA7EE2AA494EB046E4D70A3F9CA0F88B234F6918F7EB41DB97A327654836510276E0154E7A4DFA088B8ACC5F02F598D1494BFBD07C3132C5EF6C3B466606B3D93DA2E69C96744095435FCACC2D24C3016002B5C4B988877CCDB9233C490A8B121BA7821B529DE85E638168B0565D50F735D1CB54CBA91CFC1B9EFF882A643121E877C43B6147A2A8266196346859CE53340208253CA419276B884DBB3B7A30AC3DE983C75AD73995A0B62DE7563EC9A4A715BCDF376DFB6433DE691C54E660F4AAA4B184015026B6189415E66C90DD32C0B015AEE63B5D8B3CB9EA206E45AB4938BC86FC54C7598C6553C29AC34B2213B90AFD144C8B4629A560382778B28D666667CAAAD49633A8F985730318EB033374B5CBEBACC7F453CCD8E77C5A9ABC12DA1BC1733E5A1278BF11B37FBAB1DB212359473012F3B545301DDC833C69A75AFE16744557B5E28BC0EE895DA16C2C5DD34FE6783949D555E580C1BE7994BB008DAF27A47F554932B87222E82EC670490CA5139FF49D5ED896218825056A8639B31D3AC8550356A408A01404C6AA9C2B7284E7C7C27036256B7902445DDE00630D81930F4CCC518B9EFD8AB24FC16A365B8068C90F7E09BBD23C2A6AB12792D245551A9894F704042501C8FC49EEAA0132701E29A3C97834530A7C61F1B8440822CD1BB6B11DCA2A5951B4DEB0B1268C2F5AA8CF76A6BD0BE3013A37CA1A903AC634405ECB3714BC54610BAA63BACF0A263D8CB018B03B0A286083998A7E8B2A573E570179712130A19F9EBC2337D43926F9C96460996CC03199D81A0E19259DA696FECCA7906931A787A5C264826099A3E03339295B587E7A4EFEC6A11AAAAB057AA8689473F1F211C6D85499C46746BB00BA687A17877E6650C678D13861337FAAA7045A16B8EB7173E7C08B6394B5F2B99EA3083BA175C55D350FD61B73AA790CA6F479FD4B01282B6BAEFA00A1946F6DFB855CE7BD50389D42856823301E01A228AC754CB65A0E323A0943B75741CB498CC499C8649B6BF87E991507194983AAD1B57994B7D79BBCF2EB3B5F8734CCF3CEA2662E95D486989144AEA22C94C363571AC7DCD81F577645CF19B313F849B422AFED963CDB701395020C2D18601A40A42429896AA9B0B1C10C4876928AEAC59862414E143722A0B94746ABD157343D15BB9FE500763B18C61B184407449B1B5BA8FB1554E4BB58AB99FAAAC9CDC3B698E64179B089B786204BF95EDA86474EE799440478348989C91C3462446724340CD2376C682907EDB58C85A4CE3EF46CC5D0CA345590AB14844B224735DC05E0E66EDE94258F395FE867AB9D8C1B0FA80743002A15DA197614295DC358F40758C9CC05E45BBC659B93ED611AA58845D94ACC7AA75DEBA56D4D83C640C252975BC3165254C92957B78C9583B370AD785F2C16CD5CB9913839939C7293E6B956E23CC5D14CB3AB2A2E94F179BB076355157920085236F60B84449D43AC89C2B46DAFA6B784438F3510BFC48357A5681043BA7428583BB5E912B08786562579DF58A41BDB82114344B3EA3574B997F8564248210D4E50AB2277100B9A5423178B1F138E9D427762253CFFC3CD095CB53A776F4FE015B5168B1A9759AC4ACC77F90C69B307192B7B866753872A69813B1BCAAB5CBB8126D8998E78D99F5A527992B89495A28E3FA83E75337CA2B896172AC244AB7E30761C8E3A00890046E5F599EEAB65BF1A4CDEB5791CC10ADE7197FB5BC754233F3B10C9BA2240ADFC61C05231C36A6CF71AA752AB3C95C3756EF9373B677105D11F86E68036348BDD181F27407E344BCD297CB02BC44F077976ED588D6A846C2F839BC9BC4872617BDC17A7BAA97AF9A9322FF015956678E8D622CFB1A11ED929F29BB1F094C17F49417C09C1C443369123CAF8701199C43BFF97034EFC6999424144C9395D9063BB153C0ED82B1C5659BFB23D4CD2C758A26B6C448525060F686BB14873CBF5046B3A3033C5C8081027BF5E3C51F6FB6A1D54A77C46B0EA4299A9DA4AB03B95F9D3601F553D46800F661E2C9A7E548CA42E385CC6A0678F9E9D268FFCE02C4B465A46773432109A759CFECA12DFE978BF0B7AD7271487CF61B2B8F7C60F389F33FC18439A95BCBB6305224FCA29659D6C7A880A5F20D5FE02DC4491F2F095DCF2DDECBF105014C5A8\nencap_coins = 1E712B1EF59C5594B414D7C1156B8E4FF3C3D24C92AC92C734F4AD03449A7E28\nct = AF15327AA0C8E25D9F701283080B3C51B839AB8D2FB6A88E07510C8E2410D4870981238E72B3BB85975A2939B2DE89F8EF0801C67E45B7D8322E68171B1A25D81EF5FDB15EC48AA5C1F90108005876E0D02FC4EDE0B37878DEBA3DA122D97223329AC26F6A118ED6CF51F6A0FAD53A8A50CF1AA312557419E7B5739448B4DDA2FBA9414F525A4BB18CDFB418D514613534BC49093D7DB167A6F49407B775F4B90CC29B4042EC305AFCFDC824F6E394AC228B8D9FA56C3E75EC11C287074286A7E3F09FE2A47E8C6159FF13D6B6DD4BDF0C5DF58E2A22D5483800765D60580985DD0C0B4D0EB12E097FF5CF22FD66E5FBB2B2EE129020D6D43EB237ED3426F4469DD697BEBAADA84CD0F1DA63B5078174CBF8C60EF4F47C330F7146E49E82B6598D9FED00C85E616A21D85216E14239EBCAE1F2E8AC776825C58B45CEF71CD1DB9490A3049C294A6B1BFB4307CFE7A10D38918AFC5FA5941260043119F2DFE3AFBF54CDEF3C3097F11EF2A001DD87DE7E8AFFC69A5A0338C332899CEE8BABBD4C0BCAE20E16FCC2FB2389162147F443339E5D4C131788D737A3ABACB183782656639892E847728E9E40090C172D2A52645D8EA64E78F06B31E89C02E07E3ABE96CB402BC183A235AA85274B403C7615DEAB646D852123DE6BBF74AC3B549BCFB8551CA7777D5212216AF9FD07760E05234B00685522AC486E0194B0454DB6D3136F1A87E1BA2C346D78DFB66C946DA73CB28AC2D0D335F8B30DFAED385B7DFA58AF6012B31AE765251DC04DFF0408963705653AD99301A10B30BFDE41E4EB727563E469ED330584F451318D9A18C1DCEBCF92FB10A2B92F1EE349636137896A86490AFD92314FECB90B3205EAF973B68285C8BD7D91C0FA8D5BBF8FEF8E3DF9C9119519EC4C59D9AAC385166068F0157BCC7C224FDA8C69B0A714A297E7CB2702C23099E36F72BBA26A38DBCFF5F616F8D4CA39C2A0CF723BD24637268DDDECEBEBC51260FC0884AE6131A2EDB292674A2DE76B70E2A2B235F93067949C8BD1C304096EC39A794B196465F96FD07DC61A3BD634179FE27AE52663A85E73B2ADB64DE463EC776C1CEE6D07E0CCEFCB008187A3F55510A520638E8436986599D30A73A1558CF31AB2619295C75909C5C5F1A9A31343C481D3D6F43209824D18FBC834E3ACE191A6B605A6D7BBB3C14071F8604B5F4E26044ED51DFA235F881CA742EB2C2E3EB45F12772C643600862A5281FDE42C61EB1C211BF694F1B2BFAF5EC9AF8BDB9881703CCF6D5BE1229124A4A49143D89EC579AB5D554CACFC22BA9AD903C8D83DCDA1291AAFD77F92D1FFCCFA3F08FC8E3E692A64F58BEE94F9AA6A65E3FFA4A1382C7EBFD103F1F3FC727AD3DA44B9B0C7EE68A23778885FD1EA20CB9CA4150402064D74E0E6D102E5CCAFAAC7F02CDD4DBA342F379F90BF5866D9BB67A2B94A153129D19A1FFBD27D36114420A7D0CB210AA9A34182141DFF5387CAF55B2F47D615AF558A582E383E1EED8FEDF7ACF6501671A12958F1E74C856E10\nss = FF77E8FE0458DFD2C82F6DAB5DBA05944C7D88A02FCAE8448D9044D12279D429\n\ncount = 10\nkeypair_coins = 2F1D8A3BEBB34540324B9485FDF3D5BE3B858F544ABC3FC641B5728CAFAB03BA6931E7324D5527DCD0EA7E2E6C2A82D4A80C3EDFB38752B36581F3035ED9A23E\npk = C4A90087866B29244C3641310E94B8311A1303465975649288713E79CA67A9085C8F7449C0BB9A6AB196245B0DA028CC1765A8BA0501D5E360CB3064E11554F3FC2914F1260509073B67B4A0570D7F708CA7C435EA987762F2A5A23CAE53907FC9DB26942136D72202D0A0BB10B65D422091ABAA1C21D152DAD59C25D20C016237634741DEF8CA26B9CCE3097FFD896F1BF08300282FCB7000C7E1956673223902AE5B43BC63B6806C469A4EBB8BD34B057B375E725B07EE856FCC0453379B96F89888D21A7BD5EC91F837B90A2C334A97AD70D87BDCC12892D588D06655F6103E033547CF5933EC237B21B2956E5921CF10A0C55A70E4A24A57B93F6FCAAB2A44BB079987EBA57223B4B9DEB60EC6464FAA4058283B8CBA6956C792AE8FF9184E93C2E2152823C15412C102518462C2691DB1C64412EB1EC6D75D47C82FC5A9214670B3297067E30C6D9CE0CF3EB314CC1A4CF35342AE419513EC2BD47182C4EA52626A56F7831DBDC5719F532A5A421A7BD5A115C2195D0532E7C1C0FFE40166404137A5B45D7B2CD31752E1646588021508293FB881123F61034318700EEAC429500905179B283162ED0B69590541EBA0848DECC94BD18C888170A4C030A89305FE97A2B0292390A3B1FD6AA22909CF0134A2754728B6FB5180276B7D65C2FD530B4FF48CC7C7093DFC2B418B97762C42BB0980C7F41D9651C69387173A6718038010F50B79B233187BC3A0F7C770E50ABC62E8ACBE297C58C58055387BC7711473D81CA97B6A6E6504870C0DE1D806E3603ED0B04D01DC62529434014C5068C3AB3D4A909A079947127A8A2746CC8126F0212E21A0318EF273D5E0BE16253848413C5CEA22853C6E63B675CFAC1D6590004A2BB3BB4974E79ACA0DD927607A71D4B4C9980A86E5A2B5A84BCD2E694190491060411B332AA7E7766A4C693B00EB9D68F34E5B0564DE24377D3A6D45F72D82EC24FB268537C07B81AA79B5B28EF5A657E0F8B6B2F3A4279ABCF06CA2A79401312943D1D1086D9", + "1B1AD3030D0C0BB21806CB87B56ED391E6BC6AAD974034664B4902336D6E45A7449CB656207D59367F2B142746636E44726F111603B28670F47113D28CE6BB11F464B181CB3205FEBC13CC70D3FB35924A641A1117DF5CB65FD9A69C71BB800FC22A6BC47E52756C23533A3A494733B74D9689D64A849D048A2FFAA62B24BA53CC76CE8489D7515834AD3A2EA920E4F2275F4F7BB361866647C04C573BF47E6B54CD31810C7814AB5CD27DA1905FC5976286B781787D2DB606C036A2616AF7946935713CE2C7AC3FC4972ABAA2229C4C294E7A70F97BB6D119BE54553EEBAB1C80C8DA7459258E44A234357A1C9CC46412794116123D21DB27455063672245460EBC8B6B1116B34F2401169ACE16A514534154E798AE3155809B651CA963F854BA501407920765A14F826DCFA4BC4F21766B05BCEAC55E6854F1AD080D9B2538848A8DC7857F10C4C843C46B172ADECE3707E01C03059313BB96BB144996B127A16006DB4063CA1251F550836E167ADEA545B3A0C55C0AC5DE3FCAB6E8242C2C5C09313646117A95EF46536DC74D869301335A2F9040484FB0C9CB85A3D034D55B03C66725D000C47537E0D5AE249EB884B67DADB110119F1D0A5EA38CDF9F2E0E27C75A43A\nsk = A5019E7B82405CAC3C8F45BEC4E70E20590BD7E543D465BA702CB1447C0F114CC44F404A31B091C638347CF5A464106A2F92A0B4E600A3D86AB9F57EFFF088D1887865C695C3AA29BA08356DA1B4042146E8817F2BD56BC014071B896D5B2CBA9FA124CBA45E294A0F30FA01E4EB18262059CC987C64F9185AAA12D7EA1F2780308A91A3B2F171D9C41D166872BC7B070D44AF8556A356B631A6EB2E804CC09C531EECA476ADC8143EEBA767298BF29C19FB2496E0C573938BABCD749EE2D02E9817A3EE5A687F9324E7E1082892142C04AE9715C4A6980D73C6A54C16BEEA97A659DA476E49C1DD1B8292E04321783E0A66A36267673E92C2C7463668B1742987405C1621F94B87CE88AEBAEB7BFD787116B30A5B64A7E8956321463B351A9753A0389937B7AED431A5028D309CBED2D8AE67F859CE371CD1B3CB11A8A70D3B9B92E15530A260D1874118EC505FD451897712AE4104E67B1D2BB2676589AA4E8833E03B017AEB2666464C87BA809F2BA29106B49647666FC58C712B5B8127882DF3723E74A9B9E4B0E5A96BB325144111C75E96A13B5566E8258E36D34A76096F9B013236B3036BDA5E3D431AAD3CA33E9A0916D8CEDCD3466C75C1B5603A3E724C60A796E0844CC0D79686F086C510CA0CB11C2E936ECABA446560AAF0931C6A82298BDC7FA82AA6A0B32D361B3335CB83DDA38417720E9E745BB9CA008908CF6931AB2B4A7B78036704153359DC4FDB5742AB3C39A346005374CF3107B95CB771FF1C9592D59C810A93E3593169AB26DE85077DD79A3B3AA03C332A9D177D7EF88624C285A90099D1D0209A0BB0C425CE6AE9221613B2CD596AA77BA2BB98A385D2898D504D68117ED06233E69C43B541438B3274B579C1A5C27B0D85159836AA48907F768C97B6B2B19F475655022691182B2D9C80AEC12ECA0890C9E47BF764684FF1A94D1083D85905212431AFE09342004B44A090CD71357D2431C923B3CE08BC836B3EDB82AB2FA3C508867EAE87BF2768AD61D4894B123B6F861DB52B9B3EB77A8C99839E9108704C907E258F8D8001567078037AA1AB87B03A46AD3A0A30C753B8BD790923B7454F84C67AB6BBBCC105EDC36AB6AB67C28C1D3A54BD06F9C09C12CAC8483E015301DB6650CA3228ABB8353D2B3D95FA5D99E96BCAB65B37DC8A1E958F7395391BCBB4A944AA955BC2176AA6600A0D40489D0534423776184C85057AE00E9636BFBFA76C2D329625747968F53D1EB26CF4F95D6CCA45C60B2DA0F1899A7A1FC651C12BC2C3A2CA16D8ABA4E05C0CBCBB2B72C48EF55403462AB49CF6576D8C358A865DE1F795CC0629F4B13837B6B1704250B8E97F7A116FB63A0DBC12C955B49A67094CFEEB0E8C7B23ABE4BDABB787D3E45EAD108A96D3206A4977AA128866E596DFCA9D68996D82021A4380C0991561AE40A96BF490DD5538F0718098479A5763787939453A7A87A359643885BC5D6149EA048B5EF1ADC65C78E4A9C917160BDC625352596034B3558F98637B33061F769CBE341F9C764238318882CAA978996D1C321A92838D109C187011BF84D17FEFA0271EAC7D5EC90743130234E79089F5B9A6F0267813939B5A3B22321376FB1792D8BCC4A90087866B29244C3641310E94B8311A1303465975649288713E79CA67A9085C8F7449C0BB9A6AB196245B0DA028CC1765A8BA0501D5E360CB3064E11554F3FC2914F1260509073B67B4A0570D7F708CA7C435EA987762F2A5A23CAE53907FC9DB26942136D72202D0A0BB10B65D422091ABAA1C21D152DAD59C25D20C016237634741DEF8CA26B9CCE3097FFD896F1BF08300282FCB7000C7E1956673223902AE5B43BC63B6806C469A4EBB8BD34B057B375E725B07EE856FCC0453379B96F89888D21A7BD5EC91F837B90A2C334A97AD70D87BDCC12892D588D06655F6103E033547CF5933EC237B21B2956E5921CF10A0C55A70E4A24A57B93F6FCAAB2A44BB079987EBA57223B4B9DEB60EC6464FAA4058283B8CBA6956C792AE8FF9184E93C2E2152823C15412C102518462C2691DB1C64412EB1EC6D75D47C82FC5A9214670B3297067E30C6D9CE0CF3EB314CC1A4CF35342AE419513EC2BD47182C4EA52626A56F7831DBDC5719F532A5A421A7BD5A115C2195D0532E7C1C0FFE40166404137A5B45D7B2CD31752E1646588021508293FB881123F61034318700EEAC429500905179B283162ED0B69590541EBA0848DECC94BD18C888170A4C030A89305FE97A2B0292390A3B1FD6AA22909CF0134A2754728B6FB5180276B7D65C2FD530B4FF48CC7C7093DFC2B418B97762C42BB0980C7F41D9651C69387173A6718038010F50B79B233187BC3A0F7C770E50ABC62E8ACBE297C58C58055387BC7711473D81CA97B6A6E6504870C0DE1D806E3603ED0B04D01DC62529434014C5068C3AB3D4A909A079947127A8A2746CC8126F0212E21A0318EF273D5E0BE16253848413C5CEA22853C6E63B675CFAC1D6590004A2BB3BB4974E79ACA0DD927607A71D4B4C9980A86E5A2B5A84BCD2E694190491060411B332AA7E7766A4C693B00EB9D68F34E5B0564DE24377D3A6D45F72D82EC24FB268537C07B81AA79B5B28EF5A657E0F8B6B2F3A4279ABCF06CA2A79401312943D1D1086D91B1AD3030D0C0BB21806CB87B56ED391E6BC6AAD974034664B4902336D6E45A7449CB656207D59367F2B142746636E44726F111603B28670F47113D28CE6BB11F464B181CB3205FEBC13CC70D3FB35924A641A1117DF5CB65FD9A69C71BB800FC22A6BC47E52756C23533A3A494733B74D9689D64A849D048A2FFAA62B24BA53CC76CE8489D7515834AD3A2EA920E4F2275F4F7BB361866647C04C573BF47E6B54CD31810C7814AB5CD27DA1905FC5976286B781787D2DB606C036A2616AF7946935713CE2C7AC3FC4972ABAA2229C4C294E7A70F97BB6D119BE54553EEBAB1C80C8DA7459258E44A234357A1C9CC46412794116123D21DB27455063672245460EBC8B6B1116B34F2401169ACE16A514534154E798AE3155809B651CA963F854BA501407920765A14F826DCFA4BC4F21766B05BCEAC55E6854F1AD080D9B2538848A8DC7857F10C4C843C46B172ADECE3707E01C03059313BB96BB144996B127A16006DB4063CA1251F550836E167ADEA545B3A0C55C0AC5DE3FCAB6E8242C2C5C09313646117A95EF46536DC74D869301335A2F9040484FB0C9CB85A3D034D55B03C66725D000C47537E0D5AE249EB884B67DADB110119F1D0A5EA38CDF9F2E0E27C75A43A9AA64A30BED5AA8300772066EF577F79BF4813E3315A15F2C28B2665E4DC7E2F6931E7324D5527DCD0EA7E2E6C2A82D4A80C3EDFB38752B36581F3035ED9A23E\nencap_coins = BCD1828F520DF6A11B417BC8EC4367B6F7CCC47A4F69AADC445DC83F15482ABE\nct = F43DE76B96736EA271BFE716171725D7DE80B4373CE197990F415B7586CA388662FA1F1E0789B2BEDC2F45F229E63B84CCD3048680D9FA91F0B6839DEE4A921B787B816CD99C15294DF18A3062450C691E0489EE5B839E8D20EB6FD8407A1DFDCA5F20A7796308A0C6053498509F3EE159D9F06A79774948820B6AA2F606A432D009F224870C31EF9E1AD3D799E44922BDBBF47487EF133ACA108FED996B8E89CADD1B1424C0DF1FBC87BEA65B533C27792BCB3A2CFEBBABD67112DD390C74FA7F83F5257D5ED2D706EEA5ACD29012C38B21F804A36BF7AAC11A47E860908D616710199F6B9868444438AF806EFB1FD2789D1767E98505BF9347CDD873A1EFAFA511DCB1AD6CF2AD362BFB8EC436FAF2E5798B05E4C0D8E3A9F16B0F262EBF97C195F2AAF66B6DF402767EBD285A3697E527F0940832362BCBE9AAFF7A581D2E2EA54F9CE7F30699FF759B4AA0CEE0E271C8999B3AE43F025398DAEF0E3E1D567E1724C12F99837EB9781569FEE0551CB8E52F2EA5625B180050415C7A1988FEA2FFB1B719DAAA7FAD13E6ADA58158546FCB4D9E61049459F0E4D1E5422E9C4E35BA36B129B94B34677CE9AC90042EEDDAEB3541C8F398EBA0C414D4FFB421D93054055AD1AC34E24C56F8360271F6ADBFFBBBC7138ADF6A2CD9FACE73A0B64783B6753764CC0CF5A71F878A98F18F9005450501A700F64C43485B913FF1677CE062030F582E3136E20D7C27675165110A579AD05E99FF3FD3EB20588277FD98044FB21B71D46553C05A3FC70A3CB6AF08C23BB5C4CF417EE9D935A11FF5BA6316ADBB29FBFA3C66A9D1ABD4D2F09AF3109BDE003FBE7076652C0A6873F2403BC0B00069B361A0ABDE88EC152BB5540A2B2CE05D60FC5BEAECE7AE10C89E5EE67CA80CC768E2EB4991D3273B601128EA42395CAEC0563497E856EB5CF55C1A67FE75ECD65CD9C4D91D5D0F6506C3497B0C2F109EDBF870D321F26BA54ACA52E6C43B6C8BF1FD9FC3635051B4E4FA4EF732B9BB4CB081CDD7E934B15364A6EEEDC4C517BA24CDF2C8FFFB7F24F31FA0BF8207EAD329EA61962453D63ACC3BB3C808026B9FED77DB5CBF533C894ED50D1F553EFE0C12BAC842476452FBD7E5A326580772AFB890958AF4E7B31DA2723E42C3674D75EB37868AD2B09156C3D8DD88274E05B2ECBDA432F373AEAB7D53993C648812B28E9EEF8758033BB322E1DF6439D74472A8C89CF75745627575123652E6CF04A57889AE8B3DB77648186B4D13CDDE921CDB7046BD0CE124BEB9FB36ACAAAD9F445101993AC863B116837FE5F057D823EE1295DA9B361A397D7208B466B6490F6E045BF00E5125142BAB1539C0FADB62FF15AB7321684C0287661C61134ABBF78CA252073DC3ABDED707B59A6CB97AB2A2BFDE69DF8BA5A2FC71ABB70D33222C7AA788344F51C0461896A421908A647AA4B6725BE54AF7C2ABC27A79C73627C16AB59B6DB45BD6184F91B4077F51498CA53CCBDF489982F9C20FBF47E8A43DBB5B17F2DC3C4E5DA582B0C37124\nss = 53A2C4D5E96348634D8E0B8165355EC7DFF157E93C4A4CBB6EBB0A89E5A1C5F9\n\ncount = 11\nkeypair_coins = 31BEDA3462627F601CBC56F3DDF4424E1529C04737EF0EF2AF6D7401F653B8A13390C2FAA8E2BBDAC1EDF5A5B6803BFD3C58DCB1ACE60333D03CDE2", + "C71737F55\npk = E9718A491B3262D206BE72A9CEB000E81B6BE6668D14A124BB49BE524ABB09B91942A60ED38B1974E36376A7724DDC7E5A993EA9C25F40B80C766CC57E807BD5932603403458B84703CA58F8E57C451227128654DF4537FCE6A57BD1BD6FD8C5BE1135B2C82CBFA4B96D577575406F92538034D22D6198A9CD000FC8DC8988F95608C1974C4359ADA14F7DD4870C63BF79886AB2D4CAD1C89A8FE232FC1C8C515B7D2AA9CC35759EF583244EA767916478F8415FDF7B1CF85A80F4D6960298B977A7ABF380709EF904C1706EE3F51ABF415028321E4FC79FB2E15454C47B3572BC09C62C0DC466EFAA759F116E8BA4717F91220F125656BA7C52338AB1FACB0FA6A75CE61F3135911D5714FCDA7A5A271205547018CC0607C5AA7104A4A77266C0525579F054ECC6C62522068E79352AE7A1C3265413459939764A4421CAA937C8F9B2B276A2C77CE7814FE9034783B8AEC29881E2563A63780CBABBCBE72501D68F1B72C6EF3C5D84A4BD7CF4A84686682FE36A151BCB3BB76CE5FA67AE545C9621BED149BE06AA2E72F72D1B24B086836B525915B93A49D90CB3C45877C54204A605CC27F1828DE6CA1E95056938A6C9651EB3B4A9B09C5AA9FC4401215D9EA9015A996F9A7B898CEA466CA14F0065A5B1F374D422B4A277A011F3B3E8143B053507BEE829E582528DCB3C9E950F39D17AD0A849C701779D070E34CC606C84A596650B7776A468659344446BC19186B43CBF042516A7B133065393C83B85313C53B71A5BC4421A91694BEEB39760806D3B910AA8EA546F53763B656C99EA50A179986DC3786A554B819317FB58564DD69428BB1D7BC45A642A8AB9CC013F932A67222D1FD42B455930B8147D6175C66330217246C400C4B619B922182101B2D8165F93BEE58757C14CBFC958552137B904009FCF845321841F8648B8F9E58D1572119B11CBCD59480246A46E255ADCC1649817A052736ED9C18A262C36F7C37918DB789AB177ED39ADD0850A509319888073B54BC3ED81000C780FC87AC5C302235A959B1164B491001B92811D4AA76876065E841B276A27B868822FD1DA7C3FD1831D88C9F5D891FF610CAF264FBC9280B8D4085251774EE20C23576ACE6215B3EB8C1610CA2405115E89421418A7610C05BB526FFA39918E9558C6CB2618A612B6D38BF8A2569B4C3AE902A4AC744ED4BCA8ED783C4EBA450470AEF5EC5370B87DAA419145298170D64CAAFC2EDA7C989645B9285A3FBD16C16E0C1E3FE085A6BC05248426EF106E7F6012E80882682660CD05CE49520785EA66325078F9A91E5FFC3BA0833DE333326FECBCD8878F286064CD1B672F210133E30D106C61AF9A75A7FC64FB5B1E1A1649FAB356C0F26B9062C5DCEAA7CEE502C750A93187A21C11B1B7FCAA45F8B857D38E18287B1E878C7EE59E07966F3619BEE70253D77065C02926BFD9B031260B5AF95846573AD09C42573C8338609FD3E5C0B50092B17A83128A4A9F1A6A232252884504846B3B7DF82981DBB036F6A57C5C19136789AF9690A978145EA6ADB74132EC55840965083F388877A93FC01B006FE4CDE4012A1814B327A12CCA8991CD18027F4485B4025B5583747FBB37916585261ABFEA163B617347ACAF453AE235166CDD8AFBFFDAAAB9919F0CFFDC75D8796FCC28\nsk = 7EC737EBF52EB7905DA8B3C58508928DD74462E8968A1265BB3B9780649210C8202E2950AC11863BD78AF3123AE9899CEFF1992608CF5BD1B4EB0AC1C13CCAAB4CA89A869424BC1AF777CFC7D90A071273F5AA5DF310493FAB17CE5B6477C773D8CC81D995509FF3A40CE80E734A9E8968B7FBE79A9900AB85F7B442077A890688DCBA0BD5E64AE491CE5D39B554E6B82B7602A149A686C19FCEE21B8E3B1792E7529F2307505C77ED84A63A68258E832BF0F118BC05C91A6B216EBCC051B90143B9748B365EC841B6098C4EECE8AA8231BC24B03E732A0EC55AA5B0E3231EFB7C7F0AB21E2544072C22B6B4075049B63FBA05C68A936989BAA2E55AD1846FD1E335568B01D4ACC869E710357708BDC25DB545447E41727224545CA8C16BCA5458EB24D746A12E170EF191CC8DD840E26910CD9484B4E40D0C7446959A521618B9BC472C8001AD0D1C8428C43C0FB3230FA9B17694284375A0E1563FDAEAB6CAD367C9949C4723802D6931F0C212B03004675652B958518D31C8D4B06DFD99820702319E668DFFB5C88622170B0C0EABA56EE7B77EF5D7600B9C0BBBEA5B99E05A9443BB81A68C22C7904A1755D4C80A47AC148ED13C3981C6BF4122A7880FDD597429A32D6046981146743AE85CC8C0CCB715937F29C933D63AB475C2C5483CE07ACC5B8BB4C7456398A9236D02BED9B951F6D43A67EA06F7FB803ACC33E9552E7150C34003A2E2E11BFC0BADFC537EB2B69122352FFB62B285B6CB0935ADFA0385DDA074F7A63ADB76BCF4A80AA83A1C32F87BE3A786537ACAA32178B136C8BF817AC1CB1E25B44654266F4B2B14F33358B9B75A2D916D78E89D3CEC68B782734FE052449598D847B2A02C3056A64E72C5A3B34685E9FB2C0037736E0A21DF39A356310777A36FCE908C243A4A50216B6199CD63C7BDB18B95FBE4615E9799757176FA4A88C93459BC3030E09889EDE148890CC221362472586E3C026B0DC10BA5A823F07ACC1C693E9BF31518B90359B7AAEC54473552835B3590174109337B6171EAC38DE29BDEF8095DA13A8F7014B3F531FC152CA5EB19859673D52067E28C7513141245376BAF368B07627FB1B844FC033361994FFB3B39822A2A2DE17597D16601329866F42C3697A6F5132DCEA2140B871480E50523C3C5227537A5089FB6742CBFCA55BA9C307A321ABE440241E34151B2C2AAB6AD55817B115330C0B15891FA35BF344BE7D93AD44BB27962101982902427242F5B06F85204E738AEC7A333A15001252004B21B5E6FA95A41A4456F74C9522657A9A40F8C4A162F4951CD5BB8A4F334F45A3A73266E1C386CAED53AB52B9A4DFA173B96869FBA6C72987F4B328A0E56A08C96A00D78854D6762EA2394C2A102162143CD40192749CFBC5031739711F1EA8C37DB5B635BCFE9B6396E2902D56BB135EB8975E1B0A171258D39A7AE84AABD46BAF4DC2A6FF18FB6002CE232B7A45A532DD54D3DA8C580D6CEA4209098930477D207622A7CDEDC2E72C24EAF5787D4B2B461889D23AB93A4BA327C371EFF58CFF7F65738886ABD046895834AA06A6CB57973F1011353FCC1452B015A324C406515E9290AFF4356FB393B57F4066077B2152819B6A69DE9718A491B3262D206BE72A9CEB000E81B6BE6668D14A124BB49BE524ABB09B91942A60ED38B1974E36376A7724DDC7E5A993EA9C25F40B80C766CC57E807BD5932603403458B84703CA58F8E57C451227128654DF4537FCE6A57BD1BD6FD8C5BE1135B2C82CBFA4B96D577575406F92538034D22D6198A9CD000FC8DC8988F95608C1974C4359ADA14F7DD4870C63BF79886AB2D4CAD1C89A8FE232FC1C8C515B7D2AA9CC35759EF583244EA767916478F8415FDF7B1CF85A80F4D6960298B977A7ABF380709EF904C1706EE3F51ABF415028321E4FC79FB2E15454C47B3572BC09C62C0DC466EFAA759F116E8BA4717F91220F125656BA7C52338AB1FACB0FA6A75CE61F3135911D5714FCDA7A5A271205547018CC0607C5AA7104A4A77266C0525579F054ECC6C62522068E79352AE7A1C3265413459939764A4421CAA937C8F9B2B276A2C77CE7814FE9034783B8AEC29881E2563A63780CBABBCBE72501D68F1B72C6EF3C5D84A4BD7CF4A84686682FE36A151BCB3BB76CE5FA67AE545C9621BED149BE06AA2E72F72D1B24B086836B525915B93A49D90CB3C45877C54204A605CC27F1828DE6CA1E95056938A6C9651EB3B4A9B09C5AA9FC4401215D9EA9015A996F9A7B898CEA466CA14F0065A5B1F374D422B4A277A011F3B3E8143B053507BEE829E582528DCB3C9E950F39D17AD0A849C701779D070E34CC606C84A596650B7776A468659344446BC19186B43CBF042516A7B133065393C83B85313C53B71A5BC4421A91694BEEB39760806D3B910AA8EA546F53763B656C99EA50A179986DC3786A554B819317FB58564DD69428BB1D7BC45A642A8AB9CC013F932A67222D1FD42B455930B8147D6175C66330217246C400C4B619B922182101B2D8165F93BEE58757C14CBFC958552137B904009FCF845321841F8648B8F9E58D1572119B11CBCD59480246A46E255ADCC1649817A052736ED9C18A262C36F7C37918DB789AB177ED39ADD0850A509319888073B54BC3ED81000C780FC87AC5C302235A959B1164B491001B92811D4AA76876065E841B276A27B868822FD1DA7C3FD1831D88C9F5D891FF610CAF264FBC9280B8D4085251774EE20C23576ACE6215B3EB8C1610CA2405115E89421418A7610C05BB526FFA39918E9558C6CB2618A612B6D38BF8A2569B4C3AE902A4AC744ED4BCA8ED783C4EBA450470AEF5EC5370B87DAA419145298170D64CAAFC2EDA7C989645B9285A3FBD16C16E0C1E3FE085A6BC05248426EF106E7F6012E80882682660CD05CE49520785EA66325078F9A91E5FFC3BA0833DE333326FECBCD8878F286064CD1B672F210133E30D106C61AF9A75A7FC64FB5B1E1A1649FAB356C0F26B9062C5DCEAA7CEE502C750A93187A21C11B1B7FCAA45F8B857D38E18287B1E878C7EE59E07966F3619BEE70253D77065C02926BFD9B031260B5AF95846573AD09C42573C8338609FD3E5C0B50092B17A83128A4A9F1A6A232252884504846B3B7DF82981DBB036F6A57C5C19136789AF9690A978145EA6ADB74132EC55840965083F388877A93FC01B006FE4CDE4012A1814B327A12CCA8991CD18027F4485B4025B5583747FBB37916585261ABFEA163B617347ACAF453AE235166CDD8AFBFFDAAAB9919F0CFFDC75D8796FCC28241E5C7B836862D7482D507973AE3FD8DAE96EEC4ECEBCEDB68FBDA75E04B4013390C2FAA8E2BBDAC1EDF5A5B6803BFD3C58DCB1ACE60333D03CDE2C71737F55\nencap_coins = C5D2E4C39EF9B75E3691B929F1618699306802ADC2D04BB0219418F7BB0D2B19\nct = 8C79C54583CE1958D0B3088EEFC52C49845ACA1D2632F870AF6A08DACA728900E55C9D94E93FD7A3BE53A717637AE10AFB1EE99C2ED1A539CD33603480398A0731D1D0A7A6596FB925711D5EC03AC1E14F4FB38647273B6FA9553D6975621BC754FB43168F7D41F250F924CF81FFF79D72816E02099520388DF8B02574C6A408787EC28536BC9D8599414967D3115F3AE2C02D7471924098B01D02FBEE27C40C137CD99013AA981102CF026032B5B65C257B422FEB678724FC7840CF8053BE8B67D69E0C374017FA56CC8D63FA60B2361D6CBC55BC2BF70B9292882CA64F8F79F21E9E05BCA16DA8040C8D8E74B326DE94ED968F177DD1E2B2FAC383268353F379BDED6E4DA7B00B8CFF78B7CFF30927DA63695CB5046624F31881AD11475AA5B9AA012B211307BFED343F7AD9AF306B571F0B54B19288CE2535F5E5EFCEC30DFF2C7940579A0C96C7F46863CFB9ED0191697705AD9A223C63282C95D13522C0A1899E8353E73960C67CE78EF6C0F1D78BE8300A2D0A7634ED40B51DF8A6351B0C5061C98BBBF8ADFC78E7980C2AC73DE555285C0EEC678F220020E3A17ED0C5D6915A016C40985627F25541AB754A2FE80E8592EA30DF4B719036A91CA8BF811E9C38F8EF713373993774", + "A835A97BAA0CE43D8C16C9F50D6ABD64BAFA57BB5978372E88EF61CCF6F20B3AD6F02C263F4510CD7AE94239911E30AAF2592B192BD0158483C5B2E6A5476D1C4DCBF50B594CB821794012627710992B24302392356578BDCC6B282E6570ECE4684AEB4C637ADB1EA869ABDEA6B08B3F8CCC60386B8EC3AB7AFEA1FF98185455282DDD0653DD0897921FFF87A518ECFA0B800DFFC598EB091410E658361F1D7134B88D08667BEC52D211ED914CAD7BEF3448B80AD62B4CF7D31635EB71E83AEAAB16C17195EFC966E911191BCACA4E64D7586DE2E37A1982CEB3B63E45D7F6D10B7300710652C671E40E558F002170DFE9C5E8532EA801760B9B17B5B82DF714FCBFAB3CA931428F269CCE7BB952DD03B2CDE0AABADCF5E0C2770435A3694EB05079F37BFA59B74C357386112764BCCC62CE3D254BB713A7E6D294DF36DF43091B7955F6E5C620BB342F1DB33707C74F52B0E859F0108CA38A86BF2779487D6185D43D31F3F70AE1B8E1232830799324BED499E64129FC776605B3EAFF91B870A392690B9047C72D64B67119EC4597821A26EAAB5B499046F4703AE53F01210AF8797A55E380B326A5C1B344C71E9E0E646B7A2C2D3243244FCAA39549B2DB519BFE0BFF9A512AFC5F188BD7E9DE766598FB11E13AADC53138E0A832D75C76F40D7322E50D7D7FCC1825928790F10BD8F1CB910E0B1B937D865B3E92757EBF0200EFCD9F84587C38DF11F3F6AB61612AE5CE913CE84888BFB0DCEB5907D8FB9DBE6340FF9B5CE625E62F0AC14F679BE865BCB51C359039F9504BDE03F796A5DC8009095591B7B28EC28D2CBBB374BF2D8BF35ECE18511DDA1366FEDF49C57DAB52732B2D629898E637624BC1A587077C4F346E5171\nss = B3668D62A092EDAD32A4D1D4A8D919A27197F88FAB79F33AA325D2EF20C73C90\n\ncount = 12\nkeypair_coins = CBDFF028766D558AF4466EF14043A1A9CF765F7748C63CC09DCEB59AB39A4E4D605F30457945F8B1560010C71B40717FEE3264A27EBAE2AC8ABC16267FB0F3AE\npk = 14345D52853184AAAB60195152259D9B643D864C4EC5FC4978C657C3365EA81212EB91339AAA4BFA87A197A04D46A7B666837F55DB6F16C095DB449E9BAA879AE14016EA4F8BA975DA26CFCF59401237ACCB908EFD17146E9439B1473BAFA07703F2932D5C598276B59B419402D681D87111F70C20D2710E10A407634AB216907D7363AF0BC4647DBA208F9C6744D71A8A1C1A99082A3BD8A843E4CE581412F04877EDB1709D1A9623C3C428EB111A1189073C9A3D34AD16AA1F1551A07E6880147360E60888DDD5B0956036951021AF4699C96382CC0C16B3F0B960135391C6692B0C556A5B9AD2F8A5ED0CB0BAEA2406868AC6F7A5A44B722721535E098FE832C9AF148AE027604C47CE4D3214A1BC974675289AC7BFB9A644DB30235A664417C57A8A46A86E18A10F81B87F4B4727F7234017088F447F28680B0600AD1DD672F0EA19E38A39FCF964CCCC64528C97FA474EF3AA6777676B3DB443D0A2042C744555049C48B2BC2577738A698BC58910F55B0EDE555B171838F6086CA365AED981AA5354561411990707BD3305CF4D10161FD3124156691DAA5CF3795653E2AEE1C4BA021B0EDD0809B14905E46C2CD0BB1E165C8AA428B180EA394E6C92BD6873E12328E5E1916C94C81393172DF3815127B937B9646A783524671FBD8B5F01395178C6A9FF42C47D8B25FB37A2D1DA975F69C7A8286504FAAA6AD5B05307C2D20B4F27640FE59B1EF407110A317CD72023828192B131CB9AF96899A69B0F51125B2828F29493A997A33023661BB7811C4593E4E579F8B17D0CBB6037D9273932AF4EB235F7D01DD398B70752A925968ADBF56CF132B85680ABFFB937C35425C244345E805BDB608CB0666984775AC1852690908CF2A60214F6A888004AA41A44831537E55A5DFAE7B2A4448FE6C562EA66764DFB5FA508B6738C4F52F10D4A852D38F5354981CDFB7A851A675C5A01C2FBE886192582D1F08AB37753BBD81BA6D848949731C99BA92278A2833CC11AC3BF603512BD6557F9684EB980C7588424DB0C1E2BB2BD09196A7DA29D79208DA50C4A0C839284A44D8861706E991EDD099E0B1467B88948C89778787C26DD4436FBC4BFD12B0ACC00AB4D85B613BBA4F928BBFCB04E2EAA51B81845C3A710BBC8458027A4F055061D0B39AD28482646AEBC5458D0E70D396C99A0B456837376110488F49A83F48372327467AB87870D11B3C1E6C112AB3D6D486A99BC2B9B368A0695C6C6251D6BEA5B56FCB96FC23475719B8CC82806875CAD772E4716332FFB02189438E27097E565159E4B1790558273CA887FCA2A6E7226C53879ADBBC07AC1072E6AAFDD2A1DD89677842041F33C447204A3FB91C1E4935111AC739CDC9FD6F2BA8C0C66DFF5552F3B2BDFDB19D4F65CB3B23777292CF97CC54BFBC41ED041E53318386173D229B9288C5D68E87D0CE2032D481C46B646EF71940D97AF370732533260C6AC943272866BB2BC90EC64424C67B1C877F5D2B35C39656957BBE40C53ED88C4124764B726A5E24ABA7B0C866A52385C85C241677F75487D4156C85DB639AD741E0412438BDBCEB6092FA14501FE1C5E95D90833332DEBC0441554A8CB5A8F7826B047882B415B78A0C2E966AC7C67B03EF5106F0A751017B67CC52A3D0E1586C74513D2B5F13260\nsk = D62C6CE5E7594BE682A8167743106A44482E3A79CE257635773513F0B0BF77A161C8274A705B93D2EAA899D8C0126AC8ADB7B3BBB5891711380DA1A9DE0541E4160DCCABC13A165B5C54178DA95B919457C684B9CEF81E97637C73F22A3CE9295DE79BEDD83C3FF871087B9412301863E291B04779457807ABE4687368C84B3408E26AA30BF58BBE4BBDED32ADB03607598714464222524B3C2CD4C15F98A2E6695463257BB8FA9A84131A64D45A57B9A539094B5E957496B79008878396D3B9B2EC41CCA75B66FA6D069A51AF611D4BC03E20CB12A216072D7834D996AE99E1CC6522A42B48C54282CD0AE8CFDD1B874FBB4EC17434AD584AF5B4561BC1597AAB63390B60FE7C052E57846E1A8C4F6C6758798B70503507554946382FA6E2004A616A40DBC2B0C596C2CB2873C38E6FF82FF159BA93563D23671DFC433949D3705F398B3752680169657623937A8C357864C39D82C16DA5C1EE407FC7FAB357C0B114965E89815409964CCDC54CD8D5B17039AA9283A59E746A45A2800E4806064683C292B425C18F73AA2F720A6521A050C5196BDABC9B094895B9527759C1A7210958E11A3411B05E67097FCE2C11ED024A85A22684B51EDD652DED89C23E1440CA5616BB754361C549776222B8B297F8F4BB7F818D3B29B16C369CC8BA9D91E6012BF006999C7057AA2A44C30237314079B2A55C63990C3AB657CB80D41022651097ED680D200195BE82A9B9D08B24F039BFFC42C66459B0C8889DDA6714B63762494A5E6106F34223990772B1CC12DC660F5BE62EB0A15C16D4A0303773D768C7DDA7B749711F7C12720C150D30EC6B625624E3F94861483BE03271D8B05780AB62E0294A8CB193238530B49455718C872428BEA1D84955F54A3BB619DADC6106EA3EF27094A085634624377312648AC46559D7A7DD902497AA9F22879D131A08B9223A05E5B76A00807225B304480F6105CBEC8A11CEA18E8910A9BBA691047C95676C9E2DC7AB76537691DBBEE397738C613E1FB00A79F06698C10EC26C97DC00B82A54AF572A02801AAC20983311F42BCA18699A2684E4B5AED83C7AD89A1705F1605A87CABEFAC499A56058D8B02BD597743524A90C3686D9405E33C3D70880B6449D41A76F83E23759664F1F301D3935998D690A7167AFA11A59CF8B87624283A738C0D221B1B55453504AB64FB89824351A49EBBCC291465AF92F50D7B53874C1190A766DAC5E70706F88097BE4500942534DF5E5887C48B234C11992F32BF3F2867CC055D7D6C3A4D25D2A141BE7D706BC1203814667552888E3BB13221A10DC3A4157D811A7CA23088BA5AA1A3FD60C0C6AF29B3B52AA6DA319D8E359D842C6DC65C29ECCC0523115D15B19A7B90D1090C5949CC66A004F0A0513132640A284A87384C7ED06782607584BF5CDD8F099ACB0229CC9588B024B0F3B5BA80B962218B3BCE4C0F542BAC9E8C235362E33EA30D789094FE82FBF64569907755ED7BFD00C3F6F446DEB00A27B37BB92E454AAAACB69DC854532C718C85508AC8742C7180EA805A78999111915BD414275E92D75C1953C10968C802E4AA6429ECA0A5EF49FB4046ED2C93914400B0D882B67C275C483037E859C8C015114345D52853184AAAB60195152259D9B643D864C4EC5FC4978C657C3365EA81212EB91339AAA4BFA87A197A04D46A7B666837F55DB6F16C095DB449E9BAA879AE14016EA4F8BA975DA26CFCF59401237ACCB908EFD17146E9439B1473BAFA07703F2932D5C598276B59B419402D681D87111F70C20D2710E10A407634AB216907D7363AF0BC4647DBA208F9C6744D71A8A1C1A99082A3BD8A843E4CE581412F04877EDB1709D1A9623C3C428EB111A1189073C9A3D34AD16AA1F1551A07E6880147360E60888DDD5B0956036951021AF4699C96382CC0C16B3F0B960135391C6692B0C556A5B9AD2F8A5ED0CB0BAEA2406868AC6F7A5A44B722721535E098FE832C9AF148AE027604C47CE4D3214A1BC974675289AC7BFB9A644DB30235A664417C57A8A46A86E18A10F81B87F4B4727F7234017088F447F28680B0600AD1DD672F0EA19E38A39FCF964CCCC64528C97FA474EF3AA6777676B3DB443D0A2042C744555049C48B2BC2577738A698BC58910F55B0EDE555B171838F6086CA365AED981AA5354561411990707BD3305CF4D10161FD3124156691DAA5CF3795653E2AEE1C4BA021B0EDD0809B14905E46C2CD0BB1E165C8AA428B180EA394E6C92BD6873E12328E5E1916C94C81393172DF3815127B937B9646A783524671FBD8B5F01395178C6A9FF42C47D8B25FB37A2D1DA975F69C7A8286504FAAA6AD5B05307C2D20B4F27640FE59B1EF407110A317CD72023828192B131CB9AF96899A69B0F51125B2828F29493A997A33023661BB7811C4593E4E579F8B17D0CBB6037D9273932AF4EB235F7D01DD398B70752A925968ADBF56CF132B85680ABFFB937C35425C244345E805BDB608CB0666984775AC1852690908CF2A60214F6A888004AA41A44831537E55A5DFAE7B2A4448FE6C562EA66764DFB5FA508B6738C4F52F10D4A852D38F5354981CDFB7A851A675C5A01C2FBE886192582D1F08AB37753BBD81BA6D848949731C99BA92278A2833CC11AC3BF603512BD6557F9684EB980C7588424DB0C1E2BB2BD09196A7DA29D79208DA50C4A0C839284A44D8861706E991EDD099E0B1467B88948C89778787C26DD4436FBC4BFD12B0ACC00AB4D85B613BBA4F928BBFCB04E2EAA51B81845C3A710BBC8458027A4F055061D0B39AD28482646AEBC5458D0E70D396C99A0B456837376110488F49A83F48372327467AB87870D11B3C1E6C112AB3D6D486A99BC2B9B368A0695C6C6251D6BEA5B56FCB96FC23475719B8CC82806875CAD772E4716332FFB02189438E27097E565159E4B1790558273CA887FCA2A6E7226C53879ADBBC07AC1072E6AAFDD2A1DD89677842041F33C447204A3FB91C1E4935111AC739CDC9FD6F2BA8C0C66DFF5552F3B2BDFDB19D4F65CB3B23777292CF97CC54BFBC41ED041E", + "53318386173D229B9288C5D68E87D0CE2032D481C46B646EF71940D97AF370732533260C6AC943272866BB2BC90EC64424C67B1C877F5D2B35C39656957BBE40C53ED88C4124764B726A5E24ABA7B0C866A52385C85C241677F75487D4156C85DB639AD741E0412438BDBCEB6092FA14501FE1C5E95D90833332DEBC0441554A8CB5A8F7826B047882B415B78A0C2E966AC7C67B03EF5106F0A751017B67CC52A3D0E1586C74513D2B5F132606AD1D739F1598A16C608A240CD13DFAF8263D74866315E2898A3431CF19E4685605F30457945F8B1560010C71B40717FEE3264A27EBAE2AC8ABC16267FB0F3AE\nencap_coins = AA9D93A4F2747551DDB0453F9717E1789B64AC9C19BA3DA020261936FFAA9CA1\nct = 9EBD1A7929A3BCE5F174DDCFEBFF750F6CEBFCC753D694C076FE5E54F53D46A90564079CF7561C26909A9A7C8653048ECA14E43CD681A65057F4950DF2FCD02DD5E72C4E593F81B450226CBAF287939C9E7BE8E33DDE78AB24F23194B375FF995308B3BAB8217A5F1717DDE813F4EAAE39F31CAB02C634DF9301773CEF9DE068D02F50D143B12E2BE58070310938EE611155EE73AC0B211479C6581BE4B0EF9FCF10B3DBB7337B9D801C1F2897DE46B28B876AD3553D5A9C5EF95C0DEF96308AE06C577211BA81E28AB4029FE4A7DE07EFFBFEEC9D7A1B8ABB88C41564B2FFDC532F49F38A50886204A12F36CB56A07F6AEF5D6008AB3FB9EF11C68189ABC1608612EC156EA99618FF857A0AA03FE5B7C3AED56F96CE751FB04F09604B4587D3CE237864553C854875EE3B1A0386F207991024802748E5335D09BCAD30B2F4F59A293867DEA121C28415ABDAB47D16DA05D0CE01711E48B376367954239E88AA4D533887BFCE4691695E5FC66543DB119EE02EB01AFCD0002D03CCCA574E25B7D4A567013A5BF4FE02CB9D7E6BB5A9EDB9CE24FA43A27C343AD10477A72E1A46461C672DAA7B16513D244E0B08B220F81C2085CEEB867D8ADDEF69C2C40D3DB714788B7668D7CEC55EB2C63E9401B8EE5AC96E51007592B8F3FC8133CE8262E587B330D2166FF9E1FF78A9039E965A6F0C96264CF7557FEE02309B1A0F9960F0EB068E5A9B3D6802E71B014EB52DCF13E6C2770765CDC51171F9352336DFE36397BF1CC21B5542EC7EAA03B079890C3F9EB0D1D0CE2BA64EAF4C333CBE7827CF4EE5D5FD271059D3BB6EF8ED40B994D1860167FC130B7FEC61AD04AB7B8F453ACB4C1E314F0E674F975E8DF807FC29800B48FA6C1E062C728EDE677D14677F34C17B52C7E4633FF754BE813E3F36455DDC603DA7E9D1C37FCD5AD14BA0EC200B2CB64D230BCEC41D0B036591E5F0EBB7096F8A9CDC1284EE6DC80B62DD7D30FBEA9D17F423E30D0AB96FA4F3207F8082033380E2671B4CA392108A47FB873CD5B100128C45D13882D576282CB06E592D752DFB7B255AFEF048CC61A36329806A41B6990751F5C9EF15A7081A89DA306F36D505E5175E275DBDC855F7E6E6E32785D0878784AAD7E1460E0C2E0630032D25AAEBE669B0C3267815FAD12D7CB534B8E0D0EBE166716FA3B99A0D9F8C487C016A2E44172FD0D65C188672888E7E407D0F89F06EBC92419FBA768A5C5659DF8516E1BEB3F70260728A7E7B6B6069D4FF27A3B0C7EB7F40EE146BF00A72DCB3130438983D4B4F1A0930B0931F304914F9D9CE7079427482E134BAED17BC1FC5EAEE511C3435EC35A91EAF9CB91A833404FA8EF0132E0BA39E351EE68E7C5869C3F440B2C628558E91F1F6A390E47CDA8D0C5544E63E88E09D19F7840D4F1EA17CF1E397AD9C93C373B242492687284C8064D76CA875584A3817B530ED6A04D95DC637229BA46584B3A569D8A517364AB72E3431C055DD76BEC1780DF33DC0358BAB730FAD98CAA98FC0381D0B75188F\nss = E2C19C840F2378FCDF9A8E71DE83815C4C41A9E579ADC6405F14CE91232E3F53\n\ncount = 13\nkeypair_coins = 4C04310BEA66305C6CA8BA6B8F61CA96257A67663AFC11761F13FB5C7B324B6B0A8155459118346A84683DE346659727DA4B64A1050C5271E968BA9CFDF6029D\npk = 8BD98BE4597242C95C9641B194A093A928B8D3B30F33C10BA326943A8B704C09A6DFA55F700C488C38A3334716CCEB6585008A853162E40A544C0A16878328F47C4E67B5AAD276A2DEC4C320047E2EAB345CC14982B96D1D13566DA409E93072377A1729546117A04CE291A2090B60030A35D5B360F9F871CAD52F37E63954DA0E0A8675ABCC3717972F89469978730607293267CAC89E3C96A98576C2351D8756429722A1278A173A75114BAA4F0EEC6A12B09CAFDC99FEE2C1AF7ACDAE3C747B94B06517464F654ADAE25888A15CB4C5017076C9D3FAC3B1560DD9112D88B2BCF31B15AC420FE5A698D52AB41EF33FA6CA8D8CB9B94D58648F39A138974E8016A972308C7B040D2FA32BFD1096503A3A0E84B9941188A6720E06E6641B896D365190369766995826B72122D780477581BD69B348BB6C5C8F65B4D84AC3F0768EF6645E422B3ED7E38D0A423409C285D0E21BBCA97BE6707557BB0027E755F9A81912D04B9EBB374BD79411B2C283068670431F2DE58D346BB525D192F128C9316742115275E9214DEF7A61DA509B5848013B304216F783D77C3F57B76FB8DC984F05AB557709DAE4691B519C44D41813E4B61E6664AF5C970AE7A810714217745AF087BB00575B18081921A854B7D953E29CB1DE704E6578283292168EA73A03E2082B8B641C819649270011861A7B301DCEF74E9B116A86F717E30BA6C5398E34390072E20C82F570FCFAA2BD8847A7187052E6B9D0D9BC9FEC0217373BCC7B8D38245E40A1597077BB00A408E9EB2BB451C31A746D2AA07FD6432CF176382B6665D45343CF32731817023EE046577ABC342BBE25416DAEE417F2971A8ED4C839126E996A8DB40A55BD424C0E534CAB677FA1C6B692D2B7E322A331305F75289A1ED102ED604722737E76501C7E7ACC69842D6FFB2D31D1003C3B3BD8F4458D93B0270CBA21DB21A7D16E22E18584E68EA5B890EE839DE75B68D60B25D5452BBB91658F3220AAAB200EE7A8F070A5B5AA7FA30A768275970012324FE01910E8647945AE6F8B3A17D08E5C36AF468A7F6308751C4141439B567EAB03D72538DDF71DEBD2AEC5DB13537A2B0130B4C2F6662182BD08EB750EB681FCE77981A3012102C45642BB8A44AD5CB27CDA8369EC28190F64987EB600101ACEAE7A807158CC8100555A82644B3B513D7CB283A363C70A4EA090241C8A96AC562E7FB3C38F3515C3A68FECB271713729FB77A1A68695FCF995855749C1F0AE09F90741EC332E7602CADB69E55438B9D8CCC213119627410488145777907D280DDB7391D2EC9F27371277C266BB1B14F6EB8D46B2C8BCCB0C68F3BEB2D87B07044904D5B08E84305B0686F923985A49ACDCB1A662D1A08948C9B8D95883518D0AD3933976C464A41C18351216D84066D71164A32D41886A153703C584B747555EEFE8309F0810D49C0DF8C5512B245F637C9448C47E1456995E922460B8210C7AC1063047C3764077288A1345C23EE0C8FA6865FDD52ACB49614207285D241C14114DB55CC0C92049F3537ABFF81B8A30A02E5AB013741B36D92191691B3197CCE8D2328BBB6FF61932434899AE01412B231B0EFA18D8381555866091C77981E753F8A2B95E8095765EF7A13BD38F9FED3BF36477916CB802690A213C83F6624A067A5E2C\nsk = 212393FA68C40D1153EC29801F4472DB30B8E6516647CCCC6A160BDAC4299D515717D46BB4248673D11558D8AF5A6373720A9C96A4C51BF12AC506CBE51B560AB742EC684DDF86CB08121BDD412E2476842D051E3182C415C49B7184C9322242F70B63A960576296A8AF5451F5D474019C47E1822E2B1503D30CB8EA20B3CEC334A2114FC2381D910A98E633716EF9CA2F7939C7033BAB756371D6C2E906061DF822113C57DD5992C8826ADECBC9AE381931473558AC94FE8A19C9C4BEA3DC40DEFBCBDE234A211623F8D80BDEFC74F657A797098EBBE2B6B57438C2253F89D13BCBD5C0C4204DEF79BB37859E36E920768CA7D0651A7EC9BB63336698ACBFB6C9A384084DEFC1BF5D9C050087B691D40344E107BEF0241BD99463532A05B795F820213392CB16D668605CA86DF134C03C4A7DF581F8CA7DAF732F5AA75146457163C3ABFA9C655F966A607A69AA1234FD1CA2A97213F280A10E84C4AAD26C0EA2CBA6773D63B39EF7350F6D284830EC3275E5BB9A318B03F87CD3F3BBA41632C0F9A1E65989B74B91B23A82BCC22D617AAF8B14C10D0037AB970B8CEBBEC0CB866BE5057964B7CAE6C9B3084A696602A25961DC53558C065D6D8B25248ABA262B1B635322BB82165A8CBEDE60BBF6B72459D47B64A964B3C32CA563BA5AEABA8ED912D81B2E733B4B4587A99AE5037DD21DFC9ACA5D869596E36547C0336AE774B8BA637622A597C05DCD43B092D938429886C708448B24A45A701CE9FB9DB54C67BB531BCFB82EBC15C127409B02A3350D6168F1296784B86F7310B9160681F0133A66356843401B9C0414D7F687AAE41A36857CCD3B26BF8C11DEF30769E30630169365AA3C3B53CC89D9CF47C2CC6C166F197C9E5C5B2408B03C41B0613703CC4872BE78DCC4B28089D7118CA1186BAEAC1355D5B9D4E45515897AE233A26810356A373DCBF6CD5F02CDDE8C468BE006DBC67E60A69908D1171D4A5EC1643B87059CAC80C259788EAF195F4FBCCFC4C0284BE822F94C2978FA119371291657B927F8B332124D61D17E21A36485D2C3F2893865F305589A8D048B06FBA7BB9F087F96D5785678A7F2D16C892CBB2273677ED0CB70F5729AF0A0403B0BF0608ACEC1CE32F2924535C16E8423BE0C8854E439EA395DD792399DC98AEEB7493B64965858BE35977DC053B3C0B3788FB4244CD3B49E40934F90B454C983DA38B2B5C88521347788F832E9C64A6CD012511234275C9F6C251442A87B496743333A161D8C04E3D78BE3097942AACCEDE09B9CB673E1FA261BE71DBEB5C4E1049B2B2A00311ACAD4470F8AFC85172476B949AEFBC0110A261461291B5FF7A74697C88AD40C82770FCCF68B9AD5382125879E637B7CEBC1AAE95B03219CF2488B2E3B2E51480C8CD8022C2092470236FE6042DCEBCA24CB9EE9379386D80E54C232DEC93B99B694E99AB5E41CC8CFB8928D5C08EDC7A707044B49B8A131986A3F37BCDBCAB5255B64B4905A93A719D01A32384A87543B6BA1A22DB75C9BAAD257BC8B9D8B78641B394C7AE064087454CFB17B307BC35A97CCCB842602990747D60F30D220ED3171FFD7A2B77049DC210E2377607B817F24C011DD736D7918874AEA4B8BD98BE4597242C95C9641B194A093A928B8D3B30F33C10BA326943A8B704C09A6DFA55F700C488C38A3334716CCEB6585008A853162E40A544C0A16878328F47C4E67B5AAD276A2DEC4C320047E2EAB345CC14982B96D1D13566DA409E93072377A1729546117A04CE291A2090B60030A35D5B360F9F871CAD52F37E63954DA0E0A8675ABCC3717972F89469978730607293267CAC89E3C96A98576C2351D8756429722A1278A173A75114BAA4F0EEC6A12B09CAFDC99FEE2C1AF7ACDAE3C747B94B06517464F654ADAE25888A15CB4C5017076C9D3FAC3B1560DD9112D88B2BCF31B15AC420FE5A698D52AB41EF33FA6CA8D8CB9B94D58648F39A138974E8016A972308C7B040D2FA32BFD1096503A3A0", + "E84B9941188A6720E06E6641B896D365190369766995826B72122D780477581BD69B348BB6C5C8F65B4D84AC3F0768EF6645E422B3ED7E38D0A423409C285D0E21BBCA97BE6707557BB0027E755F9A81912D04B9EBB374BD79411B2C283068670431F2DE58D346BB525D192F128C9316742115275E9214DEF7A61DA509B5848013B304216F783D77C3F57B76FB8DC984F05AB557709DAE4691B519C44D41813E4B61E6664AF5C970AE7A810714217745AF087BB00575B18081921A854B7D953E29CB1DE704E6578283292168EA73A03E2082B8B641C819649270011861A7B301DCEF74E9B116A86F717E30BA6C5398E34390072E20C82F570FCFAA2BD8847A7187052E6B9D0D9BC9FEC0217373BCC7B8D38245E40A1597077BB00A408E9EB2BB451C31A746D2AA07FD6432CF176382B6665D45343CF32731817023EE046577ABC342BBE25416DAEE417F2971A8ED4C839126E996A8DB40A55BD424C0E534CAB677FA1C6B692D2B7E322A331305F75289A1ED102ED604722737E76501C7E7ACC69842D6FFB2D31D1003C3B3BD8F4458D93B0270CBA21DB21A7D16E22E18584E68EA5B890EE839DE75B68D60B25D5452BBB91658F3220AAAB200EE7A8F070A5B5AA7FA30A768275970012324FE01910E8647945AE6F8B3A17D08E5C36AF468A7F6308751C4141439B567EAB03D72538DDF71DEBD2AEC5DB13537A2B0130B4C2F6662182BD08EB750EB681FCE77981A3012102C45642BB8A44AD5CB27CDA8369EC28190F64987EB600101ACEAE7A807158CC8100555A82644B3B513D7CB283A363C70A4EA090241C8A96AC562E7FB3C38F3515C3A68FECB271713729FB77A1A68695FCF995855749C1F0AE09F90741EC332E7602CADB69E55438B9D8CCC213119627410488145777907D280DDB7391D2EC9F27371277C266BB1B14F6EB8D46B2C8BCCB0C68F3BEB2D87B07044904D5B08E84305B0686F923985A49ACDCB1A662D1A08948C9B8D95883518D0AD3933976C464A41C18351216D84066D71164A32D41886A153703C584B747555EEFE8309F0810D49C0DF8C5512B245F637C9448C47E1456995E922460B8210C7AC1063047C3764077288A1345C23EE0C8FA6865FDD52ACB49614207285D241C14114DB55CC0C92049F3537ABFF81B8A30A02E5AB013741B36D92191691B3197CCE8D2328BBB6FF61932434899AE01412B231B0EFA18D8381555866091C77981E753F8A2B95E8095765EF7A13BD38F9FED3BF36477916CB802690A213C83F6624A067A5E2C9510A2A0B4FCBD414FC61AFF04A8DF579660D14B13C40EC0470C45F639B65A580A8155459118346A84683DE346659727DA4B64A1050C5271E968BA9CFDF6029D\nencap_coins = 8AF3DBB32AF8DEC4843AA90BBF43A5F13686D9738911A805C62636C111B2E140\nct = 7E3F72704DEDCB7FA7842EB6D4AA4D0D1CB765D8CEC29FE759D099C802D67CA1DBE0ADED23A4C478FB8EA1A06317EDC08BDE1DFCD7A9B82BCEA02C6C1EB5A5B0B18D33EC047BBB4B8D17AE337A3859F091E60B516BC9760FB6935AACBD1DC7DFAB6E200E740496ACDBFD145E911141A8708779E41900FE1F21272CAC5B5CEC500C2145B76AF79765516B3095F9FDEC5A65E30A5BF3BC7E800BEB04BADCEC7EEA917CBF83EF83B5F383B11190CB1CB02A7E7F33EFE2F0803239A2C0D942552500AD9B7AE61E17FC05A5DE4B6B1B2A5A57161CBD4BC982649A8AB4FD7AC2EC790F00004CDDE57A32684D4FB1D60907DB1B8D796F62D2C765E8177FCD0FB1342AB68DEFACE05963B7B84F44B23AD0E8F93573413501310A02C9B9FB594F2576F69DE0EA30D7873F1822984C8224A1377DC3BF900C94434E2865E9E0665BDC090F3AAFCCE625D248918B67699CA77DACA06D1BFDA1634861277994EF522777336C5805EE86532783BA557939B5B2BF80E477157EB1BC0DA7D162D965E4B3C28A7BCD9C58340E6771AAD0C128674698ACE934F531B67EC80161EE9CA62CFE239B309F2EDC46CE9FACCD7B19C11E7F5E62C8F3459F5BCEE32F92A1C8B0D98E1B539D594555B44C68AC44389EA4E9F4AB823F44803D0D0D497F05D0B1E9836CAE8FBDD57D92D221AE3B1D301B872C9EC6E1FA51A4E93904D6D1CF571D2DA511ADAFC231BDE291AABF7C6B19CFA17610998ED145A13AC5E6874E4D32FFFC6CB2F0F98624DF95BB2C5C5842AFAE732591791C39116AF3866AF3A227A42C2EC3F188991AA1A23EF81896D2A2A2F0753F6936BF34963CE8C184F7E53149BA10A9C8266322C3C6B945DB0EB652EABBF042469EA201560F03BA3B523F29E9F1AD1545FE83B46785FB461D000FF55E36605EF1389DA66E790FDAECCB7A0C42016C40A68A51CB3F5F3F5C9956FAA815A49F578DF015DF360FD8D42C39896CA8B33B81C46D1D7C9A3D95EA6D3F9248A4591D9F2A064F5677F375EE6273BAFBFCF101F42EEB19E078B336804498DADF4F79001B537C58796159DE3737A1E800970D79ED4BFE373372D977EDF2576F2DBC31560D49AC475B5546545B9C5D5D75DDB77162088B9A2B58ACA964436292EFFC111A5174CC6CA8F218983563040B405664FC2147CB050826B75D67EEC984D1B16132DB0BFB43DE07556595A1D5A3D728E129DB6FCDF5830EF767D0C72077D227022A937E91BE07A8E3F4EBECDEB09CE85C4632E40DB5121083E92D307FE02944DF9A88616043D315BBB584BF42F82E0EAF18DA0768003BCEA3DEF8A89380A601544798002A35FF03CEB9188C5C237C36FA0C22119A24267981656DF2B7C4AD7BE0DF35F34CE94DA31C64F75A831FE557E731097FC4CC7F51F4A79E9602C107DCABC4A34A3B48C233B4D156E0D3860D181615DEDAB813C2D063903A7421380E0C3E57779C91AF37092FDC8EFEE4294ACF66FBDD8F0D4D5F89F4391CC4C9DAA90CC17B664BAB281C059866AB67465A444338B8E3A04EC7B868\nss = 07163CD065C6976622FA92B5F0E93E6748111AE8A8F7194498EB2F6664D336AD\n\ncount = 14\nkeypair_coins = 38A0D5F41D7DC1896EFD1B45B0485634CEF149828751B96087A0A6DD81B4D58A08AD5BF30D584AE9C8425AB3C8F1FB9960752721CB2C8310CD7BAC84808BB979\npk = A6BB3B93C181B651918A25235E22779CF052E1D30E6852557CA32AAF841834B423A9E61CC24B5231D7590F863E814AA19F123C0CBA97CB3773740871AC23868731748355A85F03B275B3273486142153BE4920BC9EE77AB5C05D2B96228906586EC831EBE8CF6F9BAC3631B7CC904DFC768B1A717274B33F70D08B6A79C4AEC3597E1C9664C9472B6C100C1601F27BC0AED37152E20B327B5D32646F2980BD780C8F476715AC04BF1E03C2D4A31DA23B14DC0233C1A2C2D983627BBC845F023E349CA59626A99EEBA5DCC12E8B82076EF2295238667308451C2052C6F9B127778A3C656213A23DC7E25660443183298753475BCAF667A9483192C6BF553B7E50B44A84A4B881B0365FE513FC661A03689581E045D2F921444C6A76E6344ED8A335B6681CCBC7B42B50B9B03558C64DA65088F60B136882012135A8A659355503918BA25DA1C167B9FB9F771B5727493C921338C1ACCCEFA80201039D28C968AA3A40C2A28835F63BDE23B9722A245EE3C859997F45E10A11F1906C1485B0B51093F51819963393A692ECDB1DDA2C88A6133F69F401B124CAD796217C818152A528F7D073BFCB9EACCC6CC8825AC4612533126C1CCC736DB53F648201FF29A6C3F77B41E01DE2087986F237200014E5FA540735513400004B5925CF64B0FFE9575E27AC19AC5644F355231BCDD70348C4507C80780F1D51ABF6AC4C5E2957A94325A3F64E83A0A192516F6CBB40B8ABBA5F8B85BF2AA60E44B46585BF009A723FE1A44FC97543F269F670C593935BDF87A52A1A31CD2B9AD92807407B5851B49EB1A2318611CACAA7710B6764A7E57F8962BC3FC483A8393640E602CA55526EB1BE56F2C61CE802B9592F24C14AAA75AA4B002AC9B81FC1327B2A93AA889C9EB178BEBDC91579CA7BD30796CC324447892558D2C052308946A451CA49816C06AAD39603DD3841EF03CCC1075DF164739FEB342ADCCE87AA12F550200CE94765EB4F291A5152941B4EEABA91C3A59257C03017C0B7E0003B07657BA60B4256A8A4B205D7646813246385B348EC157DC6EB3BE4546D7EB85C29512840018968743D2CE147F071C8F96C7436596337D69F5074485BF4A288833F2855787F8A18D874C5A2A41422157F65B62B5E581C2181A7023698FDC1AC60A8340A34B29F81B03DC35DA2B453FA61293070B1C6DB57F3040C3AF7766C69B84D624DBA1163FEB0C71FAB6582473F93C8753D67B0259A2EEE1C847B1B8A73455A74FA10C3A4C21A35AD20FC36D563BE9BC55350F565E4076670F0C77B3C4AA2A06F7BF2AD1BFC4FC8721618454D640189A6F8B3D6C71086DBA68B213F4C51100A6037E717147893CDAE20A97759204B2C684D8206FDCB10DF575799AAA3DE388CEAD4446DCBA8E14368F7202520C71E453B41CCE426BE6C1E29AC475C45742DDACF7C520DA15780A9056183900559129E5E3CBB3FEAA288B25B6FC69BB8B164C1DB8E24391172A8C23859545E98A13725130E45C3D1CBB5D6F5C0DC275608163916013E6E466C29502902C97D3BC33DD006ABAAF2AACC40C046E55951D744E31887155A3FA880058A8767B35684445982767C697540CE339A0F4C29C2AE42B5DAC5047C12C22BCC155A63A8610DB945708CB5425CE0C3C651532A43D32473F236519D54FDFE0A815D\nsk = 69E774DB244D05192A2E064257F3A7B9B08941A2018ACA28C610B8BFAB59176BAD88B9A7781222CB03AABE6A4C2937BE24645A28C3A7931240503769EDD1865F72B44C4842114980BA64A59A647438C5476A700D0DC4A63277C4DC73A3DC9B59BFEB0DDF0817612AB73AB14378E93FA4982D15131C5016B36A639E4F689E9B6B2D2BB2501E130EEDF72AFE4861AE7CBE7E717B4C4001B78BAC719C6AFD40969392CFB1D918794B4988A7C03A23C8C5A751ED2C39D3E18474B43CF8B7814A5932224141FD543871AC102BB0A349153EB4A13AD57AC06602BFC6C1B4425284EAD058572A1C7C0CAFDC6756555B2033D2CE67F9155B16726625928EA26D13E2C0C0A66988EAB99643B4CF23AC68724CE635188DD8B3F2F421E8E8A9F838B707A16FBF27445A7555CFC052982CB002130CA3500CC428AEF14281564997D5F37D0A1C411CF73D3D2082E4C26C3BB7BEB9FBA2D9EC631F8953B3D03075318B4B720B4FB5B177D43C11E8979C640639136FA20B718C0846404B2F0604C55CA82F519241D811A697000DBCE1C743410E92922E83446410A93150178A4A2B52123174DB128B2EB97DF4E8A617D5876AB9977DAA8B7845537DB0A2B6E0599C0CC165438329D1251D6AA09D5B30F27040082A135C2B831B7722C416072C655C4D511E1FDC0284932849126D49B5A03B3593894BCA250B0D198601A02900C9406D8F5B69BEDA735A3512BD355DAD587BCA7330364031573B44EB9C2BD103BAFB7283C1B923AC3A41F0607D4B7B7E1E681AAC9B4090538B6B7975B9C5C64C6196577B7861CC88ED6C3365AABCC9B97A6A318A39A2BA8B17376509A563B58DFBF4584E6B00D56BBBEC309164982D1B906635A146C04BAD613C02C8E2C2D0597FC285779C628F3E290A84D8710745C444410F129A140358991D601FDC787FAF4506C6003E2130C2E03B3FFED39CA3B9BBAAA34ABAE794D", + "4266E59A80EFB44528B2B234D70025767A5DEA09032767722C61E53423417458DE9E809A42257A27001E9C8AD43B775BC853D8475ABDAC86811D568E9E38747618AFF0B0901283A3913B6595CB2A85B6D42101DCBC90146AB85EA5449850BC9D8B1356F820EF365731F176EC0A0A5B7F35D9848C426F32D6A37046574A93CFCC043614E8708026621A06AC00582DA7B64421D4F50AAAC1BB10D6BBAEA31808712B891344B7B865243614CD706C2DC098B0A069FCEDB89ECD67DE8319C92F3AA0A9B92A1FA256302587A5859408B5CAB563EF1814CEA386BECD756DB669FDF87A003EA1E7654CAB281220B21CB234AC1C4B459EE48517BC838082191DE35B265D5264119C05CB500A05307C806AE8246128A8194F61024F5B2B7C410689150C0A8F68E1B3A51DFAA834B7C8ED989B351E683AF7BA73DD91E9733282FA2559AC53AA2819811190B5827000D98433241A3DA2B77F4E588B0088E3D3318CFD049C4777F7B08678144618E2406B9B6B72698888C4529B7E3B272E92620BB36792266C3DA4C9C403D1D49650B5530BE017C3B99C068890F2705702440AA0BFCA823059822C18981A03B16670E127386265487665ACA4C171E023621A853965A629757148E37833D31E453DC9B20191C94230833A6BB3B93C181B651918A25235E22779CF052E1D30E6852557CA32AAF841834B423A9E61CC24B5231D7590F863E814AA19F123C0CBA97CB3773740871AC23868731748355A85F03B275B3273486142153BE4920BC9EE77AB5C05D2B96228906586EC831EBE8CF6F9BAC3631B7CC904DFC768B1A717274B33F70D08B6A79C4AEC3597E1C9664C9472B6C100C1601F27BC0AED37152E20B327B5D32646F2980BD780C8F476715AC04BF1E03C2D4A31DA23B14DC0233C1A2C2D983627BBC845F023E349CA59626A99EEBA5DCC12E8B82076EF2295238667308451C2052C6F9B127778A3C656213A23DC7E25660443183298753475BCAF667A9483192C6BF553B7E50B44A84A4B881B0365FE513FC661A03689581E045D2F921444C6A76E6344ED8A335B6681CCBC7B42B50B9B03558C64DA65088F60B136882012135A8A659355503918BA25DA1C167B9FB9F771B5727493C921338C1ACCCEFA80201039D28C968AA3A40C2A28835F63BDE23B9722A245EE3C859997F45E10A11F1906C1485B0B51093F51819963393A692ECDB1DDA2C88A6133F69F401B124CAD796217C818152A528F7D073BFCB9EACCC6CC8825AC4612533126C1CCC736DB53F648201FF29A6C3F77B41E01DE2087986F237200014E5FA540735513400004B5925CF64B0FFE9575E27AC19AC5644F355231BCDD70348C4507C80780F1D51ABF6AC4C5E2957A94325A3F64E83A0A192516F6CBB40B8ABBA5F8B85BF2AA60E44B46585BF009A723FE1A44FC97543F269F670C593935BDF87A52A1A31CD2B9AD92807407B5851B49EB1A2318611CACAA7710B6764A7E57F8962BC3FC483A8393640E602CA55526EB1BE56F2C61CE802B9592F24C14AAA75AA4B002AC9B81FC1327B2A93AA889C9EB178BEBDC91579CA7BD30796CC324447892558D2C052308946A451CA49816C06AAD39603DD3841EF03CCC1075DF164739FEB342ADCCE87AA12F550200CE94765EB4F291A5152941B4EEABA91C3A59257C03017C0B7E0003B07657BA60B4256A8A4B205D7646813246385B348EC157DC6EB3BE4546D7EB85C29512840018968743D2CE147F071C8F96C7436596337D69F5074485BF4A288833F2855787F8A18D874C5A2A41422157F65B62B5E581C2181A7023698FDC1AC60A8340A34B29F81B03DC35DA2B453FA61293070B1C6DB57F3040C3AF7766C69B84D624DBA1163FEB0C71FAB6582473F93C8753D67B0259A2EEE1C847B1B8A73455A74FA10C3A4C21A35AD20FC36D563BE9BC55350F565E4076670F0C77B3C4AA2A06F7BF2AD1BFC4FC8721618454D640189A6F8B3D6C71086DBA68B213F4C51100A6037E717147893CDAE20A97759204B2C684D8206FDCB10DF575799AAA3DE388CEAD4446DCBA8E14368F7202520C71E453B41CCE426BE6C1E29AC475C45742DDACF7C520DA15780A9056183900559129E5E3CBB3FEAA288B25B6FC69BB8B164C1DB8E24391172A8C23859545E98A13725130E45C3D1CBB5D6F5C0DC275608163916013E6E466C29502902C97D3BC33DD006ABAAF2AACC40C046E55951D744E31887155A3FA880058A8767B35684445982767C697540CE339A0F4C29C2AE42B5DAC5047C12C22BCC155A63A8610DB945708CB5425CE0C3C651532A43D32473F236519D54FDFE0A815DCFBE9649D9D1C384BAAD67B91B2F3E21F2FADD6BB582A0B9CB016051DD82C75A08AD5BF30D584AE9C8425AB3C8F1FB9960752721CB2C8310CD7BAC84808BB979\nencap_coins = AD44643A608B78BECE50B8309F573AAC3DA68125CE877E8BCBDCD51762AA0A9E\nct = AAF11BCBE3CE59E8B7D51C9E29795D270B02F3E9BFB99A38FE0043D908AF437FFAD557BE766E81E0BA378545BC5251352D4552E0974CF1D9213CE0E1573A0EC68CBF362B3C29D2A3D4316684FCA170EC89748F3C8EDB3BA21D31F1B914165FAC1A3F40ADFDA52118536DC7354B5BB59FC9A2E7ABE3C3512347A6A278E638588D9EE6B34400E4CAB73D011DF533B57FFAAF6D5A4F8C622D53880563A0962F301014383F665901E225217FAA91365B81CB51B987725A98DB8BF219E2AE7E71D9EAF8C22F5E4DA761D462BC897F5E690146379EA20EA54FCB4A8945173ABED8CE0606B361215092F61ADDC455341970E9B8C800988BF800116334A390A191B8149D0032CB625140C74467A688D0CBB7D4946E28B2C72CE4FFDA4A0FC4311E688318A0699E392FBCF48339A33A82076B6D847D5841CBA57682277B77C65177C37580F05139AB2E8F88AFE894D40BCD7DEC3F1E01D72C741822512D30D7463A17D18B6513AF7E75130D5ABF667F071B43C313865842578F44D353E26416BD5E70F4D1BF0D39D18173B85DAAEED29A681B3A3AF07E77B75D4C1109D8E1E853D7965A863ED84C2D4B2FD6FAF01F916D7A77EFD073C57C6DADA183C44412F4EBCD894B9837AC1DAACD3A36AB824529CDD169D5CEB46B6CBF30AF441944F5CEBC0B9E12D837D6CA69F13456F3483F59B17A9537016DB99E973555E43001017C8A6013BCC58B079AF9C15892314A5B0C133997ACBD8FEE90D53272E474D1677A893E2E480ED09591F828AA0C2F5B368894502FE0DD4BEB40B37CD37CDDFD4CDB418F9049C3AAF7E1DD4E3EE0E904BD6D581AB766FABE57F7977CE7B08D46E027C4B7878A901584A3D6BCB7EFB79786DF891E1C8A3405FF0CE6E3C25BC44A6DE813EBD9A9F13539F2256E29119C45367D770F655E1D86185A31A7EC5322846E0DBE30B4E30B213FD90D9A1C5437C82978847BDD5EE00E793682D77A144D20FEB66C4A245C4A35C8F50F5C944456E91D987ABB2674A5798FA6D426B90861B37D6C37F53BB898791EAE95BF7C3A2B9FD68E5B8E5975A6A185099B52D7562BDA7D19BA143D51B3D976286A9A891FC704D9960902250E2216E7FECA41EE842DC252955CB1C28521223AF688C325538CA59C5A0EF968E52FA73E2BC10A7058D60CE5774A3831C2AB0B214EA7A1DC8DFBE0B037306D65CE4A44A20969C48E21F207D6515F10CFB3E7C78667487BEC3306650A8A26BCF8EDA17685A99C94CD48718FA08E2EC267DDB38804FCD1DCBF64C0B77E3EA7A74077D8F000953A12010DCA80BB6A8514A046B080B4CB0CC19BE94225D469312807667C3928398E3FCD4D658B3C22466F45ECE9D00A34C333A108F6F18AF2ADBB2ABF1F0A9AB048071FDCEEC4E381675F81698A111BEA70F359B7A3A9ED50069713EFB28AA3968E376A8E1BA130F9FEDC60555850FD4E81F341CFB4574042378F17385692301BEEF0CD57670DF4EB9DE80EC597F65A4699AD32B263971F8087E02C11FA957859F1E41DEFC2A378A18B4794E615\nss = 794A5CB19552D8B4B4E4EB3AC5DC75A69FC5E98ACC4B93E99DE85586C85A352E\n\ncount = 15\nkeypair_coins = 97B5665676E59E3538EBADAA8CD50DF1F9FDA1502D9894C616A946078E56B62148B1985FD7938595DAC8AB776701CA1E9FEF47350DFC45355FF1E83A08BFC3A9\npk = 8452A77401C4E343BDCBDC985B70189EA976E3D65C47649593C9CFC112A4292238302253118CAB8EC52060305392E6A131F0445A0BB4E11A1A8D7465E704B3134C3807D9BE9F8B2ABD57A00758685392592FA0B01E116410706A669A0EC5ACB524D1561A265E307C24068B12897568490458121C572C2CC43B2464F2703212641202A40B27A41FAFC4B24BEA9F26711F28B1050645A38757708AD607FF6763F14C15A2CAADFC2BC4D23C576E5CAE6A20B10CC9CF610A5931AB4C59ECBE67EA079BC3911A96B24B86A0D6B99CF85AA44094B0F6C55924776C4E1BC9CFC88A127B8195145DA3515288F933DA602F1A2747A6856657B2102774BC1946163B534D02A1CE2E641CD9FC7F7D48B6F643AB53045BC690A249433553845B34A5953C873C1C686C83BA46ACEC4E91046F9E7590196C9C24A747C6D986B4B414C223A52A6C88475405232C78AB3AAE8861A45A817EBB16C3A3070B8E842527E965013244FE50907BAC3883122393340B1E06728FA0400791B1DC3BA103C8AADB6CB0328B5EFBC85694164D0934C207B63614CCA28ECA71E5F63A58604599EB6D1D248A37EBCB17335713C4C9A0500FBF893DF475CF7C19792FD56FE0A7505DE0158F34603E0071B2AA0BDC8A12376A1313F571D33686D505660C4BACE8EA40820918E05BC15B381B90D9B31BF52E1B18C422C3935D04140170542829CDCFC883BC344606E75A2EE7AF469C5A81DAA1071771FFF275F2358472B409B1EC31EC887FD6E76CEEC6812D40BA4469B3EEB028A0A6875A19B7ACA51465CC3FE78566A3EB1B98C621EB3BBDA4E7BEB5F2344B64013EC233FB5714BC68B767DA8B60A6B0FFC8565369C19877C16D7C70F17B85F7A228D28A5936968915D026CF683C762714830C1742AB4DFF789F1F43782622A070A4AB52633EFC52693B695DAB939BC24944733905AE86801C4577324C625159B141C5A1014A6E458B71A959001839C461E17A3AC46DA47AB687D2342FF63B83D3331510C98AC484F44B7FB6A31F6926CF047982C400008BB3B0D1EBBA3CB2345613680531B0708A64B937C88B2985C01A10EEA22FE5022912F9AD2BC667CEA16B0A091F3FA9BBB9B8C30160717B21CEF9D74458241BEEDC215D44900CF40709F6671F221D39C804EB6756C812364DF0503355B8B01102574AC3F07234BBB1B658EA822D52A452545DA3544C041C3A3F89BA30005A992B432178BFBA078686A07971601F8B12C22B23B69C05A89ADC2469287F052A6D4F58798E10A464DB4AA71AB30A94854D1B8C16893B432A8DC2859C66A168C8C5AD4D04559056C4588B0A8755013E378545B47EFBE90CA97552C9B8711D3281CC7B9057F78A68A59D5AA642D1E9233DE093DF5705D8639D702097F0DBC98451A46905AE72D876E1243546590599FC5923B37B4CF0A3F7CB47DFE8AF00F6A999127A256681A5705BF5100D7096713C49149C7C561C0783E048CC3444776BF8997671970535C2CAC5360C9B53E0D952AF348A28E4826DB9810F07110A48771C2C9B21DA3CA719C7A5407B92020AAA0180B4D6B3AE42A1C09CA38FA59D1ED02A3A0079F2E922D0B36D9795C1FA42354CA51", + "DDC11A315515A45BC7E1E21BCD3287E18BB0AC3F8119A88D1FBCE1D3419BEF67B6694D9FA1BB309CC61C819176964DC\nsk = 48C78CB714B9CF88A8B317A6FBB681B8F47D56524122156503823B600236D3726EDD9087504705CB4698A1515DC0D80B3F87C63D575170F45D121A848D897C3C0063DFE9B2D616A96552384FB72D6226A193F90E15B364AE667C34BA27FDD0AC0DEBCF450578C6D182DA365D40786522C37B54E0126ED7B3C6BCCF28F40770F23736B394210B67EBFA72F6B27799FB1F6E48CB7407261A86884621C529974635B35F5B4C530E68BEE8CC213387B66A4127D01223180067A2EC24B2EBB579F74BFD5417FE995BBF816737722912B5B4DBB4C938D0686D1C2A44880FA7231944C195FBD67C67E60861D169DDC41F8150B52A68C14425190BE2ABBCF5BABB734AA03538899678D4290738CC63EEE611E4344EA73B9C41F36C712A4C6C72422000CB93E144F3C588A2299D5704CB347B90B2905CBF69CF1DC5C670909C478094E88C01BB3B3E4FE246F8DC3C62DA37BB13B6E2046911D85D5790869FA4A54FF16794620480919C0DD74B9887BB5C125C34D76B3527A42A46B689FC4C57571AF13C44B7D30A041028E97C0A1E50621567374DE7A4207ACD4CB18417C7984645CF4F2B5A5434BE8F119798C0760229301E14431B0B652C643C0EA0CCAA13CBC6FA6DC8D348B908B78343978FD5A0EEE90CA5104184F33F107837B3EC667EB207000570DD33856939BC8BA671B3731EDB2A94596A8F2F37BBBF5048087091FD2AB164F5C6A8F92F65239F08844ED4F605E3BC1BF780877EEB3F4C85BF696C691F85A947461331AA33B15973AB4923F429C7913731BC025539232217F801EC7078E2F0AF3EC7494684BFC40B4FF31798467746F60BC9BCCB5B1E397DFC6165773A965E55034DD1094966694D7806F2F505CEBC3B3DC307405431FCA21614089C633B522510A5FCA73462B32FD69200DC614C5E88454F181D845B19B8866259A2372BB3361B9ABD5AA278B1773057E26108BB020A9610BC19AF13454DF46B4FB5A68C3E7ABA6E7197AD63439C7252CF9507E32072E437296883C93902250165A1AEE8BE0CE6ACC2029E10E97536EB958B691AE3E3AA9996986805C6D1F6356D26C1E63C550381B292FB1B95E183CA933D5BE1BAF6294C4B248B4264724712B2A2816ED3D09042287EB8A17AD6C86255AC492F53A21EBCC19B3C8BB1E78F58BA98BC8AA77F6A5CB90C0456E1CD663137E11185536B02D8708644539701B193BA52258064B289D053404BC78A397AB86895BAF1934E8B2F6CC3AE48869BE7422E581A6FF748519BC30BC96C716B0A24A02679ACD5151CB2A0FA127C81EA513C3CCC3B84A34025522486CE424BC04C860EDC5758AA990FED372DB324614FE91589D78ACC88C43C2643D540A509F090EBFA6214832C76CA982FAA1CA4465F9C14AB4E6459F072558946CEBA113B5FC7024A364970C72933331A6A4B0D4196B9E6219595E229F3E28FB2D5C6C4C041DB226AB611B04C3A80FB5A7F15E08DF3347DEF02663AA39409AC4E8C8BB0934B46B6A8816CC70C8C0B11A7EC1CCE57BF5BAA30E69207D7E59C9E386D5CF7863C133BA1B510F5E06C4876BA7849611BACC369B039EFE173DF6B8A22469E1F200F2AA53FF84390B88302D9F9915C4B8257754B3423097E7C6B8452A77401C4E343BDCBDC985B70189EA976E3D65C47649593C9CFC112A4292238302253118CAB8EC52060305392E6A131F0445A0BB4E11A1A8D7465E704B3134C3807D9BE9F8B2ABD57A00758685392592FA0B01E116410706A669A0EC5ACB524D1561A265E307C24068B12897568490458121C572C2CC43B2464F2703212641202A40B27A41FAFC4B24BEA9F26711F28B1050645A38757708AD607FF6763F14C15A2CAADFC2BC4D23C576E5CAE6A20B10CC9CF610A5931AB4C59ECBE67EA079BC3911A96B24B86A0D6B99CF85AA44094B0F6C55924776C4E1BC9CFC88A127B8195145DA3515288F933DA602F1A2747A6856657B2102774BC1946163B534D02A1CE2E641CD9FC7F7D48B6F643AB53045BC690A249433553845B34A5953C873C1C686C83BA46ACEC4E91046F9E7590196C9C24A747C6D986B4B414C223A52A6C88475405232C78AB3AAE8861A45A817EBB16C3A3070B8E842527E965013244FE50907BAC3883122393340B1E06728FA0400791B1DC3BA103C8AADB6CB0328B5EFBC85694164D0934C207B63614CCA28ECA71E5F63A58604599EB6D1D248A37EBCB17335713C4C9A0500FBF893DF475CF7C19792FD56FE0A7505DE0158F34603E0071B2AA0BDC8A12376A1313F571D33686D505660C4BACE8EA40820918E05BC15B381B90D9B31BF52E1B18C422C3935D04140170542829CDCFC883BC344606E75A2EE7AF469C5A81DAA1071771FFF275F2358472B409B1EC31EC887FD6E76CEEC6812D40BA4469B3EEB028A0A6875A19B7ACA51465CC3FE78566A3EB1B98C621EB3BBDA4E7BEB5F2344B64013EC233FB5714BC68B767DA8B60A6B0FFC8565369C19877C16D7C70F17B85F7A228D28A5936968915D026CF683C762714830C1742AB4DFF789F1F43782622A070A4AB52633EFC52693B695DAB939BC24944733905AE86801C4577324C625159B141C5A1014A6E458B71A959001839C461E17A3AC46DA47AB687D2342FF63B83D3331510C98AC484F44B7FB6A31F6926CF047982C400008BB3B0D1EBBA3CB2345613680531B0708A64B937C88B2985C01A10EEA22FE5022912F9AD2BC667CEA16B0A091F3FA9BBB9B8C30160717B21CEF9D74458241BEEDC215D44900CF40709F6671F221D39C804EB6756C812364DF0503355B8B01102574AC3F07234BBB1B658EA822D52A452545DA3544C041C3A3F89BA30005A992B432178BFBA078686A07971601F8B12C22B23B69C05A89ADC2469287F052A6D4F58798E10A464DB4AA71AB30A94854D1B8C16893B432A8DC2859C66A168C8C5AD4D04559056C4588B0A8755013E378545B47EFBE90CA97552C9B8711D3281CC7B9057F78A68A59D5AA642D1E9233DE093DF5705D8639D702097F0DBC98451A46905AE72D876E1243546590599FC5923B37B4CF0A3F7CB47DFE8AF00F6A999127A256681A5705BF5100D7096713C49149C7C561C0783E048CC3444776BF8997671970535C2CAC5360C9B53E0D952AF348A28E4826DB9810F07110A48771C2C9B21DA3CA719C7A5407B92020AAA0180B4D6B3AE42A1C09CA38FA59D1ED02A3A0079F2E922D0B36D9795C1FA42354CA51DDC11A315515A45BC7E1E21BCD3287E18BB0AC3F8119A88D1FBCE1D3419BEF67B6694D9FA1BB309CC61C819176964DCA19C2C9C907B129D01CC44A95949121C39534CC98B6D105E60FE519A000CC2AE48B1985FD7938595DAC8AB776701CA1E9FEF47350DFC45355FF1E83A08BFC3A9\nencap_coins = 4FF3F8A7536A4C7D4BDEF0400ED1B450CAC329089B1443BF148FEA0A01398912\nct = 822722B4F0C1FD3E731E7F1C927AE8CF8AAE036D769D25781E9920F4BE0783872D254B0204BE0FCF57ADAC373AD0B128F98CE8AE349EA57196BEE3B0D10121AF74B271234655070E1512F21F7EDD67E3959B30FD9D58FEE57817D546613CAFEF0EBDAEC56A3C8F623042159E2B923EB4857716C2D066AD5C38C08CC1D42EA80724232DC02DD73897C888F60A563C9CE49B72A5AAD2FCBD6E1C63F77F0D6CA3E29CA2CDFE3C883954E38493C7CF1AF16B74656596A6715F81806EEF1673352CFC5E083106A05C1CF1E39008935560C173F4D96FBA7864F5E5E54C6277A36AEF8467D1250D085A794A0ECBF163FCEC392DA81FA81C73FAFAE02FE93DD06985B23052A8451FA8D40694F3A90B0CAC31F98C0431D1E118C6E8DB7EED573A2AD4AD1F4C9364C60A9F7FD4E3229BECA976A4800BBFB10064F6FCF789BEDE41BDC270520133096AE5D74E4DA083BF1D415EE75FA138F53F6E3F887825D6A7666B7CB4568D8A24B4A048225573FDD2DCA312C6C66352B904922677E87755558A9FC9520965924855AFB1885EA04E6E7DB56866BE0B88F6AE1B2A3C4B046C3D6BDA32BF02211733B80F1BF5B67D191A507AE1EB5D9E82FCD47D62F81370060667A8091037D571E4E8C03E66C23049DD7B3F7700E3AAC89990571ACF7D1E5BC9918EE763AA070F85CCC982E28F1F4EED1C5C6619814FBED9694F2A6D0320ED9CB52094CC7BB13954CB4B3F35F11E9388A9F3588CDA554E04736A842D7D3A4BA3D1B2C679DE7D9F925D1D3A946278F689AD0A27499B81818A6C667C24AD28513CEFC8EBBA6CEDFD29D70E212849B7CFB28A490E2B38D1C84F1ED243A5D22A2A64E9C2FAB8688842811917079B188A39E05A6151D008B39074654CCBC3836CA600F0B74FA4164C84511A2067902FEA3F8AFA87D4A4B755884CD2EC4C37295F2A3B01FEAD8337354F065C8584949875B2558116DAD3880E2787784BFBA01129A64EFEA61F42CA723E9988E9F2EEFED147ACFDF4306D9EDE134842DFD35D1E5E0122E1EB288D8E5061792C8B4E25C6348580F36DC9458BD6B9EF127C618617CE9F8C92E40B0E1849CCD68C883780A0015C3EA6DBEB5B11E75F2B4B66AFDF856C9419BB254EC5E4FB6D5A7BDE05F5BCCB31602F51C77D22E483C89F5FA3747CD5B988F9B1E5052C3B7D4570B6F5E70835C780E273B00E8378764F363CCA773C88184AFF9099486A53BEEF8444EB363E69A656F41CB3B7422AB6266AA535610CD99CA92C77AD751D95A9A5E1E6BAD6462FA54E926EF9F1E31ABC20A24B49098F6B1AF0BD63248C88675D7D4348DF856D6E782E9D9E979D97FF53D5804AF958BDBC9000CCDE7D2CF184770581EA4498AB6D6C53E1672C954BFF43973D286EE69AE19A5055D2A739EA8B3256E105D1ADFDABC18B3D222CB8BB5B1A03DC0A959F47D59C499416C0301FC003EB4144B5A23359A7DF09678BDDF11D352EB2D65147F61E3380486739251C10871060A36B6BD7E8B64EE02FC24BBB5E5F65DFD91D9D5C35AFFA912DB65F15\nss = 9E30C8C6E962986C1B4C51C49B2D248C3770649B951A9B6C8C06F4A997E6F199\n\ncount = 16\nkeypair_coins = EF99224A03A85A46EF115474EC5B5D620DA6795D6EFCCA4C9135D19958A9DE6285C3A8B3732DB34F4CD985B65E078AFE6A735B53F4BC36D4762A3E45D1DBCB74\npk = A16730C3D8A8484295A1D995716A3BF93C7270671AFB7886F397AF65F5BAC1B1A1A49084D1A672A1F98BCA762287E90410AB01098C74869B42479C2CAE5906AB354970C05CD256514F5C2E763230B6770884E7B700544977993DF1F57969E0265FAC4F474B76648B36F5711163638069820232B8A64F16BDE83557B0540405D7987CC39069923DFA984CA4045999A77483E04FE6EB0BE954A74C13CFCEA79ED0D8124B01B740A26ED961B2BC496CBDC539A10B8151E0078F66751FE78D2F3A5100761C8BEB514923A7B4F3AE208766FD852222DC31FC1A59A883C401459DC73468EB35AF61D28EC1DA147C882CC7F5AD5204BD8DA270E4C91DC37BAAE1811CFF4CBF8605BB48AC8585094327A8C17527BF5B3968AA268E152B6896A288A9722183E199F608CD7A412CA949113E87A956E4AD12737D53C3BE4752533BC755F7A1C4B07661E988210AC72131B4496941893A9C6F1180BA622436EEB02F3A3A090C00B1FFD310E811A7A8B87984D275D76B0F99ABBFA45CC5096A1562A375F0599D9698B18012A84A0628601C731CE1C", + "E6824907F1B16878A75418C2FB0751202FCC988779BE2326E2E5228C9493A0E628441B13D58B3C79DF34B7B53C7BE816CC7368F2F31C380296250B33269158C4F9706D75B3B5536ADFE5B0BCF514899287B4B637BB4249DB25A0413533D628597DDD745A7F5270D136763E48A517CA62E116913350E7361580CF77BCDB5B607B38D49E1581654A61AD9602F4415F484BCCBD833255A29D2E76262B401F7FA5A1E68BB136771C41B29333B653602B79A2ABA21004E8A257DF7362163B6512EDA4E1376ABA1FACF04D1AA56C814000D718B5B504F1B9D2E627B8A678D0294C5E3B186A67C082B90ABB1C839232912C39C3E02717A65E24A185A5D96E99851EB538A4AB872148C2D7BC52EC4270F708690D0678D43C783CA194B4AAEB6F2156297355D7823E0F80890608768C65073E04E7E5B45ACBB1CB6446483E7C315A0A0C2066F080A53818A4EC0E4973F630F6822A437F6684FC9431F20A306A055F9906435172699B3CD0D46457BE26560F692864A97F80B493093270B5225980287F1F5711B355F9CCC018D670ED8BA64F10BA98B0068E7714074E14736087819EC2CBC960FE6939A4E9A4DE2045B53E81FBB845B0E546DE6B34EE9E91ECF0C9F74C569DEC949D3EA11785639126BBD45137021E9670735488E46A325342A2B4A959297816D1AC731CB501D628BC09083AB5C4DAFC09A36C7C70F2885A6622BB7162AA2C999927A1FB749BAE280237DB21418E2CEC419990288B813E80765B47E4C314171B849E570C7533CC5BB77CB9F10272926C382FC0796F39924B6971FE6B54638C4CF25318E146AA02769E64C47E4DA2D5264B282B32933D8C74242AA73C15875934E99D6C570572E03C54E47726E3B0416D3737A29624169778970E99DE64BC2B16039AE97C7472A41C9A6C6FD45BD7738CB662505BB26A307A2CFB9680F5CAC086F9BBF7799263C0B5367032196F1BD842534601094668A33BD339DB59746D63BA6007887AB750F5887453E02B22C3148BF6C48C806A94CB7BF23568789A1260C87AF0548C71881401C565268317756A211B6955ED03C49E0BEB46C4EA9FF7BE444932E61D464966BFFC96BEC0647AB34F2\nsk = 953B6E6F452FFAB6B9E27B707F600992E228F5FAC92680AAF31300154B218AE51A012A4CF53840CFD714CB63CB4C7AA0E8EA6E50803CA370BB38C7205D9365448B38308868C83348ACC365BE62B4FA763ECC5112A48558E57230D92B5869D77D99A5C0BEF49819500B333300910117E05B082D15368AE529923C6BC9D3594AB33C91B81549829A2EE55AD152493E80AA80399F770899EC05417A698E6493AA647691FEDC92854C23702CAAFC8AB3A3194CE8437B8E2A7F69454ADF3170C282972ABB93CF152DD85587F6272B0B71590C81B3A9F680D19445FFF0C395310A17F55272CC3E1364A9AEA7A67AF4561CF10043B7B7EB4AB0791A8D62814F4B6536CFA69CA0493FEC1A53D58709FBAB9C87578D83C9441D62C267E7AA4EF0AFC7106C9F834A5A13206C4B58D7378AF90B85F7E05237559D6D7819F455AA01D68BC297A8DD760A0DF971542919979218B4861A49E45AAB12BE67080D197C25CA53483D781BA27893D23BAECD393DD1643DC2A53275C84A19900B364CCC94A8BA3B5768F8DBBE08A7B08FD2746BEC62C98C5E5198695B12048BA5C98753AABA88BFBBC6C8DE490AFAA8343D334AAEB72532C63D60667079B41B6A287B04C797458ACD9104C94E96BF18137B0868737DC00A8E2164E0980B9B2135DC7C0E80E1B930C22874FC2CDBE0B5542732E8FA80E407A1A6E5AF0AA3168A963587379AA3E6A2B082A8A35604BAD827BD6AA1FEA76A608100DDC40B17283EDDAB2335B8796DC1BB57887787A4273C4185867368BE581F6E5767BBF0580F07B003556ECFFC3AE336260FA0A80A2C9E4C9914144551C89A9D68373ED9C7AFA83C75C6B8AFFB54187D3B46ABDC61D9E070B5584BE7564F932985EA4C739CC906732A7CF79A65F0F7B0682CAA5D2070B3E0699B1BB3AC0B38CAF22CA4DB9472D06B02954E36C0A3D8890473588C77E43990DA1C7103985761CA711109BEC0B805607D732A36BAF897E93C6D9A988B94C67A4592B7583126FD452FF0B45A033824983715C60478685B9C2D013D41B47EB342A05FB76232554DF30990D6F1B37EA9172020C66FAC8F415615EBE07833A2588EF622034074B214CCD9395648071821D1109DAA87C0E00CD9573254538EC3B8459CE56578C09CA66A508E88C4DBF6183A268B86FA4B7733A8CC89AC81619AF8F56D8ADB1F665A7AC413005BE730AA41CEF2B06A7FBA535552C8CEF73E90A8584A8B799C323F61FAAD4B8C25D06CB883493147069EB1C9C8FB262B699693D0601262E9CE5B383A0D27C1572C49547BC908C003490827343A690859A15B20119975C35AA991183052F117B53D06C5F4683D19CA5BA6F5595B8B269D96C1B3524CC8FC6EEC750CA33B5518603F59B50741D246642BB88EF61A8BD4C54F48AF3F573D4CDC5143ECBDDAB5A281400721544E16E35EA7A05F161003A6C3ADAF690189BCB074F546BC2033B1E8B00D56CF32E0733DC81D05EB358D148A91FACA963B814A9C5FDFDB4DE79B729DFC26C3D9B48A4730337B0BAC8C2A3628268159979F6B10AA9AB90ADAB98B9C0928FC4E3570AB01F02D5A64C5F605596E3498EA532472760F61CB2EB734C174E48237C656636645886B65C566BF95D927A16730C3D8A8484295A1D995716A3BF93C7270671AFB7886F397AF65F5BAC1B1A1A49084D1A672A1F98BCA762287E90410AB01098C74869B42479C2CAE5906AB354970C05CD256514F5C2E763230B6770884E7B700544977993DF1F57969E0265FAC4F474B76648B36F5711163638069820232B8A64F16BDE83557B0540405D7987CC39069923DFA984CA4045999A77483E04FE6EB0BE954A74C13CFCEA79ED0D8124B01B740A26ED961B2BC496CBDC539A10B8151E0078F66751FE78D2F3A5100761C8BEB514923A7B4F3AE208766FD852222DC31FC1A59A883C401459DC73468EB35AF61D28EC1DA147C882CC7F5AD5204BD8DA270E4C91DC37BAAE1811CFF4CBF8605BB48AC8585094327A8C17527BF5B3968AA268E152B6896A288A9722183E199F608CD7A412CA949113E87A956E4AD12737D53C3BE4752533BC755F7A1C4B07661E988210AC72131B4496941893A9C6F1180BA622436EEB02F3A3A090C00B1FFD310E811A7A8B87984D275D76B0F99ABBFA45CC5096A1562A375F0599D9698B18012A84A0628601C731CE1CE6824907F1B16878A75418C2FB0751202FCC988779BE2326E2E5228C9493A0E628441B13D58B3C79DF34B7B53C7BE816CC7368F2F31C380296250B33269158C4F9706D75B3B5536ADFE5B0BCF514899287B4B637BB4249DB25A0413533D628597DDD745A7F5270D136763E48A517CA62E116913350E7361580CF77BCDB5B607B38D49E1581654A61AD9602F4415F484BCCBD833255A29D2E76262B401F7FA5A1E68BB136771C41B29333B653602B79A2ABA21004E8A257DF7362163B6512EDA4E1376ABA1FACF04D1AA56C814000D718B5B504F1B9D2E627B8A678D0294C5E3B186A67C082B90ABB1C839232912C39C3E02717A65E24A185A5D96E99851EB538A4AB872148C2D7BC52EC4270F708690D0678D43C783CA194B4AAEB6F2156297355D7823E0F80890608768C65073E04E7E5B45ACBB1CB6446483E7C315A0A0C2066F080A53818A4EC0E4973F630F6822A437F6684FC9431F20A306A055F9906435172699B3CD0D46457BE26560F692864A97F80B493093270B5225980287F1F5711B355F9CCC018D670ED8BA64F10BA98B0068E7714074E14736087819EC2CBC960FE6939A4E9A4DE2045B53E81FBB845B0E546DE6B34EE9E91ECF0C9F74C569DEC949D3EA11785639126BBD45137021E9670735488E46A325342A2B4A959297816D1AC731CB501D628BC09083AB5C4DAFC09A36C7C70F2885A6622BB7162AA2C999927A1FB749BAE280237DB21418E2CEC419990288B813E80765B47E4C314171B849E570C7533CC5BB77CB9F10272926C382FC0796F39924B6971FE6B54638C4CF25318E146AA02769E64C47E4DA2D5264B282B32933D8C74242AA73C15875934E99D6C570572E03C54E47726E3B0416D3737A29624169778970E99DE64BC2B16039AE97C7472A41C9A6C6FD45BD7738CB662505BB26A307A2CFB9680F5CAC086F9BBF7799263C0B5367032196F1BD842534601094668A33BD339DB59746D63BA6007887AB750F5887453E02B22C3148BF6C48C806A94CB7BF23568789A1260C87AF0548C71881401C565268317756A211B6955ED03C49E0BEB46C4EA9FF7BE444932E61D464966BFFC96BEC0647AB34F2E4174B6E7542FBE80AB2BC06DFB802F691AFF147FF90332D5EA739216C18D87285C3A8B3732DB34F4CD985B65E078AFE6A735B53F4BC36D4762A3E45D1DBCB74\nencap_coins = ACE5E23F87CDB061C1821314F8353CFA96D69CF902A2866E5075A796B24594BF\nct = 72C22278F96655911148625A62833FFAC3CFB53554283B89C42BF5F1237AD715290C0F58C73743F0ACE534B8E27DFD2E053D54AAF33BDCABB6F263D1CD50B72B9D0D0D8884D9F2E6CA2249AECB32CD01507D2F079CB1F693E0536644078EF80003D26CE4F561B8669D0BDB5B7EF680430203E87D3C35A0D4536B9C9BB2D92594DC9EB31C1F85B6CF888A21CCF3039BE9D06220B247DDD809F125B8BFC9B40E484C5F6B3A3B85FC1BA1F2387C0E5C2DBB59DBF78DC22D00C0B5B0CEB360F222AD91935ABBEA835F0156C8C19EC6BEA067C03BACA54DF44D42D5B83035BDA668B0E2BFFF951B8B2E32573A96EA211EDEE9DB3F4F9141804D2B85A4EB5C727D91A0CEC961246932999ED8AB963AFD0C9D87D77CB18BE8047A722B40BC6D4C87DAB53258C97D0D67A67C52D699ABC9BCC2F64D5DC11FB941898CA5C26DA2F1A2AC21131929332DE37909311CB2DC67139360AA9C1DD897208518314AE476971BB9AC349F75C0E3C9E556CBD45F8B74ADFCD78B4AC6D117D7378F3B1A064C1414F2AD241654AB744AB0B1273A11A5D7571FD9F658CD0A4B764B0F20F344F4D69852C5379FA2F68F8C59CFD656AAAAC74ADEB986CD457B79B88C84C7E4149BDF4F8981C87F55CD7C4722B87BCAFFF11A2024AAD9FBACAC12342BEA737948020F287CD85F85F905917BCB4B5E6E89D399F6F8E7F203DA9AF3C04763BEC3DF069DE27D289EA97B83AF785262D3ECBD472B4A412EFF1306021C59E8FE0F2D8B70E532F3E4A31083ED4BBE5FCE67A9C1EC8007DE8798197D10D7B4AC935214EF5D4CC6AED1B76A0ECBB244D2C9283944044F563D04C5224221E12931232CA8027460ECC2ABE4C23CFE5CAA98BC7843DC7FEFBA3DF0C4BD5E1CCFDA91BDFD859D678C0C7474EF02F6EE44ADFDDA4EDD1525679C5FA82069F25DB8E4657D4456F8989D1CA5DBEF3A6C8102FB707BBB63D66AAECB4FFDF1B445A5B65E080CFA80542F786E4AC8E71F56BD4B69B290B5B31A2CE1268F1118D9C5BC20DE4860D17E0F883D70478C74B470C9946C28AC4D7C109826D068D6B49EF2CE4FBA229BC2219948280F7FAD9B1D4DE9A00E40EFDFFA5B8751374961A3520AC100D0F0FD779810AF16C40F795DFA43BE0ABD0F6C2BFF0B6D3B72C9CB628421332ECBD8DFB1047DECBFBD8BF8ADF4993EBD60AEF98CEE5B6D0124153233B181EF6EE6F50795159692B1B95F164A", + "BAA755444A4CF2279799304AE11D23E1E55FFD385FC7B06EBE4C2C5586F89533A045C1436F79F7D5559D11FC793FBB503FF01158DE93B0646E9BFF8E22E711B571A6A5E10F7A6A123F45DB39A5154CB92118C917053807D24C667B7E6E043F5D3E10B25298B883677B9166BA8A1AEEC2B2D717A651D97699CDB55B95C1563716606E6174D7CBCBDA9D3AC81620275D377FE1CC765A2F20DFA911AA2FF3C0D8BCA2CE29DA946790C74E07E25BAD8DDD81ED62957CA59F6FD478FC9590238332EC785E9496F33DEED940C787D3CF696DCC0C767D1DDB1DAE5DEFB70884EB26D5\nss = A3DB23ACE4A8EF0E43134949DAD1C1A89D9CC527115530575306AE97D59D0845\n\ncount = 17\nkeypair_coins = B12F6FD965EA9C5B947DB80FC60C83D5E232DCA82E7263027C19BD62E5A6FF5511C11C1086F0365E9FBD525B3FCB4E4F169FB488BF0CBCB455EC098D49E903C9\npk = AD735E9E838DA63AC7A3E1CD3E574DB17C2601D3927CC2A9D228A05F5C1E51A63634383FF5E03151F43C66A07BE9E992AA65CA4CA17B1E021E06B261CCAA89B12A4916A5A4E39826A94C86BCBA9FC7D65FF04549DB70B300B1CB280B3A41E82B6C8B0A4A3C5E40EBA59FD18F004CA3E4C15BEDF22E099C99A3D114EB0C5988BA02873B9581107A23E54A8E51AE62375A887929F7333D4D763E23B20A246785E07700BB16C531692531433EB6A6594D1464BCA7348022C1D4219CD8AA6614862C42376C3A0C4674181983F2A2CE8B7F32659AE87ACCAB6023938592E188A3C1015E98720EACC9AA837A49C4617A850C89E1212478F3C6BBA51C30A64A8A1C225274C92EA953872342A96CA3235CA7A9467BE55250796126B30694F71B2F75B56D84AC89C4B635118145C7B8967DE515ECC719E35804194B7EA9304636283CBF72339474CE1DA00106110A596725574747DC07B3F0C7C527ACA703CB23BAA080BB7A4CFC1009B3E5AA89659121E365FD6CB6FD15AFED70779A978B3FF50F915B6C16A350141721EFD61085189C3265530C1A17491B317031B4E4667EB8314AD34CB7DAA50566A9812377CF24076FC3DC748FD58865B1B02DBB831B25B7B7383579376FDAA6C8A5323230025A4BC66977F6A458374FAEB14E47F70E654C42C94A5FC5E386A57ABDE3F29349623E4DE92F900527C165870FCC26A2F95FA1850F2C940FB7B87686E253DD54B6706A84A0C70E3AB04CA8446EFB77609E9815A261AF5A135836064D44A485B5E850F10153653838E5874B76568516E847A2A9B186E8A50C34C2D2B0839EE58024211018B0A13FC781623CC313B30C26A258106941A66B3CD9481ACA7C7E3CE3202F098746C42C58F4C7DBE52FB5F606FBF31B9B5022E691CBEF1464F6942AA503147EBA081817AE28581ECDD867A96195DB320BD2D91C36DB01ADE9AFFB6B00F86C13E2E252C988300B05AFCD007470CC3022E96AF0768DBEBBCF62B53345B213C1544491F1BC75BA96BD73BE57A2CD6874511B44BF2DD27F4FC87C167815FEC59F7A043F699BA4D23400886A7214160C23DC96056BBCC7007A0049435C534B66971E6E5C90EFFA6645C45031C0C905B9887700181565B53165BAB605A51BCACA0DD0C308A46432794C38F21E04172005F4348211C63A40CFFD7C32BCD57FDE852FEC793CB7013E74504721F6BFB7637F73319F75B08E3C25777C969C6EA000C9B79D6F16A00CC4B00AD7CA4F8704B2E54D9D27524F6B80A6D51F85447B22C29AF0036C6BA486862C8B4FB03F26042A0E195A3E91BC303770AC844E77805E41EC6ACA920FF3A1A3ABE81B598C193723B20C8685590131DA89C0ACE08A592489791911C92C7E6ED55F642CAF918173F190B2FB8CC0CB2139FB6CAA259B5A4634CFD0A532B719903E32831489A2D390B4C5A5066B4AB5A3316441B162407096A0BC0342599804752FD4F21C45923705A7A04012AE4A900C01D584F9F41676C36681994C2F4037BDFB84A69A81FA561E5BE05777B571922988EAC714FF249926FC9CC4E93666E198308A434DF74DFF3C5A440948437A7C500582124574AE225F52D322D0909B5E946A5E22AC8F774F69C48B7874417BB1C0B93CC0A90D2A9640377808CCC2673495C4839FDA0D1038B27BEFE3D22E2B727A\nsk = 87C0B4D44CC9EB48C126C5877FF87929B08485FB81E479139C3299C70C43C3FC8C238A81D4E61E62A33DB2499C866B7107D116B7FCB1B0530A7E758A8D487D11575079265B3158302A23732BD07330071BD7CB7199476C39B583A2446109E99FD5C95BE21A292CF37490906E84A82605B8455825C82ECA4B7E218644460CE581214C78AC4473688BD6A9A826217490AD791B7835A85935782847981CA97B6DFE88B63701CFBE3929A2DBAB1628155506C353639D153656B90C5AFF36BAEDF1B87DA5BCE2A108FB6C3B29E77DAE803A0DCBA48AC6882F6C1194E88387F30A47C27D02C37D988346A2A29584A55CB5D3C44C05A18619A4FD412BABC31A046221B3994C8F22CE272C9E6E948C3D043295F413349796C38911F8DCADEAE47351C15E9A1743EB65BDC7471F37FCC93CEC867CD4808ECB281FC17EFD004DD64AB432D664864B43F8A9B1E763529AE2C413ABBCF30A4A478A30A0104D802037C4A8AF01B534DD600E31A1630FF13B2F730924CB790166AF3B7322BAF4409CBBA500C1BB32894E65445F04E4B4B4933DE51267635037FAA44E2775CAA4212F4E0600E51069ABA662C86145E2117347BB1748D63E412550C004237CF02B02AABB18D8533D19B1A879A079B31D529AACBF5258483C80738B380C83119C12B23CDCBC7D027506F3705CE1316DD24594A4BD32D10382F8AB47478F23763898398D7430264203A76B0C4455237F3E765EA5516388595CE9E2BCE2DC2258B5B96C782865FB5354427A2D7806123B0CCA782B1C329411C6C133934BA4A959DA88A072BC6E2D63A007572E36B82C5643564BEC47BC8953D4AAABD146AB5EB36E33F825FB9CA01E223253C320F76C98F810CA52A2C604622F7A60378809A59B19680AA69EED2003E272B8A1F3C8A55BCA129640C5A00D187BCAF465204C73CEE66A2FEEA414F02859C9988356D26665196674D25E64CC5689965CFDB2C0E47A531CE32B3DAA9C649954342A3F62253FDF826AAFCA7DC85A7A8E15161435212D7A4A3BD4B57A2CCCA3506999D407D9B6ABCC97209FA97454B0974DC2C7CF3C3FA40306CD6239DC450536974A8AB773374504B9889CB42BCE4EF4606BDAA559346F18D087BF8B7F0D9B21B0C9B75B5903194B0744A1C47483488EB4C1CA2C83D8198CC6A523D9329F6582863CAC2951268C01770A8081C1C26587D7610088E6068E020E10472C825C395AC6783F074EFA8597FEAC3734399BFA247E4E1531EAC70FE49355E44B3BA5439EA1E65EDA94485FB710124BB968490F1C8B68E87A4C4682156FC06A33275B6B202AA0D508B3789AACA627F0F0C19026CEC38A95F7547D936B255BE7A7525C97AB4282714C32A23C4723A82298F2CE90FCB4761B9EEE869E4D3484BA2B222DC28BC612B1F41607CF57781990009F29617549C0B2179705A34916DB154AA3747867C3EF6A0693BBA5C1D42E14B3247B41059F92607A60AFCDECC1C6F3839DB943F5EBC4D340AABE21269095B3F7D9BDE9EBC21DE788794B63E1098CC2903A83CA2027E8BCB78B855FD56FCF16B45E47994AAC71FC815C521AC1A1B697A18569AC2816F52640CF9059C4EB95E6FA1B32B77BD7CBCB6AB384DE74B6A2708400E980AD735E9E838DA63AC7A3E1CD3E574DB17C2601D3927CC2A9D228A05F5C1E51A63634383FF5E03151F43C66A07BE9E992AA65CA4CA17B1E021E06B261CCAA89B12A4916A5A4E39826A94C86BCBA9FC7D65FF04549DB70B300B1CB280B3A41E82B6C8B0A4A3C5E40EBA59FD18F004CA3E4C15BEDF22E099C99A3D114EB0C5988BA02873B9581107A23E54A8E51AE62375A887929F7333D4D763E23B20A246785E07700BB16C531692531433EB6A6594D1464BCA7348022C1D4219CD8AA6614862C42376C3A0C4674181983F2A2CE8B7F32659AE87ACCAB6023938592E188A3C1015E98720EACC9AA837A49C4617A850C89E1212478F3C6BBA51C30A64A8A1C225274C92EA953872342A96CA3235CA7A9467BE55250796126B30694F71B2F75B56D84AC89C4B635118145C7B8967DE515ECC719E35804194B7EA9304636283CBF72339474CE1DA00106110A596725574747DC07B3F0C7C527ACA703CB23BAA080BB7A4CFC1009B3E5AA89659121E365FD6CB6FD15AFED70779A978B3FF50F915B6C16A350141721EFD61085189C3265530C1A17491B317031B4E4667EB8314AD34CB7DAA50566A9812377CF24076FC3DC748FD58865B1B02DBB831B25B7B7383579376FDAA6C8A5323230025A4BC66977F6A458374FAEB14E47F70E654C42C94A5FC5E386A57ABDE3F29349623E4DE92F900527C165870FCC26A2F95FA1850F2C940FB7B87686E253DD54B6706A84A0C70E3AB04CA8446EFB77609E9815A261AF5A135836064D44A485B5E850F10153653838E5874B76568516E847A2A9B186E8A50C34C2D2B0839EE58024211018B0A13FC781623CC313B30C26A258106941A66B3CD9481ACA7C7E3CE3202F098746C42C58F4C7DBE52FB5F606FBF31B9B5022E691CBEF1464F6942AA503147EBA081817AE28581ECDD867A96195DB320BD2D91C36DB01ADE9AFFB6B00F86C13E2E252C988300B05AFCD007470CC3022E96AF0768DBEBBCF62B53345B213C1544491F1BC75BA96BD73BE57A2CD6874511B44BF2DD27F4FC87C167815FEC59F7A043F699BA4D23400886A7214160C23DC96056BBCC7007A0049435C534B66971E6E5C90EFFA6645C45031C0C905B9887700181565B53165BAB605A51BCACA0DD0C308A46432794C38F21E04172005F4348211C63A40CFFD7C32BCD57FDE852FEC793CB7013E74504721F6BFB7637F73319F75B08E3C25777C969C6EA000C9B79D6F16A00CC4B00AD7CA4F8704B2E54D9D27524F6B80A6D51F85447B22C29AF0036C6BA486862C8B4FB03F26042A0E195A3E91BC303770AC844E77805E41EC6ACA920FF3A1A3ABE81B598C193723B20C8685590131DA89C0ACE08A592489791911C92C7E6ED55F642CAF918173F190B2FB8CC0CB2139FB6CAA259B5A4634CFD0A532B719903E32831489A2D390B4C5A5066B4AB5A3316441B162407096A0BC0342599804752FD4F21C45923705A7A04012AE4A900C01D584F9F41676C36681994C2F4037BDFB84A69A81FA561E5BE05777B571922988EAC714FF249926FC9CC4E93666E198308A434DF74DFF3C5A440948437A7C500582124574AE225F52D322D0909B5E946A5E22AC8F774F69C48B7874417BB1C0B93CC0A90D2A9640377808CCC2673495C4839FDA0D1038B27BEFE3D22E2B727A2006A70FA33FF4A65B00553734C5BD8CCA0A65EB3A115D96B8AA90F8FDC5F8F411C11C1086F0365E9FBD525B3FCB4E4F169FB488BF0CBCB455EC098D49E903C9\nencap_coins = 95BE66CAA72E47634E9748BD26C12B04E2193A69140284624D4E177F4DD66F7B\nct = 837A56867C492DE5087E6A9FB284BBA7C531E838FBEE074A0F91B1F8EF8BBC0824C52F37D36A66E13D0D4D7748E9CB31D8DFEDC8005E3265C0611C7617416586C8C3536D0A5A5F62F75CD36887F11277653256340ABDE1DDCBFDF314E84AE1A0D6A3CEC834E56CE04DF572CEA151252E4222A0D741696D21501DD04869C458", + "733CA41D599057757A5046D2BE44990318DBC6C90DA3081A0401EA36A66758F69264F2979095EF1D872F760AAB37179E0ED1C3580CCC879F0D3CFADE5AB0BC6E71C9C736CF5D4C6B13EEE1A1C67A1BF65713C887A1BFC7C55BFA1C4E6125F376D43535DFA99FF1EE88CD144D062FB13ADABEA70FBAE0D82D81EBC535DF7BC541EF9C47E5180D64AFFBB06494A7F20DADAC7D76E854DB51EBA0731ADC4C21FDFE124DF477A1482D2831614D22897E4FAB4E6E5A0CCBE8D137A78C1E916D92E269F570AAE4B7C4AD908D67FCAF067F4A39B3CDD1C15489CBA46ADF4C964CBCF8740AAF6974C19705267BFED3C2F2492F7222C9AC16DC5A22C1191B49CB2E91C1859E762220FE1D3C4C7EB35A69C0CE0C11E0AC564DA3A01DC34E114E11A597039587E1D6359DBF4FBBB2368840B27C03700FC6CC54F44B2CA95785BBA9424A0268654B1874FEF93175F14296B60C67DFCDA240CC4801F72A87BA93D6400CE8DF9F6034D67C3A71C6E92A7CBD2FE08B9C1B1C20F90679B04597CC0E6BC8BD229FD583C8279E8C7817E25A456852211897E138E44DAB6AE2C32C47A755F8C7548F2BDB801871A6AA2D5E006959C080236806498E4380E2E93E05007B38F84F7FF51FBEFD3B77A385AFB050B7169D679FE4398174A60313E3777399CC118DE1E86BA8F3A9181F0715FDBCCC65D414F5D253CBE6B8B009B3F0D9CD3F10550EE5F98DF64F54E69B959EACCBA812D81DECDA6247F8733A38D61EDBEC24A93E88092FD2DC71337EB3195C74664C08229917F2EF40E02A984360AADE36F3584C77E37D63041E0875AFEBC0D91C461E707A2773F1CBF20924F83A86244DC9A7C11B495DBEB58F5CE25269F0E08B42F1333F08181C91FE256128A6635EE2D2994F9E0D7FF05831267B27B3AA08FCAF589ED5B037930B0B8B9A706B5680C56BF5EA9031FB168BCBCAE6C2E7CBA93B1064A313A41E4227D2042272150AE04D9A6846D0E7D2CB9D1ABB4AA79F096B886049759A958FA8C4321968313D1F731AF0C5DC602206F23E05463967B3C78AFA4962FE4173A218B88DFB818BB6EAD94A4A606184A7FA411A7EF95F3264FC88DD33C173CA9023A18477B3CF63974EC1D83B916CFFF97C21E8C74923DADB6B130A23536D13584E7F98F6F7AF0682A5C78577B0E808FE1BEF0EE399B607E6C65C1D7F4B4E701FF94E516E752ED8C589AE1EBBFEC8A2337CE5ED461611394C583F0647B869B85123EB16C53683753747B353654F7C549320E86E84F5D1DB4FBA6FFA470BCFE014591063F215A52C3CD86E97838F6202372FFD42125354C7A0125F05D222FB76815C20A0EA2C3F5DEE8170DDF12835B65E4931963D\nss = 88CDB3F900436D49FE112A0223D3190364F94A6740D073B17DB7938E159C6E76\n\ncount = 18\nkeypair_coins = 9F52AF92CA165FDC38788F2B59BA02E01C8281FF7C1E60504688043A5FE814B0284837F7EDF4788F32E757949CFA69DDEE079E2E00E439ECEDC8512097E2D2CE\npk = E0B9190B548BC164BB826874C1800980DAB529866B951C01C20CB4AD363C681336B13105FC338B1788AFBFF321BD981974C33D98A35666EAABE3612E61839D6AD65490D71AE992111719AACF12A060648667E34D09343D93DB88ABC69E0E098A63749BDAD39F8C6B93D75990B0731621CC04E6E2061E93CC4B51209EC92ABB303BC638C52AB2AE40D746CFCC43B7576A240540BF410C14744F80A442D0555D474192BCD9B187A56691B63965973C7793668682852F91CFBCE70D6D4832A1855CC4B83A847734C24019C508B2D29539FD1A114F787285E197B51BC092F80B559446F1076F02E984A1B27CAE7AA1D0B50967939AAC74CF2335AD421021E3225D94FA3B09148E60C20E8454C68A8022043206B7BB1E799C9B69286509A188DB29A9EBB078420A0844C858CF4B11F9B4959934002BE0229E714350451B9C2775A5CC8C45B07E121290EEE32A73D46F8D7C55311A8C29027356139F153CB405FA14064C5C31060D7A964B33D76BCD4809D21B34A2F7806486BD2835B7F871164AE496D4264F89FB4EB15B7E5A7232B6C68B11351A41B09BB0C92C8437534D2B4C0CA2538023B29DF93D93C98136780FF6F82846CC2868664322AB28DCD7279F68994BA5A5ED406D4D717D16C14DFDDA58DB1524F7C53F3CB170D45A411B07CD64F001DAA0AD1BF63A11550C0C154D20F5096DB44D1AB0A1C9D66581891A9314C18F778330A0936E7A2F3E19C18F7BC87CF078627770DFC5A2FE71B27EB8276863C3295C11E08703EF4A4FF6B3A1871C7B42C43A6EEB6BD1526AA95B7DCD6B38EDC207C630BED1768CE9505544E9053E5C8CBF6A181A1A0F48C8A98B59C3ADEBCC3A5C99E61588834024CFC71C9DFAB1DF558711B311404A739F79B45B1A8A7633081A27A08C3C16478C9D24C1229723ADDCEA225D39BDE7851345B18B1B08254181B01623347A9A57F5D902290B10476083949556663309059815626C3CCB5302B978B2CE82AF231934FFC7732352B990B21B69210F2ACC048387B95C346974C2181148078154416E08564D664DB3045DBA82C9A7934DE51AB5C1D7346A391BACA48209C8C7235309943C1CB9CAB4771C7EAF59321B510D430C88473AB16F54AE461A5DC613C6FEC61A5E899552E835EFF57FC34B7992755D178A0365C52B3F020AB40020CE21B45717654634606DFB2917FCC266193E2E5B2C4559CC5652AAD1121CCA0711E26C23EB33C1F7D389F2D742F384725D3268F8159F8C463585998289E58369FBB883CAAE21B87139E52D7EBB92B011CBE6426390458247C45F06F2519AB35B35675BF93325351617AD3AC470F73D3D3985E10277A647C96A6C56CC2346563CC496DB232FD742AEA3ADCFBC506CA8CBADA7B040A04F6E329FCEA77BEC0683E1A87C396113639159D9CA52A5A5484D2839869A2E80557A6BF7CE2EE295A464AAF835C542457D021C65C2B2A457C771FCC47F8B1056C8B7AA61D1843A40C4C9B083269B2E89FA3BA5959F89972805FA4B46E35ABEF0C57D875C54804DE77071F1219195BC8B4F7C18A19A7953573E7F4157CA03BE2852461A784E736110157BA3F83A6947AAA09E9BCAE730B9B212BB837627293A485ED6B42CA1CF26792676C1F4BEF1609E71524B877F53FD3133BF71AB13912BF37C2CD7A359EAB035CD\nsk = 4DBA785B32456E16A8E9A20FA7536F1B4555A9B403A09738657A148361788D3C358A7BABA8B4C58AC979C4F786E588AE245CB0C12C284F848B89585F76892FD65CB906D39B385A04D2F5B2154ABD1E77AD9501ABAC73237780B33C601FAC50BA3FC07E8525819593B7D7E69FDEA46F14F1128A475E4784AF38985501DCA6D20BC8DC1C5C7740B33804358F71B6E97B2A0E7350F7608321736083DC54E0253C6E5C5665D0B7E68355D4E98DAA753C1ABC1429B397DA773B043459E5AABD093A5B0210502BC2CAB250041997861286924AA0A190307431719588CC2E6FB68711C964FC20393C73B7C967C603120A3CC11B2EFCA3DD6616D0E2C835FA92946A40C4CC2F4655301ECB09424286B3C7A07AD3C6EA37BF6132AAE2D9A335E34B6C816D93CC7EDE020AB723B272B70F494834CCD93BD7800BC39919DEA4BE4C585F827A4351E233026760DC83377329CCBFF180A562AC50833C0F861E795C00EE74B584F693222B28EEFCB445F19B06154ABD0110C6A017ED525B5FA30C64E60663573B8691BA68E2BC580157F1C66EBE388AA2747C50919AF644ACD903A801A5C04A6A2EAC686C89835CF59A791AD5642274A0F78244491670C66C9BCE24BA5CF6B86967AEFE6728DCE8973FD29045DB844DC80022297CF530C8ECA4808F603A90A840AD70A803E6A0BFB44B38616816073C5D7BA26A64048F81A3BAD3A0C9CB0672C7466E38824529298A7C0D82940540C312F429411B403F64E419CF720E1F73026184CEE538B27CFB91F16186DCD3904BA6A34254155B3CB3157937D5618568F46F283C7C0E88696324A4FD77C3E6FA5B5DC0A13116274E5792FED69EABA973730A79878103BF63934D179143DC23ED39585D40C06A99AEE0F4462F123B8A6B539DEA9E05117B08338DD6754398E7496F612B4D892CA54A13EC9B2DC7022CF779668809AD6DB97A6E8B15FF0A862E664D292C4AF549195A23C19E2B9FCDB9B4A5B9AE517873CCC644993196DE5C2716D58D50E7CF11558F44A16580C980654C8CA581671121CB2F8CC6F90529C9754CF0700B30943EEA1A7B05F0BC8FDC1CF776B0CF2C2EAB927DC83197A4071DABFC07F983BF4D2C613E087976ECCAAC031B88420CECEB6DF0350F04BA61AB39CAD4C6B2B32503D773A34514B7D5BBB9D5E7BB6DD9AB5BDB8F34A9880C49AB5C40970C435508E26CBA50705C6538686249D344BDB7C820A5C8869B371B8FE13922A5AF390BBB7B809C392266541671C75CC2B7A7248D0234FCA16DA64265E5C70257D770D2E9982D5A1C6D19BF0BA48B53AB900FC8280C754C14774939B83C63592A12F35D198194679942EC227B46CC8F353A0547E929175C3585107239AAAFCA151DF3C835E770921E5C9B134CA7E27A18C7656BFD6A4FD2431CE1743576E575DBBA8905F4CC38108E3CDCBF0155B5300A100958AA99940BCB473EF64B05BAF55E91952C46851D313B0990EBCF2148CF28130CF49C8D080841FB81384E73367C792A11099F5B898416946826714E252457B23A3A1E33A36EE2612372CB2C04030840A87F96A31913A428CCCDD2817B38372DA4637F46044F2218C28D525A57D9C0CD2864FD43AA5C9A003A09A35BA786A7520CE0B9190B548BC164BB826874C1800980DAB529866B951C01C20CB4AD363C681336B13105FC338B1788AFBFF321BD981974C33D98A35666EAABE3612E61839D6AD65490D71AE992111719AACF12A060648667E34D09343D93DB88ABC69E0E098A63749BDAD39F8C6B93D75990B0731621CC04E6E2061E93CC4B51209EC92ABB303BC638C52AB2AE40D746CFCC43B7576A240540BF410C14744F80A442D0555D474192BCD9B187A56691B63965973C7793668682852F91CFBCE70D6D4832A1855CC4B83A847734C24019C508B2D29539FD1A114F787285E197B51BC092F80B559446F1076F02E984A1B27CAE7AA1D0B50967939AAC74CF2335AD421021E3225D94FA3B09148E60C20E8454C68A8022043206B7BB1E799C9B69286509A188DB29A9EBB078420A0844C858CF4B11F9B4959934002BE0229E714350451B9C2775A5CC8C45B07E121290EEE32A73D46F8D7C55311A8C29027356139F153CB405FA14064C5C31060D7A964B33D76BCD4809D21B34A2F7806486BD2835B7F871164AE496D4264F89FB4EB15B7E5A7232B6C68B11351A41B09BB0C92C8437534D2B4C0CA2538023B29DF93D93C98136780FF6F82846CC2868664322AB28DCD7279F68994BA5A5ED406D4D717D16C14DFDDA58DB1524F7C53F3CB170D45A411B07CD64F001DAA0AD1BF63A11550C0C154D20F5096DB44D1AB0A1C9D66581891A9314C18F778330A0936E7A2F3E19C18F7BC87CF078627770DFC5A2FE71B27EB8276863C3295C11E08703EF4A4FF6B3A1871C7B42C43A6EEB6BD1526AA95B7DCD6B38EDC207C630BED1768CE9505544E9053E5C8CBF6A181A1A0F48C8A98B59C3ADEBCC3A5C99E61588834024CFC71C9DFAB1DF558711B311404A739F79B45B1A8A7633081A27A08C3C16478C9D24C1229723ADDCEA225D39BDE7851345B18B1B08254181B01623347A9A57F5D", + "902290B10476083949556663309059815626C3CCB5302B978B2CE82AF231934FFC7732352B990B21B69210F2ACC048387B95C346974C2181148078154416E08564D664DB3045DBA82C9A7934DE51AB5C1D7346A391BACA48209C8C7235309943C1CB9CAB4771C7EAF59321B510D430C88473AB16F54AE461A5DC613C6FEC61A5E899552E835EFF57FC34B7992755D178A0365C52B3F020AB40020CE21B45717654634606DFB2917FCC266193E2E5B2C4559CC5652AAD1121CCA0711E26C23EB33C1F7D389F2D742F384725D3268F8159F8C463585998289E58369FBB883CAAE21B87139E52D7EBB92B011CBE6426390458247C45F06F2519AB35B35675BF93325351617AD3AC470F73D3D3985E10277A647C96A6C56CC2346563CC496DB232FD742AEA3ADCFBC506CA8CBADA7B040A04F6E329FCEA77BEC0683E1A87C396113639159D9CA52A5A5484D2839869A2E80557A6BF7CE2EE295A464AAF835C542457D021C65C2B2A457C771FCC47F8B1056C8B7AA61D1843A40C4C9B083269B2E89FA3BA5959F89972805FA4B46E35ABEF0C57D875C54804DE77071F1219195BC8B4F7C18A19A7953573E7F4157CA03BE2852461A784E736110157BA3F83A6947AAA09E9BCAE730B9B212BB837627293A485ED6B42CA1CF26792676C1F4BEF1609E71524B877F53FD3133BF71AB13912BF37C2CD7A359EAB035CD631E1DE2556AE65D57E600C21E8E355A4ED586D667177CA0B7545CB5A23D669F284837F7EDF4788F32E757949CFA69DDEE079E2E00E439ECEDC8512097E2D2CE\nencap_coins = 53D3FC9947DE6EA6E5B4B5E89D236258AE933C485C2AB4B1D6DB8282173A7C8C\nct = 10BB8ADE6CA719CB35F0F2AFD65B262B42DD1B2F7B5A1F7DBFE636E085EAAA10985E6BD32FA1A859F62C72F33EFCD727605C6C0D89AD66B73477DBDF3FFD0C8780DBEFC5BBC73BBF3A8EA60581773F63F06CC05DD0A893295E23FE3425B47DC94BCDEF059AFB26D8C8B4C6A7A50E5020CA7A303DE93E6EC92C1AA0D04B553FC6F759223332686ACACB096FD10E1DC7926DB74AF0A1FC00854B63057C786E6037E93F4CD6FF5E548A640C0E84055C805DD79BC041E731E1F29DB1FC6C90A88399AF4AB5BFD81691FAC1E36B9189B9748FEDEC5793948E13E6D575E1E3CC9A170A86BBE9012203ECFD3A1047E660BD44452DA022EA00584A5111267E8726B00945E8E29D61BB8B601342D96BF7425B471115073EDA82820181B05D2DBBE462F684E9523F119FCAE4E7F274165D548E1A2D521511A8F2C743A8FEF2FB309EE673EB1FB37452B8E0451A16C0AD45B2FF4E5AF441A944B8915378D3CCD35A5FDF26590F896390D3B4FCC920C936AF6CD1C4AE62EDC0FBFBEF74C04DDA89749E91770BC0CB6534986F0E6EBEF7DB6AD54667ECEAEB1DEC17E447F6DBB90129376122130AC95B6BA81B9A508B1E3ACC1E2915BAF690E00F0C843895521813602DBBD3E688E8DFF6B3279E5BC732B7D3CDDB1FB915DBAE938F6B5A8200E61DE9EDBA6C5C8BA24CAF15389D3079B87C7B534B552B266BC58CF5E9CA693069CB83B8F293D27AE9A7C4E121E1D77F41703C9B961E23A53871099F3C4FC3B2B0D8CB61B25DE5B03AEE73E8037A2EF412C4F17AB2ABF5961BD054D3FFE19AE6DC54138D8A0FA2B9E0008EF820E0DBAC0753F60C1832BC0928DACDAEF53348C8A185DC50797BA680D73A39C140055C6B6147570FD3A6CB5B3C20A848509255DBFF8E9F922BCAB848E9A3EC2D8CFFDE83D3DCC5757A2DC5B22FFE423368CDCD5EF3817AF3D05AC1C41E42E22B2606677EB7C5980C97253C3303CDAA27C1707EC2EB7E289CCC80E10EB7DC64A97EA3F6FA549F1A6C7AABB156486EE43C378E00A1E81F6B9C9E42947D26F7786755AA105C5762AF313C9BD64C4878A571E57A4A585038E6E31F5F780D01F24379656F63437C1881A86FE705EB13B3A2BB3C3E94B574569E023AD8463B75D4E7CA11CC9ED13EEE9E406FF74300390AFBECF483AD76AA9FF2530113C4011EEE76CE5058E22339C53F68ACB67DC45A9B57397CBCD825337F3C3365C1A1EDBEA863BA1AAA8DCBDA73A99A846AAB390D6738F069ADD17B54CE21F70CDB59098490689F00D49C5AB4A1B4DD60D4D6E5EA74BB809B88C8B8C6107B3083A983E257A6D11BC085B19EEFAF1826BEE0E9806698DF6ACFA774EBB231F403F882E1736243A58CDE625829FDCC44E3A58DD71512AC17E6D0326319F0925F2C2EEC0FE88637C78502D3C334064216483C70B5F5123109D00152B371924167F5E88071B0ECB515DED270BD8C0AD1D336938251CDB3FCB2451BB8D432ECBA65AAA10CABCEB463A6A364FE70DF618F88C7295DB73CEF947C32BCB3B688A47A481ADCC430\nss = 4D363A3200134219189C5E71DFD606B675DB8FDA35A845444473B675557DEA0E\n\ncount = 19\nkeypair_coins = 851EA90FD3854CBF28FE39FB81F68E4B14345CF0D6EEE7EC4CE772513DF8410D11BFE66D2D15C33524F478F9A6BB3AF2A83357197C834D399A8625F761529BE9\npk = F1390E49F3B488AC39D0E43292B70042C52355EB48B841887EA256055A688FCAC5A71C896414CE75F57BBA12967215C50D4B5BE692B6DCD1AD2190A3D785C19E283F87F784A03C8F52A23E150734FDD7BEA2AB6D122C928606BFB60570BD696D9676397AC3AA1D062EE1AB3922A2C9B5B02D14557164149C62E8029B139E6950B3F8ACC9E8C30274B69926C1658F7836F479C8CC70138B829848C7698B179643B7550E9193D6FA87350503C2B69136B08CC298B5C335B1AB95054D13C9260625E34C6C2FB8186E1916C137AD9907C8B2AC9D88FAAAA0375236751A47918F96477B7EC01819F8AE1D72951E21608C87532A9428BDF4CB5658440CB025CE3B271652961BD935624B9EB70047E63184B9503ADCD057B6744FE42908CFA325E401B9D0DB5ADA201F5D64350D392C4FB842823895E15720DD7785C7F5986F15CC2565A71F6CA11B854A293C9CE6C9A1F4AA3917130308F2A2ACA964790BAF960AA12DE3334D146E64DB81EF09563C9667381424C809441EE989EEC93597E7C5B558A89DFAA976F6934CD18B8EACB6F2F54E8F748E4BDB69B0764FD59352575066DC242DC0F1356FAB4467C8064FD23F8823148B77A4ACC642EB2C181FD5CA251B323561191CB15F2FF0784900A15F67014B518453C4C3663528FFB53271E195C27533FEC8C3B159AC1BF39C6FDC69DD5A5FE5872FFB6B2271A09966A5C738C48E63E141D65315051610F0F5588AC97F14100027B144AA23774F199D0D9A122953ACA8782A4136820FFBCC1F2692BB919B674AA1F4D679E8418E8597C74D60C5C287CDE6D44492411222636B03CB661AD66FB442193690A5F1D6B80A947442A46BDD239FE3989E6DA86949474E395056A5E6CB42B25343A7C73B650D843527444243852518A9034B9EFA7A6BB8505BF605EC238FFBC08CBEE35A94845D7319144B381819D0928C27023B727656EA843140649C03098FE74C717AABE91948EA7698DB0A86D34296B5E50DC0A9949C8BA07F64CE60DA2B6E62458DA229D52C08B9B696A124A8CBB791C0D255D3E4A69ED2C242000DC6476B4555552DEAB63EC19FE8783151DAAF78E561E1844886D4418E7510BD025299B1C83C7BA22F63335B9823043336DA897A44FC6A28B44C68A49B436B0DFA406BE642A5BD303BB0D633685364D80440CD7189B6B34F6535101979BA9D251474FC91BF2497670BAD0DA78AB3C13EEAAC864572A2F919546A57C719BCABC9DC8215B492D53118C2D379E879234A700638370A530577700982C4334673AA5D71DB98627384E8CA876E24B5A31575EA3C334D3C7D3ABB6D8891B4904B8F5DB93D0531CAFF25BE53E28C45C94758E309B83ABC2BA66D98D3BDBC53B7D06592F2712663C777DB60AFF496A217E82D8272C3A218AD8C8B04AE7C66BE35C08E3A955FBC18EDD07E8E68A806FC3FE218B87F87BC332B86C2625D8FF01C9FF6214B75A20CC465F847511030B47EA664A75B3D4ED9038A9C747C6872DE0A57F3B76C60585ADE64570A21CF8548A5BE4996BC22B3D16A7BBBD20149034764B820892B9394581697E39F9B35077EAAADB06702968A5E5418983110A97D4749D3160DDB2B9C587767FB56B9ED9BB3D91CBEAE141769C2128E0ACADBAFD72FCA96AED457CAAFAF51DC8C30CEAC70CB4621CD4D7B4C\nsk = ED55584416844E1CB3C75ACFB3771013D1AAF1FB3CA8A5B718A8CE02A15AE26BACC7534F8B084A665B0608780E532A161686B07FAA83884C6A0EFB490A8A3FCABB50ADD21F58AC43EF4355246B1A661C5937562FA6067E7AA66978E4B36EA1431ED41E4E4282D4003D5BBC06CDF7AF225B6560C44F43A278677ABBA8C6B79741B3CE7C0D0769AB407C9B39C032F0E42D1866ADDF2115E2F3336384C61CE9319CC92AC1350B264CBC4059B94372631C8241CA376AA6F76111537018C01D1346019D628F1F00CDF828B48C47CBF958989B846ED893BB0B6444BC2A35C6443F77D757A0CC957716373460A7A94151CC548F0C78AA5A323581C192D00B4D96219806A04B1A0AC829002B7FCBC8CBF8A8E3ABAFD3DC2164D03A24C19D50133E967C7668AA8B81977B400067FAD2CA802A76716B95E3D28BE5603E4977C33D3BA5DF2446F6265827464641204ED972286B58567BA129BEC0CD6F1644C4032EDD6239309AAA259A3D997B1ECC535F17D773AB1C5350E3C82C600175269700A56B0D4211DD02C13D4BC7C54238F40163441702613A1DE34BA9B0B42EF0A29300098667E8003588577E64B031139DD2180DB113623FC4B74E946EEF86A1A6BB52764C6C12911765E37A685400888AA9140A3ADFC48712688435258D56337FB8D8A9E1F34BD2E818AE3B7480F500FB6BB03BD50019C33BD37B060BC2C45E8A2267D18927C0AF66076619889FF6B1769FE59E5F131F5FE40DB2815BB6886B7BCA9DA659935DB493DED9A808157E4151B04C153E673333424B7AA939559E4CA973F7644A813B8D9C1DB8C87CAC6365C0E008E329403C69490976CD3F006F3138114A6B3E6B3C4F054451E5BBCB7D232F285A2EF5202B81740053512F8E4B33FDA87EA61042D1F9736ED58E9047C8744735A728B636DBA7ABC33B2DE0B1572A28B23C25A8668CEF9291990A499BC8935F955E1CF0301A65BE870B7F01F06099192431F3436AA5AA6564C4689C1D2E11540355138C91BA6E0182B6DABA0E7A177FF320C6B04977D47DA0D51672EB96CA054AD2D4A0F72930061775592AA40E9C9418CA611893044460495D8A46B242201886CB52E38D91D25D7FA8262290628D91323DD2A51F8C7A33487232F4934133117699028381751D8594FD94910EE4115389C57262BA579220567A7B5B42441A641FD6630D7BC06802878C76BB9EA576965EE45ACB90BA549A01B6E873A1D8C741662067A116E64C8897E83204170C9BF2676EF60C20F3450804C7A1B80725DA17F9DB18F715B7894CCBB53321CF01755D168D19A96356EC07EFC62D9A8C3A8FFB15500433F915137AC42A474B8E43F283BDB2B46CD62D509A5AEE8CBE23B74CD48079D82293BFC9CD931289A0AA27D8A930BEB2000ACC2019E3CCE107A18E9C4408C516FBE19E45459ED77231851B88B6B73156EC820A4C097072C2FD61C83D23413AD510662894DAEB238992138F98185042B53A637AEFA83378B026FA7BC314516B25D343F0E0AA7772CD2DA27F8B39A8BECB44923792A7D586631", + "B2AB963AE537768E45961F5F96CB42320E75738A964168B9403D5B3591AC5679A61857C818B2A486BB299019C7B03BEB50D2D40A17E84712AAC01F1390E49F3B488AC39D0E43292B70042C52355EB48B841887EA256055A688FCAC5A71C896414CE75F57BBA12967215C50D4B5BE692B6DCD1AD2190A3D785C19E283F87F784A03C8F52A23E150734FDD7BEA2AB6D122C928606BFB60570BD696D9676397AC3AA1D062EE1AB3922A2C9B5B02D14557164149C62E8029B139E6950B3F8ACC9E8C30274B69926C1658F7836F479C8CC70138B829848C7698B179643B7550E9193D6FA87350503C2B69136B08CC298B5C335B1AB95054D13C9260625E34C6C2FB8186E1916C137AD9907C8B2AC9D88FAAAA0375236751A47918F96477B7EC01819F8AE1D72951E21608C87532A9428BDF4CB5658440CB025CE3B271652961BD935624B9EB70047E63184B9503ADCD057B6744FE42908CFA325E401B9D0DB5ADA201F5D64350D392C4FB842823895E15720DD7785C7F5986F15CC2565A71F6CA11B854A293C9CE6C9A1F4AA3917130308F2A2ACA964790BAF960AA12DE3334D146E64DB81EF09563C9667381424C809441EE989EEC93597E7C5B558A89DFAA976F6934CD18B8EACB6F2F54E8F748E4BDB69B0764FD59352575066DC242DC0F1356FAB4467C8064FD23F8823148B77A4ACC642EB2C181FD5CA251B323561191CB15F2FF0784900A15F67014B518453C4C3663528FFB53271E195C27533FEC8C3B159AC1BF39C6FDC69DD5A5FE5872FFB6B2271A09966A5C738C48E63E141D65315051610F0F5588AC97F14100027B144AA23774F199D0D9A122953ACA8782A4136820FFBCC1F2692BB919B674AA1F4D679E8418E8597C74D60C5C287CDE6D44492411222636B03CB661AD66FB442193690A5F1D6B80A947442A46BDD239FE3989E6DA86949474E395056A5E6CB42B25343A7C73B650D843527444243852518A9034B9EFA7A6BB8505BF605EC238FFBC08CBEE35A94845D7319144B381819D0928C27023B727656EA843140649C03098FE74C717AABE91948EA7698DB0A86D34296B5E50DC0A9949C8BA07F64CE60DA2B6E62458DA229D52C08B9B696A124A8CBB791C0D255D3E4A69ED2C242000DC6476B4555552DEAB63EC19FE8783151DAAF78E561E1844886D4418E7510BD025299B1C83C7BA22F63335B9823043336DA897A44FC6A28B44C68A49B436B0DFA406BE642A5BD303BB0D633685364D80440CD7189B6B34F6535101979BA9D251474FC91BF2497670BAD0DA78AB3C13EEAAC864572A2F919546A57C719BCABC9DC8215B492D53118C2D379E879234A700638370A530577700982C4334673AA5D71DB98627384E8CA876E24B5A31575EA3C334D3C7D3ABB6D8891B4904B8F5DB93D0531CAFF25BE53E28C45C94758E309B83ABC2BA66D98D3BDBC53B7D06592F2712663C777DB60AFF496A217E82D8272C3A218AD8C8B04AE7C66BE35C08E3A955FBC18EDD07E8E68A806FC3FE218B87F87BC332B86C2625D8FF01C9FF6214B75A20CC465F847511030B47EA664A75B3D4ED9038A9C747C6872DE0A57F3B76C60585ADE64570A21CF8548A5BE4996BC22B3D16A7BBBD20149034764B820892B9394581697E39F9B35077EAAADB06702968A5E5418983110A97D4749D3160DDB2B9C587767FB56B9ED9BB3D91CBEAE141769C2128E0ACADBAFD72FCA96AED457CAAFAF51DC8C30CEAC70CB4621CD4D7B4C87F3829EFF562789B3E19FAFEC92E4B5F95B45F3786F12D9C24915CA484A49CE11BFE66D2D15C33524F478F9A6BB3AF2A83357197C834D399A8625F761529BE9\nencap_coins = 64E3FBDF8D2349A497B5C9FA3AD3F7396FC1A9769175A336181C42E95C4889D1\nct = A925E35FCB8711E3617D0EDAD1D21AF974700F833148396B27835AAA6AB43AFEB501B65278FF1C4A37A2AEBA9AAB52B267FF1CF204E5949CC7EF735CAE730662B89271DB739041BD05C0778CD741E7492EB5D4671BA56C27A3F3CE9DF46B4B7230EA113FA75A53CCF8F42C01FD13A99CB44A91E9B77B227F2E2BE7B424AD07B0C9CE4BC12500949D428BDE8D305BD0E4E98F8AE63ECCA26610CEA8FB01217EDBCFE6E3B6FD3DF04F8F4C1833760975D74CD9730410649950098FE966B7A750F732DA6706274C5D3794E5BA443A3D528CF6CF169FFA60B003F048597B879E497721F50C9D62E11C4E4D278CD35C374B55E44FCFCBF21ED0683255F2E37B8995AC8B0725004207730B0FC41643FF2582CF502FB0CF51BFDBF5F6C08201BAE44C3AC8A749DC8FAE4C29F40A5D3143F8E6792C1048647DD1D49FBB45490F3544AA8FCD6AB5AF449FD1171862922BE34ED6354E0D63B36BC654CAF92191D2A2EEB435E7BA8D6919EB8543E94B214610A988E4056063B5EC3AA3D8EED8BA7B5B15E9FB4708E0AF00C9CA34E2E982F66C437D07CC99FCF709AEA0D28568F693F2C4ABFE0165EE80634D2B55C45CABB20BA657073FC8DBE5EC66E8B1C250DC81411B2153ADA7D9611D6612C24FC1419338BF7096A89F0429041FC2C1E27262E55969D5B17984451726A12AFB2ABC193D9D6D610FAA9F80669A5D9E0A170B50A79ACCFD3E1F621CB6FDD95A3265B29130696E72A8D2A405D079583FEFF59181C3B11A00615E608FC7832E6F7981B1D01A260B10D936EDCCFFF95F6BAF5C09F43F3FC90D2B22ACFC9FA2046A029E217224208039FFAE194E7C76C38230322F12881E3F319C41349437ADC05F48032BBBD9391B9868D6177581D9BDCA43420B7E03E3A0240FBEDB41484B2560FD1325B9D4A2FBFC9D8A6768FF3DB7BF2F779B2157CA39DE367E168BCF55A2FA3DD813E33173377B509204BDBCF4E25D20EB66A211CD1A2457E3F93517FE6409680803599A0BEA22450985110F6C138892758B13569CC74BDF22348986B27DF705E7EA84796C01219614259DB57208DB6E9D932E7C94BC783F32250086580F7B5141888A42EAB619DFD926F95DEDC495D25E30730B09AEF05F9247DDC12041096CE8DAAF3745B0138C37E0E2037A6C8F309BCD085D80052B5F4A4CF71E49C073A9EDDCBC509CCE026F8DEA0376C343372CA692F5E35451ABB2E13B70C795520EF24BCB5A93A057B8B8BDBDF2E74DB1226F319BAE6F8F702BFB1ACB3E7642B87447C9AE693719AE22CA7FDC568B0426BF80E6F62216B46FDB2C6A52617FA45B277E41CB113B1921D4829F6290863FE28D04C9FA89F634C5238755333053262AE99A6DEB882EB2052CFAF7EAB293F178CBBD05009E8A69184650DB6A5AA480D973A296CB75FDB7EDA118B58A0B23A41E60A325BBA67ADF355B4DC3B500D2EE7FEE2175A5062CC303643658ED70D1D3E57D9C3A62F92628DB9DAA47C4D3E76E7E4B959D83215F6D8EF08A5634C00AB2A3AF2AC7F964B0670075ED\nss = 54CAC3C7B8261F42B7FA913D6FA29B67493BD969833B2734636BB99DB92040B7\n\ncount = 20\nkeypair_coins = D304C9389CC973477F169788ABCB9D511F843219D246A9B587822F422A70C23810EFE801AE61866A7109F40ED932E67B0AE9E966D1EC5F917E4A9F31A27EE13D\npk = 2D7B0180596BE297A4631ABE0D48A046DCC99C8912B8255FC45592A2A61230652BC7C450A674CCC3ABB27395738D177E7579AFDCC30E74E7C7B5AC5DC235176343CFC4920ED8D9472E13C9B36A6D38BB44756BC31FBAB62893656DA065901303700A14B2F785D98896AE97953BA358FD53091012B97498CD7516B0E1898E2F6803C5A13D70F5BEC346917249940BA35E3EA954F6CA13C343A09CFC02D8E66852C1AE0FF8B22E7424F53B1897EA11268A6B866C09EFE8694031754ED1A2A147C0086283284133AA6C324E0B0570469F09E0901F25213FF9B113147990B54CB241268E0B6C7A3A90C638B7C483C71AC1344BD65C988736C4756E0B71111BF5B810FB3CC4187363A94EFA020DE1C3CB9A005CF472BEC5685322FAAD5BD1CB0F240458B56FCC5A6167F22577565DAC1BA9B984C33C348BABB70506B87926540547389B805BA01E4443B5D60B9A407F8B060FCD96C4B717BAAEB72400EAAA9853B962E8A0C8D966458CC4CFF31E960C447C6B205629419478360CDC945D6B9A55504D853C1E51364E7A9AAD82B64FC37A02E4139B9E6C392DC83C04005F6D1299D990A89ED68ACC31B5D1D224F2C8B3CD5280A12C6E088CC2F9D3C59AFCB9FEE458AF5135C9B4B477D878F34723E3912189D2764F9366AB8752C9248A5684296ED46F404A1739BA72D5D652C614860D41898E45B72BF66D587089FCF49E3B94CD26999D7539C32BDBAC0139B20988CC7B578ED880048885355F193DDB1690B9092AA2A86AF03A41797120BE84334EF25C2E70BFE8E0A658F03435B65787F38BC9452DDC584162955F8B8560991C407FA0C12D770E80FA4A2CF7B853708BEF2A44F959B9D05B6FAEF83F6F41A2454257B0157C55047AE7D0CC17079E118C8A4EE3358D877251970EAF86684EC70858A94BBAA4BD2FD1895C2223320CCADCE636C2156471B76C48D53E6A6C12A1317C39C48BF3A0AA0DBC8AFC034B43398B9F1C56D407A4B7C2BAC134024DF6AE9800B230E2592F529F79F0AB048867A349684B242BC4D2284A6106DBA36DE7B3A114B6353B479D014A69E33ACF5C465CED6669B22027D6657F12379ABBD248C6967834239E2D3A0211B73A77D681B61892877B7E102A53CB4602E3DC1704EC92A9E260D9817C6393062BF520F7A845FFF19123A1662FD241090AC81EE1748EEA878D53969FEA20FB95688FCB3D235910F154BD09A75556D890409CCE0A20C6CD2A59664BC4ECCA3D4725910D210DB0C848CE7242CCA945F1568561BB90D9A4C3DFBA83074A16FB3AC934C865DCEBAF6FD90D5B458C22542DED5111E77C12D8656908557649E9155A8472D5213B46F739F095B5FD4A2418074EF7DB9385F19D6630AA29B28881AA3474B7AC352C5DFBFB20FD7B8A0B87CF3933547CD498256A9E17733AD6967D7B9C7ADC64A951EC5C8ECB75B9190064F3A862D10CB5707215F456CAA10A2C240619925A140B6CBA878A0D40283EFB9E1562C227D716D2935E8D96649C06AE9465AEBF552D68DA1E7991BF987A4DFF4371049A0DC9E56F110779D562959F278B069B3C7712AF29027AAD6109BB0C3201565C0B0892A62AA74CA7BD6B48039066A95DBCA4E76A3A323612269546B18BA1BDA19C123C24504ECDF72189DFA1CD24EBF011A3BB66D35F78633E1EE7B249FF\nsk = FFD8874D8B37C946409D69CB03529B7D1A43DDB24792D4773CC723643567671B8E0FC2B903D302679A530118AC453B0541A2389C46B38F317B43130972271D8146A66593B8FE659DB570C941F1ABB4F295493085A85277062C3D4DB168E466015EA506B5B8A805A435EF6812A6B68AFA9372776717C1042E24E7A10A842182E7C40C4CC547B98FE007A1D98804AC5BC3C31B6511425A558C73E5B1935C7A664EE224955B6D67CA54D47B04E1622716A27B21F12A2EB27C16D26A541CB0C1BA5A1A8629B7F2222B84CDFED9CB6F666B41C92FD0B074F42B5D2EE72E8C5443F34C5DC2920DA165558AF074E3CCAE84C1CBF1F70624E1A3A30A7DB045A2C4A79BB1A4B0F01187BBD8B29A8C60B07068A72264D9B305B5E391521BB945D53CE1D65436441932EC5867549408B47F28D3BF37D7AF0DF432CCFC3667F4ACE969542CD626637B570FD84210B3AB5456B23B8B339F4885E9A96BB17CCF1CA4A962C5667D0C3DFB3", + "56146C04BB8391197D54D0F4202F160824D900B27B36BF8ABC7876CA331C2C3A8A161D98523ADFC1EF9D538C9203A6729CFCF6089F7D72F57093EA3A34113749F23EC21C051AB2C836679B0210A549F2678C7187691DE949994A25769D4647FD992BE411E24E302C07569CF26C11F3942CA505391A794D42C77DA0A324B05908AEB9C70B88B38A95F371B1902E06D071457BBCB382AE4C36F14AB3A747A30CB7E9D35791879873A0333B3FAB967770465A056DE9C4420662C046AA8CA32093AE23ABD80406FE60BDCD1725DAAB0E50931C575A0C9137FA61442B1101B05686D398A6FDC0BBBBB25A073E99C3702B9268CA91420A1198B5C54501A03C878B6827E6D586AB42C2FA47258D1255711654968FC80E1364886F18E98FC10EB85645B399788DC225B1A233FE564604A86397A4483C102203188DF667961BAC9EF19B99432475C0A2C9978C81CF5314A2B2AB37479549B14C8D70ED8F0C6625938CA4A92BEE5A7AADB286E507EE8890772C3353E35C2DE8696041BCC8B81997F8C7800417C91C32E9B8B34B62A25E5C2AF2854CF902269C3C5B50A5209DC1C63F8835B3A73137D855C69F9335FC66EFB985933F4A66B084AA58909E658998A15AE8B087120F59A00426CF9A327DD48467F8C12CFBAACEA7BCA7407060C42950CF9543CAC1EDF9C296D978A2C36AAD92B665D6C9513B59278AC1CC781204E555E27F81E976A74D3055A48035203472960E596C7C4C2D0158A006D884F40681C6610F1124574EB9FF5323E10480D0E306F1E398AD1E6CF8057024D072DEF4719E3A6BE9AEAA07B56077BE495A635C67066A2945376C9836EBF4C413A05A9B1348C31329884BC7D820A6BAD7A63BD62518878A97FB525332433573973DF74A00EC02D50198A2B1306005335E6A51191505FB244999CC333BCFA4E7845B766B050CF66607982014D28548A4454F86A06E9321C82781478CB938C709EC5CC81EA1A9269543DC8EBC6D253BE1698990C81C587D7263E7445BAF53316C23EB8863D151A4E5659928AD704C1C7B2BD2A1987907A05CCBD2F0C78232A10653452E3DABB7598CA83D37166791EF11A2524F371180984BF72A6E2291301606B7351A284A1A62D7B0180596BE297A4631ABE0D48A046DCC99C8912B8255FC45592A2A61230652BC7C450A674CCC3ABB27395738D177E7579AFDCC30E74E7C7B5AC5DC235176343CFC4920ED8D9472E13C9B36A6D38BB44756BC31FBAB62893656DA065901303700A14B2F785D98896AE97953BA358FD53091012B97498CD7516B0E1898E2F6803C5A13D70F5BEC346917249940BA35E3EA954F6CA13C343A09CFC02D8E66852C1AE0FF8B22E7424F53B1897EA11268A6B866C09EFE8694031754ED1A2A147C0086283284133AA6C324E0B0570469F09E0901F25213FF9B113147990B54CB241268E0B6C7A3A90C638B7C483C71AC1344BD65C988736C4756E0B71111BF5B810FB3CC4187363A94EFA020DE1C3CB9A005CF472BEC5685322FAAD5BD1CB0F240458B56FCC5A6167F22577565DAC1BA9B984C33C348BABB70506B87926540547389B805BA01E4443B5D60B9A407F8B060FCD96C4B717BAAEB72400EAAA9853B962E8A0C8D966458CC4CFF31E960C447C6B205629419478360CDC945D6B9A55504D853C1E51364E7A9AAD82B64FC37A02E4139B9E6C392DC83C04005F6D1299D990A89ED68ACC31B5D1D224F2C8B3CD5280A12C6E088CC2F9D3C59AFCB9FEE458AF5135C9B4B477D878F34723E3912189D2764F9366AB8752C9248A5684296ED46F404A1739BA72D5D652C614860D41898E45B72BF66D587089FCF49E3B94CD26999D7539C32BDBAC0139B20988CC7B578ED880048885355F193DDB1690B9092AA2A86AF03A41797120BE84334EF25C2E70BFE8E0A658F03435B65787F38BC9452DDC584162955F8B8560991C407FA0C12D770E80FA4A2CF7B853708BEF2A44F959B9D05B6FAEF83F6F41A2454257B0157C55047AE7D0CC17079E118C8A4EE3358D877251970EAF86684EC70858A94BBAA4BD2FD1895C2223320CCADCE636C2156471B76C48D53E6A6C12A1317C39C48BF3A0AA0DBC8AFC034B43398B9F1C56D407A4B7C2BAC134024DF6AE9800B230E2592F529F79F0AB048867A349684B242BC4D2284A6106DBA36DE7B3A114B6353B479D014A69E33ACF5C465CED6669B22027D6657F12379ABBD248C6967834239E2D3A0211B73A77D681B61892877B7E102A53CB4602E3DC1704EC92A9E260D9817C6393062BF520F7A845FFF19123A1662FD241090AC81EE1748EEA878D53969FEA20FB95688FCB3D235910F154BD09A75556D890409CCE0A20C6CD2A59664BC4ECCA3D4725910D210DB0C848CE7242CCA945F1568561BB90D9A4C3DFBA83074A16FB3AC934C865DCEBAF6FD90D5B458C22542DED5111E77C12D8656908557649E9155A8472D5213B46F739F095B5FD4A2418074EF7DB9385F19D6630AA29B28881AA3474B7AC352C5DFBFB20FD7B8A0B87CF3933547CD498256A9E17733AD6967D7B9C7ADC64A951EC5C8ECB75B9190064F3A862D10CB5707215F456CAA10A2C240619925A140B6CBA878A0D40283EFB9E1562C227D716D2935E8D96649C06AE9465AEBF552D68DA1E7991BF987A4DFF4371049A0DC9E56F110779D562959F278B069B3C7712AF29027AAD6109BB0C3201565C0B0892A62AA74CA7BD6B48039066A95DBCA4E76A3A323612269546B18BA1BDA19C123C24504ECDF72189DFA1CD24EBF011A3BB66D35F78633E1EE7B249FF699FB2F061A75F111F4A7A60195D9045DC01716B6502CC107CBCEDF122E8F61910EFE801AE61866A7109F40ED932E67B0AE9E966D1EC5F917E4A9F31A27EE13D\nencap_coins = 7274CFCAF30A61D198328BE008F814B2A87D50570B58A80C03FF151A774C589E\nct = F3C772EA381A44D891E37833D5A58DB63C4CF1D5067F98E300533996E53B61D3969F8AC31BF8B3583B6B4173A4AD8389217A17DF9C8531BA1077CACE630BD1D52BCBDA1794E15DF4396D80FCAA7DD49ED689930D6985C0AD83CBD79868AED178559C14919361C0E63D92370537990CD8ECC456A5578C56A5B8A3FA8819A193078215A4AE6BFDDF1B7C8390D59BE9CADAC05DAD2B64D59CD2E9AF402C05855080D00FABF43DA1D8B3398993165475BE692EA56C40AB149249D471FD895E16519695D66DABEC00D9810B6B15915B6E3DF167FD4AFF2A5E197B2893477BA1C6A8DE0A5CE8575F05B251FB725A79393B8233DFE393F3C7309E22039569454E3FEC6CC0990E6749B1416C539D04949797C4C16FFCCDD55B8A7EC7B4F85A8E90556AC3211136E7BE50863F312E278818289922DF3E4569B612D5E53554B0C9BE4F44C44863C88144CE545E3B65E3286FA6C5F9BCDEA8211A96CC99443501D8D44C8BC7B1123AFFA71FAFAE909573B465985F7A58D690A13D14F7B2EF58A9C1F86541101AA90A1B9B6BD51AA1CAD725B00FEA5C04F6C55681DF298AB8D7CB0B660217B778C3246C3E9C8EF3C2668919D564A33A23229F8A184364B031AC5F7930D8618C6875867831EDC864325792366C12836AD596E6BC74EA31FC7F3BD336AAECA6B9066B9B4CEAD4840DC53C0BED87CDA830B0B0ABE8B15A8466E8D7792DE028D0EF16BD9D642AFA27042A47C85D54752476763DB2E28754FBFA303741D10E34AB88BF42451485AA63D75348A4AA1DACF4FC7F0BEDDA950539097A86CB1ABF642E4398332BB407186B0C0D1D91D985A5C0F6782D5764484F38A09A76B0AB3F76E54D0134E15ECF3063BA54E182DA32BA6E947A72AAD101A64DC54F299C7B305D904BE2D489ED565C229209821F17900C9A1FBD9A8C3465FE8DA67008EDA5E64AA9117DCFD25BA54F285B402C2EFCC7B20BEDAE6631F7C0510A2549660BEE2A18A12DE559488C58CDD0ECFB0F1B60F0760D7FC7CF8822934FB110B174DF12D24CC6FFEF8823792D0983B5B64709B94D0D514D818EDF5E5355EBC433F4F1204936CBBF28B450680780B4E2A63CDBB6C90BB3A1ACF2EA830D218626405C071B7D49E7D84774F93DCE2169FF60854AF43F24D189AF5AC26A0C224873A24BFDA0E62E59A7E3FA178B534C8A0CB17C0A55C7B08D7EA73CBBD208AF4E21E1B749BF4ED4B14047292230CDC905CD296DA6AEB44D0A206CDCE3EAC75B2A5857301AF743B6CA721C27DCBF7BD8A76B6D251BF8006AC2220C9E3CC27DA347160E0BDECDB9E6311432FBBB4E4C1F07D2E8F7A9F7874DA280261A9F8CBC3D3AFEB68D7B6A726C84233C444DEF7CB29512BF811B706B3745AD21E9137BDC004E71F2C47FAF4A146D1B3FAF991094C7C04BC6B3EA48518420CE0494B0ED117E5029ADEBE061FE8FFF66382FF8470CE257C165834AF6E2C800FD0B4DD6204866BD8C3A5F93F22D8CD70C1394EE6A33892985390D8E691E04A505DEED42046AF00489895BDA16728E6087\nss = 04F380D7841528316439EB1960C612CF3ECE3D425AA33FF4343B4A87B3202866\n\ncount = 21\nkeypair_coins = 89A6E3BE304A3518FB82B18CA730F0B359CD6BA90664A493FB4F8EDAF965B9C3921BBFBFCC283E1D1DB36E99B9CC6CCFFFBFDB86DAB7B6C7CA02CDA227DA8632\npk = F3576FF861541032094855B18CF574D868B0EB783CE9011F28FC14C486B122CC80093897BFC8AC1082421F99767BC42B0FF41B22DC7B50D5556041338E6C4368AB190E92608F6CC69D8B33F1AB04DE68CF96D9C5882C97CF28C30B86924AA57849954369C5427C876A9B1CA341E8522E1357E60A4450B69F150658715403D1E1C957E5A914B9A3BC4C45489053306329C7984E76F169C8639DE4080DB1671ED01A24724A101DF89E45B5B385CA2EF663586AE58D9B33ADE9738F84482E6E28909E7641AA673AD772B125161A316166E1717FDBDC8D02B2B2B6DC21805619D4FACC40E9A21BCCA9D4DA71220A4631E95B25E960192A22A39B904BBB02F1184B79A97B3CC16B5E4B5EAF278913B7A195F3107342A77A68CAC90C1B5A3CA9B354A6095C29C09C5AC2B44C6CB28A250834D5F2A307EA3434977D0087017CA2692B79008640B770B41EE2C2C77BCC2605F1857368C8E12983AFA8633C870115A3818D6BCBCEE864A8DB694F4B77BCF63A8AEC407A45716AF6358065C30B77B68C2198B2FB558F463A7477B9FA7680F1E65706A888B8740A87CC7E7949156F896C182B53E464721E46A258820201887CE9B83D43250B63E2AB29900A115084A6E66584F767853B2E684C547D97266B36B6838AABA73298DAB79C58C88F1B51113EE752736B7566EB5759CC4DBC37551135BB3C87B1A6C83AC5A38DBD78106EC0C5E9967A6D81139CD516027C25AFBB6C47E3802D56079E6265C4F21F1315A96AB994597214B814CC53E8566330CD51FB4045F605DF1C7C9C255166651DE6041B7FD85C7E376E28076AD352051C65494A1054C30930621C53EE8947DCE3C55BD686F186CD5AA21AFC17664D36A2D7F5008AE83950B93AE510847552A5C2F761207B0F478C73C4D6313C8ACC25B13EA64A72EE3334013CBC0A855B55E88EA17466534786B6176B9053CA9D0494C6B4A940B70B68F40BF570C461F11795952E69F21EC4562DEC99448263188EF44E71A1681D626CAC69C6B56AB51AE656BE1CA028672D97D044E43577F26329D50851B0F8A4A1B6C2B673AC6418CCD58005AD400C27D274DD4732E56B5D7C0B6EE731A99E15229F7295C153AA3A873C20C23A35B6137C824F6FB021A", + "0E28F98BB3BE8DC07A5B038DC89944952913AF7A39A9B00F1A038A628686A735DBD4C45E0B8BCDC1C1A902CC4D0571CBD589F507A0C0DCB81BD39811E723358D6320A3049BCC90D776562EB34877978C9929548286A85EFB85F7C6C76FF255F13A0CF5E70304F1CC838FA398FB34E26CA662759C8F3657125DC2AACDC4615653EF074A784500EC60980BE4AAC94B0C7A9012DBE73CDBF1687A684AC63526778926654A4AE4CC779A600A836E3273ACB95A802051F18AF32683F52363572583FDFE30287B2632874CB04832F55E0944712C86D37420137C56F6251A1352AE37A0C3FDB885CB561E63A493A15BEB5E3B123ACA6B6B7294D8002E7EC758AD2C22D336AAE3C067703821842CBA2DC0B1B7A45CC0A48202A002F927122C040F84A884C1334C1E17347108B91C055D331C0B170C6F06048B40CA0BED838AD963FB8747CA714CF1D3267B701132046699798421ACC06A3BC1ADE172FC62123235C2D8DBFE40DD56CE5DE6756CC4B6AFDF64050DA2EECD9953E893C53BF7FFB\nsk = D32CBC1116AC88219F9AF2C33BEB59BB94B372F97815278F0FAB2C690C94B8F209DD1575BD7C0BC7F48AA133BFA068CF1AF1612C3325B8D08963BBC66D938F46843FEE424357E535C2259ED958A75CA6203286190BE53A9B46373F8B41CB38C1CAE2BCB91898669A872F1A8D9CD21227E42ED655569202CC6B494CC6A6BDB08731CDE417F48B86554CCAF953B8FB70AEC727085510CDBAA7CD2A0BA853928886332FB1E3A419C49B34EC90FD31B716252ACCE7A79D05CC04074D69AB3CC9809102261A2191A086231DC70AA583E86912E5BEB2C1A22E841F39DB531D5C26CC333834A20480D6B1CCF19A654149045791D33B414696375DC3C7B0644626E8822C5325D52BA764F2361D853D244416CB9A5BC0540E1238CCB53438C90A196A45571F743894F060F6031FD623ABEBB4AFEA05190DD9452C981352A78E09579F05E24DB2033AACFB10D9335986E8542D9480BF5603FA932D2D0878C3753E6524A809324AD6F169D7FB6D9C0264423A632996ABF297707D8412A6B86160B69980E18ADD1C372FAA406F540C00ED0A75C3544811759C3B5026E6C19102B7160883ED002DE5807B5933934FA01559C4A790230EE93C215BD75AFF117D0F170B4FEB7AEF5B007ACA616E688161FC00CB037C8232CF2DCA569F01A2E1DC2AF7ECB6111181F2EBCB1DF27C6EA84251D8A2B6B6582EF915E2B8C7F8FB6BE8844478FC570B8054A067B34120B47FC6AC68125CCA8514DB4540B7796C9FD05523E7014DB34B8EC94D5EB66C9F5CAE2F838191D2234F43C72262A18DEBA17AB495B7F0529D89B8E1E407BD5A185EAA2444D20C6C9566526B8707B13BB0CC8D9589773DB90952A5CD78E43BDC68CFA4401D7912618F456EB4F97AC1B49AB948592976233F962B1916531FD1672BB69BE320A2985B38B80279572488C5F86BF3D55FB9FB90449B66FC874B94292000466786FB7E393765C7057051999711D234B4D277419320E0046EC0925B41D6B89C62133BD2734E296DCFE90BF6344219A6A22D2CB50C75BC02B07FD0DA11FE0A0A0B9AAD76001D5D7C8FEDE065DDE87D5D47821E756A926638395883879A91B94C6164A40895476269917CAEB12944DC956174B6CC5154944571A6F6553F604D3212728FB08AF6E8C0EA00265AC0C5464595B31A9131871D79298867AAB426D009480C0BEFC08ACE14991399079CB62DE9E6BC80C88C3339640FC667EC837B691C3DA4556A952B3E63C162EC911101C5A49B35475AE68634A7B0CEFCCFBEE608CD4C43C8EBA7A8F957DB595645C64ECF08B50C7438BFBB415C27A45AE940AD077E5A533825D998A9095A735B5D23887B0048AF49CA85F18395C7D3CD06BB687C92CDA9AC9C03A9333A866A9639803C76B5B189294A269F389ABB5010789D410B88215C554008CB10274F781ED6B0BE3903576CD16934C4B6B65296C477AA174043F06792F3944EFD0206E34042D827CAFFD2989B936B91694825C4BD8B10C0777B11971CC1EFB93EC1B3674AFB4FD07568FFE89C707B5785C140D51B433B7942D88A6EF9BC9D091472833004005AA803A050CE03B2BB551F62FB1FAC6649D3E14F0141B2EACA73B700489B73A8D840834A7802A96864610B10F3576FF861541032094855B18CF574D868B0EB783CE9011F28FC14C486B122CC80093897BFC8AC1082421F99767BC42B0FF41B22DC7B50D5556041338E6C4368AB190E92608F6CC69D8B33F1AB04DE68CF96D9C5882C97CF28C30B86924AA57849954369C5427C876A9B1CA341E8522E1357E60A4450B69F150658715403D1E1C957E5A914B9A3BC4C45489053306329C7984E76F169C8639DE4080DB1671ED01A24724A101DF89E45B5B385CA2EF663586AE58D9B33ADE9738F84482E6E28909E7641AA673AD772B125161A316166E1717FDBDC8D02B2B2B6DC21805619D4FACC40E9A21BCCA9D4DA71220A4631E95B25E960192A22A39B904BBB02F1184B79A97B3CC16B5E4B5EAF278913B7A195F3107342A77A68CAC90C1B5A3CA9B354A6095C29C09C5AC2B44C6CB28A250834D5F2A307EA3434977D0087017CA2692B79008640B770B41EE2C2C77BCC2605F1857368C8E12983AFA8633C870115A3818D6BCBCEE864A8DB694F4B77BCF63A8AEC407A45716AF6358065C30B77B68C2198B2FB558F463A7477B9FA7680F1E65706A888B8740A87CC7E7949156F896C182B53E464721E46A258820201887CE9B83D43250B63E2AB29900A115084A6E66584F767853B2E684C547D97266B36B6838AABA73298DAB79C58C88F1B51113EE752736B7566EB5759CC4DBC37551135BB3C87B1A6C83AC5A38DBD78106EC0C5E9967A6D81139CD516027C25AFBB6C47E3802D56079E6265C4F21F1315A96AB994597214B814CC53E8566330CD51FB4045F605DF1C7C9C255166651DE6041B7FD85C7E376E28076AD352051C65494A1054C30930621C53EE8947DCE3C55BD686F186CD5AA21AFC17664D36A2D7F5008AE83950B93AE510847552A5C2F761207B0F478C73C4D6313C8ACC25B13EA64A72EE3334013CBC0A855B55E88EA17466534786B6176B9053CA9D0494C6B4A940B70B68F40BF570C461F11795952E69F21EC4562DEC99448263188EF44E71A1681D626CAC69C6B56AB51AE656BE1CA028672D97D044E43577F26329D50851B0F8A4A1B6C2B673AC6418CCD58005AD400C27D274DD4732E56B5D7C0B6EE731A99E15229F7295C153AA3A873C20C23A35B6137C824F6FB021A0E28F98BB3BE8DC07A5B038DC89944952913AF7A39A9B00F1A038A628686A735DBD4C45E0B8BCDC1C1A902CC4D0571CBD589F507A0C0DCB81BD39811E723358D6320A3049BCC90D776562EB34877978C9929548286A85EFB85F7C6C76FF255F13A0CF5E70304F1CC838FA398FB34E26CA662759C8F3657125DC2AACDC4615653EF074A784500EC60980BE4AAC94B0C7A9012DBE73CDBF1687A684AC63526778926654A4AE4CC779A600A836E3273ACB95A802051F18AF32683F52363572583FDFE30287B2632874CB04832F55E0944712C86D37420137C56F6251A1352AE37A0C3FDB885CB561E63A493A15BEB5E3B123ACA6B6B7294D8002E7EC758AD2C22D336AAE3C067703821842CBA2DC0B1B7A45CC0A48202A002F927122C040F84A884C1334C1E17347108B91C055D331C0B170C6F06048B40CA0BED838AD963FB8747CA714CF1D3267B701132046699798421ACC06A3BC1ADE172FC62123235C2D8DBFE40DD56CE5DE6756CC4B6AFDF64050DA2EECD9953E893C53BF7FFBD3413880D082F26986FCF452A84A8DA934ED06198B290ADA1789E74D9081A9E7921BBFBFCC283E1D1DB36E99B9CC6CCFFFBFDB86DAB7B6C7CA02CDA227DA8632\nencap_coins = A0462A5F2A6C43D1198D54097E08D20C53D87B7C05DCCE5418838FA8E73A9C8A\nct = 127797A15A98A48DA756BD56AA7044C00D92B57BA37F1047593B715312AB77019442DE340AFBF44134C7562BCE027E7DF1A2C6C0965D01EBAF2E33714A31944BC5F1866750584330E153645AF82719A4B2AD93BC85870603A9E8804AEB859E3608376EC737F55C0E9462D47749038C70E7D4665DDF78DCBCDC46AE672DC0E627CFB320EC8234D4269EFB498088E761246ECBBD4CE81E12A039891230CC994B7AEF1D9FFDE6D24E246826161D2C4452358BFAE9A06768876099166A430FE8A20BE0E6F1F252467936F84A1945963DD42DADA8AECF02D41025D75215CBD0A47C11DCC55E51765971B05FCDA4B117E983F2AFE8B3DD4E414EADE3BCAF53E97A3E830256F661CCB0A83DA1F4292489960FBFCE1A087E0BEBD241D9C84E99EE1028945E0CB01A6EB4BA339456B5FC9A824E49F2D4C4225A1CF38E9ADD1F62A73244123B13BD94446343750EB4ECEFA9B99690ABA5190CAD3BD6D1A50E1F83A566520C5E7D0900A17947970E42A1D63BC858088480F35E97CC5604D344FC0CD4E81C119D3F89B41171C127013E3234909849DAB16563A823BB8E93B757F63FAB3F09E14329321430C0D46403C0A55EE68739318E524F445F6A374CB032B6688555F79D99433A663DB2EDA5B74B4315FEAC8D0053F489B15E2197F7EF8BF677E9B3ED6F7965537049C08D64C019877EEFA3E18BD0FED245BC5BC21CB67154E5C9454D7465BFFB5350B76C14BF4166FFB0389812161BAE0AF80E78995E79E292ABDE5537532BC94E30B2222AE4535B3802579E773A733081D2E458EF063C39E6E9F1BCD4999566445FCBD015E8E35EDB47C2298137D0A405F73CC5CEFE5882EF88EBEF7AC98C4E50A5B98F1743988BE9BC124E62C3C9A65F7FC594C13C305088AEABC4FDD34AF0ACEAAF410BD6D2E2082E792812803F922499E4A192C0FC90F60F960199D91627C98C68DAB75FBB21548A3F3A8337D187E6294C489C0A88B2095B23D233A9AAF7AC592DD7B6C4155E2DF132C605CF36367848EA2E1740C93C3926821E654D52883F2C9E0F820BC9037F45DB5B809A1661579C4CC1D24DA918FCCB960B998A1631CC4AAE3DA1DA9B18C7B6CC0287E568375CCDB8B32DCB179D4E3B342E88A5CF347620310AAFB93FD16DAB3E79DB3313047E7F6BEF5B9B27D6A7B3AF617CB2BC79A8C71B4D9E8B71BD499741916FBDD17EB1B9A124C265C43C5B496BD5AD62D425A9865EA63F2BD235F87CB1280C125BF36A2C73BB6A8BB7BD8BC9A92CC8E9657D2DAE97CA729AD53C3CFED6B8C59BCDE1D11196F5330309222BC9A24701FFE370ECE6CA2D0FFB6F956A4ADFD1E4DA76E6FED09E358E93DCF831119FBBBD92D26DC77D8160C95C6B5F45FCEAC2292432C8166D33A1D20C330C74B6C63079A15715CD6CF62116993C0DB574345E5F8A071E6284D102C4CFAD515E3FDB0B6770C3490C71247A604C71FAD84B161B633F3BC0E6B80C6D316EB932228724C37DF56A6589F1BC237325522F2EBE4BCD61983995411629B5657145DF52C2D4A829\nss = 160B5ECB8D716FE55187632277FF23A74EC598CDC1A640DA772FB98979CF98BD\n\ncount = 22\nkeypair_coins = D569B935CE015C85F792F8F7FB0D83C4F53B492959361DD4F75FB764D656450140B4E01E03F62E5F489C39C78D387BB33B526CEB6907734A5F788209AE3C2647\npk = 4C376BA98C3A0415A3BFB0AB42D0A3D68CB171109C5F83147C33ADDA2CB07C62A9025B44523B0AE4CB8A8BEA5E550B717CA6C8271997CFD6C5ED76AA44E43DA2A02D3", + "5610787F22966298FFBB45FD78A8D36EAB454675D6951A70472CAF06640BC1B97D6760E74B41C577855BC0756ABE528EB4894E8776F1E739DA45A9F84C9BF3C72B43262525B547F75176AB2E12D8EA808D3B0355766BD69D964EB3B450A96C835D7B238220FEBD62443B03985731333C54382D20200E30E4CBB2B607AC998F20DEF865BDF47CE78AC3DBC1ABE33245D6FA7583B31B6FE7B6EDE7A8EC776B20F7BBE7E376578F0933B761BB0952161123D61282CD6C80CDC8A85F9632ABA1A8EF5925E410BB80BEABC67735D07E4ABDD587827745A3220A24A7B3902416BEFAB3073C2CB1FA76FF04315B653B3E7C18343391F92015939829DABD0289B5AABC4CB5335D963AB842865BB7C38106EB1274ECCD0140B415901279E8719C0415517B5101394F78A48F565317909371A3154D291698B0BEDE17052F30786DC2D46E71EDC438C288CBD44445F993926BFF0A8CA1A033B656C2362A659EABBCF37B2CB5916940AA9B3E850E51039C08C8588347E1099A0D8380CCC4B8CD0C87218BC24F09126A82A3D530A75500254510AC765CC1DE612A4CEB14DB78A7141109F947B4329158F87E4C8B41A92AFCCC9EB749D66A71159DB90E7A36642636AF22CC0D541CE52DB7AB44BAF30560691A637C93193A11A00EFEC075289953FDC9DF3EC3390342AEE44C08D661632FB0303681E1F89CE1300B0C1A36E63E5A45886A4C76534FA78B87A75CF96AC66205C28766BA5EEF7062363C19091C61C543D5C1B8A547372515722EE515E8EF52BF8E089D93377E2C8458E626D3391953D658CDB05C7A40077F4E19DC0B132BE719014C12B0CC242466112E94809630B63FAD12C99D271DBD38E5AFA54C894542B940415354203A0C8A785AB94200EE0CB976991C642257D9AF6998B61BA27B236FDFAB86F834FB2D47CC0904B9D6ACD2F8311F0D4B8AD81A24F712D92272587220E8023A8BC13BD17572D38851778F319607752466CB0DE7C5C12103FAE4C57D953B96BE93262BA9CB05405A5D2A9E012B21A22A2EF33A385C898C80AA9663565B63241A1B206F3379ABE8262CFA49BA05C3B43E9485E60CD38D66EAED114EF81AFD66B2594BAA361D3C3B02069B1A164BC387632E24C82A91BE2CA390EB585E900173699A8B26B8916E52BD643645D3225DF38BA50A50EA013B4B2A86EE1F76278E27F5A4142F034004B567F309C52ACCA3C7530162ED744A67481CA338861CCC3E8331E1C67886023743719493CC3CAEA51438E28AC4EA06B906789A65220E3C7407C874C6322BE1F9B627386081753AD618A8DCC013395F20F5017AE2B57BA908617490460D5A67FAE2660A56C4C4D97BABDA0BAE0F494260877F7077AF2536B2CA46E297C61DD8422BBE515519210DABC02E7047B13F16607AC15E4950574C43BF8C39A2528ADDFA2782506635E5626967A1F30C02FA3442FA93250571A8173999A88DC27B43C476468A6A4739972DC1B68493413A2743B9B563283CC886916ECA5887796A4F833AAED6639B9D531EFE5CADF9225573A23664C9CEA086428DCD19FF40A06186A41FEC0723953781475F648\nsk = 818B55FA5AC30A81891F3A3643924B2B046FEB6765A61CC81C9059D1F82F6A0067A102825C88A530D15F0DD95F0B4742D29ABE7044C62D45A05BDAC46130305E3C3417D67F60B92EDEB6B2A398119AD160EE3CB0FB52144435A5BB5412C0512DC6121BF6E72D0F87A3834AB5338196FDC950A3CB1B7354C4E50369BD4364CEE9066A221DFCD580F1B914C0C335F547748BB19264B7879F206A9C610573B8676BD0BDFD777A2A0CA5EC891A1317C5289784DE114E84C53B983778BF8933805256C9A9BD05A11AF8F5AC271AC3F1E635EB9A8263C855BB230F58EA3B7E8287D76258AA57646B97560E593944C4CB3567A2C382A795C991F69BC2DF2CBA8837C9A3B58A9DAC5E4D84B50722A144737EA38B14BE51C41CC55C53340ED158AB4A0B0F0A2612962B89CC2AA8B29198F2E04B0F0CB586F271C6414F31A71A45ECCDA8C597C38415D262571BF0A7BFA17115E0C7731C70C2D01C492C85DE16C511102C5A96973C724F3B58B504EB65F56116AA7779B76B2554736D9D6176DFC6BA007A590A311D4B86A7A6251FFFE6086AB3319DB48C4DCB91FE680F45A9480241242E4AC9861B62860837CC813FADF00751C8021F7A1C4D7A1E5F13BC3E8462F372CD7498197D172EFF98B1F8BBC37974B025295A80E3525D282FBA8467F8079D78FA6068E23BDBB3349A31506E474EA228C3927A554D7747BD3621A0343CB155BC786075C3015C3692C0FC65B194A12152A14153A03D5147B0CDB423A3B50ED6461813F9AE1FD63AB7A53031DAC2D0F87CACD1CB81461C8C08BF367C4CCAE7626343469D417ACC705546293498035195240387FB1F2E7C005DE000E530B9E21CC7DBE463E7D24ADEAC1127026843B87CF6FC1BB94674399B0636506B1ACAB72F623ADEF866F883762B5B4509CBB2BE142C5C550046E10D29FA431F9B7D977253928A8D2D4C33ADD899AD736B40CB4FC656BE02D90BF8D393D632A1AB509C432511F1CA16B01139CB0627F6503BBA75440414AF97A04BC5239567C060EF94C9BA7221D4612EAA640BDBB8B72E32A4668401AA79421BA68115261A8D94878C90A0468510B247968B7463FF49A0578044C5E9147F0739F6A17B18828BDCF56966B1CAA125CDE7BA6DCE939E56D350E896CA6219A6B8947E3909361754593FB8A85E742CACB74E1D45704FA4CFC91C142453BA5C08558DE1321AD6A6A2804769A0BF69770A1264BA5148B40A3A9BE3C513A382CFA3C244C9A138EA9CB8DA7627B350CFF87AB064A079876893D893250EF59F369C41F9EA40DAA5A5984C19CE06CF9BEC2947932133A4157BB8CC3C72A1FD25715962A9C88026C018B7202885224019466540C9EB5482A87E665157BE7722BC64133C827C20B97D9E692342F23FDB1B75AB2CCB6FA5973820B92EF1BB45C2B5ED1330C1417CCFB39FC6301B8A749D3613B3803A6ABBA20990151305CB32BA6A5B558265C2E27D8D49AEF3E91819920DB20360355919D5F641922233A1C24C0045172CB10F9564A029F07578A48A4D215248F3AC7A912EF8E56E366B03C567AB978C750D85454C68A5806AC38B7B3395F19FE78A001C5867D3E90E9B54BD63954761AB7F4A57B1FA32B65F285742C1207AA0684C376BA98C3A0415A3BFB0AB42D0A3D68CB171109C5F83147C33ADDA2CB07C62A9025B44523B0AE4CB8A8BEA5E550B717CA6C8271997CFD6C5ED76AA44E43DA2A02D35610787F22966298FFBB45FD78A8D36EAB454675D6951A70472CAF06640BC1B97D6760E74B41C577855BC0756ABE528EB4894E8776F1E739DA45A9F84C9BF3C72B43262525B547F75176AB2E12D8EA808D3B0355766BD69D964EB3B450A96C835D7B238220FEBD62443B03985731333C54382D20200E30E4CBB2B607AC998F20DEF865BDF47CE78AC3DBC1ABE33245D6FA7583B31B6FE7B6EDE7A8EC776B20F7BBE7E376578F0933B761BB0952161123D61282CD6C80CDC8A85F9632ABA1A8EF5925E410BB80BEABC67735D07E4ABDD587827745A3220A24A7B3902416BEFAB3073C2CB1FA76FF04315B653B3E7C18343391F92015939829DABD0289B5AABC4CB5335D963AB842865BB7C38106EB1274ECCD0140B415901279E8719C0415517B5101394F78A48F565317909371A3154D291698B0BEDE17052F30786DC2D46E71EDC438C288CBD44445F993926BFF0A8CA1A033B656C2362A659EABBCF37B2CB5916940AA9B3E850E51039C08C8588347E1099A0D8380CCC4B8CD0C87218BC24F09126A82A3D530A75500254510AC765CC1DE612A4CEB14DB78A7141109F947B4329158F87E4C8B41A92AFCCC9EB749D66A71159DB90E7A36642636AF22CC0D541CE52DB7AB44BAF30560691A637C93193A11A00EFEC075289953FDC9DF3EC3390342AEE44C08D661632FB0303681E1F89CE1300B0C1A36E63E5A45886A4C76534FA78B87A75CF96AC66205C28766BA5EEF7062363C19091C61C543D5C1B8A547372515722EE515E8EF52BF8E089D93377E2C8458E626D3391953D658CDB05C7A40077F4E19DC0B132BE719014C12B0CC242466112E94809630B63FAD12C99D271DBD38E5AFA54C894542B940415354203A0C8A785AB94200EE0CB976991C642257D9AF6998B61BA27B236FDFAB86F834FB2D47CC0904B9D6ACD2F8311F0D4B8AD81A24F712D92272587220E8023A8BC13BD17572D38851778F319607752466CB0DE7C5C12103FAE4C57D953B96BE93262BA9CB05405A5D2A9E012B21A22A2EF33A385C898C80AA9663565B63241A1B206F3379ABE8262CFA49BA05C3B43E9485E60CD38D66EAED114EF81AFD66B2594BAA361D3C3B02069B1A164BC387632E24C82A91BE2CA390EB585E900173699A8B26B8916E52BD643645D3225DF38BA50A50EA013B4B2A86EE1F76278E27F5A4142F034004B567F309C52ACCA3C7530162ED744A67481CA338861CCC3E8331E1C67886023743719493CC3CAEA51438E28AC4EA06B906789A65220E3C7407C874C6322BE1F9B627386081753AD618A8DCC013395F20F5017AE2B57BA908617490460D5A67FAE2660A56C4C4D97BABDA0BAE0F494260877F7077AF2536B2CA46E297C61DD8422BBE515519210DABC02E7047B13F16607AC15E4950574C43BF8C39A2528ADDFA2782506635E5626967A1F30C02FA3442FA93250571A8173999A88DC27B43C476468A6A4739972DC1B68493413A2743B9B563283CC886916ECA5887796A4F833AAED6639B9D531EFE5CADF9225573A23664C9CEA086428DCD19FF40A06186A41FEC0723953781475F648E6EEC2929FEAC2A86C9DACFA6214E2E353FDA2D547C3829F5678025FF8418A1A40B4E01E03F62E5F489C39C78D387BB33B526CEB6907734A5F788209AE3C2647\nencap_coins = ADF233A4311B157829D49A0BCB633571230F7060F3CE655551AED8BE8961D1CA\nct = 8FDC65BB37E3567DEABDC678F45A8C16AC5EA2D77CDF67B2E99B884AA1BDBC47412B9459E8DEE983626E3E582C7B013C170B13F98D5BFE221C0DF63E9E811579194E7C4956BD0B8C6C0C946393C9159C964258239C29F5B15FF2392A2C465F859C614E548E87CE2A30942E66377E8CC1E6F17D1BB1BA1DBF5C60A607DBE4518CCCAAD2BC7AACDFB996BF5A413F00B7A102DDF999A6F0A0EDBD2CB8CBF0D03EFB41131CEA1B5C698194CC7E1EA59E648FE0846416792EED6C4D75CD01B7452D3C8B6E417AAAAFBE6A915A356B0751D57979F29FE094D486C0E0203680E38456C4DF909D60B4BD8B3CEEA85CBBB1FE49B4F859DF81B0BF6DB26EABF7ADEEE17A003ECE129257E905DA0F02A0091E1D75225003570EF89D6AD8E0FD2C0C4E569B6033E3F5F5059F803B3E555F39F9D4BC16257D3EF42F31D28776A05FB545856E46F1CF9173BAC6EBD8843E2925773147F294598F09DF08ABC6A81733D75B7CFCA44ADAE122A0A607CD6CA9E34B88B83AD256658A661BAB300F6BD242CFE6AD1D630CC88DE3322D46044F8E373CCCB7C5D9FDBEAB00FCD41CC44997F0D85B615F0FCB5AEE489ADD8B73CBE287A5AFF69D241C13C1BDF6EB0DA899E7F86D803F9ED5BF90563C1E80AEDE5C86ADC5680BDA1985321076B41A76F35ABDDCE9CB32056D9DFE304D1CACB5B11A906EA470FB4E1A28618FCAFBCEDCF2816A601FCA55232503B2A992CCE70E317FED28DEF3E864DDFFD519CDB0", + "A2489CC732A8FD57D8EE270EF3E3F97F2102C9D5E088700B80B7469FF98DB610102A1B39FA48679ACF57F0E9D2D3C83035B5A2BEE5F58741C02BFB6F20D07C42070D4A1AE9DA64301A279646CCAEC0B43D3B77FD2B43B220DBBE83BBC8D47D58F01D2178509276A2099D855E3CDED97E2A6D92A6ACB9EA84422AA90A809548C8FF689E0755087CA0E97F5710F11BF56D10078846D470A3A6A061B6F0346490574BA41BB935E413B2CF8904012CFC4213B117FF5906E48830291A7B21786F3EFE737F0DBA88C5A0CBD42578F8F80465477B39354555D15EA6F3EA88DF3B9748D6083BEB47E903D7BAA3497DF57405BA8D7309F3BB918279668F8944314CDCC18E4A334FD28B4D8F088DCF82A9CCFDA9C76986C9D83EE864671A5B4216F5F5331B9BED7A04D5EB1DFB8023794FC462B71108846E2A0DEDAF9271C738687676319AB294CA123E06B599CF960774996D663F68B0C028F4D75125D7AF4F55B1DA98F28EE05C27270A482E55197BBE73E1B4E59FE98AE9A8C14FF54BEBBA433684456929272E1D75FAE8271D1C207B4083974608E0AFCCF2EF3F10907A99289ED8B346EAAF220A97F82718BF782F9D7E2991F3BE12A1DCC8562B4BEB9D4429842DA04FECAB26072C2BDC93E14ACA49EB21495E7D2615C97794795C0BCA0C0E4573CA760C0F38AB263EACDA3274BD4B9262981B742E3A2EE746B6C626E9AAA010503C48DB62D09F437F26B3A22F74E2C7D6BB929751374A37FD92E51F6EB6CC8FAD29A5BD64AD247593B5DEDEB9FF\nss = 4E366C3D6EA9DA570B650ED2909E11A8E372DAF4D580050958F116FB41BAC319\n\ncount = 23\nkeypair_coins = 5CBB141C2763425C274F7404FE530D9116E08C33F9F200A20B011CF563A28990870A300648D2B1F1A637374278BC62B5ABB56380CDE88EACFBADB3224795A125\npk = C8735813347C3C7C05F81A176264A5FF791D9801AF88047574008C870635457126B4069071242C24DC0977A8C13D43B889D27F08984D9EA657D241922BB12AA28A1408825B02663B970778BF669D585A975ABBA6BCF8513C11BC73A0C33897991C3428A5CB4DFED155B9A2909E6597DD8CAC1AD62F9CFBCB27088860512859761885C5B6C5D89FD6B18F9E324EE8F80B4C507626762A22F4CB7F4527527896AAA97A69B8AA4FB09B16CBAFD73A667E9CB085F7CA36067D4F740694E6C83C671071762FBBA26A640C86422197894CAF01B0AF66960651998073BA7FCCD3189148187BA22DD2661262766399A6B8BB943AEDC590FA048816D1B9D827CA80935D30E1830C8115B18B754F20ACD7A376272C119CC8210C9AA112D604B2022326F51AD674AA1579C081F12DF04A9A2B4571FC1C21A8A4AE2C701EB2EBB0CE65CD2FC22FEE530FB3DAA6D82B3D46E33E9C918F6D33ABAEC34F45391245453EF4D128C4C068227A6511800D69F6A31A1421E2D322F897145961ABEA377C9393ACBFA72AB3C3AAF7F04DDAD50077E7C36AC46E083075265C58DB4B7B47DA253B8A9361C08A1248B53098C6B797622E228939F110ECE18C02AC613E00B624C61EFF4524F92C1EA632553D9B90CD886FD2C364B25C877459BA6DE0AC8CC2A8B0F2C6D71A051F8727C2892D1934857EB995A8D728B9739872EA472E6602F2C39484D290109BA924933D6AE52C30EB4D80935F0D2C87D4DABF07582CAE3C2F21692F0825C079EA6700065A6086B197582B76CAC90A58451D7479965475AC8A6AF662C7D23055C404246264C97BD23D280B43CDEB59BE0CB31E04474CACC4A1453FA10A9E1E4050F97CA3E9AB31E561AB18CB3AF721570380023A9349ED6BBC5DF66BB243928DD3A4B5E113A0F99725C9C8BF673818B89030DB28EDC536C9620A1625C8A647BD3D7055039753E11C4B1BE3AE79EB565E6367690B5338C554CFDA9369E9B1BA75651A0234D2325ED82369BCD415089692547B325EF28189482714C80DCDC5BFF72A6152B70AC2F16707C63A42830DD6CB88EE646D882338D3DCB202408FC5210C71D1A8BA02B8C2AB7E06E43CCD85CE39A215E67914369C749C3978778592D9E34B7671283DC787446B5B70A32C4C1CA4613B01A5D0BFE55016B897130D1BCFB49BB5F08C5DF9F15B6D531B06C53A389500675AAFCA9700FBC310FFF968300360AB631AD95649F0BB47E55B90B2593D9A60BB0477BA848C0DB9F8BF6C774CF8348C65695B31B921E4439E976B4306A47069C25E4A7515866C0BD77B44C7881121025CD2F28430383600E4BA0BD28074B7BBF2A2A3BD62A73BA240D644AB1F89ACE0C8A83AE62F642237DE265765458D6744273E4372ADD9CF5215BD39FA516575BAD72034288CA3E0D3BE57DBC7ADA731F5F13FC0252BC5A9213F502C342A451B933D3060A2AD8A9C13013E3D93455327C187547809FA57FAA299A843A251F8368A715508C32AA57A42F9551520433F9675ADD0359C5997C341464264986FCF67261D16B7A6989EE33730754A2CA0F66B6C98CB421C8E4B36002561B1A5550B93B144D5552AFEE236357C8093932829F864963159A8E7CA992B8FAE006190B55C6A4FC08AD10190D2A178865ABFA35607E1A88B47EC8EA71B102D7F1567BED46A\nsk = 91C087E623025864C3C5D9049E865C6226CDD2B39F8A1578EB69A864CCB2FA155DB32702DEF5B50E973495997E18C6C21756568802A4BBB86C5018016FCB0655B09E6A4B39A8BA2D70E32BBB255BDD296C998A21F5716D49968DD02A9C4F4CB9DC72C874C232011225F8E8840F7589C2D285C1E72C8588C0A33A502A385D0527186CC6809185408E9C7FE6262725528A439332F93A5BA2943E6DD7B30D79A25939A4C0802BF57C755A5A0EBBDC8390F8AEE407A541C46CB1530FE1642215556D20AB942DDBCD1627826648ACC3FA1367DB0B45075470196B46697D9EC6974F477EDA553F80B701E853398C69A6E4970A746534928631E6B811E533A4D1E89CDD6969BFE0C861D2CEC3E16D0035BB50573ED61B5DBD45C8C5B223CEF4266C5A6DAF104949EABD27D3319BF12A7AAA4E5F636732B28E902A1098972977D98C00A267225B84AF1C8C404A52472B8D1A793E370B17A9935EE590331256620E302E390474DD6A17D17A50291B6BB940BC43F89FDD22109A72C8ECF9ACB1E67EF6A423396225E6ACBFF2880C35673135C5183BA37DF968330CE992DAE04E9455267A195A41893194BC51C67393251A11ED3C0829D99A3D23CEAA387208E00974E73178459BDA539BCBE89F5EEB05EE21BE3B1159018A3262120C21D4972ABA1A1350231D3A646BA70FA5B641EBEA1B130470A5EC7C40627035B03D15696BE1313B458CC9AC8460CF281A6976A9D2CCAEB9FB157300B4289A55ECA386D3D8A7D16C21102AACF361578010042C3A6397E2CB2EA5224141A1D451B38FAC14D7B64BD7B72DB17408B0A8906CEC108BB926DF54299261B6B5C6A636B395ACB651CE6B6018EA9C92C1525DE1624B5570F7000466CC09A909CF36F34687265B61DB6BF2882514705FB37346385CBF4DF33B98686E0189BDDEA7268F598DB1B6CC7B32792D5546E242A807E760ECE7080392823004453048C6F743B87C1670C6D10E3001008A24590294BC9AC899BD588197530FEF9C2B85AC66520A195C77A7AFF61672C8CB74C07D43A2BAB7A764E750663091A005C9AF8CC4B55D502169D4293E79B365F60085B1CC2F4900541588819B5EDCAA3B80253178639F63A3091701C7E7B04E95435BDD2114BBD3ABEFB23355591B0FF102BC94B56B338083B82328712733F2762C5B1D0845073CB3B46AA28CE2CB282A4347F2118A6E062D7E8524147545488A01378A853D489C03EB0C6527307FB0CA5F7AAB6C328438D33CEDC10733AB8A68C7AB88E0B06FC51C92C557FD59488B6245796B7DC291728121BC7643AA5D56C483186CB55086D7E8654691CD5EB97580F0A553A2613C486C0B9566A6F05F9D2B82B57345AEEC1368CC126AC53B9E794BE471C16A498B743C1848A14D53478FC341A0ADA42BC2E0717FB6965737876468515195050D64079D624DA1596F88819FDF95653B8217F9885D151821A9529420AC95DD928FC429674025882C9758226194615304F1F5CAAA456182C1BB11F0A02B6C758EEC4AB6441879A42450A024559697C4494D8AAC2F7045342234CD8081C0077C9232E66838460EA26274329988AF3A82B898C4EFB033FF4101F302A898E84BCEDCC45E369CD1BB7F3517280D6655C8735813347C3C7C05F81A176264A5FF791D9801AF88047574008C870635457126B4069071242C24DC0977A8C13D43B889D27F08984D9EA657D241922BB12AA28A1408825B02663B970778BF669D585A975ABBA6BCF8513C11BC73A0C33897991C3428A5CB4DFED155B9A2909E6597DD8CAC1AD62F9CFBCB27088860512859761885C5B6C5D89FD6B18F9E324EE8F80B4C507626762A22F4CB7F4527527896AAA97A69B8AA4FB09B16CBAFD73A667E9CB085F7CA36067D4F740694E6C83C671071762FBBA26A640C86422197894CAF01B0AF66960651998073BA7FCCD3189148187BA22DD2661262766399A6B8BB943AEDC590FA048816D1B9D827CA80935D30E1830C8115B18B754F20ACD7A376272C119CC8210C9AA112D604B2022326F51AD674AA1579C081F12DF04A9A2B4571FC1C21A8A4AE2C701EB2EBB0CE65CD2FC22FEE530FB3DAA6D82B3D46E33E9C918F6D33ABAEC34F45391245453EF4D128C4C068227A6511800D69F6A31A1421E2D322F897145961ABEA377C9393ACBFA72AB3C3AAF7F04DDAD50077E7C36AC46E083075265C58DB4B7B47DA253B8A9361C08A1248B53098C6B797622E228939F110ECE18C02AC613E00B624C61EFF4524F92C1EA632553D9B90CD886FD2C364B25C877459BA6DE0AC8CC2A8B0F2C6D71A051F8727C2892D1934857EB995A8D728B9739872EA472E6602F2C39484D290109BA924933D6AE52C30EB4D80935F0D2C87D4DABF07582CAE3C2F21692F0825C079EA6700065A6086B197582B76CAC90A58451D7479965475AC8A6AF662C7D23055C404246264C97BD23D280B43CDEB59BE0CB31E04474CACC4A1453FA10A9E1E4050F97CA3E9AB31E561AB18CB3AF721570380023A9349ED6BBC5DF66BB243928DD3A4B5E113A0F99725C9C8BF673818B89030DB28EDC536C9620A1625C8A647BD3D7055039753E11C4B1BE3AE79EB565E6367690B5338C554CFDA9369E9B1BA75651A0234D2325ED82369BCD415089692547B325EF28189482714C80DCDC5BFF72A6152B70AC2F16707C63A42830DD6CB88EE646D882338D3DCB202408FC5210C71D1A8BA02B8C2AB7E06E43CCD85CE39A215E67914369C749C3978778592D9E34B7671283DC787446B5B70A32C4C1CA4613B01A5D0BFE55016B897130D1BCFB49BB5F08C5DF9F15B6D531B06C53A389500675AAFCA9700FBC310FFF968300360AB631AD95649F0BB47E55B90B2593D9A60BB0477BA848C0DB9F8BF6C774CF8348C65695B31B921E4439E976B4306A47069C25E4A7515866C0BD77B44C7881121025CD2F28430383600E4BA0BD28074B7BBF2A2A3BD62A73BA240D644AB1F89ACE0C8A83AE62F642237DE265765458D6744273E4372ADD9CF5215BD39FA516575BAD72034288CA3E0D3BE57DBC7ADA731F5F13FC0252BC5A9213F502C342A451B933D3060A2AD8A9C13013E3D93455327C187547809FA57FAA299A843A251F8368A715508C32AA57A42F9551520433F9675ADD0359C5997C341464264986", + "FCF67261D16B7A6989EE33730754A2CA0F66B6C98CB421C8E4B36002561B1A5550B93B144D5552AFEE236357C8093932829F864963159A8E7CA992B8FAE006190B55C6A4FC08AD10190D2A178865ABFA35607E1A88B47EC8EA71B102D7F1567BED46AC74F3B7FA6E2EF8CE99508C89CF3C71D666AB065A262581A5FB01B2C9B9444FA870A300648D2B1F1A637374278BC62B5ABB56380CDE88EACFBADB3224795A125\nencap_coins = 9DB1C63EF94F37D77F386DFE00D619E2D6789FE8237028E79B7B1EED9C16FF5A\nct = 480C8398AC625C10C90AB69D0642D6C7AB10B5ECA72552B0A1BFC09E48A39617C2952B820935AD8221ABBDAF0E1E28252B8366C0B469455765E026730EE5C615E70DEA87C93AF1E17F44DF2F0F89BCD8FF8A9A296E353AC08FA18F1394C951C0F0E572403840412C9E8E1FFDEF061BF0F6CF3D882EC81447A9B3A791078B6EBB6F3FA22D4D2472DDD4FCD751E9982866192C8C1209911F629F3E096446DA3A2318477D109372347AFBB76F073A60828234F07EE095A100AA4696EFB2D1AC500C6205BA7E2964F3BAAE12FCE349044C20E78A51D9E6A99661139878CA0E23BE6B4F0EDEB48CAD5F25CBF57D30AF566792DA7EFEA37A6CDE073060307EB4835C6343BCCBA1EF6A3FA3E71A0C9BE9DFF5AE0DF36DD218693AACFBBDFD7642E53D5000173FA705B6635BF5C1B0CF183426DD9DA693BD77D161C70B3C961FE7D0A6755BD4A35DA04A950BE0C1AEC5A07DBDC71BAF05355719705FC3D63F3CE13DF2EABD1E9D0EF026F2AE74C36F57F8A81BE31F19162658894D83A9BBDC5F175DB778E0A4C60C8F1DCBE688E49696BF7B54D95B06554F58EB1B62F585BBDEDFB3B0DDFBF89297AE8507E9F1547BC75816C81A72A433B534B6B303C4D73AF3D79D701B2DF6AC711A403540ED664018DD00A07BEEBF99742A47E147D16150B075F5B23256F12564FAFBEBE317DF96141E4367B4EC550C9D7A06F248BB6D42248054F7C250993D48DF2870F0EE67C4E4A765ACB45D414FEFC659FF8AA7EABB4FFA5EFB6B58923C5B603108738C3072DA13BE186AC334EDE79860CCBD92A2088095D27141229BFD649D794D1369537271D5FECCE4667300571E0C53E9EA5AFBD61829DA06803006236ED4D38ADEEA0EFDE8EB41E21C9A913CC07D7A21509CC505493E391DE0EDF0DB280E276ABDAB73DE4A1075AB8C9B1BC9819A65F918E810A6AC36D5485F6553F4C18139F7C235D6454D771B194024DFF5861F21D85AF3FDF4ABE2ABEDEBC073A54718A4A5029FEF4ECBFC40D5C2840FC218E306224A3AA87FA59C9820D76630BF338102DB97E8A598CFA8CF515B1A90224004BA189ADC9EF0C557748DE0720C1D1298FB1FFA119557E126D81941FC6A9479F80EA0888AE7A2A8D5CCF114B6428215A5DBC912A64EC29578D7343C11E33BA6546282D25DB4DAEDED2D1C83AC532695939E550ABB56964CB04EDE28C48255BCB2B48803ECE26BC42F509AE7AD084D402B1F2CB0A1869945AD35224CF82D1452E8C54B97C81B6FCBAE9572992DA8424CE5C8C6E4E09E2E295EB083FE02747DA52687E4DDFE76211BB947C84C361213D9B21408A14144B85564A39104C9E63C7BF6B0BDD99CC36D13D4E54DBD3E83C2ED65F12DF5B110BE1A6799125BF323A663BCBB3B96D32C4BCCFD820A583BA8B9B98B3DCD7D81FA9C9EBF433A926BAEB11A56FD038703911CB9125D57926D9B08A4A51B7CE5CA6AC388F9A74065F40AF6308A78E7F7F4C63264EC7540CAF44087442E7FE7F9AF7FFFB2E971957D9EA07AE541656DDB0FF6C069B24AAF\nss = 5ECCF621AB9A0C96475A8D23484F2F6EEA704862E4291E628FEE08FFFE1E0D0B\n\ncount = 24\nkeypair_coins = 293ABB6D1C207927945417CF84883EF010823E11B487ED55239E466E83696D0C0914D81173BFD7729D81603DEB601C93969B81C401E2B7B922B2873F8AA2D998\npk = 04A592C364AACB2C89689106ABA29029C58DDF7050A2C78787358571AA506570288E747A4204C43E8C6020AA3E2D77B36C3440A618C55F3CAE6D43B979786E6A181D4107CB723BB6D0729CE3EB98E7A979CAEA9508563D5A0B7A7BA55B8985B71F3C489B370D37A66CE048A9DD27AD17B38C66880491985B2AF8916C547E9C6CB16B506170F29304C4393E8274EE254A3F13C6B0E31105442BF92799F21774BE9A0F64970E6AB581626115A1AA3EE4DA7936504D036B75BE6046E5778F58CABA93F8640BDB24982C17BA3445F2AB983B685644B596EF66ACF739039AD0A3CD61BB80B000F7E8BF53F60EBE235C0BF22C7873AECC6B3AE2F3B2CC3BB47D1B88423A188393C43C4999C32A886807CC4262BCD5A588C5E1BF8ED6A6EA9910C19A6042679926F314E7C7C85BF550482735E7FA088C857AC1578560A1A2F7E831223CBDE33A46632B7E24D400A82A8C7307C23D6CA25075B58E727673D7CB5554042CFB9B7F95B11A55A9FD63B1B9F0B60F6931A0BA1AD28B485753446B0005E8710D7189BF438407B8BA36A1687A48E550FA37CF4C6B591AFCB0AF6B8D2EA5A97B6C1729E7AE22E28F2082A5E653B5BABB0D147A8748F2606DDCC7847C24F0D32771B910CCBA85BEFCBD2B89C5035B2062E6B9BB40828902B82E12B752D48D52B7A6599AC014731E8DA091CB30186C849B61954DFF867899E5BF27428229376AC7D97FA03996160964ABE56D3D0278F9F91FEC6BC821FC822949AD5EC8A9D728B95B19052AD9442FA0527B3935F4697CFA3C7413CA2E81B32A57F69479E89760A46D710032EFBB662F9467F0D03C806B619B9228135076FA235D502230E56669E2354C1B412ECFD01A429B5C76B17AE2AB99C73B4110957AA38C22C8FA39C00261C78AA571B953D868690761655FF700803A477917AC8A6105CBFC220A30A0CC1466D7598B2058B3899C567A71A66D5C9DA75085686AA4AD4015100360C6102C84C336C13B229FF599DEE4CB2C90A1516682330722DA110F42F7C0A4F23A2089ADD65438DC66246671BE41E7766641B4C9139777E08CB4D5B953E602931A7DB3E1CE70D765516242AE8987454B898F19C5103BAD39207BB16771B5D4191ABBBDCA9B5BEA711081CA6521149B60975E02CC2250A355897960A8E203BA148F8BE76452420D2134B607976F7809CE97597D8CA57337FBBD6748C03227607FA082195B49753C43047B95A020C7D195B01DD3CDDC4C091916C37E447ACB606F2D232C37C9871831C1FB9A8D00717762F18E62E7995A7393E0A82617DA4674078D8F10065A28649E53377A88BB0F996D84FC83E9496564344D65B73AB96C4E887107D6C14488E604DFA15E55004FDA8B65AE19006EA7C8A7471B354A4E746703D5C79857A02EC222B78B966ECF161D97BA7CF39B37FE173485A0156C3712A6ECB14E629899DA9163709B672A243D1B87E15C0AD611419D85522252BB5A02AB725CB5EAEA5BDA73976D534A881B8C32C5328D117306FC5217AAB89CF51C6174489AD241D1CB261D449F24A235FCD46FC19A8D14A4281906236738A060061A494947BD91604431B1A2871080616EE2E915863B2BF2D9CD86743B0CC12A5D21C6C745B34247C17F9447579FCB9BD38AF3B64CC94782E299E1D98E68F8BCEFA20D1E8DB8552516\nsk = 817471E55466B5BABF92A2AD879C9C951BA60D230ADD630984B2528F9AA07FF755D7D79A2F9AB53D8986FD90895D5401DD97AD3F7A922516279B5858F2087E6491B7BC42B8A52A5952F23622D5603A0A3152990CFD6AB9CD863345D8BE5E295C06B79332B0AC89282E61E5534FE0AAC95ACA140398B64175235B94417B8799A4B6D6933A8B815BFBDCCF886664E7B8C5CB0B999BDCB2BDB288D569666C421E2A950D198158C0D36CED3A74D9032AB7A2B9F276BE025296A773266E516826480E520B844EB69710120373A94705F9030CA200A7F85A94DB1F55D46081570925A476099C3EBDB32C532A6D8F16BE4DE6416D0C30D450808CD3C08131A92551985B92255282BE6087703F182156A13CD144ACA3924FD15492DFD253EE5C9E78853590930521E843A0E37A26994197B3161EE1A60861C344720286B6566796787B05CB8FD76A419C364F1830FE2BCD3A2970E2DAC1DBBB3803F8053591B29BF64C2DC660EA9938200738E2C0C318B77FF86749C43C72F9667D80D462D549BDFEA30CB0D9641B29308A461DF72914B4B40213B62E68B161F83224C1A45472B5464F97C6D6371C69CA0D520426DB8C1E938A934D50AE0B03BE706B74CB8C674EA955A4D8AE1F6C0B56263041FCA1871A5799921C45D9BBF13C01F0A9C5D973086B33ACF923A2721C8B2FA7B058BB2E64F43BD80260B6BB19F26A4F55D53E7CCB1BFE3AA424976132C3B4B3A00908E722557A3657D285C8580EF45B76A207CB31A71402BA1EF280048378B80DC3312F78A74065B2DC873B22D37990E465E425B992722A25009A93A7A005D91B9460AB7C2336BD303883A151E829234C964265E42FBF8252CB89858D590CF0830E59C54021B83DA94884A173BE6BC454AD5A719252BEB52A4F7544A7FBC03CE9091E9ACC0568306E5BEC2ED942B39A8455FA341B84571AC3FCA43C14563F91395D117AB021C8F141A4EC7364BA4ABDD8896BC6B281C751A66C767AC960AB52058335E14E7FD8A4E1D44DE2670F9BBC67F682A0657530EBA11C31381897D989BD392FAE02D0AFBAA5AFA1748A80847AF4B326F970C6161E15B212A1C66003A4317348374E66B29FE87F36D01AF5F1C75BE11BFEA21DD8626765C46F0C153D0555B419227D50DA5232810D8517B1A5E4147A52AD07012D8DA23829F39A40C70D565937C58A11B1A25B27C8207246C4E1B40230E39E4F089D43D562EF954F332B7EA6B36EA28A9D26EB251AB562C0E44BD238874E93A4D3B900A4B2B08A0B68C2B82C0CB56325548DA3316279672913D2021D742C3619823C4391E64112B5B77E8D707F9C1A37D3464CD5F96543F720A0CC6C9631458CD9CEDEA7B6FCAA76D1E60C44F74B986A772CF593AE712214E21179519C39FA533A724FE8177EA59B1123E831E1DC561543A7E559697572157B60499C4C615D02099D34B0738581061A85B2DCAAF13556208B3E5AF388392490FC338DBC55BBF7D25F49F61BD7363CBE3841AAFAB88524B0CA3381F5B22DC84C6A112979C3C39E45157C0749C04B022F83F53733A21E1F1842E0E72F78C6AE1E337B53215AE8563B16D99EBD6225766185A0D92F9A28BBF4E2B444B7C8225148F601D014BBB8839B4B04A592C364AACB2C89689106ABA29029C58DDF7050A2C78787358571AA506570288E747A4204C43E8C6020AA3E2D77B36C3440A618C55F3CAE6D43B979786E6A181D4107CB723BB6D0729CE3EB98E7A979CAEA9508563D5A0B7A7BA55B8985B71F3C489B370D37A66CE048A9DD27AD17B38C66880491985B2AF8916C547E9C6CB16B506170F29304C4393E8274EE254A3F13C6B0E31105442BF92799F21774BE9A0F64970E6AB581626115A1AA3EE4DA7936504D036B75BE6046E5778F58CABA93F8640BDB24982C17BA3445F2AB983B685644B596EF66ACF739039AD0A3CD61BB80B000F7E8BF53F60EBE235C0BF22C7873AECC6B3AE2F3B2CC3BB47D1B88423A188393C43C4999C32A886807CC4262BCD5A588C5E1BF8ED6A6EA9910C19A6042679926F314E7C7C85BF550482735E7FA088C857AC1578560A1A2F7E831223CBDE33A46632B7E24D400A82A8C7307C23D6CA25075B58E727673D7C", + "B5554042CFB9B7F95B11A55A9FD63B1B9F0B60F6931A0BA1AD28B485753446B0005E8710D7189BF438407B8BA36A1687A48E550FA37CF4C6B591AFCB0AF6B8D2EA5A97B6C1729E7AE22E28F2082A5E653B5BABB0D147A8748F2606DDCC7847C24F0D32771B910CCBA85BEFCBD2B89C5035B2062E6B9BB40828902B82E12B752D48D52B7A6599AC014731E8DA091CB30186C849B61954DFF867899E5BF27428229376AC7D97FA03996160964ABE56D3D0278F9F91FEC6BC821FC822949AD5EC8A9D728B95B19052AD9442FA0527B3935F4697CFA3C7413CA2E81B32A57F69479E89760A46D710032EFBB662F9467F0D03C806B619B9228135076FA235D502230E56669E2354C1B412ECFD01A429B5C76B17AE2AB99C73B4110957AA38C22C8FA39C00261C78AA571B953D868690761655FF700803A477917AC8A6105CBFC220A30A0CC1466D7598B2058B3899C567A71A66D5C9DA75085686AA4AD4015100360C6102C84C336C13B229FF599DEE4CB2C90A1516682330722DA110F42F7C0A4F23A2089ADD65438DC66246671BE41E7766641B4C9139777E08CB4D5B953E602931A7DB3E1CE70D765516242AE8987454B898F19C5103BAD39207BB16771B5D4191ABBBDCA9B5BEA711081CA6521149B60975E02CC2250A355897960A8E203BA148F8BE76452420D2134B607976F7809CE97597D8CA57337FBBD6748C03227607FA082195B49753C43047B95A020C7D195B01DD3CDDC4C091916C37E447ACB606F2D232C37C9871831C1FB9A8D00717762F18E62E7995A7393E0A82617DA4674078D8F10065A28649E53377A88BB0F996D84FC83E9496564344D65B73AB96C4E887107D6C14488E604DFA15E55004FDA8B65AE19006EA7C8A7471B354A4E746703D5C79857A02EC222B78B966ECF161D97BA7CF39B37FE173485A0156C3712A6ECB14E629899DA9163709B672A243D1B87E15C0AD611419D85522252BB5A02AB725CB5EAEA5BDA73976D534A881B8C32C5328D117306FC5217AAB89CF51C6174489AD241D1CB261D449F24A235FCD46FC19A8D14A4281906236738A060061A494947BD91604431B1A2871080616EE2E915863B2BF2D9CD86743B0CC12A5D21C6C745B34247C17F9447579FCB9BD38AF3B64CC94782E299E1D98E68F8BCEFA20D1E8DB85525167378EF967195C977D43A50D03205044006715A6A8A8263D717F40170B49E6BD00914D81173BFD7729D81603DEB601C93969B81C401E2B7B922B2873F8AA2D998\nencap_coins = EBECB3E8C3DC591EAA503C332C8FBDF07804FC915B771779C1BE60F42E2F3EAD\nct = B5CB471B75CA90F9E2EC373494B16B8C96FD976CC99884A16D60C1768DBC9CD0BB5422A5137D5E3C6B98066B6CA31D5D3C3EC598EAFCCA20DD4F5255E7220F5E35E8429921F2788C5C678D2890831C5C100DFA0050E13733D5684AAB70AD26741E2B35BA077B5E2EE7F538CA110B94618707D2411BC735050AB1646B553921754D9690195FAC0ADB0B2A443DB55EB9DA788C2A0F5B39AD7694CE4F948294961926A9A8912AAEC6A2A4526BE5A9622D597E87D698B9B68CFDB43AAFE287396B4D9D1FAEC0DFA56B66A8FECF209D3D99308E381252E76AB08DE41EA98E6F5E38DED850BDF2FFDBB4E6B5F01938A3F189291C89115B2FCC8612EB28E2A6F855F0D62737C5C168A7A40E59DD3783E7F17FA792174F46F7DFDEDFACDB751C396B9AA5F3DCF616BFB1DE5F0F4E20248E66715EF9190029EA704CE163543F8557CC45B0E516230CADE4B69AC97B3FA7B0EC611BF6AAFABEC49D967E71E9BCB29FFE53E170685A4EF7574D77DF8FAA573C804A3E592DE4F65DAF0FE5C417F8E5A40AC07CF3F1530F4BF478170B9F86CC9B3FD0EE8B8762267EAB75F947722E7F9CDFA7C759C54B093E05A2D5F31795EC0050E37ED9A2FCFF08CDBB6A5BE9E81BC31CBEEBA26AB29B4AB7DE5875C3A86B8BDC12A877302C353607E1093EA34EEC6724602F968187A4A24E300F156047F19B84FCDDCC2232DAD9C7087787C7967574C786682E0FB67B5941851A46B4994824ED6E26C14C6DD8D0C1FB79F7B1F682E5DC6512872BF9A47B98EA5592F6EF136A1B49F258E9F4A9AF0D5D501C54805D5DE745197438CCC9B25BA9BABB8C1B24F979C3062289A126D1CE671212D59DD8B295CA4E96A7472C0723EE271255A4D1F0FD45B63A4D71B22D579A39899B6B5342F34415EEEF1BF6F281758C673EC97B9E7FFE0BA3F277F7DDFB24141108C185BB2E66D079EA3128D9EC2E912EF9964014CB4ADBFBA6C89EEC8DBD723E3A1745AC0E0199A946AF3A51616D5EB1413C25C8DC5E87D7C7007C222D989CB4E89BB633789AED3A76E4804C998EEFFD9CF510E286BFC3187EE5A71F5DC1D6615EDFAB9B4972454F867C269813A54828D0B03D1964DAC14837C3A53ECF657F977C3DAD1C842E4D636342D33827845A2B76F15A7F2BB171886FEC9A3B0240259779DE76D0324EEDB458F86E9A0EC30E5B28F676D51C1D1FFB85312B5AE48E9984FF9B79676BDF60DB0763C45BA6BE533AE6C3C8D0EE87336407EBC9711C899B960E82928C2A6259F248E123ACFB0365F636FB9A0565271987189515A213CA0BB151266BEB90AFAB094E3180A7D2E99FEEFDAD480D173EAFF71E74AED0B91C95031BA069C959B54D28496A08BC8BB738D0A63F31225BE657E70AF8E0A00AAA9B1CF055EDF033640577C76BF30FC5C46FC66A277D93F1B9773C14CA4221D4DF57E0D3C7D147700FB0BB3E91E5F2A71D93EB304C1F1AA74834A137C75C0925ED023577D89DDA17E6CDA49FCF7B4D44912005FB22C9C358E3E17C4AF23603F663BA58010965D1569B93\nss = 9C5462C2F6642744C58E0FE1631ED21BFF41EF5FF4E8184A85E76CFE3160FBB6\n\ncount = 25\nkeypair_coins = 74D87C7556F2671F2D666854A4D6E073E69F35421E6E1A428CCCEA49C37F972CE82AB6CD4250546E9D3AAC903D6CC326CC39AE0B04CFFE6C6B3FFBD29AB63DD7\npk = BFD11FC259A2115806F9F68AB15859A763A49D169D615B4999714D550707E8A0C0A93C8DB2FB5E4DE7C93111206F052A7D7A5E0B5632D94C7A87596D24E950B361A185F065FA96435F312745164693FAB8D3A741C56C6F10D8BE52C06A5D83CB1BD327E5B28DB12291D907A2888136B6FA3A20A48990C6B6C81499DE2BB12D19B591234D55C4549A3861626167C5A17CC2A4CC9F668DF0707D26795DE7F771BC614B994B574FA309A1E1C8B4A0A4AD6240286BB78BA701ECC430269A37843149E1F1AAB731523359C735694F09298E2A1A08C6EC273B4A1D57118B20524FDA18190C2029DA4095EAD53212F609A76A343D5C68FF17CE6B92B340DBB8CC6C03AE4B29DF243B93233AF6B95EB5A7A8B8643B0CF5A8114152B8EA54F0E3668511CEFF536D888BAEF85A62299C641769023B7B92088546F338448C1977804B71781A554BCA5F13C0480B42C5A6626904516139ABAA54B429E7A0502B17A5A2727A7F230D63C5764DD497F164B24E5BA3A626785AD1B917A6B77B175E64323783C9791832A7C442B895EB338E6A29EF671D4D7C0230668C14BC794CF11340229AC905891CF1C51EF62B6A4A0553331F7F581054DA45C370BF606126B39492E4A3B8592BBE0359BC017557379471EF922367D82635D8494C88BD38A7720669A1F9145367A92090FC5DF15C034B82CDD9B7CB9CA76E74B2069C36987556012BF0746424677F60ADE29C9CB52C6D9CC2052394691D7306952C65EF498DA41279EEABCCC66B3A41747A8B447D7EE81116EABC04F4B776923C93A28FFE888652FC34415BAAEB6854D4732745A4BD5BA61C35678780063ED874C81823CEAE41B9684A05410266F7ECAFFBFCB5285472E5B02FB8C15D126410F0BA3BA8536CFDB65D23797414A55F2620BE653A98F33C95690714FBD3418C6893F8693908D41D6D69A744E63B2B0C190E3B1696A5C8B1CBBAA4719A0BD184F896C9D8F926DC933BA81B2785C05A51B22A95191F43DC23B42C050DC9133DE2B003A5B6F1A5730F490454C58AF291CD8D46ACDE69842DF79353670A54E2C88CC693745516EE64C2AFEBB95DF25EC0608AE4AA9C89215D471BBF68DC6530FC0FEE495FDFA09E98BA8D37F9636B270BD1102579EB7F1BF0B911CB79F03537168867EAF60D77D48BE27BC935B02662929DBF2263270670E0601E5E43008BCC07F06451E54755FCAB421D584BB603008C9909CAA61CF99A4B43A93EA8A3440991BA402C9A8FC51F90584C55EAA450B7A600342E98420D728A8B6344659F2A0263140E69AB86BDC6B20B3AA0920B90C70C0108358C8A92B27635154AF9A0A76080EE593CE3D37E40FA33D0C654AA77171F822E0082C95CB60B54A6A26099443F671E863889F35A0B9597B3442A71FA704F164834FC9C8E2C63847C9992CD73C1BFE7ABD3D75448D21926DA0938F92B9133A92E426DFD2634A677878EA9820F5C26A2382FDB1C4B8ED59DB74B4490B87B0DFC35F5B22112E5110D494E53C50D3FD6C64CB485BF5AB37F7A1B709122C7086D3FA56FDDC966DB2C53E09B976F986A334290DD8C3C7E6582C4EAAB182766FF70503B03B4E68261CD0303F7A83732795CBF84A04D78A541A0929691C94A094B7B8F92C5D5A3BC95122A6A7968DBB1334A712823D470766B3B9E7B55672D02AE\nsk = 60E93BEB5544294BBD612141956430CFF041E0F969E954A48298C7B5F321B9E1B70B7C796A753CC5BB93722B20380ABD6B8AAC4F0B102DDAB380B88AB9DC040FCAA8B775882A673864FB757A3453273627DF0690C90000B54112DCA50235BA14FEA59A764736A018A091B822A636AE7934A33BC5C15A7B77E1E53289C9757EC75CBBB792645325D6755D79B972AE993C9E3413AC040B3BCC85C4F98A2E185BF4EA1D19A4737DC78547847B7EF385D2A07BFE272764CC873BE8CB1286A0E7C83539D2B9BAD5A17F0893CCF41E2B5CAB8F66706955C5E168A99E9820A8402CB25A434F1A149F0148761014D32A51BC73A8CDBCB104C29BE554B2724107EF314C25D082C7252E0CE68833A47A619A611B08394960A64D8C22C25AA1121A8033605C9BF35221730B15E6269CC25FEBCB8E3336870B3C1C9D3A89DE4A9042758F517B55F85133B403C501590A0F53542239118F93874B319BE0D063AD82144ECA6156051424235D785C92AC00C412F8AC0FF5B88F056142F8A0934734B09BA14C00089BBA136279A5FE462082AB4B0709A6DB3279F8E9544F3909FF78B264399C2ED129C803B341D816EAE96BC531952D55059EF0233B0C18E1F7AEE5498FF6F11DBE801DFE193BB61B870008AE57483DAEB8CA7CCB460193C68A509E8DC738FF227FDA89B21EBA0053992A4D3A1F8767C0D3F3419838C8C7A2C0B3D68E737BA77221C68A8570948A322A143E5A03888C08A1BB7C42E9DB9111819ED94523848BC32781A881A468D26AA7FA4ACB926AB8695B24A094B8CCB0423192CEA88C1FAC818A6B0CA19E423B7AFCB51B121D48EA44037963EC1A325DC0BF7555977F468FEB49B8346338DB983E512B2FDEB35A300495F437CBA88C36D01536F7A56BC9DABD1000B77751031102CABA7182E2C440919435A14BC1AE1B354499324862885C9C301B7258FAF778CD0A4721F26EE32C5DCC7A7283DC10E3CB04713255D0044BF1D9234F5180F32483F7079B2C0558B95C622DB01BE885B2580931FC8617B6940DDFD54CB327712DA02F90A6A8DDB6BA17A31FB1D7231D94CAC2FAB", + "88A43B0F56968FE2B724FC8A97E1A371C96A9A17A94FDA08897BA1EDF959F37029A84E707EF676B89FCB5E94B8997D95542E26CBD28A7D01B1FEF76B1C91AC327874C04F01B2D6280FDC60CEAD3587BC0AA6EC76F064B3263B2419BF3120AA7791053BFA6E089F6CB8BB020B5C5E2517D4B2F34EC3C4237AF98DAB3F4D44AE161773ED53F391A689D7B38F01155FCD080869656E15BAF9A2A6419B38C2EC39112B4216FBC5D94771FCC4369EB90AACCF3A752020E24F97C30C4C67632180E9B928A0941C23C03CE588F7D841AAB91B74B7959BFD8B5B042294EBB094B523DFC425E9EF70BD2E2BCB2937EEDBA0AD018737BA91A3691030C1A6E54C0BD4336A4BBB7C5DC79057EF5C574C04DFCF9C8407CAC999A54975B1A45519075CA167B8285B2D554EB81702E30626897413051AA546BC63A42723BB95F0DCC525944C967D7A5793C34C7638EE59608C8680F2418B648B7450B09C31BEBAABB956E1203BFB3D377373B5483C93378F15DCF2959D0E02A15E2277B7AB78CB2BA78703F13DAB307BA1B663C86BFD11FC259A2115806F9F68AB15859A763A49D169D615B4999714D550707E8A0C0A93C8DB2FB5E4DE7C93111206F052A7D7A5E0B5632D94C7A87596D24E950B361A185F065FA96435F312745164693FAB8D3A741C56C6F10D8BE52C06A5D83CB1BD327E5B28DB12291D907A2888136B6FA3A20A48990C6B6C81499DE2BB12D19B591234D55C4549A3861626167C5A17CC2A4CC9F668DF0707D26795DE7F771BC614B994B574FA309A1E1C8B4A0A4AD6240286BB78BA701ECC430269A37843149E1F1AAB731523359C735694F09298E2A1A08C6EC273B4A1D57118B20524FDA18190C2029DA4095EAD53212F609A76A343D5C68FF17CE6B92B340DBB8CC6C03AE4B29DF243B93233AF6B95EB5A7A8B8643B0CF5A8114152B8EA54F0E3668511CEFF536D888BAEF85A62299C641769023B7B92088546F338448C1977804B71781A554BCA5F13C0480B42C5A6626904516139ABAA54B429E7A0502B17A5A2727A7F230D63C5764DD497F164B24E5BA3A626785AD1B917A6B77B175E64323783C9791832A7C442B895EB338E6A29EF671D4D7C0230668C14BC794CF11340229AC905891CF1C51EF62B6A4A0553331F7F581054DA45C370BF606126B39492E4A3B8592BBE0359BC017557379471EF922367D82635D8494C88BD38A7720669A1F9145367A92090FC5DF15C034B82CDD9B7CB9CA76E74B2069C36987556012BF0746424677F60ADE29C9CB52C6D9CC2052394691D7306952C65EF498DA41279EEABCCC66B3A41747A8B447D7EE81116EABC04F4B776923C93A28FFE888652FC34415BAAEB6854D4732745A4BD5BA61C35678780063ED874C81823CEAE41B9684A05410266F7ECAFFBFCB5285472E5B02FB8C15D126410F0BA3BA8536CFDB65D23797414A55F2620BE653A98F33C95690714FBD3418C6893F8693908D41D6D69A744E63B2B0C190E3B1696A5C8B1CBBAA4719A0BD184F896C9D8F926DC933BA81B2785C05A51B22A95191F43DC23B42C050DC9133DE2B003A5B6F1A5730F490454C58AF291CD8D46ACDE69842DF79353670A54E2C88CC693745516EE64C2AFEBB95DF25EC0608AE4AA9C89215D471BBF68DC6530FC0FEE495FDFA09E98BA8D37F9636B270BD1102579EB7F1BF0B911CB79F03537168867EAF60D77D48BE27BC935B02662929DBF2263270670E0601E5E43008BCC07F06451E54755FCAB421D584BB603008C9909CAA61CF99A4B43A93EA8A3440991BA402C9A8FC51F90584C55EAA450B7A600342E98420D728A8B6344659F2A0263140E69AB86BDC6B20B3AA0920B90C70C0108358C8A92B27635154AF9A0A76080EE593CE3D37E40FA33D0C654AA77171F822E0082C95CB60B54A6A26099443F671E863889F35A0B9597B3442A71FA704F164834FC9C8E2C63847C9992CD73C1BFE7ABD3D75448D21926DA0938F92B9133A92E426DFD2634A677878EA9820F5C26A2382FDB1C4B8ED59DB74B4490B87B0DFC35F5B22112E5110D494E53C50D3FD6C64CB485BF5AB37F7A1B709122C7086D3FA56FDDC966DB2C53E09B976F986A334290DD8C3C7E6582C4EAAB182766FF70503B03B4E68261CD0303F7A83732795CBF84A04D78A541A0929691C94A094B7B8F92C5D5A3BC95122A6A7968DBB1334A712823D470766B3B9E7B55672D02AE16FE956BE4601573D72306A251F69BC2181253E2417E178341FD6553303AC189E82AB6CD4250546E9D3AAC903D6CC326CC39AE0B04CFFE6C6B3FFBD29AB63DD7\nencap_coins = A9DA4FAE601738A23F95165DA22CDAA8BD455688B6033C74B4604DABDFD46FD4\nct = 29587FF1D9FE8E6A7E37899F7359DD6881A0B5727622E83AD2557227963F8836D0B004767A59F560BBE3C3D6DF1F08D4A1154E78EE29D92FA62348C45AA49A8FFA4D95F7379CCFC5E5823159639B6BC4665C4B6EDC7B4D08E3144C00A724A4989ACC1381BC268DC2CF22B804F232BAE16381A4E3CA6EE88C67BC9DB3B2E823896039981D74A7C9592F687984F217714C55ABD3593E19C644086C0E90A3413A750EAB9FD12FD1FBAC27B895A01E136195FC8F5F64C86BC5A29BFFB8B26D0F5AF6DEAE6C5F2D24075B59FE83F249C2DB464D97F03D774B782D749D73E56D138BB3282A3AA08171897476B3A6F5FEA22C16843347C21C531CF35EF74CA46C4A55C434A44243BECC9DD4AA1CA24E2439CCEBDF230BC65B43AB8D1C35407A8AAF0D7EC28CC6329FE91B975AB27A1A6DC53E7800A57686E47C687FA4FA802A405AD26CC80EBF30D036630F8DA87233CF6E4AEF71BF8F727348A0F90E71FDFC2F36C95860C14D761C906A1BEA518628BCBF59E112F20F9235BA1C0D46036EE1C09FB4B817A19021A7E3E23085CD5263295DFD1A8D23BFBA48149BEB971C4BA849C50EF7E1208E9CE8DB36E1FA3C13D4C02F8E581A2D41E34BD017591219E948D2AB6612F8BE11EC784E1C0EDC2711B7B07171AA14F5589E4A36043496D416EAB3277CA0007BC691382E82AFDBC3FA707E86765ABA786CED9180DB4F8ACE57C70614391E13E87D527B08ADF06222EF06C3DF78529B557A8F53E085A41E681C7DA4366BC6EF73F38F435E88A4883EAD60E6D354092FC1C6D0053D6F83C63151E2786E04722F741425984D8E4E029D1C38A6E67A6FB46E7579E6D1296DDE0523AE9F0FA398EF48751B9BC21ED629B9B223C90A3560F870C05C11D7DF66A22CA0A1AD387669AB5A9E61BBDD5DBEFC16BE4D698B598A76F9EED0A07C9A130528F3033E22C0825E2AB42DE3C3242EF912F2A23A1F09DECDEAB19AA061538A44B80899CE039CCB7ED573D9C1BCDB1BE62BA4FA8715F257597EE48589375C78DEEF6FE94BB6F87DB83A0F17C68080B957C7994B8B4CF7BED199521189006165DD82DC06AF9683536E266EAED067D8FD70E8532AF822F0C1A153433E2AC2E3601BC73B98F9B87653E1BFAE2F562F12199C52E126283E9627496568675BF3A9B0D42ED07606F3B7CA9221511177D2B797408E1D0660988E50DAD746C28BC9B6F030116E0C1666D5862D52C42B2BD2412FEE587643D9E758B80E0517693CFE46C166BC8F0F63B1FE61DF17D8993EDADD5D0B7646600214BECCCA2726424E86F75C37A00BB854E1767A2319299EB26F317A3A0322266F2C491F8A714232433ECC7789B9827519D31409E9CF82578891FADDEAD606572E82D0F3662BD78A00C75D74920194DF979ED222B37B03705B57222E923183C4B2E9BFEF581767DB54AA188FD66BB1F56D6DADF9466580F7C5028AF5E7C35C3736704D4BB5F29C03BEF5AD663CF6AC99DFF867EF232470EC2EFBEE6C6EDEF3D78CEA13F461D1C8D16B758C01EAD31550E8CA71DE\nss = 016E1A77AE909C6EF7A8B38456A01D1B9AEAD47AA379F4051D74756223FC2EE8\n\ncount = 26\nkeypair_coins = 013BAB0212D04ECD54B478DAF72748003A25E2CB060BA6CC50BF95C292B8206BF7642088944D664CA7996BA944EFF7E4ABD0B900D3D1728D99A9F722F928FEDD\npk = 12422CEA108045D2888E2C29CE0BCD454B95C09730D6C4698E779987523DE0E972332544C34350D29C7BC030BB6273B9F1C98C3A63170ABB2641C54DAD64790E83387C51AAC922814F834C4745409273AB00051B2A819EEFC9A048F222626409FA7B3F8D27A0DD754F9372AA37EB92F6454FDBE3116D406B571203DC05201C31A52BA8B2B95B191A7B7B55E743C4CCB80A710863AB741B727F176224012C539AF2BD062BA6BE7A42EAC08C5B6B420BECBB41B55454EC1F41347CCD984F11767BFC82665286A56DD31598834B37CA6EE93658999798EAD094298160B7E6C76978370DB3180273401532315168A161E087D4C6086846A3B60B80103C1AD814843BCA7AB329C7914982ED32BF16507B3024A16F231281A732D3D155FA60260064919C484C1741874BA96CFD91AEBE5C314E407A66D7CC4C846176D759618654AC2A52FE69C69A375ECF625E2889ABEBF395FA20561BA6300A72A2091356FCF197C866AB5468A3AF7BB3DE755836D9784F7C0949445D83B3358721C7DB3C09B5120F7F757BFE3366AE4365B677255EA680F27C310F768E56F1AAB8792259340BD6B984406148A254BB605A291C0946C83B1E9C5BB3F879A787B9106F98809E94BDC23C062D592318F9854DF04BCC343D64387BAF398599BB352F82B1F0A5B530E824CFD69D7A4A15CB5624F70CBEFE1C61302B8FCA337D70D1900DC817837619FA893208DA873C350F02892097708CC637093EB25BFB4B3C793331F0FC73C5446CB11276824CBE419378A224A683FA0D17C671FB8C4BDAF18C20C53A21A4BB8FBA9AB7A1B7ECCC81946BB5FCB15E1D08ADA7761A55D503DBA912B73765FF93A6AB642B5FB72ED4F16657AC448A1957413CAE547CCD76D9936C860C70C5635C28754421AF13448959D67CDEA3997EE923AA326129B5397C15AB90F95832F263E080A42460CF9F081152AA59CF17263D008ACBF146F34A7808257689A3148E58A0A0117FBB47BCA97810A42A7E0F734C0A17745AFC6ADE752080B39F3267399C20B1FDFA195437B83EF5125405ABA8D2CA42040371C541A5FC339772948A21B7EFC30C909C7938779BD012642441083150118CE431BAA72E989425210945A7C47479F4873E3C3CA6698ECB2A050415066D0BBE5E240222A2884B3CC17BACC14164BE0D21330456A279547579F8A4E9443D913A154210A3FD1A1A263186445A8E1B884BBE8B54D0196AFFDC47544C8D10A69378FA139BC8A422C44C5568555F9080F170BC6E97284F448E6C23885D603A732C469B376A762B5068E29E80B74F994588D9822F3E81BA6FFC273A9C905D0910062BBE94AA1E0C8C3424303845779F8C9B515DFA0864578A66DA8AD7B56DA2810C11E1A2888B88BB55B8C096A145B62AD9D2C98E003658C9729D7B82550527411A9C0B981F3479251C1774014749D211687DDA83626C6BFCD5B08F8075954BC10F48623838A736E38C1143B9472B4DF5D30D37F0BD7C727A2F16A3CBE0015DAB5A12E27A63F7AEDB841D6D9BB1A79A5C3E903C9E374DA62A298C549B9842B77C33AAB6B4939AEB55704CB610D084950C41B746AFD7157613618F6F1574BA51B36F7828AF0AA4F79C0840EA3D679013DF619046E935E0BD96EC59643250A0B38F9779B0142A9E546EB525E72AD204D1EB31A6\nsk = 3A756D6DD157ABA65D60721C41EB4EDBEC38834C22E9AC8", + "8F03119B472BDA0961D1F5C3268EC6492F92D5D066DCBA69CE9C20311E1C15FA81FA5014C6C956F88055FC2D35E6B295D05D6167E4375BFF23257BA72C0F97F452B609F22B57F7C27F71A4F259938B5AA18097399A0D32C3602203BB6769015495B4BB7317C9E99C966215C58D3455EFCD36003826C2C7B1BB437A66A968DCBA35DAD7098FCE9133110A109C2B91764719CA25866C98550082E88F29E78B38B40A53C4D626FE63390A290B54389624C597909D79FD6A658E2166704C386EB1C8E951B4C7619B7B79349C3F59505809B1095405949CC55C109A1108649552D5F83A970083BFFEB6550893B5C5106417B0CF1E44B6B05A9F9093E386C9D43F14D4CFBABD3B17EFB49AA2C571AE99197D2E4B7D58775962570D528B8EBB8032E8065BDCAA391837D483A27239A4A8C0B8F13013F4AAA6BAC0CA86E532523D9620BF9C2C3E2AED2365E90A1699A4CBF454C4D2E2C4273E93456142F737C8B3697B9821039142C3E25B346D020C829850D6CE2649087AB762C25BAA2639C8C7A852BC76D456EE69747FE561E267844A7E51AE05C5820F0C2B880B05CC935A3BBADE2C6A4881CAC21938A304C4CD2C1CC1BFABD932B777CC459BAE4BE75389862464367C6318A0521DD62C5F070A139A95522D10D2E4134C06522CF52834562A208B22A95431014934F51EC49F5EC087D1435DB935BB5223C3EC87BB7F7427A458232474AD9CC222B422149977C7F366F48B0B14AB260BD0A8C04623F9B12091AE049725064D0BB4A249075816AA249718F1A7768C3469AAC7182D2F01D6373038D7C4CA24802693A354C19C66DBA1C05EB180AD04C1FB095B42947D16B66139384C71206BD0BA9AD9BBB5DD7593D08616C214FD9013E792A5B4930122D1C571F1315D235562C167D7546C8EF7536A929982F6A55CE7209B0D5735F69AC6C52A824E508D2481A5BE01075C54D8743BCD76767B69B5E350989E629C97AC1982A75806126245FA692DEF22B15A29499C82EF7F993EB3472F850527D900DA2F513A9366A4FA978038B9E46752DBB8084FB12CBC591008D692544078343E9AD67909DBD77C18BF18F02607210F4A0F5DC749F8B0BF371309027968968678B0135AF65138C5544ABD57ED8A646409224D32052BB14BAB4D51DAC981CCD838B4A513A36A351B81A0785CA281D7106872583B8BABBD62A5787BAB8EC9019C7009130EC6BE4E25D9992AA1DD13DA9C1A7F1CA27FD78968741436003789B8C781C599C98D2465C7513CFE85154D7A655216E5B3B800DEAA6B9DC7C0D998B9CE2B99DA6AFC27A5EF6C152EB16184D91CD038CBA69835AB3500AC2E87368F37888BA90F219CE9DA24109F0B3E1894DB5F640A17B0E705195A350A61EC62B2C7A216231C530F557D4C5605346A6500B7C1484012FC87DD4526823C447B71A726D65753716B30C212565DAC474CA3ACEE664218285A5C4A726F681E98619E2A289D08895BEA26BD6A3BFF3A5C5C1EA894CB6440D075004F879B41A14EBB82B74AB0131D0B3348742DB7244E750AE2B7BB57F8A95379502827880F8A50ECB1394DB2553C07627C113A300078DB1BAC7B5007812422CEA108045D2888E2C29CE0BCD454B95C09730D6C4698E779987523DE0E972332544C34350D29C7BC030BB6273B9F1C98C3A63170ABB2641C54DAD64790E83387C51AAC922814F834C4745409273AB00051B2A819EEFC9A048F222626409FA7B3F8D27A0DD754F9372AA37EB92F6454FDBE3116D406B571203DC05201C31A52BA8B2B95B191A7B7B55E743C4CCB80A710863AB741B727F176224012C539AF2BD062BA6BE7A42EAC08C5B6B420BECBB41B55454EC1F41347CCD984F11767BFC82665286A56DD31598834B37CA6EE93658999798EAD094298160B7E6C76978370DB3180273401532315168A161E087D4C6086846A3B60B80103C1AD814843BCA7AB329C7914982ED32BF16507B3024A16F231281A732D3D155FA60260064919C484C1741874BA96CFD91AEBE5C314E407A66D7CC4C846176D759618654AC2A52FE69C69A375ECF625E2889ABEBF395FA20561BA6300A72A2091356FCF197C866AB5468A3AF7BB3DE755836D9784F7C0949445D83B3358721C7DB3C09B5120F7F757BFE3366AE4365B677255EA680F27C310F768E56F1AAB8792259340BD6B984406148A254BB605A291C0946C83B1E9C5BB3F879A787B9106F98809E94BDC23C062D592318F9854DF04BCC343D64387BAF398599BB352F82B1F0A5B530E824CFD69D7A4A15CB5624F70CBEFE1C61302B8FCA337D70D1900DC817837619FA893208DA873C350F02892097708CC637093EB25BFB4B3C793331F0FC73C5446CB11276824CBE419378A224A683FA0D17C671FB8C4BDAF18C20C53A21A4BB8FBA9AB7A1B7ECCC81946BB5FCB15E1D08ADA7761A55D503DBA912B73765FF93A6AB642B5FB72ED4F16657AC448A1957413CAE547CCD76D9936C860C70C5635C28754421AF13448959D67CDEA3997EE923AA326129B5397C15AB90F95832F263E080A42460CF9F081152AA59CF17263D008ACBF146F34A7808257689A3148E58A0A0117FBB47BCA97810A42A7E0F734C0A17745AFC6ADE752080B39F3267399C20B1FDFA195437B83EF5125405ABA8D2CA42040371C541A5FC339772948A21B7EFC30C909C7938779BD012642441083150118CE431BAA72E989425210945A7C47479F4873E3C3CA6698ECB2A050415066D0BBE5E240222A2884B3CC17BACC14164BE0D21330456A279547579F8A4E9443D913A154210A3FD1A1A263186445A8E1B884BBE8B54D0196AFFDC47544C8D10A69378FA139BC8A422C44C5568555F9080F170BC6E97284F448E6C23885D603A732C469B376A762B5068E29E80B74F994588D9822F3E81BA6FFC273A9C905D0910062BBE94AA1E0C8C3424303845779F8C9B515DFA0864578A66DA8AD7B56DA2810C11E1A2888B88BB55B8C096A145B62AD9D2C98E003658C9729D7B82550527411A9C0B981F3479251C1774014749D211687DDA83626C6BFCD5B08F8075954BC10F48623838A736E38C1143B9472B4DF5D30D37F0BD7C727A2F16A3CBE0015DAB5A12E27A63F7AEDB841D6D9BB1A79A5C3E903C9E374DA62A298C549B9842B77C33AAB6B4939AEB55704CB610D084950C41B746AFD7157613618F6F1574BA51B36F7828AF0AA4F79C0840EA3D679013DF619046E935E0BD96EC59643250A0B38F9779B0142A9E546EB525E72AD204D1EB31A6633BEE89571E8FC16151491EA71234AB83289426559F90C67903A36E4AFAA6F4F7642088944D664CA7996BA944EFF7E4ABD0B900D3D1728D99A9F722F928FEDD\nencap_coins = E821E6E3209B923765F0DED2D65DEC798C9CEEE04665ACE3061FE506B49AC7D1\nct = 48380C6C22B1D98AD195A8780E7517F92C25BBD91D8BA68C63CB4D553C23A7FCAAF96812B4541DD435D14EB57B35182882645D2762076CF54AB70BAAA243EFD4F39E17265BE171E9FB603BDBAD009527B53BCF612340155D9D59F998F0A07A7298BE1078613537664D56536C92D265A06FFEEC84B95D1B629FE6C0A67AF30AAF5B2E91F0D8A33C1E5BDF0C9D60401299B0DDB4C01272884A3CFE4251A7F19171E8831F65D22EC3739E5513716E38B62CA8BA8ABA027D76A81A6B00DAD5211A9EDDB30CC288F31A8D76C3F0717568AA03405C1C71AEE17A442D899DD9F283005721D5796045378AA905E1C2CAE5AD8786AA3556723B98FBBD90B5D28B3AACFBF626A9C6ECE6327815AE052CBD31E32CFF99D1B0E15F9B16766F9949D9F45F3C67EA668848BA83ADD8DDD316E5CB5C76B106B9E76FC2D9D97A8B2211DC2D65138711E4E919EF0EBF62667F2F430DCFCA3375D4A27F50A6367F5642E437DDAEFBFED3A148DDE3DE6AA8999FB73F53CD9F73F37E171904D57F355D346CF36C9DB4A9A9744C8541ED91FD5ADEE47347F69ECCFD08C7DDEC2D6A1555FF6642FAC2108C112D2B3D762FA246B1453C33A845F735B73EF016C3DC2EF88DBE818ECFCF73BF915E03CD147CE30403688A70E5BEC05E0A37FE174D37AC2D443093CA0F48B9D7BD90C972B05A0B9999E81F3CAB9E56CA91CAF7173B31462428608CDDCED2C89E540DDCDBBB9F573FDB0469EE1ED1EB2A52E737F020EA12C3FFAB73D53DD904D2C920D9D733EE7A6876E74331D22F14C596CBA19E69CC4BE72A9E9BB26ECFEDCAB38CF63EAD771E231770F9FDDC111F06FD938A50FFBBB6E1CF2B5D12EEFB88B7F7D44F67E3702C8546EC98977A28EAD4DA1DB52681651558FBED59E0A2C22DE2BCCEEEFAEDAADCE13D03C761409EB517C77B489BAF36FDD13A4A08F57B25EF6FD2618C6484F798A203E421FC6447C3DD2487DCB9913D65712C6FB34760BD1F07F4F9B605B917307E6FC8C8CBC87E88440008302DBF1708DF3986AC284740E3444ACB74F88913F50F5515272560CCC8D59E6C2ECA1314B4551F81ED073CCC0F242A637481F787F215F4115C2A42BC0F3D1647ED181ED9AB1294C2B9DFD4D1F64C57CD5C2FDBB548CBC26374AFE8C24660C50F5475C4625AD23D006B309CDBB78A7F769316184AE9F2664F6D7969D9D28BA50370BF0D01A565355E6B4D2794B1AD08524A2913C60A6A470244A1CDE2F0E357996DF9BAB6F0D6DB8621C7A7B72F51E8A23273AEF9417A3F5A9A3B1EF33B0369259F6CE30FBABC6ADD38BB1B379203F622998AB3D97B1870F4B06A69666A633E4D87119090AAD22CE1793F7DEA6DF784A5A4020C5D7CA676F0AFB7129E7F18756A14AADBA2CE57C875257FFDCCD01520481D9992E1CBE802DDFAD74A9E9F00C9C65833411E046D7A5FDD25784E964F5E7377221F06FC7D62D0F6B960539C069C76B5B80F94D6017442EC1FAA3A9551B9D5999DFEDCFA9A6FF439C2A08DBB0E3727219AD93DF2296779CBA425AC0212\nss = E688170871DBFB0F0C93BD5389DCCA06ACCF082595CC6A1A12197715EC262277\n\ncount = 27\nkeypair_coins = CCB073C4B90BE0AD746E26FB093B60C70110BD1DCBCDDB566A8CFFB7B3CAF80E55F35361778BC0A53EA94003FCC0252D8333C58152482AF1E9C9D2BDF12F377F\npk = ACE2AF54375D684A6CB1FB38BD9C803A158483F91175263779E75B6D42734DC72FA02BC3B09630A0F79E2F95CB067C7DABF42F409A9635D55106E91E32341AAA4808DF6528C3BA98886184E0195E3CA09D9CC525980CB5A2E9027C6A88E9042BF77653B9DC02AD3CBB04F594BAE08DA4683DFC960708D85E39A28AD6E6A7DC81A2F0F8167633901298628B695CC1868756A97D80B1AFEBB71EBA5969A1086DE4D611F737AF56A83C7378C6E5E04E79A8967514CC668BC8FB7C7A1A671E29D55068E34D883A8320438AE7A44F01DB1D4DD07304081D684796A9257154381EC44562A8D005F3DC4C94D5CE9E36705132ACC8876142194DA54934095C2D5725A10E376432B17BF7D1B085D342CB3C633A085E950248CCC9C7FF350EFC341D07D0CA06E6BEC943353C479506691F2347A29CCB34AD09C929692ED98640E6B8560529CB17030EBFA4C769FC7707C75D86C234EDD78E7B3010FE86BF71748CC1C5B00023944774200B2163B403B8207093DFC959B6AA09FE6B98F6E83F972A50ABF113E9DA2FB9FA10D0D05789CCAF05C448854249BA8973A19C537DD69D3F39744DA89DEBB58705EC90EA56CDF428087D8333B16B1A9E59794D49A40B513B50867979230243B27F3D784932E1CAADF8B58FE11BBEA62DA4875D004", + "A73FBCC90B566AB998A45099194D449CC60B0562570648AD588B213CB99A01283706878287930A71B68B43F87023D2F49829ABCBDE6A37A941182B78B8CC1B93982C7A24457A9E1683D2BCC97B4259518E0102760100E1C26CDD85022A04A91168486BA3413613DDD6C42CCB563379A08096B287B41A011FC9594D132E33957F2A5BC1DB4C57B4C8D9D3135476095DED35B2FDC09D8F996E332BAF7939EFB1032E529606677BB1144374C41C08807C9C0868B0C32772F18B755D7BC5C5B12F8EB9CA9DAB589185553B74408301062C90B2D68504F0718D42A1989F050F9097889AACDC175CD7E6768D626A8C9AA1B0CD6CBE91B10AF1A3E507575B47B6AC8C2B7C801A81985A81AD4AC04B32D0DD880D43B3D36857738369B7898B231B24CE6E9944526B9EF370354E21E38F6AAEFACBDA63497A85327A2112A5DB95179C5285D805698209F2A1B67A7730405B02B3507B4E4B65298734F5EB1B66BCB68F9369ABC01C7E4545568D432A685A6E038122253987EDC55EFAA3D926413DBDC43F9908DF1925031F45D28712734FBCEC3724653B019F7D5698DA7B0C3C90EECE1A1BE3567A253A143723B9550C8F7333DDAE88208667353A6184853A85A99C0C463189EB5763FE59D678349F536C56D014CD92B56ED2AA6B0518F1221A49FD6588650057FF00AA29B93F182B3437386F1F846D2A3C60CD900559425B2B7A5FF88CFABE24BEDCC825552577B5C12E4856DDCD91B0713526098B5FA555F105A0F1219110347AF9016254951C3CB5C7EBE602564242276399B0048AD8D370B544B1CB9789694C7753EF2CD4AB51513CB33F38BBB10C83C9A1A5FD1489D97476D9BB314849581D688C3DBA01662B539C50B0DB8E889A4654E6AF708A64910FC503CFA0ABC21B8ABC233AB978965059C41D1123A4BB90306AA09263B25BE885F4DB186D0E720E97524464C7F1B57E338A864D6C447ED4E29D88C30BAC7D2D0CDBAC43E9F4176F0078C715ACC\nsk = 0BAA531A985251B6B10153C8FCE6938A280E93F9ACE7A56DC7F44FA8BB2F88C09290888DA8134A0FC43CCBB75B50B6A724D6812183ACF876036DC252FC893419280314C7611750875821B2F3AC4F1C20B06365709BC07AD4161C94C41930568996F8CCA58C4A0536CD5668488715593E66621F96C87A2178A36438DD4C390CA0532D30B88DB712CD3C50D30BAA91C98CF0BACF32C60C81468307CA35B47ABFE59174E53467CF7B1D376758F1A5926FE225F0078FF288AE24D23241709E471624285C4FBD35A333088DD643CF6CB0AB6B27C8B679792ECB8BA4C28CD8B09677F0A7EBB692ECA6777922C4ED6C20402533CBB9A3F1E0C10250209EF128A626B763B30B5E49C4C4691E3A13C2C2601B6666ABA1D099987990BD1BB00AB5806390CE8088CAE30A5B20567295ACA7F0191CBDB4795E78BF150C7954F9A49880C218C23E59014620E18F18C536DA0B7807B0C9E11B1E341C2E7E5BA799653FC669C1032AA014CB79769361B01091B5E000CBE100933C6D05714481F491B2355E72638831D0C4F4DAA18C6B4AE6E825E688CB812490FA13B43D306E5BC857FBC18A61923F6B685E5FBB5BE9C1871A9822FF07CAEFF40318482144143CECC5B0C579C84FC949EF359F0B24B20FC0A9F3300A3217A8058469C78B7998744024E275CD1C70A96A75FD86019CA031FEC081DBDB796A56186D9A1DF8C098940527D34A1DF2DB50B5136B6737829F0CB1DA3B131AB238207A011F02BCD346A0A7138EBE3CA2D78646D7F98D5A886A24B83F8FE84AE81627011A2633F1C159C3870F7C69126B3C31F50D356888F9077FC207168CB075E0940FB7A0BECC556DE78089ED512A39A6ADCDA9C3C5126D874B50C163BA7B091656E52F9813CB318C87ABAB12A3F8996A4CB446D0793055CA177A1BF455CB956443E56C160F4788CDC6B008C086403BC910332D3E3274F9825E9964484D7A52C91C275E153A496801C0E6C8084B25B53C8EBA77A9412291DF78BD39895DFED82FD3C92947A1BEAB598D33DA8344C88A9E073E28549FC939CF5C6978B6F74CCB23675616899FB69C5ECA0C6B68090A338EAB57A222FBB5A482837C097BD40141659A2A71D81E3BD38D60D0A903592B768B0CE60A7044350A75FB02F19482138603A9D8CB89BA6A32D37A15549548AACE4636047D66CA4DE6CF7643C2A5939478A39873820578150172F965D4DC6CC6D7ADFC360568A53C97D268900B7B20122E50CC5E460304927333BEB7BF73446064D76C3AF1274B503203804774B00F02534772CCB83CAA8475651460B156A7238DA2A9847D445F55687A84BAA06DD69D4A637EFCC1C09F81BB97B541FD77A96883869731AC776913ED6C02EF03183B27B4655639509B1E8BBA74837375628152814448F270B6DD865C888180AA071A2AB42740E93F05B32A9C85A069420BE2ECC5335738F9D46C90C5AF1625779F3A329DD693706618AFB300B5C7099C220126C8398FBB8F32A2A35888BCAA187950365F022585C2E08243F53122B6C5EE9A95B84151AFD10B2110135C2A940BB8370565BCD8739609C44F4AAA7C5C266C6EF7CAB87B351236702E327B3E53555E24ABB670CA6E505DF0E0AECF7513F7E36374988DACE2AF54375D684A6CB1FB38BD9C803A158483F91175263779E75B6D42734DC72FA02BC3B09630A0F79E2F95CB067C7DABF42F409A9635D55106E91E32341AAA4808DF6528C3BA98886184E0195E3CA09D9CC525980CB5A2E9027C6A88E9042BF77653B9DC02AD3CBB04F594BAE08DA4683DFC960708D85E39A28AD6E6A7DC81A2F0F8167633901298628B695CC1868756A97D80B1AFEBB71EBA5969A1086DE4D611F737AF56A83C7378C6E5E04E79A8967514CC668BC8FB7C7A1A671E29D55068E34D883A8320438AE7A44F01DB1D4DD07304081D684796A9257154381EC44562A8D005F3DC4C94D5CE9E36705132ACC8876142194DA54934095C2D5725A10E376432B17BF7D1B085D342CB3C633A085E950248CCC9C7FF350EFC341D07D0CA06E6BEC943353C479506691F2347A29CCB34AD09C929692ED98640E6B8560529CB17030EBFA4C769FC7707C75D86C234EDD78E7B3010FE86BF71748CC1C5B00023944774200B2163B403B8207093DFC959B6AA09FE6B98F6E83F972A50ABF113E9DA2FB9FA10D0D05789CCAF05C448854249BA8973A19C537DD69D3F39744DA89DEBB58705EC90EA56CDF428087D8333B16B1A9E59794D49A40B513B50867979230243B27F3D784932E1CAADF8B58FE11BBEA62DA4875D004A73FBCC90B566AB998A45099194D449CC60B0562570648AD588B213CB99A01283706878287930A71B68B43F87023D2F49829ABCBDE6A37A941182B78B8CC1B93982C7A24457A9E1683D2BCC97B4259518E0102760100E1C26CDD85022A04A91168486BA3413613DDD6C42CCB563379A08096B287B41A011FC9594D132E33957F2A5BC1DB4C57B4C8D9D3135476095DED35B2FDC09D8F996E332BAF7939EFB1032E529606677BB1144374C41C08807C9C0868B0C32772F18B755D7BC5C5B12F8EB9CA9DAB589185553B74408301062C90B2D68504F0718D42A1989F050F9097889AACDC175CD7E6768D626A8C9AA1B0CD6CBE91B10AF1A3E507575B47B6AC8C2B7C801A81985A81AD4AC04B32D0DD880D43B3D36857738369B7898B231B24CE6E9944526B9EF370354E21E38F6AAEFACBDA63497A85327A2112A5DB95179C5285D805698209F2A1B67A7730405B02B3507B4E4B65298734F5EB1B66BCB68F9369ABC01C7E4545568D432A685A6E038122253987EDC55EFAA3D926413DBDC43F9908DF1925031F45D28712734FBCEC3724653B019F7D5698DA7B0C3C90EECE1A1BE3567A253A143723B9550C8F7333DDAE88208667353A6184853A85A99C0C463189EB5763FE59D678349F536C56D014CD92B56ED2AA6B0518F1221A49FD6588650057FF00AA29B93F182B3437386F1F846D2A3C60CD900559425B2B7A5FF88CFABE24BEDCC825552577B5C12E4856DDCD91B0713526098B5FA555F105A0F1219110347AF9016254951C3CB5C7EBE602564242276399B0048AD8D370B544B1CB9789694C7753EF2CD4AB51513CB33F38BBB10C83C9A1A5FD1489D97476D9BB314849581D688C3DBA01662B539C50B0DB8E889A4654E6AF708A64910FC503CFA0ABC21B8ABC233AB978965059C41D1123A4BB90306AA09263B25BE885F4DB186D0E720E97524464C7F1B57E338A864D6C447ED4E29D88C30BAC7D2D0CDBAC43E9F4176F0078C715ACC3217D034B472A846CD317681C0F36FEEA187BD40E546DC4AD69C2E67FD9D830355F35361778BC0A53EA94003FCC0252D8333C58152482AF1E9C9D2BDF12F377F\nencap_coins = 1332FBC0A80D85A33C44F3A9F060AD7AC8727576105931BB0401F47B31990836\nct = 2065B316588B8ABF94F546B82155BCCC4CED1FE0F076EC970ACBA4419FF9C5C765B764C743A862B11A06355BCDB8FD6882647129C466FB3F9E259535EE659989EF8100C0D2CD170FEE3AC39E2F67E88053DBB738FBB2C3DF2891624F7B97E9A0CEDFC5BEA65C5C68E1A4913BEED526137F0684B5D15785DFE52112189D37DCC538D40933F6C3629E4394AEBA0828C2FE919B32586FC9676B43C569DFFC8AEEA4E65EDA31FCAE780F19F29AB11103EE33887995D53DAB102A4AF4A49E257B3D4B356712684E38044CA90CA0849FD584258BD88C43E43B100F39902C1104773BBBEE3ED8E50C8ED61AE6C9EBE1CEC5B0F7E40932AA756CB53BD0C18D9E0EEE0DB9EEC2DA115AE4B8A3746DADD0CE7963616570D7775F85A80A0367F292E17BA989455772FF84B533DB2820247F2D85F1FEF57830BF9913A33E47335F98357674764BD0BB87EAC748E5B131A1118C67EF2250357199F1A408A3713EA71D92E96900CDCFD08C38C3C2D0BA4B81FB1B412FCC1A59A1C0361FBDBC00B10966D430EC27C5DA9C7D3BE36422F76E4B82694F0E5AD07902B38B0ABB39E632F5FBCAEB3C8FC33703BA6D08738CE4DA863772F58007C398F1EB360DB5B44A4B7B6FEB5B4B86A1953ECDFDC0FA640EC2FB5F14B00673F056D77DF779A282B54BA63A9764C11A67AB70649FCAF796A9B30DD2D4BAD78BF41515F2C731CE5759BAE5C2003B78C9F9375113930C8EB34B8667E8DE41473BBA4A6EA6B51DA3B970A630B829C8FE62200BC8BA68C1449F3640827798124ECE9CCC6AEEBB94EADE93DC4B882D8977A3C71833139D9EC116F54159B9B12F61D5299998F1BA2CFF2DBBD07EA5211723F59DF7F395EE82E6173DEBBDB209309EAACCDA9DD993AB2E12C9FAC8C27924CE1A596876E724B3E4D25770C05831FBB21F77B9B454322C3099CC75E44D50A667CB65C33F0786AA342669F4C79FC0D90D9F8D0C5BCB7E9F47E6FC3799F346F65B816A73CFAA36A2D639C1FED4A85B5319B37E680DE0255793391AFE8DBDB06A4E0E14C36798E7D75CFF2451C2B9FA229EA8EFC3BF6D65290577DA85B744361090C6554AD78471E510A83507DC5D4930A12A67CC902F4ADBFA5A0496BD866BFFF581C4AECB9DED607F5B7F226A790ABD11CEEFB2529AD4E110C1EBA34D0CB6919383250AA7F0FCDDE515135C233BFD67E33A89B9F5F029000C95573A06DB9743F05279D647A7D3B33E13A404E103669135BBFD294F7B0007AC394CACE87CCBA7A2462E5A51498C398DBF83606EC908AFFA10FA3347B52139B3EB616AB0EBCD2EFC966C5EAAC4341B00F639E17A", + "5BC50C1888549B15BB45553ADC89CCA1116142C3F8046F6605BB7E566A386751CBDA3D6F768C0737A145115027A3DBFAE4B893515C5F18517CA4474A1DEDA297DC94924662D96EDE4E4A23E75759DCB3D7013F50A28AA649650FCB68908F00C6FF1366761CDEFB6F7C1967C3901F310C00C85D74A70BC193DBD74263A7504C35CE4CBA327C006E443644CB0EF1B36AC66E675C8BDB\nss = F150B7D47C6AEB0920564B34D145C59F5D5A60A709E23AFB52FC54C41A009B86\n\ncount = 28\nkeypair_coins = 2E889F44E28901E9AC7CA6B2FFFCB124C8979401B17064D7E1D51A7E3C3ADBFAB2638686DB9A0292ADC26E549C7152FF36D9A7293BF1380BF93F1498546EB93B\npk = A9C823EFC5C946DAB44B5B2068D61F00E7B0D87CA67706343927BFE4C12D20D69C4A5BA892F97EEEAB7B5A45742CC4AC4D37219AD72AC312051D31B8385CA2293415A13BB8983B8457B8AF9DCCA9E6322094CA68399AB77DBB9F6AA7CED5F224641C3FA07507DA9A08E0D180D52585DFB3B2FC95CDC733A573A888D403CBBB71C120BAAE2A195278370BF33299B9B2684ACCC5288A3CBA1277FD3999839A6ED29BB91D71A528BB2E4F953778BA23341CBA4B9B3C17F9A8366212AF3B722397419E24874B163470B3B2B7F24AE62258983B6161C6773B5AC90969C03D01CF4669B9D1F46E05705D4F676D464264D7549E1E2C3290C9B2BF5A71132057531714BEDBC7A91BC0AD56254D298908D33D588951333B3CB7924ABF14B0D70652C45AA62CC3062D851E45C866C6200DF4E74A9E559B9E6AB738F2B0DA9693CCEC3D968A866F0220CA95B7C6E8B04EC41D39C17EAFAB77444AAD4CA3A9D6B5B5D4611A6C074FDFB01F7DF68AD2440EFC5588F3B4A5C4106EFA3B9B6BB35C327465C7B656D1C1C6409993FD91CC20172E53190DAD63CE02691AC326904CBB6424C906BD091312C1BFE6969BA6AABEF954B5C8D439DA5064A248C92988961FD2254479946DEC829C76CBA61690E3C541648228B59805D7FB2ADB6AABA70718985279452A2FB1414E4704AC3DC84D3EB767101C8F4FEB24BC8148316609BF963AFA826A9B87638424052067CE8FB393D9AC579AB1080D1C549FD5103312A1FF9988DFE7805ED906FE9228E25942D49484A4510E0FF9A4A54A22CBA6BE945126EBE461C5940A74E1517C60603B2651E8371973DA7051EB7197713F5583BA51B92A9EB3179B45A8A8A5099B40C29F59146F25A563291364F236038C79B784BF09524FC6810F91B777BAE252E5B723E8059C06157653E335549784A15553FF9A7A29407D87725AA6B7A2A2669CC776BB810672967CB5B8B9A9BA751A9E69A8DDF796B1F324348712FF0C23F49A1DEBF210C027995B8A7CC5B288C4C74218E5086112237128CC57F4BFEDDC21ED23BAD00C58D835B5A3F0C8FDF1001E0AB26C2CAD47D5CAF2252CAFD3520E36AE21119E56FB456F277132059CA18623BFD994878C794545BA4A04436D804231F430B12808FB01647FA15D94B975BB6798AB7C3F6355B9BD50BC1CA00EE76342C8609BE0BC893DEB398B65A453BA08BEF83B805B61945229D98422F59C27E86022DA5620D737867828540C20B097076BC6C03E5435AEE1B9AF19958A7DFB921DA414280429DA389EEFE23FC9578B714B4F2E5B19B792903FF45ACA045BEC0B3D83C204747A2E24971B440C10119941D9316F45A87C4AB2AC0F7C4BDE9BC8EF73A7F42513BE3420C56720DDB984CB173587462AED9996D2A848D11344EAC02351E6C5A18CC7AE813BFDC50D5B143F4D07AC72A213A0577F9802043A585D95031D017B319358A24B06B7C2EA19F22B6634146CC0A123A8051C51E6AD6A956B1A935FFE00BC65C44A60534D1375570BC036EDFBCE66255F523BB377B2256C29B870DA2C870868299828F6FBBD8E0A109386B8D743A6E7A38384D5933E64565A037B9F520ECF8466F2073EEAF03D1B606F947CA2D2CA49E4B41DE9011FFBD23920C0D2D0CB20E3A9C63BFF3E047504A8965639E8FD0DB690FFA1E791FD\nsk = E0C2121F06048FBC565FDAA305202D439AB3A81B31FA257AA6F4273547C1465610AE51C2C1C8603AA36D1575754A86C9194B1CC6A9B8C9F77CE6484C5198A193EA4369293798943F7918142F849C8D7479EB0588E6E6B4ABC4CE81A406642414EB4137C2DA905CE4AD2B750E7D966D34A3B1BFA8CA5C8070456B1F6D5B71E582C9E1E2BF9DC37AB60A09E797A43F66B27B04C13C034FA6F594264C9D7DA884C762B159D775F7750A1862216E8BC992C9B2E0D18513F409DF8B0811EA89D2A69B66D34E59BC93F5C7BDE25140A976A3195541EE22A7EDFB7F9D647616B31399B6C924022F036225AF7C34E6D221213AB5F7A20B908325835266DA1B456F5649B895BB032142FC5C700CFAC4C2A44CF1F96D57B8BA1EF2C9332A612E8BB9043559B5567090873D3F9450F37670B473A96F812CE1D71892E43C9FE61FA594601A27A98EC817DD822C625B98E0FA8F2D5A311A87A6C23B4DFDF44D7511373E64A4A18A833D654A946B0DA9694329023086013A919971CC4C8A45916901B45C25C28EB6051600644660796935E65A4700496BC32204201D5C8708FDECCBFE949D1339947C6BAABCC67EC901659D220FA4D1A3DA1A4ADC2B1B323BC4CABB6065D9032CCCA3DD3C8689C9A35810BCB30B99B3F55CF2AC8258C5B85C696A372C7AAB5B0DD62ABA06804466FA4C22B2CA0E09B7D47C4644898AACF6899C79B5321110F010CD40253E40C5920DB980A57C01B55C506A6662BE1253FF171412820272613940704F63E70340414322B69B60B50BBB4459C1D6A0F25065DA032455598EDF678505F54B51713209565FC4812AD5F8A05A926340FC3853719146D049017475A09A1FD2D47B35371D715C455DEBB3A40A8A0E83247B6B8FFC05B2E857B5D8B201E56C109DC155B720B2528301C49237F7A629234231FBA25C75D600BD360796A68991BC68CAFB5B0B7C748AB7039D8C4FD1B3B4DE76C193123E50109BA70956B9556F245CCD4330B888D43A84714E8CF17E5713B5AE5A9FC3A331718C227EF4BDCE131F31028D68529F06A218AC32317E9B7634C572513974DA2BC3DDC4C07F2C6B8D3AAF5734B5D9E691D790B0FA67CBCF36C0372C056C268E0C243132DB5DE7365310F5732151B80BC98A2BB76F9E8C616FB1C90A5B83CA5738BFA9CF1FB96242998A44D667A57B517A834834AC0F2AC00E91B32E4E7AAB452249D31575BC96C8652CA8E4C3C0D3277A60F5CA7BEB80B563391A3B8E1A1A97C85823928877954C28D052A2C116BDC325B687D26D1CCB3386CAC9BD4C10C3AC381E056F9060C89E25A910C78E677964D153B74554C8F38939F881543F820B6F11989589302EAC53111A45F7664616999D7A64AA26E4CD74539DD496A1F0FC530415B16FAA4AC86341C5400CB1BBCFFD2707BE12C31ACC9B5C94B806B71DAFAB1EAAA087EFC1419CD2978EC1B973336D27B69AF2FA85F6C33B73770C0F6B85D855938ED8758E6AA5724B8C0D457B29A9394A3528DE99CBD7A875BB5B299C8A6DFE416104A59AA9E958E3828D3C651B5A9A7E81D7738374692033C4C68254D5170204F83A9B8520016466FD9189EFBACAA23AB8F962AF7D66AEC2E27E468B9C326711673839541262A9C823EFC5C946DAB44B5B2068D61F00E7B0D87CA67706343927BFE4C12D20D69C4A5BA892F97EEEAB7B5A45742CC4AC4D37219AD72AC312051D31B8385CA2293415A13BB8983B8457B8AF9DCCA9E6322094CA68399AB77DBB9F6AA7CED5F224641C3FA07507DA9A08E0D180D52585DFB3B2FC95CDC733A573A888D403CBBB71C120BAAE2A195278370BF33299B9B2684ACCC5288A3CBA1277FD3999839A6ED29BB91D71A528BB2E4F953778BA23341CBA4B9B3C17F9A8366212AF3B722397419E24874B163470B3B2B7F24AE62258983B6161C6773B5AC90969C03D01CF4669B9D1F46E05705D4F676D464264D7549E1E2C3290C9B2BF5A71132057531714BEDBC7A91BC0AD56254D298908D33D588951333B3CB7924ABF14B0D70652C45AA62CC3062D851E45C866C6200DF4E74A9E559B9E6AB738F2B0DA9693CCEC3D968A866F0220CA95B7C6E8B04EC41D39C17EAFAB77444AAD4CA3A9D6B5B5D4611A6C074FDFB01F7DF68AD2440EFC5588F3B4A5C4106EFA3B9B6BB35C327465C7B656D1C1C6409993FD91CC20172E53190DAD63CE02691AC326904CBB6424C906BD091312C1BFE6969BA6AABEF954B5C8D439DA5064A248C92988961FD2254479946DEC829C76CBA61690E3C541648228B59805D7FB2ADB6AABA70718985279452A2FB1414E4704AC3DC84D3EB767101C8F4FEB24BC8148316609BF963AFA826A9B87638424052067CE8FB393D9AC579AB1080D1C549FD5103312A1FF9988DFE7805ED906FE9228E25942D49484A4510E0FF9A4A54A22CBA6BE945126EBE461C5940A74E1517C60603B2651E8371973DA7051EB7197713F5583BA51B92A9EB3179B45A8A8A5099B40C29F59146F25A563291364F236038C79B784BF09524FC6810F91B777BAE252E5B723E8059C06157653E335549784A15553FF9A7A29407D87725AA6B7A2A2669CC776BB810672967CB5B8B9A9BA751A9E69A8DDF796B1F324348712FF0C23F49A1DEBF210C027995B8A7CC5B288C4C74218E5086112237128CC57F4BFEDDC21ED23BAD00C58D835B5A3F0C8FDF1001E0AB26C2CAD47D5CAF2252CAFD3520E36AE21119E56FB456F277132059CA18623BFD994878C794545BA4A04436D804231F430B12808FB01647FA15D94B975BB6798AB7C3F6355B9BD50BC1CA00EE76342C8609BE0BC893DEB398B65A453BA08BEF83B805B61945229D98422F59C27E86022DA5620D737867828540C20B097076BC6C03E5435AEE1B9AF19958A7DFB921DA414280429DA389EEFE23FC9578B714B4F2E5B19B792903FF45ACA045BEC0B3D83C204747A2E24971B440C10119941D9316F45A87C4AB2AC0F7C4BDE9BC8EF73A7F42513BE3420C56720DDB984CB173587462AED9996D2A848D11344EAC02351E6C5A18CC7AE813BFDC50D5B143F4D07AC72A213A0577F9802043A585D95031D017B319358A24B06B7C2EA19F22B6634146CC0A123A8051C51E6AD6A956B1A935FFE00BC65C44A60534D1375570BC036EDFBCE66255F523BB377B2256C29B870DA2C870868299828F6FBBD8E0A109386B8D743A6E7A38384D5933E64565A037B9F520ECF8466F2073EEAF03D1B606F947CA2D2CA49E4B41DE9011FFBD23920C0D2D0CB20E3A9C63BFF3E047504A8965639E8FD0DB690FFA1E791FDD1756ECFAEB695001AC490F36C4638151BEE98D367FB7ADF0E06A470844068AFB2638686DB9A0292ADC26E549C7152FF36D9A7293BF1380BF93F1498546EB93B\nencap_coins = 13A6DE9E8AE97898FA9382E95D49F64EA8592ED38C3AAADF36D20C243FA0AA53\nct = CB78816EB950D8187F66EFCAD240D91BAFC1FDC1C5323BA60BF9D6902E34DF54C327B9D93ADA2C02DCD774C08961248B45451739205D0383C043B583E6FD8EA36932D4D86B13C24990747CD7C2254A27555B8CA0323224A966F954BE599648FFC0D0CB4AEA5CD2EB54D46ABD1B37B3324FE96C8712CD2DC16C6BDBE88C030D96CCD8AD1E71443C751DA109E91A677AC7BE74524556AEB42DE0D0A1E4B3B5B8AB43C66E66804B02864BFAB4780D53390F98932D0C46852EA1264DF5F96867C9B8C66FD5D200BE72D4CB", + "6BBECE3B8DBF0FD512A8203904E55A37098B9A93BA058F63380A48C519CAB2B7DAE8CDFE59C630A4F354880D1B772C7CDCAD22D50CD9E18E87319E6F3C980CB395F249604F6AD152205927E30DBB8F9C80E7EC710E1BD8E023CE0B50D9964E5698FC0C7BF59DF680D56EDB655728AD4670A1E2C48489E10C72850FCA61041695E488BF0B9F607357A703E519B4DAC9B21791E1AD77FE0374BCF59953C1289CBD646A9552FB81C903EA26C94E101EF9A37BC3C3A0A0E9C3FED3CCF2D87E23A4F2B77EF2C8FFFF0C2A72D62E8C57ABC05BD737592BDCAC96677C461FD656D24F1C1E68336273DC893E67D1C0591E64F9097D45E2607F5BCC35044B713BE421CD106A92AB1866E195B1A48D7AC6E0664B4FADF90E3771092C8C498EB0EC0798F84F46C3A88433A4E1CADE4144499B707ED620A36A0063281E8A9979CBD6A0A83DC31821DC0A1FD44B67BCF7B14F7DC7CE2386725C98CB5E772D0AC34570B2EFF1D688B85543B10A9AD33EC9EC0742E3CC9A37B5B37115407F0FA35925D37302D7D8A87E089318E8FFDCE95C213D162ECD41ACAD4D5036E6AE2D1C00BE2CEF47A01EE7BE81D5F1F97D9EB4742DCC549919E6ACF7E318600CD5C786E9164B563AD5CC6D954EC16A02170C75FFD639219A1A449838AC635031682155EED371FAAAB012B3B9D9674148FD1B13CF679E572686528D8A8C370D651C127FD79F0B1ECD61BE943D51AF56A416B8EDC4B4DE6AE954CABB46CAFFD017A45CF6A406575BCC84C9E128211F2C1C8B030D32F41F19E1DFE9D79488B87E18813D69A657CE7B72235F53C9ED5ED65F9B89D897E190C4384BE9B8689C14C271564EB2E9C206D5A88A7FD18BE31DC7968165E03AF75A9548F227311FC5C9F7FFB40B98979FDE655E60F5F02DBBD6504E070681282016B76FE2FA2328B25AE5A697BA581346EDA82771B1A8A91586A5E3D0ECB7C0CD0E14531916E793A9D738FAA9C83849E59D62A52CEE46964CA9D55B95BA150C2DEEF972A8D6351688636660CBB69F038D57BEAE037981AA74D8F115854FDFC6F3BD6A9AAB78C0E8DC60B8FEC28F0E68CC188BBD46C1D4BF921DC017C806F5620B74E5CC11EC6DE5974A2E7FFABDCCDC01138A01335C99DD5208BBEAC2FE2D093ABB8F0CCB7E167DE779BB88BB0E39C8F0D5AE3B58E664DC3C2A7301A8AE07335F6008A1957D6B1839985238CB1CC07681F47AB093536C27880B7A1C4BD09FFA7A6EF144692A2BCFE9117DDCCF\nss = 8A2EC5558E193C476A7FCC373F96073FE0AB13EC87ADF3110A2EE013CD5A318A\n\ncount = 29\nkeypair_coins = 174AAA36410566DC15A5E62874218D7ABDDE0B2C0F30D877BB80B1ABD5F5A0A43AFCC6703873BA41A425FF19559EE47D056D3B5B9E567E5CF24EA17010A5C3CA\npk = E71B4FF986BEE57636F904C856AC93E0C18775864B7B932AF200251B0328F5B3CAA38116C5A187305622B4A152CA337ED7A3690C31161862447B847F5639C5851133F627B5980572023B4ACC37C32F6B70B3555E0EC4C5809C9582407A0E59A866991564CA55B21A48EE530676A435D26B749C1264F9E58C3FC619D1A23EF5F6300E96665EAB70E7350852115F5859BBF1A8308977648AE5CF5A55C9FB42801ACA4F0592254461A632A94A9C3A7CCD05C8B7C3B09666BE54F072CDC58D8CBA687D609D1F021115085C340153CE63A37750ACBDA01A6944A46CD16CAD098464A109BBB611A83346CE6B59A5F4CA3CBB4394DACA06E5708459CC777534EB80A620C308DD779B074C11F31679AE98AE569BBE79CB04BB127208E24BA008BEA28C5DB5EC18F31C50712171E27042651701C3004E057A6865D54763843D27873220C174C57154C9A9705DA162E8685A035B34E15C411FD1B7220C57265C2BA7579F4BD9AB1461650E8027C0BA79F2BA3F14093CAB6015D8CC092905A6B8F09DBFD5743818489ADA2BEDF88CE592396074A79824457F7CAEFE334FC84869FF43641821AD60E80407649EDAA8BDC2FA877ECCACCAAB8A1F35A1573546AC382222C193BDDB31275B84374CB4679A5FFD803EFF07987ED085FBD43E45752DD9A32F5EC03E7B74567ED9674E1070B026801E99CA27EBC0ED24742530507E19B97A09877A1B511DA3B9835268AC35AE44187EA14B996DD96C35686EB98A81F1B2AD90A80D0C989B12813E7DF2B34573B876289E7C79481C7247E637A60F9B2D3FC129C379A759756408636048565CBEB24C2186A875606A43D20BDDD8B9D70781B1848BE54A075FE978A3E112A567223D21BEB3395921D1A100C578E7EA0455949B7B420B6494688AEAC00697AE1914084EAB375D86243B50A948874DC973B7670C8F9173228B64647E58761442A2CC90165B188B58025F8EBA65CC654575A1BB3823A1A29633AAEA1763F24486AACAFD611C28774C98D89B3CE8A696E29F62775B5D5C50847C3AD4BB968C441086AA070097508DA888B5B202E5A3B5DB579943F0861A5B6E2D58415019182262C444FABB77679E019CCED4E0A3854507FCD0935BF81B0E8500DC6C0B3C154ECBA94D166407C5DCC67BFA6AEA8B4EF0C53859BA4416D5C1975C1FEB6BCAD8076E6B020A62B077F0141DEB5AB5986B386D51CB7E8C779654AF5E5485A969467012C572F62DAF788D1F58BF9DDB4BC6E04B00218CB671CE8B2515B072B76CF253A4006AC5437C107A077F162A3984586978CEB3752B1FA1A2B525961F96C63D7207ECC4C0268A354AFB00231B1CB6EB4E4A694524448E7A043C22A5BC1094B23D3C5D0A9641F909A778EB64BAB84FEEC3A53730405C92130F756050771999E469CF07CC8C308ECE9B827D7558BF882630556150A602D9400E3D4ABB229A9D8B8132A7F0C0C5475BB852000B63228C490472B42488AAC0ED647B1E834F248534FE2195ADF6952B83B6705593A1E53F0315613D2596AAD44E27A26D632B9C71E9C9E5A6AB733C7E81E54DB3437D894A19B4710A3CD5075602B176EC369F5116638775574C74425789154B0BDE48BAD6E52C91C451C87B48EC406674A75B0CD39D1173C3F411AD1EFDD8BF4BE2AFEA69C2327BD070CD1432C8D219\nsk = 25933617206AE881C4DE291B4F269F2E51897FF29D3C6803E1A4C58E53051E879F1AF333393C75B366CFE2E84CF9CC930D1928298897480571D7050751601BC119B1071412EFE8873AD325BC00420D13A752D33087BB6F884628DEF98F4FD21D01113219203F93419875C91CD33C7976B7A45F510F70E6002957AC49B862CD35640CE84E6B989201A74EB76422F88B31C94ACFA811605A32634199BE1639A50B709E89683C5CB0C975D627B76223EA48A2352C8BCC254ABC60812A6A5AB7747CA82073D1D31FEF708866A9801AD067A6DA0D848C409861C350DB559A0AB1D91C9BE0C149D6C241A13849D9EB2DA4B9B9B30B348217491449A43EA4544467824FF954C4869C8DC0B2BA2744C8D38BA584CB78EA6F6188BCD090267BA46882F16964AA003E2C60105415F937CF13B9CD00456D3545BC5E48B6DDF61A14ECCBAC23BB1D071BB14361B4C9ACB7B48805B7890C3676B550238391B388260CB0E2567F725B0382C7174440D82BA8A6D226D325CDD1C26ABD510ABB195B73D203F9DB7DB44ABBA87581A3C57F079B44A9455E3FA16EC87A0CC14368569B35517272220BA7760A8A0508BF0033031D42763FE89B611366B8B93D2D523D5C872BB99BBB099515A5911F1182404B7B4CCEA91462C6A5ABC16C64F55AB38A763A03BA48E0268819B6DF8BA88704AB4C7BCD8F8A150CA434AB0632ADC522A49C0E45997375D69901416792F845FCBC1A18789B22870401D6872374B15C851ABA4C3CF5A8930D34C74FD444A2C87F90D9353CD77361E26C99C8027B50504BC5B3F2BC27F3978822113E13D71E19E3915A9A4F0646AEF6D513E155B41237B2AB08BDF38322BF4C00706C0F22854D080BB8ECF58CC9B75D19A0185412A74B3C7D61A04DD8CB07BB37156C46221A7183BEB9321C58A924048AB86032F54815DA1BB33AD4312391C1A6778D9070B1A4542AAE231AAC97BB5E1A1CF42792C9921313C07ABA3A8C15DB5D1BE417C3888A2E0921A7AA1926044AB865935A2738B4378484B44471DA250E41925E976BEECA9F93D191B0C85B487BADFCEC4BE7C7683C508412E096AE888BAFB97CEBD3266EF7397004CC56741F53683034FC3160522E6BDABAD190C51F31926AA94B2F2A4506D69705623E3047176B46169AB8A715B84848BB4FB9830BE744CAD7591DD8D128C1A40F8A5B2829A92177D73CB1F319C0F45557A69AD790C87A6B8314E618444081C221C07C4BA5C1C450B8080DB278770A0C110DC386FB8411D4B983503964F7B6AFA10AC5154CCEA9E6222B4A70E5175F125B0A83010474311F8EF84FDF3AAB6D508B313A93C29675ABE12CDE50BD4B5B7E13C7228D9AC9DF569CC1BBC995EAACBC2290B0293A2BBA70AE8757C5A7CE84386093E02B3201573C56BCC368A7DD404371453C38823BA4752EDB663E5FB99C5E91CA9BA94CAEBC9D60A6318CF62168A86C0C419CAD1BC4FE514A745BB2C81701B89BA371CC1F10B50D95086D99778383108DFED849A1F74696464AA1D67F7F40BBC69C1FD907696D6227CF20750D68A3D36C600448C91A523A16E5C84B40819BBB2BFABB2CB03B658FD0656F410752F52BFC9BBA4A3A8D09D5835B1540F5DC673DF71540F560E71B4FF986BEE57636F904C856AC93E0C18775864B7B932AF200251B0328F5B3CAA38116C5A187305622B4A152CA337ED7A3690C31161862447B847F5639C5851133F627B5980572023B4ACC37C32F6B70B3555E0EC4C5809C9582407A0E59A866991564CA55B21A48EE530676A435D26B749C1264F9E58C3FC619D1A23EF5F6300E96665EAB70E7350852115F5859BBF1A8308977648AE5CF5A55C9FB42801ACA4F0592254461A632A94A9C3A7CCD05C8B7C3B09666BE54F072CDC58D8CBA687D609D1F021115085C340153CE63A37750ACBDA01A6944A46CD16CAD098464A109BBB611A83346CE6B59A5F4CA3CBB4394DACA06E5708459CC777534EB80A620C308DD779B074C11F31679AE98AE569BBE79CB04BB127208E24BA008BEA28C5DB5EC18F31C50712171E27042651701C3004E057A6865D54763843D27873220C174C57154C9A9705DA162E8685A035B34E15C411FD1B7220C57265C2BA7579F4BD9AB1461650E8027C0BA79F2BA3F14093CAB6015D8CC092905A6B8F09DBFD5743818489ADA2BEDF88CE592396074A79824457F7CAEFE334FC84869FF43641821AD60E80407649EDAA8BDC2FA877ECCACCAAB8A1F35A1573546AC382222C193BDDB31275B84374CB4679A5FFD803EFF07987ED085FBD43E45752DD9A32F5EC03E7B74567ED9674E1070B026801E99CA27EBC0ED24742530507E19B97A09877A1B511DA3B9835268AC35AE44187EA14B996DD96C35686EB98A81F1B2AD90A80D0C989B12813E7DF2B34573B876289E7C79481C7247E637A60F9B2D3FC129C379A759756408636048565CBEB24C2186A875606A43D20BDDD8B9D70781B1848BE54A075FE978A3E112A567223D21BEB3395921D1A100C578E7EA0455949B7B420B6494688AEAC00697AE1914084EAB375D86243B50A948874DC973B7670C8F9173228B64647E58761442A2CC90165B188B58025F8EBA65CC654575A1BB3823A1A29633AAEA1763F24486AACAFD611C28774C98D89B3CE8A696E29F62775B5D5C50847C3AD4BB968C441086AA070097508DA888B", + "5B202E5A3B5DB579943F0861A5B6E2D58415019182262C444FABB77679E019CCED4E0A3854507FCD0935BF81B0E8500DC6C0B3C154ECBA94D166407C5DCC67BFA6AEA8B4EF0C53859BA4416D5C1975C1FEB6BCAD8076E6B020A62B077F0141DEB5AB5986B386D51CB7E8C779654AF5E5485A969467012C572F62DAF788D1F58BF9DDB4BC6E04B00218CB671CE8B2515B072B76CF253A4006AC5437C107A077F162A3984586978CEB3752B1FA1A2B525961F96C63D7207ECC4C0268A354AFB00231B1CB6EB4E4A694524448E7A043C22A5BC1094B23D3C5D0A9641F909A778EB64BAB84FEEC3A53730405C92130F756050771999E469CF07CC8C308ECE9B827D7558BF882630556150A602D9400E3D4ABB229A9D8B8132A7F0C0C5475BB852000B63228C490472B42488AAC0ED647B1E834F248534FE2195ADF6952B83B6705593A1E53F0315613D2596AAD44E27A26D632B9C71E9C9E5A6AB733C7E81E54DB3437D894A19B4710A3CD5075602B176EC369F5116638775574C74425789154B0BDE48BAD6E52C91C451C87B48EC406674A75B0CD39D1173C3F411AD1EFDD8BF4BE2AFEA69C2327BD070CD1432C8D2191B1B0A8682CAF72DF2E0A48513A7358EDBC77A615D6BE6FE2A7145BE66B7C5093AFCC6703873BA41A425FF19559EE47D056D3B5B9E567E5CF24EA17010A5C3CA\nencap_coins = FFB94FD16F27B1B653E0882F4E86B8AD651A38C01A33FE0A34DBB425937E242A\nct = 62186FEBE3DC2B82007E4A9535DD4D4E7639EC638C0E1D68D00B480050A711893D14D899BB7F84A6CA211A110751DE99356EE4EBC5ADD57AA6923643109129E94B27F04B46023F27633BAC1607508614876D6658FFA95369ACAE694A47D38A626D9A4EADCE37B6AEF72B0BF8324B9BF22269E1D2431BCFD7911B489F3C3CCB70ED416D638A95F330DDE640F31319DD1C1F835C418D3AA17800CF8DCE85D2B5395B51851A03EA135BB6BF924C6FF2582DC38B9AF144F2E1109709390FE01732DAA00FE7B575194B152654649687A71FD5A0DBD2D798C6D3A39F4A11A22BD2680D2CF09A2DCACB5E86B57639B6291E91FEB7F379E58333C85DF5D0BAF4E27980D7949A4176013046BC3691AC962474407DA70E5DE88A2BF6D570DF236047D2979D2569A11B7F2BFF21EDC4651C12FB69D5674C7C374FAE96E0C1FE2D3278AC701391B3373592A202F956789429C380D392EF41E3C8E78840933D5524BA055CA198C68482CFE09A4EB3FAE199427F84B75771B7F77AED19716B36370BBF4B89C116D920ADE5EA334F84C1ACC00BCF6EC5DDB79B0F7B4DDDB6B5DB6747B5492E2D5A48B93D84D27DD7F7DEEA612C3461A40B71FB9F11923B1B7F7FB3CBB89E82AE27A450EABDC69CA629C1EE912E3E32445EF8B007D5B971F5927307CF22DFE0575CC8D824F64CA6C20CE9361366596FA32059F909A58E1BFC8F080B5E5D3B59BCA5A0434E8BF24FB0DD7932202BFB1836767414C1E92FC66055F7E951F0D7ABCF4CE65EF1379AF6C13828724B801C387369CBBA9F2D41239DD95172E2C16D68E70D870558855143AB537993051F4CA57D7AE71E87DEE9E8A81DBCAE5DBF9D50C2B8D0B509E2D9215DDCFC6D2849E86523373446EE3489D41957DAA71B6C59D0B412A2D97A74ACC1142A31AD6A1A260561D4C33CF50F87EEF0875D94C16C20AE63BF9DB722AC58A3A3028FC53F5656CC2B701696AD0343F65104BBC7446ADF6AEAB8AEB6688CDA95E09774F2B24F431581EE765564BA5EFFA7EFCFC6883D673C45EF4E2AE3D75B4A4AEFE0BA205F52D4A6E05038163BAF5B0A04B3787319F5D3BD4D0069E41FD6725347C514F03F77F860BA99DC63108573D2C77A45C746BF6D3BFEA5AAA9F709BDAC011F94009A61812A99B8298D73EB1AC1697BB93F0B40645F56DD2AD91F6BF7EFC8768715D7CF9C5D4C4D660477C59A5315006931553B524B306261672125B7291E5CA84ED15030488AB8A027D28F7E24C54F9EAC4B6DD69AC353AA5EB1448A74A68175D88A2768DFF00D75926D1C7B71BFA59BC04BA59C8AC7CA1C75E6F02EEFB9AC4DCA8D5EF96DC5DFBAC06C4891CF3E49B7ED56FC324E4886E3EC7B895C6DF28DD28CF4B04F44BB367D0F68E4D5565EF07A8EC92F588F403EC1B8F39FC41077F927F393C7A0324E5E1B8DCEB39906052564596D89C38F2C88992788CE89C171548BFA50BFCE934F02D5D849E170D6700CD397658A9B5DC99388A474969AE96E58AE6669475958559C891E62CA1EEA0D598087B97B45DDDD\nss = CA2A954CCC529708D25CF972DE39638DD8D7323AC8C48DAE7157F4BCD00A5CFF\n\ncount = 30\nkeypair_coins = 351FE4313E2DA7FAC83D509F3103CAF7B4C64A4D458FEFDF636785AC361A1390A4CB53697A77FE6E39EF13C7460D657197BC1C7EA3DF65B85C8DEB43A058BF1D\npk = 8518C8D8DBAB01F270C3131AC1586BB783B35DB82F3C24AE2B767E2C4A7D15C2A86EB19FDFC41113A7501367CD70D73D0F63705487AC4E0BB1C84001FE6657610C7D64FA3DF4538BB6069128C4597EC9B291938EA5D7CD46897AC2179B52F1CAC91B6C36F37A59780E454C50C5DC354B56A43040804DE2394BEA14C2D385E082C5F181228D62307F5A6A1AAA1EABB84F90F34310844DF95A4E6D423D8C993FA7F390E6984E482024C2968254B54B7D3418D6F859E295665262246E1BC8CD6C9B726581CEE69140F85C02024C5B59AA0711813D66433AA384B2A4A3447939378A1E6A98936BF04AD075981D93C53E9635B5E285F96755F8689B5CE5429142AF6FA02EDEB1A719B272F6B0A6211A5B9807CE6FF368739B51D4D9480BD884C8B456569027B08A3CB928645D450C6264C5FCE2A2DE2B241F965034A08716649A3C71020A6986FBC8BFB5B4A2CB162749264CC1E44BD66223F3DB1B9BD2C68744B52ED7BBA0B9773DF128883110D2CC4757DACAF7F4C90FE02884E1A581D89AF687AC79444C9D801D156325590A3A24441B7C2C893B777386198C16374329E640B6A439FE5BC71AB3AE195575A71CBAB773AE6F0B5AB2D750D222A5D36B86EA2AA2006C54940A5F843AB708D19D5937643309C12D522DD479C3B2D57DD5696D25615ABBB573FDB62EEE5C6A6546CB1FB188F356800FF4177C69B636CBBF9EE9A7C7D512CA156490C96B347A5BC2CB257A061452DAB5FD15BDF5026677F14967B6C825D03EB782CD0422BD1078B7781624DC318A33B0C437D6C35997A22E30496E876762BA5DCF5146C5188DDE6C684C265A8F05031904572F7554123832C78767FF4B5FF525680C773AB3BA1A93776897D57B0D507B9391712344326F090B3D964DF8C293B6638FA36815C7CB9B7962956F903F62C4CE3D7646EBC1A8EC04A815191CB4BB085EC8693F2188F490731C087C23A8BC7CFB32FC019D106934B2D17706526CC6F787BE424BCE5B26329591C47402D57548110CCB42955C422323ADDB4987FB0F3441558964BF14021A54277BA14C5773A10B81C1427F51173F5C6CBE1B7575A4B6766AC355BC443E479A2953A51F7010F7B04B23E0CA93D08836432E3AE5A1A6BB62F5476C07914F88532CECD00CEB340588AB675F93C286E7288DA1C6CA3621AD6A4AE1FC64AA15B27A7C3EABC120E7460737585B5773AB18E23EE185C900ECC3B765983CB807E2F7047E6C999C6716E26801EA938302ABC312AA797535358196B63309846675BCF1B33343BC3D4D172DB81947643A84FD2173FCB0477AB87B57B55899A308D51311C9BA6916F15947D707D88B9228D0488DDACCB25455CF782B7A18264E55C9B6798F39A53F53240C82FBAF461364CD5202C5C94CDFF23E0F731624E69310E5B47964B2BFD3A59A5B0D55A026E260731DE346F74938ABC607B4F579B8B200ECEBB633614A46983E60E442A4914C93FA62219025E4A99D71032F0B00906126365C467E0A235570A544A7640F23800CD5F2A825479A632343F20801F1774F0E8B7DB96A860FD40A43CB7ABAE76039C6BC80B94EC315AD49E9904908A20CB444BFE219452C464EEB2914EC19031152CACAA00DD541FDE81ECAF1F339E468BE45459E708BFB464D0C480A1BECDBC021A06AF7AAC4772545EB\nsk = 719950ED1960FF6C2D7D59BBECB83AABE1CCB569B76CD9B053389C552CB6BF847CF4FC1F18A03E66F02CDB284C15D656151644F78CAEEAFA8B12CB7C616256C032CE6112735A74285D66A90F3A745ED8733C195F6B1B9B272897520A02FAFCB958A9669990B73420BCCE373ACF5A1C86A555C3C48F78166C0FBB023C49608592261060884B408C9FDB1F4B023506D3516956B02637AF26FC7B1D9345F8B54B5AF96997D39FA32C01AB64A6AB7491D50303B4E8A134086110D220462395B9D89D9651205AEA9E1B88BC80C4C8BAC44AF4F1886EA788A0B259DDA78116051059853D2CD073ED8CADAD9AB04F7175D57C3224E953509588E788713D5A6714D0AA48E972F4FA55F16579D9BC6988F562CCF1286E87AA785929BF8266D7E340022C0221736C3CB372B85723042382092545A45032EB727BDC750449C786145ACF42B85D4618B0D6F009D0224A816620F1DB67F59713090B0849559A51B9589532CE2DC25DF8F09AEBDA932073A2AC2115B12C5F94C64750220D645B34C14AC1B2208565377D61426D7F2A25CBD969A2705EA330B676EA6EEFCBBC6CD40DA9C0716D147B398B7D469A919D83BAACCA80F0E41414382804B0A321362E14E766DB2450F599963CC2899E1048D839754858910D12C23F99158A9A3149362690A9C5540133E5F217A7B66B0D627321C810F7D1639CCA948D708616047F85BA41CEE9211DF72731AC0986D1C3149854B71683FAF68179799B12C031A2A84574B9A67C96A708355F7A86BFABE63DDB94B6C048359481CA7A45CBAECBCF34407D8E378733F812926599DF5C156A94945FC7911DB26BEF17074470A7BD6B60F771CC3F396E847195CE26444B641F91B468FA1670D0184942472667AA76E42976FAC48E78DA72EF0C207FC7400F92699B46345E4C9972A35DAEA31ADBE87980438DE4F211B005C8DCEC1A6EECB56D891677F9006C49385E8AB20A19B74325A9A95083BC711537480DB30719815352616B2C5721979BD4267FB134188A75B9CB303215A76A246D8F69ACBD173D069B2B99B727829AA5469A0212C006A88AA4A6B614674674FA75500AA294711C178B741B0275280BDA27813647A5DCAC3A258991DB4BF436C23F37C697115143A2755FDC199FF32B19209D7FF904FEAABFF7383884C1BAE3C0CC20D019066653B99C1CAFE366567C9238785B0F0B4D1432A9E02CA2D9A3B37D84646B157684D7AC720727AF4533749A9FF99BAD8F3877DBE5CFF9C75B38C4002178CE30773EE36A14F1497AB386CB36420F04D85C8312CE25B357D3108226925F6B85C7A3729064F81AA66336163C00506BBFC82030F4F33A5BE7330926BB3F849D1DCB09F5CB814BA8A722506D0A037E6EB26216AA3C4D4C05D5CBCF0358501936AD2BEB3563C341E2315DE6D68404ACAB0149BAFA84491AB67A2DD82972220B0DF528DA7C4D441C8CDAF508CFA2C0224932E7E5215572AA433C9212022899E43A93CC7C8F4AAC6ED5ACBD0162E4DA4B897B7BDCD72A0B2A2354F61A6C211089C11E476715F3369859C3021584B6593B5784344D53B40DA0725A90804C45D02F6EB7670071660478C53281B5E290BFC77AC46602B530B1300628A7A4F20CE227688518C8D8DBAB01F270C3131AC1586BB", + "783B35DB82F3C24AE2B767E2C4A7D15C2A86EB19FDFC41113A7501367CD70D73D0F63705487AC4E0BB1C84001FE6657610C7D64FA3DF4538BB6069128C4597EC9B291938EA5D7CD46897AC2179B52F1CAC91B6C36F37A59780E454C50C5DC354B56A43040804DE2394BEA14C2D385E082C5F181228D62307F5A6A1AAA1EABB84F90F34310844DF95A4E6D423D8C993FA7F390E6984E482024C2968254B54B7D3418D6F859E295665262246E1BC8CD6C9B726581CEE69140F85C02024C5B59AA0711813D66433AA384B2A4A3447939378A1E6A98936BF04AD075981D93C53E9635B5E285F96755F8689B5CE5429142AF6FA02EDEB1A719B272F6B0A6211A5B9807CE6FF368739B51D4D9480BD884C8B456569027B08A3CB928645D450C6264C5FCE2A2DE2B241F965034A08716649A3C71020A6986FBC8BFB5B4A2CB162749264CC1E44BD66223F3DB1B9BD2C68744B52ED7BBA0B9773DF128883110D2CC4757DACAF7F4C90FE02884E1A581D89AF687AC79444C9D801D156325590A3A24441B7C2C893B777386198C16374329E640B6A439FE5BC71AB3AE195575A71CBAB773AE6F0B5AB2D750D222A5D36B86EA2AA2006C54940A5F843AB708D19D5937643309C12D522DD479C3B2D57DD5696D25615ABBB573FDB62EEE5C6A6546CB1FB188F356800FF4177C69B636CBBF9EE9A7C7D512CA156490C96B347A5BC2CB257A061452DAB5FD15BDF5026677F14967B6C825D03EB782CD0422BD1078B7781624DC318A33B0C437D6C35997A22E30496E876762BA5DCF5146C5188DDE6C684C265A8F05031904572F7554123832C78767FF4B5FF525680C773AB3BA1A93776897D57B0D507B9391712344326F090B3D964DF8C293B6638FA36815C7CB9B7962956F903F62C4CE3D7646EBC1A8EC04A815191CB4BB085EC8693F2188F490731C087C23A8BC7CFB32FC019D106934B2D17706526CC6F787BE424BCE5B26329591C47402D57548110CCB42955C422323ADDB4987FB0F3441558964BF14021A54277BA14C5773A10B81C1427F51173F5C6CBE1B7575A4B6766AC355BC443E479A2953A51F7010F7B04B23E0CA93D08836432E3AE5A1A6BB62F5476C07914F88532CECD00CEB340588AB675F93C286E7288DA1C6CA3621AD6A4AE1FC64AA15B27A7C3EABC120E7460737585B5773AB18E23EE185C900ECC3B765983CB807E2F7047E6C999C6716E26801EA938302ABC312AA797535358196B63309846675BCF1B33343BC3D4D172DB81947643A84FD2173FCB0477AB87B57B55899A308D51311C9BA6916F15947D707D88B9228D0488DDACCB25455CF782B7A18264E55C9B6798F39A53F53240C82FBAF461364CD5202C5C94CDFF23E0F731624E69310E5B47964B2BFD3A59A5B0D55A026E260731DE346F74938ABC607B4F579B8B200ECEBB633614A46983E60E442A4914C93FA62219025E4A99D71032F0B00906126365C467E0A235570A544A7640F23800CD5F2A825479A632343F20801F1774F0E8B7DB96A860FD40A43CB7ABAE76039C6BC80B94EC315AD49E9904908A20CB444BFE219452C464EEB2914EC19031152CACAA00DD541FDE81ECAF1F339E468BE45459E708BFB464D0C480A1BECDBC021A06AF7AAC4772545EB2C54DF6E9020E1E44B11B471DEA97A382A2FE8D1042565BCD51EF21CC0884D68A4CB53697A77FE6E39EF13C7460D657197BC1C7EA3DF65B85C8DEB43A058BF1D\nencap_coins = DA8F1FA1262C71363592344AF3AF48D678DAC8E93CB11D2DF01A93FEFE97C4C8\nct = FCD64B8902B3F7F5F29BB1D3C78A1D230AB8881339F722F0690A605CD99F82DD71E8AF7B51F78B403998E08E627668B54CE351AE3DFA596E6FFD7445E690BCA9247D2AAC78E7FE71751D04C0B97E3F2071B42935593CA215D05ACAAB27BFE4A02793D131B9DF5F52356CBDACA2657044625B0A32BFF5D4BEBEB358910ECE1865E212388D990B3F3FBF11CD98AEC4DF3E180EA4F2398166B4A5F78B9D10973315B74E83FEE1EE70F653C43243A8CF3EFCD1B6651FAFDB902EE4D251EE1E11C61F509C1176CE4B0F7931C33A3838B56012234282711CC49F2F8E9BC4B95A29FD2A1897964D8AE1F1A3F8E120BA28F1EEFBD377F0EEBD99D1D41FE246EB767005920553413B2B1E88443ECFA364EA359DD0161EEDFEB75FCDBCD77CFCF1B33B081F9FFC5BD3457BE70565D1138467EC62814F7B59017FD9BE4BD49217774960F3DF3A75160D65AF2DA2FA7D7CD9CC79756E99A3C2AA1832B3C75EC0743FB624EE0C1D6E9D9EED5B0B8E27C18B4E3E77D04DFB49A154422EB91214F9A337007BA5176C03885AF0D39DB79B53278A863F9708CE6F29472F1F438EE175CA3175DAE225350B515B251AB1C045720D89A245C65821C926480676599B23BC2995CC0FC1936A0531418262B334937167B1D1088A54B0641B00DCCA91536BAF091BC7782125D9E6600397E1AFC3E5B76773DD324B43835D865D206D89DDAB6A1FCB222F168B341027B287CBF842DD29984B034FBD5B578F957B700A8C5F8F105969DA7FE27129ECBFED6B4C463A45DED1CA730D9EC83E0F99C17A1D0EDAD595C9C2A9A6029E10A3F24868D71412842CAA8F755563FFD07478CB02D7EAD6E5B9ECDA9EE22794A2CECECD646212C5C979579BD6192D9DBFE1B719D1E931AE8E6B4FE5F6F32E3A45B89957A56A22C44EAE7A11C7DF772DA817F423278C979C7CE2FCEB08093AD792EB0BA6A5CB76E637DB763DB5B0A6333E221E82A32362FDFCA3BD165FC122342E67DD0DFF94493D662D736F578B86C50FB4074BC2DFCD54CE80F60621B514C74FD958A6EE009A6533A1C129EF4BA8F44ADEBBE82B340B2C6F6C4B27DC11A6C604B7BF2556F80BC2E1B20FDB456151D251DF401117511C4686C71DAD9D9BDC8BAC9DF736744BC44339DD33009A52205812290FD78064B61A6CC668776BB24A903904CE0ACFB7590068D97FD550F3DD88DB2876EE8F2C5B7F582A3BD0F3008FA2015A0A4B15EA05A9C84F4E82EF8CE5FD008D2B6291967B408582693CFD74F8690D29D03ED211A5BF0EC2B9A61E1EF46C8FDB6BED3372B0A5E83D77228B0AAC23E4C200EE3DD92BDC386937A04CC80A951B3CD56484DD6AE136B667F172B6F6FC45F5DC04D7D7D28A49D22170B9EE87610DE052CBD215E165EE28E1C5D21FCC65A24088E32A13F1D883F8774729166F5CC5579A8CE5928B1B7BAD819C01B59B415650A9065381DC7BE562BDDE47209C1AB58A0C07178604616CC6D83BA1E9761556B86E9D0BCDA73B6A450017FA1CDA0BBEDF846D12A54B8DF7F43809A3C7B37F\nss = 58008784BE263327AB4E974FCDD2CE549178FFF85BC82507B7330CE42A8DE16D\n\ncount = 31\nkeypair_coins = 9BC5315580207C6C16DCF3A30C48DAF278DE12E8C27DF6733E62F799068AD23D195927B10C3BE5F19FB055A71CF9610FDC0F03E23FD09EEB8C63B7BA3C0FE642\npk = 5E55633267468551B3EE117792C80C1A802230AC805F769807976C06399B97B3C93FB83BDC136CB3CBA70BB4AB5F11602E977ED051115508668C244A44E09569A13507D4009AB72B16CC3BC615C12ADA7C56D50BA6307D00801BEDF8526F0A9366869A4830314D162F63AB8F51996663C1138641275E164DDF60C7708A75376BC235E16D5C22033DE1A149153D1868679E1825F638967BECAB5B9644A6E201906771A703B7844CB5CAB61748D202D38B5B8F03CC45626027895E23D0C1C1B526C6D519620436ED593B58732164A39639C813F6032EB902B05DB15C5D8825C8B11815768D29522536698A751BC1F9964DC579358ADC57EB83A0D2201B9B9354B1B39C6E7008D5F3189902964973AF9A9C694EEC1298D68D3372783D34700B0280D692998B49A9BB76293D7A95363B317670352A71822F415B1C97742934713C5995FE5CA9642C3AC18B73C43357D4D497B3905DF7F58C6566621EEB25DDA29D97B598970684C5780F665243FEB854F9F566177200F9331CE353CD1A23CCE8AA4529BB667D1B9E59B1A312A7C6FF08871CD95C6934419F475C1C08395CE1A3AFF83DD14784303B4BA7751054AA59F5710E4AC6039F3168C1B601A5278562B525ABB11E66193DC9D34446BBCC8163578CB8065F89B9F43407F79246CAD2B6B8B40F16B839A060A95B76855237BAB2FA315DB48E40842F8306125FB04145356BC50B00E3389DCCA26FF048AF5A730AC573B5B80331D2597C4188227682075BC0000186B8FD26A383E1BCE5C19F13B18CB21602F2160DAB202BB07B63D925B71708095DAA662CF25DCBECC99395400A79842F5C40E79B46B5384CE730439F537BBC8A8608F61520E120EA9843456118A0A4CF36384832B12076044C65F06C8F8CC31752469C8A1E33DC529AC05485548A6E075F46A089AA8446C0D465BD43CDF0343ACC9668FBA2A7F7191A9D29BE7E9300CEF33D13A11EDB2B409DE297F30B8A7B077FD4CA4D1AC74B31092ADED0503CCB5818D1834A734E15B74D3FE550EE49773A800D86F129B4E0250EA1C43DA3A3B802B0757C6401EA090F98A28291621341A9D98C67BB001E46E89973F40C1C4950B0E34F07772BA6379FB6A93ECB57369B48B3ACA26EF815C615B4A97AC2190FD2B15E83AA10545FB859635D084A57B0268FF085D9EA4B7EE1763B914E67B33DC46037F39815A1F8C58663C88662B91BAB0DB6758288C682372A269C64CF3AB5C46DE2C8F0F1B7780A068948B9480C6AF10251453C1FE213855D74675CACC7B162917730AE74EC7A8E7673A7D0887EDC175791309AB28E6CCC629BF79C6D69B19269A19488B7B88A45A199841916BA4A2A1C2456A108A5CB4DE1B15356CA737369668B0B5C7BC10E22377D6B5FEF7515B4F348015872E3518C2676079B8A06DE8B53BD189EC9766C04C084E74C6E747C783FF3A99B930547A72FC3A179CBD62B52D46207E79E37D65C9F3C4839D1AFC167AE4041671E2C1BF3324D875B78615067DFE11653E6BD4DD5414579AD8C942081DB4F1A10B0E1054FA3D79AF6A285F2107D4232700676B8A007057D15C923A7889F115762B4C242392CE7C4438C68C6C3FBCCCAE4A071E404C24274F5066DEAF5359EB3382EDA6D6338F166ACD09E376826299B77B781250C2224486EF23D424BDD\nsk = 4DA026F053C3EC1712C7F294DC891E26196894A1B620F97429574EDEE9568E113FEB564D89A1883D5A0329929CA57AC001925C8D616791842DCD291627D61C7C2C3F842B547F074F46F082A06BB4282323A291C3CC07904079125CD5A854168D83BA8AB6B160B5E1881D25403B297C73048E3298287F51529A8BA2DEDA6B4D7665A373171B03B1C0BAAB6482C50CA3A028D485CA8491B1B73767EC9EF8874A54D4CA414895D2E49FB2AC0CC80C9D248B97DDC51D00A10CA3324FA8A6373A99C5DC1BB7A389CD9A3C6931FC7BEE05ABCBA579251B742F46383AFB48FAA514319B8F9A0491F9212DA443ACF9B9CE5B29A6E723A4EAFBA5C1A7B3E017870FB35DBA8A69F1F7995EF2AFF817907DE5C66899824889A760CA4A38A57B3AFA880A3524E138B37487B2EE7332D2689F99A5A3748020FBCA43ED6045A5ABA65F6C67783CB74C217BA987AD381938B4A651B6908FA4F18E6D073A6992160438BA3C9547E4557E1E724192414C912648D25907BD8B069C845465616969161C483927F5D610C815638E242323465839D36A8149BAD494B71F1336A3F0A954369D4265B6CAB935F06694C482B500CB77BB32C4D", + "805A295A692648A31611B206D06C2E86C61675577053A747BD3A748F452B480028EDCBECA8A10EB843EA8A71E21E9B822D80860764D8C5A77EF0222F8004C902C832F1A344758776EEB99C3EC8B24CCBC03F5BCBE59027FB424E6C580CC3B41C041984EA552BDD6396D52867887430A2534A44BA544A0B285C061D7D6618C76945A5C3B29BBBB09A724B1AC53E5954F66708C8C0B2D7DA57C62FC8B80E73D737741F9141F7164B4EAC08822A4C340B5B74CB5C2D407B9D63365C55C14C5E6AB43A8BC68908C34074A9BF4816E000DDB464656C379FDD829B6961C22E5345674243CA64705212D52E616664587F90947FEEB4366A7ABA98B76D9F79A1ECC4BF50571A07CC57E0CB1AF828BB26263A8A898BF3B7B0ED07988E82DBE3C0405D46B1CDC37600570FC37AD9B2237E3032BAB1A0AE420B6F011A653987305AACC8876AC4D014B7E619227B8B35BA2616C9575506870FAD2585549A2F902B185D7A61139C027912EE2A00EE460328B16CCEEB259149A0881F8152D563BC0243302D29FB98CC57A45369517640BF0BF63A555A900269878C4BA567F8D376176D6941D34957E1373B7520483394C3606089D14AEE0917059227BD848BB22E088DEF4194BFCB36EAA81D4DA713E37BE79E52F51BA2C32F05D06405947838625E49F5F6BCDA5E683D014A12FCC0C81601B52F80C39B6659606A8FEA82C62E061A939CB4451869922083268561E16381B026152170104E11F30B2399F4097B94078ADC66F23F85BA6651E861237700BCB1AE92E2BC652CBF19BC0FCA0D7F7577C9C96DBC9B8B07B917F258C15661DA17621DB1287EBAA7714A54052FA660F034F227198EA14C2467B46CF9877F4E0C29962992B560A7DB93C8EC13343F734D86BC548246A57473D1285463D0942F288245D933DDAB7A09766A9F8C178EF539F9CE9A0E97364CAC0366B5B08B4C1B081E01D198C2AA5288617A50019EB3A40A300AF538119D733F2544D18B9094F387A3F4C17BAF01523F1455E55633267468551B3EE117792C80C1A802230AC805F769807976C06399B97B3C93FB83BDC136CB3CBA70BB4AB5F11602E977ED051115508668C244A44E09569A13507D4009AB72B16CC3BC615C12ADA7C56D50BA6307D00801BEDF8526F0A9366869A4830314D162F63AB8F51996663C1138641275E164DDF60C7708A75376BC235E16D5C22033DE1A149153D1868679E1825F638967BECAB5B9644A6E201906771A703B7844CB5CAB61748D202D38B5B8F03CC45626027895E23D0C1C1B526C6D519620436ED593B58732164A39639C813F6032EB902B05DB15C5D8825C8B11815768D29522536698A751BC1F9964DC579358ADC57EB83A0D2201B9B9354B1B39C6E7008D5F3189902964973AF9A9C694EEC1298D68D3372783D34700B0280D692998B49A9BB76293D7A95363B317670352A71822F415B1C97742934713C5995FE5CA9642C3AC18B73C43357D4D497B3905DF7F58C6566621EEB25DDA29D97B598970684C5780F665243FEB854F9F566177200F9331CE353CD1A23CCE8AA4529BB667D1B9E59B1A312A7C6FF08871CD95C6934419F475C1C08395CE1A3AFF83DD14784303B4BA7751054AA59F5710E4AC6039F3168C1B601A5278562B525ABB11E66193DC9D34446BBCC8163578CB8065F89B9F43407F79246CAD2B6B8B40F16B839A060A95B76855237BAB2FA315DB48E40842F8306125FB04145356BC50B00E3389DCCA26FF048AF5A730AC573B5B80331D2597C4188227682075BC0000186B8FD26A383E1BCE5C19F13B18CB21602F2160DAB202BB07B63D925B71708095DAA662CF25DCBECC99395400A79842F5C40E79B46B5384CE730439F537BBC8A8608F61520E120EA9843456118A0A4CF36384832B12076044C65F06C8F8CC31752469C8A1E33DC529AC05485548A6E075F46A089AA8446C0D465BD43CDF0343ACC9668FBA2A7F7191A9D29BE7E9300CEF33D13A11EDB2B409DE297F30B8A7B077FD4CA4D1AC74B31092ADED0503CCB5818D1834A734E15B74D3FE550EE49773A800D86F129B4E0250EA1C43DA3A3B802B0757C6401EA090F98A28291621341A9D98C67BB001E46E89973F40C1C4950B0E34F07772BA6379FB6A93ECB57369B48B3ACA26EF815C615B4A97AC2190FD2B15E83AA10545FB859635D084A57B0268FF085D9EA4B7EE1763B914E67B33DC46037F39815A1F8C58663C88662B91BAB0DB6758288C682372A269C64CF3AB5C46DE2C8F0F1B7780A068948B9480C6AF10251453C1FE213855D74675CACC7B162917730AE74EC7A8E7673A7D0887EDC175791309AB28E6CCC629BF79C6D69B19269A19488B7B88A45A199841916BA4A2A1C2456A108A5CB4DE1B15356CA737369668B0B5C7BC10E22377D6B5FEF7515B4F348015872E3518C2676079B8A06DE8B53BD189EC9766C04C084E74C6E747C783FF3A99B930547A72FC3A179CBD62B52D46207E79E37D65C9F3C4839D1AFC167AE4041671E2C1BF3324D875B78615067DFE11653E6BD4DD5414579AD8C942081DB4F1A10B0E1054FA3D79AF6A285F2107D4232700676B8A007057D15C923A7889F115762B4C242392CE7C4438C68C6C3FBCCCAE4A071E404C24274F5066DEAF5359EB3382EDA6D6338F166ACD09E376826299B77B781250C2224486EF23D424BDDBDCAF7B417DA8B8933279B33068F6FDA313826C2EEC500B224CBE046ABEB37A7195927B10C3BE5F19FB055A71CF9610FDC0F03E23FD09EEB8C63B7BA3C0FE642\nencap_coins = C08EBD7CDCD4DFC51CF41DB75F31755F2B3FADB6A059499DD431EB931E348143\nct = 50DCB075B04325383572C6683C7BDBF7426899D5AD665F2604B44F9C86312A384D1B62733646197381475910C0F5DCE7E35E785177FA9439113E34F5F6E80C4A0603328A79473DFF643E4546A9390626C8165BF3FF12E82E8BB9DCDF93248B29D81E61BC16DC6D0A7EB698DC86A1B065FEBCCDFCAA3F37BE2A9B3B7B5AD609F6B3D809C55903DC301A0280582639B43660BEDFCB10341D073E21275477D143151BFA7A7BF992F3CA6F1B6FA3804C96B2E352573467738229B44114B4083303D800C7CFDF137127913BA75F253F34DA66A7EE81AEC56BDA0F8A62A7B5E70B462C1D45A54A10D72A12D66D1B13980ECBB6AF43FBFFCAA18C7571EDB4B5FF913767856042AE70F0B61DC20B73C940049EFAB64E6850FAB76EE61EB609A98AFEE31C7444267CBFC47B793C7A57EA69D83E6E20EDFDCCEE1586710B364FD97A7B7EA4A7C17FB7295A388A44768CC5E89F6EA62C938DD8DBD62A319AF281C3C780D7FC4349290DEDCA09AFE2E03E6DF2D50DEC64971640AAAA241533818358597855BD29AF6E0AFF932A308B4C2590B13F29CAF50CAFCCD4EB3D17DDC33E84997E1512F5BBE729425F63F96023E191777EF613161040D648F42709E82BA79FECE9F40698F66E14E6098132E274B2FFB2C41C555467151DD1E16184785A459BDF444E3C8B708B5CFBA5485ECECB6927CA8F9385CD3FCE952CBC1BCB1790AFD1B5B2DAC2539496CF58F3DAB549810A23F74058E3F946AA2F21173FBEC752B033C559CFEC5C65D5DB5A41CB313EC2FF1C259F4F86269E5719A29BE8E35FEB2D7B908260D4F22B83AECF322ABBFFC650FEDE9687828D1A2500238E3F97C4C13CEA6F15F48C9AEAB72983427FAB1EEA1C92B60DB7D4E649995D899FF7DE37EBA0132775C615BA3B3516815C36F132E668963E9116153BB0D35CC8DF13CA687A4BCC23C40F60AC6E325CD887D6AAB7404943A81A50D0B05BE7650612CBB167B528BB23C67D4B0E9190FDACBC5B3E784F0BF94A4B43C9912241151D98BE3791351D34F3BD695C9BEAC6D0256436B23FF0D994D56F708CAD8C113695B25C9F8E5CCD9948C9A79B946DF043BEE2DD73C490E0CA7D7AA020665B53E3BA7867A5F8563E1838A186C80A1B29E0C8B84122FCE66D00B4D9D55504510FBFF49D663B00DEB3706B00F584A17375CE7A433E9ABF938792E242B64AE2EF65ED39D3EABAA89376448DA129159C8F915A429EA0524A4C5DC86958FCB5A51299F748DF2D76F156ECFB01A1047B3D63AD6B12D46BCA2DF3DBEC119DFD709642384947404E569A0AE0EBBC9D6097BF7E2B1A45569F9FB9E3BBDA262362F70181038BC40CBC76D997C1CEABF1601DBAD99A57E420D333E860D6F836133DC8B1660C6682D5094AA49373994D869BFDA7DDF46D1B56D303D9229F55F1572269257B3A79D2550793BCCA689BFFEB1B7EACE83E8D698461A07B813445B313B0500CB351AF4E01E4E0679178D0106B8B085ADB189B67DD5123553E0DFB1711621142541B8BFA2DB000411DECB6F6F0B618\nss = 0A950A267AFFABF0644E2351506C01E6762782220815A93F9DD1E439EBE7DCAC\n\ncount = 32\nkeypair_coins = D8B907B34D152FF8603B73051F772DAA71EB902C47B7E2F070508269D757E02E7613C090FBE4AFD54869CE826B72F3A5EC823D9A1C983A3D31B2387ED6B0C613\npk = 420A3005A17C7B4A08178B83F8540601145B102970B3FC29F30A4CA1A8A5BC4164051931ED68A59EFB2B50D549BDC1A65E9909F5AA690B0235D32B1C6B2886CE2959FA189E2CE24224E99255863E6D964D4F422C02646A461BB5ABF86F4B4C0975765A5B0CA01081677334AF26C3467DA771CDF40EC4293608801CAD9C61D5F80839774EAFF772B139051BEAA65632120F00171AD020276A1FBF23517582149AD2C73450B11315CA4B244E7218800350AEB5808DA774030635BC247508144740634AC4A078A5AF2816E9206A645287DE06263277242DBA12AF2A82CE13BA6787C5AC3020E5D30CBB92452985AE41027056F492BB1A5E23332698240B5038302E552C5ACC0443A8795804126E15369AE96CEBD7C9765233982458AD6520550BAAD77BC74296BADCD4CC37240D0163CAF8C806A0CCC3F4125A0874CDC1C67E4626C9C753453FA37B208CAF5F523388D6308248B7688C80F6C925895670A1397880933AF0152DA1E54F7A7B512AA87499F7A718E62A7CC5BF5687ADD09060426B0D3CD292AB9B8372083EE462182872815CD740FD69ACDD24615110BB618CA1EF662715F028864BA0872B8C199ABE40F35F91906A821B8CE0742F931C661C65AA2445371A300E68F23B767382F3701CE685CEA5F59C50E82E45234169C3BBAC814AB9D68F83842C513A8FAF475590B3BAC2E3A4685B8F71208357D221AE41310E8454D315670C3A3409A2A95258B9057B42DEF7A7C6F588F6DA61183ACFB18A7CEDF138C7984B50A940F17C687E5A2F83451D94398F4C82C93A375BE195B4B219232E9A766E77040D3B9125E70FA4097D807A6D25323342508F2490A59702575D64AF146088F59802AA2CAB3537A8B4E92A10EC447BD89F9FE738D92A5F83C2861628601E42BB427B87C2153D4BC44B19413B79BAA5EF55325BA8A42E1A88548155D03AB116E47EE0455F0E5A71BAE3A03EF476F77A9A9CC6526DF1ADBEA64930B6995F60181544356C0982E957C5E5186F321B9467D05DD5970A96E226C89673E50A056E7C0A8027ACA8A5CD93723353CA1991730DFEA1AEE943CB0D62537CB5AD88C14F52A78CB6228EF4750EB7DB0AA831A4202B178EF47446A06A17E7CAF5274F384B36832A07AE0A66069BC59FE439F7B6005F064D865B550505210768BD636C61F0E7A1BDCB3C3065908D51302EE234A3FA113A1A1A2A618750075A6EC277CBDAC535FC1524A62E3C0601AAD1C", + "46026AB6B8495C1B7093F776F9E6B3B533267AB99801E83BD18570166387F14ECB4D279B86CFBBAF90649E5C514E432561F850497D47C2BDA1BC2C398B306751991392C399DF6F408FF836F989C41CF76234B9445D9F81F4AAA987C1721C0C726EFE44C311A589ABB5E0AFBC4ADD9BFF6F87597A52E16A53D6C3551B7E6BE0A1958A89A739E0717F0A86BE0385C5CA433B68AB9506BA3A6E00DEBEB1AD0519E228B5B2D9AA3C9B4A2BFC8B35BF0A04B5A9D0154AEF1A9478DF4C8A0354F8878331F76C8CB6851940C996109113446367497CC73D395B34A9C7DD9621C9BB277BBACA6D976C3E65FC3FB4588643AB523BB35F551F1F30D0CD1C40D14B09429215E0C5325BB2B069B85C9E0BD9FA841771AA7C9709046B442990CF89513930F122152632A3C3D7C15C8018E1C23AA33CB89AD\nsk = 1F83902BBB77A97B032277079CD0CA70D09D57385CE5C1B3C08B80ED95B2BBE70C101CC1912B71B29B87DD08254B593D616A31FF4957C7C0C325F82024F6A7B125B0FF799FFF47AFA6A9A7055382BCA08CBFBA71EA1B530BDA5A4548922C90C6DE8927494370EFA6C96780086BF585AE6534DC05344DC1941EF793EAE214312A371ECCCEA680C1A166BA97E128064748269922C9A19CEE4B8A669ABD146491ABE31A57B724F3A173740269A33309F651C934E09A564627896150ADDB8BA181CF2503256512B0DD5588F4372781F35CFC0328C0DAC842A1B3F418B6E8C567F410568F2C6BE8EAC9BAB558DEB08389BA08BBAA50E1EC5DCE044EFE5830743402402A167A9369E1D281D37713EB656662600840409C4FB971C0FA7771BA53B6C13EBFFCBB85AAB3316A3A99A9CED8BC4596932B3D052FBB13A5CBFB762AD7A08CA4AAF33862B6325BADDB0E56D395E8F92EBC7347E847956B471695C978DC2431EF7286C0E0A880F7871BB05160209900C0C403DA599B988A8EF0A716A9535B71002B3BCDADE60053F5A8BC66419FC907F1EA718B7BAD6BB76FD3F710E6778587C36BA5E4C2D7796185BB72C5FBB839B6C91119AE6C954E9B66C3EDB500D884428BE2C7CB6A6C86B807A6059739E23F70433D8A7A4AA768975AA6B0C3924CC8827CFC731A464121090A685820068019197F489315A2274A7133422B2968830271FC94B1C775C5A21E3B07BCE543B32F00B7250CABD0D04A2529347848830C975261A54717324533EBC0EC627F2064BA693A9BF9A16FCE87A8D7270759A06C00EAAB71A5CC25034120445334A39D63BAA2AB3254D77A921209750F6869E6971D05DA1E1BB29CEC9CB7B4962370E5C139BA472A75114B28BBB8E7069C5A8201B730DB571C1EE0B10E1C42B4A97FB7F7AE54670D12859D68199443157DDEA85760445895E7175EF8BB919C7213F427301C4F6561AFFFB0B03CF1AD05613C52DC5CA71A74545ABE77D239576303BC9678272873D9B28F4A4AACFDB46940F59B0A82A75642A0CD794D63D03D43F65E753A6AA2B58E0CC664A48CA3D8A3B18C7B05CF8293D3E23FDFDA93506C831455B648E2017FD866C87683AB307C6FD9CF24212509D777F34B0618776864EBAE9FA5318E739692C5AA86648D49778B67F81347B434CCFA990EE9A79DE94C94054E6E4A8A152B5F4757B89F075A27AC464CD1801D02AB64BBBA4F932C0003458FF73011282BF444961C54C5275408C4F79C3C553424AA4AA13A53D59B1B785C0FFB686FDA185D5438AF5C494D98B80381C821C493BC0E7797CD1995DB681EC9E18859A9229C497CC251AF12D9CFEBC6A19C599C9D364E587C7D32245145A60CEEB54CC7EC5B541B71DAE959C800A747EAAB53F8CD24365C91F53B7B0B9D3630361D41ADE4C82C85E04D8BA243763B3F9DD65D60921F962337A3421051D36889253A423939ABEB0AD962CE1E1A9931C960D9F4948723CA17A731ADFB4834615693F622470225CFA7B036B931A2240564CC35E59A7ACAE48707491576CC1410A304E0885534F577692C5A237344A5F674EC7C45BDA3242D70B004D5AB620CA2B1AC0A56C0CD5B942529B054E0F840E3C1837E0053539B4A420A3005A17C7B4A08178B83F8540601145B102970B3FC29F30A4CA1A8A5BC4164051931ED68A59EFB2B50D549BDC1A65E9909F5AA690B0235D32B1C6B2886CE2959FA189E2CE24224E99255863E6D964D4F422C02646A461BB5ABF86F4B4C0975765A5B0CA01081677334AF26C3467DA771CDF40EC4293608801CAD9C61D5F80839774EAFF772B139051BEAA65632120F00171AD020276A1FBF23517582149AD2C73450B11315CA4B244E7218800350AEB5808DA774030635BC247508144740634AC4A078A5AF2816E9206A645287DE06263277242DBA12AF2A82CE13BA6787C5AC3020E5D30CBB92452985AE41027056F492BB1A5E23332698240B5038302E552C5ACC0443A8795804126E15369AE96CEBD7C9765233982458AD6520550BAAD77BC74296BADCD4CC37240D0163CAF8C806A0CCC3F4125A0874CDC1C67E4626C9C753453FA37B208CAF5F523388D6308248B7688C80F6C925895670A1397880933AF0152DA1E54F7A7B512AA87499F7A718E62A7CC5BF5687ADD09060426B0D3CD292AB9B8372083EE462182872815CD740FD69ACDD24615110BB618CA1EF662715F028864BA0872B8C199ABE40F35F91906A821B8CE0742F931C661C65AA2445371A300E68F23B767382F3701CE685CEA5F59C50E82E45234169C3BBAC814AB9D68F83842C513A8FAF475590B3BAC2E3A4685B8F71208357D221AE41310E8454D315670C3A3409A2A95258B9057B42DEF7A7C6F588F6DA61183ACFB18A7CEDF138C7984B50A940F17C687E5A2F83451D94398F4C82C93A375BE195B4B219232E9A766E77040D3B9125E70FA4097D807A6D25323342508F2490A59702575D64AF146088F59802AA2CAB3537A8B4E92A10EC447BD89F9FE738D92A5F83C2861628601E42BB427B87C2153D4BC44B19413B79BAA5EF55325BA8A42E1A88548155D03AB116E47EE0455F0E5A71BAE3A03EF476F77A9A9CC6526DF1ADBEA64930B6995F60181544356C0982E957C5E5186F321B9467D05DD5970A96E226C89673E50A056E7C0A8027ACA8A5CD93723353CA1991730DFEA1AEE943CB0D62537CB5AD88C14F52A78CB6228EF4750EB7DB0AA831A4202B178EF47446A06A17E7CAF5274F384B36832A07AE0A66069BC59FE439F7B6005F064D865B550505210768BD636C61F0E7A1BDCB3C3065908D51302EE234A3FA113A1A1A2A618750075A6EC277CBDAC535FC1524A62E3C0601AAD1C46026AB6B8495C1B7093F776F9E6B3B533267AB99801E83BD18570166387F14ECB4D279B86CFBBAF90649E5C514E432561F850497D47C2BDA1BC2C398B306751991392C399DF6F408FF836F989C41CF76234B9445D9F81F4AAA987C1721C0C726EFE44C311A589ABB5E0AFBC4ADD9BFF6F87597A52E16A53D6C3551B7E6BE0A1958A89A739E0717F0A86BE0385C5CA433B68AB9506BA3A6E00DEBEB1AD0519E228B5B2D9AA3C9B4A2BFC8B35BF0A04B5A9D0154AEF1A9478DF4C8A0354F8878331F76C8CB6851940C996109113446367497CC73D395B34A9C7DD9621C9BB277BBACA6D976C3E65FC3FB4588643AB523BB35F551F1F30D0CD1C40D14B09429215E0C5325BB2B069B85C9E0BD9FA841771AA7C9709046B442990CF89513930F122152632A3C3D7C15C8018E1C23AA33CB89AD61E27E954728E2E2E230C94FF009417D7372938E2C29C38AF22184EED530FA1F7613C090FBE4AFD54869CE826B72F3A5EC823D9A1C983A3D31B2387ED6B0C613\nencap_coins = 0727DC8ABDF2F12FCBBFCCC9C84B6DFAD8E1EB346249EFE569F2ACE9D8614A07\nct = 980C7CE5EDBA4FCE0108EDD1E15C86D68F58538C2A6FED56719A2FC83D8D97C9757B8EAF8674E78669314FCBB5D0C4821EA6FA0758D853A927553D091B480721D419D22C22A5DBB17C23E79C8A40F60FCCE30D186478BB0DF9EC8C1B4E828020E94047F130C10786850010ECEECD2A7714E8D43B91B5E5C61632F94E6FC4EA41FDE31F6F362776C836DE212DCE2C6EE446302EFBA891DE947876E68FEC1A18B0389D3F11F52191294E1E528B94958FEF03E6C9025F41EBAAEE862E49F6BF9A1946E130C50200B4EBAFC5ED8CEEBF70263968BE8418166D9AB641EC7A9D34302894A550FCF699894EAD453AF7E4C511BFF043A5448B6680D4CBFAEC995B13EF3660F9F42A4E1350E2D36746B73368D0CC06A05997D7A54B08486A4A90C53CD378A54123F2FD659FF3D0FEBBAD3975BB9706E923A297FA8554F91CC42E509B6F0C89DC4A9903CC6AAE283540505BF4A5EDF6C586865DA0866CA3EA6CF4377D317B58D4FA683146D4E4857BC1D9A851D48467F19113B23700FD9CE3EB4F602BFEF95AEEAA8E22F2BD39E56DE5B2AFC5C6B5954C5D11C26FC926D61B8BBC5E03529A9194B5BDDBCE8A04FB1F3223934049E7664F71BBA1A0F8D31985B08DAC9577AE10B44B9297A136060CE3AF5F665C9B7B98D0C47C68F7D1A328F9D08E2220523F0A2A4A86F4D899AC27A47D39D991C104468D76057C98F203EC7593BE05F47C60F0C22804B742C55132C43BC1A22975AAB9E65C3631F8EE1426CDD66B5F788C266F8DEA4B0FFAC86DEB2A72B771D05B40E2C12DACC1826F0B51655F3713B7829C46D0055FB264C9EE3CB581F518BD9112988915C5383FEA503E6320FD9EA5304FE10E19B60330CFE41C6B12907B0743F3FDF3BD232829047C5350CB46222422D413C455B4AA27ED6753351AC218A12145B9AAC38872988499F0FF7F91622799466C5B66B6215A12A930A4DF2672B7A3912B98E3325F80AD05E79389C8F7C90766D869C8CFA8BF237ABC78F866C4A49801A264CCFCFD536F5CB16FA3553708B1930DB15DF768E21ECE3D488E58EF199D64239285F90945F0DAE7662FF163932721F8ED5A3737781228EBF74DDD086AF0E70DD5BBC617C73C7CD08306AC9BAB04A0FBF6D647D14CAB32D45796AF5EE5CDBFFA037D9B171B892C307316981098DFE0539DE4C38FA5989E121F88E2D7E8C2730CEADA5CA893EFBC229F9ACE7EA2CE62548D6F6581284F771BEEB12AB63881EBB343994F7FCB2ADA47FAC1779F46763866ACBD8D4F57254824B2E729085E596AB10735AC2A49DEE13B17BE2546D7D599A2076D299F115AD80D6D2A3E52C0423F605E0CE26A22A30369BF74ACAA801FFA77E448819D7BD1A4DF1FC7E43D644C8E919D2A873F824FAD3E5FD1807C31F2D02799EC3AE75764D04D73F322B4081867CE5736B5C18404EB60C4F3695A239262261839C37E38AD4AB8893322E3B2BF9C55A3662842C845657103AF7AD52761EB15B3D4AB2FEBE73D555E7EA66021AD3AFB172009B709581BFB33A4252725A2CD\nss = F9D4D24CB3E4435000C5DA3482513E957D057F0A915AFE36E6AC39B42F78458F\n\ncount = 33\nkeypair_coins = 684A29E4E5480A5F2533E1526B5FAC8CDF5927F3D85087C71F928C59690EB565BB3EEAC4320F84D09CAD413A7D7C19C27668B2E0E1BBBA2D159B833DB6C0F50A\npk = 63992E0D6A8F811B3F0D30807456C84C8BBB008D3B126A31424954CBC6CDBCE91E25B19928F4A41B1371447BA3D173915580BBD7899E9ADCA37B4B5A21E715101717710BC7EEC56EC2E58002127D1898BC55F8A3BE385D607B3BA6561991AC6F0913617303830DA25F0CF0AC14E67ABB8097D17B0AD1EA8C6C267ADF51A15A9A363D7AA5C8EA535A89115C984", + "AC5D6BFA922C6FC44A3B35CB667F939FA6B2676BA212C17BCD25C82E8172F6A7506E8B77D82CB21D7066DA93A7EB3CAB8E881A24C7592BC6B656E459AF33A06FC2846D71221F1DA641004B68BD65DC28A59036CA678508614B15A93E74F89B8AF58200D50E718DAB1C41C4556CD47B43F14092CA47397243983406E12E423233C90CFEB661A32CE65AB464DB58C922BB693F56553961868B064E17A11162A7F0E3AB0B0AA76B8494BA394C902C598C23721DC16C51D46B8258C635763776B922FCAC747985B94C006696F18BA49D0C5EB0525CAD1349745691320969B6BCFF69C30851B41E66AAC3353C6894AB0097B4EC49783CFE4960D61A6F94B317D488D2D04A8B42C7FB7D89D52D89B2DE30336333C50895348870BBC311611F27845C7775128A9CC831966FCCC06292D86B582A18C6AB2FB3CCE03701BA91047227A9FCBC6F16130710756C5DC288BA92402B5B7DC90C39193737C206F3F8230261852F1694258D47C469C7452156E70634384825BC52B03E90720066B609A4102862433E2621987E23AF51121BED807810501200B776F847FF615C0F594420DC29CA6573276559C1C84B0723569DC2A76728909D9D1279A8C240A3979B0B44003687A412389581B8EBF0CCB06C797F7F5815CCBB434132ED5F1340E2C669430B13A709F7D1612AF876454F06CCB7841F84C60F3806D5E423CB34B23BBA90AB630403A46783329707388A1F4232785D4723C993CC62284D0E35242E52CFD6981268B86F598B11472900F83333C48627D402ABBA59C6740B4A40ABC3200B5D9E13010FB4DD6BB503548C777256E0729905A89BB386459E0B885B6E3017C94BA93C7518F017695F5BF5B99214C8555BDA863FDD11D40053C0D652696286D2BA14D569915E4532132527CE1B88122640AD668A20964476DB20AFCA5CA663C6C17156AB3CC8E4B723B3A5209D2D10767DA52B2443764F91A7F3AABB35137EE18A1F744562E22385716892CA77D518C4BEC578E0F1145B3241C1831BF782C760F9081A1191812790531648954163B10E6A1F02B2B9E17CDD439C6707AAB0DF09236BA33D9B271196A398FF0B2C9521E57B6C8833489C5328F4866C14D2CC1CE037400DC610B28CD99150404A175662102F9617205C1CBC24B5716C7B9B0E8635BF960BE5B632A976156C64078CBB23EB86B7BE9A2D3E12F5B56406CC51796C66A6E871DEB601CC767C0B8E45744346DE60BB160808210506C5779BC275940E000314F30555677689F23009A583CD6F9779C83530E5B2A5A0A771BF1376F0091C627AFECAC104FB2BA251C074E359E5FC44DEC244CCB78423532A7EB27C8313A341DC1431035162838835C85C677A420B67C847DC6605821587C8064E0BC2F4FE6A6B22113E73519125B92B3A66F15564666023EA99273D0D5657CFE1B1B3BBF85039A8189076A3752784E23D8A802023FD0743EB03D989A6968\nsk = 8B78635AC351C94BB6B1D2B861E4914DCBA415F66CCC465B370578E136330A2C5CB0CA2857E1CB733A75E5CC4FCDF7A12580017F1C0FF484401CB23318A98000637B3D065608678103940D8BA75CCBE58206C130ED62BBC0132317B6556A9C2AE8F71A43712002D795CA52007782652D291DFE535F75034B0D624277527A6EF623168AACFBF721A9E8753195B82EB9855467322AAB0AB1701546C470AD139944B6736E1C97C9768370846B45693AAED9C80A7B53B863830DF61FE9600AD5717BFA2C8E59E30C8A20179B27B59341C855677880330AFD1A227B6C6313E17C46E87D109A4AEC4C1795908DB6046598483159907A667378F80BCB84472D5A748043B1BAC10BA5BCF61B07A2B13B12C347F3253E26C25EF0AF6A003A67B0BEE98A7C5A489C9EC9AC1F042C6F2BC7585CB01BB4B55496A93DE903EC974398E277CA7CC25E3265A879420EA0BD8451716AC21F1BB806C12B3488D408EBF18B89B79B1F8C09EACA235F1C165F9504FF987139590F9977513EE037249B4E25E51A296526BA76CD3295895A571CAC279BC65642CBA501C8F131EB52B5C7CB73B17757440B1EE4E9295D404177E542BD744AA587738BFAC0EF3C1FA0F19B0A5C5E28B53C2340C7FA061AD354C85AD26993087B61AC2002795D5ADA7A3E6747AB8110367C824988CA705B818D7A921DBA33371405AD235B18E463A8AC88180C88F071579FA5AB6D904A2F53B03F7C7EC39C473632369F984F8CC66DBD1924206A6376706CA36601BE7B16EDD17E93CB9A0437B3615374329B0712794F5058790D88182BE4863293133A83AA00E07C8E79C6F12C33FA9437ED984A1392903DA89BD43184DB6C8DACE3789AF5CBBA092010B889CA98AF99E5B0B3D4399BF61266E833A55A85E11784708B98EFAB223A27AEA1A16E76A73C2027759FD97A7DB870F9FC79AFC89435D092DB556E0A738C133B259F86C98D78A43A49744F306DA8CC6C9098A5A9CB091C9BAD94970F03B543D669A9AA4944E0C08DDFCC1D7D485FA414B0765A88F175AB6C94B12A2177DCD4998E6AA263EC3FD5BAA2466CA04568869466887F7BCF636C7A1F084277532841F51C3EDC5C1873BCE0F07A8871740C4AA82BB5AB164916082B795EB0660BE32DA9972840C927B7BB4061343D56757258BA4C91624F21DA11CB265B00B9AAFBB1665679C86EABBDA12B74F1C5917101D0EA2BB293C71AD5B556369378A8D5B7297C9731705DD4493DBB173AD01458686A93287B6DA0A6923B913989B69612A915A03A0962379BBC466A03F5517AAA0C0B030C6CA420636B2EE8821916E9C7F2BA228BB2AEABBC292F6C07AD85C6F43CA90D42629759536046394936C3AC5AB979D5CEC1A1CC19B5C17EDB47B0F47F34D616027B29A12725BF14B62FBAC4F2CC6EECE89CA0467D4868C11C17299373687B657D132C55785080F5B87F0E3C1504673825B98E8A0AA35F2C8D84F41B060AB43A930E7BE1C9D04746169BB4AB403ED8C74AACB868B4A93F1DC55144738E2736749AC64170CA7D0F0348A9550EE494466A49617B541068F2C57AD4108AB813DB58526C7647D55C1CB657CCD1143343AAA8421C23BD0C822F763B6A82B7D0041648A143BCC43163992E0D6A8F811B3F0D30807456C84C8BBB008D3B126A31424954CBC6CDBCE91E25B19928F4A41B1371447BA3D173915580BBD7899E9ADCA37B4B5A21E715101717710BC7EEC56EC2E58002127D1898BC55F8A3BE385D607B3BA6561991AC6F0913617303830DA25F0CF0AC14E67ABB8097D17B0AD1EA8C6C267ADF51A15A9A363D7AA5C8EA535A89115C984AC5D6BFA922C6FC44A3B35CB667F939FA6B2676BA212C17BCD25C82E8172F6A7506E8B77D82CB21D7066DA93A7EB3CAB8E881A24C7592BC6B656E459AF33A06FC2846D71221F1DA641004B68BD65DC28A59036CA678508614B15A93E74F89B8AF58200D50E718DAB1C41C4556CD47B43F14092CA47397243983406E12E423233C90CFEB661A32CE65AB464DB58C922BB693F56553961868B064E17A11162A7F0E3AB0B0AA76B8494BA394C902C598C23721DC16C51D46B8258C635763776B922FCAC747985B94C006696F18BA49D0C5EB0525CAD1349745691320969B6BCFF69C30851B41E66AAC3353C6894AB0097B4EC49783CFE4960D61A6F94B317D488D2D04A8B42C7FB7D89D52D89B2DE30336333C50895348870BBC311611F27845C7775128A9CC831966FCCC06292D86B582A18C6AB2FB3CCE03701BA91047227A9FCBC6F16130710756C5DC288BA92402B5B7DC90C39193737C206F3F8230261852F1694258D47C469C7452156E70634384825BC52B03E90720066B609A4102862433E2621987E23AF51121BED807810501200B776F847FF615C0F594420DC29CA6573276559C1C84B0723569DC2A76728909D9D1279A8C240A3979B0B44003687A412389581B8EBF0CCB06C797F7F5815CCBB434132ED5F1340E2C669430B13A709F7D1612AF876454F06CCB7841F84C60F3806D5E423CB34B23BBA90AB630403A46783329707388A1F4232785D4723C993CC62284D0E35242E52CFD6981268B86F598B11472900F83333C48627D402ABBA59C6740B4A40ABC3200B5D9E13010FB4DD6BB503548C777256E0729905A89BB386459E0B885B6E3017C94BA93C7518F017695F5BF5B99214C8555BDA863FDD11D40053C0D652696286D2BA14D569915E4532132527CE1B88122640AD668A20964476DB20AFCA5CA663C6C17156AB3CC8E4B723B3A5209D2D10767DA52B2443764F91A7F3AABB35137EE18A1F744562E22385716892CA77D518C4BEC578E0F1145B3241C1831BF782C760F9081A1191812790531648954163B10E6A1F02B2B9E17CDD439C6707AAB0DF09236BA33D9B271196A398FF0B2C9521E57B6C8833489C5328F4866C14D2CC1CE037400DC610B28CD99150404A175662102F9617205C1CBC24B5716C7B9B0E8635BF960BE5B632A976156C64078CBB23EB86B7BE9A2D3E12F5B56406CC51796C66A6E871DEB601CC767C0B8E45744346DE60BB160808210506C5779BC275940E000314F30555677689F23009A583CD6F9779C83530E5B2A5A0A771BF1376F0091C627AFECAC104FB2BA251C074E359E5FC44DEC244CCB78423532A7EB27C8313A341DC1431035162838835C85C677A420B67C847DC6605821587C8064E0BC2F4FE6A6B22113E73519125B92B3A66F15564666023EA99273D0D5657CFE1B1B3BBF85039A8189076A3752784E23D8A802023FD0743EB03D989A6968672E53B28D579974D268132187E7BD72238639C6F2CA154D50D98C74096EC330BB3EEAC4320F84D09CAD413A7D7C19C27668B2E0E1BBBA2D159B833DB6C0F50A\nencap_coins = 492D4CEA1C6E07D9535AB2FC21D773BEA7EE2C7D66EC80D41191AED269A398D6\nct = B120BE9CEE70428FBFF981405E438803B2AE92C86C036C488F75022ABF077869162F99F0453B76253A7C5BD295D65FFD56B98CF2897C572C31FD0795323BAB383D1FC6E1EC518B365158B8D254FAA66AC91F3431A95F8E2353819DB524A144D6DBEACDB92B05E03E05F2D345D6FB8E2677D5E002C5CCDA1E0728C8B490E51463B39217E7609FF16B9D01302CA2A348F2F75C4E2986FC5BD87DFFF75E7A7E0F7241A7005D02791F043E47B5024FBF2FB71A61E321497F2C1E69BC50CC2762BD4A2D4B7375BEC9382CAE6F9ED64E9479B194BFDA52FE1A7EDC2A19C0410E33829A1C3EBA7B139B971212537FA32CF1F40D0E5F527C72A94F225C5CD1D849102946E5D255268EEE1BFD76542DC0351913970C0E73D5D6AEA204A28695100032C8475831EA43494AFA0C1E0D3A263EC4AB76D1D9B443D31AA9621C2D949CD109C503A739E1FABE154A3D8A070FD3F93020EF69FCD0B3AF9D36B4E1496A0ED3F8910D8CF5F9D9161CD4BEC3D39F29C524D81280CE499C8B0473C1E4A2782024395E402A2911F77C97882D2599B03677F34539DAD7ACA4F171FB882B9D89082286C1761679AAE31AEAB83F22180B9EC69DCF22AC8FB8E81D100768BD9C386933C8850BEE094EA2273CFC49C61760C97DCAAC17ACA99D3DCF7867836482CAFE94936575E426E0E804DC05CA020D17D2F5E6E144E647E87C186A40625C62EC8D711FCB27859F90FD2D0C0BF6A23F78F28F7FBE97CB15B7020AA9E62F19D25684C5935D1A4C0938CAE5C26BF27ABF055E66D84D24C28FF8374926C6238668111A0B1F49DA2D78E8EFF3A79EF3BFE448695BA9978BB6B4A091472CADEB7AEC0E6452165E", + "7605EE7FB56970F9DFE8B72784EEEBBD456B76BC175268434ECFA8044A4991CD2826BA78B7083B7A89B13510440753737C392C197EBAB2D69D6040767CD83EEF6108DBBD16D1879C518351843C057F78D7684B824791C867C219D4932CE8FAD6DCE8E0F91E1EC5A6F547977CEF2A1FBCB8D7AC072024CCB261ABFF365B3F2E7C703854E246746BE3D6FAF2208FD8895288EFE376504ECA189E352DDB20C2D8648EEFD779931BAAADE4C823EC5137FF4AA7F07848E8BF9E8B2A8B0646CD6FE8D0FC061CFC112844F5E8476820C321BB502E02F29931F0271AEE6E1FF73CE57E8C61814A450CCBCE73A8C345D7D554EC58FA13BB53E473BBAEE3048C16AE4EC0B1F7C99C2D00768931D8A1C0D4A7D9D9950A5F044940D9283E62F31E9B6B0F9119E929E682793FC5ABF105E5F4DAA8968DD9CC25CB02456BBDBAF297B5743D95BC7CA68CB323D796906BC35FC2A49CB3435D79664E9F350840225CC0CEB96431795F6646E2A3AA9D47ECB183134260842C68A63C78E9E3BE85031D2E8DBA9E871C30E932BC1C017428FDFE1DDC7D20B7A542022B51F50DF331764C1AD7BA6C3F44C840CDCBA29B2D84FBB314F2E8F2D98CA3D176D99A335011D2331259AB75658E591A33DD12CAC0301A584F6D455F3988D3764022014A57DE4C2DDD62A8D5A216A7\nss = 9BA312722B5D9586905E6B8B5F27CE6EA6437EA5116EDD119AFB92C22EC71359\n\ncount = 34\nkeypair_coins = D76B3573F596EB286AB5231FEEC7499686B13021BE36CB126C7EBEB9D7030DAFA8AC144DFDA421DE1A7ADDC92ADB79BBFA9657F3DC4B78A7335F29DB87B290D5\npk = 192042D43A4271E44D1546306137A4427130C86A2025BCC297EB36D3C44E7CD4B0B1C22005FA702AC12569BCCCCAF6AC9256A1693C8B677C5CA243B9C8556CB3A268165596FD0470400CCF5E3B56714792F7A87B9E03019751425695AD70E4CE0B2769571901C6C2003B58152FA9757922BD28A094771B0CB1DCC73741B14B402E8AB86DC0F647525C131E9AA1A9729075EBB3CDEA4D31F6C3B23A5BCBF74A3C653D4C015CE5F65FD1042A137453462B8710704BEA463204C463273BB71056378850AD28F37EDE664E38514DD735BF9AB9B95D367C54D84FF085650AD33EBBC982A329C6FE3A516EF387BD0A0417C2655A5476F51A68CBDB4AEBC53F00C11E78E5BA6692A516C076330C20D0A09F167BBFE1C956A619825A8305D1AA9AC5736E6D24145924B2409A8688B41F33A181A9E4858325140A797F2BA81D50F21AF88650CD0BA8E662077708551A947C97C0A3355852A77576CA5B054D3B0B9FD973DADA618BD02FFF1CB59EB56B12C71B24BB1F02E27282D21281493AC7D07A20B124AAC30B7BCB8C2FF24B2C927D3D62ADE0357BBF7C1281FC94DA2B21D10A5E5EE07A3FD9CF93E34615B871C8DA7DB5441020D0522C12711E1963BE54739BD43949999083115988A09C6020CA88124B35C34EBFB0743B494B2666CCF5B5235968275FABCF9A054EF92833D8EC816D68C07FC53634A02CA192A411C87DD1F17FFEA094B6868638716CF593B33483591E4049E4E7C65C8618B242B17D6021BF0A70C7C59BC81C34F5441B063B9A1D95481E6529602B95F874BF1C649D95A072E70A52E9252E1DD1BCCDF64332345355F7CC48EB7DD1AA2F2C31AD1FD58B8B3A711D113C270A90AA2C5C79958F3907AE3BA071AA6144B88BA6C5575BDCF5331729A65D8ACF3DB97ACA4191B72A2BC1433FB3483EFFF09698C291DD868275DC5A86D06D97305BA596515E434A8D956B2B73B3C00821BA055AA7541E4F35896113ACFD9320FA91585F3212CFD5B023A77D7C5C0CEB746723C2C7D7417BFB740E4BFB2299B29F987698EDFC1B8D7B33DE2C80D0CBCB44F05B1DDBC667005B6E4335751AC281022CBCFAC0A55226FA69CFF845007B9A16D2B6BAB3135B325B12C263A81FD423120A6FA639910159B693406411A289863736557A028BBAA23E0C984F04543E61916D9BCEB4F64FD48823A4B13E4F83B43D443F62ECC72FD304F71772CCE318C1DA9A57A67502A1119313B93C4A66D03C2316C2CC5C2285B1E80C413B2F29C447DC975923D9100BEC9DB958ACD7850AB0777D82814929121BB87A6F4F07880510331EE6171797BDF23850D5FC1802E432B2F51B3CBC37631C9729892B6A09BAF6717E6EC39EC2B3489B33BAF257C35B9CBEFFDC1A1334380FC35DF386116BAA9BAD3A0A8381C4FDFC4B1B98836F23AB923175EAF72C59D9C500E10944FB0FD701BA5142B3CC358BFAF2732D643D0B135C8F991B0C73789C465A7E1B3EA6804B5AB9AB2E42CA1E91158019306855A5767893BCD17E92A41470D721F6432448FBC370C64C3E330D83987F3A9479F000C75320A296393E253A68E0E1C05969784F5612ADBAA2662459B09638202B74D8D5CBD2B01A915AB2AD06B08670546D8B76877B8B2EAA1ABB3132E55D8BD5B08678BFA4243430BB4D059B58A4B0CF0FD26E\nsk = BDDB6A1BB704F8B530860B719752402098C84AE4809B01C8EC7583A66A3F4BC290BF2173ABB41868225606D54991F5B547C2254C74391717045997A57BA534A97B3605E1AD9F7C6446AC08BBFB1999179BB8F67731A63CE1C717F30B57FD17BC00605E8E14127EB0C26E324AABD45138484A51A15DD2464440178CA7E966D4D58383F6BF9BB2A971729074781A8D978965F9A51EB2729BA8C308474D56089F2CC869B523C41C409507A671F0F3621E057662454D49C49A398343D64CCA74B7822D773373D5185426B7B3951256154A7B78CB1F5049DF0371B840AB21B83944FB383CC84AD9E24FF42B2731276C1D26B6120534438B029C4AC7C0739453C2860D32ACD75229C63A23A7201C303032BC0A410319035D38A3C9802D41A56A8C6C2496DB10441A2BCD13A81F90CDA2564CC9E4020A47595A30994888B383E996115AA282EAC3E3594447110C2D07774F9312D796C6B74A7634B6C0DA2291458A35D3022BEE048483461CFEB152E1D2CA9195AFD1F9AA82131804D35E739299C539B913C54A0C58683259B3137AA464B9C6E03B0EB751999B6C5354D6171C78CBBEF1B456EC4C88199764A5761D18C0849C1B0A263EA401B86CBA549C712E4A251830F7B6EE16B2BFABCA3CE018C3833BB881385C272DEE151AC35A2C9561B3C1266855219B0C6B485E669FCBC49B24C50C6C3237AA6B116085085405115E0422D956BEAFF9360B58BF915654B9B887AD9733F425A5C6990B3F0223D8099BC0E95C6A5702CF5667209ACE08FB4697D02DC45CACA8074185F54EC4641B35BACD2F0B770FC215FDC171C98BAA7AB6C0450BA6E47A838575A528F7BE221C3C91F02734269A9425A2EDB76CB6D077ED76040A716D39C9C87A58AD8867954C752367A905AA158E0A9019DDA50A6213C260F7BD8A0A6E8CF581FB74CB17283F3A1A8AA9A0418C79A948199365A6A1045238104280AC704B33791E156A2377BC83E9B9C86D0A3D2AA3287272BE6431BB4E598232312D10D03BCB13B4D838A9A624566C6A25FA44A0934AB6CC333E6D52AF3EC26A6FB97615CC3C77102D1A315486BC69C555A3E8271660222A406022E8D97251308A90A15F748153C1168CB133593C1641E164C8A06CC008059C55449413C2B28667B99122AC42B8BFFBC15FE395003249C676DB7589D2896E7405BEF8AC510782FF204454C8A0390C332CEB7A5A3123EB1A1AD0470096058358BA779DF70106E24990DA77AAF09705110993F16A2320A941D8865B387236CB8528BABBF2D9196C15898BF71040D3BA500CB7B1AC85DF11003A058D838C2652D4577306023C756AE9715136E91B20699FEF425E48953FECE15BAF27489D929876803EB0B5764E6338BF5970C2F35D1E815BB5B0B1BAB630138859B729923343C3D24922A8522E38E19868B8A4585ACF14B795FF3A609D93B1A5CCAB08F877C5B71EA78C2819113FB3632D5D995B02926663F2AB8E3A73DD6AB93503192E0243F2593618E3A809684BB6A31674E77802828FEFEA3A50FCAEB1088F7EDC036CB84329C988D965071E97C1311643BB1CA2B43CC57C84CD5EA9109AE36DE2801CBDCA3BB6F977959578954AC17D303841D5726631663F12816EDAB5192042D43A4271E44D1546306137A4427130C86A2025BCC297EB36D3C44E7CD4B0B1C22005FA702AC12569BCCCCAF6AC9256A1693C8B677C5CA243B9C8556CB3A268165596FD0470400CCF5E3B56714792F7A87B9E03019751425695AD70E4CE0B2769571901C6C2003B58152FA9757922BD28A094771B0CB1DCC73741B14B402E8AB86DC0F647525C131E9AA1A9729075EBB3CDEA4D31F6C3B23A5BCBF74A3C653D4C015CE5F65FD1042A137453462B8710704BEA463204C463273BB71056378850AD28F37EDE664E38514DD735BF9AB9B95D367C54D84FF085650AD33EBBC982A329C6FE3A516EF387BD0A0417C2655A5476F51A68CBDB4AEBC53F00C11E78E5BA6692A516C076330C20D0A09F167BBFE1C956A619825A8305D1AA9AC5736E6D24145924B2409A8688B41F33A181A9E4858325140A797F2BA81D50F21AF88650CD0BA8E662077708551A947C97C0A3355852A77576CA5B054D3B0B9FD973DADA618BD02FFF1CB59EB56B12C71B24BB1F02E27282D21281493AC7D07A20B124AAC30B7BCB8C2FF24B2C927D3D62ADE0357BBF7C1281FC94DA2B21D10A5E5EE07A3FD9CF93E34615B871C8DA7DB5441020D0522C12711E1963BE54739BD43949999083115988A09C6020CA88124B35C34EBFB0743B494B2666CCF5B5235968275FABCF9A054EF92833D8EC816D68C07FC53634A02CA192A411C87DD1F17FFEA094B6868638716CF593B33483591E4049E4E7C65C8618B242B17D6021BF0A70C7C59BC81C34F5441B063B9A1D95481E6529602B95F874BF1C649D95A072E70A52E9252E1DD1BCCDF64332345355F7CC48EB7DD1AA2F2C31AD1FD58B8B3A711D113C270A90AA2C5C79958F3907AE3BA071AA6144B88BA6C5575BDCF5331729A65D8ACF3DB97ACA4191B72A2BC1433FB3483EFFF09698C291DD868275DC5A86D06D97305BA596515E434A8D956B2B73B3C00821BA055AA7541E4F35896113ACFD9320FA91585F3212CFD5B023A77D7C5C0CEB746723C2C7D7417BFB740E4BFB2299B29F987698EDFC1B8D7B33DE2C80D0CBCB44F05B1DDBC667005B6E4335751AC281022CBCFAC0A55226FA69CFF845007B9A16D2B6BAB3135B325B12C263A81FD423120A6FA639910159B693406411A289863736557A028BBAA23E0C984F04543E61916D9BCEB4F64FD48823A4B13E4F83B43D443F62ECC72FD304F71772CCE318C1DA9A57A67502A1119313B93C4A66D03C2316C2CC5C2285B1E80C413B2F29C447DC975923D9100BEC9DB958ACD7850AB0777D82814929121BB87A6F4F07880510331EE6171797BDF23850D5FC1802E432B2F51B3CBC37631C9729892B6A09BAF6717E6EC39EC2B3489B33BAF257C35B9CBEFFDC1A1334380FC35DF386116BAA9BAD3A0A8381C4FDFC4B1B98836F23AB923175EAF72C59D9C500E10944FB0FD701BA5142B3CC358BFAF2732D643D0B135C8F991B0C73789C465A7E1B3EA6804B5AB9AB2E42CA1E91158019306855A5767893BCD17E92A41470D721F6432448FBC370C64C3E330D83987F3A9479F000C75320A296393E253A68E0E1C05969784F5612ADBAA2662459B09638202B74D8D5CBD2B01A915AB2AD06B08670546D8B76877B8B2EAA1ABB3", + "132E55D8BD5B08678BFA4243430BB4D059B58A4B0CF0FD26EB86D5B13BB8B72A9FB81245AB712F0D10F0E2E09B222143C420E3F2C3ACEA27BA8AC144DFDA421DE1A7ADDC92ADB79BBFA9657F3DC4B78A7335F29DB87B290D5\nencap_coins = A0CAA815DEB43343D4C18FBE19B107D20E36F89AC9D721EE8E82CCA43F9A28B7\nct = FDA5B60A6E668CE106D03B3B1E9BF6339F79D7E59F05B0F7C32A965AF7E8876F54F92E54FC1A0C31A38823382B85AC21D1D04134585A80A0BA6F21D62050DE1179DB4BBCB5CBE83D206DB03541FAE0A61ED487342467F7944AC63866278EEBF909949B0FF62D49F542B1AE77E0A09085891DDC23FE59156F55987D6956914A0F0F49E0F3CB8DAC9BEFB9726FD2F7E2BE314188CF5F2D12666119A337AE58DA27FA7AD11F7180E64A09DD70F69D27A23C41B6EBC6E23A9BE481D888BF6D02BF34304B40D728C972BC0BE7A64D1D8D7745756189A6A9572FACDC0F2ED7B8772242FB7E982E942E155578D82E5D09C913E349BD8CB34778BE0887E6C1A47176869BAA20D69D8F9359B279916BAD52D20EE4E4BEC94C3B7BC23CCE244C61512E543BA2DBDB8236801894840226C4E61B2DC7AB60020188AA33929E390D6A78AB4996D510F8964BB51ED23898803251BEBC8D04A51D219A4C6F563F44CA8FE995D35610480146A3F2B6498CBD9A30B8893D9654A58D94B4B987EB2BDFE432593BE78EEE0C0754BC8F100A1468A7D452D7F84ABBEA688B79F76DC115B87C72DF08E00961962CF2853169AF012E4B20D1DD6E9A71CBE7E95BDF314DAAA4F7CC4010032734CCF92398FDC5F762D663E191CF10F9938A838AC8A63E0D725848A5B3B8F07C5FFAF9EF8492A9441699592B62B7281CF6704615D07129F0A680DF01EA019F27792A7BDB6AB12C275E38C596A85C00A877F3DA2F1808E2AD17F41ECEBBA6F69A14C7328E9E875AC1840E2F3F0FC6347D160118ED6E8601FE0AE127C7B2369ECF02B72B20C6939931302BA97823B31273413897AE04CE3920E18686AE9A1D1E95FAF0FE414A85B2155DB6102867D9E5B578B2B502641163BAE8FD5AE20237F2F34337B107AD4457283F4800778C51D0183094419ABED7D3683613B4DF1DE5C1BB9CF1B2789612A35F29814FB79D1495E59EF16651C6DE6A81D48BBB8AEC3D2EF7DD0B1C25459AB91D6BF909E6B5F27937B4DC02427DCC09090AF0FFAF84EC46DDACC88F19A70C87D1D1FE1B666776B7E5774FFC81B688007439B421D9773A8CEFD589EF6EB05B2B91ACAB04AFDAB5D54BC94BEA5941DBCA23BFFFCE4ADE3FE9FD5FEA4F9A852025D580F5A6BE9DDB2C3673573FD813D246ACC374D436815925FDB09CCF4155DC08ED6629E3599300BF9DEAFB77DBAD021731B2FE9747098A8D7DB02E8A36B4711205EB1B2B49FC3E9620BC915C82BB232BBE23D36D697B8B552559594D42B86A51EA931992E0D3D2DB4968473CBA62BB3C41FEAFAD179B3632BC2CC45AC3D68D015BAEB072D5A13A8413680358C5F4E2F4ACA9BAD110F57A279BFCE32DB5BDC9B7979888625618AD4BA10F07704AF583B08BD86EA8462E457C4F7FA8E0B528E405D3104AAC024C3A3E6462C05F78DF7C7A5629726419A839B15839EC763BAE5488B608C0CEB992E49454403020544982B1E4447522E8BA002AB2A9455371CC0F6C4C46BEA05536B0CB5370FF6BF13272708EB5826C1C6F550786\nss = 2E7A7F18CC02E426EED8C39C07743B71B2559C0739A69B3FA5146C037BE36A51\n\ncount = 35\nkeypair_coins = B87439FDE81C9E39EEBE7CF741C685785532C1DD23E8EF868B9CE7A541010F3D6EDA18027C6709111F1987E026A481D46003AEAF2FF23B675BC349C749F300C5\npk = 38E84DF3C6A2DC2389897C3745183E08C1681B5B9F57C16AA2C12778528510868964122C1747662CF97D8B0353BF23693A70B3B2A7C8CD5C5508A227261CB7C3022058E318D3DC39E320770724351AD78010EB423FFBAE6714999226895AC23735A9119622BBC0811516D617353C7F769628925BBD49629FE0AA333D1909A16C5C27604B7DB0B4E602AB27987DF23C3718630BA4C2846444B83FE914D840CC8ED79A85B645A32809CA069FFBB8B3201131CB129DB9282B73174F8D4A14A37393552B109D2271EDDA8D968AC3FF67AA3374A2355C2EC895441873325DB71C91020E91F19347D965F1410F606862F69643216B869673B5A70583FD1218639B5036CC11D051A13D219F3969C817326D2B60BA5C13CD8CBC9313AAB478833D73716A2A48438FC529084C241BCB4FD67179D1F5494B4BAC2B05A5767B9647EC8829A500D1365BCA7B8CE7B75BFEA0C68F8A28EDB7BC4A3817C0D32C4E10169832B9ABE271CB0B473AAC2C3DD39CE895551A297A61F47162D97C41F051D48B62E5A8882DA62FCEE16EACFB89B98A12AB626E69D77CEB3B6B02878CE346AE5CF754C3F6097E0B5EB7AC80B9B8CCD9418F63E545D01C7D17A71E45EA3A6D927484D4976CA936FE392CF2052535C201DE9464008C932617CAD94085C5816AA41973A8D21610430AC4B3080DD480169258E65B53E340759BFB70D68B15B868C4098847901A6B255938ECD15D5EA94232B2971E3BCD56205FC6F0425F50AB880821F56C7B25F51F2412CD7FA023852CAD04F2704D4103D4362E965473ADD3563D9B36E5097C982506865454BA30AF132BC17C807309723847257C697C525E27CC570A88A1688134F4193DB67EFF018F54751E578483A77A119210106FD03066C403B3303CE54B39493323C4334D4A7A20AAE04D8EF529A15CB7D0900FBC4236C717310246C9CBA14D6874BEAC61B566593B5EC5887272B914EA655D254D595824288A666F10C7DA583F933052F43B0B0FA59248B0584F193AD548A12A845FDF14A73A0A37ADFB4D1845AFE6B56EA50B00A5503CB542C254A26F456AA3286B0126350272638EF0B4A3ABC56FC8D0AEA2F7396D97B64C56817D58C32103996DB88345D377FB7B2644FC99A24258C50730045B897AC908F7FCCB81BC2B51C286899C8C499C1757C6B0A6AC0A8482159D564CDB746037A1224CA72177F79ED19A398040426664ABFBBB7B7BA99906E7982B665A551881E0F02A97409A3E2ACD37FA96A4F9293F786A11B21E1F0BB22CF400DA06081BF68111A9BB64469487D4CBC10578106B381B8B054EE29339E1830DD613E19A9BAF9A81C2B9AD1D121A47D40234BC9D4B79C2F5F165BAB5A2DB68C59C0737E0E4786990A92476AEA44105F3C77FEEFC342B458E4310B9B110A8B2C01593B512F069944828A3F6A219354BBDBB1C344F24AA0784160CA704BFD89C4933B6123C4434CB9A6CE16D3F042F1FC571DB728119F6A33E4A9F6981193D60BE6AB916818B8E1FF9A1D1A59DE8824F808043A1949A5520B675D8834EF65C1D47AFDE2710C6B63998D43AB47A681F0A856D166C24494081E076D5FC05B541145D3155E232A5AF0AB96ECC0B09C2C41E285D350500A4F8BB32E99B4B05D558EA7918A7881BCF516457AD2C3AB72EF2E04E3A4ACB85A987C2\nsk = C6389F081CA0932AB66F658046C1278B38BC42B5C4E1A7C7A51B09D8A159773B67AAE1C2AA8666000C6E6A014B5C0369DFF147688AC6FD48C73D783E3025C92D782A479ACBDE8A7548384B763A868C46178345A773A9852016B9FE765DB0BBABA5751E8056B7564C53FEE8040D3C0125115D323C62A3F0A2B518330B6CC4ABCA84F62C792D07C1E1A0BBBD7C5B9A698CB683981F8828EE69912600311A0281DBF9C6C9E69DAA26A446D136E8B0310F236D7A5A49B2BC616FD346C3462AB09544998C8D5EF641E7B48C35BA7A68F25414F703FB02B501C69C58A9B798C8C76923272ED9BF432208BAB30F2DB45E1CDC56F6EC11792A33EC1A62B3FC992441527E63328A46003DB49B7DC07F73F705CA0220DE94BEA4967213D612B5A03B2C16A9BD4C66E0AC893263169A87AEAE67843944628E6374B5518BF40919840B8E6C64172BE3A35EE5A29777C035463380203072EA50E7DAA4F906D01C502560621137B91649C97417CC2D3E1677006226D4621073CB1AA213525199BBBFA78F1899A53CB2B8D00819869867A41B2F48C615EFE2C8DA15A4E6965BEF0C4207A499A2156EBFB611478182D85A71C9F8776D28051D1A6E4A104E54615992E0595CA9B0CB2A0AB0159575863F3145B3401498949502B2EA4392C77728215F8700C93F5846A1A8126EB6B72248BD1047BBE62AA58737268428509E53575F945735E75B42DB2BA2F21B24C990A847241D2C3533B10D50847C85D98143FBB2EB5138ACCB055A8B8BCEC8AFD7B5697306165AF982190821A14301EF0A90C3D829ED9035430725A99C67745CA415600D10D7C29B228998D7402EFC1F0D0476C4D74C34754AF9A1AA1213C9A0198065378DE2D023EB73B3A4BC5801D98213AB7040CB63318B8395DBAD6C7C604760CA679B301AB08EF1A948A5A83DEBB39651310B368C736A56977F78AF0916364F278A4E3973374213F7A28BA70296D1916FC65CAD3B33C4E1597F818CBC489BA970680999C373DBC246740C07D97C5E1EA5AA1D627757F4467E84AB9C5BAFD9BA484F1212706788CF5AC1829C7FF0A66F26C30AAE327BB7E167BDE95FB5829340B187162A5FDE3A7CC6A0A05FDB6F26902BDB0C6C4F75692E67AB1C8B1B46A40E53FC901DD892A3E612AFD1CB2CD52BC5B0C3191137E602B0A5872D3A961EF7168990B634F438B744375D75995943CAAA47E3CC5DC634432B6CF2DB29B637A5E22559A59971BE46004FE2A40F7C330610377A5B0EACF79D85F3C86223A4C90C31C2495314748601431FA1F49ABFF2575410AF33F7367C5540084B75D6736ECAA010290839EE2456EE16BBCB57C601F26AA104916254A689C24CAE98296E4BCEF8770ED7485511F55A46C75592C88D6F76005356C397EB1E61CAA04BF55A05C8409E644055759A7E60C1C8210221FB97780B92C2C8AAFB6B94C259A9CE6291E18A801A82456B93C221A625129A1720328F11574A5C35C3650A7B57619C61F47ED6319329F118F4C31358A26A7E9191CAB61012A71B27B47FA13CB0B2C959D913A2F4BBB3D106AB695A4C13D41256A0B442F0428DE78F90609A11B8CBB475083712539E1AB034903C30F6B73BB8229ED50F901B142A597E7FE48B38E84DF3C6A2DC2389897C3745183E08C1681B5B9F57C16AA2C12778528510868964122C1747662CF97D8B0353BF23693A70B3B2A7C8CD5C5508A227261CB7C3022058E318D3DC39E320770724351AD78010EB423FFBAE6714999226895AC23735A9119622BBC0811516D617353C7F769628925BBD49629FE0AA333D1909A16C5C27604B7DB0B4E602AB27987DF23C3718630BA4C2846444B83FE914D840CC8ED79A85B645A32809CA069FFBB8B3201131CB129DB9282B73174F8D4A14A37393552B109D2271EDDA8D968AC3FF67AA3374A2355C2EC895441873325DB71C91020E91F19347D965F1410F606862F69643216B869673B5A70583FD1218639B5036CC11D051A13D219F3969C817326D2B60BA5C13CD8CBC9313AAB478833D73716A2A48438FC529084C241BCB4FD67179D1F5494B4BAC2B05A5767B9647EC8829A500D1365BCA7B8CE7B75BFEA0C68F8A28EDB7BC4A3817C0D32C4E10169832B9ABE271CB0B473AAC2C3DD39CE895551A297A61F47162D97C41F051D48B62E5A8882DA62FCEE16EACFB89B98A12AB626E69D77CEB3B6B02878CE346AE5CF754C3F6097E0B5EB7A", + "C80B9B8CCD9418F63E545D01C7D17A71E45EA3A6D927484D4976CA936FE392CF2052535C201DE9464008C932617CAD94085C5816AA41973A8D21610430AC4B3080DD480169258E65B53E340759BFB70D68B15B868C4098847901A6B255938ECD15D5EA94232B2971E3BCD56205FC6F0425F50AB880821F56C7B25F51F2412CD7FA023852CAD04F2704D4103D4362E965473ADD3563D9B36E5097C982506865454BA30AF132BC17C807309723847257C697C525E27CC570A88A1688134F4193DB67EFF018F54751E578483A77A119210106FD03066C403B3303CE54B39493323C4334D4A7A20AAE04D8EF529A15CB7D0900FBC4236C717310246C9CBA14D6874BEAC61B566593B5EC5887272B914EA655D254D595824288A666F10C7DA583F933052F43B0B0FA59248B0584F193AD548A12A845FDF14A73A0A37ADFB4D1845AFE6B56EA50B00A5503CB542C254A26F456AA3286B0126350272638EF0B4A3ABC56FC8D0AEA2F7396D97B64C56817D58C32103996DB88345D377FB7B2644FC99A24258C50730045B897AC908F7FCCB81BC2B51C286899C8C499C1757C6B0A6AC0A8482159D564CDB746037A1224CA72177F79ED19A398040426664ABFBBB7B7BA99906E7982B665A551881E0F02A97409A3E2ACD37FA96A4F9293F786A11B21E1F0BB22CF400DA06081BF68111A9BB64469487D4CBC10578106B381B8B054EE29339E1830DD613E19A9BAF9A81C2B9AD1D121A47D40234BC9D4B79C2F5F165BAB5A2DB68C59C0737E0E4786990A92476AEA44105F3C77FEEFC342B458E4310B9B110A8B2C01593B512F069944828A3F6A219354BBDBB1C344F24AA0784160CA704BFD89C4933B6123C4434CB9A6CE16D3F042F1FC571DB728119F6A33E4A9F6981193D60BE6AB916818B8E1FF9A1D1A59DE8824F808043A1949A5520B675D8834EF65C1D47AFDE2710C6B63998D43AB47A681F0A856D166C24494081E076D5FC05B541145D3155E232A5AF0AB96ECC0B09C2C41E285D350500A4F8BB32E99B4B05D558EA7918A7881BCF516457AD2C3AB72EF2E04E3A4ACB85A987C285441CBD71C18717E9DE7359B920A9A3BB7F32E619806F4E4718C585085BE6246EDA18027C6709111F1987E026A481D46003AEAF2FF23B675BC349C749F300C5\nencap_coins = 281023B82D26FA61F9A306CCE0FA00037556C9A0B597FC734AB2FA2A146C1661\nct = 60E9E0FF53F5DA1D972FE25BC5650B6C8FFEB1AF913E6B891D1B906AFC407BEF8BE4C27A12B20D6B639A241138F9F8B1F30FE71E2811D37C8905EEFCCC01C05AFC6361D89D49F765F58C51D666C0CEEB4C608AA1E8E72290B3EC88751F27E986FE2D7EE2E88EACD8C2115686081575A2B0A2607B179E4809C74A76369964CC46A4A2A063AD7767011D27F5BC6A05C97C843495E4FEB0A31BEA9F799C6BE75EE4B6F3D8CDDF220052D6CBDA9C9CD88E45E11A03429C1BB5874A7B10B370C87B150A5D35558B1BA21399F5C24F3FD5205B21F5406FDEA8C1D5FFFBBCD2971675322EAB4C6EA725C45DBDBE6EC3011237D694DB2B069F216BD89CE1B7BD57CE2032E54BE69C1E64D212968252A3218E39F54AE4FE1CFEDEA095720192CADE296C1AD725E098AE6CC59D8CCAFFDB71B718AC28CCAB1727E84C1DD19E1D15A5232CA93E890A46FDF3ADB467A2FF1AD30C820B8FF93D46792946A342EB8D652CED69E9001E078DA5FD361FF21C1A4394ABE1CADCCD5DA429F8627C23585E802378357A3A665A9050A66FC227229DD16D80AD61F34F3310A486F3FAA7D70686AF7203346AC6BAE9C01E4669496C343AA9EA771199E876604BA8AFEA562DA9FE5028AE4FE4D40A37ACC58BCC2F199313381E4F531999E975D4E19FB729E908B617EF31DE62EA31DE31BB8219EA57BD702C85F3D398EEDAD126A73458395B1F5CA4A7863543611D1185328F1EA81CD4D3B60F44523211E70899D57FF36FC206D9D70163C38E90D6B0286AFDC9BF829A1EE1DA780908FD010B0462427E9CEAD81063228167BC2A04A04651700F9AAE81DB1F52D71EDBD3D2B6340746B6A732F76363607D789D822E6C00A36B9901853C630A2F0A3E90D5C1F6EA64ADA06E2BBBBC892E1E83050FACFD96F13B1382D790E04964493C757AA79C4C1C9C1DD20B390DEEB74AC39F734842D8935A4C3D06351303C449C2A719D0718612E15716E37CC7821E91BF4F08C9BC23EF1B5CF8FA90B622B7B160018A704C34FDEF80B7D7ACCA250B3D5F93EF1CE3E754F270854CEF93E8AD7E211E3D7012B62C40601112A75D8A4A101D2AD6FB9EBEFC8D098CD0F69AF5AA1E16F6960CA16C31D42645EC860A98AE64084855BB812D63571DD1EB3D35DCC657C742B0B8D6643EBBE4977FAD2006D77A16402C89AD825E93FCD9C099E30F07ECBF6597B146FB75BE49331C19936D6BAB39F67C1F684C11314FDAB1BEFDB1763517FAA1B40B950647FCE3050A4283D4BA22C94C56618C01EC65E872C8BC71F4A43A2AEA2617A7CEECB910E75D28543B2B9F29B17F042F203F44DA4F67A1CE54B282AC9D533785FA71840743126F768AFBBCAFA1D969F3D25DB643544AE4C2592C01B2C9338F051E53C77E1701429CAB6F34BA24771581A820A1B1E90283EFB57C17F7F8C290127575594C07DA50779D19382249DFAB97439DEC0D91F7609EDCDEF607CD7EC972604DF7B68F222756FEE09D233977ADC32415A105628EDB49786CBB5EE0E91C3BD722DE69ACF78E764DB2F0\nss = 034B0A42ECB7B7A8A0CEB8FDB13F4A1EA0B3305C942EBFD69F0D9D9A9A88C91A\n\ncount = 36\nkeypair_coins = 056661B38038DA4FDD7426F32A81576C73ED84843B305168A374F934E27A4E1BBA2DE5DD570E201786CBFD5D27020B649B011455909AAF0AD6D92C1B4BB1F8DB\npk = BE390596BAB505E51B3FC147AF616E0F94506635A758964B3E7CC067B80827DB21DC87450FE1415EE41FCA8A2B56B355FFF13616622FD1A19A7CD98F5084610D1AC9F1B8A6E78CAD9281A0AFA5A7C2A9A87916710EC9C5B3544B76B4808D01399F219B745962536026C79841F11961B63C10C99074EDBCB4ED786F7E8C3826609533E5BB4CB80F3E515299EB757C217DA2806D26664F154C0CC2B4A644B224933502ADF5A66F5B54CD45A71589219AAC65BE0623CF5B4C0DF17E72CAB64B91BFBD903D75E164E2A0C9E2C997F36A0B432177DE617F5E6746BD82984BB9375B4A0A12E96D06045A3A984667D03D8C08CD980B59CB2B0983B13F9C53790FD43653E78255882F9B0C980EF6B062789332A6B67B2B78E9E370B78181531846B9980A8AF905FEF403F47B891A6B440EE71CC5D6BF3BA5C7B087A31123AB61EC9F2D0C89E1EAA7DAC36613A15F147938D32673402164B001975D9C4A8BA5CE84D20B47F26EBA5909183C6FE1343D062389B9B99CEDD21E30D5841FB68F3450A47F4C4BE5E8C413C37EA4D5AD629141D7430938158CD04492BBA8AEDF7477ED13A0B97C8217A300DFCB22DE05449547626D21409F491098162D7AB477E3EBAF0E15124F449F08E47D8EC6847A0AC839BC5D237B3D509A8B5C44C8FB6705A467A3D4D9102FF2B6ED976CA9D856E9F257D5D586C7D8A4C2617DCA73AAA65719A21538D9E6997C5637DF8C5A2AB98A169A5BA8F708BBA55F2C0A9463C9B4EF0C9822FA64ECC72C8BDA4030157BDE5073FAE6A6E6F036121125DFC5A9DCA1504A1225E6DA9DB4D0665F6413386153AE25BE78B3410369BBDBD84A86C6C7BC924DD70005BEC0C54E07B4ADFA2DAEB8265DD98BCB8968A2F683A3B07633AAA0290550665C01FDEB22398ABA31140FA7494FD6A0087194673F51AC7D759D649A2FA4D7520FC67138F445287B681F5C3D1678B497129BC6624163E3515C8381E85C173D6A4CC0038DFC2064A213C557931E2E7138FA1A6BC3EABA08965BD803BD5759332CB1BBC4C41337BCCCA153905990970C261CF63A53204B6F8CB228D4234F08837425A82F1DA9BE43775DF88A20A0381F70044C76B3524B437CF365CB131BAA14EA6F24502336762C8E126AFD009E1997B8B3BC20C246070DF7B33BC9A7BDFA8CCD576925968915F186CA4A5A4934528DC75282E246B0824EF7118D39DC1F07449A218836D47CBB7365B677EC7D6222ABAF33068B5730D9E674CC008125226CBC5382A76A9823DB1B42976C5C90C23BC02EB7B874DFF93699E6035A838B22A7126AA42D62682505F9BBC77143DCA061F5C38E99652FC2E28E30CA8D62127AF02186BD9C95602992E20BAA636AB050AB870B11C52DA19B3A68B7A07A8CFBE7BB016A2537E50464265FF6F065D7A8C30F659998A35D79032F887B4629D07BB2DC895F09AC0387CCA9C5CD1AEBC08A687798721F24CA43C2C5AD42D1B6641838EFC2A72EF210BAD10218846F25DA336A4C00C4A29EAC8A608F2261B8C76B18F10B7ABA755771376DC7B876152F9FBA5370262919511D4AD50D76AA5CD6566C29225DABB3B668608D9DE5BAC08320CFC3570A0AC8DEB4BBF3D941F9325AAF546FC368AF005CAAB7AC6A7DD70D90506DDBB5F53A83079ABA0927BD52A68E278D3F01AC19EBA6BD\nsk = F75196A57024BE817EDC544DBD552F6B42BA121C2B8EA95E55017856A10C5905A8BB2590E63B449364802C6B438FC19EEFC875017ACF652A8F0D6AB0F7F5ACA1F1833ED3551D37419D906D2B55123EC14D5F109ABCD9382E990628BB30D882CCA8665957346C3A08553C870D32F77E66348CA9DC321960B7D50B09DE64178411439C021899F2B8C583762043A4508C3160544ED2264735C600A6AB43C8515532130583298A11450AE3B7C99FF559A1D33115DC2D2489934518BD52FBA1CB9A019D918464B59CC90941599253957364DCCA9F95A08035F8BE5BD36DB6B19F1F191A6E4B7FCD493B7A41C90BC76FE882AA0F3B39B6F454785C5DD1D106C80960BBE5846D90BCDE837CD277A039DC22427B86A6658F97A60101665F3F69125445647F3BB2D3125C80D89AAE6096A01C24902321933909A8A2925FAA1E7407B3C90C8A53D958C1C83465E557AB620E53509EE8C960B3C547FEA08D4FFA215742113ED9661B57AE1B30BA5768645C632DE76B96161A9B6C34B8DA48B75D176C2C849AAD55C6680BD0863273C345C4C7379CF3F873FA5953F53B9A026A4DC120C96E279085566C7D090EBA276A0928693E639B5564A59C08AEAFD25915F5478DD86E938A11529BB9A2B0B83487C696E79F1FD034EF000FA502328184BE42B8959D9C0683F3BC20E71902423AB14A4744E162F6A2B474DBC4A6F21FC0432CA7422CFB253D0F952BE9C13125458DF8753F5D551CAA38BCCA1625B533051C5226C8768335854E7477064320CB765AB9EB311A1859B4B5A006D918BD8508A971205E6902897CF95E0B652E09030794B46FCF7A784560C0A18B8E6334A57EC177BA56A8BB9A857013C6B9998975379BB04B540015A14A76C658F856BECCA363CB37997BB85B185AA0104063696F1020BD1B443419989798826E141A24A3533494391FA233CF848451CBD609D014508FE137534C42D6F22ED2CB82363C847865AA243CA993B14992572CBF5535845CC708BB09A1E8A7834C200D8036768755AFAB53ABA85813EB859EE83EFEA7563EE4BC158599F0CB04033393C829AEDBDA289ED852E1EB1FEDA9484777051F967E048041BA3C313A1414D463CF3EC36801AAA1AA540DEAB122AB530ECACA30101A1089087311972B338B045A1637189020C3030E63F707FEEA9AF84", + "4C7E1B20B4A5348C1A432F341BB9F598B8C0C2F6F55C4D2C2C22B187430748F82842DABA92283DBC4BD20636B6754B20A7127F01FCFD4013A1155E4746DBF3CA1F34991FE7C39ED99BDF5760D39DB8E6C428F2DE8157BE0139415AEA96BCF6FAB633F2257B582312D3C7ACAF6A5F8E55AD699672160CA01246545059E58502E28199CD0F5505ADCB91900A283F0B059F33D1A8B352010A3C815717FB3A9482C946DF0C74A526353D5C9ECD2590C5050996393A02286841580AB599BFBC8838A53301BB11D5FD492AF40BA26224505969D88F6B193EA42B0348954180E17124EC2C64B962A92AA9C3FE2D72F94301531C4AAF847243702BC8F9C37D64B54F20AC003B844C52417E1436D2E75AC09C313C83B8575E791A7C95D0412CC61521A6826997561485DEC26AD7BAA8E065E9A279ADD7301C5C74C5B95C1B6915EBE390596BAB505E51B3FC147AF616E0F94506635A758964B3E7CC067B80827DB21DC87450FE1415EE41FCA8A2B56B355FFF13616622FD1A19A7CD98F5084610D1AC9F1B8A6E78CAD9281A0AFA5A7C2A9A87916710EC9C5B3544B76B4808D01399F219B745962536026C79841F11961B63C10C99074EDBCB4ED786F7E8C3826609533E5BB4CB80F3E515299EB757C217DA2806D26664F154C0CC2B4A644B224933502ADF5A66F5B54CD45A71589219AAC65BE0623CF5B4C0DF17E72CAB64B91BFBD903D75E164E2A0C9E2C997F36A0B432177DE617F5E6746BD82984BB9375B4A0A12E96D06045A3A984667D03D8C08CD980B59CB2B0983B13F9C53790FD43653E78255882F9B0C980EF6B062789332A6B67B2B78E9E370B78181531846B9980A8AF905FEF403F47B891A6B440EE71CC5D6BF3BA5C7B087A31123AB61EC9F2D0C89E1EAA7DAC36613A15F147938D32673402164B001975D9C4A8BA5CE84D20B47F26EBA5909183C6FE1343D062389B9B99CEDD21E30D5841FB68F3450A47F4C4BE5E8C413C37EA4D5AD629141D7430938158CD04492BBA8AEDF7477ED13A0B97C8217A300DFCB22DE05449547626D21409F491098162D7AB477E3EBAF0E15124F449F08E47D8EC6847A0AC839BC5D237B3D509A8B5C44C8FB6705A467A3D4D9102FF2B6ED976CA9D856E9F257D5D586C7D8A4C2617DCA73AAA65719A21538D9E6997C5637DF8C5A2AB98A169A5BA8F708BBA55F2C0A9463C9B4EF0C9822FA64ECC72C8BDA4030157BDE5073FAE6A6E6F036121125DFC5A9DCA1504A1225E6DA9DB4D0665F6413386153AE25BE78B3410369BBDBD84A86C6C7BC924DD70005BEC0C54E07B4ADFA2DAEB8265DD98BCB8968A2F683A3B07633AAA0290550665C01FDEB22398ABA31140FA7494FD6A0087194673F51AC7D759D649A2FA4D7520FC67138F445287B681F5C3D1678B497129BC6624163E3515C8381E85C173D6A4CC0038DFC2064A213C557931E2E7138FA1A6BC3EABA08965BD803BD5759332CB1BBC4C41337BCCCA153905990970C261CF63A53204B6F8CB228D4234F08837425A82F1DA9BE43775DF88A20A0381F70044C76B3524B437CF365CB131BAA14EA6F24502336762C8E126AFD009E1997B8B3BC20C246070DF7B33BC9A7BDFA8CCD576925968915F186CA4A5A4934528DC75282E246B0824EF7118D39DC1F07449A218836D47CBB7365B677EC7D6222ABAF33068B5730D9E674CC008125226CBC5382A76A9823DB1B42976C5C90C23BC02EB7B874DFF93699E6035A838B22A7126AA42D62682505F9BBC77143DCA061F5C38E99652FC2E28E30CA8D62127AF02186BD9C95602992E20BAA636AB050AB870B11C52DA19B3A68B7A07A8CFBE7BB016A2537E50464265FF6F065D7A8C30F659998A35D79032F887B4629D07BB2DC895F09AC0387CCA9C5CD1AEBC08A687798721F24CA43C2C5AD42D1B6641838EFC2A72EF210BAD10218846F25DA336A4C00C4A29EAC8A608F2261B8C76B18F10B7ABA755771376DC7B876152F9FBA5370262919511D4AD50D76AA5CD6566C29225DABB3B668608D9DE5BAC08320CFC3570A0AC8DEB4BBF3D941F9325AAF546FC368AF005CAAB7AC6A7DD70D90506DDBB5F53A83079ABA0927BD52A68E278D3F01AC19EBA6BD065FB6156ACAAC591F1BF3CE71C4A046BE8C6C55EB9A84D29569BD2B144C73E2BA2DE5DD570E201786CBFD5D27020B649B011455909AAF0AD6D92C1B4BB1F8DB\nencap_coins = 2F349AE0CA4E08E2A8CE5D568829CBAA2150B69D13FFF8A46711B0F5DCD770CC\nct = 529208240AC2078F870F1753133AA73535CA88A448325DF579556D6E05A95E699F786C7CA0EC268F8B235F218361905DD360B97610A467151DFFF1475CC773C98C9A0DB4853DB954D5F1E6D6718824697BBCB3DB99758683E0193ABB88652C2D01F2778EDD59F1CA74B6B3834D0B07FBC9A543206A5076E65DFE97D24FF4FD4084C98F754109EE935E14537F5ACDCE7CF3D765CB7A605CDC37D9C0C3AB3499F14A7F5021300ECD0AFDB6B2452AF961CBBC3517FA2AA8C654A0D4E8682279B664A2638F4D041FBB70F99E3AF9766363CAEFBF4188D8E941758D8AA323885ACBCBEC335B847DC077F0B1C5A548787FC553DB89BCAB6F3F36D9E1D39E71BE36675E8B8044584058930BB8C9833B3AB56922B5CEC35CD3FE33D820CEEAE7CFC9234DF037EE7E132AF5A41E3CD614B3F218A85146E281360DD700C361D578D66EEC4818A77E2A78CFB9D4B9F82C0DAF305D7B696985CDE24444B353F399ADB9B5122B1E0DDDE0D56F6FC4B2ABFE010AD093213EF78AD8BF26F07C5C54750F015F85AE05BC69EC61DAAE0189D71E3F954806AD3E5AEA17D144F8AB339BFC6620130DA3C5BEC94B8F6951F718E5781D419B1C1EFAF49B46EF2CF98DB938E7987A75FC31FBE5BC1925DFF710E670A57E60710F0FE51F92CDA6A982B172DE9EA6C696657737BD8572464F134B8DC6F5A396B6BAA8336C2681DA0BE70687F5556EFC8664F468A9E462048781E98B3692ACAAB755B3B9F394DDA35D0AC4C4F98FDD24C32926D6C63740D3790020F9FA85080BC50BC6BD95141E638ADF4ABE13BCBF74523C64B95CFCD3B212ED444AA3F6F948138400EB020E16FF4BA82F3D970A68C5DEE84F75F3E548873369CF5AFF2A4F286894D3B25D933AFEE9042C3026C29299505318C1ED38C47D8C4D1DC8DC06225BC2E6FC9C4CD8F15841495EF6F99D999D5A46605E5750DF588968AA11829455C7E42625E053C83147787DE17846D918B441177279452E5D1BA56F3F2E30E558A8E9773701C201E05F6CAF4176933B79E023DF50954741F545186174147550963D7DE34369361A7DF8157775C22736283358DB6CB349369449EA9A054CCDDBC68CF98D8A39B90B76DE7C1C38895C035C62D76E4CC3C5823282E47D43B83778B7DCBBDA7537BC7812F9E5160A5E782E6B0B6216C78FEB46571270045736899FF5C37C20D585508A0FE902B2A4474174743C0EB47A5DFB898E99197FBC1265B2E4659BBE097C75839ABC238E6BDE6964291725156A4971283F2DF95F224465577A0D42AE815B1884471FC109962B14196BCE3D5716F63CD7E34D85E6F68336D011A2A0DE963C7B659C7624639CB837C5F36267343BCB2D612DE5B067409399FB7C44BF79E4EE0A29793386D5E81C319981F82F5A5267C657139BE3787DDD597757DBA794A10FAE02A660892502D435FC18E127DB67E66851CB1B7298074E4782FBE635A6D93275AFDF74BB68869FB3653282839AD229C0120E7FEDE6E6716E932F8EEFC86F838A44E4E4B45FB35A57E0F276EA7F2F\nss = AC21234F79F757260908EA2EA4FA4D4191FCA2FBE292D8ED71932142C11EE11C\n\ncount = 37\nkeypair_coins = A1B52D871612A1C611AE0944F9E71858F35D3BD14F20E96A931720668BDF0A6BF25F42AAA0D647322BD837CB730AF6082D2FA2D17BD63B162B36839FCC2DF0C5\npk = 99315A88D083BF5196F65CCA4541BD4CE3526E514DCCAA8ED176BA58014BD0AC486056240CE06C6C182040606DD98978D6CBA367EB0EC18401ED348743780DDBD277F2BA22E1B34208F215F8F91A048CA497EC37A7663587AC85F221810E64ACF87478A101062535287250907D0854B93A9D4BB39CD5788BE361C00FAA87BBE078B26353A51B7BDBA58D17E5496EFB263DF826A59296A13535ABD799CB931FA5886E35476DFFF97E82870653D5C4BA09C2658A9A22838BA0C6AAA4AB7B19699B8B27243C42634045506762AB1817534F419591B04622C650B828B3D4A66D9B163D09847BD172BA8FF452759184C07B11183665C0185E0A089C957135DCE64BDA52338B6492A27A1238AA567F017DFFA796DE84532FD5BEC8FA800FF4C5E34791CC5AA02901B73885557CBA188F72AB5A35B489E98AB377691033934029118A34AF7D176A436139AAB3AC127A8F510C8719936E8676CAAC2211C8292A42F274C7FA85C542B21422C5790079F34A26F0678C005818BF4981A2B4C7DB780C0BD43AD55C0ACDF1AE0E0761D7527813076F3174A1D49C74659A453E09C2B4468DE6F185D5F3C04F2B7E59E05317586E743285E6817283CA11FAAB44271A4667912DF262C0C03843730ACC24E80E2EE0251CCA86A83853E6251E3036714576B1C171A112E7A15CA215F63039AAA7632EC77880B89EF8A45CB0B3746202ACE1D7221FC98AFB73A28A6AC2AE443F16E6072D6B3DA1A3BE5FAC533A9175A5F176FE131F021795F8880D320C6096AB63F53525D01B32A2CA90E1A9138E4CA72502785976BEE4E566DC0CC1F3827733B0A7D00CB58B6B89C5E26D2DA00429A2450E269DA77C46B5C954CEE6BDC0339BA357A9B9951802A255B74A4F4CA1297D124056147A0F8123EB903071546D2C22723367308601A22F199F9588734FE1241450A45FD7395DF965F46574A030581CC714A50C08DA03A51B367B524A2EE4E56752DB9B66D9C6B07702EC23BCEF798D68300859383C5BACA9D8F08B71409AE5552209B5237E697BA55328A1693AF7FA0BA27020DE2C35F643514DB292C061C8E2085D06C101644C94D17C07560811C093AFE61C6B4FFB970382CE9FD25F76C6728108842B3841DBBAC62504185EDC32DFB817C45878189A7AC02859ECA77AB445797E030E910243B121A859A05D8CAA3C32FA54D033714D20A771C7CCA73999F6D91D4DB4683A9543D3C978F1D56816D75590642CD4AA7D9E9C709C6CB5AEA8832D7C84C576AFBC837B6615B8290078E2C0AC9A8CCFA8338B36649B9F7C41D0064DCA53B8FA1793CBDC8F7B75306F19C4127A214E5532884274646B91F49A1E36A3B42CFB90B27425D2645C5ACC2482289D0B4B84A6359007F23B9F528718E6C499590D6BB2A5BB674E89561AB1A48E3988927AC41D05BA143799214701B2F6D708D365BE84BAA60DF8BF7D969A425C93452A0277F218790C80C60B4B59FC6131E7865D1135AC84A6655507C1D98F6665C932093D61FA578E7ACBFDF49F2E15C138BAB4152C005ECC44FEC299094A285FF50B09388B6AC3972911CFB8ECC9F0EA58761741ED23CE16FC02AF5A341F65043F0802C0353D987C718FB72D3D922CDC861BB6A8AE003197C8F9C878A367C021DB7E9273FE2E03A2716683DAB6CAED5C770F6E7984\nsk = F8FB5BA9D24C8681558CD13593F0CEBB335B6F65BD5DDA6DE6D19E09F15165051F981AC6472B263CEC43883A79149707093066FC129AE148B04F860C2DF119F8A51056EAA5DFD89BFC564226E56DC391ADE1CC2A1DF58EDD4572C5A147BBE21283B", + "97F1B213BC276A471B63A7DF1CDC86C7A69A34ED17A425B37AEF969C1CD079529BA29A2E2C3412C5615E23523F3124C00C778752BB9B3677B90885CC21B0E257BB7F335FD53928B737D19DA3B3208219E6C898E96B45F801135A09A1425A0986C597E2B4042C1A4E6D7A4D0E30E729C73F2BBBE85B579C3C13A34344A7403B95D425936486C3B602804C08EF6F5AB22C400B9523EA3345ABFE666023BCE6A1B63A872C33E3AAF0CCAC2C40A4D5A48107D0C7AB09001EA67CA6F4C1FA7137D259C860D032C396BCBCB4177F82439852463B640855CE604F91C8F2E4A0899B2102C6059DC077D5EE6054355C546C2148077B8DEFBC313C71F1A420DACE126B16C21E40064E2522F9E224CC8E3526B1A99A2F4A81EFC2DD3609043246D461C7C1AF025B56A9C7E72ADEA57584CF044C2F0BB60352C32400D1631C034572EE46B71EDBC0334031AED7BC26AF543028C3918109DA52A6ABF3217A2219C0607BA9EDAB5B4DAAD5EC7948393C4A670C340688541AA713B596843E5CCB9616B54E92610539BFD39159FAB36D4928EE9CC8B1291AC0134257E242FAEB595100AC113AC416FF517866021B550B6D063512DC37477117D025964C95C13535C2F09A96740037FE1846EFEC4446EC03F93FA6B6FD8B539F0196444A61823B08CB74B7520618C08324F0667F142BEB3A34C2C5286B3D159FCE3B046079F07E558BA28A8893A8C94F9711C227FAC6900114C8BB6AA5369B059DBBCA008482A1843B62A1B06C68C6B2F40BAC6F02B6CAC1633055A178A396EF35F59F1A76543953D3B07E2B8BE217C5D5B1A82F9C080F4119D22275958026280BB8C96626C1D0BAEA6658A29546E09418AAF85A121F8647CB4789484BEE0189B9AB10852C397A2E25B9B15B71EF17440DC3554DB740289BA05111979614AEDCCA79699021F4BC3A4C68B39D0256D88CDD7A24E3AC31DAC35388720671A12A765D705F8429D0891C3E0D8062AD45A0B882BC53016DFB007D1C550998963D7E12FA51C7361D86156EA3A8AD7018C627A9EA18F9D3787AB3B88A27B3F9443AA87AB75EB1364A4C66C50E8170892A08FD15CF2913749D0C61305C4DE45A1BA2550009726A0873C70049705009DC8327BE3610F61F9BC60A26D14DC0C3E67CDAE4B5AC0D5A0638804D6C6B4CEB351F0C19F0974324CFA28FAB704B4677AA3F2BF65686C22100B74CB9AB5F7215452CBE8D6909754304573A9314B3C8362CFC34C6302B3CBD5DC482E76576FC5900B367016C03A860A88744928CAE55413231CA8A5008D210CD2E317D1BB6BC8624ECB83002E66092D8AA77FA0C6766532178A8CFB532C70F1114E5156E91486C3C7658E2A22CF0A77873C944A5A4BD70BA1686146E18B328D30813C9850C3003698C5AFA2082B3425C785200596592FBFD7B2AD5568F9D278FA24C523251BFC966A69CA882E707426563D2E099295305FE2E2A96F968A92E9423DC4A1F6662F68299899315A88D083BF5196F65CCA4541BD4CE3526E514DCCAA8ED176BA58014BD0AC486056240CE06C6C182040606DD98978D6CBA367EB0EC18401ED348743780DDBD277F2BA22E1B34208F215F8F91A048CA497EC37A7663587AC85F221810E64ACF87478A101062535287250907D0854B93A9D4BB39CD5788BE361C00FAA87BBE078B26353A51B7BDBA58D17E5496EFB263DF826A59296A13535ABD799CB931FA5886E35476DFFF97E82870653D5C4BA09C2658A9A22838BA0C6AAA4AB7B19699B8B27243C42634045506762AB1817534F419591B04622C650B828B3D4A66D9B163D09847BD172BA8FF452759184C07B11183665C0185E0A089C957135DCE64BDA52338B6492A27A1238AA567F017DFFA796DE84532FD5BEC8FA800FF4C5E34791CC5AA02901B73885557CBA188F72AB5A35B489E98AB377691033934029118A34AF7D176A436139AAB3AC127A8F510C8719936E8676CAAC2211C8292A42F274C7FA85C542B21422C5790079F34A26F0678C005818BF4981A2B4C7DB780C0BD43AD55C0ACDF1AE0E0761D7527813076F3174A1D49C74659A453E09C2B4468DE6F185D5F3C04F2B7E59E05317586E743285E6817283CA11FAAB44271A4667912DF262C0C03843730ACC24E80E2EE0251CCA86A83853E6251E3036714576B1C171A112E7A15CA215F63039AAA7632EC77880B89EF8A45CB0B3746202ACE1D7221FC98AFB73A28A6AC2AE443F16E6072D6B3DA1A3BE5FAC533A9175A5F176FE131F021795F8880D320C6096AB63F53525D01B32A2CA90E1A9138E4CA72502785976BEE4E566DC0CC1F3827733B0A7D00CB58B6B89C5E26D2DA00429A2450E269DA77C46B5C954CEE6BDC0339BA357A9B9951802A255B74A4F4CA1297D124056147A0F8123EB903071546D2C22723367308601A22F199F9588734FE1241450A45FD7395DF965F46574A030581CC714A50C08DA03A51B367B524A2EE4E56752DB9B66D9C6B07702EC23BCEF798D68300859383C5BACA9D8F08B71409AE5552209B5237E697BA55328A1693AF7FA0BA27020DE2C35F643514DB292C061C8E2085D06C101644C94D17C07560811C093AFE61C6B4FFB970382CE9FD25F76C6728108842B3841DBBAC62504185EDC32DFB817C45878189A7AC02859ECA77AB445797E030E910243B121A859A05D8CAA3C32FA54D033714D20A771C7CCA73999F6D91D4DB4683A9543D3C978F1D56816D75590642CD4AA7D9E9C709C6CB5AEA8832D7C84C576AFBC837B6615B8290078E2C0AC9A8CCFA8338B36649B9F7C41D0064DCA53B8FA1793CBDC8F7B75306F19C4127A214E5532884274646B91F49A1E36A3B42CFB90B27425D2645C5ACC2482289D0B4B84A6359007F23B9F528718E6C499590D6BB2A5BB674E89561AB1A48E3988927AC41D05BA143799214701B2F6D708D365BE84BAA60DF8BF7D969A425C93452A0277F218790C80C60B4B59FC6131E7865D1135AC84A6655507C1D98F6665C932093D61FA578E7ACBFDF49F2E15C138BAB4152C005ECC44FEC299094A285FF50B09388B6AC3972911CFB8ECC9F0EA58761741ED23CE16FC02AF5A341F65043F0802C0353D987C718FB72D3D922CDC861BB6A8AE003197C8F9C878A367C021DB7E9273FE2E03A2716683DAB6CAED5C770F6E7984CED77D358342759291C2BD225B0BD82D659D28A24BBC5EDA8F47975B780CD129F25F42AAA0D647322BD837CB730AF6082D2FA2D17BD63B162B36839FCC2DF0C5\nencap_coins = 525F15E526198ACD1D2B0BA0886071E482866312CDFDEF01C20EB2935C28EC84\nct = FD3EEB777FD22EC4142689A7C6637682FFFB460EAB0C2C59F43DA72B974DF092C9F0DBF9A32A86B1F13D4CDE67CCCB6212D51552160F0CCACB47624C8E298C7F079D899B685AB6CC0690DD6788B62C1F8E28577B6B2B34E5CF1E5F447E578206E5FFCAE60BBD5AE9BCBD23E7841A0C6D43A91B4DEFEA13875394806066EAA926751055AFA88C111DD59E5500E3C5E1BEEC91B4F241DDB27DA0B2E37CC4842293999C86E1440C87A71AFAFBCCCD407191A328227F7E25F033518D13DFB09DE28DBD757261C2866F628AD54FD7C17DDCBFEC78D34BDAC4EBAF824DF5DFDF6A740DF1AE2F0E211426E7A21BD7ADD8389BA6DE7354B8892F78DB7D33C1E3C6CB141EB835710828E22109C1E26C991BF0B8DAA3D58601830D91FDF25968567B931FBAB73AC7DA59E2E8529F64D597F10977A96A81F5E171A96562F124C17F99B102F4BE9C49DCD89637C7D2663BF377DCA4EE850B887E20BAA8CA4A0220786562A8944BE343AA4B603C442E04965A4C86A49B90B0039F04D93068CCFB461E692A83424A5FC7C0974C0FC495A7FB52840EFAF585088925A89FFBD4C66DBE26190399CCD6069D1933CE9B889B04AFAB2198466F3758130A83975915E84EB8553258BEA90C4715F6B3F05C81561644CE27D4B832E1DB458EE882EAC9249FEA0C79B85B467507859F043BE1089DBABCFFC8E823340849942530896C5F2763DFA9694277856B2DB01C37B336CF8E14B0C8CCC3A07D349A361D09FC2466389E264E8A51B792352DF1A4BA9892F48513094B4DE3A3A1824F216992AC3F518F01ACF61B68DFAF2548D36148C6E3D46CED0C5968C1EBD739B4BE2995D81A5B4AA342F862656EFB0D552091AA143DD34513DCDE45B72C71ECDFBEF865BF433F96AA4E5D258D1AA0693AFEF12C1FBD39F3697DC1E569935A43B709827618A1B3C5ADE512B5E55A9641BD5A7E0FD58A3ADFD068E822C766428AD52ACAC95F4B1F73FDB4B1319F7F2C60D123761642999017B8E05D5844C80108EAE3E66198DFF68829880B0602A755EA21226CD578196C920DB5BFE8D6214035B686AAE1FEE37E2A28FAAF1887D2DD0028BBB05BE814E908FF956A83C2342F37B05C48FD032951D59077E1C6BD0DF666865445A938DA403C9B8638A0F38B16A0F1985251495255D8980925BA4C1B98DC91FA841CCD154DF23D7092F4158C4B473364FC22D197A21451471D8258015229EA4E3B11A8C389809E05348E5B2F436C29B274B2EE63EF07C2C602F88CE4C2E1036C9D25E737997B08F7ECBED91DC49025663FDA8B600110F77EA197449BB21EC1E21794A6A77E4FAD1C9D146C6B02EE8E9AC13F5255B863964CD5F2FCE1EF57D4913EA16413918C6511852926DA90B864092C10FE08A1CFD7D6864DD429C408E960B6381C22C3716B11A02D1833900EFB482E7F376455F017995089D85990A6D471AD19EEB25F5DB622FF1CBA8B66685F2EEC2FBEBC7CD95AACE9123B1DAAC526589FEB058DB50E97737BCCA785FD6DA85B382965A33D3798E7DD91474188\nss = 5299F08547B1A22CD97C0D9C055049D66F61CF38B391B0489232215B602F5D91\n\ncount = 38\nkeypair_coins = 952B49C803D6D6FBA69F4375ADCE8594847A00BCAE2179DA49AF2AED0423250223DA505EA48A79EB504EEADDF7D19D736F39A46C837F2A0C2BF3FB876ED8E6BF\npk = 2E7240107059C16C3EACF4A1A8342B73911DB6A51D3CF12BB168229A1B29F7C334D0D1AD99932F21BABFD8153BAE937FDD2393D9748518F12689CA7627A1041D868094AA7440C6724B4430EBD20776B602940C9D1FCB5A109978573434DA891962B645002508E46992C0C148F5A039609826BAF5834BA7271C443B69DC5110C4B7089068D16202CBAB2E1E4525738A19C8315FAE806FD139BE91F4C1E192A2C04983291340DAD4018A8A83C27A57C622408F933A51B7618148B16375A80E0A901F10AAF6E7803CB2A693ABCD4CA8BAFB942086F42F6B743937098E3D2A607F212F766603C9D89ACCF7AC584491F230BB1108B1465B865F824215D79FED2525D7E95C7976946E22A9E6510AFA2A9E8AF29DDB65C47BE8820561661050B70EF3B7BB249B7FD0CEDD688C37D7A3DE667626C2B389B38BE066089405703BD51FA32199E9C83D5265BD62A2AA2CE521B69973A18777E32151D3D5BA1983C8659A79AC978FFA15CEAB733B49EA8F7A853D4B06CAFDFC64C9D00E55D814536171496037036A078D026164D7B07E3277B7ECAA770B06DD291B9AD29241C3BB43553BCCF66A1DD81FE2E2BF79F1A21E1539D0BC517A9BA8EDE2C39DEAC4CDB7C65FF96048461BA2E350017095A35C1BFA25C242B000AFFC8AF29495A2D349133C343D680EEA815CDCD89C4FC283CD5136B89ABD473B4AEFE2228F4CBA5E0C10EC7A1083833735F081034AA7BBF20C11319CA263B52262096E505C45805E73619E2CEB242E55988", + "3D20DDDD4120F0C9E49F4995376284147CC2D2A96A046BDB3F56B6DC1889976AE1ED732EBA43AF5941831B2202D6091C16B680001A82D98CCCCEC212B79B5A884756C75CB2545316FC072D903C670864D5A13534E545D836276EE594D3A7841E5F91D6B738D97E73A7274671D6470CD2719B0515FDD67C6E4969AD213254502C5AC9BA23C264A375237369B46D0C45745041A20511459D3321EE9B395978F2C575EBE1C6CAED03AFC7027BC457E03F527B0CCBAEC71850E0955F0A2B54D9BCE69B6C8FBF90850168ADAC411AD5C973B578424C55CE01B3EC2825B0085232469968B8A96FE7B9F26846F789323A15AAE6397242A712CD26B0465BC038A4AA30DAC42C0036C062C21C3A4178A0C92B8992CBD54A6044B789D943F1EABB0BB24C3D0D4C067251779374579B27C84FB435E6C745334485FBA84676750A27C520F79366D008E4BE93FE8A958E8D06B8EC323BFD5BD01E86B1F13302EB17AA3AA8FDB3445AE5775111B2124E2A35021C04945661B2C510A29264AD855836C7D8EABC069011F8814934BB4B32176C0B59B04C5FB6CDBC8BC41B0BCFEF4423635C0C7AC43E4D5286C74920EF37C951266B92074D239B2BD0A0D6C096141FB6A718A213A3387D75B927CE176169738ABE0CFA6B68D3B064157C3CB03C5793A7400C1960351B059E43A7F1B28AE5073780CC606F7E40AEB458DBE95A31C23AF7E760001B0BD601647AD1805C4329E46F490575CA928FA908B5A30FD31520C61C9F1CC5EF18578B350A929164DE33B008338180CE41C45327152090A91B8C9B3928C2629A48D78ABD1992720E841A52CA91A15A1C7953D18B4BA1F990AF34CA408BA2D449F94385651C3B4C0503726CAFA118167110E848FBED995526B458D362061A1\nsk = 5B47B61CE23572623C431A498E378C6B71A5CDCCB58E225310217F6F2B1B7140B97349B965D9C95332A66D7A9879F24C479851A0EA485254755DB347BFF9A06D00502AE3A910C06771AACC0A51ADD07A291496AC10E2899B6562DCDA7B6B9B7EB516335D222C43498859D87A44CB8AD589A06E609FC5798CA06744051533D5C6154608C790A8ABD776CBD2984B57E1CF4E0638C77915DD89249D3C0775B45CC159B44BD32F49A51A1E398763E35DBF5C6CCB100929C9B91047A1AB98A140E00F77F5076310C33179A8C80449591C4156C244EB8C8B3009328139C18F8C59E1961A2B91C840D552C2E4B3897265B16C28DE6ABB72D218EF713A1D179CEA38561663C9BF21B68166AAA45748316877A9A5BED6F5230D3015193AA5A9E1B34DC6576B57692B543FFF321B14879A24728DE3D6A297C06AC6CB28EC3482DA708ABAB28FA815272624AF6E26A879F65C6432812470C52DE01EDCE20681DB43A967069DC9BB34F9C540A21B8D7322A3675FEE059F5F655CFC480BA31255E899C48A7C25588303D67055434702ECCA24D31A9D69796DF408328912ADA084AB122C6AC53C3C349C105270C9AEAC73923614EA9129CE4C9FD8D78BD33045D8557AD3D0A698B34A7C073B93783670662F8558375647747905402A6AABD1698D1D3B430CE8B5EE8665771A34CA73B2DEE04497C997C9E74044230690354B7AF23BD94AA02CF599554391095C0D53F5C1DB19AC33189B2B9AA3C48BC4E09BCDC5029BD3B45A370C59045ABCBFB257DDF30085DA053056C17DD0B5DDC6494524875AC189E6C7A7CD483288F03ABC155BC2022EB427B7D5093F4616C124B7C29A0043181C7BDED83DE7592511E3617A75652D4568D7C7B3AB2B7464C514CE6CCF54FA8D73E61834E534966620DC59196AB44B736151A27C02E065A000611542FC296A69A24989331EF980F708142D7274EA863669A52039B59D48B90BCC75CE4B434F5751CEF621CF3A29873C003A57276128E70BB4AA5DE581834946741A8134890491D37B6051959739FA8EB81C6947141704683124136C1C382760E13F00C59AB5BCBCEF98B973831B91BA87FEC02216619F012859FAA6B01B1649786B626348182398226CF794095681D1C25800B18BF33CC71123898AD2AEE46905A8118916BA8651328A051697F8041667789C874394E96A0EFCDA8998D420684217952496AE9117C6C618513C147148979F5C8BFEF8C7CA1836430C3CFB66B17CBCA63ED1A2157961CEE600617157AAD986B5021F4F69C3BEE6AE181A076C3CABF076903BD59814352F4EE2C04A138AE0EB018A2193CED58981CAA3BB032317499E6EC4BC5CFAB8B389467EF295DBE7305BD1CD099364D7596B1801008ED734D7775C5606AF0F1A2978733DD7F55556DBC5FBAACA5A95BBC287B6D3A43AA9B78AD10A025F46AF233512B126230CF928FAC14D753160BAD961BDCC4D5E1B4EDD241609A0ADC6B3C6CC9660E5371D6C1655B4465F16D535ADCC54F8376371B758CACB81D84A7B3E6B8754B430C0753982A89D5CA8B2F4244AABE0BF05F75ED0B092F332AA83808F897BA21906AF25E68A88B61A357A10ECE1977199203E465EF9BC020E145F6421ABD11B182E7240107059C16C3EACF4A1A8342B73911DB6A51D3CF12BB168229A1B29F7C334D0D1AD99932F21BABFD8153BAE937FDD2393D9748518F12689CA7627A1041D868094AA7440C6724B4430EBD20776B602940C9D1FCB5A109978573434DA891962B645002508E46992C0C148F5A039609826BAF5834BA7271C443B69DC5110C4B7089068D16202CBAB2E1E4525738A19C8315FAE806FD139BE91F4C1E192A2C04983291340DAD4018A8A83C27A57C622408F933A51B7618148B16375A80E0A901F10AAF6E7803CB2A693ABCD4CA8BAFB942086F42F6B743937098E3D2A607F212F766603C9D89ACCF7AC584491F230BB1108B1465B865F824215D79FED2525D7E95C7976946E22A9E6510AFA2A9E8AF29DDB65C47BE8820561661050B70EF3B7BB249B7FD0CEDD688C37D7A3DE667626C2B389B38BE066089405703BD51FA32199E9C83D5265BD62A2AA2CE521B69973A18777E32151D3D5BA1983C8659A79AC978FFA15CEAB733B49EA8F7A853D4B06CAFDFC64C9D00E55D814536171496037036A078D026164D7B07E3277B7ECAA770B06DD291B9AD29241C3BB43553BCCF66A1DD81FE2E2BF79F1A21E1539D0BC517A9BA8EDE2C39DEAC4CDB7C65FF96048461BA2E350017095A35C1BFA25C242B000AFFC8AF29495A2D349133C343D680EEA815CDCD89C4FC283CD5136B89ABD473B4AEFE2228F4CBA5E0C10EC7A1083833735F081034AA7BBF20C11319CA263B52262096E505C45805E73619E2CEB242E559883D20DDDD4120F0C9E49F4995376284147CC2D2A96A046BDB3F56B6DC1889976AE1ED732EBA43AF5941831B2202D6091C16B680001A82D98CCCCEC212B79B5A884756C75CB2545316FC072D903C670864D5A13534E545D836276EE594D3A7841E5F91D6B738D97E73A7274671D6470CD2719B0515FDD67C6E4969AD213254502C5AC9BA23C264A375237369B46D0C45745041A20511459D3321EE9B395978F2C575EBE1C6CAED03AFC7027BC457E03F527B0CCBAEC71850E0955F0A2B54D9BCE69B6C8FBF90850168ADAC411AD5C973B578424C55CE01B3EC2825B0085232469968B8A96FE7B9F26846F789323A15AAE6397242A712CD26B0465BC038A4AA30DAC42C0036C062C21C3A4178A0C92B8992CBD54A6044B789D943F1EABB0BB24C3D0D4C067251779374579B27C84FB435E6C745334485FBA84676750A27C520F79366D008E4BE93FE8A958E8D06B8EC323BFD5BD01E86B1F13302EB17AA3AA8FDB3445AE5775111B2124E2A35021C04945661B2C510A29264AD855836C7D8EABC069011F8814934BB4B32176C0B59B04C5FB6CDBC8BC41B0BCFEF4423635C0C7AC43E4D5286C74920EF37C951266B92074D239B2BD0A0D6C096141FB6A718A213A3387D75B927CE176169738ABE0CFA6B68D3B064157C3CB03C5793A7400C1960351B059E43A7F1B28AE5073780CC606F7E40AEB458DBE95A31C23AF7E760001B0BD601647AD1805C4329E46F490575CA928FA908B5A30FD31520C61C9F1CC5EF18578B350A929164DE33B008338180CE41C45327152090A91B8C9B3928C2629A48D78ABD1992720E841A52CA91A15A1C7953D18B4BA1F990AF34CA408BA2D449F94385651C3B4C0503726CAFA118167110E848FBED995526B458D362061A12FDB7C7E39CE1625C20A13A1C91AA5909D8B03B064D00877DCE2415020370C7223DA505EA48A79EB504EEADDF7D19D736F39A46C837F2A0C2BF3FB876ED8E6BF\nencap_coins = 06430DD2CFEA620F387E8CF12A48DC32E25B9EACB9468C42057B01A3CD76AA80\nct = 90FAC90412502ADC0777127028F88C9B3341E0FF85631F8D5F2EADFDCEFD4C47063DC67C059BB5D59D796C1F980DE7F25608808C7DAC4AF4CA328428AD7F5695E346744EB8E05553127E26163A17AA1CBAF066AA5E03CEE0009DF596D44FC587F8E13CA2DE93877870ACAE838B0CC1207D35456808142C363FF711CBAE66685CDFFEC8BCB1560166122628F205990610C5907F780042A9C9BB0529EE712013C64FA5B632FD825EF672F307DD85A08446E44BB4CA493BBCD170AF688740D9FFB2E0C2AB3052380044C5916665FF3D71FAC15C642E2D8FE0F8E000D8444B6C45E74E7E087B3434D8B2EC54555860E6C2C83DF594730D68CA3004192C13269E14CA98570478BC92F2A416AA501DCA7847F361BA66D770C71A4B84A5D97CEB29FBD52C0BC2B03292D7611157633597E4BDDC5A6BF695CA02D892C7ED0A549FECBDBC1AFAD990CAB786148F0997655E52300CBB2A5D4A8A0DA68A1D0EC13DCBB313D56613344FA5B0D1150556A979C57B4074D64187648C79A4173F0B36B3FF35A01A425A57B686A9F06D6D637655AC742CF99CE5D6AE1D72444BDDADE56871942C1C07491D42586F8DE2AE955C9A2D6E10B1904E4E8E4FE779BAFCE4B7CB70FB0EB0300A511DCF12DAA9022FBCAAA104A23C1F1B1DC052B296AF8003016EE45A77A79BB6EACC0ACC09397C7385310EBA41775454E5D0D37DA6B8ED0B6CA4CDCDF0D74564BDDAB46D0D23642D56306F566DDF8A3DA8586801926AE668D11F1569697B4B180C72C8073F89FFBD57B6A238CE0D2DB5B34A09944BB1DF09B3DAD9B8119244904F4D825D12EC7BD8586151138A9C6397C7F432FAAC8E48DCFB6ECBF330F96EA2CA6377EEAC0F81CE0FFE223EE924D5B064C3C7EAA3040EBDAA62F699AEFFB8829A7D719AF815B9A414298FBF3098EAAA04E675D3E1F6E0941D8A9255C14C184A0EB9A57F572FBE8B22A2D3C4AC311A44C1E4C38C467BAAA5549715E9F3DE5E4E97411E78B9B8C99FE731D9115687DF6A978E360687072CC6497CD6CD0EE76619BE293A52C60F365CD3991F864E602769106D827EB28ED65D2BBB2A65E63840977167A0BA6A151BAEF9B770F49EA6383B0453283A1640C2E295FCABCC227E844E6327A0C029CE88086907DD8EEA3A8200680294D9EF323FF7157EDE52027FAA0530F211460A44169AD2CFBC6460F5F136ED70DDE09584880B2D01743BAB57B489942F9216B40C2DA92DFD086414E4B8EE8CB8DE6225A9DE5D6B39251217D5A0B91ED6C6A0A8B6ED4CDFB548E156106882E8A5348616CEF5FC5B8CE38BDD3C0FD9229BE2FEC9FAAD9F476553F4EAF016E309419BBBAD36DB672277458C2BBA8A7B6DD761F6A5D21E9866DF12474BC0AA918294DA50A1938648CDA9F3D46465FC49F20B4DCE3B0F668CF058766C380AA2E2D36B6D", + "E1C5D2D73ADDE03AA695DFD7D9DCBD8A97BD8F4E3966046909CD5B20FF6480D9AC3ACC32CF969424E8D12333F377C964A6FE54845947752D9001A22232A413795D4D8C638CF43C4BAD645C\nss = 819D5EB67A67F9AB9D00779A1CAAB3BE8783B45C158FA554813C8DA2EFE31EAE\n\ncount = 39\nkeypair_coins = 3C815E57E9233E975FA1630208AAB206B71AE0DB37A7A8789AC683D9F9B2D2985532C666D12D7F321AA87F8A1F475B161BF3812EFA99269925F5F29B1E030B5D\npk = 45FC2D1BB1872A743763F12D29D937F3F2A41D257531C1172AF59C90806C7E5A15972A8CB9DCA049BC92700A72B4FA5A739033437C946EE062AA86C12103B557822A08084BE63C4C74D1B92608C3B02C6520B2991F8499470114FB659F89A937A25897FABA6C0DD142D8D4868EE3C6483128241B287CBA0AE49430DD6A28D1339605A4B750E6029F73BAA1FA8CE6219C36A40E5542AB45CC781A613FDF416502743DF8CBB3C4B864D0B448A20C0B0942A829601F2B131FB038587A99B80EF44033061B2E4B8F9A12C3C03193506B62AA1C7AB08569C7D0A88C8A098F87061EE41000FD202E2C3AF4E625B34787BCE55F74AA58EEB9124DE7089E51A581893354B36FE035CE5FECAB74018EE6209B75FC2702429C932ABF71D89B8C82C047D77725CB6ED98608F2BA0B3462C1D428352C6376F6269D9869AFF4BC821870B63F2284D296677B6145683BA6282C12C72512EF015EB19BA86B3571BE7438F17311655C118A530266BBC6D9D10636B6347C630607864949DABFA558522C100F6C7941A076109253B5FFD76328C99590F48B3FC7AE7A5847CC958FA5523F540AB54EA0A302174E6C401341759C121B355C9280D2AB6A84F9028634BF7E3CA90679ACA188667D5086DF35B88D95B262E8478561A414B627F43B0FB8731D3BDA73C6396594694A9F7024CFD55D3AB88342516CB34A922E6835EB8C067BD35CE0B3711D7BAD2D7529464C493ADC40D8EC8679C903E8984850034EF4A828D3FABCAE9474F7278CBE79C8E5C1C948B94798D4C68DA8255237AD8B0B38CD4A8DFDE5ABF6B2CFAD98A677A8C40E208206774661490C3C212D23327A46A23DD6855275B78D29830B23900B13C638E31B4745A917D4FBA95A04956C371212E475271CCF94F6295346118806316EC01D08454B0CD922D6F1A3E4A651A7A931F380042A09244BB39973EC5872C28C8D41C4BCC72CA4409A363C49995C45C7909522128C03814612214A5EB01527B67BCE4463202CC14E31225B36A7D7D10E26966BEB389877AC0062F9172C0517CA8676F5A44A10106FE75A31A4AA86688C075918A4D8A7461DCC1EA1193913C259E3B44C2D976EC67613468358886A9108ACC7D0C6A25F5A991D7C53B8638C24A585F07AA074B5A2CB514BF7178E14112C8B31727A38BDD20A5AD087746768957F837179D50D25F6697F4A88D056451A593E385B74DE8A01CF0244E70AC9AE36B2D76CB91E5419165C6507D141148869D6676F28645653BC78C96B9E7F382CB0C6768E2968C513C7AB076928781A6530CD3AE3286B0C681743A58D9C524BE5120C880605BC139F672E30174095932A000800D58A926CF40873C44AE6096940A3BDB6E7966595BB3D23C9915BC7E29AAAC9F0344C9B6BBB25CB0AA084F616332197295163989E1448784082C327075DACBB7D912025E4786710B0C7452F827ACEDA11A73ADA09C3E54B404419DBF3A8F8B6096A73528DC50FCD230155A97A614663174683D1095D97B7C0E994764DF2095AB7BC029B7DDA3799E5A88ED825CF1674AEE01BB0C17A5C84B8AC1BA061302BA9CC20CD46F769E1021C03C43AB07BAB1BB0C7F3426D252A15ED5A27854CA7B177A6F79502789842E229637FD32A677F68DABFA371062D8B8CE9DFE0D90BF06044AC3A840CEB626B16E134\nsk = 2C021F19322A908456F1677D31DC8A4A2A734A2571D19C421C47AECC507C3C53A931113290B693AFD1B7FFECA87CC90B0419C48BC4359D64146D9932BEEC78766408F59216C692228FE59B768C92F4D5A3CCFA6A35599DA2695766D754C1F682AB13C8966997F37A74985551C36828224C177D3A3ADE3C2C20A907C830BC32906DF70B021B47C38C606EF951ACF7C1512AC15FC0D761C9057A7DB1AC6C56198F9A8ED2F67A0F159A5EE6612109254D57745736CC3CDB634F5658FB684D805888FEA8582135BD4890343A545E4E0A6F0C130B8539125AB06358F8BCC0A4B44A7A4903D018C960CA45779BB564A30CF1B340B4C317CB77DA50BF899C10B4676F3C295B90E93C2540A9E17C3BDE560F351C81C58B545306449585718E9199A6302E3B0CA1E737C07A4B7E21EC154604590D415F4B82778778905360CC2E49BE4B08C94A744995F18959D4492F0B7A3F53A98F9A8D914863B9583D866712FE583FD2677E8A3B8BA5341902178824F4C41BA21CBF7A4B666ACB413C31CFA744B9A5405EFC5B53A2C64481270484134753C1B0407E23B95850A8C026843643E42B329BCBB7422DF5CBB968B04F39210A4EC959E1B5C9CB32A180588B9BAA690F7459B1282D9E9200BD1A0E910A3EFD948C3BD0AF04D866EDC61C866B48D7AA22E6FB5025C6892C66116E271B998B888E0481ABDA592C8B36F7464704FC22C51B5BA995928FE03594A8073AD790798AA304579822255E61D11557092BC9B5BD4C94068C60B2940C180831C5167487B7538C9AB47DC268215C8C7F324563D3973FA73BBAF07C771B15070D880478D2693535425FCCAE0F8272CD7224F3795A70241D480425E4A74922309906E1C11C5107E9F34FAC3536354100F911234D55769B763CF2408B9812AA6B7C2601161953CABF0733CD3AF819F5158A136621FB159DB3DC6C3F3220ADB8ACAA8CCCB7CB2EE583B9909C903FF43612D178C568AA7E9217E345CF4DAA9AAF17CCA1B5A4A5A73CE9B0581E73BCC019BCE2B68C8C273DFE588BA0861C5A73A6EDD9BBDD66935AF04E5EA81A55D62C9A8C51B3E6A402587FF4F837C16380AEF5640F333DB08A6CDDB425CB4189ED773D8ADB91E2708F12B78A0105BFFEE30873C1B6D5D5469F6464705741EC4310A8185A1553372F6091C769109F19527E95A6802C2A49127077B21126E7531A5941298BAE199309CBE00D97513BDE1AC82292CA1A76957D20A306932F83994A00F21D89519E16138F0477667F338A67450E1248A682142A79D9AB6B58B88754362A32AF3402D062A554CA8A40DA0481BA721A9B023DA71987B744C6B9AB5E80830F8B7200241007F0EB72AE3694EE92814DF4B1DB269F4404CD0C77A844D2B751F5A0BD1CB93D61A628098D0EEBC941827F77139831575B98E47B7DC3676D887B56D0AD96BCAA1F280049776339CB3FEF6489DBD26205530CB08C53FB0839B49909864AB06B2C3FE15957DDA96CCDA90C51904DF02C6A1E5846F892A1683838B9760AB900664A1A039B6A1C75F9C4B05340EDE9881F48869DC881DA0191E24BB5AEC448EA052E57E69EDF254575FCA87A1B50E6D39520630688B04328A70CA1A871FFBCB0A8823DFD4747DC859B45FC2D1BB1872A743763F12D29D937F3F2A41D257531C1172AF59C90806C7E5A15972A8CB9DCA049BC92700A72B4FA5A739033437C946EE062AA86C12103B557822A08084BE63C4C74D1B92608C3B02C6520B2991F8499470114FB659F89A937A25897FABA6C0DD142D8D4868EE3C6483128241B287CBA0AE49430DD6A28D1339605A4B750E6029F73BAA1FA8CE6219C36A40E5542AB45CC781A613FDF416502743DF8CBB3C4B864D0B448A20C0B0942A829601F2B131FB038587A99B80EF44033061B2E4B8F9A12C3C03193506B62AA1C7AB08569C7D0A88C8A098F87061EE41000FD202E2C3AF4E625B34787BCE55F74AA58EEB9124DE7089E51A581893354B36FE035CE5FECAB74018EE6209B75FC2702429C932ABF71D89B8C82C047D77725CB6ED98608F2BA0B3462C1D428352C6376F6269D9869AFF4BC821870B63F2284D296677B6145683BA6282C12C72512EF015EB19BA86B3571BE7438F17311655C118A530266BBC6D9D10636B6347C630607864949DABFA558522C100F6C7941A076109253B5FFD76328C99590F48B3FC7AE7A5847CC958FA5523F540AB54EA0A302174E6C401341759C121B355C9280D2AB6A84F9028634BF7E3CA90679ACA188667D5086DF35B88D95B262E8478561A414B627F43B0FB8731D3BDA73C6396594694A9F7024CFD55D3AB88342516CB34A922E6835EB8C067BD35CE0B3711D7BAD2D7529464C493ADC40D8EC8679C903E8984850034EF4A828D3FABCAE9474F7278CBE79C8E5C1C948B94798D4C68DA8255237AD8B0B38CD4A8DFDE5ABF6B2CFAD98A677A8C40E208206774661490C3C212D23327A46A23DD6855275B78D29830B23900B13C638E31B4745A917D4FBA95A04956C371212E475271CCF94F6295346118806316EC01D08454B0CD922D6F1A3E4A651A7A931F380042A09244BB39973EC5872C28C8D41C4BCC72CA4409A363C49995C45C7909522128C03814612214A5EB01527B67BCE4463202CC14E31225B36A7D7D10E26966BEB389877AC0062F9172C0517CA8676F5A44A10106FE75A31A4AA86688C075918A4D8A7461DCC1EA1193913C259E3B44C2D976EC67613468358886A9108ACC7D0C6A25F5A991D7C53B8638C24A585F07AA074B5A2CB514BF7178E14112C8B31727A38BDD20A5AD087746768957F837179D50D25F6697F4A88D056451A593E385B74DE8A01CF0244E70AC9AE36B2D76CB91E5419165C6507D141148869D6676F28645653BC78C96B9E7F382CB0C6768E2968C513C7AB076928781A6530CD3AE3286B0C681743A58D9C524BE5120C880605BC139F672E30174095932A000800D58A926CF40873C44AE6096940A3BDB6E7966595BB3D23C9915BC7E29AAAC9F0344C9B6BBB25CB0AA084F616332197295163989E1448784082C327075DACBB7D912025E4786710B0C7452F827ACEDA11A73ADA09C3E54B404419DBF3A8F8B6096A73528DC50FCD230155A97A614663174683D1095D97B7C0E994764DF2095AB7BC029B7DDA3799E5A88ED825CF1674AEE01BB0C17A5C84B8AC1BA061302BA9CC20CD46F769E1021C03C43AB07BAB1BB0C7F3426D252A15ED5A27854CA7B177A6F79502789842E229637FD32A677F68DABFA371062D8B8CE9DFE0D90BF06044AC3A840CEB626B16E13486BB11E7D9C1368FBBA34CE3A2F169C2464EF5FBC11F73843C456467B6CDBD4E5532C666D12D7F321AA87F8A1F475B161BF3812EFA99269925F5F29B1E030B5D\nencap_coins = 45443194C6681FAEB9E4CD954543BDB55DC9FC5478555DBABAFF127CFDD85438\nct = D66B23F5E11561A9E7AAD595CE6F50374A0C5C13D371040388735DBEF59DDB0399EF723985977BB5AFA95C92D884971595B41B43AB74102EAB5AC7F2454C7A5345772206AB598C8FCCCBBDFC8609B839229D6FB87D59E4306E2BBBB3B161E6E8C136A360DD7A8E69A36B3C9D18D60B8055752DE7DE3750DA3500A1C0CE062543EBD6716487D56DB917CF01D217BB1DC44383EB3DEE468C248D418CE16D9C2EF6D81A70F76204A9D391394E5A69D147FB624ADFACD316D316D0E5A6FC726C36D0380A69A28FAD9CE26F8029BF3B0E33A4C73925C3B5158C6F7B42B0858C502979E923B06EC7DFEB554C6FCB24EBBDD678197EA3C02D2ED5050273E12A5059B7405A9405188112ACDDB377D7A83A8C48F5D2A145", + "E1846F883137FC805E2C9F9EDF8CD919B31EE207D2CACF99D62B8D21F3B6EC58EE7AFC5DC3C681F9F1D5B86941E6FFAE15C31EACF56CFC0D190F6757C0386AAD2B6711A7CC9E2D700188B7F220E4E584DFAA313B236FE77D3B3A63D85B425D8046DE7D1F81ACB24BE72FD001EF4E203D1ABF4DB2E7C16F33B2B44A691C59D07EEDBED4F919EA63CD28CF80F82A07F2045CC6781F7117E2A9B2D001F18636DD19191F2698A5C99B2CDAC2CF8FEED8CBF1DBC8BCFF10ABE197B4455BD630C33F0A8E9834E33B16B1159A659791D67973146B861EF6DDC9BA230BD64BF13FA57E29C1A9C0A25D517D06DCC3056D79D16A93FA95992670E5A99190B1352832EC14446A11D5D41EE54496F22082A331AD67BD8819D5A801BEABE60E84313287339BAABAE1761E01D447B6F7128CEF8DF5E3CED043F0468134E1A14085689FA6A47FC2E952BB4D1E54D08F0C29B87344AB68F0471D4CCC6A3383419CE95531D16F5267844B35FD402FA47E9925D075CD7D98E2E043D21F87864A4B0D8D2275144C18115695A762142F29EABF24A8518D85706068CF43DF88D5252C513421ECCEB57FDD5DE6B6044E8450FA4437F4D45FD5271FF64565CAE61FE7711548958D1F1439F0BFA8AE4E2CD8CAA084796CD86351B605F3313B3793A6F28B5389CB449A7E62CB5016B27A5AFD701672D89EB8D363BEF2363FCAC71050983A4643400823B7915AC421C8745FEBFC9098E911C02BFDCCC42A88E56F798AD010DBD2AAB03083DB597B3A1CA83208468845FF23261E9B0F390877FC035EF60B5D995EE9EC290FE2F869F95DFFABFFB4B01CBDA14563282E7B16C7DAAF5CF3F858B10EE0E28400C65B565A66BE25C0CD465ADAD26C307E2B7A4D476A6135A8FD904712AC7ED7EAAD87915C7E26331F007F2CBFF6D0248DD882BF5DA0D70CD223BD6646EE34E353062BD30241296AC92359F1C66B6BBA837CF33D1385F0773BAE15238957A509FA56A41058DD1DA61C188C9CB563DF80A4C16A091AA407A5E6A482CB8A3785941F592A9D5B2F2912A10A10B0F68A3B290F4EB64D0FF718DCBCA4D3EFDD13CA489EF85B87D27E067B3F87C49DA9E685D1FFF5B4C3E6BBAD5DBFDF65F15387B814477540F5D70BEA3C59FA3CCE1B291C08\nss = BA5F0E30257647CD1BA1E9BB446BF9469614351931907E29D7CCA5E87FDC476E\n\ncount = 40\nkeypair_coins = 588760826DCFBD36D9ABE6AE44A669BB3EBBA6A218EAB69E30F18A3BD536576E173DBCD4922B8FA921DC24240B2173C2E65A839357F8E4A93F51E7DAED4C8C00\npk = F6446774B30FEF5B426F563962CC29FF78ADE42B497DC3B970F1B848B1141D7A5F45A37C25B125AED61863F22732A06128BCA08EFC8CB176AB6343239B572E1C8C138D829810227AFAABB81CCA0A73131155377730A120558231E8F8A598A2B730578EDC7800B0D6C5627530EE92930EB2B40A9888CF648263B688F0A12E08F004F4BB449A25282029CFB73C32F8D31229D0A58E6AA08698517FBC5F619837AE3331CF763631D305E88C8F85413E9D5420CC282BAD24A783011184011A79A3B305DB5B3032B75C55907CA5C7F839320028305C439C39484895212B1E87925999681819416DCBC7EAD45AC2B1262154BCE16866C04561EBA2C9EC6022B07A57A67C7B901B5DA3BB8025C7585C86BDA0810C442C39374040236A82884199159729834663D3B1967DF9955DE3A387D93D50F5001924C4FE433D016BC2B6614F2D3BA72FDA226864AD6BA5B8C31681DC104348EC2B29C39FC9F567CAE17BDF1C6E215C92EFFC60E2D6A3A3106BCED0BF301B542F7987B582B0780B6D398631EB8559459B1DB01A0443100DCC731291C737499C2F86452394C0B6662401FB57A4DB232E40D1B0F2511EE1EB15DBF7B603E2A67808C064FC5103FA7C9C954FCD12BC619582F82590B323698A328CC14ACB87C217E39C309421C7E6EA15BA6C3BD8587126C5AA02C26308C9912D7262DBB91AC2C2CDBB9CB009A3AE10761771740B2E6558FAE775DEBA7A66086859270EC07B584334900C278002D8A47D01547DBA3036336616A8C12415B86A1423A6C9AAB5F085C7FABB6355B3DB4023E47C7917C10C284333110BC978B2C08E16512BA95A07237CC35C97BFA51BB1B25E30750E65664377BA49200AA6E935B4C7451E547859EDF03BCFC6904DF05220C02F5E576604A873EE82B7693B962853B5522A5B0986348DA63DF86A64671737C17201ED556E92ACB56F065EEBD31BEF43CA85DB1FEAC395E19110A2F0C5B90459838CBF779C27247709765569E5A649BF160301003169E4AC2BAAA4C4697F25869AB99179F9F792D9B19DF0C148DF7C6B9AA20E63426697D83A6E33B35F4C7E798175BFD73CE60A050146A3D893C4DC9B2FABF5960BD80FA0679433BB33BB91915E93C1EB2AA16CB13E0B9870FEF99835A674B1BB76946BC4064CAFDE3063498CA30AEB3983F5CDB3A6B9C4970459D969F4D8B6BA27755B6CA8FBCA178DEC28DFEB2AC03318BE7002A9A4CD7B1749A7FC7F09A6B560740DA89BAAB8130872510C99630F3B588069D50A9550C97F8198B7A46148FA7AC1580632DB1EF49528F9125784A5BB2757235FE44E74529A7CE88E91543B2FF81D9ED78E2647AA07033CF3422D34942E7830191B104C7ED56B8951A9C8706E4CB33CB0B918387B869084386420C13B09BE75D2A5E9276246B674E96BAC7782541E1CA441E53FF3B9C702CB95CEAB628D1617704A448EF743E8B811FE52C659CBAAE22377F28646C45642A9886628C9B73C510BBFB645D4077C1D8B954BDC8B707B7F6BC4701BB1AF0F28B88DD282B78B7EE96732521AA6180B6021AABB415839DC3A1F6F545C1320C58B965B62993ABF6A10C18A22CE6A45539685F297B1F04A130465845D189D17552E2F4917E924CC0D2DBC2DDC739F6B876472EB12CE233CCD402DDEF61523FD6FEE69A88F34A34C\nsk = 47A7741316BE87861AEC518A9B38146B43AA54A98F47E242866B8D79F731D98C754B572A2A9170A7EB4B0D73B38D6665D1E43AF0B61AB95CB54879707805BD787913EE369D231C600B76949BF86366579AB62724CAA1BEABBB02FC945BF007CF57A225AFA67393CC58804A15016A12DFB90D5A52BE41F907B1F2C4FE93712F555B0AE896E85931020089642A23E4C38581D4C40A46AA8DDB3C26DB0E29FA5F7A12B6CA32CD2AB6B50327AD0DD8139AD83DCE676AB2DC0C2774C86A2C72A5FA2D4DCAB588A66D6551C040E91AE045698AC0A1DFB95048C545D08654C1B560384561AB07BD8C61182F99C79A2267C961AE66434321E8501D474AD84AA71286A948C5AD187232CF72576F167D63992F62D3423CE75577C2052EF84019404B0E1706BA704FE3D116A518293112B8B80708C094BDE829AC38E362A404BEB67026EA6782362035CAE099302C5660931CE31B93B665059633699EC44C28C2BD230B1942421F12388900081618BB29E315BEEAA090A06AC7FEDA567FD1A12D1A41EBA931C279ACDB875D9DDB7CD9A6ADBFB32239E843012A8CB91776775408316B056FBC42758772C1E53EC0344479C2791B837A6A34AA77710D35593A55E57572FA99711BBE5A83454BCA7990E834BA285A09AA11666CB2B2F39704904354687D0524888CF6461EF302139B042540138E322453619B3DD715B617230E08C4585478F9996798E9B47C712F82BA45857551EA4C79B4A0577938666403174E84585E684783D33F3B701420F66D48473FC6BB627B399E90697E760783A3E09D6531CC524568DEF8507F0437314488AF7376BF2A6BACF783B632197D8565F9456D04A8476DA8CD6C988D26A56D29479A2DBB85AFC18DC81A8611BC4ADAAAAA440471B530053ADB874DB67102B6A64FFCA8BF8487E18B2F7582B71FD78D85F819C24B892741A83E67585B6B1AE5AB6AD1F5CC02AB78D0ECBE01087F46AC9BFCA464A4B9CA817C3A1AF5CB0A6A3F1DD3A2EC06774E805E001B44C8194660A280D0D59BFEB35EBE9C943E626B98E488F8984275401BDC4959993345C38BC801B95D56BBB47A2B23F5F1223D5A0E2A827D4578948CFC5432627C9586275679202E3C970FCC980AF56757912080072A4AF234DD030EC481A6ED8030921691D6126839635C6B270497CA4A87D4BEF47CAC60752383712636752A4AA18AF13BB36EF445FE653628704E4DC2CADD62839F9842F9B2C264AB4FF648C59D15708F55AE4A396D5F4BC75D20603C03CDEC4252FACC579A0CBD1F64A734E8350F03ACEAA2734DE2B486F6B93C36AC11803E564070ABA97D2309078FB43768F98EF5D03B09FA10FFBB0BEB3B5FE01310065508100206A640B93DE87BD94A634907730E30800803B233B95D1CC7CCE49C08AB143734347F3459A5BE0230F9481D50B4B835A91736D6A7B351C8082A4D080967B43B0553835BF52943A380051F48C27823C5AA0B20B7B733DCB004B2A7819BEBA4B3FCB1F991789C2C57CA01B50523214AF309FDF421187492C411C14128744BF4A83599A30B86194473C2BC9222FB4BA34108689AA8065AA24FF3559A76F759768C81A8CC5AA2A6792F3033B2437B05068BED096475D9280BF349F6446774B30FEF5B426F563962CC29FF78ADE42B497DC3B970F1B848B1141D7A5F45A37C25B125AED61863F22732A06128BCA08EFC8CB176AB6343239B572E1C8C138D829810227AFAABB81CCA0A73131155377730A120558231E8F8A598A2B730578EDC7800B0D6C5627530EE92930EB2B40A9888CF648263B688F0A12E08F004F4BB449A25282029CFB73C32F8D31229D0A58E6AA08698517FBC5F619837AE3331CF763631D305E88C8F85413E9D5420CC282BAD24A783011184011A79A3B305DB5B3032B75C55907CA5C7F839320028305C439C39484895212B1E87925999681819416DCBC7EAD45AC2B1262154BCE16866C04561EBA2C9EC6022B07A57A67C7B901B5DA3BB8025C7585C86BDA0810C442C39374040236A82884199159729834663D3B1967DF9955DE3A387D93D50F5001924C4FE433D016BC2B6614F2D3BA72FDA226864AD6BA5B8C31681DC104348EC2B29C39FC9F567CAE17BDF1C6E215C92EFFC60E2D6A3A3106BCED0BF301B542F7987B582B0780B6D398631EB8559459B1DB01A0443100DCC731291C737499C2F86452394C0B6662401FB57A4DB232E40D1B0F2511EE1EB15DBF7B603E2A67808C064FC5103FA7C9C954FCD12BC619582F82590B323698A328CC14ACB87C217E39C309421C7E6EA15BA6C3BD8587126C5AA02C26308C9912D7262DBB91AC2C2CDBB9CB009A3AE10761771740B2E6558FAE775DEBA7A66086859270EC07B584334900C278002D8A47D01547DBA3036336616A8C12415B86A1423A6C9AAB5F085C7FABB6355B3DB4023E47C7917C10C284333110BC978B2C08E16512BA95A07237CC35C97BFA51BB1B25E30750E65664377BA49200AA6E935B4C7451E547859EDF03BCFC6904DF05220C02F5E576604A873EE82B7693B962853B5522A5B0986348DA63DF86A64671737C17201ED556E92ACB56F065EEBD31BEF43CA85DB1FEAC395E19110A2F0C5B90459838CBF779C27247709765569E5A649BF160301003169E4AC2BAAA4C4697F25869AB99179F9F792D9B19DF0C148DF7C6B9AA20E63426697D83A6E33B35F4C7E798175BFD73CE60A050146A3D893C4DC9B2FABF5960BD80FA0679433BB33BB91915E93C1EB2AA16CB13E0B9870FEF99835A674B1BB76946BC4064CAFDE3063498CA", + "30AEB3983F5CDB3A6B9C4970459D969F4D8B6BA27755B6CA8FBCA178DEC28DFEB2AC03318BE7002A9A4CD7B1749A7FC7F09A6B560740DA89BAAB8130872510C99630F3B588069D50A9550C97F8198B7A46148FA7AC1580632DB1EF49528F9125784A5BB2757235FE44E74529A7CE88E91543B2FF81D9ED78E2647AA07033CF3422D34942E7830191B104C7ED56B8951A9C8706E4CB33CB0B918387B869084386420C13B09BE75D2A5E9276246B674E96BAC7782541E1CA441E53FF3B9C702CB95CEAB628D1617704A448EF743E8B811FE52C659CBAAE22377F28646C45642A9886628C9B73C510BBFB645D4077C1D8B954BDC8B707B7F6BC4701BB1AF0F28B88DD282B78B7EE96732521AA6180B6021AABB415839DC3A1F6F545C1320C58B965B62993ABF6A10C18A22CE6A45539685F297B1F04A130465845D189D17552E2F4917E924CC0D2DBC2DDC739F6B876472EB12CE233CCD402DDEF61523FD6FEE69A88F34A34C29253478090CB4D580BC2A912645BC685061E5D4437B3811EDA69C865EA9923C173DBCD4922B8FA921DC24240B2173C2E65A839357F8E4A93F51E7DAED4C8C00\nencap_coins = 52081A3D33DD573D4554EB48C3F83E7961C3909B6053AE3765369B2BAE10CB8C\nct = 43285EA237FD25EE82D45D3598BC34D4B932338962AD03D4F7BF9DDB083542CB372F00F55F02E2A122BE3135848CFE537547196FBE5E311CC07B5354ABCC221E967E854D4DBECAD53CC273E6699E6F7510DE0947706843AA805DD3ADE35BA39CF1F57CF2A1EFABD1E45EEB6E905410350828592FFFFAA0DC0AC7D85F0B5317BB14B435A69DD1165847D97B899ADAD88EAFA1DBFE2CC8FC2150908C90A33B8E63A7783B72A83A0476BAE35DB74052F27679257B95F2AF5D841D75AA4E0DABD8BB599781C1C06E380BFC33369A0CD687B3FEC78B8E667F98246A0E24C82993E647873E4077BE6A545EC55B70CC6D362A8CAEE31A20A107599B29BA2350E328D09CBECBD0D06B74A3B7518376BC3D4DF3628E171B4B9F77DB3A99D4938BE29FCDFCCC33F47CBBB1E24210A2301BF0A49C804E50EBB2EAE2DA25B17CE8A17BDAA5ED473CD17B70BD49D009CED7A517572B28295ED3570843509D3F15A1BA1BB55A4429805D915A2CD15CD56024C4AC082E446442D584172AE3B61EDDF05916DA2D63168AC3A2B6C1E61398F513A20441FED1016D7FC9D2957F5CE46B1D1B0DAF61974DA9FCDDE816146B480BDE4F50C6A1085C693DE73DCAE6767C52DCF8D50E8702991624DF13BE459B50FD2CB6CFE6AA840A7B6CA99E068CC9B0F62972EBE035DC0B0E62EFFC460CA0C6D79BCE59682800BEBAA590D486331EAD0A87CCC3A730CB8CB2C45841A942B22C6E4813ED836BBF64E3CACA10E87DEE4EC128DE3585BF5507137872ED05724C9662417B12D9F173ABB3BA53A8D0DDA67009266338E6CBDCCA159BE0390921153EBE7924BCD5A013915728769A4E938A7B69789582F0BF579EA7A7FE556A42362F32F70A2EB2721DCA8B6DE0BFA806DCCF736B3836716B2C62F7E788AE08994C307E4B1E8339416E06A94A640CF02E261E8F95989B8E0E8C74C6472EB6FC3055299F9BD8583B7F4DCB0D6912E028905CED44B072435B6BCCBC6235A386490EC3FB974CA69DA6244703D6599DEDD257BAF753404628FC5CC69166D87A33B79C9865CC0A0B0374216DF066AE3D74BD70EA5A2046723DAF58ECADD3675EF46AEF079ECDD69C9F0568830CFF5B36688B43DEBB867B9BC6C82659847E6AFBAAEA4905A5F24D1B89F1B83AAB3BE59AF99ECBB845F18591DF4D72B9A083E3F0C5D1ED9C8A288B3233634C02CD2E7D4403D0C34A92670D774E84D60352E1EEB246BF74EFAC67B7102064E30407AE35E024B1E8782AD34CF0D81404D304DB4DCE301668C6919323492335730EF79A3109B6366F46D4FFB797BA9A776248AC3910309B187431487D4093EA14F74ABE7453262A32D326E85E7561AF42E2B41996140624B8ED762B9331E5C5D9CEAAFA1CB89D61BE1D7419859A499EAF04C04BDEA6430844446AD34C831D4EA2FE1F349623AAE17C185238B2127D77FB40F4B318F2017A6782DE2DCABA0A0DC50444A5518DE73188B7B13E8752926BEDDF68BDA964F8337DF15A86A6795CAAD83A0BE7CFCE8DB60A98D00329455972303C\nss = 247562CEC50DD14948EAC590FA642A465B53B8009EDA63498FB5BF9C5B51E0FB\n\ncount = 41\nkeypair_coins = 47550E9EDACB6DDCE3D9AB81F6B61080DD4F2693854ACB05E0CCC7A4FB6390FB7E30DD3B9F9D66518A0525F030574C504AB3851B77857B70858C130CA20ECE35\npk = 5FD557F7434FCB61B199E793C5E763764C48DF412ACB7C756E1370CD117F8C10CAFB39CBF0C8C3F5DC8DA1855203D02B39647856B55C38E944617B8348D16A8221962A42398FB61978F40328C83A0B49BC843060D1711E289434DB4B5B0838CD87949DF5AC0727D8A528B8B5BF30CCB9E37A6664050CC5880D34C13CA42C1779B8D098C5E0876627C17A79B6BAD44A9A38C56883D97CF2D2B114A1C4F1A502AB4A9B7B5398D9E73E543B860F87062E27A9FD1A2035185F0D98857B0759BF1C39A41984C8C1A1A9027944417F84CCA0DD4206E9133F6EB6A989075D004ACCD9F57CDC928CD455443F0222DCAB9A8890004C2596EFEB06903B5D0AF33A88F14FEC760FC074A3DCDC744E9864E7EBC608A56002E483E60B8202B31377DC7F5A486D5A060733FCA9836AAEEAE05909C6B6B0DB4531271FE4F3548BD5BFF1E92160321218F963081C518874C0CBB792FDA4513F7902BE6547745A0879BA6CCD7C0F73B123DC605BC7995BDD14B018D8278C8C3966AA87A24B4A4BD3ABAFE0C8173C028DF14DAAD39C288943EAC139210392BED70C38D7AF7439697BE96977D23A27CB6E7DE7B785673C9D1B33A081A9CD417129430C6C6300C496B04E1796C9C781E4211915162DE147501B7BC55F8913C66C5CBD209BA6D115F753BA739417C8EB182200113CE17C935A0622DCBC674553B9DABCDA17BDBFB4865D58143C149512CC2E74A2B508F67BE8058461252D95042F8B7641E1D85161521B81A616A02110D7EA3BCA4723D003A4DB1673D64273B34C9432AC981A0C01DC8B8C0ED5A05D20C5331831CE56014AB0732B301CA2F8569FC061DDAA95D63667B9ACC7A1EA656F821D55A31B41F32DFB3B66DDD5CD2155438DB6923069430B61C85AB309BF56B0ECD990427C1B7D93991E783A647B1DD66696659B5C926485E1642854F0839033138A3A54C349C138977275E71E0FE985493CB85E0923095804037462AE248780006D0778334F664262E88498FCBB22D46D4F4291BB90AFBBD40FBF2B302415CF195542DCF3375E78602FE1067638AB995B70E6DBAF7B75BC11701207E489F361512B590A860401A3FACC1EF1375D8B64E0E5C7F863786D3984710C2F55ECAC578C41170194D832929075671B814FABF45C6E2BCDF8C0CBE2954C5A414E3F8878AB68CA13189D97F316517ABB4C5187DBB03413DA654E650EC1CCA0BC9472BD4BCC60CA6FCDCB26E77A025EB70EC0E60E20B19D30FC261AD11D3C0C56ACE53DE82C6A38CA5D59E9C24568B7CD15A0531315DEC20D9CC957FCF8958E3747471A8D944A6678F6AC8A8763A1759B3DC83EDD18CEEDA5036C31A897B65612D2B176E9648352899BB2869F48B1E70C1FF04864487258526226A7DC64306B6838F4286B9A81A3193F5C9C711DFC5B9FE79BC6CC14C934591F93860B66511AAB061295AF186B8CEFF5772FE50DFFBA4F5256522B5C7C55A6BA9B13B615FB3B3BDC4B159A1C84C85D717824A0573CBF219FD9B2A32AB66BF8A498A04AA4E22509A5057997B74AB5A1B27B96656BC194AF08114551709A41142B715C6E167E5BA5945729BFA702C236073FDDDB4CEADA972810253D642EC094333C028B0AF40CE2E29993369EB7DDD07164969A62466B80918873A4EA56CD80A8E559FB30F6CCE44F1F8FE60A\nsk = 35E4451348CFB9A06F1836296178B6AF41A1C0196F26525831C081EA779E6B8C4B3F150AFE2963AA756968358BFCD47D76415ED4294F02A843F89B87D6803BAD504A9165B9BEDB0C946058965B64BBF953E719160B53552C100D251CC9C111837E0A7C4C043BA0777E53B39F658B41B5F8900D4721268A8AB868B15A12C3B8F41316DCBE117AB3A027B8FC2CBF3566569A130D6DB132DDCCC5EED69A392BAE8E4A7BD6C9708A48BADEBAA79FA1AC1E729EEE0399803A374D3733AE501F1A846CD2F5166DC31B4D53750BCCCF937B1CA43C3A6CD5601EEAC251F9AAB8B2489E22CEFF436F1142CCD1BB17DFC75DB6125A1A433325A5599FD23B49BBC3D1B9195B984303735F9F2646EFD050097AB23A8AA5569AB744A934C2991BA046CB012467D39C3936EBA9CFEC4268E1A0EEA559980133B4121F9D5A603E092C199818C057B7C841A7DD00AF2C0AB3637878A9EA90BF377874FA38BF290FEA6131345340857A1A53D4BDD9201B99FB628D975A91001F907A2E9AD37C9B99B8AF915070339FDF76125D9556B1716CB74A9F18092AFD887880526FD82CB002CA49E879C50E33AF2E747104674EB1F30859E3C22F3AAEBFD30FD672B6AB855928C4085130488540C8CBDB832AE25249F46B7178AF9769A4B359664BA48DA4A746C215C58AC2752E43835B5C2A9EF0A3FCA159D29038CD60CD60F5BF508521D3D59C4F083653264776501B4FC62337FC37562973A1F9BD9532B4BDB25C21597A11E17096B155CD43C76874C44F25C1AA1BBCEA897367536ECF4124FEB6CDF2360CD5A082AC03B5E94232DFB44E1F124FDF65A4BD03B16ED729884065D77135F1F730A7A91FC2EB43271C0B2BFB8E615C07DF54041917A95B0544E8513E8C6060D14C0FB802C0F2680051341960654F3594C9972C08664B7BD30B2F031827307B95FC525A2632C2456041B1286D6F175BC0B41942E8B8BE69BB364A11AB4CC199F20AEB516CED1ACC1F4B2B91B860331677290C643BB9A00B4B65644592C5CA5BB19B25D2A7080CC32B08910C137946A3FAB6C8E31A1E97A4735A5C0A239B073C6E056053CD6498117497870718D35235019B3EE6050DCAAC31A27167FE35CE57586C364C13BCC7587CA066C6E05673E2BA0186281D94843DF10BB3A93C05025C0C691A0C41B229A55B7B506724026C4F1B48313788A212B0C951783EC9447E64314E878734AB59401923ADA0586225C7A5C00A5F97BB76632DEC47C15C06C7C20090C790404B3044136C79F46181CB1123A7D3CF969B72F6CABE063A35774A60863267B1BA34B93A5D3DB25FECE84A02429A9D142ED897320BFCC114391BCC097A078B04BD9356113B3CB993C19384886DF182E37BA659D5B8BEE24445411E318CBD092B8F8E53C63BFA3896A2CDBDC66E27F25C83FA85C260A34FD6CFE6872172F1361AA125E6C5C6C902CDEC68708C14C175E910CF002AD647A317F78F52F76BAE006A3AA51780D37A00AA20C6A532281719C5AC88641A9D15549088B5A4DDA23F443335ABFC5C2F7C5BE2A142740CBFD612A83AF271AF0AACB43833B56295B51A885D798825C3A2C04B399C528530CA24117B6E762C7B6527B0509B5963B68560015DB4D4895FD557F7434FCB61B199E793C5E763764C48DF412ACB7C756E1370CD117F8C10CAFB39CBF0C8C3F5DC8DA1855203D02B39647856B55C38E944617B8348D16A8221962A42398FB61978F40328C83A0B49BC843060D1711E28943", + "4DB4B5B0838CD87949DF5AC0727D8A528B8B5BF30CCB9E37A6664050CC5880D34C13CA42C1779B8D098C5E0876627C17A79B6BAD44A9A38C56883D97CF2D2B114A1C4F1A502AB4A9B7B5398D9E73E543B860F87062E27A9FD1A2035185F0D98857B0759BF1C39A41984C8C1A1A9027944417F84CCA0DD4206E9133F6EB6A989075D004ACCD9F57CDC928CD455443F0222DCAB9A8890004C2596EFEB06903B5D0AF33A88F14FEC760FC074A3DCDC744E9864E7EBC608A56002E483E60B8202B31377DC7F5A486D5A060733FCA9836AAEEAE05909C6B6B0DB4531271FE4F3548BD5BFF1E92160321218F963081C518874C0CBB792FDA4513F7902BE6547745A0879BA6CCD7C0F73B123DC605BC7995BDD14B018D8278C8C3966AA87A24B4A4BD3ABAFE0C8173C028DF14DAAD39C288943EAC139210392BED70C38D7AF7439697BE96977D23A27CB6E7DE7B785673C9D1B33A081A9CD417129430C6C6300C496B04E1796C9C781E4211915162DE147501B7BC55F8913C66C5CBD209BA6D115F753BA739417C8EB182200113CE17C935A0622DCBC674553B9DABCDA17BDBFB4865D58143C149512CC2E74A2B508F67BE8058461252D95042F8B7641E1D85161521B81A616A02110D7EA3BCA4723D003A4DB1673D64273B34C9432AC981A0C01DC8B8C0ED5A05D20C5331831CE56014AB0732B301CA2F8569FC061DDAA95D63667B9ACC7A1EA656F821D55A31B41F32DFB3B66DDD5CD2155438DB6923069430B61C85AB309BF56B0ECD990427C1B7D93991E783A647B1DD66696659B5C926485E1642854F0839033138A3A54C349C138977275E71E0FE985493CB85E0923095804037462AE248780006D0778334F664262E88498FCBB22D46D4F4291BB90AFBBD40FBF2B302415CF195542DCF3375E78602FE1067638AB995B70E6DBAF7B75BC11701207E489F361512B590A860401A3FACC1EF1375D8B64E0E5C7F863786D3984710C2F55ECAC578C41170194D832929075671B814FABF45C6E2BCDF8C0CBE2954C5A414E3F8878AB68CA13189D97F316517ABB4C5187DBB03413DA654E650EC1CCA0BC9472BD4BCC60CA6FCDCB26E77A025EB70EC0E60E20B19D30FC261AD11D3C0C56ACE53DE82C6A38CA5D59E9C24568B7CD15A0531315DEC20D9CC957FCF8958E3747471A8D944A6678F6AC8A8763A1759B3DC83EDD18CEEDA5036C31A897B65612D2B176E9648352899BB2869F48B1E70C1FF04864487258526226A7DC64306B6838F4286B9A81A3193F5C9C711DFC5B9FE79BC6CC14C934591F93860B66511AAB061295AF186B8CEFF5772FE50DFFBA4F5256522B5C7C55A6BA9B13B615FB3B3BDC4B159A1C84C85D717824A0573CBF219FD9B2A32AB66BF8A498A04AA4E22509A5057997B74AB5A1B27B96656BC194AF08114551709A41142B715C6E167E5BA5945729BFA702C236073FDDDB4CEADA972810253D642EC094333C028B0AF40CE2E29993369EB7DDD07164969A62466B80918873A4EA56CD80A8E559FB30F6CCE44F1F8FE60A286DE7DC142EFE935E84B0AEEBBD32D050FD9D8B008A94E59454B19EA401611D7E30DD3B9F9D66518A0525F030574C504AB3851B77857B70858C130CA20ECE35\nencap_coins = 6A56EA6B25105666B70C77C9027468B84E2B069070EF3380403066430733575A\nct = BA04778D05ED448B71B15650A7511AF5C093B419CA99716132BC241E4E719B36D6B90AC08AD151F75FE51C3102B066C618CB0F71A73A62BE505C614BBE11EA26A654F6859B8B1C34E547B956137A73C0DA40A48409178E58CD3F2B7B9EF396C341EB5CC544D7AA5A27140CB61B352FA089E37969330FDEFB39F7948DB00C0BCD8F825F19954FBB8AF0AE9A12DD2DA30C8218C33352ED79F70EE8B734F8E9F7DA8673FF996EFA862503EBAB8D7659096EE9F5C6B152B67958C503CB452087C89299097F410DD6A6FE3113961297D97AC6DDD5A6B6418E36872E2566122C4CFC848DF8F64CF477C1839C8C6B69FCC6C6D668D290FCDEE1D2F9E49340BDFEF34739268F18FF2AECF83F2F8D03D39517B3AFDF35808825C6BD0872EA9CC98CFC9101B2CEC55CC6AB6DADA8AB042147BED31F74245E09460706B0E4E999C586BB70C2E07E94BC5787F196E2FE3B6163481ED917B4E3D751E33819926AE359981F67762BE62A645C45A5FABB86A9CF67D1DB5FB57E7583C67D98976040AC8E23B03AA0808B670FC4F8A6DE255D4DC12EE1C537EA189CCC3D35423937A6626D37F4AC03BE8A9EBC7B8AB597078385327F4FC7EC10AE8DFA53CBF75B6E222C347C7AA83675A01D2613C05E404EB13057A2C2A222AE525EE2D5AAB0489622600223A25ABB44F42887722F31EF64766EC80859986D5F2C2AA0B1570492B39C28E7F0D3CEC25AED62DCA0791CB42145D5672EB2A252457701C00807838D2F8AD1493D3500ECB64A7B2856898E979E4947E83D4D1D2AD4078916C6B31E936373C46860AFCE5F2A2F186FF79EEC79D7794BE73875F7B76C114E1523B6460B2039BEAD802255801F682C120638E4506C1AEEABDDD5D93C550EED03108CEAD1BED23D4573BF59CA7AFDEF0054448EE8DDDC91F339A8C5D23B10042CDAFB5BDDE4ABB0472E8B02CE4DF2BD10BF2EDAFD6F8A3DB05FAD66A6610A66E4F4AB5A93DE15CCC25A23C438963B5258030BBCE1B2268958536277ED91A07B08713B973BFCD1F151EF4039E0BD9A5D605AE4E82E97D90EE5EE6B83469FB4F4649B8D5E6B2EFC5ACB710E0851CF25A61ACFDBD1B127EE48358A62218100D2AEF0B7D4684C1A1C3DE597BFF8C9073BE1D7ACCB97A0D9E75683C7E53C9C01BEDFCE8A10FF0121AC388E8E08E15B1667AFBAE0CA61C9544E62A91A34D0A9C3BAF02F010DA20F601690425D229017FD543A2D8E7D9C23CC3778302B853A772E05856104310D119456100F753F8347495C0C7FED930CA8A1FD0CCAA427E04E9E494F6E0D9625E5D7158E598383E2A2CD2BE71CC6C0E20EAFF950FC8FF8BC31861351241175D309D99696D739EE55E60414361F57B15FB251F550B439CC88CDF1A792A9692D611934AEA9247EEECAF733A55EB20B29D6E4F18A826ED360445DE3711A179411C9220884807329F2295162A748CFBAD260DD850CEF6F92C730333A89DD14A2EA4A61E46A21D37D925F7698F0DB809535F39FF0C6419887EBED10F84CC08DBADFF84AFDFD20C512F34450\nss = FD125B3F05D1EFFD5D5780F04BCB63093A5D46546672FDBB3C20C9D88E178C97\n\ncount = 42\nkeypair_coins = 610AFB64BE8CC1DF288CFB016EE2F44C6C07113DE7F6FEE071FE0C3FE31C621505913FFC8D7FB91C97DC1E0BEA9DC9955FA28B3CC0B7415C192F81912D70516A\npk = D5F135D06AA99635C9B53244E1F898D8494B681312BFD243C8EA5B7E71CCB7A5386E477D01FCA3EF4122A63934843450A446CAFF55184D052923A393FD887DF6B045659CC282D1424B19B17CC2A2384132EFF067A0347F88C6B392AA56A3519A440438D3F90F6941112124C91FC31187AB0CE6752D9B336A1E230F97837A657599E253B7798C912A66A48314447C352B84590941355C6BD1C0951374105858A46502EF39CBB58B8E63A64E2B99C4825912155695893A62AF6745E76058D551A946161F25F1B8FC045602344A7F342FACC50E9565C1D59A459D34233C1921CEAC6E0BD936B496C8FD6A619D8B0649EB458F8943EAC97293635092666688DB559D255CE9F280227755C3605D6ED007CA718527227FA1F40DBCD88792801D8DB6B2374A23178A72276C790F902D7E969F2686C9508186788905E77132DD909397F6B6BAD3CE77E8CD4C4A3B9686CAC35ABC86D57E911CB58B0C997C1935CA64918370809D3B1B70CB09641878E7C0A141573030AA2B687761BF43AC89A81E73376793ECB32DB53368EC9E079172E9AA482FD8652583B9155683DA3467E4546F26AC98371487527C37B6646CA582017892A188FB2440CA7240C3C22577230B59AB8EC038BB95CC49C2A2F59A4A22C0C482713544FBCA9D7404B3A6AD86E8764A601B7084289858BF62A2828D3091FF015089726CA23B1CA0F87195BA1ABF80B01F101F8584C15289196744500000B431A60267174F2CC56860BC5AB4EC20D19BA8ED47535EB42FE1D33F2980BA211805A3618F2FF64D1CC634CAA6B40FD23615538366DBAF41971D8B5857298C1E406A293C1B8B7F4A499A97BE8CC51B5382020EA9C7CF809FA7323134290FA461218F4A6F495CABA2D1511EA48B7E0905B0465F7A6711F2716B17DCBB4B9A1B31933D7D3622315C79F3F11A93C8058FBC01C4839A808A5D2D45B99F7918FAF52DB1D81D669C7988BA7EB8847187AC7B76404B1A139DC4E4917C9B4E29833FD9FBC36E4BBA96E25BDE691CE0C369ACE7183C762BD04785EFCC6B614165C014A0FC4B64B24B3B46418AC5B6B7BF69CBC75090B69AAE46B4A12FEABD4E134BCAF14922367B50F17976C6705E175FF34612CF7B086ED733DEAAB0CA815A53C99B2985963DB89BDC284D251340B0E3AE20990EE93344DEA18063DB6EF4374A331244EDE00B46676475937A9472C82E124B1751A9E4203BECC77ACE092B055ABF0892637B39C3A9A011219C88139277B8BB73B9508142421939380ACFC2B81523C72E923609A0505E2979E086AB85F9663E549F3350A694458CE7B02BD8716C0F8B8946A21D99D97632952BEE898989C1ADEB710E15BB25B0A22BE598A65465BF2B899719D00F9D16367E9436803BA8C17B6B3BF62A10A017C177125396BF6745163FE24C455319CEA69393CCBAE42508156167B28A1D1050BDEFA5A789BC389031BD86E72AF5F5BC80A215260737839654998295D5ABA8C11A5417B55D67201243393B7593400D46CCA1D321C027BFB09CB08A1738C88B7D47E876EF7517F8D96CC1C93B9E93B7062227A55996FA958A684AAEDA89587B015A6B336DFB610721298AC6AB713F3A2E37B2AA7B1CCD2A876F03C72546B861E351A73036F4B363137340EFA7764C439F68D3C8E0723683AA8254A66284F447\nsk = 03A941A829C025261F44172ACF806BEA5B216B58BAB845328C36CB925A5169D6B1FF141BA44010FF2C1A446113C443C6D98CA879E673CCCB84D5519067619EDF59C23798B9B6BBCDC0D49DF5F4B21563AE54E287DCCCBE4C53C62918A6A213C460EB8C92377CB57A1B6D6467D40297FB90C6907B6BE5B03DB314C3AD5B2F46999743EC7FF0B055AF2B2753695395C6157C60115E183DDA398D136806B7017BB4FB4F36B7653BD17CABD1BFFEECBAF2EAB65B853C710820818B05AFB86388F327FEA6C3562A027C610AFD9C0BBB23A571489120C2BAA0D7AEFFD196B2DC8B40D4016FDA16062512A64462FE806D5959C49DFC0C9B2955E6480B7AF0011EDB2D44C6A43D08B5F469656CB9396C9C640BB077CC24AC0F293BAB4CBADD998ECDBA31534408B74420CB432826CB5DC8224C48159626053096063841153F723761F83315629C945778A24F826A28A90A5854BA7E80C48E44929EECA17E28304BABCD0AF4198962A045292F09AB5B7197A685A67D07EC9769B69E64EA1457FB8E1A70B23AC4A797132B021244944143E936C6E5D840494B674FDC9AEE84A091175F8E3121150B1375E028D0AB6B709A443F14C56AB67E3A8721A4B698EAC9615FA12C0E5277E4A412508446ED4999687AC5AC626CCF5468F3E944B8D099FDC319337C85E5024A0798556CFABFD47A40146691D32C0F179B5BB3C30", + "88F2CB29E2B961B630610D1528FAB952DC75D23339C26A38F68421C12C2360F369ABCE128CD64551CA29455E02AEC7C359CF9182F5642F1BAB42814AEA8F2844AF15670421E0E113063B4B8C614487F6B6236DCB21E48613C0635E5F6A6A6E070FB665756F98156C65A6F407E1014BD6540A92E8A09EF6C944DB876250B951D16332251C5BB6B79F88928ADF6BEF819A241068B08337136B8BDC33476FDDB0292B68EDE75490DB193E267BBF2F8459FABB17D10BEF7018AE895995200453065AD45457E3E86A12C554DB3617A99613767598031C86BD5815585444DFA41CBE068034FC0A1CC2636D010230870776D2645DB640B409A292ACC909AAA11D0D05A1B1469EA2673020BB7EBC7381190C271E2CF73D37F61F12C8389843B0540117C7AB924C140D1409F701AB0C0596103A1AEF3C93A2A79BE19C7870ABE83232A7DE265A1A1280D30490FF50C414A006D8A403C50948DA4B1054B18BE35A8F9252079C5ACB2104BD42CCB51617839E07380FB3A62B3A5080295BCCA410215AB5C30A89B727363185363027BB1A6B09FE83233D79E4527371ECC8B879C81A25B3E6E088D2E786976396EF8D6C383495B52EB69BB718DD7FACF5F120303EA259FB2BC32A5269AB45E6BD8AB9F9456A68B869A4C13A0B6C98DD1BF276572EFC9A31591ACB33B9945919FD20495DB284BD4BA7C66620754E58396C0A191F20304B545AA2279CBE62D08EB4C82E60569598147F9910EF70ABF792D375420BB999E4A9CC28DB0193A124D0CC78807A54D13933B25B350A16C842E4B31337BC7734104FE564C20F27ED6AB800717BAAC4A9C954C6EC5238BCDF309C6FC497A6A9B9E4973D7D44EA53B90DB26912AC7796C327D24D3705DB5BD0266B17B145FD8CA77624C8ECCAC1C209073B2A639D5F135D06AA99635C9B53244E1F898D8494B681312BFD243C8EA5B7E71CCB7A5386E477D01FCA3EF4122A63934843450A446CAFF55184D052923A393FD887DF6B045659CC282D1424B19B17CC2A2384132EFF067A0347F88C6B392AA56A3519A440438D3F90F6941112124C91FC31187AB0CE6752D9B336A1E230F97837A657599E253B7798C912A66A48314447C352B84590941355C6BD1C0951374105858A46502EF39CBB58B8E63A64E2B99C4825912155695893A62AF6745E76058D551A946161F25F1B8FC045602344A7F342FACC50E9565C1D59A459D34233C1921CEAC6E0BD936B496C8FD6A619D8B0649EB458F8943EAC97293635092666688DB559D255CE9F280227755C3605D6ED007CA718527227FA1F40DBCD88792801D8DB6B2374A23178A72276C790F902D7E969F2686C9508186788905E77132DD909397F6B6BAD3CE77E8CD4C4A3B9686CAC35ABC86D57E911CB58B0C997C1935CA64918370809D3B1B70CB09641878E7C0A141573030AA2B687761BF43AC89A81E73376793ECB32DB53368EC9E079172E9AA482FD8652583B9155683DA3467E4546F26AC98371487527C37B6646CA582017892A188FB2440CA7240C3C22577230B59AB8EC038BB95CC49C2A2F59A4A22C0C482713544FBCA9D7404B3A6AD86E8764A601B7084289858BF62A2828D3091FF015089726CA23B1CA0F87195BA1ABF80B01F101F8584C15289196744500000B431A60267174F2CC56860BC5AB4EC20D19BA8ED47535EB42FE1D33F2980BA211805A3618F2FF64D1CC634CAA6B40FD23615538366DBAF41971D8B5857298C1E406A293C1B8B7F4A499A97BE8CC51B5382020EA9C7CF809FA7323134290FA461218F4A6F495CABA2D1511EA48B7E0905B0465F7A6711F2716B17DCBB4B9A1B31933D7D3622315C79F3F11A93C8058FBC01C4839A808A5D2D45B99F7918FAF52DB1D81D669C7988BA7EB8847187AC7B76404B1A139DC4E4917C9B4E29833FD9FBC36E4BBA96E25BDE691CE0C369ACE7183C762BD04785EFCC6B614165C014A0FC4B64B24B3B46418AC5B6B7BF69CBC75090B69AAE46B4A12FEABD4E134BCAF14922367B50F17976C6705E175FF34612CF7B086ED733DEAAB0CA815A53C99B2985963DB89BDC284D251340B0E3AE20990EE93344DEA18063DB6EF4374A331244EDE00B46676475937A9472C82E124B1751A9E4203BECC77ACE092B055ABF0892637B39C3A9A011219C88139277B8BB73B9508142421939380ACFC2B81523C72E923609A0505E2979E086AB85F9663E549F3350A694458CE7B02BD8716C0F8B8946A21D99D97632952BEE898989C1ADEB710E15BB25B0A22BE598A65465BF2B899719D00F9D16367E9436803BA8C17B6B3BF62A10A017C177125396BF6745163FE24C455319CEA69393CCBAE42508156167B28A1D1050BDEFA5A789BC389031BD86E72AF5F5BC80A215260737839654998295D5ABA8C11A5417B55D67201243393B7593400D46CCA1D321C027BFB09CB08A1738C88B7D47E876EF7517F8D96CC1C93B9E93B7062227A55996FA958A684AAEDA89587B015A6B336DFB610721298AC6AB713F3A2E37B2AA7B1CCD2A876F03C72546B861E351A73036F4B363137340EFA7764C439F68D3C8E0723683AA8254A66284F447029A2E12C3E6AA668AFB5BE8A82576813FAC7B8E61C5A88AFF94ECC2770C585E05913FFC8D7FB91C97DC1E0BEA9DC9955FA28B3CC0B7415C192F81912D70516A\nencap_coins = E75C36E2C2F58F47597A06FF4BE1CACA2984C889E08A9C9D4B2831D6A6EC17E1\nct = DA5BA9F8759303D89B9BD2E7BB0369E703BAE700A65BA8A9ADBEEB6407BB83A475BC3B622EEC072EA4B16973E2DEABF87203F3A283C5EA343FCF199588836E88AA62018F0DD1969EAD44584196E2419584F26FABA9975923FB34419E3B42FF55882D3EDD07BA0664032D105B86FD08CC72D53508CFC659326A31E719630954A96FA3B4513A69CAD5FC00CDD8E83D85AD21F4FC134F8F4FF01E1C7E6433F8A501BB5CD87A5933BEB16932483C0C9143E233E537B4DAC97AE1DA6AC17A622415A10EADEFB5A0291C165B4D09FC42A584E15482A8C064D31D08337FAD45D6BBC0FF3B42004FE76A6D73C161264429E865F486D66E26A3978A939FBEC21A0FB798C16A967E958EEE896D448ED9E71DE68B7976AB8CE4B3453F8E8A87CCE6BD1853C199BC0C266601BFA1CC9DF42E54A74EE4B8A5011E180F4758FCD1150B3DA0D80729C3721EB856B613C7BEAD0B7EE557AEF68ADF105C0B8381D5D1788DC2E178458F28E8D2DF310EF26083A8C21C7AE5A43F91FA1E6C83012D87A9BD6D2302361F7E2779E91D1C6D2C58A1FFB167ADBC1FFC52878340DB9C423A61F06539AE3282DF44DC466034DD2897718B01226E88CB9CC943BE902350FAC2266F3CA485ECEF3A54C8F73183AF33869C4D6CC969BE4E9976609FB48303782F21782280600092FBF5E00DCE7CD6947CE390D3F4F3D20FA557E67EA49DA6B81F0CAF72C619095A2221D7AE4462C478C70A379D64468A30E4E5EB584A1D544FAF7E1D8B650D140DB1E2FF66E4D9D1B4148990606F38C74068271FA7D8F583651015AF891DC2DBEB0AC03A702808DA5E8432D24CD70A0BDF545BCA59518BB833ECD3564A3C1D27F055ED159DC3A81D6BD93CEF3FDCC5722F1658AF488DB4160FA97E20D5DBF16CBF6491392A469EE585403127D6DEFD434B3EE2EC6355CBE865166176817E0B3CCB87206E72DEE4155B834252810A7362DDFF9DB5ABEBB76CEEEE10EDF9C048479AAC5F171DA5A9E67BACC9ADE65B4D540E4629929EEF2DCB1EF6999682EA0A8966D551D2CC643ECBBD51541587BC2B0D16975FEA30A46043B490ED70E7A0CD3BA6C1A0ED4B1122361965F0139D3D45FE38FA9B7DE94BE4454D57975C9F83D6BC69ED644309C621176F0ED6A9D47EC5EBC18441CFC69852D7BFA4921E9FE409AAD5A67E6DB7C40F724F9DDA2DC982FA831FA09CA50D73B69E554127796BF5B9C7530C087667E3A4D488076B32D45E483EF59CC8D6C2FF89990006055145979369420647849406A4743E8355AD1B5ED56ED5D796C44289C1DE9F83D428468E79242ADFAE7BCB09667EFAC67E59C9E8FB9476D5E7CF55A4C1125054BAC8167F1E5D3F354DEB8AA7DEFE422A4C107330D07C4E1C736D8B51EA340EC94461B87E75F498ADD59CC607A47DB7190896EDF18632EDE519A0AC2657D415FED03E097A463D6C7127A25AFA34EA0617BD4F297DD37BF0A8DD2EDEA47655035F93193C68035BE223833FE08624353E7C3E52FA5335A2D93EDCCBB27E7109878273C5BD030B889A\nss = BCC9C42039A770E1846A38E37E1A5E7702300E9B29DE5241208BDA4B1D8FA98D\n\ncount = 43\nkeypair_coins = E1953800ACAA85AC02A906C72CB8E8D704E8D27820345F88F71E89C1F549AFCC97C65A12D87432F475509F11E0884FB51B5D970C1B6D2C87C70590CF41C16B4F\npk = 26AB73A3355199A1833A1268A37A087DDB57AB621046DB1F407C804C488E4196048CEB762B9024C2157E7DCCAA1A762881280715A1467E766DCCB159F4780A39BC4F4A59715700070318C2AE03706B639F79A8A81AF34FBF6C9ACE4843151AB5C3CC81AF08CE392335E4FA913052119904745EC68CF3502F4663BDA74522DDD61A318539E10A853BC90A5B06AA12018C6BAC4A8123719C567719CB723B420540EBCD84C2787F37A76C6C40FC983436C26F7FDB14DF17062BE752AF2C1F1CD1026856500F3831CCA75EFF7A08D4D9C819D295674550C1C951FF9A0155856C3CC143824556C09025D55B0DB7192D969926C18912BF5CA8629401B8C53E23832CEFDB369020583B360595541F48573BA1557FD0C1058A8CC5EA7CA7F092B7DC7B4B04490FA4E72A37AAC0E33B1746ACA327258D9D29ACF140C5F70B8F94A23195D60D30A498259C6F9D06BD69F82398953B4FD39ADECA972851431B59C9614B7867CB1228E2519AC130F003903D801F70BCCD776A9B916684CD89CD71723CA732A21FECBB90D547646B987155CF5425ABBB2406CDC1821AFA8DA120A540D1C3AF175032444E1FD85F43F47903665BE922636755B5E75A90931C66E89345F57CA4A032959BDB4521CB62BB1377DC5C99FBE36C71347B81A80B6B7251FAC3732475009A719F4374BD5FF01CCE4601E761A754E05756968F33FCAC4D6A540D93951D0BB4D0D838A3112872020C2DC67718888DBF408941B877EB6543432675C879AA85F102E608AEDF267E32D333CA9C3860F907F17B553580AEC75902EC304E6C7996EE34061B40A9F4F8BA2CCC55775490DC9C2A6D5C0134E809BD305D7445C9EBF7B89F9604146B2E55A1090597033BAB2A25A3886DC524F4908ADBE98DC2D74386806AD641712D9C23A19562E4AC7F57A86FC98663E455BD963C4E63D8471B504C14EB718D8BCD6475CC45687F55099F8FE2035F3812F081B6DF2A174999765CD69433E5312BE67698346FA1030A40943F8927B2CD8A1E2CF2514333BCE85A89A6A99D03C4A5C0B847550972F9D1448D1819B3582B99A50FF97C124398CFF30967013C4DC4D374379B4E8B037EB0E570AEC147A1C99CADBB651BFB576AD61BC5449C5737BC4BA4A01F24AAD80375ACBCBAAFEB564665A192211B4D6918260C1251EAA1014C6F41427465609310D8B665C6763639C71AD48019905CC0874BE438023936856017B5562A9EE79686BCB55E04A38EB9B3BBFC07ACD4865860A77AF3B5ACF7DB344F139F79D5953778124C2C92D29CBFEDC21678E54861ECA5CD350FA09B1365FB74435316F37386B9B510E2BC585DA30A71ECC7B99", + "13921EC8D8FBA2DBC97807B693B1E306832507CAC90410E0576611BA79C1CA9C0B106D0147680790EC5051798592D3035AEF57A0174CBC70B435710C51695852841907D41A8180123A4D911787B674ACB513C84047BBD5851C3E83A8A046062C06BD84397858241C95B8D8D2A2C53038856247506065A70A5A29B701BAE1B488A68C2BF02472D86BCBFE263E7820902102C612747CD60344957A871C7774A0980B70B56F7BC45F8E2BD2085AF080CB923B55640BAB2AA2C30F206CCBAD17BC9F58C1CDA80399962268F2AE99C43BBC1FA7D8949CD772A745BD9AB018FD3F6ED02F32CD2BF845923\nsk = C842401604C8C4C78D8417C804C2723B14733044AA2755897F65987951218361A07AA84D6AF8A956454036B79E145C93B9D4B862146BD4DB824CABCB61FB91BC306F851C9E93AC266E3C9E9C939BE422B07E512D28503A6EFA9D3EA8861E39B1AD481B8AD1805A8C0D48179AA1203C2ED7BB59D5C8EF651281C77F83AC7B49EB997965B161DB025B47CE6E2C09EDD41F5EAB1C8B7B4D20783D60C90DBFE6AC387B629BE10351868186F6A0BF68905F8C1CF34303FB577C25212919533C7044697D9425BFB76BD9D367F43B2D3613351D95395F4C2BAE63B2A4608C69364F41E85D542A08F35B940FBC3B48F63360B50AA88259C7CB4634E5A34300C5957A3644F6AE381389B53210110329FC61519113C17E64782239941CFBB11A647B814372E313205844592CC3C17319B41FF21A0BDA3F5ACAC3F18BAD085C8F27B7758B7519316653BA9C253DC94CCAD37F98D00B9FE67E2A13662C77921E4A9A86C8089682811E53A60B1089A1038483E615E6EB109A3B7636E02A44C2C3A81B96D84336CF594D24172BE1BBB9C7B3685EA45E45B81D731B9B75CCADBFDB768119B20A0C346156CBCD5BB107A00A0E3C6E949B9DB0B4AE21026C915908C5F38413C648EDB20623F35B382B0CD5F4A8D7062BEBBBCC9E809BDBB5C84042BCE2E81BB0D795C6786AF95A7E7B0629F7978A03558F98709A86319570273BEA71986AA92560260D022569D4C98A85BB98AA198DEFF63DC6BCCD1E6032EBAB8CAEE5CF4717B17D89125C67A8A472C371153A4FC9045FD3304A74B983936060F42C80454A005342C1318A284BC5B9A71A39E748A94739536B517DAC1619C00DB64C81001ACBC2793F9F29B42214442FBA962F331D48C300DA2186D21A4DE61C4B5948C7EDD1B9FA5865CAF2280A81B9F7171137D6A678C92745B1AEB9DB686BA84D65F6BEABE332FF036BD113161FA068E74032CA5736D3EA3A01F1ACFE067DFE5A5B398575BB9B148EE6155BE2B4B67B348420CE758C5855102FD06A1FE8D347EF1B073F064F1F7926BE5B2343029E5B7468E93B8ABEC6BE231B6BEE714031E04ED23C6DA37032ECC00374706EFF7453DD931D80029382F17E82A85AD7A8B25EA97D1D2AA21238B25517008B0400281168328B02869889F7F142CBF1AE8DDBA5EF2713DE649AA9AC56229494DB211B90B96AE3B2829AE528C634110A3BCD355A243F3654295B0B79B9B7D43272321959B3632313AAC107C8B7AEB83172778B7B199E736307FDF5AC6AEB40CFE750B7227F46A00B9000880D405877B63FF6C616BF4A51CA11C863A79B0E099308B42CBB7997420008268A3B762B9A5E181DA14A4A92A5B55E7950268A9A83402889A98835CB9562A5A627750A5348B3398B39783009A081A058BBABCC7740AF00B8CDBB4E0842C7F14B47FF4CB424B6252CCCCEE30398023A9B50B4BB4A2C1FF0A007A0A54EAF421FC2113F0353C7A1DA6CBF3C7F5B448B86534FCE3B3B82C3B82C3420BCA7C865AA22461B3D95522E9792B37B78C5555A62A3439F3BA7646076111336079BB8352A286E542094BB58B07CB832E2B288021034ED4934469B1723E57E57E358942730196140F47658258A761EDCBDC046C08BB89726AB73A3355199A1833A1268A37A087DDB57AB621046DB1F407C804C488E4196048CEB762B9024C2157E7DCCAA1A762881280715A1467E766DCCB159F4780A39BC4F4A59715700070318C2AE03706B639F79A8A81AF34FBF6C9ACE4843151AB5C3CC81AF08CE392335E4FA913052119904745EC68CF3502F4663BDA74522DDD61A318539E10A853BC90A5B06AA12018C6BAC4A8123719C567719CB723B420540EBCD84C2787F37A76C6C40FC983436C26F7FDB14DF17062BE752AF2C1F1CD1026856500F3831CCA75EFF7A08D4D9C819D295674550C1C951FF9A0155856C3CC143824556C09025D55B0DB7192D969926C18912BF5CA8629401B8C53E23832CEFDB369020583B360595541F48573BA1557FD0C1058A8CC5EA7CA7F092B7DC7B4B04490FA4E72A37AAC0E33B1746ACA327258D9D29ACF140C5F70B8F94A23195D60D30A498259C6F9D06BD69F82398953B4FD39ADECA972851431B59C9614B7867CB1228E2519AC130F003903D801F70BCCD776A9B916684CD89CD71723CA732A21FECBB90D547646B987155CF5425ABBB2406CDC1821AFA8DA120A540D1C3AF175032444E1FD85F43F47903665BE922636755B5E75A90931C66E89345F57CA4A032959BDB4521CB62BB1377DC5C99FBE36C71347B81A80B6B7251FAC3732475009A719F4374BD5FF01CCE4601E761A754E05756968F33FCAC4D6A540D93951D0BB4D0D838A3112872020C2DC67718888DBF408941B877EB6543432675C879AA85F102E608AEDF267E32D333CA9C3860F907F17B553580AEC75902EC304E6C7996EE34061B40A9F4F8BA2CCC55775490DC9C2A6D5C0134E809BD305D7445C9EBF7B89F9604146B2E55A1090597033BAB2A25A3886DC524F4908ADBE98DC2D74386806AD641712D9C23A19562E4AC7F57A86FC98663E455BD963C4E63D8471B504C14EB718D8BCD6475CC45687F55099F8FE2035F3812F081B6DF2A174999765CD69433E5312BE67698346FA1030A40943F8927B2CD8A1E2CF2514333BCE85A89A6A99D03C4A5C0B847550972F9D1448D1819B3582B99A50FF97C124398CFF30967013C4DC4D374379B4E8B037EB0E570AEC147A1C99CADBB651BFB576AD61BC5449C5737BC4BA4A01F24AAD80375ACBCBAAFEB564665A192211B4D6918260C1251EAA1014C6F41427465609310D8B665C6763639C71AD48019905CC0874BE438023936856017B5562A9EE79686BCB55E04A38EB9B3BBFC07ACD4865860A77AF3B5ACF7DB344F139F79D5953778124C2C92D29CBFEDC21678E54861ECA5CD350FA09B1365FB74435316F37386B9B510E2BC585DA30A71ECC7B9913921EC8D8FBA2DBC97807B693B1E306832507CAC90410E0576611BA79C1CA9C0B106D0147680790EC5051798592D3035AEF57A0174CBC70B435710C51695852841907D41A8180123A4D911787B674ACB513C84047BBD5851C3E83A8A046062C06BD84397858241C95B8D8D2A2C53038856247506065A70A5A29B701BAE1B488A68C2BF02472D86BCBFE263E7820902102C612747CD60344957A871C7774A0980B70B56F7BC45F8E2BD2085AF080CB923B55640BAB2AA2C30F206CCBAD17BC9F58C1CDA80399962268F2AE99C43BBC1FA7D8949CD772A745BD9AB018FD3F6ED02F32CD2BF845923E3EC3671CC7675A321AF8584A0961101C04A432772431E77F5740BA3B2EF488D97C65A12D87432F475509F11E0884FB51B5D970C1B6D2C87C70590CF41C16B4F\nencap_coins = C068B1A68F7F29E1A8313876C4D37A23167E9BB9EC5A47013A5A840DC77D4BA6\nct = 77DACF5595D8D8E213E084DD83D7A343551924A0F4A522AEDDDE51E1932A6789F9268DAE67F6AB3FD1181635520C5D3B27BFFA75882FE84C9DDE4A62878B3AD98412DB0907C758692E229A7692E7F8D346C7058AC7AF03076269E8C13F8A3088DB27BCA936AA85FEB6C3868CE4E76BC2529179B55C5BCC61744799EDCCDBE9EE95389042944CEF2A5D4B1C8E22788F9279010974F57188F3D94493979EF58AB95E89574C40D580F7353E5B4F202E61328CA922FAAEC93F09376183A09AFD78320FD690E1AE08CBA37F4B8964CD8DA1B2C45F62CCC6CF67C2DECC0F41DCE462424364F822D176F6DF6BE176E293DB16990C207A36D7C89EEA27A35C8849A232093D5179C63410F94334D37F1B81F80565E71A407E6C4242E18EB388E7E11CB25D12786198837143848B6D3BE1F621A0E420463B35E0B71480066B4E1925A264A87AB6603EF4ADCE0975C27172B8406FE3DA9870EEF93BD3FAAAA34E415F0236E1497E0146C91BD67144179488B28848D43E9C546E2FDD92DF5CABB6F1DAC422307608DD9BC8EBA71D0AA4FFFE0746729FDBED5A4F0966D6ACD08E816F6BBC31835E073A2C04F80DA395F672C39F2316EC9F3754C5CC38C5BF743816FEDF34E8F0A74AD5755B3A68E47479569CDE78C58E31379F5BC6D204741F2E3368C494A26AF37782F76B0D7104D1A3CD50774B248B7A9F4AEEF8F049B83EC294AFB9342121AB94A06136FA13462F690847781F27DB608839298CF49ABCBD013461AF42E2FB1F998D77C8255A6B82D11E1A298CCF85199FFC33A58D50A97A46471F3E591CA4B5D7FE95F6BFAC54C748EA8BFDD64BE3E49E9B18C0A996A55E3DE3200BED6AC3DA708FDC85E36213219DCBB8F00516285B374488AA8592BBD7A1B3878064BED8B6E1367BF0476FB8A1586F241C49D66B73F490952664A134167500720F6D9FCFFEF3DE98E450C3A44846C6AB4F9C49E9AFF15F8F11B407D02D21B8381F8F0A37D74AF959F3B24D49A480796E19700B6806060B83393CFCA74193123013661110C0128D9D79F40636246D69DFCFE9CB9ED4133F93B90FBDBC662C7B240D35863870AD58A2758E810A94A11D652A6389C9C8D8767CBEE6E02CBDF9BDA374B96675B92BF07790873D41811FFCDF33B80751FF8229CE3F1C24118A24D98116D8400A29667B453E8CD76A5ED10264DF3A4BE9AEAA9BCD8D5E0306F11474391B6640B3144AA4726A1B907B5A969E904B7090E2BC42DF405E4F2CCA2BB02FE3E7C4ADD0F6B63DEFB6A7FF6CC443A11BA7B1B31FB75D4BDB1D52F9A8D4F8D8BF9F7A5C5B18CB9DD28E43EBCDD2DF8AA97DE006B0059160F7EEC9B19B70E44D1944D39E0EFF758223B9DFF954B625AE142E452BC5338AA1FBD4885972B7A56DFD6F4519ACAB96F3D218B9235BDF7CAB218779E11CA70CB7450F5F3301D24D6CB7CE2C58F90DD74C9DA66F9BD1C11E74479C6F2DCC26F7BC94130B10CA618B2693E76A0CB0131A99274F804A90A1713116DCC0D528D3766FEA799D7E8E575B20419FB61BFC\nss = 78A4EE59D4AA5D7C68F22247A6D1D512267C2700E831AE979B460011906DF4C2\n\ncount = 44\nkeypair_coins = C719F9B2D16399B7326CE4ECA30DABEFE8FDAAB18E9F6DF888B0A134EF355570A49F3B482A66256D7F667585925CB7F58894E42660EF2573AE33655C231DFB0E\npk = BAC16E6E3C5E5D9C8CA207A5C77C7883B917FE0463D3101962B802549A87BF39B9BC7A30A5B654C9C96B14BC61506371E4768429DB8F7C0A6204903B9BC9311C66B907C5825621B7EBFB52F6C7CF75C169C17129595631A2FA95920317AAD4CB338329ADC69C6795158558638C474710C78763E012240CBDC2E586ADF93C028522321A94CB766F9E983FB5110A10476ECBA92FC0C120CC83632409940DB249EC569ED5740471C86623B06962910307781349F342C759886F7C376CE708091019FC407EEAE76409387D151C97CF7270319143471A84994", + "BB596F9B5E1A78D33428740FCBAB415C575E478DB4B4E30771802E409B8C1AD4ECC9CEC1B7396E664645CCE83A40D512684E0B2750D8445D2180BE5B4CFC09BC9FFFC8D6E49B49D68C4D849B584512CBB55283722CED5566149811545609A4C5459F523C1C76667859760E690385F65768331B7654C30B8C0B26F2B8089A3C5B4F21EED42179C54AE61D22736512FA3AAC6EB018946A47CD79ACD545719C829B304477541EA92B10A1CCAE8B36BA83D5AD83083FCB51DF653CE899227C52581699B7150456CFA1910212F7678056A33755DDC7D0648164AA297F196057060009DEA8D87E86B6ABC0106A5536D7C83933AB12E294B4F50870FA0BEA16AB49B88A60BA7790549CCC0E6571E81875D5632DD8A5627E48E0395BB4C243ED9D53CCE7B591949408D2C87A5E295E3C3231F4132E1117B835529456A53D3D748C16280F4D597573685B04780F611094C665C66164A1323C290BA8C8B1031B142A3B53062AD5C59D8D112F9926E5AA591ABA711EE2BA1509AA09B86C60A969020D74E238B849374BCAE7788FAE61296D5AC7AD0927EE30912C4287E3981B7851D5823295076365196BFBEE4A3CC189020254F31B06FD8D70C43A94CF380C01936465A334FA59B3D39296305DC8B775269EE204639BB3A30AC437936CBD734A5C6477B2A451EAA0159E571BB12473B77698621D5247EB5012F608C6F070A67551F6F63ABE87BA12A56B2B2DBA44BF72E01C9A2C490579D2C103CE91A841C4F4B3AAFDDAA0CC3D33D31EC3FFB4A3F9AB87F93494720D386BB13CC482A4ADAC46395479D1421AA91216BBF56BCECB89F11588B4085A62BA0A47EF9A184C2C9346525CE006CA4819857FAC8B1498C9CA1222175CA5B01B6BD502F69F8977A0B3B04987A1897A8F2F20DCDDB098AD070D15C15C099A5672C17087C6B58245BC25C382ED3BFD5BA9B8E48932A27546A089113F37E8C85971FA10D465970D61446F106CCA6200F85EB2DE2947BB4EC57E58C1F7BE6B6FBC025A4A41EB05C516578AE9BA4C197B692D20976116BA35660CC5B612B616269A837012230B65F2913E5D0362D0B510F1272716A4DD2832D3BACC914929FF33354C01217D8A0745C9263B5D80A4F497D99D98A4D895B59A59A1DC173CA6945FA54C398F351C8C3AB8D66CB8971A68157CE3CE82104094FC83C7306D242F1F0497180842BEB8E126988C5A830D2A39C2711B033490FE1D53E432C7A453B4CEB05A5644253797135231228F246BC6A1445EFC16B2F2BC674327A62EC32DBC209F2C4A5C600920D2856DC34549BC4656F7953E697CEA6F2891FD65321F89BF2D90CF3DFC681C2FD81792135E1938CA482EF3C253D8976201852444E\nsk = 0C9C633FF39D1C6C29F8356AA02981DCF189D6535E2AC00750C30B111A88B21024E4823E7D543614F30112F7C78F1679DAB68B71AA992538658FD0C8E2984ABDC09647453B3FD99DD860238CF40C9112A7DCB57E06540148EA4AD6F97020474AFB65C5C67AB4FDB1515C6592941B1E38D4097155BD194B5324F464DBE678ECE9B5F8F57822F87ED7F3A6B470CA3FEA3314B4BB404CB66E3BBF8F2953F2682CDB65CFB47906B3962443775796564D75CBB4B9BB24A8A98D7723269E8204BA89782F974AE591808E97CB2468252C8539C2454041C9232F33B43ED8359DD6856C98BA4FC09E92F9A4AD497F8F1159E159B5AF795AB09C20AA753931F47764B6CBAB6968C7A779802B469ABB1E7F677A0A485FF5CAB2F028112EE8C35152703BB14127B33FB00A0CE21CC607E49A73544029BACA215A67091A9AD89A408794C4D2DA78557B1D31686C6B4C3749958EFC60891F12C9E0B7C19613823EEAB1D8F672089339E46C16DAF0C3B7D53727605C26A723518A2651D8762AC373817BBDDBEC1EBCA2CF91FA2A66896C55A4C946A791E5502FF19AA21CB132322BBFD127C10D87563028BC49B222E5401ACDC81991828E4C111A54566E5724B40A452C0F4632B7B85F0445C881938134D516113560B0065BEB409FCEB25F796C0BA0AB190FAC0214007916CA93C2ABB11BD88553AA34C3C518BFEC423728C86E529C300A1F70225F2F683911040FF9405614E1BAAC070E0E90337E134E3C93081514A937F9798EA7B57B3A3A0B829A2697B0778C802116C067A5C368576395C43D33882F97C770519C16426284E19BAC180A2A6CB85D65B1A115316B08541DC231C123C184E82C691F20749A4B92F2D1040D09519DF7678AC282FFF9CF5124ACBE04388CCAB61BF71B87AB3B830A3EF6700A68B06770012424031E89A895AE81C8ACA9169D6495CF01CD8BA0C27AE132C16AAB0EBC4B13ABB37D67CED10A0246E87BE1233FF09A6802F6371858972D21B48D410D8CF3A8A1E664F62028CF851A134037142C20E8EAAD7DE32581B39B5D93221CF72124A73DAA2B61F3D7C8F25A973A815B351206800BBCBA60AC8C2A86A7758B38339751C23EA5523D84EC982A260256C69AF739349D206CE9C9A70DBB0A950A0B63815994A6878711578BC22942914DF8489EC5A09258EBA796E8A6FF5483A71887E55783A94201E5B88898870E67D32EAAB132519624F4B28F22E80903E591331CA792C0CEF824BC62168BE6EB8F7BA299BC519B0C370509E38377F171761521F8FC882D1B8D0DB3C2109A43D1754F75529F7B071B7492B753688FEEF12FDA217CCBA484AB79192B7933781811986430BCC010B50A5621EC15DC7BB545CABC77C336892A0DF4436E732B905D70769865CDEE0A9906438E9D921F521862A3227BAB93202DA0CD19F6221BB68FDA8155AE38132CF2A30A4A5C3DC0B17DF0016FAC3BDD56CD9D06CC8F2C6B4AC41207FC1AEAD0CD87506CAF5C043941513F0A4ABF725818C7686F0745ECE93C23F2951EE263F51A3FB3630076DCA4EA80A156DC6B4248246F638024B8782C9757E076CEAF18CC27284C321BA91766454640AD32D97E65650B39C9B23FA80405F8CEC82ABF70EA4FBAC16E6E3C5E5D9C8CA207A5C77C7883B917FE0463D3101962B802549A87BF39B9BC7A30A5B654C9C96B14BC61506371E4768429DB8F7C0A6204903B9BC9311C66B907C5825621B7EBFB52F6C7CF75C169C17129595631A2FA95920317AAD4CB338329ADC69C6795158558638C474710C78763E012240CBDC2E586ADF93C028522321A94CB766F9E983FB5110A10476ECBA92FC0C120CC83632409940DB249EC569ED5740471C86623B06962910307781349F342C759886F7C376CE708091019FC407EEAE76409387D151C97CF7270319143471A84994BB596F9B5E1A78D33428740FCBAB415C575E478DB4B4E30771802E409B8C1AD4ECC9CEC1B7396E664645CCE83A40D512684E0B2750D8445D2180BE5B4CFC09BC9FFFC8D6E49B49D68C4D849B584512CBB55283722CED5566149811545609A4C5459F523C1C76667859760E690385F65768331B7654C30B8C0B26F2B8089A3C5B4F21EED42179C54AE61D22736512FA3AAC6EB018946A47CD79ACD545719C829B304477541EA92B10A1CCAE8B36BA83D5AD83083FCB51DF653CE899227C52581699B7150456CFA1910212F7678056A33755DDC7D0648164AA297F196057060009DEA8D87E86B6ABC0106A5536D7C83933AB12E294B4F50870FA0BEA16AB49B88A60BA7790549CCC0E6571E81875D5632DD8A5627E48E0395BB4C243ED9D53CCE7B591949408D2C87A5E295E3C3231F4132E1117B835529456A53D3D748C16280F4D597573685B04780F611094C665C66164A1323C290BA8C8B1031B142A3B53062AD5C59D8D112F9926E5AA591ABA711EE2BA1509AA09B86C60A969020D74E238B849374BCAE7788FAE61296D5AC7AD0927EE30912C4287E3981B7851D5823295076365196BFBEE4A3CC189020254F31B06FD8D70C43A94CF380C01936465A334FA59B3D39296305DC8B775269EE204639BB3A30AC437936CBD734A5C6477B2A451EAA0159E571BB12473B77698621D5247EB5012F608C6F070A67551F6F63ABE87BA12A56B2B2DBA44BF72E01C9A2C490579D2C103CE91A841C4F4B3AAFDDAA0CC3D33D31EC3FFB4A3F9AB87F93494720D386BB13CC482A4ADAC46395479D1421AA91216BBF56BCECB89F11588B4085A62BA0A47EF9A184C2C9346525CE006CA4819857FAC8B1498C9CA1222175CA5B01B6BD502F69F8977A0B3B04987A1897A8F2F20DCDDB098AD070D15C15C099A5672C17087C6B58245BC25C382ED3BFD5BA9B8E48932A27546A089113F37E8C85971FA10D465970D61446F106CCA6200F85EB2DE2947BB4EC57E58C1F7BE6B6FBC025A4A41EB05C516578AE9BA4C197B692D20976116BA35660CC5B612B616269A837012230B65F2913E5D0362D0B510F1272716A4DD2832D3BACC914929FF33354C01217D8A0745C9263B5D80A4F497D99D98A4D895B59A59A1DC173CA6945FA54C398F351C8C3AB8D66CB8971A68157CE3CE82104094FC83C7306D242F1F0497180842BEB8E126988C5A830D2A39C2711B033490FE1D53E432C7A453B4CEB05A5644253797135231228F246BC6A1445EFC16B2F2BC674327A62EC32DBC209F2C4A5C600920D2856DC34549BC4656F7953E697CEA6F2891FD65321F89BF2D90CF3DFC681C2FD81792135E1938CA482EF3C253D8976201852444E79836213A513BD4CFD42ED281304E3EE4560E4E0C60FA53781F83D5BD2BBEA52A49F3B482A66256D7F667585925CB7F58894E42660EF2573AE33655C231DFB0E\nencap_coins = D5668FF18683EEA789415D6FA2A5A1031B2980B1E641F521D5235D50E04EAC25\nct = 650094AAEFC36C819697DEDE7A27764E696E2BB8E421149C225E6EB67310052E9F89DD787D9188C21CEEFF31BAC396F34428879B3490E8D7C4FA71397D98F50F4AD26E2AF6A00E7C408B12A77A1E3A25D5B1817D5218BFDB6FB9FBF6B3FD209BB76D0F422A2D1A5A2FE04CF3E8E08CE828C63D14BE05956F440D079B03421D45E06C8D34697F4CD3401855057EB68A76F7C6E73767736140296B3B3C467FDB51DFDB53D57AE8ACE78FC2D36EBB4EDC2B82AA679201E2F81A9DBA111B0F348D7666580EF56246446E3FD33E5A6960FA19DB85D4B93E1B593F5BD6D6E7316304B2CFF7040C946B6D85EECB8C64B090912BB8930E2C655736A1AD56EE649E8D4E54104AE440AF0E082F7634066CB571940A6FD19F3CC9D0E12AA027CCBCE27ABE0BFC70506E403BE11A8840E78144EF0CDA1E585EB3328D1A958E47366940FC907EBA3930BB8241853FF804B7D3A27D89F8067D5A139C1A41B9BD1BDBFBE94499591BA27C681CC62404448E344C3F6D6CED6AD242B6D3AFDD2C98A7AF02632F9F0F67C7EB687C87C1B74EF4C1A818D0EBADD71082F809EF7EC65A731FFBE76AD33F83231AC086329C10B018BBA51F897E081F8227D734F7901095F8AB9208E1804F6273D1ED43D0A828B4A2D85EB776D70B2911214674375A81C037D90D474B8CCA3FA484ECF55AD901C559CA9E27EBBD89FD6BAF104E0CD40C97D07A6F554897BC3200A0CF7599FCE58D14D39992961E76ABF30E8EA78AFE52892CA5FBDC849C0C8090083B70A4A86A0D40343555A99A1DF2913A1B6AC8AEEA58C8B2D3C7C417D241500ABD5B59F93B908C5838E51A584A6FD5023FDFE83C9A380A0C6450AE9BEFD9BBEE95E25F54BA7C0DCE3B34742BABFA21D343390C2D29ACB9A8530177697BCDDD4BD7C4BA52748785AAFC2FBF1CCD3F11661094731A6CA83FA2C3620245F76D8A1618C8567D5A9C", + "2AB65B2DC8E34DDEA837A64DCEE639D34EC95527C896398275E0D5855D19151A25C0F2A0C305D9F1EDE3A2C1380A39B5ECC35AA53C80888421EA72779BBF2278A7C974EE3CE6933460EF9FAE955DB8B9875BA2ED2E5DE03F81DBFCE57CCECB49E6C1BB8CC182B062D84B727D57136785BC8FF1223BAEB36FABE1ED5B6F65467F8532FFD935C8ACA2AA92544E848977C2D175285A5D8A3B076E3BE3C9F12A6F72341912C2DC4F6F326976AA6E577B4B60FFAD0C8F4FE1F0A3F36750F53C4BC981CAB867C081FE8927E09229385B290C1F711570EC85C2624215DA615ACFF26D685F28CDD737A093C0840F7290174A2AFEF8EEFC64A219AA38970FF8C5A3C01DA5E1D0A6E5E0CA13D0922B0CC6B5FCE181574D10591E291DA245F0AE22FCCEFFC420E73D3A23B155EE7C0D204F9870A33D6F9B5EBA9D6B78A03F5FC14C2A3762D006B9ED43AE8DA4600E2E909CF2701C02CFA6E7E5C12BF8E166A7D7E886953DFAB3BE81BE6B439F7D1748797C342B737DD253279EEDD3A859117CF8EB41F39490209F67C8E5FBB5D2526C7B127E9A2F5E3940ABFEAEB06B\nss = 9D782EDEBA3F818256F43AA326EB1E585766742B7B043E2E72436AB5416FF577\n\ncount = 45\nkeypair_coins = E9ACBB774BE970206C3A738E243B420805A509FA59FA902044BE2F0D013650D21D9667C03155106785069387CE7D25CB09C5516D52817201D6653F20E775B453\npk = B873B2397A7C7ADA2F4B0B589EBC97C50174E4317ED5D9CF2878C924937BD258BACBFC83283A218D443D8EE43F8CF3C64459B189E6B3AD100A6C6A3EDE9916F89B8BB67CAC332C0519F502A4C427F5C9AF1A16A59A2122521A0C624A20149765E986339ED63567CC29CFF15D7E8AC026C96F08D6AC4E057DB4E66361B18CCDC3BCFFC300A996AB7346232DB7310662C75B39AD7AA080B23763ECE54960397B8DE836071B8914D56F95A681ACCB8FCB9529E5E4CFC2EC0601F7B0B291524E180AA0A69FA74AC2F17AA88162C481F51543A5A527DA5C42B59F9A72B14DC91574B51E5806ACE3F022D1F19E3EB621560478BB70BEB8407719A01E16313D2F0C785E3B9886F679ACFA465BA974676C0689A149AC04996F4132DC4974F2FC322B56115A64B0B5DBB8DC71869CC655DD61390B032F062B024BB71505640A41CC6174B68870DA11EAEAC28AD061F3ABCCF4E12231655EAF9285B205251EA69371D90527793495835715AC005868A78B1CAE80025426848C4AE869B52034BB266E1B97480AAA7A31E384780442D9933FDB750EFAEAC0BFA802E5314D28A17D374CAA05B46121E16362E8341DD923A66872DF3C942177B58951C40AD1641F53A53D8708EBCC22AAC67EF262B6155007DC6880A1F45CAD3A5312B282055B1E0B181D9B396591FA78DFCCB9D6A92D5CF8189C14C68CF4238654716F0A1E4F2542CD35A7E4E2185814C1F5B16D8C423213C69D5958C46960B8DF589C185087EC5474DF3C5112B5BB6BBCC6AB7160ABDC2AB28801D775CAAFA049479A837CFC8847763559EA86239889385BAA43A2848B489087FB43AA20ACD7AC05606767798500F9271271E52032F21FC2A82D8D15BF774771B69C570EC488053743DC5398C4363AEB3932A5C54D16F45A033386DBE3B2D0A851116C2CD2FA4671B95CF7E60BDCB4976A2393647B714031870B1A6B2D486A5CF2A8093B7B948C9418F3A27F6296EA12336B8A6DD5A5715CE9A70DC6978038369A10332E3AB6C2971961D5C66441ABC3290113B21C46E96C509AAF09E658D9B77928935B9A122E42BBA23F920B58EA48F3F19A7924128669C09E135F772C275E55904400495153A691794A8D182EE1314446371501E87C41A944F850C9CD288CC2EA90A4E27864C79E554CC5924C4CA9A217DCA424EE8B76E49993AE4B085E9809EAE27401EB9C6C794A67A31705876243478F86D5B9F9CB3295422816526439950A412B4D1D28A70C6B9794C959BE155AADB39E00B418EFD0664B08843D20B71C547F1468C5FDD92B9D818336282F34F19B515946A7961B5A9319D9444CDC1ABA840CBB57272E4DA4AB20FACD5FE4958A57C3C812978FD772C2862DEA8B60B30A601B692DADAABA0F361CFF27C5C734A42265341641B861B7899CB311E7E0ACCE396BCE2809F24289C5361B91CBA88493991987C0ACA3B070411481E154104C15780ABAFE725DD3E1ADF00BB0EFF4A29298AC10C63FC0669DF6379294AABB4588AAD2087C9C16C9AFB654F0C9C213D79CEE1A843A84742D574DE252A4F24795E9AA631D5198F07511160300A2E02A402B4CF8AA556CE67BD341307CE5A1EB6609EFEA3F066379865489701783B2C95EE6967F0893D44D76104BF396577FD719D69EB306117F3ABD65385A87AF12D1BB6D0433\nsk = 2ECB7CAA911A2F615A13CB82E5A8BE85E1C2BCF06C71B9696682532639B57A91537E470E8514390949CFADC80B0E5C3EE3ECA869E22250560D8896B5F6EB0FC6EC0A6D01760C9108B7A26CD79039BCB3CF9EA0432FE0581626CFEDABC12F758B407C8E9DFA373F45C377FA6D41A7205A7322B737CDABC8114DF437E864C4ABBB3DD084964F971B36E24406A7A7544A260D917C0EF95CCF33B1833BB6D4232BFCE37B96004ED7779258FAAEDD9ABAEB5051D8F605EB85BE0F9599FF28B40587488FA376729685A8336C0DD213F55447E2C4895111B98E73BD783B2D08960ABCE22F6F894AE5456577A81156C66F6F1BBEBD9C04D1AC43B77936F13060D3305A3893A825781E47928FC492ADC16B31B2669882FCA10581603B400F297B7FE7525D20E82958099B2D118ED3A14A8A915731525C470B7852A9B0EF04B4A3B0B65B4C5D7D486366175540A91E752993BA979D8A446F94088C7C3A02FD5C051F900A141957E63CBD71AA012DB60A02B3872F3A623218A6B1F628FE8580E8725D9FB647F128C2519A8A0CD0649671616B462B83904CE621C95FF44697CA71CE930EAF0B28A6448A1C6B38C14800427683B71C954E49B6A3B978417B78DDB1A1B9729B89160B4C7BA49F312E23632460913D82D655D6E00B5B17A635827D8A0781E12A68C536AB40909F46A7173FA9CC9990371DCBC0B8A433436133AC123A73664A14E1409B4476AB001C17F26EBE968ED8C6A9D491B92F234499435E2DF615C849BE5F6422C8BC9DE8F148A7C0713D93642DC852B33652287010F02B1D7B77972C797ADD3A38651B4C11EA968CE53F10D38DF4160101FB0EE557BCF5B3328E12150A7C0D769812ABF2AD2C1C7661844E6B34B25E7A30EC64B6E7D4282F48344BFC6F33AB3C428C76705CB9B1E9637721C9EE60874017013374082892B4AF174749041C606B3F6690146BF1B0C8D2844F80594F265A8FB639E209C9B7FC418A230AAF340BBA34C1C66B7D570918ED6CAF8F62768620058CC7CB4FE1C762AA96A5015B82216E204C5821022CAA84AF9B12B9C9BC683747A2724C88E650539779742EDCA6A6A6C5F5D68FAAF73D4CC7AAB9B105F3A1B46CC96C915912E807AA6C841F6BE63812062ED1D07BC9164ECCEC7E6662056313CC32F63C6181CF3343ADC9073888D5756F508D65025BF6490A5F6B164A942466E60C4410C72AA69D2CA10459B890A4CB22A7613D44E70AC96ACA21169F932A6134D27A6C05582E830C0BA137DF060C6249B360831CC6B993E3D455C2E61694B11B520C64078BB552A65A3BAB407D46C0EE173BBB52A95C7CBD8612380FC0CF1655C8E691BB0493103EC80A5FC92B4951A0D78768504284AD52580F16247B3C44AF0A397F28CE3D0C0E4D34CC48B26B3998B060F2A9A013889685446B6281B3341C08E8300A013390A881A3A4937B412BF4745B069ACBF5315B9955AA4999BA827BCCBBF776829291A9067272059104522D69D1834886BDE76C078A6061305833FEFA710EBBC0DD0729493A285ACBCF2708CF93ECC76B85691E20BFA4379C8521420C231F68429BB5C76E69378F6EF3475FCA5760A5BE829C2B4FA955E0E0931423B0A615194C26225BC538E2DB29B873B2397A7C7ADA2F4B0B589EBC97C50174E4317ED5D9CF2878C924937BD258BACBFC83283A218D443D8EE43F8CF3C64459B189E6B3AD100A6C6A3EDE9916F89B8BB67CAC332C0519F502A4C427F5C9AF1A16A59A2122521A0C624A20149765E986339ED63567CC29CFF15D7E8AC026C96F08D6AC4E057DB4E66361B18CCDC3BCFFC300A996AB7346232DB7310662C75B39AD7AA080B23763ECE54960397B8DE836071B8914D56F95A681ACCB8FCB9529E5E4CFC2EC0601F7B0B291524E180AA0A69FA74AC2F17AA88162C481F51543A5A527DA5C42B59F9A72B14DC91574B51E5806ACE3F022D1F19E3EB621560478BB70BEB8407719A01E16313D2F0C785E3B9886F679ACFA465BA974676C0689A149AC04996F4132DC4974F2FC322B56115A64B0B5DBB8DC71869CC655DD61390B032F062B024BB71505640A41CC6174B68870DA11EAEAC28AD061F3ABCCF4E12231655EAF9285B205251EA69371D90527793495835715AC005868A78B1CAE80025426848C4AE869B52034BB266E1B97480AAA7A31E384780442D9933FDB750EFAEAC0BFA802E5314D28A17D374CAA05B46121E16362E8341DD923A66872DF3C942177B58951C40AD1641F53A53D8708EBCC22AAC67EF262B6155007DC6880A1F45CAD3A5312B282055B1E0B181D9B396591FA78DFCCB9D6A92D5CF8189C14C68CF4238654716F0A1E4F2542CD35A7E4E2185814C1F5B16D8C423213C69D5958C46960B8DF589C185087EC5474DF3C5112B5BB6BBCC6AB7160ABDC2AB28801D775CAAFA049479A837CFC8847763559EA86239889385BAA43A2848B489087FB43AA20ACD7AC05606767798500F9271271E52032F21FC2A82D8D15BF774771B69C570EC488053743DC5398C4363AEB3932A5C54D16F45A033386DBE3B2D0A851116C2CD2FA4671B95CF7E60BDCB4976A2393647B714031870B1A6B2D486A5CF2A8093B7B948C9418F3A27F6296EA12336B8A6DD5A5715CE9A70DC6978038369A10332E3AB6C2971961D5C66441ABC3290113B21C46E96C509AAF09E658D9B77928935B9A122E42BBA23F920B58EA48F3F19A7924128669C09E135F772C275E55904400495153A691794A8D182EE1314446371501E87C41A944F850C9CD288CC2EA90A4E27864C79E554CC5924C4CA9A217DCA424EE8B76E49993AE4B085E9809EAE27401EB9C6C794A67A31705876243478F86D5B9F9CB3295422816526439950A412B4D1D28A70C6B9794C959BE155AADB39E00B418EFD0664B08843D20B71C547F1468C5FDD92B9D818336282F34F19B515946A7961B5A9319D9444CDC1ABA840CBB57272E4DA4AB20FACD5FE4958A57C3C812978FD772C2862DEA8B60B30A601B692DADAABA0F361CFF27C5C734A42265341641B861B7899CB311E7E0ACCE396BCE2809F24289C5361B91CBA88493991987C0ACA3B070411481E154104C15780ABAFE725DD3E1ADF00BB0EFF4A29298AC10C63FC0669DF6379294AABB4588AAD2087C9C16C9AFB654F0C9C213D79CEE1A843A84742D574DE252A4F24795E9AA631D5198F07511160300A2E02A402B4CF8AA556CE67BD341307CE5A1EB6609EFEA3F066379865489701783B2C95EE6967F0893D44D76104BF396577FD719D69EB306117F3ABD65385A87AF12D1BB6D04330C2E803C2872400C49E1BB10232946AB939319E84FF32CD354DC15D082CDE5A31D9667C03155106785069387CE7D25CB09C", + "5516D52817201D6653F20E775B453\nencap_coins = 07B6B69B60DC15A90690B3FC53E8A4655275E0A1A502551D8BF2EB337B1CD2FB\nct = C38DA83A5586D8B9EA311F66B07406A1963C8CB892558C3B1EBF5ABC50B2BE5B2F9A6E75A57E77BCC8D98FA51B48B432D2621A216041148D8AC0F60350CB67DA0DC21AF8CE9F4F38AFB84F858E95478B3F44C463D2BC6209CCD76FAB82C18BE6F22ECF0C1F579F4F26DD775A2086BF4EA8A6DA9E56F8C6C52A80AB219C68F9D233B1119AAB5EC530F1A32E46C83C8E1D518B0FCAC439FBCBE00C5BAC4D03E48BA509FBBBD4FECBD4BAE6F790BB9EF2016974482AD41B30A911ABC0117ADE46FB47F9FB28C2E320B01747EE832C981AE1D1CFF2B2CE797D8D39B1E04FE807874301194DE85CD058CC2157E54B0EED9000A4E05FEB8104687DDBA10C0CE53A6BD703FE4085A04D41D06B683202CF31D349637D5E55AD763983E6B94EA481BD43695B473CE51FCAF3AE8473D16DEC90F38C93A73151FC771EBC955114A47CDC504904A1463DBE3213FD4BF108E679E081358CE5647749BC8AC8C908242E868BAE25037403054CE2806F2FAED565AC2A47EC842DFC43AA604EFBAEEF28307C037FE6E2D0B27082654608324A4C8D298C7B9A3DF141663E68ACD4CC0FAFFC2710DBCC4FBE7F807FA08B5E35D5741C2005AAEFBB76780BE87E67CFA9676939B0EBD1554C41C4D11622B1EED2B6C65D293FCB5DBF01612638C979C75FAC30421E298735837920FEBCF677910A964B5A5B745275D608396D6CD133D1203ED72843BE0B7D6EC79622930F8D00CA179D22B99AE280440D3300D2E0EA449A4DD84FA1D416E866C8B37A00768B32E343733D2DE5ED89BECAF537A246FB7F276418C434ACDDFE2225FC9B53FD84763E2B42E4ACF57C24A71CFABA9BE42490B419EC000E53D1F6FF865E77AFEF45CEEB2C526260B03FE779E0DE8CED818AB17AC90749C9324BB4EDFCA5411BF6758C32B572185B76AAF5853810B0AC6A7C99005CEF58481F359DECBE58CF5E8BC04A45251E9FEC674DD33BDA92D5235593C83D6B389D086A5D859DE46FC4A57F2BD0D0560AFEDC017FF9FEED8A8E727E4454185CD339FCEEF6F81000661DECFF0A175423337CC32064E5CD8810D854741211AD68ED7C5D574E962989173A9B24DCE6795FE1D57699AF00D4FBE3F2253A1246D3692BDF8AB4B8C152DDF33356E75E18197889934CE029813A465E6AB5B978CF2B1303BF0D4716773955A2A5E3A7E5C1043E03760EF077F77A66AAFA941C05203271FA49E4F6E76D324EF463AFC2179A0AB7C2C269E9096AEC415E19EE7F68B228B4B05191AC549A5F37B465CAF1E4A24475BE16FD5C7A74BBFC416D7F98068A844D2F50D108220AB42FF032B00FEFC18CB887F2F3E922C49CB1DEFEC20D7E0032BE1A2708B074AAAEEB005C079FAB94599D2F89AD8786F2B71859A90457B47E7488AE70442C723BBF78E707CEA150F60533B10FFC213CAD2A4112D5C2E6B76B9BEF3B9FF9A62C44A52ED04F9B18C76E01AE2CA1CE86B947A82C14638C465C2715983735ADD8AF549C3725C9132104700007A76DC7F1C4D0C8316C2D5028EF5C6B3473B466334BC1\nss = 618F4ECE7C4393669F273B8A937DE3BB779911CEE8E1FDD022550D8E2915D336\n\ncount = 46\nkeypair_coins = C1B3CBFFAD4B306F9AF0CDD3028876486DBE858875C9B6497FE20172A986C82BB5B9E60227058AFD73501B1C4E45ADBBD41C7BE8D14BCB8E98AF77698FDF6B69\npk = 0846C63E2C3018BC8733F05F8CE3B614088A787669205AC9889BCE2D3B523F366F4BF811F004666B2B654431B135D97A70A00FB9A3928C1A4A2C7285F6F7B19BB766BBE6B966B4013EC06833EC6F1118A772C2465D81B77BA740B7EA33129218542A41E2F1B10F42BB42396E9A6C5011351E783641AA692A982272D9544AC93580FA6A51B8C7B6A4B5B1CE3B58F1D901855BBB2B68B988953AB63607D988999ED96E5A4B963497A061AC69BD90C4EAB7C0DC17820B6963B0293D4CA30D82F5997A877A9AA71C5C7893C1D153AC6779D0A88190B13DF828BF3AFAC9D7EA392FEA899EF844535187AF673972399A5FA31034C02D70B57B97434ECBF3B1985C86EC75B23AC0AFAA67225F12A257B78341966BFD2569670680E012899C112AD3873AAAF26D2F4A5C8CC133C92B9A446530C169B6B87B118D03329374A71ADA1778A2035986CEAE200C763A12B6E2B2FDB672B4D58D8BE640E61576F2CAC617A5ADA5D1B874BBAC9D272EE4C881BBDCCA1C9A84626012B988395EB5A4A48BAB1E7551B6CB57EA7B627138C3AC252BDA1A83CCFAAD69E38CEDA6B149C1B3BA295FD5025C63225CE88CCDFBFA6B3950CBCDF96E14DC0962745A5FA32D10525F71D895A2085620C89024D922359741BE366CE9038AA3B260320A456858A7B8D01BCA12316E9C6D1782BEDCB590A1D2AD9ADA0C26D3818652CE6F3B6403C94DBCD1424D090E9DEAC559472C9AC19CBB26C16E8B27DB9140A1161EA96A171728689CD6B6BA0C8002BA6C46719A1A0C175638770CD088AE29A7FA958209788ADE14354A1B0880F05EF7C15A6786BE063B357FC7521973ABE4FCAC0A8C26F3EAA052959E2F973709C9C6BBF4C889C8B76C0AC81353B4A4DC81B7D316F75ACCDD1911DF10A7E838A7C2023EA1EB0A956ABB53FBA02C48396807229F492966796805E04AD62B8107493AAB264A5BEB32F5459C06AA6E7F79ACBF171899A911FA910DFA6687B2C28C1D419A4817ABCF656FF669B587B72374F3CC20B92858361D21BB85A3B9ABA157100875C993B54CCBC84DB2D72374BCAE29C5479CC95197E625DA047447EA5797551595853651912DAEC4891E68901BB67FAA98BC5050BB50E913645874FB7A0E51C816ACC88A7F8A4AD383170A583A2E17B0D5766E12DCC827386BA8D868EE16B2FB892ACA3941CDFA7A487C13AF9787A309779B759CDC037C13E839314803BB10A3AB19B7FAE477C8C322BF05BD3AD9CFB0B241371C85FFCB607748CB518A6C896830B191737BA289B15288AB59869E22637C57019818801EF9A6B7160AC1B5B4D7519B41905E6687B3FA7230EB88A3C9530813561308B68BD2B740E7AA08CA72CD6468C008CCAB34AB99B6773C533B3914B19B2B80BF7E783E7BD9366C8962E7F3410F34651EE606EB737E6C9C5F6D306AF7348CE955228CF02D15B8ABAED16994B56260221BEB1A29BE5596E204B9CE111127989BD2AB49CF27C976F74AA7B084FA6B8400A25F3C36213F7C2D160045D865C75AA14542F5A4E4D1459B5676491C6A3FA0A2F0319CA1A63A401C9C3A14C94F0016A9A69E64C522AEE93E8B96B4F6691322242B20353E0D8B995A6A9129E961AE7349F92C92A90B833E82B9FAE1AD459AD417635C409C28F9EF936AE28D221563E30F83162CEF01B482889E\nsk = F3AC3178BC3E6B8002EB20046EE3288F9CC63C1ABD0B14A118D52E2C9A998D4C67E2014415084F520945F55B985ADAC8C503079789AECC491EB7BA540F32BE8823A4A837786BE140D260CFF5D46186588F4FE2419E0C4BA1B619567B9D8206B53AB1289640520F2259F5D6854871498B23696A321813D7A544E77FB3100B34C89AF2C63856FB43BB0A74A6073958D1199B4098386984847962B353B4D81AAF4CF65349C8197DB8C1B29A91FDE5AF1F9749A96B3B82C567207A81A163347919AEA565304B4820369799D352CE72415CF1C692537A48AB603B9DC741A08A66D874BF46DAAD570B6F1F4133067A1D900CA87CC25E91C4CE1C84B46D3C5BAAD46FED227268F1A9DBA968EFF27249B3C6E4C7C19E8A13046A2B45BC24F4304A80C09D37AC289F924F33E97181B8393EAA82A6FA54F2E76DD88791B5C3773707046C362D94EA547C3050AB251953464F4E540764B08103A88E448446F6B82375C15E3CA9A98798639B83638ADA857BDC1E3C6705471975C51B8087A26348BABEFD234D27D6C055D3AAB7560B28DCC13D343A79530AC868B5F6AC83AF04B8D7A20B64DABE9DE32A5C1B2C2ACACCC4588C1BA26F5462AAA5C1BDBC36467F346A1AB5C5840A07BD33CEB44093659BB0451C4C87CA4852172DC0BC3674B4275078CD2B9A3AFD61BFE454107D092E5840C4968C547ADC723C1970CFE705C5D33E3A4533F0028655C6BA44AB22C2A4C85A82B4B6DCC09765124E43C985459CB2AB1519DB1EC6F348D017A785484802D90E0222CA2313B4FBC465DEC0CD4F3A5675E33CF0DB79145867D5F0B8F340526C8A744929728CECCD146B6E66D03F660AA4E2E15D200B5960F3A03B571BB2E59160048E498C15379027E07987DDD841BDACA79764BCAA1C9843FCCC65B53695335D9D4CC789E062571665DA99B4E10368467AA551775C39C7C9DFE7624E8940F294C8655503F2F970071B40F6BA3544C64C41887184828BE6057A9E972631604901A7870733580C6AB8D4AA18B49CB4D567577AA8B0CA2490EDC68B168583B8B38415D32F5558996CC911A9470951430C36F71712F1C579A12327C41C441C980C286B71A31748EA54DF2A557FD1701C3173944B7B40117EF9CB08A7D03D45531B8DE4C753F697EC4B4303448C260B0783C81ED599425D9B16806828BF795C8CF65A95F366BB90110CC75D3E6064BEE17CF1497F36C48E68B46EC07417B2A876CB556C705C7DDC387D74F2B0AEEC9070D227AF09A324495F551680A474328D379AAC253A6F4C42C865A183D7C2F4F8CA94A92388B1AFBB5408CB1C0FCD3C945E2923ACDB7E16A45C03EC3298B3C44E9C1E75D049B2EBBCF2F29A2D3B7FC68644530010E052A0D357809009CD786604A39898B385B70AD7B3BE011EA83B93D4426F4F20A3D0836FC6FB532FA14536285013050C16D01C5752884E49A82A4A0BDBC8BC2C7598D548278703AB4C607A16B1BAB64052F40A06D3915CD03825F12C069D956F2A5662E05804183932B5216CA66274214ACF5C01A7F4C77EBF522DB776068F94151F7AC33831259B53BC48E99C50B260FAEC0B7BD3CD4FA9B5A5C2588CF098FCE5AAEEB15FE651355537953D9B8580313B56336F0846C63E2C3018BC8733F05F8CE3B614088A787669205AC9889BCE2D3B523F366F4BF811F004666B2B654431B135D97A70A00FB9A3928C1A4A2C7285F6F7B19BB766BBE6B966B4013EC06833EC6F1118A772C2465D81B77BA740B7EA33129218542A41E2F1B10F42BB42396E9A6C5011351E783641AA692A982272D9544AC93580FA6A51B8C7B6A4B5B1CE3B58F1D901855BBB2B68B988953AB63607D988999ED96E5A4B963497A061AC69BD90C4EAB7C0DC17820B6963B0293D4CA30D82F5997A877A9AA71C5C7893C1D153AC6779D0A88190B13DF828BF3AFAC9D7EA392FEA899EF844535187AF673972399A5FA31034C02D70B57B97434ECBF3B1985C86EC75B23AC0AFAA67225F12A257B78341966BFD2569670680E012899C112AD3873AAAF26D2F4A5C8CC133C92B9A446530C169B6B87B118D03329374A71ADA1778A2035986CEAE200C763A12B6E2B2FDB672B4D58D8BE640E61576F2CAC617A5ADA5D1B874BBAC9D272EE4C881BBDCCA1C9A84626012B988395EB5A4A48BAB1E7551B6CB57EA7B627138C3AC252BDA1A83CCFAAD69E38CEDA6B149C1B3BA295FD5025C63225CE88CCDFBFA6B3950CBCDF96E14DC0962745A5FA32D10525F71D895A2085620C89024D922359741BE366CE9038AA3B260320A456858A7B8D01BCA12316E9C6D1782BEDCB590A1D2AD9ADA0C2", + "6D3818652CE6F3B6403C94DBCD1424D090E9DEAC559472C9AC19CBB26C16E8B27DB9140A1161EA96A171728689CD6B6BA0C8002BA6C46719A1A0C175638770CD088AE29A7FA958209788ADE14354A1B0880F05EF7C15A6786BE063B357FC7521973ABE4FCAC0A8C26F3EAA052959E2F973709C9C6BBF4C889C8B76C0AC81353B4A4DC81B7D316F75ACCDD1911DF10A7E838A7C2023EA1EB0A956ABB53FBA02C48396807229F492966796805E04AD62B8107493AAB264A5BEB32F5459C06AA6E7F79ACBF171899A911FA910DFA6687B2C28C1D419A4817ABCF656FF669B587B72374F3CC20B92858361D21BB85A3B9ABA157100875C993B54CCBC84DB2D72374BCAE29C5479CC95197E625DA047447EA5797551595853651912DAEC4891E68901BB67FAA98BC5050BB50E913645874FB7A0E51C816ACC88A7F8A4AD383170A583A2E17B0D5766E12DCC827386BA8D868EE16B2FB892ACA3941CDFA7A487C13AF9787A309779B759CDC037C13E839314803BB10A3AB19B7FAE477C8C322BF05BD3AD9CFB0B241371C85FFCB607748CB518A6C896830B191737BA289B15288AB59869E22637C57019818801EF9A6B7160AC1B5B4D7519B41905E6687B3FA7230EB88A3C9530813561308B68BD2B740E7AA08CA72CD6468C008CCAB34AB99B6773C533B3914B19B2B80BF7E783E7BD9366C8962E7F3410F34651EE606EB737E6C9C5F6D306AF7348CE955228CF02D15B8ABAED16994B56260221BEB1A29BE5596E204B9CE111127989BD2AB49CF27C976F74AA7B084FA6B8400A25F3C36213F7C2D160045D865C75AA14542F5A4E4D1459B5676491C6A3FA0A2F0319CA1A63A401C9C3A14C94F0016A9A69E64C522AEE93E8B96B4F6691322242B20353E0D8B995A6A9129E961AE7349F92C92A90B833E82B9FAE1AD459AD417635C409C28F9EF936AE28D221563E30F83162CEF01B482889E5818AC8D7A38C781E3A0BC43D088E6D391D1D67D9639B260BB6F58A19A57150DB5B9E60227058AFD73501B1C4E45ADBBD41C7BE8D14BCB8E98AF77698FDF6B69\nencap_coins = D70B79DE7C2F7CB8D18EAF1CA040F6D8588BA85512AD000B59806BA485538377\nct = 4D4EE1EF37182A59BD1E8437223326DC015645D098B01D4A55F78EF5BF3539D0E669A8818DF4EF96F694708DB55D77C36750C0C2580AA5AA3412565D693BF757216B51560E4A77A7641F3C209238695FF87B0AFB970970BF0ED7140ADE2A770E3A9D1EC64F6C3480E9F7798120E07F55575B4DB3EDFE14C04D3CE59CA1598566B2E83DCF2668D842955D377C2CF8F3AC0C15359B1E0E60D22A7696D03080774D8AAD50283C15BFA8A81BFD362D47365352B6D6F8C610773786C2354F2AE1E8C05941F6F9BB3E5F3AB2C5DBB01CF10C4CAE89E222732DDE775B43DE60ABB960603FDDD72373B52791C64FCDA50373ACA4EE126CF2AE98AA922E0584513E6B519D30AB5843F7A3C06956C227CE90DE5A2EDF3D7AB4C3048440C0C8664F506BE28CE83F29DE35AB19CCA5F4DF2AA7582239A57A211A46B9A5E7CDADCDED473EA9CA3D58A75C9E7BC805DB8CB5981E884A86392504B4BF774D7D772035CF79172F4176ADCE8D87D11292FA80F8B3690DD58379AACDFA71B700DE4FBBC0045E411CDFE958E056B79E78A4CA218280D3344894384A9D2524C64989B22AA06E3F9C4D2CD37938E0FEE64592AFD41A93F61AEF3E7E94B3DB9AC882715ABCC0C57C344AE711684B0C34220182AA8DAAC8336EECBC999DB1875E948AF7DB945B8208D68DC35FCFDFC2B6DF9E80829CAFDDCA0C7B979A43A0B05D380012681E4CF76008A714B9D693B53880C75D715D1C3704C783C40347A42D180C848F1850D7B8BCCD86B6C5417BE906615B60171D5EA0187C5065078901A023DEFD6B5B8F26CF59F8C4D9E4F4EB257247D0A8A9B376F22BE7D4701BAD3B15EA0C73F22EF9957C1480AC96BF80140CC773C8715FAAE46435F16C0110BEF1B7D841C75CF1B9C3BD3419D41D66E09132835BF68A4EA1CF046A41654FFE8B378DE2CD12DD1B5C03E80511E1C534D283D2EEEE559A6FE4133A5040ED76263738DD921FE706B82F85E29790C7067FDC332B804B5835FFBC8D621E379D42D1E3D90EB850B0F5E566C7DF707C456B29F29B352ABD4EA8DE0002929F91F1F1C6EB5365F8FB432BD74CB6A5D993DB59D547D7C12F43CD42C0239A5353C735ED3519D590697CBE737E788671EB640C153631F20E4DE774326DB0095629EDBE2B8DFD1267DC2FAB1E7AD5A180372C1B72F6359E8711321E0EC40BB69BBAB6E2558D94520638F9DE6604D83891232534314C75C53E8884EB8A8085D939249E74355C67E03AA0417301CB619D2B8200122CF6F612A3624A90DD7757C89D01CF8A7839C61A4A0041599EE88D4A235D2C9B0FC537E5E55AE9FD5C8EFA364C12E688F43F273477012651D066C76A23C5E26775EB63E360E3FA96FE58F5DB49EEDF8D6C90FB97CFA6D2808F91F816585B5ADB3AE8D289C738E159863B9CC51EDB7108B71D15CA5EDBC87028129CA8CD8BB5EF1CADD70B930243E877082FF0B58012E97A560BE1F5A1DBE1647CE999F5987A81A59810725A2DC2FAC903B951382A3B504287899F93D6689F03E07AB6B2AEAACDBA\nss = 3FB42AED91616BB85D06748999B29C6A287AE6C6E33941CE783BC3245C729D52\n\ncount = 47\nkeypair_coins = FF7495B8575B5A98E4FD21FB4C3E58CBB60F14BEF21AA74CF8802E3153F1480711C033D4A4BB231985CA7E851FC73EA4B2C29E131B7F442DB8A66A9E5B31934B\npk = 964435FC16BE2CD2276B7BC78EE8B5C963AF2AF4673A93940B429131663CC124BE5A706BFF5C157DC17DC5CBC2A11418DC4B8A28C841C5A831B1A2BA989A20FDD17DD06706CEABC0D20714D5595D54216E9FB6824E3272DE0A1E262AA246494152B1CFD95C970F38AA35FC0337B26E76C77A0A76BC2C57B80757550B11807A423B85E32DDB537AB6D4694CB8B9ED58B11C9A6ACC746749C21011A66DBD7896329C3A31D0A7E1E78EFC93574CB7B051D79188EA4981DC6299EB9BD1BC1A133A41565305CD4A09FBB10934E7A3D132BB0EB83559C484EBC92F7CF93E445020B7187E2705A2D1A8386C008EC7F22FE172088360CD3FD160E7020B6D0C747CCBBEDDB1B84FA7549F625DBC064621FC2E13F720188C200C1AC1F10394FE4117018B9640632FBED570C942575FF61A7149A51F9993B90827EA2A08C32A330747CA27ECAE452154CE1A6A67A8B63676998AF929E8A7A9D2AB709E2162A2E0BC0721BFC7E49C5B2C9BA975B3BD881AA3782391F5CEE4CC1835C83732C84F54B373EB18869B2C90E9F986A0EA345CBB020333893B463671C95E6AA07193D06F7E62BF4361CD0009B1E528C85D147D0E650CEA7B0C67F1B4FB754BF2F1A7B9CC621D4C34682A6195776BBB9B2CC866CFA94C368A2B4B346C75A2A6BFE946CEF09416AEF21B15D3C72B7CB408141608C058E506271380841656963174C70E09C1F593ACDFB9BF4A3A9387B693F882495149C62A77595574C0BC745B51BA8338C6361A293402E74DF74A7A70B49FAA1AC4D66B89FB6C31DAE59F318B610F00BF4F4A282F752A070582F2F3C141E168F6FA037F23945893766215B9EE9A3A1DE662060A5B1FD34BC8DAC56C0875A6F82ECF8863C1692DC2073CF517CBED3C362A853BEEF1A8CF2247000CC4CD8176CE980D683B8AD89B3EABA3B962624F5AB3695FA10A88055DDD664A2BA0749E439A39C6999496999BE3BA7BBA2FFE06388B1A6C83068AE70A1C6F8A36E788B8AA148933C896EDA61EFC86CBB7D5C9CC96C9F137C6A9210347289010979BC1E16700A610C7C990D685550F537AB0C45B2BC57E5EF4C08B2220961C6E17E95E2E4482A4A94DA2E17B6854CE57C263D69429E1566BAB646FDB216E0444CD8FCB7DF4168AE66223A0CCAD971583B5917C4805271A17B4A1E17462815CB39332699AC447332A3F7ACEDC03541E93A822A96089D6A1F47A7DF35CC9B659CF419BCD2131B98AACA67343CDBAFA3DB35661C38C0BA1E18043A4C945067ADEE46E428A16011ABFEB58C1BC8B2330288B57CC319389921857C9D015A0471128C34CBC13417DB24B91A3567AC299CFA6D4C2F1123661A3CE0996111D340D9613B966955C6A758FA7F3556F6716E5AC7AD3A93174B2032A983CC0C73C0DE302F9F83A0DE89A1FB576CD3B41505B5BA712C387730C45399B8CF0B0E548CBED984E7BB5095CF7263B05CBA437AC6FC369EBCA85E0211715133BCC314723D79C9B93ABAC57AD3D3A5E77F2986A3539EB795A5B4967AC7753115B916236A97900870B658B9D4B3E35827E1AA9ADC3500FD9BA18FC6B03465903858C61C1259CF485338CB700EB731F31643B469BB259210CEC78C158E3290573C5228518E4697F19171D8F1A3A633448FE9C83BD28097BB29A168DB5AF1D1B354B6881A2CE509B\nsk = 37F7089480382622AC6687B4B15BBDBC1A9AD7467E8FF4CF44F0614DE74B9591B9C5410D2D7084BB57AC27963AAFAC148DE80DDA6232F4A0C634D677A80C226FE67063191C05A54AFC026080877538F63DF93CC6FDECBBC0A9A0A4215488DA1A2F7B1EA8F8B917F32F397B94C80170BCD423C1F1BA4C736449F84BAFD6711B0070DAE72DE1EA3923435FE15A4FB35AC98D6379F0A44C200A37704B5B269BA3A555961ACA5E2CC1518FA4BAD3C23438E06952C9317D198B0C112D79A89560DC3361F5732F820CE4D16ED448AC2ED221C8EA3601602C27F640DCC394A7ECB5079978CF52B80DE15C3015839A44B9EE36837866C5C8E9579849B331E53DBC049E46DBB524C2090A54BA793C845420A7C2C29E78A9B8C83C310D780F74127C02A59AB68C1B29952DFF1196D0940EDC338DF3E1C1C8E34FD0DAC4D5596F97A2AFA98B1E8BE46BC0A96DF412639AE5B52229086229B5BC79AC020B61A56C04091C10CF9940F798A9C50BA1F5FB30BFA947F20B62A60215C5A88D23B70C0E299C53F49A1ED511AC5812558133D9F195E1FB5D77314559EA79E63A88E781C4224155ABB5CA91F089C0C609CECCA32E549B0CBA167D9307A3A64681A815A69C5D7E787751162483E7701437034F0864D8D53201FAB9763C7921ECA6F11247E7EA364298C1C3AB893549572BEC45C1A8C3B88659CFD526810B23F2095AA6C1424C7178187109F83063B52547B9C731F9933622A33C7A8B927A50191593488F9A0D12331017919159C7A027C3956FE109393A167A6475CEBB49224736847319D161490EC52396D7BABFB638BDEA29F50C9CE37314FC858455F63FCC70CFCB751DF12274FEEB45A124AB1B997C917A550C3469A0C185EB0238FFCB4DCBF751E12CA17A71B807B1446EA7180EE302E6998EF8D12A857C84FFC377F5E42FD41238A54345229916A715977025B3B4A6060F778DE7D426A2F95927335CB202BF4080B8510CC0DA12C4EAEC4BBFA42997E21504B8C5D32604F1D66E8D55B50C393F973ACD37A236DB595E3EF08239C42FB5E9243D967181B9B94F4521C104A8AA726DEC057ABD419BC8C6CF350C91ACB78B0832144F409F78992652E30EED7BA2375B3245D877C8E8B873F0427071C956633495381A2C642B15282B9945C758910FE469CD091B4458218105DA96A479BE0AC6B3BA155D359B2815916E93E9BAD3D431945B852E519DF0129174B24A32CC9FB8A62DE96733D153A799CB8FBA3C86B9101CF3D4A97BD3B699467991A57129607C27274D3", + "224CD1848C17F1550BE47B71A119873045E215BB817CB92C12A7BDC6347DF8B64DD686873D800B4672AADE8AF56D2995546CC37C06F9212A54745C5597184EA85CEDCA7B980386FB91B8AE677A035A4547B5848879C2567C8CD6AC285F6F2460DBC0B73F5AE0993C988418C234895380C556042ACD15A6C015A13EBE16CDEA4BE38528A9D244230A0AB053C568E31C64D06A3D7BCA0E5207B7669811A3512F8AC6887137B0B7627D2401CCD604AE786753FB6568CB522B28712211208C1849D1F75CC4FB951D2AA081ADA952998B0B0E938B77359233A76C135897E91059CC5639E978C12C6BBFB735FEF4BCB1D60180DF21D964435FC16BE2CD2276B7BC78EE8B5C963AF2AF4673A93940B429131663CC124BE5A706BFF5C157DC17DC5CBC2A11418DC4B8A28C841C5A831B1A2BA989A20FDD17DD06706CEABC0D20714D5595D54216E9FB6824E3272DE0A1E262AA246494152B1CFD95C970F38AA35FC0337B26E76C77A0A76BC2C57B80757550B11807A423B85E32DDB537AB6D4694CB8B9ED58B11C9A6ACC746749C21011A66DBD7896329C3A31D0A7E1E78EFC93574CB7B051D79188EA4981DC6299EB9BD1BC1A133A41565305CD4A09FBB10934E7A3D132BB0EB83559C484EBC92F7CF93E445020B7187E2705A2D1A8386C008EC7F22FE172088360CD3FD160E7020B6D0C747CCBBEDDB1B84FA7549F625DBC064621FC2E13F720188C200C1AC1F10394FE4117018B9640632FBED570C942575FF61A7149A51F9993B90827EA2A08C32A330747CA27ECAE452154CE1A6A67A8B63676998AF929E8A7A9D2AB709E2162A2E0BC0721BFC7E49C5B2C9BA975B3BD881AA3782391F5CEE4CC1835C83732C84F54B373EB18869B2C90E9F986A0EA345CBB020333893B463671C95E6AA07193D06F7E62BF4361CD0009B1E528C85D147D0E650CEA7B0C67F1B4FB754BF2F1A7B9CC621D4C34682A6195776BBB9B2CC866CFA94C368A2B4B346C75A2A6BFE946CEF09416AEF21B15D3C72B7CB408141608C058E506271380841656963174C70E09C1F593ACDFB9BF4A3A9387B693F882495149C62A77595574C0BC745B51BA8338C6361A293402E74DF74A7A70B49FAA1AC4D66B89FB6C31DAE59F318B610F00BF4F4A282F752A070582F2F3C141E168F6FA037F23945893766215B9EE9A3A1DE662060A5B1FD34BC8DAC56C0875A6F82ECF8863C1692DC2073CF517CBED3C362A853BEEF1A8CF2247000CC4CD8176CE980D683B8AD89B3EABA3B962624F5AB3695FA10A88055DDD664A2BA0749E439A39C6999496999BE3BA7BBA2FFE06388B1A6C83068AE70A1C6F8A36E788B8AA148933C896EDA61EFC86CBB7D5C9CC96C9F137C6A9210347289010979BC1E16700A610C7C990D685550F537AB0C45B2BC57E5EF4C08B2220961C6E17E95E2E4482A4A94DA2E17B6854CE57C263D69429E1566BAB646FDB216E0444CD8FCB7DF4168AE66223A0CCAD971583B5917C4805271A17B4A1E17462815CB39332699AC447332A3F7ACEDC03541E93A822A96089D6A1F47A7DF35CC9B659CF419BCD2131B98AACA67343CDBAFA3DB35661C38C0BA1E18043A4C945067ADEE46E428A16011ABFEB58C1BC8B2330288B57CC319389921857C9D015A0471128C34CBC13417DB24B91A3567AC299CFA6D4C2F1123661A3CE0996111D340D9613B966955C6A758FA7F3556F6716E5AC7AD3A93174B2032A983CC0C73C0DE302F9F83A0DE89A1FB576CD3B41505B5BA712C387730C45399B8CF0B0E548CBED984E7BB5095CF7263B05CBA437AC6FC369EBCA85E0211715133BCC314723D79C9B93ABAC57AD3D3A5E77F2986A3539EB795A5B4967AC7753115B916236A97900870B658B9D4B3E35827E1AA9ADC3500FD9BA18FC6B03465903858C61C1259CF485338CB700EB731F31643B469BB259210CEC78C158E3290573C5228518E4697F19171D8F1A3A633448FE9C83BD28097BB29A168DB5AF1D1B354B6881A2CE509B172CF4F8DACE8A96B8F70DA966080A5E3F132873CA7544343377A99B65E8147F11C033D4A4BB231985CA7E851FC73EA4B2C29E131B7F442DB8A66A9E5B31934B\nencap_coins = 8449BFFAFB415183EC7E27D7FA2E30AE045B7D860A4F59AD0C551A8488E1DB6E\nct = 6720D73768ED3C4322F51D5B4EF01D878503CD94947ED1624325A29F0ACCF6BEB57CC1C59B306C7BD2352BB7EF065723F9F30E9ADE86F65C6761ADC0F45D2C6FBD471F0434176CF107B7971AB5C78CF0B193AA61F95869026B88900409261C56A4B8098C33D160FF9E32E1AF1E73E3D0D3DB824B82C8BC193C9255AF016E41CB201B0CA574AB9ED36C7A2F8F648E4E589FC78532EC9BEEF128EBC412FB0F34CDAC8A1B6A7F5F8A94DC3B42881556DB2882D4693B2DB0B37B753A0BC86A2374CDB3F4805D81109011EA9CD6DDAE908F264E45586EF8DD4B687ACF8D3BB021B8ECCF71F2C7687DF06E4565A6EB0EE10845ECD9D2B690E7F12D7414E7BF432641E227DC23E05586D5E6231741DC995D3FD49BBF4BDFA1DD8FF6269BFF2A1413CFD1F3B995DC2E80359918E8ACEE302A12C434218CF03CCEACD739AB4333F421870C128504C47526B8C3FBBFD4BD3756EFA3BF6F82BF8CADEEA72C6346B5D571CB57065FE27C51261C82D81D70915A00CEDC5AC45E0A66889B65877823A1840DEF48E161F16EC786D82FC2A01E367AE9D0867B5FA08C243970786262A1856B6788A603B50944450C139944B5F20A92062D90818EE26D0795901F87A2C16C8212083D266D5DAC9031028B5E5EC3FCA10434CFCCB77B4C725267E462013CB18913367452EECE3DE822B8E9D5D9F59DCB0FFA38E5F2E497C01896EC13714F8108135843E832CFC6D915B124E694994C417758E02CBBAB0AB6B6E3FDB601AE7870D0CC16AD6098213010E80FA72D36D649F52840AE65AFDA8FBD772AB3AC96F78BC725CFA825A67E5C622DE0644ABBA253584D24B4CD9F37743B5F5357D78AA667151F345987A688F0D4DF6086DD8C15EBE4227BE0C4E5FD40678CB15398D0E71553538030BC825E29849A2C43DDDB3B218AA2A8EDF77A7A5FE4E41C7A535D2B24B53A6A8142176D75E94450AFDE88320683648318B56F6AA9FBDDFF56EF63E42B479065C760CB1122BE97A86C7C6DD42947A17D781FF8251104182CF9EA6A88EDD60722A004F5D4D7F0BD80ED2E3C0710611B0C9A18752F0E39B014AB62E48F0B968F440CF42B6078C3B93611552406B10B7C69F1D2F278813416B1AB36277D8215DBB60E359DDF5240872E4F56CB8D3CFBF4F6478B6A876B7755357BB8A1CE8A2D1EB896E77A420A40A402746A242A33D906BCB42DF56CB9DD1D4789EBA710031BF20A657D87EE20798321EA779D1BB453C5330D25D3942854CFEE2A9AF120E69DF4A31ABD362CD36174D7015ED23F76CF0B1D8FB3BB9D114C817727A52909393168507BFAAA6B15BD2B0BCFEE3A0DD27A2C7946B3A004E02AE8B2CEB226E4E17E1400AC8AA8E72041A24633243F83A13B392440294DE7E0D7EA47E236D5D37B83E0EB477551D91E76AE7826F7A866E895E58237E3385376ED3DEF465A30AB1D00DE6B1DFB21BB9D0F74AFC0F637AD2A382C77191BBEB7A03DD90D0AA8FBFE81E3B3A2E47DF5A525E83B89843B31B184C1EC46E54AE734521E1AF098FA8F08C80CA5C5\nss = 4197C16AAD6FDC186D5AA91000898B67CB65280503EAB4826D7D3C4669AA5D70\n\ncount = 48\nkeypair_coins = BDC3FBA1C32751139FC45BACFFB3EA97F26573D804A5F27A459293D95190ED8E75FD654BB12DA3469881ED591A82F58B4BFBAC587D045FDF3AA0348029DEB1A7\npk = 58718343322DB0162D26965D5E946B700AB88D702FD5A1376920B5BE702297AACDE28588DA91C719D40C1FAB0AF109742AC26C456961338C44C93C83AB58581635499545CCA66160E15A35BA4931E2B91FEE68A8734ACBF72755E8D452D17215457161284435EB6A7A2933C8D146A12679143B80740F68AE052087EEB988771A8FB43B34D6EC79868A0670551BDD19CB5313892BCAC9E4FB500D3375AE471A3ED551B2D9C76142B22607615454A910F8578E44B448AA9200D805CF4C15EB635013BB80A65593FF578C794066F05ABDDB850FF976C74ED6ACB4C41064FB5EEAB479A13BA57DCACF7F02421603194A3CB549F08C0D700790809EE0E585DCE4088F96A740320C57D5A632C8BF5DC173F0F841173AA47CA42004B808EBC2A6A1770AD9DC06027557F80420DB47B0158A1D1FF32007FC058875C4F5D21FABB67BFE8909E10B51BB35C76D0605D0E6A97E56CB93DCC58F722D95F33008B0A237B711420A20269A7097396A4A98BE20B8226E103CB1136EA3FA39D438B305B63FA049C420CC378392B9F911BD7800BBAAF2BDD7586780C7078DEA622DF51C7190841585BB16BAB9A0D83625D55826E3949AE018E7C4703CA082466B9A078393C30A4F6B7B1FC775C9DFF7CFB5909CAFBC66EA946E6F098F881B3039C251FD3AC142029E8728082F838A202CC3586672CB6285B021C41E3C16F5787CE6E319D849483FE40D989C246F7C36C11A991234AE7FEA68770C79D8290AAE3BB72BA014AA1279FD13977A49B0CDD494CA00C610CC2306059B695686399C1590F274F735142639425DD88026F8BE0F260CD66672A12B5C7B5C7323408A2711677F062625EB8F3541098D079C13208415DCCF3FF72D1999721DB3C271F7521DFB0F129B3CB6885310A0689166A3B97B09610347CEEA5579650720DB621DB20EEEC24EEC2144FB523ED2D30F64B9C6655928B3D06E1FD9B088AC8B7C964213E5674757C7BD48A3D066355F0249A50548F430C55A6CA0471953EB7C67E140AAF6322B7741225931622DB114ED46B9EA997974C9AE2F54B87125CE79E8621D712688B50C7A49877D52091643A4A43148550135F27BB30EA131521583F5B79255309465F4B9F2233027855CC0E7C93BB33705136C88392CCA717254640C540573D3A20032C9B297EB5B02C954C744C4C6143A56EB48F1D15439F885803BA5ACB524F3D54BED37145CD9173ED92A00F724273787CF1B89C788184DE0905BEA74FB331DDBA00CDA70C1547C634C706A8447145489752B0633628BA4F5286851E1B5FFB8A7FA2BBAD3F92C542ACE74E67AA07B467E70B6A7D3056592B36A7A37C6C7114C610721E9C6EA933742E43609C41F6F3803E99A8D5A27B069BB73C892BF07524A8B2989633C96CCF33791BA29F3D575F249C640093046D1684FBC701AC633381BB349BB7D351230A8BB1A22223DE3850258AC7043B887770A307C3746002CADA2826E47F7694EF51F94FB9E3645AECE6273298592BF00C0FDF14C07D8C9FCA401FF351D2E35491AEB55AED9B1B0EBC2424CC729AC7EB07630B8B11D0E47C323D6B3C0BA12DC235D5C310CE2C7BC1F0A8467D627568A185855750E12717760355A0B8A756468E95406D375F6A1289B8CDBFED9F6518D7031C57FD3455D4544735CF52680424C90F14F\nsk = 5E43BFE8EA443466AB6B087DEADC672E7AADC85521D549B978B054A9B8949E519E3FC3A653607D794491341039713037D31C9824EACE39E7127A974403441E25B714FAFBA4B98041E85B2FD8D8ACC2A69AEA9C80930306B46BAF5245A505D48E293A77AA4174D1C095B0B4A45754A4A94BCB01D4543BF7C7DEF2AE2009408725C58BC76BDE03ABEF3C4EE0831D3C6B2632609707B3B861F093E857902D52A2A48619B1EC20DDE7A923412F7", + "9C22389601473076965959B2AA3C79DD31B98CA9847731C89B0929EF5174CC6B92972CE2C07C8139A62C901216245CFC92B2DA158079E1C93C8E08FF438A02DDCA4CA948F47A106D40AB6A5B0AFAF52052F237E44F0765B3436271421308611845785E257CAE691C39FB8C80BBC1C5FD687A547B7E8E3AA1D7C15A918984B6B359CD24711CBBBB95716EA54A8D3511C5DC983FA1B019E0B0D7DE90C3C0A9E7652C18E72CAD6F9C510E64F0CDA8CBD86502A5880EE1536EDD16AB36BCFD859CE879B3F5D6A0D90630668B7385C8599ECB1849A4942D87A91497129E196309156C9AB245F4C637080C963F9648FB2BA6F32D2566F88BCE680203DFB827438295F8670C9BCC34A98497851BDB0E631EA06ACCC26373809986DA62FA714012D2579D5D61443330E3B882C800B6C9D02C98E9859A4022DB4A09510FC91A3B95BCBF73B3A09311CD13E52B61733E02DBB400E8A54A30668311AC02FAE2B55FE05C95AC43875D92F3C2ACB3D4A6B53D363D5D75A697061055A3A788BCDFA051EDF97C3515CA920EBAC9E7A998BB598B8436BDB63550E416D2AEA5057562A901B609B129D92B27536E02C26EC6A3B2C5F6B733D0529330E9A89600B089DD30A0BB52530A3062BE741B09818A78B4FB9F274B7262CA23B3F2A40542CAA64FE38A6ED06BEB5498733A38A7FD0B5AEC2673ACA2B07E00909E68D40AA207FB179CF7A60A9E13719635A15CB221D1CC88B921E950C94CEE17D60F80CA5B4A656F501D7136D1245207479A1DA42C26C48664297562A0BAE0E7906E9D853FC7C490E4078B5B3B226B37101A31B5D05A26F1CA1F231A853F23F59D86A3FD269A0256EEBD02CC0C6B77F1B1C613114E1084D8D1CBABD0C7702F43D2EE01DB985382C562F1B7885A7015EDF59BD8988B5BCEA1CB04639BBF5B119E6293F908245455070DA3013D2B6E2116776694B44E3A7E433407099A51940870B336F547677665C7066E181CE266FF0E508268731BD13AFA2ECB4546276A5DC50772A6FA38541AF968AE5C59E2D04C3B6002C7120A6A970ADA2671590411552E48E7119C7B7F7AC97429E9B7CC0B5242DF277CC10E7C48976266643A9B2308CF1799324780743F95E65851C03599FEA7129D5552B86AC35AED10B5F00058A8742C02A3E4F6CBF5DF61C66143EBE933060C98A4BB55318566184601BB395625FC86E4BD47377B54459B45E50C145596B9178D57D01BBBAA9A63BF444889FC810F1E40E07D289E0B04A58F84348463B9FCA3176AAAE6C1C119CF679BACC6EB685B9F443C2A9E304BBA0ADF3888B42698AC1F68F1626439E796E1967C7BEF581DBABB6C22C9C16029E18D8493A524FC2A41738A25E735C665E79AC423ACA37B5222D970358718343322DB0162D26965D5E946B700AB88D702FD5A1376920B5BE702297AACDE28588DA91C719D40C1FAB0AF109742AC26C456961338C44C93C83AB58581635499545CCA66160E15A35BA4931E2B91FEE68A8734ACBF72755E8D452D17215457161284435EB6A7A2933C8D146A12679143B80740F68AE052087EEB988771A8FB43B34D6EC79868A0670551BDD19CB5313892BCAC9E4FB500D3375AE471A3ED551B2D9C76142B22607615454A910F8578E44B448AA9200D805CF4C15EB635013BB80A65593FF578C794066F05ABDDB850FF976C74ED6ACB4C41064FB5EEAB479A13BA57DCACF7F02421603194A3CB549F08C0D700790809EE0E585DCE4088F96A740320C57D5A632C8BF5DC173F0F841173AA47CA42004B808EBC2A6A1770AD9DC06027557F80420DB47B0158A1D1FF32007FC058875C4F5D21FABB67BFE8909E10B51BB35C76D0605D0E6A97E56CB93DCC58F722D95F33008B0A237B711420A20269A7097396A4A98BE20B8226E103CB1136EA3FA39D438B305B63FA049C420CC378392B9F911BD7800BBAAF2BDD7586780C7078DEA622DF51C7190841585BB16BAB9A0D83625D55826E3949AE018E7C4703CA082466B9A078393C30A4F6B7B1FC775C9DFF7CFB5909CAFBC66EA946E6F098F881B3039C251FD3AC142029E8728082F838A202CC3586672CB6285B021C41E3C16F5787CE6E319D849483FE40D989C246F7C36C11A991234AE7FEA68770C79D8290AAE3BB72BA014AA1279FD13977A49B0CDD494CA00C610CC2306059B695686399C1590F274F735142639425DD88026F8BE0F260CD66672A12B5C7B5C7323408A2711677F062625EB8F3541098D079C13208415DCCF3FF72D1999721DB3C271F7521DFB0F129B3CB6885310A0689166A3B97B09610347CEEA5579650720DB621DB20EEEC24EEC2144FB523ED2D30F64B9C6655928B3D06E1FD9B088AC8B7C964213E5674757C7BD48A3D066355F0249A50548F430C55A6CA0471953EB7C67E140AAF6322B7741225931622DB114ED46B9EA997974C9AE2F54B87125CE79E8621D712688B50C7A49877D52091643A4A43148550135F27BB30EA131521583F5B79255309465F4B9F2233027855CC0E7C93BB33705136C88392CCA717254640C540573D3A20032C9B297EB5B02C954C744C4C6143A56EB48F1D15439F885803BA5ACB524F3D54BED37145CD9173ED92A00F724273787CF1B89C788184DE0905BEA74FB331DDBA00CDA70C1547C634C706A8447145489752B0633628BA4F5286851E1B5FFB8A7FA2BBAD3F92C542ACE74E67AA07B467E70B6A7D3056592B36A7A37C6C7114C610721E9C6EA933742E43609C41F6F3803E99A8D5A27B069BB73C892BF07524A8B2989633C96CCF33791BA29F3D575F249C640093046D1684FBC701AC633381BB349BB7D351230A8BB1A22223DE3850258AC7043B887770A307C3746002CADA2826E47F7694EF51F94FB9E3645AECE6273298592BF00C0FDF14C07D8C9FCA401FF351D2E35491AEB55AED9B1B0EBC2424CC729AC7EB07630B8B11D0E47C323D6B3C0BA12DC235D5C310CE2C7BC1F0A8467D627568A185855750E12717760355A0B8A756468E95406D375F6A1289B8CDBFED9F6518D7031C57FD3455D4544735CF52680424C90F14F268B6356F92C57DA6DD34494B927E8764ADF0AD519612EF0D1B8951E50966C2F75FD654BB12DA3469881ED591A82F58B4BFBAC587D045FDF3AA0348029DEB1A7\nencap_coins = FA2C8B8C0F711A6D31C496199AD1993C31DB62DEBBC11BA3B3A86FE4278C365A\nct = F06D63761312FFC41CA35166F452D47A86B3B351D528DFCEF48A13B285225521C667513148D98E5501D5C0780E169BC13BEDB356CFF9355C51C4C3E9B2054A1CDA27C9217A172C8A63337BF7423797E1A4CD65C9201B22E81380DE4D4CDF13226FD4D827E9C069C5AB72DF97891693EAE37529A82CBC91BC4CDAE0E99EE73554BBEA00CF2F04B4E51AB17440005B4E9FF6CDED01247DDA9C0CEBD21971D4A4C40EFDCA37BAE907754CECEE4F28B86F55772449F32488408B2A6AF4F1A587F03D151195FB8F7DCDCBD5C26B319874A7694F579809646CFFD9D52AC29B220F42FF716D0ACEA609F4339C157886EFC5E8C8368651931FD4F6AA6E0C7444478310AC0D6857C3FFC283692474EB77ED94008F4ACECC1A860BAA3B3D22095CDAC6CB864045F5187342321A2EAF661E7912782BE7C4C9C771234C446EE33A33D7B64F8EA83DDB579569ED290387DADB5AD0A46E12DBE76CA5E99B367E3AE6D8E8E0808AB0377041083B048AB78C536E2BB6C1394E1313075A8D488E507AB0ED848DC28472F359BA36F09BD0083BF56E3AAB3DECC8243D2FE303071F128C9B7E7F61FAFA544AE6FDED2A91A60CB06575C7256F0AE2623655C4D5F45101979B0A280CEE7C758D2C7D01C094C5F46A854736B7CA7FFBAFA32DFA0091C88F20680DD925A8CF26CE1C8423B04624C153F51E16B57AA94EF801F0DA20B4645D88DFF47624437275CDC5532AE3B79958D7E4FDDA0519F4441F7AFF5D3312DE736BA54BE887057A889C008FDFDA2217DC030E4A8151B03FCE577A0EA3DC05234ADB74E27785F3787D35934541FD7CF2BA1A50C0080F26013362002E200BDACC13C4F2C208EFF68D39A2CC461079C9A101D792E5CCD55FC1419DD3E7FAED3222C1F76861D1461897B3601E5922641701E297A352BC11CE254B7D3CA5AA1E33E09DC3048FE433D190B87009C80A1561E563D7E6C4C51391D4349C227EEB7C2ABA5921FB35C5C80DC08FB628879856C6AF7E80A5B93CD5DCD64AB9B5198F988DA5C717D0100B03E9A56D20491BBC72E7ACEB66B602D283C76A1E075B3560BA920521CFB87A3260EDC2703BB6FBB790DDF3CAB35BB0CD87231A51EBC9A66B848170B98CA7C7B1FCB0179EDB3A9F353921C4257905F483CCEF02782E62E0039040F600C3444159AE1A2489CEAA1CF763AC455CBD223B356CC7EB006CA100A406921320DEB0BE4256BDC6E653DCBD27A9B01A599431BF68AAB3C357C2186ABECFF3D67009873B1FD8EC2A4EF44B2C86CC0FEDF2AD38DCC69B02CF30B1BD43AEDAD2EAD94165C715B61EE7484123BBC47D73293BF4B7690BBA9090D661DF0F054FAD31062018A45D0EA4F414C2F413F939C0AC54B034C79DB7E7C2E3718A2649F7150501244C40F4858F05E8A071FC8A56F04AEDA538B23F2773D5912C17B46BCDE3D0A45481FEC220C9EAA88FBCD5F8B77978AE7E0FC1497E5E31909FE7C97A220DB32FF1FC6B16A49E63ABC472C179978A12548105CDB70D9A34065A22A23787306A45A9380EAE75E76D\nss = C5ADE7EAC4CA60209D65539C8551F71602F2C6AA00FC244EFF0CFDB3F84B98F4\n\ncount = 49\nkeypair_coins = 447F6076A627BBC5AD7773FBFEB14B4BA9AC43A0F8B99FB6DCD5E452AA3C47EC4C7E3A5FA1EC46B73F87AF48578132EB080AAA37D31F0C2A041C5948E59F44F9\npk = D8279F9A0681CB98BC38CB551320031F46262799C182B0355EEC82CDB58D750596A4E6BF1213490810415A4B347E13C9E8514890A0995843936BE342E81C7F4971BF9B75925D61AC8C961492A85D83FA8E33C12FA37BA08D7C681C521ED4060481F58BE673007A081321E01E21419E232283A01CB1A4481550DBADE263382EB93B7E42470B265027A933C480CDA340A9A4065B4BC47990833786456AAAB5A81C0A46E0076B91BA5BB4D4ABE21C6AB193B3A3671C18479DB082A706768A63109D2C4224D71C7C95755CA24B056C355E9C22CF5006662B3218EDD4B317B19962CB514AF123245B152EAC41391CB432C6CAF9295C66DA4E5737AE3D60023F46AA7A604C64A6C403306CA4B96FC2929AED5B4CE7E6C631B473D7D61CBCD19826AB82C0C58880D77CE8F9BCDBF59D645424BAACCCE334809B43ACB99248BBD966C88793A273AE857946902649F97B5516FA2EA2A84FCFBC054653852D8421B6B78C289B49080C8EFAF85DF195AB5562A03E7099C43C439A25AB41390B86DB4F57188F002129F3EA1FFDBB9E9C688EBBB26E0D7AC6EEA395B698A134F70F98480E87313B79444963557CEE82534E9C1CF10B74718CAEDE3BCBD98A68D9956FACD8A45E2184C16B14048B9D28E8BFBF5AB43D1B650EE8CF13148CAF451CFB144656052CBAF82E2F765C8C9C66C23B0CBAE0257D6000F247200AB87F93B5167478A27B42AD7681B6919529BB1430DFCC809E171A334B33A0527A1D9519C18130971C55F6EC172B86248059830FC57C7356C9BD8263F7D571D0F7BD87D2A1686A7C41DB9306558CBDF39F0176959A188B4D457B40C152B7EA09F6860D4D945E78C45EB68B579D48774EB26AD43BC1BE3C0", + "AC327C80B4C1115C2CB58BBC24A18146470ABC223AD51FA10EEFC311F1AC02AF4C7432210233A4ABC408B1DB484E7885D239C0C2B9C4952E577A8EBC3D6A7684E711E12DB96E1F988DF423A395301D2C15FE2F1ABF708BC64147A30E2717F7868FF602D50FA9A3D0B3A0097259AC52057DCC14319C438E113DA967F6DFBA4279245B72CC86CF724C81769DAE271E18C0B6CFA84B916AC89B12A1F8B05D88527AD40346775CC832713146806A2B2884E35628169BC12F67811B507BEE3BBEBCA81AB93B5D700AA92898B3F5CB6E9D345483CA3743457FAD8CC5BEC2A8E7A22A41BA8B67641AB181D42ABAF94D0055206B648C81361F8486408B610BB3552299316B5C0B7D301D9F1C3D55621859AB2EE922C59B11EA9F2A1EFE277C534128F2CAE6B598C0FA059EFC2C24E8A0C2337BC2C57A0BC64A7FCE190C656B529D21244EB66A900288B5C484BB033020B9B9BA3019B72387F2746B3B893A1427882BC3135F0A17F8271F9C8480EB60732672D44336B32F851A283224144C480AA302C05836EDC1AC4569A6020130B341466322D17811229441C4513A2E8041C85E035113992F16799DFE8C1EEF3AFF8CA2F341628808A81E8B66EE5BA47AD0863C735A904565F036A85FB1203058137AAD2206C303F22D3027E732542A342CAF3376D6B065A745E31E865FC2243DA31CE08EABBF8183B4294700BF8928DA8CA78BC08490810C39747FD3851211B22F26451F6772E0C75659133E8D8C063CD3044DA1719855FBBD9796314B11DF8459EBD2D92B7FDC94C4C\nsk = 469963001D4D93DA7CBAAC0ACDFC833C47601AE334DCC0022A9220138C16B9ECA73AD1863431A34F593ADDCA4F0EA393FC4595D22A7CADD0A8D89827086A955400ABAD84226541114CFCB3E3A240FB600DD6C0960A7976175C56B0B48C66721E13882E3AA5784E12869F0C8518037955F876997975D27A7C92D4CF005AB859590504C768B02576A94263C87C4BBFE1AFB09B8C0A5C067776A0D96A5D12925B44AB3D3E57C6971B0A86617F65A16C7E9B42C283577219409E1CA4DE08A92DC5B4E8E87051680C1B24068DDA801FE871E0B28AB0611BBB97CD49BCBF159B7785830BC9D302C0A61AD138277AFC2374AA64E983506BD11288F4A20376B50AE1C1233A1ACF30AF1DA67301A5A420AA826DB58322DC1C7AD8BFD25C3B21025B565C357B4A0802E615A35A384F1794A0612E030228A865A0390197E7C27F45A4258FE26082C850170CAE86721BB5C68CB32153B9934DE4CB11528C570AF363925AB0FEDAC79748B3489B7180E81FF6DB702D5A100336955EC02FD2B9C86C2CC001833B0BA1B7DBC9699C6556B448324D29B0F6A4028BF48A49B1CF60B4A9F91321AA64CA849848CEE2BE0A29219F783008417DA307710F87CAFA2603FD206E5698177E81470AF4C608A6128908541183A5B4769E74166349E55B4D2A2A84600EF712C2D1F13F4FB3C91BCA8CAD209CB5BA0FF578BD6E29A0CF07A972D262A2EA3C4DD44A5D55446C174B345B96871076FCF785CCA68545EB6BE64BC9BE17A7D5914D8A50B286D3A2A8E1A53FAA53815ACF0237B8BF204C34766E97883071E56539361BBDF29187C180414C83D9C09E30983995AA4850A6B2358AA6240642CB9B0FDB739FA5A93EC60C11061AA8B5E71316A517BE2BAEA2F74BAEE32EEAA0A75D2030F5E8BBE1B517F56511FD8AA499621A9EF6C88B96A9F33B2B3CF04381B5C97B743063A6286751AD9EE14903C4674B308DD5E28BC700134C43C788B04460DB78A0E795E24698553722B4C3A095784828960672CBCAFC11AF32C918ACE0580D5BCEAA574409854051A2419F148809147133866F9B651A38622F21E0614F10139BA53724831FF312157146169EA29293D2A3F1250AB9CC877D448ECB53139E6C5487DC2931D45B4A74C34BBA11CBB965E1E664ECFCA54DB7BFE7E61DB2382E50076A70A9AA028670A354013C894B729945830B1125AA53F4D352BFF33FDBE7C64BF70A4C3ACFF3680976FB26368693D928122ED5707B453A1DD714FA9C5A8E6534D45B53A2BA464E217DC0461BE31C5763715BB66B6F3A4C0E7A3A4CC107602CC3B67487A7D162422468B5CF33C8E5A63F801C2016B15C40398F914CBCDAC9664B7601680346FDD3A499D89B5CDB7E77CC8A1215661AA34737149BD0734F7BE6A0C20BB94E6A89DFB9B0A9D6C4BFB86408922FDC9650DF7577E5A89215C8636D5C376F4596C329158964084200C91AF4A7699018C6D139F521204BC521110AA222203774DB88AC0AC94CB97720A71411EABEE0B2863C35607A617E761298825ACD91C73685198BE96B84A98AC7295142F6C19BAB0082C53A8A50A3A39EEC2A34E859CFA2C88C9CBC77B1BDB5377981F61C1FC394D70820336BAF21820D44C0956E09A5D8279F9A0681CB98BC38CB551320031F46262799C182B0355EEC82CDB58D750596A4E6BF1213490810415A4B347E13C9E8514890A0995843936BE342E81C7F4971BF9B75925D61AC8C961492A85D83FA8E33C12FA37BA08D7C681C521ED4060481F58BE673007A081321E01E21419E232283A01CB1A4481550DBADE263382EB93B7E42470B265027A933C480CDA340A9A4065B4BC47990833786456AAAB5A81C0A46E0076B91BA5BB4D4ABE21C6AB193B3A3671C18479DB082A706768A63109D2C4224D71C7C95755CA24B056C355E9C22CF5006662B3218EDD4B317B19962CB514AF123245B152EAC41391CB432C6CAF9295C66DA4E5737AE3D60023F46AA7A604C64A6C403306CA4B96FC2929AED5B4CE7E6C631B473D7D61CBCD19826AB82C0C58880D77CE8F9BCDBF59D645424BAACCCE334809B43ACB99248BBD966C88793A273AE857946902649F97B5516FA2EA2A84FCFBC054653852D8421B6B78C289B49080C8EFAF85DF195AB5562A03E7099C43C439A25AB41390B86DB4F57188F002129F3EA1FFDBB9E9C688EBBB26E0D7AC6EEA395B698A134F70F98480E87313B79444963557CEE82534E9C1CF10B74718CAEDE3BCBD98A68D9956FACD8A45E2184C16B14048B9D28E8BFBF5AB43D1B650EE8CF13148CAF451CFB144656052CBAF82E2F765C8C9C66C23B0CBAE0257D6000F247200AB87F93B5167478A27B42AD7681B6919529BB1430DFCC809E171A334B33A0527A1D9519C18130971C55F6EC172B86248059830FC57C7356C9BD8263F7D571D0F7BD87D2A1686A7C41DB9306558CBDF39F0176959A188B4D457B40C152B7EA09F6860D4D945E78C45EB68B579D48774EB26AD43BC1BE3C0AC327C80B4C1115C2CB58BBC24A18146470ABC223AD51FA10EEFC311F1AC02AF4C7432210233A4ABC408B1DB484E7885D239C0C2B9C4952E577A8EBC3D6A7684E711E12DB96E1F988DF423A395301D2C15FE2F1ABF708BC64147A30E2717F7868FF602D50FA9A3D0B3A0097259AC52057DCC14319C438E113DA967F6DFBA4279245B72CC86CF724C81769DAE271E18C0B6CFA84B916AC89B12A1F8B05D88527AD40346775CC832713146806A2B2884E35628169BC12F67811B507BEE3BBEBCA81AB93B5D700AA92898B3F5CB6E9D345483CA3743457FAD8CC5BEC2A8E7A22A41BA8B67641AB181D42ABAF94D0055206B648C81361F8486408B610BB3552299316B5C0B7D301D9F1C3D55621859AB2EE922C59B11EA9F2A1EFE277C534128F2CAE6B598C0FA059EFC2C24E8A0C2337BC2C57A0BC64A7FCE190C656B529D21244EB66A900288B5C484BB033020B9B9BA3019B72387F2746B3B893A1427882BC3135F0A17F8271F9C8480EB60732672D44336B32F851A283224144C480AA302C05836EDC1AC4569A6020130B341466322D17811229441C4513A2E8041C85E035113992F16799DFE8C1EEF3AFF8CA2F341628808A81E8B66EE5BA47AD0863C735A904565F036A85FB1203058137AAD2206C303F22D3027E732542A342CAF3376D6B065A745E31E865FC2243DA31CE08EABBF8183B4294700BF8928DA8CA78BC08490810C39747FD3851211B22F26451F6772E0C75659133E8D8C063CD3044DA1719855FBBD9796314B11DF8459EBD2D92B7FDC94C4C4C6D304E0494D88D83B5E3AA5761DF3B299551A24F28994D2747B2B08945BEAD4C7E3A5FA1EC46B73F87AF48578132EB080AAA37D31F0C2A041C5948E59F44F9\nencap_coins = 0359CBD196B3F4E9A0F8506A14A90AE501B00496958C512744EC20E95B065497\nct = 894C1EF672678A0E6136F62C52A7E642FC5104AA2423C3BAC538E0E4893D5C4B3C204F5C469A956AD55EBAF3C82AA91BEBAE235AD57E810AA4C2E51B69C9FB8CF71E2B722BADCC98F0E0352E026D98D6ABCDA9C61C3196CE3C64D8093414079C9F464406EED36B21F1D66FC855D45EC2AEE1181731B2706EBA9AB1349867A76A0BC0321F8326218910F1F4F885F3E01027589B0BE2DE423A40D6DFF75D1FEAB428A17A98E0EC17594419EC27054B17B425128920FF787AC9F273A59CAFB6A52DF390E103F26F24EF5C2376A97B91BBD1F91C4A9C6CE0C06E676F7AD7F02AEBF41443A0BAC614BE48F76E5966B9740742A601FB87A45CAF1F903D65CD9EDD850E7F5D17648ABEF415B0AD79757611F4EF97F8FD2FA2DF4057E11938C13C6FB6ED2675C277CFB03594EB6096073D5D18F3A4FF829FDCC04B8BA3072205D8C7F69A61AD93CD8063928B1EE4BA8135103A4490FFB8C696E886BEC1DA525BC4FEE26E4B5CA04704BEAE4E30EDCD2C15F5B73C216945BAFF24E03C566399FA57D0949B1E7502459ED9C7D513B8E4F42B8EAF659DA1F3B68DC5ED8E44BAAE6C971B149CA42F807C2F17B42F606994590BAE8A3BB3EC00568C7EB47AD6D82A4B7A4BA9ECFBF84E0DAD327945D61AAA24F9141A3BBE4358BA43818A56AE46B230A937DD88BEE5DE7946F968F7F3AD6E50C6E3BA8D376B465584DDBDC5ECDF7B707F4F2B0E2D679422F49D38DBD491C899E3743607B93A43EA7A4E58615D2A267CAF3F9380BD8B2D9D17863E4264C2D17B5053F2A536EBA74C7DE641586DB7611A1B5D54677BD2B5F5999593894540B8C8244521076633B892F318C5AB83130EA76BE201DC59A254EA9E0164B5198FB2F6ACB5431C911931DAFA3065AE4C0B0734C52EB9C940B345D76387CF8B9FAD6E749119942104DA41A0F5119352ABA4AEDB0901CE8D1B24D4BC06F551CF53A3261C741B9E87103907991B1C7182C8E09AABBF786EFEF6BF82608BE76C0A95AE99E4098440A9FE8BB169415D96D668377485C767B35AA98E248432D1B3768231F7CDF6EF5975CF9A46715573219E31BAA56D5A68095761A87DC433849E9044EB555BEF2E0ACB48B0A3ABC1ABA69D946CC795A56A91E271138511E8C8AA2099F6A00CE880CFA4EBFA6B66E7FCAD0B856210FC057A972AAD6FDD539249A0D77BD891C4E7ABAA8F6EE48663801FD8EB49D2D35A103D85B29896C902A6CF2EDDDB8D9C1DB3071B91E6560E06369219F120FE60CFDE4E5DBB1908E58103DF3B5BC22A24B5951B49FA003E585F78A64EF0F7FADEAEF3F2DD69398CB9798B48ABE38182D8E531870C858F693CDD232FD6DFCEFD8DA72A3773B845A895EAB95FB5A0566D79FA683A8B1BCF889B43956BADA63577AE1FEFF4629352F0B4C16782AFF640555F4D24A1403540EF13205E4F119DF890F6CB9DAD0D9255CBE1ADAD85C1048F30DDF6AB98B72A6007B01044CA92126E41C958EF1D0589A56A40D0EE1FF03687339E4697BEFAC60D3B3860EEC133CF1554F84C9F1EAD", + "58\nss = E8167D50F2C74925434B2E86C2469AF294074C4B30EC4019677E2711F3F157E6\n\ncount = 50\nkeypair_coins = 2D5DF64D62CB07FE630310BB801C658DBF3D97993E68626745DE39D37FBFC2B26CF04CA090E5805FE0FFEDD6BE0F254397155A7639C5AFBB30A7A75CFEBFF026\npk = 41AA7B69158362A41767486EC3DA09AB4335FE2A25DD6C07366478CDA91C691C5ED9264F771124C1F3693050802F480F5DF89D5BE189DA765337A69C5C838488A0A4BA7880E91871FE346CF3ABB0AAEBADB211B5ACD3B773C9146CF97920E509DC202F79B14734C9777A567CD44A43500B5EB8005BF4C5A387701286639E6D9AC2574B33F2432B3A787039E34B2AE511A27825CBA7A8E09B401CFC6123D3B4C42318E7B032331230DA960A09F61A6A196DC185BB8BF1C1A6B691A06CB57F12BE1E45269C56490E256A83C13352A878C724242FF0681881160ED03166612D69894951D65B95E690DB46129D149AFBA2C835D3B138036931423D2F84CA51179466A1028D1601D5C397CC81B1B5E468869185B25095A0E5B5DD6A421B5C7ECEB58C4CF97B7FEB114FBC435C78857C65098D3017FF8A58F5927E5EE7712FA0C2962939B9D8C84BB6428B3902881188DF17479EC01E4709B7840235CCD77ACB0BB3A05995693781FB711D61F2883827A96DDACE29A9CD43EC6ABD4691BE1A758B72A629F6AAE1C795981C0D8BF8160BFB3B8F5047E1A410CDD49C6A42ADF0BCAFED1B21EEB95D504B1A48B1ACE228BB5E1508BF05128F0CB63F5597851B9DF4CAA5B6AC10F7F6188DC41B02761F840CAA42871C55205CD09771AC9125D6265DDC56A466249FBD774EE53756035349CA12A48237221BD53D7FF1AC18242442935BA818A3B50007A3FC14A2FA3ABE437FF14705DF0CB5AF97561A608A3FEA42A809A7A7D5491453C849DAB7ACD99636931C007A70D01655C7302F9A26012C494DE47839C1EA2951A87FF73968DAE83A86F392F021873BE4C75D2B0700A3B540F50CF6FB664A4627DDA9C75394032F434655755D12D4C781E2324AE00DD61744CEF6C5EC9680F379A26284BF9590A33350905E080E9B70547AC1CF3AD888F30232FDEA7BD2C184F9E1A9B6835401E737204C5EBF2B28F2B58EDD399F873C7849CBA8064B8A20C9C391841875B4963BBA2097B958D752739383BF26787E64EC215974B45848185F44B8780C0714B9651A7685E673CD1B6230C5D6639EA5629C20659802BC6F2B95DF274836241165A524EA99A941312FEFC7CDD2FA8016D69B652C3E94E73C70C97F65B3ADF14BBA2D31916522701D80252E9C7FBD7A17D306A4E1E02CDA405F3F07B38EB65824D5C9D8B91F7013784FBA0DF0348F21B00EF5A325C745A829714A5B9ABA16ACBDF029771D5415E867590CC5A57360A8969407F0749AB8A08A65E37E70146FC1B7BC40D789EAE83761E77749A07859BBC046B5A87E3A92A5368251127F12D27789318F8B9C3C1F79211922C852A0B0E10BBB631599190B49A66937920B3F113185D89C6E37DA5F7CE9C12D37C12CC24741CB9A79446606EABE8C9AB06D8963C959955F198E03A0BD127242DBF2A2180281A7B65F54C28EC9C6CAFE64881D6456C07607CDFB89E2CA2FB3BA8F8357720051C30952734932B08B508402A6A2F4F9C76B053C12A267618928032B5D9E41990A18C2C04BA7C2868AD9F4538FF1B494707EB9DA6B81374D7F9731F9A26089D7033A8C24600944D65871D313387B4101C0AAA27AE19D978653638577BCF4CAF48083EEEB57F401544D4DA3B73DC1C5C4A047B0A5EA85EDAC7BEC66F4D87FD2FE422E7DBCD02D1455\nsk = 3C14BDD913CDA0F267ABAA8B0A30A5EAA527638C01926623B0BC2BA55B0B596A92BAD72E92845828E8050F4C2F40873918E4524CEA8505208D345783F71202496721E361A582C5445FA31FB662A64941ABF9FC203AB4A741C9214C1B80B4CA617C4976C819794F53CACDB3509978A6DF5900016278388234CC1A09B804679F36718255B2DB60A7EEE5BC3BC78BCEEA8060354B54031C4C76B30A1A8B1EBB697FF8606CE408FBA72DBF0856E5B53B1E4A4ECC746CDFC77545B46060974C8A788A1D59529A9AAA571B895BE01ED5C23A0D22707D89467A5B9C662767A0D77D5C49ADCA983CE7401F34526DAB1CB9FE744BDE8C54C230705548B9ED00B9F4EA055466CDE77019324C0A7C9BA404B641A6530AE64A964EA47E6E80AAA4652C9A8B66061103F385479E50A780249A909C92B7913329A478880162D8857D58FA39D3283F5A2A7F8FF6ABFFE2463DB40728D06166627E9C92283FA57A2E46190AB869B6C21FBEAC86911284153B259BD2A442070D1CC581FDD333E5990F84AC67F47491DF01128F0959ADA0891C236E0ACA87755289C0E6C8FB136974C97DBB1B8871A4C70AA001FC950F0CBB3ACE4AC44F800252F5BD76FC1DC09A3D2F8860385A4BF8D765B49C5379140E0A2801DAC947C23803AB6B467F2BB1B019B9D53771418312F51B28DB18BE216794A0467D79AC8ABAF2C90F4B1B3474C168BCBCC1E6AE59C5781296467F2B8D63D5842D67935DD429BF8319BC0B8199CCA9D3F78C483B8E0771622EA764FA610EE13C1A188C56D0B5C17094C1B7A45321BB69D99A666A7963268A1D0A0491B8B5CB700A7D86AB9039330EDD8BB17CF1AC79355A82166458D2323E070AC109C98D201358F22BF9A3B513B8BBA43905D1A790A7B1A11F682583AB4FE0A82F3E316B7C70AFDD823C8FB7ACFD330B22F378E8597CA5357454A71197CB4039E9A81D7995D14587B479657584407B281886D6A7FE9B6170A056D2003BF898027C275B7C1C3D1D0C157145BA52D264699B969D60AA3873A9606041C20B17C90055B8016EA703539638CFF8AA0A219542BF51B68CF153A86149881C087D898EF9C3A089CC70A8656117131AA3F233C73CBF439022D224422920501C07243432AEB925C4023185D3F897A79A983D857C6D1422F9B22234005E00882F77C7704CC74ADEA4C8F3971E7964BA1A530C1F722EF696828C46946F0B329D909A47B83353330630359EB8E9B7E78ABC50FCA8C3AA9AF967C89F464430C815D1959A21A226A966A6434301FA600A4D129886826803EC49A54A34ACD62B50E33FD782937571816421341CD76A3570C17AC9C338E4AC4C51077650B98AE445D236904DA694F755C1A5B288275B517B4C9B896C49BBC18933E52D34969B6AD8ADD604B526488C6397842A54B6657B93386B0ED7D36FD2F448EFE43B0A144C33F729DF530C8B6340CD61897B3C50B0D8BA81228604F7A4BCD120CD2A7BBBA3B4818177C435A2B0C3AD838C6D9BD3903D64B32B8A8DA5D93589021251D14C920328C4063C2AF3C8C41228355527ADF41037E1AC6AA69A427A55354CA9D54025306C16F93154776B4A7AF9C9EF2298DBA9B669C40BD0601ABD410357B8940511BEB6C96541AA7B69158362A41767486EC3DA09AB4335FE2A25DD6C07366478CDA91C691C5ED9264F771124C1F3693050802F480F5DF89D5BE189DA765337A69C5C838488A0A4BA7880E91871FE346CF3ABB0AAEBADB211B5ACD3B773C9146CF97920E509DC202F79B14734C9777A567CD44A43500B5EB8005BF4C5A387701286639E6D9AC2574B33F2432B3A787039E34B2AE511A27825CBA7A8E09B401CFC6123D3B4C42318E7B032331230DA960A09F61A6A196DC185BB8BF1C1A6B691A06CB57F12BE1E45269C56490E256A83C13352A878C724242FF0681881160ED03166612D69894951D65B95E690DB46129D149AFBA2C835D3B138036931423D2F84CA51179466A1028D1601D5C397CC81B1B5E468869185B25095A0E5B5DD6A421B5C7ECEB58C4CF97B7FEB114FBC435C78857C65098D3017FF8A58F5927E5EE7712FA0C2962939B9D8C84BB6428B3902881188DF17479EC01E4709B7840235CCD77ACB0BB3A05995693781FB711D61F2883827A96DDACE29A9CD43EC6ABD4691BE1A758B72A629F6AAE1C795981C0D8BF8160BFB3B8F5047E1A410CDD49C6A42ADF0BCAFED1B21EEB95D504B1A48B1ACE228BB5E1508BF05128F0CB63F5597851B9DF4CAA5B6AC10F7F6188DC41B02761F840CAA42871C55205CD09771AC9125D6265DDC56A466249FBD774EE53756035349CA12A48237221BD53D7FF1AC18242442935BA818A3B50007A3FC14A2FA3ABE437FF14705DF0CB5AF97561A608A3FEA42A809A7A7D5491453C849DAB7ACD99636931C007A70D01655C7302F9A26012C494DE47839C1EA2951A87FF73968DAE83A86F392F021873BE4C75D2B0700A3B540F50CF6FB664A4627DDA9C75394032F434655755D12D4C781E2324AE00DD61744CEF6C5EC9680F379A26284BF9590A33350905E080E9B70547AC1CF3AD888F30232FDEA7BD2C184F9E1A9B6835401E737204C5EBF2B28F2B58EDD399F873C7849CBA8064B8A20C9C391841875B4963BBA2097B958D752739383BF26787E64EC215974B45848185F44B8780C0714B9651A7685E673CD1B6230C5D6639EA5629C20659802BC6F2B95DF274836241165A524EA99A941312FEFC7CDD2FA8016D69B652C3E94E73C70C97F65B3ADF14BBA2D31916522701D80252E9C7FBD7A17D306A4E1E02CDA405F3F07B38EB65824D5C9D8B91F7013784FBA0DF0348F21B00EF5A325C745A829714A5B9ABA16ACBDF029771D5415E867590CC5A57360A8969407F0749AB8A08A65E37E70146FC1B7BC40D789EAE83761E77749A07859BBC046B5A87E3A92A5368251127F12D27789318F8B9C3C1F79211922C852A0B0E10BBB631599190B49A66937920B3F113185D89C6E37DA5F7CE9C12D37C12CC24741CB9A79446606EABE8C9AB06D8963C959955F198E03A0BD127242DBF2A2180281A7B65F54C28EC9C6CAFE64881D6456C07607CDFB89E2CA2FB3BA8F8357720051C30952734932B08B508402A6A2F4F9C76B053C12A267618928032B5D9E41990A18C2C04BA7C2868AD9F4538FF1B494707EB9DA6B81374D7F9731F9A26089D7033A8C24600944D65871D313387B4101C0AAA27AE19D978653638577BCF4CAF48083EEEB57F401544D4DA3B73DC1C5C4A047B0A5EA85EDAC7BEC66F4D87FD2FE422E7DBCD02D145572BE2F5CD569E6229F00014854633F7B278E90AF4EA593411909467A03E29CFB6CF04CA090E5805FE0FFEDD6BE0F254397155A7639C5AFBB30A7A75CFEBFF026\nencap_coins = 894F98D7435D1C0C3667C22A218A449D07F117D46FCBFA4BAA09F62403827464\nct = 5B1B3B72E2F199B42C043502EDDB711E53C24054172565D41E66D4282537FEEBA7504469C7FC7BCD16633DE1272F527A3E42830DD74629B9781BA33AD866C441932768B3DEC2098C48F2CB512AD19AA36E9B78C04EBF1CE6C2B94CFC3304EA210AB150F589E6B24A2FE936F39633A5C4FA020EB29C89DB9EC20EC01B37724E43A207B6D3F076D0693EED88EC41448225C8A06A6893AEB8571D0982CF652B619831DE79C7F735D2ED86A742C10F0A1752CBFC68519B67A873C1D48F8C8CB9EF3696A9EBCFE2A53F544BDF1286AA14643544FFEDDCC11E67E45A6430E26743107393F8C2AED228DE21F1BDAAE8746F903CF77AC1C662C1AAE7D4056625A7D93CDB7C453E27B4A1E105DCC9ACA0BCF3D868B371F3331FA557C2A706AA8D97571983036F5B2BECEF7244C4FEEE553378112C683FE3CB7ED4B4D03B77BB701868F803ECA7122D2BE024B2FB6CE14F8F1F6789848F866A77EF6C85F39F065B72", + "4352401FF7CF3B990DDA7AC7F593BF4379E986CD461E4CF14116C4F7C9F622430B0393DC5D30AE63DFD41ED02C1827EC48C22E91301279C6FC28AF4564495D9F610C6DF5FD66B915B148E6A1C82FA2F16E8A7A1B369A7DA42DCA7B58F00AF9ECA5EB52A78668CEF4C84261BD05CF300CBED95C15A231A205FF36E5268B876322921A8CD5486AE5A3CA1F0C1A2BDFDAEFEA827849C78DFA21AA9F64288DE7EB361D949C3B13BDE52C498B17B4DAB29DAED805F6125DEB6E54D3D1C846AB82BD0E14F26A5DD21148590EB20878324E1BB387217F8B016A1F04D7664514BC6CB455480F4EB7FD57C1F84887246B7F799C570D9F1831F62A21E6A63D4B2C5D23593DF1D5A54B3BA197411BF561E9512D7209A707F7ACD6897EBAFD88A19BC50A165978AC278F12D6D34268EAF8AE6B32EEE3FDAE2DDD6C56E38FA99A046149B16646D1482D6CB4D8AF4A8109BAAE010E2763E42C240A61BFE05EC2D9AA45AC6E9FAD31DA9CC250BFC5279313AF5A65B6763E5D780B860273B08F77903F067B51E4076380336414AE1E8200BE6B6100E9143A6BDD3C9C16FB22E0C8D64FDD23688E4B04D4B8B5765691B7DFC4CAF16BFEA2A51DC28C8B5B77305B4D270F3DF5AF41450923D043D3B743138D45A8090FC05AD3A4B3EB2CB611BF1A25B3B15A9537AF49DFFA6E2A35696F4A589B0F22F028AA1999865F09C7AEEC901933D21E9BD482F890533F0ACACBCF19B71B7A4791B8BD39DF6F2EA2AD08C7DADE740C5B8D045586219730D055133840BD66D54B23092F55A80E293E6F7B34E6135A2DA08737D0068AD449163B2D2BABE3913885980A12B842D42AD82BD21B093A3108B5EDE9CDABD5A6D022C942662C4420591418D8BDDAE8BA8ACBED5BFED3BCB5678356E422227A88E3B4675D425E7BB72F79256F466FC3D35F71A439B01E1C212E59E4A0767E14E547E145735E1E0F9C0739F76A0AADD8B052229F02628BE9820DA505F7046DB1427BCA184389F484E606DE4359EDDDAF7BD54759C92248E352C31BCDED590C7C0276\nss = 08BE70E91B98730E5C7DFEB15C1A020E31853E012B04C0B70CE2560D3A6E27BF\n\ncount = 51\nkeypair_coins = 25056D1B8113BB362DD979D98643D7A7AC9C4F95994C0BA060609B6D07002FF30D5EC1BE89D37BEB810DB438778BAC52CDC1FE8F5C27AD825639E12ED908FA31\npk = 32B6C92F059443501427AC964FA569CBB074C71053F179BF1963AC704489EBB9936E23950E51AB7E26A98D6031C652701FA4AC59AA7C15D88C0337A067257B8D916DB0456FAD9622F44A928DF6CCE84A3E6634C9CACA246208920C487B9A666342ABC389C14C499785BCB91A95DC868FA20D25B08AC0E48C72E9B486151F21B11731D1BF049174ADF279F9020AA98C38372877299C4F54A4493A3B20F8BC71CBC490B363C4162055CF3A5C13650DB1154687462FC01B5E5B78C9F603255A24189B808358E17E01B9CF736A77D78A32520B6DDC9C1DD65A00E84B562B607B6AB472D5173AB53A97DB08B322E95CB3378D5D088CD3CA6FA4739C6633A27D686ABF040DCAA766BCC18D6B8A2F91E51ED6D49AA37AA44531BD9DFA25C116A842E50F53A68BF1617245E8B7DA778EB3343D3F2575EA84627C640A6509133F4C5D78151A6695245659955CD3824F264A7DF58EC87C8AA3066ECD1B68D848CB758487E647223C0154388912ED028AE364A9FA9A018D8558C3E9B179B66F2488C2BE8792B1849FAC0401A9756F209889FA637CF7ECC4F2C0249EB5C6F7E0219FAA2A9433759AC70DABC7BAAB623C2023CF7EC869B75BCE953CA3316B7A6FA685BDC7C8D467273268A0797B8D6FE57DDFDB03FFF7AD3D5B9C80DC1939720EE8810933A04F51B78262910D7E28C0EAB06B91980B65056472A293F2361183125670AC2426E514790B945D6B09C9EC354FE7C895A30231D95794F89EE60761AC9B2AAA9A75EF168C0950AFB498915B2518E010C3800764BC5A65C0C54B2AF686B7D954E77BC4CF8137AB398FE93429DD0AB80FC846D4CC8DB2B9B2B4BB36D4C4121639C1E74622E59250701302301B4DF96B2FA62736B29CAF0866096F842898B2C6012B93B5AC23D1F39E192002FF0B9005FBB8CFEB8930562A4E0AAE7A40C5032B8B33D0760D96C7C203920E2439D3EA02372C7F5D80B92259349076BA20C3AD4FD21752A3963CC5126342A963A363C1157F33189732F7243E465B14969F1CA199AF45B50851266742151A235A8BA9A595534BD6AA31CCF52B8C5885D571A93D2577C57057E2CAAE68C9C84F565C72681FB15056A345236B02A1E5B13289388F035A2F8E03402F8B0A44259179A904C94725319ACACD28AC1E449B87E8916091940E33861A4A35A8600267F04FFC6A3E06C60858D578BEC60EE7716FD4B0225E5CCEB5FC5437387522200F66FC880E0C874119C71F462CB4EAA24E67BE77CA67278344199B27E2A55B50F372B65345122225D7324CA9504CE4D12BC101639E93B331E3B60E1B520E03C9703A69F54C2B1A52254AC44B86F310A711263A5A9B87A7116EC5654F7297EA76B63F939C1F49CE99D52BC58876160401558193AD98C7C8F4B6822712429679214BB2B6E8B324B58E1F57695DC8968BCA7EC3717DF12C1279408183B49679B349E2E45686E722C3A57BD9547A65656CBC79AEC1D3B129837D84A6975D018C7AB04C88775E9C68839955775FD66AB02AAD69B76307F51DB2AB33915ACA61969AEFF14674A557C322AF6997B1A8D9C51445884779227EE742986446EA1719808996049038E0D9AECEE828BA054417CC3A683A7295066AAEE9CB429C4740531990744A987152DCA2388BA27E3769C8BF287E54E41CBC0ECCA95CE621F2\nsk = 2D149D32C41889573CCB5166C597C3FE207CB806BD13A8A7BDF86267A93DA7110A31F22221A17A5381C367EB1B9CD00810189C1F12358B59ADBFF2060ED6AC6712C660B51B553402D406BCC1D2444A863B6FF261E17AAFFFD01BAA2B05CD83050AB460CED09BC7C0C2963784B7F9798D837BBC0483001539F0EA65A0574B46785645019B25130095725FB71556ADD2832EA245E250973F504DC58A4BA3C45CC8259E7906588D688F4F4CC79A1A955EE31E0FE931D16CC9DA767C3A48BAD09874F7730FA74C349D2163638AADFB59A462E904C5530A0B485541E391B6037041EC6A0560563F186BE2AB97A42520A7DACEABF1216E16870437CF012A6B6D082BBB23349628AF4DD8CA9EA986498A80EDFCC2418C3F5A627BA8BAADF3739B3C578B2F193F57B72DC2827A2DC379AA31B6127C65352338C012CFCCE0AF1B33150D488CF47134E06B5EBAF0432C172090FA6671670BF7B66002E135E7C43D938343D5729E22E5597A06209E0793E65417DE945B5E1AAEB2740FB1B350C902C1390A97586564FA94120CF7538B21AACC0AC0831B477E37C9E984B73EC91ED88705EF4CAFD2F15A50227C0E4C0627D2A6D7875E9605AFEC339799690BB6F0A5B01141A6976FD51AA7A079827D37CA89726686BA95D6F275A59341FA229B4C163C260C4DBC4587C50AB8F0AC777849B5F700209F17C15251854C35AA23C20D486122EC8145565966F4A067251B96461950AC2171F1996E94517610338B88C091C356804CC691922449DB0645A404AE4A641D1482B58E6230C7965C23605D66E96C8F0418AD786801D7530CFA2B5B757E06ABC10518B274E3992E538922B717866C7EEF827D2BB4C05FFA3322981CD8069DFE028D878A8B7A002472D302253A83AB84ADF5530CC5F4671BF5219FE600BA97ABD2555C52857ABB76CCF4760ADB30346C55AA5340B189E1968F72999E64C0B76297D232412B3C9384783457B83309BA7EF74ABD50D16EA1C32A2362AAEBD02DA7790FB8827FF368261CEC14F3A2095323502446703783CA9B6AA595D690031297C59B25414455C155924A47896716AC45330CE7069D131B75A57769FD4B4CA1990170A3570160CDBEF1C930063D56E3546F09B1CD913C82057C0BB89111E6B1BBA88EB8CBCD72078FCBF5059FE25C84BB5607D7B20BD0733FD96DBAE2ABD9531DDBE3CDD89A926361BB56EA0E5F9181B2C8C1532312F3F9005135C07DC211B824B1E63AC96E64845C35C41E0313511A5D429663796ABF2443908D353766D40F47A910FD04A710BA5D6A5B301832A5B6016338D8858B220E8219512B643B8B60CA2A9347EC39638B787FDB44CE72408DCD2504DE24AF91130ABC09B2E7C9BB26B3393EE06FD77019ED3466E019AC92A416C9683DA22CAFB1A9AD3475AF17A15EE9F97446096647578F77FA02E79904FCC008FE509425446CA2A4C1DFF32CDFA4CE120230BB5CC9CB49A2E2841BF69A1C49A762EC171698CA0445201C485A15FEF2562EACABAD3259119C9BA4185677E03AA0470CA848709C4BA0C8E5814416C5678033C819773DB36E7A90C65FA82FFDF6921C38285122163BC0744DE5C5363C9A973428A6DAAD20E5A62D37017B464DA7637D32B6C92F059443501427AC964FA569CBB074C71053F179BF1963AC704489EBB9936E23950E51AB7E26A98D6031C652701FA4AC59AA7C15D88C0337A067257B8D916DB0456FAD9622F44A928DF6CCE84A3E6634C9CACA246208920C487B9A666342ABC389C14C499785BCB91A95DC868FA20D25B08AC0E48C72E9B486151F21B11731D1BF049174ADF279F9020AA98C38372877299C4F54A4493A3B20F8BC71CBC490B363C4162055CF3A5C13650DB1154687462FC01B5E5B78C9F603255A24189B808358E17E01B9CF736A77D78A32520B6DDC9C1DD65A00E84B562B607B6AB472D5173AB53A97DB08B322E95CB3378D5D088CD3CA6FA4739C6633A27D686ABF040DCAA766BCC18D6B8A2F91E51ED6D49AA37AA44531BD9DFA25C116A842E50F53A68BF1617245E8B7DA778EB3343D3F2575EA84627C640A6509133F4C5D78151A6695245659955CD3824F264A7DF58EC87C8AA3066ECD1B68D848CB758487E647223C0154388912ED028AE364A9FA9A018D8558C3E9B179B66F2488C2BE8792B1849FAC0401A9756F209889FA637CF7ECC4F2C0249EB5C6F7E0219FAA2A9433759AC70DABC7BAAB623C2023CF7EC869B75BCE953CA3316B7A6FA685BDC7C8D467273268A0797B8D6FE57DDFDB03FFF7AD3D5B9C80DC1939720EE8810933A04F51B78262910D7E28C0EAB06B91980B65056472A293F2361183125670AC2426E514790B945D6B09C9EC354FE7C895A30231D95794F89EE60761AC9B2AAA9A75EF168C0950AFB498915B2518E010C3800764BC5A65C0C54B2AF686B7D954E77BC4CF8137AB398FE93429DD0AB80FC846D4CC8DB2B9B2B4BB36D4C4121639C1E74622E59250701302301B4DF96B2FA62736B29CAF0866096F842898B2C6012B93B5AC23D1F39E192002FF0B9005FBB8CFEB8930562A4E0AAE7A40C5032B8B33D0760D96C7C203920E2439D3EA02372C7F5D80B92259349076BA20C3AD4FD21752A3963CC5126342A963A363C1157F33189732F7243E465B14969F1CA199AF45B50851266742151A235A8BA9A595534BD6AA31CCF52B8C5885D571A93D2577C57057E2CAAE68C9C84F565C72681FB15056A345236B02A1E5B13289388F035A2F8E03402F8B0A44259179A904C94725319ACACD28AC1E449B87E8916091940E33861A4A35A8600267F04FFC6A3E06C60858D578BEC60EE7716FD4B0225E5CCEB5FC5437387522200F66FC880E0C874119C71F462CB4EAA24E67BE77CA67278344199B27E2A55B50F", + "372B65345122225D7324CA9504CE4D12BC101639E93B331E3B60E1B520E03C9703A69F54C2B1A52254AC44B86F310A711263A5A9B87A7116EC5654F7297EA76B63F939C1F49CE99D52BC58876160401558193AD98C7C8F4B6822712429679214BB2B6E8B324B58E1F57695DC8968BCA7EC3717DF12C1279408183B49679B349E2E45686E722C3A57BD9547A65656CBC79AEC1D3B129837D84A6975D018C7AB04C88775E9C68839955775FD66AB02AAD69B76307F51DB2AB33915ACA61969AEFF14674A557C322AF6997B1A8D9C51445884779227EE742986446EA1719808996049038E0D9AECEE828BA054417CC3A683A7295066AAEE9CB429C4740531990744A987152DCA2388BA27E3769C8BF287E54E41CBC0ECCA95CE621F20831C75B153FA17D336A79FF6E88DDF485DAF7B1B0BCF39D8DF15319D52AC67E0D5EC1BE89D37BEB810DB438778BAC52CDC1FE8F5C27AD825639E12ED908FA31\nencap_coins = C07D2A9F28995F021A974E798A55AEC0230B11B9EE542F69925D009159425E81\nct = 9A0BA7D006759107801AB28BADC32C472825457E464073D1D52BC57A79E6C7ABB52FC5ACB592E1C1CFDF6CD57B1329D08B153CAB46F1588CA60D2730F756AE8F5A6E87A500A06F1E346F5FC894ECB6113679085C101736A7C55DD70D1071DDE02EF7A5639EF19D37CBE9C3B0785D0C7FCE5D6C600EE81F71898B8EF6449A995D57CCA2305F82F7B8D40EFF3C5F7C94E63B72FA334E3F68D1AC6546E35BA0EEAC70D17FDC8BBAB982E453B8C7879E2072BC84F4F7E9FB8DD26403BC2098C7A99E0A35AFB235C5E73EC82925C4B74F9A38F3A2F55AD715692EA5545A7C9CE353870A33B16DE043CD5821BB94A82D6241F0FA48CBA5E7E2D6E37CE0D42FE36B7845B4363C16692FBED5A8410B86C33D8C846476AEB385724AD77DBEC8263A59E9AC51F4CFED239A7D7CBCB41B6905FF2B082D6D6555622B8E1A055F4D8FB5BD891A5AEFD038B6C31CCEEF02E5C85B683AEC1542D39EF40122FC17C395349649B66748D9181E53FAA4AE6BC6A7CA25B0D7C386240C0D8C8D9D0044A126BD5BEFB1ED0C5070AC5397CE118AF53D7B9437063D3D2AEDB640ABBE5F10DA9379722B22D1ED79F8EA9FFD66D4505822B0393ED1271396A29F2A20C8349F07148E4D4C787497B36A62B87229B4015D2D825AB7EAB4408B52267F0D88FB085E640985A87CBE6B12739DF6176FDC3E8594F9B7904146162520EE72077D3375E43E6BF4B0CF072411D70CA3F66D586B3ABF8450DF60B7C27832AC0A6F7DF36550AC3CD3BC279DFAB66813DF6C31143C2C0126258A796C23BC21629D3E89228F8D10EDA4F6D2FB2CCE407E864F7659349E2AD5F792DA58DBAEC9A5F6BEF7AC860816A6C5DF16A2ACDED6AE2385175C88917A9C3197C417699CEE034BD02F6F84E099CD4E17C15DEDB8D02A112D755EE071BBA37C4CB22AEB7874DADB041EE912EFCA224E71D562863ED3DF6C68C67979258C7BBFC28F7061765CDAE9C5B126E260D92708BB43F8C035EF2E95CEACF0AB02C2729D9E87C41FB567C8161A3A3CDCD4F36AB44F4165C55A0B944AB434ABB3601D8FFD9AA29674CAEDE9883C72D5FB1719691D08C9B4159455DD01FF4B76FC8B59658A286B7C6DEFBF319ADDC9FD92414798F60698809EC238BFC6056FDD5ABF82CC28453EA2CB9BD36624A7FC65ECC8493CBFDC6F6E9FC86958C87D9E77AE802CF2338E8D520A2F5B4460B50F6F8534E2CF50AD48EEC53ACA87B5805211794B262BF09D5BD87947347E22395237F32F820642287FB3FA28BC2E3D07864D0FDAAA3EC79FF1C56950B87FFEAC816F7124F44D637F8AED447CACE6BCB6D822BA069E3D5AB57D0D9F90A4628EF0BB32A7599978765746A8D7DD46F8A5D58E3835E5E544BBAC01D4ECD1C320ACB70F1DA6CF0BBBD016DA83D4C7CBB0132479D4A2A7077D4AAED37DCA4CB55F99184808C96C677ACF7EEC5B745461B76909ABD7EFAE9009A071E4B74B2E444DB2143DCAD5E63F3D0D8BA61B48677B1826F41F05A198686E86BAE9FE6FE3C1105754E51A3D314A8E02EE0EA2\nss = 11B7BFC2474A85E9C699B20BA61FE50EF52F9331E6D815CA24EFA4C7CB5E0DED\n\ncount = 52\nkeypair_coins = E4D34E12982AEEB1D62FD488D9B9E28557ED3429292239FB4F76FA9098009ACA91FD1369E8228B3979984C15440EF268FD3629C186D6CFDE02B0F8A7908A7EE2\npk = 7C6B065EF3308AFBA0CF3607B2C98D83F76F7C058262B55F7C0746B3C22437F00DE9D7CB69F40AFD60AE74B0506AFB96E30669F51C464A27B4F177666F92459B293DC208A0DAC5654A8058A8FABC2D1853009743A598BAB2C248068750F01227BE5A4F7C4C6948F9167E88894D43B5AA44687FF177DE837E2F0537F708A8F73A11FE6632DC285C9026BB23424AC2D1CBCE39AC6A0A7686F088D617B096436C9F773E7CC50CEA1C08DB20C2949A7878D18E7372CAE746B04558A8FBE97DF0B9A69090449A507E6E1C07A35680412033127037607B2F0502690B47BD300A84C041650DC748AC2C060260C933A0B81847243FB3267F3CC8DBEA4CEA40790F37CD0373A71EC00634BB3B3B087A82CCB1E1DAB77300156D8094A1D61D1F1BB3F977B749C938AB8092D71C93394856ED133075E2BBDD3CC0F27C2A2D34BC0F633F5E55C0A6C989B1E277EE9132F8779923EB2E22F78A1502BA5E55B6D53A05137867C10536E672C7336A3EA1F237263A6046F260ED3871F1D479BE589744361A0D819439779075CC47A5A33E18326615134D9F09B68B6873C6CCB682F6B75662CECDF5432C37189AE09FAF36735EA01C12F9CE64F4116D509C70E0072A242FF126710D178DAAE86539226C92D090D9B60DC63539F51B46DBF24CC8D54EDA255E0AC19B03D34F5A270B6FDA6D6408BCF1D2A46824B5290B8A26A8131402C9AEA052D0101759345F86A66A4D238A20C6531D792170C52DEED889AC3050FF87C659524337830C205622A989736B788092101933C0073C0B686106A9B88C17958A8711D272392AC448B01507634DF4A23846AA9D594C80BCA99F17505AC1793F2877BAB4F1B211D2985842795C4C1B9FC018DD15B510556EF89B687E6B01701CBCE0B56159A90F7B2C6FC1039AA38449A596C087A62B2EE5A7C3799F5A601BFAF8B9C598834FA115AE010F71167FD41B5CCCC45146009752F380CDC56453E554CC779604F976FDC34E9F135261EABFFBF00AFC514F2699AA6A5ABA0638542891C6858C7F6C6C4A12E4CE2D89B50B04C33EF262EE8B0D9A7777D3C56C85B1BAFAC7052FDBAED24303C843110C1892381887EB351134798B9745BC229208B277C2C999570075903DEB530BF22F7906B75DB35C3B24B04751BF6ED41724058C70988952D86B48519264D25EC2B817894AC370BC081362C841EBAEFCD7625A67A48E3CA492D63BB9036A5B9A35D21470586510ACF76FCC683035B18C05ECA7D0702E0453AE00A8144779117D7C19CFFB568A3C0959193D689A6ADBAC13DF43907FD45FBF3313D49425D32AB9D81C6BD9B3486C3636E6E0015152C1CC78C809F3A3FFBC6F0628609B996980B3C43294C0E293940CD65A34BAC8FCF020CC611E3E2C8E52F5AE886B8D9480551D012885318E5E6C1ECEE0A3D75B342667C691D19F34FC7946E7A7047097F7938516CBB6C7F3ABDB85B15E302A5547198AC0B89E7C2BFBF74050970E8DC746CF16BEE6147076BB89C5124A89E070A785427CEA590301CEA7AB28ADA228EE7BC7FCC17074063358A706989C8D6C82677287905722CCA0A24FF91958C44A3044787EAB3599EAF241EADB932B06B151A1A02BA8B244E9262B96144302124DDDB5584ADF5FEF6BDE5872A551B6840E3A082A8AA6DFB7232A6813367038CC\nsk = 85B01A4A587BAE308D39792B47F71997FC55FDC2746F881DDF7BC215145C56D399C6447ADA39230866384BB718ADA160A7349747867CF695CCCDB8A4F1FBB3E573ADE85CCF38924F36482BACB9798D481521A0CAE103CC9FC9675184490F281D3516CBEE910287758A4C374C0A4313F1C29251B1655522936DC329F540A1FD887F0C775823436DF736C367AA3013341E66854FB39A9EB90B23CAEC3E84690AD531141F39914A77A767A47B60F2868CF11311AAC9DA94C72E9624D21814CDC99C89A4B35E1C4C63CBB3EDEA06888162E180503CFC6616B24D270601D0D275C03109DD9486220B66D523A8111B4DE5B99D236586A09A4F77A240CACB4A737C770BC4915F55B609075EE68499654BAF90622647052A8369872A93114C80C60FCA1345E20114552119669A0D3A7188D3326017CE92112F0B715C26B40851683478E5C719C11088F00AAC577F5A8763D4A76E3CD00CD9061F021672847BA0D4785EA7B1B28FA364E64C4FB7F718D2352B1FC26858B6552419A4D8E1B22F8C7992E3B5373183D040948777C356D514FDFB2D0C5A636BC5416A799270E5C975C0A62F3A76FB134646B333B75582F7F2C51CF4BD37835C3FDB2CE1EA86306362F8216D27E40CA43A45EDC9554F08C604624659AA10EBD29E59A60F7BD66EEE447F4398ADDC73387579148BC4A26B6749C961926FD34296DB3044CB0D2D1312CA6A6755EC48C46865A36A6330A9AA5D39167C6062EF1A7C82CA5C0AC1B163B85E43C278312C4304AA127D66576E7218C2D0C850108076109919AC6931264DC2E919FF441875E607A97772FEB45F14881FBCB37B4D00B45F416CF56C9501C6598FF9425249740EACCA49D92E31D679A4F16C3CCB4384DB45E47621719C6C585CCC03355216D43625C08760254AE3CC4AEB1287CD5C3F0911641B05C7036C9BB360C72902325830BD25EACB5A88ABDC926E0F205EE857AA66C8C47E434D8BB4A6CFABBD8B681C427846F0E18A2762152B170063B489A3E6B8BA06B00F14A3F2E6AC00725E5724CB629B7A312B3A1221C9460917C07637B71050BB644A38A8192270C857D43EA9304495206BF62B1C4C11B04A817AAA996B2A266CEB8A80AA46674F16207B61BFB484AF461B6DAD9A9E6C22C56F81BB355A6705310E921239497809012159E78A8A249796C155A9DC7CBFE7384DD092239C29773F6610E536A77B879EEF054C5E539A381043C1B53D69566A96D1931B166C6F066CF0EC81E7492A200876D42007724AC916460A1266AB77A327EF1282479685BC43A2718C93A806C3DE3A0CB918C7A734CB04759341C5B1496679987AA5DB93B70F903A5F4024C3DA6FE8BB2EBC27182E1179611C61F8F6214069AB83C7165A46CAA74BBCE0897FABEA9B6B58CD34E7535B0297B4359960D23E4A498CF7610601D92AF2FB6163C4B2761615121B62A7900B08D61065C83A69D51253D48399FC665962AD36275ED3774F114A079F13B8BCE420B44638CFA6CE6018B58BEA422A8287A6680EB21C75456592E8B24CB6C26EC3D3C1DC4A19CA16888E9B7FEA1A863B7A0143307530B533269A8B692CB4522AC1AA27B01D38603FD009E1C02017BBB36DA2049A2C5045A63081266D7C6B065EF3308AFBA0CF3607B2C98D83F76F7C058262B55F7C0746B3C22437F00DE9D7CB69F40AFD60AE74B0506AFB96E30669F51C464A27B4F177666F92459B293DC208A0DAC5654A8058A8FABC2D1853009743A598BAB2C248068750F01227BE5A4F7C4C6948F9167E88894D43B5AA44687FF177DE837E2F0537F708A8F73A11FE6632DC285C9026BB23424AC2D1CBCE39AC6A0A7686F088D617B096436C9F773E7CC", + "50CEA1C08DB20C2949A7878D18E7372CAE746B04558A8FBE97DF0B9A69090449A507E6E1C07A35680412033127037607B2F0502690B47BD300A84C041650DC748AC2C060260C933A0B81847243FB3267F3CC8DBEA4CEA40790F37CD0373A71EC00634BB3B3B087A82CCB1E1DAB77300156D8094A1D61D1F1BB3F977B749C938AB8092D71C93394856ED133075E2BBDD3CC0F27C2A2D34BC0F633F5E55C0A6C989B1E277EE9132F8779923EB2E22F78A1502BA5E55B6D53A05137867C10536E672C7336A3EA1F237263A6046F260ED3871F1D479BE589744361A0D819439779075CC47A5A33E18326615134D9F09B68B6873C6CCB682F6B75662CECDF5432C37189AE09FAF36735EA01C12F9CE64F4116D509C70E0072A242FF126710D178DAAE86539226C92D090D9B60DC63539F51B46DBF24CC8D54EDA255E0AC19B03D34F5A270B6FDA6D6408BCF1D2A46824B5290B8A26A8131402C9AEA052D0101759345F86A66A4D238A20C6531D792170C52DEED889AC3050FF87C659524337830C205622A989736B788092101933C0073C0B686106A9B88C17958A8711D272392AC448B01507634DF4A23846AA9D594C80BCA99F17505AC1793F2877BAB4F1B211D2985842795C4C1B9FC018DD15B510556EF89B687E6B01701CBCE0B56159A90F7B2C6FC1039AA38449A596C087A62B2EE5A7C3799F5A601BFAF8B9C598834FA115AE010F71167FD41B5CCCC45146009752F380CDC56453E554CC779604F976FDC34E9F135261EABFFBF00AFC514F2699AA6A5ABA0638542891C6858C7F6C6C4A12E4CE2D89B50B04C33EF262EE8B0D9A7777D3C56C85B1BAFAC7052FDBAED24303C843110C1892381887EB351134798B9745BC229208B277C2C999570075903DEB530BF22F7906B75DB35C3B24B04751BF6ED41724058C70988952D86B48519264D25EC2B817894AC370BC081362C841EBAEFCD7625A67A48E3CA492D63BB9036A5B9A35D21470586510ACF76FCC683035B18C05ECA7D0702E0453AE00A8144779117D7C19CFFB568A3C0959193D689A6ADBAC13DF43907FD45FBF3313D49425D32AB9D81C6BD9B3486C3636E6E0015152C1CC78C809F3A3FFBC6F0628609B996980B3C43294C0E293940CD65A34BAC8FCF020CC611E3E2C8E52F5AE886B8D9480551D012885318E5E6C1ECEE0A3D75B342667C691D19F34FC7946E7A7047097F7938516CBB6C7F3ABDB85B15E302A5547198AC0B89E7C2BFBF74050970E8DC746CF16BEE6147076BB89C5124A89E070A785427CEA590301CEA7AB28ADA228EE7BC7FCC17074063358A706989C8D6C82677287905722CCA0A24FF91958C44A3044787EAB3599EAF241EADB932B06B151A1A02BA8B244E9262B96144302124DDDB5584ADF5FEF6BDE5872A551B6840E3A082A8AA6DFB7232A6813367038CCB30CEDC4316B63D75B641FBAD2F33241A3FC47AB8B3EE1A3ED597E5B04F77C6891FD1369E8228B3979984C15440EF268FD3629C186D6CFDE02B0F8A7908A7EE2\nencap_coins = 135CD8F8172371CEF32284EC766614CFDCA11DBAE8797B92227DA5E487E16435\nct = BAEA3C15A6503F0A489BB75E27CF4BF39EF7C90BCDD9905549118069695C0ABF4E36679776AD3C463734FEC395A0CE79A6953BF65E23E5D2D7ED9D64ED2BD3C51F6EA58B4F3BF07E9DC2A9E8B9B2F62573B3C4B30104C22016611F0B2704C47518384A6343A8B32A176EFBC224F048FDD6DA8BBDE99775F69CBB4F4D30BBADE0F876E5FABD983C50B8D4FAD49F07510EA7AB6ECF2E742AD8474A49D08B42216C2392E24EC937093E64A46A047E4425B79AF3D491191D79322B8ABCF38CE26408B6E29873F35A65829149F313C96F9C9E565B886665093D9D81AE1C2F9FD9B2E09FF9102CF8D3664C112C0FA3A61CFDCD9BD287CC4D8696844C6A43279A3827EFC7DFCAB3837430CA67E03E328971D2218DD6A53031860520CC361430AA804FDDF96CCB193A477C84B306411A1E3D3ABAB1230E9596E872A01D9305289C0A74CB44983CD0F22C9DE4AA87116D0185F53863BBF03FEEF768E151DD1A504BC708179A87E245D871D3D9FE47E9369D8B70D668F48F57FF44E38BEB2885F5CD6AB518182A8A17958E7355781D7C002AAFE97E4F2E4A5C2F1A32D02C5981593C577567FBEF70E9437F0452D26A67537904310E9A776C326C8103C7E9D52548C5902B02DEB93DBD21FF8ABD4A741E7DC35F8D61B9112E46B3890CC8F1B0A15F1803A94B4F9525323418D987BD2FA9566991405DD403E86D722D62D7A7F3217060182DBE9E0DF1889CD16CD60A39EB0E32D2B5B99CE83ED493BF21049D0AE8AEBFAF41CB772DF25A4925F3C0E5772575E883C16CAE7FE7594CBDD59E0F3416629D617D46329A2950D05E8B0070E090B75AF3A23D336D2638C325621C5D39B8B44CACE95F6356F0A6968539C141B330480166ADEDD02EF081C58A5EF2497138015975BB9E3E9D0A28C93EE833887840339BEB6C784CAAC7ACA383B92D4CC00D0CAEFC432C6B80E01273AFFD1465DBE3CE753EF87BCA5AB25ED0CBFAA39806E7829384034C1239892921671F94C16C3FC64510C19867101915D51DCC10A41EE6DF7A529AB467C6667C4E2D3815324181C7241FF8CC4C2140F2FFD460D5EDB9AA9BF1C0CD77377BAD8F6438445DB6E0AFD72B0E5ADDA43F4F76B81A5963361AA0852C2D752369939C2DAE22CD7C8BF1FCAE7E9AD531C631710D0CFE8B92B0CAE86254EA62077FB37C300CFC4986779D96637C6D371CA709E1A3E8DCB6EE74452557C5011097D50BAEEAA469D8316389E869E3349A9657F07382D39815086B6122E0CCC3F1F69AEF65F495FD41C44FF4411647DC40D085C3AE17E567FF7D6E1B07A5D1C39DBDD8A5D020F959660209B5B4F77755AA9776191DBAADF143156DFA01E99E05DD66FD209022028A8652024329B910A7CC0D681128B6098A9961F866EE987A7186BCD5654F4A20E0A6F163D6465FE0D31E80FA14330692A1CA642B4F6C66D21A51FE880617DB46756E6CF9B00C066EB7FF3D74DCA4A53315640B6A3262C36286690681BA73E7137AEB8FF3B952C9B57B8026C8950B0453057AF8888E55440132473E\nss = 28B44CB0820B37D6011E5D42C1F15F381D29D5250114C63453087B255DBD6CE4\n\ncount = 53\nkeypair_coins = CD6A99396EB3539CA663A51E42063A3A262CC1C5A5FCE1566F0597B52AD9FA32AC8557EB61A3D4A2400D3A604092CC3B92032F4D3B563F3D4AA19387EEBF2A76\npk = 9E686B49D538CF32A05AB82372F7525DF40085B3413F078226B97C234B815EC615B2683F1D9AB32DC0314C6CCE6E9620C8E73B1DC85BED5205CDE5A44F40427865A62356CE44751C7278A3B236BC2D208C7B383129661810A6A2962496D058CA4875AD234C2DF951612E665984BBAE791C279EE835B105202D4751F1A330DC6B0BDCC38FDD6458B0CA7A9BDA026BD64E80868B87B58CCF2A37CA94CB06279EE77A6731E847487142561863B5F38C5AA4C0158AC28E95012C10A8B8E99EF7DB12C05009311A74791C6C8B355E4A861DD3CB6FA085884D7A7E8CD270F656CE29F9BF3B91B798032C16B00F8CD722A1CABFBB25C3002324C56B66DF87182504581A76297EE1181CF05A6D89698CC94021B16574264435F2CB137A7A667A4548C96F835CBBCF27805AE37448674AA998818CF26D15A63689777A9B98219AC3B9ECF84203826EAE294800F5A07FFA886CC86E7D095F42C471C121A69A1972A7906ABBD31003F6C8C0D07EF481B55FE185811084D9A472CCBCC586B6A9A6F24D269AB36126A3F0381B29532D027C2D5E21CC5B9C6EC8303E4B388A6B7216B3E581C0566558107C8B94C599F09C2ECC4B7A824FA3DB9A29722317D5BC5D43827F4BC6D3A91F65DCA56BC26DE9D40BF2F69263CB010A9A24A749C931631EC2D13EA4D5136AA8A97EE019AE1291EA34B0807886FFA323AD3B0F83F82E5D9A2D748945A3CA34B9535D0460A6F734BBEEB66A4E3C257BB079F5D80F6DEB0DBEC130FE4A182FDB16291403F37A191C381723965C3FD90D9F2B67C36CA3AC141030AB516A01453532AA06B73A91B5BA7D1A308E286FCED38F2858801022A453320A857B564179C55F0436B25CB191865DE69877B47041D9D0C2C9BC42CA513F207A72EA9A5CC48B573FB402BA8B5AE6D73F2E0B044B8CA67C1031577099B9975FAD7103C7F6BF80099BB51138D8A7AF7BB509B761A9C6407DD9826B7FF87879098248D779D6F26AA0215084F286AC77C50849AD19F29A32B07EF517000FF71799D6BE1D177508BB969D9479C6C037A5A18BF4302720E240DFA603B7F8745144906BB88522505B19336BEE5572188853A47B4F8ED8A040B251307299BE642E086317E1504784990F2149CB2D89B1A8542E4A19CFAFD57ADE9A234545142AFCB3E544B49DF75B0CC78F5AAB935752746EE7A7F7936777330A66C1063C50BECC4286A3DB4AA66CB602553849B5BAAF83965AC6BDB19A9E5DB8251DE0267EA3C0EEC342B51505469AA7FE936A5829463892645438A3A182859DA136E033B926695421A1891610816E136DBBE36ADC08CF00E4B44649410B2A11EF254144C27787E54CC5A533E8E54F11EA94F7E9C2009D25A6248321F04A53C31787C12ACA9CC78FCC06B161701852215BC6C29D1779F5C183152CACB583A90399746F75C5BB337F1B580B9029B112579884F792EA5A52187A109F547CDA89B7FBBA90C66065A33423DA4515D13BB5FFA074AADB0C55119065A51239511BB33288F994B121DA8913992B979A59BBD64036968621E76AE336096FD6125CDAC4F767A883E6448B078DC04B1F2B7AA49A1180C0F3BC65D2A93458291982652063419A9CB7F1042C38F483C4A90E17ACA78E9FE10B44687F9AA606CAE8888E4C21AB0F7B85EB3D3A2A3D2FE8ED883D1DE0\nsk = CE732E28B21F42F2BBD1B049E6B80264B218B581CBAB8C9186E325F7617895E6320FE5C697FC3B82546681B3CA5F4A52F1F7501B652F86D35CCB9756E869795C166362FAC89C7B5AD41C7C74C596E2A7458E419CD10C10C890C94FD3564AA25F1EC3A3282607D8B1864022CDCCEBB1B1E48961207E29264A9CA86C94B71D5382C9C6B8004C818F51A52006706285BB3281618A157C80C2C00905C33316516C17F04460124FD79A1C330417984220334C84D96A66FC8A5556814C58F7826EE86F17319DA3F504F0124C3F06CA50792C1E1800FEEA8A8E8805A54BCB90C52ECA144677327F5058CCA151617F443DABBA304B353F4A5CAABF0C179A772582711C033B3F3C1225F191B887D8294FD18914850DE6B194B91C250374963BDC7215B07CDAA8001372A21F0C3845979386C27949E0BBEDC0B004258866A01EC5CB82FC751BA2F4510E514A3FA09B6AEA7E5E45762076B81D781C2BA91DD6F40CF13C91E947A7D7ABC2A2AA91A1404D87462B42AA71EB15209A9B0D4990C2265B051163CD2BA8319576758237482F500F7E94B3FF099616225737A766C10B6AEB213B5B073EFF93C3AC91BBF2B93FF47C84D7CA2E794990E2DB4A7E9AB19CB50CD522427E6A935CE3976490B21792CCE5E4B971668C4793CA4954B477703730411DF1F5AD2557CAEF78C914D0C223D836C407936EC58825F3B2A1925A5164B097A94A13D8AD3A27BF1FFB0C08C72B92215CB1B67C7D2C4A7BC7A6A8A054D2A34DE69C78195BB149E4B4CEBAB78F41612DB19540385F2F74757C662C2DA3C7B03A34A9524E2AB", + "90F5CC21FC0D2AD84BB996E6C73426770FFC1C9942CC22AA2934D97A66037A18760C51B0236CA1B1880A2286EE5241FFC220A4C6EC0E296090874B3CA751DD701086A15F419C67EB4514744047D7848980C036107586D36818E74AD98989C8C02AFAB4134EE0B545ED707876A613FFA10BE7C3F10B758B215827ADA9FA1C83B129C6BDC5B621D3A5DA7F396D6E29B184A38D8091B6A2C288EE2CAE833A68A3CB6B30BAC5AD7567C788D8C803A7B622FBD8A253B274B93593115B5B7A5282EAF93706C88C178BAB897B7198C23B844219852A60410E8AFA85C902EDCB9A5E87A31CA84AC6B89A75830566062BC159CB129277AF0645D5817C8822E384040F1621D66D41643897DF21C1013CB1B426A703F120F21C780C67BB011FB3E8CB746C0B14C9F847DC1235F72E6BDFDA1C55BD26E377395C4B17B764A41E0F7312782BF71820DD379BEFE58901A011FADAC1EFAE549E5933AA9F9C64CE2273C486B56251674D56212C0AD7637854C7B8447A135FB960FFC435AC7553DFE935CAA98BF32186817B5ADB42375E96C30D0A96DF39658EDE95912946813CB75CC32B395AA73A916514533857B4C3405FC32C2946CF4F4251B2091B6CBB00CE296459C45E558B5048B79CC4CB8AA01BD7E82320637A62E2038D5B3C0593B42D32A38BE8312AB022EBB496A5FC4A991A1BAEB660A23988FBA329A79DC7144D20B5246466F25AF4AD971014970EBE2B36316B86B3585F6B0753711A0BF3952C688B4CF6C8A24C0964CDC1F5C1C34B3C28359BA232840063AC30BDDA83F0611042FD8B7C2BB439E686B49D538CF32A05AB82372F7525DF40085B3413F078226B97C234B815EC615B2683F1D9AB32DC0314C6CCE6E9620C8E73B1DC85BED5205CDE5A44F40427865A62356CE44751C7278A3B236BC2D208C7B383129661810A6A2962496D058CA4875AD234C2DF951612E665984BBAE791C279EE835B105202D4751F1A330DC6B0BDCC38FDD6458B0CA7A9BDA026BD64E80868B87B58CCF2A37CA94CB06279EE77A6731E847487142561863B5F38C5AA4C0158AC28E95012C10A8B8E99EF7DB12C05009311A74791C6C8B355E4A861DD3CB6FA085884D7A7E8CD270F656CE29F9BF3B91B798032C16B00F8CD722A1CABFBB25C3002324C56B66DF87182504581A76297EE1181CF05A6D89698CC94021B16574264435F2CB137A7A667A4548C96F835CBBCF27805AE37448674AA998818CF26D15A63689777A9B98219AC3B9ECF84203826EAE294800F5A07FFA886CC86E7D095F42C471C121A69A1972A7906ABBD31003F6C8C0D07EF481B55FE185811084D9A472CCBCC586B6A9A6F24D269AB36126A3F0381B29532D027C2D5E21CC5B9C6EC8303E4B388A6B7216B3E581C0566558107C8B94C599F09C2ECC4B7A824FA3DB9A29722317D5BC5D43827F4BC6D3A91F65DCA56BC26DE9D40BF2F69263CB010A9A24A749C931631EC2D13EA4D5136AA8A97EE019AE1291EA34B0807886FFA323AD3B0F83F82E5D9A2D748945A3CA34B9535D0460A6F734BBEEB66A4E3C257BB079F5D80F6DEB0DBEC130FE4A182FDB16291403F37A191C381723965C3FD90D9F2B67C36CA3AC141030AB516A01453532AA06B73A91B5BA7D1A308E286FCED38F2858801022A453320A857B564179C55F0436B25CB191865DE69877B47041D9D0C2C9BC42CA513F207A72EA9A5CC48B573FB402BA8B5AE6D73F2E0B044B8CA67C1031577099B9975FAD7103C7F6BF80099BB51138D8A7AF7BB509B761A9C6407DD9826B7FF87879098248D779D6F26AA0215084F286AC77C50849AD19F29A32B07EF517000FF71799D6BE1D177508BB969D9479C6C037A5A18BF4302720E240DFA603B7F8745144906BB88522505B19336BEE5572188853A47B4F8ED8A040B251307299BE642E086317E1504784990F2149CB2D89B1A8542E4A19CFAFD57ADE9A234545142AFCB3E544B49DF75B0CC78F5AAB935752746EE7A7F7936777330A66C1063C50BECC4286A3DB4AA66CB602553849B5BAAF83965AC6BDB19A9E5DB8251DE0267EA3C0EEC342B51505469AA7FE936A5829463892645438A3A182859DA136E033B926695421A1891610816E136DBBE36ADC08CF00E4B44649410B2A11EF254144C27787E54CC5A533E8E54F11EA94F7E9C2009D25A6248321F04A53C31787C12ACA9CC78FCC06B161701852215BC6C29D1779F5C183152CACB583A90399746F75C5BB337F1B580B9029B112579884F792EA5A52187A109F547CDA89B7FBBA90C66065A33423DA4515D13BB5FFA074AADB0C55119065A51239511BB33288F994B121DA8913992B979A59BBD64036968621E76AE336096FD6125CDAC4F767A883E6448B078DC04B1F2B7AA49A1180C0F3BC65D2A93458291982652063419A9CB7F1042C38F483C4A90E17ACA78E9FE10B44687F9AA606CAE8888E4C21AB0F7B85EB3D3A2A3D2FE8ED883D1DE0EE044DBDF6787FF038DBF9C133557169C62FC1CE2580739369AA87DF00B49648AC8557EB61A3D4A2400D3A604092CC3B92032F4D3B563F3D4AA19387EEBF2A76\nencap_coins = 96FDAC8DDCC219F5ABACD5F20FEFEED980B40339D4147C6A066D6B6D67458760\nct = 7B53422191B607B546C53084EEC63363B4A8282E2F8C3B2F2E0DF6C73C9C292C03D6A7328E705F29E510366E058E05D78B495A9D4718E978E0CFE2463917864AC146A971644712CB96391CDE7A55DEB140A69B145CC9E1E974831F7FCDFFFDF91BC8D00B947D32B63BA87D02C74E2406C2F0220706492CA6DCCB8F67C97CF0EE8A2CD6C39746748EBAA862F63006281B0BDE2AE508CAE33392A22309712AABE93E30BE0C8B8327CB299E8ECA6CFFD484F1C75E47E546876F4332610A30EDA4C394445B3E7EA5E455566E6E3D55EE4D35004877BB01AA1E9ADF7AB2D0785B91C002BAE2A4235A07A4E8ACC0D7371E779D266867BFBAE9ED4F5C83F5BD3FD3DDF88542D3B8FE8BA6A7695B28E9D48CE7AF62F1BA08F82439C5FFCAAE5F49A70A6CE1F4CEB55ED3DB04441F9D549DA0D777C21621A49F1BD1D264169BB61F2F19167BC8FFF32684FBBA79B42FB1B0D22E9200FF677CDAA7282FAD209848F7014519C2984C8E8B19E9370D1A93EBDC12B6BF6D48A10679CD4CBD4AF0763A6506FECB223602AF8A2AEDF17F61A32094A3E58DBA1055AE1EFC959F035A1EE637A1D465C47439EC2D75748461F79EF081B5B76C48667D4C96D85B7D6E8F4D5D8577EA6143FB0721A9AF3E54C11AEF42DC387087B150069735D4448631C68D84C683002CAA4F0AEB3D02194837EFCED022C1755D27AAEF19240FC88A53323FE99E112B04BC00846641614C2F12023AC48F5093787E498B8E3E3EC5239DBD2DD038FC99585E02F85BB67CEA98AC89DA62CB1E83918DD2A986FCB6FEFA9C5D0F65560B197F217AAD88298C333FF6BA5355DF716DD50B68E598023E2C24093A93249B9531AC13FC5FD1C7B11A5DE8DEAFC3D5E1D2102868F2E1E6C12818CF7CACF2BF330977E4EA5C8D951B0A4F64370A8862593B2DB8EBB4348B7F5D9805599512EFA26AB5EF2C1373DE2DFCC947170000D6366118D6697F194B0F1E8D86FB21BD6D12C781A61B8E32682EA6BED20C25CFC7023603FA6BE27F3CC2357B2C2BB514E3F7ED083DA1901E067CB0DE79BE0EB6E9A714DBD6B63DA487FFBC91E329919C1466A99A2362E34D1F99C35F73D52165E9D4138EFCC39930A93DDF62FF4D1CAF06256B5AF8C8D81E14C0AE50B00C2763BB0D4765A97C4C782CBA6BEEB6B12244A1613A44E7C55C507642DBFBE7816CA1A873A816D4B1F94A1D80827F7DBEB6169C7C7178632370640E1675DCF735D8973FEBE64C41CA449170BBA575AC4D77A2A8EDDA54570B796DE1C21BAC638F99CA5930F385F6AE632B8AD847C43A359B571EEB06ED78E4502629253F3769164E004BE6E5B7E4D8679AE19D7F3BB8EBA2D2CA36302759F087A84EFCC4BE902904895E0D9725F97DB0CB3BACC71210137F1FB625C0421D3EA63B0AE888366E376BD1F3DDBE5DB693DFF2E998B752CB97CB3864E23C7CB2B67448C151B5ED1B8A78BD58BB12390FE2AD206550F327B9C3CEB8F1BE50FCB8D7FB827279A9F1AC0D714BCB710834225B7E6B4D53CF6A75C4C282031225BA\nss = 6336970864CD8A6B3674BDD3760C6BBBB9BFC3344256F4E7A789CF8BE4C7C2C7\n\ncount = 54\nkeypair_coins = 6C8C53ED6F65E6B2E324B84364E10DE42D1C26A106D4D1C99EEE79C78586FB5555BDB92F28D0393C0F7850C7F6C371BD4835D6DB61C138B0FAF22854466231D8\npk = ECD4C65CEC93A9B26EFE3B667405482E3AA37D48AEEA67C1698008DA4B68683697DFD34FD72A6F39EC0AA0806EA5C59B4554182F6034B9C5B7CB438E21A14774D58AFAB0099E478A4BA8568E192C71DB7C208B7115D29BF649BFB3D23C2D70599682C549EA28DC16597A43AA6E65C77C432F554B067A64AD62AB71492A1AAD6045677C74E3E8773FB8665259ABD821BF07D2157C09199435BF41992628534DAAE814EE4AC64AD89FFA1547442B8CF6F54664C550DA5CAD0D828174805DA5D66F01E584789992BF0A4036D770B6C5B3E21B78F5DA2467DB42479B478F0570D48071F028110F555857E4ACB555B9C7D5B5D913B75D5B393BD4B9B2C12D34027AEDE4A22FD80ABE26A9C93C938C6B1348708D1BDA7FE6C55BF66981695487AB81362F50B7376C6A52CC39769B921F575E5D7A9666ABC2DD9459A5595E3AD631A0C638C3A2181B649704748141394053849B4F996F9B8A68567B73227B8C9E4588EE4A13B75379D2776A7510ABB21941C2B36357E8248686A5D973B946B82E40802290651A073636B367671C9C001AC91AD03B9D6E83721AE1247CC188FC05B0249571656A276EEA09B6D3376C208335618B1FC2748655CEEF805C39165D0CE9BFED062ADD0C0A50E43167C80E5301A076C9CDC1F13852A5987AA3CEF5E5864A706B3DE947D2AC8E8CEA0C3F83745BF3185BAC9FD0162510F70BD20129D7C5215026114C4B5EF044A8A29A3F01FA02A0A3CE928A65CE8CB566848110994E7CE20EA5C30304D6CCBC7477BB78B3EC527758B7828B836DBB2742AF6095A0BB882C2C9D8E162618029C1FB5AAF4B963FCC4A35AB78B0D9942FBDB53D4684CA85218DC27678719CA0D4A8CD8E9BCAEB944B7C0670AB171927C56C35034AD92BB3E6714D0F7C137C2B9A1FC5B72367C35C55D5FEB93D1274B88BC558158C5D478C34B68240AD193E95C0311AA501B3C1C44B20AB6CA2D2DE1C56B65618CA53F0E91550851BFBC289206D1406B27047FE610EC01A86E8BA94516AA926B99879836DBB27A7056C4D54BBD19A44096D1B3F3E9956CAC29E7AB95F175B9D9A0078DA633F10A6FEE899F400533F0F77102DA19FB02610003674828758E23B5EC724C6829B95B8A6750F1988F431E7537CA9D05701AC8AE2034688082C5C20A122C6349DB27AB958504FDB4C527B223B2420DB7246A4A69B58085A3C1E6997DB19FE17A2BC23BCD60B924CC393EBFCA864DA054BA38BB733B00FDF57AB147B922278FB132C5F5774BFE368DC2B66583790D30D282A248B7E9D43A562BA1892A985B75A7AFF961762A05FB35B9420905BB8C4DE00A3846E38CA7D71411E89F9E2C9489C597834C7A5315080130648F5347639184F315BFF2D580FFD0227C9185ADF9203ED50BAA43A9174A7AE9B5655F2245A15C30F877BB7DCB2EC184138792738113895A980DCA31BAF", + "6B5261E10A1D98AB660C066BCB05AC25429775C3BD1550D4A823FC96442CB2770751C812CE67613E48BFBE66A0FDBA909317513220EBC3C55FA1364F318812199009AF24F9F70C36F81B22B20BE53208F0DC44DD3B6ABB7236E1FD37C53FB1EE8C86810863A86B0029A58955DC73EC8A436112B5C3A75CEEC356BBD91355E4C3941A07E45AD3ECB9AE67E7527F70F6E07A757BD112947074D5120A1F2A1\nsk = F76C7D8002B7CA65BFE6A59AA3645A8E51AFE5FB80145241134CC072A60AD4B72D80C2BCBE1630EEDA661CB62E01B0798203A1A287C4B8F725DD422BEEE6627C864149EBABD84280739193067A2348F2861DBB7F1A0914BA2BB3AC6C80D5CA1F483C8B86C1CF5A2C3BF8F6728555799381A1B1F3CD02E445CBE798AC0361E15335380051294667B9149F38D85A1839AE43D331BF14091C4ACCBB24C8E8105A9D1185BA880B7E13CD3563AA235B899E7509525280A37162C043B089D5A0BD48B225EBB2D0538F49C8AC3C3B0677D8093CF70B3404016B4686D653CE4715A85953171BB937F5A1916271AD53318E8155269DBA4D0A520D057963E70CC01E680FE8408D03D3275C95A2C528190924749BC32DC31B21B58C6F5E4B59C157CAB7653C0D146DEC9A3F94E241993B09BD62446F35AD7772279E116464FB316DB8449A3AB7525B3E89B12B54F14FB19057C39510B072894831A5747782D404487926AD756B1BF81CB416D94265DCACEA475FCDAA727D0B5F01B376250B123F717FBB0B1976B7704FE5AE5AC10CD17B87FA8BBD3D824D3B91B567B5C20243677D741AE2CB1C1D049A842B7F9DA9CECE8931851BB35776CAED97C27D395108E42661AA60CC181ABB2774C67773FB29B445F3554D386C87D489D895A43EF268AF0C81F6065E57E744F719120323B013D35801E26BAC2700968566512106F5161EE8528372D45A42B41022239FB0B3CD23C4251927B355719A1F2A0689A4ABC508660DBC282706B765CA4BC1887FD064CF8285B1155863E15B112BCBB1962255B362CE8FA4C51C97CFCEA7004DAA9F746766F2F5487C93B99EE9825CB78AB0A98BF6863A083758E9279245E495AD0A5B86724C1ADC3E67D756C1C8647FB4BA32B75A6DA3A05A870FC1E12CD279666CA046E064A74625530E742EFC72C1D5F959C9D256389C4C63609FA11A8FB5E70E1E2256C8164D80C69FB8F4008A647AF7F3AD960265F55CB786E8726B65689A6A751FE045B7D45AECF50605D135A44793AD2C6BBA5A59D293528BD94D65F54BAE4798EBA5B26DE8B225728EB8836AD1F373F66A2134B8B429A8457B600C5A3274B0157F66F091EC88436D5667802A15749B4C9C499A36C58FC5A7CCC10A604ED00DE74BBF433502C02AB0ED949F5DA8B9EFB83C4A2395E49413A7030F4F95901E8AA2716A3EBB09AAF61C9384586021301DE0F8C085421460A10FDD176C68B4C115C91DAC04121924213855AC22E8C98E3643C3D7C3B6C6C4CA964308510525C5AA00C32AD9BA258BC44A9F521A2873BEDAF7C56BFC26A320C0FE95CFBE12C0038C1A65B62C18C37E61A2B9194C9EC1DB8B9FD036C7C3A620B5C661D8AB0B46A6CD3391E53218E40CBDB082C2207630C2715541B10E3C395BF2A5A15AE8B506880DDE937432ECB150F9B3C136881058A750024D9B247232B7289BD07462C051B7BA599C985C6EB08C7AC22135C99E85930113554C59AC06AE298D5935658F513644B01132B4C1AB84677E342A1F4A8A9D5C6A44659805CC8898E563823C8286D54A1CB4B8DB866A8F5C74F782784E4B6FBAD380C5131FCAE11D4EC89DF82490B4F1BABD4673D7417B9CF04513718F2CD0CFC29707145034ECD4C65CEC93A9B26EFE3B667405482E3AA37D48AEEA67C1698008DA4B68683697DFD34FD72A6F39EC0AA0806EA5C59B4554182F6034B9C5B7CB438E21A14774D58AFAB0099E478A4BA8568E192C71DB7C208B7115D29BF649BFB3D23C2D70599682C549EA28DC16597A43AA6E65C77C432F554B067A64AD62AB71492A1AAD6045677C74E3E8773FB8665259ABD821BF07D2157C09199435BF41992628534DAAE814EE4AC64AD89FFA1547442B8CF6F54664C550DA5CAD0D828174805DA5D66F01E584789992BF0A4036D770B6C5B3E21B78F5DA2467DB42479B478F0570D48071F028110F555857E4ACB555B9C7D5B5D913B75D5B393BD4B9B2C12D34027AEDE4A22FD80ABE26A9C93C938C6B1348708D1BDA7FE6C55BF66981695487AB81362F50B7376C6A52CC39769B921F575E5D7A9666ABC2DD9459A5595E3AD631A0C638C3A2181B649704748141394053849B4F996F9B8A68567B73227B8C9E4588EE4A13B75379D2776A7510ABB21941C2B36357E8248686A5D973B946B82E40802290651A073636B367671C9C001AC91AD03B9D6E83721AE1247CC188FC05B0249571656A276EEA09B6D3376C208335618B1FC2748655CEEF805C39165D0CE9BFED062ADD0C0A50E43167C80E5301A076C9CDC1F13852A5987AA3CEF5E5864A706B3DE947D2AC8E8CEA0C3F83745BF3185BAC9FD0162510F70BD20129D7C5215026114C4B5EF044A8A29A3F01FA02A0A3CE928A65CE8CB566848110994E7CE20EA5C30304D6CCBC7477BB78B3EC527758B7828B836DBB2742AF6095A0BB882C2C9D8E162618029C1FB5AAF4B963FCC4A35AB78B0D9942FBDB53D4684CA85218DC27678719CA0D4A8CD8E9BCAEB944B7C0670AB171927C56C35034AD92BB3E6714D0F7C137C2B9A1FC5B72367C35C55D5FEB93D1274B88BC558158C5D478C34B68240AD193E95C0311AA501B3C1C44B20AB6CA2D2DE1C56B65618CA53F0E91550851BFBC289206D1406B27047FE610EC01A86E8BA94516AA926B99879836DBB27A7056C4D54BBD19A44096D1B3F3E9956CAC29E7AB95F175B9D9A0078DA633F10A6FEE899F400533F0F77102DA19FB02610003674828758E23B5EC724C6829B95B8A6750F1988F431E7537CA9D05701AC8AE2034688082C5C20A122C6349DB27AB958504FDB4C527B223B2420DB7246A4A69B58085A3C1E6997DB19FE17A2BC23BCD60B924CC393EBFCA864DA054BA38BB733B00FDF57AB147B922278FB132C5F5774BFE368DC2B66583790D30D282A248B7E9D43A562BA1892A985B75A7AFF961762A05FB35B9420905BB8C4DE00A3846E38CA7D71411E89F9E2C9489C597834C7A5315080130648F5347639184F315BFF2D580FFD0227C9185ADF9203ED50BAA43A9174A7AE9B5655F2245A15C30F877BB7DCB2EC184138792738113895A980DCA31BAF6B5261E10A1D98AB660C066BCB05AC25429775C3BD1550D4A823FC96442CB2770751C812CE67613E48BFBE66A0FDBA909317513220EBC3C55FA1364F318812199009AF24F9F70C36F81B22B20BE53208F0DC44DD3B6ABB7236E1FD37C53FB1EE8C86810863A86B0029A58955DC73EC8A436112B5C3A75CEEC356BBD91355E4C3941A07E45AD3ECB9AE67E7527F70F6E07A757BD112947074D5120A1F2A1E965AC6995D525E324E8252D8E2C2DA909A29B24BACA8B68DAA5122CB539A47455BDB92F28D0393C0F7850C7F6C371BD4835D6DB61C138B0FAF22854466231D8\nencap_coins = 5E4723F16005D54429F70BE509C3149F769C7179C155393CCBDE778707CF3A7D\nct = E67F564F0C7718C0A03ABEF273A72846B9A01A70EF165A34901A3BA3CDF5225FD1D0BABFB20E641028020E20BFD781AAB9DE3C6FAFE26B0D9128D24E856236AFDE0255B93349B7592E9BDD8336D6DD7A05CF63B8EBB86A060D58E21B309A39F864C1E2E30F66B9DBBEB765CC230C87150C136442390B57CC08E9A50E1C7460635A536B17A90DBF8F9DD7E10D437AFF2AA30C5291B19BBDDB18F267512D163F38D131652ECD62B1C9E7C7F778985D45EC028A05D683506DEB26D6CD5BB07C75700E6B0E51B18E857059DCD096393E37B4EEFD06F3830AE7CB2D293B995DA53C8AB0EDB72B939E78E63AA200DED02ADCD3F9B690CE25708DFC3989C11D6F2BE9696B68DE0A7869879B67BD38EFC58A13F318BD7EB3CB34940D80A1B8E4F0FF7BBD0012841FCE507ED815ED1C86AB83DCB79966B2E94B3013907B10E9B6348720974B16AEF8D54400BF547326C12B3B823B2F81A9D122B9CE9EBB65B59856BFCA113A4AEC64A853739A73E3BEA599593BD50F46822DD2A8CA304D9C34CF20B38F1B386F8715F33836746C5D253C823108383DB4BB0B22BA1B8D38E34B001E2FFF1A01DA6B7E5841A84AB6D6C7B88EB31B5F77D5C0B1807E42776AAB0F6E842E5DC52B32F3047D861201F4976F589B59EF139D259523901D77ABD3E5D089E971623AF54EA7808A844F7C88B16AC188D61B80914A3031C61ED4FC9090654992EFBC85728CE0A893A841002422C1AFF8FBFECF82DC45F6F7A2869E8BE5E2155B46830F051DCA12D9356E048F34FCDF80BECB5E15136E3C9C72D3A68E1CB1712E08E429ED6C5C6623C8DA2AE465F58CFC88A1941E961175F1DEA20BDA32287D56E48FF1D88C216FAFAA16E0CEED611A18F6E698943254E984785CDE9E8BFFCC19F730FAF257AFE59891443AA37F9AE9B42A817E8F5F7CB7C4ABD1019CB9EF8A705E56599C3296F1BBF336BAD9CD8A7C86880A48690A9812DEAF1B920A6184D2CD0078E2B850ED2D3A5DDA1B262CABEB2441194DD31AED0A422480A0745A7081F0E4D50BB8DB578D5C4F52FDD6752F573BED2FA45448B2DEACB5A0C142901C08538D08B008CD003FB784FF247723DF80E0916E4846354F4D45494A0B818AA983E3EE63A530A4209D5015993F70FC5872BB919C469DD70141E5700716EE88DADE06C1B7009A8E33AED80C2ABB17CF553514FF3B70679A05E78EB7DF775D1137BE3B0F5BEB132BD2ECABF8B729ED1E6C6817881456E404B96F78F15DDD7356022C2D2AC5DAC015C5D9B26E63D12B46380BC9F33C5231C0610AB5E782E8B9D0F8E97BB9677D3FC3094F312B2F338F4B75A7E13D1A0018BB704DFEC7340D61DE2634F20EE000EB650216B3FBCE08B64F0B3258299D1D67E97A08D217808CFF510E3599A4EF1B3E0F76C5F88E1814DCD782657A923F8AE00BBB25CC58E0D34DD35FEFB704ACF138D0CE527A4BB24CB075F9183A6ACC2842107BD5834A980D91FEEB7ACCE06ECBEEC444229E437DEDF2C957049E6F8AC1910A097A863288CD37E1B5C567F42D22\nss = C2865575E8346D295D1E3E1DA0E317416E47323B7065877735C79167DCF8DC8B\n\ncount = 55\nkeypair_coins = 2107204CD995F1DF14314D5381F8C5440F09A347502E161CFFC0A2EC3DCFBC73C95DF27DB27FFD4A8FDF31C4474CBFE2F5EF99F760E97FCF569D8AB22C2855A5\npk = 8C5785417B65B2E4235CC67947D7B214627D326AC1ADEBCCC3A64017E004499A8887C4A649E443E74720F0B1BEDD52B1A8EB78B3AC2D5516B7A3233BE9448575209675F4A813120422684191D6771EF2B44D92B2CA3BCDD5F5AC20A63EFC237FF9D99BB4F5094AFC187EBBAD39B8B9CE75902190741640BABF653886162645A84262A24B1885C626403F23136707816ACF28950BF181742C98347022CD5941B7B69E21B5CFC2B4C6C5F301BD32A2E7882A1E1A9CD94743FC86AF0CD26B51B3512003CBE8628D299663DA40BAEF443677033DA8B8C21E0A0F12FB93F4D63809375FC877866394A1A5409E2F13B3E5011A2A5877732415281B7B19991E6EE0A470561B6BCB46D87B4086F18CA29C5FDCD622F4315DCFB11DB2C6CF136B7B0A870AE", + "89669AD1011477899B8F679E5C9A8413959CA0CBFB3B54AD58C98B94760058C6F1F499435118D9143723DA05BA8F13E5CCA1813F91CE01092917BA1D798BA3481121026713BE1889B58375E5C4F9BB0BCC5FA808E2C00A36CA575C68B1D232778F71BF0927C5F2092D0629588826D02005DB9BC0DCE456E2B928EC9FB9C7A138E7B1065A2B660C287C3D062144CCA71E5C1294442073AD48AFC555767F1BEBAF550D520659496AF9237A22C27670A080F8A461778AA42C6CA9A954C28A658C73847A586FC3EF266562240ACB6978E026152B1149B8D426AEFE37BBD263A00DA05DF48375E53BACF9C4C11D4BBB055666AD008736B9C323A9974661215495E032AAEC611AF0E6A9244C2BFB6F3195D5121EDC3C0719C3FC1365C2BFC70D5C6140E6A383714A0931CCDFF946ADCF73993AA113C90AEF03374E251ACE73770A350428EC32A9DDB4AED8832526968412863966228644B9AF9842C2E967957F10D350A3499876F25D157BB2812501C8DC95365F83BC64B6340FA6CB4C2816B31824D028726DE0112AA9CCC9E0B6869099D310AA6E5B79609487E7A20A56BA75C45986F92F5A4D1672F3D99927A1193BA15BF5DF2586E823292593C49321BAC9044E4844A7A6BCB08309E2520B6ACF20E73BA5B05931E29BA43B2000A48C72A5DF05EF715CD8865CF16A835A83C271402071D1068A426839CA424CB666545664EA5E7461AF147B9D84583285EA1A05A02732031BB0BA40B14C828BB0E82807FC57882B31D9CF509BE7B712F56994721B55DA921EEE8AD45C8B4E99931C9B71B473A89A2D4821213A1ACFC453A41784D35B522E93C2D994D083674C71583782128476B04FEC71F17CCC65B9C83F52C207B08ADB10824A505B6DA8A78D4C599A5B09979D9491E1383EA155576730614FCBDEC1A8C801B94083A0FB55790B136BC5F37B752F3A6C636481DEBC5DA8892AC1B04AC7447953015E7251838ACBB6E24B508578B62D7450C46C76272806AC407112B73F7946D9654A45E943B406776E057C22E669B34A39D92F87928F8689CB8363B5B07B861BE5A750BEDB4A909605E6E26A489A5A4D9FA7BE3976479F8ABAB955200C479E75983BE821E79682FFB18553B72CF0797B2D2117ADD5AC0ABC71CF0E4CA83C26D218295AEC75872BA3A8B3CA22A2AB83404A046355FD394BF35D66DF46A6124D18B9A4606305A5968C4CCDF6B77A5EF23C5D54C68389E610B30DE122C2B2CDCEA30B3C780612FB9992721E26273\nsk = AB150A2298917B1707AF1AC0941ACC5B6B259D1AAE8F878BB0A37089B845991B203EE4C8F1A58CF9D2CC0059ADE2DB131BDC5FE3049E17F350A805C6F30479BE91B12A36190A5332ECA4737DF5A32FD60CCE222B592060ADD75A62F88D5BF6426FB18A944195F1ECB1BABAC1DCF20C39339ED45AC8C3AB582382480851107683102FA1914E753731964FDFF686F0A354703858C15C99F30A19D9C281AE93004C718D1CA5452FE58183D806DD666792DA7A76B0927DC77793396E4508200EF5097E45095A33AF5683A4DD1A5F6878C1E6FA85771A990EA16F7A28034A897855769DB8E4A9A425860FEC7031D09E96B665F57662B2BB86E362C3F9A706E354C12423AC6CDC74973A0767D73E75F5739747433C3451F8E5B85E5311B6E009F79C00CC07BA26B74D512520496B1998A4445C19249729225044CFFD51679B495511223417B2BAC86CC242241F2B70966E9A7A03C3CC0AB526ABF857DC1A140AD85825757D2B5A59B97B7F8C5015DA02159D013C1F15491FF4CF64C564E50C389F6C85B7C060F98011A4518CD3B48C2DF68C67F3497F439C11F8504E577CF49ACFAE704A2B093238520292602CC2138762D87536F6285C001D6975A242654DDECB5663AC44228BBE5BD58D9B90426C66802B466B21DC8D7A23893A953033874D0A93626C00B6A4FA3FE9EB0DFEBA2F3E789AAD8103CA153FBD7218B95547DE700CA526AED4F159639C59A7699296486188C3CA111479DDAA747F99AC825C7593911D6261683CE92EE8AABB77F82AB14838DB54149194B12791C4991181C66BCF05C67E19F05DCB658D8DFAB09C180967311F4E2AA03D9B8218889F87C5A5680299A7459AFDD69DB27302D9761DAA20BE37900B971694D3B6AEA8C6B5D53A686BEAA478F2ABC17C1C461807597148719925590C1E482AA05BB73077C017C1010EA576BFB5A63031875A23B0A019D608D64A30D0DCB39D750099D1C7583C34AB1CB1DD99A115547E3E4CCDF2A872E821B2330A5F6B30918226B7FCFC9FB4F37D8103437DB12EE073A49D29A7359316F8D922F783797E49B8C2B6146F76C7F8A66838C86364A788D3C4AE67D02CA09391E8547EDFE86CA1D131C5B96CAF479D9562688D1238C6196526B17844B475149AC3A76865C94993E518941A63A2E4559E81A46C8A99AFD2A73B36C633DDC6B32B14723F04A83AF89A420A3D04810311A28880247236A3761236B068A9A4EDF55317E8841218441EB1137342977215992BA99C1EEA7DBEA33AA83382B909BF1EAA9030B4386F8BAAEA643E41531204BC0DF8243F81367F4D979BF0125B84EB5D5DF53318463102938A85214AD7355960300DB40719A2ACAB9297381A6708391C78A8D4029487C324291A7E4A0945A806E0F24368C7A2AF91B8BB155D04C557759228673B548B6A4FEB8944B7334BCCBAB144C84344457B8B794A3D3B4DFC2357BE9227F9C4CE8B98003452C1D8D19C7A8332403A41308086346129D3F929B847BAB1AA5D88935D816A708C6A5E41023BCD4252569CBC724A53DF1B88909267A932186C751339863C8DD49CBE200797186924C26EDB976DE613CC2C46BEB06B39F5C264716A76E67831E4198822D77386592C777A088C5785417B65B2E4235CC67947D7B214627D326AC1ADEBCCC3A64017E004499A8887C4A649E443E74720F0B1BEDD52B1A8EB78B3AC2D5516B7A3233BE9448575209675F4A813120422684191D6771EF2B44D92B2CA3BCDD5F5AC20A63EFC237FF9D99BB4F5094AFC187EBBAD39B8B9CE75902190741640BABF653886162645A84262A24B1885C626403F23136707816ACF28950BF181742C98347022CD5941B7B69E21B5CFC2B4C6C5F301BD32A2E7882A1E1A9CD94743FC86AF0CD26B51B3512003CBE8628D299663DA40BAEF443677033DA8B8C21E0A0F12FB93F4D63809375FC877866394A1A5409E2F13B3E5011A2A5877732415281B7B19991E6EE0A470561B6BCB46D87B4086F18CA29C5FDCD622F4315DCFB11DB2C6CF136B7B0A870AE89669AD1011477899B8F679E5C9A8413959CA0CBFB3B54AD58C98B94760058C6F1F499435118D9143723DA05BA8F13E5CCA1813F91CE01092917BA1D798BA3481121026713BE1889B58375E5C4F9BB0BCC5FA808E2C00A36CA575C68B1D232778F71BF0927C5F2092D0629588826D02005DB9BC0DCE456E2B928EC9FB9C7A138E7B1065A2B660C287C3D062144CCA71E5C1294442073AD48AFC555767F1BEBAF550D520659496AF9237A22C27670A080F8A461778AA42C6CA9A954C28A658C73847A586FC3EF266562240ACB6978E026152B1149B8D426AEFE37BBD263A00DA05DF48375E53BACF9C4C11D4BBB055666AD008736B9C323A9974661215495E032AAEC611AF0E6A9244C2BFB6F3195D5121EDC3C0719C3FC1365C2BFC70D5C6140E6A383714A0931CCDFF946ADCF73993AA113C90AEF03374E251ACE73770A350428EC32A9DDB4AED8832526968412863966228644B9AF9842C2E967957F10D350A3499876F25D157BB2812501C8DC95365F83BC64B6340FA6CB4C2816B31824D028726DE0112AA9CCC9E0B6869099D310AA6E5B79609487E7A20A56BA75C45986F92F5A4D1672F3D99927A1193BA15BF5DF2586E823292593C49321BAC9044E4844A7A6BCB08309E2520B6ACF20E73BA5B05931E29BA43B2000A48C72A5DF05EF715CD8865CF16A835A83C271402071D1068A426839CA424CB666545664EA5E7461AF147B9D84583285EA1A05A02732031BB0BA40B14C828BB0E82807FC57882B31D9CF509BE7B712F56994721B55DA921EEE8AD45C8B4E99931C9B71B473A89A2D4821213A1ACFC453A41784D35B522E93C2D994D083674C71583782128476B04FEC71F17CCC65B9C83F52C207B08ADB10824A505B6DA8A78D4C599A5B09979D9491E1383EA155576730614FCBDEC1A8C801B94083A0FB55790B136BC5F37B752F3A6C636481DEBC5DA8892AC1B04AC7447953015E7251838ACBB6E24B508578B62D7450C46C76272806AC407112B73F7946D9654A45E943B406776E057C22E669B34A39D92F87928F8689CB8363B5B07B861BE5A750BEDB4A909605E6E26A489A5A4D9FA7BE3976479F8ABAB955200C479E75983BE821E79682FFB18553B72CF0797B2D2117ADD5AC0ABC71CF0E4CA83C26D218295AEC75872BA3A8B3CA22A2AB83404A046355FD394BF35D66DF46A6124D18B9A4606305A5968C4CCDF6B77A5EF23C5D54C68389E610B30DE122C2B2CDCEA30B3C780612FB9992721E26273A3D8A85F38CFDA38C66AE39B2F9186EF7BC1E0C98E8976A6CBC6C4875D73D7FBC95DF27DB27FFD4A8FDF31C4474CBFE2F5EF99F760E97FCF569D8AB22C2855A5\nencap_coins = 2435BE12E5A6B3B230F3B0B24AC28FA464B9E8DF34ACBC8C6EB16441739C1B18\nct = 9EAD6298721B6B0F280DD0186514F1F4F87388C0BD8D32BD1C6525B24523363F9DF4ADB7488ACED3E2CD808123F8E4E7B5609A18CBC4DE338514842B39F4985F5D9899AE7C592701DC4EE2EE56027F186126497FED6C9F77BE9E90710897EDABF6A403A235648F062EA2A787CA94718D445641DFAC2613D54DD4D4748D8AE499CF603F60DDA8298EC7DC87D7D33939BE2BC52AB11B69B1060E13664FA82E8E65220F2BBA3852635E2C93DB58C255488A75D74CAB92F7165433E504C4138768E9443E647FF2C31599E3C201D71271C5A5880FE5375E5AAD5C1EF14C632FCCEC722CC691B39532F6D1D917B7719D24FE6EDBDD529F776C46432CDD2CF6E1CFAB9429158A572F61CD6F24F8BA0043DF7352A04CD881F13272DEA42EFD9887725DD69DAC05070DEC74E9D1CB1E2D05A92F4F8ED30A5EFAC05EE9B7C453BBFD8D81A2DEE00225A3E1C594901F1AB3902FDF79DF6B7356A5346051E698EF8BEAA2F9FC07531D9A67A37D8887627E3945F6EEFCE9C5CA38BBB76B801F2CE7B5042DD8E31CB180BF1D9A1B6F81B976F208557B5D63A81E9FD225808A6D856C512C51DA9623D65D9442D2F1B9F0ECF9E105615F7ABE641ADB0871ED1CFC63AE8031B26DF1B34F14292186B6F6D2F8C59E43FA096F0246C05E8A2DE99F9D314EEAAEF1B8F253D45E2E8BF60B6576E223704AD896BEE4A21382C44AE612462DE9CBBBC604F7F0217B0E8814871663ACC8E5C849728E5488D874DC66ADF01FD724F61375CBE1A09F7C92BCD108FBA4CEBAAC4A0E9C659249E0393C9EAB1924FA6CC05A6DF0236623D7527E927C908C61E3178C2415334626FD44812A07E643FF6B913B8F924D8B8B2F59951957F405D5C2E6984D7B32821F245463DCCDB5E293BE962FB9AFE0DA6C6D0140C5D72FCE7085AB2C23FF4E30A512B48DCF31914C45EF33398D2B2347881D5A2D0D18E14D71F13C4FABA71401AE7643EB07134736AA200750AD26607410DB2778CDA859187BA4898826360FA0897DDEA66574CE160A2898FCBDC2433E4B824D1DF133B37F7E30CB367B5D69D1945A", + "2211A8F0B720E8B0E008401EABAF10B197795C372EE1401B562C33321F261A04B0732E5EEDF0408B13B91325BE954F1CB804A408057672D9ED6EEF3B47704AC4B1E8530832A3F530BF1AB468A695089C63760FF1DDCE940564EC9825BA54619968363E48B17250F57D6C91CDC094BDB2B40EE194A8B8FF919D99A4A975C35AF2EA3EDB669A3970ECF57EE89E2C11E8A9455C68CE35EE047FFDEF98CD8EAC00A6520D2D8A880E6A031016A11861EADAFB7EDF912E368A91D4F3873A057B5A80AB65A64B0C2BD5BA65A5788A3CEA8A9000383FFA75862E9037A608AF8EABA37FD8B91680B0A0EB032AD479AD9E6E5A8D0E9374936D19BC462078ED28F4E4A04BDD949E6D3C76CF424824EFA51BADC7A5A02D020C5AEC89E86404AAF490809AC913514675585F725B4197424CA3F65CDAE823A03EFDF9D4BDBD720B44A56655E68E330C8E6826D37CF794940B44FF\nss = FE0D49911C876535E0EBAD25FCF5D05D0F1041F40315A5E1165FD08F53C443E1\n\ncount = 56\nkeypair_coins = 63A925685A8AC5BBD918FAA33AC397D1FFBCF99135D9DA7C3D6FF7AA4C50AF3D284FDCB2D2A697D75E985AA43FAE0DF266A8056C18CB0BBB52B4EC89D66C21E8\npk = 605471FEAA9E92B94016A9A05F585F3C52A993A91A6DB73C9AE6364DD2A07B6C2AFB449122E76A3B273D424B94343B3BD7E7B1E1366204820819C8BA8970218A22262CA649D8E3223167BE77D9A466C860AD7C320B227E873A0D68FAAA441C0907805996D64F7759BDEED65CCE25B367F02094714BE404CA9FE56F6AD99E7D38B5396281314898036493002CB516878DB66AB19E09478872C0F76ABBE0F754B443B13DD5AFE610C1ADFC52FB3C82488984DBCC4D9850A0EE4BBC07D0051208C87914A3FA5159C775AD91A552C2FA2AC573787FFA68F456012AF600AF60183F97CB3E2936EF683FD8E2B5742C6DE946B96F825CD0F4807640A532561C70600D4995BF8D2CA543DB1EACD68D28B207617C23CD9A57BBF75ABCB620D941913E6506AA0123F89C261CE9C39C605646904D22586643F4AD250870AFE94DC950913602CC1CDBB77BB9B4DF518D1A18AB0C5A25948302C0535908E70F84587EFF169114161C3E646740893FAAF6B37B42168FDBC494549776D528BFA2C2BAF6A00A7498F403347A646C9A58328C59274AE8CFF8B82787A29D67336DADD3404FB5509640C29C9456FCF82D4ABBCD9899AB108A1FEF872617C5CA780970182861C046A594D62757D33247B79E12873493634C16FA70983C9B593814E69BB160120B4129370519327AC2332063992AF4370D9871E7A27D13420A6FB16ED9B579D1CA1D36A2094EAC96B537109AD83F4DF1A1D2E184C309AB65D75A3E409C57578214EA4035657757AB92AA930A76D251A1B87BC6B58F9D900E38156D73A1961C43BE2E044314C89EA9601937C0A87D9C4B14CB9E79D83E722CC40B048BEC5CCD038304AC0A65BF93B9A787105EB31B5BE8845C5C57B9A9CAF6243F54438ED84159F5B1B8B246073B1715B0F635E8078991118DFEE2CE08887F9680BD4E672D3AA78DF8954554D398D1675D785B85DD28A1675944D7597968F22855999F148CCEABFABC2358C315076C6B4333A82520A8332543AA100034BB0A6776CD959BCB263074FC28956726D0D99B9D81A7DEC14F13AC5CEB5B9EAAECB28E282BB517CAC09809073C3D085718D1DBBD75EC83707CC768BC79A3B637D0ACB34F37C9C2B4C0EEF3233CF91C0BF5A6A9279F6AD136808A9A3515B02E303F4DA26F93264C5AB9010A9C8550B9076D6471C196675EDB08223672C1A229AD31C05EBC4FAB557F46B4BB37DC2B605A87B888A1F475516DB87B92451127436EDA7922BB45B8B8462122542DE969C31622CDD62676A8FAAC5663A8BC2191711383EF4C1CD7A183BB55CC3C83B566E5514F233D79A2963710C5E5225F7B09B0B6176F451A7F77570B1C17B7BA335511BC3C3FEB884E459ADD3A594DD35662419272499B4E9258DC9ACA946CA80911999D455D06407CF9C69E814478A9F5151780BD754A440BC69925155FFF0A675E0C322C69174C27CD804279EBD3260FEB62C0E24EB63C7A042996C25BC9342C589C340E99999F9C5054FF35C760A43974096C5FD23BB9E51E2483722A132B0277BB24010297C4BA2C58BB286C49ED20B7AAE98C5D9B0601F06EE53C1808E07FDA53114EFC6D36B28B906611BE3A29E68A8DA76457BE5419D70059F7C329AAD28692D45892F335D02D36153217D5DB379B621E416A54CE8071DFDA35F639A04B14\nsk = F80C63DD6CBDA93B6CEE719FBAD6BDBE1A03F18B3379306ACE5625FB38C5EDAC9C8C94525C85961E14A76082BBD760CCF9B5AC777088B0CC80E0304FBCFC697CFB13DCF1CF777325EB473D11A43DA4575B697A860445B02CF75E8B945FF9433A337C754E19453D4BBFD2F07C76E8B7A68B92ABC870B56202F7634B9B37902D39BCA04653FAD9A0E4F0BE548ABB97C7A1FA18C34CEBBAE3987F4B3C52A5006629159AC6875276053908B389D931BC7E2871751169B6D81C8D8B5F52854A3E644C5C504675D688BA030E9E78A79E7788522516FFDA2EC9946AA9791A634B6AB6D04456003ACF348BDCD859567A74A7B73556820F8DFC12E467AE2FD11025E430114A5A60D3B42BB43845721637A69596EB953AB7B3E3B28B3BD9923DBC5189A37E9FE7BD9B763FA905314C0A35387A8E8552BF7135698E15B8D99B0777A0A5AF1B7DAFC172AA6A4D69202F10351603771876C580A7D24479DB0D804B6513A09281F291F2706AB128905663AECB0BB31A41046771449D12C335051A2EB50CA81ACE90940A8A6A355B21A9C7505491EA3B48B5323CC567EAD909FBDB380FD504C851452BD34F0F65A39AC62D922A3C50A8566EDAB03358745D701332E4011022BFD4839AE7B6745C66ACA80ABAB8213369E299253B40A7922DF02AB70F9723BACCB1AD563AD20C5EB8A01AE564BE24F40CE91A0F06EC68C0604C74250909D317F8968947A12EA297A279821F1B5377B02653D66897AA526CF51553C268481F7174BD9495DA4B0305650358A637A5FC31C99BA7BA304C6811B555E4B1C2F80EB4223C54032D16238861FB650BCBA24B127026FBA51F5985476103FE1375B94007A06BC2AB048BCB4A78E6D3C748B141BE410992733630B8C917F89960273740A595071824A9D02908D52D334373E8A575D5D52E96E5AD0CC95BF2C761AE577B9EF6BEAD33103E5033E0765D748C409F8A44227B8F55838B38695C5E132F2CB9BFDD7CB8522906E9BC03DDA468A04012277417869277E2169C63112E6A8942A1C13AEE97300FF4CAABF862058B6E7CC16F34C79BA200853701A98D630936A8A595098C8B19820AC91F47451E011069AA688BFBF5AC4EE018C53639A1B0573C8A420C4619166B011E79BD0B843D97766810A48E55D5CE389B5DE4A739F77CCC5FB70D52B3CA5D01729935BF7E4BB984576F2ACB7466C8248F975BAD539B2260568DFA34CF2974D83699761C95405943A7A88374112F8AE79B4D244BF2D683F7CC7A533229BBD8B5E822C8B3449548634FF34BCAEFF25A41AA84A1FA1F52F486F89630A7730E4F81AD23C14D6906816A849810951727042ED0782EF26C31281C0AADE6C9334A88ACB917B781C4F16327196422C24541065B5E80F4374DA0853D478625A68F728A20C1C82CA4FCC4D62744FA658059141221A917D6121187D3B621179AA8F7B7CD0904E6E0787F9A5F65EAA78011B6B63290A55542C80A4BFAD64677467DD1B12785E6BFBC31C1F3D46DB55C0A035604EF658279DB3232C675BC0BC97717CA3EB71D4F44CAAF1B07BDDC90AE982886594F98C41AE7481562CB63D0B2539EEC589146735490A4A87B6EC5CC77BFC0810627AA3452CB061A1648EC7CBB4937605471FEAA9E92B94016A9A05F585F3C52A993A91A6DB73C9AE6364DD2A07B6C2AFB449122E76A3B273D424B94343B3BD7E7B1E1366204820819C8BA8970218A22262CA649D8E3223167BE77D9A466C860AD7C320B227E873A0D68FAAA441C0907805996D64F7759BDEED65CCE25B367F02094714BE404CA9FE56F6AD99E7D38B5396281314898036493002CB516878DB66AB19E09478872C0F76ABBE0F754B443B13DD5AFE610C1ADFC52FB3C82488984DBCC4D9850A0EE4BBC07D0051208C87914A3FA5159C775AD91A552C2FA2AC573787FFA68F456012AF600AF60183F97CB3E2936EF683FD8E2B5742C6DE946B96F825CD0F4807640A532561C70600D4995BF8D2CA543DB1EACD68D28B207617C23CD9A57BBF75ABCB620D941913E6506AA0123F89C261CE9C39C605646904D22586643F4AD250870AFE94DC950913602CC1CDBB77BB9B4DF518D1A18AB0C5A25948302C0535908E70F84587EFF169114161C3E646740893FAAF6B37B42168FDBC494549776D528BFA2C2BAF6A00A7498F403347A646C9A58328C59274AE8CFF8B82787A29D67336DADD3404FB5509640C29C9456FCF82D4ABBCD9899AB108A1FEF872617C5CA780970182861C046A594D62757D33247B79E12873493634C16FA70983C9B593814E69BB160120B4129370519327AC2332063992AF4370D9871E7A27D13420A6FB16ED9B579D1CA1D36A2094EAC96B537109AD83F4DF1A1D2E184C309AB65D75A3E409C57578214EA4035657757AB92AA930A76D251A1B87BC6B58F9D900E38156D73A1961C43BE2E044314C89EA9601937C0A87D9C4B14CB9E79D83E722CC40B048BEC5CCD038304AC0A65BF93B9A787105EB31B5BE8845C5C57B9A9CAF6243F54438ED84159F5B1B8B246073B1715B0F635E8078991118DFEE2CE08887F9680BD4E672D3AA78DF8954554D398D1675D785B85DD28A1675944D7597968F22855999F148CCEABFABC2358C315076C6B4333A82520A8332543AA100034BB0A6776CD959BCB263074FC28956726D0D99B9D81A7DEC14F13AC5CEB5B9EAAECB28E282BB517CAC09809073C3D085718D1DBBD75EC83707CC768BC79A3B637D0ACB34F37C9C2B4C0EEF3233CF91C0BF5A6A9279F6AD136808A9A3515B02E303F4DA26F93264C5AB9010A9C8550B9076D6471C196675EDB08223672C1A229AD31C05EBC4FAB557F46B4BB37DC2B605A87B888A1F475516DB87B92451127436EDA7922BB45B8B8462122542DE969C31622CDD62676A8FAAC5663A8BC2191711383EF4C1CD7A183BB55CC3C83B566E5514F233D79A2963710C5E5225F7B09B0B6176F451A7F77570B1C17B7BA335511BC3C3FEB884E459ADD3A594DD35662419272499B4E9258DC9ACA946CA80911999D455D06407CF9C69E814478A9F5151780BD754A440BC69925155FFF0A675E0C322C69174C27CD804279EBD3260FEB62C0E24EB63C7A042996C25BC9342C589C340E99999F9C5054FF35C760A43974096C5FD23BB9E51E2483722A132B0277BB24010297C4BA2C58BB286C49ED20B7AAE98C5D9B0601F06EE53C1808E07FDA53114EFC6D36B28B906611BE3A29E68A8DA76457BE5419D70059F7C329AAD28692D45892F335D02D36153217D5DB379B621E416A54CE8071DFDA35F639A04B14AA73B40DEDD61E6FDAAC86971965C03AB14AE69E8130426FDF830BD57D0974CE284FDCB2D2A697D75E985AA43FAE0DF266A8056C18CB0BBB52B4EC89D66C21E8\nencap_coins = 630F384162DD6F8206CB36D2278AF30CCDFC73105029DD507A18AD433503CD7D\nct = 36C576E8A237A88BB107C2587795A2EA21", + "7370DDEC354468DEA7905D8CC9F7673BA981D0E3EA7619F5162F355F3185907CC22C93E35867B1D5D35FB0AA9BB596E3C92A9DDCB2740DC7A76DB318AC8AB44DDC8A6D3D8EF45151232087051A97A6BBA2898CEBC3A58EA632EEFDACA147680C249E7BDFBA0E0B78422A1D8335210DE0C34A515D47F5BBE22D86E58FD7ABF379B6C0F933E86FD19356B29B98CC13D294213C2D72D7122E475E01E7D40493656CEEBC5FF0D40D34F021E9E7076C9C21C671CB31BF174FD5664114983F3BE75804670A7105EE8143AB7E50F681A232B6F50EE658ACD9220896855B03FC14AE691E5F4F9A0746A6F28454E280FA71656F4FE76DC66E66F132DF2810D16C99F04BA073E5DF0063C997D7A9DE65C7BCFF19A034D017FF6B227E82FE04A00D228ED2CCF0238AD5EBFC605DE2292E97E69EE6A5DAEC30BAB63575C471331030D0B3735AB1B3B68931732A63D945B5B3C53785BA423610FD186B156204C5D13CC519BBDA512464772D8462D1217EC4E223CE4F43F3DA269554C1053252D6A74ABD38E2AE20D4CD1FBFB5240C684DCBFCF48E3EC0ED29FB7FB8B5F59AFC59B3447731007158023FB5132B0B0A3F7108FFBDDF38B4C75525360A2A34DCDDCCA703EBF1F65AEC727AEFDF97CE874CA5AC2E370BD109DD3EE36646955821774C498CE47430755C469BEAA1771E4CA055856328A6CBAD33AD7E80839973937B791AABD1E3978246E9671AB937E9E4D8B87F5D9D861FD8BF173E5A8CB20D20DC21CF07AF6274B3F4857A6CD2D42B3C7F474C69F26E09E0BF3AC29BDF0E8114DD68541EEB287E0B93D2922EDFBDC5CB4A80A05D793DEA7A278B2CD60B81728F5E32E5B939EC3F86782EFC882B38D862312BCC0490698DF5AE61BF34C4E9B74EBD8C28BA2F5F1535ADF34C3F3631CE66762A0FC527C184AB76800ED0FFEDE64A8167FB289DDF43980CEBF2E3A146D9794AF666E3AD2D871254EEC650C3516DBFAE3A8A1C13FA0D4437370EE6C82B3FC412427B495D939A18DBEFA352D90D6653D74E0B2AEC7F0E1E8FA91FE0E687D3458176F9532B6AA093F7433D2F8FA0B096224C59701189FC028121F794C58CD5F037624569ADA1CB360C868F736EB33C4E6714B94544F05E7A3BDCE56018C52A470503B455C2F764A682926F48F72AB5B05A3B430CE92B15317DE58C60B0AAA2FA68AF9E4C234CADFFF66C9FEBCDC8DB548812014AC89C8FEEE8FD29E54E21D1C8CA6FCDC3901D9D699AEB1C6A62979043448D39E92B286287E616D6195F7F1F93EDD50AFBE397E54DA077C0B9D412CF7F6952616630799DDD15E4A2B1F907A98929270A048412A30A237B805A5848DCFE1F2D53EA5B442A8936AB80DBD190EFC144CC34216002C80D4CBE8489CE5A7CC115AF4072F6489DA361C89FC5435999355CDC11430CDB9A7751C5343A51ADBB828036010F0796BA2CD64F2C2076CB8DE7E3BE934D5008F2E5CCEB18D31080C392982E3F93E2824545429E64F054ACDBD5C89F7AAA164221\nss = 40F2C0F5F4D2215BBF6D7CE287EA8EA394660B7CF5C7E3DCEDDF79F663777667\n\ncount = 57\nkeypair_coins = 6A1AEE5E708C1B47F02BDACCE4F56C860F74FC7CFEC1EF3B58285B1C8AD7FEC211FE1EBBD66174798908AEAA16D79212E61D5C30364864FC1E09F1B20F296C11\npk = 5B668AE6721C79E07EE5D26233936D195B62B192058CFBCB0A5A73EA0154D78224EBE84B7B611CED7256D0726492A4B41D4A8D6B2CA73A3668F93A77294439B0D8CA9A725C5278C21D896CA5D706E5F03D71526CB175ADE2606E3C3A24D510B4D9816AA6846A77663A80F5AC0D364747307068DA942B15CD2E02A3EED2818F9056D697897B509BD5048B178240C841580BBB77A79423996072F39497869007B19442F401009BA1A039C18F191CCA42F9551713CD791C9FB847690CF6247BB752A17A9873E97BCC36B793B6AD827ACF418543054698D77693F9C38C84354CC81C7A3B6A43ACCCC32DA070FE29411F17A420521FC69C0D09A6425A20AFFC98681568B8CCEA88E54B8DD9F12AEF4B3C10F256EB1519671091984A1DBE972A901BB4B24246D7DB01B86665374BB6CB841B3CDB2593BA5C96E32C20936ECBC4ABFD24AF76158B36A2C752A9BBA8946B34C414EEDB355A3CCB87431221AA2E936B0BD7540E697142DA0817B1B51314FC71CF4017F50544474C572C70BD142C676B69AFBA4292F5F19E88163F2FFBA3B1685073C3BBCAC825B095B5D259228A459FA7E866E09735E4CAB8FA733D4DB6A98172846397883394059C635D23C09FBEE3CAB350B9976C6A8A900C8E1693C3704E779049CD1221CE767651BC23755A3A49C6BE0C314A8C501579F7A447070EFFE0314FA3687AB92090738434E55280A42F22A66EAB77A2932B07E6857A32E31A527A2A909865E053A32148B59CBAC224C12468E444916CA375DC204C600899F90BA7C854B3646F2AF3981797AFC4E261C7A93AABC40A93990DABC82564336D01B2447FD35E8E86A0CBF676CFE6C3D229B256E585D8373D26C3AD66161890325533818F845301D9311BC8035714A722ED9206967123E65410562A745FE28F90D50D772A9CDED6354132688DDB1AE6956EADD896CFAA71C44AA925FB3B2C6B7D5E47CBAE00A91040456F4023174C73DD8A4D50F9714AD1CFF718321677A6962587BA6CA82C341F02A7382BE9715B41994DB91E6D0B487207B9B660793E62470B806A7444B6FAAB38F48747484062FF443AE1DA9E7EF41F797398F0527406787E00E197AC3248EE4A0E5037CF6C754AB9A24D08936E9D3313B99AC18886CFA9972030F1A40E58B25939A21698C434391785A3A98F0445567A9DBC0B4284D49652BB1862BB76FCFC6ABE60831CAC9AEF6469464319411A30F7601B5358568B014E67A76EA42ACACD7C3FC2F983BCE1BC0667897B92590DC724B5284FECF7C36B3842C61C27AF1A2F2EC95899591E707272BEA384CB9C8C9409BB26D743FAF196D3B8B33119A379D5CBF6823D4176CA83BA4E2A426745F346A42861A7B5343AD3AC26EA8895F24A379C449156123ED91A4CA701BD789DA84BA0ED5C707D373634AB7A65680667191F806B6F62CACB4B40AFDD649CC9D1650C3A5E40C8346C91B27EC1B1A957C778EC9C968C670FC84645FC07881C54946B5AB0B6033F45AFCC6A61FBB99746F3991F5B827C22972939C5FF620BDC4B131EB393D108C56556719ABBB978452FF0A12A1D138C9065C304C8514658193232C832B05B0B21A10483C6FAAB378C6B1415B75B43796F314542B9D7C87C1CA5FC13A12E8459454D36096C3BA38E979A3D4C852032429BFE1E663E0C256C2E93\nsk = D809438C90AEA78B897A528534FB009D716DE8D513D32168A1537489E52255D00F49C424BF5B5DB0E15A3A9B9845ECCF287776F9700FF5BB7AB9F40FFEAB7F148A9633546846B672CDA9AB8A37C8F9711B76474E7975AB7E16675A8626F8648B605066A4FB4A5C255A0A39387B03BB7F618C9ED1B37E488D4B7175B593860F6C97D637A2D8761D3B933291B2CCFA6BACC4DCC4DDBCA804C7C55EDB9FC5ABB503036059DA4D2929447CAB1BB1CB746AB01293A2B2F2638BEB06030D476BCD2C335DD5226B7450F8B5B2B130332DC9210640C10DAA5FAAC16C1381C2A0C4AAE3174BE4FAA53CA9CBF29769084715D6F8C163A0185030B0C7C9621336A9875946FBB73BDA9774C07615711451F5594A44313878204C291AB7550AAF981409D4D7CBEE727BA689400DAB7382605F03873F38566421A354B59A3B48BC8F62A09519D932AF5800A9A0C6EFD5783BD93483A0AAAC7853C890C3BA18835D1A2E8F14BD0768CC7D0B951909825C988648F797F5711FBC654380E661BBC41CF89B088E1410F19669AEF65FD817564A4A4F40281B5E16A69BE2B503495A4B6B680A08A54FE0B80AE668041AA120C7A363E38AAF2156CEE293BFD4396DCC503646ACB74B9460142E4476807C058D72C9610E3CBB50A29ED7244419C2C258659B3A8A23E7E69A3047298378424B7A12DF3CCE34F1364732B292B105EEE6A487126815BC0013D66FB7099EFD4931E4301D570BCF2FACBA0B433B9A03147242C298052650416651DB690CE81C268381032B17C429A8E418B7E2BB63D30B570DA588CBC36DC3798C65F81EF05530B9043310E182E88BB3E58356DE408898738C9B3C457FACA42B9B81ED7C4118869D5153338EF4260006C6BE294B528C779BD6C8FFCB16E2AAB439D3032B8AC45216282346200CF1C812033A4F9667AF842481D807F92245BB322E04343971A656087CCA8CE9BD3117013AE816BA745888A4AD51A167A17482EE5B88B0BBA455A565B1D97BD3B9BEEAEAC0B4F2879A727028D4A1C61900D0770F15451A01964366D8A6AD1B5BC520392D43BCA270CCF9A72DF3D68B955C4BED0352B3F78151C4716512097BC92F2CF0A2560923D01358AB1B5F8B7BC687F5C110B04C6512372F119FB23BB852398A6F599F4D145A8AFABAF8AC8726ABAEE569C4579B494A01C67E232B93080D5DF1542DD59F21760A24747E98E26466280C04D1784D9B581B4CABCAC1C3DDE1CA8E00588E0732F76B99EC844032D99EF65C8A9EF4A661E78A47B0542B3129E850647862132C208CB9B3986EB5B510EA1854300EE966B0D3BC09922260FFC96B894A181A95A41F1BB3ACB2572475B3FE8933FE3902C965678B95512289CFBAC30A2B159B8F2B3535E40881D81C204CBA9080B9A7B23190965EB660754368955C0C7929E9447B92AC78E7867C1B4770596047FA820C03A11CAA3C2BA48120E29AD46C289920222C511C9E18343AB20067F926435C6D6B040955F9394601B805E38A751BC8A1853FC05857EAE658A8A7CAD729373E73253E7728FDCA89E347BBFC48A7BAFA48CB167111367F40C93BF71CCF208A891C383BA3B593F2663148D779ED82B23F4B6796209D51425E9168CB22224F39F0695B668AE6721C79E07EE5D26233936D195B62B192058CFBCB0A5A73EA0154D78224EBE84B7B611CED7256D0726492A4B41D4A8D6B2CA73A3668F93A77294439B0D8CA9A725C5278C21D896CA5D706E5F03D71526CB175ADE2606E3C3A24D510B4D9816AA6846A77663A80F5AC0D364747307068DA942B15CD2E02A3EED2818F9056D697897B509BD5048B178240C841580BBB77A79423996072F39497869007B19442F401009BA1A039C18F191CCA42F9551713CD791C9FB847690CF6247BB752A17A9873E97BCC36B793B6AD827ACF418543054698D77693F9C38C84354CC81C7A3B6A43ACCCC32DA070FE29411F17A420521FC69C0D09A6425A20AFFC98681568B8CCEA88E54B8DD9F12AEF4B3C10F256EB1519671091984A1DBE972A901BB4B24246D7DB01B86665374BB6CB841B3CDB2593BA5C96E32C20936ECBC4ABFD24AF76158B36A2C752A9BBA8946B34C414EEDB355A3CCB87431221AA2E936B0BD7540E697142DA0817B1B51314FC71CF4017F50544474C572C70BD142C676B69AFBA4292F5F19E88163F2FFBA3B1685073C3BBCAC825B095B5D259228A459FA7E866E09735E4CAB8FA733D4DB6A98172846397883394059C635D23C09FBEE3CAB350B9976C6A8A900C8E1693C3704E779049CD1221CE767651BC23755A3A49C6BE0C314A8C501579F7A447070EFFE0314FA3687AB92090738434E55280A42F22A66EAB77A2932B07E6857A32E31A527A2A909865E053A32148B59CBAC224C12468E444916CA375DC204C600899F90BA7C854B3646F2AF3981797A", + "FC4E261C7A93AABC40A93990DABC82564336D01B2447FD35E8E86A0CBF676CFE6C3D229B256E585D8373D26C3AD66161890325533818F845301D9311BC8035714A722ED9206967123E65410562A745FE28F90D50D772A9CDED6354132688DDB1AE6956EADD896CFAA71C44AA925FB3B2C6B7D5E47CBAE00A91040456F4023174C73DD8A4D50F9714AD1CFF718321677A6962587BA6CA82C341F02A7382BE9715B41994DB91E6D0B487207B9B660793E62470B806A7444B6FAAB38F48747484062FF443AE1DA9E7EF41F797398F0527406787E00E197AC3248EE4A0E5037CF6C754AB9A24D08936E9D3313B99AC18886CFA9972030F1A40E58B25939A21698C434391785A3A98F0445567A9DBC0B4284D49652BB1862BB76FCFC6ABE60831CAC9AEF6469464319411A30F7601B5358568B014E67A76EA42ACACD7C3FC2F983BCE1BC0667897B92590DC724B5284FECF7C36B3842C61C27AF1A2F2EC95899591E707272BEA384CB9C8C9409BB26D743FAF196D3B8B33119A379D5CBF6823D4176CA83BA4E2A426745F346A42861A7B5343AD3AC26EA8895F24A379C449156123ED91A4CA701BD789DA84BA0ED5C707D373634AB7A65680667191F806B6F62CACB4B40AFDD649CC9D1650C3A5E40C8346C91B27EC1B1A957C778EC9C968C670FC84645FC07881C54946B5AB0B6033F45AFCC6A61FBB99746F3991F5B827C22972939C5FF620BDC4B131EB393D108C56556719ABBB978452FF0A12A1D138C9065C304C8514658193232C832B05B0B21A10483C6FAAB378C6B1415B75B43796F314542B9D7C87C1CA5FC13A12E8459454D36096C3BA38E979A3D4C852032429BFE1E663E0C256C2E93CF754F2EE43694865A09CA7BEB0DEDA9B1328FD0ABDF30CA5C338E27E8BE04B511FE1EBBD66174798908AEAA16D79212E61D5C30364864FC1E09F1B20F296C11\nencap_coins = A0F6AA73A5D09451A39087FD84F6872CE2EF031E6C02468B433362311346FB42\nct = 464D1B25970FF541DE77D2A12D814ED5897B2E724F70821C0828D8B00FF34416F55E261AAFD0691D58CA79020FAA84084420D974AB77399C87FC6CE6834C3F7C121223C2F5DED3DFAAE2CD18E341C38434ABB716C9C48FDE561EFEE787A33C2CFA09A0EDF717BA7D13D11E5A9BF93245D34C5537CE099AE6C8B0D0C730CF12515B1EDFEAA17C2FD2F3021D135B270A1B03CE65755A625CC60D248E830251BF7BEFAFB72B3157D131A258EC21855E38CAF51FE7D2C7A0A9C6DC4320A10FE5524E4B4936CCA32680B7592FA0C320B0D3BCEC79ECE88657C069B912CBDF04AC2BF30353940282569D080C1D9BF98C37E8B2839EB7F8DFBB9F4A84B7A6167DAAAF6728B130002607F0B31A215EAF7D709D8687AECE3A4782F0A6467BC6AD13C97CAB738C9ECA5F739E1A3FA68E53C453B346E24C7F08F0C7D8309ABB44F4AE8A3626D453B7C16BBF46E8ED27A2B1E35E46055278F217E12F3B8FAB050F77F35572D332865C31E77ECA04AD4C51493797BA02B2F2EA9E1C2BCD486D6BCE5541756073EDFBE233D81FC39CE6D2B1BE6B2C55833AA8770DBBC820B8A51A7D95BA317395BC277067A545224E4E9EBDE134C650DB521691BCD115819BD4A46ACFD64BBC873D9E64422F6AA38369765D366453DFFF6EDD31F1E1BF2D214BA17D9FF4D5FC1272F7CD6AC33774A3787D89A500FF7B96A729289C39B967D6ED5BF82EAFD3267D68E0A575F4314C8AC6D35596931E762D148E0AC09801FBAF88819F6749E220C490C1E4D8BEBC8C34A4076968EDD3DBE0658910846C801BBC6D6CB628DE6CCFB56D912CBC4F7366A89976D94F3A1087ACF122F72AFC5B3E743D4654C916362B50D2C27BA867491E842B58D3BD0D77DDE7AC118DFC1FBF5D68F80636679618AD0FC8550089ED8A32F975320BA341A75E172354B03B356C98562846D6B511827095D70AEED21D1CD5BD80E2F69EE6E6673139E849078073438F1844DB2831C89D964BDDCA7C4C0C754F9C7856B6FBA3ED299C5C634BBC3C2F59D79DD6758594276ACA04F04B18FE6338EB158EF90A75F70E563E3451BFF1CCE0236C72ABE32A6CB4DC5857BB2C0C811ABBAFAFEBB65C461BBAA278AC7C94792C29589FFC36F233F639A9316C30A8742C48C3B2BF5B09A6FAC44EFDA6868040D5CF9A49285D28E3D2EE74B2C92DC62354DF5ADE85EB95453FC2CA9737D43766BBC8D27CCE89B14F3E3807D82403DC9CAE99A68C9734F893624270E5F7A4AC8EDBEE26A50E45C0A8ED040A98F40A0ABAFCEB307E1B7F23C52FF4F5DB811C636B917B79CD889A493BD20528C0F15C24CE7186F8D2FCDD78CC575CD1085E0536F6C1265BE3AA7D460C754AFE99BF1ED2D3D3BAC980F2B90BB144EC91A76F423AE6C900E02711976C941BA7C67DAF2F5CE55F97375392326C0D95AB800F808980502BD73F78DDA25CCC31B81A5CB7325F2F8D66C9D3BA985297E65AB1BCDF11CF42A3F129405111DA41CAB70905CE953AE7C8F7FB85F795205F22606FCAB067A7553FDA68CD911629DD08\nss = B82E5857200C398C297840CC0B14B83510CF03DE5D85E71584EC22A38A830239\n\ncount = 58\nkeypair_coins = 6396B328B100E4C7F4BCAE69875EDEA1A1982421558C608C13C592BF7B5D0FEFBAE49824E1A023A302CDF665AEC15B60F7F77AB2A0FFFD5246D07AE975A0614E\npk = 98CCA518437873F144E7E261E8465B3720582CF7706D684F84E618E8834F35857D4A8BBC303134B5E235DD1B2387A81C663876C5530293F99571B97AE5A299DF0C012E9662947089C9F81687722FBDC30CE50689690B30932A8A3CE7BCF6A353BF988DD310A2C347BFE6B30999E69C455B9F472B9BCA0216C84265E5D9486F6A7F1F3125C16467AE41B9F85180497B255ADB06A406A13A221388E14C0DE8CF73B6A952C2B2501644831C3700B7C273B7A3180A7641621F33B41C0F9255EFEC1025FC46F658C64FC89352C54C264B97E5A91C2386CD3790605127740DA2076EAB4876E128F3746843205B8328CFCDC65FEB92C2D973BBBFC68FD7A46DB51641B7830E73589F41D413FB571C37685DFF142863078ACF00043395BFAB3589B0CB435981B84E54318AB46E398389B8E146CAB2A9666330EC4C90A652A0F036951519880A45BF5D000D4E40C6B6554CD222880D0B91B67153C43909EB2C0926354D436C2318C593F9FC214B548E17245C0C9B83174A6783508B97AC6A8D8A88ECD278E2E52C3C9138B1685DABBA2BB1425075B298CB9120E790AFDCB9792C88698CC156CA5A789474992F470B1D554514823E87BCAE52CCC872C951B0C24B4A2B0460F488EE7768D56B07DC79B3B4CC321E5878AC0A5C3146AAEB6CA123206B0C7B5AA6E0BEC5D0A903AC9415DA345AF199CAB86BA99234C9526E6E8812F6DA8001F31337B8498A8374AE527B6032A0CF3142D1D34181A5AFD6AA432A588AE1F644F5A100FA593F0ED2753F441AE5677484738FF694ABCEC58781B06D0213579F827FB4F97B3FC343A445BA3035AEE989685E7B20BE6103FD39AFABC334417379BD666181925ED369680B851A54C41B6546B9C04CA69742B2A814763674ABC9CBCB03E96F9466CBEAEC698CB5C9ACF814E90887F8D15BEE556B28F50B739185EB7A5A06E896ED0048BBD905E016436477A68EBBAB1E172928AC8FA9A8B0A0D999B135A753A29A47D0136865B0F382572B0697D0FCCADC8A77C1B591BD73B639E13F9C21B6F0969B0ABA3EA807303377AFE0F49421B68D0712823FC448FA9A468FA000D5964BCF9A9E7FC92DECE03BF6732A36935B25023B47FC94C15795DD983BB4531E935A19778305D0E8A75C2CC770EB46B6D5759DF503BAC33F0669C775729C59EB94D48223D763880E8B58473683CEE48E309380F7B442E6C83F0EB9BBB0B1AE805B1498471AC1149D578B454041AAA2F5CF13390F10A72DF3385C6A8A1F990BB946F4C888E585069B5849882788A1BE27DA0725276FF9DB130519050B74CFF69A68534222499CC61F5845A8FC0AC5629E0CDA20D3EA2F0046B78A2267FA0187F15721EC53083018772097892BE85C1BE99480247E6E30AAC8FA2C593C630B981E57515E0F7414CFA8B606D931280A950E567C93B319FD23CA1B682FC0B960DD309F80455CABBBC71979C59A025008462C0681465D748FF2A6AE24E86C79922E2845568CEB5063FCB81B78295B93A80B221AE7E14A9A9BB7182C1ACF347F2FA73784835F3375A29ED05E4BD120A119CD0FDA29F76A1EB873AA88D0CB3C661FF0D5652F2B4604E2BDB1497486687F17B8CE7A096A59E0922260AE99BB7412E306CC0B25940FFDDF25214EE4DD4E1AEB851878E2493C05E2BD5A30B5B99D369454\nsk = BA45541CE7B3DE134E6B17030710BCCE09BCDBA837F23566DBF1928C99CFFCB674CAB9C41B3151FAA3078177B9126C7973E25687452DA075965BAA804276859B092D9D4095B5E3A27943776DA65262511F62A3AA875B258C7929B502AD6CBA00E3B38011C943310BB5CB24791A71BC5A2796D6197192D9594936089D88BFE976058CA16C152193838A3D7306B312F8160DF15288F9063514A403ACB76BE298F5C92D65A90A0BCB28A4F438EA447A9C881808A18A2F5C3C1B876B3AE94ED28478FDDC1E98A64FD797A0931CC4A18777E5D481D9E92C0CF2B5F5A58635B368CBC8C25DC733550774C0861795939B74E83A23757C212927805663DE14A0FA00CF10F51850DBB4CDD7CAABD5C09B2818CC0A09A58169E3827969518E8FC7BC8325B45656861A848347A358EF1155E5D43F7910A738A132C8892977075C9A19C1EB6399F2E7BF1DBAB593A907BDA509EF5B0DE35A222FC951A0829A838591A0441294C35CA0B86BE6FC02E1EA1B7D4004E5BCBCAA2A280EF37067D72790BB5D59587E050272DDF8B117286FE80C1BBF078E6D259A9B53BD6FF1B43A86B24ADB27BBFA3546C179B8F295726AB768BC7FC8DC2A62715030D93581165F1E4A03D42374A31039D55741C9C49A1C807468CC826F0380B90C9C3F319CF1F73811D674B05C147BB2613BA56365EA04872B9244B236B0D480DD0B47B7797A23286269F97450E13791B205C8AA3310B72F3423B263D93CA320AE1FF04FE6E3BB703A6C4FC17DCFB6341AEB485576B53D1CAB71D9049DCC68CF86008BDB6152994E70152F96C8AE4A0819102BA5077B26086B2DC6B04B324A31AECCB372CC18976BB9DA42C8EBA89640149ACC544511546C5DD293C3173EF28CA92B85B86188BC6FC09E2725307A2C3802C6086F922CDDC62B5989C5A6846496D2BCBF7775A4B3737EE6C6B69CC3373C96E79675CBC781146C7A78824AAE4322E1A69DBF64336EFC3348E414ECAB04010B9F7399310253679B48AF3C23961BF345B35172C1D472F9A31274C730373A29154A581631A0916A21259A46EFA387B36CC9272B5284085709E46F07BABFCC835959D841B3647F51147A013987DD9556111435124101E5D42FF0848BFE2169A49485C094226EC6994CB50BA9F6476FB2A39522A08145B987593F2FE67A2B2CCB036C4E6540145758C6745A389955CE9744CB8030BD85A838A5904198B318A4D265EEA61C70E5A34156BA00A53F05C9BE7F1AC214F6A75DC8154EECCEC7CA6218B34B8E063231C450EA3A8B48F7C97D9C58FED709C350A28A34873CE76F0FC7A4237AAEA0804E2D3874D726AEC41C3AC8E02706DA459C01736B7A5E0936B3ABCCBEBF146350EA2A246C225BA897473817F28C8D6BBB5", + "5FE98A48DE682A91770EDB1BDB190A0EFD677A7FC29FC62690668924CB5887F4078179AADE85C0DC8E3529862B2760B187B7778A56C6B026769E339ACA5F8C948801FDDC4ACC3BCC7FF548DD9FC12CD7A394C24A7CBE18D3D22AE3B48BEB295905B217AF384393705107F33B02547822B0A2CB1B57B6FC637E071C0FDBA2F87F010D0C81C42DB454F5C7BE69AC0069C33330BC40532248FD0B90A28908F7471FBCC543FA94403818698CCA518437873F144E7E261E8465B3720582CF7706D684F84E618E8834F35857D4A8BBC303134B5E235DD1B2387A81C663876C5530293F99571B97AE5A299DF0C012E9662947089C9F81687722FBDC30CE50689690B30932A8A3CE7BCF6A353BF988DD310A2C347BFE6B30999E69C455B9F472B9BCA0216C84265E5D9486F6A7F1F3125C16467AE41B9F85180497B255ADB06A406A13A221388E14C0DE8CF73B6A952C2B2501644831C3700B7C273B7A3180A7641621F33B41C0F9255EFEC1025FC46F658C64FC89352C54C264B97E5A91C2386CD3790605127740DA2076EAB4876E128F3746843205B8328CFCDC65FEB92C2D973BBBFC68FD7A46DB51641B7830E73589F41D413FB571C37685DFF142863078ACF00043395BFAB3589B0CB435981B84E54318AB46E398389B8E146CAB2A9666330EC4C90A652A0F036951519880A45BF5D000D4E40C6B6554CD222880D0B91B67153C43909EB2C0926354D436C2318C593F9FC214B548E17245C0C9B83174A6783508B97AC6A8D8A88ECD278E2E52C3C9138B1685DABBA2BB1425075B298CB9120E790AFDCB9792C88698CC156CA5A789474992F470B1D554514823E87BCAE52CCC872C951B0C24B4A2B0460F488EE7768D56B07DC79B3B4CC321E5878AC0A5C3146AAEB6CA123206B0C7B5AA6E0BEC5D0A903AC9415DA345AF199CAB86BA99234C9526E6E8812F6DA8001F31337B8498A8374AE527B6032A0CF3142D1D34181A5AFD6AA432A588AE1F644F5A100FA593F0ED2753F441AE5677484738FF694ABCEC58781B06D0213579F827FB4F97B3FC343A445BA3035AEE989685E7B20BE6103FD39AFABC334417379BD666181925ED369680B851A54C41B6546B9C04CA69742B2A814763674ABC9CBCB03E96F9466CBEAEC698CB5C9ACF814E90887F8D15BEE556B28F50B739185EB7A5A06E896ED0048BBD905E016436477A68EBBAB1E172928AC8FA9A8B0A0D999B135A753A29A47D0136865B0F382572B0697D0FCCADC8A77C1B591BD73B639E13F9C21B6F0969B0ABA3EA807303377AFE0F49421B68D0712823FC448FA9A468FA000D5964BCF9A9E7FC92DECE03BF6732A36935B25023B47FC94C15795DD983BB4531E935A19778305D0E8A75C2CC770EB46B6D5759DF503BAC33F0669C775729C59EB94D48223D763880E8B58473683CEE48E309380F7B442E6C83F0EB9BBB0B1AE805B1498471AC1149D578B454041AAA2F5CF13390F10A72DF3385C6A8A1F990BB946F4C888E585069B5849882788A1BE27DA0725276FF9DB130519050B74CFF69A68534222499CC61F5845A8FC0AC5629E0CDA20D3EA2F0046B78A2267FA0187F15721EC53083018772097892BE85C1BE99480247E6E30AAC8FA2C593C630B981E57515E0F7414CFA8B606D931280A950E567C93B319FD23CA1B682FC0B960DD309F80455CABBBC71979C59A025008462C0681465D748FF2A6AE24E86C79922E2845568CEB5063FCB81B78295B93A80B221AE7E14A9A9BB7182C1ACF347F2FA73784835F3375A29ED05E4BD120A119CD0FDA29F76A1EB873AA88D0CB3C661FF0D5652F2B4604E2BDB1497486687F17B8CE7A096A59E0922260AE99BB7412E306CC0B25940FFDDF25214EE4DD4E1AEB851878E2493C05E2BD5A30B5B99D3694543A842153DEE9E035299D7E268C9492D71188F9FB24BDC2DD20C1DDCA647A1523BAE49824E1A023A302CDF665AEC15B60F7F77AB2A0FFFD5246D07AE975A0614E\nencap_coins = 2905F02CE2C10E4AE7BB7F862D1D377F8DF3A1280481E2579D49191D1EE6EF6D\nct = 7CC6E914B37B2AF9F5BAB4AB64227256E57B92D55EE5EC299A563F199C9B1D4A3BA92D17B46ACA8ED7BF9A9F138104BC61C595447D30604BF146C73654A6057978A0B6E2FEE7ABF0CC219E8BD29D33E07EB478C23403E46E0EBAF19B1F5D06D71E9CFA4FB77537EAA6206C4637AE62318E9973E6D5C4574914F2773F501EAD76EC7296AFF5B0A6A5444B27BB2EA0BB16BD31EED10713748CEEB9CA210BED0AF80D31EE93EB817ABD237221182193AF39D4450BE11D56B1BFCCEDA4D9B87A7335BC25FD303E10E719EE9F232F686ED1581F531639EC1D93B59EC10EEED06A436960FE93669B1AA56E4712213E0DA93ED2E1F334AD8BC52161F2024148C0DEA21B3626489E426E46291B9E5EB8CFB361094F076FBA227DE05AE8E5FAB6422FBABFB8E574BF4BE7FDAAEA445971D3BB146EE0E523719AC181C3DE27739B38DF790FD9C9788B74937D1CAAB364F9553D2BC105A5458F50C49124E7B8EF78518848C4771383AD31B2CE64C35357079C648665F22C100273EAD313947E12750F4ECF96ED3C299222480E183246363ED0B6139458655FCD1C0A96B24301A6FD42982391221DF1CBC5A52B348DFA779A07B74477FCB43220409DED87AF3D5CD8D4C46E4C85300C49035043B1B7E632A85984FB5B3DD6EFD41CE0A94D01E0B64DB5EA3632FFBF5DB6AE4D2FD41448001B48B6088B8A9D2CACE1625582086B1582935E9A7A9D1D51F69BC746CCBAC08B1690EAC042B6B5A8342EB9348E783390C1AF463373D649066F619C9095429987A694EDCEADB6C3B2533795651E5D9E36429DD82EE6AE2FCE5D5F870F2BB7F203B2039D87C075F13314ACD62A04C2EBB7672CF68DEAEBA018D8909420FC53ED9BCC429E2CDCCAB3A1A38A96424FA13C5B9A2ADA4D759CCAA3AB1745DD96F49212B9778F7565497A42C3E037D38AF8738EA4C7C576D809B7001153095E348E0307ECCDE50404E818FC710DC62C889EECB9EFE5787ADEF1893455DAC9D83F81B8508852AC2E8C2DBE7BE72E747F1DD1B4A02015D4A4F2788E0313029481133DF18BAF95E5D740EAC5B9F54506A01B527F79ADB0710121249F0A35C5FF0B571DF0C4049B182B1A20A5A0F14F355D04D8D0A13886F918BFF31C861269A35620F7CDEFD8E93021BBEB32A6D23AA41BFC16C3D7E4D7F101B1E2D2C9E94F6B95EA42913DF88DE491684DD09C945381A884A94BC5473F11D51B86D5A2F7BCC8EB7E685AAA7A3E97AB48FEA542D7B1F5E6724B5576BEE1F5B91BAC113DEA3BDDE95C970DD571AE2B64D5456617ABBEB56E757B9199D84EF71D595B480F8CEDA0F0A85E699EE99E609BB24F978FBD3A7A0EA9246F3FFEF9F65552B347F53CC2545C197E1BBCAF0E8C977627E21318F8145177965B08C11B0B96756E88CFE0C6C01917E5668FFFDD92075A3985479ACA2EB7C13EF032CC2DD187CA2B3567B256C86CDAF17300DB8F2EDD1EC60064074F2BD3064027CE06F9FB9F838693F32982DB2380032E344F2AE19F99933A522390534CC12DF417307295EAA4\nss = A1676FB1BF8BDE481425FD5183CA9C41B15364EDCB7DBF5E8002E81ACF830BF2\n\ncount = 59\nkeypair_coins = A453BCACDD2B0D4646009E5ED451C3C45F08FB827EF733DB3C517A9DC1AF93E6E39CC6C99EE6FD8653D15505A6C2A713D41B43FA521CFB214E8D1B38440F4640\npk = 5E451E4C8C85A192C91DF27C17C0684BAA6375B17586F8BF1EF12B91615BD08A340C58629CD45F7A392F10A04916C249AF956B180BC418B8A95F66B2D0847E79D247B430812D682B1FB91879FAAB68F25602579BF0D895073780007B7D61940239913EB217CB16A63EA08B29656712A21A32C754953335C29E769DF17125D84C32B3250EC96067B975BF524091EE4013A8B67A19A331DAF38A396A765F7820A5E3606A734F5BA854D1E6B6E70CB9EE5B00D4D18D928921EBB8048E284A3A05A3DF9469EC53195180AC9F869A8E8866D69019E9730FD6E672DB024B6ECB4DC55729024033703B6FDB7BBEEECB2345782815843B7B7664627CAD52038F98DB605FD23D24080F809A276419C876AAC69977998B1400395829656C97BE262E053197EAD738D9BC995145CB2713B5E181223E04497C8114EC5A05384AA31CB84406F93365D7059DD88DB8F94A8F068FCD10BE96E32A0E926DCA518B3FE9286A755F29D83CF667407758141B2011FBB1764D3334F3A763A17CCE33C2816AC79EC4CC4C2D842B004C352ABA419BE87281779300708BB20143A43413A2A55C41E36444046A3C021A4D7818DD146D1DC335C66152866597AA69A44F39A2814A4830E002672731D93B7FE5F77587B782AA279CC9807D6126392F812E83662D49DB231DD3060F882D71D2A0A4C94ADB3784BA1785187423D7E8A82F379EECBA7E6F6A67B568698AC3A2C0B096B015100BF9ACFEE522A0192E49880439CC1FA9B30FB7A10544E1867B0C34DA981CE6E660CEBB8853545994454815178C60B04DCA7073531AA2A5095F7B8578CD9889F3428A7D1C72B8FB320F304FE5D23A4291666BF7AA1AFB5086532FC5AA347DC29279A4484261614F2774C81374AA453024B68D384B01565A36D98B751297477A61780E98135375AF8EF68359332826DA01BA6A73D5263ABC659454F57D83172D0E515D3754270AD84543D995C0534788A6786927B952698ABE693BFBB358E9E393151AAC991C97FEC8C55CC407BF027DF7E2A505DB531D47344552321107B651FA4E47D4B389C5825E02CA1F42839ADA4D7EEA2CCB24A74E34672BF1BC4F33C88C3603A3FA6CE87AA5CFE30125F99E81550C19B58A807BA8A586415C2924A6E467CA8BC85A5400F910457E8B9D74A11E2668C0F1A2A1D0389361D09900EC6671206139380EBF9390B2401555BA0A57FCA36D2742F569A573096A2B442C5992C3FB65271479291F097CB94589FA15BF73CB9319D93860EACF1CD1BF7D380E03587CE3FAAEB6360D79574803B5C49841B74918768EFB518CA46B26929F68639EB8FA9F73E61A8B69B004CB5D9D92CF0DAC9ABC03171444A03409714DC1514931182701C19E242AE73B465AF335C8D3588FF468346ABF76604B6EF887A7EB8E8B44005BB55AF328155AF7928C732E7805010CF0A50EC68E29ACCCEBC4A39E2ACA10084E2543746BE6C81D482F6F3C1FE0D31C6A69329D783A1BFA0B43E289A2F843C71196809CA4B82C75C59C7AA5D311350AA55E89735D9C34E6982D17C033937253D9778CA31A14A9894C5D801415056552C410484970CF2AC86B374644A37976EC4A123C0603CCC01C6C6E994514F13885BCEB2F8B0A57073E0F3130DACA54C038DC1085402160513337AF2B6DD900B04DC3BDFCC90BDB\nsk = 2D80A415A1B29961459E396204E5B5E65540A2A9AE9CD52D867A9E20952FC7565B66151653448353697B09723B17E3B1EF375A3E260A5869B579883FD1EB3A06DA5C11E493F4CC9D18381856FB2C36223E7214AD78A178B2153DCDE882451776478A4E06B392CE9B9D0310A5A134B42C37312A8932151571D85CB69D9333FF8685569568A0FC4568682EC2F5506F59742601C46DB34EFB9665B5815574518FF677BE1C0991B644B5931B112220C6EEE10C37C19316156BCBF354FB661635E42F6B26B07F9552D7B1A65D51C7EB6A132034BD755674DFC14345AA72ACBB85D4724B2BA14925421E570543AE904F9BC4016BC0389FB99", + "22CB12A393A24DF219290DC506E501003C0AE8CBBC685A25A91147265207F93F190B12BAEBE7CC7EDEC476553762EA45E48694DDD172B6787B7D9719E89D77563C9C2CCB77CAEB23D7AA9181B82B6CBA09AEF1851235C7986194C8322280B4192B94262FC79CEACE4B894C86814D4929BD773E6A73FB0C7C36C67391A314555674CF415292055BB39319DCAA7B07230204C068028B3AE7A7223DF112032D60EDD1B6B52EA1ED13B86231A1EFB2969A691CEF0D219835A44E907BB0CD2CE6DA1442AF1460F2AB882959E0862BCCFCC6E3FC2BDB5EB673B218D6E9C5DC6461D8796945B614C81A68F9CF381D256BC1E63285141814077AF5F54C2C6B487DD29CDB1D2CE08F09122D09632AB823CB00D86A57F8933743F347C203894D0043F5692A6E12283ABFA1B98B39C6D638132EA4B94644E89A0ADC35816BE01A408F752B3215029D7661B554BD39ABAA906AF32F877CD4B28BCC217825AC897D06A4C233462FBA602A81321DB93279A19BF44131B86035DB3C4CA911F1FA30146F9BE0333650C3C24A5C85BF5E252413853DEFB040F8A16F4ABB9E18CB3D496A69B356D8206C106864C7464A7A7EC5E998B3FD5B18DF1D947E171272EC5AA1137CCBE50AE73ECC106250C0392A41A73A4861ACEA19257BE33CEF406B7EAC1796F605A709A4BC06BBE40867966E830E8AAC19AF626A4642A8447276F09CFBA6486564079E1AA38D7E179D9634E3398B743A1812F02818E979B4434A4516C2C77672600D5B7D3BB6D7E3253189C3694120DBE2519C62C80558AC1D522855682962DF611FEBC9F33FA27A0787501A42802863B5CDCC6AA81B964CC2C9B8081B63750A6358DB5566A0D3229D2989E98199855A2448F54688ED2487B816F5CD651206350FBBB5CDD995A9DB37B089CAA57AB0DEDDC9392EA1C0F99031A42C350CAB7B6F54C1E4ACDD0E28D7975A188502FEF055FEB5889BF87929B6006562626335B05EDFC544F10CBD927AB3C4C9E806700349B9A0099801D5948CFF3BF0977A9691A25AC880D593A36D1E5436EAB078BD9A6BF25BC3D6B5BDFA02AAB06AB5842C440E40D430AAD9311015A8767417B233FA8CFC64914533031AB39B845A3C50CE00BA0F1A586053768EA48293044F3A831B456320600404761C7E826A0B111AE37DB49B31BB3E9389BD3E354F08879906996DF2036AC49B9C773AF5FEC5375519AE7B8C61CE475AC544D13A5B421B8A686251B6D1C64F8A353406248B0430C8A3A308B600D0C9506D6509AAC9A460935645E451E4C8C85A192C91DF27C17C0684BAA6375B17586F8BF1EF12B91615BD08A340C58629CD45F7A392F10A04916C249AF956B180BC418B8A95F66B2D0847E79D247B430812D682B1FB91879FAAB68F25602579BF0D895073780007B7D61940239913EB217CB16A63EA08B29656712A21A32C754953335C29E769DF17125D84C32B3250EC96067B975BF524091EE4013A8B67A19A331DAF38A396A765F7820A5E3606A734F5BA854D1E6B6E70CB9EE5B00D4D18D928921EBB8048E284A3A05A3DF9469EC53195180AC9F869A8E8866D69019E9730FD6E672DB024B6ECB4DC55729024033703B6FDB7BBEEECB2345782815843B7B7664627CAD52038F98DB605FD23D24080F809A276419C876AAC69977998B1400395829656C97BE262E053197EAD738D9BC995145CB2713B5E181223E04497C8114EC5A05384AA31CB84406F93365D7059DD88DB8F94A8F068FCD10BE96E32A0E926DCA518B3FE9286A755F29D83CF667407758141B2011FBB1764D3334F3A763A17CCE33C2816AC79EC4CC4C2D842B004C352ABA419BE87281779300708BB20143A43413A2A55C41E36444046A3C021A4D7818DD146D1DC335C66152866597AA69A44F39A2814A4830E002672731D93B7FE5F77587B782AA279CC9807D6126392F812E83662D49DB231DD3060F882D71D2A0A4C94ADB3784BA1785187423D7E8A82F379EECBA7E6F6A67B568698AC3A2C0B096B015100BF9ACFEE522A0192E49880439CC1FA9B30FB7A10544E1867B0C34DA981CE6E660CEBB8853545994454815178C60B04DCA7073531AA2A5095F7B8578CD9889F3428A7D1C72B8FB320F304FE5D23A4291666BF7AA1AFB5086532FC5AA347DC29279A4484261614F2774C81374AA453024B68D384B01565A36D98B751297477A61780E98135375AF8EF68359332826DA01BA6A73D5263ABC659454F57D83172D0E515D3754270AD84543D995C0534788A6786927B952698ABE693BFBB358E9E393151AAC991C97FEC8C55CC407BF027DF7E2A505DB531D47344552321107B651FA4E47D4B389C5825E02CA1F42839ADA4D7EEA2CCB24A74E34672BF1BC4F33C88C3603A3FA6CE87AA5CFE30125F99E81550C19B58A807BA8A586415C2924A6E467CA8BC85A5400F910457E8B9D74A11E2668C0F1A2A1D0389361D09900EC6671206139380EBF9390B2401555BA0A57FCA36D2742F569A573096A2B442C5992C3FB65271479291F097CB94589FA15BF73CB9319D93860EACF1CD1BF7D380E03587CE3FAAEB6360D79574803B5C49841B74918768EFB518CA46B26929F68639EB8FA9F73E61A8B69B004CB5D9D92CF0DAC9ABC03171444A03409714DC1514931182701C19E242AE73B465AF335C8D3588FF468346ABF76604B6EF887A7EB8E8B44005BB55AF328155AF7928C732E7805010CF0A50EC68E29ACCCEBC4A39E2ACA10084E2543746BE6C81D482F6F3C1FE0D31C6A69329D783A1BFA0B43E289A2F843C71196809CA4B82C75C59C7AA5D311350AA55E89735D9C34E6982D17C033937253D9778CA31A14A9894C5D801415056552C410484970CF2AC86B374644A37976EC4A123C0603CCC01C6C6E994514F13885BCEB2F8B0A57073E0F3130DACA54C038DC1085402160513337AF2B6DD900B04DC3BDFCC90BDBDA43CAE3C4DA51D69A57EB87094A03CD3A9C3E6B4ED864CC691A60F0509CC646E39CC6C99EE6FD8653D15505A6C2A713D41B43FA521CFB214E8D1B38440F4640\nencap_coins = CA41A891E8B3CF62F7CF5E356FA7705DCF26478B2CF2561A0DE208DC06C02059\nct = 31C8EAB2B3CC9DCC6239B441F672516DE0EA74ECACC9C969F0265D95D4B961FF86E52B13E7C35A41EB30CA90B93AED0C9D44D5D9974DE3F9A857391FE5AAA9995C6C245A5A43D152F551781C879FA9F104AF1C7203438A8588E9F5C6BB76F368A2F376DFA6F18DA1B75A05C9DD1924B4F96B1198EC4B318DE939B719F5BBDEF86BF84F38CAB63195A3EF1BFAD58F035BE8F3D5207847075154CC6819FC4D646D067684564DE74634751583DCD4189A59685E206A30B8BECAC347F9DBF1E00C9934E15B76362245CEBA5A11DEBF7D5CE958E4EF57A999454869CB3CD4B3D13751BE5653BFBE87E9C8BC3EFE4E019CECA26B2F073146ADAB9F0E9944D1BE094831E9070E943FE65462C3F24EBF338D765A19912AD7CFD6E6DC0384A6F3FFE77DA6BCC581EDA4829D450023C8F2314AAA501F7835816F4746D1681FDDBCF612E40439FAC48FCE20D2B46245D921270F4C920807A7EA63F5067EB0D5E8055AE68C7896B7F21E59011C63F4386D2E55D00DC84A6B101EA61A5164F87FB87D60EA0BCB7598BDF6194799A56494991B26ADB20FB3BBD4103C32D06DA9C387FD90303D2264AC109BD9A938D4F98861FE9C32857085FF9B525E4E2B310033882AEC6D95DA98B3438D510F8704DACD441DEE6D61002A357FA8C2DB3DCFAF6BC7BB9E4C1884FAA33C2806D711C7AAFDE01B99BBF043B9C594684DF9A8DBC1571CE1C565F8C0ABC6C60CBBA2C255344234EB0E1A9ACC0C1710B816D13F64890E1CB8C383F9E40F509EE98CD7F1A209E18CA8E7984BE00C802CBF0EB0DA5E770FFBA225421FD77B16E2F730EACCE9CA324020ECD994B82A8ED719110AFDC5F6E9123D350DF25EFCC0DC737C4E7B7DBD69AEB22756F82C1CD845AC0BE3997893E33E99D837E19C57DC57563514B86019BC4F9B7055881B2F249DFC5894D859E04370AE0F61E12F24EC0CFE04D55EDC69203084FE74BC273206DDB29C4C2C8712F5EED59131C321FCEF0F16A6F6962836A24D1E1BCF97941E6801B1A31DAB34C8531037BB0C8F563C05D15BE20B62B507AF36DF40F9A1A0D10D6AB981B38A2F34D346452CC02F40266F7641E01FD8BA4C0D936F9071CE7E8539BB0A64D6E674CF644AFC3D30E66A4FFF6F1072FDB7FF5E2AD8335DDEA2D7B07331B49461CCC5F8641661C37DA91071BF2A7B5A59DC84636F1E13EA0DE04628926BD352DF77AA24B07C3EA33F3220B04A75E02C99E626FCD7EA9585B22558C7AF7B183E45C529273CF5AB8875A0DE2FACF17E1F64AD343E2C8DB1C45C1FAE2C04B41265120EB274002D5E5F73A460E87B8A35B38B16267709D3CAFFB3EE27E688F2DE3B293950CB70BACC87DA04198AE5EB82D6A13DBECB9794D92D742BE81164E18DDC4B04C9D148A10E28031121AB084C0D251DD3D84E8335C596302521E4D99E06A173F8DECDAF9C08D028CA36AFDEE40365520397319D53D734CA4CD82659343B5C315BACDAD988159A91FBD30826F2A3CAE975B0479BEAF45EE2DC58EDD47A0A0D30D996F1B76FE6A77DC0E9\nss = 3EE950C6975C5E90DC9C53E541453B82CAE8CBEBB102A820C558C84882A94E68\n\ncount = 60\nkeypair_coins = 47CA2B77C5B717F423222C2730CA5CB9C856BC951D01B2B2C80BD76CCB5539B7D55EEB68870B6DF148654F14EB4B3AE9084B40F8B5CBC83FF4C419DBBACBD190\npk = A20C8DA5745F754B89A990746EF771CF07A6D8109998936B282757F344A1B00B851EAAC27A9A7FBF480D44262868542128461598B5597B10CD3A2A26E3F941A9A4719AB2033FA1181ED08E3247BDD396A834E43F5700522CB307FF4B150BBA9D8B6AAB47361A7947B7A04B8D923202AB1A3D6644BE06BC6C1E0735D5D92821C5B8E9B9A83C343D0C456B181B6FA566B0E83602428B6CD33405A95ABB623A73299C5B4550A7D6C31D6EF81473489BBE457E744B5D1E39AB74D8A051951ABD01A6CFF3942A102A33080327437635C1C17966834340C26654A3F38616E5EACB0E489141B14E9D1B15B7FB30927715273547999B93EA2A1CA2189F5645CC4889943F3CCD95496B71F392F78A82AA1A21D66382C37154323C0616804F50125D6B0698E5DCA3E2D5658CE153BBF57E4B1908C92587B8C863FF4872E9E1963AE6C971C6AC3932BC974B9F15E5743EC069ED203C3624A022F9A7420BA951425A432B46C5E8BB666091D6F223E357CE96C55BF067B3C3F51ABE70ABD85A73A42233800853031313AE9971D280B3AED18489E75CDC16CBB3EBC95A8C97A768AAA6C0BB0DA7943037BF2B4A523E33ABF669C262941F326B11EC6BC8EF51B0666268D6D433B5190BB6996F65925A7EB0761EAB6906178BE9A923D1C61C0B7683CEA681648C44608217D6DC86441A8F423A9D1C288B32EBCD049C15EC151E256A322EE79E2C689A23A53B8D473F4C643AEDC646401761A7B75F7BD4145E837B756003BAB223FF1A74FEACC2E449B5DD9B5777D62FF0E20E4B395821474AB428AA2EA219BFA169B95039616598DAE0B9282C69CE329B534BC7AEA58E17467B1348B1AB2A031324BF835C985371B0F53877DCA53570199B23BC4D70A9425A32B54749082E794E10012E9B458205E106DA807C03AC3202A4350050815487626BD018706C69A6AB02FCB92621114A16CACFBEA02AEC424F82FB874800C61CC", + "23BC6618ED75674A70A6C43C4068E2A7C9723A054967E4DAB09F337695BBB01053A7C5DBC764A0856D2B75DD4A94A9898AF8B95A62B487EC7FA9F00AB75325C9AB8248F1DB65FD7661DFB0B8EECDC2A4134103380988758379D0A73B0F348B00B4B13B115E74674AAAC2BA8C2A7FF440340B622B5C0BCE05CB601259913C488FEE540D7C058A28A0C28B856EA800D26A6A26F8BCDE7D78298314CEA6056B00A845321A245949A8C7C98D9F8821F1264C658A8061A3014249B7E522D586A54AD7A12AD805544247D74058BC9AC0F603A44AC5199BFFB69C1570C4076B345064EC00C5AE0D6A2308947593A84DDB6133BA40577B7B245C20B5D04C5D08281CA0AA10DA2A358386D2A4C048C89A2402C9150A7419C0A1AA17562FE786F00486DC82A9809DAB08F7B16D9432981087B6741269424598EAA99082525D5DB0DEAF1B96F55B41EE209F57ACEB895BABC38828B712724204744834303C496B7171FC458534F46892627AE54800FE6F11D06B6AF2B6B9259144F769B1F16C0586C9CAF01F8491251907FD213AA6C0BCE5B08F060124FB99822D964C502AC49C16CE9FB17EB0C91AF559947C056AF77CA687C4F675C89BE35AAE91584CF82202734379B56784FC5CE56E3852D89B052367D9A5D375D06EC7863E051CB44929F17A4656A2CB2C58D8D457897A1AA0D\nsk = CA481DB6775F3D276A56CA0E60CA79BE147E63B6898F4B814C69A06F55111C9824CBC1C109A01A7BAA259DA651A1A51D60BB358432550BC1AA1CF3656E0667D726C69A39AE564BB99162C824634B8B8A706D82175BD9657EC09A308B51A3B429822667A5135FE4350A8B3CA10E8B03B6DA0BBD616CEEC0A08476909C6182EF0314B284CC3F43C337307FACF7B617348779D7493AE0A25D415124BC5D9134182169238CEA1A46A3001A8165713A3E5C16AE03A477207B99C2CC674FCBB14CA439FCC3032E4C2F1E92841D73859C76CFBE245193816D87C12BB3F12763174997760D6887A429A37F78C32CC1AC8FACC587AA235821C254A2341B7C6BCF8B52C908836B67D39D63458AFA9530FC2748DE4A698AF346F8B5405DC7B43B05953554021AF73C585B6EF248C07ED23116BAA18C845571823D25CBAE0AF57D4F6AB2473B5919CBABDD7B4CCCC1BE89150CFC585953389172590EDD61C3885446B500495247AED57A9FB1140CEB6B29F7F9A9F524106D8CADA3432C12468F9BFB9A50B920CDE85654C25249350F6760293DDAA28C771963497C4C5230C05862A4391330F54CADC3B0C92B9798F5BDF8B21016725AC8F565466464C2033872684608111248FCCF94C61337EB6B1A9017E342C29EB2B148936119797FDB2757BEF51A9A2601A00C6F0547B1831B1CA1118CD2E1CDD601A0B491C588CB5ED88AC36AE183848B9F87264CC5B020B2E965E5B89FF74C58CD2B338177BF1350AFDA9A74516A5845381E5FE132B4089506E8CDE6346FCC760759592345927C5C6A97045B0AD3973E806778759B35988953C80B3E7574B7CAA225C744372EE3042E07CCE978A3F964395D40176AAB7905A4BBA98250F594C5A96BAC41851E09F897DF0376A89516040C1F8FCCB93D44AB474C56913826C9E2171EF67510B53EB31153FC028B3625AA7A353BBE79CC76D393E209115DD00B5D6C98F80101705544604351CDB87715618343BC3FA227C1E9FA1EA3989390B02C59EC9174E5165239427592A2D973774CA62DBD9410164BCFD95834C11621F7DA54DC55C44C594785FB0016448F2CC39A05E01D8581658A2410CAA630347C3F0F6C86F344816BD13B3A04313A730F2DE9BB50659B642353F6463D2E2A1A78B722287616CDC266B01098B3544632152DB3B23938D67C63E51949496E13182326D5B7D70B81D90CC6C5D84D4E5907833A7A76D3850AC4993A696C4B210DCF352A32B4C83DC9114305308129BB4FF73A91D733303BCA92FC0083D95D32CA54557A6FF3C42C2BAB46FF913E1D39BA3F6092E30AB47F9985C7C439448C92B245259D388E291C04DE427F378011CA983B21B2BA8BEA9D6EB36001AC4FA5061EE1670066F9252524848973782774CFA795A2285A2669515D4FDA7093BC54439753FB6B4E6B781EEFF574155B2438E074B332417D751EAB1BA1475436E8FC1B670C3928A3553D2BCFD1A59C46EA2542884F91F98A38D42ECC026EBCF91258ACC99A50AE1EDC88B90C98B74C3961B70759F39B3C20175FA80386376CDE2B66DFF213151B800921AB6932B45B720932A540C79CCA0EACA0A9D5BC841C3ACF3C08096C0446326114F05CB09745EBB986DDB76913FAA6A20C8DA5745F754B89A990746EF771CF07A6D8109998936B282757F344A1B00B851EAAC27A9A7FBF480D44262868542128461598B5597B10CD3A2A26E3F941A9A4719AB2033FA1181ED08E3247BDD396A834E43F5700522CB307FF4B150BBA9D8B6AAB47361A7947B7A04B8D923202AB1A3D6644BE06BC6C1E0735D5D92821C5B8E9B9A83C343D0C456B181B6FA566B0E83602428B6CD33405A95ABB623A73299C5B4550A7D6C31D6EF81473489BBE457E744B5D1E39AB74D8A051951ABD01A6CFF3942A102A33080327437635C1C17966834340C26654A3F38616E5EACB0E489141B14E9D1B15B7FB30927715273547999B93EA2A1CA2189F5645CC4889943F3CCD95496B71F392F78A82AA1A21D66382C37154323C0616804F50125D6B0698E5DCA3E2D5658CE153BBF57E4B1908C92587B8C863FF4872E9E1963AE6C971C6AC3932BC974B9F15E5743EC069ED203C3624A022F9A7420BA951425A432B46C5E8BB666091D6F223E357CE96C55BF067B3C3F51ABE70ABD85A73A42233800853031313AE9971D280B3AED18489E75CDC16CBB3EBC95A8C97A768AAA6C0BB0DA7943037BF2B4A523E33ABF669C262941F326B11EC6BC8EF51B0666268D6D433B5190BB6996F65925A7EB0761EAB6906178BE9A923D1C61C0B7683CEA681648C44608217D6DC86441A8F423A9D1C288B32EBCD049C15EC151E256A322EE79E2C689A23A53B8D473F4C643AEDC646401761A7B75F7BD4145E837B756003BAB223FF1A74FEACC2E449B5DD9B5777D62FF0E20E4B395821474AB428AA2EA219BFA169B95039616598DAE0B9282C69CE329B534BC7AEA58E17467B1348B1AB2A031324BF835C985371B0F53877DCA53570199B23BC4D70A9425A32B54749082E794E10012E9B458205E106DA807C03AC3202A4350050815487626BD018706C69A6AB02FCB92621114A16CACFBEA02AEC424F82FB874800C61CC23BC6618ED75674A70A6C43C4068E2A7C9723A054967E4DAB09F337695BBB01053A7C5DBC764A0856D2B75DD4A94A9898AF8B95A62B487EC7FA9F00AB75325C9AB8248F1DB65FD7661DFB0B8EECDC2A4134103380988758379D0A73B0F348B00B4B13B115E74674AAAC2BA8C2A7FF440340B622B5C0BCE05CB601259913C488FEE540D7C058A28A0C28B856EA800D26A6A26F8BCDE7D78298314CEA6056B00A845321A245949A8C7C98D9F8821F1264C658A8061A3014249B7E522D586A54AD7A12AD805544247D74058BC9AC0F603A44AC5199BFFB69C1570C4076B345064EC00C5AE0D6A2308947593A84DDB6133BA40577B7B245C20B5D04C5D08281CA0AA10DA2A358386D2A4C048C89A2402C9150A7419C0A1AA17562FE786F00486DC82A9809DAB08F7B16D9432981087B6741269424598EAA99082525D5DB0DEAF1B96F55B41EE209F57ACEB895BABC38828B712724204744834303C496B7171FC458534F46892627AE54800FE6F11D06B6AF2B6B9259144F769B1F16C0586C9CAF01F8491251907FD213AA6C0BCE5B08F060124FB99822D964C502AC49C16CE9FB17EB0C91AF559947C056AF77CA687C4F675C89BE35AAE91584CF82202734379B56784FC5CE56E3852D89B052367D9A5D375D06EC7863E051CB44929F17A4656A2CB2C58D8D457897A1AA0D6533C524A32345EEFDADC74A3C6AD7E981832797FAF1068955B79F118DFF9358D55EEB68870B6DF148654F14EB4B3AE9084B40F8B5CBC83FF4C419DBBACBD190\nencap_coins = 7343358FD131BC289BAEC8EBFCAC5C52C29A86C89F8A2B89C695D8A9A7AFD491\nct = F485CB73A987E05ADB9C743381F155EF4FD49F5EDC31DE396EB2931318ADD019F830EF7CE5C86AE2067C7E0F01CFEDCDDE2E4F804628AC682EDFCA9213378A4965C3E5A3E68BEDD2E8E65A84426F86D1F182A028F11AF07F2A4DF44BA1798789E7D96BB8AA60F270D177FE111667BD2E77ACB4FB5A27CDDB7DC92E6E359F4A056CA261F9B8034CC3D6FD43FC15293E3C8B746415E667BB7042EF16281C96F4A5BFB0F6AC04B7C9CD2338F14DB73790B8B93E119E388250903A1B2FF765D039BE171B640D186B4330F8E0FEA18886D1C4DABA4C3A5E93EECB087E5A4AB250CC0E91BCA6613FB3AC210795E5BD731FC932016F1D29929631DD9AE03F699F200B3C1E600B22D234D8DE1A1B12668A20773D8DCBD4A60FBBE66FB7BF8922649F922D1A133F7C35433B5E72EDFEBA501E50D7E0F88EFFF50C284D441A864636035A09DE1D7C62B4160CBA6FEF15155CED41585EDDC4B0312E44C7CC907560B439FB303A2A79CA6DD5ECAA02A978C76E2B9A71973A2E7A8E75AE55758CF63659891A4720AAEDB3BB22D9A7E6FACAF41DDD84194283AF8F2977A606F5710A49A7127C2D50F627261CBEA0FE18DF36EA4A8813CC148C2193550F817EEB96E340D90BE782FB35BACB2D0EDFBFDDE1B2E5F82521E9A53C422F8308BCAB8BF8F95E3DFCEAB6A6DE6C366127F97E29F529382EC4C9C40D378C254EE0E53E81BC2C1D1D1D31B50072CB7CE6BBC6B7AE2DDB63DEEDD8E1A9B4D622F49C191396733FF07B11B539B6A3B7607F20EFF6F2A672927E00654DE97A7ABECB0FD53C425F3A600EE8863EE0DE773C3F03DF2D4395194E9B236E616E51967D630B915545B09B9F5C8EDB5EED9DA8AE628082507D5B49930D14A44DC0337F0942F18A0750F787458107C3FA6368137B237B3338522A247A17359F2D0D8D7A722FAC2B3AA6683763B95BF065B8A86ECDF51BF2B73D001A8BEF8083A21EC44C130E4F21F643EC0AF60754542C0E22EAE05E5FDE0F933765CEEACC351D982D6EA939670144C136DF840DD51AD7C2EFB74811883C88A14651900090381022837946CC3F27A892F2950DF37ED7E623816E498E0AA096C1462B2BCEB267B48976C9B0F0CECB41B1AA0A918C980D0E48F0996618FAD8069FC01257D4EE6B7F2F6FDE3668B4BB8D95BB7FC19B98CB80CEDFC2A3A502636BED54A6252B9A65952ED8017A77857C1DFA1A6365D715D222703C2BC282B110E63C4D478E6432E13C82E000544C9B1E8D16FF24AA309DE170937E2570CF6ABC8AE115706C16986BBFCD51D96DA912782044DAE97FF7D52C38AA1469D11801AFDFBE6EAA0296A3A5530149BD8AC55502A78194D53571E90DF716F4741149CEAE4D3ECD3E6711F35AD4A29867EB54ADE12610FBBC07359697A7C88C1D6F0E945F863A3694BE727C8CA6C3FBB46FE81FA3B803BA7B0AFC8BEEB16BE24E4B7D6FA028967E5685FDCA28E8E2A5FAA138C1DC3E8AA5CF5E71C5F53EDE7570E49748C26B22161DE5D6CB7EEAE9438E19ECB2A32B7E514E53DAEBDC7C\nss = 5A020D0F9AC9826CB6D43AC73ACFA6CD978D3A547AD510261090498E05B9C345\n\ncount = 61\nkeypair_coins = AAF6EB40E596A5E3E8218871E708B089240DCBE7FD3641F", + "0E5E41E071CE49107AACC8BE341A319F425312EFF5DACB31E6E772EFADDE7250DB9F613C13B454565\npk = DB55C6CEC7B63C0721AAD84D2B6551FA941167C78A0C105ED9E5300A24BB2C8B2265251A38EC2B9D05A0635B2849A81A2A7C6F2660504D5602FD2763046820CA168D70B76E35B9641CE46A44F2A394F496DC32353C1A84302381E8D74CE4294A4A260A5B0704797567AE831D7C4410593CB7B9AB74D2042C84805C3AEA6EBD193A927C8189082333B3A5E96857E3970BE7DACA4C884D7BB0B3B9C250CB4135D0B8C90AE320DCB3C423E8A6DE79AD594240AE7AA036E320AD8807CCB7A1BC80C704C9532960864A9528347636B4123337DB7E2DE37823C6AE084418FDD05FF7E904211924FE5A370537762DFA012A2153AF96A46987776D245FDCB9434D66AA10524A3CA74E494C9DE919C8E23C3FF77C58CBD1CBAF5B8A69803A32E23959B2A7D9F808689906A0985AEFF5A8464A2AF64BA053A3C18D89B2CAE3814CD712484288ABF7655063C403F635D7A2AFB9D804E2E89677131BBBF7009C981548036726D25F05F004D605A24B7C2BCCC4294F065C013C8ECB242D25611B5C82BCABEB9E578758F2F3AD3F087BB6813DB1F3990C867A2E679F47F074FD012E87B3B6F51CB1707B9287D99FDBF43C8E58940109C376789E16C4A30B6BC34C870364192C555B81AF58962AE771DF477FF421A9B46C6E64BACD1A8A6D00DA4D9507212C910ED2C62D199C7E330A11982C514F27AAC092A5216B13AD54BEEBAA4049065A68D8CE9B1C969EA01599A71D633197BC33C2F6F958F72CCF14C7C09D973770F170F1F7BB9E458A00936D8677717F4A17655BC7A7EC56119779F7AA391D2356AE3A97D7CA04971CC2515154E148568C176A659A8DECBB2C5C449CCD914D3CB7431CB3A0A400A8C7B59B1CC770C5BB5B64E0932C61783C9979D6CBAC042216A0CC5800EA160C8C8556E0721D610FCE13992396C382E93BAD1514D780CEE046525C443FAE063C5882A01E5A73658A30864B1D6344A6CC46729BAB7810C46F5B480D309A263E30461769A55A2965BA6BA0B44054F211B98C6C2355150ACAB81881E5AC1E561A4BC4B39F9902D1027E56155F5D71B7CA67415185319BA769F88345611CA2C20B233DCACA9DDBA42EDB204576BD028A79BFCA57C9DBB0A54B933C970DE35032B9B51D00C9922ABB5106897CB896065FCA846AA486D9C27F5B616E99EA0ADA711729B75D86669645B9A223959B3C1C2F3AB6536D74295473C4C055AEF8C2CD2D321E9E73CBB872698B3A60667BC768014332083139D08C321157CFF1481F259ED56A7A3FF1717BB64FC951297C709A4AE3C05FE3910D6507AC947F944B970070570FDC9843A8A5BA564141F80F1654766F93048BE6297A1CB76C105A7BA3ADA06A42ED1AB3C17542201712F11824766C07BF14685AB0A9F69A15AD6574E59709D2411B37B509DE3B7FE5E8B0AC65922DF23E680C33141418F9551660467ACCC0C794A67CC530A5B130B4CF1C28747601D26983764ACBDDD30E42EB96125956A5870142574419977209A12E09AB3C5E8A22C1C5252527C90987A816B8830A757EC44B12E2E2BCBF19097D02B19AE47CC7BC99189370A1AACEF36415DED82FA7A63BE809B515F79F06612DABCA5768201C59E2C92EBA6D13B72C31648EE1D504EC3E89C8D796E77FA9A772499AEC973B63E864CE36A29DE99ECEC9695D12112C\nsk = 90D7129B79C095B3063F53058A4BAA74C262A99C822894254A050409215FE67773C26C7A6DCC739D8406A6055B388204604C7B065C0CDCCC16FA880858A36D6200C6CEC473BF81B245E09C6E5A55A8D8314334C23DC14FD6A9C011A2CA93753AFA8609320B1D01FB9A2A4263DDEAB8D5A00C40346B8F84AFC7B945F521321103A5219B533F52BEE42256EDD1B9A526013A00CE07D44EBFD66C0BB67775D1ACDE4AADB7C98731931E54F5C458264894971DF5D0CCD93817BB77A2E7D29CE47ABA205C0971F34096280CC725A3C22A4EE24A9938CC2FCD9A670272A463C852EFC04388CA8CE86A8E9F63273AA208610C2274709C55922AD371C197741AF0526218E84C3BCB61355AB94D5C94DCBB4BC08986AC075E01134B4029C8C1D78F829796C1CAB0EA2075BC25B797D82A8E0385EF1094D0A2B1731624308487991A7164D8A507F2390F354B4FA3A225D5A46463145EBB57B98724F1D3CABF11AD4FDC00BFA267D8F3107CEB7DA37C060AA23E247C28AD0069D30681E37807117AB841F23548CAA02212AFBC1BC54297202FA549DEF55DDEB5BA4D10ACE2650511366EBE9C1D61FA9D5574C86C0714AA523CDF946E1FD259148A7E2AB5C21884314E3B8082BC210B5209CCB6B95EAA2EF62203A0B707BF9C5DB1A155169B07D41C0EDB9709744CAAA36622F189773AD7A59DC142317454D9C81D55D1C637876F104B6836A6842B87174290125505461EEA77D63A8DAD03C7941B69D7F66E434922E13A8182FCC35E51C9CE81978E35818504CB32E4A6DFC777227A5484409A38B2A1E2243110E84D024B1FE0E0BB36D4AAC0622152599FEFA177B294BECE391D47553983E420DE5462C72AB588B2934680A399AC40EF35A5E8819458E0A7BED1AFBB29A446ECBCD4E45A50176EE201526E314CDE085AFDA30226039CEB41A14D87256BF566DB30AC77ACB80B29B1F9D602E919707C96863304372A353771E1CE994241A12369FBF42BCB4315592724CD5085A589B1B4CA46DC49CD65A1247178151E455741C8B5D7C9CAFCB75BF27A5B4ED05B22E932B1E3BFB0C93248400E5485486E0C39FD5CCEC680C78E6137BE96823DECA37C6306D31C9142FC03EC540AC0120EBBE9BD5237583E1972D0C4676708AD35B559FB89BD872428A3E0504350451DD65F58BCB292C0BA437394DAE55E6DF13A8F41827939016A081935D1788C4807A53A011B89528FB60F386632E725B163E83E105324C3914F26F389DAC199A926A25A02624D9A530BF0AFAFA4C5FFE6A5EF9422E422019FF337D1BC2FE16A07D9A046D183137D477DDA378E17A95FC7E02ECDDC0D551724A4F36EE7648C9AA771BD15AE29B7259ABB63D0983917156EDE6557BE445735EC539B2199F9816C562842627CC83BCAA659075F5179ABDD1A7056D27F7DD96A6813A940A9321CFB1946E95C16836EF028106BC26A3EE450D8E569EEB23B70722BCBF828821648B1668E6E47869AFB16C0E4B827C4CEC3C4C9948A6C7F874968DC80160A811CD06D58A885D033210341A6F7907F53A82C98468F6BDB7CC7A60107973DB0E70F9A387673234D6665019676215EE4597C65A13A2636CEE74266F373A4E48BB1DB019BF44EBFB0A5DB55C6CEC7B63C0721AAD84D2B6551FA941167C78A0C105ED9E5300A24BB2C8B2265251A38EC2B9D05A0635B2849A81A2A7C6F2660504D5602FD2763046820CA168D70B76E35B9641CE46A44F2A394F496DC32353C1A84302381E8D74CE4294A4A260A5B0704797567AE831D7C4410593CB7B9AB74D2042C84805C3AEA6EBD193A927C8189082333B3A5E96857E3970BE7DACA4C884D7BB0B3B9C250CB4135D0B8C90AE320DCB3C423E8A6DE79AD594240AE7AA036E320AD8807CCB7A1BC80C704C9532960864A9528347636B4123337DB7E2DE37823C6AE084418FDD05FF7E904211924FE5A370537762DFA012A2153AF96A46987776D245FDCB9434D66AA10524A3CA74E494C9DE919C8E23C3FF77C58CBD1CBAF5B8A69803A32E23959B2A7D9F808689906A0985AEFF5A8464A2AF64BA053A3C18D89B2CAE3814CD712484288ABF7655063C403F635D7A2AFB9D804E2E89677131BBBF7009C981548036726D25F05F004D605A24B7C2BCCC4294F065C013C8ECB242D25611B5C82BCABEB9E578758F2F3AD3F087BB6813DB1F3990C867A2E679F47F074FD012E87B3B6F51CB1707B9287D99FDBF43C8E58940109C376789E16C4A30B6BC34C870364192C555B81AF58962AE771DF477FF421A9B46C6E64BACD1A8A6D00DA4D9507212C910ED2C62D199C7E330A11982C514F27AAC092A5216B13AD54BEEBAA4049065A68D8CE9B1C969EA01599A71D633197BC33C2F6F958F72CCF14C7C09D973770F170F1F7BB9E458A00936D8677717F4A17655BC7A7EC56119779F7AA391D2356AE3A97D7CA04971CC2515154E148568C176A659A8DECBB2C5C449CCD914D3CB7431CB3A0A400A8C7B59B1CC770C5BB5B64E0932C61783C9979D6CBAC042216A0CC5800EA160C8C8556E0721D610FCE13992396C382E93BAD1514D780CEE046525C443FAE063C5882A01E5A73658A30864B1D6344A6CC46729BAB7810C46F5B480D309A263E30461769A55A2965BA6BA0B44054F211B98C6C2355150ACAB81881E5AC1E561A4BC4B39F9902D1027E56155F5D71B7CA67415185319BA769F88345611CA2C20B233DCACA9DDBA42EDB204576BD028A79BFCA57C9DBB0A54B933C970DE35032B9B51D00C9922ABB5106897CB896065FCA846AA486D9C27F5B616E99EA0ADA711729B75D86669645B9A223959B3C1C2F3AB6536D74295473C4C055AEF8C2CD2D321E9E73CBB872698B3A60667BC768014332083139D08C321157CFF1481F259ED56A7A3FF1717BB64FC951297C709A4AE3C05FE3910D6507AC947F944B970070570FDC9843A8A5BA564141F80F1654766F93048BE6297A1CB76C105A7BA3ADA06A42ED1AB3C17542201712F11824766C07BF14685AB0A9F69A15AD6574E59709D2411B37B509DE3B7FE5E8B0AC65922DF23E680C33141418F9551660467ACCC0C794A67CC530A5B130B4CF1C28747601D26983764ACBDDD30E42EB96125956A5870142574419977209A12E09AB3C5E8A22C1C5252527C90987A816B8830A757EC44B12E2E2BCBF19097D02B19AE47CC7BC99189370A1AACEF36415DED82FA7A63BE809B515F79F06612DABCA5768201C59E2C92EBA6D13B72C31648EE1D504EC3E89C8D796E77FA9A772499AEC973B63E864CE36A29DE99ECEC9695D12112CE2F60F27DA7F318EB94A74B437F8E0BC9513E9BCC38DAD99C174C1D75E0145F1AACC8BE341A319F425312EFF5DACB31E6E772EFADDE7250DB9F613C13B454565\nencap_coins = 1BEAAD495CE5DA859511454A6E6D84C3A3E0D73BAE4CB1CF8EE16AA1539D37D6\nct = 891AB1AA2E5F63F7ED733A36D3FB1685A6393CF9C6D59F67F7E3D47EE3B7B43623E5D8C4B94567F39C83F7878675AF4737D5D78FB3CCDFE49D9BACE581E0CEF8D82DB2197C90B022BC761AB9FCE1B7A52EC2343F5021BA90494569C5FBB6B1F80972904286E135A6FACFFA91DCF5B86D03A4752D920BA32CD48D538B38E86904ECD6A04D0F0C6B5EBD4E6CBB613044DA6E7AC65B13E289EE069819B34DA78978875B574C2DE7BF205073BB1ADD7AE88BA094D96E26230FAB458EAD69D7AC8E6DE89AD6795BB30F2EF077A6C47125AD2E7DF75323F360FF4F2F228D33A6205C767F08DAFABAA1E96B05F1A60FCE2D3D48AC6D8E1DE772D6F4D0E0F9DADC5D5F2D11F1BE12AEEC41CA19FF7C48FD027A287AC3D26C904E2B67398CC5F8836E16100411F16CC088E2189EF62B5B2376DF1FF945E7434E167ABB3177AC8016BBA1EB211CD1BFEA8A3641E560D4EBF6CDFD8816E1A59756B4D89EE2AA51067A0E07F5D77058D397CE568E1A9FFB4BB14FB951F52CEC22442E48C57E0BD871CB798072E1B171D4C7E691E6A58508E871A64612BD90FB2383E4ECEB81D8ED0EF91FB2E574770DB7546427", + "850095DA514A078A41100773D80B83D956C6F5EBE53990E6EC834E59C878A53B6D47242F54B7B6297B942126625C1149CB1CB10FF3FA6DD5ABB5E34C87FB192873E18CACE7CF0B866CEA5F2388395233BB403F8D81AD4F9D284EFF72632FA45A2EB3D9EBC7C6D65295BFB73BCDBCFABA19B6044328CA2AC954755A1D25830478EC043A9CB80FDAE3E3870642DEA3E954C6393D4DBEC2BD5765380DD92BD5AF15672CC2A4A047731D0C0AF9B9F83CAF17E414A04F165D0AFF3D6FA1EC8135048E170551EBF106B6AE0EA71BE710898EBFEA9B9B8D1D97741384C2919779D0450D320727858A44D3248F0B1DDB4C694FD79B035AC7D293B4EE0CBDC41B350CD33816CFBC2991F26AFD3E2312E91D5415E3E68A90C4529CA65664D79AD79A9FA947BD407A028831CBE2BBE5C3DF475FCE34444B4C97F743B68948594D9A5F116F36B42CAF656E30E2524F7C52C45E1E9727E1509FBB85DD904B1C663011E482B3AB95B957D5B3586A519F7B215101758B9295C6C1EC2EC8D68B22EE91D296E93E6DA4BC9B045A31779242060B657486A43EB716C17332E8ACA5103ABAD2A48C85C811A03F01AFF9006D1B839E2F1E5AE34085CC60FF2D3A6CA7D05E04EFD81B25BAAB48C4271C591FB3E146DA4FC7BC80A349DA8550C058D4432423F81257C4DD90E9DE0621F171A7A32B8065D72FDC90BFE1CDD2FD4D786696F66EC417C239B5FAFEEF1A2559A3C8BC48278AF703844E7BB3DF0CDC1B85C0255772B83791065F9FC28CACE53C61136C762D1DDBA519D7CE02DF0DF83D3F2EAD10FA2B11DBDD3444DFA0DDDD3E912B7242778514C0E2045B5DB0AF6517B5DD24555223816A523B66461C5FC9D6FD8A9A394A8432AEBCD5FE9D342CA3667D49A53DB1840CA81B0B3E12D313C9F1873F8D637AF3BD60C459F29FC12B207BEBA27579\nss = 6EBE495E409B039E504A06A0EE6FEC60AE49C05CED0413E6DF59BB74945A4543\n\ncount = 62\nkeypair_coins = 6500F32C93415CFDBC0BD31D78D5BE95CB9060C8CFA2013955B56F8B6868B3222779ABA933159A5AA043E2FBE31B14D2E56F93E83763E19787607196101D3F26\npk = 7A2912329482F244226AE33507BA8FC8366736352380B346CA39A936190F09576C5188C5E82315E3532F34D41F1B50BCCC42C1138802CCD5B50A7846FFA7BCADD91FE757AB7FE30E873BA233E13B21D25461030593433F4F66482D94B916AA8D1B4B8D6786926E9364CB579F52236218F199C3925142B53500291A3164516FABB941F98F0DAAA1E2D619C9622D649A0408AC02D5CCB9B787C1F9B196DA37020E362ECDBAB03CCCB63B659C6347104074B1F8254499C8452364726B1294669A3A24AC8B487752175B30CBA68860184D5F78B845B107BEBA80F8750475D059DAD57CAF827878B926FACBC00B54388F24B7B431347E334FFA046C45E234124C958CF66023DCA620E1400CD5C08B89554A474D7D04086E5CBD0D051C03C4580D3442A575255C833026BC19DD301A70367FED300EF27779D2A49819A370519C7FC404ACB3FA441A931C67A3033799519C883BEA134242F35F92393DC134BCE15713DDB33E252B991AF10C7134A8ACD09408C8CB2ADA36BBC25224E8867A4138ED9B4DAF403A477321614B3EE5C7BC2281441936B0B05513C1525421871D007346BCF52D6E09B756B4529BB5480AA3165E617CEF41720167707F35A4415975A62114C7918AD83BBD8905A283D14D22B2400CB29FB1E102562CBEE5A9C10929229F8C60A4B153C430A361812E75B244E4C3954A945459F735D45572E83B505030C13867C720567FD681C539D7094F5558DC5A86DA79B38049B0A45A1259713AF2C1640EE0279BB7191F0C0EC59C2F91184CA70A2E8B7576CE493E32F2C549C4BAD6C925039C4C57114075281AC7631FF4D94EE0723C3400CB2D73C184489AA5B440AD470CDE548F2F70903D08B9B4CB6DB68A5D4FBB049A5A9727F50F9E6C59295C62BED7182CA96D6093578DD014F7EB0B121AC6FAF917FA9B47F6650C6C7336D8848DEDB92A0F70971E456E9AE625CFE266B1000C4EA6252DE1CE20C014BC161FEF405FF327CDDDA37BE4919C2A0C097D6995B0EB743FF66A548307CEE1080A13841ED12333E62EFF081514A5915022C550C6021A27889BB0421DF3A709AB2F9F3B0C0F6019FA8810CE3A9C37F53CD651ACB4E5BC1D8B231F373B7A4CA6723A9710681016943F29697B09F6ABFC1C60E8FC4C201A9AB05C260D2452C83B88423B904DF74F425A9B4D116DE0D059D96779D61017C2E984C2BCCD6159C82DFA5AE7BC63E59304B1105CA054A71D753E7E583742E715BFECC80E51245FF53C16854AE0AB41C581402221CC8834A5F4556A84C19F6172C7C80C759299A42C71BD67040A29185A45C14B91B56A4AF9178E0BBB0C4C197549B5C9765A8874686C63445DEA7A85D43AC4D0B979B4CA13A80BF8DB634A163FE3F4327210A7A128716B9805BC1920DD322B15C74FC722A126069ABB8C95BD090F84497D832A1AB72358D4193B6542BFD627A139374404DC1998416F46054D1B4B538E778D6D0507FBF5571BD01CE56362164793E58355366495AEC80EEA35463C4044B202451B3604D6AB96ACC3617ACC1015379564D6A5FF1A6AE4D802712A94422A99D90988206776055545172B0282B5162B479D748A2E9D22356AF11DAF2629036665EED0642044B76775CFD9417DDACFDCB371AAEF7ABB3C2CFDCA88891DBF808A90028D4F12C57E4985F7\nsk = 0246C2025246911B525E6C3421584BFDBC83D73AB936E76A26236A85215C78DB7DDD010C2E038E3DDA69B5AA2E9F4997D8589BDBF918BE1C046CD518E6958AE6925146009D185B53456B5E16D59257F20CD0F6677535510D02602D5BA5B61C440FA07FABB1B5FBB38437E90522665776892EF205A41A1A2083902648844DC9D65E633266AF871481F036A2888D3FB9901355397F37875A4494777C781EC40478D09A820204A4115701D25A74B4BD91676EA6391FA160617C80CD05B0A80E040CDF22B29978CA55282F2C40316A35433DCC8FF7CCCF4280C0B11C548B5CC08FA45BD0760CE03A02F25689D0F057FAE44CB1574C42E760CB331C2CE4BE16823DBB2870592BA844F30DC407298590A088425E023B856E106437C6074547260A856E648CBA07E51A23E70D7CC65656B4692EC24277F04905C4AEEAAACD36341C705B504CFABA73201C2745AB06B056F1768447981E0D676EC904698EDB230F369190D8C1DADAA5CA59001EE8A68C302F04298DC5700C56B2B577D89CD9A585B239089847CD3E96CA80D928867B27F3657987724FF9031649C246CBCB4673F6CB8544150C9975A13938C89A68CD0B6DE5237FC8D2B7A6BB94E0C0856F00B821636801E9AC84F35276065EE4108BC1D755C1C428566A1CA3762D050458DBC7093567A4465453AB8656272A3C03B4A3C55929271437724471D5D4926109C9792BA49D117813948106D27C33069EB3C40AA8370B79E23F35934AC28666FE72B43F722151F3C26C96CC3B6A40D9E1876E55970F252811070FEFC00D70A009E4871F136A08515AB239C33E2DE638C4260D0C89CFE30B8F8E5927F2C59FEA3947FFD0BD636B10876C3C387C00E15469B42B80BFEB8681DC7715C2B248CA6FED92A9399B72D1023F9507229593BD9BD936A0F6ABBA09BC3367782370B60D9CBD0E8B3D5744101C8CA97EAB822FA4CC399B5BE3195CB1E3C9260030AF60BBE3295C4DE898C502543589142CF48DBC7505EC9A9D93CB6DD4C9678C1CC0A082C5631A255142603DCC01FC07C27D628D89F09B473816B5D5171C18A3F9737BD6D3420D4BCCBD3A5624A2686E54062CE4696E061C83BC2586F1A618639E51E63BC6C64825EB50D4F88334B29145BACC49E28DD564B7A578217FAC230AD00A44F3ACBF8753AA572D66E1AB9198CECDF9BC722455BD267FAF98424EBA4031C3BBEC8298A9388CABC6B3BEEC7A7FBB1C814811117A9D550407C9E6099CEA65ECE641F69454B6A0CA9BF86A3DD472F7C0A7703C6A5B25464C0B091B29258DE673220857878434EA14CF50054FB2E63547E9BE15107BEB7A78CD5C00CBB1462A0347E72B51A15CCB5C333894ABA511295B37C97C7F4C2EB6D97219559B40A67310F457108015AC1B8E3AE15ACF85689C4058EC8A0BB18B75615011F2701BDE8BA70986B39D3368E1F978675A49FBE8509F1239A1C88F1DF4ADF0AC8B68A87E2A403373FB808A7B1192371C7E68B80854B0E4335739090B953A2B67999F9878A32415B78C22289EEAAEFE3298FD38ABEB6ABCF5A55BCA388004E46375A729CC45926A7C3E3BC8B4E2A2B196AABE5651B642C1CB50F666A1BB6DA4D1CCE8C6344356A68DE044214453D03B5C7A2912329482F244226AE33507BA8FC8366736352380B346CA39A936190F09576C5188C5E82315E3532F34D41F1B50BCCC42C1138802CCD5B50A7846FFA7BCADD91FE757AB7FE30E873BA233E13B21D25461030593433F4F66482D94B916AA8D1B4B8D6786926E9364CB579F52236218F199C3925142B53500291A3164516FABB941F98F0DAAA1E2D619C9622D649A0408AC02D5CCB9B787C1F9B196DA37020E362ECDBAB03CCCB63B659C6347104074B1F8254499C8452364726B1294669A3A24AC8B487752175B30CBA68860184D5F78B845B107BEBA80F8750475D059DAD57CAF827878B926FACBC00B54388F24B7B431347E334FFA046C45E234124C958CF66023DCA620E1400CD5C08B89554A474D7D04086E5CBD0D051C03C4580D3442A575255C833026BC19DD301A70367FED300EF27779D2A49819A370519C7FC404ACB3FA441A931C67A3033799519C883BEA134242F35F92393DC134BCE15713DDB33E252B991AF10C7134A8ACD09408C8CB2ADA36BBC25224E8867A4138ED9B4DAF403A477321614B3EE5C7BC2281441936B0B05513C1525421871D007346BCF52D6E09B756B4529BB5480AA3165E617CEF41720167707F35A4415975A62114C7918AD83BBD8905A283D14D22B2400CB29FB1E102562CBEE5A9C10929229F8C60A4B153C430A361812E75B244E4C3954A945459F735D45572E83B505030C13867C720567FD681C539D7094F5558DC5A86DA79B38049B0A45A1259713AF2C1640EE0279BB7191F0C0EC59C2F91184CA70A2E8B7576CE493E32F2C549C4BAD6C925039C4C57114075281AC7631FF4D94EE0723C3400CB2D73C184489AA5B440AD470CDE548F2F70903D08B9B4CB6DB68A5D4FBB049A5A9727F50F9E6C59295C62BED7182CA96D6093578DD014F7EB0B121AC6FAF917FA9B47F6650C6C7336D8848DEDB92A0F70971E456E9AE625CFE266B1000C4EA6252DE1CE20C014BC161FEF405FF327CDDDA37BE4919C2A0C097D6995B0EB743FF66A548307CEE1080A13841ED12333E62EFF081514A5915022C550C6021A27889BB0421DF3A709AB2F9F3B0C0F6019FA8810CE3A9C37F53CD651ACB4E5BC1D8B231F373B7A4CA6723A9710681016943F29697B09F6ABFC1C60E8FC4C201A9AB05C260D2452C83B88423B904DF74F425A9B4D116DE0D059D96779D61017C2E984C2BCCD6159C82DFA5AE7BC63E59304B1105CA054A71D753E7E583742E715BFECC80E51245FF53C16854AE0AB41C581402221CC8834A5F4556A84C19F6172C7C80C759299A42C71BD67040A29185A45C14B91B56A4AF9178E0BBB0C4C197549B5C9765A8874686C63445DEA7A85D43AC4D0B979B4CA13A80BF8DB634", + "A163FE3F4327210A7A128716B9805BC1920DD322B15C74FC722A126069ABB8C95BD090F84497D832A1AB72358D4193B6542BFD627A139374404DC1998416F46054D1B4B538E778D6D0507FBF5571BD01CE56362164793E58355366495AEC80EEA35463C4044B202451B3604D6AB96ACC3617ACC1015379564D6A5FF1A6AE4D802712A94422A99D90988206776055545172B0282B5162B479D748A2E9D22356AF11DAF2629036665EED0642044B76775CFD9417DDACFDCB371AAEF7ABB3C2CFDCA88891DBF808A90028D4F12C57E4985F7D4BF608793939ECBA27DFF5889D4D921C583999A57E20A48085AC549573E6ABF2779ABA933159A5AA043E2FBE31B14D2E56F93E83763E19787607196101D3F26\nencap_coins = D2B388FDF32C5CEB6126F9F28C341D109C1CBC6E69207BD655B969DE1B8F7B0C\nct = A41EF792A8F44ED819360F7D0F77A2E037114339438C1F783D903348D94815271F84A54989B7788E12B0BF69AD494157B3CAEE4FBF412D9C09D4EDAE9C8532D12C0E5E797F0BB52F6F8427E63F08CE8661CA1499F28F3BB084A16828FE07E3B4B60F0C5005FC19C800D7A83C409FCD93764F3F7B3F0580F6831B10555DE762675233CFAC4358110BA7C86970A9253310E3B2CE92ABC9AB92D12334AC80EB0069DB0882F0E9183573CFC918566CF1C2DA068CD23A18F87A286CB364D9AB9012B0D7E0E92CA05D01FA298B40A5423D61EBF9702540F082101FA22891FD4BBCE0152DCC303A4B010F31A08F1F585895AEF5EC53B81F3233ABB6494B94521252030A8B210E840CA52B4C01602CC717B15271D32711E5F137E5A39C5E72EE53E68C15C2082B4515D0FDEDBC69525CD33C6645AE99BF0D00F52B43AF6E80D7B6DD3C512C9FFFB75DD942158A6CBC471CDBC25BA7F177453F7A611984DA3161496907C38C1D90D7FE02EE3074A26D3F54ADD7E116BFD6D73ADE5F41B27FC96FE74263E0AF87B62EE883D2CA98CB1465885F64A5456E8F32651BEB723D3A1A6569D724642B2A6F088AF4F226EF90C6A6684E1D640DBD2A117923634589A3DE374D0D8840122F7B18F5BD222557D1388013D601B1EE518BD17F7A19951190CDF70CACDCA6C0860918FA3698FD32DB2C95F1E212690A26DD6553C1ACC3275141B231468953EA282CE6420C46302C897F0668FE4C9A1678DB70C76D3EF4F2DA2AA1BA0FF04B82B463105FB21CC207AF6BD5DAD3B51F03DC48CFB29D1327076530C2E51C972DDF3FBB8B88F91D62CE74C02C7D6A1095409B81C004F034FC19FEBE99222814A1D54D742487E31383779499B78516E960A8FE60029D417D210B61587C4ACD34DA8E2454EFCB06461F878363C6369BEAC64A28D61D9B3BB17A0824A250BFC44C414C01A97273D98B7873FFD4E74398E263A2A6B0D1CC64524D437539C4FA8DEA2280FFB466B461E9227FE333804BB84EEE75FB01807559F11A7EE688403AD4FF9693B354CBF95C9CE4FEE182315111567C9F697966BF4C84BD0D394F6BC2E6BC0B0A9320A3F5AF8DEB5A0A18E8FF70CB4674FA611516C53940C98FF240F51AE887A13493D22E9C9BC66081D7A608BFE0BE44A34907B7066B351B299B3EF3BD9D7F316891D79972C65A7D973F2E67FF0EA3471E2E5C066B19D08E66DCBD59E180581C9B4ED6DBD9C2200991B33A4E0E35732E0CADB11B535FF573706B47A3F015B3CE1C5BE6E963679058CE3B2B6F841F6178ADE0FBD962EFDA97A13CB51E8A7635329EB3F516116251FE49D7F11C260D28A54A5D758CDA90A7090C76821252D2D8355D0AA604D4BF8F3C1D04B19E302208F0A4F92136B6C6687AB32A8B7A6E084D0706BFD349BF1AA9D2327D978865FC88D9F86406BF8361A870A3AE3CCF048B748FF00258B843EA19C57DC19411D4DF13E2E70B596641E7ADB385649AE829F4AD9F59F023F961D7D10A94D92FE2E1DE2E03A1C98B56A0C9E7F60A3572F03C277A\nss = 13718DA36873842E229CA5C142FF416F257E160CE7B0B7EC407EE55242ED1811\n\ncount = 63\nkeypair_coins = 7643CEF2D62CC5AAEECF754653EA62294CD2208E5BF3DDEEA209E3DC45373D4992CEDEF206325F68EBC282123EB0AB02874F8A3C6665B78346775351AD99CC3D\npk = 8E892A62437CE84445F2E82B495C9730FAB393DC6F3B36BB2A63759A79AE27B162250076A608522440AC1E04630BA766B4C256341C6AC967B36E6934DC58CDA15621827B9558076361192E89708ED88A71826A20E8EC948B9C7915566C70A7C15A72C36ECC7A3CC644EAE696022657C53500A0F13A8AE50FDFA432D8D2530999275E5B9C1D341FB34B8A5A7421B7D290CBC3218486B555C92572BAC8F1085F058A87FD48796824844553261CA11F06978A03F3A8D68657C22064AF83166280AF52270E004731D20B18982283E51CA3DB7A2679DA6FB0AABA1E75A2D283ADD699A797E1BE93502C6823007BA5B9760A338768615B671BAEDC6A6A6937B9E1C35575776A4A791FEC7751079C6683BA29EA28BAD199175B9629C44BBF219CD88A19F1089AA551946E58032A9C9DFD29BC4CA3B654F494990CC02BBB8E1280B54BA3920EF98903F171C27A5C0FB679C8E84774F22136E89915A534D973733410A96280A3207407235CA0D81A636A35B9DD628DEE9A64A12918D0DC6D4C600989168A163730FAB8C78E61A57970C16C813B791A0EE9F625C438CCD1A9429A93062C4AB38DA5890188829AD116A6F1564A43A2E4F3BBA3712207B65E701995C99B29D691C86BD9844AF2471EB5CECD934F764629DC25839C809432E395FD8582CDA980359246EEF0637B9771FA5853099007F173C8598164DA69C8E67A910A50B9940B213547815E0589326B02FF21B89BC4200219652DEA6CCD59883E29127E2ABE3787738B124D839A67E02195D64989520737E3AA99C6822F2C32249256C45455CBD931A5A1FB27CD56A21E22B51C03217AA387E151631CFA445B2B77EC90AE01828601961ADA8A8E6192104F02BA5064C4EFC27CF2DC3353FC98F34BB947B21EC5235FBA6CAFFB6BC6B1C09A783AB8EF14C4921A28A3896BAC07AE8BA98C117B3624E01ED0496A8C649A38A33FB679BB535A7D1960028CA6C8BA825178E74F0E50B5D74C2A9119B595B863D0375A3DA173C63A03D8C60A8D613CC08064588890E3894A9BF4580704038841526AB84E27CABC8FA4CAD6DBBDE9B53017F100778478B86138FBD6BE713A7E695358538BC4CB5A4FFF531BFF178BB16ACE5A295CA0340985F34267A3A931998B29A36935D3B13AF0631CD37777689CA0B43B9208AFBAB88EF886A8672B331224C66C6086B8B15A8EB86107FC0AE260BF08F970CDEC98ECE9A197751B6996258FFB6DCE05306380770DC63498E9B5D65ACAC5A179D8946B27630525B39C3755C070A120C9F468AB3AA8B1A48848081B888BAAA1156BD600733BE887ABF962C46107C432C34EDCA8E549977D9A6F7EB77EB9974BB353896E8261502820F599257CD9C2852328B0FBC5C2B98658D67E4A636575A46E074A1EFDA2CFA50A0594B0A421661D81D95A9AE0CA1C037532BA7EEAD089961C29765C443D428BF20767D1F08615E85D0C08B0FA5076E297143249283C13486F61A4D9D39780624055D6043120A510D4A686F9B490C74F2DA782AB42157A00991BE019E093A509C0C00B7C1E6AB611DFC4373C640A2F488E7632BE1289666206CBA2B096A479B2140C6AA301BC448B13B6839447C4675AA1BE46EB6ECFCB4DDF2569B2D79ABE93FCEAFF0F0FF88688C870D19759A41D3D361A0CEC73CC908F52BAD8\nsk = 34C91F6EC981B1830501D8969F8847B2C6BD5D5C43DFA044C43B551E610D5675BB7E7C9E393B411E69575301BF4EF4C7FD0B4B59E213905A254EB5540ACA856C370DD28899541B725091C23907C04390AD32A56385075F42A7545672544FE177B74C7ED99507E4D95DEF7C4A9F84C9687B9BC318A23EB452FB7635D5201165A47391D21A7CA732FE9B3455C44EE4E54FC3A6518D51402CD5A2D49429B9C8815CD4B1A22C59ED368ED6C7A9DF83B958CC83C4654C5CD040245543431C0D2C9091376611CFDC2EB9181B21C8417E3931AA2B1141C1051CB82ACA4BBBE6DABDA3356BBF4962C3F883D0578580477AC56353AC7524F3855DE2B00967B7BEE0668112D51CCBC139FA73374DF2685A3CC06838B150F92A64C17772053DE2B05CC4D51832B8A2B8428436D99E1F2484B127CE0D861DC8A11AB0B0019E0B3439733B36A7A600F4638D820BA5624B445349A86465E1B25DE787207DDA0B629CB472D415A42A8BA191B76B5829D4D987A2B0C235521C187A0BADDB603D755EB37396CDD57FF76276CCCA997B00CD481587CB8728830021DCBB8478A267B744A5BFD08B4ACB2C1E726121996E55B60D40F6975637831C392845D6823D4B9092151149992794F4AB29D4164A44239F07C365A87ED9786AF7A57AC0BC0D491018007B6BF7705A21B082D1E040A4F4C25E329EF9A8518956044E7683AF94728487A4F95305D4E15AAD45C040F1CF9C442C519B2AA47A4DFC29063243C21F8B838171701B4B73516944EFC4B61FB5BCA63C3ED12A123F55B832E6C312E8BC48F145D62953F5901F7530068F2C9C9F51CA8FCB342852936D414FDDC2C04F551C827071F99C7C24C991F9C97E10E051694C86789A9442D79092B6547D67AF70D8C8B074CDBF854718A882DAACA3B8EAAD0BB1C2D3E859D3EB03C0A23B290518EF88CE1BB02FE71399EF71B380EC1AEC4C7C6BF3830C1B15F7718D0E471D10234393D94FBD3305ABD09CDF070A0ABC09D7497D2F9B939794B923EB3F28B40904A53A05216A526132D9F3CC64606B40F26434142645D79481A8316E8CB0A9321A4C530A0AD139ED5953168A4AC864C726874E1366AB09A249F251CE5B1A7F5CA60AD66375BFDBCFA3D7AD23A13649C03327D409FDA64581CB00A696557945C58E96C1C889BE648C4885958ADEA79AB212A0BB15506BF5635E437ECEE47B60032B4273B8C96806639C87031B6E23B71996B4576626124281AE4CA0A8FC081E1C91667967B25F76C4F72624CB29BD0A865FD67A4DBF14ACC7A09871BC7ADEAAB37B298F12B60B6372B741681627E4C8346C0D34392716EC173B1B711B1C0A1D010DCA486BD5167223658A5C55BCD0739DCFE30DFCF9BD8AA45B3CA0B5A90243547767A1843E4C87922031819EF9249800C6DB8B0270F9CB8F2624ADF4199741870B0630E1BB1B325768C79984D5E33283A991BB3C98B6BB8BE0EBAAC47C4310C51EB565BABA36BE54F6A3151A104911C38EF78E61F1654EF35B2C836C2321A52FAC710D6B03811444DE5B8403569C8CE0444EF615DAD54AE5649E68AB437C00A2C9EA9B18F59346D8B2A5C6582D763730BBC7F24A7EE7C23607C0683A2826FBB4BAD4A58FF6E3BB3122BC8E892A62437CE84445F2E82B495C9730FAB393DC6F3B36BB2A63759A79AE27B162250076A608522440AC1E04630BA766B4C256341C6AC967B36E6934DC58CDA15621827B9558076361192E89708ED88A71826A20E8EC948B9C7915566C70A7C15A72C36ECC7A3CC644EAE696022657C53500A0F13A8AE50FDFA432D8D2530999275E5B9C1D341FB34B8A5A7421B7D290CBC3218486B555C92572BAC8F1085F058A87FD48796824844553261CA11F06978A03F3A8D68657C22064AF83166280AF52270E004731D20B18982283E51CA3DB7A2679DA6FB0AABA1E75A2D283ADD699A797E1BE93502C6823007BA5B97", + "60A338768615B671BAEDC6A6A6937B9E1C35575776A4A791FEC7751079C6683BA29EA28BAD199175B9629C44BBF219CD88A19F1089AA551946E58032A9C9DFD29BC4CA3B654F494990CC02BBB8E1280B54BA3920EF98903F171C27A5C0FB679C8E84774F22136E89915A534D973733410A96280A3207407235CA0D81A636A35B9DD628DEE9A64A12918D0DC6D4C600989168A163730FAB8C78E61A57970C16C813B791A0EE9F625C438CCD1A9429A93062C4AB38DA5890188829AD116A6F1564A43A2E4F3BBA3712207B65E701995C99B29D691C86BD9844AF2471EB5CECD934F764629DC25839C809432E395FD8582CDA980359246EEF0637B9771FA5853099007F173C8598164DA69C8E67A910A50B9940B213547815E0589326B02FF21B89BC4200219652DEA6CCD59883E29127E2ABE3787738B124D839A67E02195D64989520737E3AA99C6822F2C32249256C45455CBD931A5A1FB27CD56A21E22B51C03217AA387E151631CFA445B2B77EC90AE01828601961ADA8A8E6192104F02BA5064C4EFC27CF2DC3353FC98F34BB947B21EC5235FBA6CAFFB6BC6B1C09A783AB8EF14C4921A28A3896BAC07AE8BA98C117B3624E01ED0496A8C649A38A33FB679BB535A7D1960028CA6C8BA825178E74F0E50B5D74C2A9119B595B863D0375A3DA173C63A03D8C60A8D613CC08064588890E3894A9BF4580704038841526AB84E27CABC8FA4CAD6DBBDE9B53017F100778478B86138FBD6BE713A7E695358538BC4CB5A4FFF531BFF178BB16ACE5A295CA0340985F34267A3A931998B29A36935D3B13AF0631CD37777689CA0B43B9208AFBAB88EF886A8672B331224C66C6086B8B15A8EB86107FC0AE260BF08F970CDEC98ECE9A197751B6996258FFB6DCE05306380770DC63498E9B5D65ACAC5A179D8946B27630525B39C3755C070A120C9F468AB3AA8B1A48848081B888BAAA1156BD600733BE887ABF962C46107C432C34EDCA8E549977D9A6F7EB77EB9974BB353896E8261502820F599257CD9C2852328B0FBC5C2B98658D67E4A636575A46E074A1EFDA2CFA50A0594B0A421661D81D95A9AE0CA1C037532BA7EEAD089961C29765C443D428BF20767D1F08615E85D0C08B0FA5076E297143249283C13486F61A4D9D39780624055D6043120A510D4A686F9B490C74F2DA782AB42157A00991BE019E093A509C0C00B7C1E6AB611DFC4373C640A2F488E7632BE1289666206CBA2B096A479B2140C6AA301BC448B13B6839447C4675AA1BE46EB6ECFCB4DDF2569B2D79ABE93FCEAFF0F0FF88688C870D19759A41D3D361A0CEC73CC908F52BAD865F03ADD3941D22C80D50659F501F8CCA1B448D84462CCB93D5F065889484BC092CEDEF206325F68EBC282123EB0AB02874F8A3C6665B78346775351AD99CC3D\nencap_coins = 5741C37BC610ABD8F8F9673D0267895A4E77235ACBDB294ECA9DED915410FB1A\nct = 16979B9CCBB8D01F811FD3F8D27E34210B9D343F40E6049673C1D02DDF6ECBB42B940C5B76FFD8804A6DA6B207F9AA0BE63C9FC1060273C47A09466013199F10AAE71769C3A8B6CC14DD497FD9608689C2D754FF3A1251C186A070AE0B8625251BAE26F1D47D83865E6B71D9F30EFABC9307006049E6AECF0E37C9F3251E7C27F4C5489271E58E30819231C42E149EECB8971AE4586B645664F9FD6B8DD6546E3C98882C93791882CD7C61E5DE43DEEB59E933C9E9806F22276FB8CBFBDD25E42A1D02FC4B835E5B67D7A7AE43D973F23EC9344F67384C907B867FDB30C8197667A67E7EB459A5399433326418323457A2724A16F5BF4A527C31B63FADF5247FD9E8380EBA69BC4794133B28A995795D58097FB48DC6DBA765114A1291EF12B6532135432483F73226084AF9E1BA9C68F81F19E40F267F394E5ED9652ABCBE3657A1D4EE7B5A7B62A94243242F386CC47646A0BA80CF06466EDFD38F64CE02E64A0A16ABAEBF61CC52249EB11B4618868CEE6705403378B6300518331658587A895323C6588E8C85CC11BB566CCB8428007292D430958B4A44D28EC3C6A0BC50C929E7A422392570346C4337450C82A9267818FB1928EFBED46C41085938EA442DD79172A5DCC8EFE8BB8BD7524E404610D0D495DB4897D797685A90466CC4936D1DD9027412F8F8938897BB8A2655FFC45E44219240F167910EA27D79B265D64BE935497961B8D990C987B4FED21056CE829E5E4E1C409A17693EF8521C1A8B7807B723958819A26F227CE2DC93141CE3B248E3B0C0420EE69B92BE7A1241583CFEB4506041E89FEC38AEC7B02100713DC20252E67C9C9AAF2F73B1777EA9095B358792B7B80FA41B4FE6ED81EF4762BAF0D21EEB5898CA5C3974C17DC7A5766E65D503B4CBE59B906ED11B8F815056D1400560511BDE00DEF4B64104F943748821FB9C342540CFEAD38442E84CBE6B1556DB621496C2B91048E28D33EF9B2BE3AD7A8FAF04C377696ABF50A0BB09C07646297160F080EDB90A74FF803781F8817A02ECD9AA62C4EBE9515FD0ADFFEB7EA775DD65BF64D2B0B9C1D3F6F5DF3F2023EDCC954D24B97B19C652FB754F291451FB1DAC25290D601B94C8EAAC7923A0263FC4FEB70EB3FD153937047E5E388AF532E2741AF951A7C7C1EC9AEC04493AD9C73103033AFA7DA8C014D10F464C090FAAC0FB2D92C5FACD4934B47C414B2E43B324D6C970B92DE85367F11795323D043F2A56BF62546DB2C28047E306EC2DBA5CAEC6D3EE21050854C9D1C94AF5268A45721C7B7FA6BEE275E8E9D23468812CD28635187FEF25C221C391D7A7F499650B5F059625E87BA00A57CB8C51E98E14B95F5E8FDEB6E9F2DCB378A991A7D047599BCBD89997DEEA6DDB338DABB1689A811EFF30AED59D17E9746724729351E3507AA0CD4B567494FEF7B22278B40D2C42D5A305BC49849902C5B9040326A6E0E5D6DB039F59F65D05DEF4540A524515C8DA48CCB13867F082BD03B1D822FD654F428260F5A1A7D2821EC1E87CEC\nss = E5398378607B281F73F6FC93A7CB58811AE9F8D986BBE0D8C19EA0B3971B6C42\n\ncount = 64\nkeypair_coins = F8EE95521060C03BB8DACC79F7EB7DB640F545F315613A35D447A09E504CB4E17373D22CACE9F3A09FCC5E85067EE05C0E537AA0738F79101236B4E7D28F2889\npk = 61101724795296A2499158C8E1B50E4C900D65C8AE65503932DCA40E058E8192CEC2A997CF12C8A1227567B12A1B21BB31D3198C85C4878C6EA1967668E3952D04B4123CBB9CD8C77F3A7397A9133D99654E6C56E7465D9B98BDBD624C12E36C62B60B6A32C9086A8EEB9B8919706F4573A33C393F74BB51D5609231F1707E152F23F36F6C6830EF28253C8CB81EC5C27ADB02FBDA5302212826F0B88AA4B4D72A509E29CB1BFC8177C019C60598E693BCE999AABC4621123415235208E7869F62AA7B50A51724C13DA2DB59D5BA5302C772F2C1820FB0882EF32F73321C17F40D019CAD39C3B12C57C3519CA0B38366AC4353B133C39262BE6EE47ECF660286F6CA8EB7090418ABA0D9833E22B46B761FA2872FB80972B551809C02775BE07C796636A2C619FC748B90D28E1E702FFB0653E250C8C3759178C39E42411327A81C7E7887B21915A5CC032C37A11382C4D9186221B1C66AFCAE8184559910201C8BAAACEC62BAB984E080433B9465E64A2D987028E9D9090CB2C41753742CD77F0998C672441E83D45F2D06C22899C2136362271B731F6BA3965B32E2517463E627AECA0AE5644BB8602F7FC599ABC120AA111E2E549A276A18D2A92C39502F6F9519CE76C0BCB514E8084C7122A321479338F59ECE08A0ACD30F0AD68F2091855D5980219083398A6C0A63C70D3743678A1C0202A69DC526DDB77E30B779C36AC2575704EAD94DDF1661A38B2624E733F2E2AE18467CE2C3083B75017411390314AB06ABB4D0FB58BFF99DC3949E92994703E85FB6B863AE1C29BDD6656CD75D9BA453AA115A32745F2DC1829881A9F4D5CC2CC053AB79B89D107E6054C69DC93F5AA9C8CA6CC1A7583F2E2739B102378D93990CB8280B21A5D5BA8415C48EC17288044623A9631577C16639922978258CEE0B6C51BBCFE3F70BE07CBAFB7C58111CC7F2F922AA023D5AD01D2D31A57E0469AC428B6FB88A97D957AE22BEB768C3CB7C9F02F583FA2513DB7C580D2986984314E8B346A06501D8972E31AB8EF5B983E9A15E8FFC624D0041FD523570960E09E57D616A06297BB3F9D938F5655628B06C4F6C4FA5F8136F8CC05DFAB7389237EA75AEF46117BF1B67AA978BA622491260128E743F28F95F533B708F3C59230B23FABA96FFB5C239B32B30A65B36FC5A0A76B76F04A60C9C7D5EB78EBE44B736EB56A0812F59D9B5812916246228F2523175242CD1F432F9FB054A8B52D824349DC0756091B2F7C21E2A899362157BF9F631287B90D6C80FB55B1469273F79892435D031B62982C49A1464E2274F815F56F3B6F8C949BE11388DF1151E7077F603AE592623E4259853A2B90159344B041AA29C8AFC5074BEE81959102E0C57A761F1B1AA65B1DCB66A18BBBBE12B2B2942A37D13C77C77B2BDE758EB1901F74C7D57D373A47737D6E23998E35DCEE70983359B4162C7135126E90A807604034D52ADD3530456B66F0DA64453150AFBB67D67D9B359137C2420250C279A1C537AB06952E4823F09372198C253D5B71A7E70A1C48B1DCAC3A85FEAAC35A11E670B2840A57F2A7C77B6A00CC80A282F0A1C8160080C702D619A6B6D68C757306C93A5B21BA8185B1A46C79B03C35880A7B265A3E05B2DB868482FCDBA0367177BBBCAD04F3A50ADEB85DED90BD59DAB\nsk = AB4545850434076342EAE8409FE0590C34955E860267305FCA05C347BB3E53BC714E3134A6E9B338674A9AABB02F021D1A09A190757F03D573C27687F7E35F2D77294D10CDED732218395B344523F1B704B27689DCC286B5C98217F239C159AE5D655436F00517A50C6DC6B7F4F111E7F37A0F319BF6ACC7B0E3345C9367B2A2B8D9D644936220C0A817FBB38CEB3469CD55C661E1C58D06807504443448C4E53204DC59C60A5153494478EB4056C9A85967A42EBBC287AFDA51FDD6B84B285523D41D80A56F7A68A168A4527D902311B18D5E381CFDD578BB7924FE687D3AEA5607906815181171A727E4DBCE1B678762A8B03C2A2BFF1635CA85332AE90F14B880C5EC4E5389B7816AB885C44A8D83C5EF0C4C754C7B6E673D984938D3CA4EB0F5B83B90BEC27172AC85154EF27B91623841E188D76B040F958C38C8A112C05B54103E55A159DE0954F2477E798A573339508B7C2AC3872A623429777BA3179060135C083E2198D1E0AA01967C39C27372A1A36A92BAC3BB13EE3C94B1F0391E2702C50253DD497F16F39BDCB9C68CCAAB6312084884B113E70F38555422767F4E613B2E87AFFC01395FCA37DF0A1AEF74263C1001392732D9D1047CC7C6FB910AE6136C33094526876A113514F2918909532A759617DBE2C97E72176490995DC82B663655DF65324B1996A42150BE41B2A1C90F03B2A6F04174DA1B1CC7FBB024C3C972B9714300C683C28A90F48B01C28607922C3ED25601A609673481B365544B7C36A9550EF20C37005B0E395A268E90CE1A5271E1421B46303B80CBCC81E2894D7569E82C2F5D8C6996C766BC505976628CADD84A3F468C67C209117C8254BBAA1BA584DC2661728A69E959949ED6C9F1B42F01EC8E55614AEB7168CFBB5E16504EB9F585C7789C4", + "8E59C17B5975C444BD6E32A6654BCE298A605043BD367400C14B1D8E1A592A034543C04A44C85711AA66C807FB07378FB525600C19D9A4A9A8C920BA7DB0B1D912A45F2B6D518B469E9121D25CF40499196376D3D92827E1B96AE255AFF288037793C7DB07E1D15533C07162AACAE3255C0CC368E2FBA3FEF09540952910EAC0FB2F3AE376AA666FC97A3E122570CCF797C79EC575835E0BE6E808B3CB1B72D8241C3679BF15020B6A63BE65B95A2C9147EB98C6553C71C550E37603E6B73C877C94E7B603A22ECA456C1409D5AA049673D0EA17C123B1835692253FCB589186BAA498F39481C3D0640A4D34931033B30F26EBED6CA9C49BA6FB219D6DC8461937284235A6417CC9C0CA0AD385B04B01C81D5A7B97A34977250E3679AC55C3D76D83B1F7B99DBA039DC179147223B5D6C11FC9109DC062A1E4B7C88C710C449320949BB4405B28EA2C04D48C58AABB46EDAA58E442F3AB6C9810B6D702855F7CA91AF71B0E574BAC1040DBE864DDAA76827874839414CF3418D1702C6F368A10714CB25E208C8A5779F639837A07E348841A11714F41399DA175C49678307D3634D6B9921880FD43CCB8D7842E5F34CE44A4923E7CE6B671C7A989AA748604D147CE7AC25A1533E80AB321B7AACB8D523A3A6298BEB0CFDA435D77714993173D080827FB07B7855769EBA987696AFDF58231F361D61101724795296A2499158C8E1B50E4C900D65C8AE65503932DCA40E058E8192CEC2A997CF12C8A1227567B12A1B21BB31D3198C85C4878C6EA1967668E3952D04B4123CBB9CD8C77F3A7397A9133D99654E6C56E7465D9B98BDBD624C12E36C62B60B6A32C9086A8EEB9B8919706F4573A33C393F74BB51D5609231F1707E152F23F36F6C6830EF28253C8CB81EC5C27ADB02FBDA5302212826F0B88AA4B4D72A509E29CB1BFC8177C019C60598E693BCE999AABC4621123415235208E7869F62AA7B50A51724C13DA2DB59D5BA5302C772F2C1820FB0882EF32F73321C17F40D019CAD39C3B12C57C3519CA0B38366AC4353B133C39262BE6EE47ECF660286F6CA8EB7090418ABA0D9833E22B46B761FA2872FB80972B551809C02775BE07C796636A2C619FC748B90D28E1E702FFB0653E250C8C3759178C39E42411327A81C7E7887B21915A5CC032C37A11382C4D9186221B1C66AFCAE8184559910201C8BAAACEC62BAB984E080433B9465E64A2D987028E9D9090CB2C41753742CD77F0998C672441E83D45F2D06C22899C2136362271B731F6BA3965B32E2517463E627AECA0AE5644BB8602F7FC599ABC120AA111E2E549A276A18D2A92C39502F6F9519CE76C0BCB514E8084C7122A321479338F59ECE08A0ACD30F0AD68F2091855D5980219083398A6C0A63C70D3743678A1C0202A69DC526DDB77E30B779C36AC2575704EAD94DDF1661A38B2624E733F2E2AE18467CE2C3083B75017411390314AB06ABB4D0FB58BFF99DC3949E92994703E85FB6B863AE1C29BDD6656CD75D9BA453AA115A32745F2DC1829881A9F4D5CC2CC053AB79B89D107E6054C69DC93F5AA9C8CA6CC1A7583F2E2739B102378D93990CB8280B21A5D5BA8415C48EC17288044623A9631577C16639922978258CEE0B6C51BBCFE3F70BE07CBAFB7C58111CC7F2F922AA023D5AD01D2D31A57E0469AC428B6FB88A97D957AE22BEB768C3CB7C9F02F583FA2513DB7C580D2986984314E8B346A06501D8972E31AB8EF5B983E9A15E8FFC624D0041FD523570960E09E57D616A06297BB3F9D938F5655628B06C4F6C4FA5F8136F8CC05DFAB7389237EA75AEF46117BF1B67AA978BA622491260128E743F28F95F533B708F3C59230B23FABA96FFB5C239B32B30A65B36FC5A0A76B76F04A60C9C7D5EB78EBE44B736EB56A0812F59D9B5812916246228F2523175242CD1F432F9FB054A8B52D824349DC0756091B2F7C21E2A899362157BF9F631287B90D6C80FB55B1469273F79892435D031B62982C49A1464E2274F815F56F3B6F8C949BE11388DF1151E7077F603AE592623E4259853A2B90159344B041AA29C8AFC5074BEE81959102E0C57A761F1B1AA65B1DCB66A18BBBBE12B2B2942A37D13C77C77B2BDE758EB1901F74C7D57D373A47737D6E23998E35DCEE70983359B4162C7135126E90A807604034D52ADD3530456B66F0DA64453150AFBB67D67D9B359137C2420250C279A1C537AB06952E4823F09372198C253D5B71A7E70A1C48B1DCAC3A85FEAAC35A11E670B2840A57F2A7C77B6A00CC80A282F0A1C8160080C702D619A6B6D68C757306C93A5B21BA8185B1A46C79B03C35880A7B265A3E05B2DB868482FCDBA0367177BBBCAD04F3A50ADEB85DED90BD59DABB8A3B8CF4709204A2FDB19889B0022EA655DFD58FF27E17D530510E1EEF457937373D22CACE9F3A09FCC5E85067EE05C0E537AA0738F79101236B4E7D28F2889\nencap_coins = C4D1D167371706468915DFA7F41E45FC48FC5E02EF79651C81C87BEA7861B2B4\nct = C5E6613B0E5EECDC14B4EE3E5B57929AC03652AA0D646C9D2C2B9D33A86C3AF47F0AF45F15F89767089622F847FB099E8EE60991BA5826736FA2EB48113078B07B5DD0CDE89BBFB58D1F665A9E5A49B730B017A9C10B3F7252B282D6F921391347E92602AC0916AB439C4C54A265A2CB9E0E4B9E87E78D54A05451C6ADC72E9A885E32415282D6C1CA5291E7D53B8F2D67D629BFEDE7D7FA28D3BAD56C52113C1010841D5250DDDB128C56F7E0F6EFB89F5DB4765E0C5C3012BD4F6B85760E4CAC6A5A82B816B5060407BA37F446F256AA3DAE760199B8C30EF858FFB86913653BCE3EE3BF442D598F3C1729CF33B214ABDE7D6E20DF2E4532918389EBF5DD2642AF7D3D59B123C6D30FCC1C30A194AD4567DD34CF9CF7D4CC1D813DF8F2F46B7F3F14C97E2C00F94F5F29CD0ED45284E477E36B19FF41E5C5DEB4D8FC96DC8FFF2E42D8C603DF5C9B830DE830BABC31C82FC699D4861844A73F7078BE0C6FEBC66A52A6AC603D06CBF3D7A11066545479AE7860079671FA391BBB3C2B4E2D5AA9B521E6FA246A1D40EC9E1A5EA712433F1C390301D001330DEE4F116B9BF49A3094E2D27F6625CC0128129920797E4B3B7777F3CC07FCA1674B7BB52C41B6D194119E75A95C9C9A3252389FD90DDFD0A9F06CC90782C46C6B0C36ECFD48CC5486A0FC7450A19B1EAA6BD182C914D042F00813D5376C8B5B9A73FD1600C6C89D00308BEF333E8106C1FD1BE400515EE4C18F0B436777953578929AAF623A9FD9CF7D470DF46B4FA7C2590AD4956A7C5D97490001E7CAA7F99AA171994816076CBE3CE7FFE13D1AEAD0B562C8C5347EDF3574FC95C5F2D2554C641406D1E386182C9B512F43E825172348FC56E923299793C4C50AE0E34CFB60AEBBD599858154548E89C9DFE8923F739776113F75CF58B67B79594FE03B969C345D2AE8DC6CA2F36136F1C34547E7CF7F64BFF18BEA8E8E1134A68ADD58EF245921EF70F794153549BA08F99E72A2DA21584811DD869737362059110CA8164A3B46EFED1ECD265D5532BA37CA43A06DC43A9A0020BE610599B4880A98DC89A6E7881EC607981438F7117874673F407C01193165FB85934376DDA1723ED3E16AF7F4A0D3A079BA6797637F31E3B446A5F7C4B663C34070BE49EEC1E88DBCACFD7352B80EB0D7B3214E61863DF5F615815A4B93F6860ED822A2274C8BC64EFAA61C9471468AAF3F0958D7CBBE886B491A70028F3A040E88E6BDD9B641F9182B03DF4558BEB65DA4E4ABC3AB5AAAE8A6D644212C7C7B25563A25F8B828EC241835C2EE77357B07BE5C817D68DBD1D2EF2F72E9A963C3693B759060304325D263D31BFE67DCE3FC1D9E502DB40ADF29C655E05FA4EA172579AAAE53DE5E99B09F585BD55F1488F48361EDB6C55E52180629326D46B3EC270D6AF6533081615AA918FE1D76A3EC3B7135E3638DBA929960591B2B71D94579DC3E65309314804E73C42DD067DCC5103E6C721733D8606D101772B193531617AFF97233F4607850CD2CEBBC1BD91F2980\nss = CCE008CBB7F83B2EC863B089B7030AE360F775439A96F0A51061A76B7BC7BCF5\n\ncount = 65\nkeypair_coins = B8BD0493A882E3A49B4E0F6256FB1FEA0912562FD9BA26EC3D6C9CC12C8973ABC1B070E4E519D727F677E011716436BEE9DD0188FE38C00D0FF425AD794C07D1\npk = 657B941F466659FCC971C1174AA4459551848E7A116B751E5E4022C8F2A4B3152A1B26A3096539C9B0BD6A435EA1E33413AC4D5F401F5DE8570CC11CD4BB9FAC473328D55501702743E2C8D1B97CEDC8AD3D55B67D284158EA8BF1A4A8A17A9DE6D5669E8B9571200B05300CB30BCEC4A58B06F70830C2B32D28992B70427781854456129CBAB53A7C72FF557193D3A221D06177D002095BC04E993B8606245416C3B998B01716AF3B43A535F7A6BEA71270B34EC808CA00E9453AE660B732963BA634F14378B1691A90E3708125CDE31BAE3D10451A5643F526CB790A8D6E091A725681FB539E9B05BDA7B04C48A31B39DA6E39E6BE624663B6284DE9F958C50149CE4090E6A486B68511AE90A0F093297BF090DB3C81D34400A40CBE11D74271E23BBB7A49EA875EA7F7CC25516A899198362ACC52C8A8CA14BEE12BBCEA9A6E3509B6887A3D1D4C3B2B4314C4C44F44C96F48B29A8E7B85339037ACF131F2692B7E7A49282237C8F37267C835C24883D1A189D4DCCB7C6BB1FE622FC31301A6D3612A448084E0A210449B7E15A4FD84A9A538B2D5844DC170C911FC1282BC513E8C18C469A01A548D1CE4853128A03A8B1D369B353C3003B0A29D210AB6AF23ACD010AE3671493C774EFAD8B3746180746401D0E5862A3265E7969F247C954955B4AFC13FC420143C10263EB1C6DABBBF5A8857A7F3BEE7658C8399503C21A9A38BA554132344E214CD2036C2B30D0770CC5DD87ED9B246E7F955EA926965748CB9E58351A938F7E4AC249CA5C970CFDE48C0ADE051BA873D36A581E0FC50D9583109A79549FC5B32BA432444046AC0A66F3C64AE1498F43B1B36D8082442B5AAA7BBCFF2C4CDA8C0C4D2C62CF9135A75709CEB5B82BA4EF5716C4986A36BD7B4AD5C3A505869FD34AEC2D7CABA492F4BC30D232382B2651D5923242BB50DF87092ACE5566BC5A18FB2925CAB467B641DF7B5B91142318D120456245F2F0887FF13516D23216637393C469CE1F776CF2426C6577844CB3D4E0A92ABA85FFB59979A7C33EAF51EA2BAC9862160BF8A85553A3D4EDC05DA102106F632C91B8D1DF2A9B2734185283941EBCDFD788107B307738786D6C0A0E7D4957DFB17488C5D6CC11B83E3504EF2923034A06270563E18A18BB29F48C36A64C132AA626DCFC5A615E4416DF76746673E500186A117A27C5007A4B04867213C33739E27058ADB23C0DE35CE6158C99E59B88B147E2AC05F09F7C0A414C3240ABAF65C24CFDB6857ECA66BFC58E52472861BAB1E03CE70D2115480B443A9BF799379AF9AC978D0072F75BC7923816A189DA5974ED948B8A709A8191CC9BE60AC2A383A7E27CC62543A2A0CA9EA6897D284AE79B595D0893514F75DB35C9254B7AC47260785C1B86A98A5DD733D3DC2B947D148F698C5A117821847604151068412268169C86D50BE92D77683386025704575177AAC0B9D3D3196A610985E860E2F799F480B1331BA346DB0C379CB1833223836D88FD4E11DBF2985825C78330658B9A189233BC76B172127BC7A98E6C644D28", + "DA7B0857F67157AE2C27659297C32A7EB653697A295097A32AC235A11887388265ECB3B46A75C865C239395300D0F8152CBCBA77B4D655C9F1EA4B448FBE32C4996FC298D26CAE25D276BCF6E66BA65E3E97791\nsk = D7E3338B3CA1D6118B7485BF85AB9E8F6C36E158B67D2C3530B0A544B8AFAA0A8604710987429D0D1B1EAABA8F06422E992C475DC4CF909061EFE673A3547575E8B00BA47D5A158C22E6B2C280B3152165A5A01A43D801E96791B6D99C92C0B0602C94C0B13F2672146A7044E4372C5FA8843FA7974692B0F292AF9FC3B5793092C705421E6AA39B7B3EEC76694F5555985A94879ABF737949BC33CFD1F8563565B2F345B6B3389FE061509BE046B3A048A73599AC20466F0707E9B46045352F94507659BA428CC6994EE3375B07D09AD3BE1872C15692C7394626CFC01BF5435D7922BF9199533A22CC4FF021A97C571DB311485B36E2A3344EB880C67819AEA18B09919FBC57CBC11CB228F8C24F38A445C512245C3A5CBC65D20269EE849BC268899981B9F334704499B60A891139D9470A1A147F38470752C4EAEC5B14D51817FCCA22E7BC1C585CD2189131960A9E9284AC7940B2949707EC7A67F22DB280775D8163394A3A9557BD48F50C26F177FFE83030A3455DE1196A763F8AF156DF73CE3BD07AC70447573A79DD04A59E8B40E39C6FEA736E14F1B1B67B5CF556C3ADB29FACFCA4E6D8B759D37737863DA2A7AC4A645A8F202AD61C17068385C21415F7E14146D896020B89CC73AAD60135D5A3B94879184E086F1066A9F56041B6029D1F538FB5B18A7A741E04E2C158B69927A1A7708BCC411988C0C315D0D1BC3A31B0CD473FCD3ABACB1BB3EB23224379B5350081EFCB8C45584D3B845E2500420453718AD83194130983A355B1388BF246B9FE7400443C52629812FC1125C3800C3F824C0FF95BC24A2E8B306D5E3278FFFC585843BBFCD06D2EC3482295717A5111AA7B6475040083106A01491CF981197EEB77D9B01C2BE476F07C59CBEB5C4D19A2000D61546A9CC149A149BA8E57CB0ECB3105D94715C7B1BA7800785EDBA95A7352583354B93CBEF98C78BFA946A7431813EC36AC45488B170859C098B7C6813CAB2FFB519814C3A9DE3C254ED7A144FB6D15B183CB48A9021972233382FC8C388511ADD6A86837801F4BEA0DF0103B3A152648BBCDA68499352691BE0C3E5218A7C22C8CE49790AF1BCD4F6717EAA18CB489B446D24F5CE239C79A6E34215E87BCB8461B5B509C895EC22F94C17C3BCC5904D968C469B200D3322B423761E3749556476D925A915971A62A5A330ACBD106AD77DA7897815CFA31CD44310D44915D762164B6170B2916B5427C694FF3340FB16B73500E92833ECC35BB25DB6E652701D85AB215B366A173604C2797C2A9C420E069E7E4B3D1120DBD1C196D105211134478D23CC4428F8F56182FF3A51C7B84F01A08BA157E86B9374FB7C2E7ECA3D4B65F4A73472E38C6F7C06883C99C4CE934F9B04436D250EF262C42D4862B90C11F4924087469210A25CF4CB29D139D85D9C904004CB246348C60736D707B2B9B111C91ACD3937D9E8934032746AA5025BCEC8BF637936448A0DD67A27DB2A74B60BBA82BCC87D73D4A9033C427A85883613EDA43829C7CA3C7A8F24364633610D8199A5EC8038D0B6686ABBD47692ADA94282C40799ED4BF8ECB65EE7C8B2047C41EB255318C139B89CE909831FE3024BAC10B4110CA34F1BD657B941F466659FCC971C1174AA4459551848E7A116B751E5E4022C8F2A4B3152A1B26A3096539C9B0BD6A435EA1E33413AC4D5F401F5DE8570CC11CD4BB9FAC473328D55501702743E2C8D1B97CEDC8AD3D55B67D284158EA8BF1A4A8A17A9DE6D5669E8B9571200B05300CB30BCEC4A58B06F70830C2B32D28992B70427781854456129CBAB53A7C72FF557193D3A221D06177D002095BC04E993B8606245416C3B998B01716AF3B43A535F7A6BEA71270B34EC808CA00E9453AE660B732963BA634F14378B1691A90E3708125CDE31BAE3D10451A5643F526CB790A8D6E091A725681FB539E9B05BDA7B04C48A31B39DA6E39E6BE624663B6284DE9F958C50149CE4090E6A486B68511AE90A0F093297BF090DB3C81D34400A40CBE11D74271E23BBB7A49EA875EA7F7CC25516A899198362ACC52C8A8CA14BEE12BBCEA9A6E3509B6887A3D1D4C3B2B4314C4C44F44C96F48B29A8E7B85339037ACF131F2692B7E7A49282237C8F37267C835C24883D1A189D4DCCB7C6BB1FE622FC31301A6D3612A448084E0A210449B7E15A4FD84A9A538B2D5844DC170C911FC1282BC513E8C18C469A01A548D1CE4853128A03A8B1D369B353C3003B0A29D210AB6AF23ACD010AE3671493C774EFAD8B3746180746401D0E5862A3265E7969F247C954955B4AFC13FC420143C10263EB1C6DABBBF5A8857A7F3BEE7658C8399503C21A9A38BA554132344E214CD2036C2B30D0770CC5DD87ED9B246E7F955EA926965748CB9E58351A938F7E4AC249CA5C970CFDE48C0ADE051BA873D36A581E0FC50D9583109A79549FC5B32BA432444046AC0A66F3C64AE1498F43B1B36D8082442B5AAA7BBCFF2C4CDA8C0C4D2C62CF9135A75709CEB5B82BA4EF5716C4986A36BD7B4AD5C3A505869FD34AEC2D7CABA492F4BC30D232382B2651D5923242BB50DF87092ACE5566BC5A18FB2925CAB467B641DF7B5B91142318D120456245F2F0887FF13516D23216637393C469CE1F776CF2426C6577844CB3D4E0A92ABA85FFB59979A7C33EAF51EA2BAC9862160BF8A85553A3D4EDC05DA102106F632C91B8D1DF2A9B2734185283941EBCDFD788107B307738786D6C0A0E7D4957DFB17488C5D6CC11B83E3504EF2923034A06270563E18A18BB29F48C36A64C132AA626DCFC5A615E4416DF76746673E500186A117A27C5007A4B04867213C33739E27058ADB23C0DE35CE6158C99E59B88B147E2AC05F09F7C0A414C3240ABAF65C24CFDB6857ECA66BFC58E52472861BAB1E03CE70D2115480B443A9BF799379AF9AC978D0072F75BC7923816A189DA5974ED948B8A709A8191CC9BE60AC2A383A7E27CC62543A2A0CA9EA6897D284AE79B595D0893514F75DB35C9254B7AC47260785C1B86A98A5DD733D3DC2B947D148F698C5A117821847604151068412268169C86D50BE92D77683386025704575177AAC0B9D3D3196A610985E860E2F799F480B1331BA346DB0C379CB1833223836D88FD4E11DBF2985825C78330658B9A189233BC76B172127BC7A98E6C644D28DA7B0857F67157AE2C27659297C32A7EB653697A295097A32AC235A11887388265ECB3B46A75C865C239395300D0F8152CBCBA77B4D655C9F1EA4B448FBE32C4996FC298D26CAE25D276BCF6E66BA65E3E9779146FE6C37136273736CCB11DF5B6D55DEBBC087DE802404B72A003C5E8C809719C1B070E4E519D727F677E011716436BEE9DD0188FE38C00D0FF425AD794C07D1\nencap_coins = C83B6DDC081188C55BD3D236D360F73C5CABF211676ECCA5A0F2DA3550D51BA6\nct = 4866F0AEEFB3ABCB2B98D7B879B5178A350CEBB7E7551173ED463059390A29A19781E6F8EC204F5E77D41DA3D73566226CDB5DA3AAF5E3EBFA76E971B91A85AD993FCBA53C5C300E2F5D49ED9546DA565BC235B6B17E3A15E50668CD83BBC1DF4FE614D46FEA749487934CE543E579C66FBF4007FF784F78B5286076A7DF81EB8C8F10388069D0C0B9A0ADC71AA5320991FACD936A289D0E4D9AD5BD84E0A74FE23EFBD40F7F75676394EDD380D47B610E4DDE013C547A7DF39F77D27DC12CE592BFFF0C37A155459717DC7159D04982C69EC03CFFEDBF6AFAE5452E4AE0BC4D3285998D08391CCB262068A8EFEEBAFC72E4160FBB4FF02846673EAE8F2EF42601B7C496546003D613C19A590AE030BD6E06E33025843F7A5C4B299062CEBFF25E9E7FDB81C8F1B83384BAFEE2D2F7B64AAD757A4274300D85ECEEC3DB9F5F991F777406C6E02C10708FCD596A7D5525765E921CADAB99B1DC080996B2B3A56FF805E6F007C0E612BA1056B9AC8DC183B5D5C82B00AEB19EB15E2C556D863FE6FF69D1EF626F3BA3E8F6188EFCCB0284225418CD8F63F3F7E87D5B9C3557F2D6604DABC902217BC18EAE1535816802BDCD757C574D962FA7C7AA1F5A236C725AFAEDB85D9C5ACB1D42390C9186C0CA1BCE33877A7DD95348CCA33511632023D1DB87056545D8B06FF51C23CB2EFFE7C92AD495437D1401E0B11693069B3730D96301F273FDAAB0568BF2E574473C89FC327485FF7EB8E300E0D86055B8729403774AF9B5E7937D9F3BDFED36E284C96B2CC4ED101B2A5B94D0BF742AAE6473536E66BE388E8A1B8E8B2454D8076061F75296970C330DB3A1DC53FAA510C952E03886FDC771BAD55273D315BD263FBF50B444D7351ECFE306D8A8248404F2593AFE951BD1AEE0ECA39DDA6A26FC724CF48ABB039CF94C9DA0E9576B81CCC5B178C91A72926E176713D74C915C14367C390C5843D021688CC93F8FB153032706640671A7016ED36BE50483A99CC6DA378EC960A306BF98E41375A122C5B0B5BD9D9F2ADA3EEBF7FB8F0FAB0B5DFFA4E171F8C12CF86ACB65B919D0BE42FEBCB1287AB50F09F5AD95A812B4D3024E65F239424C6876507C5F7617D3433F60C16293EAE76992A0783AF4F38DA5884943D2BBDAEDF427212B10239BDEE710F691A11C3C561817E87147C9E063FA3297F9F8AD61C72DB74A9E3A322293A3EADB133A88F162F5DF95E10C6FA5602C97E65AFAB4BCB55D8E43C183AB8B046530AF005A75B71B7C2B0D1A29E58CDEEA452A6F9BF0602D53DE5F1D8325FDDB1A7404DB0C08BA0A3FDA8739698274851AD55D22AE0679DBAE56AAE91A1C8FD900D382792E49364BE81E34C78E7900555066EAE7AAEA777F15C9F7BEC089038BBFF8B784F86EC94FE407F8644963C361E8D7E504076142249389D466E45C89053B951C0766A7B3169C2967A50949376DD70806D0458D258C3B8B20F903F3030A571B1817124A269FE57F2B708605C2E1A46FD4F4DD35A7B4272684D5292F08D1B0DB1ACD4185\nss = 45B97D6EBBB1DC841FF6C4D407F40496A2FCEECEAC09703967F75FE1AA01CA27\n\ncount = 66\nkeypair_coins = C0407E41DDF48D333978B89BCF2DB01E4613425B456249E76A6F25B8A2827BF5D89CDCF4B8ECE9F441926532427F01E9DD71B86EA949A59B14189AAA249AAF77\npk = EB9B77F8C16DCE72611902A8CCB81E8CD4C5A2FB1D8FC30CE226BB45779F41073FF3EC0362BA152102CF45D3A95874A551C14C8A621436E248FFBBC4CA3B4033D50EFA392DBAD9C339745803F845736C30BF309546229EF52788AB223758C03491F62913FB4CA4307DC6B4C7FD9503A701AD21671387CB2CBC728ECFF4641E312779C7034CE720554A948A021751D4628890CA7367611D4B9F269C5CCB2381F1F6A01B0634D9C5C954FBB934E4144922CCFA2035892C4CC2A8457300946ABA4FFE77868D34C7A90507BE43748A366C49D0A927E66610A08CD0152A2C1BADA92A05694B6E3D2610ACD4579D5634FD2675F2101290E2BA1855252B57A438B50FCB854EA7B6A89B109EA9857C23AA38333428B94CA5A524977D72077B56978328C18980382EBC967DD37E6136360A958D5F00C3B9996DE3B97B6468B9F98C3C50F37A9E73AC8E8364288347D9B018D437B3B065C120D26E9033078B5838DFC7CE68F244B32C5B4AC04DEF068", + "F58FA733E99A418176575EC2BA0F78D4C402D67176DB5717023B57F8D26C636A11F49B926D20B277D2613941C3E786B1A9A3C1135993BCE22A1DE16434A5902C0F101993B65777399828BA52330A2F356203521A3C59B6007C3AA41D198A8232D27C05F8E0280C9076D54D5AEBDFBC95C7C06BCE24507892641F90D2B774A2D98764C42BCF009799432B706DA59BD84CDE4892427C0586929C99850C7D769AD9A221C85A4062A62B2A1847454554224C4CC47898574FA66D147C4AEDC59FF612F49285DB54170508C89E6787A8CE6515CEC673D4545970CA8EC486802933E319800FBE46D5CC14C8363656DAC0600D895FE383FCBC3614FE334CAC0A94C185B73DB30CB5A56A8D04CB271B13859862F164F980625D78AC35ED120605CBD69E6410EB05168819440816EEBF8CC9AD153CDA5BC2EFBB00A7563A55856711231CD12873A9A56996C174AE43B5C172A1445BB40CB3DEEF9051035B33214A61E26852EF3BCB3FB319E1B4D6BD832D6B9BB54B6021D180881D59D2458564ACBA148B0AC36CB501CC8242919064EE24343F26A87A0696000533A20943445C72B9260B4C8A46A1C921C582600D978C5370B400B2412F73541A13BA0349E66FA4025735CAB6402AAC51E08A019B48115C49C665F415244FA91C208C6B1F2BB02BC18C47A5AEE366EDBE3BAE1E41A8B405DDEAA22A2FB254A6B70DC5A16C0217E4DFB933A127039B788E6C035DF8993FF86923500BA466A81D34A0ADA271DA4262F33123A1B81A13621211845A167449D93370BD95A89725A56A8452B510A7FD2642AF41A4A7856ABD9688DD7C85433A868103679A8EB2BDFAA0CB52CC141267E91E2C1E57162C6B4897C9004A3D375C1C8BB87C5AE2CC80C2A107E0F904E5BF8065AC96C9152AEB07322FA181A83A9CBA0224C9FAA0F06CB67E2787EBA832D3F53AC60B7B014D28945361759689C3EC65F8B885EDA081443A2AFD2A735B1C57C201AA4D273B1302267E5A63ABEFBCAE8E1B2D3883439E2BE2436382EB9BD62146DE0E446B6E2BAF8300575091DB145A646C733BF352989938FDD8003218A607739C60DA6758BF448BF18A22630B08AC40635382E3BF86D16625C45E12EBEEF4308B229C948D425016D674119C0AADEFEB21338BA6CEDBF7DF723\nsk = D338B8576C1FD9168551A681F9C590095B6B8D8474F571226A4B68EE81A83738BB964356EDB663D925960388C92896029A201EC7F046CDE497E3384F613A444634AA3C41656C6031D5233720241603612BEC1032AFA7B3D41242CE374C8B118CF6219FB5E645002530781CB4660403F88287D115BAAA07CE95496A7232862282A653367FBBCA1E337155A3C8905E368C1974418E735F93B6965FEC11CE7B43D81710D727A4C4B434003B9110D013568B7BBFB341212543031C862FAC505944B86394554772047B2A864A6675ED984583269362759CBB464E7E248A48C3554B8054ED9342AEDC8E221439F812697B691BD5C89B7FB11EC716BFF96C97DD73C45B00980BC6B1F69117C2329386518058E97B26626D98196025724BAF0C5729109399E035ACE9A630CB6D7CA9CBC16AB560DA5C01E37601BC0DCA7A3AF891B80418C0056145C7AC8C176605411A39BFE843CAFB4FA61463B20A504E984308F2B82CA7081A97951D0961B2664E2D7B41DF902571D02C1FE24EC0EA998609248CF51CF2F81D96A983DBD29BB37B9A7D559C72FC0BAAE894583A842FCAC92D910C7D682DDE70A4A7B26E3259B290A182392CBE36B68D2E321708E9C00D8C06DCA5043C1A461E76438B7801E8FACA17045B272B16999471F8FB42F53A43294124C3B2B7F7A13EEE8B195A01871909A70E41A0CEDB37F3F733EE259F40C1CD12C79DAF90788D78CEAAAB9E1D20B7FF8800A17AC28953A4E90B257D099DA195B6701A695195BC730389A84A499AB784762631935A5A974398C6988A59822BC6382B9CDC6072F0A6CF65C9DFF2309D1A433AC52E6CBAB472E788F76558D57986BAC5C79B921F06E509DB18C70EE88AF044B527E221E5A5105A19610F059FBF6009B985190AC81640607CC4FB69D4892B5D9AC12BAC26765AAD5C874FE3080BEFF77961CB9E747A8E4B4ACAF3F3B81D51A4A755AE8EF2994E8A722DCB5B8014C1CCDC6A79046664C3B75C02B91E0B4C5C250B8EDA5D67E9A0984A6052053D22266B2413B98D841E8AA686F4E0AEB8D5B2ED2C8BBDDB0374D0AD8CD47A0E6945F0AC352307AC0DB224EBA29BC09397F05B1308828CD42B85C556BF0A938959FA7CDE083D3D0163C21B016133145AE0C47EF73604999E76F9AD19432F82E762BA8174F89A23D09333F7E677F33BC15BF996AE6999ADA8747BB0C454412C2B651D2A90382937427EA555B3856D0250AB1E3663B8D78F3D96CF9EB90B5A501129715DF5DB38086076C4B351305A9718903ABF12609FB1BC8A59162E2152F8E0C62241CA5DEB5260D71AE162B7EA827A342584576B00DC674A5BE149C7744D7FF43A5B04A3EBD38C110630FF656F2FF042EB603403D14F18EB17CF675C995C2790E936CF8B60E758484BC04314E50105B28346829077AAACA72ACB46D331E9127B17DCAE5E639D2B33B9F3CCA468F731BF0B332BA41D196AB77B3C436702078730369CF59144540EA08B5025A4C880C1530F40A852E35F96519C91EAA680D90D25A4256FEB1878B48E39143CE43378EB3335D3E03F2A358782E0B54AB56860148DC0FA5CFD149CF26A7260639A347AA72B977B6F38BF29E1472C26B4D7F80E4BB3192DE06EC05A6AEB9B77F8C16DCE72611902A8CCB81E8CD4C5A2FB1D8FC30CE226BB45779F41073FF3EC0362BA152102CF45D3A95874A551C14C8A621436E248FFBBC4CA3B4033D50EFA392DBAD9C339745803F845736C30BF309546229EF52788AB223758C03491F62913FB4CA4307DC6B4C7FD9503A701AD21671387CB2CBC728ECFF4641E312779C7034CE720554A948A021751D4628890CA7367611D4B9F269C5CCB2381F1F6A01B0634D9C5C954FBB934E4144922CCFA2035892C4CC2A8457300946ABA4FFE77868D34C7A90507BE43748A366C49D0A927E66610A08CD0152A2C1BADA92A05694B6E3D2610ACD4579D5634FD2675F2101290E2BA1855252B57A438B50FCB854EA7B6A89B109EA9857C23AA38333428B94CA5A524977D72077B56978328C18980382EBC967DD37E6136360A958D5F00C3B9996DE3B97B6468B9F98C3C50F37A9E73AC8E8364288347D9B018D437B3B065C120D26E9033078B5838DFC7CE68F244B32C5B4AC04DEF068F58FA733E99A418176575EC2BA0F78D4C402D67176DB5717023B57F8D26C636A11F49B926D20B277D2613941C3E786B1A9A3C1135993BCE22A1DE16434A5902C0F101993B65777399828BA52330A2F356203521A3C59B6007C3AA41D198A8232D27C05F8E0280C9076D54D5AEBDFBC95C7C06BCE24507892641F90D2B774A2D98764C42BCF009799432B706DA59BD84CDE4892427C0586929C99850C7D769AD9A221C85A4062A62B2A1847454554224C4CC47898574FA66D147C4AEDC59FF612F49285DB54170508C89E6787A8CE6515CEC673D4545970CA8EC486802933E319800FBE46D5CC14C8363656DAC0600D895FE383FCBC3614FE334CAC0A94C185B73DB30CB5A56A8D04CB271B13859862F164F980625D78AC35ED120605CBD69E6410EB05168819440816EEBF8CC9AD153CDA5BC2EFBB00A7563A55856711231CD12873A9A56996C174AE43B5C172A1445BB40CB3DEEF9051035B33214A61E26852EF3BCB3FB319E1B4D6BD832D6B9BB54B6021D180881D59D2458564ACBA148B0AC36CB501CC8242919064EE24343F26A87A0696000533A20943445C72B9260B4C8A46A1C921C582600D978C5370B400B2412F73541A13BA0349E66FA4025735CAB6402AAC51E08A019B48115C49C665F415244FA91C208C6B1F2BB02BC18C47A5AEE366EDBE3BAE1E41A8B405DDEAA22A2FB254A6B70DC5A16C0217E4DFB933A127039B788E6C035DF8993FF86923500BA466A81D34A0ADA271DA4262F33123A1B81A13621211845A167449D93370BD95A89725A56A8452B510A7FD2642AF41A4A7856ABD9688DD7C85433A868103679A8EB2BDFAA0CB52CC141267E91E2C1E57162C6B4897C9004A3D375C1C8BB87C5AE2CC80C2A107E0F904E5BF8065AC96C9152AEB07322FA181A83A9CBA0224C9FAA0F06CB67E2787EBA832D3F53AC60B7B014D28945361759689C3EC65F8B885EDA081443A2AFD2A735B1C57C201AA4D273B1302267E5A63ABEFBCAE8E1B2D3883439E2BE2436382EB9BD62146DE0E446B6E2BAF8300575091DB145A646C733BF352989938FDD8003218A607739C60DA6758BF448BF18A22630B08AC40635382E3BF86D16625C45E12EBEEF4308B229C948D425016D674119C0AADEFEB21338BA6CEDBF7DF723A074ED1F76E97D68434BA4AF2AF0E549204222679E9E643580C35AF3CDD247CED89CDCF4B8ECE9F441926532427F01E9DD71B86EA949A59B14189AAA249AAF77\nencap_coins = 5ADD4FF6B8986E4B0DBC8E05801F48B7FA41AAA10E2311F4FE1E0B010D569862\nct = 67D2E6BC2749E1DF8C7F8F274561A27EDAC1604DB7373F454173F127D580497A4C5214F0DD37B339CADE38C57AF44E1046038C0CE89FA8A85D8DA7E8145451061A29D6BB06B298FDD57D430679DEF264E9F1C73B8B790F532B307F44997B915939F56556E4A2F2A8DAD19FE9C457F3FEE34B81391B99033B5B067A46167C2346C1F95CBEEE82821C056D6A7A5F776E6372272285D0929C9706947855C7EE40ABE4CC5B0AD74497D3F2EB49C7B5AE3241078745E0F7F873FE1D7A14E72873A9AC66F9F8853A3F2D956DF54CCD4FDEB02F6C22ED57F92A52311D017D9D570FD1EA2CB7CF610C3EB9C611FEB29C0CF32F34A526076F59AF7F8E2D683BD564E0F48F951AA71BE1657B0F496B9B8F23B313F9F2942505E52B7D1DD0122843B1F958D0BC1EFA69C212ECB904A759EAE6C773261B50C05E10909CA2F874542195F3EDCC002267C9A711DA781B03CD5F49279C2B476578BDCE0B01DFE2E388289A1E4DE62C49CE2211544B76FE1D863C5D341DA5C7B32F258B33E20048C46ABFF1EA6F3A97DFACCB599FBA78380B2132F3C82D997D3DC6AC46D56A61C0F0FA36C1207400E1EC2B2E4AD1BA9843A622C74445111B914BF12CF7F028A8022BC15FD5DBA031444B8268E43D3BEE90A17CDF95442AE19FA5176C2C6ACEBC1CE8BC49CBBAC91FCE989053C0EA4A4F1C3F5C2A7A20FC462057D39F44D9017141053BA49A18E67BD80160DE28D5DA7E7F761AF45C7C727BE5BF3EF8C33BA8A188AA701D7DD32564D82EBF1A0735CBA4C610A7A95A027EDB9E0E1C6DF79B8294CF774E81EFE3174910F5FE14EDA1A8C661E76DAA14D759DE43F1C2BA7BE11320DA3682AE632C683C1EA1CA4FD107CA323552806D493D8D805644E1A57BB74A7EAA14851038058363BFE34BF52D819A1036A0D63707D00D1185D0858C5F5CA847407DC4E3479FA03585371C383CF8D77D4EB0CD9CCC790981EAA3AD7C478747362F20037AC5E43499FC3FFBE3BFD3EC1DDB4F1F618BD28A6FE3A9308CB8621872F76E8727B6F3975C638A5D067505D14C405E4486E09A158C8CFDB45F623BC640DA92667D555E138DA640D3756B4CEDE2463F7CD8BF5F2DBC6EB15A4AF4BE1136B38CEE90417F704A5DF00C1EE823668E7799DC0A58DD7DECC0D6D767BCA483010445B27E74", + "9FECF00B236C219EEE5D2D7692CF0735E51337987C08271CFEC7F138D18CE81C95CE0FC4472BEEA1BDE3BB1C1006FC405C1E978E9D8D54A0F617AF1D04CBE2E3A49A2774611C68A9E95FE83C9C020FCA60F81E883CF50DD85580ACF348C7F2B8FB3C3240DA4141BA22FC482EACE88723D4241C23AC56A7C4070BB4A1F3B42BF3089A6E3A7D998EFC44BBD9C16C1F5573C45B1BEF3146150DA92170F2527B831C5B17D4BF1CFC60AD5D439D8D31574A667D5B614EEF0EE765FD52FDF7B439C62EC958F0D8C9BE9CB62BEF54A81887535D221D6383C582B7CF82FB768902C3A407C8C07EF759A5F4E35448169F9C5521BAF159A6FD5D2F11C83FBC34058BDB7FE5164219\nss = DD789E66587EC52EF9C471D0F6461D5DE7C2C072CB44084C42AC17AF4CABAB7A\n\ncount = 67\nkeypair_coins = 334382D39164D1989696A2FF77B25A28AF8BEAD9883B5365EB6FCCA7C1781CC98AAE27E7D301495DAB212A61FD3F209A8068FCF9A61AD83463C00D2CAB426633\npk = 9BD11C902A159F41CB5395BE189B1B7E98CC23658DCCC7BF9A843A77B2A6BFA27BC941B04F391950D998C607A59B49330811200B38B243060B55E381C078100DA84975091F3A0ACB06F22AE3FB1B7D756D36F54200A367C109B13CF40F3671231D5B0CE9E5908776768767209F4726C54277D0F8B0E05BB4CD50BB5547A01051C89ABC4A352745316C8D85A3187D68382EF05DC96294446972F4C76C7B9B91A4BABE06FC634E76AE4B778F939C308F22B8C816BC3FD6B48E168F5DFBC19FD8CB7E4686BF2325CB060638C723364B27C8E3123FE26CF9862F247CC31C844AE77754206B03B497BB3283CC7E38664B23771F709E1D308CFAF5086F25ACBD04CBD9F1612ACC2712D129C9C195BC024CB057B0766AAE7B533E60F04D947947F920470BC37E5EB4AC4FA1C48066877B4456D4EA2A5EE089DE38A7FC7573FAE5480BEA823727132651A85D873378CB97D6F7BE1250A94621ABF5EABF0114952665CD2A5005AF338B36D19F6E4C8F77E2CFB6F24D3CB7A909315A026B5AAD50A9CD4BAF3308059A91323B1C226FFC76B3565CD9386592476B76057E3477C8B7CBB201CA91546A2354B59328D411A724CBD8B3689EFA335D879996FB0D1D2244EDB361BE4B2489E84086F4A995F20FFA9404082C4E66061D3EF668FC155BCE04916C92B8FA46B77A4A9FA82C8C0CA5A5A5245883D25FDED230E74B22394169464BC33FD51FB7F2AA9214B1ED546DCFD00AD554AEC80882EC170C6EC44794204170D738EF9341D6034920A7AEC3B68FAC00527B2812D88969C6207F9AA122464A4D76320EAD6271D2836E574155310A756CD4249FA7474B301CA978A0653935B7740A16C50DF1EB678C1BC3EB451CF6FA35BEB903CD89CDE0AA58A43BCE9CF591286792FB3B5E658B5A32196EA24A4252B093D2AB40884C39A4ABCBD19B108B81172E18A84A288AAC2982D113454335423148168BB6B9D97494179BBA1EC8760BE59D06251B94B4BAAF82A6481C4A8F33B0FC3164635452E6497F992308688352CBF44537C618000536F9C41A64361EE162236F9227219B8B84A3984C649EA82211207C974F6C7575027AEEF57E496A58CE2719096A58E2E31E82844F4D674A4CD9CFCADA79AFB0C63E634D2514BA4D8604CCC42B2EEB64691AAF23727C93C4ABE1423C27B3B7ABF0B649334760056E591C32FE812A753723F7C93EF5524C8E0267DB177E6E55620715688CD0AC70B2A90E133CAEC86945BC74D7EA1CB88479A37B45EAE4993BB7048E5316BF66B9715591148C9A20A35412C2404BB62C512B3800B9AE104453D95ACFFE000D3AE85B96D8092532796A03039BA2154F84AFA4A402ACB673B8799441BC505E836C3B558E1FE2057FA79153E1630D72AFD96AA4FE9C0ED4822AB33A559719B81D274EF0A2773E405761A036521278DF5AB3617CBD89D7543CFC7C6AD373B2D0B781DC78DD3B2AFA34B6565979231681FFFB8C62843DCD11686EA59406E23CDF96AED95554E47027C5B6976F5515BC40B0E3A31C556219F89B73C0871E1FF552CA04C33DAA4A363794CC7C0E05249B53D20460EAA8AD217787C8C9423A7EB71058B5A8081B82454DC91F77F8608D60CAFF30A7C42424542A1746F0F10FEB3F0FA52EAAD4F2D4C36E59CA0A5389566FAD53898992A17BBE0A0F\nsk = 9BFC3A71FA83A4070DB5064ADA8410A770845E818C49B91E09A251E1925EDB226EE8AB153F94B2417560D88959113A6BBC854B0065748E6A7DB90977ADA0216F3C41CFF70E5202B306CC22FF8A138C360D75B9CB1BBA849C5BCC8C9B55E80647E513C9E3E15F66A144F013822DA24266765E3F1125F435BDA4C46EF57430EAE331E1D54C91960EEB363CA25387D0D441ABB930E4A7C329191C5FF7A87996A4B1AA74162611E67B303E284C7098A65069356B55304B11B8BBA66C5829647493C09BF62166017977A988333092EFE98D9C13A2BCE53F8EA2C81A0099B7D5C2B11704971366A5565CC14610DF796C604700680226CB165E9ACAA6AB507A923B4D472A4B6C9424E7F5A622F87F4F8A1083B4755067A93C285CC0748D241C7051971128CC5AF4DB5C1F7C144F98B6BF9703F5338628CA22DF4B84D10312EDDA9DF71442464A24491A62687928C22455DCC23ECA964E9248543520790D813924CB58A0C156AAFBCF63906EC5FA891936C7E16B5FAFD98026D64EA2012BD75B6C5F376EEB74AE9B29CFF7041C650B91A2B852C021562BA33B66EBACF787BE40810F22AA43F4174571C77710F775D1719968A5523780B613262F94BC36B611B63F460DC6E02CC588AF99F164302276B0386E697469C55928C0E62438C25AF90577DE0883CF45819262905ED30D9A1A7918B82F9B4A28CA5B8DD1D9AD4326ADC7BA69C087765CC6511668CC0BE83D510245F8834E890662E06774F389C0C623BE3212AAE5ACCEDB101C43463B68889EA9A2C21AA0ACB5329FF80A336F8914FBC602E2B9AE452647777651CCC4BEF70AC06423B66EC5982C861AD9723DFBC834CA6A6433174C1D6C1AB9569265A96AB5D48495D72122763B3A7275B297713F1A729BDC48329B64FFF9C45955C6091375D4D77FBAC540DACB140666610EC7A15FF18BC741AA69425508D5CF682BAFB6D3C9DFE02D80349597F56FBEBB7EC8031FE71B6D6C065C4E6B5E5D17ABF3B412DED81EFCC8B6B1935FB37B467A5CC61F318AED20678800726509BAA73BBA244030500050D4B23E4AD71349CB0877566AD100BA77F8B409BC8F0EF8CFBCFA3CD1BAA1935C9ABCA798FF6965EC7B53141B6709597BC4F9983766403ED80DF4095D59AB482FAB7FCA432EF5E76AFFC77F74F4CDA522A0085A4917D04167A00B09863850D6CAA0621C2D473DE0763B7D3168B6147BDB009EB260901FA82013C8C0A3F6C39DE3CC49A773D08B357EF932077B5BAB86391239B3C366C43010AD15EA2EB1E05267029E5AD8139728A907B98761B65DD6DAB895363159B48875FB6AA80882256A04460B2977280688745C5914C089B37BFC949A8F9864AFEC2E4DC13F6092070EB561D09B530EBA2CCD66B87B0986ADEA1933448066521E28AC2ED9C57EDE492799B401CDBA8377D593DAFC1A0D233004E25877242C30070779D8BC5BB488DD3988004B5A8554861B560EBAA5BFFF7C89DED193EA077F421C216996C1445B165B912901B217315636A168C0216AC026FBBD4239858837B02DAB5A39D1BE6B072468A264661C5E34F42380C66526377C990092434BCB551A744227445C5108FCFC3CB4526D0B711DBD4539CEA05A08A78FBA723F9BD11C902A159F41CB5395BE189B1B7E98CC23658DCCC7BF9A843A77B2A6BFA27BC941B04F391950D998C607A59B49330811200B38B243060B55E381C078100DA84975091F3A0ACB06F22AE3FB1B7D756D36F54200A367C109B13CF40F3671231D5B0CE9E5908776768767209F4726C54277D0F8B0E05BB4CD50BB5547A01051C89ABC4A352745316C8D85A3187D68382EF05DC96294446972F4C76C7B9B91A4BABE06FC634E76AE4B778F939C308F22B8C816BC3FD6B48E168F5DFBC19FD8CB7E4686BF2325CB060638C723364B27C8E3123FE26CF9862F247CC31C844AE77754206B03B497BB3283CC7E38664B23771F709E1D308CFAF5086F25ACBD04CBD9F1612ACC2712D129C9C195BC024CB057B0766AAE7B533E60F04D947947F920470BC37E5EB4AC4FA1C48066877B4456D4EA2A5EE089DE38A7FC7573FAE5480BEA823727132651A85D873378CB97D6F7BE1250A94621ABF5EABF0114952665CD2A5005AF338B36D19F6E4C8F77E2CFB6F24D3CB7A909315A026B5AAD50A9CD4BAF3308059A91323B1C226FFC76B3565CD9386592476B76057E3477C8B7CBB201CA91546A2354B59328D411A724CBD8B3689EFA335D879996FB0D1D2244EDB361BE4B2489E84086F4A995F20FFA9404082C4E66061D3EF668FC155BCE04916C92B8FA46B77A4A9FA82C8C0CA5A5A5245883D25FDED230E74B22394169464BC33FD51FB7F2AA9214B1ED546DCFD00AD554AEC80882EC170C6EC44794204170D738EF9341D6034920A7AEC3B68FAC00527B2812D88969C6207F9AA122464A4D76320EAD6271D2836E574155310A756CD4249FA7474B301CA978A0653935B7740A16C50DF1EB678C1BC3EB451CF6FA35BEB903CD89CDE0AA58A43BCE9CF591286792FB3B5E658B5A32196EA24A4252B093D2AB40884C39A4ABCBD19B108B81172E18A84A288AAC2982D113454335423148168BB6B9D97494179BBA1EC8760BE59D06251B94B4BAAF82A6481C4A8F33B0FC3164635452E6497F992308688352CBF44537C618000536F9C41A64361EE162236F9227219B8B84A3984C649EA82211207C974F6C7575027AEEF57E496A58CE2719096A58E2E31E82844F4D674A4CD9CFCADA79AFB0C63E634D2514BA4D8604CCC42B2EEB64691AAF23727C93C4ABE1423C27B3B7ABF0B649334760056E591C32FE812A753723F7C93EF5524C8E0267DB177E6E55620715688CD0AC70B2A90E133CAEC86945BC74D7EA1CB88479A37B45EAE4993BB7048E5316BF66B9715591148C9A20A35412C2404BB62C512B3800B9AE104453D95ACFFE000D3AE85B96D8092532796A03039BA2154F84AFA4A402ACB673B8799441BC505E836C3B558E1FE2057FA79153E1630D72AFD96AA4FE9C0ED4822AB33A559719B81D274EF0A2773E405761A036521278DF5AB3617CBD89D7543CFC7C6AD373B2D0B781DC78DD3B2AFA34B6565979231681FFFB8C62843DCD11686EA59406E23CDF96AED95554E47027C5B6976F5515BC40B0E3A31C556219F89B73C0871E1FF552CA04C33DAA4A363794CC7C0E05249B53D20460EAA8AD217787C8C9423A7EB71058B5A8081B82454DC91F77F8608D60CAFF30A7C42424542A1746F0F10FEB3F0FA52EAAD4F2D4C36E59CA0A5389566FAD53898992A17BBE0A0F26659F74FC9EC372FE18BE4ED6AA28B7CD84AD1C0F0115DAD011A11D20FDA9ED8AAE27E7D301495DAB212A61FD3F209A8068FCF9A61AD83463C00D2CAB426633\nencap_coins = F9E9FD68166F1EFE1916C2E0868E30CD14CA6A7E07C44A1E5ECAD722D016A3BD\nct = 2D8AA97BF288CB53DE8205E31C5153C11BB4E19DC1512DD69D98D5624367BF69AFBEC4CDA8104E4E003D2E400FC8D3E596127D5639D3A706FA54CDF482F8C80497F7EACB29C4A06C3998F31D10B253D0CF1597D5E9A0620BA12520", + "98DAAC8D56BB09D867A176D4A56FC2CD9AAA306EC6F5F9CAA7BDD20E8F88CC55D2D3CD8ED2735C9089B734E72FC23DE227955CD9E186D267D32D0AEB249E6F18E8D5EF7E562D881B03A4AEA338B7508C9BDE20739739639EAE82C9B670B9761747061C695ECBF2FAE1676943A37CCEEC46A557E69BF51EE43A34FF1F1BA34974C51B86A15B4B2AF50B2CAF8BED87BF79C10E610750F7007B4C57191D959F00427CA9B84406BBC720828AC72FCF123E5B69496CBB008914763D8ABC50195EA452829D585AFDA008987869E5AA8B6601CF8A1EB2667D9B6F5EAFF921B84AB372A30F379D8A1E59BF802452B9ED55E1486070BF6B3CC196C8CA35ACABA9ED0196F0300793CD1ABF81AA8B3354F49BB05B6A787867D915EE605A0E11199EF8E7CBD7C22319AD9E2BE11B8DBAEE03332BE8B2297985A5A3BA63DE4A328CCF0260472558486D188DA99AD1FEC7DF5D95EC3152DDB5A7A2BA9B5F270A5CDA5FD4BBE64B862472D46ED46B9A91EEDF2506002803A5E3E31230408D25792894C04ECC29E801727C9F5849938EDE594807DC69D76194C54332C1B22DBAECF87738C662B5EB93AE22F68C5528ED6F699BB0FAFD935B10D677FB513E9E6F60D2788123F84C0CEBE6C7F8019B7B3807FB78C60604304A406D6B3A77256297A91D0A493F2BB7E2B8E400D8946D47E4BDC2DFD734A9A9EAB4549A38DA545C61B12ABDEC08C01A9997D4AD66B35A219DE35008B3581A9F8B8F08109D249384CEDC112D8C4A43D4EFAB6AF8261ADA5F9ACF7D42CD745FB7B43D1223B903A74663FB7B4315E675CF9C08ECDCA0B7468BA88824B5B6A93279211B67115F0C1B9673834D63E21668DBF894ED536252F32F6C131E41B9741738123C4327E732C0112E9CD0788E7345FC071B70E4FB3771CAEAD56B699159C48336D01DF3A9BE2DAF2E7DC20449279D2C8A7E388B3F04A1E920FF03EF262A354232B4B4AE31294B9C7EEC348211456FE7EC6BDBBC3CECCF9A59820E2955E0A4DC27BB422C286FF14D546947C8E18717B330C6A8890442F1901FFDFE725B63636CBDF9BADB020F9857AFCBEFD82F7EE46FB7FD0C0EC795619ADD7A759E3F2E932F21B38C2E2D13735A0F191F83793EBB075E951B483E72C5D2B5FEE4CE22C353454C0F5593DF1BE33C6AB7E2B12BA06F9544E31EC6AB0001E942C68E7AED27D8B86A12EAB4B1A2D757C1E52FC4B7064B590CBDE4DB3E370ED441184CC0E172C83D3BB60EE7856D2D672A8C9F72EC026A5613E26FD3A51F07D0C21BA0BB4F9C53673A6F27088B902D261E544BE549E3B49DDE516D8C35A05BAEC056258FB481FAB058744193A52D6CEA955817DCE729A82D95AE4B022F6E0E1CE9AC3D2389F903ED99115E2DB8393AD45B20C3672AAD9B2B168B9BB080B6\nss = BF7EDCACC71270DFFBA4D5981F98CCAF7502F8D8EA4A482C1D38378ED4D25CB5\n\ncount = 68\nkeypair_coins = 6995143E8EB8A6E93840F76EEC844F67D2B5F75B1839A5040337E61F9806764AC30E299218D4A39C2EA3FC06439FC4C411E99BBC34B8F30D23845E91E71FEF3C\npk = 8683354B3C3F035586B50B88C4140F346A05ADA7CE4BEAAA5F096614CC767AF89FFCCB95124B00E8379EFAF76CA381AE4886ABED9240BDA4710DAC62A71017059B07921C770DA1CA2D209338536C3A9B5238313BCE565FB861BF8AD3A78F030B3F646B34347F1D215E8EC1789D602D92A971FA3C2E892A09CFA68968F96F206A7535766ED7533497FB051C8036B0AA81C2C802FB7333CC6744EC830E4BE56EF1E4874371409486C477CC4EE90092D2919F585BA21F32BC973ACAEF42B4969746AB2618631B6536EC298B2828ABF41E24776BF288CA6A4A8094D63C7CEAC44854BA9E4837E44B3A7B269D6CCBB6D1712E9FFA937EC5194A3541E3FC9C685102F9A47FAA077FECD688D607996E5B60C1715E617994B842B46574B87086A061488BB2445B357A38934B612C16168E662112756BFD764A4FCC5F7B1634F6F28094464D600046EE03B4540C1049BB3D18F783FBA2AC5BD36ECDE662D9E08E2A89CB754B090DB7175277941E5973D010AE08A4B4C922AA99F47F657A49C3B81FCDB54C905A3010405ED544BDDA9942BC857B6D979F796C859E0627A5212543477ED791C2ADC95FDFAC9D21D19750B8B5DDB95F02D721A9304099BA6B2CD0A40C1A2F9DC1649B2318ACC93A5FBC52E3F4900BB44D20A7250142AE5F3B77C0720C77104B74C78EB821BD32E260051C499B5CCDD9D716521163557B5E4526ACAF09A2BEDA04994188A5065B4A975B215171EB288024581CFFA37D6289813773B29F1C0EF5587F9C98049F548D2A0C3A5C71C1693B5EC8C64CE0267FDF625485DCC4B5553C5736A0D0623CFE20596F984C014AAC0380BA9B58257A993B1BE3BD2CB9AC25912B36B2C085443074F093510A46CDE5441EE3CC88DC2CD636A5EF77310F91CB21ABB149DB2541407726582B54B50306CAB4B5356492C220C138C64B4AB293680E01C2AEB369BD611064FD8955B790222BD5997DD76BFBE50A2BD039C1F14F0469B623C53195A3B2FF068182D951DAB05FFCE9A6C8FAB42886987B7999043C12870965BD463980AA6B35E13B5BF9C25B64920D7788A291A98EBC30D3785783C27E53CA9AE809004F23706E3CC0B9AC0BD571084100299C932DB2933CD91566AAA367371B16069A706BE664E86107B33B1CF05360248C808EA250FCACAF9096715478463932A1C632CC9A185EEB08583A9309259C567743995AF013216B1086815B851655D0F14FCC43682720ACDFC36F35806894177EA2144F6E28837CC887E560874DDCAAF60A3580FCC7A5F1733180B1F1202A08182345370CC5C46CD28A507AD846D1D9415AF679D4B22EE560C6C1B2499D5B74AA2758DA090E62713343B3A8B14C68E415A3F196C2573C5E828A16CEA51443104F9CD899AD03C3B727774B48AE61DB98FEDA4C1E029B57F89D1735381166B70450215AF92120CA61A8A38E575ABF2CFAA54C613031A9BA60275D23178BA553A3ED7179AAC44FB3607E93C1C57C7BAD6854533844BF3D6A9B95A966F891612239CF6CC41DF1A859AFEA9C0CEC6D2679CD7C71C2CF251DC9759666C871853A1012294022FABDEB2269B430397F337B3F416E528748903CCB8B24C8FA28197244C0AC3A0345E699B247C863E9A58D8CAEE564224FAA36C70ECD281B67EB98908468420B38F3C24DA9290EA98B24\nsk = 5E484946337E3F4135D738B0862B69F7B247A5BB0812D56201300C53BB87B798B2B551CCEA75A87F002D7DE7878ED08E976A2CB62B4AA559BC36816E9690973F608B262612F89B5BC784365E33193FE9013C05818E0A7151297EA53C95089388BE203071D0335535436C799F6D3AA3260A9C8C9C9E36F79F13135C3DAB92914137C33773660AA15557C32B7A086A5A1CFD125DEA60183ECBA94DA22F0F3A18DD2131BC792C4013B7BF84A7840C976C53117653C4F947839D8CB35538BB97899418688A9E062F9FC17D77450D85261AAB01BD9EE77E917966BD26BD3D3990AABC8561CBADDC5A22F8C80D99453FA7350B2A022E4CA48DEA6C9C07309543611ABFC7CDA76AA03E51ACFDF0CC73921EF2D02F45990AEE50CA77B93F14E4BEF44576134391F7B67658E1CC7876713742267A556EA8F562BD858B24E04314B025CCB5BE0650642A23460C3C65E0D6CB68232CFF709204B7B7CAB0741807100A712686B982F632095D7730DD9385A7A26C23741474E12CD8FC259EF346B5F287EB01B046104EF8415372B47DA145AB0C5C1774626B5DEA7D72DB4C62FAB14C03CA51384420690A799194E8AA05BB914DB21956BEDC948299BAED7289C884AB9833C8669422ADF51D4E1A0466056EECA478F11AB55CE2CE34430ADDC889044A5601357EA6A5B097B54252B046FA83C0211C236953954C36840E390D2707848C0B879ABA2354EA200FCA56CBB86C0C2269A81C790B966893F782AAE9A4BD1B02FA85995A757FF2083FD26347C97711E07560AF77CB59C7CD64F7CDBC880AD26A7BD7FCB9B210710E581C49453A3200AC08554A641068E6879BA6665AE9F281FC14C8FBFCB0CAC0081C1A06DB017D80048B324248F699825A489D0726893E109127A0AE802CCA29AC56F6118D209A54CB842C9A8C539E43B9681CB868018C95D872C532A10A77BF52A796D33187FB8AA3FD780BD2C4B30FB7394DC64B0FE05B81128763A1325BD00EBA411247B1C22A1146FEBA1B255C51F74999DD29A9453151BD9869E3D548347B93C1B798FE92A053B88C80D7AFA5C561D31435D61251253B9A4C2B0F42830C81E990006DCEBDDB7002240EE8E276D4E31C2D249B84414F3997B9C4F5C0698CB2A24C48E3605F6D704E5DB734EAD12D62634DEDC68ED6A1248273BAD5ECAC0651978B098FFCC148667671D4B59EA6095B0B363C31299E5B90282F914BEBC66F6291338BB7600C8310B83963336952EC33854ED7C979B71F30188180B11BB66314C93242ECB890123C9F2AAA786ACBC7DBF560CFC1625D06C3828998ED51B79D28C583BB38719706D1D67B9BA5A556CB9EE1DC4FF2C53C33969F2F97BB93056729F65FD90AA2D7113EDF611C521761BE671FE37BAADA7A2B4A114DD458A19966A2A42914D61B47AEF5ABCCF8240C88AF752B51BCD0A3788C2AA38AAD8DC00D835476C8386DD3A8628B261F1D6B2B9F771842C97DA7BBC3D03696F60524BE6476430044F6A8AA48C22901F750DC55C1EA7813EC3518B26B3FD0657EA6FCB6BE94C026244A0401593664673FAA680F866E174143B0CC086FDACC1F7126C3E941F090332D8487D5E66061D5311C9B5C8EDC39BDFC34948400A9A3AFF3A85A8683354B3C3F035586B50B88C4140F346A05ADA7CE4BEAAA5F096614CC767AF89FFCCB95124B00E8379EFAF76CA381AE4886ABED9240BDA4710DAC62A71017059B07921C770DA1CA2D209338536C3A9B5238313BCE565FB861BF8AD3A78F030B3F646B34347F1D215E8EC1789D602D92A971FA3C2E892A09CFA68968F96F206A7535766ED7533497FB051C8036B0AA81C2C802FB7333CC6744EC830E4BE56EF1E4874371409486C477CC4EE90092D2919F585BA21F32BC973ACAEF42B4969746AB2618631B6536EC298B2828ABF41E24776BF288CA6A4A8094D63C7CEAC44854BA9E4837E44B3A7B269D6CCBB6D1712E9FFA937EC5194A3541E3FC9C685102F9A47FAA077FECD688D607996E5B60C1715E617994B842B46574B87086A061488BB2445B357A38934B612C16168E662112756BFD764A4FCC5F7B1634F6F28094464D600046EE03B4540C1049BB3D18F783FBA2AC5BD36ECDE662D9E08E2A89CB754B090DB7175277941E5973D010AE08A4B4C922AA99F47F657A49C3B81FCDB54C905A3010405ED544BDDA9942BC857B6D979F796C859E0627A5212543477ED791C2ADC95FDFAC9D21D19750B8B5DDB95F02D721A9304099BA6B2CD0A40C1A2F9DC1649B2318ACC93A5FBC52E3F4900BB44D20A7250142AE5F3B77C0720C77104B74C78EB821BD32E260051C499B5CCDD9D716521163557B5E4526ACAF09A2BEDA04994188A5065B4A975B215171EB288024581CFFA37D6289813773B29F1C0EF5587F9C98049F548D2A0C3A5C71C1693B5EC8C64CE0267FDF625485DCC4B5553C5736A0D0623CFE20596F984C014AAC0380BA9B58257A993B1BE3BD2CB9AC25912B36B2C085443074F093510A46CDE5441EE3CC88DC2CD636A5EF77310F91CB21ABB149D", + "B2541407726582B54B50306CAB4B5356492C220C138C64B4AB293680E01C2AEB369BD611064FD8955B790222BD5997DD76BFBE50A2BD039C1F14F0469B623C53195A3B2FF068182D951DAB05FFCE9A6C8FAB42886987B7999043C12870965BD463980AA6B35E13B5BF9C25B64920D7788A291A98EBC30D3785783C27E53CA9AE809004F23706E3CC0B9AC0BD571084100299C932DB2933CD91566AAA367371B16069A706BE664E86107B33B1CF05360248C808EA250FCACAF9096715478463932A1C632CC9A185EEB08583A9309259C567743995AF013216B1086815B851655D0F14FCC43682720ACDFC36F35806894177EA2144F6E28837CC887E560874DDCAAF60A3580FCC7A5F1733180B1F1202A08182345370CC5C46CD28A507AD846D1D9415AF679D4B22EE560C6C1B2499D5B74AA2758DA090E62713343B3A8B14C68E415A3F196C2573C5E828A16CEA51443104F9CD899AD03C3B727774B48AE61DB98FEDA4C1E029B57F89D1735381166B70450215AF92120CA61A8A38E575ABF2CFAA54C613031A9BA60275D23178BA553A3ED7179AAC44FB3607E93C1C57C7BAD6854533844BF3D6A9B95A966F891612239CF6CC41DF1A859AFEA9C0CEC6D2679CD7C71C2CF251DC9759666C871853A1012294022FABDEB2269B430397F337B3F416E528748903CCB8B24C8FA28197244C0AC3A0345E699B247C863E9A58D8CAEE564224FAA36C70ECD281B67EB98908468420B38F3C24DA9290EA98B242CA3D8AD2DAB1DD8A2F4320658FE6EACABF70D907920593919119CF374516336C30E299218D4A39C2EA3FC06439FC4C411E99BBC34B8F30D23845E91E71FEF3C\nencap_coins = F866365324CFDF8254EA0B73B7947496F9FD24BFDC562DB4857EF5C659441CF5\nct = 3D885E27EA316A5E5D77716EC827FFA87F96CFAD628292864CC7E15460BC40D60F945AA64DA35D5A4B2C11C6A82C8A61C399ECB4D5EBCAD661A2BD3D3E0C51911B6C4AF729189CFAE2B84E60A92CC90D829AFC55C1698FF4807F097574ED5DC0651CF6ADC9FFECD6EB9FFF011971027D1521E8623620C4A68572206F91DC57F9ACF8830ECC22AE7DDCD8531E3986C075717B2A59346328ED9BEB48EFC2540F2BC35E8C1A56FD420C997857DE656028FC04B23F29539529D14A71D4695E6B2FD89410A90B1D417CFDAA8EE32C8D5997FF70C88F13BB5030FA59590F996F98032651C12DBC6CB83E507A276E59F1D909C1A6087A2C06403137E4670158D1A0B840466DF2DEB4304F9D1B0218E792692B7F5CA1E227FE5B0E1F215118CC96EF3BEE1AD899B5A6F9997B325BE2EED66C9D0A9971ABF9C23F1384FC40E2BC8E722EF8064884988CFA12B2A416A420ECAD52D415E17B8BC79AAFFE8052CC3DBABDC2A8DBB67AA35A6A54384AA7228B372313807C57A848B3B8CAC78365E8A37357C59E93F3CA959CA3F04528BE2BFD1BA47C4E2C110566F9547E0866276FCA8D37770783ADA1FF043A4FDD265495EF667721A1A8E83CD822528BEE0BEFEE37A5EFEF927D18227FB6F7BA0FE1A07BC300AE281B50AE884BA38D5DA90F456537395F51C351B8DA505C94F94F12FBFA7362C295DD3616B337E392B14BD74A1923FCFEDA5F81CE02AA978952A5E83AF7A9FAC5AF0513DE1A6173F98B3F89CFCF7ED13BF2BA6AD405D3BE21FE673FAFC8431FE5226CA0DFA075E5353555B35E181511404C91AC75A2EA3F510D2C7721147E243C1BD2627A824F70F2E337D39CE34532293DAF09C88E0525B4CFE0F187DC713FB488BFFEB5BB379A44DD5BB37142BD08B8308DB8E3C61FC527A28F31D8E21E53FC32C5941E0A267164F8FFDE21AA58290BF5302A0684E343C5119F832174E2736AEC1483233333613FC3650696A8E01FAD1D9AC277A9B3AF9D03BBC71AF37FAFCA4879CDBE81DF809D3446C3A4D0CAB809A789FEAA85FF121CB6E75CA9289EC4129C105F6EC231872220B51ED525DAAD5203EC3D20D3965FA7C565C17B69933ADAF2D8E3E3DD024283187D5D9CD92A1AA47AFE3444408281F4F996251EBB30D3693367D59CCDFF815D8DB9D621D92127CF89EED459B121C5B28C23654593081D94D8655CB7A51B63AF581E421C735D113BD3C6B952650D38CD89E955C3278EA3282D68736934DB0F56D22B78B47E3EE1C26CAD26A5123F2261C5AFDBA1240E55ED955C3FA86343D3DF901C5C14EAF9B525391C68BFA38FC92A611AE88FA2A518B7361F527E4EE4DBA8BCC2A08E130C230C188EC57E939C6921F7E3ACAFA4C1A3A5D65E7BE4175829B3A494BCDC9CAFD2F988A76470CDE8B21F8A391AE05689C91A9708DCA8B58BB2688BD0652F7716A17F60E71FF39C918082C37EBE4F0B2EEC569FB7236C609EC2893687E1A400CADC619000A128DF5A5F8EC82B493DBFC6EB28DB6D910D824909601A89E3CD83C3683A610F\nss = 792D526ED63F602F8D353C92E76AC32B021ECC7C5313697DCBA7ED953A099BFD\n\ncount = 69\nkeypair_coins = 995EFF7E0D195C6D0533F3DC194D47E60F9AD14696144CDE694D60A95F3E96B4A33923382F8863478882483037FB1282FF917EB6658A7154C6AD64B5858C629E\npk = B147B4694B12C461130F3126F8F71673E4643B2147DED2A7270AB360F6303DC05B03A314BB776C488318686069C3A4C91CC62435E829A6A8621EF5CF838311A4278D7F453EA5484D32F94C2E9628F5532FF93771DAE106C8AC9CC80AD07D306B1DA78463A08226657680E5ACABA6819543CD96194AA5973D4F7B8682B13A07E7A5194C91EC95A2D671A2627710A4C78AA107B3707942D0C78F3EB2B3A58B7833FCB0FD7785E349A2F0027AFF079B62A68E3F425122F7BC0A0B4C053A6696F90A67088F139B2A39F542D6439091E4C1A0824734D8B6E5E6483F48CA738C39A5BC2016C0746CFA9C1889297F5377D614ACFF2833CED20ABED0AA6C7024221B73D53610575C6D91A262A5E834ABB63CF74207437B31B1E989ECD7416B2C4E7BF807B5F8973006877E204A42774C93A1B394E885CF727B7FD286DEF2B4C8D5684460219C31B1B225AA08AC2EE1DA3922E935E981B3B5E2C3D044A784BC965A580D3052AC48000EF6183B94B0A870E65207BA8029C0BD34A10443E5706792207FE2224DA533D307C3E3077E6E1CBAD064B0399ABC6F445B651864F18B42E1A518FEA187BDD08072E47588527C3B9A5EB244AE9E910F93C92B69FAA7250BCF38E68E9C3A2B2B733B18032F37673907097A4CD65A9B396DB4859312D59113E07B39746C52126EA697A69929B1B625B5AE1B809CE9A811D13CCA70971AE8BD6AD223206691AF6897F136CB451699E0A19739D52D60CC89DFD654A320A79B2C7CD55116843239D6847B8BDC1EFA29CDC0A979F0E3A8F225A16FCB7996FC8CA3E79FAB55B93DC2A395117426A17AF4D404151814CEC80E856B777EB35085F1AD14285078803C2D76AC1D25C3F8609AEEEC4ADBCB64136516A2077CFF4C13748C5D1FE6386782688D944E0027A2F8C9AF77B79352EA5523767CBDE4577877AF1F8017E4DB244E833E99DABD0FC70824BC3C50A38275040446A5C74406873BA0B5BFC2570A406570B424727379E5C1C39EC194A29A8AA249844BEA2A078C1C0F25A400D6BADA80731A00B87BB5A19325B4E79B78AF0BBB2C52C3DB38AE552CA972C3927291145438115A952BF2A85E78F6141E1CAE8516B056E614B7015017E71D54268AB9919B7EBA09D196768D99651D60A334FC443C8CCD9064A420263A68531F0E86CDC48776A3D44B4726916273A0D3002DE095526257BC5E6246DCC10814D1907885207A53241A184AB7E40D87148A336A33262A4BB0826B417ABCDF957F68737ADEE682194115348AC58814661765BB321254A874C4A3C6745CF984528C2B9726AC35441015233219E169D0EA761425C06513720881B330185B48BC271B275DC024419D8761EB23801EB704F6326F162656713ACC2915A1A6F877A583C8372CC391EBCF2CB22873C5BD22C58C80640CCE759B2C09B368AB4AB504C613493479B7725A18811837213F9237734577AF09C4BE0B3FE07AB78B712B0683060BE76920CC5FC56993E56C7B46A543AD675B2D13357C008911320E0D292268768B8370C66CE757AF191BB703CB5732113ACB8F02618EAC98693224ABCCEA04E7B3157C03B27A3CC4F0B880DC4877AC35077C1C2D5584B971261D2C4BB767C75907827AD7370F4074721445E155A3A1624CB4ACA373DE6947F148CA7E2B3C93605E706EDDD992\nsk = DE4627135B3976B8AC07C0059BB28D09E98E3428228C1786C2E8A1D6029D93CB9EED217D09B03E9A7561AF7441E4271C7B6C8C862C5A93E955A05A87B01A63D9E8A334B26E1FC0346051BF31D078860A9AFE939F4A90C2A395B2B6C205475164E36A0C2930CD26E26420470B0D068E36971A978B17BE984A418A3CC5C6B62AB00D6DCA5657F71E08B215EDFB88A5B6751EAA525DEA4B0BD41430388E0CFB445DA3347EAA375B86858F19C81B73A4BF88C2F807638D808F78535B9FC6C6BC0C1402E16F0B784F9A22A30E5C6C1932C2063BC558A7B2636C76D5C0CB77E6C5518B3B31D920A23B2BFFF3AB93FB03B3386F670B07655989C5185D5D393631E9ACEE701DAD333379A63EFBCC636BF2B4FA05B84A375559079C5909651E481DA96B01A771BEFC7BC407DB7D9F94B819A468D443A7AA8C9B4741266875268602336C1B1160A4CE5D41C57FB915335C87A72A7345316373D921A6D0CA09606154199C4F06C244A7C568BC5D82449149F92AD3350B51D3C474E77A3A1053160570C876132434AEDD92C8961B95588910102C62AE1A75479175CDD666AB85478EBB6133920E9154441F1383B0F147137614DADC823F1848FA478B1F301D3F745C647C216C741DFD3B3195483F24F1A5313CB458273FFEB559689004CD534EC1369B0C68A873651F7413037118C6F98C538DAB9C1EC649FF2301A03A650CC0C138E79D15F9079A639737E840A7DC720B173BB329A34CF65418495E4DF2805A491A4C96B47D452725850CA8EB3944399F9D14157FA46B76F0891525461113766DC025EE1C2E735198C3DB253A2B8A566CACB81B65A1C9473C6C6DA9743D780685CF83CEBB441CDFDC9FBA20A9CE2943759C4D08C57A0E74BB0E1888E94723169437AEC19AEC1A2A46C81AE4645DE32BB18F3527F4DCB8221A0F7BE74F3F5A8CAB0609BE216465819FB858232B008A855C9E6B54439A67AAFFD9701967BC46A274D1D6AC1D45CEE7C54CF49669E89A44FFD7B73B2A12327A85BF5938E6975B949C03EF3A1D824CCDE033CB175A3356C8A998E4C69D94630A896606FC1979DCB5C172A54EEA2E99D5AE331BC64D708FAE45C514A2544843CA59C3C122947BC3660DA7357AC0E33F55485E79EB3117D14C42EC5C56653E0DD1A4E8205FE571823098AD8D9844A25B92238063A92040C500CC0BC2B25B493E4CF69DE95C87B03B773A796D13F42014847727345888EB06D9251AEDE24D03E292CB452A3A38A0A461C8B4F9CD9F87B09BC0CA98E62E5027595C24792F818865777A346004FE3B5B587452648263AAF688154526D591ACADB74520F3627D7395EC7B71DC3C6E8414985D591A05C88B6455870C48B12C576D7B328B88795295C051CA6293B0FB4DC61AB8AD34CFB114A4C7E44AB4667D4B1948C83C28BAA424B19370AFE997D8B08E447A2EFF376024F5CA54DC8EC0972B96F057ACF5A6B0D32869FAB3E1797EE2571B1620A076082C4BA", + "6799C27B07FB073092A7A2F7AA110635CB94900E487A6664B318F54956039C57CE509EDE489FAABAC96CB11F58C87708A8ED3408A526701BFB8507D67415FE64E7D41081AC12C21F3092AF02810C604F02C4064E348B4F98F6BE65D87650EB147B4694B12C461130F3126F8F71673E4643B2147DED2A7270AB360F6303DC05B03A314BB776C488318686069C3A4C91CC62435E829A6A8621EF5CF838311A4278D7F453EA5484D32F94C2E9628F5532FF93771DAE106C8AC9CC80AD07D306B1DA78463A08226657680E5ACABA6819543CD96194AA5973D4F7B8682B13A07E7A5194C91EC95A2D671A2627710A4C78AA107B3707942D0C78F3EB2B3A58B7833FCB0FD7785E349A2F0027AFF079B62A68E3F425122F7BC0A0B4C053A6696F90A67088F139B2A39F542D6439091E4C1A0824734D8B6E5E6483F48CA738C39A5BC2016C0746CFA9C1889297F5377D614ACFF2833CED20ABED0AA6C7024221B73D53610575C6D91A262A5E834ABB63CF74207437B31B1E989ECD7416B2C4E7BF807B5F8973006877E204A42774C93A1B394E885CF727B7FD286DEF2B4C8D5684460219C31B1B225AA08AC2EE1DA3922E935E981B3B5E2C3D044A784BC965A580D3052AC48000EF6183B94B0A870E65207BA8029C0BD34A10443E5706792207FE2224DA533D307C3E3077E6E1CBAD064B0399ABC6F445B651864F18B42E1A518FEA187BDD08072E47588527C3B9A5EB244AE9E910F93C92B69FAA7250BCF38E68E9C3A2B2B733B18032F37673907097A4CD65A9B396DB4859312D59113E07B39746C52126EA697A69929B1B625B5AE1B809CE9A811D13CCA70971AE8BD6AD223206691AF6897F136CB451699E0A19739D52D60CC89DFD654A320A79B2C7CD55116843239D6847B8BDC1EFA29CDC0A979F0E3A8F225A16FCB7996FC8CA3E79FAB55B93DC2A395117426A17AF4D404151814CEC80E856B777EB35085F1AD14285078803C2D76AC1D25C3F8609AEEEC4ADBCB64136516A2077CFF4C13748C5D1FE6386782688D944E0027A2F8C9AF77B79352EA5523767CBDE4577877AF1F8017E4DB244E833E99DABD0FC70824BC3C50A38275040446A5C74406873BA0B5BFC2570A406570B424727379E5C1C39EC194A29A8AA249844BEA2A078C1C0F25A400D6BADA80731A00B87BB5A19325B4E79B78AF0BBB2C52C3DB38AE552CA972C3927291145438115A952BF2A85E78F6141E1CAE8516B056E614B7015017E71D54268AB9919B7EBA09D196768D99651D60A334FC443C8CCD9064A420263A68531F0E86CDC48776A3D44B4726916273A0D3002DE095526257BC5E6246DCC10814D1907885207A53241A184AB7E40D87148A336A33262A4BB0826B417ABCDF957F68737ADEE682194115348AC58814661765BB321254A874C4A3C6745CF984528C2B9726AC35441015233219E169D0EA761425C06513720881B330185B48BC271B275DC024419D8761EB23801EB704F6326F162656713ACC2915A1A6F877A583C8372CC391EBCF2CB22873C5BD22C58C80640CCE759B2C09B368AB4AB504C613493479B7725A18811837213F9237734577AF09C4BE0B3FE07AB78B712B0683060BE76920CC5FC56993E56C7B46A543AD675B2D13357C008911320E0D292268768B8370C66CE757AF191BB703CB5732113ACB8F02618EAC98693224ABCCEA04E7B3157C03B27A3CC4F0B880DC4877AC35077C1C2D5584B971261D2C4BB767C75907827AD7370F4074721445E155A3A1624CB4ACA373DE6947F148CA7E2B3C93605E706EDDD992DE62EFF56F6B49A156D065D85EAF0AA21CA229A20FA4E1372A410AB1C4AB6E7EA33923382F8863478882483037FB1282FF917EB6658A7154C6AD64B5858C629E\nencap_coins = 4C25311D7B2FA56A45F4EC1CB4591C627B52EED4D2409EC70EBE855D988893D8\nct = E231DFD7BE900C8D18AFC20537A468230863003DF833E55C81184C27EA20F89BADD14C52784133DB41109466BED2ADC8DC6E701F86537A43E8B541B7BA546A559D734C09A3915F7311EDF10F2A569ADA193C2072DA737095A44DCBAD6EB319A948359D5F4FE93C1BB44A7D80CEB452E207E3A441F95F214DF8610B6523BB73D1FFE3302277C42A30CA78B4C37027C65C55A0B124307D33D864E47967A442F37080EE9D647BF7FA5DC1D92AB65281C685AE192646B563E146B5F678F49AAE0B7A60B886F6A2AC65BEC28785C7745FE0F67C5682C495A188BBC5031BFB0F3668FD5DCE4923C0A58892360DE2EA64172B53534F5A629C4E5921F81192271A14581B366F7DA805DD91835DCAD6EB32922802BAAF1CE06F559DC34846643C3D83E689D3D7246ED71D66D19DF7194F7474C01C0ABAC4BA9B10729FC37E7B70273FC526189F137A29B89D1B2CB84C1D61C422DD698C1ED83574DDD96752CBABFCDCB895E50075B8C317BBC82B97258F4FC72A1E9DBEF6F9081BBF60791B4DB0B325578F37AE5C31CBBD877A424F10A5089B2733DD86004C9FB6951275F70067D90446F233F3E25287144061284C014BAE9CA75FACE7A82A135B7DB79EC7EA056AA9DE446BADDA0EB5C71A76DF8D29721ED3018E0F4F91DAD2AA3D35A2CA81AF33E62E70669224C1E901332E4485A173E0558ECD465B3CFF1F7319328419EB4073AA24AC24E5A10FF8D65D147723F8E0B874DF4DA29ECA25BF596C51134BE2AC05DA941BD2722ADF7C10FA3F8EE41B77D80F3C360F2A2FDDF3AD921EF1BE9948737215E2186DA36E1BE9419C6C955263A056A352059542FD9105232E87AF7568CEA110A5CD572F696ECC9A47F40270085F8778B4DA3C655EBB6B17F1EEBAD0690D09A7A03F32427DECA42F6C0670DF835B61973B3290A193DBBA97AD4B139D21C1044D120767DD75A070BCEFCF3AAD51E300B952A3181C580FDFE3922C1A69654A240FDED658A4ADE07772C3D881564C7DE2B79E84CFBE69A4755411B0370D98DE514E0FB39CE53B82CF6B9A5B8E26E5262D59008183557C4EE55E6B924DD5AE9CCC7F38E99BD6F28E1E1F9405E9D928F1DD5671D1DA869201855A5702F34E2157134C6FC3A46A8ACAEF0A58E4758C4447BAD6A98A998CCA266E9D800DA180CC1E8A979792F2D9B8AA3599F2318D2DAE1990CCD65526BDC73B54B6827247E7C659BA87190600C3580A21A9510FF5598943345C50ADB289C514F780C5B34740341E92497DBDF2D8B708B38F359D66FBDD6373292DAEEBDDB86B78F10F55328FDEF5CFDFB6F768396EE00D93C340B5AEBD7EFAF5B980037D3BB14C5860108BB727DD4E9DC49CC2CC7E826E73DC3E1FD3591316E368F4CC33A5072A4FCB106558DAACF814193D726CD0BFF0DBD59010051B4D1946D36974CFBB38C09FFDBA51BB353D599E6D39F0BD34C3CCE0EFACB0BE588FFA42970B66183184251AA37FD4AC5C2110E0BA2E7D808FCE0923FE5F0F48BF6095B7BF52667ED5927439589B77019C0B74440B\nss = E1EB308A3ACE733DFA73700195B5BEB0BCF96739328DF7301BFABE07FE1239A3\n\ncount = 70\nkeypair_coins = 3E809EC8DD0FEC0D911A4E3FAC20F70FBB128C5DE94DC7184CA7310AE9157A987B2DAF2EA1F1011C4BD04208E9E90B9C2BBE2D8B96A1565CD1163966F5337E4A\npk = C0C8122855031D7BB0CA735042BB43B8EC6EE13061046ACAB9B873B13519C22678ACE2B59F92AA4E8269844B1DE5E3426D66C0451A8D78CC07E719033A536C2BF4C7397C64C6478BE5F42A06413B8B44111AD9742B8B020711446D63CDD64490C0917557B884EB429B05DBC0DF7ACEC032ADBBA55D3E104F7BF391CBA28B903A07712A8DA3A1A92F5682CD650A628573844032A307704FE77AF738696E974181A85C5CA1C14F7546F8713701115883480BE2CC686625A37B62292367B5E1546F4189592639CDA4CC20974C6A87C0377D15B8EC5C84B70233B64800B79C62E536553B43263532C6BC2B726970CC58BB20F0C0BD35B317D9B66B327BBEB5175D9611985AD799EBB19AD0587AEB856C288464D983256649827DE9AF0FC79AFA1AA5817C06D3447A25AB3EB8248167BA60A4462ED47C007107B1EECB630AC4707B837F24D26DA46BCDA77C4B6ED5B4118B79294744788B9A9C21B168565D9398B41EDB91517493F5FB48AE5CC04FB95BB13A8FCDB8615262408AE25C2985189BA8AB99643624B70557A984011474586C357F1C7551F0BB069336FE85BB903040F48C4A111113507055F2716D37EA6A6FFA48F40584914C4738397430D65756F298AAD345671077DA8A4173728364A493BDCA944B1879B114166CC3B8293937221257C2E78F8F1C7794ECCBF0368CE34921A2EBB01E32A92255A676E77C39564B575AA5D1F9C7D1388226D636F4F12C5636B2E2F712C59CA583A811BDFA56448C013CC820F21A36C3351AEC3C2C6F01243FF47BF17181ECAC752108C43A97729C6B9472270FCEF5A7C08665F7AA9FAA55B152163E8446C1BEE5082192B5ECEAB269EC13E7879DA3768BBEDC0A104C5E9496C63E9507881A4C8E758211076653F369E58B59BD7CAE5B9A64772C2A84329E43F492FECABBB56514CBE70970F361E6D3C6595065F6CC668C64BAE7D587FA8BBAD129136D5C9B6F757A51E653D2754AA0E35307845A55B80086D5A0E86302D306B9EE1550419B495D424F701A098220897FC47333D5A1E994C8584A00D79804E4989A1CF02DCF9A0AC2AC52BE1090BB149778235FF6091075A5360CE095CB705C81E3BE126984F51AA471F90FF98C21D3989FD936502A8A2B38C4A2320A618DF751C7099D1063495A6A5936C744A094CC1FF1B04BA8B56B0464E852BBE06176034CBF5239CD2C687FACC2CD37329ADBEC3A77B4842AEC40BE902E8AF72FA5805345668408CC7B6073097391921E765E4D76025FD5C78E246DA268A4DB21446F2CC3273861D2081DAACC2CC775631927B709DC1FA8993B1E92619590C08940342219682AF351495B2E0AAC74786C897FAB196ABB609E216997C2C7B283BFEFCA4B1F2B1B6E98991BB32424321AB7D61E4D13C44DC93295A75F6145BF2D4B8F1A03109BD7038EF4B16FC15F44CA6EA3411B68400EB20C46C11CBB98201D705A6CF4F4B792AAAE80D97A6AB830576AA651142793FA7DA0B8BEDD877217D54897375EC285849A79268BABACE85176842C601EF8C740A21C2C5321436A21CB968ECB5410E811912CB0962F713322021516535907914B86E9411D27CF164B580528768AD37B57300DC201557BB0A142D9416ED7AFEF52D284175DEC18F24979EF5BA8EDDF7CAA3880AEC7B42A147E75F0DD62B3D0\nsk = 84D7070EE80107976BFD1B0DB6CC33F3C98178817D8460B63DC012311638AA43B253A705BC994931BAB38A62C5D1DBA793B8437BD600A8725D36AA898E353D6B955B80F8578F855BCEE194CE2C6E4C6179ADE8176E34578FB24B6D60C395B674A7A8A4C72550F83A09D24582F94125690428A4E76972B77A53E852FF3718A440B67D6521CA699E5A8C434DC47A38032129BB76BCB4C810028938FC94F1741A1FB26EC95252E259B8F9176BBAD8763CB63DA6F295B460CDE1479BE8D6B9E3C49AB77845C21C8F3F88741759461E339F76376AB81B4F07E7BF0DB861A4AC5B24E09D4144AC900B43CEC07F1DD2CC4F7C976EB0BAA4D8637BCAA70946391109981E978CA023313B200092D26CCC823EBBAA85B8BA1680636D0BE656F01769555B058AF7825FA00D10A38B0A2B127A773CAB406C1D4310A0882889759F20B44AECF", + "68DD24416D9491CB523A1AFB1A1ED87B28E5589F4059132603E228B185D426F49031AF8FA21B11CB0F37C4557F94B2F158340921F95091128C5616F54105D47253F150FF335081D231F5B308A526B9506B03E0B5C6A88394F0C9C6E7C2B475C7508A3A8B1E0D571D1C364784CC8A7CA7AE6C2B24366A0D2865658D42A8495B24A16C9A9D8B1EA77332A1058DC292EC02C4723FA7204E93EEFC24F10C4877425975CBB6142026A2AA649FC6C77E8C72DD3E5B0D9E9495A02C251B12B7AB51F6A9853BFD151A4873CAB4102DB62676496A8B38C8038E4C6D988880A6B2774875A5FE69693D9726AF64A51D77A03E523BAD8B2A6DBCEA137A051D19E81059D07437E38DB7891956C5B2C8ABE282B5A02A5530C56A7B4B46DAAB256588B04344365313A3AD94A2D7ACA4BA7072CB9259E2676A5C86215B24FAA159BC18BCE05451C69D2699A056ED3F6A7F2BC7676F11BB06CB72DC53D7EA6BAFEE89797B57445F3AE11262543A2882B863CDB455D5EA03EBA56946DC61D798A76BDBC4CA7F2A102C518224A2091211EC4D251CCFB08AA2598065A79B8B61A56E925031A579AC5BDEEF1A6E0B1381FE180DB008F19E775E030052A624B91D1550FE5365260150CCAAF228ACB8FE471D2C8B4B27BB57D62AE9AD9CE15A0B72ED98B8A619CFDD3A17ADA37CC455D77640EA327088E9C33D4281B65DC9A27C68D27088B1F2A5FC586BB0993753E62A67BC3886048274AC267A95B42AAAC3E60C2699321A79301ACD350B92899A2C0CCC4703B243660A39C5901E3B6BB146C588DD3431C4A5BEAD8AA29E04F8FDC0D04783751707CC25AC359952ABE7384F839B42D9C9982DC66A21C7FB5CB7316748423E25005D389BCD56FC498080F88CD75EC974CA9CE9F2BA995B50ECA85CF09612FCBDC492CCC6D0662A59F8CC0FF3355F17424ABB6C774A377B81C12B9982F60777926BA0B860123434CAE8F926E902A5E633019E3C62087A1BDDDF2186768BAF91656D903C4F1CA88163B8DCA041823BB6EE525583816CDFAFCCBCFE63DCAE0B93C46A14FB72114194CD084C208921925E7C55EC807EE6C0A8DDB71C4AB3BD5836B7FA160009DABD1E5498D005718548324B0339EC71AC4A75C81F522DFD92B64E3676B337758490E068C3CC747BC004DA30CECAB9C542FFCE826C0C8122855031D7BB0CA735042BB43B8EC6EE13061046ACAB9B873B13519C22678ACE2B59F92AA4E8269844B1DE5E3426D66C0451A8D78CC07E719033A536C2BF4C7397C64C6478BE5F42A06413B8B44111AD9742B8B020711446D63CDD64490C0917557B884EB429B05DBC0DF7ACEC032ADBBA55D3E104F7BF391CBA28B903A07712A8DA3A1A92F5682CD650A628573844032A307704FE77AF738696E974181A85C5CA1C14F7546F8713701115883480BE2CC686625A37B62292367B5E1546F4189592639CDA4CC20974C6A87C0377D15B8EC5C84B70233B64800B79C62E536553B43263532C6BC2B726970CC58BB20F0C0BD35B317D9B66B327BBEB5175D9611985AD799EBB19AD0587AEB856C288464D983256649827DE9AF0FC79AFA1AA5817C06D3447A25AB3EB8248167BA60A4462ED47C007107B1EECB630AC4707B837F24D26DA46BCDA77C4B6ED5B4118B79294744788B9A9C21B168565D9398B41EDB91517493F5FB48AE5CC04FB95BB13A8FCDB8615262408AE25C2985189BA8AB99643624B70557A984011474586C357F1C7551F0BB069336FE85BB903040F48C4A111113507055F2716D37EA6A6FFA48F40584914C4738397430D65756F298AAD345671077DA8A4173728364A493BDCA944B1879B114166CC3B8293937221257C2E78F8F1C7794ECCBF0368CE34921A2EBB01E32A92255A676E77C39564B575AA5D1F9C7D1388226D636F4F12C5636B2E2F712C59CA583A811BDFA56448C013CC820F21A36C3351AEC3C2C6F01243FF47BF17181ECAC752108C43A97729C6B9472270FCEF5A7C08665F7AA9FAA55B152163E8446C1BEE5082192B5ECEAB269EC13E7879DA3768BBEDC0A104C5E9496C63E9507881A4C8E758211076653F369E58B59BD7CAE5B9A64772C2A84329E43F492FECABBB56514CBE70970F361E6D3C6595065F6CC668C64BAE7D587FA8BBAD129136D5C9B6F757A51E653D2754AA0E35307845A55B80086D5A0E86302D306B9EE1550419B495D424F701A098220897FC47333D5A1E994C8584A00D79804E4989A1CF02DCF9A0AC2AC52BE1090BB149778235FF6091075A5360CE095CB705C81E3BE126984F51AA471F90FF98C21D3989FD936502A8A2B38C4A2320A618DF751C7099D1063495A6A5936C744A094CC1FF1B04BA8B56B0464E852BBE06176034CBF5239CD2C687FACC2CD37329ADBEC3A77B4842AEC40BE902E8AF72FA5805345668408CC7B6073097391921E765E4D76025FD5C78E246DA268A4DB21446F2CC3273861D2081DAACC2CC775631927B709DC1FA8993B1E92619590C08940342219682AF351495B2E0AAC74786C897FAB196ABB609E216997C2C7B283BFEFCA4B1F2B1B6E98991BB32424321AB7D61E4D13C44DC93295A75F6145BF2D4B8F1A03109BD7038EF4B16FC15F44CA6EA3411B68400EB20C46C11CBB98201D705A6CF4F4B792AAAE80D97A6AB830576AA651142793FA7DA0B8BEDD877217D54897375EC285849A79268BABACE85176842C601EF8C740A21C2C5321436A21CB968ECB5410E811912CB0962F713322021516535907914B86E9411D27CF164B580528768AD37B57300DC201557BB0A142D9416ED7AFEF52D284175DEC18F24979EF5BA8EDDF7CAA3880AEC7B42A147E75F0DD62B3D066F161D27DC34E1A2F4B98B14A2B221D7EAE26A593BFE432487D9994CB4806567B2DAF2EA1F1011C4BD04208E9E90B9C2BBE2D8B96A1565CD1163966F5337E4A\nencap_coins = 37A2BFA95682BF678CBEFC25BC48BF62FA950BBB7C0E7051CEE508F9540FDBEC\nct = 90FA8DE0840A06D3480F2D0DDA057778697A8DD7489D2C06099747B8F9EA6D48FC4DC40DBE0653EB7E8BDEA35A5A4A3367E3030DDCB33258B544E1D303353893BFB29CB3F7B67E02A025CFFAE328CE7CE9EEAA3D78DDFFDE7A278C2DE76DA777D05E19746020ADFAC44B5D9BBAD481579A107FFC3CDB082E5D5EC6116B80F6CC59A14B77996757055E25771388CA50C8654B43E7F0C02E2EDF3621C8F5EE76D15A7555ABCC4F27D35BABD0CEC3E2CE7E2ECDF52A224B2AA91DF0EB934651CD3C37A91ABA0C482394A9B5CF7E8506E8461CC2638C027AD7F24985988EF4AA8620D1C4F931C8B951283D800681EDDDE8947772B36AAEF9CF4CE01642EF7D6C46F2A722FEBAC87D3C3049B2F1FD599D117330CBC7257AD68450E6EBE0D28AEFBC5796465603AE4251A65B3076383DEC3552A6057E73038825CBF7271973036DAE02442F669929F35546A1FAD9863469229387F3B2B169DF57E67A679A40046BF8B90730DE2EACEFDA5125247966F7E4A4F285C2B4E6F2DDE06C66E834D95DD62977DAA9A8EA02C180D727E1C0CEE546EF37812EF7146CF4C590C6BEE40A388AC030E1B238442258201DCC868291C985CAEF0F67427456894563AD074D95F6D44BD08E6A17A102432903ECED3E2674405F618E567A671081A072148920C853B6AEEBF6BA1AF507FF95728DA25766412BB3F55F98A62F0B74BD629E6AD984D04D3DB46FD3D26AD15176ADAFE1A93347FCA6A3F7F49DBD3F7FABB0391131898F7A13AFE66FEB1DA90E7B1CC1FD12DDC740DF59CD466E44858FCFCCE10629062E84EDE1BF03E4B20313A742873F9B1E7A3EF6F89196F7BF7A4025C1BB0BA207D29ACD651C4C31CFA36505A4BC9551F70EBA0581160F48CF052FDE842CC03138DA6E24F150C131F0BC2A48D3AA58F236589EDA3F75DED4AA7C459DE09F6EB19FE35BC47543AFF8BF4109DB258207A2287143CEF98162C03D0FDB8B5FDD9445B2F712643092F868EB97CE7045A13B20D6C45906C22B55FC9A11FB12C121AD9F86982DDCB720E69015BEFB50904EF0AC903F75D67C774062D5DE5D2DBBA69A983D985A2858B30BC411F0DC10CB9D30759DAC150FD484B1FB557D38201E6538CF55F969321C4C69FC828092DE051207AB58C8CC1015B7F01E3E8B32D3AA02113EEF1536C58CBDB50424949E211A0C4D778BDD12638135F09120359BAF815D2CB1EFDBF44D7BC709BA19A0A513852DC6AAC9AF9605247A6054437DED52269AE3D562968381C22BEAE6811816E48C2E27FD5BFE86BD455EA271DF7D70A59D532255A59F0C005AD7D7BD26D162EF64B99A991D86A48661AF300EB7D5944FA5CBF6CD3E3510F178AAE69500B730EF314E68C53699F5B8247B05372D0D5898358FF1CC5DBB79E10B851B6C9B8E4D11C53F8CB424340261DFB2FC4164390A0A4D5E5CAEDC5F82216C576D12ED6908E0FD21EACEF225D09314C66E25DB6E9BD0F8335FB87960AE5F0277201285C906D40BBBF1E29B97F835AF830FB3F96406C5D036E71B606959D572\nss = 6A54F3597E7C60BCF0FD8B7B34CB4C9350DED0AA726CB2071830C70A2DE8D428\n\ncount = 71\nkeypair_coins = DBF1C465FFF3D9F783BD9EE61A573715E45691147B8904439B5FFAA64F94FF7B5C2478CDC8D59AB164856623D53B9E60CF0AA8214CB64E674140BFD6DE9FDFAF\npk = 80B3B92647A1DBEC6BB883A4B2160E4DCC84C89C6ADBD955CC055933D3238E325FA826ACEF899A555873A5B9C189117844202C65E40EABA07D9FA94D421BAFE8F3A5E3346B6B93CEF8B75628E4418E2885660B1D3DF32D1BD50CC50757C5227928B32E0C567872E66BCB58128B15C8696710A7B33BFDA469128996F6979F896B93D22910383C90D0D877A56B4B7C77C53C99128719C2995497DD36877276A25FA8B74A4947E223215A314A075585DA457DAAF17C41711363950EF9013A8AD95F9E07635546485A3568AA502D608321061A6999057E705C46B6691183874FA9EA38BC392F718C99DDBBA59A1865A135207A00058A408B6C61772CE777456C92B28A51CE823F7524A26639AC64AA49D6903CC2B2B5B60B59643BC950230362CABA6ABB5BA4F6964331B1F62099CF385BE3F5B43C2B8402006BB3386F5A16354E45118F0B759C3363AB4069EC2C4C15CAC4E07A24FAB0C682548337D157E6BA213C7801DC5A0A7045A442B4939D611469746E9DA665E2E910B51C56B77A035900B25490216C0BB53E04173B3BC454A7A17D77283EE278E7D30496301480C8C1AF6B3E1DCA213B174F968C8A45A3BA2044BDDB1492BEF2AF610B4ED2481AE0823DF53282BA7750FBC7A764DB58E3789CCAEA778083C27ED101E3C75BE5486249F9818A08047F97447773C7DEC3BA7C59AECB5778A09CB7F1182B2E0A01C182A1BD13AB7D72AF97F96F564607A9A970B35A6ADFF275C35C22C2444AD6E997D821C065EA49080900E766C0079B7ACAE7BC7CB3B31301656FD39591E0BFEC2C33F05A0DD633BBA463781F1C519D902342BC12BD16C1AC8305EA9769E489073297784EE45F99B248670749C728385F601FC84C1FFB298BCC447537785226BB5DE712B7BDD04A0CE39226919105F06ECF6BCDDB0CB5EC3B5505B5A169B05480B2587CE4934D2B232A44A6683920A81A6038C59497C9B47FAA62F4F2120B15C360616E6573BCC5A23A88887B50D1A7DBAA429BB00A9F87B63829B1B641922425016C979DB571BA0F1A139267BB362C68F47689715CAD6636402049C2B5C616C321CBA6E43C1", + "C1A48A0E141CF3A71C0099BD183A5C0E59BCA9A2FB637C1B534CB6687493EAC495ACC7C5FCC4898A52E44094FB1B7014A15C88E11A9E7244EE53C2D5B16708C233ED37859268501630A296D63C094F563F0E559C59453ABF05A93722AED5AC0C3CC6A0BE7890F8C3191677C21F70C8153CED3E2BD96A4BFDCE27F86B809D8AB04DFAA837FE030F420B845D23C78CC82A2D7C440897C91C3B726B4622445899DE72BFA263B93C3CCEAA8500B4B0C240046387B25BD98B5901AA670180A2A8B27DE424F4D804A68DCA2E044430D701B67E9B4AF33C60FC54BB3A94A8B8604FA5882A401A5647B8DFBB20878E4B4094136BD4B5BC14288463C2E87F0CDF6D9497FDB5F42F26D2F9CA2E048A757A59B440C2C5642232E714D11FBA959AB9AC52126BF689864AC98CBD1A633BAA3ECF75C09C4C6878994CDCB3E882798EA02AEAF39915DCBCEBFE2BA14E620F53B3D83AB58BBF99509033DB99B0ACBAC29FB4674C95CB94982AC398C2771A8AB6DA1CE9B0771E3D5C2E7655B4BB99EBBB57ADBC7A540F228114639B811C5C1D3B614DAF84266BC4C312FA43C4109DAFDE79000AB39\nsk = 47318B2CC6A9D8BC6EBE7C12489017C03214325B61A2A8541FB783C448C3A31C1D82BA7906B09E3512AF8D00D0706A3D391281F0315044C9C4F92B0AD72C60E18637577B942A442589CBB466AC344438750B86CC86B97D16339A9DB0365E6696B183041543B031C9220E82BFB89C21A5B0A0D301109568B1C00B2B878C9284375949C88394F141ABC188EF7607CB8151BAE654A7B7BFD785B44BBBB5C5A68CA5F96BFE5ABF179CB83A58AEE518202C9119C80081BEB38CAFF81F5EA51811F13BE9491F431B127783227BF9B691031145D6A144213FB4F1C89C38C00C81ABF075C4415586BDF28B946380C948B94D7A0C3A793100842230663F4EDA9174DC7214884E0F552A50D16DFD0A5DDFA7920B0AA50437BFC735A546F5B0F4BB22E174B061BC80E91428547576B6205490CA3934C9B15FCB69611A1639974478800B2CBA3D5243A0E2762BE2F87035295FFF40B56BE37DDC71915434C4AF6472C1E5C519506E691703C49C715B50B360A5C2FCDB79F59C7ADE27380F9905EB7AA6F5042C6A32BAE657C699EB85A53395C0303E87E89800131F96969BF45B3F574A40ED813268603A24F1C3180607814914775350B88A1FA7E1034C9CB155879668950AD5950803ABC0CC58BDFC408FC1F2BF7D3A2972AA66B58844C048150C0B8C89ACA3BD3269474875BF10A94D2B9EA3687AB9547EA59731B73A8849AC7B7C4B946D70B8B87C56B81B77024503BA87485BA3655F669770410E89FC84925B87C008C3CC13C7B9447D82FC2932A1C641230725A422B6219D9BDB5CEEF17E121132E6615075E0B26CF71E91A1593210A09507214716A3405B2503CA5F29D4479914CD10B3457AA62A6BB71BD08736E1519E69F709B8C8439B4441BBAB5D0911BC6737CA742747CA592E5ED734A8AA1B77450A9D4188E05422BD9240E285865D530E718C6F1A816153CC27414446BBA8129A1716171AA60AE086AD09951C2B9AA2744E0153CBD4EC9D1736908CD78E7CD75D0333434715C517633EE6603F7993083724A596069F3270C071B6BAB955844A081A896096F76059B9738D819CA3B6588D5F578058D28D2D0710B2BB2E307A5F9E18533713C41E172A99614A97C00AC0A83A25526C399CC9FA9B74CC4774830C8E754231B04274C90C526DEA7FE3D203688114E7A90D3AC02AE69A139649B754581BB56825A215C3BA282A26C036E5D5785C07C62956B612FC37FB73A7C6EBB506B998D54979FF29781CD09CCB64993299745B34B6D7F897C0E05E1A6966E6757DBEE29AF2EACBBB7701DBC39294DB584C7C3A7841112258951D88145CF73404A17ADB8CC4D11788225557A83B652F95053E8507093B2A8B00CE77E7BBBE83233DC18880F2274472C05E646B90952FE92440D164092A058D69C96869D8A83377A2DA92C2D668607DEC3CBEFC6242B49A9DA97C19C2067722C8D309CB898593B08B5D8138BF2FD1C59081614F764ACB392D7FEB205A85270DFC1129929CF7B53D41031C92944972B8BC9A9C494AB384996647E177A87A101C45C747660AA4A38088A5F7919CA46DAD338576463A1C1425A6C4409E2BA8217827AE83BED4E6C80AB528A6BBC1AD58C868B995D9F72C77E84173C9CA80B3B92647A1DBEC6BB883A4B2160E4DCC84C89C6ADBD955CC055933D3238E325FA826ACEF899A555873A5B9C189117844202C65E40EABA07D9FA94D421BAFE8F3A5E3346B6B93CEF8B75628E4418E2885660B1D3DF32D1BD50CC50757C5227928B32E0C567872E66BCB58128B15C8696710A7B33BFDA469128996F6979F896B93D22910383C90D0D877A56B4B7C77C53C99128719C2995497DD36877276A25FA8B74A4947E223215A314A075585DA457DAAF17C41711363950EF9013A8AD95F9E07635546485A3568AA502D608321061A6999057E705C46B6691183874FA9EA38BC392F718C99DDBBA59A1865A135207A00058A408B6C61772CE777456C92B28A51CE823F7524A26639AC64AA49D6903CC2B2B5B60B59643BC950230362CABA6ABB5BA4F6964331B1F62099CF385BE3F5B43C2B8402006BB3386F5A16354E45118F0B759C3363AB4069EC2C4C15CAC4E07A24FAB0C682548337D157E6BA213C7801DC5A0A7045A442B4939D611469746E9DA665E2E910B51C56B77A035900B25490216C0BB53E04173B3BC454A7A17D77283EE278E7D30496301480C8C1AF6B3E1DCA213B174F968C8A45A3BA2044BDDB1492BEF2AF610B4ED2481AE0823DF53282BA7750FBC7A764DB58E3789CCAEA778083C27ED101E3C75BE5486249F9818A08047F97447773C7DEC3BA7C59AECB5778A09CB7F1182B2E0A01C182A1BD13AB7D72AF97F96F564607A9A970B35A6ADFF275C35C22C2444AD6E997D821C065EA49080900E766C0079B7ACAE7BC7CB3B31301656FD39591E0BFEC2C33F05A0DD633BBA463781F1C519D902342BC12BD16C1AC8305EA9769E489073297784EE45F99B248670749C728385F601FC84C1FFB298BCC447537785226BB5DE712B7BDD04A0CE39226919105F06ECF6BCDDB0CB5EC3B5505B5A169B05480B2587CE4934D2B232A44A6683920A81A6038C59497C9B47FAA62F4F2120B15C360616E6573BCC5A23A88887B50D1A7DBAA429BB00A9F87B63829B1B641922425016C979DB571BA0F1A139267BB362C68F47689715CAD6636402049C2B5C616C321CBA6E43C1C1A48A0E141CF3A71C0099BD183A5C0E59BCA9A2FB637C1B534CB6687493EAC495ACC7C5FCC4898A52E44094FB1B7014A15C88E11A9E7244EE53C2D5B16708C233ED37859268501630A296D63C094F563F0E559C59453ABF05A93722AED5AC0C3CC6A0BE7890F8C3191677C21F70C8153CED3E2BD96A4BFDCE27F86B809D8AB04DFAA837FE030F420B845D23C78CC82A2D7C440897C91C3B726B4622445899DE72BFA263B93C3CCEAA8500B4B0C240046387B25BD98B5901AA670180A2A8B27DE424F4D804A68DCA2E044430D701B67E9B4AF33C60FC54BB3A94A8B8604FA5882A401A5647B8DFBB20878E4B4094136BD4B5BC14288463C2E87F0CDF6D9497FDB5F42F26D2F9CA2E048A757A59B440C2C5642232E714D11FBA959AB9AC52126BF689864AC98CBD1A633BAA3ECF75C09C4C6878994CDCB3E882798EA02AEAF39915DCBCEBFE2BA14E620F53B3D83AB58BBF99509033DB99B0ACBAC29FB4674C95CB94982AC398C2771A8AB6DA1CE9B0771E3D5C2E7655B4BB99EBBB57ADBC7A540F228114639B811C5C1D3B614DAF84266BC4C312FA43C4109DAFDE79000AB397537E68CCF14E8B7E57090D8F648529DC461CA3950288879E88116ACAF57B4A25C2478CDC8D59AB164856623D53B9E60CF0AA8214CB64E674140BFD6DE9FDFAF\nencap_coins = FC69423340CCA2E8E96B963188545FDB2B9287959ECB7EB108F8D04204BC87CA\nct = 64104B36C672AC7E8BE943086586B0F19C4B6FD8DB974679D2C74271A5F445452A7D946B73CA9F110713316EDB1BCEDF19C6E6AB49F4AB546E5C4503BEF830684D7DD9A52CB26098EF97B89D3C35C2EC5AD92BDDD9D849CEAD2B0D19D2ED95081045066EF48EB3A1A61DEE932657E1FEDCA8FD6D4C640A9629A2E66167BDEF2D0111E67370152615EDF677F7589512ABEA34E525D2121A379F368B16947D477144829301A11B399FB549D05B5415A595EFBBB3A04BE12AFF85F6AC7CFBA22FB953E4D3B82A39CDA2120873422282AFF3DF2CA6C16901D731DE7D2570AA415D2A954DF523251F6AD019616A780573F4C5683E8EF9E5FE8499ED00329169B7D6CCAE687B9D5E448AE5CA1788F10BB126F6CB0F95C940001137E0A0CD62A3645F6EA28DBB1F8C3118F26BF794B8F80747FA2816733838D4C1C62BE7C51C0A25DD27B316579C6462D49BFF52CAFDAC5AE262B88A1A9734CECB04BE568295C9088F4CC60983B5BD2928B3FA708139149D89D610AB3B6F915CA6B6627E71DEC5A6EF1A4ACBBF7021D4080539B2F9EB77AF4E2F2F8004F2E21868E0ED7A0DD52F41990732F21802B1814EAC1B262309970733FB218CA074613219071E922E345A8354E253B7B646271A21F0B4E3EC91C1F11BEAC1B141EFBF46FECF7D00767FC94CD78AA970EDA5F4498E4D5F490E56C7AAE3FB44A09769AE8B4912E27D1E5F5D3B2DA08F95014BCE2F7132A1A43B0BE1B977B43D15DDC56A92DAEBF4B544FC6876A1A5774A662EBE098C369E71A4B68BFC7A9B7A0BE9C3BFAF387777E4B9D5BA65ED37FFA181CCE1B076F57456C9957545F493E906EF7816DF62534BA8F10424501E73E7B4DB2FC059F04A56EBBE04F634B54E09F359BCEB492A30850A9CDBE6954BEF3FDF36D69E8409014663CBDDAD6D460EB3E86D9CFCDDA3DBC219B689158D67C67030E3EE81693C9C581E7DDA396FCB76A3B1E0D90962E41161BB2D7746638AAA542DFCBD76A3DC87AA85C9E29060458F15E1ABFC8CBF336686F0AC59DAEE90AA8BB05FBE558D25B47366B6B80549A97F0A89E4CABF7D2CB0DC5F63217808006E29256FF85E0680542A589B52E6DA00BBE456E007047358FD7C5445A0B5679C972D0439F7F0B2F793C5AA8AED248156AF3D671A22BD76945AEECD6C65F86BC7873DCCFB82E667A8319674D39A2C6A38AE0E73865285ECA5F9743BFA255DF6B453CFEABED103D16114F5713E593B1B88339166CEFD5E651B08E9208968E03F75AF07B9573302F52E87D3251D8D64E2E379A1B2D502C543F6A61E96137F868EF382CC7EEB06017AECB4B5EFCED7A46A3A7B2E70E66D4BF65E561A3058F28D1CCDB971B8AB2CEDCE8D284AADE0242A9AB584741397620B4BA43CE0CAEC921521FE8AED9E78A5E1D2026E05ED1AF487D32C0F795BC59A60603AC7928D3E31DC88D0824428EEE4134985C7CF58613368D672634327B532AAF89E717012E6AA1604FEDC22218E22CF8D7529A967C00441E035E2111573C024445BCFDC6DDEB5CE1B3D6E\nss = CD0E055432E110BCBA3C34AF1C0BE0CB266FF70E52010D30FBA733701CDEB18F\n\ncount = 72\nkeypair_coins = 1F7CFD2B70863154E8A69D1758532E86C20CFC763D67C758BD10A13B24E759B588E66590B5B102B223291CC78119BB94E799E37B95B7BEF0337E6A572284B9FB\npk = 03A20A0337040ADAB8BD449E0BEAA93B07512485BA33F291AF1A44540BD04", + "AF4A3DD2A09F6454D7304D0944674A580551061BA5F88217AA57C10640DC1A97396F138C1A32CF40B0BD9286F88C4087F9084A9012D248C63EFEC072D77AB0E736719A23A913B7B8B62AAA5BB40BE97CBBC1C29EDB283C776AEB9B032E2C2691AEC9CE89617B84B09712B40E2B713E566C714E0BAA75957D6BA5062BA76471357252B72AC66BA97E10921CA2313A232A6BA908DEA13645B5617938381FBCD748A11F61CBCB615C458D056F0D55A449C4F544C6673322EF106010CF139D1C586AED5A5DC210FFF7A60F3138C34A4244398B692C567ADE5BEB55C1EDCFCBD93183E1ED0C2AFF5BDAB67B51E39A58BDB8388D67CC1EC0D7313B7EC8A56CF3C9B73214C4ADA14592794749B6834E9B81A2BA47DE929E9AC7856B56549F40F38F0784BA0CDFC195952D3155222BCEABA0E3C233FF7E19A65822437217A42721F9C060AC2CBB9C4E6BFA9FC3014D8ADD7B4BDF78291423511F9874A07E06A82B6369FE349E08333C7F56B7B7B808A0B4E888A95799A2DF4873944CC43EB958B1508C66E571268E79A69178793E7A4D430507E1259D01C86F999C16772CFB7B4B330114FF55A51EE5407BCE95A6D27875A91773420C24F8734B3023E9DB777819CA2163C431DE46F22F38398D46EE352B815B6B07E1A242B01A4230B59EA8C7B0C3C3DBE2B7C77B4C860660DAA04C452E391C710722C67BC0632C072FC1E5296A2E70932D4D38EFBB96BD636BB41260A7BF27CF5E71CE3708E6884CF0B8584ADC3CD3B5C5EE1003A13731704472A203C8F9B49534309BF2B60CC3E2448E02B5A46D889FFD78FBE722A709A2D5B5C8A7D805BCFF44052C553CB990AD016079BD87DB7573EB1D431D1E549EDC8AB56A0BF52999F32555E8EF2B03182BD8D812CCA638055A73B548C8B432A2A7D4A6A074AA212D50362D1382747CA8DBB95E03945D95B995D6346D7DB47B24B86E4F774F3767DB7996335B789733CB251F9B1EDD04F8F8CB7AF4C947AF224DFE0AF6A42C7B65120B9C18ABE9161D88CC5C4780FD74403CD177F7160281884A11CF686F0F523F39CB7AD39B780F13A8EE83C0D646F9D85BABEB306D53A7DF53AB00B5A1AA8C215914A48222940FEE10D1939BA5C93617690CAE113A59DE071C969436B3771FC50B2F4AA641A4C852922380A420FCDFCCB81816F4B474A2AB293A4D97B2B280CEF031148EA7E4C9C0DB7E7CD0E50B203A6B7519C3CBC8062C9B60B8B81CD956463B8180C67F34BE4868E3BA94B9F0226D9F010D9EC5EF0BB62C865C807184B96526D94170AF9474BBC100530F7C77E46B98C2AA41F92A48D8027C855C7F84684389BCC8E7C67164A204BC5C0C90828FAA439FBA235B6F20785CC8EF4C090A708BFBBE26E1933886CC96AD9B4562A119D4C66589C85BF0E55606886206734142D432C1B032E0AA93EE3731F069A8CC069A03B95A8AB873B447A04EAD3A32BE3054AF834882BCC581712BE18539B805577E50FF5D982C98C0B0DFCCC96A4C6429281068C8429997DC17A6600F0736B8453E3D77636FAA8D0CA89F9193BB34819CA1117EA368EA23198EE11345C613993EC052992954099BB9A086057DF0C5465326E1932AA50DA74AA8435D9294FD6B7C05A153F30\nsk = CD28AA8C74142A0508C2534D5ADC64284806BB2C653BB9783ADC640E9945C253AF86F57C19B42C6697AC85D1BFA46B5231559C11F5A0DA9B2BF43C40001D4E6C00B81237343E15A41DA190CF8940B641A4B42B72D9CC8BAC681369DC07D80AA62F135B0F956355A4A68E575F34393C42BCCEA68A7A63C269A5821557299FF63B9F0161368F6084132C8B56984F4D1626D7436DAE2596E1B24A86562374B066D2483A1B354FFF9766845480FF396F6AD089B724B0F15A34C2288DEB05A8418909803CBFE2F3C63C30056F358FAB798F4E385EB0E35ED0C38ADE7382787A2502D117AD0BC6CC0A4746AAAD23345F10074B21970C18EACC898472766B2313472DD3348C82F69B7D961CD35A8C61984E7CA20AE6382F04A977A72B532A1395707CBB7CD595E0DA0202498058E59F22E0C340C438851674E3AB1E0D872FDA3BAA7F87B67F449E6BB461BDF1CD771475D5B59FACC30181599DDAC8CE68DC2DE5741B21422FDD512B39D9633ADB202AF3941E323C9326297CB58086C3282F722C4D50B94B32153FF30B91F07A811A9D9E07B7667846806B6F7071AE29323156B668F831A9F79AB7949CB363DCC8D151349DB4B5EC1266E7F5AF98105C95C0A4D47648AEEB01FBE1113948B407FCBE199BC2CDBA40257745D765C6A0766012F19DF41A770E96CC95D3CBC70549F7E61914A73DC71062F2A3A377EC26DED59E0CC85B11A74F43C3237C7561CB7046C0E660B5BB0BA0634FF2B211438A9B9B906F241B04B2439F29A3CF0AD9128D683F0C2C26CA050978CC179872B1664A751458C072106FDFA07D97105188278268B0481018782F361D08555FE5799A0654398285B378F7A9F143CE20673184C75E8B662085899812912FB8A60485921B2F7B3FEAB95CB7AA327D8B9DBCF7C7256A131270B731E33F8F555CF4F8B7A1E6AABB4C83D2938B7B21BEB1C3B3CB3BC08BF52FC1F5715FA89EF8E205D85862F6A2CF420592AA24568FA0B8DCBB90D0B654C7C82C7411B6C3E219F46C352AA034C4FA0AA4FC47DAAC204B351497727B96714359A66466F6C4CC2B83BF6B87785367C7116489D6C5FEB975E41C4BBB2A3D8FDA920021C523227A438374D96032F62C41B17422584AB5880475CDDA8B7F4844E5420C25D97235B0ACF71012ADAB59298BC80052AAF1807E8015695D92184741BAD318BA9AE27C306A2E42C80512534963B70B9D0B7F5AE70326C33E7D43249E8C9CE386947C167C8F33C88947244989C45B4858203249FA5A136734153CD94F1AD467B5043F7ED77F58D34490D1B5F9E323F3E2146011921B8A9F94E419BB85AD965443E7F4A73534457BE43EE5F677A63A7738762B799600FA0B9CD328AE4CF507C1D9845EDA77C30BB7C39C618AFB402CD9B016F0092CB61E8BE13A18925CA122A142409B8DC637A364093CD76925A194AEDA21C61709255BA2DE330693B888A6C2C6F0C39FA5B4C7FCFBCC198B3253C0ABC5AB5EDFB438ED3A82B72B5F54A39D21C37879480C4A648F182A94EA566C598BA4CF697140A20FDF4CABBC540B80E8664216A6E880553899964A7B239D00C68E720706512CD2A58B9C49BC0ACB90283B506CA196F7855ED69AB21F059A11FA3FC4670D03A20A0337040ADAB8BD449E0BEAA93B07512485BA33F291AF1A44540BD04AF4A3DD2A09F6454D7304D0944674A580551061BA5F88217AA57C10640DC1A97396F138C1A32CF40B0BD9286F88C4087F9084A9012D248C63EFEC072D77AB0E736719A23A913B7B8B62AAA5BB40BE97CBBC1C29EDB283C776AEB9B032E2C2691AEC9CE89617B84B09712B40E2B713E566C714E0BAA75957D6BA5062BA76471357252B72AC66BA97E10921CA2313A232A6BA908DEA13645B5617938381FBCD748A11F61CBCB615C458D056F0D55A449C4F544C6673322EF106010CF139D1C586AED5A5DC210FFF7A60F3138C34A4244398B692C567ADE5BEB55C1EDCFCBD93183E1ED0C2AFF5BDAB67B51E39A58BDB8388D67CC1EC0D7313B7EC8A56CF3C9B73214C4ADA14592794749B6834E9B81A2BA47DE929E9AC7856B56549F40F38F0784BA0CDFC195952D3155222BCEABA0E3C233FF7E19A65822437217A42721F9C060AC2CBB9C4E6BFA9FC3014D8ADD7B4BDF78291423511F9874A07E06A82B6369FE349E08333C7F56B7B7B808A0B4E888A95799A2DF4873944CC43EB958B1508C66E571268E79A69178793E7A4D430507E1259D01C86F999C16772CFB7B4B330114FF55A51EE5407BCE95A6D27875A91773420C24F8734B3023E9DB777819CA2163C431DE46F22F38398D46EE352B815B6B07E1A242B01A4230B59EA8C7B0C3C3DBE2B7C77B4C860660DAA04C452E391C710722C67BC0632C072FC1E5296A2E70932D4D38EFBB96BD636BB41260A7BF27CF5E71CE3708E6884CF0B8584ADC3CD3B5C5EE1003A13731704472A203C8F9B49534309BF2B60CC3E2448E02B5A46D889FFD78FBE722A709A2D5B5C8A7D805BCFF44052C553CB990AD016079BD87DB7573EB1D431D1E549EDC8AB56A0BF52999F32555E8EF2B03182BD8D812CCA638055A73B548C8B432A2A7D4A6A074AA212D50362D1382747CA8DBB95E03945D95B995D6346D7DB47B24B86E4F774F3767DB7996335B789733CB251F9B1EDD04F8F8CB7AF4C947AF224DFE0AF6A42C7B65120B9C18ABE9161D88CC5C4780FD74403CD177F7160281884A11CF686F0F523F39CB7AD39B780F13A8EE83C0D646F9D85BABEB306D53A7DF53AB00B5A1AA8C215914A48222940FEE10D1939BA5C93617690CAE113A59DE071C969436B3771FC50B2F4AA641A4C852922380A420FCDFCCB81816F4B474A2AB293A4D97B2B280CEF031148EA7E4C9C0DB7E7CD0E50B203A6B7519C3CBC8062C9B60B8B81CD956463B8180C67F34BE4868E3BA94B9F0226D9F010D9EC5EF0BB62C865C807184B96526D94170AF9474BBC100530F7C77E46B98C2AA41F92A48D8027C855C7F84684389BCC8E7C67164A204BC5C0C90828FAA439FBA235B6F20785CC8EF4C090A708BFBBE26E1933886CC96AD9B4562A119D4C66589C85BF0E55606886206734142D432C1B032E0AA93EE3731F069A8CC069A03B95A8AB873B447A04EAD3A32BE3054AF834882BCC581712BE18539B805577E50FF5D982C98C0B0DFCCC96A4C6429281068C8429997DC17A6600F0736B8453E3D77636FAA8D0CA89F9193BB34819CA1117EA368EA23198EE11345C613993EC052992954099BB9A086057DF0C5465326E1932AA50DA74AA8435D9294FD6B7C05A153F3082F68B15681CCA5C2852C18D6E88BCB102A059C1D21936582ADB71790CC0A33588E66590B5B102B223291CC78119BB94E799E37B95B7BEF0337E6A572284B9FB\nencap_coins = 01E6B1B765E4C42464F6A35D1DF3D2C673D752683850FA4D147D4E0629B88B10\nct = B7658C85D18BD68C9FD83CF29FB5F5D4885EF1B15787DA9B0D8912C2A9907A4BB8CDB7EB1153C5EF77F90CACEB08E698AAE4B359DF085869FFFE6417791D28795EE961649EE1A50634CD881D75BD50B381E38E3C8CEC596F4A77C737F66A942F4CEBC9D1A38D1DE2DB59A43470075FC7DFEC27BD16173953DB20B8330405866DEF7A9BD827D6EB24ADFA2D1D4103F17AB5EB86543D42FD7213A78666A2D7383A122D146182EB47D7D39F5C538E52958F82B1C52827751153B200C07B1D66825D594D434CB0B6FA23C1E462972D6A38665A2046FEEBC6E92E0C22AD2C5A7B7155BB879A86ECCAE66A2AE3348EB0336DE44E1332ADAC8E3811295235A6C3D16256FF9C71C3FD12AD4BACF9EE78B99EDEA34619D2CC996DF82CC9E386B95BF3AA27717194751BD556FDAA64D3572D25DFE7C8939AE6E73D52012A8CA16100B6DDFDC4F289532F02F4FB9B19D4C23D6D3F30A6742CAA692582D886ADF1EBB56391968DE76B52D64665E719AB779915FBCBBB8604DD8B0F54DEBB619FF5B02BC7C2616CE6CB5BD79019CE92371EBC5C188F6B806FC4DDE1446B9A812458D8D0AEE6899160F8CEA115D586986E1C145EDB594182F56AC41DC6E3E8DD7C395F7B9F1331884390FA2FBAE6F53D6EEB8852F8D18A729E755BC00872AF0ED9D429EB0909D6E596711200B24BB0EDDEE80F0D5103099E", + "E6ADAE13A24C93BD148EF1FEAC537F752B83D55462483289A305AAF1516DA3DDDEEFD2A386B1665D3B3035121A527A4B54B27181D4D00CC6EA3FFF186947A253E725B1C043BDE2018117ED2AD74C6B4DBDB4623CA3617162B3A1CE679CC444BFD12B24F0D2D98E85F0EF03DE3391F0F854D28259697CDADF7A7952E08C6B521938655C6687838025488D7B8847BA37695BC1CF34CE8C25A86CC6B8438ACBBA14BF283C817B5C1627E8638FDDB0714308C9197EC057122933FCC9CFB7BBF195D5091B98F7E6A6F80634232CDFA3FFF0B279239C48DFF4D2AADE1A909EC15DEB7E9A56505BA422435BFFFD81A6AE8EFBB4D72F3C1370BE278ACF0FCCB3F9C82910E0C92B006E39388D42104705A147E4FBDEC5DA51E0F70EF4C51F8D2998478D2EFBE725776F0CB0E00EF3F374D1A80BAFD50FE362869645C7902D50051B603F8329C02AA7595E17C1A2DD9DD48F90BA6E4B06993970DF2412C081A5E5693821C85D8B6981916264A7CC7AFFC224A47D59DB9DF1F30DC726D6F0F81C596A092F626A45574E518D1570A77BC427FDAB6A6C8E0F8E8281F86E1FFC8418CEB0EEF8CED5AE722E6059CA59432AEB5027E3F4ECA4D33E782B07F95A01C3C3DEAE758A5E8429D1CEF9F86E1C225510FD6F1E1A94F672FE3F350DF561ABE16FF5BA41AC13E061CFE3115E3D614224DF0DF8584D014EABA340E2512D0F58DE67D71A4D9DA16C7B5BCC98306B562278D6D5B352D20CEB8F01655225C08F2E61A8C97108F426D8137CA678B3E15A18EE23ECF74E1205B0C4FEE6883328E262B121E2451EFDD66353DA8572CA87177E7165E7DA0E56\nss = 11289A8C4D0ACB00567E38127F448BC5CEBA08D0A5D7530D6ED38A60A2D255A4\n\ncount = 73\nkeypair_coins = 3A19577908EFD37697B8EDC7FDAF47D1BD3AD01A1B77FAF794BEE5B9C3192A6F08A2455063246EB5761E908816E48990D670308B0D34D7823A325D49A1A4DC0D\npk = 611BA36D3A65C0D17CB22B7F3A682B593595B1C682D521A16DD621A05A7D22C9B2D29C9BB75CC5A8567ED3A545BAD39E2C85CEC0F83F37C6AAF101BEC273BCA5D606A5E76FDC183175A233C93373E956580A522BADD22D97D71199C1A7B4149E652686EDA541E69187A2ABB68F89AE9492443547CFDE7B5D609B4835911D154C33E49248C4CBB244ACBF03E93E52E71ED87A75CBC43C3F505422C1AC31C014E82009D4B13BF2CB7DAB16896A320FE6C0476F37767CCCCD80850DC94B410B983FBBCB484DD09B44A817FD95686106C710D983CD2BBC11DC4AE59091A401A6941BC704142C792C407F7524EDE1A71A726E2F921B0626768307C31DAB514A783FEBD67B50E93479D2C7D1787142F591607B7A5626A718D502B37A6F5B8766E8175C6EF276934A12AC1107AA3362840513D3F5C02042AE681181DCAB30F6810389DB07C3FA1790345E786031E3196BCC01C22BD064B2F9C439D7B7A7B7633232AAA4D88E0288CDB791049B8A8C64883637098DEF7C88FBCB974554AF0F3C51C70A758176215871227869766452871602093D6949E1D078691537D9D7030B36926147AFF8151CFBA202C0364795122D1D748A18289CDB33982900B38EF9AAA5D10D146985C757CE5CF82AE0A2489E0C00C83550D455A03FC885DC7A5EBCD71529ECB0CA13CE1259186F9B0CEB4B90789ACA0762C8BEE063780801CE365540F440B0AA0128103AE0F5B4A5D9B98FF3AEC5793E8FD046A7E15B517C5C4164105E87C593DB19B85792B6C705E615C4D95C38BC4BAB4F30737A20241A3189EB38865C6B60F6341DFB931626E729CE39313E122687862BCED934CCF88411730FD066BE831542ABC5B15A1CB2D3F0AEACE904CB419754D9A5CFA35D72E570C8D3B0BDE5A5B18201F14CCA3E3564C16769757A2DAA89B03DD993EC8B7C9FCC63098478AF1890346A8824A4B142F88759F382292AC404F436BD21282D6A3242417B36211C84B75F388151F087186CFC01E59383E8218039DB15DA50120AA1C5489743BC42335A774F8494A4244ACB6677B22A46224DF7BDD8A9292AE58E07F3068CD975ABB51E44631172535E52C910B48748A190C50D877903A4C7B9F4B18993669D254EF566058528A157428111D43D360AB54343ADEBC2A3636720F1E0C8CCFCB0FC3B71B55353C2682946408CAD171FB711CF0B3AB561BA6722647ACEE4B8DAF0AEE2C43352609DC617549841ADAC54ADFD3319EFC715DD917AB2B887DFEB49CBB6323ACB566E43638A5C9B6F865DA4157CC3F866066A551230A335510F55733CA4F3A6329AA0830894E06A05EE578C45B3117FD07D62718A9842CED5F49710F7B15741BA5B06298C550B96BC6FDB0561926240FAF09012E2CB49C66868E27EA318AAAC50BF882C5BB8E674381A96645B7A7DFA936201933C31955E24912E436528027B39F74A909AA5EF4653CC23C5E448BE6F81088FD322FBB1779BE52AD60005C2F57241932EA3B435C47A39E6E0477B989C00BD5EA71BA671D8A37DC64D36216CCEBB14E6DC7420C362926B555598B92F6A78061423A4CC8961D57733982FB8C78573C35584185FED801EA674A7FDA06008517B42D1A45FCC50416883D0963D3B744EDB5E8548C3B3DC474F7843C49A8DBFC939C41AF7F8EC6C8354AEB0C67E05EAE0\nsk = 8DC4A33D0A013D102A7ED6A5303693669033816BCE0C8A83594695531999647A48F6708C65220BE4D9A60F013201A36EE053796356B26E3617126C3D0A354D2FBB82312A372FFA37B939A7BAC8AD0E127F18EABC771462FC57B542A73BB7067FDE6BCFFE4982E6DB3394264D34DAB222318856BA8B6919C5A0A667866C0D2166B69AE04432C044F289BFD7255542CC7946B82C2DB388C8B656F234A3B607C2F6611ACC3A5A12C8111E42138ABCA9B8DBA79921A177682C2AD1138B133636951F5AA77A52B7554943AF52F7B53D0B84ECF44FD77018F7062E564C5E58753994724242D6B3A8F8A66DF518F7E13A0A5C1C4B253DCE12AE197342F5D72C296498BC9888EC347F528958AA689C8DDB81870184C9E2254F918B7465354826870300790044165216C8BC279AE93854381C28CB438BCE444B2258AFC3A84CD4F91DE8373F877B30137C4CE4664E4D330BF763B344489604E97F4C9C24FFC226D07C5824CCABE38CAE22487EA2EA0E89920F304BB911B401F45735089512DCA2298EA1A57F643CD7524A3D6C9F055B25EAA62FBDA318A7B8C8DC9C5CEA953AD5170C0452A7BC04469987712D0522256A1EC52961561175C32ABE93DC5ED37289B9D4CBD3966911FAB85FE47B3C68692CF5A845286BAEF91493E15C6D23437BF7517EC5CF609C8628D82FF7CACB54D4A5EAD25C85F59AB51151F9350247782459B598A2089A85F2C9BF66797E863A4CA0732268A4E40C57009D0C7D1AB1FF46B78E350DBFC19FCAE823BCC040183A27182ABDE00A966A6075E68C011AA62EEF913024CCC85B460098FACC9C4C81D17C577BC009B8F9416D225D156C4E75B84691A90948D31883B1B2AB3635DC357AE867B2496983CF9595423C541E3C17947042B3D141EF825C99862302BA911C67619434B3F9CC489E8C8ABAE92AF1EC3045C895EDB41F745AA1F3D1A625E47EABB49432129A5608571431C4890C8FA5769563B8B1F9BA3C1B77B034F568038865C90304A4F79F65F74C17FAB9E6B52236CB636EF5B686271F955A9E889B7A1EA1A010828AEA1A838DE1723F0149CF172F48890161C34039E99B36185F068B5707FA476D650BF149479B8C928F93089A4B941047B5B528135685797E0B9E65F595D9016A614393CFD630C6A217D0A03091853F606B238EE13C92C2B5D9E19B2C57638CE82A3D767639E115838B8EEAA5A47B7B686EA05CC088ABD47A10AE593AE39A07F55CB4C1347ACAF7CF59422182749E6AEC39D62CCB876094BA3CC0B871C57A03A00AD67C5C1C6EF911C6DC36B13CAB713BE1A6610CAA46DB4EBB86B76572A0BD60ADF163B325C89B506C33CC343C37A2BCA7CACABD90494F044B550778677C2EBEE76E03622705556B509C204087B5C5E5936C0153857691C3149521B800B76C43195897067529A4A87D68E974ED57178B7980EEE227E4150AF1234025757EAA3B645064202D632EAEA3943B40CB10922BF569AB2C44867C411BC8240D110134D78143D3D44B450056BE166B57921FE64A44F80968A1941D91A971E10C347ABA369702B1ED542984F28B6254BF61D94B69F015B0E32B05E8897502238FD21D87978EAAD45BF5997654B40A903319CA64095C9297611BA36D3A65C0D17CB22B7F3A682B593595B1C682D521A16DD621A05A7D22C9B2D29C9BB75CC5A8567ED3A545BAD39E2C85CEC0F83F37C6AAF101BEC273BCA5D606A5E76FDC183175A233C93373E956580A522BADD22D97D71199C1A7B4149E652686EDA541E69187A2ABB68F89AE9492443547CFDE7B5D609B4835911D154C33E49248C4CBB244ACBF03E93E52E71ED87A75CBC43C3F505422C1AC31C014E82009D4B13BF2CB7DAB16896A320FE6C0476F37767CCCCD80850DC94B410B983FBBCB484DD09B44A817FD95686106C710D983CD2BBC11DC4AE59091A401A6941BC704142C792C407F7524EDE1A71A726E2F921B0626768307C31DAB514A783FEBD67B50E93479D2C7D1787142F591607B7A5626A718D502B37A6F5B8766E8175C6EF276934A12AC1107AA3362840513D3F5C02042AE681181DCAB30F6810389DB07C3FA1790345E786031E3196BCC01C22BD064B2F9C439D7B7A7B7633232AAA4D88E0288CDB791049B8A8C64883637098DEF7C88FBCB974554AF0F3C51C70A758176215871227869766452871602093D6949E1D078691537D9D7030B36926147AFF8151CFBA202C0364795122D1D748A18289CDB33982900B38EF9AAA5D10D146985C757CE5CF82AE0A2489E0C00C83550D455A03FC885DC7A5EBCD71529ECB0CA13CE1259186F9B0CEB4B90789ACA0762C8BEE063780801CE365540F440B0AA0128103AE0F5B4A5D9B98FF3AEC5793E8FD046A7E15B517C5C4164105E87C593DB19B85792B6C705E615C4D95C38BC4BAB4F30737A20241A3189EB38865C6B60F6341DFB931626E729CE39313E122687862BCED934CCF88411730FD066BE831542ABC5B15A1CB2D3F0AEACE904CB419754D9A5CFA35D72E570C8D3B0BDE5A5B18201F14CCA3E3564C16769757A2DAA89B03DD993EC8B7C9FCC63098478AF1890346A8824A4B142F88759F382292AC404F436BD21282D6A3242417B36211C84B75F388151F087186CFC01E59383E8218039DB15DA50120AA1C5489743BC42335A774F8494A4244ACB6677B22A46224DF7BDD8A9292AE58E07F3068CD975ABB51E44631172535E52C910B48748A190C50D877903A4C7B9F4B18993669D254EF566058528A157428111D43D360AB54343ADEBC2A3636720F1E0C8CCFCB0FC3B71B55353C2682946408CAD171FB711CF0B3AB561BA6722647ACEE4B8DAF0AEE2C43352609DC617549841ADAC54ADFD3319EFC715DD917AB2B887DFEB49CBB6323ACB566E43638A5C9B6F865DA4157CC3F866066A551230A335510F55733CA4F3A6329AA0830894E06A05EE578C45B3117FD07D62718A9842CED5F49710F7B15741BA5B06298C550B96BC6FDB0561926240FAF09012E2CB49C66868E27EA318AAAC50BF882C5BB8E674381A96645B7A7DFA936201933C31955E24912E436528027B39F74A909AA5EF4653CC23C5E448BE6F81088FD322FBB1779BE52", + "AD60005C2F57241932EA3B435C47A39E6E0477B989C00BD5EA71BA671D8A37DC64D36216CCEBB14E6DC7420C362926B555598B92F6A78061423A4CC8961D57733982FB8C78573C35584185FED801EA674A7FDA06008517B42D1A45FCC50416883D0963D3B744EDB5E8548C3B3DC474F7843C49A8DBFC939C41AF7F8EC6C8354AEB0C67E05EAE0104FBF09445794C0EA0654F5CAF70EE09D51C8386D4E1F467B10633C710AC2A408A2455063246EB5761E908816E48990D670308B0D34D7823A325D49A1A4DC0D\nencap_coins = D7A9EE0513802FDFC6995A975C992350A5277EE79F1837E66959D1D0016EEE34\nct = C173DD81EB181FA2AFD1DAE26B2DB2B18773F375C047DDC52F7B6EB3D25E924C4821558373D9925BAC6BB80C3DD2223672C3BFAC360F9AEFEA371B87DD5A20C73D2BB5A4DFB7E9AE2D3FD659501C4BD5932CEA9BE91905FB714C8494C1A90CC525D7E612C9C6F3961CEC98EFC7C04B48A5A38E48567CF3523A924918D2FB68B741581D7410D447F14FEE3A29150870EE891E283C2B15FEFF76C6FACB1F6C82F12E22DC2CEC8CBE474F5D61BBB766531C982C0E6329CDE58DBBB90597822F86F03E8E0435AA9E28D04BF89C30945C1E68DEC27BA37660C03CF356C534C763A5032C14050E1DDE0624464FF8DE43E4E7BD46AEFB4B97A89E43D015FD23E256B2C7B4DD9467E2C077025DA3C2A99D1EAEAB5E341781AC857A5973BB44B34B9E058ED0706C20618C48610964F2766545075A056524DBF5B2B9F668E4D32A69E2E016997A00CF1F00DB372303F2A3A81E73D6FEF7DE43286870805CD41C83509D8745BA94FC763013E08D4A5A18C2C6771CB1E601B9135827071A745583E1055450377EB52679FB9CDE898B1FBC76AD6F5E70600542FEC5E9EA5117C7EC81A9AC6D3FA3C1649D75BB2E67AAF2A0BCDF2AF388FD128D49FB3728C1588DBC9549BC2F6A9C6F0CF5E4CCD9727633BE5EB5EA3E98FBB8D54B008F48B669E9D87739DFCF847C2BD9FA97E4805FD1B5B6528DCB18E7B06AF2A9B6F50C595173580161E4A05BF7C0D887D1327989CD6C3B5B426A52B0D927C7CB6636278D31930F9278A23C07176379370501A78A886B2BDD05025A0E23562E23C1C6042CAA1DD2DB438E8F3A0C1386C360B08C25C7AACE0AD55F6C3257B8C0387DC2119E89AFF41C8998632B65DD7BCBC119E544B224BA11C3705E19A58420A28AD0F90215E239B71A925DEB75247FECA05F141D5114771DA5FB11B57CBB83BC93D529137AE6EF81602841CA2EAEBF8D142A56A3A0836E77A5383220D5E30722CD70C872083BB752468578E5F7EF05622E768C83C2AFF787AA0563C6792020C653565BEF985669D5067C2D2AA6692E1AAC6744659C3A1B70DCBB851490A620A50457F2F31D3D3B2C197B90D83D8E723CE61EFEB11D882A766C3C1F7E0EA24283BA67F06AD2BED185881D4D46B7ED2B48D35AB1A5AB85767A7229F75698463A8F078BF1B9017BAC783DB6311F9FE659496B53271097E8F2067EEFA35CD8F509E0D1D5063559F9843B178FC5C28D910E7B2F31235BE3869247F349E5293C0F2CEB4DB0E908217292AC9B601EE0ED7A82B499053FAFE84BC9432DBCDC6FFC5093A09C4A60CA1E844C4851D78FDD14DE78F847244A55E8DE3AC4074E9E2749EC0CA345730991505C474048565BB551E1D93C4571F0378440D7644C92B43B8B6AA5BAF437F87736817C6CD98C6524092404672B8CB5454F2AE591B6B18B920CEE22F4517E609E3EFEA6F05C0FEB963323DC6C28548D1EFD2742C9DFC8493B582E2855ADC17C44252344A4078C704A39FB7EBDE0A8BE24AAD1143DDAC3937459A7BB4819AD22C94B6D1699282AA059\nss = E9616B25A3261EDCCADBFBE4B797302C1101431E02CD2E47FFB4968086644749\n\ncount = 74\nkeypair_coins = AE0F65E29F38804A6759F70F4D01E2AAFF7FE1C91EBC4F892DD0DE3AB2E68EA5DAD700CFD0BFC439237A0CDB3F7D6C76699AAD545D0ACD755F14F7CB3B30096C\npk = DB0A138C9442FD3A7580E68EEC01077D31525465BABEF901806363A2D664EF8C1908A30491E336E27B0F8690AC71C30ADB145805A15FC654AB8982565EAA96FECB93A2EC7EBB697652965FC5AB837F6B7A20E224E4361977B71C694A88E5252F608CAC97E97DD7C80A5AD10D62681B57162269F7B8D812AF039226CE2A7930E43007C0B3EC6A4CDB3897EE85796D051CB053881E1B9706A572CCC75D0EF32F92610C40DB4553824F1A352FEFD979A310124B9456A9106367EC6A50DB6FE0B057FDBB00A46028C0D6A638BB7F2139CA6DF68F014C4E1E0B79670869353912B5D67EDD4B77C70C067AA76D174CCED6C7A901C65737082276188CFFE28BCFAA2604447E68D490C0F11CD22B8C351C2D63E7A01EE460BC408E174BC4A6CB023492C6EED42F5D85244EC883B1B49B8E3584F27835F21B6B2E6060E0671F289771D124168E196EDACC1ABA26CEC9E09FE7367F46893C2EA3677CAA3005E34E722608A3B64A3B987289952DD695A82DE89B9034390355C5E33546EB833F602CB9324C095BB4CF66C05FA0AB98D69BBDCFF155C3169F3DF2A575901724B678FB080B67F32240AB8F0198CB43176F6FFC93FA602748D591F0B2ACB9AA67A8D8B15C27140C320B0EE040E737077A8C9FD6A20DCB865FF51C41808757B0CA750C502A356B1C7D821F1BF804AE2B337819C5EA89542E079045C887BA6550E4F05693F5C7012424D37A17E2294669C0538CE69A1F1C1F121784E3C3537424BBC4D73CF1A685F03A24C4BA8FD603B328D2A07FA2B714DC1EED17693727732EC7BE2B02C0614CAF3D42B222061DDCD758A0674133E6CFC5362F855B717695ACDB971AAF16320690606C1C42238856D757B5D610BD64427F04C97ABE1BC6B0185116CBBB2DCA28B5D7A9AEE205DBD37E92BB36311C8936D958AA1744CA67332A600D8C719377273C7FB0029F27C75817746E1058DD196DE71B0E4302682DA21B4EC1BECA3CBDF690509573959D816CF5FA034CE01D6A4AC477E3BFEA75732678AEA6C0A5401C623DC225C7A9A7AE6A572F738387181913CC71B9379A5A2BBDC45773C6A1167FE756E13731F47226BC678331312B99428B07B2122B2B9DC86B01C5F090FF632FA83B598863C0B42623549CA831F66BDBBBB1D4747D56A97DCEF9C81766A3D90043C1A99CE5E81105E9113043342A539DE446A7C5F9C4B46A8CADEC388FBB8BCA527D90A56C649200CB2A7F968611934014F9A7B6FAF3015BF6494EF72FBA0C7BA40C499357ACC96562C65B9CA7C53231045E35771947172118EAA02CD95F7137C93E2159D9389607C3011A76363560A97DF950B0329258B0126C7BC10E4081CE46B7C7B0AF0752B038386E9AFA2D0A7543D85AB909376B618C0A2D33875D264B76941430E81C48832F43270160176ED5938492A06CC08392237CAA8487ABD3C83019000BB6671784109C7BC4C2A0362A5B5122E620ABA511C49CA42D75091B3B1ABAAD9B8162BC27F182AE310872E789CF05F6C949598C41C3B73A1A9CC0808E68F95C8AD8392F021F77C79618685DB2FB1D04A9A8ACB8441CCC764AA3B191736F5A24AE31C23428390C1C22C6A6052664DB63B94960A433584036C05E031A07823A03CA153015FB2665C77D8FCC529F21AFDE0D4F32CBFA399F2973D812F516C86B\nsk = 38BBB649E7520A59AC57783E32A5022489365713CCE30171AB46AB219B7E81369AF44BAB6F5BADCF613E963938A0829ACE625BD8594ED3C0981C5963F68874AA87685599041C4C296B4CC181E57667D499B2F961F44773CA958193E97988D816D702078C0147E41390F503921F139384D75EFC91CD08544536B4C9C09BCC2914A807E090D98B5C07C1A4A0C16FF0EAB557E5CCC1871BA1A36FF66B1ACD113FACD6BD16053F22CC85634A3D56E564E30862AA1409D48AAF92643B62009F8E206C2C8BB7F357B9432A8474349C3E1679F1D154CFD4A373665A86C481B9C3163308CF3A1A265A6313D0068BA2181AE5E5A1114995005C8FB574C4A7DA80562953348A80BC23CD90C37A2D166EE4E895F2A429AFF3C9EEEB869EC9982D367C5809396987A2EFE93DFDA2CF45E774CC3541BFE655A7280AF9B7601FA5183AB62682465FDB273AB435355B84563047BC4C6204AEC310D4B91E8B849182C16A57605A6F5690D3804D8857379E11B324977F30B461954A17CB16C4DD93761224A47F4C680373C51DE251CB69A2C737CBB1F76D7278033AE86480C7776CC7CA02393F333B6CC00C200AE58922756D3664A30D7B262302672C27A7496746F8F56797726340C734473522FA880819D76A004A480F48B74F7C6EE1998741D39FEC12759670B4E8057AEDC67950B929E200526BA5A27E0BBB67570BAE100B77D525AF70B7B6143A7419A35273C14B492E1E42C5B5918A62F3C829A50C1FD8715B030CEC454C90C72E6509AB1936AE7490C6B62A6720A840AA714F7B6B0134335C75C44A421598B790631E2CA497E256BE08910B69C01997BCD20591D1967EF5EC5C035B0C1F19A01BC0103DE6CAFDA45DB70950CF551DA2442741EB7233B36396C124C6365A83B66D9CC896FF448F54194FA05267B8154895173075039143DCC58062CBBB1946A917ABB184788052920D1428C856BAFB3461A463627EC7430671CE75BC2ADC95622EB2925A582A15E487787389BCF14DFD84801A37BC39136CC1A49CAB7CB924772606D48D3941BCCD3221EB418B12A6342AB6C357F273795339BBC720439AA9CD5A478122B8B01769EDB013686C8E872A4E2C049A755A8F954614665C61D5D9AEC7D67CDDB779512A308BA3CFFD5C4BC642C091226667C40957C17B3C92BEA102143DEC663B6155464AC7A9559C533A647C5A106C38972A26BEAB45C2F04C974C9BB860BCA64615B6F0782305C81862ABC973D280088BAC791876D3172D4E340F26452F60009A49989BEC107B680B62CDC12751F9079ED07C28143A405A600A974230B20719B0953DA3C2DA574CE2C31786C77600646E25B3C305F6507D91084A836366C273D62C526E0630F9B483CAF335D6BBB5BCF4ADEB4143443A07055349CFB690948487F7795B67DC2E45430E7A5C9564CC84CAC0AD0832480AA844417446B9B086A493B7AA163B76A50F35B7384BD054147A8621674843C3040CE06EAEC68B6CE8A2C5B42390C76350E10DDDB35C9F4C4A1CC148BA08601F92B2FB12C9088922C3463139239A62E878E4DB61A3529A8FA7905A7A1AAF90216DAB5026469B27D4122AF5561BB91D111A721A78587EEA259A4C7F6B743574398E30A119DB0A138C9442FD3A7580E68EEC01077D31525465BABEF901806363A2D664EF8C1908A30491E336E27B0F8690AC71C30ADB145805A15FC654AB8982565EAA96FECB93A2EC7EBB697652965FC5AB837F6B7A20E224E4361977B71C694A88E5252F608CAC97E97DD7C80A5AD10D62681B57162269F7B8D812AF039226CE2A7930E43007C0B3EC6A4CDB3897EE85796D051CB053881E1B9706A572CCC75D0EF32F92610C40DB4553824F1A352FEFD979A310124B9456A9106367EC6A50DB6FE0B057FDBB00A46028C0D6A638BB7F2139CA6DF68F014C4E1E0B79670869353912B5D67EDD4B77C70C067AA76D174CCED6C7A901C65737082276188CFFE28BCFAA2604447E68D490C0F11CD22B8C351C2D63E7A01EE460BC408E174BC4A6CB023492C6EED42F5D85244EC883B1B49B8E3584F27835F21B6B2E606", + "0E0671F289771D124168E196EDACC1ABA26CEC9E09FE7367F46893C2EA3677CAA3005E34E722608A3B64A3B987289952DD695A82DE89B9034390355C5E33546EB833F602CB9324C095BB4CF66C05FA0AB98D69BBDCFF155C3169F3DF2A575901724B678FB080B67F32240AB8F0198CB43176F6FFC93FA602748D591F0B2ACB9AA67A8D8B15C27140C320B0EE040E737077A8C9FD6A20DCB865FF51C41808757B0CA750C502A356B1C7D821F1BF804AE2B337819C5EA89542E079045C887BA6550E4F05693F5C7012424D37A17E2294669C0538CE69A1F1C1F121784E3C3537424BBC4D73CF1A685F03A24C4BA8FD603B328D2A07FA2B714DC1EED17693727732EC7BE2B02C0614CAF3D42B222061DDCD758A0674133E6CFC5362F855B717695ACDB971AAF16320690606C1C42238856D757B5D610BD64427F04C97ABE1BC6B0185116CBBB2DCA28B5D7A9AEE205DBD37E92BB36311C8936D958AA1744CA67332A600D8C719377273C7FB0029F27C75817746E1058DD196DE71B0E4302682DA21B4EC1BECA3CBDF690509573959D816CF5FA034CE01D6A4AC477E3BFEA75732678AEA6C0A5401C623DC225C7A9A7AE6A572F738387181913CC71B9379A5A2BBDC45773C6A1167FE756E13731F47226BC678331312B99428B07B2122B2B9DC86B01C5F090FF632FA83B598863C0B42623549CA831F66BDBBBB1D4747D56A97DCEF9C81766A3D90043C1A99CE5E81105E9113043342A539DE446A7C5F9C4B46A8CADEC388FBB8BCA527D90A56C649200CB2A7F968611934014F9A7B6FAF3015BF6494EF72FBA0C7BA40C499357ACC96562C65B9CA7C53231045E35771947172118EAA02CD95F7137C93E2159D9389607C3011A76363560A97DF950B0329258B0126C7BC10E4081CE46B7C7B0AF0752B038386E9AFA2D0A7543D85AB909376B618C0A2D33875D264B76941430E81C48832F43270160176ED5938492A06CC08392237CAA8487ABD3C83019000BB6671784109C7BC4C2A0362A5B5122E620ABA511C49CA42D75091B3B1ABAAD9B8162BC27F182AE310872E789CF05F6C949598C41C3B73A1A9CC0808E68F95C8AD8392F021F77C79618685DB2FB1D04A9A8ACB8441CCC764AA3B191736F5A24AE31C23428390C1C22C6A6052664DB63B94960A433584036C05E031A07823A03CA153015FB2665C77D8FCC529F21AFDE0D4F32CBFA399F2973D812F516C86B0F353D6A29813D354471EB8B4C38DF93939EB3B1DB80DDD1CDD6558A9F2687A3DAD700CFD0BFC439237A0CDB3F7D6C76699AAD545D0ACD755F14F7CB3B30096C\nencap_coins = 2BEE79D35D1BD40005203028B58B095DDFF33A4806A2BA264F76B6B06AF6449C\nct = 87E52A8AEDE00EEC6689B803F7BFA0F3592E5EC2E083863FC8B5E2559D1BFE49C077998BBA9808D9A7D5D2C0BB55C2B6A063A3D049482A9911FE8AF21BFEBB72992337C0A35AD4CEFC4D15C59A12F0CA0D1A920995428D7D7C74B9633E41443A3ED979F2F17C89CCB35573CDC33EA998715C57DFAFC22C8B739818F7DA1315952791E7C1D9C98AA0632F5119401277187485DBD634CF88582F3E27CBE973FFA338BEF925403720B0E1DC5BB9D5378580696F62B3ED3E3DE2830BFE2DB400115F3190F6B8E73CD0293F75A8EDAA8FD142A36681E0A554367C16E941ECDAEA994F3A5D018C5BB58482846122481B0FB822AC4D4ED7A5B0CAAD4FA3DBE603BB1E4C126104ED56A07EB91DF1326EFCFFAD6A3E102296E922AC27B647C5FAB5424573555360CA19C9DF7AB1AB43C19A1151C2F53ED9032BCBD971BA6F4877BEC79937C68098B6DC530683A7EFB6793EDDC5BD7FDD614C63DC9707A9DF105B54B6174C4E2C13860E13A6E9DE1FEB471ECD9AA3D55F50E7E3806BE98CAE3A565BDCD4C1F4F91A98A0C3D75084A92BD8BED01457F66CFAC46C4BBF2CFE527756C3DF21623E8EA287A8FC79EE6A1BCF73BF58D8E5CD58873E89F66F5DF99FD8C25664B1C15978F9ACDCF02F2FD3C93E8D3FFD2A76CC330EED44928C2B1B08541529B43C618B8BCEB13FBB07AA80FFA71C976E012813A197DB54B2E3F5A564A229B62B01F98044535363DA50B88080386450F86E049C949D0F3A55AD2F4F69D081121D8B26329F1144E730F6BAF0BBEFD499EC8013D958213A1E7EA94CA0E3DCC06D733DABBAF2BD0834C530CA7D9DA0F602DABA03E976C502E05191F7421C7E452B05D1E20465EA9B717C5309ABA3D33033CF7DB2AD95AF56159E425D35B097B13F0E043BA43E23FACF7D5F6D6C5A1033ABF353710677E5629AAE0111A0A3F101F5FF10D763CD49122829199A84DCA84295F0B1B61B66FB83EDF3A51F0CA2730EBBDA2DB0C111612C07A7941BFD4BF5527BA0DDB44DF9E487E66341191A993FDC6781F6944D553F4F287AB17D55DD75251E57A6341CB6C7D83B1B1B0EAA491CBDCDEF2883E4918029EE4C7B7F2E19C8C213BBC66A184514B9C830B8930180EE72CDE72CE7A8E6C2742B376503660FA8B1F59310C87229F2A4579414D07B80E25BC8DE32F32776C4395390ABB0F758CFC5A5EF364279A6B6896AC95BE0AFC4D85CC2EEF3E99495ED5097970E8A237B40ABF89ADED64A6C0D468761A37816B3D4AF903E2EE0BAABFFE13B93F6B51B5B5CEFBA42995650519A9DE024240958A18181E8D2928413507918AF68DB3972FB2F7112DFF7E8E902DAAC9F6DF1CC2AA8F1FFFFBE5E656E1594B54D1393CADDC6AE059E48EB6472D4B979C4D9EE80D19F07B3B67281B36D010808F65370987A32854A540CA8AF14B61C6AC21DBE6C5025AF6745D13636366574D73D6200F6FFDDC13F216BF88507A1C5B53D01C90FFE181B3292D72E606F44855FA785C1FE6F15D511822333CE5C5011B56F49644B4A9ED8B7555490F9\nss = 586A425A78D2DC217638D3088949F1A526F611784A01E415BCD29A41D695EAA6\n\ncount = 75\nkeypair_coins = 6084A235F79DD093EF6D185B54E69DF33DACEE73A9BF2F379004421A10E3A79D2A96A70166E26D17A7319E8A5E12E38CA01A98D8A5813049A5BDD355A7D71347\npk = 35A0C8EA287462D8CF8841CDC9016796500E61E89EFF672E87C667F453C8CCD148B94C9A9A3765649CCC6E1C05E5350218D091783B6C7E4958A0807E73E9839992C8C36A87891B7CE5D7122E38B5CDD745FEB1058FC2827B882DF77CB564323746855392247B054527EE862ABC91A557C431E55B81D23B1C1A94992EF540E07338FA944D24B17ED4E693EEB8224A0C5307202457C8033AA4651B2B30F85A9BD8070D1B11675FE240A1009DACFAB21D50036426A6DC9C3DFC05CD1612BA91DA51BD5A0F7EF9B235F1B3B2641747AB8A380B42C060357BF259548CB80788CB41DA4C7D3C4B9401925588920DF255167240F6B092C1329799F0039B74CBD549B2C053A71D4641071A3A95A460B2B3A8ADA727193267DE555E6CE87986AC06E647C4B7967CDBE5083C4B99A1B44B5DF58959C48BEABA0818608FD4046EA0C09A28416C6A97A1066C0650CA619D14A056252D38539F1C2676B69CC53502487389648FE596783BAAD0D7627CC6AB2DA5B6788410B67285841A323E04D037F25E103B38B07672248186C969B04661AC6B2753C5429EEDA389599B78E84608DEA89556A9510627B29E13B1713A1442158561DB8F435BBD6234A420618985DC4F71F0A5F15762FA16084F178E0E76BFC9EC5C35FB52E52301E6809CBB287D42B7591828AFE605CFCC93C337BAB78B55237B075A8BF08C48C15087E82600655234FA99F6987DA7904EF50A1599867D56760AE1D70006925ADE67157508289F137DEF9B9714F4CB72A017EE6A6325F9418F3A0EA3A8762C55987AB406DD9A6D248A33EAF264774AAFF6F00607F37BC20041D3A170E07407792A43C5407FB3622CCB065B74BC1A54F86AF9F7246D288FEE725A6FD85E82477483F778D5388728C4565467A9BA3216D92089BC1C742A20B03BB526B73573CDC91AA8E085F1ECCD1866280E791BD1E43D4843A440E050E2967DAAE26686CC2D32F512332CAC82095AB0005133023E75C9C92B0388BC8B2822A82F93FC3520972E2E0A062A388931092BFA8758F251895C641186D1B40F6A332DF3088BB24381DA133CE40D3461A7D87A93E702472E49AD91CC013C936B02A96C4CE14C2B23AC79869C6D139C8D85B58DA27C6EB4C4250BC3DDAA56DBBBBFFAF452C09074E013A3C7599CD5B8A876076523C6B0AEFC6A503BCEE0FA76407B779DB92453F7AAA4E58401CBC6F3718A3352013E1383B4222572118878C99289B91B02D929DBA06C6DEB6F4C2B0459F86D04FC8D287B6A676B17E45997027568BF7BCCA05C3D394C1557873711174242CA50CFA30BB3D715D1400807CC5FF1049CE720BE3C360FEBCCB61DD7244F4352B655A517485AB13B413983CC089749AC7144312966B2C67AD50096BC176142858881F09E3A075F8FA6BF638A13AF572BA026A172B23317A01A999C8C1EF478422CBFA9802F98F2856BD6A11F8584C532807771C19C411A2900C5A57C9B8E44B4C07B3BE3477BAA738AB2C407653A309D7A82CFC6B86A1B59AD1251E008598E453E04E3306C1877DC703869DA25A9B91FEC80AAF4F30B4D0A83E2DAAAC73990F05A9002D6ADA0409450454291E37112A9AD97147CC89999DC89A30C809757933C5D0356F329BFA3823D34197B7D9E60E307BBABD9B3E8272A0EF1B3333269A7AF6A5BB8740BFA\nsk = AF361347809757C2AE0C4A60393C90222C394CF136E95517552721FF136DCC234D64715A1AB43D15708187F89A6830791E0062CD43253EE486AC54179D320FA6A8BAC4D0C07B7158A1ECCFE52C4847403849982D73288877D04EAAD37D392AA487597F80F19AF7444E5A82CFBE51609AE515C1B320B6C75AEFC121D5E2904A0185654A418E5C7A379B41838ACE149B45C5A4040DD239ADA846102A6BBC811EBED4710B2393ECC4BB8C6254DC815D2667831F962887A74EB883A5A8642E0B427450D01321246A8797B7BE1211EAF64B0C706EEDFA17CBA2B010626112AB6B2B2B928DF38CCBD9B639B9C6AD090E92DA98B5C9914549BEB6A9B5505579A56943D210722BF590D63C1ED56534A96552005226C34CC1AC32572D2AC0823BCE348086096525188088DF229536BAC34A1C95083309A0971F31D975DE0598E4E009D24661B2A79DFAE85343B94FB1BC171493AD77D767E0814837348616205652EB4F98838CE536691DE8C3AF0A4970EB0C3600B4605841BCB0884E08BCA3198B04B2AFA6F575229C56462B9516026D32D2CE33A4B1ADD3B411371EA6516765F457613CCB50F94AB9395F6FBC94395A6C9C104CE3B79171A83A49B22ADD3A915086B804C3B42301BC1F14630EE3217F059AEF485C019A4248B4A78A516D75919EB2B15BB1E5A34CB6B470CA7A797BA1B5193CB4565497F98BFE30A7578044867897C332687D925C8BAB05D0C35693F557F541B571D6AB7E4A752B80267B0329D7558FE4BBC54C8612AA95C03F81641A129B1793160DBA78C4E0269E9361087328A73C67C0044217A25C2E05B64A1B8EBEC972606BC220B1A456D8BA86A76AC4A3C06429CFB6035EA50549DB887A5F6170EA282BCC295A2EF000F571038FA97B6BD98FE0399ECE3755D4B55E16261F7FAB678C394C83676CB9F080BCC915C8B1C67DC998D7097074249585E31C5B30BD0250ABC570531DB43F546C2E05983A7B5219127809987343CF722FC38525B2ECAAD2CA703679CBB7500", + "420F83960D7505BB7B7B59A8B6F0C876C7A53D893A10468A516FA7A6A08C04D3259AD003DB768559E173DF06A08793B10E5A1A46145B6F0FBB230CA504424B4E9617CB3F509993567B4CB94CB2CB39811BC1EAB31B5F5691FF4108E5A6EAA9B15DC2AA45FC4AD26B9CA007A7C2A680ACEFA88F12790ABEC7E3DA1C13A355C1C669117070A7E1976F6859921E273F53632B4144B58E0A74207100D2CADE0C8A0410814D40A4234843A44978D0D4A173BE52434760423235F5D7C8E1F56C8181487BBA930CC9272ACD524EB6C9D71D753FE62B0E9BA33A478B7E82B36D9690607550ACA261085A08725281B02E531432B35398B7ED1355B8172776926BFE41880DF90AF6951A58981C708724DEBA6B6C2BB8AF1C0009C71A0B82AC0D14CB0910A8EC3988251DC9E93F17E067608115C85BB6C47D33A2A9359A35BEB47C3A04AB65537F59BC1EBACBED4B97855F753A954929B6449A4DB7D2098CDFC04008873004BC535BD5C74DD49247419601513C4E8125731307BC858845896A67D33902AFA4B58B50BE969B947851BBD791D66887CC6E92E19A2B92BA6BCC2825C4239AB2894B2467547FF3A63BEF65E35A0C8EA287462D8CF8841CDC9016796500E61E89EFF672E87C667F453C8CCD148B94C9A9A3765649CCC6E1C05E5350218D091783B6C7E4958A0807E73E9839992C8C36A87891B7CE5D7122E38B5CDD745FEB1058FC2827B882DF77CB564323746855392247B054527EE862ABC91A557C431E55B81D23B1C1A94992EF540E07338FA944D24B17ED4E693EEB8224A0C5307202457C8033AA4651B2B30F85A9BD8070D1B11675FE240A1009DACFAB21D50036426A6DC9C3DFC05CD1612BA91DA51BD5A0F7EF9B235F1B3B2641747AB8A380B42C060357BF259548CB80788CB41DA4C7D3C4B9401925588920DF255167240F6B092C1329799F0039B74CBD549B2C053A71D4641071A3A95A460B2B3A8ADA727193267DE555E6CE87986AC06E647C4B7967CDBE5083C4B99A1B44B5DF58959C48BEABA0818608FD4046EA0C09A28416C6A97A1066C0650CA619D14A056252D38539F1C2676B69CC53502487389648FE596783BAAD0D7627CC6AB2DA5B6788410B67285841A323E04D037F25E103B38B07672248186C969B04661AC6B2753C5429EEDA389599B78E84608DEA89556A9510627B29E13B1713A1442158561DB8F435BBD6234A420618985DC4F71F0A5F15762FA16084F178E0E76BFC9EC5C35FB52E52301E6809CBB287D42B7591828AFE605CFCC93C337BAB78B55237B075A8BF08C48C15087E82600655234FA99F6987DA7904EF50A1599867D56760AE1D70006925ADE67157508289F137DEF9B9714F4CB72A017EE6A6325F9418F3A0EA3A8762C55987AB406DD9A6D248A33EAF264774AAFF6F00607F37BC20041D3A170E07407792A43C5407FB3622CCB065B74BC1A54F86AF9F7246D288FEE725A6FD85E82477483F778D5388728C4565467A9BA3216D92089BC1C742A20B03BB526B73573CDC91AA8E085F1ECCD1866280E791BD1E43D4843A440E050E2967DAAE26686CC2D32F512332CAC82095AB0005133023E75C9C92B0388BC8B2822A82F93FC3520972E2E0A062A388931092BFA8758F251895C641186D1B40F6A332DF3088BB24381DA133CE40D3461A7D87A93E702472E49AD91CC013C936B02A96C4CE14C2B23AC79869C6D139C8D85B58DA27C6EB4C4250BC3DDAA56DBBBBFFAF452C09074E013A3C7599CD5B8A876076523C6B0AEFC6A503BCEE0FA76407B779DB92453F7AAA4E58401CBC6F3718A3352013E1383B4222572118878C99289B91B02D929DBA06C6DEB6F4C2B0459F86D04FC8D287B6A676B17E45997027568BF7BCCA05C3D394C1557873711174242CA50CFA30BB3D715D1400807CC5FF1049CE720BE3C360FEBCCB61DD7244F4352B655A517485AB13B413983CC089749AC7144312966B2C67AD50096BC176142858881F09E3A075F8FA6BF638A13AF572BA026A172B23317A01A999C8C1EF478422CBFA9802F98F2856BD6A11F8584C532807771C19C411A2900C5A57C9B8E44B4C07B3BE3477BAA738AB2C407653A309D7A82CFC6B86A1B59AD1251E008598E453E04E3306C1877DC703869DA25A9B91FEC80AAF4F30B4D0A83E2DAAAC73990F05A9002D6ADA0409450454291E37112A9AD97147CC89999DC89A30C809757933C5D0356F329BFA3823D34197B7D9E60E307BBABD9B3E8272A0EF1B3333269A7AF6A5BB8740BFA12E89C47142418C26396EF0174C02F69DC00022D56494D31AF935490EDEE63852A96A70166E26D17A7319E8A5E12E38CA01A98D8A5813049A5BDD355A7D71347\nencap_coins = A8FDB315F75AA1E656CAD005010B032BCE1DCDD7CFF8C938A5314ED240F480EA\nct = 27A22F78BEDFFBD2E9E2C8B99B3E4C3D950F6519EB7B1B99FAB97172ECD6D889488D28CBB78F239D6989165FB46D91249F1EBFA31919F0039D9F0A3591509E8A9BE4D0E4992CD720A6D929DA2E8A26B3756C950B03806123B1B1039975E91E4C756C6C97A14486237B534EFB34F59D7463012283727798565E2D084F3721697CB59ED8385DEF45B7D9D951A673DA94C4AC2CE68C22EC25F1A4BECE95C2B34DA932127C408E991D41E60FA578CB2DDF50614B8C59200968C42C03641D7B264F506E4934E6172BBD50F3741F974270E62483A697E93EB113C64BAEDEE06BC8E570FAEA56AB5152D1F4FD815CADCA12363D0234AD2C4E74F9BF4DFFB55CCCDE9CA989DD8E7E6B2EF79219BCA2D0E53ACCD1E8BCB90C7F62C0B545AB7DB4FF3AB27E4AF010B7E37720A7CAF7C9E3BA3F2B2B9F9827AB5D86730ABB32EDD2E7A2CD43BEC5344DC7DC08A6AD7439F0BD94B6F0AB695C2709439255FB0AB7A0ECD253CD01679151F193634B5A683E8F4DC44A1034AB39307C4E82439BFDDF293FEDC59B3FB6072CD86069159A5FEDBCE0B18B4A5B2AF62E5EA177CEA37868E85C67151926B9E74AD5F790C9190F10F1B95D98FD3B11D387C5F5A468FBB63C4910B43D8BD4933F164BE4EB73ED3ADCD6CDD4B41A8905CD95454D26871717F66A6209C2E385C839814378AC217E7EF4C5305CF1E8C69C7270AB6C3523D82DD2738D6AD418745449C3AFE9B8466F17925B9C6708529C55F4FC7518FCF7F78BCDDC2AB1AA65020C2217018150167C909D640CC00773DCAD1706BBF671F15353D11796D8C36C6921D3003D0ED9C5F9F24BA0AC16D0971DE5C835E176EAC03AD827A9077CBEAE8A8CCFCD8DBA2B569F20086B4016DB989CAF8EEAC0FB08C90E7626B02D688EE0E5A89C82537B5B7CCB73DB5A76143FA99261F74FDD2666F361B17A2A25B6A99372223F88E3AE6EFF6335C6E8CBBD8682F64D1019FA97394E4768D9462A81600F1D94E17E1DFDC65CDC4F0AF465C7F078EDEF6CFD2AEF96E82C3D1A616B0F5603D43CD493FCFF8916BA48CF211EFD1B4F14701940787AB7F9FE7ADE9C43F1F9436F9F72D67F8CF207D3DF6E15556E5E87AD67EBC19692345CE79DEE5C964DFF28A11DC75FAE30DDA39182DA09654C470B8BC0C81139635096C5BCD1A37D6E01CC858E501F5F398A50894F2E9C750A09CB5880D21736421B5D05C75EA40DF57FED7A58C97046B27C6A2C1DBEEED1C36B2D7391412F8FE28EB50898A393784520E454A5FB4E05F8C67E14F5861DD7A58DC9C7F760FCE10C60973D5B8CBA138E705930DE1AB7FC1B6BBE2897BE6C82F2C23A6F9CB3E072069D801BE5BC58988EE6ADD2C18414F49D68564F00810F1D98CC50FBCDE8C0354F47E5258105D9149DB987F0D14EC2DD4972FCEC78F821AD57810615096C773A3FBF45F6A414DDE765417A105E842682327527BB249D85DF3540721CEDCDFDC4E5D6432A99FCA4E09EEA689E2896C5F0C2EB14317CD37786063847C7F92853084931E6D85B27409C2D012F\nss = 542C773F515D31AF4E937259725A9EB45B14251BE68F0685261EFEAB78900A72\n\ncount = 76\nkeypair_coins = ACD1C0217FAD5CAA4235544DD9DE153AB1880CCF4C76F16F236FAE4E4BFDA04CCD2DD7A1BE89575BE8C14529BDE4D832CC005DEA955065C08B3185B215DA3A2D\npk = E4749BCD8577D50A102352B869402EFDE59F5FB54BBEE919E7D4A8BB8CC40FB8C7240401113152BA727CECFC8E4B817C5D537DF050902BD03DF866317006A2AEF59CAC269813A47FD337A0C5B694F4B080F100089255614634A2B0BB1ECBCC3F1D84CDFB3054FA749736E531C2E673716079CF45C89B444B7D821D892C7EC39A74D39B815C2B9981CA47F5E56840341FF9D23FC877285F9B90FC78BEA1B9C5C647AC52D066AD7B8CA2AA01E0729FA22C39D9C3C6CD833C6AAC061AAB1C1EE6819D2A245997B8580A9E1630112CC6B62C4952215A3281111675F25A10CA0C32BC68C7BC920BFBC7BCD82EDFE130B0434AFA29B2B9D90AC3F1143B5664E5E51984B52D976439794507D92CB256A1520078972B843FF3DBC6736602F68B289E0850EE845E49586C889CCDC104CBF13470F6F6C0E6766007E5C3A1348166933A45A1A62E0B749EE14A38E11A094BAE60A38C84079D81AA655782138671A0FA186A727457D351A8A45B6FE05369F7B158DE844E31117DDC47AF9FE52075C6ACD5F93A31C38EC7F608FF9096C8562E0271A35FA7265A56B24BF31C6A727376D1AB3F600573342E60884F41D355B2336E464B94554B7C108614C3394FBD561A2E74BA7045C0D74032877901E4F8A95C41CE9FC72013C51FA93B5C0B3C3B0A8C90CE0960F510A9F6A453B8B0012F7C2430350B8A4B6143AB5ADC7AAA6F3533E230C3062B7CAA33B1E9A3BFDA7BBFFEF8341AD0A33AB272BADA717A4790F4C99CF430BF114B62854810EAB7AF582A2EA327A599C490E25795CC5C42219771391B33DF4C7FC01524C4C520EB4559C2EA8C38AB5CFE27035C756248662C1E969EF478A2D2419ED9DA7125EC32B0557EDB5B77E0DAB221544E5F7A57A2941B89B803ED1C7D8DE65F64A29D8E7BC2020B723D391987F83DB0BC35E96AAE7B2772B37159A3257EAD277532119CF55959FBEC482169C5391A9409877C79255CBD1C8D2B8352CBA074BC4714DEB09F9CD81624D2782DE91EFBC30882C45631E96E35C9B53F77CC0D268722BA5EB858A1DE719A88EC240DA229CD7766B9A237641C1277C006A6672BF61AB5DAB4C223B7381FD3C16704CF7920B2F11210C969B6B46A152B72598DE4AAC1665D72A45BF51370DE61559F83081DCB6AA49339E489968C80498550AFC467C8AAF0C6C1B9085699B801C75EACC3142BE38DE6F6A64AD6708C426EACC13B09D8BEA819BDC200258D31A8D1F308D0A7470DD35161379191576A03B81D70EC58565CA7C4A6BB333338D8113D70F5BEF45B6835917E17C2945A06CBB7F2225675252F351593B06A6DB504B6E67C6E88763FB06879187C5053029724B3477281CC5C5294B36B64F12A08084EEA098489D5CAD338A0CFA61231268BB866C2C524C71BD6A467C845AC7A4EAC579049734970859A2EA753C6B93EF01532B130A103C6244A17870B75023E0014E6D8433AE5CD2B145BFE253A8BBA300B6465FCE277E2FABE36D6C8112887CB0A6DAEA4A54E258CF89071E407594DE1BF1F4AA2BEB50263DC5D5FC729B632957375B5CE6373D9B93211A66A29736A6ED616EF8538E95C45BF595B2EB743D79436D6385BAB74C80D88C1A1F4022E6C3BB3D2294C474C2C554F3BE4D7FAE86455763B97EC8FDBE9640219B35FC", + "36033966A3525D485F1\nsk = 31CB44A14C3FF840758055BF2AFABAD14A723C048D4D20C5908BB781844D574A96A0807C59D5192548A0089396A78B953AA52677B9A111CB012954B674571C5D0C7C5E6488D498290F7665F4F32DBA7228ADE2A724413798EC32619901215663B2C26360612558070BD06261BBAB86B4F96056A498BF37B1B84238C5099EC8F1AF4251C0862B861F334EEE85AF8D364A54F6BAD0E44A23A0577933CA8482889A955086EA3A2C94B057C1C20D540CD6D2976126854AC123CD386A855CAA385927318825494861079AC84606AC0F1810EB78A8398740BE69CFA1777C61A5CC1D758AE28C072D6087C379A567648558AC8A1883734C64361DB33CDD156FD371A2ABE534B162C6E336143B944DC2309AAC106525D6586793A2B3420358185FC787C2CEE3875E3425BE5627C1D49313413EE498B17E8C295908B718B3C4A6E03024D77F1EC37EAEB7462E09C683CB9B272431EF0ABBD0422AE2569FC37902AB90BD2C236F4DA66D78301A61765A77E43ACE81102C7355749C1463B55F10E26727086D73A1800924C6B0EAB6EC905D5B01ADC538C9EEC7A25989B85F24B1F68B9A22637613E9ACF609A67CB20B38BAB1A8D81CBD22A5EA8C7587A13BF8EB8A37E5949084C26B4433741A31C502A4C412535FC6A1C5000057C65103027F78F81DDFC4A8843C59F8563BEBDA15DA543BE2146A3EB7B521700958BB2A5064923236193D981BD1E2920D00B1CFC504E32495DBB116C5BB7AA21B6CEC5C9FC0B1AB73330544E7AF5BB1CEB7C159E3509938D0332CF51ADD245606617DCEC688F117BFEDC27DC5B8B4884446861B592B720B53FB23CF08513F66C3B51833E51B9A63E297054A8C03F8BAA257C64C2C8A265A8A92052C41146BDB3A32CE0B7196AA33564806DAC33AC05A20178C2A0CB04000D484F0325C9D16956DA0AF88F68BB72B7BC6B122A486CC1EB01BD3027AA316C6D7C1AE7D8B9A747443C5D7237989A93ED939D905832E76AFAE4172D5F70589E54F7B5CBABB536E5F316B3D38911513B400AD83F7B2A3C72A6C09EA3B4F68129ED285FB99442FE61237D61756A2AD78B7790EE69748B79E42EBBBD6B9B0D803A3EB77477609AB2CEA5920128356C369878855126C22F1AB66A3A4C202892C8863B609F7926175CF1E3967EA93B7ADE7A8E6779672023DD5D81BD4D9345AF36A38DB17E96B8D85B7C0BEB586AEFC9FD9EBC585F071C1B9C34FA2283A60884A0CC5EA210887AA677D24192DB582F05117FA189C868A3CFFE8B2FB584686EB3D009733E1D86C07D6A9893C7E9410B4CA99A4A880B48053878A45340D0056031068A63113BE4B51A630016875541E099935EA92B2668AE84C5A183CBBFED619691038973CC07B72ADB803CBE26986C827AC75428CF183CD5FE7C9C719378438058F470B62FA977DD658F219983F97B517BB1AED01A478A18DBB89AC1B916419A3B25F388C276C190B866356EC84C33B29022286C08A34D26948C59341A789CFA168ADC0C7A73DB36A72EC6C2C688C06AA3EB1FBB25B7B828CC3719C7B2473719F4E2B5C4AB8A4FC172A132439E0E3AF22A1BEAE17BA4CF39A155925C62A4C9CA76436496646906630B9349A335A4852C01B018F77DA15E4749BCD8577D50A102352B869402EFDE59F5FB54BBEE919E7D4A8BB8CC40FB8C7240401113152BA727CECFC8E4B817C5D537DF050902BD03DF866317006A2AEF59CAC269813A47FD337A0C5B694F4B080F100089255614634A2B0BB1ECBCC3F1D84CDFB3054FA749736E531C2E673716079CF45C89B444B7D821D892C7EC39A74D39B815C2B9981CA47F5E56840341FF9D23FC877285F9B90FC78BEA1B9C5C647AC52D066AD7B8CA2AA01E0729FA22C39D9C3C6CD833C6AAC061AAB1C1EE6819D2A245997B8580A9E1630112CC6B62C4952215A3281111675F25A10CA0C32BC68C7BC920BFBC7BCD82EDFE130B0434AFA29B2B9D90AC3F1143B5664E5E51984B52D976439794507D92CB256A1520078972B843FF3DBC6736602F68B289E0850EE845E49586C889CCDC104CBF13470F6F6C0E6766007E5C3A1348166933A45A1A62E0B749EE14A38E11A094BAE60A38C84079D81AA655782138671A0FA186A727457D351A8A45B6FE05369F7B158DE844E31117DDC47AF9FE52075C6ACD5F93A31C38EC7F608FF9096C8562E0271A35FA7265A56B24BF31C6A727376D1AB3F600573342E60884F41D355B2336E464B94554B7C108614C3394FBD561A2E74BA7045C0D74032877901E4F8A95C41CE9FC72013C51FA93B5C0B3C3B0A8C90CE0960F510A9F6A453B8B0012F7C2430350B8A4B6143AB5ADC7AAA6F3533E230C3062B7CAA33B1E9A3BFDA7BBFFEF8341AD0A33AB272BADA717A4790F4C99CF430BF114B62854810EAB7AF582A2EA327A599C490E25795CC5C42219771391B33DF4C7FC01524C4C520EB4559C2EA8C38AB5CFE27035C756248662C1E969EF478A2D2419ED9DA7125EC32B0557EDB5B77E0DAB221544E5F7A57A2941B89B803ED1C7D8DE65F64A29D8E7BC2020B723D391987F83DB0BC35E96AAE7B2772B37159A3257EAD277532119CF55959FBEC482169C5391A9409877C79255CBD1C8D2B8352CBA074BC4714DEB09F9CD81624D2782DE91EFBC30882C45631E96E35C9B53F77CC0D268722BA5EB858A1DE719A88EC240DA229CD7766B9A237641C1277C006A6672BF61AB5DAB4C223B7381FD3C16704CF7920B2F11210C969B6B46A152B72598DE4AAC1665D72A45BF51370DE61559F83081DCB6AA49339E489968C80498550AFC467C8AAF0C6C1B9085699B801C75EACC3142BE38DE6F6A64AD6708C426EACC13B09D8BEA819BDC200258D31A8D1F308D0A7470DD35161379191576A03B81D70EC58565CA7C4A6BB333338D8113D70F5BEF45B6835917E17C2945A06CBB7F2225675252F351593B06A6DB504B6E67C6E88763FB06879187C5053029724B3477281CC5C5294B36B64F12A08084EEA098489D5CAD338A0CFA61231268BB866C2C524C71BD6A467C845AC7A4EAC579049734970859A2EA753C6B93EF01532B130A103C6244A17870B75023E0014E6D8433AE5CD2B145BFE253A8BBA300B6465FCE277E2FABE36D6C8112887CB0A6DAEA4A54E258CF89071E407594DE1BF1F4AA2BEB50263DC5D5FC729B632957375B5CE6373D9B93211A66A29736A6ED616EF8538E95C45BF595B2EB743D79436D6385BAB74C80D88C1A1F4022E6C3BB3D2294C474C2C554F3BE4D7FAE86455763B97EC8FDBE9640219B35FC36033966A3525D485F12FAC52CA60594E514333EAD02CB1BFA5CD1D9ECDA4A0B25CCDFC47AD3F632A85CD2DD7A1BE89575BE8C14529BDE4D832CC005DEA955065C08B3185B215DA3A2D\nencap_coins = 794B565FE52DB74E9C19E9364EE545D7CDA5A67F3850D318C3812691356E5520\nct = F9473E5F3D507F8C5B6DA9D3F4CE753D6E0B53D517A4C2B8A4F6A0C5AC5B07E7E680E553546281291113654264615E4618E7E9E3B4DBBABB7BA43ADA670036034C612649593EB537DEF2D696D8710075F2FF9B3D7607A2F51EE06FDC6E923FB013DFFDDA6852BFB9F13177E755ADEEB574EC0689F426825ABE8313BC4A561E9D82FA2F8F33128F2519884FBEAF05DF17BF7CB87946AE524B41612D7475F473AA0C6E7948190511002B893D75B2800E610D3ECB685A0803DEB8A2C9F8C4B66FAF020F4E08523443C1945AFA0EA6C35CAF55D5D91965E1CB096EA7234D26596C4255195036DB72415B1FD6A1929A6C5737A4C7CB52DC24A20DE4F099F09A99F36906245D3E735146F31216FE1E373F794728B1F5FB0D7F8C9DDDA1CC81C7C8BD3BBC3B3EBD2430B8697F6C12770ADB52BA0D37A583966FAFD668B62FBE5327FCB7694A39CFBA43A65B6A489A9A849EC66F507DBE3829C43886C1C0ADF1DD3387A8CA8087F49791622FF06773A7D10424097ACD7174BA446E3B1F59CB9707B1C200EB213AF88E07ACFB28F90670F2A755D9BB7E0C92B44256A1AE9B7AD2E62B25218B478CC7CB1EF03BB17CDB23AD33AC7AEB19025AF6504D95DB1CBB53CD5B19723B9D56C786DC45703A938559FA597A4B9ABFA20B73735375F5C687C4B315107B108244594F67CC6B7AF6948E721AA2FE5891DF2AA6800FFB9DC74EA155409044DC2F5ED4D94B199D3B37FD726B8C5879352268BAD048664394E51B5AE8397E5DA14A24CD119EB5E7CC6C4C0A207E28AAE2A00900EF447F16E35FF786583EFDDCEB392074F0060614A0ADD60F9A4CCA0CFDDCC2D279E0489F6419CD4B302B0B383ACAFF3B83A5175BD2AF4E91417FD299D7B45B015E657EE9E804E31594A068AD9FA5627A4C2E16E145770C2BF1DAE3CD2532F5982A34F6F251B65D514B9BCD7248B75BCF0A83254EC01D364D021AEFF9CB5F25D606A1830477A4AD78224F7B00307A628AAD0C21397CD661630338AC9D6B392F71E1FD6356FCE6E9DFED863DD52C23C06482301ADDD1725C7836D7E2B850655C427269805A0F5741996669F93122F1A400029CD10ECB096A8E6C6113D89260BFF3B29945ED2AFE46970CF9C4B5E71E845D61901371C12CEFA14AC6D6F77A029782AA8FC461AE1CB55967647DF0B5ABEE096D8C891C5A9CAEBC1A8407824246EF05132B558F56F21ACCD4D6068BBDC45442326AB70E52B067F2B5CF36725CF8A92EF906406E016E174328F3CF068D581F6E155CE0CDCDFF7679AA57826ABB6A038471CD77868F33B64FAB032AF194D5C2EB89091AD4B44AEDDE55F0CEDDC3C22A0B1C7B08461957C1053D817E576C7F87CEA920AC3B4BF31E08E5A7B9A8F72BAD9B3724E7288F4E73F704BF4897BD5DF859FBA7C57C812953103DD4FF11AE8212B3224A96D0B6C4A71B53733CF657BCA452E019D1DD769BF1ACF7E2282EBC3A4A5CA1A1B5B931173EB31160C1748C7449F7A86A3407D27354D1E5D46B31CF7523514B6CC447569E0C8ECB00A446\nss = 32B13A9EE75C0A5EA2DB0B9BB0D21F169508BCB2DE4DA85B7F887D34EC63F1AF\n\ncount = 77\nkeypair_coins = 241191401A63AFA750F05662E354DDDBC683C776CE3222BEB83E3CF913D7ED7C9508257A83CCFFBD0677795070695CD40D7B7F39A891D25E7E208BB9D65AF538\npk = E26411E0CB6648D36C6236468793848AA4B7F4510377E0A24BDCCB712BC98CB21CEABC08101328D3D032CFE9C82D21372924C69AB5A402E9B3D88C87E9BC5C90335E5AC231A1B87EA3C2527B82445D7C8596B10A609616E4DA431C9593B91A1AA21A2E436A359A7A5901902A6B516D562363BF95890501AF4C5946626ACE3F276AF8966709CBB9B666B9842102F3077978E4872307AC65EA11002CBE4DD0BB83677419B89C9E0C9847FA6441C86B8B601663E40357831D1B3C21B4A8985ED50E546C2917F332D4ACB59BD64D9BE88EFB981362458B8D868DA7EC516EA9C807A29C5D51385781302072C1F3295DA2559003D4265CB330F43AC5B774562C182BE83636FA034BDBC3CB25AB6C8C21C69B873329321533A788287A40C1659F457C5E6E15456DA54A7FDB18C8BA246447606F2AA340A48B4FC667D7E67EFEC47910E05C3DA4463B75359668821711530835357B6A8EC62A3E7817C508C79754063F7110362BE73416A46533341CDE577C17A75B3316AC59575EB1A1575EC0104EE77F70941E91786AD457832E1493466A3FAAA55911E9BACEF8CE49F579F1753B5138797EF827F0BB0821EA69BD9C43ABF2181D0775FB6", + "4B8694C74F0323600FD3E5F1BC5CBDACDB2329928247E4759747C02CDD924CF1C93BAE5C37BE8C3B9C7E09B4660C3B9901EE33B62350A695D799B52743D5158C015CC609E891C87F9BA02616ED2D3A1C14AABEF101B4B42AD5C47916481BEF01B11B9496819AB76A428C0F5B8A69EBB24FB5B3407E1C22E2020341575C7098E63379406C9B60B6A1733C171682B1776719DB5ACBD2AC6AC4B97AA0A3C8C168A5AB389010A01B4DD01829EE4A402E54E633A229A94CF96E01F72EC4054C13335B89BD6E91E965BC324924C028B433074C9705AC4CA2682FB1B385F058D574515319397754CAC9F68CB70022882A24242D1C3F1242CABDAA4D68A91DDC8A22C939BDF1539645A912A33C1D11A5849211D831ABC2C86834BE35BC3500CC44522BF9ACA86988AAF580BF45A5FF7F8192E110E163356B8A52486F772204BBBBC19BEFC631433F081E8556579D288B3B27C1A8209ECFBAA30A82B34EB722FE2BE60534E2F625C0AE477826A9E75B7C5AED2398525358BF0AD127C15915133A32A9ADD47A72270A98F942807FC59F2420E14365A758C534F289160A65CFB34619C7C9B2992083CC699F554BD64586DCF379605581711D607235C944820CC28416AC761498D8B54193A8CAC8B815D7B19A21B02A6D5A737C4984F3A888C0B9E3F51B95ED9430327642A082787132E94D6C26B298B77554E7F2237AC286F419266580697FC9316EC1176C4D763B194C52D79B25604974C1BC899560B72094701709797C5183391A268853B9FF3AA277C707906BE0B078FD6619050E14B48BC73F877BEE69A3EBDABBB8B2198CF51B14B2CC9ABE673CAA803B419BE1C34B6341C2E83D2013152B557A87AC4FB55C5C86CCBBA995492CF960479B044B3D6233317677C78A453D4E247ECDAB3FB200C3D2A0564C4100A995C4F70597E498CF0897B507AB35E4587E2B875030303DC2CA8CEB41AE2A9725085C12040C8D0CB20ACE46F1936725BCABD60D0B880F7AABC887090195D95FB6EC060B5257AC37481FAA2ECCAEF99C0DA37285D53BAEB0E25BDB9\nsk = DE9A3F4DC6A54E98C850E3AF0F7ABC5CB5B363BC668F2C10C6E197927C89E57088C4960C46B767E27129FE78C7CAE38717E6A2A7FC16DBC1582AC697E8915C90281A0A784C4B75345A13161BC6A586166D4385B507748D3B9516B10550F05782125C10F3761AEA2C631AFA83870C003950B891D96AE721317B192F21A50F2B2CAF49F81177790C29C02216759B005692CCAB4281927A46739FF7A9583E9A5EB9A62314E4967F5BB375FB627E5A45B918C801B4B1DAC24D55C13AA7FC5CFC104647295650B5CADCAC2C74AAAC28B82233F64C1C01AB50F16213154D0312C5ADD25AF449CFDDF494045000A01C449D1084C876163C83C13321B1F6F87757DC186D4C30CE916240E538F196936AB9BB419093FD593409F3A308827AD9002E5A621FB1387AC06B442970CDA9C720AC9049CFF1C307806E9FF9209FD0CC52B9517C685C36C45801875DBCE490163C91C707755CC8701AF04DEB9AA0CE460F24C72E5D811C4ECC297ABCC4C9BA304C75812196409C19BE10C494A8B138A6F05FB5558E7F2CBF6F1694E7D417F73781205B941EAA3ECDF91C71E998F9A8B6B72400A048A77CE4AD17EB265313303CC86150D477E42A39CB4B8C5A3723D03550F4B76D5FB7B524EC2658D374A8C955B0FB3FE878072EBC0201B2328B737F9F19BCA8411F35980890D71E7BD9707C917545AA6A659C3C70877134BBB0A1E970E7035021168C4A493CE1C9950456A76CDC05FEF147FDD625D2B4BC51B39F3B9BC73A35A06A7485306457544B88C168B22E81CBE9BB0174A2B526B6BA0641456A3CC941569124557D3BC652DC8259AC66552DB0AE06CBAEDD091C268C2C6F4BC7E948329778CF48C3B37F9A3ED714C5C8E0099036514D9A052631B256FB7E7F7C91EA0311B8DB8721D5001AE90991111C5873499BBA20A9D08A135ABEAA544706DABF7338497C578084E1BDCE9155F87417B29313DD39505CC90C45C12C324B5D5AF01EB2656D58607724725485465E33A6A64DA220421C038F0A625254AD127AC941EB23362649D2049F8AE8C057321AEEAA31E0E98FE3DA74D53938F4F900B6A33F1305A383CC12B35894AD498293957950010CF7912174373967C294BB89A90331C828048E3FA862FADC95283025E2F66DCA10104BE8B9F286C198B8C9F0F24C79A454E8DC0742283CBBA84B95B388D8F6912F4B74198AA52AB561CE59508CA6CC09251FA2780EC0DA59D8B12B17179320D23B822A3395466DAC34384A364D06882592734F72AB0D2DD7131196AFD4DA54FC5801D85928CF61BB257274C98479EE0C2F65FB985F6C669D948FAC153158530849311F0BC51AE72BB8C23AB5FED55E793A4E8489B423044A1B017273A4BE35A305E19934B99B45DD2734AD4CB4C5B368C7A32650F306B7148C199A44BCC3A297429CCA6015E906204C827CFF8C9DCD48BF1B638091F732DFDC570CE6618DFC839B4A4648A52BB8302E32098C26E9A51A6571C9C290005265B6359F07598B10C7674F5356B0365CEACBB55B1A1822811C92C44F0E4BBDA4A13364749C5384CA7670ACCE69BC48B6A0B0B2BAE8AC5CC40ACA6CE24957167CC0F24DD0CAA3A0228C13934FBBB0C205F53D713AA441F5B0FEB01FE26411E0CB6648D36C6236468793848AA4B7F4510377E0A24BDCCB712BC98CB21CEABC08101328D3D032CFE9C82D21372924C69AB5A402E9B3D88C87E9BC5C90335E5AC231A1B87EA3C2527B82445D7C8596B10A609616E4DA431C9593B91A1AA21A2E436A359A7A5901902A6B516D562363BF95890501AF4C5946626ACE3F276AF8966709CBB9B666B9842102F3077978E4872307AC65EA11002CBE4DD0BB83677419B89C9E0C9847FA6441C86B8B601663E40357831D1B3C21B4A8985ED50E546C2917F332D4ACB59BD64D9BE88EFB981362458B8D868DA7EC516EA9C807A29C5D51385781302072C1F3295DA2559003D4265CB330F43AC5B774562C182BE83636FA034BDBC3CB25AB6C8C21C69B873329321533A788287A40C1659F457C5E6E15456DA54A7FDB18C8BA246447606F2AA340A48B4FC667D7E67EFEC47910E05C3DA4463B75359668821711530835357B6A8EC62A3E7817C508C79754063F7110362BE73416A46533341CDE577C17A75B3316AC59575EB1A1575EC0104EE77F70941E91786AD457832E1493466A3FAAA55911E9BACEF8CE49F579F1753B5138797EF827F0BB0821EA69BD9C43ABF2181D0775FB64B8694C74F0323600FD3E5F1BC5CBDACDB2329928247E4759747C02CDD924CF1C93BAE5C37BE8C3B9C7E09B4660C3B9901EE33B62350A695D799B52743D5158C015CC609E891C87F9BA02616ED2D3A1C14AABEF101B4B42AD5C47916481BEF01B11B9496819AB76A428C0F5B8A69EBB24FB5B3407E1C22E2020341575C7098E63379406C9B60B6A1733C171682B1776719DB5ACBD2AC6AC4B97AA0A3C8C168A5AB389010A01B4DD01829EE4A402E54E633A229A94CF96E01F72EC4054C13335B89BD6E91E965BC324924C028B433074C9705AC4CA2682FB1B385F058D574515319397754CAC9F68CB70022882A24242D1C3F1242CABDAA4D68A91DDC8A22C939BDF1539645A912A33C1D11A5849211D831ABC2C86834BE35BC3500CC44522BF9ACA86988AAF580BF45A5FF7F8192E110E163356B8A52486F772204BBBBC19BEFC631433F081E8556579D288B3B27C1A8209ECFBAA30A82B34EB722FE2BE60534E2F625C0AE477826A9E75B7C5AED2398525358BF0AD127C15915133A32A9ADD47A72270A98F942807FC59F2420E14365A758C534F289160A65CFB34619C7C9B2992083CC699F554BD64586DCF379605581711D607235C944820CC28416AC761498D8B54193A8CAC8B815D7B19A21B02A6D5A737C4984F3A888C0B9E3F51B95ED9430327642A082787132E94D6C26B298B77554E7F2237AC286F419266580697FC9316EC1176C4D763B194C52D79B25604974C1BC899560B72094701709797C5183391A268853B9FF3AA277C707906BE0B078FD6619050E14B48BC73F877BEE69A3EBDABBB8B2198CF51B14B2CC9ABE673CAA803B419BE1C34B6341C2E83D2013152B557A87AC4FB55C5C86CCBBA995492CF960479B044B3D6233317677C78A453D4E247ECDAB3FB200C3D2A0564C4100A995C4F70597E498CF0897B507AB35E4587E2B875030303DC2CA8CEB41AE2A9725085C12040C8D0CB20ACE46F1936725BCABD60D0B880F7AABC887090195D95FB6EC060B5257AC37481FAA2ECCAEF99C0DA37285D53BAEB0E25BDB93EB856043B822DF9D60B55FCCB537AFA3CACCA9EF50433BDE1DD9831E534D1929508257A83CCFFBD0677795070695CD40D7B7F39A891D25E7E208BB9D65AF538\nencap_coins = 848DB3A6D5CC33F17D978A283B8267E45510CF6C6354EDD5E2476821E12BE3E5\nct = 0CC91E4BF6C355CCF53348CF26983E783633A88C18A4D44527D475CD1276CF9412A34CE3696848A167286C85FF6BF570ADCFAD99472F9D00D4D34BEF35515C03B14732D622DDEC1CC114CCD6F0C99C9132028494E958E25B7F7DA4B161788B6638DE5E460CDC7CF6E66585E677B49D22CA3608CBA74715DE4B209EC9146565F56C52146D422466C24265C04904A0751D2F00FF8669A494CD46921B145860291BBEB6461C6535950BE4558DE79526D6568DA959AE6B07D9A36A1DE3912A3ED7B303E0AA7A1FE5AB9B3352B969DE1BE505D1C60C17C8ED94BA3B594B220659148B7820820770A76D5EBFF7DA3C5B8FAE5CEB0194CAA466B7050103201DB3FA4E55D302DD61FF8438EA0D8B2FB88F6A237134365D2D521C56A52415D2933F576FC5A0C9765DA7685F532CC042585F5491E2F5BE793284BC2137B2F1B096BEF1FCC2BF08CF6A6206E51496FDBBFD17702E6900558B2D6DA8FDBE8749A9277AACFC1C155DCA0BCE6A1E97821F3B2E9F07790F1A1EBAE9A2705BAB04124F2FF516CA4E26EB39885C1326C1761BDC19C839F9416AF259CB26FA185968B90ECD1103C7773CB5C71F783E583830BBA21A8538C131DE763643DB2F60B445C118F36CFF17E831D24FF748265687EA5596528F22AED02895DD8A257A4CCDC3507CC107632247B3BE44499658A915941A7A9C8052EFE38285FAC388FB7440068B156461D9F2B06DCF266F1237BF5EBC35271F6B82FF423EEAEB9A710EEE7D44A791237FE0661FC54018BE6669C1C13FAF765AFAFFB332B109FCA3F3D8964BD8EA18C127EC1FBA1E2D7409E98CBBD1FB2CD6600299C22D02E61ADB4C994CFBF99A0E851CC12D9F1C0325A05C3BC3A8F8CF57F12F1146FCB443C4B8E48719FFA9F15F8AD453C96E7E05C28822DC5D21C7F858BC89F54E843C25149DBA18EC20CE4F4F19A9F4D4EB0E9C1F7F5F957CB2D16D3F94727E38387A0ACDF50376E28B27C234375C5A031AD9EDD77274EF14A91A53968D167467233A96E2FCA22BD94AFDEE4ABC68D4B2FD7A18F474104B87E4E90DBAC0322AA93C4CE78FCBA820DD5229A8B2022FD04969D498B5A4D5B09BB0088085D88B94C9EFCC64B7C904C4B20DED97618EDE67BAA102FDC68051DA87054095C964D867F3D423EEE598D38A80718F1BAEED7C70E80B5EE34589E936121E22484242891D6222D3BE6F33E8D14E01E4244DB84B5A209CED97EF0A405BBFCA2B584F7100CF4CE269618CD385BCF898ACA176C24A755C059B6CDBC3CE6EB0", + "2A656C6B48DF2492A0D201543945FAED2FB5F110E03ABB281B78D45C5EC3A756DBBD5A1373766AA7BBEBAA614914355F1A79CC3DE3A288E4C5EC46FA25CDC1018F81727649EDE40B2C047E72B7DA7619140E67615720EDF7ABCD6C83B22E3438F24AAB84978B688A7DEE37337EAF95F3D2B61266D6B3568FE03F7CAFF6945AE21F796D8FA1394FE0B95E9BCF985E4975029EE00DE0ED404C21080ACDC67D5DD2ACF87BFE72E1E4B73C469E6ACE6C69DDAF839D060DBA45ADA5\nss = 8053C5B5F8EF3A9E42F0A459772B75E915A3E9D209D54386626A7377CA15E63C\n\ncount = 78\nkeypair_coins = B9A6B0C05677E957D41A34BA03BD06F2A9092E31F63389397D7E70FDE6409D1824D67704139CB68EDB8F14C5ECFFCE83828208EDF58C0F494FE3CA22CFDF58AE\npk = FB262AA9A031E49084A6127B8410A5A46CBCABE6B18F607C97D4AF6C6A598A089BB40C1998D16CD307895035B15DF2C34BFC05F634813EEC780C96B83FAB557075CDE3B64EAE6BA98B65106E729B81D11C926404E99164BAC5B546997D2A842F6AA9CE1F6BB7AB7551A06A3649E1CAF7872AC675CB8981A124CA05A318BFF9A234853821A3036A86404B0F056491A5B20AE09DEDB123DF8B4E9EB612A00207C6CCBC580373B0921FE2831F50610340865232C60660655184D8A0867A47811B88BCDC4E6DEC5874839919188F63740588BA97405BB1FF2925C1553188C0137336948F7809DBB96D2F910A9C0AA95D49267E543057976E3DC7346CDC7560E68911B8829D37BD0EB20DD5E2B0EB1538A98A76A68798B5469F9DCA82A08648A2DA13BDC1A9B52A7B6F345626BB691AECCD14EC20F1C252B4FB2595474B2DEA0EDDA47B87CB51F020072D489A2E79CFCF9A12B52BB4F626C35BA4C0888C7939F38E6126484A7932F5D6A029E1CA5CEA27D729065D7137BB518C1885A299B58E1F6446FDD8449E58A21453CDE7AB683BEC6D84876CEE590D1AD93852885DB721B85D4061DCA1327179ACDBFC329416B23234572901B3F63A2CDA36AA65B17035F449AF2B404691957C30028F053989C501D8C2CF8A8CC0C04AA59F3B19A98777F814A18A0753A7180264E59F2BE7C9F0266B8DC481CAB4833BE8B3B599818AA930571748D41657256015F68A8C887C23205A6655F30C51084925167BB75C98B8A25B7579BDF40A912365164814794BDB0B78824FE9066CC63473496AB9CEA06248D883D1846FC8084D59F05277AA3EEC0C3186D68BDCEB6C240CD0128A6BC1361467B861AB025309C82183233C37B35E8AF1B464331CBE7CC3974A48A8E015A491677567472F263E31188966EB556151819CF52772053936ABB0D0A48E99357E558301DC8157A8A7853212828269786919A8F9032E17F9B692BA8EFAEBB602E83BD4B75160541500779D1907B1159170DEA870E6F57F5229222E85B178DAB32F897BF45510EAD084887566942656357B7896570756AB1614994F982841A525C8EC63CCC8E4575DF03BE2F5CF96505ADE252FA4E80FCFF664F6FA8C337980251904A9135ABCC509DB15A49FE4C6D57B41BB6383B3483CA5F5CE11641F9EAA423C0C3254A508D4319DFE72168070CC8C771ED3E06CE74C93240947A8DAB87D889F9AD894F37243B25259153324E103B73C708371400EBF007BB5459EE084BE938A18D055AF7CC7AA98FBB88A156849765936E7273BC385A1BCA94A74368168CF26D8806C7901EEE2359C8694B5439F1E82C0A6892E4A68C4858A9A00B1496E177D1EFB57EB9C0AE382B56626595673230903CC19C79714364CC4B10891823535E21CBCD45C90D471E684AF1FE243E925C848565A1989637F7614C900AF1BEA9049B78E07F00950AC800EF72860E209C192A4AA0B901090987BF15A2DB6165516AD0238A40B0BB233A365BBF2BAB2F60EEB8A54771A8D8E5279E2740298563AA2868E2DF1BE582897C7A9A0547ACC2D8933ABA9CBD5D937073455489A30E8CC3659C03D37240BFF084D77F09DEE76B60952221ED2C1AA73B772CBCEA4D7A1FD64561E88BB90327B7C13C809696C0E4711CE152577517BE0A2FB3D597FA5804E0C106A4C10\nsk = C65B5692B9737BD5BCEF94376A685FE08CB59C2B94884B47BB6A4B292C4EF8DBCFD1D9392BA3C464442CBE0879FAC60CB733496FFA7116011CADA07377EAC759172DB45C9035532A5A48C18F3343E7FB3A0A7A1DA9C75F647648A822BB8FCC59A2E0476FE958CDF968433B46EA296056A8460EDC0B7D4430252B227CC38C8DFA639A72759DE9325D3BBBDB1A5305E546580127B11332BB666236924FF1F13105176B81A777EBC946BD4B962E8050C0F80BE026A513F7C9C74308F8336A9BC73BCABC8353AA10AFB69AA502B3B6E9A53AC67F8CD8784BE4519AB3C6E8E47212BB59EC3958BE442BF2162DDA987C602030770555C0BC62B1422367B95A91399642155CD0B17DBB848B642C765FDA2400358040D4CD154A68DB36265BB525FC90988FD0C04BF0B66CE052BB216D6183B444CC385BB8AE17388D5E8024AA41563653B5F72899CC16B37D642F6FF7385F557C941571A1C73BD9425FEF3C343ED9B88BD02A9BE5652736AE69949E43B5C9719C4B8E42C9071C10E3D454B3C90D315C93579CB106A3B16BAB7163983F5C514B818516BBA802B7FB1166679EE03C4C41EBCFFC6322DB61A7988927DD83B48C24BFE82A4FB1901F70E2C39C411FA65C43D56C02C79849E7745BEE15B70E405939B055C2A76FE1021E094B4671A290F5D708EBF0B1155B94FEE9B34CD9858D3A8DD4BC27F5FC0627F2A80D6681C11324ECB74639540B72A23083C3758CB29AD40C979B42679E1436FC56B3A7D1115137015E2A2AF9A8BEF038B6905C8847C16558BA2BC6EA92AD90B026228695D664720C15E6708B0934064760A745EA4A5587BA211312C7203005F838A2D5B7BB09B8DC7AA39D4956D494472F71A268991CA907AACF8048FC98C095798D0EA043C42C437F6762ED3678B6D701560016F405CAD66117C786B56B3A88FB5968C26869F73A2227B129553B220F67CAE75B5433B29259553AB4375A0AA6766B2AA0AD480B6969201ED21CCDA0A39F8B8F565112565065D8D26DBC1A57425A29FE0A606BA826FFE45A69493B08B11712E88A2B4B0371DB5C0EC0125E2659ED08275D18277B9C0CA51797D46CAFE91951737868483A418427733EE2637B4AA9496C30FECAB67B0B7278A76DA2DA201874711E6928B7A40E7859378C867B9BA81529656200584EA9A5881B657B68980EF8CB201338AC1B856C4EC5B0C48A80BCD6676C0CA624F05296E59155D5587C2C20BFA1BEF1005BBE9840DB205D9658935A67614595BB3FE48E52877FC5BA639D023F54D534C58CB90A0A98BD1C2E9E940FDC61193D4753D17463D7EB8C9C6575E0F6845B5C0A5BC69C5F90128D3078960671394B75C5C72EAFFC1E8EF4AFDB395FFD40A2F6BC75FB9B79E1D8756705B710B0BAC1DBB4AC312FFF30745590739C08BB25CC9EC62CAF1226176C161ECE62AEDEC392A3591EC2AC80E92571C1417BE7D82B2F9A1990D50DAB78C1DEE631304AB5AC57274846A8FDC6547B224C72E0781B233FF8A6C876ECA3A3E060A00B560F661042E85340C4A8257660C0592A429C7B81B5137D410B5492864E156DAD292DABF59035FB0E02247E6C6847CFD86B6958C74209A8F389041E5389EBF5B9B633B7FCC08CFE14BAFB262AA9A031E49084A6127B8410A5A46CBCABE6B18F607C97D4AF6C6A598A089BB40C1998D16CD307895035B15DF2C34BFC05F634813EEC780C96B83FAB557075CDE3B64EAE6BA98B65106E729B81D11C926404E99164BAC5B546997D2A842F6AA9CE1F6BB7AB7551A06A3649E1CAF7872AC675CB8981A124CA05A318BFF9A234853821A3036A86404B0F056491A5B20AE09DEDB123DF8B4E9EB612A00207C6CCBC580373B0921FE2831F50610340865232C60660655184D8A0867A47811B88BCDC4E6DEC5874839919188F63740588BA97405BB1FF2925C1553188C0137336948F7809DBB96D2F910A9C0AA95D49267E543057976E3DC7346CDC7560E68911B8829D37BD0EB20DD5E2B0EB1538A98A76A68798B5469F9DCA82A08648A2DA13BDC1A9B52A7B6F345626BB691AECCD14EC20F1C252B4FB2595474B2DEA0EDDA47B87CB51F020072D489A2E79CFCF9A12B52BB4F626C35BA4C0888C7939F38E6126484A7932F5D6A029E1CA5CEA27D729065D7137BB518C1885A299B58E1F6446FDD8449E58A21453CDE7AB683BEC6D84876CEE590D1AD93852885DB721B85D4061DCA1327179ACDBFC329416B23234572901B3F63A2CDA36AA65B17035F449AF2B404691957C30028F053989C501D8C2CF8A8CC0C04AA59F3B19A98777F814A18A0753A7180264E59F2BE7C9F0266B8DC481CAB4833BE8B3B599818AA930571748D41657256015F68A8C887C23205A6655F30C51084925167BB75C98B8A25B7579BDF40A912365164814794BDB0B78824FE9066CC63473496AB9CEA06248D883D1846FC8084D59F05277AA3EEC0C3186D68BDCEB6C240CD0128A6BC1361467B861AB025309C82183233C37B35E8AF1B464331CBE7CC3974A48A8E015A491677567472F263E31188966EB556151819CF52772053936ABB0D0A48E99357E558301DC8157A8A7853212828269786919A8F9032E17F9B692BA8EFAEBB602E83BD4B75160541500779D1907B1159170DEA870E6F57F5229222E85B178DAB32F897BF45510EAD084887566942656357B7896570756AB1614994F982841A525C8EC63CCC8E4575DF03BE2F5CF96505ADE252FA4E80FCFF664F6FA8C337980251904A9135ABCC509DB15A49FE4C6D57B41BB6383B3483CA5F5CE11641F9EAA423C0C3254A508D4319DFE72168070CC8C771ED3E06CE74C93240947A8DAB87D889F9AD894F37243B25259153324E103B73C708371400EBF007BB5459EE084BE938A18D055AF7CC7AA98FBB88A156849765936E7273BC385A1BCA94A74368168CF26D8806C7901EEE2359C8694B5439F1E82C0A6892E4A68C4858A9A00B1496E177D1EFB57EB9C0AE382B56626595673230903CC19C79714364CC4B10891823535E21CBCD45C90D471E684AF1FE243E925C848565A1989637F7614C900AF1BEA9049B78E07F00950AC800EF72860E209C192A4AA0B901090987BF15A2DB6165516AD0238A40B0BB233A365BBF2BAB2F60EEB8A54771A8D8E5279E2740298563AA2868E2DF1BE582897C7A9A0547ACC2D8933ABA9CBD5D937073455489A30E8CC3659C03D37240BFF084D77F09DEE76B60952221ED2C1AA73B772CBCEA4D7A1FD64561E88BB90327B7C13C809696C0E4711CE152577517BE0A2FB3D597FA5804E0C106A4C10306AED2A804A1C9BAD4AB9E59F6126AD7C8633CDD0C2DD9D4C6F639D312ED47B24D67704139CB68EDB8F14C5ECFFCE83828208EDF58C0F494FE3CA22CFDF58AE\nencap_coins = C1C78CAEC83245FCBE98A15314940686FA06E675E68C24E069509CF1974AEE78\nct = 87AC7AA20F9FFB5FF87E17E463D212CE2DEDED6D64A5224B75F549E9A394ABA5C41E8082C174AEFFF9E4A65A35F24CED2955F03D2988536687544413484762592D950806A7F06FA3E6E05516100B104D4D20383FD5ABAB7B059E337447DA71BCBD213009A15E1AF1D2B65775FECE1E5A7EB086CFFACBA0950E188F8E68ED5B940308413F573286E22A2C0E05C15FC19E595DF9EC13B5029F471DD4F98A2F06C4D94A42C8BE", + "53CABC455C4F800D9EF3AF241F15D54481D8038CE94F6BC4CB0C6846D9CE16F79CFA1276DA2F08C10CA37BD09CB63FE0CDA84BA1669145B0478ACC7C213F8C5C40A1989440677EE2050C9CB10C4DE3DBFD10EE366113814BFA7C5E3E8909BEBF8B191B7AF8194EE9598BED4492DD3285C422A0B552BCD0133DFB286F0267D721A04ABDA0078A10F503C766D7E0A592C30F5B26F0DCC5B607CBD4DD457B64D7DB9EC33C1EBC1ED569A3EF9760741AA28BEDAEED72354C8288CCC397C2FE83F7BAC79A9BBD89A579C1108EEAA9296CBA258219369DC3F92A8245101112AD6BFED315384DB7A168FA70BD12FA2ED419D6C3694DC55B6059557FEB08FEE76B3CC8B08F1BB026A6B77E75F36C6DBE632E1C8E511A2E3211B6718A6DCB7F456203ACFFF8A15EF0EA0768782A89BAFF94440846312987CBC768220A4D189510F36D900E3FC2B7656913211F228BAE25E05425FA1B0AC4DFFB1605EF3C92AED0BCF4C24C0D2501CBDB908EE4AAE198CD4FDEB8081A918E89381E37EAEE6615BFB0CF5BAF727C1A907D5115D3580F3193E6F3B6C69AB6932D763226B0FF9C2B01AB79918938AA29EDA04A90590B8319A62BAC734132C3272F93012DF3A90C14BF550E5710D4B1D522AE38B269B9F36AD5E94C1B404E2605177B3D673831E366560316998873513690BF0908862575726DBFC23CDEE517D8AE8F2E7514A43ABB170BB4C8F5DE5E425299D3BA9AC91B482C4C348E98E65A14F6D0D7A9F6624769D2DAA7D7625E9EC71B47F443878546A665DBB6705B946E8BBBFAE12306D53B7687804363012C49C74463103CAC2CF27238317E7B6B33CF2C2415455E35DEBB9A6D76AA0664798F01E74A362096376E0F86F6DC0D6451E4A467C72CBF5AA188EA783A37B54FB551A30DF1AFD778483BFFEB27406A74D562E45A3C849ECB15EE586E081282ACE639EB95F99E92187CF1752EBBB574669EFD23CE714F472AEC96E031A6627C16C355BD067A8D9B539D2E9A1325F36FD4163E5B4889F9A071BE3ECAAA98F921B94B0C22E7E78C2ACDC34C6FFF70E8F604E024AA5A92E54D37DA4EEE6322C6673F141F947A5E08B035EFD3444D44D84C8EC1F248014692C72D2AC520C76166AF0833B84007F9249291A4C9678675FB7022895293788FBA328FB0F855A192EF498BF7F16FD0E43FE24D2BE5EEF38724FB69C3A2932C382FDA9C143184F60FBBEB5B9179B208A7AB1705CB917778378658125ACD78B1E2CF142EF5C1B6CF9488AAD6EDEC3935EFDABFB929D60B053F8B33C80296986F4418B3FB4FD0DE\nss = 8BBF8A535392C99BAD81C98ABA0D84400724A3C46A8523A482E5A00665CF0E88\n\ncount = 79\nkeypair_coins = 28A96C71577BA00C94F99FE965BC595A26DB2B3CA6AB5CF8E443CDD8462B1792CE71AC90659FF2DD31B35C165D3929CFA5E94407A5A798C568E6098F631923EF\npk = 5226AA8EDABD5A4A5A7CF6633A394B756AB38BC652EBC1BDB728C74EC316D039AC982B118F1AAEFEC04E48448D45F72B319289691A93A20283C3CB1FEC992364CA83226332107704D3390F71E1883B46BC2F31B4242744E0847E72D5645586AD0B8C0FE48AC04A003045AC2D2101B52C7C1D494673BEA69766A5ADCB38CE3A978209471B5D7095A720A4C1971D94970884F11FA90C5C8B7009E2E1769B382004C93A2D9187B23929D941468444CDDE233DB3791656C860705B714E3AAF076921458B8DDDD61E09AC461E96A1B1E9AF19AC6984129B6C8CA9D4E39D70277B5D9A6A4B605F5E0454AC05729C2691E87A8D79353289678490A822C41C52A2F56B91A35F89918AEE8935EF2BBC48485BD747CC5C59066B7577739B669AD21A5561018F021663F5CF48E08F39881D221552C846AD789810030326C8530DBB369681C69CC00C2390FA857A37AD81623EED4262DB69929353118A0886E6C1CA3D36C65898968EB7C187B7B866F18A8BB369AEC780E0033EBF1B0DF846CD60633A461C569683598C7744FBECC54282725E337CEC503D12A87F9CF5BA6587BAF31B852BD45A871ABB81E88C8B8A56D324C87A777BEAF543BA153A222418BBC57D7E1325FC2A075608988BDC44E276AF10CA2D7E52B045514080597A0FF73732789D0F955F93BA77E8034900251416B43E291984CAD36C53C947CC954A8320C11424BE43283A6DC586A9FB39B2927867B79772DC1CAA16234233ADB5AC819F1A172DA5194EDB997F924A827A85FC7C7A8281C98F7A9CEE443F68A2AEA6001DE7C7475B46B55EE8991DCCC6527B5FA1393C9107C4D35A073CE29A7EA205A9279B62F5CE21F3AAB0838B42E6679000CC4C182504A2A4E81757B7F6A183428786F09C76C69E2D7598F1E5049CB57738DAAB6972ABF6D8BFD2AC7137493BD2B8B5F997519B2026EF38623294B91999A5419356BFE03E338194E471926FE5842E79740F416ADAE2A24F441BA4A0C08ACC175F347EE3B614664496A5E51C01A55B1D2A3E8486CEC4C3BA461970868502A0F9553D776514857BB8A872C7F736CCB432B1392E99568B51B9C9A56C441AC0CCBE785693722F90D63A0F78C8EE777236EA43DE2583D0E093EC8BCAB7C8C6DDD8254258B7A5732939D953E491A6BF310449083986B2A0F236C5B9A300DB22299146B9A0943115845F3FE98045CA844BCB1132E0BC98CB54746937B1479DADAC5A4F9320DC572BA81CB250F13869D132FA259604A76A5DD56A7543B96C3096D3046389A917DCE53CBDD9AB04A65B31C6C5CFA23A2AD53FAEA3BFF3985FDFF9CA3E3965989C072F4659EE8914DDDA0ACF30A64A1A823B78561D5A9304950EA3056F50B82915C71AE0B6883EF319D061464D8050F37C24C62C7693F204DD4B4D74B66DD7526FDBD707A3490769764ADBEA61C09A2D7F464D7E932705212D6A9151B46C2ED93A7B99C1148F679D622419A4574310AC20941B3E51591CA5D53CFF51A6ED2C081EE7B4BC23C8BA8B1AA2924406618715731B1CC404929A38911020FAC6647C24306E349F1ECB4E2F530E8F200EB9C0A315606A3E130498F96AD5865EBB4CBB55265E69316A3BC96E51745B02F4A593B796B5951F48DDD5D61BCB3F79106FB3F881087B21E528BDC627A8A1FDBB3B1FF5D83954F7\nsk = 52D431D74363BA07B7EC47C2A5B98157F616B8C7B7D3E68CE3F2A31365BF4E21747203C5EDD758000A8C09D38A83457FB7B015BDB187E842B46CB9BFAB29A917435431184219339DF7CB81018A81B283814FF8B15E3A526AC35185BB45C7A865C45AB0CA1C7C5CAC9E35F753D378556A62C8AAC92F0FF59651C1ABB789970A32C69D153B14A687FC2A56B9E0C382BA4F907A0BEF79BDDFF781776ABD042044A1C84C4C80AB9CE9A76BFA6374E9CEE06081E3661A09CC3272331936CC85D6B2319CC7873227303191C36842B61013C0A41082B82034A2E1BFC8C47916859EDA53033D5427741510E842265AE36D530A19E5D7365127BCAB5B506321ABE2B69DE823B660B4699F8859DE76899098159C211CFFE51C7198CF1025BF9EE69236C913B16AAD84AA4C381A577B6C7A3403627B323F11EBC1F304747F47407DB9A8C9E4B866082597F28B6EC272AD2140A43A52188B061650BFFAE19761BA99CA724B71191B6DC5B16450CAC50B247415370D5B207701AAEC3A13CB477983F180388050175658CCB4714ACB603B6B3AEC340DC6C164FCB81331EC194C382FED024E0D962B056627A5B05A00B5511D78BADAA489F8BB3F3C5B484F9C1450708B89828EF24B815EB43A6B8B127BFA49ACACAFC46434987BCAF5F91A926140BD56504FB4525EE1921B63733DB2986DC133078CAA44518871BA12894A553BD024FB731A0AC44AB80199394A2385BC440515877CB69B73B0C847E40ADF238847608908C20BF7E1B86FA84781371D4CB52FCF2CC30306C8D98C679D4CB41EAA0EA8B395C08CAC6DF2348474A9504592ECD34A93B3262C9751E42193719B617355C59A25679D909A5E756C8DB03E3B174E1A063EDC733B9350B4F738618648BAEAEC5B76376D05329BE6E706E632BD61292755F361096CC4565573562053B4402C42C85B5299B1CCA0B9CFEC4605D63665F24561D8C1DCFA896D1C6D8918A3E6F2A8D4224FF97503D1EBCC8D5395F0A64D1454623890BB7AC6B87B29333096535118CD243C52E49CBC0945385E38781B9BCB6B220A66D96D426B9A1F4C4C4D0349CE2BC790732247EC5D98E43BCD37CD94B652BFCA7B988B063BB102EA0772DF0AAEC74C228261B4FA7A49F3B329F2C7C6D04C859C9816D5BA2AABB85E52DCAE066B9AF4D9951766041CC783DC672DDE42558F50473BB43BC1F93BC6EA7D33F46AC4999CD33698EEA603C7DA265AD713E48691C8B048B21134C9998DA19060CFB6AE31CB5A3B7387F2257FE94BB3EA4C963D01849FB021741395F1862085F031B6B05A7834551A6C8F0EF91397A29E12DB6D776B05C7F12C8B260CF128C02E48A9F403A487AC3A6C0888C5299414AAB1D7283252F62F465867A851BE9A82C9A79A25CFA727C632727C765D4C496D466942147A8A7B65AEC4BA84E4E2745671BCB207654B087A26F93AC77C82CF34A7C2F86FE8F48FF9A0B663D79BBA6B2B8908B32FC145E4F65C6A8A379A99C9E68A10C278130A1969E0CB708D0CA6FF1669D8756D1D530ADE051ABA3A07903B5D801456315057187758351588BED222785C9FE83A0FB4C59245CC2A72B309767348EEDB7C2097B457BBAC8AA96A67D785803744E149B3F131A85226AA8EDABD5A4A5A7CF6633A394B756AB38BC652EBC1BDB728C74EC316D039AC982B118F1AAEFEC04E48448D45F72B319289691A93A20283C3CB1FEC992364CA83226332107704D3390F71E1883B46BC2F31B4242744E0847E72D5645586AD0B8C0FE48AC04A003045AC2D2101B52C7C1D494673BEA69766A5ADCB38CE3A978209471B5D7095A720A4C1971D94970884F11FA90C5C8B7009E2E1769B382004C93A2D9187B23929D941468444CDDE233DB3791656C860705B714E3AAF076921458B8DDDD61E09AC461E96A1B1E9AF19AC6984129B6C8CA9D4E39D70277B5D9A6A4B605F5E0454AC05729C2691E87A8D79353289678490A822C41C52A2F56B91A35F89918AEE8935EF2BBC48485BD747CC5C59066B7577739B669AD21A5561018F021663F5CF48E08F39881D221552C846AD789810030326C8530DBB369681C69CC00C2390FA857A37AD81623EED4262DB69929353118A0886E6C1CA3D36C65898968EB7C187B7B866F18A8BB369AEC780E0033EBF1B0DF846CD60633A461C569683598C7744FBECC54282725E337CEC503D12A87F9CF5BA6587BAF31B852BD45A871ABB81E88C8B8A56D324C87A777BEAF543BA153A222418BBC57D7E1325FC2A075608988BDC44E276AF10CA2D7E52B045514080597A0FF73732789D0F955F93BA77E8034900251416B43E291984CAD36C53C947CC954A8320C11424BE43283A6DC586A9FB39B2927867B79772DC1CAA16234233ADB5AC819F1A172DA5194EDB997F924A827A85FC7C7A8281C98F7A9CEE443F68A2AEA6001DE7C7475B46B55EE8991DCCC6527B5FA1393C9107C4D35A073CE29A7EA205A9279B62F5CE21F3AAB0838B42E6679000CC4C182504A2A4E81757B7F6A183428786F09C76C69E2D7598F1E5049CB57738DAAB6972ABF6D8BFD2AC7137493BD2B8B5F997519B2026EF38623294B91999A5419356BFE03E338194E471926FE5842E79740F416ADAE2A24F441BA4A0C08ACC175F347EE", + "3B614664496A5E51C01A55B1D2A3E8486CEC4C3BA461970868502A0F9553D776514857BB8A872C7F736CCB432B1392E99568B51B9C9A56C441AC0CCBE785693722F90D63A0F78C8EE777236EA43DE2583D0E093EC8BCAB7C8C6DDD8254258B7A5732939D953E491A6BF310449083986B2A0F236C5B9A300DB22299146B9A0943115845F3FE98045CA844BCB1132E0BC98CB54746937B1479DADAC5A4F9320DC572BA81CB250F13869D132FA259604A76A5DD56A7543B96C3096D3046389A917DCE53CBDD9AB04A65B31C6C5CFA23A2AD53FAEA3BFF3985FDFF9CA3E3965989C072F4659EE8914DDDA0ACF30A64A1A823B78561D5A9304950EA3056F50B82915C71AE0B6883EF319D061464D8050F37C24C62C7693F204DD4B4D74B66DD7526FDBD707A3490769764ADBEA61C09A2D7F464D7E932705212D6A9151B46C2ED93A7B99C1148F679D622419A4574310AC20941B3E51591CA5D53CFF51A6ED2C081EE7B4BC23C8BA8B1AA2924406618715731B1CC404929A38911020FAC6647C24306E349F1ECB4E2F530E8F200EB9C0A315606A3E130498F96AD5865EBB4CBB55265E69316A3BC96E51745B02F4A593B796B5951F48DDD5D61BCB3F79106FB3F881087B21E528BDC627A8A1FDBB3B1FF5D83954F79BB3963CC1C5CF2B2D1C6CA76226328AB765A79999CCC71FE98D5BF3B34F51B1CE71AC90659FF2DD31B35C165D3929CFA5E94407A5A798C568E6098F631923EF\nencap_coins = 59BD98530C55222A8294517068B7FD7E3210FCC2BDF400F4E584BC209AFA44D8\nct = 9C87A778A4D5A67C6A57FBD3529556306BC0B5682CDD512355089E421CBA8CF3CE74E58BF2B28CBCEC3FA5236CEEB190F10A5AA269D8B4F9A148A4FABB8E33AFE45C6A4F5F90B1675C8EFB8ABBDA5766F29A69E3A3C4C723190DB1A13B442D1AA08EE97BBAA316A3FB09A625BFB543A46D75661BFFFF3603659476D0A5CED1947BBC876F87F0A55B58ECF64CF8C4C3FBB03D352B08821B0F2564A017379DFEDA75DAAD3A255E1EA91EA0C8551E679ABE6027E3975B4A53C3DF95CF9AD171BAAF4A0DA95E5F4B04E8D3512FDD18E0E7A2ACCBBAA9E0619573E134F77A670F9AFAE4D8BAB257BB94217180183EEFCFBEAC744503EFE2C9790A5CD9F16E38C0AB2AB714CBF3344B0596116A69B8A9E589A7A3D396B1514E941E326BB1D2B754F57EABBC6E531063092F19BBFA1A1ABC6E0155B806EB9BFB4191603A647C118FDD0E795A62A26B4E0A108867BD7A91923787FE031AA9E02B3363089D5995A3FAA238F22252A85A94AC3B8D3B22684E94B78DB7B02F10BA4B65476F5DAAF405C137525B10ECB3B3DFC524956DE779114093BFA23FE430F3BA032561F393F5C2E9C03AD4B8F79337353BD37974A07A4200509CE5E48EF490BF031C411FB1EC8CB245725D18109775C77BD93B2AC1D91D1C4DB6C5F7A40513C70708C837931B6B52C0170305A6C914EF07984F29A705C52D76606B30FC5C00FAD0D8719E55561F1188F4DC289D11AF8D7D2EF9AB694293523C520B60C78961DA395BED6ECB4C5EF97FEC93948FB11A60B63320EB2B95EFDEA801CF53F7F58F9E7A80CACAEE766F5AC0FA07F1684A3422D5F90E7DFF5994B4364CCFEA484ECE3C8056D5B2C837E90968B612EA0078412220B18E1721DAE047FB8C3382DB51F7C4B99824816F2C2C6F435F4D39C9FF9D6EB1A67A3078C923A2115D9ECF43D4CA49BF729420880A54B57889C5E2B7775BD7681D5FBA0ECEABA141852579EE43D824CF97FE19C61014768A08BB240A7013BF7F82A73714FD8C64115618E5DAA911EEC270EF4F0A021CCDCDC63A9237B46D8C757407E2637399EA1B1EEC62688173C2BE93313DA04103E82E3A0F6F1192935027CEC2C27EB293390C3B49116170F00D2CADE14235D1C203537521847AC4741C3C6CB236D01A69042614C9D462ECCE0BDC318DA3F612E099AAABCAE67A2F82D855D625BD6284F686426CDAC5FA1DE28F296524117B7AB56C677B92642ADCB864D6F404AA7764C4740401E4899563F1FD58F33462B50C6B3D8269199E4E37FF96E807AF0998AE53780128141F103B232F3C2EEA671EF95401F6C024FAAADD1E86A938D13D23F06F80F551CC50F92E3F120DE542684942C5485A09EDA7149A609641E35E725C801EFBC642238F5D8B3183649617F0CEAE9A72AFC9C806AF833D7AAD2C31E43AF4E55EAF4C198F281EFDBEA7D32AF4CB54959AFC3EA26EDD570B16A0C3A29F0B60A37DF6DD77BB0A71C7DC13750D178FC7441B8E3549BFD78F3638E9EAABB1D91D827F657B620E87E736A42636EBBB5138E93BF8EE\nss = 86E93FDAE44A1A43345283DAC1E7C893EEBAA43F60952B90E5C96788130B104E\n\ncount = 80\nkeypair_coins = C08BA2EF8C3A0A043AFAD931652D7A19E6E8CB670F840DE5F1FA03309B2CA9EC4248FF45452BCE5777B08108E059234029D3309CBC2BCAAD8EBB37DCF27832F2\npk = 724ABFCD15255F0A5EFB7783D909031ED02C52A203DE570873C7A7C556202D53A6C086899802BDC877BC6A813AB59B781BB95F4FCA9EE76028AECB9142A992DD7180BC1C15DBEBB66765C5ABBCC5EBF764D5234D89A378D5925FBAF63A00E35D568804B973450A045E55C7C5F4907FEE390FE6877963E386BC20CBE929C3D247611E346EAE401ACB972843DC204EEABB043644EEA29BA2C1A160B98F0D28CAF0677AB2ABA362B7BFADACA4E1197F54F03AC8033814A71E1CF407972B3F1D9A986637A972B46D3AC46509C053EFBCB9A475BC4055265961C79E1374C2159BD2409A84F22755A1B32E4B604783BCB2AC49A27A5B0B07AE346AC38F54A2943559F02270BBB19508E903888ACA4BAB72E332285837B9EBB466E5CBA74D5AB6BB3B2A0FA26209A97F959C905BB4B058BA8ABF30A5A6C190A018A9803AC29D84BA710B30DA9A0844CC1A1478C289C32737144812355E0D7589B9AB765CA3B23353A350876F05081F3E4B14D8F66C998B81F458A394CC68C3B7BFD37366EC93113DB928E5F9BF0E9AAAEAFC619E332A7EF3898A66020DFC64F671879691C023409B53686770F8148A2B6F7B62B6AA42981EA0CEA7753599585034B9AD99C9AC8B12872B1A47A088BD8AFCA2D42093928A4FB770198C4CC50B0214C4C94FC7B62B5E636423C6ADB553B138591F6372CA6D53343FF7C70782A2DDC4801B262F220A539181C13F3C3E8E0A0D7191A43A54AB008D326DF803FD8757F88AC9BDC8BC75CB83517AC71FF8613B3BA713377FDAD2199BFA332B8C22C136350ADB9553E3643D0C45413782F3BC9E941965DC051DF98738CF50113AB422E4A22759CA016BEA6FCBA390ED64540112842F5B1373A2847107A43403B4AA5CCAE154B9C54831E3911239B79F1FE997BAE30A542560FE6647A2E7C4916097FD484C3D040456EA2BF8B63DBCDCC8577B7AED99C05FA28D468272876B614045095E918600F7C94BB0944F62235C169B58789AE8BC3E6F677CA8D238602399E307553E235D11836BE120B3BAC41B0A668E0841AB11F49E27AABDFC27AFCAABBF542911B6A220CDD626D819C44C72556A3946DF86C43D1B8693944D399A3B5B1309B9780E34330CA387CDE8E4C9B2D0775A962F447828D6295873CC1629777FD93C062098B6149A3E7C383E2C33CC3FE7730537416FC1ADB6C09F4CAA736E4C796D2A97FA3807C9EAB72993B4B876136B856C7BC75AD054288EF491EFFA872247A99AA39A9C2B7602027D65A169317CAFCBB77C37D89ED32489E3C2557998A06689B06AB96615BB5752D439DA446354CB0640686AA794444A806C31D721B8C6B820810A5AFC00932A885107B5F968B5C8EC98207293D8851892A01DFAE4A99832326E3863BCDA75190C4A487B46E3914B702017B1B520CCC30A5C475FB2DA94EA217F76556BFEE825076533973BAD3AC7305B5C764CD040D723617090AF4A7811E9AB206C6A331A647D9385A5E7D8BAD6C89B390B617018C4A0691D262429BBA173598B37D7C245452853506437E756A399670AD8E292B0D820E3567047C82870E82236389D99D678CD9B49526AAC30D1B830B12F4E62407A59C8F88B7B5D088A2D08B9F114C3F158650F32C682EA6A76CB62D3AD7357CC617D597A3DBBDF515F6852D71220768859D599BBAA\nsk = 28BA2F24DB8E2A5B21092964F1871E97E10F2727C8B27916A5068EDD27670D26B91A93332157AC686205E23616EB0271B081B51923C5996743CC114F3AD310CD6791AEB05F77960991513EC655533921A8D14CB2589399EBF18F7BA89BB7D6CD2D7336ECE1B7B63B98F26A49D356578CE7275EE67677D1482E1BB3D85B88325BAE0A00CFD1288C34078D73965442B7B140705F0FB76EE3D0921112C400C7A4D1337D6A3A8CDFF9AF05C64C079C64DD143F1FD56C28096313E82D51836A2DC1B0F37A2E00545F802B417A9406E55420B4D71FBC2210D05A771CDC164AD50932EA40A876051828236153B4E1715EDB1453045721E89A60ACD0066227704B8AB991E8A06812226BC59943C0814C847A1865C19DF4B7FA13BA3EF95543E724EF854CCB28BC1DB49B75C1ACA3649F848BC6F32C139AA79197543C628238ADB755F4DA6BD67130772B4790B28C9F1544A4E9860E875E68C1CDD9CC0CF17451434C7C53F3A9BE39849720B1B80A836BA4C531D49BAD16077E90203C9120C23239CEA972454B08A5F10812443CA75B913DF98DBE29C3312157E156311F67354D414AA041833F8454ACA5B3898B3572E819FB2C4CADA43C9C5191D6F7AED8F310CF77CCAF0C478686952E71A8A8173D0C223B04462B96C04EA7B218A13519B90CBE3BE8C32B276F90D349ACBB6362706DCD54AAD0497A058AB0138A8E57D514D5D431043184BD1A07B77C3299BA6C7205938ECA8403F31A1C605A942B73775A1AC11C40D81988E69C15079719AA769B5F618052D5290D84714CA57418366C15B74DA4E98DF96ABDD19884EC1703F7978C4DD72B48528789D7148F16C23EF8BCD1F353CC4A76E7C238AEB1035424300F529ACD46926874190556133021A6A9283DDFE02EDADB7DE23A4D141B0787539B68110B4882A51F95403865BECEA06E2D7A1C1F534FA3366BC1AB387EB867477B92F00C0D09615BFCC1138137CEDE4098AD57894FF74982D71BA2ECA6A0F502CDC9C89BC6A44BD84FD8B62BB5D84332FAA830E2A732259945028D2830A8AA866F92C24E46D164C4F4658791C11F0703D906A82546C75F81285C24597BBA4B1BE3972F069D6B383D61CC32B9B66604B7CDC4BB39058C74CE770F04F758E6124543E13D2365A915802F75E90997B10B15E650AEE33A291C87030517B6C29CF10670D2DC5C8889AAB7518B4DC86D86E25C52ACC4DB175A5957118F983C3A4443B33803A3161AB24004B7A789778C8414A8AA8C819468EBC28B68AFE5333F7E666D44B5A961533280B0021BD3B24E2AA51BA58F2F45767A5722E918B1204656A2B44CE628A3A84125F918999A6311CB3569431C7B0D6B58ADAB6A30F9473B3747E33C7A2A9BAF87B709353A77743949277147928273F112B5E618167A5715157B49CED69A2492203A08730ED07B7AA14BAD136CFA969DFA68C28AF40B9763872ED1B05D4161489BCE1F473D4CC067A86258F6B664D2436D4856166CC60467887F9B97439F607D336114E46B2A2964C228A18EB532CC4C6813DFB841E60C3BAA59978234A06FC95AAAEABEC0123230AC33BDC48A4452403842BD6158C668F28F20BB550", + "1984C5D3992594A9238E03798D178702B86973350724ABFCD15255F0A5EFB7783D909031ED02C52A203DE570873C7A7C556202D53A6C086899802BDC877BC6A813AB59B781BB95F4FCA9EE76028AECB9142A992DD7180BC1C15DBEBB66765C5ABBCC5EBF764D5234D89A378D5925FBAF63A00E35D568804B973450A045E55C7C5F4907FEE390FE6877963E386BC20CBE929C3D247611E346EAE401ACB972843DC204EEABB043644EEA29BA2C1A160B98F0D28CAF0677AB2ABA362B7BFADACA4E1197F54F03AC8033814A71E1CF407972B3F1D9A986637A972B46D3AC46509C053EFBCB9A475BC4055265961C79E1374C2159BD2409A84F22755A1B32E4B604783BCB2AC49A27A5B0B07AE346AC38F54A2943559F02270BBB19508E903888ACA4BAB72E332285837B9EBB466E5CBA74D5AB6BB3B2A0FA26209A97F959C905BB4B058BA8ABF30A5A6C190A018A9803AC29D84BA710B30DA9A0844CC1A1478C289C32737144812355E0D7589B9AB765CA3B23353A350876F05081F3E4B14D8F66C998B81F458A394CC68C3B7BFD37366EC93113DB928E5F9BF0E9AAAEAFC619E332A7EF3898A66020DFC64F671879691C023409B53686770F8148A2B6F7B62B6AA42981EA0CEA7753599585034B9AD99C9AC8B12872B1A47A088BD8AFCA2D42093928A4FB770198C4CC50B0214C4C94FC7B62B5E636423C6ADB553B138591F6372CA6D53343FF7C70782A2DDC4801B262F220A539181C13F3C3E8E0A0D7191A43A54AB008D326DF803FD8757F88AC9BDC8BC75CB83517AC71FF8613B3BA713377FDAD2199BFA332B8C22C136350ADB9553E3643D0C45413782F3BC9E941965DC051DF98738CF50113AB422E4A22759CA016BEA6FCBA390ED64540112842F5B1373A2847107A43403B4AA5CCAE154B9C54831E3911239B79F1FE997BAE30A542560FE6647A2E7C4916097FD484C3D040456EA2BF8B63DBCDCC8577B7AED99C05FA28D468272876B614045095E918600F7C94BB0944F62235C169B58789AE8BC3E6F677CA8D238602399E307553E235D11836BE120B3BAC41B0A668E0841AB11F49E27AABDFC27AFCAABBF542911B6A220CDD626D819C44C72556A3946DF86C43D1B8693944D399A3B5B1309B9780E34330CA387CDE8E4C9B2D0775A962F447828D6295873CC1629777FD93C062098B6149A3E7C383E2C33CC3FE7730537416FC1ADB6C09F4CAA736E4C796D2A97FA3807C9EAB72993B4B876136B856C7BC75AD054288EF491EFFA872247A99AA39A9C2B7602027D65A169317CAFCBB77C37D89ED32489E3C2557998A06689B06AB96615BB5752D439DA446354CB0640686AA794444A806C31D721B8C6B820810A5AFC00932A885107B5F968B5C8EC98207293D8851892A01DFAE4A99832326E3863BCDA75190C4A487B46E3914B702017B1B520CCC30A5C475FB2DA94EA217F76556BFEE825076533973BAD3AC7305B5C764CD040D723617090AF4A7811E9AB206C6A331A647D9385A5E7D8BAD6C89B390B617018C4A0691D262429BBA173598B37D7C245452853506437E756A399670AD8E292B0D820E3567047C82870E82236389D99D678CD9B49526AAC30D1B830B12F4E62407A59C8F88B7B5D088A2D08B9F114C3F158650F32C682EA6A76CB62D3AD7357CC617D597A3DBBDF515F6852D71220768859D599BBAA6D029BB2121C788B5B6EAD7226DF664490DAE362C4BEFB615717D81C656B32734248FF45452BCE5777B08108E059234029D3309CBC2BCAAD8EBB37DCF27832F2\nencap_coins = C11E2FCD6CC56977006F5DFA825271C6FD49069A747EB36C1765F5D5A22B38B3\nct = 0EE0B634F06E0A060868C84658246D06BB56941C21625C4F5622624468AC984385C2649F412606E07775495D6E1B016B8CEDC96F96D21B8716BF6FED7756C71B80D2E4FA1411585EFD93DCFA519FEF08610431A5D04BA378EB73360B269F3AF3AFEAA77876B604EBA3CBC3DEA034111C6B951E235FF9127E3B429C6F949C4C7B7984624D9CC2CD19AC90DC5429ED8E8106EE5C6B5EA0DD41C14F2C29F6B5B35DD7DC571215BFCA8AC7507229A352FCBBE7C2E74D786887D90B6AABFAED943E9CA1EB2B2B503FFBC035ACBCFEC8B55C5CF9B6D4C6593BBB6B491CE9C59B1B94FC5DC807F7236223CB97BA6B4255EC9B500BA6AE5A786B9420334CAABD67498DDD606414B25624DE9E2490770387383882EC7F9D235CBBFD878B846F7AE43E58551E0F20B48FF7346E677574342082276589D3833CDF55B78C03C59F1C6EA13FF098FAE320EB7B7D7C4271CB109159FD51B0A811E57F88F1E25C726657810DECE726F426813C38F84962B5FBA43EB78AE4DD48B2E732D6F530462E0EFD55DC30B6A2369A0C978AF026647C2DF0E190011E010959D3E919739F55AAA439847EC68A18615BCAF0D5DB03EAE43AEFB795A00A80535B1C128A717CACCE39A6A6702D962761BABAB9F86E20DFDA0F36237366022B0AE6A67DD04E2F8E872BE0010F0D5FDDA963F88A206FD04DF505C035B52A92D08DA5DA95424A4AC9D8366CB18EB35CF6A2091F78EC670869BAE1D926FB51E2FAB330914CE3FDDC384BF4026D198D8E39EEDEE77A2099FFD718083840027F649C7B8AC4D7F05E5765417AAB0BE2C5CD7EF05C54BEC283BDE461B1936335601D5A128DA1C84CD898BB7A4F208D30DF3C7651F5DF7DB8F2792A4D5BA6594520745C216A7524B40E55D333231347B7BEA25A92B6BF839E44AD86099B0E3DD2C94A58850FD6FA97F21C706367E493659AA71CDCE3AF407CDBB84F4C925B4FEE1AB597686BF2EF798986FD755C65683E82FC9AB58129F40894CA9E692F96BF58B70B935BCAFE1F53AEACF1BA0790588CF69F59A2D6B0EBAEBDD33D5CDB5B5EE7984DE78FF082F6D36C3DA99D89B2FD955CF0F00ED82D99FEFE90694A34CB3F15841F70E2C823BDEC2678CAD278E67A9268313BAA5ED439537F3B9D4E490B2F4431E351EFAA925BE4D94CFAB26E4399A9FE0905C5AB60C1F7B23172705E4F7CA06C3741C0E819E5DA1501B8A65D41928AC95E0E1235D0D5F163937B86EB00A0D7C74B6B5729C64F4093F44188005310ADFE6223188E787F0A980BD29AB94E6B71A72D2B778A29D522D5F499200C4CEA46B956263A0490C7ECC88192C80F95716AFE5723F3853CC4A8D1307D5645B6664C417E4D7F837A60C5791F0FFF7F1779102D4E1F5E78F22998CBFFA405361DE2D8CB7656A438DB604BBF3DF59B07914798A4B56B35FCF9A8BB8C0E672B12E486374B9C0A6C52A5ABFEB3E159276E998D39328D67E656F053367008EC69A7F3CBBBFBEBEA6C1F37F24925374AADD9A4B13105066C45D29F4994C14AC42C4B6D1F47A8FA\nss = C4880AEA127420AEB4A96DA81CD6B2562063DB9C0D585F874DF097DDAEBA5B17\n\ncount = 81\nkeypair_coins = 0E3B30E102D707538C2671060F603BB0B8A014103F132D63B09ECE07E4A4C75B7B129A56B51BE635054CAB9E84F2DEF59A3F8168E301EA2BE388C45B8CB022EC\npk = 30E92DBF312758B73BEB83625DF3B8D5C47A7A334D4E140915CA1401D461D7052E9FF05F73A1598DC9622C324C1C8B5DE9B0386EA3CD95B86D80085588AC69AE310BE6B5B5379202F4F14878FBB5508907B99490E4191B1E13A6890A9209F0A12910A3E096747EBA94A337AF9E609DA4E8A9F8003633EC099983B8E778CA3D72BCA1C19B4FB4A0FAA4459EA06782367580B7AA49AB74B60C4CEF7AB3BB9BA081227A7E1AC2F5400F8F7395F96567403B2401A2ABB0B70E92E6CA2102C597F496CC8881D7B688861C7988363112155B5B88271072A7A7D68B76036059CA5E402532CE8763C52CA237A334832832F2A49BE3907D15852FCED4675547796D3046535390D44580C24BCC3D67A50CFA2AD8936D46121A7F60179BE7AAD0746E8A2C8CAE124D27181A374493DA6A68D47387A44460B39A45B2619F1D29B08BA4495230470B87BB926279EB760B9041632317C4D7A19E7753458DAC07EB73331D808CE318555E1A2828DA2F1D101CDC9B8363990B85064F63226C36C71061444E17A28C3B56332BAB4BEC2602F5C31394C870DD21030997564DE52602C2628C41CB7AC2388EF35371F870A21675AC522660268A1802A2E4CA4C7152A9776410910175FD08C5E0307F4C2A61C877ABBD2185CE58738FDA15335ABA2C77A804F94077A777FB49854C7A78462263E435A1D7B4A5205AB879438A91EB60397704CD937E66C7310625A6276182D86894EF9750F1817D85709BC578092D3B65F5C84514361264909DC2147AE6F3A577097E64BBB2C679C845D827B1AC393497575E385BB39563E125C3A3925A21160201897072F03F45D6BA85DB7EB1D5B8EC7111DD785EBDE07056653507E967385945389493B95C0A95827583F01DCD473FD3138887D3472E18B24C1B7E2C837668FC6917175471F3CAA1323A34432B72C7B68F658868A2AE87306109B1053ED2BCEDCB7037AB72D8C2BF48D29A0822575CC91CA1E5698286C9B19A7471A5B652F6A900659DF9183C76417F0FC89D743AA635791D588CAE6F650F3D314D65A6AE81A935F38B964F290BE7A1A75F256776F17383F9BB9F9203415622B60B2A152A7CE3420CB49C3592AB8AAEC009A237A12C2C04ABAA08A382622DC84A053C94881664A97381AB88CA41846E82C02E00C6033B4721DB29B71FD29069297A2CC387F2AA5336816C66E75B594BCD144171C3F7AC6DF8A9A10A71F35B39A3DA7D53571CB33860315288C2F7843E855D27DB6F27B38940F973B2B063EBA12B3A8B73D46C6781AC87F44C91E982CB27E534161212B367AB74A318B0F41E7A060823F17814F9A6E4F5A9093A6379FB0291D99916B15ABC596550F152BC79703F1B0393B720CB85A510D4C9557ACF3E620CF994C0BF8C06C2606041E7C3CE6044879A7612C3A2FA587B1B7676B956291A7BA5A78527A163AE08696C7C881076189BC1623C8D360C8D85C287A9C0C6965D0FA315E2037EED604084416FE31B2F01C7678311ADA765ACD7F70DE59A9A85A8249205C78CAC786AAC9A0A0A7352B18F9CF936165A9C39D99AAC7C175A5025F1C66D04354480175FC3249930E66C9D06AA50E7ADFEFAB6AA9C205C1507A8F40512A45CEBFB2B39F3330A962ED717408E0934FDE42A5E1CBF04C80F37D7DFC7EB53A785194C4A1232E61C37A5\nsk = 2F766AD78A0112B8CD4BF28DD0F589873553BF114F19C2719F61A32CBC85C71975B911237BC6AA6ACB32B613CAC9DC80C85493FAF63C3E337C274542AB4729D02ABC5DC07309032C7112540522575D663C89714AA7A456410144D7C2BC1041C03D5A56E08CC7E5663C01F52E5077288BB8CBFBA21B4A8A19C055691E05C22F94C62C3CC2B6A9C155E2A4EB2BB9D95B8C9D5A6394D05AF87B038C210D9FAA266CF07088B3CC7AB56FF3366FBD595B3C790B5497B34B94A72D8153FA13B40BE96B51315CA4D22BE3828C3556843545C47B0254266A802A44BEE6E5A19A446472322C6AAA4CF47218EE3C99247564C552C93ED589EA8BB2C637BCF7277D5B5058DD80342815B2E8864B4C330920A82EC76B4A7BB893E0D18278F47F84743223A67F2983AC8C4A1845A61259670B02D6053CA181BA4C1BCCA05B7AF2A27C59C1E4E38DA723B787AA2F36C71E3BE05039183BFFEA6AB3BC779DE2273326B327D42517B6C6ED8C7F96C6330D4C39E3D2A7B81A538693329ABBBB5947B068C3CF7B45C173C1BA9964C86ED91D0", + "BF64E209C1910C218434311A50A2128D52754148159891E00475654AB30B9693AD507B2E19ACB7FE6B14F27C09C6B2570B861926683A285014631C2D7CB8C0C10A25D073D3C067AB819B9DC27971825AE21CC2E50D377E3396F0266A5BA598BBE9A868B0B6CAD2CA3A8CB503778967BB930D90795719B237238C1F831007C690186949C600C6F587AC0D81C8334C57FE0C59DB3E2815D63C26C620FDD75836261644D99327A334EA5A40571F0CDA39CA716D2BB894A50BC4CC84D6621B60509DAC77ECAA39B9779A3696749CE83933EB70C1E85BB2DC3421AE9A0EF40AC2D83A1FAC16C6DCCB0AA16AFF9A94BB6D125665C3001B845E7F20E7C90A3DB636950B0836BA008DA33500FE47FD4A81DF0E268C62974BAD02A6D3B2267F917E2046DF3C1883187683F030A28A129902083CE26730438B0DC0042998C9472F5A7FDBA371D74481DBCB9BC4CB281E7CC1DC4455823AE1AB8B233E83324544913DC261B6274464B656BCB645F87B0CF4512AF443959E67C47D679020C2905D45E21DA586EE8291085A8A432AC6AFAAC594081EC298DC13175779B8635FC8EAE58982258759999A57B704A5B040245D282A9B6C9CBCA838399523F26695F60389AD42F6512783AE65A0C25B7258674398839AF28866671329109A58E579C026549F0B7041DBB6623665FBC9A2EDE41C0436635325912366AB1364B5A3162C4B8C2A14480AA6BF165588B8D26EA968291CABF66A4E26722F87977DAB7807A2C65A26A9CBD339BAC0B24E6B46E0A8082BE95BB7A41B1B8B670ED3105EAF994A06A6414E9ABE2A1B608C29C94B846012A0FCBD6959ED411D8D0C70A32559C68C74D94B2A9707B9D9755E3C69AC40782E97A1F904A32DA824C7459B59B174A9FBB6B41947F47B3361D5558D831B2B444818FFA4C17F4BFCF8B9C7CE451F4CA99884C13F85C24D3CC4740D2567A54AB0583A175759FD7E197F3000A39717BFD9C768248518D50791CD84DBA795E85388DCA21507BC669FF0B906BF515F38C04DC838D0D1357377B1601887AE1B0A0C4490D38A871910C695C50008E5A5A30E92DBF312758B73BEB83625DF3B8D5C47A7A334D4E140915CA1401D461D7052E9FF05F73A1598DC9622C324C1C8B5DE9B0386EA3CD95B86D80085588AC69AE310BE6B5B5379202F4F14878FBB5508907B99490E4191B1E13A6890A9209F0A12910A3E096747EBA94A337AF9E609DA4E8A9F8003633EC099983B8E778CA3D72BCA1C19B4FB4A0FAA4459EA06782367580B7AA49AB74B60C4CEF7AB3BB9BA081227A7E1AC2F5400F8F7395F96567403B2401A2ABB0B70E92E6CA2102C597F496CC8881D7B688861C7988363112155B5B88271072A7A7D68B76036059CA5E402532CE8763C52CA237A334832832F2A49BE3907D15852FCED4675547796D3046535390D44580C24BCC3D67A50CFA2AD8936D46121A7F60179BE7AAD0746E8A2C8CAE124D27181A374493DA6A68D47387A44460B39A45B2619F1D29B08BA4495230470B87BB926279EB760B9041632317C4D7A19E7753458DAC07EB73331D808CE318555E1A2828DA2F1D101CDC9B8363990B85064F63226C36C71061444E17A28C3B56332BAB4BEC2602F5C31394C870DD21030997564DE52602C2628C41CB7AC2388EF35371F870A21675AC522660268A1802A2E4CA4C7152A9776410910175FD08C5E0307F4C2A61C877ABBD2185CE58738FDA15335ABA2C77A804F94077A777FB49854C7A78462263E435A1D7B4A5205AB879438A91EB60397704CD937E66C7310625A6276182D86894EF9750F1817D85709BC578092D3B65F5C84514361264909DC2147AE6F3A577097E64BBB2C679C845D827B1AC393497575E385BB39563E125C3A3925A21160201897072F03F45D6BA85DB7EB1D5B8EC7111DD785EBDE07056653507E967385945389493B95C0A95827583F01DCD473FD3138887D3472E18B24C1B7E2C837668FC6917175471F3CAA1323A34432B72C7B68F658868A2AE87306109B1053ED2BCEDCB7037AB72D8C2BF48D29A0822575CC91CA1E5698286C9B19A7471A5B652F6A900659DF9183C76417F0FC89D743AA635791D588CAE6F650F3D314D65A6AE81A935F38B964F290BE7A1A75F256776F17383F9BB9F9203415622B60B2A152A7CE3420CB49C3592AB8AAEC009A237A12C2C04ABAA08A382622DC84A053C94881664A97381AB88CA41846E82C02E00C6033B4721DB29B71FD29069297A2CC387F2AA5336816C66E75B594BCD144171C3F7AC6DF8A9A10A71F35B39A3DA7D53571CB33860315288C2F7843E855D27DB6F27B38940F973B2B063EBA12B3A8B73D46C6781AC87F44C91E982CB27E534161212B367AB74A318B0F41E7A060823F17814F9A6E4F5A9093A6379FB0291D99916B15ABC596550F152BC79703F1B0393B720CB85A510D4C9557ACF3E620CF994C0BF8C06C2606041E7C3CE6044879A7612C3A2FA587B1B7676B956291A7BA5A78527A163AE08696C7C881076189BC1623C8D360C8D85C287A9C0C6965D0FA315E2037EED604084416FE31B2F01C7678311ADA765ACD7F70DE59A9A85A8249205C78CAC786AAC9A0A0A7352B18F9CF936165A9C39D99AAC7C175A5025F1C66D04354480175FC3249930E66C9D06AA50E7ADFEFAB6AA9C205C1507A8F40512A45CEBFB2B39F3330A962ED717408E0934FDE42A5E1CBF04C80F37D7DFC7EB53A785194C4A1232E61C37A564C819D9BF66855F6AE70627F04DA8378547E5867E2EB9759FE0971EFD601C4A7B129A56B51BE635054CAB9E84F2DEF59A3F8168E301EA2BE388C45B8CB022EC\nencap_coins = 5D5B9BC8E9D09B6D5F96D13A5B7A8D8F491C15E7AB912A17CE8141299FB6CA44\nct = 8055EEF1E7E8381C5AB7D61375D0CD6317C58F1D5C79AA5D986086A3498046A8CF87E00FB606598A1DBFD418D558DACF89DF656186EE7CB71B90A38C035758724BD97C3FF7499E65C3A461B8929A3863A37B10CB2CBD6C110C9EB73E017A104513F8C9D7D9C80C9D4322EF0419CB732B00E2AE366D31C925AF659474F2FCFF470A996B5717AB68A5E15E5722665CE55BCF50223452ED2833857160F56EB2C73E8185947C22F676DCAF679198F7A3B780CBC545BD0F2D4B375F8795F008A1074AF6C1AEBA37599598EF159E38458E9D805200CD27DD0E4DBBFC6D0CC23C0BD31B80374CC92F67ABE7B1E9FCFBA32086CC7B82D18BD1991B94085DBB6AEF7F9E80D525DE7F2FD44B40D607F7A986B0630E0C411B810FDCE2568942A12D698A1F953BAEDDC54E4C331D2F75B27DFF0820A5BEE954C3F5EFB5F824DEB1CCF56F3B873829BFB4C8312E2E783ECFB6638F0842F905BF14FB377C3F79F69234466FAB21275180ADB6EE164B73B32F445C3EDF4A43852D0C35B53B76966BFAD84ACAB3F906CFE1F8E9346E22E1EDF03714EA276249295F0A8FA14CC9F5585FBCDD7AC231C94E1F5A3E43F6A8F9A5B240B9749DD26E6C8C46932616F07C0CDE3B43C22EEF685D2618EDE2CF16786DEB0616A4AF9F53CF926334B881E1C845E90E0F6B1DE4BA4DDBFFDF462E51E12E6F4970A66F33E64BA040E2D4BD2A0824A487CA363F7E8D4519198EDA027451967AF05C9EEFDB54A93214A0B8134AFE83A7861B828FF0BEC05C5127421A8DDD20708EC489CAD0752BFD4E69C303386F7AD044222558DBC06F9EB3673C9DBCF48DF227C835C852F2336F8CA7D097180AAB26D0E0B15C9C6FDBCB469EBA6BACEDB2A11204B27ED2A57A6434F661A65D6BF69819093F33E6CDB8157E966804443BCE3BCCA63B99E363752603B1D5E1C4A7E966505106A4FB920474C40997AD180B974C444703431276A8AE9EBA72BFFF8527AF405779E17A6C14F4589AF3AD28B0211BCD3E576C4FF4189882A4743A485AE42F260BCBC279D2477261F75D9EB3DA149A7E1169F401716EEA4567096A4C5C76150B9D1A8A83ECD2E81171F994E65E5C8480DF4C107CB5A002972E1AF91825CE08B30174A84E393E2790E4200BDF718F437102B90785F882ED8715AE9F061A731963FA0273CAB196B8FCC950291576DC55F8DF1D86562C8CECCB6FDF2A023817D6B09E0CEF53B4765A0D62F2D940A3C5741AD0A229B8C29252B810AAC5C698335C4ACC93AB59375595F1C9396BF74F38469C828BC6D5EBB86A27D23A6A943547414726D27C61BB0A9546F452525F3D6391992A66088F9032576E58EE880313F8463DCBAFA41DB0A2085759C4555423C1D52D65B57A4CC7C03F075915C067E7A64FC98A2F7183D58C0CFCF0FB4B21020CD13C7B4F7E65F843667BE67597DE1F3FEF0A6B5FAB0F9FB09BD4DA631372ECBC3500FB6560288EF41CD153191E9D7F8696EBC5F899EF77496FA6FA089BA009F11404C47F0C1D15CF60A6EC791070A550002DA4A0FA09\nss = 67F2E28DA0E65230D0CEDE679CA0DA4D8E970C8532CE81DD3BCD9F3743218BBC\n\ncount = 82\nkeypair_coins = 2478F7D3DE6041E7E5CD11C5E2EF483D1AA6218EB126444091535F6AE532FA73F0C083AE8CFF7A4BD779D4385E111ED4583FE00D30E651F171D7E8A90EEC0DB5\npk = BE0AAFF4D255D72C6E8424C2D5D23F0AA4C28094691AC4BF0F56A51EA4799810CFB024C151C35CC3C6CC90A41AB964370C2BC953A84A73C87A02813DE34B933F233DA28643A93388F944C033236372FA6E6ACA085B598123F27122A40074A4AF57684D46398E5D58B13A863B0B984E224A7AD52C1C4EB26909451DCF2A15DCB11AC4CA38D93CA350078138E0AE87F1390FC9045EEA420260C913C6B54DD93495F31AAC32350CD03500DA308FD8BA0777C999CB4982C91E569A1C52396EDC506AC7CC43264A05CC880191501860F1A32F7760AD3B17FF693508339FCFC05FAE095C6A96C1E6864BAF147186BC22DD882620E5A5F4516DF92B8B715394C5677D0DB913EFB25459D6C636442A8CE22899F8943957BB2B281A8ED14BB5D0CE6DE3086EA8B6165798619B2ECBFB22727CAFC6409E23088C6C940C23E86A603788C07BA89D6BADCEF07D79174ACF70C55B7B30C067BD8202A1A70998459C54384196F814515EC9C7F360061270090EF37AD32115242C2AADC0121E1A08623038B311982C669DE3DBB1C7789530191B07A947C9637BFA241ED35AA1D03C81F0D70F8B95112A3B1B08B25C34DC7E1D577FD30A808AC574DECBB51538C2A017287E62128F32AFB0F7A73EC8831E6B975007592B5C652FA636C7315BAA474F873A5DA2E82FD146268DC951689BA83E046C0F4820447C3B3E6C78CD240BC4D21E0A4660EB1C69402B617B83057874122E203BD6313D7874A987F2987599CD4D7946E50665F7D9A80651CC8DBBBC4DF605F48274FBA0640F8609B6554A7760856259C32DF00D3056AEF65436A285583CFC9D9A644F66E382D4907C6D78AA461A2B6BA8887C238F81D31E796A675EE8B7A598AFD5D79A0587965420A2E9F2782B71331737680A499AA759824D11ACF1A001F9A5865B6568ED8A1F4F4CC38F74C24E231965E9830232924526BAA377B2EE933A1FC4677EE74FD98A0881628315AA95085C7415A1A51A98406FA345A69802BA71CFC885816EA30FADEA0232B13EAFBC24B84347124BB41F8C663506665CE4C3801B09933C19675C1F9CE54C418207B69215C91B10451730DE65A4AAB6C97804AD33C50233F83599133510BB334D9C1F4B7970087700EF45500CCB31B7933FE74A346AEA4C9BD409BC5A186F00BDCA67CFA8D041DFEAA56547A71C35CEF1B66", + "4629AC9D4F431CFCCAF62A781A4BBB2ADCA7A7914627DA380873977E6E1A11FEC0938A3A886E9B328A8A539557F6C700285693266742F779BBE2E7A0603060673C7BE9591BE19A57A0CAC91CD1C61860A86356B90715886ACAC2306190CFF686883A61E56140F64BA76123C1B07614FF5C8A4B402CDBA738AB68B749C1151DA62C30DFAA3BF826D4848C4910C9EA20669735CCA4DF583E0C5412B610BCE816FD17AB9C203A7EA42081901C8CD78940F090EFB49718AC90AD6A101093580C13B5FFA0AC0D7B094D913A9DDFAB03F835F79173E966746C69A0228D06A2C363E94522EC68312CD312ECCDC688C4A88F6A5B7C3464CB7EC842FC1377359A162032C8C504105461936714F451481D8A4942D1715B6A65583999B96B0C47A914F2F721F5EC6315C91B009E714F6518BFDC75E828256F25740C91E7EFD93A5D7DB1850127DF85B8F086DFC57F1F62A86D6EE7E45AFF3F27BC1\nsk = 6C33B8AB2B4FEBAC9FF7DC3E4A689F468A4F08D5C87EF8A142B4766E24073DF336EFA5A0D6FC17B6BB2C615658EB04AA9035560FF7979E27C65A85CA6B1B9BFAAAB23D89C6A825CDF7E312F81066D516BE72680E5A665830F74E371BC411BA86F00704DCD3C40C8C1295D6B52ACA51AD41732032535AF95BEF907127EAB1EEB54899A36961793EC47B91D9725643664082C4375F4843B0031B815C8DFFCB7F25D4414191746D5AAD14093BF2C005DF655F69917BAA956721B4CB8B8B51531A4A6C0CA50F8AB21DFC7CD9F81D730157A59B971E4B4A0FBA8EF49754A7C2BE0325C8BC623FD2A94A6CC4226677260FFCB64D75167D63334E395DF5BA4505495CBC8C3A3E40AB68796D6C646775339C29683A21F921A7C6A79D39A95C876F782A27A6365908381D793B537D1A681CAB5599817E050CCCF7803BF9A90CCC4084743C96069183B08702979C9DCA2B9D9BC26E1DE849976AA1465B29EB260FFC64478C39945A9B402520172CD7861C5A0CC089A028C8200208B3E4D7B3A91CC8C209C5E1D201278B01CAB34126C701BFC2913DF501F6D73D9424CF1176B8616C04C10940EF9832957585EC350E9761505162AECB28884F659EA23125C382CF24F383F9B09FEEE8AACB981DF21A6BCEC26E2A67493B919FEA06170C18B79E5A01E6E89516707BCC7CA353727825514AA0D52504606013E53BA916BD133814C36B98FFF15F847B7383854F692450AAD28231F2BB4FD839D2B532066114DA65BE8CC5073F9992E03836CA3A623C301999A56FB00332D1BA8A26D599D0F5A97975814BE81FC9DBC536D1C165A131CA3C55D04A05D7A53FFF1299D3860CAFD8BC6E3B97E72A595D294303A12994510F74887FD1D7BB18DA70BFC5BDD58C1F6C1CB56F5994B7F2225CE0AB29E8CF3DC851F1AA5BF2BA255F7215CC71C5DA95115D6A98A2317224BC6DE1B2C79353BC5C3C046A7A0933A73419F7B117B88F3A53777143546CD29014E15E37C33770A8A9A11BC2F38777E400132A812A984908B3D2B87FC465B564045E79453C0666E3682A894C269551AFE25286FCDB681CB50B260B4327B46C2D0699BECA103965B0A218902EB4680C1B8C3ECB2011A396B0DCA97D56AAD231168FD9A7CF177B85B7729DE4A4BF035482AA7758ACA9E1F36BC9033EA34C6DFF91091E8B36FD2A2C6B1094A8338AD540C8F53CAB80D73E7DEC3977452915B616D0F0BF9E842663CC477CDB5DC94579D6222D1B647EF4D358C5435D3D0799242B66818A683E8C5651B0B26CE4909F8656FF35CD7FFA1C5988074FFA32DF093BCDA32AEE2003825593B545B44190787C4C8656D85CAC293F615811CCB35EB0413F44B1722E0A182F09481712AC68E3C9D31085EA77946A54BAA91C8AB8E814C5B94206070C0A6037BC02A292082018933A5AC32141180A6DC760C2C9ACEB3B1A1505464150A732664AA51B02A721B63759379A638BBFD07FF9A7A84E071FDA70200C61894A8891DACC375C120A35E0A4F296A02845477BC0484FB5BC539C3B8BEA3ED2511D480B1DBE76C640622B67A1A8E000B954057322CC005F88284D6290A5D720E32B5F6CB6B992BC182D66A73B5019572867640343F267133B060545D4B2BE0AAFF4D255D72C6E8424C2D5D23F0AA4C28094691AC4BF0F56A51EA4799810CFB024C151C35CC3C6CC90A41AB964370C2BC953A84A73C87A02813DE34B933F233DA28643A93388F944C033236372FA6E6ACA085B598123F27122A40074A4AF57684D46398E5D58B13A863B0B984E224A7AD52C1C4EB26909451DCF2A15DCB11AC4CA38D93CA350078138E0AE87F1390FC9045EEA420260C913C6B54DD93495F31AAC32350CD03500DA308FD8BA0777C999CB4982C91E569A1C52396EDC506AC7CC43264A05CC880191501860F1A32F7760AD3B17FF693508339FCFC05FAE095C6A96C1E6864BAF147186BC22DD882620E5A5F4516DF92B8B715394C5677D0DB913EFB25459D6C636442A8CE22899F8943957BB2B281A8ED14BB5D0CE6DE3086EA8B6165798619B2ECBFB22727CAFC6409E23088C6C940C23E86A603788C07BA89D6BADCEF07D79174ACF70C55B7B30C067BD8202A1A70998459C54384196F814515EC9C7F360061270090EF37AD32115242C2AADC0121E1A08623038B311982C669DE3DBB1C7789530191B07A947C9637BFA241ED35AA1D03C81F0D70F8B95112A3B1B08B25C34DC7E1D577FD30A808AC574DECBB51538C2A017287E62128F32AFB0F7A73EC8831E6B975007592B5C652FA636C7315BAA474F873A5DA2E82FD146268DC951689BA83E046C0F4820447C3B3E6C78CD240BC4D21E0A4660EB1C69402B617B83057874122E203BD6313D7874A987F2987599CD4D7946E50665F7D9A80651CC8DBBBC4DF605F48274FBA0640F8609B6554A7760856259C32DF00D3056AEF65436A285583CFC9D9A644F66E382D4907C6D78AA461A2B6BA8887C238F81D31E796A675EE8B7A598AFD5D79A0587965420A2E9F2782B71331737680A499AA759824D11ACF1A001F9A5865B6568ED8A1F4F4CC38F74C24E231965E9830232924526BAA377B2EE933A1FC4677EE74FD98A0881628315AA95085C7415A1A51A98406FA345A69802BA71CFC885816EA30FADEA0232B13EAFBC24B84347124BB41F8C663506665CE4C3801B09933C19675C1F9CE54C418207B69215C91B10451730DE65A4AAB6C97804AD33C50233F83599133510BB334D9C1F4B7970087700EF45500CCB31B7933FE74A346AEA4C9BD409BC5A186F00BDCA67CFA8D041DFEAA56547A71C35CEF1B664629AC9D4F431CFCCAF62A781A4BBB2ADCA7A7914627DA380873977E6E1A11FEC0938A3A886E9B328A8A539557F6C700285693266742F779BBE2E7A0603060673C7BE9591BE19A57A0CAC91CD1C61860A86356B90715886ACAC2306190CFF686883A61E56140F64BA76123C1B07614FF5C8A4B402CDBA738AB68B749C1151DA62C30DFAA3BF826D4848C4910C9EA20669735CCA4DF583E0C5412B610BCE816FD17AB9C203A7EA42081901C8CD78940F090EFB49718AC90AD6A101093580C13B5FFA0AC0D7B094D913A9DDFAB03F835F79173E966746C69A0228D06A2C363E94522EC68312CD312ECCDC688C4A88F6A5B7C3464CB7EC842FC1377359A162032C8C504105461936714F451481D8A4942D1715B6A65583999B96B0C47A914F2F721F5EC6315C91B009E714F6518BFDC75E828256F25740C91E7EFD93A5D7DB1850127DF85B8F086DFC57F1F62A86D6EE7E45AFF3F27BC1DB315CAFBAEC2F8A0142F45AFFFF65289E826C9244AB1CB03F9F65DF3E3CBCF7F0C083AE8CFF7A4BD779D4385E111ED4583FE00D30E651F171D7E8A90EEC0DB5\nencap_coins = 075246AEB644CA0C05B7D6E50083363D4F89291711D8412F0131CB1BDD2C70F2\nct = 8856146CC12FD54E5E21AB6C5D6961810D5B74F2D491DBE4D46E069DDF6383652BB9EF2955C32032392DD42F344ED15C750DF8493C8EAEE281915B9B3AD4DACB19FF4E417E8C93B2DBE6527D5673168A15D3F0989496DBBEEC1CED40F7118CA6A7B8789A57528EA426EEE8EF9BADF06BEBD56431871AE9ED848D3C86157B6A9054552E5CFE452AD0531F86A78CAFF934D9148059F76B86B0E8741EC1916D81D24301C0A3F77D145E68870E53C77D0599AABDACF7F0A5574C6CE98430CC156D2E5B06193800A0FF55F7E3EB8FF3B5408EB764C6C578A42E36BF1FD4409ED23B95F03C56A0E4F423CDD1C3A1DBA430C892840D6E068E4E71B93F9BF3EB177D3EEB6A7C3D69017D4222A315CAD8BABA0EFC35AF9B2259F1B8436EDD0E47ECB09D919529DFDF5E0D664E9DB4DCE8A3563596BFEE87EB68BBD8B506F23F8282A51A2A7EC9DA0FDD2340AFDA5202796FE0EFAE87BAB9A33486CAA693E1D5EFCAB17A14816688EAE313C01EC3849048A90157E5515D70B74C055A4AF307D5A34B17719EEF941B80D4EF15A9CFFD5A93D79FFB7D4C87003D979EBAD5B28EE1E8B673772C87B8A441C72E41548BD62FEBBA01D02DF30367D20A599AE8B8140DA4F1EE35744C4C591013F7DFF675A2552BDB4621E322D0DF9FE8C4FC7D4B52314A89851C62585CA2ECC813BEF5AFD8027540DCC422420B121D71557CD40CA3CC8B540EAFD9BC40007846095C4C909B620CD9C3201229A31D855CEFFE7C8B80608A8AC1C6CDFD3D7344B21BB117BC00F8B2DB04D7E7E57DA27D60E6F2080E5F97EE9CF70F7A01A1EBE50CB25299524B001B947080ED26E232F2142623FDC97BAF3C7266C0AF57F385FBAB0D6353A82B0C588477E78AA4AF1B817A35BD448BA4C29581176C27EC5A12543EEA03EB57726B8C7C0CF01BAABBB9D81D5A8067C4E39B8EDF3DD43D18096C4651FB1E85BBD6B20A65F877C4999429A30BAE80096391D8ADB92040864079E8DF9FD54A1F6D9710371B3D27648C29F93C9FDF1C19DBFB611F3605E0BAEFCC1874991389049393387128F5FE50564A24201E024E95647D5AEE7E7E351FE01F3563349493F3889BC54B29F531914545C8D785545EA09151A12E0C873E9546DCDD7AA78F37F32FB72AC5EE01C1814197AC0042523EAC3F672076DADB7A8C872D078D7C76C7B16E08FF54F8982FF49ADA8C84CF90E94521F6F00201462151913A15929005DA8286E2F8FEE69C3AD1B841C8FC9BCC9544C5DF5608E69F980FF0772DB6532FE276AA7D24010B27BB58134959B03708A83ABA7C22415BE3BAD9D0CB45F0D8FCCE42F58D64508A11A8275DC7289BBA124EE0C0416016BC22214936ADC68E35B2DD9BA6939119ABFA9F140F46C14EBBED91D33F4E83A21BEB9D14E60DD87B3070EFAE54782D70946A6BB8ECC6B31B1884DCDA7E8E0428C73780AD259E07BF5523F99630ECD51B05BA3C058E9DE2F24C47F06A01537E59C3228111DAEBE4A3328F56E70A0EF47079D8C9C1303D9EF325E87517DD7F1E0AAB5F5D6F\nss = 1FD88AC828C344A627CF29883BD07A328D1D7CCE9C821C7C14704ABF998776E7\n\ncount = 83\nkeypair_coins = 9D405D3EBDAF35FA8722DE431B669722ACAAEA2FD10B814310B17F78B66147D1B46F84F01FEFC519E118AFFC4A7A1560F1F8ADD6DE72615229B997B2CAD6393C\npk = 690B34B6586039100E84215EDDB39AD2D40BA9F80165623122A2C5FAF3437AB0376894CE67397D32A67C3BFB9761850C1C68AD988348725C83A378143D504400F995157903B9D04EE43404AB2CC7C35B8E0E09CCE4559945F5640450703F81C35ED332746162F7B83", + "28F78BFC3359E7C1B4FCF06155FC745C70245FFEC09ECA957C8475C62B05BFFF288A5E5A5C78206E48C3EF373658859C3D9636786980578C07B764641D6A87222224557D10436FC72B563883ECB0934E50B6EC89429D7792EC0BFCDA416FC2AC323A58DF3FBCDB6E023140478868055251B1C09FA023E240E109869C1D2967F598A529042D9859F97CCA2E85A635418707B3AA1835B77DF93AE4DC53F228083DE6A04BDF58655C59BF57B107987B88CBC001E010B9C2458BDF138288190F955B62C7013DD5784C809A7B1A29F8C3C33F0311A555306327392DDD44EC8F72FD5893F56F58BAF207F9EE98B7E31092F761C390763A8B57409C7C5C665A913E20C9B62A5E80646364AA8E3B95030FB2FB289991B8637EA57C7B324A25E0389CE979B5E816FF841456261BF042C85DAD84F80D788076B7C69CABB8E389A72657D7D63949657B934A468516C36674194DF1AC3F595A294C28D24C26E1B1B5AF5B542E025A182868E1555442E0B0D064865ED5CC1665074E55AAAD601779E591E1ED2AB07CC551437603D24CA743218FA846822B2857F871FA26834E0422746A6C7DAD256BC0B4BFFF21BD7309482D7669F8857543A0436140EC684C959D26F2F827A84B37534B7AA3BC0A08163689F01141B511E7D11A316D2AA7D73909E889DD000C20E38667DA048278B5EE87188607B4210642F5C38866FAC1549637C600C8BE8C60C11AA394E8344B6C6536E687EF6DABAC397ABF1CA7486F6AE87D8A3DC8070B5687F7C6A73225B9233685C6B703D33677998C24E40A72894193CCA1C5ACBE4A133D85A6912587AD4AD522214974CBB1F877E16164683021EA9C335D41B000CF52A3ED45B2D95B7E2D061B5213DB4C6BC36D76DF5DB9EE6984D31BCB1F6757DE7E51871F1AE7F388C5134956D3286A49BBA39967889C9A424772BF5DAB014C94893A4C8B74AB099687919243C7633CAF297B2B73AB15DF419F6EC22D15A95553831BE379ED0489749C495E3B6B8E190049A8065DBA8933FB21BA3A751CFF289A2E2772B06A4687338CA88C0EEF1488B848AFA1041F4F9607EB18BC0650055803041B728F2F1922CD984D228096FF29E71F097921423CB82254C40A615240A2482A3F5F095F5B399A8F9ADDEB6B726F43E3AF64D09038CAFEA26686CAA2CE2194CBA660EDBB083F92DC2A51142BBC922958C86C62CE7A4B3A4C95240D72244A912C3C193485208CDDC4514495B35863CFC6CB41FA721A78080FD7BA72669AC6B29ACCD3B832D35AD70F7584E197D695B78C832000C1C337FC019F0AAC04B2149A469420C15B2DAF5281DBA5DC3618E0135C043F139CC74B14E7451FC11328F06B73F124766403541131D94506628C30B7BA68564179FAED9C9D2A20F3B61793A33A65E92B699A47FDE974EECBACE22690273A757DA903A886778002D283A819CB1EA2D34B8462DCAB57C85653E363629D9270738434AB1BB46BB71890031FFECAF8FC027D2DFA2A4AD271DD702F055836F40CA137E5D0EF9\nsk = 2220BFA6A447DB5013ED5811B45742B6E95C723A35851518E04B1B619C5607944C341A1ACA4C0EB297BFE3990D514ABA3DE30867D646CD76A1EC1176F1E84EE60704B0E04366E27ED0F321BBF42322F5289F5167435B880851B48DE717E40A1B56387D4705815701BC2B80C55F33B3C20244E0E27FFCF43C457A3674000A4404B4157CBEFA05C54F50021684059939A3AA088DBBA13BE56047DF450AFE33C8742ABB0CF48E0B1C24E8719EECE41EC4A3254836B4E45B4EEBBB43D398A813BCCC0C42CC4E437050740C892B657765B252943896325E3F4C45887452847AA315BA8C811B39254A5C3EE64F65823FCF2A92E3198D2981289E021530AA4CBD210FABF51094392E25E755D778A02CA145FFF47165711AB9397A0F9B3DEF26BD0E5143C23A815C8582976521D63BC74D8B42B95280CDC77DE3528628862F44D475F49AC204C87D2647414A4A136A094B7FB923BFD3496B187592E81B8168BDFFD9522F60BC37052FC579CB3F7A398DD677BA14A3FCA1248057A59A58531B7A1F1773735A27612520B03121390CF624D46927CEC7C7D00AB13DC2BA6445236BC68642EC9659D7BBA40AA692C40794BC4BF5F13FBB617E711A54BD825329AC6A9AF2A88A54A600C0CD6754B4A3ACCADB397CABF2AF41463C00512D6D206D011BAF6D833E4ABB8DFBF736DF8036278A8125389C3B99940881760AC150967464483242DD52358A075271FB82D949AF57F345E5DC46845A94A37893613A76B6E7B4D0DB0EDDA213302677FB73C493A349704333278B201B6BAA8315731A348DED27283DBAA05E057C26C35D68A5252F1715337A1543895DFA4C395F9909B7B1283B450B71730292C32DCFFCA05221B14849AA5F94888E2A3FD33CAB3B380F8093742247AC27012E8D7A6B8702983DFBA43601677679568A8051925133FBF6550DC318E387C3E3176EC9C3CAD6A739C6BA5B72FA587F000CA8F06EEA003CD05970652B0F3F92B8BD4AA1570B02CAB21D2BD0A9937A499943CE285B32706589C11CB662461444629F5C755B4A09805DD5659127BDCF5466270A5CB6328FDD0583E701AA98D34095506284B63A6F7B39D0B31FEDC43E20E4BCB39B99D82515E041627FC5402290BE758A062822C26B750463141D9DE8793B385F556A3A3F74BD8AB61F69304AC4082E08F2CD05E5BEADE17D2C87B9535A084A6B0547389D08F548030B1DDA0137D170039E082C5583BC83695AFF0898F7E19E54204582989556B924DF35A00C518AB95CBB466B5BA0D8AEF007A8294294870902E74152832365FDB79508B69E45484139B4342DF8C391864B80E807B9DC8DDCD4463FD1A986986B81A62D79AA9565308AC1471F09D09A23F24E4EE5522B00265770674C61348FDB3BFDD539994B20FF22B210162961B56DBA538252610FA607372DB1317497B85307B61D890A62B90E4DD37246763DC6093AF5F4CD0DC20081BA4CE2D6BBDC969580607022C590A1687004B0730AF71C60590D1A6B2A5E51C742D2CBBAA826600055F4811287A062DA1696A22808507AAC327A9194C5C6D49C823557100C158E60B845AF953539A855D217C5A77599B1783F7488AA85F222DF73B837E4B8D1006A8FD6B5B06083690B34B6586039100E84215EDDB39AD2D40BA9F80165623122A2C5FAF3437AB0376894CE67397D32A67C3BFB9761850C1C68AD988348725C83A378143D504400F995157903B9D04EE43404AB2CC7C35B8E0E09CCE4559945F5640450703F81C35ED332746162F7B8328F78BFC3359E7C1B4FCF06155FC745C70245FFEC09ECA957C8475C62B05BFFF288A5E5A5C78206E48C3EF373658859C3D9636786980578C07B764641D6A87222224557D10436FC72B563883ECB0934E50B6EC89429D7792EC0BFCDA416FC2AC323A58DF3FBCDB6E023140478868055251B1C09FA023E240E109869C1D2967F598A529042D9859F97CCA2E85A635418707B3AA1835B77DF93AE4DC53F228083DE6A04BDF58655C59BF57B107987B88CBC001E010B9C2458BDF138288190F955B62C7013DD5784C809A7B1A29F8C3C33F0311A555306327392DDD44EC8F72FD5893F56F58BAF207F9EE98B7E31092F761C390763A8B57409C7C5C665A913E20C9B62A5E80646364AA8E3B95030FB2FB289991B8637EA57C7B324A25E0389CE979B5E816FF841456261BF042C85DAD84F80D788076B7C69CABB8E389A72657D7D63949657B934A468516C36674194DF1AC3F595A294C28D24C26E1B1B5AF5B542E025A182868E1555442E0B0D064865ED5CC1665074E55AAAD601779E591E1ED2AB07CC551437603D24CA743218FA846822B2857F871FA26834E0422746A6C7DAD256BC0B4BFFF21BD7309482D7669F8857543A0436140EC684C959D26F2F827A84B37534B7AA3BC0A08163689F01141B511E7D11A316D2AA7D73909E889DD000C20E38667DA048278B5EE87188607B4210642F5C38866FAC1549637C600C8BE8C60C11AA394E8344B6C6536E687EF6DABAC397ABF1CA7486F6AE87D8A3DC8070B5687F7C6A73225B9233685C6B703D33677998C24E40A72894193CCA1C5ACBE4A133D85A6912587AD4AD522214974CBB1F877E16164683021EA9C335D41B000CF52A3ED45B2D95B7E2D061B5213DB4C6BC36D76DF5DB9EE6984D31BCB1F6757DE7E51871F1AE7F388C5134956D3286A49BBA39967889C9A424772BF5DAB014C94893A4C8B74AB099687919243C7633CAF297B2B73AB15DF419F6EC22D15A95553831BE379ED0489749C495E3B6B8E190049A8065DBA8933FB21BA3A751CFF289A2E2772B06A4687338CA88C0EEF1488B848AFA1041F4F9607EB18BC0650055803041B728F2F1922CD984D228096FF29E71F097921423CB82254C40A615240A2482A3F5F095F5B399A8F9ADDEB6B726F43E3AF64D09038CAFEA26686CAA2CE2194CBA660EDBB083F92DC2A51142BBC922958C86C62CE7A4B3A4C95240D72244A912C3C193485208CDDC4514495B35863CFC6CB41FA721A78080FD7BA72669AC6B29ACCD3B832D35AD70F7584E197D695B78C832000C1C337FC019F0AAC04B2149A469420C15B2DAF5281DBA5DC3618E0135C043F139CC74B14E7451FC11328F06B73F124766403541131D94506628C30B7BA68564179FAED9C9D2A20F3B61793A33A65E92B699A47FDE974EECBACE22690273A757DA903A886778002D283A819CB1EA2D34B8462DCAB57C85653E363629D9270738434AB1BB46BB71890031FFECAF8FC027D2DFA2A4AD271DD702F055836F40CA137E5D0EF9C8D853E65B5B118E28B7CB6F0D5D6F282E0EA20FD72F3690A6B232B20A8A55ECB46F84F01FEFC519E118AFFC4A7A1560F1F8ADD6DE72615229B997B2CAD6393C\nencap_coins = DE5840C7A3B6585C81CEF65C8256BE98FDE71F70F5F5F17EF8008E64849CB02B\nct = 2D3569ABDBEC0A456BE87FC227E396666759C5C965BFC2CAD4450039E0DEE617FA6864950A25C07B7B22D64AAEE0322808C196AF27D942DB05680B634FC8D4F39DB50C025A1F504F78F5EFF83717FF2296D945AA55F202DD370723F854D5392FF968DBCE24069C90FAE3DAF1DE25E8A61D31AE1E8914E740199287F89085A844D8D571F4F4C4C128CAC8A566F713F8CE555046D4708EA3187EEC4B1DA6C1636E1548FD53BC685D8562B01A1CA4BCB9A7D1D9627F2E0ECFF24EA445E8E878160A5E4E604CC14C50DA9D7A010D7EC7B5D8C3FB8951C38E30D9EDB6C0A97346F2C0D9EEC3A34298278138C95DD7D6BD6658F9274464EA2D4BF1AC497597B5472A7B5F246B01D18E6FE3EBB1E2D205316E893D3A229228742280E513BC658CA8D6418863829FAF47153EE8EF9E459E6D1DDC5FE27B1CCE52874410DE38B62667B4ACEEB16EA953102615528B6B3F2D3A7C19A63433CD6467AE334FF5A7CD1DF4137CBF3F548AE3379EA8DA103CB539C63C164B9CEEE91C9C45B4D5C8AC949A894D48C0AD8D8CD217CFC0CF8AEBB8E95BD4BB735DD164618BC2152D021467634553587E54A62179FD9A2D8B87BE565B1A6DD4640C2F3E4B10520AF2E66ADDC5AA4BD51826EAAE63436E0E90D9A8EB7B274DA6E7F63A923C7155EFC35648CBF61EAFA9D9E87729DDF3B55B921D9720E25F94EE71A531D2043E206EA750115BD83AD98C131838E728A05B9797575443AA26A80FCA153558EFDFABE08C937040401F88D1CAC10C7C32AE19ABE745BCE1389016484287EAD70F67CD895B1BEE", + "C0242918D019ABF147928264FF4129759045118F79729100A58714AE29F398D770A0E3DA7196B3B77EB142D9513B27233406B5AEFAC843633848A65A726E6C5EF60D41D146D55291EE2874654602E0356E443C9EA97920264E98AEA66CB569198EABEC1C55C88289729D76790504E453CF954FB9B70EA3E66723E5BA46FC7A50D77B5E3A042C118F51353A0F806E303650F2213A315CC219B760E1BCF61CC5C7A428D768F870C188A730FB594E608E9232150E334F3425BD324CD92470FB6049D2BF96A9179293510DF882758439EF7F3B1F22EA805D7A820D12C6862CBC3A7756670FA069C163ADFD270D4D6CBC640C5F650F8BC03952F5A2BCF5D4517ACB2A977DBC415D679C614C401F8308B0A7F0DD2A7BE3E0F7BC25320741B2B05C3F8039C2A14FF1DC2989509459A311031D70D2BC58772768B6F6F142D6A792C8028B69976145500D9DE9300ECAF11B7224B1C9C98FEDA4FE4EB36009524A27A93C6CDA9A30FE27918A59AE407B98910FEF1177D42DC5C9B82BB0278DE1E1620BA754E159C5A1CC524DB4B75418C54BFDE7DABD22E51E75D31E284F20D3B0DAF221CD263E670D952A1F21CD16912D8C21FE83A86313935FDEE0AE72E9214DB00F5ACBE3D464804D61086A70D84DD7DBB2AA39F479719E702C26CDDB6AD6DAEA8331822801BA03E394D92805FE7D6D459D1143D7213CC73F06FD0F2D30ABAD7CAF281CBFFA936DE7\nss = 827C23D58E079CEDAA9CA13591550BD2A9121140B6D4AE662287066B6E443D1E\n\ncount = 84\nkeypair_coins = 9A86490F0615F3EDF789CB0654066E9EE339CC59F968281F3B89213F83C692ED1056461570B29E27126962068B2D07EB33DB448A2938785E6FB3E02675A6EC67\npk = 44BB530C48419ABC7578B33D6DB56C76179E9DA3808BA4C8D7C227BA5C64AFD5C87E01C1AD12A294758F45804719DC7369950E9E6398BFCB60A7819585A689462346AA5968DFA83BBB3B8A51BB59311C9D100A4A0C7586056201FFC3CBD92C3A42D6851EC064A89227B4D1551CA7AF6B5B3E892B4E44571669412E4240A08C42551DCC50086389F9E0C0290956B5AC58844A84BE308D0A5562B57B5CBC594CEAE87910A13167F27CE63B822F201AF5E9C33BCA746BA7C5E8541FFF17324228321C7A0EC976646A6B5615F80FB56351D319B31960AA8823426682A610652652994D4A78C25659B533F5B40E6236A6E704CD891502E9C2D1858CA64C94D3734AC0BBCAB2DB2F9E03450E721A38C82A4C26A487F006E1966FBF8063AB115E74F441837506559BA5B7266F62B17E4D959209B657193689A0354149880D08434FBC282713118D9DAA89C52186EA918CE2C170D8380E45A32E9F710CD6F89DAF91C9210B767D743F61655A9702051D7C8A46F17A681B136C0863CB62430D084D282099D1636C04D6B1EC212A74046D2D8108470123DD751DB685A1A1FB3A3B2C216F51302FA13AD73B919A439D424A4AD9E12994D1963B3C0E0316739CE50A1A7C23D65ACEA61423A5792321A84AD2E1B3F5B595F11637EACA77FC753260E04CEC9CCF55D70D4D567BB78749EFD005C9525F6E921F0630C25CB9A129781B9B864B7556272D5B4164E340D9464BF192979A073384F6A5E52AA0B6B74D43FAA5412C5914524974161AFCD91660705659DCA87BA482D67C8C1400B069E66A19905B331243701AC8261952C5B736B25290235669FBDCC254631294FA2E97C440D97A0211C35C2FF4B6009AA66E27CC09BC09307C7B3794A5D189892EA60B2B323E95057FF355114AB48613E2760E00BAEB82B0A763067E216AAB899E7CA06E195A5E92486CE8911BFD5C7D956318AC3B029436A9D88C56AAE2A3DC7B382F2C5E7265A037A827761447FC59A40A3C8693BC996CA786FA7AC1BBCC6AA404A1BFDB3D227C6ABE42CFC463C2F1542AE418CF4B38CC2C1595F9343D41B4A1967C7C94A7A0AE91CEC8235705805AF096CBEFD0CAD6DC0BB5130907D64E76E4BE957A117D121D66071598112EA7D02B9648CF53E57AF9E7CC3C9803AAB327D87C53E41CB9BBC42368D332E0A963C3385C18936AD7483A5F4292B625C844C2282F25AF0C86984DDC09371AB555D57DE146664FAAB59DFA514F8BB8D397A987BBC8DBE147EFC2A34DAAA712BAA1E36C9C5113A7F47BA8C4A83DB2DC79AE93688AF7C480DC8ADF0B12D7F5453E669BE2D805DD6961454BA8B40C6EFA961E53DA19EEA2243C998B504C8AB9EAA2DB11B2F9B591990040954A1567074E69154AD6E618D0830D3B554FE4C99F48B51CF6609952CC9693ACAB000C335B98126B4B45A9F317F80A6049558FE9D855A026AEFDC649D295387C530E075CCB32AAA202171C6F6907A4A2202A9C5FCF252D98328F12F927E31C596047140AF9B177E0352B120954D00529A07D6B2BCE5026A6D7CBA01231A85BA39B1692694788C9215B69FCD111FDC8934A1BA24CC7890EB479AEF01FF29161B0A7AD921BB72A8B495FFA74C62C880BF03F0BC175EB865A17ECB56E0AEA501BEF8E12D3025185BA4CF8EDD1B0F297471D58C26516\nsk = 7934A9FABC835BF9A77BB807332251DAA00876E5500D2C59F07485ED01BC934911A336ACDE5527DD166476CA1D1AA558CD88CD7BD17CE1791958E851991867C0525C9472A953C8B04A730E2E132C6C26811CB86F3234229F4CAA2AEACD2E3C840E97B8F1805B94D7317B08354BCAB64887A4E6A98FFD90A7544562CEABBCCE6489C6E8534119C9589C405D7A96DE3230094A459549B6F37078F2C01FC9080F049464B0A969EB742419147C8B39B8065A769D400A17BB25DE51A699B69D54BA460D33AC6A6965916829B7A578D0B24BFF786CEF9963BF961ADCC20F9A0CB1C159865A344A0E36879C67852DF50ACA08A46E72A4A70C027CE283DE5BCB219808F2635BD7540915C5485AB70358CB017882B12ACB4426B22B02605873F2BD0DA59A658075136CBE15418CCA0A11386AAD43A52E3C5AC97F36BC7F648808C260643C325CF456E6166EEEC74EE8476AD62C73D7D334AC279D84B66B6C8AAC217A813DBB3DC6007317A165E6A1657D0277C1E683BECCC956D973C7624E959724FF9275C1AA2BB5ACA75159721B8C6D7B299C7ACB4704C654335982E83AB3724CCAB3709D20601C2A943D5BFBB3D384A7E83A7793905301B1704CF49992077B19F0204F3394717C9AB9A173113004FD325EDB797A30155D0D2A1E4984644F245F5B495B56A98FDC487B29B4A5C6DC4E3047A8DA2C9325F1705613705628458BD525FB333087CB4B967A61A994CBEFC504D18C1B8A62898AF32BC454A57E264722897D5DC71E32C2495CA857E1A234AE61C77083BA9B780342D7CFDFF8B7EC1257B79CAD017113A3238510C5683C3A8C396986ED392B0122C16E34A7249691EA7A931C44087FA1731746C1F3855BC72414FE3484D85B5E2586B6231B4BCF27831EA7B57070A815795F43E90B2112B235F5959EA253DB76192BCB11D4E16399D40C5DC0A15D98C3B3B0289F07839F7738ABA3281D45AA0A9CA1D349A64E79246C2C7770227F1E1CC74DB8AB7EA7B0E60A9DC0E45443B30CA656CD6A8897AB105BDA51B02179936F04374554A52992710F2A70972479462A2859736C2FE4359A474939AC3531B2905F90BC38860B5615ABFB1A1327814C01048BB93C9725C7C3B0547921975766A97E29D529E4D8A090C36820DB0FEC33277CC679CD4A51F7CA05F204BFF20ACF63EC403AC7CCAB951A8EC166C545ABFCE8734833274F724E77E68137967DA75515E3C270CE79838839721BF3A14C952085071D6B3A555CE62D96E7736A583F44F726AEB921CAA340D4BB788D63645DEB2621629DFF8A2C51D23BFEE95CAA7756F1884A0CD263039C37F7415E83D4908507C1B17A7308CB329D829C86953422B8B2F1786A4B86B980751255339258572A02AB22AD845632F859EAC223E1245AC3533D359246316A3CC1AC58B4E6386592859547171CE05DD7A76BF8E93901EB7F40114175AC45E0B35109AC57BE844C52D31A7BA60A24F30EF0E45581242C02E020EC86AF106836B3DBA8071BB8E8574FDF208100982E55F4B0DCA72521440A2AEA68C57B2039D14B21A56274972ECCAC7EED41C4B26CBE2C973507F1CDF4E618077406CCD3C8C5118545178351522485730B1A1CA7971B01766B914E835244BB530C48419ABC7578B33D6DB56C76179E9DA3808BA4C8D7C227BA5C64AFD5C87E01C1AD12A294758F45804719DC7369950E9E6398BFCB60A7819585A689462346AA5968DFA83BBB3B8A51BB59311C9D100A4A0C7586056201FFC3CBD92C3A42D6851EC064A89227B4D1551CA7AF6B5B3E892B4E44571669412E4240A08C42551DCC50086389F9E0C0290956B5AC58844A84BE308D0A5562B57B5CBC594CEAE87910A13167F27CE63B822F201AF5E9C33BCA746BA7C5E8541FFF17324228321C7A0EC976646A6B5615F80FB56351D319B31960AA8823426682A610652652994D4A78C25659B533F5B40E6236A6E704CD891502E9C2D1858CA64C94D3734AC0BBCAB2DB2F9E03450E721A38C82A4C26A487F006E1966FBF8063AB115E74F441837506559BA5B7266F62B17E4D959209B657193689A0354149880D08434FBC282713118D9DAA89C52186EA918CE2C170D8380E45A32E9F710CD6F89DAF91C9210B767D743F61655A9702051D7C8A46F17A681B136C0863CB62430D084D282099D1636C04D6B1EC212A74046D2D8108470123DD751DB685A1A1FB3A3B2C216F51302FA13AD73B919A439D424A4AD9E12994D1963B3C0E0316739CE50A1A7C23D65ACEA61423A5792321A84AD2E1B3F5B595F11637EACA77FC753260E04CEC9CCF55D70D4D567BB78749EFD005C9525F6E921F0630C25CB9A129781B9B864B7556272D5B4164E340D9464BF192979A073384F6A5E52AA0B6B74D43FAA5412C5914524974161AFCD91660705659DCA87BA482D67C8C1400B069E66A19905B331243701AC8261952C5B736B25290235669FBDCC254631294FA2E97C440D97A0211C35C2FF4B6009AA66E27CC09BC09307C7B3794A5D189892EA60B2B323E95057FF355114AB48613E2760E00BAEB82B0A763067E216AAB899E7CA06E195A5E92486CE8911BFD5C7D956318AC3B029436A9D88C56AAE2A3DC7B382F2C5E7265A037A827761447FC59A40A3C8693BC996CA786FA7AC1BBCC6AA404A1BFDB3D227C6ABE42CFC463C2F1542AE418CF4B38CC2C1595F9343D41B4A1967C7C94A7A0AE91CEC8235705805AF096CBEFD0CAD6DC0BB5130907D64E76E4BE957A117D121D66071598112EA7D02B9648CF53E57AF9E7CC3C9803AAB327D87C53E41CB9BBC42368D332E0A963C3385C18936AD7483A5F4292B625C844C2282F25AF0C86984DDC09371AB555D57DE146664FAAB59DFA514F8BB8D397A987BBC8DBE147EFC2A34DAAA712BAA1E36C9C5113A7F47BA8C4A83DB2DC79AE93688AF7C480DC8ADF0B12D7F5453E669BE2D805DD6961454BA8B40C6EFA961E53DA19EEA2243C998B504C8AB9EAA2DB11B2F9B591990040954A1567074E69154AD6E618D0830D3B554FE4C99F48B51CF6609952CC9693ACAB000C335B98126B4B45A9F317F80A6049558FE9D855A026AEFDC649D295387C530E075CCB32AAA202171C6F6907A4A2202A9C5FCF252D98328F12F927E31C596047140AF9B177E0352B120954D00529A07D6B2BCE5026A6D7CBA01231A85BA39B1692694788C9215B69FCD111FDC8934A1BA24CC7890EB", + "479AEF01FF29161B0A7AD921BB72A8B495FFA74C62C880BF03F0BC175EB865A17ECB56E0AEA501BEF8E12D3025185BA4CF8EDD1B0F297471D58C26516F69BD52CB1D071F1CC7720F949D44F66F40C917EB30F3A4B0EB519ECAD2D03DC1056461570B29E27126962068B2D07EB33DB448A2938785E6FB3E02675A6EC67\nencap_coins = D45FB8527103ED4A9A88E77EDD89261B4E0D74B9B3A3F81016F534EDB12F3D36\nct = C9ECE74C33484EC099E8D7360DD9BC375637999957068289073FC71C4A4FB301E31CDAC360AEDBE543B5BE26AFF8FD1B8178109785ACE23BB2E6CFC582E2D69C142D7393E83A8CD4BA73E9F747BA39FCC55342B756FA3F71FB208598AEBDEFC62B6EE6FD7893ACE34CFA639AE02C285FEDB61D19898ACF8C14011FB2938E0EA6FC5156606685F56459199C804AE9B2FC1671EBA738097CAAAEC3B9E7215B522DA600C23591DA170C6E22AC4CE1A88FC99FFA7A484F35AB2E00A6CD18C0910BE13A37984634C9B761E309365DD013E335A3A7E5991E3AC237A83F40AB04509C3362B9718825453E2748BCF4D66B4C79006B3AC6D233AA72F4F9B05AD92D886C566266AE35A04A47DF6BF805DE5F06B39253EBD8A3D9F5C779EFC2DBA29FE051EB9E6F675817BFB195C4A378D3F179450DF2EBC2B6703EDF81979528507E31E578102E60F58D01C449F3C5D49B546DE94E5C9EA6B2BDDACB80872143184A8D23487C11A610863FB2F4716672706D1EE0B8D73357FFCCF71C1F2E4C220457E9959EE9684C567E4A77C7A39F019F9608A7AC352AF987EA1443618E80D3ED05E663D52813DE7C883D1C723B2589706C4A9611C26E4FBE4B0FE80B3569827596096309BCC5892ECDDC69799D7243DBE650A3C0FBFAA81D76592FE7451485CA85144B3A83FC0F6045649F92FB700DCCEB2D09E20AAA88B44159839C5AFC28B60E130C4BE988B5E9062F29267561CE3FB7F8B06271510B2EBDAF209A671FFFA0BCB5B4FD5D51E0D4DF76516D4A2E95EAA2AF7420F50BACFBA306051136F879AC9B482114ADABEAC62EE8F9096075E184641366C40B2B8F24DFE1F8BF68B5C04F9BE5EE87FFFAB1C2F507C913896D870A374F3BEE4A59E0E2A3E391553B3AEED9E901CFD90DC8DFDB8D5A6F431698D4EC36794A096D9A9D1F3E723119A2A7E6C7E72B7450CD4881901020C06EE407B0068E9718CF831EBECD34EE75026AF467CA2B73801A45770C1A9976472C14F8B92E14520946B7F6745F82A0FBD8539711217F666BA3FD90C30558F9884E09E015203677A5FF437AC457D43D39D463E3FC4DFB59015C450FBB1586E2D9AAB76C5BD43042C85FABBD37039FE1A5972AABCE2B8F1978334A4951E1230E8CC5D94F0A1A1A33275E7EC8DFA5C4D174398B165D835DCC1105C8B7C69BA6D48568E0CA7842727283992455613DDAE2885D94DB5959A7E15646C320C42B06FCB7C1FC8BAC8B8538990A6A571A8097B7A1502A1DBCC7881ADF0F21F49B02AD67C5E306EF2609BEE261441139AF73B00E7A2061241F0FA2C64370389777AB60FEA8B04CD74F7C9E5396852BB9E9FCFDA45AD180C68B508830EE8A261E05F27C643C9C3C9F7742FC02E1EA04D28551F8A595CF99B32D304E0F589923165E718A0C08E178A9949BBF8AD43671699467EAA39A6AC1C81FBCC6608D110E6853DAB2584AB8EE33EFE8D32F6188B393564F5253AEB9D1590A3F7AED63594D39D7D46B44551A41A66672FC5367DB7CBF1A55D547962E0F23E192579B19E9\nss = 6E20E8D7D899EC62839D375E81D7FBD6E6255DDE5820E9DC63978C6442520716\n\ncount = 85\nkeypair_coins = 6DFD9B575872560C7BDC2732C4A28DAC4DB04E535EB8E402C3DFFD145C09CE472DC85FEF74A61DA258EDFF86F377FF16F321689E7BA5052364D2448A333C7961\npk = 9EB92FFF176A27197EB4AB0171211DC7FA954C652698C50105B5C2E9F7A2A887BFB40880F8624E1FC67B1B43A51139AC6025B9EEB60925D424BB82C58B4B617618C43C99B07FB14E5B86538D29700E1CCB4F53A52BDA2EF566B20D8CCE1D7616DC81398D14ABD03964940C794E6100DA994D5BC0BCF28B04A8971214E7AB9285515EF09A7B486ECAE5C84655C9EE15255B715C3B784D9C243993171C604A3E29450728396E7572228610BB9AC04B06577B3636C137A24E2139B48DB005553152C6B040CF0B2408248675EB90AFB66D6105537A316C7C989746F43C3B284342E2CDB5F2183A16CE71AB39C67797112B0B907C00F6A47F17DB08D924826D526CF88234A25676D82449F93B2859076978860E499A0DE134A936E35F06A7802456008C23970818318AA2B55A1762A9394DDA7A49EBB4B38469410F5945DBA2801AC25BA39A2DF819B0DB194B53C4247FA5065FF99F73E71D51C22F51FC262DD2809EBCC6879B0D90004DA5BA7CC9462F6C822AC8FAC8AB95B769A465CD743BA2BABB26958AB9C3494D329A0C736C28A9CF84F5C90C5A0594485A9B339212D01BF6910105D44109B09BD063B4F2F3B903C94DC650812AE5CC87527754D476FFA82F34F39B5462006029875712CFB1DA648DABACE5AA1590B5CCEA82C20E74795C71BB70826EF4D0BBA580A447693A42D8AF3256C64CE327B370CE576B6343F2BF8FECC76E1434D5E448AA8A3B326584DDC56496704BE54108F8572170C2BC39680598017641422BB81645959B8092E82A54C68AFF60B78BE78107E7BCACB241B09913461579B52AAC5C6C8627CC033BE2273580A523D4CB7979CB65D7056643856BE187DDAC112799559A87168AA96A18089A6C547E87DA949C62B8EA876AA0192AF409BFBC354F05DC08FED46904A2688FBA59FB71B83031A19BC8A6350BBA93552BE0C01B73C89964563FE588A5B76971DACBA69868B588BB2F9076532D6A8FB4316DDA4C85C2945A2A29B6EAD3900E50ABEF2B44375AC36BCB0E028A20CCE58353C827F1D53A9A0510E3827CBD1383A6D18C0D22C374E2B6061C2197A6CB094CA9DCB42F0418C24A9CB893C45423447CD5EABB0B9B410C9144013543E5C3BAD525377CE8073D4A5F4A22BB24874B7E21523CCA731265572B487E3B42AE581A617437348C290F00AD09460AA0C7B6A1A53128E4E01B3C406A296CB35CA0BD0D1917DFF42A4848AB3BC28A2A28044C719CCAAC45C513CA007653BC854DBDB79181157AA17220153CA3563B21BE77ACEAE06BCD02531FF5B7F5453DB0119364DC4E97AC7A495287815B5EB512129643AAC4F42B3AF35AFC1207DB0A3194302FEF097BAE37BF382C154E78154B3407BBD90BB2143BC285AF1EA0B1B4FBCD3EA373A077C6107AC2800C89F20544CB7A83BAF26EF19367724B1C989C39BCB4337DEABF7D531FE2B3327F4AB0F6457C5F3869590C49664923993CB2B0103B8E8A41CC5793ACD192A047972978A2EA1B9E354CB135F2AD8928574B2C14FBC1A4C02715292C9052B69AB2A8329C02938BFA0994C209F816A24EB13F4365AF2D20240EF66F9BF6B39D54AB5D350C7CB3CD6F645379815AA3028232BC89BB89BFA2C62E351A3C6401B7B384EC61A83F9056F3665E523A0C28D48E778B0314C1EC2A83EE9805D0\nsk = 46F47850E2B9AA4A6D209125BE58806002C278A6295DA7A4FFE85551529F17D83B358B243F2A622F353EB6138CC6380F8AD3340D7575E865A6CFD34BF473A3DA8B9FC961CD921452D09B3209D041D6612576C573B08422715160B891A3370268468078F5464D7E5B84B3A3793F0C7CB2A0A13DF37B9763CFBF054C768B1E65A00E8366B406251F812C5D428853D0E00F7BD58A8E348275461C1336C2AC6A39783A35D849AA9A847F37F50BE0B95F617BC7ADB28C0506C16EA3CE89AAA28A9252F0E228D0FCA732289D05D9395133A82D8CB76DB2023924273B39CB52B5A846F338B96C5B6F3ACB41C7265A0C5B13094231F05943D58875BA7C2A6889F16107D325AD1B810A0B3C9E8928169D440194BBB90F771796856F9878158A432EFF742FBFD5ACAF59521E361F448C0BEBD805A1B4435D0761D0448D83E1201A506A0B0A4980172D05E88D7D87B42054680CDA74A386027AA4C3C5193FB1A893BEC2722D55AB9B840D99CC81408153B383345192649EB99825BB4B1957326C4791A2722951C0AB67472F4841C20C23926C3C331F24C360E81977C2791FF3171C2C489B68C923B65D8EE6BD2D510E6AE97FB771BAB401BC1A42935F38A0FD43AE2F8A24D8FC3F6E15C2C6BC800B73CCD8E91C592452484B44E6B2A624881064526182950349C78C7D58180B1676B5191EB6065C50596232B9566E4B8F0635A7D71927F8EB8572E62D57996DDF66CFED2147DC3451E95C034D6B9145BC0D30C915D66B1CCE367406212F8BB40755091C9CB0306A490EF5336E21F82C1B7B6CCC8980DA28A348815112F00C57362EB163A36E016D60F020BD12B6796C9A88A8AF4E833FC4585652E76F2FF77DEED799757C7F64E07EE6E6A300DD1CBBC840AF561746D279BEAA71DEA5318AA3CB3C4C63C4A91E0FB60D6DD6ABF1FB24D1B078DE9413F1B0BFD8916577C4CC9E0B0C332625A5FB705E94BABBE0659E022234586529A194012A6E9E7650C504C380436E1DF83E5C5C9E22F79F394BC0F22A0ACF114B90829B43112FDD617089C8B9D872B70D7027D74402B65058347B56074BA33FB91998E5A559D46622F5423808C8236317767A32E4772AE66CA472EC7828D682D045835EBC5E0089B0FF955DCFB9605214A3E5087F7EE57D5369ABCFF1BE00C7BBC5B5B25A0C1D853424123C98FB330318432D324BBC7330342224BAFF909849D65E1D08A77E07D07CF16CE6F64FC71374EEFB66BF9C742E518F2E30C480F82652B81C4CE7BF42593B990980D94062F96A7178258F31E2B90E86241C04B7B44057BF4700A040B6C0B08E4E8A6BF1CB1EEF738F51CA9BEB9C19B94B1CC623704A6C2455009F48B4CDD0F4A5D7F06320457670DB92C7A4371743593600022DA4600C56296D336A52E98888818CA10282D4767010A7ABDF81BB6752048B5B163DA385D7C5CB134108ECB03398500C1612A1BD563B21A0BC7B94C9719A75BF3B3E02143BF04A7E3D9B0070C4B449CB9594A1A8BBF871E595178BBCB611B466A8677905443ABFA1601A9664C5F54F36DCC1DDF35381F586B4AA4566C02BE610186DF8493A30479F4C72AAF049A6666E806B13FD77C3B738721F81218B48984EF374BABC0156F94E9EB92FFF176A27197EB4AB0171211DC7FA954C652698C50105B5C2E9F7A2A887BFB40880F8624E1FC67B1B43A51139AC6025B9EEB60925D424BB82C58B4B617618C43C99B07FB14E5B86538D29700E1CCB4F53A52BDA2EF566B20D8CCE1D7616DC81398D14ABD03964940C794E6100DA994D5BC0BCF28B04A8971214E7AB9285515EF09A7B486ECAE5C84655C9EE15255B715C3B784D9C243993171C604A3E29450728396E7572228610BB9AC04B06577B3636C137A24E2139B48DB005553152C6B040CF0B2408248675EB90AFB66D6105537A316C7C989746F43C3B284342E2CDB5F2183A16CE71AB39C67797112B0B907C00F6A47F17DB08D924826D526CF88234A25676D82449F93B2859076978860E499A0DE134A936E35F06A7802456008C23970818318AA2B55A1762A9394DDA7A49EBB4B38469410F5945DBA2801AC25BA39A2DF819B0DB194B53C4247FA5065FF99F73E71D51C22F51FC262DD2809EBCC6879B0D90004DA5BA7CC9462F6C822AC8FAC8AB95B769A465CD743BA2BABB269", + "58AB9C3494D329A0C736C28A9CF84F5C90C5A0594485A9B339212D01BF6910105D44109B09BD063B4F2F3B903C94DC650812AE5CC87527754D476FFA82F34F39B5462006029875712CFB1DA648DABACE5AA1590B5CCEA82C20E74795C71BB70826EF4D0BBA580A447693A42D8AF3256C64CE327B370CE576B6343F2BF8FECC76E1434D5E448AA8A3B326584DDC56496704BE54108F8572170C2BC39680598017641422BB81645959B8092E82A54C68AFF60B78BE78107E7BCACB241B09913461579B52AAC5C6C8627CC033BE2273580A523D4CB7979CB65D7056643856BE187DDAC112799559A87168AA96A18089A6C547E87DA949C62B8EA876AA0192AF409BFBC354F05DC08FED46904A2688FBA59FB71B83031A19BC8A6350BBA93552BE0C01B73C89964563FE588A5B76971DACBA69868B588BB2F9076532D6A8FB4316DDA4C85C2945A2A29B6EAD3900E50ABEF2B44375AC36BCB0E028A20CCE58353C827F1D53A9A0510E3827CBD1383A6D18C0D22C374E2B6061C2197A6CB094CA9DCB42F0418C24A9CB893C45423447CD5EABB0B9B410C9144013543E5C3BAD525377CE8073D4A5F4A22BB24874B7E21523CCA731265572B487E3B42AE581A617437348C290F00AD09460AA0C7B6A1A53128E4E01B3C406A296CB35CA0BD0D1917DFF42A4848AB3BC28A2A28044C719CCAAC45C513CA007653BC854DBDB79181157AA17220153CA3563B21BE77ACEAE06BCD02531FF5B7F5453DB0119364DC4E97AC7A495287815B5EB512129643AAC4F42B3AF35AFC1207DB0A3194302FEF097BAE37BF382C154E78154B3407BBD90BB2143BC285AF1EA0B1B4FBCD3EA373A077C6107AC2800C89F20544CB7A83BAF26EF19367724B1C989C39BCB4337DEABF7D531FE2B3327F4AB0F6457C5F3869590C49664923993CB2B0103B8E8A41CC5793ACD192A047972978A2EA1B9E354CB135F2AD8928574B2C14FBC1A4C02715292C9052B69AB2A8329C02938BFA0994C209F816A24EB13F4365AF2D20240EF66F9BF6B39D54AB5D350C7CB3CD6F645379815AA3028232BC89BB89BFA2C62E351A3C6401B7B384EC61A83F9056F3665E523A0C28D48E778B0314C1EC2A83EE9805D010E01965F9C196D2F5F90CE3CE8F552F8A0D76BA8F5345365392FEBC505600122DC85FEF74A61DA258EDFF86F377FF16F321689E7BA5052364D2448A333C7961\nencap_coins = 147C065D7CF409A115A8DF448134E1081E296F120729CA37B4185B73E2685931\nct = 2355A22B9BA71369030FB2E6A6B20BE459C88DFB194F96E206957B3D40FF4ABE9929EDCE72A06849B916847050856190B18E1FDB6BACCEEFCCEF923D835ADC5BAE7C0044BBEBB35EECA1D18BEA85121A587CF032AD63476C40A9B519D33EE700228576BA37DB5BCBE480268391FF1B76A8AE5AE71A171D41107129B4BDFE92A7FD3020C2DC9D1B21E418C4D02BA4AD0232D12AF11D4AF9D4C6DCB8A594C323BB0C3F7D8DDCD85538ECFC6D771491E97FA367AD16EB72B60D9589DD2B4E6FA87194B134B50D793107D2565615AD067EF81C21DBAD2BACBA12107E2F9A4FC795ED1E30F1322CCCEC99BEE719F7CCA1FF7E6A1DEFFF11AD69020DAC9EABF1596517700C6F76FE95D4888B5AE58A075A7C9CA2194C52E5881FAC3DEEDAC1CF4092D40C222346D6ED8BFE34DC89D6896A6601BF72D79B724AF64314FB8C55C74783F37E9C7D1246379EFCB3961888F76F3DE2293AF48C16F97337AD4AEC91FE0047388AC863068EAD95D4424464DB03BB5F120CBAFE71FDD24C9E34C691CEE9D7DA90D7E21CF2892B71CC5BA2BB3045D78D48B4581EC523582D84A2A8A4F23360CE0316B0B562905249094D17517CBB9D51C4752AB9833A13908D149E97C74FE9D126245C943E4E460058D2D0F49140AB2C6B2ABAE60D89F838B6139EE4646266B5EE060980FC25D224AD03BCD6B38D8FF151A97703109CDCE20009CAE3D165080B9C6CEEAD0ED9F29C366542AE795A85159C653E711883168D6FD3F18FD2EA627F6D9FDA74E7CD59A8D34E2332E4D18D8B16D8BD3EFFE0D3978CA927095D985BA5680E06008C12EFB915A0875DBFB8044A8A470F5431691086CF8D4DEFAA31C7EE4E7AB3496BD3D6D9875CB08084CB8668EBDFE9857FC7E9E37659941E3123FBF11339A3EAA8D18EE77AD7402893FD3D1F2B126AD26840011AC4C9F31FF76E0191AC07129CAB5C0FCB6C85071E6C194CF0B3EB8B78E2BA60E0727654B7C78252B1AC5780B8EA2684BDF833A666ABDDF712A1259CD74DC4370F24E7BE786A561FC33384B8340C90CA0B0A8BEEF3AA41CE386D2F4A5D5927885CC30AD36C2D0B772A9FE0DF91712F44B2D6D42CC561D8B7ABB1D50FEB17FB317C7E68801E351E828EF1EC38E186AEF504FC7FE5D05D3C40EDE1F273E55F4CAC07B0F04362A7EDF25EAF941A2669D5EC9222A50F723059F79B36D1CDE4F7142662E9515DFFDE8AA8DAE1585ACE5B3F645963EC67E80A9F0E8E3957ABBEB26912CCA8A3A378FE17D1BC0724029E4C1937D574126298DD8BE9448A96B5D47CE04B4D9F69D96D174A37AEA3433081FA60ABA48D642DC19FC4E98DBDFD3348F1A226C288E86BE37AE943FB16368406889B0CCF729EAF21232F01077C269FFE964BC1B6C8BFBE2E37FF8819FECA4A94EC64A1896DA3EFB082DC854D095E2994BE5D11C0060F6161F74838079E719289875F2CEB6F4063DB465513784CA3C7BA2888328564F3AAD93C6F74EFE8C2B83D12902365F2932419AA704D31806A5C93557C3CB8C60C8FA2FEDB14AACB\nss = 5A1B31E2936D1CB11179D456608333801904253A3B6A53121350C61FB5D86EA8\n\ncount = 86\nkeypair_coins = 6FCA9F4E384D8418075CC064C70730801BDB8249899D456A77130D5BEEB3662CF4626AFBAE65EA913CDB263C9615A5F66061CCC74B1AC83B5FBAB8FA1EB6799B\npk = 5C405485D51FB10CB0F150B9DB466C53E070F5849049D225047BC47AA15F630A6D62C5B179906EE6C067FA3384A4C22748F984EB31AB4CD69083DA31A5B45F586560371BC99113C44D05828FA7687AA649B261BEB0EB4EEBCB8548139BBD6A0A844CA1E4E59F3D7C4372EA8632B278A7E68B59032012C5518A8021BD5367557077C9C1B4A50944EA1A834BB61004B2CBA7F6401A57839A3CB85B326449A25457851B4A2BBA2E2187F040745FB608079C8B59D2B191813D51C5C3F329B1F5E40771E1B33F63CA400555CE5351CFFCA2DDD268D7855151618587C8B037E7CA290467E4A7C2C38290B84AB8DC4A839F57102DD559114092165B13B130B41BEA2F857C84AE45C1734375A3EA91021014D29AC58F12BD5A44B91CE986E094A66089479DCAC23A6275B864195DF24F2D4A97F1B26B508C3A5BB89B9F0A913867C1294C252D5022D9FC60FFEB3FF3C29B2DD1AA97F22271C5C8E749CACEA39F2C637FF4A235882747CECA1D95E093966462AD401510EC112026BF0FBC106270988B2C35CC7269DA693A7D67052F9156D30C916AD6552EACAA3AC2396BC56668686EA8A1578E46658A71B4B7365AE56A263C783973C1B63100B1AFF4C3FEB64856A781334C6E83519E541511B4D581914C697FF31239DAC56662A145316AC4D14E522480782C4EC52B1A2B8A85F657217ED11426A2A606C01C17171FD10824C07042B189225D40919AAC5CBE05B031689B1EA61041F6091D961A8910A205E62FF21909C6B4095B270D87C9727A2B611118C84AAC033EA9CAB5F40EFAD6117F2160A56505FD775D3F415AAE9271A9B2B1FD1964EDFB772A9C4875F06826A49C26E93F0B1846E006468DE71B98AC6FC0F81AB146236739C9A7B6C13952089D621936E8B265B50DD4016547A2ABD52339DAA0B459D265558A1D9B61C73E49346396B6155195C9C3A437614E68E23143F09FD28857AAEA50AA808600F5C5CA33C5963CC00C4B1C1CE2609486AC4F1B2DDB7B06ACB62398A32320F315DABCAF5D4A833E2A01A6E7C971CA15E40C459EF18DB8452AABE1584412B4C4DC52E6004CA56B5F48555041CC828A7A6DA77C435F05574E5C25EFC3C6057443EB77993C987CAC2363C3030D88E288F4D08966E624794078A39C53ECF273DF178CB022A5FB025A2687409A785CD6C019F5761B0A3087AE91844A69C2A89C1A00B1CAEC7C1F7A67425B87BE02D80B67CA6C7DC3B45BF425DFD33DC5A13E7531907ED6329593C333466D9628668B98422C985182F8C0952CBF5052225363398E516D23678B5320A9CCA38E21C6BE86822C4FCBB9094277BCE80992858C5498C6BCC57DB982C196B1A78C317975544FFDF33E57A30DD29A5CA4A22A918746FD9A84EE1008DB920432E39B6FF182C930243CF350C6F486832A807A36C8A9242A5C39140EAA7A45BACE0086A86FE36BE28ACEC756B5E9A47225638659B250C52B564751CE8C42C39BD1046D2B6CDA70B7951707B63073F0EB5EA3FC5229F816EBF4007CE97307C6607B4CA17CA30330570D4F39BF76998147060CC04B33D4B91294F85F4A717EF9C288E3741F70FA5823AB8329F56D9D0B05C996701A050A387362DB09427D5587E7751131953146EA3591818F0DDE74E33983C010419218B08822DA9C3C62EAE1F2284801B3E4\nsk = 8747252C693A0D6C06AB66071B13517E1C45ABB370D26ABA3FB31641A170B365C5F6235D1FD688D81C72716A3921420D228A7BD5A1C48FF445C47489B8116B7CA14D3EA78B20A7B5E579C5681187A2AA8FC900557501003FB9BEAD185BA9E7939F247BF1757EA66A4392095EA90239A3C67A8CA70186047D9A6B06B8887FAE01BA8E556319A003934C88DDEB05F9F3B4964A6545E8443F57383A2BCDAFD96C794B399296615BCB9C59F8703595709724B6A4BCAD06E116F4542C4322072E3C6713015B1339512419B4DAA8C87F5A8BFF481964A8AB8A101943230F9527A10A604DF6275E1EF18FE54A57D7544402134AB77802333897D4769AC23093F9B951D735B5623452C90270A0896ED3A81BF1191E451A4A67A4542556AF78F1690982360FF1BFCFF66386827DF93BCD894AC8C996BE6E0A29DE70CCD459B9DE46ACC9E8043BB82D01C40E5785845FF4B0DDB8184AFC5E52A72E899093669A9EB110A100A1159241BDD40612A9B1955B1752810764E7B68D89704A61442ADF68108AA229E406CD10B6527A39A6B46068685B5E802CC25614492DBB6E06BA2160E930733956E7B29AB9981D4B477CD4EAB880E56EB711B278F540AC204A996B32FD06B8BFCB7729660CF5125FE1626199F6285DA628FAF491DCE2CA3BF285902350D52C0649339F31EA3AB764B90701BD647194FB27383681C13470B8D5CCB61DD74C5F666FFEA7B0714C469C4803107235599C998349B5BE7AB9E9DC6F01E928593939270411EE2490F16C54BA672EE03B710978760B962319BAB3C2FC67CD9C2E9D4C153A8717826BC4C3D6C7444C051A61A06A2C87A1207A20754E9D7725B91077766871509CCC93F5A1FC1C20680263082801F6B81E8F319B92110F2DA22F0D8C251EE4531B127C44B378DA6A0D26F55DE3285190BA1357012E42521CD1855252147D1ABCB1582422F55091B5EAADE93194CFA0BE536343A282C4A948C355984CD20A7CA454BA034AC7355B02730107A71B3986FA01FAA38D17E07494FB510E5526F690BFB27294FBB963A0606E140A182A9A247029ABDFF6BD8E876EC92207312432CC2700EC4C6A4A7037C5B612EEB2099D54872A5884E28981D794C7855590F1F", + "1464017C8724BC92E0B644DE92B5B80A573F641E4E65BD6F0396184086D6A5A50662F9CC6241FB7241D194B6D23AE6FA3C59FE60C81309FF7E39F93F72BCB0696EDC771A80CC5FFC74138AC9D01B95DEFE7258BC555E3E28CAB6A73372337EFA0B4AA0C7D13B312A7313F8B63426C6677407903822AA1ACF4ACF4A130C4C68DD4DC47DD061ED0A4969E5AB630BAA11FA0AA51133C6509C83E603425A385730AA0E07A2BAC0754358C812F483F5CA6BEF3105CCE4CC33532116C6493F19880F693581E08999BE24DB44B84970C8FA4F6784D50614CDC9E626A31966ACF81309EA6A730EB42011663CF10A90A9EC12F3FE133A7D02CFB95CECC6B52CC08571BD03E8315532B7C76C2040B60E9021A24734854B6A3D77CBFD087015410B7322AD5D9B04F651F895AB5BFC25F8CC9703BC67DC5EB5AEDE41682A17FEB1B4339335EFAA44A64E8B4EB0BBE17FB00875A06318C1E68C42E6CE0946A59C61700A72779765C405485D51FB10CB0F150B9DB466C53E070F5849049D225047BC47AA15F630A6D62C5B179906EE6C067FA3384A4C22748F984EB31AB4CD69083DA31A5B45F586560371BC99113C44D05828FA7687AA649B261BEB0EB4EEBCB8548139BBD6A0A844CA1E4E59F3D7C4372EA8632B278A7E68B59032012C5518A8021BD5367557077C9C1B4A50944EA1A834BB61004B2CBA7F6401A57839A3CB85B326449A25457851B4A2BBA2E2187F040745FB608079C8B59D2B191813D51C5C3F329B1F5E40771E1B33F63CA400555CE5351CFFCA2DDD268D7855151618587C8B037E7CA290467E4A7C2C38290B84AB8DC4A839F57102DD559114092165B13B130B41BEA2F857C84AE45C1734375A3EA91021014D29AC58F12BD5A44B91CE986E094A66089479DCAC23A6275B864195DF24F2D4A97F1B26B508C3A5BB89B9F0A913867C1294C252D5022D9FC60FFEB3FF3C29B2DD1AA97F22271C5C8E749CACEA39F2C637FF4A235882747CECA1D95E093966462AD401510EC112026BF0FBC106270988B2C35CC7269DA693A7D67052F9156D30C916AD6552EACAA3AC2396BC56668686EA8A1578E46658A71B4B7365AE56A263C783973C1B63100B1AFF4C3FEB64856A781334C6E83519E541511B4D581914C697FF31239DAC56662A145316AC4D14E522480782C4EC52B1A2B8A85F657217ED11426A2A606C01C17171FD10824C07042B189225D40919AAC5CBE05B031689B1EA61041F6091D961A8910A205E62FF21909C6B4095B270D87C9727A2B611118C84AAC033EA9CAB5F40EFAD6117F2160A56505FD775D3F415AAE9271A9B2B1FD1964EDFB772A9C4875F06826A49C26E93F0B1846E006468DE71B98AC6FC0F81AB146236739C9A7B6C13952089D621936E8B265B50DD4016547A2ABD52339DAA0B459D265558A1D9B61C73E49346396B6155195C9C3A437614E68E23143F09FD28857AAEA50AA808600F5C5CA33C5963CC00C4B1C1CE2609486AC4F1B2DDB7B06ACB62398A32320F315DABCAF5D4A833E2A01A6E7C971CA15E40C459EF18DB8452AABE1584412B4C4DC52E6004CA56B5F48555041CC828A7A6DA77C435F05574E5C25EFC3C6057443EB77993C987CAC2363C3030D88E288F4D08966E624794078A39C53ECF273DF178CB022A5FB025A2687409A785CD6C019F5761B0A3087AE91844A69C2A89C1A00B1CAEC7C1F7A67425B87BE02D80B67CA6C7DC3B45BF425DFD33DC5A13E7531907ED6329593C333466D9628668B98422C985182F8C0952CBF5052225363398E516D23678B5320A9CCA38E21C6BE86822C4FCBB9094277BCE80992858C5498C6BCC57DB982C196B1A78C317975544FFDF33E57A30DD29A5CA4A22A918746FD9A84EE1008DB920432E39B6FF182C930243CF350C6F486832A807A36C8A9242A5C39140EAA7A45BACE0086A86FE36BE28ACEC756B5E9A47225638659B250C52B564751CE8C42C39BD1046D2B6CDA70B7951707B63073F0EB5EA3FC5229F816EBF4007CE97307C6607B4CA17CA30330570D4F39BF76998147060CC04B33D4B91294F85F4A717EF9C288E3741F70FA5823AB8329F56D9D0B05C996701A050A387362DB09427D5587E7751131953146EA3591818F0DDE74E33983C010419218B08822DA9C3C62EAE1F2284801B3E47C3991FA7983D0DD6E7157CFB152538466E9D5C3998A2B8ED862162B91CA851CF4626AFBAE65EA913CDB263C9615A5F66061CCC74B1AC83B5FBAB8FA1EB6799B\nencap_coins = 90CE0644A11E7225DA1F86E1D34D506FCE42B809D968D23FF0C6AE57AC5EF075\nct = 436CDF47BF07BC806EB2B2D2D0CA1A103E5FCEB0A2B37DDCF5C5D402105309F33B3D1ABA0D11821D4866F0ADDA5DCDEBDE58EFEA48D4203E21E96DC573DE83A15E5461C2E103527C10078413A998FA2963AEE5AD1B26BC3963D5C50EBB4BD276E67F0855AAD7F517BFEB3CAD1A4EAAFABF59F65624782C935389002DCF9420B4B111AC42E054DF00D9D80B32094D9D346669BBE67D4C39F4C7C3A487222FA4610DD61635C27EC1EF94CF4574686915657A5DF009D7F2377EE9035B01CAE1A614B8F141976307A8CB9C42F65D232B81E2130C71A2A0E4299D66FC42E63C0C4814A5E285B04B9EA5B8E1CF8A71632FA3518F99B2EAA08DBBA9BFAC8062E6ACF982330E2183C45FD6D54D95CF0BC7A18C0D4A28AE377D8BC479CD3424F587B3D2605F826A76E615E06BBE9BB87C05A0C18E2C22B0446660E5B286604E116D424F8D3400448BAD4A22EE0112476BBB2A1D18C20034AE320359303275206AFAE537CD1CE2B1DD8793D431A42B1B66BB090A8AC0AD483205B4F2C09BC0272489A99562DB6520B0FC517C06129FDC71886ACDC502DCB61D04E3D55F17CF121510B51F2A8AFAEE90682A171C19EBBB8576AD0C329D7CD2BF687BF5D817112B6F0DEEA403EAA3E3513C8EC651BB0816DB3BAAAF68771A8FBA2376FD6AFDB0FD5915C9778D92E11DE5E91817F55D8DBF176E9A0739AB7E21CB1A8E091E7D73AA031A3CBF3765E3B7380FDDC2033903171FF90B48B6D1AC80C2B171F177CAAD0B5418DF7586831D27C7C96F74A2A6CFB89F1ED90BC32A560B1C7A9A54F95973F69A525F820FC1F12D1ADCCF12AF64ED7C39E099B40758E2766905C644D974849358713E6377DED0AE907EAC372AA80D147AFA97052CB7723BF12974BBB25DFD6938B433233432A08AB93EEC6B7B0A13FEA83501B97F383FC29B9121C7F56252C6698EAFDD95735B5516E146A3F5E940179D25B7B20395CF1C2D8D6744F1332F2D3027DFBB887F4463A5D9B08B7E69478E2593B1D31E8DB8CC5B01E89630A155BB87E141D65C8C033EB9D1DB7A6365D1181A4C510DB4B493DC7504AC53DBB07EF6E1ED8271E600FDC42671F1D89524CEFE90605E66305101AC2B2617048C57D21ADAAB2B616A7131183DB0F17E32EE8975D3317F53D232C976003680743F5F19ABB4A717DD6748DCA8D9BF83DDE5172FF50481288921519A6EBDAC29A3AF88C8E11A5D57ABDBA01DD98F27920A2EC7E62DD05EBE9384A76F5E21607D09281B870BDF6AC9301386407D4F0C50F8AA6E74DC7810A09C87E49D89B330272329A1D175F4572AAB50DE0140E7F4CEDDAC9499230145922C3ADD4501411B0D2FA6BD2812D0CF7CA181A2CCF42CD95A56F6991BD47ED2BE7882FB57521DA9F68488EB4BBF37D4B6EDB4781D21B0282680554C6B8387338C55B65D7C6CCDB4068C4C1DCCC4EDAFA1ECA3EB299678F7B76AA149DACF857ED1BC18E5F6B60406071AD00C398B42CCE201B219BE9F8E62FBE4FDB2CD7CEBC6F4CB50EE6E309C66BA934B6A9E14E6735D06CA\nss = 6E98522C0F419EC8B1F2254DDF9805D7E7EA147E2FF1CD5219F55E01F91A939C\n\ncount = 87\nkeypair_coins = E58F71BF175C0550A67E00E0F7B3B7FC36BC2707BF0C93044A492626DE36301AD79909F31E8168AC129FEED8EFEB21F07C02F282CB90F63EF10EB2F4A9ACB886\npk = 7E395F02D56D41B5C5889BB6B2F149425A2AC8AA06FF23A82841887DE199B56C91846392A026B50E87453F44588EE6AD4A443F54D25ECAE39AAF286EFB47A760DA01B6C13FA178811C47A0DFB14110FC6482543E8A3A52ABEC3A8D7176AA2868B2D46CF68538C27514222A34371C25FE832184206E5ABB699D61426027A942581D0BAB075A367793C81B7FDC11E2F6772C8040D271BE5D07D00B330A6C874B46D26F51DB8F43F22DFCD72613F8C22D15C28A2B384051142C148B07F7362EEA4771959B635A215B1351F650342D2A071ACB16DD8AB50539096F295E44173BCAC20F3CB271A8041E3008A742057EF2FB2D78F8A3A3C252F6D38D8E85BD57A75D45AB4DC21B8033992CAA623866E8989F98560DE33004D3409F233020899340B2591E1A4A0223A79E20B4B85C632CE7609C0C45A0246251468C1B6C20716315A54520C5718F4C5C7066331FC7E953ED91AA5F3B92E69617B29C256657124242AE8305780CC0CAF00C92896929A1648BE9B47F86F144A3B12D9DD51F347875E6DA935F0BD043ABBFDC7B85066A7836D442872C56FDD41D9A3A01D9AC6A12531079F74B273CA129F36A7AE463F6464436E50FA70CBC2756BD25234893B50A2898345E588B819C0955E9C50072517D58B0A3E4BFC9832B727C7F2FA924AC672D4D104A8F3AB81200A624C61EB6AA7B4553AEB2084360F1C03E443AB99ACB63AC699443A638BA9B8013C7ACA95ACEBC9ED6B12E8BE5A6CCC74EFEA7CEFC7A0F5EE18857250D08F03CD94CB4C455141D7AA2FBFCBE3EB896C2404BFA3580BC63B73265581D87618B206CAA9468C65BB1863B18F560413D1B1D392259F37C00F7D89124C56913483513006FEFF89092F218FDCBB8B118B206B64F2DE52BE0B553665C32831BB4CBA3762991716BE65E6A222B30A0A5CB246207352732BC3C8AD7A2C3243C62424AF222A922787F7FE44DF05299DA1105F9EBB0C5AA18B6C6C73F43390AF9C2454442110AAB4AA629C8F300DD38318C43A25D269885F970DDD8AC1E5918E59A3D53DC8A44873EEA97C31F34108B893B634284D69153779230C28B2A1636B6B839A4D91B7E23F0414B111F2E7C1B3ED58613120FEC37C78308587494233313950D82CE946778E044C3D245A19C29B09A80C3B55416A811AF33032A0068C7A4767F05E9AAC3E8B99B967F88D5281A38B072B8C4E194794C40BCD5366714525E846048E55C008CB48B5EA0C61655B8819B08FBB88337E20D63003F2453462598CA66181ACE033C707C1AE9760CED165596B2B163E54934540C4F7097BDF14D29EA850B95BE6FD42973436144270549A81B5F73192C2C6AC2474686A9A3EE556B6F26A9039866176026E25A60B5864E963850CDC8219D21859B5C5C3714434EA53BB16786DDE8036F317C430B3BDB025E6B62C097340F1E961B90E0C5182183DE05B293A05B58DCC251D8A2911C6E71A635F5179D06D93D33D8CB332C8B835C0E2973261BDAA43E414153118B66C641F834C949E77FCDBCB59DC27089138A2E07A5B40C7666794FD8E6B97685BC4A3C2A65912C35F50A278BBAD765C8C775BACF28181D61530E54AE7FDCAA2681A01BF51C0D7A033D6B005893B98DA86005381F1C6E600B1787BBBC13A01210C0764A4A2578D4BF90A24704178F06A4E4B110F5\nsk = A32B081D2579D7737A984126B05465963AC3D0FC3D471B94E30B242699AE3EE7A305D187D9371AF3568D7BBABDC30CA69BE166AAA07C67799DCE7345B20", + "24EE41C5A6F35733CD12EFA19256DDB74440829C6B52AAA25B258BAC8D950CCDEA410535BB3A44A46EBC44F5772CDAD96596980C32A14916CF5C4A2FA8538491F7EEA270543ABC467344FF098EDB4762F658B6B26431B9863CFA7546C1489A25BC9061B8CA0165528241B4BC173BF17B4E7873A5081016A1C55E4BB1E7F71B849274D03E05E866656C126485979CE9660AFDF3622E3051F76D02243E660A5A78C663880A7F9765DF45410926A86ACC7962878B4037CF2960B06F072367B476EB24B8C57924A9C699815BBEB0BB10B2A88B0C63F0171C759D59CEA91C5C043A41A8155E462325893685F18C5458A0AC3E5BF2C696C8F07727C090E1D3502D075A706551C54A00A710027C52CBD83FB9DBD7567ACA2B6EB809C00838E56B209E0C5AAD2E6235E2C157D3659D906452F4A8C60B26F838A51F6789E42C00580E4595A5C0A12B796CB44240A4724C298ABFF1332BB0970A3EC475A434EC4DC2A4AA92C42E22035A4499C66827C882B542A8FB22B6B6054984FDCBD6A637583145010D89A4654BF0BC0A0C3B86788459B659A539833629C1B585A13134D766C9E8003282683AAC1486A934EDD3A7511319A7952B5EB7C5947B69AB5C904B2481A7709C95BCA352DF45E8BB87775A9CB566581C3777E7B975C629C89063C8F0E982A24D344EE8A22221A02C6538154217C453AC0ECD4BB1F820BAAB94D920765C4AC15972AA79BA974F3B5055EFA7FE5BCB454F7AE70E1C017322A20C73EBF278054060687C6301E13B52952459C56BC8D8795044302FC9123921143EC2C73278939826682126B65C7D9BAC044AE6CC7CA40F92C8FF28470E41D51895ADB53AE30216B1ABA552FCC14AB277A872029F3DC8D56794D842BA06770808F1C097787973B0A14280C5FBCC45C102C23821A07EEA6C3ABB4B52AE116F4B38E4A50CFB849177766495463197BCA3197B53AB72B172C163003C9AB89721EFF925F56B59373F5ABD1430B0731419A12BA80641628D78D712BBB74579C0A18A4CB2AA6EDD76FD7605FBF8214A00AA44E486810F3AC6E36345431C23F247F251112CB8A6C76444B1A5277B7C68AFD2C49D4A81FC5069B9A004CDF0587A4A193D243BC5F16357E1B1F280706B4C16F9D8B3B6A5815A1597C49076589D5303A5C89AD320CF6042F2F819CDFF04B850870E807B4F2B6BF99AA8F3FD16E95B3BEDF247CDBDAB048586116DB7A4530C360BB240FB2964FD41A5128CEE9FA6AD434B536345A49BC758D849260B78CD9F3B3E8461CBE906E93B209742C0ABEC1C1BBA9BAA05A8FD05637D26548F48512F5477B93D0BD54F6674158B2F6EA0488191EB023A641B175CC689A2F326214793228138D6DA03BFE4466DC962FD2A7C57102CF3F96CF3A6619D2F613CA063A35F4515C0473140B8EC3C53B1D9974021616BCA2459BC31502DAAFC861990C1B97EA1AB5AE018EAD781A67A075CC4924F9EA364BEC33ED167637F0A643C3A810914A49366AF69B3CC25938E77422832B7078C6BE562513EE3648758515E3C04F7E395F02D56D41B5C5889BB6B2F149425A2AC8AA06FF23A82841887DE199B56C91846392A026B50E87453F44588EE6AD4A443F54D25ECAE39AAF286EFB47A760DA01B6C13FA178811C47A0DFB14110FC6482543E8A3A52ABEC3A8D7176AA2868B2D46CF68538C27514222A34371C25FE832184206E5ABB699D61426027A942581D0BAB075A367793C81B7FDC11E2F6772C8040D271BE5D07D00B330A6C874B46D26F51DB8F43F22DFCD72613F8C22D15C28A2B384051142C148B07F7362EEA4771959B635A215B1351F650342D2A071ACB16DD8AB50539096F295E44173BCAC20F3CB271A8041E3008A742057EF2FB2D78F8A3A3C252F6D38D8E85BD57A75D45AB4DC21B8033992CAA623866E8989F98560DE33004D3409F233020899340B2591E1A4A0223A79E20B4B85C632CE7609C0C45A0246251468C1B6C20716315A54520C5718F4C5C7066331FC7E953ED91AA5F3B92E69617B29C256657124242AE8305780CC0CAF00C92896929A1648BE9B47F86F144A3B12D9DD51F347875E6DA935F0BD043ABBFDC7B85066A7836D442872C56FDD41D9A3A01D9AC6A12531079F74B273CA129F36A7AE463F6464436E50FA70CBC2756BD25234893B50A2898345E588B819C0955E9C50072517D58B0A3E4BFC9832B727C7F2FA924AC672D4D104A8F3AB81200A624C61EB6AA7B4553AEB2084360F1C03E443AB99ACB63AC699443A638BA9B8013C7ACA95ACEBC9ED6B12E8BE5A6CCC74EFEA7CEFC7A0F5EE18857250D08F03CD94CB4C455141D7AA2FBFCBE3EB896C2404BFA3580BC63B73265581D87618B206CAA9468C65BB1863B18F560413D1B1D392259F37C00F7D89124C56913483513006FEFF89092F218FDCBB8B118B206B64F2DE52BE0B553665C32831BB4CBA3762991716BE65E6A222B30A0A5CB246207352732BC3C8AD7A2C3243C62424AF222A922787F7FE44DF05299DA1105F9EBB0C5AA18B6C6C73F43390AF9C2454442110AAB4AA629C8F300DD38318C43A25D269885F970DDD8AC1E5918E59A3D53DC8A44873EEA97C31F34108B893B634284D69153779230C28B2A1636B6B839A4D91B7E23F0414B111F2E7C1B3ED58613120FEC37C78308587494233313950D82CE946778E044C3D245A19C29B09A80C3B55416A811AF33032A0068C7A4767F05E9AAC3E8B99B967F88D5281A38B072B8C4E194794C40BCD5366714525E846048E55C008CB48B5EA0C61655B8819B08FBB88337E20D63003F2453462598CA66181ACE033C707C1AE9760CED165596B2B163E54934540C4F7097BDF14D29EA850B95BE6FD42973436144270549A81B5F73192C2C6AC2474686A9A3EE556B6F26A9039866176026E25A60B5864E963850CDC8219D21859B5C5C3714434EA53BB16786DDE8036F317C430B3BDB025E6B62C097340F1E961B90E0C5182183DE05B293A05B58DCC251D8A2911C6E71A635F5179D06D93D33D8CB332C8B835C0E2973261BDAA43E414153118B66C641F834C949E77FCDBCB59DC27089138A2E07A5B40C7666794FD8E6B97685BC4A3C2A65912C35F50A278BBAD765C8C775BACF28181D61530E54AE7FDCAA2681A01BF51C0D7A033D6B005893B98DA86005381F1C6E600B1787BBBC13A01210C0764A4A2578D4BF90A24704178F06A4E4B110F58AACD8940FF6FC27F175342BE74D48075F8AE9320CAE20A41C879C27C1BF815DD79909F31E8168AC129FEED8EFEB21F07C02F282CB90F63EF10EB2F4A9ACB886\nencap_coins = 8BC7F573082482206ADAC45F410A9A3EBEB4A8538999B681072C26731023FCFF\nct = 67D655425DFEF7E8ED253CE4F08E08525AC6145DE615E6CE9053880A21631CEF61405E9A4F40B21EE2EE808503939C140FB399E5636D7CC3E7562D27933EC80CCF67A40B4AACC65BAB87BC87446E7BC86FC3D703259C503CA8E3D7C21A7C89AC266C77F54B3AEF980A083F1AD7DCE2D73502CBDD982FC53C7F17CBEC18A66F1FC9D20A787F001948DB39545245012DA543ABE8F643682536E9885DA7551D6247954FF068554C1E4DE53EC5EAE0B5A4CDEAFD3F9D8D88E6C27E4254B644EADCCE490D947EABED21C1C632817F57973951247A9777976E0F8803D6A89B61805EF8B4B13197D643EF26FB4913573468A94FAA582625815FA8FB94ECA110E7F0E8B394CC4C62C4BCAC308F267F4B8E2EA4C7A25D6D4B2E91F79C788E0E7103999868D421CAF0679A48D351BD37F66A7EB97847B8E528F7A081783E9E21E39902DFB50542DB4E32CC894898F728CFF2B3CFFD69402C787276CC1689BB558632F4336B2CF851FC179BA56CEABBA5870C86D55269D6DDC758DE568B1E230A3E1AE733096AD051C9E852DFE717B8C951AF6DE3232D31A50F22E77A6ABC46C2532E3BB877EC792C68B2948A70CDD3726F35EEBD54854B27EB43B9A17E46BDDC79F747C8AE36275DD8D147771F4E1722B0D3394241AA02307F3E7E4A4A5BDCD83B559DF154E5D77EF50450226B03CE298546BDEA91DD40954B674A7C5428D81456B93F1B84A1D268348BF26ABC1F7535D29C5923A3BCD3F93636F0C4FC0D2A5A15BF8949545907D35B627249C50ABB2672AE5CFE1AC02C0E96EFBD56852964CC92CAC651A7A0AF81243609043B01958EC5EBDF8456F401C620B585EAE2BBCED2F6F1F91118CB5325909FC5DCC63174ED4164A45C67AD9C936D42CFC8259AEDDB132CA86CD2A18AB1EEFF35DEEAEA11629C1E57A789DAD576A8D4EC2B5218AE72042315314628233E6325EB518BC0D4D9F47CD44436B120468B368701602BCE2F060ED6F3067C2B963D9F2303EBA63B648B9DCFEC4534DB59B6DC00574896E7096FF7FBD4B94C02127F97107798F0057310038B17236EFBCD9EADFB9AF8F91AB55E46A7D99878E3AB55D863AAF5D48BCAA3A9A2B02EE54C978B0C5503A5D561E2D33589C3E41ADAEE18BD46647434F59A2160717021198BA669297183613F25B6F247C2BBF133A5867E554F5C9324EDA03E6980594B4C8D9D31D3E439FC5945879CADBF9C701784122ECE30D6B836C01F3F62117BA7BE959E3F008A8435B498797A17AD9A4FFD7B3894B6538EDDCFBA4A2D460E5EFF9292156A92E2FD19F7C10823784862B87CF19F5DCD59D8D1876E3B248D6DD2D58BCFCBF135497B08B5D0236692D00F1117DD96635B629B9D4D81B1A8A94F9B6BE7939FA90619784CC65EB048045343C0C0FA54C5F58C0C75B0DFF8BCD38E44C9A45F1F34F728AE829E825062901AB7286FD4429D609EF63093124AA39DCA203F2E201DAD8E6C16AC9F43136AC52C6958F273B630F2150186A7F0F8E70B6DD331AA5BB94D00B7A26B7D0D23D969AAACC2\nss = 5F40486D6CD463359464296CD0FAB7200E6FA2C896A7AD78108AB279A8115476\n\ncount = 88\nkeypair_coins = E3FC575ED51513E62ABA655D24CD9C8F1C6C848AAFFA946C49A53AC3EA59E474648E3FAE1AEA06E15778F3442223574E9C7823F36CD16C72618846331F95E91C\npk = B5D6022EF207E7629736D614527619E33CB92600A1E39A20B25A5B16EB0EC1070E5D566B28449BFB38936F44721ED428CED5768EE647A771B7D76A30C7E5563B515F5AA89FFE994CFFD9277B0695049C355267B3A07C61F3C5A2C0D4AB8DF76129C19F44F762B51BC0374A43E6F6C1155901B2430B2B77AFC9BA4E14D3658607387DBC2D12B99EC0C0B0C2721AF298A6EBC92A7E6B97BC460674931E21F68377C8303B24CAE8D5AB720C79C4399414A514254603B565397857A7078B36E24A262CF9070A92C034C76614D5AB455B60B3B3388500946677195CD587942342A6FC91BEF144EA412ECE186A422B85A213C43FD0C361AA00698458F5C5370C6C553A9C238201754E2B2E2785BB03053E0B414E472087A0276BF2D805CF477378CA34D8F01C21B433F33B49A8B9BCF762451460558FB9C3CD071E654C250DF04B6541BAA278C1669BB49CA3AB4C78CC92D0137A2864BAE0C904E23AA28395EDCB435D9C1CF742562D603BC61C521145CA16F69192B137EE372F04402527BC557B754E187355A388410751267561A6B1F59E04190EBC604FF64A2B08B244B57ABE84F18938C5A9ECDC972191BBA33915C653A84B1A970AAC7343AC98BDB7BB877A3170E8B1E8693FA5089F421281B5763865C584CFDA6AAD7482D00A0520D947FDDB173947865FE178F9800570D4B2B9529A42A514A8691C8531A271C18E5F84380", + "C20CD9A992051D29B5BE76B2235B511514904E3B284E8854556334515162DB1B09894B18A3127982269509BBC5E8758015A5B810569E544BEF9398F7D195A50A958DD78BDA187CEA0B7B2BCA04E2CD90DB634A3D52B734E224C4C60BA3C8240D7B2755AE5892A09A0E7EA1B2424402C45A0AD59563AB97ED906A1A15B8C4412219203CE6826B91DD00AD602089EBC5163B416C0D02009A7A5440350A00A7B49309CE39BA26DF79ECE038F23F4B4300C01287A51F5FC619EBA04AB1B78E6396BB23C1CB86A0F3BB11F7D31A161A480B8F33734CC63EA7219D76BAB759B1AB3405CA61B535B893B1BF2B678849751A6A4F18923EF44470E543924D0C462D8A078782B80241334F547D2AA474D95B8709747162B228993BA15A0C4FBD8BD662A1A2F01CFA859CA723A011949823FBB55947B9C27C2BAD547B0E6D29665071B30F3C8C536651E6437C0D4A314AB38A8F707928C0C2B864A3A67397A936DBFB98FAB2C0935441B83157D05072891A43573882BE97686534C8BC7015AC267B75F0A79C6991CB6C96C735A4BEA90ACC9BB6BA1B12388F0821A074018909F76944D9295B5EFF73E70AC1B0E1644E3A40685305F8A0626B2F05969FBB4CAE07C61F6213159B3471654A88AB58EC3A648F2944625820F6592C67126BC085DCE216FA708089D4947AB911AC14C00E53782A01580FD967594E0B2B2A3272D590AA70C7A3F419ACCD33C1B1294D21242C739A3E8E577316C23EBD4B4C4D0577B2BBB12CCA71841B54C0B76729320BCE26DBFE5BBC017C92491762A6C938D4BB0099AAEA190813A3A78E5685D83975050D719D6B6A80AC313D3018D25B9054B5013F832C1353401E6CBA3FE527B8D2906871B79836CB35284725E733D8FB60E6A8410E5F61428A3CF9C25FD45802D5699F33205A71D6404704483BD2C82E92BA9457926A45BFA0985\nsk = D1F46E67CC5AEA63CA9EC413938661C2F8156CC79E10A64174774545B597E91A8CADB58DEB15B27F343073B071873870BF858B5FA3AC3689698DEB68C570406972210C2B9909571A12753448E00E6A0C165A101469828E8F60A16B55478C8899D9A38C1751BF220A60A999B0D2A429B375137DB8BC9B85AD5FCC073355AE630100F8FC68EBB8534135590CE22D0A0672AB54936C8665AAF476B50293A32135283777C375767B04547501A53B72A14D3C4DE4E001D16B2B2B598A22D784A3711C39DB183AC82CF895B242954B41C713BF464464917D6B608D21B67B3519A6DF161AD237359E262B95C6BE3A8522B9248346785FD0DB03CD083A21092F4D91AF156B12F4C9C77C11CC0B68ADBDB813BEB21289743758F8136661704D0C5CA9302A064040334017D47815B7C35363F5C730298670536C69C122CC91CDFD18783EFC4C39C8C29CB1023F1488A7469F1CFC1D7EBB3D1CEAADBA3B07310000BD89C043290ABED896E655CB1F43A1C7335AEE30044D9652E6D3B8E394218F63072C7050A2984032C45735A3AAA4108AED8B9A19C13B9BAC28CCB123D9987C45B91E89B7A949B5B4AD56ABE4237F21DBBC53AB651BD4B703069F82133C54ACC1AA415DF9961A4785337535869FB758CD04B798907E36197EA428C66AA516F602404E87341E154A0E09C881725CBF00761FD9645B658D97D21F33059E4A898DEB0C826D9057AC302663897D71567117FC4416C860775B026E51A52663711868777D542F1224B277EC005F2BBCFC0C84146591CB36CABA82692B010DE229797CAC57AEB64AF446A896527BED9B3E55539C0F6A0E9ECA5953890B95B0B282C3A4C46A44A8705A54A8806CCC0D3C736A20D34AAB118813651D85F12906958933D69679D0457A4817DC83B525CCC63E94C1BCB1C869CB3A0BC46D47084481C2563754AA8F44682B870ED04996CB8886F43B91AC8767AE12856CE5B85F55C8802830BA1BABF5797D0DA723EEC24616A195AC809371D93F89B19C874C840EE9C39E7370CA561B6E91552CEA47F1D09C9CF633E7CABC9EF85F89D01A29D9CFCA8143BB05C3015B3C6035AFDC45AC7B08B5406566BF864657BB3A82322793906462C03C20969F76C2C8C8EA2622A373C3E40164A77055EBAE05787965B60A861C09658C32D4194DCCD7AB1DF87826590890B1785F0385B965B5AB3B870A0088696A783B5C7A69962B86F789BD43588705315258C117C4313198AF42E2B7FE39894A86189FFC4E8C6BAC5E7A0F03D86D18089A6999972F309A6DEBB365781F64197165D259BDA98C7A920A9E790BDDC587E7C08040D649B8B08FBBF36D1904970354410BD77B87889668566CDF4A94E1C65B04D33C269C5152B049850857308BA1310283A976A31DB34722E97C97DA85D14372E14A8A95BB45C63670BD7712686200D451CAFE599AB0D3A183D2B0DF7B8FBF0995042BA0CE682EBA8B71DC6C0744262C75B7638B51B9C4931D4F7C842328486A799D06027CD5CC75E4B1B6816C2AD66B86ED047EF978184BD344C00AA1200432C5D142246B883B5B85AD5CC8F8FA994F4A790F3B6C201353F77AA9B7E9BB195375060282B7DA42ECD36295FA55F8B5CE94B812BC421BB5D6022EF207E7629736D614527619E33CB92600A1E39A20B25A5B16EB0EC1070E5D566B28449BFB38936F44721ED428CED5768EE647A771B7D76A30C7E5563B515F5AA89FFE994CFFD9277B0695049C355267B3A07C61F3C5A2C0D4AB8DF76129C19F44F762B51BC0374A43E6F6C1155901B2430B2B77AFC9BA4E14D3658607387DBC2D12B99EC0C0B0C2721AF298A6EBC92A7E6B97BC460674931E21F68377C8303B24CAE8D5AB720C79C4399414A514254603B565397857A7078B36E24A262CF9070A92C034C76614D5AB455B60B3B3388500946677195CD587942342A6FC91BEF144EA412ECE186A422B85A213C43FD0C361AA00698458F5C5370C6C553A9C238201754E2B2E2785BB03053E0B414E472087A0276BF2D805CF477378CA34D8F01C21B433F33B49A8B9BCF762451460558FB9C3CD071E654C250DF04B6541BAA278C1669BB49CA3AB4C78CC92D0137A2864BAE0C904E23AA28395EDCB435D9C1CF742562D603BC61C521145CA16F69192B137EE372F04402527BC557B754E187355A388410751267561A6B1F59E04190EBC604FF64A2B08B244B57ABE84F18938C5A9ECDC972191BBA33915C653A84B1A970AAC7343AC98BDB7BB877A3170E8B1E8693FA5089F421281B5763865C584CFDA6AAD7482D00A0520D947FDDB173947865FE178F9800570D4B2B9529A42A514A8691C8531A271C18E5F84380C20CD9A992051D29B5BE76B2235B511514904E3B284E8854556334515162DB1B09894B18A3127982269509BBC5E8758015A5B810569E544BEF9398F7D195A50A958DD78BDA187CEA0B7B2BCA04E2CD90DB634A3D52B734E224C4C60BA3C8240D7B2755AE5892A09A0E7EA1B2424402C45A0AD59563AB97ED906A1A15B8C4412219203CE6826B91DD00AD602089EBC5163B416C0D02009A7A5440350A00A7B49309CE39BA26DF79ECE038F23F4B4300C01287A51F5FC619EBA04AB1B78E6396BB23C1CB86A0F3BB11F7D31A161A480B8F33734CC63EA7219D76BAB759B1AB3405CA61B535B893B1BF2B678849751A6A4F18923EF44470E543924D0C462D8A078782B80241334F547D2AA474D95B8709747162B228993BA15A0C4FBD8BD662A1A2F01CFA859CA723A011949823FBB55947B9C27C2BAD547B0E6D29665071B30F3C8C536651E6437C0D4A314AB38A8F707928C0C2B864A3A67397A936DBFB98FAB2C0935441B83157D05072891A43573882BE97686534C8BC7015AC267B75F0A79C6991CB6C96C735A4BEA90ACC9BB6BA1B12388F0821A074018909F76944D9295B5EFF73E70AC1B0E1644E3A40685305F8A0626B2F05969FBB4CAE07C61F6213159B3471654A88AB58EC3A648F2944625820F6592C67126BC085DCE216FA708089D4947AB911AC14C00E53782A01580FD967594E0B2B2A3272D590AA70C7A3F419ACCD33C1B1294D21242C739A3E8E577316C23EBD4B4C4D0577B2BBB12CCA71841B54C0B76729320BCE26DBFE5BBC017C92491762A6C938D4BB0099AAEA190813A3A78E5685D83975050D719D6B6A80AC313D3018D25B9054B5013F832C1353401E6CBA3FE527B8D2906871B79836CB35284725E733D8FB60E6A8410E5F61428A3CF9C25FD45802D5699F33205A71D6404704483BD2C82E92BA9457926A45BFA0985149E0B6B49FE8ADBA1217C2C57C83F2B8C5F1D92F319E502B184A65869214F75648E3FAE1AEA06E15778F3442223574E9C7823F36CD16C72618846331F95E91C\nencap_coins = 6E357DD587894D497886BB4C678CF1ED347D1D85BC1540D31563106341718E16\nct = EB8F4303810F5DCE157D562B289E50243897F77673570DF5C856F1BEB2D743071AB087C8A1A5CB348E89078151CE8A86E8F0D6975B981DB9B05E5B2F7C50897A79D14D24C9A2C6CE8A343745C6277E2572E5452D61313C20A9A552BDC542E1566A7B82E940268BA9A1EA248CD68D069BA75DF9D9FB8488DA53855C2226CFD20F0498648E541E1594808D9172EB2C4FB08E3DA3F9650026E4F34F4759B93F1CB68ED3F389E61AEF94C2F793DA0CECDEA45AD01BD856D69BF64568D42D51231F3133B39A893BDC06AD359327E69AF54933AB1BB3448737DECD03EE9316CB8B6ACC1CF0BAB6B03C313121EADDFF0AF11557C00ECF65E675EB8E78008FE6CDD1260D292FDE63B7CFE40E60DAD36D7D72ED6C81F29B39145D73F2B657A5387FC20FBD871E81AEF2AD06A4530C1E5BF00234A092B3FF903EFE6552E24AA12B844A49EC86D3AC1A87974533671F779010A6FBFA5E486A54E0D44B5E71EF300CC66B43024EB2E3110440A1C3C9F70A237D0A710724A9366C23703C7B4E7B16B936AF9E1A60BC0DDAC878F552707DA488B536F34DE7B9051F2999F02FA6CF55F6C7D9A6822D5D9FDB7DF80E91AD1EA7DF5D6E4F022621A6A5BC34FDBA8A1772A304BE808A300C51EE3E2974A48117F3B9E682E8D5F83A366129979CA1A44BB401D91ECC941103F226EEB185181A259DEACE880F72D7A145335BDCBFC9615EBCF06DEC27EFE19C8DFF9FBA16267A8901E2C311B9C32724C7099A917CE78885E74D829BC1D75472771585A1250EB209F458775087FD2608746870E897B1AA889ABA38C9A14D7323FDECCF1E6FCD2CD4237DFCF6000C3213D3E71AAD890C04B0CE3FCD311FB1AC007C5B067A5A7F84C40480D6FB551720EA08584A5E2B9AD475CBBC6E57A91300F4342AD31C4B20F345DE326441BF91C968193556998FF51EAA6B9390DEF76E4758B927874BAA79D376441E67232433769CCD272D467C7DD7788C0A4A99719E8537317FF755C8E148FE5521B3263AC15366F11F8BDFA7013B7CAA5B62CB55D0444E4B075587314E36378288D3AD512CF276C7996D5470FE127E8E55CDB4216B54317F103E133B20EC177169F2061F2CBF43A9945396B239C208549FEFFD58E63E7A724034B58CAD5FB61493B6A67075915A3E492962E9264382A93BAE9FCFEA1FF0C30BE9F521F5CABC8BF28BBED8A58A0BE9F454F4C3C96DE31C5238D64543CA1748B4A7C5E86EEFDBC9A87FE1BCE4A36261E8547465F2B008E58420892902F79F989707693A71AE0F03D54F2B4DD634D032FB03C77CD24C2CF30853FE7CD1352842ABC870688DCBDE05AD5909BFCB3794CC1F8FB7F8D6A98061F3AA965AF50640D1D7F4D29DD0E346CBC92568B9D2D6", + "887925658F712A656CC04A39BEA964000F7A4BDF97BBFDE5D55BC384098231CE774A31E62ADE752EC6D29ED90E8ABDFD6A2E146CFAC96AA3CFA1BA7F33BD8780F7D2E8F858911E29CD2510F12D91E643BF5F449E4D16AB93FA52B06C980CDE2427F098259DAF5C31B18150E88B5E80\nss = D8B6312262738999B5C37EE0249A08736D84FD75A5A085E491F64F7CA14C3E29\n\ncount = 89\nkeypair_coins = 470B4943F0FE7FD0D8EC5185ABA0D1DB09D112934E4FB4787E2BBC6B88466E7BBB02D701FD1350AAB462CB65DAC4B2F75928D378DFD7A0360DFF9185175538FE\npk = C55170FE0945513748C0ECC9098A02E9D51E44ACC267272633645AD562816D479466B54D2150AFB682B4F32265F1F4BCED21CAF7C7980105B08056CC4192BFE0DA9AA5E00864B0A34712204CF6AE82DBAD360A7C840B4804826C39A59AE029056C1B2542B6A589EB47C14A70ACD1731BB0A4D657656915B91D696B2F92AFD82245945C7B77958A5B6A3B6CBB179AB83A0F32591B757E8B68368D6A5EE63490604AAE70EA7FB4619C91A455429A6B195214BD28BC717385D3CB8235991C05088C7939BF852125DAFC3BC368479165438092B530BB2B869246988B8F85425A2A523ED108C6D2F54358580944D64D801078A4B621F58012F9D8A17A92AB8AD43821E24E2F87BFA844ABD0C6B08650AB76D5397F2CB0060B31AF689FC8612249D46374848F496B360E733FC991809DA804DCBAB14030A4BD18CFE37B41CAD91A66A263437B7DDC2484ED55ACB16AB95A1A8C9345A898E89C37248F9768524C616BABD17A8DC7924F37345DCC32DE04273C5A0AC038A133BA01CE2481FFB57BA153826A7CC4123570293C82082B6A75FA05031CC7FDBB9031E10CA94AA283AA26EB3546F894B646B9A85AFC5DF3B513DB522EFB340287C64492AAAAC5FC25547129B56B9541EB0912222C2E60A11B9304692A749BB174CB47679CC294253B0F768A7872F698C23493FD908C9FF95F9275551B947BFE84780F86C1E0BC105F6CB7C9430369B58BBB07B3B0C87D8541618C76A43D52C98A08166E052B4487177AD222E6A002F7FA3F3601CF1EF0B4C02AB550D76447EAA695561118A46301B544B493C368B5B77AB17C5AF4543FA6A8C682A46AF39CA48046B1529684A53D0E492E1B8596F55334ADE15591DBC4B411537C88A5113458F187A6D77278675B0C85BB017416B6E9543FA1B924B631AC1DDC5556127548FA8CE0C90125139BDF13428E2C7805607A44251A5F289BE4E3A2C3C95C5B5CBF7C87B4A7D87A39A44B672BBE9AF8343DCB062EA3A039E949A7F151C8900484368F1CFA385BD13CF55685BFA4B959F8634ED7C437FC9C044B401683CC7482722C98583DE24EAD414C1833858BE987672C557DB87AEFE4CE2DB8A676D14083462DB35862DC0CAE95F88EC1F59426FA2E24E9CFC54813BE07C98F78A87B9703276B455E15474D7A283D5738D4B639369077E7790DEAD3336E1467C871A571080004A91162FCC31D2912646A9406902248FBBF28DAC4343B081C327743335B9EFA4B7FD13D5177064A5B6E8065B64D8C6580B47E6472C8F5139268145BA7A23A02F59ACF680692B20EC2DCC087A99BE036BF7E9C8C0DF15F168C508AE28E33D951740A9B0F0321E35CC01328B7BA860592B566CB369B21F51B7AE583D26652DA729F07F5B8D59CAEC65AAE42C7C9CBE73C68504F26670BEDC542FBDC67A95C9F2DA1A08E559797170EE63147A4688C8E101E5AAB48A4D1862506CFCD297C7EA61A9ED4A54FD3A28380292FC1570FA2AE43920B0E940675B60534425C69F35BBA714C88B3A6C323090B4C56B7F89963059F8CCB0994373FC1344412F694175C2EABEA110E035BEE6ABF546396D79472EEDA164BF49350F54C2E75754F502DE4A42721B37974A8266C49B57C6837B38A28CA489F02FA05307D7163B35BA6A4C5024B70BA27DB0DE8D64BB8B55C83BFDD24\nsk = 09D0009AA9878C697E2EAC9CEC9675A9570660346547D7AA8D4548E3AA917E238CBBC10C389445D15714B237566CB44132D6983C9610E779570B74482D5BA2742A1BB51C68142C1680B800F1938795367B6D8A56C32A0D77922C78116643530AAC01CFB2692F4BD6BBDE615A3335B397487DB8A1175A043719EA58D0DBA627D7C8511468B34442879CC227E6B39E084DBB68BE71CB988766114A80B1979118ECA08217540F032966688C99FEABA06D0A0A1E701DEAACBCFF9C2F2948A209AC8EE505C85FE0444B5C70D067100B63CBD6D98F9AAB73CB06C97FF31D7AA0CE188707DDC5C07D495B27957B369055650ABD5D9B9F75761770920DD0B574A5841C3BBC9F6F1AB0179C118C7A83B2934E950B3DC732C84264C66FCB0DF78975FCAB5FEABA4E6AF97131696A0CDA1CC9E2C40A266FBE6667C1ABB361F063103311A792B95CC525FF872BF3F394FFB48B30B334CA02BB32A901E3478F811505DA066DE6A5CABA425DF83C27565CA48B16BB2855A797A72DFD57615D5117B24374C2D306473A349521A8107790D268AC6B5813C593CB9E8621F8C68FD2E8082C491C95C5AC74C86DD37B0A4EA0CB66AA576AF50FBDB0A31235BDC9E8107F1859ACD2674FC72C6669A3465556F90269CC30B0A8F53563378EE016A7ABCB5460D5371B01754BD7373C2314E2A42D98636112F3CBE0638E513B38D4850AFD6A1D3D485308181FEBD88B75F532E4541965E0BC592885FD1C1B3108C33F74725850617B526AD4F2C8CECC19B0A0ADE15057C90AB086C26CB014BFF92988903BAFEFA3C4C96CCBCEF178F988A40D339DB324257DE69A119125C52A4147360B1274808299446EE768680170457ACEF18814559996FA96B418275E031199E0D578E86C946381C369AB839B1A75E9D6845C98AECA24253B3B0F00EC7E92CC6F6A40A4D8B04900CA3E78CC7A5C51886E0901A908BF0A08947E3B524F1C606B055451AB6EDA2BBCF832510B3075E2CB0ECD493B71102F4EC69565F96651A3A2C3B738C2D55805798253E055DC8508B98822E6803785130D22E494B50025B0CCBC69667013C4CE4A140C2E9BA928D41D7FB5237DA8C5AC0310EF5007B2B0C6737BC17A747C5A2C1F3C1166BC2B0AD7AAAB1D870E54694C1CA293665286C4EAA35D34BD6EA7AACEA04871C257CF63641264AAA0DB4F65337274356F71D02310A57E44D23EC6B4185BC5CB45A65D3B592AF3138216332060264A6E53702D766D0F4A0F14F70B75B780688591CC414283A59AD2F84D665354D71C2AAA1C278AB6C8BA902283B286F82761906C9B2796595BF5AC01455ED2B43607207A30C949AFB1BA5C50659143C98237279003CA820B4B5963B0882A088CE09C99F4A6368971A7D6885237BCE28580E2EC483FA305FFFC0ACA173A89CC41727A55D4E29A8C410B3FE851B3D58B58C31920759ADA529DA162CCE47618B2F715F3658D71F5455365C67B04748B371A5A96B75F342CC4C031C713C04D2B6CDEC0CC92B7596BF4A2A0C91537A0C8174B3456489D2DB70D3AF2995C4830245120E9411E92ECB2293700973386983A0C6591CD5EAA34D5CC00FD672D20A604E78696D5542646C120E02C8DC5162630E71465ACCBC55170FE0945513748C0ECC9098A02E9D51E44ACC267272633645AD562816D479466B54D2150AFB682B4F32265F1F4BCED21CAF7C7980105B08056CC4192BFE0DA9AA5E00864B0A34712204CF6AE82DBAD360A7C840B4804826C39A59AE029056C1B2542B6A589EB47C14A70ACD1731BB0A4D657656915B91D696B2F92AFD82245945C7B77958A5B6A3B6CBB179AB83A0F32591B757E8B68368D6A5EE63490604AAE70EA7FB4619C91A455429A6B195214BD28BC717385D3CB8235991C05088C7939BF852125DAFC3BC368479165438092B530BB2B869246988B8F85425A2A523ED108C6D2F54358580944D64D801078A4B621F58012F9D8A17A92AB8AD43821E24E2F87BFA844ABD0C6B08650AB76D5397F2CB0060B31AF689FC8612249D46374848F496B360E733FC991809DA804DCBAB14030A4BD18CFE37B41CAD91A66A263437B7DDC2484ED55ACB16AB95A1A8C9345A898E89C37248F9768524C616BABD17A8DC7924F37345DCC32DE04273C5A0AC038A133BA01CE2481FFB57BA153826A7CC4123570293C82082B6A75FA05031CC7FDBB9031E10CA94AA283AA26EB3546F894B646B9A85AFC5DF3B513DB522EFB340287C64492AAAAC5FC25547129B56B9541EB0912222C2E60A11B9304692A749BB174CB47679CC294253B0F768A7872F698C23493FD908C9FF95F9275551B947BFE84780F86C1E0BC105F6CB7C9430369B58BBB07B3B0C87D8541618C76A43D52C98A08166E052B4487177AD222E6A002F7FA3F3601CF1EF0B4C02AB550D76447EAA695561118A46301B544B493C368B5B77AB17C5AF4543FA6A8C682A46AF39CA48046B1529684A53D0E492E1B8596F55334ADE15591DBC4B411537C88A5113458F187A6D77278675B0C85BB017416B6E9543FA1B924B631AC1DDC5556127548FA8CE0C90125139BDF13428E2C7805607A44251A5F289BE4E3A2C3C95C5B5CBF7C87B4A7D87A39A44B672BBE9AF8343DCB062EA3A039E949A7F151C8900484368F1CFA385BD13CF55685BFA4B959F8634ED7C437FC9C044B401683CC7482722C98583DE24EAD414C1833858BE987672C557DB87AEFE4CE2DB8A676D14083462DB35862DC0CAE95F88EC1F59426FA2E24E9CFC54813BE07C98F78A87B9703276B455E15474D7A283D5738D4B639369077E7790DEAD3336E1467C871A571080004A91162FCC31D2912646A9406902248FBBF28DAC4343B081C327743335B9EFA4B7FD13D5177064A5B6E8065B64D8C6580B47E6472C8F5139268145BA7A23A02F59ACF680692B20EC2DCC087A99BE036BF7E9C8C0DF15F168C508AE28E33D951740A9B0F0321E35CC01328B7BA860592B566CB369B21F51B7AE583D26652DA729F07F5B8D59CAEC65AAE42C7C9CBE73C68504F26670BEDC542FBDC67A95C9F2DA1A08E559797170EE63147A4688C8E101E5AAB48A4D1862506CFCD297C7EA61A9ED4A54FD3A28380292FC1570FA2AE43920B0E940675B60534425C69F35BBA714C88B3A6C323090B4C56B7F89963059F8CCB0994373FC1344412F694175C2EABEA110E035BEE6ABF546396D79472EEDA164BF49350F54C2E75754F502DE4A42721B37974A8266C49B57C6837B38A28CA489F02FA05307D7163B35BA6A4C5024B70BA27DB0DE8D64BB8B55C83BFDD2429B1BFF7F12EDA28DFEDFBF0AC16E27008C9FDC62C35E53B28A312BDC91C40BFBB02D701FD1350AAB462CB65DAC4B2F75928D378DFD7A0360DFF9185175538FE\nencap_coins = 0C7068E5864FAE7D1ABDA0D0A5C1E62FE5E1CFC2C96D82ED6EF180815DFACC66\nct = B54E1C3C3F39EE3B62CF4D40392EAE63F9C56E93A9E80FF9A6A4F00A6568A48199F8FA3BE3FFD3FB14D41B3590E18C972714A93164137D24E98178ED4DCFE85CC754BC6456F17137C9037C8D1A900BA2487246FEEDAD3CA9372CE99E79EEB4DADBCB6595FBC4D3D6ED9CB1D0C2747A8CCD5708AFB294B1097953F680398212738A5AC9C01D0D621D31DD77DC1798C019D627B9AF416980E9076D04192E9FA6423DA230C4C676627801FBCEF08C21842DC0690A7175DBCA0C3432ACB034333F77FDE0CFBEFFBE3181D740F692FDDC67A6437CDA5DEAD39C8F2F53797F8273435413943DB9E8764B7475AABA2EA8F1C1", + "DB11F6A698FF10242D544FAFC476B7013EFBF8D9B4B4F6F239F003C9325C34B8B7F5628202CA228FB0A5AEC537127C4ACF198CE74AA99B55994FCB9C91814EB8D4DB6027CC517FBB779628CD19B725BE7B688907DB60C5E91D0AE74D60C674DC1C329FC3CB2F3AE6652965590D329DF95EDA0973CC2E0837223B7F76D8597701F5326F29BAD1D625DAD4628E0109D0F12908CAFB6A491AB87036DB388FC9788FA67BCB206958E591A7FAB4C46980D28EC37DA2F65DE513FA73C99024A81D3A2F93C61567DEEAFC25EA9A7EA1FCC172344256DDE171E7DCC3D051AB12B611D1484815789E91A50E543C4DAF44373F8D79FADAA4533036EDCCFDD0E26F836F02EC7DA2253EE51EAF0BA635CD94C2405B61F9D9184F1D6E62B8682579DB6C7E0C430E8AA34AD933892E75C6235CBB484512C51DB2CEA68675B3BAFA95B9E6ADCC32584713BE3F43921A99EB0ADFABB475FC4E30E2AEB48BF34548F5DA55964F95182403974C216DB2E3A5743C74DFE3D3C2F904A41529981B917C6876098EC71C458110D185BE533EE5D62ACBA06E678BDB1ACA43F056983F48AA018964781C9F0A301216281780D0C7A1543D1981B8F7EF14DF8E2ADD9E3A538F98C6B931A11CC87118B12AA91BE766B7493FA5819BA0E5979631F9F20DFA76BBAE028DB1DBABF562ACC9B2DFB856401435E2ECAF2766EF95205BC01683F76E02FC12F1154DFE4C9820F8C1A1360B97F228A034B7B769C79035D54ED53A4E0B582AB880D88D3369605552208EE85A806424E29D6EEF20D0CBB81538C99D7613D40671A6ED419C196E4D95979DB1E817EBECE715029B681BA2B3EE1A786D5C6ACA00B12EFB2DE288CA5A221C9B111072850F5FECE28ACF544745D3F3DD23F5A83D5D0385BC2AF068BC0AD77E38937860260B44C9A0B43156E84DEBDBFD1605A92620419F56556846F0C5952DDE73594E3EFBA964F02871806D6CDC1F713D4EDED8E75A0E830AF33623915D4D88A1DFA8EAFAAFED26AABF786E063AE18B06749A480BF4C28C501AA3A76A5A289844D5F01211E018B381DAE15DF195F2891AAAFF5A42092613317BBD7B71A146E3742922A0978E181DAD65365980995CCB0CAB8AB8DD37115EC0AF0CF6C472FC083511B978051F81C8DAC92808A2A0204F473FA658107C6631AD5A7B6A58F331D8DE6446E36C482F820DF6A254\nss = 86D1E1F87406302C1D044F5C319B2DDA1D3E0EC5CD071A42122EFB684839665E\n\ncount = 90\nkeypair_coins = 6DF4385DB978D27B27D2AA5E452E4152B36F097503D9581AC3390105C5727E7D165FD0A50A39142F7C6FAA2BFD417ADFA4224858281696965772F448C7AE22D4\npk = D3B1CDAFCAC7F6D08082DA095A7658B3A45F7BF717D4B80A3A050A04CB23E01103FFB1731B2C35A9DC23C4341976B188F5226459A02D348BC9D2064D574040147B41612914CFC2954E4190905446E5AB8632EC96145B917DFB4A9DAC62B18CB0120679E739901D9BCA662024335A083911AA53828D6D79C948425422C32EC471C2FA843B54F6731FC401475612A135AAE4B146FA829871C0654C075DCE41190483C3EF60B7336200A4A39CFB6787AC09AC85F4CB3DBB494727A20ACC8A1CC9CC765862B0D402147A08A5E4AA6E679D482786910399BAC7A36EFA477236B1A01BAF452BADB3F184D7D6AC6EF64CDFB89D1CE66A059A4659D8137DFB3C95CBC9E8D86E064CBFDFA50C68130A8D82258407BB7B926F7A802B53209F3AB78784102E88FB91E6311D496251F7B574AEE5797E881BA1DB16AF40281586267D826C0F33A0518C26E6533E19EA0EBF29474A131D882A189AC03B835C16C34C9AE7A1C4D9F5159F85B8542284E0409DFB0876FA6488E6519867B5C53896867772210E95399A1733D2E78532B7651CA9704AC063DF086CAE4AAF65150093F27054F34E2849449C7680EF1CA1A0AC399A01A9B74484A967592CE85086230582518414C247BB7680ABFC2A04A35A20A851B73548A8E4CFC2B84CB5EC24108396C28498A6614790D56BF8D1B9F9E40BF574C497218EEBC06217C9BD361BAA5D0715E666C2D3D299346A79BE0BBE4B7CCD49F948A60438514129C126AA1F3875718922C5124728F09FE5437AE83194DDEB81F0D744FD2B9B59FC223E2792501B4932924FACC16C1E5444DBD6A823016B3AFCB46EF59CEEB49728AC541BBB6BB64B7E196C59910628C8CA22B1138D884842C387B594B544E5D99784B06ACC3B5D80BA81CD34739A20AF11F7735D645D9FF25C07F8AF9B5902524A1953CA2A58D6B796E3695A006AD6C703DD161C12C01B9BC995773C5D2CE59470C765C3F5401CC07885C77BFB3C15D7F766F0EC7CB3F601DBFC210D599093A21C87D82002212B06898A5A878D4EE913EB451DCE14A1BC424838D4797ED14D9EEA2473B304D6624F1725C820751A9D313CBDC79AC9A26548587FB41371C5F48A4DA04D37AB7189685AAA054853F0491A0388AE4B7AF4259969E29EAAA2B2EB9503518C7C53BA0E6BD20EA8355A63F1C481EB5E662A0B792014AE4C0981274D902759AF794338072A839B05D9D42C1EBB1A3DA33B54066D1A63024A3B1D1437B37A83BBE816075CF416275A6F58336905937105E63A1A017F87911CF0B41DAA41A5DAE3856A606E2A9333176628198B49D2517F54A9182E4BA877760517DC94A079538822251204B4C4A2382CC7889BF84923C09072F86BD1C5879ECC3A37678E6D031568C24012578DDE5CA01005B2DF71A4A0B0455A03AFBE7C366BF1B086973038FB5DEBD793A303B4C867B611772733F66574CB0D7C303563C389B2F1B46E98945A94B142B2B0D647521F4B58F12326FD86286A448909191BC600BC7578B0169A45C071C77F280C583788F9C2AA1200A73431AD56D23B20471BB67A627A594BA9922B1FFB75D2D030432A954C71235A9278857C3010A8A8906C070B77060FB831842140770ACB92E856C8A95E163D5181CAAD6A478AC9AE82EE27F7256F4D4CACDDD43F45CFA4DE4DD067CDCA\nsk = 96D9C668915384C2847B7991E5F557949C99A3D46A2FC9AE7448A229A89EF7F405C2911777FB1E2F44721BE8CC326A80E524486A16A083527E22D51E4EF624B02625FD6A857BEA2C0590A3A4E39F0E041B7284BCC501201842345ED5CEB097A5A5F730EE53176F8ACBF9E03C6DC4A069718DD64C47E1D17323D29ACC630DB2DA9922804802CC768070245380CEC6672F6A5A9D14E4012BB13CAF8C320A320ED63B0591087A0C5A76EA29B57D5C997FDB372E9A57E3F4827A2441CC485718A421D3C45BD0426A87589362E52953822CF785802B2C6AA441ADAEF93DC6451AC68A9867C9B9703ABEDCAA540146BA6DD8ACF7DC317A82A4C1396267032FCCB53BE9306E20E4713B82842E03B7FA984E5827C441E293352B2E2A51566EACA8D9C4206000655F761729020F7FF9B230D6C4B986BC94551175A8ACC7E2A2C174C500666D3CF021A9B40F1A465447291F920865AD16240309B5C838A2DDC5BEB8AA11BF987AA9D7C082E8C55C63AB01D0664E545E505B4AAE50606136B6B01499A5BA10174852224AC6BD242D5D21758C4342F9A02A3D46A9A845112ADCCBB73488CFE3055CAC398B0245C467B94EB342E1845969D70511BC7100F886308CBF21C13840BC17626AC93DFCC4EB22BA18F62B15B521539901166598F25555C32587637A341017885AF1A6D1841AA1C747D918253E1C873C2CCF292BAD45805D8946B00DD23CBDA03878F66357D175D67A1B743C1E5428CE90661067011874B062E9AC8A0F726B55B76627C53338549C3F2605840A11D5606ACD104BFADCB51253AF718835826628235878D6160F15033844D76AE946AE6C240053C2AD6C3A3D72E721D9565A6C79B56840CC5A878C6A4033BB9C88DC43B130348082E41C269CC0D3B05FFE356B5695BB01C95F8AA9C30E50CF31F11419E13ACFFC7192B75948E06A68458DB80A8F71573B6EDC1513AA5B060CB77B12C62761BC188159A49C95180249B3E35C3100635012637CB9CF17CA9936787AAC954BCFC655AEC8B4215861A7709F2846A1C14889D0384591753E3F19CAD2236DFCB7B225ABC430A7B61E6018AB30146D60A6563B2F980ACF66186FEE70A458750CC62C433E651F447CCEF8A773BB2731A866832AE535F0D82E605371F6B35FD6FC1188A52080C609BDD8748C321CA37190321B286C849D35224BB5107D83E2827EF0C63859133852630B237247AA8C100678E43618289239EF19C99AA6B9156704643285BEC89F0B0C21F3A091E2063E5D3029F52C33AF97529E701298D3961F492E6B731D4E2064D034533F4611FEFB64F1899EF563AD71A52E20B199F0D80C557CC8CEDBA3CD1746D3A6AC2E697637F08A43D681ECE3769C8980C76A26ADCC585EB1194D28AB163ABA5563A5C7985720248662BBC21470022EF4110B33B6B8B744A80AB36D0A9B0A7988A0C98C6A597F8CDC76791C467B0CB53A020928F7A55981B520017BC06B36D10A21433797C15124E0892A81230BD6BB4774D46F73B874602588D3F8966469194041BDEE87AC54059458B19724949E7998AE8018755D491BFFDA76A70A64EFF902A4281734A7484037C739B7BF71B658B779CF6370420D2073FB820BEA1B1DF29C3B12C54ED3B1CDAFCAC7F6D08082DA095A7658B3A45F7BF717D4B80A3A050A04CB23E01103FFB1731B2C35A9DC23C4341976B188F5226459A02D348BC9D2064D574040147B41612914CFC2954E4190905446E5AB8632EC96145B917DFB4A9DAC62B18CB0120679E739901D9BCA662024335A083911AA53828D6D79C948425422C32EC471C2FA843B54F6731FC401475612A135AAE4B146FA829871C0654C075DCE41190483C3EF60B7336200A4A39CFB6787AC09AC85F4CB3DBB494727A20ACC8A1CC9CC765862B0D402147A08A5E4AA6E679D482786910399BAC7A36EFA477236B1A01BAF452BADB3F184D7D6AC6EF64CDFB89D1CE66A059A4659D8137DFB3C95CBC9E8D86E064CBFDFA50C68130A8D82258407BB7B926F7A802B53209F3AB78784102E88FB91E6311D496251F7B574AEE5797E881BA1DB16AF40281586267D826C0F33A0518C26E6533E19EA0EBF29474A131D882A189AC03B835C16C34C9AE7A1C4D9F5159F85B8542284E0409DFB0876FA6488E6519867B5C53896867772210E95399A1733D2E78532B7651CA9704AC063DF086CAE4AAF65150093F27054F34E2849449C7680EF1CA1A0AC399A01A9B74484A967592CE85086230582518414C247BB7680ABFC2A04A35A20A851B73548A8E4CFC2B84CB5EC24108396C28498A6614790D56BF8D1B9F9E40BF574C497218EEBC06217C9BD361BAA5D0715E666C2D3D299346A79BE0BBE4B7CCD49F948A60438514129C126AA1F3875718922C5124728F09FE5437AE83194DDEB81F0D744FD2B9B59FC223E2792501B4932924FACC16C1E5444DBD6A823016B3AFCB46EF59CEEB49728AC541BBB6BB64B7E196C59910628C8CA22B1138D884842C387B594B544E5D99784B06ACC3B5D80BA81CD34739A20AF11F7735D645D9FF25C07F8AF9B5902524A1953CA2A58D6B796E3695A006AD6C703DD161C12C01B9BC995773C5D2CE59470C765C3F5401CC07885C77BFB3C15D7F766F0EC7CB3F601DBFC210D599093A21C87D82002212B06898A5A878D4EE913EB451DCE14A1BC424838D4797ED14D9EEA2473B304D6624F1725C820751A9D313CBDC79AC9A26548587FB41371C5F48A4DA04D37AB7", + "189685AAA054853F0491A0388AE4B7AF4259969E29EAAA2B2EB9503518C7C53BA0E6BD20EA8355A63F1C481EB5E662A0B792014AE4C0981274D902759AF794338072A839B05D9D42C1EBB1A3DA33B54066D1A63024A3B1D1437B37A83BBE816075CF416275A6F58336905937105E63A1A017F87911CF0B41DAA41A5DAE3856A606E2A9333176628198B49D2517F54A9182E4BA877760517DC94A079538822251204B4C4A2382CC7889BF84923C09072F86BD1C5879ECC3A37678E6D031568C24012578DDE5CA01005B2DF71A4A0B0455A03AFBE7C366BF1B086973038FB5DEBD793A303B4C867B611772733F66574CB0D7C303563C389B2F1B46E98945A94B142B2B0D647521F4B58F12326FD86286A448909191BC600BC7578B0169A45C071C77F280C583788F9C2AA1200A73431AD56D23B20471BB67A627A594BA9922B1FFB75D2D030432A954C71235A9278857C3010A8A8906C070B77060FB831842140770ACB92E856C8A95E163D5181CAAD6A478AC9AE82EE27F7256F4D4CACDDD43F45CFA4DE4DD067CDCAB990059E901097D00E0EBAF40C5D5DAB009C66798489D357E760478CE884CCE5165FD0A50A39142F7C6FAA2BFD417ADFA4224858281696965772F448C7AE22D4\nencap_coins = 5486A0032681FF89526326CC4BC085B8023614DD1621850619C6082483D84C0D\nct = CAD5FBC2A11AD5FB386F6521386B300BA979BA8597A1781B7FDD605D3121C1710E5F586061D7D508DD16EBFD08F903ED5D796F4ABA4311A58BDF08AEBDFD0A54B3F91F570CD55A56F701F2704FB09637DA738C04BC50A6342E6ECFC5E8B53EC5DCDE88E3420E376F36C4F2940052AD08D981610C9434F37A70EC0698E98B3664B8581BFD91B0012008214554833D28C0AD2B34CE331A4A9C1AA25E5416509ED7D33C41EAB5E7032766A83F3966FEBB4076EE83AB8CB4A167010AF557C7E135093A2675CBC2562F607F0794BD63430AB6D7BD0464CEDC2E45FEF21C427D665DE5C3F60478503D72534DD372D57E980DC88CBDDD5EAEDECE2EF488ED64023678468D0D53B107AD1AF7CEE33A34ACCEFA56EC40E2D34A747921DAF7BDD781E62375E6D294289C7154DCD0716D359C24B0933AB7C83D2C0FC8BD69937D8A3A01202D07C4E37918F84572A908B2C57CDE76A018D576A8967C0FEA971FAAF8331AD5ACF5FEBB84C9479813EA56F9AF3F8B0258657251BAC38B9741B359E83CFD7A6163470DFBE7EA06F5BCE1AFB94BF1DB2B82E619A214D63D0410D0BDC27C2A718F71A2449EF28842585868C3A15AABAA40DA9C48E02182E70033AF35DE4D8E5833EAA1114D7BBDB70B94C3E5C9E9D49B75117EC292B2A5D25CC76F71A697A0659CA6D494FF0D916A752F33238A06012CF1C259FF061813B3AC88662A58CB3D893617CA002BBD5E3AA8052B089D9DD628852BD1F4C43EA00A3FD1CA6D3897D05C040B55F93A294F56B94CBA32701A6D003D30E8F9D786FEA4AAFBDB57D5B9E1EB6644E5A6B8C6C49A10D5D0DCB818F04C473991F92A541738306CD3C7577FAF0AEF6C1F8F6D95E5303FBCF94908B90BAE9DB8C33A57948D7D2165AF0688425526CEDDCBD8A7837E626A7191EB101FF3BBD4AC6D6690DD0DCF76F00D1BCD9BFD9E99480B5247D370C361D1816B1968ABE7F70A8D74272B20A79BF363297DFE4A6C7B021C8F8DCD031754D78C685AA86D5D246F29DE8B4C2735C19A832AF76F689E3FC989D3CFF8215579CCB26F92D7BA3CA95CE191D7AE20D903DDC9C6AA84D9E6FB90EC4103781FDCC79E0E728A318C8D12075A4A27C005CBF440324B86D99E0A67387896D8CAC3AD2252CEDC3490A1C7230B515BD9CA9BB08B063143AA15A59B710631B39FC6EDB716D9B74F26DEA4EC9F1A6B2094FF5C7A799CAD7735E3B8E90181CE7D05F28E0F7FFA1B92EF678B700EF90B0FEF3C56AA275E4F07060E486E2CEBDA5FF1BEBE0F53A8E1FB72486875CFB201770CF21E5F9F350172BE899FB7DDED9BE2F7EA4FD28E76E3D7DBCB310D62A2572CA9A3DEE66654482443C90F8F05768568E4288A4E00C5DB5E5EB5411DCACEDAC76DE763A0F8E906797908930DCA981812172690C65D77912A335EB1A79A53BFADD49FEFDDBFD4C1093D61433B469267E0D15BF04224C6A12C502D1E9C8E2D47E981FBB88953A5D501B0D3AB47981AECAA6193028C1BFF2A780A468742DD1D24AD6D461645900D990407C9D2763580\nss = 9B892665A45ABDEA0FB08C9F1DAC9EF5B9E49EC9E7C9923340CF344C2C1CB112\n\ncount = 91\nkeypair_coins = DBACBA825728444921B227CDBA54446B3F6881B47BE9CD02832F78B023B1BEE0171EBB1A64C173B3D4D997C12F734D2D57FA2127052887DCC6461FCC23B66FEC\npk = 112B1DD09313B9A25B7094700639775F89B8D0314EEF0186ADF7CEABAC36CC9292C270717F27CAEA51B1AFE1CFE6B6A1CB1A7DA53C6715C9C9B2694BD5A581B733AD4841B229FB7A17BC213B969935C672D0993A94EC170BDC8B7C800E66BC6514F84FBC81C7D1C9417B79A82E5B3980ACC792A19C46D13A2E75A3AF791BEB401F7555793D94C0EE1B9E98A5B6C52777E537BFB287268CA9524A4438AD87A0E85279E474C5BE7740B7867D8B04781A2436A8D343F62274E236C736DC3C59D5B326563B9C86798AB14A6C9A0E67B36DB89A82AF690DA7016418BA2D6C435E39095BB81A0E49C01A73A31EC9159844D1A3EB233D16B932919421E6A342473A71DE629477183E8F34B2B7C8ABB7A3B6E516107CB5229D780B93417F9BC94C38BCAA58F34DD88835308C742875CCCF4928122199CD932148F48A94C5C2252295890BB4645761D3C2C0F33AB3E1021AA56B573E9C6FDAC37C83F678B97148CE573A244B0487F3CF771BC7B6A13FE53A6BA58854B87A67A6A17D6A301C85F7C061071B4DDB27B3F404DC402EBACB8254A0568D48B2D299BD831188886A65AEA5CD8D987F6017A2F4392F455C2B4F9B63E6CC1A27EA38F2588B0F8086D7A5C5E4B05B76D2B8918820CB8851704CA6D730861B512FEFB0A76B61401E23B01EA710C5E3B73FA716DFA6408A635423C61372592DBF174D6D811EEF7C4D885BCA5FE669233A141E43810AD10235CB59F824728BD7ACF17765BCD354A493AA60438F07D266D728B640CB07D50275BC2605FA6C964614B2C8143B37B184F3C30668662149BC18C6038706C12F0D31B896B69A7D588D0004497E4808D8C12253987F000168EA758A5B32C195F03F23A07C5A546A6607084CF79E073BC6CC1CB372E385CA827C490A42D900035BF735C6242031B8332BC57765ECCE4792706F1CBA0C7CC390E7BD3595AB876C4E397C58FC325C9607B0EE39692C31730EB4744E967E7FF8139FD1A545622EC870516B2925628BA782CAC845B2429C3CC0EBF7747F414E8D35CD4A91C959D2276404A5DF4790F4363104E6A0D1D60A48B65BBD92B417B51A5338CEBE36C0F218BF27968C05D99947E9B44B4B5B2934C538F85CD7C8B9E3C31637E14C5C0279CDD6386E20CA89A53671FB2F04249565491AC2F900AD380D1A68B67693B185F26A232AA1B43503398002085713CA4B2F94CBCF6E837B020404B7F519A2B520F93B901943C918393F26061346A0193CE9BA8A48B5C4B01B0EFA231EBA0528C5B38CD32CD5D22586494734FA746B411759303A51A12EC58B03FC99A1EDFB1CB01375032054878A6EC9DC4425945AAE387E7FC6CD399C90049854CF51B3DB690EB78A0A2DB04D05102DACAA9834620ABA427B5733BF1D1693643C88BD265AF0280ECC66344B81129C491B3998C6C70CCF03257C2D06115B72AEC35B4C8774CC7936C578B29FB3B0A5C66709363B73F41B08DB919CBE57AD817CBB5DF62B7836AF6FF4AB8CBB07C9FCB7E3D601B2117E6A7242ABB24EA96CA867B597E9E9B45C01ABA9B54D2D323DF8B38D3D37B72C2790E1041037355F274CCEAC2714A92955B31C55D4903A85BCA55B2BC22C536AAB22557D912FE2234423E7BC0894BB5F846A2DBC4A0DBB11C51840059EC11BF6CEFA3AB473E1CB0F0BD17EE0BC3C59\nsk = B1C127D24808FB2B9922332832131C4FD67FE8A1A070AC8D17100BF9F6291EFA0BC8114D98F65C8F4ABAC3AB17B4241DECCC37688B881BCB68503B54379838BBC100B5BAB306327E7965B694644C470A5148666C7FA89872D39AFF60BC533C83F280ABFBC26F073331EF40B694AB25FEEA5B2F55196798B70681CAA21537DFB5746C66129775852E5850F57C2DB2E8A0E90530A57B387B1C429101D04096C3E0BB6E9AF19F83B1B0B74C47BAC678B0F2269798573FBCA5D8E687965B13E495827ADBA63DA8A17564A3E68037B3A4991993401C1C6B149895FFBC03760C13595035A713140EB7A42FF6ADFE6BB371C9AF5A686EF858A8FB7A63FA137492B53305685205B08D44A3AC8F8948F2B7BED9CACE27AB6265722D8F2950E0C9ADE053A4C4CA8E3F80A907A39E33DB78E6065FE9DC050A5A730595AE5EA32E38C512EDB79DCF345F1D9C238A1732C552AB8DB2CCCCD11822972896B323CC43AA03633617F82E89D63D4A1003CF9C5CE3379B1D53A63EAC57ADBC91510316ACDC30FD74A1A2E6C23584AD1CB28444F9231661079B0913E20B3278D8A2E8B18556F336CB750694066B6C82C5D267A903B624CD440D8E187D9E438D178C8394706F016B835E1522AB6904F80CC24358B7DD3BB271039ACC174164021E8A522FAC473054D5B4CB3BC64BB107C6B637CD6360E312A85A3B1E3D2B64436A87E81016ACB763A23CA9B7463023148B0C4888BFB18D9441841F723B9436B77B09C79FC714385A3AE97B5BDE0A2A0C541DCD2B668C696281389EC270BC6D088FC42506CEC85BCB4B611342AF0A61B1B9D75E0DF43BE293CEE6EB0413363716EBBC48EC6C361A48B9D871BD5742FEF2AB286094A92B508CB794F2F69A8EE15C2D748D8FCA8CD2284719815E75B3B0DF76298E48280BF530E09A34D166CD5379777D472F0994BA8E5629EA7691FB973F45869635B61B277C375606B911AA1228271C85B047942A52187BB231412B50F5BE423476720240E62B9D3CFC5B7AF5CE9FB38E03349063741ADE945E994A2D6492A92B1250880318B9B9CE845BA29BD3733228AE960663050888BB98A0FDC21D6FB34CFB5C1AF6D9B98ED6AE454C09B89B6067401FB30A17DD331A845C713715B5BD4A087BBC14CBBC9D2EA83D0F9B0D56D939D01B7D590B3082D2405A20724E2C44B5123BC1407B11DA3DE5889AC52B7B7821C4AF1303D3959EEF3888B8847F3E0695B5B844E8E3C221718A25057E707A50E0159AF4462BB1D103B9057FF7FBC1740BAE1AFA44138AA2B7E3270CF80A6AC745CF701040C97253133EA195648E929E6C6394940B6ECEB18844F1C862DA6597A46F64E0CB5D2803EABA4A08110A011A32452185A6425D9D44B43463893369514957592F519C22D2B06BDC762C519D5CB84E9A68456AC60AEAE85AC6453DE2BCC103E32DD509309FDC08E3B3698A193D83D62DF74719703BB5F8CC5DB7B88B80110D74D6949D00469B840FF7FABDD4C0CEC1A097A6117C28046B06B82C8EE8204296428AB703840ACF7F3333D742726B114D3292B3154B2C4095B6D465657EC0780C488A0C60443717109363C45777271955135E60B46104BC18BAC09A18690B37C8078A22645532112B1DD09313B9A25B7094700639775F89B8D0314EEF0186ADF7CEABAC36CC9292C270717F27CAEA51B1AFE1CFE6B6A1CB1A7DA53C6", + "715C9C9B2694BD5A581B733AD4841B229FB7A17BC213B969935C672D0993A94EC170BDC8B7C800E66BC6514F84FBC81C7D1C9417B79A82E5B3980ACC792A19C46D13A2E75A3AF791BEB401F7555793D94C0EE1B9E98A5B6C52777E537BFB287268CA9524A4438AD87A0E85279E474C5BE7740B7867D8B04781A2436A8D343F62274E236C736DC3C59D5B326563B9C86798AB14A6C9A0E67B36DB89A82AF690DA7016418BA2D6C435E39095BB81A0E49C01A73A31EC9159844D1A3EB233D16B932919421E6A342473A71DE629477183E8F34B2B7C8ABB7A3B6E516107CB5229D780B93417F9BC94C38BCAA58F34DD88835308C742875CCCF4928122199CD932148F48A94C5C2252295890BB4645761D3C2C0F33AB3E1021AA56B573E9C6FDAC37C83F678B97148CE573A244B0487F3CF771BC7B6A13FE53A6BA58854B87A67A6A17D6A301C85F7C061071B4DDB27B3F404DC402EBACB8254A0568D48B2D299BD831188886A65AEA5CD8D987F6017A2F4392F455C2B4F9B63E6CC1A27EA38F2588B0F8086D7A5C5E4B05B76D2B8918820CB8851704CA6D730861B512FEFB0A76B61401E23B01EA710C5E3B73FA716DFA6408A635423C61372592DBF174D6D811EEF7C4D885BCA5FE669233A141E43810AD10235CB59F824728BD7ACF17765BCD354A493AA60438F07D266D728B640CB07D50275BC2605FA6C964614B2C8143B37B184F3C30668662149BC18C6038706C12F0D31B896B69A7D588D0004497E4808D8C12253987F000168EA758A5B32C195F03F23A07C5A546A6607084CF79E073BC6CC1CB372E385CA827C490A42D900035BF735C6242031B8332BC57765ECCE4792706F1CBA0C7CC390E7BD3595AB876C4E397C58FC325C9607B0EE39692C31730EB4744E967E7FF8139FD1A545622EC870516B2925628BA782CAC845B2429C3CC0EBF7747F414E8D35CD4A91C959D2276404A5DF4790F4363104E6A0D1D60A48B65BBD92B417B51A5338CEBE36C0F218BF27968C05D99947E9B44B4B5B2934C538F85CD7C8B9E3C31637E14C5C0279CDD6386E20CA89A53671FB2F04249565491AC2F900AD380D1A68B67693B185F26A232AA1B43503398002085713CA4B2F94CBCF6E837B020404B7F519A2B520F93B901943C918393F26061346A0193CE9BA8A48B5C4B01B0EFA231EBA0528C5B38CD32CD5D22586494734FA746B411759303A51A12EC58B03FC99A1EDFB1CB01375032054878A6EC9DC4425945AAE387E7FC6CD399C90049854CF51B3DB690EB78A0A2DB04D05102DACAA9834620ABA427B5733BF1D1693643C88BD265AF0280ECC66344B81129C491B3998C6C70CCF03257C2D06115B72AEC35B4C8774CC7936C578B29FB3B0A5C66709363B73F41B08DB919CBE57AD817CBB5DF62B7836AF6FF4AB8CBB07C9FCB7E3D601B2117E6A7242ABB24EA96CA867B597E9E9B45C01ABA9B54D2D323DF8B38D3D37B72C2790E1041037355F274CCEAC2714A92955B31C55D4903A85BCA55B2BC22C536AAB22557D912FE2234423E7BC0894BB5F846A2DBC4A0DBB11C51840059EC11BF6CEFA3AB473E1CB0F0BD17EE0BC3C59175EB63C3144108548720CE7EE0F43A9FF3F52A9924EFE9F2F59318BB93C86B5171EBB1A64C173B3D4D997C12F734D2D57FA2127052887DCC6461FCC23B66FEC\nencap_coins = 87D356BEDD39170C21194287FD3095C451B1E877DE2FC9E51B58294672311A75\nct = 33D1A2473A7C72723E0A1BE599EF62DA72FFFAB28B13C7F33BE7BEFCF20464CDD89315B5009928BDDDD6254E3F07F240BD69CF66A5EF2F2267229E1B1C9B38EA01FAEA242A9AA6D142A388DF86D0821FC3F6B4B281828D9839CD75E1D9E3BF6A5D1D8797202E16BC0D655359BFF8FF2F269C0D5C9AB0EE6B9D423C97B71477441CEC61B19FDFF35F1B3FCEA3ED46D56A308E1BB4B161A40DC339C936BC6610EB07F42C9A430D00F1DAA13393460809D4E9EFFC84F8C1092B63F9E0EA0C9EBD2B855C58500EC30500CC44FE514356CF84B67D9209D1CCD8AD787AF565CAD1AF6A2265A7B859E0DDEA348185A312FBB26AB0314F0BAC33042C692929369DAAF9419E4FE44ADFFE731217C9CF0D1CAE2A08B749ADA93113770C6C9AD4C0BD0B04EF43819A70D72938D84A3F98F4C676449E136ED863E910C84BC7378CA75DD21FBE784488CF9DE9D06F7B0BBECCF49B9942DC0BF5C907AD4A8A2A6090082AA45AF16DFC55ED400F576CAB120F9B014BA6D8E83962BCADA64E86CA28EB6D740A24610B908EED630548E51D0276F15037F28DC51D3911A558E5C6287A76972260CAC1BC43AD1CB167CE22F00E1142E74EA9809002927683278C3CE656EBA074FAD7199971EA2B6FCB4EE52B7E4B9F1DDAD82C5B756F5BB51D8ACB1855461104C7830BC24E211423F95826BAE42E3574F053E0515D033749BDFAAC4D43B1FD5E437BEAAAD7AFAC6373C8C633242C0EA3653D6D60ED772D70183F9826226803BDA2848E5746A501E7DE9FCEADADA2D5227EFFD1240045FD1E1A180B150CE1641E2868C0CFAA774975081470CD23BE8DBDE1E06FE24EADEE8E7B47F6D0AF6B83E04637448F87024C7625026436CF0E4012627930FFA8DF73A41BDB16A9F6051AA2AE89FD62B577673642AD90C522C9A4F4B32B96976A4E23506FCE49D0E5A8C6AD0BCFE5178D86E04F1FB6ACC008D0C05ADA4D0D7C6430B9E0382D2923954CE5B8B4A97E8C5684803DB7024909F0083AF39600CFE5EB4DF8C3162BF8F1911EA6B225BE6334A593D31D83D537FC7F4D2C6F7BE051EA6576130DF4BEF9F741E6E4C8111FEE91990A0E9C8059ED5440B9416ABB5ECC16FFD24CA16E524DF7BB7EE13DE24D5F043DA50867C58FC23441F5B496B5FBD8ED8BCEFFF7651E3FCAB74BD1CB0371C515042D657FBE05B738E8C188286E6C6FC7A3D040F6D45A29AC0C4E4C952262E296B3A6D76AC8AC3C11AF5E809FFD6255D6AE7D0E86B49FBF6C93BA40C7572998A15FD494C0DBAC724C909A70D834494FEE90C38AB3BDD1377070BF83ECAF516871B142D442B240825450A3426C30978FD8506D43E57F64FBD00C4A66A897E992F4CB1AA0A9CDACDEB4AB6F1DA2B89164B018486A00F65A308B1013400989379F6D914C87E36A1E851C34D7E144F0B7673BAA22B0C9938B3355DCE2B9D630B8DE36F51E2942CBE89DF7F700A92317AA5FB3F8E76B3EBFC1CDF6D414B7DB6C41F4EC281943D223561A87002F12D50FF160CA351D53F3603C8D6AB79083371BD322\nss = BBBFB22F6EEF49A100E6E7DCC6AD61A2972D570739DDFCCAAFC2DB90E1CB92F6\n\ncount = 92\nkeypair_coins = 690EB71FD7052B906EAEC09937A8ED374E0B02AFA27C2F14399932BE5839FAD20B472C6DA19B790E6C9591EE625B42CA0FC04FD9F69D72CE4EFDB3B9ED8D9C29\npk = DBF001BFA28B07E21ADC142C75111B9785AA2109A795AB792DE4CB7B6298A504200F8850D32CC44E54182761A1C9C9BA591A9FA6873A61025515B068099BB1E63751C5B887D283077F86B733E4344D13310CE12D22322F254A0E92779A87067D19C53C70DBB927E14E1F2892B5273949428EB4C70C49DA8AA7FB87048961DB4892A6F89F18F0BB69347B9575025A964047AC7BD2C7472838383A6072F8338B23AA07D6B7B221E18D4E3C62641916106694315A2FC5BB88C6D664667680DF556C3C046398A88328421F32ECB758BC64CF246815A25922021DCB67C995FC72CC6B46BF5CA9EF3998535AC5CFAB70AA54318F9532DCD138A4C03E2FF5024C52BB486BA7665B27610B822975C412331ED6C98E66721DAA1897936371113A4F17D96EA735A5CDC019809C3907C03FA950C00EBA9DFFC69A902151A39163F2931E1C0271D491562E0A87FDF7B7846C31151017EF08727DFB68F22A8585295659EA358CC1B85C9AB4D107413225B8259804B31850EB347E1FD37F5435617A7A07B15321CC204B1A6B7C30D67E91C088A458BEF5CB704E6B662189A9C0079E224A94E21502C0F1A4DFF6028EF6645CBA38C0C86EAF673E9B2613620BC216914A9781645FC48E33CB9EA06182637439F1D1A19FA50CFD3B5E2CB8310229B74ECBAEAD4B079D535521B8587A2995FA9B8C6694BE6E432343C97C16CA23BF53883E23CC38F10C38E54F5639B9FC0943A4F41CD0ACC8DB40CB12E644CB74B9D4B858F7D6767830B92381A42368476CF2602ADB9ED08B35FF5C4D1EA93C94AA75E218779825401D859902D19822E9820D86C7E57562795B89CDA97EBA773070BBC502884A6F437D7EA7A459C0764CD943E0B6A5B61B8358530459685E2842AE9AB867FA712172207E692A7AFFA872323779087547C3D8B89F368CE078ACECD55AAFD5305371A5BEF24FB255211B2169F4543927C845A3049F7A88513A682303960C2D12BC277656F15738C4368DEB70CFF2A32A1D179F4FDCA57812CEDB21B356E0AA63270788B510E58B4BF613473FE931DC80A9CB8BAFE63AAAC3913936C8A939C413CCA10A1277409250B5DA321EE5C24AD3D093C1C7095FBA34B81380E5DA561BC039E3A8C15FF3982A7938BC16446A3AB2679A50C2E5C1D1A08127DB4CEA30340B5589B2327988C97B78F003D1315DACB301520A11F9F0B4FB33CE7C0203FF11C6A66136C0AAB83928C145F4B968783B131281F2153925DC13AD133FCC5247B595CEF0F03FF0DA0A429C0DE9A54F66C03F1A616C7210B7ED3624FDD27E99F38472867A9283C6B294B0D7014CF9EB62F0D7B051B190F093450453C056081370B45F5EBC4C03808FBB5C6D8B659BD22612C2872DE9034B11C6AA6D356B2BACCEA0F909DA0C775969C12FD5BB0C8A9BED5172A9358E01C29D308636B5D668F5B2C9DEF1380BA23B5C84259D887D3DC4882702B41D99C72C800DD5B19935D7722610741A105C1D227C38C5665CD5A6DAAA991A9868499830C1697FA430BF4F95B03004126FAC283A167281E4B847EBA8487B0032914EDB0B67B1E320C25BAB50499378115CB07A9000E0156C9C93C1D90693B9C22623A3EB15618FA1C470481C4CF292B7462410D057C2E5851E08E31FD88AF2F84B0CF79A88DE834C1F17C7A5FA17D329CAA0\nsk = EEEB8866B17CDA12A45FCC6F9D05AFD103835147647A7301EE071366398473C8103AB3B064E340F4F9866190ACEDE02473FB49635BC38DEBCFF0F34C5175AE0EC025AAF19CCCD46D658C2A6BA62B50D1452B09C21B430EE9A3CE05D36A8E1AAB2BF0185F35664B4999CC8C0DF049C01056AF6AACB025708C184534F1172B28FCC94AAC2FB7012E20443F11F43478E7B1DD8A5C7D9B5A8818C0D2259C7F710F51003777B060F8DB5FE06C3520D35E97F6B5792B0AC3304349387B637686CAC1A6E45149173041FD7C3CFFF5A398BA832DBA04DD7179D0768122A701F4E0BFA48149FF140E2978A723FB985B939458B081E1068EE5102E5F540365E6ACCBB8C28DB84125B21E8D04622412C2F075CB57019EB828616CAA245A8B099A01BD86268CF491823E440E984335AF59924FAC1D43263AF725895C717E827532D35C7DA9AC1420B46AEF13C9F33A427BB5A1BC646F7B54A21760527D303BACB2A21AA39C5577BCD5F416F126741FBA9C2CF9401EC20A14E9A7BB927CC8135BBB0C3180696093289F4B19539C58655B8698A5D1339C9490BE7C04AD3311FD422045A5027B203407CB5755462C21AC51F523389E803F30E12FA9C0AA7B4A1FDD85C66989AF558CBA916C9A037AC7DE1A3F7F1B5BD3208FB6F28", + "661696AD0DB88D10A3B224A5BB5C99CCC96820E153E478AC579C65BEC5A3D4B85AFF1C4AF5BB222E7AAAF9E9149AFD11EA5E86990913D2B543913942D148639D9815D4A8908362A84BFB6AD20B8ACF9596DF4187009E7B773070450010744712F9E7A9B8E9624E3E2B1D6140A9E4789775ABCBD2657AA487740314EA1E446DB5C09746ACCAEE29783B23EBFB255BA5C9706F1254703C676EA09801762E9FA45D858732AE7218B37107B3708EABA05D2C035FD447CEBA46EE446AA324BC184E7B929F7513C16BFDE5C5E55C05E6B5041552C17DD223AF273CBBF65A44B4B6DABD51B341464A9993EFFD671481592C5A655D116B963975006B13503BAAE38332248F58656620098F42F97A813DFC7B4DF880E5E783AF5D833B89079474040AC05A6A7EC5E9EC1BDB282443C736514514F1CB7455958608A62503428464D89C66B209C417445416A54AA66234B1A5BF1C0C3F7064B6D0A7243E170B6ACB01C033C5B1670A3BA6801024C03B24CC1786025FBC56BF04F3B241E4BE701C9764938695BEA4316ADB6ABACFB44F2041D2C29BB867379374B211E990F194B872A7B684A212DC179A4ADD943AABB1E6BEB93F5CB100FE342D0781AA80989406571D1B79D08E31AE15B81740A22DF02270F920EBFAA3C9D74392CD64E71F363DF221134E9BE32B6B855FB76E15B5C91CC6C3F750AEED71071A0803987CA7F35882AC31413A6001A6023C0A183961722B6EBBA16F5577D95BEA2C5AB446AC8E57ACC96281A07599A8D335C2C12388BB0CB9F8633CD2251C8A7563B396072D0CF6E7B8E3AF2192E5731341214C30708E128914C124973E759D4221F1735386B874905220C41FC731A22B9C665CEF0CC5353B799399905F0ACB549F13C6FA56FAE2907D0353FF2054ACCEC40310A2C4B62AAC3F392B014BA88FC90EB868693EAC83516336BAA601F600518FC820BC8B0E76C66DBF001BFA28B07E21ADC142C75111B9785AA2109A795AB792DE4CB7B6298A504200F8850D32CC44E54182761A1C9C9BA591A9FA6873A61025515B068099BB1E63751C5B887D283077F86B733E4344D13310CE12D22322F254A0E92779A87067D19C53C70DBB927E14E1F2892B5273949428EB4C70C49DA8AA7FB87048961DB4892A6F89F18F0BB69347B9575025A964047AC7BD2C7472838383A6072F8338B23AA07D6B7B221E18D4E3C62641916106694315A2FC5BB88C6D664667680DF556C3C046398A88328421F32ECB758BC64CF246815A25922021DCB67C995FC72CC6B46BF5CA9EF3998535AC5CFAB70AA54318F9532DCD138A4C03E2FF5024C52BB486BA7665B27610B822975C412331ED6C98E66721DAA1897936371113A4F17D96EA735A5CDC019809C3907C03FA950C00EBA9DFFC69A902151A39163F2931E1C0271D491562E0A87FDF7B7846C31151017EF08727DFB68F22A8585295659EA358CC1B85C9AB4D107413225B8259804B31850EB347E1FD37F5435617A7A07B15321CC204B1A6B7C30D67E91C088A458BEF5CB704E6B662189A9C0079E224A94E21502C0F1A4DFF6028EF6645CBA38C0C86EAF673E9B2613620BC216914A9781645FC48E33CB9EA06182637439F1D1A19FA50CFD3B5E2CB8310229B74ECBAEAD4B079D535521B8587A2995FA9B8C6694BE6E432343C97C16CA23BF53883E23CC38F10C38E54F5639B9FC0943A4F41CD0ACC8DB40CB12E644CB74B9D4B858F7D6767830B92381A42368476CF2602ADB9ED08B35FF5C4D1EA93C94AA75E218779825401D859902D19822E9820D86C7E57562795B89CDA97EBA773070BBC502884A6F437D7EA7A459C0764CD943E0B6A5B61B8358530459685E2842AE9AB867FA712172207E692A7AFFA872323779087547C3D8B89F368CE078ACECD55AAFD5305371A5BEF24FB255211B2169F4543927C845A3049F7A88513A682303960C2D12BC277656F15738C4368DEB70CFF2A32A1D179F4FDCA57812CEDB21B356E0AA63270788B510E58B4BF613473FE931DC80A9CB8BAFE63AAAC3913936C8A939C413CCA10A1277409250B5DA321EE5C24AD3D093C1C7095FBA34B81380E5DA561BC039E3A8C15FF3982A7938BC16446A3AB2679A50C2E5C1D1A08127DB4CEA30340B5589B2327988C97B78F003D1315DACB301520A11F9F0B4FB33CE7C0203FF11C6A66136C0AAB83928C145F4B968783B131281F2153925DC13AD133FCC5247B595CEF0F03FF0DA0A429C0DE9A54F66C03F1A616C7210B7ED3624FDD27E99F38472867A9283C6B294B0D7014CF9EB62F0D7B051B190F093450453C056081370B45F5EBC4C03808FBB5C6D8B659BD22612C2872DE9034B11C6AA6D356B2BACCEA0F909DA0C775969C12FD5BB0C8A9BED5172A9358E01C29D308636B5D668F5B2C9DEF1380BA23B5C84259D887D3DC4882702B41D99C72C800DD5B19935D7722610741A105C1D227C38C5665CD5A6DAAA991A9868499830C1697FA430BF4F95B03004126FAC283A167281E4B847EBA8487B0032914EDB0B67B1E320C25BAB50499378115CB07A9000E0156C9C93C1D90693B9C22623A3EB15618FA1C470481C4CF292B7462410D057C2E5851E08E31FD88AF2F84B0CF79A88DE834C1F17C7A5FA17D329CAA09BC32A138A2FB5B6072464172ABE0FD97E9EABF357C3FA5391D94A415B53ABD30B472C6DA19B790E6C9591EE625B42CA0FC04FD9F69D72CE4EFDB3B9ED8D9C29\nencap_coins = A172A053269AF9BF0C132BAEBA3BCAB0C3222520EB90A6F7BA15F507273C828F\nct = 398C4E7AE6F0D8754C3B23BFC48C0CE74EFEC8A3FFFFAD47579CA028206D3E0A97BBB6761BF5E9598CA025C05445C237A5C9546302356A43C0F5FC64E3AA701BA1B936A3C2B512C8AC89284AE92EACF12FF994CA06DC224C3ECED6028CB90656DEF5EB08CB5C3C0F7FB14E2C0CE9007BD3F2ED271DFFF067C711A03332423C3E2486D16B0EDAD0F8F1D0AC6A231C7BF7D97828E3CA6D6A7585E4CADFE29880B879779060D1563077824B9796CDA81EB2C23C2133B8229EECABC756C2272CA91CAB3D0A4AC09677B7DFA3AE6AA12BEB9312B2C636C1CEDA259AF68172241A03453C767D135F74222B03AD12F0C72AB27C5A46D8106DD7BB77FE68A6DC17F1D2003AF04D67B933FCF59514D4F7250D2A403ACFA06B6E1A32428599A152FA51D9DE841F0D39238FB312146DC888EBA41C3C69369E4ACED63E8BB1353700B1A8A27DF82C6CE224E62B38C60676CB7AF3E8FDC855481843B5CADD5E6E9A8F51E89E6741F51A842B3AC2562C63922DD9DCA466FDCDBBDDAA7E3DEDCB1EA45B3000BABFCA2B8413CBA10541C2CD3FC425717033E135289E109BCCFDADAABC912720CCB18C48EAF0CD9ED3B7FD0A7A6E1C21E75841F60093622C6634342239E932496B6D2657F71E84945A7B7361CC125236E662FFECD2D29C9ED5EECD91A6BD4CBD9C3F22D5F35177BE3BA5B290B513DFC98A26A74F31832A30EA14A18B76260A9279D009EABB0CBCFCA67A5CBF9A5C8BF5F3824EC0EFFCA1265F98010F702A14CDC020679848744CE5151E5BE6CC415A05E2892CE05CD4E5E6C2834D94AF29729932F0A7C9456ACB10D53A26F9EC2D27D16F5B3F7777D94EA52710E147CED883284A4288F3042BB732103A6EEADC712153911F9440D75EAF01058DD064701A96B0299C8CFF5D0E3D27694AA729EE8BC085CE7EF484F41C76DC569387443274AA2D951CB6879E4DB998745AFE0243CABDB3FA6FE57244FE18A1F23DC79E320237039D08977F8D24A77782F1CC40FEA4A5260391DB4F58AB786A77E0F704066CD89DE6C81889E0984541A6290764634062C97B6EB0F448428217337347A5F54CCEC9783F4E8D5F25CBE4E3F9409F014A4D000ACC6CC8FAEDA1C1CDED26A8AA86B45DD7F88B6A177AA50A98C9AA8E315ED94AEE69A3A5BAA705D9144E8C72ACED89D5CEF6623BB0D7393CB45640CA56BF17254514B8DA197F9F20F81FDE2B87F59644A4E0288460CA1D8D5837855E463DD6B148C54B148E89AE7C14E9299F153B9ABFF2A9D5CE6F41A8A94AC904EB7B119B9D816E8FED7936440A21FFFC9EA89583D5AC9093F5C911B2A0F8DC83E39B1F86B5382A7A1FB22C033EDE30FB5F07A36200949491CD0FDA08566F71FEED83FE21C11C7342F38736BAF9BF0B63B2C29F9F19EEF5B98508BC213F8CF1E4026973F75C4E07C2F13369E006308DE48922FDF975A1CA03A502335A286F55CBD17691355BCCAEA9C49E48356D817ACFD8434791A868BB6E3A12041E2A5E407284732799854979159D70205F526DF229284BB12AC67B25\nss = 894A4D596E75B5300B45FEABD3FE8D3EF943743023446BDB2F44D10137847367\n\ncount = 93\nkeypair_coins = 32E0EA9089FA928482C0770DA545AF1BB871A03CE38604138B0D08EA2A10CA2B56DDB63A495D1AFA553A815CF751D711478A39E8D1AACA992796B619C84565CD\npk = 2DF84A0272C13DA5A495942BA848AC92D302A98A3E55937B8B1B49FE588BE32A540EC90B5CEBBD90D1B80DD24D32EB85FC041A7CA307E522B8C5FA9C85BC258C8ABB9F2678D29569F313A1E660A2454730261A6766945CE42C140E5181C68461EAF12D1F185C358233B9BB4902FC5089F851BAC83CE3F07BD7B185EF08626D7029129703334084375BC5BA27BA023CA6722319A916BAAD529715661E3A413C8137CBBB206E313906DF1CA77CBA73E5499F54FC53047741AF2341D5623278F76131AB47AF10BB4DEA8F493B6C0E4829ECF4C425A46D21755E93E5A80D0A927739848695BE93444A98A45D02D1131E493DA5A0A1117B41D4AB3DB35A7A2E95C6055BA70EF159E7AA0DD5452598F91477087BEF1396ACD48E747B962205AF92EB99FAA809B4BC47EB93BFD3860102D4ADCBFC39BE80024550656C42785A6788C7A851B107823A02A3DAA4CAF25097F1F9AFB29416DBB360C4A824E3CA2A30E19F94B805DE181D0A028E685C378DCC225112899A6B79869109CA4B094909B21042C179C6CDEB22564CFB6F89135022FCA3028CAF7ABAB19A4045DD5A60721C6BB47AC53E40CD932511F2E5473D3B4CEEB44BE1A00E090A886D345B13A58620C49CA0893F23058412054AE5069C1014361CFB0379C2215F330ABC647114A3C597765FD014C64C8C1B1B45B3BD02BE9D5A55B0CACFCE297581FB48FE0256F4C0CFC84AAE1C542F36730E5F10795C72157C653210686801210418B549A7398CA8B7C70ED007CB153D2A55178AE23A5B095EE2D116B9F3A1A9F19FAEC40D75256CDF76AB8E393210D3AFAE375A7BC384799A6EFC5B76F287499C6701368B8DDC219A9F2295E6E01D22C4A50BD08179A08044B702FFD786FAA088F867B63B951A92751CB0F839CD554A83745444C3BB88D3609A9A4BC2E0BC73108A71CC7534217872539BD6E942CD36A09AA0374A3894D279A1F7C38A56E7C0298948C330B8C3A5B6AEC3BBDBB87384677ADA78017564A7FE40C2983A9ED3ACBCE5E29E3A78502952A9540A44975572A1512B1D4284D9BB528E538F43A15216F4B4F2A5208E06C43896A19C416C99C3B677564975948468792EDB6532F9B0567F407FC6D6C302766C6D1373BF78A18896188CF20CCEC39632269F6A193DE5EC5DCA85CAD6BC79023C691D5682643B6F314827E0B24539E2AA91123B3FE42308F041DFB6C876D079D60A3EF5735AB8A36ABAE34F4A12729BE4A00F753C7E4699572375E6C7B037948684206C08A27EC12B26F7349CDACC3559AC29D5CBC35C3", + "10870597E391AC4E4C02991096F37492083BC1C43304BC3D5925843622494C735942DAC8904CF195387ECCDCFCC8A999B6D1B744A542359E6B167F91022BE1660BBD218A6A6861AA17C57152552172F38B43D5281956CAA77DAF9B94CF60CBF08CD9D9B4C1EDB6C4A17BAE3B36800891910C280C3E7CBF4AA11F33A7C70E3B419C2B2B9A64709C31878F913FB934D77B4C36E329BA98B44F394631E0A289042061F527D67446D6AB55CE7B43EE1080FBAE67085A2A03B36CC9AD9B5B546156C3C5A79B092A67912A19575F6B5546397C15AE334B451C3D919422F28B70727C75FB631A2AB012BD5971B5B2B75F80E14BEC0494BAEAE3C7AE947BD69827E1FB86388052C3BF3F8B4CD25A568\nsk = B27CA8D40A1CF8AAC1A62553FF541EF56B4B4E352E38C0AE8C2CB2240C2D2525ADC52B1953A1C239E3ADD71B5F7693196875BABF8B31EDC528F3B320E6569997639F1C9B5279C38D5DDB3B691B0228AC4480D45077DB55BAC24285C5820C49BE25632C4AAAA23ED84E10A1256D9CCA9B584D423A9FD37276CBFC5953C9284A4097BF71706069AC413AB857C64EBD179EB75496170778AFD74180D877C9D69E1956450B1289948323F64227960A0B24B442E78C551C5B35E89B34B018B80BD094F7594365195F44C05BACBB2E0A976A86559BD6B23D220B5C900375C6B188FB353C3B064CED669BEE6751D5D22659EB89900A92B7BA84EAB58B7E95CB8495191CA0491EF75A3ABB9469A7939796C2F8C15CA22283235852B0A96DAEC403C5C057B5AC91D09CB16E01BB0D078170E0CE9596B913E953C5AA67BD8A2FF20C0261CA814F334244886DAA0694368293FD858E14E23D13E66AC89A58867574804786C4C48D2FC003336C002A7776217ACFE7084588455A0A85B8AA51C33E99B1CDB75541855577911DB00475DF42168E7A21EFE57402303DFE37AB5BF10200395550A1639DA2AA8E358748EC38946BBD3DFC27DEB08F4F017ABE33A2DF3B9B96CAC0E8C261E487CFFF31A1484CA5E04036797CB4FC87AE6CC72F9EC0835AE2B160B425ACFA8B75236D92870E4D43BFA7EA5C98827F95DB6DD4200068650E3D8812DE827C3F660CF8049933DAA52793AC10F57AD8F2A7445927CA6022D5A485F9424662A175B2A6349B248AAF4853BE709D42228C3CE3B13990794B9698869842B81649CBD9482C2435886441ED9A7927384371D02005A514717ABEC398BD183B321134A4DE85A1FC9B72F7268CCAFBAE289C15DCEC18BC26B81EC43C6B8A3919625165617D60C33F1E6B04CD5492414A15BBCA5CE84284557C9CB481A951FA5DF2E444E2C20969F38284E60FF15B0EE707115880BC6D3834230C7D22C7CD69229D1EEA957F58B2D47B11CA97C926070CF1C1934EF83F5A26241C7C73959C8A0501C2C1C70671987243635FEA56CE6EE292B1D6AA26C4CDDFAA1751520FC3218E7E20C13C6A1DF4835C7D6C0BA45923CEB2AB40FA7FE3732E47AB652309CDF28091D8D86308B73F90D86995220ACDD9C544C95FCD24A77E7C90F2F15E52AAB595E11B1AC0799A3CA95E0644771420AEDC777A9048FA89CE94780C8F2B903548BD46A2C22E453B68736F5CCA6C35EBB027C0C7035678F7F69A9CA02FBB4B23746759660251F6757BE3AA1767D7280AA75B60A7A0CC892F70F67CDA886CFCABB451A36023C688D7AB5E0A3B5BC88514CED3597A594D0E28C7AA25859E57BE9FB12691C047A8A7373FE1695AE742027A8F5630CB2776721815742C66A4BA0C7E7E8B8281144B80288CC7296BFC8625A2CB995B548D48294B2FBCA97D375B91203392CC27FE835F62DB97B14739F6C8B1880A53DDD388E2636F866416817A110258A098D9AF4458A64C68654E97099746B9B9E23ADAB5653970C00719B54E4A2D2092CD7BD62AD9317357E35224184A4E24B4A58014F666B33E1530365070B73AA6DA432D04F2588F34AC1CB3B3F7FB4AB200B459966FAFC689CC40ADAD0C26108859A2943E2DF84A0272C13DA5A495942BA848AC92D302A98A3E55937B8B1B49FE588BE32A540EC90B5CEBBD90D1B80DD24D32EB85FC041A7CA307E522B8C5FA9C85BC258C8ABB9F2678D29569F313A1E660A2454730261A6766945CE42C140E5181C68461EAF12D1F185C358233B9BB4902FC5089F851BAC83CE3F07BD7B185EF08626D7029129703334084375BC5BA27BA023CA6722319A916BAAD529715661E3A413C8137CBBB206E313906DF1CA77CBA73E5499F54FC53047741AF2341D5623278F76131AB47AF10BB4DEA8F493B6C0E4829ECF4C425A46D21755E93E5A80D0A927739848695BE93444A98A45D02D1131E493DA5A0A1117B41D4AB3DB35A7A2E95C6055BA70EF159E7AA0DD5452598F91477087BEF1396ACD48E747B962205AF92EB99FAA809B4BC47EB93BFD3860102D4ADCBFC39BE80024550656C42785A6788C7A851B107823A02A3DAA4CAF25097F1F9AFB29416DBB360C4A824E3CA2A30E19F94B805DE181D0A028E685C378DCC225112899A6B79869109CA4B094909B21042C179C6CDEB22564CFB6F89135022FCA3028CAF7ABAB19A4045DD5A60721C6BB47AC53E40CD932511F2E5473D3B4CEEB44BE1A00E090A886D345B13A58620C49CA0893F23058412054AE5069C1014361CFB0379C2215F330ABC647114A3C597765FD014C64C8C1B1B45B3BD02BE9D5A55B0CACFCE297581FB48FE0256F4C0CFC84AAE1C542F36730E5F10795C72157C653210686801210418B549A7398CA8B7C70ED007CB153D2A55178AE23A5B095EE2D116B9F3A1A9F19FAEC40D75256CDF76AB8E393210D3AFAE375A7BC384799A6EFC5B76F287499C6701368B8DDC219A9F2295E6E01D22C4A50BD08179A08044B702FFD786FAA088F867B63B951A92751CB0F839CD554A83745444C3BB88D3609A9A4BC2E0BC73108A71CC7534217872539BD6E942CD36A09AA0374A3894D279A1F7C38A56E7C0298948C330B8C3A5B6AEC3BBDBB87384677ADA78017564A7FE40C2983A9ED3ACBCE5E29E3A78502952A9540A44975572A1512B1D4284D9BB528E538F43A15216F4B4F2A5208E06C43896A19C416C99C3B677564975948468792EDB6532F9B0567F407FC6D6C302766C6D1373BF78A18896188CF20CCEC39632269F6A193DE5EC5DCA85CAD6BC79023C691D5682643B6F314827E0B24539E2AA91123B3FE42308F041DFB6C876D079D60A3EF5735AB8A36ABAE34F4A12729BE4A00F753C7E4699572375E6C7B037948684206C08A27EC12B26F7349CDACC3559AC29D5CBC35C310870597E391AC4E4C02991096F37492083BC1C43304BC3D5925843622494C735942DAC8904CF195387ECCDCFCC8A999B6D1B744A542359E6B167F91022BE1660BBD218A6A6861AA17C57152552172F38B43D5281956CAA77DAF9B94CF60CBF08CD9D9B4C1EDB6C4A17BAE3B36800891910C280C3E7CBF4AA11F33A7C70E3B419C2B2B9A64709C31878F913FB934D77B4C36E329BA98B44F394631E0A289042061F527D67446D6AB55CE7B43EE1080FBAE67085A2A03B36CC9AD9B5B546156C3C5A79B092A67912A19575F6B5546397C15AE334B451C3D919422F28B70727C75FB631A2AB012BD5971B5B2B75F80E14BEC0494BAEAE3C7AE947BD69827E1FB86388052C3BF3F8B4CD25A5687EF43A72EF04766F1E899D25C9A005009C788B5FAF985123CFB3FB97975DE26D56DDB63A495D1AFA553A815CF751D711478A39E8D1AACA992796B619C84565CD\nencap_coins = AC46852132E10665C4983E3829BD9DE2ADF693CCCF572B4EBC5C0A633230B627\nct = 4771AE1674A00E2A0D604393524EA1187B7992E9F409ADF851C3A624D6C9808D0B26475E89C6DC73C87F32D283A92BC5759A3020F1DC64A8F1E4348805E98066585889013F53D5681D7FC1BB41D418B1AD729513DA83829FA1C86A7E4BDDADD85DA52C55E3DD995FA548A4607CCE5BFAD282AABDE914BCD8DFBE1DF22589B6BB99B370998A029CD04BF53BFBE1FE1DD43DB6B5DA9A2413A7456D560324F8DFA08E0FAD257368520026364A1C243909A4112DD26DD34BD5DAD4EEFCAB52A44A01D30A24C65404900B9B4E8A27FD63F7D792499E4BAC8C170346E5BB2318CF4F3502701CE27DFF44CBA9761650A348D219B3E28A690ACA9F56546E424830E5C74C000B5C4536ACCD48DC4EF011790FDFD61AEF23B7113AC4D7F7046EA85CE3FDB3C193BE379F9B05F1D94ADB6DA3B8DC4DFB91EC54D1C725E45D046BB0AE28A0402144391C783C2E69FFB5BB9A009B44541F1F8D9B685726E8A2A07DD93B962EF5A6D2C14A0DF5E8186CAA26ADC58BF2F826B99E3EA196AD0EAF002230FAD3CE927761C24D90E100B2500C1FE2FBAF7B95FDB39B3D75EB7D3971FD0A1C105E763CA39796EBE15EB816FFD37BC98D245E84499EDBDE6B3824F116889B9315CE6FFCF8C66E67925FE292DA8AD6901B0CD48CACF9DAF06BCE31818C136F30E7B2B4F59CA7B0095D65D98056DA60D2C0AA1D3DDD35B1A8259566AC80E00644F2227786C5A2FA5E6EDA83695F3C7F486BC7502D9B7469C0B5F63740555D719DB644CC9D938E938FA96D68E9BB3862BB05062139E036010903335EE8D37E3C66A26DB29520A4A491C4EDCBF0A83D48B710EDFFDED91B88A05B3F41282539E17EEA76D8E9862A87A2040C9BA672D67BE8EA54C88FB57F625E99B9D7325CBFF9A97690D3C6ACB5A165A62064A2011F3DE477F18C434B95F85A2C8466EBF5691C0CDAA99BECA0996D514EA14EB9E8FD545141C0EDBE871DFDEFA959559AE154B3FC7C139F301BDEC5E089168F097000DC5601EC9F98FB0634F1C3ED62E5BFFBD7CD379F20174C592C5D63DB74D4742510902D86B56834954A5623395342F4A497FB8F1F28A0ED47AEB8AAB5FAABCDDC76DD3CE2D7809E6171712DA289ACC4D1FA3A130E694758C05E15D46068B0CED84E50ABFBF61BBFD97F343E0890AC06CE3E03AE5336B801DFB4C7DA8FEAD9CA61784AFF266731FFA6F239515E2A494421546805C1F212F106E1816C4656EE4B956BE300E74884CE698ADCC5AEC3923726C2EA4D7EB058EC61565DA1A54AD740D4CF364534204E486D401B92682E1BA65B28823CE4D2C8347C250778CAD8DAAFE4B92A93A5A4F0DD03AFA4EE679AAF5C233442D426B45D18ABAAFBDB2FB9D96B03779E96B2D27559D039E0E1C0C577CB5FA444D153B791CF2426BDAF0801B032F440925531F05302264F54D6FF1511EE2DBE072234AA85C2AD41ABE4D57600D490C7E9AC2D4FFE8A69BB775D89C9CA3C4103DD822D28454E01514D732133E80061C79991E4DDE261A9C741D65B07B0F2957C0ED01D79CA\nss = 3C0E71B90B0CA310CF77EFF994FC2ACEDE65D12431D08B9EE758E1FE896B3B2A\n\ncount = 94\nkeypair_coins = 6FB2EC719F2A0DEA152BF3F64B9D148F8AB8BA88F64E61F5DB53E12D59F52557D3698490455837FE52948613EE5FC2284F00B130C72334B1D8E68C7B09B2DE2E\npk = FED53D194419C06B92E51498AC2601869A1024EB0370CA3A420C48A765A5B99BAB88A759251CB83259A628603C54A831AC0147F3A97B8329474258B7BD6067476605A2B2B8311252FE54565C865E2DD96EA9E43B23121C27AB02C348310ACC38D9D583B0D8105DC87896C238069C689027910F9BCB5D29AEEBF57C2B9C78F76866768C0699C6BF743C0B43108C128A5277F39B32C351926369FB8754CD0197EB9AB602F391C4BA564BE2C3423005266229A10", + "B21D31A7CC3D40C2E7192CB6628AFA692D3E75AACE66E7BB1169893C8EE45BDA5560E7F79C711D32D52C0C783EB40BF8977C3063CB114B6368A8D1486A86CB108D146A648E080751440F4D8087116701987C328D8547D0573F8C03D321AC07138A60954297CD832DFB989FD99ABA8B213E7501CB3D25B384C023F66776EFA3AD4981037A54400729634A782ADFC24404BBB4F2405A27A8500CD79E8521DAEE48848E485F53A28DE91089D849EBFB54D97D0CFB3CBA46A27438F426EEA1A0122F2180630864AE46CC5F3A828725CAE89331D540B5B3633EEBC0228000D75908F21277104D7816F56854C3289AD1A5C72C1655830089CFB9C90B1306724CB2828BE679B989A3565758B058AE983C1EA9B71F10553795537D454EED50F50A40274592AE165C846D85527E479E3FA8D8865047BF68D200287C0A5B8A6A78C4769BB3A795979B774713A522DBB723F3628F2F4126B639E3B4C5C4B076D321A208A123D82852AA0DB6FF8457E745B6B710B396C8106E635A379E22C59F17DF7B7070EAAB38D5448E4AB67E6B21078D5B9F9979C6D7365CD1423CEF6B4C2B186AC6B792EF9351B6040F423CA22E7A1455A0473273E3B53B92A132D7C44556477907FB41F981A06CAC9BEEB9655FE90C4FE93CC33337D78294F7C128FFEE82B0D4211E550342C599C9932A201F3CB8BB253A0559FD667A3D2CB46A4936F5CF9C4D0D105880A446066AE06841E12F259E4E6220D932633F77F9A6B463E180778D53C37E0BF423717F4D476ECAB6BFBDA7E461AC3CC9806FF4B38FB80C0AC9B0DCEF56E9B27881D1AA0892657B12A913A8AB84037A6C78399F53816D79C6A1FB40F1CE200334A7E74760999F8A0294C3029BB23EE0CB81700B95BA20140CC5DE537ACA62C9808240E74D508A93263EB14B7D202A31DDC2147747192BA1F38932538241AD1DB35CAA40097393038957B64E716D4CB3675AA9EA46257BF55A6D1FBC2C356B020073E16EBCBDDB3692515BE92DBA54CB62C702165C74864C3A7CE67D8AF92EB78496C4E8EB78B55DB7963B016A252A85E655C95936D6006BC07BA6250E458A387BD7BB43A3F5A16CD8733B66565377C1A74D5488C1A0DBFD7A6DFB474EAF29FA80AADC83267D0B98EB7A8AD3AEABA977A0A5E55B8937AB68E385F94DB13FBC6C26BC23B0B8BA331A578B99B493D875F206C278A3B4F63E156FD386FC13104D6DC96AE9BB3055481B846183DE71ECA09273E58C466EA225B1824246C799AB8B045FB844572882299BD6F1B2787E1094BCA102FB20E0A274257062385DAC60F37A15B0496ED23C465A3BA46BCC0BA9B5B78C93B45CAC0151687859B155AD62A8539CC6B872AEED63847CA64797460FF5F477504DF1B1894FEE3E6BBF8218590936E0102DCE8ADF459D590355576E1\nsk = 2735BC066A2488726C89432E56452ACB24A2A5407522988C0732CE072128C8D5147C42988F94A8516C77873858394A2BEF65B87741C5B9691B6DB84E3B1B2B2F851B1305832E4210E5D05710A5BB7195B8BEE0CBA9B5BA21BA57B962A280565AABE1C9015635CF1A7121A8581FA0A78AB26FC82838B6A405C6FA5D46469136CCCC34930664240915BA5C86E67ED9E73F4B123233C92D73BC05408005DCD6CFD62635C3026C990753C55CA8DD385A29B1C79FDB97C0B4CC8F26B28BA573B5194D6BCC065F5B97DF702009C43A65ECCF452447AF91200EF68F18CAC25E5C71E62A39FD7A26C6B64B47E29D1E4084801599ABA838A3808ED83454B506965507CC6D0B34BB139300D1014168A79D5707C74BBC7B980461249FC31734DC384C9DAC4EA6EB4701402084719593B62AAE53C8D55719945975CFD25BFF31C886640FEC37CAB3942676C840A453C6751CAF16A4743495BCDE6528A942A47E7C2D6499B2A872A76E928EF4B0AABBB21604F33231235A7CB47C96D9C976A2AAD533A06A24024AD0925007984D99ABA3AA8168A8AC92F662348686F756BDC1A23F8537545D13AE9F657CAA801788C9368864A05F40AF22E33E10705741F06EF577CADE6CCBF1D01065565A5B13284690BF611093E45684D6C69FC0F548AF852248DB6A6E86A2A907C95CE0053FD942A92B024DD18803474B03F73FC022912257454C008D137C5E8404379DB2719581AF17108A03F58DEA58892912C5FAB701D28CA845068761F6BAB69BBB75584F7D289DD921AB30379248C91106A784738B17CF0044418BB9CE34BCD913BB26D04CA04896109A255A39BEBA1A2B58490862409E473CA623933AC14C90F64CC74AF396C3186917061B5C8C28F3E8B694535FC2C73AF9843031C19166D2C8A3A76A2ABA45ECA36321BA367BD5B176B5C7B8D7B7192C95CF2803E2C3CA5D585C4EA63009C7B850F08759C278F1027C59499526A8B2E494203197A9304022FA0C4E47A3A6FBD8BC59A7C1312A6D19D3063E8078B1A1BFF964AF48151E4CD3CD87F49BBBE01AFA3A5BF46A7F9BC97DE729285AF35A6A9168683658EE37BA6D9499CBAA8CB44C93BEB287EF7CC7B1EB6491154C14FC2027AB49316B70B8237A546090C9687CC70CBFB82208A7F61F63AAC1A42961568407343A050B1048967C5334F3542860249FF9C2FAC8639EF8C125D0B9FD537FCA93C1006A77499658C0286267B910C10B12A6136152BCBC03E782C41B1FE94A000CD974A3A9ADE3A3B8B4BB8ED8B403683AB4EA3B84B84C4825F61F99D72EACD894337523C6B6AF765BCC99393213938D66B18B2B168D6C73C2EACC42AD22255CD3AC6D75200111C0A6076F02F906B1C96213E80310B8752B1B619E72366F9A0BA4283520333EBF8693F93A7FD6C3560058A8D16CB50B585B3D519E4263B050259A9A0A8823E3CADCD0B81C1CA53820323A9539133C68B0A6CAC1FC834B808D9375431F961FE3233C49FC9E88EA1ED0A068A271B502C0A0376A1309F86013B4947BB671C1B048C0905C8CE16D8035C7C05B9CB8755C7D7B6DB2907DACC5A91B61B666837F209075E8AC5B86444B49AC878F9B2E18D42E0F791AB7CB7C973CA8E0437F158889FED53D194419C06B92E51498AC2601869A1024EB0370CA3A420C48A765A5B99BAB88A759251CB83259A628603C54A831AC0147F3A97B8329474258B7BD6067476605A2B2B8311252FE54565C865E2DD96EA9E43B23121C27AB02C348310ACC38D9D583B0D8105DC87896C238069C689027910F9BCB5D29AEEBF57C2B9C78F76866768C0699C6BF743C0B43108C128A5277F39B32C351926369FB8754CD0197EB9AB602F391C4BA564BE2C3423005266229A10B21D31A7CC3D40C2E7192CB6628AFA692D3E75AACE66E7BB1169893C8EE45BDA5560E7F79C711D32D52C0C783EB40BF8977C3063CB114B6368A8D1486A86CB108D146A648E080751440F4D8087116701987C328D8547D0573F8C03D321AC07138A60954297CD832DFB989FD99ABA8B213E7501CB3D25B384C023F66776EFA3AD4981037A54400729634A782ADFC24404BBB4F2405A27A8500CD79E8521DAEE48848E485F53A28DE91089D849EBFB54D97D0CFB3CBA46A27438F426EEA1A0122F2180630864AE46CC5F3A828725CAE89331D540B5B3633EEBC0228000D75908F21277104D7816F56854C3289AD1A5C72C1655830089CFB9C90B1306724CB2828BE679B989A3565758B058AE983C1EA9B71F10553795537D454EED50F50A40274592AE165C846D85527E479E3FA8D8865047BF68D200287C0A5B8A6A78C4769BB3A795979B774713A522DBB723F3628F2F4126B639E3B4C5C4B076D321A208A123D82852AA0DB6FF8457E745B6B710B396C8106E635A379E22C59F17DF7B7070EAAB38D5448E4AB67E6B21078D5B9F9979C6D7365CD1423CEF6B4C2B186AC6B792EF9351B6040F423CA22E7A1455A0473273E3B53B92A132D7C44556477907FB41F981A06CAC9BEEB9655FE90C4FE93CC33337D78294F7C128FFEE82B0D4211E550342C599C9932A201F3CB8BB253A0559FD667A3D2CB46A4936F5CF9C4D0D105880A446066AE06841E12F259E4E6220D932633F77F9A6B463E180778D53C37E0BF423717F4D476ECAB6BFBDA7E461AC3CC9806FF4B38FB80C0AC9B0DCEF56E9B27881D1AA0892657B12A913A8AB84037A6C78399F53816D79C6A1FB40F1CE200334A7E74760999F8A0294C3029BB23EE0CB81700B95BA20140CC5DE537ACA62C9808240E74D508A93263EB14B7D202A31DDC2147747192BA1F38932538241AD1DB35CAA40097393038957B64E716D4CB3675AA9EA46257BF55A6D1FBC2C356B020073E16EBCBDDB3692515BE92DBA54CB62C702165C74864C3A7CE67D8AF92EB78496C4E8EB78B55DB7963B016A252A85E655C95936D6006BC07BA6250E458A387BD7BB43A3F5A16CD8733B66565377C1A74D5488C1A0DBFD7A6DFB474EAF29FA80AADC83267D0B98EB7A8AD3AEABA977A0A5E55B8937AB68E385F94DB13FBC6C26BC23B0B8BA331A578B99B493D875F206C278A3B4F63E156FD386FC13104D6DC96AE9BB3055481B846183DE71ECA09273E58C466EA225B1824246C799AB8B045FB844572882299BD6F1B2787E1094BCA102FB20E0A274257062385DAC60F37A15B0496ED23C465A3BA46BCC0BA9B5B78C93B45CAC0151687859B155AD62A8539CC6B872AEED63847CA64797460FF5F477504DF1B1894FEE3E6BBF8218590936E0102DCE8ADF459D590355576E12C0DB43F39B672B2CD912F907CF76A0F6FDA925EB2D205546431BE0B37B20411D3698490455837FE52948613EE5FC2284F00B130C72334B1D8E68C7B09B2DE2E\nencap_coins = 1D0144EA8AA44C56C084F3D692D40EE9ACCA9835F74E2DB60116DB3669C8EF73\nct = 36722258822BC10C21C6B956A9CE0E20587A37959426F955E29400F0951376AE5178939500A844B7EEC60942378A04C882A22EC4DAD2DB8E99BFD80AE328AAE84651D830998CDA34A040C0C437A8731223257C66E2CEAA725E3B960DD415B8D9836D46ECEC0FE9AF5E11FDB3429360BEE9FC982E30643066C187074D40E15C66709B708A75F0FE12162B13963FE157D31DAC282BE5FCE76CF98F190EFFA353BB13CDBAC4D9E3C2763F5113A59B9E8BA6FF28B8D56789FB7C1F3765229D189ACAB4A151CA0761198E6E066A61B103E36C816C340A4F52457CDD0CF9262B12F472D3056F8203ED909C8B41A4CB15AECCA7DBF3B647B5FD0BFE2088D59D1D4DEDD389B1E1C27381BF5B3BFCE87EA5D2A1A6AA833B106F290F41DE6D9D584211DBAC48B14271CAE15F9670E6E17F7AF7D31B2DE8563A4A447FA30709BC5A08F35CEB59344DEA5B8E5C2CBFFDD67A44CF62835EE9E7BC9589D1665A13E81CE0C3F68297566E761D6882087890F40F07EFD39A2CE80B3842EF0A5026A69151CDE5A24C5FA92E201464C9E489185778DE40CC47CC4501013CB2BC59346CF9A9A06F900D01EA97A44B12A2C36BF5BE44056A0D105BE4A12BEDF7398C620ED141D675FEBB33562F7370C347FE1A4E928BC938E20E12C34DC847EDB4B26CCBB25AC9501B60629064DCD442C980E3B97D61A068B3537BD03BE5415D2B1888E6709C1AD089481E19AC241AB5D634253E6A55E53B37E27892E613A0FCA4B99CA57E35F05E8A0E60022CD6F49D17F72AB789DD0AED87BC6A24E7EF0FC175D44E422FB635EE9167B9477C08380C44F378024C12EBE474D8E0DA4FF43411C4A2BFFD06F4FB7DC9ED76F4850457A6D40AB6C719F5B807D770479E21688C4EC219A21FD92254674D5157E27DB71A", + "E04CF6AD241744C04E45FC3A6D89DE74B235A58DB52D6C6306DE576D20A0EC53A78D18E86541C19D93DBC50B202589A85BA31348AC92400492B2C576A1D4EC5768CC9C3ED1A11BE692CFADEC54A99A22B4C49DE79C9C71B074BFCDD94A5DDE7D98AE6C1F68F845946D66781F0EDAEEB4800F5DB88CB599FF2549F36E1465B54B17DED1E8AD960219E4D321DA900E0A53E2DA1A9E5C6BE850D44DDA1E6E0C27290352E801CB219A7AE172C25CA06F51A09FB5B4E2125ABD2B81C830743B6DB4E9994809F67E8EA0975415AF90FF18F6A291D8FFCE133328E7C7385A527683A9CA7FF091C5A24AD40D9E160C1A4D1FD5B84F8CC4716A21AD3DD6D6A25CCD7DB61806D79B9399031D29D3AA3E956F8413045F989F9A54C251ACB972977DADDA61A57E2E61684CE6150A051B4EF75C25FD998E4E9C2537171F37FDF65979B952710690D325ACD6C4A763994F8E73694553D7CA5078E012D596403ECA009E8B4B6F0494E85DC126E89126B6CD1AAC7DAA066DC40D83AB59D34FF8F6EAA1731FB05A473EA81AEEEEF4E5CBAAB2CA862A3132086F498B7FB78C063381F5B4F68090FE998AC8270D6ACE509CD85F6255EB8C1234601BE406D4BA35D8E85D0A\nss = 34385BADB991E44425BCB966AC8DB27AAF0C196288C0415B9774883F95D1432C\n\ncount = 95\nkeypair_coins = 527FB88C8BD9A4D6031DAD15E63878ABD2B559E7E08D61F69E8E78FCA964EE6A229EF54E776C02586F3F46D723E7932215FB7E09C397D1552CDFE3457241FC30\npk = A0E473A9D639B1299251B46D07C79C0DF1CEB995A968B5B707B760D8BCB120F6226EF5B742F34548902A7C73338A8CBF8D6B02A83470874B1EC5845DCFD3A4067C420F8485FAE1286A23ADB7373B9217C6DC173748870BFD164A16D62A3A6608F5E2B7FE78B92364A4B821967DB45AE29AA1B11C0CD67CB4299B32D263AAD7A26EEB3A69BA56790FD806ABE3935D82487AEC3205A856B4981E7F53B8F82A30D13C1B725B1418607B6619B0E8A8870BBA6070E33545730182FB5F6F9938AB2CA68C50719FDB472A88384EF210B0C22785367DEDFC840979AB758479506064B7971426D70AF9A95E7D585DC8B67D4FFC2082BC45A4FA9B4FB9541493C3DFB88FCA757ECCB50F1A9CCED9C046F37062E3879E13958BCF063041E858810B057680276D2CA12A307F511217FD626561587617674319382A4A00CE5E3BCFC5ECB5B3816133910650A469AC663F7A4A742DDB87C4E5BE636213880C246370B1CBB8ADAAB6BB7E1185E1F95C945BB001A0210CF56F326B35051B8DBE85245F9BC6D973B39AFB3A3B961501862B4CAABD0D55693C201390F48FB7511990571985764BE7373A7FC4BBD5E82B31F52494B15B6C2C8B5B593182028BD7AC7A40FB446EA756463C396DE29D0FDBA2569B9001E169F7C824C8A42D313A15B682BD52004867837344324E2F91A06A4C9F7CA447D6291635257CB0934E015C1937F732C1BBA2C13591CCF4ADD16960B2303476000D984A8FC8036772C3B7C5721261387AE535129A7921A1711C98103161A95EBE16C0E0A28555DC3598CAC2D701A98CA249801A4BB10379A5C29A1932ACB6F6C3D040639FA98FA7297C6D453E35587488576DB9BB2F9D1C37F8260CBA3BA90E4B779867AD97DB03FF005ECFE3470D2C25D54105CA287A9E0C039C2A2B71A1CBC6260D59A268D60C05D61202EC336CB8285B41A043BF58949DF50DEF5937BEE1AF32D174E8FB463D03449BA747E92A79A1EAC8DED247AA0A50821A16AD4C9F533A0FA24684D452A71DF461AEE15CDDC2185551112682B4867C6CC27C43BF835432CCA184840B85886A5D970E9F515F7F97151410C401E9BAADF41CE2B8642313C295D28587A327C41C24DA18967A6426663642DCF389C50892D6847718365CBBBB80723C1397B90447B197842C96A141BF6CD317BF12BB64C664FD237E886A9F793313AAB15F668C91C71149C4B90B35B147F7C34B8AB6948799897855B22283050B113D64A60AAC739948844A9F99C448D21C414425D77560670C298F493D891128AB1665D8141D2B1C8E67950A68255B7F9376332B1CD7C6630AC05AE7C127FA7ACC35E640E94285E78661B15B21685A36C889A8CC890CE53C36EF23C2F17CBD8C31351BEBA827949F8707A05324ABF05AA71857BCBE690405AB0030E648FCD3BFC0F2AE2C627E04F490BC3BA237059AB93085DE218029F056B0F57ABD342170F5B16DB069073A3C16BB1C0BDA5136952919B22AC477AC2489237BB0869656614E4AC248B003799C761B2BA5F2711B24A01419C88937DC4CE745ACC16C796E0123A4228EC623A2A4E059B80B72BEB1329C9204B6555B0A62C14DF0B19B4A157BCA985090B428DBA8587B53CA2714B2EC2A04D306B3CD5D09045252960A068412F1BD67B83A217049D0685EC3D63D691559A327B2\nsk = A680635121C694AC4672C809BB3B913E8CA2F659C756DB1D7BB2369F41AB4AC9B3F5141216F3C997B00DCDE37352D46463F371FEC14B26AAB239498D44975F787504815552E727329DD78428F5568B912C76B572AD9B3D335A9F5BC0283C76AEF8D81369A0CEB4523BDC4BB0607C29D9998962F76B217774D74A3453A61FF1F40F89A51365212F39A07E913824BF36B6DBF6C8934014DD8716E998A982B124AED8B082C3A2998708BC1C4733773B73E0BE315203E8E264A032797280CA0AB023A9D81FBF0565F491837CF031E219084B640EE8710589E05E1701870BDB7BF0B0BB539A0B3AB0028447110288C1D7D83F89578413A46B0B04406657B4E7E5A6D04BBB91055BECC8AB907CA9647C4B8B144045B6CABCB974A47A35308A23E9C9281C61C556EC148C9A663AD9518CEA36AAEC71B6995110FC01CB66B75E128478280FCD31A3416A12E28C15BA617574730437DA8BDFB86B58D88C789C4F9E23ADCEE53B170C6A0B80033AD52CFE1A155EA1A568F5B2EF77AB74878E0CE42A1F7C3C845713D17105AB2C91B83836E11B9858A66997B22E8A67682588CA78E6B6D736298EE34B100BCE61E0AD921A9F020A7032351DAED655D35B3659A96B32DB9E68D882FC986DA904408A98C469A84CD29CC999B2B071F84C921C585B9B3233C5BEDF82637BB1253A4B29B36B42B54751DC629A215656AA1890C0C56E0CB62A3C02252B771D72375A60374BF8D84552080E0D456579930B3F2A2A3B7913C031112FABACAEF75BB2DA5202D7671359282CB4707B52740D9CA06AB7034B48A292404D26B6CFD08C8B0DA61550044069F4CF27488C028001F2C29292840B60B321DE5CBDEF1CA216838091C3172ED26D141C957DD93BB6A59D9E883640D87A2A85605A9730DD5333843805374B58747C7262D5A65EF442D6843DEB731C943269B4A9BF00F39B4A3847840C1BF4B9907FD7B9A66C5DA724CEC467102F080D4D0BC519D0B2504A05F7207EDCE7398D009348F64267E01B0EC207780791942565AEB061BF03719D706F87953C4757A75A126EAD15C6C9447C02938C3B75A58AB25CE65A5CAA21898FA8050319880223899F5546E0D253DF7950691B86F8E3115438C3B80CC2E7A6178A96A0F38A0CC47394BE36C9B0721580D646A89B9327210D40728F4BC4ADBD8B130EECCCF528A5A09595F32C0F64E602F6898B8A4C82D79A8ED31C4172A7812C295C93841929B782B334490EEAA38C17CB4E77664306BC7B01726EC656E24311C51B0524C72F0745665D43073604C59EC88DF6FC9EE2F2A0476079BCFB735E562F57E2B0E1987A0220C98F0B4CDEBC70F93CA709C5C2FAC7098A7B866662ACCDF09C85974D7C88CE9AFB01F48276EE320D70C7C0E15950FC0775E13173B60555A470302D0A0047260E5CF85EA2F3C326968D3C308C15EB400B13BCAAA65EBF941EF59A069BA0BD3D00841B6124574303BA8C2BC9F90F107865882C18EBA462F6B09EAEE05796E43A8647C59C64B7A8DB9C0941299280AF728B872C303755B682A3EC10C5876F040543BBA028E870C02A4312AEE9CF2BD1302DF80BD0FACBD0765A778A7FA2D3A4C9675965D6799FC7BD4E28A4E2A53948790234F62BA0E473A9D639B1299251B46D07C79C0DF1CEB995A968B5B707B760D8BCB120F6226EF5B742F34548902A7C73338A8CBF8D6B02A83470874B1EC5845DCFD3A4067C420F8485FAE1286A23ADB7373B9217C6DC173748870BFD164A16D62A3A6608F5E2B7FE78B92364A4B821967DB45AE29AA1B11C0CD67CB4299B32D263AAD7A26EEB3A69BA56790FD806ABE3935D82487AEC3205A856B4981E7F53B8F82A30D13C1B725B1418607B6619B0E8A8870BBA6070E33545730182FB5F6F9938AB2CA68C50719FDB472A88384EF210B0C22785367DEDFC840979AB758479506064B7971426D70AF9A95E7D585DC8B67D4FFC2082BC45A4FA9B4FB9541493C3DFB88FCA757ECCB50F1A9CCED9C046F37062E3879E13958BCF063041E858810B057680276D2CA12A307F511217FD626561587617674319382A4A00CE5E3BCFC5ECB5B3816133910650A469AC663F7A4A742DDB87C4E5BE636213880C246370B1CBB8ADAAB6BB7E1185E1F95C945BB001A0210CF56F326B35051B8DBE85245F9BC6D973B39AFB3A3B961501862B4CAABD0D55693C201390F48FB7511990571985764BE7373A7FC4BBD5E82B31F52494B15B6C2C8B5B593182028BD7AC7A40FB446EA756463C396DE29D0FDBA2569B9001E169F7C824C8A42D313A15B682BD52004867837344324E2F91A06A4C9F7CA447D6291635257CB0934E015C1937F732C1BBA2C13591CCF4ADD16960B2303476000D984A8FC8036772C3B7C5721261387AE535129A7921A1711C98103161A95EBE16C0E0A28555DC3598CAC2D701A98CA249801A4BB10379A5C29A1932ACB6F6C3D040639FA98FA7297C6D453E35587488576DB9BB2F9D1C37F8260CBA3BA90E4B779867AD97DB03FF005ECFE3470D2C25D54105CA287A9E0C039C2A2B71A1CBC6260D59A268D60C05D61202EC336CB8285B41A043BF58949DF50DEF5937BEE1AF32D174E8FB463D03449BA747E92A79A1EAC8DED247AA0A50821A16AD4C9F533A0FA24684D452A71DF461AEE15CDDC2185551112682B4867C6CC27C43BF835432CCA184840B85886A5D970E9F515F7F97151410C401E9BAADF41CE2B8642313C295D28587A327C41C24DA18967A6426663642DCF389C50892D6847718365CBBBB80723C1397B90447B197842C96A141BF6CD317BF12BB64C664FD237E886A9F793313AAB15F668C91C71149C4B90B35B147F7C34B8AB6948799897855B22283050B113D64A60AAC739948844A9F99C448D21C414425D77560670C298F493D891128AB1665D8141D2B1C8E67950A68255B7F9376332B1CD7C6630AC05AE7C127FA7ACC35E640E94285E78661B15B21685A36C889A8CC890CE53C36EF23C2F17CBD8C31351BEBA827949F8707A05324ABF05AA71857BCBE690405AB0030E648FCD3BFC0F2AE2C627E04F490BC3BA237059AB93085DE218029F056B0F57ABD342170F5B16DB069073A3C16BB1C0BDA5136952919B22AC477AC2489237BB0869656614E4AC248B003799C761B2BA5F2711B24A01419C88937DC4CE745ACC16C796E0123A4228EC623A2A4E059B80B72BEB1329C9204B6555B0A62C14DF0B19B4A157BCA985090B428DBA8587B53CA2714B2EC2A04D306B3CD5D09045252960A068412F1BD67B83A217049D0685EC3D63D691559A327B2AAE8E61B905723FA092FB95B839", + "F6DE3670C39CE0498C27B87D20C24E7F64E22229EF54E776C02586F3F46D723E7932215FB7E09C397D1552CDFE3457241FC30\nencap_coins = 1407C5B3005F98C64400FE2201F1A2B77B378FBC8141F175AB2D1C2A58846693\nct = 6E7FA1360F88E9427272ABBDBBD9D21F43894DE5C55CAF16A61609BA4A4DD248EBB8015ABA77B449A1248A2FFAE702B3695DE0AAD27BDF57BA6867CD40EC3398F71E782ACD62E51F7BFF21C87744FB8A7F9945127FF2355C43ABFB1108D8E779EDE235CFA76668BF017E5C77F138F8E6A5DE680A74EC9048FAD377704D5FC06599D4721565A8073C59A872EAF6C3C2AF1B20BE181D0A350E2A50FCDB825D467B318108283ABE2D2088713122BB7245B2A3AEA13B3AEED0F8995A5F1879ADA12E48F02C7837A9BB7B650A815CEA180980D531EB68E68C05A571D6711149ED159BBCEBF72572EF48A7200B487214DBD81D83C9EB3C6686FFFCA4CA89B4D994879E990BCD75B74EA43CD6F49A04CBA7DC87EA217E1FD894B21E4C1E1E433C4C2AF0429B26ADE0FC6605A6CF88AD03CCEB70BCBFACBEE2394FB101B71AEC65489B83ADF18C932A925D5B0BB04A47AA94ACAA2CFA95FBF3AA3A1BE788BC3DF48749571B5A0E55507C59D11FC3A5A545C5F3612AEF4EA464B9179F59BFB9C503EC92DE80B3C3ECF7D921C3D775D9D875BDD6D858F0E419FB4CFF7DA20300064AB372827405BDCC3D87BF53A4ACEB9ECC189BAF4247B8A6B7A8DB669C9C7BC364D976CD0F062601E678D3A8F37B3DDCCC069B60861B9B4638CB17CC9E2C6761C4A582AD425A749A7EE2D5E0050E040A97E5174FFCFE9E5762801C1E5852989579BB0754A7C048E54C1B0AEF6B2A920BEE91E4B3E4DBE7B3087EBEC6B7FDD7DF5EDD27DED6ED3C7A02A0F744E242220BE67BAA45460D4F041976C4A7E0870F96A39E0598F5BFF25821C44D18666143F44039BE1CF8DE4D148109268E54EA5BF79F2B364F8B2F17E098FC7976D75AB1A5A443A5786D8B494CE3B4328C389A90F32974D08C9C2CA2790F7013D2126831DFA992F12560F5B9934D629FDB3C1A339AC255DB4A3E004F46E941A11FF32D8053260B963B335F703E8B00DA71D637CCA89E16A8A9AF4DC92AC18B1B0F62853A875C955F8ACDEE5E63D4EFDD1C2D26F9342D431A100E02C27C57485DE327CA97A27B53A6BC30EEDECD8F7BA7E7E700D2B0BBFA14AAAFBA97306BC3D15841D58BA4A6F244D0045DF58ECFFED690DAE96C6584E6EFA35AD010DFB21F348B965626B541D4043D3B073DF8C020B5E8B2FCCE6B18125C114F21AE1D5678E0CBF34ACB2C0C2B4E4DB7A3CC4F45E63344041EF4D7225CFBDC4D9CF3F8F6C5566090335580F83E2A80188DB667BB0F5F5812BBDFBB35C5D71F31FBC2AC335EAE54677163ABD787FF7F6617EF9CD3DD2BCBE92080BF1D76FC83EE209F364AD7ABA07A9224C81006194ADA80E51E34C9180E11478EAE8962551C9037C1A639DD8B3A4B400B41F2382CD7F4E5D65C50D864794A5A3F224125C7E9E7693FCADE8D8EA63BC182F8E1EB8F70FDA2BA6EAE74E32EDC9A3DEB421E52C05DB0E81A3F23CA3DB18D5C7F5DD1A0B73E7515AD7721AC37F54ABC634A66C874D7499A74E00F471CF76ADB9B023D93E9512C19B9974064B2F61AD9B13E133C60\nss = 4726929011926EB0AE28133055EDB8E1D5FC8B879807F33C80D5C79D691C52E5\n\ncount = 96\nkeypair_coins = AC6FCFAEEEF795B6EF9E062F02BF42975FA01E7D91BA832F74E05269A72684D066BBD48DEEA2A0A14BCAA97E18D848E609339DC39BCECCE7077F2D7432DA536E\npk = 4D960C98359F5719B20DCA6D1E2916F2829E73F79B55B468170B64F2F8B0C788796801C8EC244E1973C7E033B768414C55D43079B2711BDA630E678B184A70DD161C4DABBCB91C07FB634620D1450664A444E82D22A0A4F54AC6C7C02D74120B2CE205FE49A139B9C8194341F4295EF126B37F3B22E35792A8853B60EB3F7ED01314491C4451470870A5EA5B1D23442019BC1DEF547FB8935ECBEBA0833228B8D7BF2A4ACA52436A3F993F6164666EBB3C38317BF5B48CC7182C00D58D4A095D0FD4C60E4229E77803C4F38F22464C7A4259E45AC71E8CCDE6E5738DCC798777317F9847F8357DCE21B24AE462D0465F1D58203F3B8590D88DEB9C6DF4722A1420A9EA0813EC3777A6CB11CA0271292B6C662A870C292291164004299C82442A8DD5404E74CFBCB45175237AE5649F7136CB47B9C6C053203F265BAB420EEE2C95A5960F8A87C3333785E1B89FF841A6AA5AA964F3A853E512ACABB60E29C3A4810DF33830134C0E49BC5E1BA41B07B671E1BA6BFDA82576406E6DA854920A46914C8EA986B1D6A0328D4A450FC0CE698B9D16954AAA0C52B6F2B5FF7B5347E84C3AF403E9B31EC180238CD5AF96F5C6F0D3644AB51717F7255AD6551F44378294778937CC56B610680704BFB37E3CCC07C5276777E37F36623DEC8225388C3A5A2C7026EB902C63260CE27FFE657BCE34A47DB43667B9293E04AB9677B6FDB0B0A429A4435A9F5624628A2C07BBFA8AFED562BE4233019524E67CAE6F955226437433BC59835561C462071AC38058C145787C242D4B6DC055170675190882792EA49726DC8B2CB638763784D3C23E1791C93A55383A8C4B59643626F8948D228B670312893AB3CE5B123401B1B24432545889D4D124D2B846070C1663B87A3475C01ADC4F4DF286FC91C76B018C05B5A26A696DF86C4B1FBB2ED3050CC9B54CA2786839F854B9461655972FE21C3C98007A693A4D0B8AAFA3AB73F1C411DD283CCE59528477B6E089847CE6518F29B523602F80AC573618070BCA649EFB84FC3947D43B229E05682914C153809521EC9B7978A6BD667F59B18F1D986222DC9AB345AD2C7C7CC5799C15297C22C3734DF18A218C5BACB364C9136B8E055053567A1856C21B96A1A2723913C98CC364BBD1FC4EDEF37E1853C523727A6C677CA4C82AC4D49238E1B60C1531D1DC9835C4A96124A0011C09350353AAC4568A84293E8666F6016E56C38371489EDDBB3DF3E53E6767BD01E231EB122F13F59A83A35101844AB389954E8068F6D7128C738AC1774EDC6465EAE8CCBABCBB41271467C407D36928D9E3174C99665E3A9AF0FC1B2733925B254A3ABA050EC3925DABC511427C0B2930BCA63BA7629366C1BA620CC0D7090752157B5D70C098745E37DB7316056C7BB37C024226425107DA8BA0E9C30E2606752F31A017E50A0E10C05332677EC851EAE14F594A55D07392C23A962248CCEE1221FEB2C8F801860892B33EF2247B801E5FF55BA97675A71037FD133133840050B8B7914125E9D30165847319EB1E483005CA0BB8338B75EED618C47408D0260DDFB1527640A148F29E64F65FCAFC59A8715A8126830024767009BAD41A3385C0173BE51A35F3825843B59FE06B5FC03DC21F6D925B9F6D92FFF175C9DD625BFAF502B4E2870961858852\nsk = CF8293B02A9A6F579F51066BD6E51ABD270104634CFD482823102F2B63B18A8BB4F45A5AF4D8202523CC1779B44FD283860BD004307C399CA5D8EACADE156AF824A988F5AC6BB50EAFA6177A95B9752C922BD6A7C4265A6A88B11D0403E47127B1E80787742669E763929483393CAD6EF91F18143E9D2B7CD3E028C6F56B91768113259BCAB926A082A2A6185A1BF18656448A628258E21A3C6CCA23449B4F9483AE9D01BDD4BC674E06566300AD2A215809E547E2626F8D9437BAA727F3F05C31E85E4D34643148981BB6A82C3C75099A33A0E7528D45303D98223E1A4EF6536170F53A0C61004BEB75FA34B8AED5156E4A538269775808283CB0BA5282607D50661D2A626FAC2737C98CF33050353BB83E1C1136F1C26FE48D81973EB974AB1BA4B97C95C0DEE065523430CC06620DEBBA3DB92888497658BC5C64B98BE65AB2A0738F0750022B95A66C583354A63865B5237FE7098D279C53F731F3FCAE8689754194A7B888199B89761FD09FF75677B2C500D7359905E76357163834712659F26D0D8C9B47192404975CFB89969A77615D1A3FB404BAAA54511FF1B3B08C1577EB274F5B3B0B825434E87F60D18FA73141F912701A99A7C11305000789229A144A0899685596AA646F13573EBA0B54DD3205DE2C60C3CA1614066474B89F2377994BD14EE0A77E1D4C0AF77748C1E623CB8947A98636694C4EFAF0CE2BF779C66A317989A335A0071505831471C8D845A5FA4B3E42D195074244F70578124C4C7894AB84584DAEC8C13A6598524C023CA99F4C0499A68ACA3E6827798B10EF9A4639605E2FE8656606438274AC8ED8C87AE0A16BA3B8E5857A7F25831D8B85BC7105828575320C6BABA75489455154B31E50074A313BA9AD10B747F39405544F44949DDE165070C8271F1BA80E57BB5BD1320C8A1F8FB47354079532BBA51282AE3197026E18C46AE6B2AB9940EABA9F1EE421592770C9A9604263A4917C825C084C3534381F22C057592DD97940ADB1A439D5128CF795CDD25640FA9229220A1CE4A6624CC9956105465246334C77FFCB9907159461CB1416637D8DF34AB4B401413C27B6D5A1D23331F88273222653ADF9685A614BEC9840355B1A23A0C4CE60B0B678AFFED200BCB383BEC2580C89127B2870745C15570BA1CEC89F5DCCC47BE517BB020C57959E433C11DF10810D5B37AA8AB3392B3358793246F11ECE238646724BEB859C861463C42B5030D9A1FDBA3E1D391F9CA5A99DF58A7948C66FA2B50864B73A40B52DC7CFF031B3A3B21009268CD5CB00A89B44C156333B802AD03B2F07F70F7C11057CE78705AB6EE43681AFF0874030807412A7743399CAE832F6F3B65DF56AB1B30D6967379E10B4EF53B9EFB5632A23B942F832A7FA22CDE494B0C7393D51AC807A38AF119D526A5A3B91068E107812269EC85410AA739C288C20446B68880343F2E12157094DD424A349D1523E76C0ACB9C29C22B6346386B522B0466BC8A85B97430A1DF80850510C4825EC4F2AAB987C4A07F11693E7BBB4662A4890A3C54EBC0CBBD75CA468428E38276E81C43D81A8D0E3BDBEBAC9AEB89FC9D7870BB88C5C16A137C41FEE75640774C4B536BB1D7BBCE797844D960C98359F5719B20DCA6D1E2916F2829E73F79B55B468170B64F2F8B0C788796801C8EC244E1973C7E033B768414C55D43079B2711BDA630E678B184A70DD161C4DABBCB91C07FB634620D1450664A444E82D22A0A4F54AC6C7C02D74120B2CE205FE49A139B9C8194341F4295EF126B37F3B22E35792A8853B60EB3F7ED01314491C4451470870A5EA5B1D23442019BC1DEF547FB8935ECBEBA0833228B8D7BF2A4ACA52436A3F993F6164666EBB3C38317BF5B48CC7182C00D58D4A095D0FD4C60E4229E77803C4F38F22464C7A4259E45AC71E8CCDE6E5738DCC798777317F9847F8357DCE21B24AE462D0465F1D58203F3B8590D88DEB9C6DF4722A1420A9EA0813EC3777A6CB11CA0271292B6C662A870C292291164004299C82442A8DD5404E74CFBCB45175237AE5649F7136CB47B9C6C053203F265BAB420EEE2C95A5960F8A87C3333785E1B89FF841A6AA5AA964F3A853E512ACABB60E29C3A4810DF33830134C0E49BC5E1BA41B07B671E1BA6BFDA82576406E6DA854920A46914C8EA986B1D6A0328D4A450FC0CE698B9D16954AAA0C52B6F2B5FF7B5347E84C3AF403E9B31EC180238CD5AF96F5C6F0D3644AB51717F7255AD6551F44378294778937CC56B610680704B", + "FB37E3CCC07C5276777E37F36623DEC8225388C3A5A2C7026EB902C63260CE27FFE657BCE34A47DB43667B9293E04AB9677B6FDB0B0A429A4435A9F5624628A2C07BBFA8AFED562BE4233019524E67CAE6F955226437433BC59835561C462071AC38058C145787C242D4B6DC055170675190882792EA49726DC8B2CB638763784D3C23E1791C93A55383A8C4B59643626F8948D228B670312893AB3CE5B123401B1B24432545889D4D124D2B846070C1663B87A3475C01ADC4F4DF286FC91C76B018C05B5A26A696DF86C4B1FBB2ED3050CC9B54CA2786839F854B9461655972FE21C3C98007A693A4D0B8AAFA3AB73F1C411DD283CCE59528477B6E089847CE6518F29B523602F80AC573618070BCA649EFB84FC3947D43B229E05682914C153809521EC9B7978A6BD667F59B18F1D986222DC9AB345AD2C7C7CC5799C15297C22C3734DF18A218C5BACB364C9136B8E055053567A1856C21B96A1A2723913C98CC364BBD1FC4EDEF37E1853C523727A6C677CA4C82AC4D49238E1B60C1531D1DC9835C4A96124A0011C09350353AAC4568A84293E8666F6016E56C38371489EDDBB3DF3E53E6767BD01E231EB122F13F59A83A35101844AB389954E8068F6D7128C738AC1774EDC6465EAE8CCBABCBB41271467C407D36928D9E3174C99665E3A9AF0FC1B2733925B254A3ABA050EC3925DABC511427C0B2930BCA63BA7629366C1BA620CC0D7090752157B5D70C098745E37DB7316056C7BB37C024226425107DA8BA0E9C30E2606752F31A017E50A0E10C05332677EC851EAE14F594A55D07392C23A962248CCEE1221FEB2C8F801860892B33EF2247B801E5FF55BA97675A71037FD133133840050B8B7914125E9D30165847319EB1E483005CA0BB8338B75EED618C47408D0260DDFB1527640A148F29E64F65FCAFC59A8715A8126830024767009BAD41A3385C0173BE51A35F3825843B59FE06B5FC03DC21F6D925B9F6D92FFF175C9DD625BFAF502B4E287096185885264E085F67E48F00A7A7F82963E8C67176BFF839A54FA1008328C0612F98D83D366BBD48DEEA2A0A14BCAA97E18D848E609339DC39BCECCE7077F2D7432DA536E\nencap_coins = 19428B5875ABCE53A0C9BAAEA7707855E56D971083793B2960986D38E2880449\nct = 285206087C2F1F2DA73FB53A8A9492E14C9DDCA39BE5DD8C0445CB65855F2865A80C67ADB7B2C71BCA1CF9D5C4682AB00882404CA646C3437CE8E1F09916229E44955A6F9E2651CE9534BDF1BCBEE6BE2A75C64DC263385319F1CA3ADB0A29D01DD0D947C3D55A716893F2B4BF5064E5E62CCE3763B966BF0495C67A9042AD7527308D603BD9E01447800168997AD0C6D855128C70AA4D8BF556FA650BAE29AFA2AA7A06C37AB8C4F0C0B2E226D7EADAA83096C62D2DFE51B99CDF0A0923AB8FCA6922347257BF7526D6E4588E1CF9A844BCDFE26E26BFC8E9E1373B5195A11341757CB36575A57D994E1B105736C4CE12E05F1298ABA38BA60EC6EF6A3F2E830C0B05D53EC2580A86032EFCCE78C73AE9C69647FA5EC969F3795208DFC3FBFC1C403F085483700CC3052491660C48BC22A02555FF2134B7E244E527C606AA720DDCDCD0D61FF409F8A1C87C68E241ED0CE7BB15FD3ED4506E9D5DF256D3DE1D1553B5AFD03A970F2CA4EB32477CA4DFE2CB16B72ABDB91AD0F3AF94FE6C7546398DD6A38115A040AE2F53DE31EB9E99F28890A74487E112644E4AE1D631DFB5526E3E506F4CEC0D0DCEC28BF564F1DAA7CF7DE4E2AC8625D54129571A83E8B3BBAC42B6F7EC44675106516ABEA99D562747CE095C4A123A550428C7B538C8B77C9E259704BDE0887A22D065D77EF264E20E6DBE9C48FBE956F20BF4ACD2207925CE9CBFC6D21FC392A1D7423AC4A4E14D34ADFA063798F61DADEDB2FA2E118765C05828B99FAA5386C8AFC6F21133B486346321A12B70552BCC8F416826F868E8ABE6D6741F950199ACD57C1B2D64F8CBC849424CACF28AD11B781087552C5D82C038B82BFCA8812C41BB59185A6128994C734D5EF18E72022895BCAAF8B019B565E3CD90A150677D5F35A5C1A0E505ED07EEB8A371B76DF239736CFACF6ABDA3ADD732CCB13FB540C61DADAA340E8E67ED78FB5A664C3198A7B303AF891678948C30B8BAEE0A9DE7AA9F7767875A2A8F0C59B51F8381022307127259427E8441F83664AA990D7179F78CF67DEBE307493439869612E85A38001B613ECA57E0B04BFD94710BFB80F73EF9088317713D1AF8A7F531C5EF3E5E56A647B007681555B2FCD6C9C0D88427D7F42077E5D12AD7C940127DEC837A68FAA0095133015E22E3377995DE41EA9F6E194954E5D57665EACC4A12D1ACD827C2AFF7757DA74A17CE472B019B6E220C7B97137FE4C7BDF997B3ADD4E0E2AC771D6B7D4CE4826493DC3B8B0197C384FA38AAA4B26C36D9E9A7E1E328E577F8E6AE4A297B2D111F4B1A85E33CC05EDAE592FBDF47AB23766FF91C3F90054A18BBDA4D15CDF4BFAA34A03D8052C6F4C08909638C79EB022B27CB32F2E3DB8F39265DB9FE120F52859AE0CCC2ABFA7DBA6A09317F02831C15850D331B51BF89D2D7656AD228D3FF95E63E9A0AD0A026835F681503F2D0B68297B662B2B247D6C7E4EA6F8E098B1D9DD41E93883A1FFA36D95902BA2EC6CD05F6DF85EE8B2C5C1C56EBF9CC0FB5BC11\nss = 292E6DAE0A593D50F6FB50A8AD71DAFC9BC616E7BB9AD7985D31B49DE6EAFB5D\n\ncount = 97\nkeypair_coins = BA2FB9318D4DBE7488057C33E95E6F054583A2800C41BB83083C330A914A12CF3E3A1BCD39C74C1B899FFA21A6FE100804A551199D32DB4A75E6314BFB58F70E\npk = B49B9264FAAFE731C0DEE965AC981965A28FF907CEABAC477E2C9B6DC95AAEB0531CBCB65D8B3F6251BE17ECAA89A5B57C1198EA66AF1F4461B91C360E4531C4D49269896107F10ED1F1070E68CDDB2A4E06C387F3126087A71A366A250B450BE1567DC957BBD034B66AB65FD4EAB2D89B8481EC2427A4AF3C1B861C799263F492779053A0128508C86EBD6201C876BBE8AB8053B790314047A1901C9F327207B2130BE5BCE8504BB03817A380975CD81FE0C0416986A7B74A16A21146636ABE4D2B2C5C1223D39265A6845804D49E5F160ABFE3CA21A345B5D044AFA5636C37B976F2894869BF4500C62AE9941B9B3C3E6064FEC351268243FD75BF287CAE8AAA9AAEFC1CFBA1032AD2623A6239A7F834A4826F86132B59AB24EFC9C57CBA929A64BA90271B987BC08A913298911650399429E9BFC40742DF735F7CB935EDA73A41F96CAACBB34324B29E64348C6063AEB0BCEE9066028B3340AA147B09C42752CFD6D491FFA497E17AB6C0726AEFE59C2577764A1A996FD879E58C23F1C0AC9E9372B3F0BE42C829B7B09ACB722E3189A2B3E72124895CCAB565DAE583C6C76C34C2C0075568379639869325F6E92E0B91A2D4100B2F4AA6486B756CD521E1B781A964A21B8B0C72637A2E4299FE15C1AC275FB077CF42F36453E7603C91A648E09CBF128ED188639B7247584B333003A2175BC587925111654F24680C540B32643B035FF38BB4598785524504EBCB26163D513867D74744C8B562BD48989B3A328374A125CA05FA962AC08B0D22277E578206A165A9E3D31A084B4492C664448AA62986B55FE8C8420816A5A9C035644F592969FD0951B6E9AA57303D1F9927FF6B3DE99263E2E11CD8317CFC899A45706746E9850922B9A4F9CDE515623F3C48B86379C969969934CCBEC4BEA3E9796889CBCC56285E9A85F0B3471BF9692F3C72FFD945089B9A262AC1A8844C38C807F7274708AA0587F94A107089A99694FC627291C30FD6B0430ECA692DB54A96019EAF89635CF54F579A63048070B7F32DD2C32A18E2B7E8400344412E9DC5943BF3AF11B4AA6C328499DA7C220670958A22BFFC89B8F0091C8665B6605571D8A1B5C934CE4686C7C047AE416BC6E39B7CCC92CB076DE94001374217E9B8820354351CB377B4F06B7FBB69F64C7B48F781DED2CFEE998718D875EB94866E7C5135358EA4EC92849978438C77CEC1BA1803BF9933C8856657C953125EB76014BACCA8EC9BE6290936130D166B187E1463E55CAE3AD85E96E81BC574220AB0CD374AA1F657ABEA849259B4431F1A00EE59B35486BEB09302BF71B4C2E840963333B4A3BE37F8048D42A0F67C886DE9B47611555495248AD4C587577D45775F52135518793EA14582BF153C74210C36B9251609A4B28559ADE5A93203725A475971B92BEB88A69357BF83F384577CC1DFB62C70FC65401073C67A66AF878FD961BACF46C633E7CAC0E5092458CBBA0C3B69494C4C0C0DA6025CD6516C1AB89B3216BB9BA123040051563610251974A0B11BE7190504522A128CA3107938F5B18E4441B52F7944B0E54CD3946C57E7AE3475BEC06791A9F5A83EACBB12F40AC971CB475610A0E6C546998DAFE5C2ED852D7715B3DBA61B94849DEA30E28720BBCB90C7AF7FEB0AF619A0CF57D173405C82\nsk = A428A1343429CE9C3DADBB6213410E264426D1CB5C69C68E7F377BCBC454AAF867771258FAA622B6367FC5CC46E960682A3984A13230B3D7C25A69CE4AB9AF0234A109878E0CC42A9B858DC559AD3FE82C4060539C08828C51B337B7C0EA768BA646A2F04900A235A4042B88E8934D3B62821A13B67A912F162AA80953CB71C396D91B91521B6665062551E0A6CE453C233460789138CB16AC6E598F670C70D6325804CC494466710D984E3EA551F5EC60C5031E94421919F62C301181831B7FB4FC61DA443FE12784CF84B5ECF240DAECC87D711AAD10808B96233D345BA80B0469797DC03583214355E8E9A356E367A593A6898355AD129A8546A0D03B2279021889C118DB3583DA691A9AD544086540BB2178B2125F00C94AE753038486B6CDF1CF7E5A2202290B4E5AC807EB04BEA95678B52FF76C4757C68D2EB9283B8766F1A39E06C999015B1F1D5C3164338AEB432D54B338C361B9A7258981555FC2563E585A6FF60886C32343E0045746E50FE78A0A9BCBB6281ABE3474BA50E1267B3276A1327A8F128E2B5AB077618C59902C35488553F745D2A0C942B81C0AAB7AFD0C869B9B9C66C1847257CB22B018B81B25C468A9BC35A180B090F4BB90C4EC035C0078B799046833CD90F7BC2678CAB9B75B95A6B457DCA8FCB84937C01479A0B7B6DA9643DA507A2B8B1AE25373825189729BDA8B35FCEA315B3B359705CD5B486582379093E64F431309F0389FF899BEB4C3CA9689B412A210EB654F183362AB8398B1E3696DF7432BE662CBE62666471F2C056504A5C1C91017A6326ACC7306524058FD0937DDEAB972B00734F60D065A1BA8655DBA3093D161B99E698FC778B2FE782FA8EC7C62D422E17B24FD107B87A8338AE7AF6994C70D959CBFC3720B3174B9658F5D43713CD47325EB926320073F384F04E6831435524B686F2CD377C18363F8E554DBE6AF09F93C2FF2A1F4A87159472E7D7A4DB9243A1C6A636AD50735B870F1297B6D6B5303E2552A54AA5991340AA40301CA2D6BD9A765B72FBDE1C3C44A7649EA350E00CDE59628E06ACAD29888C9B73CF0AA65D44B60F086C21C6ABCBD544295317B55EA9AB1117989AB7B7304304E5612119396727943678C31CF2B1779C946B82420A557A8D6426263D33C7F71591C7857E90A7FA05158E315AE19D1046249B3011B22291CAE30501D1423674824B852C34C97258AB972AF6C5195FFA20B6", + "CF05BA0498A529756F173349BEC8C180869293C5967454D01CB3C8EDC7A3A776DBA54C37513727A69CAACFBAAD8EC4A529A1872CA25CB4A99C38B225E379ACE27485D8B91FEF9CEB97C04322B59F533745D23720AE457FA11B3A0B831DE777D07F88ED1771FA1D89DB9ACBC7BAC471BD423ACAC482BFB29DE13881AEAAAE2F340C1E747A73B9071CC551EA59B03646B65BC2E6E04875754A77025985A026ADCD321574AB45CDA47134B560219338FC93B0A398D7F85169B4B32C2EC3A06529F8E3A57FD353327B03F87D5CB60C67074146FB460476C92619D9C23BA7A371FD9425CFC6486992959109CFA1C1A75AB9EBA4235AF63C6F8648AE7855A4EAB5C9D3923386996181980B16B02A53060E5A64A8CF3CED087BBB49B9264FAAFE731C0DEE965AC981965A28FF907CEABAC477E2C9B6DC95AAEB0531CBCB65D8B3F6251BE17ECAA89A5B57C1198EA66AF1F4461B91C360E4531C4D49269896107F10ED1F1070E68CDDB2A4E06C387F3126087A71A366A250B450BE1567DC957BBD034B66AB65FD4EAB2D89B8481EC2427A4AF3C1B861C799263F492779053A0128508C86EBD6201C876BBE8AB8053B790314047A1901C9F327207B2130BE5BCE8504BB03817A380975CD81FE0C0416986A7B74A16A21146636ABE4D2B2C5C1223D39265A6845804D49E5F160ABFE3CA21A345B5D044AFA5636C37B976F2894869BF4500C62AE9941B9B3C3E6064FEC351268243FD75BF287CAE8AAA9AAEFC1CFBA1032AD2623A6239A7F834A4826F86132B59AB24EFC9C57CBA929A64BA90271B987BC08A913298911650399429E9BFC40742DF735F7CB935EDA73A41F96CAACBB34324B29E64348C6063AEB0BCEE9066028B3340AA147B09C42752CFD6D491FFA497E17AB6C0726AEFE59C2577764A1A996FD879E58C23F1C0AC9E9372B3F0BE42C829B7B09ACB722E3189A2B3E72124895CCAB565DAE583C6C76C34C2C0075568379639869325F6E92E0B91A2D4100B2F4AA6486B756CD521E1B781A964A21B8B0C72637A2E4299FE15C1AC275FB077CF42F36453E7603C91A648E09CBF128ED188639B7247584B333003A2175BC587925111654F24680C540B32643B035FF38BB4598785524504EBCB26163D513867D74744C8B562BD48989B3A328374A125CA05FA962AC08B0D22277E578206A165A9E3D31A084B4492C664448AA62986B55FE8C8420816A5A9C035644F592969FD0951B6E9AA57303D1F9927FF6B3DE99263E2E11CD8317CFC899A45706746E9850922B9A4F9CDE515623F3C48B86379C969969934CCBEC4BEA3E9796889CBCC56285E9A85F0B3471BF9692F3C72FFD945089B9A262AC1A8844C38C807F7274708AA0587F94A107089A99694FC627291C30FD6B0430ECA692DB54A96019EAF89635CF54F579A63048070B7F32DD2C32A18E2B7E8400344412E9DC5943BF3AF11B4AA6C328499DA7C220670958A22BFFC89B8F0091C8665B6605571D8A1B5C934CE4686C7C047AE416BC6E39B7CCC92CB076DE94001374217E9B8820354351CB377B4F06B7FBB69F64C7B48F781DED2CFEE998718D875EB94866E7C5135358EA4EC92849978438C77CEC1BA1803BF9933C8856657C953125EB76014BACCA8EC9BE6290936130D166B187E1463E55CAE3AD85E96E81BC574220AB0CD374AA1F657ABEA849259B4431F1A00EE59B35486BEB09302BF71B4C2E840963333B4A3BE37F8048D42A0F67C886DE9B47611555495248AD4C587577D45775F52135518793EA14582BF153C74210C36B9251609A4B28559ADE5A93203725A475971B92BEB88A69357BF83F384577CC1DFB62C70FC65401073C67A66AF878FD961BACF46C633E7CAC0E5092458CBBA0C3B69494C4C0C0DA6025CD6516C1AB89B3216BB9BA123040051563610251974A0B11BE7190504522A128CA3107938F5B18E4441B52F7944B0E54CD3946C57E7AE3475BEC06791A9F5A83EACBB12F40AC971CB475610A0E6C546998DAFE5C2ED852D7715B3DBA61B94849DEA30E28720BBCB90C7AF7FEB0AF619A0CF57D173405C828DAB879DE09B58D0FC7ADE140393FFB5343ABBDDABDC118FAD519B14436A964C3E3A1BCD39C74C1B899FFA21A6FE100804A551199D32DB4A75E6314BFB58F70E\nencap_coins = EEC1E23E58387EA5247E118B6204176E01C8FDE4EBF069F4B1A460713B5D5FC8\nct = 5F5EBA019340717CEEFA6DFDCC3E1F9BD574615FFF6A22A04DFF4DADF3495A0BA0E36EB96F68ED803CC27E4B585F1A29D2604D41EA48C5C57E6CFBC1F192DBEAE2AF413893CF9247F2110068FE54D45024955F53E9F7CAAFA6CE6062F14FDD118F9F50F08E03FFCE928625F246DF6E295701D68009ABE021B3980119325D9D643B74E1F59441821D89590820E759179F1572E3852099652BEC299C2658E0F421C84362077D962A2456894735F8BA17E01AAEB3530B4A3563F11F24E7C168160981E9570FED394B5F831BAAF1330180F33BAACC82DCF1D01F12F8DE83FDA7985E024A6D86E1E4D2B4C5D16659A28B7D7DBA1F169138C327052BE90E0831CFE40098B1E5C628CA39C1B6CF55352E9E86CCF1E71AC2A1580375BC01375BFC13DB35E1A9B4CEDD171718A5A7075B6949224215027901053ABBFDD7C6DAD93513CBF527DD1F434EAE116C598014C016212D2FC1F7D135EFD6628D66B6F218BA6A015CECC346EF6EC19881F2938E808597363B2727B56029D3A8DA7EAA4323C07598B579CA4F31BA0EFF662CA695D15B8887AAAC844E5FBD485493CCA8DC24713F49F8FC5A0496250A9AC8CE238531572A8F85AB15FE2DBD70E3CBDA4D10773D49320909F24A4DB226D5219A2D6001A338EBC6E102731A2CA5AFE904C57BBD0B066ABB14B4C26140B37AF78B2E9C88E3348AC5BDEAC65D22BB5971DBCA83672EFD509AC8CA5F7DB02405CDD35E3A24BF23CE5001341058409AA0089EF70D7953DBB679254B8100A1700F03C72501F43EB1D1D5F35B39AD4FCF636C3489DD50823A7883F65E892BB78629F8CDDBB27772ADB7E4D4DF5CBB2A3BF8B5013E8495E613F14D2A580568ED474062CA51B308EB187D315D20838B20F2338ACEE81AD6AB2EA7B26656DD289E87E2B99FB0E1C339481A1B164116428F4220CBBC4577103571DA57FF0E11EBAFFA55B6871639E13DFCBD8191FE83E6B5A4E276E3A86128B3C703C8DBBA5F0AC0BE8080AB93335472299547DF0A1A25617909F1F7A8D6D9796B5F790B89A41A504E95B8DB89A3D1192E34B9F1A654214BCDC98C2F20EC94D2B704352E196F73C1A7A526E2E10678FD3417D7A662A8A993850E1F903E85CC5ABB8A13CA0CEA263DAC3E4C3911A56CD439DFF978D1CBFADBFAF828D45C4DA2FB5F5E6E0C910654298A03500662F9A4EFA5E26B74008CCD1E78B0B879AEBD3CA35E2AC898AC070AD60C7E15107A5B2E5A587E06960179319E6A0B14F25DDC4338B4C3DCDB2C288DF9186FF7ABCC4EBBF9D018A9D98C21F4F7266F8F210DA4385C42738BC75260F4B496F82C67990D12CB5AED10F08184DD94C6A1AF42F8E8D99F5B014C6D8666AD536926366DB3A146B12793AE2480DFAC7E7ADE569AA3A4717ACD44B36B926E15BF0E3EE921233DDB6F3FCB8569D1EF0A74E2F851D2DCA7013747D361627B98269C35C71E39FB24D1A02397701D9E81D4D6C793DCB777FF6BE9BD25B33468C8E1F14A2A39B705F0DB73332246B82B01BECD0BDB42329FAF684C3AC61A\nss = 6AA07D31CAECD34B786845D20E24DB069D24B6301A8E90CD2BADA69023B3CF48\n\ncount = 98\nkeypair_coins = AA6DD1E5799CDF7AF9C4FC632B3EB9D51D66E85C8E0A21EC98664FC51AB63C7DAFF7ECFE33EFE4042A44F2F801170616925BE8CCA1BD1812A7335DCD80F9CF14\npk = BC962535672A8D77C9EAF9726CC1A8B8D87D61B1461F33B7F7F5A003A8657297CD100324FEA561BA879FFA75287D9A838275734593ABC2B842D9353906334D3F9324C7D00EED794C78310421DB45CAB6900817348D67490BF1485E85A3DFA255694915D286AB5243B62D3A91F8493F0B19626FB89C0B9109C6E1084BD8C848C06B3472A65A2646DD89BE2D922A0D2C5E816652C826854AB36F44809EE56C9F7E26A1DC30823535997A05255756704AA1029B86601E2853C2D34A192A9B2B76B31C69C1A048A76A6A58E48BC8E512B1C767347AE28AE046076C20179D0977D2D54A3F78ADD2EC6BC06071D9447F0461846FB1A5E91A760112424082C2994A98D07AAB29E818FD15134DE437C7FBC59469CE8BA80545A4A5BF337FE142B72E602D8A1B3009CC95975759AD38274E234AEF0552B8AA65CDFCAC975495A84C124F8426A9C87D8DB03CE48B0382642CB9E31CE210B774724912B09B16D88AE007AC4542C092F9BBED9C262D823D9D5719B357821D4C245F384FC923CD334B9DFF579E324A0BCFBCBA61FB7AE9F69B3AB88693E005EE32BD1A6A3CA950A22421125391A060276B07242A795085D0098906969C421CBC469128FB5393B72590FD391DCDFA3CF87B9F7A4C6CC3A1791AE1717478A5280A3B7580BBEDF88F0DD7C1C09AA67D6B284334049398BA983BCBACB8C56237BC3EFB3FBFDCB358A006457832DF7A01EFD937E68B3299580CBE1C9F69E165D22683B3721E4189ADAAA91846B7717D41BAF8D9A1DC76C387F0B55C2552533326597466ECF06ACA624FBF73226E471D835B0EE4A24A8F1C5FBE359C61D974A4D57C2F7C49822286CA27116839B784D6782C13B606B87804BA0969C7C47C7A29CE16CECFF5514028C3D84944EC8CAB4B4ACB5B681723511087E25B8AE84F3741A2DE6CC21E7A370B35C255C34555F29645D4B420494C4D993BA3F092EE240F1D3691753420891ACFC9421C361CA2186B563ED63456096227EAA738A33AB56029976C1125DCA790114AEB83AEBCF271ED59BBC2E8377301B53D697CFABB4C6B40BAE19B6CECD421A1109F9CAC7B71C749E60A2005A30179C393D5033CB4F8795DE4C98D91538FB9A8CB1654B1E6A82918471470461F54CC71FBA50DEB3E1221C55AA616AD5262E352ADB7A89CA04557A2090FB05704B9521809B8CABFA325892AB46765CEE83850586918422212C812373A1C6217BA890B4C5310F7B0D5D8275B884AA9E4914C85023AB53BEA88AD4281A7F501A87534AC1D806B0F8691E9F1BC7171001043015B391CFAC09B5FA88F840C63194632BD5A012B34B50441BA08C879C44654F136CCCBB7114F7B4099016E0193CBBAE63522927DF4B740B3CA5B32B741EA15A47370B98926A1F90618F5235357E8087443C93444803DD22BBDD5340C876D41F3AC1DB59E9EF17DB71369A315600FC6801A54483FB015AD3766284A97CBC241AD73461F4B2A0F6645EF428805762A6E57474D29288404AD98FAB63AE95E25436626BC66EE10C01E55103597288AC521B463886F863833948455319D3455110B68BF7BC495D1A922191A1A230A5F036C3C4AC05EE2609D09891CE368C01F037D818805A566193A433E924B30F4E86DC76AE2B345932A0E7025F8CE6101884469E31AEACAF4D77E3F1201BC75\nsk = FA198BB15B4278509DC232002C75A8BBF1853C474C8248B5062821E4D77FD5880979922016D17377F76A89AB9477A1024C9780FB728F6DF3295666828143C52FE817B9688C70EBA292D2716AB4970840ABC4603F597B5FCDEB0144813602242625A067EA48B426738DAD0AB986369AA5326DD199C72212C59AB20C8F63429683721A2C682C5AA85", + "3B86542698732AB86FE39C340DB2D452286FDD599336B9923599B66C144C0C7848C20A6979133FB7B5EFA3726A4F44389CB93D6A9C1B7E300CB852698C236AC00B2855861C88BAD062A25423362C7774C1626834EE59880762508FB518F926A3F475D01AA8E5C8C4140537091D494AF66B0E9426359032A2264AF67E63541C2408B1853F87C68C28C8C13417F94D77F6AC3315F23405C233E14F7762C152609AC34842553DE175A6FE1C08B44BAA9D15CF09A6049B05B69F71DF322171701AE91D050778A6754E374878169181A2E1336677889318CB54218AC055491B918BC2553023167151C98B30E1340403E0C59B3252F4D0C85EBAC1877798C41AA43C5C7B738B7CE116428C049370BA6665BE646B3125AEB947B1F3B2EC5357C7566C13EAB148C453D6B2274A9295A06C822DF9222CB2026F19603B5602D08D46D4C71384E776AF2A441894826E4559F5975C586E47BC0236B4897622AE4396160334CC97ACA101805814AE44786D1E445147A4728275C32554B9BD148AE9605E10C5A6B556704F1C17297A32EB311F1E92EE5F160E8522E06554B93B5C796E44086E75D236CA88ECC533C3B348091891E35639BD6CBDB3A408720B6E3A328C4268454169267A5C5348703C412C58846C192E0A162014600DBB351424FA8D0599775BD2D851DB4B07438F655AAD6402628563DB3A435F75D440636CD64041DE162D178C923490839F190F106BE0020AB63E7B3EB718A4FB59E01057C416C330CC26E485A6D9C72B707DA0B297C0A25247D26D40F044844C2DB883A5BBFC2B06F1BFBCCC6D10B65C9BDBFB806D7A04CD71774DD60BC423C1DFA897A0512365CD54A90BA6AC509298BF6455363583843925281AA405C291F11695CDA995A9AC5F742351560B38F8720D66327B4DCC47626744241679247CBE42695B8D81C37C718CAD53D1B318F9F900757267C43B982F26639901028F8F636C35091F1CA90A1E329D5CB069A918F45A078F33AB4DFD248390627926AADDFF47ECEF1718B2B048304CD40E72FB0872B6207856A61BD764034E82BB426747405E1AE5B93C63CB12C7BF09E47E27117D26ACBC102B043616E60B714316DFC17306A77800EE87E03E4B74759794EE6943DC274AEC1A08197A841E68F258202B1124803064F6E3295DD51AD18949A5A383A81363BB00118A8569A38D138BF8835362C723E999402D3CF728B0E11F647CE2B9390615B9E50487E23CEE6F9CEFC4A1CE5E83D28D642E3C16934B43931158CCEF3832A457A5E833F317918858807AB084F687A394C257ABCD8435CD717D1E6B79E78A37BB71A236729839B89A9905B5D935AFDC2C1E6C71C597898C6A69765BA05E9784B7849C685AB5B6DE3358C6299D8A4B075045D6EE15B639601AA95603A67378157B54889C3021453E373208CD06C0DEB77BC962535672A8D77C9EAF9726CC1A8B8D87D61B1461F33B7F7F5A003A8657297CD100324FEA561BA879FFA75287D9A838275734593ABC2B842D9353906334D3F9324C7D00EED794C78310421DB45CAB6900817348D67490BF1485E85A3DFA255694915D286AB5243B62D3A91F8493F0B19626FB89C0B9109C6E1084BD8C848C06B3472A65A2646DD89BE2D922A0D2C5E816652C826854AB36F44809EE56C9F7E26A1DC30823535997A05255756704AA1029B86601E2853C2D34A192A9B2B76B31C69C1A048A76A6A58E48BC8E512B1C767347AE28AE046076C20179D0977D2D54A3F78ADD2EC6BC06071D9447F0461846FB1A5E91A760112424082C2994A98D07AAB29E818FD15134DE437C7FBC59469CE8BA80545A4A5BF337FE142B72E602D8A1B3009CC95975759AD38274E234AEF0552B8AA65CDFCAC975495A84C124F8426A9C87D8DB03CE48B0382642CB9E31CE210B774724912B09B16D88AE007AC4542C092F9BBED9C262D823D9D5719B357821D4C245F384FC923CD334B9DFF579E324A0BCFBCBA61FB7AE9F69B3AB88693E005EE32BD1A6A3CA950A22421125391A060276B07242A795085D0098906969C421CBC469128FB5393B72590FD391DCDFA3CF87B9F7A4C6CC3A1791AE1717478A5280A3B7580BBEDF88F0DD7C1C09AA67D6B284334049398BA983BCBACB8C56237BC3EFB3FBFDCB358A006457832DF7A01EFD937E68B3299580CBE1C9F69E165D22683B3721E4189ADAAA91846B7717D41BAF8D9A1DC76C387F0B55C2552533326597466ECF06ACA624FBF73226E471D835B0EE4A24A8F1C5FBE359C61D974A4D57C2F7C49822286CA27116839B784D6782C13B606B87804BA0969C7C47C7A29CE16CECFF5514028C3D84944EC8CAB4B4ACB5B681723511087E25B8AE84F3741A2DE6CC21E7A370B35C255C34555F29645D4B420494C4D993BA3F092EE240F1D3691753420891ACFC9421C361CA2186B563ED63456096227EAA738A33AB56029976C1125DCA790114AEB83AEBCF271ED59BBC2E8377301B53D697CFABB4C6B40BAE19B6CECD421A1109F9CAC7B71C749E60A2005A30179C393D5033CB4F8795DE4C98D91538FB9A8CB1654B1E6A82918471470461F54CC71FBA50DEB3E1221C55AA616AD5262E352ADB7A89CA04557A2090FB05704B9521809B8CABFA325892AB46765CEE83850586918422212C812373A1C6217BA890B4C5310F7B0D5D8275B884AA9E4914C85023AB53BEA88AD4281A7F501A87534AC1D806B0F8691E9F1BC7171001043015B391CFAC09B5FA88F840C63194632BD5A012B34B50441BA08C879C44654F136CCCBB7114F7B4099016E0193CBBAE63522927DF4B740B3CA5B32B741EA15A47370B98926A1F90618F5235357E8087443C93444803DD22BBDD5340C876D41F3AC1DB59E9EF17DB71369A315600FC6801A54483FB015AD3766284A97CBC241AD73461F4B2A0F6645EF428805762A6E57474D29288404AD98FAB63AE95E25436626BC66EE10C01E55103597288AC521B463886F863833948455319D3455110B68BF7BC495D1A922191A1A230A5F036C3C4AC05EE2609D09891CE368C01F037D818805A566193A433E924B30F4E86DC76AE2B345932A0E7025F8CE6101884469E31AEACAF4D77E3F1201BC75919A696301240CD6129F66BE58E19D99B0D827D9932785CD9EA3D92F7BA54463AFF7ECFE33EFE4042A44F2F801170616925BE8CCA1BD1812A7335DCD80F9CF14\nencap_coins = DA9C015B918108C1596309FE0042218DE4C31900B8DFA6C1CEC28AD10988BBC7\nct = F86702AE13B846A0A6757F591F92C2E87727718019F6D94C79A8367F758720D9C2AE669F9F8DD60465E2BDB0E90B1052CB33B20C12FC7BD7003CDBA0721881B28BA6ACBC602717A080F80BBE2B46B3B6D059553FAE7922C79EC637BF830949C4CF1CB987AB82CEF75C964B87F9844A76177E28C3639F0E5772C40D9A005E56783A9A021AB319F2AF1DE5326ACB117FAEB28D541A4641B500A75CA7DEE61738266297479D55AC616D367BA7C4BBA9BCC33F18034BC719FB6454532FE478C789A4CA3E785B83387E7CAFEE85BBF15769DE3819599444F324F045BC63380704A4B6CB454C4F4C198108D55441FD99BA54B8BBBBF70B46D6BB6E290273B734A383811DF907390F876A3C3ED9AF0938717C57C561B4F8F4DDE282F27DA9F6027F36B7E6A3E9915A66CD2545A04FDC7F4949188DEE15DA9B00E765748C9B814065C8805D897028D59D119B6E0C3A1528F8C258AE10EB961795549A47D064921CFE93D2484AD864147F567CF8C212983530D87C4B4E4AFA409D0888283EF932AFF73F8884AE34AB1C377695F7CB32BD55F7F9E9DE3E97CA311BFE82A3EB66BD059DC1802B1E1A8CFF0B76694DC738426147985CA8426DE1B2D49E9727E1389EE153F0BAF265352E404423B87DF38CA0A0EDB7363C8C2095EF98750E0993FC80C693D96EA190DDCEC7442D24A9B5BF8B3723363422F218EF9B5583F1ABEFB5CB344E7F15CE2B88549651CBA704D6EDFA597CAA117D3F066A66924AE9CE82A41CFB58E87F5D63ACA47BB4FAFBA80743D42153CBAEDF26119CDE20AA1179B1FAFEC657370BFE27383C53A8BFB0CCA277B346EE6C4FFB926F8A8026FA65ADF81E58D238F2ED7A0D9CF261BDA392B25B7C26CA9C3AB38D114D843336A5CD110FD09CA1366C14F0B0095C0308AA12C375DF360A2F36EA5191EBC05191B80E32B3DE7B80676B91283C83A42E53CF923333295C0353AB9455939CF8EB5D57DEFD48032AF582611E55391321FD04C2DA9BCBA3A8161471F99514F9E85E490E89B304C743544669070D8E7B6D6EE08B9685A5A9E70BDEA3D051327F259CDB7A3E449473D5ABB57321BF2B6A28CF0213375185A00CD21A676B6102B64B3C8CB243DBF7407CAFB22CFF983BCBB0535CDE380F29400505989A9E68C4A2128647C42474BC7C26C1C73F881CA1F8D148C28BC193D59BD9B60101CCCAEC97D27ECD1D16B5FF277DFE771226ED0075CED124C3C732F4F57E969E8E076865E44C4A7E683FEBEC4E73EE78736840406E6B658B2E516752848D4F11462035C6700E8FBB1ABAFABB1FDCE53D53D60C97430FE3A3FFC60AF80D9866799A95076FF8ACE6209E3FDF9C6D4679A7D445B3A0B9039A6DA47501A914E75182398EBA624EAB029CF7BE8BF8E5C96402C6600DA67520A08C20F74C7B8C891D3A493C6BF0F795B227D90D9764301D42D9FA2C6A835859642C4DA1E902B4DED8A8FA8387857B976A11736E49E14E51E05577960E20A391F3EAC8FFF41B01C3FD525484CF210611F27F73378FC33FABE819519B\nss = 01BBD6A971252D67A10D0EF15FC4A5D2E501A7EAB8B6A8FAB24702C714714711\n\ncount = 99\nkeypair_coins = 195D6C86A3DF4C21E3007D7F2768B43C74CB3060E0ECA77F0A5D3271542B9A84D375BC4FB24E98F1EAA01E50A588E96A2B26DAF9421437313FC7E4B520387050\npk = 28441CC07C18856568C4FC0EDDC04175F564BDA148788608B71756367551A5709127668EFBD60B389877001B948F2C50CE62C7ED63122DAA7C1889400A4175AB959D09AB124BEA2C9D3659B8B4861E482EDED950DBF57A47C87F79FBC143D20420F4162F711963C47DCF7B8EA7FAA329D6A70F601D3A1B15A7890804917C84477D95F916A3761E3D94A0B0D69D9B7C39692B7F4ACB9091F87583810CCF67BDF86C4BE8F08762F2C3428646A3D33DF4B67EB87A2662353A208403BF59334BD9758A9439F8D8BDD45195F2255282A73456D168A2B249E8D180D5B310BA828685B3A1DABA2FB88783BB5062C13B79C2B0C3A10085664377EADBB477329567D1158882085850B95697248C6271F44988218777D33823AD70791BD40E29825ED124B963E05D06547C740A5AB7A1488E38C464B53B6F016BA1B7648A14AAA111907846C5DF162F61CC62747386915724A3B054E868BC04C934D64B7F2FF461AAE980FA806CCA7A9C4D7255564B420887946F7A72E4D1384D8222C70330B09C08D9A70AA176529F0685D087B8F9EB464A776F93606B05D0729FD2AFA7969EEC2662EBB7C7FC821D6B5393707ACF25C0C2C81702CB195F8CF730E8A46442E91E18FC7577F4AAFD6933450491EE24763BF6786D794D889C3005A323CEF2A8863C7AE00998D2E3CCC1F5A6C8A933D5D615CE82AF312990969C6288B6893C42142AD87AB483362461B87C641F646410EF5B393283230220A34730397188920B6873F16478331CB22A5A2C73273D865985533A1F8E109DBDE719C10C8ED87A831AB65562751EBBB15D3D5B6E01F78", + "DB26A54E47943D6B31F916A552ED01A39F96DFF820765D6AE52265010545162D509F6AC3F9B7C0FD0ECAD4008732D6A9DF9449B2017B389522F11870704127BC6D018E0A420DD441EBF636C31B3B63DA9C00DC15BE0B3188371BBC855254217B99294815D78194FDABCD1970E31E38D37B4B1CC69BF428514F50AC9BCCA9125E6473028571BE535FCA274651752DAC691FF8A28C555036378B260ACB060FABA9573B0B65CBC76B892425294D65658F4A1B3309B424C6865BF1AB307B88022087F97F6882D4360ECD91F3D2513059A784BB256E47670AFD5C1AD5C177142A2955B082FD0B546577CA5286E0F1C85AF8B0BD5650038609E8EC8344E6CCB6DF93A056644CB89294FA19266948E9A561BFA66517A900B67F6BE5EFB853C703CCB4A296A493C24607A6AC4A749361D8F738080A80CA62AAF658B6A972894E6CA402AF3C09D2A6E9C181005E0C4D193361859011173BC8B97755FD1085B52808373B29733A7D0488C5F890364ABB9716920C074645AE023679BC9C2B3AD29B9051A94A124A43688A1027C35B90F9303664AA37AA92284F97DBCC7AD0F12B5B6BA38CE0A07130110518C74EA36CA6D6A44399A3983101458F926E0BB3357BAC5A294446463814806AD1623185F295D27F2C913C9608314174B2BB8BC03A92DB6CC6F044D964A7E3E289EA8F064D9B5C0D0EB43357495D09C0FBC4069903BCDC683763BC4C6ACC2517B7C94E3E0265029BFF55773421BC6143A38F57410BFB50BF21BAFEC948548A87667D95439BB78CCA2C9DA670BEB4C816478683B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B8\nsk = 55873EC8C5BAC259501E025FAED327B9B659B0810E7D43B8BF7A25A8C1A51062CFBC9BBEAB182747196797913398DB1C1CA41C1CC3A883400A29797AB4CBB553076C204167AAD2208355279F504DD9A476985362898B4E423821CC2642C335C3C953C866451CECE03098D5A2AE366DDAE1A06E05547E1C0C0667CC98494BFA778EEBC5CBACCC3038F93B82E57F814799CB7A921FB14042AAC83A1B4897BC6A15C87FC94144828966C49B6CB8F842A3157B60D6B3271C3661529D8A93C7DAF7B4DE1396308C0CBBFC9F984617CBB5B1825C88BDBC4C74C58EF3D54D089613A6A431E3A59ACF4201FBB6828DB0061F1BC514DCBFE72023CF8102E9834D5D6BBA8A354FE04C6008B37F9B07857CDA1238F5A562F288F3217FFD1A1BF8B2A0FCF3AF0310C84BD6CD805C246C4A227C9BCF963093A9755CBA968E7C06CC4F987B516171461B69E013076CB652C2A0B10F1B0FC9D6B583A929FA3905BA4B6B41F19D862C82B5F170277530A278773FA740ECA749C00A61735AA1A27719CFB75EB0768956718239F43239E25A316339DB665EB9784AB581137D020B992782956522B824B3EA4CB540A4B12AD7C512046711B0463F779E1279BCD2B7238580C72DF6120850376DB48978DC717CD1424D0B5E7331B76D0AC0B024C6283C8418E5B1A7A297AA483E5D2A65F2181EDE32C69CC4B9A8C4C0B90BB17EC06336D2100766AED931876CE45435B5662DD8A5B9F545292C870A16925546AE0CECACFB737647504EA1A29D13E0BC2D060BF7480345051E9379CFB0F901B9A426641802E5522FF8B199439026B123CF9B5827FFA147567912C46C88CEF0B41D9526D227A72262C0E3B3157DC4898E07CAEBC8038142B5172A799B8A6DB0F7703730C98E1957FEF13D5D7B2A52945EFF5C4337B6CC5004BACBB419BA73568AA357F61C70383447C6015A5896B9C0C0A2F2C7A76D940278D736D6B685F4FB3CC392CAAC1830B439468B6BC73585B4205751E55103099986308702A477588611A990580D88657024FA6D371550141405A8240109824788675D2546AFAD54628E93281ABCCAE4EAC11D200AA5C40A9E440D9F2A40DEB31C2688A3266C9E16B60461087DA271A1973374C99693C8111F9D458F92AC3208268078B177C818038305AB421B6D8297063061BB36F1318BB2108163A723A4BFC3C2A25F958F28B2B806A15E4310B8852103843C8AC26C7773084F1F82151C52083E69772A049123027916F039FD08713B98039F3B84CC83A8F88B2C19F48A958A443339A5A2158DFD7A08D11983601A1892A8C1152C602EDB1592C3AE555B2EE54C5DC6020C0B95626FC06D85D78120AC135FD369DE6B6AA902BB015A7BC3BA13A7391960C533D2F1A6278494E78B6A3C5B91A2B1AA2A0752E5C0A30E33CC86DCBA2E3232C98B9AAF1BBDF9E825B15A6DC3A741D43A53EB10AD18E93541E224EC5A952D673984990AF0D81577D1BC83B09856794D11707FAAC63A1E49A799224B51464916BC07F0A69F06F26696F5806E92CA4ADA050CDA48A9C90635A9C68ACC753A711115C35488758A68256A32F4964C431D50C0A8C5053D1A41126A952270A309F69931C32194FD201BC3809DB548A000558528441CC07C18856568C4FC0EDDC04175F564BDA148788608B71756367551A5709127668EFBD60B389877001B948F2C50CE62C7ED63122DAA7C1889400A4175AB959D09AB124BEA2C9D3659B8B4861E482EDED950DBF57A47C87F79FBC143D20420F4162F711963C47DCF7B8EA7FAA329D6A70F601D3A1B15A7890804917C84477D95F916A3761E3D94A0B0D69D9B7C39692B7F4ACB9091F87583810CCF67BDF86C4BE8F08762F2C3428646A3D33DF4B67EB87A2662353A208403BF59334BD9758A9439F8D8BDD45195F2255282A73456D168A2B249E8D180D5B310BA828685B3A1DABA2FB88783BB5062C13B79C2B0C3A10085664377EADBB477329567D1158882085850B95697248C6271F44988218777D33823AD70791BD40E29825ED124B963E05D06547C740A5AB7A1488E38C464B53B6F016BA1B7648A14AAA111907846C5DF162F61CC62747386915724A3B054E868BC04C934D64B7F2FF461AAE980FA806CCA7A9C4D7255564B420887946F7A72E4D1384D8222C70330B09C08D9A70AA176529F0685D087B8F9EB464A776F93606B05D0729FD2AFA7969EEC2662EBB7C7FC821D6B5393707ACF25C0C2C81702CB195F8CF730E8A46442E91E18FC7577F4AAFD6933450491EE24763BF6786D794D889C3005A323CEF2A8863C7AE00998D2E3CCC1F5A6C8A933D5D615CE82AF312990969C6288B6893C42142AD87AB483362461B87C641F646410EF5B393283230220A34730397188920B6873F16478331CB22A5A2C73273D865985533A1F8E109DBDE719C10C8ED87A831AB65562751EBBB15D3D5B6E01F78DB26A54E47943D6B31F916A552ED01A39F96DFF820765D6AE52265010545162D509F6AC3F9B7C0FD0ECAD4008732D6A9DF9449B2017B389522F11870704127BC6D018E0A420DD441EBF636C31B3B63DA9C00DC15BE0B3188371BBC855254217B99294815D78194FDABCD1970E31E38D37B4B1CC69BF428514F50AC9BCCA9125E6473028571BE535FCA274651752DAC691FF8A28C555036378B260ACB060FABA9573B0B65CBC76B892425294D65658F4A1B3309B424C6865BF1AB307B88022087F97F6882D4360ECD91F3D2513059A784BB256E47670AFD5C1AD5C177142A2955B082FD0B546577CA5286E0F1C85AF8B0BD5650038609E8EC8344E6CCB6DF93A056644CB89294FA19266948E9A561BFA66517A900B67F6BE5EFB853C703CCB4A296A493C24607A6AC4A749361D8F738080A80CA62AAF658B6A972894E6CA402AF3C09D2A6E9C181005E0C4D193361859011173BC8B97755FD1085B52808373B29733A7D0488C5F890364ABB9716920C074645AE023679BC9C2B3AD29B9051A94A124A43688A1027C35B90F9303664AA37AA92284F97DBCC7AD0F12B5B6BA38CE0A07130110518C74EA36CA6D6A44399A3983101458F926E0BB3357BAC5A294446463814806AD1623185F295D27F2C913C9608314174B2BB8BC03A92DB6CC6F044D964A7E3E289EA8F064D9B5C0D0EB43357495D09C0FBC4069903BCDC683763BC4C6ACC2517B7C94E3E0265029BFF55773421BC6143A38F57410BFB50BF21BAFEC948548A87667D95439BB78CCA2C9DA670BEB4C816478683B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B8CB6D7232426BDBDFDACD373C9190722E7BF342825F7D829185DCC9120588FC76D375BC4FB24E98F1EAA01E50A588E96A2B26DAF9421437313FC7E4B520387050\nencap_coins = 05874F9D5A2E9133D385F3326FA925129DFF03359D78B0D07ED78FD5C1307800\nct = 64896853F9415AD4A3457E9B23B20C105E29D48905A9E302C73B4D6131139D90FD24FA74C236E17B88E99E8EE53B1BACD2CF0A894B11477227075E136AEA82FEDBFA08D34F4ACBE01FD5B4889EA3449D33AE78F3878885653783721423AB71AC377E1E0887A5D7B86685FD3BB5CA671E1F1655722EEA33D0DDF04AD6D39D476E6EB001F5970C78F495F01FEBA6EA3D2B0D6CA11E4130EF8729A836A3321DC9451915770C6FCACA50F71003DCA19DD9D789FEF1145B10A8C0F334A268257058BE45DA58D2E35A7E303E0D28645DD4B0115073919F0CBCAFBCE6906E8C36840F8050297F1D6B48CD92EE268F582BE8C151F10D37D0A71DF4F47D3C9BE532ECBB7713C29A2442E98E54D4E4360311393AF40F8B95242D0FD733AC76DF604D0627EFE49B4E1D708C9F39D74AB4086AA578D4126C7B30635D9750D4E2D7485C1AB57612EBEAA4E8E0E6E3898B1C23D53F46DBD736A64D962D3773DF9B1091F095B0D87D33A0F3030D268EB660AE82FAFE36C337D6AF289235AF01D7415323BFA183F90BB8336F202191AE294230684D0794B18BAB40E284FDCCE80CD894B77732EEDDF80726141B31B43C75A3543670558012E9178D27DD4497BAE5F901F7A70AB2FC1CB542BA1FEB32992B9141B8E7CA010B99B74E3C212EA90D4C8591AB1511C88C278D29E144039E23A7B0BC946B46734734265E1DF34643CBBF36E439EE8B194C7A8E8B75DE782303FDA00A80B5CAFB7E49500BE86766F7F9EDBB013DBA6F4E115C62D840F1BF08BF90B075EB73E70F34BC1E603FBAE6F43632089B8FDE88F319A6E9B39B86DB9AF2E0846D9EC559A227C25691C9B32B17F57BC9E96020F167924BD567EA20D583C2A6D4966698369C39BD7CC1192DA888C14A4334480202D23E55DEA47B745144CF00030A3514F01043FD26B0591AD3E8BB19A8151A9342E90A98CFEBD96189DCAB1459BFA7A0F185EC1979B3E2C8AE5FE5E752F4696DBA9DA27DBD6700707674203673A7486DF55E6C615637564C43D3C91D40914E2FFD75A8C01AACDFDF4B44126DFDAC18A46C5893E291B3147AF7E4D03CE518C319E3BE0D2CD665F1F4769238DDBBCD61B371DDA4E3E6FB7C27118DCA0F8CAF0E179632C9AE770E7CC95146DFC9B8CD1296B259DF0BBF60C30C020D7035EFCC499B06190CD00F9C1CEAD31DFF5FA9AB74A5B8F5802E94E12B97D996E47F17EC81A78C8DF58916EB305E401EAC6A3FBD846EFCD92F8913A09A0DC6588B5186F1CB3F37F44AA01248EE88CDC785FB970A7F0A34E6AB73ED0AD4487DDF0F0F398EC34490A1F03FCACA7B98C3DEE6DF003867760F7D5E9957246157C8B3CE988674A94D9A826D3B76F693E90E07D76C7235A0966DFDD3ACF35C70ADE590B288FCD2EFF074F6EAF75DF00B61EF25CF8948DF1EDECDF57CE58F9E636ED38E0ED3EDD8010794B85FBDB7D9C8928BF1951087FF8C12C48C4820F4F9865CA39C730835F5", + "C11F5E938556007945EBFF82E3F055E0E7ACBF48A1D1FB9176E77C9407429BA17557B06370\nss = 477F645E1A03A787F29F7B15932F65AEE1D74EAB2ADB4F378E263FD8E2EBD526\n\n", +}; +static const size_t kLen89 = 1293203; static const char *kData89[] = { - "0C0A0?0=0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx", + "# Kyber1024\n\ncount = 0\nkeypair_coins = 7C9935A0B07694AA0C6D10E4DB6B1ADD2FD81A25CCB148032DCD739936737F2DB505D7CFAD1B497499323C8686325E4792F267AAFA3F87CA60D01CB54F29202A\npk = D22302CBD3399FACC630991FC8F28BDB4354762541527678BCF61F65C241146C426D23B9BFAA6B7DF18C97F20C1B6125BF874B1D89475852C448215DB0EB7737F91480E8CEBD9A0871574F5AB62D9020175EC6927CA0B54C09818E42CF92A383172422C7DC1831D63B0C295DE75159DB8034E9E07F7B0B910C3C1E5FB66B3DC523F1FA6EB4910CB89A6C17562C83AB4C18D0CD7E0796592A372AA409B1C557347CCACDC4644A119064D06DD474929D1C6FB4D686E5491CE4BC89A30BB4B8C41BCE5157DFC1360823B1AB618C14B10F98C25067398EA7018C278A4B3DF31334D603B2044EF187CD9BC6CE42725BD962C264983E9E18155A8B9C47143D70460A26A56FE7658C1F150348C6087EF758AD167887860A007A5FC37358D43B5EBEE820ACEA474F0AC07B76802866199C61231D5C747C93774D2C1E0C1C67E6C81B82752173E125BAF39B4FD19A4F453DC57976B1D97FE6996992BBB65B7CB25D077BBAA6A13322899AF659CF1B3558C1B5001154B625809ED89AEEBB89E6EA7D67F723D045AB05715C42355DA6A5C8DD39C8ABE3037751A01ED1C7374919F3121B5A52C53D1487316769F80721DEEAAAD3C90F76E7AE9E12BA92B32B5FD457E3C752C2650DFB885771CB77AC3C785A8C562E6A1C63C2A55EA47CF8B90EB8225C123C346452566235B2F31823A33521E087937A345D8D663EEAA05658917BBAA008C2E335F8850A90A326D0E66432F44CEB8289E4ECB2D12958E984072ECACB88E1348FF0B55654ACBA5B54971CBAEBA88EC4B91A94C37192FA982BECB9F3DA421603B61A51BC8E36CBD053851C77B1B926B17A272AA9023246B02B3ED47F66A00BD5684823634E7CE58CF8F306E35B1E5322824D904801F0A2FA7C2BC9C252B0A56B7BA2AB0F636021745A70A9A43E2B0A8D615970B65309624B5184BCC30B911679AEDD76025FE3908FD67897B0CF4BE5A6F5413D7DD98564B23E42A93E4AA8821CD45054C643EDC1158DB6B3DEB13FB5A51EBD1A8A78B87225A7338E101104C4A220D9BDEDD48C85A1C2DAE781A80C40E13B87EAC73A764201C9B760CCFB1AE392699C7039D27C39362B27B8FC6F07A8A3D4410F1547C48A9997F62C61074452EF1515F8A649EBCA9437205A4E8A61606B41DAF6834D671F4D852C0C9C4096611648C6A3170678B1537CC1828D93580C9E5849A9653175ACB753F2BE7437BE45F6C603E485F2EC301BB42B6C37C225D7495A584AE231890AB5C8C35C268CF4BBB0213C096019319561A8A6947637AA40D006B415BB2CFA2237E0890B6A3BC134ABF8F6585E108D15940F91F4BF5B0C818055B21DEA6E63B553988C47F4B94E7CF800A493B4734705EDC56A4B6021C629500675876804CF0B951F038A5C7FE58E89774EF2992FD7C63099D352A7D21560B788B405709861817E59A96B3A3A83CBA803B16934331071905BBEC6532900155D8AC88CB32E4E21A3BD3A03FDEC325A51CD2773964E6784FCF1853737AA64EB67564727272661ABF84313A57A44B123C65509CFB7A6F6641CDCC3B57FE628C7B8192DB44FFBF5796A8613B1FA126F6076883C783DC24E2A4464C40B3A41CA70AE87620866CF4FCB2BD204BF5C283812BA056AC0C345E379C4BA24D750901279BB2F3A16F612BFADB35703332C7C136F68EAB6755C66B6A4AD1AABA7B768A58ACAACC10A459A1CC8EF29377BC200E4D315A30A6BCC3256F9734D06E9779CAA5442A9A16069081377C76E75154368072DC446ED6C8B8E622A21E383CF9BA1FB434E2ECC81E7B78CEE986B8FF798AB18CF9634543546284EDA2A26B47F05B735BCDB1202220076DC8B4E4B9F853533C8F6C7FF38817BA49712835785F17F14CA01D0C1C1E98810FE0B36E5B427157B9418449CEDD641A4293C85C32700102ACEC22EBAD98ED160A5F027BD4CDA57F1F3720A12C134654DD5E73F829676495390D0E7929D6034E9C55F7D55BA658BC587988E8AF94960F6CFB8D5AF7A0021535A6E25E437D49A780698BE22AC9953949F571B85A685725F8207A2B0AE849B601AB91B159B3DF4A154C2041E776070AFC42969322380917C97510799F3149131477E16663D3174C7C1CAEA788535C6C005A64F2868631B31B66E205FD38C1D84542D0F1B578F58C9BF5A0FAEAB6AB6494893053165EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B53922\nsk = 07638FB69868F3D320E5862BD96933FEB311B362093C9B5D50170BCED43F1B536D9A204BB1F22695950BA1F2A9E8EB828B284488760B3FC84FABA04275D5628E39C5B2471374283C503299C0AB49B66B8BBB56A4186624F919A2BA59BB08D8551880C2BEFC4F87F25F59AB587A79C327D792D54C974A69262FF8A78938289E9A87B688B083E0595FE218B6BB1505941CE2E81A5A64C5AAC60417256985349EE47A52420A5F97477B7236AC76BC70E8288729287EE3E34A3DBC3683C0B7B10029FC203418537E7466BA6385A8FF301EE12708F82AAA1E380FC7A88F8F205AB7E88D7E95952A55BA20D09B79A47141D62BF6EB7DD307B08ECA13A5BC5F6B68581C6865B27BBCDDAB142F4B2CBFF488C8A22705FAA98A2B9EEA3530C76662335CC7EA3A00777725EBCCCD2A4636B2D9122FF3AB77123CE0883C1911115E50C9E8A94194E48DD0D09CFFB3ADCD2C1E92430903D07ADBF00532031575AA7F9E7B5A1F3362DEC936D4043C05F2476C07578BC9CBAF2AB4E382727AD41686A96B2548820BB03B32F11B2811AD62F489E951632ABA0D1DF89680CC8A8B53B481D92A68D70B4EA1C3A6A561C0692882B5CA8CC942A8D495AFCB06DE89498FB935B775908FE7A03E324D54CC19D4E1AABD3593B38B19EE1388FE492B43127E5A504253786A0D69AD32601C28E2C88504A5BA599706023A61363E17C6B9BB59BDC697452CD059451983D738CA3FD034E3F5988854CA05031DB09611498988197C6B30D258DFE26265541C89A4B31D6864E9389B03CB74F7EC4323FB9421A4B9790A26D17B0398A26767350909F84D57B6694DF830664CA8B3C3C03ED2AE67B89006868A68527CCD666459AB7F056671000C6164D3A7F266A14D97CBD7004D6C92CACA770B844A4FA9B182E7B18CA885082AC5646FCB4A14E1685FEB0C9CE3372AB95365C04FD83084F80A23FF10A05BF15F7FA5ACC6C0CB462C33CA524FA6B8BB359043BA68609EAA2536E81D08463B19653B5435BA946C9ADDEB202B04B031CC960DCC12E4518D428B32B257A4FC7313D3A7980D80082E934F9D95C32B0A0191A23604384DD9E079BBBAA266D14C3F756B9F2133107433A4E83FA7187282A809203A4FAF841851833D121AC383843A5E55BC2381425E16C7DB4CC9AB5C1B0D91A47E2B8DE0E582C86B6B0D907BB360B97F40AB5D038F6B75C814B27D9B968D419832BC8C2BEE605EF6E5059D33100D90485D378450014221736C07407CAC260408AA64926619788B8601C2A752D1A6CBF820D7C7A04716203225B3895B9342D147A8185CFC1BB65BA06B4142339903C0AC4651385B45D98A8B19D28CD6BAB088787F7EE1B12461766B43CBCCB96434427D93C065550688F6948ED1B5475A425F1B85209D061C08B56C1CC069F6C0A7C6F29358CAB911087732A649D27C9B98F9A48879387D9B00C25959A71654D6F6A946164513E47A75D005986C2363C09F6B537ECA78B9303A5FA457608A586A653A347DB04DFCC19175B3A301172536062A658A95277570C8852CA8973F4AE123A334047DD711C8927A634A03388A527B034BF7A8170FA702C1F7C23EC32D18A2374890BE9C787A9409C82D192C4BB705A2F996CE405D85A4C1A1AB9B6AEB49CCE1C2F8A97C3516C72A00A46263BAA696BF25727719C3216423618FF33380934A6C10545C4C5C5155B12486181FC7A2319873978B6A2A67490F8256BD2196FE1792A4C00077B812EAE8BED3572499684AB3371876761E450C9F9D2768A36806D7AB2046C91F17599E9AC592990808DCD7B4D0919072F14EC361773B7252444C323C308326F4A30F8680D2F748F56A132B82674ED0184620B82AD2CB182C97B481626647491290A011CC73828685A8C367A5B9CF8D621B0D5C1EFF03172758BD004978C251CD51342228989CAE6332AC486437CB5C57D4307462865253BE217B3515C73DF405B7F28217AD0B8CF60C2FFFAA0A0048B1FB4ACDCDC38B5250CFEC356A6DE26CFA7A588FDC86F98C854AC64C7BFAA96F5A32CC0610934BAA6A586B9A2054F13BA274174AA0D2B3A81B96A940666F789B5A6BCDC0A6A0178A0C9A02578A493F6EEA0D2E6C13951C9F249A5E8DD71DD49A742D451F1ABBA19AF8C547855E0AFC728E90ABB499C9BEEB766F4729CDA22263E324D22302CBD3399FACC630991FC8F28BDB4354762541527678BCF61F65C241146C426D23B9BFAA6B7DF18C97F20C1B6125BF874B1D89475852C448215DB0EB7737F91480E8CEBD9A0871574F5AB62D9020175EC6927CA0B54C09818E42CF92A383172422C7DC1831D63B0C295DE75159DB8034E9E07F7B0B910C3C1E5FB66B3DC523F1FA6EB4910CB89A6C17562C83AB4C18D0CD7E0796592A372AA409B1C557347CCACDC4644A119064D06DD474929D1C6FB4D686E5491CE4BC89A30BB4B8C41BCE5157DFC1360823B1AB618C14B10F98C25067398EA7018C278A4B3DF31334D603B2044EF187CD9BC6CE42725BD962C264983E9E18155A8B9C47143D70460A26A56FE7658C1F150348C6087EF758AD167887860A007A5FC37358D43B5EBEE820ACEA474F0AC07B76802866199C61231D5C747C93774D2C1E0C1C67E6C81B82752173E125BAF39B4FD19A4F453DC57976B1D97FE6996992BBB65B7CB25D077BBAA6A13322899AF659CF1B3558C1B5001154B625809ED89AEEBB89E6EA7D67F723D045AB05715C42355DA6A5C8DD39C8ABE3037751A01ED1C7374919F3121B5A52C53D1487316769F80721DEEAAAD3C90F76E7AE9E12BA92B32B5FD457E3C752C2650DFB885771CB77AC3C785A8C562E6A1C63C2A55EA47CF8B90EB8225C123C346452566235B2F31823A33521E087937A345D8D663EEAA05658917BBAA008C2E335F8850A90A326D0E66432F44CEB8289E4ECB2D12958E984072ECACB88E1348FF0B55654ACBA5B54971CBAEBA88EC4B91A94C37192FA982BECB9F3DA421603B61A51BC8E36CBD053851C77B1B926B17A272AA9023246B02B3ED47F66A00BD5684823634E7CE58CF8F306E35B1E5322824D904801F0A2FA7C2BC9C252B0A56B7BA2AB0F636021745A70A9A43E2B0A8D615970B65309624B5184BCC30B911679AEDD76025FE3908FD67897B0CF4BE5A6F5413D7DD98564B23E42A93E4AA8821CD45054C643EDC1158DB6B3DEB13FB5A51EBD1A8A78B87225A7338E101104C4A220D9BDEDD48C85A1C2DAE781A80C40E13B87EAC73A764201C9B760CCFB1AE392699C7039D27C39362B27B8FC6F07A8A3D4410F1547C48A9997F62C61074452EF1515F8A649EBCA9437205A4E8A61606B41DAF6834D671F4D852C0C9C4096611648C6A3170678B1537CC1828D93580C9E5849A9653175ACB753F2BE7437BE45F6C603E485F2EC301BB42B6C37C225D7495A584AE231890AB5C8C35C268CF4BBB0213C09601931956", + "1A8A6947637AA40D006B415BB2CFA2237E0890B6A3BC134ABF8F6585E108D15940F91F4BF5B0C818055B21DEA6E63B553988C47F4B94E7CF800A493B4734705EDC56A4B6021C629500675876804CF0B951F038A5C7FE58E89774EF2992FD7C63099D352A7D21560B788B405709861817E59A96B3A3A83CBA803B16934331071905BBEC6532900155D8AC88CB32E4E21A3BD3A03FDEC325A51CD2773964E6784FCF1853737AA64EB67564727272661ABF84313A57A44B123C65509CFB7A6F6641CDCC3B57FE628C7B8192DB44FFBF5796A8613B1FA126F6076883C783DC24E2A4464C40B3A41CA70AE87620866CF4FCB2BD204BF5C283812BA056AC0C345E379C4BA24D750901279BB2F3A16F612BFADB35703332C7C136F68EAB6755C66B6A4AD1AABA7B768A58ACAACC10A459A1CC8EF29377BC200E4D315A30A6BCC3256F9734D06E9779CAA5442A9A16069081377C76E75154368072DC446ED6C8B8E622A21E383CF9BA1FB434E2ECC81E7B78CEE986B8FF798AB18CF9634543546284EDA2A26B47F05B735BCDB1202220076DC8B4E4B9F853533C8F6C7FF38817BA49712835785F17F14CA01D0C1C1E98810FE0B36E5B427157B9418449CEDD641A4293C85C32700102ACEC22EBAD98ED160A5F027BD4CDA57F1F3720A12C134654DD5E73F829676495390D0E7929D6034E9C55F7D55BA658BC587988E8AF94960F6CFB8D5AF7A0021535A6E25E437D49A780698BE22AC9953949F571B85A685725F8207A2B0AE849B601AB91B159B3DF4A154C2041E776070AFC42969322380917C97510799F3149131477E16663D3174C7C1CAEA788535C6C005A64F2868631B31B66E205FD38C1D84542D0F1B578F58C9BF5A0FAEAB6AB6494893053165EAFD465FC64A0C5F8F3F9003489415899D59A543D8208C54A3166529B539228A39E87D531F3527C207EDCC1DB7FADDCF9628391879B335C707839A0DB051A8B505D7CFAD1B497499323C8686325E4792F267AAFA3F87CA60D01CB54F29202A\nencap_coins = EB4A7C66EF4EBA2DDB38C88D8BC706B1D639002198172A7B1942ECA8F6C001BA\nct = E97436B18AE42096AE6237C8E56E1B777A9C4CAF1B20D1C40F230B45DC38F1A68013EEE84F6F5633C39E7A5548092A23B46220934C698A6DBC88149D8EE666D427E697CBF464DB1A41BBC86F1C2EF998E46E51B5D94D560109E7319AD2316FD4C2EEACFBC01DC54D8A47E33C66A82094465D1FB1C6B7BD9331BA1CE5AF1C28ADBD130FEB1C35768D388D58444700643E70262889CBFED51AD328D0E3724E63B60253445A75A96B0FBF5B580DE3D2ACE22802DF3F1B009404575745F2F7A75CAE5E1E5AD414AD363CB5DFA48F7C6ED3587278EF58EE98B144438EAA66E5CD0BA800FB9799FBF63DE47D9904039AF5722E3D7E0A3C08A0A4B62F3743E179101EDBA93B081C79ED9A065BFFF65AD71D8548EAF76ADD4C32E3BC4D6C7551FB604CEB62CCF94C8A4EE41E7362B3E66ACB86C250E61BDC8AF162F1A2D9B29403D4976C37179C9A4927CDD6BF1ACACFE4A645EB5A59919FEFF17D86F5DCC77ABC52F56E70C41197E9B8328726C3D20C9D3ACE0CBFA0A7F50C5DDB2F1507D590071B6F1D17CA84DEA7A5930DC5B70F37AD7F447447481D4F14EA2718DB1CD8E096011DD617ED56BD0B2D0AE8C51BB0FF1B052CDC9D09BC6A772FD75877F762E72E6FC39F9A8E9EBF1E3ADEFA1ED897BF81BC6751DB4D637918BAD74C6A9D5D5E5F6E512A08C3D8165B0DE8DDEDEBC5066C2C44FC5A0C97531C0EEEEFED4C5565BEE4B33DD782C7178E91F8AE7AC30B3E010EEB25F7D558F7C953602EEE903C22C2D657EB32624B1B8F854232AD6F19C298830E6A8F6FEBCA91AEC693A08BA4294D0461F55A5AD25965BC81547036121E28A20DE2E658B358B9D17EB065B0A2D1D3BB029BCEC85FCE555728FAB7A77BAA183F92FD4430DD3F1E099F23BA59E1C737A9F56BBD0236AFA079CD7D37A15E407D47B745C891364D7DB99887C4C2816875A3FCC3B4B9FA646F7819871692434FED5588BC5AA53C7B33A12D163B584F11FB07535A84AE9DACDE81D8FC77B1368CAE470797069FC7C782FA96A7FEC30BC6F0ED7D4934C00B09A629029CC17E1BC433B2C7CF35E7895908848E417C184655C8E708F803C47B3C8BA45CFEBB9BCBB933C6CB72CCFC4C27863B8F9E0FE9A2FDB186359315BE6B46B50D19900D6E890B9FC4A87B517B24909B72A1ADE60ED549E2ED500CB60FDC7642F782AFC33133E1811613049F4229C00CC734969BF673E2690C3AB63DD0E064B9D2CAE9BD218A03808D7A4ED92D1F39ECDE7F102E8D47701AFCA94C788D7FF101BF8EB022BD25CD6CD12B2710FB0EEE09E467692E6D14BAAE47C771E4D2B10927CBDE8994B023210CAE0EFDA65306B4B30C6619DFB8A7937852D92759AAE5625AE717A1608B486AE3F25CB46B78F3D04B3410B41CE829CA6C29B7E6806740F8E818A72F3C082E24782BF63D4C3FC17C011D9AE0FA2DBA4EAD828158FB40C15E0C252924B77979F8068DAD4F8EE7A7DA07306293B25E507791906692C431F23592FAA77F4F6F9F5023413E0E812DE0681372D09B07CAE884DEDBB8AC2B80347D3511E4CFCA50CD752A16593858DF1A2E6A52887D5A2F81E70E57C65FA2753478A285C3896F6272133FA40A88DDB04D7985EF70C35D7413DBD32F49478694C509F2C97D21822F20740A86DD7ABDF66D0E632A254056DF5E0E7F013BCB7DFF01E38F881CFF77F1EDD48612A2677B7D1E4E62D5A6196340E26151EEA29D8EBD9786E38721B09EC974E336F2437505EAC34DE0270C0780C6B3A89520475481409864797DA4B6ACBE848225E25C7265A4E3BE16EE8CD8A225D2FDF4C498BA35332A553FE4066D73E758653F51A8A08913E469907DA5E7BF068E4C18486D1BE273BB4C674491BFE27F94453F64048086C93AE7F96FF7505B57CF3EDAC0AA5DE3A6B06470266DBC8945E952A2A73BD7CF8524E8EA00E1D0631DCA8F658145910F7248BE8266D0F98EF7152A112F3762F7B5356161E756D7EA4FCEFD3CBC44D4E59DCDA05ACC37F90B44C62431EB7610E15375984892B769D9417FCD6781B434F4C59191A020DADD81F0928E11C010617087015A968A5EA8B52DF8BB1706BF4AC7839FA80D52CC05C499091977B29B4AEABB7B1974D1B3BC097B23F3977CB0DF44E1A20318B4642D7A67D330F45A6FA5DEB96D8DDB9EAE323E61371BB6BEF4C13771D53BFA33B40408C813D3F539A29C4CF99C1D273E8561E2C53B505436CC3C\nss = C9786ED936508E178D55A1208C590A10F25CFBFEB50BE4207395A8B2F8AA192E\n\ncount = 1\nkeypair_coins = D60B93492A1D8C1C7BA6FC0B733137F3406CEE8110A93F170E7A78658AF326D9588522D326E7F105F11C4E8D97E119E193AF42DC28409F4F7572ADA538B52C1F\npk = 05D918331371DE92C27A1A5ECE876015A959E96AAF3B1A60E9E77E46D51D9D85ABA374263BBC65AD78B2D5A53CB909682AA0BF37D49D172BB46A0271D30716CEA8AA095992DBB1132E81265A29435EF2C51DAA9F27FABF3A799813E67EFCA087AC12247B64CC0BA15A5486245DEC1648CBC7AAF40805115D78F6687C47C553D050F1E6821B368F98DA22F4AA7D738A81B298A81BC43E16C8CE1490147CA83D2DD98BB918300A26CB431C99A952471B84BF6118A4D5C0A898532CD277BB4443CD7B6924C3185CE55CADC7F877BE93306357AC71A67DDB4C545FE7301D339E933B81AC145988369FB7D31921A66403C587C165BFDD341011D19EE964B62E4C8CAD2B88E8DCCF3AC75CD3F835E2938D027C6789F54D0FBA176F9BB8DC7716CAC344684334C5704D5A54C932535739948ACC61BD67B581F75A2169A89A11076274B10563141722C9AA9A34BB28A69AD677292BE84455B24559CBBC0F347E7B36A45555A8336B8ADFA07E599633F5D1BB6ADCAF86AC9E7885039A3C1D308996AB6C966F017F8297009C9B4B573B70DA8921A0C256A9A03C0CD6A4F72C6EDB5630B1219C4A3C30D1F1586CD936E3437684AC60EFA62D0A345FBC4881B24372B5692C101195C66C3AD647CA04D37F91F813A7A6795B371A574565E14779772372CC4A79C40308EB1233ED643808E939F27571C72B2F719023E048C4D15C71B3E116482C413A816C6D3A3877F862559B4AFAF04DF9C62D02CB364AA2ADC64078B8BCBEFE043BD6F32FF62B9555FAB5C1009CFC102B9B4B88B8A93B66E3A65A62B184BB5406DCAE7B3AB6047754BD215251EBAF102356BA688095A8C9EB1A9D8771CF60E864B7B4A5588843922B6D4A7445476997A6E5620A528510439B02A4B0DE9C147BB14433DB144FC9AB4B4128F7291A637B7E609A7DE058A3B58A17501C833BE09143244CC7E2490EB01CD292454523CE413A6E8CBB67A464AEF43912B4559651258B9B812989093540DC8D202C652C71CCA1EAC46EAB3F9EC199EAE025B153348A600B0E373B7CF2620F5560A3C64C15EC85B5E81C0BCC4840466C63CB124CA45994BABC31F12486F3712D22B1F649A07B192A2451CFB079BA179C2B857C41C4F8842A916E06F9C6A07CC6A4D2821401A65060688713CED4BB72C08241AAD91B50BC1B968BCF3BDA76A8E1B20060975E8803DD7B762D9A49B988568CC575A6D34BCA13A0EF701B823296FF114EFEC9031D79A20F6C640D4519A1906183099926D44E88703DB7636E19394B2F65ABE9A8712C868697B46871D830BBC09AE02487E8D59537C3841D5B080F503AEA769B0335493B84B94C4A498B1A6E6ACB578201BCBAE6BAF0E960AA975D3F14B5179051D933C4109361F03461F265274F72416DF79D1187B6822A0C38177A02B4AFDD635324EB6737C11A631784916452C700D09AAC42EA2634ABC68BD3F41A2CA679546414DF2314D57C2B318BCB98D7B46FE1B5A7E3AF1B2047D193883CFBC6E7D29049FC9C97B344736A0A48082B0A145AA8776125558DF656718AF59964D42F0704318DB88D1E91B840690B96669C8851BDBEB6043F04C017B59B289BBF550A94D0ACA4AFF18CA84630A99B82711A661E8B202B976E65F53B5DB52B255A88692852E06BBA321B4DE782B5D951AB02EB27098813C98B0F7CCCB778B08704A068B4D48AFB30274C0759FC5BB86FA59FE61688296846B2481E18A05FB9C02931570596EC436F570C187159B25C1F6341163B79670F62334C6B9A7139044A8BBD2B5183E0F82D3B6666735A94478784AA6168D0D3272876B5476B64F7932F3AA4151CA9B604BC7FD5D1395C3708908015B0D2C8CF04858EB23238458F70F964687BB2137A0C75C06A868C3490166CF2BC3AFE9B3746E40C231B3638A3558974BFB0603CF4C28C21003DFE87B3EB959DFA715B78ECB71BF404CDB2B675160138A46501569918CB7DEEB0489A72A4799A1A4AC625D5C6021F51C357895CCBF26FB5AA372343BB1C516CEEA47683E5A4D094A3D5188270811751FB1E19D68EF637227E491CC6387760EB5A810B387F596AA20741C4627B1C13A303D160423BCE1E422D929C06F067ADB7D96112F1607D3C7E43E7AA09EA248526C6881901852123F1B734A8C1891261BAE6E7A23DD5296858B6F7813196F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D2\nsk = 94B49EA42526935245C45A7D580B6AEFF8BBE0F5342BB8BD2550212AD5935F45CBA7CAA6DF914007FBA79E9946C9433A86A2C4202BBDCEA008AF78975E6619D3582787530D", + "BB7318A530B7B5A27D24258C7CCAAAF505CA92CB853A5818D4269BE812BECF169A05E71EB957557787C2F3B72315281DBA87476B157A06095A30D52B388AC22840755B43440A931DF8A709DC435B415A7BABBB04CCD93CDA00CA1FB090646B1D6514813368A794D38C907163B5917496B018C519B160C5144D6424495626E3A5AB9FFB8D8D3168D77599A88A1D12C07D86498D88DC1AF7FA7DE15073FD4B62801C1A902B215E7CC3EAC350BB63ADEAF9C7594844795A9A6274AA3ECA0CD10891F05795A77B30ADD76B6B1A35338B8156690CA2EA1C9C3B602B23324925314F726535B36DFB355225D37E7C85BE15A5976A8A6AD4E2C35D4C45ACC954368BA6DF88A47DBB8C782336F7EA507A6C2D26D952DC03B4BFB89872644084783AB493CD72D3BEFC2C803B692729638AF69B03E6DB9B82E678A42969FBE770FEF65723F77DA6437C20B203601C884A9B9E08C0B1DDBBC1A66517DCFC76B3F125F7795E5DDABEF0CB00119778575513E05AC38A7901A0E8C8794685C0F274050097BC50168818A74ABA5D71980F5C76279EC0214CD51EFA8A21391567FA052E6DC0CF9BF216CFF9287C80693645A53D71B3D7509F6A432D51B2B0AAD129B594278DA74FFACBB713357D735A744B7C65E482B7E172C67A5B4EDABAAE11222B8BB6B4564AB4FB20C28B4981614B69BB188DB6056607E089F64803D89210C7E604266B00548A2AE27996196A6D6F762C27B22731F7942543CCEF3856EDF9AD1B1B1652A33C3E038DD9B2CD9A4612CE174315E67B26DAC767E50E68508D104BBAE1A2B89B78266D27B109F90BCE1581A8B8888C90C1C4EA5FC1F009D5073780CB4545087C88026B9B9ABDDAB923DB52620713C8B5AC3301E8715AC39D13084926E841FAE41A7BBB7912E10680A78C0C363A251720B2D69467B6CAC5D894F862595072A7C9B14BFEFAA2FDCC75CC42892CEC6184B52962B9B73D663B7D76C1EA499D538BB45A4CAECEE0C8EB93BBA5EC1A8C936156382B10102E3211B2DC15663412805F60590EC33DBAB80D2A3BC05FA8AF5145644F712E004C20F799650159C40DC952C9A54C27E816C3A6A95EFBAB24A31F6C402300F9BAF88A46644B4DF8A24979E80DC30425B9E75A753A36510B87C5FA95CBF36E19A12245876003B54D4E008EF7AB9D83C5A2406014B5CC33B6167F4C452AF45084B7412EC19556D82B0A6A90C1AEA60A72312D8A7A8E5060189717094FF950AF2B503988964F0AA227C523487471D3BC905B6672BE20BC714729B7A71478B07A19F777DEC546C624723AF7B5F6C142274AC5652A7C2D7ABBF1171F2BDB12F1ECC876681A600806D6FC229E6A8F6424419187BD22E49B8F27486DB25371C169B3F61E81131B57659B1030A959790BA5D6424580B1F588326DB9CD01A260B21B8C42062B883854FB173EA7613764D41DD6B89468C7BA6C4236D1A0436B945B8B340983023139293FC48C07659B955453BBA07B0EB4E2A91F594232A47C65C66E1C5C8279F179925C55EE3A0B3F5423E20A8620572A687C2B64B6CECCB5944D07107648BA73A19FDF6BB3F57C5FA079536C675FF17A6DD22439C8D968F2E3136D3000DD70C5DB6AA212A63C9E16222BD39201D9B64534C87AAC3B53B357BBD522660CAA73B02AE4F45E1B9868ED45CBF8533720F99A1282338A107647ECC8008AB2FED262512A059AC6073264817E08332F9C8031C9913F2339169851D7B746AD9A8F2F54633D470C3376302250A3255687DEE61C2625AA9CDA852D835EC95C4348C9BE74473049ABADD65CA055239D85DCB11E6297E1667AE548664D6BB19B347288D57E3DE27369A52EA25150675507CD5282CC4875FD8C67BF29ACCBC296E26C4B4AC813877945DE0A52C355526E2404D1F262A2505DD542BF3DCCA6F0121A5A45B77B419094408F409261E3C25F90689A5680B146FC6B1B76099F6CAD427C6AC4281DB70B34CEC467AE35186D6195574935A1387C5DC795523257482A7210E1009F5337D773B2708C694359A517152168775695ACBA0735BE594C8390C760070C4912E37CE33B3BAD965205D918331371DE92C27A1A5ECE876015A959E96AAF3B1A60E9E77E46D51D9D85ABA374263BBC65AD78B2D5A53CB909682AA0BF37D49D172BB46A0271D30716CEA8AA095992DBB1132E81265A29435EF2C51DAA9F27FABF3A799813E67EFCA087AC12247B64CC0BA15A5486245DEC1648CBC7AAF40805115D78F6687C47C553D050F1E6821B368F98DA22F4AA7D738A81B298A81BC43E16C8CE1490147CA83D2DD98BB918300A26CB431C99A952471B84BF6118A4D5C0A898532CD277BB4443CD7B6924C3185CE55CADC7F877BE93306357AC71A67DDB4C545FE7301D339E933B81AC145988369FB7D31921A66403C587C165BFDD341011D19EE964B62E4C8CAD2B88E8DCCF3AC75CD3F835E2938D027C6789F54D0FBA176F9BB8DC7716CAC344684334C5704D5A54C932535739948ACC61BD67B581F75A2169A89A11076274B10563141722C9AA9A34BB28A69AD677292BE84455B24559CBBC0F347E7B36A45555A8336B8ADFA07E599633F5D1BB6ADCAF86AC9E7885039A3C1D308996AB6C966F017F8297009C9B4B573B70DA8921A0C256A9A03C0CD6A4F72C6EDB5630B1219C4A3C30D1F1586CD936E3437684AC60EFA62D0A345FBC4881B24372B5692C101195C66C3AD647CA04D37F91F813A7A6795B371A574565E14779772372CC4A79C40308EB1233ED643808E939F27571C72B2F719023E048C4D15C71B3E116482C413A816C6D3A3877F862559B4AFAF04DF9C62D02CB364AA2ADC64078B8BCBEFE043BD6F32FF62B9555FAB5C1009CFC102B9B4B88B8A93B66E3A65A62B184BB5406DCAE7B3AB6047754BD215251EBAF102356BA688095A8C9EB1A9D8771CF60E864B7B4A5588843922B6D4A7445476997A6E5620A528510439B02A4B0DE9C147BB14433DB144FC9AB4B4128F7291A637B7E609A7DE058A3B58A17501C833BE09143244CC7E2490EB01CD292454523CE413A6E8CBB67A464AEF43912B4559651258B9B812989093540DC8D202C652C71CCA1EAC46EAB3F9EC199EAE025B153348A600B0E373B7CF2620F5560A3C64C15EC85B5E81C0BCC4840466C63CB124CA45994BABC31F12486F3712D22B1F649A07B192A2451CFB079BA179C2B857C41C4F8842A916E06F9C6A07CC6A4D2821401A65060688713CED4BB72C08241AAD91B50BC1B968BCF3BDA76A8E1B20060975E8803DD7B762D9A49B988568CC575A6D34BCA13A0EF701B823296FF114EFEC9031D79A20F6C640D4519A1906183099926D44E88703DB7636E19394B2F65ABE9A8712C868697B46871D830BBC09AE02487E8D59537C3841D5B080F503AEA769B0335493B84B94C4A498B1A6E6ACB578201BCBAE6BAF0E960AA975D3F14B5179051D933C4109361F03461F265274F72416DF79D1187B6822A0C38177A02B4AFDD635324EB6737C11A631784916452C700D09AAC42EA2634ABC68BD3F41A2CA679546414DF2314D57C2B318BCB98D7B46FE1B5A7E3AF1B2047D193883CFBC6E7D29049FC9C97B344736A0A48082B0A145AA8776125558DF656718AF59964D42F0704318DB88D1E91B840690B96669C8851BDBEB6043F04C017B59B289BBF550A94D0ACA4AFF18CA84630A99B82711A661E8B202B976E65F53B5DB52B255A88692852E06BBA321B4DE782B5D951AB02EB27098813C98B0F7CCCB778B08704A068B4D48AFB30274C0759FC5BB86FA59FE61688296846B2481E18A05FB9C02931570596EC436F570C187159B25C1F6341163B79670F62334C6B9A7139044A8BBD2B5183E0F82D3B6666735A94478784AA6168D0D3272876B5476B64F7932F3AA4151CA9B604BC7FD5D1395C3708908015B0D2C8CF04858EB23238458F70F964687BB2137A0C75C06A868C3490166CF2BC3AFE9B3746E40C231B3638A3558974BFB0603CF4C28C21003DFE87B3EB959DFA715B78ECB71BF404CDB2B675160138A46501569918CB7DEEB0489A72A4799A1A4AC625D5C6021F51C357895CCBF26FB5AA372343BB1C516CEEA47683E5A4D094A3D5188270811751FB1E19D68EF637227E491CC6387760EB5A810B387F596AA20741C4627B1C13A303D160423BCE1E422D929C06F067ADB7D96112F1607D3C7E43E7AA09EA248526C6881901852123F1B734A8C1891261BAE6E7A23DD5296858B6F7813196F13F56BE785D942D7EAB011805CF3504FCE325B6A5EF1AAADBBB11C662B9D2C9EDE13BE3DBB0EDC3AB08226CAE11771FF4C0B04A564B64A0D9FF10E373E986588522D326E7F105F11C4E8D97E119E193AF42DC28409F4F7572ADA538B52C1F\nencap_coins = 46401015603C5E2174CB94AC742E836B516E2D570F15DE0B9D0204D79AC64BA3\nct = 1276F06F36F86947F8F10E4FB2F63BE3B13F1F3E3A96C4F810FAA0D820B07FBA4A5D418B2691D934AF1F821A272348BEBBDEFCC6CC9344BC6C5505AEF98EB37A41FAC305EC7C191C91AD3265658E541B34CC7EEA6696C7AC357B35D2FB7E0BB57B411282FE3B79B71DDF1AB42E744D51BE081B248B6FB0C6AD6878FE198C91B7C78E3232E42F49996CCB920581CBEBC9756EFC832C05080FCB71BA0BE859DE8377F5B832093F33693C1D8E607A12D40F4B03602AAE4099BD05FF4C5BE7BDEE8741CDD59E25C844A9067DCFD3366F8FAF4AC89129EC32FC1A5FBD20B95D4A0F323FAFC53FADA2932D34F851C607C88DE6C92FC78780CE5BA412E475A6DBCDEA8B8CBFF2310F8412FDF72208012EF26336B16230659DEA885C11954B74EADACDDCB6D17164A7929003D43CC6F097680F9D5B2972529D6510C9A4C9130C99C54EAB43DA8FB5CEF5F40A3023644F8B2A531ED24EDD54CB9F76217778020C20A295D882F0F9696EB494C8F991EA38ADA9D46656CD91594EED1CDD28B6786FA0315990CB7DAAE49B225A926834A3AE34A2FB02005A47760C54FA381639844A15581FF2A86B8DA283D9E4C0E21A4767F0B9AC32470201B86BFCE06A197EC4D23950B68378B0258C7F19EDCED084531F68DF5E9AA9D2BB4D4AF6A671195009ABC0B0DA114F3786CFF933E5728F9532D568247C5D1DDFF3701233AB5A134BFA7826EBEBC5F24D3895DB76DC8C013A6732D0A51E30140C6A7F49F40D13F29E10A34CF95859ABA2D20CE9084CA8DEC9294D06B4E5795BA201ECE827C9C4ED37D4507493ADE07DB8491609CDC0306E7B875F8FD1F0A6BE48A7F15D82835FC109E34808DBC5C891449B4CE87603B7CB12FCD07C418029DF6ACD554A32EC3137DC5B9E5885B564BDBEC8701459BE6D3B73FEDE068019C6932330040D14A55D75FDB37E0112584A703B5DA0DCAFC2ADFE6986AE68CC5B55E4D7E2DC04311970172D3E53DACF9A447F8821BC5167F32E366B207969846358AC96BA0E868AC8F9A6E835160F74944276954AF0BE30B4A8110F1B4DDB88013F1A35AB9209503D69DB6A39778BCF6878156B92009D26A9FF23C02890E7D2A16E214FCE7803F2E32708CA096B1DDC1480860393EFBEBC59FA6085693B39FDF5317C0EA18A26E7CD845E6741A880EFC99460D336F9F938CE6B56599598449B47FB423D80F5FB0C02C442179BCEEA85B3026B0463D357A8DB98F13D1E719F0E1827CA4FF7BE61B5E66EA5B271078A40379F3B29D05BBBCED270828E0637B8C7809626D23BEE768D5ACEA4DE9848297D377D7DAEA06C5A745F00C1E6A1450F6CD97F07D1F2602D1DC401583BA", + "F44C42171A3AFBB4F94C1016C18DE7C4E07DBC58703CEA61098DB16BF2D67CA055AF49D70DB2C1AC963F74B25F2D51F80DB756F8F62FA41C8A43104BAF7631A543BD4F56B041018F0B33F6CF1F51848FC0D8DFC31A788E53CFBC482BB20EDEDB738BADA3C27D9FEC177FDB71D5529F2ED5C1ED014523D748715F11E70AA930CA871940F5750787F73948921BA6ECC7905329D6998A5F5C07AB7FB9C5AA07AE54BFC17FE6B158ACE8C788D9C4332284D8F890A000ACDE1BF60A84D7AF3F02FC7D81637A246CCAE1FF4A77AF37506B766ABCBDF778BF1A4E16465439EB49105857BC72EE4CC564CEB047590C232A8BF4EBF8F742DA193C3A2902A4D1729F6BC8A71EA2589327F4E0C3D98C51A5A5512DE34B6C6E0672EFD5B0368658665EAE3CD9D7AC2930C1841CECC4BE13495E130559DB9EB093718E29493390A32DEBD702E13BC5F7116A9DD004AEA74E7452D28EA6D5C88C38E0181AFB49DFCBF401FD0F1381F6112B4345D647E4730E4CF5AF6A60277225F06602176F20DF1B370E0F827B667FD69594DAAAE12B22FA059367C394155676D8D41A8A82E1218F7B8C6787B7965E46992A1BE6D3CE03D7286021A869982B068C4152CC3D5F36A33F30A3FE77E2550E5468D86BBA09793400E0188D4794D4484DE0DE598895B3543A9812C705C67848195CE62B734B90278DBAEB29DF0896A1A471E5F2D9D1356EDCAC79186011F1B4CC3891270A277C6F46B26079C857E0D40D1F65217DC458CDA9FC7694095A3279338CB0734CD5D58F696927BFA9D55F492AA551477D49BB0CAD7C77CD6EA21AA6230B7C33ABE8459409A120C2F41212779D4F06B11343C8BE8703CD57C03344F27429C\nss = 61C0B964C62EDA77CE295B1F7BADED362FE1CC1A0881D2C6F23FE99B091C5E95\n\ncount = 2\nkeypair_coins = 4B622DE1350119C45A9F2E2EF3DC5DF50A759D138CDFBD64C81CC7CC2F513345D5A45A4CED06403C5557E87113CB30EA3DC2F39481734DE9E18BCBFBECC6719F\npk = 042B035F126C4FCA9E059972FE92C9F4B3755648B5B2B7784D55A62E9B101A7A059CDC2F3F4B8888FC3A56CBB1447673A406C78E9A045DF1BE84DA17EE2350B64C0D3BB63965328D16B3C446214C58731CE3C405D3D251AC560D0D9108E3BBB268C6931FC49D7B454594444DAE401B2FA3011BF3C697E67AD9C1540EA945ACE6C98D49321DBC36447858D783BCA93CA67132800672513E577D14607CC046AF9BCB4896F2BB39A0208405B3734505B239967EC72F8E8B0C2BF06228BACF834029DD123C83FA3F8F83892B504C1A11B809A9ACC494C5E5C79C18401A41A6AF6632C11266AE5821B3DC7C263E1B5E33A1A7BF172D6D142C79782E20EA38D6E791AD3B86517681CE389620562BDBA89898679EA0C748D90A963E738A3E9968F3648E984C99F0E04C952309111396D112523959B9BACCC43DF715DC94BA3253332ED27CCCF56F5812200E8C7E2A11AE02087E0FDC4389E98EB0BA5693CBB79680A6124074D3C998D911AE4E142296C0CA245719467402124574F8D271624315359C7842C761BD6057B92B4640A1703200CEDCACBFE0E475F7316CCEA74B74257E37C63035F04A880910BC042802332EE8B3C3612290C45793CFC5581B92236B74A4F3F4BACC9AC3DD563471838D11758DB06461061ACC84D99F29B858C339AB999031D470AA948665AEF9974DF5A2FDD93BCCB74762A0B7C2FAB58430942F900DE1C835C8B9CD42D521E54C434FC240ADD0B23CA1AAAB0581ED9A593487B95A16353C0C7ADABB285C85105A667AF674344C3666DA142049413973051268D94CEA41C3CC9682B791AE17F0696DF29F7F559375965F817A8D9A3297639017F5624F9DF1B259412F89A8C88A361940EC9C3045C4A78364E1E06FA95500F5EC0704A365F4698B2F26A7EE348806B74E1579C2A466CCEA209E515302493443F8BA9E32D04E03A7557380C7BFC83F191B84093C98AED14286F762D3B5513F996481D5445C7A7C931C1B9B52BD86E0B3943CB70A16C9EFABBF4C7C80F1F73438399FFB464E7E40B93B5108861576B3594966C40860F74CC58B9BACF51A5DB6AB2D4CA43D964FFD831130B21457A08AF7D8060F847E3695B8A7E8C9858A70D521908CE1C38C0713469C3D294A7FEDBC5C5446904DD76733E58F86693A7EC4AF944165DC9597392A6FC2068297D11C39D8648F550A7D157EC4B64C631A7BA7B94C6CD7083E21B149B484817A6F93E011A8E76931DA4921E08AA604756C0BB63F897AFDB8C6112A4CE21B2CC1935DC6B38B6C4473E2B0639266386CA988456AC843A1084C220B74F72B18199AB17AADF0960F50DB4DFC7BB3454A9B29E74B09C410362CB8A5516E0546A3B09356B520A303E284569B2DF6D263EAD36CE75C82F6D141BF7C3E5B87B3EEC630FA7A65A4C58676181916CC23E0C6A0339827571930BB65089376BA4BF60F4CA71D7090614F468732E60989298384A93849031A989488E144BE739A78E1C49CAC60AF115C55A6501F010C100DFABBB462B1B3B6469C8B0D8B91061BEA5DA74A28D17CBA84F04D2232076CC91C8BB21FBD558426F99B00E13525E37C23520698E0310C8A53C6B36192D82837BA0D3EE27B059B3E8FA1A315B64CA5159DE3D9BE0FA0352B511D1A803C79668479A1C3561A8EE6F7ACA9AB4C861554A5B81B5E6115C952B3239595B9782FEE01B869380FF09CBB5784811966B864D0414249B7DD0B53A762155170990911192E37C6C7263BE626084118266BF7271356BB66D35AEA64C5EA913DB432C3CAF989B0EC702139504FEA41FCC782808BBF26D3B12A962D2B1A142C755FD1ACBB802AC9B93713EE71AF9D4430F240C7FCAB059CB435A8373633417E79106A274882F5D40A4BD732C1E8202E41131497721792AC464B3B26A6456A9374A5520054E50CDB06A32B3973AA948A37E4798544020A7ACE817749CDAAAB1C7713B467A77593C034C20DE0A9C71C712D6529820A5B3BB4E76202080A5E5C7CA86BB78C392A39AA37A91B4E75B3C5F2E56211358CD5AA2781EBC548E21E5351209B7A7D871A782DA1306883A4B6B070A06B97639A3CA3273D1218A8000B7E85D6011000AD018527A25059C2CA252E5726629B0800B85FFE02745E9199A705D0CF4879719A53D33A95B2CCCB52C1C9655419543AA146241B98F4A4AC60E8CB68627382A145F91BE9D78FD51BA5E3FCBC3155B62BC07751DD\nsk = 72408D44C2BE6E83C803DA2846D852DEC1848EE41504B5C91F774F6E512B51F71DD1520203C486F63240BAB4C1DBB212299753B8627F9BF2117CD6A83BE4075A385782AB804A420972EB25BC553EB981AAE7D7A715111338529F6116C10B10BBC20B31C3161D4BC1A5F050220B5584ABD6A546AB51A9A10120ECC131220502697E9D61BDBAD346FC43824135692204B49B5B377B870B7B28C86946077A215ACAA11ABD851ECA479988BC69CCC9975EB42A33523C525434BC594217912123957DCDC18E410A6D6A811BED8A0B4135B56F4562F343AAEC34396BB0556D7962679A76934B016B4B4BACC14650C55C3AEC9BC2E85B548B5D3EB891B6596F0C44009BD0982D98BF81AC77C8DA98264A719CD8568E48279DF9C8E9552B94AA773B43A70742C75F041915752551347F00447D72D934BEC553BF1014F4276015E0B4DB77CDF8C546AF05861804A5B7D92838744511AC6C8BE55E883ACB7775B98C4B4C9C8789AEE317F8F02B4127A6AE879D02C13772A003928041C53351D8D70CE59B14CAB5CA31D717F69129C8FABE46582CA5298ED156209C25BC57870EEA34255CE1B4C426211F957D74876DEC169C4C516C8716B3DDEC6C3E610C31F0C52E13650F0B1C70124DEE27111A76ABEF82C8FD3172D554121E6A87E9D3B58E11379CB812B7F4B95D46104934CE75C715771204D7C46AA9439836453BDA709CEF3BC1C9341994F25C48B5C80FCC8A67E316C431BD302B20904456B3283E9BA1BDDE494CE9F8A3F0B432DCA69D0BA9C43C703E1616272CD6B904D5B6279C55A539B7E46A601B28493E38A2CD9BA66D997C8C5C3B7631822C529FA48835F8A08F322615E96B9087C71C9F262B68851F00486489D25C92221C2759C89440CE733614B8C7A06F26B374CB4F8A6A7D67DA521EBA7232C0A4C066886B8450755896CFF77A369BC8FD4B3B5B0731452A908ACC68366B8EDBA66D09F212C9330C83990AB2DB7095D708B6C3589BF929FEA31534646537D2AB023887FC286F00F46F8A360476998E4FE7315F03C234929247BBA2A05297A5E01AA9CC6158458E2302513274A2E3359D66126F5FD44D348BA2B634642EA26C6CB616F64A2D2C819ABAA48BC565CA0AB67E6CFAB1129A0144C10A003B44BD3879B4E62E0AD3A58BD86A7030BE34309F3309642B017B0AA03FFAB4012B36ADC49A95DDBA67CD81306EF6BB20B546BCC55EAC2B815FB38BAE991D6AE7AA87D42ECBC740CC816A3EF42E9D204CA0177CDB30CDCB870386C320FF51B137578B029125BA518A5B887D7B9050DFF113468608F6335EA81A59B87CB753724ED0E159FA4709AC018A31194247A6A9C65443A35AC36E11BFA6A8559CF20E50116EE5FB3780FA03DCAA77846B18C04894E50486ACFC3B8FEABB8CF860D79C2734A700AB731739244580653699B51B7FC440B8CB1D6BB1360291BDA5B11AEDA3C77A25B40F96763A372512561E0D52848FD6A3A8241DEA49C4C24692CB43AA22067072FAC2DFF7898F298CBAE17F9CA68A132321932295161A1F31C178932004D17854D7D9C69F6640EE216747102280191A5695433763B6CF3B86756AAE22A37F9F6920C361C2AC68A7E11C8F5505AF2100651595BF93B2644DDC8D68053CDE98863922230F89371683BDDCA6BC63B8C61FF4932A0885213234D5004EE9223745117EBABC5E149A5184A69836C69670E81EBB94C5ABB711ABF91FE3970F805B9ED7D1648361153B2911C7E20186F90907F28602672CD6C383EB373375924E832A156241BC7C5B231D74C49430C1D5FB7DBE49C6F7E20BAF245D43C9B356A1BE2A63BA24D4757DFA960EA61A65611CDDACA48D7AA88402B0FBE16279445C8E663DB1D8CA70DCAE63C120DF1C9BDA547272C396C29CC93F0C3F002642B9D18BA0B87198140C93B55965F8C15712319EC6A95B384182618E08F134DEC88732407DE7AB934555AF4F267051E221C4D3A0471BC6E3166BC24270EFC54B5F9358D83833C295B1A5791C6BCB0610FA33D49A70232488B27150F74CB99F3643D5C6ACABF5C18166CBB5BA55B4B78400E0BCB7205EA5591DF6F803C464C549729FAA7C9B75985088C8CFF068890425CBA4A2AA617C7D416B77E6C618D3F9112F3B9546A99090A1A499DC613323C0770923A917B2AEAC15AAF9A7042B035F126C4FCA9E059972FE92C9F4B3755648B5B2B7784D55A62E9B101A7A059CDC2F3F4B8888FC3A56CBB1447673A406C78E9A045DF1BE84DA17EE2350B64C0D3BB63965328D16B3C446214C58731CE3C405D3D251AC560D0D9108E3BBB268C6931FC49D7B454594444DAE401B2FA3011BF3C697E67AD9C1540EA945ACE6C98D49321DBC36447858D783BCA93CA67132800672513E577D14607CC046AF9BCB4896F2BB39A0208405B3734505B239967EC72F8E8B0C2BF06228BACF834029DD123C83FA3F8F83892B504C1A11B809A9ACC494C5E5C79C18401A41A6AF6632C11266AE5821B3DC7C263E1B5E33A1A7BF172D6D142C79782E20EA38D6E791AD3B86517", + "681CE389620562BDBA89898679EA0C748D90A963E738A3E9968F3648E984C99F0E04C952309111396D112523959B9BACCC43DF715DC94BA3253332ED27CCCF56F5812200E8C7E2A11AE02087E0FDC4389E98EB0BA5693CBB79680A6124074D3C998D911AE4E142296C0CA245719467402124574F8D271624315359C7842C761BD6057B92B4640A1703200CEDCACBFE0E475F7316CCEA74B74257E37C63035F04A880910BC042802332EE8B3C3612290C45793CFC5581B92236B74A4F3F4BACC9AC3DD563471838D11758DB06461061ACC84D99F29B858C339AB999031D470AA948665AEF9974DF5A2FDD93BCCB74762A0B7C2FAB58430942F900DE1C835C8B9CD42D521E54C434FC240ADD0B23CA1AAAB0581ED9A593487B95A16353C0C7ADABB285C85105A667AF674344C3666DA142049413973051268D94CEA41C3CC9682B791AE17F0696DF29F7F559375965F817A8D9A3297639017F5624F9DF1B259412F89A8C88A361940EC9C3045C4A78364E1E06FA95500F5EC0704A365F4698B2F26A7EE348806B74E1579C2A466CCEA209E515302493443F8BA9E32D04E03A7557380C7BFC83F191B84093C98AED14286F762D3B5513F996481D5445C7A7C931C1B9B52BD86E0B3943CB70A16C9EFABBF4C7C80F1F73438399FFB464E7E40B93B5108861576B3594966C40860F74CC58B9BACF51A5DB6AB2D4CA43D964FFD831130B21457A08AF7D8060F847E3695B8A7E8C9858A70D521908CE1C38C0713469C3D294A7FEDBC5C5446904DD76733E58F86693A7EC4AF944165DC9597392A6FC2068297D11C39D8648F550A7D157EC4B64C631A7BA7B94C6CD7083E21B149B484817A6F93E011A8E76931DA4921E08AA604756C0BB63F897AFDB8C6112A4CE21B2CC1935DC6B38B6C4473E2B0639266386CA988456AC843A1084C220B74F72B18199AB17AADF0960F50DB4DFC7BB3454A9B29E74B09C410362CB8A5516E0546A3B09356B520A303E284569B2DF6D263EAD36CE75C82F6D141BF7C3E5B87B3EEC630FA7A65A4C58676181916CC23E0C6A0339827571930BB65089376BA4BF60F4CA71D7090614F468732E60989298384A93849031A989488E144BE739A78E1C49CAC60AF115C55A6501F010C100DFABBB462B1B3B6469C8B0D8B91061BEA5DA74A28D17CBA84F04D2232076CC91C8BB21FBD558426F99B00E13525E37C23520698E0310C8A53C6B36192D82837BA0D3EE27B059B3E8FA1A315B64CA5159DE3D9BE0FA0352B511D1A803C79668479A1C3561A8EE6F7ACA9AB4C861554A5B81B5E6115C952B3239595B9782FEE01B869380FF09CBB5784811966B864D0414249B7DD0B53A762155170990911192E37C6C7263BE626084118266BF7271356BB66D35AEA64C5EA913DB432C3CAF989B0EC702139504FEA41FCC782808BBF26D3B12A962D2B1A142C755FD1ACBB802AC9B93713EE71AF9D4430F240C7FCAB059CB435A8373633417E79106A274882F5D40A4BD732C1E8202E41131497721792AC464B3B26A6456A9374A5520054E50CDB06A32B3973AA948A37E4798544020A7ACE817749CDAAAB1C7713B467A77593C034C20DE0A9C71C712D6529820A5B3BB4E76202080A5E5C7CA86BB78C392A39AA37A91B4E75B3C5F2E56211358CD5AA2781EBC548E21E5351209B7A7D871A782DA1306883A4B6B070A06B97639A3CA3273D1218A8000B7E85D6011000AD018527A25059C2CA252E5726629B0800B85FFE02745E9199A705D0CF4879719A53D33A95B2CCCB52C1C9655419543AA146241B98F4A4AC60E8CB68627382A145F91BE9D78FD51BA5E3FCBC3155B62BC07751DDFF2546623AEE72025FB6746FBA736BAE0E80E257E66EDBF09D8D4DC11049CDA4D5A45A4CED06403C5557E87113CB30EA3DC2F39481734DE9E18BCBFBECC6719F\nencap_coins = 8DDCC956A19E14E33DD2F1FCC4E6AA816F299F76CBF95B962A0535A7E2949405\nct = 0DDCDD68A34B34A666EB297D9F9259EB8E3FCE3B7964876A5F354FFEED4DE32A2DD457593E6F0EAA534FA2E68C8125AA5E4C09D839E78159EF13966DAD156A2AB9444ECACBDCB348835620C2E80D81256C4619043B0BBF6BEE419258030FA3B463ECCF9BC23EEB67A73A2396470AD20DFF505967900B3FE974367C7246F476A48E6522BE323BF771AB89D32C6D4FBB2300119D2B3E43984DA319D9BA1F050C1577DE172CE85E2FC98C4D9EC4D802ECCC048E9B1C7A213E7D1E9A09FF4F35218B61BC92174C9B4CC191720A131DE64B513236366565964679D1635FAB23FCD817521A36648B42F3A3CB394C924DE3F14662EB0961F7CF12EFDC22FFACDEBBCD62C7DE22F24F73921F2DDBBA0DB616006C5EAEEAE5CDB3B4EBCA338C2621C9A4DB8E1B1250D171D13A9DA93C7878CF2517355100B80A72F4DA457E6253EE9D085AB7BE0B6DD7D12BE1BD86EC629B7E60AC3A71875B673560B011C60720FE146D1492984248E61FA0F0F3E4B9099D6343A76FCA59D1DDBB426BA5E277C97D5C46F9968731F4761B59BA38A023B91C6E771F0058A6ECB13C14D1B95687B47A93AB305921AAA72E6B1BAAA5A3DDE766A7B9B116B88FD0D2E31446893D4667FECD0C25DA881ADF8811E9A8C300C94FF8B419A17855B737534B154D298835E829FCA34560BA1482D68F27E7E4CE40C19EAAE8A1247B36434C7A14D776CF5F929695A55F1018034CD795D701D1F3F1917F359890456101C8E758C67B84405947801E311A5A1705A7AA8EF2089A236430C6730EFD3395C999D55611F2AE8C56463935F72396D0AD6D49C7712AFA679C6D71AA5BF4CEF2C865BD1B920C31FC16A743E2E2807EA78C4C1D5E09AB49DE05AA87D3E7FBF4B512DB647F949D7CF5C10E18C48CBC3D1BB0C8E3B2B27E80077FAB90E9976FA3472F2C0179A87E45F64F8223B33ABF972068ECF7ADA788FEE490139C6F685C36B1993BBC7A12D0017EB642E199FED12264A89F94DAA5DE2583E5898430FEA6E7CDB7395824D65F5452EA2A470877E141D1F6148D2ED28919BD7F275886EB5FDF3855AC8604E985A865033163FD0F61A579323066460974DD8F8CEC396F1BA579CA523C9F814A178975B2E0C70913C5B5C3392DD4958BF67A7F466192D044FF4A6291E7172299F3B9494D7DA50B0198DB8AB21487401A9640E48757440C322F4A235E3D3FF9846BA911B568350C20B5308039AFA850F04494A58231957DEEF483E485F6F6DD37F52131FCEE2438FA80E141784EFF9520AAAE8311469EA27492F9421C2781D1F096081145F97CB7A813A5C9AADB76BCC178871EEEABF3A658C68A02534762009AD533DE6AF1726E8578214E035FFEC6605A4C587AC061C4B81FF493D60B75229E2C024C181384BA5995618AE9BEECD1F4E94BCF060BCD4EEEBEB535E26E0141A785C5DAB6C047AB23202A21B56A79473C230C6AB9B36B1840B40587F963ED7EF46239DDC5F003C96415152AF5E3A46884AFCF183F27103E4A6A5A4EB273450BA934BEB9C72689420DD4AD3E306F952F8400529B46F12A29C38802EE932622947796EC09B1C28B057B6CF12EDB8204FFDB6FFD1238CCE6214841B7E04FA46F73FDD356B648953E1288EC3166CF145121877ECD8F57FF7A76FD03E377A04609F020796F2FEA1A8D917532308A62CA6921AD03CE267AF4E6C4B5857FC60607CF42A2BE6D63A20FDA2E9FCA66B175B464AF1A09F68403A7BDAC01475B523EE2F91E70C6BD4719CA63B13B990251688F4E4B39582BE9832176085DE767C194B9D0C95024535C4C36A01C774ACE431F2998212CF6FDCC5B632E95A34276AED6C98AFCEAE7B96CDE0B8822D44A1E0DFDC9BF40C774937F32D5EBF208924B68338C3675FC140F34DFD99E193747A8BAB6354CE413A4E652E79C802061B60A4959BCD9A268F82B852EEC21DDFAA39C20DDEF25B8602600D09B17DFB4DD768FD6241BF46A1BE86E7D10939C8CD23F19D4BF6D3D33C1C1291AA7EE91A7B99400D8DA00A2BCABFD54F2A1B463960E6361C732AEE30EBA5A45FF66142E101E749469E1C26322885B66A6F6B9BE4F817A8D150B9CB834ABA3280ECB20093B84A19E5D22EF99EF5D96949F5A3B27EB9E8FF91D104927B917862D632EFB9DE27DD4EC0AFE7A1ED2CA0F13274DCABE72ADED7049B1ECD5C6DD9DD5C5C18B26BDB525FF6B754F4D32C3583AF38310B90C17E7\nss = C9F4BD5CBDF81A71F183C9C61DBAA1EE7D92FF3937F742A8ECB0F83268654FCF\n\ncount = 3\nkeypair_coins = 050D58F9F757EDC1E8180E3808B806F5BBB3586DB3470B069826D1BB9A4EFC2C3E0351BDC8A2DAF0258645C383021DF33FE59B553A8270C1B7A4D0AF155999B8\npk = AEA72A5C370048E5B9F9E7825145A2D726AD12746E980AAD5AC63B4CF86295195029F58987730D4BECC9DE18019E5142F94984FD0A6D84A8930BEC6D96D413BBE97B14138E95E05CB05345C86B96AEC66BABAB7CB8A2AD8F774086918795C39E95EA3E40384EDFB1AD3AEB931419C1219286390B9CD2154348BA19CEB280C537353B701976236414F21939968190892001D10F8EA83CA16803D2AC4CC5A96CDEE3A424C935B673732B312AA1D722F303BBD5175ED83087CF856C15364958B678E74B3618CABF82CA58BEFA00C6462B3C963EDB4A4B509792F890B228C7CA68082A8F38C388839190942FE3BA6224C4C58FEC51ECD52D044400F8EAC86CFA6904AA99F47712FF29C3F73B02D2127F1C687A00E2C48BC032CAD5B261B94FA44649C5B459FCD18D4014C34A3978F6CA6B9D667E5D93B87FEAB5C6F36472492B1DFC74CC9430D1818C0CC90DC947B01D33CB0C086849F81B570A407E5248A3527AB58074EE52313E678FD5876DCE81860B4B06F22768E3E26A3AD450DA516224E06BFEE2235F8631F2F7697E3638D3911BEA2BB486667336E4072C061180A886E45144FB266643AB524AB95BAED92C1324045C7768465CC177A6543376BE40E132E702318BA52EB10837F0BBBC64E10B5079A24564BB950915701A06BAD9CF1F0662C63BCC1BA31985149C2CF79BEFB710528B3F3A1406869872BE1C59BC011294CA50837852F6567F6CBA9B5ED028BDA8AA4FF26AF2A4AE90EB03C65A7F03C61BAA3008480B8A006C29D6A2B52E2278659AC2FAA877422A3E0809736B576564D800F5287C5A73C27A9C1E1748B159DBCBE9F566CFB05FE76419C84321B8FB772597262D2B48F9C43BFD2A110BCC93AAE57531C68BB222CCFF36B2E8466FCCEB237BDBC336E855755B25EB4784ADE55CD54B644F6404B549A2103B31A0433363337EE7E520DB9A8929F607368A090FC77AFF437020109001B40DE05035394A7032524CD8395916BC2FE12A7B9FA2A4FF93000CFB3077C23105AC40ED0162D8FA6E22A37F9670A4C686A93E556AD82509DB3AA2074A47BD9605184A9A1F82BCDD033116E046CE58A9E639C8B506CB5C17129B3079FA96CB625115EA887C11A7AA7484C03ECB793A07ADADCC25E2E876FC31766EF11379738A8BBACFD46C5D53F7091E6AB6108356D8EBCB45E6BA20D36D10B1AED4C2701F6B9924BCABA7934919C2A64D340C8E9A42A98001E75B09D902714BC47252B9B15C2A08F2345B78B97077BC989C662560E94F551C3AA7834830761DBEE93D343A4089C8775EC85091DC1CCCF91BDF30620CC3B92C6A25CF147385D1C60A5886CFB6BEE5F30BDE74C579689251199EA26A15A9388CCA30AD565A83CE397E07A8665B0A9286D223402059A8238137306FDB", + "BBC2F6E4C6707534559ACFB4628F803250ED8C4ECF846D8AABCA027B9471E4308D727987A49FDB68A11869ADF57A6F786043243608810A6353C36CFFD18E1CE8BF25512A04378E8DD7A01B5C2B563902288624C25C06EA881FEA70390A039B82E162F61BA6C484BD09B703A4812535427A8843B41C405C7CA0ABB8E17EF4C82589945E9BEC2BBF348DA0219160E50C54D965AAAA4A628079EEA53898778331649A8851732618BF307491FEFCCC7074CA2A7A56F04309E39272B74A30E526A6DB5C3FFAC70CE46363FE596AD5C377C7F2464DBA68D42851F6F70D4B8A0B0CD52D75C48A9CD31ED8F270B36B69244237F9DA28E6B0512676145677B418309D1B491CD9CC1DEFD06CDF9C182EF4B33610B257D68CE0B12A3F024AE0F0113AD538ECE90B4A3B85BDD99C495B0FAD7780FA1804953041F643183BD7083C5969255406F1346B3A25C96BB7B1568C5BF5686B63EBB0AB9A331EA6A5172543D80A0B153C8B8147676A212E6ED13687941132010A83457CA155888946C8BD8506E6301F1BB78CD9A0C4ECB73EAFCB2FB7B02171885B6968AB52B89109BB2941E10683F30591C322261155D0DC7B0B1821EEB75ABEF6023ED67E16E0BA40C78109B45CD03BBE2C800FE4B19DB4A960B3D11A45392C6B088CC6CC5D8DE1275F035357D3A847313EDA8C1C0A65C27A743A000063AC6A89754818EF7991469A39F39536A7B70964B33D25F01B7AD9CC4FEA6546F82C3648751E2B41AC410E764255782D978970256C691434F939B02C14F42B1874087EA68917C2F3E31315E22581\nsk = 548A01803A231CA63843872ABF16B2C4B9AB7407A093B354F8882C6775BACF2931DE0A501C5A7EA7EA5C3BAA067290B9FCA059D69CC6DE9B772CC058470544B64B11ABB77F490746384B83283740F0702E17D046759B61E75030F187C2283045B22B4F9E222CA44980DCD0A42E5704504BB3E097CDF93A99F057AB21E3AC305666710C3B4C1B750AA3AC0F00A6F592770D8082F6157ADDB170A956456C7616C856657835970578B35FA87D8F79C2AE54AD36823C6A13A4207453FF324F17D13D43A400A2102B6F6224E6F2132BB14A32FA3F10A446D7944428B66E0E0A04B204C5993C03C294927C60540F836572793C8825376332B64D109BB7273147A878FF0B0BD2808B62104515D0824C90A4E249B4EC8C0F6B572BB621B7A74089DE4B49EAC5A3CFB61A5D6B420779A29E1C5AE98AB30E01A0B45538C9A14CE61C4DFFA27A4E462757A3BDF00C0206C5BF5233132C47B7111771DAAC633E22132AE82CBD616EC92B4E9D1C88E7285B84D9A12E14897A020C06832E9CAB42102AB999838A93A77141D12FF068AC13DC4C685328C7036CCFC2087BD92CA5A675CFE40AE4C32B28EB770DA04234A456EB889EF92A93A0D3ADA8061599D99CD8A96880A2B5E440766A9C81E7A24F14C295283C333A0576B49C569C99450F8714160C4CC49828090BC2CA390094E14BD6A3011A5C038F0927FB4BAD38440EA9F96FEE99141C564A91F9C86DC72498F89D05B047461699FBBA62EC28698E273E2B8436A6EB8C9C094D3404853A45137881C691352F6240ABD2298488299331CC03B1A3106F242D2871525587888E448D0F45A61480BD7E377DD5B63E143093FCC8BDAA563264BAA458649CE7FA5826E4B9B49159E7541D432143C5093A2A5BC5B835535FE7395EC556BD467A10975CE26304BB892D056A6EA4C5CE08D033E9334CF7F6750CB62209BA21F6B147AC875C3F1195D9D991E333C7C25465176B8A566A71451B8305F35D831A36C57C64B664C707F3BF08B54FF3847F1EF0AC4B32BA7D563AF40228B2957B8A95063A65BAFAF86609B4BFE1127C029C2EB224465E1C178C74CB5DB4C0C2AA46456761EC4A528AB2BB8F92C120A1B78A9517A29C8EE408AE7FAB4FDFB1941CBBAE4C3630F407A2C23C4D10A58A8E64546727153D61766D0242C5132236F637B7323905F4A7811C1B8019A808946C11A54F8CA6C16E06AD9A685EDB094616A80383A79E482C611760C249988547194266000722743346D13C80F72117C25CBB48490E05789C6A5E85ECBFBC73669F249C10A12ECA037DFD15994CBC450EB40868ABC2FEA05B5058429B6B04DCE2C4E2630A13DBA2BEC9BE9C30B9F90B45A97040A1F227200CCB4A4413C8B0C5B169830D451BC7993EB3D5B4D914A02C3183B7423D61101B0E3AC0A2A18673126F69511F27EC55E28B975E22A8CE800C37473CAC71788A42CD39C26C176C9C255C4355A62C0B84CDA33819A1AB6C07BBC4F2847AA23A600829CD516485DFF565DE9C392791B84BDB4580326F5128556D160100622AFFA2756E1CBD0A0A1F217A0C198A6DC043B1C50813BCFB3C2488A5C02C79393B65F39990B610274FA77B814BA93784562E0794C179549EA0927D9B4A9E2C128A339F73E3B9D3A99A151C873C555F5E3C3FD4A59823666E2BBB92E7522098240DEA1B35FE2B13E103A020E504DCC1BAB6B44B3D862C35C76F29D2BAE150A5959B200563536FF6CEC04A3B4E82C04788977F25A6D80C7807404C47A4697B1A6ED8C903D9B71AC45962D8D4CF7B71B0F54760A4799E76312D805A9B6E508F47734619E57C9DDC93FE345818615940386951A61D83248DB78B669F596C2F652B92F18F51442B23A20682A34A08CC356785B20806952003354AC7BA31A355346CA63CE8030A022FFEC604593496F05624E5AA41D5FA61E4E07B76A079BD4079E645435E5058A8148BC8FC8083162B38757637B72875C6A323F2BF01C95D89DC0DD6BB6A3B800DF3D42481170510E6A94EB57C3DC1B6232446459625B6F93932BA11C3B2A8B9C6A203B129ECE1A76F5C067E4B3BFFCA18BE65A3B15AC638538C5EF51CD313B1C65A08E2492037B924C09B8536134F09733F5C2966588307EF8ACA7A6CC5B9C27C86BAC9F9754E6772096FF68B706CCFADD711D50B4A0ED155AEA72A5C370048E5B9F9E7825145A2D726AD12746E980AAD5AC63B4CF86295195029F58987730D4BECC9DE18019E5142F94984FD0A6D84A8930BEC6D96D413BBE97B14138E95E05CB05345C86B96AEC66BABAB7CB8A2AD8F774086918795C39E95EA3E40384EDFB1AD3AEB931419C1219286390B9CD2154348BA19CEB280C537353B701976236414F21939968190892001D10F8EA83CA16803D2AC4CC5A96CDEE3A424C935B673732B312AA1D722F303BBD5175ED83087CF856C15364958B678E74B3618CABF82CA58BEFA00C6462B3C963EDB4A4B509792F890B228C7CA68082A8F38C388839190942FE3BA6224C4C58FEC51ECD52D044400F8EAC86CFA6904AA99F47712FF29C3F73B02D2127F1C687A00E2C48BC032CAD5B261B94FA44649C5B459FCD18D4014C34A3978F6CA6B9D667E5D93B87FEAB5C6F36472492B1DFC74CC9430D1818C0CC90DC947B01D33CB0C086849F81B570A407E5248A3527AB58074EE52313E678FD5876DCE81860B4B06F22768E3E26A3AD450DA516224E06BFEE2235F8631F2F7697E3638D3911BEA2BB486667336E4072C061180A886E45144FB266643AB524AB95BAED92C1324045C7768465CC177A6543376BE40E132E702318BA52EB10837F0BBBC64E10B5079A24564BB950915701A06BAD9CF1F0662C63BCC1BA31985149C2CF79BEFB710528B3F3A1406869872BE1C59BC011294CA50837852F6567F6CBA9B5ED028BDA8AA4FF26AF2A4AE90EB03C65A7F03C61BAA3008480B8A006C29D6A2B52E2278659AC2FAA877422A3E0809736B576564D800F5287C5A73C27A9C1E1748B159DBCBE9F566CFB05FE76419C84321B8FB772597262D2B48F9C43BFD2A110BCC93AAE57531C68BB222CCFF36B2E8466FCCEB237BDBC336E855755B25EB4784ADE55CD54B644F6404B549A2103B31A0433363337EE7E520DB9A8929F607368A090FC77AFF437020109001B40DE05035394A7032524CD8395916BC2FE12A7B9FA2A4FF93000CFB3077C23105AC40ED0162D8FA6E22A37F9670A4C686A93E556AD82509DB3AA2074A47BD9605184A9A1F82BCDD033116E046CE58A9E639C8B506CB5C17129B3079FA96CB625115EA887C11A7AA7484C03ECB793A07ADADCC25E2E876FC31766EF11379738A8BBACFD46C5D53F7091E6AB6108356D8EBCB45E6BA20D36D10B1AED4C2701F6B9924BCABA7934919C2A64D340C8E9A42A98001E75B09D902714BC47252B9B15C2A08F2345B78B97077BC989C662560E94F551C3AA7834830761DBEE93D343A4089C8775EC85091DC1CCCF91BDF30620CC3B92C6A25CF147385D1C60A5886CFB6BEE5F30BDE74C579689251199EA26A15A9388CCA30AD565A83CE397E07A8665B0A9286D223402059A8238137306FDBBBC2F6E4C6707534559ACFB4628F803250ED8C4ECF846D8AABCA027B9471E4308D727987A49FDB68A11869ADF57A6F786043243608810A6353C36CFFD18E1CE8BF25512A04378E8DD7A01B5C2B563902288624C25C06EA881FEA70390A039B82E162F61BA6C484BD09B703A4812535427A8843B41C405C7CA0ABB8E17EF4C82589945E9BEC2BBF348DA0219160E50C54D965AAAA4A628079EEA53898778331649A8851732618BF307491FEFCCC7074CA2A7A56F04309E39272B74A30E526A6DB5C3FFAC70CE46363FE596AD5C377C7F2464DBA68D42851F6F70D4B8A0B0CD52D75C48A9CD31ED8F270B36B69244237F9DA28E6B0512676145677B418309D1B491CD9CC1DEFD06CDF9C182EF4B33610B257D68CE0B12A3F024AE0F0113AD538ECE90B4A3B85BDD99C495B0FAD7780FA1804953041F643183BD7083C5969255406F1346B3A25C96BB7B1568C5BF5686B63EBB0AB9A331EA6A5172543D80A0B153C8B8147676A212E6ED13687941132010A83457CA155888946C8BD8506E6301F1BB78CD9A0C4ECB73EAFCB2FB7B02171885B6968AB52B89109BB2941E10683F30591C322261155D0DC7B0B1821EEB75ABEF6023ED67E16E0BA40C78109B45CD03BBE2C800FE4B19DB4A960B3D11A45392C6B088CC6CC5D8DE1275F035357D3A847313EDA8C1C0A65C27A743A000063AC6A89754818EF7991469A39F39536A7B70964B33D25F01B7AD9CC4FEA6546F82C3648751E2B41AC410E764255782D978970256C691434F939B02C14F42B1874087EA68917C2F3E31315E2258125B786A67DE17D61B2FC0E85A13924398AAB931896B6174089569F08B72606873E0351BDC8A2DAF0258645C383021DF33FE59B553A8270C1B7A4D0AF155999B8\nencap_coins = DED872C12331243854D57FB85475E4A45D85378AA15CC73DBAA11D6C3EA9A080\nct = 3F3317F9B1C767EE2F631A8BB4F7F01010F885AA6B8C412713EB7B0ED48D81CA96E62B5C162485E7ACD066607E3D6A37127C0A3DF961CEDCE0F7BB49EEAD12EE11919472AECBD9C3C167ACEF3EE135FAA45E40D33F47104B082180F94B85B3C0AB86AE6E10A97541DF8F362FF66801B477392F2D78B1ACC519D31BFAB11C21D36187C39C46A8BC2B2196FE95350BC5EDAC1819428C4E735E34ADCE49088D5046FA15AE709AFF31A733038EBDC1914045F16502F8587A2FDA187C9CAFC92EC7FDB0C8EE1EC9CB8A616F90FEF097DB7B1D5C35BAD93F62190540FA15991AB42D0B7C3FE266D79303880D3F2C382D1BFF5559A6F68EC9981749F3EE0D67EB9EED54DCD99D3156ADFB361AF47954B49EA38C8E715A53C68D71C17416F8FE9B14A1E9E7EF55F46436849AF9A1571E87A4609E2835DEA2B4A7CF8", + "2522C167AF200A3E187F89AD8E69840BBE19A8D9394F3E638343718D09F3BFF4E24341216F3CAD92EF6D65CF8F48DB4ACC1E13B3778559A660CAE9541463F883E0048A2B18981F2BC9EC86AD2DFCF8C2248A929FED447DF0835E748FE7D0E69E4D49CBD510D083C8D70EB68CD6FCA5FDFC6BD5688AD17191B815D2BB2A06C7713B8DA670FD6675FFAA8771D3A0E035C5DEAA955C7B8F7E39CF670490BBE72DAC17932584057786F00795C7B908799FBBF17375113B84FFC5542DB4FDFD00981455C9C93B6FF5F369DE70E17B1E80AFC245BAA313E59391727FD1AA6AAA1E64860DE445826EFA8FA57BAE252F2990178A3695BE39CE09F2B423CF5B9F53EC07E9AD18A61F68625EA0CB1150DF22FE0A1BCAF1681F8023BD2E1C27984034E928E3C1AA21BFEE82D581EB2022EAD3224417476CCEFEE2E0DD2932D76051C510CC498A814E1E7E3C6C77BA34D1A8A229CFAB7614D45E65972323EDA7244DB5955E0F728C1C1285C20FE1BF8C76215D1FC0754E5B063ACDDC9C7870D3B044810A31DD8A23F7608FDF48016414CCBA5776A023969665B2675B33EBCD5B9AB661462EEAAEC9F3E0F7F399511CF1D684EDD9C312DC777D678323B189FF98F4EBAE434AC69AF4F2BDF90F3F4974489BA9A3510B059F5CBC38332F8CFE0A98928204260B736ECCCF1B50A2A9F915B25EFB06A27F3276E33F7858160CA33999E6638F14C7D0A5A535E55FA5BF80ECD0FBB044E2C0CE30B0F4D0C06930786C304685AD00DD5D422BA123B537EE799460377778F813F21295E4978F6B64C36CB733A25D2DE3A181D557F782AD0F4603513038B270BF2F2ADFCDDFC0522C199881DA5B71DD457849F21A74CA9178150E44CD1392206A6232EB4DB3E427DE11C5CAA60C58F64C0DB07A6451FA0581B26FACDF6D8918C4355D5F4B2DEEABAB6BE897580A967C0EF27CDE70A41CA0193F44C7ECD4CDD5CD742DDC5517F42C5B75202E40A4A64FAD0FDBA9ED1408706AB8A10D05C58D03DBC32F288FEED057DDD7F9903530B2FFA32CBA6A53E65BDDB95E2C5002F395F24B753CF1141C5E1BC6AB7D059EEE85FC55951F5DDA8F477B551260B76FE93CCAADFC86324A236B2E998F8FFA73CEA000C7195E9BEE98033DDEA1BE534415305E6BE01B34A9BFBCC4CD8DAA39E0C2BC9897E803E7CB85444CDECCBDBB98C0B0E555DA81E6AC406323A3E96CABEA81CE53C23DD0A4A31E0F5B2248833C53FFE53872BA19EB244C40933B7E8FF5ACA26FCD31D3B7AA4740E25FEF6FE2B8D0A08C2353CB7CCB71B485DA3CCD237C37DAFF3DFC5EE29E696037FFBE292BB9EA2D50071F249E4CE8119FB47362AE71DEDC41FEABFA32A84843131BB18933B6B3BD30190B003CD35903372BFAB09021E03F6EF149B55EE73C25307EF50FED0FC125DC08937B825EFA486D83CFE6C9309649A2372CB68CB664A9D1B52FB526C8A59035423DDC03E15F96A67C0135EBA30BF3A086083BA600B8BB65EB6AAC44E01CE9057738608E96F23A6532ECEE6E992C4C27542DC1AB0EB442BC7418E807E6D40715E4B6872EDCB688B3ED70E0CC2C3B1AC40DF2667D5042B0AA0035B8AC267BEA40B123F3FFBF18954EF707B0EF37E0D5D0DDB7F17D6561855225C32473FD11D7F1219908BA693326FBE7FE2E910460E43B791F14FB82685C628E449AB87D96A6C921F01F5A539726E9E0E1F4994087315BBF146245396F2B8FEE67C6893FA7722F9AD6F3FE328D2BEAF22D5DDA546535A84DC9D0970D53C5B96208473\nss = D8795F2EFA4E748883E1190FA5451222313E6E5B71BD96EBDF86751B8BBCF798\n\ncount = 4\nkeypair_coins = 66B79B844E0C2ADAD694E0478661AC46FE6B6001F6A71FF8E2F034B1FD8833D3B68C0EF1663E52E24C33090EA8F4F564D85DACA610FD7C2D5756D7D882408DED\npk = 041A9057EBCD8DF95CD5EABAE5E776BA758D8EF9C8702406AFEB9D82D91C06E8A27DF57BE2D2CEC9893E9C0A678EC02E94C21181993CFD22C19A7620D9CC494394B2218A81F9CBC743047160B0A551B6C802E44D09E52EA613C5F60940D77C3AAD232F9DF0561F159FFC0C88AC9C2F1109A9D89AC87B4A756352289D241B8BD694A1E140F255163F7888AD1314E6208082C0BBDD72220FCA50D57C65C3B05D701B567550316C440C6F90BA50A46AD9662F99C61AD6601A4A26874E30CA1CB97998A13E68683A28996933BA186F469DC903B0C46A348A1C307AB9A9A4D427730920AE296D725BC045D2807CE2CB325CBD5F6CC216A0C0BCDA1E321C5B17565ED0028D68554C892A9755643A69CB721FE6296ACB64B93966A1743ED298B5E348817D62A93C453318DB713E95CC53F8BEF7D6A5DC2A7001473851324CA0DB3052448DA3136347008AD8D8B6B95A62E8A48073D2634A58525DD663DA939948D49DA9B12B1D758BB6F328D0F42A38837675E487403148729C4FFAA2CCD1E6CE8A4C8BE2E7A1BA2B7B633AACABBA686DDA63FEB255360C4796BBC99D95461B30502B42CE4E6AA92120B61A283927184931FB6C98727CF4163284732D62216B653C633659045549A40BB0C7C0A64ADEB841596516BCF97E6CA33892CA8FE6EBB45E58313FDA81D164193BD711AB5B65E7F2611B4B558F3C03294336043884E8B92390D11903035ED46289925447D3AB1A53802376CB2AE1960E4A7A13D0D05A58C89F5D0499BE72ACB9FB7DC5468AFD332F483B1DAC2370A14326B52467A205638FD603D835A628AB940A0463EB93814237415397B5A8B062B915C3F4278ED1DB16ED13B03002C158700852837657B94A4B5AC43DA32A7179A4C1A4303350652693844949029AAB4222AC62DE266240FB48BEC4BDED28213D945C3626ABA1856C5E702589738FB5574380B74071DBB401696DEB422B9DE3699A0949E20522A3782E20A6AA2C364868CA41E7202CE8EC8BBC2165A09019A898BD4615741DCB73FDAC5FC7C35503A937EEFC08CF88570ED41163BB7F2E9315F0249D2BF5CB93B74627041BFB79C2B26754C6F38F8B802F28D7A775AA7CB082CB5755A195D66371FBCCD1678478C462CA1896B201098D66B3991B2E73C299674BC645D2737111CFDFE89B416A7DA8CA182164BD708119297283DE6A1CE84CBFCE07C683783402539F88B6B071213732B7594052BDA614C95860B57BD5AD5ED10D8139348AD549BB573E3549320E521C0AA3919EB0978DBB7AABD683DAD74D00F549AF5B4F0583A42D27A21EF030C94B2E93EA67A081AF3413AA6AD1C41091364E558CD561674340430BC490A52728CC188CD1281C7AAC45223A341EB60C8EAB4959701AEF2120C891B5CE115BF8AA17CEE2A980C6895EC5061AB49DFEA7431D755015117A5F0A0F200921C4547ABBA8BF13B5CB7987B0250C2885A0507094795F7274AF995647B5B6E559275115CD55CBCDC9B988073B2EA214551752BAF467432904AE95182514E39B3B418A49C410E4832D5377B95227B3091B5F782AA431A1962D6A907D3C2371161D71A9640B177A488A1FCBE57F108900E8E08292F4CF97460893004F5F88222D059B162207AD739650537BCB8B813490CA702555F134406E9C04CD54BB85A7689A1316CDF3C401D9C49B22816F47CE750AAC7455A222490940F030F108086262479B8489FA00A12D09CFB5D4B6A4176FA0F62B1288C46AF76340D81EDDEC842A548BE29A3994C53A7E631BAEACA3A0F8AFC4412B6D51426D496D2A04BF29934F17E668421899C6690853876434E87F8F10AB52E61FF35B54227AC0FB7313D2F1C308405E5D767541C8C3BB4664C594A257BA30FBE34BD182790045BC1BB377F9D54EA8DB52A945642075B0DF8B2E6AC87E71177A4860157F83829BF7003558B7F35A1690920D494B4391396DD61A7F221991A1C6856F7B1AE5147422742AA0EA005FC1549CC034B9C11267E00FC32C2B3CD172975397A3647A41B1C69F9BB663835DB97314468540973C339AB0CB36A19B2EA807FA788402D48DAE0AC01285A8C5F3725FA674D0418BFFF98F6C64C2FE21A4C6A7CAE7B014277413781B7C3DA207BADC70AAAC10E684C42940705B8AC37EE7C0A101BB3B9BC233845EF75908A83108A2467F6D44DE229C527F6E4E7071CB826CFE76FEA483D9163EAA84F6AFAC495A\nsk = 944AB695C2345BB67894D451EA2A5C92561A5467C769352379950879899C9CAC9D05E89CB2729B2BB47724923FCA357623C69643569D66912B2F9B3249908090D4C5F68388A6141163C931DF430D70290950B07DE410AF913C0E5A215C3059785EF05B824545ABA0B95E7279D1C5726B59890B82131D5C62E8B3BE33B8016BA0C321C248A5293C71ECA570C9536F958B84663B1DD5BB6F272C3E201F014AA3AE05640ED92200274D45D9BF4410CE8EA72D680ACE1EEB04CD8B002DE72795DB60681BC9ECD387FCEA796FF7726FB29877F895E6832EB7EB179A5956499CA3BCF3283FC8489D494A88668E6614B1F49824F12A448B31A42861190CE3A9F73C6FFA25622D7A504E0694BB7C75EE71CC8E718CE9D57AC86A11721721E6181F157C333AE098F8A6823F765B60F0300F4733CF65240C779569620213B8A331731A7B31937104BECC0995EF57255261AD9B246009F855CA82AF2001B256760C1543074D70B3C578279B35137E16AC2089A4C60038B8671D308964B68A2211187154746C27F59C8105981C8C7D0AD58717978C01A66B5EE1697188BFAAC9B927822C940C5380409F38459F5B302CF7DC9D6BD823A0308B0DA45C35D541D2346BAE4173FB0C677EEC26A94C4158B28D4D7B4B0F62A4AB06BAE0B42208B099A174BB4C482C7C321AACA49C4A517114A5CF408750E8588545134F83A67769CC6E0B413BB800C04093184625A7EE24134A721D5FB1571CD82DD1D7C5F9103E0C2C4416CB775AA28DF48643084B391DD2CAF39278E9A31D2254871B170AE1B60A4E39B1F5A8473F580C7153CAA1369D8E9CA381660A57CA8D2523202816767CA8CAC0914C16F1CEC8EA4EA5DA930E0403E7A876C390BA31FA250D946A2EEAA479888011DB7942F7676A120338357BCA38C4C95088A4A0884B8B4C14E9C09E831F8AA658ED77CC164124CB281F61856BD6C965B6B6CD60B1B1034888F3970555443F0F5CC29C800F578806BEEB4730AB9AF4B9BEB89502AB48761E188CB9AA95BA06B28CF4B89C200B2145A4339A53406B6790A518F54902EBA0230A8C2A45447125B7330F12645D935E00651CB4996E395543B7E643137ABF3DF59E042ABD6FA11927062D73D0A107BA6FEA0908FF6759A972C11E864EE7393254051BDA558D4B272E6CB2C337747A7EF46F5AC872D5D5238521C09E21495EF98B59C22961E5A4967370EFC4865F06A72A41464D37CE4DD1803BC117888B681D35195C857A47B764C6799A86E27327EB0403931E29F90FEE8628AA43B333615BC0F251707024AD41A24E3C4F15B99E72F536DD989C0325225DC682E3611640D99C1552506E687E18A883F90882056C14385BC08BE82616D811A4FB2DC93670945B7EFA17593C4B7BFFB76F9A805F5230C50B065DC77B409CA8CC0B7190AA61614C528AF2D1AC130C19E4362E85A40693A87C00935A887B9B58699777453D8278C445BBC8D225412BDA6FDF026207E3B207613D2ED74C085707EDD555FE4C00B40B2A83AA219CD643F1D83EC0FC21BCF94FBA6A8262D959C9FB345F2221082C40A1501C46C55082DB2709230B04090558CB6D6815173525725D8CC0BC93C881C99A16041757D6A05AC71A15E887C", + "1682D3300673D851FA1AA423C5B76A7330EE7041E7AE96C36CB6A2EC473D83096C122B9AF6A16FAA56505D156DF9735DD3A82681637A1747EB48A0AECC8AEBDB7A15000367A7B023BB414CB67587BB29D19182948C72B60B2CDD7E222A12713F6A6C3E13C782B23C494922F4AE07B346C1D52F94682C11A0D52B584F7C8D8C740D9E0353480BFEDB3168774CB1CE31331E8CADA805045A37C93CBBD28EC100E089003458CB2F09CC39640774C7767183A4AE4C974E305258A8D128AC84650BB044C60311BB2515703F9EA8AD3560C6F382C7D173F83D30DDC1B637DE633FF357A28CA32ECD834E4698DA363CE2380CEEE401EEE9B31DF6967C7C15E94E765262134AAE5719838CE9579C8406234A9963756FC83DAE5427788BF98358DA8B356A2944B7D8917CC0884A2C58481C8299F194F45E33C0B30CEA23142287AB15C1A429E588FB3BA32B6897D771072266096C49576FF5CC537577B76BA6C6D993E01C30DFE519BAE481ACA72990A39711A60AFD67C1B50D417883A44E1DC24B93421041A9057EBCD8DF95CD5EABAE5E776BA758D8EF9C8702406AFEB9D82D91C06E8A27DF57BE2D2CEC9893E9C0A678EC02E94C21181993CFD22C19A7620D9CC494394B2218A81F9CBC743047160B0A551B6C802E44D09E52EA613C5F60940D77C3AAD232F9DF0561F159FFC0C88AC9C2F1109A9D89AC87B4A756352289D241B8BD694A1E140F255163F7888AD1314E6208082C0BBDD72220FCA50D57C65C3B05D701B567550316C440C6F90BA50A46AD9662F99C61AD6601A4A26874E30CA1CB97998A13E68683A28996933BA186F469DC903B0C46A348A1C307AB9A9A4D427730920AE296D725BC045D2807CE2CB325CBD5F6CC216A0C0BCDA1E321C5B17565ED0028D68554C892A9755643A69CB721FE6296ACB64B93966A1743ED298B5E348817D62A93C453318DB713E95CC53F8BEF7D6A5DC2A7001473851324CA0DB3052448DA3136347008AD8D8B6B95A62E8A48073D2634A58525DD663DA939948D49DA9B12B1D758BB6F328D0F42A38837675E487403148729C4FFAA2CCD1E6CE8A4C8BE2E7A1BA2B7B633AACABBA686DDA63FEB255360C4796BBC99D95461B30502B42CE4E6AA92120B61A283927184931FB6C98727CF4163284732D62216B653C633659045549A40BB0C7C0A64ADEB841596516BCF97E6CA33892CA8FE6EBB45E58313FDA81D164193BD711AB5B65E7F2611B4B558F3C03294336043884E8B92390D11903035ED46289925447D3AB1A53802376CB2AE1960E4A7A13D0D05A58C89F5D0499BE72ACB9FB7DC5468AFD332F483B1DAC2370A14326B52467A205638FD603D835A628AB940A0463EB93814237415397B5A8B062B915C3F4278ED1DB16ED13B03002C158700852837657B94A4B5AC43DA32A7179A4C1A4303350652693844949029AAB4222AC62DE266240FB48BEC4BDED28213D945C3626ABA1856C5E702589738FB5574380B74071DBB401696DEB422B9DE3699A0949E20522A3782E20A6AA2C364868CA41E7202CE8EC8BBC2165A09019A898BD4615741DCB73FDAC5FC7C35503A937EEFC08CF88570ED41163BB7F2E9315F0249D2BF5CB93B74627041BFB79C2B26754C6F38F8B802F28D7A775AA7CB082CB5755A195D66371FBCCD1678478C462CA1896B201098D66B3991B2E73C299674BC645D2737111CFDFE89B416A7DA8CA182164BD708119297283DE6A1CE84CBFCE07C683783402539F88B6B071213732B7594052BDA614C95860B57BD5AD5ED10D8139348AD549BB573E3549320E521C0AA3919EB0978DBB7AABD683DAD74D00F549AF5B4F0583A42D27A21EF030C94B2E93EA67A081AF3413AA6AD1C41091364E558CD561674340430BC490A52728CC188CD1281C7AAC45223A341EB60C8EAB4959701AEF2120C891B5CE115BF8AA17CEE2A980C6895EC5061AB49DFEA7431D755015117A5F0A0F200921C4547ABBA8BF13B5CB7987B0250C2885A0507094795F7274AF995647B5B6E559275115CD55CBCDC9B988073B2EA214551752BAF467432904AE95182514E39B3B418A49C410E4832D5377B95227B3091B5F782AA431A1962D6A907D3C2371161D71A9640B177A488A1FCBE57F108900E8E08292F4CF97460893004F5F88222D059B162207AD739650537BCB8B813490CA702555F134406E9C04CD54BB85A7689A1316CDF3C401D9C49B22816F47CE750AAC7455A222490940F030F108086262479B8489FA00A12D09CFB5D4B6A4176FA0F62B1288C46AF76340D81EDDEC842A548BE29A3994C53A7E631BAEACA3A0F8AFC4412B6D51426D496D2A04BF29934F17E668421899C6690853876434E87F8F10AB52E61FF35B54227AC0FB7313D2F1C308405E5D767541C8C3BB4664C594A257BA30FBE34BD182790045BC1BB377F9D54EA8DB52A945642075B0DF8B2E6AC87E71177A4860157F83829BF7003558B7F35A1690920D494B4391396DD61A7F221991A1C6856F7B1AE5147422742AA0EA005FC1549CC034B9C11267E00FC32C2B3CD172975397A3647A41B1C69F9BB663835DB97314468540973C339AB0CB36A19B2EA807FA788402D48DAE0AC01285A8C5F3725FA674D0418BFFF98F6C64C2FE21A4C6A7CAE7B014277413781B7C3DA207BADC70AAAC10E684C42940705B8AC37EE7C0A101BB3B9BC233845EF75908A83108A2467F6D44DE229C527F6E4E7071CB826CFE76FEA483D9163EAA84F6AFAC495AD35E259A200D16048302DF38D8E7F9E1C3352502C43F086FE166325048FDCE9CB68C0EF1663E52E24C33090EA8F4F564D85DACA610FD7C2D5756D7D882408DED\nencap_coins = BE4B5E900BF3274D5C6556CE983F3C13EB314E8B3AC969BE600A8C769A6E7C76\nct = 8FFE5DF45C6559C8C1910ECEC6036B7AB15396B042383630578FC8B1612640FDDEB9ED4CBE90CC8C812F8DB76FFF093966EDDF4F93FB73C2533B279A756B4E169B941ACBF5DDA49D82C56964594E36ED285257A53C0004CFBE46C20F0F4631457C445B86CB4BA3924F8E661C9CEB46AF04F37DDEB13C7F0B6BAF8B1702452DD8A70D0CCD3A1366E8B330BD7E7E65A3BAEFF0F86047CFC8A08009390E6850076EBA2B0B9E390D9CEEE041CF1EFDD3675E743C7CD2FA1AFFDB08DD0E369E4F4EA20CAAEA6B0D8C7F949BF9BE3D1921EB75FDE8746C0412998111AD5AE36B76DC1A15C1DD6F6F116B333D4F753C3F7F7B5098102BA54B5044767432287EFD8B107DE3789DDA486507A839FE44618319591D940DCC71E0F2BEA42375FF3CBF978CF7E260CD6A9B32E07428C791D3A0D23A59520B025D0F810DDC327ECE6FD1A528AFFE4DFEB5305CF5A8EC1D4995BE2C2E3F3CA30ECB6B71996596E7CD345B67237E5803B4F522DE1859F9AE31248A3C67191473C247582B1627E5401D40C2F90FB7B879D55F90B708D6793A69B23BFC8EE121BF27AEE41499D014CDE8D66B3945679E55764915550AF7BE4FCB5C764B43D9E22C9A96BE1700C665B6009B825E1244DC0E0F181641CAC4C90A999ADD52DBAB5614DE2C7FA10B54C9CEF3F480AD5742B9704053400351457E9636F058DC48697C5A414EC15985514A38CCC45AA685F481F87E551D4AB9AAA0BE7C273816F42B298D2E235DA34325E9D3A46D9578F27B61BA14CFDC733C2309628B4749E7DB8ED7DB7E36B44CA08BD07682C0E8152DC0EABF20EB41B1CF5C3ABABAB6FBFAE13CD1B4E9673C5EE0161237A4AF4197A2778AF71EBA34343B1CF6EECD50678049B7CDFAD2CDE37646213A745713AAA9E081AB38BB8F5401342393CDF1DACFC8E051B06FFA147A1C9F0D8A2F9119F7444D8EE4B32BDC3EAFE5729D931D4F67897A75A6999203F5DCAC93F4C4D08A224EF4888E27CF1974F5443B423D02F126642FD05C26C271CFE93BEF8BF587868E84725AF35EEAA9657FFB06F2B92F03232F671A287341C2992F424D6D3D3B9C4E119597301EA508E3A533690DFB5B38320A84DE9954415BFA752996FBE7458AAC748A9B66F2FE27BC82C39759CAE38992F408F701F0161BFB12D009641146ADADFE81B81DCF9001C7BC94B74953D96D6756BEED986E0DF7DC46025DA92670FD17052AA3C8783AFE4CC9865A4891727EB4DEB9895131235F96134CB3CF30EA3ED89AE8CEA10E812B1ABC2CB14B87443F3D6778ED7C5D4716C61C071F73E890B5590E6A1FAB1FBA1D26A9A19CCDEA2514554409503CB04FB4F6C62FC1624E781D889F116B6B86AC257C69CADC8A5F75E3E2FB5626CFF9664B6DD18BBCD1CF5B8D474F00FB1AD1DB64EA167FCD75DD57064FC8D0AD519E1B02E02C230D166BB64D5172B6962D12BC429F708AF4AFEECD6D94AD3E11E4DD0131730B2FAFFCAFD811D366DD1E782356B4D47D12640737B26DD7545C66411192F2575B3019FE92A805A9D1DB3BAEB90D774974700246A865604CF8EEA89D3BECB23DBF558C65473817D34F5F9D25D2DAA4FB9BFC70160B6B2D0AD7650DF490EE636DD217866C7F4E8D1E7F5B38EAB6CC45EE987CA8D28ED67ADAB94B3D355F6EA29353AB90F5000A3876FD2A6976875540CF9EE314FF428ECBDA97CEBDFADA9E134CBE104D7509A5F936AB01BA4E9E56738442DD2A23CDC7025333A518DD29C3130926B3064CD7174325E5B149A2050557ACBCD14F0A8C0DBB5498ED0C9F464C728F90956CAF2F1C7B5E4F029C9F7101D31D3A747E9C77D2BFCF0D69F248F5DFE3825790F49260E22BE517FC5A4A1045DEACC23CB16BF765665351BA00BB6E957493084AD8E2E167A7F8188B0C928B39EF07CAA389B070600931C73C7FEDE1CC04E48974BB328ED71C35A9270D379C287A68C7E7974389E258563F7DBDD34B6507280F45F2F729F2DC12431029330E16B41D1D00D003E57A27EA6C151C976CED64DBB041231FCCC66EF2987E8AB3D9091CB4F06D45931E015C3FEF69C4A160E3000181B4A30C0E25EFC6ED1DE43CEEB363D00A9A97E83A2491C4A9FD5FCDE5BA3AA171E26F6D4513B25D2D8A040C6DE15C781DD8D2EFC5A736FE7811A451B30CFD203496290233178602CE8C937E66A835C6734596201D610C693AE9EEAE20F097087BA5F4FF7EA9DA75EB5233\nss = 853896EA55C075414EE1FDD7A58EE44ADA1FB1096779A1AA69F5BBACA078A5E8\n\ncount = 5\nkeypair_coins = 7EC408F52C9AA723D0C41D9987682A5F4CE6C9DA7CD0215AF60BBAF5484AB3530DA1D147E7686E428AA1775BC2EB045D1ECBB17563AC966F708CF3882C47B5AD\npk = 7BD4AE7AC89CCF0180B971854B229829C15ED8119F77EA8C7A80A4B7290B92A4BD7ED21E3B317E15D2AE5593AE3B3413D4552B767B5C264A2E31C28164E18C424A00B013389663CA580BA5B94A5E3C3A9234F15DE0F4AAB90A240B55B6CF6C4BF5D29BA93480014023F25C66813996F674CAD2F72C34882BC441A851413560F54DF40146FE9C634CE98A8A659B38D71CBDF934D29BB4C469C660190FCCB1820CC365490A8A79228B79D95C3850C536F7CED9EBAA92C159E5F9A28C9562BEB95D9FA000371A2670E5B066D16E5AF730C59A03B8D2364EB048DF031618D09E8C07781957B3D06C6AD4534149FA65F8C513733B8B095B6BADEC8D0EC0CFF1618F5B754E71F50F3F7C9A209ACBFF1505A7A40621B0AA817A9F7C6A1CAA1441AF16606376C845C473B89BC8CBF95460192632098BFBEC366B1914D9216B16A19C8CB45204379A782C203614B37FE411DCA18C20CC033CD6510B649C09431AFE167826576E", + "19D425026B02F628C92E389D884A8E5975C3A3A252E0443239305E30BC6E73D33FD3B0CC63A8484721157A491535EC1918A99584808E75C26DE2535227A7120BF97B64F320743338C642BDC9D02B45A29903F22EF3E789E29C4119ACB125347749F373C3F4156A2BA0BDAA51FDAB2185BAB69801055C1743E7F7541198CD6935598CD00AB2A051667AB0FC67B9751AA6CB76B38B51754D66296D8ABEA1E6268D410C68412424C780BF8198A9BBB1227771114BAAD6A63977163FD432131F96168131CBCB536B8D223D521583E9B31E025ABDEC005A6EC66396D94B17436609E6205F1610A805CB39240BF3D19F81B20CFB94CEF7C10BC7B3110B2231C61C333A3577730AD02009951689A2C867558D244A70D437F1AA3453743B61A63165C07A81E15D8A5313552728BC5C2B7ECBC3E35975A9BC5C341A7D6967757BB7C67EB279F7B34C33F95DFA49185F908686A55CBA343AF19635D07B3A23D6442D15CFE58C04AB586930029D072704B546A4AF3AA9CDFA148018954A857B3C8992D1C567E3B20EC300AC438B53EC808AD0753CB8026703C1892F53357F58A9E936BCFC344E82686C95EC375B8C43BAEA58E28C71387C09AE312E00368ED4198FD23884F1BBA5651CCB94488166943B2972AC73615A21E32EA83B9B23596AEFEC1785329238E210FA1528243AB9FCFB974A6316E26217D278596D188C43684D8C349D91CB43D301C961E4B51B51B202C58DDAA10425412F13228D16FC0C75E2B8EBA686FE5172768378F16785247B9C6E1CCD9929A8D17A829566B640F0744BF565EA512402707E78AAA6809B75C5154DCF70BDEA1CC05902BED4BACC3A6C3518D2A605CB96E3CBC5209239F4994DF6B503D5F16E04562ED689A2130334FFE99B093A5CBE2282321551E943BA7C988561D332663AC4E8B367427133CD216240F659D1542E54E4AC32C42DA7C39C0B5C105DDB872A9B617BF386D7259661C2823522198802BE252747381053CEAC84C5F827339C90812615EEDA92DD38C2E1DB2268A3929087480F393643D17CDEC6CD059C2B810B464646A26427CEE030B311F591B7D96858CA9FA0B53076E975E88582950350C2FB82C8BB33A9198AAA5948B42099DE3C6D252467C0525131128B18508AAC196A8B45C013519D52950A16D48007B339F8A9336349C50DDB656B55874BFC7BFFEA795F5A16A98857D7F57945F05925B45A55209895B7CCD7A9831D93CCFFE55A8EE0C63CC57A10A0C8F905542856594BB41359FA9F5C312AE6E86DD116A292C66F47B9A0791A72DFF47C55C69AAA8A6465C7B3C9222C020280F77B9B731514D2BA49B1B0B0E6533684FC5EF2665C25840426563EC3A2AA0A01812186021D40C4F3519DA9799FEAC06AFBF04CD390C0A52A0B687A5EF0877F053C319FA51CE7E53AAD0313BA3B6A7BA5892A50CEAD19356D8068D1A93681833ED4B8C975E99D969AAFE1A6A5C2326C4E290D65EAAE1323125238303719C545202178BA17EEAA1504F13CD96838B7560C1A35B1257A1672C599B1B993A55CA982A1AE29B6664998469F171865562EE027C4644234F7E3B14621C811CAAB7498B204A55C8B302033219D6B2B9BF7939E9FE4523AA9CC9A41A1CE11C18FD6BB9BCAA8970534A7106199B76975EA8AF98233F031A371C79A47C12DC8EE619E1A0C8915822D574A243F67E14104D4F021CF95BF33271C9BC9\nsk = AC65AF9FC8B905D09638374E58C551DA08AC4EF86A8FF04489BA462841A85D907ED0C70E1A790297AB2DF7D6CDFC5C6AF513144DA105DDA2C75F00736DD91564A79668E335FBDCA1C9D31592E73D60066B959A2FCBF55474F9C21BF058F021457586766FDA4FAD521F64940D4932B07AD8CA7E1A06662730EA6C15AA1C2F9662552313176AF04FA4A98962101492566ADB8BBC3EC04F9CAB9EBFE5860F886D57A2C73FA050A3607A8C0998754B417C9C5AE2FC3F829CC3A2EBB1E927AE87B68C6DB355F4C661CD000D10D6BC31CA1C249A9B3931A4D1C57904DC6DF923839D9A90AA2B93A87C44B5F82E6A925D22E679428064FFCB9621067B75477FB7D51A1D3B9D9DE4051CF874CCEC12976562752CBFCFC59F56C2C60B8B4610A9BB36E9019B974502407D57289726AB8A38D7A6C880074A5686619ABFFFA5757DC79E1449408851502BEB8196F493F4A724B9D681645A07B193586C5C05D8D10E2C968BD251B88691C368DC18CF8270DAD3C22BF5093DB4CF05668F8C6315C0EA3F55495E784CCD6055AC451363FD77A91686AD77C5AF53141EB5E7534FAC4DE481741E48B414302E4743789E250C39C45C0A15CF42E7B3631B6A8C0971C8A34B8200BBFE11004AB06BFC5949C3615B02947C73E7A0717C6B60F2679DAA21AFE4C55768A08E70105868AA6AB4AAA848C79BF125883907B9DAABE367AFCE273E2C168AAB02ACD27855E2944B67B938170A9258F67397770136E466758C260CCB7DA226B5A95692514727FD48953C62959C88C8784A8A52131C4BA5A6D757B4311048B602B554E8AD509B0C12B0A64553CD4270CA92F36CEC227E16A217C769A2BC1AA6C356A5A39C69F4963BA6273DB9232F1D8A28CE65B5B9058F1B8A164AB0380C42A8EDDB6C2B8B19F26B557C387E4DB9AEB92C4D7D0A2CA1E35F97E05CF590BC511AC5EFB2357E70525BD027B36C6781C4B86B0069E7B89C8CA643FB9990ECAB2CC5A8A5A5B2B0441076CE934D96BCA9FFC10EB6E7BB093675E97B68894BB030581D89123642C1118364115A76AD1C181EED4B691BBC15DF182DCDE00C71F8685B71883A184396D3475CBBCB674360DC14C42DD6461514479C85557194A97A654C4BE7620FA84C59DB5057A0886D760460CC4A3A713F4FD4BDEBAA93B943C48E6348053703ED818FDD9CBD62E246C0B69A265AA381822D6A474C5AA530AA5306A0C8572C413718A278194367405789E1F749AB4A02AF87B362067F3DA12EC01A83ACEC26A390CB5419B351BC95E08C7338FB933B81476EA950881275A186C9E9F99DAB63634E6B7314188BFD686D74EC203B71542B62B1C0C7712745940F7B9237551467470E5B1BA2F8E34CF585ADBAF980317C9DB1147382946C12223C3A45973B879A523855BEF121151BCE620216DEDC6C3457CA03951FF45B662F79A1A7A5CEFE9A846DD5774C7C2A22F842E4E465A94314E036BB55A2787A1A0F0F111143872DAE74AF706A369CA54259B80578BACD497700871842B98CAE2AC3B572F98F145CBAAF54569779B616242060B30B2A482DAF335C9A502CD318296958C696F7080C7A3926C7B62F36A5DBFB87EA0518358155E8E94390B6C0F808B91C166577037DF60A21DBACB5CC0758ECFB20D4C38CA54C4248E07168B19F7D925A8CE8648F812A8C5B6FF69B8994E95859D2C5CB67259787739CFABAB0C1B093E690C50632F7C336FB139700D43A04892DB5220C28912A59EBAD66BBBF0FE860E2E30D8EBA9CF21C6C1156CDE0B255A1A4507E3C880B749FE959470B684E03268B43A960F3D76EF1D4C4E7266F80792EB74959A12A6F1C91CDE02B8D5C14A500CCC7224C8CE3A70B99557C87B9BF09B449341118B3F998509B1AB0492E0FB84340F81F8F51C08917319D9350055BB889BA2D6EC7B5E281A9EE84BA90CA4D33014F9CEC2993915C7BC094E9B926EA086D84434C2748BBA95569779947CC744DEA189B2080AFC548710B94A225799293090CB3A6C932336003990FF766493F4B17CB834CDC70A0B209B7A1FC42BA087D7C10C02C383B60B63CE4E44BEE916920156DE9AB95AABB44F28BBB3F0612338B0A5077C898E3BA0F197F7F31C467B8803ABBB0A82A7897E7A39C0012049788D27B70C8503C719AC3DF958A7A61AFFEE0A2C79A1703D6527BD4AE7AC89CCF0180B971854B229829C15ED8119F77EA8C7A80A4B7290B92A4BD7ED21E3B317E15D2AE5593AE3B3413D4552B767B5C264A2E31C28164E18C424A00B013389663CA580BA5B94A5E3C3A9234F15DE0F4AAB90A240B55B6CF6C4BF5D29BA93480014023F25C66813996F674CAD2F72C34882BC441A851413560F54DF40146FE9C634CE98A8A659B38D71CBDF934D29BB4C469C660190FCCB1820CC365490A8A79228B79D95C3850C536F7CED9EBAA92C159E5F9A28C9562BEB95D9FA000371A2670E5B066D16E5AF730C59A03B8D2364EB048DF031618D09E8C07781957B3D06C6AD4534149FA65F8C513733B8B095B6BADEC8D0EC0CFF1618F5B754E71F50F3F7C9A209ACBFF1505A7A40621B0AA817A9F7C6A1CAA1441AF16606376C845C473B89BC8CBF95460192632098BFBEC366B1914D9216B16A19C8CB45204379A782C203614B37FE411DCA18C20CC033CD6510B649C09431AFE167826576E19D425026B02F628C92E389D884A8E5975C3A3A252E0443239305E30BC6E73D33FD3B0CC63A8484721157A491535EC1918A99584808E75C26DE2535227A7120BF97B64F320743338C642BDC9D02B45A29903F22EF3E789E29C4119ACB125347749F373C3F4156A2BA0BDAA51FDAB2185BAB69801055C1743E7F7541198CD6935598CD00AB2A051667AB0FC67B9751AA6CB76B38B51754D66296D8ABEA1E6268D410C68412424C780BF8198A9BBB1227771114BAAD6A63977163FD432131F96168131CBCB536B8D223D521583E9B31E025ABDEC005A6EC66396D94B17436609E6205F1610A805CB39240BF3D19F81B20CFB94CEF7C10BC7B3110B2231C61C333A3577730AD02009951689A2C867558D244A70D437F1AA3453743B61A63165C07A81E15D8A5313552728BC5C2B7ECBC3E35975A9BC5C341A7D6967757BB7C67EB279F7B34C33F95DFA49185F908686A55CBA343AF19635D07B3A23D6442D15CFE58C04AB586930029D072704B546A4AF3AA9CDFA148018954A857B3C8992D1C567E3B20EC300AC438B53EC808AD0753CB8026703C1892F53357F58A9E936BCFC344E82686C95EC375B8C43BAEA58E28C71387C09AE312E00368ED4198FD23884F1BBA5651CCB94488166943B2972AC73615A21E32EA83B9B23596AEFEC1785329238E210FA1528243AB9FCFB974A6316E26217D278596D188C43684D8C349D91CB43D301C961E4B51B51B202C58DDAA10425412F13228D16FC0C75E2B8EBA686FE5172768378F16785247B9C6E1CCD9929A8D17A829566B640F0744BF565EA512402707E78AAA6809B75C5154DCF70BDEA1CC05902BED4BACC3A6C3518D2A605CB96E3CBC5209239F4994DF6B503D5F16E04562ED689A2130334FFE99B093A5CBE2282321551E943BA7C988561D332663AC4E8B367427133CD216240F659D1542E54E4AC32C42DA7C39C0B5C105DDB872A9B617BF386D7259661C2823522198802BE252747381053CEAC84C5F827339C90812615EEDA92DD38C2E1DB2268A3929087480F393643D17CDEC6CD059C2B810B464646A26427CEE030B311F591B7D96858CA9FA0B53076E975E88582950350C2FB82C8BB33A9198AAA5948B42099DE3C6D252467C0525131128B18508AAC196A8B45C013519D52950A16D48007B339F8A9336349C50DDB656B55874BFC7BFFEA795F5A16A98857D7F57945F05925B45A55209895B7CCD7A9831D93CCFFE55A8EE0C63CC57A10A0C8F905542856594BB41359FA9F5C312AE6E86DD116A292C66F47B9A0791A72DFF47C55C69AAA8A6465C7B3C9222C020280F77B9B731514D2BA49B1B0B0E6533684FC5EF2665C25840426563EC3A2AA0A01812186021D40C4F3519DA9799FEAC06AFBF04CD390", + "C0A52A0B687A5EF0877F053C319FA51CE7E53AAD0313BA3B6A7BA5892A50CEAD19356D8068D1A93681833ED4B8C975E99D969AAFE1A6A5C2326C4E290D65EAAE1323125238303719C545202178BA17EEAA1504F13CD96838B7560C1A35B1257A1672C599B1B993A55CA982A1AE29B6664998469F171865562EE027C4644234F7E3B14621C811CAAB7498B204A55C8B302033219D6B2B9BF7939E9FE4523AA9CC9A41A1CE11C18FD6BB9BCAA8970534A7106199B76975EA8AF98233F031A371C79A47C12DC8EE619E1A0C8915822D574A243F67E14104D4F021CF95BF33271C9BC95A5DB7D619BE642BD87294527B3F859372B279A1E6074824D9632B5D7F616E420DA1D147E7686E428AA1775BC2EB045D1ECBB17563AC966F708CF3882C47B5AD\nencap_coins = B0C99F495AD0CFA090C5453402FB93B6BF35D02077C5F6388810CEE3EDF51A99\nct = A057ED8F9AD6221398E4182262B501AB346914BE72F17A7B107134978BB249C2E5D7019DF463F7FC831CFD161FE395CA22031E6654DC5FD4C652F896731C37BFBB92D30AE7A949B0DD768F4C053F1F2FAEFCC8BC1D38E6032667A516A942DE603ED1B6769463004FDC89A86BDCC27292AB865E78FEBE9007859AA66F4B4518243A16591DD103502F729A19CEE63D8F97F25447D3E273C149A702A522B828869785B6890F1FB7F6513475045112C807CF103ECECD962D1D343B962E20780585B1382BF707D6799F76F969863941C09F09E5C731F1633111644B99EFCF1F1DF445F4D3CF136F2DBC0CFA2F8A55AF5508FC0CB1AAF2F16445D2FF211E5C428BAF88DB0A645B7ED0DD0FBED74E503D9470FC8EC6ED8418E0C4CBC98AE49C33AE2DFCD7E63CBBA4C3B7F89F42315C74BF9419190C4B52536B8F7D86354E62EBFFA0BD4B3F8319DEC5D0E299315FA7F11DBC5B95AC831D715C2760A85E347515C9E9DD8E9451A201D861B949C411215A91ABDF14061F7BFAD95AF5F2614FD5260D13DB93718889DCED11D293BC74CADD60112EAF9EDC43ACC156F1D88BA7C478884837028C6B1D71D51454C27A434071D9CF2560415858FC1492E13551233F38C0FEA79816C36A03AC4376F83A5D366ECBD5798D0C86A714AE2BED4A8B508125FD38E66F7C860DF428D8938153132306CA781E120D78EFC41BF049D130E570606A4B5F1814296BEBF140F8BD67C3FD39B3231BAE503685F1A87C77AAC20CA5230220ADCB373406C5CF73FD94F6085D79605E00EB79D9A1FECA3294A590A9930DA9D658929F48201D6277CE24E128BD5954EF874504F123EAD6C9EF985353C397F501B3F5616999397630B0999C9F2CE6E05BA990ABACC9DAE0A9B11607C1384889E0B94822A80056D6AEF6D76F43957D597F4F4090A84E44D7548BE6796BCEF0984D8EC92A3190116F1885645D46854ADCB7CDB76E4D4CDBBDA4FF93AA736A0FFB391FF91F71D07AB2B3D52D79CD863F97E2E8D54B9CA1683E4B83D7EF97D6C060983A56DB5CB6A263F950D1CF4A6FD4E55D3BCFEEE8DDB2811140A649EEE0B5E90C1C3D784B9F685F712694BA915EE6CC9F9947E178904912D9D45B54E3F096DA434E87E07071C4A634D14F719A849EB8FA44829A44130E7C7FED57C9B87F75D7349B6EFB41FDB71A85866F1E5171AC7CB866D0222DF846B4B3D3AC283E7E49E652EFD6A78B480CCB8EEF16F71E907498797F368DEEC5B689564C46C73A0A513632293EF39C94E3A92490B9EA03E14880BB99FE77AACEA9D9DD280FC5448A4733F98D8C0AC1802E4A18A2798EE8A3DB1F552D8BD727307EC827A13E42FB676972096193F86A8255CA329388E2BA778D595F787B037C13E623ADC1F3B1D919C02F924B45D6B5B1301A93100D9A5158B51306F6B65256F41C42027AF92740FBF4479DAFC20F19424CC78351E243D5009C0D90D6CB25A1CAB1F01BE943A592D1BDA501BBDB623AF9ED8C543D26847EF1240774D8BEB7C416565C532F1C160D8D1C5376464A3F998DC835C2AB92602CA46BBD8A80858C1A7DA87451F70B65180A5E553A935F26F2525F2088B7554397AC66374FDF293655D178C3D691E14804CA12CFD9B128FCF645C2945D1EE9EEDDDCCEB9C39DBA6AF30B83FC9B7979D25C99E93BDCA105078A2C154C2F56CEF09E803ADC8EC5E5C482613577ABF3F51221DD49325414505B3099591A71600141746D67C3D6E11F12416D2088ADC93E47C6E79EF7DAC8862E54B996EAA935F3525DE389177C2E0F311DC6C719A3171603F82DBAEBE0E9A92C8E145D2796C7AA654E2C82B5B08BB6B572E07FE7D8B7CA8C6E98421C5E54F28E7AD2F7A3A8321D7D8C30193B12C8DBA0710C35B38C0AAEDEA6D6CFCF7063EF09D00F1A2B2EC87E89E4501F7F8BBC86069EB7F03517AD8D0D4A95BCF618CFF3EEE1175A08F7BAD0A2CEC32F6F0B712424990CEE608A265AAF53CA4A93C7DB8AD067934AD42810C5B759287B200A9622933CCD6113F7157A210C84D381ABC679A7367998A853BE67CC4CFCDDF8D3F7CD6DF45FD07CB324B85DE7A98B8E9DE65180F944F3BF4DE604FB52ACA8792A3F07C3A1DBD20A9A1A92A7613E3C1FBE6CF53799EB88CD9629702EB817E26FBAA0B89BE28D32BE08C30EB22B1E2CF3751B159BCB998D21299D07893C76A2D8DA0FB46DA12CDC499E50C2125C2C968F82FD\nss = 361FBFC0E2318094CEB045B5270F0E8D1E5B05E68BF73F38D924D5E60CB5F383\n\ncount = 6\nkeypair_coins = C121915BFEF6ABDFC177DAE2F5A24218F9ABDA2559AFC6741B08E0E61AB433EB729B5A50627688A4CB3E37CC0FEF22162DDBD848E5AA641731F8E60B4B79C93F\npk = 202275F93924FFE79141EA0ABF85A4C970C45E0ACFB20C426CF545CAEB594907A23BE6CDCD38486EF2CC1234054FA47C50C629657C91E71103C029539E632089461EFFB67A0F8CBE74B91793AB033BD89A2A0A68EF390AC90669AEC42530C785EC3A0DAB424C8184BB051780B4E80838539C81A5097D42CB854CBF324A26F3CC65024A6404CC2A335378FD10ADC8E10CB99C323DDC55E70B32A06CBFAB829E53AA059163C46339B7FA1090244A358DC647D4B1783B59383A0988ACE605AD979F655038AA422981ABABAA0C2F28899A352572F4F6515D62649CF88591AB7DA91CA2C0E44AEFD16ED3F174CBD0BEDB7736363C609EBA4655B2A31BA20F05E412282B28E15125EB212596E0C54181028CEC9B106849AC366F62E8C1C5EC9502F01ECFC1749FA3BD7B251B2A09C731C468DC2988F69649FA9B46E9D244DF903AC9004F09CB1DBCC9C69B33AB9E928FD2072CFED1186F9799EE3C2CCC2B68A3D662C7FB4438240D6E0B70CE98478E6C28294047400B9088EB4AAE3A5A076979AF8AB4234164B0846A9904ADE949742D7402C8516CCBFB1D30581A288C9D1C69360A2B06B21541382AC9B4101B96D4952E89725258CF7FD33AC4F522D12B6F65B884F33A0A4D1B0E41D660D0861BECA59164F8760D3274D6643EF7D13043D63A4CEC67961C808CD64B9728872F74412B8867A2E25CC58174653B2A1A0AC0A24316F4C14281A0A739BAB2DE26BA73C4921C50B909D188E8B3C4DB1274491C792028515930AD45E667C9E6870D204554556BFFF44D09F95FE9DCB7370320BC6740F3053EC5B7396DB400AC671B01F33DBAE59838741B59E4C7F076A92CE92C5213ADADC47C8F50BCD4756DE7642799D5477967339E01455E6898D2194A7AA724338946B7DB70608C0337E305AC876F3D87C6AD857162E491E469BF62C26285F9B817858B149358CB67248A298CB21771F1504F4997965EA38036D274AD72849164262FB58F46CC96FFD75F23B4A0C990A9D59160E4365B07909F7874A22EF1362035312F43B6272BC47EEC6CE9C0B4418B60C5022502485BD92730EE75A9BB4A8C81A03AD4B292F14746FE686C5588B842646B59A38F6FBCAE85F3491C38ABF066CEE2F4A285E961395BBE274C268A11AFD003BEABB50D12B8550EB3008DDBCA593C7BBDF6768FB561AC452D32C77D74352310E4322EE53B9BA879D511368B445DF20AA17A7AC8F205A302F75F3C679557F2A37DE221CDE6C8F7248E73EC25DE603AFBC5BAF1B076DC3B304550C198B6B49159C12490BD964B661E6AC0EEB2B09A78941675A2132527D0016D89EA6B3CEC5D19F1818E4501134947A547957A195807774A8C40A9C50833790ABA5628C2EEC2148DD0430294B331235D4246770C293046A237F03487993043573A71F250090AEB01DCECAE4B878633C59B5403ABB02151D8048DAD408473D63CDD018D3D295A46AB556C8ACA53495683976B2186C6C818B852005D20964CDBCB6061A50910B9C429BA9F10A06F4E053C9E1C4CBEAAC35949C8F23C3E890234CA990B2BC890D43C2A4051AA058A402B7CAF4A3925F52C95C6B6C7D26B4E3D43B21D7B0FFF3B37E5D33E391B5E617785F52128C581969E094D82D062A8631A76B093703626D8708C5F310ABC1951EE8984BF858A7B582038A6A624F5921257764890B73CC9AF94E5AA82D831F341486AAC17CF29AC351483F7F26C80111F6715634AB69CA71A6893B13BBF50CF58C16B29D6B7C9B58FB3C0B9295A6320210F1DB8193BB8A57889A28CE3B196F32CEF048A4D60466E3857C07847E3883C1B7BAB89224C94FABB3FDB921EE3C7FB716AE8C520D547B1AC49CBAD256EF43015FBD722B8B31D6DB24937338E6614402D9272ED014710FC5B0A7105E6659DE2513101B22C81DBA972FABBF23756B5D524D41A15B6D682A1894E8439B6946C64D10732AC603992353F03E61C1A136011B52C624B0943A3464EE92B8A7B970AB5BA9713205E4A22B6A12E063C35E8C65470B32F9E29255D9847DE80CAE1091FA536213078BBA0181FA33BAD7F3003D2065B8D997A7207B595994E816A1979AC5174137EAD82BD88295F2CBC77E01C0FC9119FFCF25D8F2044A16ACA9CA052BF917746109320DC076E1895399741EE690702B477A2D07242E03DAB4664CFB4A4AA443F32D16B72616A0DB4D3849FC41A7A6BA87F4AF757A0AB1956518F\nsk = 67A93BB27ACD00C9B95AA03552809C38A08480DBAA67A9584A460345E20E5F381C9A82710EF1709CA51393F916345719BD3144B3121A8608C0A48017963387F7A31C5FEBC6B6749E6BD9BE3C58A9A77B53D7762F5854A3467A85941CA2C03873C0458B940275E5AB85B83A5C2027894B92246DD8632D68A310FBC6D214381128528B375FBB8C3C7923AC6A8C7F9E37C2EA4C6B72E3451922761AC274B5CC8569CCB93917A748E93C190320E3F1381E08CCCCA70903975AE25689C12709C8E9096B16A26E4439C2552A088194368B36EFE3871A6A1CD54CA0C70974AC936E45DCA01DE296A14C7D20652999E61841DCBA6C0171FCB406E14A95B0C02517447BB9370996176BFDC5BEB4316C0ED34A13431E34AB27D9DCCD3DDAA49D314659BB8D89325099D0B06931796CE65C0628C817393BB1870F19A10CFE3546D8BBC2509058327626F490A1BBCA6FBB653EE1C3555203353509AB14B64CF8A29C32B17096805B8D751848DC4494279266F2CC474228B2B703CFF81F0F29152F4570151517995262D705AFFFC08DD413C12F37B605BC32ECC1292B9AC99E4A34F911C8DB990ECC9A3DFB37517446908B91B1172A3D4F547B3AA642709BA40C3939734545DDB6B45C66A1A3E58C6D1929E5721BFC6A6021A635D86C8378D4A0BA68CE385B6B7FB983EC4A95C8B20B3EC750B082BF2CEC89A6F8C2881650E5B71A0135C", + "865BB3FB12A4C2C3C917D655A2997984C8557ECF1943436A9FECC5C84808E38701CC26A251F458334F59BD40BB0D8F82E74071A5AE3C9439541AEE59C6E46A5852834CE5712B3665018154C5339467D606AF189CCF20C68C583C96D969815109CD3ECAD4F5AB0A8BB8A7B68359B0319078A7405821C2709A615864422BA0A3970C8EA138FFC1522B1A53ED1C71D396A0ED6B782C6552C70216679BB4761A600634276D553CD703897C6943A859112CAF9A7AC99517C23CE6457AA069B6FD2775EFB262DBC27B02FE6923D14B047A25CDC6B86D20A55D85108FF276F121A352E098E5D4CC3EF92B3A1C4A38244621B055D5F812189F6941B492330FB1AB0A442A656655455B38B522DED5640CC4136DF6CBF4C4B0651531CD8C95280E2AF13FC57C977BBD1A8BDD253096EA98C3AB33A516448A8301A4B141AE213BAD2F640B2D5846C99A25884360F604333197816BA9DD1D0C427C5B8D3A6B434207B8539CE5092CCDA67A755D6A6D7E8BB6BB02AF1CA7283E797F24A1042D29B64262F29B0482B840BD70A3D6D54205DF412DD6490E3DC38C1236758F65E461B11CA480B476875C692508E7BB90C430797E1917041642D88506C07255AA92EA32508462C2F4A1661C05114C9361F651B7C5FF70B42659FFEE71F58CB79E445536B8948142CB4EC16CFE5B21DA659C2DCE452346323F1632C37F128A6525F40E03D6C073E05476252B2B0483C4B87C1C1FD8C972CF651EB9684FAFBA3F862C8619C089F01277C14BE7CF7790712CA1E8877A48909EFA31D814C1C21F4A151B886076840546419A1C8B6CA4466389A3F6DBB69E8494D7B25A4E9B234A8D928A26B946FF305B8A33B0BF8B3EB992D68C312B4074788E69D1A5A211C3B55F8C654AE778FBADA1D75FB23966A42C4F189D861760F7A5F30F358DFDC482014C25845706577763BA60EA00A378DAA1B0CD1C15C5C04BF847BABD0CCDA7C61B0A956229BC992029DAB7B05923C5DEECC595D766C0040946A229259C75E9985BC0519218DF44DAD36ABF20C2BAA92C3C34CB911D77C0E7603E8639FD2870CE0F6BDECD193C8C261C53A9EC8D4767303480529AE2CD23561C9215476C617453274881092443076E731A459CF603A7CFE81804FD1C8293BAEC711A694F98F59D01CDF79827E777B9E452F0A388A7E7CB83BA37676D2B70AFB02C7CC0FD2A05411F41732233BFFD8917D9726657C68C4E34F1983B6007B43CEB87A6FA033B3C674A090999CC94A4F2889A8B71E5228C1F92C16DB841099C57A73005F81A5CFC97A3A1BB6092AD60EAE139D9BB174C9591AE20C5DB48390C46BB456E49E124559DBB230CB6B5118078C8BAAC9E959277AA55B521A351BF34F9BF7B18DBB4120EBB60C914D84A80123F338035520620783824C676175CEA40A812D896839993C4CE211118855E5349E84C8604D1C85202275F93924FFE79141EA0ABF85A4C970C45E0ACFB20C426CF545CAEB594907A23BE6CDCD38486EF2CC1234054FA47C50C629657C91E71103C029539E632089461EFFB67A0F8CBE74B91793AB033BD89A2A0A68EF390AC90669AEC42530C785EC3A0DAB424C8184BB051780B4E80838539C81A5097D42CB854CBF324A26F3CC65024A6404CC2A335378FD10ADC8E10CB99C323DDC55E70B32A06CBFAB829E53AA059163C46339B7FA1090244A358DC647D4B1783B59383A0988ACE605AD979F655038AA422981ABABAA0C2F28899A352572F4F6515D62649CF88591AB7DA91CA2C0E44AEFD16ED3F174CBD0BEDB7736363C609EBA4655B2A31BA20F05E412282B28E15125EB212596E0C54181028CEC9B106849AC366F62E8C1C5EC9502F01ECFC1749FA3BD7B251B2A09C731C468DC2988F69649FA9B46E9D244DF903AC9004F09CB1DBCC9C69B33AB9E928FD2072CFED1186F9799EE3C2CCC2B68A3D662C7FB4438240D6E0B70CE98478E6C28294047400B9088EB4AAE3A5A076979AF8AB4234164B0846A9904ADE949742D7402C8516CCBFB1D30581A288C9D1C69360A2B06B21541382AC9B4101B96D4952E89725258CF7FD33AC4F522D12B6F65B884F33A0A4D1B0E41D660D0861BECA59164F8760D3274D6643EF7D13043D63A4CEC67961C808CD64B9728872F74412B8867A2E25CC58174653B2A1A0AC0A24316F4C14281A0A739BAB2DE26BA73C4921C50B909D188E8B3C4DB1274491C792028515930AD45E667C9E6870D204554556BFFF44D09F95FE9DCB7370320BC6740F3053EC5B7396DB400AC671B01F33DBAE59838741B59E4C7F076A92CE92C5213ADADC47C8F50BCD4756DE7642799D5477967339E01455E6898D2194A7AA724338946B7DB70608C0337E305AC876F3D87C6AD857162E491E469BF62C26285F9B817858B149358CB67248A298CB21771F1504F4997965EA38036D274AD72849164262FB58F46CC96FFD75F23B4A0C990A9D59160E4365B07909F7874A22EF1362035312F43B6272BC47EEC6CE9C0B4418B60C5022502485BD92730EE75A9BB4A8C81A03AD4B292F14746FE686C5588B842646B59A38F6FBCAE85F3491C38ABF066CEE2F4A285E961395BBE274C268A11AFD003BEABB50D12B8550EB3008DDBCA593C7BBDF6768FB561AC452D32C77D74352310E4322EE53B9BA879D511368B445DF20AA17A7AC8F205A302F75F3C679557F2A37DE221CDE6C8F7248E73EC25DE603AFBC5BAF1B076DC3B304550C198B6B49159C12490BD964B661E6AC0EEB2B09A78941675A2132527D0016D89EA6B3CEC5D19F1818E4501134947A547957A195807774A8C40A9C50833790ABA5628C2EEC2148DD0430294B331235D4246770C293046A237F03487993043573A71F250090AEB01DCECAE4B878633C59B5403ABB02151D8048DAD408473D63CDD018D3D295A46AB556C8ACA53495683976B2186C6C818B852005D20964CDBCB6061A50910B9C429BA9F10A06F4E053C9E1C4CBEAAC35949C8F23C3E890234CA990B2BC890D43C2A4051AA058A402B7CAF4A3925F52C95C6B6C7D26B4E3D43B21D7B0FFF3B37E5D33E391B5E617785F52128C581969E094D82D062A8631A76B093703626D8708C5F310ABC1951EE8984BF858A7B582038A6A624F5921257764890B73CC9AF94E5AA82D831F341486AAC17CF29AC351483F7F26C80111F6715634AB69CA71A6893B13BBF50CF58C16B29D6B7C9B58FB3C0B9295A6320210F1DB8193BB8A57889A28CE3B196F32CEF048A4D60466E3857C07847E3883C1B7BAB89224C94FABB3FDB921EE3C7FB716AE8C520D547B1AC49CBAD256EF43015FBD722B8B31D6DB24937338E6614402D9272ED014710FC5B0A7105E6659DE2513101B22C81DBA972FABBF23756B5D524D41A15B6D682A1894E8439B6946C64D10732AC603992353F03E61C1A136011B52C624B0943A3464EE92B8A7B970AB5BA9713205E4A22B6A12E063C35E8C65470B32F9E29255D9847DE80CAE1091FA536213078BBA0181FA33BAD7F3003D2065B8D997A7207B595994E816A1979AC5174137EAD82BD88295F2CBC77E01C0FC9119FFCF25D8F2044A16ACA9CA052BF917746109320DC076E1895399741EE690702B477A2D07242E03DAB4664CFB4A4AA443F32D16B72616A0DB4D3849FC41A7A6BA87F4AF757A0AB1956518FF0D1ACD4FE1BD3BAD938C23EC5A7F320766E01005E32769724ABB4EBAC578DEF729B5A50627688A4CB3E37CC0FEF22162DDBD848E5AA641731F8E60B4B79C93F\nencap_coins = 187361C0147168EFC571FC7C181BB39144A8F7EA3E878D28024D19BA42135BD8\nct = DD5CAD769CDD193A65B6A5F96448C8745CA3F06E7478BFE6F0CF4C987CE5E77A233916A450EC7E77EFD13C3E076286E30F53BD9D7A77AE77981A36112AAFF8A542C4BCE00D94DDFB7E06970952C99486F44A74A92F8CBBD0113030099C1AA594136774C4B1A71E63718BF4A4129CBF66612EBA54E0FE810DA23E30EB89AAF8032EF6161E03FE44050BEBCA0F1359D8783801BB90EB5FCDBDDFB25603531B9F9D13137FE96DDAF3B3361FD41B1930DDF0A8349975AF652A07853DA910B4C26197093878DA3A015C2B30F6556C20C50D122C81C51736D23E4BFE04BB5F4939D5BD0F83A0262D3F06FF94BE021B77D4C023ECDDFF8906DBD9B225813A1FD16A9F6E4AF9604DD20384133CEF9328743C09BBA63B0D9B622FCFB788ED889CDD9EEC9B8DDF71D7955A68B572D7AE05C91DDFBA99C9645BC2C3590B7178290AEC8A78499F115EE970D35DB6531DE304D9219B41E085A6437E89C0CA2CFA44874784A510954039CAC353D357C801463045D3A5AECE6C3F5C3E852F3128C8784C8E68BA187E4CD2A6BC17BA1B2709560252EA808D931D79BC0980B10D1CD542B1C46B825548132F3E0DD8620FE5985BBA90ECC59FD1B1A64C93B23F0EEA2E9EFCB867AF668EB67F9D354AA621F66B8789A6754657C72756560043FABB50C77BCF6CC45DE536251F424E6C91308D47A6BB088BD9E2F83B1209BFE5387901A66090154FD390215658D6CBC666611C355CA86563780E482B4621AF4EA48D3DE44B0A8965ECD64026FEBE93E5D17FC953E15EE362CEB237A7F8E5B89D05B25E339CC2750EF390411B5C5E581080DAFDF4674B2B371E5EBA9D69DBB655AD79E20641E8CB97EF3B0FF8D70981873A7939940518F1572789A5779E9A8AEDCC817A2AD5654D4885E4C7D61CDFA4C7479EB73D2F52638205670BF5B110CB84ECFE722FB8DE157098D5A3BA432FDD10DDA98CA34300B0589C71DB242E8B184CD24A4E67C47EDE8F5004654A3AFC475764150F3848990A363E1C04358E480B4DB0B5AED5C95192546AFD1A2B98B44696B06C840B006857D196E94FE0944A9D62D3BE3F7D4C01CA1DB37379CB1F97C2413F680E58DBF8E4FBB95AE827824F443A3E69402E3B3903DD1496F8737BD865D9BFBC5678968EB41F4664389D2135946B3D5DD5F7BB970133408D4A495640C4AED4E955724D863C7C7DD0C98F35BBF52B84D413FC50A6F271F2487E98D5BE57A15355E5648564ABF7B54B801CA899AFF040ED9FCDDA18752E3BDAA2AAF3836228BAD584591BE783C44E31C4165C289863C7A7BF610E5F682C4F6A9E6CBBF3FF217391D415116505FB51C87B5D6CC3F663CE4DDF0D8FE5297352CF52D497002C86DEE0D05CE18E80FB96BC0B542FDD641A60E2727CDDF7BF8EAD71E96D7ED967280BC308DBB65EC823FF8B4787050082B95A3A59F48EB9F6F4211EA87AEA7D0D70C944D46835C97BCE61CFE77F444272B114BE785A72203D190E435A8C30748A1950F5ADDEBA42167D0B080BA0330C0EB1613BB472D41674D26ACD6007121FB3B3203540551D6D21E0C47D16177B30817EC76856EDC4BA1614CFEF11FA4FE719E90E01729D125AFEFF91A2B77F0E4F44B409C609F79B3C2CD4565F81F45EB009C74E71F0400B636AD72A4178B459F136183114C63B1EA3810A9596CC86A910EF32E559E76CFBAB86A289626E8CFB74F0AE1365B5DEAA5B7912C68C4DD07718BDA8245733B554B45037B791829D97280627CA7C0BCC53BA05127E9199CC6171D9D7C275EB272D2D843E67FFA4054DE2082174B6F931B352C52035BFB37EFFEC3B78824AB2B8A7E099D9514B1FD73674BC6A85F306C408B83783420EB68E05E46534C2AD4D55B0CC5FCF0B2B029D44F54EA62A224DE439744367B219434F8D4C35700B2805ECF8DD71D14A5C539AC8B13CE0172FC06377C8A45F57661514F9E8EC381EC49F5CE495FFA2A5B1DD1B6E", + "DD60BDFA95F20168C02DAB96654E2BB5B07DABE011F8E07449B683201B02AF39A2AD7714C5C019F62D13E875B5450B2C9677D97EC36A5400E3D5A856A09B87D17B5CED72523F40B47FBA1BE4DD2DA88467D4CB3B0B9E613DFDA10484BCB17C151DBDD7265F87CB1FF6EBDEA91D3E557F40DCA90CE171D890D175AD4C4440E1F7AE2197322761CAADB347B977290D18FD6228BC5A1E6FFE19EB49B1F280B3A5DED2D88A1EAAC3A28E64FF1BB26B\nss = A3F4F9E5C9370163EF03945FC448770A2FE7106772D742131B9E264114E0BA16\n\ncount = 7\nkeypair_coins = D86634ECF96CC2603761E284C0E36734CEDEC64E7FF486469E38539C71141C5A0472C3D61E4CAE91B22D2F5A316794C723FBCF7546DB47A42A15F1450CA3282D\npk = D5BA702B276804716279E61C4B3A599005270578414141C09D070D9302CBB10AAC8B8483F11B1044CB83EFB8315FF38FECCB09D1775E1E29C59B1759D894CCAFBC147B228DEBB52E83D2584552BD15B9B18F02BA12C6669EF94190126F6FE364D106A9D4762522F25A0298CB5E40CD6B89045F275456E8BC32E2C11835B31E6AA628E50E28A9A18226C73343479D0AC61E5A81C6A38C0506477E58001B6890155C3A71F21E1DF151660C376CC61D90D93331801B31DBA89B6853C2630D33578551399164DB647665AD52F912831A956B8AB283F91C10209B0B055BA765CC75587DF545B670EA13C6B917393666BD6A9E07A21AC46CBF3B5CC5A079488F97902583BF61F5A7074BABAABC837B02600C03C9F8F1481414A241766DF430A6DEC7936DB2374EBA1DDDCAA58C8A2984094C57349A78102A48E48C450CA7135A057EB2858A6176E67316AD21122C44643FD42CDED7CAA55A628A503366077058B286AEA157E540C598822C3736AABA5298A41765FB949190977456E1B5C1810DB1301342104B9526A82459A0F78B9A7E74808A49243A0902D8C6485F887CE62697A72474A1FAB0D1342D5AB7A8D9EA38D3B129661C2CEAC177D63A59D5B62BE8A11379A51055B36EF78817B677AC30F05BD38C700CDA17D52B02E8B19F09354AE074B4365AB379667744363B9D4BA17C061EF955631F1CA916A74CDDF05160B82994C49688D71612676BB0D95F6FC58D92970FB71C3C2A250B4161B32B3405ABD605D0A94AE017BB28801EA54588BBF0B9CAA8CB5920BB02730454085871469CBCCBBB26911D934680AFDA6EDE5B29B0E4A0F9B15D13392647EC9AB1922943C88DCA974AF1C95D01866E906221C901319E2BB4DB5807D3B22EBC077834C29AA555226903A4B53C7B5D29C226144095E03A4886A18A26B99F389A71C41849F10FAFE816D213BE109AB7ED104114678D16242547EBB69F55BAE884535889BACC55A44E1AB9EED3BD23456E0FAC2D2405BEF464CC60C58EFC595DA6C1ADA9200D8EB1631F119E99B38970DB26BE02333BE37E661C2BCB483DD1156A7E016DBE39AF9BA9A7A6FA8173033BF4283E5160B1B2D4914F453BCF3406304859205118C6056243209C87A76A7C3259258786E6C64B0405BB8AE22E33B1617BC9815BF57B182748CBC6C4E8CAC9A9A22965E560FAC66BEEE32F7B8248C241CB3213194221C704BC821185041AE5510689A8D7C4CE5A6C3720E9C845116D2B3B9DE703937BF500C9249FD3B2B134998CA657562B19857F6ACF575264EB1B0B27D50049542D3F87041DDB755CFB340FD122E4C46663A7B556921B41B50713D71CB20A7888955689FA4E43172F134B1A2B628119C22C391408B16092CD6C8FCD6CAD8EF34E129C6D5FB8881725A3B8180A14CCB625A65AE7C59F8B7888AFB126F2D8AE8457A273C453CFE69726D951B3A241DF583AF9995DCBD73223884560258459D0BCA1E794C94214276547D3D740A8608C33662EDA195F4E26B90D86955C2B4C8470592D1C075BBA0FB49B6732B2954FE76D0DC3B3E840865FDAC146F03BA0F336F0397C6FD450770A2BFA5837F46096D3C673C562C9CE79B5E978C2A40450ED36B43210386A769DE3A9063B93455B694C5CB3837E865AE61B82AA96661E57C41E405D260BC7AC84CC0E1C7515C47C320C61723177F0F57F599958DEC24A3F81AB7F1B759C61487A243FF13790DE540BBD1B90AF233D8658B2805152183BB220E1CE017795BA97753E9C06620A85D4E28591AA6C1F440240E9C22A9ACBDB568A98EB745EF435805CC00C2722B0822C1A88B8B80CD05AD2A69C6A356889C2389AC128C49D627A1F3C844EC85B82A405A2E1834CB753B415E32629B7397713AAC7C70EF01A7BB3DB86AE13B4ED51CC77E2A90DE08C77D6938B903E05913477D1C38C98A80DD034CAA3746018BC32034B27602732BB0A9CCA9DABDB795C6BBE181576E69413C419674B646386B62C0EB8251572A630B087851892BBF726FCA0B7DD8A170F19100D6087C191AB56F066A3F61F973C47FC62C331287DEC02518039B32E7C320376B0FD82788E2A8EF38B1DD977889C2712AD258D4FEB5F7426A4ED147E742B0995A97C2AD876E1860AAC6CCAA82287EDC68267362EA53BA9D0D91549A448FBB43E3F90802AD3702602E6D28FDACDBD2A03546764C4FC1C62C0EFB3462C7C88AB8D94E20B\nsk = 0FCBAC2FD83A9EEACE0215C784E20260F0991B225897E94ECF93368B79565B478731537EAC74550CD599D5268E03A25CF327606686AB8864677907A3C3555018B478FBE125498652D5259A31C2B4649C14C89BBC5758A9B53C64E95BC9CE30C306372D431CBC642C0D60E25136C3919F3BB48B280B9D5CA0B21BB4E1510AC49AABDF02C9FD66420B475D0731918A4A5D3C7A963A468FB7A86C128988EC36C34F475F2B87791F5604863BA6DCA297EE29238BA79EEEC5096E9B336CF0B24DBCC9FEB8BFD77AC888554472D7732E7492C231302A073680C684870B86A05592355BAF2620B51DDC7B17C9328D7A74DA6367D9EC2B87E9221C297B5398CFB55C10E8A68323AABBED806C2272C192FB180E7A5B958A02DCA5C55654A43C74216B192522BC2A2DC05BF865062CF56839831EBB837A3ED8C7368C15933730667B7463AB7026848BC9BA14616B2E88E17ACA4109B5DB56510B408465523307619FCA752919B947EB40E5E8C19A7B4A9099734D648DAAC8C81C1C628C895400E245DF8A324899273EFB441B564305EC48AB305C69D37E846AC9B77A2917915E82286DDB397936769BE7E37FA7F27A003090C7F2B9B395A41370B5A38C07C2D8314627267FA06BFC416D8AC1155DF645C6150BEE70C4CAD8C6A5C564BA2571C9BC9BFAF0C2D12578C8198D49E1414CBA5749D712556A537A4131F3F085F9047735482E23342B218101AD30122113060CCA4196F778C77CAD2EE58B6F23071A85B79C1215F0A7C8745ABCDB768C3C26042D09A9A0355A5C45745D1ACF52C205B949ACF581AB75CAC74F2364406A43A74269645166FE167642900D169A1E84929DA4CB361E80C42DC702A79364F1D664528B6CEC667BF230078AF06A0B48466DC90B34EA7101512E37D8BA3A351D7023AEE652351AE514B8D217FAF09A07654B0CBA1850041D7206CECB05C8F6703F762C97DBF82255DAAFCC3608E8891E3AD8B3D4E18DBCF6A1C2E74CDEB87D15236D70943DAA722481692890A548D7C69A14FCC1155202CA4941C3900B57A452F281091A94781C64A9583C8D302C21484CC6159B88A931AEDC4291E097982EEB0528C152A43B97DEA2A0B36922FC60C226B61068C792F377B9F655940D73702D41BC515086E8F9266C53A4C15A35907CB2FC2A2F19BC5F974034677A33B648322CC9BFCC6B947B5346DF2044249623E53430895295327C9B35F59ECD4A9521F4B93A4C031A624C12F40BA17B9F36908E462B928AD452EC74B84F9B5C1C69660038C85D6743F8A5A65B3787B5640D683B7A45009A1EFCB5E50A35244C9431F21F1B6826311673832CCBC1794FEA917268F5323726698F67BDB41BCC012218929649C972149393845DCBAC7FB58582964405D4ADEB814037A39E512C3FCF72A22AB70E21FBA3822B493DF9983866412F0439E1A613914042C982739031949B2780D8133E13E632FC4281DE567A333C5D8AD458B848CCD65BC87A8B6B29134556A6780EB7B02E4437AE69C09E304210D5CCE3CA3DFEF261A809BC5DC44787A20AFFF49F3E0156E7B428AE1CBD3292C9D818844D4767342708E4016EB9BB0F7099876C26729F443E7CB3B9666441DBA01C8397953F586E3DA4572AC12D00CDA40B715E50422849ABA436C1AED529A50A2448AD772495C6358C8050B323B6636871E092AAAAF75CC2D869DCD71E870384A6C2C51000CCE0515A8C2459F3966C853749D27809905118CD897FE04A76F196A98B71A5B7405E72E9BB7B3B3F0638016BF15D45E60EA054834EF3AF6D2817B59C1BB5740986D626FBB8A98AF56ED2CA9828643E3BB604E256B6FF8830606A68779A659962B7837BC46FA9781A1A8AE398AB313C597A4B7070CB1B7DEA82A6496F3D00ADEFEB361C980691EA7D261982EAE4B80AC5550A91532F81971B05908DD84BA13544D2F00615BB9FFBA14FBD4B6A5EE46F5B6701F064A25DCC4A8425073F63AC00F41A194409B4E12195B8910BE7848EC8454DA99C0A0C839371A1907183BBD926FD8A107E2160AA8443ACE7C77743C5461C37B4712160D5B08AEC019025651038C7FA975A261578A82865B1D034A7FB9785696DDEA901B1DC3E07E18C456B85464A0A04D91B56311393F51C56F4763AAAA4DAA788F9E631B8E92660D2850B738686706531F72BD5BA702B276804716279E61C4B3A599005270578414141C09D070D9302CBB10AAC8B8483F11B1044CB83EFB8315FF38FECCB09D1775E1E29C59B1759D894CCAFBC147B228DEBB52E83D2584552BD15B9B18F02BA12C6669EF94190126F6FE364D106A9D4762522F25A0298CB5E40CD6B89045F275456E8BC32E2C11835B31E6AA628E50E28A9A18226C73343479D0AC61E5A81C6A38C0506477E58001B6890155C3A71F21E1DF151660C376CC61D90D93331801B31DBA89B6853C2630D33578551399164DB647665AD52F912831A956B8AB283F91C10209B0B055BA765CC75587DF545B670EA13C6B917393666BD6A9E07A21AC46CBF3B5CC5A079488F97902583BF61F5A7074BABAABC837B02600C03C9F8F1481414A241766DF430A6DEC7936DB2374EBA1DDDCAA58C8A2984094C57349A78102A48E48C450CA7135A057EB2858A6176E67316AD21122C44643FD42CDED7CAA55A628A503366077058B286AEA157E540C598822C3736AABA5298A41765FB949190977456E1B5C1810DB1301342104B9526A82459A0F78B9A7E74808A49243A0902D8C6485F887CE62697A72474A1FAB0D1342D5AB7A8D9EA38D3B129661C2CEAC177D63A59D5B62BE8A11379A51055B36EF78817B677AC30F05BD38C700CDA17D52B02E8B19F09354AE074B4365AB379667744363B9D4BA17C061EF955631F1CA916A74CDDF05160B82994C49688D71612676BB0D95F6FC58D92970FB71C3C2A250B4161B32B3405ABD605D0A94AE017BB28801EA54588BBF0B9CAA8CB5920BB02730454085871469CBCCBBB26911D934680AFDA6EDE5B29B0E4A0F9B15D13392647EC9AB1922943C88DCA974AF1C95D01866E906221C901319E2BB4DB5807D3B22EBC077834C29AA555226903A4B53C7B5D29C226144095E03A4886A18A26B99F389A71C41849F10FAFE816D213BE109AB7ED104114678D16242547EBB69F55BAE884535889BACC", + "55A44E1AB9EED3BD23456E0FAC2D2405BEF464CC60C58EFC595DA6C1ADA9200D8EB1631F119E99B38970DB26BE02333BE37E661C2BCB483DD1156A7E016DBE39AF9BA9A7A6FA8173033BF4283E5160B1B2D4914F453BCF3406304859205118C6056243209C87A76A7C3259258786E6C64B0405BB8AE22E33B1617BC9815BF57B182748CBC6C4E8CAC9A9A22965E560FAC66BEEE32F7B8248C241CB3213194221C704BC821185041AE5510689A8D7C4CE5A6C3720E9C845116D2B3B9DE703937BF500C9249FD3B2B134998CA657562B19857F6ACF575264EB1B0B27D50049542D3F87041DDB755CFB340FD122E4C46663A7B556921B41B50713D71CB20A7888955689FA4E43172F134B1A2B628119C22C391408B16092CD6C8FCD6CAD8EF34E129C6D5FB8881725A3B8180A14CCB625A65AE7C59F8B7888AFB126F2D8AE8457A273C453CFE69726D951B3A241DF583AF9995DCBD73223884560258459D0BCA1E794C94214276547D3D740A8608C33662EDA195F4E26B90D86955C2B4C8470592D1C075BBA0FB49B6732B2954FE76D0DC3B3E840865FDAC146F03BA0F336F0397C6FD450770A2BFA5837F46096D3C673C562C9CE79B5E978C2A40450ED36B43210386A769DE3A9063B93455B694C5CB3837E865AE61B82AA96661E57C41E405D260BC7AC84CC0E1C7515C47C320C61723177F0F57F599958DEC24A3F81AB7F1B759C61487A243FF13790DE540BBD1B90AF233D8658B2805152183BB220E1CE017795BA97753E9C06620A85D4E28591AA6C1F440240E9C22A9ACBDB568A98EB745EF435805CC00C2722B0822C1A88B8B80CD05AD2A69C6A356889C2389AC128C49D627A1F3C844EC85B82A405A2E1834CB753B415E32629B7397713AAC7C70EF01A7BB3DB86AE13B4ED51CC77E2A90DE08C77D6938B903E05913477D1C38C98A80DD034CAA3746018BC32034B27602732BB0A9CCA9DABDB795C6BBE181576E69413C419674B646386B62C0EB8251572A630B087851892BBF726FCA0B7DD8A170F19100D6087C191AB56F066A3F61F973C47FC62C331287DEC02518039B32E7C320376B0FD82788E2A8EF38B1DD977889C2712AD258D4FEB5F7426A4ED147E742B0995A97C2AD876E1860AAC6CCAA82287EDC68267362EA53BA9D0D91549A448FBB43E3F90802AD3702602E6D28FDACDBD2A03546764C4FC1C62C0EFB3462C7C88AB8D94E20B7008DB565F7AB9C362DC38DCD3E30E5DA873C559E9A9222710E8D2E7F6417CE60472C3D61E4CAE91B22D2F5A316794C723FBCF7546DB47A42A15F1450CA3282D\nencap_coins = 295F219917D44B474DE067472CC832406BCD18447DF12F87BD117662CB0F2E77\nct = D29819A3521001AF59441767F702979AA595AEE4D234FF4EC8865D4DCCD0599DFE2F7A4A2A7B1952EF527B9935CEB4054AA78C5B14FA31FB7A8C98F46769E6C736DA874D6F418621C665B7E51432C8B47E02BBB8013A8646537C9A881F15DAC1D12E1E7745CE710C3532CE1ABCCEFDCC84E3DF19DC0B2C9F19AD3A3D726D78FA0BE0C7E9C0B5A4DE14958E0735504DAE4724827AF1D700410B5A08CEC30B5A026357E60B8E6A38330C85F8BA5280B994485EA2F54B082E8A6E5065F95B1C7900F273CCD06435CC59A48AD0EA5CECF0D5CBDDE8AFF1E3FC2F34F3BC4178666DB011E7BED0B4AC0F4E90E15622423407148A3BC5A581D7DABC868C67F42477D4FBD29E2705EA408C8C7BE28E7D2FCE2E222E1F786930B94D695B3233272B52AF7652D9E2B8C01587043B334AC92A676B7474CAC0C9E4FFACE5847B6A2A847A05A1A7CEAF50836BC0B7029707D41761F94E1320F9DC30689DF0E9E0B4B123CC3DB68552FE57F027A80FA80957BAECA2F7D0B191A3DC85348758F301FC9D96F891717AC673681A585AB5419A15BBF470F13C305254475226D8CAF1DC2D7EA51D854F5668D8452525967D896955842B2FA47DF8EF2735AD30C256C708963E1C30EEF2F7164A3A8148F70ED79886D4150349E9116F9366D66C4C32CC657A938300AA3A0E57E3D62084B64B4864EFB41C7A85132EE9E138802A2C443913DF50AFFEB0E609EADE3BAF578BE82DFCD50D14725632D45D3744DF797F39468C6DD0042112C537DE070DEF79FD03CC4330D991B4CF31E330BCC59EB52145CB9F1B5C16C114266BC613FAB085F99C10FF47FF91582005140B06771C51744F3EBB6BC4A744A0D628B532B259675464079D54452F0C68CBCF780490821A4D053AAD854FF9CEC7826355B037C9E66CC9931720B9975B5BB7934110AFD73D382CF71A666291063DDB93471AD1B2B6867ADBAAA7772759B21E93018E173A6B468E3F645B1CE581EC8EFC8A31F7413580758F9647A3BA415F200EF70F4DF9F70CA3C52B3C4E71E8B05E573DD7A65EE487D08C3FC86C230FFDFC0A401E20CEB433DEFF89B9CBCF3ECF8655E8DC7C7E414D07EF2EAC12528631AF458D0FB716606947DF734C9E5950CA0445595ACD7A3D0BE6286D5BD671835151B18784A5A498FB1996A93DDB49DA5435D2C9FC2396384C9BAF055616F488D24074524C071E6F92EF282824FACE6AA72F1CCD0764D3162FF27BFE0AD0E808C1C3F642AA65C389B0AB34D0A59F7B0FB5C0D8D2877814F7E26233A37D323715CDCD6197F67E03538B0A9D92D4CFDD3F114D469BFF3D8AA16FFC72910BC3839FEB0175798FFE087429D93F6E4B402963C0DF5B41E266CF95EFC0E5EAA21680453CD3C9802E2F4BBD2F9FE5641EDA93FDF9E9CF674EED591A5EAF8E6F599F238A4015C9B0D29A6DAA63E6E7D38F54CD9A8C84922099FE7F5DFBE532866CC0E2AD6C70B27B699A08CCE3AEB3D64C651DB25D2E901447836FEDDB20F0E23D0FCFF1AD01CAED25EAABF998AF108AC30DE7F155812DD7646D70D9F4A483315E25DF179EA593A43D1CA521E6A18FC62BE9998A826ECB015E0F006FCA7EA6DCD6C2D93FE24039AB06DBF1F95D16175CA86B176EBFFDF20D66C81E4850687E1EE2ABC4C51ACEB554DC8E72FE10B6BC761722554DC049050EF2205D67B1AACE8EBC226BB182DFBF236ADD8E03B04D9BF2BE8C09F7FD5917932AC9242B0BB363D1EF01048BB0179DCCB4D9C243800A0F91701581CC8DD0DA265554A5331C2B9BCFC32D113019585FC09DD7F1B6E7BA2DF20481711DF825D517CB8A4E9F4014762075C443F5A0187961D53BC28295C10530DAE213EB6C603929160547280FCBD8A21FED3EF2E42685E0E5389CB5412B93DCED3ED7FC1DE2F431AF610094917F72344A1C26F545D78A1259E58731E247324072E15CA07635464D157309278C2013C256501130316CF33F092590254EB8109A5C3AB18956B61B2A5D491F0EAAE6268FE503ACAE401ABE2AB634C43FDC11FF5859B159AFBE8FA78579CD175AC3021F9370CC17C1CDCFA9466A66B820BF28085B17E5AA065A486C64F5EB1735A266D031388FEC9E45C0AA9B28ECA3EAA88BD9DA38242A14C2F441D1B7D9BD64FB16AA935872698F6B0CDCC34E276C91B7805789A3918FCCB4F6E8FDD485E6C5B1750C86ED8A91F6D9A9ECCB2E95165403B1EA14489DEFD25C64\nss = 4262DF79A5EAAA98EC3527D7C9E86D669B6A4480810B4E58F50686FC6916409E\n\ncount = 8\nkeypair_coins = 0610678FF4DC3128E1619F915DC192C220F8FAD94DA1943B90AAEC401683A49281B292427D57FEEB160F9347348632E1CD340960F6E6EA2422D194A0109AF1DF\npk = 707206A4B96FF9AC116A585F4394C4E83574BD16364B02BCC4C89DAB6231E5CA7550517A335536B08665A136B47CF76EF816B037E91C3AEC389B2411F3B397C70847A3F178509357DB63A5D5CAA882B2079644AF11F01D18D9B79FC92744850A7E8B1C39E479C57B887E854CAD028D17C84F5DD90DBB2042FDFC82DB061AFC7245C458B05F934D08849BEF6BBD90349C4BAC3CE44C1A51C622734265051787F7509A30D9CCF98250B42CC8E75C6D62A5A53944484578B262850E06B8717508C75D702783781290F64A412BC3F741312ECB795D15C17D198334816582209606210B73865FE79662943552B69B11BD141637B054A64497CEA157E9156DA70891DA159C3E138F86C87E27376EAB0204F8EC1EDCF49BA47B1521870E46171D18268D277C1467B3BE6C8C6895461166FC2C3F597FA6478348F640E44530F966C3008902C8625B46CC6120EB2D82506B01E45A9ED7A19F1C0DF13C0346AAB1F2CAB8E01032B1F303147B5EA7E149B4BC19772408CB923E06614C9B1CB76E0B1D2EB1C4D1F6BD8294B280CB9EBAE45CF0943C03B239677B7EA7C71265B04CA7C1580578768DEB1CF10A2898143EF9D1C5D614B76A8322331A09C48422FD8B1C822384AE1886FF108E930692263965E949319AB94EE1B6763E460A0812780428AEE4D446A61254722C9308C512711AB175312E39467AA21BCF454B8289803D85F33400D659DD8369DDE71BE20907651BAE89D861DEF131FF805F56557CAD430D22CB84A4AA65AE68C3F278B5816B86BDF57188240F60B54A8606B74CDA0C47323639A578EDA52575A32EFE03B349B6938D763DBF4C44F13A0F92F75FC091658C60A32691A52C78569F322521799C91AA2CB550C9A683B061647CDE186EA2BA57A8A1CA929420EF1895F2193CC6944A26E2688E611EC0124269F8C9E18C4032B731DB827FE2930D3479528DA2C2ACD56A8182231B501B05C6383B070190782225D732F84273EB9655B2A4C5D04256A64BA74D245CA744CF8A0B516015847CC34F2E98566AD95FDC87A8FD750BFBC28696808F52B13B09E43FF5CC098BB2A80B4C8F6A3C8A805CC6C69B7B02EC4F67651C65268431057FC7D1CADD8C4BA4965D67DB44AB0C54926723A0842546FB0799E71483169AD17B60F9353777765157BC7E25D02EBCF9198C70A53BFC0FC7D51A42E260F7C5222A519937A48492BA079DF30ADAF127DB4CCFF100112E155501B3719A2A209983358771B05B38CEEA677BE4A4B086132C12F4594F427400F6BA5AF4A07673464118CACD99A8AE5501AB22A235173412479CD759139D18900CE6AD44E0CA5AC230CAEB82B6A98DA48B318B620EF7093F06F20B5A0B4B95D986AADA54891A00314094CA9478B790825A368F2F092D2978195EF2C52B64602929837D0B3EFA65A61991AB61D8CD87F618CB9C54A42CBE98D96FF84C84AC39BF89F490ED735945A65A43272D8FF943261C5BDA7A4F1092C9A6B7481F05BC3FF05CA5F1CD0B2BCEB936233E0952F3380C4B7A1612C5628D5A6A05F837597C94AC061658C53F3DA8CCAE56ADFA5A8156638BE426CBEE2025860C105DA76B0E953C69957E649C5BF7151C77160A1D2AC9C541A80AB20C1B866C4FEA987E30790B64B8AA5B12BF3429F47585DDC8780B9A6E1E7A3C030226CEB84AC958BB5F5CA07596BE91E63182CC5B48A7CAF748CBF47186107219DF88962B302010B755E002CCE9D87781E4B717825FADC62A1A95589694581A18A188143D22F1BBF8769B3DA59813FB963A78ADB8D82B6155B02889371DF684E3060134E738C682A03DA9C62D2922C06425FFE8C2E18346E6F5296B7C4722E065D984CD17C8590B202865761162E6576A403E2806BCF618101FD5155702364F6920C45470BC9B1180B259C65BB552253406697E2371224A80045295A0E9B06899D06BF2B5824C9B2E6CA144647B01F45A811102AFC4C7682E4B7FF8BB4464987757752942AC106389C847AB4DACC14C22B40CBED29D1E81C89704C21EA25747114F7", + "B910AE8715B55671FDCA0545007266F08851DC22446436E15827A1E834F270B38E5EC60222B1724C6054AF281747739178C49EE04CE0FD39D5E7CC65644AE9A60303AA54A28A7C0EC4AC2CE7149FB8932EE26B67C2BCE886A5FC9F321F5B06A03FA01D08BF3AEF948095DE1AFE74BBC3BDBB45FD8F92EDDBF0C682C81A98F930F6165\nsk = A5C7981510819EA27D27A945A0F6619D730DD196B6F3A158A4C48ACFB82D1C348540160B0CC665C43C4C0E4567B46867CED06D2CF228D0B64706227593DB7392395B7EA95360105C1BB05472787430654AA03B6E894C2ADD2A0467EA51B9486F3DF18274C0A2079459DF3B9AEAB15D203B466EA426911572251B0C8FB51A31AA142BDC4142E393D3C527C841A03F796E0CF7CC71DACB47456FDD386527BCCF6E43013EEB755924A22E3A55F74A8974B38E06908349FB3DA5887D1A041C8ACC6F07A75198462353942267D7600D5243095BB012D2A70BE0A3FB2BB599832F8AA68652846BA501BAB3AA574AD08BC991C8B86717B87A45041657D0264F35F0C2B70324EAC43D591202CFDB9A7D357489F70F86D6308D3382CF9139106CB28D947AE3BC389EF18B728C1568436B3EF80644009A80F01EF550C794011E44F2812EF507BD55820A872B90E797626B8EF2D94012B4CF639BC5C8A7B87306753F93CB12E46A66C4B2053C037B87C51436CC83B884F7634A6950C419684AF3B78D41006467105F753194144539DF45AC7FA46E71815F53D2304B474A434B02517B083B058AED078DCF86746313BD8108148EA34658613560CA722A126DDA147AF8C5733705BC8343331BACC5B5B80E424CCF6114955056329A68A2A6403D65197C21DA02A390C41EF713A814A798A434145B9E3A5C31A9614CDAC8A8BCAB6B5274490F5C45B2A307F492C28FF40EE39C2068A5826E8466542559E9409FF11B463E9A4EBA0A2172EC8EA6332D3A5BB66531B670C52CC2F8B651B513E60A9E64795369E0C2CF56A9921669299B6B5399537E112AC358112810ABC6945BDE69AADA92552A10219A630E26E4AC7D9B5C7469A960AC64A6D127971296C53A15DF4C847D061E69CC030B9CABC6E58903C5ADC88882CAC147F2888263ECB6AE97A9B2AA245F131E2E2939F5C8BB8FFC012CB578B9BABF90DB062502B1923CA88B35C424FC6524128FD1D7B5CA719F5A9A538A51A97ABABCE07B006EB701AD8490B74462F93648FC39A2004DB6E951B4C8219CE49395891594353B92B6B496D09376FB28711D87221851A5FDAB80CC52A6352C062F06C80F891DA2A07573B42BF0F6CD5D6B63FD4B1C5BF2572FC8460385A642E6290FB79A9B1CB18CBCB34BD87F7EB595F0598C67709D72011FBDD07A0EB6616A88B8E33571BFA7597BE4CBD6976B93E32C2C088DE3AB59DCF2234E553A5B2AB143C46DF13211E816AED6D02BF6C13FA7F8B282237F249AAEDBD3A6FE8771014C1B811C05FE86102C0B0E7E9B961C1000C82408D8A8AA381552920803418C49E1662C7ED8C3D35763C510585A78664EA0012A8A02F34B2BD7E96EE5C298DC296537C985577CAC3E310568353EC2CA8EEAB4BB1EE2393D5B3CDD25305B148FD8AB11F60B5871E9C9359A46A5DA003E98B61D82C51CD9262764301C86268DB87FA6273F9FA3C35B1C1FD822AAF2F74EDF73AB5AF9175070BDD7D5CC7600A516726C3E49348D138D19836391A54954AC4A0C029B1441C37965422019C2CA49CFCA81317A211E22EA2297B865DA163A0AE2A9DC25701E71847A05754CB733620A824F090D591C51C345420E226B8F3B846FD356E78B87F4555783DC39667349257C73FE78A616762278A8696EEB07871C96F9AA472ED463CE592BF0206D231A277CE2CDD00487E8307A97202E45755D6818CD5C9A82114B3BD9C00B9D9AA53ADA6C5A4A0DF518912A86C2483174EBF0C478E4CBAE97B61A023E46528C1D917C230946A1AA76C1766D7E0259B4606F7FCB07579C54CA0424DEDC1842D5307617225FFA8A9DFA03F46A596E343154AAA3FF6B2496B8B972B04F4C985FB7EA87D6E4CFC47490E130712155A88C1329C5119F91FA854E052DD8023A99C31612E791BD807F241227B9E54A9B6CC6421A9E038904B6565E3A91683A6891702BA4CFC576D24B58B0F64FEA1325D0A6C67EE228C9C01B65470D79F086217BB5418109A0B5906B74A2DFC68B34797231C64BFAE38958F636FC94B868961342C66017B8BB1D0B25409325E8012B75C08EB4C9A9735A570F3BB3CCC2838045A94473A65444BD2A783812E031382B5EBAF44279F3195A7C731F49A25C582D31A979A6076625811B62D809BCD23ABBC8C923A888D9D3B875CB723FB52C707206A4B96FF9AC116A585F4394C4E83574BD16364B02BCC4C89DAB6231E5CA7550517A335536B08665A136B47CF76EF816B037E91C3AEC389B2411F3B397C70847A3F178509357DB63A5D5CAA882B2079644AF11F01D18D9B79FC92744850A7E8B1C39E479C57B887E854CAD028D17C84F5DD90DBB2042FDFC82DB061AFC7245C458B05F934D08849BEF6BBD90349C4BAC3CE44C1A51C622734265051787F7509A30D9CCF98250B42CC8E75C6D62A5A53944484578B262850E06B8717508C75D702783781290F64A412BC3F741312ECB795D15C17D198334816582209606210B73865FE79662943552B69B11BD141637B054A64497CEA157E9156DA70891DA159C3E138F86C87E27376EAB0204F8EC1EDCF49BA47B1521870E46171D18268D277C1467B3BE6C8C6895461166FC2C3F597FA6478348F640E44530F966C3008902C8625B46CC6120EB2D82506B01E45A9ED7A19F1C0DF13C0346AAB1F2CAB8E01032B1F303147B5EA7E149B4BC19772408CB923E06614C9B1CB76E0B1D2EB1C4D1F6BD8294B280CB9EBAE45CF0943C03B239677B7EA7C71265B04CA7C1580578768DEB1CF10A2898143EF9D1C5D614B76A8322331A09C48422FD8B1C822384AE1886FF108E930692263965E949319AB94EE1B6763E460A0812780428AEE4D446A61254722C9308C512711AB175312E39467AA21BCF454B8289803D85F33400D659DD8369DDE71BE20907651BAE89D861DEF131FF805F56557CAD430D22CB84A4AA65AE68C3F278B5816B86BDF57188240F60B54A8606B74CDA0C47323639A578EDA52575A32EFE03B349B6938D763DBF4C44F13A0F92F75FC091658C60A32691A52C78569F322521799C91AA2CB550C9A683B061647CDE186EA2BA57A8A1CA929420EF1895F2193CC6944A26E2688E611EC0124269F8C9E18C4032B731DB827FE2930D3479528DA2C2ACD56A8182231B501B05C6383B070190782225D732F84273EB9655B2A4C5D04256A64BA74D245CA744CF8A0B516015847CC34F2E98566AD95FDC87A8FD750BFBC28696808F52B13B09E43FF5CC098BB2A80B4C8F6A3C8A805CC6C69B7B02EC4F67651C65268431057FC7D1CADD8C4BA4965D67DB44AB0C54926723A0842546FB0799E71483169AD17B60F9353777765157BC7E25D02EBCF9198C70A53BFC0FC7D51A42E260F7C5222A519937A48492BA079DF30ADAF127DB4CCFF100112E155501B3719A2A209983358771B05B38CEEA677BE4A4B086132C12F4594F427400F6BA5AF4A07673464118CACD99A8AE5501AB22A235173412479CD759139D18900CE6AD44E0CA5AC230CAEB82B6A98DA48B318B620EF7093F06F20B5A0B4B95D986AADA54891A00314094CA9478B790825A368F2F092D2978195EF2C52B64602929837D0B3EFA65A61991AB61D8CD87F618CB9C54A42CBE98D96FF84C84AC39BF89F490ED735945A65A43272D8FF943261C5BDA7A4F1092C9A6B7481F05BC3FF05CA5F1CD0B2BCEB936233E0952F3380C4B7A1612C5628D5A6A05F837597C94AC061658C53F3DA8CCAE56ADFA5A8156638BE426CBEE2025860C105DA76B0E953C69957E649C5BF7151C77160A1D2AC9C541A80AB20C1B866C4FEA987E30790B64B8AA5B12BF3429F47585DDC8780B9A6E1E7A3C030226CEB84AC958BB5F5CA07596BE91E63182CC5B48A7CAF748CBF47186107219DF88962B302010B755E002CCE9D87781E4B717825FADC62A1A95589694581A18A188143D22F1BBF8769B3DA59813FB963A78ADB8D82B6155B02889371DF684E3060134E738C682A03DA9C62D2922C06425FFE8C2E18346E6F5296B7C4722E065D984CD17C8590B202865761162E6576A403E2806BCF618101FD5155702364F6920C45470BC9B1180B259C65BB552253406697E2371224A80045295A0E9B06899D06BF2B5824C9B2E6CA144647B01F45A811102AFC4C7682E4B7FF8BB4464987757752942AC106389C847AB4DACC14C22B40CBED29D1E81C89704C21EA25747114F7B910AE8715B55671FDCA0545007266F08851DC22446436E15827A1E834F270B38E5EC60222B1724C6054AF281747739178C49EE04CE0FD39D5E7CC65644AE9A60303AA54A28A7C0EC4AC2CE7149FB8932EE26B67C2BCE886A5FC9F321F5B06A03FA01D08BF3AEF948095DE1AFE74BBC3BDBB45FD8F92EDDBF0C682C81A98F930F6165143B9C53320CDB1B7E8D71EFD1F0A1AD5AD1E1CE84DD9FE7C92F19C926388E3C81B292427D57FEEB160F9347348632E1CD340960F6E6EA2422D194A0109AF1DF\nencap_coins = 281481109453C6238EB72D8995D5A09BAEB0B830E40FB09ED20E37BDE4826DDB\nct = 11FB2460CE9DD402E3E018086ED1AF88F15355496A827BB37B3FB9BD792DD84C39A1DDE9F2B94C8ACA2695E1A6F5C5D48521A303E9A814C25BDC5D2EAE8B02C34B3D1DF3257E76BD9F797DB3110E3C3D26DB9B22E0E42EA747CA93C3D5E86906050BA3EF8C02DB4788C8B793581FF6BB0DC4E2CC25C5CFB30E78E4F37B03FBF93D5F96B34D3A44ACC347A199B9FAD4C1F0E5A494E833E2DE5B874A031C229FB32C43FBA9F165E447039D32F4677F5A8678E6AF26C62B7526E24F7C046F2B1FB0674F621AD66430B1DFDFA708AC253C89CA5307721B2C1C63F73F0562E5743B56A0E4538F923A1F1420C3F0B818BF6C3A1883C4788425CB75D4F6680F1377A75C6201DCA28D50C883EBF7595E772A0FC5FFA484FC191134C4C907E54D281DAC11D9DBBBE242BF6EFD47B5F8F57732A9F9AE6DB35A1992527AEFE9E04397A9A38927092F5AC39D7E96D7FFE2EF5823A1CAF81216C3ED95953495E0E866F647B580F4C0C04EE92143CEF7AD7156A001AE6A027E21DBF34365D147CF0377604A4B10DD6EB521EA68BAE97414A987DDFFB799430103DC3DAC5CE2B2BA01A863245DCBEF1FD801782AC2F11A6658E9F69A36C22FB4873185452888F735C0AFF92D95DB941079A17C0F7EB251A55477BC51BAF20A178A2E072A6322954B6A09A058D2D8CA988F75E12A7D630282AD20F726706AF4558DAA62A1FBA47FC4E12A3D28A5A1B6B7DB13C222227CAB255E44041B4666C0BA3DF884A11234EA6B679CC5F48573ADDDC14ADEF461F91A8C45872213527CDE7EFD22887C2C225D66173CAD62550822F195B7847B401AAB740D624308AB360C95A8F41943234D1EF29F5DC1601E5D48EB3A41BBFFAA41C4428B15B533F96E354BA9492ACCB6E2AAB5FFBEE2F124466ABA1D4A4A054EC3E2722F5CB4E1A0075732C296FA68B60580F8A4048C04038A82DDB0DD872703C4C5D8F4896F37A0EE02F4569FCC5B4F5E096499E263FC725AF60EF6205F40571C397042A6F763D798AC1A8FBFB5DBFE2634D22E14CF61AB83C7E6BF4115AC6BF942EE1421AE932891", + "71B3691777A4A6985A163DB80FE9D6665EFBFC466055473549FCD08BE4B38F321D30F1261DAE7A7AF8C8866B5AE79D8AC333545EB126CD65F332FF633A9EBAEAEB2639C177E6B4591EB3CBD173EFA2CCD02A8227CBD0C86615260AD16D2C39E194A63AFD4E514B66D9944C9AC3B24B4AF91FD11CA59CC694E8B6625E38A96E8AC83CFA4D3D0C0FE1BFE303234E46F71AEB0065085C1C62954220E2B27E9E4401B727BF6A32664A222ED5E20ADD1BEEDB2BB832DB264860DAFF30D8B7A632AA0FAF56483101ABDAB3A9526FDBDFBFF4BF75F276FA967D633E9D4809E50F544B2F2243795F4E47F2A164F7A9BB2DFC64B626BDDDBF4584C1F29333E85DF04430F8E08AC53576D871D2CA2BAFBD123DF2D5A4F673E3CB7125A36CCE57AC6D1E00D3BC9F1060133012FDED7770F6747A69A60288D8AE35D9918CE583582D54CDDBE9F993F3804D7097FA341158BC54460C75F7F68D76BF433AC3A42AFE39678ABA464185BC6301C56251BED5B0F38DCB9B90DD7A48BB0BF551663D19948C8FEBEB6B29446546343D0A5AD4B737B1A76807352A3E968CF0DFEF41A545EF9B7E82163586E332FF035011646BB318A7DC769A74B592A2192951C8549B83B2C2832E4043A68279BA3E651257AD9B45038998626FE69B6B3792105622F357FA820F2C4F496ACFBE71F5C27240AAD08FF333D4B1E1A6E31ECDAC99599CE7FFC4C34B32506F6575264EB631D827A999C0F7C4E37E0AD667F3FF9443BED907D8F54CBDD2E3977A58120BE6F561D203E35BBB13B9E65C4E65F3EA535B43FD896D9EF27C4BB8AB9F7F36D158DF3EBFC138B3A7B62166CC0D232AADF80DD818D1F57D0A7113C9627BCA961AB374DA1811B8AE756D788AAD3A344DA2AE6239A501A448238A921C5D6000ADB9AAC42590E7D3EAA5E9E0F27E6B1CA9BB22E744D388E5E79B8D9E74A80D142F2684EFA3E14434B3F0844D5994AF5F84F52162503EF047FB3A3282F9D48341F2ADB20C7115C91C69914F9129BF23D5FD277F5B27BDAFCA6732621580279B0F904B24209E08AEB02E33E49D82E790387D19542BE8CA582C28B67B492B0FFD3A0B3ECB045F7F0328790939CD32E5E1AFE3EAF53349D6485BFEAA066271E3AAA5A6D5E9A33B157DD34F5E70F010A4\nss = AC3740727EAFDCEA34465A1F2889937621955EF577C39864440B75A42BB0E82E\n\ncount = 9\nkeypair_coins = D322D56D8EF067BA1F24C92492B9C56DF3A6EF54A304ADC1B69913766A1CE69705224FCA29659D6C7A880A5F20D5FE02DC4491F2F095DCF2DDECBF105014C5A8\npk = 83306092965DAAF95FAE22AB9782BE28474BAB8785F6030F9B360A861C741619619A74A96FD30CB6334B6FE379C9404F95C5571B2143657C956E031F2A5A03733AA24A73224F89106F7514A8DB8515BB9C7FB4179B9B410B7197DD849C3A869C687705C692842AA8BDFF5169CF0937A0D669BBF54C92651449252245476B4EA5126041B5721002FF129272FCB76952791B635B8BBC6867F051935508AEA7BBCD722C693990E3E8078B1629D21C09E1B417795445FBB857E8FB4F0A1AA6F761657584165D38CE815307E6D778CD63A283E081A5372B0EF040B889CF8041CC324145A571031F5C218CA816354C2C41817F196272976C2FF6115F5257CD13B373BD2A757DAB65D1E1863CA4B7CE559C73CA919198BA574A9EE64047B85A6AFAECC043327E0800CB127468310A965456AC851A768F777053D48C860A403693B607FB6D8CEBADB2149D8FF665A6FC2EF7D2C4D175C2C8BC812D5B3D54695027A91BAF657A60D4BEFE7562BDF620BB3888645A55A0E935BBD8504C27720828AD8CA9A9933B402735564A4A44D7265B602B02CD036A24C23816C96DEB45C2A8CC7D623BC31E8811468A7C2B85C209B27364C4956B6C30C8094AF8401A233C5E4D348980491AD24B04DC2706B502A9C8390BA3F611344C44BF50241CFCAADB7851685C73603B429EAC840C6B9A7ADA53416470F13311C2218017681204E33A588981F66A02B4E97F1CB8AB61E6A7FE45232B5545A3A35EECF43E67A4C29948206088B062B81875B632C1767789563BC947A59305AFC91AC53387925B4B3C7BA24D84AB126D3B88E852433DD0CA40892D3429962BE6CBEAA85A3ABC46A27B525A562670C801F5F0566A7558197600439A2B98B16009F87147C55F99FB109515B125963F7240B12A4535CFA22AB53A3C5EB8C2500CA5EF9B2D26D93115480863843656C59A85B4A40CF8059D063CD2E7115D862015D059D3577CC1803E6450B811ECCE3CC83E039520D6B23EF8576BD342094FF2A908F42F4AD88E483229F4AB41DB2107E48AAF1B32A275425492B7BB423632E42A6C31E320528327713A86B4E83E929B217C69B34EC3AFCE8628C23A6747666735360B7E70BFFDC586CC75C7768C6B9497CE7C93C8938A81A8545244C4756421AC51EC963493C2D72791CFA2C69B58BD5463C544A3CA679B43DDD13AE979BCB158744D45639586959D6AC5784C074D0CA20F326696B607A206895D495F61525793A839A5631CD94BB7E39B609DB1CAAA3144387C46A22B2ED393060A679BCB13A7C781AA7BE1A9D4D3A58A9831F15372825A08D4E41D0E3371E9F796EF0CA50E128AFBB5B83CA78AD7BA50276CA2244B3452D02D803B0E8854181ED57F04AAB2BFBB1A48CB949F570EEB550A9352C3887A2C37341D8881BEFF0ACD11A8714665A05274613FB168FAF6C151277CE03B9F711034E642425AEA6E37F536C27AB4C859A64B96BAECFA10ABE982FAB01E82A48538C12F2F615ABB815F7FBC46D20378C77626FD4447FC088A7CF626180B2443226C0D560D028B54F884825290CB5FFABC1E152626E62816069A8F9965D89A09B9A19B9C8734A2F71808733A49F30BAE54659C375DE1A1181B478E08FB7AD85983D7809A4C7BBF67721BEB9447191A63A10C2CC709A2D9489DBA469AD9C035664AAAD90BB8B7846152218635816EC4B1B39AD3B1E37201FD468A134445E183BCC3430CB2A9015A10B0369C079E60A42D387675DBB292985DBCD4B954C75B56A1152942AD9ECB12C8074C1998710826B4B1044A1C368D4808D081D7BE1658193C1C0F46739EF1043F1EE38E90EA989DB0C9D6D8568EAACCF1E986E4F3B39B596F4BC11E32FA03E10418DBF464F435680DCCB76E0BCE29005950EA7762E0A86FA4CD5E8819F3C95FF713B006155438D9211350C317589A5C599619530B664070F3715BD3947427476124F328B850603533A651A38C4119C2DA956383C0090BF31A378474992636EB10B079B319C821B4BA9336F413929850550C9271F547344E682780EB9D2DC84B742B49EAB256B6D8149A904BA0293A0A40731B98751A71371059B84D323970A385408807BDA11497C42478BCA048B1C50ED3681AA8044E8884458085B4834E313825B3951E8B743A765A166BC1A133573F3AF78DD296A398D581661E2C9A7E548CA42E385CC6A0678F9E9D268FFCE02C4B465A46773432109A75\nsk = B04C33B257B199352A85B55624F1A1A42B2AB72C4810B839B2BB2F51A502CD498AA258373EB3BD43E03973D129E4FCB61DF58986809EC4EA4333659F03DC0FAB236CD4E815D3F9524E90A28A3A0AF869735B362FED9837855429700CB815C43A6E650E54D6267A832DC0385696274E1E73A12B5960A8409A4B4564DE909B797771B4839782526FD69ABF516A73F9EB8130F41CD6103A6E67C6724186D1C709D3D90141B1BC1C028E28324DE4846BCC6837FC243C54DBA144C40FCC6223FD19B8F54C11BC0982FFD366530ABAD387946E1495A3C05D9CFBB62B28778905AB7D576610A74B3DAAC9767A051B153AF7C6BF0177A4074397BE410411CB33DDCB895091990DFB85AEE15E9F288D01EC5628034A4ADB01DA09283493BAFFD36D224B1EFE096289A2AFD427B82F8B04EA44319F4A16BB07BD21026F2EF550B919AD01CB3744B37103EB54E62400E03367001510776698E28B4FC367A77F1B4690CC2916E8CCF1FA55AA3495014724F1E66EF7CA8283D917B501C931274D9808A8103004176BB69783C094BBBBECD5B90EA14E7CDB9768498B22332283F6A079991988AC6A85BB591EF299BC57027B0CA9932A41C14C193467374F133BB8539C2D5164EF11B70B4A2CFCDACDF6841CD835C4F4E174BE3C26B55770ACF4137666A431D669FD5775A71749922C0B223ABE36284FC880C3AA2A41F45A4A299C647D6738585287F7A47B88EA1C6C088C6207646D99CEF5F56A2E02CD3EA85202C7725DFC99D04B2D52600F0F89366A3A83F8DC74E4A27FC58A622061A6332403AE8CBD0179149B841F5E0BA193EC237AC57A4CD5528C10545CB75E35A20C3CE63950C09A7B0810B84124F3A00C9EBB67BDA9B2AB42113E631123B4A85897160637A32EB856D55C2905F7C655D40C84E92E773056D2392D43E33C4F9256DBFC7AA0683802D04D218139F829AE362C1F48096FE47B09756C36873CADC5300CEA8094E6F8925C1B81ADE69FEE5420B7E94555286CDB596E08CAA81F758022B3A949059AE91AA9B78A825703CD53D1235800681DBC7657A777BC267637CA2954C09344110A05E2BB90A83F95990986FB559BB1282778933631701393B705A5C122EC3645C1B364367C83444D30FA438EB3A478A0BAE14270CD49556399085C566D9E6C467DCA66A3F36370693AD5F86A9932773AE5064E9BC73FF7979A5510C88198BEEA7EE2AA494EB046E4D70A3F9CA0F88B234F6918F7EB41DB97A327654836510276E0154E7A4DFA088B8ACC5F02F598D1494BFBD07C3132C5EF6C3B466606B3D93DA2E69C96744095435FCACC2D24C3016002B5C4B988877CCDB9233C490A8B121BA7821B529DE85E638168B0565D50F735D1CB54CBA91CFC1B9EFF882A643121E877C43B6147A2A8266196346859CE53340208253CA419276B884DBB3B7A30AC3DE983C75AD73995A0B62DE7563EC9A4A715BCDF376DFB6433DE691C54E660F4AAA4B184015026B6189415E66C90DD32C0B015AEE63B5D8B3CB9EA206E45AB4938BC86FC54C7598C6553C29AC34B2213B90AFD144C8B4629A560382778B28D666667CAAAD49633A8F985730318EB033374B5CBEBACC7F453CCD8E77C5A9ABC12DA1BC1733EBAF908EC85A79CE5C1E6653026011D5984546C99BDA921087CBB63CADAB07A18AD591899470582AAF443652C723D954F7E529579F4A65F9736BA1B34FBE728215B14EE450A89297C8EA15B0706314B269A8D88CA27210D94A7109F261DD7B6B2BDF32F94C9CF76FB196B6B60451246D97A2B34F05FA23C408782A93452A9FF43A8AF57A59E8305D29237F58C1D2539B49D77284E5583169247B252BC5AF5A9AA958846C0CC0CE76EBC8622013934D2E4A0BA1814DA282312FC6FD9683048FB308B159205E7050F8B2CECFC0E136A623230711574901797826F02159AA69B45865F12712ACB794ACD187309C447DEB51A81643F82945BE8A864EA1BA348B48214E4C003A641D4D74E3000C5A4392FF7D65A5E02915D43C3FA8646E6119A5E23A099F0860039CBCAF82031948C65CCA097633C27D11CEF810936C4358BBABF9997948577B7504BC87DC53BDC96A68A4C5F9EE52AC66748BEBA0A4CB1654836895D795F45423B33D06F927AA53527A2D1C000C18A87F2CC0BB589284DEA64E96C5083306092965DAAF95FAE22AB9782BE28474BAB8785F6030F9B360A861C741619619A74A96FD30CB6334B6FE379C9404F95C5571B2143657C95", + "6E031F2A5A03733AA24A73224F89106F7514A8DB8515BB9C7FB4179B9B410B7197DD849C3A869C687705C692842AA8BDFF5169CF0937A0D669BBF54C92651449252245476B4EA5126041B5721002FF129272FCB76952791B635B8BBC6867F051935508AEA7BBCD722C693990E3E8078B1629D21C09E1B417795445FBB857E8FB4F0A1AA6F761657584165D38CE815307E6D778CD63A283E081A5372B0EF040B889CF8041CC324145A571031F5C218CA816354C2C41817F196272976C2FF6115F5257CD13B373BD2A757DAB65D1E1863CA4B7CE559C73CA919198BA574A9EE64047B85A6AFAECC043327E0800CB127468310A965456AC851A768F777053D48C860A403693B607FB6D8CEBADB2149D8FF665A6FC2EF7D2C4D175C2C8BC812D5B3D54695027A91BAF657A60D4BEFE7562BDF620BB3888645A55A0E935BBD8504C27720828AD8CA9A9933B402735564A4A44D7265B602B02CD036A24C23816C96DEB45C2A8CC7D623BC31E8811468A7C2B85C209B27364C4956B6C30C8094AF8401A233C5E4D348980491AD24B04DC2706B502A9C8390BA3F611344C44BF50241CFCAADB7851685C73603B429EAC840C6B9A7ADA53416470F13311C2218017681204E33A588981F66A02B4E97F1CB8AB61E6A7FE45232B5545A3A35EECF43E67A4C29948206088B062B81875B632C1767789563BC947A59305AFC91AC53387925B4B3C7BA24D84AB126D3B88E852433DD0CA40892D3429962BE6CBEAA85A3ABC46A27B525A562670C801F5F0566A7558197600439A2B98B16009F87147C55F99FB109515B125963F7240B12A4535CFA22AB53A3C5EB8C2500CA5EF9B2D26D93115480863843656C59A85B4A40CF8059D063CD2E7115D862015D059D3577CC1803E6450B811ECCE3CC83E039520D6B23EF8576BD342094FF2A908F42F4AD88E483229F4AB41DB2107E48AAF1B32A275425492B7BB423632E42A6C31E320528327713A86B4E83E929B217C69B34EC3AFCE8628C23A6747666735360B7E70BFFDC586CC75C7768C6B9497CE7C93C8938A81A8545244C4756421AC51EC963493C2D72791CFA2C69B58BD5463C544A3CA679B43DDD13AE979BCB158744D45639586959D6AC5784C074D0CA20F326696B607A206895D495F61525793A839A5631CD94BB7E39B609DB1CAAA3144387C46A22B2ED393060A679BCB13A7C781AA7BE1A9D4D3A58A9831F15372825A08D4E41D0E3371E9F796EF0CA50E128AFBB5B83CA78AD7BA50276CA2244B3452D02D803B0E8854181ED57F04AAB2BFBB1A48CB949F570EEB550A9352C3887A2C37341D8881BEFF0ACD11A8714665A05274613FB168FAF6C151277CE03B9F711034E642425AEA6E37F536C27AB4C859A64B96BAECFA10ABE982FAB01E82A48538C12F2F615ABB815F7FBC46D20378C77626FD4447FC088A7CF626180B2443226C0D560D028B54F884825290CB5FFABC1E152626E62816069A8F9965D89A09B9A19B9C8734A2F71808733A49F30BAE54659C375DE1A1181B478E08FB7AD85983D7809A4C7BBF67721BEB9447191A63A10C2CC709A2D9489DBA469AD9C035664AAAD90BB8B7846152218635816EC4B1B39AD3B1E37201FD468A134445E183BCC3430CB2A9015A10B0369C079E60A42D387675DBB292985DBCD4B954C75B56A1152942AD9ECB12C8074C1998710826B4B1044A1C368D4808D081D7BE1658193C1C0F46739EF1043F1EE38E90EA989DB0C9D6D8568EAACCF1E986E4F3B39B596F4BC11E32FA03E10418DBF464F435680DCCB76E0BCE29005950EA7762E0A86FA4CD5E8819F3C95FF713B006155438D9211350C317589A5C599619530B664070F3715BD3947427476124F328B850603533A651A38C4119C2DA956383C0090BF31A378474992636EB10B079B319C821B4BA9336F413929850550C9271F547344E682780EB9D2DC84B742B49EAB256B6D8149A904BA0293A0A40731B98751A71371059B84D323970A385408807BDA11497C42478BCA048B1C50ED3681AA8044E8884458085B4834E313825B3951E8B743A765A166BC1A133573F3AF78DD296A398D581661E2C9A7E548CA42E385CC6A0678F9E9D268FFCE02C4B465A46773432109A75F2D009CDE4ABD55A2C7417C9341792E60EAA8E26B53A3AAE805746401C4C446F05224FCA29659D6C7A880A5F20D5FE02DC4491F2F095DCF2DDECBF105014C5A8\nencap_coins = 1E712B1EF59C5594B414D7C1156B8E4FF3C3D24C92AC92C734F4AD03449A7E28\nct = 114E039C0272F317477DADB6E2286AB587DF711D564CBB0D0B96D36D8214B340B063F61A74209EB44DFAFFA2195C5B47CD3CF451E567EE81E4E494EBEADDA635B4D4D5A586D63E65D775D1231F9E47813BD26B49F7F284E65EB08789BCA8CDFD4E27F7BD0396BAAAE7D62D0DCE105C6AD421AFC465AF6783106C822DD1F51735F3E22B3A5AE388A9D30CC4D35CAD5ADDC02496E7410A1DA222D9F72A15FED827877F10BE68F8BAE5AAAE5D1A2CE17840374DAF1533A3AF4C56EEEAACE7594380BF2CAC48E220152DD3C7CF139E30917CC488D749F759CBDA9D44DB66CBBDD3017ECB3CF483E9658F7134665E1FDB79EFDA3A8E5E184057A517886DCB6EDCF914F5FC543D21A47E9D938EA7EC4C5DDE5D3B9083F0639F6C01B3DA7C20C2C55CC23DC9D99FF33F505653CFD05552069C3DEA3B7D0A4F53A900CA54ECE9025A90AC69F0A7E3751C2B391489707D7FE43734E78190C1221E1C6914DB0E6619060063E745F4431DEFFBF2CDC202DC3C82531FBC3A4D01718FEA37378AFDE2659486A669ABCA060488018AA991A86A6B14C60D8EC8C0B5DE50D9A78A573194E6E24B412FF6289D5556DAB98C3B2842F5088543441FDAB8B4DFD7D535373E952E6580E902F070B4F17E22CF5C69CC978408D9BF3A6C7AA7D5D81203A699CE7CAC8CA5F7A592F959F827A9CB5B4628AED899D1D55899F9BF470813E55A56A0CD4ED3E98F9F7715F33FB3C5A50C364A7C8006F16F367F1E995F447B065ABE9F9EB8E041B520CE1B4961D382E3ABE8BBD319346969A91A5867666F65FE31942FFBFAF7999CBD4270B30F2D1289F0ACC4CEDB47FCEAC1F747F7FB8D1D4067B684A51EABA28B77A383B6621FAD2A0AF31C9F5E85212C5CDE8B678808F65A7FA642B50FD51CD8A123243C69557605EFA16FC0B4797D7448B75E131C574DE391C6ACAA10765A2458AAEB69F8D763765A6CC4B77AECB93C380E7068DA8C9CDB30E1EF6AAA882FAB8D1291B5A749A00FD07A501612BCF20F5F9F9096C1F0496C824E00BF5FBA150A8BFBFC1AB4920EE767AB1C4E9FF798875FF0AD68A8CD966D6B577F65D2C79B5BB755DEEAE5002594F09ED5A86966A583892AE54A0275340ACC0DAD7313F7752790054E8394700C5A3558C83CC7575D4725D45A592DE802995B734FB74F5F723AE58DD47CE1A6731699EB6B06FCBB2E9E4543028A0754028AE7FE469C32FAE11D0B5C1525B644F0AC4260754B2443D44426A5CB157A23D7B941CC00BCC6DBA0711A9F6AE4B47D873A3C091CE0DB2741B6DA30A69309E1E565ED65CFF43E74213559E9DFAFD94E56624ABEB173920E55DC9D3FC5F8790581ACBBA75D65C7AF13705606D5DD0947A4ED458817548B4AF84F44B7853E06E4E45CFE10B6A3BAC5588E97EFED5A67D38F94C94481302728E0494F66484FDFE728925E38EF1480C2FEE3949325D823A6D821D1103F32005CC12C68883EB431E104A93571FE63F89014312BAA102AD3DAE5F511A7BDF1D4DF9020A315578D31C74AAFB19E8475ABE449C568BC9EE0D3F74A58D3119148C82A68202432715D5DBDDEBBC7CE9750EA330CDD2D311FF767D484A360B1E2AF5E0A375B4D8F9FD55FA6A6C9AE25AC9BB7BA4E5E611C80F24334D7147A7B818EA8AC9EB2A0BCA46383DE70638C571AD57CB99706824F00CC707D1B86CF56D9B50AC72CD779D688151B8D823B9D4383CBCE28B2CB00FDC1E3F9CC417B8BDE6EEADE7817543464C514D200B041A3B5113BF69944053A9A707527982E1531041B787FA89A19BB60E7C73E2E5EC53B70E84E010D935796D72C4CB913DCFE3337B5B54E196579B59844469CF0B991F1627174A29B7DEFD3D5C5E9C9E134ED1F809E4F353F29FAF7435AC525EB95EA06EF0170A17F94D9E7110D0C6586B0C89E2C406205ABDF2E66323E6785F940CFB4D0F30FA02374D12705D06AABE98FE3D38B91A37FD7165954D7B733BA4DF4D99DD018E2E0EC127873317FD8F3ADD7D874ED1C164109BF00B756033764699C6B822459790FD3426875D95AC6062824A220FCF61D8E28E7737B26EE409FC40B589E8600DF9CEF6B9EA3EC3A8AF6A465A2EDA01C24E0CD448C5244036EE3B143BFC4F8CBE85AD84FEA1BA2B1A339CC6FC93CF15F0FBA26A38A3F490B4B8FAF214A64452C042F000BE2E01913A9B5070FDFDA0AA0431EE2B178893349E726FCEF9592F869E99AE234C9\nss = 913C1882023E14AD17179361A02A236E52D864290CDC0C68FFD1386C1C7A0A6F\n\ncount = 10\nkeypair_coins = 2F1D8A3BEBB34540324B9485FDF3D5BE3B858F544ABC3FC641B5728CAFAB03BA6931E7324D5527DCD0EA7E2E6C2A82D4A80C3EDFB38752B36581F3035ED9A23E\npk = 6CB55B5E77C06784A223B9CD2D59478B608D2E79B1DD02803A272B54F2AC66498AB1F621ABCC61AFE10141EAA935897F89208ACF9B3593AA90FC9081B8993D48A84AED0252D7F28DD48571F1B318F2D22AD487541F23CBA785B8D3CC8A3338998C9C37D3F4622A357D9C211F8E959F0D75B1E11486F197368188C8EEBA30A0865711E046F9483D3E953A55802299F02968A35374E6A2B9251AF66790B73C200F74B5FAE2C6C4EC024FEB61DB55C28D2A99A67436BF5879835BB42FAC07B9399DDCC01A6D5739C2C4C4AB217A3E28A06E6AB367354195C5080F334E0674397556047FB02D195736DB39ABF7C61E02C11E9DA5B1C4829039F159AC3BAAF5E47A2E6C2A17D6906C095A484577FA435D39F4774DE4A1FCE9975C0AC10C56B3CA653FD492BB4DCBABEF3C20F83412A6940B78053E26227FBF7608F2B6233CE17DB500641B295E9D4A468486818A9375E074B1DE9124CD44C05FB975889192666A38EBB79F0E80A21D1C0358F24EB4167DC1BB2CC4FC076BC634E37421E0A5054490B6F45695E59CBD4E7947204C62CF0B61C2422F39B2A1ABE24229E456CF9B374C8A17C85664F5C02B575A640074354E385E36A5B0D373BFF3105CDD110CF0CA235F3BB18A051B4894C26B6C6B8A4A9D185A6BE6127A1F172FA4E75971552EA357C891210CDEDC7A0F3278E930A0529B056820C7DD699A436B80017354D106698401B6092A049EDA3A07674D65956943B96C9191340046148AA8C6837ACDBCA06FCE4A341D526D437657388BA7B7632085A921E447024C5B5AB9198B7B7A6B8380B4DAACAA6B17BB508365C34B8145AA3B2F5B11722345D80554919489E49433BB558A3C332EB12B1A36746E5A531EB2A6AFAA1532183550DEFACEBF4C6BFDB0A035FAAD062B1CB2276505DA77DD99935B1A3BB762666DE6506D3CABCAF8B5DC876FBFE55FEAF4ACC4A628E0347A66F424CA2095E2A3605075786F9B728B5905AC09113E217E663A91F3430DD6D4244BD2CD50B69968D95BF9B07C0F352912E28FA9F0600943A0EA1578955B314EC1BCF13BB4CFF6C1793B11CB1B08BD55BD850136E539CDCBA0C8F8B1A1AEB183DFDA8B64718BB1D8707889C74D92", + "737CA3619E42B7D971783219882B14C671C5005C352540CB5621C6409366ADFAE73B79957539F15BBA26166F181A407B5E7BBC14C54119588B630B782621EABE39567032D76716B9684E217895D82E0CE9473CDA40E0065C2D91A846D7CF9E86B934381A36F130336C7EB7913D0AA466737C8AA34453E4C0C21D098906E0229AFB13B96B6E717A02089A19D479826C585E1F8695F9586B696C805F0533970AC5DAE753903044CE0CB180276C4CAACCB71169080474B3003E0296271FD891C1A788A264482DE92B47549BD2867A8024BD65287F80B25DC18771F8F697D8A830559B544DBBCC8C656DB07AB70174855192362DAC79783357B199B090840DD5D474227BB8502528CC5659FA1B1575C7798052393866A48A006AB2572D7B8635E71448B1D48F0175BAF92BBF98E12660F6730845164FC42AAB8480871C3B2F844CABAC957F62ABA397ABD4AA1319E7ADEF132AA7F55ABED6143EFC5483E2C32B1AABFAF3161BB24C19E50E95673FE6668617111A38525FA76CC314F891C9520B88D7B82F5C415B7310D20B5935849CE2D138AA162BEE6A5822C52C5704B1F1B6838DC88ECF0B3ACF5A5868F2576A58730FC7B986361DEE901F5E050841AB06364C72029B259A754F74A95B32179BDB35888B0872C844443FAAC6F9F67AEE9055E4F909B3D424D6167725E960185738DF3A30930B4D74DBAE5A07463126B9C6BA257AB8CC893758759B4D24F75CF2F745BC6337E366218716BB4C5B8D7F0291488C8E20990FAEC84CAD2616653104D621B3662838C0D2A27E4A3B85B25F22EC350469582E75408ED36141033043E459FD7B0087077AAC13058519BA1C210F68C47959F3A98AE5A9387964873CAC12056C0FE689D1769C017A661E007A8484540363321A08975F024353D72A1B08252173C874E515E543CA12959235537CC4F314F7C81015D462E2182130C24D3F572DE234441CE52E48AA67CD8B2941508EDC9C421ED797B52343C6C792E4E8A4001936AD81108E4080FC88574FA663E0BB4CA5D47C9714978C6A86000C47537E0D5AE249EB884B67DADB110119F1D0A5EA38CDF9F2E0E27C75A43A\nsk = A5019E7B82405CAC3C8F45BEC4E70E20590BD7E543D465BA702CB1447C0F114CC44F404A31B091C638347CF5A464106A2F92A0B4E600A3D86AB9F57EFFF088D1887865C695C3AA29BA08356DA1B4042146E8817F2BD56BC014071B896D5B2CBA9FA124CBA45E294A0F30FA01E4EB18262059CC987C64F9185AAA12D7EA1F2780308A91A3B2F171D9C41D166872BC7B070D44AF8556A356B631A6EB2E804CC09C531EECA476ADC8143EEBA767298BF29C19FB2496E0C573938BABCD749EE2D02E9817A3EE5A687F9324E7E1082892142C04AE9715C4A6980D73C6A54C16BEEA97A659DA476E49C1DD1B8292E04321783E0A66A36267673E92C2C7463668B1742987405C1621F94B87CE88AEBAEB7BFD787116B30A5B64A7E8956321463B351A9753A0389937B7AED431A5028D309CBED2D8AE67F859CE371CD1B3CB11A8A70D3B9B92E15530A260D1874118EC505FD451897712AE4104E67B1D2BB2676589AA4E8833E03B017AEB2666464C87BA809F2BA29106B49647666FC58C712B5B8127882DF3723E74A9B9E4B0E5A96BB325144111C75E96A13B5566E8258E36D34A76096F9B013236B3036BDA5E3D431AAD3CA33E9A0916D8CEDCD3466C75C1B5603A3E724C60A796E0844CC0D79686F086C510CA0CB11C2E936ECABA446560AAF0931C6A82298BDC7FA82AA6A0B32D361B3335CB83DDA38417720E9E745BB9CA008908CF6931AB2B4A7B78036704153359DC4FDB5742AB3C39A346005374CF3107B95CB771FF1C9592D59C810A93E3593169AB26DE85077DD79A3B3AA03C332A9D177D7EF88624C285A90099D1D0209A0BB0C425CE6AE9221613B2CD596AA77BA2BB98A385D2898D504D68117ED06233E69C43B541438B3274B579C1A5C27B0D85159836AA48907F768C97B6B2B19F475655022691182B2D9C80AEC12ECA0890C9E47BF764684FF1A94D1083D85905212431AFE09342004B44A090CD71357D2431C923B3CE08BC836B3EDB82AB2FA3C508867EAE87BF2768AD61D4894B123B6F861DB52B9B3EB77A8C99839E9108704C907E258F8D8001567078037AA1AB87B03A46AD3A0A30C753B8BD790923B7454F84C67AB6BBBCC105EDC36AB6AB67C28C1D3A54BD06F9C09C12CAC8483E015301DB6650CA3228ABB8353D2B3D95FA5D99E96BCAB65B37DC8A1E958F7395391BCBB4A944AA955BC2176AA6600A0D40489D0534423776184C85057AE00E9636BFBFA76C2D329625747968F53D1EB26CF4F95D6CCA45C60B2DA0F1899A7A1FC651C12BC2C3A2CA16D8ABA4E05C0CBCBB2B72C48EF55403462AB49CF6576D8C358A865DE1F795CC0629F4B13837B6B1704250B8E97F7A116FB63A0DBC12C955B49A67094CFEEB0E8C7B23ABE4BDABB787D3E45EAD108A96D3206A4977AA128866E596DFCA9D68996D82021A4380C0991561AE40A96BF490DD5538F0718098479A5763787939453A7A87A359643885BC5D6149EA048B5EF1ADC65C78E4A9C917160BDC625352596034B3558F98637B33061F769CBE341F9C764238318882CAA978996D1C321A92838D109C187011BF84D17FEFA0271EAC7D5EC90743130234E79089F5B9A6F0267813939B5A3B22321376FB1792D8BCF8B072F387305EE56B027908ACB477E0E744D0413EABAC316C13C242A818CF873533BC3714BA136D477A7EF0C8E620B9E18843F4932B6AF212B566BDD93C74CE56ABF92755CF136F79784AECC9770A136FD8E245EFD79C99095D1225885DF1A752063AF9E45CE5E10634B817F31013ACD13ECF16B7E023CD6C39869B98CB86EA5AB2E655E89B27ED83A65D7A849CB68346E216413239073BC7A5793584ACC60F320524048BB9E99E02597EB5E68A7AF1033C9603ECFC8C833061F5D27124E4BE67752B39406C91D01D5B7C0E7889AE037BB338E64C69AB5D96296DDEF899E54B72609105AF54A9216890E842B0287BBA2698A41F12705A68888B3397311BB9A60C894DC71ACBC44F8450B2132962D0F8A6D992A26594A3E2589EDD2460CB62A57ADC71753A7A94D7134BAB8FC1D9C688629A99B0860EFCCB33C8238C1ABC54C11C8AA6C29AA62DA3235D97F0C2F65092B551C9A9794C89716EBBD119A27A4382101A3E4B9BF540C1C0F05C3BD53C25F416A9EA3221C110DCEC6262AB14114B566CB55B5E77C06784A223B9CD2D59478B608D2E79B1DD02803A272B54F2AC66498AB1F621ABCC61AFE10141EAA935897F89208ACF9B3593AA90FC9081B8993D48A84AED0252D7F28DD48571F1B318F2D22AD487541F23CBA785B8D3CC8A3338998C9C37D3F4622A357D9C211F8E959F0D75B1E11486F197368188C8EEBA30A0865711E046F9483D3E953A55802299F02968A35374E6A2B9251AF66790B73C200F74B5FAE2C6C4EC024FEB61DB55C28D2A99A67436BF5879835BB42FAC07B9399DDCC01A6D5739C2C4C4AB217A3E28A06E6AB367354195C5080F334E0674397556047FB02D195736DB39ABF7C61E02C11E9DA5B1C4829039F159AC3BAAF5E47A2E6C2A17D6906C095A484577FA435D39F4774DE4A1FCE9975C0AC10C56B3CA653FD492BB4DCBABEF3C20F83412A6940B78053E26227FBF7608F2B6233CE17DB500641B295E9D4A468486818A9375E074B1DE9124CD44C05FB975889192666A38EBB79F0E80A21D1C0358F24EB4167DC1BB2CC4FC076BC634E37421E0A5054490B6F45695E59CBD4E7947204C62CF0B61C2422F39B2A1ABE24229E456CF9B374C8A17C85664F5C02B575A640074354E385E36A5B0D373BFF3105CDD110CF0CA235F3BB18A051B4894C26B6C6B8A4A9D185A6BE6127A1F172FA4E75971552EA357C891210CDEDC7A0F3278E930A0529B056820C7DD699A436B80017354D106698401B6092A049EDA3A07674D65956943B96C9191340046148AA8C6837ACDBCA06FCE4A341D526D437657388BA7B7632085A921E447024C5B5AB9198B7B7A6B8380B4DAACAA6B17BB508365C34B8145AA3B2F5B11722345D80554919489E49433BB558A3C332EB12B1A36746E5A531EB2A6AFAA1532183550DEFACEBF4C6BFDB0A035FAAD062B1CB2276505DA77DD99935B1A3BB762666DE6506D3CABCAF8B5DC876FBFE55FEAF4ACC4A628E0347A66F424CA2095E2A3605075786F9B728B5905AC09113E217E663A91F3430DD6D4244BD2CD50B69968D95BF9B07C0F352912E28FA9F0600943A0EA1578955B314EC1BCF13BB4CFF6C1793B11CB1B08BD55BD850136E539CDCBA0C8F8B1A1AEB183DFDA8B64718BB1D8707889C74D92737CA3619E42B7D971783219882B14C671C5005C352540CB5621C6409366ADFAE73B79957539F15BBA26166F181A407B5E7BBC14C54119588B630B782621EABE39567032D76716B9684E217895D82E0CE9473CDA40E0065C2D91A846D7CF9E86B934381A36F130336C7EB7913D0AA466737C8AA34453E4C0C21D098906E0229AFB13B96B6E717A02089A19D479826C585E1F8695F9586B696C805F0533970AC5DAE753903044CE0CB180276C4CAACCB71169080474B3003E0296271FD891C1A788A264482DE92B47549BD2867A8024BD65287F80B25DC18771F8F697D8A830559B544DBBCC8C656DB07AB70174855192362DAC79783357B199B090840DD5D474227BB8502528CC5659FA1B1575C7798052393866A48A006AB2572D7B8635E71448B1D48F0175BAF92BBF98E12660F6730845164FC42AAB8480871C3B2F844CABAC957F62ABA397ABD4AA1319E7ADEF132AA7F55ABED6143EFC5483E2C32B1AABFAF3161BB24C19E50E95673FE6668617111A38525FA76CC314F891C9520B88D7B82F5C415B7310D20B5935849CE2D138AA162BEE6A5822C52C5704B1F1B6838DC88ECF0B3ACF5A5868F2576A58730FC7B986361DEE901F5E050841AB06364C72029B259A754F74A95B32179BDB35888B0872C844443FAAC6F9F67AEE9055E4F909B3D424D6167725E960185738DF3A30930B4D74DBAE5A07463126B9C6BA257AB8CC893758759B4D24F75CF2F745BC6337E366218716BB4C5B8D7F0291488C8E20990FAEC84CAD2616653104D621B3662838C0D2A27E4A3B85B25F22EC350469582E75408ED36141033043E459FD7B0087077AAC13058519BA1C210F68C47959F3A98AE5A9387964873CAC12056C0FE689D1769C017A661E007A8484540363321A08975F024353D72A1B08252173C874E515E543CA12959235537CC4F314F7C81015D462E2182130C24D3F572DE234441CE52E48AA67CD8B2941508EDC9C421ED797B52343C6C792E4E8A4001936AD81108E4080FC88574FA663E0BB4CA5D47C9714978C6A86000C47537E0D5AE249EB884B67DADB110119F1D0A5EA38CDF9F2E0E27C75A43A1F06190BDFD692CF499BE99BACC4BECCF048C89926769F1B254CCA9A9A44089A6931E7324D5527DCD0EA7E2E6C2A82D4A80C3EDFB38752B36581F3035ED9A23E\nencap_coins = BCD1828F520DF6A11B417BC8EC4367B6F7CCC47A4F69AADC445DC83F15482ABE\nct = 97BB4AFE63F49CD2DEC384936ABAE297E44EB22BEB468E7362B13BF5166EFC9899BC9B02FA5CB2D77782138D54F6AF426D9F7A0E2D38D54BF386B3107378AB09DE8C0204923C16C5EE526CC50BDAFBEE89CEB120B2C4BC68B8F441BF004F4781CC6134610C90AB97F6AC6F830", + "786FDBB340D9FECE7249E76C51D7549205C501F40665F6D0CD118CB3FC9195B195872A4DE6CFA28E0F4B31515D5CE50D86AC834884E100784FC7F480B77350DADB063AE3816E38F7AF302DA1956AEBF10990D62C1A42F8E0B1DA373DD0B7E252616B7A317247A0E2344F71C3E2811A1B2B7B7F111675F437559FCCE392B3072589E1197DAD145BA12C1D39E7BD9608E51D226A8DC3D0B2B045F389562FBED0D92FAFAB7562773053845343E093A58CD06DEFBA76D8C0B5745DB94ABFF0C3560E0CF2881F4E1E8E2800F649BE1E55F6F25EC5388E44AC944D322837ECC74BCFA8C700CA85E81D1528760481C2F2CAF403D9AAA335F49239C27B7D1C0009644925D80B5B3BD2DA2ABB042C8ACDE7A33A28D2DECF73CDB55B86111AB2E0C6F175E75C36594454C92BEC5803B5EECF1AE1E16CA488E91BBEE3820C9F5BBEC244FEAFCE68377D5E841AB765A19598CAF6450B2BFAB5B2838F3B975F2AA2AE64873313A00541677905B7FA3D29E7B691E3C543659174022EB6F2D5134411F638234543A318A44B1A6A39187D4D1982D21F2F201438C2DC09A1E55D2468CA74F00190814B1064735CDBBCC693CB0FA65D99A21071669F6A431D2DE65FC0A8B11B22A075B99FC8FDD5AD113EA9E7D7B7B458520C4FCF6CD80B8D0F9A30F396A78EAD85DC411ABEA2BCE9B3B0E06F556C7CCA8B02127385A386F16D0530989EAE72799C610EC3D91154F697A37BA1F57BC36E0F109A037327A5F2C9A6757991AA580D7E889EA44E20B889930CE07FEDD500BC8D9A5F34DB736C3260716BB7792181BF5DE3D3C5591D69B1CA942ADBA30A3356EC239D6F0C317037DD7AD3801C0AA1B1828A4B0684FE3F344B6A73D429F1E78960902FCBC20ABFB1109DCCE0B899FA2ECF3783978DF6178EE6D47C8090A4A72CEF4229BC6B571C4012691389AEA1F7000135AB04452FE5FFA356161DFBE9E7FE324C316F4FAB4D9EDA1EC38773FD2BBB5AAED6633F9CBE923F39DCE917B66B9E870BAFCCD4E5664C400EB74FBEA2E7068129B0F038596CB557F03E803B6C5E82BED4262AA95EB7240564F875FB2F5DAEE11F5B50A767535FBA58D6CD9CD0A6B94A945232A8B2151717B7DDCB6443DED5B980A8A4FECDC251E965A99CA5E939EEB9078F5AABA417907321DC70CCDE884A2748264662BFE4ECAF0B9385EEF5315447B5FB2EC82B7469C6BDA9EB2DA5B26D2AA61C9AAC5B89BA676001D7CE16821C718BD950459275D165725C50F1A6D50ADD667D34EF0D75D3D3FB0E4B0EB19B3D461227331FAC720D8819712FD91C9DB5EA6AF5A079CBE24B8D224D4A9CAA48BFE0424EDED5FA0A823BE59AB0F357CC5656DB103E804B14DB5254B804918266F9E3E63F50963B99D816BCB656F4769E715CC2D5C9E448C5B1CE036459984892CD6BE66BA62121951A8D6E15D9B8D69897EE4415F5E850E17460E79A5BFABA1647CC22A7F1D4FB6758167F987841E9F2BBFCE39DCB48B2C1A20A48CD11ADF3AFCA6371BA466A782A09897AB9EFEA13FC55A4B504C91366D62DCD7C511B9FD7BD158C20E674AD209EF5CE1FD9AE81595272BA6036DED5112AE77C1EE0467D378D48748BC11541D7D8A04B4C207F215D50BD11CFC5CA60C5AE2303FD98E53CF5B7C7B7CB2F4EB0D489B6AE1D39D4C3884241F41344CE9F30F0D44EF312DB4F3F17E5527BE14D50AB999AF0FE1FCC8BBA10BBB07FC3A9FC9A241C9127034466F010CEC5D5A25D20380C88D99A8D58E8D2E474E689162215DC8595A1378AD6146A08926BAB7D8DB3B47AF6059CA000746D2D104FE257D528DCFB79006C20064C7CB2194CEA07D86B93D616E54F58FA8B0789D44F1C18F9E96E536AE3CEEA64385A5B73745812B83B58D2F21F5766A7E55D469CDB3E59DE9BD479648D350064CC05FD9BCFAC6B28DB9FF214364AD6216CD1140163723643B2E999041E025C6875DF7F5A129D3B088900590A1BF34479B932FBC6303A26EE1CCE310BE5F76366539F514B4FBB1E5D232C68B2C0DD441007438F3E25981BAFD1D4A45835955D23A8122A2F40886D50AE1\nss = D1702FD73DAE55B0F2301A106E14C29029B6818645E789196922E470CE05111A\n\ncount = 11\nkeypair_coins = 31BEDA3462627F601CBC56F3DDF4424E1529C04737EF0EF2AF6D7401F653B8A13390C2FAA8E2BBDAC1EDF5A5B6803BFD3C58DCB1ACE60333D03CDE2C71737F55\npk = 8045B8693056995A847DAC15FF49B59A1B9AEB2188C46214FB86A8FF8138C5E8B63D6C29447BB60A56210BA594A3027F4D7667EDD310B678523E87830A469E5A758024FCCE5A7741A7368C790CBD86204F6AE2A71C2A6A0CE80D14F26E53C175318CCA9FDC5FC0A110F6834E1A32986CBAA0F0283376B25276B304DD4C9DEBF7CCD4C98BB1E605ABD84BF824A61F5218671B17918432B32359FEDA8CBF822C62E86061EBCAEC22AF3DDC83B45252166A55FA2B3942E346A688CFF13272A092C22C5C156AE0B63214BC7919AA90847F9DE579C6EACAB9690C6281685F4184736092D7B365C2D0AA977B0999635CFB0C44A8193377205A49033FFF2133853A4559BA895F0B5B36F2CCED166F7DC4AA6D064E6223A114580B58128DCB30B5C8DA30B97A497300061C9CB9C7ECA6924B6C6B19469645A443851E59248A3759164C02A8A86A9D1E86C51907074C7003E1E0764EA650C9AA9F1ED14831363E56104D4126BF09207D5544C5696A69DAF7A748EC7BE4B2CDB3C628D5A302F1A82EEEFAACF731C5CE3BB6A26A80E7414044087487648E62F9C5D9E29CEBC8B5BF111995616B8677778A8CC6B55618A26C6BA74753A2D943FCFB838B6A14935A38CB96906FE2008D2AC8622B50CA4A79035A403946180FE69844020BCC093BDBA58D1496AE7DC5741FF16B5B5185A86277AB65C92551B48180972BA55580CB8CD274BC58A83041C7C0349191CF7C9BE0A24F23E81E9892C2E0FA979FB4AEB3648AC64534E6C3823ED28CB24569E0931506396140B72F059818BD483D70C8132BC38AD19B995CD9859BBB06342CCAB0180E8471C77EBCCE2CD9A09D32C7DE1443F6C588AC2308612B3B3CC51C670C935A91B973063A31703047A630EC03375831A3357940D2285EC8363BEE2B8626656669B36875875F32592E9FD5C1E48879E58746DAE41A9E8043AD3975DE6C0F59F6588376682C770BD2CC3E427BA50070A3D1572FC7A61F08773D60BC1DBCFB087D726372D23BF89647CE6792F1A12FB87298FFF567E6BA833423C43BB157B507009D46C8BED6704E5B23E5C431206BC3D6CA5665DB9051D882BE08B714950054A6C0A341BF953C4936830A74DB1E7236C5CC3B49FFB6230C02978B63020FF75E26F375621B26730AAB7ED79DD7FACF6BC7A038B779BFBC43866123EA910C4620363A8B885C7017741A22C35506FAD12FA5E2360C55AA99528DB32709B41C79E7A1730BE27ADE379EC986239CBC98C3E2BB818B3C33C29CE1B6CFF56A58F97C0968E83156A5617A579E13FA208C840591AB630D942FF415479C8343230A9F150B39B1E8259A839EAA370B9A083F50A8992C2B90321549A15B482B752C65C11DBD5B302E630293D2463A47CC54A02C6B7784EBE8C6B487B185898887F1590ED21C1C757D248CB712B7449F712082B7591B34604AF799F9B5CE2AAB6CE9464528418B01B1ABD3E4598CA45022809A708460EB72BCB708C5BB8C272EA187E0158778760B7CA864B0FA51347B4D7130A2ECF4140A8988B94498DB660229F78852FC149DD9C5692C41123A6F1310743C892F761345D2F685E5F3A924E620D7122CFADB4F8FBCC95F5A65B31728624CA247579DEA035DD5839DC6BAC581E63202CB56B978C6A08C3E3D5A340100AD8384A2955462BD703237D331EB7742349876EAB4C2C933133D3C833D185F129C5804AA1453B0947DA3CF3BD44051F70DE00B3CB28396C180B501E70157C22486F8A82282652BB21FC23C3BC123B6C3D6ACDF079906B149AE2B52EFDAAF3D9B0ECAA92CA9D8694BF07D4229835F3A0A21253877E1A39B4699039041ABC8C0B3F6AEC29BB22E847131670C0E7B5ABEB2455A246D03B6066114552476A18C23B013A812D65A15D021C117F926607C076892499056C1BF058C52CA1703A0812678B4485B82814BB6960A86C3454B99B731CFE15CA5EC005F866B28235036E632B89CBD9AA4A6E70AC944AB82661134EC2BA3B871272864A85EF61F86F51337651EEF063FC6F07A39D3BA7AABA5D7357506C550BED913788947A1863A25209CD01200272517ADCA5F1087C984E11F13404D046C5537711C56577ADEFACED330230A42CEA4E13D0E899394F120EC34C2A6054E5D2AC90696115515345AA2125DC6464C584216A9B0018B704E8640EA163B617347ACAF453AE235166CDD8AFBFFDAAAB9919F0CFFDC75D8796FCC28\nsk = 7EC737EBF52EB7905DA8B3C58508928DD74462E8968A1265BB3B9780649210C8202E2950AC11863BD78AF3123AE9899CEFF1992608CF5BD1B4EB0AC1C13CCAAB4CA89A869424BC1AF777CFC7D90A071273F5AA5DF310493FAB17CE5B6477C773D8CC81D995509FF3A40CE80E734A9E8968B7FBE79A9900AB85F7B442077A890688DCBA0BD5E64AE491CE5D39B554E6B82B7602A149A686C19FCEE21B8E3B1792E7529F2307505C77ED84A63A68258E832BF0F118BC05C91A6B216EBCC051B90143B9748B365EC841B6098C4EECE8AA8231BC24B03E732A0EC55AA5B0E3231EFB7C7F0AB21E2544072C22B6B4075049B63FBA05C68A936989BAA2E55AD1846FD1E335568B01D4ACC869E710357708BDC25DB545447E41727224545CA8C16BCA5458EB24D746A12E170EF191CC8DD840E26910CD9484B4E40D0C7446959A521618B9BC472C8001AD0D1C8428C43C0FB3230FA9B17694284375A0E1563FDAEAB6CAD367C9949C4723802D6931F0C212B03004675652B958518D31C8D4B06DFD99820702319E668DFFB5C88622170B0C0EABA56EE7B77EF5D7600B9C0BBBEA5B99E05A9443BB81A68C22C7904A1755D4C80A47AC148ED13C3981C6BF4122A7880FDD597429A32D6046981146743AE85CC8C0CCB715937F29C933D63AB475C2C5483CE07ACC5B8BB4C7456398A9236D02BED9B951F6D43A67EA06F7FB803ACC33E9552E7150C34003A2E2E11BFC0BADFC537EB2B69122352FFB62B285B6CB0935ADFA0385DDA074F7A63ADB76BCF4A80AA83A1C32F87BE3A786537ACAA32178B136C8BF817AC1CB1E25B44654266F4B2B14F33358B9B75A2D916D78E89D3CEC68B782734FE052449598D847B2A02C3056A64E72C5A3B34685E9FB2C0037736E0A21DF39A356310777A36FCE908C243A4A50216B6199CD63C7BDB18B95FBE4615E9799757176FA4A88C93459BC3030E09889EDE148890CC221362472586E3C026B0DC10BA5A823F07ACC1C693E9BF31518B90359B7AAEC54473552835B3590174109337B6171EAC38DE29BDEF8095DA13A8F7014B3F531FC152CA5EB19859673D52067E28C7513141245376BAF368B07627FB1B844FC033361994FFB3B39822A2A2DE17597D16601329866F42C3697A6F5132DCEA2140B871480E50523C3C5227537A5089FB6742CBFCA55BA9C307A321ABE440241E34151B2C2AAB6AD55817B115330C0B15891FA35BF344BE7D93AD44BB27962101982902427242F5B06F85204E738AEC7A333A15001252004B21B5E6FA95A41A4456F74C9522657A9A40F8C4A162F4951CD5BB8A4F334F45A3A73266E1C386CAED53AB5", + "2B9A4DFA173B96869FBA6C72987F4B328A0E56A08C96A00D78854D6762EA2394C2A102162143CD40192749CFBC5031739711F1EA8C37DB5B635BCFE9B6396E2902D56BB135EB8975E1B0A171258D39A7AE84AABD46BAF4DC2A6FF18FB6002CE232B7A45A532DD54D3DA8C580D6CEA4209098930477D207622A7CDEDC2E72C24EAF5787D4B2B461889D23AB93A4BA327C371EFF58CFF7F65738886ABD046895834AA06A6CB57973F1011353FCC1452B015A324C406515E9290AFF4356FB393B57F4066077B2152819B6A69D6072BD4BAA364578557FC727A6519088A183E1818DCE9C5BF808BA36E539B40440F1EC994B46A4A128CE3D8063F608CBBA032AB13102CDB3C725603D14610C76F542EA4B641C411D8297033CAA114D086D00AD711224C585F4CE74C401CDD3BD8A893A04ABA0FEC1625BB997EA24766B5A3059983436627718D83CA5499B7612919705ACE8553D475C68530464E2745A82B1C2C7D152E3DA60F0B26BDA3324F751A40C5004BD510DF886A8B6F488AF3B36A3E50BA362250E34C333B4567B812960C8301FCA1946D58A52E0847E164C780254EF75C0F3CCCA27CA8AFB711BC2A5100E535633D0115AE135B5464C33C7C4C614350B562FE8B641E92583D49546CC4B2B45FCCE125ACADDF67C786ACEFBC919CC70CBB8A2CA1B8353372C3894FCAADBE2693F09CBB0783C4DF1635818CC06C5732B846B8024B9456307358212DD0649ABEB4F83910F58F90FBBC855F86780CC85A48FA75AA6BB5B25050A15588C1ED63D107B7E4B6A9E3F025BE483A52967C249E7413432816BC8AD6AA29E75DA4A8045B8693056995A847DAC15FF49B59A1B9AEB2188C46214FB86A8FF8138C5E8B63D6C29447BB60A56210BA594A3027F4D7667EDD310B678523E87830A469E5A758024FCCE5A7741A7368C790CBD86204F6AE2A71C2A6A0CE80D14F26E53C175318CCA9FDC5FC0A110F6834E1A32986CBAA0F0283376B25276B304DD4C9DEBF7CCD4C98BB1E605ABD84BF824A61F5218671B17918432B32359FEDA8CBF822C62E86061EBCAEC22AF3DDC83B45252166A55FA2B3942E346A688CFF13272A092C22C5C156AE0B63214BC7919AA90847F9DE579C6EACAB9690C6281685F4184736092D7B365C2D0AA977B0999635CFB0C44A8193377205A49033FFF2133853A4559BA895F0B5B36F2CCED166F7DC4AA6D064E6223A114580B58128DCB30B5C8DA30B97A497300061C9CB9C7ECA6924B6C6B19469645A443851E59248A3759164C02A8A86A9D1E86C51907074C7003E1E0764EA650C9AA9F1ED14831363E56104D4126BF09207D5544C5696A69DAF7A748EC7BE4B2CDB3C628D5A302F1A82EEEFAACF731C5CE3BB6A26A80E7414044087487648E62F9C5D9E29CEBC8B5BF111995616B8677778A8CC6B55618A26C6BA74753A2D943FCFB838B6A14935A38CB96906FE2008D2AC8622B50CA4A79035A403946180FE69844020BCC093BDBA58D1496AE7DC5741FF16B5B5185A86277AB65C92551B48180972BA55580CB8CD274BC58A83041C7C0349191CF7C9BE0A24F23E81E9892C2E0FA979FB4AEB3648AC64534E6C3823ED28CB24569E0931506396140B72F059818BD483D70C8132BC38AD19B995CD9859BBB06342CCAB0180E8471C77EBCCE2CD9A09D32C7DE1443F6C588AC2308612B3B3CC51C670C935A91B973063A31703047A630EC03375831A3357940D2285EC8363BEE2B8626656669B36875875F32592E9FD5C1E48879E58746DAE41A9E8043AD3975DE6C0F59F6588376682C770BD2CC3E427BA50070A3D1572FC7A61F08773D60BC1DBCFB087D726372D23BF89647CE6792F1A12FB87298FFF567E6BA833423C43BB157B507009D46C8BED6704E5B23E5C431206BC3D6CA5665DB9051D882BE08B714950054A6C0A341BF953C4936830A74DB1E7236C5CC3B49FFB6230C02978B63020FF75E26F375621B26730AAB7ED79DD7FACF6BC7A038B779BFBC43866123EA910C4620363A8B885C7017741A22C35506FAD12FA5E2360C55AA99528DB32709B41C79E7A1730BE27ADE379EC986239CBC98C3E2BB818B3C33C29CE1B6CFF56A58F97C0968E83156A5617A579E13FA208C840591AB630D942FF415479C8343230A9F150B39B1E8259A839EAA370B9A083F50A8992C2B90321549A15B482B752C65C11DBD5B302E630293D2463A47CC54A02C6B7784EBE8C6B487B185898887F1590ED21C1C757D248CB712B7449F712082B7591B34604AF799F9B5CE2AAB6CE9464528418B01B1ABD3E4598CA45022809A708460EB72BCB708C5BB8C272EA187E0158778760B7CA864B0FA51347B4D7130A2ECF4140A8988B94498DB660229F78852FC149DD9C5692C41123A6F1310743C892F761345D2F685E5F3A924E620D7122CFADB4F8FBCC95F5A65B31728624CA247579DEA035DD5839DC6BAC581E63202CB56B978C6A08C3E3D5A340100AD8384A2955462BD703237D331EB7742349876EAB4C2C933133D3C833D185F129C5804AA1453B0947DA3CF3BD44051F70DE00B3CB28396C180B501E70157C22486F8A82282652BB21FC23C3BC123B6C3D6ACDF079906B149AE2B52EFDAAF3D9B0ECAA92CA9D8694BF07D4229835F3A0A21253877E1A39B4699039041ABC8C0B3F6AEC29BB22E847131670C0E7B5ABEB2455A246D03B6066114552476A18C23B013A812D65A15D021C117F926607C076892499056C1BF058C52CA1703A0812678B4485B82814BB6960A86C3454B99B731CFE15CA5EC005F866B28235036E632B89CBD9AA4A6E70AC944AB82661134EC2BA3B871272864A85EF61F86F51337651EEF063FC6F07A39D3BA7AABA5D7357506C550BED913788947A1863A25209CD01200272517ADCA5F1087C984E11F13404D046C5537711C56577ADEFACED330230A42CEA4E13D0E899394F120EC34C2A6054E5D2AC90696115515345AA2125DC6464C584216A9B0018B704E8640EA163B617347ACAF453AE235166CDD8AFBFFDAAAB9919F0CFFDC75D8796FCC28CC20155074CD7CBD43EC2380DC6A71B3A88C9A4BF168AB2BF426A899706FA5973390C2FAA8E2BBDAC1EDF5A5B6803BFD3C58DCB1ACE60333D03CDE2C71737F55\nencap_coins = C5D2E4C39EF9B75E3691B929F1618699306802ADC2D04BB0219418F7BB0D2B19\nct = A869672CE6D31E63277E013B14E456F7A07CDBAFB9DB8326E3B49FD01F9783C1C910D0CC0B2A17376515F651582E978DBC1C9293D76C5B3A637743A27F11A9B1CDE06C1509AB24903D0EAC0C57783EACF5A2CB076C8FC1F0C6505B17809A727FA6D2DE3816B98D12B4C9600AA02EE66CECCAF1644F55DD1E0652D190ABA984B5BAE858F45782C429A0B19FDAF202CD4BFD49E30887B544CAEF3D734F4784632A4518FAAC5F2A96839CB9434F385A596A6A07E500F778F67A989E0FB14D7074491E80784E25A75F64E06BA02B355FE63E02A894417431751C3EBF229BACEB6EEAC5655898ED3ABF4864499A83F98CC7A3A7AB80C2976A9F6F26A4B2798E2F77B85697F0F2956538CD342B5A066E3240F7D5BD2EFD2293D898DFBA1E522F70E97460E4DB38E5116D8D2BE31BD9DF4110AC470B0C3276839CD22295E0CB5C3C9AE6C07AFAFB09ED87D025AD175A9A0CD7EEFB432AE2E46C547356A8EB464736CC8F80592BBCC8BC5768A2EE1B1130FAB9812949AD38D47C7D29A6DD4322370F5710E7CC259D236534CC27629299D30908180144197E4784B7039D3586EEAD982900ECD087B9BFF0E2FC850D17262103873F0F27D8A58350F55F7AD0946B8D65F75F9C1690A6C061E53EE66A5FB70E358A294E4C8E2C0921A9FF6DCAA368270A8DD6BA9D0D603E2CC1248436E155ABF043A920108C121E55B46E69CB19B4DDA8A659C88D468F209DC13F5BE217D5F15DEB6EF5EECF62C7AD65D62CE835735248820DD7739C18B1A8DB73E8AC8FB88030BDD8A9340127132842048F9BF79007C3B953B81981C2D6451196071C328AD5E47CC9A519CDA48ED301D5D78D7DD672AD18E8F1A3F99BCD6A2BC50D0290E5997E430935B2F11D4A3172C2C101A86E71BCD337DD1B06B164A33AD3057A4BCCAD03BBC51E6661329B15D8A0D0728614274518CDE22CF965A0FC17A75C68171787811BE553E1AF8AEC48E33C8B229EF7AF07B56A4ED71D9834971E9D88461349BC210DCC2D1B0846017F21C7DAF046DECC8087CF04684913608966E298331F56401A5F136B82A5CAD317C2CA2C4A536DA3E6137EBC59975132F0AB382326ACB36D6444739050BE3AA540E61F9E6476F1F0F4189165A0656737AB0EEF07C4DF7F68A5FBE334DAB903865942C9DA713E8BCACE55B8008C4B872664ED6FEBD503E3916784A471204DC95FD19F802D240E14362F1CD115494DBB74196B032EF5B87A0ACA04F792A340BA430B055065871EA6B6B22B4B1BEB51CF954A47382E69C32AB1791E21A191F3BB6905FE0420891E996B9C480B0FA5DDCB55EF9B4F68E4B6D1288299BA4628E2BDD64486392DDAA27E420F3003103FA5EE407477B90FC6EE5DC27912EC2C8E1970B29D1936EFC53F15CBBF325705A671272293139E2FD80218842DFD1CEA3C1083BD5AD321D002BE4D62106BE22C078A639258452F93D4FFBE483EF818A360311B90C8A3CFA8AC7637D0977545D694433D52FA38E9193E31ABB5E65DA86DFE6AE3B37E7C7CDC13B891D4BF219AD6DAE04412084BF2C7B4745C8DCCCB4916AA0FECD6F1EB6CBDD07497D8A3094D4960BCD4FC77DEFD1720E1F19427095AB31EFD09320E27C72C4365A19EAA7A2AD29FB64CFAF5ABF05B10BED361377E70BB49D5EE564B0894E317D5504410C4E6A15D625AA239166750AC6466E12C8A02AA5271642ABD16FE003A5EEDA0E8285D1DF084635641CD0DF2ED7E79E94CBD970BE94A030BB21B196933DEBF5F80DD1394D64BCDAD96CA22863806B7478FBC0AD2A5CC6FB22C5ABFE089679E2D9405641795342928A31879BEFAC7FFC6F40A8B378F3F1ADD6B5DF37BEE12A610D48A463164922DED75A939753BDD49173DD592521EB2ECA8974F97BBD095A912F8B0240B76D59D050F1CFAF49922057F8C6F396795B11155F2DF1DCDE689E76E4A9573411E39F0F91C8929AF4D233B4E80DF357F13A1AC45C3987796D1B6DC6433D406E7FEBB4F84821FBF95857D4D21F89EF42E037908E2575B99D7EDEA3EACF7A7F07D60CC71A1F0921FC84F18193F5DDFDAA4F8535C10A36DDBF9753BBD5256F76F323235305102633D580C30789096017640F0B93B3FDA40A2DBA8EDE02244CD53F0426EADCC9ABE287D4D4ECA85D23513278D16B19E22FC7F1A97A9888DFD7B8111AF921EBAC818694D94584111AEEAE3310091F84C6B348EC946675358BAA1BA\nss = E38DED856ACB99EFB9D67536F8765DEFA3915AEA016B4A306F688AF752162449\n\ncount = 12\nkeypair_coins = CBDFF028766D558AF4466EF14043A1A9CF765F7748C63CC09DCEB59AB39A4E4D605F30457945F8B1560010C71B40717FEE3264A27EBAE2AC8ABC16267FB0F3AE\npk = 6DB66DCA0819602701895A6E3A2071623403B78438977211D33331312C8715E34929757AD52815C65806EA8B222AC2A5B4B718411732D6A0137C5C7CA8E285C02634130950E1143160F6A34CD64DEE440B1B3B8D64458C78492095517892C5A169EB7AE87733AEF3B16A5133788ACE5FE57CB41AC0E5B13C403441D374AAB997500533744714A84DD56CE547A10C782D6071BDCBDCBF", + "BA391DD44926022B9098E61D079B2198C4C4201295964ACA9D703013341313A50A9B124427209BBB248AAF96AB9EFC9028CB9A298838465984647AA1E2F4087C74AE23F2606194447E403EE45198E29C12AEF2CCB0C4B07C98A02987068B4A4F14A778BE34C362204ED4B31788E3B7D2E54D74E07A215C7EEFBC3067F9C67E625BB43B9CE25179F58A113BD2CBBAF85C34BA8FE26A331E0B0610893E0947495CBB1E287047DA04527CCA1AC68A2CE1742D8C855576941B4D627F0D326A7E543497F09FE1FA536E997828C19977B0B82CEAC4C45A3C06FC9A2AE8A1E6C461CAC9AF21E79501817D8894004C5586C78C1A54808C37D40FBE3171F6E950E287850ED19D975446FDCB1B0CAC2D4A611D832ACF1C20A28C164201638110E0997FB36B2D24C6B349C390D4A13E06AA95C40E878830827A440985870A4B6288F82DCBD9AE23175462FA054D2A9C6F6210A1A7CABB9A6EE8E37FF144043EC0123C2C0C4125AB48775529A86462C34C00B128A333844B7C474A9BA5E6087392EA661D56B4DD0A8CC1E44ED94B994915A716A27B1576561F681E346CCB74A07B71938676C25EEE2A83EAD225AFC408CBF085A4A342DDC2B058C6A138A94A819C737B6BAF4A4493C38A52C1452A302535DEE813F1DAC31E09402CF720A3B16751451DF057BF1B7519C8A62E1BE69E339910E6024C59C13FBAC116D6A6578AE40765F78A7147B5DCF93F4EEA1436B559AE373888042C63C0A52CDB2777E8699AFC229D575CCDF802C59C15BF3B6F028494594B53D2F3CCE339229B3A03EAEB164F325686590F79DAC06F482254838E5AF209CDC31F9A5BB893961C5576C445A02034088E89140EC2B28CAFCAC58AD352D0AB34D0659332D9266DB85BF57BCCB67814BC74C107C41DC2F30E6330B17B4B710CD7AB0B1C01D9F82D3FA0216E51198D723F1E52314E850220052309A383E63B774370713435C6B9A3485FF3B83009B79DE7BF5A5933723CC94DB671F25A5A85603FDD8B392A616F55C3783C28B5308A4B0A5C1C757B677C475C60516A65F656B4868CDEC6BFA723C66E52931B738E18CC518CAB93A7C942E7DB127D239C11580C21C71031F20079E9506EC57119688E0DF98E4045B77E87728496C2060C93F4819AD2A79ED10501498891828080F4841A8AF6602E100981124F6A16C26F3380E4D3635FD3CB77CB6C8EAC22BA212A804917B922218066241E848E3BA589569A5A6420019370CA04BC196E88CF2F428595F1912FE9670B9AC97C487EE2E7A77A621AB3B9B2E4C23C5D4C8657277951B55AAE576524769CA5B83B37D84868367D7E9323D9CA4CB7071C352AC3DA2B3AC58525A152A00EC268F85AB6559027EAD8ABAAA370751C64F51473B02126D7B3BE27812BB008C45797C1B4B05B5CBB8C2DCA419F85BE36BC390EF5C4D3670C8EF7C00B59A44C65AD11D68C5AF4B2B675CF40C002A1B7844FC9A6C32886C74A1892A2514CB930E4387904D1970168181F7B43C020A8071969B868A5B44729B8D04B3EA9716269CC005808BAD63D0B063F21C23AD1377E80BB07D608786D849D79EAAE94813435D602214075BDE7BAD770B28B380BD0D7139A7780588C01C8EB6622F1A874968C874B120FF81C988C5684F3C9BA677ADD2C23400283D6D325D8289473F557EB1C2977F04E95FBA614BA7613720C704905F7A73A2834996A4232A8AC278A444FE5F7A9148B57124580B7B03DF89BA646AA4233611DA9B5327D61B6B1AA351D25988E0C25E6E2563168C005666EA90852183231EF5BA371935C4C0ABE6B61C0A1DA756EF390C120621AF2AE243089F84551185616779C90ACE0593B815DC5D8B2D5726A2CACC97E45C527E75849E35B7C5B77FE436C303535F5C690517BA60BE7AAA4A001C002374AE97F0CB99F34A4C2C0B85F36EB31AC7C907999BC7335B33921C307C05F69F90CAB5602A0C2E966AC7C67B03EF5106F0A751017B67CC52A3D0E1586C74513D2B5F13260\nsk = D62C6CE5E7594BE682A8167743106A44482E3A79CE257635773513F0B0BF77A161C8274A705B93D2EAA899D8C0126AC8ADB7B3BBB5891711380DA1A9DE0541E4160DCCABC13A165B5C54178DA95B919457C684B9CEF81E97637C73F22A3CE9295DE79BEDD83C3FF871087B9412301863E291B04779457807ABE4687368C84B3408E26AA30BF58BBE4BBDED32ADB03607598714464222524B3C2CD4C15F98A2E6695463257BB8FA9A84131A64D45A57B9A539094B5E957496B79008878396D3B9B2EC41CCA75B66FA6D069A51AF611D4BC03E20CB12A216072D7834D996AE99E1CC6522A42B48C54282CD0AE8CFDD1B874FBB4EC17434AD584AF5B4561BC1597AAB63390B60FE7C052E57846E1A8C4F6C6758798B70503507554946382FA6E2004A616A40DBC2B0C596C2CB2873C38E6FF82FF159BA93563D23671DFC433949D3705F398B3752680169657623937A8C357864C39D82C16DA5C1EE407FC7FAB357C0B114965E89815409964CCDC54CD8D5B17039AA9283A59E746A45A2800E4806064683C292B425C18F73AA2F720A6521A050C5196BDABC9B094895B9527759C1A7210958E11A3411B05E67097FCE2C11ED024A85A22684B51EDD652DED89C23E1440CA5616BB754361C549776222B8B297F8F4BB7F818D3B29B16C369CC8BA9D91E6012BF006999C7057AA2A44C30237314079B2A55C63990C3AB657CB80D41022651097ED680D200195BE82A9B9D08B24F039BFFC42C66459B0C8889DDA6714B63762494A5E6106F34223990772B1CC12DC660F5BE62EB0A15C16D4A0303773D768C7DDA7B749711F7C12720C150D30EC6B625624E3F94861483BE03271D8B05780AB62E0294A8CB193238530B49455718C872428BEA1D84955F54A3BB619DADC6106EA3EF27094A085634624377312648AC46559D7A7DD902497AA9F22879D131A08B9223A05E5B76A00807225B304480F6105CBEC8A11CEA18E8910A9BBA691047C95676C9E2DC7AB76537691DBBEE397738C613E1FB00A79F06698C10EC26C97DC00B82A54AF572A02801AAC20983311F42BCA18699A2684E4B5AED83C7AD89A1705F1605A87CABEFAC499A56058D8B02BD597743524A90C3686D9405E33C3D70880B6449D41A76F83E23759664F1F301D3935998D690A7167AFA11A59CF8B87624283A738C0D221B1B55453504AB64FB89824351A49EBBCC291465AF92F50D7B53874C1190A766DAC5E70706F88097BE4500942534DF5E5887C48B234C11992F32BF3F2867CC055D7D6C3A4D25D2A141BE7D706BC1203814667552888E3BB13221A10DC3A4157D811A7CA23088BA5AA1A3FD60C0C6AF29B3B52AA6DA319D8E359D842C6DC65C29ECCC0523115D15B19A7B90D1090C5949CC66A004F0A0513132640A284A87384C7ED06782607584BF5CDD8F099ACB0229CC9588B024B0F3B5BA80B962218B3BCE4C0F542BAC9E8C235362E33EA30D789094FE82FBF64569907755ED7BFD00C3F6F446DEB00A27B37BB92E454AAAACB69DC854532C718C85508AC8742C7180EA805A78999111915BD414275E92D75C1953C10968C802E4AA6429ECA0A5EF49FB4046ED2C93914400B0D882B67C275C483037E859C8C01518EE49046E3594A311320E800AE2CB182553684D470DF629B6C27A9CC5C17A0855443262983E800B9375E0FBA1D393953F1DA232C41BB30600E3F0596FD3C786223A165522BD60C8A2D404BDFC0A145F50B44FB1CF3E8AD9B1914F3264425627635BB9734807B408215FB0C6A617C695025BF43E225B1C54D261052F33A825D65730EC7519C9087FF5626A244A1E28669D84BC8216A09CD224DEC7623425023D05A51F98B8C220CB7B2DC46B6AAC461744A30A671EB828835DC32EFE47FFF21370E73123135CE2E02789A21B03E1C55167C3FCCA2343DB1CFA8D11E838948382084A7890E619C652AC49C64A3879658C419C8C813309AEF9BB606D126A652BC331329501C61F97196F7DB1A398A0B6D947CF903A9BB61119C2C45F8B440F29344FA22C2D9B1CECD5786089402C6B649D8563236FAB8D208BE6967B14074CEFBC7AA44C02766ECCA8F0673787B33C2DC2C7501BE94770E68608AB06AA5410ACEBA544A6F8792C4DB01C07C1BBF197E4D17388ADB05FC910BB3BB0B947C21C482256DB66DCA0819602701895A6E3A2071623403B78438977211D33331312C8715E34929757AD52815C65806EA8B222AC2A5B4B718411732D6A0137C5C7CA8E285C02634130950E1143160F6A34CD64DEE440B1B3B8D64458C78492095517892C5A169EB7AE87733AEF3B16A5133788ACE5FE57CB41AC0E5B13C403441D374AAB997500533744714A84DD56CE547A10C782D6071BDCBDCBFBA391DD44926022B9098E61D079B2198C4C4201295964ACA9D703013341313A50A9B124427209BBB248AAF96AB9EFC9028CB9A298838465984647AA1E2F4087C74AE23F2606194447E403EE45198E29C12AEF2CCB0C4B07C98A02987068B4A4F14A778BE34C362204ED4B31788E3B7D2E54D74E07A215C7EEFBC3067F9C67E625BB43B9CE25179F58A113BD2CBBAF85C34BA8FE26A331E0B0610893E0947495CBB1E287047DA04527CCA1AC68A2CE1742D8C855576941B4D627F0D326A7E543497F09FE1FA536E997828C19977B0B82CEAC4C45A3C06FC9A2AE8A1E6C461CAC9AF21E79501817D8894004C5586C78C1A54808C37D40FBE3171F6E950E287850ED19D975446FDCB1B0CAC2D4A611D832ACF1C20A28C164201638110E0997FB36B2D24C6B349C390D4A13E06AA95C40E878830827A440985870A4B6288F82DCBD9AE23175462FA054D2A9C6F6210A1A7CABB9A6EE8E37FF144043EC0123C2C0C4125AB48775529A86462C34C00B128A333844B7C474A9BA5E6087392EA661D56B4DD0A8CC1E44ED94B994915A716A27B1576561F681E346CCB74A07B71938676C25EEE2A83EAD225AFC408CBF085A4A342DDC2B058C6A138A94A819C737B6BAF4A4493C38A52C1452A302535DEE813F1DAC31E09402CF720A3B16751451DF057BF1B7519C8A62E1BE69E339910E6024C59C13FBAC116D6A6578AE40765F78A7147B5DCF93F4EEA1436B559AE373888042C63C0A52CDB2777E8699AFC229D575CCDF802C59C15BF3B6F028494594B53D2F3CCE339229B3A03EAEB164F325686590F79DAC06F482254838E5AF209CDC31F9A5BB893961C5576C445A02034088E89140EC2B28CAFCAC58AD352D0AB34D0659332D9266DB85BF57BCCB67814BC74C107C41DC2F30E6330B17B4B710CD7AB0B1C01D9F82D3FA0216E51198D723F1E52314E850220052309A383E63B774370713435C6B9A3485FF3B83009B79DE7BF5A5933723CC94DB671F25A5A85603FDD8B392A616F55C3783C28B5308A4B0A5C1C757B677C475C60516A65F656B4868CDEC6BFA723C66E52931B738E18CC518CAB93A7C942E7DB127D239C11580C21C71031F20079E9506EC57119688E0DF98E4045B77E87728496C2060C93F4819AD2A79ED10501498891828080F4841A8AF6602E100981124F6A16C26F3380E4D3635FD3CB77CB6C8EAC22BA212A804917B922218066241E848E3BA589569A5A6420019370CA04BC196E88CF2F428595F1912FE9670B9AC97C487EE2E7A77A621AB3B9B2E4C23C5D4C8657277951B55AAE576524769CA5B83B37D84868367D7E9323D9CA4CB7071C352AC3DA2B3AC58525A152A00EC268F85AB6559027EAD8ABAAA370751C64F51473B02126D7B3BE2781", + "2BB008C45797C1B4B05B5CBB8C2DCA419F85BE36BC390EF5C4D3670C8EF7C00B59A44C65AD11D68C5AF4B2B675CF40C002A1B7844FC9A6C32886C74A1892A2514CB930E4387904D1970168181F7B43C020A8071969B868A5B44729B8D04B3EA9716269CC005808BAD63D0B063F21C23AD1377E80BB07D608786D849D79EAAE94813435D602214075BDE7BAD770B28B380BD0D7139A7780588C01C8EB6622F1A874968C874B120FF81C988C5684F3C9BA677ADD2C23400283D6D325D8289473F557EB1C2977F04E95FBA614BA7613720C704905F7A73A2834996A4232A8AC278A444FE5F7A9148B57124580B7B03DF89BA646AA4233611DA9B5327D61B6B1AA351D25988E0C25E6E2563168C005666EA90852183231EF5BA371935C4C0ABE6B61C0A1DA756EF390C120621AF2AE243089F84551185616779C90ACE0593B815DC5D8B2D5726A2CACC97E45C527E75849E35B7C5B77FE436C303535F5C690517BA60BE7AAA4A001C002374AE97F0CB99F34A4C2C0B85F36EB31AC7C907999BC7335B33921C307C05F69F90CAB5602A0C2E966AC7C67B03EF5106F0A751017B67CC52A3D0E1586C74513D2B5F1326077FBE004761FC37FE7597638E5DAE8B44BD44C8D6EFA2893A0A84B104ACE6AC4605F30457945F8B1560010C71B40717FEE3264A27EBAE2AC8ABC16267FB0F3AE\nencap_coins = AA9D93A4F2747551DDB0453F9717E1789B64AC9C19BA3DA020261936FFAA9CA1\nct = 46EEDDA35CC3DF42408FF7228DA32D7BCACB904BE54039756A22319AED69E5E53D7A07005A127CF2B99A3F0106D4E1444BAA80A75A91F182519C38B1E6545C2AAA3089A621FD3530F6CB90E503721293976B63C408247E9B7158C1628D7D7C529C821C66E8DD6D57E3032FAE1B8387C6AD14B1F74A3BA724B3CA22CCFD3AC553032BF069E150CB9A27524A6611C1C5530E85A4794B09C8A3EAE970ED4E2C96FE758914135748F8E9B044012A8E602FAF3139D4782C10CA13BE2C1E95505CFD81F4954E2332F3A2B0DD01300489AF60D335DCC6C80AA9F99FB345BE3639C16CE7483F5609CCD76584B97E3F5D6AE3C88B0F9C4557E29E6F5FF6F5061FF8721CB90FABC43BE6E773468288B486899AD1CE2767AA461EA473662EAFAD45987F3F47D3D620E5E016ECAC76CB32EED3AA26AB2639F08376B878ECA9202D611119677ABC7F40CC2E5AC2A34DEDE197ACF5B9D27C5726BC574FF2AD09CD2759B02AEA533CBA77BE12E821274F11891E131378138B516C653AF4F9E05E7A6852336CE2D3734B1C603B18612ED4B1F97E252C579E3263E94BDB6E9704DEC2F446E2FC02CA1FFF4B54D09C451D6115629AB5740787F225D3ACB8F06BDABE6B9BFF43EAC7C4CEDEA0FD10F6C699CB7A3C9D41B38C170686C2A24DEAA19020AF76FDBE3AC9962FF1E5EB1AFA8D4D730FBBDCB45FF7176D5849B45BD2443888A1DC7EBBCFE7C9131569F6190ACEF2AC0A62B9A9B667D4681C78E67904C480C821E98FBF4C659641A4FE459449893D8F370F50F31F39214A650B784F14298414F56E7414FFF4C5997D87704963F13868D63A1767E41853039F9AFCB6B06FA0AB400D1E9888FBB6BC9868D104B871B0B4B16F9E47C535A2B9769D92BB72941FE484C25BF7B8B7BF475966ED509DDB91B28EC2DED2DCA9B09D3B1C45F2B2379261AA9E74F37A885639DB71CC18C8CA648D3855B3F571CC57862EC1B77045E1347003D017B6CF614A5052E6BDB6B73DABCF5A200FD3062746E310C643505DDEF00C1CF8D01B9CFD073F0F86AABEE5A602E6BDC1A2E5BA1278887B0B81990222758302C57D27A5088820C5E532A5B9158B09A3F448C79690518AD0E5EDB20210F45EC63EE355C102FB732945B0D097B63B980B9C42ACA855092FD7E1C25B13B05E0804465BC0E9C02409E072D58591921EBEC3520A1CFF1CA52CC6C57B8B0F6CC5F5D7DA9589CCA8374F306E56237C3CB083B17CBF20121D545FB9207321E20CC8CD30CA3636D286E4A282351D869E27EDA7F78CC99F1A86FC23AA03A5193F740D56B786DFB53B7506B73D5B87DE1268B2472AA839E55A667BC18DD75D9112C0693FE7B7764CB2732D3E67B5D0EE55CCEE4E26FEA7BB7834210294FDA4F71FA9D88CAC956722DAFAA9D4DFA5D98D1D9ADEBB17F7FDA95F0E42BCA1AC681127FA4422D61592F12D93C7041C78C0BEC8999CC2DDE8F362AFD4F8AAE9CA5D04707D0FA045B7D29B64291F2BE506D340E20060F82B1B639ED51B3CC8FEAC46B853420EF220A7B180DED94B18C6150BA83EEF508153ED4D450C4893005D3B9FF78C063B14ABB4868D981F680ECE1F08AC7D6A936B422F350BB44061CC1FE5B1B0AAC2A8418082BE3882A10D485E5AE92CEC359420A96ECA078EFCADD4253FB8C227F87F6812F2E7432AE901254333D8ACBD1A7CDFAB83F8AC702D9811005D1A2B0D78CF910C8DB32430C9E2B6C29F5E1814D6E108F5F1C35239A1A39BB445E9A797BB7B518FB3BC16E7948F9F59EDEF8CCB14E6069C0E3E8B7CE656682FCCB612CFEF68B78EA7B720E09AE95C0CD1D2B6481E6723D7283292AF59C4854E3935E944F55FD0896B6A998F610FFC298EF5C9EBA2D268AFA3610D8A162E4C93305BCA7611DB2D7B3841401B512EA40A0E9D8751774B3D44051E4D96593F2C15D3EAED7F50C4B34F1F933E6183617DA55C9CEA7748BDEDE9F110CA127F17E6B84BD41681C4A712877836AA54689DFDD8211045BC41C3A7CDB6B4060D199A74B9D716E490247656EDF230F1479B484811B9E80A02D07232E1B643E29DA6BB96AD14A9618479B4F5C6D1EDE3C6DCC257274F97CF3F1F7778396DCF3553116F9CDF94699B7276B21B1A14CDE463498426FFA01F4D12A87DA02FB1901566925E5A7B960D33830E114AAF1FE5ABAF4339CAF1D01A8C262AA936711299EAE89ABF01600BE01034A0044C9D80F2356CC207\nss = C994B01BF35A43B4D115B784736A6782A5531CD7068025BED51036A2729D49BE\n\ncount = 13\nkeypair_coins = 4C04310BEA66305C6CA8BA6B8F61CA96257A67663AFC11761F13FB5C7B324B6B0A8155459118346A84683DE346659727DA4B64A1050C5271E968BA9CFDF6029D\npk = 3746054CC692001B531BC5A46A5CB02C910BF24519198C1A2F2023A4367E9D2AB4CF5887C756299EFBA70D9008FEFCA93A3694D7245EC4649BF578B81F07C1CB37776FFC9C9F228475E0A454639892D992503ABFEA8B82908A087761BEC6AB7D60C1892F41BF1F99C6ED256B64C78C93A316B31272D6F236371AB2AB77123EB732AB303A5E89485F702F528A38E1920F12EA72BBA8868C855E305425D84A5EDD11918B4CBBE5C0001A5637BF8C022128B81DE80509EA72A0F66AD870257E529A31CBAA39183F006A0FAFAC0FCD7781F1033257D766F78B4C4A9B10C5B8208A40368B393A39E7762467463B29A7BAF4307285B898AA0BAE485A63E739BA5A7A080215F4221217FB43177635AAE61F218850A1D924052A9C0626A7F11646076176215152B5508DB2C52DA7477B7E2B0659B999148A214A12B9A3E770998B1A26CC984A9A96AEE4C52B6343078AB8BDDACB00CD5C744750E379970FA94368429F763991911681C1EBCE5AC515BD5663308361E2B068332763752047EE14AB31B914E2D28457395CF61C69ECF3834D305AF9CA18DECC6ED39CCF69A79C379044CED7440A248963C269B6B58A049A8077E0A0981639D581A8C38A16F4296AF798CD2556889E9697BA8156714166F10A57C970C6131386D9154894D495DEECA298E33DE4B09A94DACC2CCA1D816708FA1B1B5E0A7E8046143FDA893F0B3EB2B60CA7A02878729768FC82D8B06A05F647916A9CB84B69CE532EDB5A7EC4ECCDA5A5A4FE8C52EBEC6584E6C0465529F57699706CB9A497C2E96757AF06783A4AA6A00087079803A4D834C7F5CB839837C1B5C1318BC21447791C4694365C401ABC1B8D0C8EDDF679A8AC0FDE11917376A7063339F2C2507AC02CCC512C7A75B00DE0701124CE3057A8C28687B2576C640BD0EA5422A534AA4BAC9FDE1735F35112C98528298218A1F051D54231F7AC5C4353BE2205C3B6518DF442775B9771AD19BA9252698BB6CDA102CAC759A5A0734CF07791A38C7CA940A86B584457559E7B933AC5750C4C43785EF61F5C121F8F4175570C7CCF864C4BB7C49C606EBDF7950E49433A841643F78273E117780A5E1E4CBF3E0016B45994C1821686D41133BB353DBA0FB8D7C10158B0BB58605F1C6B8806B2CE7AC3095356BF7B50E63AADB0E0BAA50199D80050DAE3266F228134A4C67FFC5241A757E0DC2485A64D4907934EEA5FE503653311C4EF24BF09FC3F0388C88ED9CF965CA8A109297BE60893559A0F3696E77B38D677A7E9F4C788D67046C28281C8A7F71AB250E77AD87B4F64237077D1A63B753A21B088C5149AF5D40B928401E4C407E71B6896B840D8F717E627532F3CC604E64B84204730C8330EA35228580B4B886518E9670D6100826560F9623045291EBAD1AE5FE6840C30CBE69AC54E62BAD8010C98C513956534BEB356CC6555C1C4225B7862C4651E55C4452448063B4C04E105B63DAAA90F9A6B0769B161A32F49FB64010A91E0B4410D86B7BD4C91F421CEB091A88ED9AC5E01C81527886897A8E6697C7571AD95B818F942A5692459F9979AC7A8078883AA8A445A5AF84B1B86C4C79A224A5C8F3A889EEE0C768AF29FD75A506AE75F9D578C26C8645BC8A8BF0441B6DA2BB27B6BAAB43031047C6B826FC98766A1661BE0626CD2C37864EB23F4240E5FB601DD645FFDD9898396273D3000D5486CDB67866751378350068A8439944CA11F9A5E7959AD43BC1F5CC8C741A220BEE733AED2A41EDC34FBCBC890A718F608794802BED150A0398B0A836A68CC0B58DD705353A41F28883CACB94C797B8CF8D23CAD9BB9A18C53B372C50AAAC124FCC07B310907988F38164F46D70305A381E4A1673145B0BFD8AB91A02C28B86E1DD95C365BC88BAB5E526AA9E30B7694CC67C45057DCE459A4F561E9C8AAFCBC491A6A7269734F0658ACAF753FFDF735CC0CB3C6A1C7E1589E98CC995A4A2B21288057FCCA694C0C00E7AE05D861B90A520EB34002732A2812368931A18243AC62F34CD7027FD80436D0454AED978115034407E30DC19813C5100C3E13A26C3283D4A72E254AC3F7E637D9435281180DD6FB35F0433788D470B6216B310A63D5E11B373A073DC8098D3950819937E7F66FF954CAAE52B3BB86C80B5680851170140A1E59BA0B23179F5E8095765EF7A13BD38F9FED3BF36477916CB802690A213C83F6624A067A5E2C\nsk = 212393FA68C40D1153EC29801F4472DB30B8E6516647CCCC6A160BDAC4299D515717D46BB4248673D11558D8AF5A6373720A9C96A4C51BF12AC506CBE51B560AB742EC684DDF86CB08121BDD412E2476842D051E3182C415C49B7184C9322242F70B63A960576296A8AF5451F5D474019C47E1822E2B1503D30CB8EA20B3CEC334A2114FC2381D910A98E633716EF9CA2F7939C7033BAB756371D6C2E906061DF822113C57DD5992C8826ADECBC9AE381931473558AC94FE8A19C9C4BEA3DC40DEFBCBDE234A211623F8D80BDEFC74F657A797098EBBE2B6B57438C2253F89D13BCBD5C0C4204DEF79BB37859E36E920768CA7D0651A7EC9BB63336698ACBFB6C9A384084DEFC1BF5D9C050087B691D40344E107BEF0241BD99463532A05B795F820213392CB16D668605CA86DF134C03C", + "4A7DF581F8CA7DAF732F5AA75146457163C3ABFA9C655F966A607A69AA1234FD1CA2A97213F280A10E84C4AAD26C0EA2CBA6773D63B39EF7350F6D284830EC3275E5BB9A318B03F87CD3F3BBA41632C0F9A1E65989B74B91B23A82BCC22D617AAF8B14C10D0037AB970B8CEBBEC0CB866BE5057964B7CAE6C9B3084A696602A25961DC53558C065D6D8B25248ABA262B1B635322BB82165A8CBEDE60BBF6B72459D47B64A964B3C32CA563BA5AEABA8ED912D81B2E733B4B4587A99AE5037DD21DFC9ACA5D869596E36547C0336AE774B8BA637622A597C05DCD43B092D938429886C708448B24A45A701CE9FB9DB54C67BB531BCFB82EBC15C127409B02A3350D6168F1296784B86F7310B9160681F0133A66356843401B9C0414D7F687AAE41A36857CCD3B26BF8C11DEF30769E30630169365AA3C3B53CC89D9CF47C2CC6C166F197C9E5C5B2408B03C41B0613703CC4872BE78DCC4B28089D7118CA1186BAEAC1355D5B9D4E45515897AE233A26810356A373DCBF6CD5F02CDDE8C468BE006DBC67E60A69908D1171D4A5EC1643B87059CAC80C259788EAF195F4FBCCFC4C0284BE822F94C2978FA119371291657B927F8B332124D61D17E21A36485D2C3F2893865F305589A8D048B06FBA7BB9F087F96D5785678A7F2D16C892CBB2273677ED0CB70F5729AF0A0403B0BF0608ACEC1CE32F2924535C16E8423BE0C8854E439EA395DD792399DC98AEEB7493B64965858BE35977DC053B3C0B3788FB4244CD3B49E40934F90B454C983DA38B2B5C88521347788F832E9C64A6CD012511234275C9F6C251442A87B496743333A161D8C04E3D78BE3097942AACCEDE09B9CB673E1FA261BE71DBEB5C4E1049B2B2A00311ACAD4470F8AFC85172476B949AEFBC0110A261461291B5FF7A74697C88AD40C82770FCCF68B9AD5382125879E637B7CEBC1AAE95B03219CF2488B2E3B2E51480C8CD8022C2092470236FE6042DCEBCA24CB9EE9379386D80E54C232DEC93B99B694E99AB5E41CC8CFB8928D5C08EDC7A707044B49B8A131986A3F37BCDBCAB5255B64B4905A93A719D01A32384A87543B6BA1A22DB75C9BAAD257BC8B9D8B78641B394C7AE064087454CFB17B307BC35A97CCCB842602990747D60F30D220ED3171FFD7A2B77049DC210E2377607B817F24C011DD736D7918874AEA4BCCF017FE3B303EB7B30E426099BB2C90A0B269E88390B5879706B163E1B27194AD68B26204B512EA145C43B029FF20898EC589C6691C7FC5857B387BB1916B407A641EC14D01C82DC7F4A179A3558D8ABC8AF937A3B2682D638E3881329E484B28BB1EA4A9B6A20097F3BC145345B032AB8051D44A8615C9780521429BC1007A28E3659433EA295789A004002FE980C2D1043761EB7416338B68F688221AC004512C9DFC7889241311F78145699361CC1C46D55A0B5C1303789A3C0C4C57EA1FC14B8FEE92798A188D165982DE273CD9970BE03279DBDBA64838AC127B78EF4B16C3105FEF180D0B936558AA005BFC0C2C5A2A00CA207A49675DB34B0029BA77F76EEF65646ED13BFEA533E5536683B2402A380B1426B45E1B83E498758393907CD4999909812E823828752D4B956925892A0D038D2C695CCD22BBFE0062B5EB0B9C370C54E31229067DF3D0B513667BE7E54F520839AF94C6D71A066309004DE4CF7DC98802232B77B10DCFB266DED346770B8DF09768A5099BBEF238F72B853746054CC692001B531BC5A46A5CB02C910BF24519198C1A2F2023A4367E9D2AB4CF5887C756299EFBA70D9008FEFCA93A3694D7245EC4649BF578B81F07C1CB37776FFC9C9F228475E0A454639892D992503ABFEA8B82908A087761BEC6AB7D60C1892F41BF1F99C6ED256B64C78C93A316B31272D6F236371AB2AB77123EB732AB303A5E89485F702F528A38E1920F12EA72BBA8868C855E305425D84A5EDD11918B4CBBE5C0001A5637BF8C022128B81DE80509EA72A0F66AD870257E529A31CBAA39183F006A0FAFAC0FCD7781F1033257D766F78B4C4A9B10C5B8208A40368B393A39E7762467463B29A7BAF4307285B898AA0BAE485A63E739BA5A7A080215F4221217FB43177635AAE61F218850A1D924052A9C0626A7F11646076176215152B5508DB2C52DA7477B7E2B0659B999148A214A12B9A3E770998B1A26CC984A9A96AEE4C52B6343078AB8BDDACB00CD5C744750E379970FA94368429F763991911681C1EBCE5AC515BD5663308361E2B068332763752047EE14AB31B914E2D28457395CF61C69ECF3834D305AF9CA18DECC6ED39CCF69A79C379044CED7440A248963C269B6B58A049A8077E0A0981639D581A8C38A16F4296AF798CD2556889E9697BA8156714166F10A57C970C6131386D9154894D495DEECA298E33DE4B09A94DACC2CCA1D816708FA1B1B5E0A7E8046143FDA893F0B3EB2B60CA7A02878729768FC82D8B06A05F647916A9CB84B69CE532EDB5A7EC4ECCDA5A5A4FE8C52EBEC6584E6C0465529F57699706CB9A497C2E96757AF06783A4AA6A00087079803A4D834C7F5CB839837C1B5C1318BC21447791C4694365C401ABC1B8D0C8EDDF679A8AC0FDE11917376A7063339F2C2507AC02CCC512C7A75B00DE0701124CE3057A8C28687B2576C640BD0EA5422A534AA4BAC9FDE1735F35112C98528298218A1F051D54231F7AC5C4353BE2205C3B6518DF442775B9771AD19BA9252698BB6CDA102CAC759A5A0734CF07791A38C7CA940A86B584457559E7B933AC5750C4C43785EF61F5C121F8F4175570C7CCF864C4BB7C49C606EBDF7950E49433A841643F78273E117780A5E1E4CBF3E0016B45994C1821686D41133BB353DBA0FB8D7C10158B0BB58605F1C6B8806B2CE7AC3095356BF7B50E63AADB0E0BAA50199D80050DAE3266F228134A4C67FFC5241A757E0DC2485A64D4907934EEA5FE503653311C4EF24BF09FC3F0388C88ED9CF965CA8A109297BE60893559A0F3696E77B38D677A7E9F4C788D67046C28281C8A7F71AB250E77AD87B4F64237077D1A63B753A21B088C5149AF5D40B928401E4C407E71B6896B840D8F717E627532F3CC604E64B84204730C8330EA35228580B4B886518E9670D6100826560F9623045291EBAD1AE5FE6840C30CBE69AC54E62BAD8010C98C513956534BEB356CC6555C1C4225B7862C4651E55C4452448063B4C04E105B63DAAA90F9A6B0769B161A32F49FB64010A91E0B4410D86B7BD4C91F421CEB091A88ED9AC5E01C81527886897A8E6697C7571AD95B818F942A5692459F9979AC7A8078883AA8A445A5AF84B1B86C4C79A224A5C8F3A889EEE0C768AF29FD75A506AE75F9D578C26C8645BC8A8BF0441B6DA2BB27B6BAAB43031047C6B826FC98766A1661BE0626CD2C37864EB23F4240E5FB601DD645FFDD9898396273D3000D5486CDB67866751378350068A8439944CA11F9A5E7959AD43BC1F5CC8C741A220BEE733AED2A41EDC34FBCBC890A718F608794802BED150A0398B0A836A68CC0B58DD705353A41F28883CACB94C797B8CF8D23CAD9BB9A18C53B372C50AAAC124FCC07B310907988F38164F46D70305A381E4A1673145B0BFD8AB91A02C28B86E1DD95C365BC88BAB5E526AA9E30B7694CC67C45057DCE459A4F561E9C8AAFCBC491A6A7269734F0658ACAF753FFDF735CC0CB3C6A1C7E1589E98CC995A4A2B21288057FCCA694C0C00E7AE05D861B90A520EB34002732A2812368931A18243AC62F34CD7027FD80436D0454AED978115034407E30DC19813C5100C3E13A26C3283D4A72E254AC3F7E637D9435281180DD6FB35F0433788D470B6216B310A63D5E11B373A073DC8098D3950819937E7F66FF954CAAE52B3BB86C80B5680851170140A1E59BA0B23179F5E8095765EF7A13BD38F9FED3BF36477916CB802690A213C83F6624A067A5E2C49CBE8DAA7DAC02D7795E907B037E2AE56624FDC8D7C6320F9E1E69DD0F6286F0A8155459118346A84683DE346659727DA4B64A1050C5271E968BA9CFDF6029D\nencap_coins = 8AF3DBB32AF8DEC4843AA90BBF43A5F13686D9738911A805C62636C111B2E140\nct = 5D977D9381335FF21B72E8250A7D86F523471A1F5B7AE57C465EFB766F6DE45A3492632CE93019861DAA7AFF2E224E088CE67FF515AD2C0FA878238DEE681932DAB1303E45820F3F4AD6C518D9E3BAD5CFB8C7EA260E762A2BD61E96F8242025A476BCC2F939F7775B7C05E5D41DBE7EB521B158A71AF96B847262F1E7D51B92715A5106CD4F74E598795582B97860B7629329A522C4B84616AB9F3EBC76B9BF8EAF18AD53B579466651169BFFADF5D6CD2EC20097615F74896681939E89F12EBE4CFF0DA279CF9744399DCCBC17097143EB8635A052604E18B7523B61355A96E1231D9E2A87060FC355CCC8F41A4B8E5B611B44A65C9F42FB26583DD7A2DB1C13B0FE7576C1B8A3D92D50BE401F08FE83F1E3078194602F01E745F3B976D01585AEAF04C35C80103241A7C6783B1203101814E50EC4ED14EA2093562636E1B7BC4EFE84D0E2ADB1B9153DE2E65B135D9CA6004C3FC472B5783C9F01000F8463177F86D8F06C6844E9D1FAC9871BC5190D03DAB666512C565A795E9D733E212D2FEB79C2B0B5377A7A2444156C210932C281D828E7150D0C67FD20B7EA86DFB815C4E990979ED6B64C92C8045367F21B4C897F109040F7869FA77372847584BF1B757510887975F2410F331AD1A42306BD57884B66E28375D47AE03B4CCF93EB4271C4B90CBA86CD14D226E279E0D71E9F114171F135A9490215849C3D4D1EA28D773BB3817BBE682E512D7C766F50D854D61C7D777D72307E2A9B7D00EB520BB238D67756D74EB6DEF9ECE5D348E32FED9092E34455E3F6BF29C1FFC2848C9AAA8DB10887738D2B063FB8566EAF322D73760D6A899A3DBA7F0C98D8A78F444FCF1430DF61A8AE6BB4EB2B56B4220F68C50C586824375F70B3B17C4D17213568055911D045721323271CAA1D65A214469914EA49E021FCB86466396EBBEC2099F0A0C612386AE327FC59B72A59296D09F47DC12654A3B0A40D2A2695A67258514999553BCB67603DDD25F6C0159E8355569503746CBFA9C5391AE376D004235FAF8CAD19493EF296231D5E520468D7AB35E1EAA19FE9EE1783BBA25215D3748235B2B6A73A4498F289343233D7CEBB995FDBE817E15CC501C09967978D4070290D5C10FABA8E11978C237E9AA76CB2004A15B623C0ABC3B8A3FDEB59B8FCBC765A09663B1CC65743DBDBEE53731C845E5EBF59526170FE84ED026917835BC78D3FF98D2818705CB739F728211AB424DEBCAD193BE80D33F096EB56954391EB6116F3541EF199BE645F811062D4FF793D074B131691E96B0A81E087C790237C78B03600C28F7C1925A328D733A3E15E43D9722B6823207E61E770264B111B3C8494826E90F7D31D80F6C5B6530EA77C0439D1A4EB72153A2946805FA42770F3CE994175603D22B490588626FBC112A9A519243BDE23D92C923A885ED42520215A5B11B494659E68DE832DB7493383A8A30DE2B01972F8A9209F264D213E4D7661799560FD73B45EAD62154C59440ED016A3A648DB7E61587BFAEAA7EB10278A519F5453CAF7F789BD4CB29D36C675E1ADE266FA27AA280D7899470AA2D9A15F5C0360F5B7010083EA4C5FEE3FFA5CB27115BE2D1C11751717E0A31294B6277C26FF7DF7CA62FEBF2901045CE53B19EE57CCDC1C16241023A740AA209FA711F00999D57EBBB5816", + "6D58091E8298E18B334227817ED6AC950F346EE14BBEAC79EEC34A95BFD537562F97E93B5FF635174EDABEDEBCBC4F3142A1CECBE9BBE7378F7C875B4FDCAC5C7FEFF4DC2FFBFA551BC5FFF2AAC2759F01347BC8215AB925D2DB008DAAF604D0E0E3DB61EDB0E42713E1A85808ABB08C94E64D8415A3827B8B87BC74697BCBF00B2D950C92B72762CEB01B38B9A723CC8F62BBCF25DC37935A24075108CE4C506348189F9AF618501F5E145C089263082518E7D31C8F440945DCB0B8B61C76F0122AE81DB7D62E0C39DF5641E9CDBE628EEDCCE8E3F9ACC37C457DFB6A79F866EF332DD83DBDB6B2328D585D7ED63F7FA2ED348B42BE615A90D8E6DABC83000BB4CCA26EB71D137E6DE818B99C5B90976A4E06B2B2F1CF403DAB1FF74528FD85861A0293DD321F4E00FDC39E3B293F9B3E52BDFF529F7C73E9896FD537E41AED7F50EA13344CBA0D44C2D6FE4A8B8CC1E8B5AEF69E21CAA27EF01E893D399F5800B7D42DCD38E952FBC7F3D11DA94E300E6FB8CAB60A83D1DC4\nss = 2B914624208A352C440E1AD5620B17E63FA1B420FCFF70899F77A723B80C535B\n\ncount = 14\nkeypair_coins = 38A0D5F41D7DC1896EFD1B45B0485634CEF149828751B96087A0A6DD81B4D58A08AD5BF30D584AE9C8425AB3C8F1FB9960752721CB2C8310CD7BAC84808BB979\npk = 8F57212B9B824D071BDBC45143B4663ADA61EA72608EA85B82B49075D3ADEBAA7D01BC9CD916728CE121C1FCBA51E42732D76575607D3E574C654043D717AFB96532DA23924FC124B01026A8F8B859F4BCD1ACA153133905904C3BE8361200ABC6E7AD42F236A0826C03475385153CF538782C7C8A469A43793C3E81ECB524AA838F18042F2075E0A8C58A5C244E14119F5B6D5538385089400E23BC1C106B2CDB59F287C538F32917C202FB682B9C5AAA5FA343A3BB6B147C6C9CE3B4E6E74096E0423DB52E7C0099963C5147C2CDC7101B0D01CCEB8AC64937186C23B0DA108F58F5271E1C5564A7AD07F62F93B4B89CE5BFD28462D4053BF6085CFC254AF97C05041B0494EC11DAA36FACF034210383ACF9089D371AEAEA975C489211184D55DB561C272CBA9881ACB88159C74BF9671147490FB7A4CBCDE1689EE7CD777B3F83C54850E8082E884A7C3B3333D7CDC6318D5347B0160A4B67E46A24D756105C09EA0043B66A74F98599129B52EDA51971B60B6C65867B3545139990AFF9C088B7B114C03D10972BC6E5A353DA85497B95C8BC5DFC156542EBA57E96CC5A4C3F2BCA53D6A1315C63136139CA954A86302CA788C27B4F82C57EA35BD7C31D5D543CAD66BC4EC9B93DF67D2B019E56E372FDD7808F4453EBFA3092676224670F79EC579307052832BB4F2150DA4C06E8069855573378377C44A9508410CC62C60AD1DB5F3077B911F76CC148C354733C0AACCFAFB85B0336838AC43F6152BB2845A3DE24807102A274D2B33F84392648C6F64AC85D304A4C024D88C0A13F0874231CC6D2BC8D7C99C0530087F61856C000180E78939148212D2B065DF99FA51A0E768995A8F3BD71CA82A1792AFC7C05F8B07DB30AA18DD25180B73D175382158A1C3D5135FDC40F2068C17ED11D32022CAEB404C68418E7BA2F352A510CC203179366249385A2DB3639809795CAB6AC0C11450220D96356BC6B45EA943C5028771EB8C58097966B4821BD1504BA1A1836251047C8468089C58AC851999B7BA017267C3A6E20C5223FE5A41A52044BD5103F5B1D31FB9B0105CCBA387CCA72B6FF1BB27119005D6A29A6200DE9DC2C19D85BE067793ED476B0324C24F10A8D106B55C63BB346B9DDF44B9A5A5349B766132824CC955214315267D69F82093642B9C2360C2B57993B1FF2C52D8118D62375AC851F5EB181A24BADFC165668E7A36817CF80F5873F87A6DBC3CD42C0B2BEE57F0E06C93A9807B0BC32DE588808EA0037DB50B3BC14BF98AFFD4400DC9566ED8022A4C7C34FC4369987904B362B1D04CF3451914E5909EF750DBC56AF138529A601A261932EFD626510A528643693EE79284CC3987E3694CAC828BA3964E637925B201E270744FD41190B3B1C088A79F31581B0641917DC161B000FB4A8281F6A6B7B1392949ACD277B9901637C3454A058589299C48B3401A2E0F788744081CBA76B5EC378BB83789F63962AE2AF1175176FF353C1CB3632BC0E206194F4B7367779146DF4ACB6D89652B946A9B9C2B61C0553360616F90E97FCB190C43FAA544891745CA9B97950384DE8534626914FFCDA63AD302C9F001A361BA7A94066C9D8B1F30111FABA3728FB143BD788AAF04491951D541078AA1069741352FDF8C032964717EA1791472A2069CF43DA46A40046C61C79CF4A7D1E093526D75B444A08B0CA984F2869026A4432244D662951DF52BA655AC54C502E83E8587E21C4757166B78244DA2B5364D3299981859CC61A67D02B32B19C8AB31B78146690690096D606BEFBAD0EE628103712F0F81E5FB4BB22E65E9AD1410504CA75D29386F73B53B0BE140A5B548A48B05313DE873E18B030D6F691322A2409F4603C7BC24C103111FBA7DD5ACB3F019E7CC22BC3F6B1E6ACCA131364D0FA0694866E2322281CD229C16AA82116CE6FD0187D4034DB33C2B3840DB1F42C5DF49825FA7C6BD62C31A625616270565A2FE3F4BB50C58597F70E6124C2F46A83C3FCB62AC65A5A66557B22AE31C7813243A1F0C4B905A31A40D44FCCE89372AB6FAF09318A876BDA6C3D4D787DCF088BA345A6814CB9A0825EA860AF29B81586B25832356C1F976370496B6FE7493E482E0DD9483E51372B093D37F29B9D1A83C209BD98A363DF8A3AE430BA3B2ACD5BD679C7D4995A63A8610DB945708CB5425CE0C3C651532A43D32473F236519D54FDFE0A815D\nsk = 69E774DB244D05192A2E064257F3A7B9B08941A2018ACA28C610B8BFAB59176BAD88B9A7781222CB03AABE6A4C2937BE24645A28C3A7931240503769EDD1865F72B44C4842114980BA64A59A647438C5476A700D0DC4A63277C4DC73A3DC9B59BFEB0DDF0817612AB73AB14378E93FA4982D15131C5016B36A639E4F689E9B6B2D2BB2501E130EEDF72AFE4861AE7CBE7E717B4C4001B78BAC719C6AFD40969392CFB1D918794B4988A7C03A23C8C5A751ED2C39D3E18474B43CF8B7814A5932224141FD543871AC102BB0A349153EB4A13AD57AC06602BFC6C1B4425284EAD058572A1C7C0CAFDC6756555B2033D2CE67F9155B16726625928EA26D13E2C0C0A66988EAB99643B4CF23AC68724CE635188DD8B3F2F421E8E8A9F838B707A16FBF27445A7555CFC052982CB002130CA3500CC428AEF14281564997D5F37D0A1C411CF73D3D2082E4C26C3BB7BEB9FBA2D9EC631F8953B3D03075318B4B720B4FB5B177D43C11E8979C640639136FA20B718C0846404B2F0604C55CA82F519241D811A697000DBCE1C743410E92922E83446410A93150178A4A2B52123174DB128B2EB97DF4E8A617D5876AB9977DAA8B7845537DB0A2B6E0599C0CC165438329D1251D6AA09D5B30F27040082A135C2B831B7722C416072C655C4D511E1FDC0284932849126D49B5A03B3593894BCA250B0D198601A02900C9406D8F5B69BEDA735A3512BD355DAD587BCA7330364031573B44EB9C2BD103BAFB7283C1B923AC3A41F0607D4B7B7E1E681AAC9B4090538B6B7975B9C5C64C6196577B7861CC88ED6C3365AABCC9B97A6A318A39A2BA8B17376509A563B58DFBF4584E6B00D56BBBEC309164982D1B906635A146C04BAD613C02C8E2C2D0597FC285779C628F3E290A84D8710745C444410F129A140358991D601FDC787FAF4506C6003E2130C2E03B3FFED39CA3B9BBAAA34ABAE794D4266E59A80EFB44528B2B234D70025767A5DEA09032767722C61E53423417458DE9E809A42257A27001E9C8AD43B775BC853D8475ABDAC86811D568E9E38747618AFF0B0901283A3913B6595CB2A85B6D42101DCBC90146AB85EA5449850BC9D8B1356F820EF365731F176EC0A0A5B7F35D9848C426F32D6A37046574A93CFCC043614E8708026621A06AC00582DA7B64421D4F50AAAC1BB10D6BBAEA31808712B891344B7B865243614CD706C2DC098B0A069FCEDB89ECD67DE8319C92F3AA0A9B92A1FA256302587A5859408B5CAB563EF1814CEA386BECD756DB669FDF87A003EA1E7654CAB281220B21CB234AC1C4B459EE48517BC838082191DE35B265D5264119C05CB500A05307C806AE8246128A8194F61024F5B2B7C410689150C0A8F68E1B3A51DFAA834B7C8ED989B351E683AF7BA73DD91E9733282FA2559AC53AA2819811190B5827000D98433241A3DA2B77F4E588B0088E3D3318CFD049C4777F7B08678144618E2406B9B6B72698888C4529B7E3B272E92620BB36792266C3DA4C9C403D1D49650B5530BE017C3B99C068890F2705702440AA0BFCA823059822C18981A03B16670E127386265487665ACA4C171E023621A853965A629757148E37833D31E453DC9B20191C94230833A31089C41324A94010EC097210F45592630D6C1BC28E09551C85C4677B015A7B957B1B4E0EB8886CD77835351458700EF5F170D1D0C81DC920E4CB7D16CA9FB6B8CB6086527106B5508996D24250026470740586EAC42011DB626EE74A8D7B6DBDEA073AEB5F6A8A9F9DE70CECC03B203A5BDB2ABFDCE8798764A88CC84CF9BA31008470904C46C523748A4B39BD46CB527501F617C43C83ADCADBAD1812AB61AA7DCF71B3FE4128FD087766E87344ACC8429743F5842784095D1DD3A43EB7A835044CB990165A8B52A9F43F6FCB3FD4E04CE699A4713C4FF2B19B7205C256F643CE050D467132D635170A4C6C854B45E3C65AC7C24F1FB70EB0B6AE852B3D526A527D41B8F562BF56AB9A44D4B00C371B4055CF36089C905BC8B42006098CA18C58B89CC5CCE6A454B02C754F07045E274B3A2A647B17533215C6FEE12E7E988FBE692C308866C3A133EDBBBCE1D4A06931B75C5561DBD87A74CC0197071F360185C680A14CE508BB280895CB2C4CE4007DDBB21A1907D2AC5D4E163C26A3C58F57212B9B824D071BDBC45143B4663ADA61EA72608EA85B82B49075D3ADEBAA7D01BC9CD916728CE121C1FCBA51E42732D76575607D3E574C654043D717AFB96532DA23924FC124B01026A8F8B859F4BCD1ACA153133905904C3BE8361200ABC6E7AD42F236A0826C03475385153CF538782C7C8A469A43793C3E81ECB524AA838F18042F2075E0A8C58A5C244E14119F5B6D5538385089400E23BC1C106B2CDB59F287C538F32917C202FB682B9C5AAA5FA343A3BB6B147C6C9CE3B4E6E74096E0423DB52E7C0099963C5147C2CDC7101B0D01CCEB8AC64937186C23B0DA108F58F5271E1C5564A7AD07F62F93B4B89CE5BFD28462D4053BF6085CFC254AF97C05041B0494EC11DAA36FACF034210383ACF9089D371AEAEA975C489211184D55DB561C272CBA9881ACB88159C74BF9671147490FB7A4CBCDE1689EE7CD777B3F83C54850E8082E884A7C3B3333D7CDC6318D5347B0160A4B67E46A24D756105C09EA0043B66A74F98599129B52EDA51971B60B6C65867B3545139990AFF9C088B7B114C03D10972BC6E5A353DA85497B95C8BC5DFC156542EBA57E96CC5A4C3F2BCA53D6A1315C63136139CA954A86302CA788C27B4F82C57EA35BD7C31D5D543CAD66BC4EC9B93DF67D2B019E56E372FDD7808F4453EBFA3092676224670F79EC579307052832BB4F2150DA4C06", + "E8069855573378377C44A9508410CC62C60AD1DB5F3077B911F76CC148C354733C0AACCFAFB85B0336838AC43F6152BB2845A3DE24807102A274D2B33F84392648C6F64AC85D304A4C024D88C0A13F0874231CC6D2BC8D7C99C0530087F61856C000180E78939148212D2B065DF99FA51A0E768995A8F3BD71CA82A1792AFC7C05F8B07DB30AA18DD25180B73D175382158A1C3D5135FDC40F2068C17ED11D32022CAEB404C68418E7BA2F352A510CC203179366249385A2DB3639809795CAB6AC0C11450220D96356BC6B45EA943C5028771EB8C58097966B4821BD1504BA1A1836251047C8468089C58AC851999B7BA017267C3A6E20C5223FE5A41A52044BD5103F5B1D31FB9B0105CCBA387CCA72B6FF1BB27119005D6A29A6200DE9DC2C19D85BE067793ED476B0324C24F10A8D106B55C63BB346B9DDF44B9A5A5349B766132824CC955214315267D69F82093642B9C2360C2B57993B1FF2C52D8118D62375AC851F5EB181A24BADFC165668E7A36817CF80F5873F87A6DBC3CD42C0B2BEE57F0E06C93A9807B0BC32DE588808EA0037DB50B3BC14BF98AFFD4400DC9566ED8022A4C7C34FC4369987904B362B1D04CF3451914E5909EF750DBC56AF138529A601A261932EFD626510A528643693EE79284CC3987E3694CAC828BA3964E637925B201E270744FD41190B3B1C088A79F31581B0641917DC161B000FB4A8281F6A6B7B1392949ACD277B9901637C3454A058589299C48B3401A2E0F788744081CBA76B5EC378BB83789F63962AE2AF1175176FF353C1CB3632BC0E206194F4B7367779146DF4ACB6D89652B946A9B9C2B61C0553360616F90E97FCB190C43FAA544891745CA9B97950384DE8534626914FFCDA63AD302C9F001A361BA7A94066C9D8B1F30111FABA3728FB143BD788AAF04491951D541078AA1069741352FDF8C032964717EA1791472A2069CF43DA46A40046C61C79CF4A7D1E093526D75B444A08B0CA984F2869026A4432244D662951DF52BA655AC54C502E83E8587E21C4757166B78244DA2B5364D3299981859CC61A67D02B32B19C8AB31B78146690690096D606BEFBAD0EE628103712F0F81E5FB4BB22E65E9AD1410504CA75D29386F73B53B0BE140A5B548A48B05313DE873E18B030D6F691322A2409F4603C7BC24C103111FBA7DD5ACB3F019E7CC22BC3F6B1E6ACCA131364D0FA0694866E2322281CD229C16AA82116CE6FD0187D4034DB33C2B3840DB1F42C5DF49825FA7C6BD62C31A625616270565A2FE3F4BB50C58597F70E6124C2F46A83C3FCB62AC65A5A66557B22AE31C7813243A1F0C4B905A31A40D44FCCE89372AB6FAF09318A876BDA6C3D4D787DCF088BA345A6814CB9A0825EA860AF29B81586B25832356C1F976370496B6FE7493E482E0DD9483E51372B093D37F29B9D1A83C209BD98A363DF8A3AE430BA3B2ACD5BD679C7D4995A63A8610DB945708CB5425CE0C3C651532A43D32473F236519D54FDFE0A815DA333D474BE9BACBEA4C301148BE2DDF13C3C25D7E4F52447A549A27B6D12710D08AD5BF30D584AE9C8425AB3C8F1FB9960752721CB2C8310CD7BAC84808BB979\nencap_coins = AD44643A608B78BECE50B8309F573AAC3DA68125CE877E8BCBDCD51762AA0A9E\nct = 1EA27E85C7F534EFBFFE15ACE54E4D26A8B6EBAC4FF3D535615CDB8720CAE17D4D5C24567DB28A75B709D405B4EC521AD09993A20A42C3D1F09A35DDFD584952B53181BE39ADC33D84989F569D6509C64787D8CBDEAD4AD8969BA089AD34AB404A1C73380269034BE5661B5B1FE655F2BF9BB7051AEC2AB8113BB60C5DE847016452AA60EB0590117CC38604063FC6D1405D59B15B4F6A940A3F0657EE197BE2D46F07E68574B405D4A0FB2EE8490168E0A80F2D2194C6D74F347A8FF0C90C1B3C1FA4FDDBCA420D49D5DC0DB8F1A6CA2C92C30BBF771B57349D1095CACDC62FB5C276FB000C09757A09F274B343B40E0F5FB08EA7DA9C5872543C260DCFD1C6B72BD91204D85AF39E5E26648DF8EE4DDF2FB8608CD910C9BF884BCF430220BDD3D71CA88FBEAF260726AC51D905A33D6BA8561DB1FE401367DA06D0B0A7823A70E6CEC3B55BD7CE8F3BB7299716F84AF9E182DDD64FAEC35416B60E8F82E65A40F70527914A70B8B37A7C7B24F7EE2A020DE2FF6FB52422C0AB89E961DB6A73858692613EC81F48E27E349A5FA4ED66C769F6BDA339C35F381014D590244830F1E4782E5387BC4FBE43C4342A8C71962B6EA99B91D48805FB966C2962BFE2E3352D97D21F9EFB9F50052B0012519E149ACC8A0AD576F819FEB883DD2424407548BA277C0144B66303D6BA20CF385361374F4C299463E683D7E953DEA54EC507E76ED97E8A690673FC935A9681724E45AD100563454E3B624A62185B27F786253064388E944D9125EB12A74DA2EC07E00D9D43E18A1931E04BCF9411340096A694379988494A7DACBB4C9540EA6AFA1B0EFFC1BD9913CC8793145F32519FE84F4C7A4AB5BE46BD1B2A54FDAB7534B976E073BB0FF44EB35639B95ECC8B042203502DA1A39750E0016492F7527EEAD6DEE2804D2E3C2A4434E13A5C666B03CAF8D39419933AD28033DE7B92BD09ECA6AECB4A80CE86E3F674B4FD1B071B4732CD6CBABA54C08538D62216E53E637D1242762DC036E94E73C3C1D5231A13212EA2A16F1299D171C61E37B2960253F3606522D0273FA44DEA15C67346D016C44AD8C08388D5E8D11C7C6FBDF057CD6E5FF219189440D73F94E72BAB25F51D7D1DD425953C97D04D3707A579046B47E864ED4FEFC661125E744A89692ECE95BC3BF528086FA5356A28D7CE01C9A9FC82DC317938752AA8A94CDC2330ABB6BE1610EA994C4DFA4199D43F85ADAD7C8B2A6473436FCA055FD2D73932BAF7CBA243A65D29B5A4BA0E94BEADC6B39719F97158C198ED63B70AEA815CA0E146C577662DD6859306B509061056D5D6BA3951BF0ED4C8D7B341D62CD817668B621259A550A92DBE275AF76535D681BF0501444BE6D747B75F8227454815A02ED22F4C5EF03223CDB657E958EF76A1FFE6F51DB5C54D7F189B3457D284354E8223960574A8E796C37B7C98F1AF68470A001A57107C5E16D807FE2AF924C453DE16F79433369F9FD656C5BD2F205A5309AD1041A59C4A790D3F6F8CA1A2DE88391D7B0E8493663FD5E8552228C00B9FE276AF330FF69F323E4427ED38BAB9D628BB3F9C43CAC03192F29C9CC49BE90B626E71001CE38A6D5DBFEE0619464936B5B35DEA928CD17642C200FC017788B144A747A809AA1A014D6AE73A2DCB8F65A0629A24357C3335DBAB41FBEC5BDE8CA87960F2AB947DEC45218CFF2EA80A1E1E00C3619B209C2FA9C772442A409924EAB2A497993B9098BA4F2C3AF56A42DFE66E6CCEE832D081238BE3108169FF8A5C5893CBC0B9DE509FA5244DBC9D2C04535560A9EA38B1CB225082149CFECC47E036F41F09E1BB168DCD4CD9063D1E12B509E16819D8B074AB99EF24B8FD90742E1E15387C5EF26275A6327FA17DF51D9C15A56AC0B98CA80FBCDCC6667C35556BBC051CD4C2E369DBF33505BC63BC07746650D3DB9EC247D1B8463E5288C2953C988DFF78CC7D8844D8D9E2C1150A71DDA77FFE9FB228354157E5DDBCA870335A02A70283823C33C5B6CFFCB5A3FF8B0CDA2042D9033BAB0281BA4DEA0E4581E5552260EAA7DE203F06A23239375994E5900BC6E909C363427E565E814F5452C0DC89219BF976BE84FAFF4FEFC196E6683CBA6A5F935F82E51F3B8339F69A278858D35BCDD6A25584A3AD337AE427E088E24CDFDE3B550D0E3FE5572139017C467F6882D5034EA8428B95C6AEAFEC892D77D8DD4B61E5\nss = 0D1137327F6352B00B4DBAB2BF5C7C189A9CBEB1C6D096C230EFEE2A3F19AE4A\n\ncount = 15\nkeypair_coins = 97B5665676E59E3538EBADAA8CD50DF1F9FDA1502D9894C616A946078E56B62148B1985FD7938595DAC8AB776701CA1E9FEF47350DFC45355FF1E83A08BFC3A9\npk = EBA27CB3F055C38CCB7A5A78348CC39E6039A1126D369495687342F9B7C7C88A5F0D1C2B15E68366532F17D6CA8FD85D8E9249EDE8C5CE6572D816657D5755236AC059125743772EA7EA7F42785B48F62974A7B7270C93B4C6C02CCB87E54BA64CAA6967176E132AA33921384AA9737AF3A3E2D881224629A76C50712BA306B60FC88B85DA88B716A41509A95876355FDD49A2EB7130600ABD277810301062B0B9BE3C97343E345E8FE25F6B58CB16C90A36830452547F4F658110F0745329406DC8A698A71449888E2554C5B039076F67397A94CD13E4B9F9558BB0464A39074FB6E556494032B5433D3DF005CE4A1145F0448AF07A089447CEE578C2AB5D090A2B9CEAAB2B472420A56CAAA04387D7969FD51A1923C14959834B905617C61A68645AA51150F0079EA64BB16A8A8FBF701C9F5CA74A1803519792AB169976F886CECC709AA90C408720FED90B58D006F2F50D23C4BAC1432176A47627F6090A788403042EFD5A7D1A22C793AA8DD9A91E381ACB0B5625E0FC203FE0B4C7E816EAFB87CD774A5053036AFAB5B293C23598932ED3658F8453B958C1846C61C4190386343435B04C14EA3597F84A22F70124CB293781ACCB8BA008425149643E52CC124969929721486B42AC9B592EB1C15C4F8C6BBF901B8DD419C17C38D68BCB9D519E16021E62B211C6EA00E5622486E41F81F6AB58C49BA5729C91B2396F7BC9CF8462AF8B06D1C28B0CCA2FAEDA8B829943F64456BD214B7AE57061A325BB9C097B656217D65B36F575D39C11F971157ABBA074ECC1BA302D5318085E13AED84AC8D16652361B67A02C41AAB82D10FC339C53B3E096AEC1E1276A572CE1A5700C034014884392CC6EB4F9AD80A52B711053E2245537E76ACEE36F530610B8CCC4CAF241A0F3C1F8195CAD80C69B644C45F68BA7C448431705B3E9BB84568C895B56351A09BDD8AB2763054384C116E272F5D0A7F1F158E5F68ED0F47F625CA3732729E53A87D223C1CA807D277B726D0C7EE938667FF1C4AF519AB7E1446A077B6045995D3001FF289014E43C7AB738F422AEEA3269C878B3A7D979AAB698C4B57462339703386CB4D0BB0598272349B04230C6B6708C894BB409755DD4E09FB8A84E6EE678C896992E845908B963FBC407589ACDEC414546A92B1DA98C294B23A53CA79A27859BA787A7689202833B87893FDE1B230B936916BB038316B025A5B1039A775B055D6B26797482672F02985E39C88911A4540327E3680C574150B74331EC63076D645743C677ABC255D0B11D9489A35D65448A2C1BDE4228B4D0CA03441D90B57D5C16B6BC6562B4D22E61E167861CB62EFB1A43F008877A2895E95B4E0428086C7C34C146F5FC2C9BABCDB0F74C76680A62A5C8A82348E7B396B7D95BCA26169FFB90125B765D104ECBA32D3291A38079567A599644CBB4D36549F26615FD31A6232688BD1694D6C72CBF04C91638AC4E7C1D8BE2CDBAB51FAE70093AF3272B885E56F62BFD925B02D099602110914A50D3431F10A803608806D9257BDE17123E939DF7E1951883CA93E1820E852F2B511218152011012B8ADB46D9C400EF099AD3E412EEA953F7EB7E627A762DE88E7AF6AE0B832190B91950AA40713521E0F54955F2039213C16A604B29CB6DBA67B89947BCD81B22700569EFB06548944DECD13BD133877E44AE8480C46B6B547D72BB1FFA0F88FC3B13E2A48E5B490301D00DF251E5691D3629", + "5A16DACEF03C7974341EC3289FFD87434854062ED9475E758B6C297ACC679730E291CBB52562CB9408B07BD70215AED0A1034C6FCCBCCEC88B72E44944AB79592E659865F019280B8723C578096220CE5A0930DAB0075BBF09B952C217B4AD8B707B8106F9F5180EB514176AAEDCC3BBE0A9BF876895FFB1565D61B01F0A3F2D9391C56B6E6A9363D434B1338456313472AD730CD9374C8D81788FAC62D68694DF05BB88A6613EE14D13CB6E18F69B372C2944A7A76D3A16157686AB6250A98B42D50B15AA8BC9647A480C7388A78A78D9635460934C7EA57C4979C9B48C5D5B75CE132814B26C0FB06AACDE963010D592AC173171B55AE4EBACB3777DC9AA8021FC90D5D286D2769FFB833812F6A6E806BD70C74F87AB6442257F56DC7881A781EDE06A48C1383938A9F242264AA93918BB0AC3F8119A88D1FBCE1D3419BEF67B6694D9FA1BB309CC61C819176964DC\nsk = 48C78CB714B9CF88A8B317A6FBB681B8F47D56524122156503823B600236D3726EDD9087504705CB4698A1515DC0D80B3F87C63D575170F45D121A848D897C3C0063DFE9B2D616A96552384FB72D6226A193F90E15B364AE667C34BA27FDD0AC0DEBCF450578C6D182DA365D40786522C37B54E0126ED7B3C6BCCF28F40770F23736B394210B67EBFA72F6B27799FB1F6E48CB7407261A86884621C529974635B35F5B4C530E68BEE8CC213387B66A4127D01223180067A2EC24B2EBB579F74BFD5417FE995BBF816737722912B5B4DBB4C938D0686D1C2A44880FA7231944C195FBD67C67E60861D169DDC41F8150B52A68C14425190BE2ABBCF5BABB734AA03538899678D4290738CC63EEE611E4344EA73B9C41F36C712A4C6C72422000CB93E144F3C588A2299D5704CB347B90B2905CBF69CF1DC5C670909C478094E88C01BB3B3E4FE246F8DC3C62DA37BB13B6E2046911D85D5790869FA4A54FF16794620480919C0DD74B9887BB5C125C34D76B3527A42A46B689FC4C57571AF13C44B7D30A041028E97C0A1E50621567374DE7A4207ACD4CB18417C7984645CF4F2B5A5434BE8F119798C0760229301E14431B0B652C643C0EA0CCAA13CBC6FA6DC8D348B908B78343978FD5A0EEE90CA5104184F33F107837B3EC667EB207000570DD33856939BC8BA671B3731EDB2A94596A8F2F37BBBF5048087091FD2AB164F5C6A8F92F65239F08844ED4F605E3BC1BF780877EEB3F4C85BF696C691F85A947461331AA33B15973AB4923F429C7913731BC025539232217F801EC7078E2F0AF3EC7494684BFC40B4FF31798467746F60BC9BCCB5B1E397DFC6165773A965E55034DD1094966694D7806F2F505CEBC3B3DC307405431FCA21614089C633B522510A5FCA73462B32FD69200DC614C5E88454F181D845B19B8866259A2372BB3361B9ABD5AA278B1773057E26108BB020A9610BC19AF13454DF46B4FB5A68C3E7ABA6E7197AD63439C7252CF9507E32072E437296883C93902250165A1AEE8BE0CE6ACC2029E10E97536EB958B691AE3E3AA9996986805C6D1F6356D26C1E63C550381B292FB1B95E183CA933D5BE1BAF6294C4B248B4264724712B2A2816ED3D09042287EB8A17AD6C86255AC492F53A21EBCC19B3C8BB1E78F58BA98BC8AA77F6A5CB90C0456E1CD663137E11185536B02D8708644539701B193BA52258064B289D053404BC78A397AB86895BAF1934E8B2F6CC3AE48869BE7422E581A6FF748519BC30BC96C716B0A24A02679ACD5151CB2A0FA127C81EA513C3CCC3B84A34025522486CE424BC04C860EDC5758AA990FED372DB324614FE91589D78ACC88C43C2643D540A509F090EBFA6214832C76CA982FAA1CA4465F9C14AB4E6459F072558946CEBA113B5FC7024A364970C72933331A6A4B0D4196B9E6219595E229F3E28FB2D5C6C4C041DB226AB611B04C3A80FB5A7F15E08DF3347DEF02663AA39409AC4E8C8BB0934B46B6A8816CC70C8C0B11A7EC1CCE57BF5BAA30E69207D7E59C9E386D5CF7863C133BA1B510F5E06C4876BA7849611BACC369B039EFE173DF6B8A22469E1F200F2AA53FF84390B88302D9F9915C4B8257754B3423097E7C6B0DF0A71B2162050A67BE291B2DCA0460A455A68068C3DA2EC3C5C4FA3A272D45B55F58A01F2A8DE5C243AE791C0FE643BCB35817C154FFD29315CC7B4C3843CA4419146422F63246D1FC543F24A884839B4788C10F0846B3FB87E98BC4FF634C05C60F250B8C2BFB46C50C8A5CCA5CEED866BADACE5A8C88A2E2590674727F969056569B2B0615E641931C3B94A12A715925CE33716A985A5762544AF3B442486B14316C9AD100396E9885C7B0BA8C67621B6C1E90C13A248A3BF6C0BE9F96601572C87154041878891A2A5448AC965C2C7C283166AB39AB1576AD253491AB04A11B824FB6FA516B6709F57B98A610B94B2A2B87F50480640E1084A6EAE10FAEA01C281B97B8ECA8575CC00A2020E1533C3EC30D9A55883EA9C5B2681FDA938F1536546CC474E5E37A05EB89AE4A822CC6A32B8C828EF782065695DD630063CB97E953B04911AAAEA90ABDC20AF3695492B49B07C26F79F59F32D74674F37971D2668340A4803996358C59051685CF15410A72657355692816699CEA982CB364EBA27CB3F055C38CCB7A5A78348CC39E6039A1126D369495687342F9B7C7C88A5F0D1C2B15E68366532F17D6CA8FD85D8E9249EDE8C5CE6572D816657D5755236AC059125743772EA7EA7F42785B48F62974A7B7270C93B4C6C02CCB87E54BA64CAA6967176E132AA33921384AA9737AF3A3E2D881224629A76C50712BA306B60FC88B85DA88B716A41509A95876355FDD49A2EB7130600ABD277810301062B0B9BE3C97343E345E8FE25F6B58CB16C90A36830452547F4F658110F0745329406DC8A698A71449888E2554C5B039076F67397A94CD13E4B9F9558BB0464A39074FB6E556494032B5433D3DF005CE4A1145F0448AF07A089447CEE578C2AB5D090A2B9CEAAB2B472420A56CAAA04387D7969FD51A1923C14959834B905617C61A68645AA51150F0079EA64BB16A8A8FBF701C9F5CA74A1803519792AB169976F886CECC709AA90C408720FED90B58D006F2F50D23C4BAC1432176A47627F6090A788403042EFD5A7D1A22C793AA8DD9A91E381ACB0B5625E0FC203FE0B4C7E816EAFB87CD774A5053036AFAB5B293C23598932ED3658F8453B958C1846C61C4190386343435B04C14EA3597F84A22F70124CB293781ACCB8BA008425149643E52CC124969929721486B42AC9B592EB1C15C4F8C6BBF901B8DD419C17C38D68BCB9D519E16021E62B211C6EA00E5622486E41F81F6AB58C49BA5729C91B2396F7BC9CF8462AF8B06D1C28B0CCA2FAEDA8B829943F64456BD214B7AE57061A325BB9C097B656217D65B36F575D39C11F971157ABBA074ECC1BA302D5318085E13AED84AC8D16652361B67A02C41AAB82D10FC339C53B3E096AEC1E1276A572CE1A5700C034014884392CC6EB4F9AD80A52B711053E2245537E76ACEE36F530610B8CCC4CAF241A0F3C1F8195CAD80C69B644C45F68BA7C448431705B3E9BB84568C895B56351A09BDD8AB2763054384C116E272F5D0A7F1F158E5F68ED0F47F625CA3732729E53A87D223C1CA807D277B726D0C7EE938667FF1C4AF519AB7E1446A077B6045995D3001FF289014E43C7AB738F422AEEA3269C878B3A7D979AAB698C4B57462339703386CB4D0BB0598272349B04230C6B6708C894BB409755DD4E09FB8A84E6EE678C896992E845908B963FBC407589ACDEC414546A92B1DA98C294B23A53CA79A27859BA787A7689202833B87893FDE1B230B936916BB038316B025A5B1039A775B055D6B26797482672F02985E39C88911A4540327E3680C574150B74331EC63076D645743C677ABC255D0B11D9489A35D65448A2C1BDE4228B4D0CA03441D90B57D5C16B6BC6562B4D22E61E167861CB62EFB1A43F008877A2895E95B4E0428086C7C34C146F5FC2C9BABCDB0F74C76680A62A5C8A82348E7B396B7D95BCA26169FFB90125B765D104ECBA32D3291A38079567A599644CBB4D36549F26615FD31A6232688BD1694D6C72CBF04C91638AC4E7C1D8BE2CDBAB51FAE70093AF3272B885E56F62BFD925B02D099602110914A50D3431F10A803608806D9257BDE17123E939DF7E1951883CA93E1820E852F2B511218152011012B8ADB46D9C400EF099AD3E412EEA953F7EB7E627A762DE88E7AF6AE0B832190B91950AA40713521E0F54955F2039213C16A604B29CB6DBA67B89947BCD81B22700569EFB06548944DECD13BD133877E44AE8480C46B6B547D72BB1FFA0F88FC3B13E2A48E5B490301D00DF251E5691D36295A16DACEF03C7974341EC3289FFD87434854062ED9475E758B6C297ACC679730E291CBB52562CB9408B07BD70215AED0A1034C6FCCBCCEC88B72E44944AB79592E659865F019280B8723C578096220CE5A0930DAB0075BBF09B952C217B4AD8B707B8106F9F5180EB514176AAEDCC3BBE0A9BF876895FFB1565D61B01F0A3F2D9391C56B6E6A9363D434B1338456313472AD730CD9374C8D81788FAC62D68694DF05BB88A6613EE14D13CB6E18F69B372C2944A7A76D3A16157686AB6250A98B42D50B15AA8BC9647A480C7388A78A78D9635460934C7EA57C4979C9B48C5D5B75CE132814B26C0FB06AACDE963010D592AC173171B55AE4EBACB3777DC9AA8021FC90D5D286D2769FFB833812F6A6E806BD70C74F87AB6442257F56DC7881A781EDE06A48C1383938A9F242264AA93918BB0AC3F8119A88D1FBCE1D3419BEF67B6694D9FA1BB309CC61C819176964DC35D109F57EA2764642EA3473A4F192CEDFBE153A37F131CDF447B60E92310EEA48B1985FD7938595DAC8AB776701CA1E9FEF47350DFC45355FF1E83A08BFC3A9\nencap_coins = 4FF3F8A7536A4C7D4BDEF0400ED1B450CAC329089B1443BF148FEA0A01398912\nct = 83B9C36CEF6686593CEAFFDABC9F548A5D386B9B9E8A57599FA181F71EC4A825D3D57381DD29B16D604DD394635DAD7547B91DC7B97F160628F96382BA59EF0B043194C7968F1F659300B65EFF7DA5085075FF86FDB27BF6BB046C306DB84B0FF3FD18EF7615E38B9AFE06E8FE518364DC3DCA1706EB5D3DC8F5048F50B9B4C7D99821D635346A8EBDC8E3BC8C6DA4BD3DD0937E3641A9C00FB42699B1E0E2C06F1F104E3DD462CAFFE112B013D260DBDE718C6BAD8C3E303A86B474D110B5CDFAFA06643656DE3B3B86E30ECBCABE98D35E3D80ACB2316D391605DC08EB4879C9E817017E77DD37D324862496D097AC11861D9AF3F53018741952E4F449F3EB025ED08D3F1891AAC168268CADD24913BCD94DDED406CB35C681DA4BA285425705C950C40D387D5862BCC823674E6680A0C249B70FBD1C3EBFD6BE4A7581ACE22EB7EE7E3730C829900DDB2330BF6DC360123A8F895E00EB9E37C76EEA4F0C4A5FB7FCC31EBF6D054A91BD36949DE91576FFED6EB5DC196AEE086255A49386839782CF0E6A93EED16DB06EA4CD5FB924B3B9605CF58A10EAAA23E48B280147D1B707D39CE2E902FA6D93359308E660BBE8F9AD173385668D376CC334952DBFFC48B124589427D4261A63412D72180234270E673D31A1BC4B9F303FB1CE9B5A96431EE8355281ADC6E8C10371B9B95F1E3FAA2C0D5E5FD38E9EB682356ED3EDBFECB87934B0B739FF8C3DF3434315910C9AF9454EECC08E65313F6EDE74F5DB1C65557", + "C0168DBA4BE9D23A72F729E68ACE0454BE738217601437ADAA6E9FC70F1520EF51E8C3A9486ED57463CA980BD511701D69FABB9439D5C3BB0A5DAFAEFD64885010645F98A3EE85C90CF3BF59CEEA7BF3B5DF4FF02FFBE69DD645A062D6DAE3B07BE3613C910B0A54486B6E75CD16F38F2C161129193F23FD2998A3DCCB2B409BC987E7B8336127306901D882CD8B9EC9AF862D294A6D39D625E0D6256921AE8A00DCE8B0F3253F960CA0970C39013DC544BA23622A98E96D8C0ED283DBB91CA62411C5D30BCFAEA2A9A08CC5E1738C41B6D1328FC5C4C97913684E1430E7DCDE548C45687598F76A5CA7DA3D3507D451720F6914797FD145538CF4D85FED406EC9F880A66B1F4F34E9E3AC0C6766C5405B7F344319286B64FE81014544B6E13C3E9297FB5E9B0B4C46A3C29A45E2E38D8D2523BE08EFCE15AD9254BC9822E383CFCBCDB70919E61A7F060A8F016E504B1D4CE697B348F73999282B2920CF9BE5ACCF6FD0991DDCFADE7D7131C24A2C5F87E7B182C879F4F433F6DCC6C29FD8C37273BB95EE323522FD83D6D7D347E8E23F6A4F5A1A1B2896E0C2BBAD99FA686919B2726FB3F7BDB3EC03239D768D88BD004B9B32EA4D68572212209E53141F13C46B3444FB32D3C1E8683C7C82451ED9835A976BF7591168FCF3DA72175C715CB1976B32A586EAFFFDEB3EFCDF4D1762293AA5B7F57976420025BFB7F162DC5F4F6D7AA0D88AD6B50A5497E374A6E3A8EEA10D554BA6325AAD293EFE29547C72E6842442EEEB749ACDE85147BC5C6660335ED10550CA106A7D983C9B0F4638E1AD581F0399FF4DF85ACB3580134BD97DF957D0A26F659AB9F1E936A90922D553E0DD75B61B124427820F00D613BC2DC9C871FA1124567F2824F3726DC59760392F46F43A8FA4D57306836730CCB46A7E32B88D7E5B9DB0FBB751D4E950EE8EE866D00639A78C80D94F5B47F0AF8FA599218BADAC83B95687206AE8AA98AE4CDDC6DB0B5A86FE92A21D42EDCF5E92CA879850E863ABA8EE0A6444C06226E7DF8BF2321196F23EBEA895F3364127CDED2DB6CC4A9A8B2EDA007119E5E76495B1307F20D940EFAE76CCC705AE7435D9D114B49F15F7AD17F7EF3330001A648AAF58D6B240702342B1DCE42E433EB001A6DF9507B30A6AABC0DF5CD46B1874D4C3BD37B5A90CB53E09016916158B6BE6BB5D326F709F56064DB717083DC9FEF21B882A7C0A62F489B937D37CEABB97C2B034F44E4DC3F97CE6007F358671BA5A5B95BEB7D80F3E6BF5F9EC1BAA82AC9B518260C3E6D7E9AE606CDC7B68CCD164596A1B3C85EC66F62EA533C6E3CDD7A2F58C3712578E2719A9E7EDBAE28450BAEDAFCB60EAB51C14D2DA09AB721B34A4DADE1C1A5CD4F0D731346D39C443155DC96A14C980FA6B63F60CCBD776E4B72048C28728DD24C7D9032BCC16966D979\nss = 9EE493F9D10799EE58372DF79A487C40F901CC87F63563705F31C619B54DD6A3\n\ncount = 16\nkeypair_coins = EF99224A03A85A46EF115474EC5B5D620DA6795D6EFCCA4C9135D19958A9DE6285C3A8B3732DB34F4CD985B65E078AFE6A735B53F4BC36D4762A3E45D1DBCB74\npk = EA9213F8FB3AF02330F61AB15D3A31CBF57898F016B419430D790F4BA8A594E2CCB6483E46E5474518CCD033543065CBE6A5755E97790C4109A5CB18B124992D885493E03A262C3DA395B46A069B9154C81294A7DD59BD092B69ACA326220475FC792AEB639CCFA62CB9C549D28736A944AF91119AD865C8E13700CE9482AB6B89FA7794F9D273BAB516D142455A78675E21A8E74CB13876C82C738A55A4649304CB8F9CB2DCE220C1BC06DDB0C5291595BD5867FD105236A91D3D61B25950C4D991625D3AA711A2449D118A51A88A1C4C17CA680C3CA950D141A220A0271A2B0593DB333C1CCBE6A1380E465FE60404055BBFC511895861A32433A7037A00CAC8197AC11528011E4ECA80BBD921F2BB8162C0580FB94207C89471DA649EE7CFFA4293C4B6BADDCB88EFCA19AB6C6E71F54814B8A2EFF67ED476088DC30727AA0A47B81F9390BDFB93C3A8281EF3B92BE88B130FA739023ACA492549D42103663B97D7318C01E0660696984AA5C5BB1019024862081BA8D464B2D10AC6096B5B04B5CF867C51141A785A41A25703627F0A51BFA82344723C0BA43184A77556B8CB107232F480488CB24F8BF324BE8116FB49C8C329BBAF00C9AC7751A39A222217979A83301C0528B87992B87CBD5C576C806B4E8C383D5FB025CE83104FC5ABC9D235EA374588505018C167A78902ADF24F33AC22811C612CC09B4AB1240FA18359134CF4F657FB5C96BC544F83B8B02620B5564694284452D8D0467716BF41504DBD6574F5BA2879B674E9EC858700213DF91F5F9B18686669C9365D2F2CB9DEF360EDA91272B876CC75A022724C7CAA7E003CBD0B8BCB5B8656FA7255F0C8BE4BF2398E3106E47BA27A934896370D52E0CFFD9263CC85B6266018FD6303371969E7B78D326C9FC2C9A5B1C32E68E218AD278A8D5CA5629210BA342148E45217D594958BC0EB6A13B5910AF6F616E290472CE203A7F76F1AEB4651F00397FA537FB419EF2CA0F28834EC0AC07B11BB22B3A1A1B1CFB4679586F720BF6151662303F6FA774CA020FC03CDCAC3B74C319C5B23CEED4C24EBC48F067735CD5A02F579693C6BA2A58C8A5CE9B5CBD88E4B246CB75B34E286455A7936F6082965579BE60A0812D34361695EE6282998219366628ED9575203D6652FB127074CBAEBD2C1B25C520468A4ABAB0B550503CDD33851ECAE8BB27726396A15A63DC26078368AA5A7C1B075E781FD231EC27CAC42EB9E507A82751B7C8CB7B3547B0A1A58C82CB99DA9CB926E311B5A9A1D682BB8DA2C40FB679AE4C15EA0360A39EB6FD10719AE253AAC91132938579D3616DFF29EA1D33640E3B71CF2652E85C786873E1457762D230E99B81DB1A99DD0A8CE052849E1F8A5EE050EB607AE2DB8AEE4D76845158617E4972BB97C10383A7C19A02907032337720DDA9B9F8174FC20AFB4439A21FB979AF288F7B7101B104E2C7A9002B353DC1C80BFB00797455640B603B65C4CDC89254014079FB33217A15C31F6262C1430002AA148CA251AA15981947D27951F24030F9ABC3E49370A94D803094881F3017A8BE248E2C9515822439AE537776949641513C99C695625134348172B76B8ED929D1063B05AC774D83A3A6B0482EBA52B2F07BD17021E0FC4B7651347F4B95E72F0A6D676158CA191A5C9975B1BB5B5218093EB9716E350E2D340ACE90956C05B5D874DD60A7C9716894F551DC5986E378C830AF8CE327A027741431D48714223C83F7B1DCA94CA5E99814E1311C69481F38BA87FAC128EA30C19B2BAAB1A2383113E5D282BBF0C4175A69FB4DB66FE4421BBB26B990203929B3A58A85245BACEDE19159D1AB21537CD7861191D15185CD5B4F07A2559110CB42BC0CBA54CFF480750B56933666CC470B2504895A1213DB43C5C176590C9D97AC7279D6DC55CCC7B1D4D82BB33F240B4C635A936BEB5D71F787C396371C088D65F7B2A395071A4E6C381A1708EC05A6E55959845B456794055864C566D445AD9091834B77A30228CAEC6A0829BC243A9330B42010D62149D672373812DD014873BC79F627B25B1ECC782384E0DC8ACCFFBAE88C0415F6CC03E7640895C744F4707E130A9C9AC6CBCB70729DB69EA7C6D8C8A9E94C1438C96289B41419AF6AB083219F8A88753CA8B6FF168D85C8A2AC94CB6955ED03C49E0BEB46C4EA9FF7BE444932E61D464966BFFC96BEC0647AB34F2\nsk = 953B6E6F452FFAB6B9E27B707F600992E228F5FAC92680AAF31300154B218AE51A012A4CF53840CFD714CB63CB4C7AA0E8EA6E50803CA370BB38C7205D9365448B38308868C83348ACC365BE62B4FA763ECC5112A48558E57230D92B5869D77D99A5C0BEF49819500B333300910117E05B082D15368AE529923C6BC9D3594AB33C91B81549829A2EE55AD152493E80AA80399F770899EC05417A698E6493AA647691FEDC92854C23702CAAFC8AB3A3194CE8437B8E2A7F69454ADF3170C282972ABB93CF152DD85587F6272B0B71590C81B3A9F680D19445FFF0C395310A17F55272CC3E1364A9AEA7A67AF4561CF10043B7B7EB4AB0791A8D62814F4B6536CFA69CA0493FEC1A53D58709FBAB9C87578D83C9441D62C267E7AA4EF0AFC7106C9F834A5A13206C4B58D7378AF90B85F7E05237559D6D7819F455AA01D68BC297A8DD760A0DF971542919979218B4861A49E45AAB12BE67080D197C25CA53483D781BA27893D23BAECD393DD1643DC2A53275C84A19900B364CCC94A8BA3B5768F8DBBE08A7B08FD2746BEC62C98C5E5198695B12048BA5C98753AABA88BFBBC6C8DE490AFAA8343D334AAEB72532C63D60667079B41B6A287B04C797458ACD9104C94E96BF18137B0868737DC00A8E2164E0980B9B2135DC7C0E80E1B930C22874FC2CDBE0B5542732E8FA80E407A1A6E5AF0AA3168A963587379AA3E6A2B082A8A35604BAD827BD6AA1FEA76A608100DDC40B17283EDDAB2335B8796DC1BB57887787A4273C4185867368BE581F6E5767BBF0580F07B003556ECFFC3AE336260FA0A80A2C9E4C9914144551C89A9D68373ED9C7AFA83C75C6B8AFFB54187D3B46ABDC61D9E070B5584BE7564F932985EA4C739CC906732A7CF79A65F0F7B0682CAA5D2070B3E0699B1BB3AC0B38CAF22CA4DB9472D06B02954E36C0A3D8890473588C77E43990DA1C7103985761CA711109BEC0B805607D732A36BAF897E93C6D9A988B94C67A4592B7583126FD452FF0B45A033824983715C60478685B9C2D013D41B47EB342A05FB76232554DF30990D6F1B37EA9172020C66FAC8F415615EBE07833A2588EF622034074B214CCD9395648071821D1109DAA87C0E00CD9573254538EC3B8459CE56578C09CA66A508E88C4DBF6183A268B86FA4B7733A8CC89AC81619AF8F56D8ADB1F665A7AC413005BE730AA41CEF2B06A7FBA535552C8CEF73E90A8584A8B799C323F61FAAD4B8C25D06CB883493147069EB1C9C8FB262B699693D0601262E9CE5B383A0D27C1572C49547BC908C003490827343A690859A15B20119975C35AA991183052F117B53D06C5F4683D19CA5BA6F5595B8B269D96C1B3524CC8FC6EEC750CA33B5518603F59B50741D246642BB88EF61A8BD4C54F48AF3F573D4CDC5143ECBDDAB5A281400721544E16E35EA7A05F161003A6C3ADAF690189BCB074F546BC2033B1E8B00D56CF32E0733DC81D05EB358D148A91FACA963B814A9C5FDFDB4DE79B729DFC26C3D9B48A4730337B0BAC8C2A3628268159979F6B10AA9AB90ADAB98B9C0928FC4E3570AB01F02D5A64C5F605596E3498EA532472760F61CB2EB734C174E48237C656636645886B65C566BF95D927B692A02F0100CE756A60B508A18754D8F6BD8B884E0AC57F0C0B8F12347D40FA30F364121147263860825461BDE41136AF083B303AC118D685622CB7C4092BC0063328A2484D3392F8AC4D91B64C2D19A8D2A1936EFB0AD83C76B51310AFD878246C52A2B13E8D3719A6729BBF057365185E997603164C63495A651A65926EC96C7C54A03CF00A74A83FD59B1BB33C55711C4E268AC89C730F84858E67142F051C617E131BF1A66FE39C5BA4D12676549D6331B9AB32A10CD9AB9A686216E0CC652C981F74C3A070A2520A9F45336B955C46CAB108365861E5C79BD4F92D36959804BCB458F8436241AB5B", + "204BC9D48BAE38BBFA500DE53A7AD671BD4A29057951645A346C2F7B1E6573323CF6836433505CB116361919AC640A8E504307DC9B0641A2900313FDA004A1C4A8F0EBA7C42985472A57ADC37D90139DD6F23E39B15DB0736B8616603DA46ECDB42BE478B728519BFB1A95A33C9B7C2A52FA1A089D647FA6BCAF16B83F27791A59C89011739909DC13CD0A8E32381087EA4024189FEA9213F8FB3AF02330F61AB15D3A31CBF57898F016B419430D790F4BA8A594E2CCB6483E46E5474518CCD033543065CBE6A5755E97790C4109A5CB18B124992D885493E03A262C3DA395B46A069B9154C81294A7DD59BD092B69ACA326220475FC792AEB639CCFA62CB9C549D28736A944AF91119AD865C8E13700CE9482AB6B89FA7794F9D273BAB516D142455A78675E21A8E74CB13876C82C738A55A4649304CB8F9CB2DCE220C1BC06DDB0C5291595BD5867FD105236A91D3D61B25950C4D991625D3AA711A2449D118A51A88A1C4C17CA680C3CA950D141A220A0271A2B0593DB333C1CCBE6A1380E465FE60404055BBFC511895861A32433A7037A00CAC8197AC11528011E4ECA80BBD921F2BB8162C0580FB94207C89471DA649EE7CFFA4293C4B6BADDCB88EFCA19AB6C6E71F54814B8A2EFF67ED476088DC30727AA0A47B81F9390BDFB93C3A8281EF3B92BE88B130FA739023ACA492549D42103663B97D7318C01E0660696984AA5C5BB1019024862081BA8D464B2D10AC6096B5B04B5CF867C51141A785A41A25703627F0A51BFA82344723C0BA43184A77556B8CB107232F480488CB24F8BF324BE8116FB49C8C329BBAF00C9AC7751A39A222217979A83301C0528B87992B87CBD5C576C806B4E8C383D5FB025CE83104FC5ABC9D235EA374588505018C167A78902ADF24F33AC22811C612CC09B4AB1240FA18359134CF4F657FB5C96BC544F83B8B02620B5564694284452D8D0467716BF41504DBD6574F5BA2879B674E9EC858700213DF91F5F9B18686669C9365D2F2CB9DEF360EDA91272B876CC75A022724C7CAA7E003CBD0B8BCB5B8656FA7255F0C8BE4BF2398E3106E47BA27A934896370D52E0CFFD9263CC85B6266018FD6303371969E7B78D326C9FC2C9A5B1C32E68E218AD278A8D5CA5629210BA342148E45217D594958BC0EB6A13B5910AF6F616E290472CE203A7F76F1AEB4651F00397FA537FB419EF2CA0F28834EC0AC07B11BB22B3A1A1B1CFB4679586F720BF6151662303F6FA774CA020FC03CDCAC3B74C319C5B23CEED4C24EBC48F067735CD5A02F579693C6BA2A58C8A5CE9B5CBD88E4B246CB75B34E286455A7936F6082965579BE60A0812D34361695EE6282998219366628ED9575203D6652FB127074CBAEBD2C1B25C520468A4ABAB0B550503CDD33851ECAE8BB27726396A15A63DC26078368AA5A7C1B075E781FD231EC27CAC42EB9E507A82751B7C8CB7B3547B0A1A58C82CB99DA9CB926E311B5A9A1D682BB8DA2C40FB679AE4C15EA0360A39EB6FD10719AE253AAC91132938579D3616DFF29EA1D33640E3B71CF2652E85C786873E1457762D230E99B81DB1A99DD0A8CE052849E1F8A5EE050EB607AE2DB8AEE4D76845158617E4972BB97C10383A7C19A02907032337720DDA9B9F8174FC20AFB4439A21FB979AF288F7B7101B104E2C7A9002B353DC1C80BFB00797455640B603B65C4CDC89254014079FB33217A15C31F6262C1430002AA148CA251AA15981947D27951F24030F9ABC3E49370A94D803094881F3017A8BE248E2C9515822439AE537776949641513C99C695625134348172B76B8ED929D1063B05AC774D83A3A6B0482EBA52B2F07BD17021E0FC4B7651347F4B95E72F0A6D676158CA191A5C9975B1BB5B5218093EB9716E350E2D340ACE90956C05B5D874DD60A7C9716894F551DC5986E378C830AF8CE327A027741431D48714223C83F7B1DCA94CA5E99814E1311C69481F38BA87FAC128EA30C19B2BAAB1A2383113E5D282BBF0C4175A69FB4DB66FE4421BBB26B990203929B3A58A85245BACEDE19159D1AB21537CD7861191D15185CD5B4F07A2559110CB42BC0CBA54CFF480750B56933666CC470B2504895A1213DB43C5C176590C9D97AC7279D6DC55CCC7B1D4D82BB33F240B4C635A936BEB5D71F787C396371C088D65F7B2A395071A4E6C381A1708EC05A6E55959845B456794055864C566D445AD9091834B77A30228CAEC6A0829BC243A9330B42010D62149D672373812DD014873BC79F627B25B1ECC782384E0DC8ACCFFBAE88C0415F6CC03E7640895C744F4707E130A9C9AC6CBCB70729DB69EA7C6D8C8A9E94C1438C96289B41419AF6AB083219F8A88753CA8B6FF168D85C8A2AC94CB6955ED03C49E0BEB46C4EA9FF7BE444932E61D464966BFFC96BEC0647AB34F2CD65FD07A78E48C1A02E235EC76FDB509CF9903A4F5A850C51D9D3FDA383CC6785C3A8B3732DB34F4CD985B65E078AFE6A735B53F4BC36D4762A3E45D1DBCB74\nencap_coins = ACE5E23F87CDB061C1821314F8353CFA96D69CF902A2866E5075A796B24594BF\nct = 1AADF4A4BBB4B83D639200A44248FDF438FF1AEA5707AC975AC24C0B5311988EFDB9ABA49BFC41005A32A6BADEECC2DF0910CF94BFCF652DB56E8449AB8765AD04B60C4D2E73A227A3B803E5C7C9A6F1BD1C0B57136785D0D2C0335982DF897915038B2EA9C4EFF7FF71A37A362C703AC0D7D2746B1013A4703D6409709452C3C6FB6863DDE57525CD9D107367187D166BC2FD262D1CA4946EB2FE9C1B46E6F26CB7EF6A9D3DC5B2F5DF19CE14ACBD2BBDB007235C03FCFC2008C3D412D942E90605936C85273B763D219F8EE4AE1F7CFA29C15D211C435854ADDAA8B1C69665ABCBE6EB2A67AB49180B3D21B5D3763440F1D81C7927693FC1605450D256FDA6280A4599420D0073A8BBDE0CAED1F407DEFC39A75E623A791B8F03C4DD46EC68606576D72820A6765932D28D8BEA412BB07C3DD352246F7F02CB32FB7E3FD037105815BF76AF1C886EB15F042FE30FEF74EF240B0DC7904748C360797121B8C1F76B167BBD4E098559D7A054DCAEE8EBEC8283E5D4957B0B3A2FF91D8373EE3A0F06A79D7230CFD1BA8418E738F5BDA45485E3688B1D43F457C0AD7E4C9DE7E29DE8229D7766DF9810AB9B20ABC5704049973EC3357EE9D728435B6E2506A867FBC5D3B3B52EF8B6AF84AA89D85F95FFBA063B8AD501C7F37741F770B9222A35E4BDB46E2F821802F6716B7A670CB2FB142D1E8D30BA05E30D839D08BDCF9BC3C21E70A020FA4060204EA147D048662DF12E523EEEFE90B4230D73D6BBF5AD1484C0AAFD572E88EAB85073831557FC9B8AF8CA65E9E0A9896C8530F1A4F5298AC292661C16A31C989D230E1C904C165B300BCB3D55924517DCD3CF16821F90DC2D44C54A6EB875644741A0DE7C79F17A49AB61637D0E584CCC14D38622985135ADFE1A3471462D78BA27960DDF4CE3FBB99B09A967C89DE1BAD90ED12FE550EA676EBE2F53E33C01A0DD98E5C2D6B159067E1F8A3B8D7171EB8AC62BE4A6DB1E791105CAD4453EB5F9757AE274A00F242E329E6B46487CBE70E2BEDF0740A685F7E9EE2259744372EA8BC80094BFBB599C6C84A96BFC35B25D5E6526473E9D69C8BB69189DF0BA1B77720BDFCD085C0678ED9551F5517CE3509410A8CCC21473F2872537784DF00F02E684B5CFCF1E3553601307F9803C52092A6A2ACAC8BE443471E240C347ECAF094EE1D04E9FEDB65D1C0350BB1A8CB6901E9E7459664F92751EC53D3EE03AA3F5CD8F5B5C769C551E89434279253C637EF2CF73D3CF627941DEFC8116CF79E8977243A9A6AB8BE92CBAE5F4CE94EE83681C68DE47DB291BBA42DC75469F2BC7983F8FE56D8258EF70744AFB192E2C1C93C89F404910DBDBC145A6D6308794FE9243D9D3C628D329EA901D1B0A915A9D7CDE097AA08371F66D7526FDA8ED819E2D179965BF52A5FC21708DBF326EF0723A77DC1331C7D56BE94FD7D4635FFD054A52F7C0DC2F5450C4CC561F3795E000890A69448EC05C9A0D89D3ED5C8C2D50E00C8DEB7BE3C99D24ADA587ED56908F8D03FFE6F6F94649691B03C4ABFE8DABCC62E7F995A1768FD12DFFFE31F972BDE53680114465112C7CBF82F09CB34FEEE566BF2BF485819A136B3FCA168A50DF2FD8432E8488E91C0D971DF13EC346B56C43870B6619DED982C2E31D35653059F36CBFCD4F9876639B0FCE02053428968E07A89529EC00E9083A01D4060D27F50833CF30CCA812864E632E36258C59AC418324FC3B6A8860468DC479918F78525831482CA0072DC7BC41C79151507FE281091EB06D8CCE745F6623392E5FD1AA9843C82B70E71779C0A5E8F6FA33D9DC67D07915BE5CD7F39B0DF5B1D01E0E2323FDF88E515FC97797DD934B0596CDCEEA49FC0ABE2F9498C0B9DE2E872DBC72B123CD819E3D4D722D8600322227248D4473080369EBE9D39888BF15FA38AF5657F3A631662E40AFE6014A6F7F82AA3AB6B64D5C7811E78337B3AE2C18F411D707FD293045901B3B63899D4B4514B2B3513792852560C93889915AF2F3ABBCEF2E64BACF0CFB8AD0B49316DCA8759F6740120CDBB1D242A9FDEEDE9578D51681973B65084A681A4BB785CEA98E11C950985230B14C49691F12EB94C52B8BFE4101A0645DB9FE5F21EA9F6883E3D532A6FE44E5910446C7E1E4626C22C46A6DF373912789FCFD628A8AC48E12C617F941E910A5FC84D569E3F7396F743E28D427BB3012ED9A756D0B\nss = F9AD1C25F94A90249D3645DFCCC643C16B5903E09C5BF3B67A47A8DAFD97971B\n\ncount = 17\nkeypair_coins = B12F6FD965EA9C5B947DB80FC60C83D5E232DCA82E7263027C19BD62E5A6FF5511C11C1086F0365E9FBD525B3FCB4E4F169FB488BF0CBCB455EC098D49E903C9\npk = F1564B86096399F0415E5B757E7A6F9BA5120DD8A938E06C7AD8581FECB46B60AFBBB444EA375E53837827F80DE1E3753A4AA255A4917F1C8AF87923F8397C9750CBC7E5864049315E718AA2732B6BF7BE35694468F55B45449934715E460C6EAF734F96A1ADF87609F8551DCA87A94F0217E4E507C2B637F368CCEC681F36D6CDD469BE9D0BC7828C1BF13A2D28B8093B59A174D271AE9736B6397A4B8C9E4ED085A705A4987BC56DC172CAF58E543BB9D151B259E735CA851DBB685D5158596D61A411E7C542A240C4900BCEEB6E6AA7ACC7DB5DBF60C178813051574DCDFAA38D6B8EB595712C8B758F7827A981944F550597D120E926486E623ECD029E92825EBAE4B6D049011FA7216DD81C005B376BF6B1171654B5A3BA932BC98111B8213343B9E18C9E7479611606961B476ADAB27E457225351E2981A4E65B6A7F0B02078505D7D3B7DD671C1BB79610DAC7C92518A8B851EA5C3115F5CADAD3CB24923BAA686542E83482B725474381409A4016E54066C32420E99349D0C5A32CCB0B010983B96F8C657018AC0014A34020888317A13C8296A5FDA3937EBC61F2D1022B2B00E7A6341BDC70D1A11B9EB10673C07E612363E6F0413095561DC15C313138EFE56C67877C51F216476AB182A233F34801205A9087BA56A938900A0CCED6E16462A5BF746AB679AACEBED1B1B62B78A1E2AEAAA336F5286A84FA76E1FAB798749D8EAA1E71C48EF6A08977235EC54179CEBCC349863A9E40B61D68C1DDDA72D60B061F0C42E6C179C0228D8722AE90D022D9747CCF9326E4E27BC87257C24892043ABA248C1CCB8405", + "A66712779444EE39BF91292B9F926D1C99C65A7941BC7C1378F682F390B855D88273E56FC1067088232F679C5544A03B64CB2A8D9B8319D254C3B19AA6184B1DB0529BB9750DF0CC6CF5A39B7139383876F633763CD07FEB86393F6053A25B043E6B736B0309E7743103F0262133A4B701028DB889FEDB88B0F5A49D77938C33A5AF559468A91E6184BB9EE9BD71D060C6F0B2A2413BBA67493FB9A12E7B8C4F35497EC192B4086B4741402E46C97DD85F12D79A9B915160C788BC552A00C8AB88B50506363FF3EAB9F84B5ACA7460C882015EC08B3B4155621558EFFA01B4E1C3FFC310A2405DD4D4561E8BCE8AF738CF65279FD56571BB2A76FAA6B1BA9B0B9C7C8E8C9349D504952C8883A4BEA1C2C7F0528840119BBFF2B2887310A7F1030BCBB0B8002402C2C782C183853658FB374DE5AC9BACC24DAD86B088DAAC4B62640FBC5EB9990E089B1F49E95BF3471EDFA0521FE910C0DA89A1193D2ACC253C9AA8ED15BB4BCB16D3C14D262895D594693825AC0CA0567ACC11C94A6C27438D6A5403A320B2C4C47400A9817A2296BE402DC688957C7494600870E84CBAA433076B201CC64B3A3A51311F7C5A3AB206FA37C0A1C98048271648B5A5384C119DD73EA44370358182C713AB2E399655A171670A5295773D2C36B6E4B934599656C7808F13044084A82666742EB6B605DD2751DE5872DF234694A84397AAAF3B894E0A7507C3A354DC3409CCBA4CB16B5387406BF7D005A17352C4D331B7801596F031A7A15044E1BCC00C4A920A1FF7CC1B904847977261EDE038C5C51841C88BE1CB8B214CAAA5D3BDFADCC66FB49AFB234DAB467C45C2471EE52019B952BF716A1BB4059549A8C0BBA67519AD4F10CFEE06BB34496F38F9491C172F2BE413DA1B0A7DE20DCBC1AFF4103E546C8FCBB20BDCA475C9161DCEA2AA3AD534FDF042B2776B04477B14F2C705C85B3A7C5AC3803B3548B132C6AF8E90BA88BA49981729A8621F30C2AA0DAB04B49BB28ABC92D9CC8311FAA8DAB45D545611A36B86549760CBEB4AD464199A35811A63CFA00A8A1BFC202BA75D73560EADD235C2490C8E514CA29B30DDB0996798A4F5F76765D977033A5F61196BA517AD5764C0E1B553035201E48C406382A842256162B067F887729E298436485F10236F67F96D263C9D0835171DDA6D1E5A89A7137E39C39BCC7488B1B365A1AB99393C1C35CBA50014163C84977EDC8F02EBC9B5EC5045C6B1091BA794303E8BB52C7B8238A635C23D3C13D9E918D29025474098419AADA6720C70DA55905C197C1114C60054FCC651AB6AA9876430D4D530EC7A7A734189A5844AB93CC0A90D2A9640377808CCC2673495C4839FDA0D1038B27BEFE3D22E2B727A\nsk = 87C0B4D44CC9EB48C126C5877FF87929B08485FB81E479139C3299C70C43C3FC8C238A81D4E61E62A33DB2499C866B7107D116B7FCB1B0530A7E758A8D487D11575079265B3158302A23732BD07330071BD7CB7199476C39B583A2446109E99FD5C95BE21A292CF37490906E84A82605B8455825C82ECA4B7E218644460CE581214C78AC4473688BD6A9A826217490AD791B7835A85935782847981CA97B6DFE88B63701CFBE3929A2DBAB1628155506C353639D153656B90C5AFF36BAEDF1B87DA5BCE2A108FB6C3B29E77DAE803A0DCBA48AC6882F6C1194E88387F30A47C27D02C37D988346A2A29584A55CB5D3C44C05A18619A4FD412BABC31A046221B3994C8F22CE272C9E6E948C3D043295F413349796C38911F8DCADEAE47351C15E9A1743EB65BDC7471F37FCC93CEC867CD4808ECB281FC17EFD004DD64AB432D664864B43F8A9B1E763529AE2C413ABBCF30A4A478A30A0104D802037C4A8AF01B534DD600E31A1630FF13B2F730924CB790166AF3B7322BAF4409CBBA500C1BB32894E65445F04E4B4B4933DE51267635037FAA44E2775CAA4212F4E0600E51069ABA662C86145E2117347BB1748D63E412550C004237CF02B02AABB18D8533D19B1A879A079B31D529AACBF5258483C80738B380C83119C12B23CDCBC7D027506F3705CE1316DD24594A4BD32D10382F8AB47478F23763898398D7430264203A76B0C4455237F3E765EA5516388595CE9E2BCE2DC2258B5B96C782865FB5354427A2D7806123B0CCA782B1C329411C6C133934BA4A959DA88A072BC6E2D63A007572E36B82C5643564BEC47BC8953D4AAABD146AB5EB36E33F825FB9CA01E223253C320F76C98F810CA52A2C604622F7A60378809A59B19680AA69EED2003E272B8A1F3C8A55BCA129640C5A00D187BCAF465204C73CEE66A2FEEA414F02859C9988356D26665196674D25E64CC5689965CFDB2C0E47A531CE32B3DAA9C649954342A3F62253FDF826AAFCA7DC85A7A8E15161435212D7A4A3BD4B57A2CCCA3506999D407D9B6ABCC97209FA97454B0974DC2C7CF3C3FA40306CD6239DC450536974A8AB773374504B9889CB42BCE4EF4606BDAA559346F18D087BF8B7F0D9B21B0C9B75B5903194B0744A1C47483488EB4C1CA2C83D8198CC6A523D9329F6582863CAC2951268C01770A8081C1C26587D7610088E6068E020E10472C825C395AC6783F074EFA8597FEAC3734399BFA247E4E1531EAC70FE49355E44B3BA5439EA1E65EDA94485FB710124BB968490F1C8B68E87A4C4682156FC06A33275B6B202AA0D508B3789AACA627F0F0C19026CEC38A95F7547D936B255BE7A7525C97AB4282714C32A23C4723A82298F2CE90FCB4761B9EEE869E4D3484BA2B222DC28BC612B1F41607CF57781990009F29617549C0B2179705A34916DB154AA3747867C3EF6A0693BBA5C1D42E14B3247B41059F92607A60AFCDECC1C6F3839DB943F5EBC4D340AABE21269095B3F7D9BDE9EBC21DE788794B63E1098CC2903A83CA2027E8BCB78B855FD56FCF16B45E47994AAC71FC815C521AC1A1B697A18569AC2816F52640CF9059C4EB95E6FA1B32B77BD7CBCB6AB384DE74B6A2708400E980EEF5ACDBE5733BE895B64107266C565AF2A204E98FFF0058161637F5F0BC5E539BB0E12590A00F16F57FD0962B7C9589F6D3062D81860CCB94882C0A06D5965CC9BDF6213215867F1A0C30822046C985896F62684D95765AE1C25501186A3AAD77820AAF43C955A83A259982C77B2904AA471BC683BCF97E65E27CD82C545B096E9B762BF3304D9D5C1F3E6663CFE80953A86ABD0007E1F2628210B042F781BD59B2DBF2899B97A0CC345628C4C3BBB583D8807140C46BF8931AC3C34CFA78230882395FC1A51C1B50BA71274AA2383374B3EA238CE3B87247E0CEB0991AD9F74745698D06C1A5EE089E48D9CFE46A4FE733826462C188E8615AEAAFA501B9D6C6A96CE24CA097187F618DF5686513684CE2A9077E81A83068423A916FB4A8A47DF2CB88572F8FB4405AE59391566C88872F8AC48E705B0634A370F0EBAC6CFC66C4B536D3BC22459B2B3499ACD921367459C4BB3A2BABC2916E9B99E86A6C649C18C8E946EB106EC7A97595A503E42419A23109F1415E329290EC5581F96C8CF1564B86096399F0415E5B757E7A6F9BA5120DD8A938E06C7AD8581FECB46B60AFBBB444EA375E53837827F80DE1E3753A4AA255A4917F1C8AF87923F8397C9750CBC7E5864049315E718AA2732B6BF7BE35694468F55B45449934715E460C6EAF734F96A1ADF87609F8551DCA87A94F0217E4E507C2B637F368CCEC681F36D6CDD469BE9D0BC7828C1BF13A2D28B8093B59A174D271AE9736B6397A4B8C9E4ED085A705A4987BC56DC172CAF58E543BB9D151B259E735CA851DBB685D5158596D61A411E7C542A240C4900BCEEB6E6AA7ACC7DB5DBF60C178813051574DCDFAA38D6B8EB595712C8B758F7827A981944F550597D120E926486E623ECD029E92825EBAE4B6D049011FA7216DD81C005B376BF6B1171654B5A3BA932BC98111B8213343B9E18C9E7479611606961B476ADAB27E457225351E2981A4E65B6A7F0B02078505D7D3B7DD671C1BB79610DAC7C92518A8B851EA5C3115F5CADAD3CB24923BAA686542E83482B725474381409A4016E54066C32420E99349D0C5A32CCB0B010983B96F8C657018AC0014A34020888317A13C8296A5FDA3937EBC61F2D1022B2B00E7A6341BDC70D1A11B9EB10673C07E612363E6F0413095561DC15C313138EFE56C67877C51F216476AB182A233F34801205A9087BA56A938900A0CCED6E16462A5BF746AB679AACEBED1B1B62B78A1E2AEAAA336F5286A84FA76E1FAB798749D8EAA1E71C48EF6A08977235EC54179CEBCC349863A9E40B61D68C1DDDA72D60B061F0C42E6C179C0228D8722AE90D022D9747CCF9326E4E27BC87257C24892043ABA248C1CCB8405A66712779444EE39BF91292B9F926D1C99C65A7941BC7C1378F682F390B855D88273E56FC1067088232F679C5544A03B64CB2A8D9B8319D254C3B19AA6184B1DB0529BB9750DF0CC6CF5A39B7139383876F633763CD07FEB86393F6053A25B043E6B736B0309E7743103F0262133A4B701028DB889FEDB88B0F5A49D77938C33A5AF559468A91E6184BB9EE9BD71D060C6F0B2A2413BBA67493FB9A12E7B8C4F35497EC192B4086B4741402E46C97DD85F12D79A9B915160C788BC552A00C8AB88B50506363FF3EAB9F84B5ACA7460C882015EC08B3B4155621558EFFA01B4E1C3FFC310A2405DD4D4561E8BCE8AF738CF65279FD56571BB2A76FAA6B1BA9B0B9C7C8E8C9349D504952C8883A4BEA1C2C7F0528840119BBFF2B2887310A7F1030BCBB0B8002402C2C782C183853658FB374DE5AC9BACC24DAD86B088DAAC4B62640FBC5EB9990E089B1F49E95BF3471EDFA0521FE910C0DA89A1193D2ACC253C9AA8ED15BB4BCB16D3C14D262895D594693825AC0CA0567ACC11C94A6C27438D6A5403A320B2C4C47400A9817A2296BE402DC688957C7494600870E84CBAA433076B201CC64B3A3A51311F7C5A3AB206FA37C0A1C98048271648B5A5384C119DD73EA44370358182C713AB2E399655A171670A5295773D2C36B6E4B934599656C7808F13044084A82666742EB6B605DD2751DE5872DF234694A84397AAAF3B894E0A7507C3A354DC3409CCBA4CB16B5387406BF7D005A17352C4D331B7801596F031A7A15044E1BCC00C4A920A1FF7CC1B904847977261EDE038C5C51841C88BE1CB8B214CAAA5D3BDFADCC66FB49AFB234DAB467C45C2471EE52019B952BF716A1BB4059549A8C0BBA67519AD4F10CFEE06BB34496F38F9491C172F2BE413DA1B0A7DE20DCBC1AFF4103E546C8FCBB20BDCA475C9161DCEA2AA3AD534FDF042B2776B04477B14F2C705C85B3A7C5AC3803B3548B132C6AF8E90BA88BA49981729A8621F30C2AA0DAB04B49BB28ABC92D9CC8311FAA8DAB45D545611A36B86549760CBEB4AD464199A35811A63CFA00A8A1BFC202BA75D73560EADD235C2490C8E514CA29B30DDB0996798A4F5F76765D977033A5F61196BA517AD5764C0E1B553035201E48C406382A842256162B067F887729E298436485F10236F67F96D263C9D0835171DDA6D1E5A89A7137E39C39BCC7488B1B365A1AB99393C1C35CBA50014163C84977EDC8F02EBC9B5EC5045C6B1091BA794303E8BB52C7B8238A635C23D3C13D9E918D29025474098419AADA6720C70DA55905C197C1114C60054FCC651AB6AA9876430D4D530EC7A7A734189A5844AB93CC0A90D2A9640377808CCC2673495C4839FDA0D1038B27BEFE3D22E2B727A376F022313718ABA32", + "5EF4C3B720E2C3AB314ACE74E983948BA2E43EE3A6EBDE11C11C1086F0365E9FBD525B3FCB4E4F169FB488BF0CBCB455EC098D49E903C9\nencap_coins = 95BE66CAA72E47634E9748BD26C12B04E2193A69140284624D4E177F4DD66F7B\nct = AD046F3ECC6DB2DF7E4AD36949298E2FC978CC540FCE356853C171AD2D6320F43EE72EC3C06AA40EB326F4D66A4C1A2F6F7536FA42129BC40A99A15BB75B0AB420CFAEF22B906BEA027243B8A049602FAE8292876099B5548C948A7B4E149BE0DE4C47887182072E24D6A86611BBF9E7F93691B3DA75804FC6881D14EEAA0FC93BF65B287BAE55A70EA19E764233214201336D8FD612D680D2739F46E4C2AA524040BDD53F75993339DDD98977C9B06546E406CC41286A0830CC5C3531BD1270F851E4745009E4A95365A528FCCD85FD207D0C26704383A1933C07854CA0A8C84F416271690D39D7AC1198C3A8495BEBCC33FF3629303309DC919A087A4658097E22894CD3834E0421B9D934C7B3B27C6B495CDA8FB725B588ADC14075C9F49BD4D6D2DC7699C453A7846371BC8FD21B86B10E38876652EB7ECA1CA663D523828885A89A0BEBFD416C2011F851FBC802E504A9F0FDA6DDFBC8628ECBE2EDD42E65C7AD695514C6AFE8C14BF2719CBB5FA39B0B88F1BFA6CA54F8CB4F79896CAA633C5A9EA96FABB02969481D356C1BD404D7C35DDBD16604C396BC1CF9A1D96212AB0AC1D4C51A552B1D5F7BEE08BBBE15642B0ACB48CAFC4B0FEFA648BB5904416F8447E00CCA68C35F065221B8271100F436FA181E922E5CF13E0D142B042B75683AF774BDC016ECFE9447332905816BDD8710B6704C194E00A58A9763626E964CC72DF2B4A170BD720ED9E4E1685DD8EC1CAC6936641C1FEDF43F50443087E9F1DCD850912E2386A4945D98574797551CA6FB7A9C89ACAA9E6C691B0B61949F3477EB37A1D44859B24433EF581570486FF29D86D46984C39BC74449A3353D9E82F01D03C71955931DABEE1516FFE69B4A6F501105DB5E6B29C593DCD2D7B44EB67FE183E2137D7E0CB16B8600ABB2E784BB32C1E4EBF67FE9D45AE464A6FEE413D74D902CB542AC31D48986D65682AF851FB7535A7A7F4B9B07CF02130779DD654B8CC3AB15BB2257BC1F2FDE0D76E0242F0FCC68C07DCEEF7ABF33651C7457576A8AB2A8F07A1B69AC7BDD84E1403BE16768AAA84EC5362468D795DBDF27D98BFF72E9E67AB1520D0412949C67BF74BAC0F57DDDFEB086EB843E86CD43E19AAE7480B3B40D10C3220B4EFC950C3D0A8D28A3AF581192683828CD9F13A1D90413588877EF917163761596F0E34FD9115FDD2C107C3670D68FFAC4679E338F61214C6A5E4EEF3D8DB8C7862C679419EB5DF80E65FD3355987214BB839E17CB08D4E9D599F9BE46D1505F6F255DE885225B173E92119C5CDEC7241C76C04036288AA8C26083B83B42CC3CD32A083EBB7F0828DA6D361041E6DF5481C0F779936EB8AEB27AEE1A4353DA9EEF15E7564B8A3EC7E9F5CA803E5155C1A2B46DAF6E019A425EE0683B132A3F39A93C2FEAD431D70ADA68BA2204B4B3F71EF2EA9F4179CB4503EAAA7C0790C6FEA7715F25134CB3DB3526D6FEC414A2C8963A2CBD39BF76D51397C7E2C216BF612FAF4976E74E89C5B39B21206390BF3D81CAF42D0E7A5B9CCED9015DAE1D2FF9CB7B42EA1A55019A895BBD55B99DB8B8C4E888771CA54874AD022A45D241EC68EC53A8AB467D884D14F0E99985E4FB8E986A93CB6B41F6D1F428E413D6CFEF82AC846FBCB6CAC0E1025E7A7D2D6898C6BCB309BC122C1F15F08EF0F92D96670857589B5122D12D7ABE8E59975C69AB47016B602FBB2CCCC1B0A243D1DF877E0AA1168686463396B1DD54E1DD6F3C88CAA7D4DEE580C54A82EA5B160E9CF07EFD104E85122AF64C2F8B7AE2582436A80B34B00CAB90C2C65864E82B9E095603ACEC7CC60024976D4B87667AFD7AFF4F8A089E25E0B5043BEF1EC84840259F9097F8A6ECB06D6D289F12E4C676F97FB44E51E6EC1950E5E05E0C67B91D175DF137CE13A05B6E18B6DE06445DAEF3C27C78C12482EE3906689B86905DF158021E0EDD153720A9E1A416D29E938941E50CB50BE741780838739C5D2B80A44D50F0F7A8D738686B789F3658D8E3841010530743794BED4754AD65640E6AAB47694561AC8DA1C2C19705018B2F30B05724B3FA9F6F09A0629C470366A0E786CF9692FF4B87D9E5041C91B03E2ACDC848AFCE8830E20B3A24903683E5DBDCBABD67FD1C8C6B5B854CD8559C6B5F6591AF510DD59D0460A19C2DD31A64A5D9ACF3A7792E8167465CDB3910D96F50250D66F2DB705658504A1F\nss = 5AC83EF4494FC6CC01244D492FF4491393CE3A93F0B6D2C287CF694A42B701D3\n\ncount = 18\nkeypair_coins = 9F52AF92CA165FDC38788F2B59BA02E01C8281FF7C1E60504688043A5FE814B0284837F7EDF4788F32E757949CFA69DDEE079E2E00E439ECEDC8512097E2D2CE\npk = 14B0961B350FACF720AE691DFC4A847B143D9C9A2D2E7A35B6E33DD78B761125BD8C4B1D6994CB8E01186DFABE6270A51CD85B8B39678AF4C337BCB4FBBBC0FC260D48AA801F86538ECCBD3787A12A09B42E18AFA2E8C77BDC11B13B5A8404CDD7B2CE364046AE059A4C950E1E4638CCABC8157B97A238A6FCBA379BC6AFDA874335956D2325376FE1CE4405BEE3E37EF818B9826743266C078C01C36FD62B1D17ADF33467D9C1CA9F2CA28A2867BF7A8084DAAED0A19D2D40A0979198135C229720205763401045879ED65B09825012E626A24118CEE00216930D44A9BCA32BC74A6683A8D1BAE1701B189BCD8FEBA2DA42CC3B572151E7243712789B2801043196BD8C15D972CF7674771DC55E74931FC0A55C434497A517C99CA3276D262FFD83CF66D87600D097B1AB5DD8DCA86DE94080DA8C2AEA980B3A1115B847786AA96B94AC818148E3E4C7FEC633CBC6BD3104CCB216074A5B2A8C757A455AB38E1333435C3C30D94D8E922E8E77C0260B6128865BC37B82C7A6A276040EDADCAC335A10B569A2CC53A93B6729728B84B74B01D502B830330000AA1CCC9C4D7E7A74ED218D47CA60016411D7369248A261D6B6240D5B15D2FA5B3229373484C8D23BC8E78830062959D0504C92C0BAC310967EC40AF0C2902F82742EFA78F57B70BCF54A73AA2AA93B0FB34A935DC5924977CACEBA57AFDBBFA69942623536F167830685BF481740E2F434A2D3AD107711AA1729CCF857A14B0002F61575365F3AD9C18B947BBE9B3E31A7571A918728479710D64DABD569873461E12A9DC1103BA28028E001C8D5A79D24D30756CBB4A3AC9E48435BA09286AE89AC3C841E8909A4D94226A822C90B5A40F239CB0E8B98E86B5B06E20DD3764E42E8C8095052B1F66B76F164B3B867A98CB299E0995D44B5FEBC7A1F2C0CB2D0CD4F3AC5F9D5444797941666AFD319A3C6713ED1E31338A41A6E2B548208CFF5671A6FC7AB5DF260C2D8A703A67EAFA381C9D576C6C2B1177B6A66D951BD3C426FA79CC7B552ECE197C92856B2C7064605079404A3B5D8B49AFB9C87EA48E0811A61E81E2F101CA25A6A599947341040E381A52CEC894DC9B6AD25B79DC903C35C450201071DBA35EF8C11E17A1AE5EC7E13468C148A5946D928ED0321D717640E5A5767942EF2275E05E395321052E3E5059AF77FB04271C2E511F450BE168ABA09D3B9EEE1288ED1BAEF69CED005797982316E2C731F9581CD455300F35A6E1A5872552AC6EB68CCACAF636CC713516C275823E4A1A30A722F8C46A8932550DB624DBB8B6E0BB51C3D54089FCC2042F38F5CB5988E56A1F42A65D5D788E2551F60487490B57904127433F685AD4BC53D6213CDF52D6B0991AE37882D37B5DC084E5A49BEF660A4E8D03E24AC93E58BC05F8A759895074E156C09E73E6782C00A6CC80CD04829D270C7848D89BB2C321AC6E76B3E8715923768A8B1A644CFA95B890850819767249C48A08314B29C81E31B63A008A51D283BC217ADEFE37D2D9B15C7257CF62A68751C2942C531BB55ABFA321C581822C90C243D94B598FBB958E5950FD4C8B1F1CD06BACC30828FBF73A83F7387CA252E4F9805419C02D63189EE7B4661B5C1BD398EC82CC8DA173EDE64A38B3C1ED53A64DB130564D2A54600BAC8017D46507B3D56208975A70351A558D5774B249F7D634E6F21102310B6BF8C1544E217C68768400C3D721BA5C0F77B9D20795C8059145956AC7B7728222853A3C325D070A9EB256775C727118EB9CB7134748CCFD09F32C930881826D8E20AF48B2E1BA10EFC67CE0EE7730093A7305403EEC951F59044A5F7317CB85CAAAA2E2B5B90AB2B805A808C1BE755F9A4C342A96E8AE83CC4394D73890F13BBA0D35C45393730E4118D5345006AE62D38445666CBB7C25823C59A9D62E08BB8C7CD22B331BE153AF7C359091081FAC67D96384100F44951422E83599763AB739FBB8BA2A064A41CBE1679A1C613815E9A51D5D6251EE73431CBAD479CADEB64AC94F92A38D0798A4B6D3EF7233572B68D2A12D125A6D4E27939F341A4810F0C07BFAF993F8A74BF8E9710E7B29389EC3DFC498A4FF1839A1268DB8B70E82670E689B5B3E333908B6E8B4A78FEC249E798BF57B7CE985A42A5269435C81BA441230EA52319550476C1F4BEF1609E71524B877F53FD3133BF71AB13912BF37C2CD7A359EAB035CD\nsk = 4DBA785B32456E16A8E9A20FA7536F1B4555A9B403A09738657A148361788D3C358A7BABA8B4C58AC979C4F786E588AE245CB0C12C284F848B89585F76892FD65CB906D39B385A04D2F5B2154ABD1E77AD9501ABAC73237780B33C601FAC50BA3FC07E8525819593B7D7E69FDEA46F14F1128A475E4784AF38985501DCA6D20BC8DC1C5C7740B33804358F71B6E97B2A0E7350F7608321736083DC54E0253C6E5C5665D0B7E68355D4E98DAA753C1ABC1429B397DA773B043459E5AABD093A5B0210502BC2CAB250041997861286924AA0A190307431719588CC2E6FB68711C964FC20393C73B7C967C603120A3CC11B2EFCA3DD6616D0E2C835FA92946A40C4CC2F4655301ECB09424286B3C7A07AD3C6EA37BF6132AAE2D9A335E34B6C816D93CC7EDE020AB723B272B70F494834CCD93BD7800BC39919DEA4BE4C585F827A4351E233026760DC83377329CCBFF180A562AC50833C0F861E795C00EE74B584F693222B28EEFCB445F19B06154ABD0110C6A017ED525B5FA30C64E60663573B8691BA68E2BC580157F1C66EBE388AA2747C50919AF644ACD903A801A5C04A6A2EAC686C89835CF59A791AD5642274A0F78244491670C66C9BCE24BA5CF6B86967AEFE6728DCE8973FD29045DB844DC80022297CF530C8ECA4808F603A90A840AD70A803E6A0BFB44B38616816073C5D7BA26A64048F81A3BAD3A0C9CB0672C7466E38824529298A7C0D82940540C312F429411B403F64E419CF720E1F73026184CEE538B27CFB91F16186DCD3904BA6A34254155B3CB3157937D5618568F46F283C7C0E88696324A4FD77C3E6FA5B5DC0A13116274E5792FED69EABA973730A79878103BF63934D179143DC23ED39585D40C06A99AEE0F4462F123B8A6B539DEA9E05117B08338DD6754398E7496F612B4D892CA54A13EC9B2DC7022CF779668809AD6DB97A6E8B15FF0A862E664D292C4AF549195A23C19E2B9FCDB9B4A5B9AE517873CCC644993196DE5C2716D58D50E7CF11558F44A16580C980654C8CA581671121CB2F8C", + "C6F90529C9754CF0700B30943EEA1A7B05F0BC8FDC1CF776B0CF2C2EAB927DC83197A4071DABFC07F983BF4D2C613E087976ECCAAC031B88420CECEB6DF0350F04BA61AB39CAD4C6B2B32503D773A34514B7D5BBB9D5E7BB6DD9AB5BDB8F34A9880C49AB5C40970C435508E26CBA50705C6538686249D344BDB7C820A5C8869B371B8FE13922A5AF390BBB7B809C392266541671C75CC2B7A7248D0234FCA16DA64265E5C70257D770D2E9982D5A1C6D19BF0BA48B53AB900FC8280C754C14774939B83C63592A12F35D198194679942EC227B46CC8F353A0547E929175C3585107239AAAFCA151DF3C835E770921E5C9B134CA7E27A18C7656BFD6A4FD2431CE1743576E575DBBA8905F4CC38108E3CDCBF0155B5300A100958AA99940BCB473EF64B05BAF55E91952C46851D313B0990EBCF2148CF28130CF49C8D080841FB81384E73367C792A11099F5B898416946826714E252457B23A3A1E33A36EE2612372CB2C04030840A87F96A31913A428CCCDD2817B38372DA4637F46044F2218C28D525A57D9C0CD2864FD43AA5C9A003A09A35BA786A7520C9D9971D6258CF3C6695885684D1A5FB2B3818015AE887555FB1997B7A35A326481A566839712033A0CA13A844AC6F21A16269876A27B2D49458515B3EF0A77F933C9D0F1406121BC8BB666A1284798055595901488439150DB602A5428ECD32109731BEE5BB8DE606EC8D227A432994DD912637BB0B3B198171A89DAA720BB712CB598A75B4AB304A9468088A62D0059DAC56E17BC95EEEB6C22DB8D8EA3C6F272A793E0358E193D52029E2A4582CDC65848C06652E44310506868365012C9BEFB412D1A844E8C21A613627B4707873DCA67CA5C0493A83EAA227FEE44731D24938709680E1879B2A41B12E71FCFC39CFD81186250B6CF4B5796E831A49ACA2B8C2931328DED15CF2D082643735EBDB8AB019609ECF95F5D093A147C3CAA73946CD38B4E21073BD72FF958C7435088AD73A5D343CA768A4AD4B2A49B6B6E17A94D909837E872A05C815D18EBB4E817BDFB327CBCD46404060DDFDB92631B2E3E262283BC3292504CBFEA8F30F085FA12270C834D6B6A5D2A46098F26029DA3BF14B0961B350FACF720AE691DFC4A847B143D9C9A2D2E7A35B6E33DD78B761125BD8C4B1D6994CB8E01186DFABE6270A51CD85B8B39678AF4C337BCB4FBBBC0FC260D48AA801F86538ECCBD3787A12A09B42E18AFA2E8C77BDC11B13B5A8404CDD7B2CE364046AE059A4C950E1E4638CCABC8157B97A238A6FCBA379BC6AFDA874335956D2325376FE1CE4405BEE3E37EF818B9826743266C078C01C36FD62B1D17ADF33467D9C1CA9F2CA28A2867BF7A8084DAAED0A19D2D40A0979198135C229720205763401045879ED65B09825012E626A24118CEE00216930D44A9BCA32BC74A6683A8D1BAE1701B189BCD8FEBA2DA42CC3B572151E7243712789B2801043196BD8C15D972CF7674771DC55E74931FC0A55C434497A517C99CA3276D262FFD83CF66D87600D097B1AB5DD8DCA86DE94080DA8C2AEA980B3A1115B847786AA96B94AC818148E3E4C7FEC633CBC6BD3104CCB216074A5B2A8C757A455AB38E1333435C3C30D94D8E922E8E77C0260B6128865BC37B82C7A6A276040EDADCAC335A10B569A2CC53A93B6729728B84B74B01D502B830330000AA1CCC9C4D7E7A74ED218D47CA60016411D7369248A261D6B6240D5B15D2FA5B3229373484C8D23BC8E78830062959D0504C92C0BAC310967EC40AF0C2902F82742EFA78F57B70BCF54A73AA2AA93B0FB34A935DC5924977CACEBA57AFDBBFA69942623536F167830685BF481740E2F434A2D3AD107711AA1729CCF857A14B0002F61575365F3AD9C18B947BBE9B3E31A7571A918728479710D64DABD569873461E12A9DC1103BA28028E001C8D5A79D24D30756CBB4A3AC9E48435BA09286AE89AC3C841E8909A4D94226A822C90B5A40F239CB0E8B98E86B5B06E20DD3764E42E8C8095052B1F66B76F164B3B867A98CB299E0995D44B5FEBC7A1F2C0CB2D0CD4F3AC5F9D5444797941666AFD319A3C6713ED1E31338A41A6E2B548208CFF5671A6FC7AB5DF260C2D8A703A67EAFA381C9D576C6C2B1177B6A66D951BD3C426FA79CC7B552ECE197C92856B2C7064605079404A3B5D8B49AFB9C87EA48E0811A61E81E2F101CA25A6A599947341040E381A52CEC894DC9B6AD25B79DC903C35C450201071DBA35EF8C11E17A1AE5EC7E13468C148A5946D928ED0321D717640E5A5767942EF2275E05E395321052E3E5059AF77FB04271C2E511F450BE168ABA09D3B9EEE1288ED1BAEF69CED005797982316E2C731F9581CD455300F35A6E1A5872552AC6EB68CCACAF636CC713516C275823E4A1A30A722F8C46A8932550DB624DBB8B6E0BB51C3D54089FCC2042F38F5CB5988E56A1F42A65D5D788E2551F60487490B57904127433F685AD4BC53D6213CDF52D6B0991AE37882D37B5DC084E5A49BEF660A4E8D03E24AC93E58BC05F8A759895074E156C09E73E6782C00A6CC80CD04829D270C7848D89BB2C321AC6E76B3E8715923768A8B1A644CFA95B890850819767249C48A08314B29C81E31B63A008A51D283BC217ADEFE37D2D9B15C7257CF62A68751C2942C531BB55ABFA321C581822C90C243D94B598FBB958E5950FD4C8B1F1CD06BACC30828FBF73A83F7387CA252E4F9805419C02D63189EE7B4661B5C1BD398EC82CC8DA173EDE64A38B3C1ED53A64DB130564D2A54600BAC8017D46507B3D56208975A70351A558D5774B249F7D634E6F21102310B6BF8C1544E217C68768400C3D721BA5C0F77B9D20795C8059145956AC7B7728222853A3C325D070A9EB256775C727118EB9CB7134748CCFD09F32C930881826D8E20AF48B2E1BA10EFC67CE0EE7730093A7305403EEC951F59044A5F7317CB85CAAAA2E2B5B90AB2B805A808C1BE755F9A4C342A96E8AE83CC4394D73890F13BBA0D35C45393730E4118D5345006AE62D38445666CBB7C25823C59A9D62E08BB8C7CD22B331BE153AF7C359091081FAC67D96384100F44951422E83599763AB739FBB8BA2A064A41CBE1679A1C613815E9A51D5D6251EE73431CBAD479CADEB64AC94F92A38D0798A4B6D3EF7233572B68D2A12D125A6D4E27939F341A4810F0C07BFAF993F8A74BF8E9710E7B29389EC3DFC498A4FF1839A1268DB8B70E82670E689B5B3E333908B6E8B4A78FEC249E798BF57B7CE985A42A5269435C81BA441230EA52319550476C1F4BEF1609E71524B877F53FD3133BF71AB13912BF37C2CD7A359EAB035CD7944E5D79DABF7B7259DF5CED02669C81B7DC4590E0B10764729D812F6BD85D7284837F7EDF4788F32E757949CFA69DDEE079E2E00E439ECEDC8512097E2D2CE\nencap_coins = 53D3FC9947DE6EA6E5B4B5E89D236258AE933C485C2AB4B1D6DB8282173A7C8C\nct = 578472364FD025EDC9E8329A97232762E4F9609C0AA6F63B92019DD0040BBF7CC621EFD6C8D95216D31A4B7C623F764D76EDDB7B2A2AB74CBFD6E8881A00CCECD7AA7D133A2B68D529474044675CD2BEA8A633E578604E8416ED5E08A87DBD89ADBD7D04BCBEE413602B4C1EC0687CE107536AFA779C91EE1C0DD7164F6C8D413D97AE86ADE48BF1ECB080880EE37EE5109435BC2E0C29D31588F4AA320D1A473C2AA5D9D73E8D4E0CF83DCF4F48A7AB9D1D5E79D6EA1CD88D2417F1B4397901FB59C7157CE9CFA32F045B39DB5F6EE228AC99E50E7970B63AA6884E9D82B42B52B892CC8A30716B9F75F30A13F3F504BCF8522AE843E0841E41AF25C26F01EBE8AEACD00C29DB4C68AB1AC0BAFA8F0800C6F5BB8A4C070BADF9988014F93B107E6C91C8BC610D6BB4CC19E216661BD6F273664688433555C8AEAE775D033068E29458AB747F98FE01B3BD4E5AB51B86C577EB1300652F6029DCCC966DE6852290523212F61A01DC05C5AD15C20A192057D029679E1E56DFF4DD3F93E71890C8DF421E33BF3FFE00B6D9B28F80AB544FAE4E644AA572596E082D0EA22B0BCF56EC58EC67030C3FFE10FAC599E2E4B705EEAA7A775A27D474CBFD7B6025656052DD892CE86B02F1DBD6B8A228F23C2F51559B5D4C8E025CA239B39261704B65D846D37CBBF7D1821F696CBFF30E18D443CA2A08255B30B257612DFA818324B97E38C4AAA34944DB158500BA35F380521301E8CFE16172EC3BC193617665711579B0D590570C921C26DFE0CA2ABFB7EBAF1D3D99F5A754FA5950C7C5593C7126D66236BB091615F4F95DB0FC4F00CFB0C025CE30EF96F7B7DAEFA78BA111D7BA688EA7BF8F59DC87521F595A318BE86351B5DC27EF5E747B5E48781660E55F2730BCCC6882D7C6E433D9D7D19EFB5594C7686EA364F03C395C932B3C7BBBB997BF025238DC35B8E8B059B6BF4EAF2315EFF77EF4AC63CC510B57AC00584D56F82309E2FCB0809D69AE3BCDADC31E7EEF48A2AC1E8F3CB4F14E04A21A028F533910CCA2EF6D9CADE0ED7171C0C8538648C03A83494477292F1458F8EEB85F525AFB54DA0FD9C0A285786FF2DCD5BE8DC059C8CB4DDA633DA45C6AFB1859BA195EF28F916E878955515CD19F4CAAD2AA17E0BC83AF0097A518D3B5B1D51CBE129555B42D520BDB142FD2FCE70C067A727016A1BB6335A7900E87E0D0CD9CF7E21F9F9BBF5CE2E83FFB35718A1B4ED30537F1E824AA832430008EB3E530A4590CE446FA2312FAF3179875D5A7D56C6BBC6585F90E4DFB53CDCBF39EE4329F7A23BD9B95876483FB3C0B0FAFF566AB9E4C081EC8DE4EFBDEE7E1D8CDA30FAD6F28653102E8AC8F1992A6B92A18E252B2FA0CEF1CD2BB045DB4F500FA152A0E6E69316720435FA217731F2FEEC45155B090C99543D0A59AD123634D7AE7AA92B692F48E3E936A2005B62F84DA02CBA3CE7E3DC1989089FFB6B52B0B422BB6B025838C096A7B01F654F66AC5F5E887FEAF158D648943061E039A7FC914304834683B44D1D0E60F6FFC06A942091BD8F8E87D114CB87E75804775591997915453A0F992F24E135C284F2DAE83B26A94C3E8F5BC61BB7DD79E02997A8A2299986B0540D91735CEEF76F4BE38864D2508DB21FD1167A01F4AF771D65999CC8CA52FA5DF4A941E8D183C1C686A28BA8390C32B242901A821685CAF95375DBE1D03FF3981DA3CB410A8B461F45E2C4AB38431F940F8031835AE58D34D24507DA261ADCE472FBA872F09DF23AA4B3EA1118A2D2113296F6CD294C2C055990137D40C82B95419E9B3893250EC395EA60A2DD462834DE12CA031CE3F4DA943BFDE6CDE84FFE7E4D735630E3A7E2F1480F18A842C721263D7A6A61A9F5BD67BC24A39FB6EAD9EC300D2007076FC61F424E653DB3BD75F52224CC193316E2D7100DF3A5E2917F3D505A9F538B41C5EBC44E30E234FE62BE7F6AE9B795277548E08CB27E1448D55CF00D31AAE8329435F500247A080B6B84FA2FC517324A9249F6FF29C42BBEA49D9D13115014AF2A93AE61E81D876E1FB462494A2860332A5E010ADABF958F222B8171BCA0B4116EC209209065E243817DDB48C2C9F82CEBFE4EB410073CA82E23BCE448CBDEDCE3BDA43551557263887631C3C74B0676B06E907A4632A9FF30F9C16F571D9806C9B2FC3E997B3554740FE6C151E3F83F93FC04B02CE1CFDD832DE14\nss = F71153239C77F7C39A807BD503969A1F6ACB8CFF15F34D50998085574E7C3FA7\n\ncount = 19\nkeypair_coins = 851EA90FD3854CBF28FE39", + "FB81F68E4B14345CF0D6EEE7EC4CE772513DF8410D11BFE66D2D15C33524F478F9A6BB3AF2A83357197C834D399A8625F761529BE9\npk = 8EB8491C75171340B7774793B7912BB4186A7E3837E33414AF6AA211061F3831C4F4B16B753228E998A721385D7B14211D8A7096C54AC3101DDA7668013CC1555163F822B1CC144E240C284DC87B5075A813872511097C45A87DBABCBAE6E743DEC482B4EB47CDD4A1E39298872552F8BC4B0DF1632255588EE99B4BD373A21C665574BCD3FBB35690237A6CC691F80523390485447BE94B76FC219E7D75C6649CCBEB00271FDC1D666351F396C08EAC20ECFA784D45BD4D64847EA126D9F0A23A3B1727396F299951F95A68EFE55C5D4C792E136148AA35D0663D64F2C040586E44B6CDF60C54E0C08F365001513694E27569A3D6C6ED2538937A7AFAA0BC2CEB6B18914AC77C65922AC49E47C74447B889A39344DB09DCF1BD73EC5C48263C214A1E946B2CB806668A32B83C0C97AD547989836A53F1025348AC068A69357C7F46C69F963C5634908B9963BDEA79689B9679223824FAAA920439356C10786A646472372BE8729C4F2BA1E2897728CBAB136757AC5A75242608D6D10E20AA6446A4800EEB621EA822C1A61EB7C5B84E764D83452F60E5BBE79B275C4A4445715D21ECAE5A569073475A74BA62383137974BC071C27CCEB5BDCB1991D393784EA8B28F259B118089B4B77F9B68AB0CA953FF8257A3938482313F4C5963C4B101EB0321D608C2F3127CF451764E15636EEBA98021C963F359D2C44A9E92357F2853821BA0C8105C488B242D9C02AE637B2002CE644132069A8BABE23D4E9A056FA0B8BE8095113B86E6B5C748706924F6AEC490A46DD398444499B95289F13A84868188FCEBB861A004254068F6D9B4B83AA81C9B5433C70868AB5364A80D870B841A216506663AAE569B025C5CC43B2E5A6821FC300EB6574D0088BBFB7483959892703666DA17797DBA514A489376B19707A144B6F80423073EFC608347BA2E639B0C8F2A52AC959592B0B0C1A5B4FBA61483F225344051DCFC4EC124A9D10CC2C557339325C699F091319853EF7A445B4064D8E66895F8C0BC887786F5240B72C319FC0B55933B5864063D14C5F732472C71340EA26BF8EA7DB5FB9ADDF3C5011CB0F0D3720DEA819D3AA110E2CFA9EA61287716F199AF376B106FB097760B3F11237FCED41EB95B798F2787B3039F9C213CA5699AABFB03AF86ADF5D52D6AAA1EA952BC04725A22B2A28F4006CAC30E265C793018145573CD1C715A69D704217AC45D1B6E8823852DA64784D4B84EAA9CB7F75121CBBECBF25804A210DAAC80612972ACF605E91303A2D59B1AC84EE217872BAB85CDDBA9C6D1381E312B4C574097D95B8AFB595BD91C46FC0DF0A761F596569F99B7BC6505E922A1F90C045493CDFB9A3C650224BDCC26CA199849128945CA5F97E230D601283ABA102A26818932004BB114879139EBD637EA035C20C3AE176B70999C3FFCB7951742C73D48993287C3276C4DF9A8365BEACDA08BB72C55634FF35C2D848AB4D07BD6921CBD95C18AC60E7ED35AAA352E143AA1FC49630CFC8A09845CFFE260AD953B71074E42F08E265B7473DB4D178C269F317AC035CC1124540A4A47886B6E5B04418A760777E73AACF8930F08C2FF10815559C1E04672BF4B851233011D7B3A84155D76279F9778A72AC9803D36506824A34524C835222224545DEAE1AAAF193B778751889957D5082A9E9A34E6E44840CB7DDD712CE9313C5033590E9AB54C25852AA8B2F09252BED793BF6B972B593CA9317BA278937A607C6B9B8F79069FBE452FDDF01622465006373E2F661E366A90AD1483FDF76E04C388D61646F0162195D36966D75DCC89A3D96B2F98C79D9E0BABD9816AA2084611EBB558735C076576E102B3857C1EB2876D53C5777F146876E55020641072010E7A1B773D357D81B52B4071B9BA8C8F69683181CCC4AC49BD2083BBAEF7CA0BEACEC46A39E768295192AC02BBC0ACB70DE25A27B724AE7D3121B1A4A869034E70F279C3914D882422E1785709599DF782BAE64316ACA97D42846A52D03EAF423E813CBB3FC26C0E1134DDFAAA3275226F6416D9788BA2026C78E2BB1850C681825774213628A23494DB886AA29892EC194791A84C73B36FD5CBB2B4BDD3D664AB10246CBC9BBDC97D8EA5528CA41924E240E544A747071CACA25B05051587173C9FC851EDF10FD0171C69C2128E0ACADBAFD72FCA96AED457CAAFAF51DC8C30CEAC70CB4621CD4D7B4C\nsk = ED55584416844E1CB3C75ACFB3771013D1AAF1FB3CA8A5B718A8CE02A15AE26BACC7534F8B084A665B0608780E532A161686B07FAA83884C6A0EFB490A8A3FCABB50ADD21F58AC43EF4355246B1A661C5937562FA6067E7AA66978E4B36EA1431ED41E4E4282D4003D5BBC06CDF7AF225B6560C44F43A278677ABBA8C6B79741B3CE7C0D0769AB407C9B39C032F0E42D1866ADDF2115E2F3336384C61CE9319CC92AC1350B264CBC4059B94372631C8241CA376AA6F76111537018C01D1346019D628F1F00CDF828B48C47CBF958989B846ED893BB0B6444BC2A35C6443F77D757A0CC957716373460A7A94151CC548F0C78AA5A323581C192D00B4D96219806A04B1A0AC829002B7FCBC8CBF8A8E3ABAFD3DC2164D03A24C19D50133E967C7668AA8B81977B400067FAD2CA802A76716B95E3D28BE5603E4977C33D3BA5DF2446F6265827464641204ED972286B58567BA129BEC0CD6F1644C4032EDD6239309AAA259A3D997B1ECC535F17D773AB1C5350E3C82C600175269700A56B0D4211DD02C13D4BC7C54238F40163441702613A1DE34BA9B0B42EF0A29300098667E8003588577E64B031139DD2180DB113623FC4B74E946EEF86A1A6BB52764C6C12911765E37A685400888AA9140A3ADFC48712688435258D56337FB8D8A9E1F34BD2E818AE3B7480F500FB6BB03BD50019C33BD37B060BC2C45E8A2267D18927C0AF66076619889FF6B1769FE59E5F131F5FE40DB2815BB6886B7BCA9DA659935DB493DED9A808157E4151B04C153E673333424B7AA939559E4CA973F7644A813B8D9C1DB8C87CAC6365C0E008E329403C69490976CD3F006F3138114A6B3E6B3C4F054451E5BBCB7D232F285A2EF5202B81740053512F8E4B33FDA87EA61042D1F9736ED58E9047C8744735A728B636DBA7ABC33B2DE0B1572A28B23C25A8668CEF9291990A499BC8935F955E1CF0301A65BE870B7F01F06099192431F3436AA5AA6564C4689C1D2E11540355138C91BA6E0182B6DABA0E7A177FF320C6B04977D47DA0D51672EB96CA054AD2D4A0F72930061775592AA40E9C9418CA611893044460495D8A46B242201886CB52E38D91D25D7FA8262290628D91323DD2A51F8C7A33487232F4934133117699028381751D8594FD94910EE4115389C57262BA579220567A7B5B42441A641FD6630D7BC06802878C76BB9EA576965EE45ACB90BA549A01B6E873A1D8C741662067A116E64C8897E83204170C9BF2676EF60C20F3450804C7A1B80725DA17F9DB18F715B7894CCBB53321CF01755D168D19A96356EC07EFC62D9A8C3A8FFB15500433F915137AC42A474B8E43F283BDB2B46CD62D509A5AEE8CBE23B74CD48079D82293BFC9CD931289A0AA27D8A930BEB2000ACC2019E3CCE107A18E9C4408C516FBE19E45459ED77231851B88B6B73156EC820A4C097072C2FD61C83D23413AD510662894DAEB238992138F98185042B53A637AEFA83378B026FA7BC314516B25D343F0E0AA7772CD2DA27F8B39A8BECB44923792A7D586631B2AB963AE537768E45961F5F96CB42320E75738A964168B9403D5B3591AC5679A61857C818B2A486BB299019C7B03BEB50D2D40A17E84712AAC01895AC6F73C0E571B779F71C4691CA515592BF6270A32C58EB9A494C1A6BEE0D86581135216441A8397B5BE554C000342172728F4DCB504A11E7F594D7811C21B7A477F2526D817017E5C87C6B376D95C8C6AB628110762546188F3F602359A85B422AACBA4802417BA44B98FBFE05121CC2C58515CF2F3979400784F6152925A2D52D07D15A69A3E223FEBA90CA1B3A112947299123912B54321344CA400CFBD996D523B72A505A8F0945E00A65025015C3F9C7132D48BAE4129A0F0C4E22A1509C439C011A2E1CBADA30453F6110DEE9C7F4B0866AA92CF5A31667CE38F8D871F9902BD5E2A2B7AF030367A6306D4C48387B694C7BB2169614A746FA783619F9C7264D32FEDA59EC37063D1F11C6F5183F0E9BE5A493E5CB199358B19F1706D80844FF2968E95A24D72DBC348A88D0EC9BBD01C3018A8147291B34EC21290211304DA40C46632B352810F0A2D73046417885CEE0C231A495B7DB834A1336980F2B34CF140C84AC878C558CD937B7E0A9982F99B3C8ABDDD441B79F621764AC38EB8491C75171340B7774793B7912BB4186A7E3837E33414AF6AA211061F3831C4F4B16B753228E998A721385D7B14211D8A7096C54AC3101DDA7668013CC1555163F822B1CC144E240C284DC87B5075A813872511097C45A87DBABCBAE6E743DEC482B4EB47CDD4A1E39298872552F8BC4B0DF1632255588EE99B4BD373A21C665574BCD3FBB35690237A6CC691F80523390485447BE94B76FC219E7D75C6649CCBEB00271FDC1D666351F396C08EAC20ECFA784D45BD4D64847EA126D9F0A23A3B1727396F299951F95A68EFE55C5D4C792E136148AA35D0663D64F2C040586E44B6CDF60C54E0C08F365001513694E27569A3D6C6ED2538937A7AFAA0BC2CEB6B18914AC77C65922AC49E47C74447B889A39344DB09DCF1BD73EC5C48263C214A1E946B2CB806668A32B83C0C97AD547989836A53F1025348AC068A69357C7F46C69F963C5634908B9963BDEA79689B9679223824FAAA920439356C10786A646472372BE8729C4F2BA1E2897728CBAB136757AC5A75242608D6D10E20AA6446A4800EEB621EA822C1A61EB7C5B84E764D83452F60E5BBE79B275C4A4445715D21ECAE5A569073475A74BA62383137974BC071C27CCEB5BDCB1991D393784EA8B28F259B118089B4B77F9B68AB0CA953FF8257A3938482313F4C5963C4B101EB0321D608C2F3127CF451764E15636EEBA98021C963F359D2C44A9E92357F2853821BA0C8105C488B242D9C02AE637B2002CE644132069A8BABE23D4E9A056FA0B8BE8095113B86E6B5C748706924F6AEC490A46DD398444499B95289F13A84868188FCEBB861A004254068F6D9B4B83AA81C9B5433C70868AB5364A80D870B841A216506663AAE569B025C5CC43B2E5A6821FC300EB6574D0088BBFB7483959892703666DA17797DBA514A489376B19707A144B6F80423073EFC608347BA2E639B0C8F2A52AC959592B0B0C1A5B4FBA61483F225344051DCFC4EC124A9D10CC2C557339325C699F091319853EF7A445B4064D8E66895F8C0BC887786F5240B72C319FC0B55933B5864063D14C5F732472C71340EA26BF8EA7DB5FB9ADDF3C5011CB0F0D3720DEA819D3AA110E2CFA9EA61287716F199AF376B106FB097760B3F11237FCED41EB95B798F2787B3039F9C213CA5699AABFB03AF86ADF5D52D6AAA1EA952BC04725A22B2A28F4006CAC30E265C793018145573CD1C715A69D704217AC45D1B6E8823852DA64784D4B84EAA9CB7F75121CBBECBF25804A210DAAC80612972ACF605E91303A2D59B1AC84EE217872BAB85CDDBA9C6D1381E312B4C574097D95B", + "8AFB595BD91C46FC0DF0A761F596569F99B7BC6505E922A1F90C045493CDFB9A3C650224BDCC26CA199849128945CA5F97E230D601283ABA102A26818932004BB114879139EBD637EA035C20C3AE176B70999C3FFCB7951742C73D48993287C3276C4DF9A8365BEACDA08BB72C55634FF35C2D848AB4D07BD6921CBD95C18AC60E7ED35AAA352E143AA1FC49630CFC8A09845CFFE260AD953B71074E42F08E265B7473DB4D178C269F317AC035CC1124540A4A47886B6E5B04418A760777E73AACF8930F08C2FF10815559C1E04672BF4B851233011D7B3A84155D76279F9778A72AC9803D36506824A34524C835222224545DEAE1AAAF193B778751889957D5082A9E9A34E6E44840CB7DDD712CE9313C5033590E9AB54C25852AA8B2F09252BED793BF6B972B593CA9317BA278937A607C6B9B8F79069FBE452FDDF01622465006373E2F661E366A90AD1483FDF76E04C388D61646F0162195D36966D75DCC89A3D96B2F98C79D9E0BABD9816AA2084611EBB558735C076576E102B3857C1EB2876D53C5777F146876E55020641072010E7A1B773D357D81B52B4071B9BA8C8F69683181CCC4AC49BD2083BBAEF7CA0BEACEC46A39E768295192AC02BBC0ACB70DE25A27B724AE7D3121B1A4A869034E70F279C3914D882422E1785709599DF782BAE64316ACA97D42846A52D03EAF423E813CBB3FC26C0E1134DDFAAA3275226F6416D9788BA2026C78E2BB1850C681825774213628A23494DB886AA29892EC194791A84C73B36FD5CBB2B4BDD3D664AB10246CBC9BBDC97D8EA5528CA41924E240E544A747071CACA25B05051587173C9FC851EDF10FD0171C69C2128E0ACADBAFD72FCA96AED457CAAFAF51DC8C30CEAC70CB4621CD4D7B4C692176B38737A053DCE0551B63E3ECA81884BBF95E1D8975671A2F7F1DFAE25111BFE66D2D15C33524F478F9A6BB3AF2A83357197C834D399A8625F761529BE9\nencap_coins = 64E3FBDF8D2349A497B5C9FA3AD3F7396FC1A9769175A336181C42E95C4889D1\nct = 7B917712DA1A7026D77453800A472E8D688102E2B6480FA866ED2A5333D583C2CA907C615738BEA10F4C9E4214A209F4CC16AA07A788EFC1B0CDA4018BBBB9DECF902E78F0ABC79EA70D55B19673421FCC88CE5C39A35442BAFF4E70CED20923D46119978FE59ACCE0ECE2AB1DA63E8CA24F67C8E1A640AF16F80B6674132D379D50705466668E203B4C261C477EDBB87B6073705A388B74C97A892FB87EFC9B7D78A96783A9365C127C3E5F3E798B8CC4B6EC1A055A8FF26C9664C7F38D5FAB200AD1CFEF744F87DA9C035C1FE14C17CA3D69CB22953554A386D2FB885EC8BB1C00CE72DDC5E49DD2465397B0AFFD1307C13F7BA100265056D6CA47282D3BC383C0DA46DEC638D7D776BB3F7D959025ED1A3673C40DD2F0C97402707E345A27A7FE148429C300DAFD9D81E1EA087DDB12ADE069336E6B7B4ED015C1997B9552D18F2E44C18F0172B29F1B174D33181F96C86892F55C96DFADC47182FA7CB77302E77F8F3E15C4D35B63F7B06D2B41AE3D6606F99A82C65635889AF59C0BC06C5BC6059AABB737AF95967E71AF501878761603D90950656319F0F5A670F1CEA79E57BBAC60BD61A76707BF449808AB203B986D82371806F7AB15067CD847130B98867E6A5164357B4343AC69164FE60A0B015B4217390639E4F13AB8108C6F241674B935B78067802F3F304620ABB3BF23A45E033BDDA525331C43148B5D733FBA03907CD28D4194C5117CE33F9D920A81EE1C9F95D690C6350B8779910516D8A4750EFCAE65AF47306F4BB85B5D0D0F3BD67D4C35DCA24A2CFE065BDE832A2BB4F82844BF62E90CD86E671CE669C5D068BFA4218F69012A0B0A22491FF44FC1892E6F85D072582B48164785FAF4AA31ADFC648160F1A2217977CE58571B1BD7E30CF6D3FF3B186B254287ED3DADD7F970012B11C4F1EFFAB9B151B1B6C031D024D1A16F6D5902639A0F31F571AFE4A32251F729976A52FE006505B6D487C8D78EF92292048BB50E015DC7BAC9A8D551E20F9168DE57F14591994717D2075B48061A0FD01968B320191CDA1B2FC2A6098CF78CF03F6E71268FB8C351819CCBB431F13CC60474C8FC7F2FB72ADA5174746A9399861CB0C1EDB6EF2F5B65C6628BF0BB67AAD660FF761CF0ACBA8012757F8AF280ADF49B0CBD9F7C0F0BFE08604D0E63D92E2E003C9B48F41F490125E5292E29903FE22C5AF046284D6BAA9862CD0BCF4739C02065D9B268315D03D0DE8D5E8CB7FA6CD755A78090E440AF9AAB0BE4E3FC4225B2DF2FBFA42DAFB5E5E622AF54D61124C63CE5774073891FC22BE1564A5669169486B728DD8B4EA52FC45FC9E81A64645C361E27BBF69F3226DD6FB5A1BA4EE0521F26EA9BAB2CD10A41A2AA1032E9A72FE17C4EE678C65D29178578AD5EB00B329F7DBCDBE32E16F2400722B46723B31462FA95C59ADDE1275DB2C91FE246C90FFFB263A11582EBBF007C732B5D2AEB872242120881B1B028A65C5461D0914AF199A51399899DCCE506CDFBD1C07F8EF28BA59A2CF8A1C3A1FEFC08586FDA5960C2D3E29A8FF8DA6DC1C88ABA7AEBA99100AB5C6B3BD259442E940B5311ACDAF9BBAE8DDA07E2D57BC51EDCBE7519D3235A1891ADEB3A5064C1EED8D1F76EE54C91D3C8E62357C80F85D497306AA4C54DC021ADC2043D20B18593E5E78A0DABF7F5D288A6C673498D86F9D2A283F720B0AB26F4F176BB5573CE7EF4E1B2F7044A218111CA59293B0ABB415E75377A9EFE241E8582517C5A9633BBE6466C7503127D456AD19E5D284E6D8C0E540AC682AB7544CD96D27136DD6629C7A6896D0798E13CF6F6007DEBEE3729478D513C52946D9B6CFEDB4D7DB9BE91C5C755CD956B8D7DCC45F57F0E2FAACA2CBE1AB2C44A24E12ECD9A710B7172A0F89C86883E8790F51F209E693B27F4470215AFC1EF59F5E6B0B8DA4EB184D049E5D5D866DE5710324857963D8B47AB6BE88A96EAE9FA17167351CFD1F628C982304C4062D9EE82B104C97E12E6F4C138112A935D86715213D0AAE55F6E96A0543DA5A95F7A52E984DA1C89BA526B73FE82DD2BB3521841EE042F0B737802E65ECE7C3A536F79C466954C6984ACEC4373A786FE77D7FAC9475FE2D0123CE08B81E17B9946FE90B808F000E3F94F30C52B667A35EB94652B56CB02B955BB8EDF0AB89298F8216A7A10B2E29BF119689E7F125AA3274CDD691B9A2D8B653BBC437A\nss = 18EA5D2BBC7A8F5FAA941FC319748DEC607F679EE6E485059BCAE1C25477C09A\n\ncount = 20\nkeypair_coins = D304C9389CC973477F169788ABCB9D511F843219D246A9B587822F422A70C23810EFE801AE61866A7109F40ED932E67B0AE9E966D1EC5F917E4A9F31A27EE13D\npk = 85E9A58FFC4AACB3C476327B705515C6F1980B53B3654720296742B3A793258138D86728F4846FF1030F6F604D092847F011CD59165B9DCB400A8723AB79BD137566D709A5A7F62CC7A7948331920F75530C915B1BB086E422145DD74EA1B557F68B511FF8A1EC0A39845C0AA94C2BC05922E3CC52C7F59EABCAC2D36B5535EB0D7737768D6322023A2ED2FB0128C2724442C794D794F302B89FE8B1A3E8326253362FC44BCE193FE7725D1864ACB29BCAF2C0BAB9423DC593733BD99C077534CDDA88F4BC2FD846B810BA71D2139FE1F50ACE7821FCC5C9AD7C20BAA4A430B8085441CDABF16251F8B686359C755981EC4C8FC834CF7F019E599051AFA87584F2C41CE13AA9BABAB5AA20204974A10BC36D4AA1C7706A3838B8DFCCB1FE16038D78AA78EB3594998A20C72337405E2F36683A01B87199764B533077688A9A755C2C38632CFA4C2047663E860A2998937703BA0F1780FF367918EB208B917CBD340B69577806E282401767C258B38B0C6B21A057F42B59A6DCB2EAB48063116FD2B1AB64C0A864326E8683CB63E053FC03A5F6D6B58F0820F500AB1D78504DD80991E68FA6F91658FBC64C594D32A507BE17B465684DF8E65BD5745FA8D6512D382785ECB9B207746686AAB683B0CFAC43D07A0113317CC895A513776611B981F05BBF7E1BBF867923992441176135B394C6DEDC8D64EA47971994CFB46BB7692F47E1B372994F3EF19A282799CA530AC7B82FCA207537865EE0F4C73B0A0A84E1B2D2B058175780A287BA9A435A0FDC24FDF48EF579B55CE1B55531019060193FC5CBF013A8BF521C1F459AFB125C78D2377722824736CE01901A16A54652D064E9058F918B5552936DBC77136B009B2108862F962244597386A2B078C6B46308436144B75B9926133A46CE1C44CA7B5F52A678463191D51953A516A1C937101FD236C962A8DCBB671BB1BE92035910EB0B40D8672317AAABCB04BD8B716F104C3EB49C1E5BCBA7E17D15861671950056E5278B845AFD6CBCCE9B2119D86FA1FA067F1C69BFCC7E693020CCE979869588337AADD7D6AC7AC3AC67A3034A035A12750DC30C99C8692B9CD74EE2918A23248A3A6875E25BBCE8C6902CFC81AE878FA4BA1DF57523D3013FA79A9AB08894004042CFC00B0665BB894772E648CAEBEC8779A8CE0A38B05043A8F3187F199A56E2143845246810C33B9B04034791CE31490459733FF1C7752864389CE3BCB826608F966342147D6A3626C4AB842480B571A9487BD8785C37A7ED10C8CADA99AAD1A19B144ACCC2BE8A17BE87111093189EFC951D08799B5DC46E46E571B370B74E881326DA687EA02E1088C400067EE3D885C0DB3FBCB336416C74398132090971E2AA1FA9F6CA7AD186BD4C139BE57665595337687742B1AEC0DA12922783C6ABA7FED24D18D142392B26B3650731C07A15A987455986252B8234123E3A4A54C08B599F1948D1383183992E2CD17D3312CD9B3CB4149AC98EBC054F17CC516C67D8B26517316143C6640EAB5134F41D6987C25454CA62070C985B2E0EEB24E05870667627CE5282F95635BE4034D90232E997C18409B1D4991B7F05926E5AA6CF67B5FD569FBFA9493FB3379D1B6DD14C54B9328CC492842238CCB6B652DA6C037AC6AFDAE2BE4B894DD66A70B5840F20FC18BBAAC111486B9558137269732F2924EE050242329C0D1583BF890847B30D5921198814420B60475CE0047D973269424C54BC9E3B4C94633C1418DB9A03A62F6CC224C59074809B9E023A5ACA5757D3A789062BC3067698A5F216FB2C7355609A99AACB81B99087A087ED64CBC462301754931048999A2B9B0E06C9F251BC41B39092201CA3A727B5E498E4DB782DD53846C7635AC12F6E89C30480BAC297188338A58F338D6B7075003278CCE876BBE18CDB00326E44745A4009209B04FA53CA742438336AC4F9CC337B1636898170A1D97C58661415DBA67935162636A87F01BB87B66865D415360220EDF89D0514663DD73A951070F68653B9C2B637259A395C500565B6B5A05B3F6555FB249946C9904AB40256D63B1D6C2344F80DBAA5B1BE7B10299A7DDAD03781983F8ECCACE5C85F3C3BB3A9D61C040141757A2E881C33A9784E48293374CA497CB59E12C07A4B6B420D3094400B24CB49A9BDA19C123C24504ECDF72189DFA1CD24EBF011A3BB66D35F78633E1EE7B249FF\nsk = FFD8874D8B37C946409D69CB03529B7D1A43DDB24792D4773CC723643567671B8E0FC2B903D302679A530118AC453B0541A2389C46B38F317B43130972271D8146A66593B8FE659DB570C941F1ABB4F295493085A85277062C3D4DB168E466015EA506", + "B5B8A805A435EF6812A6B68AFA9372776717C1042E24E7A10A842182E7C40C4CC547B98FE007A1D98804AC5BC3C31B6511425A558C73E5B1935C7A664EE224955B6D67CA54D47B04E1622716A27B21F12A2EB27C16D26A541CB0C1BA5A1A8629B7F2222B84CDFED9CB6F666B41C92FD0B074F42B5D2EE72E8C5443F34C5DC2920DA165558AF074E3CCAE84C1CBF1F70624E1A3A30A7DB045A2C4A79BB1A4B0F01187BBD8B29A8C60B07068A72264D9B305B5E391521BB945D53CE1D65436441932EC5867549408B47F28D3BF37D7AF0DF432CCFC3667F4ACE969542CD626637B570FD84210B3AB5456B23B8B339F4885E9A96BB17CCF1CA4A962C5667D0C3DFB356146C04BB8391197D54D0F4202F160824D900B27B36BF8ABC7876CA331C2C3A8A161D98523ADFC1EF9D538C9203A6729CFCF6089F7D72F57093EA3A34113749F23EC21C051AB2C836679B0210A549F2678C7187691DE949994A25769D4647FD992BE411E24E302C07569CF26C11F3942CA505391A794D42C77DA0A324B05908AEB9C70B88B38A95F371B1902E06D071457BBCB382AE4C36F14AB3A747A30CB7E9D35791879873A0333B3FAB967770465A056DE9C4420662C046AA8CA32093AE23ABD80406FE60BDCD1725DAAB0E50931C575A0C9137FA61442B1101B05686D398A6FDC0BBBBB25A073E99C3702B9268CA91420A1198B5C54501A03C878B6827E6D586AB42C2FA47258D1255711654968FC80E1364886F18E98FC10EB85645B399788DC225B1A233FE564604A86397A4483C102203188DF667961BAC9EF19B99432475C0A2C9978C81CF5314A2B2AB37479549B14C8D70ED8F0C6625938CA4A92BEE5A7AADB286E507EE8890772C3353E35C2DE8696041BCC8B81997F8C7800417C91C32E9B8B34B62A25E5C2AF2854CF902269C3C5B50A5209DC1C63F8835B3A73137D855C69F9335FC66EFB985933F4A66B084AA58909E658998A15AE8B087120F59A00426CF9A327DD48467F8C12CFBAACEA7BCA7407060C42950CF9543CAC1EDF9C296D978A2C36AAD92B665D6C9513B59278AC1CC781204E555E27F81E976A74D3055A48035203472960E596C7C4C2D0158A006D884F40681C6610F1124574EB9FF5323E10480D0E306F1E398AD1E6CF8057024D072DEF4719E3A6BE9AEAA07B56077BE495A635C67066A2945376C9836EBF4C413A05A9B1348C31329884BC7D820A6BAD7A63BD62518878A97FB525332433573973DF74A00EC02D50198A2B1306005335E6A51191505FB244999CC333BCFA4E7845B766B050CF66607982014D28548A4454F86A06E9321C82781478CB938C709EC5CC81EA1A9269543DC8EBC6D253BE1698990C81C587D7263E7445BAF53316C23EB8863D151A4E5659928AD704C1C7B2BD2A1987907A05CCBD2F0C78232A10653452E3DABB7598CA83D37166791EF11A2524F371180984BF72A6E2291301606B7351A284A1A66866044F6088BA91217305BCF24C759BC348E75325AA7CB4C6B41077979A2B02B137966016868A66B1780BA90BC7D089B97C6BAE2963A2EA3BC2072EA1841DA115B83139401A9416DB7C8722306D3A81BFB4D1CB5D964F04534F7F79C6DE1789CD6767E1F6930C88B69B168CC6574E84C9C282F257D2200BE0874392E12C57E6C989D8320B1C1135F88C97D824EBC82478CB4962EA409DFAB7B61C1091B15072C18BC46838DBA3C1F6AA00EBA64545ABA2D0AC9F44D3A2DE976F62B8ABA4396106F031ADC4020D46C78D94350DC0CEB844AF1BAC32D1C27CD3E93C6D279CFD3C0D20255B8F11533DD387207C8A8A4C8FD51472FE21350F274A375A81ACA592AD450091AB07FACC360E528F7A6A6E41265D45F513A260605A2595A22C3AB5E8396FA033DD443DA518C44A869218052A3FE06A20451EE4ACA7928C521DF980D73B2B7431BA37F485FC29B2974C1DE5BB80D40708C5F869CEFB8D24A56C72BA04892078A963753C105F088C8C326C1F82B3B246A75397D47435151FD314B9E5284385E9A58FFC4AACB3C476327B705515C6F1980B53B3654720296742B3A793258138D86728F4846FF1030F6F604D092847F011CD59165B9DCB400A8723AB79BD137566D709A5A7F62CC7A7948331920F75530C915B1BB086E422145DD74EA1B557F68B511FF8A1EC0A39845C0AA94C2BC05922E3CC52C7F59EABCAC2D36B5535EB0D7737768D6322023A2ED2FB0128C2724442C794D794F302B89FE8B1A3E8326253362FC44BCE193FE7725D1864ACB29BCAF2C0BAB9423DC593733BD99C077534CDDA88F4BC2FD846B810BA71D2139FE1F50ACE7821FCC5C9AD7C20BAA4A430B8085441CDABF16251F8B686359C755981EC4C8FC834CF7F019E599051AFA87584F2C41CE13AA9BABAB5AA20204974A10BC36D4AA1C7706A3838B8DFCCB1FE16038D78AA78EB3594998A20C72337405E2F36683A01B87199764B533077688A9A755C2C38632CFA4C2047663E860A2998937703BA0F1780FF367918EB208B917CBD340B69577806E282401767C258B38B0C6B21A057F42B59A6DCB2EAB48063116FD2B1AB64C0A864326E8683CB63E053FC03A5F6D6B58F0820F500AB1D78504DD80991E68FA6F91658FBC64C594D32A507BE17B465684DF8E65BD5745FA8D6512D382785ECB9B207746686AAB683B0CFAC43D07A0113317CC895A513776611B981F05BBF7E1BBF867923992441176135B394C6DEDC8D64EA47971994CFB46BB7692F47E1B372994F3EF19A282799CA530AC7B82FCA207537865EE0F4C73B0A0A84E1B2D2B058175780A287BA9A435A0FDC24FDF48EF579B55CE1B55531019060193FC5CBF013A8BF521C1F459AFB125C78D2377722824736CE01901A16A54652D064E9058F918B5552936DBC77136B009B2108862F962244597386A2B078C6B46308436144B75B9926133A46CE1C44CA7B5F52A678463191D51953A516A1C937101FD236C962A8DCBB671BB1BE92035910EB0B40D8672317AAABCB04BD8B716F104C3EB49C1E5BCBA7E17D15861671950056E5278B845AFD6CBCCE9B2119D86FA1FA067F1C69BFCC7E693020CCE979869588337AADD7D6AC7AC3AC67A3034A035A12750DC30C99C8692B9CD74EE2918A23248A3A6875E25BBCE8C6902CFC81AE878FA4BA1DF57523D3013FA79A9AB08894004042CFC00B0665BB894772E648CAEBEC8779A8CE0A38B05043A8F3187F199A56E2143845246810C33B9B04034791CE31490459733FF1C7752864389CE3BCB826608F966342147D6A3626C4AB842480B571A9487BD8785C37A7ED10C8CADA99AAD1A19B144ACCC2BE8A17BE87111093189EFC951D08799B5DC46E46E571B370B74E881326DA687EA02E1088C400067EE3D885C0DB3FBCB336416C74398132090971E2AA1FA9F6CA7AD186BD4C139BE57665595337687742B1AEC0DA12922783C6ABA7FED24D18D142392B26B3650731C07A15A987455986252B8234123E3A4A54C08B599F1948D1383183992E2CD17D3312CD9B3CB4149AC98EBC054F17CC516C67D8B26517316143C6640EAB5134F41D6987C25454CA62070C985B2E0EEB24E05870667627CE5282F95635BE4034D90232E997C18409B1D4991B7F05926E5AA6CF67B5FD569FBFA9493FB3379D1B6DD14C54B9328CC492842238CCB6B652DA6C037AC6AFDAE2BE4B894DD66A70B5840F20FC18BBAAC111486B9558137269732F2924EE050242329C0D1583BF890847B30D5921198814420B60475CE0047D973269424C54BC9E3B4C94633C1418DB9A03A62F6CC224C59074809B9E023A5ACA5757D3A789062BC3067698A5F216FB2C7355609A99AACB81B99087A087ED64CBC462301754931048999A2B9B0E06C9F251BC41B39092201CA3A727B5E498E4DB782DD53846C7635AC12F6E89C30480BAC297188338A58F338D6B7075003278CCE876BBE18CDB00326E44745A4009209B04FA53CA742438336AC4F9CC337B1636898170A1D97C58661415DBA67935162636A87F01BB87B66865D415360220EDF89D0514663DD73A951070F68653B9C2B637259A395C500565B6B5A05B3F6555FB249946C9904AB40256D63B1D6C2344F80DBAA5B1BE7B10299A7DDAD03781983F8ECCACE5C85F3C3BB3A9D61C040141757A2E881C33A9784E48293374CA497CB59E12C07A4B6B420D3094400B24CB49A9BDA19C123C24504ECDF72189DFA1CD24EBF011A3BB66D35F78633E1EE7B249FF2F54BEDB19919171ECA777186DD743B11EC9489AEA09534C157FAA75ADF1C77C10EFE801AE61866A7109F40ED932E67B0AE9E966D1EC5F917E4A9F31A27EE13D\nencap_coins = 7274CFCAF30A61D198328BE008F814B2A87D50570B58A80C03FF151A774C589E\nct = 6762EAA5BEDA0682D16B5E70A9087CB647B8240A0235B87B0067CF5E369238B5C6BEE8CF80B586BA83553BF9724C42E0B7EDC52AFAD5A09441F032F19A20DFC5C7BD41BF35A73EF64690084BCA684680727EB270CDDD8BE23687D655AFFD9B082F55C027973C979EFAA7FF08D034F5466A4FA446BF012AB1BEF731EEBED98261F1C720889209229763EBC9FF9E0C0F1000BE3BA74A8F7AD6C2CD058BB03A6D3C01F385426020C281F476E0DF4D0E910C7DF36EA9A236CA2B0EBB2653BC774673E8F003F95BB83D2B794C7FD99E9FF0DBAC916621868EF340167341377DDC2DDDA36D1A1321307B1598F554564A1FFE2F7D93A5E0F0E62F4569A2E45449CCBED0B8DEDEBD61CEDBF7410102C00CCD237179A133E780F179673EAEE51E3C18A8B0C12F1F95E82C282FFFBA0341456A7A37C0C0D00CEA4FD00694E645855CEABB1AE345C85FB9B6D58692F6C633E8617FE0F2FD2E57BFC2D59598C65D1EF81900626F2F0A41697D0E513515892F240EA9B0FC10333044DC9452484F9BE7C9A45B2ED704FED25CA931CDF87F6177AE6266EC0B10BD21E9FB2FCD3466B85BC76018759A3F5BDDC489CEAFC7666E2E2BF7AF3AC2E45B63FFB74A385CE7B8C532E3FFF38CC4B0D8FC714BF6D3B3D325148FD6CC2195578528B38CAF17A5A8CAB11DAED95B29A035E54DCA9924831FCF77E785311DB7812EA51C06B89E1DDE8B4BF5702FCCF025540D1BCDE159FC093E8835477F65317E01C194866462B07B068CDE639E316035BD3E867E4D4A4632C02E0BE8C21C056C30F849BCB918803221137E46A76004143529CE2A5C24183AC27A13C1BC39CA46053F488CF0E81DCB024C36CC8536B028EBEC2AE456AAF5D8928087BFF152BDABD40790DED06D61313825B0E61A5DA0FD9905EC4559C810750D23A8F590FDE455D376081AF718D4690C193F4B5F299DC0A48BE420EBE8FAB4180EC670AA5D1684F433F7F55BE011EC63FC04A4FFA84B68565B782B0C69391ACDC464C01CCAD61B21AD5B184DC99C9EB3CC6F7084C850FE819D2A8345CC8F531B0FD29B04C3620FE8A4AB5BF9ADFAEAA06CCC33F8BD59BD12219956C66D7CEF43FA0FE3CF5339F43C6D56EC5E512B55521B19CBE4264004AB36F3761181D9643BFCEAFD1C68C1C05F50EE0E23D6E39E2C10C551E00757260AB86DEE08E444DCA91FC5F7DE59222F273EE3806983F26317822DDC5C53AC35B04A22A061978AEDDAF9812ADC8FF4A1E7598353C66BD50B2FF1DB7556029E42C57DBFBCD786F85C5AC319C4E1684D277A465FE74686A6B60545F360F4095F2A2EADD7BBD8C1B0B91D1E22BFEC17DE3935F4A5E5BBAAB5D2E60BDFC7E5D92C1C0C08A5F735DEB1B0DD87168EBA8D03A9C4C082C80D9", + "FFFA7009B1ABB1DA6AE423F7576B3E803252641BFACFAB1A65888D0433471AC2768DEE59EC5D0FAF0BBC3CF6E5AB4EE70491A82EB280A9E680B649FEC686CF22E58EDD80ABFB75D110F50436FFD1B06494A1174BC590AA39209729F4D3753280397549C0AF83649E2928F5132652587F9EAD2A462CD615184E95981697ECD9B16C7032581A73D2797FB342A9B9BA18392E4D8C05482E6082CBBD95C2C9BD774C8BCE65770978DAE6142C6C299AA1C0454B37713BBACC166248AF0FC749CEFC4EE3ABC1BAF8D39C5B8EDED0A7AE8D8EC0EB1567F7BBD40EFC75C6B7D4ED741DC5FF360C2AB49113EE41A96E68C6C382B2B3F5618CFB3599D050A6E753CC811481A01AF7C811D66C0CA172CAF7483D0CC5484EF53203AE3A687B10B67ADF0E53CFBEDEE2B9D6377A9259FE6AA1D82DA6E788EFFE4E72FE4D1D97BF0C11CC78E9971B7D605E16FFB4425F444454EC08B04621D9198C1EDB716C4BDCCD3120F7D9D50EFEE79D194CA8EE8C9ADE67E28EB77731A0A67EA6F614852B36FE8A8713FF7CFC6F304C0D4E64E2ED21D46E92052BF1C2B0F669BEC4BD66247EB1345EA825C41D3CA4F477B81E738E7E9779FF62B221B28D33E923451EAE0C3D99BE2522AB0E2EBD3C9B18EB3B9E37F95BF78B2DFDB98FC7B7BF27B3EFE27B857BB1B8E3366B09FA19DB6F8BE09DF50821944EEE25AE57751F54D34E6D56480129172053D6BE2325F973502D255457EF1EF2B25E12D724D687E110BA1027E55B4FCDEE853312254A4A964EF6EC1FAEAAC9419210E5D444EE635D0B7B7377AC59B258F32D116CA5ECF34B2A683B1\nss = C66F2FE012C22F81E04C0BF8B42F12B6C1465A8432025A9CE3519148873122A4\n\ncount = 21\nkeypair_coins = 89A6E3BE304A3518FB82B18CA730F0B359CD6BA90664A493FB4F8EDAF965B9C3921BBFBFCC283E1D1DB36E99B9CC6CCFFFBFDB86DAB7B6C7CA02CDA227DA8632\npk = 16E63CAC8B2DD05A60CC593000322C9C566B472B375E8484843AAC71E74BF0315AF59A8A4F6104A43159E198716E239247204753F629C5202C7812C9AE2351D88B4256E7A82B42B15E54412E0130D5E25388240FC05B253E7B0C94A43C7E96728ED78522E688EC2691B70943B8CBBDDF19873E67766301B386B088F71922CA370916319D8F099F263CAAC7D7C0F81959C4B13A0DA0B5C269760036A552016F8B591F6B37177CFAC940F706C975A59DA7C04FC7210AE32508C28204EA204073C73B474D74B54CEC08BD14361B144C481FA8561B6C73AEEB7CB0A65BE0965B2176705949613C917393761EFE2C2E4DC73D4998A1CFD6A2FF278B6F68B1F108151B857EE913B3568171BDF1502953B81FB085650BD027C4B66A8276319201AC328604100CA4F684F2FC65F220CAC1DB9C434A218814A14CB630B5B18410E11C37C92B31600E37C8BF12C895B1F315F0DA01CAB250881966D3C8256F5513CFD68E383BB8AE248E27F3B479F7A82DA2AA564B121586BADE1AB522776B49A02A16E3A798ACB005D70D3FF24A8CA3458A826788AA09889293E4D862572907111071F0D58D679A0C620155FFCA45BF03A1778941D41776EA11CF3EE899912C703D50C8E88AC447B2BB0A0CC3BFD83EF3261CA592915BFCAD6CD26409472E4BE62EBFD65F003C59D39B7F9F710F6A76A1E8291C834323F145AA3B8A9E2E4C2E98621074C49FD0716D3D61A2787A0598E8096AE05FCD7AA4250A7AC4A5314C842B8DC8B563C6B8F626763D865C141474C72C1439BA7012661985A061CED9679AC94983957DC99C4BD4061EA43C893BB707C0F633787C1B11D8622DC08C47954EA907AC1513AA3C4420DC48366E4045C79CBFC3B52415324E8C6669E52C2C16B1722DDC7D521558180781898A2E681A55693398BA712712B9C515D72255453A3C4212BB7B3692B3998D1BC6781CA28FEA483C276A92C219A62797A88702B2587005208512AAB304799A99ACAACEDB1699993150B41AA3291423BCCB6DFA31A7B42BE4997581B9AA54716CD5D62CB1B9BEA0E8165EAB6A6300242BB5A711F36E9A43B12E24492AB95218E084E1D2976A222024263E4C87CB93CC4FE556812096686AC72152F1A8A12B93C6530D08C99B9BE3634DAB9C93D27F2A4099304B4C61A4BF0FD9CB28803D0824C5058A515DC69C81228687376865852FE9DAA07E45A889E650E0C58FC2CB71846B5296E76D71105E87AB2714B2B82E06342218822642ACEA28700486709C43B2FC421EEDA5070CCC8AD1367CF2834E88EB8FF8D2059F455C2DA34843418CD3449497B753C92826C3174E5E304437C04C7F518FA2EAB149762C916B1C6A676A8D5B3BFF02B8EA9A366F1706BE888FBC40285D6CBB924249CE963646595573B5A5D0079FB9B0275FF031797899AE0BCCB3ECC32EB48BA3769BD5E56667CC02723C773BA00924A961102225F2B88ECEF333302077C2C761F48991755A83E09B7C3406BC8784031754BBAB6B49C361C93F5AB9778B39B9CB66501B63D8859AF0A00BBED32947B92F49961C5FC38BAFC9B0A763802C9709FAD39F040C6736A4C45A110A08822E26D93BC6CCB566A687DDB786F5D31378505F5D575746C3CBFFF55899C933F0052E1155B776B9201F0272BCF67C3FD26868BCC42B2B9361562BEC56CE1991AC7347B6BD500065E990B257BF20E1537988A560DC21AA652E3BC8650D80870A1A4190014FD1C43229043BC1068A5FA074FB5087581A932DDB5923730BA05216895BA1E67947C71AAD452861371A542325607A7752B8485C48FA9CE930793130996BC63D1B162517C34449F5263077A41F576150D8B062718E493242F57041F2DA6F271C0C5BA3A00A8C8FAA0AA9FD61073DD70ADB7991DF8A143E797A9CF6B0CF257CEB347DFF45CBF6DB25D5928074B3A6ED918FD35895BC7B93682897C0D322D46755962928F3390664499A14DCC025B1C0780858DB32826679A923E20FF56755A26604A2C8606FD7087218232CDC3B488423FA9328F9ECA8EACA9FB4311777592157B46E4476C885581F6CA524AD1CBF663A0591A7679E515DE5B65CEA3A0971C9139019735D421A25F7126A9BB66F67C177F3873BC5A8A7C06026913A631B1B370AAA17019A7CDCBC22A24F9E38A69637928788BED0560A235C2D8DBFE40DD56CE5DE6756CC4B6AFDF64050DA2EECD9953E893C53BF7FFB\nsk = D32CBC1116AC88219F9AF2C33BEB59BB94B372F97815278F0FAB2C690C94B8F209DD1575BD7C0BC7F48AA133BFA068CF1AF1612C3325B8D08963BBC66D938F46843FEE424357E535C2259ED958A75CA6203286190BE53A9B46373F8B41CB38C1CAE2BCB91898669A872F1A8D9CD21227E42ED655569202CC6B494CC6A6BDB08731CDE417F48B86554CCAF953B8FB70AEC727085510CDBAA7CD2A0BA853928886332FB1E3A419C49B34EC90FD31B716252ACCE7A79D05CC04074D69AB3CC9809102261A2191A086231DC70AA583E86912E5BEB2C1A22E841F39DB531D5C26CC333834A20480D6B1CCF19A654149045791D33B414696375DC3C7B0644626E8822C5325D52BA764F2361D853D244416CB9A5BC0540E1238CCB53438C90A196A45571F743894F060F6031FD623ABEBB4AFEA05190DD9452C981352A78E09579F05E24DB2033AACFB10D9335986E8542D9480BF5603FA932D2D0878C3753E6524A809324AD6F169D7FB6D9C0264423A632996ABF297707D8412A6B86160B69980E18ADD1C372FAA406F540C00ED0A75C3544811759C3B5026E6C19102B7160883ED002DE5807B5933934FA01559C4A790230EE93C215BD75AFF117D0F170B4FEB7AEF5B007ACA616E688161FC00CB037C8232CF2DCA569F01A2E1DC2AF7ECB6111181F2EBCB1DF27C6EA84251D8A2B6B6582EF915E2B8C7F8FB6BE8844478FC570B8054A067B34120B47FC6AC68125CCA8514DB4540B7796C9FD05523E7014DB34B8EC94D5EB66C9F5CAE2F838191D2234F43C72262A18DEBA17AB495B7F0529D89B8E1E407BD5A185EAA2444D20C6C9566526B8707B13BB0CC8D9589773DB90952A5CD78E43BDC68CFA4401D7912618F456EB4F97AC1B49AB948592976233F962B1916531FD1672BB69BE320A2985B38B80279572488C5F86BF3D55FB9FB90449B66FC874B94292000466786FB7E393765C7057051999711D234B4D277419320E0046EC0925B41D6B89C62133BD2734E296DCFE90BF6344219A6A22D2CB50C75BC02B07FD0DA11FE0A0A0B9AAD76001D5D7C8FEDE065DDE87D5D47821E756A926638395883879A91B94C6164A40895476269917CAEB12944DC956174B6CC5154944571A6F6553F604D3212728FB08AF6E8C0EA00265AC0C5464595B31A9131871D79298867AAB426D009480C0BEFC08ACE14991399079CB62DE9E6BC80C88C3339640FC667EC837B691C3DA4556A952B3E63C162EC911101C5A49B35475AE68634A7B0CEFCCFBEE608CD4C43C8EBA7A8F957DB595645C64ECF08B50C7438BFBB415C27A45AE940AD077E5A533825D998A9095A735B5D23887B0048AF49CA85F18395C7D3CD06BB687C92CDA9AC9C03A9333A866A9639803C76B5B189294A269F389ABB5010789D410B88215C554008CB10274F781ED6B0BE3903576CD16934C4B6B65296C477AA174043F06792F3944EFD0206E34042D827CAFFD2989B936B91694825C4BD8B10C0777B11971CC1EFB93EC1B3674AFB4FD07568FFE89C707B5785C140D51B433B7942D88A6EF9BC9D091472833004005AA803A050CE03B2BB551F62FB1FAC6649D3E14F0141B2EACA73B700489B73A8D840834A7802A96864610B10EF5A030A6670A866B02E13C3FD48056C092B241513F1D498539B1D68F498CB049C99D33C32E1B491997697A0B6AF529E63A85A0A7B8ED6C005D61963FC5ACD1E609AF8160D6F823063385065640452815AAC2463AB8524E2713E3F584FD475A23E46BF79B97F83403FCA999C1CEAC629F47261E499E211051C7059E4AA14C2C4649E398ADD5B2CA1D070386B4F9C284F84C930610A3B22936090F3C03FE7A25EF323F2C326B3A7C9A7A5CEEB395CEF08CA8009A810986F33164054B26BFA61489B38AC81390BC6CA863455C22B589E8A4BB5BA87AA0AE03FDB611B7F364387363E728A6DE48AA47AF676E73AB655396711E64777B27FE45474C3F29495939704D34E24661CA43AA94B71CEB2D3C008B135A7115762997879C2391CACADFA092779308080A1459B09AB16E411157ABC386A0E8E322CAE09A60FA290A91419D47513788980ED60A40BD86E6CB30481C65A853A188442004C93421C799402E639DFA3C73F9B227C64C0F8C17D4723A06C73A9AD02AD2571587058513122012DF86D16E63CAC8B2DD05A60CC593000322C9C566B472B375E8484843AAC71E74BF0315AF59A8A4F6104A43159E198716E239247204753F629C5202C7812C9AE2351D88B4256E7A82B42B15E54412E0130D5E25388240FC05B253E7B0C94A43C7E96728ED78522E688EC2691B70943B8CBBDDF19873E67766301B386B088F71922CA370916319D8F099F263CAAC7D7C0F81959C4B13A0DA0B5C269760036A552016F8B591F6B37177CFAC940F706C975A59DA7C04FC7210AE32508C28204EA204073C73B474D74B54CEC08BD14361B144C481FA8561B6C73AEEB7CB0A65BE0965B2176705949613C917393761EFE2C2E4DC73D4998A1CFD6A2FF278B6F68B1F108151B857EE913B3568171BDF1502953B81FB085650BD027C4B66A8276319201AC328604", + "100CA4F684F2FC65F220CAC1DB9C434A218814A14CB630B5B18410E11C37C92B31600E37C8BF12C895B1F315F0DA01CAB250881966D3C8256F5513CFD68E383BB8AE248E27F3B479F7A82DA2AA564B121586BADE1AB522776B49A02A16E3A798ACB005D70D3FF24A8CA3458A826788AA09889293E4D862572907111071F0D58D679A0C620155FFCA45BF03A1778941D41776EA11CF3EE899912C703D50C8E88AC447B2BB0A0CC3BFD83EF3261CA592915BFCAD6CD26409472E4BE62EBFD65F003C59D39B7F9F710F6A76A1E8291C834323F145AA3B8A9E2E4C2E98621074C49FD0716D3D61A2787A0598E8096AE05FCD7AA4250A7AC4A5314C842B8DC8B563C6B8F626763D865C141474C72C1439BA7012661985A061CED9679AC94983957DC99C4BD4061EA43C893BB707C0F633787C1B11D8622DC08C47954EA907AC1513AA3C4420DC48366E4045C79CBFC3B52415324E8C6669E52C2C16B1722DDC7D521558180781898A2E681A55693398BA712712B9C515D72255453A3C4212BB7B3692B3998D1BC6781CA28FEA483C276A92C219A62797A88702B2587005208512AAB304799A99ACAACEDB1699993150B41AA3291423BCCB6DFA31A7B42BE4997581B9AA54716CD5D62CB1B9BEA0E8165EAB6A6300242BB5A711F36E9A43B12E24492AB95218E084E1D2976A222024263E4C87CB93CC4FE556812096686AC72152F1A8A12B93C6530D08C99B9BE3634DAB9C93D27F2A4099304B4C61A4BF0FD9CB28803D0824C5058A515DC69C81228687376865852FE9DAA07E45A889E650E0C58FC2CB71846B5296E76D71105E87AB2714B2B82E06342218822642ACEA28700486709C43B2FC421EEDA5070CCC8AD1367CF2834E88EB8FF8D2059F455C2DA34843418CD3449497B753C92826C3174E5E304437C04C7F518FA2EAB149762C916B1C6A676A8D5B3BFF02B8EA9A366F1706BE888FBC40285D6CBB924249CE963646595573B5A5D0079FB9B0275FF031797899AE0BCCB3ECC32EB48BA3769BD5E56667CC02723C773BA00924A961102225F2B88ECEF333302077C2C761F48991755A83E09B7C3406BC8784031754BBAB6B49C361C93F5AB9778B39B9CB66501B63D8859AF0A00BBED32947B92F49961C5FC38BAFC9B0A763802C9709FAD39F040C6736A4C45A110A08822E26D93BC6CCB566A687DDB786F5D31378505F5D575746C3CBFFF55899C933F0052E1155B776B9201F0272BCF67C3FD26868BCC42B2B9361562BEC56CE1991AC7347B6BD500065E990B257BF20E1537988A560DC21AA652E3BC8650D80870A1A4190014FD1C43229043BC1068A5FA074FB5087581A932DDB5923730BA05216895BA1E67947C71AAD452861371A542325607A7752B8485C48FA9CE930793130996BC63D1B162517C34449F5263077A41F576150D8B062718E493242F57041F2DA6F271C0C5BA3A00A8C8FAA0AA9FD61073DD70ADB7991DF8A143E797A9CF6B0CF257CEB347DFF45CBF6DB25D5928074B3A6ED918FD35895BC7B93682897C0D322D46755962928F3390664499A14DCC025B1C0780858DB32826679A923E20FF56755A26604A2C8606FD7087218232CDC3B488423FA9328F9ECA8EACA9FB4311777592157B46E4476C885581F6CA524AD1CBF663A0591A7679E515DE5B65CEA3A0971C9139019735D421A25F7126A9BB66F67C177F3873BC5A8A7C06026913A631B1B370AAA17019A7CDCBC22A24F9E38A69637928788BED0560A235C2D8DBFE40DD56CE5DE6756CC4B6AFDF64050DA2EECD9953E893C53BF7FFB7A9232085A0222B9C863931EC3BDBDD51BE3F16D6CAB3009C138E0C8CB692563921BBFBFCC283E1D1DB36E99B9CC6CCFFFBFDB86DAB7B6C7CA02CDA227DA8632\nencap_coins = A0462A5F2A6C43D1198D54097E08D20C53D87B7C05DCCE5418838FA8E73A9C8A\nct = B4C5A25D15D4F94244C8F611D1208FE8725CE3F735CFD4DBE1E7DF8DB1AE770562526C87AEA505BF31DC0BA1ABC34765F92BB0958435D983BDE9522103C150F4A38C9340246AF458314396C5DCD5390BC4628046C88A21F693CE277AD6203B82B2617623A53DD992527B925632CE65EFE005EE8FC424B81F5647670B7E166E5E44344DA581C74D70D7256E1ED1FED29E9242A066EA433E2573722908ADA8BC0C27237C2D731F8306A5AF7E009BE26C0BB1A81D89D0C81664DA1CFCFE9C52FA434B5AA5895E522E120A2A03DDB3A0F89ACED9FD56823C8C90CA85692A3B9BF4806652D8ABC90D91010F27222355988D5ECBEDE5098AC0BAD8A79C8FC7D653F3D7AA8B82CC6BF9CC7E0A0B8B9D1B87191EA4F46F5C640F36202A2E63630288492867B1F550DE71FFE4EA9316A93732B5584E15FA390B3E5B0515EBAF833AF63922A2D9A7D5E50058C7963A6B2D9174FA529C0DF3F7D73B762D5828F4856345FEC4EC879DFA83D151503584036B85FB8FCA51D9A914C97B20D41FD84DBBB98FC5D4E90EE3CD76F5682336B3C7391AEA4B2A2EEE8A6B806DB1F273EF72CDC858B161E8FD92F88122377ADB036BE8D15C4B2BBAEAAA16C24823E8AFF5AE01D076C23B8632D89023504A8414162C8D98CFC88DA9036053A33E05D8AE9A20AE5D0380BEDCF27EFBE8DB34C22C854C5C3027D01BBD9E28F21E44843BD0E775E64D2A4ECF69C28493C169383B0108DFD174743DCAE18503F4AC7B0F8749D1CB5159F827B0940E0D2EC6C80AA88E193C6A774E977EE82623D0F3ABF67AF6FD1EA15770A3C8BE82D90ECA942DEB3AD0F193C9AC19E95D32FCA5A0C6C87BE1EAED7813C5887D1D2962D615AF3E855C5FDE3F0E9011A006970E0E9F23375B2C458E714E84639B54D4B244F9D708D551923197673B646E8DB0997E8FF03FB8D2EFA4D945E158EA37BFF849FA035077051801359CE3031061F924DCA3E7D9FA78CF76978292B1557939A98DCD5F4BBD53C64F03AF84ED5504DEA9EAEF07F6E8947A9E64A2337CDBCAE8692D22B7A81994B3A4EEF5216DF9851FE84000B8D5A997C0DA23D266DAD2B93E6D8554F31DC147003FB955D06931DB3BBBC7837FA9BE8668BD82EB3E54E7B9C9A78956F315692F249E0D63D60C5F41C273D3230344B3655873B37569D7D08B3AA218CA4EE4AB8784AC65E40A9259B1FC98D32EB3B96DFB69A8DBEFAC680A2215741411112DD8BC77871F685D2A5484900C94B92CF94644163BB10814F69BD062F84FA35C2AACC74975E4FF199E075121B85349244DDA5CD617BF3AA1FA31668C220887252E7BF83EDF9F1D6AA296E96478760DF433255344B483F2D9E2C73CFD7EE7AF5865665710842520DCF9E14990DA5FE968A26F9356C4C85F192655481195B484AC60433A7C1963860CADEED19E0966E93C378094252558BA845B933202A1EEA50E69AA3E560B6A8B3476991CF1EC068D0F0F4A65D7499BDDE0D31E4188C5A15367F68CD3C6A382218C2522D230158D9027B476E187E45B4E4E8FDC49953296CE8871D32E3E7F6340BCBC0C43D4E8ABBE7A1397A1BDA9F9BB549CE636BE0569D78B8EDDB697B1B697EC69DABC6A37DCF7FB1CB7901D58649E66F695E6BFB9DF1247F084BDE429868EBB9A74BAA33BE8CF41AEF6388C5D010935618D04F7A197AE7BDD69639166A36F34ABB1CC300D444288EF06F31A428976517F1B8C6634AE0F9E8D172B0E33562475373F1E4875AC1B47F50E6E4B722B37B773BA68E64838A58AF861FF0240E3D08A2166368032E8556255CDDC17D25C1989230D0BC5B360AA8137FC5D9148C468EF4AC78D32E9CDA0FDA8C2FF46B45A5FA7802913CD7F6C788A600295EE19EA963469FDF1953D53E292176A25F8F68002A0BCDE1650BA6CC2AE0ABBD8B49175467BF1C1C047055B46540A820622F40757FA1E50344C29640BD1A1C4F9B18C5DB9FB9DBBAF9C1C22FBA2564DA3CC2BEF911381064E22DC5B2EB2B074541D41ED280274610F0D6D329F99CE4A6B82226207F575F36FB443FD20115209477113023CA1C6C53963ABC2A92CA335307EE453C67A4EA4F06A74B6D863BB83673526647EF43FD0F1801BAB26B6AFC85F5193F973B7DC176541ABE4763C4583C9EA91AF88BD3D33C7FC30C91DF5DB8F75B4B6906668B4DCA400303FAA37D6D8767DEEF5BA227C97779C0F8FD91A79F5169396D4CD000753\nss = 0BCCACF6EAA5296DBB232917BBF241E0354D770DFF3AD9B6181DA1C57344BA1D\n\ncount = 22\nkeypair_coins = D569B935CE015C85F792F8F7FB0D83C4F53B492959361DD4F75FB764D656450140B4E01E03F62E5F489C39C78D387BB33B526CEB6907734A5F788209AE3C2647\npk = 8B2755C2E64D1FD9B79F5A2C7072419B955EE69A6F453B862528BC78905BCBB44ED989B5E71B9126A6A920E67A074B2960D6A3AB50128FD9CE39137B03A66968616F134BC485770E87F01304A17C70D9ADBD4159D67B888862B0B6052D9E8496084BA93D197766D10F6477679CA90FEFC6B13C7472020943B4B6305988BD9DF4A655799AE6C7C398341A4810C6698351F7CC4FA59C2B0A86418145743D2B850CD47F32502E00D96B0A67CB3ABABF62785B11A04DE252813EFA36BB83001EA322490A7DC5C54F32274B01FA71D40717FF917B81FC899E28ADC5C4A0C41742C7D043195CBF8393A84206CA1E87032C553B68776F9153B4E2E0A445D2937FDCA7539B8A2DC497A1F338802C073E891A3F834505A82A39F54544A49921E348934A028B7C54F11B26ED1A9CC2DB7C58ECAE2586168B120A2CF4487A6B34B8015E64816AF26B864B7B30B19022D5038F89431056153DD03169A31A18C5F6649F6B638D4C249B712BB9563E4ADAB4F3E83C5BD05E2617B4530161B5264EE996ABD5905E025820C7E1B1BC05188ADC559FD0A0177473D816A166025BB4402D7E98B7F148AD42F72920D24E024A4D7A8A9DADE92AE250BEA3C519AB515FA2581B1F88C4CAF62D59050E4AB1512C14B581D7C012645F89A0722AD2A1C2F2639B2B11051059549417D8F3CA8AE80FC241ADEDE55999222B05B7B7101885CDC149BE41CF9D2B9137E3BD0054CA89818E84811BC21944DD19BB2C1A54251992F2A51BA93A452C290272850225E9B2489324972CB6982C338F55192B4B87C2C91CC985AC9151C638AA741A476F25B3853AFB4B106830D882A1E8A26B1B1305CD045E112A7E7A723BA9B801C48358E3004BA12B347D28A571F8A6C05B7C81FB3EF2E324B1819DF549ABFB871E25053D3E4676C9088D277688D9F85DB7FBA99FC62306C0414654509A086D0247AEB60A9924A2BA77F76D669C1880C302E67B1E1E638E4F74628BA73E0C565BF7766EA68206FC779F9C55B1B48C350DD095A5566FE1A611EE9507E729142B384306527C7928A7C09A74E7C03925E87D71C45896444522A63BB6B78615003D5CF37CA7E55E82888C17F171AEB440952328EBFB9ECA10396B2044CE7275EE2709E917CEE9425EA4C8A95B163876A2159907003355323D56B62E243CFDC714102A345AF05F4E1052F9673EF57ABD43E802744316642C26809A9F07805EAD090A676204CFBA52F4F04715E5788A08754D23B7C5DB0D7D72AD20DAB9AD776D52D1954A99407EABC44174237B127C4670AEE6689100AB4E9E003A4157B69151431AA5BB9CF9350EAC8501895299D93D6078C6A9888A6FB783115803170C1F8B2C84D0DBB801473084AA130D5C9C99EAC4E00C2355A04556A26247A73B4A7121FD2CCA08168D2399A1A45B685A921B9C0AA339390068348A3A8CB55653987C691E", + "9C86CD67C385CD580892A01D160C9E86A65BCF63A50777B353B948E70061D03154E5EA518BC687A4A6B6C83372C0D16932ACCFCB13525457979218041AF9BA2E012F82D79FC245356AA98B11F186FD2C538CB5159CF9562B5A5344CC1C44B3703A50850358C6AB4A5FCF830BCD2B1A0C932059F2C5A43B932E32A2FE9AB9F2F3B1ACE7A3C1290CCE509A5ABA7D50A172FE51C65BB142B54CA6113BAAACD44F3EB76AAFF63A474A74614A0793CBBD7A1C822292BD75B2CD9D7B579FA995B9561A2CCCCC1DE89E861832522412753BB03A193B15C7A5E04643A217CB6FFBCAEF5A3750033E2B0C42DAB154F96A4062751E79C4AED5A1C6806B56E59B91F2943DA9D837EF94C2D1A3767A68B44DB44DFE021C47EC37E4596B4668C0899A3A651A9004337BB79C68DD59ACC18A0B6591760576C819716560159908903A32111DAA1339D8A8C66081894A52465F542B011BB607177D6AF34D88EA80D7247CCBC269AD67A15DF94F42A22BC1A525ABC7480257694E9918597A8AABD1B537B163D6DCA6DFB77FDBA61949E3C15015B567FB88B509B43D4665ABB834263A47C5A6007E2807B267AA50E8AF44452B01A62B3034BA54BA910B018C629266E26514263820FCB3390DC117F9878C0AC4B3FF899D83D922184C42990088BCB03BA65993CA46C18BF1583F5599AD549801E934B8990FBCAA46A3F6CBE714C47A83C7595591DF9225573A23664C9CEA086428DCD19FF40A06186A41FEC0723953781475F648\nsk = 818B55FA5AC30A81891F3A3643924B2B046FEB6765A61CC81C9059D1F82F6A0067A102825C88A530D15F0DD95F0B4742D29ABE7044C62D45A05BDAC46130305E3C3417D67F60B92EDEB6B2A398119AD160EE3CB0FB52144435A5BB5412C0512DC6121BF6E72D0F87A3834AB5338196FDC950A3CB1B7354C4E50369BD4364CEE9066A221DFCD580F1B914C0C335F547748BB19264B7879F206A9C610573B8676BD0BDFD777A2A0CA5EC891A1317C5289784DE114E84C53B983778BF8933805256C9A9BD05A11AF8F5AC271AC3F1E635EB9A8263C855BB230F58EA3B7E8287D76258AA57646B97560E593944C4CB3567A2C382A795C991F69BC2DF2CBA8837C9A3B58A9DAC5E4D84B50722A144737EA38B14BE51C41CC55C53340ED158AB4A0B0F0A2612962B89CC2AA8B29198F2E04B0F0CB586F271C6414F31A71A45ECCDA8C597C38415D262571BF0A7BFA17115E0C7731C70C2D01C492C85DE16C511102C5A96973C724F3B58B504EB65F56116AA7779B76B2554736D9D6176DFC6BA007A590A311D4B86A7A6251FFFE6086AB3319DB48C4DCB91FE680F45A9480241242E4AC9861B62860837CC813FADF00751C8021F7A1C4D7A1E5F13BC3E8462F372CD7498197D172EFF98B1F8BBC37974B025295A80E3525D282FBA8467F8079D78FA6068E23BDBB3349A31506E474EA228C3927A554D7747BD3621A0343CB155BC786075C3015C3692C0FC65B194A12152A14153A03D5147B0CDB423A3B50ED6461813F9AE1FD63AB7A53031DAC2D0F87CACD1CB81461C8C08BF367C4CCAE7626343469D417ACC705546293498035195240387FB1F2E7C005DE000E530B9E21CC7DBE463E7D24ADEAC1127026843B87CF6FC1BB94674399B0636506B1ACAB72F623ADEF866F883762B5B4509CBB2BE142C5C550046E10D29FA431F9B7D977253928A8D2D4C33ADD899AD736B40CB4FC656BE02D90BF8D393D632A1AB509C432511F1CA16B01139CB0627F6503BBA75440414AF97A04BC5239567C060EF94C9BA7221D4612EAA640BDBB8B72E32A4668401AA79421BA68115261A8D94878C90A0468510B247968B7463FF49A0578044C5E9147F0739F6A17B18828BDCF56966B1CAA125CDE7BA6DCE939E56D350E896CA6219A6B8947E3909361754593FB8A85E742CACB74E1D45704FA4CFC91C142453BA5C08558DE1321AD6A6A2804769A0BF69770A1264BA5148B40A3A9BE3C513A382CFA3C244C9A138EA9CB8DA7627B350CFF87AB064A079876893D893250EF59F369C41F9EA40DAA5A5984C19CE06CF9BEC2947932133A4157BB8CC3C72A1FD25715962A9C88026C018B7202885224019466540C9EB5482A87E665157BE7722BC64133C827C20B97D9E692342F23FDB1B75AB2CCB6FA5973820B92EF1BB45C2B5ED1330C1417CCFB39FC6301B8A749D3613B3803A6ABBA20990151305CB32BA6A5B558265C2E27D8D49AEF3E91819920DB20360355919D5F641922233A1C24C0045172CB10F9564A029F07578A48A4D215248F3AC7A912EF8E56E366B03C567AB978C750D85454C68A5806AC38B7B3395F19FE78A001C5867D3E90E9B54BD63954761AB7F4A57B1FA32B65F285742C1207AA06818FAC83B928E3E14644DD6999F310FBFAC9E372B576A0470A9F9C5D2293BFE5255826C534C1800BDF348B713766507674AD820DD0C7C570037C6DA35EDBC625FF0223CEA7DBA19BF044699183C1454C2C2318C14EA8C451CAC1B585324C0F9489F94A9C14992ABAAA393273E4C48B740B764216AB16DF3B9EAC38D04AA3BAC2185F250A82BE093D2359A1DFC7F2E60CBF05B4568C86824808F4E073641290513B247EC7585593389C5C0459173CC74918C7A93798802AF77553B3EA32ACD760B9008AD3851B2A5632AD41C11BA095131192F37A06975294662E4298302622A236F57F4119CE24E5E478098F20C108C0AF3A3BD7AEC511391CF77BAAA9B427884B9AA88C17B81D387D65304D75B9E5D4006DEB878BAB34151B852A5757421B82090C44FBE85A81E076F4116C025977D9AAB838624B340975F7AD16BC10678709A026FFA53748021D00BB7759579C6657183B6A67C3112BC6A8870D56DC329B483484AF78A81B5F87EDC200E4EB24386B6C882490A87D168A62818D6566B6BC5848B2755C2E64D1FD9B79F5A2C7072419B955EE69A6F453B862528BC78905BCBB44ED989B5E71B9126A6A920E67A074B2960D6A3AB50128FD9CE39137B03A66968616F134BC485770E87F01304A17C70D9ADBD4159D67B888862B0B6052D9E8496084BA93D197766D10F6477679CA90FEFC6B13C7472020943B4B6305988BD9DF4A655799AE6C7C398341A4810C6698351F7CC4FA59C2B0A86418145743D2B850CD47F32502E00D96B0A67CB3ABABF62785B11A04DE252813EFA36BB83001EA322490A7DC5C54F32274B01FA71D40717FF917B81FC899E28ADC5C4A0C41742C7D043195CBF8393A84206CA1E87032C553B68776F9153B4E2E0A445D2937FDCA7539B8A2DC497A1F338802C073E891A3F834505A82A39F54544A49921E348934A028B7C54F11B26ED1A9CC2DB7C58ECAE2586168B120A2CF4487A6B34B8015E64816AF26B864B7B30B19022D5038F89431056153DD03169A31A18C5F6649F6B638D4C249B712BB9563E4ADAB4F3E83C5BD05E2617B4530161B5264EE996ABD5905E025820C7E1B1BC05188ADC559FD0A0177473D816A166025BB4402D7E98B7F148AD42F72920D24E024A4D7A8A9DADE92AE250BEA3C519AB515FA2581B1F88C4CAF62D59050E4AB1512C14B581D7C012645F89A0722AD2A1C2F2639B2B11051059549417D8F3CA8AE80FC241ADEDE55999222B05B7B7101885CDC149BE41CF9D2B9137E3BD0054CA89818E84811BC21944DD19BB2C1A54251992F2A51BA93A452C290272850225E9B2489324972CB6982C338F55192B4B87C2C91CC985AC9151C638AA741A476F25B3853AFB4B106830D882A1E8A26B1B1305CD045E112A7E7A723BA9B801C48358E3004BA12B347D28A571F8A6C05B7C81FB3EF2E324B1819DF549ABFB871E25053D3E4676C9088D277688D9F85DB7FBA99FC62306C0414654509A086D0247AEB60A9924A2BA77F76D669C1880C302E67B1E1E638E4F74628BA73E0C565BF7766EA68206FC779F9C55B1B48C350DD095A5566FE1A611EE9507E729142B384306527C7928A7C09A74E7C03925E87D71C45896444522A63BB6B78615003D5CF37CA7E55E82888C17F171AEB440952328EBFB9ECA10396B2044CE7275EE2709E917CEE9425EA4C8A95B163876A2159907003355323D56B62E243CFDC714102A345AF05F4E1052F9673EF57ABD43E802744316642C26809A9F07805EAD090A676204CFBA52F4F04715E5788A08754D23B7C5DB0D7D72AD20DAB9AD776D52D1954A99407EABC44174237B127C4670AEE6689100AB4E9E003A4157B69151431AA5BB9CF9350EAC8501895299D93D6078C6A9888A6FB783115803170C1F8B2C84D0DBB801473084AA130D5C9C99EAC4E00C2355A04556A26247A73B4A7121FD2CCA08168D2399A1A45B685A921B9C0AA339390068348A3A8CB55653987C691E9C86CD67C385CD580892A01D160C9E86A65BCF63A50777B353B948E70061D03154E5EA518BC687A4A6B6C83372C0D16932ACCFCB13525457979218041AF9BA2E012F82D79FC245356AA98B11F186FD2C538CB5159CF9562B5A5344CC1C44B3703A50850358C6AB4A5FCF830BCD2B1A0C932059F2C5A43B932E32A2FE9AB9F2F3B1ACE7A3C1290CCE509A5ABA7D50A172FE51C65BB142B54CA6113BAAACD44F3EB76AAFF63A474A74614A0793CBBD7A1C822292BD75B2CD9D7B579FA995B9561A2CCCCC1DE89E861832522412753BB03A193B15C7A5E04643A217CB6FFBCAEF5A3750033E2B0C42DAB154F96A4062751E79C4AED5A1C6806B56E59B91F2943DA9D837EF94C2D1A3767A68B44DB44DFE021C47EC37E4596B4668C0899A3A651A9004337BB79C68DD59ACC18A0B6591760576C819716560159908903A32111DAA1339D8A8C66081894A52465F542B011BB607177D6AF34D88EA80D7247CCBC269AD67A15DF94F42A22BC1A525ABC7480257694E9918597A8AABD1B537B163D6DCA6DFB77FDBA61949E3C15015B567FB88B509B43D4665ABB834263A47C5A6007E2807B267AA50E8AF44452B01A62B3034BA54BA910B018C629266E26514263820FCB3390DC117F9878C0AC4B3FF899D83D922184C42990088BCB03BA65993CA46C18BF1583F5599AD549801E934B8990FBCAA46A3F6CBE714C47A83C7595591DF9225573A23664C9CEA086428DCD19FF40A06186A41FEC0723953781475F6481642D52117145EA2956BD5E446B895609BE84A9344FF0F5CD1EC62AF9EA9E3C040B4E01E03F62E5F489C39C78D387BB33B526CEB6907734A5F788209AE3C2647\nencap_coins = ADF233A4311B157829D49A0BCB633571230F7060F3CE655551AED8BE8961D1CA\nct = 121A8EED6548E1C0079687589091E3CDFB69DFC9431545347A3106383B74AC5561BE7BA8959339B474D03C7B04C9D32E7D75E4D609546C6A410E446B7ACBA0AC56D1F6C0B845E340AA628440958C5ABD4C98102D88CD57F4C3361FD6020C407AE07162EF90200AB836D5C3D35333AAAC0A45DAF23FB0F22A7D6D6D2CDCBC9A17CA50164334EFD163DC932C1F967A886149A8EA3FE345BADB90BA4D7E6FF41027F99D55B830478EC3948F11F5188ECDB6E40E97FAB96FD63FA8C2DFF3C0B3D0F21BD7C2B28F0DDB3A8AD589AF49CAB435FD421279A3DE57B9FBB3727B51977DB2EA591924A995B273897BFC667E74CC902FF77514DC9F79EF70F808C96D60F3C05A1DA839DCDC7B0BDF01EAD26417CD4193320FD38EDBF1FD3802B0F693393BF4BC10B38B9ED3DCE25DF46501BB5291607265B38218429DE402741E17914C84F4EC8F74F4BBB3E3DA0594FC49F3A1F1D7A18F47982", + "F53DAA5BAB9C20F35105DB0C65DFE84D59475AA58ACBA8C8FAD6DE534EA8BA777A6F408FAFB5F21A0D3175A0DCAFBFCC89C55ED009689A8F418CDFCCAB343D48C55E9866702C43C1FD63A95D6BB860536DB3F261FD5491C3EE6A306AC8FE57A770392F0460FBDEF08C4E30F4CD1C29038C12B4E3BDA991634CEF496C9A4F9748327FE2AF4039D2F0B09BC554896290DFD847E6E75D2C60E7BA76104766707CA4FFDDA5D6D92D8ECD0747AE3EF7664A3AD6D98E3F9A7F67159B54B8E13C08CB523AED46E54D1DADA42C1E99D0A6462E097163DA301900E7222540F2F54FFF19AD054C7DB6907D4912A57DF2695355ACB6A323125EAC1EAC006A7B8F894BB4AA8D56A679799B6F6E71566D91A9FDFC3498870492390EB29B35D3A1BA085204E9E0BB5AE089354F64CD30EF21A251A210CD1A138D9CB9EC53E3A8BE66633B9A1F2C37D05124764CDB9488706EE36A0A471B4EE2017E7EE9A075C475BE1C628187A86A45508526C9385CD95F92FD36F1B022BD12316630951D9468DCB4BBCE589FA5A7CDD5DB8178BF198DC3DFB9B4D943FFD7DD0C520E06F59E0957DA12CFD15B05003D8365D779D2894ECE22D60BE95B342442F2044D8DDDAA147B3A905A58735836733A8D65DDD6ABDF3B1EE484B22105949DF492C78BDF417372559FD554469637FE394BFBED3D79184F1A92DA25133A8C4277B38BB89615AF639534FB117C31E03EE669BDBBEA703C665D2284EFB838F0254FDE514B877789A7933C481B0F588A9D6095E62B7E36B5781DEA38AC8DEE71246A712C16C2A668DF0F6D9E8A35D745C1062514684771F931509365D8CCFFE8DB8661E2C0AF99B1D19EA229A0C67535C8788C1BEC5B46B7ABA41781BDFB15527B252B70981FB5B68EB994E8FA040A64C0BD427E1B2E69647EE842B41B06C42C3E2D49C76B2463D3F0ED352D4DEC92E8554FE5B1914543795046ECF75C9A8E4F7790BB0397081A10F9402C749BF6C32AB1AE13E467704A2856ABAA7EB294C125715FF0A2105857A697060BD300FDAAF926292D8196483A707EDBD90EA326BB0814506A116A58A65DCB0A2F0DA4542B8A0706E0871879CDF097914282BEE0BFE9F7D3A7B9615D39CF20DFEA7591B5264311A51CBB0923CE2CA8FD09A778BE588A8D6AFC1DDD1BE4571C67D5303B5C799697A17A83CE9890531B8C1A78894F4F2AF9F16193684CC6E0077ACE6C450319532B892530BBD33A8F0360D1FD2505E90134698C52D084CEA86471D751219A0DF6B717C75481F755D265D66CA7762DD33D37B8B3DFA54946B119CDF9F5905E8E6337859239BE8CE7D5D683BFBC8B6889A812E759D8AAA8E849FFA3754FA3695E03E03988F69F7501F01BBB6B4D678BE4868AF5C49D1874C40FFB4B74019A24ECCBDE1A5C8B6BDAA8A06B014CD0050AA83BF778E67DA33379EA70C65BBEFEC7474FE5033C1298658EB707903BD57E6456A87E33F73EF58557D3DDAADC7D28393F01C539685E104815B467D735B360C283437979649793BF4015BBC7751EA483686494C449BED00AE238F892AE04ABCEEE5B24D31C8CD4BB4944EA800D0A679E727B8EA93672E6346AC50895488D1EEA572899427DC0C6B9BCF55BAED0A7A0ED3A8E13B366A4D5066787C1FC2793375670679BAFD3C5C9260E2813F71446387A267DE7354C69685F2C6C9AA128B0A44A0C07E53C8754EF6FCDADF547FF77364EE9EACD1D33DA8640C13C4DBBE\nss = 668E009EC1565A4A71C365345DA260F99FBA8C2EE4E2D4E9210A3D90864266E2\n\ncount = 23\nkeypair_coins = 5CBB141C2763425C274F7404FE530D9116E08C33F9F200A20B011CF563A28990870A300648D2B1F1A637374278BC62B5ABB56380CDE88EACFBADB3224795A125\npk = A7823BF24C9FED4588355033F5B22ACE43A30478209A8965D587C91428B92FE034A1714535CC458C5146AA8B8C7B2C047AC76FB3D306174CC370873E25EC207DEA86D8430A7ED130701C671697185C385DFE0410D91799EE546B4D6347DDC146947A9A5692C64445AC60A9259A7596EE8421EEF78BAC115DC95067E002AA89B814DFB1498AE7829517C8AB587AFEF52D4F4068EB21686E4416D93C51EFC2AE6EB1CB1304228728769F08A4BB64893231C4BE107A6DE473AFE6A1A3969B610A87FE2BBDE35C31D1530B05AAAE1AFB69C07B6C6D4753B16588413AA588726F80CABAFED3323F412ABD2579096A44C30991EBA87BB4D667BBAB5E848A0BB178441AEC4D00477310EC4E33677925985E1AA7B9965A103CF14FDB004A60406994E0A2FA5A5DF0465CBB11A54298CFB109488564AEA65B5EAEF171716719916A4615D3AD708C8A825874B7CB671A5B61F5C3C9B9325FF964046CEBC4991343B0EB199B9099F04C97E28AAAF0BACDEB4A007F956530C712ECD49017D73C8E498FAB650608106174C7141A7373E27B3D11C2B06455B4F1C1471F8A0BC73C4299C47EADB75FA75210CD813798D84AEA44A1303C95EC02CF4602A496A86BA364BABEB7603195C7CAD66D75B46D763094FB0B2760B048AF1262954B5BF5833CBEBC2ADA183BC207290F094B6E9C2BA622914604AEBA35237D17606D1B76330172F74A06821B07D8348979070B31EA32166568C261C91DF097E41CC1AE4BCBD3E1525F179F8ACB232BD056A5E18ECA475F40E0CEFEA85D664BB87918339F407831C27DA3EA42DA34BE7BE4BEED4C8A5CA805CB209D51A826D32C2125E204F5C87944372C3C1952D5F8B1873C1C6899B85748448116B3AA85156DF381371763AAB6C8B801B19CCAA1F87C4097C3C351C62EF1C697763915EEC69389671081562E76701D805B2A62692B6F3A17FC163339F49EDD205E65AC81FEE42EB689726A960711E1B2AB7C15E385717946C27C86116B635873324BF2FA21A5C194492571AB5A7AFA1427AED8245164A23F2518A4F4016BB9AF0C14A16AB67675767D5A165948261F4DF2BF1AD7CBD259CD31944CB7880920DCB227D62B17CBA049388B340173221559F0B70BAA055CA7EA75B0468EA1997FC88C39E1547350EB4F6D7AB32142888D6C070357B6E8500C43182240863B002BAD191BC0E189C0A0F481AFE268DD9ABF93938D572CAC462C710B67507A913936739E83407412DB51EE778570692006A3399E12BEED2C2BEF5A43BF356A27D1222F267B2D6CA313315905B7550C7C150827C8EEF97803159D86127029388FB3B733A6F1B83B638DC08778AE53BDB4751EDE5CC520E7787E86CB3E5C64E69A7FC0B678783A702EAC5B7CB75E809B61F3F46848B55F4224BD2F098FCEBC7D5E98952F410E774B520413A847046149E1A36339C8807CAE45144180A2BB7445626F1B2BED9C0D9FDB5620450B69FBB972F6BECCC9CD12591B22957F94F47AD7022ACEC4233CF86E25631B8E975EEF2348776207B56ACFCFC5B1E43C3E64591FA4129077C4028C7B5C54734945A7BC986A4F4719867F219978115AEAA06929812506A40426F43A899892DE243DA4E9940DB29CCD421FDE03C80C79BA1C1A1B163170ABF21CC32130C19BA2C9F30D95B78D560344971CA8FC9CB899B082FA21AEF5110B32DCB13A369364D44F3AEA0C4E7C49F22CC0A3C07B0C134E9CA3BDFF78283592050F8C99F0E467ED39CC32A9CFF97CBEBC90AFF850A1B1A20837E02D516033EC9CB4337A1168E013587BC4DB0A7A4CB52C3496C0371C1699520D05C68D81885920812AF1841EEB8570783AA6CC0088D67BA2F7ACB19370B1A9E2066528BF38830E9C72C3021B6E49640805979BBF662404236BFB74717659268D4129943120AEEC2132C5A205B7B3A6B8BC6C944FBB035315C24666F1AE53451B52B9B850F15E0C71A086391741CBA130D07B96FAA70971A2D974BD6219A2339098356BA3B573A33B2837D3D186A26559B0D2325AB88BA9E0CCCBA484A14B2F73C54204C3111E846249A9CBBBEB8E7D1B448F353FF7A35D1600A6C8E87C06F653930BC1C3796FC0E8001A3CCE3A37745382467F614AF24C832757390CD0566F0C443C7C5539C72927EA1394005CE4B8BC223905639B1C7BABB06A4FC08AD10190D2A178865ABFA35607E1A88B47EC8EA71B102D7F1567BED46A\nsk = 91C087E623025864C3C5D9049E865C6226CDD2B39F8A1578EB69A864CCB2FA155DB32702DEF5B50E973495997E18C6C21756568802A4BBB86C5018016FCB0655B09E6A4B39A8BA2D70E32BBB255BDD296C998A21F5716D49968DD02A9C4F4CB9DC72C874C232011225F8E8840F7589C2D285C1E72C8588C0A33A502A385D0527186CC6809185408E9C7FE6262725528A439332F93A5BA2943E6DD7B30D79A25939A4C0802BF57C755A5A0EBBDC8390F8AEE407A541C46CB1530FE1642215556D20AB942DDBCD1627826648ACC3FA1367DB0B45075470196B46697D9EC6974F477EDA553F80B701E853398C69A6E4970A746534928631E6B811E533A4D1E89CDD6969BFE0C861D2CEC3E16D0035BB50573ED61B5DBD45C8C5B223CEF4266C5A6DAF104949EABD27D3319BF12A7AAA4E5F636732B28E902A1098972977D98C00A267225B84AF1C8C404A52472B8D1A793E370B17A9935EE590331256620E302E390474DD6A17D17A50291B6BB940BC43F89FDD22109A72C8ECF9ACB1E67EF6A423396225E6ACBFF2880C35673135C5183BA37DF968330CE992DAE04E9455267A195A41893194BC51C67393251A11ED3C0829D99A3D23CEAA387208E00974E73178459BDA539BCBE89F5EEB05EE21BE3B1159018A3262120C21D4972ABA1A1350231D3A646BA70FA5B641EBEA1B130470A5EC7C40627035B03D15696BE1313B458CC9AC8460CF281A6976A9D2CCAEB9FB157300B4289A55ECA386D3D8A7D16C21102AACF361578010042C3A6397E2CB2EA5224141A1D451B38FAC14D7B64BD7B72DB17408B0A8906CEC108BB926DF54299261B6B5C6A636B395ACB651CE6B6018EA9C92C1525DE1624B5570F7000466CC09A909CF36F34687265B61DB6BF2882514705FB37346385CBF4DF33B98686E0189BDDEA7268F598DB1B6CC7B32792D5546E242A807E760ECE7080392823004453048C6F743B87C1670C6D10E3001008A24590294BC9AC899BD588197530FEF9C2B85AC66520A195C77A7AFF61672C8CB74C07D43A2BAB7A764E750663091A005C9AF8CC4B55D502169D4293E79B365F60085B1CC2F4900541588819B5EDCAA3B80253178639F63A3091701C7E7B04E95435BDD2114BBD3ABEFB23355591B0FF102BC94B56B338083B82328712733F2762C5B1D0845073CB3B46AA28CE2CB282A4347F2118A6E062D7E8524147545488A01378A853D489C03EB0C6527307FB0CA5F7AAB6C328438D33CEDC10733AB8A68C7AB88E0B06FC51C92C557FD59488B6245796B7DC291728121BC7643AA5D56C483186CB55086D7E8654691CD5EB97580F0A553A2613C486C0B9566A6F05F9D2B82B57345AEEC1368CC126AC53B9E794BE471C16A498B743C1848A14D53478FC341A0ADA42BC2E0717FB6965737876468515195050D64079D624DA1596F88819FDF95653B8217F9885D151821A9529420AC95DD928FC429674025882C9758226194615304F1F5CAAA456182C1BB11F0A02B6C758EEC4AB6441879A42450A024559697C4494D8AAC2F7045342234CD8081C0077C9232E66838460EA26274329988AF3A82B898C4EFB033FF4101F302A898E84BCEDCC45E369CD1BB7F3517280D6655574C5A13F43E3F834632A041D31A7E01AB4E0F06458007063EDC8E9D9B", + "31C8CA7FEE525656FA4EE9D36258A0BFFA5A12922718DF123E7AB52CAFF3845A801222F23EEB946EE00A4A78E0261A6C2A0C16279B5406BF7BBF4B7C3CDE22A4BEB9C6837C83AEFC90C7B0BC21EA3D5854B37DA36059DC4094181065D873469CC40DB021474ABBC8D80FC20A0AD1237DC13716C6A735899BBC68D71012B40505CA6C386CA92080B857A7BF8908476008C6C5FB7E30456E26A6A0C247A6A0A57049C1CE825154D2101F57A5C59DD44D71058423D6449327AE1FC3541EE73E31043ED194B89509BD7C113B77075BA694064DC442FFF94A2607A0E25009920A438C537EA21477B39863F38903729875F4E5BF9B05BAA0DC492E9B15FD729CBCEC5DE2D6AD727408E69A301649822E52681721A264696D8AF076423BABE37AC6C7676E74724804A04CF35CA840E206D99568BC393BF817A8C6A5CED2B9A76B036DC17996C6CAB32223AE814338B7169AC1824F129A71EB50A554F8B684B929D9859CE8C019A7823BF24C9FED4588355033F5B22ACE43A30478209A8965D587C91428B92FE034A1714535CC458C5146AA8B8C7B2C047AC76FB3D306174CC370873E25EC207DEA86D8430A7ED130701C671697185C385DFE0410D91799EE546B4D6347DDC146947A9A5692C64445AC60A9259A7596EE8421EEF78BAC115DC95067E002AA89B814DFB1498AE7829517C8AB587AFEF52D4F4068EB21686E4416D93C51EFC2AE6EB1CB1304228728769F08A4BB64893231C4BE107A6DE473AFE6A1A3969B610A87FE2BBDE35C31D1530B05AAAE1AFB69C07B6C6D4753B16588413AA588726F80CABAFED3323F412ABD2579096A44C30991EBA87BB4D667BBAB5E848A0BB178441AEC4D00477310EC4E33677925985E1AA7B9965A103CF14FDB004A60406994E0A2FA5A5DF0465CBB11A54298CFB109488564AEA65B5EAEF171716719916A4615D3AD708C8A825874B7CB671A5B61F5C3C9B9325FF964046CEBC4991343B0EB199B9099F04C97E28AAAF0BACDEB4A007F956530C712ECD49017D73C8E498FAB650608106174C7141A7373E27B3D11C2B06455B4F1C1471F8A0BC73C4299C47EADB75FA75210CD813798D84AEA44A1303C95EC02CF4602A496A86BA364BABEB7603195C7CAD66D75B46D763094FB0B2760B048AF1262954B5BF5833CBEBC2ADA183BC207290F094B6E9C2BA622914604AEBA35237D17606D1B76330172F74A06821B07D8348979070B31EA32166568C261C91DF097E41CC1AE4BCBD3E1525F179F8ACB232BD056A5E18ECA475F40E0CEFEA85D664BB87918339F407831C27DA3EA42DA34BE7BE4BEED4C8A5CA805CB209D51A826D32C2125E204F5C87944372C3C1952D5F8B1873C1C6899B85748448116B3AA85156DF381371763AAB6C8B801B19CCAA1F87C4097C3C351C62EF1C697763915EEC69389671081562E76701D805B2A62692B6F3A17FC163339F49EDD205E65AC81FEE42EB689726A960711E1B2AB7C15E385717946C27C86116B635873324BF2FA21A5C194492571AB5A7AFA1427AED8245164A23F2518A4F4016BB9AF0C14A16AB67675767D5A165948261F4DF2BF1AD7CBD259CD31944CB7880920DCB227D62B17CBA049388B340173221559F0B70BAA055CA7EA75B0468EA1997FC88C39E1547350EB4F6D7AB32142888D6C070357B6E8500C43182240863B002BAD191BC0E189C0A0F481AFE268DD9ABF93938D572CAC462C710B67507A913936739E83407412DB51EE778570692006A3399E12BEED2C2BEF5A43BF356A27D1222F267B2D6CA313315905B7550C7C150827C8EEF97803159D86127029388FB3B733A6F1B83B638DC08778AE53BDB4751EDE5CC520E7787E86CB3E5C64E69A7FC0B678783A702EAC5B7CB75E809B61F3F46848B55F4224BD2F098FCEBC7D5E98952F410E774B520413A847046149E1A36339C8807CAE45144180A2BB7445626F1B2BED9C0D9FDB5620450B69FBB972F6BECCC9CD12591B22957F94F47AD7022ACEC4233CF86E25631B8E975EEF2348776207B56ACFCFC5B1E43C3E64591FA4129077C4028C7B5C54734945A7BC986A4F4719867F219978115AEAA06929812506A40426F43A899892DE243DA4E9940DB29CCD421FDE03C80C79BA1C1A1B163170ABF21CC32130C19BA2C9F30D95B78D560344971CA8FC9CB899B082FA21AEF5110B32DCB13A369364D44F3AEA0C4E7C49F22CC0A3C07B0C134E9CA3BDFF78283592050F8C99F0E467ED39CC32A9CFF97CBEBC90AFF850A1B1A20837E02D516033EC9CB4337A1168E013587BC4DB0A7A4CB52C3496C0371C1699520D05C68D81885920812AF1841EEB8570783AA6CC0088D67BA2F7ACB19370B1A9E2066528BF38830E9C72C3021B6E49640805979BBF662404236BFB74717659268D4129943120AEEC2132C5A205B7B3A6B8BC6C944FBB035315C24666F1AE53451B52B9B850F15E0C71A086391741CBA130D07B96FAA70971A2D974BD6219A2339098356BA3B573A33B2837D3D186A26559B0D2325AB88BA9E0CCCBA484A14B2F73C54204C3111E846249A9CBBBEB8E7D1B448F353FF7A35D1600A6C8E87C06F653930BC1C3796FC0E8001A3CCE3A37745382467F614AF24C832757390CD0566F0C443C7C5539C72927EA1394005CE4B8BC223905639B1C7BABB06A4FC08AD10190D2A178865ABFA35607E1A88B47EC8EA71B102D7F1567BED46A0163017A26DBA83777C4C0F46F31375BA02680FFABA588A9FE91F97CCB99C445870A300648D2B1F1A637374278BC62B5ABB56380CDE88EACFBADB3224795A125\nencap_coins = 9DB1C63EF94F37D77F386DFE00D619E2D6789FE8237028E79B7B1EED9C16FF5A\nct = 5DCE243C9610EDFE570BED2B4CED7381C35982D8103C344AE584FB9A73FB35F17424F6E5CF4CE93BA82A4F2C6D976BE7281B8ECE9A814072822DCC6BBE6B72F3833826D07673104B7707B2E9599B85E8B087EA2B26FCB89C62BC7694FBA0A6EA012829380327E351BC44D36C009826446C4F1EF21D799143E8EB95490D4929305F0E1A3AAD2035A8B32CBE0D725BA83099308791644BC4E6258E3A00339E4B9B15E1C9E35BEB754EAC6E41B7E045E055823349154214D0498386CC0CA85917982419C177C3D25D6DC3AE9485AACA74B629BD4D4964EE9FE9F5D58CC541F57BEF4E21360BF306B0F7A0F8CDA8EB0975041AFD79DD2A2FE2CF0BD2C5D974607CC0C9B6B153948975CBF4CB3CAABBA638AE00AD92B50CBB5037F59D0B389AE571EF026674548BB7DD465427D723A6905D2216316BE1894FF79EB5717D9A538C3937895DC6F099D2591885165546B7F6D5AFF851EFBC606312D1B84587602C49EC6A24E8AF70DA33C46F3F4CB424D0A049CC6D4F54FB4DC0B0CB06FE678969431031F0DA59C62BA8CBA7A75BC45FB0DDF0077B6B5345DBA1EB5D29C9D42C8FAFABBFDE2A42D83DBC46AAA6E4D68A1FAF2248A900E856EA3C83B5B10460F86F108DFE54D75AFCE5A4424466E7B1EA275F6A89CBF949918AC66C78E2933D538DA62A7836AF7C5A14A9660D42B7BB971F4AED00E6DFF585C59A25D7C596BD7AD19233B0F59C4E2B74CAA9469C55CF1776F2443282ADD5072F229EAA6E3551C1B6A8DB570C72874C456F3053C9B4100326B318A06F3151510DAA577F25F7048F789AADAE58FF0158FE6A91F3ED80077D49FE82F56A7EB914C85DEB5EDECE0CD69827B21D6927C8E7D69D678BE0344942DD99BFF1C70E113C8A091EFEEFDE2FF1A796C01B72057D068DB8A07886CE9C13229D2EBE1AD161E8149C52B20AD812213AEEE72DF274BF4CE20A01706EC9274E2AD9A581E7690C4A229664F1D332B3660BBBB84F0CE18B3D63F76DB3756BB7ECEE5525504F5F69CD5053F15CAE529AE16C3581A230A95707311B3F58F8CD242DA0A9A6B5B0441117E45E1CF9F09C25BD248DFB6A9796E1993B2F65CC1AD6785BE7D6A781DA771F54F4FD93CF218D87B12A6662AA996FBD7291514B28C00E70843E00F529753A24E0FB290B8B938556190E4C47742413C1B77F81F66C588BC76FC796CB086BB7470C198ED43A5B296C9E0CC66430B7B6F125FCC871823BF932772BF96A852BDA78225BA316241A0D7434F1686DAE4DE5C50114B0C3BD0DB524E057666B6AB8DAEBA7151BB214CCCE79CB31C459C879C1BB8682D2ADA0A811F193211A1B8CDD367F9DD5BAC30E3EB1FD476A6F1C58F4D7CB5DC11AFBAEDB7E523F664A2F53B615154542A423C651ACC18273B5F76B6B928B035E465928B8ED9A71CDD6EAA0ED56EE7B1F6FF3EA125052E144CA7E1E8A8517F39D0C1A3DE2670F1C7A425759CEC541156275DB9494074D05A51939C169A6B9C2AC30641D2D69335EF0FE715F6450E43EC1D9C8D258D4BFAB7EFB4E7FCF13EEDB9C489C8DC71468E7233768C3FDCF64467AF74C97BDCBF5A11E10064DD672618DBEF96A0830445F920A2DE130512649B4561DA0ECB7C9CB5DF08BD6766EBBE5C68D7A9145CBDA197BB15DA759D4DB7D7A1528DF7EA311CC306245BB705D30478B706960D7C32864FD675945BCD559490375E95B1880B163A3A8C4F844246AE8AD786473F5DC1D2C08740298593945100EEA1CE86FBA6A8DE0AAF45B18152178DA59F9D1021974E5AC291760500AA157698417DE4D0DF1E0CA85E32FB7D5E7D4543BF51A3431FDB6861C89519E3EB62169147D93DE51466FA292834DBA9D4AE79E4C839474085BE2D1E6DA384D7FE7366BD654E4B6AC38337B4A7CAEF3BB863AA632F8F64D587E4D43B6CBAA628F880285D258A0DFBD5733432E2DFA6216DFFD19E38E94E594F235BBC7C292B1CE35FB94267B4F86A6B93E727E38D4728B3148853B8C5B8660FC65693A274C67592CA40796EB11F5E6A6B5B453974777580222054B3A49066F481B0AD8D81D35101D6C069C2D2C4DE5CB4603CE78F12CAB91A0488C5E5418E1097FE8A07C2C39EB02701E242071FCEE8025F8D050FAA2C21BC9B271B9E4F7E703A43B5A7A45C6E07CD9D621DEBD16C7E60C8499ED17BD35B5ABA4C75B0A764D21BCAAF43E23E4ED62010FD41718C557CD5181FC22966A\nss = EE12D894AAFD4C6EAFC0CBE30AEF38D3F651C399A29DB17B773C35FF3BD3CAAA\n\ncount = 24\nkeypair_coins = 293ABB6D1C207927945417CF84883EF010823E11B487ED55239E466E83696D0C0914D81173BFD7729D81603DEB601C93969B81C401E2B7B922B2873F8AA2D998\npk = 6BB90F94C8B62859C31E146647948785B225CE860769FC51DF7C4310984254F927B1C200834876B23A635869C90DF39BBE36094BF6B4835750A6F3788BBB7A3140A7F85B1C5CC8BDB386A0F15297CA9C6462B21DF7C11845788C130313C642BA127C8DE50695E1EAC8E245535CEC4547AABD3F455FED566B733C499FC913EF440ADDB37107E3032476AADB55CC0CD93E317A8CE2439F2464278884915C54B97E882DC44817488994C0109ADAD13C5102847BEC7730A57227158C4AD1B51AFB66D5C01BB6D2CBD1A7083FA6B049912F736824AD40A1ACB22F2CFC9C3D145545BB6494D0159C40C12BC84E8D22BB8E1A76C237020949698175B21410CD4C7BB567C52B08FA6253A50E4F1573ABB18F74ABB9837CCE85545F8992C9CFAB66F800525841948B18B7EF3A2B0961C4C7E8902ACACCFC865B45A5209FD5A4DB705F94122FC69196E3B56139173B32EC9063C4151B2819BF9C7B5D7626B01CC420C86D1070428D4A774177035269A46ADA8EC0E02230FC6B066C57DBB875A8F294E6", + "6166F3D7B95EDC3AB66B15D7B55DAC16182C13B371D82C42B85313C65DA7EBA0920914ACF8A28F44ACF54BBA1EE77736C9763036C73F4A56ECA95DA849C284F1589AF30D00DD6893E70D571700B9A07BAA6083B2C50EC4EB95E2236402F7B50C87A9305A8B5EB25664D74D4337AF268B48BD1855574405EA6237BC057E191CC6743742DD5A66373B110D380BF7C03039296F56CA700AE07D1A826965D55D86C19902762E75F10CEF33664F099F8440634B2299A474BB8AF328A3E011BCA75DB90B90C52C1699C1BDCEC31565E411FD1C6AD2D08EBA8C50B66A57CF10A98E2335327B011A4C3E11F58415B6C38F1821A69671FC2481920C896B389CC5783C5FD3B7D974CE03375142815E86E13ED4E052B1E009A25A2097C02F3EB337C3C85551BA14E1C22036916CB993612C809BEC807DA4E25CD8094C36720D376982650A986396504893BB0D82389886942ED1AAB5BACF3957AA8D191DC56C4049A0714D89BC3AF9680EE602E154B5E1C35F1C0440EEB0CCAB22103945623FC201939AA71F99BA8C409BFF83276F84879E590D9A448E1F052188285DE9668260282E8ECC630C15AB164271ACE0C954F13944FA9F4EB3A848F11CE7F0A439BA07A469720D4506ECF6CFA241136B469C12E48F137601F39A5ADACC54B094127D2C27FE38AA461C76003B9ECDCCCAAA2B16D1E9A164122A0B1A1FB751BFEFAB4A1640A792D2381A74AAE77084A4E3CC33275EAA595733FC4A99D43BE88803244B449AC71DA53B2CF30043C929811C9A558A165DA241AFAA8C45B07C27876C8FF77B721B21022C958323B41FFB606C656519875B8BC6E897854C08EC10611B954C693568070528824B509F83A3E6C505B6E3203AFA863BCA408403C0AE86A374C1613917BC06B94DDA73A8E0C98CF54A60CEA727CF1334B324343B2C47DF4A843E467989E4160E1611C1558928717D794290CC3911EB70200F51152D04871CA46D2753836791BA98AAABF697ADC925A827CB7F3AD01069F5748778B5946C78EF9688E16A5326577AD5A5773DB939D2631B04545C530C9B99141F4D213158D213163BCA141C7949F24958B9AA67089488A732189CA923301143A1728A6707A6E8AA5BFC4D05B6CD1971290114542386231CF04C2C80CB28E50026C66763A570D173612F142EF1EBC6CC9A82F7FC10B7104B7ED6B30C95C5A63A5E1E52450C1C26CA11613B2B3CEED10968E85C0A9539C28242F1B9A083C0109036C6AA9349F201648EF14D67094AF9715422885C7D69627702943BF0955D90496DBB0C0F2B3137B89C62903AF74B2783B11748BB6DF46403B69701E1D9A1E8A63F01CB969FE9CE00D7B539159E75372DFF7A85BA660AA8471ADE291FC782403F16BC2BF1C4D1A138A0160CF44246FCEA7666276318940624A32B4AF5B15F8B4DA5A05557BC819DB8884825B8C2770D6636A16A296DAEC0752E961CC4D11D61826D883A61F74203006A83380A0F9E5280FC1B831567136D178A906363BB801411E069B461027A0887DD14AD80867EA0F595FE1951F1CC8403198EC483632B189A0BB3979BFACE3F9A5401916B35E996E1336CF13249D0CC33ECF610F9811C27AAB55C52944298C3A13158C38501813C8D7F9447579FCB9BD38AF3B64CC94782E299E1D98E68F8BCEFA20D1E8DB8552516\nsk = 817471E55466B5BABF92A2AD879C9C951BA60D230ADD630984B2528F9AA07FF755D7D79A2F9AB53D8986FD90895D5401DD97AD3F7A922516279B5858F2087E6491B7BC42B8A52A5952F23622D5603A0A3152990CFD6AB9CD863345D8BE5E295C06B79332B0AC89282E61E5534FE0AAC95ACA140398B64175235B94417B8799A4B6D6933A8B815BFBDCCF886664E7B8C5CB0B999BDCB2BDB288D569666C421E2A950D198158C0D36CED3A74D9032AB7A2B9F276BE025296A773266E516826480E520B844EB69710120373A94705F9030CA200A7F85A94DB1F55D46081570925A476099C3EBDB32C532A6D8F16BE4DE6416D0C30D450808CD3C08131A92551985B92255282BE6087703F182156A13CD144ACA3924FD15492DFD253EE5C9E78853590930521E843A0E37A26994197B3161EE1A60861C344720286B6566796787B05CB8FD76A419C364F1830FE2BCD3A2970E2DAC1DBBB3803F8053591B29BF64C2DC660EA9938200738E2C0C318B77FF86749C43C72F9667D80D462D549BDFEA30CB0D9641B29308A461DF72914B4B40213B62E68B161F83224C1A45472B5464F97C6D6371C69CA0D520426DB8C1E938A934D50AE0B03BE706B74CB8C674EA955A4D8AE1F6C0B56263041FCA1871A5799921C45D9BBF13C01F0A9C5D973086B33ACF923A2721C8B2FA7B058BB2E64F43BD80260B6BB19F26A4F55D53E7CCB1BFE3AA424976132C3B4B3A00908E722557A3657D285C8580EF45B76A207CB31A71402BA1EF280048378B80DC3312F78A74065B2DC873B22D37990E465E425B992722A25009A93A7A005D91B9460AB7C2336BD303883A151E829234C964265E42FBF8252CB89858D590CF0830E59C54021B83DA94884A173BE6BC454AD5A719252BEB52A4F7544A7FBC03CE9091E9ACC0568306E5BEC2ED942B39A8455FA341B84571AC3FCA43C14563F91395D117AB021C8F141A4EC7364BA4ABDD8896BC6B281C751A66C767AC960AB52058335E14E7FD8A4E1D44DE2670F9BBC67F682A0657530EBA11C31381897D989BD392FAE02D0AFBAA5AFA1748A80847AF4B326F970C6161E15B212A1C66003A4317348374E66B29FE87F36D01AF5F1C75BE11BFEA21DD8626765C46F0C153D0555B419227D50DA5232810D8517B1A5E4147A52AD07012D8DA23829F39A40C70D565937C58A11B1A25B27C8207246C4E1B40230E39E4F089D43D562EF954F332B7EA6B36EA28A9D26EB251AB562C0E44BD238874E93A4D3B900A4B2B08A0B68C2B82C0CB56325548DA3316279672913D2021D742C3619823C4391E64112B5B77E8D707F9C1A37D3464CD5F96543F720A0CC6C9631458CD9CEDEA7B6FCAA76D1E60C44F74B986A772CF593AE712214E21179519C39FA533A724FE8177EA59B1123E831E1DC561543A7E559697572157B60499C4C615D02099D34B0738581061A85B2DCAAF13556208B3E5AF388392490FC338DBC55BBF7D25F49F61BD7363CBE3841AAFAB88524B0CA3381F5B22DC84C6A112979C3C39E45157C0749C04B022F83F53733A21E1F1842E0E72F78C6AE1E337B53215AE8563B16D99EBD6225766185A0D92F9A28BBF4E2B444B7C8225148F601D014BBB8839B4B8B21A2728268A0941D3A733170FA7606B5BF25739E5DCA5DA49C1BC01295D6B47FAF3C2FBE8594C4F0AC085CBBA4194BA0613F475B424E7BA1AED1C5A272062FD878B02644D3B90F66C12C4B64C870F806CCCA4A36BA838D4799A861B3F32AC8DC9A403930B5C529C8FFA8038DB52C5DD2A5A31AC425F835317589369631036B487F192FCFBC9AE2B4834135365F27CC57C1208204A2CE7C03F9467BA6688A9555476A935E6006B6912091C80CA777D9A0CC9274CA04366E9A967E047DDE5105EB196F8E71694A01BAB8C33E99E7ACAB053B4785BED85C9EAB4276B24274A843048DE5A49C289334FC0D447034EBEB5681D87AB1A8A5B938A27521CFB89212D6594AF040719F344931704A74E294886AC351A4854EEC2A01B0006E602BF6D0B545C78D88C7C76FB13547BA600AB07CE5C87770377C0868204DF75EE4F84A1619BA335029B68278F45B6565029BA5CC8C0F1B900C845FF1619B7FD9A9EE148003E9B09ED4C7BBA8A8873B8841BC20D1AA257F78CA54941BD0A0380A922EED8A226BB90F94C8B62859C31E146647948785B225CE860769FC51DF7C4310984254F927B1C200834876B23A635869C90DF39BBE36094BF6B4835750A6F3788BBB7A3140A7F85B1C5CC8BDB386A0F15297CA9C6462B21DF7C11845788C130313C642BA127C8DE50695E1EAC8E245535CEC4547AABD3F455FED566B733C499FC913EF440ADDB37107E3032476AADB55CC0CD93E317A8CE2439F2464278884915C54B97E882DC44817488994C0109ADAD13C5102847BEC7730A57227158C4AD1B51AFB66D5C01BB6D2CBD1A7083FA6B049912F736824AD40A1ACB22F2CFC9C3D145545BB6494D0159C40C12BC84E8D22BB8E1A76C237020949698175B21410CD4C7BB567C52B08FA6253A50E4F1573ABB18F74ABB9837CCE85545F8992C9CFAB66F800525841948B18B7EF3A2B0961C4C7E8902ACACCFC865B45A5209FD5A4DB705F94122FC69196E3B56139173B32EC9063C4151B2819BF9C7B5D7626B01CC420C86D1070428D4A774177035269A46ADA8EC0E02230FC6B066C57DBB875A8F294E66166F3D7B95EDC3AB66B15D7B55DAC16182C13B371D82C42B85313C65DA7EBA0920914ACF8A28F44ACF54BBA1EE77736C9763036C73F4A56ECA95DA849C284F1589AF30D00DD6893E70D571700B9A07BAA6083B2C50EC4EB95E2236402F7B50C87A9305A8B5EB25664D74D4337AF268B48BD1855574405EA6237BC057E191CC6743742DD5A66373B110D380BF7C03039296F56CA700AE07D1A826965D55D86C19902762E75F10CEF33664F099F8440634B2299A474BB8AF328A3E011BCA75DB90B90C52C1699C1BDCEC31565E411FD1C6AD2D08EBA8C50B66A57CF10A98E2335327B011A4C3E11F58415B6C38F1821A69671FC2481920C896B389CC5783C5FD3B7D974CE03375142815E86E13ED4E052B1E009A25A2097C02F3EB337C3C85551BA14E1C22036916CB993612C809BEC807DA4E25CD8094C36720D376982650A986396504893BB0D82389886942ED1AAB5BACF3957AA8D191DC56C4049A0714D89BC3AF9680EE602E154B5E1C35F1C0440EEB0CCAB22103945623FC201939AA71F99BA8C409BFF83276F84879E590D9A448E1F052188285DE9668260282E8ECC630C15AB164271ACE0C954F13944FA9F4EB3A848F11CE7F0A439BA07A469720D4506ECF6CFA241136B469C12E48F137601F39A5ADACC54B094127D2C27FE38AA461C76003B9ECDCCCAAA2B16D1E9A164122A0B1A1FB751BFEFAB4A1640A792D2381A74AAE77084A4E3CC33275EAA595733FC4A99D43BE88803244B449AC71DA53B2CF30043C929811C9A558A165DA241AFAA8C45B07C27876C8FF77B721B21022C958323B41FFB606C656519875B8BC6E897854C08EC10611B954C693568070528824B509F83A3E6C505B6E3203AFA863BCA408403C0AE86A374C1613917BC06B94DDA73A8E0C98CF54A60CEA727CF1334B324343B2C47DF4A843E467989E4160E1611C1558928717D794290CC3911EB70200F51152D04871CA46D2753836791BA98AAABF697ADC925A827CB7F3AD01069F5748778B5946C78EF9688E16A5326577AD5A5773DB939D2631B04545C530C9B99141F4D213158D213163BCA141C7949F24958B9AA67089488A732189CA923301143A1728A6707A6E8AA5BFC4D05B6CD1971290114542386231CF04C2C80CB28E50026C66763A570D173612F142EF1EBC6CC9A82F7FC10B7104B7ED6B30C95C5A63A5E1E52450C1C26CA11613B2B3CEED10968E85C0A9539C28242F1B9A083C0109036C6AA9349F201648EF14D67094AF9715422885C7D69627702943BF0955D90496DBB0C0F2B3137B89C62903AF74B2783B11748BB6DF46403B69701E1D9A1E8A63F01CB969FE9CE00D7B539159E75372DFF7A85BA660AA8471ADE291FC782403F16BC2BF1C4D1A138A0160C", + "F44246FCEA7666276318940624A32B4AF5B15F8B4DA5A05557BC819DB8884825B8C2770D6636A16A296DAEC0752E961CC4D11D61826D883A61F74203006A83380A0F9E5280FC1B831567136D178A906363BB801411E069B461027A0887DD14AD80867EA0F595FE1951F1CC8403198EC483632B189A0BB3979BFACE3F9A5401916B35E996E1336CF13249D0CC33ECF610F9811C27AAB55C52944298C3A13158C38501813C8D7F9447579FCB9BD38AF3B64CC94782E299E1D98E68F8BCEFA20D1E8DB8552516FB21CF5CC9A8A47A07CB2A154F73676D39A98A7D12A4ABBD37378595C6332F460914D81173BFD7729D81603DEB601C93969B81C401E2B7B922B2873F8AA2D998\nencap_coins = EBECB3E8C3DC591EAA503C332C8FBDF07804FC915B771779C1BE60F42E2F3EAD\nct = 879BF90EFEABBD4462F913A062CBC17544E6C638FB6E983C8FFDE437227C0E14229FCBE95FC8194881B109C755461D4F06C5C15CEE73A5409569253327BB767158B936746493B6B565B67C93A9BEADCB34C129F9972F6C128EFB3FE8F8923F0B939D9FFFD5FC7DBCBFF5F152034678839C6CC4B85CF577F27ABDE4F7A003693B0775C2407647E97E172BF2A05495C45DB14D21EE6D7BC24BB76D428A8A052A46B35AF8324A50A22C8B7A06BC42AF4DF57DDC9325E01C3B039582372B0870F4CBF29F1407AF9037B378FA7718DA45A5BCA4FD0E297E993D4CBA0452804E86ABADFB2A15E653E8305BDBBA582E88509DBAEB63AF8D391D1E91891048280EDF3D384FCEE676C81D3BDF78352420F1DAC42D036B5DDFD25B9D14AFBD4941F21E604E0251F69AD5929B49CB8278BEBAFDA7912F260A5D20E44579048314CA27309CC72648AEED7787D43A573C650BC7289CECDFCA5D9ADA3362B03B0DBDE933B6E435773D350CEBD336F7038ADED24CF9D1B7BDDB8DCBEEB88A22AE2905CC372E0B4576BDC2EB3821B4DA8AD223EE4228287B17CC7A62CCF714161D655A983379DC511122691831E01A3A2C71966E5DFEB768E715ED3A599D2D3B2B2A5DAE9DE8864168C76A06C31F4B2246609B45F49CC1B73C1CD7F71F6F3BCCBACB6DCE8FA4613ACF5079CD2861109ED891489B8FF2E62BF3A5A7694F90B315C7198F0A0037A5AB2BC9B8979A0D1AA217E86E9EF956CB80653106A22F59A9D6827A76F10B849A30C8F2685A5AFBDB3858231EEE7AA5AA656231E56DE171E98CF4830FB791E84F58731AAB684DF109763F9BDDD7F6786606F636C427D4B1A14B878AD5D3CD99A6F4D664C46E83ACF0EDA891428BF446059CB8046E2042FBEDC0095B38224BC63FB6205669E2C29D2539951F0D23867686C111C7F7C46FEF5CAD09418389B6E64435E93A025D71A1A85EDE6F213F0CD97FA4181A30084842C9700C81C1569FBB0BA1805863BD8C7DFDA4A0CDF551BA1768781FA33771CE5C0617EA1D61A616DB52E864ABA78A9C2E410A75251867EB230C98CB4804BC2961BE6A3C23FA9E1D659D0C3BCD11082662B4A3A2A445B565766C564E8544CE8F5F1C13290629949802181D486AF999851507AE75A8D2B97256D69E98EE4300937BAB7F62A2F5CEFD75780328A5A16DFBDC6C59DFB0B71DC7E9DCE3E593ADA5A27A588D2B14908D99C379FFFA5166C59A2907DB06CCB00FFC21AC49F7F2B2065A95FC68A052D1940CE609E19BECE8AB8511BDC35C7A5D18F68DFE25F1AC32577AF36557453164A0FBF6246A6D9AADA876E4535A7467F1F0AB0A5A6C79B465E4874A611E8BBF5EA710920B0D07E300FCECB7C6BE9B0A34F761A96A3970C598AA2BF0720D47A90DAF87F1500EC637F26BBC40FF8833ACE753CF96C07E6F8B9FB465ABA89EA1762610808B40AB694D286D3BE87139C0D0EF5FF1FC1C3605077E4F7B2B4C05CB434FE0C487CEAD7B6FCD44027D2A9F0478832073ED9345B26A3A834E14BB2C56D6D7B76CA5257DEF35EB603282A19C634DDD7898414FC9F1BD39E48D4D3A7C0511E094B55DD688E4430B96557B96D8194209CFEC83B2AF32A80C5661E4548AFB9190ED5807E3973C616D458BCDC16A83A45F0773F5F76C17099DB7BFA360C8CF6C62A9728EEABCB4D7631218A42737EAD11452A66E6916543144F32EE36DBA33146991ADCE8A9A84EF5F5D2A4162F5E7D98364C1EF0150109E707A55D541503AA95BA06E39A6D20329E2E2AD7EDE8E360B3A5086443C4B27D5B80FD1974AF084A28E5AB5C0F1A2AE0923C11B48649B8E6EE4BC5B8942AE33A6D42CFE107A53F04A19450E238D2B8994E43F9B4CCDEEF50CD8BB826E67C049037F05223F6906FE44CAA8A7257FA8A47D9EC4222B360A96E55CFA12A9E2D4F468BE77664396417FC60570A9BB9A7BFE1636F36F77282C9385AA3A631FBCB105332224F475C259F64A7A7C4FAFE28F9DF54C1A3127FF4667AE65A03E47A4859C8BFF86B657304AF5A9C3E8682853983D9099B5FEC89661BADD0FD33E97B472B499BBB4376D7398C4559EFFCBCA3562C9629B41AE8CBCC822A6335609D92AC781E9C4DA39AAE637E9A3674D65FAA57369A03CD80D8506F1940E79927E5AC5C2656B7A59EC704ECC972A3B66E0242F13BF0F49BCF2795F10F8D51A91C1D397AD43CBDE272559703B0C22D59E7C668DE9\nss = DE739D712D857E0C99BE4A896FD1A58B3002F3B264417D38729B9DC6049E0A26\n\ncount = 25\nkeypair_coins = 74D87C7556F2671F2D666854A4D6E073E69F35421E6E1A428CCCEA49C37F972CE82AB6CD4250546E9D3AAC903D6CC326CC39AE0B04CFFE6C6B3FFBD29AB63DD7\npk = 9532712120555DB81FDB599DE13109277A48D20B0B16DB7C6FA73622ACC63AB1036C9C07A48C73DCC4111E10C919D09B3A48B96BE05E56D809EFB66EA3BC97FC360B85533C4AD1A9E4CA6359AC6241EA6C4586C3FC983742756AD1FBC6582274B7559BE1362DDCB91E5C857B0E836349D4023D461B1B24CC873C56E6404149026CDEEA16AFFB5FD715766617B9A5058776B74B72075E25002131BAA50CA093BFC909B6102E8E5BA2C748BDC5EBCA2BE715B2800ABE643ED542A8F4C055A0C7122854AF8460016CA079BB701DB46B2B17D0013DBA7D24685FB46966CE53B3842CC66C8BACA0934EFAD619459888945759B3842E26A914C835BEC4410FABD4C98350717FFC143B2CCAC4E72B64D195FE1147FAC6171BA8B213EB5724039D889620C70A55FF0145CAA543BBBA3F732CCAE4B0846200AE7AC6C84396224474568C058FD4785347F077DA03ACF744005AC1CC02F93F2130386AA2B62275722E11589C625044335779D8BAE917A632652536337DB7C78272241B4710210CC7954B6622BFE1653F4788450900D3DC9BCAD010F9429615D24C9A4BC80A2C078F5B6E3C6847AF5B0791C27FC99950E77676AEA63413A3B259051CF6A83F0F9C5952462AB315AF64B978BC4154BE10702D5B266AC524CA2B5570199CA7EC91064C0247B08E01A8AE7F194DB11B88D584237B507E44B411D5C5112DD22C7ACC8D6F3513CC8CAA63342284E6BBB16B2F63B9ACC9CAB050A19FECB758EC455414992AEC45BD453639564A0C2BD164C1604D035380B0C2350F530770E84792A986D7F8BFEE6C4EE164A678C893F3CA5149BB5FE542054094A450A8C9F7A686B7565A3036BA7126288AD157BDF172C5E772CE052689D2495D00159A920B68A86FC905364C20027F90171845347366053D8C718A444A1E60133FB954ADB3A47A7242B8100A8F9784181A4E7E479CED14190A282FEB98008C09AE2B124A8743A4230910DD612CC75BC0068A4D866CA871A48B071CCED3336D5C01CA3B819FDB2C22ACB71B2FC2CF61C95B6CC164CAB078472658E5D19EECEB823A373B4097B4E83B0D86E9A50488C1A35418C497250BC90AADAB70AD35A16FACAC83093570399E8F615933F48E7FE8C04E517736732D6792C59E400A228A7CF4896AF6C6C4D2F3ACF279C861C83100B2868CFB42BC75052B26B6920591C78AAB2DE99C2AC0971DC90C19B6072F388FFE054166D95A785B8EEB141A9EB0482EE6B57C896D8805A33756005978A98F3817AE53B09AB4BAD0011218382269F062B9895697514F9AD872A49392166C72C380A86C711D1F00C9641A6A03083A3755A482AB70CC213CF6F1BF7699164998A96A8258E819652ECB01F607BA18C7B09AD5C28864468DBA9727443FBCF6C40FF44341A62631F0410BDC0FDA9BA4710A21C8934D6132AC21BB4A9292B16F787DFC58ACE7D69EFAA67C3A5405B98A9A07B276BEDB636C18A668A1C36ACB7170AC82253A85D1524ED79BBEF4F046649B9F6A31B924196C6F72B12F108B6D95AF9B373E34489155DA84B8A810CF005CAFFB8B28504739590FD6B2A5247A5139B39236A2A496A93717854B162584BC57044F510656906DDAE771BC029A0473A481EB2BB95397FB903A36A2042A4327C8C54BEA769C419CC5EFB83E84692513936F8F8775A1B114C13A4318D522194B8F1F7B05A8408348B3CA877B0A59F34DDA1169A8C12D716AB9F558ACE0B72750C1B4B9F11BE405A82E37BEED883630B6B9543367A1736C9EA7365BBBB5FBD407D36457C291B4027A6EBED8003658619FC4CD617898E8CA2E77A505CBC70F20AACE50F301BC16C398D30473619326E261E2713375A68D83CC719A381284216D1CD011445010A2D24379B8024C30AD70841EBA93CB65621260F41125C8CC03FA2894E84BDCB06B4120371A610ADE828BEEE4B3495B4E97E25ED28BBD50223EF0C6B5A6C53470D22ABD74C26AF08CD44CA194815BED9C58A1775CD0431B41553454CC892088BBAA51B26D37C25A1000A7F8C54ABCB1F5C0C3C61C7F6D36BC45320A886280FE2CCC24C704A376294AC15D70F1A300A8AB1DAC505F3B2281439B3F93C4D4F62F5883BC00D9589F5A89E3413F425248A8F7C011F616D65B857D2353C0D28BC574C1F2522C2AD76809948966543BF757557B8F92C5D5A3BC95122A6A7968DBB1334A712823D470766B3B9E7B55672D02AE\nsk = 60E93BEB5544294BBD612141956430CFF041E0F969E954A48298C7B5F321B9E1B70B7C796A753CC5BB93722B20380ABD6B8AAC4F0B102DDAB380B88AB9DC040FCAA8B775882A673864FB757A3453273627DF0690C90000B54112DCA50235BA14FEA59A764736A018A091B822A636AE7934A33BC5C15A7B77E1E53289C9757EC75CBBB792645325D6755D79B972AE993C9E3413AC040B3BCC85C4F98A2E185BF4EA1D19A4737DC78547847B7EF385D2A07BFE272764CC873BE8CB1286A0E7C83539D2B9BAD5A17F0893CCF41E2B5CAB8F66706955C5E168A99E9820A8402CB25A434F1A149F0148761014D32A51BC73A8CDBCB104C29BE554B2724107EF314C25D082C7252E0CE68833A47A619A611B08394960A64D8C22C25AA1121A8033605C9BF35221730B15E6269CC25FEBCB8E3336870B3C1C9D3A89DE4A9042758F517B55F85133B403C501590A0F53542239118F93874B319BE0D063AD82144ECA6156051424235D785C92AC00C412F8AC0FF5B88F056142F8A0934734B09BA14C00089BBA136279A5FE462082AB4B0709A6DB3279F8E9544F3909FF78B264399C2ED129C803B341D816EAE96BC531952D55059EF0233B0C18E1F7AEE5498FF6F11DBE801DFE193BB61B870008AE57483DAEB8CA7CCB460193C68A509E8DC738FF227FDA89B21EBA0053992A4D3A1F8767C0D3F3419838C8C7A2C0B3D68E737BA77221C68A8570948A322A143E5A03888C08A1BB7C42E9DB9111819E", + "D94523848BC32781A881A468D26AA7FA4ACB926AB8695B24A094B8CCB0423192CEA88C1FAC818A6B0CA19E423B7AFCB51B121D48EA44037963EC1A325DC0BF7555977F468FEB49B8346338DB983E512B2FDEB35A300495F437CBA88C36D01536F7A56BC9DABD1000B77751031102CABA7182E2C440919435A14BC1AE1B354499324862885C9C301B7258FAF778CD0A4721F26EE32C5DCC7A7283DC10E3CB04713255D0044BF1D9234F5180F32483F7079B2C0558B95C622DB01BE885B2580931FC8617B6940DDFD54CB327712DA02F90A6A8DDB6BA17A31FB1D7231D94CAC2FAB88A43B0F56968FE2B724FC8A97E1A371C96A9A17A94FDA08897BA1EDF959F37029A84E707EF676B89FCB5E94B8997D95542E26CBD28A7D01B1FEF76B1C91AC327874C04F01B2D6280FDC60CEAD3587BC0AA6EC76F064B3263B2419BF3120AA7791053BFA6E089F6CB8BB020B5C5E2517D4B2F34EC3C4237AF98DAB3F4D44AE161773ED53F391A689D7B38F01155FCD080869656E15BAF9A2A6419B38C2EC39112B4216FBC5D94771FCC4369EB90AACCF3A752020E24F97C30C4C67632180E9B928A0941C23C03CE588F7D841AAB91B74B7959BFD8B5B042294EBB094B523DFC425E9EF70BD2E2BCB2937EEDBA0AD018737BA91A3691030C1A6E54C0BD4336A4BBB7C5DC79057EF5C574C04DFCF9C8407CAC999A54975B1A45519075CA167B8285B2D554EB81702E30626897413051AA546BC63A42723BB95F0DCC525944C967D7A5793C34C7638EE59608C8680F2418B648B7450B09C31BEBAABB956E1203BFB3D377373B5483C93378F15DCF2959D0E02A15E2277B7AB78CB2BA78703F13DAB307BA1B663C8666252621AB1B9FA42DC69008881A2F0933C03C183D4B82CB149511F344CDFEB0ADC0C9B0CD98240A7A7C97D6AD8EECB20A8A04119B8AEE8BA273730965608D0CE921A6DC8B8CBB0098D722EDCB88CEDBBFEFE2A04935B5D766577DBA7C20A73E4A8B81D6B81BAD326817F8B9D654B005D7437C73761C62A43412B39EA821F9547B433C57C2512268DA14BBCB38B3906348FCC9FACBCDB2F44E713125309515B6D4716088071B60861998115EC97D9CD99EB773C343942105B4926C14979FB62F7E6616D3AC1B0F12A96CDC7AD22CA6148800B9D1047A8358A1563CB310607108198C084215BC1630A002B96A74D92198E832710DE036B0332BDBB2269E23417A82A1DFFC57ABB971DC0A34D04378308B90AD36064548C5480BB57384B7487C299A016BE645958F64C712B75454532E4021AB21C55020B609E2E4A5DBDA151F8A9CB9E9C552B73B8241445F97AC15E0A5E7A357C2A6608D388652848C066B5F345C7EE7A1410DB478AA517FFF742BA1965ABB0687286273D9F993D7D730988A709532712120555DB81FDB599DE13109277A48D20B0B16DB7C6FA73622ACC63AB1036C9C07A48C73DCC4111E10C919D09B3A48B96BE05E56D809EFB66EA3BC97FC360B85533C4AD1A9E4CA6359AC6241EA6C4586C3FC983742756AD1FBC6582274B7559BE1362DDCB91E5C857B0E836349D4023D461B1B24CC873C56E6404149026CDEEA16AFFB5FD715766617B9A5058776B74B72075E25002131BAA50CA093BFC909B6102E8E5BA2C748BDC5EBCA2BE715B2800ABE643ED542A8F4C055A0C7122854AF8460016CA079BB701DB46B2B17D0013DBA7D24685FB46966CE53B3842CC66C8BACA0934EFAD619459888945759B3842E26A914C835BEC4410FABD4C98350717FFC143B2CCAC4E72B64D195FE1147FAC6171BA8B213EB5724039D889620C70A55FF0145CAA543BBBA3F732CCAE4B0846200AE7AC6C84396224474568C058FD4785347F077DA03ACF744005AC1CC02F93F2130386AA2B62275722E11589C625044335779D8BAE917A632652536337DB7C78272241B4710210CC7954B6622BFE1653F4788450900D3DC9BCAD010F9429615D24C9A4BC80A2C078F5B6E3C6847AF5B0791C27FC99950E77676AEA63413A3B259051CF6A83F0F9C5952462AB315AF64B978BC4154BE10702D5B266AC524CA2B5570199CA7EC91064C0247B08E01A8AE7F194DB11B88D584237B507E44B411D5C5112DD22C7ACC8D6F3513CC8CAA63342284E6BBB16B2F63B9ACC9CAB050A19FECB758EC455414992AEC45BD453639564A0C2BD164C1604D035380B0C2350F530770E84792A986D7F8BFEE6C4EE164A678C893F3CA5149BB5FE542054094A450A8C9F7A686B7565A3036BA7126288AD157BDF172C5E772CE052689D2495D00159A920B68A86FC905364C20027F90171845347366053D8C718A444A1E60133FB954ADB3A47A7242B8100A8F9784181A4E7E479CED14190A282FEB98008C09AE2B124A8743A4230910DD612CC75BC0068A4D866CA871A48B071CCED3336D5C01CA3B819FDB2C22ACB71B2FC2CF61C95B6CC164CAB078472658E5D19EECEB823A373B4097B4E83B0D86E9A50488C1A35418C497250BC90AADAB70AD35A16FACAC83093570399E8F615933F48E7FE8C04E517736732D6792C59E400A228A7CF4896AF6C6C4D2F3ACF279C861C83100B2868CFB42BC75052B26B6920591C78AAB2DE99C2AC0971DC90C19B6072F388FFE054166D95A785B8EEB141A9EB0482EE6B57C896D8805A33756005978A98F3817AE53B09AB4BAD0011218382269F062B9895697514F9AD872A49392166C72C380A86C711D1F00C9641A6A03083A3755A482AB70CC213CF6F1BF7699164998A96A8258E819652ECB01F607BA18C7B09AD5C28864468DBA9727443FBCF6C40FF44341A62631F0410BDC0FDA9BA4710A21C8934D6132AC21BB4A9292B16F787DFC58ACE7D69EFAA67C3A5405B98A9A07B276BEDB636C18A668A1C36ACB7170AC82253A85D1524ED79BBEF4F046649B9F6A31B924196C6F72B12F108B6D95AF9B373E34489155DA84B8A810CF005CAFFB8B28504739590FD6B2A5247A5139B39236A2A496A93717854B162584BC57044F510656906DDAE771BC029A0473A481EB2BB95397FB903A36A2042A4327C8C54BEA769C419CC5EFB83E84692513936F8F8775A1B114C13A4318D522194B8F1F7B05A8408348B3CA877B0A59F34DDA1169A8C12D716AB9F558ACE0B72750C1B4B9F11BE405A82E37BEED883630B6B9543367A1736C9EA7365BBBB5FBD407D36457C291B4027A6EBED8003658619FC4CD617898E8CA2E77A505CBC70F20AACE50F301BC16C398D30473619326E261E2713375A68D83CC719A381284216D1CD011445010A2D24379B8024C30AD70841EBA93CB65621260F41125C8CC03FA2894E84BDCB06B4120371A610ADE828BEEE4B3495B4E97E25ED28BBD50223EF0C6B5A6C53470D22ABD74C26AF08CD44CA194815BED9C58A1775CD0431B41553454CC892088BBAA51B26D37C25A1000A7F8C54ABCB1F5C0C3C61C7F6D36BC45320A886280FE2CCC24C704A376294AC15D70F1A300A8AB1DAC505F3B2281439B3F93C4D4F62F5883BC00D9589F5A89E3413F425248A8F7C011F616D65B857D2353C0D28BC574C1F2522C2AD76809948966543BF757557B8F92C5D5A3BC95122A6A7968DBB1334A712823D470766B3B9E7B55672D02AE591AA9C81277503A34441FBD6CB59C6D1ECD5E00298FA56BE9DF562576250C52E82AB6CD4250546E9D3AAC903D6CC326CC39AE0B04CFFE6C6B3FFBD29AB63DD7\nencap_coins = A9DA4FAE601738A23F95165DA22CDAA8BD455688B6033C74B4604DABDFD46FD4\nct = 395D5021BCBD294561EDC1AF53020014A51234CE2FED8784CED5A33328ADA537925071E7122C3F3F17D938C45667BB203CC8220DC06CBAEF60CDD49A1D0204115959B252964ECA66428BD2BE53281DB056113347A8B1EFD49CB2C2A42C0EDD425262C4A1BA4D4B2E90CDB97F9A39F39FD6923144DABAA6CDCC3C48422024C0FCAD2FBC16280ECB78C0B0BFF5B4541B0BA1BA13665D2134E36EA17DC244546255D364BEC0D55281F1D1F8C311039AE60DEEEC474705270703192F16769F0F1D2A16895EC282F943B1B17F691C523130054FEA4F659622FAC34AE17104BE0101FA629AAEE87528B194E1FD0D1477374FC32AFF89F862AC6F9E5F8F0227F2CFCB298B9FAD9368BA6FD24D74DB5065B1E36403A7AF172CE910833FF08D54C375B4E2B40428CB71ADC461D0E889362E23D134380C0B8A3D3569CEE7BB78B1A147D50CBE7BD652D9BB77F5A319E4EF196B8A92057AD843DB0FA8480AF6DE4AC77447472D6CF9380BDA1C3B6C78C6CD920D0F8A7E9C0697401BC0F69D5F8481BC650524B28A0E709A956B0151F551F8EA996AE2A7BA6D0A40EB61963EF3B547EB5A56BCFA489CC341779892492C4F7E5FC35835710FAF882FB5BA9454C5E5F88EF07BC43C79988F385219DFAA3DB6176B5DA1353BBCEC40D0A2368B5652C68D16A85884BA134C5903938E00C0382AEB758A421572AED5B3ABA5A07998A0DDD17DF653D98DA0CF39D39E53C3D573919F0631E7456090E1EC857306C56C1490D1452A2A1B03CE26E1C4B0C0CE8FAFEF77FC6D888A3C9981FF493E20B56B7B32BB25AD9CBAE13DD49D63F43C6ED99E9294BED66FBBD2ACEB4768537DE880513BFDFE74A980BB2D9C408E1FBEAD4E7E01CD4BE8E87A8E0A13251DF8D98AE402B013476147F3B697E14DEB73734A1303EDB1521C8FAF5D7DCC54228EBCF63D57CEE4D7534216A612D53FA575F915D18F958EEB42EF9854926850B4439EC8D42FF2F14F64C626BDCDF4B8C5F2D724EC322E2A8AB019DB626753E27BE439D4DFD5455C0F20EA61199FF69E0C1E230D1A60F75848E29B81095BEA5D689FC8509F5B3A9B1C4F6F36454423451A4F2AB6C9FB05E622065B1FF5A7AE9F9559BC7D7AC66EC2131C92D397D103C18DFCC988E2715113A02136C5F1A2F77A6093841F4D5AA9449FA83E5433B5926076D87E5BBE7934399D8E826B96C7C7BDB968018488692291C9A458E4E912F3531A4A7C36F9F913991722C723EE83A9C78C2CCB9F5B3CDA599EBBDEAAD9342723D44966FBD9E1AFA93356B8F14C70237C8092DEE1F839003C3DB4166A933FC9BD525AE38833E019B6A829F0588A185189A78F15A97AD509B022E15A3B7A06FA734455443373032CB89BB3E09C5065ABC61DE4B7E0B4D21576524D628C2BC47A36C0C052001C10999320289B6569C2CB0DC86D43645AA19EA270972BFBABA5E800CEE26F4E92859D09C56FB488C4AB6BA662835240A400A04331DDE34CE112C00F4CFB57B08DE64079B9554CBC620336F66F6930CB48545E66E16FECB428A209AD6B8CE27F64B4F3D95D61E9D60A54DABCFBF0CE8D039BAB63F8DF5EE4A12976D60D03702A14F2CA43516AD802F44A1CF5B12C110273777768EF5AC5CF5BCD89862BFCB5B2DA335C4167B0211E31D45220AB0F430636E14C4A36E4CE25654868F8938160724DAB79E4E0157AE57961C8A53DF12AC8BB51CB2C41A70030D244B6DD7BF2F690F3F2CEF4CA679FEC60125646D863D49157FF33EC7034339AD8572D3C47E824D31B0C7B33470EFD6853AAEFA6C56A1F0D6C4212733F931401BA23FDAB4F52CEE740E2CC0E572941D66DB3A1970231E3D9AF5C83F4FA2672A740A051F8A28605C3CF0F76A31F710AA001EF274224045BEC843C8634834F50A813056FB344225BE0092F0158DA90626C2ECEDCD4D2A02FD9E1E54222692AA18F09CB2D0E563535D9DD775E0EE9F59E4A2452BCC7E70B9C315A1AE89BE2EDD5E40B600FA63A8E39701D099CE3F30A6", + "0F8AF46F1545F3249E9ABA1B69CBA1CAA973E133349ABB2522D065A82B0B36D20232BD879AAE20122E07963E8D9E7F424D9129001370FC13FBF0711E65A71F590DA49E217E1F2D2A4EB2DECC6CDAEB4D6420ECD5CB3C08BA53F701BAB3F084CF8BD74BD259620E4B33A001C5A03224A28FA86762F81FC3DD718EC8EC0FCF33A6DF5B831F60F70C8265C04D46D19ADCFD8B5\nss = 00C779659A16D546B70D41073724BAE053C41C3352C72E3323C670A3DEF9CAA9\n\ncount = 26\nkeypair_coins = 013BAB0212D04ECD54B478DAF72748003A25E2CB060BA6CC50BF95C292B8206BF7642088944D664CA7996BA944EFF7E4ABD0B900D3D1728D99A9F722F928FEDD\npk = 3C614FD2510DBCDCADE2F57004CC995DB29139A713EC106607F815DB318F03D2CAF4A294CAACCF34914106D463FE118BD0B65021F086F1F9A8F34A42E197525859767D89B0EB29CF54A93E76F13BF43344BAB7578CE167796976E5C7A2626B76CA2222CB358904386A5485C67FD58F7027543185C71BA82CDEB93B619455CEF931560452D7650B25617C51D93D9223CB2083BA29D6A66AD798B5E4A49AFB5960A08A6D8992A23AA5840C97ADF727E698C990684D0C19AC71BB816AE30E71351C3300B2EDC22601B6BB7545A87869B9712997AA5C3CE6080AFA8333E6159C1DE61333F4742E5C49E887A8A4CCAE2DF6C7E218A509124D151A711DA99A11D7B5841752C498521C3C4699113DBEB652A4C6754B0B8A7B1341D5A3C99BB39C9B592327D0242AC68BA6D01369257C56427928AA5B0534200FF8A4A7263F9F955598A0980EE67337442DF706360FAA20DD6941195036831186DDE104C5E6CD79A84AFD6917C1122070AC6CFB120C7F22276AFB4D51F52D0EF2BD4322164F938F66269703CA1DB984BCBE337C710142D024AC0D7502579B1B804BCAA5FB551274CA547301FE6597CDB0754BA6AF7D74BCA789C6A7460AB599CB14825FFFE28683267001E32EC6F7802826C3D5091F8C520CA52C51E1E2B649222BFFE45D9D373F8224B9E3E973A852A0D6ACAFD22561AA1376E9842AB292A61C21308E209D3EA353D77A8D835A46E9315EE19BBAFEC09ED462269DE56B36F6791F771922B49A51B3870AD0A0A2F3AA0122AB02648ECE97C96ED24B9E99B6AC2C964CF356E4A39C21D0274EEC6FCC8893E7CB425C68C8E99A89D22647A5522FFCBC46184AC181D556616503AEFBAD90966D2806B6BF26903B18B1BF5A89167A10D47CB4A6F101FB09473710559F39B3046BC7A55331E8DA418BB34089793C2A7606112011E89318267348BAEB7B39F6C85B0AC58B4C8C187965EAEA5940DA89CD4AC31754BD85F815C9C15B36077E9971B4ECF7546C4486AB074E511B729ECC835C175B8304038550AEC0C6C22EB76F866444859293D21B4743E0202A3B6DB7D2342585A5C098CA66822F86F01A6A9C080B414144220C44054801C36199432870F8B39B08831C8623972B1AE3442D0FE409B47A5C22E67738008A71ECBB8016CE110794B1D313460650CEEBACCAA637F9625429538DD1E00AE8930211063F3265CE4B7C6ECE835FABA9236CB228ED003CB22CC8B3C5811BD9C276944D929C5C67B26B8648BE93A89396C2949E26866ED4121C3849BC6C15ADF8942FD4CE8F12B5DD83CEA1322ED4C0BD2BF9B591FB01A7DC49387C04E7C1416ABBAADC2C183072CA13C31F8E964C2A9B56912571FBC07878584F7926A9CF13C0F4C114C59B1B44A94014C2963C596471F7771CD383C235AEC594B61EEB17266A5EBBC4828805169D1A2E468448E73A1E3C919CE3F738D2E1242C0895B59C27E12CBEB10C591A54108A7B730D2B902185B9A8DA9D2AE01807466C456C4EEFAB336C13C6E137B6CCE922B1113E1CC862C8883EB69ACB0667A68FC58FC5D6584AF926B25159F4700C110C43BCDAC03714714AD4C07AFC4D54200CF0184E5E8A6E5DF1AE6D13C9F9401CE38C6144D3B87DEA304625CB8AAA6EA0695FBBB775C6D0B7F79A6FDC4C53C9AB072D027DA097A0D69AC77A9CAB23941AA160BF36D95B10167364A0C866E44BE2930199A00972936275CB9F3340812D70968A95428B3000B21C68A237961B99A2C7F62C9988675F01B1604910B0D8942B21C49E676532603DDEBC39876C8479603F9360A9538679C4A83DC1C33947B5C01A5C659D30187DB308BD999D68E30C79E40B631BCB8725B72A414E3BE0300E4C7A30F56ABEB9588FE0292DFC23C4C994CA20726CEBCCE5942A3B376BDA76A965179F56E66A2BF94CA35090AF041607C18545472DB1E71AF96570538796418737B048859E676480727E71E3534510998402AD13D54284B76D6EB04715934FA6F05CADD2A6CD6683D981CB5F6A884D04CCB008657F990545E38A7C044645D9CF9B7B49643B7415A63A8B37B6FDB304558423F4A47961E230C9091F0519C15DE10275DA4757D40EDF70CE729A5986724E8701101C208E4E3BCD4341098D8B07708A2C81EB6044B82CA3868A4752CF42F2596C7BA678723931CBC646E935E0BD96EC59643250A0B38F9779B0142A9E546EB525E72AD204D1EB31A6\nsk = 3A756D6DD157ABA65D60721C41EB4EDBEC38834C22E9AC88F03119B472BDA0961D1F5C3268EC6492F92D5D066DCBA69CE9C20311E1C15FA81FA5014C6C956F88055FC2D35E6B295D05D6167E4375BFF23257BA72C0F97F452B609F22B57F7C27F71A4F259938B5AA18097399A0D32C3602203BB6769015495B4BB7317C9E99C966215C58D3455EFCD36003826C2C7B1BB437A66A968DCBA35DAD7098FCE9133110A109C2B91764719CA25866C98550082E88F29E78B38B40A53C4D626FE63390A290B54389624C597909D79FD6A658E2166704C386EB1C8E951B4C7619B7B79349C3F59505809B1095405949CC55C109A1108649552D5F83A970083BFFEB6550893B5C5106417B0CF1E44B6B05A9F9093E386C9D43F14D4CFBABD3B17EFB49AA2C571AE99197D2E4B7D58775962570D528B8EBB8032E8065BDCAA391837D483A27239A4A8C0B8F13013F4AAA6BAC0CA86E532523D9620BF9C2C3E2AED2365E90A1699A4CBF454C4D2E2C4273E93456142F737C8B3697B9821039142C3E25B346D020C829850D6CE2649087AB762C25BAA2639C8C7A852BC76D456EE69747FE561E267844A7E51AE05C5820F0C2B880B05CC935A3BBADE2C6A4881CAC21938A304C4CD2C1CC1BFABD932B777CC459BAE4BE75389862464367C6318A0521DD62C5F070A139A95522D10D2E4134C06522CF52834562A208B22A95431014934F51EC49F5EC087D1435DB935BB5223C3EC87BB7F7427A458232474AD9CC222B422149977C7F366F48B0B14AB260BD0A8C04623F9B12091AE049725064D0BB4A249075816AA249718F1A7768C3469AAC7182D2F01D6373038D7C4CA24802693A354C19C66DBA1C05EB180AD04C1FB095B42947D16B66139384C71206BD0BA9AD9BBB5DD7593D08616C214FD9013E792A5B4930122D1C571F1315D235562C167D7546C8EF7536A929982F6A55CE7209B0D5735F69AC6C52A824E508D2481A5BE01075C54D8743BCD76767B69B5E350989E629C97AC1982A75806126245FA692DEF22B15A29499C82EF7F993EB3472F850527D900DA2F513A9366A4FA978038B9E46752DBB8084FB12CBC591008D692544078343E9AD67909DBD77C18BF18F02607210F4A0F5DC749F8B0BF371309027968968678B0135AF65138C5544ABD57ED8A646409224D32052BB14BAB4D51DAC981CCD838B4A513A36A351B81A0785CA281D7106872583B8BABBD62A5787BAB8EC9019C7009130EC6BE4E25D9992AA1DD13DA9C1A7F1CA27FD78968741436003789B8C781C599C98D2465C7513CFE85154D7A655216E5B3B800DEAA6B9DC7C0D998B9CE2B99DA6AFC27A5EF6C152EB16184D91CD038CBA69835AB3500AC2E87368F37888BA90F219CE9DA24109F0B3E1894DB5F640A17B0E705195A350A61EC62B2C7A216231C530F557D4C5605346A6500B7C1484012FC87DD4526823C447B71A726D65753716B30C212565DAC474CA3ACEE664218285A5C4A726F681E98619E2A289D08895BEA26BD6A3BFF3A5C5C1EA894CB6440D075004F879B41A14EBB82B74AB0131D0B3348742DB7244E750AE2B7BB57F8A95379502827880F8A50ECB1394DB2553C07627C113A300078DB1BAC7B50078D6E2443AF5C1099633EBB4B9313C9F82CB967442211CCBB7DD9B4711F85E99E7B07601C07F10373B104FA849A9C9416C3304C09C1B2F22FA159BBB043A58415A11CBEF06B85FD728B492BCFD0767571848652503A5A162E0D478D74CC05BA5160F398DF7361B340226ED49A5449467A9A39CD5297C52BC0CB9634325854043617FAA817EF2A94AEC5A49F0579F085ACFA164C3247959ADE02DCEFA8ACB965705060B08499C33F70FC6055FE1752A06F0547F4C702F851B36D23DA24C8EA79A942DFA6912CB00C8D892B244C765D0795545423233A6BFC01F38FB05B8F953FFA532B7B6C2D667913CC966F6B88F63C1BB06B3BCE5310A8BE69F0837B8A0494995844D65350502C061D65C563FDB6B82D41E76495EF15B56F3F53D5537CDB2E6C349844F02121CA9F404A19C6591600D88BABD8CA4C25C973F89B0765BA6B4121358C1738E7C718F6CCA0D6186594B265FD53106ECA59D9CE51C1723CFF7F7053FC6240A3718B0AA3D942084A97185701BB213D489C4801BFEB22463D9608B92053C614FD2510DBCDCADE2F57004CC995DB29139A713EC106607F815DB318F03D2CAF4A294CAACCF34914106D463FE118BD0B65021F086F1F9A8F34A42E197525859767D89B0EB29CF54A93E76F13BF43344BAB7578CE167796976E5C7A2626B76CA2222CB358904386A5485C67FD58F7027543185C71BA82CDEB93B619455CEF931560452D7650B25617C51D93D9223CB2083BA29D6A66AD798B5E4A49AFB5960A08A6D8992A23AA5840C97ADF727E698C990684D0C19AC71BB816AE30E71351C3300B2EDC22601B6BB7545A87869B9712997AA5C3CE6080AFA8333E6159C1DE61333F4742E5C49E887A8A4CCAE2DF6C7E218A509124D151A711DA99A11D7B5841752C498521C3C4699113DBEB652A4C6754B0B8A7B1341D5A3C99BB39C9B592327D0242AC68BA6D01369257C56427928AA5B0534200FF8A4A7263F9F955598A0980EE67337442DF706360FAA20DD6941195036831186DDE104C5E6CD79A84AFD6917C1122070AC6CFB120C7F22276AFB4D51F52D0EF2BD4322164F938F66269703CA1DB984BCBE337C710142D024AC0D7502579B1B804BCAA5FB551274CA547301FE6597CDB0754BA6AF7D74BCA789C6A7460AB599CB14825FFFE28683267001E32EC6F7802826C3D5091F8C520CA52C51E1E2B649222BFFE45D9D373F8224B9E3E973A852A0D6ACAFD22561AA1376E9842AB292A61C21308E209D3EA353D77A8D835A46E9315EE19BBAFEC09ED462269DE56B36F6791F771922B49A51B3870AD0A0A2F3AA0122AB02648ECE97C96ED24B9E99B6AC2C964CF356E4A39C21D0274EEC6FCC8893E7CB425C68C8E99A89D22647A5522FFCBC46184AC181D556616503AEFBAD90966D2806B6BF26903B18B1BF5A89167A10D47CB4A6F101FB09473710559F39B3046BC7A55331E8DA418BB34089793C2A7606112011E89318267348BAEB7B39F6C85B0AC58B4C8C187965EAEA5940DA89CD4AC31754BD85F815C9C15B36077E9971B4ECF7546C4486AB074E511B729ECC835C", + "175B8304038550AEC0C6C22EB76F866444859293D21B4743E0202A3B6DB7D2342585A5C098CA66822F86F01A6A9C080B414144220C44054801C36199432870F8B39B08831C8623972B1AE3442D0FE409B47A5C22E67738008A71ECBB8016CE110794B1D313460650CEEBACCAA637F9625429538DD1E00AE8930211063F3265CE4B7C6ECE835FABA9236CB228ED003CB22CC8B3C5811BD9C276944D929C5C67B26B8648BE93A89396C2949E26866ED4121C3849BC6C15ADF8942FD4CE8F12B5DD83CEA1322ED4C0BD2BF9B591FB01A7DC49387C04E7C1416ABBAADC2C183072CA13C31F8E964C2A9B56912571FBC07878584F7926A9CF13C0F4C114C59B1B44A94014C2963C596471F7771CD383C235AEC594B61EEB17266A5EBBC4828805169D1A2E468448E73A1E3C919CE3F738D2E1242C0895B59C27E12CBEB10C591A54108A7B730D2B902185B9A8DA9D2AE01807466C456C4EEFAB336C13C6E137B6CCE922B1113E1CC862C8883EB69ACB0667A68FC58FC5D6584AF926B25159F4700C110C43BCDAC03714714AD4C07AFC4D54200CF0184E5E8A6E5DF1AE6D13C9F9401CE38C6144D3B87DEA304625CB8AAA6EA0695FBBB775C6D0B7F79A6FDC4C53C9AB072D027DA097A0D69AC77A9CAB23941AA160BF36D95B10167364A0C866E44BE2930199A00972936275CB9F3340812D70968A95428B3000B21C68A237961B99A2C7F62C9988675F01B1604910B0D8942B21C49E676532603DDEBC39876C8479603F9360A9538679C4A83DC1C33947B5C01A5C659D30187DB308BD999D68E30C79E40B631BCB8725B72A414E3BE0300E4C7A30F56ABEB9588FE0292DFC23C4C994CA20726CEBCCE5942A3B376BDA76A965179F56E66A2BF94CA35090AF041607C18545472DB1E71AF96570538796418737B048859E676480727E71E3534510998402AD13D54284B76D6EB04715934FA6F05CADD2A6CD6683D981CB5F6A884D04CCB008657F990545E38A7C044645D9CF9B7B49643B7415A63A8B37B6FDB304558423F4A47961E230C9091F0519C15DE10275DA4757D40EDF70CE729A5986724E8701101C208E4E3BCD4341098D8B07708A2C81EB6044B82CA3868A4752CF42F2596C7BA678723931CBC646E935E0BD96EC59643250A0B38F9779B0142A9E546EB525E72AD204D1EB31A61C6C4009E28F6A20AAD0C0B14B7CC0A01AECA507C366913BA5CADEFE6656881BF7642088944D664CA7996BA944EFF7E4ABD0B900D3D1728D99A9F722F928FEDD\nencap_coins = E821E6E3209B923765F0DED2D65DEC798C9CEEE04665ACE3061FE506B49AC7D1\nct = 32BF088BB3D23C7D461B3D62D10BD7BF4D8D6B474CBDC6BE5044AA4DA03F376B697DC6EEA5D80FB7DE9D8E392B12FFDB662230C7ABE0CE89AA70C6DC0E8D50F0E4F7ED2F92808A1297C5F8BF232B399ACDFB8377C532CF8350BF1395232271F115EA0849EA0175D3EA31D6B2E67C2A8B2E1205FB28731452CE0DBDAB0FD1D046B60ED04F0C87D7AE2031ADE816FD03CACF8A0EFA14DE567FA279836D5231F99D65020C796A283DBEA1BB2B70D84AC54247D005A6DCFDC9025CBB7DD53138D6F5164374EAB96505B9FED0DB2427C08366597A8B80A966FBB9EBAA80E538D4740C0C7237C38719744A1B94053C058C5A5269C7E4D55963CE5C306F241A3069E68B6AF8950A4989289D893DC5046F9DE405A457BD428A806DE9D84CC3B3610B5324F58A20D84149081F89A5E0EBE565D1E987B08601C21714B4C4756ABED4370373FD0700F4284BBE638F2E892C917D4FC003718DD2C76DA9F917B95CA2E4D77C4641E5F4D39172A29173BA18FC9C65CE26961446E782A180C6A99CEFB7C1128989275650156C76915862B44752BC7825A12FE5311B5CC9C366AE3B70E1BEE59ACC16B19A69994EEEE2E807432703914D899761D7DA56C1623C2E5DAF0B78933E5816B23EB89CFD9CE6402B2E235F377074AF68E250A527791976865C2E633B4A5ACFC7CBBF061DB8E1814E5B8FC8ADDDAA3A29D1354EF3AEE3E42C9A0F0AE30FA6D5CB24CFC5A2E373C7F512B1F0A71C602792A70AE4957313382FC3FBCA397E31B5620F6E2B188FEEDA47D1ACEE9C8A86B081367F4BBCEFB8125563385991EDD75D7CF09B80B9A9F5942FB0E2BEA79B3D1779BC1F05EAA200A6A2B2ECC5BCCEE234C3B4C41AA1B7A1128FE9906F02A861F8572751A54128893FC4C0306FF60002D84F8200B13B00B14ED2A7FDC1591FFCA2F18DCD7B7C16B6295CDAE116A5BD60DFD12D16CF62247B93A556FC8535D0B86B952BAE5D111F343C352DADACB0C861998E49EFC09560D217A699DE0E0F859B10D1F83BFD0FBC76809F6DD22935604E49468CC681C60E53A6C5CC8266B5735895771ED8ED44260C01242D09918C54286F450BD35ACE821151AD6E17B2CDD8910E78D0C8AE4B1FABF022AEB7EF0668B38D6C62B477A4AD35C2CC3D213504CD7202631AA0216EED28B0DCF0B9E162BBEADA894214F94E6BEB7C2ABBA86FB5DC5407E4F15D28AA7D1E6AB8B3F40A820FB4668CDBF81FD031723E0A4592701B1979388BFD857914851C13E7EE032DC7B6070E1ACBF012488384990CC15105F51FEB73E255CE465014377961F1BD1A0BA4B43A61E9DFA6E3BB62D058B51E65D40A3E457D670FF901CC500527D48CB0DA44506F1D79095CC6A5F32200345A8F7D5AC8A939B0236B3352783C78F4DE829DD22DE0CD5B5714F195EC60F02452378C116075C98DB2EF91C26126E2D6CDFD8E67A1E4AEB457865FD2AAC445BD153DB3C39420A6531E4A101832599C899E2F7BB5037B6E7892FFDDDBAB60159E0318B849ADC85DAA753594557C3E25063E67DF32619697A03432679C4CDA5F41FD7E7D3D81B3F3984F948046BFE280EF293D6A3FE45C2306BB2400C3B804F2FE29363D4AA4F71E10CADD69DC0C0C0B074ACBF21C73CA7ABF49CE0861B3ACC173185EC5607DFAC34B98CB76B248AEE73F87F990FCB3519180E2FA768DA0FEF81D782785A0045D994E69DBCD6E5EA557238C527EEA17E26D5C6B4373B379EA0543261D3FC1CCED2B746739B58E88800BB13C3BB3C088D36456BE6DCBD6AB31B9137DB0508FD4A97CC2EEE5E9F7C5E17376C9D0BB632D37660DB0C1665131F742E4A1E92E417CDFBA78647CBDD8825EFDA463BC0562FE38F09793EFA906AA55EDC75A13A64258DAF753A88EF54ADE6B638560D20B46690A355AB107AB7D45ABEE6B153E8D2C8AFE07DE7A6FF9BED44E32124B5F84F4C8900C3DABA83EF473BC3385E3AAECB4D6B239AFFD88FF63EF0AC96DC50EADBA57C570FE0E028AEF1C8E5829B87CFC7E00D0DC78677B8B7329137BC46C5DC069B8890DC434A4FCCABE41FB3F50B601729EA0DED48399DBDC8C47C00D7149C2879A75F1E81F0D23A94749C9D16755CF268E54E4AAAED7016A85786153DA7F4963056C49C40926809D59A640AC584253BA00F3386204104CA67A9363306A5BA3ADE18AD7D3EDC05FE3FCE708A144AF538FC68512DDFCEA3ABDAA387E9D3E8D107C15\nss = 2A44E3967C9E375BE9143787D6E951120356092319D6D2AED999E79309B10881\n\ncount = 27\nkeypair_coins = CCB073C4B90BE0AD746E26FB093B60C70110BD1DCBCDDB566A8CFFB7B3CAF80E55F35361778BC0A53EA94003FCC0252D8333C58152482AF1E9C9D2BDF12F377F\npk = A2685786391D97D3B6FEC35D89553E3DC1289051A39501A814CC5EFE04BDA7D7AE7531AE70706277F71055AC32FA25ABD26AC6EA6975D5A91618476D62E311A9FA3DB53582462467B19A7A7F025A3B20A3B5E183EFF249C855BDB3719D5934C3BE5B64576B71CE525BB2874641A09C036BCAB46684E6280B5806B74C4192D0A55A54A6329EE7715C88AC3F1112BF49B7CD642553B152A45366FC925A4F34C2F97646C51511C0C9899161914654C052A06C6311022023954C28BBCC22B4641BC327AA37F494383639AA3F8A4153127F28BA56837A198B604DDAC05F82CB4C11834AA19637804C6643125C9465AC03516334679F36175B35C0C4DA90797E7A0CC36173EB07B8C541AB501151D9331666267ADFA60315305BE5345C46F628746025E7959DBEFA1FC0593AC94ACE87FB515A03B00BC84B66507ED2C6AE4D931FD28186C396582A56A63CC35AF5EA02E980AE2DD21BADB02699D69E857334B1E96A5086BDDD7152BBFB2C49A411085A94321A43E1491F0F0067B06688A5AB8D0AA17A9448004F25C1C5322B8D7B6563977FAD0C70E7BB961CE84CC685AED34B25F0D30EC53A7A5ED943F6EA3DFC917B01985C609C995F765BAA071B3749C89346805550BA19D958C535627E606B2F0C2706632FA466504C267DC7805E60A0680ECC158D6B4F75EBAA030292ED12CCEAB06D5C878CDDCA919050CC386386F5C8B3679B254959A06EBBA5520646E65250CE8B7CCA03227D1B43F49C9E9297269EEB64409712FB868CC47B406D9425868B6A304AA46E472ACB0197A071AB9D1622861916CF31AFC12466A4022A3A635EC89433635BB0AFE2C5F73670BA532714803B1ED473608C5E00C1AD9FC90C91281D5E081692D85DBFF0ACAF5579E2B1B6C5C1B61C3579CD13A7C8011CF5C19709366BC9676CBB8B2271C784672200E6A0254BFCC9B6387D42993E275AB2DA100301B11F7E4881CC5774D2F849E3D3CE63639CCF303A7F7914287079C6066525A4870B974D3DA72A9290B96C6846EABBCBAC2B730849A9B014100ADB9C66D0B5C0E7877DB476FF8A8AC947341D297C5F9697029439390A7E6C084EBBB136907A02EB5A351C94607FDA4EB44458C9CB8B50DA190E307FCD63885463523086036C5655E8E2621D4516A39084FA5B4F9744A921F497EEE3A46EDA05A4F1481AC5B4B819A66753B5B75A95640B0CFA07AA8A2033A8F51CC526CD1BE8CEE5677A78F18AF9608DA3A565BBE1A79C58691A45ADE1AAC936F15EB238BB4879AF7DA68CE2A106031A322C198527B94984A16D9B4A55BCB59E9EB4B2068182CC9B17A8CB2B8A776206B59258A2C9A19243C9925FB5D135604712BAF09E2CDCBC6ED11FDD530D83A901F06C166130B912A53C075178195662D9212E4219C63271485FFCC9AAA6222C9AA2C4E64F5D686BD4874AADB456ED086EBDF151EEA4BE6BF57E2CCA56EDB04C0E68AA4DEB1580D005D9DA4FC1943C85F75208D0BA3B517F89A82A2FD8BB96AC07836391B2DC3B6B0533F0D91E170986CD245FA2A90D6A345679377B767086A1173DEA82969FE3BFAA643AF8F98B97A8432AFA1A8C748EE7055630812BD2D80BE782A726743627E707F7BA069931C9929B37A9B0B04BC23405E5B890700DBC419BBC635C12C390E0A8618EA01F2ABC84ECCCA4B9F576664237355A40B7E931195B606C6759848C33A002B74B4706266AA93FDC2054D95E7EC30F1EF53F4730AF8A31A757A55A9FC69765F67CE7AC0413DBBB12980028BAA2AB2A378A55A283A6C5B73837F8462259C2AEAEB36C7BE5447EA22A85A561E2477742C61DAFEBC969EA66FF992455DB36B6029D863A8B896057251B8ADC659F294707CC643A91F3AEBD594B2D1C3C1168B474E011E7A280E316890D467B77732E48C7BB0216381AC8BBBF6A7D61B90C9266A33EC7744099B2E4D464F1A11E1D38883DE5C89371585A2247C4B80110566817808E52DBA03061848FD6338CF03992C1AB83F68A13E75C6565868DD419815A19983AA8D5C4123109A34FDCAD5FBC3C37C87D1D4A6B1366906A97099DF940B2564F", + "00E37760786EF28C7896C09D04C0CD24820596E538EE3876B548667CB26DFB6073EAA5631B92C4BD05320C923B53552384D4AFAA047A2241416718C51C97BE1DF9C3A91995D515B21B57E338A864D6C447ED4E29D88C30BAC7D2D0CDBAC43E9F4176F0078C715ACC\nsk = 0BAA531A985251B6B10153C8FCE6938A280E93F9ACE7A56DC7F44FA8BB2F88C09290888DA8134A0FC43CCBB75B50B6A724D6812183ACF876036DC252FC893419280314C7611750875821B2F3AC4F1C20B06365709BC07AD4161C94C41930568996F8CCA58C4A0536CD5668488715593E66621F96C87A2178A36438DD4C390CA0532D30B88DB712CD3C50D30BAA91C98CF0BACF32C60C81468307CA35B47ABFE59174E53467CF7B1D376758F1A5926FE225F0078FF288AE24D23241709E471624285C4FBD35A333088DD643CF6CB0AB6B27C8B679792ECB8BA4C28CD8B09677F0A7EBB692ECA6777922C4ED6C20402533CBB9A3F1E0C10250209EF128A626B763B30B5E49C4C4691E3A13C2C2601B6666ABA1D099987990BD1BB00AB5806390CE8088CAE30A5B20567295ACA7F0191CBDB4795E78BF150C7954F9A49880C218C23E59014620E18F18C536DA0B7807B0C9E11B1E341C2E7E5BA799653FC669C1032AA014CB79769361B01091B5E000CBE100933C6D05714481F491B2355E72638831D0C4F4DAA18C6B4AE6E825E688CB812490FA13B43D306E5BC857FBC18A61923F6B685E5FBB5BE9C1871A9822FF07CAEFF40318482144143CECC5B0C579C84FC949EF359F0B24B20FC0A9F3300A3217A8058469C78B7998744024E275CD1C70A96A75FD86019CA031FEC081DBDB796A56186D9A1DF8C098940527D34A1DF2DB50B5136B6737829F0CB1DA3B131AB238207A011F02BCD346A0A7138EBE3CA2D78646D7F98D5A886A24B83F8FE84AE81627011A2633F1C159C3870F7C69126B3C31F50D356888F9077FC207168CB075E0940FB7A0BECC556DE78089ED512A39A6ADCDA9C3C5126D874B50C163BA7B091656E52F9813CB318C87ABAB12A3F8996A4CB446D0793055CA177A1BF455CB956443E56C160F4788CDC6B008C086403BC910332D3E3274F9825E9964484D7A52C91C275E153A496801C0E6C8084B25B53C8EBA77A9412291DF78BD39895DFED82FD3C92947A1BEAB598D33DA8344C88A9E073E28549FC939CF5C6978B6F74CCB23675616899FB69C5ECA0C6B68090A338EAB57A222FBB5A482837C097BD40141659A2A71D81E3BD38D60D0A903592B768B0CE60A7044350A75FB02F19482138603A9D8CB89BA6A32D37A15549548AACE4636047D66CA4DE6CF7643C2A5939478A39873820578150172F965D4DC6CC6D7ADFC360568A53C97D268900B7B20122E50CC5E460304927333BEB7BF73446064D76C3AF1274B503203804774B00F02534772CCB83CAA8475651460B156A7238DA2A9847D445F55687A84BAA06DD69D4A637EFCC1C09F81BB97B541FD77A96883869731AC776913ED6C02EF03183B27B4655639509B1E8BBA74837375628152814448F270B6DD865C888180AA071A2AB42740E93F05B32A9C85A069420BE2ECC5335738F9D46C90C5AF1625779F3A329DD693706618AFB300B5C7099C220126C8398FBB8F32A2A35888BCAA187950365F022585C2E08243F53122B6C5EE9A95B84151AFD10B2110135C2A940BB8370565BCD8739609C44F4AAA7C5C266C6EF7CAB87B351236702E327B3E53555E24ABB670CA6E505DF0E0AECF7513F7E36374988DD8977A0D93AF43A37E05A3463F2CB5F920B7FD117858380A96681229E87DB5912CD91115BBC11712C690AC98C449E261BF959CE716CA4ACC65704A5E93A7731D1A380DC9534A9611ED89C03E72210B1640FCAC8003235D3F3A09DA5B89C2EB0B7834142591A8A944A77BACB8BA6260FF3B0F434021502C0E97686C7FEB6E3B6214E12030C05316FA89A474E49DB8896284821F910A4490A40458A48EF0CB1639234C966609343A46C2F547ACA939E4E471280C1009E34BF837180B8233A4A2901557B3D4E91B707414507449296CCBAEC642470C8A51E6B7B759397F28C6E1163B0D6691322BAD05EA09A4F17D3D19262D81B22C5B2009B80D3E4C23A33144E9CACF2DEA1E496472E7E0922E4646C5F23C532A62A718C303E993DAE41D7C1A2ADB7C7CBAA8AD82B46F7784A71FE40D36681EF2FC2D1B757496AB547375415E5894F1A89D46A0206727570C8CB363343D0F4B73CBE08B3D639C79A808BAAB3791CB7FA51A546D39348E1A6E1162789C2A2A5890C3DF94380E53085127C200B138A2685786391D97D3B6FEC35D89553E3DC1289051A39501A814CC5EFE04BDA7D7AE7531AE70706277F71055AC32FA25ABD26AC6EA6975D5A91618476D62E311A9FA3DB53582462467B19A7A7F025A3B20A3B5E183EFF249C855BDB3719D5934C3BE5B64576B71CE525BB2874641A09C036BCAB46684E6280B5806B74C4192D0A55A54A6329EE7715C88AC3F1112BF49B7CD642553B152A45366FC925A4F34C2F97646C51511C0C9899161914654C052A06C6311022023954C28BBCC22B4641BC327AA37F494383639AA3F8A4153127F28BA56837A198B604DDAC05F82CB4C11834AA19637804C6643125C9465AC03516334679F36175B35C0C4DA90797E7A0CC36173EB07B8C541AB501151D9331666267ADFA60315305BE5345C46F628746025E7959DBEFA1FC0593AC94ACE87FB515A03B00BC84B66507ED2C6AE4D931FD28186C396582A56A63CC35AF5EA02E980AE2DD21BADB02699D69E857334B1E96A5086BDDD7152BBFB2C49A411085A94321A43E1491F0F0067B06688A5AB8D0AA17A9448004F25C1C5322B8D7B6563977FAD0C70E7BB961CE84CC685AED34B25F0D30EC53A7A5ED943F6EA3DFC917B01985C609C995F765BAA071B3749C89346805550BA19D958C535627E606B2F0C2706632FA466504C267DC7805E60A0680ECC158D6B4F75EBAA030292ED12CCEAB06D5C878CDDCA919050CC386386F5C8B3679B254959A06EBBA5520646E65250CE8B7CCA03227D1B43F49C9E9297269EEB64409712FB868CC47B406D9425868B6A304AA46E472ACB0197A071AB9D1622861916CF31AFC12466A4022A3A635EC89433635BB0AFE2C5F73670BA532714803B1ED473608C5E00C1AD9FC90C91281D5E081692D85DBFF0ACAF5579E2B1B6C5C1B61C3579CD13A7C8011CF5C19709366BC9676CBB8B2271C784672200E6A0254BFCC9B6387D42993E275AB2DA100301B11F7E4881CC5774D2F849E3D3CE63639CCF303A7F7914287079C6066525A4870B974D3DA72A9290B96C6846EABBCBAC2B730849A9B014100ADB9C66D0B5C0E7877DB476FF8A8AC947341D297C5F9697029439390A7E6C084EBBB136907A02EB5A351C94607FDA4EB44458C9CB8B50DA190E307FCD63885463523086036C5655E8E2621D4516A39084FA5B4F9744A921F497EEE3A46EDA05A4F1481AC5B4B819A66753B5B75A95640B0CFA07AA8A2033A8F51CC526CD1BE8CEE5677A78F18AF9608DA3A565BBE1A79C58691A45ADE1AAC936F15EB238BB4879AF7DA68CE2A106031A322C198527B94984A16D9B4A55BCB59E9EB4B2068182CC9B17A8CB2B8A776206B59258A2C9A19243C9925FB5D135604712BAF09E2CDCBC6ED11FDD530D83A901F06C166130B912A53C075178195662D9212E4219C63271485FFCC9AAA6222C9AA2C4E64F5D686BD4874AADB456ED086EBDF151EEA4BE6BF57E2CCA56EDB04C0E68AA4DEB1580D005D9DA4FC1943C85F75208D0BA3B517F89A82A2FD8BB96AC07836391B2DC3B6B0533F0D91E170986CD245FA2A90D6A345679377B767086A1173DEA82969FE3BFAA643AF8F98B97A8432AFA1A8C748EE7055630812BD2D80BE782A726743627E707F7BA069931C9929B37A9B0B04BC23405E5B890700DBC419BBC635C12C390E0A8618EA01F2ABC84ECCCA4B9F576664237355A40B7E931195B606C6759848C33A002B74B4706266AA93FDC2054D95E7EC30F1EF53F4730AF8A31A757A55A9FC69765F67CE7AC0413DBBB12980028BAA2AB2A378A55A283A6C5B73837F8462259C2AEAEB36C7BE5447EA22A85A561E2477742C61DAFEBC969EA66FF992455DB36B6029D863A8B896057251B8ADC659F294707CC643A91F3AEBD594B2D1C3C1168B474E011E7A280E316890D467B77732E48C7BB0216381AC8BBBF6A7D61B90C9266A33EC7744099B2E4D464F1A11E1D38883DE5C89371585A2247C4B80110566817808E52DBA03061848FD6338CF03992C1AB83F68A13E75C6565868DD419815A19983AA8D5C4123109A34FDCAD5FBC3C37C87D1D4A6B1366906A97099DF940B2564F00E37760786EF28C7896C09D04C0CD24820596E538EE3876B548667CB26DFB6073EAA5631B92C4BD05320C923B53552384D4AFAA047A2241416718C51C97BE1DF9C3A91995D515B21B57E338A864D6C447ED4E29D88C30BAC7D2D0CDBAC43E9F4176F0078C715ACC4576536D1BACE29AA7C31F7681222DDD15A3CF6EA6BBD3528D2EC8610D68D13455F35361778BC0A53EA94003FCC0252D8333C58152482AF1E9C9D2BDF12F377F\nencap_coins = 1332FBC0A80D85A33C44F3A9F060AD7AC8727576105931BB0401F47B31990836\nct = 8BBB95B44A77216A1F857C9B4E6E9568F3D15EE091E59697ACE775554372B198E73BEC27653B89D3B55F75B7DB1A77576F446D55C90787E92ECF76ED90496673F934B18D595BFB1E5857E518A203564C405E8312ECCFDC276F503EBE97995B9AC078CB44B2EDCC5FB259A6F64541CF39812335922B34EA6865AF7B765B76F988F93EFE307253697174CED49F4825E1D3CD2BE8A1D5804FB915E98116256A362DC3CA4D75DC4E0F01E4B004655027BE4BE66BCA7BB82B3CE5E557C77966BAE45B1977B4198ED04A36D0EFA02E40210ACF4C02CA0F8AEEA1BDB85D27AB1B845AE53841B2C14F428A63F3405DC3FC1F2C762DC312549095C34530E15D401E502A1F5EDD093A2E8231F3D1EE0EC0FED1B952D5BFF3584411525C354D8F4712E4D0A302E664A5B84373C5F1DCE8F98371EBCB3F15E647CBECF1395AA0A98131B14E5E6C72E091D4B58DFBAE3FE68C387C467F340088607976451529E75DB49991D7DADDE8CE88AA912F0190B79695F8F9CA2290D2B53DC94CE7196660DFD08D87A84B27DDC89DBF00DC5FA35A3A9B6ACCEE8764C66673E720CDF03935C71DF85B2764F1B2FB68535B50394E0BDBC00E045AD6C6FC2D316AE0D2ED105404D0D1FDE5750B70DC292A6FF4CFEC95584C1D048AD9077A3834DD0DFA9B5059E9C6E5D136957CF834D735B30E1F562D0E56B6A5F59E40974E51246FEEB2F5EF366A883D41DBC4BFE9088F0C3BDA9A63AB090C7386621025DCF626C769DE429FBCB9B26A4BFCA19E715687852F0AF8B2A50FF41B05BEAB7DAD0A0295A11E9336B582E01ADF7A8A4134B491134C4E009F4DCFF386B487A1554EC59CDB102CF86F9C40CEE0A36EC4A38C1842BA210DF536E27F51A543D5A79242F3EFA8603A452136EF9E82E5A030AFCF7279DEE2EDD80E83922252A8C79A325FF8EF4E13C7844583E7ABF2D608A546DBFB05E378AAB96DA8B7211588AB894C6E607203841CD5CFCDA1D718BD117D7B4950F99C4CE55D4BF27A9504C24F5E27C339F7383E968EC2C02A442B861E3D3B442381B5CAEC338C599C3E74B7FB7F3548C69BA1C6D6E59139B3AAA5A5653068605C59DD6DC196B44", + "6FD90BB44CF406565C43E9C154835FA3D128E1B86C6DCC28BB923F4499DD41EC9D66D3C83CECBE5AD645CB9493CAC66EDD39E67F777C4FE05D60B323EAE2A4720A95E3899D3FAB968927586641844B2D90D164DF22C5F0B0C6166204B2F27DC8A1EF21575D70461C991F2EB5BA9C1AD77D4AF863DEC89592A2B1865C67CE2E85686A7BF8662AE0A13A47282DC4227C4C28BF40A1BA78F85B68CACFB2644FE045A0D272EC5CCE447B9E52F153A81BD16AF972560A338F92B54378C5427817F240EF5755130675B18CE08124538B5A859D7A5FAEAA5EF892415C21989D5F53C73354DDB92B3C6F17606C4B6E7DEB05C2B245449D8B245192E8920CB27A823ADE7236C038F9D21AB3CEFD9C3818D0AB5249894DE2D2812E76101A1269179C8037759E85BB2FA1DDAC8F9708E1BAF809F3FE24517D7CC57B19FE24F937A8FDD7D11C8E145509B96620930B4E259D798A37965520A4BF8CBFA46E10D94638623BDF4C3EBE51DF5DBA233DDA1654D4F93DF8EA3DABEAF32AF2B41478A67BD4B8B1530E7D24850FB2A424F2C4AA4B4EACD50E099B50338719FAA6CE45544C07020120DE7B3FF2D6121576EAC8BC1E2073DBD48C796C9616F9D3B723C7A54E3174C7260A5AD035D69EB198885D51C0FBD64AA6FEEEB1444BBC19DC89CB1B7571D5135B2B892239FF83799744BC60E5FE861EE83F47C289E4E9C7C741879B4617DF9E5656CC52A8E44ABCE86E7A8ACBDDD5EF5B815FDB28C07DF5DCCED8767E3972E4CDCAA331D8AA6385A6A8BC7C5198D020BCF42C45D88658E85DC8F721A248BE6EBF67FD1CD0957D6B52B171750F7E71B009E1799E894ACAEB397FF4F233F3D763CF78F4229390CDD4BE7AF76E4E108A842EC7E671D25B4EFA1A4D905B7C95B12606A66DBEB6CA1D750458AFEFA8EC1F691D179E2E0A82C12F20C1875D428D02FD2DBFBEE9E54A0B05E15907F490476C859681AF0F71EA5C6A875C1F5AE547EA539064D44706FA397122971D90689B49EDB2CCAC9072BD490159EABA949E53ED51FB23F65AFFAB79E81C14A019F852284893D9F743CB38ED3B269A5FE7B5B36674EF197391207277992ECC957CA86DD38E0CAEFDE9B8CDB12\nss = 5ED36912555632EDB046495C3351C3195ADADF07537FDEF65821A0207DE69041\n\ncount = 28\nkeypair_coins = 2E889F44E28901E9AC7CA6B2FFFCB124C8979401B17064D7E1D51A7E3C3ADBFAB2638686DB9A0292ADC26E549C7152FF36D9A7293BF1380BF93F1498546EB93B\npk = 1A7C33D6425E068141B06C2EA57A010851A3B30AD021F6C0AA896E81F13F02D341FAABA798A73A96D0B66B00BAD5119A8D44797A1218B18224657573C9C556F5BC096F057F72FB749FE41FB9D290E76801B3712FAADC58A1D3A8AAABBB996277D6902707A21EE099B5906854D2D45DE78C1F134293D3DCCED2296C5DD6B1469AC91C2508008951C7FC23ECCB9A97F23501B21A625107A9C56EC39B724189CA111A935C3B58F262A29FF577F8459C74D9147DCB8EEB8689EE35AA131369CB805362289AE5973EFF1420A8ABACB650A1683104D2D82ACBB28E54205404D68292F99C9C222BBA8045769B73B890C33512C04AF0CD86273234E31E94349A322AA13254484C3B99A2AC01F6CA00A77BA7B78711C73249EAC054D34A1B0718814F407FD9D62A5D48212FB3AFE5518E3A671BCF2CADCF4C8ACB972603F960F194A4214CC8C9941FB31A6093A34C102AC18C26BA171A048D39860EEC35E890149B9BBF510A4FF2270C72A507CD4A0500BA593841974C419A7EE37859A76F02463CB8303489E61FF21492AFD03124368AE02C794642B7FE758F76219128AC75F19C41AB01ADFA1A51B027C16E5B15279587E4F4A929F34AD51B06A060058521AF6E4A24D54920A7E60C4174BAEC0B5FC4B498B23711C92BBBA383556EA6169F558F5AD29443012C5B82524CEC7EC43A448FE57D88C4BA220B56EBC2BF90A2471BC735E88C2E73A8771D669A1D76566EE80B78410D7CC02407091F4B6AC97CF2AFBE67A02E445EB51389B8233080D42E74E20650A514F995395F8B23ECE04E2A5930294B37C79AAC8782AE62DC0D7FB60FFF5C8D54E29FDDA87562250A70038355A70D6BC0C3720726F0586ACDC727D993988032CFFCD5A9B909857BE58C3B6A7C10041976A472D2BB7D3A0932A6C0CEC9B68126B98B40D4041F5439F395CF6EA5213D39C69AC91B85696B009084E662AAE8053DF014720B5759C5F81B91F296BC4103C7DBBBB6248F87E8543E8A660BD6BBB9F81AD5721D7F36CFC776ACBC8635E1910E4191730AA68E5E177D2D2234A645768D26CC069254DAF0C94A09414A36A3D19CA05A5475378254DDB0890CAB0E686438461A1D499ABA23EB3DC2B61AA6A46C4AFA2A262C6F09979F01FA1A98F62B8098BE6416C6CA5B3F8EE79E28C07CBE2855BB64C88F67947A495E87F03361080CFA3C2AEB2791671729248B488278C72E85BA2DAC1DD2A8A3933A7C7D44CF69F959C5ACCE38DAA6B796328565CB97E0274975323A7B20D27937F0C785152209060B05088243636039808C555CE29FD18A449A9A188AFBA922650F17102FB0A28381EC046164358E344FA250C05DF6BE895A5A0566B409F893E9D99CEA7B3D71EAC7A4D0081D951EB755CD39215C60C1A21DE05217692BEF3B8B4104608D198AB11C4C30941789919830CBA4E7431DC127AC770957257C19EB80595AB9BB9D4A0AC266B7A37B94BC517139C904595C327F5C1430AC7D7E33BEE0BA9C7BD7B266E290C3645821542F0E0A920FDB72707544A6D10C8A4C5A46148C2458B6C5AB06D42C2D7DB03CEB0C00CA37303C67BAE0038E0A373D539B918737116ED029A4D78A71D74F770CA53C9B4ECD19BFB172299C55A0CAC83FCDC8C74400C5BE76907679B48E0AC041987F96754588B83722B49159F92B41B82E6625A6108A957C34B2D0E30D536218ACDC56A093BA9940C075362C1028C6BA42A775864BBBBABCA70A5B7DA5CF05821A9A81AD022784202362E587BCE2A5B090530BE4C51EF77A887AF373637326F436C891304B72867DCED161C2F0342F23AA15D69FA887652081A9C42B0669A689C5FA77649BAB20EAC8A16A51759CCD0F86C06C610A88162291E6CC1D911A88FA26E7EA4A23A224582807F20A8F1E2202A92495B6393036A25D4CD97FC72A741E006B7E919358F6BA3C5AB136823CEB955382BB6FE3F61B6228467F3C6F5DE79531F11FE4F268B7F50F662C85A49B36A7213AE958A14E9BC45D0105AD13C591AAA7F1663301AAAC45427DA3C6A8873BA78E7C7473D41BD79534DF8145D1749F94CC9C82377CB388129D0692F839942830C5814A8FCA410E4CC754F7315FDDC20FC1D588AC4C3CFE9C40277B3F6173809DC063F6813852E47746DC6A9898918A149F5355A8A4F6A7475A31DDB485FBD23920C0D2D0CB20E3A9C63BFF3E047504A8965639E8FD0DB690FFA1E791FD\nsk = E0C2121F06048FBC565FDAA305202D439AB3A81B31FA257AA6F4273547C1465610AE51C2C1C8603AA36D1575754A86C9194B1CC6A9B8C9F77CE6484C5198A193EA4369293798943F7918142F849C8D7479EB0588E6E6B4ABC4CE81A406642414EB4137C2DA905CE4AD2B750E7D966D34A3B1BFA8CA5C8070456B1F6D5B71E582C9E1E2BF9DC37AB60A09E797A43F66B27B04C13C034FA6F594264C9D7DA884C762B159D775F7750A1862216E8BC992C9B2E0D18513F409DF8B0811EA89D2A69B66D34E59BC93F5C7BDE25140A976A3195541EE22A7EDFB7F9D647616B31399B6C924022F036225AF7C34E6D221213AB5F7A20B908325835266DA1B456F5649B895BB032142FC5C700CFAC4C2A44CF1F96D57B8BA1EF2C9332A612E8BB9043559B5567090873D3F9450F37670B473A96F812CE1D71892E43C9FE61FA594601A27A98EC817DD822C625B98E0FA8F2D5A311A87A6C23B4DFDF44D7511373E64A4A18A833D654A946B0DA9694329023086013A919971CC4C8A45916901B45C25C28EB6051600644660796935E65A4700496BC32204201D5C8708FDECCBFE949D1339947C6BAABCC67EC901659D220FA4D1A3DA1A4ADC2B1B323BC4CABB6065D9032CCCA3DD3C8689C9A35810BCB30B99B3F55CF2AC8258C5B85C696A372C7AAB5B0DD62ABA06804466FA4C22B2CA0E09B7D47C4644898AACF6899C79B5321110F010CD40253E40C5920DB980A57C01B55C506A6662BE1253FF171412820272613940704F63E70340414322B69B60B50BBB4459C1D6A0F25065DA032455598EDF678505F54B51713209565FC4812AD5F8A05A926340FC3853719146D049017475A09A1FD2D47B35371D715C455DEBB3A40A8A0E83247B6B8FFC05B2E857B5D8B201E56C109DC155B720B2528301C49237F7A629234231FBA25C75D600BD360796A68991BC68CAFB5B0B7C748AB7039D8C4FD1B3B4DE76C193123E50109BA70956B9556F245CCD4330B888D43A84714E8CF17E5713B5AE5A9FC3A331718C227EF4BDCE131F31028D68529F06A218AC32317E9B7634C572513974DA2BC3DDC4C07F2C6B8D3AAF5734B5D9E691D790B0FA67CBCF36C0372C056C268E0C243132DB5DE7365310F5732151B80BC98A2BB76F9E8C616FB1C90A5B83CA5738BFA9CF1FB96242998A44D667A57B517A834834AC0F2AC00E91B32E4E7AAB452249D31575BC96C8652CA8E4C3C0D3277A60F5CA7BEB80B563391A3B8E1A1A97C85823928877954C28D052A2C116BDC325B687D26D1CCB3386CAC9BD4C10C3AC381E056F9060C89E25A910C78E677964D153B74554C8F38939F881543F820B6F11989589302EAC53111A45F7664616999D7A64AA26E4CD74539DD496A1F0FC530415B16FAA4AC86341C5400CB1BBCFFD2707BE12C31ACC9B5C94B806B71DAFAB1EAAA087EFC1419CD2978EC1B973336D27B69AF2FA85F6C33B73770C0F6B85D855938ED8758E6AA5724B8C0D457B29A9394A3528DE99CBD7A875BB5B299C8A6DFE416104A59AA9E958E3828D3C651B5A9A7E81D7738374692033C4C68254D5170204F83A9B8520016466FD9189EFBACAA23AB8F962AF7D66AEC2E27E468B9C326711673839541262AADC49BC135EDD11792DD9678DA0991A017CD1239DF3C9B21C57623362BBC1182CE6000217F6AB0EB9AD6344AC71AA30048B7BFAC20AE1E97559109E45B5A9FD052594B4CE4C5C73FC105C9C8B63CCC7331B70662015B5E36057B4C71E4A510A55EB7FB039CFC9A8CA4B002A50966A158BA7D4D21449AB67DEE747A7588B4A5B107E15A817658CD56927E84816C07AB3CD968C425A3431F65E25496FFFE96E29214445EB2AC1E78A644305A9724761D0C51AC0C19B0B4839C94BC2FB5DAE888E0B797506806C2FE27F1F4280427A34BEF3643F022D05866BAC17595906438C363C4D53422D994370B1C8D2084D25E101830A57BE5C754196B75DB44E84800281DB3829D8A0FB519AE7C3C854650D09E232D993AF718501F28C292B59C3F0D50D50D75BAC422DBF23CCAEE4466556A4CBBB8D60932016D63F90E4C84D12C62E4B0EB0176FE7012530B5BAA8F531608241116C17868600BDE858F9A9BD6078165BB34FD27273717B5CC5D423F19CAA54CA4850AC896E163C70F9140432041857521A7C33D6425E068141B06C2EA57A010851A3B30AD021F6C0AA896E81F13F02D341FAABA798A73A96D0B66B00BAD5119A8D44797A1218B18224657573C9C556F5BC096F057F72FB749FE41FB9D290E76801B371", + "2FAADC58A1D3A8AAABBB996277D6902707A21EE099B5906854D2D45DE78C1F134293D3DCCED2296C5DD6B1469AC91C2508008951C7FC23ECCB9A97F23501B21A625107A9C56EC39B724189CA111A935C3B58F262A29FF577F8459C74D9147DCB8EEB8689EE35AA131369CB805362289AE5973EFF1420A8ABACB650A1683104D2D82ACBB28E54205404D68292F99C9C222BBA8045769B73B890C33512C04AF0CD86273234E31E94349A322AA13254484C3B99A2AC01F6CA00A77BA7B78711C73249EAC054D34A1B0718814F407FD9D62A5D48212FB3AFE5518E3A671BCF2CADCF4C8ACB972603F960F194A4214CC8C9941FB31A6093A34C102AC18C26BA171A048D39860EEC35E890149B9BBF510A4FF2270C72A507CD4A0500BA593841974C419A7EE37859A76F02463CB8303489E61FF21492AFD03124368AE02C794642B7FE758F76219128AC75F19C41AB01ADFA1A51B027C16E5B15279587E4F4A929F34AD51B06A060058521AF6E4A24D54920A7E60C4174BAEC0B5FC4B498B23711C92BBBA383556EA6169F558F5AD29443012C5B82524CEC7EC43A448FE57D88C4BA220B56EBC2BF90A2471BC735E88C2E73A8771D669A1D76566EE80B78410D7CC02407091F4B6AC97CF2AFBE67A02E445EB51389B8233080D42E74E20650A514F995395F8B23ECE04E2A5930294B37C79AAC8782AE62DC0D7FB60FFF5C8D54E29FDDA87562250A70038355A70D6BC0C3720726F0586ACDC727D993988032CFFCD5A9B909857BE58C3B6A7C10041976A472D2BB7D3A0932A6C0CEC9B68126B98B40D4041F5439F395CF6EA5213D39C69AC91B85696B009084E662AAE8053DF014720B5759C5F81B91F296BC4103C7DBBBB6248F87E8543E8A660BD6BBB9F81AD5721D7F36CFC776ACBC8635E1910E4191730AA68E5E177D2D2234A645768D26CC069254DAF0C94A09414A36A3D19CA05A5475378254DDB0890CAB0E686438461A1D499ABA23EB3DC2B61AA6A46C4AFA2A262C6F09979F01FA1A98F62B8098BE6416C6CA5B3F8EE79E28C07CBE2855BB64C88F67947A495E87F03361080CFA3C2AEB2791671729248B488278C72E85BA2DAC1DD2A8A3933A7C7D44CF69F959C5ACCE38DAA6B796328565CB97E0274975323A7B20D27937F0C785152209060B05088243636039808C555CE29FD18A449A9A188AFBA922650F17102FB0A28381EC046164358E344FA250C05DF6BE895A5A0566B409F893E9D99CEA7B3D71EAC7A4D0081D951EB755CD39215C60C1A21DE05217692BEF3B8B4104608D198AB11C4C30941789919830CBA4E7431DC127AC770957257C19EB80595AB9BB9D4A0AC266B7A37B94BC517139C904595C327F5C1430AC7D7E33BEE0BA9C7BD7B266E290C3645821542F0E0A920FDB72707544A6D10C8A4C5A46148C2458B6C5AB06D42C2D7DB03CEB0C00CA37303C67BAE0038E0A373D539B918737116ED029A4D78A71D74F770CA53C9B4ECD19BFB172299C55A0CAC83FCDC8C74400C5BE76907679B48E0AC041987F96754588B83722B49159F92B41B82E6625A6108A957C34B2D0E30D536218ACDC56A093BA9940C075362C1028C6BA42A775864BBBBABCA70A5B7DA5CF05821A9A81AD022784202362E587BCE2A5B090530BE4C51EF77A887AF373637326F436C891304B72867DCED161C2F0342F23AA15D69FA887652081A9C42B0669A689C5FA77649BAB20EAC8A16A51759CCD0F86C06C610A88162291E6CC1D911A88FA26E7EA4A23A224582807F20A8F1E2202A92495B6393036A25D4CD97FC72A741E006B7E919358F6BA3C5AB136823CEB955382BB6FE3F61B6228467F3C6F5DE79531F11FE4F268B7F50F662C85A49B36A7213AE958A14E9BC45D0105AD13C591AAA7F1663301AAAC45427DA3C6A8873BA78E7C7473D41BD79534DF8145D1749F94CC9C82377CB388129D0692F839942830C5814A8FCA410E4CC754F7315FDDC20FC1D588AC4C3CFE9C40277B3F6173809DC063F6813852E47746DC6A9898918A149F5355A8A4F6A7475A31DDB485FBD23920C0D2D0CB20E3A9C63BFF3E047504A8965639E8FD0DB690FFA1E791FDEEA5DB7A82254D19C0A0C552CCC92DB9C3EEF74CD73A9937B7B7298171313F12B2638686DB9A0292ADC26E549C7152FF36D9A7293BF1380BF93F1498546EB93B\nencap_coins = 13A6DE9E8AE97898FA9382E95D49F64EA8592ED38C3AAADF36D20C243FA0AA53\nct = C06383D9BE7A89BAA0AE2FC3D842107EA71D763793D7C27FF7DF821A4D668484B1534DD748740FA0AC367294A8A02E43B44D7E1A0CC2CD312B341166F2E645150728F0247BAFB5930A2402676F2FF223127B39CB6B4B650A7DBD957B12FFE8EC42D72CBE2360E9BD85C074B46509D29A3D57B4D18AFD0136B73F82C88F4F13CC30FFBB23EA0B2F8E1944C3B79CCA830A244B92639B745B5BFA594780729C0139868750074C492106FF0DB8F368AB9FEAA01CB2451B15EF0CAC24E3709083ECC54FFFA6E1481BDEE58455A962D2958D6080677D267B238BE229C373BFB5C246F8512996719BAF4ECBBB044AAF719BC0970CFA4895C63A1E3ABEAA711880B1DD360FA4B08523949E8CD28F85BC7F98F106A30B753167EF08F428C096F83EEAD3855E2376B998E7308E5E98E99C8CDE09A3F8FA240D6E0713F66C82B19133715B01D92F83284B603C22C4B084EE07A45B03EBE8275C8A251D5104E9DFF5767B60C7743ED8BBABDF49B10C1136AC0786FFCBE22C945957CADEBC7E0B6648EB63513760167F996E9ED4C5267F481F8331F7D766AC7B26F127F56E71FD3AE03B6D071610580A624A51EFDE2C63ED27E30477F56197D8E64F8C8B0C9125DB5ED0DBF9B5663F001FA8BD60BCB3DE284F47678A686C90E053A76841B13D9CF29A407D769C00CBDBD0663B3BBF0CCFD6EE324563D2F74D8451196B04E908539E86A86353C3ECF259B82CE3FBB4A90B206C8B395B13836529EB7B7676F0451780FDEB90EA8032C35EA58B46AE072F8CFCB1BB2C1EEB6C79E7D56946B6F767F5C2750E07950FBAD7B3448900ECC99B62551E512B9801B8D48FEF493FE49B49F4A0AF59503660ED1EA68BA45BF8FEF3A86CADFA92519577B45D008F0392117B21936C7B2E7B3F2AD5DAA356EB66757473E81BCC6CC404487D63AEDF20F4C0C195CD5B8BE51B28A8EA15D5CC1F8A7B61B08B45A16F390C4FFCBBF40370452268F66648CA1AB3C23BB3AD7DA5220E0F478DBC0D9DE4DD7CEB0142C196CB46681CCE1E35DC61F71BF6530EAD34B456E2FFEAA00D4C3893FCD15B120F91B1DA7501F87BBBD2BBB2796DB846381AC0A9029B1C69CDBE9F062D0BB088C6325A9DE158B84337D4C0133E8919700F2A4AFCD4B7C9C935B5515186E6626D9985CFEFECFCE5411FBF49D1FAF6286F674A869D69B1C5ADA149D6AB05BEB449EC1BD6140A1174E67E00852F9013F9F7EC30A5DA5437DF5F986315649A2EA0D97C1D426BEA7C809C61AD88BD09665C3D043F3627469916F067787630BF8E7A40278C5C20B78131C52C50BCE298A5E2F3BD050BC37BEB85428B488A3AFFD17093B3841CEA23EE256B487FE58BE611726019C42D9932D3DAE16C5DED6A2FDF773477B5019D5F634984B0D3616F0C40EED9AA7789B4E9D8F237FAFE7DA73A75D8F9EB7FFFA5101D53219817E95F2013386E23CE6355BDF04A9954A85E5127AD6A87FE65714976727627BD725487591A71BCD62BB83D7345681C2AC464F406D8103796B062E249B3888D8AFFFB8472493CD2309BEA341077CAFEF79B6E8C49E55857944C8A83F85FF9441E1797146F6A4AF7EF4F4B70EFE0AAE6C0F786CCCE576ED20BDBF491A692BAC306B756A1164238F2C6B6E99A131179E963F119CD4DBB23CE61FC97D5A127E012575A88F4A76FBC04513BE681A87AF43E3059BDAF763FC294C7667DEB90FF14FB8D89E0D8D1540B5E940463E65F6BE6689F39C26CD8A7807A935279E57DA5114923C0B8AD4235C7A966224ED2ABC1D241B2FFA18A77269352008FA593721E01E2E5AEF70C865AF810C267BC36D665CBD554B048D7E8E2F6BE70951B9B058480635632C9387F34BA13FB1AA4726754905B87FBA5FE096852CE07E19C9E2F045B51DD4D79106E08C5D08BCDD2A462FD134F2CD75577487D6479FE760FEBF8003114F1ECAE3255118635FE619BD135591F24130B615D0EFE7943BA19E97CACFB089BCD33E6D8C58C426419F1A0D961F5D575B34C379D374B68535894BA6B0C562A61F007D76E3E7491AC7C3B10A42409E053F94ED54276982DC1E74B007FBAC8A5458717804666F1B9828EBD217B8DA5081ABB8AE79995C7B6A0DB6390159C5C62A14C0B1D957C504EDA285E3DF6BCA22AF51E8F94AA6E8B597AA73EF1141A699C69175A486D4990BA0B28D8E68769B2510BABCEEE5DA34AFFFC8A60EC198EE22D8844607FF7F7\nss = D589AA0B4F2ACD9429BCC8655812D26F00A27CFCA9CFE39FB97F7500DD00D950\n\ncount = 29\nkeypair_coins = 174AAA36410566DC15A5E62874218D7ABDDE0B2C0F30D877BB80B1ABD5F5A0A43AFCC6703873BA41A425FF19559EE47D056D3B5B9E567E5CF24EA17010A5C3CA\npk = 0FB39B1E4B0C22871AFFFA785DF48224D887A73CB9B9A68AA2A768B3AB087BD9CBF6253378885113BC6168D631121A5FAD30CC822133161B0C39C0A2B30C5C33383555B415C6FB0588D16B3B890894026BB507D080F93E13327707A54725A3A859661E49184025F66F2EABC07C5072A21275440C9D520C9D0570CD4BF8752DFB37CA066AE450A3E5E6694B9581F6195B4B580FBF55B9F933C6F9867AF36786FC8C24CA71B47127AA08798F99B113C1C661483A6AD196028B7752D9D4732622934A5B05C8B5095789999796039928B453E480F008A4BBA7A49AA65462D71672450B56C441D2440FD4E151C9D0518D10534F24C1A355A5FE3AA1C4365493C7AD66F254300C373AC264B3339F3AF02E2736B8023A270A20BABE69CC15D494803BB515EC54719619BACAC9AC2A58A4E67FE303AD9565B33C8472335710E0544C4A96BEBDD98454058413DB3BFC2958803A5963C725A4CA074EC9383DDA1E892AC9E2210A60D19D5E4B3471F9519ADB6BCB79C16742C07E933767EA4B20134BA8329C0C026DA0E8A5E12770C8BA4EA7361BAE91AF0F953B47032DA6640F202A8468A096BBE92CB8B02CD524B38A7A4C69D5B9818C8B88DA78A7F2236746217A75A1F6E2805533A17996B7F972939A23C75C9023B715A714AC346F8102C2F8A04733495A4B456F179372202477E60B60BA210365274A393D999390628C7F63D2AA2B05CEF68776DB9150C39B6ECA9AB32DA9C6753208D74A2E7911AF644A028D2C5A68494EA3DA6B08A5B67D11090C587F580800E04C942445BFEC357E33388A0BC328808624E56979161C3C7AD3BED206B3FA7AC6BEFBA42D067A1B350CB557BAB3F87A05B22EDB886812935402915E5EA51F41B70DEA48AA2AAB4F9F247D3F637EFBA51120A258CAB867BE231E67675FF29C83BF982E7B15B766A84CD9369AC28C29AF664F5C7A7553EC9A0C3285CAF26CE0B9C84D504EAD34617F303F6D0CA807A7C0DA1388F7407BC03C3111C8C87EE158E68B53CE8C668E8343B2303BCAB6A4D98857C7070BB103C47C60CF59049901667B3A27B0187AA53008CD1A57C0F2465655D8CDC03494A6074C38F028203357EB2A37967A60A95A1DD22B15F3D723F812890FFA105F1B9B2A238914F39975C1C0F49244E4", + "DB7728E15329F2BA8ECA4CBE7B76029C9A6F721C72E27149807AD9536D76A57CEFA39EB1D93700555E324AC5149A45793667B37007FCF8486C6C5D0FFB3ABED3CD8BE0B87D1B2C80AB2D3E40949F94236E727B92E83A9FF0B40100B200B6519BE545E893B60D09B881C2681D335F9F501B0910572645060BB8A141E910E6AA582F652EBAA79BF2F77B373459CE87C474213EF0257295ABC192C05BF31CA3EB061648455FBF82710F8777636C229EF49C6986CBA9816D11D636186B62D2B06212932E9E727954530182483110958B99B4CD692944B2B87B618C6CD7765336E4642D6950A5C5642DAA8974E498EE2968243289E1CC8460130C034B45660B3668863D719AA9C8E11DF72084AE53C3B4D85A7860C42B2482C9A050B1065DDA241B43EC996E368C6C7BCBAB69A433040E56BCBD4F167A9D71C5D336234BA4A5E47A956459B4C0477B4780769530CB6C9B4A2CB6AA27423F76A58F89753196D8CD99107EC04741BE761696C642CF6443BB72C5DBD336967C336672AEEF98AF9B203EE6F4096531034F890B1DD0862A0737777278167A2AEAD708533206B3624B906C57E4ABC42BF61364E550326A62D4A74FE889AE41839820FA6FB487569F53C1851734CFEA5F501104B9240CBC2C87B0531F6E008B38F1287BE901AF59A45EA19DE5B2C4CE78BA4EB1ABF4284CE0EA22F18C2A26F428BBA481E54A1745702A8AF06CAB649BB5C7AED2342413157A811A35B162B6F444CF2DDB22A24BCE8E2925D83313D0B760017B65B8867419C7A1F57CC785B26BBED63EC79B83FEB60674E2497B87BE24AA1F899CA59D6391C1F2AD9AA90806FB1C97DCBFE5B9934BA169386759532B1117115E77884623C84CFEE522BC0735E1F34EAF4B452530418F652E6F15CC3CD88A52E98078424D486CCCD38272A0819887D85811E6BF8DC3689A3112B1B86D77D2BD91A53D123A11B6EB4CE3A8471C35126C017053C8A8F46054BC9C92752631AB8A9100B04F79E14C74A75B0CD39D1173C3F411AD1EFDD8BF4BE2AFEA69C2327BD070CD1432C8D219\nsk = 25933617206AE881C4DE291B4F269F2E51897FF29D3C6803E1A4C58E53051E879F1AF333393C75B366CFE2E84CF9CC930D1928298897480571D7050751601BC119B1071412EFE8873AD325BC00420D13A752D33087BB6F884628DEF98F4FD21D01113219203F93419875C91CD33C7976B7A45F510F70E6002957AC49B862CD35640CE84E6B989201A74EB76422F88B31C94ACFA811605A32634199BE1639A50B709E89683C5CB0C975D627B76223EA48A2352C8BCC254ABC60812A6A5AB7747CA82073D1D31FEF708866A9801AD067A6DA0D848C409861C350DB559A0AB1D91C9BE0C149D6C241A13849D9EB2DA4B9B9B30B348217491449A43EA4544467824FF954C4869C8DC0B2BA2744C8D38BA584CB78EA6F6188BCD090267BA46882F16964AA003E2C60105415F937CF13B9CD00456D3545BC5E48B6DDF61A14ECCBAC23BB1D071BB14361B4C9ACB7B48805B7890C3676B550238391B388260CB0E2567F725B0382C7174440D82BA8A6D226D325CDD1C26ABD510ABB195B73D203F9DB7DB44ABBA87581A3C57F079B44A9455E3FA16EC87A0CC14368569B35517272220BA7760A8A0508BF0033031D42763FE89B611366B8B93D2D523D5C872BB99BBB099515A5911F1182404B7B4CCEA91462C6A5ABC16C64F55AB38A763A03BA48E0268819B6DF8BA88704AB4C7BCD8F8A150CA434AB0632ADC522A49C0E45997375D69901416792F845FCBC1A18789B22870401D6872374B15C851ABA4C3CF5A8930D34C74FD444A2C87F90D9353CD77361E26C99C8027B50504BC5B3F2BC27F3978822113E13D71E19E3915A9A4F0646AEF6D513E155B41237B2AB08BDF38322BF4C00706C0F22854D080BB8ECF58CC9B75D19A0185412A74B3C7D61A04DD8CB07BB37156C46221A7183BEB9321C58A924048AB86032F54815DA1BB33AD4312391C1A6778D9070B1A4542AAE231AAC97BB5E1A1CF42792C9921313C07ABA3A8C15DB5D1BE417C3888A2E0921A7AA1926044AB865935A2738B4378484B44471DA250E41925E976BEECA9F93D191B0C85B487BADFCEC4BE7C7683C508412E096AE888BAFB97CEBD3266EF7397004CC56741F53683034FC3160522E6BDABAD190C51F31926AA94B2F2A4506D69705623E3047176B46169AB8A715B84848BB4FB9830BE744CAD7591DD8D128C1A40F8A5B2829A92177D73CB1F319C0F45557A69AD790C87A6B8314E618444081C221C07C4BA5C1C450B8080DB278770A0C110DC386FB8411D4B983503964F7B6AFA10AC5154CCEA9E6222B4A70E5175F125B0A83010474311F8EF84FDF3AAB6D508B313A93C29675ABE12CDE50BD4B5B7E13C7228D9AC9DF569CC1BBC995EAACBC2290B0293A2BBA70AE8757C5A7CE84386093E02B3201573C56BCC368A7DD404371453C38823BA4752EDB663E5FB99C5E91CA9BA94CAEBC9D60A6318CF62168A86C0C419CAD1BC4FE514A745BB2C81701B89BA371CC1F10B50D95086D99778383108DFED849A1F74696464AA1D67F7F40BBC69C1FD907696D6227CF20750D68A3D36C600448C91A523A16E5C84B40819BBB2BFABB2CB03B658FD0656F410752F52BFC9BBA4A3A8D09D5835B1540F5DC673DF71540F560D411B562F2B047E195E5C5BAAE8A93147C41D8F282128B8C455100865CA55516709FFB8F33D20EDA56796324B6F3B249D982C7D49A84FF076BE2187DD4A51EFB5592F9549A27EA274959087D3C2A5E217CA3B73391505DE8AA664288B95926CCD8028BB7A7C24562CF2AE14FBAB852521978DD05BFB52885D8C86CDB6A8DF1755F8AD12A7BD7B00B2A7BFA49693646653D1C50FE826CC9C39988E25D316975CAC26108E5B9570979DEA5843200C346E4C360E0B0F6AB71397999F4AB2F7AF368D3218093D1C69853224F016FA11C408ACC211858BC53C62AC6D395898B9A02EB0F80E5284031B39AD5409D9C28EE549D45712DCF080FC6BB5B08B526A615173F543B10BAAB4F9254EE7B7690C758D20861559C1FDFF88C10A14EEEB2917FE47AF7E63259C1154CDC4DF1A56AFEC68855FCA341451BA7F617E9595F009B0DDEF81741D78BB2851C3BEC505C070A8C9241E54B2A2F661B06323E62365A90E7B5D0D10704A184B1D5782967122D9864EEDC852E592862DC868DB21F70B83D3A482D0FB39B1E4B0C22871AFFFA785DF48224D887A73CB9B9A68AA2A768B3AB087BD9CBF6253378885113BC6168D631121A5FAD30CC822133161B0C39C0A2B30C5C33383555B415C6FB0588D16B3B890894026BB507D080F93E13327707A54725A3A859661E49184025F66F2EABC07C5072A21275440C9D520C9D0570CD4BF8752DFB37CA066AE450A3E5E6694B9581F6195B4B580FBF55B9F933C6F9867AF36786FC8C24CA71B47127AA08798F99B113C1C661483A6AD196028B7752D9D4732622934A5B05C8B5095789999796039928B453E480F008A4BBA7A49AA65462D71672450B56C441D2440FD4E151C9D0518D10534F24C1A355A5FE3AA1C4365493C7AD66F254300C373AC264B3339F3AF02E2736B8023A270A20BABE69CC15D494803BB515EC54719619BACAC9AC2A58A4E67FE303AD9565B33C8472335710E0544C4A96BEBDD98454058413DB3BFC2958803A5963C725A4CA074EC9383DDA1E892AC9E2210A60D19D5E4B3471F9519ADB6BCB79C16742C07E933767EA4B20134BA8329C0C026DA0E8A5E12770C8BA4EA7361BAE91AF0F953B47032DA6640F202A8468A096BBE92CB8B02CD524B38A7A4C69D5B9818C8B88DA78A7F2236746217A75A1F6E2805533A17996B7F972939A23C75C9023B715A714AC346F8102C2F8A04733495A4B456F179372202477E60B60BA210365274A393D999390628C7F63D2AA2B05CEF68776DB9150C39B6ECA9AB32DA9C6753208D74A2E7911AF644A028D2C5A68494EA3DA6B08A5B67D11090C587F580800E04C942445BFEC357E33388A0BC328808624E56979161C3C7AD3BED206B3FA7AC6BEFBA42D067A1B350CB557BAB3F87A05B22EDB886812935402915E5EA51F41B70DEA48AA2AAB4F9F247D3F637EFBA51120A258CAB867BE231E67675FF29C83BF982E7B15B766A84CD9369AC28C29AF664F5C7A7553EC9A0C3285CAF26CE0B9C84D504EAD34617F303F6D0CA807A7C0DA1388F7407BC03C3111C8C87EE158E68B53CE8C668E8343B2303BCAB6A4D98857C7070BB103C47C60CF59049901667B3A27B0187AA53008CD1A57C0F2465655D8CDC03494A6074C38F028203357EB2A37967A60A95A1DD22B15F3D723F812890FFA105F1B9B2A238914F39975C1C0F49244E4DB7728E15329F2BA8ECA4CBE7B76029C9A6F721C72E27149807AD9536D76A57CEFA39EB1D93700555E324AC5149A45793667B37007FCF8486C6C5D0FFB3ABED3CD8BE0B87D1B2C80AB2D3E40949F94236E727B92E83A9FF0B40100B200B6519BE545E893B60D09B881C2681D335F9F501B0910572645060BB8A141E910E6AA582F652EBAA79BF2F77B373459CE87C474213EF0257295ABC192C05BF31CA3EB061648455FBF82710F8777636C229EF49C6986CBA9816D11D636186B62D2B06212932E9E727954530182483110958B99B4CD692944B2B87B618C6CD7765336E4642D6950A5C5642DAA8974E498EE2968243289E1CC8460130C034B45660B3668863D719AA9C8E11DF72084AE53C3B4D85A7860C42B2482C9A050B1065DDA241B43EC996E368C6C7BCBAB69A433040E56BCBD4F167A9D71C5D336234BA4A5E47A956459B4C0477B4780769530CB6C9B4A2CB6AA27423F76A58F89753196D8CD99107EC04741BE761696C642CF6443BB72C5DBD336967C336672AEEF98AF9B203EE6F4096531034F890B1DD0862A0737777278167A2AEAD708533206B3624B906C57E4ABC42BF61364E550326A62D4A74FE889AE41839820FA6FB487569F53C1851734CFEA5F501104B9240CBC2C87B0531F6E008B38F1287BE901AF59A45EA19DE5B2C4CE78BA4EB1ABF4284CE0EA22F18C2A26F428BBA481E54A1745702A8AF06CAB649BB5C7AED2342413157A811A35B162B6F444CF2DDB22A24BCE8E2925D83313D0B760017B65B8867419C7A1F57CC785B26BBED63EC79B83FEB60674E2497B87BE24AA1F899CA59D6391C1F2AD9AA90806FB1C97DCBFE5B9934BA169386759532B1117115E77884623C84CFEE522BC0735E1F34EAF4B452530418F652E6F15CC3CD88A52E98078424D486CCCD38272A0819887D85811E6BF8DC3689A3112B1B86D77D2BD91A53D123A11B6EB4CE3A8471C35126C017053C8A8F46054BC9C92752631AB8A9100B04F79E14C74A75B0CD39D1173C3F411AD1EFDD8BF4BE2AFEA69C2327BD070CD1432C8D21972998CC3ABC79487CA0A4DB5B17514E9961916D30AB9B500430BA748C5C792263AFCC6703873BA41A425FF19559EE47D056D3B5B9E567E5CF24EA17010A5C3CA\nencap_coins = FFB94FD16F27B1B653E0882F4E86B8AD651A38C01A33FE0A34DBB425937E242A\nct = 37998B173615940C3BF53E11B3880C331E90956325E7CEDADFB78077D8EFD362DC51B95258A770E8A13BCCD88ACED0C515443EAC997C63CA105619D380D89E54C435E184509C93A70A34E5A723DC49CDA4073DEEFA1870AC8A29BB9DE4B3B876A9C7D018BBAD13CB6DA0E2781F97ED740DA54E238B70685A71B17ACE1383BD76C115622354B0C", + "E4087AEBB878EB2730C316BB7039AA041125D641677647CF3889D713F71B32F8CECE202ED93A19E7BB26997C2C94D4B7B323BD2BD3A6292BF9F3FBF5541CAE89020F8753FEEF4DFD3ABF192587496454F5CBEC41B3A2DDAAD1E7B8AA3C5FB27BB4A1DB9EC2862CE6FFFCE72B1564F08BC55A70FB8FFA50E9863BFECCBC6DA0A4008DD52AA37117A8A9BA36CB71154097CF436B1361668BCB8BF46DA108AA926228CBE29CD129CE75653D09276869DF01EFAA2F01A7F6FF3CC79D67EFF02ACB5946A9B1A252B462FB3EA55F658F765E1C0E350B5C4B698C6329A8C8D09919BD2EF8E139AA69259593662A8AC5CF7EDEC8DCD3E99916F472EAB06FFCB97B4111F2FC785D32DD8F877088B069A26C7AD4B5A8E558EDEAB834D65E1BE758B657F34B3D33533BC4A0F0E6DC54CCC3097FE80C81A74CF6542E14611779100D2DA1016019D87146EC0AADD5F55A39FD5C4DD87E53D231590C6B3F6AFF2C961473EFDB11F84405CC75CDD5E8899528718D3ABBCC170AC046E15974D1C144482C6CEE14E46FA2B2A240A009DE90D184EF28F9A14481B6E8D3D2BB8457CF57AF3FDDA6A78525CC9BD6EA88C8E2DBDA344FFD75F8272C5E522CADC826891C9E8FDB37E904DF58F19623EB93405DA9B744938E591DE0F94671CD099B6E7D91E41D4FFEA876F86199B4B17EC50E02906404F4F129B482F6DBD56DCE6DA7F0292CDABDAC45E7449E1135DBA4448D53D127329803884CB55F107F1EDA7C20AB1BCFBFFA3924358345B19660DBB861B6145F480EE9D459F34451DC4FEF391230EA0936E13CE90F303E32993921B5BF3DA7D9EFC5D568489CDE412BB61A8AB08D3FF1FDCA62A7275F31A31D848E8A6E228B5939AA1538927D8B0E731DCECE21E098C65B687B670CCBB157B39F085BCF146B9D57562F8909AA4AF8821C076D4A72D1E752401F57FB8CA022CCFE043CD023FBA7EB2C769C61F58FB502BA12177FA984CAAAD1373D9B482BBA7BAED50DCFAD0458AA97AFB433F01A4872F025954C02B9DC34854E4C38E9BE310F96F91A608B0168AB0D388F30E74B10CB27845FCAB6D23A38870422DB1168D092D6B2640C820D6F9E258B686D6B25980E811334873EE1E13324A517CDCADE7A9306542AFAA838059BD9A3F14273A26090CB3FA9CDC97FFC60DF976B5B21654994E6D36DA2254CAE88092EFD7C15584F314851BAFDF355110ADA596CB59F464AA6E2587F97997F43E9B4FE3FE4C76E1B377999478A2611A185553F129E1C0DA143D0A0132DF622B8C18BA014D7A9EA20BDB11A70886A82FE54DE44EB7FFA907F940355F683ECEE7DCBA1BC30E7B4B69DFC37DC0BE92937C70447E0D522DF9167F28B4072954BB3A8F0C99834F0C68E885C1984FA8A5F878F383C1D5963D311A553180F967A7CFAD6F8B4555192A27A9A6A39106A12C00CA18C1DDFBB53532733F0623A43D915C2044D5EFB8CF4EC11578A481873C4E401B96F5095222D829520817CC226763BACB5A35E7A007C1D6DD8E03CD33B5F5493F9C34EC4DF96FBD5B1F24E471476B3823B329682A6FA3D7E24C525F41E898F6D165CC352AAAA74907581C7435BE5FB51156A4AF2958CB921BA0095A6D894CE752F3B202C05F3C588FD00F8722408F1EE0153FBE9B65187D36AA2145F1F0943014885E254ECFC63E2C35727BEE51E842C3EEB599AFB13A6834E95EC6AEDACEC3A01D6E2D289967353A2BEDB9C6B5E7EFE50D6F586A6E733A4D9528C386C9515D3D33FEACF6360B88EBC1BE2D6C119AFEF50ADD92F02C0C58D4BDFC3EBAAA669A459DA6D3468611E25350F99EBF61F06EA1CE70D9B2FCD15F21BF76926E1D3768A444E1A318891CA5D53951D1F6B13223556DD3515E95FAC5735FBA2B22F6D5FBC69E499385BFF6ACDB7ADE30396462C7F8198B0199408488CE801AE6D103D51D80ABF0ADC9AEE7AB50A0F44ED30087D8EDD6675BC4A763AC6B0B3FFC7DF6604341B4B174905B2216925635D61303B12304A9C69EC8FD160E1A6735264A413A8E63\nss = 14EBECDC57F7FEF55529B5A4ECE39238C7A52C61BB7AFD5B3EE65FED1BC5822C\n\ncount = 30\nkeypair_coins = 351FE4313E2DA7FAC83D509F3103CAF7B4C64A4D458FEFDF636785AC361A1390A4CB53697A77FE6E39EF13C7460D657197BC1C7EA3DF65B85C8DEB43A058BF1D\npk = 319442D0786CBA94AA139895EBA98BFF419A6B42644B68C5CE534B0F705225F4A7B28CBAF879B30FB633FDC2AA70C54639F180E76B927CA4622F086601A62AFFF5335FFBBBCB52075AB7681A55625E01CB31248E17708B7D728905B64976409D49583272FB6208E06ED7539FC4F87B1F0B821DE4155B79531546824BB4A13E09CADF66B7889C6BAA9679DF6187690C9FEA246226A7A405B997C322B4AB041D7FC0B24AB54400813A29C87204EA29414A7C80AC65D374998494B914467F44241251402ADFA34616B021CAF86B2ADC690267A41C40B763C11506B658132C59C0E887888A2D5A8658BBE403758C84CF86611026A5BF802AE4E5031771C42D047EF42021A7C59C2C0A6E3F10B9ADF716BBA29D824B271D787379021EC44B4B39C3493BD980BFCBBA73E5772E259CCDAC1F062A887CF25887C30817DA33AC19C2527239E7F6B434F0AFFD278130B1A480348AEF2998924C684E3CA8F49694DFE149152B332128061C659CF2C5861CA003D1E8BF33DC06B197ABFE2862362A9A15FB35F6009481D2A79EB18826581ABCBA4BBBA6846238C5EDF5B30D6830437714ADDB5F6751A7F6D79558148C0DB07A7B2A784DC78C8176A2A36B4DBB7855602742EC2624D6C6C589C515B5224EBF92CD70B954C5190E4212A0542857A16CBFFE060F56140E4F3B2E03B86AB0C8CDEE1A3E2E95CB43C852C40B6CCE660FE61BC7631A849EA28E6C93203BD55C4C4928D6CA777023264D2B2F96F99F3BC9B23D51CEADC713572542EB00B77CE79B2F0AC533198A60F03939EA1502E09807B5A7C19BA98396167B116C88E889B022195B016C58125DE60708890793BC582717253B6608B0933B0B0D160C42BC3EFB602E899555265189DC376B15C04CF5348753344F0E8349B4EA29A6B85110F81C247029FFE93EC5891194963BD9ACA2EF5A3E912C255E3C53E908C1ADF75453075FD9F956A4BA555886A82A03A29CF778D4331AD5A30DA5A57636E75F4900285B927289E7BA510216E73189B6D76DB21C600E8C26488449041529700539C42195624BBDF1C19EECF8BFCB97A62EB46468953669B380DE5A3F84A962CDF3573DE9C4F989A645862416FBC92DF042BABA25FF1381F3C09B79E2C89410625462018ED38A8480AFAC4A313DA239BA44090A7AA296C304DAE24030DB60BD376ECB7779F2F2414D144E624A9B0D2BC181268229AC1F92929D61C15250730D58B75E663A2A175B4B98A906C3871F1F9A46F0E842C7B48238722124E7C2882B7831576A03B1CA105333E4B004BF286E45D3A9188757FAAC58E8D995E7101129FC560C9021BA159D748619204B7963F957E7410592028F97D297E2A8042BB8B342F1CF1AF6A843A1598B1A0E851CBE6452842762109EAC773CF58FBCD5845545485EB47BE86BB51522273BB7782223B855C221DE3C3CE3290C3FB4C9DEE73E23C06994FCB437A93AB885230CE5521F8224521A6CE6C5AC8F682353EC78F22CB133C1C48ACA73A461AA128B96590B2B508832F9A04A1099B7775101FC349B6A686B9CC3C7954567F1C605CE1543A6E967857A19678B5E6A3B996FEA65336794D36C3045A0AC514962C79A6B03342B2EF826B4E4A2AA4B8E2D66AC920557915058C551B82BC0134DC489D55742B59C143B88AC8903CF6CA8AEC2C784C1DC15E3B46EA8D7BCD43BA3161564B6510459F7956949128D6373C1EA8B41B92396D124B3B978325B1D21C290B76A1504A01ADB164B3A6CB9BF5422A6B571F209A4F18C31C3A647D8E3CFD335067C75308026C40C5BA20DCA0317CC6954341758274330F35DF38ABB5F1B59806A831979BC985576AE6A8DF2608D6305AE2F7406F347CFF1415DE856B859D8306271C716495EC273A2C96355E195326883C4F024943F54C35F0003E70C9DD5C412F6C260F18A6ADF1435150ABDF28084CDB13685881AAB0C710FEC5272417731A65EB9360684E170F6C7A13310686471B0E91B2002B789A5A465128043CE6B7C29BB5DBA20200DFC69D242823E477E34E146C828022D78C37B8C8FEA50294586CDA2F728D9B10D0CB58E1B091B68DCCA95E6AD22416E1C9A7B0A75047C72309A284426FA98B3C905F1491A44D1338E0CAD6BF2AC3C845005C268EDA736B1C997A64438323501B6AC5628455694573AFD782CCAF1F339E468BE45459E708BFB464D0C480A1BECDBC021A06AF7AAC4772545EB\nsk = 719950ED1960FF6C2D7D59BBECB83AABE1CCB569B76CD9B053389C552CB6BF847CF4FC1F18A03E66F02CDB284C15D656151644F78CAEEAFA8B12CB7C616256C032CE6112735A74285D66A90F3A745ED8733C195F6B1B9B272897520A02FAFCB958A9669990B73420BCCE373ACF5A1C86A555C3C48F78166C0FBB023C49608592261060884B408C9FDB1F4B023506D3516956B02637AF26FC7B1D9345F8B54B5AF96997D39FA32C01AB64A6AB7491D50303B4E8A134086110D220462395B9D89D9651205AEA9E1B88BC80C4C8BAC44AF4F1886EA788A0B259DDA78116051059853D2CD073ED8CADAD9AB04F7175D57C3224E953509588E788713D5A6714D0AA48E972F4FA55F16579D9BC6988F562CCF1286E87AA785929BF8266D7E340022C0221736C3CB372B85723042382092545A45032EB727BDC750449C786145ACF42B85D4618B0D6F009D0224A816620F1DB67F59713090B0849559A51B9589532CE2DC25DF8F09AEBDA932073A2AC2115B12C5F94C64750220D645B34C14AC1B2208565377D61426D7F2A25CBD969A2705EA330B676EA6EEFCBBC6CD40DA9C0716D147B398B7D469A919D83BAACCA80F0E41414382804B0A321362E14E766DB2450F599963CC2899E1048D839754858910D12C23F99158A9A3149362690A9C5540133E5F217A7B66B0D627321C810F7D1639CCA948D708616047F85BA41CEE9211DF72731AC0986D1C3149854B71683FAF68179799B12C031A2A84574B9A67C96A708355F7A86BFABE63DDB94B6C048359481CA7A45CBAECBCF34407D8E378733F812926599DF5C156A94945FC7911DB26BEF17074470A7BD6B60F771CC3F396E847195CE26444B641F91B468FA1670D0184942472667AA76E42976FAC48E78DA72EF0C207FC7400F92699B46345E4C9972A35DAEA31ADBE87980438DE4F211B005C8DCEC1A6EECB56D891677F9006C49385E8AB20A19B74325A9A95083BC711537480DB30719815352616B2C5721979BD4267FB134188A75B9CB303215A76A246D8F69ACBD173D069B2B99B727829AA5469A0212C006A88AA4A6B614674674FA75500AA294711C178B741B0275280BDA27813647A5DCAC3A258991DB4BF436C23F37C697115143A2755FDC199FF32B19209D7FF904FEAABFF7383884C1BAE3C0CC20D019066653B99C1CAFE366567C9238785B0F0B4D1432A9E02CA2D9A3B37D84646B157684D7AC720727AF4533749A9FF99BAD8F3877DBE5CFF9C75B38C4002178CE30773EE36A14F1497AB386CB36420F04D85C8312CE25B357D3108226925F6B85C7A3729064F81AA66336163C00506BBFC82030F4F33A5BE7330926BB3F849D1DCB09F5CB814BA8A722506D0A037E", + "6EB26216AA3C4D4C05D5CBCF0358501936AD2BEB3563C341E2315DE6D68404ACAB0149BAFA84491AB67A2DD82972220B0DF528DA7C4D441C8CDAF508CFA2C0224932E7E5215572AA433C9212022899E43A93CC7C8F4AAC6ED5ACBD0162E4DA4B897B7BDCD72A0B2A2354F61A6C211089C11E476715F3369859C3021584B6593B5784344D53B40DA0725A90804C45D02F6EB7670071660478C53281B5E290BFC77AC46602B530B1300628A7A4F20CE22768EDD699C6BC5DBDF66064041E42329605E06DCB94207211C7BEF41EB150AECCC90725DCCC33EB762A92442DC02AE1555CF726A915240508E227E270A4932636A2806D8A5C15A40A3206AC91BC8A3CC7245F7B5B0438FB3DCFD112DFF7BB01120087E09ABF5580081008D43BB862F6283726992523ACB1DC82FC260E64DC395C778D8EA7561382C9918B531CB8B0FC8B7A5A9634D3A7349475A8A117B0C2331CA0B7CC8E5A92F609B5B558435E15509FD78BA747BE495B9E78AB178B03C117D4C679D13D5B07B58EB675A72A646763A9358B61EE31B1156866CFD7AB6E7498D3E5CA92799FDA467DBD103A5E717E0F6B92A815546F8C221FB2C337E86142D8AE205594BB2C93E50B4503C80B5AB3A19DE4BA63D918343260B5692296CB02EFA77EAD006BCB99013E317B5ED802E8E5209D87C7E584C1DE051ADA436044CAAFD0033F51F649D275A7BBE4455CE8035A97945F597D03A1740DC576F0225B8CAC3EA76C49F5D6A183F3853138BECB6949A158A5EC045512B74016FB841C8881035448319442D0786CBA94AA139895EBA98BFF419A6B42644B68C5CE534B0F705225F4A7B28CBAF879B30FB633FDC2AA70C54639F180E76B927CA4622F086601A62AFFF5335FFBBBCB52075AB7681A55625E01CB31248E17708B7D728905B64976409D49583272FB6208E06ED7539FC4F87B1F0B821DE4155B79531546824BB4A13E09CADF66B7889C6BAA9679DF6187690C9FEA246226A7A405B997C322B4AB041D7FC0B24AB54400813A29C87204EA29414A7C80AC65D374998494B914467F44241251402ADFA34616B021CAF86B2ADC690267A41C40B763C11506B658132C59C0E887888A2D5A8658BBE403758C84CF86611026A5BF802AE4E5031771C42D047EF42021A7C59C2C0A6E3F10B9ADF716BBA29D824B271D787379021EC44B4B39C3493BD980BFCBBA73E5772E259CCDAC1F062A887CF25887C30817DA33AC19C2527239E7F6B434F0AFFD278130B1A480348AEF2998924C684E3CA8F49694DFE149152B332128061C659CF2C5861CA003D1E8BF33DC06B197ABFE2862362A9A15FB35F6009481D2A79EB18826581ABCBA4BBBA6846238C5EDF5B30D6830437714ADDB5F6751A7F6D79558148C0DB07A7B2A784DC78C8176A2A36B4DBB7855602742EC2624D6C6C589C515B5224EBF92CD70B954C5190E4212A0542857A16CBFFE060F56140E4F3B2E03B86AB0C8CDEE1A3E2E95CB43C852C40B6CCE660FE61BC7631A849EA28E6C93203BD55C4C4928D6CA777023264D2B2F96F99F3BC9B23D51CEADC713572542EB00B77CE79B2F0AC533198A60F03939EA1502E09807B5A7C19BA98396167B116C88E889B022195B016C58125DE60708890793BC582717253B6608B0933B0B0D160C42BC3EFB602E899555265189DC376B15C04CF5348753344F0E8349B4EA29A6B85110F81C247029FFE93EC5891194963BD9ACA2EF5A3E912C255E3C53E908C1ADF75453075FD9F956A4BA555886A82A03A29CF778D4331AD5A30DA5A57636E75F4900285B927289E7BA510216E73189B6D76DB21C600E8C26488449041529700539C42195624BBDF1C19EECF8BFCB97A62EB46468953669B380DE5A3F84A962CDF3573DE9C4F989A645862416FBC92DF042BABA25FF1381F3C09B79E2C89410625462018ED38A8480AFAC4A313DA239BA44090A7AA296C304DAE24030DB60BD376ECB7779F2F2414D144E624A9B0D2BC181268229AC1F92929D61C15250730D58B75E663A2A175B4B98A906C3871F1F9A46F0E842C7B48238722124E7C2882B7831576A03B1CA105333E4B004BF286E45D3A9188757FAAC58E8D995E7101129FC560C9021BA159D748619204B7963F957E7410592028F97D297E2A8042BB8B342F1CF1AF6A843A1598B1A0E851CBE6452842762109EAC773CF58FBCD5845545485EB47BE86BB51522273BB7782223B855C221DE3C3CE3290C3FB4C9DEE73E23C06994FCB437A93AB885230CE5521F8224521A6CE6C5AC8F682353EC78F22CB133C1C48ACA73A461AA128B96590B2B508832F9A04A1099B7775101FC349B6A686B9CC3C7954567F1C605CE1543A6E967857A19678B5E6A3B996FEA65336794D36C3045A0AC514962C79A6B03342B2EF826B4E4A2AA4B8E2D66AC920557915058C551B82BC0134DC489D55742B59C143B88AC8903CF6CA8AEC2C784C1DC15E3B46EA8D7BCD43BA3161564B6510459F7956949128D6373C1EA8B41B92396D124B3B978325B1D21C290B76A1504A01ADB164B3A6CB9BF5422A6B571F209A4F18C31C3A647D8E3CFD335067C75308026C40C5BA20DCA0317CC6954341758274330F35DF38ABB5F1B59806A831979BC985576AE6A8DF2608D6305AE2F7406F347CFF1415DE856B859D8306271C716495EC273A2C96355E195326883C4F024943F54C35F0003E70C9DD5C412F6C260F18A6ADF1435150ABDF28084CDB13685881AAB0C710FEC5272417731A65EB9360684E170F6C7A13310686471B0E91B2002B789A5A465128043CE6B7C29BB5DBA20200DFC69D242823E477E34E146C828022D78C37B8C8FEA50294586CDA2F728D9B10D0CB58E1B091B68DCCA95E6AD22416E1C9A7B0A75047C72309A284426FA98B3C905F1491A44D1338E0CAD6BF2AC3C845005C268EDA736B1C997A64438323501B6AC5628455694573AFD782CCAF1F339E468BE45459E708BFB464D0C480A1BECDBC021A06AF7AAC4772545EBE9631B6D4237DD6884AE3647DD8622FC13D1CC689F3C8ED94EC6BCD4BBDB6980A4CB53697A77FE6E39EF13C7460D657197BC1C7EA3DF65B85C8DEB43A058BF1D\nencap_coins = DA8F1FA1262C71363592344AF3AF48D678DAC8E93CB11D2DF01A93FEFE97C4C8\nct = B3050E7294A6D60EC15E3BF34C6DCCCF575422A0E34704C2C69CECD9166626057518F3388B16449E0F11CC87F5427176C951B305D00286AA858FFB1100822A05312B8CA9EEE77C46296252C28B144327493522FF431C6ABAAB1EA0E7CE01D384774F6A7C931ABBF198D79C66DB651228E533F0954FAD5EE2E744D1D2CCCF2939F22A68BF97A84F5B08CC18D40A81D005C721A3679B7928CD97F79582302A009661A8A20B7D095F7536AB5117DA2B8C4C5363C046F700354E6131A88923107A7927090415AA93C1C315BEE90FAB97834949BEB468D70A8B2483C386C2094D6C546482B449F7C9ECF33A19DE36543988E2007B6A9F73DE5FAB6C8D21918F12EAD0D1E28AC51FAF037EC6CCC727925FCBB951A22875BFCEC73DEE900388CFD156500BFE9A14F1776AE8C6421FAFD33C4E56C63E4A7A721AC615137AED28190DD5B1BC3AC2FFADD00DC91E92B0AA958DC787A993E059F99B64699378749AFA2A2710F1492A1085953D1D0843F5432EE22A94FEC68BC6AE11D2DB66674EA3B06E5A26CA2CCB569D2EE2E56D4F1EBFE88A0D7F178324857AAF51245611743D0E45EA80851C23AE2AA60E07977225E27337E6E0B22B5C096F4E073899D283071914CC3D0235430FEDE25EEA8ED3CBA32C853ECB27AFB1D4A08F7BDEACD088A2E2A8ECCC36848E1EBF4CB08D9F8C9F2260DC83835E3B7F3E0D623C8946B6C908C2E727890B4EF905320A41199E1AC191E66ADCE3E5B062312806CE7B54F2F9AF88F675FEB0C2ED50FEDAAD6E5E163126291C48607BC524206A9E751341B007B73BB7FC1FA6A7052866D8E5EAF42619CC6D344A5A09EE7DA84BFD7A07298B4A4CF3882D532731EDD4F487BB3B9EB411BEFCED7D64C6888CA4D78DF0AC8247A22A9C595DD9A962182F95436B0561DF46CDAB23840C573A1BA45F6D93A4900AAB661A7899C08A206FBF85D8213BB13E60DB9FB92BC2162D600847E2EBE661A5D73D7ED6FA18ECB692838FA11C162AF0D3024B56CA4D0135D8610D951F519621792E5767CE70F995A0545B3526483AD43B0C6F57C9D06E884E7774084CE2E89531AE599C4AB4765820177D28343D703251B958E09795CF238CCA855DE2E1409E4CAC89306AF06D0D25C6D5679312E96DA5E91E8E93393884766EE0490E6399DDEA4EAE67A5F8EEA3E0085C57582D1B35FB72FC81402997889AAA4326328D2471C7221B8BBD7CF1A0198E9D34C64CEAED22BB1F500636FF4E1D52AA2DC25AA0AA875E835E67A41A745E616E39319E26E85436465163EDF78AD1890519F8E1DC238A7388BB1863E067F35CEC9214489507F6D64BEE6BB9C1FD2F37A9FB2BB7CAB07FBB9010DC397064B130F48716BC90D07CF40CAB15F614AB475C7574C4D0D8B4EB3E3C5874376A54779EB727BC491B5D5D573E09D28CBA5408A6B58414CF0E509B8A783B9FC82DE066F9DE8FC301923A5081FE682D1E14DD0FBB83A0DB972F8AD891A1B800CE2D2B1F92C32CAACD8C518F7703594EA96BC9EC16FD430AD3841F8262057B9657B7D871D5BEF0B144CC7EAF547FDA750751CA62A7BA5B1A8A3863A8D5E5CA0216D30B55A241B03BC2024DCCB4BB6A80B1C137D106D6A4C02C9B1DC904DDB15606E472AFEB34FB1CE679CC6C00159FDB2EE9C6FFD98CD4B68AE22E84DF67C533F3E614D12BFC252F5E68BC1A17FC8BB7D7374EE1F067E24000D2EB2313AE1945236B7862EA2606B82D0A2CDC10C5A2B840273A7B94215E46B6D015A3CBCE6C95EE0E04D44C0DBE647089B16D55C338F7BF59927CBC9F5ACDF162396FC9A4604611A92A17927F037236997071B074332D36CC2B02D042019034EEB0A4E228C4F02E03EF713E09D289122B88B188AD322CD11C087A134ED1F53DB07654E4D3E2979B238F309727E14B4E08CAEC0F3E5B552329A1BE9A76B51C76EDAB2FFC0CCBD5B405F3BD955DB8AD54C33AE46C24F984F1D32ADE3F9DF431D73498B5B7343C23EA655B73B27947E25861F05D706E43748E76839CB70F12CFDD9E8606C35C62142D18FAB2AE9EBA0466A35EB04944E55961A127BFABAA709FE469FDDB8D8065AC865AFD543006C0F2B33325204E13CCB2AD76AFA60859C845A39B72867F97D8E90CDDA123BF59F5CA9722B666389A114AF982B327695080DBEF23DCFA8C96C35DC1852A1678E58BD472BB18ACE4E5C13BB582C46F5DD6F1EEBA4D758EA02A974368\nss = E9D0977ACFF5EC1BACF2B3B5516E75E3EA5FAEBC60520C64C1B1E991753123E4\n\ncount = 31\nkeypair_coins = 9BC5315580207C6C16DCF3A30C48DAF278DE12E8C27DF6733E62F799068AD23D195927B10C3BE5F19FB055A71CF9610FDC0F03E23FD09EEB8C63B7BA3C0FE642\npk = 8BA428266B1DBF30553A10AA6C5118F85AB9DAEC1C521639B686BFC4B198C511939A039982CC774AA074D391BC5137419A22892005114F3132F22497EBC5316E190013325B2C0C1F23AC61EBF6875640C7F56C78DF4937C883BC9DA38D1F709A6DF68026D8AF0BA51F1F2C5FF0806CAC1A396A7272A4065660906658A25C570C7067D1972417142B0B6BC244B8E52B1B7A4B915832486F8A7486230CC63A981B195431448671E71C38527EFFB2768CE1", + "574BAA6A23226563794E714C1C7F75C05FC4B2630A47AE24B2A1D3141516941D61A58B609808612064881347B4765E892438EAAF1C538E0BACA4E6E1BB38821633A385B7C1CD285B6EDEF2739A675110387E6EC747016A6A1007C87949368D31CB7A63A50E210CE168C825B86695223FC1B8789BDC89545A3394F9C1BD943094546F640B0B129C4E78A9CA0B8107BB18923CE669DA26268D57C7EEE01F15D0454CB1CB7AF05F2E787833BCC4D4996312C82714043907B30A8D250ECE8AADE970CBE463494E759F463131C12B636503C747F64249D2687B3301387620307503D9562E5A033D86EB23546B83B0F70937FC6B70DB7C1D519FE1CA0B93137A41D89843A635FB5C389D420558746BE267440E8AA996124FF97B163EB828FE492E96A367EE7C22E2F4031C44688935B0E6439776E34C2C525A31664386A5B6040116D487846F538E0DA71FB17A750D4B0B8F4C37BA859810A8AA15B573EB029C8F7052124BCEFBC48DC60743E7A455A0C4CFB7C57847C50AFB1B5725D735D013441F7B1B43D93840CC4373DBAAA71035AE110955D9CB60BA5B5DE5999B082335EBC1D3D5B6A6681E2E4714423B50D30AAC28A4006869A85941247F0A8F8DA236421B761315B6ADACC513F5AE525373CC57482DFB15286546D106925ADBC71F4CC1BD33641CF63035B7C02669CED392B0B8C70E776A768F859C04E3B1C1F05D9A909025F075BC0021B091B0BD29AE7E7C787A0A570CB99F9337986D714595023B53147913B72F7DF50B6421319825304AF61EE75765F44581EB0378ECC979F81950437BA7603B751DBCAF1261A17346CDF645A65CEA895320211089A07101BF617B731E38A8114335E3267169D060A9C09E7E829D0168A21BC580087554A17688CD742EF7E4A2510779B666A2B613BF81D8060E06385398BABCF2CE1AE7ABD2E66AC06142A2F73598CA2A1FF769923A0AABCC22268710C0A2143B96269BBACE0F69A25142BB9F1A0C05266003F7A69AB405DCBB3360290BA355C8C6F5B1035697865CBECF8A20209019EA08B6416C86A098AF524A2DCB9B7D16253960670EA96897B406C5680B14DE691FA5305405F35048865E549C3847B3BF01856A15A25DAC28C5AFCB6BE3E8ADAF3689A0E5BB056B000A1308AC643CCD94C28711ACC4653B52CC87C7D6BDE2DBAC47678DDF7101484379DE232CAE6975B4EC02D6A043AE14A53632AB428666FCD98B9F702432018E783BA3C7D32079A5CE9378621018B52DE73F7ECA9C8577803F14C0E2C55F8C988FD19353CC4C729F545D3203BE1374CAA91945E21AB4BAF2A4083A91E3D58E89270EF4560669D555FB0444737C6DAE111CD1E18F55F1780CA0BB8E7C1AC3E7168D0C9E4A515CA4F11C49C967BD78149AF3ABC3E692C4659B30851EB86AB41D575021FB146D60069D242569D111E510B731724E6EB456C5428754DB8903F31B365C7AA9976C13210438B50EA3E778E5A60E25F85C42BB10B24B72BC820300C91547582FEE167EFF958894E4898C198A4F652F871C9B03234F98E7A237778C679B757DB3225394A356991B2810CC6CA5C7AB888DC9E59529F3498EC40EFC47051C03C75225187DA36D3DAA9F3F0977DA80A14A13A990AB20DD415C2036003FFAB31B7AA534EC7CDDC40A9877AD6CC61D07B7B1D8B71DB1D1A2B71923337532E464853357400ACA0F6A883ED84B56E77B755594B7BEF178115B18C68175DC2C390D462AB641BA14D80B1D36CF290C6AFA532D8D7091DA94703CFB7334D667F0E3150B60AE8BFCB56DD40E3A58BD4D09A5A3E8A167841118A51490A126D6B85EE90A7F3D5432F59635B1D5587821818AFB74CE42569751512C9840F364B6370CB318C1677A304BE1A2938234B56BD2632F768A93750158E844DF96C720007228C2829F0B779EB3382EDA6D6338F166ACD09E376826299B77B781250C2224486EF23D424BDD\nsk = 4DA026F053C3EC1712C7F294DC891E26196894A1B620F97429574EDEE9568E113FEB564D89A1883D5A0329929CA57AC001925C8D616791842DCD291627D61C7C2C3F842B547F074F46F082A06BB4282323A291C3CC07904079125CD5A854168D83BA8AB6B160B5E1881D25403B297C73048E3298287F51529A8BA2DEDA6B4D7665A373171B03B1C0BAAB6482C50CA3A028D485CA8491B1B73767EC9EF8874A54D4CA414895D2E49FB2AC0CC80C9D248B97DDC51D00A10CA3324FA8A6373A99C5DC1BB7A389CD9A3C6931FC7BEE05ABCBA579251B742F46383AFB48FAA514319B8F9A0491F9212DA443ACF9B9CE5B29A6E723A4EAFBA5C1A7B3E017870FB35DBA8A69F1F7995EF2AFF817907DE5C66899824889A760CA4A38A57B3AFA880A3524E138B37487B2EE7332D2689F99A5A3748020FBCA43ED6045A5ABA65F6C67783CB74C217BA987AD381938B4A651B6908FA4F18E6D073A6992160438BA3C9547E4557E1E724192414C912648D25907BD8B069C845465616969161C483927F5D610C815638E242323465839D36A8149BAD494B71F1336A3F0A954369D4265B6CAB935F06694C482B500CB77BB32C4D805A295A692648A31611B206D06C2E86C61675577053A747BD3A748F452B480028EDCBECA8A10EB843EA8A71E21E9B822D80860764D8C5A77EF0222F8004C902C832F1A344758776EEB99C3EC8B24CCBC03F5BCBE59027FB424E6C580CC3B41C041984EA552BDD6396D52867887430A2534A44BA544A0B285C061D7D6618C76945A5C3B29BBBB09A724B1AC53E5954F66708C8C0B2D7DA57C62FC8B80E73D737741F9141F7164B4EAC08822A4C340B5B74CB5C2D407B9D63365C55C14C5E6AB43A8BC68908C34074A9BF4816E000DDB464656C379FDD829B6961C22E5345674243CA64705212D52E616664587F90947FEEB4366A7ABA98B76D9F79A1ECC4BF50571A07CC57E0CB1AF828BB26263A8A898BF3B7B0ED07988E82DBE3C0405D46B1CDC37600570FC37AD9B2237E3032BAB1A0AE420B6F011A653987305AACC8876AC4D014B7E619227B8B35BA2616C9575506870FAD2585549A2F902B185D7A61139C027912EE2A00EE460328B16CCEEB259149A0881F8152D563BC0243302D29FB98CC57A45369517640BF0BF63A555A900269878C4BA567F8D376176D6941D34957E1373B7520483394C3606089D14AEE0917059227BD848BB22E088DEF4194BFCB36EAA81D4DA713E37BE79E52F51BA2C32F05D06405947838625E49F5F6BCDA5E683D014A12FCC0C81601B52F80C39B6659606A8FEA82C62E061A939CB4451869922083268561E16381B026152170104E11F30B2399F4097B94078ADC66F23F85BA6651E861237700BCB1AE92E2BC652CBF19BC0FCA0D7F7577C9C96DBC9B8B07B917F258C15661DA17621DB1287EBAA7714A54052FA660F034F227198EA14C2467B46CF9877F4E0C29962992B560A7DB93C8EC13343F734D86BC548246A57473D1285463D0942F288245D933DDAB7A09766A9F8C178EF539F9CE9A0E97364CAC0366B5B08B4C1B081E01D198C2AA5288617A50019EB3A40A300AF538119D733F2544D18B9094F387A3F4C17BAF01523F1453F68A916436C8E6A80CD05472DE7239AE15DBD52144A9609C1017E88C1A3FB301323B060242AC803133C9BC50F67C436DE804E7E7B54A3489E5DEC22C83A982B45160108535EA7B588018B0D3B0CCBB613A0716EAED8B61912073CF728C747BFC79741616750B8373235408AECA1ABF7E09E72CB181BB09E8C31010E3CCD05DB0F487C8A29C4C822C59CF447124C973F57392865EA82AF9A15382BB68A708A6CE92E24484EAA252F97635E60D4BCBC8A403DFA166FE5C6A8500332624122A15E25D5041DE8B88EE92E1B1B0762734E63AC80CE9227C43980D8BCADFE4CAA420045B26173B6B953E3C97C7F655244D534B2963FABD264A33466DD79440F4361C8C77F1AFA0A8F31C183A369993494480CBF7D13308BD58E78D88A53D45044026C7B620E0E8A7124B957F106AEE02598EE190BDC68C53AF48EBC5436ADF0BF66227F2089AA4CF461F2D7BB990C3E530872C9D157A839A15B4ACE0B2895FDDA50D3CAA18EE60FA11325946A689E96B651C6A9B4A41D0E83238D52990B5520F21C268BA428266B1DBF30553A10AA6C5118F85AB9DAEC1C521639B686BFC4B198C511939A039982CC774AA074D391BC5137419A22892005114F3132F22497EBC5316E190013325B2C0C1F23AC61EBF6875640C7F56C78DF4937C883BC9DA38D1F709A6DF68026D8AF0BA51F1F2C5FF0806CAC1A396A7272A4065660906658A25C570C7067D1972417142B0B6BC244B8E52B1B7A4B915832486F8A7486230CC63A981B195431448671E71C38527EFFB2768CE1574BAA6A23226563794E714C1C7F75C05FC4B2630A47AE24B2A1D3141516941D61A58B609808612064881347B4765E892438EAAF1C538E0BACA4E6E1BB38821633A385B7C1CD285B6EDEF2739A675110387E6EC747016A6A1007C87949368D31CB7A63A50E210CE168C825B86695223FC1B8789BDC89545A3394F9C1BD943094546F640B0B129C4E78A9CA0B8107BB18923CE669DA26268D57C7EEE01F15D0454CB1CB7AF05F2E787833BCC4D4996312C82714043907B30A8D250ECE8AADE970CBE463494E759F463131C12B636503C747F64249D2687B3301387620307503D9562E5A033D86EB23546B83B0F70937FC6B70DB7C1D519FE1CA0B93137A41D89843A635FB5C389D420558746BE267440E8AA996124FF97B163EB828FE492E96A367EE7C22E2F4031C44688935B0E6439776E34C2C525A31664386A5B6040116D487846F538E0DA71FB17A750D4B0B8F4C37BA859810A8AA15B573EB029C8F7052124BCEFBC48DC60743E7A455A0C4CFB7C57847C50AFB1B5725D735D013441F7B1B43D93840CC4373DBAAA71035AE110955D9CB60BA5B5DE5999B082335EBC1D3D5B6A6681E2E4714423B50D30AAC28A4006869A85941247F0A8F8DA236421B761315B6ADACC513F5AE525373CC57482DFB15286546D106925ADBC71F4CC1BD33641CF63035B7C02669CED392B0B8C70E776A768F859C04E3B1C1F05D9A909025F075BC0021B091B0BD29AE7E7C787A0A570CB99F9337986D714595023B53147913B72F7DF50B6421319825304AF61EE75765F44581EB0378ECC979F81950437BA7603B751DBCAF1261A17346CDF645A65CEA895320211089A07101BF617B731E38A8114335E3267169D060A9C09E7E829D0168A21BC580087554A17688CD742EF7E4A2510779B666A2B613BF81D8060E06385398BABCF2CE1AE7ABD2E66AC06142A2F73598CA2A1FF769923A0AABCC22268710C0A2143B96269BBACE0F69A25142BB9F1A0C05266003F7A69AB405DCBB3360290BA355C8C6F5B1035697865CBECF8A20209019EA08B6416C86A098AF524A2DCB9B7D16253960670EA96897B406C5680B14DE691FA5305405F35048865E549C3847B3BF01856A15A25DAC28C5AFCB6BE3E8ADAF3689A0E5BB056B000A1308AC643CCD94C28711ACC4653B52CC87C7D6BDE2DBAC47678DDF7101484379DE232CAE6975B4EC02D6A043AE14A53632AB428666FCD98B9F702432018E783BA3C7D32079A5CE9378621018B52DE73F7ECA9C8577803F14C0E2C55F8C988FD19353CC4C729F545D3203BE1374CAA91945E21AB4BAF2A4083A91E3D58E89270EF4560669D555FB0444737C6DAE111CD1E18F55F1780CA0BB8E7C1AC3E7168D0C9E4A515CA4F11C49C967BD78149A", + "F3ABC3E692C4659B30851EB86AB41D575021FB146D60069D242569D111E510B731724E6EB456C5428754DB8903F31B365C7AA9976C13210438B50EA3E778E5A60E25F85C42BB10B24B72BC820300C91547582FEE167EFF958894E4898C198A4F652F871C9B03234F98E7A237778C679B757DB3225394A356991B2810CC6CA5C7AB888DC9E59529F3498EC40EFC47051C03C75225187DA36D3DAA9F3F0977DA80A14A13A990AB20DD415C2036003FFAB31B7AA534EC7CDDC40A9877AD6CC61D07B7B1D8B71DB1D1A2B71923337532E464853357400ACA0F6A883ED84B56E77B755594B7BEF178115B18C68175DC2C390D462AB641BA14D80B1D36CF290C6AFA532D8D7091DA94703CFB7334D667F0E3150B60AE8BFCB56DD40E3A58BD4D09A5A3E8A167841118A51490A126D6B85EE90A7F3D5432F59635B1D5587821818AFB74CE42569751512C9840F364B6370CB318C1677A304BE1A2938234B56BD2632F768A93750158E844DF96C720007228C2829F0B779EB3382EDA6D6338F166ACD09E376826299B77B781250C2224486EF23D424BDD847DB13DE94D97A88D5A3DEAE31C246F5F04D0C7D7F337859E024764337A08F2195927B10C3BE5F19FB055A71CF9610FDC0F03E23FD09EEB8C63B7BA3C0FE642\nencap_coins = C08EBD7CDCD4DFC51CF41DB75F31755F2B3FADB6A059499DD431EB931E348143\nct = 62FE883BAD9B3947F3E21AEB92BC4795541B3C5EF93B683D2B73C804B9C3E0AFA4E67D8C8DA166EF974B1731D819A3233DE8E40DEA8E3ABF08A3FFE43166ED206C505010461199495C90DCF8555E9744B78849C2FB454AFD8E2E0C3EC7DCCC21B72397505E296CE242D9EB689B4E888109D749F20190E3E74BCB5DC2C57EDBF2F77AD7D1BED77FE9806CD0A8FFF5F532633EF1A73DC8AA1AB8CE5AD9231CE46398B935B77D1E044271E974C3771B73BA1EB69F1699A69A341E0D54D73054326D6F65C2B4408B7E9D30AE95C40145E5D7C9A4ED541953B5EEA83404EC1DBA8D0649BE0EA0144612190F3D6C5F8C102A81394E0A7D36159EF54FA680AAAF1E28AB7DA7D99FBFF4FBAD441ECEB9C2B0F5F8AA228FD82473F0AAB82CBB8F9D46DE1C845D69E1286D816CC541E507A2FC93D4A467BA78E5027CDC7201D20716E2F3A5524DB0478CF4E164FB556C215EF988012ED0640397F8202713A42DE60387831EA4DF2BC88A00B602E29D31A3FD14ED989B5C2ABF8834DAEFA35B229DF4FBDBD262FAF060158AFA910673D3A97C736B7C1BFE511F412ADA15EDDB4F3D41B0314784B5B8CCB9FD0F6D3C7D5DFFF976C3C1D5BFD3C058E136FE66B3CB0397AF8A0C9BB5048A403D681DA49F232C4AB6DC88B5E12B53A03745A9C26AD49D0368FC9B900A6D09B2C33DF0A46FCEAC677CAF4C8F6A417C88BDE2C989407C1AB532936FAB7DDC1F59FBB2EDB7EF7F14914271EC18A2422715180386FA7A5D4ED8AE49226547DB3A2FDB7DC1DDFF2EA94407F42BEEDB6C18D0D84475F1F96FD4F4407463AAC20ECDF6E88D189349C0BB52C45D18CC79D91F9ADABA248CBEF8319E046123D35673887E7D3CE8BA686B1CA6F3B5FDF674B66C7C7042094BE5107AB48984B1709A331D60179EA0DDDD7BBA1A72AF4B9FEDD93702C5D9B7489BEC6AEDD3E1472AB7EC5FF52C31BAD2E58D93E6F2B3094FDF99029764C8703CE9704126262D287EBE3DCB2017D73C8F5B48842820BB5777DE1D92596A75ABF24CA67549A298648957FE3EB4C81D792185C396CFC4944728171C52D3FDEA080A480F0C9BFD98C74A8C2FE64EDDBF7B99DB5D9CEC84080AD66004E8AA7A799104BB36A434FF994E769FCD25E1C6163A4D691093E90DADCC06FB2DE700456C765CE712115ED6A9B1675DD6701C005A5BE8D36E17A319C941D72797E8455C619556FDE72A5923756D209E1410281E5F2754397E6B46AC10A53C4E180765E84095389309193D90F2C407183739F5989C1C9E35B16AD35F746AA3EC8FC3057C8E99021B11F10CE91C08813AC92994988265F13F3083E2C0F54133D7E023216208E220F74F5A0BA8ECD27C215BE04FED1B898B379C664A6015ED080F1B20C60E1974C8E206ED8B036677BCEE24334F51E4B41033742BD323E1879D5356834160B466765551B2632F1F563D63DA2A62FE4C654A3B956ADFB0993FC4B2AC7C9E819E30B108F39F6B8E0423F8829A41E46164B3DAF9E3FC8127F89C856363D779B41D8B7A5CB5CE48A6B078BF370EE0F7DB7E4840EDAB7AD0D00A0CD69C5A274795F35E1CE30EA541A6C66040176DDC301F90CF4B5174023598EB712663CE9FD674CAB591A38DADE3A736CD9727EEE3DA75A35AE0552D06582449F5A40C4A7E085B1A10FD8415AF15B14A24E6715C5149AFE984A9326B55ADE5A8D3AB304EFD5F7C30F74471FCC2DAFCB83C4BC2A908297ACEA46EC83319DB63162C186C26D98AD41406DDAF25ADC62E90047716EBA9C4BB54C25856D7805E2DB83097BFCB8F41D9C41DB2907AC0678D65843F590E8AA02D08B49B8642BC84C36B081CF1C52BC5618BFBBEA5DE7AD066435A5891B3A81E1687104ECE89DE97DDAE982DC972F08A4D98901414962DEFF3317138A4F6DB42C7DEBA1A9178545E228A78CDF335B06F4D4F5E19F715C64EA222F84457EA7F07FFA9B541D0AB5439920E64C5D6D5EED40751FB64C7B5819CA3A296F55977A59A05BD4257F7DD14B708676D8BEE717CAD12F346D8D45D2AADF378B331DC564DF328711371679E6211F39253C324663790FABA869F67721DF18D51063D56E839850F7BE72B10AB73ACD5137E922AA613ABE7A2BC98F40D543265A3000FE65B8D32801A5D5C086C26F68947688660584BF4D42053AA0A23E41EC095DCF45032B6268855770682E4A77B72488CDEAC655639E2146B19C6CDAC0C8D8F2E\nss = 1C1D8892D74F606D457AC58CC37A744B91EEEC09EC4AC19F26D4241BC5386EA2\n\ncount = 32\nkeypair_coins = D8B907B34D152FF8603B73051F772DAA71EB902C47B7E2F070508269D757E02E7613C090FBE4AFD54869CE826B72F3A5EC823D9A1C983A3D31B2387ED6B0C613\npk = 3DB4BCF2F3231E1AA3E81C7336E49C4D760454729E9A47C4550062AFD77D971228863C24F1881D589C111B38A7E3F08788298E5CB26CCFE7A71B171FC504B86D4526A2C0A3E0251710A21FDD68047612CF215A46F1CB3D5376CDBA14829FF67F7D4704F199AC398777C8AC0ED24C4F00715C976B0EF18A83DD177367078B43003C10E588DFB9C7C99C5164BC14755114D5138715721EB3022CF2D016F97011F37502C44A397AEA0A7818546C831F2073A4697AA878D00C4B7AB8312233CD3880A3493401BBC3D8AC5EE715490F89474A8A9E6F078293E11E43981F00A25988F076E20A7D69E25FBDF7030E8404EBE35F530A8CC5793CF3EB1AED34B3EA742F4FE853FC8B7AA77A2B17669A116C49A0A114770B14801A62868839AB199E3C02C810CB6E0489820F25C524969A57172811089C5C81659F6859A1E5197CA36A33DA0E2EC00CD035B23973448D12B251793DA4BC9039B11C4312CF3DB1ABDEA0657467885191334FDC8F590973B201ADDD09CDBB545FE66A0AACF679F0B89D7914268084888D358B767A8475E85DA48590F0809E0CCB2C7D286F12FB8C6FBA2F1B16CAFC97A0B9863B107826C197A7A6BB0BCEC280C526CE18058E2D47BF92E7BC0D4031D4C8C8C8F57BD880C8B12C556D750EEF27AC96FC47F37C2C26468A8D27B2BDAB5483F241AAD905C3A76FD82308D2938BF7A070E6DC56E100B99DBA0E46F2729A52A365D732965875B020B82AB23DE8F8807442CA89B31FCC76162961564060A119002B116A510B0C2E1F301C55992BC48519EC5A1ABD49A4E9DA97BBA98BB4774C0E6B939AC720CC22B2DF733BCB128C7D4165CCE67710719C1C978CC49257FF741EA1C3B5A6479C4935447987BD61D99C1D80C833F671F6A44BE835A8D8D733ADF4AF4DCCBA087C4B8681A8B49A863BC21887A0B1D50B05AE1513DBDA0960BB156BE96A1321B553F21AA0E14295D00B81096E1C557AD6C949BEC43817A836F09B0AD0803CA072B488A1627AD2C017013492A955FC829DF7D800C99B1CE02B1D35A68D3269CB322B4D66CA9CCD279FC738C4C3910A8A4A479BCBA7B1A6CA8745505B80236B63244D54942305C3C0F89BB4E771A5B09DBB072D20417F469B47CB8B64380B1A99B6A83CD111A881AF60EA3AE5A314DFF60841592F46A39BEB80234EA507B1C9233B898A33208D8C936294738CBA7287C5BA7F2AB0B7B63A0D475CA3D6486858CC0DE5580E95C56C635825BDAC834C71337916055D1C9490E7977982945941B8FF196BA5C23F92553F9A1B962A56AC9498B69CE0C9393621F7A662C6074C9E93B44D099A0003390748547E10052506AC88DBC1D3523A16B0825B4656552383ECF067B2A423BD0AAE22EC0971E52963241403438C3C254724E1565EE569B0D357B416BF3D770A729A277CABA335519724B2098A107F3F4C1AA1F49796208E739304852C949DEBC717DC8430F23987D60F0A0A3FD5F97AAE412907227FD2DA078F1A1BF46C0B66E596839632B121C5EEC37694809861541B223619850A368684863A34761B864314187989AB4C68D965B3CC994D734EC4C84AFCC805A0F4655C61A8564C3577273D198184A2B4443A11AA05931DD1827C0720214EB2798AF1A83678808913C9C6DC57EEA4C1F2F469BCA44AA8A8082CD4082464A9E6AC0A86DA0D1E0021DBD3196B726AD9B43DFF34CDA455C7A51CA343F1AF8CE2C580C581E4ECB1517CB36959114A481A0E73718F07A8EACB71A7C2BEB2654FEA5A7E01A6C02F183686B89CA0C775D0605E17225A655A544838A60F252412FA5BAF353D2D264C4E4C2CD31BB4F3075410C220632B3D605C7431479F5694870CB1B1724C0363E470F1B8A38175C79FCC9CCB33571BF9CEA9653722B5BDFAD66EA7AA4D6252C8733CB40627485DF64A4E872CBC574134C319CF1464A6B69A6318038896111FB69D306A6C47A393069B0F27911255E0306BC4CA2E93AE71336DAA3A8BC0517EFF101989F9C19BDA6751724E1BF816D4CC7397CB5A57A14C471AA511E42F18E4937001977D063A4EE855F326811EC26C8662B5825A95780A3D031948D53337A45679F5C328573C109E5944B68C0B4D2B466FC48F921328D6FC74705491077987E6CC936E2BB69B534EA97ACF85E60F2522A55C115CAC8CB85E5A9AC9709046B442990CF89513930F122152632A3C3D7C15C8018E1C23AA33CB89AD\nsk = 1F83902BBB77A97B032277079CD0CA70D09D57385CE5C1B3C08B80ED95B2BBE70C101CC1912B71B29B87DD08254B593D616A31FF4957C7C0C325F82024F6A7B125B0FF799FFF47AFA6A9A7055382BCA08CBFBA71EA1B530BDA5A4548922C90C6DE8927494370EFA6C96780086BF585AE6534DC05344DC1941EF793EAE214312A371ECCCEA680C1A166BA97E128064748269922C9A19CEE4B8A669ABD146491ABE31A57B724F3A173740269A33309F651C934E09A564627896150ADDB8BA181CF2503256512B0DD5588F4372781F35CFC0328C0DAC842A1B3F418B6E8C567F410568F2C6BE8EAC9BAB558DEB08389BA08BBAA50E1EC5DCE044EFE5830743402402A167A9369E1D281D37713EB656662600840409C4FB971C0FA7771BA53B6C13EBFFCBB85AAB3316A3A99A9CED8BC4596932B3D052FBB13A5CBFB762AD7A08CA4AAF33862B6325BADDB0E56", + "D395E8F92EBC7347E847956B471695C978DC2431EF7286C0E0A880F7871BB05160209900C0C403DA599B988A8EF0A716A9535B71002B3BCDADE60053F5A8BC66419FC907F1EA718B7BAD6BB76FD3F710E6778587C36BA5E4C2D7796185BB72C5FBB839B6C91119AE6C954E9B66C3EDB500D884428BE2C7CB6A6C86B807A6059739E23F70433D8A7A4AA768975AA6B0C3924CC8827CFC731A464121090A685820068019197F489315A2274A7133422B2968830271FC94B1C775C5A21E3B07BCE543B32F00B7250CABD0D04A2529347848830C975261A54717324533EBC0EC627F2064BA693A9BF9A16FCE87A8D7270759A06C00EAAB71A5CC25034120445334A39D63BAA2AB3254D77A921209750F6869E6971D05DA1E1BB29CEC9CB7B4962370E5C139BA472A75114B28BBB8E7069C5A8201B730DB571C1EE0B10E1C42B4A97FB7F7AE54670D12859D68199443157DDEA85760445895E7175EF8BB919C7213F427301C4F6561AFFFB0B03CF1AD05613C52DC5CA71A74545ABE77D239576303BC9678272873D9B28F4A4AACFDB46940F59B0A82A75642A0CD794D63D03D43F65E753A6AA2B58E0CC664A48CA3D8A3B18C7B05CF8293D3E23FDFDA93506C831455B648E2017FD866C87683AB307C6FD9CF24212509D777F34B0618776864EBAE9FA5318E739692C5AA86648D49778B67F81347B434CCFA990EE9A79DE94C94054E6E4A8A152B5F4757B89F075A27AC464CD1801D02AB64BBBA4F932C0003458FF73011282BF444961C54C5275408C4F79C3C553424AA4AA13A53D59B1B785C0FFB686FDA185D5438AF5C494D98B80381C821C493BC0E7797CD1995DB681EC9E18859A9229C497CC251AF12D9CFEBC6A19C599C9D364E587C7D32245145A60CEEB54CC7EC5B541B71DAE959C800A747EAAB53F8CD24365C91F53B7B0B9D3630361D41ADE4C82C85E04D8BA243763B3F9DD65D60921F962337A3421051D36889253A423939ABEB0AD962CE1E1A9931C960D9F4948723CA17A731ADFB4834615693F622470225CFA7B036B931A2240564CC35E59A7ACAE48707491576CC1410A304E0885534F577692C5A237344A5F674EC7C45BDA3242D70B004D5AB620CA2B1AC0A56C0CD5B942529B054E0F840E3C1837E0053539B4A3EAC9C6DC6283876C745FBA8D505681B923E315A99ED34B04E558BE2373CD3A07DC6A26EA98136BD197AD8CB1E695544FD93A23A29577E26114E5C8B4257CA7EC5A467D53FD9E037386C933799BC3BA921A50CC98DB79F1F7B96DA7A5AB4604498A223EBBC27AAA87EDE5B4DF226C6B5C382E5EA3545E50B9B0A7B30D15C77927713BA9B5FA52A64985128530A84003B1B867A6BC87F295BBB15814AD3BCA5EB3240F72894F147092387CB072692BB62161EE3CA1F75BA423653C21582004D8C3EF207F55746E7338CC94C45EE5928702559F0C783CD16676A342BA9A652962C50C030983172A196EBC901A13EF6472C7E67230629A5EE8917E965CB0FF990DAE8CFF8D3A7F361C31130AD8CB43A9AD48BC46C51B9A56722C34F5681C71690CF5B746B0102C635171E4F1AA199FCC38F566A0275CEF828534746AB958ABAF2C8814B15961601CF13436ADE37047D1C5497C74AAB9A0015218C8A41C719328A0A272D96D63DC946124441CA20A8A30AF11F07190639993D4CACB58C46754147313DB4BCF2F3231E1AA3E81C7336E49C4D760454729E9A47C4550062AFD77D971228863C24F1881D589C111B38A7E3F08788298E5CB26CCFE7A71B171FC504B86D4526A2C0A3E0251710A21FDD68047612CF215A46F1CB3D5376CDBA14829FF67F7D4704F199AC398777C8AC0ED24C4F00715C976B0EF18A83DD177367078B43003C10E588DFB9C7C99C5164BC14755114D5138715721EB3022CF2D016F97011F37502C44A397AEA0A7818546C831F2073A4697AA878D00C4B7AB8312233CD3880A3493401BBC3D8AC5EE715490F89474A8A9E6F078293E11E43981F00A25988F076E20A7D69E25FBDF7030E8404EBE35F530A8CC5793CF3EB1AED34B3EA742F4FE853FC8B7AA77A2B17669A116C49A0A114770B14801A62868839AB199E3C02C810CB6E0489820F25C524969A57172811089C5C81659F6859A1E5197CA36A33DA0E2EC00CD035B23973448D12B251793DA4BC9039B11C4312CF3DB1ABDEA0657467885191334FDC8F590973B201ADDD09CDBB545FE66A0AACF679F0B89D7914268084888D358B767A8475E85DA48590F0809E0CCB2C7D286F12FB8C6FBA2F1B16CAFC97A0B9863B107826C197A7A6BB0BCEC280C526CE18058E2D47BF92E7BC0D4031D4C8C8C8F57BD880C8B12C556D750EEF27AC96FC47F37C2C26468A8D27B2BDAB5483F241AAD905C3A76FD82308D2938BF7A070E6DC56E100B99DBA0E46F2729A52A365D732965875B020B82AB23DE8F8807442CA89B31FCC76162961564060A119002B116A510B0C2E1F301C55992BC48519EC5A1ABD49A4E9DA97BBA98BB4774C0E6B939AC720CC22B2DF733BCB128C7D4165CCE67710719C1C978CC49257FF741EA1C3B5A6479C4935447987BD61D99C1D80C833F671F6A44BE835A8D8D733ADF4AF4DCCBA087C4B8681A8B49A863BC21887A0B1D50B05AE1513DBDA0960BB156BE96A1321B553F21AA0E14295D00B81096E1C557AD6C949BEC43817A836F09B0AD0803CA072B488A1627AD2C017013492A955FC829DF7D800C99B1CE02B1D35A68D3269CB322B4D66CA9CCD279FC738C4C3910A8A4A479BCBA7B1A6CA8745505B80236B63244D54942305C3C0F89BB4E771A5B09DBB072D20417F469B47CB8B64380B1A99B6A83CD111A881AF60EA3AE5A314DFF60841592F46A39BEB80234EA507B1C9233B898A33208D8C936294738CBA7287C5BA7F2AB0B7B63A0D475CA3D6486858CC0DE5580E95C56C635825BDAC834C71337916055D1C9490E7977982945941B8FF196BA5C23F92553F9A1B962A56AC9498B69CE0C9393621F7A662C6074C9E93B44D099A0003390748547E10052506AC88DBC1D3523A16B0825B4656552383ECF067B2A423BD0AAE22EC0971E52963241403438C3C254724E1565EE569B0D357B416BF3D770A729A277CABA335519724B2098A107F3F4C1AA1F49796208E739304852C949DEBC717DC8430F23987D60F0A0A3FD5F97AAE412907227FD2DA078F1A1BF46C0B66E596839632B121C5EEC37694809861541B223619850A368684863A34761B864314187989AB4C68D965B3CC994D734EC4C84AFCC805A0F4655C61A8564C3577273D198184A2B4443A11AA05931DD1827C0720214EB2798AF1A83678808913C9C6DC57EEA4C1F2F469BCA44AA8A8082CD4082464A9E6AC0A86DA0D1E0021DBD3196B726AD9B43DFF34CDA455C7A51CA343F1AF8CE2C580C581E4ECB1517CB36959114A481A0E73718F07A8EACB71A7C2BEB2654FEA5A7E01A6C02F183686B89CA0C775D0605E17225A655A544838A60F252412FA5BAF353D2D264C4E4C2CD31BB4F3075410C220632B3D605C7431479F5694870CB1B1724C0363E470F1B8A38175C79FCC9CCB33571BF9CEA9653722B5BDFAD66EA7AA4D6252C8733CB40627485DF64A4E872CBC574134C319CF1464A6B69A6318038896111FB69D306A6C47A393069B0F27911255E0306BC4CA2E93AE71336DAA3A8BC0517EFF101989F9C19BDA6751724E1BF816D4CC7397CB5A57A14C471AA511E42F18E4937001977D063A4EE855F326811EC26C8662B5825A95780A3D031948D53337A45679F5C328573C109E5944B68C0B4D2B466FC48F921328D6FC74705491077987E6CC936E2BB69B534EA97ACF85E60F2522A55C115CAC8CB85E5A9AC9709046B442990CF89513930F122152632A3C3D7C15C8018E1C23AA33CB89ADF122B76B83C343DE27054985634387FB7138F6F6F105CD4CD3F5B02698A964B07613C090FBE4AFD54869CE826B72F3A5EC823D9A1C983A3D31B2387ED6B0C613\nencap_coins = 0727DC8ABDF2F12FCBBFCCC9C84B6DFAD8E1EB346249EFE569F2ACE9D8614A07\nct = 5B345CDEAB98BA63ACE249E9FD006BCE658B838A731492E2409308E0936C81B3FA3B520620A01BAB4B35E52AFCD7259AC298DF58121AE447784A26E18A2E7923EEE8D4904529D3DBEFA1BBC06610A9231023D17580C69574DC1017C8DC8BF8586FDCF557D0820BC1E25A968F98A6BB491059FE52B8891A5597998CA7F78D79F1F00344D19D328A95D5AD0278898DC9134DFE14C9A02A1A33DE5BAB09292A1D6A3FF554AAA8C1DE84AF24B5C6604390CB1F36B60AD203B7C82A2DC1AD3E5816A89CCA03B2B42EDE9FDC5987BEA4EA9604B9A45244445ED01A8723EFD4ED1839EE175B9331D28232DE24952E6F466CE9F1EDFBB522E0CE3A1921F5F5E809BCFC4D5861A820812CD3CFEDE3DA5C2B539129C9EC6362609C0156AB2A6E4BD2CF757A3D406582D327785D76AC0932924075A27B292CAD6A4131701F4CAF5A1B9838641C1C200B22BB907BE08F9897483F0E8CD12D1EA734AA11E271945432D54969C712AC66376BDE377717D3DCC730A56A2B03F707576ADBC2280F6139ADE6B4ADD69FE8B884B989EDD38B2315E0F3E6AF5AD85F3ABB84AF3054DFE6C934CF79FB692A4A99EEE9C70A9288AD325592D51404A09C5B2F4B5839441C323268643476B25B3133E17811ED7D1DDB86CE7DCE44B7F92F04809B65D56DB139B8148DE23958908008D038F6C2457D2EAA833FBA1BF6367D25B25CD32FE5B583392D28565C5012767A8540179E5F1E5E9ED2DBCF7BD1F5E78A44375A6D8C5AE76A8FE771B92DEBF29A53DEF5D57455D875412CC2A8222220A7D00F5CDA14313A2BCC1F7914DACBC5F61C809908AD9965CD027159BB5929AD4073DFAE8BD79368463697CD3E93C1A69B6304750F931C8EE6DCE49A0251FDDCE49996C57DBEAC1C83F354F451B83D93F63CDC9053D05A7BAE86F3E0072366B04608014B22E47C4CCCF7189B4A2DCB306997B40F517B33C2B5C7320146E62081F56E647DFEDA61C680B9AF689B2AF20BBDE8B73CA6C0FF22270B56CB4D7605E7E1E2277F88717B7E7FC490CD7DED543352146DFCCD7704F9BD406BC6994306BD455995A74DFE7BAF8B4930D7A40FE6A7A06D5DBCAE4F83FD32332042D752310A665FA972185350E3504072738985ADB34652A12AD2A339CC96224BC32824FF73FEEE61B462B8211F3A9428021BCF8C19C5886A7EC0D1E778EF2F1914A0AE3C4D7B4E841D148F74E07E2511BE892C0A8E6FB49A36D4E5BDECD7B76DA7F18097A1A11D89363DD3D742802BDE5299BCA711E72BC0D4F8D4EB3684282BE84EF1F3698D1598474C070EEDAA743D443C5E49D257B7577F4ADAB272E93EE048CB2DFB4A4DBAEE60EEEF6EF27361984C5FE7E9A6C6AD3515BDEE45D9BA0CF3E0554D1D07B3DBB396F1920018C25BB7D157CD24A6FB51CBACF724E6C511BDE2183EB623ADEF9D8FA4BB459A8A327CFE420F7E049A74DAFEC24B14EADA05ABE9C96CDDA425985CC1B713C0F5EE781D99E5F82325C0905B9FD9B6733BFC677E3C554D46EEC9DEE695064EC89E9572D1A02E534A4DD4E13E1978004D25B9D3FBCB4D24FED362F487552B165026A2BC09DE06F1A920A6911412433E6F52F2339F19EAA2857A46FCA8F45AC077F81EB902AE4477555F228FAE779F3492BF363A4C8F4186C5F66DA1E04B9B6984E10E170EF507879AE0EF8BACC7A011B9F60EC54A6F9674C76C5DCEAF9ED45546E93839D6389BD36D6", + "5A35091BDA3A4FE9D124FB808BFFAE3FF1C645B2C1D8284B0591FD12FA7FD76EC42AA5CA49F4FF6E257D466727B9398E4C885E7CBACDFD540457A9D85FC6A96C432115F2AA79D46821D0C08418EAC46E8A68D799869B301D38AC85F399CEDE6FC621A10B9BE4A8BBF17EEAB6657386AEB6FF1272576C2F03AE2E58A6FC2D59B9E8BD53B2C546974229CD63E2C1BF16BF5B85C80284D129A98E36CE44CCAB5BE57CD6CC770FC13C386FE88AD0716B144CC156D14430BC76BAC6B7BA665FE5F1108BC3ECCECAA390CD624AB8347EE157C422573B062D5B71C5F55373E6638F0E8720D32259C3A8C910A87E2901293639F05C9526D0E6C75CE73C5A126DC99447424B775500C6DEE4DF0833D4F853FE4F751224BB5771047733C62072E1E67F615C93F6A1AD86A40D20A116494EFC158776A6BC4DAC0E7160777201646E50890385272CD8359480AD0882325F3765E142E82A4D62D99373D274AFCB27154B42DCC\nss = 25F98DE0F3B9C85CFF41926AF744508991C050B0E5A92873959729B98791DB8A\n\ncount = 33\nkeypair_coins = 684A29E4E5480A5F2533E1526B5FAC8CDF5927F3D85087C71F928C59690EB565BB3EEAC4320F84D09CAD413A7D7C19C27668B2E0E1BBBA2D159B833DB6C0F50A\npk = 24D25E62D57365C8C611F96BA675AAE5A14164B5171D74146D792D6203BA384CA81EC71ED87B8BA40023ED8BC6AC54406263CA3D97C5BDC20D9E2CCA82B0AA54586863D95D3ED0075CC897F6726CAA441896E86E03711A3D109F5BC311E81A5194363F8BF735AC9A2CACEB7EC4826F8AF2B303C3914E9B7C3C5337432CA626970761900B44CC92630AC8469A6BD9D2B46D88C225223DFC405D6F1447F9878610D021CF3762C235C414025239AB3827AB5A4699C82E37B1A27B460F0264F4089A98E41C924773F4C83F5C57A4D0F6959F6C59FA6AA4A6047AD0873935718BCE46B2F19864E06486A4F5C8D689ADEC32A2E7C6B57071BE67017FE25B8F52CA525F99BE536A4C1468B5F9F418025450048692F961AB8FEB5075B543E04A0564C26C58A72EC6433B623A2D5A086C85347E45EA7B99D03AB50664149414C3F81D219A5B5E732C0A52C060E90E64E14873C02167A21A67DA6A0B945781341CB7C65AA2DC481B0998DE5C8D893A548F055F8FE420F173B949862A5549B0AC1908F202AE0BEC6B19C0B3E5178F4E40485CA33A93947522C1AA6C188AC2FC4CFF214B995B1BD69229D01A8D3D2045AF723A1DE559ABF78C09928D71ACA3C0016038340AE715058C95CD33CA85709B2134F78B86A84AE764AE94B994ACF1354E42126638B57AD207BAD29F1E60471ACB5B650332B4656CCC808C15EBB8DF203FF0821BEA62AA67967BFDD09535E7088CA98E3795AA1167BE9126348A946507C08243A969B2F9238FD29F0370356288CB1708024BA7A9CD58A12D306D4F4579893C8A04A10C1872B6A602C155F70A8BA6987FD28DC842B9F60B4052890A4482A351533B4752061E30957F8A16B6F8502A1B4D8F91B56B71470EE2CEF40648533BB1D9179B3E335E051115B817AA30B3707B64121179318593B0460BCF6E57A65E045D00353605D60A0705468C6B8E4DB422C31476C8A0B54EC166BA59B75F9834633C0052757DC437005F653ED4C19CEB7C774EAA75BA0068F2A997A79A98BEE42ABF9A3B7597394D4907E430737F860454407B8FBB2DA0A054C2A4C737C8724C02684A070DA34388FE9927BE4259859849EA9CB6EF5990EAE176EFA10154556CE5650CF264BD11780055B5931BD6C5F51816D135996757B386B76A03893EFEA95EF964B402079CAD080B67098B2C092F1E9768782A8E3DACCD82741CDC5C8575796D08E3180B34B4CE227E7593AE9264417E7B53DAEA2987A01FDD42150A4262441475370C1357A575288571996527C95A9FD62C3BF54A8C8EC0A335C3A31B934002443D07F27240860E8EA76C821A71E67132C9A5A1D4D3B5F29CC9A9924081FA3C33F4A11285458954042337701C392998DA8EE556A544F0B49C9C2B83B58DD8D165E6751318363400D61652D7170CA44B3033BBB20B45072708E6453B1708B5B8206419E050D7C8843E0BCC227B9D6B426A9F693945D69EE98558BBE133FC6427A8F73981786F42DC03FB23621952CA8AE03810648B8CBAB5C1D2816FD1C231E10F7EEAAC9A798C2C3A4CBAC428C6971851320191D3195FE4419AB69FE913280D0763A906C33C4A9D311C74D9459EE85A6599061F09376A14803E1DDC67D8328BEF1C7F673B62BBC234B20A29802CA9C19C89B9B6628A6BAC7AE29897B1136A0B8C28B0441BD00A9144C85C9897A48902D176B9B03A454F36885DB61B5915811D60C170F74ABF894BCDE1A088195FDA3043BE6080B8B98DD48168C12A68D0B74242472DDFF790608170C271A4BB19907288854CF1C4CD744D1EBA1201FB643B805C7C7C1F6CC9437038BCAF6616F9A6A214785F5FE71071E4564D0070A401B457023685A65D63FC525BDA14B26C1F5381885B24786A939669261B769068C3F97EEE28AED3FC68D3B08D6A6B77EE2449030C0190C016394B0D9C8085BD550D12F5110E647B9A1549E8F67F5FD0580FB39358114AA668BFA3A202C0369DDBF5518D80AED20C403AA3CC7148119CBA54CE1667C2654D9B5A833D5A552808AE72629A2DA12498319A30113B314C870E8752E442AF5ED67BF1481F071921191B2B21964FAE23B33DF528A22090E4BC6EC2911810E02E65758397B48D1906013CC0CC0C2C73944B45BEF04C2781ACF467336A107FF7CB12E6305ED85342D2355B047862BE56057CFE1B1B3BBF85039A8189076A3752784E23D8A802023FD0743EB03D989A6968\nsk = 8B78635AC351C94BB6B1D2B861E4914DCBA415F66CCC465B370578E136330A2C5CB0CA2857E1CB733A75E5CC4FCDF7A12580017F1C0FF484401CB23318A98000637B3D065608678103940D8BA75CCBE58206C130ED62BBC0132317B6556A9C2AE8F71A43712002D795CA52007782652D291DFE535F75034B0D624277527A6EF623168AACFBF721A9E8753195B82EB9855467322AAB0AB1701546C470AD139944B6736E1C97C9768370846B45693AAED9C80A7B53B863830DF61FE9600AD5717BFA2C8E59E30C8A20179B27B59341C855677880330AFD1A227B6C6313E17C46E87D109A4AEC4C1795908DB6046598483159907A667378F80BCB84472D5A748043B1BAC10BA5BCF61B07A2B13B12C347F3253E26C25EF0AF6A003A67B0BEE98A7C5A489C9EC9AC1F042C6F2BC7585CB01BB4B55496A93DE903EC974398E277CA7CC25E3265A879420EA0BD8451716AC21F1BB806C12B3488D408EBF18B89B79B1F8C09EACA235F1C165F9504FF987139590F9977513EE037249B4E25E51A296526BA76CD3295895A571CAC279BC65642CBA501C8F131EB52B5C7CB73B17757440B1EE4E9295D404177E542BD744AA587738BFAC0EF3C1FA0F19B0A5C5E28B53C2340C7FA061AD354C85AD26993087B61AC2002795D5ADA7A3E6747AB8110367C824988CA705B818D7A921DBA33371405AD235B18E463A8AC88180C88F071579FA5AB6D904A2F53B03F7C7EC39C473632369F984F8CC66DBD1924206A6376706CA36601BE7B16EDD17E93CB9A0437B3615374329B0712794F5058790D88182BE4863293133A83AA00E07C8E79C6F12C33FA9437ED984A1392903DA89BD43184DB6C8DACE3789AF5CBBA092010B889CA98AF99E5B0B3D4399BF61266E833A55A85E11784708B98EFAB223A27AEA1A16E76A73C2027759FD97A7DB870F9FC79AFC89435D092DB556E0A738C133B259F86C98D78A43A49744F306DA8CC6C9098A5A9CB091C9BAD94970F03B543D669A9AA4944E0C08DDFCC1D7D485FA414B0765A88F175AB6C94B12A2177DCD4998E6AA263EC3FD5BAA2466CA04568869466887F7BCF636C7A1F084277532841F51C3EDC5C1873BCE0F07A8871740C4AA82BB5AB164916082B795EB0660BE32DA9972840C927B7BB4061343D56757258BA4C91624F21DA11CB265B00B9AAFBB1665679C86EABBDA12B74F1C5917101D0EA2BB293C71AD5B556369378A8D5B7297C9731705DD4493DBB173AD01458686A93287B6DA0A6923B913989B69612A915A03A0962379BBC466A03F5517AAA0C0B030C6CA420636B2EE8821916E9C7F2BA228BB2AEABBC292F6C07AD85C6F43CA90D42629759536046394936C3AC5AB979D5CEC1A1CC19B5C17EDB47B0F47F34D616027B29A12725BF14B62FBAC4F2CC6EECE89CA0467D4868C11C17299373687B657D132C55785080F5B87F0E3C1504673825B98E8A0AA35F2C8D84F41B060AB43A930E7BE1C9D04746169BB4AB403ED8C74AACB868B4A93F1DC55144738E2736749AC64170CA7D0F0348A9550EE494466A49617B541068F2C57AD4108AB813DB58526C7647D55C1CB657CCD1143343AAA8421C23BD0C822F763B6A82B7D0041648A143BCC431A72B204E680A3BF11CB6652255143C4470B18AB27BA5E6CF2F1064C37AC2A446243442B0D2714D2D6C3208E303F974748012A7F0AA89DC01035DDC3685657D457A6CBE9C7A9E8AA5E522AB7DBCB1C646251BEA398431339619B1EE972A46DA3A063C909392C284B4C5BA840C235588CA640A54963252E45E33F51227B11700F135756B3567004216417F2BEB77F9267E72E444F3A78EC649131FFB364B11BBF8AB6472996BE20829011C3F32183FA1A39EB2BC0AC20478EC168E4E2BA66A01742D973BCEC937A9383C62C725CD0528BCBAB546179A6365819777412C5671DEF8CFBE9B27AF037DE11C268FF2C1814222664BC9A7059114511CBB5B361EE050634405F8D1908D6A9F3DFB3C1D888CA74BCD244313FDA169B23345F2C804DB569A12293883994940FA236A7A5DF76C1D6C853207A04D2DE7793C6A6BF5330BD31C285A923071C2331C23432C427791E17711F50688130C3DAAAF532060AC0C9AE2E9CC338145D8A5787904C133817947430890361777818990C5780A4440B2202D24D25E62D57365C8C611F96BA675AAE5A14164B5171D74146D792D6203BA384CA81EC71ED87B8BA40023ED8BC6AC54406263CA3D97C5BDC20D9E2CCA82B0AA54586863D95D3ED0075CC897F6726CAA441896E86E03711A3D109F5BC311E81A5194363F8BF735AC9A2CACEB7EC4826F8AF2B303C3914E9B7C3C5337432CA626970761900B44CC92630AC8469A6BD9D2B46D88C225223DFC405D6F1447F9878610D021CF3762C235C414025239AB3827AB5A4699C82E37B1A27B460F0264F4089A98E41C924773F4C83F5C57A4D0F6959F6C59FA6AA4A6047AD0873935718BCE46B2F19864E06486A4F5C8D689ADEC32A2E7C6B57071BE67017FE25B8F52CA525F99BE536A4C1468B5F9F418025450048692F961AB8FEB5075B543E04A0564C26C58A72EC6433B623A2D5A086C85347E45EA7B99D03AB50664149414C3F81D219A5B5E732C0A52C060E90E64E14873C02167A21A67DA6A0B945781341CB7C65AA2DC481B0998DE5C8D893A548F055F8FE420F173B949862A5549B0AC1908F202AE0BEC6B19C0B3E5178F4E40485CA33A93947522C1AA6C188AC2FC4CFF214B995B1BD69229D01A8D3D2045AF723A1DE559ABF78C09928D71ACA3C0016038340AE715058C95CD33CA85709B2134F78B86A84AE764AE94B994ACF1354E42126638B57AD207BAD29F1E60471ACB5B650332B4656CCC808C15EBB8DF203FF0821BEA62AA67967BFDD09535E7", + "088CA98E3795AA1167BE9126348A946507C08243A969B2F9238FD29F0370356288CB1708024BA7A9CD58A12D306D4F4579893C8A04A10C1872B6A602C155F70A8BA6987FD28DC842B9F60B4052890A4482A351533B4752061E30957F8A16B6F8502A1B4D8F91B56B71470EE2CEF40648533BB1D9179B3E335E051115B817AA30B3707B64121179318593B0460BCF6E57A65E045D00353605D60A0705468C6B8E4DB422C31476C8A0B54EC166BA59B75F9834633C0052757DC437005F653ED4C19CEB7C774EAA75BA0068F2A997A79A98BEE42ABF9A3B7597394D4907E430737F860454407B8FBB2DA0A054C2A4C737C8724C02684A070DA34388FE9927BE4259859849EA9CB6EF5990EAE176EFA10154556CE5650CF264BD11780055B5931BD6C5F51816D135996757B386B76A03893EFEA95EF964B402079CAD080B67098B2C092F1E9768782A8E3DACCD82741CDC5C8575796D08E3180B34B4CE227E7593AE9264417E7B53DAEA2987A01FDD42150A4262441475370C1357A575288571996527C95A9FD62C3BF54A8C8EC0A335C3A31B934002443D07F27240860E8EA76C821A71E67132C9A5A1D4D3B5F29CC9A9924081FA3C33F4A11285458954042337701C392998DA8EE556A544F0B49C9C2B83B58DD8D165E6751318363400D61652D7170CA44B3033BBB20B45072708E6453B1708B5B8206419E050D7C8843E0BCC227B9D6B426A9F693945D69EE98558BBE133FC6427A8F73981786F42DC03FB23621952CA8AE03810648B8CBAB5C1D2816FD1C231E10F7EEAAC9A798C2C3A4CBAC428C6971851320191D3195FE4419AB69FE913280D0763A906C33C4A9D311C74D9459EE85A6599061F09376A14803E1DDC67D8328BEF1C7F673B62BBC234B20A29802CA9C19C89B9B6628A6BAC7AE29897B1136A0B8C28B0441BD00A9144C85C9897A48902D176B9B03A454F36885DB61B5915811D60C170F74ABF894BCDE1A088195FDA3043BE6080B8B98DD48168C12A68D0B74242472DDFF790608170C271A4BB19907288854CF1C4CD744D1EBA1201FB643B805C7C7C1F6CC9437038BCAF6616F9A6A214785F5FE71071E4564D0070A401B457023685A65D63FC525BDA14B26C1F5381885B24786A939669261B769068C3F97EEE28AED3FC68D3B08D6A6B77EE2449030C0190C016394B0D9C8085BD550D12F5110E647B9A1549E8F67F5FD0580FB39358114AA668BFA3A202C0369DDBF5518D80AED20C403AA3CC7148119CBA54CE1667C2654D9B5A833D5A552808AE72629A2DA12498319A30113B314C870E8752E442AF5ED67BF1481F071921191B2B21964FAE23B33DF528A22090E4BC6EC2911810E02E65758397B48D1906013CC0CC0C2C73944B45BEF04C2781ACF467336A107FF7CB12E6305ED85342D2355B047862BE56057CFE1B1B3BBF85039A8189076A3752784E23D8A802023FD0743EB03D989A69684C3182CA7A48AFE60EB85790DCB50B8005B568921DBC724130B0CE83F1278454BB3EEAC4320F84D09CAD413A7D7C19C27668B2E0E1BBBA2D159B833DB6C0F50A\nencap_coins = 492D4CEA1C6E07D9535AB2FC21D773BEA7EE2C7D66EC80D41191AED269A398D6\nct = 6A2AC04B0BE55E91729BE92F787571B866AF277CDA1504792D158AF780089785E2D9BD913EF66ABC60E4E8690E40564439A30C342BA583F45C80863B268F6F665C4E6A0D7FD18E9D8FBB094FBDDE8E99E0696CEA3B606F95AC9EAE4E527E281E83C020E0B5036D8B549D30BBE0083EDD96D971BAC248CE0F598A776BBE496C6737A8CB7B3DF96DD18CE395D96FFE241D351D219A85634D82036D34E2B8F5CE13E0603586EE6D1AEA698232D621BD5B31DB4C058781543690DEC2EDBDA16FDC9832478C6A4CC9D40761579FCC794709DAE9DE03022F44B60563414CF19064BE6F5D5EDE2507366FF687EFE8FEB545CC0B640FAB4268D2A627216762C97C4212532E8CE46B5432AC8D91E5D40081E44DF6EC2F175F0C01C427DBC8313BDA9CDA6F90188F7133B26F34234A8B729E4BB8BDF9F7BBFD2A0C26BC473B273F1C26A4635CF02D00E2237DCC3B87B3410FAE829C523E5D48E3EFEA07533D9C157154C895737AC611D6E9E27496260B241AE4E714FF8D9BADFE12B5D61B47171B7C5E911AC4DA71CA032AEE900F592E3C671FB26F0A409A94817BD5289FB89F2BEA88313A201F6623F4E6883CDF392B0632FB2D3025AE137459638EE63449A80571D08A5E851DA530D73DECFEDB64CB76105746E33D61FCF5CA9EEC95FE4AAF67BE9B92147D505C42F55C5FE0B175A701C63E766DC755FFD0A5798DC9421DED3A7145FF374B5091D7B095B9001502BA4961B18E56CA00DFC0819AC947B8F7F4DAB0F534E95CF1B1497C7273C4B63F6B1138654522B44E5CF3A31CB01D3ED6467BC1AA9BFB0395EB54BE807A3DB12C6739E3025E4A40278FF713A52CC1FD73DBC976B4319F58A5CE911A1D17BD9E9A868C9E93EFA8129CF63BCE73BEEE7FA7C09E02BEDA3D07DEA5D634CD58DF8ED8E4C312FEB44B9250D3C43726DAF26C6FE293071C69106920DE01467388D81DB5EDC509EE36BDCC12A6F15C63F63CD75B87C6F057E7D617B2B1463492E82408AC1FDE93C0323B494C49526E7D043FB8187A5369881B0DB6B9F0723F2004D9D4AB67EF23872A1A6399428441908125B31F875DD38968603D1BE7B6E246415978F79F8263F266A6780A188283EA8BDDB815494FAB5927504F91F6A92FC75088C98FB25A5D8F39A70AF6DE37656EF70159943ABB0F03F935676B4B0E55C3F32DEDD5A6860604016ADCB70884140651E5EFF277C0B01A19836C0B150DA0C90CEA81D5EF9A29E789E9B5CFE973C602A3103BFD0EDC570929BEB1E97572C3BA9DE6FBE6EC8B91A1D889AAF579869E4619DD6123E139CDE6A8C618C039591F83CB33B2630F8E2F040ABCC1BDFB6616AC544446E458B7E1BC1C9D4B85CAD3C4CE9CA34289C9694B888B5805DCAC04074E5361165CFDB4DEEED3DED6C93043336CE7D3F0A21A47A518307B22335708546685EE76C9B4488A14B0D575EC3952A13BF41CA04960C039103F062981E84D5C200CBFB43AE0B887D8EF31A7CE3E085224E0E093637125992E40375CD2329EFA608DA291FCE02EAA7EB06C314A42710FB239F0C45503CBF1764236BFB86D144975CA710BBE9BA933E2130F967604BC0BEA6A68119879A1A385740F7CCF252495AB0454F7D6557468BA32BFC9379C0859487A8148EF745CBD630A081D19886DFAD4A0267FEA83AB9005FD86C3D4EE40E0DAA28F29D4D18072A2BFF898D3CFED958B7B5F465607F29617EE24136C4EB3F5E70074A805E54FE05347F7150943C58CC443A5215AD8C71BA6A927EFFEA6A83BD808A440112A964B3E535D3A8041B53137CD0180D2A97231B7C443217313FEF3DC76C358BFA4B00B8E0A2452CA3AC5CF6FF198B9B344C5F825EDE220D3E3DD4C1D9DD807B6E6EC634E9AFED9CEE2F04A81A5F192720B68689D572AD19902FAB0D532DD5BFB2D8A975A29C4AFECF335E82CCDA83AD81B5885E024FDD5ED5FC403575D41039DF6C70D0B043622E00624D73B248D8D035DFAD0BFC39787B80E076707B9624C4F0721364B1E8E27BEA7EB122A279C872C3791183ACAA7A3212E7EAE16FB43992E305B0D4EE9A3A4A079E1CC35BAA127CC9889881D70D50870D3927554E488BF4D6EBF872C9C4E1F2F4AB2B61F4C461072759573BE6DC2E87FE58EDF3473D48FD56C30FCA1DD20B7E908211D906160D7DC7B990154ED4EACCAA0B776880E9E1DD04C73F1E51974F0F9BE17C8687F0D77FE3DD38F7A36C1\nss = 9ACC088CDC498D1D958D79EDABC0DA3AD23BCA11DFC5F5FAB950C8A08ED7CE41\n\ncount = 34\nkeypair_coins = D76B3573F596EB286AB5231FEEC7499686B13021BE36CB126C7EBEB9D7030DAFA8AC144DFDA421DE1A7ADDC92ADB79BBFA9657F3DC4B78A7335F29DB87B290D5\npk = C6100D6D7952085257F692AD9173888F28BDAE384635B2057A8183CA07853DE05F72437D6872575FF4C0EFB06259E397CDA6A87A178498C9AAC54B046A8219D98C48F113319984995F68B1AFFB863FF97DD8D14CACE2921BC192E038BE06A5C58205CDC68A3D1EC34D58697A7B6BCA3E731E0A68940EE5B8307460B402651457AD1A7883D0165C8CAB4D88F565008155AC009776500F3779530958C3003C7603C900E50148088B9420B78EAC241DC0AA11454195A03998388AC747FC465DC140E9193A9294ABB90B8022B493E069AE430AB3FC9307FC89358D3A88FB054E9836CEFBE45C44569B285B01EC892D5CE8288ED638D1876663E3C33C25C28297609FD94CD0BB923A746A4F55470B3B6C03C8A930E7BC06A08F521B6063066788841964696A31547C851B578FD02434526C7E641FB9721CD390984BB121518A88633658C7C7C6B0830CB6800B2368CBE703CEC33A4BDF319B49909B590A8BBC6542A108BF5927C49DBAA2C5C5009E002E242BA210A64F18B8542BE1CB92A8293C56586B568B489CA697D6C4F819C399590472E8B9DE9573A1D2934B86BF2D2B6F92EC8489430E0A681FEE0A22BC3A705396CE6A74C1D5D3A91AA253DA718757C875A1442FEF4241F95B516D27220973C25E29B1D335846DB494DB4CAC3A0B76388304B4252AC2362FF032A8B5C3322F6A0E5658799F1193EC69BF15C77E5FF2A3A2925690496AF4320EC688450058B5727A0E66F98270267B3F49270E310714F353DD4B74410A9A0E778A1E030461113CFB05A142001CF39721215026CF84B1C0E706DCFC4D9EA80514061463A16E069750C026AD26ECCA10F5830B2B756D515EF1C64D6D2C5E73818998AA9230D19D35842400C4568F62397EB0A42CF86C857C3AB009C8C831257D246B456996BC1BCC378A44BD88A0FC3469B0DA0D22410218941431A12F37831653342F12206C56C4B3BF980A5017114B3112A6100B06A2A62104C48CE8639D1830E785CB3DAB23F398691B48458D2ACCE79511AD276643476BD6C33D8D1C40FAB1B81A96A7DFE36115E49A07F8C72240B9B3F24A2739B963609B0C2705F928C6BA7C2FCC0C164BE46FDEE5BAA5730CD7A55E1221CD73305BFF9B8AE5C126B8621BD6116C17286974002C88785C745BC32F0B86DBA92E072A395E91ACF7257AC5EC5EE88A7095ACC39AD023A904B72C0AC845A318D18C7C72A0C4387CB470C8BA438498C5514398C70967B46109E18505543A98D51A3753BF3C657AEF7264A91C2253F801641C609628A7F13A246D5AA13F3A4D1DA22221CCBA20091C6284452F376B32CC2D27D3869137A3FCFB06B7C93F70F3A20D84741B8A186D78AF94C204BC0B6DA175175BD819479485DB23BF6EB2CBBB62A088F2BDA7CB470C26B281E29E0F29A111688CC2E7CD61985EB39287546967AD991ECCB99A6DD4B111861755964A77E3A7D2C5B9DC966E6F51BD53D72F9775A624F344FDF4BB3A9822D26B6DB6B11EFB527A2138C45F27C5E8A834EBC780E1E8210A9A7A4B7C3FC63B1757A22B8CAB57BC07AA27A228CD30411EF407BC276ACE8C05498CB641366B4EA0CAF8101198B35A51D502A1C1894EEB700A832D70E627AC0B7A57543769991F007176CEFB10C6E74A987C1D9B9750DB5230317298A800B508D41C942B48C36035915C0504646726AB767A5059D39996A3E310CCBC610D878F9B7503B08822BC1541A359C807526D27A7ABC1D78E3C0C3F67F0609C699E44CA8CE2C7A78E70042BE21F4C569E9D", + "0494A6E8C2F0592BA5060B365B57D1B03916E27FCE04C42205803AF0B213E27B21245E480B6330BC8533888E72E9BB2148059AC42BA2BA2550EBC37E437487C581D069BD27D739D4DAAC6D5B6C9ADC8DE4898181422A34B9A239508878A0682EB2466A44A59542B268D31989F049F433A7A0225D556770F4391DFDF4432133A0D888436AFC531F4584ABC40022C36314757E79538CD1C67DA58A049CD10BAAB7A7FA38293CA84403291372F97C9EB85D120B541BBA94098673E35358E4F97EC124CBC7E1C2E62A2616838D5D13674B832694975CF1396DEB11A1CB5A1BCFDA55BA86583884AA9593399A047F00E703CD458AD157333C349C46021B7AE1970BC2927F094C77970A7C9BACFB0A6E02108036F809C9AC23877B8B2EAA1ABB3132E55D8BD5B08678BFA4243430BB4D059B58A4B0CF0FD26E\nsk = BDDB6A1BB704F8B530860B719752402098C84AE4809B01C8EC7583A66A3F4BC290BF2173ABB41868225606D54991F5B547C2254C74391717045997A57BA534A97B3605E1AD9F7C6446AC08BBFB1999179BB8F67731A63CE1C717F30B57FD17BC00605E8E14127EB0C26E324AABD45138484A51A15DD2464440178CA7E966D4D58383F6BF9BB2A971729074781A8D978965F9A51EB2729BA8C308474D56089F2CC869B523C41C409507A671F0F3621E057662454D49C49A398343D64CCA74B7822D773373D5185426B7B3951256154A7B78CB1F5049DF0371B840AB21B83944FB383CC84AD9E24FF42B2731276C1D26B6120534438B029C4AC7C0739453C2860D32ACD75229C63A23A7201C303032BC0A410319035D38A3C9802D41A56A8C6C2496DB10441A2BCD13A81F90CDA2564CC9E4020A47595A30994888B383E996115AA282EAC3E3594447110C2D07774F9312D796C6B74A7634B6C0DA2291458A35D3022BEE048483461CFEB152E1D2CA9195AFD1F9AA82131804D35E739299C539B913C54A0C58683259B3137AA464B9C6E03B0EB751999B6C5354D6171C78CBBEF1B456EC4C88199764A5761D18C0849C1B0A263EA401B86CBA549C712E4A251830F7B6EE16B2BFABCA3CE018C3833BB881385C272DEE151AC35A2C9561B3C1266855219B0C6B485E669FCBC49B24C50C6C3237AA6B116085085405115E0422D956BEAFF9360B58BF915654B9B887AD9733F425A5C6990B3F0223D8099BC0E95C6A5702CF5667209ACE08FB4697D02DC45CACA8074185F54EC4641B35BACD2F0B770FC215FDC171C98BAA7AB6C0450BA6E47A838575A528F7BE221C3C91F02734269A9425A2EDB76CB6D077ED76040A716D39C9C87A58AD8867954C752367A905AA158E0A9019DDA50A6213C260F7BD8A0A6E8CF581FB74CB17283F3A1A8AA9A0418C79A948199365A6A1045238104280AC704B33791E156A2377BC83E9B9C86D0A3D2AA3287272BE6431BB4E598232312D10D03BCB13B4D838A9A624566C6A25FA44A0934AB6CC333E6D52AF3EC26A6FB97615CC3C77102D1A315486BC69C555A3E8271660222A406022E8D97251308A90A15F748153C1168CB133593C1641E164C8A06CC008059C55449413C2B28667B99122AC42B8BFFBC15FE395003249C676DB7589D2896E7405BEF8AC510782FF204454C8A0390C332CEB7A5A3123EB1A1AD0470096058358BA779DF70106E24990DA77AAF09705110993F16A2320A941D8865B387236CB8528BABBF2D9196C15898BF71040D3BA500CB7B1AC85DF11003A058D838C2652D4577306023C756AE9715136E91B20699FEF425E48953FECE15BAF27489D929876803EB0B5764E6338BF5970C2F35D1E815BB5B0B1BAB630138859B729923343C3D24922A8522E38E19868B8A4585ACF14B795FF3A609D93B1A5CCAB08F877C5B71EA78C2819113FB3632D5D995B02926663F2AB8E3A73DD6AB93503192E0243F2593618E3A809684BB6A31674E77802828FEFEA3A50FCAEB1088F7EDC036CB84329C988D965071E97C1311643BB1CA2B43CC57C84CD5EA9109AE36DE2801CBDCA3BB6F977959578954AC17D303841D5726631663F12816EDAB5C22B0286716D1DA2B9EA03C5C23806E56679F43B33FB553AC921482F0B61DB90ACBCA4B91BA19A22C5709BA48777979538519DA6AC5E2B576C545B35E510B1A57BC651F69DDC4634588B19A31A481A216A365941BBF709679A9EF8A6324C20C6842818BA97CCA6D26CA3FA79F3571E0CDC651CA753C5F2B8E8C247E9B064CD266D268BA3C18A30168452031B9458B3C4A084A7A9542FE7FB88FDD828F5D275CC1879FEA43D84A38DB1933298F6C98C08188B5AA96D9065E7A638D3746265652FE72A2D4623BC97C40B61A7124C899876C3AEB0D9CD2672795E0A65D44C0180436E8F4C2876E66CB8071262DA0947A926C80C6B67E13697C7A200B55F576459478731AC9B62B7572442E04105A83134561AD9A71A9D4696F8FCB791C44593A680AD34B8096BA82434828C492638A9A870B14B611BC4FD43A005624895AB6760257D181954F3F934E3F6742DC54CEC3CBBB8C229F8902D18517374CB6FA8A0CF6BCA0487880D30173CBF6A0386F12ECBE135CB7B620A5B7B3999B947770401A917C6100D6D7952085257F692AD9173888F28BDAE384635B2057A8183CA07853DE05F72437D6872575FF4C0EFB06259E397CDA6A87A178498C9AAC54B046A8219D98C48F113319984995F68B1AFFB863FF97DD8D14CACE2921BC192E038BE06A5C58205CDC68A3D1EC34D58697A7B6BCA3E731E0A68940EE5B8307460B402651457AD1A7883D0165C8CAB4D88F565008155AC009776500F3779530958C3003C7603C900E50148088B9420B78EAC241DC0AA11454195A03998388AC747FC465DC140E9193A9294ABB90B8022B493E069AE430AB3FC9307FC89358D3A88FB054E9836CEFBE45C44569B285B01EC892D5CE8288ED638D1876663E3C33C25C28297609FD94CD0BB923A746A4F55470B3B6C03C8A930E7BC06A08F521B6063066788841964696A31547C851B578FD02434526C7E641FB9721CD390984BB121518A88633658C7C7C6B0830CB6800B2368CBE703CEC33A4BDF319B49909B590A8BBC6542A108BF5927C49DBAA2C5C5009E002E242BA210A64F18B8542BE1CB92A8293C56586B568B489CA697D6C4F819C399590472E8B9DE9573A1D2934B86BF2D2B6F92EC8489430E0A681FEE0A22BC3A705396CE6A74C1D5D3A91AA253DA718757C875A1442FEF4241F95B516D27220973C25E29B1D335846DB494DB4CAC3A0B76388304B4252AC2362FF032A8B5C3322F6A0E5658799F1193EC69BF15C77E5FF2A3A2925690496AF4320EC688450058B5727A0E66F98270267B3F49270E310714F353DD4B74410A9A0E778A1E030461113CFB05A142001CF39721215026CF84B1C0E706DCFC4D9EA80514061463A16E069750C026AD26ECCA10F5830B2B756D515EF1C64D6D2C5E73818998AA9230D19D35842400C4568F62397EB0A42CF86C857C3AB009C8C831257D246B456996BC1BCC378A44BD88A0FC3469B0DA0D22410218941431A12F37831653342F12206C56C4B3BF980A5017114B3112A6100B06A2A62104C48CE8639D1830E785CB3DAB23F398691B48458D2ACCE79511AD276643476BD6C33D8D1C40FAB1B81A96A7DFE36115E49A07F8C72240B9B3F24A2739B963609B0C2705F928C6BA7C2FCC0C164BE46FDEE5BAA5730CD7A55E1221CD73305BFF9B8AE5C126B8621BD6116C17286974002C88785C745BC32F0B86DBA92E072A395E91ACF7257AC5EC5EE88A7095ACC39AD023A904B72C0AC845A318D18C7C72A0C4387CB470C8BA438498C5514398C70967B46109E18505543A98D51A3753BF3C657AEF7264A91C2253F801641C609628A7F13A246D5AA13F3A4D1DA22221CCBA20091C6284452F376B32CC2D27D3869137A3FCFB06B7C93F70F3A20D84741B8A186D78AF94C204BC0B6DA175175BD819479485DB23BF6EB2CBBB62A088F2BDA7CB470C26B281E29E0F29A111688CC2E7CD61985EB39287546967AD991ECCB99A6DD4B111861755964A77E3A7D2C5B9DC966E6F51BD53D72F9775A624F344FDF4BB3A9822D26B6DB6B11EFB527A2138C45F27C5E8A834EBC780E1E8210A9A7A4B7C3FC63B1757A22B8CAB57BC07AA27A228CD30411EF407BC276ACE8C05498CB641366B4EA0CAF8101198B35A51D502A1C1894EEB700A832D70E627AC0B7A57543769991F007176CEFB10C6E74A987C1D9B9750DB5230317298A800B508D41C942B48C36035915C0504646726AB767A5059D39996A3E310CCBC610D878F9B7503B08822BC1541A359C807526D27A7ABC1D78E3C0C3F67F0609C699E44CA8CE2C7A78E70042BE21F4C569E9D0494A6E8C2F0592BA5060B365B57D1B03916E27FCE04C42205803AF0B213E27B21245E480B6330BC8533888E72E9BB2148059AC42BA2BA2550EBC37E437487C581D069BD27D739D4DAAC6D5B6C9ADC8DE4898181422A34B9A239508878A0682EB2466A44A59542B268D31989F049F433A7A0225D556770F4391DFDF4432133A0D888436AFC531F4584ABC40022C36314757E79538CD1C67DA58A049CD10BAAB7A7FA38293CA84403291372F97C9EB85D120B541BBA94098673E35358E4F97EC124CBC7E1C2E62A2616838D5D13674B832694975CF1396DEB11A1CB5A1BCFDA55BA86583884AA9593399A047F00E703CD458AD157333C349C46021B7AE1970BC2927F094C77970A7C9BACFB0A6E02108036F809C9AC23877B8B2EAA1ABB3132E55D8BD5B08678BFA4243430BB4D059B58A4B0CF0FD26E4359601C371B50B50B5306DE33CFD476D3B5F811700DC4918BEB345840244E3AA8AC144DFDA421DE1A7ADDC92ADB79BBFA9657F3DC4B78A7335F29DB87B290D5\nencap_coins = A0CAA815DEB43343D4C18FBE19B107D20E36F89AC9D721EE8E82CCA43F9A28B7\nct = 1E2A1C5DAAD7A68908C17676504F08E4D2DAF63443015B4B665F8AAB78EE46D6EB8737A8FF21DC5F37DBC8BC6AA43FF3253BD34D823D8D19110B9034A80D623CCBDFAF29FD0323BDE07BA91288B7C88CCBEAEC07D44217AC6B1C636B0572EA23B2B9991250DD630DA42B3FE9B3480CB64B3F5566802127270A265E27E23AEF6A6AFAD300C2DA59C5A930B5008E89F753F77F6AF5B24D7DB52B907C110A79FFC8314D3C24FF8F262FA5A38D748EB8201B47291D345FCA9B057AF70F460435637976CB086863E1D4B42638859F4620C505762ECB09F949DB9CE70AC33AD9CA18E32E9EBACE2D6A551CA4E136B5C180F4B5E4272992C1191C405828E7973492DE8166888EEE5A4F5B62AE8E507589F3998A79580EF45643D2B133A244FA4721C98E212F422A1ED9B1B9274EC5C8A28077F603DD5F297336EFAE4D5D49D54A2AD63A9AA9141ECF5997864E31FC7F6E06402AA0C730862EEB26C4574EFF31C07F48EF4A371EE1C478C9D0EE12D576CC0F22618AF30AF31D67EEDFA61B7ACD66F99BE434B6966C3308BF75219CEE875DC46755B4BA7F2A3930150D31203A49ECE8024E5AF8B7BC548DDB31B73063AF345597CB342766F8ED0054DC819C0B49C025ACC37F2FC640AEB05A45DEBB232123B6576E1DD87EB2377F42606873BD417CEB24FF8253AC4F4E2C9F543E8FD8F1071695CCA77A4960634E9CA5A3817B868263FE82C6D42F8FBB542E20B8D0C387EB0349ED5AE38A985ACB44C5F7E30794C1455A4EA13FE70ADFBF08A5A6CA1526AB651A577394B1EC951078C76A3FE0586", + "1F06E2D111AE7030F7C51A60F1BAEE1552CF1101A27276773D0CA469211CA7EAB5B2F4F8D8DF7215E24954EBAA23272C6F56A638EC2DAA173181A635FD96B8CA6AE32EA02E7F9C73DE6501AEBD833F01D730F3AD9F93F06220A8AFD17F9D336F442CE9E761C29DA4D10F64F13BE346ED7A7DAE1F7465A10639AA0C39EA588A96D981DB69D49F1CDFE3171655D71BB23C6B0C53315879610E44F2F407176236C4EF906E51645940B399F956A63F3786801244F861BD5AADEDC5E2C3F642EB7D509D808E06FBC8F0A37CC58F7EF6FAA97A8D4FC6AB28D598A6F24386932F1B80FEFBD0BC4ADF0C19194BE52C89EE77D72E19182503D775C59C3DCC2AF6E4E45E6B45FC5011499EF5152E1DDC3733063C2F25E2D9D78FE4B888E5A51B15A879AABE8FACE6A7E08A4F11359CEFF5FBFCAA0B49E911F3B14AE33135C9E04271D434E986EEF54D21D1C9C79C582E32EC63C8067FF226FE2FC36F15C336B6AE85FCA6C2CAA8AEFD79A6AF29CA16AB4199F87F333B83728EC815DEC535F47D5F8E75E2314160DDE640FF6929C6BC48B59E8DAD16553C885A9AA502F110C38282F24E10AB5D67049D2BB30BB7E7959C144FC200DF89C585003FFE8438E331DEE5EBF0D950FF662CF75A7C1003051E5F702451511CBACA9434FC78561F610D24E34CE96974BA8A589122F45A763A13C258C3D412F89AF504F37B1ABC43EAF7595B07821EA6CBEEAAC5A3C64688089F4951FB637667AD348E5E2C48D31A4249D4A7436BC02871E2F30E407F24AF3A8323E328F636872812616C24772835E22AB4E6CF99402440160CDC5DAEDD3A2B46571F8AB41212A7B4537366DE79568C34DB1F3E6BE838008D39F1576EB7705EB3DB5D1158E8DB81B72F9C3E6D26270979F50E170AEBF7827E4B055B9B8D3BCA09C6BEFAC0EA1B04DD650C88AE14AAB4F894F98A068AA0BF765B2707A35991E1FEBE91F01E4D0EAFA7F9A56895C958E47E0E0667D6BBD21BB7CFF6509E0A4BFD3F9C58DBD4749B235B6FAB1AFC48D7068566F4ABF022B1C763E79DA72B6554FD79DB47166986972620ECF5C694FBD264524A75F9F768D537CD5E34ABAE7883A35BAF8FDCAE93443A8F0FB95519FC2134FB406F46F8C9B5FA98C0D5E551111E4FE1E4CA36E85881A008F061DDC3404F6ABB3F3AB5D054A2EA209C6927C1C8AE69693EC11C1850CA8A2EDFD80CEF38F641BA8F49B277D1163446A5D71417DA34CC0808AB9EE5C74B01D30BE821C822A088C3A4C69513F4D58164BFFA4B32BADC195B1D79EA5685C83D6D37E6979A3ADE4E8612AA2BC36C6F7F73082C10C7E91786B348BD0D2A4D33403FA78BA867B37763DA4ECB113F7D6C64B424E3A0C4390D9223EE51B1E3A0B660EDD340B686B8F230A25688A5EBA749CFC8CB2\nss = 3F38634F1C524C69CE06E37B7274C8265231E8EAC9A872535E9DF4D7930C4342\n\ncount = 35\nkeypair_coins = B87439FDE81C9E39EEBE7CF741C685785532C1DD23E8EF868B9CE7A541010F3D6EDA18027C6709111F1987E026A481D46003AEAF2FF23B675BC349C749F300C5\npk = 49548733578AA80987B45A404D892F45F83FE6260B4521181484A7AB65AED79A53F2E495AD444066D1108D14C4FA74847FDA990A783FDB923734860238A94B8634217DE964EA35A3D4C651A15C719301A2CAD86352257C2CA1A87F329092E18C5C782ACE76BA239C6001143F87A0406DA9437D7B19144386B9687023A34A46814EAE040C71673ACA3993ACC03879C9AF60CA0E4EAB9205B7AB65C33FF1295100D349F84694ABE062672135865494ECF58DB2912A3AF380C228B78D329634F359008871769696BB357D552C3E9FC17D8B636E1B905303BB2A5B6A6F07F478D4229DAAC38ECF47C205371705B72092F7A438D01267783E24370080362C659796D7443354D92DFB9BCA5BA5355E5C3608BB3D9B312FC7AC435B81CC1A6BA84A74283763A520381E9E3C998DFBA80D8383D416495B42B7B6CA3E91789C8191B894350F52B6B7A3E38A45F50F39497794E0971650C446551D7D304C87515BB415773C10BF08CC20506C0F515428E8B9037C42A837469DE6A3A37C695B602407A46B7796593623A9C840ACCB5A6B1175A30F62C8B9461C444EB73BF1E22418347AF3D92742175BBFB41474156745EB0DCBC4077EEAAD6C13C314D3188D3C9BF2F73784C0CD1A215C4623A8BBB19997D82BE2B1719346190F054A1AD92819D9B812028633469C3661238FC66CAB7C05BC5468A132C9B3A50EA5A4A8EA04800C97C3B391115725011E597312B7A0440AC2DA794859776CA73B550D666A8F058477A1A0C9621FF6184F415114D35514909719234C166734B5535B863AFBCBC5A2264A86B0642A41763B6D6DA15447BC930F925415ABB3170337C6985C499570DFB98430A56CD1784EEAE57A5DA37862790A282B8DB833AE37BC5A6940A8B95926F1F468853B288C9A4C7C128BCB56C7A218C3FC725AD1B89C829799B0A8A1F3718FB489B83B900F1CC9B1EE16369F18B207D022A35224330582BC4848E4634F3490C12C756246DC9F3CC27550057A1863CCB91A4B891820BC882C0E6024E1BB037677092C633F2CF68B96B666E1034339CA3E43F6AE7FDB22F9FC7649E559E5D22A07075BDE79A82E62B5A5258A0E685A2CD1BC8566CDB4A19D5C581236F0CB4E7AAD6F561CA9F6850D30A6FA0C1ECA230A06E11CD6F26194F56F40BBCDC99BB4C1F32C851BBB7AF48F19D813F89B01D9477861E128631B9B4D72C4C7CCBE59462A4519A8A34A44DD84586C4A542AEB6E1338B6836297A59283AF07CCECEC01CE074D8469C93F509F09F7230C092C63F2245AC2137A4349078A473D81CB3F87CBDF843645500B932BC326A85FA91095E4513E9DAC02D92A69F5ACC4200BB1DC0270B013B1F2372BC75AA609E291F0385BBE9376953CCCB3F99971DC9747CB913760506FB051ED186454255FCD642AFF73C32743158D467B0AD012AAA439C9335B4EE23A426CAD3DDBC4AB882076C2BBE83321FB684825B032059838E3D43DA29852309B1A7C15C08A5669A3BA2200B34B7F325A5F47B479AA49984060ACE979E9DB6BB68466973A3E0030C0BCFC4E6C6C13F734B1731CA956F89341D37B1CD5C40BEC802A98C674869C04571993E461446B2E2A68BA71915BBEFC2D40DC8756B9AD9BAB639FF6985E03B5A861785981A7B1449594D584BC1CC4EF7A4333E5453944C61D0145A5B6C999900DF26299CCEA5CC1D36FBB80C1A5E9C619A4347669377D541519CA47F06884B1984408D43B4133BDCC488BDDC599C4057B14A027D051420A5C17CC1671F18A2128B58E9B7A5E233A6ED2DA288130B51E47038C9AA2751556BA24B284515AF73A81A6881D665426D1D27A8A763FB3B2CAA19BC310A9C10024B7D722606C3B6F19C8935B744E28333DF8B9480A0083EB588380E6A12D777862E5C7D3E1874E8B1405A5787E92ACCDC798A873539C133502569E6DE7A29C7025289A9913CBC7AEA55718F96F2B2C6394B38FEC3A7B79238BAFA349C03960750209EE517629CA2280BCB7DF35793BF233FA074185A04894AC515B8985DDB5ACAB68AB379A639C49216A8BA4F9B125947150A907385E9729A7D621A5A9BF8C4A1234E6CE4411923C18CA0E925CB372C59220A502390E4C740571F71EEA1083887A5797F5631F614F4E91184811892C6086B0F5BB6FC322AFA31653509C8E11A8EB3B7D32E99B4B05D558EA7918A7881BCF516457AD2C3AB72EF2E04E3A4ACB85A987C2\nsk = C6389F081CA0932AB66F658046C1278B38BC42B5C4E1A7C7A51B09D8A159773B67AAE1C2AA8666000C6E6A014B5C0369DFF147688AC6FD48C73D783E3025C92D782A479ACBDE8A7548384B763A868C46178345A773A9852016B9FE765DB0BBABA5751E8056B7564C53FEE8040D3C0125115D323C62A3F0A2B518330B6CC4ABCA84F62C792D07C1E1A0BBBD7C5B9A698CB683981F8828EE69912600311A0281DBF9C6C9E69DAA26A446D136E8B0310F236D7A5A49B2BC616FD346C3462AB09544998C8D5EF641E7B48C35BA7A68F25414F703FB02B501C69C58A9B798C8C76923272ED9BF432208BAB30F2DB45E1CDC56F6EC11792A33EC1A62B3FC992441527E63328A46003DB49B7DC07F73F705CA0220DE94BEA4967213D612B5A03B2C16A9BD4C66E0AC893263169A87AEAE67843944628E6374B5518BF40919840B8E6C64172BE3A35EE5A29777C035463380203072EA50E7DAA4F906D01C502560621137B91649C97417CC2D3E1677006226D4621073CB1AA213525199BBBFA78F1899A53CB2B8D00819869867A41B2F48C615EFE2C8DA15A4E6965BEF0C4207A499A2156EBFB611478182D85A71C9F8776D28051D1A6E4A104E54615992E0595CA9B0CB2A0AB0159575863F3145B3401498949502B2EA4392C77728215F8700C93F5846A1A8126EB6B72248BD1047BBE62AA58737268428509E53575F945735E75B42DB2BA2F21B24C990A847241D2C3533B10D50847C85D98143FBB2EB5138ACCB055A8B8BCEC8AFD7B5697306165AF982190821A14301EF0A90C3D829ED9035430725A99C67745CA415600D10D7C29B228998D7402EFC1F0D0476C4D74C34754AF9A1AA1213C9A0198065378DE2D023EB73B3A4BC5801D98213AB7040CB63318B8395DBAD6C7C604760CA679B301AB08EF1A948A5A83DEBB39651310B368C736A56977F78AF0916364F278A4E3973374213F7A28BA70296D1916FC65CAD3B33C4E1597F818CBC489BA970680999C373DBC246740C07D97C5E1EA5AA1D627757F4467E84AB9C5BAFD9BA484F1212706788CF5AC1829C7FF0A66F26C30AAE327BB7E167BDE95FB5829340B187162A5FDE3A7CC6A0A05FDB6F26902BDB0C6C4F75692E67AB1C8B1B46A40E53FC901DD892A3E612AFD1CB2CD52BC5B0C3191137E602B0A5872D3A961EF7168990B634F438B744375D75995943CAAA47E3CC5DC634432B6CF2DB29B637A5E22559A59971BE46004FE2A40F7C330610377A5B0EACF79D85F3C86223A4C90C31C2495314748601431FA1F49ABFF2575410AF33F7367C5540084B75D6736ECAA010290839EE2456EE16BBCB57C601F26AA104916254A689C24CAE98296E4BCEF8770ED7485511F55A46C75592C88D6F76005356C397EB1E61CAA04BF55A05C8409E644055759A7E60C1C8210221FB97780B92C2C8AAFB6B94C259A9CE6291E18A801A82456B93C221A625129A1720328F11574A5C35C3650A7B57619C61F47ED6319329F118F4C31358A26A7E9191CAB61012A71B27B47FA13CB0B2C959D913A2F4BBB3D106AB695A4C13D41256A0B442F0428DE78F90609A11B8CBB475083712539E1AB034903C30F6B73BB8229ED50F901B142A597E7FE48B6333AC8E01205481B10ECA15F509140987166D81CFB7417DAC331CA141CCC61A446B285C05D9A68AAC887AA23E17BA7DEEC8521AAA3088CB03CC7056560AC669772609C53153118B45D855F7DC44618B743C22C779145D58867D04F101904579CCB2CDACB28BE7E019C01511644B3A9C288A1FC84658281EE2492124F609D4997765F315370176A0E3C327458027FACF937A38EB88AD7C950DB7EB5C49E17D48532822611D8625581B3B2425288872E00DB25037542360CB5685BDE15872A935069CC09D04395FD1A5AE62084F74B66DA89263A11E8D177DFFEB686A2445119065D8C59248F23E0D515EF2502177BB273AC62A9FEA23E0E48C9224596C44CE974650DCC81A", + "E7DBBA062BCEF017898BEB0625C75EB2EC3444F20EBA3195F5F9018309B026A32D4211430EB1C1EB2B7D87B0C282F0A04633499C3A9478A7B755E0B1904794F5A0B94F52C05300C838C67F4C26803C52A042812DA9C8CAC5650C3367A770220F43E3C039C3109A506731076C8DD1B1D99CAAFDA48254A73EBFB66849548733578AA80987B45A404D892F45F83FE6260B4521181484A7AB65AED79A53F2E495AD444066D1108D14C4FA74847FDA990A783FDB923734860238A94B8634217DE964EA35A3D4C651A15C719301A2CAD86352257C2CA1A87F329092E18C5C782ACE76BA239C6001143F87A0406DA9437D7B19144386B9687023A34A46814EAE040C71673ACA3993ACC03879C9AF60CA0E4EAB9205B7AB65C33FF1295100D349F84694ABE062672135865494ECF58DB2912A3AF380C228B78D329634F359008871769696BB357D552C3E9FC17D8B636E1B905303BB2A5B6A6F07F478D4229DAAC38ECF47C205371705B72092F7A438D01267783E24370080362C659796D7443354D92DFB9BCA5BA5355E5C3608BB3D9B312FC7AC435B81CC1A6BA84A74283763A520381E9E3C998DFBA80D8383D416495B42B7B6CA3E91789C8191B894350F52B6B7A3E38A45F50F39497794E0971650C446551D7D304C87515BB415773C10BF08CC20506C0F515428E8B9037C42A837469DE6A3A37C695B602407A46B7796593623A9C840ACCB5A6B1175A30F62C8B9461C444EB73BF1E22418347AF3D92742175BBFB41474156745EB0DCBC4077EEAAD6C13C314D3188D3C9BF2F73784C0CD1A215C4623A8BBB19997D82BE2B1719346190F054A1AD92819D9B812028633469C3661238FC66CAB7C05BC5468A132C9B3A50EA5A4A8EA04800C97C3B391115725011E597312B7A0440AC2DA794859776CA73B550D666A8F058477A1A0C9621FF6184F415114D35514909719234C166734B5535B863AFBCBC5A2264A86B0642A41763B6D6DA15447BC930F925415ABB3170337C6985C499570DFB98430A56CD1784EEAE57A5DA37862790A282B8DB833AE37BC5A6940A8B95926F1F468853B288C9A4C7C128BCB56C7A218C3FC725AD1B89C829799B0A8A1F3718FB489B83B900F1CC9B1EE16369F18B207D022A35224330582BC4848E4634F3490C12C756246DC9F3CC27550057A1863CCB91A4B891820BC882C0E6024E1BB037677092C633F2CF68B96B666E1034339CA3E43F6AE7FDB22F9FC7649E559E5D22A07075BDE79A82E62B5A5258A0E685A2CD1BC8566CDB4A19D5C581236F0CB4E7AAD6F561CA9F6850D30A6FA0C1ECA230A06E11CD6F26194F56F40BBCDC99BB4C1F32C851BBB7AF48F19D813F89B01D9477861E128631B9B4D72C4C7CCBE59462A4519A8A34A44DD84586C4A542AEB6E1338B6836297A59283AF07CCECEC01CE074D8469C93F509F09F7230C092C63F2245AC2137A4349078A473D81CB3F87CBDF843645500B932BC326A85FA91095E4513E9DAC02D92A69F5ACC4200BB1DC0270B013B1F2372BC75AA609E291F0385BBE9376953CCCB3F99971DC9747CB913760506FB051ED186454255FCD642AFF73C32743158D467B0AD012AAA439C9335B4EE23A426CAD3DDBC4AB882076C2BBE83321FB684825B032059838E3D43DA29852309B1A7C15C08A5669A3BA2200B34B7F325A5F47B479AA49984060ACE979E9DB6BB68466973A3E0030C0BCFC4E6C6C13F734B1731CA956F89341D37B1CD5C40BEC802A98C674869C04571993E461446B2E2A68BA71915BBEFC2D40DC8756B9AD9BAB639FF6985E03B5A861785981A7B1449594D584BC1CC4EF7A4333E5453944C61D0145A5B6C999900DF26299CCEA5CC1D36FBB80C1A5E9C619A4347669377D541519CA47F06884B1984408D43B4133BDCC488BDDC599C4057B14A027D051420A5C17CC1671F18A2128B58E9B7A5E233A6ED2DA288130B51E47038C9AA2751556BA24B284515AF73A81A6881D665426D1D27A8A763FB3B2CAA19BC310A9C10024B7D722606C3B6F19C8935B744E28333DF8B9480A0083EB588380E6A12D777862E5C7D3E1874E8B1405A5787E92ACCDC798A873539C133502569E6DE7A29C7025289A9913CBC7AEA55718F96F2B2C6394B38FEC3A7B79238BAFA349C03960750209EE517629CA2280BCB7DF35793BF233FA074185A04894AC515B8985DDB5ACAB68AB379A639C49216A8BA4F9B125947150A907385E9729A7D621A5A9BF8C4A1234E6CE4411923C18CA0E925CB372C59220A502390E4C740571F71EEA1083887A5797F5631F614F4E91184811892C6086B0F5BB6FC322AFA31653509C8E11A8EB3B7D32E99B4B05D558EA7918A7881BCF516457AD2C3AB72EF2E04E3A4ACB85A987C2E1F6C5A99A49D6B1B4AA18089439BB4C56CA465785BB36594EF2EBD3AF20D5646EDA18027C6709111F1987E026A481D46003AEAF2FF23B675BC349C749F300C5\nencap_coins = 281023B82D26FA61F9A306CCE0FA00037556C9A0B597FC734AB2FA2A146C1661\nct = 05B9BDF894212BEBAE578C1A2B5D311C59DEC8B3E9AC8734CF5D3A1829D03E0552747E5F9C50408E0EDD04E867FBD9C7275DCFCA3F76F1A4A5605A06459B3275CB1C263C07B38BB16596940559A96CED98A74D2BC9D060B82B16603D979755EC063F290E4297511AAFEF7F181256DF08F5FF309D742AB917564CC223D71D728EB299F5391D6948B7C846A15AF1A563F231CFD0FE6F632BB17C74FB2D4ABE87D8C5AFDC656E21AD6B71BC406C480192C25CABAB25469171C3DD892D16FC5745324605C276C9AACE9BD2973CEA580A75585CFF78793707C6690DE151CC0AC4CB420767758BCFA468ECC9AC886C7C039AB23AA5C81BDB340B97902CDC432BCB64ED9997BBAB2E9A9242318DB5E6461A583048713F5C9E17DE527E25A464BE5CC0399FA825358A440D134629B57F3823524EFAAA8D0BAB0AF8DBED7DEDE3FF8E733C145AB7EC5A281C637949B5D1D19A9EFF966B7D88D0B67335E13CEB82B22A493D73BE81EBE312485EA1AEAA6F2069F9D81485B1989B329C59BA1FCEF73F3991839395B35FC57A2FADBA41C2AE8F4908410546AA7806AA199F66FF97D8D76983558DCBAD7B0EC1B35528FBFE5D5E2DAFCEEC5A44773BD787E6811584FE9AD78F5942749028EC2607DC9BC1681B1C5CB686B8FABB446494851D906BD64846690E1F1BA80CCA1140CFBA0EB241C4E02982349A68F0814CAB36560973807C93E894F53A09024CA6E75156DD0069F210A8A0CEB138B8D9A1CD1FFCFA698764784AA17C4B90F151261FDFBBD9FA4CE651D08D30D773D32D52F949779F3EA0A743BB43BFD4176DE37199F9F11C6B6E54C7E022F99DE6736E06614966B061CB490F48897840C6F768386D2FF614277F9E350C54E5C23405AB14E7C9D754A93C89318036F319A8927F142428842F30A4B11217EC5A2BF81EE3005E17B6BF4404FA0FD4443DE11C2224B4E08EAE14CDF8ABA36F5E0F1557EF0DA3042E8E3690AFBDBA5A0F89B3AB6A3609ACAFFA62ED3BD239E78C3E4CFA5B18B121B7621A67B892A044852307A8E75EC3DE96C9AB5C4D08B1AD6137AA3046A19CC7A42B22D21027375E6DA86DC73AF76C66551C54E1C429120B99B19513C9A29D6AE663F6A91E0C6102B5632D8A639A249F0242EE2F27BC09D71873A634CB088196A177D625DD2757881383C2F4CEB2E5AB4C68E9EF5338C4FD6A829BDF9FBC8922F8B13C2AC58CBE8373392DBAF8D73CCB4C08932841D377FDC98F3C957A222B1A792D946AA66FF734965127AFB862C605EA62BABCF843E2013B59D9728734025212EA1C8BD4B8D92A34D61A24055ED05C2A9CBDBBE6B41D5CCEDFEADCF1FFD3AE1DB32CBFED4A56BAAE519840C3A910BFAF5271D887EEF3566BE305FE2F3DAD72C9A6FFF5C67CBB4DBD0DDD58A71AEE391A55E815F137A3D7E2630A70954F81EAF69DF3BCC1FA0BCCD342B91A655136E2465D35BE4AB2CAC3D799DF0EE159A6D1887134854ADE24B56A037462A356AB27D5E78FED6E7A3A6DDBEBC5184148C42F3FE958BED84BEF18B92E657DA855697CE9790921E4698B7E13383D6AFB8C8C2CF49FD8AEF1BC5BC71E41746D30427E6F5E4012DB946C488DF03C1AA17C726D7A9D1E9CA6046B77264962647BC9FA13626703D48A5F2964806924FF96F53BDA09FB7CB157928D9CFEEEFDD8008F0C1D896A9D90C1BD3E0EB7117F50FE76522910F83D65B0CA9A50B2539E8FF9D274968285F715DA4B1CB96AD30B535DFA5498A28482E8E63643447E5CC0216AAB36114AC81E1F9361F6B1882250EE23D3380EA636C2906FBA859B30B4F839B98F1A7162E34D11B1CF2C465CDF257AA2F66F7CBD982BC3BC4787B136B8DA730268E5F9F67149A4E0EDAF59BF766F735F68A52DACCFCC87C5D18D5754B36653F0CBEA305E184A2A3148E859802BA5A88E505092FF9ADF7820B6606EDBC722F4F3A4AE418B535530E811A6009816E9941F1D88F6BA21E9DF4D0956CFD94C50D4039D8DE631D4CA8DFC0E922BF43C387C566E5CBECAD89EF6BE95A6B808F732A16FBA54196EFD0A0163D2009093717CF1F417C95EAA332B7EED7F14F2A6BEBC6D1936D035909D4B7FE3E4114388B4517F33D5433037D278B44C4108347A52E6045AC3DFB66229860782F4277D18561D0296F63606411F2DBA5FF18BF7D00AE5C3055F77657F0655AB0116D435C269DE64C024D52C5388BDA4302CBC7403E69D\nss = 713CB80C51C4DFC49FD1718BDE2C9A8EB9DA6175FDE300FA1F7F27DA479521D5\n\ncount = 36\nkeypair_coins = 056661B38038DA4FDD7426F32A81576C73ED84843B305168A374F934E27A4E1BBA2DE5DD570E201786CBFD5D27020B649B011455909AAF0AD6D92C1B4BB1F8DB\npk = 08AA6AC1E96FD9EA9BF4595A7CD565D91416B583BE0C3355EF18B9B4BC1EA59135D3701EED6BB0B66BB320572189525BF4804A8D75A5F973393CF53EBED81A1F2CA339016E35617E77B58A38E15D417043E6174888EA4408CC8583D196042317F3C9571E6347424C032DD459ECB873D7F9312FE891A0A81261136690363B816A3B538923E56741CCCBC86D477C629A1713E99A4BE8AAE2B3516E863EF232755FA0025E40A664B714BB5C8B2A42568D824246D069BA2469CA370C1417A6A632978DD39503E433AC8566708C21AB04924D257E8002804E92147DB57A8D39168C709563E7604674AE830C176914CA2ED38B9E793515231B7E15B5DBAC4027DAAFB276099C0036F81621F7DBAC5D24C5067023DC6B219881CDB9F290BB9454ADB45A45EB1B975B1094AAB8B2A9AFE05A8240476753BA802C15495C5034F9348EC8C732724C9703E9A08220854A29598CF42B6777A19EB462C4907F0A7B5A3E991A5D7C4D8A70A78ED5CD35DACF9E98C19C596CCC1C4710EC9B029700ACC002A1C661C13BA1C25A1D853A851054546C33B1F4032E1F089E9C4C8AF9A99C3C72AE4077272C3A37839B817B55A31BA99B66580766FA2180C35A50462C0B98ADC38C6AC1D72A7396B28E36CB6A601CDF7C9857F5413D380A1D031BB5801890182518EC414DD78A8EF86EDFC0A1F10572205B5593623C41D873DA21AA60E3870348032497B367BB50DC6176D415BA54F8809B4155462AC6D34593FBF57FC7D5BF64C10AF1BA368D52AFC8E2CA3FF8467528C625B26709122C6B1B34648247849338A24005AA9100A790B054640ED59383ECCB6415F7A15F2ACA63CAC12609113D843AEA83814691072AB8", + "292B7C5DB1D973AA6C7B2BD1A4AEB4BB1D58CA7DA26B2E0296211042488C0DABC511308791D7A8AE725C922EF374ACC53D76BA5A12FB2A5BB94C309824EE119C87A62F5786996800AF28D11E59A83DE0504413351651D0209E98B76513747D087333702CFF8463DB4C353557632C8C46C3667623E012E5D7937F6B004BB549960C5760D15D08D1A4E85C288A2044D1362ABA2962D2B078B7854F997ABF6072C390342536A8AE8F62385A5770D4752DB9F979FA09037BCBAE54D4583E17C4BE538100349A379502DC69C283638ECDA028BA0CB1D21426334C4789715CB39C79CF408C2D1720AFC8986DE03627B28EFB773EE612630B2CA1A0A81239B6020E1380AC69BE3CF3742014C52F9B22A118AAE7092EFE8C93705C0A7A1A8849C0216F776695840BB0A168D5B991E4CA78AF08255646000FD16373831F8ED490724019AA15C57307BF06011392859167D0CA6FE88FEEDB49878C7BB0609AEB604429710DB83B1FA592C7A5E911CE795E093A9602875700306D38234E2A70BFAD422DF30380986533BCEC5D8C119BDF3B99E1596A05A123E2D3ACCA83031FF778C2181F75D268D6AA98520C969306CC80863789724C0EC5552ECA57C3D84FA141C69E07B39D9518BCB52049EA04145C34AD355CDF65CF6C1014F511B9C6BB9281FA243000781A99301C06B77ED606C0FA1EB5987E76AA5BB346CC85C85ACA114CD0A51C06448C1EAB496299515D7A1598940C33C8BC58DB4486867158A09080B97674CC9A9F7A176FD5034C139B19A50D4355011E2B65D47AB642C84812C74DC16A83FEDC38873145FF3143564C4AACF969F34BA743A14595BB0B5000C30B47662A7B4EABC0980AECA368573550C3148811386EE589A88A53CBC6BE1AB2755E58441B6C87E83BABA58B63BFD097F0D4922EA7C0AFF97143666D912199FC4307A3BC086AB13D6A6481F411BF780B10F5E04A41F27F5784402C9B5E1EE459FA8C4705F36756B34989BC63BB9CC9630C2C0DC6BF3987789BB59195F416F8661E6F5395839C68A0D85D13D0CCFF807956A28124E47B5B3C9F3AEB9537C3403671C03D28A09610C89C8C6C69D9733B320382A84A6CC2B9407743CC66611E84999D11356115060E6C2C5F9610FA820D18B355B64890B0A88FE784A39AC0C9E539732D79A36832492439944B643436B84D4BC870B5C21A5E224E321A5E7A6931E628342ED4616FB4B1997CB12FE6BE06B20E7794437512BE498ACA2C532C3A865FA2373742DA3A4067A7881AB97FB577618336F3D9750FC9B04E044922246C645C74B7AC6A7DD70D90506DDBB5F53A83079ABA0927BD52A68E278D3F01AC19EBA6BD\nsk = F75196A57024BE817EDC544DBD552F6B42BA121C2B8EA95E55017856A10C5905A8BB2590E63B449364802C6B438FC19EEFC875017ACF652A8F0D6AB0F7F5ACA1F1833ED3551D37419D906D2B55123EC14D5F109ABCD9382E990628BB30D882CCA8665957346C3A08553C870D32F77E66348CA9DC321960B7D50B09DE64178411439C021899F2B8C583762043A4508C3160544ED2264735C600A6AB43C8515532130583298A11450AE3B7C99FF559A1D33115DC2D2489934518BD52FBA1CB9A019D918464B59CC90941599253957364DCCA9F95A08035F8BE5BD36DB6B19F1F191A6E4B7FCD493B7A41C90BC76FE882AA0F3B39B6F454785C5DD1D106C80960BBE5846D90BCDE837CD277A039DC22427B86A6658F97A60101665F3F69125445647F3BB2D3125C80D89AAE6096A01C24902321933909A8A2925FAA1E7407B3C90C8A53D958C1C83465E557AB620E53509EE8C960B3C547FEA08D4FFA215742113ED9661B57AE1B30BA5768645C632DE76B96161A9B6C34B8DA48B75D176C2C849AAD55C6680BD0863273C345C4C7379CF3F873FA5953F53B9A026A4DC120C96E279085566C7D090EBA276A0928693E639B5564A59C08AEAFD25915F5478DD86E938A11529BB9A2B0B83487C696E79F1FD034EF000FA502328184BE42B8959D9C0683F3BC20E71902423AB14A4744E162F6A2B474DBC4A6F21FC0432CA7422CFB253D0F952BE9C13125458DF8753F5D551CAA38BCCA1625B533051C5226C8768335854E7477064320CB765AB9EB311A1859B4B5A006D918BD8508A971205E6902897CF95E0B652E09030794B46FCF7A784560C0A18B8E6334A57EC177BA56A8BB9A857013C6B9998975379BB04B540015A14A76C658F856BECCA363CB37997BB85B185AA0104063696F1020BD1B443419989798826E141A24A3533494391FA233CF848451CBD609D014508FE137534C42D6F22ED2CB82363C847865AA243CA993B14992572CBF5535845CC708BB09A1E8A7834C200D8036768755AFAB53ABA85813EB859EE83EFEA7563EE4BC158599F0CB04033393C829AEDBDA289ED852E1EB1FEDA9484777051F967E048041BA3C313A1414D463CF3EC36801AAA1AA540DEAB122AB530ECACA30101A1089087311972B338B045A1637189020C3030E63F707FEEA9AF844C7E1B20B4A5348C1A432F341BB9F598B8C0C2F6F55C4D2C2C22B187430748F82842DABA92283DBC4BD20636B6754B20A7127F01FCFD4013A1155E4746DBF3CA1F34991FE7C39ED99BDF5760D39DB8E6C428F2DE8157BE0139415AEA96BCF6FAB633F2257B582312D3C7ACAF6A5F8E55AD699672160CA01246545059E58502E28199CD0F5505ADCB91900A283F0B059F33D1A8B352010A3C815717FB3A9482C946DF0C74A526353D5C9ECD2590C5050996393A02286841580AB599BFBC8838A53301BB11D5FD492AF40BA26224505969D88F6B193EA42B0348954180E17124EC2C64B962A92AA9C3FE2D72F94301531C4AAF847243702BC8F9C37D64B54F20AC003B844C52417E1436D2E75AC09C313C83B8575E791A7C95D0412CC61521A6826997561485DEC26AD7BAA8E065E9A279ADD7301C5C74C5B95C1B6915E69C9A6D4B4679FA180ACA9817D6817E17314DA19501344231A58C8547148CBF38081A8889C00CDF77234D04169ECE6BF0ABCA31517C986C44CE771A32FECA99DF60524380323B31D92C9C100749825F30E1F7C9C079907A5750E3F8B18AD040194092093E7934219A5B11B4028281030774818416D53854975241EFC6BB8BB751C5069B7099671D0768F3BF74219142E88E08E58642B41B04EB66324392B094FD0740CD4585A27CCB3F25EF972CC26B9512C1900F8B61040EA7921D21F142C7E1A99B886E32BB80721E6C75F6A999328A2ABBC3C797965C09B2081671346355B4BF8C78C72C6CD98D0116DB3423A1B69A0F80515E423BC1BC6522B5FC77ABE492740D6FA8227235E3B7226FD89064CA494E9012F1CC62B02F95523F147BB321938CC1FAFA4323173A8DF6264959A5A6052A3B218622007AF0408C3227A053DCB71164C9A80CB844F59050B113F497AA3A65C11C317C9E6B6A6E8028C23FB4589046A70DB1026F07ABA9B45EC78CA14D9BABCBC2E62EA6130D8414E98B85DE8A908AA6AC1E96FD9EA9BF4595A7CD565D91416B583BE0C3355EF18B9B4BC1EA59135D3701EED6BB0B66BB320572189525BF4804A8D75A5F973393CF53EBED81A1F2CA339016E35617E77B58A38E15D417043E6174888EA4408CC8583D196042317F3C9571E6347424C032DD459ECB873D7F9312FE891A0A81261136690363B816A3B538923E56741CCCBC86D477C629A1713E99A4BE8AAE2B3516E863EF232755FA0025E40A664B714BB5C8B2A42568D824246D069BA2469CA370C1417A6A632978DD39503E433AC8566708C21AB04924D257E8002804E92147DB57A8D39168C709563E7604674AE830C176914CA2ED38B9E793515231B7E15B5DBAC4027DAAFB276099C0036F81621F7DBAC5D24C5067023DC6B219881CDB9F290BB9454ADB45A45EB1B975B1094AAB8B2A9AFE05A8240476753BA802C15495C5034F9348EC8C732724C9703E9A08220854A29598CF42B6777A19EB462C4907F0A7B5A3E991A5D7C4D8A70A78ED5CD35DACF9E98C19C596CCC1C4710EC9B029700ACC002A1C661C13BA1C25A1D853A851054546C33B1F4032E1F089E9C4C8AF9A99C3C72AE4077272C3A37839B817B55A31BA99B66580766FA2180C35A50462C0B98ADC38C6AC1D72A7396B28E36CB6A601CDF7C9857F5413D380A1D031BB5801890182518EC414DD78A8EF86EDFC0A1F10572205B5593623C41D873DA21AA60E3870348032497B367BB50DC6176D415BA54F8809B4155462AC6D34593FBF57FC7D5BF64C10AF1BA368D52AFC8E2CA3FF8467528C625B26709122C6B1B34648247849338A24005AA9100A790B054640ED59383ECCB6415F7A15F2ACA63CAC12609113D843AEA83814691072AB8292B7C5DB1D973AA6C7B2BD1A4AEB4BB1D58CA7DA26B2E0296211042488C0DABC511308791D7A8AE725C922EF374ACC53D76BA5A12FB2A5BB94C309824EE119C87A62F5786996800AF28D11E59A83DE0504413351651D0209E98B76513747D087333702CFF8463DB4C353557632C8C46C3667623E012E5D7937F6B004BB549960C5760D15D08D1A4E85C288A2044D1362ABA2962D2B078B7854F997ABF6072C390342536A8AE8F62385A5770D4752DB9F979FA09037BCBAE54D4583E17C4BE538100349A379502DC69C283638ECDA028BA0CB1D21426334C4789715CB39C79CF408C2D1720AFC8986DE03627B28EFB773EE612630B2CA1A0A81239B6020E1380AC69BE3CF3742014C52F9B22A118AAE7092EFE8C93705C0A7A1A8849C0216F776695840BB0A168D5B991E4CA78AF08255646000FD16373831F8ED490724019AA15C57307BF06011392859167D0CA6FE88FEEDB49878C7BB0609AEB604429710DB83B1FA592C7A5E911CE795E093A9602875700306D38234E2A70BFAD422DF30380986533BCEC5D8C119BDF3B99E1596A05A123E2D3ACCA83031FF778C2181F75D268D6AA98520C969306CC80863789724C0EC5552ECA57C3D84FA141C69E07B39D9518BCB52049EA04145C34AD355CDF65CF6C1014F511B9C6BB9281FA243000781A99301C06B77ED606C0FA1EB5987E76AA5BB346CC85C85ACA114CD0A51C06448C1EAB496299515D7A1598940C33C8BC58DB4486867158A09080B97674CC9A9F7A176FD5034C139B19A50D4355011E2B65D47AB642C84812C74DC16A83FEDC38873145FF3143564C4AACF969F34BA743A14595BB0B5000C30B47662A7B4EABC0980AECA368573550C3148811386EE589A88A53CBC6BE1AB2755E58441B6C87E83BABA58B63BFD097F0D4922EA7C0AFF97143666D912199FC4307A3BC086AB13D6A6481F411BF780B10F5E04A41F27F5784402C9B5E1EE459FA8C4705F36756B34989BC63BB9CC9630C2C0DC6BF3987789BB59195F416F8661E6F5395839C68A0D85D13D0CCFF807956A28124E47B5B3C9F3AEB9537C3403671C03D28A09610C89C8C6C69D9733B320382A84A6CC2B9407743CC66611E84999D11356115060E6C2C5F9610FA820D18B355B64890B0A88FE784A39AC0C9E539732D79A36832492439944B643436B84D4BC870B5C21A5E224E321A5E7A6931E628342ED4616FB4B1997CB12FE6BE06B20E7794437512BE498ACA2C532C3A865FA2373742DA3A4067A7881AB97FB577618336F3D9750FC9B04E044922246C645C74B7AC6A7DD70D90506DDBB5F53A83079ABA0927BD52A68E278D3F01AC19EBA6BDB8AA8568431FFC4681CAACECD4475C838CF7348402A06413E7A9590BA405EA5EBA2DE5", + "DD570E201786CBFD5D27020B649B011455909AAF0AD6D92C1B4BB1F8DB\nencap_coins = 2F349AE0CA4E08E2A8CE5D568829CBAA2150B69D13FFF8A46711B0F5DCD770CC\nct = 4C72EB03268C3237DA52A108583368BA933E032C8A99C221DBCC502398B08701284F1E28CFD757F2073CBAADF24712A9A799DFE33304E26A20BDF104568EA0746A20601CE1815009730FCCAD96681ED20A1BB72B3420564012595E13A581AB5661B4AB13C485C5534278492AD10D4533831AB8F260E0D2E769C41BD724CAB26208321DE39BD776D6A34A4463CCB18AF3ACABAEAF6BD9E300EDA48DA232B177AC4450C173DF00032905C2BDBEBB4F1FCE52184F4842B5AD15B6044C0F2C29F977F817CA8ED2158FC49ED8CE4FD3826D717C2A207F4B931D2A9F16CE754B9F6B2894CCDF1E951059EABA943674DD0A2BA1FF9740B99B5174021D7814E95E2F6A25941CB6CC494BD4CA1F204E62F1257A665C651C6CA10CA29C0D49908077C0559997E35DF6FB43C6023E957A1159D8D0C5021C1CB691D87F2C57242732D3FEC423D753D1875E220D7723DA485CD037199FF84A8CCD7278049D0C886A7FA16377B80A7C6650622CA48532C7027B66BF17F3CA87BF93634DCAA2E5CEA9C8841FDCA4AADEAE50726DA081E1EA39C632E824A2889965F77512A3FC52A372EF7F4045654548FFB0F0B918D3D37A805D0CA94EE5DDD7E9EC1071266DA94B7B50675EA86C3C1A7411640A9884C55598354906D3BC3D35D7F08B48C3AB82DCEA51D6FA933EB0AFA648CB9ACDCE8DC827F5696F60BB6D50C633A0584CD22FDCCC5F9A836B27B6B4C565864408B68AA54376BA90CCBB7D9BA319C36AA98D3573616CEE39E6302C2D3748D123C6E7C3AAE7B14322132043FD30A097E69866A8C540FCB41EC0CB4886B8EC1365C94E7F4128DE6E689B13B32E996EC4B464072B0D3187301C92D9718CB7276A2F78F289876BF7107C8807DC5A9F8C6647777471AEE46711A52AE2C6981B7A7325888A35F9702F20C9838145BE49595DC5F3B407F782A052EEEDD64E70CB460BECF97EFE375634DDEA203FC4B69D8A63765DE3F9A7A52A068CBCC42FE2AE08E34354A7EE8259FF6B5D9D78547B1694B3143A2EA6235D1016090ABD46A4C1E6A20072322B6694A2DCC08C7A4A2FC2957F20C21E23DA176BDF17D1092DF2D980E769E61FE4DD560488A29A1A3CF5756B29D5AA84492D7D1BF7F4FD724E59EFB427BCA620F41CB9D12167EFE1E35B9ED6718BAD56C4366DA3D9406E104065552488B12C4ED51D16D872CFF7B2F97C6AEE1CA757C944FE52861EC8B3D9093A8D3AD6FFB20A85FD859A4D865398A314445310CA2089D7B0897E236842772E7A3F0667EB3C56D70F18903276AB03A34042879925838F81014A0A64BF3ABC32DC82CD07DD0D49F0E174378C5BC9BD5F179D74E7CA9D8ADC5AEC4E181071640E6994F94FC8AFD695E4C57E68130E00863E588095BE7C0E4F958028BCACFED2AC26D7C862026507E379806D94EF0CEF30972FFE65E33D615BC51DD1E9A385858C6F9AD3ABDD3A62E13B0D42E2308F26FB9B4F2230A935000752DAD4C924CBBC21C95461CCC38C34E437C6B0187EE7AA2888617A4D4F07D01B424BE73D25D5B5412B014946D441770B25CBB00426884E3CCB8751A37026359BB120B65AA612A6BF8FDED36689D80E894FE1A6B58B6C06E735E65F60F0EEFCF900A144C4D18A25D228CED1B0B632622A740D8146849EB72C0440B049209BB19B595117BFAB49792B1A0759043EB56AE63B71F927E6D9A455ACDB4DF0CE63ADEEF8C6036ED5EF13828D67F61F9F622B94391E3CE6FEDAE136A78E4FEFE8F4FD486FA25988C5BAF2406A92FE45050481A744004BF7BD6D10696EACA8E2F0A732A6C861C6B281AC1CB21CD70F3C088F747FD7BCBED6DB5C6983B84A3A888BF1273B0569AC1388D9BE08E9FFE95F3B534C6FA01B66CF9120F5F792F3AA4E8A673647E2E22F7C82D10DE2770814582E53CDA33771C0D876C97DC034EA43676FD61C07C049291A8FA08E0BE69C8775A59F777C4D7AADE60EDBFE927223A4AD04A49721BDAD060D71078AE6AE80256BFF0AD63A24EC2D71D2CC8E41D02D2E0F9990A52485B88CC344D8C98FFA7CB3FA14F4A80A45C87CCD9EFB8CD1E384F9AEF24CF865B777EEB4C7CF43690C187736CA69BA8D9C65A4292D29980B81D151D7A07BA150878CB7D083005CBB809617929EFC52338222F651DDF6E956693F58AE626D7BD4CC16C7DA73AE9FFF463D541B429A298A5123780B69478E597C16FAFDD063793C33A18665DC94D4\nss = E753DFCA86295BA609E0D04EFE1685DA11D0BFD57E9533C44D2289AB179ABBF6\n\ncount = 37\nkeypair_coins = A1B52D871612A1C611AE0944F9E71858F35D3BD14F20E96A931720668BDF0A6BF25F42AAA0D647322BD837CB730AF6082D2FA2D17BD63B162B36839FCC2DF0C5\npk = A936AD0EDB0AE5A6B9A66BAB5538CAB0AC6E0430BEBD798C474BA1EC345EA6D3BA9FA0377D46606E70C86DD1BE281A9F46FBC0D890C607DC009F46B459958989852B5582566CD30D02317CD4E0B84E6B1917E692E45C9BEAE45BC8E8BF6A65587F206A67D93A4872C571200BBDE620E2639659302068088BB2D8BDDF33C98EF34541B4C2A22897815B809B060F86200AAEA90376234860A66E9E8843BB52CA7033010E47C41D573FD9BA40C4FAAD88026ECA797E80396A2ED5586F8109A44BCAC355117A7A3F72950030CC506482AA0CE39369BB350FB07B1388981C89400AB5A632C172D159C6F0E126BEC96E17C0C18C615BE5110818E0CFC2900F76D706AEC990021AAD6ECA787B453991A896F4622537051E3E4A11A0954995525B8F2B11583A3A3E594400AC97B82A4B5DA822891910C721AB0BBB9942F2BA777A0C5D8C532393934B391FE5669850BAB01740905B684AAA96BE0CF50DF463406B91A28149174B555C742C3F78569BF294681CA09A336531EDB94BF30459893CB2DE348330FC56A7304AE2F7CC33D13B7966751414420DD089A48A6036C1CD7C5608727B52612864B63694005590859AADD91B068B053453D1C6F9287C58AA042073087F7959FA932284231B39AA991C0523BE599CE85B1F0FB52D465156C795CF3BFBA270AB9CF94CC152774FEC76AE77B9ACF0F37DD2A9547945442ADA8EAB32960332860E2A25B7A25E86D0A7AAB0226E877F0488877D941FC0A0541461B8A4744DE6456DF6C5AE6C621A969A02F9C943F68A48809328A0BA3892D7AF2FE169EE41554F0AC1A3836E151760C8472F60B77E274948ECB6748C404A74005BDE6C5849401FE2D667748B9F3C19A41D659474B0B4A6829D848A898B93080C66AAE85B3660D392F34A6EE9C6B10DF567DCE1892F4932B6BABE31E0A50F8217985C6537188B817B3311C25E8C63CA265B568BA9CFDD451E6FD517E18317FB99C8204ABFDC937134E845CFE00018E097022997653A8D5BE32CFB07B34836C242B74EF9D30BA0D7AD8C2B2944C766C025804EAB23A05B6FE6B85D331904C4C99A1FC992790A70F9EC52E25BC17B949B66F49040A59E7EB97491C546BB3778E2E70E1A63815C760DA8195BFD431A9FD88443E26DDE85C5B08091CB19349CFC73BA195923A38AB6A044D1C9CBE498195C1B5A27A2B07B627C141CAC61D391FF1B88C9893327447D32234705D42F10374B77C86D83D71E3711893188310C45C51A5473003D8566D87FDE99C67B962F6B4750D7851D3B6201A2FAAE68FCB1011404B252BCDB341E68702C8DD6A237813E049C42AAC05977637CD3C81103E1973F6B45B8B0B56F69AFFFC9CB5E97BAE9B6C5809ABAF47B5B0B20471BD77EC7455E1DC25FBFAA7018E58133A44678083C06E06334452890A35240526225A33736A042B1595DA8452C2EBA086ACC1A6CBA45BECCBDFA23ACB2F01CBEB75FF179CB39242CEAC33EB2889C4784CB970938AD336DA5DC013AAA2973043372CB99657297E7CA05702992B578A65C00C867B43EACA93E975695F7625AA8240C0E5827E1636D72EC4A0480408F911EF631B48A1C4462665B230550924B23481BADE7B43A1D76CBE6791E33874182F955313CBE69BAB35AA59CD1B133FC326BA571713A1C4DBE2A662B514021BC7BAE44343F39138444173DD7944C6291C50973FF0B9C0AACAD9409881AC232306354D5362537B507E2AB84B4A0A3B5B9819E62C3B6DC1FCBBA0224B48DA7114DD4FA3103069CABA17C09B7BBEF8B94B6E15F58321B708C9C23A40288708CCEC56F3FA2BCC7397101FB9E54FCB7E7E816F149356570A006F69779FA6E30B1310E6BC6D983599EB81C202C5E887659F5E7836FB7A72EB80474116C6659C24DFC4C38DC2E8D6A0787A3B6C170A23BA53865A53849F4C3F25B2363E582BDF079793BCB832878B0F7268F658B72B3417135684393A4B1F40322BA7FB147416FF0B58D3B62A7343A6C51B4C8F6894F0B05E33476BA24C61C276652048B009CCC1A768E48CAC707A42F4E3B685CAC54AEE57203B78ECAAB3A44AA8DD7DAA43F2CBB2ED2429D547B4DA5176A7B621A38681CCB3E72D98F1F9926B1B30325D6CBD3862C7D044DC16B8A25DC59C2A53E295040D7627F744BCDAFEB522CF8CA6EACA400106B003197C8F9C878A367C021DB7E9273FE2E03A2716683DAB6CAED5C770F6E7984\nsk = F8FB5BA9D24C8681558CD13593F0CEBB335B6F65BD5DDA6DE6D19E09F15165051F981AC6472B263CEC43883A79149707093066FC129AE148B04F860C2DF119F8A51056EAA5DFD89BFC564226E56DC391ADE1CC2A1DF58EDD4572C5A147BBE21283B97F1B213BC276A471B63A7DF1CDC86C7A69A34ED17A425B37AEF969C1CD079529BA29A2E2C3412C5615E23523F3124C00C778752BB9B3677B90885CC21B0E257BB7F335FD53928B737D19DA3B3208219E6C898E96B45F801135A09A1425A0986C597E2B4042C1A4E6D7A4D0E30E729C73F2BBBE85B579C3C13A34344A7403B95D425936486C3B602804C08EF6F5AB22C400B9523EA3345ABFE666023BCE6A1B63A872C33E3AAF0CCAC2C40A4D5A48107D0C7AB09001EA67CA6F4C1FA7137D259C860D032C396BCBCB4177F82439852463B640855CE604F91C8F2E4A0899B2102C6059DC077D5EE6054355C546C2148077B8DEFBC313C71F1A420DACE126B16C21E40064E2522F9E224CC8E3526B1A99A2F4A81EFC2DD3609043246D461C7C1AF025B56A9C7E72ADEA57584CF044C2F0BB60352C32400D1631C034572EE46B71EDBC0334031AED7BC26AF543028C3918109DA52A6ABF3217A2219C0607BA9EDAB5B4DAAD5EC7948393C4A670C340688541AA713B596843E5CCB9616B54E92610539BFD39159FAB36D4928EE9CC8B1291AC0134257E242FAEB595100AC113AC416FF517866021B550B6D063512DC37477117D025964C95C13535C2F09A96740037FE1846EFEC4446EC03F93FA6B6FD8B539F0196444A61823B08CB74B7520618C08324F0667F142BEB3A34C2C5286B3D159FCE3B046079F07E558BA28A8893A8C94F9711C227FAC6900114C8BB6AA5369B059DBBCA008482A1843B62A1B06C68C6B2F40BAC6F02B6CAC1633055A178A396EF35F59F1A76543953D3B07E2B8BE217C5D5B1A82F9C080F4119D22275958026280BB8C96626C1D0BAEA6658A29546E09418AAF85A121F8647CB4789484BEE0189B9AB10852C397A2E25B9B15B71EF17440DC3554DB740289BA05111979614AEDCCA79699021F4BC3A4C68B39D0256D", + "88CDD7A24E3AC31DAC35388720671A12A765D705F8429D0891C3E0D8062AD45A0B882BC53016DFB007D1C550998963D7E12FA51C7361D86156EA3A8AD7018C627A9EA18F9D3787AB3B88A27B3F9443AA87AB75EB1364A4C66C50E8170892A08FD15CF2913749D0C61305C4DE45A1BA2550009726A0873C70049705009DC8327BE3610F61F9BC60A26D14DC0C3E67CDAE4B5AC0D5A0638804D6C6B4CEB351F0C19F0974324CFA28FAB704B4677AA3F2BF65686C22100B74CB9AB5F7215452CBE8D6909754304573A9314B3C8362CFC34C6302B3CBD5DC482E76576FC5900B367016C03A860A88744928CAE55413231CA8A5008D210CD2E317D1BB6BC8624ECB83002E66092D8AA77FA0C6766532178A8CFB532C70F1114E5156E91486C3C7658E2A22CF0A77873C944A5A4BD70BA1686146E18B328D30813C9850C3003698C5AFA2082B3425C785200596592FBFD7B2AD5568F9D278FA24C523251BFC966A69CA882E707426563D2E099295305FE2E2A96F968A92E9423DC4A1F6662F68299850F81DA13AC23E272A8B64BE3FF3BFE61563FC98C555ECC6625B7A84C79C6550C399977CEEA525B12A52F9098191B004CC6B83A8D89A63756CA9460FD21758A0701E5E71280055CD3EC2A218168D38E78861CA2D0EC6C56A880F5091CE656BC4DEE3A8061801255865067982744439E83B893B3055F67466A8B722EE0339C46160D4C40CD92A2ED5601199E5B214C9C48D311E3B26032377B637CA10C5579B7BB381C25BB7BB82159B0B1AC9592A9E9817CCD8B85631ADC7C44CA1F6A8E7529782302DD2266FB0A7B04FC16857F034B50B37B723B42E747947E1A6FFB1C8162181BE23A1C82ACE8D4A1BF522143E495C39BB9E63F17768411289087258E6A07192656C7269AD688BBC5CB66F094737DBB85EF146C0CB146C7010CCCA769AAB3D0E3B52FC61B637A02BF0C7BDAB750BB7A9A367302A4F3115F352675B2B458EEBA2DB040DB45ABB314C5583785925BC833F82CAF0D6687F87220652886ABA525CF89900E0B6FE4493CA61CAB752261A432CD34121EC58348F1AA59D4476EC8B5DA936AD0EDB0AE5A6B9A66BAB5538CAB0AC6E0430BEBD798C474BA1EC345EA6D3BA9FA0377D46606E70C86DD1BE281A9F46FBC0D890C607DC009F46B459958989852B5582566CD30D02317CD4E0B84E6B1917E692E45C9BEAE45BC8E8BF6A65587F206A67D93A4872C571200BBDE620E2639659302068088BB2D8BDDF33C98EF34541B4C2A22897815B809B060F86200AAEA90376234860A66E9E8843BB52CA7033010E47C41D573FD9BA40C4FAAD88026ECA797E80396A2ED5586F8109A44BCAC355117A7A3F72950030CC506482AA0CE39369BB350FB07B1388981C89400AB5A632C172D159C6F0E126BEC96E17C0C18C615BE5110818E0CFC2900F76D706AEC990021AAD6ECA787B453991A896F4622537051E3E4A11A0954995525B8F2B11583A3A3E594400AC97B82A4B5DA822891910C721AB0BBB9942F2BA777A0C5D8C532393934B391FE5669850BAB01740905B684AAA96BE0CF50DF463406B91A28149174B555C742C3F78569BF294681CA09A336531EDB94BF30459893CB2DE348330FC56A7304AE2F7CC33D13B7966751414420DD089A48A6036C1CD7C5608727B52612864B63694005590859AADD91B068B053453D1C6F9287C58AA042073087F7959FA932284231B39AA991C0523BE599CE85B1F0FB52D465156C795CF3BFBA270AB9CF94CC152774FEC76AE77B9ACF0F37DD2A9547945442ADA8EAB32960332860E2A25B7A25E86D0A7AAB0226E877F0488877D941FC0A0541461B8A4744DE6456DF6C5AE6C621A969A02F9C943F68A48809328A0BA3892D7AF2FE169EE41554F0AC1A3836E151760C8472F60B77E274948ECB6748C404A74005BDE6C5849401FE2D667748B9F3C19A41D659474B0B4A6829D848A898B93080C66AAE85B3660D392F34A6EE9C6B10DF567DCE1892F4932B6BABE31E0A50F8217985C6537188B817B3311C25E8C63CA265B568BA9CFDD451E6FD517E18317FB99C8204ABFDC937134E845CFE00018E097022997653A8D5BE32CFB07B34836C242B74EF9D30BA0D7AD8C2B2944C766C025804EAB23A05B6FE6B85D331904C4C99A1FC992790A70F9EC52E25BC17B949B66F49040A59E7EB97491C546BB3778E2E70E1A63815C760DA8195BFD431A9FD88443E26DDE85C5B08091CB19349CFC73BA195923A38AB6A044D1C9CBE498195C1B5A27A2B07B627C141CAC61D391FF1B88C9893327447D32234705D42F10374B77C86D83D71E3711893188310C45C51A5473003D8566D87FDE99C67B962F6B4750D7851D3B6201A2FAAE68FCB1011404B252BCDB341E68702C8DD6A237813E049C42AAC05977637CD3C81103E1973F6B45B8B0B56F69AFFFC9CB5E97BAE9B6C5809ABAF47B5B0B20471BD77EC7455E1DC25FBFAA7018E58133A44678083C06E06334452890A35240526225A33736A042B1595DA8452C2EBA086ACC1A6CBA45BECCBDFA23ACB2F01CBEB75FF179CB39242CEAC33EB2889C4784CB970938AD336DA5DC013AAA2973043372CB99657297E7CA05702992B578A65C00C867B43EACA93E975695F7625AA8240C0E5827E1636D72EC4A0480408F911EF631B48A1C4462665B230550924B23481BADE7B43A1D76CBE6791E33874182F955313CBE69BAB35AA59CD1B133FC326BA571713A1C4DBE2A662B514021BC7BAE44343F39138444173DD7944C6291C50973FF0B9C0AACAD9409881AC232306354D5362537B507E2AB84B4A0A3B5B9819E62C3B6DC1FCBBA0224B48DA7114DD4FA3103069CABA17C09B7BBEF8B94B6E15F58321B708C9C23A40288708CCEC56F3FA2BCC7397101FB9E54FCB7E7E816F149356570A006F69779FA6E30B1310E6BC6D983599EB81C202C5E887659F5E7836FB7A72EB80474116C6659C24DFC4C38DC2E8D6A0787A3B6C170A23BA53865A53849F4C3F25B2363E582BDF079793BCB832878B0F7268F658B72B3417135684393A4B1F40322BA7FB147416FF0B58D3B62A7343A6C51B4C8F6894F0B05E33476BA24C61C276652048B009CCC1A768E48CAC707A42F4E3B685CAC54AEE57203B78ECAAB3A44AA8DD7DAA43F2CBB2ED2429D547B4DA5176A7B621A38681CCB3E72D98F1F9926B1B30325D6CBD3862C7D044DC16B8A25DC59C2A53E295040D7627F744BCDAFEB522CF8CA6EACA400106B003197C8F9C878A367C021DB7E9273FE2E03A2716683DAB6CAED5C770F6E7984984F4C4EF2371654067CE0F22BBE4648DC9D87EEE23842F31AFFCDC36328E8DBF25F42AAA0D647322BD837CB730AF6082D2FA2D17BD63B162B36839FCC2DF0C5\nencap_coins = 525F15E526198ACD1D2B0BA0886071E482866312CDFDEF01C20EB2935C28EC84\nct = D4F1D65C0A829E99ABF2A02DABE989C5D9AE51F1191496E9437F3CD7B024E31372016CCED22EC30BF7A2E6E143C6BA8F0BF71963D21C42FB4D721C90FEE874E4CBF6B13D50056B459D5C0C5947963CE11CE23BF7B12B496F23B501348CDA2B460127B81407C06A26C5E564B8B9E2EEA24CA8F59FCBF264DDB2F5F84386D99CD0AB23CA4D96A68D4FFD6C8631EAAA94499D0DECAE9B77868BE7DD518712AD402604E5BAD5AB1955CF90C27FDBED96018D2AA4432183552070FD87859835FA18581E41D8C9FBA4CA9310C02CA290789FCC31D88D039D09D844343C1F0B3EDACD023B01FCA476A642FBA217E43557EDF24197C0B47940DB661C7A544E4C4E27544D673E1B817E74990D27806CC40A78ACB2CCBF5DC2F9707E146EEE40DDE2A21D061C3305AD15D1A931D0D7361CE5A7BD00CB25736CABFA02A899CE52A7023912B3BB0807F93C54784687E1111E6FE44CE160A7E16DD5787D001EF954937CDD628D5BE82A87000A9844FB75C138CC0ED934C8A32B924886B2486F1753CE5B82479F10AB4B783132024D2A21659C858933DA828E74A342B74A5B804AFBE1C478EE2623E52F13085562EEFAE7B4262402959E3A40DCB79B9F5DABE934EDD07F73BDAA393729C6EA5BA7FB031862FA7D9224E27EAF8FDCC298824947B05AA0D0BB0866ED935A9786D7270DC48F2C71264C28E79A2C744731B638F02FC6AC7955E192AFAF958631BB3C02F65AD502E6466889935F841D0EC9B0F1AC9018ABD02C0477C755A347C6C3CC3F93B23682CB736539301F95B9746A6DFDAE2A18609CB7E8C20D5D66DD7A87B747611470539B93085126219CD48BB1C4E41F909C45E2E2DCA6F7C5D9DA422417C4ED58DB6455BDF0EEBE485998FB6EC9783F5FB815AB5D674469B2A2849BE8871D57FC3BD72810E96DB8904AEB6BEA332C6F7DEC7B4072898F7971E22F9065B10D729D4A6CC9078B6B1471201EE34727E3BEF3AF3116D1179906243A42341FEAAD6E450E8984995B5464C66AAA214D6587FA7D2D97104B10F771C966971917A02FCBCF179216A0A1FE2434668529A3CAB9D39380498C2C4C22F83EFD47B9871E2E90A1AF45357D603E9B1976EA8DCFCCF90FBF61A24C3635C843EC71BA8DFD742C6A5433EAC47A79F90343F068142B3856ED00D9273647D2FD737F7E5B8F89AEE90A4374DD014F5C90E99437B253768927FCCF8B73CFAE122D3F0A00D8D9ED68709D79D2A8A043187CBFA13BC9EF06CE9470BEEB640768CCB075BFBC1ADE8CF734876F09C90402223EBA414D6B3126ACBDE7940DCDF9207BE1AF39DC780043FA76AD5F65678434574F43110F437F9C17030E0AA6C43A364B849DC1C9C468D60FD4EBCF7680A312E0A0464F34FF7408F0AE07289AF41EA6A781BDDAB9010974552164C974AFE6204B1719DA4655A7A336B99008DD08E89EC12C9441248F998EC0BD418224911C1E7A5BC18C4FCF5F756FF1D2B7FBE4B94ECE24C176E68F5FE9807B2FA13BBE35EF5739715A2DB2B34173DDE6CFDDC6C950F55485BF39A73FF820F0839EB711DEE9A688DB8EB4F53BE749EBB7F5DF8C2A8F0F432F7C543D621CCBBA242CB94BCE06DB712224B30B2256AB92B04F4A7C7BE320CD1F7AA1D07ADD393485E941F45A97C851C074ACD9A79CCB6467D96C2CA80516218B84CFE6D12D4E2EB12B5C14D9F98304C8077445144826DF57ED52284ACA3862238D6A9E646CF1B44A6A0CE40E7D451EC248F7544D71F40D98163B1431D5B5842E519C39C60AEBF1763484A5777BE8D7FE516FB577D97202185AEC96F3060F366E9E781DA3D2F55469D558E85E4B096A04011CEA3518EE9A81BF801526A4AE03C0395C373ED6F15A1CC52F27293CDDA53467DA5C03BABE6B5B49DF06D31E1FF4784A2253C6B3D221B12D33A17F6FA966C7497127F3889B7EB1F8177A63B2DE695D78CBABC7E9E4954FEBB533F5AD33D186E1ABA7BC952F20F9BBDDEFD955DEBF52A346C391451BFA7B0DDEE7D9866F6A992AF33FAFC6AAC8391A61D28F42E03A48711A9AB130D3F97FFD5544A5DBC6DE96AA1CF09C8A8312B5D32E4799D7060BD98CE2A0E2BFB4BD655CA1C423F7B5B006C897C773C33DE4FC75DF3EBF79512E32F2C0A2D9D6602D47EF423047D2B6147AFD86829F9E211BA4C1CC0B61819BC74AFC81FDB0A97BF9F68BB534BED453C7FA5EC4D37E3DC44BB24F2C5D2B1D63C9A1\nss = 9BCC4AA03C21DC8B84601EF68C88ED4D31390EB2E7B3717C55526E30D10061E2\n\ncount = 38\nkeypair_coins = 952B49C803D6D6FBA69F4375ADCE8594847A00BCAE2179DA49AF2AED0423250223DA505EA4", + "8A79EB504EEADDF7D19D736F39A46C837F2A0C2BF3FB876ED8E6BF\npk = 6461A7A463B8E40C03739A6B5FD196655871ADB3C82AD10FB2B2B538E61E1B664FBAF761F09B4D5E358B518088B3206E1295BFD0461A2FF8553B40CB92E36F0F928AF9FC7EF54C358D88280697AC3D5548029C3FAF882AE2DA732E0C47934B9C98232C40B84A344421E708226CA6524C062302765BF4D593E2D75D3A783F1DD7328767315DDA868E685EABC18FDAEC2CA8B037FDC3607629CC3ECC8E848C771B94C6A20A28E3003778BA68B923B711060BB6152554707D7E4C135AE8663D87643EC4921C6A5C20AC69E67B0B795A6FEBE794FA86B13866697B15306F667AB867C1F2EBBF3CC63C5E7B03189ABF9B4A91EB782FED97BC3A6314D0CCB528B313D165B2910859DE867D7D6290BBC85185B0201561AF34B9656A00B2EC32323B26A04888786F81007362814BCC82862A7280A5CEE73A330E6C2E01FC9AFE2741B12166949532C884CE8BF2281AA4B860756463BB49BD1524B8CCC6ECB6051ADA819865B8BBE1BB01141B77FA3FF5713F95BAAC10866303939C07483B6BFC500D61B7AD494382C643E87508E410C30FE96B37960AD4E707421944B13B31D6686745C52EF6CA4FFF3074F19C1695038367B1218E8B08D8E6180870B0FE5B5511E3B4641B6FA44156C561AA2AA9A1E163AACF73C24D84BB764004B3B329DDCB0F15716E17C51C6C432BA1407C0D063B0CF2C073763A790CD0312ABE6D26B0D75390492A88772763FCF67E1BF28E1A01C0A5714BCC685570D34627CA5896DBA36A6642C507680EC744CCDBACE6835D052A42E2379A5E80ACCA643CC06B62F3E5CECEB4708C3AC4BF88AF58C7CF37F43D2797635BB985F052450875A8997C335AE85D5B790377301F5A094A5B43B515206067E36FE51AB9AF296583D47450A34A302844B0526A4EF891D01C287602453126557A876C583C2A06561A88F9651E39929D0B43FCCBA48595925C01ADC0677200C39C64E44505AA58A9B5C88311C094DC3AA5314F167247B501798C4A0D5D9A04B77C6552369542E96172573E727890FA3B2E3551286113221FE92F81C481C125BFA7A6199EF8C0EEAA0A5B8973C9A33807A464FD4A50EB294741C5A8FD998171872C0FD44EC86112E19A707DEC768F7245DD2A6F60A554490947E5152DC3EB9D9E7151FF7188127B5313757431D3A41C673E203C7E8E9963D0AB1276B5C1114C38EC8CC0BA0A94918CBCCDCC7DC5366704415CD2AB9A7FE55ED49498B8B7105FB312F4A153E394A019749A23DCC180236468A47D96D47BE66A0CDFD16A2DD15AEF826041192B8028B1EA782FBF0A2CD5FAB19011B219099F8E87C74CC69841F4A927E181E98AC6B3DB7846EC38C0BA8AA9F50BA7A423A474060EF165299B12786BC8C05A384EF129B0F6C06C1047E582C02A54AA8713422BB6B9A6A4195FE6843D7C639916943B5793107CB8E63365DAB357CC02A9F1B33E8DA29F25F9839D862285864BA790BF965292470965E0A9C1D1F65B72139908D791A4D89E489A983279A703A0C34222786E123B45C793C925B1A146C006F15FB4A1C85E181F8B1C6983E1A1D7210C12091D83439AC8A15D965A386BE47145BB946162CB8869B359654121092D81947CCB5717E805478A7C0EA924692B361CCB730F3180C8F79041F8D366757528B0828B7FF9531C76690C37CD8072CCB1C36A195A84197A8797446273D686AEA96FEFC153F1710D98229ABF35B6E6127F2E5A5C9E88A33A85A1006A1383988E3C72692038C2A713BDFB266F22A4657548A91554C54A948E189A62590A3F0362C1F84954408BA3C9284442B59C1A4904128C0BBB50B2E34C98B819A1D6793DE75697CD814EE162AE3DACC0D50BADE8B835C3F27126731D2721AB61802F544967DF987B5B0B02EFBC95847A5F06113737E55CA4DB20C4400580B5C241016B50DB710D7555D8F67CCA13B2D86103D3870D5713B217D03B3984334A6CA272D43911EC23DB3B5C15139EFCD510A95C96D68A70D2988ADBD048122678AC8A051282BB4FB47D6D5819A3A9866571CF53B78ED80A76FFECC971B221BFB917BC69018DC0177468357292495D98A022634EA7B0B1F517734EE40D0E927919221CE9EABFA05596A801A342B87267AC9047129995630271C1C2F02A4D1AF2217B65C05609B8745306B6A90F86EB48CB0A4777065C449F94385651C3B4C0503726CAFA118167110E848FBED995526B458D362061A1\nsk = 5B47B61CE23572623C431A498E378C6B71A5CDCCB58E225310217F6F2B1B7140B97349B965D9C95332A66D7A9879F24C479851A0EA485254755DB347BFF9A06D00502AE3A910C06771AACC0A51ADD07A291496AC10E2899B6562DCDA7B6B9B7EB516335D222C43498859D87A44CB8AD589A06E609FC5798CA06744051533D5C6154608C790A8ABD776CBD2984B57E1CF4E0638C77915DD89249D3C0775B45CC159B44BD32F49A51A1E398763E35DBF5C6CCB100929C9B91047A1AB98A140E00F77F5076310C33179A8C80449591C4156C244EB8C8B3009328139C18F8C59E1961A2B91C840D552C2E4B3897265B16C28DE6ABB72D218EF713A1D179CEA38561663C9BF21B68166AAA45748316877A9A5BED6F5230D3015193AA5A9E1B34DC6576B57692B543FFF321B14879A24728DE3D6A297C06AC6CB28EC3482DA708ABAB28FA815272624AF6E26A879F65C6432812470C52DE01EDCE20681DB43A967069DC9BB34F9C540A21B8D7322A3675FEE059F5F655CFC480BA31255E899C48A7C25588303D67055434702ECCA24D31A9D69796DF408328912ADA084AB122C6AC53C3C349C105270C9AEAC73923614EA9129CE4C9FD8D78BD33045D8557AD3D0A698B34A7C073B93783670662F8558375647747905402A6AABD1698D1D3B430CE8B5EE8665771A34CA73B2DEE04497C997C9E74044230690354B7AF23BD94AA02CF599554391095C0D53F5C1DB19AC33189B2B9AA3C48BC4E09BCDC5029BD3B45A370C59045ABCBFB257DDF30085DA053056C17DD0B5DDC6494524875AC189E6C7A7CD483288F03ABC155BC2022EB427B7D5093F4616C124B7C29A0043181C7BDED83DE7592511E3617A75652D4568D7C7B3AB2B7464C514CE6CCF54FA8D73E61834E534966620DC59196AB44B736151A27C02E065A000611542FC296A69A24989331EF980F708142D7274EA863669A52039B59D48B90BCC75CE4B434F5751CEF621CF3A29873C003A57276128E70BB4AA5DE581834946741A8134890491D37B6051959739FA8EB81C6947141704683124136C1C382760E13F00C59AB5BCBCEF98B973831B91BA87FEC02216619F012859FAA6B01B1649786B626348182398226CF794095681D1C25800B18BF33CC71123898AD2AEE46905A8118916BA8651328A051697F8041667789C874394E96A0EFCDA8998D420684217952496AE9117C6C618513C147148979F5C8BFEF8C7CA1836430C3CFB66B17CBCA63ED1A2157961CEE600617157AAD986B5021F4F69C3BEE6AE181A076C3CABF076903BD59814352F4EE2C04A138AE0EB018A2193CED58981CAA3BB032317499E6EC4BC5CFAB8B389467EF295DBE7305BD1CD099364D7596B1801008ED734D7775C5606AF0F1A2978733DD7F55556DBC5FBAACA5A95BBC287B6D3A43AA9B78AD10A025F46AF233512B126230CF928FAC14D753160BAD961BDCC4D5E1B4EDD241609A0ADC6B3C6CC9660E5371D6C1655B4465F16D535ADCC54F8376371B758CACB81D84A7B3E6B8754B430C0753982A89D5CA8B2F4244AABE0BF05F75ED0B092F332AA83808F897BA21906AF25E68A88B61A357A10ECE1977199203E465EF9BC020E145F6421ABD11B18AB198549B67B4F0C11FD7B001E43731F2383F62AB90ADB3E13197DB7279020D212105236FBD8746722A99606B522C69648543F9E65558162235CECA379905100A2B98F32824BA288AA3CB7DC1734BD49C0769CC5A44483E0317DC62961471B195483683F774243E689FF504C02EC73E04B5731C49D0853494ADCCD6608A575388D245A312A1A38F1F9A17D26073EB3B6FE41175F362DFC697CE5D2CDA6B0145A739E7879C17E277DE2750733C9B539A915585C237CBB66CD4B1AFA425AC5F22F06724EA5783B579331928B57A9FC407C56541117C8665AAA2DF1AD0DD20D6A2911FAF73C9E653D6BAA0EE73720DBFCA1F5BA6A1DB99E0F87955FB85A253105156A2B9FD3C35C8AB458023CE3D381132B488C122BEAF1B740A526513B31B63CCA1CA8389F9A26E22C3FF1D50B42E3C71CFBC4465745DCD28B3811BB29E52558735145EC799614926F5A55D57C640F673E4FB176E8F56F73ABA60E60A4CF464373F5104416C6CEB386B4518C7D154B86E58A04B2337F1AB43660B312F0C905BC776461A7A463B8E40C03739A6B5FD196655871ADB3C82AD10FB2B2B538E61E1B664FBAF761F09B4D5E358B518088B3206E1295BFD0461A2FF8553B40CB92E36F0F928AF9FC7EF54C358D88280697AC3D5548029C3FAF882AE2DA732E0C47934B9C98232C40B84A344421E708226CA6524C062302765BF4D593E2D75D3A783F1DD7328767315DDA868E685EABC18FDAEC2CA8B037FDC3607629CC3ECC8E848C771B94C6A20A28E3003778BA68B923B711060BB6152554707D7E4C135AE8663D87643EC4921C6A5C20AC69E67B0B795A6FEBE794FA86B13866697B15306F667AB867C1F2EBBF3CC63C5E7B03189ABF9B4A91EB782FED97BC3A6314D0CCB528B313D165B2910859DE867D7D6290BBC85185B0201561AF34B9656A00B2EC32323B26A04888786F81007362814BCC82862A7280A5CEE73A330E6C2E01FC9AFE2741B12166949532C884CE8BF2281AA4B860756463BB49BD1524B8CCC6ECB6051ADA819865B8BBE1BB01141B77FA3FF5713F95BAAC10866303939C07483B6BFC500D61B7AD494382C643E87508E410C30FE96B37960AD4E707421944B13B31D6686745C52EF6CA4FFF3074F19C1695038367B1218E8B08D8E6180870B0FE5B5511E3B4641B6FA44156C561AA2AA9A1E163AACF73C24D84BB764004B3B329DDCB0F15716E17C51C6C432BA1407C0D063B0CF2C073763A790CD0312ABE6D26B0D75390492A88772763FCF67E1BF28E1A01C0A5714BCC685570D34627CA5896DBA36A6642C507680EC744CCDBACE6835D052A42E2379A5E80ACCA643CC06B62F3E5CECEB4708C3AC4BF88AF58C7CF37F43D2797635BB985F052450875A8997C335AE85D5B790377301F5A094A5B43B515206067E36FE51AB9AF296583D47450A34A302844B0526A4EF891D01C287602453126557A876C583C2A06561A88F9651E39929D0B43FCCBA48595925C01ADC0677200C39C64E44505AA58A9B5C88311C094DC3AA5314F167247B501798C4A0D5D9A04B77C6552369542E96172573E727890FA3B2E3551286113221FE92F81C481C125BFA7A6199EF8C0EEAA0A5B8973C9A33807A464FD4A50EB294741C5A8FD998171872C0FD44EC86112E19A707DEC768F7245DD2A6F60A554490947E5152DC3EB9D9E7151FF7188127B5313757431D3A41C673E203C7E8E9963D0AB1276B5C1114C38EC8CC0BA0A94918CBCCDCC7DC5366704415CD2AB9A7FE55ED49498B8B7105FB312F4A153E394A019749A23DCC180236468A47D96D47BE66A0CDFD16A2DD15AEF826041192B8028B1EA782FBF0A2CD5FAB19011B219099F8E87C74CC69841F4A927E181E98AC6B3DB7846EC38C0BA8AA9F5", + "0BA7A423A474060EF165299B12786BC8C05A384EF129B0F6C06C1047E582C02A54AA8713422BB6B9A6A4195FE6843D7C639916943B5793107CB8E63365DAB357CC02A9F1B33E8DA29F25F9839D862285864BA790BF965292470965E0A9C1D1F65B72139908D791A4D89E489A983279A703A0C34222786E123B45C793C925B1A146C006F15FB4A1C85E181F8B1C6983E1A1D7210C12091D83439AC8A15D965A386BE47145BB946162CB8869B359654121092D81947CCB5717E805478A7C0EA924692B361CCB730F3180C8F79041F8D366757528B0828B7FF9531C76690C37CD8072CCB1C36A195A84197A8797446273D686AEA96FEFC153F1710D98229ABF35B6E6127F2E5A5C9E88A33A85A1006A1383988E3C72692038C2A713BDFB266F22A4657548A91554C54A948E189A62590A3F0362C1F84954408BA3C9284442B59C1A4904128C0BBB50B2E34C98B819A1D6793DE75697CD814EE162AE3DACC0D50BADE8B835C3F27126731D2721AB61802F544967DF987B5B0B02EFBC95847A5F06113737E55CA4DB20C4400580B5C241016B50DB710D7555D8F67CCA13B2D86103D3870D5713B217D03B3984334A6CA272D43911EC23DB3B5C15139EFCD510A95C96D68A70D2988ADBD048122678AC8A051282BB4FB47D6D5819A3A9866571CF53B78ED80A76FFECC971B221BFB917BC69018DC0177468357292495D98A022634EA7B0B1F517734EE40D0E927919221CE9EABFA05596A801A342B87267AC9047129995630271C1C2F02A4D1AF2217B65C05609B8745306B6A90F86EB48CB0A4777065C449F94385651C3B4C0503726CAFA118167110E848FBED995526B458D362061A174841A59DB1202EB2E3744BB36B9C5A229A33CF9EEAFCA4B3D02D155D870B6BF23DA505EA48A79EB504EEADDF7D19D736F39A46C837F2A0C2BF3FB876ED8E6BF\nencap_coins = 06430DD2CFEA620F387E8CF12A48DC32E25B9EACB9468C42057B01A3CD76AA80\nct = B75552950A026F737D596B341964F43603CBBEBE57443AC0B00BAC786F1528F53D2CC5733B1F2615D528F44BBFDE602C757480CE10286EB01517CF1BB2C887983351DB25FB834587B0AF9F9AFF02E72762AEA47B0D228FB5F7892AFB431EB0942278E57C8267F04DBC0F3561AB2A06AFB659F4D4B9FAB87934F0B81AF2B05DBAD3F3FA09D0439429F23E472F771673DB28508F2421275B1E6F8A586402D2F6F00DE271E0020F324F52747211E9EFF866DC01E74A092BC2CAEFE53937351DD0751C44BECFCA8902472204DDABAEE33FEAB383A9523183494FEF9BDEC10A129E23AFDE2448593342DF38CCDD3F247AF1681F2E301DAF67B4C6E808CC5251F9BF556BEA54190F77735B0C299CD4A08642F6AD54F34BE40399DB74376112586A61C0AC0B66E7E16F23329F05A17369DC0844D011D79ECCEBA1C0E13439C77884EF72F3CFCE713ACFF4624C2A0B71B54C14711494C8475CFA2118EC6A1EC76AAF942F825A533EE6DD373380CF014E10DB25525DEDA9A8E5651027F415E0E842F64C6C7CC656D88C5CBA0361DB7BD5E731B60D8C3FE14B2F18755695D333FFC6A73CFCD3D2305A6501CD7AE25FBFC48C0BDFC3C1A7CEEE40D2F6A9DAC07B74129DF6E1AA3EF5E26C91AD080DCF6FB7C5DBF946EF614682CC7EBCC08FC5E85091C479C67ABFDB8571E866570328728890436D5A3EE70665B9EB589E14C4BAF77259B7396209FC25DB89A50F32E8190FC3C549044099240D1C697EDA8D3C54092E9D229292078DD952B40AA86E8738D44E4A22C60C8767084CE553B5A04713C57CFA580A20E8CB9C7485EA8BFFFE4F216919DAF7F02928F65D14A2F7F55ED4CFE9F948321B087C3FB91AEF6417C7EDB06D5F20E38B629E17B7703E0C33B388F8B32956DDF3161D8923FFE0136E40131848E1D435A6C054379CD0C5C2422B576B8524F9845FEDBD089F5ED4290CBD64AE82A21FDD3ED26870988AD7AA559DDE882848824D359641507B83D7E198A837F676E8A9D6B59BDE14811F3FDE1B752BA4C897085F5A81333E6194E155F89B5F1FF4378072F68CC6524207114B5690605A32EB48B70CACB1AB2370E6F69C8E5C31B13C01F870755F574069C1B39F48492EA25358B58EEB27A65EA1DECEA5FBC14A51253238CAE0A105BC9ABF83D5C10C4686787039E8F302AEBCC6A5C1782CD417045871412265325BFAA09E5189D98445D7759B8DC45EC361760748481C81542BD158EB0652B6634C462D8358D096D92ED65135FB29101615D42E98AFBCF158A30CBFD08DC11EFE8E0507E79248B99C04656C58FA7EBBFCA91A5468F37B1CC08814AEEE0B2DBBFF4522FE430A59E9809885D3B825856A1C54476781CECBD452812C88D1C541F15F247BC13E2F7483B56F1B7F5696447833991628A1C1029B89B6FC4B253E26D523BDBE1616E4E45278D56FBB565BD10AD88625A14CCB7F87CB5513482DEF4377731DD816FF77E9F150090155B2276E5CF3C6755DCF6B67E733EB90F012774202219D067DCD43E5E38EE4064F3F0E208E8DADFC467216705DDA530EAFD98916B6BDB0721E01203E7AA164FFA8EE0EB7BCFC39D00EB94BA36BD48CE8A08D8C70AEC99BC7288E01726AD50B6AC9084FD602422D4DCFEF47B359E06BB13CFBB9BD51384128BA54943E532E79EC1B72244B8676D4019DEB1BC055104716189D5298F0E1851667AA3D09AF905BBAF7BFBF8FB55AD9F664F2026ED29F05203BE81010BA82C5D7E706E7C6BCBD73E739CFC04F235A84BA1158120F745C749A0DDA637366DF8A9707D52631B16065553C926FC310826D6B811F1B2DFFC908A86B5E225D5EBF396ECCB76AF16E58FE2E7DFC473734927F27B6BED5444BA0E75BF5F5E4AB5098055CF0A8D93FB67BE799D5A9F6BD42FEFD9B00581CB60E64AFFF245814848A62B8B2E0C1157CBFC5DFBFC41BD796112F18BBDC737727EE8CDEAA8ED871F1D4AF5134B3B47EE935E348FC206215B64E0C62F1FA43FDC48F823059353FBB90BACAEC9A59D829BD90028F78FF7866AB40DA24AE1C9E27DB06470CC1C59977577FF5B9066CC98F42FD526F51414435EEEF2E2B66B0910FD8A576267093C155268E10BA8477AF0C2C20D5728165FB4A2DEED4E978F5A46137742ACFD0486A3132CB33451ECFAE5D63416CB6CFE8963A28C39774223E04B4FC4CE3097FBCB6FC1C63DA96C831B57F124561D33C8CEBFD\nss = 028254FC9D35D9DE5FC4006DEF745CCEC1071C39C967B4E2D18AAC9679FDFBEA\n\ncount = 39\nkeypair_coins = 3C815E57E9233E975FA1630208AAB206B71AE0DB37A7A8789AC683D9F9B2D2985532C666D12D7F321AA87F8A1F475B161BF3812EFA99269925F5F29B1E030B5D\npk = CC40BEE26AC378D8B540992EED54B23676827AEB4BD44857C2C21D55D72D0DB795B0B6C8BC9077AEB59B71588ABFE926F7CA57D305141012A41EB063F5281018563EAB7252C34AA832A4BC27DACFFB008E6D255CD547A0EBAB65F410035550297C50B1A637CDEF9172B6D4AB96AC598AD7622C34C3B98890C77CB9A5A08E3411A235DA946C92A81D7BC57998175531B203E21E3CC9CDA7D4BDB46C517C08A1DBB5BEE25CBDF2991DEF527FE6C838D3E1221BB7A48CF7A247895DC77328A07B8C342C731D24CA8A83B9CDD7A47025467AA81BBB0878AE5C8E6FC0ADE2F88C68A328FA132A4B5A0298AC19F46098A451870993015360093BD7B0EBE3929A028333312361E07A7DAC8C90B50019E73893F78D097028FC5714362C41DD42C4DD71CFBEA58E5AA96D82B03F5EF65D572957EDE919E094A70AEAB998A55AE4B2988890C88FFA1095273B132550068337586284976A30B0C538474A25EC076960D1BEE0620A2A875FC53054D28042674B1F51B7877629A1FA815E2EF578AFE936DFE5C7CFE6472AE7C264809A3A1285F6A156448246E4E832C75439CEF074F62BB4AB5A4BEBF24A129C046B0CB215552D126C32EA74088A2A7DA6BCBC380354A00642DDF9810CA8C0DF8296C55C057DF32A4AA14F45192846E31C38919185E2C77CFA199B2003B80A5D6A867CC6764FA4B907646CB923E39BFF6A14F335392363890CF66A10026E7DE62D09DAA31A50A5458515DEE1AC7E092DC19CA6FF506DDDF67AEB26BA4D720A92310FB942581F69024BA975598C97C41A6112C812AA6A21258060BADB32DDE0A5EAAA4FEC6983776B1348C06A7877BB1B44223CD67AA088B6E0B593EEEBBF320A76A95999F2C37DA487A277625298F403114A018B8B78AF433A15A69DE14158657BA05855BCE24402243746DE13728B4C4359409A282B994F3053777A72E6C30686EB0E4746B88AB57FC9F2558A1A0820C59C2CFC801B97B0206833D4C389E415330AB87FF870C90F86218C3B2C058B97B1E595F87703F6D34118965CC88423E3BB4E182210C225902FE3229E4559AE8A231B34395989C732F54BE1B90B3F846ADCFB5A36089F1B057C70931921FB36207966666413C8998C509A6268A6BCC1271EAD333060D9753820A0F1786FAF467D9F645C45FA9CC8BA5D9E09629B47A040AB2773976EA3E6876590C152C897D59543FB576E6BA22F9B312995F9969C91CB9098AA2046AC4BC69A38AB5C7A206EED57514DE7821E64AA6626299C99B2A7299DFE933BA386A19EE01CD7A24DB661356A19A68F68018A6847F56C0247346E294158C36C3DA5E51AF8604C3FF26014648F310977CCF8BFB36316BE8321C71A4E1745237F964B5DF9B67F8699454A810FAC4FC83493AA2A7E4AF61728759A12A769FB751D0D2125413CC0D4E0B5AABBB63B8C8AC5D385A95094E0650D16009DA134C36A7C8A59BA90260B9AF69542ADD7A72922C8DBD2B9E1DCBF39E6B19A4815D1544D31547F9C336BAA44C835805C1A03610C0CA2B33BC44557583DA206CCDB50F1C7309DE949996AC72FD9803EC5BB7A151FD8F0B4E78008E35C102A33A9412B40E4B7A247864277BAC3C1409006A75596D0CEBC52621E91A7AF791672E29861533E765257BEB06FABE44C20F0A44A288C42D22851433C2BE639404ABA3E6B356C4671906A375894954849431F71717DBC1A26B19258DB8096138CF83894182C88C6D9A56D718F489040667184AD175CA0B02ECDB1B5FD0A2B785197BC696A68471C9B486D7596657318BFD1F46AA29414C436C0F69252CE96BC09837CB4325903BB15D81B3F5C62CBB8DBACED7421B4361A8C196601B002F79877158C97BBC80072ECBC8B69557A4C60C8E90D23427DC7BA806BA6234189BD874C30EC696710C53540F74BF61B2A777606721952F930358B55C183DB4F1EA17A761A0CFA14C55ED47CFBA737BC75725C3471AA8B563050BD424512DF66B0684948D068B94765ADACDC5A24E18035C5164C54CA64171143A023A7A07AD8B5CE3AA095C7307EADD6499D89CCEFFB00F635334A3C91785009FA6A93C1211854882E99B7A32306BCF053551BF99F99C8A458106A55EC98A0C06C7C58583ED757956A89533C6C7B2867B8D3A5FEF526E13ABE818919FB03A7F9F0CFA9025FBCF4677FD32A677F68DABFA371062D8B8CE9DFE0D90BF06044AC3A840CEB626B16E134\nsk = 2C021F19322A908456F1677D31DC8A4A2A734A2571D19C421C47AECC507C3C53A931113290B693AFD1B7FFECA87CC90B0419C48BC4359D64146D9932BEEC78766408F59216C692228FE59B768C92F4D5A3CCFA6A35599DA2695766D754C1F682AB13C8966997F37A74985551C36828224C177D3A3ADE3C2C20A907C830", + "BC32906DF70B021B47C38C606EF951ACF7C1512AC15FC0D761C9057A7DB1AC6C56198F9A8ED2F67A0F159A5EE6612109254D57745736CC3CDB634F5658FB684D805888FEA8582135BD4890343A545E4E0A6F0C130B8539125AB06358F8BCC0A4B44A7A4903D018C960CA45779BB564A30CF1B340B4C317CB77DA50BF899C10B4676F3C295B90E93C2540A9E17C3BDE560F351C81C58B545306449585718E9199A6302E3B0CA1E737C07A4B7E21EC154604590D415F4B82778778905360CC2E49BE4B08C94A744995F18959D4492F0B7A3F53A98F9A8D914863B9583D866712FE583FD2677E8A3B8BA5341902178824F4C41BA21CBF7A4B666ACB413C31CFA744B9A5405EFC5B53A2C64481270484134753C1B0407E23B95850A8C026843643E42B329BCBB7422DF5CBB968B04F39210A4EC959E1B5C9CB32A180588B9BAA690F7459B1282D9E9200BD1A0E910A3EFD948C3BD0AF04D866EDC61C866B48D7AA22E6FB5025C6892C66116E271B998B888E0481ABDA592C8B36F7464704FC22C51B5BA995928FE03594A8073AD790798AA304579822255E61D11557092BC9B5BD4C94068C60B2940C180831C5167487B7538C9AB47DC268215C8C7F324563D3973FA73BBAF07C771B15070D880478D2693535425FCCAE0F8272CD7224F3795A70241D480425E4A74922309906E1C11C5107E9F34FAC3536354100F911234D55769B763CF2408B9812AA6B7C2601161953CABF0733CD3AF819F5158A136621FB159DB3DC6C3F3220ADB8ACAA8CCCB7CB2EE583B9909C903FF43612D178C568AA7E9217E345CF4DAA9AAF17CCA1B5A4A5A73CE9B0581E73BCC019BCE2B68C8C273DFE588BA0861C5A73A6EDD9BBDD66935AF04E5EA81A55D62C9A8C51B3E6A402587FF4F837C16380AEF5640F333DB08A6CDDB425CB4189ED773D8ADB91E2708F12B78A0105BFFEE30873C1B6D5D5469F6464705741EC4310A8185A1553372F6091C769109F19527E95A6802C2A49127077B21126E7531A5941298BAE199309CBE00D97513BDE1AC82292CA1A76957D20A306932F83994A00F21D89519E16138F0477667F338A67450E1248A682142A79D9AB6B58B88754362A32AF3402D062A554CA8A40DA0481BA721A9B023DA71987B744C6B9AB5E80830F8B7200241007F0EB72AE3694EE92814DF4B1DB269F4404CD0C77A844D2B751F5A0BD1CB93D61A628098D0EEBC941827F77139831575B98E47B7DC3676D887B56D0AD96BCAA1F280049776339CB3FEF6489DBD26205530CB08C53FB0839B49909864AB06B2C3FE15957DDA96CCDA90C51904DF02C6A1E5846F892A1683838B9760AB900664A1A039B6A1C75F9C4B05340EDE9881F48869DC881DA0191E24BB5AEC448EA052E57E69EDF254575FCA87A1B50E6D39520630688B04328A70CA1A871FFBCB0A8823DFD4747DC859B3472CFA9E02EC7F2C5B3B9A08E4534A971CA46F7CD93547ED32C42DFE064577A5291DB057DF43D59741DA0A12AD930A14319A0D7516A26B5CDF32CA566A6CFB1099B2DA1A37B487CA950199F9212D14C83064742AE46985C398749F392046BBF13638B19B716E6FB94C8D5331B14BFDBC2BE35699627641ABE618880D8947EF059696185DE186069CB9309552E256987B4F071F79A9687D85FC61292C19548C3272CC8E34BBA918EEEA5181A52B68344BA8656409F00426D28869E397F077A675CC169A17264634A0B2341B758A37D54F1C1FE154893A1560A7B10618094F8C060330CB03F978CF765133AA4C9482B0CC169802A8128B108B7DDC5718ED6377A6A11922B72D6F3BAB633B3C820A42AE2825A43093F48BB73A0432C56B56565AAEF028C2228BE23618A6FB8B9D121700F8B25B79578BACC1D3D7A1EF5D16355A07DCEDA8A5B358F20641113AB967F75C3B2DC7F4C1C81F18B35F8E573D8039466F210B89BAA4752AF1B45B2F71B5642ECA69F50789FB153C7F9B62DC29440B36ECC40BEE26AC378D8B540992EED54B23676827AEB4BD44857C2C21D55D72D0DB795B0B6C8BC9077AEB59B71588ABFE926F7CA57D305141012A41EB063F5281018563EAB7252C34AA832A4BC27DACFFB008E6D255CD547A0EBAB65F410035550297C50B1A637CDEF9172B6D4AB96AC598AD7622C34C3B98890C77CB9A5A08E3411A235DA946C92A81D7BC57998175531B203E21E3CC9CDA7D4BDB46C517C08A1DBB5BEE25CBDF2991DEF527FE6C838D3E1221BB7A48CF7A247895DC77328A07B8C342C731D24CA8A83B9CDD7A47025467AA81BBB0878AE5C8E6FC0ADE2F88C68A328FA132A4B5A0298AC19F46098A451870993015360093BD7B0EBE3929A028333312361E07A7DAC8C90B50019E73893F78D097028FC5714362C41DD42C4DD71CFBEA58E5AA96D82B03F5EF65D572957EDE919E094A70AEAB998A55AE4B2988890C88FFA1095273B132550068337586284976A30B0C538474A25EC076960D1BEE0620A2A875FC53054D28042674B1F51B7877629A1FA815E2EF578AFE936DFE5C7CFE6472AE7C264809A3A1285F6A156448246E4E832C75439CEF074F62BB4AB5A4BEBF24A129C046B0CB215552D126C32EA74088A2A7DA6BCBC380354A00642DDF9810CA8C0DF8296C55C057DF32A4AA14F45192846E31C38919185E2C77CFA199B2003B80A5D6A867CC6764FA4B907646CB923E39BFF6A14F335392363890CF66A10026E7DE62D09DAA31A50A5458515DEE1AC7E092DC19CA6FF506DDDF67AEB26BA4D720A92310FB942581F69024BA975598C97C41A6112C812AA6A21258060BADB32DDE0A5EAAA4FEC6983776B1348C06A7877BB1B44223CD67AA088B6E0B593EEEBBF320A76A95999F2C37DA487A277625298F403114A018B8B78AF433A15A69DE14158657BA05855BCE24402243746DE13728B4C4359409A282B994F3053777A72E6C30686EB0E4746B88AB57FC9F2558A1A0820C59C2CFC801B97B0206833D4C389E415330AB87FF870C90F86218C3B2C058B97B1E595F87703F6D34118965CC88423E3BB4E182210C225902FE3229E4559AE8A231B34395989C732F54BE1B90B3F846ADCFB5A36089F1B057C70931921FB36207966666413C8998C509A6268A6BCC1271EAD333060D9753820A0F1786FAF467D9F645C45FA9CC8BA5D9E09629B47A040AB2773976EA3E6876590C152C897D59543FB576E6BA22F9B312995F9969C91CB9098AA2046AC4BC69A38AB5C7A206EED57514DE7821E64AA6626299C99B2A7299DFE933BA386A19EE01CD7A24DB661356A19A68F68018A6847F56C0247346E294158C36C3DA5E51AF8604C3FF26014648F310977CCF8BFB36316BE8321C71A4E1745237F964B5DF9B67F8699454A810FAC4FC83493AA2A7E4AF61728759A12A769FB751D0D2125413CC0D4E0B5AABBB63B8C8AC5D385A95094E0650D16009DA134C36A7C8A59BA90260B9AF69542ADD7A72922C8DBD2B9E1DCBF39E6B19A4815D1544D31547F9C336BAA44C835805C1A03610C0CA2B33BC44557583DA206CCDB50F1C7309DE949996AC72FD9803EC5BB7A151FD8F0B4E78008E35C102A33A9412B40E4B7A247864277BAC3C1409006A75596D0CEBC52621E91A7AF791672E29861533E765257BEB06FABE44C20F0A44A288C42D22851433C2BE639404ABA3E6B356C4671906A375894954849431F71717DBC1A26B19258DB8096138CF83894182C88C6D9A56D718F489040667184AD175CA0B02ECDB1B5FD0A2B785197BC696A68471C9B486D7596657318BFD1F46AA29414C436C0F69252CE96BC09837CB4325903BB15D81B3F5C62CBB8DBACED7421B4361A8C196601B002F79877158C97BBC80072ECBC8B69557A4C60C8E90D23427DC7BA806BA6234189BD874C30EC696710C53540F74BF61B2A777606721952F930358B55C183DB4F1EA17A761A0CFA14C55ED47CFBA737BC75725C3471AA8B563050BD424512DF66B0684948D068B94765ADACDC5A24E18035C5164C54CA64171143A023A7A07AD8B5CE3AA095C7307EADD6499D89CCEFFB00F635334A3C91785009FA6A93C1211854882E99B7A32306BCF053551BF99F99C8A458106A55EC98A0C06C7C58583ED757956A89533C6C7B2867B8D3A5FEF526E13ABE818919FB03A7F9F0CFA9025FBCF4677FD32A677F68DABFA371062D8B8CE9DFE0D90BF06044AC3A840CEB626B16E134F7243D71BCBB46B9A423431B3B30947EDA5FD81B526CCE79A36730D8EE1BE42C5532C666D12D7F321AA87F8A1F475B161BF3812EFA99269925F5F29B1E030B5D\nencap_coins = 45443194C6681FAEB9E4CD954543BDB55DC9FC5478555DBABAFF127CFDD85438\nct = D313CD4AF10859BDEEBA24C6251C70DE801F2271A1CA1B23D7A64C3351052C4CDF3B219AA1942F77D531D920DC2052135787E3AC4AEC26A03CE5DAFD94E6A059E84424F87428C23842A49A3FEF3204BA6EDFCE2B87F4D0EB57523C41E74B8FEDF33F9118323D01F28AE365C23BB2693DAFE831C20C8DA1D15F1DB9BC5981D5418218EA0A7197E29C59C01BC953A5A402B83C80C0D6C44160B642F59AF7AE5963E127618280B9F83F4DDF9408886276B766066BF58CF5DEFC10B7832B4E7DC1726C5C1105A1387AA8621BF543952F7D70AE4C29D7C7348EB14FF2DD0DCFFD40D25DF8857559BD72C2F23C26DD804BEAAED3BF1B95674CAA2490CD4777530CC8262CDD635637B2C8FD223B3BF6A567E12EA63C12569C775D4894220E27DD95CD2C8C9551DB1870D0ABDC05E3BD202ABA5D46A7BFFCB7BD4C3848BB16208FBC8AA0B5E19898CFBCD63DA7092ED82986DBE013E114B71E1E9C0701E847EC532BA26EEB95A110B95BD98C80236C413A632F5A526D1B5C5FA33118FD3D009D1221BBF4277CB0863738D6C2D4055B6E39A9C8F6A43DC5892EDEC5ED3F7A99F44CE8B66B428516FD09B91685F541BF82A1EB08AB552F04E886C6BD9CF0D7E6B32B08F4405343B97F59D7BE6DD41F358132033DE71878E6B2D0CA65206909061BBD9B2D26C15B4D6A625F6448BF8DD0FE15B0176175AE15473EB15EAAFAB334EEC9E148241E3312473F6441F2CB45B05490529FC680D11D26C5B0BAB29E4AEC15165ED2EC67FE8DE9EAEA0DBC0A31A8EF18898FAD81DE6B2A32C054A7BBD84E36C39F9E4EB6CFEE587684977A492787EB3BF261FD4B080D2E750447EF44F03957312D319FC214FFDA1EAD796FA419F9C2B27E06EB12F8EEC336ED633F0047505D62557AA721A2B8031098B631698420CD3768E7F24F41D69B3A32C7568227DA72D415C71B50FF0594DBB3B23216910E1F95A7335E31D70326F35E18DA256B843A882D6B7E67797C98EA9D20FBA2892A21DFFDF60F400B1E781B533BC41BC88A85A215D99EE717CF3FDA7A007663EBA510F3401CB877D40AD8D13102DBD56503278D2558124E391FA366B3EAD518EFEDCEFDA15D905240A72FA577E347550981F428FA258C6496BD3C214A3AFC1E6B5078BE0B3B82A2BBCF53BEA49C981213D4415FC51E81D51DC52E20CB4C7669ACACF16255F5B5D4FEF2785E567DCDF0C378BD0244B88BB447E772AD38766E5D07DE1B814413571E0124CFA34FBD5ED735E9CA0FA421C0DCF3DDFA53FC07DB1E17525A0DEAE0C4D6638A464D6437405FB35A0A8E048655FB5AF6F3DFF767E6BC20039E09367D6030BF7156822523FD3E5499FEF75D84B4D2388D4B6E2661AEE1EF9E5220B7D80DD4F85CB1F2B82B0F788DF80130C0E29251C9969BDB82223085B593B1D456CDF8B7194", + "AF034EE31AFA74EEC891394F0EB141CEED48C04093DA6E398BDFF88D611F1B81879D6148A026CF4849FDC42C8863F9CF084A16F069028F041BB0C413DFCA1435B6B68608C27FCB046B5AC6947A567F86312051AF16FD1A47AE79BE6FD99F47F438C8CEB0ECD38DD4991F68364A3551D54C150DACBE55E7D10E3B9DCD5EF1BE8248FAD68ABF948EF32882B20A6810250153BE70CCB4C3C4B137D739F083AAE5B61EA3A05C2EEF482F2FA481340850B75D26F29B694741D1EEF36F9416A063D1251EAF075E5057B3536AF622D51D3B002E9FFEE67F7B1FFF34E651E532FEC4E165726709FE2693B0E8F2FDADBCBD1A8FC108DFBF253BAC047DE6387AA716ECB27980A3AFD97E3707B656692CE13B1FB43347932699DB448ADA8D89E39FD96B39243675F56B36854F725F459C469136422770009743EBD5A7C460482C39CF156A5A6C29ABBEC9259959224F36C0C274250FB5F8B8A9939EE7C0BC911C45759109D8523DD7B3D8FAC7BE18B8D791B41A89964637F37BBC731A7BD59E5D9D350F7160D7CA61D4CEF931AC2192D12784B3EA20C2C90AF351D7AF68C3CE9D8490B0C4503E07C17EC3D9841B49372CDAD73270016FCD420327B6ABDDE1865C6A494692C9761A9841E7841A267D593F18B80DC13D33D5E62EE5ECB16C459020FED6361D94E5A2D2B9F0C9DACC328E3B309994E4238A55C443C992522EBE6AB7CFF76C7C65667825C1E150FCE75FDC019F7265E5B2B49BD7ABFAF773B49B0B676489AC81F5ADE62CC39C916C56145CE3A9715\nss = 61010880E699F88A301E7B69F2E7ABEA796F3B48AA178379C7512313C3A5C972\n\ncount = 40\nkeypair_coins = 588760826DCFBD36D9ABE6AE44A669BB3EBBA6A218EAB69E30F18A3BD536576E173DBCD4922B8FA921DC24240B2173C2E65A839357F8E4A93F51E7DAED4C8C00\npk = 5993B3DC543A4939519F942B982AA75743861387558FD01F3066AF48080751346618E25C2501979F70CBD722528C713E9BF1B891043DE54424F7022E45CC287B7A8138C842F1BCBAD18795A382439C5C470A91309FCB8149039D0435B9B80A0773778111134C104CC5E7BBC455FC0F4D157F2AFB40972C41FE85622825B5AC48C0E357CC2D953140015BEF5CAE1CD2BF7519398B610C9B191FA34767EE67880FD9AB6D5782350B176D3A7C318714F8208F71C80A1B189BF10827B763ACF096B49CC5C0B2A21C268A6C69500CE889785825438890A6E7E399EDE411D83A53BBF81FC0B0B472692DB25B69396337B2724F1425AEE7296FB29A399A16A13CE748995806CC5C64AC87783AF77BC05329BA849A086304EBAB9EDFC5435B55503C2A6F9B996D75359E963077F4A88EE2E259A6B97635A3BC8670B9FBB94AF2FA3046B51BEE299BAE327F1519CA170A1AA443CA323C1D336952A3D2342D481B10B4752E34C2F03866EE8C8508A77A4721C387054CD241BD54B8BE0BBA7BE18616D3B649A452123E347F8F52C0C5BA2D9FE7560AD88F2BB77622212DFF7474B2C250B0341D9CE6AE52DCBAC5D3B99807AF81744498031477B6178D4552D3E813483C3C6C4A73DD111E7874B7659B29DB53946538CF3B51BD53D63DCA591D16043469310C512CABC763B208A19099FBA9F82B445C05BDDEA259A0156940E3099D97928C8079BB7846B566B4770C904B75B430151B3198BCCE1830B9B8CD5381A1B255A880E49865297A801291F491201684C658D288EC63B8E6D423C4C9091F9552926253876629266969ACD09A8C896DDAC6BEE964832BC0952B98A95EE54422DA547AD9174503093835C74693047D782829F06327D11B6A646AE2E8703C3A6BFE9516E71915E7294A2D5A4EC8406792B55692C5591AF95D3E7376F6CCC58CAA2FF787A126193175162E6A084159E957D85383A0502BBBE091DA6A62A7EC4441453306F74C40C483ABE092A36A5876A60E1893C8C4FB3DBC946D781873D49CBAD7BA431EE820F6E0246B5548F045AD65B0670C341D3EDC40F331B59740AB0D167E02FA36CB23B10467084A63B9F1FACABC9C86E6511F8CC6928DE03913001927EC47E6B001264C9629343E10F945E4F9065E3985E8B4B3536B1AAAC91A02A7B701C961A939388F57B310C4652D7649D604A0A7006686C5C0F467486E5248DC24BE13F411FD524A6EFB276BD75875D5CF7A18482DEA41B4579F168486C3D87545B415EC495F37185B6762B754194F3F415F82628ED9884B658465FFEC83F5213EC15264C454CB4CB46106C21BD8031D11FBCEB50B7D897AA771748CC2E5A23FE99FA91347FA90C642B5410C2C4382B0A498F479AA94011959328EEB48E8222C5CA82930F5A4D40A7460A827C756C28E99A88440B0CA206241F4472C06CA74D48A5F565B8A85803E214F9A6CC92AB2B80BD16C0C5725A9C7BFC6067109600D8142A8BF681EE32B3D2BCBA3EA21AEFE0655FBE06C0C0C6B303C6B2EFAA6E8E6B29FBB86CFD13C6E143D7B104EC625A6AB2C782BB88D4929CCF7528AEE89947ECC33E5187BDE373C21F2AD26252163A48BDFEB74841987E797048B506C8FA6C60F431294AB03AE304E1E64A1489A05976355F44B6BDBAC7B81D2B003729F9CEAB9190165677C81644A5820D8A158DA62CE19657E947170472E67D87FC5C526B2DB8FCA728EF881198FF809B80BBB3C1652FB9A51C42AA89CE96844721A9DA7274D52050B106C7505497629962B747E117C2970948FA1E6BBEF069CF4DA83314083F57455D9B031639202351BBC4631B080F936A1E017810632BCC19B41AC0FC7939D5BC6562B074EED4267B9F6A6D110AE51F2B6D9B39F46061031573C5A10C2F23B6879338889E05EFDD4424820CD98298B59DBB720A101E8E62887303D5EFB4EA99288199B54A3CAA85476876D969B2FFA0B72754E85D3979C17155D784E3ED0A2874CBB9890B4BCF6334C8855F7AC45159A18E4F29FF5D8A5E5F34142C01E3FC53A2D07CC7F6C582718C434C062383BB60D4C54DD07A06D2642C8CA4920D5B7FA723F6F2540EAAB1385EAA17B4339B8B3CD08F60E5727045FA947BEC4C6E766B850F86B80D2B559507137234CD9856B7310AEF4F50034EBBD5336C026530B5FF525C277590D2DBC2DDC739F6B876472EB12CE233CCD402DDEF61523FD6FEE69A88F34A34C\nsk = 47A7741316BE87861AEC518A9B38146B43AA54A98F47E242866B8D79F731D98C754B572A2A9170A7EB4B0D73B38D6665D1E43AF0B61AB95CB54879707805BD787913EE369D231C600B76949BF86366579AB62724CAA1BEABBB02FC945BF007CF57A225AFA67393CC58804A15016A12DFB90D5A52BE41F907B1F2C4FE93712F555B0AE896E85931020089642A23E4C38581D4C40A46AA8DDB3C26DB0E29FA5F7A12B6CA32CD2AB6B50327AD0DD8139AD83DCE676AB2DC0C2774C86A2C72A5FA2D4DCAB588A66D6551C040E91AE045698AC0A1DFB95048C545D08654C1B560384561AB07BD8C61182F99C79A2267C961AE66434321E8501D474AD84AA71286A948C5AD187232CF72576F167D63992F62D3423CE75577C2052EF84019404B0E1706BA704FE3D116A518293112B8B80708C094BDE829AC38E362A404BEB67026EA6782362035CAE099302C5660931CE31B93B665059633699EC44C28C2BD230B1942421F12388900081618BB29E315BEEAA090A06AC7FEDA567FD1A12D1A41EBA931C279ACDB875D9DDB7CD9A6ADBFB32239E843012A8CB91776775408316B056FBC42758772C1E53EC0344479C2791B837A6A34AA77710D35593A55E57572FA99711BBE5A83454BCA7990E834BA285A09AA11666CB2B2F39704904354687D0524888CF6461EF302139B042540138E322453619B3DD715B617230E08C4585478F9996798E9B47C712F82BA45857551EA4C79B4A0577938666403174E84585E684783D33F3B701420F66D48473FC6BB627B399E90697E760783A3E09D6531CC524568DEF8507F0437314488AF7376BF2A6BACF783B632197D8565F9456D04A8476DA8CD6C988D26A56D29479A2DBB85AFC18DC81A8611BC4ADAAAAA440471B530053ADB874DB67102B6A64FFCA8BF8487E18B2F7582B71FD78D85F819C24B892741A83E67585B6B1AE5AB6AD1F5CC02AB78D0ECBE01087F46AC9BFCA464A4B9CA817C3A1AF5CB0A6A3F1DD3A2EC06774E805E001B44C8194660A280D0D59BFEB35EBE9C943E626B98E488F8984275401BDC4959993345C38BC801B95D56BBB47A2B23F5F1223D5A0E2A827D4578948CFC5432627C9586275679202E3C970FCC980AF56757912080072A4AF234DD030EC481A6ED8030921691D6126839635C6B270497CA4A87D4BEF47CAC60752383712636752A4AA18AF13BB36EF445FE653628704E4DC2CADD62839F9842F9B2C264AB4FF648C59D15708F55AE4A396D5F4BC75D20603C03CDEC4252FACC579A0CBD1F64A734E8350F03ACEAA2734DE2B486F6B93C36AC11803E564070ABA97D2309078FB43768F98EF5D03B09FA10FFBB0BEB3B5FE01310065508100206A640B93DE87BD94A634907730E30800803B233B95D1CC7CCE49C08AB143734347F3459A5BE0230F9481D50B4B835A91736D6A7B351C8082A4D080967B43B0553835BF52943A380051F48C27823C5AA0B20B7B733DCB004B2A7819BEBA4B3FCB1F991789C2C57CA01B50523214AF309FDF421187492C411C14128744BF4A83599A30B86194473C2BC9222FB4BA34108689AA8065AA24FF3559A76F759768C81A8CC5AA2A6792F3033B2437B05068BED096475D9280BF34980B1C478681E53190EF7165DB8D7BE89E82411A5CF76795D545B69FEAA1A2065B7A5C00A50E6A0871393DD54AF62E9B858E3453D9A86BCCA62526837855324BA191F6C1914754CCFEE7CA3BE778FFED14646224D19AC50494A634392A7FAF6B502772820A61DE5BAB6BE04B7E2F2B8B05CCABB22CC4709A19CA96671B59F611350E4A5227503050FFA19C776B0BC26372049B8FE864E328798EC49C5E4128CB1498432061A5AF628EA5C8922845B07300C49E7A929F76232AC2AEF1CCE07D9C7E8BBCCE4F99F3B6B0B1912648784C69493C9E9201B8166C0725709BD56AF241834D278152B5A96CE480C9C31C9AF0A2711B58E8539B93037623DCB9561411D3C03C457F560B41CA23B2A7A8D66B1B686BA4566577A2A71448648AE3B988BD21829012D3CF3A18F4A596262A33579776B5A5B2C8A0E1A5C5E87C06CF9833C13269990719BEEB2A0EE333012B8C1ACB7321CCA98F086AA4DB73988CC49762CA541372566ABB0ED081CF6201B4EE8A17C45B8FF6046317648BEE9247B93B6013A405993B3DC543A4939519F942B982AA75743861387558FD01F3066AF48080751346618E25C2501979F70CBD722528C713E9BF1B891043DE54424F7022E45CC287B7A8138C842F1BCBAD18795A382439C5C470A91309FCB8149039D0435B9B80A0773778111134C104CC5E7BBC455FC0F4D157F2AFB40972C41FE85622825B5AC48C0E357CC2D953140015BEF5CAE1CD2BF7519398B610C9B191FA34767EE67880FD9AB6D5782350B176D3A7C318714F8208F71C80A1B189BF10827B763ACF096B49CC5C0B2A21C268A6C69500CE889785825438890A6E7E399EDE411D83A53BBF81FC0B0B472692DB25B69396337B2724F1425AEE7296FB29A399A16A13CE748995806CC5C64AC87783AF77BC05329BA849A086304EBAB9EDFC5435B55503C2A6F9B996D75359E963077F4A88EE2E259A6B97635A3BC8670B9FBB94A", + "F2FA3046B51BEE299BAE327F1519CA170A1AA443CA323C1D336952A3D2342D481B10B4752E34C2F03866EE8C8508A77A4721C387054CD241BD54B8BE0BBA7BE18616D3B649A452123E347F8F52C0C5BA2D9FE7560AD88F2BB77622212DFF7474B2C250B0341D9CE6AE52DCBAC5D3B99807AF81744498031477B6178D4552D3E813483C3C6C4A73DD111E7874B7659B29DB53946538CF3B51BD53D63DCA591D16043469310C512CABC763B208A19099FBA9F82B445C05BDDEA259A0156940E3099D97928C8079BB7846B566B4770C904B75B430151B3198BCCE1830B9B8CD5381A1B255A880E49865297A801291F491201684C658D288EC63B8E6D423C4C9091F9552926253876629266969ACD09A8C896DDAC6BEE964832BC0952B98A95EE54422DA547AD9174503093835C74693047D782829F06327D11B6A646AE2E8703C3A6BFE9516E71915E7294A2D5A4EC8406792B55692C5591AF95D3E7376F6CCC58CAA2FF787A126193175162E6A084159E957D85383A0502BBBE091DA6A62A7EC4441453306F74C40C483ABE092A36A5876A60E1893C8C4FB3DBC946D781873D49CBAD7BA431EE820F6E0246B5548F045AD65B0670C341D3EDC40F331B59740AB0D167E02FA36CB23B10467084A63B9F1FACABC9C86E6511F8CC6928DE03913001927EC47E6B001264C9629343E10F945E4F9065E3985E8B4B3536B1AAAC91A02A7B701C961A939388F57B310C4652D7649D604A0A7006686C5C0F467486E5248DC24BE13F411FD524A6EFB276BD75875D5CF7A18482DEA41B4579F168486C3D87545B415EC495F37185B6762B754194F3F415F82628ED9884B658465FFEC83F5213EC15264C454CB4CB46106C21BD8031D11FBCEB50B7D897AA771748CC2E5A23FE99FA91347FA90C642B5410C2C4382B0A498F479AA94011959328EEB48E8222C5CA82930F5A4D40A7460A827C756C28E99A88440B0CA206241F4472C06CA74D48A5F565B8A85803E214F9A6CC92AB2B80BD16C0C5725A9C7BFC6067109600D8142A8BF681EE32B3D2BCBA3EA21AEFE0655FBE06C0C0C6B303C6B2EFAA6E8E6B29FBB86CFD13C6E143D7B104EC625A6AB2C782BB88D4929CCF7528AEE89947ECC33E5187BDE373C21F2AD26252163A48BDFEB74841987E797048B506C8FA6C60F431294AB03AE304E1E64A1489A05976355F44B6BDBAC7B81D2B003729F9CEAB9190165677C81644A5820D8A158DA62CE19657E947170472E67D87FC5C526B2DB8FCA728EF881198FF809B80BBB3C1652FB9A51C42AA89CE96844721A9DA7274D52050B106C7505497629962B747E117C2970948FA1E6BBEF069CF4DA83314083F57455D9B031639202351BBC4631B080F936A1E017810632BCC19B41AC0FC7939D5BC6562B074EED4267B9F6A6D110AE51F2B6D9B39F46061031573C5A10C2F23B6879338889E05EFDD4424820CD98298B59DBB720A101E8E62887303D5EFB4EA99288199B54A3CAA85476876D969B2FFA0B72754E85D3979C17155D784E3ED0A2874CBB9890B4BCF6334C8855F7AC45159A18E4F29FF5D8A5E5F34142C01E3FC53A2D07CC7F6C582718C434C062383BB60D4C54DD07A06D2642C8CA4920D5B7FA723F6F2540EAAB1385EAA17B4339B8B3CD08F60E5727045FA947BEC4C6E766B850F86B80D2B559507137234CD9856B7310AEF4F50034EBBD5336C026530B5FF525C277590D2DBC2DDC739F6B876472EB12CE233CCD402DDEF61523FD6FEE69A88F34A34C4092D5AFA2F038F879184F7344800EA49A63543BE9600BDC2B18420744588290173DBCD4922B8FA921DC24240B2173C2E65A839357F8E4A93F51E7DAED4C8C00\nencap_coins = 52081A3D33DD573D4554EB48C3F83E7961C3909B6053AE3765369B2BAE10CB8C\nct = D72DBE61C319D55838172E2C10D5197F538A3226A7834911543F0DF092C3AE9B79186D2E15C218FAE975585CFE55F18851C3C95EB1007498A35D081A437C499148F06A4D6A1769F4B076B1FC58BE8A1E3FBCBA4D53F723C466AC9F2006AA496306973381FCD4C1C974B1FC1F7B7B73C4D2D405E4045EB95E77164C60BC629C95F46CB37FF9E8DEA1D49E332D46101586345AAC419666895A99FECBA4414E15471FEF4DB6A1B5EDF1F510C5AA00BD833F052EA57D15A4DD61B5F3096A2724735960CFB98A863FDCD72ACD2831518E98490DC46231202DA0121AB066556BACFAACB0401D27104265F8D4C0037A5FFF748DD1298E8B4B9EE0DBB63396D6DFAC434ECA6B39D9DC52A0CC7B010C5728CF155C26CC76BC27B7F4CB22C112B2E454DE8B52E7C9718EF2A516DF9052F11EF1BBFDC546A532FE0F82EEE3084CDE219FC582709F463CB162817DB943931EE1B36C38DC9B5FFAD2FBC4245C437A6F7B67DCA3BDF6A3968BAAA88056A32316B6EA8D82488C512B292847B0AEFDEA0A204FF2DAAC139A04598C508C840F24AE023B2B9110179D412FB241BC2BC55B10F6BF87C02ECB8E04139A82B349F8B606BD61F2EEA045A86468EA1A44183BB7142B9F8DDBF5941DD27B52491BC76518ACB4ABC581740BCFE9623939B350518EEF03BAF4A94877ECDED2F4B8B2E8BF3FA0B42B25B08D00AEC00AE3A0A0317548536E39CE2E8D94CFE616EB5DD975DCD24D1F37A951DC7A39E961C82B96C47E4D23E76C86049A28434249F8597F74EA1913D9154CA28E9170744F93EDD85CACB47314012D87F883AC9CA8BC1DE124AF9BE2DE0D2965785FB55DE2A166E65CDE03D1A285909F543C7BF13C279F392BF59479D6CB75131447F858533409B887263DDEDBA7DDA711869D03998D5664DC25A748FC29A9FE62453ABFF1878ACBEC3772FB4B82FA076904DFE629074012A925310313F5CC1FFF141D00661610638FB894C7A5C9CF29BD9F4FF8D4096377D7C871E20A54E9A4D254C4407777F66F7D7771F1DAA77370A1463F067AA8205A6F5F0D5F6E4427EA6E47A76864952BE01A3483C34EB2BED6E73EDE138B310133D287ED7FBB4525D0213B28E2F39984F15E57C5F52FC5F02EA744F98DFBD1F8970149BDA884CFD2576842EC294047481D3DF51BDC7E1D1897F8CBB45505C296C77F958CD0B3D0A923E054B7E473637F8246A8F78BFDB6E0A0500781E084DAC398845F758B5BDF7791201F801AD6ED3CD511C24552FA41823F4AC391124CF7566751316F069BF032A21B1F23627C03B139560B4A67E8E8A237C7A79BB0D7CFB9B0015CD09BFEEC7A4AED4C8C1BC12BE88CB13A1EF23571CDDA4E8DDBEA9C15AE1BA13B50428BBB91603E313349511FE499CD12398AF0CA2347502359B233E183B014B19F8BDD0369A8683B1BD3CA179BC4E6377564160C160FD6E707811A0F2C18BBFE1302F2DDD99F4D8BA1EBF8C8EED82C941215D450D912CDE8862E3F240FE3936F5CD945C145B1C4D67EE0D2E916B0A24DD497E6CCB61DC557995EEC3DD124B993DCC19EFCFF8D0CCFEEAFA5962F271D3D50231C97DA0038CEC410DDECFB8186AF4863B8690EA7D6E6DE6D89BFDEB82B4E965E7A7911280A2A7AD52BB5570B5CD759192C024B1AA21AB1F87BE18101C546FD8E7F05269DF3DB939D6F5C6F895E69330DC9B67447AAF0D9B1153743CC767712BBEC90F77F8E17D00EECA8BBCFD8AA12957E413F9FDE329B4A313B36AE3749E741F0C1C66B425CEB56EE1FF9ED23D35E6DF558A775025A10C9C3918AD10D2F089D5F134003830960908E9F4886A090EE74C863C4626D9552298CBD7BB83F62A87E9012A1488F6C72E6E9DD7A3ABF86657948F52E5AEF7268EC3D97BA22401A8A50CCAC1279F59EE3C695DC464038007BFBB39CAC968D95D37E0B37FC4F4219D41D29C171E2AFD018F1EF6CB096B16D46F73DFA8A53AD428981486C19E4052837DD5C8AACAA52FAFA3BCD168A06A001F12CC0471725C2A6DCADFBA3C7FAA13FE432BF2C904DF8FA93C4669C570E4AEF27941F3610B6218F2E88585EFB323E1F55CA92B06E8C93EE55A135F96D7649AF77C9953CE58942AD7F1558A563B54A915AE51F0707F78BCD3DC01ACD5426DA92DDDE8AE5FBFA6D76F9FE1E40E94F0FAA033993F36792CF1B5CB2040EBF30159D232D5F38A4BD251BB17DBE475066EE6A8F4950BDE8C9\nss = 5CC8E070B29143461E61A293B7002F019E96E4EC166F85AD5E971AF8DC271C49\n\ncount = 41\nkeypair_coins = 47550E9EDACB6DDCE3D9AB81F6B61080DD4F2693854ACB05E0CCC7A4FB6390FB7E30DD3B9F9D66518A0525F030574C504AB3851B77857B70858C130CA20ECE35\npk = 3C3830F0332F31F89EC458368A31CD2466203C2B510CD773D66C92CF2C95D7700D82B54FAAFC8931300F48563AA4CC976AD602D31C4B4B6C96C6F527A637231F1B94CC38767A608F44922A3F391B9E6C5F78A87BBF6CC19849AE619A2D84533441727E79E241EFCAB0A0EA361FEBABD3B76CAAA8955EC8B963DAAA8C8838AB71CE07276A78546859E21BA695953C8521A07BC8B4264BF1D3403EB8CBCED71753B6619A4309599C4ECD32826E6609D7D09F976C02DD4143DB7CCF9FF09365910757268F49141445B689A6DC0706C92FDD8382C63010F7A026ABF217CE572256360A9A4AB2B7ACB235F6929B8661DFD5BC4041813E657C95CA1A36535E97D6A56C7022DCA5CBF8D121F24AB6DF3002FD4B619B03CE2C4B57AB65732721901448B9C0136B1C72145B2B101FE1BB555AB2C0482CAF3A1CEDC926A007858E7A4ED9DC120EAA7E945275C4A847146C88A468AE23EC173CA76494732792D9A952178D83790B725CA63FE13FF7C5CF5096B3828B463AAA0EE913C390359C9E4346CDC063B8517DC5830A24E578F2053F33E5999FAC5603AB62EA785080BC39E0AA206C98C560597D219746737015A5668BA4F0B06F45A7385C753A854C4D818F78466B5B9421FB84B0BAD8B5B0CC3104BA8B9531B9033C52FE7C718AE81A3B06CED360A879D9CB3F73B8D6C09781462E6D7C13377006D95406329777E2651EF2803C69E984D4E719764CCC1307A64A1633E7516B2C5380C443A9BEA049C91CBAA7BC385B989D1453676ECAC1C2123F05E83AC0295C6E36AE6F0364CE5B35348037B7379BD2248AF8FBA3ACC293479B24CD0A2B0DD350B10676C93AB5A6F76CB0256DC64CB8A4F677D2940761E48E665461BF30C2E9702AC726AD1AA7CDA90C5655B9904AC1699921AC4A3A1981B566C6015016AC84E7964F64C0B5EAF69FD5460B9A17686952951EF9A04A55926BD482E669BC6B731AAD4465F9901337A0544F27ACE61841A5C2B0EFDB2E4B897BCBF1C032142B73F70CC0F7B509D6847F61BA4E209269ACCED24A0721CA6D9E634167622928B65447A5AAB30765EFB7C977A56020B56ABFB82449614DF3FBC118369E8AAB020CF989015696140B6A5C960DB2FCB5BE3C41091A6729C62547DB67307ACE42760689C32C2388310D1269915470286433C5624FEFE684A12957D90C8B61FB334BC56CFECCB229F01F0312A11449310E432E75037BA429ADB4507FB74A293823364F81B756673ADBDC063D030FBEC029569C8DB185A0EE8011000CC7B2118A046483FD975D9A0122FB0596AA8A6D9B99CE7303B1C8A4342696001167A742FB9374D4A20A8377E8A6495E21CA6EB106B2C680A48CA6C138673ED09897F4C731412EC536759A773A1E3AAB3B335301EB2501A5CB48C33A1E026E4BB25E2F867271E48CD48A029039519B296CEA8B04953BCF41B515429237E696503E9283CA4165355585BE315F20266438523D4154", + "3194AA6AA476BB2C229F2F12648A179E46C1696581607B4585C5341359AAB5C5F0B2CA96177010C892F8299042A880B9C281483EBF0A96ECD9CAC2F13BFFF4C87845B708C73404979AF7EAC68BB45F6B7C8597B756557A38B09178F2883E8C6397C74352AA32A49468ADF650441A73A2A0E7489FD7A42A9421C8366EC7B5A0BA8B0FE721190F825BF5CA839FCB22F425738E92B68608078316AF96526965331D16A41052F2154FAA17FA843A5E2278CD122AEE688924E57029A8902A03186BC562F99B2E72B9CF8E578BF28C2F5A86B47B4555D50A1512EBC131280964165F139B7A8860120CA684CEC34CEC402552EB3B9063B7D8266735CB1BE8A0B253C67710D80D5D1B128E38085D40CDC7E2CBF4B8C9E1861D2F41A79E1B49ACA0668E4B9312003986045415B194F0F583811B181FC15F8CB5788BF14762095BAB613F51F4351BF00F669102BD349B70C40549B75ECBE16394A3062C5316BCC4A1FF57CDC976950618C7D103248F4C4CC2087BCA854FDF6840AE98238C26656615143F0538C960888F32BCABE935732B6A5C24372B438449812E4F125B07B836B1E076F7E629FD3578132C70776635C5FC0D4B435CE2E301703C20EC130A25657EB394013924BB88090B1599373C5B7624D59D2F2C3B2D71A308A25092D5B0EB6BA81C5B0C650104B7DDD07164969A62466B80918873A4EA56CD80A8E559FB30F6CCE44F1F8FE60A\nsk = 35E4451348CFB9A06F1836296178B6AF41A1C0196F26525831C081EA779E6B8C4B3F150AFE2963AA756968358BFCD47D76415ED4294F02A843F89B87D6803BAD504A9165B9BEDB0C946058965B64BBF953E719160B53552C100D251CC9C111837E0A7C4C043BA0777E53B39F658B41B5F8900D4721268A8AB868B15A12C3B8F41316DCBE117AB3A027B8FC2CBF3566569A130D6DB132DDCCC5EED69A392BAE8E4A7BD6C9708A48BADEBAA79FA1AC1E729EEE0399803A374D3733AE501F1A846CD2F5166DC31B4D53750BCCCF937B1CA43C3A6CD5601EEAC251F9AAB8B2489E22CEFF436F1142CCD1BB17DFC75DB6125A1A433325A5599FD23B49BBC3D1B9195B984303735F9F2646EFD050097AB23A8AA5569AB744A934C2991BA046CB012467D39C3936EBA9CFEC4268E1A0EEA559980133B4121F9D5A603E092C199818C057B7C841A7DD00AF2C0AB3637878A9EA90BF377874FA38BF290FEA6131345340857A1A53D4BDD9201B99FB628D975A91001F907A2E9AD37C9B99B8AF915070339FDF76125D9556B1716CB74A9F18092AFD887880526FD82CB002CA49E879C50E33AF2E747104674EB1F30859E3C22F3AAEBFD30FD672B6AB855928C4085130488540C8CBDB832AE25249F46B7178AF9769A4B359664BA48DA4A746C215C58AC2752E43835B5C2A9EF0A3FCA159D29038CD60CD60F5BF508521D3D59C4F083653264776501B4FC62337FC37562973A1F9BD9532B4BDB25C21597A11E17096B155CD43C76874C44F25C1AA1BBCEA897367536ECF4124FEB6CDF2360CD5A082AC03B5E94232DFB44E1F124FDF65A4BD03B16ED729884065D77135F1F730A7A91FC2EB43271C0B2BFB8E615C07DF54041917A95B0544E8513E8C6060D14C0FB802C0F2680051341960654F3594C9972C08664B7BD30B2F031827307B95FC525A2632C2456041B1286D6F175BC0B41942E8B8BE69BB364A11AB4CC199F20AEB516CED1ACC1F4B2B91B860331677290C643BB9A00B4B65644592C5CA5BB19B25D2A7080CC32B08910C137946A3FAB6C8E31A1E97A4735A5C0A239B073C6E056053CD6498117497870718D35235019B3EE6050DCAAC31A27167FE35CE57586C364C13BCC7587CA066C6E05673E2BA0186281D94843DF10BB3A93C05025C0C691A0C41B229A55B7B506724026C4F1B48313788A212B0C951783EC9447E64314E878734AB59401923ADA0586225C7A5C00A5F97BB76632DEC47C15C06C7C20090C790404B3044136C79F46181CB1123A7D3CF969B72F6CABE063A35774A60863267B1BA34B93A5D3DB25FECE84A02429A9D142ED897320BFCC114391BCC097A078B04BD9356113B3CB993C19384886DF182E37BA659D5B8BEE24445411E318CBD092B8F8E53C63BFA3896A2CDBDC66E27F25C83FA85C260A34FD6CFE6872172F1361AA125E6C5C6C902CDEC68708C14C175E910CF002AD647A317F78F52F76BAE006A3AA51780D37A00AA20C6A532281719C5AC88641A9D15549088B5A4DDA23F443335ABFC5C2F7C5BE2A142740CBFD612A83AF271AF0AACB43833B56295B51A885D798825C3A2C04B399C528530CA24117B6E762C7B6527B0509B5963B68560015DB4D489B5A93507E286539604CD0C35E6001127902A72BA3FB9D379833241BF849D2C11BF6DC5133C0C76E861909B375A930CAA5DD105E8D96DD8698864678ADF585C4EA072AE56990C25ADAC59AD0FA30B17D2A0BA16A444A16EAD3C9F679C333CC97D830106A91A54D6E074C463BCA12657BC91544D8A6E181C5B452229CA94BAFDD02375D5A96DE2B93030CFC93645C7282B082C29D4B466FEA3C28D2B16ECC6CC5E584D35E45C5EC7233C723C7B2275ABD41748A79F88797D9D03B8AE9B839EA935F5E13FF9E775AF239C7C448EAE6C7B407C42915C1C4CF3A1CB652B44B5ACB746A5B2B576FDA15FD1CB81396CC1A17752C2B5748E988649BC8CAA98C2C2F09CB01B1153A59CED58A76738072A1B6A5A68B1825A062A223CF83913D77B5BA226076C939DCBAAB624C712B51921B46098C48778EF46917C63A23A563A39D0C7D3BA5EF7B87857C8912A137F52026CB4628DBCC0AC53062B1B181821F65E4F622BABE9882A69487407B0A715A68C110C1A20339EB559D47318DD255F4FF758DB79BE3C3830F0332F31F89EC458368A31CD2466203C2B510CD773D66C92CF2C95D7700D82B54FAAFC8931300F48563AA4CC976AD602D31C4B4B6C96C6F527A637231F1B94CC38767A608F44922A3F391B9E6C5F78A87BBF6CC19849AE619A2D84533441727E79E241EFCAB0A0EA361FEBABD3B76CAAA8955EC8B963DAAA8C8838AB71CE07276A78546859E21BA695953C8521A07BC8B4264BF1D3403EB8CBCED71753B6619A4309599C4ECD32826E6609D7D09F976C02DD4143DB7CCF9FF09365910757268F49141445B689A6DC0706C92FDD8382C63010F7A026ABF217CE572256360A9A4AB2B7ACB235F6929B8661DFD5BC4041813E657C95CA1A36535E97D6A56C7022DCA5CBF8D121F24AB6DF3002FD4B619B03CE2C4B57AB65732721901448B9C0136B1C72145B2B101FE1BB555AB2C0482CAF3A1CEDC926A007858E7A4ED9DC120EAA7E945275C4A847146C88A468AE23EC173CA76494732792D9A952178D83790B725CA63FE13FF7C5CF5096B3828B463AAA0EE913C390359C9E4346CDC063B8517DC5830A24E578F2053F33E5999FAC5603AB62EA785080BC39E0AA206C98C560597D219746737015A5668BA4F0B06F45A7385C753A854C4D818F78466B5B9421FB84B0BAD8B5B0CC3104BA8B9531B9033C52FE7C718AE81A3B06CED360A879D9CB3F73B8D6C09781462E6D7C13377006D95406329777E2651EF2803C69E984D4E719764CCC1307A64A1633E7516B2C5380C443A9BEA049C91CBAA7BC385B989D1453676ECAC1C2123F05E83AC0295C6E36AE6F0364CE5B35348037B7379BD2248AF8FBA3ACC293479B24CD0A2B0DD350B10676C93AB5A6F76CB0256DC64CB8A4F677D2940761E48E665461BF30C2E9702AC726AD1AA7CDA90C5655B9904AC1699921AC4A3A1981B566C6015016AC84E7964F64C0B5EAF69FD5460B9A17686952951EF9A04A55926BD482E669BC6B731AAD4465F9901337A0544F27ACE61841A5C2B0EFDB2E4B897BCBF1C032142B73F70CC0F7B509D6847F61BA4E209269ACCED24A0721CA6D9E634167622928B65447A5AAB30765EFB7C977A56020B56ABFB82449614DF3FBC118369E8AAB020CF989015696140B6A5C960DB2FCB5BE3C41091A6729C62547DB67307ACE42760689C32C2388310D1269915470286433C5624FEFE684A12957D90C8B61FB334BC56CFECCB229F01F0312A11449310E432E75037BA429ADB4507FB74A293823364F81B756673ADBDC063D030FBEC029569C8DB185A0EE8011000CC7B2118A046483FD975D9A0122FB0596AA8A6D9B99CE7303B1C8A4342696001167A742FB9374D4A20A8377E8A6495E21CA6EB106B2C680A48CA6C138673ED09897F4C731412EC536759A773A1E3AAB3B335301EB2501A5CB48C33A1E026E4BB25E2F867271E48CD48A029039519B296CEA8B04953BCF41B515429237E696503E9283CA4165355585BE315F20266438523D41543194AA6AA476BB2C229F2F12648A179E46C1696581607B4585C5341359AAB5C5F0B2CA96177010C892F8299042A880B9C281483EBF0A96ECD9CAC2F13BFFF4C87845B708C73404979AF7EAC68BB45F6B7C8597B756557A38B09178F2883E8C6397C74352AA32A49468ADF650441A73A2A0E7489FD7A42A9421C8366EC7B5A0BA8B0FE721190F825BF5CA839FCB22F425738E92B68608078316AF96526965331D16A41052F2154FAA17FA843A5E2278CD122AEE688924E57029A8902A03186BC562F99B2E72B9CF8E578BF28C2F5A86B47B4555D50A1512EBC131280964165F139B7A8860120CA684CEC34CEC402552EB3B9063B7D8266735CB1BE8A0B253C67710D80D5D1B128E38085D40CDC7E2CBF4B8C9E1861D2F41A79E1B49ACA0668E4B9312003986045415B194F0F583811B181FC15F8CB5788BF14762095BAB613F51F4351BF00F669102BD349B70C40549B75ECBE16394A3062C5316BCC4A1FF57CDC976950618C7D103248F4C4CC2087BCA854FDF6840AE98238C26656615143F0538C960888F32BCABE935732B6A5C24372B438449812E4F125B07B836B1E076F7E629FD3578132C70776635C5FC0D4B435CE2E301703C20EC130A25657EB394013924BB88090B1599373C5B7624D59D2F2C3B2D71A308A25092D5B0EB6BA81C5B0C650104B7DDD07164969A62466B80918873A4EA56CD80A8E559FB30F6CCE44F1F8FE60AAD7166F31B2650D125C8EF23B5825FE11AFE25D0CDA306FA6C7A824B4C2D31D47E30DD3B9F9D66518A0525F030574C504AB3851B77857B70858C130CA20ECE35\nencap_coins = 6A56EA6B25105666B70C77C9027468B84E2B069070EF3380403066430733575A\nct = 34CF26787517E5522CCC1476BDC8AEB8E180058ECEDC6A6849A1BE240354A1698BDEF4BD7582E10F7D319951D8D1FC607D2727F809A6745274653ACA179DE23C2912B17D4103012BCF13938466030944BD9047FE7ACC07FB1DC9DB72BAB35B91F40A47796FE633D5C7034E550859482CC1417CA33F69314E281EFF7313C105222E69E0963E795882A95CAC4FA946370E500F7A4ED3910095E9F4E710C9674658BCC96BE74C91886FA3A361CBCA5E3BF504E6D02B11CAD06660CE24CEDB94144991483A63ED489835BD93B702486F9D0BC94EA7CE2491C492511EDE6AA674D10FD43772DFDB739AC5D2AC04E735428B185C9FA5749FFE6D987955427F86E68B6C4FB20109279F4C01E84147680269C704F71A1B6D22303E26B5DF11735CFD05A15385293CFDD1EEE24541B9DD25A412EC6BD4468D57816A3D40D9C636F8F579BEAA952159053DA4352621366E7924A65938F752542286EF33472CBC6244523CD0B928971427879C0414B281FDBA1D2", + "4723A865BCD7578324B34769F8D1FEF6D10706E1F9D8054B505EC927D9C1B8D6D0F9435FF283C9EB75B23BDC0F9637AA6B8CC96B019541A0BF158F53B5D4243613271BD5B19CB26E5ED3610FC160FDC6BCB77A0186699CA8807537DBA1E074D2D6553B14CE846BD00EC97FC958B201B69AEE11EA8391EA868F08F643DD22C0CB98D84692CE365B4542B20EE9C2EFB15BB4AF3E65C9C1750F52B36DE254F9B8BBFA33303E67673AE8A1F6827AE14069657396147DC895E0DA4CB792CCFBFB07E181E8400E5DADCBB72E084DAD2F73D08EE7E818A919587C9ACA1402587CA118DC66F31CE2D3FEC56B7273671BD7FACBAE262C59C88C5B473FDB737806F58CD154483D0988FE84027E2E8EF611BFEA28C0C0E1353938321DE7B391661F1AD1088F2FC2E651FE59EF4D2B7D0BAB684EEB04D827B85B02D2AAC9ADBCCA661F0A1FA38723638B666A8B0C96924C3AE31397CF2D758E4B67983DAC114CDE18D6CE81B0474E71D002EEF665F383A13A42F79777FC11FD28A30934DD41E3F774A3AAFA5D4C6F8B30240B87D9E8280EDC3FA44C007675B61510983F0061CED93BEFEED09D51607D5F2BA268656B8169FFA29DDBA6670E643674A150CBFFF95DF964147221BF5BDEFCA0CDC4EF7117F765073390C07CA08A1C9149B0DC124CA746DF39BCEB4B7E8C6A805865A810076E734B40A01A08A6349D950033004332105C46B54EC4C4CDE4FE7532A9DFF694C2A2E4638132475BBCA48A2629ABBEF21AC0565CA762904C0ED8422754A122C69CFB96818686A79D037B33F095E327CE7523B541EF01FC06C7BA2642780BA5449EA76CF858D13BB30B847E2346579CEEF08373201E5050515D2858BA5EEEC3ABF46AE34240E9EB12D6951BB75632776C02CA68183F749ADAB6B78FDB435463B4C6B78113CD41DA67776396A2AB14D0945500B0B2C8579BD9F9B5565858F76A397060CA02DEEB3615ACF6885B6AC98FE38DFE0B7A9177041E57AD77910526D8C80C5DCDE3685E031C2844C7F271C954C0F6D306546B7765A163223E9E22DEC30BAB8D0D430EFF17EE816E3B23D9A4C6B09FA7E2D4A2E84E438093F945C214FBF1715C2D4072AB6D4C59F96087C8338A49FE2671056311D703879BB89999402626209554EA3C6473BE2CA1EAC2FFBBDD800DC3D3304B639B5A7F635BC57E8E22781D7D3A799984695C66551DFF21EE8C048A15329F53999ED9673AAD9EB71ACCBE8406E163CBC21A3BF2691E43DE1E522AD5082B5DAE9CCF70F5D57720FB52278FC35AF3615680A0E670C142F73DEF16395CC40118EB9B85E47B4A233353714866370DCFDD00481CBB7EC75A47A622823E4B90D3E02B4ECD3DA0E7997326D32D199D474E24923049DD20EA7674570666096993E419EEA7189237C21A3C3E61FDB73B15872E0C7746EA881FEB0DB4801C49AD54CCA633A7CC4878F6C51030477FC9E1D3F43751D62E10CD6E046C0E9CC7232D39B3340DC98A0D54FD14293DAFB4FAC316802871A5994D1747AFB61CA7D8F1BD920B82BE7B327A8AD8C8ACAA130B84FF0A165240E8ECFD2D0E2B4DEEA091915D5BCACC7CE6F6C49A8E14FAA0ED8F5E0AEC3903405A57749F448D66969DFD9BF3610280BD45AF6B3C269EAD44F25835840D344FFA609073BCBBE6DD8B7AF956980AFF0005CC98877304BBB0B5D04125B5601665461D235\nss = E6282E0E2CA5D00E092C41487EB4DA70F733EA6185571F5B162B47632C10AF39\n\ncount = 42\nkeypair_coins = 610AFB64BE8CC1DF288CFB016EE2F44C6C07113DE7F6FEE071FE0C3FE31C621505913FFC8D7FB91C97DC1E0BEA9DC9955FA28B3CC0B7415C192F81912D70516A\npk = A99BA278867903F11DCE73CE433C475E3B7E0B3C65921B3C842B142E139FE1D15EFE13B7BC3625177282F4A92FF5363027901E2ECBCA0DFB928E86BB51FA7C6A2CA93C5B893855703CA521BE85AF4651C52AB82006C95FDE5779C10CA73866911A4C48088742B8B2243F629FBEA924B7D8968BFA6200361A9C344A45466DE00B7BF0E5B78DABB1BAC3278144A94B27193B2C8214EC97527931DD04C2E43B4C64753D8C494041683168447EA5A49944D161A9290B4FF328E4FCB2427292A01367C713806B37CF92649009C09416A915B84C23EFDC41D7E7859DC81276042357663C0BB68282CB71D891177148A17C315B7CDAA9AFF35B4A4369E83453097B88D61395DA62431F19A7C8427A2CB15EEFD30B810BB74342A306B1BF26A0490AF566F5A17885BAA8F4A60E1C9432CD02A15915CBC8D574CFB23399CA1D93B95BB1E7A68A798A9B9A6D4DC92BF1BB84BA1109DB395DC4B59F1931087E4524A090CCD037BE1BE6237A6483AE1A21B859BEDC7A5A57A46FC02B13F5A446F4997B310B14C734160C7A19A36507876CB4C0CB2BEF3BBC5D26281F15CA5D7654DE307B20F9B3EBE90DFC074050E67108534832C95E55E57EA6FC6A050461CDB87F0AEC7C3B069358DB0784A9C7DC25CB6F6236AD96784759277F660C49130A8ED9377F85394CA90E1D59467EF98EB555956755AA51127A26F498F3A6A2D2F972357B0B40C1254F143042199BB380AD86A04C1A8A1C4FC68166606152C5950CA8B0B3B86D99167727F623927963770A1423A5CBC9629F248409183CB5A0D99E22C915991C7EC3E5288400ADD0C355A3F94E7A4962A513B05AF268E31C7D1C4B3FE0F0B8BE500812BCB66FFA0FCFE66928DC86D769CA1F4095EA3124C5E1C7BE5C71CA7ABC0EC76B7B0B572895C7E923BE57F39EB0F430C1703A0B7B86A691935824299062C5BF927FD5573E413552A7731453171C945748E9943429DA1C00588742C8C2ACBACE1EC1A290E3830006610D21B945647180075194DB0170426087112764BC23718BAC96281CED834396CC8D4D003D3246641577BD11A59A765001215760D8122EEF819F2D1416F998C7A8A080718A11774072F3A563A0581B92E5AA24EC05EC9004D578438313913B176E783C01E4D313648123B9DB69D9E7C648D2CBFD42587EF1A2DAE065FC359951CA56F8253B27B3878074BF58D3B51CC7BAFE7BB9CF818B938843F78AC68EF8349F37468E81C06044AD9A051585C34D33D76CB8ECAB0C0886CFEA5C725B3013C048DB0B7EFE3792C6777A0B8413481AA0CE5B58228479F90C941517631319415DD52EADC45FFA383F149879CF698F3C7990848353BD5B8E6D7333067AC67F5903163A9F45D681F0C637A5F53F7EC0CD30C270E3B78EE4D575A3040B71C30106C6831DAB1F2C8515FA8A6C5477C311E7023D779365466228AA3D1FC2B819B51E0771C989720946AA19E6B28A463577214C58BD35237C33573A75A11CC1B5DD8595420CB87F9063BB7247D88789F40198A0395C001877CC35A5A5171E3360781BC3588930827339C24233747D9B5D96F6A31712CFD71CB962B7A1974C3ED85C05A525A21AAC83AF06C68136CC9BB8B7D74216DA468D78F80153BB0CD2B2316DC975ED6C09B6384AD49735F1AC99E03C95E8EBC851F8B24AA65DF8117D8312093BB3363D02C72F727F3371C2C8491DD611AB24765FA2665F612517D1D66882056903A67FD4173575166255609A54A3245D74B46C075C04B702AC4BC88E71B757907091C228B0182E10305B7C1CAB0DF3447A93219DF5390A0302F99A0AE8BC51108C7C3397590F4B241165414952840303606E6C1B98755264B01280A8CAEEEC25C0818840D494BC436279A939D96C6F9160A01233AFBD576F46359B2C75097BF15C37047F31A186B7BACBF23AABE9B7AB649938B08687A4B1734A834D3FA62A8A7A180CCA4FD0A74C32A76DB42009DACA9AD0C3A6F8A06699630F56A6C793927D155B229269B1E3C94E0D23BE1EE3121E4B638216C5B722BA3AA3129DD49BF1F93E78D16D1E820485527564405DF9FC6574B7809A8BC289A02EA0E455A3A7813C195921194756558A6D481FF86A0DE4DC39A347CA01562454F589F953837A256CB2BA49F200A7D1B22EF801109E2A45E28C57E201354BE551E351A73036F4B363137340EFA7764C439F68D3C8E0723683AA8254A66284F447\nsk = 03A941A829C025261F44172ACF806BEA5B216B58BAB845328C36CB925A5169D6B1FF141BA44010FF2C1A446113C443C6D98CA879E673CCCB84D5519067619EDF59C23798B9B6BBCDC0D49DF5F4B21563AE54E287DCCCBE4C53C62918A6A213C460EB8C92377CB57A1B6D6467D40297FB90C6907B6BE5B03DB314C3AD5B2F46999743EC7FF0B055AF2B2753695395C6157C60115E183DDA398D136806B7017BB4FB4F36B7653BD17CABD1BFFEECBAF2EAB65B853C710820818B05AFB86388F327FEA6C3562A027C610AFD9C0BBB23A571489120C2BAA0D7AEFFD196B2DC8B40D4016FDA16062512A64462FE806D5959C49DFC0C9B2955E6480B7AF0011EDB2D44C6A43D08B5F469656CB9396C9C640BB077CC24AC0F293BAB4CBADD998ECDBA31534408B74420CB432826CB5DC8224C48159626053096063841153F723761F83315629C945778A24F826A28A90A5854BA7E80C48E44929EECA17E28304BABCD0AF4198962A045292F09AB5B7197A685A67D07EC9769B69E64EA1457FB8E1A70B23AC4A797132B021244944143E936C6E5D840494B674FDC9AEE84A091175F8E3121150B1375E028D0AB6B709A443F14C56AB67E3A8721A4B698EAC9615FA12C0E5277E4A412508446ED4999687AC5AC626CCF5468F3E944B8D099FDC319337C85E5024A0798556CFABFD47A40146691D32C0F179B5BB3C3088F2CB29E2B961B630610D1528FAB952DC75D23339C26A38F68421C12C2360F369ABCE128CD64551CA29455E02AEC7C359CF9182F5642F1BAB42814AEA8F2844AF15670421E0E113063B4B8C614487F6B6236DCB21E48613C0635E5F6A6A6E070FB665756F98156C65A6F407E1014BD6540A92E8A09EF6C944DB876250B951D16332251C5BB6B79F88928ADF6BEF819A241068B08337136B8BDC33476FDDB0292B68EDE75490DB193E267BBF2F8459FABB17D10BEF7018AE895995200453065AD45457E3E86A12C554DB3617A99613767598031C86BD5815585444DFA41CBE068034FC0A1CC2636D010230870776D2645DB640B409A292ACC909AAA11D0D05A1B1469EA2673020BB7EBC7381190C271E2CF73D37F61F12C8389843B0540117C7AB924C140D1409F701AB0C0596103A1AEF3C93A2A79BE19C7870ABE83232A7DE265A1A1280D30490FF50C414A006D8A403C50948DA4B1054B18BE35A8F9252079C5ACB2104BD42CCB51617839E07380FB3A62B3A5080295BCCA410215AB5C30A89B727363185363027BB1A6B09FE83233D79E4527371ECC8B879C81A25B3E6E088D2E786976396EF8D6C383495B52EB69BB718DD7FACF5F120303EA259FB2BC32A5269AB45E6BD8AB9F9456A68B869A4C13A0B6C98DD1BF276572EFC9A31591ACB33B9945919FD20495DB284BD4BA7C66620754E58396C0A191F20304B545AA2279CBE62D08EB4C82E60569598147F9910EF70ABF792D375420BB999E4A9CC28DB0193A124D0CC78807A54D13933B25B350A16C842E4B31337BC7734104FE564C20F27ED6AB800717BAAC4A9C954C6EC5238BCDF309C6FC497A6A9B9E4973D7D44EA53B90DB26912AC7796C327D24D3705DB5BD0266B17B145FD8CA77624C8ECCAC1C209073B2A6399CC7704D25452A2A0DD6002020E51B0AE800F9E93250591BC01B7274927DA637823CC69D3AB59F7A0194B5B653EF0A001CBB5D28284576", + "BB0670AA0E6F94C06F7B2B0D6904D0615FD1831CD6800BA590816E06022B0502D165340C38BF824A35D6C227DB3680A3C1964C4727AEC40384D0C413731E85F2224BC9CD4FA24E93D0439EE97C9B0852AFF733C2974FD6E4241B1A46A86A09B48A59ACD13CACF617ADF9B0BF835C20E9B05B8B58A5218587AB1D50800CBFC315C1814A8203C442158790515D83BA576C25CE9EB0539B26ACCF471D299B3CEE6601BF711A1BC913C0F88F478AB072CAC1541C892E314D733350C0566385A04BD8D759B6B81BA0370069D031E352266FBC8E9625C373C0C4C3A600F37C5576E678EDE07FE17609C774BC28F2C7D7889DBDA78B0B041ACABC1997E93E1682393FC655DAF227BE808D9B395DDB659DAE366C87B7B07F072B7FD9169474CE4FD0578952B4E926ABB7E039D04CBC94371C0C967394A95AADA9594A8CB4D5D1945ADA7BB18A5E52CCC5EA5672A99BA278867903F11DCE73CE433C475E3B7E0B3C65921B3C842B142E139FE1D15EFE13B7BC3625177282F4A92FF5363027901E2ECBCA0DFB928E86BB51FA7C6A2CA93C5B893855703CA521BE85AF4651C52AB82006C95FDE5779C10CA73866911A4C48088742B8B2243F629FBEA924B7D8968BFA6200361A9C344A45466DE00B7BF0E5B78DABB1BAC3278144A94B27193B2C8214EC97527931DD04C2E43B4C64753D8C494041683168447EA5A49944D161A9290B4FF328E4FCB2427292A01367C713806B37CF92649009C09416A915B84C23EFDC41D7E7859DC81276042357663C0BB68282CB71D891177148A17C315B7CDAA9AFF35B4A4369E83453097B88D61395DA62431F19A7C8427A2CB15EEFD30B810BB74342A306B1BF26A0490AF566F5A17885BAA8F4A60E1C9432CD02A15915CBC8D574CFB23399CA1D93B95BB1E7A68A798A9B9A6D4DC92BF1BB84BA1109DB395DC4B59F1931087E4524A090CCD037BE1BE6237A6483AE1A21B859BEDC7A5A57A46FC02B13F5A446F4997B310B14C734160C7A19A36507876CB4C0CB2BEF3BBC5D26281F15CA5D7654DE307B20F9B3EBE90DFC074050E67108534832C95E55E57EA6FC6A050461CDB87F0AEC7C3B069358DB0784A9C7DC25CB6F6236AD96784759277F660C49130A8ED9377F85394CA90E1D59467EF98EB555956755AA51127A26F498F3A6A2D2F972357B0B40C1254F143042199BB380AD86A04C1A8A1C4FC68166606152C5950CA8B0B3B86D99167727F623927963770A1423A5CBC9629F248409183CB5A0D99E22C915991C7EC3E5288400ADD0C355A3F94E7A4962A513B05AF268E31C7D1C4B3FE0F0B8BE500812BCB66FFA0FCFE66928DC86D769CA1F4095EA3124C5E1C7BE5C71CA7ABC0EC76B7B0B572895C7E923BE57F39EB0F430C1703A0B7B86A691935824299062C5BF927FD5573E413552A7731453171C945748E9943429DA1C00588742C8C2ACBACE1EC1A290E3830006610D21B945647180075194DB0170426087112764BC23718BAC96281CED834396CC8D4D003D3246641577BD11A59A765001215760D8122EEF819F2D1416F998C7A8A080718A11774072F3A563A0581B92E5AA24EC05EC9004D578438313913B176E783C01E4D313648123B9DB69D9E7C648D2CBFD42587EF1A2DAE065FC359951CA56F8253B27B3878074BF58D3B51CC7BAFE7BB9CF818B938843F78AC68EF8349F37468E81C06044AD9A051585C34D33D76CB8ECAB0C0886CFEA5C725B3013C048DB0B7EFE3792C6777A0B8413481AA0CE5B58228479F90C941517631319415DD52EADC45FFA383F149879CF698F3C7990848353BD5B8E6D7333067AC67F5903163A9F45D681F0C637A5F53F7EC0CD30C270E3B78EE4D575A3040B71C30106C6831DAB1F2C8515FA8A6C5477C311E7023D779365466228AA3D1FC2B819B51E0771C989720946AA19E6B28A463577214C58BD35237C33573A75A11CC1B5DD8595420CB87F9063BB7247D88789F40198A0395C001877CC35A5A5171E3360781BC3588930827339C24233747D9B5D96F6A31712CFD71CB962B7A1974C3ED85C05A525A21AAC83AF06C68136CC9BB8B7D74216DA468D78F80153BB0CD2B2316DC975ED6C09B6384AD49735F1AC99E03C95E8EBC851F8B24AA65DF8117D8312093BB3363D02C72F727F3371C2C8491DD611AB24765FA2665F612517D1D66882056903A67FD4173575166255609A54A3245D74B46C075C04B702AC4BC88E71B757907091C228B0182E10305B7C1CAB0DF3447A93219DF5390A0302F99A0AE8BC51108C7C3397590F4B241165414952840303606E6C1B98755264B01280A8CAEEEC25C0818840D494BC436279A939D96C6F9160A01233AFBD576F46359B2C75097BF15C37047F31A186B7BACBF23AABE9B7AB649938B08687A4B1734A834D3FA62A8A7A180CCA4FD0A74C32A76DB42009DACA9AD0C3A6F8A06699630F56A6C793927D155B229269B1E3C94E0D23BE1EE3121E4B638216C5B722BA3AA3129DD49BF1F93E78D16D1E820485527564405DF9FC6574B7809A8BC289A02EA0E455A3A7813C195921194756558A6D481FF86A0DE4DC39A347CA01562454F589F953837A256CB2BA49F200A7D1B22EF801109E2A45E28C57E201354BE551E351A73036F4B363137340EFA7764C439F68D3C8E0723683AA8254A66284F44737933CFD8C0E61085F2AE264D85C4AE05F8BD40BF29976C6D52E4F1C7FF709CC05913FFC8D7FB91C97DC1E0BEA9DC9955FA28B3CC0B7415C192F81912D70516A\nencap_coins = E75C36E2C2F58F47597A06FF4BE1CACA2984C889E08A9C9D4B2831D6A6EC17E1\nct = 1E1F4437A90F510D20823E989547FFD3CE3589E13926A255FF0F63763812A9C613911A32CCC9B7C760801F101AD6E16BC5592E8E8CB28977597229577F8094ECF800A4BE04BF2655D26AEE456B407631107497675733781D9DF8C2CE63FA9134393FE7CB3370872A9C481C3DB84DC1E5879D495CC9B9F1015D516D8C6DECCACA0E8A599A3589FCD43CB93E33F87FE38628C481904AB9AA991142A95EF30708805233D4EDF4DD03AD3D49DF8B62019B6E0F5657203D4F8AEB840B64F7A07A7B6A1076E9F0824C7034EF6C11EDC2CA24E7071363BBAE5E14E5CBBFDF605198914CCA842E073C4691220B06C5446BF45CF7A3A789926C130E294ED4CC3A4E94464DD0E7CA1DBB57118B2C74FE10B6550907E593C8BA39872E6C9B9D76E96807CB34741BF5A13893AAC9D1567731896A12F157CDF2B7FE8F06A9218A64B60B053A1828C7A5AB7687994462C09AF8D0BB549070BA6B4B14F51C5B3A9F9EF8558745640F1FB318CE9C2C01C492B76DC32E7C27304B61C98FAB163C154914136C27E30786728CED381B18C89CEB08BE0A14B5128B56CE240E14714579DBD48714A0B26EC5AD0082DA92E76839F79900713733F0EA4B08B4D971874E18161F6501873C2521E632EF8C789FCD705E60FA52FFBA643A9F2362E50A0BAA554ED4D4A4A23C3F86578895C991E9D6831C126DD81EBBC6600BC2928051619478CF215D0B4F5A1EDA9FD5AE17FA5017CA2F548E183B45D3338D625B94326C6583D20B4855E01792AE90AE1DA8C6B200940C538F45503C0D3702BA6A1FC34012921CFD3B75093589C32CFB08194849E38E824FFDAE8BDED31DB89D7B1FA62CF445C7F6F6948FAE53FC4D9B1134D9BA9DC8EE92197B04DFE432E7E54E1F370E713283379399D1327B813509DF24C7F5AD3DBE086889696FE5AE7FA53C1FCBA3E58A93C2CD1A3E7DED6049408C6E1D1A0B0C9052698B7E32B068B003A64095130FA418BDF5ECF5759843FF2A23333B2FA88931C8E355D183DAE2513EC099912EA89510B03A5197ABE9DC8ED0064B4B9914248AC6F60D1720FC9BC4DB3DF880C178B353FCD1EBCCB6651A81413EF8456076BF845E62343D30CD425F90E39ACDAF6EE262618958CEBE497417687624ABB8FFFFB6129E43B6CA43E5FACF21E64C970E5671BC54876D69BB95B025FFA32BAC7431175BBCF161BCD94A5DC332E403009DAA140F87CA39E19C630402B05649344B04848A88612AA63B6CB81A9572CDA5DD909C43E86C7C802130902F700A68E9174546B81A73DB1CF784F477736B26350F2397BB44E5FDD0265609543762D5F8CBCBE5A3FE91B1D911482F805C5E0370696BD7857CDF5F3731906036AA44FF299EA8DD3A87D59F9278E6F0581DA6C5E2C1042440DE3C043FBBC425009B90835858AC06288D69B169290696B91AF4D976278EAE1A55936CC8539DEB268DF9E7D2AF1BD869B41A2C77896B80FEBBC89BFCC76A0D453BCB14249EB61CB84707B9C897894E6A1200031E5C0AB0DD39407D4D9CEF304ED56DEF7490EA8D93320CE705390BFF5643C2D2A8304F5212B21B541A8C75F1B7CA1D3956037C12E7510E7028C96FD5FFF864A561E8076263E72EC6913E5D928A62D2756631D3C207604D712D56D508C587FAC0F38566AE04013AFAC3AC6E907325FEB4D625241BB453E95384CC30BD893791A53185FA856376F019D5179C0949862BFB11F34E37E3CC65818B3623F68503F2CB5FF89EA6A304001EE58B39553CBF06A337D21F86BA06182DD8A4D5840E8EB005C0A60E57E2AC5B32E326C5349B4579D1A988D069661B6EA232F58197648AE658BFE7D9D7B71C2E96BA08581CD57E71A1861F74C549418E61D06B551CF9A0EF71EB90034E6F59A14DC6DD7EEF2846F22E7749139F25613EB04737C3F7732E9A85C5A73F7CC9197DB3E63A3BE846CA7E04776EEEE1319C8C44C65C71558026BC6D51C6A9A5F873109AE71D60BDD61E133C28C985D6A8B7D53B13C9962D3ABD5C89AA86CF3EFCEB8479A80C98626AAAFFF76B259EC35E9DC52E604C78BAAA9F9F57361B61BE715C01013B95B200869CCE59B2BFE5BC00746EF37A8DB171E85CCDB339FEB7E08C121E8FBEE764911A297C0D71FBAF477BB8CC4A352B8A0DD7AD59DC7E95E49B971400C0DC098E66054A926302C6187D52A2DF0AE3E9F125FAD746B77C9D65B9AE44E5DB31D096C598B61622F742\nss = 9598FE2A55C73A7AABF3381673FB74CA60F4CF8DD057F818240037A0554B820A\n\ncount = 43\nkeypair_coins = E1953800ACAA85AC02A906C72CB8E8D704E8D27820345F88F71E89C1F549AFCC97C65A12D87432F475509F11E0884FB51B5D970C1B6D2C87C70590CF41C16B4F\npk = F44A0E9B691F0A718F02246FC688A248E3C2F387A55C463F0D976AF9A2399CD4845C22516E0B3C882625AA609B64195C90925AFDEB2901075565DB2562B11D2C07C8D0D94122462C25A794DA3639879A409256018F7418AF91608B63AB222069E31C2AC0233E8F73BA8BE2B0AC0463C9BC79CB048AE517295E8A01D2E16437088D20168F135C4D63B41021060A557003BCC935C6C97B3859176807B5637659F1B5BC4B488D4E5657E9F7B37C320B5DF12BF31330AD27A7F205907D6614949BC97F3C1E94F21DD235606602A5C13254F43AC1BCA2A6269BC5E6A96C31E30C972067A6030665CA7B05A700C53C560860A11371505457196CB33152B10F9B99518D4CA6433724A93219DB1BC834499A019C02665C650C7C0D22724BDC0BB852C9523D1A9E5B06570A6610BD1175A74B869CCA729E8C17ED5101D43C814FB18838F840884A4159BAC515F7B5A637B703385E5F7115CD187E2964BE55828A33656EF0384896525D4511AA2FC40046729F54ACC768353B8001201BF508B5904E3603ABE5B426DFB77F213C54B443B7D5CA6998291B56C379AD5216", + "056198BF5617E58977A0490C308BB5A6873AB980A1364B1D25F0B01C3ACF3221528C942FDC83A9A9A60D819C015FE06D2C684194C56A98C286B2122EA3FB9B18D003CF91453FD09940F7722999AF0645B67179BB11B35A4CC56C2FC1C581F168F1918983EA00693471F6E33144C642DC5A4C28B01EF514449213A4E4749F0B2C40E6E06052D6870DAC120CFC54ABA5143D8BA4FDFB946AF9C90F99CA2EB158F001003517B9AA7A1306973DEB713671A16BA714245BA96723E3453718A3BCA2AE2C1B4D0265102ED901B3A1B6B6EC639A8900EAF67B5E500876137122A5284CF52DE9881352770A9D20AF5AA59C71189694590C549831021AA911948E550765F8897671621E5D3771F1263F87220C0F0B28804726C112A7756C85DCCB8A6FFA3969BC618A83AF5C1CAF2DE9BA439AA4D4D0021633C9744440F0F9A309D1467CCA4D67A917198BB873F5569D8C8B5718A5B65A7457F55E3D1BC71F4A62006D29FDCB62526714CAD2CA04FBC28983B54B6B037436917DA15608759ABBC316E8359A26C55E7DF179A74C39269C02CAEA7E61CA571DC771E7679E611B9EDA31BEF53B11E3524EA3F600FDAB967FC8A23B0B73407738955B20B76C75B971C4C1105B9C5A3557D57AF4DB036454A22093A570F0BB10038BB3A46A0C92866C707C28A91B9E6172314408DCD3B051F363775842274988340165887A027BFB629847B9271A5F66C15C286537C76C31F62B45E2995F0AA30DFCAA6BF2883D1DECA9B7B2029515C564D3B970143C29956CEFF588E99B8025A2343EFA5233361BB2332AFEA2499656203CB712AC8CAE4CE1489DF2BD9223C3C65737C101C0DC5C2BFD83444A29C64D8812CD69A68F004D2596033E903D744ABCB688AE65B0371D711B187B62E6C755F2F947D828446FB45F30C42DA615B3C5F682F2157E940691BA674571573647C09225748416529653845A6944859DC3C62E7C0A9DA78A4EA492F57386EC31B0C8730206E5ADBBB0253113A173E20313610FBF696803718A0D393E7CE4165E004A450825D8935F7738AA7C6A1226640F3CF40FFA6644DAE2280043C501635550BC76E8348D133A55CD73001FA3197C1A071BF30A1FF907813AA8B8986449918C08164817720F30E44828010AA6A11A378261E8B141D52779F73927D7F505DD99C7A43A2DB1197BA33A2950C280549564733706009185A493B59BBA67BD511E4DC55A4F458D9B1003B90A30AA87874FD83707F1CFAF11A4B9088BD41C8D69BCB77853B396C15E24948722943F0E28C4E896C56F7C9D3974144D43A4765392BDB0C2EF5BC72B27B11FF57D03A8214DE0520DFCB3093B5AC72003C615C04F64693F68C0D17CBC34F8CB1EA068D681C917315836005DCB423C0695AD19A06801847E947B045E7B78C9728CD321579EA31E5D7633B121884EF65095354DFE63891945983D54CEA2583AE4B64F54065CB5631272E1149C151ED0715E93A30C38C85C59415ACF73CE76D9453697A3625A607A205204B307DC3C92CB140F1A75C671E916FCDA070567B42A2AA12A2499E26293DA440B664BB8337B6D5497471B002435C8B40872AB33E490268F2AE99C43BBC1FA7D8949CD772A745BD9AB018FD3F6ED02F32CD2BF845923\nsk = C842401604C8C4C78D8417C804C2723B14733044AA2755897F65987951218361A07AA84D6AF8A956454036B79E145C93B9D4B862146BD4DB824CABCB61FB91BC306F851C9E93AC266E3C9E9C939BE422B07E512D28503A6EFA9D3EA8861E39B1AD481B8AD1805A8C0D48179AA1203C2ED7BB59D5C8EF651281C77F83AC7B49EB997965B161DB025B47CE6E2C09EDD41F5EAB1C8B7B4D20783D60C90DBFE6AC387B629BE10351868186F6A0BF68905F8C1CF34303FB577C25212919533C7044697D9425BFB76BD9D367F43B2D3613351D95395F4C2BAE63B2A4608C69364F41E85D542A08F35B940FBC3B48F63360B50AA88259C7CB4634E5A34300C5957A3644F6AE381389B53210110329FC61519113C17E64782239941CFBB11A647B814372E313205844592CC3C17319B41FF21A0BDA3F5ACAC3F18BAD085C8F27B7758B7519316653BA9C253DC94CCAD37F98D00B9FE67E2A13662C77921E4A9A86C8089682811E53A60B1089A1038483E615E6EB109A3B7636E02A44C2C3A81B96D84336CF594D24172BE1BBB9C7B3685EA45E45B81D731B9B75CCADBFDB768119B20A0C346156CBCD5BB107A00A0E3C6E949B9DB0B4AE21026C915908C5F38413C648EDB20623F35B382B0CD5F4A8D7062BEBBBCC9E809BDBB5C84042BCE2E81BB0D795C6786AF95A7E7B0629F7978A03558F98709A86319570273BEA71986AA92560260D022569D4C98A85BB98AA198DEFF63DC6BCCD1E6032EBAB8CAEE5CF4717B17D89125C67A8A472C371153A4FC9045FD3304A74B983936060F42C80454A005342C1318A284BC5B9A71A39E748A94739536B517DAC1619C00DB64C81001ACBC2793F9F29B42214442FBA962F331D48C300DA2186D21A4DE61C4B5948C7EDD1B9FA5865CAF2280A81B9F7171137D6A678C92745B1AEB9DB686BA84D65F6BEABE332FF036BD113161FA068E74032CA5736D3EA3A01F1ACFE067DFE5A5B398575BB9B148EE6155BE2B4B67B348420CE758C5855102FD06A1FE8D347EF1B073F064F1F7926BE5B2343029E5B7468E93B8ABEC6BE231B6BEE714031E04ED23C6DA37032ECC00374706EFF7453DD931D80029382F17E82A85AD7A8B25EA97D1D2AA21238B25517008B0400281168328B02869889F7F142CBF1AE8DDBA5EF2713DE649AA9AC56229494DB211B90B96AE3B2829AE528C634110A3BCD355A243F3654295B0B79B9B7D43272321959B3632313AAC107C8B7AEB83172778B7B199E736307FDF5AC6AEB40CFE750B7227F46A00B9000880D405877B63FF6C616BF4A51CA11C863A79B0E099308B42CBB7997420008268A3B762B9A5E181DA14A4A92A5B55E7950268A9A83402889A98835CB9562A5A627750A5348B3398B39783009A081A058BBABCC7740AF00B8CDBB4E0842C7F14B47FF4CB424B6252CCCCEE30398023A9B50B4BB4A2C1FF0A007A0A54EAF421FC2113F0353C7A1DA6CBF3C7F5B448B86534FCE3B3B82C3B82C3420BCA7C865AA22461B3D95522E9792B37B78C5555A62A3439F3BA7646076111336079BB8352A286E542094BB58B07CB832E2B288021034ED4934469B1723E57E57E358942730196140F47658258A761EDCBDC046C08BB897F349B2930214C105792DF1B45AC18E1E05C136921935F40951FBACE0ACC5C7BACBCF34C35DA30A90671B63E50525D08B94632709B119FF39925362149E5B7CAEB6A0104046ED846B41BBBD9C6B7EE8F3AB4E672B9353A929764C239832D9F6604522072C964AC98196D8302275159B9CA71B19B75881D26EA3374FB74181D558812B602FDD094B9E40692697CD4CFB1D20570256C0BCBBDBBC8206476FD27C0D0CC624E839C32254C0D76C558999FC2779AC592DFE07A347E9316A3BAD42B78A048071CC9B67E46AB223A138E747227F777BA8310C83D170C2CACD25FA391C08A6D35096C704CB3E275D53F32C592884B096A7EBCB04ED8812F5469306EB6166073DCCA7A5BC26357A6702B51688A9C13353BB1883D47ACCC185D16227EC704A60E57186E3135521CDF8AB1382A7B70F80BC782CB75F28C494853175599290657552CA4B406B54A9E607230156E14667CE32A68C3938AB9B309A36AE9B524999812779C1ACA66208242A188617469930212F23CE0EA81A6D63A509B0686C5A63F44A0E9B691F0A718F02246FC688A248E3C2F387A55C463F0D976AF9A2399CD4845C22516E0B3C882625AA609B64195C90925AFDEB2901075565DB2562B11D2C07C8D0D94122462C25A794DA3639879A409256018F7418AF91608B63AB222069E31C2AC0233E8F73BA8BE2B0AC0463C9BC79CB048AE517295E8A01D2E16437088D20168F135C4D63B41021060A557003BCC935C6C97B3859176807B5637659F1B5BC4B488D4E5657E9F7B37C320B5DF12BF31330AD27A7F205907D6614949BC97F3C1E94F21DD235606602A5C13254F43AC1BCA2A6269BC5E6A96C31E30C972067A6030665CA7B05A700C53C560860A11371505457196CB33152B10F9B99518D4CA6433724A93219DB1BC834499A019C02665C650C7C0D22724BDC0BB852C9523D1A9E5B06570A6610BD1175A74B869CCA729E8C17ED5101D43C814FB18838F840884A4159BAC515F7B5A637B703385E5F7115CD187E2964BE55828A33656EF0384896525D4511AA2FC40046729F54ACC768353B8001201BF508B5904E3603ABE5B426DFB77F213C54B443B7D5CA6998291B56C379AD5216056198BF5617E58977A0490C308BB5A6873AB980A1364B1D25F0B01C3ACF3221528C942FDC83A9A9A60D819C015FE06D2C684194C56A98C286B2122EA3FB9B18D003CF91453FD09940F7722999AF0645B67179BB11B35A4CC56C2FC1C581F168F1918983EA00693471F6E33144C642DC5A4C28B01EF514449213A4E4749F0B2C40E6E06052D6870DAC120CFC54ABA5143D8BA4FDFB946AF9C90F99CA2EB158F001003517B9AA7A1306973DEB713671A16BA714245BA96723E3453718A3BCA2AE2C1B4D0265102ED901B3A1B6B6EC639A8900EAF67B5E500876137122A5284CF52DE9881352770A9D20AF5AA59C71189694590C549831021AA911948E550765F8897671621E5D3771F1263F87220C0F0B28804726C112A7756C85DCCB8A6FFA3969BC618A83AF5C1CAF2DE9BA439AA4D4D0021633C9744440F0F9A309D1467CCA4D67A917198BB873F5569D8C8B5718A5B65A7457F55E3D1BC71F4A62006D29FDCB62526714CAD2CA04FBC28983B54B6B037436917DA15608759ABBC316E8359A26C55E7DF179A74C39269C02CAEA7E61CA571DC771E7679E611B9EDA31BEF53B11E3524EA3F600FDAB967FC8A23B0B73407738955B20B76C75B971C4C1105B9C5A3557D57AF4DB036454A22093A570F0BB10038BB3A46A0C92866C707C28A91B9E6172314408DCD3B051F363775842274988340165887A027BFB629847B9271A5F66C15C286537C76C31F62B45E2995F0AA30DFCAA6BF2883D1DECA9B7B2029515C564D3B970143C29956CEFF588E99B8025A2343EFA5233361BB2332AFEA2499656203CB712AC8CAE4CE1489DF2BD9223C3C65737C101C0DC5C2BFD83444A29C64D8812CD69A68F004D2596033E903D744ABCB688AE65B0371D711B187B62E6C755F2F947D828446FB45F30C42DA615B3C5F682F2157E940691BA674571573647C09225748416529653845A6944859DC3C62E7C0A9DA78A4EA492F57386EC31B0C8730206E5ADBBB0253113A173E20313610FBF696803718A0D393E7CE4165E004A450825D8935F7738AA7C6A1226640F3CF40FFA6644DAE2280043C501635550BC76E8348D133A55CD73001FA3197C1A071BF30A1FF907813AA8B8986449918C08164817720F30E44828010AA6A11A378261E8B141D52779F73927D7F505DD99C7A43A2DB1197BA33A2950C280549564733706009185A493B59BBA67BD511E4DC55A4F458D9B1003B90A30AA87874FD83707F1CFAF11A4B9088BD41C8D69BCB77853B396C15E24948722943F0E28C4E896C56F7C9D3974144D43A4765392BDB0C2EF5BC72B27B11FF57D03A8214DE0520DFCB3093B5AC72003C615C04F64693F68C0D17CBC34F8CB1EA068D681C917315836005DCB423C0695AD19A0", + "6801847E947B045E7B78C9728CD321579EA31E5D7633B121884EF65095354DFE63891945983D54CEA2583AE4B64F54065CB5631272E1149C151ED0715E93A30C38C85C59415ACF73CE76D9453697A3625A607A205204B307DC3C92CB140F1A75C671E916FCDA070567B42A2AA12A2499E26293DA440B664BB8337B6D5497471B002435C8B40872AB33E490268F2AE99C43BBC1FA7D8949CD772A745BD9AB018FD3F6ED02F32CD2BF845923AE96EC4EDC7EE08108FE6C0411A96F48731066AE4BE12EDEB7FC667039C9C1DE97C65A12D87432F475509F11E0884FB51B5D970C1B6D2C87C70590CF41C16B4F\nencap_coins = C068B1A68F7F29E1A8313876C4D37A23167E9BB9EC5A47013A5A840DC77D4BA6\nct = 59FE8F1530E8671A1BF5B9FE284FC030EDBED9D0656D42933C7F091D994B53A09FA1AFCB3361B5A8AE286C7D2CDCAD267AD82A5A424C2D1F79EC8EF21AB0E19DC493B7AFED9B03D78BEB2C913241160E63BEF1079E18B01DFE1D23D5418CDC8B1649F035E1B071CF7DB1985EE868745BC3CA680989C8A3155E7FD26D381CA524AC843FB12F3E569D618807E4D7DCB76448F8F9FA28B533AFFC1F8D8156267432A9887FD8BF1B6B4CA4D30FF2A945F23C2B6CBA829834EE1AA4509CE65577AB66BFC9AD8E50DB291ED59BDC75A75B987097C1145A3A12842AFE7F1F2B8CD78439875182C870711283ADAA8FA90A3AB6CCEE87A6E734CA8941D60116B203ED4E366735856496CF0DD33CF4A6BA50ABAD18B841D07DD695F5E1C51099E846092D9EFD32891EFE2DED1831EE959F4866A04F47F6F3E35EF846488C8B890E32E60A43077AF213EB0EA512EB545CA99FA28C5C42A551FB6866C436422BF36EA82EBA8D1A9A6B01A92DFA7EA2B46308BE01586FA10F534328DD11BE26B2A60CA91C070493FDB83981922D6AB2DD316C90F25B0BDDF2519D56A71B2D2563412E64DF4B0427097A03E816BB84F0AD82EE001DCC36C901952CBEB1B96621E0BC3B941FDE109CC9192C60411D0AC294F582CD103992A0101111FCD9491B50F1CE199C65DE7991D7CE44DEA4EDA1678B828E24039A3BC49F39B4774175EB48AC8FA9F3AB0B21664D78C7F52C85538D0CCED54C441D74445F259FCE7048A029C23A04BF242DAA252993C65708F7032B107B2DCB1A041B57BA3A7DFFBB3C5970BDE9FA9C69A974D03ADF233119113A4496A6C5E1CA7C5E84CD333BB0ECA6EC2247E7001CF2773D28E63CD3CD59BE8966E6F19A26E473F3FFBB08A5D9BB00BC6D0BCB9B12EFC4E427838DB72D40EF79E0F815EFA5267D69CE469EE651656192F76B88DB102015A27BD8FFEA0AD1AC89D79FE1846E354DD577A69363B5965E1A9E69B4F63CF745BD6E38DA110C98065C6D11CCF18727217A0323463897342F44CCB1E562CC6CFE33A3C20283134F65BD35BBCAE283A32C67AB4D7469BE82E028FE9700B23145DF933F781C33AEA5BF50F14972DC0C052D1710BF7F2BE0BEAAE0C2443F8C338EF6194BE32F40DF731B791E75F701F3660F6BD7DF0A7B6F4A73AC6C8FE7F55C1E1D2FBFFA0CF4260CB43BCC8E4D1A11B282120E70367539FD8D1BF5354BB4B3DBE5F9B2406652762364737FD18A5E0BAAEDE66D087A21DA18C728DBC0C40F3CAA3C4ABB2D75D957D552C9715DB4B266113996EFAB6B9D94378DB8720EAE344DB903D4CE9967E4E16ED0D7228E26926A3D30BF205F4A57E6E127187E28797BC0CEDF2CA9DC22B30152B337C065FF60A785D6734A41B444C7E3F569472602249A3160FC59610C12064CF7CD38BFD2417F6DA56CF648CB9EDB57741608945F90D8486D769D759D0A576894CDCAE477D482690A91F981D542767F6A68157C87DF57DD06D808B165881FBE54964619D2370529911E6FB6D7E7CC4A7931B34D933A546C2D8B13DDDE75296F46E9A8902AB05529950130C53126082E1B62C2D4443D07E2BD5BCC03B5C7A58C9C8AFB1A71983230E58876400B78ECD878619FC2EA6F100C42A1BC1BD1BA2974BF2A01CCDDA2F34E4B1E87DE3D6F5ED7BAE65005336FD3513239602304533BE191ACBC8AAE4838CFB0FCF114C1E1985218C805828046F703EBB59DE7071B64FF6D8A75CB68129F63AD190AA4C7D42AA62A926B6AE1DF8F6AF233396132E3ABE851A8D0553259F746A9405DE0C9919BE7B2F1874B4930BFD7B577A5F028E7E169241A74DE98F8208467146F93EF835FDC74F179812661CE46208AB21F7F96EA75C10E516E4EB29765D97DC6E01AF07080B75598D93BE79D1CA4508F6048D9130D5178EDA326B8EB9392AC768AC5B8888335865A5BA867FF676C7412329AD9A4B903ABBF485980CFD8F76FCF579726BC16EDC8C3092534C03AB2BFFE9F05C08904162AA4B367D06A0A56315602113CC1C60F2D54F9C1A5E47B966A79301DB6B46685405EFDAA97D3C1E0E9ACE97A86EA35D87C83FAECB4F853E1AAA78ADDD69380F953B0DDE2BFF9A28256CAE8F0FA394E2C95B094E0FBC9F7F682BE79AD0B264DEE34F894F413BE1418389D8B0BA634123DFC88B3DB13B4951F878A99FFCFDBD8E0408D8DC7ADDE5D4B4A949A6EDCA0C987963D1AF9855351D1BB\nss = B6BD9B7A5ABC1475F201998F20D33C1F880AA2920876568D9010B1AC52D74F11\n\ncount = 44\nkeypair_coins = C719F9B2D16399B7326CE4ECA30DABEFE8FDAAB18E9F6DF888B0A134EF355570A49F3B482A66256D7F667585925CB7F58894E42660EF2573AE33655C231DFB0E\npk = B7572F8BD73104745EAC83154707CF81C85377BA36B111C9504A180F01C880D08B55C3008A9594E75B3F026A103724064393351DFA7EB5AB9A1C774A59C47B31437011816ABBA42B75780C1EA8769A7BBD1BA60E686C726F2AA6C9101614C213A8147CABF658D5505AACB288F065BD31C5B7494B377EF1AB72925FE513C49CCC130CC542AA34ABD31B5D99CB8F6E2B9A1C5417A4AC9C91011627E6353CB6529AC19697D05D076BB197790431F9CE62A31FB8154797583692EC9ABF67B678E0C204A822E228B09BBB7B4CB3A5DF788B0930841ABA9E4F7C1212150C87C4B871E978DB33A5395356B25AAE33E3B9D7153E4A497C7D7387AF0C4367E95FA500245ACB15B7DBCCF9A013326C2B0336B66C101AA499159A7C875EB6CEBE292D266821BC193CED74B04E61845AA5B1DDC953699CBB7743CD76D930BFF38EFD943C34B01A8D973A81247D966825D1A9B3B2FBC5769C9D5BA883FC357946D54F3CC3090EE48EB2FA80B4D86DEE07C57C215F07DC23AAF8C4AAF2C9E03CA2DAA433FD9C584BF582793919449925F27786B6DC2DE9C5CC08220FEB501FB7E2900C243B1C357C8FC814CF87B233B70CE6F0938B56698C160CA893AFA877BBA49C0A8F606E30761D9DD14BE7A40F8DB95496865C2441A47AEBA1CA7458256AA5A910948D4C920D32712C55CD8546809704C1760C8F8ED991D8CA570CAB3441782B6E4035D82C24105397CFAA8AD86A385327873A228BB0C02801A50340B70E5483709EF03DE0483BF08B940C4AAB7A61C24E9947875C8E2B930DC208ACE4752DA4D0253EBB2BFB333A1EC9BDEC73283D435C4D061DF6B0692DF903C6481179E07ADAAB8D69277958458F6FF5C6E4C92804EA47BC8A03BDD707C1A78D912467A83575FE74AA25C043FEEA0BE5899210D7C8BC8B669FEC5840F5B1782A5A9D947E78301EEFF9B12635C9B15176499A3593362FE5A946FC98C7083BB185C2087B58B6D7CAA3599427259A72C6F89FEDF61F7E111C04F008053CBEFCA2CA13A06D09D9494CF29F82C5B93BFACAC8D705E35874D0297AA15C7FB181878B32459CB09D6D489671E7700E4731E783C73C86B5B8731AE765A639B20F8C69844559B0763B5CFAB7396C1AA09CE238227C29BA34A48891A39CFB37F1226CDB35517D354D422000C3709B7CF53BB9807E2AE7321B38BB29C327E5EB3D02036B1A4C61A2A66A3E91AF4288875719496003988B488D84535CB66A4A1F1AC69952817FC13FFADAAFF145780AA02AC41CBEBFCC9D798CC4D9A090A4212F0FDA861B8760CEBA5F334C1A54D52567C2B51628455C85517F67BAAE5C694293C29A684984AC3E711501D5219FA8279BCEDA4D8AEBCF17BABE31FBBFFE6C297DD27CD894BE83B416EE182306D65D2A962F64811AD1FAA4CE72A6CBB1C5D22A1C4A2C1ECA36B38618AFD0A928C4DB55B991428AD72A40679EC7521A170929CF10A41CF63BF0DBB5F1316A23D2ACCE5C7C34C67F6B2450F36556BD987B525A009C77AC7E23355DE3AACAD177AB7538EB7B25D613A3E9C11C79E59FD9EA263C0178D47885C7384B492909FBC63AC0B2A4AE455DD3446B395C0BD001765F31C79649C53453252E02B98AF51F23F8B2F5F2C8D3EBA71CE67A95170237B7A408235429826637F8CBECB11A4DC351FD0134A0CC7869983A02A50FF3958E445A9DD35023900B7A3C41CCB66A54628741ADBA17DA89CEF8D83E8F66893BCCB50918B6CFA1480B051DD0153FDF5A0561C2C782DCA0A02861B87A8AEB304927716884905E1E0A004F3A119B3293FB0850CBBA7581F1363598C1384AB228D8720B4C6124E2AD1A9774D7A16880542D30DAB2F0796FE5536402BC10326C7577971C496083E0C24541E07C813A01989013AB9580ABCC038284588294B743086357D50B01E93D841C6A7B929D32291E47D2419B464C3C692847F7706865A29335A4FF50C536991FCB790D0DE50F68914D1CA5B438BC0A43393510FBCF15A895D5D546850C0FB1D970517819E841CC42DC279E8B398A563C174C57876605E1212BE53AB714486588F96B8599262D67BBCE891B90308959524355338355598B233AA89E4679749207F3BA1086CCCCF836C7E3528989D0848B947487781A2B025955B2C748C700B479216C3CADDCF63564392D6515767B771A21F89BF2D90CF3DFC681C2FD81792135E1938CA482EF3C253D8976201852444E\nsk = 0C9C633FF39D1C6C29F8356AA02981DCF189D6535E2AC00750C30B111A88B21024E4823E7D543614F30112F7C78F1679DAB68B71AA992538658FD0C8E2984ABDC09647453B3FD99DD860238CF40C9112A7DCB57E06540148EA4AD6F97020474AFB65C5C67AB4FDB1515C6592941B1E38D4097155BD194B5324F464DBE678ECE9B5F8F57822F87ED7F3A6B470CA3FEA3314B4BB404CB66E3BBF8F2953F2682CDB65CFB47906B3962443775796564D75CBB4B9BB24A8A98D7723269E8204BA89782F974AE591808E97CB2468252C8539C2454041C9232F33B43ED8359DD6856C98BA4FC09E92F9A4AD497F8F1159E159B5AF795AB09C20AA753931F47764B6CBAB6968C7A779802B469ABB1E7F677A0A485FF5CAB2F028112EE8C35152703BB14127B33FB00A0CE21CC607E49A73544029BACA215A67091A9AD89A408794C4D2DA78557B1D31686C6B4C3749958EFC60891F12C9E0B7C19613823EEAB1D8F672089339E46C16DAF0C3B7D53727605C26A723518A2651D8762AC373817BBDDBEC1EBCA2CF91FA2A66896C55A4C946A791E5502FF19AA21CB132322BBFD127C10D87563028BC49B222E5401ACDC81991828E4C111A54566E5724B40A452C0F4632B7B85F0445C881938134D516113560B0065BEB409FCEB25F796C0BA0AB190FAC0214007916CA93C2ABB11BD88553AA34C3C518BFEC423728C86E529C300A1F70225F2F683911040FF9405614E1BAAC070E0E90337E134E3C93081514A937F9798EA7B57B3A3A0B829A2697B0778C802116C067A5", + "C368576395C43D33882F97C770519C16426284E19BAC180A2A6CB85D65B1A115316B08541DC231C123C184E82C691F20749A4B92F2D1040D09519DF7678AC282FFF9CF5124ACBE04388CCAB61BF71B87AB3B830A3EF6700A68B06770012424031E89A895AE81C8ACA9169D6495CF01CD8BA0C27AE132C16AAB0EBC4B13ABB37D67CED10A0246E87BE1233FF09A6802F6371858972D21B48D410D8CF3A8A1E664F62028CF851A134037142C20E8EAAD7DE32581B39B5D93221CF72124A73DAA2B61F3D7C8F25A973A815B351206800BBCBA60AC8C2A86A7758B38339751C23EA5523D84EC982A260256C69AF739349D206CE9C9A70DBB0A950A0B63815994A6878711578BC22942914DF8489EC5A09258EBA796E8A6FF5483A71887E55783A94201E5B88898870E67D32EAAB132519624F4B28F22E80903E591331CA792C0CEF824BC62168BE6EB8F7BA299BC519B0C370509E38377F171761521F8FC882D1B8D0DB3C2109A43D1754F75529F7B071B7492B753688FEEF12FDA217CCBA484AB79192B7933781811986430BCC010B50A5621EC15DC7BB545CABC77C336892A0DF4436E732B905D70769865CDEE0A9906438E9D921F521862A3227BAB93202DA0CD19F6221BB68FDA8155AE38132CF2A30A4A5C3DC0B17DF0016FAC3BDD56CD9D06CC8F2C6B4AC41207FC1AEAD0CD87506CAF5C043941513F0A4ABF725818C7686F0745ECE93C23F2951EE263F51A3FB3630076DCA4EA80A156DC6B4248246F638024B8782C9757E076CEAF18CC27284C321BA91766454640AD32D97E65650B39C9B23FA80405F8CEC82ABF70EA4F4D24C87E8B253F708F9A563C78655877795C4F05024A788DD4BC7EC1190B606602AA40364692478B3B552C46B5720ACC5042BE92BA8760924C05A60032C52F63B40AC50086A62548DFE9B312F2904AB17DA59842DA877355360E217917D7A3C3F1A9B9F2466C8FEA980BE798D249ADE8389E626A4693AC38A844294842382E0C5B92BC25B29ABC3212543EC39EB2409858F9C8A22713B043713BC00F1A77BFF5D269698B9C91706BF0326899791F161B481B531E77F95DE95B45522B9A4F0423ECA7AFBE418848137B925A6AD13BC792194522F00661742F5E4A0E4D85AAD8B36B6540A1B25A4A38C32305E543A6A13C37B48296FB84A3464DDD3016771B79E33251CECBC2FFCCC6D3C06D4A660622D3630661543A001A3F9CA586C9354F513F3BA5C6DE933DB0D0690E4102C9918720437F437354A3107849775C95C4417BBA787F172407FA0564498CFF67C545B7323C442B3CFB11952079F1D11449BBB622630A6945C402C7008DC7A35F380C2DF7C5EDF8C9C64432AFA34CF0547882F202B7572F8BD73104745EAC83154707CF81C85377BA36B111C9504A180F01C880D08B55C3008A9594E75B3F026A103724064393351DFA7EB5AB9A1C774A59C47B31437011816ABBA42B75780C1EA8769A7BBD1BA60E686C726F2AA6C9101614C213A8147CABF658D5505AACB288F065BD31C5B7494B377EF1AB72925FE513C49CCC130CC542AA34ABD31B5D99CB8F6E2B9A1C5417A4AC9C91011627E6353CB6529AC19697D05D076BB197790431F9CE62A31FB8154797583692EC9ABF67B678E0C204A822E228B09BBB7B4CB3A5DF788B0930841ABA9E4F7C1212150C87C4B871E978DB33A5395356B25AAE33E3B9D7153E4A497C7D7387AF0C4367E95FA500245ACB15B7DBCCF9A013326C2B0336B66C101AA499159A7C875EB6CEBE292D266821BC193CED74B04E61845AA5B1DDC953699CBB7743CD76D930BFF38EFD943C34B01A8D973A81247D966825D1A9B3B2FBC5769C9D5BA883FC357946D54F3CC3090EE48EB2FA80B4D86DEE07C57C215F07DC23AAF8C4AAF2C9E03CA2DAA433FD9C584BF582793919449925F27786B6DC2DE9C5CC08220FEB501FB7E2900C243B1C357C8FC814CF87B233B70CE6F0938B56698C160CA893AFA877BBA49C0A8F606E30761D9DD14BE7A40F8DB95496865C2441A47AEBA1CA7458256AA5A910948D4C920D32712C55CD8546809704C1760C8F8ED991D8CA570CAB3441782B6E4035D82C24105397CFAA8AD86A385327873A228BB0C02801A50340B70E5483709EF03DE0483BF08B940C4AAB7A61C24E9947875C8E2B930DC208ACE4752DA4D0253EBB2BFB333A1EC9BDEC73283D435C4D061DF6B0692DF903C6481179E07ADAAB8D69277958458F6FF5C6E4C92804EA47BC8A03BDD707C1A78D912467A83575FE74AA25C043FEEA0BE5899210D7C8BC8B669FEC5840F5B1782A5A9D947E78301EEFF9B12635C9B15176499A3593362FE5A946FC98C7083BB185C2087B58B6D7CAA3599427259A72C6F89FEDF61F7E111C04F008053CBEFCA2CA13A06D09D9494CF29F82C5B93BFACAC8D705E35874D0297AA15C7FB181878B32459CB09D6D489671E7700E4731E783C73C86B5B8731AE765A639B20F8C69844559B0763B5CFAB7396C1AA09CE238227C29BA34A48891A39CFB37F1226CDB35517D354D422000C3709B7CF53BB9807E2AE7321B38BB29C327E5EB3D02036B1A4C61A2A66A3E91AF4288875719496003988B488D84535CB66A4A1F1AC69952817FC13FFADAAFF145780AA02AC41CBEBFCC9D798CC4D9A090A4212F0FDA861B8760CEBA5F334C1A54D52567C2B51628455C85517F67BAAE5C694293C29A684984AC3E711501D5219FA8279BCEDA4D8AEBCF17BABE31FBBFFE6C297DD27CD894BE83B416EE182306D65D2A962F64811AD1FAA4CE72A6CBB1C5D22A1C4A2C1ECA36B38618AFD0A928C4DB55B991428AD72A40679EC7521A170929CF10A41CF63BF0DBB5F1316A23D2ACCE5C7C34C67F6B2450F36556BD987B525A009C77AC7E23355DE3AACAD177AB7538EB7B25D613A3E9C11C79E59FD9EA263C0178D47885C7384B492909FBC63AC0B2A4AE455DD3446B395C0BD001765F31C79649C53453252E02B98AF51F23F8B2F5F2C8D3EBA71CE67A95170237B7A408235429826637F8CBECB11A4DC351FD0134A0CC7869983A02A50FF3958E445A9DD35023900B7A3C41CCB66A54628741ADBA17DA89CEF8D83E8F66893BCCB50918B6CFA1480B051DD0153FDF5A0561C2C782DCA0A02861B87A8AEB304927716884905E1E0A004F3A119B3293FB0850CBBA7581F1363598C1384AB228D8720B4C6124E2AD1A9774D7A16880542D30DAB2F0796FE5536402BC10326C7577971C496083E0C24541E07C813A01989013AB9580ABCC038284588294B743086357D50B01E93D841C6A7B929D32291E47D2419B464C3C692847F7706865A29335A4FF50C536991FCB790D0DE50F68914D1CA5B438BC0A43393510FBCF15A895D5D546850C0FB1D970517819E841CC42DC279E8B398A563C174C57876605E1212BE53AB714486588F96B8599262D67BBCE891B90308959524355338355598B233AA89E4679749207F3BA1086CCCCF836C7E3528989D0848B947487781A2B025955B2C748C700B479216C3CADDCF63564392D6515767B771A21F89BF2D90CF3DFC681C2FD81792135E1938CA482EF3C253D8976201852444E4E23909B028699D6677EABE6BAC4BC4E8437ACBC52B0B17F1DF5760C0455C2B5A49F3B482A66256D7F667585925CB7F58894E42660EF2573AE33655C231DFB0E\nencap_coins = D5668FF18683EEA789415D6FA2A5A1031B2980B1E641F521D5235D50E04EAC25\nct = B1664AC2CF2E12F59183175BB33511DF920DB2B2258D8746A6F30F48B33418CFD66A9DABB321AEF9451EC799466EA241F95458072460D202FB825408C503B76920C7338B87EFC5575A064499205EBDD591700ABB916ADBA5BD529C7335A144A4022ED445CBE6F4D45BE5377B042A8C2494AD0B3B91E1DDD5E49F73B3BCD8857037BF69D59F69CF58BB75FE22DEAE451B1F6809E42F3585FFD775F0B2B05941EFDA480BA84729CA6F08865087D4D056F5A9AD149E7D3CC5E3E217ABA5BFD3DD2C6E7DD7F7369B46CEDCA5A666C863D336F677798F682209AC2398F18E2C7F9BF68560E4BC40A258A522D601E1F5BE29DFA6FBE78E3452CF7A6E20FC9A63E655EBE57C1B83A5AF3A86CA71A2EE1988D2BA0465D91A776A6B7A3B9E7D9B12CC8C861A82CE53601BC97E2F402D97E95698817ED93498F02444E3985CB4138AFA6AD3365C1EDC7BB34A4605590CB87E523F9272FF2068A168DB613306BA2A0CFE3E9DF55B2962421950049261707316E6B648CF6CA3EA6197C50CD958535292A41BCE03D9C55B99E3CDC40CE704AA1199FF15E47A2622E87E01910472E28D64F74B486F710278535E73FFCDD3195A553C8804F956973DF901B6EB38955605D7D18BA0D74F258BF51DC64B113274DF06F9A960338B0CFD7F3CCABE6DF9C7A9FB032317C30FD233A35DF1D9781DB859CE3CE5DD8B1C0013D48C3ED97BF5AC8974FFAC5A22E3D9A6D2C1A80F0D795B2FD318BB920D21FDB3104AC99A1C508563FE41B9E09386DA2D481152ED4E55C12544974285E43F911DB763F7A4B9A56A5AED302F64961810DD75C07822FE95FB4018D9AB00441BC68C0FB27D55337B948C493711DBD37F1B771E4B89DEFCCE6745B56BB72F60908B4AAAEC0485277B14C358021C6918001391AD7AFD48181E4EF024AE1BF150E9572F3B884DDD4E157E0FBA705D99F11F1C720AE7BA3F3E4DA7374BF06D1952E204DC86C1080572CFB49EB269E0185587514505F7FCD4BE42DCABC3939ED33F2FB2ED26A16FAB1030B8342133822EC83F27B91D12CE231326D697482AA2B4DB9695F3666E6AAC849968AC63BE4E6DE69A0B05082D55E72B0302F9AD55C25E16ECBD3C1D15E7975E132D92154F27269AF540DF9B539842144E8DC8DF65B7F52C77E5F0731D5C07FBFAA87A28571A4C74FD5485A01CB40A330A9B174D8A0CEB9CEC5CDA7870EAC825CCA82B96ABADD9E9DB00D79E18C752B051056C089FBE34A514A02F8B4670D787E493B26AD8B4DA87F8365F920D415AABEF322C6AC190B92617534067E8E42E6DDCC2D53A7A495B4B87A84016ADE07E8EABAA23D2B4D6547DDDEE28F88625A1C2612B914256311AD2DAC744D9AB6D6A7DCA054F7C99605C73614184ECE8463EBD56F4B483945A307518E91F0A6D39A7CB75173F5C7A886B91F1073F4C318845434281E126F832D825DEC5B3F5568185E491A61EABC1CFB6EFBB935472BEF73F3A278ED6AD2BD1045F12C4C47B450F3E0350F52D9ADA5B5EC5F6CE7518E0845B555147696900A4C97596F80B118E499AE9A53B693A2B6CE844E632911D34F1D26F5DB40A0A2CB56FBD45A552000857A8A49D68CFFFF7CF7BBCFEDC792E48CF76450132B4EC38D57CAE10F183214D4141F4D570F3E85404F8D76ADF269A9E6621D632234A68ED3ABE134900C748CBDC09CEB97CE8E2AFE7E0E4149407290CC056DA064ECE736D1C836881CE0EF339921F4478C30F987A5C785EAD18CA6DED77511864B19DA9E30EF58FE251AE5A36B4F658ECA586A79A02449A8AFF34A68ED2AD5E62564546C8C0271894966B7EE2148B0872A90A489DB4DA7848EF6822FB25A213BB33CB90911FE5ACC31DFF11E02BE1FE8A6A47D72FB22714A8411375A8BDFD51092194F50FD2312943285EA2949B279960DC1C350044A4460170B04470EA0BB67CE4D90B5FC8414DA617D9EA874398B4E70FFBADB5B94E717AB0441641256A3E2AC2F5C5DDBAD12111B32774E4079EB2BA950923509FA916E2DBB16BEA5E15C35EE84AD9D30E185667DABE64AB16950", + "256AC6FDA71FF467D09E3E70E46ECF190CDDF9159064966AA7A018C6BE7142AA782013E46C579489D6511538506D8A802C437ED8C5E3AD67E003501013C463DC318098E27F3DB8429D978B17EF56E24C608612DC3F6946BC51A6C78C012042B17234422443073A27B15960FB916DBA11D09E2C62A88523A\nss = B71D423E54EBA50D15AF507AFD30807190B89997D6618E12A66EEB39658B413A\n\ncount = 45\nkeypair_coins = E9ACBB774BE970206C3A738E243B420805A509FA59FA902044BE2F0D013650D21D9667C03155106785069387CE7D25CB09C5516D52817201D6653F20E775B453\npk = E7C99BE7540833828E457C66EDEC8E201B07D8068BDF671086D6AF0BEB628685790487707B66BE4C7341C654A8119774E8B262B2F34944898E42752149039356C1348EDA779B526DA7AC838551855A4A8AF5780C5567295DD16011E3177E267948BA7643174391A34C5597B7AF774256329F211518E1A67B2F35898E610F49500C2B4647297723004AB77F9B538524A9B96B1E5FCA8F224C2E24701BB726735B408323784E9AFAAFDE570B2F4C2BBA88BB54808EE73AAE69BA352612268E9B4460F004AF4998A6C484474C0D04111F2D1091D31443EE2447BE719E8F4C3A49E918EEA7870F199E1507BF0BD543DEDA7EBA63AA1704A02ECA523AE006853B5E09706259605E72E78AD6FA602BFBC7BFBB0D2D78B5155B3D2017C9086803BE862EF501196EBC2AF13B2B0569473E9620FAB2C85FC23874AC14B59C0F082029B553184B01C76D856858475914F025DF1914C16A209DC90A306914C3371A6CF68473A431B2886A8CD40A5302834A73359E001658B90725E02E63C27403FC0E1953B11EE6A6415815D2B2BDA0B13E54511C96B801DA22B5AE94B68DEA940EA4787F3A1506E290696C3535B8CE73351A6E48BED272AF5E456904AA03094210494C90B280C2942682DCACBEC8C644E9A36D326816A42B23B96B751AFB7B951A87D8E94DB48932AA14BF73E92B06B85F7AFB4387E949645C5838622EF7BB2FEE0175914B3C931B25F80A010568A179A21727F52CE578AAB6DA1A88D8B7461A5FCA7865C108A477363D3F9A960BFA81B4D34A551C4F1E234E18FA294B7B8055E6ACFAC6242D671855F29979609B821566ACBB381DFAB0CFF8BD47204FEC023EF281226B63A7D0397091A9844E23B28F57A0DD205A520A48A3E517276977388B575522C5B78627C4253BD38840A7889FA75A7BACD10B8F27A3E13BC20ABA3DDAEB88AE62B2930338CDDA41E0770B4D2092DA100AEDA2B5F5600718D69B032A45BD677B8732965B82908B877F5F77446E4AA132D46044067B21090404D21D01231264651B38832137DA53CABA0865957F5AF7AC4D640FEF96702F853BB4A70767DCA757DA900DC73E17FBA67CA85D94BC98378A6A71C5C9DA14738E0C34F5C81471539C42144B4CAB5D8D53285F8C415CD8CFE2D30295D00DCB47B4FFD90282F6B582A57BD3F13EB41B088BA624575B355F8C7FC0F34F1E924FE7D653692C4F44E1C64F9CB145FBAE9E789C029421793A4C43856469298B4EC648B21BABC0167C04D90A3A8C554DF46B80B407DFCA54D5F68E2DCA4E98A92FF38B427115C26AA33161503A83143714234FED912829BCB924D69049A1C958E6A3088CAB51F956C87862E776320E78457CF31C20957158BB377460BFBF93A44C079E1F1BCB7B4268A0CB1CB8151512DC632252700CF06C988B2A3B254AC6422C73432CCB143819105897575C8672B7B0464E61A6A8891BCCFBEB51F96120107CCE8E950802B2C04650A1F264ABA721541897538278BBAC29B73F811940A47249035B04C0023084BF57806D51DA03605C0AB0E6A6B65CAB53CB26425666DD1B597418864211C6BEC492D4577BC127369AF391F8EC72C53302DF5013C2C7C62D364B35508219749F131B7E2792CB206A9ABE2C21A565BF05C1A7F8995C89549AA3120FFD83CC7A8B8A95BAC3E7EABA48B57F55829F05BB265CBBB8B0B7983F7618F2511B3FE3CE9A0B735F2C1ACD189F9115A1F1933CE19A8535958CBA82464ED9829BC9A0C1405266F697D54128CB31CBD5B95C72740FE16219997210512A7343130E7DD00556948ABC6C0DBD215E9DB44A2D80C5606B930C6C8B949081BB453461A21026943929D3BDD3C942F8951AAFF04276D2186CC052B6F67E84D5AA6BE0C67AD74AACE945DDD7C4B75248A0854593E8B27E971895B58C08E8107214AFEA3AA1B41A17CA121FB8308EEA899E8CF04F7E884CD40746F2106A86164489CCC20F526154E613C565A282D5742F4953E963C42E878AB4D6668CB9C15F8629F537CDAA078DB33191EE281A46EBC2A3036639E5CB1B201384B222AF46873E1C946438125F060AFD4734E21794A8DA3D7B266C4125B60C9C480091874AE9C242F550898A30281380FA352C0D4466295A24653181E0E292AE099ABEC3275F8A89F22C983C8A0875E7424C3B66B1AA8F0893D44D76104BF396577FD719D69EB306117F3ABD65385A87AF12D1BB6D0433\nsk = 2ECB7CAA911A2F615A13CB82E5A8BE85E1C2BCF06C71B9696682532639B57A91537E470E8514390949CFADC80B0E5C3EE3ECA869E22250560D8896B5F6EB0FC6EC0A6D01760C9108B7A26CD79039BCB3CF9EA0432FE0581626CFEDABC12F758B407C8E9DFA373F45C377FA6D41A7205A7322B737CDABC8114DF437E864C4ABBB3DD084964F971B36E24406A7A7544A260D917C0EF95CCF33B1833BB6D4232BFCE37B96004ED7779258FAAEDD9ABAEB5051D8F605EB85BE0F9599FF28B40587488FA376729685A8336C0DD213F55447E2C4895111B98E73BD783B2D08960ABCE22F6F894AE5456577A81156C66F6F1BBEBD9C04D1AC43B77936F13060D3305A3893A825781E47928FC492ADC16B31B2669882FCA10581603B400F297B7FE7525D20E82958099B2D118ED3A14A8A915731525C470B7852A9B0EF04B4A3B0B65B4C5D7D486366175540A91E752993BA979D8A446F94088C7C3A02FD5C051F900A141957E63CBD71AA012DB60A02B3872F3A623218A6B1F628FE8580E8725D9FB647F128C2519A8A0CD0649671616B462B83904CE621C95FF44697CA71CE930EAF0B28A6448A1C6B38C14800427683B71C954E49B6A3B978417B78DDB1A1B9729B89160B4C7BA49F312E23632460913D82D655D6E00B5B17A635827D8A0781E12A68C536AB40909F46A7173FA9CC9990371DCBC0B8A433436133AC123A73664A14E1409B4476AB001C17F26EBE968ED8C6A9D491B92F234499435E2DF615C849BE5F6422C8BC9DE8F148A7C0713D93642DC852B33652287010F02B1D7B77972C797ADD3A38651B4C11EA968CE53F10D38DF4160101FB0EE557BCF5B3328E12150A7C0D769812ABF2AD2C1C7661844E6B34B25E7A30EC64B6E7D4282F48344BFC6F33AB3C428C76705CB9B1E9637721C9EE60874017013374082892B4AF174749041C606B3F6690146BF1B0C8D2844F80594F265A8FB639E209C9B7FC418A230AAF340BBA34C1C66B7D570918ED6CAF8F62768620058CC7CB4FE1C762AA96A5015B82216E204C5821022CAA84AF9B12B9C9BC683747A2724C88E650539779742EDCA6A6A6C5F5D68FAAF73D4CC7AAB9B105F3A1B46CC96C915912E807AA6C841F6BE63812062ED1D07BC9164ECCEC7E6662056313CC32F63C6181CF3343ADC9073888D5756F508D65025BF6490A5F6B164A942466E60C4410C72AA69D2CA10459B890A4CB22A7613D44E70AC96ACA21169F932A6134D27A6C05582E830C0BA137DF060C6249B360831CC6B993E3D455C2E61694B11B520C64078BB552A65A3BAB407D46C0EE173BBB52A95C7CBD8612380FC0CF1655C8E691BB0493103EC80A5FC92B4951A0D78768504284AD52580F16247B3C44AF0A397F28CE3D0C0E4D34CC48B26B3998B060F2A9A013889685446B6281B3341C08E8300A013390A881A3A4937B412BF4745B069ACBF5315B9955AA4999BA827BCCBBF776829291A9067272059104522D69D1834886BDE76C078A6061305833FEFA710EBBC0DD0729493A285ACBCF2708CF93ECC76B85691E20BFA4379C8521420C231F68429BB5C76E69378F6EF3475FCA5760A5BE829C2B4FA955E0E0931423B0A615194C26225BC538E2DB29E928C686892BE81B1A04F94E9BA65AC12A68D013885A021D91CB21CD7B76F0138667B5CE8CB742E5A54BB34BC17B28C8AF5C27BACC6C308CC127A0152120755DD61145970D3CB02C664C3FB8C5763AC841F845B7799C9CF7F61318511B6728499E843CE1A18093EA1CAA879BC6F1C4AA5A279E80AFEDF5353C5121A5D0433FFB748C0790161B648886A87FB003380A1DC289AC2BD876262C90081470453B12F5970D939C6BB573263B902624B03E403395A3A9A3C8B897C2DC5A6B630EA4CC87B6F456B5616A008C8DFFD6B970541117335189FA4CE92883B88B3A0917994974CF4837B7B31C16D36BCD867181411239086940C3A03DCDB612CA1411CF6038DBE35EB013658037B98D329D4A647D2FBB7983136480A722DC791E2281C251040155FA5B0C092D437576A4F055F1708C58E3611D3071EAE9053C4BAE4AF8769494077912AF5FFC129C7164749BA2EACA0676F02A8C4BC1545C405AB16E90012A4915C4B470C230587F0BBBBBDC3487387635E457C66E3CCBCE8C75048527959651E7C99BE7540833828E457C66EDEC8E201B07D8068BDF671086D6AF0BEB628685790487707B66BE4C7341C654A8119774E8B262B2F34944898E42752149039356C1348EDA779B526DA7AC838551855A4A8AF5780C5567295DD16011E3177E267948BA7643174391A34C5597B7AF774256329F211518E1A67B2F35898E610F49500C2B4647297723004AB77F9B538524A9B96B1E5FCA8F224C2E24701BB726735B408323784E9AFAAFDE570B2F4C2BBA88BB54808EE73AAE69BA352612268E9B4460F004AF4998A6C484474C0D04111F2D1091D31443EE2447BE719E8F4C3A49E918EEA7870F199E1507BF0BD543DEDA7EBA63AA1704A02ECA523AE006853B5E09706259605E72E78AD6FA602BFBC7BFBB0D2D78B5155B3D2017C9086803BE862EF501196EBC2AF13B2B0569473E9620FAB2C85FC23874AC14B59C0F082029B553184B01C76D856858475914F025DF1914C16A209DC90A306914C3371A6CF68473A431B2886A8CD40A5302834A73359E001658B90725E02E63C27403FC0E1953B11EE6A6415815D2B2BDA0B13E54511C96B801DA22B5AE94B68DEA940EA4787F3A1506E290696C3535B8CE73351A6E48BED272AF5E456904AA03094210494C90B280C2942682DCACBEC8C644E9A36D326816A42B23B96B751AFB7B951A87D8E94DB48932AA14BF73E92B06B85F7AFB4387E949645C5838622EF7BB2FEE0175914B3C931B25F80A010568A179A21727F52CE578AAB6DA1A88D8B7461A5FCA7865C108A477363D3F9A960BFA81B4D34A551C4F1E234E18FA294B7B8055E6ACFAC6242D671855F29979609B821566ACBB381DFAB0CFF8BD47204FEC023EF281226B63A7D0397091A9844E23B28F57A0DD205A520A48A3E517276977388B575522C5B78627C4253BD38840A7889FA75A7BACD10B8F27A3E13BC20ABA3DDAEB88AE62B2930338CDDA41E0770B4D2092DA100AEDA2B5F5600718D69B032A45BD677B8732965B82908B877F5F77446E4AA132D46044067B21090404D21D01231264651B38832137DA53CABA0865957F5AF7AC4D640F", + "EF96702F853BB4A70767DCA757DA900DC73E17FBA67CA85D94BC98378A6A71C5C9DA14738E0C34F5C81471539C42144B4CAB5D8D53285F8C415CD8CFE2D30295D00DCB47B4FFD90282F6B582A57BD3F13EB41B088BA624575B355F8C7FC0F34F1E924FE7D653692C4F44E1C64F9CB145FBAE9E789C029421793A4C43856469298B4EC648B21BABC0167C04D90A3A8C554DF46B80B407DFCA54D5F68E2DCA4E98A92FF38B427115C26AA33161503A83143714234FED912829BCB924D69049A1C958E6A3088CAB51F956C87862E776320E78457CF31C20957158BB377460BFBF93A44C079E1F1BCB7B4268A0CB1CB8151512DC632252700CF06C988B2A3B254AC6422C73432CCB143819105897575C8672B7B0464E61A6A8891BCCFBEB51F96120107CCE8E950802B2C04650A1F264ABA721541897538278BBAC29B73F811940A47249035B04C0023084BF57806D51DA03605C0AB0E6A6B65CAB53CB26425666DD1B597418864211C6BEC492D4577BC127369AF391F8EC72C53302DF5013C2C7C62D364B35508219749F131B7E2792CB206A9ABE2C21A565BF05C1A7F8995C89549AA3120FFD83CC7A8B8A95BAC3E7EABA48B57F55829F05BB265CBBB8B0B7983F7618F2511B3FE3CE9A0B735F2C1ACD189F9115A1F1933CE19A8535958CBA82464ED9829BC9A0C1405266F697D54128CB31CBD5B95C72740FE16219997210512A7343130E7DD00556948ABC6C0DBD215E9DB44A2D80C5606B930C6C8B949081BB453461A21026943929D3BDD3C942F8951AAFF04276D2186CC052B6F67E84D5AA6BE0C67AD74AACE945DDD7C4B75248A0854593E8B27E971895B58C08E8107214AFEA3AA1B41A17CA121FB8308EEA899E8CF04F7E884CD40746F2106A86164489CCC20F526154E613C565A282D5742F4953E963C42E878AB4D6668CB9C15F8629F537CDAA078DB33191EE281A46EBC2A3036639E5CB1B201384B222AF46873E1C946438125F060AFD4734E21794A8DA3D7B266C4125B60C9C480091874AE9C242F550898A30281380FA352C0D4466295A24653181E0E292AE099ABEC3275F8A89F22C983C8A0875E7424C3B66B1AA8F0893D44D76104BF396577FD719D69EB306117F3ABD65385A87AF12D1BB6D0433513906F5BEF81445BD210D63FC4C9B9EF0B61C17B0CD5B229A45908FCBADDCEC1D9667C03155106785069387CE7D25CB09C5516D52817201D6653F20E775B453\nencap_coins = 07B6B69B60DC15A90690B3FC53E8A4655275E0A1A502551D8BF2EB337B1CD2FB\nct = 629FADA873A027CA01BB01367C8A0791812DF7AA3E09DF9F607C116760EAD3B61FAB1D7ADB35A666D6DAF62AD8EBFFDEFFB56BD6E0817CE33B4C735776EB91220BC49EFEF2B03EC026E3E57BF9779B5D01A1176D68AEBE69666F2691C9CC1581B36FF5688A46071F7B54E18E5312F691057B92EEC85CF2D48666FD903FF79F7401BC2C56DC50E45F001C7908D8117990E94656E07AA257C7820D4D52C5036BDFFEAD0A2EB3184D02835B0BDE12269AB50FEBD157A0E27BB5B087C766E8542835F2FCD44AC14319539B20A98D5F37241AE1E4B669C521B45F9C8269613A486E50292D282FE8497397DA70DF66EEADE1350E65A99C336195DEF9E5B20C91805A7A433E3685BCD6CF97CA334BAB5F6DC2B0160F78439C156E7B949EAB484411145769ED9C2BB5BA1199C6CD4C08763E11F7A8B629B2175B897FC79D1C1D863414D05E770B6F7079167D8D2501C881DAD679920D53A5CFCC303A5728ABD7CE449A2E384AF6C03E3347DF9A543AFB2DA95D0F4FEEB1C5186F9E6648098F201823A3459388A7B00883E69F79B76CA4AC7F573E44C36D2935BB5888B49CEF7FD1D52181D65ADA29A16709A025CB11775ECB149F6F9D4F74FD9F9F8172E405AA2CF9ED505E6FC249EC883B769FB8990A232DD9E6651D6126A14B25584441691CCFDCE9DB22D476F6346453DD94987366CBC04D5DF039897F53290059418A6428244CFF9D6FA3CFE50110E34AAD706825FA46C4BF3C01EFBD4164E55B5DF710C02DC7FD00B960BD870CF9890EF4B863BAE04D7BD3BC9EC67D594EB02A15F3C28C7F9073CCC5B34429F941F6CD233342FB685CFB4AA28D6BBEA0F312AF70AB183614230FB233FF277E4D281FCCCF75600199CEAE2A1493E6F040CF0CE586332A04590F673A57BA304477C9F9145E14332DABDBECD3FF32EDAB1A4BD510B29ECD2982A343A8729CFD8F9255B746B83805B22389E5A9A1BC34068E99204E63DE30FB6AA226D0461C4EDFF605CB08CB64F2B082508DBEF0E73FBE2A00D45F9A8D8146E38C4D72F8FD94870C50589D3BDC0B819FC08B0FB32B0F3016AC0CC739F15211801A318A29A542115316ABFD19F90B4AF44135271CC159AE1D8A74CC378FF6C492F61F1076495E2B77158F3C0FE02252E21C365EE751E4E2EB5028CE7FBFF8FB5A6D4D9B12AA15BAC1AA26650572266A95B078E3BEFB158D1EF37812196A9801B34CFBDC4B03677CE88C629838C00458A24705CE05E0FD4F418435223C7CE0A3295372FB37B183997313A78E705DEF7B274E900383C7D6454A681018BEC6FF2E087E8824DC6114ABF9490B6A62C6C03BEAD9E0A6DB7A5F3B0A7BDBA61F913A3C25738757E8E7CE52A2A08BA08328101B124061AD86FCC60973E6DF2CBA3CB57AFC4A2A609747198ED73378B3A86E14B56CA4F66CDEA5840D24C6396B00710E37FF4A04DD3F08A537D70610BBC8B715E741CAE88D4A11D84AEE745EDBDB0D2C142D2A467BA788FC82D49C96966DB152EC101B44F8C78DE27D43301E82D128E70E5D10A9E830BA3F1F3CA04440D9A98CB9BCA802CBCA79EB6F00759E9562AD3F8973B6205162B800768062506AC79D2ADE8FEE27079E71E88F989F050645D4F15EDDB963F3F6FD31FA36335922EB792CE6BB393C89AE7AE04479579FC99F6CD5D7C09BF3ED423AFD4520DB747D8A91109CD75A11D9CF8079BE24B3E794AF99F41610B2ABF24D49349127A95826B06C7B7F488606784E9C50D7A38F1D8732C5FA60EC00ADE4EB79E2279E3899E88E057ECFD9882DB24859D68DB39A9313D1348DF113F7EBC21C84E67B3ECFB5A593C9EFDA9204C7871CE0BFC9745EEE7604B2E12630986DA685568DD89F5A0E3E9A72BED11420ECB57B54E0DB0BB03A57093E13232574D7099509009E634C03A83BF1FE2091A53DE7F681C577D7CEA1EC064E94E7A74EB1C855084859ED6EA73148F12EA9E3B01B714B6863CA0D0FEC5911B7523AD3DD601CC7BC2024F149F47C2B5C132B4BC7132BDB4AE8A9DEB754C3C0E6A829FD858A53FEA6D6C8AAD4434627B6915EAF9C324E50DE89CDCE91DE7A2A9D256F93A70AF75647C672722EBC6B9430E772F070014425C323C89FD9F76A4E35928EC2CAB33589F83258FE42A81077BD9CA60C7A5C1B9657A8D701546B511149092C2A8D73268255F80678BDF406B3792D526FAAA02FB235F1BC2B25E29F4A1F259E42B16ED3\nss = 9E0757DE9384D63FC8D87E5B1B2FC43D1381618F561E27E1F391D11EE8582C3E\n\ncount = 46\nkeypair_coins = C1B3CBFFAD4B306F9AF0CDD3028876486DBE858875C9B6497FE20172A986C82BB5B9E60227058AFD73501B1C4E45ADBBD41C7BE8D14BCB8E98AF77698FDF6B69\npk = CF76C08745BCB7CB2C3478823C977BA1F3565D880D8E731337D798FD273BEE2A03416CB6D11774E0B7C177E23A619509E04C334E486F97A963035C2952FA286C8108A3FA6857C080076143185603EF480C7EA135C76497AC2A4EA1C65C535385BB233C54B0326D415D2B01CB0FA60B969BCFD5578920A06659291B59E5100441B0E535B46294680627646C052D13404E486713FC460727F50677E48E64275E4E2B33DA225686D920941277CAEA4D8F4A7C7B96B151B36836A76671C9010CC7546ED301866A694104169540A8620415037654A55AB132D56590663C21C267B94A2F1A162BD61808512C2E7C671247142C3CC54622697EDB50514895276EFCC21BB02D45C79A4549A501E79859361457047ABA280F91C13556D06095A13EF8EC756556B31C1A535FE895E3AA85A78346692B9B225330637397A482AFE97B508304B6140CA9DA2C33F26522D51363662A0C437CC3DAE5AD97B491D8885DBFC65C82BA88E6D78564133FE5EC502543340736B2FD927C2E3207CC77CC127790FF2634CC2220AD001E39EC393C5C5B5598193D628417B7BF5F903E9274C2A1A38F72DB99E4C2AECD8B5B5B445D3D259057B2B3AC1B3A0657C2DFFB6C75C93B20EC3358180F9C124FDAC8A64D2B73CE6819BC1005602151F7E4C804BC89A81797CA8313650910C7B2A36AD2A690E3AF7A99CB2BB09CB1EACA0891BC69D989CB7220FAA3626342CD33438877799835C2782413A9F1CA29861752F294B7E3C2A3980618D0540A5CF00C01943DB920BB4693436D3B7436593E7B9A83CD21CBDC692956CB3F7A17C41F46AF94BB15059B8661349248235ADF68B69D9944F2F30F93173FFDA657C9D722D0521C12B2790E230AFB49496A930C46A62A4D8C26601A4E783B73C2A465722401769365719681C5086D8A7BBCFFF451E58B2CF32B363C501E978971D8C5AC6F41B458693C711765C7FC1AD7319F3481A68BC456EEDC04FCA898B0B3AB59A14B7FA1C148B6B792352E7CCB1456A86A5A0377FF98C08AC0BC4C997B0370BAA76950BD0874F9478E6B8150770C4EF2885E88D119126492C09B8E93110616406E6BC7AB46CCB0B47587C0DA1C54828F98941DAE515D279308302B672BA10FFA0749395269F5C5A03581799EB3B60FD53355B3690EFC291C3B77AEC797FD09B1CCCC8D5BDB8B4DBC18857C28ECF86BA3A654B8A351D0174DF4EA4D7F4159656010F051462A3C4988E28E74C39CDDB557566B7C757874D9061FA5F85693CA2124822891A4A0AFB000A3887522326DBDF4A54E851CC775405938BDBBD39370C01BA010B8B3785E3880A54470546B617AD86BC984A70DE844A510E6A14E241F18C765FD04C2006C6781EC90C9E16881B7BC4557945D68A4543A5F16968B39F38E8F5AA7699171D8567E35DA662087AECEA63AEC3094BB4C88F08432B86780237218AFC22EC78C96322A81B8060719FB6742C290ECD8664FD378A95341F3C326D992B3B7417C5F543249D57475B3B526B93307664217B8837C1C48EE6322DF891CBF6943FDD445F2DA71F8AC449C718E8412CBE0BC2EFBE601AD08AF68B48F7D2677DBE05914D9B1629B6CFB69A9F43A05B6FA560143A45F21405B25983115B537315964B3525117158013A434785FA13B30331148F028A2E3E299C9969FBBA917CC27B851823630BBB930AB2336B59D1E0060E74230D6A0399087ACE16894D1E4236F3B9B708645A3B27378A86C960BB038080F93E66BD1BCC3E57739591C386C45846CECBFC90AB3FD506EC50C0D0EC9A2422CBACACAC17F62472B4AC6CCC645D48B0283A6C62136A60D62354A983D4CEB74EDDBAAE57711BD958614F054336A38630535F0DCBDAF918E5DFAC711093974D2987DC1109CE7BF7429CFDDDA9E1826172114254CE0BC526AB358E359C35CBA02E720C4611DC17122B8BB02702A962DB3470E32620D62291AD8C9DB86615E9AB48DF3AEFDA4003F815A1157640E765AFB2527B2C532011CA07E321673C721C3F32A2613394F68B687A042724C0207CC3B87675AB51A60B4F12D312A0FB5443CD0518B1F9788FEF9A36752291647C234D49DAF4A6A4BF420E990307F676271A4", + "7CFDC68182500A93C914EA348DBD544B3163780A2C2373282E319B346E7BA0B1EB67A1F92F57648FB68BB6CC9865FAE1AD459AD417635C409C28F9EF936AE28D221563E30F83162CEF01B482889E\nsk = F3AC3178BC3E6B8002EB20046EE3288F9CC63C1ABD0B14A118D52E2C9A998D4C67E2014415084F520945F55B985ADAC8C503079789AECC491EB7BA540F32BE8823A4A837786BE140D260CFF5D46186588F4FE2419E0C4BA1B619567B9D8206B53AB1289640520F2259F5D6854871498B23696A321813D7A544E77FB3100B34C89AF2C63856FB43BB0A74A6073958D1199B4098386984847962B353B4D81AAF4CF65349C8197DB8C1B29A91FDE5AF1F9749A96B3B82C567207A81A163347919AEA565304B4820369799D352CE72415CF1C692537A48AB603B9DC741A08A66D874BF46DAAD570B6F1F4133067A1D900CA87CC25E91C4CE1C84B46D3C5BAAD46FED227268F1A9DBA968EFF27249B3C6E4C7C19E8A13046A2B45BC24F4304A80C09D37AC289F924F33E97181B8393EAA82A6FA54F2E76DD88791B5C3773707046C362D94EA547C3050AB251953464F4E540764B08103A88E448446F6B82375C15E3CA9A98798639B83638ADA857BDC1E3C6705471975C51B8087A26348BABEFD234D27D6C055D3AAB7560B28DCC13D343A79530AC868B5F6AC83AF04B8D7A20B64DABE9DE32A5C1B2C2ACACCC4588C1BA26F5462AAA5C1BDBC36467F346A1AB5C5840A07BD33CEB44093659BB0451C4C87CA4852172DC0BC3674B4275078CD2B9A3AFD61BFE454107D092E5840C4968C547ADC723C1970CFE705C5D33E3A4533F0028655C6BA44AB22C2A4C85A82B4B6DCC09765124E43C985459CB2AB1519DB1EC6F348D017A785484802D90E0222CA2313B4FBC465DEC0CD4F3A5675E33CF0DB79145867D5F0B8F340526C8A744929728CECCD146B6E66D03F660AA4E2E15D200B5960F3A03B571BB2E59160048E498C15379027E07987DDD841BDACA79764BCAA1C9843FCCC65B53695335D9D4CC789E062571665DA99B4E10368467AA551775C39C7C9DFE7624E8940F294C8655503F2F970071B40F6BA3544C64C41887184828BE6057A9E972631604901A7870733580C6AB8D4AA18B49CB4D567577AA8B0CA2490EDC68B168583B8B38415D32F5558996CC911A9470951430C36F71712F1C579A12327C41C441C980C286B71A31748EA54DF2A557FD1701C3173944B7B40117EF9CB08A7D03D45531B8DE4C753F697EC4B4303448C260B0783C81ED599425D9B16806828BF795C8CF65A95F366BB90110CC75D3E6064BEE17CF1497F36C48E68B46EC07417B2A876CB556C705C7DDC387D74F2B0AEEC9070D227AF09A324495F551680A474328D379AAC253A6F4C42C865A183D7C2F4F8CA94A92388B1AFBB5408CB1C0FCD3C945E2923ACDB7E16A45C03EC3298B3C44E9C1E75D049B2EBBCF2F29A2D3B7FC68644530010E052A0D357809009CD786604A39898B385B70AD7B3BE011EA83B93D4426F4F20A3D0836FC6FB532FA14536285013050C16D01C5752884E49A82A4A0BDBC8BC2C7598D548278703AB4C607A16B1BAB64052F40A06D3915CD03825F12C069D956F2A5662E05804183932B5216CA66274214ACF5C01A7F4C77EBF522DB776068F94151F7AC33831259B53BC48E99C50B260FAEC0B7BD3CD4FA9B5A5C2588CF098FCE5AAEEB15FE651355537953D9B8580313B56336F9E6A723F412123C51E942438FCF65F92CB91A0F99B3DC5B0D90A94D7F9B0D9D4CA42408750169540A2BCF2CA20F13BBFF3BA60F6FAA2DF7C176F74CDC2090555C658F24273980C4D6C03461751B9E7E59E87062037433D2A79C72FA6307A77B3D0C42CD8D1AED464B90963C351B2648AB5BC113909EE6C15BB0189603194155051FA534D0E723F4E28CEA0B7AD34B3767E1029598B16CD87181D9B8332F87B38795EECF1622F7955BC646E470B54BD3BC915C3BD2FE40EBA8B31A21B79130A3EA50CBABE79B7370B5130695ED8A61291125F79122B8A19666FC571076361AF26B1979A939D481B55B781BACA19898119DB5AB19CD22617A59851A04B5DB78E1A532A4DA80ED29C8BD11A5FF3609E9C6B4B2417155045AF7EDB0D91506A7BB5920A5095C3327B6182A74AA14BB4957597077E93C880283137D9B424F3C16357051C4BD88549C090ECF23BF7650941AC00234C0398C56D0E3608F1E348DB9A0D4E252F78B05C9BDA80DC01A7C0B720646CB3475514CA43B2254BA566C929D9D68FCF76C08745BCB7CB2C3478823C977BA1F3565D880D8E731337D798FD273BEE2A03416CB6D11774E0B7C177E23A619509E04C334E486F97A963035C2952FA286C8108A3FA6857C080076143185603EF480C7EA135C76497AC2A4EA1C65C535385BB233C54B0326D415D2B01CB0FA60B969BCFD5578920A06659291B59E5100441B0E535B46294680627646C052D13404E486713FC460727F50677E48E64275E4E2B33DA225686D920941277CAEA4D8F4A7C7B96B151B36836A76671C9010CC7546ED301866A694104169540A8620415037654A55AB132D56590663C21C267B94A2F1A162BD61808512C2E7C671247142C3CC54622697EDB50514895276EFCC21BB02D45C79A4549A501E79859361457047ABA280F91C13556D06095A13EF8EC756556B31C1A535FE895E3AA85A78346692B9B225330637397A482AFE97B508304B6140CA9DA2C33F26522D51363662A0C437CC3DAE5AD97B491D8885DBFC65C82BA88E6D78564133FE5EC502543340736B2FD927C2E3207CC77CC127790FF2634CC2220AD001E39EC393C5C5B5598193D628417B7BF5F903E9274C2A1A38F72DB99E4C2AECD8B5B5B445D3D259057B2B3AC1B3A0657C2DFFB6C75C93B20EC3358180F9C124FDAC8A64D2B73CE6819BC1005602151F7E4C804BC89A81797CA8313650910C7B2A36AD2A690E3AF7A99CB2BB09CB1EACA0891BC69D989CB7220FAA3626342CD33438877799835C2782413A9F1CA29861752F294B7E3C2A3980618D0540A5CF00C01943DB920BB4693436D3B7436593E7B9A83CD21CBDC692956CB3F7A17C41F46AF94BB15059B8661349248235ADF68B69D9944F2F30F93173FFDA657C9D722D0521C12B2790E230AFB49496A930C46A62A4D8C26601A4E783B73C2A465722401769365719681C5086D8A7BBCFFF451E58B2CF32B363C501E978971D8C5AC6F41B458693C711765C7FC1AD7319F3481A68BC456EEDC04FCA898B0B3AB59A14B7FA1C148B6B792352E7CCB1456A86A5A0377FF98C08AC0BC4C997B0370BAA76950BD0874F9478E6B8150770C4EF2885E88D119126492C09B8E93110616406E6BC7AB46CCB0B47587C0DA1C54828F98941DAE515D279308302B672BA10FFA0749395269F5C5A03581799EB3B60FD53355B3690EFC291C3B77AEC797FD09B1CCCC8D5BDB8B4DBC18857C28ECF86BA3A654B8A351D0174DF4EA4D7F4159656010F051462A3C4988E28E74C39CDDB557566B7C757874D9061FA5F85693CA2124822891A4A0AFB000A3887522326DBDF4A54E851CC775405938BDBBD39370C01BA010B8B3785E3880A54470546B617AD86BC984A70DE844A510E6A14E241F18C765FD04C2006C6781EC90C9E16881B7BC4557945D68A4543A5F16968B39F38E8F5AA7699171D8567E35DA662087AECEA63AEC3094BB4C88F08432B86780237218AFC22EC78C96322A81B8060719FB6742C290ECD8664FD378A95341F3C326D992B3B7417C5F543249D57475B3B526B93307664217B8837C1C48EE6322DF891CBF6943FDD445F2DA71F8AC449C718E8412CBE0BC2EFBE601AD08AF68B48F7D2677DBE05914D9B1629B6CFB69A9F43A05B6FA560143A45F21405B25983115B537315964B3525117158013A434785FA13B30331148F028A2E3E299C9969FBBA917CC27B851823630BBB930AB2336B59D1E0060E74230D6A0399087ACE16894D1E4236F3B9B708645A3B27378A86C960BB038080F93E66BD1BCC3E57739591C386C45846CECBFC90AB3FD506EC50C0D0EC9A2422CBACACAC17F62472B4AC6CCC645D48B0283A6C62136A60D62354A983D4CEB74EDDBAAE57711BD958614F054336A38630535F0DCBDAF918E5DFAC711093974D2987DC1109CE7BF7429CFDDDA9E1826172114254CE0BC526AB358E359C35CBA02E720C4611DC17122B8BB02702A962DB3470E32620D62291AD8C9DB86615E9AB48DF3AEFDA4003F815A1157640E765AFB2527B2C532011CA07E321673C721C3F32A2613394F68B687A042724C0207CC3B87675AB51A60B4F12D312A0FB5443CD0518B1F9788FEF9A36752291647C234D49DAF4A6A4BF420E990307F676271A47CFDC68182500A93C914EA348DBD544B3163780A2C2373282E319B346E7BA0B1EB67A1F92F57648FB68BB6CC9865FAE1AD459AD417635C409C28F9EF936AE28D221563E30F83162CEF01B482889E4F8B3E9AE47D3B5B95C080D4F18440C24B0691C19F06F5547554697BDFE97B01B5B9E60227058AFD73501B1C4E45ADBBD41C7BE8D14BCB8E98AF77698FDF6B69\nencap_coins = D70B79DE7C2F7CB8D18EAF1CA040F6D8588BA85512AD000B59806BA485538377\nct = 661FB150B8279D29667FD195DD9AFAA24443B8257FF64AB917DEACE7C02ED831404FDFF8158BA8A8C32AD3146EA4D8DAC4F8F3A19EE80C7593C8AD8A4A5857AF785CF9B1B89E6DAC96927748D22DB0AE8D2A8957F7A21A554D2572D46354F3BCEFBB8689F07533FFB574C6F27DD2CFA9A60A6106B827E5699FA5483AEF3F9D1B92D7054BEB539EFF80CC3AF4CA993EEA4BCB29DC457684E56FA66185E12F7163102540C804F620354EFD4F042614E9B27F633C0BD7BD4BAED55A1D152BBA4C214205301F422D508093C0EF6808B0F95F0E50C22091986C176705C4B5F227C2BE51F61D00B93D1646A2B222C57FEE68E43E1E17B0A52BB9AC61D66B77C8DF6191CC9EDF535876F12A1D7BDA1E8ED1B7C22F00B101A17734EB1590737DB01B5BD420AABC375032CD534BBD5902BA9DAB604B3B81F68460CCD0D4543DF4FCC0AFEBFE0418C35D42F7C59B5A7A1BD903F20CF720602A9B194E50457A433CC84A43FEE091CE01026AD58F14066BBAE5B4008749511899792D0A5BDF7132A1577824D091CFEA1BBE5546DA36AEF1BDD6220BA430A3A0B93F53F0AC305F4CE8D1CDDDE9625DA5AD9806E0E674E75AB781A33A0F66EF95AD6C148FF078FE3A83B2629D9C38282A070C5E0C9233AEA00B6F7D54609E236040E487DBB87F2EE1C1ECF86AB7F02B82C346D1A3B8694D6E9EA8E626F767CD0B7870C8856B167E29B1A90646B2C7C2AC6E7B3804DEB09971BBB9A0598D7E8723F278286E8845E40CF1CC03BAB91F4DE73DA22B86FC236BB093EC97ED27D91E6E7D6B00DA8D71D9077F77E352BF193C398D742D9D0245B852F5ECFEFFF4208BD94CA74F2F2F30D21D99986E005DF2B39B1EC62E4853B09B9AFD456AC63D3152D47BCBF3A272DBCEFBE4FD0853C7CDEA6CF3EEA85122EF226B8FD4F80B5EBD2339CAC598045DE0EE10A198E4DF0203260C232944973EC7A70943F055C051D465DBEFACFDE8D4672A7DB0E65703A5D2FF7B840530A77DA22F4DF38645B44D8F440BF080204D53CF6C211C650F1C890A3BD7120A598CE0B50565BB9478B9052E65EC6E20060D7142B3049B87506C26F22165A9259B58B64C8AA43B0F4030A5CCF8DB51BA4D8EF3F88AF4B882177E1AE389C2E6A", + "E5847F399F9CA1AA239B8B9B2F07C80C55131E15DA75259374E189604F107470897475C26487A1BDBBE7DF3CA74C805CE6F9D348DD6ECD8A6F0C60CC2E55DC27AF63F7A98F78D18D7830840507C3EA4E293CEF7D9B8D12F8AF45291E5F3948BB49DDF7CB41ED6CBD6479B0719A66F6922AEE3F18DC1984A6C96429B8C738A40455886684B8A6696066508DF25C06A3D9B974CCB7CD81A6B6D47FDB07F4AE9FAD93959FDA922B876C48C5336D4B7D90B55C7AEBC031A6B7A0CD5E6227CE87FA58992462AF5BBCDB4EFCCA92E6CD80E15D6A8B4EFD185D1995F83515C315A2E7949995963E8D8E2319E82CEF0572B36D0E2ADCEB9E4575B291B5F0815CD78286FB587C0CB339AC19C390E85D7A05B23E7DF85589C70B4420ADAEAD9BA2108064E72A71EF328443587DCDDE09CA5615A2DB8E0A2BA63ABB1F456136E8286DA3EB9C22569141598360E2A2E2FA6CB694F82C3F0A73D2D1D6E4BC7884F6A7F24364DC2A81238AFFF90EC049DDFEE9B1AF58B5F086DD1EE7B88EFA0850130358BC7D48D64F9F254D28C6D2E56EAF2FA493B8724BB1DEB2326712B129CE607683384E0E1406CE6CCA1585E87FCACAB6255E4C6378A7AA88AE342B72137BE0BB67EEE42B483E813D01B7E90F76DA2F54E2DCD3D36A4A59087584110E533783C912576102050C8F510E3CFE7BCDB81230DA5465A536A35E2784B7C1F38DAFB5F50E2E4E3225E8CE01A09C07998ED1C905F177690D538E44C9C50768693C13A7E3B64A38247214FBB8FA43560712C4CFF9D973809F9C77130C5EF7638B17D9675C18FD1DA047EC0787CF6A4FE057E85A8438100F08600AACA732A60600F296CE5576760496C64BB341FC8F7A55D9556FBE90FB746D40B3ED900BDD5DF7A6FE320D3C6C496DBBD6873017048AA8620D81AC8E8ABCE61061ECDD429327254F76EFEEAB814DB4013949D1FF5E09CD74B61FA3DF560BDFD981BA4229D50F25158189EA4508E8BE19E3BC12349A12D62B92E6FB9CFCF931DB3C59F5603C433B9181F556B710481BC84316BFAB106FC85F5B5BE1BF275AD6A23D32948700EFDBBCDE1CC\nss = 8F92FAEC3F277432DEEC14A11AAA885FAA418F36585FB927C288C052CD9D20A3\n\ncount = 47\nkeypair_coins = FF7495B8575B5A98E4FD21FB4C3E58CBB60F14BEF21AA74CF8802E3153F1480711C033D4A4BB231985CA7E851FC73EA4B2C29E131B7F442DB8A66A9E5B31934B\npk = 2E225B33D590A3BC60FF331F856884594944A1055F1AC6BBD5F7BBE0C7B5363C984D408B493B92BCA2A9395B7DD9A46C17B632976324206179BF05406E629F86875573D05B0599B561DC5EE8F54A73690B5C3B414FCB7AADE872A9489A5530025B442C94052D5E892CB47B7C7585547A72A9E3A3CDA629AEF1876C96C479063C49E94B952CF819AF8B3BC39995D4563337BBCD419C17C4F5696A6002CBC6B760E344A7FC49C2D0C0ED52B54F16041E5C4ECF2426442B9D59EC05872190A80B4F341312F91B7737CC77696ACC5E0323E02100563519AD3002FB95B0591AA126A70ECB708143C7A502C53A77A82AE915B25BE77C68006F4CCB0252463DD668537C24BF4B0039CAC4A4E6B3C19AD37301B595C504909D8A4B8AF71C0FC2C905E26B5317703B3195712070B0D5677BD5101C4BAF9186582A8B70D163AB01C6151177B7C83B6CCA2BBF62F6ABEF41C6AD6764CD8392819A85CAD945EBD210B9C08F1333A393B144A4782E683CA2C73C5875F20DEBE3AB59C8393F7CAF4328A57618197450097D250E9A77266D15CBD7B3867DC49C0E83C7717513BDA8235E8B89FDE06CEF1413EE0A0E42C814B4DA9D0B0C5961F73E90C57C1DC614DE43C396118979CBA7144316607BB82E5451E9475C0CC4127C58A69FC47E6F02A3FBAA03949A9760573B2BD3C6606325C56A23CF4AADD8024BF9D1020332CBA28C7FEE610D45674E17281E047822138B04DF69CE9E11AA644C47FFFC688BA4B6C91B01E2747D2765B7D9579485A37E7090AEAE19AE2773CB4CC17B998C9D25955A33A0A9C47117FBA45F02611F1FB59D415A93AEE26A2E4726E50C457C692766D55477546785F76A2AB7C5AB983A90771834DA4016A755A2040EE3F6A24145CD2F827729BC74B17BC92032548B663F50B307AC511C47E24E4AC4957E552C4662915074373D83B34F468BD66091B984692DD32669332B0527B0A0BB3DF41556AEE9693EAACF97047516B6AA455311CF97135B697E7E9A2E147756E8FB0B657B41A6352FE6A17F4B031EFE17926B7757FA74831257CE2442066C624BDB106D3330B99D730E7EAC1D1528348156352E266475204C6E13B5DC06B2596097C1DA6BB2D31E139C34F732A70BC09AFD6A8E9700BB20FC78E3FB15EBA8B2ECA7BDA0508B1D8C0C9393557E62836117219FC2201C79346949C53D8414C7E673106234E98CC1508C81317450670CA7DE957BFEAAB0E6780FBD755EEB08A441F983E3C81468A7BFCBB152BF6A581A901564F2CC6AC13423C32DAD054E02E6509725BF13605F646922BCF84FCB4B456C7CA25457415C7275BA54AE8C4717157A299FA18B49FA6BE7460F8427516649440D4C0DD42814B8C4692D71B7B6C0049473472E002A53392D183B4AB70B6582557F8ED067EEBC00B670B517433466EC6B2F967EC1720B8C68C41D2923FAE5C4285C63B03A8416926B93496DD57B6E241B14F2576E7B9A28076B2DCB8C2F475152A5FA7EC98C952A263CFC221282D57BF329A0DAD122046A75399507574289A18226AFA90CE4D7235AD9A658955B6A25359A435D5A6798B1D453B90679B5849E3FC817899375F890470238004CC7520BE51FEB8291CB8BC336813DD14A7BB24B2B8B8B425A969C4E410AC4876787F67ECB61409885518E0533884C613F70A22997B0B8CB1E2E333D51AC4E5FE854C657C0CC748ADEE498B6C389D4B498D206845DAA6AA89731B1DBB33F2C38DB8614024778225B92D5826E1BCCA780400E79B42E0FA3BAACC5825BFC0F45CBC485D69C024CA504A975ADA9A5A822CC0C11CB3FBABC64D07DB6133A7E91223C3658725686CEAB91EB74060BD039CF1488376660225B42DB441DDBD437D5193BFE777B35513AC8D85E6DA433FAEC55FE969FD3865EB9045589B09769A41C963596CE70238CF7B407B096EA546FD5F141DDD54EC001B76CF634871240D9F82F77F5153E84A6A5C41A3CD908E962C5B8898EBD4287FB2C97A0710B448C4EC93CC5EF1719C91B92AE77B35CF2628396160F0BC3263003E2E89243F073726A657B2386173115B778CFC842C67A4B71D5276A934AA94D92B452286A35913B0262AF2A4007642A0B04F76CE58A31BC776D6F1B8966180E2EF026763A87519A10B8049D799A8A3D038D5BE31ECCD5676550482CB48F19171D8F1A3A633448FE9C83BD28097BB29A168DB5AF1D1B354B6881A2CE509B\nsk = 37F7089480382622AC6687B4B15BBDBC1A9AD7467E8FF4CF44F0614DE74B9591B9C5410D2D7084BB57AC27963AAFAC148DE80DDA6232F4A0C634D677A80C226FE67063191C05A54AFC026080877538F63DF93CC6FDECBBC0A9A0A4215488DA1A2F7B1EA8F8B917F32F397B94C80170BCD423C1F1BA4C736449F84BAFD6711B0070DAE72DE1EA3923435FE15A4FB35AC98D6379F0A44C200A37704B5B269BA3A555961ACA5E2CC1518FA4BAD3C23438E06952C9317D198B0C112D79A89560DC3361F5732F820CE4D16ED448AC2ED221C8EA3601602C27F640DCC394A7ECB5079978CF52B80DE15C3015839A44B9EE36837866C5C8E9579849B331E53DBC049E46DBB524C2090A54BA793C845420A7C2C29E78A9B8C83C310D780F74127C02A59AB68C1B29952DFF1196D0940EDC338DF3E1C1C8E34FD0DAC4D5596F97A2AFA98B1E8BE46BC0A96DF412639AE5B52229086229B5BC79AC020B61A56C04091C10CF9940F798A9C50BA1F5FB30BFA947F20B62A60215C5A88D23B70C0E299C53F49A1ED511AC5812558133D9F195E1FB5D77314559EA79E63A88E781C4224155ABB5CA91F089C0C609CECCA32E549B0CBA167D9307A3A64681A815A69C5D7E787751162483E7701437034F0864D8D53201FAB9763C7921ECA6F11247E7EA364298C1C3AB893549572BEC45C1A8C3B88659CFD526810B23F2095AA6C1424C7178187109F83063B52547B9C731F9933622A33C7A8B927A50191593488F9A0D12331017919159C7A027C3956FE109393A167A6475CEBB49224736847319D161490EC52396D7BABFB638BDEA29F50C9CE37314FC858455F63FCC70CFCB751DF12274FEEB45A124AB1B997C917A550C3469A0C185EB0238FFCB4DCBF751E12CA17A71B807B1446EA7180EE302E6998EF8D12A857C84FFC377F5E42FD41238A54345229916A715977025B3B4A6060F778DE7D426A2F95927335CB202BF4080B8510CC0DA12C4EAEC4BBFA42997E21504B8C5D32604F1D66E8D55B50C393F973ACD37A236DB595E3EF08239C42FB5E9243D967181B9B94F4521C104A8AA726DEC057ABD419BC8C6CF350C91ACB78B0832144F409F78992652E30EED7BA2375B3245D877C8E8B873F0427071C956633495381A2C642B15282B9945C758910FE469CD091B4458218105DA96A479BE0AC6B3BA155D359B2815916E93E9BAD3D431945B852E519DF0129174B24A32CC9FB8A62DE96733D153A799CB8FBA3C86B9101CF3D4A97BD3B699467991A57129607C27274D3224CD1848C17F1550BE47B71A119873045E215BB817CB92C12A7BDC6347DF8B64DD686873D800B4672AADE8AF56D2995546CC37C06F9212A54745C5597184EA85CEDCA7B980386FB91B8AE677A035A4547B5848879C2567C8CD6AC285F6F2460DBC0B73F5AE0993C988418C234895380C556042ACD15A6C015A13EBE16CDEA4BE38528A9D244230A0AB053C568E31C64D06A3D7BCA0E5207B7669811A3512F8AC6887137B0B7627D2401CCD604AE786753FB6568CB522B28712211208C1849D1F75CC4FB951D2AA081ADA952998B0B0E938B77359233A76C135897E91059CC5639E978C12C6BBFB735FEF4BCB1D60180DF21DD367C02E79916D697F20197D07E9980AF13D3A0AC5D2E010A8BC850476630F5B8B37CB8A88C14A047A1AFD576B6FD0AAC283981457430CC62A900C7E81F47F2574802EB91707E54DB0E77C223467ED07C29B7C5197A38B9CC7C77D99018FAA271ED10B32843A92001BE592AFA651082A646858E4497F777C0F589913F50B0952669689BBDC033701042F32DC48FC26038A63142E17A6D7C711F5F058C2392A50779EAA221C811975D957C389513F39F42F7A58175CD1A6A50B730888102DC93F4F056BCB42710572B6CE36865C621A75D7717412A12CBA792988517540A3D8493F3EA68858654C62807794CCCC4102A9E24328CC722971012AF19BB7AB6C97F4813FFE5A2F13403A37B7477D18BD35E4613B73B4EE15A3C639593C8530211A0A52D214B7D48DD93AB27CE23975F2CD9D8AA70C878FCF342CD8343488D7A0B75228DD3CC8EBC1148271AF1526583603BAAEE2110C400AE5145CEBFB63FD118F958081E9A652C322B793883144B96517C088F4237F9A067AD83BB3A59C1CADBBBD2E225B33D590A3BC60FF331F856884594944A1055F1AC6BBD5F7BBE0C7B5363C984D408B493B92BCA2A9395B7DD9A46C17B632976324206179BF05406E629F86875573D05B0599B561DC5EE8F54A73690B5C3B414FCB7AADE872A9489A5530025B442C94052D5E892CB47B7C75", + "85547A72A9E3A3CDA629AEF1876C96C479063C49E94B952CF819AF8B3BC39995D4563337BBCD419C17C4F5696A6002CBC6B760E344A7FC49C2D0C0ED52B54F16041E5C4ECF2426442B9D59EC05872190A80B4F341312F91B7737CC77696ACC5E0323E02100563519AD3002FB95B0591AA126A70ECB708143C7A502C53A77A82AE915B25BE77C68006F4CCB0252463DD668537C24BF4B0039CAC4A4E6B3C19AD37301B595C504909D8A4B8AF71C0FC2C905E26B5317703B3195712070B0D5677BD5101C4BAF9186582A8B70D163AB01C6151177B7C83B6CCA2BBF62F6ABEF41C6AD6764CD8392819A85CAD945EBD210B9C08F1333A393B144A4782E683CA2C73C5875F20DEBE3AB59C8393F7CAF4328A57618197450097D250E9A77266D15CBD7B3867DC49C0E83C7717513BDA8235E8B89FDE06CEF1413EE0A0E42C814B4DA9D0B0C5961F73E90C57C1DC614DE43C396118979CBA7144316607BB82E5451E9475C0CC4127C58A69FC47E6F02A3FBAA03949A9760573B2BD3C6606325C56A23CF4AADD8024BF9D1020332CBA28C7FEE610D45674E17281E047822138B04DF69CE9E11AA644C47FFFC688BA4B6C91B01E2747D2765B7D9579485A37E7090AEAE19AE2773CB4CC17B998C9D25955A33A0A9C47117FBA45F02611F1FB59D415A93AEE26A2E4726E50C457C692766D55477546785F76A2AB7C5AB983A90771834DA4016A755A2040EE3F6A24145CD2F827729BC74B17BC92032548B663F50B307AC511C47E24E4AC4957E552C4662915074373D83B34F468BD66091B984692DD32669332B0527B0A0BB3DF41556AEE9693EAACF97047516B6AA455311CF97135B697E7E9A2E147756E8FB0B657B41A6352FE6A17F4B031EFE17926B7757FA74831257CE2442066C624BDB106D3330B99D730E7EAC1D1528348156352E266475204C6E13B5DC06B2596097C1DA6BB2D31E139C34F732A70BC09AFD6A8E9700BB20FC78E3FB15EBA8B2ECA7BDA0508B1D8C0C9393557E62836117219FC2201C79346949C53D8414C7E673106234E98CC1508C81317450670CA7DE957BFEAAB0E6780FBD755EEB08A441F983E3C81468A7BFCBB152BF6A581A901564F2CC6AC13423C32DAD054E02E6509725BF13605F646922BCF84FCB4B456C7CA25457415C7275BA54AE8C4717157A299FA18B49FA6BE7460F8427516649440D4C0DD42814B8C4692D71B7B6C0049473472E002A53392D183B4AB70B6582557F8ED067EEBC00B670B517433466EC6B2F967EC1720B8C68C41D2923FAE5C4285C63B03A8416926B93496DD57B6E241B14F2576E7B9A28076B2DCB8C2F475152A5FA7EC98C952A263CFC221282D57BF329A0DAD122046A75399507574289A18226AFA90CE4D7235AD9A658955B6A25359A435D5A6798B1D453B90679B5849E3FC817899375F890470238004CC7520BE51FEB8291CB8BC336813DD14A7BB24B2B8B8B425A969C4E410AC4876787F67ECB61409885518E0533884C613F70A22997B0B8CB1E2E333D51AC4E5FE854C657C0CC748ADEE498B6C389D4B498D206845DAA6AA89731B1DBB33F2C38DB8614024778225B92D5826E1BCCA780400E79B42E0FA3BAACC5825BFC0F45CBC485D69C024CA504A975ADA9A5A822CC0C11CB3FBABC64D07DB6133A7E91223C3658725686CEAB91EB74060BD039CF1488376660225B42DB441DDBD437D5193BFE777B35513AC8D85E6DA433FAEC55FE969FD3865EB9045589B09769A41C963596CE70238CF7B407B096EA546FD5F141DDD54EC001B76CF634871240D9F82F77F5153E84A6A5C41A3CD908E962C5B8898EBD4287FB2C97A0710B448C4EC93CC5EF1719C91B92AE77B35CF2628396160F0BC3263003E2E89243F073726A657B2386173115B778CFC842C67A4B71D5276A934AA94D92B452286A35913B0262AF2A4007642A0B04F76CE58A31BC776D6F1B8966180E2EF026763A87519A10B8049D799A8A3D038D5BE31ECCD5676550482CB48F19171D8F1A3A633448FE9C83BD28097BB29A168DB5AF1D1B354B6881A2CE509BC1B4FDC4929C2C7E4501BA7A9FEB0BE571E27C43FA96F9A7F934636ED9A8611011C033D4A4BB231985CA7E851FC73EA4B2C29E131B7F442DB8A66A9E5B31934B\nencap_coins = 8449BFFAFB415183EC7E27D7FA2E30AE045B7D860A4F59AD0C551A8488E1DB6E\nct = ADBEB58726CCFDEB0F57D7643AA30944A004D9754700087B81F8076B8771BFC17419C8529CE51B955BDBF41FD1EFD70B04C09B4B8F6C927AD9796BA72774FCCF5A873E5C0D1D702828E20328BF6C8DF7D4B5E54BDD005B00EEE56BCEC4407826032D2D7AD776CE41DC11D7D614C33D39405708AA5990F50F70B600CC423A6C687AEC77E915FC43DF169C93F1CBDD292EF1388972EAE2308C4508652DB330163A6F6A7789FF5B7C03F0B6EEBFA8204DC304B0F744AF2698E72BE43F3BEC48DD8841E6EB52862903B877428514E1247F88BFA96A0AE3823D63938E3B248C01FF7B4AB168D3BE022E891018E06E054E1B9A3117E81C28C585322B6C4A2FEE29EF28A4EC971F2FDDDC7EC69FE067B527DE8A7C231B3838B67DE00BC213253851CBCFC38067328FC2640102EAE7B37903B841FAE2B73800BCD1ED9185E29AE007036D02E367A8A132DFD15F855E7C2F7B9239D0D5CBE7D1EDCDE58443B2A1418136EE20688EFA2CD08A718FD878D3BE9984C31813E5A4EA6E1E666EA60DDDA7F45EDE833A5C64F8498D782C9A2C13F6D41119DFA5485C4D9C68C0AAA7EC2CBC60ADC02C9D6F080A385984FC0B30F719206EE5D660CE305B3E89BDDF3A9A4A6C6533F5B1DC9A74C3D59603626E4E0BC6D32AF3FF14A1B030999471F1289F8B461068D16B560898FB1D585791A898B02CC7C7F4EF641DAEE4413AAD487E8CB15919882490C509F14000C25E50A3BFC9EDC71F5FA7B8DF4BBD4DA49A68583DC430FB750EE55FD858418447286A687DF4FAEF7463FBFE20B6BF93D14809940BB355918995A7F4ECC3330E4CF20F0811E034F76AB0FB7C2F4A0027989371190DACD26E3374E3A930DBBA95028BDD5BE864F8954DEBBF6937A215948942BFF1FDCF47A9DB266CE36AD888574A722E6DA7C3B3EF40FC238999492D917ACDC2BF2EA8752C7F5B9FD41EA92ECE7C4694E769E587667DA7B7B20E51788F9E0CBE7DAA8358932E2298CDA50723BD4FD392689B690FEB10C7CBEE310FEB655410237EBB262E31602B0147A73C9DFDEA4A52DBD0F9C346854680152528929D44537E92724D171EFF47E2704839EE58D541DB92F04705A4062E8171F57D3D5BF2EAFA05F4A919A7DDFE51E60EFB95E12BD8014DD483ECBCF39A012FD711D51D1517633629D31283D14D7416746234000DF3FDAF1C2970B783739CDA2FD687970CD1456F36B3D8ACB9114F2F4FCB810B1254468CF1693D3AD1DF6D05734EFC100B5DD1E344A1B91A6494EFC53FD7916F75DDD9CA9087651C8D09212B452451AA0074DCB364604C589F606BE2A5100EAD3E05F9ECA207421E615EBA6D08D61732B1BF722D8413E6A2FC891BBEE363271A9F43EFB334962B0DBD347CD80E476CCC142AF2F792CC0CBFB61366F0C73909ECED4D713B26CC91E2CFB7E87ACF57D72A3376CD64D8DB303150CF153CE379F03FE40FF53541904993210A928F82922CFB19D1A9F2450C5A0FCAEA4B97DA20D5411143D3BD024174E79B8E7BA5198FD9AD4EE4B4C6B88F119236CC054B61CCABE2DEFC8DF0B93296D23FE57B8D5759FEB454C29B7E31F57AA0D46CE673FEB4AFB33C42C803599F47DA390C68F5A41E7C13CBB2408E3B6081BFAE78325B5BFADDB29644B41318969FD2FCAEA3A7217CED6A5EE634C37DD1BF41058B5E90585BF04956E103A241105A414B0C7C989D6FCDED2A89D7A89A99B4D390F867B0B6B281AABAF48D7B592116ACD40774011A9F6C51B852044475DEC4AEB893F9FC9DA7F8019D7A9E776E8D4D1FC7797AD53D7778CC092F103B5C96F6D5DB57605D49D49C875FB0C4E7A04AA092C5F058708B9DD7DCE4528F9E685CC9F406562D02FB0280E45D251E07B22E54E1E9AD3FBB93D05AF01598C24B1D26F702E1FD1DD149E3191D56780EA3B58EB5B1A47C7F271DFB92CFB2DF4660CB8E8DB24A8D9CA7ED50D734C06A6859CB33D279ECAF9F0AE197A6EEB525269F8E126EF410A6E927098BDB554660A7370C4D109D16CBA98E1A00949F47D24BD7FB33FD31E673AFE30971B5D7A3261F20369F87EC48E19FD1893F4C79CD06952C901B61694EBF7415FA74FD5CF3C68F5EA736B70099A05F514678969043B8B264A8CA54F94699994786ACC701A1C52753702311BBA8D69DE8427DBB4130B404796B6DC1540CA9F8AFCDF40766BC32F7441420F3669E34E494E203C0ED79CDE2DE398900D1D7C3\nss = 247FBE279CE626D0F5954A6B863B0CA3B8139D2FF0BCE9544FCD56D86C07C1F8\n\ncount = 48\nkeypair_coins = BDC3FBA1C32751139FC45BACFFB3EA97F26573D804A5F27A459293D95190ED8E75FD654BB12DA3469881ED591A82F58B4BFBAC587D045FDF3AA0348029DEB1A7\npk = 6806CBEDB0C2C364C98989815EE9081D132427943A0ADB0DA7197CC7430757F3868C49C045D39C8C085665D13BED825FD7CAC7FC6933ADF438A4CB6849B91A1C737D394C5E08649D88E9274009C4375A4FAD4B164851540E43AC603AB6F488628FD7272BC1981BA03121C3A22E587EF30A793BA097D160025EC1B629A348FB8B854B54139D5B6AF09A7515AC4BA457C8289108C7C316C069A8E454A8D1084504C2A4E03C0A321681D168933E0062BFE1635DE39EC8C9AA2A5A48983C1BC34798FC64114C18AE77F13408F753DA60CB892C52F811C8382B3C455C4C0F08248BF7278B9B4B927580A3E50930B7AF9C04839B4BBD95E870A7289B5B2AB92FB339C847A9C22529EC61343537944AC07CC5A1AE713CA8FCBA73DAA688C9CA369E8B8D99FB812489482A727D40C7AAA6290F5032AB8FB5B09AE4985D7558B8C55B9F0ACCB3781B9B2405F11C05E99CB3723922D0DA4963E68487631722C0CC643B3920B8C2AC34B54E77C1FC748C96C186B3A5439FA2B3B2E1A75B16357E2210DA4B3FB620407C4CB78F18178F2B6C4706B619F18DC0863C72794434978D20933FC79193894041183660F0437A2E309EEE87BF538A2B8C7672833820805BC2CBDA61E8F04B7839B1493372759AAED528980E02726EBA914491B7317099215135175C41986858FA31CFB689A865375E8547932899867B987167115031F5B4DD263F0341395E1176BFF3A69FC9B9C020AC8515AF5E665A15F48A3CBA1C4A96390AD7795F7695E654279802C46275BAB1E32FB7111619C55C8787CC01140F0FC03FCAF4B6DF9877E0F24971F06749BB343E1A5FAAFB66A75B4888A1C63F593BBF3906C324083F737A39247CA110279A677736E77EEFD3B08F645100E249461657DA00B365A58BEEB48DE3F96B6797850119145975388AB4C9025215DD4B0A0EC066C8A7A593FC0A1CA921C3C54659D40FDFAAA4F63A6B0D55A761E9A57843617AD6963087396A0187BDF593D98009BA825D056BAB8E3B6AD5EB31B3F195A2C9B7CF9281C176B58346CDC24C580F23131213A08C4CC1C776C146893E8CD44983BC01494793028225F2161F916B888C923C8C30C43C41C1A2D12F18A4918216771CB992FF1ABDBB33AA5F363E6CC044A0D68E6B36785951566E4A666AF6CF9D3222FA17566966C734A364CE14933DA00305930B", + "47DC1E977B88E328296461C302C35F3E432E5D01243685C176E1B6876B03E341CE0A1C52EF32966D67004CB4ABAD9CC8A534B728DB8C32811F7E71556BEB656D773759F04A71F43413805C1334385E396E8B128225929977F41CF776450460707E0C247980AC42C69CB641AF3CB36724D5705AF745965181312A91AA000B42B82670A9AEA43AC26A5CB3EBFBBDAFD4225535255609C3A7D04332E6C816FB68E5AC05DAF42C95C78F6DB76213A083B3237B4665B9EDE88C1BF53B4473005D4627BEE21CF225BD35EB728932543956CA142B4F3614816D891895B14F0D28BA36D298D6713809180621D1B12EBABCF032AAC6691B22CB9013D8A8DFD70BA1281A77F237F9318B43D043F193CF9E1004CDA26F532ABABCA3528C69200624B613FBA988BCCC73288B7996C2DE008F22755ADE918784F7AE2F69ACE6E08E0CC528E3BCC85403967DA02CF1463C77976555460BBA2824AF0923F2DC4336AB44D54CA0658417F8FB5755F397FCA11E07759C5BA86ACCAC1E30523349168EF3740F59EA90B1F7577FFAC0F3F675FA85314AD49CDFB385B6A68D38752C435CCE3CB9B176086019113AD638CF3426970DE0013624313FF57AC82B1FEB24195028B1B65BBCBD5C4EF3A60116125B3580743CCA16CA9ABE8FDC1EC1CA2E4D717A0EACA0FBCABF74034B74391D8D9668198A14E5491EC817701733BE7AB11635E4A1E6910F3745A68035A76F35AA3B3B41E7EB581CE69142586DEC698B675A1660B7C22DD1947BB24F1EBC8B22B1AD1B81600B545F74CA076E468513C0A483466089DC1CD7090C4C5623B02B7824D2BA1894C4E200222BF867911C89D3264B5A081D7441A2F3729CFE4106A780237E179839323F97C04979887C4C223F23A81AF875A33CF28CBF75722AB92308C320D32625EC326734A532333C8B1AB4767BCB682850750620C402878103056CFAB5417354BD395084F4F95AD375F6A1289B8CDBFED9F6518D7031C57FD3455D4544735CF52680424C90F14F\nsk = 5E43BFE8EA443466AB6B087DEADC672E7AADC85521D549B978B054A9B8949E519E3FC3A653607D794491341039713037D31C9824EACE39E7127A974403441E25B714FAFBA4B98041E85B2FD8D8ACC2A69AEA9C80930306B46BAF5245A505D48E293A77AA4174D1C095B0B4A45754A4A94BCB01D4543BF7C7DEF2AE2009408725C58BC76BDE03ABEF3C4EE0831D3C6B2632609707B3B861F093E857902D52A2A48619B1EC20DDE7A923412F79C22389601473076965959B2AA3C79DD31B98CA9847731C89B0929EF5174CC6B92972CE2C07C8139A62C901216245CFC92B2DA158079E1C93C8E08FF438A02DDCA4CA948F47A106D40AB6A5B0AFAF52052F237E44F0765B3436271421308611845785E257CAE691C39FB8C80BBC1C5FD687A547B7E8E3AA1D7C15A918984B6B359CD24711CBBBB95716EA54A8D3511C5DC983FA1B019E0B0D7DE90C3C0A9E7652C18E72CAD6F9C510E64F0CDA8CBD86502A5880EE1536EDD16AB36BCFD859CE879B3F5D6A0D90630668B7385C8599ECB1849A4942D87A91497129E196309156C9AB245F4C637080C963F9648FB2BA6F32D2566F88BCE680203DFB827438295F8670C9BCC34A98497851BDB0E631EA06ACCC26373809986DA62FA714012D2579D5D61443330E3B882C800B6C9D02C98E9859A4022DB4A09510FC91A3B95BCBF73B3A09311CD13E52B61733E02DBB400E8A54A30668311AC02FAE2B55FE05C95AC43875D92F3C2ACB3D4A6B53D363D5D75A697061055A3A788BCDFA051EDF97C3515CA920EBAC9E7A998BB598B8436BDB63550E416D2AEA5057562A901B609B129D92B27536E02C26EC6A3B2C5F6B733D0529330E9A89600B089DD30A0BB52530A3062BE741B09818A78B4FB9F274B7262CA23B3F2A40542CAA64FE38A6ED06BEB5498733A38A7FD0B5AEC2673ACA2B07E00909E68D40AA207FB179CF7A60A9E13719635A15CB221D1CC88B921E950C94CEE17D60F80CA5B4A656F501D7136D1245207479A1DA42C26C48664297562A0BAE0E7906E9D853FC7C490E4078B5B3B226B37101A31B5D05A26F1CA1F231A853F23F59D86A3FD269A0256EEBD02CC0C6B77F1B1C613114E1084D8D1CBABD0C7702F43D2EE01DB985382C562F1B7885A7015EDF59BD8988B5BCEA1CB04639BBF5B119E6293F908245455070DA3013D2B6E2116776694B44E3A7E433407099A51940870B336F547677665C7066E181CE266FF0E508268731BD13AFA2ECB4546276A5DC50772A6FA38541AF968AE5C59E2D04C3B6002C7120A6A970ADA2671590411552E48E7119C7B7F7AC97429E9B7CC0B5242DF277CC10E7C48976266643A9B2308CF1799324780743F95E65851C03599FEA7129D5552B86AC35AED10B5F00058A8742C02A3E4F6CBF5DF61C66143EBE933060C98A4BB55318566184601BB395625FC86E4BD47377B54459B45E50C145596B9178D57D01BBBAA9A63BF444889FC810F1E40E07D289E0B04A58F84348463B9FCA3176AAAE6C1C119CF679BACC6EB685B9F443C2A9E304BBA0ADF3888B42698AC1F68F1626439E796E1967C7BEF581DBABB6C22C9C16029E18D8493A524FC2A41738A25E735C665E79AC423ACA37B5222D97030E794107262A30E76C2C712597527D92437800967C4CA2407D826EC5D0C1BFBA5C96B82146320A7F74640100314B1B448DB72AE1A57EFC949034425DA38C4FB03107A06C26E81773EDFBC3EB265460D345375081BAC591B3CC847A954AE1494F25190C84464141FC95C840C1B19AA0D700073F01381BF2B9C14249FB6719670460E0515D93507F5245B3DCB68E0F00C5E1B227E8608308280B4A54403B5A9DF3D392EC3608EEACBC08E10C84158C97920EA670625F08658A17590C6575F41923027B637F2A881C3592271B3E3DFAB7ADC1A3596CA1C075167847A4C586394EC7735CA93266519C7EC49FC0C1964A47B00538025E1028FF304EDED54D5F323CF5465C2FCA52993352F70BC1289128ED702A4A6528AE7315D8F4BDE361AB6865C182460E1F4A6E49AB5AC81B07C53800C65762AA0594B3C7CFBE449DFE238A63F35463C94B2DBBB18F9B33E6548DD7398F0CF833F1243E72D123918B35530414AFA37CF88ABA62003BD1F46B158B4A91C1C5EB3C851F513F8A760424A65002D87D6806CBEDB0C2C364C98989815EE9081D132427943A0ADB0DA7197CC7430757F3868C49C045D39C8C085665D13BED825FD7CAC7FC6933ADF438A4CB6849B91A1C737D394C5E08649D88E9274009C4375A4FAD4B164851540E43AC603AB6F488628FD7272BC1981BA03121C3A22E587EF30A793BA097D160025EC1B629A348FB8B854B54139D5B6AF09A7515AC4BA457C8289108C7C316C069A8E454A8D1084504C2A4E03C0A321681D168933E0062BFE1635DE39EC8C9AA2A5A48983C1BC34798FC64114C18AE77F13408F753DA60CB892C52F811C8382B3C455C4C0F08248BF7278B9B4B927580A3E50930B7AF9C04839B4BBD95E870A7289B5B2AB92FB339C847A9C22529EC61343537944AC07CC5A1AE713CA8FCBA73DAA688C9CA369E8B8D99FB812489482A727D40C7AAA6290F5032AB8FB5B09AE4985D7558B8C55B9F0ACCB3781B9B2405F11C05E99CB3723922D0DA4963E68487631722C0CC643B3920B8C2AC34B54E77C1FC748C96C186B3A5439FA2B3B2E1A75B16357E2210DA4B3FB620407C4CB78F18178F2B6C4706B619F18DC0863C72794434978D20933FC79193894041183660F0437A2E309EEE87BF538A2B8C7672833820805BC2CBDA61E8F04B7839B1493372759AAED528980E02726EBA914491B7317099215135175C41986858FA31CFB689A865375E8547932899867B987167115031F5B4DD263F0341395E1176BFF3A69FC9B9C020AC8515AF5E665A15F48A3CBA1C4A96390AD7795F7695E654279802C46275BAB1E32FB7111619C55C8787CC01140F0FC03FCAF4B6DF9877E0F24971F06749BB343E1A5FAAFB66A75B4888A1C63F593BBF3906C324083F737A39247CA110279A677736E77EEFD3B08F645100E249461657DA00B365A58BEEB48DE3F96B6797850119145975388AB4C9025215DD4B0A0EC066C8A7A593FC0A1CA921C3C54659D40FDFAAA4F63A6B0D55A761E9A57843617AD6963087396A0187BDF593D98009BA825D056BAB8E3B6AD5EB31B3F195A2C9B7CF9281C176B58346CDC24C580F23131213A08C4CC1C776C146893E8CD44983BC01494793028225F2161F916B888C923C8C30C43C41C1A2D12F18A4918216771CB992FF1ABDBB33AA5F363E6CC044A0D68E6B36785951566E4A666AF6CF9D3222FA17566966C734A364CE14933DA00305930B47DC1E977B88E328296461C302C35F3E432E5D01243685C176E1B6876B03E341CE0A1C52EF32966D67004CB4ABAD9CC8A534B728DB8C32811F7E71556BEB656D773759F04A71F43413805C1334385E396E8B128225929977F41CF776450460707E0C247980AC42C69CB641AF3CB36724D5705AF745965181312A91AA000B42B82670A9AEA43AC26A5CB3EBFBBDAFD4225535255609C3A7D04332E6C816FB68E5AC05DAF42C95C78F6DB76213A083B3237B4665B9EDE88C1BF53B4473005D4627BEE21CF225BD35EB728932543956CA142B4F3614816D891895B14F0D28BA36D298D6713809180621D1B12EBABCF032AAC6691B22CB9013D8A8DFD70BA1281A77F237F9318B43D043F193CF9E1004CDA26F532ABABCA3528C69200624B613FBA988BCCC73288B7996C2DE008F22755ADE918784F7AE2F69ACE6E08E0CC528E3BCC85403967DA02CF1463C77976555460BBA2824AF0923F2DC4336AB44D54CA0658417F8FB5755F397FCA11E07759C5BA86ACCAC1E30523349168EF3740F59EA90B1F7577FFAC0F3F675FA85314AD49CDFB385B6A68D38752C435CCE3CB9B176086019113AD638CF3426970DE0013624313FF57AC82B1FEB24195028B1B65BBCBD5C4EF3A60116125B3580743CCA16CA9ABE8FDC1EC1CA2E4D717A0EACA0FBCABF74034B74391D8D9668198A14E5491EC817701733BE7AB11635E4A1E6910F3745A68035A76F35AA3B3B41E7EB581CE69142586DEC698B675A1660B7C22DD1947BB24F1EBC8B22B1AD1B81600B545F74CA076E468513C0A483466089DC1CD7090C4C5623B02B7824D2BA1894C4E200222BF867911C89D3264B5A081D7441A2F3729CFE4106A780237E179839323F97C04979887C4C223F23A81AF875A33CF28CBF75722AB92308C320D32625EC326734A532333C8B1AB4767BCB682850750620C402878103056CFAB5417354BD395084F4F95AD375F6A1289B8CDBFED9F6518D7031C57FD3455D4544735CF52680424C90F14FDF4F164C11041DBE981D8FF2008757B7E694F564A298B92CD182129ADE5E72BC75FD654BB12DA3469881ED591A82F58B4BFBAC587D045FDF3AA0348029DEB1A7\nencap_coins = FA2C8B8C0F711A6D31C496199AD1993C31DB62DEBBC11BA3B3A86FE4278C365A\nct = 532B4A02EE4EDF16D60D9048939DF25239A9DB3E954B2527C1F78725FFEA54498BA0A3FA9E35BA72D52E390CF9854F70E9316FF644355AE61E9395855B06DD498596B51B29FE4D89ED0C3F488851A650585000F9730475B5F74A3AC5C2B27CC18FFC3508C3EB3760772E7EDBF5B08C3E89847D3E49298B4F2E5A0E3EA9F1E6B700141DC4EB445E41B897698B60F801CB9F1FC9F41024CF6F2DB4D40E4578009C6", + "35911C6C80121022374085D2946FC5013939E5C7260BBB60C3A36354B74A15F9571E0900AD453AFBB9EE4A550C19D3EDA35636D55707CA7CA36F2CE484CD400C3F1B741E266CF81FD5A1C324EA6B17EED5CA893E25A81082895D4C56F2D944BC574490715D25B5E7C3054D9B626E1946759AB43113992A33D537431FEDA05C5BBC6BCCFF08D55964046414E116739738A62B7D5356C5E7620A70698C494D72CEF0A0BD6B2AEE85F0B7A97A270CB01ABBD51CE004B53D342693CEDBF93E247167B50956FF7AA2BE75BA92F5563ECF5452311D2A49C8280DD06FED1EEECD8997D555C8C0BEAA22BAECC6EAA5E2BA37492F577A2FE102FFFCA71345BCFEEC93B24120B78C9B21C897A16CE448ACB6C8E79263C57BD61C5147F796D109BF5418593941ECED6D92A4A49497FF1A7347C381B7A44BE6FBDAF0CA99BAC36C5E8E5F9837DDB7FFEFB181098145F24A19DB7C31EB3A158A601B06EF9614999AD88D7DC853D8331AF01C8D1B6540C293F5B684D597977A5DDEBCFE3CAF9FA7349E3FC3252BFCD679C8EA077C455544B2305A48CEF5641190100278ED59212F70996A5ADDEB0B8D7E097443AD9A4029BA2A1ADCF19B86C6E287D26249F9FCF8B834E4A8C9797C5B37591F1E25CF56267C1EB329E3369022580932DB7D30245D940CACA4F35D3B435AB81BD884529826C63159107DEF669AF6D39993BA9B9F3744D733BEAB718956B2D0A02A4FB732FF4FB5178498E74DC317D279E47749CF1D5E0E3EA13855FE29DF85B5C1EE35E38126FCD4891E5814EF03B51FB03605A7FDC8B391D65ED14DCEA8E7A0B692322816F6EE25A0CE1EBD791419107AA378BA9183FBC37F8D45F9BBB957DDF7BDA0667DDED34397E227C1C8F818B574A39D65772F0C1047B75818082FA754DAE5DDFA3B2E1A7EFC354018C69BF1B630EA3C2EC1CEF068E1FE79BCC7300ED25F68FA312569BEF0C7F03AC88B5339E197A8BEC218CE3F343CE6C65CC74D4AD731D715C6C3F4CE40DAD7473635958B68E8DE6247C1E91F288C9F37379FDE139BF9E2CA209C8813F940123C710A2D2D06D354619E0291193B0A8F241D31ADFFF66570E38B4165044D68B864143BE14491F00A55930DD618C4D4F0B13384506B5956ADAE3922F84F54F8501FD87C96AAB0504CF42817F68450950253D61F4A6F652133F5880B662BAD937EE42DDCD64C84F89081097C98716525E4A12A08BD585DF8E8574A803BDFCDF20C444BB5E1C9F251BA65B8128821E80DB40EF1FD81A33AAAEE707AB44B7A26E27F4054C038B044C573C3AA1BB8692F07FDA17699D1D3289BF8C29A217921B5709AE843F0B035463C9B50410836077384375F1FC2D0CF0245378527C6BD0096EF54A364ED1A37B0167B7FC6C9DF550DCBB6DEAACB6E591463D1F966BFA9CFC8475ECD6ED293C9919AC70AC1228A2EC1DCA8258D43435BD4C256CE051115B9750E55BD600B5A7DCB67C0CCD8005DBE48E6E93246C964DA16075FC2778313D592A1FF0533B88B5AA6833A65764347896620184BFB08813DB2C2F841A346362C6C2189E4BAE574B7E539C85B43D8DC43C88C4BD22E83E5053E23C91BEFFFAE63BE97E90A35B25D85F19D80006DF61C7E22B2311824BD53D323C963C9639613BAAC87FD7A2FE1F6DD8FB6C9B54B3699F263BE071EAD2F8A203171E7CB18074F3E91E4DDFF0CEBAEDA4EEC79086FD8376EDA8F29E24A70B8B106295610F4EC3032BF49E45DA8680748EB2A19D592536BBD52E76DC73ACB84EAABC6D779FCCADAF8F6396EB5CBFB185B5FDA00F69BFFB2BB56D50ADBBC1A5FBB91281AB91894FCEB8022CAF38F366C407B4E3BA82EC8219114D2B23CA0F457A0BC5E90D777E8C32FA9660E5F8A647379760F3A473561FF0C2095F128F6351C5D8F522E1BCB218FB4ABB76880E614365F92F3A9792AF55A1628EAA3B45CAD7D46EF7AC821B661592A2C5FD1C961A73D66C07526D5B646E479413F2AB\nss = 40AB8880047B04213DA2C202C78C4B6F92CB6D73F1BF13683737B4FA89A1F2C1\n\ncount = 49\nkeypair_coins = 447F6076A627BBC5AD7773FBFEB14B4BA9AC43A0F8B99FB6DCD5E452AA3C47EC4C7E3A5FA1EC46B73F87AF48578132EB080AAA37D31F0C2A041C5948E59F44F9\npk = 2E5317C2017A6CE707B079CB56A06E388B924E96254D26C853733B50520224BC51798578C4C53BC92552E8A42A07136992213A6763056A025106255F57E4670A6A4262445AA745A916A9B629EA64AC757186D136FE301C6226992129B493D0C2D635B5187CC2359CBBF235A90EB24F7FEB5137E4157EE0822B0CC1761C18C25B18F757392863C24A13CE6DC84E3C28AAFE018ACC1B338A27746ACB22F687AF1E693DF043625C63805AD42B9A368F13F19014B456C78236FFF57C7DE2B96E7A2223D00D9EB8973AB04C67F3B03E8CC1CECC7912033999101B37EC643605C0D70C1161A6CEBC512380851F6A834DE7631BBF47ADEA0BC17A6478F122C8BE309804D2995541558D688B9E080C22BB3494F43C1B1A0C874BB4D5246688A2BE22159A56151AC2E6385B1384D0C635ECC94B80BB8276F435A64883ECF51C43F066D481CDB5A21485380CA2874A38B39A691C12D983CDFEE9530212439D154DF71106E2854222454C20736F6DAA41E9C949941205D84A7B5730B95CD3251C186DD97B1D4EC329521BBDB3394C819A984F87A7B3992D1D578B5E57CCC3CA151992395CC6695ECCA7AB67806F2C2C0EF46A6BC02C2BFA17A8EC41CAF87F48A146F2345B7A185BAA1379880B00D0044F90E2A148186CBF474BAB0330B8F029C72802F1B1698AB158E5C81343D34CB10255DBD1B9B6265D4C4A3B1905A650C29ACF22AB6929A0D95357BC76983A201727B1A0F7C8464DE2BC0DA3A48A81B338A1855A759F764639D9E7306341A96B9AA52994BDAD71CA3EBA0CD695A701A0CA483BA6F16B64A9B59C68747A22086EFC38B3344C32E67C66F47359D282B73428AFEAD6CB07774BCE87C27A5734E39895771CC490783F149865EB3CC37D8576C1CA0454A33BDEE7AA80A2AC17FC709167843167208837594EB8A47AE1A38CE819C4BA7DC4521DF532C0A6EAA5CCFC37E1F76E6ED20A1715139D9A41E2FB46CD5C0B3BEA25F60A120222AA06E15504E4188116ADE33507A26B927D10BED839577D2641B9550E1E921932185467B8C2856A430ED28275DAA37B166E025073FA513A0C852091555B0E19A2C8E858C1584E229C6BD2BAB500EC032ABB4B8028B90E3B24FEAA3FE2F826EFB574A786C3BCBA9829E49BA6318B2B24CCA031C636C863F224619DF40949B08FFEE535A25C7187A92FB522376CB30D4FDC7EA9368594CC53921C857F7A1D9E9528A9CB817E423D25F791B4CB1E95E7B3E6DC406C83C9140385173073F7AC23D69C6AAFAA6CF82862FE05A409521174328539B6A907F34D553AA77980C9F4959C329C563D8C03920B98563C5F13A0231EEC58876210A5A78F1B43C1FB8B4490D18C16687065939535363AB88397E51760AC356C69F7B25458183A10A0310363F31C5C16F1898D06701824565A615FFC232F33513FAE22B6BAFA22177B142FF88190A207B4EB5EDD4BAB67185AB0C9B8ACAC2B37AC2108AB09F96461A3F079C3C018C6C058D2809F1346889E17CC488CB645C698AD3730084415647728C2116E013767B37BB513000FEB359B84105BEF19CC7DDA7ABCECAFCBBA381BB0727C8554BBAC2D42C18BEF471FCE337E2FB99D69A9A54FB14A1BC6856DD56A020317C4A57E315CBBC371CD673A0B0919209F2361990068F0570B530B0678E01032AC6F95C2021651A1159B0B221545134C500D857C7BA0AAB92CAB5B5298C1B7B8AD588D0D53860F0563AD9C309A12A82B14486A10B79D7B6D38BBB03D9BB49DB4C90610BCDE5C383C418088F51EDA6A99E386AF8E1802D84B6D7F236104C2526D577ADEAA8DD1C468D812CBDCE44B04D64AD2938FC6495FC0A84E62E506EA548A8F5930C032B59E54AA54598F9653A118C5C83DD07F1B73061C02195436B6A66301BDC21953EBA0E0E351E01605D9919956968601549ABD9CCC9D284B3943C666CB8BF8C2112F52A5C733691FC2003C5B6EB8589D9594B8C92C4C4C6ABC2E5B2BB67078F81849E5B6760CB1391B9C5A57F8705EA61F2CC475F1F3A45A2A0B12BB976B2874CBFB4F7266B6E1E20E6C2C490BAB8DAA779F0109BE1A662C985016C483A71E636156186471A9AE452BB973EC28BC135133E9744CEC8B330C0752451C6944B7A304A250595D86B394C6762D104A83936B5FA76B32D3AAC91874B16304379133E8D8C063CD3044DA1719855FBBD9796314B11DF8459EBD2D92B7FDC94C4C\nsk = 469963001D4D93DA7CBAAC0ACDFC833C47601AE334DCC0022A9220138C16B9ECA73AD1863431A34F593ADDCA4F0EA393FC4595D22A7CADD0A8D89827086A955400ABAD84226541114CFCB3E3A240FB600DD6C0960A7976175C56B0B48C66721E13882E3AA5784E12869F0C8518037955F876997975D27A7C92D4CF005AB859590504C768B02576A94263C87C4BBFE1AFB09B8C0A5C067776A0D96A5D12925B44AB3D3E57C6971B0A86617F65A16C7E9B42C283577219409E1CA4DE08A92DC5B4E8E87051680C1B24068DDA801FE871E0B28AB0611BBB97CD49BCBF159B7785830BC9D302C0A61AD138277AFC2374AA64E983506BD11288F4A20376B50AE1C1233A1ACF30AF1DA67301A5A420AA826DB58322DC1C7AD8BFD25C3B21025B565C357B4A0802E615A35A384F1794A0612E030228A865A0390197E7C27F45A4258FE26082C850170CAE86721BB5C68CB32153B9934DE4CB11528C570AF363925AB0FEDAC79748B3489B7180E81FF6DB702D5A100336955EC02FD2B9C86C2CC001833B0BA1B7DBC9699C6556B448324D29B0F6A4028BF48A49B1CF60B4A9F91321AA64CA849848CEE2BE0A29219F783008417DA307710F87CAFA2603FD206E5698177E81470AF4C608A6128908541183A5B4769E74166349E55B4D2A2A84600EF712C2D1F13F4FB3C91BCA8CAD209CB5BA0FF578BD6E29A0CF07A972D262A2EA3C4DD44A5D55446C174B345B96871076FCF785CCA68545EB6BE64BC9BE17A7D5914D8A50B286D3A2A8E1A53FAA53815ACF0237B8BF204C34766E97883071E56539361BBDF29187C180414C83D9C09E30983995AA4850A6B2358AA6240642CB9B0FDB739FA5A93EC60C11061AA8B5E71316A517BE2BAEA2F74BAEE32EEAA0A75D2030F5E8BBE1B517F56511FD8AA499621A9EF6C88B96A9F33B2B3CF04381B5C97B743063A6286751AD9EE14903C4674B308DD5E28BC700134C43C788B04460DB78A0E795E24698553722B4C3A095784828960672CBCAFC11AF32C918ACE0580D5BCEAA574409854051A2419F148809147133866F9B651A38622F21E0614F10139BA53724831FF312157146169EA29293D2A3F1250AB9CC877D448ECB53139E6C5487DC2931D45B4A74C34BBA11CBB965E1E664ECFCA54DB7BFE7E61DB2382E50076A70A9AA028670A354013C894B729945830B1125AA53F4D352BFF33FDBE7C64BF70A4C3ACFF3680976FB26368693D928122ED5707B453A1DD714FA9C5A8E6534D45B53A2BA464E217DC0461BE31C5763715BB66B6F3A4C0E7A3A4CC107602CC3B67487A7D162422468B5CF33C8E5A63F801C2016B15C40398F914CBCDAC9664B7601680346FDD3A499D89B5CDB7E77CC8A1215661AA34737149BD0734F7BE6A0C20BB94E6A89DFB9B0A9D6", + "C4BFB86408922FDC9650DF7577E5A89215C8636D5C376F4596C329158964084200C91AF4A7699018C6D139F521204BC521110AA222203774DB88AC0AC94CB97720A71411EABEE0B2863C35607A617E761298825ACD91C73685198BE96B84A98AC7295142F6C19BAB0082C53A8A50A3A39EEC2A34E859CFA2C88C9CBC77B1BDB5377981F61C1FC394D70820336BAF21820D44C0956E09A5EF7786B8427A10BA0AED54573CA5245BFA751EF891E1072AB20A4F74795A3F296BC5E9587F272A9FFC71A878337F5149E7AC47A26532B2BA2CD848AD5E7A621EF3B0AC470AD0E64490F6463C0A6D091C1A1156771999697E576EB1155789555392DA8D0F0CC364378274922B4D11A3013AC273DB2E0606CCAFF52048D30821093D5CEB0417A4347E5B178EB5B59D37C54CB911AC08CD5461B1A61567F4448288E78A3ED70C3AF85C6BDB72D4BB6819BC1C5946BFFEE0974E91C56B47BDD7647990948834D463361C1919A977DC84506A0C13EC7A9DA410CDF51A9FB67B867DFBA51E029E6E99A35A0064A5F640A36B3E41C45D586804D9B5A8306674C037A587427AF6160F7568518EDB10E4D83E6FEA21B23B20A1CC92D66C043B5328DBC9805D7C7D938066AC238C3461A2162624B75BAFCCF47F58065EEF38207D22895E321A0ADBB16D2001657A9F622849A0008EA88988359B508CCB764D265766D2B1E1F55FEC412AFD07A2C9A22729B8CE84EA770CF4612D369653AB92698C6358769D2E5317C2017A6CE707B079CB56A06E388B924E96254D26C853733B50520224BC51798578C4C53BC92552E8A42A07136992213A6763056A025106255F57E4670A6A4262445AA745A916A9B629EA64AC757186D136FE301C6226992129B493D0C2D635B5187CC2359CBBF235A90EB24F7FEB5137E4157EE0822B0CC1761C18C25B18F757392863C24A13CE6DC84E3C28AAFE018ACC1B338A27746ACB22F687AF1E693DF043625C63805AD42B9A368F13F19014B456C78236FFF57C7DE2B96E7A2223D00D9EB8973AB04C67F3B03E8CC1CECC7912033999101B37EC643605C0D70C1161A6CEBC512380851F6A834DE7631BBF47ADEA0BC17A6478F122C8BE309804D2995541558D688B9E080C22BB3494F43C1B1A0C874BB4D5246688A2BE22159A56151AC2E6385B1384D0C635ECC94B80BB8276F435A64883ECF51C43F066D481CDB5A21485380CA2874A38B39A691C12D983CDFEE9530212439D154DF71106E2854222454C20736F6DAA41E9C949941205D84A7B5730B95CD3251C186DD97B1D4EC329521BBDB3394C819A984F87A7B3992D1D578B5E57CCC3CA151992395CC6695ECCA7AB67806F2C2C0EF46A6BC02C2BFA17A8EC41CAF87F48A146F2345B7A185BAA1379880B00D0044F90E2A148186CBF474BAB0330B8F029C72802F1B1698AB158E5C81343D34CB10255DBD1B9B6265D4C4A3B1905A650C29ACF22AB6929A0D95357BC76983A201727B1A0F7C8464DE2BC0DA3A48A81B338A1855A759F764639D9E7306341A96B9AA52994BDAD71CA3EBA0CD695A701A0CA483BA6F16B64A9B59C68747A22086EFC38B3344C32E67C66F47359D282B73428AFEAD6CB07774BCE87C27A5734E39895771CC490783F149865EB3CC37D8576C1CA0454A33BDEE7AA80A2AC17FC709167843167208837594EB8A47AE1A38CE819C4BA7DC4521DF532C0A6EAA5CCFC37E1F76E6ED20A1715139D9A41E2FB46CD5C0B3BEA25F60A120222AA06E15504E4188116ADE33507A26B927D10BED839577D2641B9550E1E921932185467B8C2856A430ED28275DAA37B166E025073FA513A0C852091555B0E19A2C8E858C1584E229C6BD2BAB500EC032ABB4B8028B90E3B24FEAA3FE2F826EFB574A786C3BCBA9829E49BA6318B2B24CCA031C636C863F224619DF40949B08FFEE535A25C7187A92FB522376CB30D4FDC7EA9368594CC53921C857F7A1D9E9528A9CB817E423D25F791B4CB1E95E7B3E6DC406C83C9140385173073F7AC23D69C6AAFAA6CF82862FE05A409521174328539B6A907F34D553AA77980C9F4959C329C563D8C03920B98563C5F13A0231EEC58876210A5A78F1B43C1FB8B4490D18C16687065939535363AB88397E51760AC356C69F7B25458183A10A0310363F31C5C16F1898D06701824565A615FFC232F33513FAE22B6BAFA22177B142FF88190A207B4EB5EDD4BAB67185AB0C9B8ACAC2B37AC2108AB09F96461A3F079C3C018C6C058D2809F1346889E17CC488CB645C698AD3730084415647728C2116E013767B37BB513000FEB359B84105BEF19CC7DDA7ABCECAFCBBA381BB0727C8554BBAC2D42C18BEF471FCE337E2FB99D69A9A54FB14A1BC6856DD56A020317C4A57E315CBBC371CD673A0B0919209F2361990068F0570B530B0678E01032AC6F95C2021651A1159B0B221545134C500D857C7BA0AAB92CAB5B5298C1B7B8AD588D0D53860F0563AD9C309A12A82B14486A10B79D7B6D38BBB03D9BB49DB4C90610BCDE5C383C418088F51EDA6A99E386AF8E1802D84B6D7F236104C2526D577ADEAA8DD1C468D812CBDCE44B04D64AD2938FC6495FC0A84E62E506EA548A8F5930C032B59E54AA54598F9653A118C5C83DD07F1B73061C02195436B6A66301BDC21953EBA0E0E351E01605D9919956968601549ABD9CCC9D284B3943C666CB8BF8C2112F52A5C733691FC2003C5B6EB8589D9594B8C92C4C4C6ABC2E5B2BB67078F81849E5B6760CB1391B9C5A57F8705EA61F2CC475F1F3A45A2A0B12BB976B2874CBFB4F7266B6E1E20E6C2C490BAB8DAA779F0109BE1A662C985016C483A71E636156186471A9AE452BB973EC28BC135133E9744CEC8B330C0752451C6944B7A304A250595D86B394C6762D104A83936B5FA76B32D3AAC91874B16304379133E8D8C063CD3044DA1719855FBBD9796314B11DF8459EBD2D92B7FDC94C4CED722667CAF175DF48A3A346EC7CB1BCC37D67D3137FF7B7C70A07F202893A334C7E3A5FA1EC46B73F87AF48578132EB080AAA37D31F0C2A041C5948E59F44F9\nencap_coins = 0359CBD196B3F4E9A0F8506A14A90AE501B00496958C512744EC20E95B065497\nct = BF82EB4F62D1087F051465C782B577F7D650B12AD67159E84531C6606DA08D3398DBD815ABBA744B688372E4594F779A7B14D4F7DCBA3CF2BA7761C740D350AC7D482C5598D7563070B6F402E9A6E7F9F032406665F6240938F56F68972741B4263D25F40FF97C772E1F1A67A4329FE4616BD56140ADA860653DDBD8BEBAC2EE3368DB493A3CD9A831643DF57B3094DF1012F57F6AF15185EB5A6193C0AB8CD33A4ACF1E928B73A5894557324FCA822482F87E42ADBC64360E111AD67E794315B745B1F472B986E760EE7443902277C8D8FD31E76B8AEAC1E88321F8ED9AEBCA0D383BC00A4EF6A33BDCD61A186B24B3BCADF2630B11462E2140F2427A078FC0B11B4A6F153C277F018EB81E86D61A932D95B9E344E7A025973345E1D1725620EDA0EF7A2383AEEB376176A548D5F337FDA178C21B6A07B297A782DE3BD7969AF16FAC234EAECB907388491D3614FF845D474A081953BF433A23A03BBDC43030A4835591329ACE848D1D1F70CA660CF818EE424E6E5C611AE43DB03BC040AE40AB2834F8B70EA2BC3836513582332AC294F7B187DB83E60A139DF7B917670E59DB16238FC6F2C379B56880FC2297EAA8AC2CC44D0F73D9B6863CA807080F6BE633C4E7212D88C4C2002CB4F9A530D22087C79712F4B1FF1F8D2BF5515376CE042E3BEB80B93F8B08C48D72B5F6A821CB77CEF664E7CD9857148E0C2000D94BF39D7C382AE9CBE57120A41FF30562AB6113C3165C6EA382162E4BD1A261C7331C50BCCC726270775A27D79F0EB9FBC0428D414EC8FCE884F1C85213A3C1B790EDE2825F2F184637DB757E088D278C603BE389882FCAB5ED0B7B5476DE89E6A4039D9F24F3E16B3B96DE3DC63074D84EAA1BF72C7291A75EB6356C7F08E030D232F4AEAE01C085F74B2AA47DF9223C104352C67973ECA82A665B6C0D69F05A93A1C4C084F1FB3FC1EB8CE1D0FBD804A3F75F9CC3E00F2DDE13E11F9E62F61795D61D2545A6154B7D04CA06C4EA3250FCB8AD24451C93F58F91250E937023ADC2AF9F1D657704167D8DB511D5974194107C54CC7C4AFDDE2D125E5BBB2099E68165DBDCFF212C72C62E6A4AAA6C808E9D390CC96F59F30B9D064004022A9D3A2A6B8603463E8E67ADC0F3B659131D450CBD421D09FD05C75A80CFB8E64AE53C30C59F13B80BA11647EEA1C03875CCE054A5756124D8C9DD62F97590A4A6CF99AD376CF57B4F0DC272BEEA83A250C17D9CF413438839C53176ED7D32A169630A48AFB6F09CA30E8EFC954C2100152C33E79926B0AE5FAD298CD2ECCB1138C77835682E4D68C9D2CFDF7CD105209EE3506406F77D36D63DA6EA8922D55D1FF6F45DFEBC54F761050298AC1E3082C6BD9E31E51F23BF38237ABFDC2CBA28243D1986FC0FB9BBE76D749D1728FA52E885E8218CB16B18A5799EE0035755596C9DD48FD409A6E13F7AACDC3956DFC07C885C94461D10453CD747F85904BAE0AEC6E1A834ACA4FFE1FE4F9AA4E7000CCB58E9B15AFA65805683192D848672BE297849F9731345B52C9ADC1BC62D3379D81F7236D3ABA47AD7888E818F4EE6D34A3ABC6D7299F831A59DD111E92B7CF36BE03D7442AAF4A57CB032629C8B88C7B3F9376B2B697463EE6501FEF1D5086EF8AA522FD187019CCA041CABDFCF07CBEA316612D96B36E1ACA51E64CB2AFEACBE702EC905BA5B21F827F55D2E7BE8DDAC5F25F83E787CD168DA2B5EA0F61F5B490479D9A7EB7A8DB43116E1904B2DF22D34A158084ADCC0A2C2302E995FC69D9B76AF0B10CF6273B5D09FC56B0297E631DCD6C27A333BB729B18F82AA4A4ECF642A1B036C7351F05C71A991680E77C7A9644F4C3C91B4A84B46D88CE49D5DFAF3CF7F24F3FD1BCDE24AEE43AEFDB03AE0657A894ED2C314B4D3BF8538C470BB4702066106EDD35AD5DB74DC2254E0452073DE9AABFA4C43AC45FC3C6F517EF43C8917C54AF0A569514402A12A7B0165F4413B122AD1066DAEAEF044262337ACF6AC0D835EB94CEB9B40A8E7C018A2AF8E09DC51B4B01FDC8F349B6A26F0837EE72EC066CA583486C0EFFAF19CF8F29DAD4904B4ECFDDAEC5524EB7DBC4BAE4BE88670D5963BA131B48F55C1BABAF6052FE7395D77459EDCA9C486A9CDE82743CF2EEC883B23040478374AEB574DF03FA905BDBE8B8D398A7D9786056BCF3E9A97AE2F7EE78CE18AEB8093E0A1993BC54126AC633C\nss = F1B93086F3491B94A6222AD9F523AD857E7F0EB57934C234BE379EE8F43172CE\n\ncount = 50\nkeypair_coins = 2D5DF64D62CB07FE630310BB801C658DBF3D97993E68626745DE39D37FBFC2B26CF04CA090E5805FE0FFEDD6BE0F254397155A7639C5AFBB30A7A75CFEBFF026\npk = E4783DB3D78351B11B00E292AB5425AB7110A6847A7FBA29C24241999AC07FA77B461841C12519E9388635513837DCA2A51434BB03BC43E89E9B73362CFC5F05007428C6C96271674A574F64D51CB5793454590FE9D42728C5C51858B2C5554B143ACCE2E1A9A4238CC9B88B12670E884B743168C967574F1ED1B700C50CE9F84D32AB1CD1E85A3A31A324770EC851A2DE70805497A27148CB66249F8BA7796C02CFD462823DC9020F997114EA758511B5DAA832FB6B4D05E10FD9F53D0837A5EDDC05ADD9AAF668B87A", + "F55516B63A82BC64146B21290763F46B00A6EC3CFD71C702A28719FCCE1F1A2B7D124A4EC8703D63865964036A27274C806EA1AB9067E5BB6D1766FAF4B58ED05CCA5C6688A86A5F9216CA7187423CB9D453825404448CB7290A5BAE8848C41BA4CAD130894CB385F68916D3A5AB6EB045522BA80C1154671617AFA25E15734C5E5051F1E3173562899873BA90D670D644AE4192351B108F8511C89DC2C1633516B0A850A0345D46465BD058999ED227C8CB8F02625F4F0570A72A77FB1171AA577EB0239BCC2CBD00C82ED1BAA91992AE4283BE56094BE2BB4C9F0623FC53A9D1853AFA9990D1998B1E7459DFC3C57DB5ABF30B0900716416A152BE54946AEBBD7AB8CC2CF535321A57CDA44CD34060F86CA496830A16652A88D069802C59F902CF08D91AFCA82BB5B3AAE6B4AF650A3D7F5A0CEBC8CE63A2A7C7E07C5A0CC9B18AB56698087DC65B2A014B8E00AF240397D8C00C7454380DF1497293327B81CEC6E43154E97B93D9695D21C807F621576835E5B79F42D777230C8DFFD72CF41A05FBE51765280BC6D3928C1166A6838E33A40B81826BE34685203C7041599C14A84D3DF2A044540957141545B465F03579167CADD8A93D83A03F7911406BF613562BB6A9863E80D886709978CDB75037B36A60F073FFBA561FD87F6FAC17D04B3233F797E091221114C78E794B9A9073BD0A66822AA3AAA4BA8104994DE5718A44AE76AA7A8EB59C1F8C59EA9CC32724372767060EC6951809848EF7CFFAE9AADEA314D57780599CC3E55A8B0B04810E5B3A2CD9CAE6D729E4D994C4D296F2B07DFC97596F8AA4636C70863CA52020B1C21C074838A4AC0360F88154C8E8AD820C3778275B966A3568B36B3F44A50A019A8D588849CB39DD813D5CA8905460BCEBF94EFAD35A3A2CA588EB4FDF999E778B24C41259F198C20B219AA6C1715090000F4407A7217FF5645F8483A408FACFE24B368D9042ECA9BC803B9D0712B21EE36047016E5559B5D9BB6E046A63BA32A9537380EA73A22B662EE892A62AF4B2710A2920A36F1740BB55B36700426287329E4F3B63ACC77D6F6A94411A2612316DA5B612882605A930A000C18DFB6331F9005427D63BD5C66BB0B4C496B6071CFCC8DF3C4B350BB252D920B9AB3F73392B3A6682EB222C0FB065977B93C8D133FC07249F6A0A47D19FD8702F6C618D2C170DBA4C65317C1D0BB188A09C9C4E97212FF004D9477FC36C1A25F3C725A7982146C4F3D20B0B07356FC8BD18289F860BB8834078D7D4813DA9BCC2D3746F0B9387600088F277F9F747A9862BE9A851CAE219257B190C91C17C910DD8315A107967FC619C20093DDD6532B6A096838B1BE3263F314C42A8F4B8B71586DFA279550CA54D87A1BD46B8D9C75861080294E9A084F3970D217610299AA8FC5814611A40BC01D8D60AB7878EC5C0460B916DCC183F826888D0A03A89DC3E27569B2A7A461AD847AF7286AF11A7C7A07ED8C3AA76B209D98C7AA72A5C3049BE14F723C2062FCA960C28925E6521534F855F3FEC4054F3224851137AD18C4EF959E47C8134C86356F09B82606A69116B5D572A7C40A6A300B689721D37E80148821AA74902C0C30331664A65976C29E80034C00447245FEF8A3A3DAC44824B210A3B04F3B7AF5A824632FCC5EBB45948EC3CB971607EE94FFCA362CA60CD6E895C9AA0CE699570BCC4CAB9832638C2269DD9B43F880D4F507768E4986D85814929AFE4801008103900230956193E7262A0AF2A6036F4CB85C581A5D1256CF78C1657598BF1C45F3048F3FCB0A37AB971D30F7F124E7662B171A5070BB14A750B26AF9B020A929FD7B2B244D5945E58B5BB64B2F60B7296491D0AC31BC6A046C7AA3A1738B8563C234D4DA3B73DC1C5C4A047B0A5EA85EDAC7BEC66F4D87FD2FE422E7DBCD02D1455\nsk = 3C14BDD913CDA0F267ABAA8B0A30A5EAA527638C01926623B0BC2BA55B0B596A92BAD72E92845828E8050F4C2F40873918E4524CEA8505208D345783F71202496721E361A582C5445FA31FB662A64941ABF9FC203AB4A741C9214C1B80B4CA617C4976C819794F53CACDB3509978A6DF5900016278388234CC1A09B804679F36718255B2DB60A7EEE5BC3BC78BCEEA8060354B54031C4C76B30A1A8B1EBB697FF8606CE408FBA72DBF0856E5B53B1E4A4ECC746CDFC77545B46060974C8A788A1D59529A9AAA571B895BE01ED5C23A0D22707D89467A5B9C662767A0D77D5C49ADCA983CE7401F34526DAB1CB9FE744BDE8C54C230705548B9ED00B9F4EA055466CDE77019324C0A7C9BA404B641A6530AE64A964EA47E6E80AAA4652C9A8B66061103F385479E50A780249A909C92B7913329A478880162D8857D58FA39D3283F5A2A7F8FF6ABFFE2463DB40728D06166627E9C92283FA57A2E46190AB869B6C21FBEAC86911284153B259BD2A442070D1CC581FDD333E5990F84AC67F47491DF01128F0959ADA0891C236E0ACA87755289C0E6C8FB136974C97DBB1B8871A4C70AA001FC950F0CBB3ACE4AC44F800252F5BD76FC1DC09A3D2F8860385A4BF8D765B49C5379140E0A2801DAC947C23803AB6B467F2BB1B019B9D53771418312F51B28DB18BE216794A0467D79AC8ABAF2C90F4B1B3474C168BCBCC1E6AE59C5781296467F2B8D63D5842D67935DD429BF8319BC0B8199CCA9D3F78C483B8E0771622EA764FA610EE13C1A188C56D0B5C17094C1B7A45321BB69D99A666A7963268A1D0A0491B8B5CB700A7D86AB9039330EDD8BB17CF1AC79355A82166458D2323E070AC109C98D201358F22BF9A3B513B8BBA43905D1A790A7B1A11F682583AB4FE0A82F3E316B7C70AFDD823C8FB7ACFD330B22F378E8597CA5357454A71197CB4039E9A81D7995D14587B479657584407B281886D6A7FE9B6170A056D2003BF898027C275B7C1C3D1D0C157145BA52D264699B969D60AA3873A9606041C20B17C90055B8016EA703539638CFF8AA0A219542BF51B68CF153A86149881C087D898EF9C3A089CC70A8656117131AA3F233C73CBF439022D224422920501C07243432AEB925C4023185D3F897A79A983D857C6D1422F9B22234005E00882F77C7704CC74ADEA4C8F3971E7964BA1A530C1F722EF696828C46946F0B329D909A47B83353330630359EB8E9B7E78ABC50FCA8C3AA9AF967C89F464430C815D1959A21A226A966A6434301FA600A4D129886826803EC49A54A34ACD62B50E33FD782937571816421341CD76A3570C17AC9C338E4AC4C51077650B98AE445D236904DA694F755C1A5B288275B517B4C9B896C49BBC18933E52D34969B6AD8ADD604B526488C6397842A54B6657B93386B0ED7D36FD2F448EFE43B0A144C33F729DF530C8B6340CD61897B3C50B0D8BA81228604F7A4BCD120CD2A7BBBA3B4818177C435A2B0C3AD838C6D9BD3903D64B32B8A8DA5D93589021251D14C920328C4063C2AF3C8C41228355527ADF41037E1AC6AA69A427A55354CA9D54025306C16F93154776B4A7AF9C9EF2298DBA9B669C40BD0601ABD410357B8940511BEB6C96543D121535437D8EB5FA6A6414860AC4E849F5FCB09104A68BA7987F52BC859DC9025450332B28F3959CA78F18CBA09C3C4522D365C93CD4756B780A9AB87A040B8202C2CB7AC3C880796775FEB4EE8E5228EF4C62BC93E5D068226701D244348F3665941F59415C6275E1656FE68487F3500739762D13BA5D3EC27C5F77B7703A1B2E645B05782E5A21952584A323282DF23C8A9695C0B537AC9D6BB4E7907EA4BC2CDD684AD647CE10B326585A0F7E486A4BC15418454CE4BAF62B81131C0008D54CF9A6ABD94E212C0193C724A54F8C12B4EF6B6DDEBCF678AC0FD84CBCA17284A326B7EDB071F9C2A3DF66334E29D588B94D684474261B3F8FC6BFC7A9328B7B91BF2023F088337B331B0C143CB86549264BEDE51C9BED644796B53D3F230327B14C7D699332457E90A5D40A053309403B263A59D7CC6E56B3E87592735D95E3AA819C41182DD9C0972592FCB2CAA046883E491BFB4C34C87B995F143BA5F7C51DCC45C5DBA619822102D005EDA5AC7D4B02B05B8C53F1C79DF7A92A9D4CAE4783DB3D78351B11B00E292AB5425AB7110A6847A7FBA29C24241999AC07FA77B461841C12519E9388635513837DCA2A51434BB03BC43E89E9B73362CFC5F05007428C6C96271674A574F64D51CB5793454590FE9D42728C5C51858B2C5554B143ACCE2E1A9A4238CC9B88B12670E884B743168C967574F1ED1B700C50CE9F84D32AB1CD1E85A3A31A324770EC851A2DE70805497A27148CB66249F8BA7796C02CFD462823DC9020F997114EA758511B5DAA832FB6B4D05E10FD9F53D0837A5EDDC05ADD9AAF668B87AF55516B63A82BC64146B21290763F46B00A6EC3CFD71C702A28719FCCE1F1A2B7D124A4EC8703D63865964036A27274C806EA1AB9067E5BB6D1766FAF4B58ED05CCA5C6688A86A5F9216CA7187423CB9D453825404448CB7290A5BAE8848C41BA4CAD130894CB385F68916D3A5AB6EB045522BA80C1154671617AFA25E15734C5E5051F1E3173562899873BA90D670D644AE4192351B108F8511C89DC2C1633516B0A850A0345D46465BD058999ED227C8CB8F02625F4F0570A72A77FB1171AA577EB0239BCC2CBD00C82ED1BAA91992AE4283BE56094BE2BB4C9F0623FC53A9D1853AFA9990D1998B1E7459DFC3C57DB5ABF30B0900716416A152BE54946AEBBD7AB8CC2CF535321A57CDA44CD34060F86CA496830A16652A88D069802C59F902CF08D91AFCA82BB5B3AAE6B4AF650A3D7F5A0CEBC8CE63A2A7C7E07C5A0CC9B18AB56698087DC65B2A014B8E00AF240397D8C00C7454380DF1497293327B81CEC6E43154E97B93D9695D21C807F621576835E5B79F42D777230C8DFFD72CF41A05FBE51765280BC6D3928C1166A6838E33A40B81826BE34685203C7041599C14A84D3DF2A044540957141545B465F03579167CADD8A93D83A03F7911406BF613562BB6A9863E80D886709978CDB75037B36A60F073FFBA561FD87F6FAC17D04B3233F797E091221114C78E794B9A9073BD0A66822AA3AAA4BA8104994DE5718A44AE76AA7A8EB59C1F8C59EA9CC32724372767060EC6951809848EF7CFFAE9AADEA314D57780599CC3E55A8B0B04810E5B3A2CD9CAE6D729E4D994C4D296F2B07DFC97596F8AA4636C70863CA52020B1C21C074838A4AC0360F88154C8E8AD820C3778275B966A3568B36B3F44A50A019A8D588849CB39DD813D5CA8905460BCEBF94EFAD35A3A2CA588EB4FDF999E778B24C41259F198C20B219AA6C1715090000F4407A7217FF5645F8483A408FACFE24B368D9042ECA9BC803B9D0712B21EE36047016E5559B5D9BB6E046A63BA32A9537380EA73A22B662EE892A62AF4B2710A2920A36F1740BB55B36700426287329E4F3B63ACC77D6F6A94411A2612316DA5B612882605A930A000C18DFB6331F9005427D63BD5C66BB0B4C496B6071CFCC8DF3C4B350BB252D920B9AB3F73392B3A6682EB222C0FB065977B93C8D133FC07249F6A0A47D19FD8702F6C618D2C170DBA4C65317C1D0BB188A09C9C4E97212FF004D9477FC36C1A25F3C725A7982146C4F3D20B0B07356FC8BD18289F860BB8834078D7D4813DA9BCC2D3746F0B9387600088F277F9F747A9862BE9A851CAE219257B190C91C17C910DD8315A107967FC619C20093DDD6532B6A096838B1BE3263F314C42A8F4B8B71586DFA279550CA54D87A1BD46B8D9C758", + "61080294E9A084F3970D217610299AA8FC5814611A40BC01D8D60AB7878EC5C0460B916DCC183F826888D0A03A89DC3E27569B2A7A461AD847AF7286AF11A7C7A07ED8C3AA76B209D98C7AA72A5C3049BE14F723C2062FCA960C28925E6521534F855F3FEC4054F3224851137AD18C4EF959E47C8134C86356F09B82606A69116B5D572A7C40A6A300B689721D37E80148821AA74902C0C30331664A65976C29E80034C00447245FEF8A3A3DAC44824B210A3B04F3B7AF5A824632FCC5EBB45948EC3CB971607EE94FFCA362CA60CD6E895C9AA0CE699570BCC4CAB9832638C2269DD9B43F880D4F507768E4986D85814929AFE4801008103900230956193E7262A0AF2A6036F4CB85C581A5D1256CF78C1657598BF1C45F3048F3FCB0A37AB971D30F7F124E7662B171A5070BB14A750B26AF9B020A929FD7B2B244D5945E58B5BB64B2F60B7296491D0AC31BC6A046C7AA3A1738B8563C234D4DA3B73DC1C5C4A047B0A5EA85EDAC7BEC66F4D87FD2FE422E7DBCD02D14550C4DC82D723965476A518EA0915C1554BCC61C814C80FF120C37E7E8ED6D5C406CF04CA090E5805FE0FFEDD6BE0F254397155A7639C5AFBB30A7A75CFEBFF026\nencap_coins = 894F98D7435D1C0C3667C22A218A449D07F117D46FCBFA4BAA09F62403827464\nct = 433DE739397C375C5068522C36DA3ADFC12BC6022A8846EED9F30DEE2C22BB07F4A80D3EA846A92538292FD67E8F7749004B1C02915964A4597241EEC8FC07B2C87C7B05215845B2E8BED3EC035EB6F3BC748F2184379B0431584BF64A682972E3A2846A4294C6764B849D82169551E3D9C7C67FE22824EDF4015ED6574963DBC8F813B79028DF8A81D46BC2E7556D9999AE0517DDB440E8FFC46D4BFDA1CE955FD583705A532526AE71A506FCC19DB8EC359DF9EB64A81B551E9FE8EC4C7BBCAEB442281F45C7F76E71F106CB7CF6C56FFD798D53791F9312A57CD76D8ACA4D72ADC6F0C529B7D00A70BEE717409F9A89E6CB72C1DC450321C5791579873340133FB2BDA9485300D131C3E1B4F390628C34FC3DA31FD57488A9A75953E80D98B80DD4A09EBDB52A17AEA229D9E6F92DD821CCDB697D19C6B3019F5F611795EC9D53F6D9E0CDC49FAE423E56DA4D4F0AD6122B59ED9AE44CC81F258A8E9AB6ED139F0142AA28406D20A55123DB52C2809C72C5EBDE9E4367CB09B12F9FE9F0DABD28BA1156197DF0A87C4412F6ACD6C9740F4AFE8F220B450D4BAAD109F78AD65327B5E66B93329069654EF6EBE8FD3EF6BE797CF2B63D487C027DE525AE5145E55DC9E6B5610F7B0A4936DF7B573CA49D9106FEB7DDF99C94401E75FEEF4D4DDB4198C4599ECF7B200CA4585008BA6BDF4259BCE0F25C2E0ACAF457D356292DF8252F347D4BB5A0880A7AF276D811E59AAAE2D4B5B3CA5894D5C46676EC5F48A9BE99723FD6DD34B3706A6A437A271ADAF100F1DBC2A4F4B3FCAB5A527339F1882EAFF7DED22CCB32BA4B49403B659348D730C1DB2A4CBB09678924201AF6A5CB03DA05D69C7F85D220AFDE041916A30F8C181A06EE36227D48582CD5C6730556C645D248BED7336625C31313F65FFF73A31676F555A356BB1990B6A2E801756DA3F603087D6D0C2C57255D3343A0F8A182E4ECB7756DDBB962A7A81068F1DFA5D8A3DC5E727654A99DA2ED70716E2516B4BA1D5EEB9E3C2CBAB7F19C5014D347EC7075AC7AB987789C67EB99984A252134C8FBB7096135A3C5B8872E0A0842EBD1E765044D1C9BEFB7A2EB2BB5B6D5BDBA2383D305A5DB81226FF7FA797565603FA3E16659096779EC9D03C7619D78205BAF540694DA5D9A4E05A9CBDD7B1E104AE9D23E07295A803B339D2D1380CAF3DC221CA0A7E139DB1AFC8BC3355C2C000AB7EEEAAFF62BB399EF62D843AE5B4B33E6BFE649D07482DFABB2599BF7EEC0B308B6EC5EAF2C15FA05D2182B8A3EC13252034EB764D06860AF1841001B9E9DC1EBFF5CE2455706A9F3032147D9F7C2854521C235A4B551594DEAD8D0DBDA1ED73865D2A471DA48B2674792F1F15BD1C170B53586ECA6FB3FA95DFCF8C77E963734F120AEB4B324ABD98201C19A77437228D5D2335D5D224B28ED171085FF161F5636E0B81FE1A6AB5FBE8BF87F614CC13729D4C705A66AEE25B7E26783D87AD35C22C13FB581972B220EBA6680E529EE809BAC3569FE0FE32D580E0EC9C18DCF2CCA0883366DBF06B3825E3DAB7D2E976646B84EFA833DFC6788F3DC923038078702E4FFFE28ACC24F0B28EEE524E1F92EA7AC975724FE86E1788DF4DAFE2A82134404DEDC7DB9EC895D5963C139493A167717CC06CC7435C2BC9976ECB49C2BA98468762667DADD8E4B65D3FC27BC10935D79FF00DAEE12360637BB4D453185DA37E647E1E619A8DC5F88188DB9939D11AB687CB39B0C3649764568C477FEFFBA946AC9F9C7ECD657590E7C55CBFDE6858F1CDC5A273C2DACA88C812BDF7BE8FE2E75B2403CC3DB32D6E5CC292DDD1BE1C1B3A059FC6066EFCF6FE66831BB84EB6D38E67D9417B6AAD15B11FE526E85B1703993FD36C89B90C2259F401498C212DEBE5EBDC0FBE118CD82510273D7562E33D8EDC47DDE1BDC2F0158A0717DACD6B98D3DDE600876326FD0FD70B7AE46F81692E7975CC396639577906F6EDF44D53B469F294F73151DDA8565E081AEDBAED6E2FF0AF0897EC4AB9AA0C25FCC4C9704BFD5652791D01BD4609FAA3290AB87486C703A2B3C1B4984E6425A1C6921D0A441FF381A55155A6A868353EF6FEB8E32989A11C8AB15DE40F23525207FE750E7D403E7A87AA527F1E860A34DA80CA033A9CA371DA32FBE1FDF78B1C496BF255DF3A1750558737BA12F96F6590915B6506836B8D5E1D9A494AE7770AC\nss = C18734D943F9D045CF9FE7B76044C5559ADAFB60877EC4852E09F36D9427A131\n\ncount = 51\nkeypair_coins = 25056D1B8113BB362DD979D98643D7A7AC9C4F95994C0BA060609B6D07002FF30D5EC1BE89D37BEB810DB438778BAC52CDC1FE8F5C27AD825639E12ED908FA31\npk = 44BB41C301705EE232E0A6BDC2E4C6BC55958859A5AFD2B82F502E88A746A20179FCD60FE0276AFFA12828129543471C7C620FBAB41DB49173AE4A144ECA173B23899A99785A25148E6C92E6B5B3222CA7EB3BCDDF6508C4B19A039143B9D87AAFC77AE80627CB0B96E2B849E86ABA25F74B93A43FB21CC5C4E861D950256484802A7B479B67A803FBA87D916D0918BDE0973BA3F2C0228C0DEDD302C6FBC9366C4EB708234592CAE1F3C58499CD177621731738F0D8573B53018CE88676ECAACE719063910AA3D08B13A2CA2E64AFABD52A309B2E0A849F3537109518CA4094AD4BE6628E3C4A713C59F8778BAE05CBEFFA3E095B98AAC23F489B85A9B18245649E8EC3BB8397C4125864D8695752E942437B315B7286675279DF55CDE5D20AEFAB94B1015030C40DE0735472E02AEC59027C8CAF0074B0FFF4BFA12267A3A5BC6A380632436041CAC792330A4ED585379114B641BAC7CCAA534A3863B52390D2173E4474299C8E1A2571BFE215C71B1D23C14368926A2D0944A1F20BBC536C84B7C8218B3937946CB227134E35C36F81C73D6433D4492CBE9BB1631787376115F6F9C3E5B76E83812494719B60231DCC4182C3E8A3E21122106B9036C62755531B6C5572CDA5647746B9FE64286D395CFB759CAF4136466937B70146CB99010AF4088AAAB16B6579733843F02766F19CABC7C6ACA7E44E7265823CB907022BCC72617CFB7BCCE57988CA4C3D60E94D12C34588F173473A5D0929B5BCB09CD8F91534E7BEA694576638889FB29C2074058900587FD8889C89593CB5186FBA07BC103F4196A7063BA5C4229170F8830E254862457ADECA7219F73F201130719B39E0B84845709F2CAC7ADFB60B26658EA9137A940B1AD8CA7966DC1C0E540EFF9999822B5E69F58133902AD3704345914E17A30A96D6A879E320CCDB91F9F7C68F683C00532449F5420E8444E4C01DF8B203E38327E566130C164D91BB14BEC93B6EB4419A22C744FA9D92E861AE7BB13862288030551AA43BC4F809817675290A2413E71C9D29578DF619BE496061F7307248BA88D9A322648F969A2FBE005D9F895264887898CC0A8B35CFD0AB7AFC594C9771536677571B9188D3B5411AE450A5A75E6DFACD813CA905B13F0A52153D0793C908B2D641B00C3A483293399D0B1579E28F240393E13C86E0121F1DBA46FBFC9A5D062C1EF670E01C4B6B7A809470AD15F725B80849A0AC6F5370C1C96A309FF964DD1A9DB2016B189A61311CC82DD652328596D6A2AAB35A8020094FF7438064A7801A050090A18E9E4C2B33C14CD1F97B518AC9F4EB9A1156C816E6CE01D6053481B57B1787BB925FAF531FDCBA1BE23570DCCAC4312C148E7833162C6219835CE3DA23B1D149E434928F810577C37D0340B6BBB45945D789F6CCA8FD5226A3C066595399EE696FBE2025701669454A83E3162535D51B11216AFFA7BF5C62A62D696D4532954791AB088BA84208A7DFE76B33861BA6D6B51DD322005700B38C8E4973C934E12C374C3C86C099FB42B2DAD468A8701417E2B5E902B674B759A0F8366A3C00BE49B43C39A016288A1282C9673C1204A73FE2B45E90AA2732A46ABF8496CAB31C52066052684D078C1926D374DA041BEE98939B4A597B2166451801CF89CAC513A3D0890C3163150A54734B7960BF5701F837AF59E9A4C631CA49768829ECC6D23122BE873234D825209400C883CB47DB7B60B1B1FDA95B0076B6CCF97BA855AE9AC8A9E9FBBEC589C342A4198366A8BDACCDAB8349F9B9AEF229CE46D4818BF188338AAB48420B9ABC13EEB990EA41CCCA136FE6A3C3827BB40C33C1C749620DB32DBD773043302B8B2B52DE82910BA96EE430283FD51F17C38BD1734B4AA353345777FFAC17797683AD603CDE78C51DC45403E97514015FEE950215B7366D76B29980C79EF727622919B59931E9A78FF6977D9E49C8DA013A2920827A21988A713E8A378C3DB9C90B8A2703E2961B246A5D867DD98692CB60093D617FD9493EDEE2820BB081B2B1C3C9E6941817B408255A0CD09EB8AA43C7D298954B2A92250AAC1864D1086FD7338ADE31A36F756425303A51BC1AC7F920A69273AA11B7F077000F9BA015035DFB96159D28282BD9960290B9FC51A79BE9888D737329801428564CDC7C4940531990744A987152DCA2388BA27E3769C8BF287E54E41CBC0ECCA95CE621F2\nsk = 2D149D32C41889573CCB5166C597C3FE207CB806BD13A8A7BDF86267A93DA7110A31F22221A17A5381C367EB1B9CD00810189C1F12358B59ADBFF2060ED6AC6712C660B51B553402D406BCC1D2444A863B6FF261E17AAFFFD01BAA2B05CD83050AB460CED09BC7C0C2963784B7F9798D837BBC0483001539F0EA65A0574B46785645019B25130095725FB71556ADD2832EA245E250973F504DC58A4BA3C45CC8259E7906588D688F4F4CC79A1A955EE31E0FE931D16CC9DA767C3A48BAD09874F7730FA74C349D2163638AADFB59A462E904C5530A0B485541E391B6037041EC6A0560563F186BE2AB97A42520A7DACEABF1216E16870437CF012A6B6D082BBB23349628AF4DD8CA9EA986498A80EDFCC2418C3F5A627BA8BAADF3739B3C578B2F193F57B72DC2827A2DC379AA31B6127C65352338C012CFCCE0AF1B33150D488CF47134E06B5EBAF0432C172090FA6671670BF7B66002E135E7C43D938343D5729E22E559", + "7A06209E0793E65417DE945B5E1AAEB2740FB1B350C902C1390A97586564FA94120CF7538B21AACC0AC0831B477E37C9E984B73EC91ED88705EF4CAFD2F15A50227C0E4C0627D2A6D7875E9605AFEC339799690BB6F0A5B01141A6976FD51AA7A079827D37CA89726686BA95D6F275A59341FA229B4C163C260C4DBC4587C50AB8F0AC777849B5F700209F17C15251854C35AA23C20D486122EC8145565966F4A067251B96461950AC2171F1996E94517610338B88C091C356804CC691922449DB0645A404AE4A641D1482B58E6230C7965C23605D66E96C8F0418AD786801D7530CFA2B5B757E06ABC10518B274E3992E538922B717866C7EEF827D2BB4C05FFA3322981CD8069DFE028D878A8B7A002472D302253A83AB84ADF5530CC5F4671BF5219FE600BA97ABD2555C52857ABB76CCF4760ADB30346C55AA5340B189E1968F72999E64C0B76297D232412B3C9384783457B83309BA7EF74ABD50D16EA1C32A2362AAEBD02DA7790FB8827FF368261CEC14F3A2095323502446703783CA9B6AA595D690031297C59B25414455C155924A47896716AC45330CE7069D131B75A57769FD4B4CA1990170A3570160CDBEF1C930063D56E3546F09B1CD913C82057C0BB89111E6B1BBA88EB8CBCD72078FCBF5059FE25C84BB5607D7B20BD0733FD96DBAE2ABD9531DDBE3CDD89A926361BB56EA0E5F9181B2C8C1532312F3F9005135C07DC211B824B1E63AC96E64845C35C41E0313511A5D429663796ABF2443908D353766D40F47A910FD04A710BA5D6A5B301832A5B6016338D8858B220E8219512B643B8B60CA2A9347EC39638B787FDB44CE72408DCD2504DE24AF91130ABC09B2E7C9BB26B3393EE06FD77019ED3466E019AC92A416C9683DA22CAFB1A9AD3475AF17A15EE9F97446096647578F77FA02E79904FCC008FE509425446CA2A4C1DFF32CDFA4CE120230BB5CC9CB49A2E2841BF69A1C49A762EC171698CA0445201C485A15FEF2562EACABAD3259119C9BA4185677E03AA0470CA848709C4BA0C8E5814416C5678033C819773DB36E7A90C65FA82FFDF6921C38285122163BC0744DE5C5363C9A973428A6DAAD20E5A62D37017B464DA7637D9D26C6FFC2B5F17610072C7E1CE668CFD97C29EB597EF51C039015E4B35A7D049DB6488E271851D20CB61655CEA5A074338A722A10A7F77B5BFA0C8BC41B346BC5BA4BD17784B166DD83A6A5066E0724AF7B603D4CB3A880F95040D53B9F11CED9FA55B1771900E8924FD7656AE198B392BF23A83418519E3C754203A9035C83903DF9176004BE81AA0CFE690297D67CC3432F815C4DB7DC5797A2CB99140E28E880097A0F45415BA730B616572C2316895E7C0D11073C4BA5A6DDC74F59206DEB3917E84A9D8EC6C63FC83A001DA56B03BDF9C077BE63645331596BB962845594907A22F8A85B084AA80EEC51B4F27E1AF011464CC73F6615397C22833CA5B81CB30DF1982A18BF148A9D3FA5C6A46C323CA1B5A1FC4392A2204379BCAA3A63FF679F3ECC00930052ED80C965A82E55C08389D284D4060254A42F87C6AEE7211933E2C6678CAA453B8C006A94960B0DE5192631F9AE68811D5B729EAEB1C0CC8AACCAF180FDC09792DA38E194358124B7E87B7F55181689B3C5537011BDFC9E44BB41C301705EE232E0A6BDC2E4C6BC55958859A5AFD2B82F502E88A746A20179FCD60FE0276AFFA12828129543471C7C620FBAB41DB49173AE4A144ECA173B23899A99785A25148E6C92E6B5B3222CA7EB3BCDDF6508C4B19A039143B9D87AAFC77AE80627CB0B96E2B849E86ABA25F74B93A43FB21CC5C4E861D950256484802A7B479B67A803FBA87D916D0918BDE0973BA3F2C0228C0DEDD302C6FBC9366C4EB708234592CAE1F3C58499CD177621731738F0D8573B53018CE88676ECAACE719063910AA3D08B13A2CA2E64AFABD52A309B2E0A849F3537109518CA4094AD4BE6628E3C4A713C59F8778BAE05CBEFFA3E095B98AAC23F489B85A9B18245649E8EC3BB8397C4125864D8695752E942437B315B7286675279DF55CDE5D20AEFAB94B1015030C40DE0735472E02AEC59027C8CAF0074B0FFF4BFA12267A3A5BC6A380632436041CAC792330A4ED585379114B641BAC7CCAA534A3863B52390D2173E4474299C8E1A2571BFE215C71B1D23C14368926A2D0944A1F20BBC536C84B7C8218B3937946CB227134E35C36F81C73D6433D4492CBE9BB1631787376115F6F9C3E5B76E83812494719B60231DCC4182C3E8A3E21122106B9036C62755531B6C5572CDA5647746B9FE64286D395CFB759CAF4136466937B70146CB99010AF4088AAAB16B6579733843F02766F19CABC7C6ACA7E44E7265823CB907022BCC72617CFB7BCCE57988CA4C3D60E94D12C34588F173473A5D0929B5BCB09CD8F91534E7BEA694576638889FB29C2074058900587FD8889C89593CB5186FBA07BC103F4196A7063BA5C4229170F8830E254862457ADECA7219F73F201130719B39E0B84845709F2CAC7ADFB60B26658EA9137A940B1AD8CA7966DC1C0E540EFF9999822B5E69F58133902AD3704345914E17A30A96D6A879E320CCDB91F9F7C68F683C00532449F5420E8444E4C01DF8B203E38327E566130C164D91BB14BEC93B6EB4419A22C744FA9D92E861AE7BB13862288030551AA43BC4F809817675290A2413E71C9D29578DF619BE496061F7307248BA88D9A322648F969A2FBE005D9F895264887898CC0A8B35CFD0AB7AFC594C9771536677571B9188D3B5411AE450A5A75E6DFACD813CA905B13F0A52153D0793C908B2D641B00C3A483293399D0B1579E28F240393E13C86E0121F1DBA46FBFC9A5D062C1EF670E01C4B6B7A809470AD15F725B80849A0AC6F5370C1C96A309FF964DD1A9DB2016B189A61311CC82DD652328596D6A2AAB35A8020094FF7438064A7801A050090A18E9E4C2B33C14CD1F97B518AC9F4EB9A1156C816E6CE01D6053481B57B1787BB925FAF531FDCBA1BE23570DCCAC4312C148E7833162C6219835CE3DA23B1D149E434928F810577C37D0340B6BBB45945D789F6CCA8FD5226A3C066595399EE696FBE2025701669454A83E3162535D51B11216AFFA7BF5C62A62D696D4532954791AB088BA84208A7DFE76B33861BA6D6B51DD322005700B38C8E4973C934E12C374C3C86C099FB42B2DAD468A8701417E2B5E902B674B759A0F8366A3C00BE49B43C39A016288A1282C9673C1204A73FE2B45E90AA2732A46ABF8496CAB31C52066052684D078C1926D374DA041BEE98939B4A597B2166451801CF89CAC513A3D0890C3163150A54734B7960BF5701F837AF59E9A4C631CA49768829ECC6D23122BE873234D825209400C883CB47DB7B60B1B1FDA95B0076B6CCF97BA855AE9AC8A9E9FBBEC589C342A4198366A8BDACCDAB8349F9B9AEF229CE46D4818BF188338AAB48420B9ABC13EEB990EA41CCCA136FE6A3C3827BB40C33C1C749620DB32DBD773043302B8B2B52DE82910BA96EE430283FD51F17C38BD1734B4AA353345777FFAC17797683AD603CDE78C51DC45403E97514015FEE950215B7366D76B29980C79EF727622919B59931E9A78FF6977D9E49C8DA013A2920827A21988A713E8A378C3DB9C90B8A2703E2961B246A5D867DD98692CB60093D617FD9493EDEE2820BB081B2B1C3C9E6941817B408255A0CD09EB8AA43C7D298954B2A92250AAC1864D1086FD7338ADE31A36F756425303A51BC1AC7F920A69273AA11B7F077000F9BA015035DFB96159D28282BD9960290B9FC51A79BE9888D737329801428564CDC7C4940531990744A987152DCA2388BA27E3769C8BF287E54E41CBC0ECCA95CE621F2C934C11E2EAA7C3C4E764863E436FF12FC9F517C79DF6344AB98611F57FE72960D5EC1BE89D37BEB810DB438778BAC52CDC1FE8F5C27AD825639E12ED908FA31\nencap_coins = C07D2A9F28995F021A974E798A55AEC0230B11B9EE542F69925D009159425E81\nct = 91C4F11CDB289FD8BF8B2092F3A9FB1E510AA6160445462D0095FE10A8B2C2A6704245FB48E4C095AF3747750C982762F38BB81A0DCD80A8B91AECA2B04F52333B0CD8C1695B5D9CCE77057E609FECDDC37221299B4442EA8574FBC4E50E2038CA02A17C00D94DA4C5DAB6867D97905BEB1E2B31431745DCA1FA1049507D97B93431A2C90D8812B3BA491E5134E15E1E0B73BFAFF485C19ADFAB83D594F2F0742799ECBF806862D819EC1973A1A56484153BC6FC25B9DF12CAA4A2DD0DAED030F482280CDA062F3995192E42C25AF520E9DB3A4D86E71984451224008F0D639FCEE4BBD04A291A838163F42EA005F8D62CEAB6DF5DF1A35DCD6F14FEE4FD949B658D19DF6C1682C0A634B45D47FFE3D5797A26C9AB2E54586A86D599AF45C74E4CA7DAF7AF8B4B67B99B75A19573449B288B7D6300D4C9B42FF46D261147E284705A0D9AFF171ABB1F4C2EEEA74CA88ED40215F3D2AD1A5BFDF2D98B83C30EB2110B2DCE8C15730C57B65844AD2B464177B3F84ECBCD983DFFD9817E976E75A82C225831A7DB3432AFA02D19A78187733D0C599747A1658EB3B13306B846C0048EA76A6FE540AE904A4A6D1647C8D5CBB8C7683AFC8ECB9F6327CD2BFE213C5737C48CC50AB3A38E4612150837DD7C06638E33C1055CDDC58507D8715344D801BB5E65FC5E2976BA57BAEED4B3275DDA6EF61827F17BB2FF7D7F724CF4E90E5843CB6659CF687862C71C8F337F05FF4B26057434D581C8256754E0414F2F2B44521F368CEDD342DB692C735A7AEFE36611500B0F7C8CBE0579B958311CC6CF1C9184E52EE78F57EEAFB2E85F6C48F3ACD5BBCEE6B692CEF83FE3628F15FB7A886E7CC716C4503169FCC9005387B7B70EED8096B2691AB1A7C55C1E0C14A75AA503B5B098736ECF38F934C697FC537C299D7CEC293D699700123DBA8D6432B023325EF22DAABC1669A3FAB32179D8015C91A1D5810CF239FF67ACDF428B0ECFF0B7D9DE5938CCDD39A98861DF60552B69110EE9E5B35209D09E1F1DA06A24A0A81E88B26A504DE84442A8240B4FE710F5831D09B116A8D3B7DEF8CCED7DD323F1C97693088718781402AB959BEF2DBCFB18805A512CC175D788ACDE967C973B6703D988B1DDD8D674C2DACB32A06E51062595168AB7AD012FF760447CBC3CACEB9AB8758676F4372EAFD63D3B349F6961A22EE10486189E6110422B253C1BF2C07B821D0E4202AFA4AED84C58B2F05711D593448E355D92A29DD7802D75AE8B57B7CA24B769A5CCC54A302751F1BDCE0A55C79888E2BF6062E204B9439F738505D3F818F84CBFDFD61B5B2031A578194EFB0C36C8A237EE0F3CD6BF8C22B44F10EEE52031B71E7A6DE93C435046C55835354B71D9356E9AC92BE92BFDE05EDAD33E0FE706966A58C841BB64C18285F12D76B37E839A37AD823ADA26F23961E8BBF11C1F86207014F513888E1A3F107389E26FD4E289F2A70AFBCDF194C7C0536525D04202F25D3A247F26E09F96FD0EFF5CBC9D94BC93E871B148541152B3ACCC2D9AA1419F52CF68EF5B5BF9D61BE2DA15BDABABFE87CAEBF315811B169170A839FE1527DB84E57A0413CEC0E84A680AA013436ACB459D4FFADF987EF0C739381E6DB60B685E2805DA597815A755617D18391677684938FF635AA35EEF20AEB927F5CAB25B65BB9C84C258AFDF4D76912547D4D8CCF6023990AB8138D877CB95371EFA10AF1CB6C223AC81A1F5585A3BEBE0FB5088203F16FF032", + "403B5B1551F9A4CC012A00507D9E0C94A874A02EC4FFA2AF358A69D8AADF65D024ED5F99D3559A4FEA1D93EFA51E1BD1D791A421DC9D1C9E73897BFAE8365B635FDB66942AD5076CD51AC71A4B54EB7FEDFC9F4501B2370A2B34A4B92723AC1413F6353DFDC764363DB439134259131ED6C4DEE7A8E3D0C4E6B9ACDE1D8C5AA0ABEDA4F04344F45E68A05FD7C641C48139F1A9BD07AE97A754953AA88F823460CA36B0CCDC0179E98FEFD7F1E3EC65EA9C4CC9E650C18F15C6E03F828A51245964E035F17C8F0819D7F4DF52A55F14FA06F56E33D0780FCF82038A37326EB1CA00B81137DAC3580814FF59C741B8B54E7F6EA0E8A013A3FB54A57557F854F781A377A1FDDE4823C72971E41AC143FCB2E0C64C69D86F68FDE84691FBF8B200FCCCCBF95AEC040A4CB3D087387F6B7F53EC74BDC190C2DA8E6F784BAD59878C567F4C28A7567\nss = CFBDA200C79BE95EDC0D897D504A72AEA18F2CDF503C17DED828C64C021503CE\n\ncount = 52\nkeypair_coins = E4D34E12982AEEB1D62FD488D9B9E28557ED3429292239FB4F76FA9098009ACA91FD1369E8228B3979984C15440EF268FD3629C186D6CFDE02B0F8A7908A7EE2\npk = C6E762E6E2C322CB783F069A7E5594CD26A0914B3104B87318D0489A63AB263C88D561A4C8FB9A77C72EC2B917F685333C61989A4B3995D74589300688D2512943AE79335DBFB0C52CD14B16C085D510918696087D2AC47437C0294B8626A65F1E373D19A0107DE053219A22BD0907BA19B4E7326F765989EA61174151356F04585CB89BA8D05A99808283B550C8A3816EBA213362B5CEC5773E152D14D83563DBB57EC89EAB558C6365BC5EBC577EA46C6B39C3C76B43EA22074BF46F252A125D3740066509C48CCC347ABDAF436153911DAFD114555964C49BA9E2605213DC8A71A05E37B305F922A4E9A3B31E973E19B161BC4295D290535DBB8B6B359855D811614C14A408C34926BE2700418139998E356ACD5B85281B61B0C78733B0AEE5A1CA99B56737C669D535B276C5546AA72673C5344FCC7923F69A0ADA7096D75E81E32E0A8644AD73A4E7D19B3BE97EA3D773BE842597761818275CBB8AACA1206FA41686613986DDF37949842BA1741E812217593815C82CA7B583513938931B0BC829AA55D85A32B6822013244F2A3BCE15791620E6CBC96B8555D0C77705C7CF996292CB5592E490D6243BFADAC9DAD7270A125E14FAA8F8B321CC6C9E3B2407000340702A4C97A0189FEBC47E5BAF51CC060AF7CBF48642D46911E0889EACE6BFF53CA189A1036BA94912582B0F8B679A3B6EBDB31B7BBA4F9C4C349052C4B9352D45E68463C865AB331884982C05F3A1FD78081D946A71D984887041A0E894F6995501233363027A3B7C321DC4A21D8463C9369ABEC4826F0906039A1A83CB59CAC584D7C6426C91767167B3A4564237DAC2B623445CB5998717BC4C8C9E3364915C5BA86B99A02DC444DD52B236D4CD2C26CFE39C1CC8321CF7156867B37F85188ABEA7A040400DBF4830ED1835B2D47A6B8991451A7889020EAD45451F46623002B31839C556A22382130B7689CC92CAB281B164DD237357A195F4688F8F385F8F45A32432BC238A0C7F78324BD5B9E73AACE5391D60F28DDEF61E4E2C493C136B74229EDDA96C22F70F54435C6240747D963E576B2AEAB0BFF2009BA0F34B65C2A35B72477F36C914D048545C513AD61F964829A78BCCCEC39D2DB38496A209AFD760F1A51654D3125DD42C3EE13353F93E0114469C2ABDF879050CD9466B4606241158A60B35FFE1A8956815419B9FE843913D22B93C7283805BA3098A52BC16BFD9B27C29155A22C99EDA56530A69964466065CCAA447B13C4C8115ADCC6285D947AAEA1378A76E163556C18459B1AC905ABC9B39E21E12486A5E56A228395093B150FD550FEAFAB094602672860E5C74240AC705F25903E70667968435A4DC3E24DBC77E9806EE94436CE00B11BAC776B46BD85A94634C1A3BF91E53781F03318AED41011A390F48E5B7E2866D11783C7B959882821FD4745A2FB3BF1E87756008BA1103A508A584A3290A4AA4783F10A9E62A73F11A0D18F9B8E3A608A58317F3D3909A5A622BBBB09B52350A7A681E2A63F02504AEC572328155F67100B6331F38835FD56361FEE46B903CCB020A2998D651BD2CC022F1B4C97966274353B745AE43265D79FBAF20D7969A8B4AB5CC9F43259025724AC0A05E9DE54257859858685CD602BDEDC01047FB903416A2E2D770AABCCE2460903FEB40274354B2E705111124887B331CBA10673C0D2ACA027A2C6CCB95C701568C20346EC747A29DE09FF6311FC172910E41031B95330E240EBEE2026048047E03C6DE9A293F501604D3C7CE57A715DB0AA91A6151230731E02F467477D04A5AAD9B2B8176A1F056C3140BB1454CC7FFE380CF97139F4800FC4B740A22520A3B2A8730CAF5E7580352B936AB9EAFE3CBEBAA87FDC771B0D704E455B8153C4B6CDC780EC415AC7326BE810C63669A7F30A138A187108880B5AB97265A2158F542C37828C80B4BFFB474AC27C6513BC54F0897CCD9948DD3C78F60C4CAE733ACA6CAF41B9CA8052F25E58E78526AC8EB30AFA960A04A322C582E5EBB286ACCC225A187A074877C21329856343C587E7AB6B09C3427091655F34127E09C3DE1D8C6CDC3AAB3EAC81A99AA1A1443794C860CA17A63D0B154C9941D9C219C0A7C982114FC0C85483639A0F047A217A148346FC844C44F37270E775C5CA414BA49CC59A4B94DDDB5584ADF5FEF6BDE5872A551B6840E3A082A8AA6DFB7232A6813367038CC\nsk = 85B01A4A587BAE308D39792B47F71997FC55FDC2746F881DDF7BC215145C56D399C6447ADA39230866384BB718ADA160A7349747867CF695CCCDB8A4F1FBB3E573ADE85CCF38924F36482BACB9798D481521A0CAE103CC9FC9675184490F281D3516CBEE910287758A4C374C0A4313F1C29251B1655522936DC329F540A1FD887F0C775823436DF736C367AA3013341E66854FB39A9EB90B23CAEC3E84690AD531141F39914A77A767A47B60F2868CF11311AAC9DA94C72E9624D21814CDC99C89A4B35E1C4C63CBB3EDEA06888162E180503CFC6616B24D270601D0D275C03109DD9486220B66D523A8111B4DE5B99D236586A09A4F77A240CACB4A737C770BC4915F55B609075EE68499654BAF90622647052A8369872A93114C80C60FCA1345E20114552119669A0D3A7188D3326017CE92112F0B715C26B40851683478E5C719C11088F00AAC577F5A8763D4A76E3CD00CD9061F021672847BA0D4785EA7B1B28FA364E64C4FB7F718D2352B1FC26858B6552419A4D8E1B22F8C7992E3B5373183D040948777C356D514FDFB2D0C5A636BC5416A799270E5C975C0A62F3A76FB134646B333B75582F7F2C51CF4BD37835C3FDB2CE1EA86306362F8216D27E40CA43A45EDC9554F08C604624659AA10EBD29E59A60F7BD66EEE447F4398ADDC73387579148BC4A26B6749C961926FD34296DB3044CB0D2D1312CA6A6755EC48C46865A36A6330A9AA5D39167C6062EF1A7C82CA5C0AC1B163B85E43C278312C4304AA127D66576E7218C2D0C850108076109919AC6931264DC2E919FF441875E607A97772FEB45F14881FBCB37B4D00B45F416CF56C9501C6598FF9425249740EACCA49D92E31D679A4F16C3CCB4384DB45E47621719C6C585CCC03355216D43625C08760254AE3CC4AEB1287CD5C3F0911641B05C7036C9BB360C72902325830BD25EACB5A88ABDC926E0F205EE857AA66C8C47E434D8BB4A6CFABBD8B681C427846F0E18A2762152B170063B489A3E6B8BA06B00F14A3F2E6AC00725E5724CB629B7A312B3A1221C9460917C07637B71050BB644A38A8192270C857D43EA9304495206BF62B1C4C11B04A817AAA996B2A266CEB8A80AA46674F16207B61BFB484AF461B6DAD9A9E6C22C56F81BB355A6705310E921239497809012159E78A8A249796C155A9DC7CBFE7384DD092239C29773F6610E536A77B879EEF054C5E539A381043C1B53D69566A96D1931B166C6F066CF0EC81E7492A200876D42007724AC916460A1266AB77A327EF1282479685BC43A2718C93A806C3DE3A0CB918C7A734CB04759341C5B1496679987AA5DB93B70F903A5F4024C3DA6FE8BB2EBC27182E1179611C61F8F6214069AB83C7165A46CAA74BBCE0897FABEA9B6B58CD34E7535B0297B4359960D23E4A498CF7610601D92AF2FB6163C4B2761615121B62A7900B08D61065C83A69D51253D48399FC665962AD36275ED3774F114A079F13B8BCE420B44638CFA6CE6018B58BEA422A8287A6680EB21C75456592E8B24CB6C26EC3D3C1DC4A19CA16888E9B7FEA1A863B7A0143307530B533269A8B692CB4522AC1AA27B01D38603FD009E1C02017BBB36DA2049A2C5045A63081266D69D88EFF7C2147AC956A33B4C198C1EAB2AB93C592BB5137F291824C08258CD0B0BC4855A6B83B81858EE7B4BEAFA59CF7E4A03675113131251FF512C50AA885878D0C086D7461677BB81E46E4790C30A9A7AC4E0B3B600F04AD6381424A4B430B0A4DB2387703F77C4A0C51072BBDA954B473F86AD2AA1A5B926D18E0B0C25261502AB2D31AB5E837675B369880A2786389C9FF0BA07F1098E56C3C92557F3EE934573901D0168B3E35C4610385C324579686571A051D4852257AD329FDC85178438014FB365A11CD6A40B41AE8CAA46A6EEAEC1B264B8CDB2C040E928EC3829F3A7025C66525E937874E09C7FAC652AB059A5017698D7C0123CB6DC889B4C3942A6E834D029673955A521318B930FA4553F46058922B57831E947015AA0052B4514DECA02213E3171D7063BAB2305A3A173FF68A1D46106F1AAA3967BEF778AF01C84450DAA35B06801C5121425869D61213BD4B44667B7C21541103CB1F24B8A472E55E468B8A6CEC630314673C8AA12FBC135B79498480721180C3DD1B72C6E762E6E2C322CB783F069A7E5594CD26A0914B3104B87318D0489A63AB263C88D561A4C8FB9A77C72EC2B917F685333C61989A4B3995D74589300688D2512943AE79335DBFB0C52CD14B16C085D510918696087D2AC47437C0294B8626A65F1E373D19A0107DE053219A22BD0907BA19B4E7326F765989EA61174151356F04585CB89BA8D05A99808283B550C8A3816EBA213362B5CEC5773E152D14D83563DBB57EC89EAB558C6365BC5EBC577EA46C6B39C3C76B43EA22074BF46F252A125D3740066509C48CCC347ABDAF436153911DAFD114555964C49BA9E2605213DC8A71A05E37B305F922A4E9A3B31E973E19B161BC4295D290535DBB8B6B359855D811614C14A408C34926BE2700418139998E356ACD5B85281B61B0C78733B0AEE5A1CA99B56737C669D535B276C5546AA72673C5344FCC7923F69A0ADA7096D75E81E32E0A8644AD73A4E7D19B3BE97EA3D773BE842597761818275CBB8AACA1206FA41686613986DDF37949842BA1741E812217593815C82CA7B583513938931B0BC829AA55D85A32B6822013244F2A3BCE15791620E6CBC96B8555D0C77705C7CF996292CB5592E490D6243BFADAC9DAD7270A125E14FAA8F8B321CC6C9E3B2407000340702A4C97A0189FEBC47E5BAF51CC060AF7CBF48642D46911E0889EACE6BFF53CA189A1036BA94912582B0F8B679A3B6EBDB31B7BBA4F9C4C349052C4B9352D45E68463C865AB331884982C05F3A1FD78081D946A71D984887041A0E894F6", + "995501233363027A3B7C321DC4A21D8463C9369ABEC4826F0906039A1A83CB59CAC584D7C6426C91767167B3A4564237DAC2B623445CB5998717BC4C8C9E3364915C5BA86B99A02DC444DD52B236D4CD2C26CFE39C1CC8321CF7156867B37F85188ABEA7A040400DBF4830ED1835B2D47A6B8991451A7889020EAD45451F46623002B31839C556A22382130B7689CC92CAB281B164DD237357A195F4688F8F385F8F45A32432BC238A0C7F78324BD5B9E73AACE5391D60F28DDEF61E4E2C493C136B74229EDDA96C22F70F54435C6240747D963E576B2AEAB0BFF2009BA0F34B65C2A35B72477F36C914D048545C513AD61F964829A78BCCCEC39D2DB38496A209AFD760F1A51654D3125DD42C3EE13353F93E0114469C2ABDF879050CD9466B4606241158A60B35FFE1A8956815419B9FE843913D22B93C7283805BA3098A52BC16BFD9B27C29155A22C99EDA56530A69964466065CCAA447B13C4C8115ADCC6285D947AAEA1378A76E163556C18459B1AC905ABC9B39E21E12486A5E56A228395093B150FD550FEAFAB094602672860E5C74240AC705F25903E70667968435A4DC3E24DBC77E9806EE94436CE00B11BAC776B46BD85A94634C1A3BF91E53781F03318AED41011A390F48E5B7E2866D11783C7B959882821FD4745A2FB3BF1E87756008BA1103A508A584A3290A4AA4783F10A9E62A73F11A0D18F9B8E3A608A58317F3D3909A5A622BBBB09B52350A7A681E2A63F02504AEC572328155F67100B6331F38835FD56361FEE46B903CCB020A2998D651BD2CC022F1B4C97966274353B745AE43265D79FBAF20D7969A8B4AB5CC9F43259025724AC0A05E9DE54257859858685CD602BDEDC01047FB903416A2E2D770AABCCE2460903FEB40274354B2E705111124887B331CBA10673C0D2ACA027A2C6CCB95C701568C20346EC747A29DE09FF6311FC172910E41031B95330E240EBEE2026048047E03C6DE9A293F501604D3C7CE57A715DB0AA91A6151230731E02F467477D04A5AAD9B2B8176A1F056C3140BB1454CC7FFE380CF97139F4800FC4B740A22520A3B2A8730CAF5E7580352B936AB9EAFE3CBEBAA87FDC771B0D704E455B8153C4B6CDC780EC415AC7326BE810C63669A7F30A138A187108880B5AB97265A2158F542C37828C80B4BFFB474AC27C6513BC54F0897CCD9948DD3C78F60C4CAE733ACA6CAF41B9CA8052F25E58E78526AC8EB30AFA960A04A322C582E5EBB286ACCC225A187A074877C21329856343C587E7AB6B09C3427091655F34127E09C3DE1D8C6CDC3AAB3EAC81A99AA1A1443794C860CA17A63D0B154C9941D9C219C0A7C982114FC0C85483639A0F047A217A148346FC844C44F37270E775C5CA414BA49CC59A4B94DDDB5584ADF5FEF6BDE5872A551B6840E3A082A8AA6DFB7232A6813367038CC5B07C8359E6EC4989C34B31293F4DF965B5D95802AFA5836BEABB001D5CD4DAE91FD1369E8228B3979984C15440EF268FD3629C186D6CFDE02B0F8A7908A7EE2\nencap_coins = 135CD8F8172371CEF32284EC766614CFDCA11DBAE8797B92227DA5E487E16435\nct = 051A46E673F8B5592B4EE7FB1BEE1FECA91A977E5E01D6753436452121B456F3DF53BB4FFDFA336049AE9185D417B8373DDFE56536D44A22A980687CC97C6C160D1232F67A66AB9479AF82F260019DBF7B0D1D4D6B36CADC18E33F1F78B04789D81D4C3F918FC84D91FB45999791026A048974E9ACD4EF0A9851691496314DA595E1EF2604AC2B6270C8F3AEC8897936BD39C5A1AB35887685660F96028FFF3E80255F4D365CEE06EEDEE24F155125B2C2B784FC85C50D8E4C1BE8E84D50D3C3F260DAFB1E4E396EB6845267C77B0EA2C3BB73DFA93E68C26A52033F45421CCAF5F8236980466339B5AD08AAB8878EFEDDDBD92EE2D0BA288A15F61B8423592E7EF6E624C2BE28F87980187FEB5068E97EDC617CD67BD13A776F396E16F29EEB5B17FBC096DDBEF65B9C7D41E0145D118F2A9B2F2610539784D28817602E95DBC16EB4A96B1FC4701367DD010A59C2562BD1C6DDFE0F21DBBC2299D4A437C2B49CE53D9F7BA7DEDCE2F2385BC5D505E7A2AB276E6BA3A980B55BA0090532FDE22571F89BB52BB8CABC77CE16520C79E0F399229F24AC4A973481E8251B2B22710795CFCA7A11E9B0EF0532B050270AC75A9D9E811523B28D49CDFB5671BFD17FB304A8AED9BDF11B750A24610934EC293684B99E6085241FB234430391DED0298FBF18A7B67E8A3F890A3D061B53BC425167B8911F2ADDC4B445C6C412219088A04B5934BB0BA74A02A42BE64F53CF8A3D89A3800AE67B1CFD8996465483CC0C2B513299F90D0568BBAF923CD6B480ECFFAB5253903D5453605DBB8C9A6F90C0C48D9CD5EB098477CB83AC31E586C433FA8091060582F51CE9AEAB3BC75FD0269B5DEB76AD45C272FBBD29D79F89C25C1B1FCE8A668E03F63D776A51BCB4DB85D7720343E2470ACDC3918161B290B8DC81870C73CC0D261B2B8C862FB3A599A62C7536E8A63165AD515BB44EEB04CBC4C6FF2F9CA0009D317EB72E51559D34007B35E0BC6019573F73A744DD140276C09F098CBE712FDF09DD0E21BA2CEA04EECE5EC50C036A1FE5CEEB28427101BCC2DC4BE9D33C06B72B0D5E53F8A160E6CB6F50EF3E3CEB754F2B0DF39527F3189E1296B86D5F173110B16ACFCA5AB597586CCBA65E7CCAABF7C9622BE29C56A3BDBC2E7568F0CCCA88D60A88C266A98507E21F68AFEC83073264287BE7EA36CD94004F5BCD6E676357FE5E44FE55A134EF2BC86AF759702312A165F888521446ECF4F8C901F25C10C7F68388D9BFD88A51A932DBAEFB652CEA611472A695DCAD536DC13793E705171E5F5A38310D551A90909A9645A1D9CF9CB637C1CF013F566E88C40B3F4C3393613D27CE6A595478C0078C606F38051668A6145CE5012A87C5EAEA01D0F0AF4013429CA42EE28FB9EDA74E25277BC35C66558316C60F78A3763E8FF8D2D711A1855941F7A39F66B2238F9C1BFE25AEC0D6DCCF5C35EC57DFB54ECFFD616F00D779DFBDF92E9D1169855C036486737FF37BB080909E94F69DA77443D2BC05954E44D79B8E8953886CA94AF24B3BC1998258A54A0A5509589F5B41D1244F73C7265B934726DFFA644A7C0AC5C3A271AD187B281417EBD6C664C9209B177211A1CA3FBEF17C34AD836681A736B7DEAB35A37DCCD974F3236BBE7C2436B45D5A15FCCFFFCAAE498862B072E4EEA06CCA4B66362898FBF477FB039903634DE6204E61FDF63113026B1657E5040432088C1E6D0FE8DDB7CC331C9223A7EF23C1457227A9DBD16A9549602B5AF4AFB8E2840BA2E57DE4C7BDAF1800523474586C6307177AD7F7AF8A70C43F7FABBE980A79CB1A8C00F39877696B38B453B1578E7F9FB0B09154FF05372B7778E8093AA6C8EF6BAF1AAC5A9A87380CC0945C230E283B766499D3D76B666193A58ECAF9A95FB44533C5513539ED956E6A7F333AACFC15E4198FC65C08DEAC287A25D8854028A2A28D343D665D1D4D1B77A6C9C0C0C9687B1A2F94DE9DC9E2F9230C34F194B33D78C306E1444C366FEFF82A0AC197C8256FA7F03BA0DD4E720A979359A74F966DBAD5254FBC0EEEDA4EBCA48820C69A61104A0B1B7DC0DF08AD57413D52CF0BE42BFA7CCEA753EED9B652E6AC5039D6CCFFAEC3366018D15A43C396CB48C93D636E0C8D658E61E2A7C6375748531CE0DD5996EEF2F69496AF58DC646B17F65E1DD5507FAA053495465DA94ED111CB0358CB93C5A5B5A704BA087D\nss = CDDB5E24B40023BC259F37931530162C3AF9445C95E496D926CEBC14CF956F18\n\ncount = 53\nkeypair_coins = CD6A99396EB3539CA663A51E42063A3A262CC1C5A5FCE1566F0597B52AD9FA32AC8557EB61A3D4A2400D3A604092CC3B92032F4D3B563F3D4AA19387EEBF2A76\npk = 4EB491EFDB1988B9794ABA1C0D42326E9A797C67181995999A1053B3A1AE542A7E1BCA4AAEF5910A157C713CCE03BA4D34A9C427A53F263916041BA9EBF2B86E21B127C5951D7709FD036465784A4A26B91AF48C7B3574D6E537676B4BF8EB5E5D6496B7E66AC4D50FBA956AB9B881EF55A6459199C2987162774F573599EE0B6B001CBA6BB5302DF24EA0622D3FE2A7DB12A063D528BAEA6DEC8A97BF12A61249010EB7056EC5A9573C77B848A6C6FC13C070450919054C05BE006A40368094775032EFDB98E087991D76A703924528EC05EE50BC56D206895552CBF4999C6A7617EA35652C8D5CF22590BB9FCF62AA0E055805279400B2C9522CABE1853E06E6965B517CD04538D7F083E27B95C29B073AE13CAC42BEB549337491B88C877AF8910BF8659FB2F309442460EE93A0344CA83C58C1840C95EA482C81380BAE24C01C763B2BB05B369BBF074C8E96AC2B5B73920AE07318057A643640FD58C691209B08C9B5CBE972ADF001E8C00FE853631341C8A634CC52C77754790A6540CE9585290AA243231332D7EC3161B096CED68D80208C362707ED892921634B4DE6679E08A10F55C72043348BC512AD39C07DD41A88D3C8C06769B6C080B9A24080684AEA9637527A099BD53AF1505EAF0272A1F537593669E6CA1D5135AE9D77B737B77A475B61023777EEF22477B663D5848BA7D8859042713BF7353DC46C2E3B9E75788B3813B4844C0A233019529809487531A820A079FC2A43DA0874C332695A79AAF3C6D5997BFBD27783064C1C055B82B3BE463B5B54EB8C2E42772CD56318C6658E0B90CC31596B3880033338E6E41E9D1187E3732B75F50ED961501A030D221370A61788FC8B164625939E7B19D076B45B51C555D063433709DBAB05746641410CB34AE53E3652A0ADE7AE5DCA29F0E22048668ABE03869914117B6CC18617946C73A20B49826748981367090E8B72B8181AB696B878C79BD16683B2CA698E1489DAA23B54EB017F4000D481B268E2C7C02A75FB608217BCB1290746F7251D010A581DF15EBDBA8C5D379441D22E591C4BE3C9CD9AF05956674F558C2387518BEBC02DC3C2971BD264143271CE28B1F419BE088922E6644E939738B846CB651267A913936D80B2F4E8987B5C48C37672A222037FA1529A764BE14A87939B6C72B7730FFC4DB926836C71A56112724A88C9F55AAB44638A4C9186717246666B28E1003EE006AC915530A1FC4BB786ABCEC5B35476436EFB7C4B4BBFBF183ED16B0A526C019E7399D1996F44755FBFD86A79D19FBE3957EE97A08D668ADEE16B996A71DF28ACBB239DFE03CE8FF5AD62BA992863AFD086BA74979CBD2C0B398383378AB973C9647DB074921531A9441FB53A94E229B7C7BA8F2EC9A1E830B9826BCF1D353D91ABB56B89C33FD37EE6130757D08A1699929808C881F9907556AF18A95938A1BCEC20191BA5A9AE32B769E3C56D4CC6BAF9C9152359609A9E8DD6AA9CCB12B35C9DB5605BD8868474E65257F785B429C1869BBDF6E118024C906A951195DC4361AA95D4C53CA418A7B6926CBF539EC1F242DCB3B96E47BBE6CB0CD4A7936CB6C97E8663EAE6CBDBEC645C8942F6B835D2E44091C701AB73271CD86765E760F0A58BEB61B0E2D12BC7511D04B98E8FDB5412F618964367E2CB694AF203AB805889E0936C55BF8553B2B006093C72015D8629B494A04E3B51CF18347E7A025064A488B42C0328CEA0C57DC14763A74368E36159C72B232C8424FA01B5BE63014FD7B2733C47ABBC4D8D8474D5EB43FB76B03708872B4CC4529A00C1AB9F", + "67E84DE76500F59C7088B1B9DCA9CA9F0309B5F12EB4D55F3D734E086A843A39B29DE99162A062B1E6874281221EA3314D784572BAB031A3732010A50C0AC8150691B621687B6020A5B347817A3899F141BD6454EE1B25E0B130BED368C5F905C1637C036C22F65CA761270A9E8BCC18DABDD78BAB5C48A3DDB82A01C646C9DBCCCF972B9F0AC4EDABCEA3088586E8CA08F7177AD3CEFD578F9FE6CA08C99167C65E4C6193251288785720AD110F58F81F4B938DFD813B76887CAB48BF0CFAAE5A8A16F3B110E130BE7313411D517E6FEBB2E0AC004D44380B8AB62E874538D005D4F744918A250E4B60EADC6CAD0363E0DC6CBA04949F893F75E5C48E9FE10B44687F9AA606CAE8888E4C21AB0F7B85EB3D3A2A3D2FE8ED883D1DE0\nsk = CE732E28B21F42F2BBD1B049E6B80264B218B581CBAB8C9186E325F7617895E6320FE5C697FC3B82546681B3CA5F4A52F1F7501B652F86D35CCB9756E869795C166362FAC89C7B5AD41C7C74C596E2A7458E419CD10C10C890C94FD3564AA25F1EC3A3282607D8B1864022CDCCEBB1B1E48961207E29264A9CA86C94B71D5382C9C6B8004C818F51A52006706285BB3281618A157C80C2C00905C33316516C17F04460124FD79A1C330417984220334C84D96A66FC8A5556814C58F7826EE86F17319DA3F504F0124C3F06CA50792C1E1800FEEA8A8E8805A54BCB90C52ECA144677327F5058CCA151617F443DABBA304B353F4A5CAABF0C179A772582711C033B3F3C1225F191B887D8294FD18914850DE6B194B91C250374963BDC7215B07CDAA8001372A21F0C3845979386C27949E0BBEDC0B004258866A01EC5CB82FC751BA2F4510E514A3FA09B6AEA7E5E45762076B81D781C2BA91DD6F40CF13C91E947A7D7ABC2A2AA91A1404D87462B42AA71EB15209A9B0D4990C2265B051163CD2BA8319576758237482F500F7E94B3FF099616225737A766C10B6AEB213B5B073EFF93C3AC91BBF2B93FF47C84D7CA2E794990E2DB4A7E9AB19CB50CD522427E6A935CE3976490B21792CCE5E4B971668C4793CA4954B477703730411DF1F5AD2557CAEF78C914D0C223D836C407936EC58825F3B2A1925A5164B097A94A13D8AD3A27BF1FFB0C08C72B92215CB1B67C7D2C4A7BC7A6A8A054D2A34DE69C78195BB149E4B4CEBAB78F41612DB19540385F2F74757C662C2DA3C7B03A34A9524E2AB90F5CC21FC0D2AD84BB996E6C73426770FFC1C9942CC22AA2934D97A66037A18760C51B0236CA1B1880A2286EE5241FFC220A4C6EC0E296090874B3CA751DD701086A15F419C67EB4514744047D7848980C036107586D36818E74AD98989C8C02AFAB4134EE0B545ED707876A613FFA10BE7C3F10B758B215827ADA9FA1C83B129C6BDC5B621D3A5DA7F396D6E29B184A38D8091B6A2C288EE2CAE833A68A3CB6B30BAC5AD7567C788D8C803A7B622FBD8A253B274B93593115B5B7A5282EAF93706C88C178BAB897B7198C23B844219852A60410E8AFA85C902EDCB9A5E87A31CA84AC6B89A75830566062BC159CB129277AF0645D5817C8822E384040F1621D66D41643897DF21C1013CB1B426A703F120F21C780C67BB011FB3E8CB746C0B14C9F847DC1235F72E6BDFDA1C55BD26E377395C4B17B764A41E0F7312782BF71820DD379BEFE58901A011FADAC1EFAE549E5933AA9F9C64CE2273C486B56251674D56212C0AD7637854C7B8447A135FB960FFC435AC7553DFE935CAA98BF32186817B5ADB42375E96C30D0A96DF39658EDE95912946813CB75CC32B395AA73A916514533857B4C3405FC32C2946CF4F4251B2091B6CBB00CE296459C45E558B5048B79CC4CB8AA01BD7E82320637A62E2038D5B3C0593B42D32A38BE8312AB022EBB496A5FC4A991A1BAEB660A23988FBA329A79DC7144D20B5246466F25AF4AD971014970EBE2B36316B86B3585F6B0753711A0BF3952C688B4CF6C8A24C0964CDC1F5C1C34B3C28359BA232840063AC30BDDA83F0611042FD8B7C2BB43DE68B712E67971E76E7ADBC0879A41AFA358C2258888769B0F785F2B4716E76753D41C4215B98BEA2095F5C0CEADBB69C46CA152B3045B95A9FF198EF5302667D31F36E2330A3C1C44E983BA4388A7022F1613A47D19249F2534C23AC25BB76176AA102F103D1C6578AE141772E36ED5F30F2BB02AA34480B7D57E935B5097C5C5B61422FF6249B3531361C284D67B485FCC3F942501112408D01B96BC841DF1C0A9136C01CF2652EF067EFD740A68F80F2C1B70476B8B67EB14E97104722CB3C82C42D9912A2F2618D50C27312C13EBA245839313AC08AA9AC7918252122A6A8AD632C691C8C0F84BB02AEBC6F401C2455121FF33653E377805D3B2C8633D8B141D6B6370981BC63A7141EEF2BF7E86692F28764716775BFA41043315E5CC1199427FC7F6A9889165B6B09D0BBB80A609C0D52063204BBAA619757E1748412CC1DCDA4C2A102396927229BA83B1EBA239F41DFA530B8A2779060877A5EA142910A6CB1AC97CA2466AB58625E823FBA58429A613F2C92DE06993AC7006C8E4834EB491EFDB1988B9794ABA1C0D42326E9A797C67181995999A1053B3A1AE542A7E1BCA4AAEF5910A157C713CCE03BA4D34A9C427A53F263916041BA9EBF2B86E21B127C5951D7709FD036465784A4A26B91AF48C7B3574D6E537676B4BF8EB5E5D6496B7E66AC4D50FBA956AB9B881EF55A6459199C2987162774F573599EE0B6B001CBA6BB5302DF24EA0622D3FE2A7DB12A063D528BAEA6DEC8A97BF12A61249010EB7056EC5A9573C77B848A6C6FC13C070450919054C05BE006A40368094775032EFDB98E087991D76A703924528EC05EE50BC56D206895552CBF4999C6A7617EA35652C8D5CF22590BB9FCF62AA0E055805279400B2C9522CABE1853E06E6965B517CD04538D7F083E27B95C29B073AE13CAC42BEB549337491B88C877AF8910BF8659FB2F309442460EE93A0344CA83C58C1840C95EA482C81380BAE24C01C763B2BB05B369BBF074C8E96AC2B5B73920AE07318057A643640FD58C691209B08C9B5CBE972ADF001E8C00FE853631341C8A634CC52C77754790A6540CE9585290AA243231332D7EC3161B096CED68D80208C362707ED892921634B4DE6679E08A10F55C72043348BC512AD39C07DD41A88D3C8C06769B6C080B9A24080684AEA9637527A099BD53AF1505EAF0272A1F537593669E6CA1D5135AE9D77B737B77A475B61023777EEF22477B663D5848BA7D8859042713BF7353DC46C2E3B9E75788B3813B4844C0A233019529809487531A820A079FC2A43DA0874C332695A79AAF3C6D5997BFBD27783064C1C055B82B3BE463B5B54EB8C2E42772CD56318C6658E0B90CC31596B3880033338E6E41E9D1187E3732B75F50ED961501A030D221370A61788FC8B164625939E7B19D076B45B51C555D063433709DBAB05746641410CB34AE53E3652A0ADE7AE5DCA29F0E22048668ABE03869914117B6CC18617946C73A20B49826748981367090E8B72B8181AB696B878C79BD16683B2CA698E1489DAA23B54EB017F4000D481B268E2C7C02A75FB608217BCB1290746F7251D010A581DF15EBDBA8C5D379441D22E591C4BE3C9CD9AF05956674F558C2387518BEBC02DC3C2971BD264143271CE28B1F419BE088922E6644E939738B846CB651267A913936D80B2F4E8987B5C48C37672A222037FA1529A764BE14A87939B6C72B7730FFC4DB926836C71A56112724A88C9F55AAB44638A4C9186717246666B28E1003EE006AC915530A1FC4BB786ABCEC5B35476436EFB7C4B4BBFBF183ED16B0A526C019E7399D1996F44755FBFD86A79D19FBE3957EE97A08D668ADEE16B996A71DF28ACBB239DFE03CE8FF5AD62BA992863AFD086BA74979CBD2C0B398383378AB973C9647DB074921531A9441FB53A94E229B7C7BA8F2EC9A1E830B9826BCF1D353D91ABB56B89C33FD37EE6130757D08A1699929808C881F9907556AF18A95938A1BCEC20191BA5A9AE32B769E3C56D4CC6BAF9C9152359609A9E8DD6AA9CCB12B35C9DB5605BD8868474E65257F785B429C1869BBDF6E118024C906A951195DC4361AA95D4C53CA418A7B6926CBF539EC1F242DCB3B96E47BBE6CB0CD4A7936CB6C97E8663EAE6CBDBEC645C8942F6B835D2E44091C701AB73271CD86765E760F0A58BEB61B0E2D12BC7511D04B98E8FDB5412F618964367E2CB694AF203AB805889E0936C55BF8553B2B006093C72015D8629B494A04E3B51CF18347E7A025064A488B42C0328CEA0C57DC14763A74368E36159C72B232C8424FA01B5BE63014FD7B2733C47ABBC4D8D8474D5EB43FB76B03708872B4CC4529A00C1AB9F67E84DE76500F59C7088B1B9DCA9CA9F0309B5F12EB4D55F3D734E086A843A39B29DE99162A062B1E6874281221EA3314D784572BAB031A3732010A50C0AC8150691B621687B6020A5B347817A3899F141BD6454EE1B25E0B130BED368C5F905C1637C036C22F65CA761270A9E8BCC18DABDD78BAB5C48A3DDB82A01C646C9DBCCCF972B9F0AC4EDABCEA3088586E8CA08F7177AD3CEFD578F9FE6CA08C99167C65E4C6193251288785720AD110F58F81F4B938DFD813B76887CAB48BF0CFAAE5A8A16F3B110E130BE7313411D517E6FEBB2E0AC004D44380B8AB62E874538D005D4F744918A250E4B60EADC6CAD0363E0DC6CBA04949F893F75E5C48E9FE10B44687F9AA606CAE8888E4C21AB0F7B85EB3D3A2A3D2FE8ED883D1DE037F1D7E636B4AB366DD5725957B9E5D2498E4EE1929F2213F9D05C882D96A106AC8557EB61A3D4A2400D3A604092CC3B92032F4D3B563F3D4AA19387EEBF2A76\nencap_coins = 96FDAC8DDCC219F5ABACD5F20FEFEED980B40339D4147C6A066D6B6D67458760\nct = 49B0BA37AA62FA1E7FE7BDFDE88D90ED0EAF57C9CED66ABAB41FC59A58C49A74E7E2F2C24589D235573D7997C3401742701BE37807FC99D7B46FF33AAFDFB22252C086F59829C0252A4647FE1A139788635F1DF19FAB3FB89E30270B3C62BCE33377F24440FED7CE46FE232CA38040A2F53EF566D435BC682C83A57FDC9145F2472C62BF313F71220BE26D79AC4885CA06917FDDBFF5A16A0BEE23DCEDF3BAD1E15B9941F009AC0DEF8743F28CD02A9869868A66A09F23E30C1C401C5417E6625901B9B764CE8F4E049C5D6B5133F3E3158BD605D3738956E958BE9B4A2A759192CA9A68AA8D115647D2B797BC42C41B19A548432DF03AF18E6DD09422A6A3A0D222426DFD7F1542DE55B86A76D51F0BB419857362A89C594E5375743C9F16D23F0AD7AAAF9166F30A8F60B9A73C2B8DB23E2A922084360867082A3C9239214806B91DD09690DEA020DCD4F97C2A0ED7EAC53EB95C3C5234C444F5AC4863CA73DC1CB5C5E18CB208A0AEEF3B0798592BC48C688C1250B04393A79E4BFD5ADA75A367B80445E0A794DA0910BEC3A7F0DB20B8702F589E4B56AE0FEEB8C422790CF8629B9E4E524F2B01D60F64DC291487A4662D48C7A84004D5F3C0B9F1A0C8EE2527F808156E62B8FE797DBF024F17ADB41662E0D6DF564B2A345C99FAB453935B78DFEF94B94170FF56EE85121EB31BF57C00DA772F37944FD22267D5F74FA7DABF3934BDCAF8C9C2C1C85A1C7F565A86777E8D2F6777FC9CE325B35749CDD262BB86B01DC5BB6D8716FA6DD1FAC0724C296B442489217C5702D4855786A9ADCDDF45DE14B3A1B8E0FBAF8582B99A0869EF582E542AA", + "BC8AC260DFBEC0FC7DD9188BCB855D45B714B48D05183917EC071892C8906A122B461CF167098C8C2B030E0D8548B2A38C1BE324CD1D001FDA4D8A7C3283C8EE79CF3AB0904A733B84A880372F697B278DA1BBE1E4C3C7301CB5BB63B104FF977C0CA4B54A1311DBF34D8EC4D71C8CF1FF7055B10D4E89516F3BBC545167DE6172072BF70C7673C68F80D00439B93F9EC243A38ADC5BE55823727CFF291AB491D10F26B08B84AF61023AE76FD10CF4D9D2DCB3A4770488EFA02E26A48234FEE52017E905F35A26D6BBA5E3337333C46843BEA2F81421555C3214E71920E37CD7B37F582FFFE86350221C48CD132EF171F3C94116903C94750EBF6B726AFC759DF00CEA4CC8212F7CD4E641D15FFEBB61C4B2363855BC6D3DEBA02607A8BE5E057AC2E498C724088D173BDBB1BF426D6A34DF58F15E6EF05ECE34BF957483A38C79326535BB15CF99760D9D3D5E2067A7E96FEB6FE6B15EFF33A382B153C6DF401FCFBDBB9498AAC7328CAA6A8B079E2D38D4C3C900370AF391ABB91EE70F631E6F7950121CE9BC979F9FA1F86B4CB4713844288D2D77BB2BBC20573DE07422E4B45626ADF46915740938E6662E9A20C78A6F4429AB5F2A28E51AE1193F70FB70FF0D33669D6CB08E98FC34BF916E8D931C05B4351C42EE98A813BD86D21B424DF6F52BC0C1EAE143BF22489844C16209C675DC8A7DB1B674A83965E493EEB831BC5E17FD3DDDA5255600A75C46E8DD9BB774B351588F65B9CD657C2503F363322961532EB296837E76EEA2CB9DE0D900BD1BF872C489F4632FC38BBA36D65B1487A2DA5F5CE1B01D5BF91A8494B594D414E31620506C4F521B30E28204FE13421EE6423C4BD794FDC78CE38D3B21A858881F9E48002BC451C22B98848390823A9CC46A88719B65E9C72DABD95523F7B1B71E3A997EE6789CD3A0F97281CCDB313450732CDE2F8CBBD9C7BEE5572E5BF2BA787A35E15CBFB628CCA51305C6FB2BB0537BC6EBC964BDDBB80167E9D29F5DA0BB09BAE0E9E34D1DCDC54DB9E48339A7DF130DE1A803E801E57085A928C5ABB3EA6B15764D28715C4E1D6A25092298F4989BFF7A781D7F976199E1F4527CA6392738C241B05DE0339113A63B7997B36B5D6189C48D69E7AF4EC2AC3C87352467B479FC40879F3A615B04DBF2B6C6D015A77D69DFEC1AEAC2D01A746AB178AB922E308B1C542A1ABE5544AD87F206E6774F00213955891643F8E9E885CE3C37868E20158C82DF2295D5AD02E2ADA987FD88F5FF29EB17002E38FA8CD12D8FDAD8921EA2665BA4CC9CA5B1633B943204EE01090D744B55C2942E7F7D875E0F41CCD657B658F3F0ECD799202931D76494184C0E279E62773C48C\nss = 5D70446ED3A8C284AE190E0C8822EF95A0718E84A4DD26ADF7D4AC63C7AB70BA\n\ncount = 54\nkeypair_coins = 6C8C53ED6F65E6B2E324B84364E10DE42D1C26A106D4D1C99EEE79C78586FB5555BDB92F28D0393C0F7850C7F6C371BD4835D6DB61C138B0FAF22854466231D8\npk = 8C06203871AE8B0A2C3BFA4695C43050870392401315764FF65C9EF0DB06B03B5B5582B57E1A7EC6BA4AD832A04E31268A853AAA2227F8E382D467CF2D998284884FC7EC971AC439315978BB8A8EDF287F26D0769AEC141C0686F750C1F17784CAE142B942648655BC8A0ACB8247462713A2183223DFB093A737306E94386D878EB8BABE7CA066FCDA152A0A81A792AFC9EC32369101516122782100B24B02D5B8693A712F4711176B348E2AEBA7314A3A17D0CE11315412E54A6508937A393897B01D361B1FE9B0B7CCE01806A62D12470AD5650606883872A55030827B5BFA8A05FBA19C9207F113C99FE5985EB70E88325E5CF35EEA9605317579F15B161F55A81B694B0A79B8210B2C77524383AACD1936AD36B43F66FB6B5E668205396B40B3889DA25E21FA985BBC6AF4980D9FDA368507A7659785363C6537F067EEB596F5337640E7B3B1877804F21C14D76D69D01B67A941E76CBBCC3765AEFB0A74565470E7320605A0CC009C60E57C9E765D2F835DBBD91482D43B86858BF82161E1C3586290ACABA2964F3A9B83352CF40AA26442634EF069E2932A470A59AFF725B862B880E7A75FD705EE50624CA368E8C39C27EA0588C8983A453BCA30897A5785CCE2335EF8CD48217EEE4485ABD47A0769A0AC99089BEA59C4481B18D27C15D92E915285DC62197F4804EA3B3E79BBCBF57671DEDB8678F1264B420BFE191F21E489675B7F1479A390D0C8FE2A801F4CBAD2F90138259904705F2F07AFDD4A5394B64905154A914A7AFEF7CBEC54A7D5267A3FCA06DCC3B3CD617A3F433174053885F785193C8A70432AC83C37B60CB1CA407F22C7B577F4ACEA879A8AE700985028AEA3475426A3F071CC5162233E793AAF9936DC625A292B84D185BA31F964A4003C3A96701C6CA96305205B5071C3A6540D76C14E969A8061146940907EF20B857245C6F202B8978A23A6C84CEB3DE596C10BDABB2732008C6A224DE0AD219B9987099F1CEA007D1466AB0719E396618014787CA6B1A2680E96A85C949486105BC4357A93A3109422E52A44BCCB0C8C1AACA7931973560A82C65D253C02B2171688648A2C9F93F0A26BA58061C8CF64B54F2930A2A4C064CCEAA6D34C76BA200C382A1FD1B70119304F278A87A77837856C68A119CA692B8C39782A16AC11CB6C4D9BC7ACF335AEEAE65F01A50D4BC7458FA93E5E24AFB7576B41B631BC884853046160F77AD0646918B947BD440C449B8BDD15A3DE54A3C1A17A444CB469E0C1CFA347B5173FE6F4749658984CA0530483A86B773471799B9BD53FAF04D0A3C07515A3B915964AEE1010333127B3AA72AD964F38EA89A4C561E36143EAE3003A19CB4DE14FE88BC5B4C236EBD1930474718AE654F43277255B1F508721CA318D2D5255DB804166D94CF305BCFC6C91465B18F3AA4A64B624BBF395A10967861CCC3D13A17706511C8946FF31954962B9DC68AAB370BACA922B4DB66CBEB7A4E16C6DBAC64937B869EDCB585B4785B2B526EB4131E48546EE449D8EB7B709E296C028C6D085A3D614B8856A6D076CCE23CA4EBC192ECF14954BA06415280275CA743587492E76A5AB5593E9D15B10F829DCF73A94E040D8A25AA29616AC8A88CBB148E1C727B608305841B8F3C63E967843C9A50C43C3366293868F1B1ACBA037D95B64DD088E07D42F2D218B18EB7EDA5A2506CAB773444F2383A5E40940E4F26033C336E3C7B5D7D2BBECDB39180C87127781111B318FC4AB8C50926C932A122AA79766A48ABAB6707710C66030668540CB5C8D87272DAC2683ADA81DD20AACC3C01DF6056CBD23735DDA391332C773934E361A1B6E247711A843644226ADAAB77089A831E37D571517DCA952A58C0835705B03187B77E6AC91D426AB21B997905FB658C6B7510FF5E45E446204FE935A7612A364414014483CF1BC844A6935CE351D1E090313A776253386A01073A416B47A943712C0B7AFD130FE833041716530C4AF95928EBC541961558A707320A5FBBB3C113E8B3C88B0C3B359C13EE24172C8B649B67C645E07400CEBC486383D8EA2AFDDE8C104E69DAB368F092AB3B3B85FB70C3036FA5925301430D17603902B1373258B206B814BCEF5A2588981339CB725A5F38A079935F6A27578298F5DDAADAAF4616CFB9AF778875E4C3941A07E45AD3ECB9AE67E7527F70F6E07A757BD112947074D5120A1F2A1\nsk = F76C7D8002B7CA65BFE6A59AA3645A8E51AFE5FB80145241134CC072A60AD4B72D80C2BCBE1630EEDA661CB62E01B0798203A1A287C4B8F725DD422BEEE6627C864149EBABD84280739193067A2348F2861DBB7F1A0914BA2BB3AC6C80D5CA1F483C8B86C1CF5A2C3BF8F6728555799381A1B1F3CD02E445CBE798AC0361E15335380051294667B9149F38D85A1839AE43D331BF14091C4ACCBB24C8E8105A9D1185BA880B7E13CD3563AA235B899E7509525280A37162C043B089D5A0BD48B225EBB2D0538F49C8AC3C3B0677D8093CF70B3404016B4686D653CE4715A85953171BB937F5A1916271AD53318E8155269DBA4D0A520D057963E70CC01E680FE8408D03D3275C95A2C528190924749BC32DC31B21B58C6F5E4B59C157CAB7653C0D146DEC9A3F94E241993B09BD62446F35AD7772279E116464FB316DB8449A3AB7525B3E89B12B54F14FB19057C39510B072894831A5747782D404487926AD756B1BF81CB416D94265DCACEA475FCDAA727D0B5F01B376250B123F717FBB0B1976B7704FE5AE5AC10CD17B87FA8BBD3D824D3B91B567B5C20243677D741AE2CB1C1D049A842B7F9DA9CECE8931851BB35776CAED97C27D395108E42661AA60CC181ABB2774C67773FB29B445F3554D386C87D489D895A43EF268AF0C81F6065E57E744F719120323B013D35801E26BAC2700968566512106F5161EE8528372D45A42B41022239FB0B3CD23C4251927B355719A1F2A0689A4ABC508660DBC282706B765CA4BC1887FD064CF8285B1155863E15B112BCBB1962255B362CE8FA4C51C97CFCEA7004DAA9F746766F2F5487C93B99EE9825CB78AB0A98BF6863A083758E9279245E495AD0A5B86724C1ADC3E67D756C1C8647FB4BA32B75A6DA3A05A870FC1E12CD279666CA046E064A74625530E742EFC72C1D5F959C9D256389C4C63609FA11A8FB5E70E1E2256C8164D80C69FB8F4008A647AF7F3AD960265F55CB786E8726B65689A6A751FE045B7D45AECF50605D135A44793AD2C6BBA5A59D293528BD94D65F54BAE4798EBA5B26DE8B225728EB8836AD1F373F66A2134B8B429A8457B600C5A3274B0157F66F091EC88436D5667802A15749B4C9C499A36C58FC5A7CCC10A604ED00DE74BBF433502C02AB0ED949F5DA8B9EFB83C4A2395E49413A7030F4F95901E8AA2716A3EBB09AAF61C9384586021301DE0F8C085421460A10FDD176C68B4C115C91DAC04121924213855AC22E8C98E3643C3D7C3B6C6C4CA964308510525C5AA00C32AD9BA258BC44A9F521A2873BEDAF7C56BFC26A320C0FE95CFBE12C0038C1A65B62C18C37E61A2B9194C9EC1DB8B9FD036C7C3A620B5C661D8AB0B46A6CD3391E53218E40CBDB082C2207630C2715541B10E3C395BF2A5A15AE8B506880DDE937432ECB150F9B3C136881058A750024D9B247232B7289BD07462C051B7BA599C985C6EB08C7AC22135C99E85930113554C59AC06AE298D5935658F513644B01132B4C1AB84677E342A1F4A8A9D5C6A44659805CC8898E563823C8286D54A1CB4B8DB866A8F5C74F782784E4B6FBAD380C5131FCAE11D4EC89DF82490B4F1BABD4673D7417B9CF04513718F2CD0CFC297071450340F1B110AE53AD21759BB5B8C8E495F55CBA315805921485B73A248535AB3519A544F440B03B0B1A667665BF068F165570D9AA52FBC2CEFD50738109A2F18011D1B0B37142F24A52843A81C44ECCB8B083B8C98A51067197737BD47FB2B40A5A96E385364463CAC81348CA44E9B8B2E457701FC0571DCC6645FF724E44B1370FCC235AC9F735B1C85E877DC30A9654006837C5DC318CC11F962837C0F26A59F171B6EE21B0CE02925C280710E140EA46486E68419B11B548D880406E929DA097A99F8969840979EB861D483337D605C7E657C024C3315F76440F8437057710CC71817956C8135873EBB9D84B801CAC006930443C09773A5F542CDB838E176B45497B97091A613C305E6BB240EE08009E699C6D30D44F4152EC0A1ACC16E5310", + "ACBA766278516470613CE1044E46A4192A145BEB3727DCC22F53A98B4C7C414473160D85872F31C76EDC5DC2E822A91976761A5D933B8D284082BB85162FAB7A7D520EE3889F299956C7639DEA77127BD04BA5500FEB9077949A8245E4148CC2298C06203871AE8B0A2C3BFA4695C43050870392401315764FF65C9EF0DB06B03B5B5582B57E1A7EC6BA4AD832A04E31268A853AAA2227F8E382D467CF2D998284884FC7EC971AC439315978BB8A8EDF287F26D0769AEC141C0686F750C1F17784CAE142B942648655BC8A0ACB8247462713A2183223DFB093A737306E94386D878EB8BABE7CA066FCDA152A0A81A792AFC9EC32369101516122782100B24B02D5B8693A712F4711176B348E2AEBA7314A3A17D0CE11315412E54A6508937A393897B01D361B1FE9B0B7CCE01806A62D12470AD5650606883872A55030827B5BFA8A05FBA19C9207F113C99FE5985EB70E88325E5CF35EEA9605317579F15B161F55A81B694B0A79B8210B2C77524383AACD1936AD36B43F66FB6B5E668205396B40B3889DA25E21FA985BBC6AF4980D9FDA368507A7659785363C6537F067EEB596F5337640E7B3B1877804F21C14D76D69D01B67A941E76CBBCC3765AEFB0A74565470E7320605A0CC009C60E57C9E765D2F835DBBD91482D43B86858BF82161E1C3586290ACABA2964F3A9B83352CF40AA26442634EF069E2932A470A59AFF725B862B880E7A75FD705EE50624CA368E8C39C27EA0588C8983A453BCA30897A5785CCE2335EF8CD48217EEE4485ABD47A0769A0AC99089BEA59C4481B18D27C15D92E915285DC62197F4804EA3B3E79BBCBF57671DEDB8678F1264B420BFE191F21E489675B7F1479A390D0C8FE2A801F4CBAD2F90138259904705F2F07AFDD4A5394B64905154A914A7AFEF7CBEC54A7D5267A3FCA06DCC3B3CD617A3F433174053885F785193C8A70432AC83C37B60CB1CA407F22C7B577F4ACEA879A8AE700985028AEA3475426A3F071CC5162233E793AAF9936DC625A292B84D185BA31F964A4003C3A96701C6CA96305205B5071C3A6540D76C14E969A8061146940907EF20B857245C6F202B8978A23A6C84CEB3DE596C10BDABB2732008C6A224DE0AD219B9987099F1CEA007D1466AB0719E396618014787CA6B1A2680E96A85C949486105BC4357A93A3109422E52A44BCCB0C8C1AACA7931973560A82C65D253C02B2171688648A2C9F93F0A26BA58061C8CF64B54F2930A2A4C064CCEAA6D34C76BA200C382A1FD1B70119304F278A87A77837856C68A119CA692B8C39782A16AC11CB6C4D9BC7ACF335AEEAE65F01A50D4BC7458FA93E5E24AFB7576B41B631BC884853046160F77AD0646918B947BD440C449B8BDD15A3DE54A3C1A17A444CB469E0C1CFA347B5173FE6F4749658984CA0530483A86B773471799B9BD53FAF04D0A3C07515A3B915964AEE1010333127B3AA72AD964F38EA89A4C561E36143EAE3003A19CB4DE14FE88BC5B4C236EBD1930474718AE654F43277255B1F508721CA318D2D5255DB804166D94CF305BCFC6C91465B18F3AA4A64B624BBF395A10967861CCC3D13A17706511C8946FF31954962B9DC68AAB370BACA922B4DB66CBEB7A4E16C6DBAC64937B869EDCB585B4785B2B526EB4131E48546EE449D8EB7B709E296C028C6D085A3D614B8856A6D076CCE23CA4EBC192ECF14954BA06415280275CA743587492E76A5AB5593E9D15B10F829DCF73A94E040D8A25AA29616AC8A88CBB148E1C727B608305841B8F3C63E967843C9A50C43C3366293868F1B1ACBA037D95B64DD088E07D42F2D218B18EB7EDA5A2506CAB773444F2383A5E40940E4F26033C336E3C7B5D7D2BBECDB39180C87127781111B318FC4AB8C50926C932A122AA79766A48ABAB6707710C66030668540CB5C8D87272DAC2683ADA81DD20AACC3C01DF6056CBD23735DDA391332C773934E361A1B6E247711A843644226ADAAB77089A831E37D571517DCA952A58C0835705B03187B77E6AC91D426AB21B997905FB658C6B7510FF5E45E446204FE935A7612A364414014483CF1BC844A6935CE351D1E090313A776253386A01073A416B47A943712C0B7AFD130FE833041716530C4AF95928EBC541961558A707320A5FBBB3C113E8B3C88B0C3B359C13EE24172C8B649B67C645E07400CEBC486383D8EA2AFDDE8C104E69DAB368F092AB3B3B85FB70C3036FA5925301430D17603902B1373258B206B814BCEF5A2588981339CB725A5F38A079935F6A27578298F5DDAADAAF4616CFB9AF778875E4C3941A07E45AD3ECB9AE67E7527F70F6E07A757BD112947074D5120A1F2A1A5383897314D60AE0AB1A8B50D6F5DE454A2EB8B0502D57001E6E19223A82EF255BDB92F28D0393C0F7850C7F6C371BD4835D6DB61C138B0FAF22854466231D8\nencap_coins = 5E4723F16005D54429F70BE509C3149F769C7179C155393CCBDE778707CF3A7D\nct = 1F78781626D6EF934F4E9B8155905B1AD9A5A55EE6D3F14907DBFFA645B019B1B60DB281880888C0889FD7A87BCB749B5CE0607E779DFCC51C3E3897D7C052913D2BD3C49E05732143F080995D0DF8D12CBFE8E8DCE795D92C2AF4951ED19E6C89A9EAD231B4B85E60BE41EBFE03A4DC733AED1AD8BAD4487C5BA8E8917C5FA36DCF4DBF6BEC0477752ABFB7DB5D6C4B08E0C84CDD73A35FC876F4586B456541F9ADFE7E7091AE1C814169656B63073A6960FE160B997A2A53A843FD72DD689CDCF73BD1DE003D63ADBE7D74FE00E842305DF8C166AB4014119AB37C7F80A5063D502155D45E623DC62D56EE5FC47507548F9E2EBE36A89FAD491E01796E5B2DF5C3C057BE245DDCCF65D148DB800282B67B47C7FFB0BD04F709933D2D90D71A3A0031D75EFB9684A59B78928D47FD670796064BF4192F104EC0A50D29E216E124D88DAED3350B851AEE12D8028C8A170417FF14D7FB47B3E212F22C6D1865AD56EE620ADD4487114EA526BEEB529B44F8A8B58DB941F874DD0E562C470E90DD784C55A0CCBB737F775580EB7426079223BDDE621E2211A60F151BC096F52142A1AFB5A8E165D6DCD06CB9CA3DE3A5841933E2796004C05578781B43EECEFBBD49F4D87891847B3BA1729804C3FF3737C96A7EE580BDC96DB49A5322E509CC3A0DEE17883B3B0DAFA5CF9D9B405B4CED3BD1570C5F80822577704B6FD1FB44D5C107F111214639A248FBD1872DCD5C8DBFE673CB727C972709C370B4BFB4C95F446E4C47642EB4056C88A5BC325CC20AD551B286ED5E31873F4574D42A108D06FCD61D194FEC60FC13C26C95B6150F7CA737615FD9C1E4F33E8C697C0E7F5798DD57A2904663756E2A5BF1AA5D4E9A7A53076180FB35CD730BE69A887035FE321EC74B6ADB92E4362A2823671E19E10414D526DCCB36824E5EE39544B7558D8EDD266AF43FE6DD8E32F0A2B82FC473CBE843CC10C892F33B4E1BB23AC1CFF749150A66282D4A575D08EB02B455CBB63414E10B8C92C854C98EA1514CBFB5CFD18DB9C664B89DB55437A33571D395A9C15CF9A18DD038DF1103B8F8A00B22E04838A1111828DE45E54E02FAB3CFCDFC6649424DF3A3A9C811B9BA903205A3FA5D65783C7C3442EBE141DEB28F4F30BF20C78836AEB97566FCAB0B950A4378239FF4ADF375E1B40DFC879D55B22B0D6D77AF5A39F5D14C8BC5842877B89DF6665619D2F27E77B6933ECAD9D808018D7BE9932292D12A56CEA0F61E6A51702856C7FAD4F928A18E42C2769FE9E132AB7E4387F8EACD1ACC24163C7AB0426965F84B377EEC440BEBD0EFD7FEEF40D8FA9BB2A362EA72020DBD9F00701A00AC87E423E03DF9B36CADD19E12490589373A470E60A02ACA0B8442BE20C06A544A33A2702FD4EC7CEF8E9B01381294C8296DDB929927BFC421416B541EA67862233FAD6C98FD792E86E5FBEE93140230AFB3DE8320EAA1E26FCB06EEA61FF783A0AC990F652421BC75524011E8BFAB7CEDEB2E206A5D947EE0E3575FF126FAD4259E348AC0D6750176FB07AC0CCF185A2F02A1D185A3217D59163B5C8AF89AAFDDAD7ED8BE14C9D6E3E5D931AC2064820CD06B2978325BB9C2FD7D90AC7CE29E9FD07758B5143CB94793EED520C38B2C1C9A7F8FF2CAEB46B7533123920EDEB198CA1EF4E42A610B36E0CC14BB95F3E654AC81286BC900D718B8FE12331DDAF342209E2B9E598BB277D0C2E69410AB32BA0A7B8ACAB08934BEF91EF4D1FC0CC26C294CF958B5ED9577CA2EAC131EC595BE19B87B6A448A854DAAA2E0FF2044F103741D4EBD3B1BC3C0154F0CE7F5F698B443EA0B57C928F7F0848A98F1878575BCE0D300DEA502191B191A6235B9670D0F42CA1311C9B20A0C226EC3E2CA43ED3D7B9ECF685407DC0EF19FB0936D1ADEA13E8E510AB2568120B4543A9B47FC8D9B0F90C09DA0C9D138EDB255B3447481A312C8B8E657574253F831C0B33A130A1467187067EC40ACF1B187720F524994582651C8E38DC7EF7D1CE06BB589BF3AB99AB13BB495DCE68A30DA5F19078F973799349492C8872CF9FDE904BF3C31690CB8BBBEC1F690550663E39B1ABFA817EE9E4D42D9C4C20E0703B157B791325191806991154DC159844DA96D0CCB1BB8D2CAEFE5765DB07B795EC0F6BDD9FF2360974A625CB8F900FACCF7CA375AAF318754EE69160F9BED53E9D4EBCAE405BAD20BC9C6\nss = 7ECBD55688FC267469C2400E2DF0B7FEFEA15BE89BDEAEBF5D5D4F2EF50CCB1F\n\ncount = 55\nkeypair_coins = 2107204CD995F1DF14314D5381F8C5440F09A347502E161CFFC0A2EC3DCFBC73C95DF27DB27FFD4A8FDF31C4474CBFE2F5EF99F760E97FCF569D8AB22C2855A5\npk = C17C04D8C082F06A8D497768755CA932D2663637B2641C34A379AD8FAA55C15246FC5A13A3963D4D36A1A1E06BB811C736E10301D96181207F65E992A66B7B3D1921C7F7247F34BF3951CADBACA9E346BDE27887B61AB58FBBB3CD25466B3684B48223B24C34C6F1CE5AEC8513717CBE5A0059352E4AC62EEB157A0EF76936C16DB808572CF93ADCF5BB44B1935D43ABFCA1B06D375F4D5A4D2A40392023A86E05796565ABAA806D9BA0273E543AB03809C4FBC74FE4156BB2B60C76BE49C7A1D5D45410627A85026A58152E2833B445A087A4F011BEFB1E03B7102EA4B17D6B5C4E3791F9C2BABCF2471D86C720D412342529728CB560828C7286035E612698632CC054079AD2B53517B4C953969D8BAFBDD0C09845191AB426C23A8B469B601C8751B02A4AF32B670E6592F2E5B943924853E551BD80C5E717405EB2480DA7A6FFAB19660CBB5956546BC64DEF60B800C252D76C96D2FB3D22736143B144953A410653334C8967A367284E2197F5864C5E811721A49C29CA0E43E9AFF5A7264381BDD5C4AF51C51B66A450751CC5C7F75683954CFF0385436CA38F0759C93CCD37C44E7ED026EFEB5B271324BC71BD73D09D923182FB7739405159D51AB7E51A0765C56D98D50FDA35546BD762C21204F5661A72AA3A731A0520409C62154CF54243A32914A82C8EA6F75ADF55B885EBC8D5447345159ECC78AA6B917D42F9C09677CAF30B879CF9B73F468DA38880E7948788CA42B1551D4FF31D11435A97A61C0F4430757C70A4D73402D94338765C8F708502774D36AC34CF85AF4683AB5B36C61B04064705C68B578F7DFC4B9886140D28335E78C3B5AC7ED5BBC3DD6AB0A76A97858257C519CB57F0C949C2818C43962CC24695C5B3A6242908F20E14", + "239930A9B8FEE51BF5E62822F42095F37299316479C9371BCB567CD5CC138828BA5036799714DEC18047C84AEA562D67E375CE697536443AE087A5787A8DE6314A30E81AEA1312F3FA12BED1CE1FBA8E637009BB7998D41A6654D70B2F9436F6737C9D118DE76CCD885B4B0F3751990B93138A70ACC047E4416FB2E21BF2359AB022696E67B6AC6B8045F3C826B81B76C4589A687E42D909EE5473512A71B6369D22877AB0F91A7CC2C01533635D896B6BD293F85962F05A2BF14315E42582188BB09F2C3CC86632F636ADDE80817C0681A3C8C313A65AD918CB12582AD1D76AB42643EFA7AE8D94A4721B1F4BF77E8E47AF68642112AB9629E0A2E3316D6185668BA373DB4708ADD91ED47A5044EBA47C346B7D230D4B324B30C6193184B493D111FD8362812B5FD1E19D4978672C505BDF9A2F888469FAA040A4B3C5648929ABAA66EC435D3173519B882DDD7474B1210368711C301961F4855A49F75656D356930C79AE11983A32A17D4757CE42A2D9E26F6A77475C12056A5378ABF7C7CF097A7FB23BADC4AE929A5D1EB46AF442956A370D7F9A635926859E6099D2B121A807C107CC15AB18AE4634834C22144F689E92000829A4A9793CA767E43D707BCB2E0118E810B32F14007231721A5A1F1621991B556B70389BC8652B56D824E070A5F9552DE88B14DF346D43B460807662263769DDC268A78CBF4C155E46484C8E02087AA6493CE73B845289E9499D0DFC1B156621683521DAD7176DE52BC294770CA02EE08899B79673F562C5EC68157C758D4726CECB986C1355444D96402BDC20A620128AD3C9407A64537CA855F820C7166800839E32B5A0B9404EC4F375C68336C2C098EBABA5D1865A99A8B45993533B0651EF97477660C48EF40EA7261BCF9C43BFCC740A0605765C5CD84CC5640C92E533A2EC923A1512BA57D11924542F53329598598A0717AA91986901046DB1C763F25098103B208933085B59C0CC538BD344CF8E268E30BC4730887FF4C559315CA3CABC04B7F7CA57072216C859E73183288C8FAE0A71B98A2366A99F276C0B68688759E6B34D51A0F5FCA2C52585894A5EE52253D6F963EBD1283431B6D681065426A19157A6384B27BBB0495CB8A4F42C5649F185601B4A19511841E775868C0EF0E010A8147A743285EA16A6F01323A9ACB46C1418418C0B94793617DB9FCC1039B0060C167052B3766E9452B65F4789D9123E5E299C0E440986013226B63DB7C78109622EEB8880C351C6A5EF23C5D54C68389E610B30DE122C2B2CDCEA30B3C780612FB9992721E26273\nsk = AB150A2298917B1707AF1AC0941ACC5B6B259D1AAE8F878BB0A37089B845991B203EE4C8F1A58CF9D2CC0059ADE2DB131BDC5FE3049E17F350A805C6F30479BE91B12A36190A5332ECA4737DF5A32FD60CCE222B592060ADD75A62F88D5BF6426FB18A944195F1ECB1BABAC1DCF20C39339ED45AC8C3AB582382480851107683102FA1914E753731964FDFF686F0A354703858C15C99F30A19D9C281AE93004C718D1CA5452FE58183D806DD666792DA7A76B0927DC77793396E4508200EF5097E45095A33AF5683A4DD1A5F6878C1E6FA85771A990EA16F7A28034A897855769DB8E4A9A425860FEC7031D09E96B665F57662B2BB86E362C3F9A706E354C12423AC6CDC74973A0767D73E75F5739747433C3451F8E5B85E5311B6E009F79C00CC07BA26B74D512520496B1998A4445C19249729225044CFFD51679B495511223417B2BAC86CC242241F2B70966E9A7A03C3CC0AB526ABF857DC1A140AD85825757D2B5A59B97B7F8C5015DA02159D013C1F15491FF4CF64C564E50C389F6C85B7C060F98011A4518CD3B48C2DF68C67F3497F439C11F8504E577CF49ACFAE704A2B093238520292602CC2138762D87536F6285C001D6975A242654DDECB5663AC44228BBE5BD58D9B90426C66802B466B21DC8D7A23893A953033874D0A93626C00B6A4FA3FE9EB0DFEBA2F3E789AAD8103CA153FBD7218B95547DE700CA526AED4F159639C59A7699296486188C3CA111479DDAA747F99AC825C7593911D6261683CE92EE8AABB77F82AB14838DB54149194B12791C4991181C66BCF05C67E19F05DCB658D8DFAB09C180967311F4E2AA03D9B8218889F87C5A5680299A7459AFDD69DB27302D9761DAA20BE37900B971694D3B6AEA8C6B5D53A686BEAA478F2ABC17C1C461807597148719925590C1E482AA05BB73077C017C1010EA576BFB5A63031875A23B0A019D608D64A30D0DCB39D750099D1C7583C34AB1CB1DD99A115547E3E4CCDF2A872E821B2330A5F6B30918226B7FCFC9FB4F37D8103437DB12EE073A49D29A7359316F8D922F783797E49B8C2B6146F76C7F8A66838C86364A788D3C4AE67D02CA09391E8547EDFE86CA1D131C5B96CAF479D9562688D1238C6196526B17844B475149AC3A76865C94993E518941A63A2E4559E81A46C8A99AFD2A73B36C633DDC6B32B14723F04A83AF89A420A3D04810311A28880247236A3761236B068A9A4EDF55317E8841218441EB1137342977215992BA99C1EEA7DBEA33AA83382B909BF1EAA9030B4386F8BAAEA643E41531204BC0DF8243F81367F4D979BF0125B84EB5D5DF53318463102938A85214AD7355960300DB40719A2ACAB9297381A6708391C78A8D4029487C324291A7E4A0945A806E0F24368C7A2AF91B8BB155D04C557759228673B548B6A4FEB8944B7334BCCBAB144C84344457B8B794A3D3B4DFC2357BE9227F9C4CE8B98003452C1D8D19C7A8332403A41308086346129D3F929B847BAB1AA5D88935D816A708C6A5E41023BCD4252569CBC724A53DF1B88909267A932186C751339863C8DD49CBE200797186924C26EDB976DE613CC2C46BEB06B39F5C264716A76E67831E4198822D77386592C777A0846F9B278064656903BD1F26A8A87832D541541E8A06E5733700836C5F16A06F17AB68B6BA229C9E740765DDCA88A01469A79BB44F2A4A55547ABEC4F74861B83687D69FB0402D6CFB0573E8181929070483E85A9147801CE7B8A707093B2C67A21F1C65222981ED55755025805823908D908A6516488A0B87800034937B582368CAD01C99C47C84C2C09D494A6FBA19E5275BB27C998C5EC863E01612F3A75951A0FB8790CB5B623B3C089CF40779B6936B632B54B981C7EC83930F7CAFCCBC365376A3FA3C1CDB162B1751AD8EB3B2FA70150B637D1963600B0BADD755E3BE7486F8CC306D9A05D688227F77514B02DC7D47C93986432C2B58C674A74218D6E9482F8A3B8A6C5798A833D97A65DF98B3117203AA566CE46499DFAF56F69310BFE821C16BB794DBABB7068CFF6FA3D2CBC376BF1C4E06AB2E4A73256A618D9236810642C1D1BB3C13AC300F20EACF79D1EF347A38084DC222BB8741849C2B038D9721AE56A5300BE8B9B4BA70C530593A5816309AD50420D63A7BDD0375B9475C17C04D8C082F06A8D497768755CA932D2663637B2641C34A379AD8FAA55C15246FC5A13A3963D4D36A1A1E06BB811C736E10301D96181207F65E992A66B7B3D1921C7F7247F34BF3951CADBACA9E346BDE27887B61AB58FBBB3CD25466B3684B48223B24C34C6F1CE5AEC8513717CBE5A0059352E4AC62EEB157A0EF76936C16DB808572CF93ADCF5BB44B1935D43ABFCA1B06D375F4D5A4D2A40392023A86E05796565ABAA806D9BA0273E543AB03809C4FBC74FE4156BB2B60C76BE49C7A1D5D45410627A85026A58152E2833B445A087A4F011BEFB1E03B7102EA4B17D6B5C4E3791F9C2BABCF2471D86C720D412342529728CB560828C7286035E612698632CC054079AD2B53517B4C953969D8BAFBDD0C09845191AB426C23A8B469B601C8751B02A4AF32B670E6592F2E5B943924853E551BD80C5E717405EB2480DA7A6FFAB19660CBB5956546BC64DEF60B800C252D76C96D2FB3D22736143B144953A410653334C8967A367284E2197F5864C5E811721A49C29CA0E43E9AFF5A7264381BDD5C4AF51C51B66A450751CC5C7F75683954CFF0385436CA38F0759C93CCD37C44E7ED026EFEB5B271324BC71BD73D09D923182FB7739405159D51AB7E51A0765C56D98D50FDA35546BD762C21204F5661A72AA3A731A0520409C62154CF54243A32914A82C8EA6F75ADF55B885EBC8D5447345159ECC78AA6B917D42F9C09677CAF30B879CF9B73F468DA38880E7948788CA42B1551D4FF31D11435A97A61C0F4430757C70A4D73402D94338765C8F708502774D36AC34CF85AF4683AB5B36C61B04064705C68B578F7DFC4B9886140D28335E78C3B5AC7ED5BBC3DD6AB0A76A97858257C519CB57F0C949C2818C43962CC24695C5B3A6242908F20E14239930A9B8FEE51BF5E62822F42095F37299316479C9371BCB567CD5CC138828BA5036799714DEC18047C84AEA562D67E375CE697536443AE087A5787A8DE6314A30E81AEA1312F3FA12BED1CE1FBA8E637009BB7998D41A6654D70B2F9436F6737C9D118DE76CCD885B4B0F3751990B93138A70ACC047E4416FB2E21BF2359AB022696E67B6AC6B8045F3C826B81B76C4589A687E42D909EE5473512A71B6369D22877AB0F91A7CC2C01533635D896B6BD293F85962F05A2BF14315E42582188BB09F2C3CC86632F636ADDE80817C0681A3C8C313A65AD918CB12582AD1D76AB42643EFA7AE8D94A4721B1F4BF77E8E47AF68642112AB9629E0A2E3316D6185668BA373DB4708ADD91ED47A5044EBA47C346B7D230D4B324B30C6193184B493D111FD8362812B5FD1E19D4978672C505BDF9A2F888469FAA040A4B3C5648929ABAA66EC435D3173519B882DDD7474B1210368711C301961F4855A49F75656D356930C79AE11983A32A17D4757CE42A2D9E26F6A77475C12056A5378ABF7C7CF097A7FB23BADC4AE929A5D1EB46AF442956A370D7F9A635926859E6099D2B121A807C107CC15AB18AE4634834C22144F689E92000829A4A9793CA767E43D707BCB2E0118E810B32F14007231721A5A1F1621991B556B70389BC8652B56D824E070A5F9552DE88B14DF346D43B460807662263769DDC268A78CBF4C155E46484C8E02087AA6493CE73B845289E9499D0DFC1B156621683521DAD7176DE52BC294770CA02EE08899B79673F562C5EC68157C758D4726CECB986C1355444D96402BDC20A620128AD3C9407A64537CA855F820C7166800839E32B5A0B9404EC4F375C68336C2C098EBABA5D1865A99A8B45993533B0651EF97477660C48EF40EA7261BCF9C43BFCC740A0605765C5CD84CC5640C92E533A2EC923A1512BA57D11924542F53329598598A0717AA91986901046DB1C763F25098103B208933085B59C0CC538BD344CF8E268E30BC4730887FF4C559315CA3CABC04B7F7CA57072216C859E73183288C8FAE0A71B98A2366A99F276C0B68688759E6B34D51A0F5FCA2C52585894A5EE52253D6F963EBD1283431B6D681065426A19157A6384B27BBB0495CB8A4F42C5649F185601B4A19511841E775868C0EF0E010A8147A743285EA16A6F01323A9ACB46C1418418C0B94793617DB9FCC1039B0060C167052B3766E9452B65F4789D9123E5E299C0E440986013226B63DB7C78109622EEB8880C351C6A5EF23C5D54C68389E610B30DE122C2B2CDCEA30B3C780612FB9992721E26273500DD7B94B28B5B650D90962962BB9A3AE96E70D35723217F3F178CBE5659051C95DF27DB27FFD4A8FDF31C4474CBFE2F5EF99F760E97FCF569D8AB22C", + "2855A5\nencap_coins = 2435BE12E5A6B3B230F3B0B24AC28FA464B9E8DF34ACBC8C6EB16441739C1B18\nct = 430BB3536DAF602E70A8748E8EB70714EE57EEB7351BE503F4080D9AA349CB4A6544962D5C1F713F9A8B60AFB0DB36115CCBDB4BA34F5274EAE4C3D5A8DC7BBD1B6004235334AE2AACC91D6157E13D5D2CF90A43CDADAE616B9E2F1C83F2D51111DD2AEA58F3136AB83DFC90F1EB0249862A11138FC4CAA0B900E511EC98CC77619E85BEF0FA118D69D27D0CE68A39F54E7F5AF135398C9643248D10BB6BD3EA42C04E2365162693A14ABB55274A66C1EA7A7FAF1EF18AD4BA38ACCC05A88CEAE9BD1453BA832D74D4A344DCD6A286979CC7D543FFF623F9B4B6148D8AE41174E8BFD768972E111C9F2894B5561662B7B40F6832E8A643E2F319571F631D29D43889DE15E660AB1627394E55C92D46D32428533B1C097983E0CDFBDFDFAEB1F71E066FEE7A6C9136B3E1917E5BE67BF314645441CA01CEAA413BD3B493CC8619DEB91A59B2FE45718C19F20AC2918EC4627BE30306B5C9D6E0D7B442F421136F694D3BB7ACC01E0E0D2F8DB852B867238B209609AF15FFBF483E8AF7EB3EBD4DF089A5A739D3CBEA6D78C8027FF702B9C738482A5197F7EEED2864FB210B611059D92666D959CB21A3C491618BB4DF72ABE992E0437D209F377ED9BBC3851C5772A6490D1C1BF77C25B56ED9A762B4A163FEC69975C01081E693D482A73169E9459F2708E934D9CCEE0B5BBEB4A8CE2F9493E042C123A92DCC3B82003772AAF2FB30DD63D06848EEB33A9672CF464608AE266FFD7CAFBAECB176531EE07E8B9AD88B38F105EECE4951B5EE074D9832D6CCFD9B19622B430DA3230D58B22BBB8126E302F48FE7B36A7975254C4DECA7E77FCB774DFB5C38636C6251053B0A7BFAA17BA21E32CA47BE2DA5F550A3F7E35AF16130F62C1375F2DE019A0E1066A6FC51E1625E59DCD589CDB2E92E78F5C6A07843715399DD7A289CF300E193CC2E0D76EFBD84D60CE0607C69C509D2BCEE9D2BFFD05289CE0F4692FDEA9CD651C4573F1AB7D5D99BCCFE6A0A73339E65070D75082D35FF2C837BB4920E10759D1531CAF2B2A706537C990C17931E33FF3C47167E1EA68F33C592CB45FB922A2773A4FB79F1618EF8771B4131E37218BF3A000021F4ADEE70A08B9F4B9FC0969AD5B3BFC5799D036A2D8F066FF5AB41394B1AADF33DECC8B2045FF87B7FC37B8AB2E5F4AF3D31F7A9CE3465E33F4E0701D971D686E2BC9D525108CCE748431368FFF09CF683D1C101BBBCF0D7B923F6E971A06EF317B434B0DD087D5B389B223904730026CC1259E8DC093823B87130CE1662FE60D633C35551406F5BB2B5DAC8390A698D3FD94E2EF00AC558C55086CB61662C05B9D09EFE6F48C46A991F8300AE3FD2315544D80A71E83AE0CF056BBBB663BD88BF76FEB1C0BF871826C4C59247A9FDF9A310DD9A263EDB541F9985CCFA9896081EAE8DBAFD5109908767E745F2F5928A041FF599F3578371E2DAA10BEBB8F39C2EB6539B2BE088739AF663A84F5AFBCE6AAF209B806E412EC26B44305B7228E6B68028C59F7E8B83DFE605A284418080C63D1C44AB8F1E4DBDFA75F74ED6322D6FCC5AD15979607477ED22D110E36D56E42A79407B33C84042A63F40E4179CA7F9DB58E0B34A2A87D4F90FF1C89DF9F8A8D4D6C509D84C89C23994E3D9FFC7A67BF97C29641D2B11771D9BE0841FF9C3EA08162CCA9CE13B8A8721AA22FF13485C47C5F6286F82FE9EC2620FD1B4B940EA67D0E39D5CBF8F97D2166588E0AD77055932936A8240C759C6FDAEE475DF9D78E0663D960C05D12E5557FCEE6561767D84BDFEBE5F77DE66115ECBCE41BC5987DD630B69BE9D3220B1B6DB2FE08FD5732C9D6A16AB25A7699D138136FD1005D8F2F47EB1A06AD13C825833498EF6D14BBF38FEF47A7C53A70F7364D4E6F123B4E761EF134254CDFB2431E485AC12320F838B9E253D7994FEB8E4F0D10EA1664C2BE6CFA130A13BFF11707336F87D054128E4E5FA429DA0845475B28DEAC096BB839E504AE539DF78A1B3892ABC8564D2AE1A644C07AA5B57DD5C976A58639C008F280020842F248FD66A4E9A76E7AE579845DE378C03E41C9F9E3A08F69E16B133FD205DD8310C7163146C7AA36A459208BBCB73CEDDEC3DB2D337C40AC6A7717A27FEB6D855B9C76EDE3C1B7CE05E0E23E64783BAAB4C1BB92EC593220AB62242B11AF9A330E1E5F37C65325F2431936E113C994974C383AC02411B32\nss = 74E7C95F46B214F146E1812F1F2699F1AC4E4298F0051ACD2F6FA0168291F4E1\n\ncount = 56\nkeypair_coins = 63A925685A8AC5BBD918FAA33AC397D1FFBCF99135D9DA7C3D6FF7AA4C50AF3D284FDCB2D2A697D75E985AA43FAE0DF266A8056C18CB0BBB52B4EC89D66C21E8\npk = 56054AD4251DEF874AA0051EA234B544D7A0DFA60B1D5BB60B8BC95220C6CC96AB6ED53EEA9C7CD1715E9C29291A361B04F205CB094FF888642827AA19C64893685FFC004B6ED9516F6638B9BBAC94404F91C29A4D5AC6A9615179798CF6C486333A7641846CB49C6B78425AEA240CD5F98FFAA826AA3B7B643A0C5F4C3AB4C21EA9081E9439445C98277B9A507BBCBB82D31ACED3C378B017F7D62270749BC1901EE53C72953576125574DEA727080A659BCA4F007B6CF7C9CB2D0254BA9A293290C493654D25E7AC0CD88A6101B12622BA2627000DE87D88E4990CCB9CF4A08918D044C2D52CF42A938D6430E544CB2E369ED9E7C7304B55A34A8CD193A096D5C716383904B7B8CC89CA471980B84699F546BCFBC348AE706F400A28F0B1C9F8A40D8BE14FECC0B2F282CA8F5C499F2A3D16BB7501003D22965B7E33826D343F72A501E0B219BF868B3E47BD4FBCBA0D6635421189C17C32479AA5FB0ABC84549F878490BFCAC6934A6393A0A14874A878D65AACFA3678704919240D31E9911FB703DD339684D5AE6090BD3478578F7A60D1D72DA9D70ECA9266B19C79115322E626BA64D52D26C9A655F1325AA63881E8800E16382A46865AC2CF015ABE3A420ECEF1290E5A2836500176D7B6D54868AE3A977CC26A40A2C20EC3B346C0A4B81549D274A7BC6B446D6A42512C55B9823D745402A630065297973B99B569952AA9A66B440430D980BF4944CD66513220F13964A30E86F738A0EB1AEC491908D2C07A35591A384D0E560AF91C1F7910B2D3F61E69234375B9B6CC017891ECA65B83332DF15773BAA489862494435538DB956D9C09660499D7E343C7D68FE082997B73B69705B9498AC9CD989EFCE26F4AA2B3D5E7B445E4132185A4E734175EE4B5B7CAB33E42CA33096755473D774C758B3AB1B7687D62351C3C5251653953701C81E2CB2667C885E75C814F375EB946ADEF027F78036B28F4151F1C799FC1556DE38BFB2BA996DB3E3E70B79BE2614B073CBD150C04313013AB88C477297EE615FBA0A9E00A50EE3B0F66498BA09ACF338B7342B8670C31428F4A52CCF9B4B6DC98667BA43792863661738E63653C34B9147B60EBB21CE89291891BB814096D662806D1D012481B922B9C2FEFE9A66B919823970BE95BB12C6619498228BEC78DB0739A5B1C93654A2AAD73851355A0485A52C3896C3527964E88727C3805EEC01A65CCA1FEC8466AA44BBAC56E53895251892B6355C5E39953F680683FF72E0968867B536C11A33470F8AC74870D996557981711E5D0ABC65C671F423EE4B67771055952B54DF8934F0B6980779ABE207C4F8CE1CF17BBBD90B24D1FF875109366A4270202036A0796146CC8BA70712F98B042B301C5143A6143E01B79B2AF3A944100EBA87DA1725743C370D85894892469C00A95F3866726138C2099B9B6C47CE9B9630222C7656623260D8500B4D7752B6779AF5B5B858016057F545175F61477476E3A02ACA3D1485E0882B305C9F956908DA84EBD8083ED26B8B2B8B50A347A4CDA722BDC6FFC2B9043491DA64B0FD0A39B7F1550186A0038E07598D6887E6C8C2800288B1C9A45A66233049D77D912B1FB50FC119B0B7455C8D90A3EDCB046F2064D401C8F108B833CAAAE5573A10B9FD1775AB90226D8A32088AC614E9B20737C88DDA963D0E77C7C592179B4030881987421A886AC7A422C98B6D51C53D8C1027C84881491994CC84E9B1185B3425758BBB1E305A1103FF6989C633A5697A97E5DCB94E7191D9A47330ECC60ACF85083559D507A77F7033965A0859FD6306D27C0ED2B35E7B3444D957A52010AC49A8851952F6061AD551B7C74814606510A0BD19D9EE7998310C74EF507902CC71103134A411F90DA122FE72FD14448DEA00932977C0F27628F092DA3AC07D901C2C3613D22D48AD6376AC1D008C7D19A31623EBC616E4FC3887D68C033BC3EC0E5840D415F6FD2C15355C223DA1C45289315CC945AA39AE7498767EB3A6692B2A0CA6E7BC73A5D97644703ABA392B5D386849F91BCC7F5691F295A267AC0C1FB84E5E31C94AB020E351AE410840E4198E417B8F397AA33F88114030B07D5C702C6AB64BB7DF7276F593AB3D133232C919DBD06B6DF756258B25C7132BF03C62077084CE937CE829B0172810B92D45892F335D02D36153217D5DB379B621E416A54CE8071DFDA35F639A04B14\nsk = F80C63DD6CBDA93B6CEE719FBAD6BDBE1A03F18B3379306ACE5625FB38C5EDAC9C8C94525C85961E14A76082BBD760CCF9B5AC777088B0CC80E0304FBCFC697CFB13DCF1CF777325EB473D11A43DA4575B697A860445B02CF75E8B945FF9433A337C754E19453D4BBFD2F07C76E8B7A68B92ABC870B56202F7634B9B37902D39BCA04653FAD9A0E4F0BE548ABB97C7A1FA18C34CEBBAE3987F4B3C52A5006629159AC6875276053908B389D931BC7E2871751169B6D81C8D8B5F52854A3E644C5C504675D688BA030E9E78A79E7788522516FFDA2EC9946AA9791A634B6AB6D04456003ACF348BDCD859567A74A7B73556820F8DFC12E467AE2FD11025E430114A5A60D3B42BB43845721637A69596EB953AB7B3E3B28B3BD9923DBC5189A37E9FE7BD9B763FA905314C0A35387A8E8552BF7135698E15B8D99B0777A0A5AF1B7DAFC172AA6A4D69202F10351603771876C580A7D24479DB0D804B6513A09281F291F2706AB128905663AECB0BB31A41046771449D12C335051A2EB50CA81ACE90940A8A6A355B21A9C7505491EA3B48B5323CC567EAD909FBDB380FD504C851452BD34F0F65A39AC62D922A3C50A8566EDAB03358745D701332E4011022BFD4839AE7B6745C66ACA80ABAB8213369E299253B40A7922DF02AB70F9723BACCB1AD563AD20C5EB8A01AE564BE24F40CE91A0F06EC68C0604C74250909D317F8968947A12EA297A279821F1B5377B02653D66897AA526CF51553C268481F7174BD9495DA4B0305650358A637A5FC31C99BA7BA304C6811B555E4B1C2F80EB4223C54032D16238861FB650BCBA24B127026FBA51F5985476103FE1375B94007A06BC2AB048BCB4A78E6D3C748B141BE410992733630B8C917F89960273740A595071824A9D02908D52D334373E8A575D5D52E96E5AD0CC95BF2C761AE577B9EF6BEAD33103E5033E0765D748C409F8A44227B8F55838B38695C5E132F2CB9BFDD7CB8522906E9BC03DDA468A04012277417869277E2169C63112E6A8942A1C13AEE97300FF4CAABF862058B6E7CC16F34C79BA200853701A98D630936A8A595098C8B19820AC91F47451E011069AA688BFBF5AC4EE018C53639A1B057", + "3C8A420C4619166B011E79BD0B843D97766810A48E55D5CE389B5DE4A739F77CCC5FB70D52B3CA5D01729935BF7E4BB984576F2ACB7466C8248F975BAD539B2260568DFA34CF2974D83699761C95405943A7A88374112F8AE79B4D244BF2D683F7CC7A533229BBD8B5E822C8B3449548634FF34BCAEFF25A41AA84A1FA1F52F486F89630A7730E4F81AD23C14D6906816A849810951727042ED0782EF26C31281C0AADE6C9334A88ACB917B781C4F16327196422C24541065B5E80F4374DA0853D478625A68F728A20C1C82CA4FCC4D62744FA658059141221A917D6121187D3B621179AA8F7B7CD0904E6E0787F9A5F65EAA78011B6B63290A55542C80A4BFAD64677467DD1B12785E6BFBC31C1F3D46DB55C0A035604EF658279DB3232C675BC0BC97717CA3EB71D4F44CAAF1B07BDDC90AE982886594F98C41AE7481562CB63D0B2539EEC589146735490A4A87B6EC5CC77BFC0810627AA3452CB061A1648EC7CBB4937826602185A7F5B9306D822633E2B7D35A39C135CA5C1C5C1BC80BA25EB91CD6A3D71341CB1314DEB05A164D31123B0A6C5CC7EDEDC1301154E875493FF173D74880AFB7438C44085BCCB29095BA859A4CB2D77BDA5D61FD9600D1B9C45592682BF161713C80D0ABA348EE8BBF370BD4B1A50E6723B9B2499030A0EEA58A6531579F8B110C7EBA4CA3A57A5B6A5AD511F896A9F78A62908CC0FE0A0C06E652240F34D1E16BA51B41AE7077C3E982608216842C499A51CCC4365A864060F4D2B854232B56D803CB91C7FDD830A50CB2AE465C91416BCB09190BE99C56F870C065C7BCF4B421718C17F3394A3684CB0BB83473927B3A1B4F8334851861044305137746AB39650949C8CD43839FA75B0A78C14D65B2D9139175F9756CE3865DB6C77467B086C4826921047D13CAAC87A61E2D6B6A6A8CB67D18A0E910DEC05AA5C3525EC86A2ED7C24C0E520B44A5C94940AE8D17F6B175642CB49640BC3254957C1E2501CD5017D3C297137A59CC06B69A861BDB73A0C739733DBBC5DD91628D85B56054AD4251DEF874AA0051EA234B544D7A0DFA60B1D5BB60B8BC95220C6CC96AB6ED53EEA9C7CD1715E9C29291A361B04F205CB094FF888642827AA19C64893685FFC004B6ED9516F6638B9BBAC94404F91C29A4D5AC6A9615179798CF6C486333A7641846CB49C6B78425AEA240CD5F98FFAA826AA3B7B643A0C5F4C3AB4C21EA9081E9439445C98277B9A507BBCBB82D31ACED3C378B017F7D62270749BC1901EE53C72953576125574DEA727080A659BCA4F007B6CF7C9CB2D0254BA9A293290C493654D25E7AC0CD88A6101B12622BA2627000DE87D88E4990CCB9CF4A08918D044C2D52CF42A938D6430E544CB2E369ED9E7C7304B55A34A8CD193A096D5C716383904B7B8CC89CA471980B84699F546BCFBC348AE706F400A28F0B1C9F8A40D8BE14FECC0B2F282CA8F5C499F2A3D16BB7501003D22965B7E33826D343F72A501E0B219BF868B3E47BD4FBCBA0D6635421189C17C32479AA5FB0ABC84549F878490BFCAC6934A6393A0A14874A878D65AACFA3678704919240D31E9911FB703DD339684D5AE6090BD3478578F7A60D1D72DA9D70ECA9266B19C79115322E626BA64D52D26C9A655F1325AA63881E8800E16382A46865AC2CF015ABE3A420ECEF1290E5A2836500176D7B6D54868AE3A977CC26A40A2C20EC3B346C0A4B81549D274A7BC6B446D6A42512C55B9823D745402A630065297973B99B569952AA9A66B440430D980BF4944CD66513220F13964A30E86F738A0EB1AEC491908D2C07A35591A384D0E560AF91C1F7910B2D3F61E69234375B9B6CC017891ECA65B83332DF15773BAA489862494435538DB956D9C09660499D7E343C7D68FE082997B73B69705B9498AC9CD989EFCE26F4AA2B3D5E7B445E4132185A4E734175EE4B5B7CAB33E42CA33096755473D774C758B3AB1B7687D62351C3C5251653953701C81E2CB2667C885E75C814F375EB946ADEF027F78036B28F4151F1C799FC1556DE38BFB2BA996DB3E3E70B79BE2614B073CBD150C04313013AB88C477297EE615FBA0A9E00A50EE3B0F66498BA09ACF338B7342B8670C31428F4A52CCF9B4B6DC98667BA43792863661738E63653C34B9147B60EBB21CE89291891BB814096D662806D1D012481B922B9C2FEFE9A66B919823970BE95BB12C6619498228BEC78DB0739A5B1C93654A2AAD73851355A0485A52C3896C3527964E88727C3805EEC01A65CCA1FEC8466AA44BBAC56E53895251892B6355C5E39953F680683FF72E0968867B536C11A33470F8AC74870D996557981711E5D0ABC65C671F423EE4B67771055952B54DF8934F0B6980779ABE207C4F8CE1CF17BBBD90B24D1FF875109366A4270202036A0796146CC8BA70712F98B042B301C5143A6143E01B79B2AF3A944100EBA87DA1725743C370D85894892469C00A95F3866726138C2099B9B6C47CE9B9630222C7656623260D8500B4D7752B6779AF5B5B858016057F545175F61477476E3A02ACA3D1485E0882B305C9F956908DA84EBD8083ED26B8B2B8B50A347A4CDA722BDC6FFC2B9043491DA64B0FD0A39B7F1550186A0038E07598D6887E6C8C2800288B1C9A45A66233049D77D912B1FB50FC119B0B7455C8D90A3EDCB046F2064D401C8F108B833CAAAE5573A10B9FD1775AB90226D8A32088AC614E9B20737C88DDA963D0E77C7C592179B4030881987421A886AC7A422C98B6D51C53D8C1027C84881491994CC84E9B1185B3425758BBB1E305A1103FF6989C633A5697A97E5DCB94E7191D9A47330ECC60ACF85083559D507A77F7033965A0859FD6306D27C0ED2B35E7B3444D957A52010AC49A8851952F6061AD551B7C74814606510A0BD19D9EE7998310C74EF507902CC71103134A411F90DA122FE72FD14448DEA00932977C0F27628F092DA3AC07D901C2C3613D22D48AD6376AC1D008C7D19A31623EBC616E4FC3887D68C033BC3EC0E5840D415F6FD2C15355C223DA1C45289315CC945AA39AE7498767EB3A6692B2A0CA6E7BC73A5D97644703ABA392B5D386849F91BCC7F5691F295A267AC0C1FB84E5E31C94AB020E351AE410840E4198E417B8F397AA33F88114030B07D5C702C6AB64BB7DF7276F593AB3D133232C919DBD06B6DF756258B25C7132BF03C62077084CE937CE829B0172810B92D45892F335D02D36153217D5DB379B621E416A54CE8071DFDA35F639A04B143C4467B507971523509BF97D2BDD733AD9EB94F312E4226D036E8FE827A20533284FDCB2D2A697D75E985AA43FAE0DF266A8056C18CB0BBB52B4EC89D66C21E8\nencap_coins = 630F384162DD6F8206CB36D2278AF30CCDFC73105029DD507A18AD433503CD7D\nct = AA403B1D6E3E4F1C8428BAA6B2AD630A6BA454924B2C41F0A91D6BB4CF29FA5B51F211C7E969E181BAA52D77D1EC5473DC7832E9191DCEF35EB79710AC0E4C9D500D16EEDB619CAA84EA58D4CA743E2A3F5E6A92A502AAE4731E235F04D8D3F15D5A7E148B1DC535781AE85D9D1E2B74F48EFF673B1FBB0A36FB5A9C1C2FFB99668AA8D25BC0915A7366589FF2843760C9C1F0186C6FECD325BD1FB2F6DD86EA91898FA6C205AB0A83A7CE6D176952AB77F9DAA39E7021688580489718B9D245F8F5E656935C1503B1E04330B6A7512160E09D3FCE39F2A6FFC424CDA2DB2870590E9E8E333AA7356967F233EC4663B7D59AF70F37530FADF03224830A05240F558C996AEFAF0248FEF49313B58C77FA888F640D91E1CFD7CAEA4A6AA51CBB0F198AC79E563ECA4D39920FC4AE89FEB62A9EAC30717CDBB63954153453BB817C9490C11F7C441B7526FD1327AEE3C847B80BF340F7208B10D3836FD583C3EA1D367E962CF87D2D8BC0BC3039480AFE9E6B889A85BAA8884B47D8110531D4ED88E34AA008F921C61D06B9A020C41CA82B1341621A8C017552F0F96F78CC8F4345A4281C56133CF74B5FBEE71F988CF9BC9FC0B7C0E2FD20480E7E1CDDCA25E2B8DE62BF577ED1C1475CF77F621296BAE2D011E62E8F546618E27DA50DBCE0281FE455B06B0972407075E67EAB22ABDEB1B0F7EF5AC3600EB9754138013A1EB5B232025FAA56901A745E6DE4B4B0272CAEEB21F3B1631BFB32220E348D24915527496A1B9BECED4836DD5CB976EB74C7920FFDEC5AFF6EB23911026923ADA10ED2158D595F55E903EF0F26EE2DFA9A9217621605FCDA354871EFB41AD6ECC298E52B7E64DBA1FECF8B4AFCDBD2255845780CEBAF01E9C99D599289547ADBA847E12F8E764F8FA4AF24C9D1369AAC1C15E2557CDB15CA43CFE45AE9DDA493FA39A1FE2239839945D7E1C729FB1091014EB0AC78A7381AD4F13E65F4CA679199322DBEACED071088E621B0E36BDE81BF75940FA8C144C48BEADFB281D44264281B53C4433F9E164B9254F3860448A26F45269FA402CFBA43D7856449F210B424B8CB2F86FE565EFA3F497E889A9EB10E763A748F4B734E318DC11D7D8728086B43C7453B9D1C36145747AAA07720781EBA77B95218667779686C7DAD1109D31B96EE88AE68C76323021E0C8CDA4DA5F8C3061B25B1BD2F55F105E840423506DB992E45CAA171766C2A26A0D6418CE7509CC9F092B92F3D0175F30E4B2E58CB209A04A05D3C56B67453C10CAAEA09D9ECDF0B6C2739B5CD19055B9AB1106FB0671B7506C275F3EEDB72D2ACC4EC6C69F7ACAA9A1DFB686AAE876D3E36C792C3F7510595F0C2F8AEBF6C8091D655FA30BC9156D4572A6564FD06E31B03C1D379BEA466837DFF9C71A628E3DD1BDECEFD7B7FDB90956E98D465BD79A93658302F8BC2523335903A66BEAE524FFE9F89D08DE98679EA0A495BF427F44873C0325D5DAEACFF8B10EA1B79A1A1FFE94F2BC9FD7B9A79FCD5CDF1EE0BAA0F60A0B974CD3CDB0C598995BC8281C41CD68EEE0C0EE4789FB9FEC2AC00ADC3663FC9E1E915FB52F5B94192453BDEDFBE14887F8843F5E35FDBC4E96AFCEB4993A2FBA41A81A45DF97A73B2C35D61DB3965789039997896EE9D06CED3075A3668F680E969C03474F4AFD6DAC17E8111916A86C2BCDE216DF4950A3534436BC00A97F3DA6E51A34C5C78D1AF4D910CCDA10ACDDE751D6D6678ED629F7DF740AC0E1608C0BA3EEA46BA4FC13D22F3ABA171264F995578C898F8BDC8A7E150D3E96A2DBDD988087C6EDE8939A42CAB2451F7CDBC2870EB9A04BCFD02210A2853885203DD0C752102C92072A095588A54CB6E4F42CF9768B74BA0B18EEC985B40B7618ADF4BE7A1B4B9A163C4CE7501D36273B6ABE92E7CDF944F2F95B4B9A03363E3EAEC7A22E8D87A9E0DDC045AC50313A03A57BBB333D04900E19F5F035582010901E5BFE5477C19C4A1CFE846523C7457DF9503EB8C9FBEFC7425E683F337ED8C1E528D1B74F30529BCEA3F24130DEC1C4F72DDFE12D73DE34C8171A402153B8EDA1E19DC8572A65204328585B18D27693E9F039045F6FF0A009AE55CD226FE991B319F8E8E7607D91EED7D55A73577698526CE3C2C40743F4565BFAAB0C6209F831AA063FECA8658FD7788F903B45E1D3D099FACF7005CFF1FCE8261831F65F4AFAE86D9E93C6B\nss = 99BAB62285AFA02370DE3F80BAF42B5085DBAD03B5DD2891014EE4C86BDB0161\n\ncount = 57\nkeypair_coins = 6A1AEE5E708C1B47F02BDACCE4F56C860F74FC7CFEC1EF3B58285B1C8AD7FEC211FE1EBBD66174798908AEAA16D79212E61D5C30364864FC1E09F1B20F296C", + "11\npk = F72BBEDF8059FA51188FE16E54B22F88A59ED8A92D72188F1B687222500DBE642699493DC08C97B6A13E640B51F2173CC8A417BE58077803627A7C9BB2A7B96E9596E3D96C74F03926387F34C448EAF5885EAB4A52945333FCA41DC4AC4CA83DB05A5A5D54789E02664EE7552CE5B4C3E16AF4299C775A4DC322AB9EE16D65A1298294ADEF821E94A5119E713175B69F03F941F7C56F565439F1E24F663987D65B00BF899495D5C2F178812EE73387A1627F98029344928E5C9100C50F87CB6F99B27E3EC7635C6B132E0B81229807E4D9903A2C5AB8985DDEF435FC8462F67A6C01D2188D731412262392ACB98FC49E4CBCA7ACF522A8D385DFF01FD02C4BE4B878BFF659AAC05A8FBBCC1565A53CC36AF88B41A1A3A18B04C728B1B66A7698BE968DB6F0BB00F1665088CDD4E3464E34261E72748705B5B7EA5E4C02289365A56739A4EE34A5DBD5509EC297C12A26ED1116929A8EB4793248BB78A1C21D981733EC874ECCD2C9B4BB530C4B6B10E136E764AF55059DA3DA93B79076AEA089818210BD076E2A8A49A5032405A857BAF295E7868BD82C958C90474BC4403E62B85201061B7BB6AC533E96870AD0D7B9F8E6A835E6C6CB4C8437489448A273E576B91AE8062E411593B4C541098185198E49C0790DB516ADBC2852A220725A5D50D47333AC058325B61325840634140BFB7AF0110B34FB408749998DF156668634B775965F05AEF99713D1F5BDFC5302337B1C041448F5B09AF8C5560076AE90EA3D2DBC39BCBC8E9AD26981563EC254A5F3D97220ECB6C5E76706BA933766766024839579868BA43B691496F6BC49199C2C35E35D6107AC61744DF910C021591D6DF53E4358487F26B4D4060958095FE464CA2703394D885625806106EA31173017F4F0594550BAB828993D55628ACA5955F61F4E4B316A8AA9971C65813949A16828B5792AD841772AA1B85314527EBC2E6D6351DEBA9429E43E7FB4991FCC98C67AA6F3287A6EB9485B8064FC585AB8C2AF6212441A763540F7AF3D8A8620C6CF40BA81A914CA28A8265248673D731432EC9C70E083BE49816098494E6994B385B509397198E2A50C76A8949C25ECC9849ED45D59C966444313D5F0419ABC929B8BA51A2A49589978A0E29C680C07B9CAB2BE0035A06C18D561B9B0E862A2957D5D41A0A63C4BE99C1D50F76CE57862B4F61CB42591F17AB1E85C1CA2DAC3F746940C001D64D81DD0889629D60727D5A5FD8AB7549B439D66A30316883DA6455DC023E6E702FB4742A82A101F60CD8F3A29D3D88C7E418C3D30803A541D6CE1AEDFA540371C846C672753A858B39B5880D69B8D525C6D57522BB6530CD7A4EDB7730CF720541454CAB59595E8A5D6302249300A6FC2180EB31BA43398A2A18ADCA92AF2A686C20454FA8A1864D73C0B91167B6B4730C2B67C55B425E92C663465B7F7A1D2163F7D7A8A08A962FA0149CF2BA8C4066CAE7C0A22A989DDEA22A5311EE5D895EEA9A5416739F810AD5AC901471A72AA78956B5183B194B26C361219401AEFDC49B6AB481BE838F85290A0D96060D68E5FC71358A924B95225070C6283B401296698310BCE2F1B7C8A531E84F625585429AD3394FC04BCD8A200834CBB9C9B9A8C83601FDCACA281A93F47C6E32C133414CE71F32E60FC52B4C07A1402C3932056FC3323EA2241A6484E6A074676996E5962867A61CDFFE8811764953004CC9C3697E78AB5D156CB952B1C53EC674781792AC831D6E20B5B29C3B064520FD5968BB351A401646AE3267522C234A8404B02529DA182B473051BEA4B971B170D03AA378877FA47BB60F1C1E3519110121BD58B17AE373BE2D21FC6D7AB2EE2085F4A194FA7717EC83F6C144E256807AA921C32B843AEDA0A5CF85773B77EFC579A677816CC998970911152D091F21733DD1C0FAB31808F2A3A64FA783EFC2E4A252B56548FB38BBA8625B9D4A8AA6A57786F1C9E1DC49DD7686399494277961E67E555CD6C7C4A630FDD897CF61C9C5779594974088A2B415806B520503EBB416481E87A062582A479B3E05B9413AA2C7AF59C5A9C5034722F43032F0D6428F8425F4CDA38876AC45BA2137FBC56209823B05ABBC00AA9E6A307BB164FE0413311F22BE44244AEE55268DA3135EA5996F7CC3F51856610CA68310DFC13A12E8459454D36096C3BA38E979A3D4C852032429BFE1E663E0C256C2E93\nsk = D809438C90AEA78B897A528534FB009D716DE8D513D32168A1537489E52255D00F49C424BF5B5DB0E15A3A9B9845ECCF287776F9700FF5BB7AB9F40FFEAB7F148A9633546846B672CDA9AB8A37C8F9711B76474E7975AB7E16675A8626F8648B605066A4FB4A5C255A0A39387B03BB7F618C9ED1B37E488D4B7175B593860F6C97D637A2D8761D3B933291B2CCFA6BACC4DCC4DDBCA804C7C55EDB9FC5ABB503036059DA4D2929447CAB1BB1CB746AB01293A2B2F2638BEB06030D476BCD2C335DD5226B7450F8B5B2B130332DC9210640C10DAA5FAAC16C1381C2A0C4AAE3174BE4FAA53CA9CBF29769084715D6F8C163A0185030B0C7C9621336A9875946FBB73BDA9774C07615711451F5594A44313878204C291AB7550AAF981409D4D7CBEE727BA689400DAB7382605F03873F38566421A354B59A3B48BC8F62A09519D932AF5800A9A0C6EFD5783BD93483A0AAAC7853C890C3BA18835D1A2E8F14BD0768CC7D0B951909825C988648F797F5711FBC654380E661BBC41CF89B088E1410F19669AEF65FD817564A4A4F40281B5E16A69BE2B503495A4B6B680A08A54FE0B80AE668041AA120C7A363E38AAF2156CEE293BFD4396DCC503646ACB74B9460142E4476807C058D72C9610E3CBB50A29ED7244419C2C258659B3A8A23E7E69A3047298378424B7A12DF3CCE34F1364732B292B105EEE6A487126815BC0013D66FB7099EFD4931E4301D570BCF2FACBA0B433B9A03147242C298052650416651DB690CE81C268381032B17C429A8E418B7E2BB63D30B570DA588CBC36DC3798C65F81EF05530B9043310E182E88BB3E58356DE408898738C9B3C457FACA42B9B81ED7C4118869D5153338EF4260006C6BE294B528C779BD6C8FFCB16E2AAB439D3032B8AC45216282346200CF1C812033A4F9667AF842481D807F92245BB322E04343971A656087CCA8CE9BD3117013AE816BA745888A4AD51A167A17482EE5B88B0BBA455A565B1D97BD3B9BEEAEAC0B4F2879A727028D4A1C61900D0770F15451A01964366D8A6AD1B5BC520392D43BCA270CCF9A72DF3D68B955C4BED0352B3F78151C4716512097BC92F2CF0A2560923D01358AB1B5F8B7BC687F5C110B04C6512372F119FB23BB852398A6F599F4D145A8AFABAF8AC8726ABAEE569C4579B494A01C67E232B93080D5DF1542DD59F21760A24747E98E26466280C04D1784D9B581B4CABCAC1C3DDE1CA8E00588E0732F76B99EC844032D99EF65C8A9EF4A661E78A47B0542B3129E850647862132C208CB9B3986EB5B510EA1854300EE966B0D3BC09922260FFC96B894A181A95A41F1BB3ACB2572475B3FE8933FE3902C965678B95512289CFBAC30A2B159B8F2B3535E40881D81C204CBA9080B9A7B23190965EB660754368955C0C7929E9447B92AC78E7867C1B4770596047FA820C03A11CAA3C2BA48120E29AD46C289920222C511C9E18343AB20067F926435C6D6B040955F9394601B805E38A751BC8A1853FC05857EAE658A8A7CAD729373E73253E7728FDCA89E347BBFC48A7BAFA48CB167111367F40C93BF71CCF208A891C383BA3B593F2663148D779ED82B23F4B6796209D51425E9168CB22224F39F069D4BBBB07A395D3633B71C81A238AA549B107530519119262FE4052CAB4215647C0C2CA573EFBCE84881B45279DBB0845DAC9CE5CA807666A76C2A18DC4A39A09234095D426AC769DC4D5584D9473705477C2373BCAEC3EB1B911E8F9CDC581C2CD330F0A2CA0F937204323447D2328591761E3C093B8DC35249118015CAFCF6BBB98626E43EB12F97B12A1C158CD473BBA2B3D2AEBA488859D64120A668A6BE0F30A6D76211C2576BE6A95654621EAB6541B65C956BC51E0117306873EDE094169A956E50C9F453834A6F5B4F4E7BF3D644284AB2057B653D40479CFB63679E2B50E6975DD839100E1888CC35DBC461A7BC248B5B756D10338CF68C4B8EA281493C9C7FB4D1504AC3478CE8CFA7100CD6411FC74BF054D6932A41D234EFF8BA54F72B4EBC52EF605CEE08358AD5BAB7A0966D8B36B2573387C587196A72BE1E47132D6B3BB92241E735B47ABA99D28797B6382ADB0263D6817DBBB71D46A17C43A63748A3F34873D19497C49515FA8B4AE5C588BDACC234F9A74AE67734D14B7F72BBEDF8059FA51188FE16E54B22F88A59ED8A92D72188F1B687222500DBE642699493DC08C97B6A13E640B51F2173CC8A417BE58077803627A7C9BB2A7B96E9596E3D96C74F03926387F34C448EAF5885EAB4A52945333FCA41DC4AC4CA83DB05A5A5D54789E02664EE7552CE5B4C3E16AF4299C775A4DC322AB9EE16D65A1298294ADEF821E94A5119E713175B69F03F941F7C56F565439F1E24F663987D65B00BF899495D5C2F178812EE73387A1627F98029344928E5C9100C50F87CB6F99B27E3EC7635C6B132E0B81229807E4D9903A2C5AB8985DDEF435FC8462F67A6C01D2188D731412262392ACB98FC49E4CBCA7ACF522A8D385DFF01FD02C4BE4B878BFF659AAC05A8FBBCC1565A53CC36AF88B41A1A3A18B04C728B1B66A7698BE968DB6F0BB00F1665088CDD4E3464E34261E72748705B5B7EA5E4C02289365A56739A4EE34A5DBD5509EC297C12A26ED1116929A8EB4793248BB78A1C21D981733EC874ECCD2C9B4BB530C4B6B10E136E764AF55059DA3DA93B79076AEA089818210BD076E2A8A49A5032405A857BAF295E7868BD82C958C90474BC4403E62B85201061B7BB6AC533E96870AD0D7B9F8E6A835E6C6CB4C8437489448A273E576B91AE8062E411593B4C541098185198E49C0790DB516ADBC2852A220725A5D50D47333AC058325B61325840634140BFB7AF0110B34FB408749998DF156668634B775965F05AEF99713D1F5BDFC5302337B1C041448F5B09AF8C5560076AE90EA3D2DBC39BCBC8E9AD26981563EC254A5F3D97220ECB6C5E76706BA933766766024839579868BA43B691496F6BC49199C2C35E35D6107AC61744DF910C021591D6DF53E4358487F26B4D4060958095FE464CA2703394D885625806106EA31173017F4F0594550BAB828993D55628ACA5955F61F4E4B316A8AA9971C65813949A16828B5792AD841772AA1B85314527EBC2E6D6351DEBA9429E43E7FB4991FCC98C67AA6F3287A6EB9485B8064FC585AB8C2AF6212441A763540F7AF3D8A8620C6CF40BA81A914CA28A8265248673D731432EC9C70E083BE49816098494E6994B385B509397198E2A50C76A8949C25ECC9849ED45D59C966444313D5F0419ABC929B8BA51A2A49589978A0E29C680C07B9CAB2BE0035A06C18D561B9B0E862A2957D5D41A0A63C4BE99C1D50F76CE57862B4F61CB42591F17AB1E85C1CA2DAC3F746940C001D64D81DD0889629D60727D5A5FD8AB7549B439D66A30316883DA6455DC023E6E702FB4742A82A101F60CD8F3A29D3D88C7E418C3D30803A541D6CE1AEDFA540371C846C672753A858B39B5880D69B8D525C6D57522BB6530CD7A4EDB7730CF720541454CAB59595E8A5D6302249300A6FC2180E", + "B31BA43398A2A18ADCA92AF2A686C20454FA8A1864D73C0B91167B6B4730C2B67C55B425E92C663465B7F7A1D2163F7D7A8A08A962FA0149CF2BA8C4066CAE7C0A22A989DDEA22A5311EE5D895EEA9A5416739F810AD5AC901471A72AA78956B5183B194B26C361219401AEFDC49B6AB481BE838F85290A0D96060D68E5FC71358A924B95225070C6283B401296698310BCE2F1B7C8A531E84F625585429AD3394FC04BCD8A200834CBB9C9B9A8C83601FDCACA281A93F47C6E32C133414CE71F32E60FC52B4C07A1402C3932056FC3323EA2241A6484E6A074676996E5962867A61CDFFE8811764953004CC9C3697E78AB5D156CB952B1C53EC674781792AC831D6E20B5B29C3B064520FD5968BB351A401646AE3267522C234A8404B02529DA182B473051BEA4B971B170D03AA378877FA47BB60F1C1E3519110121BD58B17AE373BE2D21FC6D7AB2EE2085F4A194FA7717EC83F6C144E256807AA921C32B843AEDA0A5CF85773B77EFC579A677816CC998970911152D091F21733DD1C0FAB31808F2A3A64FA783EFC2E4A252B56548FB38BBA8625B9D4A8AA6A57786F1C9E1DC49DD7686399494277961E67E555CD6C7C4A630FDD897CF61C9C5779594974088A2B415806B520503EBB416481E87A062582A479B3E05B9413AA2C7AF59C5A9C5034722F43032F0D6428F8425F4CDA38876AC45BA2137FBC56209823B05ABBC00AA9E6A307BB164FE0413311F22BE44244AEE55268DA3135EA5996F7CC3F51856610CA68310DFC13A12E8459454D36096C3BA38E979A3D4C852032429BFE1E663E0C256C2E9369FFBF2275F12C29CBB69F90A8C881721CE39B49DBBA550AB93A2C4C94BFC66911FE1EBBD66174798908AEAA16D79212E61D5C30364864FC1E09F1B20F296C11\nencap_coins = A0F6AA73A5D09451A39087FD84F6872CE2EF031E6C02468B433362311346FB42\nct = 58874A224F1EE2599F2AE6A760498DCA73B38DED6A8824397D9ACC9CC85936C880E4440EC43C1664188D196A715F72BDE942EE2CD2DA82ED4DEC8B792B24382650905DAC1D3B80FE17C99CBF4E1C5A26DAB50A7D301DFAEB1D2C25EA3C016222428D39C6910E989FDA11499859E941182E732002B2D36477A2BC83568306F723AC35AF942EDD92895DC7B7476FEEB2F8A57352034A1CD7067423C789F6ABCB672DFE92C8A7664DC0D92CABBE44B8E05B7E64600887D5CC47342F9B3A068D4458ECF5B5FFB973FC90754D80F541EEE0D7CF343F18BC70684A2A24BA233E563A59CE3A76D2F655B59FCF19B1F48B631611501B7A00BD9FC931B9BBF0BF7419E73AAD10C1628D2D86D830EFB99BE2A0ABD5B4677A62EF85AB8DBD832B7414AA4E01592423FB721E33D7797B3BD9E3C1CCDF5A43EAD7F43963CEDD6FBE7C6E4531C29BA51ABFF001450121E3788BB6FCFEABA42EFC31FC1B8BB971095E0DEE1044A60718383FAD2BFEC645DBE3315A39573063974E4AAB3FA9F60BDE3220912F2AAD6703839297697219397F0DA928D1BC845EBC5461600A9E2910EDA5826C37789122DEB22928F938A4AD6417316E0D9D56FCB0CA7007B7AFADEAAAA3A2C5C18A060EB95E3ACB8EE2392DC0E361F3C91719345E67A29D6F23CFA273CF63D63F033DFC2C3A07072D1CED7B35B9EEF773CC9596376278E28AB55D49D117470D8E1044B18A4E1BFD22489BA53D3F54277EA417B323BD1533C02278453510B393CA56FEDF9A89799FF7B5F8753C4C5720332D6FC34A3EA3B037E23799F0CDCBAD7CFA4AF0B5D1953B706E7C509FF8EC673C82B6C7402EAD9EDC761E3E3EF2686D8B2B246DCFDD889C4CEF15C35C49224E8E15F4E8C1C6C41FF071DF43F18D6B81548D3E797ECF3E693DC6BB9E2B57482EE340B8B05B85D7AF73E9110506824F67B5ADED29836CF810F39BB7851F65A2093ACD10FC03D968A088DB6F546646C5CE383A073A3C3813F0A5AC17A0F22288975C34598C1EB4E6608FC0BB8C129AC5171E0EF9ACAED54F4286D764EA9118DAAEFD1FC88A33D2969297E96B5ED6E51591FF0203AF78604C6B968C779F1AFB800B96B3820B6C72DFC4AAD1452E7CD747EEF68FADE7FB58E24BFB1A5127BA279C278EE48F625A3D9FDC87FBC6C9E8023D4EB344716D7466CC88B596A41FA0DDE155C1D7C88EA7D8AFFE83A6533AA1DA458266C7C4BF423D7C6B488609B7FC4CE44B884C787FCE63636AC97F7F86D7B95A4A0055A359131E666FBB09F1A629F4C586389361D7A76F5B794AEA3ED23FE4379B6AAA34AAA330B87CC88F6DD43F1F48ED5716E6C7082D0AC503C4CCE0A96239CD9C7F86C43A78A6D1C5F46FBA73B9A9EABEED41CBD1E9D55A22806CB8CDC7DE5363C56B286E929094BA2DCA277C2F2E4380C520F4E2089A408B19302AE111C0759382E4EF0F52CB4822668BA4301466ECE66C96A5F8095ECF38D21D9AE5E0BEB661198B20F371CD827D88271FD29C1925884B6B748D2FBE492DFADBF21DAF024A839144FE7FD78F79C9D350F1D3E193155C6FD1BC97C9B0174707D8DB01EA2AB844FDCACE69CEE48CF0608498B3973AE083EE9FD1713CB08A1628EDF4CFFFD381C311975662A016252C9D5A0A79E42CFA22FE2D07A71B75A1486EF759DADF1C18CF7D72340AEA4082641584F3646894289905E5D0B8EA7F244258A98FC0DFC4A82A2A0A58003322B89F86D4C895579A7BC896FF84959A9602D96085B320A16DB3A001E19C619CA7892429B8199E69257D4D83E6AF056AB816F187DF3E3AD5C03B0BE9F52B24258C90E333A374435481D9D625996361695DEFBD719C81F82F50E6ED6EDA4B10B791076C914F3B29BE9F5200805637A4DF757BC087AFB9596C50191DD6AB6E8CBA07297BBD7D513FBAFCE107FC3387790100D73B3E51AFA7CAA5BBDD1C6A5172D979EA56503C07F45519555DBEEF6D52CC28F2190F048092801913AC2E8BC1CAC4B6AFDCB376A76403F4A124528E3BE6031B4361A6B4FAA96D02CF816ED7131A2D1282FB47370E776A02DDDEA341EF6E9C8C9CD3D1B4DA2D128ABB0C65BA288CFBA03040F3283E85BFB057BC1259BB2371BD30E45D41610178B18BF99259E8A86A08750FA5756726A42A4B2193A3DFA7CACCF4F2FA2A488C3A1F594FB76E823D9824B964C86FDEE81D9368C18D1557D746ADB38DDC00CE370AE894C5F485\nss = 92A76C3F9B2CA0C7C40A6D941AC2CB6B6C129C401BF41634FCBA62FD8A252FAB\n\ncount = 58\nkeypair_coins = 6396B328B100E4C7F4BCAE69875EDEA1A1982421558C608C13C592BF7B5D0FEFBAE49824E1A023A302CDF665AEC15B60F7F77AB2A0FFFD5246D07AE975A0614E\npk = B48117F3AB234A4BC2E6B80B05F97F10A508B9AB08C0650FE66185F146B0EF5993629B3F7FB646DC248E0690B77557971F02BAFEF88A9864C28E885562EA7B54DC217C5521146122AEF78CB893A99C1C9621A6B51A43117016A7F2231F2380764DD81162A4433D6CA171062704294030D5A3BB9859A983C6B7F009F130444303932F141F506896FBEC852A8A6934E72AD8C038319C58ABEA4C73319DF541CE4086A90976356D001CF6479437B64DBB318F7DB813D5034840E23910EC67519C93E9648EBD1B70EDC3AC24C983ECC4003CF5B130EB251A6199814C715EB54FCC8BA9CD638A294BC2015C8CD7D28736226863A286DD4C0878345D3885CC4B2ACC0AE08A277CC23E397DEE84AD6EC2B4D73C520910B4EB4BA447071DE01311754060195A37EB701045103B59A94D59131FAA1B0A99741BF8B186F44C6F66F76695ECA6932647E408966F7AC4B0B8AF15F1C4FBE27A2037B6E7FB8F4C6738D1A3AA480A6DDED4871E89A9BE945113013D02197BA78B0F5F8008AC89B28AD829E5FC2516DBCED3192242E074CDE7C8E2B11ED1192B25DB395F09BFDCEC8B1A8671975B692C84714BA3049A636494996143212C54058DEB770BA709CEB7659868998D6560C8F4386629331F7FE77DC5F5390443865D1215833C78FF2A6E24E3655CE799F62C3B5F24529C051C28347C3C792FDF8700EC3B6559F8BF6646352D2013BCD704BC2B26C0B8A231ACAFC7675D0E8A0459770F11D04AA0FA79D6062178EA4BEED06057444C4B4A76712201937212DE48941F868FF3184A9A700756A59E1297A71C3912CDD40E6F883295D0A62904A4BE9350EDB4483EE6BD20201D253997D983CACC0A4730A4255824BA9E4B7CA7908CE84A2562BA6DB8E38B860671E2654F2C9B669EE9646D683E9F907733423D4B139BBDA51E785A86A97103D8E14D645064B6E02A3AC6BD56ABBAD5CB09F1968FD70A84018692C2866AF2B85EF8031B7693444CD1A9CA668BFFDC9889053980A88BBBE59C883ACAD0F00DD7BA954C487B585910A10C95F571C245F0B415261FE348714C288220EA84D8BC524E438F43F29A9D42A8BA8138DFCC264182AE8CD7927D0CD0F5DA7C2A321914E84F716836E53025E2CA75C8E34B04092752F1B77E9CB872E742AEE71DFE2C1ECE8C9FE82BCF56131EE0774076CBA525934E21CA0387E43D53624CAAACC88AF2A59E234E24E262A1201582437656F97CFAD4A087C622DE1563D2A16758875B03AB514291C7D3EBAC7E44304C32712AF58B079031993CA79E35146723BCBFFC96F16C6AB7975151961F1C3C3FFF9A9EC5940DA90A99BB2CCE3F376CC4D9A417FA715892411B649DEA698678936C35123E5EE8AD4CFB2A85868A94B3344426CA65636D0DBBB9B2448FAA1345E2F7B8DB9A2E14F49581F106AB14779278A6AAA303CEB5CA7C246B5AC13162A9273A9AC00C745FE6F01598575E5348670BB82D8CD04A11A7753FA7729C89196BE39CE7D543E24AB509684256E82825277DA24B84D8F95517B55C2A301864B9A13AB809CB0AC7FF3047E58B9091C5B55DD0C23CB1964D8B58DFB80AECA479EEF16F43EA66E185B6FC263E081458086585B8150B8239A531936E926BA339B79F18461851982DDB2A3069B235B8F15E8D74AED3571CB4A55067E385F3B53549FC4CF02079B8A41626A0AA52C5647CA634A37588402CA812F870ABB94E09C2BF31BBB865DBC2A3F197BD7C679EC436F21684D7773DE6CC551D370D75CC6217BC8DB75431159AA5308570B173C7E90B6B09C16267B0169677610F57580640A536301D6B6B7C58525B6F853A5AA73A05C766F631C0F1C82F6AE54EAC6659F2A37FC364B266CB0FBF8601DC5651DAA87D79FA1852D950F29441982A71BDBB74D260C6B75630E3E80643676C4D59960A445B86D5508DBA0C41F1516F44AA309A799CA626D4CA8B7FC5CD54C623ACC96F15841C85CB1265F5BA3F6754B178A281E8106A23B04744BA248C703F0279CFA055DC3C70B8C68E48DCC84CEA9D725B4BA5B628D9AC62899A460C157752366C00AAC16E281FFE1233E217202FBA0E2BB3CC5C170E1E373FDA503A1D75AF9E7A57CE113706D833AE662429E2774FDC686DEC4A6268093743B718D3CAFE703D2C27BF7B902DD1482FF611CEDF63BAC0847ECC0B25940FFDDF25214EE4DD4E1AEB851878E2493C05E2BD5A30B5B99D369454\nsk = BA45541CE7B3DE134E6B17030710BCCE09BCDBA837F23566DBF1928C99CFFCB674CAB9C41B3151FAA3078177B9126C7973E25687452DA075965BAA804276859B092D9D4095B5E3A27943776DA65262511F62A3AA875B258C7929B502AD6CBA00E3B38011C943310BB5CB24791A71BC5A2796D6197192D9594936089D88BFE976058CA16C152193838A3D7306B312F8160DF15288F90635", + "14A403ACB76BE298F5C92D65A90A0BCB28A4F438EA447A9C881808A18A2F5C3C1B876B3AE94ED28478FDDC1E98A64FD797A0931CC4A18777E5D481D9E92C0CF2B5F5A58635B368CBC8C25DC733550774C0861795939B74E83A23757C212927805663DE14A0FA00CF10F51850DBB4CDD7CAABD5C09B2818CC0A09A58169E3827969518E8FC7BC8325B45656861A848347A358EF1155E5D43F7910A738A132C8892977075C9A19C1EB6399F2E7BF1DBAB593A907BDA509EF5B0DE35A222FC951A0829A838591A0441294C35CA0B86BE6FC02E1EA1B7D4004E5BCBCAA2A280EF37067D72790BB5D59587E050272DDF8B117286FE80C1BBF078E6D259A9B53BD6FF1B43A86B24ADB27BBFA3546C179B8F295726AB768BC7FC8DC2A62715030D93581165F1E4A03D42374A31039D55741C9C49A1C807468CC826F0380B90C9C3F319CF1F73811D674B05C147BB2613BA56365EA04872B9244B236B0D480DD0B47B7797A23286269F97450E13791B205C8AA3310B72F3423B263D93CA320AE1FF04FE6E3BB703A6C4FC17DCFB6341AEB485576B53D1CAB71D9049DCC68CF86008BDB6152994E70152F96C8AE4A0819102BA5077B26086B2DC6B04B324A31AECCB372CC18976BB9DA42C8EBA89640149ACC544511546C5DD293C3173EF28CA92B85B86188BC6FC09E2725307A2C3802C6086F922CDDC62B5989C5A6846496D2BCBF7775A4B3737EE6C6B69CC3373C96E79675CBC781146C7A78824AAE4322E1A69DBF64336EFC3348E414ECAB04010B9F7399310253679B48AF3C23961BF345B35172C1D472F9A31274C730373A29154A581631A0916A21259A46EFA387B36CC9272B5284085709E46F07BABFCC835959D841B3647F51147A013987DD9556111435124101E5D42FF0848BFE2169A49485C094226EC6994CB50BA9F6476FB2A39522A08145B987593F2FE67A2B2CCB036C4E6540145758C6745A389955CE9744CB8030BD85A838A5904198B318A4D265EEA61C70E5A34156BA00A53F05C9BE7F1AC214F6A75DC8154EECCEC7CA6218B34B8E063231C450EA3A8B48F7C97D9C58FED709C350A28A34873CE76F0FC7A4237AAEA0804E2D3874D726AEC41C3AC8E02706DA459C01736B7A5E0936B3ABCCBEBF146350EA2A246C225BA897473817F28C8D6BBB55FE98A48DE682A91770EDB1BDB190A0EFD677A7FC29FC62690668924CB5887F4078179AADE85C0DC8E3529862B2760B187B7778A56C6B026769E339ACA5F8C948801FDDC4ACC3BCC7FF548DD9FC12CD7A394C24A7CBE18D3D22AE3B48BEB295905B217AF384393705107F33B02547822B0A2CB1B57B6FC637E071C0FDBA2F87F010D0C81C42DB454F5C7BE69AC0069C33330BC40532248FD0B90A28908F7471FBCC543FA944038186979C1F5CD147B9F69218509C41C41873E0718D35B8C6C775F1F069BD22339D3C440F6CAF9FE91E3D6B97D2A546E09AB4F6CBC2F5C1481EECA81C3A77209425CCB6C6427AB580B80350B468D9C0795441555B3BCF75343ED3966F69CA80BC850663776AD8E36FAD9023BAF84BFC59668E6567FFB6698FD0B0CF9CBE87462E35B9694303A90B2673A62B85C74664D5055CFEE3AD39FA83206024299745CB7C683479399E948AC2254117F491FFB3311D69455BB925E7426D24B697ED44995EE73D9632459FD37FACD4CC1859B0C6054CF1FC5C02E1AE82C2CF2ED21EA2322E315A196E825C27B2CA1CD0B93B4B9CE8E4ABA0D248460814F5A734346A0577D55E0B680F01FAB8C9A859385733DB6342DBC16DC4CA42777A7DABEAA136F149666239CEE53880AC4267A727920A9CA43C93A3E301A9859E01ABCEA7F8B2BFAA11CD3728C9C0BA4F7C7C89A466FFA3C5F2330A5AE87265A009B33C74D61562CA0132C55B8ABE791B2E59ADE002808EE2BB5EBABEBC314E2D66B66AD566EF98623B721AB48117F3AB234A4BC2E6B80B05F97F10A508B9AB08C0650FE66185F146B0EF5993629B3F7FB646DC248E0690B77557971F02BAFEF88A9864C28E885562EA7B54DC217C5521146122AEF78CB893A99C1C9621A6B51A43117016A7F2231F2380764DD81162A4433D6CA171062704294030D5A3BB9859A983C6B7F009F130444303932F141F506896FBEC852A8A6934E72AD8C038319C58ABEA4C73319DF541CE4086A90976356D001CF6479437B64DBB318F7DB813D5034840E23910EC67519C93E9648EBD1B70EDC3AC24C983ECC4003CF5B130EB251A6199814C715EB54FCC8BA9CD638A294BC2015C8CD7D28736226863A286DD4C0878345D3885CC4B2ACC0AE08A277CC23E397DEE84AD6EC2B4D73C520910B4EB4BA447071DE01311754060195A37EB701045103B59A94D59131FAA1B0A99741BF8B186F44C6F66F76695ECA6932647E408966F7AC4B0B8AF15F1C4FBE27A2037B6E7FB8F4C6738D1A3AA480A6DDED4871E89A9BE945113013D02197BA78B0F5F8008AC89B28AD829E5FC2516DBCED3192242E074CDE7C8E2B11ED1192B25DB395F09BFDCEC8B1A8671975B692C84714BA3049A636494996143212C54058DEB770BA709CEB7659868998D6560C8F4386629331F7FE77DC5F5390443865D1215833C78FF2A6E24E3655CE799F62C3B5F24529C051C28347C3C792FDF8700EC3B6559F8BF6646352D2013BCD704BC2B26C0B8A231ACAFC7675D0E8A0459770F11D04AA0FA79D6062178EA4BEED06057444C4B4A76712201937212DE48941F868FF3184A9A700756A59E1297A71C3912CDD40E6F883295D0A62904A4BE9350EDB4483EE6BD20201D253997D983CACC0A4730A4255824BA9E4B7CA7908CE84A2562BA6DB8E38B860671E2654F2C9B669EE9646D683E9F907733423D4B139BBDA51E785A86A97103D8E14D645064B6E02A3AC6BD56ABBAD5CB09F1968FD70A84018692C2866AF2B85EF8031B7693444CD1A9CA668BFFDC9889053980A88BBBE59C883ACAD0F00DD7BA954C487B585910A10C95F571C245F0B415261FE348714C288220EA84D8BC524E438F43F29A9D42A8BA8138DFCC264182AE8CD7927D0CD0F5DA7C2A321914E84F716836E53025E2CA75C8E34B04092752F1B77E9CB872E742AEE71DFE2C1ECE8C9FE82BCF56131EE0774076CBA525934E21CA0387E43D53624CAAACC88AF2A59E234E24E262A1201582437656F97CFAD4A087C622DE1563D2A16758875B03AB514291C7D3EBAC7E44304C32712AF58B079031993CA79E35146723BCBFFC96F16C6AB7975151961F1C3C3FFF9A9EC5940DA90A99BB2CCE3F376CC4D9A417FA715892411B649DEA698678936C35123E5EE8AD4CFB2A85868A94B3344426CA65636D0DBBB9B2448FAA1345E2F7B8DB9A2E14F49581F106AB14779278A6AAA303CEB5CA7C246B5AC13162A9273A9AC00C745FE6F01598575E5348670BB82D8CD04A11A7753FA7729C89196BE39CE7D543E24AB509684256E82825277DA24B84D8F95517B55C2A301864B9A13AB809CB0AC7FF3047E58B9091C5B55DD0C23CB1964D8B58DFB80AECA479EEF16F43EA66E185B6FC263E081458086585B8150B8239A531936E926BA339B79F18461851982DDB2A3069B235B8F15E8D74AED3571CB4A55067E385F3B53549FC4CF02079B8A41626A0AA52C5647CA634A37588402CA812F870ABB94E09C2BF31BBB865DBC2A3F197BD7C679EC436F21684D7773DE6CC551D370D75CC6217BC8DB75431159AA5308570B173C7E90B6B09C16267B0169677610F57580640A536301D6B6B7C58525B6F853A5AA73A05C766F631C0F1C82F6AE54EAC6659F2A37FC364B266CB0FBF8601DC5651DAA87D79FA1852D950F29441982A71BDBB74D260C6B75630E3E80643676C4D59960A445B86D5508DBA0C41F1516F44AA309A799CA626D4CA8B7FC5CD54C623ACC96F15841C85CB1265F5BA3F6754B178A281E8106A23B04744BA248C703F0279CFA055DC3C70B8C68E48DCC84CEA9D725B4BA5B628D9AC62899A460C157752366C00AAC16E281FFE1233E217202FBA0E2BB3CC5C170E1E373FDA503A1D75AF9E7A57CE113706D833AE662429E2774FDC686DEC4A6268093743B718D3CAFE703D2C27BF7B902DD1482FF611CEDF63BAC0847ECC0B25940FFDDF25214EE4DD4E1AEB851878E2493C05E2BD5A30B5B99D36945441BBD3F5C241A6D65B510DEE6662E2A8F35757B0403DCD375E7A15991A7873C2BAE49824E1A023A302CDF665AEC15B60F7F77AB2A0FFFD5246D07AE975A0614E\nencap_coins = 2905F02CE2C10E4AE7BB7F862D1D377F8DF3A1280481E2579D49191D1EE6EF6D\nct = 57EBD8C4C8FEE6F4F42D8B41D4C8D0767C58327915B9E61EA42F3B7DAA18811E2CBC8115347CB7ADA2F84B2E9B40B584043FD6DCDFB1FC232DEDD4EF6F63E030A329969EC12974943E9185B49CE48878BC18C1111F9A9E2BBEED2B8E2F54F3874B23D7D3F55F322AE1402B1BB45FE64390789A69CC15B6BCB4BF2949567AD8DB52F954DBD365C3F4C77C65E0C63E1D42F0F8CB1CA43AC0B51533D3284DE846D09C60B3DD75074B5F8F96283E57D098CCB9BBC58BCAEA4FFF62F146EB56E1666B9BD4A504C2C92FC4A430BE80C5681DEA442E1F7DF35565EB8CECF760BEED95AFC1117AFAE3272E99A8C8ABB795024EF11D43949DFA7DB17677569CAE0F82A0B51E1205586DB6239111005C0E5AF0B2D6DB4A27D26C6618E4B014BADA1587C34AF13C0EC2CD6C624C6A49644F8CB594A5AA305F19F184073C5C9C57700D86B72392235C7B5FCBAA3515F6339B855483F8403356D3610FB76B2A6B87893111DD8EAC0AA8DFE39912DB0DF902CDDDCE28138A2E86D081B30F10FF856131C5838309759720B19F79A90E60F91992ECB7BB18BF94E16136A212E30A2E0FF23EC7CE105B0AB3928FA082AA05940A111AA03CC78A06AEDAFA4046FFB30C2989778521D9826CBFB7571F62A256559D519A700E2E70C2139927FA2240F54E307C30D76A7C4ABC97C3BC4FC873B2211D7A98F409A26B575D893DE6E7E884F900553CD0B09605A79F3FFEB7F10BE8F20F9CA16159651E9B4D284B334AC492F75BA259C59DA3BB1F521320D4E5189D8F4178BCFCF61183BDF142371A84D3A9A7322609DC14E99BC764938870A76D7BBFF2B3AC86C5220D7E9B7937B4B3728901EB0E35DA131B658A4E8F83E05782442080CB45E7C80B8012CB056BCDE83287935B05450B9DC1163B1DBFE73AB2AE3C4407178A32FECA6F5F11E02E2BC22ED36C44E7F6AB2996A5D88B765AAA0CAE96D4091D34BB15AE43FE62B9A2B9A68B7722C180D71A775B6D05C7D37A59F1B27AF8EAAF141ACB75E0EB07456DB015B4494ED1F37B4AD443E3C146F38CA981BCF0C36251391A283FCCA80626D66B4B384B659FFF7E93A3A01833340BE5016A0B12B865A84F260D455BC708A4F0B21DC15AD3F9FBFBB65C1D0C2A540C0E3D4B232F56F25E51585F81E75734514C66671963884C8D23A2C017E72AE31D250BCFBB33416A2E26D7B1919780DAAF61A0DE1818C1A5117D461538245252A10669F6B2EDF59D5BA00AEEDCA03D767FAF004CD401442F72E4DAD1929923920AFAD96059D62A99768978E5D4167F5896803047970E16F9DE9104BBC68485DDABEAA85C3E61BA1F036B838EC1A97B05C3DBC7FBA100EB592FD2AC1F9E60FC0DA82304FBF03C00EEB7BD7871526F8A1F245EB8E0BD5D440C0BAC72BE3D7E46C2849BE903EEB333CD8185D738914824521FD9CC9A4E19F0FE779514AAEAA36E1FDD146EC88255E6A85A1", + "8E866B3E87D133D10EAC553792BB7511A612904B8E9B92DA57DAECFE72BE82C57D13D28E890610301B2DE53C254AF93B3E258B1E83A8B10E06D69B476D41294EAFB787481A5379EBB120A5E866D18BE377746307DB60433A77B19120A2E47A57E4382175FA393FC15645D75E20CB8F4CA4490562556AF10A66D0AE25BB804CF3146A9F9559902319F76924D0A9207CECEF8592CCFBBDD1F5496058486B93F3787C202AA871CA0C1501B7F5F0A9EB59E65C1766F38D87DF01CDC6EF73AD42920A6A1959B939501EDAA1310CE46DAD3A9062A465207D519602D1B7B25BC624B7088508413A5A1FEAF1CCAF401653BDA45D0E9D8FFEBA73B9C1EEA2157A28BCAA7050276E3E7D4CA50C017C0A0EAC41A9038BE5CE1CADFB4408D95E5C77EF521D6A85E178EB789CA3F2B714BF757558092D9857129DAC448603AD54493C8FFF80CA5BCCDBF29602D223863DD09E10933A68370C927DF46F33FAA9B5C418F368288411952E8B49D7870BE49089750BC9CC3532FA530170D62BF0C24EF7D01E8F70EAD4B335C8079690476FAD4EB3EE5D56F5A4F47A9B288EB16E947ABB322BF72502562D48CE0876F090F41521681C5870B8DDED153A7A80C241F7E6D425384D1F4C73ED935B3B0813F9F67B229003401CD98875C6B5DDA1987E3C20D695A1C83685AB7EDCCC7B987022B9992A5B1D783E9525A6BFB5D9147850763D8B73246C42EF119C43B16277BA77CD596BD95DD165E9E5AAE23\nss = BB139C1AEFEED876F8C9748D5A573ACAE7F23B471BBCCB5104F10040666E0CF3\n\ncount = 59\nkeypair_coins = A453BCACDD2B0D4646009E5ED451C3C45F08FB827EF733DB3C517A9DC1AF93E6E39CC6C99EE6FD8653D15505A6C2A713D41B43FA521CFB214E8D1B38440F4640\npk = 6DACCB26429B4E18C04591CEF2A49A51F34AA224A4F7E0BDBB1950B5B9BD633A1CEDA3C94DA93CFCE38AA962A45A135A45105C6E2548DB96698D581F42EBBB7C4AAC8DA6805024BBB2B0C45806015DB249B4E10F92536495670BBEB0402D0C1BE9B01E47A2A77D29CF03647FAC3730878C7BDDB724F7D8539E31274E20334949A92063634D6C1C0B5A1999460E25259FA91737D2B9A6457588D41041D8D1786EF80EC2951CD0C84BDC57108F02A7AA5297174C7BE5A6157693C07A38242F85B79D16260AB37786E67D7D9A77C953B81A2A4B9E01697BF7A714FCA3D9904795671D4B99B5EE83765A532624B4004FC6044C1840A4D07D45240251D32FBF922EC329542471037DAC809F477FB6BA5B198683443C683CC8494BD1B7BBAC7DDFD39F45A10C77433B868C981B7AAFBBB2C8F2BC8A6E3134EED7BDDD54B9FD1A38DDA8A2AD60B4111B10571928C7B55721C527150668A1DA383B8606F4E1575CE164DCC911AF678A33973C807A159BDC12811B003D68B8EDCB12DE1614707B555A853290870B5E5B48D7774A9D69A116D13808961164CC0CC38325F49C463E41C043F120AF24239C36ABB899A3D37857DB6548BAC59B40E7B233DBAF859AB4554A2EDE21CAD465BE2E3001FC9C955A3B6DCA4612D0763299AA8334B28830E996FFB13F7195598C55A704EC9539BCB9A44704C77CC1E9C2A7CD371D46C02A409215333ACB076BCB2355ACB6C5BEC8CB2640C86882342AE3938059A99AE7A281D2B6ADE8073D1A90459C04A5DB7547B681B007AB996E1A7FD6A030C7B34332854E036B8E99D0369BDAA123A86AB931776E437271A2219AF7A4C7B8B78AAC0365C78D1DE15FAE8C4C397C7B6EAA4D02B06F8DA7145FAB7948B786A78639A4E80299E3C12E5B3847F508C5189D0C735F5841A7F5B34FC7E194F4F20F348475C1D4A3F4E8111C9CC6EB06214C43838B41CCBB6524DA5715E5A2644BFABA69B0CBB54935DB0379B52668E2B8B84EF5600EF76686BB0651F7C43C1C120E20AF9DE18AADA655D48B375B4A23D21C51E1C3CE9E0131B61C345112B5CA302CA9E183443495DA4B309AC898E02C4F70FC7359A57D25778457E70BCA8A1C7B444208B00E24DA7E0FF89C19190675AB24B605295BA862EB732E4A36640B28BFF1CBCDCFA8CBE9F9ADD36B71B3268C116B3E08C172467C80EA05262831660BF35A7D945A8264B228793EF0284B724480B3B54451A7BD9505B6225B1FEE03CFDB599BB024416CA980C8181FAF51B421B86F92147E12D04CAF335A87FA1DBDB2B0E66C0795CB5F65130ADF3BC8EE3BCDFF9223CD74CA9C4A8544208B31CBC7A05B21392B0EE03B9ABCCA42CEF8B5448482D8D8013AC221AE01436CAB30E1C126F6F80AF46BAEB4A828F54735B5513C8F11228EC2AF7D854D84E3688799CE24C8454E326FD0F52FAE773CA5D408568551DE89CB85265115092B960AB9792AB8612C012231921B6C697BAC6BF53174AC50A6EA2AB3F48B532AF51A6F6939D1BA14B694C149B5503F3320F438B731A59B4C22810D1196ED4A90EEF2968D1CCD92327B37866ABAC1C24CF0C2B2228D0E41A3A1EC6A4227A36218B6437B5023E22D43F04B712C2C6665BD2DEB160AA95199146618CC1EBEFCA7691248ACB7C549CB66CDD59F5C4C0470205791C742FCAAB677F966F746721F58846D1AB2FBC11B6F2978DDD282730402DEB863CA1A7E224CCCAA2B34F788987520C9DA9C0C328CAD6DFB46A920BF8CE22F4D265426CBAFB31023B7E748252561CD678BB10218D4E5CDA45488C4B2C1B2CC73C5C163DA9467F02B5CEB4A5ECD136A2B518470719114D1C310A688E46BB80DC38DCA1A092D36A3EDD7C4C6D37074692E266A0F5FB0501E9791F3F90CDD93386C05C93896B950C7681F0ABF8A044AB1227B68210C169B6057528315CA5FAB7AB2C9DC7743D8943C997801A01EB2D9A195D2C6A8710FEFAC2E60702B68523667650E6616CC0B7B5BC50809D1D45E1673BE8DC435B7355B0A26728205AE8713BE0372CCA8169521E574FBD18C37EA3CB6F02AA5C82A5834819254077E1670047997863A5EC7692BC26CACFD8C346290564FB27A50816F2D592277F56167027FDF376A2EA97BE79466A3B86B01286FE54444BBC4C4F32460B2936196E92ED698157064CC073E0F3130DACA54C038DC1085402160513337AF2B6DD900B04DC3BDFCC90BDB\nsk = 2D80A415A1B29961459E396204E5B5E65540A2A9AE9CD52D867A9E20952FC7565B66151653448353697B09723B17E3B1EF375A3E260A5869B579883FD1EB3A06DA5C11E493F4CC9D18381856FB2C36223E7214AD78A178B2153DCDE882451776478A4E06B392CE9B9D0310A5A134B42C37312A8932151571D85CB69D9333FF8685569568A0FC4568682EC2F5506F59742601C46DB34EFB9665B5815574518FF677BE1C0991B644B5931B112220C6EEE10C37C19316156BCBF354FB661635E42F6B26B07F9552D7B1A65D51C7EB6A132034BD755674DFC14345AA72ACBB85D4724B2BA14925421E570543AE904F9BC4016BC0389FB9922CB12A393A24DF219290DC506E501003C0AE8CBBC685A25A91147265207F93F190B12BAEBE7CC7EDEC476553762EA45E48694DDD172B6787B7D9719E89D77563C9C2CCB77CAEB23D7AA9181B82B6CBA09AEF1851235C7986194C8322280B4192B94262FC79CEACE4B894C86814D4929BD773E6A73FB0C7C36C67391A314555674CF415292055BB39319DCAA7B07230204C068028B3AE7A7223DF112032D60EDD1B6B52EA1ED13B86231A1EFB2969A691CEF0D219835A44E907BB0CD2CE6DA1442AF1460F2AB882959E0862BCCFCC6E3FC2BDB5EB673B218D6E9C5DC6461D8796945B614C81A68F9CF381D256BC1E63285141814077AF5F54C2C6B487DD29CDB1D2CE08F09122D09632AB823CB00D86A57F8933743F347C203894D0043F5692A6E12283ABFA1B98B39C6D638132EA4B94644E89A0ADC35816BE01A408F752B3215029D7661B554BD39ABAA906AF32F877CD4B28BCC217825AC897D06A4C233462FBA602A81321DB93279A19BF44131B86035DB3C4CA911F1FA30146F9BE0333650C3C24A5C85BF5E252413853DEFB040F8A16F4ABB9E18CB3D496A69B356D8206C106864C7464A7A7EC5E998B3FD5B18DF1D947E171272EC5AA1137CCBE50AE73ECC106250C0392A41A73A4861ACEA19257BE33CEF406B7EAC1796F605A709A4BC06BBE40867966E830E8AAC19AF626A4642A8447276F09CFBA6486564079E1AA38D7E179D9634E3398B743A1812F02818E979B4434A4516C2C77672600D5B7D3BB6D7E3253189C3694120DBE2519C62C80558AC1D522855682962DF611FEBC9F33FA27A0787501A42802863B5CDCC6AA81B964CC2C9B8081B63750A6358DB5566A0D3229D2989E98199855A2448F54688ED2487B816F5CD651206350FBBB5CDD995A9DB37B089CAA57AB0DEDDC9392EA1C0F99031A42C350CAB7B6F54C1E4ACDD0E28D7975A188502FEF055FEB5889BF87929B6006562626335B05EDFC544F10CBD927AB3C4C9E806700349B9A0099801D5948CFF3BF0977A9691A25AC880D593A36D1E5436EAB078BD9A6BF25BC3D6B5BDFA02AAB06AB5842C440E40D430AAD9311015A8767417B233FA8CFC64914533031AB39B845A3C50CE00BA0F1A586053768EA48293044F3A831B456320600404761C7E826A0B111AE37DB49B31BB3E9389BD3E354F08879906996DF2036AC49B9C773AF5FEC5375519AE7B8C61CE475AC544D13A5B421B8A686251B6D1C64F8A353406248B0430C8A3A308B600D0C9506D6509AAC9A46093564EAA957B62B0B18078325AB1E847521DCA74F5F212B013AB90693C3725729A4888C50533A27A83A436A627A3C1E0BE10E35D1900791CC598413A818BC2F58687A502FC5F747AD365DD3348B3F96A9072C521923A513540AC402AABD74A5B364912EC36260235162492EBC96BCE5C8A718E124C0669DA4D0080117B07680CCFDC79EF10229CB8388460BBE664255513C71BC2243A2CC2A1122218581CC540514AD54365696245CD98ECD445653766847A03794959F15CCCED05863E4656BF2571CE6445E9393C95BA11E5DE102C358517F7672C0F26A34D8C7BBBA5CE9ABAD9C8B4A6E9788B82BBD399838E4E138C7C1619CA8988A05CAACF14A6BE164C569444D49911525398D0A460D257E61E6B8E0D2614AA0B55AC0435F34493C298AD719A9900B94ABC08ACBA78F42195637A464FC180013BB081BD7A4A8F66909557E85784780C589AECA24402125B661A068F81D046716E5B5072D754A6878004AC9423092A3E051521CAABE98E955C093AD95D74157918960157DD5383702F3ADFC65436DACCB26429B4E18C04591CEF2A49A51F34AA224A4F7E0BDBB1950B5B9BD633A1CEDA3C94DA93CFCE38AA962A45A135A45105C6E2548DB96698D581F42EBBB7C4AAC8DA6805024BBB2B0C45806015DB249B4E10F92536495670BBEB0402D0C1BE9B01E47A2A77D29CF03647FAC3730878C7BDDB724F7D8539E31274E20334949A92063634D6C1C0B5A1999460E25259FA91737D2B9A6457588D41041D8D1786EF80EC2951CD0C84BDC57108F02A7AA5297174C7BE5A6157693C07A38242F85B79D16260AB37786E67D7D9A77C953B81A2A4B9E01697BF7A714FCA3D9904795671D4B99B5EE83765A532624B4004FC6044C1840A4D07D45240251D32FBF922EC329542471037DAC809F477FB6BA5B198683443C683CC8494BD1B7BBAC7DDFD39F45A10C77433B868C981B7AAFBBB2C8F2BC8A6E3134EED7BDDD54B9FD1A38DDA8A2AD60B4111B10571928C7B55721C527150668A1DA", + "383B8606F4E1575CE164DCC911AF678A33973C807A159BDC12811B003D68B8EDCB12DE1614707B555A853290870B5E5B48D7774A9D69A116D13808961164CC0CC38325F49C463E41C043F120AF24239C36ABB899A3D37857DB6548BAC59B40E7B233DBAF859AB4554A2EDE21CAD465BE2E3001FC9C955A3B6DCA4612D0763299AA8334B28830E996FFB13F7195598C55A704EC9539BCB9A44704C77CC1E9C2A7CD371D46C02A409215333ACB076BCB2355ACB6C5BEC8CB2640C86882342AE3938059A99AE7A281D2B6ADE8073D1A90459C04A5DB7547B681B007AB996E1A7FD6A030C7B34332854E036B8E99D0369BDAA123A86AB931776E437271A2219AF7A4C7B8B78AAC0365C78D1DE15FAE8C4C397C7B6EAA4D02B06F8DA7145FAB7948B786A78639A4E80299E3C12E5B3847F508C5189D0C735F5841A7F5B34FC7E194F4F20F348475C1D4A3F4E8111C9CC6EB06214C43838B41CCBB6524DA5715E5A2644BFABA69B0CBB54935DB0379B52668E2B8B84EF5600EF76686BB0651F7C43C1C120E20AF9DE18AADA655D48B375B4A23D21C51E1C3CE9E0131B61C345112B5CA302CA9E183443495DA4B309AC898E02C4F70FC7359A57D25778457E70BCA8A1C7B444208B00E24DA7E0FF89C19190675AB24B605295BA862EB732E4A36640B28BFF1CBCDCFA8CBE9F9ADD36B71B3268C116B3E08C172467C80EA05262831660BF35A7D945A8264B228793EF0284B724480B3B54451A7BD9505B6225B1FEE03CFDB599BB024416CA980C8181FAF51B421B86F92147E12D04CAF335A87FA1DBDB2B0E66C0795CB5F65130ADF3BC8EE3BCDFF9223CD74CA9C4A8544208B31CBC7A05B21392B0EE03B9ABCCA42CEF8B5448482D8D8013AC221AE01436CAB30E1C126F6F80AF46BAEB4A828F54735B5513C8F11228EC2AF7D854D84E3688799CE24C8454E326FD0F52FAE773CA5D408568551DE89CB85265115092B960AB9792AB8612C012231921B6C697BAC6BF53174AC50A6EA2AB3F48B532AF51A6F6939D1BA14B694C149B5503F3320F438B731A59B4C22810D1196ED4A90EEF2968D1CCD92327B37866ABAC1C24CF0C2B2228D0E41A3A1EC6A4227A36218B6437B5023E22D43F04B712C2C6665BD2DEB160AA95199146618CC1EBEFCA7691248ACB7C549CB66CDD59F5C4C0470205791C742FCAAB677F966F746721F58846D1AB2FBC11B6F2978DDD282730402DEB863CA1A7E224CCCAA2B34F788987520C9DA9C0C328CAD6DFB46A920BF8CE22F4D265426CBAFB31023B7E748252561CD678BB10218D4E5CDA45488C4B2C1B2CC73C5C163DA9467F02B5CEB4A5ECD136A2B518470719114D1C310A688E46BB80DC38DCA1A092D36A3EDD7C4C6D37074692E266A0F5FB0501E9791F3F90CDD93386C05C93896B950C7681F0ABF8A044AB1227B68210C169B6057528315CA5FAB7AB2C9DC7743D8943C997801A01EB2D9A195D2C6A8710FEFAC2E60702B68523667650E6616CC0B7B5BC50809D1D45E1673BE8DC435B7355B0A26728205AE8713BE0372CCA8169521E574FBD18C37EA3CB6F02AA5C82A5834819254077E1670047997863A5EC7692BC26CACFD8C346290564FB27A50816F2D592277F56167027FDF376A2EA97BE79466A3B86B01286FE54444BBC4C4F32460B2936196E92ED698157064CC073E0F3130DACA54C038DC1085402160513337AF2B6DD900B04DC3BDFCC90BDB290261FF6A1D2FABC75FEAB002D16CDC44BDBDD0967C728EBEF0E9814C60B5E5E39CC6C99EE6FD8653D15505A6C2A713D41B43FA521CFB214E8D1B38440F4640\nencap_coins = CA41A891E8B3CF62F7CF5E356FA7705DCF26478B2CF2561A0DE208DC06C02059\nct = CE81A02EAAA57AE2DD409010836084997A50D5EBA87845C51926137BFF88B66BCC5CB918827F7612E8F084E96C914B92580B91F70EEA04C3BB9A5EA999440648620A5B0EAA4B295A532131C9C441055844D047336ED3FF87869EF3C760F330B231DDD41D58EEA12F2F185A6C55AF223A8C0F022D5B391AB95A1D9DF3728B8733FFD54864B1072CB13DADD13C0B8FD23AB360062BD355D01AEE2B1329D43988654D88E971A8C0F2A95973EA7AE292EFF44A00323D6460FF1A13026EFF41689D6E6E87025398DAFB147D88A8C0D4E941CAA3AB6ACBA54C189F6C135E60A713DE6B3CE5C3C9814E64DFDF5E41631EEB39AF3B4E852C826A561AFA619B79B7D9453076EF743A053248405EBBBCD9417A7A56F4D89EE0B976F9A73B5911A62DCA4D1421451EC3FFA7685B54AFF5E9DD485E40F60CB6A40F9386DEC5151E319A0053F7F22155B35E53B0425557843D3DFC86C179B51E14956177360BBC6284BD4C91FC5852D997DC8F6346EBEB3D875938F4B4934EE00DF558227C4450E41867D991CCEBF202A4893334B06B59501E8604F4279F24885443F03E97F124EE7869AEF747462618CAF2876D305BD9A587E4EA919F62AA3167271DFCD00CCDE883759A4CF42230026D0CAACCA0D0DD0C2F9FE1F848B4F65D9C4D94C9A80D55D99B791DBEE01A31422961B87D27F2305BA7E43FCA4B1FDAA195B4657766E36F0880F423BAF1613DFE7FED3F00A84CCA15D265E3689329D9847C37D76AA09F3B0A1564B0754D87C56F25B617C77CBB3A22DC2F0822BCF1BDA2AEC8957A30E97587CC136B81D533E566FE507FD8211DD491AC1AC131CA4E0204888A4064F1AADA554F4E4BFFB72385C527FC643C97C9E06C879E74A361EF7E9DFD0C3FD454E674D934F14130A2D2A17F18DEEF2F7A921226C3E85E322979620A13380C7DCD9E51B2A62C73F8606A95AB8F00C12E7A3AABE8AB14B565477CE40E02E329AEC955579A63C07E2AB26949F97B26DA553A7F3CB5F0779405944307302A5C3C10C10DE2F8258B3ECDC48B42D32D99DA3658ACA38694E23925640E85FBC1B7410779EC8F1C55AC44748E8F00CD7BB92E56862A484E1932C0D4C071DC6259D5A9E96898A05128F0BB63B05058F72162C171AD2AA5847AAFBA4389D23B78C495735FD9538AF92CA5820C9BA8AFCF4BE449B0E11789B590BC1158A1326F0A8F36442250C48340009D89EC6FF3F56597D4AE7A27FA3A1B4630FAF5F6589D556BC9222A735B9CE0D0C0946D472340CEFCE373DC4133A87DBA22CA0E3837971ED56F4C4F9365224A14F02DA9C601C97C3E783CE63F5FA93124705A2E47019E6C7977E7CA926482028CA32471705BA6A96F678FB94052CABCD7D4B49A4E30F32A9F7742A87A3D5AC41C1C374149876D1F1E028AAB9149D2022527F96D420852FD34EC2BF7415EC5C3820F0B26883CC9332B81DCEE35517A26648618C438524BD7D2283D03C0855A1CFD4C273C2BAEC033E8009B122223BF5EB766417B9A64A729F324A1E158EFA70351148F85E52CF3C68F8D7C01AC59F706B28FF9C159A0335A08EC023986047707B00D4BBD35BE5E79A52E700359CF2472577B3072F6D6D72BC1FE5D18B24C75D174BBC1608EE782E121BC086222416CDA177252FD7A20246B55C9CF03CBFFD08247B4F2AB3C2343B3749178C95EB94386DA483600F2C4D4C94991CA5CBA19D8F7212A60E7C562E744B67741A5B93F790AA694DE8034CF42F793BA8E3209722AFA6820D316EF8FE7C321486687D2143B0DB24D94F1079B90F5F9F1EFFF76B34ACCC14CEDC50A9D5DA1B322C7B4554D26876CB8375FCD0C871007720A3AC23181988FDC961429143FD1E1D5F94E6AD12473C4F415A8CA01D8FF0DF40E6F4498AA36AD9C214C8E029F5834B025B69306A8220E60B184695471E5448E18F5D47D277B8B67817D298520100B463B00773AB8202E048E45F221538BA47AC00B858A16727BBBA3E4DD77A47C6A2E11756567667E5E8B8D5CDECDE3CB8DF69543C79669C944464DB4CF15976CBDDC13AF419AC4E5109152AA804ECBD6F8C8F9141510D7797033620F6208C479F32F0E3E53C29623E155F5A3733988E0DD2AEDC0F437FE82EFF4F47C0AF15898F72174BB06281FC6F899851AD050F0B487A3AE2BF0B913A94016496398328B92742951BFCEB15F57A87BC86D2004E3CD8D31200AEEC85596926D32592C\nss = 96E645644A519783D5EBD4D7A489B9C2F9DB4ED53A3B1F14892C80407B25F903\n\ncount = 60\nkeypair_coins = 47CA2B77C5B717F423222C2730CA5CB9C856BC951D01B2B2C80BD76CCB5539B7D55EEB68870B6DF148654F14EB4B3AE9084B40F8B5CBC83FF4C419DBBACBD190\npk = A8102CF7E4CEF04582BE990060177980606196D12EA824CA65D485783A32E42A4E20D41806E8AE1C51544C63C3156A42BD8ABE55E36BE37C6BE6A51EACF02274EABB03F64C4DDBA2A6806CCE943CF338B09F50C5123C4083446802456CE85248DAAC7E5D9637A541C755B03300B43C4DA96164C6C42C3910D36522E34895055C43847459451B8022D39A2C287FFB85C8459C31C2D183F98C684A959B2CD0A224CBB38713C4034A6668E14CAC3C8F9D1B95EE6251F285835444AE0CA4BC2B9AA40CCC564F7943E9BB697F76475C5AB3EF3878EE51C62D244502A3A044F4C95FDB42A7FA0300D079CEAAAB0F5720A1BA852FE7148D4A1642D1330942C81B27882C631C3CA3758F56B7718475404BA20CB8B436BCC1116690380507D02C63E62AC58F551072CCA75A761F237B5ABFF58B2016242FB910F24BAAEAA47DBF010600881FFD228AAEF714C65B496795BCE329819418C26321B5C73CB603D15FFA162901F386E9E815940BB5703477A996B313B50BA05A1D41AB65F233ABBEC534C106224C792A3DC14688332A8313408510386253C7EB076711EC35F6F929C301422192B3F611B36B97AFF38A94B00764E9D89F38072CCD6B978E1A31E391CDB2CB3F9E344BA947A73DB91891B944DE4935D48A5663F85C94BA6ED8A3026C278D645B7B593702733865F12A3CEDA3BE2787A1EFC2A2FC2211F405C3AD1C8C46257059E6CB43F36CCFE6231B730040849233D03B7E90076A7792F865467B6548E541BFAF5B7C3E6059CB426CD263494C641BDBC7616AA8348C6335D42719C0E79AE52931A119856C168897D48DCB44242C505C535698A35CBAA9F80A8145927AF6653D31977E827625E3BA18AB7AF3621DF248434C2CC5E9324F34C60E1FF1253B4904B1952BB7E16DD979C03541A6BE9BCA09632120AAAD6C457942B0077FF01B6808AF3FB82D390573BD666F4B89A44D4B80A49B86470981614BC6B0E3CAD5EA399E2255E030833485BC69C5C94CC48BBFE7BAE3754BB49A2FC1A15DB012BE519AC8802A5CD005A6ADC31ABE237D9C2924134235DB04B78C96876B084D41C62ACA10008237A6F0C12600FD134AC59808418FDE238AAE358E34C1153842A31CB030BD97AB2CAB83F74164358A1A077591C356162D53970AD65E21A994123C4000277D72CCBD0D712026217DE9054FE9B38C61FA2C80871BA83A88BC98105E693A15F2213EB957CB276691D4AB70C9B3EC0B3E4E846979C375AAF9B13E075A83267BA7A90A770717B14B40673591E986A1DBAC4A87B111AD2854899808DE206E6A768770E84023931BD4D996238430859A6F7628964E4465E5DB7A9F5A0A77272FFA95A9AE759D47E1885AE6A4E3E78493A25153387F008A74ECE68A67A8224E19209F20770BF4C8CB15CC39DC4147549C8CC599B760700DB4591B284905562AFE554658A07FF22C8645E29006D331BF09936085C4E7C345E2993A7332C9B40124D375C40E266A251002EB03B5DAB50760972B7E9785DD585DF7", + "C6488CE9218C0171DB28A99FF7A557C34936780FE9AA78BB395885085E0243887FFB27030393D925CDEB2A2CC3365EA95B5BCBE4B0BAC9BB32E1A90B009DE0F6BE8EBB3E684514D2425F3F1688F54056F41C8E364B5E89859478349C793A70982818C28A245F690057095B320B2773206A3A856445290EA1636F5029BCE3D8BAEEF0A73F912E110570817BC66D9B8DFAB95DA8B270898B6E30F28418AC5233A954F05009C2BBAC3CFBABD0DB906188ABE7B72CCE5001496360758CB477DC2EC02A590621C93B9067ED346378C419AB634D95267DEF3148A594BE088BC349EC9669E4BBA474C4ACA165E664986C34A0DFC5C5C4781A61063F10F2C175693B5B5CB7C9B74442050F5D9421E6900CEFE35BD942B49E469787471F43B35EF0C86340235525D50904263B2CC052757B01B75414027C9D02DB50B4E47E5CB19F6DCB5AA93B3E4874740CE7B99C5A4387D392F686A215FC5B5BB1A9788565DE9455BE321B50A39105A33E60A9533B506581D03459696192C08626009E723B228DF1CAC15C645DB16FAF697A7DF68D71A56CF263639AA0185ED25BAE84551C60205FE6B98D9328DA3604D8D1C70D84C9AD68CBF266BAEB8C6B3B9716EE50A8FB5A25BB6A32F0F971369601F9552A52367D9A5D375D06EC7863E051CB44929F17A4656A2CB2C58D8D457897A1AA0D\nsk = CA481DB6775F3D276A56CA0E60CA79BE147E63B6898F4B814C69A06F55111C9824CBC1C109A01A7BAA259DA651A1A51D60BB358432550BC1AA1CF3656E0667D726C69A39AE564BB99162C824634B8B8A706D82175BD9657EC09A308B51A3B429822667A5135FE4350A8B3CA10E8B03B6DA0BBD616CEEC0A08476909C6182EF0314B284CC3F43C337307FACF7B617348779D7493AE0A25D415124BC5D9134182169238CEA1A46A3001A8165713A3E5C16AE03A477207B99C2CC674FCBB14CA439FCC3032E4C2F1E92841D73859C76CFBE245193816D87C12BB3F12763174997760D6887A429A37F78C32CC1AC8FACC587AA235821C254A2341B7C6BCF8B52C908836B67D39D63458AFA9530FC2748DE4A698AF346F8B5405DC7B43B05953554021AF73C585B6EF248C07ED23116BAA18C845571823D25CBAE0AF57D4F6AB2473B5919CBABDD7B4CCCC1BE89150CFC585953389172590EDD61C3885446B500495247AED57A9FB1140CEB6B29F7F9A9F524106D8CADA3432C12468F9BFB9A50B920CDE85654C25249350F6760293DDAA28C771963497C4C5230C05862A4391330F54CADC3B0C92B9798F5BDF8B21016725AC8F565466464C2033872684608111248FCCF94C61337EB6B1A9017E342C29EB2B148936119797FDB2757BEF51A9A2601A00C6F0547B1831B1CA1118CD2E1CDD601A0B491C588CB5ED88AC36AE183848B9F87264CC5B020B2E965E5B89FF74C58CD2B338177BF1350AFDA9A74516A5845381E5FE132B4089506E8CDE6346FCC760759592345927C5C6A97045B0AD3973E806778759B35988953C80B3E7574B7CAA225C744372EE3042E07CCE978A3F964395D40176AAB7905A4BBA98250F594C5A96BAC41851E09F897DF0376A89516040C1F8FCCB93D44AB474C56913826C9E2171EF67510B53EB31153FC028B3625AA7A353BBE79CC76D393E209115DD00B5D6C98F80101705544604351CDB87715618343BC3FA227C1E9FA1EA3989390B02C59EC9174E5165239427592A2D973774CA62DBD9410164BCFD95834C11621F7DA54DC55C44C594785FB0016448F2CC39A05E01D8581658A2410CAA630347C3F0F6C86F344816BD13B3A04313A730F2DE9BB50659B642353F6463D2E2A1A78B722287616CDC266B01098B3544632152DB3B23938D67C63E51949496E13182326D5B7D70B81D90CC6C5D84D4E5907833A7A76D3850AC4993A696C4B210DCF352A32B4C83DC9114305308129BB4FF73A91D733303BCA92FC0083D95D32CA54557A6FF3C42C2BAB46FF913E1D39BA3F6092E30AB47F9985C7C439448C92B245259D388E291C04DE427F378011CA983B21B2BA8BEA9D6EB36001AC4FA5061EE1670066F9252524848973782774CFA795A2285A2669515D4FDA7093BC54439753FB6B4E6B781EEFF574155B2438E074B332417D751EAB1BA1475436E8FC1B670C3928A3553D2BCFD1A59C46EA2542884F91F98A38D42ECC026EBCF91258ACC99A50AE1EDC88B90C98B74C3961B70759F39B3C20175FA80386376CDE2B66DFF213151B800921AB6932B45B720932A540C79CCA0EACA0A9D5BC841C3ACF3C08096C0446326114F05CB09745EBB986DDB76913FAA6D5F411CFE987B5808D5B525759F50742969136A5089B060DDCC66C93AA7F94EA179EA896834BCB30147EFFD42753C9528643B5026B5BCF02AA1AC9BE4AC5525F734FC1049F93963FA046B0FFA7647FCC19CCD2A89FE6582BFBCD70CAB789E0BA67C6387462BD1DC35302B29AB65B53EE8CAC6F7B5CF257B437819FD9AC402019563ED5104DE97953453BB139835C67415515AEDB810455855E63B5A442940D1AB85D8C80703141C9BB0A6CCAA6949A797BC0658F56065822C52EB14AABBEA75C434A22409578F2B695864803C32649D9068857BC4CCF492DDBB216CD73BEBFB517235218C6DA930F26A1F7353DC2C2BCA039B5EBA4CD9FB3531523B1D5200C3C822C135B03126154699420E036BA827C849B285B28B81EAA64ADF41B33895286EE8410BEAA4A1C637617718F26B3A206593571160CFF48437B5187BFD5830EBCA6D2204584F822703075A40076B403AAC5AA32DA5A8E2AC0160FC8A5B5E871478C30D523C9F1967B4FE4AEA55976FA803568C6863BD50C7B0756EAC8AE8DA498A8102CF7E4CEF04582BE990060177980606196D12EA824CA65D485783A32E42A4E20D41806E8AE1C51544C63C3156A42BD8ABE55E36BE37C6BE6A51EACF02274EABB03F64C4DDBA2A6806CCE943CF338B09F50C5123C4083446802456CE85248DAAC7E5D9637A541C755B03300B43C4DA96164C6C42C3910D36522E34895055C43847459451B8022D39A2C287FFB85C8459C31C2D183F98C684A959B2CD0A224CBB38713C4034A6668E14CAC3C8F9D1B95EE6251F285835444AE0CA4BC2B9AA40CCC564F7943E9BB697F76475C5AB3EF3878EE51C62D244502A3A044F4C95FDB42A7FA0300D079CEAAAB0F5720A1BA852FE7148D4A1642D1330942C81B27882C631C3CA3758F56B7718475404BA20CB8B436BCC1116690380507D02C63E62AC58F551072CCA75A761F237B5ABFF58B2016242FB910F24BAAEAA47DBF010600881FFD228AAEF714C65B496795BCE329819418C26321B5C73CB603D15FFA162901F386E9E815940BB5703477A996B313B50BA05A1D41AB65F233ABBEC534C106224C792A3DC14688332A8313408510386253C7EB076711EC35F6F929C301422192B3F611B36B97AFF38A94B00764E9D89F38072CCD6B978E1A31E391CDB2CB3F9E344BA947A73DB91891B944DE4935D48A5663F85C94BA6ED8A3026C278D645B7B593702733865F12A3CEDA3BE2787A1EFC2A2FC2211F405C3AD1C8C46257059E6CB43F36CCFE6231B730040849233D03B7E90076A7792F865467B6548E541BFAF5B7C3E6059CB426CD263494C641BDBC7616AA8348C6335D42719C0E79AE52931A119856C168897D48DCB44242C505C535698A35CBAA9F80A8145927AF6653D31977E827625E3BA18AB7AF3621DF248434C2CC5E9324F34C60E1FF1253B4904B1952BB7E16DD979C03541A6BE9BCA09632120AAAD6C457942B0077FF01B6808AF3FB82D390573BD666F4B89A44D4B80A49B86470981614BC6B0E3CAD5EA399E2255E030833485BC69C5C94CC48BBFE7BAE3754BB49A2FC1A15DB012BE519AC8802A5CD005A6ADC31ABE237D9C2924134235DB04B78C96876B084D41C62ACA10008237A6F0C12600FD134AC59808418FDE238AAE358E34C1153842A31CB030BD97AB2CAB83F74164358A1A077591C356162D53970AD65E21A994123C4000277D72CCBD0D712026217DE9054FE9B38C61FA2C80871BA83A88BC98105E693A15F2213EB957CB276691D4AB70C9B3EC0B3E4E846979C375AAF9B13E075A83267BA7A90A770717B14B40673591E986A1DBAC4A87B111AD2854899808DE206E6A768770E84023931BD4D996238430859A6F7628964E4465E5DB7A9F5A0A77272FFA95A9AE759D47E1885AE6A4E3E78493A25153387F008A74ECE68A67A8224E19209F20770BF4C8CB15CC39DC4147549C8CC599B760700DB4591B284905562AFE554658A07FF22C8645E29006D331BF09936085C4E7C345E2993A7332C9B40124D375C40E266A251002EB03B5DAB50760972B7E9785DD585DF7C6488CE9218C0171DB28A99FF7A557C34936780FE9AA78BB395885085E0243887FFB27030393D925CDEB2A2CC3365EA95B5BCBE4B0BAC9BB32E1A90B009DE0F6BE8EBB3E684514D2425F3F1688F54056F41C8E364B5E89859478349C793A70982818C28A245F690057095B320B2773206A3A856445290EA1636F5029BCE3D8BAEEF0A73F912E110570817BC66D9B8DFAB95DA8B270898B6E30F28418AC5233A954F05009C2BBAC3CFBABD0DB906188ABE7B72CCE5001496360758CB477DC2EC02A590621C93B9067ED346378C419AB634D95267DEF3148A594BE088BC349EC9669E4BBA474C4ACA165E664986C34A0DFC5C5C4781A61063F10F2C175693B5B5CB7C9B74442050F5D9421E6900CEFE35BD942B49E469787471F43B35EF0C86340235525D50904263B2CC052757B01B75414027C9D02DB50B4E47E5CB19F6DCB5AA93B3E4874740CE7B99C5A4387D392F686A215FC5B5BB1A9788565DE9455BE321B50A39105A33E60A9533B506581D03459696192C08626009E723B228DF1CAC15C645DB16FAF697A7DF68D71A56CF263639AA0185ED25BAE84551C60205FE6B98D9328DA3604D8D1C70D84C9AD68CBF266BAEB8C6B3B9716EE50A8FB5A25BB6A32F0F971369601F9552A52367D9A5D375D06EC7863E051CB44929F17A4656A2CB2C58D8D457897A1AA0D7FFEFDA144195D79E581C91CDF0247F4346E811F890F54F25226B4AB835871A4D55EEB68870B6DF148654F14EB4B3AE9084B40F8B5CBC83FF4C419DBBACBD190\nencap_coins = 7343358FD131BC289BAEC8EBFCAC5C52C29A86C89F8A2B89C695D8A9A7AFD491\nct = 44BA7B437C78913DF29CF0812EAB3DD51FD8B5701B05CB1D2A1D14B20136FA7E9D9E5D7AF26DC9510804D7618CE92DF82632C259799F112C493B1750D8FCE272605059ADFC5B1EAF80A8174E83411D0372CA39B58CB01BE69D365DA52BFE1AA11A6E791D39D585B8B12A0EA927F75A7F395ABD370968BC30EBC8FC669C5A57CCF78874396B9CE7CD8D8C631B438A3B68A617091D530D9DB901A015C74E3D4EA6EDFA35B5436767068B1E89674A4F568D06E7044F1CAF8081AE5A265E8599BC90775AE1CF9CFC974A32A5B8A66A6A2267EA62B9579502B4EB5502E36AA98D8A2055260DF975D4CD01301222006B592F177EB4842BC7AFAA03A382FEA660A9E474357154866DD1E4038FFFB6D071F320DE03E6F2C17883FC4BF5340A570A46F237F4F89B84BDB78977BB216199B6E27A7D1B5191E0D5C070E1E2BBCF147712A5F430EBDF7286BCEA15422F494FB369DF448B6AFC4E138D98CEA211829FBC0393E71CCF445D594565CFE032F1887367ABB78E255637FFA20F0F1B1F228E2D69ACF1B2C106ECB21A37305", + "9032AA5487A0DA5FB17E76E8DDF5F8421CED3873129D344E27519D0EC5B742D7AB20367CBC318DEAB45D41C8DCEF9088D94046ED88E0D56B9968B71B9829460FCBE2D671DAC8EEDC28EFDDBC79757D3C2129A30A351AD105932E32568D349293BE600F4E5059C2C59D65F965C07AB0AAD78538DFA5B168B658409AFB87CB8F3A4FFDD35FBCFF9229C7F486C5595658E2B4053F3DA216ED4D426615DC7D5A082593438936684FCA464F4C4354ACB7C2EBB2A25D2F807707BD6550211727D9FC7D81202FECDEC94003D443110ACFC975B2F32BF698169354D9F26280416ADF6D427DEB703C8035AEC163DC2F8DFFE74A0F7F2708F04999BA13882A7150CA7271789B5524EC6A10BDABE56EA3CBECC9512A3816D3A57941A95BC4D93389C4C957FFD4562C9F2772BB3E87890DD8BD0D4FEB01DEBDA6BE1970A09A0FDC2D73560CD5EADE00D096F50E6D49E26AAC8CB171AB6C97FA8C50E0CB9B4BAA426BC2DFD4FEF92D5F8ED959D0D38D44B7FD5CF21AFF1352DFF1AC9A7465385228DA57CFCF00CB160D9D0327BF50708869D27CD75D02642B86E6818C686B8E42F820A0D5ECB02A4E61DFC198D6A02B598224ABD674556545D7CCC990167EF10FDDBBC10AF57D435587C6EAE55F061C544B839F004725FD3D71A5EF37A7D0DF88E312C1A52D81D78DEA4F271A98F2F6917B9B87A5AD96838DC8F9845EA84447BFF19B7A931677EF0BF57C9C28C8FC85EDFB08FEB73F743DC300EF9E9160802EA150C8CB740C80B242BA7A7ACF0453AE36C930DD88F32B1FB2264AF22C6127DED256F1BBEC4F464D637EFEFE11A9E81B3810B6799D42EB0B8A887F7E05437CE38BA58C35D054B1DC2D159196DD04237C5B397585A91C25E76940F38CE7DD52263B4735DAE9B53E440F302483066A3AC8C7CAC9240FBD4C63AF16D71BB2999A45E6EF36E3E46823888B59A1C2181E27770F58698B842CA8C5AD73B716E37D9BA95DA5F89986DF967E19F3298302F14602558DF2A860FE8A1646CF81E23BFEA2544D3E89B8A58407E237CA5497EDAC27BD460C78AA9CD565EE02359AE802D7FCC122742F6FE90A82232E15F21A0FF18601D4FF82B767F6AD705C3753E6BA150DA3773C0247020828FD5403A5AAF37420FB66B4FE6FA3E82E4FBCC4D8855D5E3339FCD9082D6835B0224D529D5DC2BCFE113370CBACE2A00E00708091937CA187C8A7CDF7488128116A89A1A320729B78F2D3A75B1C820EF3F9E1D0E1ACB46E3921ABA00D09D6932464F968C1B4F1647C27B2B27D3BAC4C3EC75B4D2B4BF6E0DFA29D23F7267DCB51FD763F10003A569BAD2F3C03D38D34190FFB00B15DBE55C263C1906D3593FFBD7A93051ABE2CF099F70405683BF94D9950875E3A63ED9F029013958D0B4929A7DCE0DD195B0215DB0D9AE503E58972ADC71071E95F49C4DE82A391A312D2371FAFC32B46A4F8C7E92C3FDE96E533F77ECE0CE1C4D73411E7C243FF55FAD0302F7FB204AA86D26F0A05F6F87635A2314129E83213DF82CD1CC9B404D429F5712CC0E736FFFA0ACBF7A9ECAEABD72CA53E8AA81E879A5ED49E64B5A1E76EF93676D492AF9C1114BBAE9D123896F7DDF6068932E6EA2343CA0F819DCBF2299BCF9BE7E4AB8884005F501F617954F116B63C90C1720091619D5\nss = C7F2C4E84CE91004D3188FC18739F0E4C3ECE47F76C3EF22B43B7F3DCA97B559\n\ncount = 61\nkeypair_coins = AAF6EB40E596A5E3E8218871E708B089240DCBE7FD3641F0E5E41E071CE49107AACC8BE341A319F425312EFF5DACB31E6E772EFADDE7250DB9F613C13B454565\npk = 9F711EDCC2AB20E136F9412F7151BCF330987BCC5332408392075A25C27E3747C65B5206A91483EB501B48CB5E07D501579B5093255D5E565CF5CA6247064DDAEB7E909A190DA61348365C1C508820208BA282B5D48199D7A947CE9946F633BAE9D24EB77680ED38B46379BC96B87F3DE694E4C759375AABA76981494BA5CC7419D9C67AF522A744A506E73CCC5AFC2CF27663E813BAB0C82C6C64023FD4CBB5B74D6D5BADA2A33EA3F407CF5239FDF56BCBB455F39B9D69813662281947659534F9443F84266937C1000D8CCCC430D5F9821126B9B28226D8A8C1D7A247E2D0CFCE23C52C3A2C92FBBC45A86394500F7D984C9103BB77030B41B6C885B1CA1C8B1107878069D2BCC23B52A38651C8090F3CFB023826CB84089809E9ABDF107E0B261A8CCB3CB8E10434ACC40312AE18B93B89323C3A7676D0827BEAE3B4E7407827579EFE5750C47A322BF76851A762CAF62CC64370742AC715F182C4E6A77F47C5F23644F42010FC029C49C538C9B821C7761C1D2C27D7096C9F66AC8801660BEB39CFD23E531603C7145D61668A612B3406D16FEEB67BC5578BB972147FBC5E3F14059F55C8941177CF24910D1C94F1380F2AE449F9F56A8B87A8425A9EB73B62979C8C6B9894D6443ECDA81133A299FBCA37B4A69AD509BA44403AE3E5B2CF4277C8D22B68FC61F5E105DBD8C31F99609EA2770058352B81836B473EBE95C9CEA90AEB682CA81B3E70508BB724B9E4C564D6A9600EA59342E9A06D6C4F51ABBC3D7483401737E36B6D3270406E5B4589F5401261B790CB02219636AD9C65EA5C48CE79C2CF4758DB9BBB55E003E0C64F9B025DDAF1A341F8C2F26593ADB9AF185915C0489C77F1038ABB9802EC812885AF603267B7457210F5A00C917039B1B8E1BCBDB8B8B3CA9418D27CA6E96644F7090322993797A54BCB13CF59428D24D499C6F631E8694C50389496C6454FC34AEC2677EBE05A0D61CB7AC553E2017C93D7183F06CF461331073786712A2566230F191C8169A1BBA3A968A44A3FDE764A0B5724E74615F3CC0F819616BBB21055D85F0FC40C667048FEC26FE98B901B67A2923C57E17CCD2ED20F8C3731F10B58B7E9234C4151F6F4174FE6216F5AABFCD3B634122896A156BCC0CE93F41A8A25CD825334B53269881A682D8447975B45E839B8FC54B53F8C70A5AA9C786113FFA708DDD5070B841B58D25820FB6E4D8121CCD016B9601DBBFA4116E1AA9F904DFB5AC2B4D607F43A3961161E02092B9233C75B7020D5AB4BD7E3ABC3B679C6D003A6A072F0038983677F606AB976474D8616A5DAD0C15EBC10986B9BE9F19DF7C740FD1198ADCC019D43766A847F05FB5CD7C16A6215A0DC251C894AC585A5B530E2611C839E98786FC5D1C1B0817DA7C20DFAFBC67F62BBC872CFDC153D83F328814ABDB5F7BABDCBB125298127A83BDFC503D6A8A2359136225B2BBD9BAA2A11050774924B8662BCFC608848840CDBA8F5D72FA3876EA79784E4784860047915C8922C96BD8F625D56729B96D88C3DBA9EB3AA308A7940E90147C9110770F712CFC81224F36FA61C1225CA7A653C5AB8D0B4327C014EC580B9B347D0403C235B25CD88C992582D44CA3E1394A0251743262B3D0A059C1BEAA7CE47A32F5B72F6FA1F9E8C34D46A391E80BDD48691A930B3B0DACE1B6B4B90B948794C14EC7B767EA6B2161702F9F5CF7336BADBD2CD5BBC114F7B84D73A24E0049C03F83FC60B618EE23BFC5A286751970BC37B47432F982101E8FCC3CE01089D5898A46BACA7265F05E4027AB367C8178580184771975A0CE9A8006BA7774C4E68E443AE644F19D8BEDCE0373A39B545738371499E3B7C88D20179434082CA235BDFA7701624A09B20BC65A10DAC15C6C14268FC73BE9D7A2F6556044C49A2006403848A726E767D2713BE1DD04828DA143DF7860A9253566C9932FA54C9561EF5A26D990C308CB8A65EC8CED7181371A517C16A28EE9989F9D5ACD50C8BA7085E95C03DE98C978999C37195356DFB2E1DA0768647C2E4CA6AE1D6BDA251103ED17482CB0CE78BA17C69848475835A0C2E9D08B27BB220185A7CA40713AAA70068F75140C37D259150E6B4581670A6F8423A5979645309B7B0EBB0E911A68E46C48B150552F3093D425761196378863C431605EC3E89C8D796E77FA9A772499AEC973B63E864CE36A29DE99ECEC9695D12112C\nsk = 90D7129B79C095B3063F53058A4BAA74C262A99C822894254A050409215FE67773C26C7A6DCC739D8406A6055B388204604C7B065C0CDCCC16FA880858A36D6200C6CEC473BF81B245E09C6E5A55A8D8314334C23DC14FD6A9C011A2CA93753AFA8609320B1D01FB9A2A4263DDEAB8D5A00C40346B8F84AFC7B945F521321103A5219B533F52BEE42256EDD1B9A526013A00CE07D44EBFD66C0BB67775D1ACDE4AADB7C98731931E54F5C458264894971DF5D0CCD93817BB77A2E7D29CE47ABA205C0971F34096280CC725A3C22A4EE24A9938CC2FCD9A670272A463C852EFC04388CA8CE86A8E9F63273AA208610C2274709C55922AD371C197741AF0526218E84C3BCB61355AB94D5C94DCBB4BC08986AC075E01134B4029C8C1D78F829796C1CAB0EA2075BC25B797D82A8E0385EF1094D0A2B1731624308487991A7164D8A507F2390F354B4FA3A225D5A46463145EBB57B98724F1D3CABF11AD4FDC00BFA267D8F3107CEB7DA37C060AA23E247C28AD0069D30681E37807117AB841F23548CAA02212AFBC1BC54297202FA549DEF55DDEB5BA4D10ACE2650511366EBE9C1D61FA9D5574C86C0714AA523CDF946E1FD259148A7E2AB5C21884314E3B8082BC210B5209CCB6B95EAA2EF62203A0B707BF9C5DB1A155169B07D41C0EDB9709744CAAA36622F189773AD7A59DC142317454D9C81D55D1C637876F104B6836A6842B87174290125505461EEA77D63A8DAD03C7941B69D7F66E434922E13A8182FCC35E51C9CE81978E35818504CB32E4A6DFC777227A5484409A38B2A1E2243110E84D024B1FE0E0BB36D4AAC0622152599FEFA177B294BECE391D47553983E420DE5462C72AB588B2934680A399AC40EF35A5E8819458E0A7BED1AFBB29A446ECBCD4E45A50176EE201526E314CDE085AFDA30226039CEB41A14D87256BF566DB30AC77ACB80B29B1F9D602E919707C96863304372A353771E1CE994241A12369FBF42BCB4315592724CD5085A589B1B4CA46DC49CD65A1247178151E455741C8B5D7C9CAFCB75BF27A5B4ED05B22E932B1E3BFB0C93248400E5485486E0C39FD5CCEC680C78E6137BE96823DECA37C6306D31C9142FC03EC540AC0120EBBE9BD5237583E1972D0C4676708AD35B559FB89BD872428A3E0504350451DD65F58BCB292C0BA437394DAE55E6DF13A8F41827939016A081935D1788C4807A53A011B89528FB60F386632E725B163E83E105324C3914F26F389DAC199A926A25A02624D9A530BF0AFAFA4C5FFE6A5EF9422E422019FF337D1BC2FE16A07D9A046D183137D477DDA378E17A95FC7E02ECDDC0D551724A4F36EE7648C9AA771BD15AE29B7259ABB63D0983917156EDE6557BE445735EC539B2199F9816C562842627CC83BCAA659075F5179ABDD1A7056D27F7DD96A6813A940A9321CFB1946E95C16836EF028106BC26A3EE450D8E569EEB23B70722BCBF828821648B1668E6E47869AFB16C0E4B827C4CEC3C4C9948A6C7F874968DC80160A811CD06D58A885D033210341A6F7907F53A82C98468F6BDB7CC7A60107973DB0E70F9A387673234D6665019676215EE4597C65A13A2636CEE74266F373A4E48BB1DB019BF44EBFB0A509E4BDD324314736292DE1566F165449C3B618C53C0E7468A801B962CA60D6834276BA3073F725E800A39668BB515B73BB2B055FC55AA3099F4C2B12E027333DF63567043B5E81A53F7993FFEA69BF0927", + "BAD9A6E56CCA6F96CAD9FC434DD1AA6F2814171CC8B064000BB36931F955858510E5A951D8F3728B2B276962254D061CCEC6727D758FA0944246A70D053021CCDB9710C046F5888BB1E0C75455A09394090D0144578053D46819FCA8B923227CF36C5D874BB43B34463DB3A502B6CFC0B38415F413DDA5A1AEDA6FAEB55269FC2566940615F714AC0883F0CC74645594C17B6027C198A368A608D50258EB75DC00C793912E133290E7954604629DE990808CF8C1B7F0795D6CC62892127229579D2600B8B17A16CA7FA2B389ECAC698AD722779BA264C1027E39AD6A7C952AD9224B555344235282A6B6A0711FD854740A6A54A9728AE504764F943B7DC92703C03914CC0C6E9376AABB4CF52C00DCC211CDF81EDE889529D06CA404A08B719E35176F86C2AEC7E40D1210169CC6A09F711EDCC2AB20E136F9412F7151BCF330987BCC5332408392075A25C27E3747C65B5206A91483EB501B48CB5E07D501579B5093255D5E565CF5CA6247064DDAEB7E909A190DA61348365C1C508820208BA282B5D48199D7A947CE9946F633BAE9D24EB77680ED38B46379BC96B87F3DE694E4C759375AABA76981494BA5CC7419D9C67AF522A744A506E73CCC5AFC2CF27663E813BAB0C82C6C64023FD4CBB5B74D6D5BADA2A33EA3F407CF5239FDF56BCBB455F39B9D69813662281947659534F9443F84266937C1000D8CCCC430D5F9821126B9B28226D8A8C1D7A247E2D0CFCE23C52C3A2C92FBBC45A86394500F7D984C9103BB77030B41B6C885B1CA1C8B1107878069D2BCC23B52A38651C8090F3CFB023826CB84089809E9ABDF107E0B261A8CCB3CB8E10434ACC40312AE18B93B89323C3A7676D0827BEAE3B4E7407827579EFE5750C47A322BF76851A762CAF62CC64370742AC715F182C4E6A77F47C5F23644F42010FC029C49C538C9B821C7761C1D2C27D7096C9F66AC8801660BEB39CFD23E531603C7145D61668A612B3406D16FEEB67BC5578BB972147FBC5E3F14059F55C8941177CF24910D1C94F1380F2AE449F9F56A8B87A8425A9EB73B62979C8C6B9894D6443ECDA81133A299FBCA37B4A69AD509BA44403AE3E5B2CF4277C8D22B68FC61F5E105DBD8C31F99609EA2770058352B81836B473EBE95C9CEA90AEB682CA81B3E70508BB724B9E4C564D6A9600EA59342E9A06D6C4F51ABBC3D7483401737E36B6D3270406E5B4589F5401261B790CB02219636AD9C65EA5C48CE79C2CF4758DB9BBB55E003E0C64F9B025DDAF1A341F8C2F26593ADB9AF185915C0489C77F1038ABB9802EC812885AF603267B7457210F5A00C917039B1B8E1BCBDB8B8B3CA9418D27CA6E96644F7090322993797A54BCB13CF59428D24D499C6F631E8694C50389496C6454FC34AEC2677EBE05A0D61CB7AC553E2017C93D7183F06CF461331073786712A2566230F191C8169A1BBA3A968A44A3FDE764A0B5724E74615F3CC0F819616BBB21055D85F0FC40C667048FEC26FE98B901B67A2923C57E17CCD2ED20F8C3731F10B58B7E9234C4151F6F4174FE6216F5AABFCD3B634122896A156BCC0CE93F41A8A25CD825334B53269881A682D8447975B45E839B8FC54B53F8C70A5AA9C786113FFA708DDD5070B841B58D25820FB6E4D8121CCD016B9601DBBFA4116E1AA9F904DFB5AC2B4D607F43A3961161E02092B9233C75B7020D5AB4BD7E3ABC3B679C6D003A6A072F0038983677F606AB976474D8616A5DAD0C15EBC10986B9BE9F19DF7C740FD1198ADCC019D43766A847F05FB5CD7C16A6215A0DC251C894AC585A5B530E2611C839E98786FC5D1C1B0817DA7C20DFAFBC67F62BBC872CFDC153D83F328814ABDB5F7BABDCBB125298127A83BDFC503D6A8A2359136225B2BBD9BAA2A11050774924B8662BCFC608848840CDBA8F5D72FA3876EA79784E4784860047915C8922C96BD8F625D56729B96D88C3DBA9EB3AA308A7940E90147C9110770F712CFC81224F36FA61C1225CA7A653C5AB8D0B4327C014EC580B9B347D0403C235B25CD88C992582D44CA3E1394A0251743262B3D0A059C1BEAA7CE47A32F5B72F6FA1F9E8C34D46A391E80BDD48691A930B3B0DACE1B6B4B90B948794C14EC7B767EA6B2161702F9F5CF7336BADBD2CD5BBC114F7B84D73A24E0049C03F83FC60B618EE23BFC5A286751970BC37B47432F982101E8FCC3CE01089D5898A46BACA7265F05E4027AB367C8178580184771975A0CE9A8006BA7774C4E68E443AE644F19D8BEDCE0373A39B545738371499E3B7C88D20179434082CA235BDFA7701624A09B20BC65A10DAC15C6C14268FC73BE9D7A2F6556044C49A2006403848A726E767D2713BE1DD04828DA143DF7860A9253566C9932FA54C9561EF5A26D990C308CB8A65EC8CED7181371A517C16A28EE9989F9D5ACD50C8BA7085E95C03DE98C978999C37195356DFB2E1DA0768647C2E4CA6AE1D6BDA251103ED17482CB0CE78BA17C69848475835A0C2E9D08B27BB220185A7CA40713AAA70068F75140C37D259150E6B4581670A6F8423A5979645309B7B0EBB0E911A68E46C48B150552F3093D425761196378863C431605EC3E89C8D796E77FA9A772499AEC973B63E864CE36A29DE99ECEC9695D12112C13DD780EC5347C512CFABF4C2E6A44CB2B17993C7C746F93C1400A5DB9F12511AACC8BE341A319F425312EFF5DACB31E6E772EFADDE7250DB9F613C13B454565\nencap_coins = 1BEAAD495CE5DA859511454A6E6D84C3A3E0D73BAE4CB1CF8EE16AA1539D37D6\nct = 75C5868844A4EDCB4B8A4AA4A64DC9E48CE3379A2F3B2594A6D6C4EF188CADA5895D919BA771CB899F4F24D720A2016B1E2DA3A793BAAEB8049C0484040C659D6FA8A68BF949003E3634613FC81C4E474C852F64E6D2F8411803A54E86690A2793AC5FDF445B6F0F80A6EEBB77779EC1B04E5D7C9A161A5F82975A1604A90E57FA58504AB4ED2A5ADD8724734AD36107F16DA178E31A722348502FEF33F8458FAAAB006EAEA4764DC7E0226EDEB520DD5C6C6039BD912927D08F46A01675F2004607CFEAB24C5F9A08D5A2667810F3023DD309F37B88B149C24F2B9493B6F8761D1F450BB821BD954ABD119641CED5CE8BCD7911430BB8102B0AA15DB06384EBB7B2AAB0EF4F050CD124F91736059F83F577B42C6A887BCB12A6708430415B44A7CFF5751818A116CD1DCC3D9AB2CAD3168BF6D44DECDD70592E75DF91755C96704835F858E0DDA900E4A9FEFA1AF12DDB75E8913EF58095A3E90EDCEE257C9AFE2D01404845191D1A3E29D9352ED737D2807B0EB6A221D7DC0405DBE44888CF618C5D0A9EE44F15B3BC2C9267D0D917132EA57FAB6D3E9400CFF77179CB129CFA6C0DC371BF5974F2851D0DF03757CFC54005E4ACE8F23157FFA8A6550B01436F5D15DE95437CA7FF7AC4765F272002B9A1C945D28FB92DF09DC3D0CE9E0246C745D7EA09B08719D4144435A56455040499C2024E1C093A82309C302CF70BA2261D78B47F82913979FFF1946A12C05F3629BB98DC95CAE650717D057C0BCE14CD1A2E4734A138F26724630140F05789021670B40809927503D23FB8DB750CE168E4E18D616D98A7422E4E8369417A7E031E3FCA6CA744E7E303A000EBB609F2F791C4A01A67FD5525129043BB286C8FACCAB65D2D4EA91C3DC432D6F0853CB331F8D1CCFA674308E426C0AE974628C315D78AC41D952678A1D6D542F3FFF6419866F90C23F78624DE718B7B53213D29660B624E9456FC4A07C813D77F91C4A5F09D2F6F51EBD1E33B8BF33385E7D020D6B390C628C9D0EF5B4361D43B9CED8F5AAC7C0F3F089485719BF2DB3AC98757F938EC8C18A77765FB1A203271E1193D480BB44EF0117CF9210C08586730160415B4F8E137ED4C53964B39A381D3B86B8CBB1E76B3FCADCCD85276B97A4F11B27B81A68A22C4C56B6AF0F46D47A13E49CD5DDF7E9DCBEF21702B35AF1F4A009E9F2260D7B422066479BCB8C270FA142FF6787D437DF7469B13C703E553F9BBA485C123665B917027E8D4D8A957A0289C39C08F5BE39774427763EA4426B1804E266A3F398960E8CC2C47D0FE64934D4D8F586590028E38DDD0F3F861D44E9DB2A051510DF1823BFAB436FECC68825191B243ACFAD9DA221FC5B3B2B5CB8CBA2EA2991E4F5B97D79D39E41478BCB7A949233361FB05E7CB66885DB9F46975A6C82408633A78CCC68562509228F175859BA382784871436DC0F2BE45E3E38EA4E51DE96F6752054774DC11B984575209A0DE45238D67C722F27B4AB207981453704312CE2B717C8CE5419B065A3673EC2CED5968D2AFFA24F5CAE7D302118B0206795C13A3900228D03EB8DEDE138110E4A39757368246253468DB22FB5A09834F4D1BAA647AA98B87D8FC880EB03563AA602726A94210B406237581AD4C44168874AE41C6F7669B6635BE6016BBE1373BDFD9DE8C95AA22F206149F3E2253F7A790CCB6728FB573E3FEDE6C61F83A3BA93694E496BD598D5FD6454EEDCD82BB4FB6DF43E9D72D3656289A06F17F44109288D01CF881CB2161857924FC2EDBE71EE06F337B2CAEAE12374D95C228AACFF1EC052A5C453AD87185598EB94C9A92799E1035AD7AD8C10A3AC7081CAC06A47940A3BD768CDDC45D01A24C12E177B58D4B86DC411A42BB5A77BA368FCFBDE11EBB06394182A78C8DFD0BF32E889352B333E91FB3E4861F9CD7862AB63B165893EA8C9D23A9BF5B850A4CCF2A4A62F4A17CC24ACD0E6AF49762E45F28DF33A94F859075812CB8C9A73874F93DEA97A6B3EAD41BAA4A63CA01848E919E4DC95773D9A19C375D721E11297AF63D8560B8EAF9C0BB7345931C252E044CF4CFD50338F9231552611387F21D58EE25664B3D4AA6B6AED4A598E5ECA7246AFC40900BCBF214D15D7F482D2614FE589A26FB84E62790EA0E1BD8BCA67AB1C06E64A859C9D62D57AFC155CB15B10C0FAED4757FBD5597C5F18D35AD1A4A5E948D0B0E905E\nss = 8D7BD321930854FFDB905660ED0E01A6B763147CE8289A6016C780B5D05CA2E4\n\ncount = 62\nkeypair_coins = 6500F32C93415CFDBC0BD31D78D5BE95CB9060C8CFA2013955B56F8B6868B3222779ABA933159A5AA043E2FBE31B14D2E56F93E83763E19787607196101D3F26\npk = F3FA06111B74AB835CC8479A8EBAB78552AB3A3AC845A332BD1200C0635D3AD6768A4773AA803EBC08A0D7F772FF78AE9C90B5DD1B50E86724FC89110C128BDA8209F0173E4D23210910BB05832B32017C182915308563C938695A0A8C49E6108C972587B04E6C916D5AC10AB425C15B370B0A4273D33530245048E62222D6211CAAB6A25332651EB49541754D9EC46E63DC4C1B9886EFC3CE63596AEA297AAFE548B20581FB98A755EBAC6FE701C23885E2141DF14B4933C70040A295144A74A440487741116175ADDEE87E656136A455BC9D1C5D611A22157AA3DD288B4FFA1D79668BF152BCB71108DC5916A223A703D376F3877406081C45A08470E4AE5679B34D2B4381335D8D5120282A656F121A861777D597A3B8910A67749855DBA05F36831BD101EBBB427C92BD62F9C7F1A99A47C94E9DCBA438835F3E053011F180F501C82611A64EC79E8B3563816A3FBFFC5E033A114B8C94C9FB3391E0BBB8D4A33BE98B219500F53B782FB2482FA9089B46B6F32555BA583370622771D02C6142647E6B87DDD382428552E58B80A66255394AB3815AA014C31878B74E7121B9F6D084EDBA988B43104910677AA62A1B27", + "035DE440B055146D15C466EA340B4658A41A885FE206C382923FD079F988B831A99D42241CC8637A647216EEF18497298509832F8CE55235771E408A4BCA646284771A0AE66ECDC2BB9D696D799C3CFAD47A5A8B49575618BDAC931D00C718049760F880831092FE3ACD56D517377B00B156ACCC3CA6957AB22529673A59BFE87846C5431EF6B9C6C3201841DA1451B881B2E26E44AC71E8858EEAA55AABD45281B56345222453440F7E427EBAF90BCD23C75E1CC96776CCDBF92766C778AD3B0A43A82463D09D79B90919EB76084438413573EAFA0A60D26BD45BA0F75824C5808112406950D1AC5B226B9332709D1374B61957BB20AD7C33576BB68D265C7DDAAA12788C9E015A96009C0F99521E98E5C0CB38089D2101EF8700FED95E7F643A5DFC686FDA8EE3588042D54E3E78B4502BAB59794257A277A983CE87C29C18F8535B07960BF20A3014974883529BA033A9604370A926778689937C774E74A3AEA922F5FB717A7B73631C2E1F8C33F499674E584DC7F48E3EFAB83512C0F723AD981452003840215912E3D0ABE816A58AF87E1CEA37DAEC759DA34E24033C1842B2DC0A6909991B9E205178596C812A0CBAA48EFB3586B5B6963FD445140BCFAB6B4390832DE8E27851B10619E699836A692BF44CEB23CD1F6938222B4B83F4A25A0C0C9FF397195BCF5DCA633952AAF0321B121518F887C5AE945821F9B1150BC1D2401A7547CA3386BC33232CC58C6370508542994CA6CB098B01033C0C97FF468BC1C726A992181882CA810115FD2755EC18CE0F88CD37FB61580C039AB121CE95AF498BBF4EEA277EB780D3E0A0959A388D6A290FE58A64829184B763D3636B0551A90E5A9723B26F2C4869FF14BA806153D6EC32AD4C42D27161BF051BE85303D9167245684BDB3198673C668E579A72136B6D252225B49F25746298532990352B90D82F6E324FB5877176555A078B82AC10BC8EA63A2B9067F13026584ABFBC473909D50C58E9BC47BB99308298E6E90B3671ADF643742E669A93E2A90B26723AF4CF6BB64446619BDEE7B5088369FBD737AF0C4AE367313C699F384205C14C13C38599604390C7C911A5781BC2511208679510DC0D0DEC26EC46718C748B59418BC353B7618195B77992858C06FF15A9077A37ACE35101554E8A3932A9A9138A800BD3484B1B977D53F50A0443538AA5516780A094E6306E7842EE6A753C412D2A89C23EECB2B26A6AC90B3E890466A557394B520A07CB671AE9CD2C43621BF55A99A98392B9CFEA6373D4B136DAFA78C6E93BA7573B429B50BE5949A254714C720721699290A510581B6AF396879703AAF4A9781268446BA96A072009FFEA0250C793237744E36BB0D3D752E1A6CAA346A2F9D1695D49AA1AA2535C6449E8F4ABF85079C0B99B91AC2E91613DE6368C430A886EB15B192805E9B5CF7E587858B852F1D73D1F0B557684AF2DCABCFC14BC8BFB76C2C97F030AAC9768982FEB815E2471C4D1A15B5C335AF4091ACC5BD189176B477938EBC700042CDBCB7385E10C3121B179660EB65365D9417DDACFDCB371AAEF7ABB3C2CFDCA88891DBF808A90028D4F12C57E4985F7\nsk = 0246C2025246911B525E6C3421584BFDBC83D73AB936E76A26236A85215C78DB7DDD010C2E038E3DDA69B5AA2E9F4997D8589BDBF918BE1C046CD518E6958AE6925146009D185B53456B5E16D59257F20CD0F6677535510D02602D5BA5B61C440FA07FABB1B5FBB38437E90522665776892EF205A41A1A2083902648844DC9D65E633266AF871481F036A2888D3FB9901355397F37875A4494777C781EC40478D09A820204A4115701D25A74B4BD91676EA6391FA160617C80CD05B0A80E040CDF22B29978CA55282F2C40316A35433DCC8FF7CCCF4280C0B11C548B5CC08FA45BD0760CE03A02F25689D0F057FAE44CB1574C42E760CB331C2CE4BE16823DBB2870592BA844F30DC407298590A088425E023B856E106437C6074547260A856E648CBA07E51A23E70D7CC65656B4692EC24277F04905C4AEEAAACD36341C705B504CFABA73201C2745AB06B056F1768447981E0D676EC904698EDB230F369190D8C1DADAA5CA59001EE8A68C302F04298DC5700C56B2B577D89CD9A585B239089847CD3E96CA80D928867B27F3657987724FF9031649C246CBCB4673F6CB8544150C9975A13938C89A68CD0B6DE5237FC8D2B7A6BB94E0C0856F00B821636801E9AC84F35276065EE4108BC1D755C1C428566A1CA3762D050458DBC7093567A4465453AB8656272A3C03B4A3C55929271437724471D5D4926109C9792BA49D117813948106D27C33069EB3C40AA8370B79E23F35934AC28666FE72B43F722151F3C26C96CC3B6A40D9E1876E55970F252811070FEFC00D70A009E4871F136A08515AB239C33E2DE638C4260D0C89CFE30B8F8E5927F2C59FEA3947FFD0BD636B10876C3C387C00E15469B42B80BFEB8681DC7715C2B248CA6FED92A9399B72D1023F9507229593BD9BD936A0F6ABBA09BC3367782370B60D9CBD0E8B3D5744101C8CA97EAB822FA4CC399B5BE3195CB1E3C9260030AF60BBE3295C4DE898C502543589142CF48DBC7505EC9A9D93CB6DD4C9678C1CC0A082C5631A255142603DCC01FC07C27D628D89F09B473816B5D5171C18A3F9737BD6D3420D4BCCBD3A5624A2686E54062CE4696E061C83BC2586F1A618639E51E63BC6C64825EB50D4F88334B29145BACC49E28DD564B7A578217FAC230AD00A44F3ACBF8753AA572D66E1AB9198CECDF9BC722455BD267FAF98424EBA4031C3BBEC8298A9388CABC6B3BEEC7A7FBB1C814811117A9D550407C9E6099CEA65ECE641F69454B6A0CA9BF86A3DD472F7C0A7703C6A5B25464C0B091B29258DE673220857878434EA14CF50054FB2E63547E9BE15107BEB7A78CD5C00CBB1462A0347E72B51A15CCB5C333894ABA511295B37C97C7F4C2EB6D97219559B40A67310F457108015AC1B8E3AE15ACF85689C4058EC8A0BB18B75615011F2701BDE8BA70986B39D3368E1F978675A49FBE8509F1239A1C88F1DF4ADF0AC8B68A87E2A403373FB808A7B1192371C7E68B80854B0E4335739090B953A2B67999F9878A32415B78C22289EEAAEFE3298FD38ABEB6ABCF5A55BCA388004E46375A729CC45926A7C3E3BC8B4E2A2B196AABE5651B642C1CB50F666A1BB6DA4D1CCE8C6344356A68DE044214453D03B5CCB82225603CA7E339380D63A4D9160DF03890DF722683B10847B89DF2C46757815D34942EEE95D9A0904F50855C73104EAC00E22893E3764268A84BC1940B2D5D3BEFAA5571B31869B238C8EC7AEA5A70203E67A0D9851DEE23D3801777B2243E2B6328BC4AEB10A468EA96DB01B77F68CBD63E4BDC157408AD378F637580E5723B544BCEEF3962C3A49FD836E993386E4E2C91BCB92725216979C132A0879CBB49F4FF12A46B194851B76DC910C20440535F9529D68ACD39CA13AABA696237C400C6B297368F0D6C304F012824783A0B02048D5CD1797C5D61B3F5792715E7B72BE1CBA7CFB12A638720F7962243933BDC150EE5B26D4368E8C9CB985B7A0E5EA36BB942840A8B3053C09FDA45FF937396BA8433BC3175806B0E0A77E2E8CAFAF55C69B44BC626C3FB6D9C37D1A83170189BC5C47AB44CC82CB97732B8DDEC23596224CFC4894871787EA25493BC48E4A37B70E404E77436F9A91970778C74E21B19265628BA0BDAF0744A5EA4507F5B4A0E978CAD763E26A112F38BBD1A34EF3FA06111B74AB835CC8479A8EBAB78552AB3A3AC845A332BD1200C0635D3AD6768A4773AA803EBC08A0D7F772FF78AE9C90B5DD1B50E86724FC89110C128BDA8209F0173E4D23210910BB05832B32017C182915308563C938695A0A8C49E6108C972587B04E6C916D5AC10AB425C15B370B0A4273D33530245048E62222D6211CAAB6A25332651EB49541754D9EC46E63DC4C1B9886EFC3CE63596AEA297AAFE548B20581FB98A755EBAC6FE701C23885E2141DF14B4933C70040A295144A74A440487741116175ADDEE87E656136A455BC9D1C5D611A22157AA3DD288B4FFA1D79668BF152BCB71108DC5916A223A703D376F3877406081C45A08470E4AE5679B34D2B4381335D8D5120282A656F121A861777D597A3B8910A67749855DBA05F36831BD101EBBB427C92BD62F9C7F1A99A47C94E9DCBA438835F3E053011F180F501C82611A64EC79E8B3563816A3FBFFC5E033A114B8C94C9FB3391E0BBB8D4A33BE98B219500F53B782FB2482FA9089B46B6F32555BA583370622771D02C6142647E6B87DDD382428552E58B80A66255394AB3815AA014C31878B74E7121B9F6D084EDBA988B43104910677AA62A1B27035DE440B055146D15C466EA340B4658A41A885FE206C382923FD079F988B831A99D42241CC8637A647216EEF18497298509832F8CE55235771E408A4BCA646284771A0AE66ECDC2BB9D696D799C3CFAD47A5A8B49575618BDAC931D00C718049760F880831092FE3ACD56D517377B00B156ACCC3CA6957AB22529673A59BFE87846C5431EF6B9C6C3201841DA1451B881B2E26E44AC71E8858EEAA55AABD45281B56345222453440F7E427EBAF90BCD23C75E1CC96776CCDBF92766C778AD3B0A43A82463D09D79B90919EB76084438413573EAFA0A60D26BD45BA0F75824C5808112406950D1AC5B226B9332709D1374B61957BB20AD7C33576BB68D265C7DDAAA12788C9E015A96009C0F99521E98E5C0CB38089D2101EF8700FED95E7F643A5DFC686FDA8EE3588042D54E3E78B4502BAB59794257A277A983CE87C29C18F8535B07960BF20A3014974883529BA033A9604370A926778689937C774E74A3AEA922F5FB717A7B73631C2E1F8C33F499674E584DC7F48E3EFAB83512C0F723AD981452003840215912E3D0ABE816A58AF87E1CEA37DAEC759DA34E24033C1842B2DC0A6909991B9E205178596C812A0CBAA48EFB3586B5B6963FD445140BCFAB6B4390832DE8E27851B10619E699836A692BF44CEB23CD1F6938222B4B83F4A25A0C0C9FF397195BCF5DCA633952AAF0321B121518F887C5AE945821F9B1150BC1D2401A7547CA3386BC33232CC58C6370508542994CA6CB098B01033C0C97FF468BC1C726A992181882CA810115FD2755EC18CE0F88CD37FB61580C039AB121CE95AF498BBF4EEA277EB780D3E0A0959A388D6A290FE58A64829184B763D3636B0551A90E5A9723B26F2C4869FF14BA806153D6EC32AD4C42D27161BF051BE85303D9167245684BDB3198673C668E579A72136B6D252225B49F25746298532990352B90D82F6E324FB5877176555A078B82AC10BC8EA63A2B9067F13026584ABFBC473909D50C58E9BC47BB99308298E6E90B3671ADF643742E669A93E2A90B26723AF4CF6BB64446619BDEE7B5088369FBD737AF0C4AE367313C699F384205C14C13C38599604390C7C911A5781BC2511208679510DC0D0DEC26EC46718C748B59418BC353B7618195B77992858C06FF15A9077A37ACE35101554E8A3932A9A9138A800BD3484B1B977D53F50A0443538AA5516780A094E6306E7842EE6A753C412D2A89C23EECB2B26A6AC90B3E890466A557394B520A07CB671AE9CD2C43621BF55A99A98392B9CFEA6373D4B136DAFA78C6E93BA7573B429B50BE5949A254714C720721699290A510581B6AF396879703AAF4A9781268446BA96A072009FFEA0250C793237744E36BB0D3D752E1A6CAA346A2F9D1695D49AA1A", + "A2535C6449E8F4ABF85079C0B99B91AC2E91613DE6368C430A886EB15B192805E9B5CF7E587858B852F1D73D1F0B557684AF2DCABCFC14BC8BFB76C2C97F030AAC9768982FEB815E2471C4D1A15B5C335AF4091ACC5BD189176B477938EBC700042CDBCB7385E10C3121B179660EB65365D9417DDACFDCB371AAEF7ABB3C2CFDCA88891DBF808A90028D4F12C57E4985F7D5ACAF411CCB64500879102D9CDF6D9FCAD673D874A4153383806FE174B2FC1E2779ABA933159A5AA043E2FBE31B14D2E56F93E83763E19787607196101D3F26\nencap_coins = D2B388FDF32C5CEB6126F9F28C341D109C1CBC6E69207BD655B969DE1B8F7B0C\nct = 7FE3A29E1057FF0FC46E2D52DA9531F1944AED5E23F603355D2C71C4EA9C67E95A5D1D804A1CE7D6001F9424F598653669F4527F1553AE716C356092BFF0D46BE9369F372F6E79EC88F41D9E16FFF3C17C6EAEA05B04D5C26C930B7A65674A12840640FA2B0C84D1F641F97EE6B5C9D4C8B622961C99C2961425F693B2755CCA5BF7DEE4251C41B8D988FE238D20C44068691A1CB045632F2B46FAEC81BA89C11EDD57B1AE5A39123FC241050ECC892111F7F6D3322EB64BACB32DD24EB7C20BDF7A00EB1A54C094040780192DA7A3DB8CD6B979DF5CC904225C7E52E9E4356A7D8A65A901B8441CC1D44D0293D6B050B5C1E966E852EAAC9221B1833481EC4878278C9F5FCF6ACA5E46F3EAD7BAD6B9CC68837C16785DAE33311DAC0B2B2A3811CD8491ED7C8EA3022CDEA21D1C741B758D786F1D421646A9B63D3F0B6CD0FE26083146C717A0F0A065C1365E0AE763D166011361DA217593AA67B33C85647F4C5E018EC4A0427D75548F84B85351D48C870758350A305DE51676B7316B4EA63E903296A46D2C02FF58759B88F500AFBF664D2A1D1D48078A864BC72D6622A43C2727C964999AC394E40A162DE0F90DDEAE5F1F2903AE0EC93DBD1552BDCAA023BE191D616F9120E9B6AAF0A0FFBC00D9FEEF6644997C850F7D727F84EB925BD0ABDF1136FD28660ABE4210C97124D761914EC1DAC64B1722F8B3ED6059457B7D421600DFBDD35A34CF04DBA261A216F6E0AE3C3096EDB0D07B7CD584633E47863DD2DD65801E1A58D3536DBC8A653BD0399D7AF02FC469E8B9C42F7E56B106DA445646ECAE6A45A94F6AB1D7E73FE82D0A6AA8E27D9C71C524342CC9A634000216C8E70BB59BB9ADA0618952D094D2C7EDBE871A5FCC083F5FDDFBDFC92AAAED3ABD05CA4DFF5F47D05DBB49A97E276EEF6F5BB63C78BE7957827F2014534F5797D1DA883A6554F4EC0E7891CD67B74F1543A80A336D4ECEBA83C6EB41B9600D8A8670419C59F98031C780DC2316F74D18C9A7937E67941A4958FBF90EF44DEEC4D939B90F03613A04F766EE2E518F10F84850FB0C6374B510DC1BBD4E9AC6A34AD9F0AD8F94B48CA8E2CBF1BB24001ACFE5C9895E64E6E12E9A87FF7261A6C111DA36BD8D8DFB5D3FCB7B9FDA538CFF883FB5CD0DF99098C69BC4A2CCE7C14A95AAFB2E1EBEF435EAC6A90B3F548859198F47E15D85B1B72B3867776C30275C1F94D12670785DC385796D5585482D8558DC2691E873CA52467FD083112CD80E22090AC9D4254C2DF58DD12F37F8066613EC16A7673D095138456A0E34FB0FFF90900F5D4D6FDC4B78A84FDD96E0AE01D0A77AC4D7D2CC6B8DF76D8139EA2BF49EA2B45229289A904E9E0D64F543DCA64925400561269AD850F391EEF29504A35E2850EC608AC49A7F8AFA210C7F74794DA09D61B06D8A40458A7F4C23F44218527C264C48E7ADF2533AEB3BB9F8FE6C0C93402455F2F7F81F16E7BDD5CBE27E5F742EC3A727BF1EE25804F2B37C96140DA7BEE422ADCB7C4F564654D179B36ED65F77EE3F6F634859211D23F59D6F438816E7993506E578C3C9CB64F41B3D097BA5C86757DD1E50A5167D98CB34BE135C75C2C58277DF2055DCC168FA8E167952EC5A9E59146D59C13235E9BE4A6A0E70A412A29337524912CA6F57EA8CD1E654D5DEF13A35AC18E9D984901667390B5A4E1931F15DF7561ADEBC0058EF8FA8A94793581D69E98FCD5B5BEBD8B2CFB5EA1231CF6F9F67AA464E5F472DC961C200253712B5D6F664E7B45CBFF375922E7241654D9E92C470893D23C8CA3303C51398E3F5785C8A089F4E9EE4EA1037AE7AE2A2F6C27A4005EB9FD2CDAE3BA0B6D4E3E7181C98E4073382B3B2E055C050D33B85BDCFC13AC61DD8B2CAADFF05CFA874B0736B08F8F1988BC7B0501E224F45AB80C7E32EAC1A8889607C3CC715C7505E1FB6CD00B8268493CA8AD47443FC9C1567C8E12B92FBACB9B8D6F290C0B7D26C8FAC1C4E8456DCEE5709386668671D24446CF0016BA0824D8914763AA8A12F699EC94E424C9E85C885D6AE3DCD7AF7BF6FD96F035E238F8B3F584AA7A400EECA19737A4F9C36E364184581C94354A93E1C77D58ED1920D658304F150868E704E23C75125F3777E4E0DC5AEFD0187E28A00FDBAC93484A7F2B20B305CC3FA244FE36649C57B19401DE2BE64D5870613616501353DCAD7E95F729BBDF930\nss = 2690DCBD9836C682D376F21A27EB26F88A9DE23CED4E824611AB9C23DFC858D0\n\ncount = 63\nkeypair_coins = 7643CEF2D62CC5AAEECF754653EA62294CD2208E5BF3DDEEA209E3DC45373D4992CEDEF206325F68EBC282123EB0AB02874F8A3C6665B78346775351AD99CC3D\npk = 5987636A96B26372851E703A9BD36D85E966FDA580CC79AF69772C2A9A7042363A3E3C116DC7711ED06FBF956DD06266329002630508B7D1CA73CBC853E62B23A02BFF7404EBE390FCF58BD57262CF1044AA22225FB36446D44E1B8171AA67C415F96DB0E109AFA31FD00631BFA23F3B6C9C02B20DC3DC1BA6F30E6F20C9EC7471CEF6996350BB87D43690C059065CACF697C63B6BC98C881D3CA56F07C34A5B0B10CAB263BB75399D162DB389206939B15DF58448837E0D443B8DF132C65BAC83D2166C780132875FAD888A1C53AEA51661C135CEA6956C2A4B87A53BAEFE726FDF09687F6CADE7BC9EF5BC25DBDCA95A0ACC47E0CAEF22159AF5B499FB6E8643C70803BA40A5938A422433053BDEC4B729744B565066962046C5D2BD14F14BF0B4030BE99A8A198B80B99EC939791BFC8572942E98D47B00814C6A85C39AE7323CEBBF353439F3961F0ABB687B4C18DD06B706DB4350FC4A2E868229272F499709EB1450C2995D9B809E77E676B628AAB0212475E602831A367D3948CDFB0D43EB0865EAC55C516069893D09F24A8176A3BECA0C6065ABCA0A3A2B3053DA2A3BCA6A7088F39D9BC8B1E685B67612413AA3B2BA4673B301CD9D87728DB6BFFE79391493A36B4AAD46339DD2B884CAC471A8F134FD1CB590819A65190AF53355A6483B6A9909BEF36C76836C77168C679757EF404A8528CD569911D036C751D4BA4CB1C34B695CAF487866CB1DE5554196682D32285490A75FB5D18D3B40539ADC4D9AD71452016A6FC7156B34014117BC0DC45EB319A1F85B642F7CA7A12164BC7A1FEB9114A7C5BA8D7456CC08A883AC86100272B710B225E49DE711115B418946F503586076411C6CA3EC11A5244774A27BAACC543556582781B273BCCAB4326B4140B5643C86D310331BFB859F80062AD27E38EA1724DC4B7C3498A8601C11F25C99001DB2868D68ECBA0019BAEA1363EF738C5C07778C5B4663447E73C742A1A6A3E708CF4003512804B9CA9358665ABA8AC2CE68B6B8B2E51FAD7939979593F8F19E19B2C18F03639776483DDB4373184A2D2741839C65F5D47E63597D14A5AB61A6BF01A8065C6756E6ECB64DE11FED0ACEFDD45FC50C1F51B045D8E096A9E77F10DC8E8349B5DA9723A1829E2EE3CC0379942FC47841B81DF7A94EC7F40BFC2B737D9725486316C2EC3E2B516DBF7CB4936217CD4B23E4422122854791A2CB136A1236677A4E42504AE43BFC93259441BC0D676F8932A757C087F806B59E6380197B37719A2FBA88B64CA54FC69AC8E2B79DF7154403249441D103F931A25283BCDED4C8B51A7995655D49611DDB2AC406B28AB2A80342F51BB8126AFD65412B06D0596622E5722465B846A52B47FC6B5842F12ACD602EF9C74065D5940D2462F7D99D39EA5F62B46F9FE297F1C01F5183C73C3CCB63C564DBC4C1C60877960202D9369B750129D91060D1708F057811E68C47C4B68781C102F2765E093C94F6C43B784679C4257287680825FC5116CC04B489ADD5A009A3E65B09644D5A9A9745D249314C4693F017A6D5B054D07FDE34CBDE568EA6FB9BB56C8C5023142CD19EB2B3B0C6B8BDEEDAC8B78909B1BB1894B382E6FCA4FCD63390CABFB4D516FB18526BB45A0F9A6AED971050788CDD044248839D954594259B562317CB163273B12B453638B70BE1085E51C5AC0B6CDD15C218103E92C53750F107ADA702D8725548CCC663947C3DD959811842B62B13F9A24B1B4A18F5691DC4CC331C362747F1654E1B785AD1C07443AEA2F6006BD670D7128A8373C68AA36FFC59797AB3994BEA35CE894466F0C64C061B5D48B9A18C5544DC0820479722795D77C85F161B865DBA01A70CC9C00C15167AA35BF0A147147A81D540346489DC58926C975333CC3D286B4C529A2E3E6AA6D2225016A7126DCB46669C72C453BD745632E772BD2DA7C1CA87318276AD21EBBB6C419EE2EAA46A733E3934C0AE933950DA8FD2ECCEDF2919D7E8A6812897780275ADF78E6DC21757C7A0A489CD8CD95126A569AF7C67BF317B146743B0D32A6762103A13698120CF7D07B72BE91177BC5D18AB5F0EB53FC4A5CC4FEB5086947F42C3516C5115C724AF7CF05049A012C8E601E8B5237E1AA5652CC5E4E1A6D0504331E3B393A6A0FC05C75604646A943AB2D79ABE93FCEAFF0F0FF88688C870D19759A41D3D361A0CEC73CC908F52BAD8\nsk = 34C91F6EC981B1830501D8969F8847B2C6BD5D5C43DFA044C43B551E610D5675BB7E7C9E393B411E69575301BF4EF4C7FD0B4B59E213905A254EB5540ACA856C370DD28899541B725091C23907C04390AD32A56385075F42A7545672544FE177B74C7ED99507E4D95DEF7C4A9F84C9687B9BC318A23EB452FB7635D5201165A47391D21A7CA732FE9B3455C44EE4E54FC3A6518D51402CD5A2D49429B9C8815CD4B1A22C59ED368ED6C7A9DF83B958CC83C4654C5CD040245543431C0D2C9091376611CFDC2EB9181B21C8417E3931AA2B1141C1051CB82ACA4BBBE6DABDA3356BBF4962C3F883D0578580477AC56353AC7524F3855DE2B00967B7BEE0668112D51CCBC139FA73374DF2685A3CC06838B150F92A64C17772053DE2B05CC4D51832B8A2B8428436D99E1F2484B127CE0D861DC8A11AB0B0019E0B3439733B36A7A600F4638D820BA5624B445349A86465E1B25DE787207DDA0B629CB472D415A42A8BA191B76B5829D4D987A2B0C235521C187A0BADDB603D755EB37396CDD57FF76276CCCA997B00CD481587CB8728830021DCBB8478A267B744A5BFD08B4ACB2C1E726121996E55B60D40F6975637831C392845D6823D4B9092151149992794F4AB29D4164A44239F07C365A87ED9786AF7A57AC0BC0D491018007B6BF7705A21B082D1E040A4F4C25E329EF9A8518956044E7683AF94728487A4F95305D4E15AAD45C040F1CF9C442C519B2AA47A4DFC29063243C21F8B838171701B4B73516944EFC4B61FB5BCA63C3ED12A123F55B832E6C312E8BC48F145D62953F5901F7530068F2C9C9F51CA8FCB3428", + "52936D414FDDC2C04F551C827071F99C7C24C991F9C97E10E051694C86789A9442D79092B6547D67AF70D8C8B074CDBF854718A882DAACA3B8EAAD0BB1C2D3E859D3EB03C0A23B290518EF88CE1BB02FE71399EF71B380EC1AEC4C7C6BF3830C1B15F7718D0E471D10234393D94FBD3305ABD09CDF070A0ABC09D7497D2F9B939794B923EB3F28B40904A53A05216A526132D9F3CC64606B40F26434142645D79481A8316E8CB0A9321A4C530A0AD139ED5953168A4AC864C726874E1366AB09A249F251CE5B1A7F5CA60AD66375BFDBCFA3D7AD23A13649C03327D409FDA64581CB00A696557945C58E96C1C889BE648C4885958ADEA79AB212A0BB15506BF5635E437ECEE47B60032B4273B8C96806639C87031B6E23B71996B4576626124281AE4CA0A8FC081E1C91667967B25F76C4F72624CB29BD0A865FD67A4DBF14ACC7A09871BC7ADEAAB37B298F12B60B6372B741681627E4C8346C0D34392716EC173B1B711B1C0A1D010DCA486BD5167223658A5C55BCD0739DCFE30DFCF9BD8AA45B3CA0B5A90243547767A1843E4C87922031819EF9249800C6DB8B0270F9CB8F2624ADF4199741870B0630E1BB1B325768C79984D5E33283A991BB3C98B6BB8BE0EBAAC47C4310C51EB565BABA36BE54F6A3151A104911C38EF78E61F1654EF35B2C836C2321A52FAC710D6B03811444DE5B8403569C8CE0444EF615DAD54AE5649E68AB437C00A2C9EA9B18F59346D8B2A5C6582D763730BBC7F24A7EE7C23607C0683A2826FBB4BAD4A58FF6E3BB3122BCAA202E6A997C647886DB545FE6B94E81456379E7550DB446A43616808AC610C3ABF273B02B1B748296A760D78F0418355F61CE2898AB3BF9069576827B80557D41000BB0CDF5881D660A7C2569613AD6575E4C528A7C5B9EC91365B05853AB200AABA1CA98AFF17A845A209FE4932F30BAC0A8873CF5DA17F323375627ADC4786E906010F6B91333112D0BEA256D3A126EB39965DB773E7C3DAEC35060AB2D782B9A7692BC40525171416E7A12163D36837EE3C731ECC38E7236AD09712B4144030213BB53258033A8EAFA677FD8A2CC013C5AB46A33531968A9A6C5E6A89613ACEEC3A4CDDCA52CF00B21D85657599D21C80692018A07B061DB607D7DF491CFE59D90D43A6EB52453B2822C7BAE0A3336833469764516EC106E8D6912C9C35432984514EA5EB9A65C3C0AA24173BB736723022A6C31F06236639A0E0A25713C5A7855399637AACDC033C0117447730747507B69BC7A3F84621167AC83E4B45AB03B613AC4BD7217ABB799027B1A33F55A9B550B3857CA53438DCD157B103C9E5987636A96B26372851E703A9BD36D85E966FDA580CC79AF69772C2A9A7042363A3E3C116DC7711ED06FBF956DD06266329002630508B7D1CA73CBC853E62B23A02BFF7404EBE390FCF58BD57262CF1044AA22225FB36446D44E1B8171AA67C415F96DB0E109AFA31FD00631BFA23F3B6C9C02B20DC3DC1BA6F30E6F20C9EC7471CEF6996350BB87D43690C059065CACF697C63B6BC98C881D3CA56F07C34A5B0B10CAB263BB75399D162DB389206939B15DF58448837E0D443B8DF132C65BAC83D2166C780132875FAD888A1C53AEA51661C135CEA6956C2A4B87A53BAEFE726FDF09687F6CADE7BC9EF5BC25DBDCA95A0ACC47E0CAEF22159AF5B499FB6E8643C70803BA40A5938A422433053BDEC4B729744B565066962046C5D2BD14F14BF0B4030BE99A8A198B80B99EC939791BFC8572942E98D47B00814C6A85C39AE7323CEBBF353439F3961F0ABB687B4C18DD06B706DB4350FC4A2E868229272F499709EB1450C2995D9B809E77E676B628AAB0212475E602831A367D3948CDFB0D43EB0865EAC55C516069893D09F24A8176A3BECA0C6065ABCA0A3A2B3053DA2A3BCA6A7088F39D9BC8B1E685B67612413AA3B2BA4673B301CD9D87728DB6BFFE79391493A36B4AAD46339DD2B884CAC471A8F134FD1CB590819A65190AF53355A6483B6A9909BEF36C76836C77168C679757EF404A8528CD569911D036C751D4BA4CB1C34B695CAF487866CB1DE5554196682D32285490A75FB5D18D3B40539ADC4D9AD71452016A6FC7156B34014117BC0DC45EB319A1F85B642F7CA7A12164BC7A1FEB9114A7C5BA8D7456CC08A883AC86100272B710B225E49DE711115B418946F503586076411C6CA3EC11A5244774A27BAACC543556582781B273BCCAB4326B4140B5643C86D310331BFB859F80062AD27E38EA1724DC4B7C3498A8601C11F25C99001DB2868D68ECBA0019BAEA1363EF738C5C07778C5B4663447E73C742A1A6A3E708CF4003512804B9CA9358665ABA8AC2CE68B6B8B2E51FAD7939979593F8F19E19B2C18F03639776483DDB4373184A2D2741839C65F5D47E63597D14A5AB61A6BF01A8065C6756E6ECB64DE11FED0ACEFDD45FC50C1F51B045D8E096A9E77F10DC8E8349B5DA9723A1829E2EE3CC0379942FC47841B81DF7A94EC7F40BFC2B737D9725486316C2EC3E2B516DBF7CB4936217CD4B23E4422122854791A2CB136A1236677A4E42504AE43BFC93259441BC0D676F8932A757C087F806B59E6380197B37719A2FBA88B64CA54FC69AC8E2B79DF7154403249441D103F931A25283BCDED4C8B51A7995655D49611DDB2AC406B28AB2A80342F51BB8126AFD65412B06D0596622E5722465B846A52B47FC6B5842F12ACD602EF9C74065D5940D2462F7D99D39EA5F62B46F9FE297F1C01F5183C73C3CCB63C564DBC4C1C60877960202D9369B750129D91060D1708F057811E68C47C4B68781C102F2765E093C94F6C43B784679C4257287680825FC5116CC04B489ADD5A009A3E65B09644D5A9A9745D249314C4693F017A6D5B054D07FDE34CBDE568EA6FB9BB56C8C5023142CD19EB2B3B0C6B8BDEEDAC8B78909B1BB1894B382E6FCA4FCD63390CABFB4D516FB18526BB45A0F9A6AED971050788CDD044248839D954594259B562317CB163273B12B453638B70BE1085E51C5AC0B6CDD15C218103E92C53750F107ADA702D8725548CCC663947C3DD959811842B62B13F9A24B1B4A18F5691DC4CC331C362747F1654E1B785AD1C07443AEA2F6006BD670D7128A8373C68AA36FFC59797AB3994BEA35CE894466F0C64C061B5D48B9A18C5544DC0820479722795D77C85F161B865DBA01A70CC9C00C15167AA35BF0A147147A81D540346489DC58926C975333CC3D286B4C529A2E3E6AA6D2225016A7126DCB46669C72C453BD745632E772BD2DA7C1CA87318276AD21EBBB6C419EE2EAA46A733E3934C0AE933950DA8FD2ECCEDF2919D7E8A6812897780275ADF78E6DC21757C7A0A489CD8CD95126A569AF7C67BF317B146743B0D32A6762103A13698120CF7D07B72BE91177BC5D18AB5F0EB53FC4A5CC4FEB5086947F42C3516C5115C724AF7CF05049A012C8E601E8B5237E1AA5652CC5E4E1A6D0504331E3B393A6A0FC05C75604646A943AB2D79ABE93FCEAFF0F0FF88688C870D19759A41D3D361A0CEC73CC908F52BAD8152641A683DD690D4AC3EDF0261200CD9244AE7DAB962ECA2F3D22A554D0802E92CEDEF206325F68EBC282123EB0AB02874F8A3C6665B78346775351AD99CC3D\nencap_coins = 5741C37BC610ABD8F8F9673D0267895A4E77235ACBDB294ECA9DED915410FB1A\nct = DA66799E03FF8D30749354F70AA6F14C7F79ABA7F6EEE8523E877A94C879111BBA4D44AFCE3E935C249E931CDD6A5D0FFB5458C751AB4B95AD6A4591150C99D9116164AF5EFB76B79FDD3D70D2736F8463C840B6FBCCABD81A4A3ECA94754073B99247577DD9E0CBE3873A653D682F7CF45C9AC3E39FB53453BF8AEF66C31A0DB9CA4914336FA4EE9F051599CC7D71A099B7BFC84C4A114479A2134FC139203CE4200A57ACD91BA0775EF886C5A53FB72F0B1E243D634A16DB15BBA3737A2736396D7088645311AFE4F0D6449E79948C1E9CF81E92DE34CDB4AEF1E5D88FE2BCEEABC3D26C38A5AC26B90F69944F3C4322121535B1826CC8A01C6F8FCA461629DB05E631BD0F3A92E82A130E6ECA61E85E20AC6B909B34AE13FCDBB003C36003396D762C401F62087D938894DA8530E8AEC05950D79F6D327984A7F9849D04C28FA3F4CF607E8601CAA971924040FEB7FF4B682782A0234354130D51068AA369A36C97489C28498BEA1F9227E947858A113305A374CAE7ACB7C2969C700614A4A5F06CB90B8E92CA2F34119952A4EFE5D9E17CDE7FD0FF88BB5328A50CE6BF51BD2F605C7D5CF4A58BBFFFA5766D3A96BAE019D154EA3912DFD1940D4625C203F01A6121F1B98F6314D3006A5737E2B1EC99111662795D483F53EEA5868D0D6DC8814D4ED87565D3D2FF13E7F75F1D3FBC534EBE6D4F2214C6E443E79C42BBD61CBCCBDCDD0969304B78C37C693C317AFF10CAB6CD297C5FF6AB4D18422C89647EF12C6B6CF9891081E3A7B7D7B1C557048061CD7C2FBADAE3E83D74F540F8AB6F552C7327D7BD64E1C52DE3AA2B9CAB8BFD262884FD1408528C54F0E42F2035D262562AD95C08F30ACD89102DDAEC4DB7A220642189AD352B9F0DA6CA2E753435A035DCC1B2A872B7DAF0B1E8453BD2811A87C2D899A1EEC4CA60D9DB25142DB2C83AA454AF6F2D04BF3D4A8C630F4BEBABE3175C6FB0CFAB61F2FCB3C2565ED90D64512E3D5520769EE3EEACBB4DCF11591591B9DEFB99C7EBD14D15E4017AB93A522286A73A63DED5AEF1206D8AFA92080F78DAA136D850E87110D848FAB182B3A98AEEADD432AF6D1645BC1BBEC3C9078A2700D668AD328D421E6C3941399E70CAD1880977A0504ECFCE188DD4ADF4D181002E1B52EC6D0FFB7296D3B1E84A80A9283FFB0E749FF132DF4CA6DF8D11BBE3CE2D326698B890ADE8C1729881DE87C90AD3AFF8C51100E51F17BB7B2DA4FE15277E905FA89E07524B416179A649F31BE624B96789BE4AEE4F786D55206E9B0B2715422C71375BB055C64CDC38CE79267A39DDD2A06A6E5C4B71314A7C36E781D088CA69EF52E482E7ACE6AB91A8C515798AE585F054CCB6EABD2EA356668759184453ABBC4086C7D972D8F13C84191DD43919857D6B1FA76F60C6E8EEA5F2F219FE0DF150F36A659DE8878DD05F408BDBC8B6ADAD8CB23A2670FB516EF545CA0271212EE2A989B8EC76B66B11F55083EFE5C8358DEBC6D666A0E320BBC005CFF55437C7F7CF15CC7C1C7F006D4C428672950D6C3C93927DF099908D828C28CF0829B769DAF3BC86FCAD9708C1B66AD049339D2D3337E7F2DBBF3A39BF97D5ED14DD2904B89722FF54B9C3246089D9446EAD19E1B62AF1F6DE45F5F15EBB8A6547BB9E6259BC40FD5221EC2ED06964AA57A0A56FEB4B9BDC1573E25D35BABC65EF25B8CF27AA18EDDC74BBD9AB0FDFA714C6B353505B04CF0CF63F6982BEB46F34BAA905B3DF3B0A443241543FDDA4465F2336F989A7C65EF5B1517247AB5856199975B0DCA1DB3D5646D0E0218A737D012452EAF8BC0484F9E3D9B0BF231BAB5CF037A61012C82CA986481755535A64F1911983CB9A90D33E7395F738862CE202EC4E84137B09195D8CD724332219D6BEF28C4AA38A35617AD9CD403E554D6CDC2A4CDDD26A7A781A233760F96BEB1BE4F4872A79FCD54A73268A5271AF5DB64A5F37D2452DBDACB497C7B24AD9013E2D4353CA5EB98223E1864810DB17D283C5E30F189E93B192BAE53D1DA9B2272EA5270856FC41D0BBA93C0279BAA76F330429EA9AC3B3B24AC0535048CC94489", + "8EA5350D18AD08AFDBC624ED80570AE2F4077A0D1182DEFA35BD14E45E12B49B153661012F71A1B342C9392171DCA37FB36EC25FE2BA738BC4F62BA457970A4134755AE5EA9C199424DAE8CF8856F15B60A49652D7820027CA485D9B732\nss = D702E489BE8BFDE28B58F91E1C17D7FDA656E0A35D59B1C890F44AA88A6BF9AF\n\ncount = 64\nkeypair_coins = F8EE95521060C03BB8DACC79F7EB7DB640F545F315613A35D447A09E504CB4E17373D22CACE9F3A09FCC5E85067EE05C0E537AA0738F79101236B4E7D28F2889\npk = 3C2199C59446AA08C7646C1F567AC35C18B82CB24AB1C51F2CE8A79BA51F432672CCF12C23A5750E9C9A6818B628A49A812377587323B1E63D8F21A9DFC76095827CFE352667C16E888B1A621736C28C8ACEA052F8C4618591B36650A63CF00B904120CE716FCFB40DB52347B12486442267BEA46C1B778A98268481155C53A72C5731AC2EE36FB72C61B60273D1419AB8E82611921C99DBCD4E209D2AF64A08AC27BCD21FB7B9373F8A84241A1BAD24C8DC11203B3554AC802DCD18104DC8833A4B60EDB07F9135B452209B65229BEF0BA922CC60E32954096794B7248F94B134143B0AB3A8C2288A6065E7ADF5049E918B3447AC156BD462A204A6D8D680761B9E70D8796FA149DBD45509B6169BC34EA8B876D30C7A2E51943D2AC5897486AC67B2FBB9B0BAFC49C39CB459C8A397DB06693C20CD7CAA079576834A0991761C79FB660843778229B2AF530276C345EF8C420EE395455AB47DF46609B0BD34E2AA7F35AF596750C71C4AA2754AFDC48481A018F2499FAE61584ECA38F331C571BCBF73AC01B349953081908979499F2BCD6939B81A5199FB5838324928372AA2EFB6C8DA025873318C08117FCF47302FE99A31B923BA947871C6AD7168246341AE1C567F8706B88F240473A646173A58D559CB5D3865F2072D99B78CB7D63617FC05DD16391830CC22E2CCDEC55C46F84262F59D1718C473626F55C8022849935B3A32F55180DD7B67CF496C999189D177CCEEDA613721718B0A2E74E0301E667AE8AA36D83298B2983054A3824D64097E380585C4288BE24E5E711F09E72D31D29164FB34EC7068987241266587A367B067284F3595663F927255C66BC7C79E5575744500792E8236288A432B092597069182C28667C51B76C4A422DC8A023127B58979290043CC79011205CC7E61AED141BCB4C090A6405263E3C9D613A5D1B5B7E0A8C5915611FEF213EB4A9891D49F303967EC3AC40EE145E8724E8AE90C6EAB8EDF970FDDB459B66B654C8C1FE039CE07EBB50E441BBE386AC39473B9A6A26F0BA3799155BF047ED33A56EDA493C26B6BFA912CD56623B18254D84C3E8E34A23B3948D4579D1DC301706C835D879787CC5964334E52875836E4B105FB9ABB613BB3AC9A65BA8F39470E3AA20BDB1741F1F78D527555E10CAAC4E17F57E89A520514716A6A7FB3A5E4C8792AB5BDD7C6BDC3B6B78AD67054166DDE3BA339F364DF76281D4515E4229547D235BE6B6925063CC3832E08D192B6193D6C02A0FAC9629AC6B431846BB39A9D123CA6C147AB5AEC49FCF819403CA08684A418C04E6E6397CAD03B77B2BF3624B89D176F87C82508C9CB13D60B9B3194FF52A7B58413088B2964B2B92B94463F2CBD92444A888154410990C2D5C018916B5F7059C2087CDAE1BF06942D05D997BBCB289BFB0725DB84F6E23C96DA5C64595E96969097B8B9A28C5ADBE36093203F01039A0ADA6E63A21D22794405940142E0C959BC624619B964DC6B60A1CD31DC99C4342D1ED67C534570A658361376378E82896F216E57C21159967212481845C112FE0A3B1B4B888CE4C22B3C73FB87084D645359A23D7929704738AF9EE7ABAEAC15CD8C6D87295F849341BDF68B24A85621F397FCD31A209B3089151BD44C9D90092EBD2844FE173392A8836876CCD9D97CAD570BFB55523CC7763502ACC4D337E8634F97647F4A0996514264B0A3C6681022B739A66A98B92CD0577CF1906BF72CFDB23605169D0EF37AB96BAA1AAC1322149BF682025C3BB7ADCC79C1A9C8FB52C3D4B529FDA48997BB71D18A3D4FD201000C4648B634778B7A5FF190A27C1E631381B777AC0E858DB4033509C66BF1BBA3A5828FB7F578E8FA51C7C87BFCA883EA96A968D78BF312983E6BA51BD05617C90A1677159DDB6D4FFB62B8642E56ECA75CBA3F9D810102037B2C57C7502A60831B15B49C87B7A14FCEB228D2F0B82E1A5CB632B8D3070560977B24D591E7CC0C07017A09104D2EE24E6DC2C3AF1231AF922D62629C32481BFBE309D5A0CB4B61C2ECCC7E9BF05FAD1A7FCFC3635192C90D76668FC91A297CBA04621DFEFA729996BD118A308491B59C16CB7077456B0B48DA4757F23B90253CA5A2C1AEA9A524E08293D77022F66B5707AA4F30F6B099332CDB36B957F6ADB81A6AD23469A7B265A3E05B2DB868482FCDBA0367177BBBCAD04F3A50ADEB85DED90BD59DAB\nsk = AB4545850434076342EAE8409FE0590C34955E860267305FCA05C347BB3E53BC714E3134A6E9B338674A9AABB02F021D1A09A190757F03D573C27687F7E35F2D77294D10CDED732218395B344523F1B704B27689DCC286B5C98217F239C159AE5D655436F00517A50C6DC6B7F4F111E7F37A0F319BF6ACC7B0E3345C9367B2A2B8D9D644936220C0A817FBB38CEB3469CD55C661E1C58D06807504443448C4E53204DC59C60A5153494478EB4056C9A85967A42EBBC287AFDA51FDD6B84B285523D41D80A56F7A68A168A4527D902311B18D5E381CFDD578BB7924FE687D3AEA5607906815181171A727E4DBCE1B678762A8B03C2A2BFF1635CA85332AE90F14B880C5EC4E5389B7816AB885C44A8D83C5EF0C4C754C7B6E673D984938D3CA4EB0F5B83B90BEC27172AC85154EF27B91623841E188D76B040F958C38C8A112C05B54103E55A159DE0954F2477E798A573339508B7C2AC3872A623429777BA3179060135C083E2198D1E0AA01967C39C27372A1A36A92BAC3BB13EE3C94B1F0391E2702C50253DD497F16F39BDCB9C68CCAAB6312084884B113E70F38555422767F4E613B2E87AFFC01395FCA37DF0A1AEF74263C1001392732D9D1047CC7C6FB910AE6136C33094526876A113514F2918909532A759617DBE2C97E72176490995DC82B663655DF65324B1996A42150BE41B2A1C90F03B2A6F04174DA1B1CC7FBB024C3C972B9714300C683C28A90F48B01C28607922C3ED25601A609673481B365544B7C36A9550EF20C37005B0E395A268E90CE1A5271E1421B46303B80CBCC81E2894D7569E82C2F5D8C6996C766BC505976628CADD84A3F468C67C209117C8254BBAA1BA584DC2661728A69E959949ED6C9F1B42F01EC8E55614AEB7168CFBB5E16504EB9F585C7789C48E59C17B5975C444BD6E32A6654BCE298A605043BD367400C14B1D8E1A592A034543C04A44C85711AA66C807FB07378FB525600C19D9A4A9A8C920BA7DB0B1D912A45F2B6D518B469E9121D25CF40499196376D3D92827E1B96AE255AFF288037793C7DB07E1D15533C07162AACAE3255C0CC368E2FBA3FEF09540952910EAC0FB2F3AE376AA666FC97A3E122570CCF797C79EC575835E0BE6E808B3CB1B72D8241C3679BF15020B6A63BE65B95A2C9147EB98C6553C71C550E37603E6B73C877C94E7B603A22ECA456C1409D5AA049673D0EA17C123B1835692253FCB589186BAA498F39481C3D0640A4D34931033B30F26EBED6CA9C49BA6FB219D6DC8461937284235A6417CC9C0CA0AD385B04B01C81D5A7B97A34977250E3679AC55C3D76D83B1F7B99DBA039DC179147223B5D6C11FC9109DC062A1E4B7C88C710C449320949BB4405B28EA2C04D48C58AABB46EDAA58E442F3AB6C9810B6D702855F7CA91AF71B0E574BAC1040DBE864DDAA76827874839414CF3418D1702C6F368A10714CB25E208C8A5779F639837A07E348841A11714F41399DA175C49678307D3634D6B9921880FD43CCB8D7842E5F34CE44A4923E7CE6B671C7A989AA748604D147CE7AC25A1533E80AB321B7AACB8D523A3A6298BEB0CFDA435D77714993173D080827FB07B7855769EBA987696AFDF58231F361D2164277BBCB26DEBB43D1395A23A8D890A2CD71362E2340EB68B84F0B23345D1C449353528C2998584941722A304677008DA1A13F8C8FB0687CDF688C707A73D121EF5C609C2150C1AD346A2F85FE3F58AAD4280F92C35125345610B901C305F6042ACA2F6CC2A4A0D1EA46E378098125B1956F12F54154023549D64D799D6972E3B283108E779028C1F7339A9C3D8676CE316EC9B9F09D654D8B84AC1D26223B36AEDB584084855374B0562A113D02CCE4BC1AD3EE1B69CD76EFD0504B48724D25C3416FC2D12EB58F174A9278A6620856763744A1F863BAE4504C779571D83849A88C023F15CE838B524A9C450E2B8592B98B4C89CEB35990BD39B74B87CEF750AED976F40BBAFA6F03C531B0A9C47AC22FB2B24609324F262E3233274F088E05181B9AB973A4C727EF53D40F914BAE5C99D919537E67EC61061C7B61B7D17B72ECA748894A25A5A97D5876D4608BF5C2B55FD85243B1117FB907843E47C83D29E51A11D53419051461BCE776C040C848CB8522FD2C14880B87FA970873B8F3C2199C59446AA08C7646C1F567AC35C18B82CB24AB1C51F2CE8A79BA51F432672CCF12C23A5750E9C9A6818B628A49A812377587323B1E63D8F21A9DFC76095827CFE352667C16E888B1A621736C28C8ACEA052F8C4618591B36650A63CF00B904120CE716FCFB40DB52347B12486442267BEA46C1B778A98268481155C53A72C5731AC2EE36FB72C61B60273D1419AB8E82611921C99DBCD4E209D2AF64A08AC27BCD21FB7B9373F8A84241A1BAD24C8DC11203B3554AC802DCD18104DC8833A4B60EDB07F9135B452209B65229BEF0BA922CC60E32954096794B7248F94B134143B0AB3A8C2288A6065E7ADF5049E918B3447AC156BD462A204A6D8D680761B9E70D8796FA149DBD45509B6169BC34EA8B876D30C7A2E51943D2AC5897486AC67B2FBB9B0BAFC49C39CB459C8A397DB06693C20CD7CAA079576834A0991761C79FB660843778229B2AF530276C345EF8C420EE395455AB47DF46609B0BD34E2AA7F35AF596750C71C4AA2754AFDC48481A018F2499FAE61584ECA38F331C571BCBF73AC01B349953081908979499F2BCD6939B81A5199FB5838324928372AA2EFB6C8DA025873318C08117FCF47302FE99A31B923BA947871C6AD7168246341AE1C567F8706B88F240473A646173A58D559CB5D3865F2072D99B78CB7D63617FC05DD16391830CC22E2CCDEC55C46F84262F59D1718C473626F55C8022849935B3A32F55180DD7B67CF496C999189D177CCEEDA613721718B0A2E74E0301E667AE8AA36D83298B2983054A3824D64097E380585C4288BE24E5E711F09E72D31D29164FB34EC7068987241266587A367B067284F3595663F927255C66BC7C79E5575744500792E8236288A432B092597069182C28667C51B76C4A422DC8A023127B58979290043CC79011205CC7E61AED141BCB4C090A6405263E3C9D613A5D1B5B7E0A8C5915611FEF213EB4A9891D49F303967EC3AC40EE145E8724E8AE90C6EAB8EDF970FDDB459B66B654C8C1FE039CE07EBB50E441BBE386AC39473B9A6A26F0BA3799155BF047ED33A56EDA493C26B6BFA912CD56623B18254D84C3E8E34A23B3948D4579D1DC3", + "01706C835D879787CC5964334E52875836E4B105FB9ABB613BB3AC9A65BA8F39470E3AA20BDB1741F1F78D527555E10CAAC4E17F57E89A520514716A6A7FB3A5E4C8792AB5BDD7C6BDC3B6B78AD67054166DDE3BA339F364DF76281D4515E4229547D235BE6B6925063CC3832E08D192B6193D6C02A0FAC9629AC6B431846BB39A9D123CA6C147AB5AEC49FCF819403CA08684A418C04E6E6397CAD03B77B2BF3624B89D176F87C82508C9CB13D60B9B3194FF52A7B58413088B2964B2B92B94463F2CBD92444A888154410990C2D5C018916B5F7059C2087CDAE1BF06942D05D997BBCB289BFB0725DB84F6E23C96DA5C64595E96969097B8B9A28C5ADBE36093203F01039A0ADA6E63A21D22794405940142E0C959BC624619B964DC6B60A1CD31DC99C4342D1ED67C534570A658361376378E82896F216E57C21159967212481845C112FE0A3B1B4B888CE4C22B3C73FB87084D645359A23D7929704738AF9EE7ABAEAC15CD8C6D87295F849341BDF68B24A85621F397FCD31A209B3089151BD44C9D90092EBD2844FE173392A8836876CCD9D97CAD570BFB55523CC7763502ACC4D337E8634F97647F4A0996514264B0A3C6681022B739A66A98B92CD0577CF1906BF72CFDB23605169D0EF37AB96BAA1AAC1322149BF682025C3BB7ADCC79C1A9C8FB52C3D4B529FDA48997BB71D18A3D4FD201000C4648B634778B7A5FF190A27C1E631381B777AC0E858DB4033509C66BF1BBA3A5828FB7F578E8FA51C7C87BFCA883EA96A968D78BF312983E6BA51BD05617C90A1677159DDB6D4FFB62B8642E56ECA75CBA3F9D810102037B2C57C7502A60831B15B49C87B7A14FCEB228D2F0B82E1A5CB632B8D3070560977B24D591E7CC0C07017A09104D2EE24E6DC2C3AF1231AF922D62629C32481BFBE309D5A0CB4B61C2ECCC7E9BF05FAD1A7FCFC3635192C90D76668FC91A297CBA04621DFEFA729996BD118A308491B59C16CB7077456B0B48DA4757F23B90253CA5A2C1AEA9A524E08293D77022F66B5707AA4F30F6B099332CDB36B957F6ADB81A6AD23469A7B265A3E05B2DB868482FCDBA0367177BBBCAD04F3A50ADEB85DED90BD59DAB9CC95EFE512C84010CCD7118A92522CEAD44CFF28D6E223F76702A47694C8F057373D22CACE9F3A09FCC5E85067EE05C0E537AA0738F79101236B4E7D28F2889\nencap_coins = C4D1D167371706468915DFA7F41E45FC48FC5E02EF79651C81C87BEA7861B2B4\nct = F36059C15B9D55453538AAEA8939DCE8716B0DBE63A61C13C32D10591B2255F15B930DB40542CF7A78F97D8FAC27532718AC6919D4B9423058FEF7BDE938F561C61A4C9AAC5E6491D16526DC9D64D045528A63E736FE1CADFE6FCD5190664EB4B7C544D9581D364500C2E17DA7EC5C6E8F4C585C1097393A051B5AA2EFEB530B9801280C2C16174594E1A24266E61BBBF2654E20C5DB6D08CA679A2843E2AE34062517C6CC52E22603507EA6CAF55F3B33746CE11C180462299F192C240AF7F74B0FE29FECF18AB806DE6AEAF97240AB58FBD660A0A50DA2FEDF0F9A0A7C1149938F5411E5C67783F580BEB46441DAB1B115CF6512F0A20933D3F7A45EF4918AAADB979FC685F0A3458B7A5A211C6ECD9E68EF4ABE1BC3CA794B3B548ABF73F2E0AA905AA18D97EBBE2A86AC1D3FD20360A9139B5FFA821A8C9EC0F5B860BE61386D81FBB9DE2FAF4A9F5B7DD1AAA4199295B1AB4FD8835B9D2A1792EEB8F3E46AB082538AE0816E716C654BA3F7D32ED9D030861E999F0C22C7453248D73B11868FA995736E2E2FE181A39E891768DA24BACE0157CA8D0BC9EF68EB91AA5797026F788D87B8CC367856FE10BA5919551E8BF2F46F67992EB7EF697BBA02FAC67ABA0B5BBDBD28FCF94ABBE971D59D71EA70119AD988963A1E6ECD0782482F94F96B2FF6CB63B7B5ABCC93B4B7B89684BB370EEED9A2A8E620A7B97DD97C0902627E849D44AB436ED545AF3BE0C92BC1148DFA499A5AC7493E810C31D0352C82D373C5AD55504EAD1399EF14F4B23406672AF437D44BEACABB1D42352085A8AA35686455EDF611F0891203A42090AF5B1946C869CCCA8EC44250660D9B6437711068D4CF6B35144550AD82B12789539C0D21EAB3025662FD9D3716956BA639E556E14CA7490D65D8E8EE93C9EFCC63449C62F939D82916CA6452B61ADE117E01C277E33AC020A76E8DC3B479CDE151B34B241D21097440905A3E6D74EBDC2670E026CE49A8CEA6CF0A0833A3BE787B72A029CAC2C0D96E028221CB937281348AD03F3FD8305B82CCCD37510FC53A11603F238DEDE2E14E799DD2B28C96ABAE6C7AC9E26732CF3FD0BC1043CEFA3FA30FBBF2294426CF999063443097102EFCCAB84F4E354CC2812739815ECCFB2895A687A8B66D079280983C1CD33B7C3BF6AC84979623C87C0CD22DE7D07C1E5E06819CF087C249D3E02EE0191469A64D63C086E8D6851B15DF9C8573BE5A5499740E40484E6F52336E2F10201E788A8BE42A5CFEA22BE8A08ABF69A950D289C71B6E9059E07250C29B968B5A4F3D34809A8E900CCB8847EF634B3D807B3A12AB612680C95A0966023851CF710DBDC2624DE6514AE5767F15AB696584B48E21F918418B2A0768E2891D5E33BD7D0AEEB5016BE54B44D51849B104726790498D53C179E65798E19EA8248BA28CD2194050E8E5B2DBE3569D85BBB3F8672AA7C99E13E21B72F7E9D283F220F446EBA479DCBB3BC294445B0CC799D2554FA90D4304050B78A89DBD5AA99871CF6632F179C7491F51A606B90849D293D47523E162B9C006BB287C661B7656397103DB29AD411A47D95D9DC19B3065B7ADBA8DB41915DDDCE9971860B1818BCEC3AB1C6AE9AF3D44D9E152F8B1F38163DB05E250682839D7304D706101FD1B06BB46FDF67AF7735C7A4BD71A1034907BA387D6BE58427DD770823ACF41F1FB7BFD029353ECDE829A6E19259B603402C4F3A05FA88473DD802F92BDF799952990C7495EDCC65835149E1D96D2D7431128C5B6C688F3D95372371BEC7B9ABD9D5173D106D9BFD40C169983A63666ADB1AAD17183725092FB3D4D22932D1E8645F7A1FD8C5604B4F662C8E3B5ED10B144DE161923DE1A79B8889BAA1A79342CA0A72AF06EB0A045104C43147FCE6833EED49C31EFE6467DAA7E6A429D6C534B2074A66BFAD0EF79F291C01DA6699E5A344EA57152BC2B0BEC4F13964289F1F3BE12B1E159C497303623A6DEACE0BCBA1363DF8616BE9E176B7D2FEC99FC438A526DEB8CCC333A51E94609773105537DFD71A1CB681F77DE18E0EC0C7DF010EC93E0A437BD5361F450B8E29C714F8EF702E7971D9D83BBC4B4D9C9221AA1EAA470303CD93BF3BE9D86A24A09E44C5B7C0B0A2DF262513058A8A7C7F945EFD93ED9BC66A2EE2538C2A8ABEE492494BA1952D7B5C36F7E7B78D14852051A11A4511ED93F4089300FE26B35\nss = 8F88EBC3E728A5E62931050A9E36A3788C6D4E8B11FFBB1A40E2E1C7089B914F\n\ncount = 65\nkeypair_coins = B8BD0493A882E3A49B4E0F6256FB1FEA0912562FD9BA26EC3D6C9CC12C8973ABC1B070E4E519D727F677E011716436BEE9DD0188FE38C00D0FF425AD794C07D1\npk = 5651279153AF42D2940A191C57E30E0F1C6A3BC553D805AAAE5982C663C2DD034E6BD48DD4E0794D55BB26379871FA7692FC7FB61C8F0565916DB30861A2A61B346986697690D16185753395060B229326681B16CD5B8069FB5498AAC4AC9023ADC380AAEA764FD8625F765F5D73A1189A7524A6BDD1209A8A23BBC5D96C54B89B9F256D20F396B6F61E47E0989AC04CFB267B175A8B38395DC3E976FEEBA1967ACE1C491733CB3B005580FBF666FF6093597CC59362CF60D074F6D33C3BE33BD02BB0D3460ABD45889CBA06129AB11FE978D4749A675C32E2E9BB2D6816CE198BC5E67BD6069666C6B1EF780765664EF650C9847566E02C116F5318D1FB240A167A89B2381CB4CD7AD60EDA125BFAD338BFD668A008A9F9354999949CE5FC09AA21025A83CDB2C7CFDCBB3E03E0212D58B78E00AD85CA97E3F64A82E79D26053DA439862EAABF9BBA6A11F225CE27BE4CB2AC2EE73742DB5C074597FB25B50B83CF03758853576C8AD4C8E748CFD8306370672F20F315474836509C93EA814C9C77A4366325D13C52B0D5A231D79DDF765E774C9C60F6A2F7B1377630BE03149A31D7112E61B32296234678BEBBE05BCC4857453858B06680399C699FD23A9F96B95F5978437B5D453704C32317BEAA45222133D6CB8A5E984633081170C154D68674896911CE5014A9054C37901411BA72F77474B5591E0E1477705A3E1B535D4ED3B3C1D043DE517B23035239A39694005C00CA332D9B5C98A16034550D4A92169966882BCB28F01171E276BB36F98DC3DCA74058462F2CAA4D5A9E60991F848B6C519C45332B18232B900D9787DC78A685360336B685D5301315923F8DF99D34B8267932496AE4981A2CC94739CF075343DE4231736B42D9866B0CE7030BE42ACA98309021B24A1A518DD0107C2B03A75552C169B605635323D9CFEE4C607C656724B48F523A1EBEE51393E1538DCA234D864066F7417B1B67968A2C03F9B85255148A9409BBE6543BE9319A3777FBC586BAC8AA5574612078A6E9A78640757F63C1646E015D64066402A2A8F36B7C96E0A50EA13C220103194BB188C6947E533B1A173CDAF225EEC27720A61BB3017205E98258FB470641633D955D14589BC566C9FCE9590B6141F9C662BAA60CEAC1A7B0E518E370C27DA21E2A098D62433F2FC336340851E2E536E0B2AE8C2B2B58057B5D30A8FAB602C48CCFADA926455549EE4C15F2369F58742D5FA85415990FAAB1B76EEABA47D05A0C35653B36192A6B108046BCA55443FA075F072270E836293FF543D729400693483F7B44F0C65DBB17B5919858877ACABD77CCAB92446A09C8BE6653F9398B4D5540E8544D56D5C88DD20EA99344B747304F56B2AA725F1A858EB7BBAE293B891CA61C2D5942204455CB726C29A23231EACFAC678DBD002EA8395203172B35A448ED3944BB07BD2E11B9FB52CACA2213DD482159821EF5D9A98D09147E272D3A9B84023172D0D1ADE55662B02A9574C13A5D5B79575C25C9D46BC5C766E4768836F787CC6A771A772518E7C5A2F4716E007900DB8ABC8A630916A268B080CF12AC427A02C474AD28CAA73A5793BB0A7593913DEBFC4CD353AB92BB23D78A2822527E58F52F4D5A70B2F05EB0E6231DC43E5FB7C27BF6870181709F1B0EF4175753687A66261F32773DCC520C752CA7AD6344155BC63F000E1C18BE1D154476A4A639D2AE5E36BBC157A7C7F8291B6506F12AA8003784927284FE1B1A4FB70ABA9A39D0775DFA293F9A29A4FA3712FDA54C41E45C6696ACA509D09E42618164C34F78B5B385750EA93D39ABBBAC58640CE09E5A5245A37847C78765D731596BB10123F51793EA5D97C0321FB5810A22AF50406E53806569C53750153CA7B49DDDEA12BAF4ADE371B4C7D05E29369A5D1C71EE1BA62DB26C74B456CF30832018CFCA235B32174C031C53B4C653EE205C632218CE05676F2878930334C2C284D7E3B73683CCE303694E68BC7F95B0D186ACF5101D95FB6CE55ACDA6743C7512638E42978AF9037272A1A5E23E3632059EE1A3367CA9BACB27930700D19327A0C6AC9FB57D3E41BEDCDCC47EFC18653C2C5CD78200AC77B066B018D137FACAC920790BC9E593CC243761CAB947818E8AD7AE67", + "01601644AACCB78EE7BC4E233AAB6CF57188333E7B4D655C9F1EA4B448FBE32C4996FC298D26CAE25D276BCF6E66BA65E3E97791\nsk = D7E3338B3CA1D6118B7485BF85AB9E8F6C36E158B67D2C3530B0A544B8AFAA0A8604710987429D0D1B1EAABA8F06422E992C475DC4CF909061EFE673A3547575E8B00BA47D5A158C22E6B2C280B3152165A5A01A43D801E96791B6D99C92C0B0602C94C0B13F2672146A7044E4372C5FA8843FA7974692B0F292AF9FC3B5793092C705421E6AA39B7B3EEC76694F5555985A94879ABF737949BC33CFD1F8563565B2F345B6B3389FE061509BE046B3A048A73599AC20466F0707E9B46045352F94507659BA428CC6994EE3375B07D09AD3BE1872C15692C7394626CFC01BF5435D7922BF9199533A22CC4FF021A97C571DB311485B36E2A3344EB880C67819AEA18B09919FBC57CBC11CB228F8C24F38A445C512245C3A5CBC65D20269EE849BC268899981B9F334704499B60A891139D9470A1A147F38470752C4EAEC5B14D51817FCCA22E7BC1C585CD2189131960A9E9284AC7940B2949707EC7A67F22DB280775D8163394A3A9557BD48F50C26F177FFE83030A3455DE1196A763F8AF156DF73CE3BD07AC70447573A79DD04A59E8B40E39C6FEA736E14F1B1B67B5CF556C3ADB29FACFCA4E6D8B759D37737863DA2A7AC4A645A8F202AD61C17068385C21415F7E14146D896020B89CC73AAD60135D5A3B94879184E086F1066A9F56041B6029D1F538FB5B18A7A741E04E2C158B69927A1A7708BCC411988C0C315D0D1BC3A31B0CD473FCD3ABACB1BB3EB23224379B5350081EFCB8C45584D3B845E2500420453718AD83194130983A355B1388BF246B9FE7400443C52629812FC1125C3800C3F824C0FF95BC24A2E8B306D5E3278FFFC585843BBFCD06D2EC3482295717A5111AA7B6475040083106A01491CF981197EEB77D9B01C2BE476F07C59CBEB5C4D19A2000D61546A9CC149A149BA8E57CB0ECB3105D94715C7B1BA7800785EDBA95A7352583354B93CBEF98C78BFA946A7431813EC36AC45488B170859C098B7C6813CAB2FFB519814C3A9DE3C254ED7A144FB6D15B183CB48A9021972233382FC8C388511ADD6A86837801F4BEA0DF0103B3A152648BBCDA68499352691BE0C3E5218A7C22C8CE49790AF1BCD4F6717EAA18CB489B446D24F5CE239C79A6E34215E87BCB8461B5B509C895EC22F94C17C3BCC5904D968C469B200D3322B423761E3749556476D925A915971A62A5A330ACBD106AD77DA7897815CFA31CD44310D44915D762164B6170B2916B5427C694FF3340FB16B73500E92833ECC35BB25DB6E652701D85AB215B366A173604C2797C2A9C420E069E7E4B3D1120DBD1C196D105211134478D23CC4428F8F56182FF3A51C7B84F01A08BA157E86B9374FB7C2E7ECA3D4B65F4A73472E38C6F7C06883C99C4CE934F9B04436D250EF262C42D4862B90C11F4924087469210A25CF4CB29D139D85D9C904004CB246348C60736D707B2B9B111C91ACD3937D9E8934032746AA5025BCEC8BF637936448A0DD67A27DB2A74B60BBA82BCC87D73D4A9033C427A85883613EDA43829C7CA3C7A8F24364633610D8199A5EC8038D0B6686ABBD47692ADA94282C40799ED4BF8ECB65EE7C8B2047C41EB255318C139B89CE909831FE3024BAC10B4110CA34F1BD752858A4C0C307537263723987F6C3E29918FE816EC4956C5B4B33D532367F14230B14357E94BBB7E8A947453E4EB606DE4C695468C9B12458340CC59D0B23B01B2255173AF1206383AABDA0BB1FB76A65A814BB2A4A1A0108650617090C3A35EC675650745381E56658CBB71A81CC386BCCEF66CD599B1819629EE02015B4928A5D12838892333974877A2995BB2B73BF3B292DA0AC34D26DBC501A2C20BE0E054B8B0BC541BA92D135118A5A17C19A2B3501C60921B960E013F88CA623D4B37717BA5882BB3BDA2BB146C42CA4B339A01FCFF7C35EE467A4E7C282F175985BC07481BEBF5395E0D3843759117459C2B7A45985A672657B787768C32CF37ACA5A419743C70F48BB78D53F6D65B5D3D079907975B77698649292AB0C8C93938147B6AFE695B9774881CB11AC88AC3A1321965E598B4E01B76114C6B47316657B01116412B0E4C5AEB29E0C1856382569FA800A91F6B7699928A12AB0BF92A395F643234C98B66501BB66B8BA4B88C516101594338EE57700B95CE6E334B7D4425651279153AF42D2940A191C57E30E0F1C6A3BC553D805AAAE5982C663C2DD034E6BD48DD4E0794D55BB26379871FA7692FC7FB61C8F0565916DB30861A2A61B346986697690D16185753395060B229326681B16CD5B8069FB5498AAC4AC9023ADC380AAEA764FD8625F765F5D73A1189A7524A6BDD1209A8A23BBC5D96C54B89B9F256D20F396B6F61E47E0989AC04CFB267B175A8B38395DC3E976FEEBA1967ACE1C491733CB3B005580FBF666FF6093597CC59362CF60D074F6D33C3BE33BD02BB0D3460ABD45889CBA06129AB11FE978D4749A675C32E2E9BB2D6816CE198BC5E67BD6069666C6B1EF780765664EF650C9847566E02C116F5318D1FB240A167A89B2381CB4CD7AD60EDA125BFAD338BFD668A008A9F9354999949CE5FC09AA21025A83CDB2C7CFDCBB3E03E0212D58B78E00AD85CA97E3F64A82E79D26053DA439862EAABF9BBA6A11F225CE27BE4CB2AC2EE73742DB5C074597FB25B50B83CF03758853576C8AD4C8E748CFD8306370672F20F315474836509C93EA814C9C77A4366325D13C52B0D5A231D79DDF765E774C9C60F6A2F7B1377630BE03149A31D7112E61B32296234678BEBBE05BCC4857453858B06680399C699FD23A9F96B95F5978437B5D453704C32317BEAA45222133D6CB8A5E984633081170C154D68674896911CE5014A9054C37901411BA72F77474B5591E0E1477705A3E1B535D4ED3B3C1D043DE517B23035239A39694005C00CA332D9B5C98A16034550D4A92169966882BCB28F01171E276BB36F98DC3DCA74058462F2CAA4D5A9E60991F848B6C519C45332B18232B900D9787DC78A685360336B685D5301315923F8DF99D34B8267932496AE4981A2CC94739CF075343DE4231736B42D9866B0CE7030BE42ACA98309021B24A1A518DD0107C2B03A75552C169B605635323D9CFEE4C607C656724B48F523A1EBEE51393E1538DCA234D864066F7417B1B67968A2C03F9B85255148A9409BBE6543BE9319A3777FBC586BAC8AA5574612078A6E9A78640757F63C1646E015D64066402A2A8F36B7C96E0A50EA13C220103194BB188C6947E533B1A173CDAF225EEC27720A61BB3017205E98258FB470641633D955D14589BC566C9FCE9590B6141F9C662BAA60CEAC1A7B0E518E370C27DA21E2A098D62433F2FC336340851E2E536E0B2AE8C2B2B58057B5D30A8FAB602C48CCFADA926455549EE4C15F2369F58742D5FA85415990FAAB1B76EEABA47D05A0C35653B36192A6B108046BCA55443FA075F072270E836293FF543D729400693483F7B44F0C65DBB17B5919858877ACABD77CCAB92446A09C8BE6653F9398B4D5540E8544D56D5C88DD20EA99344B747304F56B2AA725F1A858EB7BBAE293B891CA61C2D5942204455CB726C29A23231EACFAC678DBD002EA8395203172B35A448ED3944BB07BD2E11B9FB52CACA2213DD482159821EF5D9A98D09147E272D3A9B84023172D0D1ADE55662B02A9574C13A5D5B79575C25C9D46BC5C766E4768836F787CC6A771A772518E7C5A2F4716E007900DB8ABC8A630916A268B080CF12AC427A02C474AD28CAA73A5793BB0A7593913DEBFC4CD353AB92BB23D78A2822527E58F52F4D5A70B2F05EB0E6231DC43E5FB7C27BF6870181709F1B0EF4175753687A66261F32773DCC520C752CA7AD6344155BC63F000E1C18BE1D154476A4A639D2AE5E36BBC157A7C7F8291B6506F12AA8003784927284FE1B1A4FB70ABA9A39D0775DFA293F9A29A4FA3712FDA54C41E45C6696ACA509D09E42618164C34F78B5B385750EA93D39ABBBAC58640CE09E5A5245A37847C78765D731596BB10123F51793EA5D97C0321FB5810A22AF50406E53806569C53750153CA7B49DDDEA12BAF4ADE371B4C7D05E29369A5D1C71EE1BA62DB26C74B456CF30832018CFCA235B32174C031C53B4C653EE205C632218CE05676F2878930334C2C284D7E3B73683CCE303694E68BC7F95B0D186ACF5101D95FB6CE55ACDA6743C7512638E42978AF9037272A1A5E23E3632059EE1A3367CA9BACB27930700D19327A0C6AC9FB57D3E41BEDCDCC47EFC18653C2C5CD78200AC77B066B018D137FACAC920790BC9E593CC243761CAB947818E8AD7AE6701601644AACCB78EE7BC4E233AAB6CF57188333E7B4D655C9F1EA4B448FBE32C4996FC298D26CAE25D276BCF6E66BA65E3E977918B12F00BF09AEC2B492CF53686BEB31C558D0493CC7B2B9A9DC7265FA9EDB685C1B070E4E519D727F677E011716436BEE9DD0188FE38C00D0FF425AD794C07D1\nencap_coins = C83B6DDC081188C55BD3D236D360F73C5CABF211676ECCA5A0F2DA3550D51BA6\nct = 25FAE2CC7AA58CBE79B4A93B741E79E9402EA55B503E1B95BEBCB25812332017FB8BFA499AFAC97DF194329459BBD0C06727C42D171383F6CB5805CF653991A4C297C4A5502881497B24E882810B0BC09BA88FCFE1566682B4C975F489F33FD74861CA4910C1C728D03304795579377BE1782903E281788B1B6C0FF5B17CAFB579175F17ECC8B03121D62E4347E05CE89182ABCB08F75F35027A82E1CA618A2185B3B02C063B2D59895C64BFE47AF514D962135B6B64BBD65263E087127E2B97CE955B30E6597F2B663229CB4A1C7EBBECA627CF46770C9833D2D8912B3EC840B3AE0264280E28C3D11004D2BD51E7129C20997EC11E901A228F4D610700DA7AF920611E71662A4B735CBEEB3A12196615A146EB081AF2388EA01E7139C5073854680D0F3E1EBD2523458138E478F6518F233199E47F53582A9F5056810D603544BBA2ACC9E1616ABE418C897D56FDB741A308C9DEA348EDEC54C7F4C297F19C15781D1BE3B7CCE2DD68269FC36B3D148FEC17B27D3D703BE482BD7093C394C57CF757783FCBA0BC26AAD0BD1883C99091C64F0FC138D88EE969890AC17312797CFBD1BDB6E90D5A6D45BAD80FB095A266FB91DC736F6CCCB1997194BC4BEBE5F50B4B587EDDD240CC600CF646793D895A8552695F634464CA4DC426432A243871B53CD0D457BE53D6BC94731787D329C216E92965B5AFB44D38907B67384E039F6C279D35F298E398734BED43E943007224B658C9CD977DA9E8D46A03513889BA69046AB21DA7FE9FA3997D3DC52029C084B60A9EF0F3792BBA67AF556C6340731002A85089BB56F52EF7E404D8A1940CEEBBC4229133E9CB5AECDA0496FBE3BA41F89F5CFBF72D39EE3A2883E26C1E1282025487F25C238DBF7FE082CD469D46F43EF0D1ACB6AA819EDFD79393E0B868F4CBF035033173D6AB96B71B5FAC72A906B37C8E361E6A4D04CB7069594F8E81D96D6A70E28ADB1AB7CB7ED0E02DD6D4811C69250022DE002EAACD82E849306ECA9BD56072DB0DD09496F636C7E5C7B46BE58928169A62E2A4189A1C96D9B671485D2197EED7CD4CBEB2C1957D3F09DE8FBC4D3C9656450A0E6A87A2BA454D469CCE61378B730F0FA56A07280D496FC77BB9B779883169D4FB550CDB9BC29E954A8E541658C0C997682E8213B67", + "E89C583D5B6933277365DB494EBF3EA2CE581CEC100D589416D5B9B00E70291DF096EC96E151D990EFFAE11A29781F91359DC0D0D855E1D5FD4BC6315BB163E8873F6456C145149889C8C8FAB8A32FB8F48E990C24E2BD359C0926C1A84AF3738A6EA1B0CB6196FBC980B75D3D821048B3D96249724CFB15F72254FA4B6E7C6F63440B5CC00F2D704240707DEDC037DCA995B605C869170382114344120D1AA9DCB5014D6BA5BCC574454A53A38FA860DAC2843657D5715640493CD4F1FE7F41D974FC55EB1D94940C875AF725FE2A11957A7D1AEFCDC9ED89619325E001575130ACDE28BE3147FBF92907E30C7910D66D918B24714A4E5C97E7FC20195042356A938650CEA924B3A5643368F06693E0FC20E81A699B0E6F2C2B672518BB4421C72806672589931D3C95101BCCD99893D78306807A25358B2907901919B92A0795711AE62F33101C7E3F0EB3CADF384153725CD21A53145C760D699F210A3D3514FAB7EBFAA123AEB1EA3722DE464151A06053D62AC8429ED4C99EE66AAA8684AF3080C5F8D72133D710BBFFF2DFA0B32AD4825DB8B6498FC0E1F846C640B276EE6C5B973019A0DA14C2EC57BB2DB2AE4B4B7E1844E576FF12D2ABADFF3499137F189481FF433E7F6D2D2A8EAB4A8FEBF0C4D28B51C22D35596D9AFB57356F9D0CDEB5F3E62A44459FD4C59A8614595F5910B644AAF479488DB7A62A8A7F4DADB70DC67B0F8CA26530E1212C2B2DA2ACB5DF6041B4D35428B8220FBF72A2239CE9F78794EBB782292974705C0700F6F60FE92461167759A933C03F963E39190379FA54332341B99557F9D7C3CC1A6C7B5A17077CBF30BC667047309F830E9783FB16C055DA6563F9215D17D0BB9EA279EC6E273BD2706AD6D50EC868F0EE99F6C2DF8CFFD68EA49476424D726B1DC2E647E330E72662034CFBCEB4B7AF3247339561DD286B58857D9FCA703B3F65BF824121BCA70DB849CCBF49C5B266D43AB0A4657C653BF7235F97373FCDA0D5370B82E53A08C62FA1BA6EA2434FBB0C8E696D7\nss = 56D6961D8076674D9522BD0DC724BB742CCC11A10A0DC2DCEFB6CE62605F20FC\n\ncount = 66\nkeypair_coins = C0407E41DDF48D333978B89BCF2DB01E4613425B456249E76A6F25B8A2827BF5D89CDCF4B8ECE9F441926532427F01E9DD71B86EA949A59B14189AAA249AAF77\npk = B7FA152B25C460C63C4D18AD733422163C0E26BA99530074269C212F2697F2073BCAC61E4E603B18B575BF696D7FEB8724400848F05E91186052B05AC7828127802FBD1672B3FB45FF418374D61F1ACA1C1B93AF018CB60F006D04418088216844B29F9B64BD46710657CA30A054BB1BB0161A857EDAB220813170D1CB96F3D82365317CFEE94EB1A8BA6BF82AF10ACBE3626C7284B622B314D72469EBC76D3AD8CCEAA93E08793490EA0A73408A1CDBB066B67D1351AF5A6C477D2B90B68A3982B70D32346CBDB15EF09736B28C23CBE03D18998270013509F13C7EB95D5A03895301CF2D0CBECE1908B3C28E73E676304B0C98F7932BC246107AC07B27090C2779EA2B8C987B084D86BCC40496A1C44C751438AF5951ACF276B25414D4E37AAFA3A1FA5B8FB0FA11BE21BC76B7816AA3A1DF142446AAC524A6A41AA3411E00609F297E698026F852094E2A2E5E9146F812C283529E16256050204AD3B03F04E35AF7D36799605903E8C3E2663F9E89791AA8CBF1B8047F2A159DD909D01A3EB3F081A930B26B6B3C32B7172B77BBAAF1AD51401C645B63828842EA7B7803F9699740CAC72B56F434AB7E1C09B4AC5368DC559D603C5AA471CD673BAC5ABF0F858DBC672E16F819149094F2B144D008C06BA0C36AB2A61053629F994FC233A38576A7821229E79685C2147B7B15156493C1EAA2C087134F1222758B00B3CC10804561B24974742C2AA016E23CB19C868244C65371B6BBF31D5603B46E58BEBF638FB7924EF4181D02F6A1DA6321A7C6A74038BBAF569B817A72803A4725569C82BAC9F1C593B437B533D62B8D31889E6679251560D0FBB4F768501AEBAFFCB116A23422F48CCD89E0C645A11B0F80AD2C77A2F30B8CF415084E5C9F655824ECA8BE8835A81A6C9832E09C3C596417657657A9C85A13A54D3C0D2C427A8BD6BF91245E80AC30A1B630BD395C02296CD5D63D9C92AB3CA1A8C47C89D1A742CBF4352B762A60226CBBBCB28272856B2BB3F176AB32955C96A0274723A508730AA94730F998CE0E04CE1E67726412233E8B96C31481BD017C67F1AEA09A3E96F897B70B969CF405BA7424A0E8AEA4B45C6206752C075E2BD3B3ABC53F99F2842A459A55118A10F87D8F0C2CAF4180EC741738D6A04EFA30F9B3B9AF587C33297BEBF8778B960596BC3095439EF3448C11871D228A0DC24718F6C59C8C73234A641C47917B27B46CDA986A1857315911673BA0468641757EC5AE71C860DE0B5EBF05CF6889A170743A27350B19E406A77427421A54F1C163862A43C6EC1260D45139B7419B0538AE31A0AC78584B3264CCA519EC35ACD94C1AE5B436EAF82FECFAC8681224FA810FB0A95581528AE300081EFABD7E599517C21F469208F4DAA500B9225560B9381707440082675293DBA332CA00C4CF746F46041B78D219EDA4BBBD32CF07E37E20E15C25F8A96B5706FCC71F620ABBF052A572D73B24C5445715C77187A1BAA883A714329D619A10CC2C9C84B2C4C098F0E42C4C00A77C44845B45003B7C1BC587A3F6C10D34269430765DA39550E2B78FD7B97CD9128A5D8653B7AA05164101A9285A9C1A77A8B255D1B8533A1315A82BCF7E6620C4224CE830B83844BB16560D6EF98819E0AB4523ACC16961229A0B0847410B19647CA7836345B275609D5D12BCDFA5163B0C4CAAF2A0F05993ED16B89DC14D33A60B56A0A298E453A4883C7B6C7BD2186718DA1A29895B2C066BC6A2896947431FB224AB31B11F204F8047BD5E421D92B78357694D8959991E56B6A123373C00463BC259F78A3C2E7B3526331323E9AF2BB55726795FD904160C302242B1BD7D65103DA1395D82AA5F662E4EDBC812479B0B79AE15F25A07363080D887FE8A0DF37B51B5AB7C3E878D21086CA0E1CC47D877194CAD6E384A81403ADF05C430D22D47516ACDBC946498A281611BB9F73AC3424F6CAC3146FAAE1611103CA4008FA95A8EBCA35AE114FFE14921A855F5049447643C391588444217A510AE31B82B5C159C928BA434890AEE2C7268724BBC29CFD152B05D73198E7B62B43B9B03E081CD0A1EA7395246CC890735268F189F21C143E5F5CEC76692E6D937FAAC7AF3ABC5480464F8B077C9352B14A22DC65514CAF392D1EC6C81D96C33175F5832AB3BC19C54229F45E12EBEEF4308B229C948D425016D674119C0AADEFEB21338BA6CEDBF7DF723\nsk = D338B8576C1FD9168551A681F9C590095B6B8D8474F571226A4B68EE81A83738BB964356EDB663D925960388C92896029A201EC7F046CDE497E3384F613A444634AA3C41656C6031D5233720241603612BEC1032AFA7B3D41242CE374C8B118CF6219FB5E645002530781CB4660403F88287D115BAAA07CE95496A7232862282A653367FBBCA1E337155A3C8905E368C1974418E735F93B6965FEC11CE7B43D81710D727A4C4B434003B9110D013568B7BBFB341212543031C862FAC505944B86394554772047B2A864A6675ED984583269362759CBB464E7E248A48C3554B8054ED9342AEDC8E221439F812697B691BD5C89B7FB11EC716BFF96C97DD73C45B00980BC6B1F69117C2329386518058E97B26626D98196025724BAF0C5729109399E035ACE9A630CB6D7CA9CBC16AB560DA5C01E37601BC0DCA7A3AF891B80418C0056145C7AC8C176605411A39BFE843CAFB4FA61463B20A504E984308F2B82CA7081A97951D0961B2664E2D7B41DF902571D02C1FE24EC0EA998609248CF51CF2F81D96A983DBD29BB37B9A7D559C72FC0BAAE894583A842FCAC92D910C7D682DDE70A4A7B26E3259B290A182392CBE36B68D2E321708E9C00D8C06DCA5043C1A461E76438B7801E8FACA17045B272B16999471F8FB42F53A43294124C3B2B7F7A13EEE8B195A01871909A70E41A0CEDB37F3F733EE259F40C1CD12C79DAF90788D78CEAAAB9E1D20B7FF8800A17AC28953A4E90B257D099DA195B6701A695195BC730389A84A499AB784762631935A5A974398C6988A59822BC6382B9CDC6072F0A6CF65C9DFF2309D1A433AC52E6CBAB472E788F76558D57986BAC5C79B921F06E509DB18C70EE88AF044B527E221E5A5105A19610F059FBF6009B985190AC81640607CC4FB69D4892B5D9AC12BAC26765AAD5C874FE3080BEFF77961CB9E747A8E4B4ACAF3F3B81D51A4A755AE8EF2994E8A722DCB5B8014C1CCDC6A79046664C3B75C02B91E0B4C5C250B8EDA5D67E9A0984A6052053D22266B2413B98D841E8AA686F4E0AEB8D5B2ED2C8BBDDB0374D0AD8CD47A0E6945F0AC352307AC0DB224EBA29BC09397F05B1308828CD42B85C556BF0A938959FA7CDE083D3D0163C21B016133145AE0C47EF73604999E76F9AD19432F82E762BA8174F89A23D09333F7E677F33BC15BF996AE6999ADA8747BB0C454412C2B651D2A90382937427EA555B3856D0250AB1E3663B8D78F3D96CF9EB90B5A501129715DF5DB38086076C4B351305A9718903ABF12609FB1BC8A59162E2152F8E0C62241CA5DEB5260D71AE162B7EA827A342584576B00DC674A5BE149C7744D7FF43A5B04A3EBD38C110630FF656F2FF042EB603403D14F18EB17CF675C995C2790E936CF8B60E758484BC04314E50105B28346829077AAACA72ACB46D331E9127B17DCAE5E639D2B33B9F3CCA468F731BF0B332BA41D196AB77B3C436702078730369CF59144540EA08B5025A4C880C1530F40A852E35F96519C91EAA680D90D25A4256FEB1878B48E39143CE43378EB3335D3E03F2A358782E0B54AB56860148DC0FA5CFD149CF26A7260639A347AA72B977B6F38BF29E1472C26B4D7F80E4BB3192DE06EC05A6A85479E1FB34C240CB0164B0170C151D330CFA3103F41183E458A4C15B414A043A1B7590AD2C79CD3D39E2E6655F17A1497F35C801064B95912349C8878C910BA7BBE3FB25488947315B4AA1C5C10870B0C81B8CA3F6472D89638C2D283EFD290EE108A9ABB71D353AA512A5601F67E02B5B9074881FF96650B9BCA29DB27BB8A2F84F09069C75EF6E42F5C989D3229B759908262818215958D1BBC1A40DCCE324A5B5A18CDE861C2EA085641A814BE004E5435A837F0CF7326710FE73BFEE27A0A739EF5C08204C3A98AB98A1BA865C51A82AEA57F1C3A62C12B7CDEBC6A87BA13DF51A1EDE668797199B5943CF5A6C595452E627B27C3554A92B4488A476D28348124F0CEB2A29A2EA926CC656496B4656B4C0323361483469BD183604D1CCDCBF8A25D05ADC1344C1315263F46A5C37BA98A96179B5AAEA3D14B7A7BB6C6CB4A1D068F6809938F5A55877137542642CD3A06B03400D02CC9FBE83A94B63441FA1C28F42DE5C81583D19C846020FB17AE65B1512580BB4D066C536926F7D571B7FA152B25C460C63C4D18AD733422163C0E26BA99530074269C212F2697F2073BCAC61E4E603B18B575BF696D7FEB8724400848F05E91186052B05AC7828127802FBD1672B3FB45FF418374D61F1ACA1C1B93AF018CB60F006D04418088216844B29F9B64BD46710657CA30A054BB1BB0161A857EDAB220813170D1CB96F3D82365317CFEE94E", + "B1A8BA6BF82AF10ACBE3626C7284B622B314D72469EBC76D3AD8CCEAA93E08793490EA0A73408A1CDBB066B67D1351AF5A6C477D2B90B68A3982B70D32346CBDB15EF09736B28C23CBE03D18998270013509F13C7EB95D5A03895301CF2D0CBECE1908B3C28E73E676304B0C98F7932BC246107AC07B27090C2779EA2B8C987B084D86BCC40496A1C44C751438AF5951ACF276B25414D4E37AAFA3A1FA5B8FB0FA11BE21BC76B7816AA3A1DF142446AAC524A6A41AA3411E00609F297E698026F852094E2A2E5E9146F812C283529E16256050204AD3B03F04E35AF7D36799605903E8C3E2663F9E89791AA8CBF1B8047F2A159DD909D01A3EB3F081A930B26B6B3C32B7172B77BBAAF1AD51401C645B63828842EA7B7803F9699740CAC72B56F434AB7E1C09B4AC5368DC559D603C5AA471CD673BAC5ABF0F858DBC672E16F819149094F2B144D008C06BA0C36AB2A61053629F994FC233A38576A7821229E79685C2147B7B15156493C1EAA2C087134F1222758B00B3CC10804561B24974742C2AA016E23CB19C868244C65371B6BBF31D5603B46E58BEBF638FB7924EF4181D02F6A1DA6321A7C6A74038BBAF569B817A72803A4725569C82BAC9F1C593B437B533D62B8D31889E6679251560D0FBB4F768501AEBAFFCB116A23422F48CCD89E0C645A11B0F80AD2C77A2F30B8CF415084E5C9F655824ECA8BE8835A81A6C9832E09C3C596417657657A9C85A13A54D3C0D2C427A8BD6BF91245E80AC30A1B630BD395C02296CD5D63D9C92AB3CA1A8C47C89D1A742CBF4352B762A60226CBBBCB28272856B2BB3F176AB32955C96A0274723A508730AA94730F998CE0E04CE1E67726412233E8B96C31481BD017C67F1AEA09A3E96F897B70B969CF405BA7424A0E8AEA4B45C6206752C075E2BD3B3ABC53F99F2842A459A55118A10F87D8F0C2CAF4180EC741738D6A04EFA30F9B3B9AF587C33297BEBF8778B960596BC3095439EF3448C11871D228A0DC24718F6C59C8C73234A641C47917B27B46CDA986A1857315911673BA0468641757EC5AE71C860DE0B5EBF05CF6889A170743A27350B19E406A77427421A54F1C163862A43C6EC1260D45139B7419B0538AE31A0AC78584B3264CCA519EC35ACD94C1AE5B436EAF82FECFAC8681224FA810FB0A95581528AE300081EFABD7E599517C21F469208F4DAA500B9225560B9381707440082675293DBA332CA00C4CF746F46041B78D219EDA4BBBD32CF07E37E20E15C25F8A96B5706FCC71F620ABBF052A572D73B24C5445715C77187A1BAA883A714329D619A10CC2C9C84B2C4C098F0E42C4C00A77C44845B45003B7C1BC587A3F6C10D34269430765DA39550E2B78FD7B97CD9128A5D8653B7AA05164101A9285A9C1A77A8B255D1B8533A1315A82BCF7E6620C4224CE830B83844BB16560D6EF98819E0AB4523ACC16961229A0B0847410B19647CA7836345B275609D5D12BCDFA5163B0C4CAAF2A0F05993ED16B89DC14D33A60B56A0A298E453A4883C7B6C7BD2186718DA1A29895B2C066BC6A2896947431FB224AB31B11F204F8047BD5E421D92B78357694D8959991E56B6A123373C00463BC259F78A3C2E7B3526331323E9AF2BB55726795FD904160C302242B1BD7D65103DA1395D82AA5F662E4EDBC812479B0B79AE15F25A07363080D887FE8A0DF37B51B5AB7C3E878D21086CA0E1CC47D877194CAD6E384A81403ADF05C430D22D47516ACDBC946498A281611BB9F73AC3424F6CAC3146FAAE1611103CA4008FA95A8EBCA35AE114FFE14921A855F5049447643C391588444217A510AE31B82B5C159C928BA434890AEE2C7268724BBC29CFD152B05D73198E7B62B43B9B03E081CD0A1EA7395246CC890735268F189F21C143E5F5CEC76692E6D937FAAC7AF3ABC5480464F8B077C9352B14A22DC65514CAF392D1EC6C81D96C33175F5832AB3BC19C54229F45E12EBEEF4308B229C948D425016D674119C0AADEFEB21338BA6CEDBF7DF7233C98FA4AF17FD014A60D11CA5E929E4FA2524F7DB289CE0947AD90657990C153D89CDCF4B8ECE9F441926532427F01E9DD71B86EA949A59B14189AAA249AAF77\nencap_coins = 5ADD4FF6B8986E4B0DBC8E05801F48B7FA41AAA10E2311F4FE1E0B010D569862\nct = 4C4E8D71B891F6B026747A34E0A4311ADA29D28CC4287C27F03101964A3D5E6C79F30B2E09A6291580626CCC249F27E9DD4DC101574557FE4DDE87A87D1A88469129FFA0282CB83E7421707C67E4CF6CDE7BE5E5439EB09B62A9B4699BF82DAFD4D6DB906854B3C6777BA67DDD85903381EA9FC58B1BF1C96FF611CC45286BD612C198463C9F2DE2C83C2B0139F1EC9C30EDB45C24AC14E855437319B990168AB664AF113728C5DB73062947FF8CB3103BE6685CEAA73BA10FFA7EA089329F377892546478183B8D1EDB6D97D28921BAA9E6D85B3B04C374AD2578ADEC9C7070959EC9BA4A1E5D4376FA4BDA5065749D22375FB90733CAF514EA98707B61111972750FE72C9F589C151BB71705BA631AEBB80968108C0DBF9E04F25147B96B5241ECDBF690913EBD83CBBC39BD65E90BD10E8E3ABA98E1465768BDD4FDE00D8777E17ED3AF8736860F5F2EDE1B3ED36BF45EE893100E8ED04402F06D85689E882395D66E6A80972404E04B5BFE8FCF9EC6C2B83D3EB56218010A0BDF4345E1F1BB33DED7FA078A42FE57000AAB7E073A6137882F378931DE88FEB6D5210C38F242EF2AF923FE10849FEF98E703D136D65FCD588E016D3C69843003A6AE1568F0AF044E1D495A644BD79F3FD8BF930AEBE4765B39A29E11BA3B4CE6CCE00843977D53684B16F20266DE2AF8D1565E221031A12F3C6F59E42AE13D809E57A0F439926AA2AD1B4E07CFB9C0C70A9CFEC980204CA9125558F5C8BADFE1A51B8A856B68D27DB1C27F2CA03ED64ECD8A815AC0AED2E893A8587C01DEA8BF97F2B1E4B6D1EC6DAF913423D883AD63898E56006F4615AB63EA27B2757F136D575C8AA845883DD00ED9BC5F73A6C11DFC4B4A11E12CD8FCFF2336E53BAAFE764C0C6DA854E1A84183D1F89B5124D48AD0720BEB8408C8A060CE98DFEA83334EFA36737D0DA2B105A7CABF99FB90C5AC3096372D85550435AD89C4735183645596AA56C86DD724E3DF3DEE1BA38BEA052475BA617ECEFA67C192F5FEF49DEEE28A7A00CECA7D547E5FC7445FF07FA794E0956A1DDC635E55DEB3701E34C0E9CD8CF37FDE80473D51CE0C148560E1D81ADE6F79A51ED80CF4E65D107BD7F4872024D9958505175060B6A6822B3B2DD6A199D50F8C817CA2A765481708A031DC0B82864179977A281F2F06C6F4F9FD89CD862009D8C657C338C3ACF6EB7A136446A058D1085430CCD0BEE24439296411E603CE475AC9CCC12E28AF1E656A7A1DF639890B069DDAD9F77A7375229F304F629E3FED25CBDDC0FD8F8CEE8A36C157654B62F06A2E96DBCB0A3D02D122490B8D059708E216ECBAF326C17DE69B91CC14DAFBF86E98F98D6680C752E7ED06E0B5E3D015527169680050351D899E9CA6C74C68554DAA4606738D2621589DB46619976C241DD7B48490E890110857C5B7DE5DDAFB343DA34CFC4F93E3AECC34BE8A4F88B43068D9793883241ACACDD17ECF238742CAB57D0311E11D4BFDD13E63BB832BB133D93C3BADF52822951B6D3077FC7BF1AD342CD1B6B2E192907AF309E59888E680AEDCB7BD552A21FB2D9DF3CF31176789FD2641A2F6BC74E725E02E9E255B956F5F1D5333546144B5F99D4CBB341490AA433BE239951D390EA3406006E7E11C0FDAF7BDFD2825A357B0CD2F0F3FD770B6B0BDB10B3B84A6842CC038997FFDE4E8132299BBD11407BF766C99ADFCBDA284A3DFB917C891DAFBB807A26A6DA1B06D5AA5789AE00F9784B60BEEA92E0AE077015AE2190619408A291E70494298BF5CEF8363F27054730B1AFB17FE282D4B2795F453525A348804C3A68D8876C596C4A267E71FFB1393A241A7155BFC3F7F9AF47693645571830AB9055013B4326A42819A0C5104C69E71314DDD26D26674D75AF777DAE823477D5E4C2258DA89F72C8BA85FF6ADF54AE2F9E55C0D1B70BB2C5B03C876BE1AAB039C2A2316DDB6A06AC789AE72E5E81DE5418A17917ECC55446056795E4866098FA9AAAFD684D699854C063608D834871D313CF8538A4DCCC9A310D4D2F6D66F667DFAC95583E295A7D70FC1A67E8B653BB8394A9C3F2C5D0E7DFC8E8762A48314A52975B3B626EA0126EC252E5501B0F51B6D7C64DDF04F8642079056300B23FB83604DC4A106B198133A25DB65C6A0FABC0BCD555661D9A3C1BD94227757C14281303FC91DB84F82B5CAF0A442A17C50341D044EFEFF4F9E9B\nss = 0654F860AE842420B5359093D50578B04C117CD65FD290B704822CCFF0BCB82A\n\ncount = 67\nkeypair_coins = 334382D39164D1989696A2FF77B25A28AF8BEAD9883B5365EB6FCCA7C1781CC98AAE27E7D301495DAB212A61FD3F209A8068FCF9A61AD83463C00D2CAB426633\npk = D3539DE5422F470189BD6C462361C8105549370A09E8CCC407908A4E433813F73E3AE465CF99AF30105E6E4456B899777236466F05BD36A05494B347457439CC9AC66557580EF049071C7922F3770B4220063139A607C8019B52708976D184949CD88714F18130F0A6C91CA38680863EB9BE2542A4B27A629DEC949E552D8B3C86883211EC341B637555C70A8FA503412A771853D32CF1A5939FD7B6EB012B26E414B14710A4639096025A95FB8CB581358379330999CB6B93527CEB079B134021C19C9122640F90C11C234F808CCBE17B3E031B1A7A94654F82289E2755AE38B9FCD477AFE576BAD2218CE692B51205F61A59E644808C011C0EE0AC36A050A4C158EDC9C770444D310097235890F2D630F85C0DED24443462906FB84D7CAC3E7C1777D08A57A689302E99A3D9302FAA4C0DEC854D4872579365BDD1645706C744FA5A167B563ACCD8097E8C626AE63C8280663A382C11BA8F6C1B95FF1161C3B5679EC6C661C2B8081C1C39F6C732DC97BBDBBACB133006A7C94DE933AA19156811A224829769637A54B9512D8A4E82071AF50A66AB52301241BC5206BAB6BC0B29776A4B630E59E72988C4C7FD83912499175A2A3D3A2270EDF3A2977049BAC7524CD69691F59442DB348243881E04B8E9F1ADB4A436555C52F2F729C345AB278011CDE73521172E8FBB5509746AE871CF0E72416C2482A280C348862B313C9686D37FF0D73A1E216FFCD936D2941FB5BC77A9B0B771354FED30CA16121514541B5124386B835C22540EE2F9B5970C1508E41DEE69BC15C8C5A16ABF91487A1A5C3C778396FB785BD9465DFBD05ACF507686D53257C372DC8279E89669284C76294AA3098462EFDA8C743B0B7305BDE0693D98048412907B2D2B27892397B9F3CD31DBAF9446598DC886A4E1BF0F9C39E9FAA3ACA90AE387AACD698906C38E81A4990A08C80EF340B17A78FA89BB9A67813439BBD1150CBDFA3609708E4DE5365013C819FBADE55636F2A311D7A2B2EF7B250632774FF22EF2E76029569346266E70BBC82EC09533F8CAF60C4356D1023B4B4532F7C1E5DA18F4582D40B8861166885F52C0DB58357E7579C7516F9DA7046D3092303219F327AB52A28CB6A246B5016FA6894599D9725FC3C2AF262B53A4592F881F2A195D5AE75BCD36C30D6B7646424C219302C4E5794057782E7034EEC6C488395710C8211EF954F9F7434265590862B22190", + "45B1336AF22889ABBB4639BA0758E28F2378CD1B1A4225B4171C53691A9CC5986A6C3FF51FF53B4FFE3C4EB8585006C8667BC17B3A28C67439AC5F3C08A6E93A926AAF515C24F8A7C3E3B2AB2F5183DEF46F8AC996E400ACC320B49254042AC43C7CB160FF32CA605438D7124B5A727099F48008D60EA2E63F5BF9B81E3183E1647251017E82827620070C96A32FE122632C4AAE1590623AC191BAC113E9C3676EE645FB762B0FF982E416CA2AA343F607A70405720E9C42FFD815BE984042B37D5F76646DB400DA5C4F08BAAA41B33FC78BA147F3CBCDF63F3F543752DCA541169058521C28449D0C78CC8BC95784D8CA6CAC6ECF2745A78BBD589353404BCEEBF916A882B66752A7A6E96DCE612EF5754C392207B5B1C69D362134AAB5513CA757AAB9CFC94DB5302510101A73B7CFEAF7A0F1D259893C76D9111652A4AC02348C285B94F16C671FE953E1BB0CA222A3AD751096A1A05BB2789C0C14DA099E75477ED038849DBB19DE489FAB582910BC70A3A80C6F76152D494FA067186958191A5101051B6D55449DC5A4434925CA9F610BA498A24B232AC6AA08CF477A99F5A223067AA4C91A7749B834C90D6E247653C6B6DB65C5EFA72F3CD9CCE1510437268CF92753DB242742E042DEF3019F85188DB7573A43830ABAB80D4C176AD551C5C5216870276160AA61B92863C1725083A56DF800735C5428B28ADC49B75DA02BF120996BE7CCF9E20D43DBA59B6900BB50456D6589CB2C0209E51258336034566AE1BCCFC1FB314AFAB759B00E103C0A7F5CAD05A4BBF1894050EC9C2488BC3F89B685789912D43D63661AD0651D0F3286D3F055D1A307AA7371AE1A74F1A68D57A7438E4B5107BC0DCD8C4DE5736ADFE3170F8A1F01535A3772229DA4386B4ACC072C1611B53C899352B5AB5B39BB9CD4EC72E622C946F0F10FEB3F0FA52EAAD4F2D4C36E59CA0A5389566FAD53898992A17BBE0A0F\nsk = 9BFC3A71FA83A4070DB5064ADA8410A770845E818C49B91E09A251E1925EDB226EE8AB153F94B2417560D88959113A6BBC854B0065748E6A7DB90977ADA0216F3C41CFF70E5202B306CC22FF8A138C360D75B9CB1BBA849C5BCC8C9B55E80647E513C9E3E15F66A144F013822DA24266765E3F1125F435BDA4C46EF57430EAE331E1D54C91960EEB363CA25387D0D441ABB930E4A7C329191C5FF7A87996A4B1AA74162611E67B303E284C7098A65069356B55304B11B8BBA66C5829647493C09BF62166017977A988333092EFE98D9C13A2BCE53F8EA2C81A0099B7D5C2B11704971366A5565CC14610DF796C604700680226CB165E9ACAA6AB507A923B4D472A4B6C9424E7F5A622F87F4F8A1083B4755067A93C285CC0748D241C7051971128CC5AF4DB5C1F7C144F98B6BF9703F5338628CA22DF4B84D10312EDDA9DF71442464A24491A62687928C22455DCC23ECA964E9248543520790D813924CB58A0C156AAFBCF63906EC5FA891936C7E16B5FAFD98026D64EA2012BD75B6C5F376EEB74AE9B29CFF7041C650B91A2B852C021562BA33B66EBACF787BE40810F22AA43F4174571C77710F775D1719968A5523780B613262F94BC36B611B63F460DC6E02CC588AF99F164302276B0386E697469C55928C0E62438C25AF90577DE0883CF45819262905ED30D9A1A7918B82F9B4A28CA5B8DD1D9AD4326ADC7BA69C087765CC6511668CC0BE83D510245F8834E890662E06774F389C0C623BE3212AAE5ACCEDB101C43463B68889EA9A2C21AA0ACB5329FF80A336F8914FBC602E2B9AE452647777651CCC4BEF70AC06423B66EC5982C861AD9723DFBC834CA6A6433174C1D6C1AB9569265A96AB5D48495D72122763B3A7275B297713F1A729BDC48329B64FFF9C45955C6091375D4D77FBAC540DACB140666610EC7A15FF18BC741AA69425508D5CF682BAFB6D3C9DFE02D80349597F56FBEBB7EC8031FE71B6D6C065C4E6B5E5D17ABF3B412DED81EFCC8B6B1935FB37B467A5CC61F318AED20678800726509BAA73BBA244030500050D4B23E4AD71349CB0877566AD100BA77F8B409BC8F0EF8CFBCFA3CD1BAA1935C9ABCA798FF6965EC7B53141B6709597BC4F9983766403ED80DF4095D59AB482FAB7FCA432EF5E76AFFC77F74F4CDA522A0085A4917D04167A00B09863850D6CAA0621C2D473DE0763B7D3168B6147BDB009EB260901FA82013C8C0A3F6C39DE3CC49A773D08B357EF932077B5BAB86391239B3C366C43010AD15EA2EB1E05267029E5AD8139728A907B98761B65DD6DAB895363159B48875FB6AA80882256A04460B2977280688745C5914C089B37BFC949A8F9864AFEC2E4DC13F6092070EB561D09B530EBA2CCD66B87B0986ADEA1933448066521E28AC2ED9C57EDE492799B401CDBA8377D593DAFC1A0D233004E25877242C30070779D8BC5BB488DD3988004B5A8554861B560EBAA5BFFF7C89DED193EA077F421C216996C1445B165B912901B217315636A168C0216AC026FBBD4239858837B02DAB5A39D1BE6B072468A264661C5E34F42380C66526377C990092434BCB551A744227445C5108FCFC3CB4526D0B711DBD4539CEA05A08A78FBA723F314AA643A9260BAA22B96842FA4995601C71DFB42A5719C6F3B9208B19728A8C085D28068412BBF3461DC09206FEB7B1250607C1E33AC229323082CBA12B139BB30EB21A5861D902C0E35CF2DB3C227050CB8C309DD256FF4871186330BE93492BE78E267640B49776DC98ADFC0197C896A1FA27AF841351B5C790A6519F58C98BFF08029FC09E3B960B6898577C92612D264833737C3E4AA1765C5D5B49BB12BC0DF280890EC6B7EF55AC5FDA82989603A7F513C5A41C04B341E1197B7D4049E2C01CDEF47F27208A48AA0A2BA5706ABB474C467897E154DAEA8410181C6D4CBBC9E73746D46D6F372FE6836D82DA12A31B0673C10B35C9673D25830ED32AE795BB7D1AAF2CBC0433939A79D06DD33CB485A4BCDE071B5C083978D78BD8E359181152FC535770548DF0EB33A780C0C9E7BF907540A1F953C972B43527B0BC586B8B2ABC865B9127CAA4EA98A5DE1AA2BDDA772AB0702F983EC8A4231BF48C2FBB37A4247783BB0221098A15781C3DEC95C1990B21C88CD1F911624600252759D3539DE5422F470189BD6C462361C8105549370A09E8CCC407908A4E433813F73E3AE465CF99AF30105E6E4456B899777236466F05BD36A05494B347457439CC9AC66557580EF049071C7922F3770B4220063139A607C8019B52708976D184949CD88714F18130F0A6C91CA38680863EB9BE2542A4B27A629DEC949E552D8B3C86883211EC341B637555C70A8FA503412A771853D32CF1A5939FD7B6EB012B26E414B14710A4639096025A95FB8CB581358379330999CB6B93527CEB079B134021C19C9122640F90C11C234F808CCBE17B3E031B1A7A94654F82289E2755AE38B9FCD477AFE576BAD2218CE692B51205F61A59E644808C011C0EE0AC36A050A4C158EDC9C770444D310097235890F2D630F85C0DED24443462906FB84D7CAC3E7C1777D08A57A689302E99A3D9302FAA4C0DEC854D4872579365BDD1645706C744FA5A167B563ACCD8097E8C626AE63C8280663A382C11BA8F6C1B95FF1161C3B5679EC6C661C2B8081C1C39F6C732DC97BBDBBACB133006A7C94DE933AA19156811A224829769637A54B9512D8A4E82071AF50A66AB52301241BC5206BAB6BC0B29776A4B630E59E72988C4C7FD83912499175A2A3D3A2270EDF3A2977049BAC7524CD69691F59442DB348243881E04B8E9F1ADB4A436555C52F2F729C345AB278011CDE73521172E8FBB5509746AE871CF0E72416C2482A280C348862B313C9686D37FF0D73A1E216FFCD936D2941FB5BC77A9B0B771354FED30CA16121514541B5124386B835C22540EE2F9B5970C1508E41DEE69BC15C8C5A16ABF91487A1A5C3C778396FB785BD9465DFBD05ACF507686D53257C372DC8279E89669284C76294AA3098462EFDA8C743B0B7305BDE0693D98048412907B2D2B27892397B9F3CD31DBAF9446598DC886A4E1BF0F9C39E9FAA3ACA90AE387AACD698906C38E81A4990A08C80EF340B17A78FA89BB9A67813439BBD1150CBDFA3609708E4DE5365013C819FBADE55636F2A311D7A2B2EF7B250632774FF22EF2E76029569346266E70BBC82EC09533F8CAF60C4356D1023B4B4532F7C1E5DA18F4582D40B8861166885F52C0DB58357E7579C7516F9DA7046D3092303219F327AB52A28CB6A246B5016FA6894599D9725FC3C2AF262B53A4592F881F2A195D5AE75BCD36C30D6B7646424C219302C4E5794057782E7034EEC6C488395710C8211EF954F9F7434265590862B2219045B1336AF22889ABBB4639BA0758E28F2378CD1B1A4225B4171C53691A9CC5986A6C3FF51FF53B4FFE3C4EB8585006C8667BC17B3A28C67439AC5F3C08A6E93A926AAF515C24F8A7C3E3B2AB2F5183DEF46F8AC996E400ACC320B49254042AC43C7CB160FF32CA605438D7124B5A727099F48008D60EA2E63F5BF9B81E3183E1647251017E82827620070C96A32FE122632C4AAE1590623AC191BAC113E9C3676EE645FB762B0FF982E416CA2AA343F607A70405720E9C42FFD815BE984042B37D5F76646DB400DA5C4F08BAAA41B33FC78BA147F3CBCDF63F3F543752DCA541169058521C28449D0C78CC8BC95784D8CA6CAC6ECF2745A78BBD589353404BCEEBF916A882B66752A7A6E96DCE612EF5754C392207B5B1C69D362134AAB5513CA757AAB9CFC94DB5302510101A73B7CFEAF7A0F1D259893C76D9111652A4AC02348C285B94F16C671FE953E1BB0CA222A3AD751096A1A05BB2789C0C14DA099E75477ED038849DBB19DE489FAB582910BC70A3A80C6F76152D494FA067186958191A5101051B6D55449DC5A4434925CA9F610BA498A24B232AC6AA08CF477A99F5A223067AA4C91A7749B834C90D6E247653C6B6DB65C5EFA72F3CD9CCE1510437268CF92753DB242742E042DEF3019F85188DB7573A43830ABAB80D4C176AD551C5C5216870276160AA61B92863C1725083A56DF800735C5428B28ADC49B75DA02BF120996BE7CCF9E20D43DBA59B6900BB50456D6589CB2C0209E51258336034566AE1BCCFC1FB314AFAB759B00E103C0A7F5CAD05A4BBF1894050EC9C2488BC3F89B685789912D43D63661AD0651D0F3286D3F055D1A307AA7371AE1A74F1A68D57A7438E4B5107BC0DCD8C4DE5736ADFE3170F8A1F01535A3772229DA4386B4ACC072C1611B53C899352B5AB5B39BB9CD4EC72E622C946F0F10FEB3F0FA52EAAD4F2D4C36E59CA0A5389566FAD53898992A17BBE0A0F091210FB4F6FAC00A24167D9BD2761E601DB0A3734E3C835D1E9C5865B1E379C8AAE27E7D301495DAB212A61FD3F209A8068FCF9A61AD83463C00D2CAB426633\nencap_coins = F9E9FD68166F1EFE1916C2E0868E30CD14CA6A7E07C44A1E5ECAD722D016A3BD\nct = CDE3737244073EEF0B1A2B2017C0C63009AA1878AB78D1DE9116175B39D4E3CDDB0C3788EF7FF00B89284939C0E24073C20FD8FFE8A68EDC3D8F119E38A3E6B4343D8B6BD099A8D249D8B4AD3A499F1E47A89D0954298012911ADCEFF0DFA0A5FA5A2EE8C0E9083137EB1321D2520268989195680630ECB7AE057D0583F5575FA6C43D3FFDD21BF3A9737752F3496AC5AC66A7B64DA2A444C10394C2FF4F623F6F73AF3AA2D379CBFE285060A8C30B090D4927052ED77B04517D6", + "4A518544A3167430DDCB57F294688316D5C0D8872830E4F9B3274EDDF167B1FCBF4C9FFC32DE60526E5A547325E6CE0E7DF10D99A003371C6D482E325262D675103BAFD4BF65A9B653FED40B118D132A0B2E93E8144888BDA24E92CC0F2EBD7318C2FB6E9A9D0AA538ED522195A8A54A7744E496D5BF2F3560AD2CB6A10562C16A030615A7478EE6C7A8DEC51F7C842DBB926D9EE3D4FF8987D130C2C55B8697EAD6EAFF7449CCB33E0B63773A248D281FFE2600C0718B4ED45F70787718FC21A1286B037C69F41A03BE7636591AEE5538A3FFC553FFA268FABBD4B07288CDCCE8EAA198411B1F88D325DB8C950CE94BC24121443BA06F5303F667B37C4C2D897B66442F93DFA7C04FA096ECADC36C8654F0343B4CB2BF5FBBDD443955E6C9092C7FADA13F1F6E488300159A62B17E7F7CA002BBA0433B36090291A00AB91653B1932046F1EE9EA507DA2FFD7C94CB9212756BC32F9CBF5F60671F1920B1D21E47B7E0904BFBD43B9A3427FA1FD41E695148EB615B1635B892F5BECC0133EC928A605E8E427A188AD41C2BBDF88290730D5CAA8CB03145213A0F6706DECC804B3B9B96F2039F825E4C843A4BA40223D565BA35FC8B4481D4F4D1B93D86C1C82D5511DA7374D36D4D05081122E4151C89962124FB136D5C8CCDD230FB9C25AC67EF78A88E0C220B6DFBED34104DE4F68652C377E0728B964DA6CEB1E9DCF5C35433ADD81F34A8BC0850B85E1A96274E0F3E915ACD55250285D6031E16C0CF5DBAB6BBB3A5FA0232BE37AD6A6FB8A65371CB1FA8B5FE53EDB72920254A3B0B2874766DC22B5DB30C953D3FF6954A11B6A9F041B07C0DBB30E0FDE4D9407B35CB2DB1AE2B0E11C5CE601C91D9D4EAD5DC4F75FA1C03DCD909832AB2AC2A80E1F0DDA6AC3DD9F51825C2216709E5D5230B1DE6F071641A0C216103BE596B556257816E73BA6170069222215E03032EB8A7F91A7554CB55C06F2AE7C567C864E91F243DBBDC427CC37C3B1C0DD949F3F00734CA2B65403660701D02788253F7955A02DF6F32F7948779CCA12EF6788365DF7C7AAC0D44ADC3AF8C00441F02A4D2B10DAF0E75224EDE885C6981D6F598AED2945A9E492CDF9A2880AFC57C3AA2E7E9BBA4AC27E609BEC52FAEF68C49EC1B35F55AD411D705DF690BC4866CC76FD022725E92F0DCADDCDF866D3D9B0E1F38332AD0DC6E4FE06B2599FD1D19E3A52F3EAB92D35B6B4347555D7B8FB1D4F14EE9C61B5DA5E4782E7EA59AD941D62BC903076DA0A0C92D68B44E66EB43FF14FE670083A6C8E602E6779F61C7585464426EFC1C758159E3A6D7244D89AA90DFCB702ACD3CA121BA21A69F26F5B2DFC09143BEBB05B96CC6B81994BFEABDC4114E183EE1C0B36E1859A790E454F5BD3481389FD15BBE9AE5F27C12EC4AF1B3713EDABFF045CF71931515AF1EED5A82A5913C9349AEC3CD74EBF4E0A91256BA1AB2C863CDFFEC9CD2B7D725E406BE1B53CBCE44FB241DDA9F1B9F73B97900F4834A4A59AF715E12BC38B0B02FDADCBFCB04095DECAC5869DAF72BF8BED11A18B4FB1ADE34A84A12EDB6783FB7B930A8A664950399DCF523603859D15DBAAE5B410C15C3F9D34BB0DE141E606304C778DBAE8A7AAC0E70D4164EDCB0AA5D55CC4BB6A7EA7ECB429664D7F1E529EAD40688E58FE6E21C5037725C9313FF1146633A884C12E1DBCE24A9ECDCC9664891D02F8C522F7392C53D9F290E7A59248200A7F22E0CECA605220F81184BB564121C5B998C177163DD8B5FC3C494200841BD40AE71F301C79843340945213567194F169F017EEF21C0DDF849952BC70C4CD792CFA6729B1183E312E06372ECF3CA8FA2D0128D43FF34CF20798501484263764413F508025476F605DC2E548061116B77E00EEBDB0952D9C0D85C3A3BCEDA515417F24820BE0F5F0D2851A06F8EC65056160E24A15202CE5DE\nss = 8D4451A0DA9BFEEACF4E2F0F5CD7C398499FEBB4EB46C82DA3AAAF19D03C835E\n\ncount = 68\nkeypair_coins = 6995143E8EB8A6E93840F76EEC844F67D2B5F75B1839A5040337E61F9806764AC30E299218D4A39C2EA3FC06439FC4C411E99BBC34B8F30D23845E91E71FEF3C\npk = C675BAB636AC40ECB18567A8E6FBC63A52327520BB770A5D64349817A13CD365C96741726AA9107E9A4C04796DBE92061697131E728104C9C6ADA26EBFC51632898564D89B2919438CA1308C53387604C162A424AFAA2AF9AB0C42B50CC50B3318A15738057C2F1806017A7BAC76BA523ACC1C66111D45C253AB299463CFCE584ECE769707A6B35D6114A8B92939A16D27A7BE7F72B660F0B851E4950C20B33C074D307C8FC9B51454E41A96A8AC76CC30A568B4BC442177E7748E4B0F7D31201569585659B55DEAC3A6CA4DD264985DF553C85C9ED07B61E6D58F2BF23A19A5740FC9B9BF18859EFC79F9E9178BB542823A4FEF94BE8CA589ABF740D7880380E78853708CB9220E5D0ACE428C58A543ACFFD8333D2831857C3784090E3696A3B011683899AE31B40513E9589467A3CF2891439871A1B240FEA31F2FB89956D9966CA204A598050BEB2C36F9A6851820C87A5262A9CFF23B1E7BDCC9D060484115568463B9AE44B33D7B6C0F46619299596FA3C3EBBCC15F37A7A3EBC9B42332F483708F7AB08E285A08759EC62AA06838C7EC103864B75AB25A013D7C183955884BD01C4F58CD410344396358BD6901A94228275C79A289B385C788884B2BD3371D0852B0AC4A24107A87F1DA0E6FBBBBD0A25C9CB14B7F25B7432C8148A0C91F8C7616C7BEE7119A8F9AA4DA5291A820922EA68F2BD62C4300CAB4D10A73DB255B1AA33D523D774ABA41FC5F26326220C8B3575520788C0476BB3462F73C61016C9349BB00C5C59B7A740044B639AB59253B49E23C8EE36676E015A93001A8C4C539F576C735068661C02026BB22CE5932BCAB118827107A784CE94C2C89444A7B03A2386772D89106B49ACB607ABC86996A351B6B7F364E9A05C746377520D7A27A154F502042C388292394A4940C0470458726B76F39037E10821FB56B3E4F38C752F4278B8B1FC332A48DA56CAE9C56BD03343659B4ABC262FEE6855875AC2B8AABE02A352919BA6363C6E75A8358D3297386240AA80F0AA33B1A79CAE3C9CE40F87520AC713BFC2DC9DA6C5B2BAB6443383279BC9F3433E4080C7BD5BF22306E4FBA2A8FF0A1F7978BC6A7BB809664783C36AC81445D4964C8EC6E9616384C60636F6AC08AA1C23D182FE70034FF2390442190F8C2CD68C9892BB0A6FB29C5E3480697145B150675992137C5A16C507C96180A3129417D9E30815E30B90D05835B890CEC789E3EC8AB7DEC509919CFD670241250822C539FA2CA8D9D619E22F050744727BBEC916289AECBF47BF48B9C6ED6AD5EE5745A865859253C84B39FB569147804112A0046E2149903FB5AE0E56A4EC2B44397973441394175BB675C3198800E1BC56185CA7076345AC1623AC0AC1F10F099FCF971FEACB965482A2BFC585BF30647D90F7BA27CD76891EF5B3EF84B988F2A407F5552BE77559D026E385627BAEA2DEBF3AE73E3CD1461B1D7F9BA55DAAB9C4BBCA8045172CC8EEEFBB36647BFEB033495986526CC2FDC6C7A39DA80278182347A3330FA332E071D8F31321BF32F4507B16E328FA7892758F2948A1A951506222833C0BB68140495A7A5E942C6B17E674733CE754EAB747E96D2A077E7024DF77388B6BDB807744DB74612A8C72011BE7D8B0949C75CD1B6107C2422E30C1E577B3515556A10C1BA712ACA7F6988B3873705257CEE724ACF431CA0F9961DB020EBC784E4F27C6FBC062857015DB28D64004CB41BB7EA3B5657E6B65200B3959C642B213DDA13A1B25377C4A47C43DC2DCCF3607AA02CA28A4067095F541B359E21B39004590EBBA6D6DB8FA461A1343B824D1373F872343E8BB605729B674C66F7E5C76B536539F06F919213CC14756FFACD5789A46E7C8AD789BA0F6237998487C1912E86B087C9388D3A6A9C18D505FBBA2F7AA6168508B1C8702A2FC167F2202AC21BA862917F6D78971AA7296CE1306D2A1F2F06B8A3A214ED45765F6A05A7445CDEA385CE7922E8006B549319CB38904F38A6F932304037C4FCEB9647FB7FF9E9AFF5DCC951AA3E4BF50C296B71259650B5047C94EA2696837E26AA1D18938851198928DB1EA22758C6CAC0906A995A022998A7A942626C2CEC7A5FE83948D74509C61915819425120D9E6580C0A3776AD41A95B52B2E867B6D7242CCF281A241A88049058D8CAEE564224FAA36C70ECD281B67EB98908468420B38F3C24DA9290EA98B24\nsk = 5E484946337E3F4135D738B0862B69F7B247A5BB0812D56201300C53BB87B798B2B551CCEA75A87F002D7DE7878ED08E976A2CB62B4AA559BC36816E9690973F608B262612F89B5BC784365E33193FE9013C05818E0A7151297EA53C95089388BE203071D0335535436C799F6D3AA3260A9C8C9C9E36F79F13135C3DAB92914137C33773660AA15557C32B7A086A5A1CFD125DEA60183ECBA94DA22F0F3A18DD2131BC792C4013B7BF84A7840C976C53117653C4F947839D8CB35538BB97899418688A9E062F9FC17D77450D85261AAB01BD9EE77E917966BD26BD3D3990AABC8561CBADDC5A22F8C80D99453FA7350B2A022E4CA48DEA6C9C07309543611ABFC7CDA76AA03E51ACFDF0CC73921EF2D02F45990AEE50CA77B93F14E4BEF44576134391F7B67658E1CC7876713742267A556EA8F562BD858B24E04314B025CCB5BE0650642A23460C3C65E0D6CB68232CFF709204B7B7CAB0741807100A712686B982F632095D7730DD9385A7A26C23741474E12CD8FC259EF346B5F287EB01B046104EF8415372B47DA145AB0C5C1774626B5DEA7D72DB4C62FAB14C03CA51384420690A799194E8AA05BB914DB21956BEDC948299BAED7289C884AB9833C8669422ADF51D4E1A0466056EECA478F11AB55CE2CE34430ADDC889044A5601357EA6A5B097B54252B046FA83C0211C236953954C36840E390D2707848C0B879ABA2354EA200FCA56CBB86C0C2269A81C790B966893F782AAE9A4BD1B02FA85995A757FF2083FD26347C97711E07560AF77CB59C7CD64F7CDBC880AD26A7BD7FCB9B210710E581C49453A3200AC08554A641068E6879BA6665AE9F281FC14C8FBFCB0CAC0081C1A06DB017D80048B324248F699825A489D0726893E109127A0AE802CCA29AC56F6118D209A54CB842C9A8C539E43B9681CB868018C95D872C532A10A77BF52A796D33187FB8AA3FD780BD2C4B30FB7394DC64B0FE05B81128763A1325BD00EBA411247B1C22A1146FEBA1B255C51F74999DD29A9453151BD9869E3D548347B93C1B798FE92A053B88C80D7AFA5C561D31435D61251253B9A4C2B0F42830C81E990006DCEBDDB7002240EE8E276D4E31C2D249B84414F3997B9C4F5C0698CB2A24C48E3605F6D704E5DB734EAD12D62634DEDC68ED6A1248273BAD5ECAC0651978B098FFCC148667671D4B59EA6095B0B363C31299E5B90282F914BEBC66F6291338BB7600C8310B83963336952EC33854ED7C979B71F30188180B11BB66314C93242ECB890123C9F2AAA786ACBC7DBF560CFC1625D06C3828998ED51B79D28C583BB38719706D1D67B9BA5A556CB9EE1DC4FF2C53C33969F2F97BB93056729F65FD90AA2D7113EDF611C521761BE671FE37BAADA7A2B4A114DD458A19966A2A42914D61B47AEF5ABCCF8240C88AF752B51BCD0A3788C2AA38AAD8DC00D83", + "5476C8386DD3A8628B261F1D6B2B9F771842C97DA7BBC3D03696F60524BE6476430044F6A8AA48C22901F750DC55C1EA7813EC3518B26B3FD0657EA6FCB6BE94C026244A0401593664673FAA680F866E174143B0CC086FDACC1F7126C3E941F090332D8487D5E66061D5311C9B5C8EDC39BDFC34948400A9A3AFF3A85ADC48B21E11B57F853985689697A591C5170B2766A18D18937CE92857A99095FCB6A2524BEA122EF1FC8F6AA724F754832FC17C932388B728359E55800E3110C89B8B7B711AFF4785259B3E1B2B0B886A057D71B035617DDC7C0C8B1BCDECD50A7135C8A68A2FA2F7B62B10BAF6325DA837368280102D7A7439D328F91B2173D8625D769A6EA936990299A02329380A85A818524F601B36E6CFA8046ED2F7C1B5C13260152AA34CA30E1887F2849C61B41649913138B74C817B2DA9174D3AD4CA15653F768896837323DAB2C18781A8BA793D54C9126DF6A6EC044B7E709870422A8A1C030F238767C91D75185DEF8002C105806CF728897B382AA596DFF7AC969A5CEDB9294DCA50CA1C74CEB7605E978722B148817964CC1159883A6DC5094F02A5767D4BB5DF6304D3148BF009068A1B2E4DF78BF021182E985982F4B2629C049DC26667746C4503AE0491728202BA0B55A8248C700484597BAB32DAE41607538BCC5C9DDE4A198CB81EBD9C143EB9B612930DA8F56FE3D8C02863C04CEA9EC675BAB636AC40ECB18567A8E6FBC63A52327520BB770A5D64349817A13CD365C96741726AA9107E9A4C04796DBE92061697131E728104C9C6ADA26EBFC51632898564D89B2919438CA1308C53387604C162A424AFAA2AF9AB0C42B50CC50B3318A15738057C2F1806017A7BAC76BA523ACC1C66111D45C253AB299463CFCE584ECE769707A6B35D6114A8B92939A16D27A7BE7F72B660F0B851E4950C20B33C074D307C8FC9B51454E41A96A8AC76CC30A568B4BC442177E7748E4B0F7D31201569585659B55DEAC3A6CA4DD264985DF553C85C9ED07B61E6D58F2BF23A19A5740FC9B9BF18859EFC79F9E9178BB542823A4FEF94BE8CA589ABF740D7880380E78853708CB9220E5D0ACE428C58A543ACFFD8333D2831857C3784090E3696A3B011683899AE31B40513E9589467A3CF2891439871A1B240FEA31F2FB89956D9966CA204A598050BEB2C36F9A6851820C87A5262A9CFF23B1E7BDCC9D060484115568463B9AE44B33D7B6C0F46619299596FA3C3EBBCC15F37A7A3EBC9B42332F483708F7AB08E285A08759EC62AA06838C7EC103864B75AB25A013D7C183955884BD01C4F58CD410344396358BD6901A94228275C79A289B385C788884B2BD3371D0852B0AC4A24107A87F1DA0E6FBBBBD0A25C9CB14B7F25B7432C8148A0C91F8C7616C7BEE7119A8F9AA4DA5291A820922EA68F2BD62C4300CAB4D10A73DB255B1AA33D523D774ABA41FC5F26326220C8B3575520788C0476BB3462F73C61016C9349BB00C5C59B7A740044B639AB59253B49E23C8EE36676E015A93001A8C4C539F576C735068661C02026BB22CE5932BCAB118827107A784CE94C2C89444A7B03A2386772D89106B49ACB607ABC86996A351B6B7F364E9A05C746377520D7A27A154F502042C388292394A4940C0470458726B76F39037E10821FB56B3E4F38C752F4278B8B1FC332A48DA56CAE9C56BD03343659B4ABC262FEE6855875AC2B8AABE02A352919BA6363C6E75A8358D3297386240AA80F0AA33B1A79CAE3C9CE40F87520AC713BFC2DC9DA6C5B2BAB6443383279BC9F3433E4080C7BD5BF22306E4FBA2A8FF0A1F7978BC6A7BB809664783C36AC81445D4964C8EC6E9616384C60636F6AC08AA1C23D182FE70034FF2390442190F8C2CD68C9892BB0A6FB29C5E3480697145B150675992137C5A16C507C96180A3129417D9E30815E30B90D05835B890CEC789E3EC8AB7DEC509919CFD670241250822C539FA2CA8D9D619E22F050744727BBEC916289AECBF47BF48B9C6ED6AD5EE5745A865859253C84B39FB569147804112A0046E2149903FB5AE0E56A4EC2B44397973441394175BB675C3198800E1BC56185CA7076345AC1623AC0AC1F10F099FCF971FEACB965482A2BFC585BF30647D90F7BA27CD76891EF5B3EF84B988F2A407F5552BE77559D026E385627BAEA2DEBF3AE73E3CD1461B1D7F9BA55DAAB9C4BBCA8045172CC8EEEFBB36647BFEB033495986526CC2FDC6C7A39DA80278182347A3330FA332E071D8F31321BF32F4507B16E328FA7892758F2948A1A951506222833C0BB68140495A7A5E942C6B17E674733CE754EAB747E96D2A077E7024DF77388B6BDB807744DB74612A8C72011BE7D8B0949C75CD1B6107C2422E30C1E577B3515556A10C1BA712ACA7F6988B3873705257CEE724ACF431CA0F9961DB020EBC784E4F27C6FBC062857015DB28D64004CB41BB7EA3B5657E6B65200B3959C642B213DDA13A1B25377C4A47C43DC2DCCF3607AA02CA28A4067095F541B359E21B39004590EBBA6D6DB8FA461A1343B824D1373F872343E8BB605729B674C66F7E5C76B536539F06F919213CC14756FFACD5789A46E7C8AD789BA0F6237998487C1912E86B087C9388D3A6A9C18D505FBBA2F7AA6168508B1C8702A2FC167F2202AC21BA862917F6D78971AA7296CE1306D2A1F2F06B8A3A214ED45765F6A05A7445CDEA385CE7922E8006B549319CB38904F38A6F932304037C4FCEB9647FB7FF9E9AFF5DCC951AA3E4BF50C296B71259650B5047C94EA2696837E26AA1D18938851198928DB1EA22758C6CAC0906A995A022998A7A942626C2CEC7A5FE83948D74509C61915819425120D9E6580C0A3776AD41A95B52B2E867B6D7242CCF281A241A88049058D8CAEE564224FAA36C70ECD281B67EB98908468420B38F3C24DA9290EA98B246C206507B89F46C6E9CD5E78B6CC78FB3677EE609CC090CF3782C876FD5F941BC30E299218D4A39C2EA3FC06439FC4C411E99BBC34B8F30D23845E91E71FEF3C\nencap_coins = F866365324CFDF8254EA0B73B7947496F9FD24BFDC562DB4857EF5C659441CF5\nct = 7BC2922A32740F3C7DE466D7C13E6B0DECC88CE74D0D5C8F78518830C5057C832E88B2FDDEA11D3F9355027B87BF03C90CA51BF7898259332DDB3E0F7EAC87CF567842B9530BFDC09E3EBEBD6862D0AF47DD784B06BBD6C63A06DF4EF8FFB7FB32582E0CB65FBCF0C0A3F561DFF027D4434058B60EA8ACAB489BD241466B42DAEC05DF638F379F82C356CE5AB8D7C93DC0B2B0268650B45BA6E6B93D554D754A85B380D3D2CAB2413A1D879D13ECD7AA9ABAF01821BF67B78FCD108E994902D8B7BDCDB9016033A94F968A9DE3E84593D17800973A9D2E1CEAB3D08A0E55930482DF10B3BF6D06FB9CDA46F072409E738EF224819B0A89739C6116CF1430C05BA0078D6F0ED3E30BC572E3DEEFA223C9BCE2595ACC751B9D1670195DEFC6A72EE7C2635BD737F38833F41EA5AF8C99F3ADECFFF09E13F2AD84459D5C2B6952A5A6E3B00E965874317660AED157687FE64F4283988AAD9A25E988262E93463A15A8BD64D489DE27A999229018688AA620B305B51C4C20780AABA1A9BFEED6544F0A0283ECA04BE0D36F117F9E8CB5E961E3DB486B22844C224C722F776FCD183BA22E3A9250D5352A782CFAEFF1546A36952FA84E0B83FB98074019FF2AF99BCA08A7D045E1AF3ED89B874529EA5CB0514FA370879F5D5AF97BE447EA86908D56A35C4D4FF3E955B6DF5F40D1774B614DD7A73F3F2611A7CBA615CFC94303576C3EE543F9FD35A153502D30852AFA13A54303EA0ED46B7805503821D7BA543F122BA87937C4FBADBEA35B168B4D28FEECA931B868B81C582F987F05BAC8675C74B73CBB7DE7650E8A24D9E56965857614557007AA177289CF0F863568AF66CF434933F7AA213E018EA22CCC22BDFD3A029B63D6FAE8864879927A68B85AFE49339CE68EDDEF269D4220B0F2B2B9C383C94C7C3FF9A31EC2B07A8C2418AFDBD12D756EC7943348648FB87F362197AC4A1FC183E421139B8254063CA01D5751EF8C891CE6FFEA1EB6D7A7DF5D057D879FD5C287EC661EDE82F9C99366EDA6E5D74810CD101C555AA061170BD0936FD91A41DF48AA1B267E5397F957A6AFB6448342B6F497AFA91D0B02D1D41A9366C633387A826F8F3436C274DE74E294878F29EF58D108BD61BAEB4D8A6A789E33CF7600713793322121AA0B5918C47871C9F8F69D273B0F99BB4A322A1670AC325C5A087E508FD14CF3E11B4BF42B4F35899687CA4BFF681927E0AF54528F91CE3E685C6462CCA4CD98F5318A460A9617934109D2D9341EEB639E0BC5F80E000D64707AD7E22F060FB51716ADAF910ADBD10F38CD90F97204A5CDA73A9A532570325D6AEFAE54F876B623B0B121084F82FD4DA4BB19237462F81139BC7C392E9D3BE7200C6F7DF418ABAF8747FB7BAE49D0C86CAC1821AA07768FCE7D050A14B800696DC2473C7FD5F1F1CFB94674234FB169194F685A96DC1D1EFA2C39A1F16F22C3DD8888442D61559A276A8A977BE3534CB4902CA37FFCEFDCAD4CCDDE14322F2A4584E255BEBD76E247E46731E285B4469921CD747FE38EB92EA53A179B48BD8AA87A86ECF1BC6746EE8C196C733F2FF72CAE6111AF95B6004B415230DEB63232281ACAC289A0C36265B8028BAD57CC7CE35E9FF3534996452F349B2CA8024179062FE2CCC3BD855F3AF8AC131C7BA465D528CF6DD426CF24250DB096EFDC864066D8AE63E5D73B7AFF8E961F231C3404294F4919FF54FF10B4A124DF113E8D9A25FCEBDB4A7DA7401A5C460C1AEF737578BAF81BF5C79720620F6C4B92EBA51CC020036B9BC18006F9731BDD7ED8DC78F7D85B5DD27A404E005DD24DFC0B65A1AD6EF81141329D28B16FD1E3A6973F66DF7772367B37EE2CD2DCBB0317885A2AE59A2F520E8FD8C1BBCFB8B6A06F4F6541A89315384F29355C53E3DDF0AFB99C1DD83F0A36B6237F683D90CF1AAA2227B02B8A461F2C867542DE55BE8F48C6D55F0A5741EA11F15C920A746D4AFC767BC3AD235FDD690022F24A14F467D9AA477C71ED8DAEE3F12C2E8AD390522A70C93D056C8DE8605F4C755C1ABEC9D9587DAAD5162F27E2E5CB7B5AE9D2E6979FE991FBEE9830F0BFC2CDA34877CD0889E98C940706469F88A4A1EF7A6F2D646EA36180900C84C4024918E0BF4E152D987E9762D394351FC6961580164C3EAB3219F5D9F495D51D54442BE15FC6B520DD954FA646052CB16DA05AAC1F39EF0F6ED215\nss = 223A0EFF22D271F9BBE97B81A9454EFF0E9513BC8E37F6D9A532644BAE8FE60B\n\ncount = 69\nkeypair_coins = 995EFF7E0D195C6D0533F3DC194D47E60F9AD14696144CDE694D60A95F3E96B4A33923382F8863478882483037FB1282FF917EB6658A7154C6AD64B5858C629E\npk = 10089C89021BE2DA6C17EA926BF636C042C59A1B79941C248DD3079F623095437766139DE109C3346147D1F8A069B2316ED2606CA1454E364E9C43A80B0BAE79F005E0EC3E006D1ADAB7BF69FA5B098166AA9520DE263E25A36436D3A9783B96A763C9321727EB65A7207B51D526C6182C1D51372316CC0DDD946077A81F6487B34D68B59841CE41E779885027912C5D6271ADEACCC07DDBA319700694F927A374B794584DE181B890F651043A1B391A7956477B436307DC8B0D0467BC05206074D17F560160774A8477509BF5A936811BB9ACC179834A9D1106AF0438148D076E4C3A7C", + "70D7231DD475F06778ECA68E40210859B092915782DB538E650BAE18537AC3F7A3E46BC76919AF12BC47A3B67D0E44B91C82028EB18D99556ABEC2CF3AAB979D125C137B75586B4D419758FF68229870869BE755950100F9C2BF6D706CB9BBC5289489DF8ACF49046EA3D27FE7F0CF0E148286970010151A11B879F9035351AB10A536B6A3144A806B8FAC1389F58B0395FC7AB90436B440BC9E66AE3C73A5E8E5AD59662286FA9A03E62C5EB100C9B63DCCC74793080CE967B7D162438A492CA2815F56950D02AAB7F12254D75C499840C5D662C0C10185B4BA3F84A91B37745D1EBAC3A2440DD899619706756AD70468E1515D4C0A765942DD5A84AF8A894CAB90A724A95481285A160102EAA39591AD4E2C871A160BE835012705598EE166BF2622BAE3ACAAB37D4FDA18997212B831B9B043082EF2B7B86423BDC15D2BE82687C35E12C85FCE726F340634C1107DF0F50F3253764FE4CF0D294D27F28674F94AD16B7D03F91FA62A42BA154E35496E9B2AA884AB27B5332514C377F78A2FB5E7AD85D643EE94763095B2F2616BF87439C22A26C46287125BC7BAC3AAB30B1AEACCCD25532B326983A37A623F0A2DF3D7CB732124F89C37EC1881F2C5993667339D825B68908CC7923D02C55E7F967D3D3B8D01AC87128B85C465B285D60869290A78B40D48D9C39E92C298B313EAB8A8B1607B6DA8C22967ADA0294696988D5D251EA0565C84571914156FEB5820E5EA145F411F5FF64B587A99B88CB08FF4270CC89573D901CDD5624C0A2C3A654B99A0BF602ACFDD15C06D69077AEA18E73CA0C2E650751A68B659A568C2742B626D37F775D2B9B66DA7A331CC4BBC087866B596B7B55C600864595743E1B363CE38BC1E12041E056BA02BCE42D9CA15F5A241DB89E2510469762690D270D1E16CFCB92F715975F68B44E75BCB98E521A5C2BE1E4A2E5EF07BCE98BF8BDABA631433C5A96F9FE7782E756B8E54714F0466FBD00EE503966C8118A1993910C6AD99511DA8216431B26AA7B09A5F304201ACBA84670714C410E21A2D4517A0A1F139304A6FE9C63371F65D43B095B16040AF3CCC487840CC41A63BBB6E2DC49731013EF885B0E3AC5E2BA78D19265B3F36C1BDEC49697A48252A78D7C4CEF33B176F31104A3185DFA62404DC4A771877FB94656D15C43142BBDA1417A7C69996681A0C69B2D7395E694C4ADE0A5886D28F207722855A30273C91E2C19A2B40B62A554F1EF9C282B51015504C4B84714A99A3EF33504429976C2C036A9782B0F2BE79924D98700D6C066015B10C03DB90844B7D4FFC14B49CCD5680B1C1D9C15CA935404737093C20A05461C45ABCB81C6A19B3A0ABC168356882B8EC3549836FAAF354D3B60D1A5290A883AB1E19B9493C26113B3D03B8C3FEC053BBD14B4BE12C80AC412B6BC1328A4FA5F1A3F46BC4BC685C7DA98533422AA2A8C9822237F62C969CE064EA0402CC656A88C39DDF221E3D6A52ECD38F160A3F71C281A02A24BEEBBB1C6C9025DCC51447A7F5679FB0E382854A29D8088B5FA11C59C439EEF92F869C4FC8B66AC7656C385C0983B07AA98A71ABD2B576212FBBD14B96B19559A6CFE5DC1F3549436A4263BD9B8A185740B4EB16E09184DFBB07FFB7266C275438E13208E4A2888B63FCCA6CD8B5ABBC14769BD61A74F34627B896F1E85C03202F4D58932C183D7CB4A5548CC540A32AA9C558E9889E10D706A809ACA75218740BB6C39761BCB0BB0C76725EB80BD5A46D074864DDA334359B4D4DBC7C8DA2B413DC20A1201AE9E7ACB49C905145307CCC92FBA03C02045C9632564B68CDC1E9527B239C1F9A7F72358949B2AC4074721445E155A3A1624CB4ACA373DE6947F148CA7E2B3C93605E706EDDD992\nsk = DE4627135B3976B8AC07C0059BB28D09E98E3428228C1786C2E8A1D6029D93CB9EED217D09B03E9A7561AF7441E4271C7B6C8C862C5A93E955A05A87B01A63D9E8A334B26E1FC0346051BF31D078860A9AFE939F4A90C2A395B2B6C205475164E36A0C2930CD26E26420470B0D068E36971A978B17BE984A418A3CC5C6B62AB00D6DCA5657F71E08B215EDFB88A5B6751EAA525DEA4B0BD41430388E0CFB445DA3347EAA375B86858F19C81B73A4BF88C2F807638D808F78535B9FC6C6BC0C1402E16F0B784F9A22A30E5C6C1932C2063BC558A7B2636C76D5C0CB77E6C5518B3B31D920A23B2BFFF3AB93FB03B3386F670B07655989C5185D5D393631E9ACEE701DAD333379A63EFBCC636BF2B4FA05B84A375559079C5909651E481DA96B01A771BEFC7BC407DB7D9F94B819A468D443A7AA8C9B4741266875268602336C1B1160A4CE5D41C57FB915335C87A72A7345316373D921A6D0CA09606154199C4F06C244A7C568BC5D82449149F92AD3350B51D3C474E77A3A1053160570C876132434AEDD92C8961B95588910102C62AE1A75479175CDD666AB85478EBB6133920E9154441F1383B0F147137614DADC823F1848FA478B1F301D3F745C647C216C741DFD3B3195483F24F1A5313CB458273FFEB559689004CD534EC1369B0C68A873651F7413037118C6F98C538DAB9C1EC649FF2301A03A650CC0C138E79D15F9079A639737E840A7DC720B173BB329A34CF65418495E4DF2805A491A4C96B47D452725850CA8EB3944399F9D14157FA46B76F0891525461113766DC025EE1C2E735198C3DB253A2B8A566CACB81B65A1C9473C6C6DA9743D780685CF83CEBB441CDFDC9FBA20A9CE2943759C4D08C57A0E74BB0E1888E94723169437AEC19AEC1A2A46C81AE4645DE32BB18F3527F4DCB8221A0F7BE74F3F5A8CAB0609BE216465819FB858232B008A855C9E6B54439A67AAFFD9701967BC46A274D1D6AC1D45CEE7C54CF49669E89A44FFD7B73B2A12327A85BF5938E6975B949C03EF3A1D824CCDE033CB175A3356C8A998E4C69D94630A896606FC1979DCB5C172A54EEA2E99D5AE331BC64D708FAE45C514A2544843CA59C3C122947BC3660DA7357AC0E33F55485E79EB3117D14C42EC5C56653E0DD1A4E8205FE571823098AD8D9844A25B92238063A92040C500CC0BC2B25B493E4CF69DE95C87B03B773A796D13F42014847727345888EB06D9251AEDE24D03E292CB452A3A38A0A461C8B4F9CD9F87B09BC0CA98E62E5027595C24792F818865777A346004FE3B5B587452648263AAF688154526D591ACADB74520F3627D7395EC7B71DC3C6E8414985D591A05C88B6455870C48B12C576D7B328B88795295C051CA6293B0FB4DC61AB8AD34CFB114A4C7E44AB4667D4B1948C83C28BAA424B19370AFE997D8B08E447A2EFF376024F5CA54DC8EC0972B96F057ACF5A6B0D32869FAB3E1797EE2571B1620A076082C4BA6799C27B07FB073092A7A2F7AA110635CB94900E487A6664B318F54956039C57CE509EDE489FAABAC96CB11F58C87708A8ED3408A526701BFB8507D67415FE64E7D41081AC12C21F3092AF02810C604F02C4064E348B4F98F6BE65D87650E56E7667CD5179C347A894B5A9DA3A3A413C2D3A23E5DD0C7DC841E10E4A83B3BC0EAD17B5983A57821489DCA73D1656E97632BEB9A3AAC017855A74F5F393EB5E42C96A207B06687030B28B5E09AFD66225AE892200969CE41420F960E44963F634BB9F69C7C4CC2849F258040257DEF4941D9B54476D2CED88799140807531B817DBB1B2DA7A4477ABD378155DA169A84086150AB09AC8A980FC14DB247B3A76723FD67701644BF72810394B0AC77E74BF94416D866489CFC286DA29D62C1947BE88A0CB78AAE94610D48738019768DF89B38198258DC7F70D62A3FA72479B9AAAA4A84259837BFD4872D8C708D478A0E674A66DA6CFF330A6E140577C6ACFB83CF4EACC370EC57FA76C76C765C39F5A07B8B1A244265CD03AE02433D3FD438D5A885EA03808C6196E4A3A459CA6D6B456A6FB961FED58EC0D353AD36143C841CC8A0390FC55F35D50400156398020051A10C22C69207FA839E12750CF0A5CA404C6B5344B9671E6E15502BA17C37872A9BB390CD379281651047FAC2B6D20010089C89021BE2DA6C17EA926BF636C042C59A1B79941C248DD3079F623095437766139DE109C3346147D1F8A069B2316ED2606CA1454E364E9C43A80B0BAE79F005E0EC3E006D1ADAB7BF69FA5B098166AA9520DE263E25A36436D3A9783B96A763C9321727EB65A7207B51D526C6182C1D51372316CC0DDD946077A81F6487B34D68B59841CE41E779885027912C5D6271ADEACCC07DDBA319700694F927A374B794584DE181B890F651043A1B391A7956477B436307DC8B0D0467BC05206074D17F560160774A8477509BF5A936811BB9ACC179834A9D1106AF0438148D076E4C3A7C70D7231DD475F06778ECA68E40210859B092915782DB538E650BAE18537AC3F7A3E46BC76919AF12BC47A3B67D0E44B91C82028EB18D99556ABEC2CF3AAB979D125C137B75586B4D419758FF68229870869BE755950100F9C2BF6D706CB9BBC5289489DF8ACF49046EA3D27FE7F0CF0E148286970010151A11B879F9035351AB10A536B6A3144A806B8FAC1389F58B0395FC7AB90436B440BC9E66AE3C73A5E8E5AD59662286FA9A03E62C5EB100C9B63DCCC74793080CE967B7D162438A492CA2815F56950D02AAB7F12254D75C499840C5D662C0C10185B4BA3F84A91B37745D1EBAC3A2440DD899619706756AD70468E1515D4C0A765942DD5A84AF8A894CAB90A724A95481285A160102EAA39591AD4E2C871A160BE835012705598EE166BF2622BAE3ACAAB37D4FDA18997212B831B9B043082EF2B7B86423BDC15D2BE82687C35E12C85FCE726F340634C1107DF0F50F3253764FE4CF0D294D27F28674F94AD16B7D03F91FA62A42BA154E35496E9B2AA884AB27B5332514C377F78A2FB5E7AD85D643EE94763095B2F2616BF87439C22A26C46287125BC7BAC3AAB30B1AEACCCD25532B326983A37A623F0A2DF3D7CB732124F89C37EC1881F2C5993667339D825B68908CC7923D02C55E7F967D3D3B8D01AC87128B85C465B285D60869290A78B40D48D9C39E92C298B313EAB8A8B1607B6DA8C22967ADA0294696988D5D251EA0565C84571914156FEB5820E5EA145F411F5FF64B587A99B88CB08FF4270CC89573D901CDD5624C0A2C3A654B99A0BF602ACFDD15C06D69077AEA18E73CA0C2E650751A68B659A568C2742B626D37F775D2B9B66DA7A331CC4BBC087866B596B7B55C600864595743E1B363CE38BC1E12041E056BA02BCE42D9CA15F5A241DB89E2510469762690D270D1E16CFCB92F715975F68B44E75BCB98E521A5C2BE1E4A2E5EF07BCE98BF8BDABA631433C5A96F9FE7782E756B8E54714F0466FBD00EE503966C8118A1993910C6AD99511DA8216431B26AA7B09A5F304201ACBA84670714C410E21A2D4517A0A1F139304A6FE9C63371F65D43B095B16040AF3CCC487840CC41A63BBB6E2DC49731013EF885B0E3AC5E2BA78D19265B3F36C1BDEC49697A48252A78D7C4CEF33B176F31104A3185DFA62404DC4A771877FB94656D15C43142BBDA1417A7C69996681A0C69B2D7395E694C4ADE0A5886D28F207722855A30273C91E2C19A2B40B62A554F1EF9C282B51015504C4B84714A99A3EF33504429976C2C036A9782B0F2BE79924D98700D6C066015B10C03DB90844B7D4FFC14B49CCD5680B1C1D9C15CA935404737093C20A05461C45ABCB81C6A19B3A0ABC168356882B8EC3549836FAAF354D3B60D1A5290A883AB1E19", + "B9493C26113B3D03B8C3FEC053BBD14B4BE12C80AC412B6BC1328A4FA5F1A3F46BC4BC685C7DA98533422AA2A8C9822237F62C969CE064EA0402CC656A88C39DDF221E3D6A52ECD38F160A3F71C281A02A24BEEBBB1C6C9025DCC51447A7F5679FB0E382854A29D8088B5FA11C59C439EEF92F869C4FC8B66AC7656C385C0983B07AA98A71ABD2B576212FBBD14B96B19559A6CFE5DC1F3549436A4263BD9B8A185740B4EB16E09184DFBB07FFB7266C275438E13208E4A2888B63FCCA6CD8B5ABBC14769BD61A74F34627B896F1E85C03202F4D58932C183D7CB4A5548CC540A32AA9C558E9889E10D706A809ACA75218740BB6C39761BCB0BB0C76725EB80BD5A46D074864DDA334359B4D4DBC7C8DA2B413DC20A1201AE9E7ACB49C905145307CCC92FBA03C02045C9632564B68CDC1E9527B239C1F9A7F72358949B2AC4074721445E155A3A1624CB4ACA373DE6947F148CA7E2B3C93605E706EDDD9920560200B8D070D1DB2CBEEDF3CB322EBBAB3EDB80CF474B4178633C210B2FC74A33923382F8863478882483037FB1282FF917EB6658A7154C6AD64B5858C629E\nencap_coins = 4C25311D7B2FA56A45F4EC1CB4591C627B52EED4D2409EC70EBE855D988893D8\nct = 548A3367CC4E8581E7D3BB565CC1458605DA439E65B5B3B5ED1570C6F813196120B2E26AA4EBFCB6259B77F6B1E6350B20087E423FED1FA7ABD55BF832D750E2649910C2352A37DDA958AAD18AB7ED887D649D4051116576F5DAB6EF2417AA5F5B7E0BA0FB0E92B5451248C9290E114551B79CDE28FD124DD97EF7F928E1A80E8199580E624D2BA1F8543BF1F145990DEEF81445C5993E2708879757D57D80C3A4563DB9838F62EF7AFCFD01F56C2F3DF48607C4E8118DE83FBBCC4A02173B7E478A53CBC74AD92FC516DBC4824E5F0984CF49F75BAC04E0BEF1013923058812DBE15FBCD2A643B6BFD0AB92F25B1FBEF640DD8049244A25239A3340D3DB729A9E1AD1390D7CDC7250C05FBF7E722620514D39755BB4DD43D74029024FCA9E5D3AD462ACFE19954CEEB1E803DD7A43B5F429694C01D396694425667DF1FCFA8AE69EBC080673A356B95C8A907A2BFB4313A062236E67F2F7281B965CC4A55704AD91D22D77453086EF7D668BE3321FF6C7F70015E761AADDBAD1010793A3ACC1C7A10E3B0D4C1C4E8A85B59C5F28126016366EAE7458710F0E843EC1231261B39E540FADC8E5F4D695214A010097757FBA2330910E29A1A5040EB926FBE3DCB228B14166963FA5D51878D425D4F091A677DD029DE8F298987D5292336567AA2C51919F6B3D45BCE6A718E280BCE385B51C9ED347BABAF186B254E8B89684D525B7603C8EE37318ED2491DDC9A46C8F3C112FCBE8D8C6A9F7F6132BD098E5F717ECC472DAA7A70C22396500AC350B4C2D054C093A8F80BA6737CB4833BFFCFDE86BA314249537DB669F7EEFBFD52A7BD208BC4BBB47A0E39EF22D079B7FACBDA91E177217A3BA12D0D16C1313036DB76DBD677453F57241B5C66DC975E9B0A7F947667E3ECE5D5BE84F34EAFDBD23A4C6808675CA22AA7B4630D8D228FB8B9EB95F5D4C09AB2D7C93A7C501B57AA13C20A72BEEEEE6ADE4650FEACB673F3FC7C66DBF74CD3961C27772AB360E4EAB496B2C166429EADB429177C06C98A10E0E59691097AC3DEA92F48C84B7763BA4511E6267EFFBB8369B58D1276B133D6A2EDDB6EAAA244A68B601B62CA108CDD9C01ADDF378904E33A3B3DB122851D64D31A9BC6ADBA34BA0A3E7E6F968F62D1CB2BBC727B8B7730734B37F7212D58BA2CD6C247D573785438E27C47873A5289F6C8F77E6349C3836CF47F30A64549531D5E794863DBB22D0F51118E12831898739A988B5C7B6B83CEA126B9B84EC008E174F01D0E598DCA1C171F6D58F01686125A588A5753B6C3B6ACA64BEBB81C2F214722F2624692D104036DB1ED248247D597025482B4FC5BC1813064D441F4FCD751D26E200CAB6E0FA072A87241A482FEEED22C061D9A32E0CBB9FEC2EA3C99ED6B2C839FC89A83A3AB2999DEA24F69C9BF5AC3F392E7F19384B573273975C7847A11D5C0A1305CF3DAE96303268E096F7BC15EACF287035AB5404C0A608D1823BB7130FBEDA6FB5BB8B774D8B292E11FBBF4DD9737C4DF0E0018DB688119A19FF3A2255F436786E1B175C90830EF882EF040C0C4431573BD02286BC9872161B29EAB31306281ADC25A8F2A6923B7DFA89BDEF7A2263DFE457CCF2F816BEB3BB7716FF021BF176D67BB2AE4D8E80745A35627FCF9AD83E81A3A03F8A1BFC2E1D8345CDE4921E6FB90F95D76847E2B1ED299860F400D628EA59975AE43478453794E2D4B15F6AAF197A0C9A441AD40CA113B90E260F34D50BB003A8DBA78E3A15545C2A2ADB8620C1A55182FD120DCB1DA366695C91215687C8F540B37C2EBF81C7B4BB325906A248E72A63C0BA3A5891468C817E0F0B6FBF3028FA45B5313DF0B7B27477190D0F42F24A6843E2555A28EEA6A9075EDC64C478347E8DD3FB2810E62686E9C89E4E50AD803BCA616C9ED701814A620908D67DCA8B6ACA709C23F5E6022A60E189D3CDD87F3FAEDEE2F44B080C656E53287DDD20FEC52DD6F2F64401344523D09A9DE2CCE1737E63A14295336119817D157504B3082FCA7CB9D3C24721257E0C8EB2E5A72A3A9B52553F876F971EA66E2ADC506C6B61AB7BEB47E40030AD7130BF6E0C22B67B4FA45C34F26BC6D51B79BD58A6DD8C4CFFC13120945F1B0E125B701D171614971154BBEFF167A628C052392D8A08330B099EC00DBED6A35B3AB3B0BE155C2227CEF9700E3B2E12038FB9F581804EBBBEA71F468C94A73E\nss = 5D444C7798331D19A14766E62A9719A4B19B6F96FB298ABFC6C097E5AFC56A1B\n\ncount = 70\nkeypair_coins = 3E809EC8DD0FEC0D911A4E3FAC20F70FBB128C5DE94DC7184CA7310AE9157A987B2DAF2EA1F1011C4BD04208E9E90B9C2BBE2D8B96A1565CD1163966F5337E4A\npk = F2810BAED633638B1737B5AB13FCB47E181E6CB86C69301B77B85E2C64305F1584E370934A02AAFDD27C972CB252B95D01D6B6EA9A52107AA9AD68A021B3BAB723AB9599544FF08A4A13643E181DB6C752A8A5C948D010E8743ECC064EA034444F3A2B207BC3A0606600358907708BC87016261A61B1547BCC8421C009778EE31598D47A48D3A99E9A24CE230B9568CBF4BB61D9A0AA512B282E2506A51B0FE92507BB7CB044E93CA230B6D9F97CFCF31B9055C9775419684AAB2609A1E11B2B354223C9761F7D6B5B02A16F72A9910F7CCB63263E1E45AD9E0349405B8A8B876D3125824C115C69510666308330901208D02F1A6057A0F5481AF4956EA5281C956735D28E49173031B688A30289D385A7718C2C21C300D7AC3FC81BBFC6747C60F4CDB9C037C458C50DD1605BA167806A6FC32C759F2942DD81962AD657B51942B3FC8D925B9DB72B1FD2B303C05043638A3217D1856D8B243018B0D8679DB5C3364A85B78C913793E87855B382B3456D3D7C1C2B82BDB94C6E96732C6F455E4E631FD46CAD78085556FA7FDCC649EBE587D7DBAF5D1A77C6FC70B3BBCB89744BE1B09430F2CE72482D6A8673A8D511A8A1C506A2CF4FACAA9E489D6A3A5322410464D590D0F52B957B28937B543BD5A01F07261AFC810D41BC815469E145862A3238BB194DA838C642B817DB611E18C08325502778922197E73AAA2C030869CA3AB06B22827FEB4465AE60975A61255A405DB1F112A2087218619BC9DC064035774306B14D4B6003949181301253034323F55BD0818097193D449A3CCD1315EE375C7EFB833D03A87A881CB5DAB7E0D045B6B80505CC18D8E9BE1F1A7740D4981E31339503B1A2B22061D484D9368B8A5193D29B3CB693B3DE6A357414BE59D5AA64C6C4AD9964E470999E90627014B34A7A8B168010DDB76F994783B5F41EBD60697198262CF42EFC13128A45024386C78851C709389262D10D65C4784EB10C2CB13D9FE819CB4C6DC0C34DA8C22B69D5CC3AE995E0A965A267CF64D69D2BAC59801C8DBE917B37292630518B093B98D39C6FE0138257467F93C76118CA748556003C05810E7CBE83C60F8791A72494889289716790242199262E44B356A98E38429733F07E4D2329DA534FE8D4998872429793A6C4D14919D3ADBDA51C60CA58C915CB53B37580D960525A8DAFD591D2CC9FCD8A615704B4866C6F11471D84064732B11D62D40633D67AFFE2BD75315C54321D3F515078B1CAC4E1BA9FD529DB1B92A47202C0E768B271826787BD6098A8854460D5DA5D5744944887CBB1840125E2825393B64644B8C0B6CD9536BE03D6C3E7E6CEB13B1901F1CEC3456903F5B15E9994ED1207FF52915FF2460C098EF820A1E885C2FF231896A3C1DCD5CE49910B30927597D988808721CDB68F98914266919DCC46125278774D4C1861466A8197C4214493FAD00F83808290DC6064A388633B0FFD2B1FDD84A6C3FC3576345D1A654F3B129FD6C2A6B95B46D235A9A7F44A6F9558AF20A451A69C6F5C119712CC5ED91F91B946678520E7165AB4CC367D1AB985692F85E68A3B05C738319E0D7107F2F89710F32C7C047019F6CF29854BCDA6B319288944E9907975083E649A93289E04054496F63234BC4CDCB9A2C3D8B98C9C63B08C75109B964101AAC6A016725C3903E5CAA639614650C0E052673721B113F48D5CDA5CCE6B8A7449BA5308AB9F1C25C4C4335E2C4A3BE318C99787FDD98F7B592D942617B4346FCC402DF7A41043B0BD87C318757BB3878B60421AC5B2234863D2888984898D198D002035DC123091532371E444204AB05C8A9DB00C4756135998369EB181882AB3C0C3D17189267F03D64AF8B2C3ADDC90E32B3F44C43864615AF5001B45C9677F59B8CE680EDCEC5088DC17865A790F593AB49BBE5327718A4B0A4FBBC0606B7F0E6B9A4F4857B3146500839BC47A8825E890DE04100878518C722D321740F4C4035A813A5B1C9CF081679E957B795A2771485874E5BF75F57B11F8AD9FE3B1D2D72A1BDA04BB1517296193763776FAE451B6615A8E9C788A5C8D65173BB9307B2CF9C863029553F56717B355843AB1DFE72CEF8C46D6A8367AB70F83DB71C4C410960A7B6221AE2AB64A17441F4B50ADFA971F25C719DC8705926C6BAD712CEF52D284175DEC18F24979EF5BA8EDDF7CAA3880AEC7B42A147E75F0DD62B3D0\nsk = 84D7070EE80107976BFD1B0DB6CC33F3C98178817D8460B63DC012311638AA43B253A705BC994931BAB38A62C5D1DBA793B8437BD600A8725D36AA898E353D6B955B80F8578F855BCEE194CE2C6E4C6179ADE8176E34578FB24B6D60C395B674A7A8A4C72550F83A09D24582F94125690428A4E76972B77A53E852FF3718A440B67D6521CA699E5A8C434DC47A38032129BB76BCB4C810028938FC94F1741A1FB26EC95252E259B8F9176BBAD8763CB63DA6F295B460CDE1479BE8D6B9E3C49AB77845C21C8F3F88741759461E339F76376AB81B4F07E7BF0DB861A4AC5B24E09D4144AC900B43CEC07F1DD2CC4F7C976EB0BAA4D8637BCAA70946391109981E978CA023313B200092D26CCC823EBBAA85B8BA1680636D0BE656F01769555B058AF7825FA00D10A38B0A2B127A773CAB406C1D4310A0882889759F20B44AECF68DD24416D9491CB523A1AFB1A1ED87B28E5589F4059132603E228B185D426F49031AF8FA21B11CB0F37C4557F94B2F158340921F95091128C5616F54105D47", + "253F150FF335081D231F5B308A526B9506B03E0B5C6A88394F0C9C6E7C2B475C7508A3A8B1E0D571D1C364784CC8A7CA7AE6C2B24366A0D2865658D42A8495B24A16C9A9D8B1EA77332A1058DC292EC02C4723FA7204E93EEFC24F10C4877425975CBB6142026A2AA649FC6C77E8C72DD3E5B0D9E9495A02C251B12B7AB51F6A9853BFD151A4873CAB4102DB62676496A8B38C8038E4C6D988880A6B2774875A5FE69693D9726AF64A51D77A03E523BAD8B2A6DBCEA137A051D19E81059D07437E38DB7891956C5B2C8ABE282B5A02A5530C56A7B4B46DAAB256588B04344365313A3AD94A2D7ACA4BA7072CB9259E2676A5C86215B24FAA159BC18BCE05451C69D2699A056ED3F6A7F2BC7676F11BB06CB72DC53D7EA6BAFEE89797B57445F3AE11262543A2882B863CDB455D5EA03EBA56946DC61D798A76BDBC4CA7F2A102C518224A2091211EC4D251CCFB08AA2598065A79B8B61A56E925031A579AC5BDEEF1A6E0B1381FE180DB008F19E775E030052A624B91D1550FE5365260150CCAAF228ACB8FE471D2C8B4B27BB57D62AE9AD9CE15A0B72ED98B8A619CFDD3A17ADA37CC455D77640EA327088E9C33D4281B65DC9A27C68D27088B1F2A5FC586BB0993753E62A67BC3886048274AC267A95B42AAAC3E60C2699321A79301ACD350B92899A2C0CCC4703B243660A39C5901E3B6BB146C588DD3431C4A5BEAD8AA29E04F8FDC0D04783751707CC25AC359952ABE7384F839B42D9C9982DC66A21C7FB5CB7316748423E25005D389BCD56FC498080F88CD75EC974CA9CE9F2BA995B50ECA85CF09612FCBDC492CCC6D0662A59F8CC0FF3355F17424ABB6C774A377B81C12B9982F60777926BA0B860123434CAE8F926E902A5E633019E3C62087A1BDDDF2186768BAF91656D903C4F1CA88163B8DCA041823BB6EE525583816CDFAFCCBCFE63DCAE0B93C46A14FB72114194CD084C208921925E7C55EC807EE6C0A8DDB71C4AB3BD5836B7FA160009DABD1E5498D005718548324B0339EC71AC4A75C81F522DFD92B64E3676B337758490E068C3CC747BC004DA30CECAB9C542FFCE8266D8106E77631E9166653D50B220829B272C2ED5568FD00C52DE89E1CB76ADB4963623C082F824AFDE530E842838D6C331D80AB47F33FC2730BAE2407B8A40C10642BDAB993D363612E5B6250825C92FB6A78535FB1EBC52BD83B6F5B58F52669CA138370F1B21FC80F09D7011A005A20125630D63A9E596DC782962C622BBDD44582FB8A2E4638F7A0029C740F87DACF6300A8AE8B4CA91ABDB56534654395F9E2C7CC087633149AE3609089567C7C7B20E13C03A059A5C95B22BE46671733B28B41B354F30B043BA5EDCC15EBE74E7CBC3188B6AB37FC40DD3BBEE7E02DA545942138739479C4F610CDFF564BA7A281B7249267C3740966C7FFBBA92A8A1C3328B19F58C058EB27E27857E46585E0A4AC62F1A361E44F92413E37E7CCA667AB53064DAC9B3AABF3363451C95F6778DDC114F8C3673CC302E7183D49379BBDEC05FD361399BA5AD58A5A8F823EFB096E1DC522179100626BB67AB1647645794B38AF228787B425B03F7C15082ABD063125086C8586552070F6897252936CC00BF2810BAED633638B1737B5AB13FCB47E181E6CB86C69301B77B85E2C64305F1584E370934A02AAFDD27C972CB252B95D01D6B6EA9A52107AA9AD68A021B3BAB723AB9599544FF08A4A13643E181DB6C752A8A5C948D010E8743ECC064EA034444F3A2B207BC3A0606600358907708BC87016261A61B1547BCC8421C009778EE31598D47A48D3A99E9A24CE230B9568CBF4BB61D9A0AA512B282E2506A51B0FE92507BB7CB044E93CA230B6D9F97CFCF31B9055C9775419684AAB2609A1E11B2B354223C9761F7D6B5B02A16F72A9910F7CCB63263E1E45AD9E0349405B8A8B876D3125824C115C69510666308330901208D02F1A6057A0F5481AF4956EA5281C956735D28E49173031B688A30289D385A7718C2C21C300D7AC3FC81BBFC6747C60F4CDB9C037C458C50DD1605BA167806A6FC32C759F2942DD81962AD657B51942B3FC8D925B9DB72B1FD2B303C05043638A3217D1856D8B243018B0D8679DB5C3364A85B78C913793E87855B382B3456D3D7C1C2B82BDB94C6E96732C6F455E4E631FD46CAD78085556FA7FDCC649EBE587D7DBAF5D1A77C6FC70B3BBCB89744BE1B09430F2CE72482D6A8673A8D511A8A1C506A2CF4FACAA9E489D6A3A5322410464D590D0F52B957B28937B543BD5A01F07261AFC810D41BC815469E145862A3238BB194DA838C642B817DB611E18C08325502778922197E73AAA2C030869CA3AB06B22827FEB4465AE60975A61255A405DB1F112A2087218619BC9DC064035774306B14D4B6003949181301253034323F55BD0818097193D449A3CCD1315EE375C7EFB833D03A87A881CB5DAB7E0D045B6B80505CC18D8E9BE1F1A7740D4981E31339503B1A2B22061D484D9368B8A5193D29B3CB693B3DE6A357414BE59D5AA64C6C4AD9964E470999E90627014B34A7A8B168010DDB76F994783B5F41EBD60697198262CF42EFC13128A45024386C78851C709389262D10D65C4784EB10C2CB13D9FE819CB4C6DC0C34DA8C22B69D5CC3AE995E0A965A267CF64D69D2BAC59801C8DBE917B37292630518B093B98D39C6FE0138257467F93C76118CA748556003C05810E7CBE83C60F8791A72494889289716790242199262E44B356A98E38429733F07E4D2329DA534FE8D4998872429793A6C4D14919D3ADBDA51C60CA58C915CB53B37580D960525A8DAFD591D2CC9FCD8A615704B4866C6F11471D84064732B11D62D40633D67AFFE2BD75315C54321D3F515078B1CAC4E1BA9FD529DB1B92A47202C0E768B271826787BD6098A8854460D5DA5D5744944887CBB1840125E2825393B64644B8C0B6CD9536BE03D6C3E7E6CEB13B1901F1CEC3456903F5B15E9994ED1207FF52915FF2460C098EF820A1E885C2FF231896A3C1DCD5CE49910B30927597D988808721CDB68F98914266919DCC46125278774D4C1861466A8197C4214493FAD00F83808290DC6064A388633B0FFD2B1FDD84A6C3FC3576345D1A654F3B129FD6C2A6B95B46D235A9A7F44A6F9558AF20A451A69C6F5C119712CC5ED91F91B946678520E7165AB4CC367D1AB985692F85E68A3B05C738319E0D7107F2F89710F32C7C047019F6CF29854BCDA6B319288944E9907975083E649A93289E04054496F63234BC4CDCB9A2C3D8B98C9C63B08C75109B964101AAC6A016725C3903E5CAA639614650C0E052673721B113F48D5CDA5CCE6B8A7449BA5308AB9F1C25C4C4335E2C4A3BE318C99787FDD98F7B592D942617B4346FCC402DF7A41043B0BD87C318757BB3878B60421AC5B2234863D2888984898D198D002035DC123091532371E444204AB05C8A9DB00C4756135998369EB181882AB3C0C3D17189267F03D64AF8B2C3ADDC90E32B3F44C43864615AF5001B45C9677F59B8CE680EDCEC5088DC17865A790F593AB49BBE5327718A4B0A4FBBC0606B7F0E6B9A4F4857B3146500839BC47A8825E890DE04100878518C722D321740F4C4035A813A5B1C9CF081679E957B795A2771485874E5BF75F57B11F8AD9FE3B1D2D72A1BDA04BB1517296193763776FAE451B6615A8E9C788A5C8D65173BB9307B2CF9C863029553F56717B355843AB1DFE72CEF8C46D6A8367AB70F83DB71C4C410960A7B6221AE2AB64A17441F4B50ADFA971F25C719DC8705926C6BAD712CEF52D284175DEC18F24979EF5BA8EDDF7CAA3880AEC7B42A147E75F0DD62B3D03A2484828BCE833F9262405B562BCADE9FF04877838558409D2B60F1B689D1377B2DAF2EA1F1011C4BD04208E9E90B9C2BBE2D8B96A1565CD1163966F5337E4A\nencap_coins = 37A2BFA95682BF678CBEFC25BC48BF62FA950BBB7C0E7051CEE508F9540FDBEC\nct = 474BB08D597D3346912AD55E4DEFB164EF55F87F0AE152F9432D14E385F448E909ED293D06E2FA02FD0A7AD2CD8927DC7E220C5247CB40C90DF5B11A56E160200761D9A98FA78BA4C03CE21283EDBA4A5EBCE40D3E3BC77843C129614FDA01E262D5D79ED2E18B1D3FAAE28C78B47935AF99F5280170C1DCE64492CB56BBD818C50C56484E7669986777CCCE0A4F302FD64A312922096C0A5A0C460D19B3BFCE271A5D22852FEA863DBFD4F55C2BA53CA33E3EBFDB476EC8B507F9B0258DF25768DDBE5A757622BAF7BD2CD1906F9724DCE0DCD462AF7C56960CE887297E80033C5413A85BB3AA2A975B70CF120B15BAB63CDC2F11EED0066193B68492BEE6777F80C6390C2DD5E74837AFAD46E2CB7902575D2094F5A4AB1C84F299E8D4614881FB3179E849AFEA539CED56192FF1EDAE4101B0FC3E945C81C64D1A5524AB391EB13525A73C2B1AC7420C0D77818E96BA2C72F22403667D59E36747AC074285F3AA58AE1A24BCE16E4DA9DF678331CDFE4914B180C84524A5C0174D39146352CA3036D4EB5A1650AFD2083255D31808D7C56B1714F0992C025DD571F4263C3B3DFAD96202479FE65BA8B44865FD7AD53D2F709E8F405828785CCEB790D7941E491604670314D435369DE575555522E59FFA7ED911874192175EBCF209376FC2B71B41BB70BFD443849558BE6B73C9C4F57CBCB278A9A5BAB4661825480593C102FC3325B57196EE47C739DF0512A237A9620F1AAF03599D6AC1CD54DD553C7392BEF8008C8233EDA886FAF38D1B571C9089C4882610445FC67787DA2136DEAC2A1501B0C6EB55CB2D5290A85B6F3B52FF5091B423A5896DEBFC8B63C3CF41827852333D21AACC446CD2C4CA2224422D948146E06DDC9745B289D4BB46D3447BBDC6C43046E7EAE5ABCC56255394C177C614C3BBB9CAEECCA8C788826C2D92BA019D786F3DB12C872FFB52FB92399F31E09BC5C47E2882D631321E1645C4459F98228A4719509101090593E71103222A35FAD29D2F6A2325E947624CFECE80103B31F1B645A5ECC5A2EE9E130DC0A801115780F0D7D2895688EED3EADC855BC440BA402C85BD8A897AC97D9C6888D1C19B9C0BCAE368C64924D8FE18BB71DA3330B091F7EE4560ECB3293FCBEDF7FE6F195CC099CBC135C9EA5489834B30124168ADFBE87544CD502CBA542B8A053FAFB3F300F7EA06C808C34C40CEFBB4AA2C46D9297ED549A7D5C8EEBD2CA306150057B9F7424077EE1D26381E064EE9FB2F1D6EFF1BB02DF8C10AC1F97C623605782D892C9DDE18E47FC9890B22D322E2287947184CF2BDA35064CFFC3B2288E70CFA69649813EE34C297DAFF0997C38902F585B5709CDB8DEA6850DD1844B84BA35E4C64119B7773286A5C4BF9CCD5E635774A730B2C940D45B45D46D236344F7EEF1FF5A8FCD92521506C3AB923A25D5F85B2207C0CF2A02786DD13FD13C669F4C08CAF5D6457ED86F3811E7FFFDE152C937BC5F8384C8CB9C13DE7839FEDBEB280A5E867970735AA8EB9ED9F969DA0B71076CB5FC59ED2437EF5BBBB7ECE22C890B6D05D95421B368DE7C6BF1F5560D98CC350326632B1C224AF4BAAE86F36C8FB8F3BF58B519E3D62BE2BA75F3D9BA169113476F5BC7FCC787A15AC898569260B3BA67ECD1A41E91ADD49AAB38F190D9B7781FC91484E0C40288DF7B3F92EC37B0A9CC110A61E391861E0CA3B23DA738575556BE9904369F0960558B24B02C22B65CF793C6A55FF35AA66E1D6682E781881B0AF595697B977C4BBCB79AA6F8708350F0AF", + "1F1916084F8D02506FC060DB71433352806C7A0492E782A4EA22E550255ED21217B3A52A07B006EDEF4C873410BE75082BB103B11281DCFF7E5D1C532BF7782CA4FCB924D4A218D515BC4FE8D1ECFFF834135A388F96DF87AA72C1F936A69565A3917574DD8C672358782D3F5FCBDE4A15C691158956144189B64355A287D0C744F7544D651FA8FCAB0C90A0489266933600EB4E2758B19CF4EF0D84E3267527C6EE5FF0E812E10588262259472882BE688804293375C0DF5C9731A1F97F54428DC1C306B8044CBE1C1C3C9A6F5035930273FE7A92ACEF07FBCC0A2D11282DF10EAE4B04C99CE1A60F9B84BCF4BCAB3C3F042893C25412455658C56929DA376247D60D50A215430FACAB068CB8BF3153F7132C8527BFFA599866D5EE70FBA538A683613E0EDEDCA5F0E7361\nss = BA4C61F3DFBAFE6B6A15471149A4B56E61C8177D13C07F34B3C0AF594E793214\n\ncount = 71\nkeypair_coins = DBF1C465FFF3D9F783BD9EE61A573715E45691147B8904439B5FFAA64F94FF7B5C2478CDC8D59AB164856623D53B9E60CF0AA8214CB64E674140BFD6DE9FDFAF\npk = FB70AB80405C4C59421F913A78E89F67767E71FA51431061746A74746B1FD544065788A7F880B9C81C007E6091E6118F3ACC518BB06579B45AD1374404284B0F1C370C53062CB79A08015B4086626D3083EE7B427B24613947588F7149777A3FB5919C73D5A23EF5445F24ABA79B94BFBA774F71C84F929978C44E07A84BB9139B32FB97D4B20E363A2098838C6A3C51AD244B540B90020C5A0CE2B135918DB1E9093A0CC43AB210D28A7889DA51D88C7B3D1452D7879F34A130BB263F51429086E39051B8ACB15A8A34D7A856E6A89248BAAC15BA1138B680E79E56881B94376638F507E95809862B0897744D3D8658E33C89A7791B93ACB17DDC91CCC5B71B01B9BCA81A7485C5E4428538A3BA7F124D24864149B26D0F246E9ACA34C76103D676CD7A54ABAE1C895C37B1784476180601A67A5D04996D195363C61864CAF95E7D3B2F4ED68CA2DB09D9D34F86D5666AECAA468587FE5A3C56434FF4815C61094C831699C5F1BE9301299E3016B4CC602BB62A4F1C2F1AF247B4FB92D4A10430E29F0A71C02DF70E48E0AB79C0A31827B996B4328294864DEABF8114B4DD58B53919B1E86CCBFBF7931523409DA691DDEA60DBAA6114E62417D9BB054110D3284B3285110B7069FCC58E2E13CB50DAAA0FC082B7C87EAF13063C6A966B4CC24334A7E6FB8C3131461756A35F2B9842811F233A6A7127A33B7CC559B477B491C0155949F9952AC9631C32451B3872967955C1235B61AF676429C94E9034405BE47AC5873C9DC33ED94828C9429DD7CC29D076871222893F207B0F3A8086D77C3D7792BA25BA8DB46A554B161A30CCA878AD6397974ACB3812767A95A01F73CA80F1D83006E9460D2348C047AD60F2841DB1BAE58952142AA3491CC7DDE58DEBBAA27621C7CAF299F4325EE978CAAB6CCD4BD7510F318B20E98D26A94EE99C935629394E6B80A5614891A75B45D81EDA8A6CF8D8B43D62AD9399369023C4D677CE75F14F84B05D01B7B021E15E459BC5C82CC9C4158BA32C5D50708AD9F620297333A4D899CC7A90C28740039B351345BC7B971AAAF39D97326553740238E569D4870BB09C66AF75B532778B9B0A631D362D13D61567212E6AB523FD4C3EBD5839E4AA1421DB5E06E33BEC836876D8A8624C22FA56C43D4060A9E52F1C905EA8714D8436569D050C7A574A74535AA3C4C194BB3D4A867A07535DCDD93F644BAA2DC5242C5A58F0C8CAEDCAC7C5256D8F3B40BF57B055616C24569A51C5BD712279827BB00D274D767156173C7ECB8766202376E9A7227517BC4488C029B9B6B2642858344BD14C8837AC908690312FF5A6DE7BCB88F2CFFD40A9FC666800F9AC54FAC76FF5A42FF83B9D49233C841607AA348E2A5DCBC572D2A482F78B2CDF3CA4BBD22148C925276B6072D777D53081311A286F37AB14BA2000AD4CB82769DC889DE981C969F732EDA2717CC405CC276FC965CA2BCC80054C557C1343847BC6054157A5276432917501F88BEF0B44521C0D5FA168DD89C9E34ACA4DF0A348E53EB5C939650A240879C0911A8E1CE371D7EA45E6F90B8DB0520B115F826085EC25A108309466C11920984534C99DFBC7467AF31D5F941784586BCC0347412C48D0927A4B95A22D98B49A1A20CC72272F09BB63AA194E4450C3BC2351CA6D2043A68EC30C705CC856B00F5054A66D3140BFBB47425A67EDDBC4204944A1E379E1516E45216E12D06B2D522398A125728822CED62DACB220C845A444594B3B6977EEA89E256878E52C766A86A3FD04437B4165242553FC747B80952769C10547804B80C1A6D85A29620AAF7054A54AEC77E0E3C1ACA9613E0B877D39CC9C1C9088A96D7452A3E2C6A1F87C4EFE1234BB9971A1026292C22C94449B7C8A2CB117B8175C7416284742120C11378C03256E4D2B80D502BC5DDC1D4E3C022BEA80140307A3A214BA51C807DB26F2536829A62400FD3A8D06B788E5CD43896A9A349A4C0581662999B9AC52803BA34BB128BC0556FDC40EA9EB0B73193396D51C1BD533C4910B358969BA135F862B64DBDA9608DC7665FC61CCD645F8926D1835ADC34386CEA20FFE3283F900A4FFB693A223755A50C4771379307242E4548ED4DCBA4574410D409A4838233499A337859C64C6941D477F70BCB5A653BF571602E5224E40F228114639B811C5C1D3B614DAF84266BC4C312FA43C4109DAFDE79000AB39\nsk = 47318B2CC6A9D8BC6EBE7C12489017C03214325B61A2A8541FB783C448C3A31C1D82BA7906B09E3512AF8D00D0706A3D391281F0315044C9C4F92B0AD72C60E18637577B942A442589CBB466AC344438750B86CC86B97D16339A9DB0365E6696B183041543B031C9220E82BFB89C21A5B0A0D301109568B1C00B2B878C9284375949C88394F141ABC188EF7607CB8151BAE654A7B7BFD785B44BBBB5C5A68CA5F96BFE5ABF179CB83A58AEE518202C9119C80081BEB38CAFF81F5EA51811F13BE9491F431B127783227BF9B691031145D6A144213FB4F1C89C38C00C81ABF075C4415586BDF28B946380C948B94D7A0C3A793100842230663F4EDA9174DC7214884E0F552A50D16DFD0A5DDFA7920B0AA50437BFC735A546F5B0F4BB22E174B061BC80E91428547576B6205490CA3934C9B15FCB69611A1639974478800B2CBA3D5243A0E2762BE2F87035295FFF40B56BE37DDC71915434C4AF6472C1E5C519506E691703C49C715B50B360A5C2FCDB79F59C7ADE27380F9905EB7AA6F5042C6A32BAE657C699EB85A53395C0303E87E89800131F96969BF45B3F574A40ED813268603A24F1C3180607814914775350B88A1FA7E1034C9CB155879668950AD5950803ABC0CC58BDFC408FC1F2BF7D3A2972AA66B58844C048150C0B8C89ACA3BD3269474875BF10A94D2B9EA3687AB9547EA59731B73A8849AC7B7C4B946D70B8B87C56B81B77024503BA87485BA3655F669770410E89FC84925B87C008C3CC13C7B9447D82FC2932A1C641230725A422B6219D9BDB5CEEF17E121132E6615075E0B26CF71E91A1593210A09507214716A3405B2503CA5F29D4479914CD10B3457AA62A6BB71BD08736E1519E69F709B8C8439B4441BBAB5D0911BC6737CA742747CA592E5ED734A8AA1B77450A9D4188E05422BD9240E285865D530E718C6F1A816153CC27414446BBA8129A1716171AA60AE086AD09951C2B9AA2744E0153CBD4EC9D1736908CD78E7CD75D0333434715C517633EE6603F7993083724A596069F3270C071B6BAB955844A081A896096F76059B9738D819CA3B6588D5F578058D28D2D0710B2BB2E307A5F9E18533713C41E172A99614A97C00AC0A83A25526C399CC9FA9B74CC4774830C8E754231B04274C90C526DEA7FE3D203688114E7A90D3AC02AE69A139649B754581BB56825A215C3BA282A26C036E5D5785C07C62956B612FC37FB73A7C6EBB506B998D54979FF29781CD09CCB64993299745B34B6D7F897C0E05E1A6966E6757DBEE29AF2EACBBB7701DBC39294DB584C7C3A7841112258951D88145CF73404A17ADB8CC4D11788225557A83B652F95053E8507093B2A8B00CE77E7BBBE83233DC18880F2274472C05E646B90952FE92440D164092A058D69C96869D8A83377A2DA92C2D668607DEC3CBEFC6242B49A9DA97C19C2067722C8D309CB898593B08B5D8138BF2FD1C59081614F764ACB392D7FEB205A85270DFC1129929CF7B53D41031C92944972B8BC9A9C494AB384996647E177A87A101C45C747660AA4A38088A5F7919CA46DAD338576463A1C1425A6C4409E2BA8217827AE83BED4E6C80AB528A6BBC1AD58C868B995D9F72C77E84173C9CAC4311D8FBC5895D694498A68E0B16037A95F9B61C95AD0B052E01DDF68A1FE5C094D3B8726545F1F857BE735475A8ABDD7C7B749377F2FE1ADB0CA283D6721A109790F4242AB1711B08CC2CF7361177969EE3106B8238E4D41795111908FE17DD68A461C490D165316E927781AD220FB371D5B1951C4D83D047B72F258865E4296A9727052F4214EB55727B23A52BC68F73CB417CB40AD595888C941AC9360C11C0D17790E3EFBCC97373AFDDB9AE3F61030729D5B7B200E4555B6D25D3E6B16E211BD05DC2C724A33FFA8BB3AA4684A422C19892731630EE2125AC8D8CDFAC2B69834BD888AA2ECA804D7A935A8D371899023488C9799B55F2D83A7D970AEE1750DCC59483CC49451991A799044A74326EB0689A1C72186226C8102B344209FB510C21A885306A69640F6ADD7858DACC86216A189984640D518312D553626DA12C9180948492EB5D1090BB896B1CC315105B2A0002F83B3997F02A227740BD4421ADE421696031C495892CD3BB68AA38AE1F02AFB536E9499ABCCB904973661FB70AB80405C4C59421F913A78E89F67767E71FA51431061746A74746B1FD544065788A7F880B9C81C007E6091E6118F3ACC518BB06579B45AD1374404284B0F1C370C53062CB79A08015B4086626D3083EE7B427B24613947588F7149777A3FB5919C73D5A23EF5445F24ABA79B94BFBA774F71C84F929978C44E07A84BB9139B32FB97D4B20E363A2098838C6A3C51AD244B540B90020C5A0CE2B135918DB1E9093A0CC43AB210D28A7889DA51D88C7B3D1452D7879F34A130BB263F51429086E39051B8ACB15A8A34D7A856E6A89248BAAC15BA1138B680E79E56881B94376638F507E95809862B0897744D3D8658E33C89A7791B93ACB17DDC91CCC5B71B01B9BCA81A7485C5E4428538A3BA7F124D24864149B26D0F246E9ACA34C76103D676CD7A54ABAE1C895C37B1784476180601A67A5D04996D195363C61864CAF95E7D3B2F4ED68CA2DB09D9D34F86D5666AECAA468587FE5A3C56434FF4815C61094C831699C5F1BE9301299E3016B4CC602BB62A4F1C2F1AF247B4FB92D4A10430E29F0A71C02DF70E48E0AB79C0A31827B996B4328294864DEABF8114B4DD58B53919B1E86CCBFBF7931523409DA691DDEA60DBAA6114E62417D9BB054110D3284B3285110B7069FCC58E2E13CB50DAAA0FC082B7C87EAF13063C6A966B4CC24334A7E6FB8C3131461756A35F2B9842811F233A6A7127A33B7CC559B477B491C0155949F9952AC9631C32451B3872967955C1235B61AF676429C94E9034405BE47AC5873C9DC33ED94828C9429DD7CC29D076871222893F207B0F3A80", + "86D77C3D7792BA25BA8DB46A554B161A30CCA878AD6397974ACB3812767A95A01F73CA80F1D83006E9460D2348C047AD60F2841DB1BAE58952142AA3491CC7DDE58DEBBAA27621C7CAF299F4325EE978CAAB6CCD4BD7510F318B20E98D26A94EE99C935629394E6B80A5614891A75B45D81EDA8A6CF8D8B43D62AD9399369023C4D677CE75F14F84B05D01B7B021E15E459BC5C82CC9C4158BA32C5D50708AD9F620297333A4D899CC7A90C28740039B351345BC7B971AAAF39D97326553740238E569D4870BB09C66AF75B532778B9B0A631D362D13D61567212E6AB523FD4C3EBD5839E4AA1421DB5E06E33BEC836876D8A8624C22FA56C43D4060A9E52F1C905EA8714D8436569D050C7A574A74535AA3C4C194BB3D4A867A07535DCDD93F644BAA2DC5242C5A58F0C8CAEDCAC7C5256D8F3B40BF57B055616C24569A51C5BD712279827BB00D274D767156173C7ECB8766202376E9A7227517BC4488C029B9B6B2642858344BD14C8837AC908690312FF5A6DE7BCB88F2CFFD40A9FC666800F9AC54FAC76FF5A42FF83B9D49233C841607AA348E2A5DCBC572D2A482F78B2CDF3CA4BBD22148C925276B6072D777D53081311A286F37AB14BA2000AD4CB82769DC889DE981C969F732EDA2717CC405CC276FC965CA2BCC80054C557C1343847BC6054157A5276432917501F88BEF0B44521C0D5FA168DD89C9E34ACA4DF0A348E53EB5C939650A240879C0911A8E1CE371D7EA45E6F90B8DB0520B115F826085EC25A108309466C11920984534C99DFBC7467AF31D5F941784586BCC0347412C48D0927A4B95A22D98B49A1A20CC72272F09BB63AA194E4450C3BC2351CA6D2043A68EC30C705CC856B00F5054A66D3140BFBB47425A67EDDBC4204944A1E379E1516E45216E12D06B2D522398A125728822CED62DACB220C845A444594B3B6977EEA89E256878E52C766A86A3FD04437B4165242553FC747B80952769C10547804B80C1A6D85A29620AAF7054A54AEC77E0E3C1ACA9613E0B877D39CC9C1C9088A96D7452A3E2C6A1F87C4EFE1234BB9971A1026292C22C94449B7C8A2CB117B8175C7416284742120C11378C03256E4D2B80D502BC5DDC1D4E3C022BEA80140307A3A214BA51C807DB26F2536829A62400FD3A8D06B788E5CD43896A9A349A4C0581662999B9AC52803BA34BB128BC0556FDC40EA9EB0B73193396D51C1BD533C4910B358969BA135F862B64DBDA9608DC7665FC61CCD645F8926D1835ADC34386CEA20FFE3283F900A4FFB693A223755A50C4771379307242E4548ED4DCBA4574410D409A4838233499A337859C64C6941D477F70BCB5A653BF571602E5224E40F228114639B811C5C1D3B614DAF84266BC4C312FA43C4109DAFDE79000AB39BB8615509158B63BE5F5E51A0E690F2AD6FD0C56FA886BD85902ABD52598BC815C2478CDC8D59AB164856623D53B9E60CF0AA8214CB64E674140BFD6DE9FDFAF\nencap_coins = FC69423340CCA2E8E96B963188545FDB2B9287959ECB7EB108F8D04204BC87CA\nct = AA22FD8FE3D2388CF610BCAC23FD3550250CCE04A2AC3EEE5446A6A61BEA88E60549836FC8E35AA25E4C3CBB26CF9EDB89BFE68DC0C8997D683C4AF2FE2B4E1A7B1FED925120DB6A7BFAF7B0585A82523D7080DAE4C6929807935CE1E5831FD985B54B07F6D0E65ABA37CB27D357B603AC44E6B6A4FEA5E12D6DA5960B39D2C77EC1AF5736F5A7513F0A67652E64CB12DC4E356EE18521F5892C9A341813DE93B286E53DC8F04C45F49372ECCE5E6969C9CDF1875040DCCD0303E6637B7A56C27C8A3500D091BA21CF8896003D6CDBD222A5B1309D75B51F0A9FFCB38AC73E1CC156493746B14DDE7C52F291DE6654937A6F90B78896A1D62FEF21A82853199A05F37CB6CC8389E90FA07E067DF85FC92D13C07B545D4C65230D00768B899C788E05AE6E659BDABC164315C29D2B3A4F06393DC9BAB9E6D46D180927459D0081DFB25A415C46705AB00EE0366133671A485BD669B36BD1FFB249C2E89DC2766C94D2158D0BCD164DD88FB7EB1C271F068D5615771F7126BE7F0B0FD59E43A1D7A8908118696D38EA4FC36CEB0592C1FBA5567702DBF939FB94002664675CB8D2DF22D6A56EAC0ED05068F871CC6BCB6940F77A9B4F9C283F09C54DE21A97F5F48FCF9A4CD14631D537C2872DFDF007ED8A135DAC8E5609CCE47624006ED414C77B5DCA7C969BC2B942F206A9E4D686596EDC7C2F9249F0F126C3B6DD2E98293E5DE8DA7AC7288AA6881B54629126D5D63F29A967177877B4C697A5866C70DA15611BD3C06B68C69B6C242BBEE42562700C7A5CEB1174F58D5CF8088032469101A2277F5AEFA739B976F4B30AF66E1A7FC88283FE59DEE3A089568ED99D812CC43D6C2D416971F734AE2BCA2EE7CD092F14FED4D2CE5BE6A79ED29BE04D7449316B3D79F326F9F5FCEB368FC5ECDE3D99A0552B9BDD9E0133317B034C0016073490C76E83C40294F148FF1BF6B618205F75239F9AC8AAD67CC3E2C3B7A4A752CE132480A51EB26260EE51660CB43FB77DE8DC8B68FAC20333166EDD77769C9790E69200435236EC4501F2E7130DFFCC7267AD94970FD6A68D147E501D71E8BE13BD9B859B19DB6F43DDC87A07F3F94F4941D8342E00D31A4D51C69D9B29AB4EA960FC560F65A00101599FE45F8EDC86BC081164B3391224810ECB8E708F789436DDF0E9C2C3C3B4CB8B1E8C3CDF3B229D681DD706C83E83FBD572680BB3F428E9FA65BF64B8F0C2F190881DBA227BC1E08A3F77CB8940038E587B1F63513C12DBB61CC964AD305C15F7416A19FBD6290EF825EB470F2FD380A1D69472E002A55AEB04585409088F20FB09C0CA7A7E286E8F240B5099F814FCD9DE1045906C307AC47773DE56D3504BA39E6F11AFA53F65008FF1CA112DC3A9F08567820E095F12423923A136561A4E9E984F9CAA1508D8F282A864B16C14771A0C3BB4C5F94399F63DB5F74EB5ADF3A952E456E2A6E803B839024B0C52BD150EF7FAF41BF465E5D5231832B7A84299D8F8E7B07CD48F8261E851F3A81375685FFF078FDB159B2898E372223C7CA7945C68A45D7AB314D492442EF1AA413437DD8B1AB7740596EEB31465347192CD83E5F4B1E569CB09342D093717F0E518BE7845B327438B879DDAB9EA0F196BC095FF0C565839D69D2BCD40075C3236ABA4719DD30B9C949ED23ABC9D7B20771F7CB03C4A8EDF4304CB49F6A6D197B8D0473ED9E48009377CE8C09DD912A0421C467F0861BDBDA2438E1F696A3AB5C00F6B2328E97CB688E7980F5BE3E6E0B7B5F3DCB92B230DA8E05F30E4C3AA0E4483B680D416176AA8B100A2CB5D8E0996F626C610F1A7B7EADC2D153AAF5374B6C1303CD59C420DD5E77A96E4FF0792E4F8F370100064F0F1C5629B1A53AAFF3A6388C1EFA1B6A66906C5BA4C9A5BC502458DC935FAD6F6285C90420DA42EA242944B21EB5F916092ECD15CE1B69D4F272D38391CE3D33CCE79A02F65ADBA75CB121A28957D98661EE90BD07CD8469CE58C1979DAEA015A73EA1F18F8F932E1F09EC5AE17F231A0C481BDDF0BFE984C8C3350EBB2A77C87053FDCC1777FA38215C1D83A15C683EDF83016C91BB5B652EA2EC74EE06303C98554BDB09622912CE147A9589229C04C64D48080F274F3C3C9BCAE5591FD0A95E95D35F69AD86F5D282E526F50D528AC9716BC0AE016DF628FD8BCAA73C39F6A62FB1292292036A600C03D14E8F6C0DB13BC01\nss = 920C48ACA75E502412EC455D00C5DA4FE0588CCCCEA95299A6036E4ACC3082BE\n\ncount = 72\nkeypair_coins = 1F7CFD2B70863154E8A69D1758532E86C20CFC763D67C758BD10A13B24E759B588E66590B5B102B223291CC78119BB94E799E37B95B7BEF0337E6A572284B9FB\npk = 52DC3121B31062CA9D2D7599B62B942C221868E9030E52B016BB30BBA71109EC9CF44930D76757D16452623010828925C340A8C2A7772FB71A09E1CD8CB73FE5C1A8428219B9F14EAB47CCB13703AB2AAC1BAB159FC57B1ED434B5A00D5221C05EE77FAEBB4A05EA04D9C6ABCCDC5764E876305025E57B9E25473DBEBAB8BC207148F720F224B1A4887DA3604E23321F17167B01D546B5074CB27BB5B6A365B91232EE7CB7F47102902285FEF001E4914499DA9E31EB1376E110B3BB06FBB350A054BD79E84113021BD1A1637BE1A7D3057679B41F20FABF3D764C158457E7A967CD4440D4EB2C2D09808296C1D666784698115A83CE0840467449080E038B81F1C7743C7F71861D0A150C5867BB71DB4CCF5C5A92955CD33812D3590B7B999708B38D6867B979650A73A63CC9FB9BF87653C5396AB8730E38201D3D493443369A7B424FC895CBFD96271445849C38BA8C9A969CBB70626698F12223E450C58CF5A384FC784914072ED92338F11693BCC2C48C201390144BD52584260A15BB48401BAEEF381AFFC95AC96033816C3414D03EE70CA8C947C7B9BA2052393D3EE9856CD52708AC02294C4CC58461B379A8B3B5C85396B4E90B678C9817C34B2ED2FC9E8BF346EBEA1E6987B81E32B6FDE7947A1772230257C0B1C564427B0951A451C11C6F2A7C27B6391C2B0581D19BAD322038989C3540084132BDCD6368682927524149A4620326C7B968F6090EBCA4B7DA889B48723AD977BB76369D3B07873B5BEAD9CB08766702B90D16EA4CE99A7FFD3AC1B2DBA13CBA3DAFB3761F09AB7D0084F324BC15A0347FF2264BEA0C88711364EA0DAE46763A02C3A90B1655EB7D74A59D3687738F1C8B26E0929920089237A196D64A3EA58FACD259C4D72E17721EFB36C6AAA1572EA88D1171134FA331C43125EAC801D1EAA9EF426EFB2CBD6718A4BE981EBD2375B73C91B7248EF21C6BF6B29A4C385EE899007E44A50AF44FF7A4A973D933889241AEB90358F84943917441C7840D0348526B25EC3A15558562F107CF33540823788075931711C5133F8516BEF21C8425088435405275B970C457ABB73F696612B253221112A34376C3133164A617C6002A5FD143B7FA094ABAE345F78A734DFAACD7F6377AB48F943BBB3690BA32476F701C7AF32575CBAC0BEEEC43BCD8B54FE2C026D6C4B4FA150111BC58A8119C083A1A755E0E0C57BE5C0929F64946015F8AC80C07A249EB68AFFF3388F205353327B484CBBFDF6236222867BDAB6BB2FB4FDA4260FA1B47BD47B43490CB11A9C3ACA191DCAB94080BBE8E394CB988AD474C122964739F05B5964070DDAA7A4BF2227E96498F7205E17B77D926695C3508F1105E4774126F014B61194436042C3C155E4A5134DC95583C189ABA2BB29268C44E2B6B6D52B70198A4E193C0B4587AB18A0166C51365B05949A438E1F8670C69BE929B5C44E851B6C6AF3D1BC3FB9CB99A7A7AF7D6448099A0AF87362EE950BAFA5257D840F427ADCFF5A048717B60C22D5B2A6CDFC4158D5747925731AA85BC66EC37D3384FFC7910EC5B4D2CB5442E25AC411112DD4B983B68A90BC57DDB122D73372794214E4E64A07AE676DA990239498257149C299A193FA1CDEB371CC354BCDE26C3238BAE59230F4CCBC4614708FDC39CA5D916D80873908204B70391788CAC2A346A1AC72A92673532BC9286455D7EB405C830BEACA707FB865AA1D41315628CCEC14D431434FFF6350E518F3EA8422B44CEA3B6B39910BA6B5265E8D18452F7119384244228A983C3AEB0B139A96830AE90B9C2E569FA885406C1270F1654CF69A34C2375F2BB537F39A61935AF753C", + "B6EF139317105C9F4B3DEA094093D667396552B2B9562CFC0E9EA43C54F99430931F10BBCC0C81270AE352CBDC29658188E67A3DE915469AE4263667665385381A352B48176539F59D4E2B19737309EFE6C40A1A4D3F52A7FE47089ED22FB3B3C24531865BEB47F823221C690B60586928EC5CB9505AC6B9C764B62B63273165F70E76034614EC354B38786FEB660704A5DE79B1D3399DA5C8B1E0416AF49C22D7A6982A338471CC88B18258F2F3B55BF51BEBDCC53A7829E4C875F18127C7B5473F0252BFE4735C59388B305F3F106803C27C6BC3C51D38070F1561EAC805070AC24099BB9A086057DF0C5465326E1932AA50DA74AA8435D9294FD6B7C05A153F30\nsk = CD28AA8C74142A0508C2534D5ADC64284806BB2C653BB9783ADC640E9945C253AF86F57C19B42C6697AC85D1BFA46B5231559C11F5A0DA9B2BF43C40001D4E6C00B81237343E15A41DA190CF8940B641A4B42B72D9CC8BAC681369DC07D80AA62F135B0F956355A4A68E575F34393C42BCCEA68A7A63C269A5821557299FF63B9F0161368F6084132C8B56984F4D1626D7436DAE2596E1B24A86562374B066D2483A1B354FFF9766845480FF396F6AD089B724B0F15A34C2288DEB05A8418909803CBFE2F3C63C30056F358FAB798F4E385EB0E35ED0C38ADE7382787A2502D117AD0BC6CC0A4746AAAD23345F10074B21970C18EACC898472766B2313472DD3348C82F69B7D961CD35A8C61984E7CA20AE6382F04A977A72B532A1395707CBB7CD595E0DA0202498058E59F22E0C340C438851674E3AB1E0D872FDA3BAA7F87B67F449E6BB461BDF1CD771475D5B59FACC30181599DDAC8CE68DC2DE5741B21422FDD512B39D9633ADB202AF3941E323C9326297CB58086C3282F722C4D50B94B32153FF30B91F07A811A9D9E07B7667846806B6F7071AE29323156B668F831A9F79AB7949CB363DCC8D151349DB4B5EC1266E7F5AF98105C95C0A4D47648AEEB01FBE1113948B407FCBE199BC2CDBA40257745D765C6A0766012F19DF41A770E96CC95D3CBC70549F7E61914A73DC71062F2A3A377EC26DED59E0CC85B11A74F43C3237C7561CB7046C0E660B5BB0BA0634FF2B211438A9B9B906F241B04B2439F29A3CF0AD9128D683F0C2C26CA050978CC179872B1664A751458C072106FDFA07D97105188278268B0481018782F361D08555FE5799A0654398285B378F7A9F143CE20673184C75E8B662085899812912FB8A60485921B2F7B3FEAB95CB7AA327D8B9DBCF7C7256A131270B731E33F8F555CF4F8B7A1E6AABB4C83D2938B7B21BEB1C3B3CB3BC08BF52FC1F5715FA89EF8E205D85862F6A2CF420592AA24568FA0B8DCBB90D0B654C7C82C7411B6C3E219F46C352AA034C4FA0AA4FC47DAAC204B351497727B96714359A66466F6C4CC2B83BF6B87785367C7116489D6C5FEB975E41C4BBB2A3D8FDA920021C523227A438374D96032F62C41B17422584AB5880475CDDA8B7F4844E5420C25D97235B0ACF71012ADAB59298BC80052AAF1807E8015695D92184741BAD318BA9AE27C306A2E42C80512534963B70B9D0B7F5AE70326C33E7D43249E8C9CE386947C167C8F33C88947244989C45B4858203249FA5A136734153CD94F1AD467B5043F7ED77F58D34490D1B5F9E323F3E2146011921B8A9F94E419BB85AD965443E7F4A73534457BE43EE5F677A63A7738762B799600FA0B9CD328AE4CF507C1D9845EDA77C30BB7C39C618AFB402CD9B016F0092CB61E8BE13A18925CA122A142409B8DC637A364093CD76925A194AEDA21C61709255BA2DE330693B888A6C2C6F0C39FA5B4C7FCFBCC198B3253C0ABC5AB5EDFB438ED3A82B72B5F54A39D21C37879480C4A648F182A94EA566C598BA4CF697140A20FDF4CABBC540B80E8664216A6E880553899964A7B239D00C68E720706512CD2A58B9C49BC0ACB90283B506CA196F7855ED69AB21F059A11FA3FC4670DFDCA6DC0A17C3E407CA5F7C0BF4481D006BC6F257323700A3027B296B58B4C4716200C8B382190C1CBA73B87C1497B69E8755F9CC5228EFBCDE6F2C0120A524D87080590A92222725892B588BB8EC10760DC535DC2029E4BFC7DEE8005A82446534462FA1443CA492999C01D87D71E0B6C9D0E7A9FAC2264C8C80BAA5052F9E876CA5B5D2C286D78467B8BF35E51C27B7F34B45D5534B45B520AA18A85E54D22BABE9B618B098A49810CCC2ADCA1B8226F8AB826ECF9C5FA2B665EBB5449075BF6CA53DC5665CA639EAA96120585B9B772A77A17BC2634C268FC9DF25B516878901A1332DC3A0A38CAC0104C59522947B92ABEC9AA8D943AA710305A9AAAA751B564CBA271355BA882BCAEE053487B0C899AF306678BBEF3B603A8902CBD61AA78639EEAC2A387158E27F629395422A3C922DDD45BA7C93C6B97148DC7B990C51C63101672D87D10C8782CD48DC34A925BE78B245016A144C392447F576282E1C83745FB395BB2A4F5F2BC224A0628F75621817798F70437E6381FCBCCC547CD52DC3121B31062CA9D2D7599B62B942C221868E9030E52B016BB30BBA71109EC9CF44930D76757D16452623010828925C340A8C2A7772FB71A09E1CD8CB73FE5C1A8428219B9F14EAB47CCB13703AB2AAC1BAB159FC57B1ED434B5A00D5221C05EE77FAEBB4A05EA04D9C6ABCCDC5764E876305025E57B9E25473DBEBAB8BC207148F720F224B1A4887DA3604E23321F17167B01D546B5074CB27BB5B6A365B91232EE7CB7F47102902285FEF001E4914499DA9E31EB1376E110B3BB06FBB350A054BD79E84113021BD1A1637BE1A7D3057679B41F20FABF3D764C158457E7A967CD4440D4EB2C2D09808296C1D666784698115A83CE0840467449080E038B81F1C7743C7F71861D0A150C5867BB71DB4CCF5C5A92955CD33812D3590B7B999708B38D6867B979650A73A63CC9FB9BF87653C5396AB8730E38201D3D493443369A7B424FC895CBFD96271445849C38BA8C9A969CBB70626698F12223E450C58CF5A384FC784914072ED92338F11693BCC2C48C201390144BD52584260A15BB48401BAEEF381AFFC95AC96033816C3414D03EE70CA8C947C7B9BA2052393D3EE9856CD52708AC02294C4CC58461B379A8B3B5C85396B4E90B678C9817C34B2ED2FC9E8BF346EBEA1E6987B81E32B6FDE7947A1772230257C0B1C564427B0951A451C11C6F2A7C27B6391C2B0581D19BAD322038989C3540084132BDCD6368682927524149A4620326C7B968F6090EBCA4B7DA889B48723AD977BB76369D3B07873B5BEAD9CB08766702B90D16EA4CE99A7FFD3AC1B2DBA13CBA3DAFB3761F09AB7D0084F324BC15A0347FF2264BEA0C88711364EA0DAE46763A02C3A90B1655EB7D74A59D3687738F1C8B26E0929920089237A196D64A3EA58FACD259C4D72E17721EFB36C6AAA1572EA88D1171134FA331C43125EAC801D1EAA9EF426EFB2CBD6718A4BE981EBD2375B73C91B7248EF21C6BF6B29A4C385EE899007E44A50AF44FF7A4A973D933889241AEB90358F84943917441C7840D0348526B25EC3A15558562F107CF33540823788075931711C5133F8516BEF21C8425088435405275B970C457ABB73F696612B253221112A34376C3133164A617C6002A5FD143B7FA094ABAE345F78A734DFAACD7F6377AB48F943BBB3690BA32476F701C7AF32575CBAC0BEEEC43BCD8B54FE2C026D6C4B4FA150111BC58A8119C083A1A755E0E0C57BE5C0929F64946015F8AC80C07A249EB68AFFF3388F205353327B484CBBFDF6236222867BDAB6BB2FB4FDA4260FA1B47BD47B43490CB11A9C3ACA191DCAB94080BBE8E394CB988AD474C122964739F05B5964070DDAA7A4BF2227E96498F7205E17B77D926695C3508F1105E4774126F014B61194436042C3C155E4A5134DC95583C189ABA2BB29268C44E2B6B6D52B70198A4E193C0B4587AB18A0166C51365B05949A438E1F8670C69BE929B5C44E851B6C6AF3D1BC3FB9CB99A7A7AF7D6448099A0AF87362EE950BAFA5257D840F427ADCFF5A048717B60C22D5B2A6CDFC4158D5747925731AA85BC66EC37D3384FFC7910EC5B4D2CB5442E25AC411112DD4B983B68A90BC57DDB122D73372794214E4E64A07AE676DA990239498257149C299A193FA1CDEB371CC354BCDE26C3238BAE59230F4CCBC4614708FDC39CA5D916D80873908204B70391788CAC2A346A1AC72A92673532BC9286455D7EB405C830BEACA707FB865AA1D41315628CCEC14D431434FFF6350E518F3EA8422B44CEA3B6B39910BA6B5265E8D18452F7119384244228A983C3AEB0B139A96830AE90B9C2E569FA885406C1270F1654CF69A34C2375F2BB537F39A61935AF753CB6EF139317105C9F4B3DEA094093D667396552B2B9562CFC0E9EA43C54F99430931F10BBCC0C81270AE352CBDC29658188E67A3DE915469AE4263667665385381A352B48176539F59D4E2B19737309EFE6C40A1A4D3F52A7FE47089ED22FB3B3C24531865BEB47F823221C690B60586928EC5CB9505AC6B9C764B62B63273165F70E76034614EC354B38786FEB660704A5DE79B1D3399DA5C8B1E0416AF49C22D7A6982A338471CC88B18258F2F3B55BF51BEBDCC53A7829E4C875F18127C7B5473F0252BFE4735C59388B305F3F106803C27C6BC3C51D38070F1561EAC805070AC24099BB9A086057DF0C5465326E1932AA50DA74AA8435D9294FD6B7C05A153F305CF14252096E4988D8ECC4AC6D29FF09C55D666865863D03A68DB523728910A888E66590B5B102B223291CC78119BB94E799E37B95B7BEF0337E6A572284B9FB\nencap_coins = 01E6B1B765E4C42464F6A35D1DF3D2C673D752683850FA4D147D4E0629B88B10\nct = 98F0D34306F56C305679DC96138348DEDFF9E40A6E8EBE8FF6302CD5CA57A0E3FFAF4FED7598E7F32265059AA7EED3137EBD73F0F42E352B943B696403A133DE09AB5FA33C464B4FC25486E0CE04962192D7F7EC1199EE25F4E306964CC8F149B6AF26C21E35C6522D3F9D1C67807A4667206A6404D7018FFA58744FD29991533D2A2B29008D3DF0F54244C1877779D054846116635B00370A0F0DD31AD44D18D3036E42E4DB68473CD8F8AB69716A16439B95C191E7A0B123C0A4B8688E8C10C7A0CE81551F6E25C3BD74A821CB7EE19B4FCCC1EB839BCCB006F760F38A6DFE2FE937E8A6467765FB5F4D3FFD1768C1D2827877CA5AC56007D1D23A3B5F5BAEFC75E8D4EE40D753A6EF30647D8A10B214FC3A1F58FC31B6B4404D45C38A60F47CFA350443F6502C1BD25E1E1A0D3EBBAD52615E87CB349F9314DBD39C28A681D8DAD067FD403AD41C60D5D7C1BADFE843AC3FADE5390296C7C1D708B4EED0C74F7EF9E74DCA6FA4F108A7B7002102F1241419A6389173A8DF7C635A34E92BB03D829AE5C744C4C494EF768BB01BD60F46EE90771D8AB900B2508A98A14A685B69C97743A5729C30CBCA2D98433C4F193CAC625DAB4891451FB152CAAD7F214A724506FDB4AA69FBDCF05BD292D403BB7E744DABA5D20CB82853D9957B2F189624344390DCE822C6288DC537105476A6A5CFE95F6247F87E91F6337EAA67335E44E898B67B3F38E2B37FC7917271A3F848F555275B84AA8588CC976AEC6851EDC66A2E4D8DB7EEBA15A5387DC0FEA3552B18168B6B8C3F758D8516DC2E7B3CD2D5656757F63114110B40144A16E299E0EA1451470135F8CDE980EBA84A4E183FBF38694125749041F0E17492171691313", + "D6B38A00D84E7EA0DA6D8143537BA625E039D3858D7F7D5C1C9755DA9E078598FC99F0F7CD459DE159C74FECE9A8BB503BB7412EEF96CE3371766876FD3B8EAA5D23DA2747C74E78B44C6D53F2CDDC4422B89E6C699BE65C85748D388DF469D3B22D2772FCBE9E58AAFD21A5B39A40DEC59C5853F5B01E05FD8DB28A56396D319D0A8D655418523D633E78A39CD07BA77FB192603CBFAC2B15E22696CF678CD0D1345405FC787E0E81BDEB4290FE6D0981040074DB199E9CB2D71D0C048F776C394447111F78E723289607C7D580FBB64A15223D05297662BD44E0B57570E77CB8ACD83AB8D7D259CCB67142EBFBBF7F58A78C10ECE679D82D7BA8B7AAA104E9AA27641624CF1352465CBDE8B884F11383445ACBB12F9C242446DF02966D48EBC256AFE3611565CA82CE325E6A56C9E65D4261A2F7B8A39AF5895CE78D82E126BC96943A103697A1973859FF704E5315629AFFE0AB8AE229C9786AE4A7DB774D423E5E77ACE2FAD6970CE584C12DD93DF535A693ED85D0B60D82587837D7927A4A00F34309955616C27E59FBBFB00041EAADA7E5D6F42DB7BC2B72AE904830E1A1344066F0E288FF700C493105245A620B03E236E9394A41DA74E2694617FE8A0C3E882972BB8CDF48633370BBA72DB03190804686676F8DD2A8FECE8E210673C06CC8BF9DD3DC0815FADFCBFCEC9954E893B837E4D297825B4E66BD37229215711362DEE44B466E26A9E4C261EC82C6331B4D277CB9C391FEF0F83AC4FBA445B4A5789D45BAF3B54FBDB39F24BDBA1F19E26285932FBFF5F6DB60F0319A483D0FD2258AC69847B61B53C560C3FA8DBFF0383CF1C61F7657C2BB9A575D636D559B35F786FFD06E30B6CA845C4BFE904E27666EA8AB6E3D82377295F2684ED1137384806D96F197193FA7B54D0CBA5C2FDC767FB6CABF118A25998CFE0452A2C9DE70220A2B1BCFF60B19812CDC1A64888E4E4C0DA867D7832E939DE903263B0F3A297B83952172EE1CFBAD5098AF816B126C977BBF2094BF67DF2C6A6B727AE27BBDB19356D537B2A433E200B049FA16D8DA3A7D9E2EC867A0F13788F97CF872B904F8AB6BF1D3D7C99C1A2210153AA68408741871141697BD63E06237B5A8B25F71EDDB2882694C9C90FEF78E49A6719554D50454993FFF766246C0C1E08F4896E3817AFF633D1F75206B1BDF8583ECFECF399F45CA1232D12A97D32302D8D4639F3B0FB6BC243F77AC432CD3B0F26FDAD751F5209E0FBD862930122794DF011BE18075B9E20F0441D821672ED0B96B7A41E4FCACA3046A31964BB464A0070752E9B4089CD9EF79E5C6670ECD75989\nss = D4535E861BB2594693F30EE46DE8F7880ED1A510B30F604482D2FBF8FEABE06D\n\ncount = 73\nkeypair_coins = 3A19577908EFD37697B8EDC7FDAF47D1BD3AD01A1B77FAF794BEE5B9C3192A6F08A2455063246EB5761E908816E48990D670308B0D34D7823A325D49A1A4DC0D\npk = F1B45961C6216FC930A8760D4B79AFE948166CE6222B16ACC847AB4BD9540CB68872C9095AA7619B88414E313051B7ABC0248EAF745C7BEA31B01B29C5105FD698119AE0186E7C89AEEC141027B19A5AC3E1C419DEE19825F518D46879F43C8720E23F8916ABAD006B3BCA9600932A67938015964B25B75D95788278D0AF8BE577EF5CB1FE61CFADEC5500AD17DE196A1F95187106649EA4227AC9A96091617D673F32454FE68442F0509FAF86A06D4C421746310341257F48C51C961342372954E8373796A089721CC646B6C27B2D7E594B4F9CA5EF4767FE24920EDC60CE2ABE17E36331AA082D1B66D708304AB884EC6C7E9CA98D7EDB489FB2AD522A2B0881997662205A38A35ED77D8AF15B70346FB825A25B0962F0A8BEFD5C602550925AC9454B6A4C02DB9AE9A569DFFC568D70A1BFC95C108B03F16C799310A4AEFB74DED63C3AD4791CE3AD8CDAB1DF854ADC814B2A1164E551A36CF87DAF367F8767B122D4C2CE30632F22341B5458EAB4CD2E9547F83B2D50AC57D8C30ECBF5387DB6049A61768EF21123936664A46B4A2CADBE1B7A5FF752DEC141F38AA5B0B85546B77F67D32D40F6A588E63EF136013F0BA4E2889714C309835BC0D8E858863A29622A843CC49DD2B85E66214C0B2695DEC22D3C4A0F6544940AC77EB8A1C415AABE7797BB4E8079CF74943C5190A549A78038883EC62093A70EE6022DF193A4FD7BA17714AF692923B650B94F5B854D07139B240C29361AE9A2CF34FA4F1F6C2924850471D6338206A1B8C806697589B5D8A2AB860F4D1614426452038983DFE2CA14AC40170AAD48809C99F68E5197A0F02A78B481062413CD8779C59EA9864BD9C68E8705F4179405D5A5FFB2273051BC1366A26312895345B81E780FD1683EC8E3261E1291723978A5E3350FFB6E1A7923B363162EB14247684D01CB3F48B7ABEB2154A2751061327EA5C3839FA0A0DB315B7CA60B0A7C5903309589E8812F5301DDA14E98C92C028C1BB57C1B23F1B90EE5BCDB448229FA6EF147C56862BABD6AABE7EB142E9A671DE69786010720ECA14EF6BA53D71E5BA885D50BB325707865B564E0018D89F27F8FD2678BE207EF830B3A6457166B031A307CEA082B8260937ED83F20646E50BC022F81CC6738B16F16954D983CC7A38D365462A564C8D4417C29EC50DAF373F0C8134D53BD6EDC509F544B27D69085D6A0CBEC817609B8BADA6F8810CF0BE61AB3D678757131FF93B5BA9A9EFC54AAC9FB279991370742AF6BE65145CA215EF35DBF512F13F88873F87B17F3C4D9E475F90A02D270AE72734029710522B93762D404691910A3E79686F6AEF2118446D23955DA68A477BAFBF278822276B3882FEB3112F2A47EC753510FA97BD5E4111EC67A66909FA3557D637C3686A214A81A6C9E983039D5CBD2B1853EBC7697A8C0AB34342FD3561D8B3DDB0575EB62C0F509079A5C5A3EEA1B23417D70EAA585AA36AC24993C6CB463D63FB6129583E7908DCC4C6E55BA3CF30EEE2842696777989B90AC577BDCAC111EE344AD1478DCFA7BD15911D0E745A523A64DBC28F03C336DBC9A86C146C8F842478A172706CDEF994D87C562D3B39911441E6570397F503DA1F07C0C6045C3E863C7F3BCD41B787C8016058B81FC7B3375E9185696813A589C75995EDE730D39715E66A370C127121235CB7785A42BAB8A091872650062A4FA6F5825A5C2138D0CC74ED874C6A8E89CB7565879D66D34865B85342B350477688A0FC2C5905216A7EFF70BC742723D34A3DAA13B7E094970136D5E959119A79894F4B72F55941B157C601A9CA5066083B2805846267CB3C989926D72FA18ABD97CC0531A8747CA42D0B35C89478FFA2D3F769B1B2C0961EC877E704212115DF3E171EEEA463877B2F911878A15310B6042C1624F6232867578A842CBB477202395F51C3C129385993023325EE405975E062C705A63951B080BD4B98E3388C74CB6C4D9AB3D66A5E543481F300C2F8A1A17E7CADC83195AB4C840756DB9FC11C39196BD34071E1AC098AB332354BB23D5A376CA35862070C933875CE21DD7383A41AB9ABFE2AC96170C22C5133E07089940C03FF80EE80AA18B33BCF8061FD838B44EA3C73E278A7DDC7E1E7B56A63BC2FCDBB48EC711A0E259E3548F38022A5E3553DB5E8548C3B3DC474F7843C49A8DBFC939C41AF7F8EC6C8354AEB0C67E05EAE0\nsk = 8DC4A33D0A013D102A7ED6A5303693669033816BCE0C8A83594695531999647A48F6708C65220BE4D9A60F013201A36EE053796356B26E3617126C3D0A354D2FBB82312A372FFA37B939A7BAC8AD0E127F18EABC771462FC57B542A73BB7067FDE6BCFFE4982E6DB3394264D34DAB222318856BA8B6919C5A0A667866C0D2166B69AE04432C044F289BFD7255542CC7946B82C2DB388C8B656F234A3B607C2F6611ACC3A5A12C8111E42138ABCA9B8DBA79921A177682C2AD1138B133636951F5AA77A52B7554943AF52F7B53D0B84ECF44FD77018F7062E564C5E58753994724242D6B3A8F8A66DF518F7E13A0A5C1C4B253DCE12AE197342F5D72C296498BC9888EC347F528958AA689C8DDB81870184C9E2254F918B7465354826870300790044165216C8BC279AE93854381C28CB438BCE444B2258AFC3A84CD4F91DE8373F877B30137C4CE4664E4D330BF763B344489604E97F4C9C24FFC226D07C5824CCABE38CAE22487EA2EA0E89920F304BB911B401F45735089512DCA2298EA1A57F643CD7524A3D6C9F055B25EAA62FBDA318A7B8C8DC9C5CEA953AD5170C0452A7BC04469987712D0522256A1EC52961561175C32ABE93DC5ED37289B9D4CBD3966911FAB85FE47B3C68692CF5A845286BAEF91493E15C6D23437BF7517EC5CF609C8628D82FF7CACB54D4A5EAD25C85F59AB51151F9350247782459B598A2089A85F2C9BF66797E863A4CA0732268A4E40C57009D0C7D1AB1FF46B78E350DBFC19FCAE823BCC040183A27182ABDE00A966A6075E68C011AA62EEF913024CCC85B460098FACC9C4C81D17C577BC009B8F9416D225D156C4E75B84691A90948D31883B1B2AB3635DC357AE867B2496983CF9595423C541E3C17947042B3D141EF825C99862302BA911C67619434B3F9CC489E8C8ABAE92AF1EC3045C895EDB41F745AA1F3D1A625E47EABB49432129A5608571431C4890C8FA5769563B8B1F9BA3C1B77B034F568038865C90304A4F79F65F74C17FAB9E6B52236CB636EF5B686271F955A9E889B7A1EA1A010828AEA1A838DE1723F0149CF172F48890161C34039E99B36185F068B5707FA476D650BF149479B8C928F93089A4B941047B5B528135685797E0B9E65F595D9016A614393CFD630C6A217D0A03091853F606B238EE13C92C2B5D9E19B2C57638CE82A3D767639E115838B8EEAA5A47B7B686EA05CC088ABD47A10AE593AE39A07F55CB4C1347ACAF7CF59422182749E6AEC39D62CCB876094BA3CC0B871C57A03A00AD67C5C1C6EF911C6DC36B13CAB713BE1A6610CAA46DB4EBB86B76572A0BD60ADF163B325C89B506C33CC343C37A2BCA7CACABD90494F044B550778677C2EBEE76E03622705556B509C204087B5C5E5936C0153857691C3149521B800B76C43195897067529A4A87D68E974ED57178B7980EEE227E4150AF1234025757EAA3B645064202D632EAEA3943B40CB10922BF569AB2C44867C411BC8240D110134D78143D3D44B450056BE166B57921FE64A44F80968A1941D91A971E10C347ABA369702B1ED542984F28B6254BF61D94B69F015B0E32B05E8897502238FD21D87978EAAD45BF5997654B40A903319CA64095C9297B6393B33066D876C52C5DC2F79F0501AE14475E179FE3B5747B7B11AF7B6C7187EAE775E4BEAAF1E904F96A741A6A4820027BFD6B15513911D921835598090B1F145D2885063C24CBC26B3CCF22787ECB3B67CCE6DF4C1C45270239545463B0FFAC611DAD17A6E81C4B80543E6E7CEC66C25C8E23560D32FBC8C29740433462749F15658DAC545347C8D4D5470E15610F7515756CC4EB73966718BAF841995D1ECC081D68B4275CC8E33A87CB61DF5DABD0F7CC980D5A043C431D8B6BF2B661D7841CABA2CA6AEBBBA4F338459561C0CD68B07AB2D6764C27EBA2CE3E33452F072A8DC37B5D192DB301CD2937015A5C08442731C97A0D9333A62648B43453750DC1FD4752EF16845067271A6B236857C69F3CBA42A2C5818564D2CBC33D0E43C926A4D57C38F618B51FC0C86C6E778D478916C4A186052B4DC", + "9A89F7E4C0B089AA23A771BCC06F3B43A8804A18CC4B8DED358C7BA66B5F7385996968A27793FE845B40A4AF8177CCFB45CA82F3513D29BE6DEA3046C9BB080220BBB1A0B30C10F1B45961C6216FC930A8760D4B79AFE948166CE6222B16ACC847AB4BD9540CB68872C9095AA7619B88414E313051B7ABC0248EAF745C7BEA31B01B29C5105FD698119AE0186E7C89AEEC141027B19A5AC3E1C419DEE19825F518D46879F43C8720E23F8916ABAD006B3BCA9600932A67938015964B25B75D95788278D0AF8BE577EF5CB1FE61CFADEC5500AD17DE196A1F95187106649EA4227AC9A96091617D673F32454FE68442F0509FAF86A06D4C421746310341257F48C51C961342372954E8373796A089721CC646B6C27B2D7E594B4F9CA5EF4767FE24920EDC60CE2ABE17E36331AA082D1B66D708304AB884EC6C7E9CA98D7EDB489FB2AD522A2B0881997662205A38A35ED77D8AF15B70346FB825A25B0962F0A8BEFD5C602550925AC9454B6A4C02DB9AE9A569DFFC568D70A1BFC95C108B03F16C799310A4AEFB74DED63C3AD4791CE3AD8CDAB1DF854ADC814B2A1164E551A36CF87DAF367F8767B122D4C2CE30632F22341B5458EAB4CD2E9547F83B2D50AC57D8C30ECBF5387DB6049A61768EF21123936664A46B4A2CADBE1B7A5FF752DEC141F38AA5B0B85546B77F67D32D40F6A588E63EF136013F0BA4E2889714C309835BC0D8E858863A29622A843CC49DD2B85E66214C0B2695DEC22D3C4A0F6544940AC77EB8A1C415AABE7797BB4E8079CF74943C5190A549A78038883EC62093A70EE6022DF193A4FD7BA17714AF692923B650B94F5B854D07139B240C29361AE9A2CF34FA4F1F6C2924850471D6338206A1B8C806697589B5D8A2AB860F4D1614426452038983DFE2CA14AC40170AAD48809C99F68E5197A0F02A78B481062413CD8779C59EA9864BD9C68E8705F4179405D5A5FFB2273051BC1366A26312895345B81E780FD1683EC8E3261E1291723978A5E3350FFB6E1A7923B363162EB14247684D01CB3F48B7ABEB2154A2751061327EA5C3839FA0A0DB315B7CA60B0A7C5903309589E8812F5301DDA14E98C92C028C1BB57C1B23F1B90EE5BCDB448229FA6EF147C56862BABD6AABE7EB142E9A671DE69786010720ECA14EF6BA53D71E5BA885D50BB325707865B564E0018D89F27F8FD2678BE207EF830B3A6457166B031A307CEA082B8260937ED83F20646E50BC022F81CC6738B16F16954D983CC7A38D365462A564C8D4417C29EC50DAF373F0C8134D53BD6EDC509F544B27D69085D6A0CBEC817609B8BADA6F8810CF0BE61AB3D678757131FF93B5BA9A9EFC54AAC9FB279991370742AF6BE65145CA215EF35DBF512F13F88873F87B17F3C4D9E475F90A02D270AE72734029710522B93762D404691910A3E79686F6AEF2118446D23955DA68A477BAFBF278822276B3882FEB3112F2A47EC753510FA97BD5E4111EC67A66909FA3557D637C3686A214A81A6C9E983039D5CBD2B1853EBC7697A8C0AB34342FD3561D8B3DDB0575EB62C0F509079A5C5A3EEA1B23417D70EAA585AA36AC24993C6CB463D63FB6129583E7908DCC4C6E55BA3CF30EEE2842696777989B90AC577BDCAC111EE344AD1478DCFA7BD15911D0E745A523A64DBC28F03C336DBC9A86C146C8F842478A172706CDEF994D87C562D3B39911441E6570397F503DA1F07C0C6045C3E863C7F3BCD41B787C8016058B81FC7B3375E9185696813A589C75995EDE730D39715E66A370C127121235CB7785A42BAB8A091872650062A4FA6F5825A5C2138D0CC74ED874C6A8E89CB7565879D66D34865B85342B350477688A0FC2C5905216A7EFF70BC742723D34A3DAA13B7E094970136D5E959119A79894F4B72F55941B157C601A9CA5066083B2805846267CB3C989926D72FA18ABD97CC0531A8747CA42D0B35C89478FFA2D3F769B1B2C0961EC877E704212115DF3E171EEEA463877B2F911878A15310B6042C1624F6232867578A842CBB477202395F51C3C129385993023325EE405975E062C705A63951B080BD4B98E3388C74CB6C4D9AB3D66A5E543481F300C2F8A1A17E7CADC83195AB4C840756DB9FC11C39196BD34071E1AC098AB332354BB23D5A376CA35862070C933875CE21DD7383A41AB9ABFE2AC96170C22C5133E07089940C03FF80EE80AA18B33BCF8061FD838B44EA3C73E278A7DDC7E1E7B56A63BC2FCDBB48EC711A0E259E3548F38022A5E3553DB5E8548C3B3DC474F7843C49A8DBFC939C41AF7F8EC6C8354AEB0C67E05EAE0345118A7B9BCC773F0EC10C3E353EB4365D2BBFF3B812DF4635D5C8265B5D8C508A2455063246EB5761E908816E48990D670308B0D34D7823A325D49A1A4DC0D\nencap_coins = D7A9EE0513802FDFC6995A975C992350A5277EE79F1837E66959D1D0016EEE34\nct = 35137CBA18F0B63074F661807199FEED5DF343BE4732FFAF10A3C34A2C19426B7DD84AAE3D27859FF58B70C0214E1575A0F8E850904CCC4A391018E5F02E196C3BBD09B79A30E30FD9BD4BFE4B7F91BDB8EA53F9012A7EB53C6E6823F99F600DDC09A26E48ECBC17B7147401FCDD87329C331475B0F8D7138B605D70ED35D3CAA9B7193BCC823AF49C7EF3968A4444E237974E801E008600E601773C0CBB275488C9526D1F58CA6341BA5728BD036244D71C569299105638FF1E10C48F0A21709B3F9E7379C613C54E173F4EC542787FBFD261ABBFAE95E14F7CCDA1D80B85F7CEF09EEBAD9643546479A05537374B69068E37F6B5BB149C9E710A4A586D13E911645C2A9105F8261970B2D6482F3203EB68E8D7B8DA9631CF386B87059CC6ABE626CD96F3B16D5A7C2C3285A33B70EC73768847D2AC49DE7C1CF64C28ADCF5E8465411C5951979129D59A0AB3ECE5E28638E961CEFD97325F1EBE7B8844DFC995061B594F78320BC77F87D7F1F531FFCEC609999EB5FD80BEADB484FD875717CDA2006E8A361B0F6004C10D85E7342F027D8C9EE1B18F0EDF271E4CC3FFEF777378EA8151C7245418DFEB93D4ED23EAC249D964D7AF0C97F0D4EE5107B88FD3FD2C78CF118EED6053A79F542D1A631580C11DF5282DEA39DA685754059D205BFE74EFEB514D395A1E6FE679C4B3420FDBDCAD781369323FD60BE897049936426ECB0E2A2B588D3FB23C49A4AEB2C427FBFD901CA104C5CE0356B661C08967353677952C883CD68F008065C3CBC8645B093CB2B607E593D136919A0DC6FBD5F2A7C0AFB5D07F3E0321377A2932DC7044DCBD0C2288CB1843FA65A4EBB6C2B003C2F066D19FDCD68B4F13AD10BC08CC0C17A482A5835D0B2C302D297AE0447BE41362AFB1C58E368FFD3B6CCACBA14787FBC89EA9569E66EE844461C723F18A779C47036DE5C384CF7DDA6474965E0C1F7CA7BEC3A8967CD94A3924DF95A1284508DC6E6570D91BD0A6FC569153CC268C1BFA14D7B9AAFF11A5A45C4459460398009ABD6357E4A2D7B014504D97D68F1A5622FFA3556B8572F0A1075EEE76919F7F26DA47717F74449DF02524E1789098DE466432A50858FC857B4AFB369A7AD58920C63AECC44F8249453DF2198A95A3F008F57E08B6E1FD0B126056EE0E4EFF1A6AFD29E1CE247EF2C8F329CBB4720770116CE7E5866127419A8A93938C50D8C407802DC6E8CB9E115844C22326DF00047F1EE41A958747CFAC66F9D6BF49D6E6DFAAF61D33DEE8CE9D510E21D7A7E065A3EB02157A36D21893F99BE82A70053D588AD3C631BC98F615063471701C22972463B3AEA374F3CE0B6FF645726DD0488F7E998E82486E31EA267FBF84B9ACA8F56E081BF0CC223A39FAB91E535D19B349D5F4949AD4389613A8DEF92A54A991E4742317C93A311A5B272A20849689558764646D648550870FFC5EBE2A5AC6461CC4074CF53B434813B1D9D4A762DA3E4BE00F5009499175ED18DB02819BB8EB560E6DE31C64177128378A3DA6C8E50C73F3C5B35623BE7507C20C39B783D1730071F1C4F396A24F30BD23EDE117ABC4E622EFFEB168017DFE0046D1D602170E510FCB05C34F68559B8E62D168D2B83886D8487FC472C7873B285C34CF9162FDCFB91C6272B71DD0DACD3B991C1FE3160A0C64953AAEC2B5E85AFD6C9535FA707AE5D261B9DECE1041844F6E417EC90597082858D751FFB04A2A6E8DE3AAA5D7CFDAA50F74BAC6198939979734BA0006309748611886ADF76122C00899DB1579E89B98FAE8DCC984BCEBF4B1631ADE937B7A545B7BEBB2191877C7A96D714BCC8BDC9FF9346A72362CBE93CAF6EA027E9E714EDDB0425BD05CF77F62360CEDA7222315A584E4592F83496654457D22F309CB0C309895E54E59CDFE819812F27F389DE17328CE6A5F286598BFE679396FD9A5F74A8F831F1EB2DD9ECB98D4BCA77E7C29B735869DD75DB8F808C41EEF7703D5112008E3B7DDF6467CC3A3A4AB199205F6992AD9A02FF1F7E5259914F571FC5A8991F83F967C22DCEC99E9B4DB614454703DC463503B14A3F5AA3333C5BD9C538BDA07C41E8086A3CFA1598BBFC99ED3229A6E1539E3048C7EB955569A5301815CCFAF92201A2752BF9F79CB7C1ACCD910B2C6A3DF502E823AEF88EFC9DE5AE42BDF7F3A991B317D1EA3A0343782F77F3CC07A8D806C7FAF66F88115AB\nss = 3B3A6F0D858D92DCE4BC7124BBC1B386AC01A8883E870741043214F1C16526A1\n\ncount = 74\nkeypair_coins = AE0F65E29F38804A6759F70F4D01E2AAFF7FE1C91EBC4F892DD0DE3AB2E68EA5DAD700CFD0BFC439237A0CDB3F7D6C76699AAD545D0ACD755F14F7CB3B30096C\npk = 09167020156648552C8DC941C1CC6424693025E263AEF87F3E0B7147D0B8164077DD580F8C5B8F8CE10D77B217ADFAB3C65A2E6A04A662BCACC640B0EEE6B08DC32C661751C0C8BDDFFC2E0BB78691A68E7EBA25457A42AA0C3B15E17787619824E02EDC7804161A3E7FB092E897506B8333AEE03FD8B11C943853F1A9A44F5927309ABDE1321D60F73E41538CB9F83E3FA004011A94A200CC80EAC685D85ADF295B3DFCC175E4AB1E3CC0CB03C472655E29BA2274D759906A9043F2575F850F1152542585B9FEBA4368598C883C65120048B7C85E1A361ADB0941E6479370F01604D4BBE85BA4683BAE545B3772755765073899B00B0DE9A6D810137BA8A91AAB33EBC21C34274F3C995FE4CA8AAAB926E7BA0D83175100FB261272137FDAC3EC38AC299A25D2D9C514937E4386A06831AC39E21FC6E702A50476493754A37261C7187CAB94922AE12F2B032228934782C056AA67861775814FE5A8095C617BF590795C9B65AA6EE60B60575C881F4631849C6717905456D55016360D789A1F5AC166B1508D6100B0CE914216CA0476566EC33417AC234597A45C8A519B40842E5EE66B8B69269BE2848053C50B38C258E38AD3104E9A1A50E9872DAE129C38A367418C84F0CB5ACEDCAE229291C3F6AECA507007042F609734DAC77FA01C1735245D06F64AEFEC7736E077D5AC9D8767346250C7DCA28105477B18C681FD779123E93788624007BC729AB13352F9915D062DF3367D1ACC58ED8478A9E6216A826977B770819796F24CAD7DB1538CC41C03A8192F2323C68A9F28FB0145CB543832639158CB098B7693C615B820BA01A3838CF805B9972CEEC7689E9BAC7831701D543E87A880FE91B59743888AAC439D1222A5FC33F5068844FC3AE421CFE80C50DB3031584A21B4330CE1A7C014B11EB3526EE4DC740CA717", + "9A428DAC27C128421167665F809959A5494C6E3A53F9D74F6E85BA7442CF68D999CE2A891DA7CB6903ADE2F576F858A5F731C259446219149D11F35D61FC3AF43BAC9E1A6A6F93469CE7A3896917EBD7C2E8C521BAC1C612F0AABA462E48A30BA3D37A28507A16E20658F34CCD3905DB5AB94D6333B1390E7A93906EB0C59932840CF55227F19A2C8728A7D385189057144B462A2338DF6151E02BBC53D35412E4235D7045E47154E4B910A47CA8EE678595BB690A6B4459B23FBAC0B51B055402A9A83F29691AE02A500C9C6352658FD1816A7A9E3F593FFDA6939820530793382BA38AA851433585A39C68C7026461F9E0000B365FF2B67A93EB83437B5207061961233013A41CF7D1CE8F86C6B8159A65CB979161410D24B1B20A1ADA82B72D127E941846E9D16D16F3B9A63B9E678057A20AACB88238ED9CA1C722307E2C2F3540AFB2B78ED999981FF6A0A0E15F3C3CCADC9B242B886D12F29AD6113D63C8268C56913458AD31A04F6130845A1942FE68B9384C3FD2F62FE034C8E6BA23BB6799163553291BA2376775C4A67914F78BB75026DF18AAC6C8C9E6E77351DBCF8B97106D7BA0DF874B1EE2BC508222794543EA60B3DC95093F288220F83B6A6B456F2A3BBA809AF288AC08B44BA9411BCCB5BA61961817E20B7CDB6EFDC4563A6B4B4888058F08AB01D702FB015F20C9202AF713DE66C1CF133BCDE0277F84A5C1876B7ADB21FC5A82555474B70443BC59355E3932D20C14887C25E9517C69D807C30A842CF50549DA1620EA315E5A20549B59106A6E1FE56D6C4657D6F69891A7449A57239DE5137E8C3EFC2994BB0B2BD8CC49EDBB3661820DA27199414A33D804ACBB1A80DA68CE288C0974B0B1A8F038FD1819BD8090FB022FD648331699724B66059D148D6445ACBCB9B910AB14CD0482972858B56541596B5B809AADF81657796C544C02B9A6EB9160BB0CC6445708D71051A89A88830C03C71903892860B950FE66495F992829DC783691876A06A1FF983965D67F2207A60643A6CBB59BE857408D802B86F054D5137EE8E6A02D2603E29B4E970A9CA5F49E64E39F70FA5912488C98D28DAEDC20DA06C811A38AAFB0064E9AB2F3628587F7A099036A0EC71D70B04AD0E26919146B4006B15221AC78EA0599325B9DE25C81506A786949DEB23BAE43C27C60B79F73635DD64B35002CE5D40F9808AE6A51CC00185DDD099212E3CB03CA153015FB2665C77D8FCC529F21AFDE0D4F32CBFA399F2973D812F516C86B\nsk = 38BBB649E7520A59AC57783E32A5022489365713CCE30171AB46AB219B7E81369AF44BAB6F5BADCF613E963938A0829ACE625BD8594ED3C0981C5963F68874AA87685599041C4C296B4CC181E57667D499B2F961F44773CA958193E97988D816D702078C0147E41390F503921F139384D75EFC91CD08544536B4C9C09BCC2914A807E090D98B5C07C1A4A0C16FF0EAB557E5CCC1871BA1A36FF66B1ACD113FACD6BD16053F22CC85634A3D56E564E30862AA1409D48AAF92643B62009F8E206C2C8BB7F357B9432A8474349C3E1679F1D154CFD4A373665A86C481B9C3163308CF3A1A265A6313D0068BA2181AE5E5A1114995005C8FB574C4A7DA80562953348A80BC23CD90C37A2D166EE4E895F2A429AFF3C9EEEB869EC9982D367C5809396987A2EFE93DFDA2CF45E774CC3541BFE655A7280AF9B7601FA5183AB62682465FDB273AB435355B84563047BC4C6204AEC310D4B91E8B849182C16A57605A6F5690D3804D8857379E11B324977F30B461954A17CB16C4DD93761224A47F4C680373C51DE251CB69A2C737CBB1F76D7278033AE86480C7776CC7CA02393F333B6CC00C200AE58922756D3664A30D7B262302672C27A7496746F8F56797726340C734473522FA880819D76A004A480F48B74F7C6EE1998741D39FEC12759670B4E8057AEDC67950B929E200526BA5A27E0BBB67570BAE100B77D525AF70B7B6143A7419A35273C14B492E1E42C5B5918A62F3C829A50C1FD8715B030CEC454C90C72E6509AB1936AE7490C6B62A6720A840AA714F7B6B0134335C75C44A421598B790631E2CA497E256BE08910B69C01997BCD20591D1967EF5EC5C035B0C1F19A01BC0103DE6CAFDA45DB70950CF551DA2442741EB7233B36396C124C6365A83B66D9CC896FF448F54194FA05267B8154895173075039143DCC58062CBBB1946A917ABB184788052920D1428C856BAFB3461A463627EC7430671CE75BC2ADC95622EB2925A582A15E487787389BCF14DFD84801A37BC39136CC1A49CAB7CB924772606D48D3941BCCD3221EB418B12A6342AB6C357F273795339BBC720439AA9CD5A478122B8B01769EDB013686C8E872A4E2C049A755A8F954614665C61D5D9AEC7D67CDDB779512A308BA3CFFD5C4BC642C091226667C40957C17B3C92BEA102143DEC663B6155464AC7A9559C533A647C5A106C38972A26BEAB45C2F04C974C9BB860BCA64615B6F0782305C81862ABC973D280088BAC791876D3172D4E340F26452F60009A49989BEC107B680B62CDC12751F9079ED07C28143A405A600A974230B20719B0953DA3C2DA574CE2C31786C77600646E25B3C305F6507D91084A836366C273D62C526E0630F9B483CAF335D6BBB5BCF4ADEB4143443A07055349CFB690948487F7795B67DC2E45430E7A5C9564CC84CAC0AD0832480AA844417446B9B086A493B7AA163B76A50F35B7384BD054147A8621674843C3040CE06EAEC68B6CE8A2C5B42390C76350E10DDDB35C9F4C4A1CC148BA08601F92B2FB12C9088922C3463139239A62E878E4DB61A3529A8FA7905A7A1AAF90216DAB5026469B27D4122AF5561BB91D111A721A78587EEA259A4C7F6B743574398E30A11918896EBAE2CEDB5B35B095C3AD863068245497E16B94852D25F3121E5792D337C712206C2EF151ED58C8CED316160979D74B4C54B1BE2448562CC6C23B96C7EEB3600A028E91D817ECB13C9269BD8EA15296012B13281BDA6213F1753823037D24F14E733267B3C31CC2E2B235F1665BD6A81568C7BAFC902A6184CEA493508772866044A2F7C2ABA3A07D560D535B97499BC0E07423221797CC11C46562C721A99C100530CE0B0F8D09013D27BFF057A2456A622475297D49BB98595D6EFB69D9353561A028E6B5A9DA9A4207BA35F0A10B4CF66D7FF4ACA409C8EDB8160E8A60C5101FD480CDB05362430C98BD8CA34A318405024CB2A425A45384D501889E75C954767A1E274392C830694B59778A158F0B06CF2B444CD2C0134710B35CAC598B1DE47048D3B204D004A7D8D94810F9A751D782B7CCB158F70F262A53FA7B3D46676569F12B37370E17E1CE35CC0A230465A03903CBDB30EF18CE8B2033E9C5C1A686067EE639BF934B29B5CF2B921015549075CB0F609653E202AFA388A409167020156648552C8DC941C1CC6424693025E263AEF87F3E0B7147D0B8164077DD580F8C5B8F8CE10D77B217ADFAB3C65A2E6A04A662BCACC640B0EEE6B08DC32C661751C0C8BDDFFC2E0BB78691A68E7EBA25457A42AA0C3B15E17787619824E02EDC7804161A3E7FB092E897506B8333AEE03FD8B11C943853F1A9A44F5927309ABDE1321D60F73E41538CB9F83E3FA004011A94A200CC80EAC685D85ADF295B3DFCC175E4AB1E3CC0CB03C472655E29BA2274D759906A9043F2575F850F1152542585B9FEBA4368598C883C65120048B7C85E1A361ADB0941E6479370F01604D4BBE85BA4683BAE545B3772755765073899B00B0DE9A6D810137BA8A91AAB33EBC21C34274F3C995FE4CA8AAAB926E7BA0D83175100FB261272137FDAC3EC38AC299A25D2D9C514937E4386A06831AC39E21FC6E702A50476493754A37261C7187CAB94922AE12F2B032228934782C056AA67861775814FE5A8095C617BF590795C9B65AA6EE60B60575C881F4631849C6717905456D55016360D789A1F5AC166B1508D6100B0CE914216CA0476566EC33417AC234597A45C8A519B40842E5EE66B8B69269BE2848053C50B38C258E38AD3104E9A1A50E9872DAE129C38A367418C84F0CB5ACEDCAE229291C3F6AECA507007042F609734DAC77FA01C1735245D06F64AEFEC7736E077D5AC9D8767346250C7DCA28105477B18C681FD779123E93788624007BC729AB13352F9915D062DF3367D1ACC58ED8478A9E6216A826977B770819796F24CAD7DB1538CC41C03A8192F2323C68A9F28FB0145CB543832639158CB098B7693C615B820BA01A3838CF805B9972CEEC7689E9BAC7831701D543E87A880FE91B59743888AAC439D1222A5FC33F5068844FC3AE421CFE80C50DB3031584A21B4330CE1A7C014B11EB3526EE4DC740CA7179A428DAC27C128421167665F809959A5494C6E3A53F9D74F6E85BA7442CF68D999CE2A891DA7CB6903ADE2F576F858A5F731C259446219149D11F35D61FC3AF43BAC9E1A6A6F93469CE7A3896917EBD7C2E8C521BAC1C612F0AABA462E48A30BA3D37A28507A16E20658F34CCD3905DB5AB94D6333B1390E7A93906EB0C59932840CF55227F19A2C8728A7D385189057144B462A2338DF6151E02BBC53D35412E4235D7045E47154E4B910A47CA8EE678595BB690A6B4459B23FBAC0B51B055402A9A83F29691AE02A500C9C6352658FD1816A7A9E3F593FFDA6939820530793382BA38AA851433585A39C68C7026461F9E0000B365FF2B67A93EB83437B5207061961233013A41CF7D1CE8F86C6B8159A65CB979161410D24B1B20A1ADA82B72D127E941846E9D16D16F3B9A63B9E678057A20AACB88238ED9CA1C722307E2C2F3540AFB2B78ED999981FF6A0A0E15F3C3CCADC9B242B886D12F29AD6113D63C8268C56913458AD31A04F6130845A1942FE68B9384C3FD2F62FE034C8E6BA23BB6799163553291BA2376775C4A67914F78BB75026DF18AAC6C8C9E6E77351DBCF8B97106D7BA0DF874B1EE2BC508222794543EA60B3DC95093F288220F83B6A6B456F2A3BBA809AF288AC08B44BA9411BCCB5BA61961817E20B7CDB6EFDC4563A6B4B4888058F08AB01D702FB015F20C9202AF713DE66C1CF133BCDE0277F84A5C1876B7ADB21FC5A82555474B70443BC59355E3932D20C14887C25E9517C69D807C30A842CF50549DA1620EA315E5A20549B59106A6E1FE56D6C4657D6F69891A7449A57239DE5137E8C3EFC2994BB0B2BD8CC49EDBB3661820DA27199414A33D804ACBB1A80DA68CE288C0974B0B1A8F038FD1819BD8090FB022FD648331699724B66059D148D6445ACBCB9B910AB14CD0482972858B56541596B5B809AADF81657796C544C02B9A6EB9160BB0CC6445708D71051A89A88830C03C71903892860B950FE66495F992829DC783691876A06A1FF983965D67F2207A60643A6CBB59BE857408D802B86F054D5137EE8E6A02D2603E29B4E970A9CA5F49E64E39F70FA5912488C98D28DAEDC20DA06C811A38AAFB0064E9AB2F3628587F7A099036A0EC71D70B04AD0E26919146B4006B15221AC78EA0599325B9DE25C81506A786949DEB23BAE43C27C60B79F73635DD64B35002CE5D40F9808AE6A51CC00185DDD099212E3CB03CA153015FB2665C77D8FCC529F21AFDE0D4F32CBFA399F2973D812F516C86B772F50F7047714627BF76BC098E0B919145FCD8DF6922EBAC383E5C556738390DAD700CFD0BFC439237A0CDB3F7D6C76699AAD545D0ACD755F14F7CB3B30096C\nencap_coins = 2BEE79D35D1BD40005203028B58B095", + "DDFF33A4806A2BA264F76B6B06AF6449C\nct = BF3A2DD41A41F4F573F912474CF0BF79EBC101E6FD605F1EF56780E4C27122BFE49B3CC9D7A144D43FBC5B3FAF3B27BF5DC158B5B8F8F24B676DE71A82E354A712FECAC90B740DA9A152D420ACAFC71F2AD1796FB95B6092FA464E4C961DE6AE12BE46C4006FD5CEE3C547ABFF8788BF1291CFADDDB85F5E7310EB2188C8F9A18F973568F17328C13281FC8E81241C565501076DBDDCBA0CF2085DB7EF0359E0189DA6B87B7C52585D80CB7B7DA1AD3B354D2988F22EC7B27A17082440F601F36327823F0821D892197B5CDEC6B3D169D0A6EC96061400C825C8873BD03B7CC39973112150967A4609A64B2128BAB544C1A63BEB86B00A3A1142F04F6876DEFFEBFA495FE02527C4E9ED7627C3522E2524130D25E9FDC9E9A09F65404D599BBE7829CB21F4A4B6F52F80C6AC24AC00AF44260280304CE6AA59A3B0FB38716DE0C60ACBB293CC700DFB212F1687C16D12DD9EE0CF8F101CF3BECF06E14B5097355C774316ED1EBCAECA84355FCFEA3FC0449AAADFFCDB97FB09C31F06CB1D8E03A096D1E3295C093E4E1B85F51BCDB458629DCF132F0EB7DE22C5317E56CC92D05CC9777269AAB262535BAAF030DF4BC595244685D4DF5DF9B876EFF4D7FFE86214BFCDC07461D461819975C59AC0C393175D8E572F229024A039F8395D3FD467DDC7D1944486178BF7100B504F1836E803EF54A95FA9ED5E482039DF71BBCE5232DAACFC060BFA9292C7995115D5AC79E9008CF5893F22EB1E642DDFBE0266CE9EADEBF8E0E11A92BAC0992EBED090DEC2DAA1AA31808C50A82092857A43BE82FE2299A29C49F54FE5F7E0A2AC09D7D26CE941733B08F17ACAC50ACE0E1450940478AF522A039A276906AE1E4A8B7833735523D0F37A08BCC76D514FCCE2F5BF5959BFC4A39B1BF3D4C7568A27EFA29653CF8B2BA0A4D79F2EBBEB603B67A4026381FC28011DAC77F2F422A202684395F881F17F3C6550E6A3BB528EDDC40CE0A677D077FA31659253BA9ECD015A4D3B200AE7094AF72F13A8781AF3166D4C09D25980D92A3E51B1D4E3881D0197F9A7D0E975A70A87CF7FD7FE1D399D0F7BC6A9A70E15D8AF061C5FB30D14EA999838DB71A9901DBBF075E3F2EE80D05D8AA461DA8FD08A02D4A98D72E3A0A64B96E2B7F65E912E7A05DEF679774034DC41FF92CD1C15AADA6CB4DB708F65754EA2C6403D8B9C325560F8456536BF77F91250B52B93B7A48CC04AC827DAC9D2631233DF6DDCD8B801943B65830540DC17395EF1C54341BC729E43278694D7D289A9011DC354FC50B32BC4F1B4AA863AC3BFA88AF98C4ACFFABD9ED483383C04E7F029511E7DCFBF409E165DD846193A62B4F24851175E534B06F161E191824988487B191CD6C553FFE42805224EF894FC75C0A66D975D87CB9E9CCF5BC19287B805A18972ECC7543D3544E8EF196DBC5A0CAEDD748A8A736276C66F822E5A98A0CA0AF437B0418B9EF7ADC4DBD49E31F34713B168DBEB289875049EA0695393753273768470705A0D101CA0CAE65B3D4ED9AA006A3C2C6029022F67620958154490E652283AB812E75D3122CEB5B64F75F11CA29F0E1EDCDCFB26A6AB60F1F27ADC5E51F6E9CB9BA7ECE7F1BC84AFCB9F58C5507550C625ECA9A0E3D0B5D4D9EDB54B03B24239D678DC5D8E7707B32024DABD0F24F40A63A7E09471CE931F9E4B0A91139834579502806D1D413BA38B1932ED7E2D0028F795B42B27BA71CFF05FC15DD312D0CC014C03C0019A8829AA5C87526FBFA9D0292F33AA58A4D65F5D1DCFDBA4A65C57C9727CC55C420F88D66E0930162EFCB6180BCE440DBC4D932A90A84E37E723F4D81A3AD81BAB16B242411FE21CD887AFD6B793E0D6469823F1F84C213AD98674A628959CD11C3A3CFEDDE06AAF643E82E06C181D8709AF498F5CFD7AB159BB2B772235E739DDB6526F3DA81F174A9FE852A1721D513F94E8CC74D8822E5B0C9439B48C127C4218F5AE9C3ADC1236BE7DC82E222EF6A038610A11ACAE994733E3ACFACACC6852792131F35DB97F2EBBBEF90BEE7A7EE1E29FC654EC130E10908A2D9D1730340FCCCE1AC1937E955C68D623B78161F688925B49D6F07925E9702396CF8E7A5E8FA86083F0ECC33A0D85EAE8B035847EA9E88AC865E4CC98A8310125BB69D8B4FD4B0861EA41E381010F5A28E0461212F0D4422898031F1C5F4D02EF9ACE7846F6DEB3F3567EEB\nss = D50D1FE7C4685B7586244444D8A29A9F512034E85AA6F1F137C50DD33ACEE62A\n\ncount = 75\nkeypair_coins = 6084A235F79DD093EF6D185B54E69DF33DACEE73A9BF2F379004421A10E3A79D2A96A70166E26D17A7319E8A5E12E38CA01A98D8A5813049A5BDD355A7D71347\npk = 50672C2E47609ECB47DB696D4FE16E54341C0A510CA0293C25F69D027A4B7CCB08C184A68DBB0E8822393AB7B05EF08C4610A0B84C8C4CD5B783E71327D925959782B6C106B08436861A8FB2C1CE2F239F19A73B84966698C52E3C380A7DA81B54AB76E62929E6743C88B05457868FFF3074F8F085DBB05816C8B4803A7398F1C0F2CB3765E84672B24FA32838F7199A8F738B89334DC6F391125569B12A670CD37CAAF00AC919AA4B92BD4DA706973681B696B33871441DACA919216760B41F5000A7BF782AC33491382B1C423734016CC8EE4B80E6E25BE4720ED05439B9DAC5FD240193746E6B196C938B345B39BF5485B5BDABA020DC90EBB5CE8398C3B0FC59EB5CA95857ABC2F6BD04BB34F2902DA9C4A641FC36A1289640A371AB965B25383B7F017834FB4C3C3477910288F8B305031A7B97B69F3EB48780D3558C7C741171815B169E4E9A62A261460FF2CAA333150AA2698D243EC55ABAD0329CF8FCA935094C6795489C902303FCCA7F257C7D072EAED4A31C9146311B21B09B38326AAE0D914C55AB756D7B0CD761510DD12572B912EC79B61FA230E4EB9DD052B29B775D891B7025BC89C0DCAA0A18855988C215C74F06B36976101C0F697CF8DB4C0FE25F1C016CD11154F5A5CEBDCC4ADD13B31A63336AE621F2257837B16FF0F6C07EBA6FE5B058A42122AA88629014256017BBEF582E123365AE37063FA97277B2063D3860D3920BECA27638F02807FA3BAC4AC08614AD1590BDC6C855F4D3B292982838923251A348CB48753EF773570AB00768341670C21DC7A356931E5B8AB51E8B2615F5689E607953F685AEB6B999815B2CC66C24F65D2EC64E4EE88D4CD830DA4C61E15A033E37182731B5B0B506DEF921BDC19A85624630BA9102226F6C2467C9EB21483BCFC96A22D8493F9EF8B7276378FFC16C3A996F5CF6755D924716524DC85C39D22A8254E74244229C975B467AC94568312333EB578A197F4530AB74514FA174855904C7FD09B2003C3B94BB41C4559B45C00F7A73935ED15A39E47BCD46497141942C3B669642060533CE5DDB0CB4C1369DEC82B8D7239637B615A086D4AA87630439D712A55556CDB911734A23779D7C5DDC628D0F326B5502A79DA80FCFB3AA8E607FD5C25B8F2768515618538A990DF66FE57C5C3B3A354655AE4FC098BCD7A382301D0B721A1E74795AC23FFB8C5493E14C0793CF03063794CB0D340A018461AD89E17EA89B7B88382B9A288BC4B13180DB6EE6224FD929B628049C20C1C830504E09651147417B552B6EC810C744210532BB011A93BAF28C20512558BC1C4C4A07565779B7FCB260839506E0E0224099C5751A93D6141F90816EA8DA87CD1105715A67D0B969D8B748A46831EAD199EB4C28B634A82D8B988D2A6D5C797943000D2546957EDA9B1573BF534B552F225253D768706C8AD4C42E2688B40965C0DEE151BE4B7625D92E79FA40FA7C00093148125C65E841CDB86AA90A02099E2C6C4C0BBC95F14FD0734872F2A6D6B3C9B3D0285B7CCBB5B715E913245C14A5AA146F003788D4A76DF1037195DA2E939CC08F56C3C25405D7D1851249496D33421E5BC386645FF3A8367C3BCFD0542C8962CE146720012087693C60E3A47DE4570887473BF9B68C22699AFC314AFD801A0CDA51FE4340E4E34EF18C07A9C7A40190908AC323068C95D59BB04BFC11AC930F99D082D547C99A807C8D112D82F1B81125B41F57A243006B772673EFD286B4D24684D2B046B53D7D26B6BBB862D64C42E0E909E813391D6A8289647E91660DC5891479C43769D9608C10763E5A35ACB9AB7552A08D167ABC9B02D3798115D4C0B6B0782C77BFAEA4BC27835B4AE525BB052F6DC04D65074E00207213D612E746A44CB5BB55311C0D4A43D2EB3C2003CF3EB895FDA1001BD55484992A384561152779DF9534B933244654B2C37B3CAA368319235A1DA431D958A4DEC38DA311412606ADC0D26022F8A822E4913B8B5E97B6C2525636B586C8B3C62AB4DC73539A028FEC33A5704BF95183847361A8143D1C22495EA4A229B4214FC22334B857344C721AC2190B554F7A30479BDBC8854C0F0219B4002A0685119AEC442242D15CDDE0983F8C9EF2B3AEE24CA7ED917B90407D5AD86906C0C865149060B36DB1CB1A22D97CA3823D34197B7D9E60E307BBABD9B3E8272A0EF1B3333269A7AF6A5BB8740BFA\nsk = AF361347809757C2AE0C4A60393C90222C394CF136E95517552721FF136DCC234D64715A1AB43D15708187F89A6830791E0062CD43253EE486AC54179D320FA6A8BAC4D0C07B7158A1ECCFE52C4847403849982D73288877D04EAAD37D392AA487597F80F19AF7444E5A82CFBE51609AE515C1B320B6C75AEFC121D5E2904A0185654A418E5C7A379B41838ACE149B45C5A4040DD239ADA846102A6BBC811EBED4710B2393ECC4BB8C6254DC815D2667831F962887A74EB883A5A8642E0B427450D01321246A8797B7BE1211EAF64B0C706EEDFA17CBA2B010626112AB6B2B2B928DF38CCBD9B639B9C6AD090E92DA98B5C9914549BEB6A9B5505579A56943D210722BF590D63C1ED56534A96552005226C34CC1AC32572D2AC0823BCE348086096525188088DF229536BAC34A1C95083309A0971F31D975DE0598E4E009D24661B2A79DFAE85343B94FB1BC171493AD77D767E0814837348616205652EB4F98838CE536691DE8C3AF0A4970EB0C3600B4605841BCB0884E08BCA3198B04B2AFA6F575229C56462B9516026D32D2CE33A4B1ADD3B411371EA6516765F457613CCB50F94AB9395F6FBC94395A6C9C104CE3B79171A83A49B22ADD3A915086B804C3B42301BC1F14630EE3217F059AEF485C019A4248B4A78A516D75919EB2B15BB1E5A34CB6B470CA7A797BA1B5193CB4565497F98BFE30A7578044867897C332687D925C8BAB05D0C35693F557F541B571D6AB7E4A752B80267B0329D7558FE4BBC54C8612AA95C03F81641A129B1793160DBA78C4E0269E9361087328A73C67C0044217A25C2E05B64A1B8EBEC972606BC220B1A456D8BA86A76AC4A3C06429CFB6035EA50549DB887A5F6170EA282BCC295A2EF000F571038FA97B6BD98FE0399ECE3755D4B55E16261F7FAB678C394C83676CB9F080BCC915C8B1C67DC998D7097074249585E31C5B30BD0250ABC570531DB43F546C2E05983A7B5219127809987343CF722FC38525B2ECAAD2CA703679CBB7500420F83960D7505BB7B7B59A8B6F0C876C7A53D893A10468A516FA7A6A08C04D3259AD003DB768559E173DF06A08793B10E5A1A46145B6F0FBB230CA504424B4E9617CB3F509993567B4CB94CB2CB39811BC1EAB31B5F5691FF4108E5A6EAA9B", + "15DC2AA45FC4AD26B9CA007A7C2A680ACEFA88F12790ABEC7E3DA1C13A355C1C669117070A7E1976F6859921E273F53632B4144B58E0A74207100D2CADE0C8A0410814D40A4234843A44978D0D4A173BE52434760423235F5D7C8E1F56C8181487BBA930CC9272ACD524EB6C9D71D753FE62B0E9BA33A478B7E82B36D9690607550ACA261085A08725281B02E531432B35398B7ED1355B8172776926BFE41880DF90AF6951A58981C708724DEBA6B6C2BB8AF1C0009C71A0B82AC0D14CB0910A8EC3988251DC9E93F17E067608115C85BB6C47D33A2A9359A35BEB47C3A04AB65537F59BC1EBACBED4B97855F753A954929B6449A4DB7D2098CDFC04008873004BC535BD5C74DD49247419601513C4E8125731307BC858845896A67D33902AFA4B58B50BE969B947851BBD791D66887CC6E92E19A2B92BA6BCC2825C4239AB2894B2467547FF3A63BEF65EDCD579215ACA66A13CC6705453C4964F1C29499179CCA36A3B998BCD173458127B5F5C9DB4D12448D3914F4092F7F37F4D826221EA8BEF6889179919EAC60DC2547C5E6550F45BCB3D4B41DE1B12273675A0F1C611B6199F27CBD277A38A67B77AA3AE87751E96F4B268F75B36D070CC1743B469A2ED493D50004EA5269E91BB4111795741F713918438B9945458F2836D42247254B2FEC86CCED59B0C721F3C372923C0072F31576BAC1C8B986B25E035FEF91FAFB1C7D0C19C94494F4FF57D86064B22B008214375D0E61361E2CDA31472C5D1853F6ACE7F8765659ABDF95904DF05B976039336C9753DBBB216E599347664A7B170EB563AD464A16EF963FCA77564B794408ACEE8395135AAB683A14B0DC18413F31B8A4929111550B07B50DB2209403854BC4391E115095D2B2F632A76D4015B7CC34E9474A75C124396483C8F0C03800B1F539623574099077B7DCD364E34A122BB0B738D863DB019CD19967E48A181ACB23CFF56346F32135A30AEE015AF3B463885497A844562107A6350672C2E47609ECB47DB696D4FE16E54341C0A510CA0293C25F69D027A4B7CCB08C184A68DBB0E8822393AB7B05EF08C4610A0B84C8C4CD5B783E71327D925959782B6C106B08436861A8FB2C1CE2F239F19A73B84966698C52E3C380A7DA81B54AB76E62929E6743C88B05457868FFF3074F8F085DBB05816C8B4803A7398F1C0F2CB3765E84672B24FA32838F7199A8F738B89334DC6F391125569B12A670CD37CAAF00AC919AA4B92BD4DA706973681B696B33871441DACA919216760B41F5000A7BF782AC33491382B1C423734016CC8EE4B80E6E25BE4720ED05439B9DAC5FD240193746E6B196C938B345B39BF5485B5BDABA020DC90EBB5CE8398C3B0FC59EB5CA95857ABC2F6BD04BB34F2902DA9C4A641FC36A1289640A371AB965B25383B7F017834FB4C3C3477910288F8B305031A7B97B69F3EB48780D3558C7C741171815B169E4E9A62A261460FF2CAA333150AA2698D243EC55ABAD0329CF8FCA935094C6795489C902303FCCA7F257C7D072EAED4A31C9146311B21B09B38326AAE0D914C55AB756D7B0CD761510DD12572B912EC79B61FA230E4EB9DD052B29B775D891B7025BC89C0DCAA0A18855988C215C74F06B36976101C0F697CF8DB4C0FE25F1C016CD11154F5A5CEBDCC4ADD13B31A63336AE621F2257837B16FF0F6C07EBA6FE5B058A42122AA88629014256017BBEF582E123365AE37063FA97277B2063D3860D3920BECA27638F02807FA3BAC4AC08614AD1590BDC6C855F4D3B292982838923251A348CB48753EF773570AB00768341670C21DC7A356931E5B8AB51E8B2615F5689E607953F685AEB6B999815B2CC66C24F65D2EC64E4EE88D4CD830DA4C61E15A033E37182731B5B0B506DEF921BDC19A85624630BA9102226F6C2467C9EB21483BCFC96A22D8493F9EF8B7276378FFC16C3A996F5CF6755D924716524DC85C39D22A8254E74244229C975B467AC94568312333EB578A197F4530AB74514FA174855904C7FD09B2003C3B94BB41C4559B45C00F7A73935ED15A39E47BCD46497141942C3B669642060533CE5DDB0CB4C1369DEC82B8D7239637B615A086D4AA87630439D712A55556CDB911734A23779D7C5DDC628D0F326B5502A79DA80FCFB3AA8E607FD5C25B8F2768515618538A990DF66FE57C5C3B3A354655AE4FC098BCD7A382301D0B721A1E74795AC23FFB8C5493E14C0793CF03063794CB0D340A018461AD89E17EA89B7B88382B9A288BC4B13180DB6EE6224FD929B628049C20C1C830504E09651147417B552B6EC810C744210532BB011A93BAF28C20512558BC1C4C4A07565779B7FCB260839506E0E0224099C5751A93D6141F90816EA8DA87CD1105715A67D0B969D8B748A46831EAD199EB4C28B634A82D8B988D2A6D5C797943000D2546957EDA9B1573BF534B552F225253D768706C8AD4C42E2688B40965C0DEE151BE4B7625D92E79FA40FA7C00093148125C65E841CDB86AA90A02099E2C6C4C0BBC95F14FD0734872F2A6D6B3C9B3D0285B7CCBB5B715E913245C14A5AA146F003788D4A76DF1037195DA2E939CC08F56C3C25405D7D1851249496D33421E5BC386645FF3A8367C3BCFD0542C8962CE146720012087693C60E3A47DE4570887473BF9B68C22699AFC314AFD801A0CDA51FE4340E4E34EF18C07A9C7A40190908AC323068C95D59BB04BFC11AC930F99D082D547C99A807C8D112D82F1B81125B41F57A243006B772673EFD286B4D24684D2B046B53D7D26B6BBB862D64C42E0E909E813391D6A8289647E91660DC5891479C43769D9608C10763E5A35ACB9AB7552A08D167ABC9B02D3798115D4C0B6B0782C77BFAEA4BC27835B4AE525BB052F6DC04D65074E00207213D612E746A44CB5BB55311C0D4A43D2EB3C2003CF3EB895FDA1001BD55484992A384561152779DF9534B933244654B2C37B3CAA368319235A1DA431D958A4DEC38DA311412606ADC0D26022F8A822E4913B8B5E97B6C2525636B586C8B3C62AB4DC73539A028FEC33A5704BF95183847361A8143D1C22495EA4A229B4214FC22334B857344C721AC2190B554F7A30479BDBC8854C0F0219B4002A0685119AEC442242D15CDDE0983F8C9EF2B3AEE24CA7ED917B90407D5AD86906C0C865149060B36DB1CB1A22D97CA3823D34197B7D9E60E307BBABD9B3E8272A0EF1B3333269A7AF6A5BB8740BFAA9F015F625356A6BACBB5E565C70184940891589309A571B7166C2EE713B8FBB2A96A70166E26D17A7319E8A5E12E38CA01A98D8A5813049A5BDD355A7D71347\nencap_coins = A8FDB315F75AA1E656CAD005010B032BCE1DCDD7CFF8C938A5314ED240F480EA\nct = A382DB2AD5CE3BD114C1287738C32F5115E807C837EFCDDFE91693EBC7ABD3C7A3F743ED2D3BB6AB2BC412325BDDE8D6D3120520B177C7DEF9021A180044BB63C27205D9A2017CEBF83614B0B1091225DEF049F7600CE40807038CDF6AD5A5F7E2538968733E4D40BA4A1E81F7F30D09E7BBC107E71C6A4F5AB3BBDB2EF4C136ECC6F758FDF0F249E40853F59C4C146D9A35F005105D13137743BE2677924D287B9782F24A3C5331A9A532CF3C8E19812A5AEE650EDFE97022BF30BCD2075A4137DB456A8E8CE19E995CCC5146552E3CB488325424EBBA18A1FD7AFE3A3B7C57185B14545816344F9BD8EB18F911F92F768327E3B9802CA0EDDBAC63BEBAC157E06A91BFAA2CCBEAD3ACCFCC0D98BE4CEF501C3350907A5FC21FBBC30E89E97BF8BCE8F1DA813F017B56D4A3D2CAC5E6F73F3EE71919BCF6D5FD8172286FC08238148AC8F162CA2A23A628BBB8EF06C3380D24637A1A51E11BF74AD8CB2B65BAAD5DEB476A80E7B81CFF5338E7BB944A37542A5D62ED93C0F5928199F9B901C7A97BC43BDAA362BC81B5832A981A7EC13B8A2E734D1A61A04383CBC7DA106D785D55C0C152D4F5C374399F2AB735E47F61D04C0F0AB5641E3C7B0FDD1BE75AFBE139B24D62A6B4FF0465F8019746ED73F0CA51DBCBD8A024FB6CA2C862759B9395416840D6474DB92E1B10680D174DE52C67D9E27E562F2F18914EB2F33F0C78F7DDDEFB91B31460F57AB7A5E52B0162F2925299AC4CDD877C67068BBFBB7DE75C01BC23CE9BAC1EB93971EA9988535F692987EDA0CC079A4397C900CA0878A67FB545B32B5D98849059D49044DEB67F534A9E7763E7DAC9392D8945FFFAE30881F4887CC34BE152273E467A01A843301F2E0CA6EBF7E31F3057781195482FB430CEF90BDD7EA368C26CC93A265AC944961CE119B4A5D321CC4909E220E72A9D52B49473E7310A6C7E56159CF478B62D27926F0E54937D1650AD0AD716B2189A1AA154EBA1D4465B7FF81E0FF159A4363E504C483AD0AD8BA983D60EB1D30EC3C9211323EB43C017FFE9B24FA3EF7CF04C2DC02410FD9E5AD1194B092E47CAEED5DBAFA14841FE738A491956591A11FF0F1C98EC077C6F457AA3269F645518EDFEA3FEAD30C3C502299999555B5F9060FEEA35177E60D608B9F67CD11042E603FB1477D807A3AB47925E173E1856FF30CD274CA37D0E1FCA220BD399E64DB21CB63D8FB86352163BD3E1FF6FFC48DE7646A59203E6BD5FE08660B28A807F9F9A0F9715F64547CB6D510B4E027FE2A34E4D0AFCD2B6E2C07F22EB3E5025DD9F7357AF3FA4A92DFF914DF30AB92F19E4FADAA8EFAC91913904D8DDF24413F0B720CBCDAB9AC1A1AA92563CD50FF4167336D85A69C4EE5157194A9DCF1C3B6D0A4C1A3F58864C298B28D8D844F0DB9BE321E258BFDD003FA7F3688DC884492B6FE1668EFF742531E496940399D4FC628F8F9C743E148566EA67B98B91B9135C6654C8352979A0993CFB87C699F969070042E3B9FDB66B2667148C71C5E51DA1F970D3532AF736B66A32199A20FB5248C1213FA4BC6F487FAC018F08F131F3D3622577E2D6F523321BA887924ECBFA72B90686F14562FAAD1231107A5CD527544BC5493F7084FEF6A50B19A49DCC1C8D0DC6A5ACB810592E21C300C1E31B0699FC91BE26D4F2B514FE0FA990D7DBBEAD29CB2C9D285D17A0652A48834F193259CEF30D1569FE355087C7441822713C2B532046D350C65438A9E1D934D8C6CDA9FE56D18EE58148F400F94B6E1C299661AF37C6057E783361C4540E0F9A12CB943BC8CC4AFA8601C8A92D238BC39BFF2CBF3CFE800FF9B5CB8E501DF35B94411320EC3C35CCABFA2CD10DB30D7ADDF99FC9AECA25EDF1E1007A18544029AC5AF2907ED21963CB8FEEDC899CFDF083EC2E81CFD10824CF409DEABF6C4809BF13C9DCA8654A3A268842D3239544B83433CE0A2786364124DBA0AABE37771A1D99A0B73ED2D4D920C0820CCF440BAFE29A1E033D22F5C9DC20253934CCA6E8616597013E01BF30F74055222771E458E7174FAAB5435C125FCD3AD93B6EA5E5F5A17BFF6ADAC0C26CAEA431E97C8294A8BFA2BDCDCF9B403E2859F7E2A1BF3ACB8260CCD7146AC279E6F1E326F68C8FBCC46D385600B17B0E737944394125CB19B45DE4F0C979DA2A37B9740DD078044036988E74CD8B6221542929A7534484625F748ADC\nss = 1DFF346BBB5F07A83CAE994161954F4C8C27AE946B7FC05B5887E3D2CF26C78B\n\ncount = 76\nkeypair_coins = ACD1C0217FAD5CAA4235544DD9DE153AB1880CCF4C76F16F236FAE4E4BFDA04CCD2DD7A1BE89575BE8C14529BDE4D832CC005DEA955065C08B3185B215DA3A2D\npk = 25879DF1312D41F14B53EA0FCB973EAD32CDF833463E", + "F73EED9A0CE2D09FAFF9CE3A06030B3021CF4360F3E4CF93528BDBE69D0655171BA7B6D93CC220A10D37E828E54629C6239EE13C0A73E58F0AB6632E764A840753393B206C180B3C333275DB3F05516FDE08803F7BCC10589F8F54793F732CBFE82658033694E6AA74823B92CB616433072D405E3B38A42BA35252A99CB0A568D51B4562CB3AF733AF7A179FC66CB56292BB1D796BEBB5C400F30098591447191A7CE6A3B2CC3FC7AB7B5C6CA02C6808BE45671012867812C2BFDACB9DB982C2893D150B6C70347091FABC0297356F033BDD6734736907DD3A9E60E4637E2AB768E9558339921D8C1A8218926815CACCA840224052D574164A4661AFD903D4516E43E3984B31554E5B666A9CBD332A9E6C63036D34189616CDB3D100331BBA659649EF0ABB86502FA994B941F9A354231110B8080DB75C69EC6FFCBA48642B0EF54479DD7995F7F9BA92F8B473CC7E31D04948648AF330AA09996E868C75BC3949BC3BC8E5923DF68B5DD78BAFD3318AE4FA6224B8A7DC9814F7B35839B05CB709CB1CF2C1E80AA879C58B29677CDA375A5E4229BC8431D48BB08AF0BC27F982A6723E60B00DF6E607665B7A4B4CB35E5162BA3698B7140AE7A25A3EA76DB07626AFC773854038B3D13654B7CF0A1A8E75959E5EA0797EF4A64538C19F0028DCB5CDB5803815467E57ACA68FE00C3352602897AA88021203A4B970EBCCA77846E5C01ADB22859E41CDBFA8A7BE9B932AA2C6D391379A035455D84282D5AB90D5B6DE056F211CC6AF61C1D5B643F8D299C249C055964C56906F88778A4600BD054850A9D92557AB2C33DCA2EB2857B9617018AB08F25493B265B10CE74889D8CAFEC53F7B6805BFD637A6B6ADE8A65D7F885C3AF645CF08BAE250753EAC8E2B734A75976AC9EB8D2633A980285EC33B154C1551162C81F0254D2EB55A7DB13F5D766330F65CEACB55FE058AD06686E50BC544B48F1358532603720079B7D0609E5B36B8B7E097D40CCACCF496F3F00FB957162445025ED62592FB61D41A28B16A1F3A3CC83B1B173E9599E5C49A41B93169DBC4FD006A93BB233EF73DF88116E091B17A06125F651F52D501DC86A856A96A43601C46F32B1FD6900A6513F7D298851B443242C62B34236C7495881CC3FA592EBD4397D5422F3C40CA62980188CB4AA3499D5D2799F23C7E86057A14476AB4C7668F1C3CAEB0A980D13DE0F3129E151C0813B259D53EFA07681048888DBC082ADC4DD324A028D48FE728701398CE20425BCC9B410687363AD771218285617A39F3C7BFBB2A6C006125D6FA6DF88898F7B236F7581A8A077038A06394782CE7862185F4CE98AC06C25B611DA7701A80329228391DA903607793BC8A2189A123C177AF9D987AE9D1C6D2D01BC5910F56514532D582CA092939119444B3B736ABC0FB5140E14C723B1C6ABC2034929A7EDD48CE3D469B16B09CBBA5008728BAABD54D15F427D2EB5E890A5A13224038328FCB227BAF6A7EA3B82AAC5844D809AD86B6ADCA537C2C0B4E0D659606F835129905A6760CFD68B5697B9A8EC00159450205CBCFC0F8C9FB8898F135298EE99A154977FAE7BAE16AB9325231178A764C1B10B5C427598490CD9539B69B1848980D09768C435233F52376371B7971D861C8612ECD160655E83BA1E60A553B4905D35EFA1BBF58318D78353DA822241A354B439B2449A2825D43212BE80483C167E6C5B50883412571CD2AC3C1B5AA1EC9C232E6B9B5A2091E189B3AB0B323FF13654BC60ED42857755902D063619AB98FD8790D05D85BEF1AB23A09A9C241A3CDEA620B6C338EB582DBDCA9A6AC40FEF7615091445A93B8FC2001E09816FFD54F7870B5CE6A4FBD46C3F42B8E63619B7675716BB65EAB17299B57C45C834226DCC6C1F98593782C9733A078DB34A137C5422CC1DD87A614C1604972559937102AE60337D997CAA06B0F33C43B093AF04595E5AB48A7A0966FF318A735024F004D6F1893B48B74B42135C43425C1CA48A93691603AB62D2B80FA5A92EFF7A218239B4814352A230CDC1249B09833BE95C5F46BC5905B73A82206BD6658464659293691EB58551973121A42385AE81AC9EA2EB6419A915441F41946E504A6B9D5716E909BDC49337909282C554F3BE4D7FAE86455763B97EC8FDBE9640219B35FC36033966A3525D485F1\nsk = 31CB44A14C3FF840758055BF2AFABAD14A723C048D4D20C5908BB781844D574A96A0807C59D5192548A0089396A78B953AA52677B9A111CB012954B674571C5D0C7C5E6488D498290F7665F4F32DBA7228ADE2A724413798EC32619901215663B2C26360612558070BD06261BBAB86B4F96056A498BF37B1B84238C5099EC8F1AF4251C0862B861F334EEE85AF8D364A54F6BAD0E44A23A0577933CA8482889A955086EA3A2C94B057C1C20D540CD6D2976126854AC123CD386A855CAA385927318825494861079AC84606AC0F1810EB78A8398740BE69CFA1777C61A5CC1D758AE28C072D6087C379A567648558AC8A1883734C64361DB33CDD156FD371A2ABE534B162C6E336143B944DC2309AAC106525D6586793A2B3420358185FC787C2CEE3875E3425BE5627C1D49313413EE498B17E8C295908B718B3C4A6E03024D77F1EC37EAEB7462E09C683CB9B272431EF0ABBD0422AE2569FC37902AB90BD2C236F4DA66D78301A61765A77E43ACE81102C7355749C1463B55F10E26727086D73A1800924C6B0EAB6EC905D5B01ADC538C9EEC7A25989B85F24B1F68B9A22637613E9ACF609A67CB20B38BAB1A8D81CBD22A5EA8C7587A13BF8EB8A37E5949084C26B4433741A31C502A4C412535FC6A1C5000057C65103027F78F81DDFC4A8843C59F8563BEBDA15DA543BE2146A3EB7B521700958BB2A5064923236193D981BD1E2920D00B1CFC504E32495DBB116C5BB7AA21B6CEC5C9FC0B1AB73330544E7AF5BB1CEB7C159E3509938D0332CF51ADD245606617DCEC688F117BFEDC27DC5B8B4884446861B592B720B53FB23CF08513F66C3B51833E51B9A63E297054A8C03F8BAA257C64C2C8A265A8A92052C41146BDB3A32CE0B7196AA33564806DAC33AC05A20178C2A0CB04000D484F0325C9D16956DA0AF88F68BB72B7BC6B122A486CC1EB01BD3027AA316C6D7C1AE7D8B9A747443C5D7237989A93ED939D905832E76AFAE4172D5F70589E54F7B5CBABB536E5F316B3D38911513B400AD83F7B2A3C72A6C09EA3B4F68129ED285FB99442FE61237D61756A2AD78B7790EE69748B79E42EBBBD6B9B0D803A3EB77477609AB2CEA5920128356C369878855126C22F1AB66A3A4C202892C8863B609F7926175CF1E3967EA93B7ADE7A8E6779672023DD5D81BD4D9345AF36A38DB17E96B8D85B7C0BEB586AEFC9FD9EBC585F071C1B9C34FA2283A60884A0CC5EA210887AA677D24192DB582F05117FA189C868A3CFFE8B2FB584686EB3D009733E1D86C07D6A9893C7E9410B4CA99A4A880B48053878A45340D0056031068A63113BE4B51A630016875541E099935EA92B2668AE84C5A183CBBFED619691038973CC07B72ADB803CBE26986C827AC75428CF183CD5FE7C9C719378438058F470B62FA977DD658F219983F97B517BB1AED01A478A18DBB89AC1B916419A3B25F388C276C190B866356EC84C33B29022286C08A34D26948C59341A789CFA168ADC0C7A73DB36A72EC6C2C688C06AA3EB1FBB25B7B828CC3719C7B2473719F4E2B5C4AB8A4FC172A132439E0E3AF22A1BEAE17BA4CF39A155925C62A4C9CA76436496646906630B9349A335A4852C01B018F77DA15A4A47EFB74A64FA803B5D6927642B16E3AB78D13894104882AB803DA0015B80021EB029FDA191EDB38370C2C4D0F1C9D76D776CF4750BBC0116263B65548CB51031748480225D85F364A0EE2F18E0C1A19203C9145BCAC3F175ACDF926D42B9CB6D987B9698167D775C04A877A460E47D24866BBA3564727EB2A2DDB6868899262404884A138B20B1AA21A7003E35A79422C35AC37059E59164F805AF26A4A8B3AA0A0931E08182F347151616C2C86B6A83699279AC00195449A1EE11490076A5FDA3F044A75E844AE996B7C6022B2E09C0992FC08A16C29686C7C20FA5394D0A7378202958719633281435B055F3936EBBC1BFCBC5F4105B32EA37E4A222368919EB5F07E0C07B6E7D229E4B51B3BB9586BDA9E90383F958B0C9777A2D8331C7E777021AB9DA0A45A14B8B88AC78425F19BB6048209223786D19F5463724F009C71CAA35DBC67F661AE04E5B3FC9B1D59119BC5506FECD01D6C574880FA8920C54A3204C61C717E47676692DACE4B48236009A85CC212F7D9447AAA52ACC65D25879DF1312D41F14B53EA0FCB973EAD32CDF833463EF73EED9A0CE2D09FAFF9CE3A06030B3021CF4360F3E4CF93528BDBE69D0655171BA7B6D93CC220A10D37E828E54629C6239EE13C0A73E58F0AB6632E764A840753393B206C180B3C333275DB3F05516FDE08803F7BCC10589F8F54793F732CBFE82658033694E6AA74823B92CB616433072D405E3B38A42BA35252A99CB0A568D51B4562CB3AF733AF7A179FC66CB56292BB1D796BEBB5C400F30098591447191A7CE6A3B2CC3FC7AB7B5C6CA02C6808BE45671012867812C2BFDACB9DB982C2893D150B6C70347091FABC0297356F033BDD6734736907DD3A9E60E4637E2AB768E9558339921D8C1A8218926815CACCA840224052D574164A4661AFD903D4516E43E3984B31554E5B666A9CBD332A9E6C63036D34189616CDB3D100331BBA659649EF0ABB86502FA994B941F9A354231110B8080DB75C69EC6FFCBA48642B0EF54479DD7995F7F9BA92F8B473CC7E31D04948648AF330AA09996E868C75BC3949BC3BC8E5923DF68B5DD78BAFD3318AE4FA6224B8A7DC9814F7B35839B05CB709CB1CF2C1E80AA879C58B29677CDA375A5E4229BC8431D48BB08AF0BC27F982A6723E60B00DF6E607665B7A4B4CB35E5162BA3698B7140AE7A25A3EA76DB07626AFC773854038B3D13654B7CF0A1A8E75959E5EA0797EF4A64538C19F0028DCB5CDB5803815467E57ACA68FE00C3352602897AA88021203A4B970EBCCA77846E5C01ADB22859E41CDBFA8A7BE9B932AA2C6D391379A035455D84282D5AB90D5B6DE056F211CC6AF61C1D5B643F8D299C249C055964C56906F88778A4600BD054850A9D92557AB2C33DCA2EB2857B9617018AB08F25493B265B10CE74889D8CAFEC53F7B6805BFD637A6B6ADE8A65D7F885C3AF645CF08BAE250753EAC8E2B734A75976AC9EB8D2633A980285EC33B154C1551162C81F0254D2EB55A7DB13F5D766330F65CEACB55FE058AD06686E50BC544B48F1358532603720079B7D0609E5B36B8B7E097D40CCACCF496F3F00FB957162445025ED62592FB61D41A28B16A1F3A3CC83B1B173E9599E5C49A41B93169DBC4FD006A93BB233EF73DF88116E091B17A06125F651F52D501DC86A856A96A43601C46F32B1FD6900A6513F7D298851B443242C62B34236C7495881CC3FA592EBD4397D5422F3C40CA62980188CB4AA3499D5D2799F23C7E86057A14476AB4C7668F1C3CAEB0A980D13DE0F3129E151C0813B259D53EFA07681048888DBC082ADC4DD324A028D48FE728701398CE20425BCC9B410687363AD771218285617A39F3C7BFBB2A6C006125D6FA6DF88898F7B236F7581A8A077038A06394782CE7862185F4CE98AC06C25B611DA7701A80329228391DA903607793BC8A2189A123C177AF9D987AE9D1C6D2D01B", + "C5910F56514532D582CA092939119444B3B736ABC0FB5140E14C723B1C6ABC2034929A7EDD48CE3D469B16B09CBBA5008728BAABD54D15F427D2EB5E890A5A13224038328FCB227BAF6A7EA3B82AAC5844D809AD86B6ADCA537C2C0B4E0D659606F835129905A6760CFD68B5697B9A8EC00159450205CBCFC0F8C9FB8898F135298EE99A154977FAE7BAE16AB9325231178A764C1B10B5C427598490CD9539B69B1848980D09768C435233F52376371B7971D861C8612ECD160655E83BA1E60A553B4905D35EFA1BBF58318D78353DA822241A354B439B2449A2825D43212BE80483C167E6C5B50883412571CD2AC3C1B5AA1EC9C232E6B9B5A2091E189B3AB0B323FF13654BC60ED42857755902D063619AB98FD8790D05D85BEF1AB23A09A9C241A3CDEA620B6C338EB582DBDCA9A6AC40FEF7615091445A93B8FC2001E09816FFD54F7870B5CE6A4FBD46C3F42B8E63619B7675716BB65EAB17299B57C45C834226DCC6C1F98593782C9733A078DB34A137C5422CC1DD87A614C1604972559937102AE60337D997CAA06B0F33C43B093AF04595E5AB48A7A0966FF318A735024F004D6F1893B48B74B42135C43425C1CA48A93691603AB62D2B80FA5A92EFF7A218239B4814352A230CDC1249B09833BE95C5F46BC5905B73A82206BD6658464659293691EB58551973121A42385AE81AC9EA2EB6419A915441F41946E504A6B9D5716E909BDC49337909282C554F3BE4D7FAE86455763B97EC8FDBE9640219B35FC36033966A3525D485F1655D6F749B0A013BEC99E017F5E13BFF76680A2F9386F2AC6938D7950D5FA1F9CD2DD7A1BE89575BE8C14529BDE4D832CC005DEA955065C08B3185B215DA3A2D\nencap_coins = 794B565FE52DB74E9C19E9364EE545D7CDA5A67F3850D318C3812691356E5520\nct = C9CF688C98B47B72F6EBE4DE5A54D7020431D4EB212CC976BC3BB5713DDC8E992FAD49F231CC7A37B4DC98451AA774501F0AC0E5C267B0F8D621248D25916A18E60856046C5482C39CE5697DDACEACFF054316C1884E92202EE8A32AEFA8D3050E4DC7B64DA43C4765947BEDAC90565E140C019212015B0CA7FFD8DC9EFBE5C19629D68EAE2755169E47003791D028653975D3FD11C0EF44AC6418D6FCE15565D6CD57FF63E74966676C4A0CF45F35E0C171BFE7DC97503BC218F468BA3EF1FD02A6DEA931FA95C981EF1F0DFCC8268E3E1B7A3C18F07AC08AD468EC70540C9348D048D68A796BE7E8B17B934C12D837C8E2470B033E912854CBDF3851922048ABC4BBA7EB555ADE969BDCB09C5CEDE131817F432C412C45ECFCFDAEE2220A5A5D265ECA163123DF098996970F6C59A3A8400A341B83590FEFDF28F028512F1CD0D69CDEFC6B7E18D86D0AF80E6980145A1A5F738840445F1ED4B03E7D0C44CA76BDAA402C8AAD0F942EB036064541A7894164FA5C0AFFA9255CC7E8DB76F493872CE110DBDBF91FE0BD498CF5DEDFD89A35AED0F6F081E8AC876FFD5A02BE67EB0989A24BA4D24B9DEC6ACB0E70151FC458992B35C0FD65873ED19CC261B024167961D5690969F522BCAC36A5D916007453EE760CF4A65C0FED8571CF5093AE827DEB9A1C3503C19E7E95ADBEED6B41BE91481A10AC293CA8AF4C50D849F46EBAAE2BEC6DE26B0D0C757CFD2827B5248954890628FDA600402532E45839ACD518E69C2E6BE587700AD6F58537E935D50633F441DC365E460E01DAAF1D19BC3DD5DCBB4C1304568F8F494FF45784C221A458BE3FA8DC8E94E66D8C5552469993D055C7E90D8193122FE2C842DD82651954BD2693753236A9F4D766C5BE7CC81A5799CC2607DC3D5441ABB43C74FB75108C853E9434CD3A3E0798113338FF28749FDD13A6CE453284DDA991A1C3AAA3CA52B011A19DE60AF215F3E65E0D7DC728EAC87B0FF8FEDC96B159117341D5B887EB79B3D527EDB98A3796D01BBDA381F34CA66B0870884F3393C1CDB0F6788B1E6C6C3D9EF755CCA5E73D678C6BE48CFCCCA62242819F0D0CB50FED71CED07E09D42ECAD7BCFE467AAEAC54703C59C1BC80590F638523D18F5738AB2FCA8BBE47A742992D5125F102AE7EDD68A79586AD593E5488A1EF771903FF2E9B026E6F418975037D5C653F205052D334DE32828C0631A91A82332F3D63BEBFDA1C96557B4A1C287501B27716D1E3D720EACCC2295415E4453ACD940D3DCFCAD58F3203561E320CDF6C18311425583A08C7267573FEB5DB88612F1E616E7BA7330AC6B1A58933331704F41C4FF8DAECCCBD107311E006EB3C857995F421B77B6C29B99D7494D5C3BA6BCAB46B73EB484DBB98AEB29B7822E259C3463D25705E030E994F4514926A77D580ACA52B768B5867AB604D435C8823AC0EF5C32F3DE9D7803C7E11C0DB889F4FA535FAC9039E512338A798C89AE0A2FEB4702E54DF4D077BD05821483F7DB799F48E632D795E5F7D160DB82087642830E42A8FCA2786798740E01085884E135220C5792DFAEF876DD775614567E1B03C729174D42659593A3B17C989DD118E40C1D4841E009B8B2EFC333BF2411B0BF03257B1A9E254236BC897A134CF3E5FD1E132BCA98C4C31D3475653EC514495DAED1733D42667BF0E9FCC6ABA8F53316948D1DB404471BB7CEB736C6DC037470E71DC08958059519CE99656B1443D8CE3467C2B83840343F842FB900511F935B88A6579CF8535A33BDE7E8319AD91B6903885D74C724E6305F8DE2B91E97966821EF0BB50A7E4B3D9E0A484ACAD0E872F83AEFD5D620CF1DBC7BF7FF36EA2105DFD449A418A810E4EE6DF456AA77A4B73B61FD6BC6DAED5E6D2B6B0770585C64089B8C11764D8C2A28A5F4B4A2A727374D7B8C40EFA617192F74B44E7B761F502A897F2100A4F88B5A29EF4B688C7D0AB3B1FD32E5EECDE30B3442508BD4D98EB0308F9AF5E53AB755D03139E6E3BC4E15B318BB769C9C09BDDDF85CA76D5754082C7C8ECC8030949D4A0D90A9F67D63D8B2CD95D4AD75C78FCA7515BE342711D53A271B59CB3152F6279B11F954B40AC7332AA0668FF976D029DA55633FCFD42625B26C1D9509BB90FF76ECB3DD2068D32120FB666FBD3DB89FE852EEEB181B6F7B5C4B671A44613926FA40560B491FDC1F0ED03817A1BEE76B4DA\nss = A378F354DA0D03FF5D42C5A822F53A6AE955D6853BED1A9102A3A19B06C05D36\n\ncount = 77\nkeypair_coins = 241191401A63AFA750F05662E354DDDBC683C776CE3222BEB83E3CF913D7ED7C9508257A83CCFFBD0677795070695CD40D7B7F39A891D25E7E208BB9D65AF538\npk = 32A8B2861C097612CDB6F437E844B131E016F3299C31185123951B2901C5FB8296762292D6B37F5BDB67000D91974C77ADDA0E8601A03432C648848E38E45D8B9A45D8263E64D603E0F50D3F438ACC29CCBE54BF6CDB0500B50344A96837828BC568CEBAF055F070737F4771C8B4CB87230AFBE824D6312ED22CA5E2D4C5DC354D44935CA64AABC5A64186E51697B9444A50569861404BD7A9B76898A3626EDBFAC8A806751D328BC393B83525514C56B7727110F802CC41BB9C43666B25E26987CC813FB7193954A0258C61B4E13F2DA32CE3F1C030BC0081060A7E091929CBB729584A888A06610489F3312BD576666FA09013F4A191B498B9637DF5AC5610103DE4734C7E82C99062C34063B01FE2210D0BBA1A15406836275AA119042B5072E77523A655F41316B3DC31F39840446886AF337D2EA0C532999635786D9A6948164C361877891AD903A0C725289C4C02F81ED3452858D93489A07EA071847C38780C86C6DE1C22F1DB704A2249C6A96695AB22B9868D639CA4A8346AE0845AA8BA151E14941BF447B2701CB715456CB91B927C63F829C562628E01F88499A60AA69A0F3EF410EBB2698889711891B008C0B11A98C47E291B763039E5A214D35485CE4884317C5ED2449EE97566FE948F8F397864538CE789B2A1B3A654D0B13D23B8AC2869B4062BA3A27AF9F4468A216789B92BDCC8AC7FF2B86B134606A693A1915C55421E8260A872F57A73047F496442D7B1CF44830A8CC01B27B54F495CB984E732C4A40F99A17C5F469F311B6BFF9C582F888910DA60E6211C788C2FF2AC489F1163826B672E6ABFEFD917184B3F66D72DEAF652E6A596EBF5248A2809C3187C4A3834F220C28F55B589E161479882AAC21407E56D4C541282B1B330A7681DB50BF30463168733FAA52CECB1A8C2D51724B7AFE1976E42AB7FEFB1C234DA45AAFB803E80C972559694548EE98BA2C818010CA940F41429A8222B8739C872B1AFCA093FAAB792C3E965E7B0BD8850BE2498286ED9B8C9A6987577B98EC4A7835CAE03B28AE9130AC40C5AF971738E423F7F905A223A6C27752BFAF4C495874D0A984187631F50B8AA87EA806E78A1C18C78040548443587486171A11288D4D2A7D19B809EC8C5116575F3C47A1B419529112417A15CDA9A0FAB5B7968A0937B4C443DFA3D0CC893D4BAB60BDA28DA5A7A7FE6394F6B1DBB207B5ABB9B0157A029063EDEDA1D0F162BC536CDA44B598396772E4A3173AB4A22CB91E4B165A3587F687BBA350698D6F87958279E8176A9F52C7D99C55035164706139EE7923C64BAAEFCB99BF37195EA6B657D442097289DB24568D970CE526C11F507CD7BDC3FACC879893C33D35B734FB9928F82867C5266DC1199EE679AC2C337C35C435F90C8EBD0AA29E22A169BC36D605D5A2CB1EB914534F5B3D89A769D806DD87B0D32C63D0225CAC6AA1B8C3B7D9258CA68CB8086B673322716389876D85C71D2F5BD3D081D812AB37D026A34324135E5988FEA7833973D3B25AD2B8777F3F8691B5671D05B266B61C272076ED0D23604EC7A670C634A7074E889C030026A1B29C4B025C59D43029BE2C2A2665DC2F1423C063E1B78B79B550DB2281C3BC88DCED5345882B30DDC400A62BD35C52BFB063213947B89A91DF0FC0F34F53555853A8724A9D15A00B285ABFDB39E97B5AAAFB429042AAEC4D21303F1217A3C0AC7D249A3174FA8E67DE44583BB3549AA585404DC77A81756D05A42D650BEBC225FCBC132936C9741B496D1C95D8318B6B9B9A71C071F7AF5547F895FC4E313E3A262D31695B9471DD8F50F6E227C7774260D60AD56AC7608430F1C370CB917ADC3B7717B484B52158740740366A42D9F010C333611E0D29523B04618895CD91A21629146BF1870ED2584EE8C0A728B7535284AD30A3ED13339DB15B77A8CB2599954EFE44D0CC57BA0B0687D39094E034399973E2D09116B225F2D41A86B61936743806E41A242B63AA19532F19C5FCF0204329537E996A08BF52ACF80C39CE1938FB581543CC77146CD34A5223AF8BFFE735FB327C888208B5DD648D41CA209F976F6F226F853545A525F3DFB258C8074EF9A442C639A38459FD906A8982A69E29608DA98B4C4A59EB6EC04382CC584E663F5751F6AA0486BA48CE69988CC535190195D95FB6EC060B5257AC37481FAA2ECCAEF99C0DA37285D53BAEB0E25BDB9\nsk = DE9A3F4DC6A54E98C850E3AF0F7ABC5CB5B363BC668F2C10C6E197927C89E57088C4960C46B767E27129FE78C7CAE38717E6A2A7FC16DBC1582AC697E8915C90281A0A784C4B75345A13161BC6A586166D4385B507748D3B9516B10550F05782125C10F3761AEA2C631AFA83870C003950B891D96AE721317B192F21A50F2B2CAF49F81177790C29C02216759B005692CCAB4281927A46739FF7A9583E9A5EB9A62314E4967F5BB375FB627E5A45B918C8", + "01B4B1DAC24D55C13AA7FC5CFC104647295650B5CADCAC2C74AAAC28B82233F64C1C01AB50F16213154D0312C5ADD25AF449CFDDF494045000A01C449D1084C876163C83C13321B1F6F87757DC186D4C30CE916240E538F196936AB9BB419093FD593409F3A308827AD9002E5A621FB1387AC06B442970CDA9C720AC9049CFF1C307806E9FF9209FD0CC52B9517C685C36C45801875DBCE490163C91C707755CC8701AF04DEB9AA0CE460F24C72E5D811C4ECC297ABCC4C9BA304C75812196409C19BE10C494A8B138A6F05FB5558E7F2CBF6F1694E7D417F73781205B941EAA3ECDF91C71E998F9A8B6B72400A048A77CE4AD17EB265313303CC86150D477E42A39CB4B8C5A3723D03550F4B76D5FB7B524EC2658D374A8C955B0FB3FE878072EBC0201B2328B737F9F19BCA8411F35980890D71E7BD9707C917545AA6A659C3C70877134BBB0A1E970E7035021168C4A493CE1C9950456A76CDC05FEF147FDD625D2B4BC51B39F3B9BC73A35A06A7485306457544B88C168B22E81CBE9BB0174A2B526B6BA0641456A3CC941569124557D3BC652DC8259AC66552DB0AE06CBAEDD091C268C2C6F4BC7E948329778CF48C3B37F9A3ED714C5C8E0099036514D9A052631B256FB7E7F7C91EA0311B8DB8721D5001AE90991111C5873499BBA20A9D08A135ABEAA544706DABF7338497C578084E1BDCE9155F87417B29313DD39505CC90C45C12C324B5D5AF01EB2656D58607724725485465E33A6A64DA220421C038F0A625254AD127AC941EB23362649D2049F8AE8C057321AEEAA31E0E98FE3DA74D53938F4F900B6A33F1305A383CC12B35894AD498293957950010CF7912174373967C294BB89A90331C828048E3FA862FADC95283025E2F66DCA10104BE8B9F286C198B8C9F0F24C79A454E8DC0742283CBBA84B95B388D8F6912F4B74198AA52AB561CE59508CA6CC09251FA2780EC0DA59D8B12B17179320D23B822A3395466DAC34384A364D06882592734F72AB0D2DD7131196AFD4DA54FC5801D85928CF61BB257274C98479EE0C2F65FB985F6C669D948FAC153158530849311F0BC51AE72BB8C23AB5FED55E793A4E8489B423044A1B017273A4BE35A305E19934B99B45DD2734AD4CB4C5B368C7A32650F306B7148C199A44BCC3A297429CCA6015E906204C827CFF8C9DCD48BF1B638091F732DFDC570CE6618DFC839B4A4648A52BB8302E32098C26E9A51A6571C9C290005265B6359F07598B10C7674F5356B0365CEACBB55B1A1822811C92C44F0E4BBDA4A13364749C5384CA7670ACCE69BC48B6A0B0B2BAE8AC5CC40ACA6CE24957167CC0F24DD0CAA3A0228C13934FBBB0C205F53D713AA441F5B0FEB01FBD008209296CC096645DA876B961B0EF736996D95766BA0D9F89A4A9BA5D8E31AF9F5274BDF093E40169C9B94B0958AB9A585645DA158A6176C8BB196692BF52A8158D7C9C2CC6937516450F50BAA77022C748C19E68CB9BEC6C115806A30552EC242D81B036D840C3D1A9BC15BA4434D4176418686546CC38F35CEEF112689850B6BC3F7A3A544EBA0BA809153D4C3A21E72A2A9C09845CC07EFC1282123652826EFD0267F5C9481D8C5B07370015D593B1828DEE3AA6F55B31525B9EA8C9772740BA325B072E9211AA104BAA516E7F528202C5B0F6F8A4965332EB711ECC9A9E4B85BF9D0CBCA759093916C4992A338DC385C9280DCFB50805D95525D59603E8051BF70049698629267B2F29BB93F769B3C3B553F20CDFF72BB77811B39C276623C98197CB528B9F90E470DBB378AE9750F1405C11551E6962709A266E6717760ED607DB4741468A81AEBC72ABE9080B428B5844B646855F01F989378702A6894E24969FD605B261129BC0A567389ACEC88B0F15ACB1189718115556CBD99A32A8B2861C097612CDB6F437E844B131E016F3299C31185123951B2901C5FB8296762292D6B37F5BDB67000D91974C77ADDA0E8601A03432C648848E38E45D8B9A45D8263E64D603E0F50D3F438ACC29CCBE54BF6CDB0500B50344A96837828BC568CEBAF055F070737F4771C8B4CB87230AFBE824D6312ED22CA5E2D4C5DC354D44935CA64AABC5A64186E51697B9444A50569861404BD7A9B76898A3626EDBFAC8A806751D328BC393B83525514C56B7727110F802CC41BB9C43666B25E26987CC813FB7193954A0258C61B4E13F2DA32CE3F1C030BC0081060A7E091929CBB729584A888A06610489F3312BD576666FA09013F4A191B498B9637DF5AC5610103DE4734C7E82C99062C34063B01FE2210D0BBA1A15406836275AA119042B5072E77523A655F41316B3DC31F39840446886AF337D2EA0C532999635786D9A6948164C361877891AD903A0C725289C4C02F81ED3452858D93489A07EA071847C38780C86C6DE1C22F1DB704A2249C6A96695AB22B9868D639CA4A8346AE0845AA8BA151E14941BF447B2701CB715456CB91B927C63F829C562628E01F88499A60AA69A0F3EF410EBB2698889711891B008C0B11A98C47E291B763039E5A214D35485CE4884317C5ED2449EE97566FE948F8F397864538CE789B2A1B3A654D0B13D23B8AC2869B4062BA3A27AF9F4468A216789B92BDCC8AC7FF2B86B134606A693A1915C55421E8260A872F57A73047F496442D7B1CF44830A8CC01B27B54F495CB984E732C4A40F99A17C5F469F311B6BFF9C582F888910DA60E6211C788C2FF2AC489F1163826B672E6ABFEFD917184B3F66D72DEAF652E6A596EBF5248A2809C3187C4A3834F220C28F55B589E161479882AAC21407E56D4C541282B1B330A7681DB50BF30463168733FAA52CECB1A8C2D51724B7AFE1976E42AB7FEFB1C234DA45AAFB803E80C972559694548EE98BA2C818010CA940F41429A8222B8739C872B1AFCA093FAAB792C3E965E7B0BD8850BE2498286ED9B8C9A6987577B98EC4A7835CAE03B28AE9130AC40C5AF971738E423F7F905A223A6C27752BFAF4C495874D0A984187631F50B8AA87EA806E78A1C18C78040548443587486171A11288D4D2A7D19B809EC8C5116575F3C47A1B419529112417A15CDA9A0FAB5B7968A0937B4C443DFA3D0CC893D4BAB60BDA28DA5A7A7FE6394F6B1DBB207B5ABB9B0157A029063EDEDA1D0F162BC536CDA44B598396772E4A3173AB4A22CB91E4B165A3587F687BBA350698D6F87958279E8176A9F52C7D99C55035164706139EE7923C64BAAEFCB99BF37195EA6B657D442097289DB24568D970CE526C11F507CD7BDC3FACC879893C33D35B734FB9928F82867C5266DC1199EE679AC2C337C35C435F90C8EBD0AA29E22A169BC36D605D5A2CB1EB914534F5B3D89A769D806DD87B0D32C63D0225CAC6AA1B8C3B7D9258CA68CB8086B673322716389876D85C71D2F5BD3D081D812AB37D026A34324135E5988FEA7833973D3B25AD2B8777F3F8691B5671D05B266B61C272076ED0D23604EC7A670C634A7074E889C030026A1B29C4B025C59D43029BE2C2A2665DC2F1423C063E1B78B79B550DB2281C3BC88DCED5345882B30DDC400A62BD35C52BFB063213947B89A91DF0FC0F34F53555853A8724A9D15A00B285ABFDB39E97B5AAAFB429042AAEC4D21303F1217A3C0AC7D249A3174FA8E67DE44583BB3549AA585404DC77A81756D05A42D650BEBC225FCBC132936C9741B496D1C95D8318B6B9B9A71C071F7AF5547F895FC4E313E3A262D31695B9471DD8F50F6E227C7774260D60AD56AC7608430F1C370CB917ADC3B7717B484B52158740740366A42D9F010C333611E0D29523B04618895CD91A21629146BF1870ED2584EE8C0A728B7535284AD30A3ED13339DB15B77A8CB2599954EFE44D0CC57BA0B0687D39094E034399973E2D09116B225F2D41A86B61936743806E41A242B63AA19532F19C5FCF0204329537E996A08BF52ACF80C39CE1938FB581543CC77146CD34A5223AF8BFFE735FB327C888208B5DD648D41CA209F976F6F226F853545A525F3DFB258C8074EF9A442C639A38459FD906A8982A69E29608DA98B4C4A59EB6EC04382CC584E663F5751F6AA0486BA48CE69988CC535190195D95FB6EC060B5257AC37481FAA2ECCAEF99C0DA37285D53BAEB0E25BDB91C3C2AED0FF6944819C93F9A9FE77D14A16A385F644DE118099FD4F7F57DB9A09508257A83CCFFBD0677795070695CD40D7B7F39A891D25E7E208BB9D65AF538\nencap_coins = 848DB3A6D5CC33F17D978A283B8267E45510CF6C6354EDD5E2476821E12BE3E5\nct = 8F2A0ED3B1E7F81AD4C00D6F72768CD3E1FCB91BF5C44CAB1167352D4A1346C45E180552B8D1347E5FABF8E4F3227C92D320520DBC8DE28E42274899019C9A582E42E87F427BB6C8F530BD012F562D3E3F3E468ADCF30E7FD60CCE4FD4824F6534B09C9FB66578693D0F0A7116744AD09940FC0A9D06D583DAF40ED57D75AA059345C62AC509EF203CA12B4B93E4E75E700256B60F1396BD763C1E5872DFCC89EB73452CAD1FAC26D26486655D997786B22BE4B9E0D9239ECECDDA267348AE3B67D1AAC2C7C48A3337B85ADD4E450D6ADBA06B3B070682C458E4E7FC167FCF5F0970C706817BBD690FF528F9D0BB4956C5B73357CED473D04F2DD2B69EA73E50FA899FE60E768EBE7DC0104D7AB6AD9D2B70AF7D3BCA6694ECD6BCB1FC0170E9C53DBDEFDCAB5894CE951E2A6EEB1906C8D75784882AC4B0742F30AE47690E1B64AAD6C499D2043FA8E5AB08A9F939E450F6B128B06FCB49CB0C6A53BC5B63EC67316CF9D468214D051A11B7879C5CB615935F5C200BBD2A04C0D6BF3362639CEFABD150F35DE76123BEA4E08EAE488144B44F4B05D60A386135D18B112AAE25C2DBD48B9D230A15625902FD3C1EDCCF5AFDCF5EB119EF01ED4B81F41A3BA7D680FE53C92EFF27A42DAC48FF4E174E8F02636143303B4EFCE7F543534ACE3CCDB2CEDA248EA6F01E89E347D664DBEF5BCFB24B6882C7950A6EE0A7D0DCD876883D88A12A9DF6D5575B1DED4B82FB1C742328D7622AFF2C0FC14907529E9502D7F50772D76AFB22D44F6C427FAD387CB426B9C33C46F2DDB827B67182F91B66DA1BA29BA5F570701B1C7404FB8A2235EE5630A5723C875EBC2D5C8D51B8C6DB276315A3AE1E5E8175895BD4D44EBB395ED1B8D4C3AEF2CEAED28AD8B7768961A5F403117C02F56984D3FF32B5E6315344D04FC0326B0FF525A94F556E362E0217F629E0B0A7265D315B45C25158B4913AEC03E5EE2CBFB6C1BAAAC89A8A4502F564B8068216A265ACBACDD2BB9E4E4E32E874B33AF8992EB23BF8222D387A9B99FB30C2E5A9E47735DE7FE7617419B9217CD16A47944B1A090029971DE04A0AE5A5328ECB331E3F52584F3B3F1B849E9E51BE1E7785504B7B2AA30E74460D745A034D1281AF5DE1AFF4C6652C9E676461C009101767C7BACE83776A90848C501DBA68E73568532309C950298C8C26955FC7B558E881CCE96D401DD033382D1E987CC7865D0EC7CC682BB8EE2FA6B3A28B807EDE1FAB7AEB8C154E0D58246346AD357F4333FE365CCE1071464CB1AD8C198DE2E1E0DF3FCDE2002CBA74D0FCF4D9126A43B36F60022D51C53DB43651C26BD09B1CF86F7E429C5F5FEC74B1846D46940992FF7A5D2E2C55697635441087C88A5256D58AFCC35FA5F47580D3CC17D1898B888263F72D18FEEBB525352F1F14E39F7ED27B54402701E394D7645707E307B3F53A366DA9E0EAA616069922FC5BD202E1F18C922F5044AFE487D89631D967224B637EE56", + "7702F0E60803DBBD4C92E12CAFA869D1532B45B13FA47409B72C624D3578A528B263D3CA228ADE26D417C830B7AD0856E75AF8CE2A740B8AA89C780ACE07EE922C7D2B1563295E5867677E9A3A7F3708204155A84B22023BCEFF5F7AA6C805C15EEFD2F7BF6F0EEEC7DBBF0DDC0E44C520B605DC8731DD0B1E1985E2570C067524275804C68FD491069D15CF211C505AE7EBED40CFC501C769DCB980328BE406A0D29DDE6D35D7C312D291714C4962C9F6EFE3220140005F15924A129FC4DE4736D95F5F8C09A9C15EAEEEC8FD5F53B09530A30D69A6F6D0E731B56DF7E1E5DE7E96CD1DAE179013D2EF5E8A2F7CE8D0092A3A7F129DC05394180A11DAFE9B178D38635B037845E7A067C9CF3AE181F8D21D404678200660D0D1E7174D676450F7BB731E9F7FAFE3E4652D5F19EE75FE6FE202290D546C8AD63BE71B196B4D3C294EDD4600097F36A3E3D498AD0B65B7D7C8F828D0F67EFEF275A2E94E0C21DDB53957DC812F03A9FDCA54261E02BC808910BCF47E59E9F0D97EB962E7CF044AEF3607ED5D1667766698B10CDC5CE2F14A2EF76187C39F5E6C4CCA9E9411D6629A709650D77D73470FD2FF69359D167DD9ED8556633E37A2CF5A8869E80D285D116DDB649DF8C515F472B13C9102FC0251CB4D1C020D18EC108B30F021503E63F1175CE658D6676D4AF5BE26BBAB9CED95FF695FCDC5F61E31F\nss = 7591AC558F6F449D2F0D788D8EF2C62C4707E6DB8CB3301CC830010DB9B643FC\n\ncount = 78\nkeypair_coins = B9A6B0C05677E957D41A34BA03BD06F2A9092E31F63389397D7E70FDE6409D1824D67704139CB68EDB8F14C5ECFFCE83828208EDF58C0F494FE3CA22CFDF58AE\npk = E0F7B1CAB23A3379CAF84AB285E12EBDB602F431A82E0B098EA1A1F18B18411989CB1B035D0726865712F5CC1E6B51674887B0E00C2EB067731DC8419E64B816955B407A1A813666D73B53D7955639A877A961B4915483AF565B006DA5423C5644AB3F243C7AA64C5233D4B9A391BC55B30DCCF33DC1A93B9B784C7C3429CE8684E1910800739839BCB926374932A7241267835CAA9131818EF9AA4EF5C1A3E2F03BFC83076D8A827C082F0D0C2FF89A8FC2E62A96396DD411259D26C7B9C84BD38C557FA45103F3B793097EF6B775F050033109AC7C606E2CB05497C9C596639A63171F5E70775DE9C545B919B9E199F4D76508549EE1EAA404F5534EC862E6037B5F484AFADCA26599A203825297864EF536CF578C277B6541083168D14B3E782A3DED29BBF8A8B1A0F831658582B68B8744C66EF3F385B7A018E3E5CC8C581198E2B4B372002EB756BC7A65A4D67C86AB022F549BB97904E035173AE9C1073A9D23A315D054CF0E3BA27D401BB04569065256BE9447A06CAEDD97871B52624F43916D475C7539BBBBFAB35C0864C8C77B12242797323BB12935BF5A08C2EA4D446305A7345DE980A03067513F6402E14B29E7287E30194DD76856ED80C55BD65849C1135D398994007B1F14A452E36BBE7283CA7B3ED1B67D0FC3667387C9B3C3CD8314515CD2C4E51B96A8D43A1C755C65740BA9830F65356290953B9DBB03600B18F4681F6F039379F26D40F2C8CAB57378B66AA245197CEA225EB9B712C95C4BBA470B07BC6C458AAD71BCE067B0991036F5F54636248C516C88EAE013232C0191257CD0A6322704C9A6D005FC80C6C6BA0636E701BC5847C091045BAB969AB85F5644A5F8F43858C94B276201A7E77AA5C413C57B40726302559762EC40178199526AE63279FB510C8917AB40C1B1BB15DDDB6D1C2B22520780F222C15AB2A16BFA28753A61A949AAEA6ABC3E3083A467110334A959FA582261561D3C8FA671AD34B8B7FF2B682020651935CAB1B227D75261E3C98930961457A955275734D9F41C61069E1A5569D38A1A1CA1876E481D94851E62918FBD550E45FBB79A7130643BC1FEA1C722675398498C6874AB1A7997008A166C9146882C37E4EB64C3E306D2B2B4C1409A81DA2122A5360430774FA56C5A3520A7E870AAFB55773124D93B17451C01C7E21BE33A9DE7A500FEF26C7117C13599024EBAB75BA9710C5465A089375B2A751F5C3EBA8151BDA4182FF3280826C3190B9B11B89BF9D151C4A939510007378895F916BBB8E107031459E27C9EE698A269425EBF5A484812271EE667E8C6B9F5AB3624DBB09C5B83D5FCA7BD54AF3B33980EE435CD5A4E3E6BBFD82C10C997ACE9E09F77CB9FC4F8C13B25A8A12C52C7729F22A3290140C7AD0480C00A175DB293CEA64D422BAF4BD306C5D446D48B062F751F47891A8FA82B9786148C364E4DD85507C07A9B4448E57C2795554B3CF53D5D14AD3179669862123840A7AEB57240D69ECADBB48521C196DCA4705671B1E566FE59B08CB963F417ABD01A1915A33367508CFA9C89413B7709EB48E9BC2E809A56B027B6DD3A513A2428466C29B6AC802F9A83536BA1ADFB96270C57A0743C12733525311E8FD04E12C52F15468E84C6AF54D8BAE8214C152C56082465B79A6CEAD444AA767571CB1351E4CC05A8A75057C5745ABB125A5382CB8A3EA2170C104CA21CB5DA000002B7231A8A0A23E50D173485C7D1CDA9E8C1DA913161E34FE0A986ED5C1183D383067B7DC6C75ECFE4C044C7ADA3FC8010AA4E8F28BFA72C4D21F170569165CE1762248370B8CB76EF5797253567FC98A2856870B9CB312E4A3D93B506A8554738E522E11BB3B7976F9AB17CE8A190B0CC810258972A10283C21B9FA36384AE0BE5556AA252A59C1AA7617B480729C0272576DFB0C6108DB290A0CAFB8588F6DB8B933970EBCA0933C9382ACAB4DC0C75C4E9A469AD60C86D7474440B870E7958B600B6A3B48CB13C938652198C183347358CCCB4D45AB3A4FD7C7730470C2218726157F89FACC31B6449FD6B4666081572CA291BA6E3657165B053C6A239876CA5EAA0BC659B0B1635942A90B39AEB6B22F2C521BAA4AA98579FE79B541E3ACC5D006CA6586818664EA6108BF0080966BA83C77AED8FB2066C94458E70A90327B7C13C809696C0E4711CE152577517BE0A2FB3D597FA5804E0C106A4C10\nsk = C65B5692B9737BD5BCEF94376A685FE08CB59C2B94884B47BB6A4B292C4EF8DBCFD1D9392BA3C464442CBE0879FAC60CB733496FFA7116011CADA07377EAC759172DB45C9035532A5A48C18F3343E7FB3A0A7A1DA9C75F647648A822BB8FCC59A2E0476FE958CDF968433B46EA296056A8460EDC0B7D4430252B227CC38C8DFA639A72759DE9325D3BBBDB1A5305E546580127B11332BB666236924FF1F13105176B81A777EBC946BD4B962E8050C0F80BE026A513F7C9C74308F8336A9BC73BCABC8353AA10AFB69AA502B3B6E9A53AC67F8CD8784BE4519AB3C6E8E47212BB59EC3958BE442BF2162DDA987C602030770555C0BC62B1422367B95A91399642155CD0B17DBB848B642C765FDA2400358040D4CD154A68DB36265BB525FC90988FD0C04BF0B66CE052BB216D6183B444CC385BB8AE17388D5E8024AA41563653B5F72899CC16B37D642F6FF7385F557C941571A1C73BD9425FEF3C343ED9B88BD02A9BE5652736AE69949E43B5C9719C4B8E42C9071C10E3D454B3C90D315C93579CB106A3B16BAB7163983F5C514B818516BBA802B7FB1166679EE03C4C41EBCFFC6322DB61A7988927DD83B48C24BFE82A4FB1901F70E2C39C411FA65C43D56C02C79849E7745BEE15B70E405939B055C2A76FE1021E094B4671A290F5D708EBF0B1155B94FEE9B34CD9858D3A8DD4BC27F5FC0627F2A80D6681C11324ECB74639540B72A23083C3758CB29AD40C979B42679E1436FC56B3A7D1115137015E2A2AF9A8BEF038B6905C8847C16558BA2BC6EA92AD90B026228695D664720C15E6708B0934064760A745EA4A5587BA211312C7203005F838A2D5B7BB09B8DC7AA39D4956D494472F71A268991CA907AACF8048FC98C095798D0EA043C42C437F6762ED3678B6D701560016F405CAD66117C786B56B3A88FB5968C26869F73A2227B129553B220F67CAE75B5433B29259553AB4375A0AA6766B2AA0AD480B6969201ED21CCDA0A39F8B8F565112565065D8D26DBC1A57425A29FE0A606BA826FFE45A69493B08B11712E88A2B4B0371DB5C0EC0125E2659ED08275D18277B9C0CA51797D46CAFE91951737868483A418427733EE2637B4AA9496C30FECAB67B0B7278A76DA2DA201874711E6928B7A40E7859378C867B9BA81529656200584EA9A5881B657B68980EF8CB201338AC1B856C4EC5B0C48A80BCD6676C0CA624F05296E59155D5587C2C20BFA1BEF1005BBE9840DB205D9658935A67614595BB3FE48E52877FC5BA639D023F54D534C58CB90A0A98BD1C2E9E940FDC61193D4753D17463D7EB8C9C6575E0F6845B5C0A5BC69C5F90128D3078960671394B75C5C72EAFFC1E8EF4AFDB395FFD40A2F6BC75FB9B79E1D8756705B710B0BAC1DBB4AC312FFF30745590739C08BB25CC9EC62CAF1226176C161ECE62AEDEC392A3591EC2AC80E92571C1417BE7D82B2F9A1990D50DAB78C1DEE631304AB5AC57274846A8FDC6547B224C72E0781B233FF8A6C876ECA3A3E060A00B560F661042E85340C4A8257660C0592A429C7B81B5137D410B5492864E156DAD292DABF59035FB0E02247E6C6847CFD86B6958C74209A8F389041E5389EBF5B9B633B7FCC08CFE14BA466A36777830D840B5FA9B7234403074861984E0593C72C3D5405BC375255E239258B47D782056F106A4F9A493B584909006061CD98EA65A8C131B6AD696B993A66ECF2C32AE1A12E24C83C7B696EDFA64B69B71EA7A02A85097D25BBB21FB1475D250D64A9C87598AE12C0DBB7BCABEFCB48266B483AA5310E2A734A8519449BCFF963C4C10340FF42E2DC883D9C15D744A9BC2D1752383B6C9409E29B331E87C27A11189C41CB8AB182F82A920BD7C9EBF785B09B5BE32813E8C128139356F4D60B2CF5C80BFA609B9026A18360DBDFA75D49755DBFA421E9407DF6218333331E8917955A551A7F962B8E7BE6CD43A8A35318406471161205B5A71E238B911EA2B536C861B0208B654A1FCDC0B77E5429379295354CCF6E93D41C2233852451C8B44B151286020B4093988FC23C533FB83C510720A278E75EB047A86AD2654225CD0445D7B9585873672522E3B18C9BC74AC2F536B5E6BBE6C1A250E50183C16BD79A970BBA86693CC508094091E207600009D3893B6AD96433720BAC145B6E0F7B1CAB23A3379CAF84AB285E12EBDB602F431A82E0B098EA1A1F18B18411989CB1B035D0726865712F5CC1E6B51674887B0E00C2EB067731DC8419E64B816955B407A1A813666D73B53D7955639A877A961B4915483AF565B006DA5423C5644AB3F243C7AA64C5233D4B9A391BC55B30DCCF33DC1A93B9B784C7C3429CE8684E1910800739839BCB926374932A7241267835CAA9131818EF9AA4EF5C1A3E2F03BFC83076D8A827C082F0D0C2FF89A8FC2E62A96396DD411259D26C7B9C84BD38C557FA45103F3B793097EF6B775F050033109AC7C606E2CB05497C9C596639A63171F5E70775DE9C545B919B9E199F4D76508549EE1EAA404F5534EC862E6037B5F484AFADCA26599A203825297864EF536CF578C277B6541083168D14B3E782A3DED29BBF8A8B1A0F831658582B68B8744C66EF3F385B7A018E3E5CC8C581198E2B4B372002EB756BC7A65A4D67C86AB022F549BB97904E035173AE9C1073A9D23A315D054CF0E3BA27D401BB0", + "4569065256BE9447A06CAEDD97871B52624F43916D475C7539BBBBFAB35C0864C8C77B12242797323BB12935BF5A08C2EA4D446305A7345DE980A03067513F6402E14B29E7287E30194DD76856ED80C55BD65849C1135D398994007B1F14A452E36BBE7283CA7B3ED1B67D0FC3667387C9B3C3CD8314515CD2C4E51B96A8D43A1C755C65740BA9830F65356290953B9DBB03600B18F4681F6F039379F26D40F2C8CAB57378B66AA245197CEA225EB9B712C95C4BBA470B07BC6C458AAD71BCE067B0991036F5F54636248C516C88EAE013232C0191257CD0A6322704C9A6D005FC80C6C6BA0636E701BC5847C091045BAB969AB85F5644A5F8F43858C94B276201A7E77AA5C413C57B40726302559762EC40178199526AE63279FB510C8917AB40C1B1BB15DDDB6D1C2B22520780F222C15AB2A16BFA28753A61A949AAEA6ABC3E3083A467110334A959FA582261561D3C8FA671AD34B8B7FF2B682020651935CAB1B227D75261E3C98930961457A955275734D9F41C61069E1A5569D38A1A1CA1876E481D94851E62918FBD550E45FBB79A7130643BC1FEA1C722675398498C6874AB1A7997008A166C9146882C37E4EB64C3E306D2B2B4C1409A81DA2122A5360430774FA56C5A3520A7E870AAFB55773124D93B17451C01C7E21BE33A9DE7A500FEF26C7117C13599024EBAB75BA9710C5465A089375B2A751F5C3EBA8151BDA4182FF3280826C3190B9B11B89BF9D151C4A939510007378895F916BBB8E107031459E27C9EE698A269425EBF5A484812271EE667E8C6B9F5AB3624DBB09C5B83D5FCA7BD54AF3B33980EE435CD5A4E3E6BBFD82C10C997ACE9E09F77CB9FC4F8C13B25A8A12C52C7729F22A3290140C7AD0480C00A175DB293CEA64D422BAF4BD306C5D446D48B062F751F47891A8FA82B9786148C364E4DD85507C07A9B4448E57C2795554B3CF53D5D14AD3179669862123840A7AEB57240D69ECADBB48521C196DCA4705671B1E566FE59B08CB963F417ABD01A1915A33367508CFA9C89413B7709EB48E9BC2E809A56B027B6DD3A513A2428466C29B6AC802F9A83536BA1ADFB96270C57A0743C12733525311E8FD04E12C52F15468E84C6AF54D8BAE8214C152C56082465B79A6CEAD444AA767571CB1351E4CC05A8A75057C5745ABB125A5382CB8A3EA2170C104CA21CB5DA000002B7231A8A0A23E50D173485C7D1CDA9E8C1DA913161E34FE0A986ED5C1183D383067B7DC6C75ECFE4C044C7ADA3FC8010AA4E8F28BFA72C4D21F170569165CE1762248370B8CB76EF5797253567FC98A2856870B9CB312E4A3D93B506A8554738E522E11BB3B7976F9AB17CE8A190B0CC810258972A10283C21B9FA36384AE0BE5556AA252A59C1AA7617B480729C0272576DFB0C6108DB290A0CAFB8588F6DB8B933970EBCA0933C9382ACAB4DC0C75C4E9A469AD60C86D7474440B870E7958B600B6A3B48CB13C938652198C183347358CCCB4D45AB3A4FD7C7730470C2218726157F89FACC31B6449FD6B4666081572CA291BA6E3657165B053C6A239876CA5EAA0BC659B0B1635942A90B39AEB6B22F2C521BAA4AA98579FE79B541E3ACC5D006CA6586818664EA6108BF0080966BA83C77AED8FB2066C94458E70A90327B7C13C809696C0E4711CE152577517BE0A2FB3D597FA5804E0C106A4C10357D61586F671648188F070899D2EB3408158ADF5E8056EF37AB6D8817CD827524D67704139CB68EDB8F14C5ECFFCE83828208EDF58C0F494FE3CA22CFDF58AE\nencap_coins = C1C78CAEC83245FCBE98A15314940686FA06E675E68C24E069509CF1974AEE78\nct = D42DE7ECBDC673229CD0B4D077A9F2423CD1D1451C7572FDD92DAC0EB0240A907ADAF57BC6C318989577ADB79F0D7A5568342A3B2484ACE373332D99792940A39731FA70036848B3410A6B7B6373FC57E9CAE3E78EBAE3138A023CCDA91B7578E29CCAE259AF93276BBFCD4989BA4CE06C8DC6D33F6D3B91157A9998CF5544162B2903282451A54191FA3395053C9386FDBB4B98CD27DE718D06F95EBB17CB791D2F29BF9EBA1A784069FE3F7EA329BC3B370CAFB03CB7F613FC560F30352E14CC0215490A331283D39D7B0ADD8C54511A682D4EEDB127B60A9FA13A94F57CE05BC6D7B57227A79C8194F89F512E532A043BA3A372434A7D9ECDA9B10C2451CD2A1C8C38AC54CC8F263F76A3E0A2E7DDE6476988B5D87E578921F971FF4ABD6E20C7BAC237B080FB090ADF91C5108EC468AE6B7EDA54E0BC16EFF2AA0D9881F19E71CC6CBBE59CC2218A9EF55C56E06DA4CD25E204A2E85F2CD348D126391173D0CD3227F819406A80C9B018769F784D574BB3AE327F57D3649FC017DA95271FA3FE8283F43B5AD25611840377093F4BBF4E4959656049160E78149D5DA3551CD96A2EA732406F8F5885D8785392EA9E0A34E0CCDBDD95297364FDB13C6024B55223BD78DE1EE9CCE074D5DC2D6EC267290A77871C647F3CF427008CAC2B21408B5A3565833CC811EB3404A8F37B9839E9C738DFC0272B084A7F4E459C5FEDC48A748BAA16D447207A656AD15C9507391D4C4226F4CA03F64421B90E0F0C09E4476D53A1138D835D0B449E0AC5DC892907E1A236B8CEFA66D1B0952E6FFE58E556C77478119D42839106EB08C322D585B14ECE322B9645224080C5C17A6FB8407A81A733C6D70E6B5D6B824EE3C1FCB2E73F46D1514C2E05B04B17CBE0CD76B23EE8319B7F36A53937217CC1289D967FE0F85625834B252FF6E6B9442DB6B26F03B09F8CA48B9DAD2D0770C31E7D5ED4407D67422742713176DB85879A5D484C43BC248C87DD235985A985C091086E7FE7EFDB2B3FC0AF56054FB426BAB364DBE48F72FC1561CB675634CCCBF5FD8EE412C7043360CD3CFD6D1DA8EDE344A8BAD9393E23355E3909DF58FA6CAB602647EBE4E2E00BEDD636382CD8F02EBDB1D5B05EFBE0DB29DBE5E4DD61A0BEA74596AFFE824F739029ED6C79EDA82FAD7E066208EDEB73CEF56F28800E4E008E3ABD74EF16B7CC538B36B0F2022984C48A0328D4BE89400066B44EB08B3AA4F04B204AEC8D5676286FB232466210CF738ACCFB701F8E37E96EBFF980E495494723862013808E2DCB46C4AFF167915190E4BEC01384D8CFEAF9B60D958F9D4FCDE2881D4DA0696415C793D15C301C5DF49F185F1CF7209070B041CA4430BCB313FF9C14F7010A9B0A7D2F10618D414C3957512F5532B839F484260ECEE502F1F1537864E88FC683C01675F6480B45A1C5F5C35D0CBEDAA82BD742DAFB8DD9C800CB3D29DADA1529D92F5C1F00439FC2BC420895FAB6BA169A551E31E0CB1735679A57084538471F60CA9CCB48BDD52F5F64955782205A4A670AD11D220061127E389F1C9D9FADF1853D43F5A59772FBBC3F0E2410AB20E1D80691B51E732D5EFF5A8DE12FF272C22F1272F6E5B063695757CC99B0DB59D796C0ACBC82A348727397860E578069E8B3C1CBBE4A40C368374D0C6E3CEA606A209FA3F56F3CB4D1F6C5B059192B419C18C8127C9CDCEF110F967C9FDA203CFDDDB9D9C1134C80C1CA3B9A3B21D6E08FCFA6E9B74831B4B2B1F5EDF526D882EA74345A3275DEAD3B9D3506763248884E1689D2CD8CD0AB19E735BAF8E18DFAD066D797B8CD67721BEAB73414619DCB5E4AF17DECB2146A32495315097C125E1EF0E92C982EECF1628D799CF6F6C9404A78BC29F02B4DF2447FDE94596493EF562613FBF44E4D5933DFA0D3118B18C4FB480B9BB78F7D31634E49CAC3CCB792F757BB79728A9D521A42234EAE3E647E879284AF63A9BD034F8213749C0532D6C6AF8EF94EC09F91F4DCD86E4599BF73A2BB6954F2CF0D24B69753AEED4971098A301D750E728174CE90826CD8DB752219ECC38C67D2D8206C88FF6D2BF17A3D01719F8EA0BCDCE505BF71A6029E6741123EDBE611D2135F5F5DC5964064E6BFABDC29F61239DD2E56B018B9653A4618CF0F7AE9971E6EBD9DF1A1305482950C684865F0A629A7AD63D22530A8F254C622A994D874833636196DABA8\nss = 06021B392B2A709F9E0855F12AF3FEBAD4943D55E1F925C4A0684B2E04254AC5\n\ncount = 79\nkeypair_coins = 28A96C71577BA00C94F99FE965BC595A26DB2B3CA6AB5CF8E443CDD8462B1792CE71AC90659FF2DD31B35C165D3929CFA5E94407A5A798C568E6098F631923EF\npk = 2C12BE5E04521DC3892AD41CBBD769AA8B79CC9801866C87F7194D89FA56329100F63788904C7511533ECC5B8E7FE45659BBCEABA74402605A84F195925A71E3153827A5B417E0B994AC6355071AD98B1328F919D6F8C30EC7AD3366683AA3472132C801E59176711E2B20C251281311A6041AE71F96B9AB225A35E6273B5878BA6E362BB1AC896A557078495D1ED08264984357498D119706B7F4BB42A8700EAC4E80164E19C2263A425F4FD18F39C2B3E6D70904E7481A14030B40BEBC26BE4930A05B4236436698EC5A5591B88985159CFE5C55D7D84AFE7A9BC6999B1261355BF296BE8726B04A066138C714B229028B2DC5E5233CEC7ABE672A0F67572EE2A0B84B6F231A37BDAB5006A9CA184CBB82948C46B6882DF10A6BC12A8E637D3D437023B99197C207ACC2157C43396BE138EA06ADC0BAB4AA2ACA95D5989CB6B9F1987A58D52B0B460956452F6C00D08A188030BCAFF3E9CE91AB88DEA04547BAAFF1D64BFE3C2F5050A398CCCEF166A6FD82151738B227C04288E8BBDE4C45AA285AF2767D17B4A66529A06291757CB52EA67865AFA5390A02D0E93226EB200A03FC0E83203E08390AF0875F2331B8076259D9378DC77877652747774B85064B878B816CB30C6341C4529FD112B1857D2C2C104A57C52E6C7ED5274873E43303238D19F21447CB45CE568E3CA4863BE289E5917E38B4AE2CA117AE7A45B29C345E8A463CDA4264877964033025B5A77E8824B928BD2305421B810732A1A2A96225CEF965E46369CDF15E0B6129B5AA061CB88688FC0E0DA00D71612A56085BE7D24F88B4C2E6B7125A58C253C8272B04A0DF60485147B85BC566FD34CE78A95A235916729778E4B521BA59B4187A34F1E5BC47C6AC83FB82428C30796B5629E712B8E3CEEBA7B32EC4A4B9E115576A6F74495A7210C68AF925C7CA5F0818390EC408757170C8090C4EC78FC312A1D9A4CBB4533A00C5ACF67C845E9B7831B5824B44A0D7B52E32BC1799B649497B4542970A50EC5A412594D50234CAC594EFD1B415B777CA759EC6C51197177DD183307313A3EA9B7976879B85703BB81ABA1AE3727E962C0AC0BA7F60CF0CD6C8E863A0C6F395B41935FFE6B56D7026A0655D2176BE3CD9537C227CF79243E09A5D04783ED170AF46ECC670B16A47803FFAC59744AC514D84AA544350510706AA408B91E1BBF4387D13E05FEEA35263446BC7D32648C8131D1B53D8DA5AE774634B85BC77742128BB984CE4341D1B05CFF711EE33AFF31B849C66791FD5259721BCCFC8A1836CC95C39540652A305C410E61A980EA5B720C472683811C7C596B635072FE7589C1700D72BC2A84106A296636107454A7A47C66A1234A3A3ABD91CC7B049738B6AB7D70F450C64DAAACF2CF9148C1806E2308F9C883875AB36FA20593559CEF890006EAAC701DB9D80A762C448AD14C4B8DCD22C2A4B26FF23912E30C1C4F0467762B39689BB9ECCA9AE56BC20C1347C6B4657D780D0A6C0ABE904C9FB8B7769C550A11DBF54BE2F2B4FE895B74002CE859228EEDB676FDC15FC52C5", + "A0679399205CB0B964E8E3576DAB64F21741009082B04A9A4881C91BE1CE9A68291087619B8922524222B1385454F59D355231F75071CDE1CC1F96B45425932406380FA54653F521C5A178EAE6AADAB4BDDBA968FA037A94688643961FBCEB633CF95C253668187784B09A7270993F6F12C96EF91CEC254CCDA64BB71582F20227DAC5BDFCD535DE1324520731747CB81CB96F13633DA59318119150A002A2417AB8963B51F4FCB4C3B34CA9964FD5D94E57B23ACBBACFC1267641DA2083E55F5CA34695C7A45A283B15365AB9DAB4118CB230EA06EB4A2FBF952F1342710ED07A2CF16E3145490A2A3A9FF308E0555E0015029E65AAE08024B2637DA6B0BEE9797536004F9C54A782FAB6EE67A8847143529C8564C37845F2C281664366205F51E8B577B19DAA25162F291E21CC498A5599A48C439457A2C98CAFE7E600718B282C45C58F04306AEB59E5D6AD6F3A3140903C6B8636EB2800C554C4753A3C981914D4C6C6914B56FDC26132FB281E944F27B4ABB3EB937CC49707E89EEDA1694DEC921B6A6D9C238681DC2F844096AF3BB25D61BB81D557478904B87511B5C2ACC402A9164807909376B800B8AC970648DDD5D61BCB3F79106FB3F881087B21E528BDC627A8A1FDBB3B1FF5D83954F7\nsk = 52D431D74363BA07B7EC47C2A5B98157F616B8C7B7D3E68CE3F2A31365BF4E21747203C5EDD758000A8C09D38A83457FB7B015BDB187E842B46CB9BFAB29A917435431184219339DF7CB81018A81B283814FF8B15E3A526AC35185BB45C7A865C45AB0CA1C7C5CAC9E35F753D378556A62C8AAC92F0FF59651C1ABB789970A32C69D153B14A687FC2A56B9E0C382BA4F907A0BEF79BDDFF781776ABD042044A1C84C4C80AB9CE9A76BFA6374E9CEE06081E3661A09CC3272331936CC85D6B2319CC7873227303191C36842B61013C0A41082B82034A2E1BFC8C47916859EDA53033D5427741510E842265AE36D530A19E5D7365127BCAB5B506321ABE2B69DE823B660B4699F8859DE76899098159C211CFFE51C7198CF1025BF9EE69236C913B16AAD84AA4C381A577B6C7A3403627B323F11EBC1F304747F47407DB9A8C9E4B866082597F28B6EC272AD2140A43A52188B061650BFFAE19761BA99CA724B71191B6DC5B16450CAC50B247415370D5B207701AAEC3A13CB477983F180388050175658CCB4714ACB603B6B3AEC340DC6C164FCB81331EC194C382FED024E0D962B056627A5B05A00B5511D78BADAA489F8BB3F3C5B484F9C1450708B89828EF24B815EB43A6B8B127BFA49ACACAFC46434987BCAF5F91A926140BD56504FB4525EE1921B63733DB2986DC133078CAA44518871BA12894A553BD024FB731A0AC44AB80199394A2385BC440515877CB69B73B0C847E40ADF238847608908C20BF7E1B86FA84781371D4CB52FCF2CC30306C8D98C679D4CB41EAA0EA8B395C08CAC6DF2348474A9504592ECD34A93B3262C9751E42193719B617355C59A25679D909A5E756C8DB03E3B174E1A063EDC733B9350B4F738618648BAEAEC5B76376D05329BE6E706E632BD61292755F361096CC4565573562053B4402C42C85B5299B1CCA0B9CFEC4605D63665F24561D8C1DCFA896D1C6D8918A3E6F2A8D4224FF97503D1EBCC8D5395F0A64D1454623890BB7AC6B87B29333096535118CD243C52E49CBC0945385E38781B9BCB6B220A66D96D426B9A1F4C4C4D0349CE2BC790732247EC5D98E43BCD37CD94B652BFCA7B988B063BB102EA0772DF0AAEC74C228261B4FA7A49F3B329F2C7C6D04C859C9816D5BA2AABB85E52DCAE066B9AF4D9951766041CC783DC672DDE42558F50473BB43BC1F93BC6EA7D33F46AC4999CD33698EEA603C7DA265AD713E48691C8B048B21134C9998DA19060CFB6AE31CB5A3B7387F2257FE94BB3EA4C963D01849FB021741395F1862085F031B6B05A7834551A6C8F0EF91397A29E12DB6D776B05C7F12C8B260CF128C02E48A9F403A487AC3A6C0888C5299414AAB1D7283252F62F465867A851BE9A82C9A79A25CFA727C632727C765D4C496D466942147A8A7B65AEC4BA84E4E2745671BCB207654B087A26F93AC77C82CF34A7C2F86FE8F48FF9A0B663D79BBA6B2B8908B32FC145E4F65C6A8A379A99C9E68A10C278130A1969E0CB708D0CA6FF1669D8756D1D530ADE051ABA3A07903B5D801456315057187758351588BED222785C9FE83A0FB4C59245CC2A72B309767348EEDB7C2097B457BBAC8AA96A67D785803744E149B3F131A8B1271ED42222F95622D63157B80A5E83D887C54C8F0303749D48A91E2C2F693ABDBB23246667B8108B921349A8A945A27172807D72992CD744626662B1C4AEC2567972B8452CEB75632BB81DD156EEC21AEB92124B417F828A7339B90774520DB6E890DF621C559BC58B7C66398676806B502313CED89800D9A26E1579B565A66E3132199BE13E6FE8001E36630143C96E53736E7672A7B2C0EE6AAF122BA1D49416C299795DFC47F7C5841134B429ECC73A974248642454760DA77B8A9D13A297C4399D2479F3E6B0E56462E113300AF202E745487ED781C98A8CF26C23ABEA748EB851AB09BEB51097EE06B124225070F83D80D5AF5F75695CC89FD42566946948ABDAA068032A7C31C35A1B29423B8AD4B7537AF1BB187C111D55576F9C382E391A56850231E36AC8F337086B81B0256A5D32880391732285A9092310BBE67701780CD77AA7E2D54CA2E03711988AC2FA27A9890B3720C783000BFD06224980199AD092DD515456F2CDB8C23BA190594E4C9A0DE60E2ECB483011C0BCB3612C12BE5E04521DC3892AD41CBBD769AA8B79CC9801866C87F7194D89FA56329100F63788904C7511533ECC5B8E7FE45659BBCEABA74402605A84F195925A71E3153827A5B417E0B994AC6355071AD98B1328F919D6F8C30EC7AD3366683AA3472132C801E59176711E2B20C251281311A6041AE71F96B9AB225A35E6273B5878BA6E362BB1AC896A557078495D1ED08264984357498D119706B7F4BB42A8700EAC4E80164E19C2263A425F4FD18F39C2B3E6D70904E7481A14030B40BEBC26BE4930A05B4236436698EC5A5591B88985159CFE5C55D7D84AFE7A9BC6999B1261355BF296BE8726B04A066138C714B229028B2DC5E5233CEC7ABE672A0F67572EE2A0B84B6F231A37BDAB5006A9CA184CBB82948C46B6882DF10A6BC12A8E637D3D437023B99197C207ACC2157C43396BE138EA06ADC0BAB4AA2ACA95D5989CB6B9F1987A58D52B0B460956452F6C00D08A188030BCAFF3E9CE91AB88DEA04547BAAFF1D64BFE3C2F5050A398CCCEF166A6FD82151738B227C04288E8BBDE4C45AA285AF2767D17B4A66529A06291757CB52EA67865AFA5390A02D0E93226EB200A03FC0E83203E08390AF0875F2331B8076259D9378DC77877652747774B85064B878B816CB30C6341C4529FD112B1857D2C2C104A57C52E6C7ED5274873E43303238D19F21447CB45CE568E3CA4863BE289E5917E38B4AE2CA117AE7A45B29C345E8A463CDA4264877964033025B5A77E8824B928BD2305421B810732A1A2A96225CEF965E46369CDF15E0B6129B5AA061CB88688FC0E0DA00D71612A56085BE7D24F88B4C2E6B7125A58C253C8272B04A0DF60485147B85BC566FD34CE78A95A235916729778E4B521BA59B4187A34F1E5BC47C6AC83FB82428C30796B5629E712B8E3CEEBA7B32EC4A4B9E115576A6F74495A7210C68AF925C7CA5F0818390EC408757170C8090C4EC78FC312A1D9A4CBB4533A00C5ACF67C845E9B7831B5824B44A0D7B52E32BC1799B649497B4542970A50EC5A412594D50234CAC594EFD1B415B777CA759EC6C51197177DD183307313A3EA9B7976879B85703BB81ABA1AE3727E962C0AC0BA7F60CF0CD6C8E863A0C6F395B41935FFE6B56D7026A0655D2176BE3CD9537C227CF79243E09A5D04783ED170AF46ECC670B16A47803FFAC59744AC514D84AA544350510706AA408B91E1BBF4387D13E05FEEA35263446BC7D32648C8131D1B53D8DA5AE774634B85BC77742128BB984CE4341D1B05CFF711EE33AFF31B849C66791FD5259721BCCFC8A1836CC95C39540652A305C410E61A980EA5B720C472683811C7C596B635072FE7589C1700D72BC2A84106A296636107454A7A47C66A1234A3A3ABD91CC7B049738B6AB7D70F450C64DAAACF2CF9148C1806E2308F9C883875AB36FA20593559CEF890006EAAC701DB9D80A762C448AD14C4B8DCD22C2A4B26FF23912E30C1C4F0467762B39689BB9ECCA9AE56BC20C1347C6B4657D780D0A6C0ABE904C9FB8B7769C550A11DBF54BE2F2B4FE895B74002CE859228EEDB676FDC15FC52C5A0679399205CB0B964E8E3576DAB64F21741009082B04A9A4881C91BE1CE9A68291087619B8922524222B1385454F59D355231F75071CDE1CC1F96B45425932406380FA54653F521C5A178EAE6AADAB4BDDBA968FA037A94688643961FBCEB633CF95C253668187784B09A7270993F6F12C96EF91CEC254CCDA64BB71582F20227DAC5BDFCD535DE1324520731747CB81CB96F13633DA59318119150A002A2417AB8963B51F4FCB4C3B34CA9964FD5D94E57B23ACBBACFC1267641DA2083E55F5CA34695C7A45A283B15365AB9DAB4118CB230EA06EB4A2FBF952F1342710ED07A2CF16E3145490A2A3A9FF308E0555E0015029E65AAE08024B2637DA6B0BEE9797536004F9C54A782FAB6EE67A8847143529C8564C37845F2C281664366205F51E8B577B19DAA25162F291E21CC498A5599A48C439457A2C98CAFE7E600718B282C45C58F04306AEB59E5D6AD6F3A3140903C6B8636EB2800C554C4753A3C981914D4C6C6914B56FDC26132FB281E944F27B4ABB3EB937CC49707E89EEDA1694DEC921B6A6D9C238681DC2F844096AF3BB25D61BB81D557478904B87511B5C2ACC402A9164807909376B800B8AC970648DDD5D61BCB3F79106FB3F881087B21E528BDC627A8A1FDBB3B1FF5D83954F7EF07B1F4886B895A3246241DDC084379EEB0F0ED84BDCD318FE72C9B546413BECE71AC90659FF2DD31B35C165D3929CFA5E94407A5A798C568E6098F631923EF\nencap_coins = 59BD98530C55222A8294517068B7FD7E3210FCC2BDF400F4E584BC209AFA44D8\nct = F283F53A5A01BFBF28C49A825E3F059B03E292C806C8F8155C2F95D18B20D8262851D0B9A9C1FB6E02C534C5C87AF471FD44C45B59128ABEAF703163F08E066701642989F86F1D6FF6891DD28C7D995064BC3BA64F0F213F3A00B3ECAA84A3DF5D6E76228AF55938500989A290E71965F24F6A051E78016F81B65B78D3E91D09D19BBB4A6A65F60639094AD5793FE2EF8417C60F1E4E3F12A80F97B870A2BF2F8A09B37F8C07FFC32655633F3D16FF8E6809EA7872B910313A5815A58317A0D3CFA42366981B0551096E76FFB21B9F2FCCF4C550C523792E66544A72E14594F4F567BD337D588BA6F5320FE36F8544ABC400F634572CFDDC108CCA6429CD7479DD601E345E40FCDB9361BD4A80F263E5E10599B9C096B5BC212C4244E0EB07AF05BF66175172DD7E69D19EB7FB680139DFF17680A7F668C28EDE0B7D91B64A64BE7056D7F9194778D78690EA4CC47DAE78A701A683D995E1CE6232AD6A66875C2A367AA590CB7B56FFE7A1ABFB14DBF413AC169E169BC519E13D8E0DF12DD6A2DCCD35AA10116B8E89FE22001BB9FF242CC8D34341AE32E5006281B4F82295A5F41AD", + "B12D1B0A08FF1D4692CBA1DD5408B8A66BC1E8165A041408F803E2F9E06D6547F150D26A0ED1DE932EF09A000610CB10A062EAF58DBD3198615D22E4F3A882B30F9E17E7009DD53AB7D5FC1BA2B3801659BB84B5B2E95FE7A6C3EF842C45BE9C84491D9D83477CCB8A5C375619A1F3EFBACA902C613BA2A287A320710A9537694F1CE6B7DA1FF36DF375F1C9F64A439582915F8ED156F231CCFA3C68115E58D861407D4A6ACE676637E2337AC9CA3E512A96EA612635AB06DDA303B85E6EB0F538B34640373DB12E9347D0CC8A1E2487802262DB66082CB54AAA934467B255180D6B2CF12D10FD5F015E20822138F1F20D58BDA320B2E420D8BCE24AA095875580F26A9D1D4FC4C625EB2939B13D6612A0BC27A48B063D323C042FC38DEFB3B7709F36ED684F479971859E3B4BE25979DC756D303F0A5914DF62484EDEFDA8194B124F085579DF512396490BD25C72B830EAD31DA809956689C0E550E78C00F25B8AD7D7AEAC222D7DFFF1AA312D78B468CE29764D901970F7034A79472916FEF2B5AD858CB65D7BCAB50961EC84EB62D64B4800CBD1678D43DBA103C022C26459CA5D27C12B8AB859006B016DECB0051E665D08B06E1D94DE935822D4ABF681D7C85FCAABC5816AD7F2F9F41BA87EF209E2C60CAEEA0299656C1A4C4A84C40C5AD70E7FB214083E65434BEBE4C4E823CD509E26C38A66AC0FDF45944668D03EE64AF4A7AD7D9096415AF3C1CFBDAE5D91E6668330CD82BFAD4B7EE6675E2CB52DD9843F99EE000062990E5452F4C343BB85B346F85E238BEACD3705D959C832F1DD90A6681DFD35E14DA4317CE6C347579156AFD6075A28E0CC311B76032F4A74E9848C6BA0F3E6BAD462DD952A11942575D6044FBBBEA7406D1712FBF58050E578CA83E9AB8ED9E21D2B14D8CA0AE5489EF632264D9AE8F70A887B15B839EBA1B906798626D75323E4EC9F0C9A589C24AF99BE114684A70136CDE28420635B9EDD51B0891AB64297153D98C8515AADABDF0B75EAE331AE8F03C87182D6A80E70EF7D11C0902F5A511994BE78EFF57576990D7424575296131A105B2A89593916107592F71A6684A032BE61FD43E485E41C21090CA3E98CDD0125C6519F0238196BBA4CD0081572D277722C49A274E989317CC3D0CF717F17C63C70F9EF51ACD0B0F518DB16DC37216A62C6CE504607D3D967484B61357086938741260E6BD6FE97C215A8AD2EBF3A9441333D5095844ABB199CD3C30CE3FCAA058C398E3189EF07EED44EF9202E3A328A0F4F0F1E50003ED28CA1C6761D34D7E298E5DDA2AE307296E8FAE072BBD59D35ECC33C4ED1F2F3AE2D4929C4514E09899BA511C74263F68A1B704186389DF61E27759B2EB04B3BAE35FDE4FAAFAF143EC920E9A97821E104DEFBC0171328B0AEFAE32885365B21AE4B3E2B9111B0B474EE6EA31C9763BF181BB000575C469F0938A3E585C0982B4D67E175A49618C4750116A017F85AA0987B27315D6B69980501CCF3D0567A8BA34281245BCB0205A5C71DB4B8695E319525CB1A6E52BB7095430F611E7729720DF87170594A2899D76209475E9256453DC2D6AA5938CE6B23F8A66C5DEFB73AE9E59DCE236908D818DB871\nss = CF5B4C0396F19307E31690591F9B1DDC21BE6E4CC6251B281B93663866A11A5D\n\ncount = 80\nkeypair_coins = C08BA2EF8C3A0A043AFAD931652D7A19E6E8CB670F840DE5F1FA03309B2CA9EC4248FF45452BCE5777B08108E059234029D3309CBC2BCAAD8EBB37DCF27832F2\npk = 88B1B22E1B2CB01B18957737B65A63DBACC6828418150978215B85703586C1060740D56B50B40F806A7D2B83890D2996CDDA967654506E096A9E59B69378152F4B8B2C1050A9E2BC9E20B513813DB6F6B42701BA8BA3A03E80362C7904F240A49625435C00D040648262B44D881882DE55CB3BC1968F5B3FE78BBEC040A50972237800C378EB9CA8735F5502AC220988675B99BA17414A077D8B9C79E468A7E3A7C9F65B36D41B9C88509DC25276FAC066199689FD29C58A5B702B1B9F7E2C30492A9BEBF99A300C57D3863365236AF8D514BE837E0DE28079E22B3F6C9991504C73BC2603161F8836A8814095AC527E0969C00DEA613DE63B05033B303C5937815B02EBC3466B5BF287265852665AFA4D3DC7622650A0CA7438D896404E5B2A09220315BBBD5BE37AE3A61953473E2BE9B39CD71C072A97DB3AA7546A9EBFC651500633A30919FE41A435CB5DD9B247192B233B676D2432132BD4CCE04C30AF99344E20AEB8E9B6545B4E9C9BB211E5ADD2071911DCBFDEC072CFB76FD6366A74AA66C1831E1B6AC6DEF02D703BC9A9011480032E0B1A8E668CC3BBB46510B993958A455B25C025F19677F1C03828335B85868DC99C81D3B75D0042C3735CFC063B68630C00680DCBF561FE07BA4202B1045A2EACA9033DDBC2F3E620CFF6158C904666927D61D4702C84AAB51C60A748ACB573704A5B422057AC3933233DCC6C6609CEF96993CA951F89E10B68217D4A59839F261FAC87375A38314F4B7CCAF5321A305FF7137E4207A9DB03AC08370DD903A634B8951FD6C93BEC205434AE6FC066EB18A4A1102297ABB8CBA62980340B2D643BE20C067DB031AA886282B03DFF2870FFC455CF78A1657AA19E958DF64B21CD9467A1306AD40195DB3A9398C86C5E4111CC40816A860909EA742F8B14CB2309860B5D300253FE6149B236AA8FF44DC8D79B852888A9B2988644AF45C030F5A69E93A44BDB454D79C36F2A1B13DB7B395CD7B7DA192DAC99B4D5560FCBD96312483511BC8D9E738BBD4CB5E708CC0A02056A292180D06D0B0983A2748DBABAA88AD144AA1028EDDA8DEA7704908440DD9A272FEB8138146E44E574BE538183A391225BCAF9475350939F5B14AC75336DF086453B69BE85B350F829ABDA504AEFB2389322AF5DF12CFD399CD19B52CD8850510C37E6C087AC060E468C97FA97857E78712C17696FFBCDA6F13248733CC03C4F08B92000590D79D74F1AD2336B9368572230EE472CC3D28A03A7547B5C7C1E63809C9AAAF783569109522075B9C979C444929376021B7FA06F5ACC940F2984B118164AB204EF2BA59DE476E0BA22169888E64717E8635E7A30BE99441814B5141A658BBE25641D3557F07B33D3027AD1A3C51FA497DCB6BEDE058C18B6ADF41374CA1984A0F43A6D25BA1B162AE5FB9693607BC2FB279BA5B3BD19408AC8CA13E8C80F2139BF410E3065A0BE22800C0305966832899753D342694CE56483A45F0D56848484CD1B9C949C192658E14E7C6ABBAA51CB45441AF9E46BAC064376509D533718678A614C1B9E99796C0D4C8AC6AB134C4AA79A1C22692183C9F2AF94836A52930680C974355104A05C0CD3A5C34D6A7B524B1DFFE1459754066AB41A0B7315F302955BA23FD2B4588BB58048E981B0CB1DF247874699021368277127912848CD65229C59617A7783542B289456337DD572C8E703AB1F22AF68C962C9387E92D754027619B7F9ACCF233A10AC294EE15C3928934EE0B342F39F3AC5299CA681F5C569A2D87429BC7B4C492A9A09A48E17534E7A74023C0601E92BB13AB2F6918A44066E58433C2CD811EC5A144867C666B390841712D0659528FC76FC2CA17D3656B4B0673F682BD37980897B02D3608ECBB27B76AC848D55658F2606FB761154B0C516D0787909A59B35BB73E43988CA7459C22DA04CB91C784F47E39152293679B41D13EA4908836735C3A28768509B2C6DC3D220C3DB729437BEA79727AE8156E2798AB7E9ABEF81437DE27E752188DD22913E477230549F564A353FE17D513A72ADF132EB0B0F3905CACE01B05A073498C56221A4B9941A0223D4ABADC87F83B6AA153920AE58CEDB7AA5D4EBB6F4B34570079D6D1354AFD1C30EFB1AEA9C25EEB07CB56417C134CD45441ED49182651AA5DF5B6C82EA6A76CB62D3AD7357CC617D597A3DBBDF515F6852D71220768859D599BBAA\nsk = 28BA2F24DB8E2A5B21092964F1871E97E10F2727C8B27916A5068EDD27670D26B91A93332157AC686205E23616EB0271B081B51923C5996743CC114F3AD310CD6791AEB05F77960991513EC655533921A8D14CB2589399EBF18F7BA89BB7D6CD2D7336ECE1B7B63B98F26A49D356578CE7275EE67677D1482E1BB3D85B88325BAE0A00CFD1288C34078D73965442B7B140705F0FB76EE3D0921112C400C7A4D1337D6A3A8CDFF9AF05C64C079C64DD143F1FD56C28096313E82D51836A2DC1B0F37A2E00545F802B417A9406E55420B4D71FBC2210D05A771CDC164AD50932EA40A876051828236153B4E1715EDB1453045721E89A60ACD0066227704B8AB991E8A06812226BC59943C0814C847A1865C19DF4B7FA13BA3EF95543E724EF854CCB28BC1DB49B75C1ACA3649F848BC6F32C139AA79197543C628238ADB755F4DA6BD67130772B4790B28C9F1544A4E9860E875E68C1CDD9CC0CF17451434C7C53F3A9BE39849720B1B80A836BA4C531D49BAD16077E90203C9120C23239CEA972454B08A5F10812443CA75B913DF98DBE29C3312157E156311F67354D414AA041833F8454ACA5B3898B3572E819FB2C4CADA43C9C5191D6F7AED8F310CF77CCAF0C478686952E71A8A8173D0C223B04462B96C04EA7B218A13519B90CBE3BE8C32B276F90D349ACBB6362706DCD54AAD0497A058AB0138A8E57D514D5D431043184BD1A07B77C3299BA6C7205938ECA8403F31A1C605A942B73775A1AC11C40D81988E69C15079719AA769B5F618052D5290D84714CA57418366C15B74DA4E98DF96ABDD19884EC1703F7978C4DD72B48528789D7148F16C23EF8BCD1F353CC4A76E7C238AEB1035424300F529ACD46926874190556133021A6A9283DDFE02EDADB7DE23A4D141B0787539B68110B4882A51F95403865BECEA06E2D7A1C1F534FA3366BC1AB387EB867477B92F00C0D09615BFCC1138137CEDE4098AD57894FF74982D71BA2ECA6A0F502CDC9C89BC6A44BD84FD8B62BB5D84332FAA830E2A732259945028D2830A8AA866F92C24E46D164C4F4658791C11F0703D906A82546C75F81285C24597BBA4B1BE3972F069D6B383D61CC32B9B66604B7CDC4BB39058C74CE770F04F758E6124543E13D2365A915802F75E90997B10B15E650AEE33A291C87030517B6C29CF10670D2DC5C8889AAB7518B4DC86D86E25C52ACC4DB175A5957118F983C3A4443B33803A3161AB24004B7A789778C8414A8AA8C819468EBC28B68AFE5333F7E666D44B5A961533280B0021BD3B24E2AA51BA58F2F45767A5722E918B1204656A2B44CE628A3A84125F918999A6311CB3569431C7B0D6B58ADAB6A30F9473B3747E33C7A2A9BAF87B709353A77743949277147928273F112B5E618167A5715157B49CED69A2492203A08730ED07B7AA14BAD136CFA969DFA68C28AF40B9763872ED1B05D4161489BCE1F473D4CC067A86258F6B664D2436D4856166CC60467887F9B97439F607D336114E46B2A2964C228A18EB532CC4C6813DFB841E60C3BAA59978234A06FC95AAAEABEC0123230AC33BDC48A4452403842BD6158C668F28F20BB5501984C5D3992594A9238E03798D178702B86973350DC21617AAB9B4466903D4914D37A2EC3D936C162933505B7F45C3A26FCB3B32BC3DA91AAD5D7A8AF045252202312D98A7877935CD6B8C9499CE722C6566BC21FD427F1902E6BD190C8889824B35B79268E4B2C4AFDA48B0C98856A097BFF3C4523BC02739349AAC7B8CD28", + "6798CB919BB550575B44BA40226CB323F83886E1E164EFB1AB648A1A738747E799327F58630134BEB48A187FA5694279BF644997448B57F909292807C441B8061F8A4C1D1BBF8C55836EAB38FA483B66A652C556191E9C959C45A4175244B851B294E38134284F771B81CC72BEE2BC188D58053C7589394B49B5B33CBE12993549C2AC05BE0DDA9B63D97E45E738EB2738C59224DB502A0FE3AA37D113CD3393419C850B77B4B1393884DC9EF3D189EF3499372C8851F290F928A9C05A0A210926CC1B5728115771E55FA14C23AC4B1E9F507B02164F2234050F06896BA969347B3048D42892600E7DBA3B8DA0CFF0D1707C0185F9B16FCA3921C2B648E130BFFAE62F0FEA48AE91588A15C064A9CFB0BC862DC9CA88B1B22E1B2CB01B18957737B65A63DBACC6828418150978215B85703586C1060740D56B50B40F806A7D2B83890D2996CDDA967654506E096A9E59B69378152F4B8B2C1050A9E2BC9E20B513813DB6F6B42701BA8BA3A03E80362C7904F240A49625435C00D040648262B44D881882DE55CB3BC1968F5B3FE78BBEC040A50972237800C378EB9CA8735F5502AC220988675B99BA17414A077D8B9C79E468A7E3A7C9F65B36D41B9C88509DC25276FAC066199689FD29C58A5B702B1B9F7E2C30492A9BEBF99A300C57D3863365236AF8D514BE837E0DE28079E22B3F6C9991504C73BC2603161F8836A8814095AC527E0969C00DEA613DE63B05033B303C5937815B02EBC3466B5BF287265852665AFA4D3DC7622650A0CA7438D896404E5B2A09220315BBBD5BE37AE3A61953473E2BE9B39CD71C072A97DB3AA7546A9EBFC651500633A30919FE41A435CB5DD9B247192B233B676D2432132BD4CCE04C30AF99344E20AEB8E9B6545B4E9C9BB211E5ADD2071911DCBFDEC072CFB76FD6366A74AA66C1831E1B6AC6DEF02D703BC9A9011480032E0B1A8E668CC3BBB46510B993958A455B25C025F19677F1C03828335B85868DC99C81D3B75D0042C3735CFC063B68630C00680DCBF561FE07BA4202B1045A2EACA9033DDBC2F3E620CFF6158C904666927D61D4702C84AAB51C60A748ACB573704A5B422057AC3933233DCC6C6609CEF96993CA951F89E10B68217D4A59839F261FAC87375A38314F4B7CCAF5321A305FF7137E4207A9DB03AC08370DD903A634B8951FD6C93BEC205434AE6FC066EB18A4A1102297ABB8CBA62980340B2D643BE20C067DB031AA886282B03DFF2870FFC455CF78A1657AA19E958DF64B21CD9467A1306AD40195DB3A9398C86C5E4111CC40816A860909EA742F8B14CB2309860B5D300253FE6149B236AA8FF44DC8D79B852888A9B2988644AF45C030F5A69E93A44BDB454D79C36F2A1B13DB7B395CD7B7DA192DAC99B4D5560FCBD96312483511BC8D9E738BBD4CB5E708CC0A02056A292180D06D0B0983A2748DBABAA88AD144AA1028EDDA8DEA7704908440DD9A272FEB8138146E44E574BE538183A391225BCAF9475350939F5B14AC75336DF086453B69BE85B350F829ABDA504AEFB2389322AF5DF12CFD399CD19B52CD8850510C37E6C087AC060E468C97FA97857E78712C17696FFBCDA6F13248733CC03C4F08B92000590D79D74F1AD2336B9368572230EE472CC3D28A03A7547B5C7C1E63809C9AAAF783569109522075B9C979C444929376021B7FA06F5ACC940F2984B118164AB204EF2BA59DE476E0BA22169888E64717E8635E7A30BE99441814B5141A658BBE25641D3557F07B33D3027AD1A3C51FA497DCB6BEDE058C18B6ADF41374CA1984A0F43A6D25BA1B162AE5FB9693607BC2FB279BA5B3BD19408AC8CA13E8C80F2139BF410E3065A0BE22800C0305966832899753D342694CE56483A45F0D56848484CD1B9C949C192658E14E7C6ABBAA51CB45441AF9E46BAC064376509D533718678A614C1B9E99796C0D4C8AC6AB134C4AA79A1C22692183C9F2AF94836A52930680C974355104A05C0CD3A5C34D6A7B524B1DFFE1459754066AB41A0B7315F302955BA23FD2B4588BB58048E981B0CB1DF247874699021368277127912848CD65229C59617A7783542B289456337DD572C8E703AB1F22AF68C962C9387E92D754027619B7F9ACCF233A10AC294EE15C3928934EE0B342F39F3AC5299CA681F5C569A2D87429BC7B4C492A9A09A48E17534E7A74023C0601E92BB13AB2F6918A44066E58433C2CD811EC5A144867C666B390841712D0659528FC76FC2CA17D3656B4B0673F682BD37980897B02D3608ECBB27B76AC848D55658F2606FB761154B0C516D0787909A59B35BB73E43988CA7459C22DA04CB91C784F47E39152293679B41D13EA4908836735C3A28768509B2C6DC3D220C3DB729437BEA79727AE8156E2798AB7E9ABEF81437DE27E752188DD22913E477230549F564A353FE17D513A72ADF132EB0B0F3905CACE01B05A073498C56221A4B9941A0223D4ABADC87F83B6AA153920AE58CEDB7AA5D4EBB6F4B34570079D6D1354AFD1C30EFB1AEA9C25EEB07CB56417C134CD45441ED49182651AA5DF5B6C82EA6A76CB62D3AD7357CC617D597A3DBBDF515F6852D71220768859D599BBAA1A2D9EA0D2280249D9D756975C6979A8770BF4B5F6ADDBD76D045A816BC1BE384248FF45452BCE5777B08108E059234029D3309CBC2BCAAD8EBB37DCF27832F2\nencap_coins = C11E2FCD6CC56977006F5DFA825271C6FD49069A747EB36C1765F5D5A22B38B3\nct = FE3172F16CC8839B30C9B78782CB27E618C2194B4447C9A24A0FB79EBFA14E18397E615D47DD21AF3CDF1D87C8C0A8D66E8E3C9444BA537AEB246AA32F014FFBFAC2370A6D5E90E97140C2930E062E40684FBDBDE90E5A54C288DE92E269E75252873122C9088E8C48F251EDF73977149C3FCC9ACC8AA1D590A3B1A00D52DA896DEBCA22897E908083F530BE310F747D42E4A164FB0092C7C85394D87FF7ED1ED6C4A1D90F842D0BF8A638B113AE728964D27E5EF1FAF35B6B3DA2C0AB7980994B590CC3A93E3702B27CE4039B8E9BF0315F88E591F0144F38FC158261A1D46528A7EDEB144C3423F4DE4FD09C14BF5FA80A0BAB552A5823C326F6810FE6ECE6E8AEA6C4B28B31C0BF4FBEE7A0D048754E4D71E38F2FEC636B8F7A305215E614656169812E9F5363C2C9AC44105E7437F598D75CC54968116F511BF97422C45A7196823595A5A41CCCD2433722B1EA77594F38A24D1DD28DBCF97DC0FF0694C83B173379EC87A13711768FF4A65118DF61C6754A89C7FA62249DB7DCA45A2941AE9019B9273BA9A92AD544649742AE9DE6C06886EB4538695F9EE93124C43323EC7F82CEAA48CE3D4CB8B58EEDBE67FB765BD99E8FA8858C4431EBD475F320E8434B87EDB2681DCEE36042B5336AE6974D68EBA5FD81D67360B04E1A8194A5A7298607F3A421BE05E8716E28EA1333D609546F94C9985A8A20C0FDA57B2A5AEA64E280EB9D715C536A61498B3A978B63DE0C01C74BA39A45CD7D0B8EB6739CCA632CF54600B858025AD2B9E7C54ED0C48F1CE95FD2B1F6332EC45B58CD918F54C0CB9F3EE4372825E1FD101D49EA33357F94EFD866BCC3DCD40FF174D74C699FE123670802E4629034A605DCB9EDD978DF7147EE6E7F7C154F0C6DD932D362DF5FDA00A5083CF5BC5449DA7B9DC2BA41012405DBA9FEF6AEB9BE9C003CBC43A19CD9BDFB1767078D998E7895EEA549936621ABC96347AB26E11EE7DAB90289642B757C64EDE91DC4EA0355A4B4A64BF7DC520C81424DD4876DC9C429A6220A1124CF928A0E627C00612E9D06B2221CD02E19BEA788C29E089CACCD7D86D5FE5C2AA7DA09C8885D3EF642135C587AE2AF6C224F16FE0A65A6C80C542B8AB52A229F29E6E9F80DC3696467903065B7997535E51B183E24B2BC78CB0AB3F41AB8E04F57EC96A80A5D755A1E64DACF0F0BF47083E7DC1A94414687CDCF8FBA1137EAC83B19405887C988A8064CA65CF0C774BCFFD39ED486B29D9FBC3AAD90466EBC5FC0420F0790579817A082EA4B0F5F52B59DF040BD2D5CA807D0A93F9229026D9AB6C3615B19C4BCF16A3988D2AF73ADDB963BB7B25A3DAF0FD821468D3EEDC5222D8E4E693B342EA570BBEF9446A47AA4EF6C47A82B86D39D13D46B499DEA67FC88E62B7D6FDF06BB63D526D679411632C18B6FFCE260FF5CA7C9461CD3DF606DDDD493008A99F21769C1DADA616FDF0FEA78219B50F2587FB641B92BC495A638C32F5041D5DB52B638FB3FEB861F7C3E714D1622B39F64A534FE70398C05D7B8149FDC22D3410CAC8660C6A09B59BB4638F501465C72C90876404C5AFBC34CCF2C466EA83F9D8E6A088A5F0256072242050366DCFD08504928C58DB2BEA6D3A4D393FC63E96CF5A3C57FD6467F9252FF9DC8F3F852851A1545A96870B3E22446C505E2FED47C93AAB54500A9D9D93D0C27575C8F4ACE60870B9C633EAEABD23EBCD1406F99E212FAF04B1D210E1D5E9833B7EA68CF612F022D7BD722A9E7928E3335704224B730E0EC838B9F2E3960BE3CC897BD64A6A43CEDF80D28FDB0E20DDDBA00E4B58C95CDA844F9CF52F85E67F73826CA27499780130BD25A45924F2DA883B61611D872408A4BC1306CAF8FEC2DA4D67B960828703AC6D19DCB65AC56C160EE57A83F26079F0270D30B479E4BC26EFDAEF883E0A9C8DB5C23C445F33B93C6B22F16F8B434E129536E39E0092594FDABC05E58EAB33F0E447B0A3FA7AD13F1D081BA5ED61F1617479B6581D1F9465D41D02A70248B09F39912A3E5A9FC5C63AFAAE226F55C1962BAAD75077C6A286AB67C1AA7AE069BF9864AF1190268396D159AA3DDF89EAB07C73F97A391F7EBF8EB2DA3A0AD40D92E933EDBF994878BA0FD1367C4943ACDCDE0E04F8002EAAD3029026247CB5A34A456B7A95A5AE98838D852C78FEC718D4B318F8D80A1FED2439BEA715DA4273C872473BEBCB3\nss = A8343D2E54358038F124102641D24F583D74A960A3BC2CE8563A4270FBCEA133\n\ncount = 81\nkeypair_coins = 0E3B30E102D707538C2671060F603BB0B8A014103F132D63B09ECE07E4A4C75B7B129A56B51BE635054CAB9E84F2DEF59A3F8168E301EA2BE388C45B8CB022EC\npk = B3F044AE2026D8B17F397AA66707C6846531CD5B3DB17CBD072BC4E2747EFBD5749A52C8BFA2327DB1A0258829BF7BBE4F59B1A6D8B8D3954DB41BB4A20B0D660C21D6202759601630854EE75CC29454AB1A3469BFFA989076301132AADEC892978B3E15082BF84897238AC6432ABBFC59A21C43C0BEFB55E1B582D26344A6A7B507F31BC1495CE2D5943466996A0691D80405CC21B060568F55A18FEC917106D7277793089E147D759988569820E0254EE7896E9797612C655E71371178A14B37B3A2C2B18BDB952A5295BDD4385C190B3D61136F128BA74C2C57612708F900C144093AE460C86C7A2F0B1903FD9A889DD7874F6543A2E112219869819C35C055813A394333AC6C9C860AD7505F8AA241046A984403B798E3211469CD1D8A57455702B2816F0B2B3EC60B273B102559099528D306FF23BE250B50226B497B60B7540813F5B0C4A11732A6B9583A21B3DD2028E79A82EA0144EF34C32E4392A11241748351046B9454A50E9F90739D12A96A928E75806F24004B4A926F0E8769F90A921C4323D7FB7CC74C2E33248C30B774B795CEA60C47EC52A01AE84247E53243542EBD8ABC24A183E2D72247628269E108A5E93F11A45CA9561E8FABBF85AA61C6BACC2493AA93A38BB7", + "2421E8913FCC635EA0F2AE17BA41E43C5AF3C83382F0667B6113591B6AF80950D5074A3F8C4FC2E550CA9743DFBC4C1F797543FA784AD8687DA8A643476FCAE931C1C7477F063CC7C224DFE3BEF7E0AFDEBB5F91B2532BB867AB3C08CFDB6A64BA1876285BF6463B9A241512919C9B72669ED252FAA0AEEFBB963076592F9884B5E60E42C2008EFC08BCD1CC2BF31025C386CDF99B49283D6D7B0A24693618D2A2FAC3B7ACC60EC970B6D357B199FB6AF3039EB6601BD57506CF8292D3181EFF61CD380C525086962B58BFE53C3C0844431347A2F2112776818FA3EC2937B4B3B21C52BE816637C38A68AA5373858E16C18134093311292814101CC2940B7F61953CF5971FB5CCAE59ADA4373DBF9C149869A0833BCB97D9BC68D6581CFB803264599A9CB1CAB10A15178F6CB23DDCE70D060B0ECC7A0FEEFA35B6DB9800567417775E1DF95EBD32A4E67616381B48595933F301408E2CC1951A095994428EA01883B4A8A8D780CF960D69A18425258EAF63AB2F2752AA411856B78DFD60C2DA74C35F517718C3B117A98E968A72C3150105CA44FB02B14C439ABB81ADF5A94E2E5B7A8971848C4A9156E1445F41CBBE2C7C18785BAAAAC24BB87936EBCC8EF6CA4A951D1DE8C2E6C5658034C1FDE4B75DD1A176824298A669B0C4355AAC3E201380C42CCA5060192D06606E8430E135C50997579CD756DA40336541A781E6702C0041C696270B65A92D531E964A1E953555628929F7FB59A7C2A5CFBB90B4F04B129CC011F7ABA0942247908B22267DF9333E8C762143C4B68909694DE674CA14C7538604A7741FBD9004D861A04F63B74106729C6759718125CBDC40FFCC60C4AA30C7DA001E30C889276D48B1329AC033D5365D76C85893DA0E15590BCC064F0803CAD5E80355FA56974AC577DB713862545AA43747F9456B822E74E56E3A825E0F6259A3551565215DCAF4C9CE568C25D9C9C7471806210969146BB64C7AF9A03EC276AB4AB10E8DC227AB491473F09718C4A046E84889D7C40F0BD0878675DEEA6C8E071B0E819F77147631939C035A8F9A4644B3DC35C3DC328C1C0CC6CC537AF884D7C6000DBA9E1E3062C2D43A30EBA1873409422A5F664174D2F536E8420634558F4D427D3B8B48B96845B0F1847208C374F31D419988E9434A9F626DA5258C00654B6789122DE71788D6B259A29EABF83A42621B1BCC1924A79D3FB59AE6475AE6714296BA1528F30A66C2597ED308A3973A501CAE96E1779813195805B12B0B008090ACAFEB591AF94EA6394A2AC955FA1B5D8DC388498C6C8B1829428A838AB73EAB19C6CE4A409FC782FC399FCADB90C9A7A86F9799A3DB0273551877522FAEF812D452B6444C4ECF3B9A9670810354B5BD57BA43AA5C4F271A03B2800F5290650A08AE83061F331489265B2F2A3AB1F4B3159103773B7806157E26EC1892E2C3D121A601777834B52939A658531646E713222943A0DECB5B82BAA4BAC41F1CB2AEB3076A1A20A382698CE3919ED717408E0934FDE42A5E1CBF04C80F37D7DFC7EB53A785194C4A1232E61C37A5\nsk = 2F766AD78A0112B8CD4BF28DD0F589873553BF114F19C2719F61A32CBC85C71975B911237BC6AA6ACB32B613CAC9DC80C85493FAF63C3E337C274542AB4729D02ABC5DC07309032C7112540522575D663C89714AA7A456410144D7C2BC1041C03D5A56E08CC7E5663C01F52E5077288BB8CBFBA21B4A8A19C055691E05C22F94C62C3CC2B6A9C155E2A4EB2BB9D95B8C9D5A6394D05AF87B038C210D9FAA266CF07088B3CC7AB56FF3366FBD595B3C790B5497B34B94A72D8153FA13B40BE96B51315CA4D22BE3828C3556843545C47B0254266A802A44BEE6E5A19A446472322C6AAA4CF47218EE3C99247564C552C93ED589EA8BB2C637BCF7277D5B5058DD80342815B2E8864B4C330920A82EC76B4A7BB893E0D18278F47F84743223A67F2983AC8C4A1845A61259670B02D6053CA181BA4C1BCCA05B7AF2A27C59C1E4E38DA723B787AA2F36C71E3BE05039183BFFEA6AB3BC779DE2273326B327D42517B6C6ED8C7F96C6330D4C39E3D2A7B81A538693329ABBBB5947B068C3CF7B45C173C1BA9964C86ED91D0BF64E209C1910C218434311A50A2128D52754148159891E00475654AB30B9693AD507B2E19ACB7FE6B14F27C09C6B2570B861926683A285014631C2D7CB8C0C10A25D073D3C067AB819B9DC27971825AE21CC2E50D377E3396F0266A5BA598BBE9A868B0B6CAD2CA3A8CB503778967BB930D90795719B237238C1F831007C690186949C600C6F587AC0D81C8334C57FE0C59DB3E2815D63C26C620FDD75836261644D99327A334EA5A40571F0CDA39CA716D2BB894A50BC4CC84D6621B60509DAC77ECAA39B9779A3696749CE83933EB70C1E85BB2DC3421AE9A0EF40AC2D83A1FAC16C6DCCB0AA16AFF9A94BB6D125665C3001B845E7F20E7C90A3DB636950B0836BA008DA33500FE47FD4A81DF0E268C62974BAD02A6D3B2267F917E2046DF3C1883187683F030A28A129902083CE26730438B0DC0042998C9472F5A7FDBA371D74481DBCB9BC4CB281E7CC1DC4455823AE1AB8B233E83324544913DC261B6274464B656BCB645F87B0CF4512AF443959E67C47D679020C2905D45E21DA586EE8291085A8A432AC6AFAAC594081EC298DC13175779B8635FC8EAE58982258759999A57B704A5B040245D282A9B6C9CBCA838399523F26695F60389AD42F6512783AE65A0C25B7258674398839AF28866671329109A58E579C026549F0B7041DBB6623665FBC9A2EDE41C0436635325912366AB1364B5A3162C4B8C2A14480AA6BF165588B8D26EA968291CABF66A4E26722F87977DAB7807A2C65A26A9CBD339BAC0B24E6B46E0A8082BE95BB7A41B1B8B670ED3105EAF994A06A6414E9ABE2A1B608C29C94B846012A0FCBD6959ED411D8D0C70A32559C68C74D94B2A9707B9D9755E3C69AC40782E97A1F904A32DA824C7459B59B174A9FBB6B41947F47B3361D5558D831B2B444818FFA4C17F4BFCF8B9C7CE451F4CA99884C13F85C24D3CC4740D2567A54AB0583A175759FD7E197F3000A39717BFD9C768248518D50791CD84DBA795E85388DCA21507BC669FF0B906BF515F38C04DC838D0D1357377B1601887AE1B0A0C4490D38A871910C695C50008E5A5A0F4CBAF8497A56F6707F970B77962E13A5C09D8A6EEA50840413BA51E22AF3666098F23C12A9A6FF6785975BA75C6823E5980B78CB3E5D20B7EFB9307468BF3B06CBDAB62F0C4CA7157BB22E9595A4288E16416AAC3748099229D397A1F716AEF05676C2A035629C6878865940F17FA0D2AE5315C4340C7191B415046994B9188D4E22C50239901408B64C1132F854A13DE43884B8CBB430B277341E74318669D2411D49AE3D660F84E35538C7668BB8C7EDF39A3FB33BF7E45336FC68AB37477C037F7D4A460F3C211847468BC10E0AB67576605216F058153C4F5E041900265BA367AFBB21BB13600C4AA74FC55222BE11C88298B35789532F357157F48931C2A58CD6A75E82BF411A0311FBC2B84A67D7353CD13AB939A05D55157A19D226DEA6191D30B28AA916624872BD067B2D7597D73419FC5CBE3A46C36D0047C231BB4C12609425C1F672B69F57AAD8F091222C109FA66512046822B4C7C57AC9F2C9C701D7167697BED93C789A626AF045A8D5A2C2D51383E41211BB38B76C9684B3F044AE2026D8B17F397AA66707C6846531CD5B3DB17CBD072BC4E2747EFBD5749A52C8BFA2327DB1A0258829BF7BBE4F59B1A6D8B8D3954DB41BB4A20B0D660C21D6202759601630854EE75CC29454AB1A3469BFFA989076301132AADEC892978B3E15082BF84897238AC6432ABBFC59A21C43C0BEFB55E1B582D26344A6A7B507F31BC1495CE2D5943466996A0691D80405CC21B060568F55A18FEC917106D7277793089E147D759988569820E0254EE7896E9797612C655E71371178A14B37B3A2C2B18BDB952A5295BDD4385C190B3D61136F128BA74C2C57612708F900C144093AE460C86C7A2F0B1903FD9A889DD7874F6543A2E112219869819C35C055813A394333AC6C9C860AD7505F8AA241046A984403B798E3211469CD1D8A57455702B2816F0B2B3EC60B273B102559099528D306FF23BE250B50226B497B60B7540813F5B0C4A11732A6B9583A21B3DD2028E79A82EA0144EF34C32E4392A11241748351046B9454A50E9F90739D12A96A928E75806F24004B4A926F0E8769F90A921C4323D7FB7CC74C2E33248C30B774B795CEA60C47EC52A01AE84247E53243542EBD8ABC24A183E2D72247628269E108A5E93F11A45CA9561E8FABBF85AA61C6BACC2493AA93A38BB72421E8913FCC635EA0F2AE17BA41E43C5AF3C83382F0667B6113591B6AF80950D5074A3F8C4FC2E550CA9743DFBC4C1F797543FA784AD8687DA8A643476FCAE931C1C7477F063CC7C224DFE3BEF7E0AFDEBB5F91B2532BB867AB3C08CFDB6A64BA1876285BF6463B9A241512919C9B72669ED252FAA0AEEFBB963076592F9884B5E60E42C2008EFC08BCD1CC2BF31025C386CDF99B49283D6D7B0A24693618D2A2FAC3B7ACC60EC970B6D357B199FB6AF3039EB6601BD57506CF8292D3181EFF61CD380C525086962B58BFE53C3C0844431347A2F2112776818FA3EC2937B4B3B21C52BE816637C38A68AA5373858E16C18134093311292814101CC2940B7F61953CF5971FB5CCAE59ADA4373DBF9C149869A0833BCB97D9BC68D6581CFB803264599A9CB1CAB10A15178F6CB23DDCE70D060B0ECC7A0FEEFA35B6DB9800567417775E1DF95EBD32A4E67616381B48595933F301408E2CC1951A095994428EA01883B4A8A8D780CF960D69A18425258EAF63AB2F2752AA411856B78DFD60C2DA74C35F517718C3B117A98E968A72C3150105CA44FB02B14C439ABB81ADF5A94E2E5B7A8971848C4A9156E1445F41CBBE2C7C18785BAAAAC24BB87936EBCC8EF6CA4A951D1DE8C2E6C5658034C1FDE4B75DD1A176824298A669B0C4355AAC3E201380C42CCA5060192D06606E8430E135C50997579CD756DA40336541A781E6702C0041C696270B65A92D531E964A1E953555628929F7FB59A7C2A5CFBB90B4F04B129CC011F7ABA0942247908B22267DF9333E8C762143C4B68909694DE674CA14C7538604A7741FBD9004D861A04F63B74106729C6759718125CBDC40FFCC60C4AA30C7DA001E30C889276D48B1329AC033D5365D76C85893DA0E15590BCC064F0803CAD5E80355FA56974AC577DB713862545AA43747F9456B822E74E56E3A825E0F6259A3551565215DCAF4C9CE568C25D9C9C7471806210969146BB64C7AF9A03EC276AB4AB10E8DC227AB491473F09718C4A046E84889D7C40F0BD0878675DEEA6C8E071B0E819F77147631939C035A8F9A4644B3DC35C3DC328C1C0CC6CC537AF884D7C6000DBA9E1E3062C2D43A30EBA1873409422A5F664174D2F536E8420634558F4D427D3B8B48B96845B0F1847208C374F31D419988E9434A9F626DA5258C00654B6789122DE71788D6B259A29EABF83A42621B1BCC1924A79D3FB59AE6475AE6714296BA1528F30A66C2597ED308A3973A501CAE96E1779813195805B12B0B008090ACAFEB591AF94EA6394A2AC955FA1B5D8DC388498C6C8B1829428A838AB73EAB19C6CE4A409FC782FC399FCADB90C9A7A86F9799A3DB0273551877522FAEF812D452B6444C4ECF3B9A9670810354B5BD57BA43AA5C", + "4F271A03B2800F5290650A08AE83061F331489265B2F2A3AB1F4B3159103773B7806157E26EC1892E2C3D121A601777834B52939A658531646E713222943A0DECB5B82BAA4BAC41F1CB2AEB3076A1A20A382698CE3919ED717408E0934FDE42A5E1CBF04C80F37D7DFC7EB53A785194C4A1232E61C37A5A57B333A2F41FDA2EA72EA11D8BD642D911F6AFE90E60492EBEEFDC17A9321927B129A56B51BE635054CAB9E84F2DEF59A3F8168E301EA2BE388C45B8CB022EC\nencap_coins = 5D5B9BC8E9D09B6D5F96D13A5B7A8D8F491C15E7AB912A17CE8141299FB6CA44\nct = 2639D412C91BFF206FB8C6CB4AE9C856190572E9882AD4643FA4C86348ACBFE3B1B45926EC301BE7FCE1929FCEB8A3DD90D3ACE7F1E3C450DAA03F791ED27C9FEED720D3BDAFC249AAEDA8B998756D13548FF2F537B9B31C43AA05E5A3E3B4B2858328E1EEE7A3A0565B83996AAA55595DA1525B5933CB8DB4F3CDF679FA49E5E83E749F5388745330B9383D0E95C4AACAF0459A1AFD9C7830592D1D3BD11D9E5DE17D96327C8173DF7A11D7CC8D7CEF3D058604935C988992378568E63BADE6FC014B4A81CE501ED3354AA96C2AB9FBF910DECC8736656249CC71FFCC59ED78F7E588A2F4C7F0375B6553261B57280D99340D3B31B6E1D10322468EA282B1F0F86CEB4B02DFF9EBA1E58D8B877029680E912E8722959B6D35AA5F67B347F0ABD6C8314BDE83B4AC72E3325E1997EE04B32A38A25B3CC442C00BDC554501EEDF5EC656F4604EFD7D07864E1C1D91265FBC55E4D1B1ED1DEAC7A1741C4B193CBD0D44634C76EA55B373C25E6589C61A094A887B9CBD249869D884520A22774D143082E40BDCBA22DFBBB0C2C0539CB0ADB8910E2DC0C2D31AC42ADC5724739D1D61986B8BEDCE815FBC5A1EEC10CB353FEB1A85BD53937A7CF21D67B60B31AFAB250CD78AA545F4BD87CF74042207FEE4783CA2F06E3E732727B7C5370EA85E8C6C0A1674371B3AEC106CD62A055475AC1F7417E5C163A64CA13ECB8213596A56194C32A34447C254E1E2DDB4EE5CDB7AE91920C351E343DFEF240D2F813C2D82C263C6A2D2B2A3A247293B94F00A156760043739868E92F15548CE8D27EB2C882A58B5385EF26A78E493AF496DC0B2429EFD0695A5123C2639251157303AE487397D77733EE8C5BEEC97892A7E08605A27BC1E6CD8FDD55FF57FD01B76C01034D75B8F82DAE3D4C6C0E6FB774C634BCF04ED73A6EF369F3569E6D82881CD9E9DA9E2234119CFCB3B77C7B7E09A0EB2CAE870663BFCC5611567D1AAD98919ABA772F4E48883D9309B4FE1E76AA15D8CA4DE26E9A42909420470972AC1C3914ED3986865F9CD7970E6FF976AEB7076244EAF065560AFFC6A62FF4459CAABCF3F6DE510BC3618CB9D694A141BE1C72DA5F72AE9DC92DC33885CD1A784DB13B257C2A0C9BDAF5D136F08F2298939CFA03F6DFBE5C385AE6FD1EE8F42C55CDFAF3FB5A493F04CFE34A6995DA90DCF71E29DB5327D151AB5C6D64297134F9920FFCF63C9C317CA0DACD04E52DFCE58C593FD0FD4647C88159F73611043401FEA17966E1EA01ED64BEDCB415199C871BCA8CC509602A10F35567CF4E46A4C0DF4A797F09DDEF923354503D4E2159D0B08E4607A21D9C620E6EE1F40BDDFB7881A8036B8E3996C3D6E8B28FD87B32118BB30794DC094F3E831AA16C510E7D3261F49A51F6E1BED4EECE9D73DDBCBCA81C296F78B7FBB90B9BAB73E9441C0F54BFC979927264815A90CD4524E2AC949F0615CD509C20BC206DC3B79EDBA7B447EA20A6CC3E71AA598967A4ED683860C6E7C42DECFD1C23EDF5A68353FC7D2304C72902E4F8BEA97495220FDF90F4DE357BD4836BB709D0E090CDB13D00BE952F72C146C57F3F5D3724D644736C3F1616CAF0317BE2042138B9D12BF3D0A98A25153A2C57141EBA80030E6FC8D554B6B5A323604F816939C8F63BD2BFA5B3FFDBA081B31B7B82AA97364182BE0E2ED77B03EEBCEC2229CD633BE7C8AF0A41CE1E6C095C89B58F04AEC5F736DEBA48C90287A4BD1E651D498B98D77EA3D2BEF0918F061070153A39BD0A511B6BBC5F5BB79220CE4BC74192105A4366CF1902C5C2508A363DF46C1983F7E415AFF5E5B43292159D9CC55BA42BBA1F82BC370C290E49F6475A1BC3285419DDF3F9B19B2317AB8BFD56929F000F1A8E42244BCEEC3881AAD6707E997027DD71453A599B557E249E8B52883EF3D2FDEDC738B85C719C3EBDFE92E4E45A6D3374BB34A4CFE91BF98EF4C8CCA55CBFF2E013872AE78FC5ED54F0BBE60F3EEAF62669469774CC3E8522210C439125892DBF5BE4E59895883408411EFC3843F811375C50C0FA403DC36CBF5C71946F039B1A233FEC5463472D24F13C1B59713D6A2B7B6EB63D851453EC92D18698A46682A86FEF9C36DF2B56B0F281F945D2BEDEAD520A96278F716CB444429CAFB879987699316E47A058C58647D6043BA71FD743D25C805140293852AE6FAB7F2BDDF2B29242CCC0ED42AC567BEAE\nss = AD83606F3B990EF1A68CAAA2CFAABE6A9D821ADB568B2E40C5B0EC318EFB77EA\n\ncount = 82\nkeypair_coins = 2478F7D3DE6041E7E5CD11C5E2EF483D1AA6218EB126444091535F6AE532FA73F0C083AE8CFF7A4BD779D4385E111ED4583FE00D30E651F171D7E8A90EEC0DB5\npk = C3C489DDC6BD144A0458168E5B5686E92625325A8418565EB6FA0FB7619773356E92DA33DC0B479B1A8C62C63FED955F18AA4CB7BB2578E2A42F9B41C60C45728C75064A68D4869DB54845E8CA8DD38A5840B39B00FA9C4801107D0326EB24C7FD4612BD91275ECA20F057C27E10B92E0B27C07A4D621751EF66307CE584708A5A58661838B56E2B2670EAD04A9DF7CF09BB8C83842DCFE4CFAB4A83E75773E57B908FEB46BF44013744BFB1D3CF98D34237B29207961D5D5CB43D6A49B17601743C86640AB9CD4A1786448C89E12ADF884147E2CF091B66DA57883CF36363611E04005BE8376FE99C28FBC50092A034FB39ABDCC97C6AE0565DF82D4B59A947434D32938E8EE6687BABBA86236FCED497C57554DF73CDDE43B7DF119E86B92C407CCCF98581BC62BA89228432A4922EE5C47BE661DFB543EF26306F5301169A31B054CDA1449CC2FAAEBD04C2B5823F58997DEFC48F6DB37300B0C1C475A866B035639A5BDC4669CDE9297D5BA8C1348792C8C2FDF3CD2125CDD51C7C3FD6AB6B31B8C529B84CB42DD8E2A48FB240C6B703C787590ECAA1F74044B5E295122C0A81C3A71322A2F4C9A33EA67D341A4426D60169ACBDF19827759C144A271078582A33541BFA9367B757BAEF6890CFF95D32D68F6C90338A20298B000E9144112DC22F4BB3117A6ABF83B86B2B3B9CC244330B97392DFA3202EC7746D081F0A036360ABAD9D7028AB5BBDE47403CA1A7C68A2C1679212BA707663CA412692049D45017F4993BEAAD79A990BFBB416D3072AF8749F7F251DD51BA3C8B80CF34CC21EC923EE2A52EC3C981602C94D668BDC108154429508296805C156F05AE7908310FC176BA241CD35275B4C89E52786665E5798CA71A5EEA5A721B51DE6A78060A58F1A24DA91666FDEC925231C8C9F53D2FD270920092F29515DCE0A8A2C6CA1E68BDA6EA24B29424E22523A7D41773252E044356650AA5AA467B3CDB72BE7700D268572D620279CA0668AB514243599DE939A85990BC7CB640019BF8271EFB7B1D32487B2E912E4F0267FBF197F1E3C4DE63AD7455BBB2204DB4C5995641892330C5B5140DCF0A8009D135A92352E97584C1F294E9548AF9EC348E7408B448B85D234F6ED614834706A0C978AD9A08CC814953B8BBF2BCBD87071B597343629B3745D212111B7230AC9275C037D5E747AFE60CBB9B439B06BEAF537D6CC80BC1D1CA3DB49F53C4A935A0226F37A85B058F32E307CBCA9B7C62BA581B351FF5CAFB198494D5ABC4406E30932355754AB2A38232561319B0081B266B1FC714567305E0B27D3D6CB8457BAF9242C598AC29520432FBA3C3968C8E81078989380085178489EACB2C10C452079B1C33634DF13D82B81DA91AC85E43815F262C133075CFFAB454F50AD6C35410B295A5357E95FBB8A1D80964A40184A19618D2C0B7E13AB5828B60D461E10B41E3274363687CFC5849FE6BADFA11821A31C2F724735CA1C4CB365B16AC43CBB24EC865A6DEE75B7A6815500072065AAAF7B9AF31214AD30AB984C57515A94A67B7391A37044CC22C9976851B19CD975A2C3BE0539B213B9032928722029AC59231C90945A9BAD4D39EBE623C08DA1421D90FCD990BF8F8807B18C99A3799DE3068A09912BCDA3F5CAB1089CAA3ECCC831F64BEF79C538127B152F97946A264F4085C50299601043860D95832D15ED6F06051D12386559ACFC5934CF4110827476B32AF4498819E3CA252F28B48A96195F0A7C8E01A81D00C9063ACC0954337D360B514906504CCCE6A54BAB7A3624130630A5F93C97AF1C1A981B50EAB54937251B9E1388842847EC6F4296870B51866C04458152FE3844CD879F335A7A1FC0B04094D2692CBB2F84F4A02B500D38FCE69145DAC4D0E4339D7978EF6E651C6110154046050B52BF29751C0778BD5E0409A1A2145BC87B1554B5EE209ED03CE01C251F4F39A67E09F2629A8024896C6C59F2E9A2E26523273E337B2B80760DB1025F5B21931A82673BE930AB5358381241ACF46879650C208CE840B48041997500C8E6A89DA2B59FC5BB6830C5C6CEC510B13C74724A93FF7978C3A2B61F85F0B10BA790512D6422900DB29D542AD96D8B6C0D954205A0D2C74810EC4469BF2B902811E5F5778A4190961853C777514319CAB0CC90CC91E7EFD93A5D7DB1850127DF85B8F086DFC57F1F62A86D6EE7E45AFF3F27BC1\nsk = 6C33B8AB2B4FEBAC9FF7DC3E4A689F468A4F08D5C87EF8A142B4766E24073DF336EFA5A0D6FC17B6BB2C615658EB04AA9035560FF7979E27C65A85CA6B1B9BFAAAB23D89C6A825CDF7E312F81066D516BE72680E5A665830F74E371BC411BA86F00704DCD3C40C8C1295D6B52ACA51AD41732032535AF95BEF907127EAB1EEB54899A36961793EC47B91D9725643664082C4375F4843B0031B815C8DFFCB7F25D4414191746D5AAD14093BF2C005DF655F69917BAA956721B4CB8B8B51531A4A6C0CA50F8AB21DFC7CD9F81D730157A59B971E4B4A0FBA8EF49754A7C2BE0325C8BC623FD2A94A6CC4226677260FFCB64D75167D63334E395DF5BA4505495CBC8C3A3E40AB68796D6C646775339C29683A21F921A7C6A79D39A95C876F782A27A6365908381D793B537D1A681CAB5599817E050CCCF7803BF9A90CCC4084743C96069183B08702979C9DCA2B9D9BC26E1DE849976AA1465B29EB260FFC64478C39945A9B402520172CD7861C5A0CC089A028C8200208B3E4D7B3A91CC8C209C5E1D201278B01CAB34126C701BFC2913DF501F6D73D9424CF1176B8616C04C10940EF9832957585EC350E9761505162AECB28884F659EA23125C382CF24F383F9B09FEEE8AACB981DF21A6BCEC26E2A67493B919FEA06170C18B79E5A01E6E89516707BCC7CA353727825514AA0D52504606013E53BA916BD133814C36B98FFF15F847B7383854F692450AAD28231F2BB4FD839D2B532066114DA65BE8CC5073F9992E03836CA3A623C301999A56FB00332D1BA8A26D599D0F5A97975814BE81FC9DBC536D1C165A131CA3C55D04A05D7A53FFF1299D3860CAFD8BC6E3B97E72A595D294303A129", + "94510F74887FD1D7BB18DA70BFC5BDD58C1F6C1CB56F5994B7F2225CE0AB29E8CF3DC851F1AA5BF2BA255F7215CC71C5DA95115D6A98A2317224BC6DE1B2C79353BC5C3C046A7A0933A73419F7B117B88F3A53777143546CD29014E15E37C33770A8A9A11BC2F38777E400132A812A984908B3D2B87FC465B564045E79453C0666E3682A894C269551AFE25286FCDB681CB50B260B4327B46C2D0699BECA103965B0A218902EB4680C1B8C3ECB2011A396B0DCA97D56AAD231168FD9A7CF177B85B7729DE4A4BF035482AA7758ACA9E1F36BC9033EA34C6DFF91091E8B36FD2A2C6B1094A8338AD540C8F53CAB80D73E7DEC3977452915B616D0F0BF9E842663CC477CDB5DC94579D6222D1B647EF4D358C5435D3D0799242B66818A683E8C5651B0B26CE4909F8656FF35CD7FFA1C5988074FFA32DF093BCDA32AEE2003825593B545B44190787C4C8656D85CAC293F615811CCB35EB0413F44B1722E0A182F09481712AC68E3C9D31085EA77946A54BAA91C8AB8E814C5B94206070C0A6037BC02A292082018933A5AC32141180A6DC760C2C9ACEB3B1A1505464150A732664AA51B02A721B63759379A638BBFD07FF9A7A84E071FDA70200C61894A8891DACC375C120A35E0A4F296A02845477BC0484FB5BC539C3B8BEA3ED2511D480B1DBE76C640622B67A1A8E000B954057322CC005F88284D6290A5D720E32B5F6CB6B992BC182D66A73B5019572867640343F267133B060545D4B2668B05E9D1AB7B1AA5C3287D9B08A79C9A5C9B6C93C5165C0E6B8C40D527DDFC01B3B88354C73F2544B5506C1E043100B4C399D2B6B8DE81CC6271495B3C00893B744584AE83E300BAA0531D191BF77015F28B2D95911CBB2A1C16265DB900761C5333AE8074F387A97258CC0ECC391500083EF0922E00C692C9AB09ABAA30C54984E918CFB332F96172EE1A0440D3B92175B386309475C92C25199D6FE75B1DA41D0B86A68131A57FA839A1884F526948BFECCFAC320509868235F05CA7B57952B3C5E65204F11C81C3077CB14C0B33633F9006B5D3C67F130C3D78038D7FB4934E4CBE8E3429A0C737EE48BC96849F360C83F2707BCC23432264728DF21D4AC896E51A06A3B776CA7386D6072046ABBB52C655DF001B3007AF2586B07CD7C81F38333784C2CF671CF7F3830A6144D4107FA40480852B3BB4F22BD2A33585E88E47C2B539DC099C298EE492CBD7D7A3BC5707C3C782D8A96A14701C352C1FF276A15762AB624C6D307A5B4DCB323FAA9DDCD52289D60531D6A93BE9C28CFC9EC3C489DDC6BD144A0458168E5B5686E92625325A8418565EB6FA0FB7619773356E92DA33DC0B479B1A8C62C63FED955F18AA4CB7BB2578E2A42F9B41C60C45728C75064A68D4869DB54845E8CA8DD38A5840B39B00FA9C4801107D0326EB24C7FD4612BD91275ECA20F057C27E10B92E0B27C07A4D621751EF66307CE584708A5A58661838B56E2B2670EAD04A9DF7CF09BB8C83842DCFE4CFAB4A83E75773E57B908FEB46BF44013744BFB1D3CF98D34237B29207961D5D5CB43D6A49B17601743C86640AB9CD4A1786448C89E12ADF884147E2CF091B66DA57883CF36363611E04005BE8376FE99C28FBC50092A034FB39ABDCC97C6AE0565DF82D4B59A947434D32938E8EE6687BABBA86236FCED497C57554DF73CDDE43B7DF119E86B92C407CCCF98581BC62BA89228432A4922EE5C47BE661DFB543EF26306F5301169A31B054CDA1449CC2FAAEBD04C2B5823F58997DEFC48F6DB37300B0C1C475A866B035639A5BDC4669CDE9297D5BA8C1348792C8C2FDF3CD2125CDD51C7C3FD6AB6B31B8C529B84CB42DD8E2A48FB240C6B703C787590ECAA1F74044B5E295122C0A81C3A71322A2F4C9A33EA67D341A4426D60169ACBDF19827759C144A271078582A33541BFA9367B757BAEF6890CFF95D32D68F6C90338A20298B000E9144112DC22F4BB3117A6ABF83B86B2B3B9CC244330B97392DFA3202EC7746D081F0A036360ABAD9D7028AB5BBDE47403CA1A7C68A2C1679212BA707663CA412692049D45017F4993BEAAD79A990BFBB416D3072AF8749F7F251DD51BA3C8B80CF34CC21EC923EE2A52EC3C981602C94D668BDC108154429508296805C156F05AE7908310FC176BA241CD35275B4C89E52786665E5798CA71A5EEA5A721B51DE6A78060A58F1A24DA91666FDEC925231C8C9F53D2FD270920092F29515DCE0A8A2C6CA1E68BDA6EA24B29424E22523A7D41773252E044356650AA5AA467B3CDB72BE7700D268572D620279CA0668AB514243599DE939A85990BC7CB640019BF8271EFB7B1D32487B2E912E4F0267FBF197F1E3C4DE63AD7455BBB2204DB4C5995641892330C5B5140DCF0A8009D135A92352E97584C1F294E9548AF9EC348E7408B448B85D234F6ED614834706A0C978AD9A08CC814953B8BBF2BCBD87071B597343629B3745D212111B7230AC9275C037D5E747AFE60CBB9B439B06BEAF537D6CC80BC1D1CA3DB49F53C4A935A0226F37A85B058F32E307CBCA9B7C62BA581B351FF5CAFB198494D5ABC4406E30932355754AB2A38232561319B0081B266B1FC714567305E0B27D3D6CB8457BAF9242C598AC29520432FBA3C3968C8E81078989380085178489EACB2C10C452079B1C33634DF13D82B81DA91AC85E43815F262C133075CFFAB454F50AD6C35410B295A5357E95FBB8A1D80964A40184A19618D2C0B7E13AB5828B60D461E10B41E3274363687CFC5849FE6BADFA11821A31C2F724735CA1C4CB365B16AC43CBB24EC865A6DEE75B7A6815500072065AAAF7B9AF31214AD30AB984C57515A94A67B7391A37044CC22C9976851B19CD975A2C3BE0539B213B9032928722029AC59231C90945A9BAD4D39EBE623C08DA1421D90FCD990BF8F8807B18C99A3799DE3068A09912BCDA3F5CAB1089CAA3ECCC831F64BEF79C538127B152F97946A264F4085C50299601043860D95832D15ED6F06051D12386559ACFC5934CF4110827476B32AF4498819E3CA252F28B48A96195F0A7C8E01A81D00C9063ACC0954337D360B514906504CCCE6A54BAB7A3624130630A5F93C97AF1C1A981B50EAB54937251B9E1388842847EC6F4296870B51866C04458152FE3844CD879F335A7A1FC0B04094D2692CBB2F84F4A02B500D38FCE69145DAC4D0E4339D7978EF6E651C6110154046050B52BF29751C0778BD5E0409A1A2145BC87B1554B5EE209ED03CE01C251F4F39A67E09F2629A8024896C6C59F2E9A2E26523273E337B2B80760DB1025F5B21931A82673BE930AB5358381241ACF46879650C208CE840B48041997500C8E6A89DA2B59FC5BB6830C5C6CEC510B13C74724A93FF7978C3A2B61F85F0B10BA790512D6422900DB29D542AD96D8B6C0D954205A0D2C74810EC4469BF2B902811E5F5778A4190961853C777514319CAB0CC90CC91E7EFD93A5D7DB1850127DF85B8F086DFC57F1F62A86D6EE7E45AFF3F27BC1D3CD2FEBE168B1DDF776B954E96085A7D475E3C8CBDE68F7C80FFC9FA46B0D43F0C083AE8CFF7A4BD779D4385E111ED4583FE00D30E651F171D7E8A90EEC0DB5\nencap_coins = 075246AEB644CA0C05B7D6E50083363D4F89291711D8412F0131CB1BDD2C70F2\nct = 74E0ACEABF3F4807D30488369683EC66D980F8BF8883B87A3700C7F0EEBB79FC683354A271971727D6E541F3958C48AF3E38AA73BD6F595582508B9833DE14B4A472DF3B93BA60E64347160F78034E79C4E71C57929B515B65FC59364C57F2EE10D14F00FC65053479B5F9224D227FC7F10776ED41722E7FCEBD907C2C7CCE5CEBC04D22CDB66092F52E13F10BF57366DD37BD4B899CE36453B7ED4CA5D037B4362547970B85BB56BE5B5677BEEA40DCCC3677801E0B4C4DAD30E71ADA2911E40D6AE64FF553E480A72139ED75787D96DB938D6686C5CAA055B35A8A05A386D735529FD70E4FEF0FE76D500241AF2CF5C2A83F9B7DA1246CD24FBB725CE92F850AC25125692C6A2229D149F5CD3A329E103FFD1748B2295549B4ED2642456EA1B72171A5A72CF8C8A9B04B5906C2CE927A279B35658F098F525F5D92F8D5F5DA70E2E5C79F57DDAF5D434D9BE820C7E0EC26057EA55C855F85AC52E87DFD97CC691743142AD70026D717363A6890932D7EAB758AE108C9483E459A83AB6F95B3D00C86A39135E8F6D6D7A4E8E88BD21EC0307E2DBA6F0D90CD54A5A8BF3533DB8C04CF5C95F35445BF8FFFADB27190D25CAB0FF032D5B46AD2A832B55E22AA82DDADE57F38D55888EC5AB46D72006E5032F8C40BECDFE08C9B41AEEEF6406AA543A0241E867DA5063F68D5EBECF572CB2C32620685CF36D56889C002DC0EC9801A0E11B803F7AA595A53D08399425AD04158B41EA50FC4EFE09B0D6CDE5739F5E389B376C242EAE9DC22AA1389913B7356AD25ED2FFBB2E3FEAC76545347E12711EFCFBC88FA4BBACD25D8E4B3680364A790EA6E93FE52B012FB997642ACDD9865D1C634D2A75F42051D65FD08336BB6DC66A7587B53E12EF5E95057522123E36697891F060240AE008CD9A7F165C09AEC77B38BB9BD0AFF8912DEF4742293D46D1E829E6ED46D71B549E8552C653E121DECFD27D322B66CD194C0F99C52D3DF60B97E5BB155E749ADFB549DF1BA6383ADB3755031D1D0C4962B9CC1DA14874693580A3EDCAA7A78ED19BC5251F0EBA70E070BA6C401666879567067A628479B4B40744F10B63AE87608699EFCC0DDF867E2F2E53F1C6802737341CE478C5971A22D8F11CFB19CD615030330B71ED41F815A8686A5B20EFB3F41B277F437DDA1939D4ED6D06292F615B74D410AF7DA3E56DA7574663FC5FCA37F837CFDFC2B5096E406766344615649AF337AFE20DF456CD1521BE7F44169A4744F633A57D4A03B9BD3D8D8DCCBF3394F86AADC5688ECD63F289BFA594B4EA49523A216E328880CED53CE399DC57FC3A234970AAA2DBE1642054B8E1180D65726962FF8D252C02216E77350FD06F90CDAA6FCE25793C5550FC9B71F6E7447C793395FF6201E95AEB206EB4DC6B5C68278E504E7316B9DAEFBC8B6C67E11044DEADDEE7B96C983B3B3B4D0B6365A8B4B94BDDBDD47E7BFE0EC9E93A716F8891F085C92272B7B6ED3A2AD939E908628B62DB303AF55F58B8B667C413B2A3CCFC3E5A29CFCC95E3AD8077FD632597160ECB060E41676AC99A323BB0D12800C00C3545F5AB1B6C033A427AABEC36AFFE77941F0B86A39798834208A36F2FBC6F1E54D431BE9C591D1621BB4710DBA80A90A4821D359FC5B3D83D2B5488BDB0BF7F4A1A65B7BDE4D76BFC3458ECAB841B1897FE5E959AF70B486B3DBC91F60FC0DF054D7062ACB4F4073505222AF4AD31482D96CCA05360578EE64C2F54C0B995681D6A7EC603B846A46FF08043FFA04FB346A6F2F11B836BE35184BC0B5A21A71984DF5D18EC529188BE655D286165DFCC326BD99ED02DA7826A8BDB474878F4D8C75664C870EFEA712314992B47F2C72C687A039A59D0B91AF8A6F1610527AB3C561CCA5B8AFAC946201EBEB21FCDC5B0C950E56C6C8E2AE5B9BAB83222A5F4784AFEC71B65A3BE40E0235FAD136361B246F68A897EFC2469F9AC97CCD19C376836C6247ACB3971DA62B9E9EAAD1CB726812CF9FC57D3CE20F7420580CD625FFEBC289EDB250F59A3BF8F79270E8B2F24283B3A6F7365CAFFD3E55DE5CF76740234D69717CE08B82D248093581FEA1AD931685EE54F9EA69EC88524D6D7A3079F844BFC91", + "2EFE63159DFA525654192C91CCB1869620BA09CF48C01EECD3D97C8B6D6077B6D5FA2376F82F5D3A8B5CDFED0EC395AC13D8491D1E59A756069B5FE7C2F0A276F5939F0\nss = C44B00C1C88D088CA76D16D2B3F2A5C398347A36145CF974472C16712C5736CD\n\ncount = 83\nkeypair_coins = 9D405D3EBDAF35FA8722DE431B669722ACAAEA2FD10B814310B17F78B66147D1B46F84F01FEFC519E118AFFC4A7A1560F1F8ADD6DE72615229B997B2CAD6393C\npk = D3BCBE7EC12D1AF108849A2CEA79BE2DA250F029382498919D670022F38BE928A341B9783E164567AA87A9055FCA176AB4870A2C4A68473C737B9A778467855C1C4186438A65333795F5A5B25641F86B9F5D4C682B1A878EA7463D51504BD6B62A44B0C0251AFAC229EA8359DA303066531EE34451FCF796544125F933CD52F9B2A5E72E1A42A45AC9A80730376076CD57A289D5D97E4E1C5826757943471FA4AC0B7DCB737BF95F92F2B94F844B2B26297B2A44DD9013767B8B2CC7C1C8C83583E78F12E60050EA0E45E3453EA86166B70C21B0310059C58E684ADE01B18F93440B0292DCACB6C9E3488E235F219C91914302D1495134E9C2B2A3ACB6F4357C740AEBB4534448BC482A07ACE3B2211BC6CBFAA95BA4171F955FF915A1D5B13CF07184BBB230CE99C8A13264D3B98C0AB0986D62CA8E22286EC90029623D0F033BD4C13A26F08120F76ABA45A904D01266520206E6A76697254B7120296820D0A0A29F662FB623C34EB282852832C044565860200222524B42CD2C8676CCE763E28555B8E86A2C710B47D40A788513D140A41A65BEA5CB054B73CA98C3061A39C6276A96269CCA4597897C37B25F672C0F3766BE5065A05B19B4CCCB1A6771421B5CFDB7094C89C48C20CAFE814D98D41BB5733ACA166E044810704B1F9D632ED279275C802640D2BF754A99367B4A5FC959C8F309AA028CE21057FDD943DE716E3F66B76660011AE354EC9475B4452932859D2DAC38A853CB1EDB09E04A367E02A92E89794A0C4AD866C65F3B4657492D0B575215E7926BF455686393AE7C507B9C8B9062C89B2310725BADDEEB8A3079A7301B5BE5F463F826CCBC8719E017550734812F1B18DA724B99641E5406244A28AAD89920731B387B934D02667E86B2051D35AD6820909924551430177F934650B61EAE840D952B9F1F8B7E22AC6D6B005013439A01698644B2CAF2B205044846D84075B715835A18C5DF409F686A78DC675AEE4944ECC806339B5CC8D8BC64D24BEBF75A74207E60A37787C59C5E6875F61238FB43745E58BF3D2168C844B7C24C4EA2822F3ABCA76163A40A219D2798A2E1A8C606520C5A622653348A63980E61F52654B385575697D56C86ABC5536AD67264A7C3813C1A1EB21442B1C0FF129F93810685A359FB13167E59B2DF26C6068B641738B6AB82357C95C0CAC43A21F867E005C96E1A4DD240975264606CF8CE8FF7BF0984770A282C969253189CB70CD3440A92C56319C9387733AF98CFC8892F0E6736C6B44A0B952934071737A24A3400257E3C1690EC9F76726A327521AFEA4259D87EB6978D4C77AFAFB1B9BE81CC4CE1197592BC26908C469863AACB89B13B231FCC9669B8ACCB2A4A61F641CA173DBD2A1494519B77ACB0DEDC284F068E5FF73BFA9109C1FCBF34B15F3C78C19A6B6EB693B64155B5E4E77D67547D35B56A0ECB7EEF98798AF94F4319997FE1BDCEB9513C2AB34691292BB961DDD202398B99C8F1AEEED7302262359BE5B1E53689103246A473549B8274A1753721C621A0F468A6A9080A007287731BB8D99360689FE616C707A9C0C04C919B05A5ADD406A7D1AAF9D675922439E4224300B18E5D2966A6104CBC5A43786584EC877198DC8317753C6F0109A11C3808A50693A55CA75B5F75E74D475690AF046E535AA79C7B4A1606A6D4F05E20C2CF9102593CE45770DA720531CBC50552F1B097A5A96BF291895AD9C0FCBC6A462068EB2CA7F65217F0678D0E25C447161CBD9029EC24845C5C1B2B7832AE41172EFB8FABE6543AE3BBDE44A0B9F926B1538CDB6685EB244CABA69798298B8FC38FDEAB5043A567C6C8117091523209CA8DD342E3BBC0E8CCA579C603DAEA4E11B06BCDD5BE898B825452A28D15261BF9ABE00A7ECA0474AC4C92B0938AA2A00854F3A665EA56169B3C572187EC88945D6C9637B4A8F91249B8614E9647760EB68D2C08C21F390E36370CF30CA0BF0B5C48F7287C822026E30850754B51682A0EC016F4FA0773B642D4C5481502BC9F023DDFFB199FD241F3C977A9522DE7F61EEF4B0AD3166515697EC9EC5EA87796DC6A24DA4939E8B5AF7FB191F861ABD3850E4ECB1F8B819DDFE605ED6A113AE4075BA67414B4690F59B2A6121928EB21C4D5CBBB4551D2C00FDE22B537522663745B46BB71890031FFECAF8FC027D2DFA2A4AD271DD702F055836F40CA137E5D0EF9\nsk = 2220BFA6A447DB5013ED5811B45742B6E95C723A35851518E04B1B619C5607944C341A1ACA4C0EB297BFE3990D514ABA3DE30867D646CD76A1EC1176F1E84EE60704B0E04366E27ED0F321BBF42322F5289F5167435B880851B48DE717E40A1B56387D4705815701BC2B80C55F33B3C20244E0E27FFCF43C457A3674000A4404B4157CBEFA05C54F50021684059939A3AA088DBBA13BE56047DF450AFE33C8742ABB0CF48E0B1C24E8719EECE41EC4A3254836B4E45B4EEBBB43D398A813BCCC0C42CC4E437050740C892B657765B252943896325E3F4C45887452847AA315BA8C811B39254A5C3EE64F65823FCF2A92E3198D2981289E021530AA4CBD210FABF51094392E25E755D778A02CA145FFF47165711AB9397A0F9B3DEF26BD0E5143C23A815C8582976521D63BC74D8B42B95280CDC77DE3528628862F44D475F49AC204C87D2647414A4A136A094B7FB923BFD3496B187592E81B8168BDFFD9522F60BC37052FC579CB3F7A398DD677BA14A3FCA1248057A59A58531B7A1F1773735A27612520B03121390CF624D46927CEC7C7D00AB13DC2BA6445236BC68642EC9659D7BBA40AA692C40794BC4BF5F13FBB617E711A54BD825329AC6A9AF2A88A54A600C0CD6754B4A3ACCADB397CABF2AF41463C00512D6D206D011BAF6D833E4ABB8DFBF736DF8036278A8125389C3B99940881760AC150967464483242DD52358A075271FB82D949AF57F345E5DC46845A94A37893613A76B6E7B4D0DB0EDDA213302677FB73C493A349704333278B201B6BAA8315731A348DED27283DBAA05E057C26C35D68A5252F1715337A1543895DFA4C395F9909B7B1283B450B71730292C32DCFFCA05221B14849AA5F94888E2A3FD33CAB3B380F8093742247AC27012E8D7A6B8702983DFBA43601677679568A8051925133FBF6550DC318E387C3E3176EC9C3CAD6A739C6BA5B72FA587F000CA8F06EEA003CD05970652B0F3F92B8BD4AA1570B02CAB21D2BD0A9937A499943CE285B32706589C11CB662461444629F5C755B4A09805DD5659127BDCF5466270A5CB6328FDD0583E701AA98D34095506284B63A6F7B39D0B31FEDC43E20E4BCB39B99D82515E041627FC5402290BE758A062822C26B750463141D9DE8793B385F556A3A3F74BD8AB61F69304AC4082E08F2CD05E5BEADE17D2C87B9535A084A6B0547389D08F548030B1DDA0137D170039E082C5583BC83695AFF0898F7E19E54204582989556B924DF35A00C518AB95CBB466B5BA0D8AEF007A8294294870902E74152832365FDB79508B69E45484139B4342DF8C391864B80E807B9DC8DDCD4463FD1A986986B81A62D79AA9565308AC1471F09D09A23F24E4EE5522B00265770674C61348FDB3BFDD539994B20FF22B210162961B56DBA538252610FA607372DB1317497B85307B61D890A62B90E4DD37246763DC6093AF5F4CD0DC20081BA4CE2D6BBDC969580607022C590A1687004B0730AF71C60590D1A6B2A5E51C742D2CBBAA826600055F4811287A062DA1696A22808507AAC327A9194C5C6D49C823557100C158E60B845AF953539A855D217C5A77599B1783F7488AA85F222DF73B837E4B8D1006A8FD6B5B06083A3884F67E9CB7E962CD3B8A8CF22951F74AECBEA2D599C533DE42A0CCB5E94439144551F5D839215D9021FECBD03D8B856D66D37331997A77F46F067A83727BB0CA6B3746F7CA6A233EA575D908775C5A7EA497917B17B51EC8D58350AACC1CCCAD921CA06061E82067FC9215C5A3E75B861491771196836BA56C99B25CC5AC10008730518311FCB7A2ED14972B72533C7C890D83A5E34F75E0065021830386B1456DA6A6CCA5A474C3790850A71C0E84BC7125FE21A9FAB396B37287A106BAEE569A7ADF0845B49B096F689BA245707647E7FD70EFA020A342C45335CA9E0809982ECBC38F55D4F9A9C36578198929EB8290E55848D04AB7C952513EAD8484D44CF46F6959717B0C009938917AD916909DBC764746C3CC612B5B72B4F16049140B5C261E29B326716E401470E7B6598AC37C7C57DD3D47D548377A4939A0A7886EB7780C667B4339873BE5AC23765A05DECA7B264978B14952920AC0880A274D3A5FFC825B9A891DF5560938B9FBA313E05E782691BB9C0488A7838A4B4CC6CD3BCBE7EC12D1AF108849A2CEA79BE2DA250F029382498919D670022F38BE928A341B9783E164567AA87A9055FCA176AB4870A2C4A68473C737B9A778467855C1C4186438A65333795F5A5B25641F86B9F5D4C682B1A878EA7463D51504BD6B62A44B0C0251AFAC229EA8359DA303066531EE34451FCF796544125F933CD52F9B2A5E72E1A42A45AC9A80730376076CD57A289D5D97E4E1C5826757943471FA4AC0B7DCB737BF95F92F2B94F844B2B26297B2A44DD9013767B8B2CC7C1C8C83583E78F12E60050EA0E45E3453EA86166B70C21B0310059C58E684ADE01B18F93440B0292DCACB6C9E3488E235F219C91914302D1495134E9C2B2A3ACB6F4357C740AEBB4534448BC482A07ACE3B2211BC6CBFAA95BA4171F955FF915A1D5B13CF07184BBB230CE99C8A13264D3B98C0AB0986D62CA8E22286EC90029623D0F033BD4C13A26F08120F76ABA45A904D01266520206E6A76697254B7120296820D0A0A29F662FB623C34EB282852832C044565860200222524B42CD2C8676CCE763E28555B8E86A2C710B47D40A788513D140A41A65BEA5CB054B73CA98C3061A39C6276A96269CCA4597897C37B25F672C0F3766BE5065A05B19B4CCCB1A6771421B5CFDB7094C89C48C20CAFE814D98D41BB5733ACA166E044810704B1F9D632ED279275C802640D2BF754A99367B4A5FC959C8F309AA028CE21057FDD943DE716E3F66B76660011AE354EC9475B4452932859D2DAC38A853CB1EDB09E04A367E02A92E89794A0C4AD866C65F3B4657492D0B575215E7926BF455686393AE7C507B9C8B9062C89B2310725BADDEEB8A3079A7301B5BE5F463F826CCBC8719E017550734812F1B18DA724B99641E5406244A28AAD89920731B387B934D02667E86B2051D35AD6820909924551430177F934650B61EAE840D952B9F1F8B7E22AC6D6B005013439A01698644B2CAF2B205044846D84075B715835A18C5DF409F686A78DC675AEE4944ECC806339B5CC8D8BC64D24BEBF75A74207E60A37787C59C5E6875F61238FB43745E58BF3D2168C844B7C24C4EA2822F3ABCA76163A40A219D2798A2E1A8C606520C5A622653348A63980E61F52654B385575697D56C86ABC5536AD67264", + "A7C3813C1A1EB21442B1C0FF129F93810685A359FB13167E59B2DF26C6068B641738B6AB82357C95C0CAC43A21F867E005C96E1A4DD240975264606CF8CE8FF7BF0984770A282C969253189CB70CD3440A92C56319C9387733AF98CFC8892F0E6736C6B44A0B952934071737A24A3400257E3C1690EC9F76726A327521AFEA4259D87EB6978D4C77AFAFB1B9BE81CC4CE1197592BC26908C469863AACB89B13B231FCC9669B8ACCB2A4A61F641CA173DBD2A1494519B77ACB0DEDC284F068E5FF73BFA9109C1FCBF34B15F3C78C19A6B6EB693B64155B5E4E77D67547D35B56A0ECB7EEF98798AF94F4319997FE1BDCEB9513C2AB34691292BB961DDD202398B99C8F1AEEED7302262359BE5B1E53689103246A473549B8274A1753721C621A0F468A6A9080A007287731BB8D99360689FE616C707A9C0C04C919B05A5ADD406A7D1AAF9D675922439E4224300B18E5D2966A6104CBC5A43786584EC877198DC8317753C6F0109A11C3808A50693A55CA75B5F75E74D475690AF046E535AA79C7B4A1606A6D4F05E20C2CF9102593CE45770DA720531CBC50552F1B097A5A96BF291895AD9C0FCBC6A462068EB2CA7F65217F0678D0E25C447161CBD9029EC24845C5C1B2B7832AE41172EFB8FABE6543AE3BBDE44A0B9F926B1538CDB6685EB244CABA69798298B8FC38FDEAB5043A567C6C8117091523209CA8DD342E3BBC0E8CCA579C603DAEA4E11B06BCDD5BE898B825452A28D15261BF9ABE00A7ECA0474AC4C92B0938AA2A00854F3A665EA56169B3C572187EC88945D6C9637B4A8F91249B8614E9647760EB68D2C08C21F390E36370CF30CA0BF0B5C48F7287C822026E30850754B51682A0EC016F4FA0773B642D4C5481502BC9F023DDFFB199FD241F3C977A9522DE7F61EEF4B0AD3166515697EC9EC5EA87796DC6A24DA4939E8B5AF7FB191F861ABD3850E4ECB1F8B819DDFE605ED6A113AE4075BA67414B4690F59B2A6121928EB21C4D5CBBB4551D2C00FDE22B537522663745B46BB71890031FFECAF8FC027D2DFA2A4AD271DD702F055836F40CA137E5D0EF99499C1B006A0EC2C299C41C3F728C3BB7848957FB2BBBCD05B65233B89A2B1B1B46F84F01FEFC519E118AFFC4A7A1560F1F8ADD6DE72615229B997B2CAD6393C\nencap_coins = DE5840C7A3B6585C81CEF65C8256BE98FDE71F70F5F5F17EF8008E64849CB02B\nct = 6C012862CEA22473C569F40C25824DCBCF839287AF1A8A1995012E54531F6831AD96AC60CC3571275CF5B4A5A338AB44C2F1ADACE78335ADD692EE353362535E85CE2A68A1A35860BBD324C7FAFF3A9D703C1CE872966497931D50E37CD4B99FCBC640E7458D863A48EEE89730365B962D6F15D9C8F3CB57FEA3325F44138B429436CAD5B5313500278DB9F213178C6A4A6C5C8C690AF90829FCB03C0395365B4132DF85D4D6355DE746495932DC5AF1FE3775579D2B24424586960BA6331F1D9B68016D097824222D68F8197243C7D54BE7B653C0907004AFBC72F3BC21CE80B45F90700C58D17CF794B309AF9E24849ACC1E51A2FD915B81743E5C163F0CA6F99F5914E25BC8FEC2451587E4527085FB88BA8665E39F6B31BD84442E04CBC2A7FE6FB263EFE29E764897A2E09F1229F91D2D7154F376F8CF1C7BD283AECCC2DBCCDF790F8491BDB0085CB91747D22D31E5F04124B70CC44125C96AC6245282996BE45939CF76BB5BD0C93576462C4D98039B8BED0ABE0DD3AAF1FB1B7EBA57397C670100BBB95A04A541773BA04EA65A4741213AF2C6FBAEE19A0AC77614DB00D06BD08040DD92715A4DEA3D4CE4C7E730466CE9710172D6DF80E26F5BA428EAD0027176BF51C908A7D0A9905DC70041C6BBD4F2636905951FC875847CFAE1FF328EDA4FD2527B64984987C24B8624FE868E04BAD7479C26DA50B5E0108D8F4E9D550D85255A2EFC33970E2201F03800DF7CEC4EE5C4EBDC2AC9E1D7BB3696B7D43FA43301AC88D5B52609C14F98BF4E0BBCB72CD0E7E33DE80667D5DCAE4DB5C567A2478AB0B8D19C7A8E4581E3B95FA5A7EEE2EBBC3F2384BEC40DC9B8D083CEEDED4EB48AD214AEE698519E8A8A5AFF862B6FAF1544D84177D19949829FF9B02510A63323B91EBDC4DCC274E0DFC0B361BA82D3FC74420F43AF60E5DEE0BD1E5F0E5683C4F758249CBAF8EB831E867735B88172E33589F1C4703ACDCA0938B57A0857D7A1987A0FC359F11D1A516B175DE9B4422B78A1F2425C2DC71A646BB0A8FB7DC06CEEA854C9DFB4E5ADC9AD46FED85E5317AE9F143A704C171960BEE106A7B77A1330E6565DDE9E0F087422DA85C33807A29EB2174C1082C6E633FB5480878406CEA19D71FB49EFF41336F6A41480E26F3B18A66A0FAEDF0B242125098C3EDA06209568FF9F2578DEDE47E0AD16568BB5F18B7260BA73DF1DC286C09382C7E240634C13C16CA18A48414F5A9816E778DA786F08DF7DB718019164A085C289FC463D506DE20666A76B0BC8DBE38984774DBF1B1224F097F3C42D05705726E3454F59CDB4404ABC3E387911119515E9760ABE072C1154152E852927EFF78BFCB81228C907514F951C6471234848D0E7C86D2633F1F95C71B91C535408EE055149E9B7B48E6969D5E3F3ECC0F6AEE90C8A4C8755B95A3EA1010A5A269DB960FB9BA9CB6F6DAD3554DFD18C70D7BA8C80A0F9410A418588A2D14C5409D37DBE148399826E4C1CBC035DEFB7DDDB1406A95F00D5E6F5BDE93C3EFCA48FEEAB1464DFA4532F5F976EB70D3641974E850084BE9DD593DA45AFF90E9F4009404E78317C70B5141AA67109CC41490545A951411F14AD4797A48FE344334EA3F92CA163829987A64FAC97183B44A14C9AF927FBB0F53B7DC5CBE42F0C760D5572CB93FDB415E3283A01A7D4776B51AFE99E310B5FBA7FCC5201BA649E78F8C26807546E3A9BF47CA9A0852379D3212CCB47CAA6EFC3B9EF77984BF2F713C2A01CD1CABB4B5C1C7E01EA60BBA182F059361B247B56D33A70C9EFCEF72FF3AC836F601255B6EF63E1DF388E421E5E02B24209EEA71518B84C62ECEBEBF501016714780858858ED6F6F0DE4DA4A55DDC7B68FECA4D6C0162F606561362DA92D661806F12B9BFC4925DE41CFF733BA599462378B924D40BC76B594C63C5B5AE2B40F9020374AD929CC5F60E847A4F50D856D57A7E09856625417A9CB89A50E2CA815871B95702AF12EF6FF57F0EAED015758CB00F9446F0D9FDCF13E034A765D8875D2FDA76E7F2839DF58177CE732478389DD456E917F65979DDFD43FD4BBBDC5C50F75575FD3B98247538A50BF54A106F84D22AE352910B2C9CF280793AC10CD3B136EF983E8A24BF5FCC383CAF9F976519EE59B2E26681B696680CB72AE8F1A6F715E2329F4B07D7AF0FA239D0D370887570EB69B410555C4CF38BD680196983\nss = 996F151DFF7D95D32B8B2D7ED135EC65319D47DDA1FD4A642961F933CDD5A09B\n\ncount = 84\nkeypair_coins = 9A86490F0615F3EDF789CB0654066E9EE339CC59F968281F3B89213F83C692ED1056461570B29E27126962068B2D07EB33DB448A2938785E6FB3E02675A6EC67\npk = 60C80E77B5C6CCFAB6F463A63C069276C9321D8C961802A956F0B8F41307A73B5B4EA33828D1BAB555C02616115F890AE7B1C5E6061A484825A448452BB26FB9B13D9BC002E6798D54238125477BC01BABE0EC7753FC8C8C959916F16206A7CA31C7B121724E05BB5D71C648FEA759A5D2B58A257E728230C2EA779EC4C55F2319CBF9CFFEEB1F285A9FB0D4A391386CE69BBB6E37A548246D1061494E8766FD96CCFDE9BA6636CC3B4858097C7CD6B83E53A2766642992881A2F1C8B7454586CB3822C125AF4D70B15CCC546843100B1443E365CF31680656879F00E640692B94361286104C79AF9C1CB2B98F01E3B9480C5B0AF0988DC7BEBB33BB3AD87CDBE09828A25F17FB323BD17A11AB961C236EEAB89CD7C3030F4B437C09AEC5F461AFE64E1939C93081B44C8440F7B070FE982C16CCBC99FB0A8332739B641B326CC689C51C7EE33003A277C41C2A05676620EB9806EA6F53C2060F13A75FF67B7D1B4229443ECC4023C84293F3CC58C60A1BC00A3D1AD31AA88AA6D2923643585D39E16E5C8BC5E650A578D60584BC24C2FA2AAD7B2CD9C99FFEE6033353B60F506B95927DAD7AB997868119B5976F561007B51ACA6B36B08B03AE40A9DCDC19FFB776304BBE7D3ACA167753634969CC57C48704A19A22416D2CB658E75AC2D428AAF9A13E6693E4D94DF1F2A6559A4FDD16354C77129D32BDC3FA136E180D66842FD2A9540C63AE7412ACB67B788936066AF5B7FC44409A77A27017C9B883B705CAA371B831C7195ABC01530A97728708661D343CBCA7AB7268B36294B2EFD96F87A298092684B02569AB5911F4825826362414FA2F2B955F6A318BFEB18B12D058E4926CA973248D162164ACB5B7A8A7641C9557A8A0FAB208AC2744810397CC049EF46756E4D14A884745E73454E1D675C3743A5DC2546C424735813AB05353CF65B604EA3E44D8828C7A3AC9851848090B0639934D9B19CA7630844003A944238876966A62A87218714A4B3F89638A064846FC4163D03341840091D75B25DC9A7FCBBCA04664B218F4B525F45A4723417E3597F9B99AE58012F2C3938C40CFE1281AA439486D5791E745892EB36905CB142A5C718F456B74AB213F4AC50CC000CFAC943C60C3DE626080B525C52051EA231F18DC126EB1C6FB76232D5722CEE0C9E458C09A38C35AD64959BC64FF252358A5CB1B07384288B457AB15651935A99072F12336E14882A2D0B6F918933CA0574B49B214BA4018CA4B1373CC0F007B683A9A44F842610106DE16CF202BCF0896C9506855BB4849BEB06289B72041C75512E152183242A5162678D10D870AA888E218AE969C13B024729C7ACD818971E598E495902CE92D29C73D355BC44EB544AC760C0CD58AD8157FF242963AE3CAB5BC37B9C78EDE033C210C59E20245FDCB51F7CA9588359E2264118CE4057DD7C6ADE4BFFBCBCBA5F9433314CBEA9309A0D86A15BB6F753ABDC47149F6BB0EB339734AA1638FCC633244559A08AF3C4B15E6BC8CDC63398165ACB51925C7141CEA32773FE5B0A64075D66C653E750CF42866255A9BF7D4B66C488F774193CE9B35CE52A164BBCC41F7B6779A9B35127BA7087A4B673096BBA4048410778B18270674AF334BB92475CE2787BF9A08B587A6D48845E44C6E04A254425CCB59B5972FB3A57CDB02F5100D45B43B76140C6047BC5EE59FB6E012660138D7C107285A2D461B20F1D49E1C206FFB28BE65E26154A64DF73358DBB49B77258FC45A15B9A80144099BE67B76FD60B7E01518074B766211132E157EFD507B5970C862D5CB870751DA46AE460416EED595A74724152BA84229905880CB682CBE477995437125FCC23677C25FDE14533C6AAC694206AEC917162B4EFB61A1BD7C7DD7DCA9BD07341438C7893CA4FC8CA4C337A5D7EB9A030B7D7872A694881916016C1AF8ABE353CD1AE2263CF417C013CF46212B3D5720AF335D40B646A794AE602B5345300E30F4812E295F3CF07C2117CEF1C591CB9A350FFCB718C64B0D76165E9A719FFB75F46B861F968EEAD3373C3CBCD6A983C9270FEE433B2970B6F0947B8CE46FCAD6518D5042D109BA53D324B9F657182BB110961E96A8B34C5A4B808840DE8B71D0D87A510944A9973DF9A900D9A6C272A61BEE2200B4C80AA1DC7681B837EB865A17ECB5", + "6E0AEA501BEF8E12D3025185BA4CF8EDD1B0F297471D58C26516\nsk = 7934A9FABC835BF9A77BB807332251DAA00876E5500D2C59F07485ED01BC934911A336ACDE5527DD166476CA1D1AA558CD88CD7BD17CE1791958E851991867C0525C9472A953C8B04A730E2E132C6C26811CB86F3234229F4CAA2AEACD2E3C840E97B8F1805B94D7317B08354BCAB64887A4E6A98FFD90A7544562CEABBCCE6489C6E8534119C9589C405D7A96DE3230094A459549B6F37078F2C01FC9080F049464B0A969EB742419147C8B39B8065A769D400A17BB25DE51A699B69D54BA460D33AC6A6965916829B7A578D0B24BFF786CEF9963BF961ADCC20F9A0CB1C159865A344A0E36879C67852DF50ACA08A46E72A4A70C027CE283DE5BCB219808F2635BD7540915C5485AB70358CB017882B12ACB4426B22B02605873F2BD0DA59A658075136CBE15418CCA0A11386AAD43A52E3C5AC97F36BC7F648808C260643C325CF456E6166EEEC74EE8476AD62C73D7D334AC279D84B66B6C8AAC217A813DBB3DC6007317A165E6A1657D0277C1E683BECCC956D973C7624E959724FF9275C1AA2BB5ACA75159721B8C6D7B299C7ACB4704C654335982E83AB3724CCAB3709D20601C2A943D5BFBB3D384A7E83A7793905301B1704CF49992077B19F0204F3394717C9AB9A173113004FD325EDB797A30155D0D2A1E4984644F245F5B495B56A98FDC487B29B4A5C6DC4E3047A8DA2C9325F1705613705628458BD525FB333087CB4B967A61A994CBEFC504D18C1B8A62898AF32BC454A57E264722897D5DC71E32C2495CA857E1A234AE61C77083BA9B780342D7CFDFF8B7EC1257B79CAD017113A3238510C5683C3A8C396986ED392B0122C16E34A7249691EA7A931C44087FA1731746C1F3855BC72414FE3484D85B5E2586B6231B4BCF27831EA7B57070A815795F43E90B2112B235F5959EA253DB76192BCB11D4E16399D40C5DC0A15D98C3B3B0289F07839F7738ABA3281D45AA0A9CA1D349A64E79246C2C7770227F1E1CC74DB8AB7EA7B0E60A9DC0E45443B30CA656CD6A8897AB105BDA51B02179936F04374554A52992710F2A70972479462A2859736C2FE4359A474939AC3531B2905F90BC38860B5615ABFB1A1327814C01048BB93C9725C7C3B0547921975766A97E29D529E4D8A090C36820DB0FEC33277CC679CD4A51F7CA05F204BFF20ACF63EC403AC7CCAB951A8EC166C545ABFCE8734833274F724E77E68137967DA75515E3C270CE79838839721BF3A14C952085071D6B3A555CE62D96E7736A583F44F726AEB921CAA340D4BB788D63645DEB2621629DFF8A2C51D23BFEE95CAA7756F1884A0CD263039C37F7415E83D4908507C1B17A7308CB329D829C86953422B8B2F1786A4B86B980751255339258572A02AB22AD845632F859EAC223E1245AC3533D359246316A3CC1AC58B4E6386592859547171CE05DD7A76BF8E93901EB7F40114175AC45E0B35109AC57BE844C52D31A7BA60A24F30EF0E45581242C02E020EC86AF106836B3DBA8071BB8E8574FDF208100982E55F4B0DCA72521440A2AEA68C57B2039D14B21A56274972ECCAC7EED41C4B26CBE2C973507F1CDF4E618077406CCD3C8C5118545178351522485730B1A1CA7971B01766B914E83520BCC82131C5E5A632F88EA070EF636D02752CA06B94DF20DE6F757021C1FE4E4883F123D097993F1959ED8076C0491191B0A05774C5A2D6AB94EAB91B1CBBAB07B8027FB57730820F19609136131833BAD67D888AA29BD69169D8957A5CB8C3A14B54D3F78154108904EF15D1F73CA9A635FE1231EA9E18CF3A473FE7492A3636D85B70EA43A7AA68C4F3F24C2A2E88F2BF5568D790E51122A27AA41246422EA78BEBFEB6038DB3FF65881BCE84496E65D82F5C318C0217B5B5E299B570B038F740238A264B00DA749CEA6AE22BBA8BC314552132894D79D23E73C492857D22A6F64AA160C774F8B24A8B14CA805619231347463A22F06AC2A96660EDADC1BD767524600BA35789C0896897F2BB1F0C88C0B875952C9A352AC4D78B69C55687015544066463DA8E0B1A3A8481D6BC89FF3B9590B94E03AACF4C0C12E404CD51AAF3D696C54158101015A550A455A28042C73627C7A414938636481647C30C90B6073B1582E31C275CB12755A287F967A7C6C377AACFABB57422510CA4505128B60C80E77B5C6CCFAB6F463A63C069276C9321D8C961802A956F0B8F41307A73B5B4EA33828D1BAB555C02616115F890AE7B1C5E6061A484825A448452BB26FB9B13D9BC002E6798D54238125477BC01BABE0EC7753FC8C8C959916F16206A7CA31C7B121724E05BB5D71C648FEA759A5D2B58A257E728230C2EA779EC4C55F2319CBF9CFFEEB1F285A9FB0D4A391386CE69BBB6E37A548246D1061494E8766FD96CCFDE9BA6636CC3B4858097C7CD6B83E53A2766642992881A2F1C8B7454586CB3822C125AF4D70B15CCC546843100B1443E365CF31680656879F00E640692B94361286104C79AF9C1CB2B98F01E3B9480C5B0AF0988DC7BEBB33BB3AD87CDBE09828A25F17FB323BD17A11AB961C236EEAB89CD7C3030F4B437C09AEC5F461AFE64E1939C93081B44C8440F7B070FE982C16CCBC99FB0A8332739B641B326CC689C51C7EE33003A277C41C2A05676620EB9806EA6F53C2060F13A75FF67B7D1B4229443ECC4023C84293F3CC58C60A1BC00A3D1AD31AA88AA6D2923643585D39E16E5C8BC5E650A578D60584BC24C2FA2AAD7B2CD9C99FFEE6033353B60F506B95927DAD7AB997868119B5976F561007B51ACA6B36B08B03AE40A9DCDC19FFB776304BBE7D3ACA167753634969CC57C48704A19A22416D2CB658E75AC2D428AAF9A13E6693E4D94DF1F2A6559A4FDD16354C77129D32BDC3FA136E180D66842FD2A9540C63AE7412ACB67B788936066AF5B7FC44409A77A27017C9B883B705CAA371B831C7195ABC01530A97728708661D343CBCA7AB7268B36294B2EFD96F87A298092684B02569AB5911F4825826362414FA2F2B955F6A318BFEB18B12D058E4926CA973248D162164ACB5B7A8A7641C9557A8A0FAB208AC2744810397CC049EF46756E4D14A884745E73454E1D675C3743A5DC2546C424735813AB05353CF65B604EA3E44D8828C7A3AC9851848090B0639934D9B19CA7630844003A944238876966A62A87218714A4B3F89638A064846FC4163D03341840091D75B25DC9A7FCBBCA04664B218F4B525F45A4723417E3597F9B99AE58012F2C3938C40CFE1281AA439486D5791E745892EB36905CB142A5C718F456B74AB213F4AC50CC000CFAC943C60C3DE626080B525C52051EA231F18DC126EB1C6FB76232D5722CEE0C9E458C09A38C35AD64959BC64FF252358A5CB1B07384288B457AB15651935A99072F12336E14882A2D0B6F918933CA0574B49B214BA4018CA4B1373CC0F007B683A9A44F842610106DE16CF202BCF0896C9506855BB4849BEB06289B72041C75512E152183242A5162678D10D870AA888E218AE969C13B024729C7ACD818971E598E495902CE92D29C73D355BC44EB544AC760C0CD58AD8157FF242963AE3CAB5BC37B9C78EDE033C210C59E20245FDCB51F7CA9588359E2264118CE4057DD7C6ADE4BFFBCBCBA5F9433314CBEA9309A0D86A15BB6F753ABDC47149F6BB0EB339734AA1638FCC633244559A08AF3C4B15E6BC8CDC63398165ACB51925C7141CEA32773FE5B0A64075D66C653E750CF42866255A9BF7D4B66C488F774193CE9B35CE52A164BBCC41F7B6779A9B35127BA7087A4B673096BBA4048410778B18270674AF334BB92475CE2787BF9A08B587A6D48845E44C6E04A254425CCB59B5972FB3A57CDB02F5100D45B43B76140C6047BC5EE59FB6E012660138D7C107285A2D461B20F1D49E1C206FFB28BE65E26154A64DF73358DBB49B77258FC45A15B9A80144099BE67B76FD60B7E01518074B766211132E157EFD507B5970C862D5CB870751DA46AE460416EED595A74724152BA84229905880CB682CBE477995437125FCC23677C25FDE14533C6AAC694206AEC917162B4EFB61A1BD7C7DD7DCA9BD07341438C7893CA4FC8CA4C337A5D7EB9A030B7D7872A694881916016C1AF8ABE353CD1AE2263CF417C013CF46212B3D5720AF335D40B646A794AE602B5345300E30F4812E295F3CF07C2117CEF1C591CB9A350FFCB718C64B0D76165E9A719FFB75F46B861F968EEAD3373C3CBCD6A983C9270FEE433B2970B6F0947B8CE46FCAD6518D5042D109BA53D324B9F657182BB110961E96A8B34C5A4B808840DE8B71D0D87A510944A9973DF9A900D9A6C272A61BEE2200B4C80AA1DC7681B837EB865A17ECB56E0AEA501BEF8E12D3025185BA4CF8EDD1B0F297471D58C26516AA14EA531DF0A7F93225DE1C75ACE0D2692BC750B1B538CFD0D860AE9C5A8C131056461570B29E27126962068B2D07EB33DB448A2938785E6FB3E02675A6EC67\nencap_coins = D45FB8527103ED4A9A88E77EDD89261B4E0D74B9B3A3F81016F534EDB12F3D36\nct = AC38482227486612343522CFF2504761A9168535CB841CA0F57104AFA49E66F6D3444EA2E62356B60CA5DDE48E060E3CBCF8149E6760BBC2F84182CBA9B738B450C2DFC6372FFF1E0709AE67EC3C969016710661F913B866D3A2AF22FEB2DA598D9D53596D47E90B434415585C7A8E5D043D3A4B6BF1FBAE8D18B45289DD3061418D4CDDDAFFB4FD52CA6A7AD6B0DAD2EA1AA3A801FC08BA7380C5E4AFFE55122541C8316EE9EE8CA19EBEB225124800BB40D044DD138DD6088BFA931940D5E4F4F86784860F2395A256703563782B2F2000B231FCF40026CA22910A83B8BB583CEA67DCD6D5A0BBE709047796EFED60AF62846EC67BB7574149458401ACE7AD48697D130BB7C946B967FD6D5C9587D7C737BCAA9AAFC848C7625EAF28BA996D9EDF713DD41F4B9EF24B0BCDC15E56F1CB522593206D5DEF2203E7FAE3D5D06ED73F7AA5404CE2BFBD9A30211F8CADC7FD4BD9E12907E58FE050B96EC5D357FBAC9CD8B21B57F0E6DC0DC65737ED174433A2B158B345117BCF920D608A3B259FB757C13D151B93AA89DD644BE677B32BAD77241D8990C56E9AF3EB2B06A6EDF0441603E4E62F8CEE0CD0C44F01A09925609A2913999FE2455F21307EE10571899D57F7E7E16FC95D4570F14A6C69D717D85DFA83B01FA17B5B25A47E854408C0A3FBA36DC532F45E4188DFCC22A28304FF726D6C5629077706C41A97DD2F26563C316F8A4A8DB641EC3DBDE3ED3A3D1AB376900D16F4A55C2BCEEA3470029B612A80068F20286F8A35AC0386C3144988CD394F221522C2AA240826BB847D7A011D3FB3FCC6FF6AB170364013A213152927D21258C32EFE85399EA79E9A32E4DFA639B5C82F1EC3DA5296D29AC70806D97B7CB8DE51A4A143C25C1262FCE61C80405AD409F7108835280FFAD4885126150934602C3F28FA28B1354C34CDDCC3E88CFF6E13F13262F0009505121978CAB3C4D16E6C1E4BFFE19992938C72988FDC22D5BA1D1D69864F186914BF559130EEDFB2E8F21F265C67D3DABC7F511C097896C9E0E5E4CD5527CA1C3ADACE8B3F5613FE688BE11B4F2DEA056FA7F71A878F1F4F670ABC96AB9A4A532AD0FD93BBF5ABD30C67935D7ED8D95FB6FCAD7A36DE9B6F6B7D0DACEE3A5AB5678983054D2B8CC8AC9048A5E55A27A3EACCA80D65CD55519FA1127A1284B2C2161C42AEB8A9B871B9D7DA597893C", + "184DF04A873791E8ACF8173939B6D0DB098E2998CB91DCF8E2FD685EA2AA8F7A0554C8DF21A86FB18C03D32A5A6A657F81685A1A38E0E70372E531E3FDDB953213C68E7F337823021E8F55AFE5AF43647FE811434F5AB54A35BFD535E55245B08FEFFDABE880C3DB5FDF983B17CD24B115910594A3C9EC9F16C0F1AE7038867FBCECA81AEA1CA674D2F5B7368E0A0E854EE0A056D5B1556D4BE6A75684452FFBEE502928CB59746B2ECB1C7776E5797B52BD79B608055B1B8041EBAF501EE4E60886B7CFF4D533972FAF84AF05CACA66FE8C366549B7B116DF91519D9C2C1447C89AF9D8B24DC38AF2DD06D33F727C9D196708C3685CAA6931253B2FD5608F202651963C976280FEA62E92862BD6DB035C1CC63F972ABA6D8E61082070C5F6BF9C2560E9333C748AB06CB5C7E2D6DB8DC3D22283910DDD0203928C3A0E455B3785899FB718EE007CE27F3F64A752825B4D48066858130103D4D4784E274711D6308EC4509774F497FD523541C4011D14EDD324B5EB313791C57C4AAF08F1B1F9895D5B1BE938EB8BE42F1AE52737509AFC22135D2D333F5391FC31E46FE8536963B3111DB497BA23A35AB2BFE8B7C8D78CBC5A1F5B4931C249A53CF437E41AA58C02D0C5B753DF6B9CEC6839F63FC2103B1A9C18114ED2F3C5F0BEF869DD7C7152207C59BB99263AC1FE54E08843AD574C8E131B68D31E1A5FF2B9F0C995F4B5176005184755ED4351764521C58AF90F71B849803B41025D18B9D8AA86F7E901D63CA226392584B374B958788A62540AA1E46AFC202869EB6A7BAF734507A414F04007668B1EC8C8EAA56508B0A0F12FC17304DD636EB928D8B95E91194EC62D250694676B6CF5EE3B3D4C0664DEBAFB40B5DB3DF7BB792A2176E0550B3D0B3EDCF9742E99D5151061BF84C47462F04FBE48AE5BFD42AE4C9D9D5FCA43B41A06CE70F24E149F17BD8BA93080EDEBBBDA6C74401E3E8B746DFA3607DBD0765D8E19A2E7035842C7A\nss = F0D44D22D04D1AE9EED8B567437437FFDB0FB5F7C3DB49CDB5D914769ADFD665\n\ncount = 85\nkeypair_coins = 6DFD9B575872560C7BDC2732C4A28DAC4DB04E535EB8E402C3DFFD145C09CE472DC85FEF74A61DA258EDFF86F377FF16F321689E7BA5052364D2448A333C7961\npk = 9D9171D1FC6308F0C7B2015FBE1AA7C3084AFD14382CCB962CC7B9CE97A4FF140F77A87E44960E6FC73CF170991BC57FDE0C406E432253A2AEE4B0BEB4D26E0194601FA576CD89A5BCA45E690833592B874D3B3CF303475F1140A0FAB6129296C51B4A5B30650B8C26B5E67100837D011C2AA7881BFED806F308BF2F99118565CC85323410ABC6E34520B818B49B6369DCA3A1AC2776F75142B84C76A43223FE2B7F78544191AB4F0B9316C3B4495514118C63C1F9691ED6EC30670945DA0A92052A7D2D11C4E0F8BE14B867D4708F6FB4569B6081BA685C78E2C835E0BC29BB416DB14CFDF3C98E8A4AA7161859E2CF74277A4C4731224C0649A01ABCF92EA723784FFC290775282C256D433A64B705899398ACA7E084AB6958C801B27FE8B39FF4BFBB1AAC410421C50AA911706790D3C350B6126CF9242E33A359E21E4B72561F1368C3D2265B710BF0D6ACEE3A5286F51DBF16C471327612EBAFCBCC5E22A5B5196A06336968976A9308C075816727997B7D52E34B648B8BDBF229AA4925B3E5167DD1CAF619BF0D620540F29F6E77091C4B430E708D01EC9E2E0CA44E766C7643084AF17722488F4786A720EC6DC4765E0F558A7A9C449F04333476262D65C4BA175A0E2BB29B524F8465A73436BDF6494578020A425149F3CC0C9B474D5EEA98AB529AA1C97A84B54C064C8902153703618E5B99122D4402681A9C72258137B94091382888B4636CA983C79A944A4BA0169A730F7401D58196DC193742FC4D20ECA71AD359987086ABA19FFB05C0E09A0A8581844774B12BEB3692E055DF16B67706902D625590037997A3BEB105931AFA84B5FA389FE2B2BB2B5F521169F18B012D17A5AD203E2508958954B8FDA5956BDA2126503F34C571457056B333C9DD265BD9D4A9EA601620454BF020120D5A0E99F837CCE92E20865DD7870A1AE12F1DA8B369C814FCF63A9FD830C4827F6B151449879C4BA9691E68A02AEB89F362A9BD57909C3AC1E064780FA1C74BA21DAA4B6684BB64EB108987B18BE7683924E3202D45A5C4F3B2AED5666A8CA54B48C32BC55B60064D27B53E51222C4DF502C8415089255E8A095EFAA822B892B2A0A17A146216282991833338553C8BB4947D892923010711084A19435B5C3F6A6AF7F89457AC8A5EA4679FA2921692C8AF459AD8CB22EC187DFFC3425D88B6396CB7FB627F5FC718752658A5FC92539668C7327B90B26572FA8BFCF705F11422382079E2333AF6B51E65310751343764BCAF5A981A260109986B5C29D2691F4A981D391175A21E16A13DD2501F5A256BB86169C63BA737296A5BACC65781B8CE07B4B8F28B173B42F802BAF5F235BC06C9D752351980A72B52250269AD66A098FC9B68AD57C698A014B9D1C278F3559B361E3B8BA2D690C5380765DE0B2D0E3C63792C7F9C8122B297BB8CB8381D6780505C253399C61D4445E244B4669A3CF1CB7DC227CE9655A9EA275AA5529FD8CB5215893BEC6A64201629031B16A8957623B0619B33C6B90C78F4E21F8FFB94D1A6648D330D91096BC87093417B1BA6E14EEF17CCF3923A84328B5B60ADCA0C4348D9198262B27FE56EFF73566BB5123D7CA987A26FE9A00D41A2405FE31AF48BAA3A5249E4C6A638985669D576DC7C9BA575380E959EF93C2DC5DC15CA87CF3F98675EAA87EB5A51CC3450B946B810D05D94A815376868C5D9594FD02891637FF517A6597A1272B7C9933C544793AD167B1537B478EE3A20C8B874F5FC95AA46851FB1610453583B23C280838573770609344F14C4CC1DA33720B3257A53A8E58C1C0EE500A3E4781A2CAFEA727FF3B86CCBEB9FB63B0F215AB297ECB1485589766CA828332942EB9C4037BD76AA1FD24160FEBB8DC499C486A6125C137B77597317F06323C901ECB7B17B75180C71C6B1646751F2522F1A7D13CB7DBE0AB46385AA94B84ACB565F32470FE75B7F9C876287F2AD5B0B52E4B5AAC9A43EB17B207943ACE482B46123652F7460CC64427710603A8307EF748C37F5784E0379773CA7576589C7CA30EBE78F5905B350C4BC37591BC1A926D57C0DDB5B52024AC3861785B6134AD8C067C5E9A47EA96F57B40426697E12846BFDE94AF1B27AE4305EDB932B79AB745ABCC265B8C7A37063DDBCC972C26864269EE557785690AE6401B7B384EC61A83F9056F3665E523A0C28D48E778B0314C1EC2A83EE9805D0\nsk = 46F47850E2B9AA4A6D209125BE58806002C278A6295DA7A4FFE85551529F17D83B358B243F2A622F353EB6138CC6380F8AD3340D7575E865A6CFD34BF473A3DA8B9FC961CD921452D09B3209D041D6612576C573B08422715160B891A3370268468078F5464D7E5B84B3A3793F0C7CB2A0A13DF37B9763CFBF054C768B1E65A00E8366B406251F812C5D428853D0E00F7BD58A8E348275461C1336C2AC6A39783A35D849AA9A847F37F50BE0B95F617BC7ADB28C0506C16EA3CE89AAA28A9252F0E228D0FCA732289D05D9395133A82D8CB76DB2023924273B39CB52B5A846F338B96C5B6F3ACB41C7265A0C5B13094231F05943D58875BA7C2A6889F16107D325AD1B810A0B3C9E8928169D440194BBB90F771796856F9878158A432EFF742FBFD5ACAF59521E361F448C0BEBD805A1B4435D0761D0448D83E1201A506A0B0A4980172D05E88D7D87B42054680CDA74A386027AA4C3C5193FB1A893BEC2722D55AB9B840D99CC81408153B383345192649EB99825BB4B1957326C4791A2722951C0AB67472F4841C20C23926C3C331F24C360E81977C2791FF3171C2C489B68C923B65D8EE6BD2D510E6AE97FB771BAB401BC1A42935F38A0FD43AE2F8A24D8FC3F6E15C2C6BC800B73CCD8E91C592452484B44E6B2A624881064526182950349C78C7D58180B1676B5191EB6065C50596232B9566E4B8F0635A7D71927F8EB8572E62D57996DDF66CFED2147DC3451E95C034D6B9145BC0D30C915D66B1CCE367406212F8BB40755091C9CB0306A490EF5336E21F82C1B7B6CCC8980DA28A348815112F00C57362EB163A36E016D60F020BD12B6796C9A88A8AF4E833FC4585652E76F2FF77DEED799757C7F64E07EE6E6A300DD1CBBC840AF561746D279BEAA71DEA5318AA3CB3C4C63C4A91E0FB60D6DD6ABF1FB24D1B078DE9413F1B0BFD8916577C4CC9E0B0C332625A5FB705E94BABBE0659E022234586529A194012A6E9E7650C504C380436E1DF83E5C5C9E22F79F394BC0F22A0ACF114B90829B43112FDD617089C8B9D872B70D7027D74402B65058347B56074BA33FB91998E5A559D46622F5423808C8236317767A32E4772AE66CA472EC7828D682D045835EBC5E0089B0FF955DCFB9605214A3E5087F7EE57D5369ABCFF1BE00C7BBC5B5B25A0C1D853424123C98FB330318432D324BBC7330342224BAFF909849D65E1D08A77E07D07CF16CE6F64FC71374EEFB66BF9C742E518F2E30C480F82652B81C4CE7BF42593B990980D94062F96A7178258F31E2B90E86241C04B7B44057BF4700A040B6C0B08E4E8A6BF1CB1EEF738F51CA9BEB9C19B94B1CC623704A6C2455009F48B4CDD0F4A5D7F06320457670DB92C7A4371743593600022DA4600C56296D336A52E98888818CA10282D4767010A7ABDF81BB6752048B5B163DA385D7C5CB134108ECB03398500C1612A1BD563B21A0BC7B94C9719A75BF3B3E02143BF04A7E3D9B0070C4B449CB9594A1A8BBF871E595178BBCB611B466A8677905443ABFA1601A9664C5F54F36DCC1DDF35381F586B4AA4566C02BE610186DF8493A30479F4C72AAF049A6666E806B13FD77C3B738721F81218B48984EF374BABC0156F94ED581133C180C9CD067DCE401739190CA80CC8D441B78A986834033ABE3432F863CBA79CBBACC2E5463BC3BD1B0F1307140D56A0E0768691747143721C76847DCE7B86337A584A146DA0C664D904441441BCE3276C7D8906BD336EE07452626853098444339824DC5A82D0B515164882C99851C189DE092CC955C9FC53C041471C4E4F7CC8D16AA74D83396D88264314912632E87F68F36AC0ABBE568F1A5BEA9E807C21A57E7103B4FFBCCD02A5FE3774E54B40E6063AF2CD48C73E82D1D2CC893C35434472E2A892A05D566B890369F996DBBD9C1D8D542D29021D2F4619D89826DC45F4212BD2E607E92F80B75BC9CD8A803AE3A749F539165CB2BACAA005A2787DACA403C83BAA258B7E8061AE4D11B5D255B12D6CFC4650AF458A4B0A37C69CC8774BC4F51979A120292EC6C8D7193C5B52021B452807AA78C2C26CF4E4C2FE6236D2F3CCF5273BD3DFA2653498B5B681E18996098CB3F593947FED05A927223B27619EB484BAC5561BC7CA8A112136501A461538B23D07B47B3AE35420D9D9171D1FC6308F0C7B2015FBE1AA7C3084AFD14382CCB962CC7B9CE97A4FF140F77A87E44960E6FC73CF170991BC57FDE0C406E432253A2AEE4B0BEB4D26E0194601FA576CD89A5BCA45E690833592B874D3B3CF303475F1140A0FAB6129296C51B4A5B30650B8C26B5E67100837D011C2AA7881BFED806F308BF2F99118565CC85323410ABC6E34520B818B49B6369DCA3A1AC2776F75142B84C76A43223FE2B", + "7F78544191AB4F0B9316C3B4495514118C63C1F9691ED6EC30670945DA0A92052A7D2D11C4E0F8BE14B867D4708F6FB4569B6081BA685C78E2C835E0BC29BB416DB14CFDF3C98E8A4AA7161859E2CF74277A4C4731224C0649A01ABCF92EA723784FFC290775282C256D433A64B705899398ACA7E084AB6958C801B27FE8B39FF4BFBB1AAC410421C50AA911706790D3C350B6126CF9242E33A359E21E4B72561F1368C3D2265B710BF0D6ACEE3A5286F51DBF16C471327612EBAFCBCC5E22A5B5196A06336968976A9308C075816727997B7D52E34B648B8BDBF229AA4925B3E5167DD1CAF619BF0D620540F29F6E77091C4B430E708D01EC9E2E0CA44E766C7643084AF17722488F4786A720EC6DC4765E0F558A7A9C449F04333476262D65C4BA175A0E2BB29B524F8465A73436BDF6494578020A425149F3CC0C9B474D5EEA98AB529AA1C97A84B54C064C8902153703618E5B99122D4402681A9C72258137B94091382888B4636CA983C79A944A4BA0169A730F7401D58196DC193742FC4D20ECA71AD359987086ABA19FFB05C0E09A0A8581844774B12BEB3692E055DF16B67706902D625590037997A3BEB105931AFA84B5FA389FE2B2BB2B5F521169F18B012D17A5AD203E2508958954B8FDA5956BDA2126503F34C571457056B333C9DD265BD9D4A9EA601620454BF020120D5A0E99F837CCE92E20865DD7870A1AE12F1DA8B369C814FCF63A9FD830C4827F6B151449879C4BA9691E68A02AEB89F362A9BD57909C3AC1E064780FA1C74BA21DAA4B6684BB64EB108987B18BE7683924E3202D45A5C4F3B2AED5666A8CA54B48C32BC55B60064D27B53E51222C4DF502C8415089255E8A095EFAA822B892B2A0A17A146216282991833338553C8BB4947D892923010711084A19435B5C3F6A6AF7F89457AC8A5EA4679FA2921692C8AF459AD8CB22EC187DFFC3425D88B6396CB7FB627F5FC718752658A5FC92539668C7327B90B26572FA8BFCF705F11422382079E2333AF6B51E65310751343764BCAF5A981A260109986B5C29D2691F4A981D391175A21E16A13DD2501F5A256BB86169C63BA737296A5BACC65781B8CE07B4B8F28B173B42F802BAF5F235BC06C9D752351980A72B52250269AD66A098FC9B68AD57C698A014B9D1C278F3559B361E3B8BA2D690C5380765DE0B2D0E3C63792C7F9C8122B297BB8CB8381D6780505C253399C61D4445E244B4669A3CF1CB7DC227CE9655A9EA275AA5529FD8CB5215893BEC6A64201629031B16A8957623B0619B33C6B90C78F4E21F8FFB94D1A6648D330D91096BC87093417B1BA6E14EEF17CCF3923A84328B5B60ADCA0C4348D9198262B27FE56EFF73566BB5123D7CA987A26FE9A00D41A2405FE31AF48BAA3A5249E4C6A638985669D576DC7C9BA575380E959EF93C2DC5DC15CA87CF3F98675EAA87EB5A51CC3450B946B810D05D94A815376868C5D9594FD02891637FF517A6597A1272B7C9933C544793AD167B1537B478EE3A20C8B874F5FC95AA46851FB1610453583B23C280838573770609344F14C4CC1DA33720B3257A53A8E58C1C0EE500A3E4781A2CAFEA727FF3B86CCBEB9FB63B0F215AB297ECB1485589766CA828332942EB9C4037BD76AA1FD24160FEBB8DC499C486A6125C137B77597317F06323C901ECB7B17B75180C71C6B1646751F2522F1A7D13CB7DBE0AB46385AA94B84ACB565F32470FE75B7F9C876287F2AD5B0B52E4B5AAC9A43EB17B207943ACE482B46123652F7460CC64427710603A8307EF748C37F5784E0379773CA7576589C7CA30EBE78F5905B350C4BC37591BC1A926D57C0DDB5B52024AC3861785B6134AD8C067C5E9A47EA96F57B40426697E12846BFDE94AF1B27AE4305EDB932B79AB745ABCC265B8C7A37063DDBCC972C26864269EE557785690AE6401B7B384EC61A83F9056F3665E523A0C28D48E778B0314C1EC2A83EE9805D0E0013FF7EB7B8266EE94659F3372F5981CE1D87584CB1F0E80DA2C0C95C16B4E2DC85FEF74A61DA258EDFF86F377FF16F321689E7BA5052364D2448A333C7961\nencap_coins = 147C065D7CF409A115A8DF448134E1081E296F120729CA37B4185B73E2685931\nct = F19D2E434E400CF9247CBDB0F80DEA6F915E0BA2F35F34E12DEF57A78C4D2BA4E2A21B91010C6DCF9C4B5FC01EFE0A0D5CE009FF0A99A4FA6936EC0B05AF2719BF504EAE1882E72EB2EA004C7F7851AF09A53648B73BF04D5180ABFCF637BC0023BE8094D087920A3725C6BF8336EE3291F4E0ABA39EDDB375B584E9C97CCB5DF4A1493B33AB3EC9805E2CE4BAA4DB900EAD14D2AD98277EF8BE3846C94DCF14D580CDE90E79901CA979DC21900EEEC6DB34E64EC545729B64FA44D0554FF5069A7719BF492F49E013A2476DAE80403190AA533A284B5477417B583A52D394D4DEA4FF189FAA8565199D245EAEF076F2E7545D567F5F132096F1E59ABBEC88742F18B86B929BA65A3EAAB1A6EA863BFDD74FF3906C986993FDFD31391F579023365CF7617B023A941BA8113F9BDB25B5E38342B5A5B4A19BFD7EEBEA0D55F4AF28159F005E00BA5B6B6D747937D6F8A241C5148C5B7C9FE71FCE6EF49EEDF0BBB4BC3DD9D216888CBF74D70476C9DEB3FC80A4F159F61BC630918F0C2DAFFDB53394874FA5E5A721CD2C543DC251025987AD0D1D6CCE864EEF703AAC68CDFB250546C63E03E460C0171B4CA76D1E5B08F46698DE04DFC41644CB16CB01837FD9906EF09A8EEA23B0D8B08D95A920C60257240410644664558BFB730ADDA7AD8097E77C65DD0CC4194994A4416C82AD89C3F3A0ECECBA52F60268814E729EBE79F1F6241B203774C2764AC90FBDF0A4C02B1C9ED213DADB0ECBC9CF615CD7EDF5116430A298D29ECF739949579915DEFF4B999D6D656A270A433614658872356DECE7C17931EC8CB8174345CC43050FDA0DC4730F85DFF7563665721F47E82C990D9995843A7D80575E1EF9D990CB083BE93FA5E2898391D3CC1F84FB15902111C2FB3B069992A7585B33CAC7F0A2FD7C431B4963172DBD76F27B7F36F7F0186B649B1D57F06831FEA705943771CC52422C0EFC41093D9DD1BBF4B77AFF1661386C4C5450ABE50AA88653FB3EAEA41DBD0D2A34634A28C6252DEE68358F471F615396F1B5952E78916170EAD8CE4C9B53EF2E7E2BE1E7E8459289CA75B0A4D2FE33EF1554E8369A469B50E88843FD9AD8C1A9D7DE7BC9F751AD4B9B40D8433B862434BE1ACDEEC898E4BB889FD0996B0499032ED11BACD1FC1DF87CA00F49EB2752A058C795178A9025259B0246B84F7C67B82FDA17C89578A59FAC7BB8AA45005C0B4CCD258C656385092E98919A70A30B75862D02D11972546A813C855B2CC49A8E352BBD43B2B79ED5924928E91C61BC62F0E1F21676ABF1729113CAE97841B862408AE84C3DD849F6E64E2B764DD4C7785820886254410839AADF0121F00F42E10A7954164F168A2A5430F386506865E82ED34A0D38B95737D0D1840D1E56D2DB437570D875AB3E64162654EF6573FCDD15381FDB2F110882553664D6CCDC18969FCD2734C491F72B25EB8618731E97D8E38EA43E3C08B2E1DBB0EC63BD76F331D47FC9A28FAA749F9773C719E0A9464819369E7FBCA6131FEE31126630F86A9E9B237C0E0B9C6C3682B4AED3800EE6F8A5BF7DC672F2114597BADB34FBB918E50A41131A7186160CF017F96903EB5F14501FD8A82ACE2713E43C247B093834FDF27C15977F496730F9EC11B3E2CB274D1E5E48AE7E164C5879BE2F3F91FD7FF5D1AF15A71338871A927733D76007BAD9C099B0D2585EB253202D12BD75D7A830EDEF0740FE8F25393BEC7BA86CCC035E306CF28F736CF54B33F937ECF962921A2803D0702223BDD9737974DDDD8CFC795867D29C6702AEA4AD39F4EA83511678C5335C8FF2740CD192152013D19CAA4D352850695E00B35EC13610B5245C2F33AAAC44A3F9B3BD388601A2AC09D9C83FC44739649FAF6377CE8B3AE50253C98D6342052687C0F6BBE97698A131F2EC98EB30C4995D4CA2F97AC5BB4F188D58546C1E81D40C2C3D2AC9AF1A5599ADB68A261A5F1B9C3C8016899325EBC4438121FC373D989C5A0E35B79D4495B7506DDBCBFFDFE0C969D4A6AA140A70C5482E8D6591CFBFD9FE7AFE52752008A2C1635316CC4BD92A8B2F653AB2E7D4CB8501B70B3289C3D97ACB2B771B9260B5812011662D42DD5E0A0DE55DC19B7889F802CED54F00F0DB36A2EC8F7FDE988F6DF623F18CDD5B39102157B065C54B675120DCCF2B5EE6DEE0E4003F79EEE997EC33570154355E1CCB23796217EB67FABE\nss = A8360F2661D7A9E5A95DD771B2D9783C39708C49F792A5D2CB354990D14BFC36\n\ncount = 86\nkeypair_coins = 6FCA9F4E384D8418075CC064C70730801BDB8249899D456A77130D5BEEB3662CF4626AFBAE65EA913CDB263C9615A5F66061CCC74B1AC83B5FBAB8FA1EB6799B\npk = B2197FB4A3AB3D470A0AC937D1B37A3AA5B4F6A69BFF4C57A8306AB886243EE6B34E8922F9B416FAACA70A850D9AA008B382383470C0BB971027CB329CC91A9D89BD46B64E26B30DD01069BB8C99EC91895769BB93661B429A0A2C6BA5EBEA62CC6B6923B27D9B99B8FE2A01DB93A6FE6362D530093D4167EF35626438A949AC2F77772B1FFA65F0C771A2C18CEBB2B9A3366F42782353B07961D485B7B70020A36C5375152F558F3E028FBBA53405F58918541AFD0B89E4092B0EC372CE48C4222A6B33A192D380A1A133272A6B2A66816F33E410EE02362F6BBBE44976DFAA4BDB99BFE9897894C254E5A51728858ED386980C52064EA3A1A837B5BA02BA34FA6DE770B001B9A9FCC90FDA64359F37B85F203C0FF5CF1E7C4681E990A11183D158269267722441048911B41BE8B63DC139859973EB4578C929B730B1CC93A4CBB6CAAAD874391687732EB99170ABC2812865C3FBCEF19B732ED91E02930C790BBBD6F411BCBA06769B779E125AE3788D5B3844A3A7B4DDF8BF3E53274C29AE25F4573A459FC2093CAECC197E050075262C7FE590B9A90DBFEC86A2546E800BA726D344C0C667445B35872059365626C4B9AF412B701E00392171B1F8922129123F05F3696F47C405739E0460590A52AE7C875F0A088B0E4924EF3711B66B3FBDC7CF9C183183F8CB122570CB2C5F18F66FAA2CCCFB42645F3809DCB623DD48936C0440DAF036F12BA9F3573623360FF00AB58604106FD820BBA7A9E9B09B7C022262330627302E0852B70C020432235B11D750BB5A700B123DCE093E25C993035CC1C3237743BCAAA3620A33B16DADBC93555C13AB0781463A82DF942B58930CDDE7AA1F256CB7860D0704A7D82182CD494BD803684C4CB4BC278655F31EB439C9AACC78CE21967EA07E1A6B99E7F8253229754C7A97FC6411549641018CBDDBE2CD0FBB12F35C0791031735D4AB51C62E2336025F0B327BC82D92DC91DFE544DB159319215C40666B86917BD2A889DE8647AD658C16B9A3E1D21532011FD40B5C548534F9151F39DBA83CC3170DB022D488662A0223C750A1D4E048CF9157BDCB0C75185E774AC10BE2B0FECAA021613CAC50461A380F419A9FDF075787FBA921A6A9F3BA49D78892771994FFF11A57FB27DFA895D4C2A58820798A7B0BCC096B2F591A4C53BFF56B054F059E21330C308A2AB9E403E5B6B7EC7574640812464710B508043FFC3B5D2092AC45B39D0C743EF1873286A6779C15669B854549A156", + "B77D42DA9CB39B868C70A037D9737746B6F1B91733C41C610977A5F66B98A167D9A15E4F8750EBF00876783BF23B9E023793B6C54AD3A3C2D33AB3EB0A2A7CCB9CF3F187BD8B358564BD9948810F91B9DC426588C51432C83A4D704677F2918F6670E611A410014838E9BE4C12415CD64CA1AB5DC5F81EE8610ADC6C29F5DA8224093D350AA4B7988303411B1A55A240AB4AD7900A4F3718A58901371623DFCB7515DB485D1736068A1549714402649B1CC322ED093EEC5022113384B8E40EBD9AB8654393C013C99380BE30E16D565170D2F20D12859E795C2EB28C8900910E3B294302D420193B540F826B48663F726304CC936FDDFA8FEC5304D2100C45D3A0B9308FD032B535780DD6FB7649410867E610DAFC425202316718AB0104552393084CE56E2A36A5EAC1B0CD9899E3FC2816F94B59CB76C22742F736AFD60B9615130CAAE76F905CBC1414C8274B11B713CD049803796A8BA121A95E946BE67418A205759A3A285AA69FF254BC2B39AE75021227C6C48A377F9E2267B3725666E6480920949C413A1E805A52F159FD216938D0AC4743BA060B7FD8AC2071C7022C66680D80AF15736C5A3500826C1448E601058BA38C278DF84A6E65357ADF6735F114BC17011EB9BC48698893ACB932BF6AA9D9F845DE9C4E4D4A1C93A1C9BCE1023181746B7559BA6370FEF77671769CBB53B2D6F123CB800F26CA8B6DABC7C24560D29561D8C0581391329E73209551BA29A579CF40C6BF792B0801B1D24204C20139CAC32BEAC739E2269440C02990568EF2A9CDD3756923A100D97C42D45B71B0432176238C8C69AF81755B194A2AEDD65C1C4118A320C4AC672E78BA69FD80828B7094227BCBADE5536F95B440FC9B953B4E0729BD185CA617560546EA3591818F0DDE74E33983C010419218B08822DA9C3C62EAE1F2284801B3E4\nsk = 8747252C693A0D6C06AB66071B13517E1C45ABB370D26ABA3FB31641A170B365C5F6235D1FD688D81C72716A3921420D228A7BD5A1C48FF445C47489B8116B7CA14D3EA78B20A7B5E579C5681187A2AA8FC900557501003FB9BEAD185BA9E7939F247BF1757EA66A4392095EA90239A3C67A8CA70186047D9A6B06B8887FAE01BA8E556319A003934C88DDEB05F9F3B4964A6545E8443F57383A2BCDAFD96C794B399296615BCB9C59F8703595709724B6A4BCAD06E116F4542C4322072E3C6713015B1339512419B4DAA8C87F5A8BFF481964A8AB8A101943230F9527A10A604DF6275E1EF18FE54A57D7544402134AB77802333897D4769AC23093F9B951D735B5623452C90270A0896ED3A81BF1191E451A4A67A4542556AF78F1690982360FF1BFCFF66386827DF93BCD894AC8C996BE6E0A29DE70CCD459B9DE46ACC9E8043BB82D01C40E5785845FF4B0DDB8184AFC5E52A72E899093669A9EB110A100A1159241BDD40612A9B1955B1752810764E7B68D89704A61442ADF68108AA229E406CD10B6527A39A6B46068685B5E802CC25614492DBB6E06BA2160E930733956E7B29AB9981D4B477CD4EAB880E56EB711B278F540AC204A996B32FD06B8BFCB7729660CF5125FE1626199F6285DA628FAF491DCE2CA3BF285902350D52C0649339F31EA3AB764B90701BD647194FB27383681C13470B8D5CCB61DD74C5F666FFEA7B0714C469C4803107235599C998349B5BE7AB9E9DC6F01E928593939270411EE2490F16C54BA672EE03B710978760B962319BAB3C2FC67CD9C2E9D4C153A8717826BC4C3D6C7444C051A61A06A2C87A1207A20754E9D7725B91077766871509CCC93F5A1FC1C20680263082801F6B81E8F319B92110F2DA22F0D8C251EE4531B127C44B378DA6A0D26F55DE3285190BA1357012E42521CD1855252147D1ABCB1582422F55091B5EAADE93194CFA0BE536343A282C4A948C355984CD20A7CA454BA034AC7355B02730107A71B3986FA01FAA38D17E07494FB510E5526F690BFB27294FBB963A0606E140A182A9A247029ABDFF6BD8E876EC92207312432CC2700EC4C6A4A7037C5B612EEB2099D54872A5884E28981D794C7855590F1F1464017C8724BC92E0B644DE92B5B80A573F641E4E65BD6F0396184086D6A5A50662F9CC6241FB7241D194B6D23AE6FA3C59FE60C81309FF7E39F93F72BCB0696EDC771A80CC5FFC74138AC9D01B95DEFE7258BC555E3E28CAB6A73372337EFA0B4AA0C7D13B312A7313F8B63426C6677407903822AA1ACF4ACF4A130C4C68DD4DC47DD061ED0A4969E5AB630BAA11FA0AA51133C6509C83E603425A385730AA0E07A2BAC0754358C812F483F5CA6BEF3105CCE4CC33532116C6493F19880F693581E08999BE24DB44B84970C8FA4F6784D50614CDC9E626A31966ACF81309EA6A730EB42011663CF10A90A9EC12F3FE133A7D02CFB95CECC6B52CC08571BD03E8315532B7C76C2040B60E9021A24734854B6A3D77CBFD087015410B7322AD5D9B04F651F895AB5BFC25F8CC9703BC67DC5EB5AEDE41682A17FEB1B4339335EFAA44A64E8B4EB0BBE17FB00875A06318C1E68C42E6CE0946A59C61700A7277976E2E8BFDA906DAA229D20732B60965DC5D794DC5306E68226AA18081486C28B28093B12280FA2965CBB012AB67A05664950A069D13332BA5C19C8D8C7583C1F74E4AA60006C3E2C9B8DA1BB8E1935730C31D3EB066697B4FA93AC65E21651535AC1D3983C915B72EB260980C37033AE51C833E4E3C1CDEBC03A7B17E85C224CA078DD91024805C444D766BBA603F225073846BEF949937C6BC2A6BB4519A5B00036A5D688B354E64775431AB18C37B0167495B31328454368BA49EE2A542447466269C6C122B78AC44D60C983650237B2957FCE240D39817180A1898FE589C0044819037F1F679AFF2C11FC4C0D2E510FE35272D1F823C2781198AC1859E2CE252709D4BB8C0DCB64C4F2BAA33985312A1193095379D9CFDB508CE634A0E305AD9D554053950BD8B902EC462D0A1910303B4BEDE153B11C915DBB1FEB52B312C42F754C0131C1218F4CA4402C4D74430B9415C586419210196EAB4C6BA4587FFAAA71583C97C329731CECAED1414AB3ABA4D830A834D6B8013495C89C4B413414B2197FB4A3AB3D470A0AC937D1B37A3AA5B4F6A69BFF4C57A8306AB886243EE6B34E8922F9B416FAACA70A850D9AA008B382383470C0BB971027CB329CC91A9D89BD46B64E26B30DD01069BB8C99EC91895769BB93661B429A0A2C6BA5EBEA62CC6B6923B27D9B99B8FE2A01DB93A6FE6362D530093D4167EF35626438A949AC2F77772B1FFA65F0C771A2C18CEBB2B9A3366F42782353B07961D485B7B70020A36C5375152F558F3E028FBBA53405F58918541AFD0B89E4092B0EC372CE48C4222A6B33A192D380A1A133272A6B2A66816F33E410EE02362F6BBBE44976DFAA4BDB99BFE9897894C254E5A51728858ED386980C52064EA3A1A837B5BA02BA34FA6DE770B001B9A9FCC90FDA64359F37B85F203C0FF5CF1E7C4681E990A11183D158269267722441048911B41BE8B63DC139859973EB4578C929B730B1CC93A4CBB6CAAAD874391687732EB99170ABC2812865C3FBCEF19B732ED91E02930C790BBBD6F411BCBA06769B779E125AE3788D5B3844A3A7B4DDF8BF3E53274C29AE25F4573A459FC2093CAECC197E050075262C7FE590B9A90DBFEC86A2546E800BA726D344C0C667445B35872059365626C4B9AF412B701E00392171B1F8922129123F05F3696F47C405739E0460590A52AE7C875F0A088B0E4924EF3711B66B3FBDC7CF9C183183F8CB122570CB2C5F18F66FAA2CCCFB42645F3809DCB623DD48936C0440DAF036F12BA9F3573623360FF00AB58604106FD820BBA7A9E9B09B7C022262330627302E0852B70C020432235B11D750BB5A700B123DCE093E25C993035CC1C3237743BCAAA3620A33B16DADBC93555C13AB0781463A82DF942B58930CDDE7AA1F256CB7860D0704A7D82182CD494BD803684C4CB4BC278655F31EB439C9AACC78CE21967EA07E1A6B99E7F8253229754C7A97FC6411549641018CBDDBE2CD0FBB12F35C0791031735D4AB51C62E2336025F0B327BC82D92DC91DFE544DB159319215C40666B86917BD2A889DE8647AD658C16B9A3E1D21532011FD40B5C548534F9151F39DBA83CC3170DB022D488662A0223C750A1D4E048CF9157BDCB0C75185E774AC10BE2B0FECAA021613CAC50461A380F419A9FDF075787FBA921A6A9F3BA49D78892771994FFF11A57FB27DFA895D4C2A58820798A7B0BCC096B2F591A4C53BFF56B054F059E21330C308A2AB9E403E5B6B7EC7574640812464710B508043FFC3B5D2092AC45B39D0C743EF1873286A6779C15669B854549A156B77D42DA9CB39B868C70A037D9737746B6F1B91733C41C610977A5F66B98A167D9A15E4F8750EBF00876783BF23B9E023793B6C54AD3A3C2D33AB3EB0A2A7CCB9CF3F187BD8B358564BD9948810F91B9DC426588C51432C83A4D704677F2918F6670E611A410014838E9BE4C12415CD64CA1AB5DC5F81EE8610ADC6C29F5DA8224093D350AA4B7988303411B1A55A240AB4AD7900A4F3718A58901371623DFCB7515DB485D1736068A1549714402649B1CC322ED093EEC5022113384B8E40EBD9AB8654393C013C99380BE30E16D565170D2F20D12859E795C2EB28C8900910E3B294302D420193B540F826B48663F726304CC936FDDFA8FEC5304D2100C45D3A0B9308FD032B535780DD6FB7649410867E610DAFC425202316718AB0104552393084CE56E2A36A5EAC1B0CD9899E3FC2816F94B59CB76C22742F736AFD60B9615130CAAE76F905CBC1414C8274B11B713CD049803796A8BA121A95E946BE67418A205759A3A285AA69FF254BC2B39AE75021227C6C48A377F9E2267B3725666E6480920949C413A1E805A52F159FD216938D0AC4743BA060B7FD8AC2071C7022C66680D80AF15736C5A3500826C1448E601058BA38C278DF84A6E65357ADF6735F114BC17011EB9BC48698893ACB932BF6AA9D9F845DE9C4E4D4A1C93A1C9BCE1023181746B7559BA6370FEF77671769CBB53B2D6F123CB800F26CA8B6DABC7C24560D29561D8C0581391329E73209551BA29A579CF40C6BF792B0801B1D24204C20139CAC32BEAC739E2269440C02990568EF2A9CDD3756923A100D97C42D45B71B0432176238C8C69AF81755B194A2AEDD65C1C4118A320C4AC672E78BA69FD80828B7094227BCBADE5536F95B440FC9B953B4E0729BD185CA617560546EA3591818F0DDE74E33983C010419218B08822DA9C3C62EAE1F2284801B3E4B503F8EC36D39FC7B4B8ADA1CBB933B9DB9EE118BF081ED75DD5DBA7590F6C8CF4626AFBAE65EA913CDB263C9615A5F66061CCC74B1AC83B5FBAB8FA1EB6799B\nencap_coins = 90CE0644A11E7225DA1F86E1D34D506FCE42B809D968D23FF0C6AE57AC5EF075\nct = EAEB6BAC1CBFAA0FEC3BAFFD32D76B5EC1198BD58B41C1A8C3AD242ABB0EBD8885327667E70014DFC9CA211E205B9C9FB41449CF4BE000F0550E80B84DE0DCC4A4ADEDCABA2DFF49F19565271B81208C0C98CFA4EA5FBFA7D13980DDFE5F27B37EF7589BDC0184809189F4A793F6EFBECD0CE9B5AEB642592247AF0C3E7B0261DAC950B751870A5053099D5882F2106477FEDCAB48F933E2F31D03EED5F6284EA44C6B55248C3999BCC2B16D53B3B6989F7D49D08726FC58A032D51E2EA7CAF4BD2471A68E09C0B36FD6550062565C64BB6EC5E3A", + "35CD020AD283C3788C66649CF7FA73698C59F33CBDA8D9ABEB09C03FB51130D00506D08B2BD85FA7450FBD4FF37DE8B210C60B74F3ACDD79481126B137A941D2ADBB75107D6D36BFF43175E32C00E2E2A956DE35DC0AC2C781ACD762CDD8AE2CA7380AA7FD51493436D708A25449FD10ACA4599F9372FA85DCD2A2FD4250B942214FEF6C488B25B855AA439E31BAC35AD38DEE989A8458DB741D28BE5F81979119C62C74ED57A11045574527E7471A12E62C27E2015E70E63AE57AB0954B7D1E864EA2F65DEED7D5F400A36F8C90928A90CF8203939B8FC8C99CE4956B7821FBE17E38915F16F567A4EED992665D126181B2C2B9EE0A3F33ADA790D37313ABCAA937FFAB4C9C6D23D4B164249D4740FA3DCDDE625046676342B1C7729E9C38C7AC183F588D419B0DD48C3BB6A77CEB7AA33B28BC3D91C07FA44BA4816F3607F44DFE0C7D4EF142C626E335657B155D8084CC48BA5F02C8E7BE8D78CF49A5A10D8E3DF0E3872574AB24AB22068F4E1263F2D0230BC8715ABB66789B46114ABAC8D7D3E3E83A89F1DA7B6EBE9D92807F22435D8D37D0B8C000D4678E4B88A4EB54BEAE7F129B746D54519CA0196798DAC3F2DC9A12C806EA4A05CCC16734F9791F59BE5F3436C97DB8872AEAD08FE37F77BD0779012AF564ABA74D444EAD8A25394366FEF7F14327137D44CB58271FC225B51232572776FDB04FB651D85E285EFAB17BBA4C70F44F85A4A23159A423217C44CFBCE5BA3792D479AABED9F6001EB3A53BD978AFEF402AC641A52C4019646D1CF0604B646D9126A4C4DCB80CB237E126D8C8BB0B4B5CB67C4B80347A7C76711D8838A20860E56822BE799C828E82F3FF7953672F7EA592A8E899778FDD023EB7B509DC4696F6B0CFD07BE493789B5C71FDA525AC7CA002F393CBD36B5A3710039CEF1689924EEFE6AF541710FF74FF87C9D5E81807392B01C0FC099386B46AD3E43C384D95E3E758819E531BB86E0EB94DAA64B944122903C1908F404298107BB0A4684E080667113722AB7D9E989763F01F39E7F415B40EC812D8A7F80AB40CE5DEBC2C3B01349305BF23D5D3545626D86036C4140CD642E9CDB5C335C6B3C6515C2E22E760165AAD5232F75C20C5DBA8720B2B3FF999C0C149D6C6433948539A95BAF3A2A68B6BF836E4F670EF95ABED4428290BA5A82C15920E9D659B7759358CE1E45B3C2134C8345D0BF87B54EE0F55E6F51F129C44B8B96828ABACE181126F6DABAB74B1D012E81FE1E464DC93EE734A558C542E5588CDB241FD2D29318077DFF889391BAEAD69BFDFE91E972306A94B5C6F81F3824B48CB6189FFA91F416386C64E2EED0062044B106B382A06DDB2A141A10C2C12C393CDFFEEC0CF90E0B96939C5DA45DB23A75226C731C40455E037E599537E9F38DA8A341956BB8A8F21E6FDAE64D6B533E2EFD03A497D94DF029FBDC4B22B15A543151B2937FA782FCC318D4E4F20AE42DEACB89CEFCCE4FA56DA6733F705AD33AFEEA6492BC53A1A8FE2C665A2AA1038DC557F580F06C90EB61AD9E7A8135336070F776FAF49C3D6EB479476ACB3A222172A6119E115E1B80C53B558588CF0F037BC4EA4A989BBB87AF91DFE9D20AAA66809CEB864518D5C9E6B608E039FD9FB1FF48A7EECBDE1DCE8B8B7FC815ABF5F1ADA075C8DF82622BD50B80D3F75C17F79F38E177322EB7174910CA4BA33B5680A9CA1D15EDB70D7F6A6C78F44A7D03B9AEAE1A274D52D0316E30575C9D9D8926D149854D1AAF017EACC3107FB3A7BFA5822236AB78FA6E844790747C1EFDFC666B703DDA6E61CB9FEF7A6708F0314A75F5F3108DF9CF357DCBC58BA2EAAEB5C415EE265FADC8481B2C4136250ED83D7F0F20EC7C892AA52426B9A54F944FCF21EB6FD881F6985B2FA7D8A14A1D482C8BBF\nss = 020E73BA7230FDB0F9C084665FAC5080AB4382046E84C536A4FC6BF2AC6C53F7\n\ncount = 87\nkeypair_coins = E58F71BF175C0550A67E00E0F7B3B7FC36BC2707BF0C93044A492626DE36301AD79909F31E8168AC129FEED8EFEB21F07C02F282CB90F63EF10EB2F4A9ACB886\npk = DD9521E55C85D1AB71750942BAE014469040333767DBE4AC80E4B3D6751F27FBB0EB0418406111C9E77C39977315526BBE1C8E06150A0384CA618001B08554C472464AE8B4B9EB679A790BF0E311FFC20B9A28A2EDD52C4CB51BB739712419A116B1C0DE65217AC429B091BBF94CC9E24886FFB623889028490976074888CA731AE4F9A9E0E4099F149372390BD2B78516044067201DA469C7950BC9C681423B9A45B579160430ADD2B34D3DEC2CE84270FBC019847C017D098BC4224BC9C99ECEF95947E358F0F85DEF6837C5361FCE2145FAECA7ADE0A612138C8CB26BFB534C2087C8DBA4CE1F841E704652A093AF188C55AB221123540A1007190453163A573D166617F452B9B2C7B9638B0201292DCFCA46F4B9C95C1C8A47F44C19380A061B51942636C3BC8950F01186878004DB1EB6A3B2AD5410C3484AEA11A8D38881DE278124C4C2B592B61BD87AEF623DE1B5B8B2D016A2D985976062758849362B2631A8A08404651305484A3B2DABDA9982566822002BA1E83BA8B04C7BE77D4086207E5B8310FC28812584129A4C03E938E950CFD43C3023A8774B42C9338BA497E853BA684C24AA03ED33B36EF8C50BE44CA349BDAF986F38A93676A7B4CC659656715D0FFB8287B86CC0964D3E1B77E7D83AFA733789709714EACD47B8BEDE99AABA2480002C0FB9136E397790BCE939086BA75467340780CC31491E82172803A57129B3CFA3957BB70B114CFA99568428C540B187B98DA9EAA20F3A7771D80146AC21B8908260C2CF79383031FB99CED3BE7C86168549B8E2D2474E96BFE28158D91A16D5230B2F7B27D645C3B2096659A60C78A602457B0EF8553BFF9508175B5E10E08326139AEF678703D39693215D5D821811BB0868E483C646A4DBF0958978352B919C1354071C42BD39E9B9394AA54CA577D9B963F4F35606FA892166AC71A3BFA3572BDA92C2F9872BD19276CF66C31AC6CFED109BB36B77378C5D9A747637F1950CF36C5B22130EB018B607B74A270E0B733F12E426A2EB02FD3713F72C682D87CB6752A6A3037816B9A1278151C662529B54C52655B76C534E09CBA4CCDB85289528B8F0201081CB05066515A3CFCCA9031F386D6F4A411DF397E526B754A0CFBDCC7968A03FFC7349F32036AA4B15123A6CE8D47F87516C717651D56CC7E2147CFF3261EC76C045A32BEB047760295E79F8C501C46B099BB7B508CBBA9B099F612E595B41D32A946E0BCF26A0C5664B70971853B7965725D52BB371A03F456BE855AA495A2E3D9925F6A7C3B98695B5E179E64C17410BACF2035E4FD3B938C98DB2526804C79322230BA8455DBEFA40CAABA9757380944193063335B6721225F40702EBC418022FC2590D00F918765AC41CC6B40D39B45291AF80F721069C7F73096B7B0A202749C70CE672F246209C637375E75A1EC03102940E8C17566B7C2AD43167F48A56C55C6B38D289D5675B9B224B7155905C814E175052A7E67685392448003D8E2815BA9810D8930051B615558CACD704202AD50F52890500E8BE5CDC91DDFCB61948788A9CC2167A0021566A863B875361153B1A57E0C62F8CB11D3B3840F570B922E4A88151AEC22BAAF7559F724549B892575430383473B9183214104006DBFA356E2C31BA283F778776B43530A857C8126780E29C0316C64DDB1A947D747A8ED831135A8146936090FB59192B32B50327218125814B2863F2473B708338390AC2E507715136C8786FDCD1C10E2B0D63D2CEB6A4B0D8DB6F8AF354BDD1BFC6C71AFB627686761D97B761FC0ACA584539117CA416078C784972F67CAADFE67F38EB1996E749E2F11A3C47C389D5C3F1F52D33F14A094CCE5557154001AE2D17A2896AB4D0744E9DD4BBDEDABF34D38C1C81812A3CBE4A065A0D6CA0CF3A9F5FF0268162A5B3D872B6782CAB9149C52C2726079396B01866E00A20BC82208009F625323DF535F1658A1EA29B933368992A89EFA0BA586381D845099C35A299A467CCE67AF2D5B066D9891462114569A2261ACF20CB64CF3819D0E0A4C20A153CFB5EFC9C45501AA26ADC5B26553B520A04C4388D665B098FE52B5AEC48154A2AB5053279256BA4E6975F4764C77A5FAC85275FEC08D62534353B17764177037BAE5F010266767164B307D4D375C85549EDD3261C6E600B1787BBBC13A01210C0764A4A2578D4BF90A24704178F06A4E4B110F5\nsk = A32B081D2579D7737A984126B05465963AC3D0FC3D471B94E30B242699AE3EE7A305D187D9371AF3568D7BBABDC30CA69BE166AAA07C67799DCE7345B2024EE41C5A6F35733CD12EFA19256DDB74440829C6B52AAA25B258BAC8D950CCDEA410535BB3A44A46EBC44F5772CDAD96596980C32A14916CF5C4A2FA8538491F7EEA270543ABC467344FF098EDB4762F658B6B26431B9863CFA7546C1489A25BC9061B8CA0165528241B4BC173BF17B4E7873A5081016A1C55E4BB1E7F71B849274D03E05E866656C126485979CE9660AFDF3622E3051F76D02243E660A5A78C663880A7F9765DF45410926A86ACC7962878B4037CF2960B06F072367B476EB24B8C57924A9C699815BBEB0BB10B2A88B0C63F0171C759D59CEA91C5C043A41A8155E462325893685F18C5458A0AC3E5BF2C696C8F07727C090E1D3502D075A706551C54A00A710027C52CBD83FB9DBD7567ACA2B6EB809C00838E56B209E0C5AAD2E6235E2C157D3659D906452F4A8C60B26F838A51F6789E42C00580E4595A5C0A12B796CB44240A4724C298ABFF1332BB0970A3EC475A434EC4DC2A4AA92C42E22035A4499C66827C882B542A8FB22B6B6054984FDCBD6A637583145010D89A4654BF0BC0A0C3B86788459B659A539833629C1B585A13134D766C9E8003282683AAC1486A934EDD3A7511319A7952B5EB7C5947B69AB5C904B2481A7709C95BCA352DF45E8BB87775A9CB566581C3777E7B975C629C89063C8F0E982A24D344EE8A22221A02C6538154217C453AC0ECD4BB1F820BAAB94D920765C4AC15972AA79BA974F3B5055EFA7FE5BCB454F7AE70E1C017322A20C73EBF278054060687C6301E13B52952459C56BC8D8795044302FC9123921143EC2C73278939826682126B65C7D9BAC044AE6CC7CA40F92C8FF28470E41D51895ADB53AE30216B1ABA552FCC14AB277A872029F3DC8D56794D842BA06770808F1C097787973B0A14280C5FBCC45C102C23821A07EEA6C3ABB4B52AE116F4B38E4A50CFB849177766495463197BCA3197B53AB72B172C163003C9AB89721EFF925F56B59373F5ABD1430B0731419A12BA80641628D78D712BBB74579C0A18A4CB2AA6EDD76FD7605FBF8214A00AA44E486810F3AC6E36345431C23F247F251112CB8A6C76444B1A5277B7C68AFD2C49D4A81FC5069B9A004CDF0587A4A193D243BC5F16357E1B1F280706B4C16F9D8B3B6A5815A1597C49076589D5303A5C89AD320CF6042F2F819CDFF04B850870E807B4F2B6BF99AA8F3FD16E95B3BEDF247CDBDAB048586116DB7A4530C360BB240FB2964FD41A5128CEE9FA6AD434B536345A49BC758D849260B78CD9F3B3E8461CBE906E93B209742C0ABEC1C1BBA9BAA05A8FD05637D26548F48512F5477B93D0BD54F6674158B2F6EA0488191EB023A641B175CC689A2F326214793228138D6DA03BFE4466DC962FD2A7C57102CF3F96CF3A6619D2F613", + "CA063A35F4515C0473140B8EC3C53B1D9974021616BCA2459BC31502DAAFC861990C1B97EA1AB5AE018EAD781A67A075CC4924F9EA364BEC33ED167637F0A643C3A810914A49366AF69B3CC25938E77422832B7078C6BE562513EE3648758515E3C04F27EB5CF0C73EFCE032CF027C7D6916072B6984452CDCDCC5B6293CB98111E13040548C5C4ECB4EA83C01580887EBA79F0D700CE25274F4612CDB8427FE9377B7AAA517F12D2766834314263E27086FB8969A38157D9A02DA83772691184DF5117AABB901899E0E78A42C335B7EABAA462852423748916B9261E834320CB8E8576988321ABA321348E68A424183E010BEF6F0844B8C7164FC967FEB02C76000B372A1547C88C7402347326CB43712BE145E1854649B07AED70B798E845F7C4C5B0457BA58A370A9758940053476750C5168494BD733EF0C6C3A06117AA53DB762440969A1939539F85C1145307526DB7F43EA595833A7A49ABE0D3446F2345FB429C4ADC43B2BB17BAC8C6259F2551B3C28AE1B57FA49889AA6A2503A9017F832666610FC24A4A8657475D3A329D31A793A6A4024330F0B6D7FC2250E6575D8A8947FC30D431CC24417A6ED4BC131B253AF142F2CA88FD0C9A44F811103B064759CCE44E02CBB062458502B71B9083D097F926A0DA50B6914FC70E0858644253FDD9521E55C85D1AB71750942BAE014469040333767DBE4AC80E4B3D6751F27FBB0EB0418406111C9E77C39977315526BBE1C8E06150A0384CA618001B08554C472464AE8B4B9EB679A790BF0E311FFC20B9A28A2EDD52C4CB51BB739712419A116B1C0DE65217AC429B091BBF94CC9E24886FFB623889028490976074888CA731AE4F9A9E0E4099F149372390BD2B78516044067201DA469C7950BC9C681423B9A45B579160430ADD2B34D3DEC2CE84270FBC019847C017D098BC4224BC9C99ECEF95947E358F0F85DEF6837C5361FCE2145FAECA7ADE0A612138C8CB26BFB534C2087C8DBA4CE1F841E704652A093AF188C55AB221123540A1007190453163A573D166617F452B9B2C7B9638B0201292DCFCA46F4B9C95C1C8A47F44C19380A061B51942636C3BC8950F01186878004DB1EB6A3B2AD5410C3484AEA11A8D38881DE278124C4C2B592B61BD87AEF623DE1B5B8B2D016A2D985976062758849362B2631A8A08404651305484A3B2DABDA9982566822002BA1E83BA8B04C7BE77D4086207E5B8310FC28812584129A4C03E938E950CFD43C3023A8774B42C9338BA497E853BA684C24AA03ED33B36EF8C50BE44CA349BDAF986F38A93676A7B4CC659656715D0FFB8287B86CC0964D3E1B77E7D83AFA733789709714EACD47B8BEDE99AABA2480002C0FB9136E397790BCE939086BA75467340780CC31491E82172803A57129B3CFA3957BB70B114CFA99568428C540B187B98DA9EAA20F3A7771D80146AC21B8908260C2CF79383031FB99CED3BE7C86168549B8E2D2474E96BFE28158D91A16D5230B2F7B27D645C3B2096659A60C78A602457B0EF8553BFF9508175B5E10E08326139AEF678703D39693215D5D821811BB0868E483C646A4DBF0958978352B919C1354071C42BD39E9B9394AA54CA577D9B963F4F35606FA892166AC71A3BFA3572BDA92C2F9872BD19276CF66C31AC6CFED109BB36B77378C5D9A747637F1950CF36C5B22130EB018B607B74A270E0B733F12E426A2EB02FD3713F72C682D87CB6752A6A3037816B9A1278151C662529B54C52655B76C534E09CBA4CCDB85289528B8F0201081CB05066515A3CFCCA9031F386D6F4A411DF397E526B754A0CFBDCC7968A03FFC7349F32036AA4B15123A6CE8D47F87516C717651D56CC7E2147CFF3261EC76C045A32BEB047760295E79F8C501C46B099BB7B508CBBA9B099F612E595B41D32A946E0BCF26A0C5664B70971853B7965725D52BB371A03F456BE855AA495A2E3D9925F6A7C3B98695B5E179E64C17410BACF2035E4FD3B938C98DB2526804C79322230BA8455DBEFA40CAABA9757380944193063335B6721225F40702EBC418022FC2590D00F918765AC41CC6B40D39B45291AF80F721069C7F73096B7B0A202749C70CE672F246209C637375E75A1EC03102940E8C17566B7C2AD43167F48A56C55C6B38D289D5675B9B224B7155905C814E175052A7E67685392448003D8E2815BA9810D8930051B615558CACD704202AD50F52890500E8BE5CDC91DDFCB61948788A9CC2167A0021566A863B875361153B1A57E0C62F8CB11D3B3840F570B922E4A88151AEC22BAAF7559F724549B892575430383473B9183214104006DBFA356E2C31BA283F778776B43530A857C8126780E29C0316C64DDB1A947D747A8ED831135A8146936090FB59192B32B50327218125814B2863F2473B708338390AC2E507715136C8786FDCD1C10E2B0D63D2CEB6A4B0D8DB6F8AF354BDD1BFC6C71AFB627686761D97B761FC0ACA584539117CA416078C784972F67CAADFE67F38EB1996E749E2F11A3C47C389D5C3F1F52D33F14A094CCE5557154001AE2D17A2896AB4D0744E9DD4BBDEDABF34D38C1C81812A3CBE4A065A0D6CA0CF3A9F5FF0268162A5B3D872B6782CAB9149C52C2726079396B01866E00A20BC82208009F625323DF535F1658A1EA29B933368992A89EFA0BA586381D845099C35A299A467CCE67AF2D5B066D9891462114569A2261ACF20CB64CF3819D0E0A4C20A153CFB5EFC9C45501AA26ADC5B26553B520A04C4388D665B098FE52B5AEC48154A2AB5053279256BA4E6975F4764C77A5FAC85275FEC08D62534353B17764177037BAE5F010266767164B307D4D375C85549EDD3261C6E600B1787BBBC13A01210C0764A4A2578D4BF90A24704178F06A4E4B110F503341657B159925CEDC8967872A45A3C1F0122979AF87A878A2019B3F17C8BA6D79909F31E8168AC129FEED8EFEB21F07C02F282CB90F63EF10EB2F4A9ACB886\nencap_coins = 8BC7F573082482206ADAC45F410A9A3EBEB4A8538999B681072C26731023FCFF\nct = 1076EBA8BAE46E6593BC8489CE76CA034D1558EF147F6C09753A642924CB97A81A4C583682733D1F285DC97725FC79514388E996720C57A1AF855359E1E43FAF0A719E31E29C5FB6D2466175CB2FE82D8A0BB1B1DC57F3EC109E242DD31290481E63D94D6589410850BD2334C3992551D9F69695B0D73CFF6F3F363434EB37B03B3CDA3FD3CB28EAE9D6D3620B5541D5F659D88D6F04442F4327755E16EBAD5D15383991C40B274B33A1D381872500DDBBD50C531E4616868075E98A82EEC466167C214A1FCFE5291C71A36CEA2C19E7DFB76F7B236DED708D4829713AFB806B3F41CAACBDC98A54723BD090BDA5DBCE6E6D626B9A75EEA856DC326365E99B70BB060DA7B98D791C323D5D17DD6A35999B6100808173B82F254D655763BD4529E84D5915F3C5F0E44AFD556EE6BBC4235A78B1118D29D834333DF7629BF7BDE9B2428661A5B2B8C758537764EFB98F1D114ED124A857BB88E30918D021A515D710426558E95F469890A2A894201E31EEB17123527F69C9C4A1E3E3C9F33B91FE4971717256E830E00F3D08795A3360636E14CD9CDD266E1370768038119F8BDD64C8FCA1DE2B02E2CED0CD6E67C9CFEE70DF28476AB89E1DEDE78DAE37054A282EC5E29B178A7C340C27B8F442F73975BDD173671B3F7DB5DCAE20753099CA38C7F34417467CF822036A90350724A2EF58C60DDAD71C1697709CA314455C4B11B0AC2F9E5937BA353BAABD8A48740FB89CC28C5298FE02A9E0EBD17804D2AFF184D1BDF6D140D87DB87640DBCB98DF0844D8E8B4CBAAB34A1F9C0A5A7A02653F4749055955D5F5736B040DC06AA9BE03FFDCE10D7CD104667B8575DD77AD4B97A7BA2F799E2C0F29306E01E0C3E32315A495A8C2DA36BC46DA224C19D8FBC4C9BEC126DC8FC7183AFB586952246D0060554D547F195FAC1FB9543558CEB9E3CD09F6B3444060BB8BC1AF59D5342171F34E02367A72315933AC089C53517198FE4D9CD8A4D468E5F992FB60B67A881B1218E298DB595B4BE912BB21F7686CD6731A96ECBACF138A33C3B7DC27551CEA710A4CDF93C4C190F90C7759ED036CE9BC99BC095D55177B05A4BE98978B4685DA3AD595F7C040BC7EE013ED34293AB2B2C2AB17AAA1C4CC9A243FA495CD64A25C21F1942479EEF479D86119D9D24A72D5850F7262FD5E30E2D2CD08B89289EA3EBA54281C12AC2BCC802CC93C74CB5597A7CA360303DABB288EDADC9C37A33858E46F0A14C26B11AC1D33D50D23ADD3C9A148A9ADCC16490451A2EF364AC22216E26BC5940D86C6935B7E6167F8F96E4955CE5F2417245A977C462EC367053FF0FCD1530FE8A52D6E068D785BD7C6F3269E07EBD21B755FFDB9A5BF730C611C66372CAF3F379F414116A98B8DB6DE01EDEF226FF6F685BE5C5EB2D4D0C1202830947C6A084A5B61CE97C9D13DBA13A6BCDDBDED6DCB147DA21831DCE88E0774EABCAC67DB743E8E02122FAAB0B7CB6C7BB5026F5A7E731BAE576295B5822E2C533B513CCA79DECEB81290C93B0CF74087C453CF86C838C7D602510EC87CBE0B2098309FFBCC785A7F07A5B866B011063F86F3698B031B8AE3C1D52FB4269CCF7497C2EF9F122A0FA6FCB535704E2684167966997DBF7A632ED6C0E22B40635D971E75ED3FFA29671CD7B63E98F3EDF623D0855AD460BBD04B50CC150CF276E2AC1D306D8FA306C11E6EBA1DE2E9A81323E2975C5675C7C7F19922A36BC0CD117A056F8B573C50788BE30994AA0241B9EB606B94CB0E2F40047D41678D29B2A468C7FAA8A862F36EDAC2AFF1581E249855B707FBE89635FE9DE349083E139262C2520B3462D65FB2D9F0D4FFD8A52215781CCC016F1A7E1BE34E4607E7235EA5BB2F1175F47FB219D388DDA286B97BC92E9612970C1AA733E911D8D8DA085D40BF7C3CBAFC7229DA3962C86A1D39E3E75C2F52C32EECF0377BDBF8DD0CA702769B3D33362FC5582974DD972BB46CB1E7740E34077A47EE7E28608C852AF392E5D5A9F38B63F2F5D4AC5009EB652D104C4EC261567A52C3182D020017B6408BF0015A769AF38195BF6AA894A717212E369F38E27371D7357F39F524AFB31776E0DFD1976EAC91E1F03C815F1E56B8BECF4268CC9E7B8D4B770762849EACE7B3D78D2BA81234DC8DA2A99326B2BD1D38CEAC9A31FBA896FE4F3794D00BE1ED595159892408C66EBBCE737A406CD5C45E4FD0\nss = E2D07A6E3FEAE164ADAB32CA4FC72881FE77D68720EB4BEBF3ED9D890906FE7E\n\ncount = 88\nkeypair_coins = E3FC575ED51513E62ABA655D24CD9C8F1C6C848AAFFA946C49A53AC3EA59E474648E3FAE1AEA06E15778F3442223574E9C7823F36CD16C72618846331F95E91C\npk = 0BA19153D3A984E76DEE73B825996798BBC7C24C5E45D45F26C39A879C676D2532D3C11F376B1F1CD8776B6280CFB52559B6B3BF4716E9B49997911BF8DA16C4147A2CC9BB379AC5195A320783213F62156C127257A469A428834D384B1ED48A8A576B240C1C55B84D61E248DF45A52199143FB141B39C29631216A32B8DFB876DF873456C14178C4360B8215C71E219C08C915A9AC02304C958C1BF7E65B3742BAC539059EEC85FB6CB608975B401C83B490094A6D1714876727EA34CD27B7385D7575FF49931820FD5DC33F3881554C25DC41A65834115E1C899EF8A080FC6C53B81B3804508FE4C1FE6904960D96F8C1576614474C9191C99FA3A201A", + "4143B09AE0F3432BD13A3442CE80EC3CA3C94BF2B45FC398165318BD8D2683148315D1969B70840AF5B42D5779C844C48CFC0488EC65B414837A965C65902C21A2C48A590CCF9FB9C6F9E45913AA0577D2ACBBB29B5357CBB6B16FE6BA9ABAE44645CA68573B5FE325670F2C4B5378C040171EC3A25229B1C3DF175DC1D4AF59035C7AC449D07C72ABB6A153BA50C3E80FEDD62BEEEC1ABD53A45A7C33ED4117F415B77A43A0D7BA4AE2031E3C57C945B9ABC3B5B3B7915784EACE07E7CAACF256CD27B28C2924B01302C9432E5F3A2A75009D03E36FCF7089FCE58CE57492443323AB494C07146DB2AB8E3263955EB373031C22DA591EC5CC3CE0155F69FC43C8484A9E332E2DD433A888190B05747E0971005B8026409AB874CD65F533A51A40A668900EC109DE60749250890CE91290A43078E3AC85502B4F34518886578C26353A6577FC51510DDCBF4FFB6B501662DFD1001D6354B47B0528DBBC0D6A18B58C605A91957C27BA354232751810202A891AA83EFAE7957AC2883605375778369589597A8B4F23F325ACD8683C4B1DC3103002E1C588039E08A7C3C92137510391B3F75B99810F5C932A80A7B5D8164D999C131828A59A939D90A8CAED47C205681973A38074243A787866588399A199C8BD74C8B6546168E255CA13B23D0775EEB727E3CAC8B4305893185517274C4A4ABBED709F2B986BC02592D1DC38CDE048E5F63F15086F11031348A7A68E044CBE1075F1EAC3C330477FA5124C832C2C880E29DA691007A82B79611EE04B64280E51D201AEA5B00A633E59DC0C20D72742A925D4CB19661CA864BB79A029C7100911DCDA5FA1B36392D3432C187DDC51190C563D4C180DC87976A142962023301ACC29AB63853813185B6390FD84B7D395514BEA0B35B22D9DC19277AB7D0D602725A9CA3AF87DF9F96DB8BC6A3F27891F9283BD6A4C4966CD26D3C96C2B4D808A2CD435ABE4173EAD728A200A43F8E21907020D6C19293EB02785571A399A81B8205485C54AC19BB298C8941DC06ED7796A39EA2C84D755A0E90B53F86EBFF130C6008F2DD69AF0017BEE0C6E13A0BB2BD73B02431BD211A5FFFAB76F96C080482055837A6295209CB2A62505B846005CA5A482709411B5B94BC3781A557B2EFD85B575621CAB87AAAD6844034C4A1DDB43D70687D968BFCE441E7054A9C9905C114B9791E65BB23AA0CF22AD7E005BCB38B24DEB2E7741853EE7085A93250EF7624BE270BEDCA3D322842B477A507C3DDFE3325D893CFC432F07C15A1422128B5703D92812B87915E86A8F8DE97F163CAF5F695EF9994AC4D7932FB9629DE72A988194BA13C996C2252968708E6468687B1A91063DE718331027A54AEA679861B1B6B6930F8947AF72A1B30895F225A7BBF7CD7E8A857B6216115C8E98689B89C7686D282C44407C44EB64D3795D51665BD538C33A7915B5F7773FF20B6D289D2425A2EA4A14E8E2A349A78C76F8760082A1F8315B4DC41109A05C6053484A1B381CD8412DF92EBED7C489EA3DB9915A23E07C37F7C805E448A5F08A89A860B96C4BC7A10D4C30522CC900291A8504E72F4CA5229135827626C138173F73F123FE013F3612A27DF9965DD78C6F1A2C3577C7CF866E70190C8A249A6AC6C1EB45AB61F9A021470135292D6BA6C26455CF0876C9633B4AFC24779C908B5619CE1DF7464E096AEFE51B5F43BE40B556E2C5C41503857F8A6B4ADB2A5D8A67CB668930889D68295736027B5B1A4B3CF44A05101F1BD4B365B8C54117C6027460E14BA516724361D34887A693067791FB183C9C25FD45802D5699F33205A71D6404704483BD2C82E92BA9457926A45BFA0985\nsk = D1F46E67CC5AEA63CA9EC413938661C2F8156CC79E10A64174774545B597E91A8CADB58DEB15B27F343073B071873870BF858B5FA3AC3689698DEB68C570406972210C2B9909571A12753448E00E6A0C165A101469828E8F60A16B55478C8899D9A38C1751BF220A60A999B0D2A429B375137DB8BC9B85AD5FCC073355AE630100F8FC68EBB8534135590CE22D0A0672AB54936C8665AAF476B50293A32135283777C375767B04547501A53B72A14D3C4DE4E001D16B2B2B598A22D784A3711C39DB183AC82CF895B242954B41C713BF464464917D6B608D21B67B3519A6DF161AD237359E262B95C6BE3A8522B9248346785FD0DB03CD083A21092F4D91AF156B12F4C9C77C11CC0B68ADBDB813BEB21289743758F8136661704D0C5CA9302A064040334017D47815B7C35363F5C730298670536C69C122CC91CDFD18783EFC4C39C8C29CB1023F1488A7469F1CFC1D7EBB3D1CEAADBA3B07310000BD89C043290ABED896E655CB1F43A1C7335AEE30044D9652E6D3B8E394218F63072C7050A2984032C45735A3AAA4108AED8B9A19C13B9BAC28CCB123D9987C45B91E89B7A949B5B4AD56ABE4237F21DBBC53AB651BD4B703069F82133C54ACC1AA415DF9961A4785337535869FB758CD04B798907E36197EA428C66AA516F602404E87341E154A0E09C881725CBF00761FD9645B658D97D21F33059E4A898DEB0C826D9057AC302663897D71567117FC4416C860775B026E51A52663711868777D542F1224B277EC005F2BBCFC0C84146591CB36CABA82692B010DE229797CAC57AEB64AF446A896527BED9B3E55539C0F6A0E9ECA5953890B95B0B282C3A4C46A44A8705A54A8806CCC0D3C736A20D34AAB118813651D85F12906958933D69679D0457A4817DC83B525CCC63E94C1BCB1C869CB3A0BC46D47084481C2563754AA8F44682B870ED04996CB8886F43B91AC8767AE12856CE5B85F55C8802830BA1BABF5797D0DA723EEC24616A195AC809371D93F89B19C874C840EE9C39E7370CA561B6E91552CEA47F1D09C9CF633E7CABC9EF85F89D01A29D9CFCA8143BB05C3015B3C6035AFDC45AC7B08B5406566BF864657BB3A82322793906462C03C20969F76C2C8C8EA2622A373C3E40164A77055EBAE05787965B60A861C09658C32D4194DCCD7AB1DF87826590890B1785F0385B965B5AB3B870A0088696A783B5C7A69962B86F789BD43588705315258C117C4313198AF42E2B7FE39894A86189FFC4E8C6BAC5E7A0F03D86D18089A6999972F309A6DEBB365781F64197165D259BDA98C7A920A9E790BDDC587E7C08040D649B8B08FBBF36D1904970354410BD77B87889668566CDF4A94E1C65B04D33C269C5152B049850857308BA1310283A976A31DB34722E97C97DA85D14372E14A8A95BB45C63670BD7712686200D451CAFE599AB0D3A183D2B0DF7B8FBF0995042BA0CE682EBA8B71DC6C0744262C75B7638B51B9C4931D4F7C842328486A799D06027CD5CC75E4B1B6816C2AD66B86ED047EF978184BD344C00AA1200432C5D142246B883B5B85AD5CC8F8FA994F4A790F3B6C201353F77AA9B7E9BB195375060282B7DA42ECD36295FA55F8B5CE94B812BC421B47054469D39E3483A63583AC5A97CD63312E776902B73C34D5D81A35153589FB6D7590C0F9B4996F83CD4631A7FB6C09F60A0FAF7C5D24F9983D9CB9B19566F1EB6800024FDF032C4032C778D74846F4C7B63A3EFFAA5AB619AD3C62680F5290ADB5063F0137F0CA7B694978C622A9A34BAE292719A7F9CB67033C0DE773359AAC3577BA38446A5610ACB9D48509413B1CB024CD25A4A5A882AC31CACEC34C25FA073BD38A8356934423A838415355680BC7155D433B4357ECC6221BA804602317C7703AECC7FDB30781A715849186F126619FE78F610420D2BB3ADEB085753A710AA07BA2139C0897A172DC09E7235BBD0638D8C695DBA8BAA8B04F7A058EDAC52622B4A9638155D56448A3977786941AE23C6DBD05C4FE466412F29C74EBA96921612EDC0BD5D12E72E944E5105843034D9070416B649491C7B4245C14CC152107BC68B6078B76CC61A6B371E95202292584A1734F3C4214C2371B8168C6EB9C7E7EFA76432316D140AA9055577D874A7AD70D16A3783F7904F3445E7D81260BA19153D3A984E76DEE73B825996798BBC7C24C5E45D45F26C39A879C676D2532D3C11F376B1F1CD8776B6280CFB52559B6B3BF4716E9B49997911BF8DA16C4147A2CC9BB379AC5195A320783213F62156C127257A469A428834D384B1ED48A8A576B240C1C55B84D61E248DF45A52199143FB141B39C29631216A32B8DFB876DF873456C14178C4360B8215C71E219C08C915A9AC02304C958C1BF7E65B3742BAC539059EEC85FB6CB608975B401C83B490094A6D1714876727EA34CD27B7385D7575FF49931820FD5DC33F3881554C25DC41A65834115E1C899EF8A080FC6C53B81B3804508FE4C1FE6904960D96F8C1576614474C9191C99FA3A201A4143B09AE0F3432BD13A3442CE80EC3CA3C94BF2B45FC398165318BD8D2683148315D1969B70840AF5B42D5779C844C48CFC0488EC65B414837A965C65902C21A2C48A590CCF9FB9C6F9E45913AA0577D2ACBBB29B5357CBB6B16FE6BA9ABAE44645CA68573B5FE325670F2C4B5378C040171EC3A25229B1C3DF175DC1D4AF59035C7AC449D07C72ABB6A153BA50C3E80FEDD62BEEEC1ABD53A45A7C33ED4117F415B77A43A0D7BA4AE2031E3C57C945B9ABC3B5B3B7915784EACE07E7CAACF256CD27B28C2924B01302C9432E5F3A2A75009D03E36FCF7089FCE58CE57492443323AB494C07146DB2AB8E3263955EB373031C22DA591EC5CC3CE0155F69FC43C8484A9E332E2DD433A888190B05747E0971005B8026409AB874CD65F533A51A40A668900EC109DE60749250890CE91290A43078E3AC85502B4F34518886578C26353A6577FC51510DDCBF4FFB6B501662DFD1001D6354B47B0528DBBC0D6A18B58C605A91957C27BA354232751810202A891AA83EFAE7957AC2883605375778369589597A8B4F23F325ACD8683C4B1DC3103002E1C588039E08A7C3C92137510391B3F75B99810F5C932A80A7B5D8164D999C131828A59A939D90A8CAED47C205681973A38074243A787866588399A199C8BD74C8B6546168E255CA13B23D0775EEB727E3CAC8B4305893185517274C4A4ABBED709F2B986BC02592D1DC38CDE048E5F63F15086F11031348A7A68E044CBE1075F1EAC3C330477FA5124C832C2C880E29DA691007A82B79611EE04B64280E51D201AEA5B00A633E59DC0C20D72742A925D4CB19661CA864BB79A029C7100911DCDA5FA1B36392D3432C187DDC51190C563D4C180DC87976A142962023301ACC29AB63853813185B6390FD84B7D395514BEA0B35B22D9DC19277AB7D0D602725A9CA3AF87DF9F96DB8BC6A3F27891F9283BD6A4C4966CD26D3C96C2B4D808A2CD435ABE4173EAD728A200A43F8E21907020D6C19293EB02785571A399A81B8205485C54AC19BB298C8941DC06ED7796A39EA2C84D755A0E90B53F86EBFF130C6008F2DD69AF0017BEE0C6E13A0BB2BD73B02431BD211A5FFFAB76F96C080482055837A6295209CB2A62505B846005CA5A482709411B5B94BC3781A557B2EFD85B575621CAB87AAAD6844034C4A1DDB43D70687D968BFCE441E7054A9C9905C114B9791E65BB23AA0CF22AD7E005BCB38B24DEB2E7741853EE7085A93250EF7624BE270BEDCA3D322842B477A507C3DDFE3325D893CFC432F07C15A1422128B5703D92812B87915E86A8F8DE97F163CAF5F695EF9994AC4D7932FB9629DE72A988194BA13C996C2252968708E6468687B1A91063DE718331027A54AEA679861B1B6B6930F8947AF72A1B3", + "0895F225A7BBF7CD7E8A857B6216115C8E98689B89C7686D282C44407C44EB64D3795D51665BD538C33A7915B5F7773FF20B6D289D2425A2EA4A14E8E2A349A78C76F8760082A1F8315B4DC41109A05C6053484A1B381CD8412DF92EBED7C489EA3DB9915A23E07C37F7C805E448A5F08A89A860B96C4BC7A10D4C30522CC900291A8504E72F4CA5229135827626C138173F73F123FE013F3612A27DF9965DD78C6F1A2C3577C7CF866E70190C8A249A6AC6C1EB45AB61F9A021470135292D6BA6C26455CF0876C9633B4AFC24779C908B5619CE1DF7464E096AEFE51B5F43BE40B556E2C5C41503857F8A6B4ADB2A5D8A67CB668930889D68295736027B5B1A4B3CF44A05101F1BD4B365B8C54117C6027460E14BA516724361D34887A693067791FB183C9C25FD45802D5699F33205A71D6404704483BD2C82E92BA9457926A45BFA098560C001172C4734A620C248654C58F1C10135657083DE776116A6ACF8A55F3610648E3FAE1AEA06E15778F3442223574E9C7823F36CD16C72618846331F95E91C\nencap_coins = 6E357DD587894D497886BB4C678CF1ED347D1D85BC1540D31563106341718E16\nct = D7612C060B1EFE062684C8837212FFCD6B4435D18E42F20BED488B5777DB4166C6A03B045AC1444FCF8E302B25A73490E5D408DB8499847A6344DC374C101E03F0100D8AE8EC7A01A91360BB8FFBC459387853985E2B7EBAD14EAA9EFD4DEB648D5D81F5BC0E50219D493DC94D9BD46718E6829731ED7F1A4AD758C835A4F7B80EBA41641816593F75A29293CA27B1AF48692C19CADBA3F4B39313EB0E45A3DFC250B25283ADD18E6462591E9BB3183617E75B3F5617D3DA2EB68ECE676FE1829C6B588EB2A31C8F5D8CBE15AF5706F22C4E941EA6663A927E66A3DDA786A286D37B2B3BD017562B1A5E4940037F7835382DC9BD3EA82ADE4354D082CC7E8BE7C825AB0E446E35768012832AB65A2617B4A37DFEBC7BAB69919DEACEB28D9DACB74B053840BFD2DE27651915AFA7EB0D2E323A30142176022C580D5A7C831D49D692D12290A8FFADBB6AFA9D3F8C6F9FEF7AD0211007FA2FF2A23FF4842679DA8FD002888E7DDDE3B852A5C7848A18489D8D33630BC12D6AA7FB8B7001F5D3C83CC1801CBC343C4613A64CF8960531EABAB88093EBAE866F09E1C8633090B2C69E11349DAD30F73EB4335B1F7EE84248972FE06AF4A615E17412FFB7879B6147143F7FF23BC1BF8EC984B54F3DAC85FCC94FF4A52C9175BC40D112536796966633657FAC1DDC5E86C785DDE06891E203B21389BD4CFB4AA95F79F94D44D77536B31C0B6694CD8A370E96B88B6EA4922CF3C39D02C2D25F2536422D248F6EF011658251D93EEC6B5F2382B34A006BC8E680F0C46A37B5FC78E3646208D38EA29DAEFE9085AFB8A86D149018E3B8C5F5F5D4FC4C5BDD2ECB978A01B96CDE95067AE330969556428421447D508DF15907F9C0D12BE4A5D092B5655EE135435975674576DAF59EB6456CE773852342DEFD25332F031CAC67F2AD7F9E5408070AD16422C47B0DA7E9B7FA19BD6A731C3F1038E3C09F3428B05105F2F0198F47A661BBCC6B28CB0ED3F8684A871BE7BFBA52273EC0CD103807823AC5B5C43721C9E6F864FBD3DC0B3C60ECA5E5ADB3D757DCF65CB099B5D9FE595C72E8DCA95E3D742B871CBD8AFFC0F47FF6A88F6F397E99EAF992B33AD7B3E71763363C97075A9606CCA141839CB6E29B15CFEA90C4D9C56D1A2521532D078C4511AE55B55A50C323139679B2BB5EF00C418486505CAAA929B7F2180507E25FA848833C2FD1AB16B4E2C3375B10FE6C180BD4EF49BBF477CCA8D41E82CE09DE9A4D505FAB30B3BF2B839A32C36DD678C2F06A51299718F7307F824B172C007257F2E3F3FDB6AFDB52E9F06EFDAAE3CA1AF22F4443E9B8A638A3404B8D93CF5930A93C2E41E1FFC4FD3E3B2C9D2FB94756FB057EC85F3C32A41DAB56E9710B893B9AE1ADCB2CFE7A109A7A73F634BEBEE532C85D702D0C39D32C806022DE0B4D54C6250414ED43EC329E7EEABF5267A50910B4CA65E9C028BA9E9E8EFD1FDDFD847BE7AEA41408A835418659A344805E0E08CCEBEF915EACC17EC2748381C408E369809BABCEDCEE3E9E66F8FB830EFFC55B7FC7FEBBECA2E9443154F993C2A3783FF07D5B271965F189F79C69E9876ADECAC33E7ECB4C82E3918A5219CD331B75A042D3B34CA9093ED281E972749D05AFE3B36335117FD7B1E85147A9328908F72FE0E1F4F83330F2B11E468595AB1C3753B14FFE48BE979C68A0908726F64D0BF1C18E0DA921F1A6B3092681D7C365F474EA0A05F4696527963A92CE8B5292331EB9C8D6F6FCEC6949AF4800DA978FC41FD12E3D448BDC236ED2C15143607735847AD6FAA5CBB66346EC764E60D5B6507E3CADA3DB4CEBE22BFC4CF4C830BFFFD1CAE62CC4BB5AF88BD56753557C3DF0A9E8222EBD26AFE145737B5A498906EFB9B12DE698818B051FC7019C8C3A7548A4E30F54F376B56132C306C38865A4D33D5F17DFDB72C060FD46CC5D1309CDCF9338D7EAF4C87A52E1C30DF142C039CA12086C43E72AB04AC2E6E54A37F57C12E61EE428A970BB07555BA3E2D9C8A3583D8974993AAB69164C8BDD41594D815A08322362F371E05F2776B434B4DE25B5D4956B1A2E44D9C6E5D8FDB49D7FC8B1BEF4EFF1E0E610E91368A673A94D50346E809F43E31F5D6FD904D22BCD97FCA5E51A682B6109ED69865F80C4EE7F2CD3E6B1549CC8BDCA599B38B4DD43C2B31E9D30F24F3C96B05CE8ED039D3CC19AF98FD509F19BAB0337\nss = 9C6E38BA9EA8E833A9129015A29171F6663F7A09D86F4A293E8D50AA3DE0C616\n\ncount = 89\nkeypair_coins = 470B4943F0FE7FD0D8EC5185ABA0D1DB09D112934E4FB4787E2BBC6B88466E7BBB02D701FD1350AAB462CB65DAC4B2F75928D378DFD7A0360DFF9185175538FE\npk = 29D5526CBB30AA578643B133A0254D6E22C33EE80564E7424F0842B113636010C566EB59F9923A021B2A19C08BFAE521E44324EB5BC9873846141CA7DA45BE4F8619B334A7CF52093B2177F4A71AE211081A096071F958277555709B2F459685FF22849A86375E157258D24563B8028A728C5EB0BEF79495C1C53979880930539227C188C2027681236439085B41763D6378A4EA0254A7416473E67D49FC5DBCEAB81E56A30E2BA61EFBC97367C06496812BF79D449492F96682C2716053BB54DBF1BC22F32E6D88C2A1947BB599A878B84F29021EAD84A763EBA7B9F3422466836BB6AD029543041115D638552CC2017A84AD4CF687DAABA75B0C0A73A95F39ECC758264D48063924E9A0E793B5275C7090F9655C2325A3AC19F9A5B0327B80F220B9122583F5D908CC21C97083227B568C47E58A2A7843D2141411B08F9CF61DEB4A9EDF41617FE26BF9C519D0CC80CD292585DC4CE5A90339216A6F876206732AF6DAC9B2720025B31E17EC47DFF321B06107993A414F1509839886BC526F8051C4380C3FAF4B64D7E3C9F9A76E9D440A67499322B37C4AF9B26B2814A2B8B699AC0ADCB25835D038B495978E2446A1C33D98269A9D28C1CFC89C3BE645AE53B44DD4709587C53DF10C578562A91B55CA04AE8530C6ABA9C16CBB0684385704C15D302C1AD4857D0D1657DD85C536CC76F228641899188B9222F2B208D34222276A3C91628772C6245433A0FFD16B0812299283AC8D5A36B868B9FAB4189AA64A0B90B606E695FA542B8C7C3FF0F0A46D5B00DA78236D518D34756A2F32075480A4C15B7C27CC8E4A93180E6B5859120A24DB2DAEC61A479CB039D4B9E6041E816C96862C2B1D616748444B4FEBCF7A129E6E7817950C77A3FAC386FA787EBA4157B720FC26629842A145759CC8FB652811A8A3CACC29571463AAA7E1033CF0B4B2275B7D2034A48F49576975363085B304C0426EC26FDB17CA8FA5496D794778C49B4F74A58240BDD39C2FD6628011837451CC4389A43F3BB20959928B77394651E4C2CDC44CB9499DEF6B366D15550B41AC89707E57B271AAD6113EF7A9B1575C69E35E4D75BCB0333E89C091603B7EA5973A277672A1C504CC2C45022906106B97D4FC01E98A876BE91D88F4C908B892B5CAB99FA878DD1B3B1688976C148BD0450216656028D9C2FCC3BDDAB2CE6541810CB84F4AF414EEB863B7C7452BB79A96E790CCA35BDF05B4C3B059801B2BEE373DA6A0C3DF79C986E71A6788712FC50AEA51044C2B82B3D201AC7A1245C96767F0CECE2B4AF175329A4973696C5DEEA91075A6B8EE2C347D15C89448CB48D22126D82732C1293288AC60BB3BC3CA1E208BA71054399FA4A5D1DB7389379600C128B0EC1803B88DE90369903799CF5CA0C5EA0B012B691B0A50B9011AA412509D1ABF24E252E9D2CBB315361977770ED77310C1705E46B06A5C1C35FB5E5C9A8066D2750B388855E982BCEAB6B5E8018181B66717142CBC3729B13E2B34205FB06724EC13C3C2977E346E50A79498F94756069693989B77432F8B5AC8D2B06F2E227C4728288E91BCD6CAC439B068E2017CE1C808C74098EC2C099D81B9DC6AB7E780C0C1669806E3CF34A1C1D5D002AA1C9301670FC4E45B64C59481D1CF6446468806683F57B3BC25B032AA40D2C188C5A2A7D47B41B4753D5F7A3B22BB70643942D6C35317F05E6ACBB4F6794B1B0C3BD47893A7F9CBBB61C608068054B385A9578303111972E8888C6427AFE099A1A07FB3879B821B25FD1699AD001F51B27ACC5B2926AB2CAEAA9341E1A627493F44F561EEA57745A0764A840963024FF6C070AD95B285A74527FC3DA894C06F7BB5DE61A012547F87C1517B9AA5575A1AC9A30D858C912BA096CFF4A24085C750AAB463F8B956FB837EE300470452C6431D128B27472B5CBAB268924ACEDEAB3E7B02B2B201A44E99654910CDC8D5206496637E88929A1BA4436272F6B5CE41533450663F7A1A9144B5400D727FE6342C6CAC6E2C3312015B571585303967422ED8C5D4B75E4F203BF2F86CF0370AA9324C47246A27D9076559C906ECBBECBB20E020CD9B6328857832AD8400666B943F8418F57408251B91CE341A2F63601DC751C0B301729CAAD8425F717250D5A249B1175F9AE8A9DCC8CD149B9BCA489F02FA05307D7163B35BA6A4C5024B70BA27DB0DE8D64BB8B55C83BFDD24\nsk = 09D0009AA9878C697E2EAC9CEC9675A9570660346547D7AA8D4548E3AA917E238CBBC10C389445D15714B237566CB44132D6983C9610E779570B74482D5BA2742A1BB51C68142C1680B800F1938795367B6D8A56C32A0D77922C78116643530AAC01CFB2692F4BD6BBDE615A3335B397487DB8A1175A043719EA58D0DBA627D7C8511468B34442879CC227E6B39E084DBB68BE71CB988766114A80B1979118ECA08217540F032966688C99FEABA06D0A0A1E701DEAACBCFF9C2F2948A209AC8EE505C85FE0444B5C70D067100B63CBD6D98F9AAB73CB06C97FF31D7AA0CE188707DDC5C07D495B27957B369055650ABD5D9B9F75761770920DD0B574A5841C3BBC9F6F1AB0179C118C7A83B2934E950B3DC732C84264C66FCB0DF78975FCAB5FEABA4E6AF97131696A0CDA1CC9E2C40A266FBE6667C1ABB361F063103311A792B95CC525FF872BF3F394FFB48B30B334CA02BB32A901E3478F811505DA066DE6A5CABA425DF83C27565CA48B16BB2855A797A72DFD57615D5117B24374C2D306473A349521A8107790D268AC6B5813C593CB9E8621F8C68FD2", + "E8082C491C95C5AC74C86DD37B0A4EA0CB66AA576AF50FBDB0A31235BDC9E8107F1859ACD2674FC72C6669A3465556F90269CC30B0A8F53563378EE016A7ABCB5460D5371B01754BD7373C2314E2A42D98636112F3CBE0638E513B38D4850AFD6A1D3D485308181FEBD88B75F532E4541965E0BC592885FD1C1B3108C33F74725850617B526AD4F2C8CECC19B0A0ADE15057C90AB086C26CB014BFF92988903BAFEFA3C4C96CCBCEF178F988A40D339DB324257DE69A119125C52A4147360B1274808299446EE768680170457ACEF18814559996FA96B418275E031199E0D578E86C946381C369AB839B1A75E9D6845C98AECA24253B3B0F00EC7E92CC6F6A40A4D8B04900CA3E78CC7A5C51886E0901A908BF0A08947E3B524F1C606B055451AB6EDA2BBCF832510B3075E2CB0ECD493B71102F4EC69565F96651A3A2C3B738C2D55805798253E055DC8508B98822E6803785130D22E494B50025B0CCBC69667013C4CE4A140C2E9BA928D41D7FB5237DA8C5AC0310EF5007B2B0C6737BC17A747C5A2C1F3C1166BC2B0AD7AAAB1D870E54694C1CA293665286C4EAA35D34BD6EA7AACEA04871C257CF63641264AAA0DB4F65337274356F71D02310A57E44D23EC6B4185BC5CB45A65D3B592AF3138216332060264A6E53702D766D0F4A0F14F70B75B780688591CC414283A59AD2F84D665354D71C2AAA1C278AB6C8BA902283B286F82761906C9B2796595BF5AC01455ED2B43607207A30C949AFB1BA5C50659143C98237279003CA820B4B5963B0882A088CE09C99F4A6368971A7D6885237BCE28580E2EC483FA305FFFC0ACA173A89CC41727A55D4E29A8C410B3FE851B3D58B58C31920759ADA529DA162CCE47618B2F715F3658D71F5455365C67B04748B371A5A96B75F342CC4C031C713C04D2B6CDEC0CC92B7596BF4A2A0C91537A0C8174B3456489D2DB70D3AF2995C4830245120E9411E92ECB2293700973386983A0C6591CD5EAA34D5CC00FD672D20A604E78696D5542646C120E02C8DC5162630E71465ACCBB47CC0EDE06FECA295830091000BB220CB2A41777647D6084C853CB69AB9AB97204B14B31BF4B1AC577A76110F5CD17DEDE14D095662B5D12C931B1404D3B0ADE5B216E69FD480A9335ABD312065E187A03891A4E9A91FD01A57A8E8A1FFA075D8E68152CA058A876E2BD80E46C22AF8360E3734145EE882CFA06C22167F03E103ABA731E7526033BA815D9C3775D311F5D92A31D552D89BB291663ACE4B5916436E1086B46879950DE89D453A666F0B514AC31EFE398ACC52370E27C0F681A97B0966A3A14B7E45BFBE688B5A1B40D9F515B688218EF95A9AB211CA429CDCD6A4913B2ED87C9F65D64681B9BED10C09C94B9C0D95C75B69721B119B95583EACC884A56AC09BD3BD6F197A0EFB6659E89BA3A019EE12B8EF056A44F174F0219F89616330D2BEE1580669396009895CF9991A49E7BB89719F6D340BF33C427FABB2A5C96D81C42E18A96470360D96279BAD640BDB41A40ACA9142275CAE4B95DA8ACF98BCA3456C574ACC43D3D72A2C6542D1A25C554A8439D9565AF29D8617A129D5526CBB30AA578643B133A0254D6E22C33EE80564E7424F0842B113636010C566EB59F9923A021B2A19C08BFAE521E44324EB5BC9873846141CA7DA45BE4F8619B334A7CF52093B2177F4A71AE211081A096071F958277555709B2F459685FF22849A86375E157258D24563B8028A728C5EB0BEF79495C1C53979880930539227C188C2027681236439085B41763D6378A4EA0254A7416473E67D49FC5DBCEAB81E56A30E2BA61EFBC97367C06496812BF79D449492F96682C2716053BB54DBF1BC22F32E6D88C2A1947BB599A878B84F29021EAD84A763EBA7B9F3422466836BB6AD029543041115D638552CC2017A84AD4CF687DAABA75B0C0A73A95F39ECC758264D48063924E9A0E793B5275C7090F9655C2325A3AC19F9A5B0327B80F220B9122583F5D908CC21C97083227B568C47E58A2A7843D2141411B08F9CF61DEB4A9EDF41617FE26BF9C519D0CC80CD292585DC4CE5A90339216A6F876206732AF6DAC9B2720025B31E17EC47DFF321B06107993A414F1509839886BC526F8051C4380C3FAF4B64D7E3C9F9A76E9D440A67499322B37C4AF9B26B2814A2B8B699AC0ADCB25835D038B495978E2446A1C33D98269A9D28C1CFC89C3BE645AE53B44DD4709587C53DF10C578562A91B55CA04AE8530C6ABA9C16CBB0684385704C15D302C1AD4857D0D1657DD85C536CC76F228641899188B9222F2B208D34222276A3C91628772C6245433A0FFD16B0812299283AC8D5A36B868B9FAB4189AA64A0B90B606E695FA542B8C7C3FF0F0A46D5B00DA78236D518D34756A2F32075480A4C15B7C27CC8E4A93180E6B5859120A24DB2DAEC61A479CB039D4B9E6041E816C96862C2B1D616748444B4FEBCF7A129E6E7817950C77A3FAC386FA787EBA4157B720FC26629842A145759CC8FB652811A8A3CACC29571463AAA7E1033CF0B4B2275B7D2034A48F49576975363085B304C0426EC26FDB17CA8FA5496D794778C49B4F74A58240BDD39C2FD6628011837451CC4389A43F3BB20959928B77394651E4C2CDC44CB9499DEF6B366D15550B41AC89707E57B271AAD6113EF7A9B1575C69E35E4D75BCB0333E89C091603B7EA5973A277672A1C504CC2C45022906106B97D4FC01E98A876BE91D88F4C908B892B5CAB99FA878DD1B3B1688976C148BD0450216656028D9C2FCC3BDDAB2CE6541810CB84F4AF414EEB863B7C7452BB79A96E790CCA35BDF05B4C3B059801B2BEE373DA6A0C3DF79C986E71A6788712FC50AEA51044C2B82B3D201AC7A1245C96767F0CECE2B4AF175329A4973696C5DEEA91075A6B8EE2C347D15C89448CB48D22126D82732C1293288AC60BB3BC3CA1E208BA71054399FA4A5D1DB7389379600C128B0EC1803B88DE90369903799CF5CA0C5EA0B012B691B0A50B9011AA412509D1ABF24E252E9D2CBB315361977770ED77310C1705E46B06A5C1C35FB5E5C9A8066D2750B388855E982BCEAB6B5E8018181B66717142CBC3729B13E2B34205FB06724EC13C3C2977E346E50A79498F94756069693989B77432F8B5AC8D2B06F2E227C4728288E91BCD6CAC439B068E2017CE1C808C74098EC2C099D81B9DC6AB7E780C0C1669806E3CF34A1C1D5D002AA1C9301670FC4E45B64C59481D1CF6446468806683F57B3BC25B032AA40D2C188C5A2A7D47B41B4753D5F7A3B22BB70643942D6C35317F05E6ACBB4F6794B1B0C3BD47893A7F9CBBB61C608068054B385A9578303111972E8888C6427AFE099A1A07FB3879B821B25FD1699AD001F51B27ACC5B2926AB2CAEAA9341E1A627493F44F561EEA57745A0764A840963024FF6C070AD95B285A74527FC3DA894C06F7BB5DE61A012547F87C1517B9AA5575A1AC9A30D858C912BA096CFF4A24085C750AAB463F8B956FB837EE300470452C6431D128B27472B5CBAB268924ACEDEAB3E7B02B2B201A44E99654910CDC8D5206496637E88929A1BA4436272F6B5CE41533450663F7A1A9144B5400D727FE6342C6CAC6E2C3312015B571585303967422ED8C5D4B75E4F203BF2F86CF0370AA9324C47246A27D9076559C906ECBBECBB20E020CD9B6328857832AD8400666B943F8418F57408251B91CE341A2F63601DC751C0B301729CAAD8425F717250D5A249B1175F9AE8A9DCC8CD149B9BCA489F02FA05307D7163B35BA6A4C5024B70BA27DB0DE8D64BB8B55C83BFDD24647A136F20B22C63AFD2B88D14FE7677CF5C2B78223A587068377021F6EDFE9BBB02D701FD1350AAB462CB65DAC4B2F75928D378DFD7A0360DFF9185175538FE\nencap_coins = 0C7068E5864FAE7D1ABDA0D0A5C1E62FE5E1CFC2C96D82ED6EF180815DFACC66\nct = 0D4E87BD1FF400520874A110CFB7E83D4A47C96679C12508B919C9F8885190B930C6575C1E9C933F53E6F75ED49EAFA91FE8F3A477EF062C2F46DE2B7343A60334FFC43D26ED51043293C1666F7DDCDAE2D5F622F61DFEF55DA30D57DC7114AB7B2F00FAFB4434C4AE9DCA623F1783830EB8B5B740F3B71471FCB85961F9ABF1782282FCB5C25C67BAC4DE9FADD071ED271DEC95201CF5844FF9507EA894B57488E50E7C1A639394D71FC68A0B3A0B1141E5EC440735DA57ABBB5E2B96838B6B1EAD0AF4E55311C5B9FA76E963FAA0E7686FEF27E090ECDDE7CB05BE7200F0EC01E466EC6D4306A23D79DB5A2E833BF4C9C7E8D9778C03FCF9E5E57943789FF0EB3B67C5D3546055F63A3C502D3B436A0426DAF9FB36A8F9A800133F666528BE94AB36A2C063307D503CE290938F122C7490718D0396B4FC880198C31C50503D05BE30535475E29E5F897CAE68FDE6E9B2F4451C02FFC693FECFC0002F8710B026FC111A3675FAD0A9A7C819CCBCC33E2CEA35E03F7C800D110A545B4C36FCB84841C83CD82DEABAB837FF50CAEC276F7A7620EABA1F91D2586D6CD52AA05F919CCA6FEDCA62DCB9EC8D63B7787C761DC48A199DA93324ABA53188621067486FC6ABAD408CF42DE5655D010FF38852F0FC5370DB37669FA9562EEF662D65BAC3E81ACB09239E875932012D106861EAEAE607C10E1379704803789A39EE988AE86C1D7267F1C8647623E95CA72D57AD4D0C55C59DC31255D53EFE9A3C007008225B20022BEDD32B86443CB746D9BEF2085ED6B7A0EFB36868208D3A872142D7F96DEBB4AB2827ED1E9E9D6CE6335FFC7A02D62C20219708176BCDA9580A0D23E8D102DA13D2BAADDB58B1FA1EA5D0AD62B006AE8D298EEE25F31621EB4603103B970738F27D986DF44BDCB90B1390B40B0ACDA3F06D51050FE435B2E1ECE9EB5C813D2D997217457573C18EA9535731A194F02B00405C309125E54F19BA1F63EC10988839118D1F93E0EAEB3A1A0D0B44EF45C06F7ADFB56752448494345D678BC9FAE309A52EACC8AA7073B85D5AE554739206FEE96161095BA1F1D564A6776113CED5B41F7A0C4A46D5C821667E8E36A3A968B4904A76706DB3AE95F21D9F9CD5A7ADD3E193C8E290CD32AF6E54DDA3EED918B073B6F1AB31933A4ABF1D1CCF334295CBA72AA6E0FCCEE4F5D60BA9260C90E528BFF7F8C7789E473451E02C32B4032CD81EC5B814ADD21CC0711BE340F748E6C52A376806693F07EF8D99E9CB2EB675DDFCFB4EEF417E1DEB2BE4BA1FA895588FBC36ACD7F5C90F56BBBBF7BDF8E60CB41663DD2042712FCDD63B9CAE3E89D8FBBBDB3E55C39AE92B2FDA72BE9DBD5FDD7473FA4032548311372A451337BB5E5C7ED34D5C3E50D559E134F8E18362264E2B2C2A2090E79AF4D0586B7956B8F1D55DCCCBF59D825319861E1ABB4A532D249ED448863A90A2B9D8DA1C2DF836EA42695B2EEAD6A4BFDC26AC282ACEFDCDEBB5C0898D02981F2539B6014F6766D9105A0841470D424AE840F06D488523019E270CF33409333B5FFA95D0870D3E8CF1CA573FEF690C6A12D23E49247B9D129463B8EBCC162E796FCBD1D81EF07C7C909F940F1F1196F78502A1C52A36F45596938F8C001DD4E6B30F93232EA876E41DDB50314112B35814036C968B67535E2923AFF0915074708E902192460C3607D13937B21BE1607BFD93A4AB897A70952CEE289AF78659573F81AC9A4AE65C628C7BD3BF7CE4849DDA920F7C947E97E8D0640E995FEB4BDBA097936B246F20F326576759CBF63CD41672E24DE7FCC95C4A458F47564CD279C8FD474", + "E571A6DFFB29CD507DC63D895755520D9C165EB82D9638DC3755CB1F78AEDB0E3DB84C2E7E4AB9AA1BCDAD79B978ADE97979E9E20F362DF722DBF887F4C26FE2FFF433036AF5439388664B0220436ABAB2E5831D06D9FBA25ABD60D36ED0E2930E6D534214F3658D70F7BE87C9C96E18A0A00C081D8788FFD791D75BBC685DBFC7A18511E0C53AC7CC8A3A2BF95FDA9C4281990D5C81F3DD16299C9A60DF6F6830FA931B0F8B8898B96B666E3A7C29496BE4CB1BD341A647F8CAA78AE74478D856989F7CF111FC13A33EDEBE665CB09F65D2F74D208F535D53BF66BA6298BB9C7A53551D373D215443FFC61B6393EE37D0A8EA4829F13ED39645C9DA07F11DDF6DEC31A98413C9158205679BF96542BAF0B\nss = 884C49B93A32AFFCC1253EB937B96CA8B5E11AE30D7C4076C85F4C2250F3B2F2\n\ncount = 90\nkeypair_coins = 6DF4385DB978D27B27D2AA5E452E4152B36F097503D9581AC3390105C5727E7D165FD0A50A39142F7C6FAA2BFD417ADFA4224858281696965772F448C7AE22D4\npk = 5FC836B5E569623B3A02227B1C21A206E83A9C5B3CE1594EB9099174FB34E5B5C333E510AC2668A704548F02B47AF007C237353A468F6DD38EE8878F35FB7D7E63A3B1867B2B47BCE58A4E95930A65C2344510A450B9C59C24326C16CDB447231A026304BBCC9823C3A218989EF2352D445CA22B6B03186407D7973B4117C2914555ACB33B4764515C4A37108306447F9EB200F8572C8467A089B824769B7DF39967289A93B7F55E1A8447F862C1528C3DC4684DAA9632417622C950B617E1A074B3B7FFBC23576A63857C1F386A0FF2A151652961137237EA346E691C4DABB45562653E26A806C6031368C17421747FFDD4725C02B40FC59737A75BA713311230CFEA4C1BE8A7C3ABA9B589B6180DD701C4E704D69A0684A33ADF1802EEC804F44C2923AA8A577C34A4A678DD2446B7546AF0021DF00A431241509F6117CD32177DA708A2D8472F8270E96A4BD21091F5D28B13FCA8F7E2ABFB57A9E4A522D95896B5811686E5B23D4577ACE10EEFDB9E1FD84CC51918D592857526C83F51C60D4210D92A425D7340A50423EEA17B8BE67325A33539BA09BB734ECA0A4C365170448A126721484CF947933CC984CC7662DA79D65601C3729881E9B4390A99B0EA62FEA97EAB9619D71B7BC282622FF0CDD0E72A3C8ACB7449153DF92E672C5C61B40E04854B0B523398A2634B727DAE3657ED985B550849D51A04F3318892F7A4A2B73C8C301E2CB5AA60E5438D8962D8A36857F08C075948095C86DE6BC34E35C8CAA04772BAB591E0137C4ACA7C34598C65102E80AC0D677511B854A8829C08EA7766EB04C6047612AA83C17AC38A545A2863161BA3BF6A8005E9FB560597162EF1299D621B62C8A7B8C08E3A693FAF0607081C6DA8523805999E8B97056B5385834726BD7995BF6217C5E70863036B81C297ECA1995AC48B6B7AB0EA85C3667370FABBCA8D4C2D758A80BBF07839CB85D9428AF1EAC0D7C083567A85D13515FF399BE3F5931D992C953A664EB8974A434270B47D3E635618EACD0989A15EB065348C34A19442DB928D1E8B2B28A0858ED7AE8A5BC38087CC85515A344B4CBF529D7560590B3BB56DE5331945C0C0B21D5BC8751D9120182C7348305EDC765787AC9B784AC4BCEA454E6A4C89132E6CD0A477F3BF43DA356B66A8BD0980146B5D5137262B0062541960C0B19123A549DDF31D1C188171238259FB661E17363E12C57BD873C643222D014A2AE15CF6112C7FAB407FC12B32C12AC65A65CFA8674715617BBC6E0F96A5406C8A765BC35C699619D01B19919263102F5EF2A0C110752D3B34FD489B7A328638210307C6CDACFC6ADA87190A98B0D008644B91AEF65618507A7F59B89E7EB36998D26BEFC4B723741E0C35CF73E8041CF51AF9832BA43B8E95E368974C1DD61AB65E24A87820CFAE295D0CEB8BD6109B85174C80869716A6016AC8190DF173AB61C4D3C4C37AE11593AC9A09C210B663BFEFAB5EEBC30DEB27CD25A8511BB2AE87851643B50D1B4CA5BBC66D49AA409AAB9E7F3402FFDA93ABB53ACD45BCC9978200E94CD4D617235B52D9297D4CD374B998698D82948DAC3DD780C9336532C499C479756D50E9048432CE0156CBBD9C85F5CA06AB57B62981494622A74807CD881A58EA10A6E5C885FAD611727441DFD52834D58B6408C7D06209BBB224A5D01EEF9B491D13226684BAA5A1A771971DD112AC668108963BB1864AA8AB7913917C980F3AC1C435457684AB758569247C98286B2CBC78263F1CB88478A931130B496B12F7428087162B6D525A8216061A3859A7A470CB9B88BB0C8B1E21CE4977A73FA5798CC814CCD1AA84370FA408A83E73BE1E12511A59486C49C6AFC1367B85231F47CB34C1A8F9A963CDEAC7FA6076EB8A657E647466FC82663884D7C70EACC760DB1B0BE0B30779C98396AA3F2004976C8493AB90AE60996056668C8C2CB9065B6A2580A986D9853C071A02343B8903C0184991E2A71298269A17F64BBE1B6B51D0B299703A04A22E17C33B29634DD1766BE40357F33A000A52597A3B5E4852473D886E06DB52B7605DF5FA4E0D5A0F291B5421E2C1232553AE2472682A7352775C6CA4B189F948012C417C8C764B8C818DB252CEC8CB627455D9F792D7047CBE98B74EB26C6971BE56B7219DF092E4CBAE163D5181CAAD6A478AC9AE82EE27F7256F4D4CACDDD43F45CFA4DE4DD067CDCA\nsk = 96D9C668915384C2847B7991E5F557949C99A3D46A2FC9AE7448A229A89EF7F405C2911777FB1E2F44721BE8CC326A80E524486A16A083527E22D51E4EF624B02625FD6A857BEA2C0590A3A4E39F0E041B7284BCC501201842345ED5CEB097A5A5F730EE53176F8ACBF9E03C6DC4A069718DD64C47E1D17323D29ACC630DB2DA9922804802CC768070245380CEC6672F6A5A9D14E4012BB13CAF8C320A320ED63B0591087A0C5A76EA29B57D5C997FDB372E9A57E3F4827A2441CC485718A421D3C45BD0426A87589362E52953822CF785802B2C6AA441ADAEF93DC6451AC68A9867C9B9703ABEDCAA540146BA6DD8ACF7DC317A82A4C1396267032FCCB53BE9306E20E4713B82842E03B7FA984E5827C441E293352B2E2A51566EACA8D9C4206000655F761729020F7FF9B230D6C4B986BC94551175A8ACC7E2A2C174C500666D3CF021A9B40F1A465447291F920865AD16240309B5C838A2DDC5BEB8AA11BF987AA9D7C082E8C55C63AB01D0664E545E505B4AAE50606136B6B01499A5BA10174852224AC6BD242D5D21758C4342F9A02A3D46A9A845112ADCCBB73488CFE3055CAC398B0245C467B94EB342E1845969D70511BC7100F886308CBF21C13840BC17626AC93DFCC4EB22BA18F62B15B521539901166598F25555C32587637A341017885AF1A6D1841AA1C747D918253E1C873C2CCF292BAD45805D8946B00DD23CBDA03878F66357D175D67A1B743C1E5428CE90661067011874B062E9AC8A0F726B55B76627C53338549C3F2605840A11D5606ACD104BFADCB51253AF718835826628235878D6160F15033844D76AE946AE6C240053C2AD6C3A3D72E721D9565A6C79B56840CC5A878C6A4033BB9C88DC43B130348082E41C269CC0D3B05FFE356B5695BB01C95F8AA9C30E50CF31F11419E13ACFFC7192B75948E06A68458DB80A8F71573B6EDC1513AA5B060CB77B12C62761BC188159A49C95180249B3E35C3100635012637CB9CF17CA9936787AAC954BCFC655AEC8B4215861A7709F2846A1C14889D0384591753E3F19CAD2236DFCB7B225ABC430A7B61E6018AB30146D60A6563B2F980ACF66186FEE70A458750CC62C433E651F447CCEF8A773BB2731A866832AE535F0D82E605371F6B35FD6FC1188A52080C609BDD8748C321CA37190321B286C849D35224BB5107D83E2827EF0C63859133852630B237247AA8C100678E43618289239EF19C99AA6B9156704643285BEC89F0B0C21F3A091E2063E5D3029F52C33AF97529E701298D3961F492E6B731D4E2064D034533F4611FEFB64F1899EF563AD71A52E20B199F0D80C557CC8CEDBA3CD1746D3A6AC2E697637F08A43D681ECE3769C8980C76A26ADCC585EB1194D28AB163ABA5563A5C7985720248662BBC21470022EF4110B33B6B8B744A80AB36D0A9B0A7988A0C98C6A597F8CDC76791C467B0CB53A020928F7A55981B520017BC06B36D10A21433797C15124E0892A81230BD6BB4774D46F73B874602588D3F8966469194041BDEE87AC54059458B19724949E7998AE8018755D491BFFDA76A70A64EFF902A4281734A7484037C739B7BF71B658B779CF6370420D2073FB820BEA1B1DF29C3B12C54E6967A9FAEB87BD8C0D3FFC2C1B821B42584B97A935FA04B81252CA53333BD2AA2B7F6220742B366F2877E793CD948B7C3135457E46AE107C6E74104159A82914A7059F25A2737C1DDC299ADD2B43A2F6C25381058476B01A14468DDB6767D18C1049C676E335EEE0A23B2B14DDC7421999310396497C642E5F30003D18BC76DBACDD06BC73F12415BC3250DAC8BDBB4426C92430E00BDD0234C1E3680DC94D4C30C484D610463A48CD6864EDA31BA63C7880371A854551ABAABDC14C225FE59265726AD0746B30F85127D12158F8181439A68CC177DFA817678B08B5A5C1B9F75BFDF0C7BA019A92A512B2CA5E91F2A6E1E24238491D3AFABFE279A9BDAC45971B80F187730F518194CCBD327048C9FAC4B75A38CD9432D1074F4152398EC4B2B0607C9A9BACE0D87A36827BDCAB03E55A9B9667AFACA3395EC412872427CC230C4B04BD17C2017AD39834A94B98E7B75E47BE158627AA6270DDCAB77BC166D2B969EB4C34BA0000A13861C4DB47DB85839828C6EB2074425816F026096463595FC836B5E569623B3A02227B1C21A206E83A9C5B3CE1594EB9099174FB34E5B5C333E510AC2668A704548F02B47AF007C237353A468F6DD38EE8878F35FB7D7E63A3B1867B2B47BCE58A4E95930A65C2344510A450B9C59C24326C16CDB447231A026304BBCC9823C3A218989EF2352D445CA22B6B03186407D7973B4117C2914555ACB33B4764515C4A37108306447F9EB200F8572C8467A089B824769B7DF39967289A93B7F55E1A8447F862C1528C3DC4684DAA9632417622C950B617E1A074B3B7FFBC23576A63857C1F386A0FF2A151652961137237EA346E691C4DABB45562653E26A806C6031368C17421747FFDD4725C02B40FC59737A75BA713311230CFEA4C1BE8A7C3ABA9B589B6180DD701C4E704D69A0684A33ADF1802EEC804F44C2923AA8A577C34A4A678DD2446B7546AF0021DF00A431241509F6117CD32177DA708A2D8472F8270E96A4BD21091F5D28B13FCA8F7E2ABFB57A9E4A522D95896B5811686E5B23D4577ACE10EEFDB9E1FD84CC51918D592857526C83F51C60D4210D92A425D7340A50423EEA17B8BE67325A33539BA09BB734ECA0A4C365170448A126721484CF947933CC984CC7662DA79D65601C3729881E9B4390A99B0EA62FEA97EAB9619D71B7BC282622FF0CDD0E72A3C8ACB7449153DF92E672C5C61B40E04854B0B523398A2634B727DAE3657ED985B550849D51A04F3318892F7A4A2B73C8C301E2CB5AA60E5438D8962D8A36857F08C075948095C86DE6BC34E35C8CAA04772BAB591E0137C4ACA7C34598C65102E80AC0D677511B854A8829C08EA7766EB04C6047612AA83C17AC38A545A2863161BA3", + "BF6A8005E9FB560597162EF1299D621B62C8A7B8C08E3A693FAF0607081C6DA8523805999E8B97056B5385834726BD7995BF6217C5E70863036B81C297ECA1995AC48B6B7AB0EA85C3667370FABBCA8D4C2D758A80BBF07839CB85D9428AF1EAC0D7C083567A85D13515FF399BE3F5931D992C953A664EB8974A434270B47D3E635618EACD0989A15EB065348C34A19442DB928D1E8B2B28A0858ED7AE8A5BC38087CC85515A344B4CBF529D7560590B3BB56DE5331945C0C0B21D5BC8751D9120182C7348305EDC765787AC9B784AC4BCEA454E6A4C89132E6CD0A477F3BF43DA356B66A8BD0980146B5D5137262B0062541960C0B19123A549DDF31D1C188171238259FB661E17363E12C57BD873C643222D014A2AE15CF6112C7FAB407FC12B32C12AC65A65CFA8674715617BBC6E0F96A5406C8A765BC35C699619D01B19919263102F5EF2A0C110752D3B34FD489B7A328638210307C6CDACFC6ADA87190A98B0D008644B91AEF65618507A7F59B89E7EB36998D26BEFC4B723741E0C35CF73E8041CF51AF9832BA43B8E95E368974C1DD61AB65E24A87820CFAE295D0CEB8BD6109B85174C80869716A6016AC8190DF173AB61C4D3C4C37AE11593AC9A09C210B663BFEFAB5EEBC30DEB27CD25A8511BB2AE87851643B50D1B4CA5BBC66D49AA409AAB9E7F3402FFDA93ABB53ACD45BCC9978200E94CD4D617235B52D9297D4CD374B998698D82948DAC3DD780C9336532C499C479756D50E9048432CE0156CBBD9C85F5CA06AB57B62981494622A74807CD881A58EA10A6E5C885FAD611727441DFD52834D58B6408C7D06209BBB224A5D01EEF9B491D13226684BAA5A1A771971DD112AC668108963BB1864AA8AB7913917C980F3AC1C435457684AB758569247C98286B2CBC78263F1CB88478A931130B496B12F7428087162B6D525A8216061A3859A7A470CB9B88BB0C8B1E21CE4977A73FA5798CC814CCD1AA84370FA408A83E73BE1E12511A59486C49C6AFC1367B85231F47CB34C1A8F9A963CDEAC7FA6076EB8A657E647466FC82663884D7C70EACC760DB1B0BE0B30779C98396AA3F2004976C8493AB90AE60996056668C8C2CB9065B6A2580A986D9853C071A02343B8903C0184991E2A71298269A17F64BBE1B6B51D0B299703A04A22E17C33B29634DD1766BE40357F33A000A52597A3B5E4852473D886E06DB52B7605DF5FA4E0D5A0F291B5421E2C1232553AE2472682A7352775C6CA4B189F948012C417C8C764B8C818DB252CEC8CB627455D9F792D7047CBE98B74EB26C6971BE56B7219DF092E4CBAE163D5181CAAD6A478AC9AE82EE27F7256F4D4CACDDD43F45CFA4DE4DD067CDCA1CDE599B2DFC69D59036434CC0423337513FB9506452BD8F42BB82661AD0065A165FD0A50A39142F7C6FAA2BFD417ADFA4224858281696965772F448C7AE22D4\nencap_coins = 5486A0032681FF89526326CC4BC085B8023614DD1621850619C6082483D84C0D\nct = FCA6601383C108D4B4C94BCC408C9D9A8A1A59FE24A34F70A755B5EEE3C20BAD12AB1F0102F71EBE937B20DE8C6F5530111CE303F3FE1F9CF783580E9E0602B9BB06D7783890C618FEED44FA5280AE950D21636228244B01B631F04E2880BF6CFC9C1B2246AA8FC2CECE236377B95F5D5EF14FFD780B44038A5B33CCD6C808CEBFA521B73BB4EF9F203748D1CC8EF0C9913F60CB45DC6921197C4B9E45025CA17E7DB86A7BBDAC870CF5E9CAD77F669F53A6FA52A5677A9AC741071539FD390AB0A8CF47B5F5A7E56A6F7CB142EA3EE94185D86A18BFCCE7547EC6B65A8193BE5B3D4024C632C5E8367B0A3679A09F1C3D081C392878A61C91096CF45F50E6D5B2A758C16E6E57F30FA90056D9F8030535D7AE05721F9399C0B5EE2D5DA4A6893261501803F7D976946E8D7C3E684CDDAF0C582BF76A66F7AB98F9E4BF9E44E250B7A4C8707557EE7AC07B2769B7A8F529AC0A23F8E37D47D32EDE40FEEC04AA9FB14186A19F3FBE38B7FCC4F3A6022CF433C3CFD016A10FF78A24CBF165DE4E578B9D66CC989CE42A78EB1DC07BB845831DC9AA78343545C517BBE7E1BD21F860FC2374F5C86E81475EABFF5639C019A02005D58B65EC5B9411E25723696BD2CBF55ECAD9F52633BCDDE3BFFA673C929A2620352541E8E9465B2BAA9AD397431FBFCCC80BF8F63BE460577AD1885F9A5F391DE5A05E9DF5D4DC8A53940404E313009BB932B142E6BFF9ADDC1BE08A1D14D8919887C7F21CD4C5872F39C68000259749F6C9AC92708E7CFE25A4550942516ACCBA25A284D94BC1516BA574A14E2C564D373B438FC694AB6D41E60AE3335D134E919932E029BB681BD0923C3F7416686FCA86ED3A53B9679630C62E4CB8D20616924CFFE795817BB9854E914E19F9CFA50F1856CB054AEA72ADEDF6573AF110E3DD67EEA1C6C0499664599953CB509A80B97AA36032C600B144E93C7CAF8F6583AF0673551754DF5D25FAD1A7E3F4B5ED50CEF10302A7555796A0B362D6D9258B2373B62592D1AB039CD29B06550123630B1DBC15C96E947391155FF98AFCF4870DAE1F049D4B30889B474053ED686476BC49C4DD592A976FE53F3397C3A1A03A98541B12D79547AA9FA1DBF26D7BFE8745ED4DE104C0F351A2D7EEA3CAF460BD30CE9391A023F66760EFD259B6847E2D2FB682A84395E3FA7C88964D00257FEB76E7663FDEF13365E0605741FD0AF0C042D6881085EAF0D4E55432D98D6A8E8923DCB73399683502250970EEEF60883B0DF3E88B26075225470D98C1373314BB0AC6E84EEFC6C0D1AEA0114539F2AA99CB1354F63627D83AA57C5C080B896525154E6DFFAF072228B8D0B7D6FE63B6A57F7DCF8D23863ECA6128B8E05333AB7EA6FE8AC5ED60416B48BB198F91C3988C45459250D02E8377BBBE7A82CE271A36A03096715C6D3C43B20DECFB44D79683BF8AB35FFD77E0DC08996524C17D8E7FBF08ACD9F335902786DED5D2E46C56B2D94BE5A30A5100E6EA6F232876054E13E8812A528E88AAEE0F61D60ABD4321B77DA82F5DA5FDC82E4AD1DDD74DC0C9A19A788D0C22D4441A2A272F1BC0D3DC3055FFCF007B027DEC8DFEA53AAA1B1B13FAF9B4D22F8BB6E04A0CB740DC2007182C022039B7FB2A056C0A9413894056EF320A2DBE4ADE72DC68CF9880F8578091F7C2D2C857A6C8F43621ADD1DF402E42F639DEE17A9EA81AA444513F4D0D8A28132114F8CA3FA50D01135856059E9279C938398291004920F14F0DCBCBB449B89326DC848D67F0882C3765CCE18B6B21B0B9031A78EE210475D710D4FBCD6F7FA8CCDE02BA92A10161BAAA97937EEFC3150D7D20C3CED58207753ED59796BA9DD86C630676CA975F3DE7C20EC515D039D35B9945B26478D500A6A74896C1ED978F469CC91E8F18625059F51D763065FBE79CB9BF7DDD26A4FB885EFA47F35A562B4608FB6B8A566667E85E038FF9C01E3DDFD4CC6193D80FC75122058C9CB2CAB0502CA522B27B481444FB195DE3F1A73D5CBFA3089CF07FBD5066E2BEFFB1082AA4BCC07670231D7047275F5EFE12CD0CBBEA84D6D9CD17281B23AD11C4BFB297DED5A47E0D4407CE74C509CF32526FD9177BE1E9202795AF79249B164C964CAE50295898296D1653774A9226ECA593375DFE5AD3FD2D48F17A5F07C397B3F16E2DE4AA1DA7D6D004D6E0CF4CABC1911417A2835EF6E24319260C5EAA\nss = E46DC5099392012F964EC6B239E324F35C3B547A0EE8ED4640720A60FDE2445C\n\ncount = 91\nkeypair_coins = DBACBA825728444921B227CDBA54446B3F6881B47BE9CD02832F78B023B1BEE0171EBB1A64C173B3D4D997C12F734D2D57FA2127052887DCC6461FCC23B66FEC\npk = 3D8A9E39BA19EA979AB2C504335C03DA056801F4C782D95DC2E163A043CF2DB760EDB7772C50CF5A62BDA4742D2EA296B121094AB5CBF017755C74B6465137A1D32F4CEABDBF34A7471B45B166AD05EC69238B030C31485695A9CD615DB68C83E457222D85960FFA8BA6C8CB5721ACBCA1A7B09B155A555F406A660C325C6166233C0500A0475931B27481A015AE521C7050AC2F605F032899EC655F0B662D7B65A3B21680D1B53FF554987A99258DDA8CC711A18AD8917F838CF0A16D4F663BFFB33AE9E3AFE97B1BC5F9B1A53052F8907145440664BCB5570A368044151B0045515B94B7B8073615B2889A280E59940131BA50B016E0B8C6DF2B34C29023E0773A06431397A68580C47610B50E025B0FBF374C40C1BA82A11B69FA9B6E522D4BAC7FBE737A18085056BB7F7CAA2C4C3BC5B6401F06B102A3B5673C7C8F1CB269438618F9717640C76A4F058AB864348F068691F95996072354532F3A3B6AD0E1448880CAC03B6E2A84717158339C063147DB0C586032B7D10A69E17C1B62C1AE5344483676BFE8928D637AACC4B613F24D7E2A46DE3449F17B0062FB209CD9631160CE38A95361889B167CAE272CB23F85BF34E14C789472974A176C567756C1C0EBD9905CEA70CB88A55C68B476F877C605390EE1274C07CB95939C9BABC97EC51DF82A9B7D0908DDC3434208911142CA9B8620694BB3AA9ACCD1BC236A9A89547A26E44816CE3846F980C893B29E6E6C99580C2D0A905643F556F592AB03228CD1585A19F4B82FE9C1D3E4ACB41B66F01779AE136D77D40182BB2524A87E1CB511E9D591F06B91A71594DCE26CA8B20450B899E22C679AA7ABF5B178B1637F998502F7C7B4A03974A840C9DD041C43017D8F7927F94989F2A16A1F7CC9B09908DA388A68B13F39FBA43A391D75C76148444954063D9163B6AB1509B03863DFD62D94B59E849CB545DC7BA58502F6C5CD89DB38B2CBBDEF23BD191A57B4433872EAAAD5D69B2C40797FC29955960DBE618CC5D21EB9EA720D77C3F8B3C680974FD8C474F9D588285609ABD4166A45CBAB974AE884C7061C6F129A1DE7B33D819C795C5A4DD37838CF499A09387EAD56466CB54CBBC865CDEACEB3F263BF774623A37BCDDA056CE232B2B2B4F2E22F6EBA975C933191812C9AE55D6B7C6C76C10983B02462E220BB90C946573E3E2BB87540034F870FC69B538780090C3B89C18645569B124C03680DFC10CD3050B33C16740C54916C5ED1604EC092793D097B94B4CA3474B6D90382D5CB21E8BC8488451AF2492310B7239D9A46F8C868890C7B531834B2BBAACA7AC34651B941D32477193CDE0A3347323B77CA97B997C429A2544A1590AA8252D6E0832E128262284908AB785543BCE3E6AA43D4005B469EDA56CB28B45C44329CF7F79CDEBABC3A9C6558997E04F980C562C852A103FB40AE24E26A8BC8BF014690B9085F6E7BB947F2CE93550327A61900AA954CFCAAEE412AEE44CAD3958555D18B59A0835C015CEBC77242052F13A780BEDACFCB9998DF665A1EA24887B570F36198836C6C57A95DE6349D031B2B33A3B6D52292EE853BD3E77B44836B28AABAEC37872708CBA8234827EA922FF698BD4BC9824491C6890C094B625A5B747B2280FD300455739AF8D97FDC39CF741128C03283F0BA09FBE19A24598E143B5A856A5B41334839A6188E769F78AA24673B3F69C51AE2C5AE98BAB4B0254CE8C85204E6AE38B80A2F24C162427A66B09DEBDC8235E96D25E96132617DFF682CD03896290832E3D7B5959331C7025868803A0C292AE4068F1AE8152221A4607BB9E4F94A5B98701E027A8AD0913B0BBD0BA551B00B0EEBE302E5450681878992A616AEF08A6C16175A5C22317CCC48", + "200BC7452414080ADF9216989669A560CAA70320938C812AD12278588965525538921E5920580516156FD563FC732E37E5591E000B4ED9B93211579D21CDE3A951395A21289576AA5C0B0C87BF36ACC28C0AB51FC86DA8CB00D23C40459088A1506D8A2168F94A365FA56EBD751A51C84342931A5D569793569F8FA21168AC2DF9820CA3134704C533A399219EE79F4571B1152C95333C135E442D5C5984E55516F958CA38927773A2AA526B89B79522348C1244220DFA84C6778466D2A287A774141B9B5CE0443B5F846A2DBC4A0DBB11C51840059EC11BF6CEFA3AB473E1CB0F0BD17EE0BC3C59\nsk = B1C127D24808FB2B9922332832131C4FD67FE8A1A070AC8D17100BF9F6291EFA0BC8114D98F65C8F4ABAC3AB17B4241DECCC37688B881BCB68503B54379838BBC100B5BAB306327E7965B694644C470A5148666C7FA89872D39AFF60BC533C83F280ABFBC26F073331EF40B694AB25FEEA5B2F55196798B70681CAA21537DFB5746C66129775852E5850F57C2DB2E8A0E90530A57B387B1C429101D04096C3E0BB6E9AF19F83B1B0B74C47BAC678B0F2269798573FBCA5D8E687965B13E495827ADBA63DA8A17564A3E68037B3A4991993401C1C6B149895FFBC03760C13595035A713140EB7A42FF6ADFE6BB371C9AF5A686EF858A8FB7A63FA137492B53305685205B08D44A3AC8F8948F2B7BED9CACE27AB6265722D8F2950E0C9ADE053A4C4CA8E3F80A907A39E33DB78E6065FE9DC050A5A730595AE5EA32E38C512EDB79DCF345F1D9C238A1732C552AB8DB2CCCCD11822972896B323CC43AA03633617F82E89D63D4A1003CF9C5CE3379B1D53A63EAC57ADBC91510316ACDC30FD74A1A2E6C23584AD1CB28444F9231661079B0913E20B3278D8A2E8B18556F336CB750694066B6C82C5D267A903B624CD440D8E187D9E438D178C8394706F016B835E1522AB6904F80CC24358B7DD3BB271039ACC174164021E8A522FAC473054D5B4CB3BC64BB107C6B637CD6360E312A85A3B1E3D2B64436A87E81016ACB763A23CA9B7463023148B0C4888BFB18D9441841F723B9436B77B09C79FC714385A3AE97B5BDE0A2A0C541DCD2B668C696281389EC270BC6D088FC42506CEC85BCB4B611342AF0A61B1B9D75E0DF43BE293CEE6EB0413363716EBBC48EC6C361A48B9D871BD5742FEF2AB286094A92B508CB794F2F69A8EE15C2D748D8FCA8CD2284719815E75B3B0DF76298E48280BF530E09A34D166CD5379777D472F0994BA8E5629EA7691FB973F45869635B61B277C375606B911AA1228271C85B047942A52187BB231412B50F5BE423476720240E62B9D3CFC5B7AF5CE9FB38E03349063741ADE945E994A2D6492A92B1250880318B9B9CE845BA29BD3733228AE960663050888BB98A0FDC21D6FB34CFB5C1AF6D9B98ED6AE454C09B89B6067401FB30A17DD331A845C713715B5BD4A087BBC14CBBC9D2EA83D0F9B0D56D939D01B7D590B3082D2405A20724E2C44B5123BC1407B11DA3DE5889AC52B7B7821C4AF1303D3959EEF3888B8847F3E0695B5B844E8E3C221718A25057E707A50E0159AF4462BB1D103B9057FF7FBC1740BAE1AFA44138AA2B7E3270CF80A6AC745CF701040C97253133EA195648E929E6C6394940B6ECEB18844F1C862DA6597A46F64E0CB5D2803EABA4A08110A011A32452185A6425D9D44B43463893369514957592F519C22D2B06BDC762C519D5CB84E9A68456AC60AEAE85AC6453DE2BCC103E32DD509309FDC08E3B3698A193D83D62DF74719703BB5F8CC5DB7B88B80110D74D6949D00469B840FF7FABDD4C0CEC1A097A6117C28046B06B82C8EE8204296428AB703840ACF7F3333D742726B114D3292B3154B2C4095B6D465657EC0780C488A0C60443717109363C45777271955135E60B46104BC18BAC09A18690B37C8078A226455320CA539F57A0706239E62716FCA94AD8FC2C1E5834396072B134636AEAC2D6A1B91B403B070D97C53C2C91784438708BB2761CBD4B99083096610C53ED9354F459C2E91F47BC8220F75B367CA8A8670F45CD118BBC72BAF225274D2344343A51ABFAC2AAB439FE5D2207BB1BFE2E54E58688ACA733846B7C68D12A87B905243A0324698AACC579260E94FCABB28DA1C8B6887CE10C99C2357BB92091CE1395C6ED345081C8B74D5A9BC961C9D79AFE27A2894117FFDD9B3974526D33C2D5FF5757598853AD14520CCA34B817D097A7CBDB7888B48B67F3A8D0CEB89AEB6374C97B130A658B10C1F78D38241120A3DD7A66CF76FCE43A6FE9C6BC6324A64646AE09A2F948320DB54177D2A35EEE87918AA0874A2CE286528ECC29668D7B53591942C70206C63C6D8DB92AAB03053F81E166B5F40D17D09B3760C944CD24C5EECB7C780B39608C318AB3031F89559DDF76CED962C035B9D7B7CBED0985A2F0B43AD8849DC5A190C62A131E5BFAC2C7C11ECA951B2A19674315B811E09847C49339C3D8A9E39BA19EA979AB2C504335C03DA056801F4C782D95DC2E163A043CF2DB760EDB7772C50CF5A62BDA4742D2EA296B121094AB5CBF017755C74B6465137A1D32F4CEABDBF34A7471B45B166AD05EC69238B030C31485695A9CD615DB68C83E457222D85960FFA8BA6C8CB5721ACBCA1A7B09B155A555F406A660C325C6166233C0500A0475931B27481A015AE521C7050AC2F605F032899EC655F0B662D7B65A3B21680D1B53FF554987A99258DDA8CC711A18AD8917F838CF0A16D4F663BFFB33AE9E3AFE97B1BC5F9B1A53052F8907145440664BCB5570A368044151B0045515B94B7B8073615B2889A280E59940131BA50B016E0B8C6DF2B34C29023E0773A06431397A68580C47610B50E025B0FBF374C40C1BA82A11B69FA9B6E522D4BAC7FBE737A18085056BB7F7CAA2C4C3BC5B6401F06B102A3B5673C7C8F1CB269438618F9717640C76A4F058AB864348F068691F95996072354532F3A3B6AD0E1448880CAC03B6E2A84717158339C063147DB0C586032B7D10A69E17C1B62C1AE5344483676BFE8928D637AACC4B613F24D7E2A46DE3449F17B0062FB209CD9631160CE38A95361889B167CAE272CB23F85BF34E14C789472974A176C567756C1C0EBD9905CEA70CB88A55C68B476F877C605390EE1274C07CB95939C9BABC97EC51DF82A9B7D0908DDC3434208911142CA9B8620694BB3AA9ACCD1BC236A9A89547A26E44816CE3846F980C893B29E6E6C99580C2D0A905643F556F592AB03228CD1585A19F4B82FE9C1D3E4ACB41B66F01779AE136D77D40182BB2524A87E1CB511E9D591F06B91A71594DCE26CA8B20450B899E22C679AA7ABF5B178B1637F998502F7C7B4A03974A840C9DD041C43017D8F7927F94989F2A16A1F7CC9B09908DA388A68B13F39FBA43A391D75C76148444954063D9163B6AB1509B03863DFD62D94B59E849CB545DC7BA58502F6C5CD89DB38B2CBBDEF23BD191A57B4433872EAAAD5D69B2C40797FC29955960DBE618CC5D21EB9EA720D77C3F8B3C680974FD8C474F9D588285609ABD4166A45CBAB974AE884C7061C6F129A1DE7B33D819C795C5A4DD37838CF499A09387EAD56466CB54CBBC865CDEACEB3F263BF774623A37BCDDA056CE232B2B2B4F2E22F6EBA975C933191812C9AE55D6B7C6C76C10983B02462E220BB90C946573E3E2BB87540034F870FC69B538780090C3B89C18645569B124C03680DFC10CD3050B33C16740C54916C5ED1604EC092793D097B94B4CA3474B6D90382D5CB21E8BC8488451AF2492310B7239D9A46F8C868890C7B531834B2BBAACA7AC34651B941D32477193CDE0A3347323B77CA97B997C429A2544A1590AA8252D6E0832E128262284908AB785543BCE3E6AA43D4005B469EDA56CB28B45C44329CF7F79CDEBABC3A9C6558997E04F980C562C852A103FB40AE24E26A8BC8BF014690B9085F6E7BB947F2CE93550327A61900AA954CFCAAEE412AEE44CAD3958555D18B59A0835C015CEBC77242052F13A780BEDACFCB9998DF665A1EA24887B570F36198836C6C57A95DE6349D031B2B33A3B6D52292EE853BD3E77B44836B28AABAEC37872708CBA8234827EA922FF698BD4BC9824491C6890C094B625A5B747B2280FD300455739AF8D97FDC39CF741128C03283F0BA09FBE19A24598E143B5A856A5B41334839A6188E769F78AA24673B3F69C51AE2C5AE98BAB4B0254CE8C85204E6AE38B80A2F24C162427A66B09DEBDC8235E96D25E96132617DFF682CD03896290832E3D7B5959331C7025868803A0C292AE4068F1AE8152221A4607BB9E4F94A5B98701E027A8AD0913B0BBD0BA551B00B0EEBE302E5450681878992A616AEF08A6C16175A5C22317CCC48200BC7452414080ADF9216989669A560CAA70320938C812AD12278588965525538921E5920580516156FD563FC732E37E5591E000B4ED9B93211579D21CDE3A951395A21289576AA5C0B0C87BF36ACC28C0AB51FC86DA8CB00D23C40459088A1506D8A2168F94A365FA56EBD751A51C84342931A5D569793569F8FA21168AC2DF9820CA3134704C533A399219EE79F4571B1152C95333C135E442D5C5984E55516F958CA38927773A2AA526B89B79522348C1244220DFA84C6778466D2A287A774141B9B5CE0443B5F846A2DBC4A0DBB11C51840059EC11BF6CEFA3AB473E1CB0F0BD17EE0BC3C592A50C7A070B3DC7E107EB1E8B96D62305C13327D729BF9D97C69F1FE6EED2B52171EBB1A64C173B3D4D997C12F734D2D57FA2127052887DCC6461FCC23B66FEC\nencap_coins = 87D356BEDD39170C21194287FD3095C451B1E877DE2FC9E51B58294672311A75\nct = 3863783F7804EF00F3FA68464DE78B3A251D5B3E20BBC902DC3DEE906634DA3FF72AB3BAE821C573FB2A270CFDA53F35E72B8D7F6746A8ADFB23C7929EEC75B12A296D0C0F5EC6BADF940601589925F06E3FD5565F965383BDC8E884EF4D8E19F07EB4DF97F58394FF2146EF8433B2CFF84627FF9A57B98D64FBC6966947E69D8B5BF36A5B5AF6A9DE6F61021FFB8294BE377A313CC0D023712D876778C03CB7461668CC614F3A90EBA73E675375BB5B5BCD4230DF70EFD788392A3B1647A6CB470E8BB09ED44C12D1D385710B8C3E638C26ED676DD76C7F1B89F4AB0987B039A33008397CE60F084260EFF7BCA4807EC77906EC5C13DF729EE70565AF29F3D497BC4B869D3471E89393ED6B6A5FD9896CCF510EEDA1851E1711852BC5F73890322493EF64B0E911502FC1EB0706B82AEC19DCED70784E31877082C3AEE100832BD3A94B4C574EF68F46611996D51B758C7ADE5E683EA7E40934876AB1448F35FE6BDD8114624EDE1C6DE2183E3631DE187D87461644EC6814FD15DFE8BB78860B8356ED8EE7309011D88C22C0628F9D5DB984BE1DCAE19F90C0B9320DD8AB13AD844564F790F4EF97A027E8F26A8A0A2E87FC1747C7703CF175157F6D5E3D47D7D75B8270B81914C22528278FBE5658B8DC275E5C82E3A88E56FD55B14DE2C245479DFB716D5E4934A8ADF88AA3D4ECB8FD88B14EF14BEE88A393F88F2F070EB64F3415698AE81BBD4688C5C12EEB8BC31C541C96B845598170E6972F0E8B3F00C999B21BB04EA01BBB430FB5E90F90C039B37975DB5AC858703CAD4EABBBEC01DD45195A62CDCE86ECD6361CD9848DCA7EF87B449BF672930BB23E812D06632551E676B169587BCC22B8CB8E52607DAE51E4FA603587B7991C8EFF24E59AB035366509AAC8E41970711", + "54B7136EAF36B323CEECDB94F75601155DBFF47F4BF73E07978B174A3F9F2AE6DC68E8301B5F7EEBBD1954DC132758B989B84C3E6FE324B641E42230058D12502E69F8E26996672D445BDC6D1B5231396479FEE5CF111D3322323DA1EEAF36BF3D2A32EEB5492F76AE07C093E5CEF0D178CEC7BDB7B2AD0BE4452792198CD5BDCB98AD69914054271DB6586F90D1FF4734EF22E9A3CEECD3A167D2F247B2166034672CFF92A9311217EC75064B0A56BB52C58717712F26A662DD934796BCB628292939C37A8B98A8C0C7F94656EA9C5F19FD901DAB16D56F245C92A929DE1B071C08056A76D32158FCDD083B3D71BBB114180503F16E6B6F54EAC0AFAB07781ED15F9ED1A272F0286A43AA0DD0F6E9A44546498198F49621F98D182C14270C98A0D3CC01E0AF584D31A537DE1579184D71A97D3A90000310649B08A2EE1FEC7EA7B9B3166508682DF44358523F8D9F10CA8FE4D1E303D9E3BE387681BFBE11867B8388D0ED03BA29418BDE7C9C39B51CA92513CE2674F8F1EAA5B665224A239CB05A25AD408DB92C9AA938E3DBFC2A2A98F7761AF5E4FF000DD89A53A91F09B2692C73071F8F877E5EAB8A9C7B00F43080E8205358D26710E47847B4064228DC68E80628809DF5C290D3C94F9A4C6504EA2AD1DDFBCF6EE99A6BDE3550783557541D43B658BB7D014F85163F012DF9A2755ACFB533B27432FADD63815CC7FBCE942A207A10193AC1FA853FBC33F94D0920441EBE575F956F736C27988D29EFCB826C7D57180F2ED818408B41E1DAF8CD58D785CE64B73CAD62E70C7F74B54F3269DBF422C9A114E4FC2A74A81B3D1EE3082232681232F295C7547227F9CDBD5770B207BADFF0E8E903073FC0CB4CE730CADDC59F6D5EDF329A8996ACCFFCD7D0DDB98ABAE80D8ADF1C6435A8A997DBCB1CFCDBA0F45261C20A837CE163ED176904F2D5A9A5CCAE6F1B974B2C1AFCE4A6D9CEC345D8B8BA6A6DCC0536DB98E1BC4D18409A31E50495A759C7D160606781B3300686A41383DFE8B03D3DF8943F82EE64DCD907FAD81997B893A85AD0D25742D7E8BA5A694B4D84FB50F480EF86FC8E25F0CCB0CC3216212A46B28341F2B8014DFE8922D3C391AE61CD116BD3443BBFBA7EEE279F15182BD7CF829E2A309E4A97FC63BCB943F9CB5050947F7CDE175A01EE19D619135667A522776CD5520F5B2377473EEB01942A0DA9F87A0CBB3B9D7DD4A8C1B73CFEE9E30A068E274DB9078C37D82F05E30B1D49AE1984B18302B183572875750F04A9CF8EEC15AAF622B7448FA3310\nss = 31D2C38F6FE1612A1292626016D478D90924E1BFB527602AF4C18E0694ECD7B0\n\ncount = 92\nkeypair_coins = 690EB71FD7052B906EAEC09937A8ED374E0B02AFA27C2F14399932BE5839FAD20B472C6DA19B790E6C9591EE625B42CA0FC04FD9F69D72CE4EFDB3B9ED8D9C29\npk = 355A23B704C6448BAE0A62C2473C1DAC43425852245FAA8514B54C2ED51305047E5B44618F166CC329172668306984151C31CF04A9864267A1EBE30FAA133FDFC040ADC3CFA49A3C0F4CA85D7A52A72B71F217278FA787A2E3047922BD339176CBD5049D498708D65F2BEB4FF3E544F973A4B9E19E6704B019399683758010E5B759095F17989D4A25A2D9199C3FE73D7096442F539F29EA9E6B06BD39E1630DB0B5FD819DC4002297A205898108050C9365014351F38C017564D6798A16382B6F34907A4850A0183B27243EC4123CE3B00CC682C1CB8A9D97845F5D24B5FC35C7E088CBED62910C4050EA6B76C88C87F9577941F6A5B3F2B614C94224C26A36A841C3B40469D2C0CFC366DDAC23C8C2BFC401AD78C758A6CC1684D1AD400BAD5D88417503CCF169481FA437E4A8CF78B907890CBBC1AB9F46178EE2DC6DBCC1604D2B766707B88C1A343BC5A074FC481533CABA15CD3787962697B11DF700044A79A809112516A88C2C662965A2DA9B996FF92D951337B4B9C11E7947B14212A6F3CF19D2C5D86CAB5267A1C8065EC045517DC9BE0783194BD846DFFC50EB723EADF08AD7B86881CC33E4D9A9B407C7D464C156E94253A8B2A0128D52A34E27610D9A902D4151105409BE06A11FD3F73C88B79C9EE630A98105556B777A5BC680A803F5A7B603F16643AB0A9EF7161861B3ECB5636A9529A24A59F17A389B61AFF5E633B863065F37789A538F8353B80AD75B4EE876A6CA363B6679680115F4B9857BC88B845510027A0E9014621DDA9A31E12222522557F8C86D29A499F0547E35A99D81B1A02147DFA3C45BEB8A3026A23FD20297D20E33503CD49002A9FC7FF8200AE433B921BC93CF10209A05242788908F71BAE849518BA305EEF84597F654754A7808D81F2CB62BBB282911A0C5636CAD75B53B454A5A923A5FC8E956C9CC527BC04B846B596C9B222A953DB76485C6486907F898F6835A6F315AE20B57D3E56953170EA586658B9178C638C9C22C941097838AF0123A601D0D4108B2EBB53B46233408CCBAD9597633440EC1AFF61743F0371CE62CA1977AAEA8D98900F0016E5A9248661FBE5C1A4D261C5426A12715AF037A5FFDB38B8DFBC11EE3B4EDF289C3AB3995959078091E888AC0107467BFDA6F3D35516BA7404A4733C8CA4ADB010F7399AC5F14C2CF992FA812CF72F2C79750CF52E648DBB8C3B14698BB517166BC1F663594EB9A6C476C58BC103EA7F03F37205C5C355A2633B9CCAA829E3366FEA63932550617AA96D267CDF4B98CFE3334AA0A5C7600CE6AB6AAAFE7CFCCE4BBBE2756B7CB10D6D6CC8C71B32A04CC652C01E2B62A73497DBD9A46EACCC382C5903FB405D950462EE6C87D2631FF97ADB38939C4F284489BB9D1072821C108886842F5C1B402AA2E49D37AAAE13B7C14B5A748C2DBC45BBE5BC2ABBB929B613767A720BA572CA63C2080C4547C9024D2F451F25973F064941E814E3EC74B4C1770542B0782C67580B7A695C2AB29C95DA2C18E4563A24101B11084586CF9A42ED62A2BD1570FC175F4D5BF50F8C4A196AEA1953199143EFB5183B3A905510623EFA47C4A52522787723AF5B5D05B86D15126EC6BA2201120B5A527324A9895F62959E24AA6F8C95D9001E7757FA5B3A80085BC48BB0D34388C0F6CB647B0A7CB992519922A730865A4032B51708FB6602B08D144336B7C7B65730D8677399436FF5711EEE7B935D67054982472B96CCFE7279F1A673BD61757F7B951A5BC9C4B7E52C11A09F350737120E0923F8C1A2989F19A6FAA06105391B39B266D9C768C658D56FB59F57020E0D17FEAEC496F729A810821FCE59CEBDC24E8B7CD3B869144225CA4B5A5C72432738BA5B939C64CF338021181765891469AA7AF34A628950165A1328CC4C2B6874498A8205C675214137E47080624E250521CA34E394E829206DF285E7F84A8B117C24B1450F883AC88D47142A64552AACE5DD85332AC168ABCA2597BA39320653E8338303552B419C84ECC014CA3006B50A6F74B8AC57378F8A06006841F972B703A2B0DAAE868698B778BF6984DBC7BAB537B29EC5462463295CA1581E2A60F5C169B494D0B7793AF3313FEE3742D84C1D20B6B47877320E25AAC270E3739B34063B62FC171EC6A6BA7B62FAA650496A63110D057C2E5851E08E31FD88AF2F84B0CF79A88DE834C1F17C7A5FA17D329CAA0\nsk = EEEB8866B17CDA12A45FCC6F9D05AFD103835147647A7301EE071366398473C8103AB3B064E340F4F9866190ACEDE02473FB49635BC38DEBCFF0F34C5175AE0EC025AAF19CCCD46D658C2A6BA62B50D1452B09C21B430EE9A3CE05D36A8E1AAB2BF0185F35664B4999CC8C0DF049C01056AF6AACB025708C184534F1172B28FCC94AAC2FB7012E20443F11F43478E7B1DD8A5C7D9B5A8818C0D2259C7F710F51003777B060F8DB5FE06C3520D35E97F6B5792B0AC3304349387B637686CAC1A6E45149173041FD7C3CFFF5A398BA832DBA04DD7179D0768122A701F4E0BFA48149FF140E2978A723FB985B939458B081E1068EE5102E5F540365E6ACCBB8C28DB84125B21E8D04622412C2F075CB57019EB828616CAA245A8B099A01BD86268CF491823E440E984335AF59924FAC1D43263AF725895C717E827532D35C7DA9AC1420B46AEF13C9F33A427BB5A1BC646F7B54A21760527D303BACB2A21AA39C5577BCD5F416F126741FBA9C2CF9401EC20A14E9A7BB927CC8135BBB0C3180696093289F4B19539C58655B8698A5D1339C9490BE7C04AD3311FD422045A5027B203407CB5755462C21AC51F523389E803F30E12FA9C0AA7B4A1FDD85C66989AF558CBA916C9A037AC7DE1A3F7F1B5BD3208FB6F28661696AD0DB88D10A3B224A5BB5C99CCC96820E153E478AC579C65BEC5A3D4B85AFF1C4AF5BB222E7AAAF9E9149AFD11EA5E86990913D2B543913942D148639D9815D4A8908362A84BFB6AD20B8ACF9596DF4187009E7B773070450010744712F9E7A9B8E9624E3E2B1D6140A9E4789775ABCBD2657AA487740314EA1E446DB5C09746ACCAEE29783B23EBFB255BA5C9706F1254703C676EA09801762E9FA45D858732AE7218B37107B3708EABA05D2C035FD447CEBA46EE446AA324BC184E7B929F7513C16BFDE5C5E55C05E6B5041552C17DD223AF273CBBF65A44B4B6DABD51B341464A9993EFFD671481592C5A655D116B963975006B13503BAAE38332248F58656620098F42F97A813DFC7B4DF880E5E783AF5D833B89079474040AC05A6A7EC5E9EC1BDB282443C736514514F1CB7455958608A62503428464D89C66B209C417445416A54AA66234B1A5BF1C0C3F7064B6D0A7243E170B6ACB01C033C5B1670A3BA6801024C03B24CC1786025FBC56BF04F3B241E4BE701C9764938695BEA4316ADB6ABACFB44F2041D2C29BB867379374B211E990F194B872A7B684A212DC179A4ADD943AABB1E6BEB93F5CB100FE342D0781AA80989406571D1B79D08E31AE15B81740A22DF02270F920EBFAA3C9D74392CD64E71F363DF221134E9BE32B6B855FB76E15B5C91CC6C3F750AEED71071A0803987CA7F35882AC31413A6001A6023C0A183961722B6EBBA16F5577D95BEA2C5AB446AC8E57ACC96281A07599A8D335C2C12388BB0CB9F8633CD2251C8A7563B396072D0CF6E7B8E3AF2192E5731341214C30708E128914C124973E759D4221F1735386B874905220C41FC731A22B9C665CEF0CC5353B799399905F0ACB549F13C6FA56FAE2907D0353FF2054ACCEC40310A2C4B62AAC3F392B014BA88FC90EB868693EAC83516336BAA601F600518FC820BC8B0E76C664F3CC8E6A5CD6C34BF246A5D52F93643111F8F9557C3499664EC572DDA5D73220A170095AC2764F09167E0B2277F08B23101BEA40923A282132A07222CE0C2F1C5894318B591E5591FF20A5D8BB735CB3F7B161A1634267BD33721BA066713A4C25CAE04A0973CCA6834B717C7AA9BBAF1471AAA24D92C5242C388DE17A42019506DC7CB6CD7315437595A9221C76C7862057AFD76ADD8E852062B017CF77974062D00B9A6452CA040D839220372F7D44C36115A3FC5671EB652037421D08484A68B779E94B3F6AA5E74DC282525859A3945003C7FDEF3B57CB5B43F14A290A1982DDBC9D8611AA6140EA8C36C4B5953ED45BB7DD96D50956924ABBC70715B768975198627A9E64499AA778B9C4DF403727486329678790BC8623414436D79BEEC3624BD20423D14C91E4414EA4784DC405E30F5734A4005B6791059EA8BA7CC224146A856F514753005AF7ABF5DBAADFD0492", + "C95125493597520478304696FA30681134C5D3B71FE5C54EC7D06588798B31D6890EB842E0ABA055017B8EBC4A355A23B704C6448BAE0A62C2473C1DAC43425852245FAA8514B54C2ED51305047E5B44618F166CC329172668306984151C31CF04A9864267A1EBE30FAA133FDFC040ADC3CFA49A3C0F4CA85D7A52A72B71F217278FA787A2E3047922BD339176CBD5049D498708D65F2BEB4FF3E544F973A4B9E19E6704B019399683758010E5B759095F17989D4A25A2D9199C3FE73D7096442F539F29EA9E6B06BD39E1630DB0B5FD819DC4002297A205898108050C9365014351F38C017564D6798A16382B6F34907A4850A0183B27243EC4123CE3B00CC682C1CB8A9D97845F5D24B5FC35C7E088CBED62910C4050EA6B76C88C87F9577941F6A5B3F2B614C94224C26A36A841C3B40469D2C0CFC366DDAC23C8C2BFC401AD78C758A6CC1684D1AD400BAD5D88417503CCF169481FA437E4A8CF78B907890CBBC1AB9F46178EE2DC6DBCC1604D2B766707B88C1A343BC5A074FC481533CABA15CD3787962697B11DF700044A79A809112516A88C2C662965A2DA9B996FF92D951337B4B9C11E7947B14212A6F3CF19D2C5D86CAB5267A1C8065EC045517DC9BE0783194BD846DFFC50EB723EADF08AD7B86881CC33E4D9A9B407C7D464C156E94253A8B2A0128D52A34E27610D9A902D4151105409BE06A11FD3F73C88B79C9EE630A98105556B777A5BC680A803F5A7B603F16643AB0A9EF7161861B3ECB5636A9529A24A59F17A389B61AFF5E633B863065F37789A538F8353B80AD75B4EE876A6CA363B6679680115F4B9857BC88B845510027A0E9014621DDA9A31E12222522557F8C86D29A499F0547E35A99D81B1A02147DFA3C45BEB8A3026A23FD20297D20E33503CD49002A9FC7FF8200AE433B921BC93CF10209A05242788908F71BAE849518BA305EEF84597F654754A7808D81F2CB62BBB282911A0C5636CAD75B53B454A5A923A5FC8E956C9CC527BC04B846B596C9B222A953DB76485C6486907F898F6835A6F315AE20B57D3E56953170EA586658B9178C638C9C22C941097838AF0123A601D0D4108B2EBB53B46233408CCBAD9597633440EC1AFF61743F0371CE62CA1977AAEA8D98900F0016E5A9248661FBE5C1A4D261C5426A12715AF037A5FFDB38B8DFBC11EE3B4EDF289C3AB3995959078091E888AC0107467BFDA6F3D35516BA7404A4733C8CA4ADB010F7399AC5F14C2CF992FA812CF72F2C79750CF52E648DBB8C3B14698BB517166BC1F663594EB9A6C476C58BC103EA7F03F37205C5C355A2633B9CCAA829E3366FEA63932550617AA96D267CDF4B98CFE3334AA0A5C7600CE6AB6AAAFE7CFCCE4BBBE2756B7CB10D6D6CC8C71B32A04CC652C01E2B62A73497DBD9A46EACCC382C5903FB405D950462EE6C87D2631FF97ADB38939C4F284489BB9D1072821C108886842F5C1B402AA2E49D37AAAE13B7C14B5A748C2DBC45BBE5BC2ABBB929B613767A720BA572CA63C2080C4547C9024D2F451F25973F064941E814E3EC74B4C1770542B0782C67580B7A695C2AB29C95DA2C18E4563A24101B11084586CF9A42ED62A2BD1570FC175F4D5BF50F8C4A196AEA1953199143EFB5183B3A905510623EFA47C4A52522787723AF5B5D05B86D15126EC6BA2201120B5A527324A9895F62959E24AA6F8C95D9001E7757FA5B3A80085BC48BB0D34388C0F6CB647B0A7CB992519922A730865A4032B51708FB6602B08D144336B7C7B65730D8677399436FF5711EEE7B935D67054982472B96CCFE7279F1A673BD61757F7B951A5BC9C4B7E52C11A09F350737120E0923F8C1A2989F19A6FAA06105391B39B266D9C768C658D56FB59F57020E0D17FEAEC496F729A810821FCE59CEBDC24E8B7CD3B869144225CA4B5A5C72432738BA5B939C64CF338021181765891469AA7AF34A628950165A1328CC4C2B6874498A8205C675214137E47080624E250521CA34E394E829206DF285E7F84A8B117C24B1450F883AC88D47142A64552AACE5DD85332AC168ABCA2597BA39320653E8338303552B419C84ECC014CA3006B50A6F74B8AC57378F8A06006841F972B703A2B0DAAE868698B778BF6984DBC7BAB537B29EC5462463295CA1581E2A60F5C169B494D0B7793AF3313FEE3742D84C1D20B6B47877320E25AAC270E3739B34063B62FC171EC6A6BA7B62FAA650496A63110D057C2E5851E08E31FD88AF2F84B0CF79A88DE834C1F17C7A5FA17D329CAA05F166082AD3AB0C739CBF0A6BBE2707741D9B5F53A0E16199280A2376C9E5A170B472C6DA19B790E6C9591EE625B42CA0FC04FD9F69D72CE4EFDB3B9ED8D9C29\nencap_coins = A172A053269AF9BF0C132BAEBA3BCAB0C3222520EB90A6F7BA15F507273C828F\nct = 1B5E0ED507F770F039BF29F4C1F264EDBE5DE494755131FDCF392C6C18245778DC266F9B42C1DF973F2858023E8C774598CCEC04F0EEC86822B8030C53BDF2CCE64D5D8186EFD3FBD87B9C73FE74123DCF24B344DDD45F2D824537EBC8C673E9444DAD1B3B180415D61A500134F527B2E46F86AA1A30BF1766B5178D0E3C43CD78DE03E726A8E61CA5E7A5831507445D2DB64F412481598F699C17AB1A9AE6CEAC0CD491435DD64A3AB426EDC2414A5AFB361CCA39D007DF65BBFC6BD9FFA114D4B7DB5F1568828BED40BF9E5AC1BBEC1B369D29897CDE8E9C4CB17F8F068EDFD49903B6790F15BCC147405CCB90B80AA44FEE9E596EEA23E9ACCFA7346F20C3B6852A610460D20033547DE2CC8822917F4466D3E8E90E217D328D46D35426151F1C45406828B44C63C435989D39576C7ECBE18B1207732CE1C966C7CC980603949D1E5FEDC29C0BA75616E1ACAB70277DA24CEBE16C8B9D03BF5390C6EEB0284ACBF68CF83E4468DDE173491412B1A6B773457954B65BB56B81101ECE9D29E631253FCB26C3871ABB80ED63217BE54DFE7B5E47A696DAACCF44D542087083DAB164A3C0A06A19A022EB8A8F1E47E94B364FE04D240A464D5264F7228BBC4DAF47F9E1E7175336E9465DDECF39A28DAAC880119E385115B3A1C0FDA0E8A65E225D4C0D0E5306B01DB6291029AF76DDAECC25401C07598560F5B652E47CF6BCAAD56A8B6928A6B5AA3CAAE97A7002EBA9D1654830915749EA75A4F0ECDE9E524A48A3807E2396F065C2AB9CD8BCB02D2DECB8A7971A2CE790017F7AB94CCE2514DFDB711F133214627904956286507ED7ED80A44B6FC6EF6F60C210F70645F62463C862E09D6EAA7D2F009E52965A40AC87F7D53270D8C0299D68EE3AB3152228DCD976508ED6B9B43B12D1B56C59F417A24906E1A37D8E48DEE1C753B9AE4CACDD66340F555C75F3D4951B5186DE466943139A38CE5AEF14ACFBD172DD14A681148AEE2E5D5E38D009420B7EDD9DE4352FE347607090DC2D06525F32B28AE86FAC64A9DD1B3A83D9733111AF43E45260274968D999B82EC60594B828A5EA75AEEDB02A4C296147D5DFF44AE50BD24AAEE05B2991692A02F15B054AB791950AFE07BF5F8879784B1AB3E9A5139D0B79593A9154620AC2DCE00A5DA9A0C43A40D027B041EF81A8763CE41BD1411562742083DC544B4393F76CDE34B956DA38994B02447561858E15FE4A2975EA0157CF2847189E8131F5289BD4D9C4D212DB254A1F26A6228DFBA9E9FA4AD74DE3C403A9DDC011910F42BA84EC310DCBC68BEBD0E22F155065E266D5E8BE6A6FC87B9E8C2A893760320673DD0F1D4D028806E008DAD6F58F635006993131C91A438131BC370C0E1BCE0108CB031A3CB1459A0FA48CCA5897815CAE2B9E278ABADDAFEFC493DEEC18EA99D0CC8567E6B29D76B1B700BF273177CC8253C4BA1C05CD0AE6875C04F0185131E95349D7BB27D05CBF9209B5EB6397B5C92BD110D3ACFC3B8D24BFF2227D3FF6B158214F895ED44BEFB1F28FEFBD6E0E8F8EF770C9F90B7D85B931C4B69C223E96410633F3E529FA96B8F1D9E4C2AF953BD38A50406741548AD9A08B826439442620B3330E8D79E452049A139A8B7503AF8450BA05D3FC34E818ADE8BAA23E66CCBA61DFFAE259D132B85BB3EFF18DF26B96ADCD8B9802950F62DAC16C9D8C0D4F9560583E39A7432EA7458333A6AC3CA0F30BDCCD0818F258BE672B1422C5C51317063BEFCDAB70A6F8204767A1CB823E6CE70ED944B20B87942F95A60DCAA4C7A797BB17BC61C5584D17E5A58E3672AB97652EA6F3D3D31216EF58A1846D2A64B62577795A1510336226B24C2E6075B1717449CAA1459F3E003B56F6C824C3A125F2E39CAA2C1C5A4D16A0C594A7139C8748D17D29E91D8D880A05C8B9E7CABCFB8580D68D4F8AA9F7F402096B482C4A67B0C574900CAD334CE63AA32CB7E9164680EDDBBC5A3027F28A554C4A63D44C21CE4F3B703B15DD3F80BE4E8C74A9673DD24973B9FA6A4199BABB993AA3A386C3ED9635B0AB59E7FEEF8A74FBABC3E7D9F2FC56CB94BD15D43B71843D9834619764A31473DFC7E47813FD564C76186EB7F520F39E0C580130BFEABA76B7E04E986BF943F62C0B82305E4AD575B6C0AC55FD8E31305178011297B5465FC717407055815BF8DB52998217BCCFE1BB20CFCAF98FB252E250D24F\nss = EEB511979B17B821CA1CE569606A76144179E8A8BCFCB3108C44773C89BEA166\n\ncount = 93\nkeypair_coins = 32E0EA9089FA928482C0770DA545AF1BB871A03CE38604138B0D08EA2A10CA2B56DDB63A495D1AFA553A815CF751D711478A39E8D1AACA992796B619C84565CD\npk = A3637B6EDA83BB2281B6320527E3B22BC08B5AA644402CB674059135D9C928BC4598019722B8AF0B647DD3F02D553BC457BC763883288DBC461E775909745317F67017D3AB5AC283D0462167DCA55E7452438529DD715F8AF6438EDB470B816546D078DB0AB2588BB56B2C0E06741CFA28C997A128370C1D72221147F0218784633B45207A3B43FBBBB0D0CAC41FE70213475E61058CF21797564B0DB1A2095CF367B9561AC2681AB8B6CE7D240B5D277169C31EB99A4B68B92B3ED1CE6333B404E8807B32A0B03080664CB9F0987D2EF56308707B46B14F5667B2ACE438701CADD7B4026CC5886BB7C0160A9684D5220D422497A9162D84C2500C0BC4D8BF20A904DEDABDC56A92F153770AA95244220BBCBBBA66AA89823289A2335898F01789E8A845D3B5A22C34C70A6CC7ECC9EB4B65AE0551748734A1244A30A837ACE642F020779F6B6CCA633E33FAC08C51330EE0BF70E8A6AE4A7DF0F2BE54B10C6E418426C69C212A33B6B897B31630C6928CC4865606CA1F7CE192411C8D4812645C0655E23553B13C6C7C073E0AC92F35465A1B8A505DE879998BAE71608AF9E943B4CAA34F248F6DC679D93033B51C53315AAE72D843884C83A0A711D009414C215BADC32A5F74CFB3179D6EF26818D7C79393B8BC8B8D212092F2250101560CEF4ABD4132CB31996B85432BF437037D73516927300528763472C0D5CAB08294154001C3C7E785F3E887F1BACA5FA9498947B691E7A2ED1C9F66F9BD60FA1823E32935515F90234B7613AD5EA3734A6C0A9422A97DC7042A0434A684083E8BBB40D2C4EBC08496A7261EAA269175C2A8A0AEF21474DD4837B6B1C7BC112D67A1C175B2634737B43E5475D5EC9A75827F02091DFDAA20FD43CF59922479A671363737AB1CC307225BB4118D1A714DDBC08B770283061762BC098415E1923ECB3E3C92216D30694FB869B514A314DB3FE8DA5FD493", + "0ED0979011D8B1FC723AB617B6DE420482E8B9FE2A3874B788F0416DCD20704C20285247784477385A1CB219313B700284097ACBB90976B94A5FD8984BB6B7121BB020E589804281BEDCD78C1CF0AA7AB136C7E7AFC206983887BEB2372784A2C388A18B1DFC5E077703C8EB7F8A966DEF46225C8B3FD0F85D6E3A328C8C1BCB0B55D0341CDC866E1B040E09C960337A9FCC5C587C393D29E5B4921A9E2377775905AA0CEB54599BCF04421056915CC0D79830EB972C01BD3756270975BD63E224D0F58307EC2986699D5F536EE6C21F5DE6844DA70B797C8EF5B9A473624C50647D171682F30A2F3FD7C670595243D59487CAB8D0A7727D40350F9BB7D984BA82D8CF39E817C8984C17892295E09FF674A684272CC710BFFB263BEBF1BE44665C85530D13F891026790C2C1590AB6159CC22B5EC76057371BBA107FFBF402631297C2C59BD05634BA628A7BEA14F3985D2B5260FBC64664BC9EE308694F8BB3C4BA1F4EE43DC4EB4BEAC095B74820A2787AEEF612C0C48AFD0B20EBEC9417B12C7AA50F4FC86558D36FC764C5B69BB4BFAB3526D533DE0C2E2BC1CDD4B897C9F990E8987BBAF147A0C4428AB68CA077A2A2D3AF76261A1F371FDD503F6D9517A8BB0D53499D65208BAAE23C77580BECD252D006BF27BC11B87C19789384F063538448B98188B0DCA07328265F4C4B68DE438D8420874625BCD12912078056C7DB367A1598BF200F39D2A90E12C8DBE7AE4B780C8F5662C78916AF1A270DB365CA9097A37525AE347961B13B9B72C68DFB7AD7517DFB318D5385B7343A63F5026BEE90177FF212BD6B639BB15D7949680EA38336891653D2C5AEC083A8873362EA5E6FB4B0B1E19E48C1B90235796BA570AA0A3B1EA6C483D3079C71CD153B246993B86B506E477625B3B939FD9616451B90DA9348B87C0201E087A5592A208AC9AB7CA6712758ECF4CF1AF163CA3A369E82B46D941B15A42D31F8775E6332387036CC1BB31C5505D52B1A0753098D40B4999A74E4743A73E539D9E7A9514AA5671042A68BA6EF785234622F7440241A55A71F018A09EBAB25F7913691BF787B781EF818C8238CFE5CBFF3F8895A19C24085337FE10EC7B326DA82283F03240A02AAF2658E04F7626DA155A9FA8117EB3CF3F36D1E48BAA2F68D158A0123691872AA74C64670437534B6DBA775F80E14BEC0494BAEAE3C7AE947BD69827E1FB86388052C3BF3F8B4CD25A568\nsk = B27CA8D40A1CF8AAC1A62553FF541EF56B4B4E352E38C0AE8C2CB2240C2D2525ADC52B1953A1C239E3ADD71B5F7693196875BABF8B31EDC528F3B320E6569997639F1C9B5279C38D5DDB3B691B0228AC4480D45077DB55BAC24285C5820C49BE25632C4AAAA23ED84E10A1256D9CCA9B584D423A9FD37276CBFC5953C9284A4097BF71706069AC413AB857C64EBD179EB75496170778AFD74180D877C9D69E1956450B1289948323F64227960A0B24B442E78C551C5B35E89B34B018B80BD094F7594365195F44C05BACBB2E0A976A86559BD6B23D220B5C900375C6B188FB353C3B064CED669BEE6751D5D22659EB89900A92B7BA84EAB58B7E95CB8495191CA0491EF75A3ABB9469A7939796C2F8C15CA22283235852B0A96DAEC403C5C057B5AC91D09CB16E01BB0D078170E0CE9596B913E953C5AA67BD8A2FF20C0261CA814F334244886DAA0694368293FD858E14E23D13E66AC89A58867574804786C4C48D2FC003336C002A7776217ACFE7084588455A0A85B8AA51C33E99B1CDB75541855577911DB00475DF42168E7A21EFE57402303DFE37AB5BF10200395550A1639DA2AA8E358748EC38946BBD3DFC27DEB08F4F017ABE33A2DF3B9B96CAC0E8C261E487CFFF31A1484CA5E04036797CB4FC87AE6CC72F9EC0835AE2B160B425ACFA8B75236D92870E4D43BFA7EA5C98827F95DB6DD4200068650E3D8812DE827C3F660CF8049933DAA52793AC10F57AD8F2A7445927CA6022D5A485F9424662A175B2A6349B248AAF4853BE709D42228C3CE3B13990794B9698869842B81649CBD9482C2435886441ED9A7927384371D02005A514717ABEC398BD183B321134A4DE85A1FC9B72F7268CCAFBAE289C15DCEC18BC26B81EC43C6B8A3919625165617D60C33F1E6B04CD5492414A15BBCA5CE84284557C9CB481A951FA5DF2E444E2C20969F38284E60FF15B0EE707115880BC6D3834230C7D22C7CD69229D1EEA957F58B2D47B11CA97C926070CF1C1934EF83F5A26241C7C73959C8A0501C2C1C70671987243635FEA56CE6EE292B1D6AA26C4CDDFAA1751520FC3218E7E20C13C6A1DF4835C7D6C0BA45923CEB2AB40FA7FE3732E47AB652309CDF28091D8D86308B73F90D86995220ACDD9C544C95FCD24A77E7C90F2F15E52AAB595E11B1AC0799A3CA95E0644771420AEDC777A9048FA89CE94780C8F2B903548BD46A2C22E453B68736F5CCA6C35EBB027C0C7035678F7F69A9CA02FBB4B23746759660251F6757BE3AA1767D7280AA75B60A7A0CC892F70F67CDA886CFCABB451A36023C688D7AB5E0A3B5BC88514CED3597A594D0E28C7AA25859E57BE9FB12691C047A8A7373FE1695AE742027A8F5630CB2776721815742C66A4BA0C7E7E8B8281144B80288CC7296BFC8625A2CB995B548D48294B2FBCA97D375B91203392CC27FE835F62DB97B14739F6C8B1880A53DDD388E2636F866416817A110258A098D9AF4458A64C68654E97099746B9B9E23ADAB5653970C00719B54E4A2D2092CD7BD62AD9317357E35224184A4E24B4A58014F666B33E1530365070B73AA6DA432D04F2588F34AC1CB3B3F7FB4AB200B459966FAFC689CC40ADAD0C26108859A2943E6157C22F9861EEE9CE412212BB11BC6C5414E781414711C8C61B29C0F90303DC5688DA9D00B78EC8A80A4C5485B67BB83C850D2C0CA56E45A30F35250700469B957FBF90A6A097AF95E4CD2060B38F8136B9F493E9C4B6B0395E04A0761834619E5B84AB33C3CEB083B1D268E468158232075F3A821BA286D84002C3757B99474B56820A414131E60636D03BA019FC37E8C63EBDDA124A9370935926CBF1950AB83E56F088F36C24EA9A84E042447718220BDC53254708BF85971ED83027750301A685D2A91A652633E2E55CEC7932126852D0216F3D943F5ACC9DDEAB99EDAB31E79A5BC5C5971F5B5FF6B50A57E2455F45346C3275CC1B1B0DB991CF3BBB3D2A2F522A9EE5426556D84C5C0AC7D827A0E173480427AD9F637C1A71A2816858B2C152C33CAAE1FB5197D874D6F817996946E563C8DE22AEE6B5735E46CE6912B22F9187F8D75B4D47497D435F91759E1D1168341A48CB5C9FBF19137D397A2A1C75F0E71BC17A88E00837DE428BA61B3A1E1C88FFE5A41570CCA144A33AE851A3637B6EDA83BB2281B6320527E3B22BC08B5AA644402CB674059135D9C928BC4598019722B8AF0B647DD3F02D553BC457BC763883288DBC461E775909745317F67017D3AB5AC283D0462167DCA55E7452438529DD715F8AF6438EDB470B816546D078DB0AB2588BB56B2C0E06741CFA28C997A128370C1D72221147F0218784633B45207A3B43FBBBB0D0CAC41FE70213475E61058CF21797564B0DB1A2095CF367B9561AC2681AB8B6CE7D240B5D277169C31EB99A4B68B92B3ED1CE6333B404E8807B32A0B03080664CB9F0987D2EF56308707B46B14F5667B2ACE438701CADD7B4026CC5886BB7C0160A9684D5220D422497A9162D84C2500C0BC4D8BF20A904DEDABDC56A92F153770AA95244220BBCBBBA66AA89823289A2335898F01789E8A845D3B5A22C34C70A6CC7ECC9EB4B65AE0551748734A1244A30A837ACE642F020779F6B6CCA633E33FAC08C51330EE0BF70E8A6AE4A7DF0F2BE54B10C6E418426C69C212A33B6B897B31630C6928CC4865606CA1F7CE192411C8D4812645C0655E23553B13C6C7C073E0AC92F35465A1B8A505DE879998BAE71608AF9E943B4CAA34F248F6DC679D93033B51C53315AAE72D843884C83A0A711D009414C215BADC32A5F74CFB3179D6EF26818D7C79393B8BC8B8D212092F2250101560CEF4ABD4132CB31996B85432BF437037D73516927300528763472C0D5CAB08294154001C3C7E785F3E887F1BACA5FA9498947B691E7A2ED1C9F66F9BD60FA1823E32935515F90234B7613AD5EA3734A6C0A9422A97DC7042A0434A684083E8BBB40D2C4EBC08496A7261EAA269175C2A8A0AEF21474DD4837B6B1C7BC112D67A1C175B2634737B43E5475D5EC9A75827F02091DFDAA20FD43CF59922479A671363737AB1CC307225BB4118D1A714DDBC08B770283061762BC098415E1923ECB3E3C92216D30694FB869B514A314DB3FE8DA5FD4930ED0979011D8B1FC723AB617B6DE420482E8B9FE2A3874B788F0416DCD20704C20285247784477385A1CB219313B700284097ACBB90976B94A5FD8984BB6B7121BB020E589804281BEDCD78C1CF0AA7AB136C7E7AFC206983887BEB2372784A2C388A18B1DFC5E077703C8EB7F8A966DEF46225C8B3FD0F85D6E3A328C8C1BCB0B55D0341CDC866E1B040E09C960337A9FCC5C587C393D29E5B4921A9E2377775905AA0CEB54599BCF04421056915CC0D79830EB972C01BD3756270975BD63E224D0F58307EC2986699D5F536EE6C21F5DE6844DA70B797C8EF5B9A473624C50647D171682F30A2F3FD7C670595243D59487CAB8D0A7727D40350F9BB7D984BA82D8CF39E817C8984C17892295E09FF674A684272CC710BFFB263BEBF1BE44665C85530D13F891026790C2C1590AB6159CC22B5EC76057371BBA107FFBF402631297C2C59BD05634BA628A7BEA14F3985D2B5260FBC64664BC9EE308694F8BB3C4BA1F4EE43DC4EB4BEAC095B74820A2787AEEF612C0C48AFD0B20EBEC9417B12C7AA50F4FC86558D36FC764C5B69BB4BFAB3526D533DE0C2E2BC1CDD4B897C9F990E8987BBAF147A0C4428AB68CA077A2A2D3AF76261A1F371FDD503F6D9517A8BB0D53499D65208BAAE23C77580BECD252D006BF27BC11B87C19789384F063538448B98188B0DCA07328265F4C4B68DE438D8420874625BCD12912078056C7DB367A1598BF200F39D2A90E12C8DBE7AE4B780C8F5662C78916AF1A270DB365CA9097A37525AE347961B13B9B72C68DFB7AD7517DFB318D5385B7343A63F5026BEE90177FF212BD6B639BB15D7949680EA38336891653D2C5AEC083A8873362EA5E6FB4B0B1E19E48C1B90235796BA570AA0A3B1EA6C483D3079C71CD153B246993B86B506E477625B3B939FD9616451B90DA9348B87C0201E087A5592A208AC9AB7CA6712758ECF4CF1AF163CA3A369E82B46D941B15A42D31F8775E6332387036CC1BB31C5505D52B1A0753098D40B4999A74E4743A73E539D9E7A9514AA5671042A68BA6EF785234622F7440241A55A71F018A09EBAB25F7913691BF787B781EF818C8238CFE5CBFF3F8895A19C24085337FE10EC7B326DA82283F03240A02AAF2658E04F7626DA155A9FA8117EB3CF3F36D1E48BAA2F68D158A0123691872AA74C64670437534B6DBA775F80E14BEC0494BAEAE3C7AE947BD69827E1FB86388052C3BF3F8B4CD25A56840B3A72C164432E6CA838693EF25B30013E5CF56C1E6142828107A10CABDD16956DDB63A495D1AFA553A815CF751D711478A39E8D1AACA992796B619C84565CD\nencap_coins = AC46852132E10665C4983E3829BD9DE2ADF693CCCF572B4EBC5C0A633230B627\nct = DFEFEB85A3E57", + "BDEDC316907B03DE1C5A3888A71CFC3A8CB6CF8DF1167A6EDC98DB17C6E510087E4986B316A5E28A29D7EA15142792ADA40E285A9E92050FE4923F466A7C51EE0E43E7DB3DA92E4E0F208DF2C28BD2D5CB3746AE1E7652547BB47675DDB55C8A4C25648C3910111F86416F97A526389F1460DDC4E39FA2054189214A90626DFE2B13E62AE96F46A6ED1D86200D0565B561F1E8E71C827FFBFAD0DD7A5C083383861D5B6B1CDD2142E6E59B1840069D488A53B8F8EC9488172D61BDE16D3BFD2E3958A14B546033360C808B6B8D3404676B1F28DF826BCD48EE8D214885B4170B65BFB4C693CBE63592D38D54FEC4A9C03519ACFD258088883960D7717B5A2B8E93BF7DC1B0DEEF318E45C4A4BBFCC7E7EFFE8C6B75DA1C0AB7B2E133EA3AFD991E665F887333CA7CE6CC0BBDA08FDFCC5828FA4C429363D93B43E149C1C8C722C770F2851A250B81C8F46A5E53ABE18BD408234F40057BA73A6D862C33C6B0409E5A4DFFDF1DEA33E685EB366A6BB4561C64A2167814259D223DED8A192CC43A2D29993C998634B8FA0281112F9B6C097A26069C90C8A79F767C3089F4996E2E5483C945D6F74FF60FDAE085C150D9E9300CC790DA54B123496C1D7AE64CAFC814D4CBBF6F8290D216FF40902997B9637C5E63A4152004E52134D8A6BA4F0A9D36EF4E5694EB817C33212423DC4DEC8275E115CC4CFC9A0AA610B561FA05A72EE891EAE2BE4946B268E4CEF4DCE47BD4CB06F4F2A3801E2A39BF65272D0943BBDC6184F809A5C3403E994C48E7F27A5177BB8453F06BBFA35A5E44FE97FA5FB77BB9A9C131239671D95EB233D5072C8D801D216BD8113FA9C70F5771B86971D59FB4976EFE7CE15161B7E739F1F236CA859DD2DFDD23ED98CE1EF971D32028E98EE93115B49248AEC39E8568E49E50BF06EFB986495CAFC32B2065B5268B40BB31858028A37B446E7955E16FC9ECD29A6E5E8DB18BE2D9C45AC7F42EF7ABBEABD3544F461287803BA685324CAE7A7B3B08A26EE6EB5C75875CBB0336B27E6A2E049633393F710BA861F5123743459A77DF02DDC11DB670FF6294A1E5AA60811D6820BA25BD5C2A20A703E940AB1F7FC83FA77DF47ED94C0F692BD427AD41100415B383E656C2BD490D806982412A686CCE116BCF158557921BB2026C0A37B8D1C8E2FFE85F3BD6DB02C0F680965FC83128FD0CF6C569EB70421AD92CFD7C8C6F892FB94FDEA9E17A82853FC03E771B00908C01DD9E782CE7892E001CD94159C3056F03784B7EA28E49A6FD2E5234C9E6E40A5419ECCCA101D7583A2874AE11254B1AADFF4963B493A8961C25B93DAD6229C740C05DCE2485DC99496DED365A56439EA0AD2E873CB8C66717AE577A4B4536F10C8C09BE2D2245E6FC8D30D5A2D9551F1681E2B797048967CC7E4D034298D544963B477C4B665F0291FA6A1173BBE0CD03546F852396C40490B24329C65D49C0DB39F54869FE5F412876E9CCF01433D421829114717F8D19D65BEFC0F7580E458437D8917AEDD0959F9B7E55D7D6D4B5E1377F9566B1FAB06020AAE87144CC4CF3EFCB0072BCA110F85BEE3E18BBCE0D7647C0384C8C29C027B6FE201306646150ECB85F8D08BEB21D8AA06F9753721AC680FF03C98420BEFAC4C89AED676D3DCBC662A66AFCF1AD791B81131A8047B11AF36D7E0F905B297A324F659966FF145F0FE0DCD3021386DD04A6A6B39CA1BD4E28B43524BC1DE44131C5B50232AC185F3A9D89307964D859F83F3A9BD93AED91A812337F0A177D5AFF47A6FAE5693C2BF310C9D63330D2A4515E95FE66A855A436EB881A4E901CC3A307CC280A7D593C9AF46436C3374005A3E4B42A4FFC8C6574B577C218AD282C3E5BCD3CFAE4FB1C30CB47B9B5F3E0D97738C4CD99F02317A929FCA6EE4E2638A90FEAFE70A922AD24501E115C9274184B4BC3827F6B4E9175A348BE30C9ED2FA185A7B556C0AD420933FEA936391D72C863B027891FF1F29A322D8CCBE6E0AA009D17748AC64AE2ADEDFEDDB5032554E0CD8A03FD0234578369CC9A29664B67D6B2A554374382D7C3EBDE78B8603534F41A53E962D12EC81C9BB08364D72F56874B1A9106DA4E5698E8932282D7B2B7AF63E07C4E647D8B36FC0D1A5DC729E37FD40EED2C3DAC04DDA5F402BF4CF7F70571E49FAA119C326DC86D8E57EC3D5F9AB6AEBD3048C5296B3B76AE55162\nss = 4B9399FED11D42ADC2B7A407B412C73858619C75D8FF3552EE81F10EFFA17E12\n\ncount = 94\nkeypair_coins = 6FB2EC719F2A0DEA152BF3F64B9D148F8AB8BA88F64E61F5DB53E12D59F52557D3698490455837FE52948613EE5FC2284F00B130C72334B1D8E68C7B09B2DE2E\npk = 5FEC35AEC29B1CE3387AF3327D49734CACB798C955B329BC90122CE43C3CD1FBB939518C68D1B044E0CE31863D2EEC9607410F0A6B74D40A6F93E7A88442AA0111008D38661241AFAF6A2101DCA37E83AA4E8747CE884CC1C29725A19510C7688FFA569CEBB45DD87FA7772BDD6B6F26E48C5EC93A1D66A2519C571C1B0979E28A82EB9FAF136FEB21152ED15502521176C9CE3E2AC3F3DC78FC620E151BADEB9B400DA2029F1B1C2FA70BC8CA232CBB69B0F98A39543B03F67C1544402F518CF5477D6C4BAF11F8BF44BB1208EC96082BC260E52D2EBC17C003A7816A5D940CB0BD7329912C4239B2910D27CFD2A48C77501E0586A2B88C99C1DA29D0167A88ABC35ADB5A79C76C89F4C814BA410D9B2DA6994C5A78C701CA91F42348454261F6F7A23EC89428630C5A88C9E309D08E8B7E9B353AEDE6C952E36973A23E9AEB8EDD83B256D913B9B64E392936D538A9AB250175544A70796202154350696C9056695D9C0FF730C27EA71F1562A04EAC9C7D8B38D551C447362DBB1277E6408A09855D1292956C72B39E802A19573C620A74F996492FA15322BAB6342A8F90A747C3A40AF020A2AFDA4D37620100351F3A5086818260592735847A32EA5A4E926C82493C7BCB5B76FFA8562AAC97B701A2C5909034A748B9891CB5E430836036CF686D8BE47E2CD5559E500EE617AB436306614C4F026C6E57021DA6F3356EA54E924799ED6827A1F311C0A340280AC21B110EA33809CE3744AC4539E4E912F4A99066C26D3F047AC87CCDC55529E710517FF042A893848D5ACB44191C6057A4659427A7C2345E9005135BB3856733320CA4C031C3B86AA83CDA29F40467D5306DC0142132F1A844466ABC1B28D94B4D1B98AD5FF80886B38D2A15505E8CC24D9B3273039C2BABAF8380568A1136610BA3CE49ADD830785A1780EB67B6DD628F718CA7F1BCCA357A1531999D96556515CB680E153C98281DE817AE5F4762C03952C74A8A973993FD778F49C38B59838F793C71BDDA96FB8A4007F1069E6378E7F0B4AE2B890DC84294627A10039D7A46B3C705493C6471B3CC9CA2535FB8CB19798B7D4D562EA33869383B28FF7B9462124070A1C17CD4B2BF4A622E054A1CC29BB177048A62BA8FE66FBA75CCA14048DA8A41C2E3A13DA8AB593C14D0B295B1B587AFF8778823AD2CE3644DE2B236BC144AA4C5C2DC697AE3C681AC10B5F53CA1D84334A7908C48BB7F5C93388186860C781BC483B1975219D24677487161B15407E52FAF51919BEB32B6C3BB1FE993EB15A4AF84A64ABA7D794252FAE6785B1054C24AA6B249840B08B3FD47A275D1A0930B2CA6E8B0D4B498628418AF01AEC4C049EFF55A576123C1E58DAFC5B00C2373ADB7CD62120B9A69541084100FE44776D3078D66B143B7536888C4128A2A637C66D270C0BE49C99F1241A951C413409D16CC653715B88E869216EA42FF505ED71C550848A98315C84550CE83BCC750E4CDB8084F882A29A5A0CB6048B5CEA41B9B8C2FB3C949FB928770E411DED9902774B529320F768445349A310C727F2012678F44967F37B0A7CC3D4AF05FB285A82CA568E88C87168B14A84B90BC6297BCE393AEC894D7B464852BBC55F3C85F447980C904BF067F9CF55C756A6967B95BC4A08427A8C9D3AA6EA8913BF47A823F0050DE189C7AAB2DBB040129F40B5A885CAF20281E39C178A79729072AD360876ED670C192912095A01E19AF47F11C30A44AF6165ECF290F885998B9CB4FFCB1B7D71C7A4C21C0ACFC8F9A942B7BB266C49A528A28732F65B4038BB7DC2670EF20CDE470BD142A836BEA52DC4460C0E01D1EF06E7E7775E9A888CDB8C2E6A6078BA3126572886BB091A14735158B4AEFF26A852B6B400698434C61031540FEA976B523627E1C11F5E14C5D5C878C607AFAD79E425B62D5A56530BB6BF889581045CC4839857EA16BD9775AAD3609D5287AAE66C60F916DF54C88E8F291D8019C6A4861D2D68EDEC96A19E9911A49A043086247B37B8CA9A8C16B8C9147016C9CB2018305DE8321F4D0C158FA2452347C78A376F399780E59A5A4E1C8BB793FA14CAC662732805146D2EA5CD67196257362922A81E2177AE5289F2BCA3D6B2B0168A263C642CF8E2A3CE8577151ABA48B828FD70670F45399FB897E85B45AFF5F477504DF1B1894FEE3E6BBF8218590936E0102DCE8ADF459D590355576E1\nsk = 2735BC066A2488726C89432E56452ACB24A2A5407522988C0732CE072128C8D5147C42988F94A8516C77873858394A2BEF65B87741C5B9691B6DB84E3B1B2B2F851B1305832E4210E5D05710A5BB7195B8BEE0CBA9B5BA21BA57B962A280565AABE1C9015635CF1A7121A8581FA0A78AB26FC82838B6A405C6FA5D46469136CCCC34930664240915BA5C86E67ED9E73F4B123233C92D73BC05408005DCD6CFD62635C3026C990753C55CA8DD385A29B1C79FDB97C0B4CC8F26B28BA573B5194D6BCC065F5B97DF702009C43A65ECCF452447AF91200EF68F18CAC25E5C71E62A39FD7A26C6B64B47E29D1E4084801599ABA838A3808ED83454B506965507CC6D0B34BB139300D1014168A79D5707C74BBC7B980461249FC31734DC384C9DAC4EA6EB4701402084719593B62AAE53C8D55719945975CFD25BFF31C886640FEC37CAB3942676C840A453C6751CAF16A4743495BCDE6528A942A47E7C2D6499B2A872A76E928EF4B0AABBB21604F33231235A7CB47C96D9C976A2AAD533A06A24024AD0925007984D99ABA3AA8168A8AC92F662348686F756BDC1A23F8537545D13AE9F657CAA801788C9368864A05F40AF22E33E10705741F06EF577CADE6CCBF1D01065565A5B13284690BF611093E45684D6C69FC0F548AF852248DB6A6E86A2A907C95CE0053FD942A92B024DD18803474B03F73FC022912257454C008D137C5E8404379DB2719581AF17108A03F58DEA58892912C5FAB701D28CA845068761F6BAB69BBB75584F7D289DD921AB30379248C91106A784738B17CF0044418BB9CE34BCD913BB26D04CA04896109A255A39BEBA1A2B58490862409E473CA623933AC14C90F64CC74AF396C3186917061B5C8C28F3E8B694535FC2C73AF9843031C19166D2C8A3A76A2ABA45ECA36321BA367BD5B176B5C7B8D7B7192C95CF2803E2C3CA5D585C4EA63009C7B850F08759C278F1027C59499526A8B2E494203197A9304022FA0C4E47A3A6FBD8BC59A7C1312A6D19D3063E8078B1A1BFF964AF48151E4CD3CD87F49BBBE01AFA3A5BF46A7F9BC97DE729285AF35A6A9168683658EE37BA6D9499CBAA8CB44C93BEB287EF7CC7B1EB6491154C14FC2027AB49316B70B8237A546090C9687CC70CBFB82208A7F61F63AAC1A42961568407343A050B1048967C5334F3542860249FF9C2FA", + "C8639EF8C125D0B9FD537FCA93C1006A77499658C0286267B910C10B12A6136152BCBC03E782C41B1FE94A000CD974A3A9ADE3A3B8B4BB8ED8B403683AB4EA3B84B84C4825F61F99D72EACD894337523C6B6AF765BCC99393213938D66B18B2B168D6C73C2EACC42AD22255CD3AC6D75200111C0A6076F02F906B1C96213E80310B8752B1B619E72366F9A0BA4283520333EBF8693F93A7FD6C3560058A8D16CB50B585B3D519E4263B050259A9A0A8823E3CADCD0B81C1CA53820323A9539133C68B0A6CAC1FC834B808D9375431F961FE3233C49FC9E88EA1ED0A068A271B502C0A0376A1309F86013B4947BB671C1B048C0905C8CE16D8035C7C05B9CB8755C7D7B6DB2907DACC5A91B61B666837F209075E8AC5B86444B49AC878F9B2E18D42E0F791AB7CB7C973CA8E0437F15888916DC5D02F10DAE54C86CAB52F2B07F023A639288B2491145D56B7AD962840132667C78473E339F99FB9ADC722F956165C5A8A8C5CA5622B504A624AF6CA26443E776856292851C7F25B983878C9C567523BE99BB7568B9A7488B96925A0FBB07E7599448AA98DC112F6CC283E7F57758C1B43EB9A926B2379DF6C40E49159985CC4061618425B1D0AB1533BB3F5D03BE664B8DF86B95AE8918837A4B35023C9926CEF826BE5645784B33B333B7B0EFF9C98A2793D08B2A11512F3E9120BD0B299C6C5B17103B3264964D58C4D9C51CD8F995EDB72406CC16452A483786A81C6A45BAB840DFA1C9CC978D6D9C3E22C4AFBAB8265816CBC322ABD4E510985520D9FB0AC69702A784734F230847170B532C3DABDC06B762B22C738AF9C9308A9B8B3FA6C376464F6C691265B43901561F44D9A1DCE88E2D544BDA01080FC0B58FAC9FB854C9D2E96AE20A9E19B22FD69B6FF88A6BC324514987B039804B71C1C745D77362801847C780922B68A85C17FA750E2CE19F3E7765A785B4603931F9BA815FEC35AEC29B1CE3387AF3327D49734CACB798C955B329BC90122CE43C3CD1FBB939518C68D1B044E0CE31863D2EEC9607410F0A6B74D40A6F93E7A88442AA0111008D38661241AFAF6A2101DCA37E83AA4E8747CE884CC1C29725A19510C7688FFA569CEBB45DD87FA7772BDD6B6F26E48C5EC93A1D66A2519C571C1B0979E28A82EB9FAF136FEB21152ED15502521176C9CE3E2AC3F3DC78FC620E151BADEB9B400DA2029F1B1C2FA70BC8CA232CBB69B0F98A39543B03F67C1544402F518CF5477D6C4BAF11F8BF44BB1208EC96082BC260E52D2EBC17C003A7816A5D940CB0BD7329912C4239B2910D27CFD2A48C77501E0586A2B88C99C1DA29D0167A88ABC35ADB5A79C76C89F4C814BA410D9B2DA6994C5A78C701CA91F42348454261F6F7A23EC89428630C5A88C9E309D08E8B7E9B353AEDE6C952E36973A23E9AEB8EDD83B256D913B9B64E392936D538A9AB250175544A70796202154350696C9056695D9C0FF730C27EA71F1562A04EAC9C7D8B38D551C447362DBB1277E6408A09855D1292956C72B39E802A19573C620A74F996492FA15322BAB6342A8F90A747C3A40AF020A2AFDA4D37620100351F3A5086818260592735847A32EA5A4E926C82493C7BCB5B76FFA8562AAC97B701A2C5909034A748B9891CB5E430836036CF686D8BE47E2CD5559E500EE617AB436306614C4F026C6E57021DA6F3356EA54E924799ED6827A1F311C0A340280AC21B110EA33809CE3744AC4539E4E912F4A99066C26D3F047AC87CCDC55529E710517FF042A893848D5ACB44191C6057A4659427A7C2345E9005135BB3856733320CA4C031C3B86AA83CDA29F40467D5306DC0142132F1A844466ABC1B28D94B4D1B98AD5FF80886B38D2A15505E8CC24D9B3273039C2BABAF8380568A1136610BA3CE49ADD830785A1780EB67B6DD628F718CA7F1BCCA357A1531999D96556515CB680E153C98281DE817AE5F4762C03952C74A8A973993FD778F49C38B59838F793C71BDDA96FB8A4007F1069E6378E7F0B4AE2B890DC84294627A10039D7A46B3C705493C6471B3CC9CA2535FB8CB19798B7D4D562EA33869383B28FF7B9462124070A1C17CD4B2BF4A622E054A1CC29BB177048A62BA8FE66FBA75CCA14048DA8A41C2E3A13DA8AB593C14D0B295B1B587AFF8778823AD2CE3644DE2B236BC144AA4C5C2DC697AE3C681AC10B5F53CA1D84334A7908C48BB7F5C93388186860C781BC483B1975219D24677487161B15407E52FAF51919BEB32B6C3BB1FE993EB15A4AF84A64ABA7D794252FAE6785B1054C24AA6B249840B08B3FD47A275D1A0930B2CA6E8B0D4B498628418AF01AEC4C049EFF55A576123C1E58DAFC5B00C2373ADB7CD62120B9A69541084100FE44776D3078D66B143B7536888C4128A2A637C66D270C0BE49C99F1241A951C413409D16CC653715B88E869216EA42FF505ED71C550848A98315C84550CE83BCC750E4CDB8084F882A29A5A0CB6048B5CEA41B9B8C2FB3C949FB928770E411DED9902774B529320F768445349A310C727F2012678F44967F37B0A7CC3D4AF05FB285A82CA568E88C87168B14A84B90BC6297BCE393AEC894D7B464852BBC55F3C85F447980C904BF067F9CF55C756A6967B95BC4A08427A8C9D3AA6EA8913BF47A823F0050DE189C7AAB2DBB040129F40B5A885CAF20281E39C178A79729072AD360876ED670C192912095A01E19AF47F11C30A44AF6165ECF290F885998B9CB4FFCB1B7D71C7A4C21C0ACFC8F9A942B7BB266C49A528A28732F65B4038BB7DC2670EF20CDE470BD142A836BEA52DC4460C0E01D1EF06E7E7775E9A888CDB8C2E6A6078BA3126572886BB091A14735158B4AEFF26A852B6B400698434C61031540FEA976B523627E1C11F5E14C5D5C878C607AFAD79E425B62D5A56530BB6BF889581045CC4839857EA16BD9775AAD3609D5287AAE66C60F916DF54C88E8F291D8019C6A4861D2D68EDEC96A19E9911A49A043086247B37B8CA9A8C16B8C9147016C9CB2018305DE8321F4D0C158FA2452347C78A376F399780E59A5A4E1C8BB793FA14CAC662732805146D2EA5CD67196257362922A81E2177AE5289F2BCA3D6B2B0168A263C642CF8E2A3CE8577151ABA48B828FD70670F45399FB897E85B45AFF5F477504DF1B1894FEE3E6BBF8218590936E0102DCE8ADF459D590355576E1F475DA2EC982C47D91B24BB5EC6C51910530EEC26F38541B173B38927D23C568D3698490455837FE52948613EE5FC2284F00B130C72334B1D8E68C7B09B2DE2E\nencap_coins = 1D0144EA8AA44C56C084F3D692D40EE9ACCA9835F74E2DB60116DB3669C8EF73\nct = 5035A8DB407366BD04D80BDE74E490815F5096101FA7D8B9828909FFF86DDAA995949FA4555DA8A16FD12131DF0FB2A7411D9846557A79E58885223171AC268BFE1E69F6256DC8B00950D325EEFE2F6A81511854762A91F784F2E31FF8BB3A224F721E0C64B41C78D29F8D90B5E1585293D86A745BAD181D37203401269F8624A8AE8A0607FF53AC8BF6F4BCB9756219F3B593B9FE9FA733BF8DDEA3F03F08C1CE104B009DF57D5250555A99D49E6A6F40CC64F4454B16DC459FD941F378945E19EEE2806EE5BA773BBFA75CBC5CA6439DFC2C6D1DB2CB131228DFC3717D8AE1BAD4FA5121329775178E1331543DBAE70AF015D9B7BEB90F36BEC3BA5062FCF9C0BF9767731E6BDA8E4CD54710D54168C893CFCBA6AF059CB43F77BB5E6629FAA33BC588DB4222FCFB458521C49025316C06F3FF542552EDBE6E65E5821EA4D564225B974D25F27B78AF60F2E165E843DD6CB5552DF01C29D23381DB6CAE6CA03DB39F528E1F24FADDEB0D1F356F4A35B21E48CC503B52AFAEEE7993995C3EC017F0FB21B76F75B261043BD42DCA2567087DEE40320B657A381F6275FA054A1BC15ACDF1F51F53A23DFF82E86DBC0D7E623252529A3469D3C93C3F3EE0700AE8DC0D0A215B3D004B6855AE67B57201391545CC7C68DA55134F475699E351CB28D44FD1EAAE04D92097566D714434E253048681CEFA391C0B33C0729D1F1369909BAC4E76BA4E30A24945C4C53AAE4B7F5821953B7E727F6F37D6A36C68D0527A865C8AB3E02CA767751935BE9DD935951A089B6580DF4491AFAF9576CF069DFB7C5AF167BEB234525B4991AA532BB64345A72DDD94C54EB3331DACDD3D9DC3DAE130E06ECA448C4580D9779D177461459DF14752D8C2F741D42FF5BAF04E97C056B9A573F903548925408CAFE729BCAA237B76426DAAF39D70E7A1181168C15A0A94CFD238A3E2D95F46D3E57686D8B37413E021AE69A024A24225C6D87E01520FD0434E8F84185DC0D9027E789577DB871A10EDAF1BA6DD7A49A0B6E1FCB3769E12F90F6C72AC1E0D38F365043A070213A1B38DFB20F8C8CB7E5705F8A2096AE31449A83D4CF66A3E010DB3348D7A13E119C5857290A8173DDB2425748ED2FD364D8A6B7ECDFC204B79C09AF4493B7373C56C60E1DFBF2A3D0499A1C66E3DF18BCE2F2EF40BC71899946428236EF07F3AB3453FBF42DA70C608037C1722FD8EF1053B9A9CF85455C48FFDAE0679414779E5F9609922B16D0D984F77EBF4FEAB8700E45B5312A938F1BBFEDBC2B69615A6262F28C48EA19C598DCD8E57B229A3F2BADCFB3CC431481BDDF87778CE668CEA9A6E7A7B680EA57BEE8E537FC4EDD42A1FBA6BD8713F6A65F47FE352A2CCED78C50E49011604EC6DECC9BACD47FC866B153498D0347BB272AB9C401F3744FD4C622BE7D4E028429193B63ECE754F73DEF424F3386C2333F9605A3DC330F1F5ABDE45B843C35575500840C1A0B00100FC0566F93ED294E2AC3FF61C170852232E38CAB41939BCE7A4101445B0CA7CC6042066D2AE45C1779B4B64C81529BBF338FFB34ADD7BBA79E954723947D067101C38B6CFBADF8E5E99879991DA1F9D47F571A3159149A06A07849244EAF797B733D79BA258E0790D3B79815FA087E158952710BBFFD6217BB3EC31DC9C88FF8657E1C98A8F6F0481A5D54A9E24A87195B2E7B727C8CA6CC18C334156CB91A6778E0C28C991393FC315464C2650451A87E768D81577298C652CFBD669FB7A7E6380BF72F0A92B2DD5C2D925EA693514A343C83558DE4399E6406B3FDE3081A4D1816A03EE08ACDEA36D8413D798CBBE50C07F8B136A918B8133BAB96BA04F82331D49DBA2ED855B55C0B40C2574C59AD8A6DC13E90D0D6A08EB654334503820BEAB57BD54C2B9959BA83D4E22EE4AA2AF1C68C5D149C78B9D1D1007521626B7C327F885805CBBA57B6E6A76056526B35957D1D7F1A2FCB4D456171A6AE29B92CC9674C41C270C414A1DC4A4CC4949B31F54F90E9A949B9D5A3F305ADCB03D9B6DC725CFAABD2E7C56E5B850B044D1FB30FE75BD2C2310E7DD6733A3C28BBD0BBEC7A6566B2EADEA2F92B2906A9558242D438EC1960B49C6BC37E2CAA035A305AD04F84F349D131629A0CB23C6863D825A2A2120D8CD48F6D64C267D75C3F5AB42D084A7EDAA7BD41324AE4890FF2401CC0AB8C5A7E161552C68051A75D6BBDDEE\nss = 0807B47CCC3B83052DE50B828B05CE56989EA70CF7EBEF5AD82B27057D744F59\n\ncount = 95\nkeypair_coins = 527FB88C8BD9A4D6031DAD15E63878ABD2B559E7E08D61F69E8E78FCA964EE6A229EF54E776C02586F3F46D723E7932215FB7E09C397D1552CDFE3457241FC30\npk = BC859F23D76DA58B31D2677F9DE1841E50C263257B04D84419C3892D590B286088E35B9ED4A57257AB09286934A0E633", + "26876EACB60FCE3B9642019560A5646F522FBDF34DBFC8599829105222193903C97101A8DD4806788A8ECC223EAC5206A8706F38AAA4DFC87181AB07E37BC3106590FE18996E5B88FDA7AF242AA56E42CAC7113392317604CC89E1F067896755EAD0CBFA201775329D2C8804F485CF61CABFE35A33CFBBA7D2426AD2F59A98625315633B0424AB2F2326FA8488FA92895EE08EDBF32F6E318DD22A5719D3C4782BC1787873E93773B310CA9B036680BA69ACD75036952A330ABBEDFC5477545AE7B09B6F3467A900083D4677C6B5C0DCDB9886F26B1C9B6E180B8F5020AE1A68B9ECC3A154A084A365A9035841700966CCA311C09B13FDEB4DA6517C9C3A9C3CD9C336607A53F1972856B161B2878C5689E8EA7124CB768FB48EFD92489A1BB3660422BCF72CCBBCBF0D7383EF47586863870620C025D6B65CD5C861234194448A021417CD28474743A5F9D34C3CB6AF9AF96A332A3CA21CAECDD89939395997A39466B528B2FA2EAFC943B861C78666A94E1091EFE4AE69010F0A139CD9984BE6F23A237CBC1345A53FB0489FEC34CEBA3874F631F4A34598A7BEE966225E2B251ADA212B9365BFA2613BC4B2E0962493C0C461361FE555AD61BC6DD54B844114781FD37291B7C3E7090CEA1A20C86B3637011493332925F503B4AC6FB625CA41601995869443DA8D82B81412012DCFE22EBA66072A9CBF65F34294B4C85FFABCAC3358FD6193C8DC1706C05E123B10445BAA34C6616863807551BD33546ED39112F49C371AD31C82EA6DB593A173884D005A0A5184417D5A16EC87225BAC3728530EA21913B6B05283A4C078950CA84B73E417CD1878B1AC9388241C3E006D5C0B1148DB78B319293707D92210622CCE348E5C0572ECD7718BEC7F6C644680BB2A6BBA55D412776303B8B5CC2603356A7F685095DA747A3480DAE39537780188E264EFB88BDB8C82CFAAB5586B3629410BDF2274E8E2B76673C700C45FDEF297778CB8DBC4BCEC24C349170B39F96A5E3C6EE7D1C8DA58357398A5F0202743339AA7EB74E0A5B8542909C29A8337E6083E3663DF918C6A85246769B01403BB24C25C27DC8A4841166A86698EEC30F049A80F786F6FA29CC8F7414517429F4AA76421CC8CAB09874BAE0F9999F0A846FA742D8D087BCD929D42E89F994BA2D421058B429E24C753436B908833C2B4365047DA4825EBA955E9C5DE3A02C11C3C8E214416F2A8EFE6B3AD033BC9ACB992D77D8D340C69CB97CD59C7A5B127C6B46A51267B2471031166815C105914590C2AEBAEE9A9286D7C7D10B42C80077DDAB4BA9BAAC51FD2512B481D1B1713AD4136B1A4A375959710A156FDECCCE7A2C7DBF2CE57A9520B7C9509075BEE4C5F4E3A2B45A748BFE210C88BA484556299511C10F762C162BD0114433DD1913F628540571C04F79490C30ADE20434341B59E2BC66F489058D0AA2F14575942299783CAF2E7B40D2A7BC10A150A6B0B1FA2A8FFB9631909BFC41C911A269859E458B7C36704E3B552EC8276E855C95B25066A85D1896123DB2297A75FDAA015A60942EC7266F8D00511A1603FCB2E6D533E3FC7C126D2753B9704ED2C5608A226CFF698A8FA53F9746EEAB1C51796BE3C013C44F0AD8EC2037E75369877C4D63A1FBA7AC534F4B6852068AB973E1D9B96BE70CC21659971C90AA7793E51A517F3108A2FF24FD3541CBB89B75786A546B346DDC92AB5EB93227057F0FB76E1554C0CF19BF0D08E33FB1ABCFB71C1A0779A91A42AF586CB27A9304A75E9604211640BE36739FDE51F2D9107FEC20FBCE665A45A1AEB76403958B94F23ABE59C315CE9699203681167C379AC3F0F956070D73CABA5BDF50C153E941158F2202DE5857B834E3E553F7945398BCC70EE00CCE8EC15296B2364393085F2821D36CE6F04B0B336BBA762C387C69280BB4FFF179EEF54B925D99176167F4F916E2BFCB945A1BAB4E5398A03C17C79992848BDEFAC5FAE4667D37C75BAE231D424381C39722FBA787765B3005699B7B08D2785805D476679E29372B619E3568EB263C2AAD8C891CA561271CB5868B5971445E1CC2E2F1A11E44C0A798C37250CA802EB4502D86DB3CD5D09045252960A068412F1BD67B83A217049D0685EC3D63D691559A327B2\nsk = A680635121C694AC4672C809BB3B913E8CA2F659C756DB1D7BB2369F41AB4AC9B3F5141216F3C997B00DCDE37352D46463F371FEC14B26AAB239498D44975F787504815552E727329DD78428F5568B912C76B572AD9B3D335A9F5BC0283C76AEF8D81369A0CEB4523BDC4BB0607C29D9998962F76B217774D74A3453A61FF1F40F89A51365212F39A07E913824BF36B6DBF6C8934014DD8716E998A982B124AED8B082C3A2998708BC1C4733773B73E0BE315203E8E264A032797280CA0AB023A9D81FBF0565F491837CF031E219084B640EE8710589E05E1701870BDB7BF0B0BB539A0B3AB0028447110288C1D7D83F89578413A46B0B04406657B4E7E5A6D04BBB91055BECC8AB907CA9647C4B8B144045B6CABCB974A47A35308A23E9C9281C61C556EC148C9A663AD9518CEA36AAEC71B6995110FC01CB66B75E128478280FCD31A3416A12E28C15BA617574730437DA8BDFB86B58D88C789C4F9E23ADCEE53B170C6A0B80033AD52CFE1A155EA1A568F5B2EF77AB74878E0CE42A1F7C3C845713D17105AB2C91B83836E11B9858A66997B22E8A67682588CA78E6B6D736298EE34B100BCE61E0AD921A9F020A7032351DAED655D35B3659A96B32DB9E68D882FC986DA904408A98C469A84CD29CC999B2B071F84C921C585B9B3233C5BEDF82637BB1253A4B29B36B42B54751DC629A215656AA1890C0C56E0CB62A3C02252B771D72375A60374BF8D84552080E0D456579930B3F2A2A3B7913C031112FABACAEF75BB2DA5202D7671359282CB4707B52740D9CA06AB7034B48A292404D26B6CFD08C8B0DA61550044069F4CF27488C028001F2C29292840B60B321DE5CBDEF1CA216838091C3172ED26D141C957DD93BB6A59D9E883640D87A2A85605A9730DD5333843805374B58747C7262D5A65EF442D6843DEB731C943269B4A9BF00F39B4A3847840C1BF4B9907FD7B9A66C5DA724CEC467102F080D4D0BC519D0B2504A05F7207EDCE7398D009348F64267E01B0EC207780791942565AEB061BF03719D706F87953C4757A75A126EAD15C6C9447C02938C3B75A58AB25CE65A5CAA21898FA8050319880223899F5546E0D253DF7950691B86F8E3115438C3B80CC2E7A6178A96A0F38A0CC47394BE36C9B0721580D646A89B9327210D40728F4BC4ADBD8B130EECCCF528A5A09595F32C0F64E602F6898B8A4C82D79A8ED31C4172A7812C295C93841929B782B334490EEAA38C17CB4E77664306BC7B01726EC656E24311C51B0524C72F0745665D43073604C59EC88DF6FC9EE2F2A0476079BCFB735E562F57E2B0E1987A0220C98F0B4CDEBC70F93CA709C5C2FAC7098A7B866662ACCDF09C85974D7C88CE9AFB01F48276EE320D70C7C0E15950FC0775E13173B60555A470302D0A0047260E5CF85EA2F3C326968D3C308C15EB400B13BCAAA65EBF941EF59A069BA0BD3D00841B6124574303BA8C2BC9F90F107865882C18EBA462F6B09EAEE05796E43A8647C59C64B7A8DB9C0941299280AF728B872C303755B682A3EC10C5876F040543BBA028E870C02A4312AEE9CF2BD1302DF80BD0FACBD0765A778A7FA2D3A4C9675965D6799FC7BD4E28A4E2A53948790234F62BE0F0AF0CB460F782A85D7488C0B9706DE1C667F41BD67B9D43FC33647BCFD1E5BB6E2AA92E653764640A6D59A8271BB278160C9A153C98247B376069CDF349EF76C20A8867892258C21923621A4828A39FC6B72443A467A4590BCB0295AF866F04791B005D0659143C54A4295CC883DB27CA9C5190388B84F8E41AA85924E73025A7B7932D834074A39AEB92BA5079CB6BA77A94FA2F7D305E6421CDD093582868B1E7B90348E04875B837466A174923ACF40972ABE89A77FBCC32810A0E400A5D0C1E57E62AD581204DB84B63D522CFB6423429647CD32544339101DB3CE037C15FF6C26FC012D2DC05B76A35C5FCA7AD284AD04B4696807C95E0C9ABD0228487493244A86D713A4B4B13978C538EE77414B354B30548FEA56395220FA60467249B13C59A50C20888AE5998AFD287A8C1179DFA5610F5987F6021043B7CF6D749E3AC2FD6D58B3E9C78F5EA88D0C691BD2544AA591407484CD638864BFA49AE75BBE2143216C1AA76278CC3BA3F95B413EDE648D883B825039D2AAA1539173DBC859F23D76DA58B31D2677F9DE1841E50C263257B04D84419C3892D590B286088E35B9ED4A57257AB09286934A0E63326876EACB60FCE3B9642019560A5646F522FBDF34DBFC8599829105222193903C97101A8DD4806788A8ECC223EAC5206A8706F38AAA4DFC87181AB07E37BC3106590FE18996E5B88FDA7AF242AA56E42CAC7113392317604CC89E1F067896755EAD0CBFA201775329D2C8804F485CF61CABFE35A33CFBBA7D2426AD2F59A98625315633B0424AB2F2326FA8488FA92895EE08EDBF32F6E318DD22A5719D3C4782BC1787873E93773B310CA9B036680BA69ACD75036952A330ABBEDFC5477545AE7B09B6F3467A900083D4677C6B5C0DCDB9886F26B1C9B6E180B8F5020AE1A68B9ECC3A154A084A365A9035841700966CCA311C09B13FDEB4DA6517C9C3A9C3CD9C336607A53F1972856B161B2878C5689E8EA7124CB768FB48EFD92489A1BB3660422BCF72CCBBCBF0D7383EF47586863870620C025D6B65CD5C861234194448A021417CD28474743A5F9D34C3CB6AF9AF96A332A3CA21CAECDD89939395997A39466B528B2FA2EAFC943B861C78666A94E1091EFE4AE69010F0A139CD9984BE6F23A237CBC1345A53FB0489FEC34CEBA3874F631F4A34598A7BEE966225E2B251ADA212B9365BFA2613BC4B2E0962493C0C461361FE555AD61BC6DD54B844114781FD37291B7C3E7090CEA1A20C86B3637011493332925F503B4AC6FB625CA41601995869443DA8D82B81412012DCFE22EBA66072A9CBF65F34294B4C85FFABCAC3358FD6193C8DC1706C05E123B10445BAA34C6616863807551BD33546ED39112F49C371AD31C82EA6DB593A173884D005A0A5184417D5A16EC87225BAC3728530EA21913B6B05283A4C078950CA84B73E417CD1878B1AC9388241C3E006D5C0B1148DB78B319293707D92210622CCE348E5C0572ECD7718BEC7F6C644680BB2A6BBA55D412776303B8B5CC2603356A7F685095DA747A3480DAE39537780188E264EFB88BDB8C82CFAAB5586B3629410BDF2274E8E2B76673C700C45FDEF297778CB8DBC4BCEC24C349170B39F96A5E3C6EE7D1C8DA58357398A5F0202743339AA7EB74E0A5B8542909C29A8337E6083E3663DF918C6A85246769B01403BB24C25C27DC8A4841166A86698EEC30F049A80F786F6FA29CC8F7414517429F4AA76421CC8CAB09874BAE0F9999F0A846FA742D8D087BCD929D42E89F994BA2D421058B429E24C753436B908833C2B4365047DA4825EBA955E9C5DE3A02C11C3C8E214416F2A8EFE6B3AD033BC9ACB992D77D8D340C69CB97CD59C7A5B127C6B46A51267B2471031166815C105914590C2AEBAEE9A9286D7C7D10B42C80077DDAB4BA9BAAC51FD2512B481D1B1713AD4136B1A4A375959710A156FDECCCE7A2C7DBF2CE57A9520B7C9509075BEE4C5F4E3A2B45A748BFE210C88BA48455", + "6299511C10F762C162BD0114433DD1913F628540571C04F79490C30ADE20434341B59E2BC66F489058D0AA2F14575942299783CAF2E7B40D2A7BC10A150A6B0B1FA2A8FFB9631909BFC41C911A269859E458B7C36704E3B552EC8276E855C95B25066A85D1896123DB2297A75FDAA015A60942EC7266F8D00511A1603FCB2E6D533E3FC7C126D2753B9704ED2C5608A226CFF698A8FA53F9746EEAB1C51796BE3C013C44F0AD8EC2037E75369877C4D63A1FBA7AC534F4B6852068AB973E1D9B96BE70CC21659971C90AA7793E51A517F3108A2FF24FD3541CBB89B75786A546B346DDC92AB5EB93227057F0FB76E1554C0CF19BF0D08E33FB1ABCFB71C1A0779A91A42AF586CB27A9304A75E9604211640BE36739FDE51F2D9107FEC20FBCE665A45A1AEB76403958B94F23ABE59C315CE9699203681167C379AC3F0F956070D73CABA5BDF50C153E941158F2202DE5857B834E3E553F7945398BCC70EE00CCE8EC15296B2364393085F2821D36CE6F04B0B336BBA762C387C69280BB4FFF179EEF54B925D99176167F4F916E2BFCB945A1BAB4E5398A03C17C79992848BDEFAC5FAE4667D37C75BAE231D424381C39722FBA787765B3005699B7B08D2785805D476679E29372B619E3568EB263C2AAD8C891CA561271CB5868B5971445E1CC2E2F1A11E44C0A798C37250CA802EB4502D86DB3CD5D09045252960A068412F1BD67B83A217049D0685EC3D63D691559A327B22B22F73A770CBDB80DA84F97F27A14C5DF5B3372D52503D3A20C3CB2BEA8B404229EF54E776C02586F3F46D723E7932215FB7E09C397D1552CDFE3457241FC30\nencap_coins = 1407C5B3005F98C64400FE2201F1A2B77B378FBC8141F175AB2D1C2A58846693\nct = AF4A1549EA7648C3B1D2CCD87943AF70B875D553A4B2C4F9853B408FA4BEAE90B33F330253943DF81A8921E795AC6B24015D2E8A2B8FBB5293A8C96DD446AA707B19373BC26A632190FD96EB60768A14B60CB0313BA0AA960F621946C81C8A7E2BDA3C1155CC76048028137B2DDF3C3C79B930682994C409B4D91CF26E955BCA8AEE4E460B674479C68529E91B5E04E6E5C1DDCE504C116B571F1BBD9012C8447F6646326DC94E49981FE3452119146B33FD7F64FF52D252E3116D28AECD9798CC1E716C5D3E3D37D2CD15D334A4B121D0858E80B703053A2A17D3C170F67123DBBCBB2A2DDC8A1B6B90F4E66C2828F675A4CB2BD0CC8C22B22EA8900BB862C8479EC1336FE62307E9C661064CFBC77F70055F07DEAE7BAF9BFB7547DDCEBA13C63180150168D6C0F7B16CA53A208C1D5974E82AC948A118B5E972EF8629E2AFB0D0A829FC9CDC3FBE7ED71A22AD2C96756C3E71BA5242B7A178E4BBBC88E5BF50B6DEC71476792479FDF5DDA9D120D6E520C1BD9703B41D972F8F1FE7A40B49A910DC6EB568ADAAA04C221E8E24540552CF13356B03C72232B765E131781BD9F307277C8148AC82DFBE0E32FBEFA1A41BF74832C0E1B22EF419BB1EFD2DB7A23E4BF7C42D11C88F7984F39E3BB34AB7BFB2A2DEC313D4B4203814F4A070B505F17FC5EAD07EE110653EED7D3ED96A75A2989B793DF72DB078F34E318BAAE59E5263C131AB42915E5EF535C564A47A9617CD7278CE10D4580C5426B9C10C76107A262B17144FB12238201F31583A36E1D2845472F4AB522560F5A1A732BE8FC03E007DE7F168745FFDED1F00E9CAA55DFD2D969F5E439AD98F08D0BF6A897602EA5B57618EC0566166A1C314904392A490F9454EA13B7BA5534FA2582FC9E1D20C96CE248BF0067F9E02FEE30B5F2E26E425453F1A76401A3DA79A37F70A7B4C5FD3166F798F192D54928871705AD97D6AE8DC490CF33069D266E64B8E173C6253D3A82484B338F3176EC74383F0B56DFC421F4E53EB7E5F11E04004EF53745EDDEDFBB42074A63ED9735937DB428C0AC666D6BAB6600B8AEA8AED3065E0FB0E9C201F2805ABE2FA62984D5BFBD584D97E0BFCB0917D46F0C412E7C2400EC33F9BCDFADCF5B51979EA765F1B33F5AEF5BB29FB07DAE7DB1305A7E7D4740A096238A14F3D0DDAF3C8B8EE17A52AA659CD00A59002D332E6DCCA05284B3D1E5D4B1B46FB03C4ACDE60286568CDA0C32A08CBCD69B59360B518F3D67F09D121B9B3A26B068D5A74DD59902D059220CE96AF6A1532ACCA58D46C500ADF07EFA033ACDDA23C2624646AE52F202D2A42CB4680B7AB310889E208040DC296C1D3893728C25A28037C2E41F15B652B99FBF25FB141EC0FD2A6DF590C8441EA09D6AD5D32A2DA1049025180BCC9012D025178010934679ACF7F0AD1D02994560653A1452F52ED4F7ACD5029156EE48A6A52BCEED24C120D10816F825766476AF10285FD94BB316CD84863E3A03DB02BD0B333BC888FA761D3DE8C3857BDFEF186ED61EF37324262CCD8AAD18E3B4066C0DF323812598143106CED04E4984F6AFC1325645E9D3FA42FBD454D97F9CA72C8E8A4BF312F5446E37D82F5C0B1A822E06E111A0BD475A339A086E28F594481EA2C77E01B94CE24878B7BD73C99B5E0DEFD5E033A5FCC75B6D3667C8A57E34127E504762E56356ABC2FA914DA8A4AB94AF0AE8877E92582E9D33A4B4ECF6A0EBD6ECCE3D26D6238644A084089DB94ED6F77BFB60D25860BAB15C039076436E0C7A0CF570A7188703D73E21A9EF34A90E4B70F66C825E275F69BF1F683BDA47292C003FD26939933ABDB1EB09707B4D98E16723B80F5FC445460C58A7A93A60B3CE1B56BE9346A9CA4D1B1C0FAE9CEC0827DBD637EBE7228E3737762E684BE96C77848FD0EC8A291418DC7AF5F83077F97C2B0D5D7B64328B29A86F763ADAE02CEC063708953A27DC4F036DE6066C2D28978C05369AB40038562B7844378D7E95D72FFC47252FFAA2CB893AD3002C7B08C70B70AA4596DDFBB467E68B3470CE1682F216C9F45C0F82B246D8E5B0F75813B3407A4D3C931B1366170AAEF72480DE13A0C27C06AAE284BB15950003172DC9F65AB29485F87B7C1BD15722B21452E79BCDA849B3FCE8A7479B7D4FC5C20D92F73ABEFF903DD577F5C598EAFD7828B077A84D1DA1A67BED336EA25E443F4439F90FD13B6\nss = 82973C6F4B8BB56120B94D7EEE66321BBFCB4EF0EB2A589DA72B0CD58A5859D4\n\ncount = 96\nkeypair_coins = AC6FCFAEEEF795B6EF9E062F02BF42975FA01E7D91BA832F74E05269A72684D066BBD48DEEA2A0A14BCAA97E18D848E609339DC39BCECCE7077F2D7432DA536E\npk = DE90503D536A810BC927784AAC5B15FEDA774ED1B0550B7A7E656817866881A2A4EF682462E75391298F75F2061C70141AA682D50787162A6DCD853971665C9609BBD90AB833367A44A0286D860C04057C8ED7797712AFFA2557E2DB46B546390F3163F05316AA8A12A7D49C4FE03337CB9A7218739DDB184C1304530667B9B54441015B9F8501F902BC2F3000A4855E68D7350E83728765057959662504331D5026C8D52088593D0ACC1F39E74A7FA59B959967073BB14DE163D73308C276AC0E6BC26E1C165B873E46972B72FC214544317C31556A76C09588C45E4762A1B43C7EA2A9DD238AC6E39E9CEBAA1945544FD8702D7066D329C89656499E6C8264CA1BE481AC792C5A52188E8A954C06A96E13604E2EC0242C78BDC7763359A47C2C5C4F7762819504740C043B2A5BC8DB00CC4AA9A8C6354DF515BA7D7039F0268637430067B81284F866BDDA366A8C25C3808AF025561F24BBF8671305BA3AED330898F18B854C501549AA9A1C68DCF1071AF689F3C4A46B19709CF02BBCB07F65B44E9F9385C94C4385D88F8B502CA9E19A246498646BCFA1308F8A6C45638A0DF58668F55A3D30440453C36875B0AA1B5967E617A296D284C4E2828B64B83FB176156BA7FE864007414C3EB247C4063ACDD61B4E5C42B9147044B6916FA9BE1D25BA71A035D766BF4C1C336B836B512A23549BBC53E1A8FADA8246B41CF93604BC9B792868734FA755B06A7821E688CE17C9A00C7F9FD724DD494B070B9D4FB0A2963CCF41777F86BA3B318A1EA543913D5A653F073B34C64980E02CBE17CDBA5A286443677A152B0DA21EE54991F34B758B87A3CB690858F29A003031E8A99964F3A904023404CA51D730957F34A0BEB402169A6BF7163963D87D9C6159B8E342CD8738C945B832B698655071286338B67B372A067305E5299043C884B4AC6F624D06F1167003CD5659B68F36BCCDE8B37C817DB27870DD196135B21849843835EC1EFED74AF31A3BFC6CC33A988322622E2841799635084AABA1ECA13B61BA765466B05C742279067C5A1A1355737C84199932660B15E1C124F5718E86A8953A0EA5182299A8A4C4A82F91AA901F40A64C2C1457864F0BEB17F5B6733FDB8FA9A04D9ED1480DBB2EBE1B8A37917ED30257CEB062D4B3CAAC11CC1283542B6A711A737C64981AFA7CC0DFF00C7019AE2169BAD10A6F60F094020B7B422B006135B65110076DA0AC1E9B8F354A46200B3D58113953197E7A942671E3CA61C17F4256737DC71B12291EAE2626EC136B6898047427525290A62380B2B246AD86AB59B12499C77936F816CDF15C5873147E37A71A2993AA11042CC83CA7B7656FF35429795A9BA01075D670A464B33E368B70CE7B484E864EFA8B890892B8648461A61B75BD7455979325755292576878D0F94728FC2433C1C04AD8B52E55C93F36C564630C7CDA98C29631B9939E64D86A8BE9CEAE4BAFE668399B287226B59807F51FCE23361E2ABDB21A0803F4AF1DFC8B55A594E746B241AB0BBA37B285666DE8431BD3E28C7D6B64E7E1377364C75C1A1B6B8147D91074CD862DED548788D825BDE070EDE391B0A794FEF56231F36B7C451D25DB6419E761E700B080DB345C613226D38895D55889B10754B9706C33144805325C3295359CA2AB758DD321154CE457B9734EBE32C02546A7556B599733C036060631D5B4FF6C57A1B6C5065B80A691CBF3C604DCF49D914853C87B6758A58D56E406C04230548954242AA799E0532ACBBDB9D9A50DC2BAB0C91B0268BD2F0427717BC5B9456895C1660CAB6C312549A8F15DF9C7957B1A9F3C00A7487A812D429BB8F232B559A5DAF57C27A96A99327A39F5B1EC95B4161316F1A27AB2470A162231A93761CCC64689D430D4872ACF18A4EF71C0B6EBB3D552B2BF4ABB43D70576C9A67C3647D5919BE77A0AF046BC6580BF05B109A66256A21BA44C45C516212AEADB7594FC6CA17BC436102EF3D99722FB3BBB0BB39C9A1C14085CCFF8B57140488270C165A8ABE44333999A383C83BF1BDC6CF63258908ABE715BB383C385FC26635283AF0853B3E533CC6CC95591C08FCFF360FC6B506B861444B3B328045270B001A481662BC847FD15924F5744E359C18514A909CA163FECC8A1521C1B2955AB7917E343C452FC489FE06B5FC03DC21F6D925B9F6D92FFF175C9DD625BFAF502B4E2870961858852\nsk = CF8293B02A9A6F579F51066BD6E51ABD270104634CFD482823102F2B63B18A8BB4F45A5AF4D8202523CC1779B44FD283860BD004307C399CA5D8EACADE156AF824A988F5AC6BB50EAFA6177A95B9752C922BD6A7C4265A6A88B11D0403E47127B1E80787742669E763929483393CAD6EF91F18143E9D2B7CD3E028C6F56B91768113259BCAB926A082A2A6185A1BF18656448A628258E21A3C6CCA23449B4F9483AE9D01BDD4BC674E06566300AD2A215809E547E2626F8D9437BAA727F3F05C31E85E4D34643148981BB6", + "A82C3C75099A33A0E7528D45303D98223E1A4EF6536170F53A0C61004BEB75FA34B8AED5156E4A538269775808283CB0BA5282607D50661D2A626FAC2737C98CF33050353BB83E1C1136F1C26FE48D81973EB974AB1BA4B97C95C0DEE065523430CC06620DEBBA3DB92888497658BC5C64B98BE65AB2A0738F0750022B95A66C583354A63865B5237FE7098D279C53F731F3FCAE8689754194A7B888199B89761FD09FF75677B2C500D7359905E76357163834712659F26D0D8C9B47192404975CFB89969A77615D1A3FB404BAAA54511FF1B3B08C1577EB274F5B3B0B825434E87F60D18FA73141F912701A99A7C11305000789229A144A0899685596AA646F13573EBA0B54DD3205DE2C60C3CA1614066474B89F2377994BD14EE0A77E1D4C0AF77748C1E623CB8947A98636694C4EFAF0CE2BF779C66A317989A335A0071505831471C8D845A5FA4B3E42D195074244F70578124C4C7894AB84584DAEC8C13A6598524C023CA99F4C0499A68ACA3E6827798B10EF9A4639605E2FE8656606438274AC8ED8C87AE0A16BA3B8E5857A7F25831D8B85BC7105828575320C6BABA75489455154B31E50074A313BA9AD10B747F39405544F44949DDE165070C8271F1BA80E57BB5BD1320C8A1F8FB47354079532BBA51282AE3197026E18C46AE6B2AB9940EABA9F1EE421592770C9A9604263A4917C825C084C3534381F22C057592DD97940ADB1A439D5128CF795CDD25640FA9229220A1CE4A6624CC9956105465246334C77FFCB9907159461CB1416637D8DF34AB4B401413C27B6D5A1D23331F88273222653ADF9685A614BEC9840355B1A23A0C4CE60B0B678AFFED200BCB383BEC2580C89127B2870745C15570BA1CEC89F5DCCC47BE517BB020C57959E433C11DF10810D5B37AA8AB3392B3358793246F11ECE238646724BEB859C861463C42B5030D9A1FDBA3E1D391F9CA5A99DF58A7948C66FA2B50864B73A40B52DC7CFF031B3A3B21009268CD5CB00A89B44C156333B802AD03B2F07F70F7C11057CE78705AB6EE43681AFF0874030807412A7743399CAE832F6F3B65DF56AB1B30D6967379E10B4EF53B9EFB5632A23B942F832A7FA22CDE494B0C7393D51AC807A38AF119D526A5A3B91068E107812269EC85410AA739C288C20446B68880343F2E12157094DD424A349D1523E76C0ACB9C29C22B6346386B522B0466BC8A85B97430A1DF80850510C4825EC4F2AAB987C4A07F11693E7BBB4662A4890A3C54EBC0CBBD75CA468428E38276E81C43D81A8D0E3BDBEBAC9AEB89FC9D7870BB88C5C16A137C41FEE75640774C4B536BB1D7BBCE797847CF84043D49019E92FE9E9808F25990F79B52A4445CA842057B02418964FA53478ED974E781901825A3B33E0333C64C765857C97120BDDAB43A6154336C0A1BCA4AE0AAACB3EABB4CA06928F351B21C99D40F533F3059A87A8AC7FFC5F37BC2B3722118A9AA945C935955809F1095EEDBB252FA1264D37666596C771A663EAB836FE703150236B769C07E23A9BDF43886A265101C20C8715057D281A7B0699DF7C7A1B4055E29945952027A06454E9295B89CA0A8C873F7EB86A39E83176E0CFCA61B333E32EA658120E417D65FA9F23E3B634E8A3430220ED775155E0084B9713BF2920AADC2DE53905A030AC5CFC4405960772F5354BC20EC760301EB77C1EFACD29878306699954AC96BCDBBCBB1642811CB18E7B96D16540A8394574A85D0AD6C4F53025B790685DCCA38CB95F95FCBBF5240AE18A3913365A4F96A8A77839E1A269F7B94B3DC58F6AD94BC4F15409F775685016340C03521218DF1C68FD554D0902B05F935EA20C6BA835112E408D2A756581D8BBB8ECC463761C722794DE90503D536A810BC927784AAC5B15FEDA774ED1B0550B7A7E656817866881A2A4EF682462E75391298F75F2061C70141AA682D50787162A6DCD853971665C9609BBD90AB833367A44A0286D860C04057C8ED7797712AFFA2557E2DB46B546390F3163F05316AA8A12A7D49C4FE03337CB9A7218739DDB184C1304530667B9B54441015B9F8501F902BC2F3000A4855E68D7350E83728765057959662504331D5026C8D52088593D0ACC1F39E74A7FA59B959967073BB14DE163D73308C276AC0E6BC26E1C165B873E46972B72FC214544317C31556A76C09588C45E4762A1B43C7EA2A9DD238AC6E39E9CEBAA1945544FD8702D7066D329C89656499E6C8264CA1BE481AC792C5A52188E8A954C06A96E13604E2EC0242C78BDC7763359A47C2C5C4F7762819504740C043B2A5BC8DB00CC4AA9A8C6354DF515BA7D7039F0268637430067B81284F866BDDA366A8C25C3808AF025561F24BBF8671305BA3AED330898F18B854C501549AA9A1C68DCF1071AF689F3C4A46B19709CF02BBCB07F65B44E9F9385C94C4385D88F8B502CA9E19A246498646BCFA1308F8A6C45638A0DF58668F55A3D30440453C36875B0AA1B5967E617A296D284C4E2828B64B83FB176156BA7FE864007414C3EB247C4063ACDD61B4E5C42B9147044B6916FA9BE1D25BA71A035D766BF4C1C336B836B512A23549BBC53E1A8FADA8246B41CF93604BC9B792868734FA755B06A7821E688CE17C9A00C7F9FD724DD494B070B9D4FB0A2963CCF41777F86BA3B318A1EA543913D5A653F073B34C64980E02CBE17CDBA5A286443677A152B0DA21EE54991F34B758B87A3CB690858F29A003031E8A99964F3A904023404CA51D730957F34A0BEB402169A6BF7163963D87D9C6159B8E342CD8738C945B832B698655071286338B67B372A067305E5299043C884B4AC6F624D06F1167003CD5659B68F36BCCDE8B37C817DB27870DD196135B21849843835EC1EFED74AF31A3BFC6CC33A988322622E2841799635084AABA1ECA13B61BA765466B05C742279067C5A1A1355737C84199932660B15E1C124F5718E86A8953A0EA5182299A8A4C4A82F91AA901F40A64C2C1457864F0BEB17F5B6733FDB8FA9A04D9ED1480DBB2EBE1B8A37917ED30257CEB062D4B3CAAC11CC1283542B6A711A737C64981AFA7CC0DFF00C7019AE2169BAD10A6F60F094020B7B422B006135B65110076DA0AC1E9B8F354A46200B3D58113953197E7A942671E3CA61C17F4256737DC71B12291EAE2626EC136B6898047427525290A62380B2B246AD86AB59B12499C77936F816CDF15C5873147E37A71A2993AA11042CC83CA7B7656FF35429795A9BA01075D670A464B33E368B70CE7B484E864EFA8B890892B8648461A61B75BD7455979325755292576878D0F94728FC2433C1C04AD8B52E55C93F36C564630C7CDA98C29631B9939E64D86A8BE9CEAE4BAFE668399B287226B59807F51FCE23361E2ABDB21A0803F4AF1DFC8B55A594E746B241AB0BBA37B285666DE8431BD3E28C7D6B64E7E1377364C75C1A1B6B8147D91074CD862DED548788D825BDE070EDE391B0A794FEF56231F36B7C451D25DB6419E761E700B080DB345C613226D38895D55889B10754B9706C33144805325C3295359CA2AB758DD321154CE457B9734EBE32C02546A7556B599733C036060631D5B4FF6C57A1B6C5065B80A691CBF3C604DCF49D914853C87B6758A58D56E406C04230548954242AA799E0532ACBBDB9D9A50DC2BAB0C91B0268BD2F0427717BC5B9456895C1660CAB6C312549A8F15DF9C7957B1A9F3C00A7487A812D429BB8F232B559A5DAF57C27A96A99327A39F5B1EC95B4161316F1A27AB2470A162231A93761CCC64689D430D4872ACF18A4EF71C0B6EBB3D552B2BF4ABB43D70576C9A67C3647D5919BE77A0AF046BC6580BF05B109A66256A21BA44C45C516212AEADB7594FC6CA17BC436102EF3D99722FB3BBB0BB39C9A1C14085CCFF8B57140488270C165A8ABE44333999A383C83BF1BDC6CF63258908ABE715BB383C385FC26635283AF0853B3E533CC6CC95591C08FCFF360FC6B506B861444B3B328045270B001A481662BC847FD15924F5744E359C18514A909CA163FECC8A1521C1B2955AB7917E343C452FC489FE06B5FC03DC21F6D925B9F6D92FFF175C9DD625BFAF502B4E28709618588523D8FE8354D81146FD65AF657DA08926BD3A6ECBC2F81CB58D1AAACFE5B6E686F66BBD48DEEA2A0A14BCAA97E18D848E609339DC39BCECCE7077F2D7432DA536E\nencap_coins = 19428B5875ABCE53A0C9BAAEA7707855E56D971083793B2960986D38E2880449\nct = 29B83E41A8F490BEE572DFA7506648ED1C9BE44AD7DCDAF314A307010478836A3A52C21CC9A6872950DF78EDE4B7C1DEBE87C6B180DF26C7EE8F07AF7E8F33A0ABD6AB5A7D1858FB8F66A0AD8EE4481C81B26D0CA02714B33F0357DD062B4C5FB2F67597AF82FD31A322413F6DC8C75878FBFE75DAA3E7A405FE424B33BAEAB1DE29C00DAD6D1DCC5EC6F09DF66E97651A01F935E7DDF761B7F4FF66235B0447E885239122452FA899D6D78DFAD5534BD3BB87FA9F351C49873C10019AE9D2EEDEC5FAFE663D24873565F8F071BF2E989D30A6DE140598B3DD0435F1DC5752A592F00EAC3F41076F18D5A1764769B051D8A82C8E6BD9EC0AAD121D4686AB7F94DF322DF2F003FB0FA78A26E0C489256B0B465A152ADB4142B70A9876ADC7BE9A4C750ED3F21BA55B75DC31C853C92F5B8859CA99AFF3892C84C23A20AFFE2BD233833A08543578C10DD5356DE1F3311A9F08B1583A97CFAE921C714FC0D9EC97AC55BC6B7FC576018B91B72E0F3D699D879027BFC735459D72F324E40544D1880BE9FDA961364FCE713C30F674E66EC0B939BDA2CCD75436674E1F6F429B6AAC510C6B1CFD08B55DDA0B9105F3F36921493E96CDA06BD17ADB455DC8791C4E59DC294F888F8F9554242969A0E3C9C4D152311CF97265B68DC79ADB612020C96F3904649144514474E91CF0F37CA8097DA5A1D6E29F8BDE48C311D30137CBEFE349DB75C760EA91DB72E373560270E4FA215A71077F819F71121C2B0471BF81F75161381814D3FDD05C0DCDF41E03D973551CFD3F032C4B4ACC6C6FDE88EB9DE9C859CAF6D8A694B1E400D81E8AD456B3CDD9C97EB5B3A9CB5ACC4603B4312E710E09242EA8B6B559ACF99D12926DD46380C9267B0D0361D282DE3A641762B1F22E55A940EFB0971C60FB85F1097F84FDC0E697DAF4ABC027103741E481B83974038F67CFBAEC03D2E30530FCE91C062D35D1CD67AC2977A9896806DE3D3F7E55ADE9C3010B37C2B24D2DCC41515976D1BD2AD94DB836EE953D02AACC715BCFD4066E5426EBDC22E7BB81CFC3DF158F02444E7013D93793CB4310547DFEFC4B1178512B9487A158C6DA24E8C1DF67D3C8C49D0E1E538236BDE8E3723CC720C1087ABBFF3EED5B60EE35C6305B6ED52A3FB486CFF2076F34427EB291D79544A13CA4990F4D355C73CEF68D273320B7BDF63C0F86975D76E14A0A1AABC9F04742792A288B05FB7CC601FF091E956CCE53B0F4E2DDE3E3DE180C3339C70CF282018E02DA6B2697BD8DE11A699647A14E20239668683AAEA05F0DDBB5880E14892C9B34EDCC340B65678C767A6EE4ED80F344A3E1DF5F37E48E333608B2D687E19C16D17F7B58C0480CC451CDABED055839A32F8535D5F9340923AD5227574780BE6C4A3A08DB27BD0C6E8065337EE4173DF18BE24905B5C6CFC9B6AE15A930FB08A593C4427D2E9D9CF0E6494C059891F8A873EC0E86BD11D18A04899280CC57A42AA716EEADCE962288181773960CA516088437FD84AE64D5215ED7727251212D1F7", + "DB59C5AD8FFDD0A0491A504855A2F14680A5631CCFD03BDD2F0DC8BFA11DD6CD6DA9A399FA3419637F242E0DE33738EE00F415CC5D548E468914DEA6D88627D6C87F76A353913092F486C6169B8B788A99BE3093FDA5941FA6FD33D9A240ACCD4432CD5AA1DF88499525BF73140FAC1BFC0EF67D28D7DF9F69C60AD477D4E04EC4BE55B0E64A47D24A84F90D34C5B346C140B81B0B9335EE3746C803D2EEF5D2B8E9F600D5212D7314A4505A991AF80FAE2F1672AC56F6D6E03F00A740FFDC2100E3C389FC6A8805D9D97B5C696BF6416811B7F7EA84B84240D9D3BFDD01A9A0E6CA888741A7BA3AAD2C06128F1FCAE105C06069C299C185509C0E5AC49BF8A327B545751AC54267AB47776431D07E60D31205209340330F2BB0C6132FF332CD30E6104AD93EB58C0256559A51413FB947EC2944CE7A4524C221C434C7D718DE375BB9DFF253C20B7CF5DF72B23E543380E31616D4E90BE704FEAECBAA7715CCA370400ED5ABBEF86AC7F8DB877AFA2A6794F60EA9918EE905420360B9434ED93DB3C40022BBCA2647FEB04E5FB7A5428A6D631B2EFD69368F04ECE3A00FF1FD316A8CFB7758A3407A6209B5714B78A874142A70CC6857B46880DDA61F6C87DAE97D2EB77D6254A7B6DDAF977BB54492201ADB8C916E2E97C18E131DA141974\nss = A18C9E9D7CF15245DEFE5D67CAE930945E5E8EB3D54C1F4F825FB48B59DD7C21\n\ncount = 97\nkeypair_coins = BA2FB9318D4DBE7488057C33E95E6F054583A2800C41BB83083C330A914A12CF3E3A1BCD39C74C1B899FFA21A6FE100804A551199D32DB4A75E6314BFB58F70E\npk = A0EB8FEA64C6C0DA5D9A16254D897856A1486C8B2F773C18BAB3CD4F80C83DAC6DC9796100886D14B4085BB2265BD9C2F021034EF1083D58AFD447CA55526D2691781D409649E88F43CA4E9B4AAF9BD9588AE52D126692B181817ABB5291F660ADF3A0044A0C527B233327C0F9DB047C9415C806414BB0758DFAB9A7D3C28484578B6084B65AB0060CA20895C6BCB5353D295DB2EB32170B5A214669D4C4971A1993C1B98557CB5F76E5B8E306ACA954B04BFC6F0B0CA903A66DB333168C32033375A0321A287E133A9ACA8EAB024A85761AD4776B03A95130D0178F93684A2C0A519501EE5B85C4C3278E8B4E7B2B461CD4602A7918767B315CBCB885410CEB025F1342C2388637EB69AB0FC21568B1178EF3669A1B9E4FC30EADF5BE70143ECDF543F1CC88E05A109920A5F3B4AABC0B8197783E8A16B1E06BC5E7089CC447186830A1D5BCC8BB31A6E91B691A65721791B0334495CD014C134617A3318A7906069E0574D83C8A44326DB67CCF94A0A735942DE923B5A6D55B087B4390E975E6B3AAE4606ABD3500FD54837FF875C54BCB7B5739DDC0ADAB741E57946AC0948CCEF5CA791A46C669C552B97EC35633A141B92DE18B0DBA46DDC64431920938A927C255AB78FCBFC9653E1C0B8A0F42489674C0F79C30CF8A5073A06FBFAA888E914D53A3B6A86418F5EC6DD5A6B56973BDD9744D0EF326AB49291BA1B1A9F1A68DA542FD944B3B88C6C364752FA6233D27A792E6A040F1824120AE9AFA707D7206966A4EA361681627CB346572619C9A7D539DB7469E60177E98674398EA296FC3005800C5DA17A80EA06AD23A265AB7293401CDFE3460921596A7C228C883B0E1E48365FB02EB50950DE3AF481439DFB98447F3406C81161E643F7095CA8C7A40B6D47F13D338BE25335438CC457B3E99C820E1F258825988D4827B5B1506A0129648101BD18823B2F2C2A142387F1A067A295175F5922EEB1DE320711F0B729971BC7647889EE86CB5F44363A992369120DC837DD474BAFFD381253680F00675FB380BF96A89E282AE67C32B94AB48E35029145748EAA76037A98788C45DDE75085D9C5523A7309804745F626F89362F7BA94738C5B9BA0B11BF560E855356E8CAC1195CBB2921BFDAD80DB6B3BD9916A7C6CCA281914F4FA5AD26D00E6F6ACAE0DB49AE970755D16B2069B1A7EC0D7B879AF301A9BF5519683BB3A59B066B62C8D150A316508B8C2C62A7F20FAE59B3CCB0CC5E21055C7A638E11242C39855545B0A880484FB555F0FA4BB059AB05457BED820EEE0767470628F81A321F113A8158A1AD1367F11802F71B90A8B4A1CC3C16552C11064AC01402B8B4B695D19BA74991673A963537B2AB14333633E04B0859472ECAC568C87700A5076C8C265A3B0662C4250AE5CB53771CDDCC2473F7BCC52CA97BA018BEB6BE5BA5420F7B2882F3ACFFBCA13193C71EB60D167C1D9B256F4706A19204A017204AD28B6A0F607D61A97CB578CFC9633BA9D6AB84367CAD900E5CE147AC935AF727724AF3AC8F0C86EC70034EA7C7F5330889B402F6B7BE7BB6C7751411120A5B6577C131CC75667990C0585CAACCB1AE144140D47239B7ADB311B338DC8A8E5B10C08B3AE26C945D680F4AD35DC07639C581301CA981BE25075363B8D3A6B2165C99C0B61C298A502123C40E1CC223B21EFABC1C34576E206456CC082CD4048FBB576E720BB967F5B58763342C98AE883CB24CA32E06398C56EB6A7B697DF092926A8C76DC160F0C577AB476303647BAD3B6951949ACC2A69E793807A77C7EF163A25C842723D85665B121DC8622772CACA988C5E8281D2E7055657100D31688B09104D0470D8953B82EA4C6AFE50BB96B68F5524AC3A5A92CD26F26B142E37920AD36111226C763E3CE29C9C1235C8EA40995EB867EA8E844ED819C10F62172C52558667F4121BCAC1815EE2806D863C22F10A20E74425F6C22B1900B520A5041B0A7F5842AD0FC0E19C893D7E42B1ECAC89D9A989D8C45DEDC5621565E2E788147C42EC4DC6A8CA22D4A1904787AC8B75232BB13ACA7E30825E865BDE0CE8EF1C7E2172D759873DB265638FBACF7763B80FB4161417559A32C2D6CCE4834BE3316181EA4C5CD29687A498953998783057DF991300F224324B207B723607961622F20377715B3DBA61B94849DEA30E28720BBCB90C7AF7FEB0AF619A0CF57D173405C82\nsk = A428A1343429CE9C3DADBB6213410E264426D1CB5C69C68E7F377BCBC454AAF867771258FAA622B6367FC5CC46E960682A3984A13230B3D7C25A69CE4AB9AF0234A109878E0CC42A9B858DC559AD3FE82C4060539C08828C51B337B7C0EA768BA646A2F04900A235A4042B88E8934D3B62821A13B67A912F162AA80953CB71C396D91B91521B6665062551E0A6CE453C233460789138CB16AC6E598F670C70D6325804CC494466710D984E3EA551F5EC60C5031E94421919F62C301181831B7FB4FC61DA443FE12784CF84B5ECF240DAECC87D711AAD10808B96233D345BA80B0469797DC03583214355E8E9A356E367A593A6898355AD129A8546A0D03B2279021889C118DB3583DA691A9AD544086540BB2178B2125F00C94AE753038486B6CDF1CF7E5A2202290B4E5AC807EB04BEA95678B52FF76C4757C68D2EB9283B8766F1A39E06C999015B1F1D5C3164338AEB432D54B338C361B9A7258981555FC2563E585A6FF60886C32343E0045746E50FE78A0A9BCBB6281ABE3474BA50E1267B3276A1327A8F128E2B5AB077618C59902C35488553F745D2A0C942B81C0AAB7AFD0C869B9B9C66C1847257CB22B018B81B25C468A9BC35A180B090F4BB90C4EC035C0078B799046833CD90F7BC2678CAB9B75B95A6B457DCA8FCB84937C01479A0B7B6DA9643DA507A2B8B1AE25373825189729BDA8B35FCEA315B3B359705CD5B486582379093E64F431309F0389FF899BEB4C3CA9689B412A210EB654F183362AB8398B1E3696DF7432BE662CBE62666471F2C056504A5C1C91017A6326ACC7306524058FD0937DDEAB972B00734F60D065A1BA8655DBA3093D161B99E698FC778B2FE782FA8EC7C62D422E17B24FD107B87A8338AE7AF6994C70D959CBFC3720B3174B9658F5D43713CD47325EB926320073F384F04E6831435524B686F2CD377C18363F8E554DBE6AF09F93C2FF2A1F4A87159472E7D7A4DB9243A1C6A636AD50735B870F1297B6D6B5303E2552A54AA5991340AA40301CA2D6BD9A765B72FBDE1C3C44A7649EA350E00CDE59628E06ACAD29888C9B73CF0AA65D44B60F086C21C6ABCBD544295317B55EA9AB1117989AB7B7304304E5612119396727943678C31CF2B1779C946B82420A557A8D6426263D33C7F71591C7857E90A7FA05158E315AE19D1046249B3011B22291CAE30501D1423674824B852C34C97258AB972AF6C5195FFA20B6CF05BA0498A529756F173349BEC8C180869293C5967454D01CB3C8EDC7A3A776DBA54C37513727A69CAACFBAAD8EC4A529A1872CA25CB4A99C38B225E379ACE27485D8B91FEF9CEB97C04322B59F533745D23720AE457FA11B3A0B831DE777D07F88ED1771FA1D89DB9ACBC7BAC471BD423ACAC482BFB29DE13881AEAAAE2F340C1E747A73B9071CC551EA59B03646B65BC2E6E04875754A77025985A026ADCD321574AB45CDA47134B560219338FC93B0A398D7F85169B4B32C2EC3A06529F8E3A57FD353327B03F87D5CB60C67074146FB460476C92619D9C23BA7A371FD9425CFC6486992959109CFA1C1A75AB9EBA4235AF63C6F8648AE7855A4EAB5C9D3923386996181980B16B02A53060E5A64A8CF3CED087BB64F93693CCC0E77AA355D741F1F562692477AE0082A4E73E21F05FC386A8B32B09A4B79C41612EAB0C29FFE610DEA9713DA3680BE504F528B5EAAB6D5CAAA20C7221AA39345AD0B6AEBA27A563AB6E1B65FD70A81D4CB97F6BA16E35773AEB8C1917AAFC9B8F5254380395A41B474B27463F42E7C7B008A52D4395131C13CDEBB7EFFA846DFA429AF7393F8A688203BB6A814467D1BCDF931AD12811F22C0A0AA3C1949B2EB266C59AAA542605319B233769544070171801417816F730391A4D5D09127AF868D8EBBD58B767B1AA7015DABEF5B32B773B9329898CEC8C94D80630B8447CB1C17C3C400134217C0ACAAAF73B4B03132D779523E0C9CC52D28693DA3DBD5507151C348B11898AD548EA305CA0484C67F1C70435C84096117702297F0094113B1C6AE66B25090F9B22A15CEA69C95A2B8801A6DF8611DBBC4CB92CCC21424F2A2537AD50206CB4BB90935381E62C571874F283CDAB005254220D538115A75298E440924E9A3823D69A5EABA0AC73633179040F95A14026455F9403A0EB8FEA64C6C0DA5D9A16254D897856A1486C8B2F773C18BAB3CD4F80C83DAC6DC9796100886D14B4085BB2265BD9C2F021034EF1083D58AFD447CA55526D2691781D409649E88F43CA4E9B4AAF9BD9588AE52D126692B181817ABB5291F660ADF3A0044A0C527B233327C0F9DB047C9415C806414BB0758DFAB9A7D3C28484578B6084B65AB0060CA20895C6BCB5353D295DB2EB32170B5A214669D4C4971A1993C1B98557CB5F76E5B8E306ACA954B04BFC6F0B0CA903A66DB333168C32033375A0321A287E133A9ACA8EAB024A85761AD4776B03A95130D0178F93684A2C0A519501EE5B85C4C3278E8B4E7B2B461CD4602A7918767B315CBCB885410CEB025F1342C2388637EB69AB0FC21568B1178EF3669A1B9E4FC30EADF5BE70143ECDF543F1CC88E05A109920A5F3B4AABC0B8197783E8A16B1E06BC5E7089CC447186830A1D5BCC8BB31A6E91B691A65721791B0334495CD014C134617A3318A7906069E0574D83C8A44326DB67CCF94A0A735942DE923B5A6D55B087B4390E975E6B3AAE4606ABD3500", + "FD54837FF875C54BCB7B5739DDC0ADAB741E57946AC0948CCEF5CA791A46C669C552B97EC35633A141B92DE18B0DBA46DDC64431920938A927C255AB78FCBFC9653E1C0B8A0F42489674C0F79C30CF8A5073A06FBFAA888E914D53A3B6A86418F5EC6DD5A6B56973BDD9744D0EF326AB49291BA1B1A9F1A68DA542FD944B3B88C6C364752FA6233D27A792E6A040F1824120AE9AFA707D7206966A4EA361681627CB346572619C9A7D539DB7469E60177E98674398EA296FC3005800C5DA17A80EA06AD23A265AB7293401CDFE3460921596A7C228C883B0E1E48365FB02EB50950DE3AF481439DFB98447F3406C81161E643F7095CA8C7A40B6D47F13D338BE25335438CC457B3E99C820E1F258825988D4827B5B1506A0129648101BD18823B2F2C2A142387F1A067A295175F5922EEB1DE320711F0B729971BC7647889EE86CB5F44363A992369120DC837DD474BAFFD381253680F00675FB380BF96A89E282AE67C32B94AB48E35029145748EAA76037A98788C45DDE75085D9C5523A7309804745F626F89362F7BA94738C5B9BA0B11BF560E855356E8CAC1195CBB2921BFDAD80DB6B3BD9916A7C6CCA281914F4FA5AD26D00E6F6ACAE0DB49AE970755D16B2069B1A7EC0D7B879AF301A9BF5519683BB3A59B066B62C8D150A316508B8C2C62A7F20FAE59B3CCB0CC5E21055C7A638E11242C39855545B0A880484FB555F0FA4BB059AB05457BED820EEE0767470628F81A321F113A8158A1AD1367F11802F71B90A8B4A1CC3C16552C11064AC01402B8B4B695D19BA74991673A963537B2AB14333633E04B0859472ECAC568C87700A5076C8C265A3B0662C4250AE5CB53771CDDCC2473F7BCC52CA97BA018BEB6BE5BA5420F7B2882F3ACFFBCA13193C71EB60D167C1D9B256F4706A19204A017204AD28B6A0F607D61A97CB578CFC9633BA9D6AB84367CAD900E5CE147AC935AF727724AF3AC8F0C86EC70034EA7C7F5330889B402F6B7BE7BB6C7751411120A5B6577C131CC75667990C0585CAACCB1AE144140D47239B7ADB311B338DC8A8E5B10C08B3AE26C945D680F4AD35DC07639C581301CA981BE25075363B8D3A6B2165C99C0B61C298A502123C40E1CC223B21EFABC1C34576E206456CC082CD4048FBB576E720BB967F5B58763342C98AE883CB24CA32E06398C56EB6A7B697DF092926A8C76DC160F0C577AB476303647BAD3B6951949ACC2A69E793807A77C7EF163A25C842723D85665B121DC8622772CACA988C5E8281D2E7055657100D31688B09104D0470D8953B82EA4C6AFE50BB96B68F5524AC3A5A92CD26F26B142E37920AD36111226C763E3CE29C9C1235C8EA40995EB867EA8E844ED819C10F62172C52558667F4121BCAC1815EE2806D863C22F10A20E74425F6C22B1900B520A5041B0A7F5842AD0FC0E19C893D7E42B1ECAC89D9A989D8C45DEDC5621565E2E788147C42EC4DC6A8CA22D4A1904787AC8B75232BB13ACA7E30825E865BDE0CE8EF1C7E2172D759873DB265638FBACF7763B80FB4161417559A32C2D6CCE4834BE3316181EA4C5CD29687A498953998783057DF991300F224324B207B723607961622F20377715B3DBA61B94849DEA30E28720BBCB90C7AF7FEB0AF619A0CF57D173405C8236FC15E2340175A2A64CA1CF31A4B38ED5F797AAA8ACB0C3D2ED9C19C7099F273E3A1BCD39C74C1B899FFA21A6FE100804A551199D32DB4A75E6314BFB58F70E\nencap_coins = EEC1E23E58387EA5247E118B6204176E01C8FDE4EBF069F4B1A460713B5D5FC8\nct = D34496A1A3BFB8C7F4E94E2FEB654C384CF002363201281589B44369602033D98F09EBE72DD9F32D661F6C8B218A1BB6A689DA7696E5C8A07A47609C6CC25F7D5286290D67F0BA1869A83D90011AE95E9F92728074B8EFD4E7192937238CA207FB5B08DBF2FAA5D010598B88FDEAC248E4487709E5BF78725ABF8E0176944AAEA9F5722D0431A232EA7AC79FE860FE6B6443B53FB7AE2A7D81930D07682DD77B2A8D45A726C629DB4ECDAE05D7A34E880E2FB1E861AFBC72F2A28E3EF87728750710744496E241505AFA5FF3EC06E0EF32E7A282D57F5EC0681AB6E72726047E15BF264DE20D3804FF92A410C6E9F97E8FBBD6DA25865DDCC4F63BA7FB18061CB7E7F0711AD33C1D550A50DBC69736192F18CAF2A0E225B963BB5EA4018891166DFA8A0466A54C31E2BDF8A479018B2A86DDF3D19A72FA100382A02F46810DAF00A45CECBC7E18D72E7714B181D93D78FB477F32A51EEFA8E237DD0E3F5DFFF188DB179B9A117117394E67BAB2B9F012316586F81E51B760FF80D5BD5C152D3B480055920B12AE45008A8606410D62C17C216C4D65E862233C161ABB6189BAD5BCD3F667094AE94418DF6F874321BFB865A4D179E05BCF2C710F07A3333D84077A9BC3AE9D6FC6BAF7EA1BB61CB5D3D6430159404DE73D24BFA8B3FB8956125C8DFCA7C4A6C07EECDD178841B3476D11E92E90C35FB6498E31A9B4ACA04A60A6A04C1620BC71C82D2B2E83A84340F0242269B47DB3EC7FFCCFD510C340847E4F2DB12D498BAA9ECDD44327DA3EE654C456DD3F08EA6D4B7EA55F4C61A3AEAC21694E270B6A5009CB0D4191F8759008D03718A9D879D833D936EF9FCE616727571099A40AF7E2AA7452C8369FC4199D27EED1062C473A13A81606C60359BF84AD8A943CCF67BAAC390289E6FAB31D84FC900F31DD8DF8DBF5322AFA7BB304C55DFC86EE8699F7F803DF98C1B79E8DFCBBB91B80933EAD38AE97B9093E1C407FF5232B6B24B599052B4EB782084C421FDF71E5971487F25365664E36CD7AA1FA86589F0B298EE1456B41F85B3ABDCACA689DB9DF858BFE176D147D25420A26F8A16B873704CD688F84863AC1066C17A955C94EA57B086DFCCC628CB18236B73C8DA167796F4FFD8D428CE430C8F71341919DC64EB4593BD2E4FFFE2DC8E73C43587A5C9608CF16748AF1C2ED09F5A72DE495E18DAEE9EDBA34146F3C3E83514361585F9065B9D4AE79D758004FC212E3EDF53244548199A49D3EC5FAB46672ACA4D323A48F7ACE013AF97755CD99AD4AC46B632F4F9B7FEAF332EB9118BD2EB1AD3527E82DDDE26FB93E806F27032DD7526F552C04423D5B61C4557975CAAB2DB708B4EA45163C06AEE6E697DED181B4E659D707C51E57DAEAF94FF3634A8FC7E788E603F63C24BFC3CF601349C24E411AB1950813852AE1DB69BE5C48C634EFF213DF948D0F001B147251E2A564423B4873AEE95941828C68592A9096E0682053253351E60B2A0DEE87A51EFD55B918F56F99F76C5D77C3355180DDAF76FC37F433AD8900BF5B352F0DE274924591FF8F6920CE10A4D35E0F12C91EAEAFB77F15639F95F944E704D9AA09BA9DC8732954A9C23BB610A853262A4E48EF3E6E730A5E0AE5EDA467307EDE6EA52F286D0CC2B0FCFD70896E99D71FAD28A461E197B9F3B4B4246C20ACF036A7B95C3685C7CA9E9AA7C3CFA27F30EE133387332EBF7DEBA3A80D189B8CC3F7939900416144ED1D51901C75E4CA2B999EF93BFF2D122B1E68FAA6584930CE69A512D552D545935A03B131BA86FCF5E9F44865C0F5CC74FE7F521E0E9C359471AECB2D6E750DF09C4AA11E434F2FE3BE043BBE8E3363ADC5EE34CC83A40E9A927745E6C1CF4332E54E17274F3B00776DC49E3F9EC77863F43399D2A2956861CB3D9CE92D9E08328A8D13B9DEED29AF9D6DD391939701CE3C5A8A61A0150A442EACDA3D9FEC48B838E325587806E65224485F1FE1A541FBBCF5B035130795892D680D9F7A77556BC9254F870F3B9CD3683F6F2092DE5E554D54C3550992443B63A2382F87ADAB97673EDAD6791125540857ED17350DFB9022C59DB08F9BAC7C163481071925D53074CD8F834C736A035ED719ED0D8FF821F0EEC49E965126F0A8C20D56537134B60DE4D7A4C3CECEF8068825E59572C30C6D780FB3F28A5A2DC3C0532C559B9365FDA675EC055F1506B0EB2CA2652B2E1B\nss = 7F6F60AACA664DFB83CAAA9B8E426FA4B34A8D6E77DDD9EB1775C2719D8C2611\n\ncount = 98\nkeypair_coins = AA6DD1E5799CDF7AF9C4FC632B3EB9D51D66E85C8E0A21EC98664FC51AB63C7DAFF7ECFE33EFE4042A44F2F801170616925BE8CCA1BD1812A7335DCD80F9CF14\npk = 935770F4970A8E4B7B83C12A1E44C3EB360B42E77BD4435FB6F65CC14B894C387D0445AF3F28CC2434138A07A667E5AC6BBBA72DC3B7EAF788D8621DDE4034A430C2DE165B313733E2DAACEAD1A014FB09D5B834411B8325728EB325B12310992012A7C4E05DBA5017A59BA9777A9B3D5A681F79252E1C15FF8593BEF7CD3C059153435BEE16CD2B8433EF80BB21CBAD40C6B945D7B6DDAC39D0D0B558C7A42D9BCC701AADEA5707F77498D5527E4F0B0BEE834946302191D06F46116A77B884479A75A585A0C2105343584AEEF31BD8A7AABBF669A2B2518F3805BE390159B974CE43C83EF68B72024A42A942D8A03FFC5A5429265214B68DFD4AA094EC4E1BDB6D8295C36CB50FFFC35C6A8B95172A0416130AF7560EF1020CCF09C400101705EC1305AC95CA03143D22C93D72BD07E83AFCA94EC379142BEA095C754533D802183A9B3CF2796EE2988184076D6C2235F39D250B080750762A0A31FFD26130700F6799867CAB43841AB906377EE5BB48DCAAA3BF79584AF9360C937FC371C1DE16BF2BA57359D060328A8CC01B948ED14197286AD0E8ACEF142DAC64B4FE260CF066886C8CA9292BA2B3315A2D719C53B7ACBB5125BBEB8D3DF4CAAFB08AC54B8AA2816D3B44630623101F3B69E15C32C8E6912D61CDB2602734B206863C9B488431D72000E59C36E031471BD693E238314BC282DD8B4702D334E5985A8E89045F40652300A9DFEACF0C922E5B631F00C434085C5DAC53BB4637C624C80DCD59A2205C8C5717554C114999E79B7EF020B7961F007541D009350BCC427AACCEC0B0C9E3656214255689B24AE3CC874FF7C0574B09F0D8223E4C19CFB381A8C72F7324AD9E600669204B2590BD9FF6A589D26E0F2BBE575C39CB304ED5C8B692A17B65A7A27623144E7248EEEBC4AC80239DE04E8B3928E750A0BD44C30315647B5A6BF3E5955971C9F62B44EE01221EF93FA76843BE32408563C111447541D98263212CAB014E7897AFBCA8618A27B56BB9725AA1B711315E30AA445537BF02A201E5362E6B6B82F52506CF8C1E82F7912612B6E9126B7E725B30451D2001B76CB575EBC847DB9B2A048277202B1434F9C936DA846A6773DFE4193D019C7A7601FCA114737559DF7AAC095849692831156A13A9060510E05BB9F48A01506A08F63CA5CB4B032962B6D484E8CB742B0709023B9926562BC83C72C047833E27760D6A8A8C559A096600254909DB3668B0E2C8BBAB67413827A2C808BF6C2662553B4D9166A152931F30031FB15822C12462B714276C743B2691E69321946CAD96F9BD71982F47970FCE751B013630F5AA90334C657D286F94D325333B64C6BC9955E859F8C51C1961400388BB9DE91FBF4BAFE8853B1CE98E9F1076AF1406458B00CCF021DA408575E126D850A3A1D51F31069194D65C4DF88B94D8B43A4B6EE651654D6BC72B8C283C49093EB3B1DADC9BD329B11862542DA3B770657318F13FE4B07B1D22482C0410652A3B52C2216F3028FA47C3E5934C3540B644A282729196CA366E1064BF5E57AE739229E3F092C3CC91E8E833C4E314B6CB91E6873F35CC4AD2B60281C862B9D0", + "CA89AA0966713CA0E973A766CF303AA1082266923CBA1CE7A91964440D43878FD359583C6DE0F5C6C86424A1096D5BDBB843990F0B8285681BBA7AE82008A56F992267133B7BD1A55F0FB37F84D6B2609CBC49C968925069AAB3498FF7C986F522B0F2A1512A8CB5A6BEBBE62F28901F2C5073896381255912FC482E9EF57132EA5F5F61B36A5A17366CC924D8859338CBFF9782D168618AD6A7E53446BC7BA73C86B8AAD129CCD6C796B2883FF989650C04AF16B339EC34912226F586286A553DB3362C5E1056A369B22C1467CDD4A633B03585F82116510127AAA1459B2DFE049E6F191DD7CB4D0A8AC5DF064E64B9021440357C4562302BB0ED0A6AA94BA1DD55A50829A574007608BC61508A0F17D41DC3BBCB8E91C4DEE25D2EA4700D905348026046450AD0C2768AD72EB0B770D45A7416C041160170B8511DA2958F44C9B06060183BB37967282062E0A93EB5BB4B2B15A4152C6F19B730B724F94AAB64B60B7EF5080B251AE0290746C249B1A76C96825653A89914B1CE70982D3CD437837854C6D28F871999073B1C2024088F9B8C1EA5C3F4E86DC76AE2B345932A0E7025F8CE6101884469E31AEACAF4D77E3F1201BC75\nsk = FA198BB15B4278509DC232002C75A8BBF1853C474C8248B5062821E4D77FD5880979922016D17377F76A89AB9477A1024C9780FB728F6DF3295666828143C52FE817B9688C70EBA292D2716AB4970840ABC4603F597B5FCDEB0144813602242625A067EA48B426738DAD0AB986369AA5326DD199C72212C59AB20C8F63429683721A2C682C5AA853B86542698732AB86FE39C340DB2D452286FDD599336B9923599B66C144C0C7848C20A6979133FB7B5EFA3726A4F44389CB93D6A9C1B7E300CB852698C236AC00B2855861C88BAD062A25423362C7774C1626834EE59880762508FB518F926A3F475D01AA8E5C8C4140537091D494AF66B0E9426359032A2264AF67E63541C2408B1853F87C68C28C8C13417F94D77F6AC3315F23405C233E14F7762C152609AC34842553DE175A6FE1C08B44BAA9D15CF09A6049B05B69F71DF322171701AE91D050778A6754E374878169181A2E1336677889318CB54218AC055491B918BC2553023167151C98B30E1340403E0C59B3252F4D0C85EBAC1877798C41AA43C5C7B738B7CE116428C049370BA6665BE646B3125AEB947B1F3B2EC5357C7566C13EAB148C453D6B2274A9295A06C822DF9222CB2026F19603B5602D08D46D4C71384E776AF2A441894826E4559F5975C586E47BC0236B4897622AE4396160334CC97ACA101805814AE44786D1E445147A4728275C32554B9BD148AE9605E10C5A6B556704F1C17297A32EB311F1E92EE5F160E8522E06554B93B5C796E44086E75D236CA88ECC533C3B348091891E35639BD6CBDB3A408720B6E3A328C4268454169267A5C5348703C412C58846C192E0A162014600DBB351424FA8D0599775BD2D851DB4B07438F655AAD6402628563DB3A435F75D440636CD64041DE162D178C923490839F190F106BE0020AB63E7B3EB718A4FB59E01057C416C330CC26E485A6D9C72B707DA0B297C0A25247D26D40F044844C2DB883A5BBFC2B06F1BFBCCC6D10B65C9BDBFB806D7A04CD71774DD60BC423C1DFA897A0512365CD54A90BA6AC509298BF6455363583843925281AA405C291F11695CDA995A9AC5F742351560B38F8720D66327B4DCC47626744241679247CBE42695B8D81C37C718CAD53D1B318F9F900757267C43B982F26639901028F8F636C35091F1CA90A1E329D5CB069A918F45A078F33AB4DFD248390627926AADDFF47ECEF1718B2B048304CD40E72FB0872B6207856A61BD764034E82BB426747405E1AE5B93C63CB12C7BF09E47E27117D26ACBC102B043616E60B714316DFC17306A77800EE87E03E4B74759794EE6943DC274AEC1A08197A841E68F258202B1124803064F6E3295DD51AD18949A5A383A81363BB00118A8569A38D138BF8835362C723E999402D3CF728B0E11F647CE2B9390615B9E50487E23CEE6F9CEFC4A1CE5E83D28D642E3C16934B43931158CCEF3832A457A5E833F317918858807AB084F687A394C257ABCD8435CD717D1E6B79E78A37BB71A236729839B89A9905B5D935AFDC2C1E6C71C597898C6A69765BA05E9784B7849C685AB5B6DE3358C6299D8A4B075045D6EE15B639601AA95603A67378157B54889C3021453E373208CD06C0DEB7747E411C2150B7D93118870818D5502490121A43898DCA59417088EB0D9CE88497B12294687619053D9BEAB9A13C663B24058B620826FC7B03442BC998F568CA7F570DC638C0F781114FA6642E2CB4EAAC2F638C85251C1F99422B13A1D58BC541DE67069A228098BB61AD060A39CC5FA5B9495B79C92993F97284C9A657BE1E528AE333061759C38A5A662AAC58D214B7F837311C92E5D042142190446AA3D646495554CC7F37656ED89749F5028B1EA008163B5BB13244DC41A394A18E589A85A2BC4E71B596E15B6FCD64C59EC031678AC9E0A439B6A31233C0F1B6B5164320F74860817CB3A82F79828191300C8B9543A5B1E2C59B9C6867EAAB23C542787262233578C1FF30A3A1A06991343962119EF718CB35080C6C785F91709F8B713EC7B1F47BB9D2F1C9D394CC6FE24CE45840322912F2288335AC78402C2CAC4614B93A97104719A68963696A82477DC43A959A9AEB004AD3016AB18A33BCB3F61F731F91AB66D61867A94B2729C01C3D50737720249406333ACB1DAE84C9EEB89935770F4970A8E4B7B83C12A1E44C3EB360B42E77BD4435FB6F65CC14B894C387D0445AF3F28CC2434138A07A667E5AC6BBBA72DC3B7EAF788D8621DDE4034A430C2DE165B313733E2DAACEAD1A014FB09D5B834411B8325728EB325B12310992012A7C4E05DBA5017A59BA9777A9B3D5A681F79252E1C15FF8593BEF7CD3C059153435BEE16CD2B8433EF80BB21CBAD40C6B945D7B6DDAC39D0D0B558C7A42D9BCC701AADEA5707F77498D5527E4F0B0BEE834946302191D06F46116A77B884479A75A585A0C2105343584AEEF31BD8A7AABBF669A2B2518F3805BE390159B974CE43C83EF68B72024A42A942D8A03FFC5A5429265214B68DFD4AA094EC4E1BDB6D8295C36CB50FFFC35C6A8B95172A0416130AF7560EF1020CCF09C400101705EC1305AC95CA03143D22C93D72BD07E83AFCA94EC379142BEA095C754533D802183A9B3CF2796EE2988184076D6C2235F39D250B080750762A0A31FFD26130700F6799867CAB43841AB906377EE5BB48DCAAA3BF79584AF9360C937FC371C1DE16BF2BA57359D060328A8CC01B948ED14197286AD0E8ACEF142DAC64B4FE260CF066886C8CA9292BA2B3315A2D719C53B7ACBB5125BBEB8D3DF4CAAFB08AC54B8AA2816D3B44630623101F3B69E15C32C8E6912D61CDB2602734B206863C9B488431D72000E59C36E031471BD693E238314BC282DD8B4702D334E5985A8E89045F40652300A9DFEACF0C922E5B631F00C434085C5DAC53BB4637C624C80DCD59A2205C8C5717554C114999E79B7EF020B7961F007541D009350BCC427AACCEC0B0C9E3656214255689B24AE3CC874FF7C0574B09F0D8223E4C19CFB381A8C72F7324AD9E600669204B2590BD9FF6A589D26E0F2BBE575C39CB304ED5C8B692A17B65A7A27623144E7248EEEBC4AC80239DE04E8B3928E750A0BD44C30315647B5A6BF3E5955971C9F62B44EE01221EF93FA76843BE32408563C111447541D98263212CAB014E7897AFBCA8618A27B56BB9725AA1B711315E30AA445537BF02A201E5362E6B6B82F52506CF8C1E82F7912612B6E9126B7E725B30451D2001B76CB575EBC847DB9B2A048277202B1434F9C936DA846A6773DFE4193D019C7A7601FCA114737559DF7AAC095849692831156A13A9060510E05BB9F48A01506A08F63CA5CB4B032962B6D484E8CB742B0709023B9926562BC83C72C047833E27760D6A8A8C559A096600254909DB3668B0E2C8BBAB67413827A2C808BF6C2662553B4D9166A152931F30031FB15822C12462B714276C743B2691E69321946CAD96F9BD71982F47970FCE751B013630F5AA90334C657D286F94D325333B64C6BC9955E859F8C51C1961400388BB9DE91FBF4BAFE8853B1CE98E9F1076AF1406458B00CCF021DA408575E126D850A3A1D51F31069194D65C4DF88B94D8B43A4B6EE651654D6BC72B8C283C49093EB3B1DADC9BD329B11862542DA3B770657318F13FE4B07B1D22482C0410652A3B52C2216F3028FA47C3E5934C3540B644A282729196CA366E1064BF5E57AE739229E3F092C3CC91E8E833C4E314B6CB91E6873F35CC4AD2B60281C862B9D0CA89AA0966713CA0E973A766CF303AA1082266923CBA1CE7A91964440D43878FD359583C6DE0F5C6C86424A1096D5BDBB843990F0B8285681BBA7AE82008A56F992267133B7BD1A55F0FB37F84D6B2609CBC49C968925069AAB3498FF7C986F522B0F2A1512A8CB5A6BEBBE62F28901F2C5073896381255912FC482E9EF57132EA5F5F61B36A5A17366CC924D8859338CBFF9782D168618AD6A7E53446BC7BA73C86B8AAD129CCD6C796B2883FF989650C04AF16B339EC34912226F586286A553DB3362C5E1056A369B22C1467CDD4A633B03585F82116510127AAA1459B2DFE049E6F191DD7CB4D0A8AC5DF064E64B9021440357C4562302BB0ED0A6AA94BA1DD55A50829A574007608BC61508A0F17D41DC3BBCB8E91C4DEE25D2EA4700D905348026046450AD0C2768AD72EB0B770D45A7416C041160170B8511DA2958F44C9B06060183BB37967282062E0A93EB5BB4B2B15A4152C6F19B730B724F94AAB64B60B7EF5080B251AE0290746C249B1A76C96825653A89914B1CE70982D3CD437837854C6D28F871999073B1C2024088F9B8C1EA5C3F4E86DC76AE2B345932A0E7025F8CE6101884469E31AEACAF4D77E3F1201BC7526A1B77AE8A807E9DE16A9EDE5DA5AEC3CA5F23F5EA00E455D4A091467E6AC6DAFF7ECFE33EFE4042A44F2F801170616925BE8CCA1BD1812A7335DCD80F9CF14\nencap_coins = DA9C015B918108C1596309FE0042218DE4C31900B8DFA6C1CEC28AD10988BBC7\nct = 707E5B831A86D3622A2FB3D61B9600BFF5CEBFBB43958F4B2B13BAF71915ACCA275DBC994A52F5F346488B44A0E3203EDC35352023AA01C1C1A302CE81B16BBFC5AB6B3E343D2DC132C6DCDCC1241F71270AF67818C329F8862D2789B2FD27CC33868371362832B2AEE9A2E16B19E3BB3B7A8AA70B34F3BB5AA28B5236C41A7DB6135B1D39D0FC2A6308F31B7F49FE2D8CF4D0FD97F98FEF25C6B85A2534182CA4609CD490734D6BC1CB3C48889BF92CEC0DB3DC80D4489AB88866A025C1734ADD26030C8CEDD7114C534F30F9977BB36DA2FB53C0D379B6F05E7FFBBAD6087677E96661AC5C1F88830A86FDB9997FF12B961C0363BCC89369D6F86F8995FA79A4E342A2774F0BB1F368EAAE47DD3F9A9AF674311A8ACF19A3387336114C7F90861A1DDF2CF3CFFA30540BF0302E4BE0C0DF89E833FD4C328443E9525AB5FBF8DDD4B9D91652AE171ED15977E9DB96C80C23C4A4CC754DC141D6A1B69E8DC20F593530F36DDC95FDCCB347E73E36C512CBCC95FE350840FA393B545519110A729D9C4E5495D6B833D96196AD2016A9418BB3FAB8AC8D457357EEE05C89824C9031C63BAE4DE3FC52AD3D43D98A8D53BE1587E3AF4F9738755F18E2334", + "6B7F176A0685C49AF4C6063B2CA4FD37EB8EC9DA7425A89C841AD1C51A23F525FCEEF8F3EC1FED63C914A3F5424A933C1DC3AEA1237E8AC6D39FCE95466D91C59CDB4C12320FCD2F4522D07340CBF38F599D9B1B061F768F31DF98E64FB2F1181CC2F47ED79D43000F84083C605D20A895631163AE961BB55ED72AC93C5F52BF007CE19B9F2F5A1BC6B99EFDE60191BFB01FDFF662F13AC64B8D91066725721666AACC7ABCBCA07FA685FAF8A33AE4BFEB9035E87A7E0A4E8831E0030F8291B7A5F0586594E876E7331EC7FEF6B9322D4583FB1B38262A7E5CCFEC658EEB0B698DE9CE3367B65ADEE5FC3B9EFBE3C2DB5674F3D6416745049F758B7E347EA9AFB47C80A4731EFB7F6EC51308DCE0116CE313E77767E60BD60DC3E56583450D8CAE3F008B40F0E8319E91AF882450552412F43F5AF966EFF87DD7B88568AB701DBADD400AFCE440EADBC7C22B6F15265B90F2092617C2410DC21BD18F0E0353A5B8826E9A67A23744FC51345E8FBFF19FF308E9066FE97AAE69BBFC382D77FE8B32FA78294CC8E55512F3254204DA47135482FBA3D9124B569BE55DF1A7FA397237877BD3C9C48AF38DD881A11672503C21F644E1FC2B9971DD996545E8743EA36F4901D39B26F27F46CA421F2455A4E8265880935E128E9177DC684F769C6F0E95259A9F49E93834DD56F71F476E9C107AE149959F6E4471287BB8D6A8B4A90B6B2AC24E9EB6DD7B62A8C46BADB15ED6C793DB462A7ACC6839214666D3011ADB0058299F5569B09D279A9A49774CC20DF910A47516A611A6ECC8B29844ED8B51AE904C2522CFC0F400A0E1BEE691F8ACEA7A832E4FB934E2E59B3BD5DBC5E187F2E33ACF8146BA621B71FD19F3ED93866490CD872B0799E4BD53E24309E381BEF0DBD39DAE0E95BB7E4091051952E0321DD15B6394E439AED49A00688F4B59421FC55BDA840AB1C2095ECE155F2635CED4F243EC2FC4C6E1B063D77B98728A5EFE5AAD536B74E44F1820E891E51F96B4857FD5299A21967E3194A72A20A626D6C2D46A11D77A33A503B3E7C8FD137F0E5B3287B1EF79A9B2896F980C3309AB89AF20EE0B085969EB5B218E6120AF373DA794F745B765AAE8DCF5AC4A620377E07E7E1690019FA31117F7709A971B55B0043618B14017160AF387497B7CDB74DB24B2403DA2DE7798250E0CA19760FB9A6E9BA8CEAEBF9CD8F0D17D666FB8F4D397AA274AA65D494EDFE30AD54E72C2EC558A53BE7CEDB75992969C076D3000FB952B6C3C9D2B578B5785BEF6C3199A6CAC4E6F833DDAD92D7A9D69E3583ACD488B66AA36DBDED12ECC56703E5D698AE8C02AB472E10853211C99743D9F8C7A2CDA8DA2151E7BEB73B810AD846E49E27D07B903E512C318E86F4CBD04DEA2A74D227AE9B5C22E0C430294F4A80B63681E2524629723BDB4CC32DEAAB749813545ABA72E556B341DFB14BCB42CEE2C5D1E84E1F5004B33ABF7743794A63E8DF50E6C56CEA94D894DE8B0BDDD8E4B5C3F43E97C189A7F3F92F0571679050AC6910D1BBCE26777339E5109FBB46611D6FE89A92F5BA2A1ED937D2C068E7250C7C875E2D9301\nss = 68E8D5D0106AC7C233E2F785C44981C21303C409785688D8BE540966263E55E8\n\ncount = 99\nkeypair_coins = 195D6C86A3DF4C21E3007D7F2768B43C74CB3060E0ECA77F0A5D3271542B9A84D375BC4FB24E98F1EAA01E50A588E96A2B26DAF9421437313FC7E4B520387050\npk = 5064909F424A15515FBF534B4F660B09E9146C40AC273822EB116AC60782DC519805C41F39A306D7E21D0FC2264B8BB6637B113144B0D459BA833965D3A39C51355416F672B25811F5F2CE8CEC777BA322CE506823D6005D1147600808CA3C4D344A5F9D47336254766003341047AE044691650C907D937E5DAB543F767FADD988E0BBB7EFC25874D5190B893039493204F67E11560E49412B484781C571324F76218976A1633BC4CA3C0A6D8211C6C0171E0993BAF46406F8B85FA0C7F0551B74AB81D642C634EA74B269837E2588228A8645764A2B9A7BC2A802682B22C24C2A55439D14D12E620363271A4468FCACFA8BA686F1BDBFC70CA9C0961F9A488B7962B8C718B9E7A33D8B5306E6A05616C2A1484AA044200038624F65B8A92BA4739C714AC71FB8F12AF92C5CC06C2BB59367C5C471BBE6099D1B19C9BB1AA168C071DBC6E01C5C72FA33171C52B78C1DEB32134DD8AF5D147BDEA32DD6C52450C112BC5A0D9E03B06D807173304972A9866AE4BF6B053D98680858671CE1F252293972C42C4BF6EC2BA9F11BE4325C34F89E7D500DD749AE3C845F7D56815F11A2FB07B9E3F88CACB51E2ED258CF5BB981B089CBA18F902C14E04503302CA929319645154CFA878CFC777F2093A00916A617B6086D973208883ACE08270EB16BE4EC404EB2951BB1AC825840BEE09EBA19A90B5316AB79C3AC062C07F45782F4CCBDEAB590196F8436A8EBDC90EA944C50E842342A5A558AC8E833908C0577F28A15E49863A2139DEC116D99374236C8A7169053FA716756299ED16125D699C39357133FA49FE0DB960A8CBC0ADB979239B64A7B3A702878FC1610868790ABF3968873AE5DC19020B28F1405CCA1B0800EF236E020AED6157892161B54BB3D14A4C64FA1AB949648020CA86064B17FE8B3F7D915C72A68E2B46F16267B7598BC112537B7681EA2BBA503D8A62D55CD76E6579BDA3E032399BA2CA6CF0B74CCC51F9A5357FD4B92CE4906183C0031727C7A966BF0C485A9312F7A76554A35C065278860396C2ED4B0B44B85C3D7C16C65C33FC2033C04294A91323F1602A6DA351F0A6E478264E0E4A6ADDA77DD6A2535A748DAA074AF31AF028509F2C27F15F00E60E72F7A7032DFB99D50C88814167A838758C2685243839D8AC19E76133B40DAC70E49B33FF83299862C3496999DFA90470B7BB17BCD14019B093B5787ABADA26700A83377AE57173FE528D6DC35EFE846D95933D68144EA3ACA554CA0E873BAA6BB926D70A09306621B3705942B4E0D60CBF200C10C3C4D5F7C8C75899AEAEA40CEC8928AE25BAA2C7F139392221CC7042C05BAF58371010492BC2125D27A9BB01A28A3855C98B894D4165689AF39C0A26A6B920874728D475DAA731940457B24199D11841D5BC369962C1CF3920B6AF974B3150189919959C3B4E556C56FB22E5597B64506575F6799DD86CB0669651A1C017C8A74E5F63CC60B9047B21DEE777DF6010BD6A614F9A63C72074B7909137CB7155FEA72BEDB7428E0B197246AF69121E97923F861AF31F10249E11795A180C0C6C056D58D848A62370278308C4CC2B466A8D7231456C06E4B9F1FAA65A8F0113F99238C52AE3C3A24600C4E943947C8C653C946BBF6B4CEE89646AA23AFC7B22F0D45464337A90A7C22CBDB4449B24D5BF3C070778773B92055206CA895105E264C9757918F6BB76BFC93DE826C61C77B6A51B135915235271FAAD3CF608C0033B2581FC522965257EEF576EBF7379A173B1B269E27648189696B30346D5202B560784777F88ACA2C9F900344EEF8AA0CB4A86ED6335BE29B91248780674BBADB5B11F967A663C2F9129B73EC584C50AAAE9771D258272198261F362D93830880E4B60E4B142B3822816501C89B5011681A5EC2BA2B03CF9EB1886C33C1C72CB6061B10638931E5F1461F413E5766A7BECC59A052A0E221C6419752258955DCE743131890BAB88B8DCC5738EB6F409C1C0D888DE1D0C5A7BB03E80171C2B41DFD411F74B5165804B82EF473BDF5CA37983CC1047FB5A4A34598C8A98A5B0EA78FBE27B9929753B89A6C9F2C7D0677ACA4E296F0D975F2F5731D822627C1964EC1BB1AC7452BF0C5C0735D6F75304EFA4410E4CD20557B574CAD1674395436203DB728A58B8E0B95183C10653B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B8\nsk = 55873EC8C5BAC259501E025FAED327B9B659B0810E7D43B8BF7A25A8C1A51062CFBC9BBEAB182747196797913398DB1C1CA41C1CC3A883400A29797AB4CBB553076C204167AAD2208355279F504DD9A476985362898B4E423821CC2642C335C3C953C866451CECE03098D5A2AE366DDAE1A06E05547E1C0C0667CC98494BFA778EEBC5CBACCC3038F93B82E57F814799CB7A921FB14042AAC83A1B4897BC6A15C87FC94144828966C49B6CB8F842A3157B60D6B3271C3661529D8A93C7DAF7B4DE1396308C0CBBFC9F984617CBB5B1825C88BDBC4C74C58EF3D54D089613A6A431E3A59ACF4201FBB6828DB0061F1BC514DCBFE72023CF8102E9834D5D6BBA8A354FE04C6008B37F9B07857CDA1238F5A562F288F3217FFD1A1BF8B2A0FCF3AF0310C84BD6CD805C246C4A227C9BCF963093A9755CBA968E7C06CC4F987B516171461B69E013076CB652C2A0B10F1B0FC9D6B583A929FA3905BA4B6B41F19D862C82B5F170277530A278773FA740ECA749C00A61735AA1A27719CFB75EB0768956718239F43239E25A316339DB665EB9784AB581137D020B992782956522B824B3EA4CB540A4B12AD7C512046711B0463F779E1279BCD2B7238580C72DF6120850376DB48978DC717CD1424D0B5E7331B76D0AC0B024C6283C8418E5B1A7A297AA483E5D2A65F2181EDE32C69CC4B9A8C4C0B90BB17EC06336D2100766AED931876CE45435B5662DD8A5B9F545292C870A16925546AE0CECACFB737647504EA1A29D13E0BC2D060BF7480345051E9379CFB0F901B9A426641802E5522FF8B199439026B123CF9B5827FFA147567912C46C88CEF0B41D9526D227A72262C0E3B3157DC4898E07CAEBC8038142B5172A799B8A6DB0F7703730C98E1957FEF13D5D7B2A52945EFF5C4337B6CC5004BACBB419BA73568AA357F61C70383447C6015A5896B9C0C0A2F2C7A76D940278D736D6B685F4FB3CC392CAAC1830B439468B6BC73585B4205751E55103099986308702A477588611A990580D88657024FA6D371550141405A8240109824788675D2546AFAD54628E93281ABCCAE4EAC11D200AA5C40A9E440D9F2A40DEB31C2688A3266C9E16B60461087DA271A1973374C99693C8111F9D458F92AC3208268078B177C818038305AB421B6D8297063061BB36F1318BB2108163A723A4BFC3C2A25F958F28B2B806A15E4310B8852103843C8AC26C7773084F1F82151C52083E69772A049123027916F039FD08713B98039F3B84CC83A8F88B2C19F48A958A443339A5A2158DFD7A08D11983601A1892A8C1152C602EDB1592C3AE555B2EE54C5DC6020C0B95626FC06D85D78120AC135FD369DE6B6AA902BB015A7BC3BA13A7391960C533D2F1A6278494E78B6A3C5B91A2B1AA2A0752E5C0A30E33CC86DCBA2E3232C98B9AAF1BBDF9E825B15A6DC3A741D43A53EB10AD18E93541E224EC5A952D673984990AF0D81577D1BC83B09856794D11707FAAC63A1E49A799224B51464916BC07F0A69F06F26696F5806E92CA4ADA050CDA48A9C90635A9C68ACC753A711115C35488758A68256A32F4964C431D50C0A8C5053D1A41126A952270A309F69931C32194FD201BC3809DB548A0005585081C6B11DB7A19E14F9A4777C5C12B35289100D979E5B5B306C6692136A839CA4DDA2A1E9D3BB3C418A732EC4997D124B7D6CB4BB090C0F35AC2D206F2B1B19DDA1929AC935B2CB24E320EA87ACBCCCAC6D4454B8A183E89E8738DC645F50239232BA5EA03BAA3590CD29C05FF4C33D8107AADE2104BC879EBAA431294B201E2B589647C29", + "C66F7F3677EC30BB1BBBA093B60ABB147CDC07748B098EC1F83855464B1AEBB41BF30F4CEB59C41C24701A39DC74B44FD8505980C1786275CF16272A29C285406C70EAC1DE5969D459CE1F211C8A47BE727A57A772566984452E2B2EA96ABAEB3A0990B9A7FBE5147F6A438E27A3624355B97C7140406D52870C421754886ACACCAB09B2351AD28716C476B61D7C9082F8CD81D31554F334AF75030C4075D2965A9DF37AF81A4588AC0241183247C5047BB81DFB6BBD7252993D69CF5660ABCF2AA5C9787F10C02793E9BB1CCBC3761B25759A38CF2C28ED1CA65700112E540EB4B0587E036B9502223FB95E2815A5E6F9C384369C24B1A962C4B05064909F424A15515FBF534B4F660B09E9146C40AC273822EB116AC60782DC519805C41F39A306D7E21D0FC2264B8BB6637B113144B0D459BA833965D3A39C51355416F672B25811F5F2CE8CEC777BA322CE506823D6005D1147600808CA3C4D344A5F9D47336254766003341047AE044691650C907D937E5DAB543F767FADD988E0BBB7EFC25874D5190B893039493204F67E11560E49412B484781C571324F76218976A1633BC4CA3C0A6D8211C6C0171E0993BAF46406F8B85FA0C7F0551B74AB81D642C634EA74B269837E2588228A8645764A2B9A7BC2A802682B22C24C2A55439D14D12E620363271A4468FCACFA8BA686F1BDBFC70CA9C0961F9A488B7962B8C718B9E7A33D8B5306E6A05616C2A1484AA044200038624F65B8A92BA4739C714AC71FB8F12AF92C5CC06C2BB59367C5C471BBE6099D1B19C9BB1AA168C071DBC6E01C5C72FA33171C52B78C1DEB32134DD8AF5D147BDEA32DD6C52450C112BC5A0D9E03B06D807173304972A9866AE4BF6B053D98680858671CE1F252293972C42C4BF6EC2BA9F11BE4325C34F89E7D500DD749AE3C845F7D56815F11A2FB07B9E3F88CACB51E2ED258CF5BB981B089CBA18F902C14E04503302CA929319645154CFA878CFC777F2093A00916A617B6086D973208883ACE08270EB16BE4EC404EB2951BB1AC825840BEE09EBA19A90B5316AB79C3AC062C07F45782F4CCBDEAB590196F8436A8EBDC90EA944C50E842342A5A558AC8E833908C0577F28A15E49863A2139DEC116D99374236C8A7169053FA716756299ED16125D699C39357133FA49FE0DB960A8CBC0ADB979239B64A7B3A702878FC1610868790ABF3968873AE5DC19020B28F1405CCA1B0800EF236E020AED6157892161B54BB3D14A4C64FA1AB949648020CA86064B17FE8B3F7D915C72A68E2B46F16267B7598BC112537B7681EA2BBA503D8A62D55CD76E6579BDA3E032399BA2CA6CF0B74CCC51F9A5357FD4B92CE4906183C0031727C7A966BF0C485A9312F7A76554A35C065278860396C2ED4B0B44B85C3D7C16C65C33FC2033C04294A91323F1602A6DA351F0A6E478264E0E4A6ADDA77DD6A2535A748DAA074AF31AF028509F2C27F15F00E60E72F7A7032DFB99D50C88814167A838758C2685243839D8AC19E76133B40DAC70E49B33FF83299862C3496999DFA90470B7BB17BCD14019B093B5787ABADA26700A83377AE57173FE528D6DC35EFE846D95933D68144EA3ACA554CA0E873BAA6BB926D70A09306621B3705942B4E0D60CBF200C10C3C4D5F7C8C75899AEAEA40CEC8928AE25BAA2C7F139392221CC7042C05BAF58371010492BC2125D27A9BB01A28A3855C98B894D4165689AF39C0A26A6B920874728D475DAA731940457B24199D11841D5BC369962C1CF3920B6AF974B3150189919959C3B4E556C56FB22E5597B64506575F6799DD86CB0669651A1C017C8A74E5F63CC60B9047B21DEE777DF6010BD6A614F9A63C72074B7909137CB7155FEA72BEDB7428E0B197246AF69121E97923F861AF31F10249E11795A180C0C6C056D58D848A62370278308C4CC2B466A8D7231456C06E4B9F1FAA65A8F0113F99238C52AE3C3A24600C4E943947C8C653C946BBF6B4CEE89646AA23AFC7B22F0D45464337A90A7C22CBDB4449B24D5BF3C070778773B92055206CA895105E264C9757918F6BB76BFC93DE826C61C77B6A51B135915235271FAAD3CF608C0033B2581FC522965257EEF576EBF7379A173B1B269E27648189696B30346D5202B560784777F88ACA2C9F900344EEF8AA0CB4A86ED6335BE29B91248780674BBADB5B11F967A663C2F9129B73EC584C50AAAE9771D258272198261F362D93830880E4B60E4B142B3822816501C89B5011681A5EC2BA2B03CF9EB1886C33C1C72CB6061B10638931E5F1461F413E5766A7BECC59A052A0E221C6419752258955DCE743131890BAB88B8DCC5738EB6F409C1C0D888DE1D0C5A7BB03E80171C2B41DFD411F74B5165804B82EF473BDF5CA37983CC1047FB5A4A34598C8A98A5B0EA78FBE27B9929753B89A6C9F2C7D0677ACA4E296F0D975F2F5731D822627C1964EC1BB1AC7452BF0C5C0735D6F75304EFA4410E4CD20557B574CAD1674395436203DB728A58B8E0B95183C10653B5487A4CE6401EC27A1605F879E2D9C53BF27E165246401CAD7840A077934B82460170E6CF1DA1E7B92037F51B4E7674D9ABF74F5C225C5C6CE16A971691284D375BC4FB24E98F1EAA01E50A588E96A2B26DAF9421437313FC7E4B520387050\nencap_coins = 05874F9D5A2E9133D385F3326FA925129DFF03359D78B0D07ED78FD5C1307800\nct = 1676438E2F1D8686CAEADBF5FA4A3C83D252607B015EC7D7138C75DBA8A804BC3F0E284BD4FB1262481DF6565C4EA5B95B45916D6159D06D6BDD05BCA2840490F823C2323E54B583643EE311C97FD37F78B0E6F9775BBCC6F11974BF338A864C5ED8F36111BD6D69221CBE27029F31C12D40D117B5BAE93DD0E724C23F98CF69D7C990420E57E9DED2DFB2784E81F5A6FD92BCC95194333835FDBF4A08CD969AC1010ACA6FCF174F3402AD7C1F9E9400CC595BC73C7B9CCDFB33F59C5FFA700717E250C209FB29C63F9290297D40865338AB9DC942214B10A768AE82944980290C56B62BC1121C9D8A651A61AA9CE1C5578F0107DD952E325718FF08B62525B611454A7478A3548C43EAD4E14F749C94A4B06F49F8C663AEF035140245127275739091E381114F5F04E1B8901DAA131EBAAB0C8578721F934633CF47943CAD178EF9EAE9FF526825801E455266C296853991E457CCF7E68C5E36A666B59272DEB94630E4754F93C57EDECFB58D07740D8042578256B490849933FD6954277C0C8EB920E0ADEA2815D85838D81ED6A2F74CCEF832F9BA27E2D540DBFD4D45FD0BAB681C8552AB4D36D3823D7BC73F708EAF51A04A1552472BB4835E93B4E81FA0448730F8E4F10764242C0BB28206AB726F0E999E13B56553FCCBFC0A47CCE27A66C421AB52BC96B679BCC60F91281EA7A739A3880C37B1B3DE7C8B08BD5D699059F57020D3B1FD0E3D86C856A938658585BC9FD296CB633417FA30DDDDA2E164AF5DAB1A1F736C307E0E9EBF6901C92D9EBEB6AC37F59BA91F840552D12CAAD721F7F9A240202EDDE4E4CFCBA422366DEBE68A48D140B095F520082162AF9993194161157C1C7A2ACBAB57A9885EB08BED2E023759C381F2BB1100343BF09304940637BAEC307C4AF146F4A2F842E17077C1DF2E1821B9687AF3E965CA40B80EA089F54531D48309C5B7F11A6B256A544BD446FEA578BD1185FD3EDA9F42841BC64B792A01EDF36E6982E780012E36B4831CCF857B7C54A63443B747058EA132DA2143B323003C158271C1946D64992C2B7C3D3E113B4E6CD005592CCB3FC49AC0AD055C7627D2261EED10BB4A9FB13B09C01288684CF2B32028E9FC9A7DAE2D6810040589BDDD71513E28275E86DBFD118BA4787BD8C078EDC4B90E8696E085003950A7B64E171EB5B3DE01A99C382C299325A81FB4E1598F97C4302600F46EED602430C8A92EEADF8A88C449787B53071B1F5F3CDECBD10653F73FBB976DE0165755F5DB4218349AB24D16A15EAD983D0F11EBC8E93402C02B53EE650DE56A8628731241150F4D02695F26383D6558033B86475E5C1E2320F8B8A00CA1D7918797054F82DC009872E72AAF615B8C1162290049AA2196D080200F1281B0A0682B0A877B6250F45D142137A6E6E7BF49C1A7BFC4CCEA66ADB4E7A8AD713D9473ABDFDA0746F914FFCABE71508FDBD2D067E367148C06D7800DF5F82B87378F3B2D59D4893644820FB333D67E2CF18745688401AB72B11DA59DE5DC449B207C33F13C9BF68B9678AAA44F360C09C15C9EFB902735B429C6ED5B9E76BCD9C45187ADE4C18B0A7DDF33E984E3BA0E9BB503FC680D2EA6F837B0F2A7D097536E4517FACFA85D002089684C71A8B626F6ED1BF99C9DD5EB56395048807F3092061551B84D2EDBF5DFC8905F6FAC3008C3B1041D9BBC98E2051422AFED0E2D52D7C48BC80EA57ACCBD45DBCA5DE698D38F0C6114379EF0E9A7DE5DF5E04281CBDF62C5321CE2A2493EF0D3FE5B18B2CB3695763CF96E16BEAF394F0F548D085E34EC4FF728B66E06B44931A197F9159874A23765F9971644E4C5F374CA749B2F5F796257BCD03755E1C1C80FDA26E6907F7291DE61A28A7D55C710A47BB1CC57F1200A30411F5106CF1300678D39BE9C4E7F195DA7EA8B93BC02A0B27D366A51657C61EF689C7DFFE2DB27AA58ECF960920B31283D2DB337BDADA0CDD95D0D51DB029FF562226B9DA7393685598CBE461614B701C6C7E1610C49634C92536DBDFDC12DC6D90852DC18459DBC7C19291ED87BCF8B34D50EEF28FE6E88429F2B4FD875D703F0977E29E2E452F70D08EEE25D5CF9414CD0CD704499D2B68FC5F166D6280659AB4F87F277E7032EBC407896227823201D886EC980427ACCA498CB94D9C5511AFB66D309C9184989690E4F3239716FB90601AA01F47FBCC32828470326A5D7\nss = BC3D5BFDC91DC7CBA649CFEA9E44A56A96E69F1821D6A4A8232A7789349BEF01\n\n", }; -static const size_t kLen90 = 2156; +static const size_t kLen90 = 106; static const char *kData90[] = { - "0\x82\bh0\x81\xc7\xa1_\xa4]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0?0=0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\xa2#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10zu\x1cw\xce\x38\xca\x9b.\x84\xc6\xd7\x06\x1b\xb0j\xa0\x82\a\x9a\x30\x82\a\x96\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\x41\xeb\x63\xe7\xde\x9a\xc4\xa8\xc9(f*\xea\xd0\xbf\xde\xd4h\xee\xc0^\xed\xcclT\xb2%K\xf7\x8e\x38\x9d\x89\x62\xbbj#c\xb5\x83\x34'3\xd4\xa2\x8a'\x85_`5=)\xb4\v\x05&\"\rk^\xdbM\x84\xeb\xce\xaf\xe5\x98\x31\x96\t5q\xb3\xce=\xa1\xec\x62\xb6*\xb6;\x98T\xf1\x96K\x1c\x93gR\x14\x80\xbb_\x01%\xf3\xc8\xdc\xe2\xc2\xdaH\xe0\x44\x9a\xb6G]\x1d\x11\xd1\x95\xa6\x96\xbc\xd7\xff\xfe;\"\xe1\xf5\xd1'*\xc7\b\"\x18\xd2\"\xdb*;\xd2r\xfe\xe4}Z\xdf/u\x03\x91\xb9\xad$#\xa5\xf4\xf1mqU\n/c\xc3?6\xa4\x1d\xbb\xe3!|\xaa\xd7\xab\xdf\x11J\xf1\x16\x98\xb4\xc7\x14\x8f!k\"\xf5\x91\xdb\xa9T\x06u\x83\xfa@*(\xcc\x34pX]]l[=\xd2\x17\xc7x>FeN\xec\x35\x7fP\xaf\bX>,\xe7\x80\x7f{\x93\x9d\x9e\xa7\xeb\x97\x42\xc1\xaf\x83\xbb\xd9l\xbd\xc7\x64\x7f\x64\x10\xfaj\a\r\xf2\xc9o\xec\xb1\x88\xc9Z\xd6U/\xa9\x06\x7fQ G\x1f\xf4gj\x1fk\x06\x8e\x88x\xa5x\f\x06\xea\x16\xedo\x9d\x91\xdd\x44&q\n\x16\x82\xed\xc4\xfc\xf0\xb2\x9c\x39|2\"\xd8\x84v\x7fw\xd2\xe6X4\x9ds]\x91\x82\x8d\xc7\n\xc7\xe7\xff,\x13\x1c%\x1f\xf1\xa3\xcco~\xe2z\x02\xa9\x01!\x9f\xaa\xf6\xc4\xc4s5\r\xe3S#2)6\xbf\xc4I\xad\x19\xf0\x12\xb5r\xdd@C\x9a(\xcb\xf3\xb0\x0f\x88\x87\xf1X\xff\xf0\xe8\xe2r.\xed\xe0'z\xb1\xc7\xa6m1k\xbe\x43\x8e\xcc\x8c}L\x99\xcanm\xd6\t~\x12N\xd8\xd9|\xeb\xc9R\xf8\xc9n\xfc^\xb2\xa1\x99\xbf{D\xb4j\x9d)\xdc\xcf\xd4\xbd\x34pf\r\xf9\x14h\xb0\xb8\xdd\x1f\x43P\x84G\xee\x88k\x1d\xcf\x16\xf9rl_t\xb5\x8b\x42V\xbd \xe0\xd3\x30\x85\xac\xa3\xf1\a\xdd\x66@\x9b$\x8d\x83Y}\x91\xa2x\xaa\x80o\xf2\x94s4\xeb\xccU\x9b\x96\x1f\xa2\xe1\xd3M\xe9\xe3\xc6X\xf7\xc8Y\xcf\xa0\x82\x05~0\x82\x05z0\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", + "0h0f0?0=0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\xa2#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\x30?\x12\x8c\xd8$\xa2\xb4\x65\xf4\xc8\x46\x88+>\x1f", }; -static const size_t kLen91 = 2184; +static const size_t kLen91 = 3496; static const char *kData91[] = { - "0\x82\b\x84\x30\x81\xe3\xa1_\xa4]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0[0Y0W0\r\x06\t`\x86H\x01\x65\x03\x04\x02\x01\x05\x00\x04 \xbci\x8a\xbb\x16!z\x1e\x0e\xc0\xb5\x02\xc3m5w\x8d\x64Q\x8d\xd9\x46Y\x97?1\xc2\x93\xa9(\xf6q\x04 \xa6\xeei\x05\x46\xcd\x13\x98\x38\x93\xf6\x82l\xfa\xd2\xba\xb0\x96\x62\xed`\xff\xd6\xc3{k\x7f`L6x\xd7\x02\x02wx\xa2#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10M&\xb6\x11\xc3]A\x9b\x8c\xa7\x87\xa6\xba\x1akv\xa0\x82\a\x9a\x30\x82\a\x96\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00_\x8d\xb1\xea\xbb\xa0\x61\x1a\xf1\xa9\xae\xf4\xa0\xa6\xfe^SIq?e\xbdv\xa9t\xf7\x93\x98N\xe3\x9e\aSz\x06m\x1f\xd1\xc1\x0f\x84\r\at\xdf\xbc\x41y9o\xb7\x42\v\xf8\x1f\x38\xc8\x16\xd5\x44\xa9[\xe2\xcf(\xa8\x95\x62\x62-[\xbf\xfc^`\x8e^\xee\xa1\xe8\x66\x87H\x13RP^\xf4p\xaej\x84\xca;\xa5\xec:\xbe\xc8\xc7\xcc\x13#k\xf9\x1bI\x8e.;\xafg:\x03V\x15\x89\xb3\xfd\xb4\x93\xb7\xa6\x18U}\xad\a\xb1\xb1\xf1\xbf\xc1\xbc&\xb2\xb4\xdf\xfc\xed\x88\x14z\xff a\xa4\xac\xbb\xc9\xac\x88\xf4\t\x92\xc3U3\xb8\t\x85\x03=\xe5\xbf.\x04\x34\x03K\xa3\xa7\x62\x06\xce\xee\xb0\x63\xd4\x13\xaa\xe5\xb2\x18\x0fw\x12>f\x0f\xb6\xb3\x93\x66\xf9l\xbd\x66\x42J\xce\x19\x39l\x82\x05t\xc1|\xde;\xe4\x65\x15-\x93@W\x87\x62\xe5\v\r\xf6;\xa8\x45+\x06\x98o\xf0@\xacH\x06\xb6\x8boj\x86\x94\xc9Q\x95\xc5%%K9R|\xa9@\x85w\x97\xc5\xbf\xbexp0\xf8\x35\xb2ntCr\x1c\xc8\x1b\x1e\xe9\x98\x95\xa1\xca\xbe;\xc4\xd0\xbci\xba\x8d\xfe\fre\xa3S\xc0\x37\xbf\xcd\xd2]6\xfe\xfe\x33\x9f\x30zP\xb5\x66.1t^\x1dw\xd9\xdaTG\xd5\xd4\xc6\xbd,\xd2s\xad\x00\xf5\x93\xce\x05\xe7\xa9\x01\xa1\xdd\xc1\x1e\xe6\x0f\x12\xb4'\xc6O\xc3\x42\x91;\xed\xb4\xacld\xb7M\xab\x32\xf7q\x92\x02\x19_\x83\n`V\xda\x01\xf8\x1c\xf5.`\xd0_\xe7!\x1d\xb5,\xa0\xcf\x39\x8e\x03\x30\xd8\x04Lb\x13\x89\xfa\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", + "0\x82\r\xa4\x30\x81\xc7\xa1_\xa4]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0?0=0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\xa2#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10S\x04\xb0 \xc1o\x87\xa0\xd8\xbd\x94\\J\xfdkQ\xa0\x82\f\xd6\x30\x82\f\xd2\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\x90\x87\n*\xe1\x46\xab'\x86\fvY\x16+\b\xd4\xc6\x61\xc6\xa7.X\x17j\xde\xae\x96M=\xec\x19\xb9\x91\xa6\x1e\x94\v3\x13>L\xdeZ\x1f\xd4\r\xeeJs\x86\xa6\xc1\f\xac\xedr)\xe4\x61\xc8\xd9j\xbf\x17%\x84\xa7Y\xaf>\xb2\x94\xde\x97\xa7\x9b\x83\x61\x33I\x9a\x87\x38\xf9\x1b\xa6UPaa\x1bV\x9e\xdf\x94\x81u\xb7\x02v\xa2\a\xe8\x32\x8d\x39\xf0\x03\x88\"\xbc=\xcf\x64\xfa\x8f\xeb\x15\xc3\xa6s\x15Y\xc5P1m\xffKn\xa5\x1f\xaa\xfc\x8cK\xa0\x82\xf2 ^\x8b\xa5\xd0Z\xe0\fD\x06\xa5/\x83'\t\xe9\x31\x63\xaaZ\xb7\xf9W\x90\xd9\x44\x80jY\x18\xb3\xc5\xcc\x02\xd0J4\x96\x8c\xc0\xe6\x8a\x9a_\xa1\xf9\x61\xe7\x9a\xdc\xec\xafL\xaa]\x7f\x8b*\xaa\b\xca\xd7:\x9a\xe2\x81\xe0?\xf5O\x95\xe9\xfe\x81T#@\xb2\xe6\x91\xe7\xd3\x92r\x13\xeaI\xee\x16\xf1NT\xa8\x1cYFI\x9f\xd7\x66\x66]\xd5\xb6\x0f\x35\xd3\x03\x04\tG\x8c\xeb\xe5Vo\x92\xe0\x00gX\x8d\xc9\xc8\xbc\xcaJ\xbf\x30H\x13\x8a\xfb\x89V\x01\xa9\xf5M\xf7\x92\aC\x80H\x16+D\xe2\v\x88\x9c\xe4\x46\xe4\x92nl.'aVV\x9f\xf6M\xcbJ$\x83\r'[\xa9QrW\xf2\x80\xb7\xec\x12\t\x89Hu\xdc@d\xc9\x1e\xb9\x43\x97\x8f\xa5\x34ri\t\x8f\xa4\xaa\xa3\x8c\x38\x64\x32\x05\x8agRZ\x1e\xeb\xcb\x8f>\xfc\xa8\x81|\xc5K\xc0g\xe5\xf7\xd5\xa2\xc4[\xbdI\xb6#\x86\x00S\x8e\x99\xdb\x39\x93\xe2\xfb\xbbJ\x9a\xf7@\xa0\xd8\xc3\xdc\xcbv\xfa\xef\x82\xb9\x1cR\xbd\xbf\xb6wel\xee\xacxg\xa4\xf0\xf6\xc3P\xd0\x81\xb6\xeb%8\xcckp\xd6\xdbH\x87\xd3\xb3\xe7Pb9\xb9\x92U\xf7\xb5\xaew\xf8\f,\x84\x1f\xff\xcf\x43\x32~\xf0\xe3\xe3\x0e\xb8\xe9\x11\x8b\x90\xddP|\x16\xe4\xc7^\xc6)\xe3+\x11\xd7\x90\x39\xe3K\xf3\xc9\xa5\xc0^y\xb5\xb5\x90\xab\xdb\x90\xd2\xd6\xb0\x39\xf1_\xfb$\x80;\xc3r\xc9i|\f\xf4\xb8\xe5\x04H\xa0\x82\n\xba\x30\x82\n\xb6\x30\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94\x30\x82\x05\x38\x30\x82\x03 \xa0\x03\x02\x01\x02\x02\t\x00\x86\xcd\xbd!\x8c\x44\xd7w0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905051505Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x31\x35\x30\x35Z0(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xbe\x38\n\x82\xa2\xc9\xbd\xa0\xe7ut\xb7\xa8\xfaM\x03\xe8hu\x87\x0e\x94\xff\xa3\x8a\xde\xc3\xc0\x8d\x34\x38\xbe\x36\xb2\x01\x16\xd1y\xa4\xf6\xed\xa4\x19<\b\x15mb@\xf0\x8f\xa3I\x01\xd3\x03\x13\xc5,\x17\xae\xe6I\xa7\x32\x36j\xc3\x18l\xda\x64TlL\x04\x14\xfd\xe2\x9fN%\xc9\xe5\x8d\xe6\x82\x62\xc1\x1e\xd9g\\\x9b\xdd\xf4\x8b\x19v\xc3\xd3#\x1bv\xae\xee&\xb0\x98\x02\xfeG\xa7\x06\xd3\xa5i\x91\x39S\x1f\xd6\xfa\xf9\x8dLAC=\xf6\x33\xe6\xca\xa1\xeb\xda\x0ew9\xcc\x34x\xbd\x96ru\v\xb1\xf3\x85@\xe3qL\xb4\x0fh\xa1kt\a\tt\x1f\xa0\xcb\xac\x80\xf3\xa2{\b\x04\x9d><\x8f\xa8\x43*\xa5\xec\x46\x8a\xc5\x30M}\x9b\x8b\xc6\xb9\xaf\xb2}\x13\x99\xa6]*KU!\xeen\xb6_\x9fU.\xa1\x97+\xf0\xac\xe8\xf7\xd2@m|\x84\xbc\xe9\x31\x8b\xd2\x31\x1f\xeb#v\xe3t\xd9\xb3\xc1\xb3\xa3\xec\x61\x04\xe2\xce\x9b\x00M\xf8-\"\xe8\xeb\x88\xa6V\xe9\x12\xea\x16\xbb-\xe2p\x87\xcb\xc3\x0fm\x8f\xd9\xa0\xf8\xac\x31\xa2\x00\xdf\xe6\x85uB\xf2\xa4k\xf3\f\x97\xac\x8a\xf6\x85Ji\xe3h\x89W,\xd5\x1d`\xd1\x92\xae\x1dS}ql\xdb#\xff\xcf\x45\x12\x1f\x97\x39\x88\xae\x33\xb6`xu\x7f!\xef=\x9e\xbe\xfc\xbc\xe7\xef\xd2 \x8c\x80!l\xcaJEg\xef/\f-\xb6\x9b\xaa\x46\xae^|U\xd6\x39\xf5\xde\xa3\x1e\xdaM\xb5\x06\x16\x9fPy\xc3\x10q\xd2\xe8\x0f\x1d\xdd.G o\x93\xcc\xeb!\xff@\xeb\x44,C\x9e\x85\xde)\x89\v\xa7Q\xfb\x84|3\xcb|\xe1i\xba\xb0\x34\x00V\xf8\xf2\x62\x8c\xbd\xbb\x87\xb8\xac\xb5\xd3\xe4\x83\x05\x1ch\xc8\xedWZ\x84\r\x01\x98\x80s\x04\xb7\xceo\xa6T_i\xda\xd1\xc9\x06\xbd[\xbc\f*\xe6\xf6RO\xd4\xd6)\x1e\xe4\x37[a\xf0\xb3_\xab\x30=\x14\x44\x9a\x99\xcb\xf0\xf6n\xdbO\xc5X\x13\xff\x92\xaa\t*f\x06;\xec\xbfk\xa7M\xfcUm\x92'A\x01m\xb7\xbd%\x02\x03\x01\x00\x01\xa3\x63\x30\x61\x30\x1d\x06\x03U\x1d\x0e\x04\x16\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o0\x1f\x06\x03U\x1d#\x04\x18\x30\x16\x80\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o0\x0f\x06\x03U\x1d\x13\x01\x01\xff\x04\x05\x30\x03\x01\x01\xff\x30\x0e\x06\x03U\x1d\x0f\x01\x01\xff\x04\x04\x03\x02\x01\x86\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\xb3`\xb5y'!\xb2\xd6{\xc1\x46\x8e|\x9e?\xe1=\x9b\xcd\x9f\x9a>\x96\xfd\xa9\x1fkS\xe9\xe8\xf1\nj[D\xce?\x92Q9\xb6\xb4\x9a\x90\xf7\xa1\x1a\xd2\xf2\x11\"\x86\x9d\x94>\x91\xc8#RQ\xab<\xad\xab\x91\x87\x33\xaa\xd6\xf6\xca\x30\xc4\x9a\xa1\x86\x9e:/\x1b@\xa8\x87\x8b\xd6M\x8f\a\x9d\xc4\xf5\x42\x1a\xbf\x89\x1f\xe0-^;}\xa2;M't\xaf\xdf\xb9ld\xbb\xffy\x90\x80\xbb\xa3\x9aPj0\xa4\xb0I\x1e\x12\x82\xb1\xea\x85)\xe9\x1bv(\x01\xab\x10\x89\xa9\xa0\x43\xf8\xaa\xac\x37\x18\xdf\x06\xae{B\xd2\xcf\x85}\x96,\xae?\xcaL\x97\x10@\x18\x35\xf2\x0e\xd4\x63\xaa\xe3\xd1\xd6\xf5;\x16\xca+\xb5\x12\xbd\f\xcfZ\x1e\xdc\xd6\x64\x0f V\x1fN{\xe7\xdc\xa0\x35\xe2\xb5.Y%\xb9\x34_Do\xaa\xf0\xb9\xcc\xc2Z\x1c\xf2v\xfc\xfd\xe3\x37\x96\x31\x8a\xc7\xb8<\t-\xbbK\x06\xfe\x9f\xe8#\xcf\x9aV\x9d\x1b\xc0i\x18\xa0[\xde\x9f\x65\xf0\\\xdf\xbd\x45m\x02\xda\x41\x15\xc3\xd9\xe3\x41\xde\x98\xd3\xb9\xd2\x45\x36\xed\xb9M\x9a\x9b\xcb\n\xce\x87p\x9d?\x9a\f\xfemSC\x92\x45\xf2\aS\xd2\x1d\xb5jiaI\xe1*\x7f\x9a\x8e%\x88\xd8\x10\x04h\x03~\x89\x02\xff\x8f\xa1\x93}\x04\x32\x7f\x30Z2\vngg\xaa%\x12\\L+\xa0H\xb5\xa8\xd5o\xfc\xf2}\xed\x90N\xa5\ft\xd5\xd7\x1f\xb6\xe0\xb1\x04\x8a\xd0H\nwn\xc6\xe0\xb8\xea\"\v\xfb@\xa0\x63\xec\x62\x9cG\x1d\xf7\xe6\x1cP\xfe\xd9\x66\x43\xac\x16\n\xc3\x39xK\xb8\xf8\xfc\xd4m\xe7\xb0\xdd-\x9f-vb\xd0\xa1l\x85>9\x8f\xc9\x12K\x16\x12*-*\xe5\x99\x98\x13\xdb\xf1M8\xe6\x11\x81\x9f\x99\xe2\xe6\xa8\x11\x95]g\xd6\v\x8f\xa4~\xc1n\r\x06.J\xfa\xc7u\xfd\x1f\x91\xecK=\x89\x01jI\x82\x97h\x93\x61\xd2\xc6\xefT\xea\x1f_\xaf\xd3\xa8\x16\xa9\x99\xc6\xd5\xbbs[Fu:\n\xc7\x36\x62\aX\xe1gM\xd0m\x00\r`\xb4\x8b\xc0", }; -static const size_t kLen92 = 2231; +static const size_t kLen92 = 69; static const char *kData92[] = { - "0\x82\b\xb3\n\x01\x00\xa0\x82\b\xac\x30\x82\b\xa8\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\b\x99\x30\x82\b\x95\x30\x81\xfc\xa1]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x36\x30\x30\x32\x33\x33\x34Z0e0c0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\x80\x00\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x36\x30\x30\x32\x33\x33\x34Z\xa0\x11\x18\x0f\x32\x30\x33\x31\x30\x35\x32\x34\x30\x30\x32\x33\x33\x34Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\xaf\xab\xd4\xecj\x17,J\x98\xfb\x1am\"\xff)(0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x05\x05\x00\x03\x82\x02\x01\x00\v\x8bh\x9a\xfa\x11\xe1\f\"\xce\xfc\xe6\xb9#\x85\x89\xd5\x95\x8e\xdcqK\x87\xb5\x1f\xc1\xe7\xdf\x7fY\xa0\xca\xbe\x80\xbc\xcb\xa3\n\x1d\x01\x39\xcfPS\xc3i\x8f\xb7\x9c\xado\x11w\xf5\xd3\x41\xfd\x01\x95\x7f\x14\xb3\n\xbd?t\x14\x41%M$.\xaf\xb1\xf1&\x91#\xe0\xc1\xd7h<\x11\xfb\xeb\xfe\x92\x61<\x04\xd4^\xe2\xfa#b\x8e\xcd\xd6\xd2l2\xda\x1a\xba\x9e\x03w\xceqy\xb5&,\xfbK\x1a\x65\xb1W\xe4\xd7\xbc\xf1\r\xdd\xcfN\xf0GB}h\xea\x36R\x1a{\x95\xab\x90\x0eH\\\xd4\xb7u\xb0^\x8b\xcc~!7F\xa1\xd8\x37T\r\x1d%\x89\xcdqK\x88\xd7\xbd\xfe\x88\x0e\x15\n\xff\xa1\x02\x42\xfcX\xa8\x90\xc9\x04=\xe8\xd3\xe5W0\xa0\x8c\x38O\x1d\x1c\xce\xbe!\x10\x91Q\x05^lLE\xc6\x63\xef$\xd5\xee\x46\xd7\xc1\x06\n\xb1\xb8i\x91\x37\xe8w\xb3L\x96\x93\xb8\x11\xca\b \x15\bQ\x0f\x10\x64V`\t\xc5\xc4\x00W\xd3\xca\xc5!\n\xd1\x0e)\xaf\xa6\xdbh\xcf\x18\xc1\xc0\xf2]>\xa6`\xde\xaf\x06\xd5\xa3>\xabj\xa4\xfb-\xd0\xda\x39\xa1\x45\xe7`g\x01j\xc9\xff\xaa\x61\xc8\xca\xa5\x05\x80\xd0\x18\xf2\xb1\xd3\xab\x83VC|;\x89\x1e\x61t\xb7\x30?\x9f\x11\xea\x9bP\x19$\xf5\xee\xe5\x02i\x8a\x14\x66\x14\xb0\x66\x02\x7fx\xc4\xf6\x98\x19\xc4\xad\xad\x65\x12%\xce'\xfe\x81\x12\x91\xc7WF.\xdc\x9flL\xc9\xac'\x1a\x42\xec;\xaa}\x02\xddj\x9bX5:\xa3\v{\xfb\x32\x19Hv\x91\a]\xf2\x00\x9eZ\fB\xd5\x14\t\r\xdbZ\xf0\x15\x19]>0b}\x90\xa9\xbd\xf3^\x14\xd6Z\xf2Q\x14<\xec\x61\xe9\x13\xbe\x8a\v\xd0J\xaa\x7f\xda\x9e\x88\x12t\x85\xf1\xebJc\x04\x96`v\xaa\xee_\xa4\xf1\xab\x1b\x13\xa7\x95=\x8d\x81\x94\x31\xe0\x1e\\(\xc1\x03\xf1`\x1e.\xcb\xd3\x04\x41\x8d\xd0\xf3\x9e\xdbjxY\xb8\x36\xb8\xec\xd7 Qz\xdbgw\x0f\xe6{\xe8\xef\x88\xc7\xfd\xd6\x8bS\x15\xa0\xb8\x85\x05\x0f\xa0\x82\x05~0\x82\x05z0\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", + "0C0A0?0=0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx", }; -static const size_t kLen93 = 2118; +static const size_t kLen93 = 2156; static const char *kData93[] = { - "0\x82\bB\n\x01\x00\xa0\x82\b;0\x82\b7\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\b(0\x82\b$0\x81\xc9\xa1*0(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n\x18\x0f\x32\x30\x32\x31\x30\x36\x30\x33\x32\x32\x34\x39\x34\x37Z0e0c0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\x80\x00\x18\x0f\x32\x30\x32\x31\x30\x36\x30\x33\x32\x32\x34\x39\x34\x37Z\xa0\x11\x18\x0f\x32\x30\x33\x31\x30\x36\x30\x31\x32\x32\x34\x39\x34\x37Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10u\xe4\xecI)_`\xa1)\xd6\x7f,\x13Q\xfb\x13\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\x8a\xfd\xd5\xdb/\x7fLA\xd3\xb6H\x8d\xd7\xde\\\x05\xde\x8b\x05\x62\x8b\xbcj\x88}T\x0f/p\xcd\x83\xfas\xae\xebY\xc0\n\xf4\xb0\x16\x06\x93\xf7\xd5\x00Ub\xf7I\x0f\xf5\x92\x91\xa3\xcf\xc6m@\xe2g\x97\xa7\x35\xbc+\xf3Y\"\x0el\xf2\x9c\xd1\xad\x35\xfc\x9c\x66\xbf\xfc\bo%\xd8\x1b\x90\x41\xb8\x62\x12_\xbfN\xda\x35\x39\x1e\xd3\x32\xcc?\x80\xb9\xca$7=\xc4\xbf\x11h-h\x95\x97\x1e\xb7u\x05\xb3\xdb\x8f\x1dN\x90\x11>\xef\xc8\x8cgU\x06@~\x96\\\xbd\\+C\xc7\x19\xa2M;\x8a,\xf1nP\x84\x97VG\x84'~\xa7\xdc\xbd\x46\x9b\x61\xbe\x1f\xf6/\xbb\x9e.14;\n\x9a\xd8m\xda\xfe_\xec?,{\x97\xc2\xb0\x9a;\x04]M\xcc~A^FlF\x91i\f\xc5s\x9bL\xa7Y\x10ML\xe2\x34\xde+\xc8\xea\xfdU\x90\xf5\xbb\xf9\x8a\x98\x83t\xcb\b\xdc\x97\x98{\r\x05\x42[^\xd0\x32]9\xaf\xee\xbc\x01t\rv[f\xd2\x89N!\xb8\xd3\xfa\xe0\xdb\xe7\xef\xd8&\x9fy3\xfbI,\x13\xcfP\x04r\x16\xbc\xca\x37]\xb0\x96\xda\x15*s\xb7\x31<\xc5\x39\xc3\x98\xc2\xe4\xd5\xa8Z\x87\x18\xa2\x98\x36.\xdd\x63\xcbh\xd7\xce\xd6\xe7\v/\xdd\x37\xa8\xb4\xde\xe1\xbd\aOUuG\xda+~\t\xd1\x18s\x1b\x00\xe2\xfa\xfb\x36\xd1\xd6\x1c\xec-\xc3\x90\xff\xc9\x14!Y\xb4Q\xcb\xba\xbf\xc1\xe9S)\x93\\/\xabyb;g\xb2K3\x8d\x03\xc7%\xbd\xefn`j\x1b}\x9bZ\x8f\xfa`_\\5\xbe\x7ft\xa3\xe3\xac\x37,\xed\x8b%\xf3N\x0e\x61\x80z\x11\x91\x36\x9e\x1f\x30\xbb=9\x14\x39\xc7\x62\x90K\x10j\x8f{\x9f\xcfY\xdf\x1a\x96o\xc1\x1b%\x94\b7\xedg\xbb\x90\xe8\x38\xa6\xee\xe9\xf7\xcf\x45\x00$S`f\xda\xa0\x9f\x81u\xa1\x35kvCw\x06@~'<\x8f\xbf\xcd*\xdc\xa1\x87\x02\xe0\x13\xa5\x98{`\xbf\x66\xc6]\xd6\x06\xa9\x1f\x8a\xed\x34$\xc5\xc4\x41\x91\x30\xf9 \xbd\x36\x19\xfe\x83\xa0\x82\x05@0\x82\x05<0\x82\x05\x38\x30\x82\x03 \xa0\x03\x02\x01\x02\x02\t\x00\x86\xcd\xbd!\x8c\x44\xd7w0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905051505Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x31\x35\x30\x35Z0(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xbe\x38\n\x82\xa2\xc9\xbd\xa0\xe7ut\xb7\xa8\xfaM\x03\xe8hu\x87\x0e\x94\xff\xa3\x8a\xde\xc3\xc0\x8d\x34\x38\xbe\x36\xb2\x01\x16\xd1y\xa4\xf6\xed\xa4\x19<\b\x15mb@\xf0\x8f\xa3I\x01\xd3\x03\x13\xc5,\x17\xae\xe6I\xa7\x32\x36j\xc3\x18l\xda\x64TlL\x04\x14\xfd\xe2\x9fN%\xc9\xe5\x8d\xe6\x82\x62\xc1\x1e\xd9g\\\x9b\xdd\xf4\x8b\x19v\xc3\xd3#\x1bv\xae\xee&\xb0\x98\x02\xfeG\xa7\x06\xd3\xa5i\x91\x39S\x1f\xd6\xfa\xf9\x8dLAC=\xf6\x33\xe6\xca\xa1\xeb\xda\x0ew9\xcc\x34x\xbd\x96ru\v\xb1\xf3\x85@\xe3qL\xb4\x0fh\xa1kt\a\tt\x1f\xa0\xcb\xac\x80\xf3\xa2{\b\x04\x9d><\x8f\xa8\x43*\xa5\xec\x46\x8a\xc5\x30M}\x9b\x8b\xc6\xb9\xaf\xb2}\x13\x99\xa6]*KU!\xeen\xb6_\x9fU.\xa1\x97+\xf0\xac\xe8\xf7\xd2@m|\x84\xbc\xe9\x31\x8b\xd2\x31\x1f\xeb#v\xe3t\xd9\xb3\xc1\xb3\xa3\xec\x61\x04\xe2\xce\x9b\x00M\xf8-\"\xe8\xeb\x88\xa6V\xe9\x12\xea\x16\xbb-\xe2p\x87\xcb\xc3\x0fm\x8f\xd9\xa0\xf8\xac\x31\xa2\x00\xdf\xe6\x85uB\xf2\xa4k\xf3\f\x97\xac\x8a\xf6\x85Ji\xe3h\x89W,\xd5\x1d`\xd1\x92\xae\x1dS}ql\xdb#\xff\xcf\x45\x12\x1f\x97\x39\x88\xae\x33\xb6`xu\x7f!\xef=\x9e\xbe\xfc\xbc\xe7\xef\xd2 \x8c\x80!l\xcaJEg\xef/\f-\xb6\x9b\xaa\x46\xae^|U\xd6\x39\xf5\xde\xa3\x1e\xdaM\xb5\x06\x16\x9fPy\xc3\x10q\xd2\xe8\x0f\x1d\xdd.G o\x93\xcc\xeb!\xff@\xeb\x44,C\x9e\x85\xde)\x89\v\xa7Q\xfb\x84|3\xcb|\xe1i\xba\xb0\x34\x00V\xf8\xf2\x62\x8c\xbd\xbb\x87\xb8\xac\xb5\xd3\xe4\x83\x05\x1ch\xc8\xedWZ\x84\r\x01\x98\x80s\x04\xb7\xceo\xa6T_i\xda\xd1\xc9\x06\xbd[\xbc\f*\xe6\xf6RO\xd4\xd6)\x1e\xe4\x37[a\xf0\xb3_\xab\x30=\x14\x44\x9a\x99\xcb\xf0\xf6n\xdbO\xc5X\x13\xff\x92\xaa\t*f\x06;\xec\xbfk\xa7M\xfcUm\x92'A\x01m\xb7\xbd%\x02\x03\x01\x00\x01\xa3\x63\x30\x61\x30\x1d\x06\x03U\x1d\x0e\x04\x16\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o0\x1f\x06\x03U\x1d#\x04\x18\x30\x16\x80\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o0\x0f\x06\x03U\x1d\x13\x01\x01\xff\x04\x05\x30\x03\x01\x01\xff\x30\x0e\x06\x03U\x1d\x0f\x01\x01\xff\x04\x04\x03\x02\x01\x86\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\xb3`\xb5y'!\xb2\xd6{\xc1\x46\x8e|\x9e?\xe1=\x9b\xcd\x9f\x9a>\x96\xfd\xa9\x1fkS\xe9\xe8\xf1\nj[D\xce?\x92Q9\xb6\xb4\x9a\x90\xf7\xa1\x1a\xd2\xf2\x11\"\x86\x9d\x94>\x91\xc8#RQ\xab<\xad\xab\x91\x87\x33\xaa\xd6\xf6\xca\x30\xc4\x9a\xa1\x86\x9e:/\x1b@\xa8\x87\x8b\xd6M\x8f\a\x9d\xc4\xf5\x42\x1a\xbf\x89\x1f\xe0-^;}\xa2;M't\xaf\xdf\xb9ld\xbb\xffy\x90\x80\xbb\xa3\x9aPj0\xa4\xb0I\x1e\x12\x82\xb1\xea\x85)\xe9\x1bv(\x01\xab\x10\x89\xa9\xa0\x43\xf8\xaa\xac\x37\x18\xdf\x06\xae{B\xd2\xcf\x85}\x96,\xae?\xcaL\x97\x10@\x18\x35\xf2\x0e\xd4\x63\xaa\xe3\xd1\xd6\xf5;\x16\xca+\xb5\x12\xbd\f\xcfZ\x1e\xdc\xd6\x64\x0f V\x1fN{\xe7\xdc\xa0\x35\xe2\xb5.Y%\xb9\x34_Do\xaa\xf0\xb9\xcc\xc2Z\x1c\xf2v\xfc\xfd\xe3\x37\x96\x31\x8a\xc7\xb8<\t-\xbbK\x06\xfe\x9f\xe8#\xcf\x9aV\x9d\x1b\xc0i\x18\xa0[\xde\x9f\x65\xf0\\\xdf\xbd\x45m\x02\xda\x41\x15\xc3\xd9\xe3\x41\xde\x98\xd3\xb9\xd2\x45\x36\xed\xb9M\x9a\x9b\xcb\n\xce\x87p\x9d?\x9a\f\xfemSC\x92\x45\xf2\aS\xd2\x1d\xb5jiaI\xe1*\x7f\x9a\x8e%\x88\xd8\x10\x04h\x03~\x89\x02\xff\x8f\xa1\x93}\x04\x32\x7f\x30Z2\vngg\xaa%\x12\\L+\xa0H\xb5\xa8\xd5o\xfc\xf2}\xed\x90N\xa5\ft\xd5\xd7\x1f\xb6\xe0\xb1\x04\x8a\xd0H\nwn\xc6\xe0\xb8\xea\"\v\xfb@\xa0\x63\xec\x62\x9cG\x1d\xf7\xe6\x1cP\xfe\xd9\x66\x43\xac\x16\n\xc3\x39xK\xb8\xf8\xfc\xd4m\xe7\xb0\xdd-\x9f-vb\xd0\xa1l\x85>9\x8f\xc9\x12K\x16\x12*-*\xe5\x99\x98\x13\xdb\xf1M8\xe6\x11\x81\x9f\x99\xe2\xe6\xa8\x11\x95]g\xd6\v\x8f\xa4~\xc1n\r\x06.J\xfa\xc7u\xfd\x1f\x91\xecK=\x89\x01jI\x82\x97h\x93\x61\xd2\xc6\xefT\xea\x1f_\xaf\xd3\xa8\x16\xa9\x99\xc6\xd5\xbbs[Fu:\n\xc7\x36\x62\aX\xe1gM\xd0m\x00\r`\xb4\x8b\xc0", + "0\x82\bh0\x81\xc7\xa1_\xa4]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0?0=0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\xa2#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10zu\x1cw\xce\x38\xca\x9b.\x84\xc6\xd7\x06\x1b\xb0j\xa0\x82\a\x9a\x30\x82\a\x96\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\x41\xeb\x63\xe7\xde\x9a\xc4\xa8\xc9(f*\xea\xd0\xbf\xde\xd4h\xee\xc0^\xed\xcclT\xb2%K\xf7\x8e\x38\x9d\x89\x62\xbbj#c\xb5\x83\x34'3\xd4\xa2\x8a'\x85_`5=)\xb4\v\x05&\"\rk^\xdbM\x84\xeb\xce\xaf\xe5\x98\x31\x96\t5q\xb3\xce=\xa1\xec\x62\xb6*\xb6;\x98T\xf1\x96K\x1c\x93gR\x14\x80\xbb_\x01%\xf3\xc8\xdc\xe2\xc2\xdaH\xe0\x44\x9a\xb6G]\x1d\x11\xd1\x95\xa6\x96\xbc\xd7\xff\xfe;\"\xe1\xf5\xd1'*\xc7\b\"\x18\xd2\"\xdb*;\xd2r\xfe\xe4}Z\xdf/u\x03\x91\xb9\xad$#\xa5\xf4\xf1mqU\n/c\xc3?6\xa4\x1d\xbb\xe3!|\xaa\xd7\xab\xdf\x11J\xf1\x16\x98\xb4\xc7\x14\x8f!k\"\xf5\x91\xdb\xa9T\x06u\x83\xfa@*(\xcc\x34pX]]l[=\xd2\x17\xc7x>FeN\xec\x35\x7fP\xaf\bX>,\xe7\x80\x7f{\x93\x9d\x9e\xa7\xeb\x97\x42\xc1\xaf\x83\xbb\xd9l\xbd\xc7\x64\x7f\x64\x10\xfaj\a\r\xf2\xc9o\xec\xb1\x88\xc9Z\xd6U/\xa9\x06\x7fQ G\x1f\xf4gj\x1fk\x06\x8e\x88x\xa5x\f\x06\xea\x16\xedo\x9d\x91\xdd\x44&q\n\x16\x82\xed\xc4\xfc\xf0\xb2\x9c\x39|2\"\xd8\x84v\x7fw\xd2\xe6X4\x9ds]\x91\x82\x8d\xc7\n\xc7\xe7\xff,\x13\x1c%\x1f\xf1\xa3\xcco~\xe2z\x02\xa9\x01!\x9f\xaa\xf6\xc4\xc4s5\r\xe3S#2)6\xbf\xc4I\xad\x19\xf0\x12\xb5r\xdd@C\x9a(\xcb\xf3\xb0\x0f\x88\x87\xf1X\xff\xf0\xe8\xe2r.\xed\xe0'z\xb1\xc7\xa6m1k\xbe\x43\x8e\xcc\x8c}L\x99\xcanm\xd6\t~\x12N\xd8\xd9|\xeb\xc9R\xf8\xc9n\xfc^\xb2\xa1\x99\xbf{D\xb4j\x9d)\xdc\xcf\xd4\xbd\x34pf\r\xf9\x14h\xb0\xb8\xdd\x1f\x43P\x84G\xee\x88k\x1d\xcf\x16\xf9rl_t\xb5\x8b\x42V\xbd \xe0\xd3\x30\x85\xac\xa3\xf1\a\xdd\x66@\x9b$\x8d\x83Y}\x91\xa2x\xaa\x80o\xf2\x94s4\xeb\xccU\x9b\x96\x1f\xa2\xe1\xd3M\xe9\xe3\xc6X\xf7\xc8Y\xcf\xa0\x82\x05~0\x82\x05z0\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", }; -static const size_t kLen94 = 2194; +static const size_t kLen94 = 2184; static const char *kData94[] = { - "0\x82\b\x8e\n\x01\x00\xa0\x82\b\x87\x30\x82\b\x83\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\bt0\x82\bp0\x81\xd7\xa1]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com\x18\x0f\x32\x30\x32\x33\x30\x33\x32\x33\x31\x37\x33\x35\x34\x34Z0e0c0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\x80\x00\x18\x0f\x32\x30\x32\x33\x30\x33\x32\x33\x31\x37\x33\x35\x34\x34Z\xa0\x11\x18\x0f\x32\x31\x32\x33\x30\x32\x32\x37\x31\x37\x33\x35\x34\x34Z0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00]\xf5\x1f\xdd\vz\x8f\x66\x90 f^8a\xaa~\xf9\xac\xf6\x8d\xf2\x91\x05\xf3\xd4\x94\xbf\xcfJQx\xa9+\xbf\x87o\xdd\xe9\xe0\x98\x8d\xf9\xe1\x65\xe1\xdd\x7f~\xae\x92\xb6\x8cYd2\xd6!\x91\x9c\xe4ZR\xc3\xbeK\xfd\x15-\av\x9e\xe8\x8b\x36\xfeq\x0e\xb3\xcfp\xddQ@\x96\xc7\xda\x86\x8d*\x86\xa6\xd8\x61\xfcJ\xe5\xeb$\xa8\xd0\x89k\xe1\xb3\xc4\xd9\x19\fn\x91\xb8\xaeQ\xd9\x9d\x64g\xc2\x04\x03\xeaZ\xbf#Z\xa6\x8di\x99\xb8\xab\x39G\xaap\xba\xbd\xc8\x30\xfc\x10\x34\x17\x34\x05/\\%\x19\xd7\xeb\x36\x41H\xda.\x88\x86\xfcJ\x9cr\x94\xfdOO\\\xe7\xb2\x83\xb3\xfdM\x7f\xda\x13\xd9]\xd1Mb\xfd>\xd3\\\x91\x17\x8a\xe5\xe0\xcb:\xb1\xcaV\x04\xcd\xd5\xa6\fP\xa4\x65\x81\x8fh)\xbe\xaaR.Ze\x80\x94\x17\xa2|\xd5\xe4\xb3\x13W\x13\xfc\x94\x14\xd7\xfd\xc1\xa1\xf8I\x16\x9bQ\x01\x66zz\xaa=\x16Z\x11\x34\xe6\xa3\x32U\b\x0e\x7f)\xd1\a\xb8G\xc2\xbbN\xac\x34\xe7\xe7\b\xa3\xe0\xbcV\x87\x14\x91\xf4\xcfs\xf8\xd9\x9e*\xc5H\x82\xda\xac\x04+|\x86\xca!\b \xf1\xac\xd0\x0e\xe4\xe9\xe4\x42^v\ah\x01\a\x1d\xac\xec.c\xea\x7f\xb8yU\xc6!h\x82\x91\xcd\xd1\x14\x30\x62x\x1a\x1e\xb3O\xef\xabv.\x7f\x8c\x04{{\x95\xf8\xc7-~Fn\xac\x96\xc0\xfbx2\xeb\xa9S|?\xb2\xcd\x81\x17\x8e\xca\xd8\xe5T\x11\xe7\x62\xca>\xb5\x8b\xf0KQt\xf3\x38\xf8\xa3\xc6\xcf\x00\xa0\x12\xca\x62\x92\xaa\x81\x03\xb6\xfcZ9n\x92\x95\x89\x97\x61l\xe0\xa8=\x06I)o\xf7\xfd\xce\x30\x32\xa7,r`]\x1a\xd3,;\x8bG\xf0\xf8\xf9\xb9\x84\x0f\x05:S\xe4\x37\x31=\xcf\xe0K5\xf1Q*\xc2\xd1\f\x91\x9a\a\xbd\x94\xef\x89!t\x02\xe7\xcc\xafp\x11\x9cV\xdb\xf8\xa0\x12U[u\xd3\xba\x05\xba&\xc9\xda\xff\x8b\x7f\xf5%\xaa\xa1\xe0\xc1\x92\r\tNV\x9a=!\xc1\xda\xad\xcb\xbf\x95o\x88\xcc\x32\xa6\xd4I\xa0\x82\x05~0\x82\x05z0\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", + "0\x82\b\x84\x30\x81\xe3\xa1_\xa4]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0[0Y0W0\r\x06\t`\x86H\x01\x65\x03\x04\x02\x01\x05\x00\x04 \xbci\x8a\xbb\x16!z\x1e\x0e\xc0\xb5\x02\xc3m5w\x8d\x64Q\x8d\xd9\x46Y\x97?1\xc2\x93\xa9(\xf6q\x04 \xa6\xeei\x05\x46\xcd\x13\x98\x38\x93\xf6\x82l\xfa\xd2\xba\xb0\x96\x62\xed`\xff\xd6\xc3{k\x7f`L6x\xd7\x02\x02wx\xa2#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10M&\xb6\x11\xc3]A\x9b\x8c\xa7\x87\xa6\xba\x1akv\xa0\x82\a\x9a\x30\x82\a\x96\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00_\x8d\xb1\xea\xbb\xa0\x61\x1a\xf1\xa9\xae\xf4\xa0\xa6\xfe^SIq?e\xbdv\xa9t\xf7\x93\x98N\xe3\x9e\aSz\x06m\x1f\xd1\xc1\x0f\x84\r\at\xdf\xbc\x41y9o\xb7\x42\v\xf8\x1f\x38\xc8\x16\xd5\x44\xa9[\xe2\xcf(\xa8\x95\x62\x62-[\xbf\xfc^`\x8e^\xee\xa1\xe8\x66\x87H\x13RP^\xf4p\xaej\x84\xca;\xa5\xec:\xbe\xc8\xc7\xcc\x13#k\xf9\x1bI\x8e.;\xafg:\x03V\x15\x89\xb3\xfd\xb4\x93\xb7\xa6\x18U}\xad\a\xb1\xb1\xf1\xbf\xc1\xbc&\xb2\xb4\xdf\xfc\xed\x88\x14z\xff a\xa4\xac\xbb\xc9\xac\x88\xf4\t\x92\xc3U3\xb8\t\x85\x03=\xe5\xbf.\x04\x34\x03K\xa3\xa7\x62\x06\xce\xee\xb0\x63\xd4\x13\xaa\xe5\xb2\x18\x0fw\x12>f\x0f\xb6\xb3\x93\x66\xf9l\xbd\x66\x42J\xce\x19\x39l\x82\x05t\xc1|\xde;\xe4\x65\x15-\x93@W\x87\x62\xe5\v\r\xf6;\xa8\x45+\x06\x98o\xf0@\xacH\x06\xb6\x8boj\x86\x94\xc9Q\x95\xc5%%K9R|\xa9@\x85w\x97\xc5\xbf\xbexp0\xf8\x35\xb2ntCr\x1c\xc8\x1b\x1e\xe9\x98\x95\xa1\xca\xbe;\xc4\xd0\xbci\xba\x8d\xfe\fre\xa3S\xc0\x37\xbf\xcd\xd2]6\xfe\xfe\x33\x9f\x30zP\xb5\x66.1t^\x1dw\xd9\xdaTG\xd5\xd4\xc6\xbd,\xd2s\xad\x00\xf5\x93\xce\x05\xe7\xa9\x01\xa1\xdd\xc1\x1e\xe6\x0f\x12\xb4'\xc6O\xc3\x42\x91;\xed\xb4\xacld\xb7M\xab\x32\xf7q\x92\x02\x19_\x83\n`V\xda\x01\xf8\x1c\xf5.`\xd0_\xe7!\x1d\xb5,\xa0\xcf\x39\x8e\x03\x30\xd8\x04Lb\x13\x89\xfa\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", }; -static const size_t kLen95 = 2249; +static const size_t kLen95 = 2231; static const char *kData95[] = { - "0\x82\b\xc5\n\x01\x00\xa0\x82\b\xbe\x30\x82\b\xba\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\b\xab\x30\x82\b\xa7\x30\x82\x01\r\xa1]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com\x18\x0f\x32\x30\x32\x30\x30\x36\x32\x32\x32\x31\x32\x32\x32\x35Z0v0t0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\xa1\x11\x18\x0f\x32\x30\x31\x38\x30\x38\x31\x32\x30\x35\x33\x39\x32\x35Z\x18\x0f\x32\x30\x32\x30\x30\x36\x32\x32\x32\x31\x32\x32\x32\x35Z\xa0\x11\x18\x0f\x32\x30\x38\x30\x30\x36\x30\x37\x32\x31\x32\x32\x32\x35Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\xde\xe9\xe8\x06\xbfI\xe4\x44\x83)\xc2\x04v\x89`\x9a\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\x05\x05\x00\x03\x82\x02\x01\x00\x9f\x99\x98\x1b\xde\xcf{5\xa9MK\x04\x32\xff\x96\xe9\x83)\x0f\xa3 \xb0\x06\xf9Va\xae\x64,\xa6\t\x94\x05Sk\xaa\r\x83\x61\x65\xaeS\xd9+\b\x86\x03\x9e\x41\x1c\x1bgl\xed\x18\x0f\x15\nt$\x99\x32\xe6\xa8i\x94\x8f\x02\x89\xaaO\x1e<\x1d\xf0!\x05;\xb9\x82\x80\x35\xef\x42\x7f)\x7f\xc7_\xb8\"\xe2\x44\xd6\xe6\f\x99\xf3\x88\x31\xff*\xb8Km\xaa\xd2r\xa4\x9e\x9d\xfe\xe5\xfd\x95\xb7\xde\xbby\xc9\xd0\xdb\\:\xf8\xa5\xba)\xd8\x8f\xf2\xdcU\xee\xd5/\xab\x42\x87\xc4\x1e}\n\xd8!\xdc\xef\xe0'\x8a\xa5zB7yt9s\x91\x44 \xc1\xec\xde\xd2>\xcc\xb5\xc7\x18\x98\xfb,\xcb\xaa\x01\xb9\xd6\xd0\x8aL\x8b\xcd\x99M\xe2>\n\xabh\xcc\xfe\n6\x97Qt5\xf4\x18\x44\xb1\xc5\x41\xc3\xa9\x63/\xd2\x44\xad\x8a\xb9>u\xfd^Y\\w><\x1d\xechy\x8f\a\xcd\x01\xd4\xdc\xc4\xcf\xee\x90j\x1e\xa0\xb3:\x9e\xa1\x11`\xa6\xf6;\xf1S\x13\x88v\xa8\xc1\xb2?\xba\x39\xbb\xd2\x8a\x9f\xfa\xef\xa9n\x04\xad\xe7\xdbP\xf6_s\xe2\x05\x8e\xd9t}\xd5s\xc5\xe4\xd5\xfau\xea\x66\n+\x17y\x8c\x30\x84\x85n\xadN.\xe1o/z\a~\xfb\xf9\xe6\x10\xdfm9\xed\x31\x97\b\xbb\x83\xb2r\xc2\x97,Z@\x80\xad,3m\xbe\r\xac\xf0\xbd\xff+\x9c\xb9\xec\xeeQ\x19Q\x91\xa4-\xbct\xbb\x61^\x93V\x8e@\x1bK\x85\xaf\x12\x80\x7fz\"Y\x93-\f\xce\xa5\x98\x11\x46SN-y=M\x9f\x41\xa2\x81\xbe\xfc%\x00P\x9f\x32\xf9\xe8'\n\x91\x85\xd7H\xd8\xd8\xd7{\xbc\x00;\x12\x7f\xb4\x36\xd1\x9cW9\xfa\x85\x92\x85\x16\xffX\x10\xe4\xb7\x1a\xa1\xb9=\x94Y+\xb8 &<\xfd\xa6\x8e`\xa0\x9e\xb9\xb3w\x1b}\xbc\xc4q\xf3.?\xeb\xe8<\xcf=\x19\xed\xb6\x0f\x36\x46\xae\x39\x99K\xff\xfc\x14:X\xf5\x82oOd\x9e\x62 \x13\x64NX\xf3\x92\xf1\xed\x8f(\xfdw\x04\x8a\x34\xbb\xe6Y\x95\xeb\x9f\xb1\xfe\ad\x11\x05\xbe\xe8\xa0\x82\x05~0\x82\x05z0\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", + "0\x82\b\xb3\n\x01\x00\xa0\x82\b\xac\x30\x82\b\xa8\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\b\x99\x30\x82\b\x95\x30\x81\xfc\xa1]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x36\x30\x30\x32\x33\x33\x34Z0e0c0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\x80\x00\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x36\x30\x30\x32\x33\x33\x34Z\xa0\x11\x18\x0f\x32\x30\x33\x31\x30\x35\x32\x34\x30\x30\x32\x33\x33\x34Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\xaf\xab\xd4\xecj\x17,J\x98\xfb\x1am\"\xff)(0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x05\x05\x00\x03\x82\x02\x01\x00\v\x8bh\x9a\xfa\x11\xe1\f\"\xce\xfc\xe6\xb9#\x85\x89\xd5\x95\x8e\xdcqK\x87\xb5\x1f\xc1\xe7\xdf\x7fY\xa0\xca\xbe\x80\xbc\xcb\xa3\n\x1d\x01\x39\xcfPS\xc3i\x8f\xb7\x9c\xado\x11w\xf5\xd3\x41\xfd\x01\x95\x7f\x14\xb3\n\xbd?t\x14\x41%M$.\xaf\xb1\xf1&\x91#\xe0\xc1\xd7h<\x11\xfb\xeb\xfe\x92\x61<\x04\xd4^\xe2\xfa#b\x8e\xcd\xd6\xd2l2\xda\x1a\xba\x9e\x03w\xceqy\xb5&,\xfbK\x1a\x65\xb1W\xe4\xd7\xbc\xf1\r\xdd\xcfN\xf0GB}h\xea\x36R\x1a{\x95\xab\x90\x0eH\\\xd4\xb7u\xb0^\x8b\xcc~!7F\xa1\xd8\x37T\r\x1d%\x89\xcdqK\x88\xd7\xbd\xfe\x88\x0e\x15\n\xff\xa1\x02\x42\xfcX\xa8\x90\xc9\x04=\xe8\xd3\xe5W0\xa0\x8c\x38O\x1d\x1c\xce\xbe!\x10\x91Q\x05^lLE\xc6\x63\xef$\xd5\xee\x46\xd7\xc1\x06\n\xb1\xb8i\x91\x37\xe8w\xb3L\x96\x93\xb8\x11\xca\b \x15\bQ\x0f\x10\x64V`\t\xc5\xc4\x00W\xd3\xca\xc5!\n\xd1\x0e)\xaf\xa6\xdbh\xcf\x18\xc1\xc0\xf2]>\xa6`\xde\xaf\x06\xd5\xa3>\xabj\xa4\xfb-\xd0\xda\x39\xa1\x45\xe7`g\x01j\xc9\xff\xaa\x61\xc8\xca\xa5\x05\x80\xd0\x18\xf2\xb1\xd3\xab\x83VC|;\x89\x1e\x61t\xb7\x30?\x9f\x11\xea\x9bP\x19$\xf5\xee\xe5\x02i\x8a\x14\x66\x14\xb0\x66\x02\x7fx\xc4\xf6\x98\x19\xc4\xad\xad\x65\x12%\xce'\xfe\x81\x12\x91\xc7WF.\xdc\x9flL\xc9\xac'\x1a\x42\xec;\xaa}\x02\xddj\x9bX5:\xa3\v{\xfb\x32\x19Hv\x91\a]\xf2\x00\x9eZ\fB\xd5\x14\t\r\xdbZ\xf0\x15\x19]>0b}\x90\xa9\xbd\xf3^\x14\xd6Z\xf2Q\x14<\xec\x61\xe9\x13\xbe\x8a\v\xd0J\xaa\x7f\xda\x9e\x88\x12t\x85\xf1\xebJc\x04\x96`v\xaa\xee_\xa4\xf1\xab\x1b\x13\xa7\x95=\x8d\x81\x94\x31\xe0\x1e\\(\xc1\x03\xf1`\x1e.\xcb\xd3\x04\x41\x8d\xd0\xf3\x9e\xdbjxY\xb8\x36\xb8\xec\xd7 Qz\xdbgw\x0f\xe6{\xe8\xef\x88\xc7\xfd\xd6\x8bS\x15\xa0\xb8\x85\x05\x0f\xa0\x82\x05~0\x82\x05z0\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", }; -static const size_t kLen96 = 2231; +static const size_t kLen96 = 2118; static const char *kData96[] = { - "0\x82\b\xb3\n\x01\x00\xa0\x82\b\xac\x30\x82\b\xa8\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\b\x99\x30\x82\b\x95\x30\x81\xfc\xa1]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com\x18\x0f\x32\x30\x32\x31\x30\x36\x33\x30\x32\x31\x34\x31\x30\x32Z0e0c0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\x82\x00\x18\x0f\x32\x30\x32\x31\x30\x36\x33\x30\x32\x31\x34\x31\x30\x32Z\xa0\x11\x18\x0f\x32\x30\x33\x31\x30\x36\x32\x38\x32\x31\x34\x31\x30\x32Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\xbf(6\x80,\xea\xf4n\x18\xee)no\xa8\x1c*0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\xae\xa0k\f?\xd8\xc1\xf3\xed\x9c\xceR.\xbc\xd8Z\x8a\xa7Ze\x8d*c\xd4Z\x9f\xff\xb8\xea\x90id\x96\x8f\xc1\x32\x0f(P\x15\xdf\x64O\xf6<\x99~\x8f\xb5\xc2_N\xd9\x90\\\xc5&\xcb\xb2\xdd\x04\xbey\xd3K\x8a\xf4\x62t\xe9\xde\xc2\x8e\xd5W=\x82t\xc2m\x0f\xaeU\xb9\x82\xd0\x32y\xc2.(\xcf\x36\xdb\xf2I_6'\x1e\x31#\x9f\x38\"A\xe2L\xf9\r]f\x94$)\x1f\xc8\x19\xb1\x01\xa8\xd8\xae\x96\x19\xc3\xa1\x95\x95\x05\xb4u)\nf\xb9\xe7\x61\xca\xb4m\x87\x11\x44;\x81\xd8\x11Y\xa5)R\xe6\xbf\x90\x31\xbe\xc0\x01\x99\xf4\xee\xb7\x9f\xb3y\xe6X2\xeau\xac\xbb\xb1\xce\xba\x41\x11zj\x12\xbd\x97\xd5%\x8c\x03\xdc\xa2\x18\xd4\xad\xc8:I1\xc5\xd6\x16us@\x12\xf9,6\xf9\xf0\xca\xaa\xc5Kw\xe9>\xa7\xc2\x04\xcepc\xc8\x1b\xc7!U\xceG\x01'\xf2\x80?Q\x9a\xd0\xa6i\x06~\xba\x9c\xa3\xc5\xc1\xc6kUV\xa1\x35\x9c\xecNr0\xf9X\xe6O\x1c\xfe\xc0\xbb\x89\x32\x81+\x1cwc\xdf\x14XG\xbeI\x0e\xf9\xcc\x37\xba\xe2I,\x01}\x82\xd1\a\x99\x81\x17k\x9d\xb0\x10\xcb\xb9*@\x8e\x1a\xe4\xfb\x11\xf3\xc2\xca\xcd\x91Pi\xed\x9cp )\xc9\xfe\x66\x8e\xbb+\xdc\x16m\x84\xcfT\x8d\x16\xd7Z)\x0e\n4\x8d\xcb\xde\x96\xa9\xeb\x1d\x81?\xa4\x8b\x31\xbf\xfa\xff\xd4s3\xda`\xca\xc0:\xb1\xcf\x41O>\x9b.y\x1b!\x1c$h\x14\xb2\\S\xc6No5\v\xbf\xdaT&|\x8f\xc3\x91\xe7\xd1\xdf\xeb\xe8\x14\xc4\x1c\xa1\xde`z\xd5\x89v\x04\xf8\xbd\xa8\x05\x01\x8a\xe8\xa9l\xbc\xb0^\xe8\x89&\xa6\x81\x66\x31\x8b%\x8bI\x1f\xdf\xf8\x98\xc5Z\xa4\xf8\xb7{`\vP6ee0\x1fo\x9c\xa3\x97&\x0f\x34X\x17\x46\xb9\xd5\x62+R\xae\x10\xd2[\tp\xe3\x86\xa9[b\xd0]\xfb\xfb\xfc\x94\x81\x33/\xe1\x06q\xe1\xdf\x63\x63\xd6\x31\x94<\xd4@\xc2\xfa\x11\xcdp\v\xde\x9d\x7f\x35\xc3gy\x9f\xbd\x86\xa0\x82\x05~0\x82\x05z0\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", + "0\x82\bB\n\x01\x00\xa0\x82\b;0\x82\b7\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\b(0\x82\b$0\x81\xc9\xa1*0(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n\x18\x0f\x32\x30\x32\x31\x30\x36\x30\x33\x32\x32\x34\x39\x34\x37Z0e0c0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\x80\x00\x18\x0f\x32\x30\x32\x31\x30\x36\x30\x33\x32\x32\x34\x39\x34\x37Z\xa0\x11\x18\x0f\x32\x30\x33\x31\x30\x36\x30\x31\x32\x32\x34\x39\x34\x37Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10u\xe4\xecI)_`\xa1)\xd6\x7f,\x13Q\xfb\x13\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\x8a\xfd\xd5\xdb/\x7fLA\xd3\xb6H\x8d\xd7\xde\\\x05\xde\x8b\x05\x62\x8b\xbcj\x88}T\x0f/p\xcd\x83\xfas\xae\xebY\xc0\n\xf4\xb0\x16\x06\x93\xf7\xd5\x00Ub\xf7I\x0f\xf5\x92\x91\xa3\xcf\xc6m@\xe2g\x97\xa7\x35\xbc+\xf3Y\"\x0el\xf2\x9c\xd1\xad\x35\xfc\x9c\x66\xbf\xfc\bo%\xd8\x1b\x90\x41\xb8\x62\x12_\xbfN\xda\x35\x39\x1e\xd3\x32\xcc?\x80\xb9\xca$7=\xc4\xbf\x11h-h\x95\x97\x1e\xb7u\x05\xb3\xdb\x8f\x1dN\x90\x11>\xef\xc8\x8cgU\x06@~\x96\\\xbd\\+C\xc7\x19\xa2M;\x8a,\xf1nP\x84\x97VG\x84'~\xa7\xdc\xbd\x46\x9b\x61\xbe\x1f\xf6/\xbb\x9e.14;\n\x9a\xd8m\xda\xfe_\xec?,{\x97\xc2\xb0\x9a;\x04]M\xcc~A^FlF\x91i\f\xc5s\x9bL\xa7Y\x10ML\xe2\x34\xde+\xc8\xea\xfdU\x90\xf5\xbb\xf9\x8a\x98\x83t\xcb\b\xdc\x97\x98{\r\x05\x42[^\xd0\x32]9\xaf\xee\xbc\x01t\rv[f\xd2\x89N!\xb8\xd3\xfa\xe0\xdb\xe7\xef\xd8&\x9fy3\xfbI,\x13\xcfP\x04r\x16\xbc\xca\x37]\xb0\x96\xda\x15*s\xb7\x31<\xc5\x39\xc3\x98\xc2\xe4\xd5\xa8Z\x87\x18\xa2\x98\x36.\xdd\x63\xcbh\xd7\xce\xd6\xe7\v/\xdd\x37\xa8\xb4\xde\xe1\xbd\aOUuG\xda+~\t\xd1\x18s\x1b\x00\xe2\xfa\xfb\x36\xd1\xd6\x1c\xec-\xc3\x90\xff\xc9\x14!Y\xb4Q\xcb\xba\xbf\xc1\xe9S)\x93\\/\xabyb;g\xb2K3\x8d\x03\xc7%\xbd\xefn`j\x1b}\x9bZ\x8f\xfa`_\\5\xbe\x7ft\xa3\xe3\xac\x37,\xed\x8b%\xf3N\x0e\x61\x80z\x11\x91\x36\x9e\x1f\x30\xbb=9\x14\x39\xc7\x62\x90K\x10j\x8f{\x9f\xcfY\xdf\x1a\x96o\xc1\x1b%\x94\b7\xedg\xbb\x90\xe8\x38\xa6\xee\xe9\xf7\xcf\x45\x00$S`f\xda\xa0\x9f\x81u\xa1\x35kvCw\x06@~'<\x8f\xbf\xcd*\xdc\xa1\x87\x02\xe0\x13\xa5\x98{`\xbf\x66\xc6]\xd6\x06\xa9\x1f\x8a\xed\x34$\xc5\xc4\x41\x91\x30\xf9 \xbd\x36\x19\xfe\x83\xa0\x82\x05@0\x82\x05<0\x82\x05\x38\x30\x82\x03 \xa0\x03\x02\x01\x02\x02\t\x00\x86\xcd\xbd!\x8c\x44\xd7w0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905051505Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x31\x35\x30\x35Z0(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xbe\x38\n\x82\xa2\xc9\xbd\xa0\xe7ut\xb7\xa8\xfaM\x03\xe8hu\x87\x0e\x94\xff\xa3\x8a\xde\xc3\xc0\x8d\x34\x38\xbe\x36\xb2\x01\x16\xd1y\xa4\xf6\xed\xa4\x19<\b\x15mb@\xf0\x8f\xa3I\x01\xd3\x03\x13\xc5,\x17\xae\xe6I\xa7\x32\x36j\xc3\x18l\xda\x64TlL\x04\x14\xfd\xe2\x9fN%\xc9\xe5\x8d\xe6\x82\x62\xc1\x1e\xd9g\\\x9b\xdd\xf4\x8b\x19v\xc3\xd3#\x1bv\xae\xee&\xb0\x98\x02\xfeG\xa7\x06\xd3\xa5i\x91\x39S\x1f\xd6\xfa\xf9\x8dLAC=\xf6\x33\xe6\xca\xa1\xeb\xda\x0ew9\xcc\x34x\xbd\x96ru\v\xb1\xf3\x85@\xe3qL\xb4\x0fh\xa1kt\a\tt\x1f\xa0\xcb\xac\x80\xf3\xa2{\b\x04\x9d><\x8f\xa8\x43*\xa5\xec\x46\x8a\xc5\x30M}\x9b\x8b\xc6\xb9\xaf\xb2}\x13\x99\xa6]*KU!\xeen\xb6_\x9fU.\xa1\x97+\xf0\xac\xe8\xf7\xd2@m|\x84\xbc\xe9\x31\x8b\xd2\x31\x1f\xeb#v\xe3t\xd9\xb3\xc1\xb3\xa3\xec\x61\x04\xe2\xce\x9b\x00M\xf8-\"\xe8\xeb\x88\xa6V\xe9\x12\xea\x16\xbb-\xe2p\x87\xcb\xc3\x0fm\x8f\xd9\xa0\xf8\xac\x31\xa2\x00\xdf\xe6\x85uB\xf2\xa4k\xf3\f\x97\xac\x8a\xf6\x85Ji\xe3h\x89W,\xd5\x1d`\xd1\x92\xae\x1dS}ql\xdb#\xff\xcf\x45\x12\x1f\x97\x39\x88\xae\x33\xb6`xu\x7f!\xef=\x9e\xbe\xfc\xbc\xe7\xef\xd2 \x8c\x80!l\xcaJEg\xef/\f-\xb6\x9b\xaa\x46\xae^|U\xd6\x39\xf5\xde\xa3\x1e\xdaM\xb5\x06\x16\x9fPy\xc3\x10q\xd2\xe8\x0f\x1d\xdd.G o\x93\xcc\xeb!\xff@\xeb\x44,C\x9e\x85\xde)\x89\v\xa7Q\xfb\x84|3\xcb|\xe1i\xba\xb0\x34\x00V\xf8\xf2\x62\x8c\xbd\xbb\x87\xb8\xac\xb5\xd3\xe4\x83\x05\x1ch\xc8\xedWZ\x84\r\x01\x98\x80s\x04\xb7\xceo\xa6T_i\xda\xd1\xc9\x06\xbd[\xbc\f*\xe6\xf6RO\xd4\xd6)\x1e\xe4\x37[a\xf0\xb3_\xab\x30=\x14\x44\x9a\x99\xcb\xf0\xf6n\xdbO\xc5X\x13\xff\x92\xaa\t*f\x06;\xec\xbfk\xa7M\xfcUm\x92'A\x01m\xb7\xbd%\x02\x03\x01\x00\x01\xa3\x63\x30\x61\x30\x1d\x06\x03U\x1d\x0e\x04\x16\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o0\x1f\x06\x03U\x1d#\x04\x18\x30\x16\x80\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o0\x0f\x06\x03U\x1d\x13\x01\x01\xff\x04\x05\x30\x03\x01\x01\xff\x30\x0e\x06\x03U\x1d\x0f\x01\x01\xff\x04\x04\x03\x02\x01\x86\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\xb3`\xb5y'!\xb2\xd6{\xc1\x46\x8e|\x9e?\xe1=\x9b\xcd\x9f\x9a>\x96\xfd\xa9\x1fkS\xe9\xe8\xf1\nj[D\xce?\x92Q9\xb6\xb4\x9a\x90\xf7\xa1\x1a\xd2\xf2\x11\"\x86\x9d\x94>\x91\xc8#RQ\xab<\xad\xab\x91\x87\x33\xaa\xd6\xf6\xca\x30\xc4\x9a\xa1\x86\x9e:/\x1b@\xa8\x87\x8b\xd6M\x8f\a\x9d\xc4\xf5\x42\x1a\xbf\x89\x1f\xe0-^;}\xa2;M't\xaf\xdf\xb9ld\xbb\xffy\x90\x80\xbb\xa3\x9aPj0\xa4\xb0I\x1e\x12\x82\xb1\xea\x85)\xe9\x1bv(\x01\xab\x10\x89\xa9\xa0\x43\xf8\xaa\xac\x37\x18\xdf\x06\xae{B\xd2\xcf\x85}\x96,\xae?\xcaL\x97\x10@\x18\x35\xf2\x0e\xd4\x63\xaa\xe3\xd1\xd6\xf5;\x16\xca+\xb5\x12\xbd\f\xcfZ\x1e\xdc\xd6\x64\x0f V\x1fN{\xe7\xdc\xa0\x35\xe2\xb5.Y%\xb9\x34_Do\xaa\xf0\xb9\xcc\xc2Z\x1c\xf2v\xfc\xfd\xe3\x37\x96\x31\x8a\xc7\xb8<\t-\xbbK\x06\xfe\x9f\xe8#\xcf\x9aV\x9d\x1b\xc0i\x18\xa0[\xde\x9f\x65\xf0\\\xdf\xbd\x45m\x02\xda\x41\x15\xc3\xd9\xe3\x41\xde\x98\xd3\xb9\xd2\x45\x36\xed\xb9M\x9a\x9b\xcb\n\xce\x87p\x9d?\x9a\f\xfemSC\x92\x45\xf2\aS\xd2\x1d\xb5jiaI\xe1*\x7f\x9a\x8e%\x88\xd8\x10\x04h\x03~\x89\x02\xff\x8f\xa1\x93}\x04\x32\x7f\x30Z2\vngg\xaa%\x12\\L+\xa0H\xb5\xa8\xd5o\xfc\xf2}\xed\x90N\xa5\ft\xd5\xd7\x1f\xb6\xe0\xb1\x04\x8a\xd0H\nwn\xc6\xe0\xb8\xea\"\v\xfb@\xa0\x63\xec\x62\x9cG\x1d\xf7\xe6\x1cP\xfe\xd9\x66\x43\xac\x16\n\xc3\x39xK\xb8\xf8\xfc\xd4m\xe7\xb0\xdd-\x9f-vb\xd0\xa1l\x85>9\x8f\xc9\x12K\x16\x12*-*\xe5\x99\x98\x13\xdb\xf1M8\xe6\x11\x81\x9f\x99\xe2\xe6\xa8\x11\x95]g\xd6\v\x8f\xa4~\xc1n\r\x06.J\xfa\xc7u\xfd\x1f\x91\xecK=\x89\x01jI\x82\x97h\x93\x61\xd2\xc6\xefT\xea\x1f_\xaf\xd3\xa8\x16\xa9\x99\xc6\xd5\xbbs[Fu:\n\xc7\x36\x62\aX\xe1gM\xd0m\x00\r`\xb4\x8b\xc0", }; -static const size_t kLen97 = 2002; +static const size_t kLen97 = 2194; static const char *kData97[] = { - "0\x82\a\xce\n\x01\x00\xa0\x82\a\xc7\x30\x82\a\xc3\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\a\xb4\x30\x82\a\xb0\x30\x81\xb6\xa1*0(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03\x41WS\x18\x0f\x32\x30\x32\x33\x30\x36\x30\x33\x30\x30\x33\x32\x31\x39Z0R0P0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\x80\x00\x18\x0f\x32\x30\x32\x33\x30\x36\x30\x33\x30\x30\x33\x32\x31\x39Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\xe3\xfeZ\xf6\x87\x97\xb3\xac\xff\x95:\xe2RU\xca!0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00}\xf1\x96\xba\x43\x64\xf2\x61\xed\x8bgI\xdd!\x1f\xbb\x1a\xa5,e\xbb\x01^\b\xe3\xa6\th\x9d\xf5\xe8\xa7\x97\x81\xb8\x0f\x89\x94\x8b\x9b\x1c;\x95Y\x05\x62\vZn\x18g\x87m\xd7S\xa8\x9aJ*\xb7\xcf\xfdj'*\xd3\x10Hh\xc0\xec\x7f\xf5\xfd+\xf9\xea\xe6\x17~-\x91`\xc5\n'\xb8\v\xa0$_\x06\x1dI\xf1\xa2\x32\x1f!\xb4\x89.\xe3jI*<\xa9\x32N^7s\x1a\xde\x94_b_\xae\xb8S-\x93H\xec\xba\x36\x63\xb6\x44\xfd\x8a\x36\x0e\xd8\x34\x06o\xc5X\xf5\xa1\xad\x1a\xe7S\r\x8a\x44x\xba\x9c\xe8\xa9\xd3-\x14|\xc4\x35(b82zt\x88\xc5\x97\x13\x94\xfa\x46!.\xe6\xc8\fR\x85`\x1a\x31~\xc9\x19\xfe(\xd7\b\xe4\xb5\x8b\xad\xbd\xcc\xf3\x85h3\xb9\xebu\xceUPx\xea\xb4\fi'!\x97\x9bJ\x1aX\xf2X\xc1\xeb\xae\x82h\x88\xc0\xd5\xbcg\xa4#\xd9\x02\xee\x82\x66\xe8&6Gy\x83\x39\x9f\x0e\x81\x35\xd8\x36o\xda\x63\xf5\x89\x38L\xbf\xd3\xa1\xe7\xa4\xcb\xfaO\xec\x35\t\xe2n\xaf\xd8\xcb\xe8|\x1bMg\xc5\nD2\x9d\x14\xe1\x11n\t\xcb\xf7joZA\xa1\xd4\x0fM\x9aP\xf8\xdd\xaf-\x9d\xa1\xf1\xd9\xfe\xfc\xd8\x30\xf5\xf1;\"\x8c\xb4\x36P]\xff\xac\x8b\x34\t\xc1\x9a\x06\x9d*\xed\xacg\xab\xc9\x1fV\xd5\xb5\\\xb9\n\xc1hQ\x02<\xd4\x13\x63$\x1d\\\x1a\xb4\xbb\b{]kc\xcf\xad\x35?\xb4\x15\x88\a\xd5\x8f", + "0\x82\b\x8e\n\x01\x00\xa0\x82\b\x87\x30\x82\b\x83\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\bt0\x82\bp0\x81\xd7\xa1]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com\x18\x0f\x32\x30\x32\x33\x30\x33\x32\x33\x31\x37\x33\x35\x34\x34Z0e0c0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\x80\x00\x18\x0f\x32\x30\x32\x33\x30\x33\x32\x33\x31\x37\x33\x35\x34\x34Z\xa0\x11\x18\x0f\x32\x31\x32\x33\x30\x32\x32\x37\x31\x37\x33\x35\x34\x34Z0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00]\xf5\x1f\xdd\vz\x8f\x66\x90 f^8a\xaa~\xf9\xac\xf6\x8d\xf2\x91\x05\xf3\xd4\x94\xbf\xcfJQx\xa9+\xbf\x87o\xdd\xe9\xe0\x98\x8d\xf9\xe1\x65\xe1\xdd\x7f~\xae\x92\xb6\x8cYd2\xd6!\x91\x9c\xe4ZR\xc3\xbeK\xfd\x15-\av\x9e\xe8\x8b\x36\xfeq\x0e\xb3\xcfp\xddQ@\x96\xc7\xda\x86\x8d*\x86\xa6\xd8\x61\xfcJ\xe5\xeb$\xa8\xd0\x89k\xe1\xb3\xc4\xd9\x19\fn\x91\xb8\xaeQ\xd9\x9d\x64g\xc2\x04\x03\xeaZ\xbf#Z\xa6\x8di\x99\xb8\xab\x39G\xaap\xba\xbd\xc8\x30\xfc\x10\x34\x17\x34\x05/\\%\x19\xd7\xeb\x36\x41H\xda.\x88\x86\xfcJ\x9cr\x94\xfdOO\\\xe7\xb2\x83\xb3\xfdM\x7f\xda\x13\xd9]\xd1Mb\xfd>\xd3\\\x91\x17\x8a\xe5\xe0\xcb:\xb1\xcaV\x04\xcd\xd5\xa6\fP\xa4\x65\x81\x8fh)\xbe\xaaR.Ze\x80\x94\x17\xa2|\xd5\xe4\xb3\x13W\x13\xfc\x94\x14\xd7\xfd\xc1\xa1\xf8I\x16\x9bQ\x01\x66zz\xaa=\x16Z\x11\x34\xe6\xa3\x32U\b\x0e\x7f)\xd1\a\xb8G\xc2\xbbN\xac\x34\xe7\xe7\b\xa3\xe0\xbcV\x87\x14\x91\xf4\xcfs\xf8\xd9\x9e*\xc5H\x82\xda\xac\x04+|\x86\xca!\b \xf1\xac\xd0\x0e\xe4\xe9\xe4\x42^v\ah\x01\a\x1d\xac\xec.c\xea\x7f\xb8yU\xc6!h\x82\x91\xcd\xd1\x14\x30\x62x\x1a\x1e\xb3O\xef\xabv.\x7f\x8c\x04{{\x95\xf8\xc7-~Fn\xac\x96\xc0\xfbx2\xeb\xa9S|?\xb2\xcd\x81\x17\x8e\xca\xd8\xe5T\x11\xe7\x62\xca>\xb5\x8b\xf0KQt\xf3\x38\xf8\xa3\xc6\xcf\x00\xa0\x12\xca\x62\x92\xaa\x81\x03\xb6\xfcZ9n\x92\x95\x89\x97\x61l\xe0\xa8=\x06I)o\xf7\xfd\xce\x30\x32\xa7,r`]\x1a\xd3,;\x8bG\xf0\xf8\xf9\xb9\x84\x0f\x05:S\xe4\x37\x31=\xcf\xe0K5\xf1Q*\xc2\xd1\f\x91\x9a\a\xbd\x94\xef\x89!t\x02\xe7\xcc\xafp\x11\x9cV\xdb\xf8\xa0\x12U[u\xd3\xba\x05\xba&\xc9\xda\xff\x8b\x7f\xf5%\xaa\xa1\xe0\xc1\x92\r\tNV\x9a=!\xc1\xda\xad\xcb\xbf\x95o\x88\xcc\x32\xa6\xd4I\xa0\x82\x05~0\x82\x05z0\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", }; -static const size_t kLen98 = 1405; +static const size_t kLen98 = 2249; static const char *kData98[] = { - "0\x82\x05y\n\x01\x00\xa0\x82\x05r0\x82\x05n\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\x05_0\x82\x05[0\x81\xef\xa1P0N1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\f0\n\x06\x03U\x04\v\f\x03s2n1\x16\x30\x14\x06\x03U\x04\x03\f\rs2n Test Cert\x18\x0f\x32\x30\x32\x30\x30\x36\x32\x32\x32\x31\x33\x37\x33\x34Z0e0c0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\x80\x00\x18\x0f\x32\x30\x32\x30\x30\x36\x32\x32\x32\x31\x33\x37\x33\x34Z\xa0\x11\x18\x0f\x32\x30\x38\x30\x30\x36\x30\x37\x32\x31\x33\x37\x33\x34Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10Kz\xcf\x10\xec\xc7\x8fP\x8b,y\xa5\x83?@[0\t\x06\a*\x86H\xce=\x04\x01\x03G\x00\x30\x44\x02 '5E\x86z\xd7\xd1\xbd\x9c_A\xf1\f\x17\xc3\xa6\xc3yjs\xbb\xf9\x06\xe8\xe3\x19&\x93&\xcf?+\x02 \x1b\x9d\xf6\xb5-W\xe5\x1d\x9f\xc8v\xe4\x1c\x65,\xba\xa8\x96&\x81J\xee\x95t\xde\x30\xc3]\b\xb5\x11\x43\xa0\x82\x04\x11\x30\x82\x04\r0\x82\x04\t0\x82\x01\xf1\xa0\x03\x02\x01\x02\x02\x01\x03\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r190711214905Z\x18\x0f\x32\x31\x31\x39\x30\x36\x31\x37\x32\x31\x34\x39\x30\x35Z0N1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\f0\n\x06\x03U\x04\v\f\x03s2n1\x16\x30\x14\x06\x03U\x04\x03\f\rs2n Test Cert0Y0\x13\x06\a*\x86H\xce=\x02\x01\x06\b*\x86H\xce=\x03\x01\a\x03\x42\x00\x04r\x9b\x98\xf3VJ\xa0\xf7\xed\x1d%(U\f\xcb\xd7-\xe4\xfbrf\x04;\xd1\xfc\xda\xa3M\x0e\x8d.D\xd9l\x14\xc1%\x0e\xfb\xc8\t!{k\x06^\xf3\xe9\xcd\xcc\xc3\n5s\x9a\xbe\xde\xce\xc0\xa8\xec\xf1\xad\x89\xa3\x81\xe0\x30\x81\xdd\x30,\x06\t`\x86H\x01\x86\xf8\x42\x01\r\x04\x1f\x16\x1dOpenSSL Generated Certificate0\x1d\x06\x03U\x1d\x0e\x04\x16\x04\x14\v\xb5\x65\xe7<\xd5wiz\r\xf2\x97?\xf6\xcb\x16\x05\x12\x1b\x96\x30\x1f\x06\x03U\x1d#\x04\x18\x30\x16\x80\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o0\f\x06\x03U\x1d\x13\x01\x01\xff\x04\x02\x30\x00\x30\v\x06\x03U\x1d\x0f\x04\x04\x03\x02\x04\xb0\x30\x1d\x06\x03U\x1d%\x04\x16\x30\x14\x06\b+\x06\x01\x05\x05\a\x03\x01\x06\b+\x06\x01\x05\x05\a\x03\x02\x30\x33\x06\b+\x06\x01\x05\x05\a\x01\x01\x04'0%0#\x06\b+\x06\x01\x05\x05\a0\x01\x86\x17http://ocsp.s2ntest.com0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00YK\xd9\xc6\xee\x12>\x8c\xdb\x37\xb4\f\xcc\xc9\xaf\x96\xff\xab\x32\xf9T\x80/.@k9\xbf\xf3\xa0\xa2\x96\xc0+Z\xb2\xa5 z\xb3\x84~\x01\x16y\x90\xfd\xa4\xda\x89hR;.\xc4\a\xf9/\xb2\x8b\xc4IZ\xb9p!I\xebU\xd6*\xca\xb6m\\\xee\xe8\xb9\x92\xaaKF\xc9\x01s\x9d\x1e\xf3$\x1a\xf8\x9c\xd1\xbb\x9a~\xbe\xcdh\xf1\x14\xaeOC\xa9\x1a,\xf4\xd2\x8a\xae\xdb\x90\xa2{\xd9\xd1i\x0f.\xa3\xd2\x9eP\xd3\xa0\xe6\t\xd6\x05q\xa0\xd1\xbb>\xd4;\xe4}\xce\x38\x83\x03\x42\xc6\xbf\x83`(\xce\xa5u\xb7\xf7\x1bn[\xea\xff\x32\x61\xd3\x36\x1b\x83\x1f\x1f\xe9&\xe7#T\x82\xce\xcb\xb9YL\xf6%v\xa4\x33\xb0\xef\xff#/C\x9e\x90\x91\xf4\x88\xbe\x1a\xf9s\x03\x00\xa7\x86\x03\x8a\xe8\x62R\x84\x7f\\F\xbd\\\x12\x03\xc3\xe5\xebr\"\xa1\xd6\xec\x19\x9e\x63>\t\x98\x9b\x43\xaay\x1e\x39nqY\xc9Qzj\xd1\xa7\xae\x8e\xd1Lj\x8d\vcj\x05\x92\xc1\x31k\x9d\x7f\x46\x65<\xd4<\x8b\x42\x8f\x7f\xb4J\xe8_\xd4\xaf\x1f\x97\xa8\xd5~K\x86\x82\x10\x92\tg\x14t<\xdd\x82,L@}S=\x82\x89g\x11\v\x91\x13(7\xd6-\x05\xa6\x04\x32\xc8\x66\xee**\xad\xe3\a\x04p\xff\xad\x9a\x8a`zY\x91o\b\x98\xc5s\x96\xdd\vu\xf8>9\n\xd9\xbd\x38\xa2\xbczUV\xdc\xd2&\xf2\x42^#\x02\xa1\x33u\x11\x96\xd4'#\xfe\x10\x37\xb2\x38\x13\xc9s\f\xf8\x95\xbd\xce\xdd>(\x17.\xfe\x9d?P\xdc\x88\x31\x1b\xf7\x9f\xcb\xbd\xa0l\x92J\x87\x16\xbe\xee\x85SA\xaf\xca\xa6MU\xfe\xd5k\xd2\xca\xd2\x45\x32\x19\x35\xeb\xac\xe1~PI\xfa\x92\xf1,^\xbe}\xa5s7\xb6\x14:s\xa4\n!\x00\xbeXw\x91\x89\xc7\xb0\x8b\rh\xa4\x18\xbat\x01U\x01Q\xb0\x38\xa0\x36n\"\xd5\x1b\x45G\xdc\xb0\xf3\x41\x13\x1a\x37{\xb6\x31\x02#\xa1\xf4\x94VO\x96\x93\x32\x87\xdd\x19\xda\x06v\xea\x02\xa6\x45\x11\x8e\x14\x84=\xe8", + "0\x82\b\xc5\n\x01\x00\xa0\x82\b\xbe\x30\x82\b\xba\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\b\xab\x30\x82\b\xa7\x30\x82\x01\r\xa1]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com\x18\x0f\x32\x30\x32\x30\x30\x36\x32\x32\x32\x31\x32\x32\x32\x35Z0v0t0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\xa1\x11\x18\x0f\x32\x30\x31\x38\x30\x38\x31\x32\x30\x35\x33\x39\x32\x35Z\x18\x0f\x32\x30\x32\x30\x30\x36\x32\x32\x32\x31\x32\x32\x32\x35Z\xa0\x11\x18\x0f\x32\x30\x38\x30\x30\x36\x30\x37\x32\x31\x32\x32\x32\x35Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\xde\xe9\xe8\x06\xbfI\xe4\x44\x83)\xc2\x04v\x89`\x9a\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\x05\x05\x00\x03\x82\x02\x01\x00\x9f\x99\x98\x1b\xde\xcf{5\xa9MK\x04\x32\xff\x96\xe9\x83)\x0f\xa3 \xb0\x06\xf9Va\xae\x64,\xa6\t\x94\x05Sk\xaa\r\x83\x61\x65\xaeS\xd9+\b\x86\x03\x9e\x41\x1c\x1bgl\xed\x18\x0f\x15\nt$\x99\x32\xe6\xa8i\x94\x8f\x02\x89\xaaO\x1e<\x1d\xf0!\x05;\xb9\x82\x80\x35\xef\x42\x7f)\x7f\xc7_\xb8\"\xe2\x44\xd6\xe6\f\x99\xf3\x88\x31\xff*\xb8Km\xaa\xd2r\xa4\x9e\x9d\xfe\xe5\xfd\x95\xb7\xde\xbby\xc9\xd0\xdb\\:\xf8\xa5\xba)\xd8\x8f\xf2\xdcU\xee\xd5/\xab\x42\x87\xc4\x1e}\n\xd8!\xdc\xef\xe0'\x8a\xa5zB7yt9s\x91\x44 \xc1\xec\xde\xd2>\xcc\xb5\xc7\x18\x98\xfb,\xcb\xaa\x01\xb9\xd6\xd0\x8aL\x8b\xcd\x99M\xe2>\n\xabh\xcc\xfe\n6\x97Qt5\xf4\x18\x44\xb1\xc5\x41\xc3\xa9\x63/\xd2\x44\xad\x8a\xb9>u\xfd^Y\\w><\x1d\xechy\x8f\a\xcd\x01\xd4\xdc\xc4\xcf\xee\x90j\x1e\xa0\xb3:\x9e\xa1\x11`\xa6\xf6;\xf1S\x13\x88v\xa8\xc1\xb2?\xba\x39\xbb\xd2\x8a\x9f\xfa\xef\xa9n\x04\xad\xe7\xdbP\xf6_s\xe2\x05\x8e\xd9t}\xd5s\xc5\xe4\xd5\xfau\xea\x66\n+\x17y\x8c\x30\x84\x85n\xadN.\xe1o/z\a~\xfb\xf9\xe6\x10\xdfm9\xed\x31\x97\b\xbb\x83\xb2r\xc2\x97,Z@\x80\xad,3m\xbe\r\xac\xf0\xbd\xff+\x9c\xb9\xec\xeeQ\x19Q\x91\xa4-\xbct\xbb\x61^\x93V\x8e@\x1bK\x85\xaf\x12\x80\x7fz\"Y\x93-\f\xce\xa5\x98\x11\x46SN-y=M\x9f\x41\xa2\x81\xbe\xfc%\x00P\x9f\x32\xf9\xe8'\n\x91\x85\xd7H\xd8\xd8\xd7{\xbc\x00;\x12\x7f\xb4\x36\xd1\x9cW9\xfa\x85\x92\x85\x16\xffX\x10\xe4\xb7\x1a\xa1\xb9=\x94Y+\xb8 &<\xfd\xa6\x8e`\xa0\x9e\xb9\xb3w\x1b}\xbc\xc4q\xf3.?\xeb\xe8<\xcf=\x19\xed\xb6\x0f\x36\x46\xae\x39\x99K\xff\xfc\x14:X\xf5\x82oOd\x9e\x62 \x13\x64NX\xf3\x92\xf1\xed\x8f(\xfdw\x04\x8a\x34\xbb\xe6Y\x95\xeb\x9f\xb1\xfe\ad\x11\x05\xbe\xe8\xa0\x82\x05~0\x82\x05z0\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", }; -static const size_t kLen99 = 2261; +static const size_t kLen99 = 2231; static const char *kData99[] = { - "0\x82\b\xd1\n\x01\x00\xa0\x82\b\xca\x30\x82\b\xc6\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\b\xb7\x30\x82\b\xb3\x30\x82\x01\x19\xa1]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x37\x32\x30\x30\x32\x34\x33Z0\x81\x81\x30\x7f\x30W0\r\x06\t`\x86H\x01\x65\x03\x04\x02\x01\x05\x00\x04 \xbci\x8a\xbb\x16!z\x1e\x0e\xc0\xb5\x02\xc3m5w\x8d\x64Q\x8d\xd9\x46Y\x97?1\xc2\x93\xa9(\xf6q\x04 \xa6\xeei\x05\x46\xcd\x13\x98\x38\x93\xf6\x82l\xfa\xd2\xba\xb0\x96\x62\xed`\xff\xd6\xc3{k\x7f`L6x\xd7\x02\x02wx\x80\x00\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x37\x32\x30\x30\x32\x34\x33Z\xa0\x11\x18\x0f\x32\x30\x33\x31\x30\x35\x32\x35\x32\x30\x30\x32\x34\x33Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10*\x0f\xa7'\xd8=\x89\x03\x9e\x18\x98\x03\xe8`-\b0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00U\x04\xf2\xec\\>S\n\xca\xb1)\xf3\x32\x12J\xe0\x30|/\x83\xb9t\xbd\x83\xa3-_\xa4y1D\xb1\xcf\xf3,Q\x9a\xeb\xe6\xff\xb6L\xed\xbcz5~\x89\x83.P\"J\xaa\xf1\xf1I\xb1\x8a \x89\x14\x1e\x31\xa6\x9d\xd4\x39\x66&<\xa5\xc4\x39H\xbf\xc9\xbc,\"-\xce\t\xf0@\x03roH\x1a\xdemt\xda\x1f\v\x96\xa5h\x02\x8a'\"=\x86Hm\xee\\\xacU\x85wh\xbe\x15\xe4.cA\xa5\x11\xb7\x13\xf8\x11\xee\x92\xd3+^\xf3v\x8c\xe0\x9d/M\x90\x62\xb8\x41\xdc\x05\x94x~\xfa\x34\x45\x94\x01\f\xb8qW9\xd7o;\x90\x82Gk$\xe9\x96\xbe\x1c:Y^\x18O\xce\rs\xd3\x37\xb9/\x88\x1e\x15\xf0\x36(\x90$\x92\xbc\x00\xd0\x8a(t\xe1\x01\xa3o\xf5Q\xd4\x14k{=\t\xb0\xe9\xae\x94\x98:\x81\xd6\xc7s\x90\xd3\n-\x13\xdd\xcf\xad\x01\xe0S\xf4;\xcf\xc8i\xbeYU\"\x82\xf4\xf9\x83|\x9a\x99\xed\x17\x99\x00\x99\xb3\x87\xeb\xc5\t\\1\n\xd8\x1b\x81m\xe3\xb0\x61i \xd5ryk\xcc\x84\xb2\x1e\x42\xda\x37-\xbb_\xdf\x1c\xca\xc1\f/|\xdeu\xbd\xd5\x9a\x03\b\xd8S\xa0\x82\x05~0\x82\x05z0\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", + "0\x82\b\xb3\n\x01\x00\xa0\x82\b\xac\x30\x82\b\xa8\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\b\x99\x30\x82\b\x95\x30\x81\xfc\xa1]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com\x18\x0f\x32\x30\x32\x31\x30\x36\x33\x30\x32\x31\x34\x31\x30\x32Z0e0c0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\x82\x00\x18\x0f\x32\x30\x32\x31\x30\x36\x33\x30\x32\x31\x34\x31\x30\x32Z\xa0\x11\x18\x0f\x32\x30\x33\x31\x30\x36\x32\x38\x32\x31\x34\x31\x30\x32Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\xbf(6\x80,\xea\xf4n\x18\xee)no\xa8\x1c*0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\xae\xa0k\f?\xd8\xc1\xf3\xed\x9c\xceR.\xbc\xd8Z\x8a\xa7Ze\x8d*c\xd4Z\x9f\xff\xb8\xea\x90id\x96\x8f\xc1\x32\x0f(P\x15\xdf\x64O\xf6<\x99~\x8f\xb5\xc2_N\xd9\x90\\\xc5&\xcb\xb2\xdd\x04\xbey\xd3K\x8a\xf4\x62t\xe9\xde\xc2\x8e\xd5W=\x82t\xc2m\x0f\xaeU\xb9\x82\xd0\x32y\xc2.(\xcf\x36\xdb\xf2I_6'\x1e\x31#\x9f\x38\"A\xe2L\xf9\r]f\x94$)\x1f\xc8\x19\xb1\x01\xa8\xd8\xae\x96\x19\xc3\xa1\x95\x95\x05\xb4u)\nf\xb9\xe7\x61\xca\xb4m\x87\x11\x44;\x81\xd8\x11Y\xa5)R\xe6\xbf\x90\x31\xbe\xc0\x01\x99\xf4\xee\xb7\x9f\xb3y\xe6X2\xeau\xac\xbb\xb1\xce\xba\x41\x11zj\x12\xbd\x97\xd5%\x8c\x03\xdc\xa2\x18\xd4\xad\xc8:I1\xc5\xd6\x16us@\x12\xf9,6\xf9\xf0\xca\xaa\xc5Kw\xe9>\xa7\xc2\x04\xcepc\xc8\x1b\xc7!U\xceG\x01'\xf2\x80?Q\x9a\xd0\xa6i\x06~\xba\x9c\xa3\xc5\xc1\xc6kUV\xa1\x35\x9c\xecNr0\xf9X\xe6O\x1c\xfe\xc0\xbb\x89\x32\x81+\x1cwc\xdf\x14XG\xbeI\x0e\xf9\xcc\x37\xba\xe2I,\x01}\x82\xd1\a\x99\x81\x17k\x9d\xb0\x10\xcb\xb9*@\x8e\x1a\xe4\xfb\x11\xf3\xc2\xca\xcd\x91Pi\xed\x9cp )\xc9\xfe\x66\x8e\xbb+\xdc\x16m\x84\xcfT\x8d\x16\xd7Z)\x0e\n4\x8d\xcb\xde\x96\xa9\xeb\x1d\x81?\xa4\x8b\x31\xbf\xfa\xff\xd4s3\xda`\xca\xc0:\xb1\xcf\x41O>\x9b.y\x1b!\x1c$h\x14\xb2\\S\xc6No5\v\xbf\xdaT&|\x8f\xc3\x91\xe7\xd1\xdf\xeb\xe8\x14\xc4\x1c\xa1\xde`z\xd5\x89v\x04\xf8\xbd\xa8\x05\x01\x8a\xe8\xa9l\xbc\xb0^\xe8\x89&\xa6\x81\x66\x31\x8b%\x8bI\x1f\xdf\xf8\x98\xc5Z\xa4\xf8\xb7{`\vP6ee0\x1fo\x9c\xa3\x97&\x0f\x34X\x17\x46\xb9\xd5\x62+R\xae\x10\xd2[\tp\xe3\x86\xa9[b\xd0]\xfb\xfb\xfc\x94\x81\x33/\xe1\x06q\xe1\xdf\x63\x63\xd6\x31\x94<\xd4@\xc2\xfa\x11\xcdp\v\xde\x9d\x7f\x35\xc3gy\x9f\xbd\x86\xa0\x82\x05~0\x82\x05z0\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", }; -static const size_t kLen100 = 2279; +static const size_t kLen100 = 2002; static const char *kData100[] = { - "0\x82\b\xe3\n\x01\x00\xa0\x82\b\xdc\x30\x82\b\xd8\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\b\xc9\x30\x82\b\xc5\x30\x82\x01+\xa1]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x37\x32\x31\x35\x36\x32\x31Z0\x81\x93\x30\x81\x90\x30W0\r\x06\t`\x86H\x01\x65\x03\x04\x02\x01\x05\x00\x04 \xbci\x8a\xbb\x16!z\x1e\x0e\xc0\xb5\x02\xc3m5w\x8d\x64Q\x8d\xd9\x46Y\x97?1\xc2\x93\xa9(\xf6q\x04 \xa6\xeei\x05\x46\xcd\x13\x98\x38\x93\xf6\x82l\xfa\xd2\xba\xb0\x96\x62\xed`\xff\xd6\xc3{k\x7f`L6x\xd7\x02\x02wx\xa1\x11\x18\x0f\x32\x30\x31\x38\x30\x38\x31\x32\x30\x35\x33\x39\x32\x35Z\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x37\x32\x31\x35\x36\x32\x31Z\xa0\x11\x18\x0f\x32\x30\x33\x31\x30\x35\x32\x35\x32\x31\x35\x36\x32\x31Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\xe5\x90_\xb2\x1e\xe2\xe4\xd0\xde\fY\xc5\x8d|y\xa2\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\x89 ]\xc2\x87u#ux\x0f\x93\x89\xba\xe1/\tzz9\xeb\x45\x45\xf5g|\xeb\xa9\xbcr?|\xc2r\xe7I\xff \\\xeb\x13\xf0S\xe3\f\x1f\xee\xa9]\"m\xc9\xd9\x9d\x36\x1b\xe8\xb3\xa8\x06\xb4\fM\xceq-EJ[C\xe8\xa7\xeb\x11\xf1%\x06\x89\xc3\xcd\x42\x1b\xe2\xc4,\x1e\x02\x82U\xd8\vJa\xa0T\xfbgd\xf0\xc3\xde\x91\xf4\xca\x02/w\x13u\t\xf3\x90\x1b\xd7\n\xe9\xba\x1a\xb0\xeb\x9b\xbf\x65\xb4\xe5\x95m@\x8c\xect\xdc\x9d\b]\xa0,\xab?\xdf\xc5\x1b\xa0=\xf0\xf5\xdb\x87$\xc8}\xee\x62\"\xe8\x36\x90-U\x01$\xef\xf4:Z\xcc\x92\x87y\xb8\x1eUrJ1\x8f\x02P\xea\xe2\fa}\x82\x8aU;\xbf\x63\x03J\x8d\x13\xf7\x16\x12%\x8fM\xf5\xc5L\xf6\a\xc8\xd0\x46\xf0\xb0,p\xe1\xf5Y\xc1r]\x9c\xf8\xaa\xfd\xf9U\xf8\x15\xc6ImY\x89\xc4\x33q\xb2\x89X\xe2\x00\xdb[m%\x8f\x8dQ.\xa7\x45\xee\xfd\xea\xf6\x01\xeb\x15\x95K(\xfa\x9a\x94/\xa2\xab%\xb7l(\xc4\x9d\xd9\xf6Je\x91\x7f\xf7\x42\x85Nq\x8c\xcc\x95J\xfa\tD\xd8\xd0S\xd0;K\xff\xa7\xa0g\xf9%\xe2g\xc5oj\xc8\x30\xfa\xed|\xfe\x46\x99\x12\x9d\t\x1f\x06^1t\x87\xcf!\xc1Pp\xf8\x8e\x96\xceP\x9c\r\xa8\xcb\x0e\xdcz\xd2@`\x1b\x46\xfa\x19\xcd\x89T\xb1w\x7f\x06\xbd\x17\xbd\x16sD:Vw\xf9\xd3\xab\fj\x01j~\xe3\xad\x91\xfe~k#\x96\xde\xea\xd9\xc9Y[0\xd4\xd4`7*\xeb\xed\xb8\x92Y\xc3u\xc1\x13@\xf8\x9f\x61}\xef\xe3\xdfs\xf9w\xb9\x82\xb0\xe2\x32\xc2\x7fv\xfd#Uw\xf2\x35\xbc\xfe~\xffU\f$\xe6^!\xf5\xba\xe7\x94\xf6\xf0\x96\xb6&\xdf\x33\xab!\x96\x90\xb1j\x8bP\xa3S\x05[\x9f.I\xac\xe5\x1c\xd8\x8b@\xbb\x9fni\ar\xa6\xb4\x1d\x43\x00=e\x1d\x06\xb6\x01\x80\xb4\xb1u\x93\x8c\xc0k\xc1\x1d\xd1><\xda:\xc2\x17x\x8b\x10\xe9\x91G\xb4\xf9\x43\x8f\xacx\xa5\xa0\x82\x05~0\x82\x05z0\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", + "0\x82\a\xce\n\x01\x00\xa0\x82\a\xc7\x30\x82\a\xc3\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\a\xb4\x30\x82\a\xb0\x30\x81\xb6\xa1*0(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03\x41WS\x18\x0f\x32\x30\x32\x33\x30\x36\x30\x33\x30\x30\x33\x32\x31\x39Z0R0P0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\x80\x00\x18\x0f\x32\x30\x32\x33\x30\x36\x30\x33\x30\x30\x33\x32\x31\x39Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\xe3\xfeZ\xf6\x87\x97\xb3\xac\xff\x95:\xe2RU\xca!0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00}\xf1\x96\xba\x43\x64\xf2\x61\xed\x8bgI\xdd!\x1f\xbb\x1a\xa5,e\xbb\x01^\b\xe3\xa6\th\x9d\xf5\xe8\xa7\x97\x81\xb8\x0f\x89\x94\x8b\x9b\x1c;\x95Y\x05\x62\vZn\x18g\x87m\xd7S\xa8\x9aJ*\xb7\xcf\xfdj'*\xd3\x10Hh\xc0\xec\x7f\xf5\xfd+\xf9\xea\xe6\x17~-\x91`\xc5\n'\xb8\v\xa0$_\x06\x1dI\xf1\xa2\x32\x1f!\xb4\x89.\xe3jI*<\xa9\x32N^7s\x1a\xde\x94_b_\xae\xb8S-\x93H\xec\xba\x36\x63\xb6\x44\xfd\x8a\x36\x0e\xd8\x34\x06o\xc5X\xf5\xa1\xad\x1a\xe7S\r\x8a\x44x\xba\x9c\xe8\xa9\xd3-\x14|\xc4\x35(b82zt\x88\xc5\x97\x13\x94\xfa\x46!.\xe6\xc8\fR\x85`\x1a\x31~\xc9\x19\xfe(\xd7\b\xe4\xb5\x8b\xad\xbd\xcc\xf3\x85h3\xb9\xebu\xceUPx\xea\xb4\fi'!\x97\x9bJ\x1aX\xf2X\xc1\xeb\xae\x82h\x88\xc0\xd5\xbcg\xa4#\xd9\x02\xee\x82\x66\xe8&6Gy\x83\x39\x9f\x0e\x81\x35\xd8\x36o\xda\x63\xf5\x89\x38L\xbf\xd3\xa1\xe7\xa4\xcb\xfaO\xec\x35\t\xe2n\xaf\xd8\xcb\xe8|\x1bMg\xc5\nD2\x9d\x14\xe1\x11n\t\xcb\xf7joZA\xa1\xd4\x0fM\x9aP\xf8\xdd\xaf-\x9d\xa1\xf1\xd9\xfe\xfc\xd8\x30\xf5\xf1;\"\x8c\xb4\x36P]\xff\xac\x8b\x34\t\xc1\x9a\x06\x9d*\xed\xacg\xab\xc9\x1fV\xd5\xb5\\\xb9\n\xc1hQ\x02<\xd4\x13\x63$\x1d\\\x1a\xb4\xbb\b{]kc\xcf\xad\x35?\xb4\x15\x88\a\xd5\x8f", }; -static const size_t kLen101 = 2261; +static const size_t kLen101 = 1405; static const char *kData101[] = { - "0\x82\b\xd1\n\x01\x00\xa0\x82\b\xca\x30\x82\b\xc6\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\b\xb7\x30\x82\b\xb3\x30\x82\x01\x19\xa1]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com\x18\x0f\x32\x30\x32\x31\x30\x36\x33\x30\x32\x31\x33\x35\x34\x35Z0\x81\x81\x30\x7f\x30W0\r\x06\t`\x86H\x01\x65\x03\x04\x02\x01\x05\x00\x04 \xbci\x8a\xbb\x16!z\x1e\x0e\xc0\xb5\x02\xc3m5w\x8d\x64Q\x8d\xd9\x46Y\x97?1\xc2\x93\xa9(\xf6q\x04 \xa6\xeei\x05\x46\xcd\x13\x98\x38\x93\xf6\x82l\xfa\xd2\xba\xb0\x96\x62\xed`\xff\xd6\xc3{k\x7f`L6x\xd7\x02\x02wx\x82\x00\x18\x0f\x32\x30\x32\x31\x30\x36\x33\x30\x32\x31\x33\x35\x34\x35Z\xa0\x11\x18\x0f\x32\x30\x33\x31\x30\x36\x32\x38\x32\x31\x33\x35\x34\x35Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\xdd\xd8\x17\xd4m\x0ei\x18,\x84\xba\xd7\x98#\xac?0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\x0e\x66'3\xc7\xf9\x44\xa8\x9d\x45P6\xdbq\xa7\xffV\x0f\xf6r\xc0\xa1\x81\xd1\t\xb0\x96X\xef%{\x06\xde\x9d\xc2\x17\x98\xbe\xec\n\x1b\xa5k,\x9aK?\xa8{\xc6\xb4\x8cJ\xd4g\x81\xe5\xc6\xa5N\xa6V\xcd|\x10\r8Q\xed\xbf\xbe\x9a\xbf\xef\xab\xa9\a\x83LW\xab\xd9\x13\x42\xc0\x66\xec^~\xa7M\xae\x61h\xc5\x1b?\xbf}\x8d\xbfNU\xd9\xc1=\xfa\xa3\xa7\xf6~\x8ex\x94}M\xb7-T\xff^\xebr\xd6\xe0k\x16\xec\x35|\xe3+:\x8a:\xab\x65\x9b\xbc\x18\xdc#\x02\xfe\x34\x95\xed`eX\x1c\x9c\x30\x12\x99\x8fmg\\\xd6\xfc\x98\xd0\x15]\xc7\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", + "0\x82\x05y\n\x01\x00\xa0\x82\x05r0\x82\x05n\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\x05_0\x82\x05[0\x81\xef\xa1P0N1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\f0\n\x06\x03U\x04\v\f\x03s2n1\x16\x30\x14\x06\x03U\x04\x03\f\rs2n Test Cert\x18\x0f\x32\x30\x32\x30\x30\x36\x32\x32\x32\x31\x33\x37\x33\x34Z0e0c0;0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xdey2\xb3!~H\xfbNG\xae\v\x90\a\xa5Sv\xae\x44\xca\x04\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o\x02\x02wx\x80\x00\x18\x0f\x32\x30\x32\x30\x30\x36\x32\x32\x32\x31\x33\x37\x33\x34Z\xa0\x11\x18\x0f\x32\x30\x38\x30\x30\x36\x30\x37\x32\x31\x33\x37\x33\x34Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10Kz\xcf\x10\xec\xc7\x8fP\x8b,y\xa5\x83?@[0\t\x06\a*\x86H\xce=\x04\x01\x03G\x00\x30\x44\x02 '5E\x86z\xd7\xd1\xbd\x9c_A\xf1\f\x17\xc3\xa6\xc3yjs\xbb\xf9\x06\xe8\xe3\x19&\x93&\xcf?+\x02 \x1b\x9d\xf6\xb5-W\xe5\x1d\x9f\xc8v\xe4\x1c\x65,\xba\xa8\x96&\x81J\xee\x95t\xde\x30\xc3]\b\xb5\x11\x43\xa0\x82\x04\x11\x30\x82\x04\r0\x82\x04\t0\x82\x01\xf1\xa0\x03\x02\x01\x02\x02\x01\x03\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r190711214905Z\x18\x0f\x32\x31\x31\x39\x30\x36\x31\x37\x32\x31\x34\x39\x30\x35Z0N1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\f0\n\x06\x03U\x04\v\f\x03s2n1\x16\x30\x14\x06\x03U\x04\x03\f\rs2n Test Cert0Y0\x13\x06\a*\x86H\xce=\x02\x01\x06\b*\x86H\xce=\x03\x01\a\x03\x42\x00\x04r\x9b\x98\xf3VJ\xa0\xf7\xed\x1d%(U\f\xcb\xd7-\xe4\xfbrf\x04;\xd1\xfc\xda\xa3M\x0e\x8d.D\xd9l\x14\xc1%\x0e\xfb\xc8\t!{k\x06^\xf3\xe9\xcd\xcc\xc3\n5s\x9a\xbe\xde\xce\xc0\xa8\xec\xf1\xad\x89\xa3\x81\xe0\x30\x81\xdd\x30,\x06\t`\x86H\x01\x86\xf8\x42\x01\r\x04\x1f\x16\x1dOpenSSL Generated Certificate0\x1d\x06\x03U\x1d\x0e\x04\x16\x04\x14\v\xb5\x65\xe7<\xd5wiz\r\xf2\x97?\xf6\xcb\x16\x05\x12\x1b\x96\x30\x1f\x06\x03U\x1d#\x04\x18\x30\x16\x80\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o0\f\x06\x03U\x1d\x13\x01\x01\xff\x04\x02\x30\x00\x30\v\x06\x03U\x1d\x0f\x04\x04\x03\x02\x04\xb0\x30\x1d\x06\x03U\x1d%\x04\x16\x30\x14\x06\b+\x06\x01\x05\x05\a\x03\x01\x06\b+\x06\x01\x05\x05\a\x03\x02\x30\x33\x06\b+\x06\x01\x05\x05\a\x01\x01\x04'0%0#\x06\b+\x06\x01\x05\x05\a0\x01\x86\x17http://ocsp.s2ntest.com0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00YK\xd9\xc6\xee\x12>\x8c\xdb\x37\xb4\f\xcc\xc9\xaf\x96\xff\xab\x32\xf9T\x80/.@k9\xbf\xf3\xa0\xa2\x96\xc0+Z\xb2\xa5 z\xb3\x84~\x01\x16y\x90\xfd\xa4\xda\x89hR;.\xc4\a\xf9/\xb2\x8b\xc4IZ\xb9p!I\xebU\xd6*\xca\xb6m\\\xee\xe8\xb9\x92\xaaKF\xc9\x01s\x9d\x1e\xf3$\x1a\xf8\x9c\xd1\xbb\x9a~\xbe\xcdh\xf1\x14\xaeOC\xa9\x1a,\xf4\xd2\x8a\xae\xdb\x90\xa2{\xd9\xd1i\x0f.\xa3\xd2\x9eP\xd3\xa0\xe6\t\xd6\x05q\xa0\xd1\xbb>\xd4;\xe4}\xce\x38\x83\x03\x42\xc6\xbf\x83`(\xce\xa5u\xb7\xf7\x1bn[\xea\xff\x32\x61\xd3\x36\x1b\x83\x1f\x1f\xe9&\xe7#T\x82\xce\xcb\xb9YL\xf6%v\xa4\x33\xb0\xef\xff#/C\x9e\x90\x91\xf4\x88\xbe\x1a\xf9s\x03\x00\xa7\x86\x03\x8a\xe8\x62R\x84\x7f\\F\xbd\\\x12\x03\xc3\xe5\xebr\"\xa1\xd6\xec\x19\x9e\x63>\t\x98\x9b\x43\xaay\x1e\x39nqY\xc9Qzj\xd1\xa7\xae\x8e\xd1Lj\x8d\vcj\x05\x92\xc1\x31k\x9d\x7f\x46\x65<\xd4<\x8b\x42\x8f\x7f\xb4J\xe8_\xd4\xaf\x1f\x97\xa8\xd5~K\x86\x82\x10\x92\tg\x14t<\xdd\x82,L@}S=\x82\x89g\x11\v\x91\x13(7\xd6-\x05\xa6\x04\x32\xc8\x66\xee**\xad\xe3\a\x04p\xff\xad\x9a\x8a`zY\x91o\b\x98\xc5s\x96\xdd\vu\xf8>9\n\xd9\xbd\x38\xa2\xbczUV\xdc\xd2&\xf2\x42^#\x02\xa1\x33u\x11\x96\xd4'#\xfe\x10\x37\xb2\x38\x13\xc9s\f\xf8\x95\xbd\xce\xdd>(\x17.\xfe\x9d?P\xdc\x88\x31\x1b\xf7\x9f\xcb\xbd\xa0l\x92J\x87\x16\xbe\xee\x85SA\xaf\xca\xa6MU\xfe\xd5k\xd2\xca\xd2\x45\x32\x19\x35\xeb\xac\xe1~PI\xfa\x92\xf1,^\xbe}\xa5s7\xb6\x14:s\xa4\n!\x00\xbeXw\x91\x89\xc7\xb0\x8b\rh\xa4\x18\xbat\x01U\x01Q\xb0\x38\xa0\x36n\"\xd5\x1b\x45G\xdc\xb0\xf3\x41\x13\x1a\x37{\xb6\x31\x02#\xa1\xf4\x94VO\x96\x93\x32\x87\xdd\x19\xda\x06v\xea\x02\xa6\x45\x11\x8e\x14\x84=\xe8", }; -static const size_t kLen102 = 1437; +static const size_t kLen102 = 2261; static const char *kData102[] = { - "0\x82\x05\x99\n\x01\x00\xa0\x82\x05\x92\x30\x82\x05\x8e\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\x05\x7f\x30\x82\x05{0\x82\x01\f\xa1P0N1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\f0\n\x06\x03U\x04\v\f\x03s2n1\x16\x30\x14\x06\x03U\x04\x03\f\rs2n Test Cert\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x37\x32\x33\x30\x33\x32\x35Z0\x81\x81\x30\x7f\x30W0\r\x06\t`\x86H\x01\x65\x03\x04\x02\x01\x05\x00\x04 \xbci\x8a\xbb\x16!z\x1e\x0e\xc0\xb5\x02\xc3m5w\x8d\x64Q\x8d\xd9\x46Y\x97?1\xc2\x93\xa9(\xf6q\x04 \xa6\xeei\x05\x46\xcd\x13\x98\x38\x93\xf6\x82l\xfa\xd2\xba\xb0\x96\x62\xed`\xff\xd6\xc3{k\x7f`L6x\xd7\x02\x02wx\x80\x00\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x37\x32\x33\x30\x33\x32\x35Z\xa0\x11\x18\x0f\x32\x30\x33\x31\x30\x35\x32\x35\x32\x33\x30\x33\x32\x35Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\x89\xcc\x1e\x90\xf7{R\xa8\r?\x02\x1dXJ'\x9a\x30\n\x06\b*\x86H\xce=\x04\x03\x02\x03H\x00\x30\x45\x02 &\xff,\xa5\xe8\xdb\xa6\xcf\xf0Z\"\xdbXBy\x8d\x9d\x98\xa2\x96*\x91\xa8\rN\xe1\x8f>\xbc\xc4\x1e\xdc\x02!\x00\xc2\xca\x31\x12\x81\xb4\xd9\x32\xcb\xa3\xbc\xf9y\xa4\x92\x30\\\xe6g\xdb\xed\xb1\xcaQ\xc9qJF^\xdd\x45\x95\xa0\x82\x04\x11\x30\x82\x04\r0\x82\x04\t0\x82\x01\xf1\xa0\x03\x02\x01\x02\x02\x01\x03\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r190711214905Z\x18\x0f\x32\x31\x31\x39\x30\x36\x31\x37\x32\x31\x34\x39\x30\x35Z0N1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\f0\n\x06\x03U\x04\v\f\x03s2n1\x16\x30\x14\x06\x03U\x04\x03\f\rs2n Test Cert0Y0\x13\x06\a*\x86H\xce=\x02\x01\x06\b*\x86H\xce=\x03\x01\a\x03\x42\x00\x04r\x9b\x98\xf3VJ\xa0\xf7\xed\x1d%(U\f\xcb\xd7-\xe4\xfbrf\x04;\xd1\xfc\xda\xa3M\x0e\x8d.D\xd9l\x14\xc1%\x0e\xfb\xc8\t!{k\x06^\xf3\xe9\xcd\xcc\xc3\n5s\x9a\xbe\xde\xce\xc0\xa8\xec\xf1\xad\x89\xa3\x81\xe0\x30\x81\xdd\x30,\x06\t`\x86H\x01\x86\xf8\x42\x01\r\x04\x1f\x16\x1dOpenSSL Generated Certificate0\x1d\x06\x03U\x1d\x0e\x04\x16\x04\x14\v\xb5\x65\xe7<\xd5wiz\r\xf2\x97?\xf6\xcb\x16\x05\x12\x1b\x96\x30\x1f\x06\x03U\x1d#\x04\x18\x30\x16\x80\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o0\f\x06\x03U\x1d\x13\x01\x01\xff\x04\x02\x30\x00\x30\v\x06\x03U\x1d\x0f\x04\x04\x03\x02\x04\xb0\x30\x1d\x06\x03U\x1d%\x04\x16\x30\x14\x06\b+\x06\x01\x05\x05\a\x03\x01\x06\b+\x06\x01\x05\x05\a\x03\x02\x30\x33\x06\b+\x06\x01\x05\x05\a\x01\x01\x04'0%0#\x06\b+\x06\x01\x05\x05\a0\x01\x86\x17http://ocsp.s2ntest.com0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00YK\xd9\xc6\xee\x12>\x8c\xdb\x37\xb4\f\xcc\xc9\xaf\x96\xff\xab\x32\xf9T\x80/.@k9\xbf\xf3\xa0\xa2\x96\xc0+Z\xb2\xa5 z\xb3\x84~\x01\x16y\x90\xfd\xa4\xda\x89hR;.\xc4\a\xf9/\xb2\x8b\xc4IZ\xb9p!I\xebU\xd6*\xca\xb6m\\\xee\xe8\xb9\x92\xaaKF\xc9\x01s\x9d\x1e\xf3$\x1a\xf8\x9c\xd1\xbb\x9a~\xbe\xcdh\xf1\x14\xaeOC\xa9\x1a,\xf4\xd2\x8a\xae\xdb\x90\xa2{\xd9\xd1i\x0f.\xa3\xd2\x9eP\xd3\xa0\xe6\t\xd6\x05q\xa0\xd1\xbb>\xd4;\xe4}\xce\x38\x83\x03\x42\xc6\xbf\x83`(\xce\xa5u\xb7\xf7\x1bn[\xea\xff\x32\x61\xd3\x36\x1b\x83\x1f\x1f\xe9&\xe7#T\x82\xce\xcb\xb9YL\xf6%v\xa4\x33\xb0\xef\xff#/C\x9e\x90\x91\xf4\x88\xbe\x1a\xf9s\x03\x00\xa7\x86\x03\x8a\xe8\x62R\x84\x7f\\F\xbd\\\x12\x03\xc3\xe5\xebr\"\xa1\xd6\xec\x19\x9e\x63>\t\x98\x9b\x43\xaay\x1e\x39nqY\xc9Qzj\xd1\xa7\xae\x8e\xd1Lj\x8d\vcj\x05\x92\xc1\x31k\x9d\x7f\x46\x65<\xd4<\x8b\x42\x8f\x7f\xb4J\xe8_\xd4\xaf\x1f\x97\xa8\xd5~K\x86\x82\x10\x92\tg\x14t<\xdd\x82,L@}S=\x82\x89g\x11\v\x91\x13(7\xd6-\x05\xa6\x04\x32\xc8\x66\xee**\xad\xe3\a\x04p\xff\xad\x9a\x8a`zY\x91o\b\x98\xc5s\x96\xdd\vu\xf8>9\n\xd9\xbd\x38\xa2\xbczUV\xdc\xd2&\xf2\x42^#\x02\xa1\x33u\x11\x96\xd4'#\xfe\x10\x37\xb2\x38\x13\xc9s\f\xf8\x95\xbd\xce\xdd>(\x17.\xfe\x9d?P\xdc\x88\x31\x1b\xf7\x9f\xcb\xbd\xa0l\x92J\x87\x16\xbe\xee\x85SA\xaf\xca\xa6MU\xfe\xd5k\xd2\xca\xd2\x45\x32\x19\x35\xeb\xac\xe1~PI\xfa\x92\xf1,^\xbe}\xa5s7\xb6\x14:s\xa4\n!\x00\xbeXw\x91\x89\xc7\xb0\x8b\rh\xa4\x18\xbat\x01U\x01Q\xb0\x38\xa0\x36n\"\xd5\x1b\x45G\xdc\xb0\xf3\x41\x13\x1a\x37{\xb6\x31\x02#\xa1\xf4\x94VO\x96\x93\x32\x87\xdd\x19\xda\x06v\xea\x02\xa6\x45\x11\x8e\x14\x84=\xe8", + "0\x82\b\xd1\n\x01\x00\xa0\x82\b\xca\x30\x82\b\xc6\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\b\xb7\x30\x82\b\xb3\x30\x82\x01\x19\xa1]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x37\x32\x30\x30\x32\x34\x33Z0\x81\x81\x30\x7f\x30W0\r\x06\t`\x86H\x01\x65\x03\x04\x02\x01\x05\x00\x04 \xbci\x8a\xbb\x16!z\x1e\x0e\xc0\xb5\x02\xc3m5w\x8d\x64Q\x8d\xd9\x46Y\x97?1\xc2\x93\xa9(\xf6q\x04 \xa6\xeei\x05\x46\xcd\x13\x98\x38\x93\xf6\x82l\xfa\xd2\xba\xb0\x96\x62\xed`\xff\xd6\xc3{k\x7f`L6x\xd7\x02\x02wx\x80\x00\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x37\x32\x30\x30\x32\x34\x33Z\xa0\x11\x18\x0f\x32\x30\x33\x31\x30\x35\x32\x35\x32\x30\x30\x32\x34\x33Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10*\x0f\xa7'\xd8=\x89\x03\x9e\x18\x98\x03\xe8`-\b0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00U\x04\xf2\xec\\>S\n\xca\xb1)\xf3\x32\x12J\xe0\x30|/\x83\xb9t\xbd\x83\xa3-_\xa4y1D\xb1\xcf\xf3,Q\x9a\xeb\xe6\xff\xb6L\xed\xbcz5~\x89\x83.P\"J\xaa\xf1\xf1I\xb1\x8a \x89\x14\x1e\x31\xa6\x9d\xd4\x39\x66&<\xa5\xc4\x39H\xbf\xc9\xbc,\"-\xce\t\xf0@\x03roH\x1a\xdemt\xda\x1f\v\x96\xa5h\x02\x8a'\"=\x86Hm\xee\\\xacU\x85wh\xbe\x15\xe4.cA\xa5\x11\xb7\x13\xf8\x11\xee\x92\xd3+^\xf3v\x8c\xe0\x9d/M\x90\x62\xb8\x41\xdc\x05\x94x~\xfa\x34\x45\x94\x01\f\xb8qW9\xd7o;\x90\x82Gk$\xe9\x96\xbe\x1c:Y^\x18O\xce\rs\xd3\x37\xb9/\x88\x1e\x15\xf0\x36(\x90$\x92\xbc\x00\xd0\x8a(t\xe1\x01\xa3o\xf5Q\xd4\x14k{=\t\xb0\xe9\xae\x94\x98:\x81\xd6\xc7s\x90\xd3\n-\x13\xdd\xcf\xad\x01\xe0S\xf4;\xcf\xc8i\xbeYU\"\x82\xf4\xf9\x83|\x9a\x99\xed\x17\x99\x00\x99\xb3\x87\xeb\xc5\t\\1\n\xd8\x1b\x81m\xe3\xb0\x61i \xd5ryk\xcc\x84\xb2\x1e\x42\xda\x37-\xbb_\xdf\x1c\xca\xc1\f/|\xdeu\xbd\xd5\x9a\x03\b\xd8S\xa0\x82\x05~0\x82\x05z0\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", }; -static const size_t kLen103 = 5; +static const size_t kLen103 = 2279; static const char *kData103[] = { - "0\x03\n\x01\x01", + "0\x82\b\xe3\n\x01\x00\xa0\x82\b\xdc\x30\x82\b\xd8\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\b\xc9\x30\x82\b\xc5\x30\x82\x01+\xa1]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x37\x32\x31\x35\x36\x32\x31Z0\x81\x93\x30\x81\x90\x30W0\r\x06\t`\x86H\x01\x65\x03\x04\x02\x01\x05\x00\x04 \xbci\x8a\xbb\x16!z\x1e\x0e\xc0\xb5\x02\xc3m5w\x8d\x64Q\x8d\xd9\x46Y\x97?1\xc2\x93\xa9(\xf6q\x04 \xa6\xeei\x05\x46\xcd\x13\x98\x38\x93\xf6\x82l\xfa\xd2\xba\xb0\x96\x62\xed`\xff\xd6\xc3{k\x7f`L6x\xd7\x02\x02wx\xa1\x11\x18\x0f\x32\x30\x31\x38\x30\x38\x31\x32\x30\x35\x33\x39\x32\x35Z\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x37\x32\x31\x35\x36\x32\x31Z\xa0\x11\x18\x0f\x32\x30\x33\x31\x30\x35\x32\x35\x32\x31\x35\x36\x32\x31Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\xe5\x90_\xb2\x1e\xe2\xe4\xd0\xde\fY\xc5\x8d|y\xa2\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\x89 ]\xc2\x87u#ux\x0f\x93\x89\xba\xe1/\tzz9\xeb\x45\x45\xf5g|\xeb\xa9\xbcr?|\xc2r\xe7I\xff \\\xeb\x13\xf0S\xe3\f\x1f\xee\xa9]\"m\xc9\xd9\x9d\x36\x1b\xe8\xb3\xa8\x06\xb4\fM\xceq-EJ[C\xe8\xa7\xeb\x11\xf1%\x06\x89\xc3\xcd\x42\x1b\xe2\xc4,\x1e\x02\x82U\xd8\vJa\xa0T\xfbgd\xf0\xc3\xde\x91\xf4\xca\x02/w\x13u\t\xf3\x90\x1b\xd7\n\xe9\xba\x1a\xb0\xeb\x9b\xbf\x65\xb4\xe5\x95m@\x8c\xect\xdc\x9d\b]\xa0,\xab?\xdf\xc5\x1b\xa0=\xf0\xf5\xdb\x87$\xc8}\xee\x62\"\xe8\x36\x90-U\x01$\xef\xf4:Z\xcc\x92\x87y\xb8\x1eUrJ1\x8f\x02P\xea\xe2\fa}\x82\x8aU;\xbf\x63\x03J\x8d\x13\xf7\x16\x12%\x8fM\xf5\xc5L\xf6\a\xc8\xd0\x46\xf0\xb0,p\xe1\xf5Y\xc1r]\x9c\xf8\xaa\xfd\xf9U\xf8\x15\xc6ImY\x89\xc4\x33q\xb2\x89X\xe2\x00\xdb[m%\x8f\x8dQ.\xa7\x45\xee\xfd\xea\xf6\x01\xeb\x15\x95K(\xfa\x9a\x94/\xa2\xab%\xb7l(\xc4\x9d\xd9\xf6Je\x91\x7f\xf7\x42\x85Nq\x8c\xcc\x95J\xfa\tD\xd8\xd0S\xd0;K\xff\xa7\xa0g\xf9%\xe2g\xc5oj\xc8\x30\xfa\xed|\xfe\x46\x99\x12\x9d\t\x1f\x06^1t\x87\xcf!\xc1Pp\xf8\x8e\x96\xceP\x9c\r\xa8\xcb\x0e\xdcz\xd2@`\x1b\x46\xfa\x19\xcd\x89T\xb1w\x7f\x06\xbd\x17\xbd\x16sD:Vw\xf9\xd3\xab\fj\x01j~\xe3\xad\x91\xfe~k#\x96\xde\xea\xd9\xc9Y[0\xd4\xd4`7*\xeb\xed\xb8\x92Y\xc3u\xc1\x13@\xf8\x9f\x61}\xef\xe3\xdfs\xf9w\xb9\x82\xb0\xe2\x32\xc2\x7fv\xfd#Uw\xf2\x35\xbc\xfe~\xffU\f$\xe6^!\xf5\xba\xe7\x94\xf6\xf0\x96\xb6&\xdf\x33\xab!\x96\x90\xb1j\x8bP\xa3S\x05[\x9f.I\xac\xe5\x1c\xd8\x8b@\xbb\x9fni\ar\xa6\xb4\x1d\x43\x00=e\x1d\x06\xb6\x01\x80\xb4\xb1u\x93\x8c\xc0k\xc1\x1d\xd1><\xda:\xc2\x17x\x8b\x10\xe9\x91G\xb4\xf9\x43\x8f\xacx\xa5\xa0\x82\x05~0\x82\x05z0\x82\x05v0\x82\x03^\xa0\x03\x02\x01\x02\x02\x02wy0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r170905054322Z\x18\x0f\x32\x31\x31\x37\x30\x38\x31\x32\x30\x35\x34\x33\x32\x32Z0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com0\x82\x02\"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x02\x0f\x00\x30\x82\x02\n\x02\x82\x02\x01\x00\xaf\x41G\xedj~\xb1\x31\r\xe6L\xd8\x44u\xc5.O\xaa\xaf\x84N\xc5\xe0\xf3t\xd0o\x02\x87\xcaQh\x18\x83\xddK|\x8b\x31\xe8-9\t\x88\r\xa5\xbcygw\b\x0f\x8b\xc8\xa5\x8bj{h\xda\x05S\xbc\x35\x8f\xbb\x7f\x01&\xb9\x98\xe6{\\*\xe3\x1bS\x93\xb3\xfd*.8\xbc\x8f\xfc\xb1\t\x93\x95\xec\xf2\x96\xbc\x44\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", }; -static const size_t kLen104 = 5; +static const size_t kLen104 = 2261; static const char *kData104[] = { - "0\x03\n\x01\x02", + "0\x82\b\xd1\n\x01\x00\xa0\x82\b\xca\x30\x82\b\xc6\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\b\xb7\x30\x82\b\xb3\x30\x82\x01\x19\xa1]0[1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\x16\x30\x14\x06\x03U\x04\v\f\rs2n Test OCSP1\x19\x30\x17\x06\x03U\x04\x03\f\x10ocsp.s2ntest.com\x18\x0f\x32\x30\x32\x31\x30\x36\x33\x30\x32\x31\x33\x35\x34\x35Z0\x81\x81\x30\x7f\x30W0\r\x06\t`\x86H\x01\x65\x03\x04\x02\x01\x05\x00\x04 \xbci\x8a\xbb\x16!z\x1e\x0e\xc0\xb5\x02\xc3m5w\x8d\x64Q\x8d\xd9\x46Y\x97?1\xc2\x93\xa9(\xf6q\x04 \xa6\xeei\x05\x46\xcd\x13\x98\x38\x93\xf6\x82l\xfa\xd2\xba\xb0\x96\x62\xed`\xff\xd6\xc3{k\x7f`L6x\xd7\x02\x02wx\x82\x00\x18\x0f\x32\x30\x32\x31\x30\x36\x33\x30\x32\x31\x33\x35\x34\x35Z\xa0\x11\x18\x0f\x32\x30\x33\x31\x30\x36\x32\x38\x32\x31\x33\x35\x34\x35Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\xdd\xd8\x17\xd4m\x0ei\x18,\x84\xba\xd7\x98#\xac?0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00\x0e\x66'3\xc7\xf9\x44\xa8\x9d\x45P6\xdbq\xa7\xffV\x0f\xf6r\xc0\xa1\x81\xd1\t\xb0\x96X\xef%{\x06\xde\x9d\xc2\x17\x98\xbe\xec\n\x1b\xa5k,\x9aK?\xa8{\xc6\xb4\x8cJ\xd4g\x81\xe5\xc6\xa5N\xa6V\xcd|\x10\r8Q\xed\xbf\xbe\x9a\xbf\xef\xab\xa9\a\x83LW\xab\xd9\x13\x42\xc0\x66\xec^~\xa7M\xae\x61h\xc5\x1b?\xbf}\x8d\xbfNU\xd9\xc1=\xfa\xa3\xa7\xf6~\x8ex\x94}M\xb7-T\xff^\xebr\xd6\xe0k\x16\xec\x35|\xe3+:\x8a:\xab\x65\x9b\xbc\x18\xdc#\x02\xfe\x34\x95\xed`eX\x1c\x9c\x30\x12\x99\x8fmg\\\xd6\xfc\x98\xd0\x15]\xc7\x03\x1f\x15s\a0\x9f&\xa5:\xcf\xb4\xb3\x43\xbb\xaf\x0e\x65}\x03v'\x9eG\xe5\x81S\xd8xI\xcd\x64\xfe\xfao\x81\x96\xd4y\xfc\x35tX\xd8{\x1e\xcb\xf6\xebG\xda\xdb&\xa6\x99X=\xcc\xa3\x37\x41\xd8\xe4\xb8\x88JU\xb5\x8e\xfc\x95\xedx\xca\xcd)\x87\r\xdb\t/W~A\x94\x85\x8d\x13\xd7\xa2{\xf8\xaaOO\xe4\nR\x04\xc5\xeb\x65\x63\x04\x43\xee\xe2\x9aj\xf8\xaa\xb0\xc4\xc4\xd3\xf6K\xbdp\xcaW\x89\xbd\x98\x8b\x9a\xb4\xb5\xdb\x94mR\xa0*\x03\x19\x61\xee\xb8\x03\xe7y\x9d\xb7R\xb7\x87\xc0\xc6\xc7\xec\xf8\x91\xc6\xc1\x87\xf7n\xb8\x13\xd5t?H\xb1\xcd\x19u\xcb\xb1\x34J#\a\xb3>\xd1\x13t\x14z\xf3\x80\x15\x9e\x87-A\xefw\x0eX\f\xcf\xf8\xe3Y\xce\xc3\xb6\xe4{$G\x9a\x1a\xb6\x8c\xd4\xa9\x7f\\5tx\xf0\xa5p\xdc\x17\xe7J\xec\x92T\x92\x64\xd8\xbd\xf8\x32*\a2\x90\x44\xd1\xdc\x91\x1fyh\xea\x88\x92\xc7\xb0\xc6\x1c\xed)\xc7h\x7f\x06\x43\x33%\x05\xd1\xe5*\xb4\xd9\xfe\xc3\x01\x8djN'I\xc4\x93\xe9\x0fZ\xc0 U\xe8\xa2\xbc\x42S]E3\xb3\b\xc6\xc6\x17-\\\x19\t\x13\xfd\x1f$\xe9=H\xffP\x81P\xcc\x80\x42\xf3w\xb0\xff\xa9\xe7`p\x97]\xb8\xcbx\x15P;\x8b\n\x9a\x9a\xb0\xbe\x61_\x0e\xfa\x1e\xd9\x10&\xb8\x03\xffP+l\x06V\xaf^\xa4tQ\xaczo\x81\x63\xf2\xd2t\xdd\x1f\x9d\x17\xc8\x90\x9e\xa4y\xc5_\xd7\x12\xb2\x39\x9c\x06\x35\x45\x9a\xae\xa4\x14\x17g\xd7\x9f\xa2\x41\x86M\xd4\x31\xd5\x1a\xbe\x8e\\\xa9\r\xdc\x8a\n\xa9\x65J\xd5\x38\"\xc8\x14[\xb9_P\x8b\x94", }; -static const size_t kLen105 = 5; +static const size_t kLen105 = 1437; static const char *kData105[] = { - "0\x03\n\x01\x03", + "0\x82\x05\x99\n\x01\x00\xa0\x82\x05\x92\x30\x82\x05\x8e\x06\t+\x06\x01\x05\x05\a0\x01\x01\x04\x82\x05\x7f\x30\x82\x05{0\x82\x01\f\xa1P0N1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\f0\n\x06\x03U\x04\v\f\x03s2n1\x16\x30\x14\x06\x03U\x04\x03\f\rs2n Test Cert\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x37\x32\x33\x30\x33\x32\x35Z0\x81\x81\x30\x7f\x30W0\r\x06\t`\x86H\x01\x65\x03\x04\x02\x01\x05\x00\x04 \xbci\x8a\xbb\x16!z\x1e\x0e\xc0\xb5\x02\xc3m5w\x8d\x64Q\x8d\xd9\x46Y\x97?1\xc2\x93\xa9(\xf6q\x04 \xa6\xeei\x05\x46\xcd\x13\x98\x38\x93\xf6\x82l\xfa\xd2\xba\xb0\x96\x62\xed`\xff\xd6\xc3{k\x7f`L6x\xd7\x02\x02wx\x80\x00\x18\x0f\x32\x30\x32\x31\x30\x35\x32\x37\x32\x33\x30\x33\x32\x35Z\xa0\x11\x18\x0f\x32\x30\x33\x31\x30\x35\x32\x35\x32\x33\x30\x33\x32\x35Z\xa1#0!0\x1f\x06\t+\x06\x01\x05\x05\a0\x01\x02\x04\x12\x04\x10\x89\xcc\x1e\x90\xf7{R\xa8\r?\x02\x1dXJ'\x9a\x30\n\x06\b*\x86H\xce=\x04\x03\x02\x03H\x00\x30\x45\x02 &\xff,\xa5\xe8\xdb\xa6\xcf\xf0Z\"\xdbXBy\x8d\x9d\x98\xa2\x96*\x91\xa8\rN\xe1\x8f>\xbc\xc4\x1e\xdc\x02!\x00\xc2\xca\x31\x12\x81\xb4\xd9\x32\xcb\xa3\xbc\xf9y\xa4\x92\x30\\\xe6g\xdb\xed\xb1\xcaQ\xc9qJF^\xdd\x45\x95\xa0\x82\x04\x11\x30\x82\x04\r0\x82\x04\t0\x82\x01\xf1\xa0\x03\x02\x01\x02\x02\x01\x03\x30\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x30(1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n0 \x17\r190711214905Z\x18\x0f\x32\x31\x31\x39\x30\x36\x31\x37\x32\x31\x34\x39\x30\x35Z0N1\v0\t\x06\x03U\x04\x06\x13\x02US1\v0\t\x06\x03U\x04\b\f\x02WA1\f0\n\x06\x03U\x04\n\f\x03s2n1\f0\n\x06\x03U\x04\v\f\x03s2n1\x16\x30\x14\x06\x03U\x04\x03\f\rs2n Test Cert0Y0\x13\x06\a*\x86H\xce=\x02\x01\x06\b*\x86H\xce=\x03\x01\a\x03\x42\x00\x04r\x9b\x98\xf3VJ\xa0\xf7\xed\x1d%(U\f\xcb\xd7-\xe4\xfbrf\x04;\xd1\xfc\xda\xa3M\x0e\x8d.D\xd9l\x14\xc1%\x0e\xfb\xc8\t!{k\x06^\xf3\xe9\xcd\xcc\xc3\n5s\x9a\xbe\xde\xce\xc0\xa8\xec\xf1\xad\x89\xa3\x81\xe0\x30\x81\xdd\x30,\x06\t`\x86H\x01\x86\xf8\x42\x01\r\x04\x1f\x16\x1dOpenSSL Generated Certificate0\x1d\x06\x03U\x1d\x0e\x04\x16\x04\x14\v\xb5\x65\xe7<\xd5wiz\r\xf2\x97?\xf6\xcb\x16\x05\x12\x1b\x96\x30\x1f\x06\x03U\x1d#\x04\x18\x30\x16\x80\x14\x12\xdf\x81uq\xca\x92\xd3\xce\x1b,+w;\x9e\x33w\xf3\xf7o0\f\x06\x03U\x1d\x13\x01\x01\xff\x04\x02\x30\x00\x30\v\x06\x03U\x1d\x0f\x04\x04\x03\x02\x04\xb0\x30\x1d\x06\x03U\x1d%\x04\x16\x30\x14\x06\b+\x06\x01\x05\x05\a\x03\x01\x06\b+\x06\x01\x05\x05\a\x03\x02\x30\x33\x06\b+\x06\x01\x05\x05\a\x01\x01\x04'0%0#\x06\b+\x06\x01\x05\x05\a0\x01\x86\x17http://ocsp.s2ntest.com0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x00\x03\x82\x02\x01\x00YK\xd9\xc6\xee\x12>\x8c\xdb\x37\xb4\f\xcc\xc9\xaf\x96\xff\xab\x32\xf9T\x80/.@k9\xbf\xf3\xa0\xa2\x96\xc0+Z\xb2\xa5 z\xb3\x84~\x01\x16y\x90\xfd\xa4\xda\x89hR;.\xc4\a\xf9/\xb2\x8b\xc4IZ\xb9p!I\xebU\xd6*\xca\xb6m\\\xee\xe8\xb9\x92\xaaKF\xc9\x01s\x9d\x1e\xf3$\x1a\xf8\x9c\xd1\xbb\x9a~\xbe\xcdh\xf1\x14\xaeOC\xa9\x1a,\xf4\xd2\x8a\xae\xdb\x90\xa2{\xd9\xd1i\x0f.\xa3\xd2\x9eP\xd3\xa0\xe6\t\xd6\x05q\xa0\xd1\xbb>\xd4;\xe4}\xce\x38\x83\x03\x42\xc6\xbf\x83`(\xce\xa5u\xb7\xf7\x1bn[\xea\xff\x32\x61\xd3\x36\x1b\x83\x1f\x1f\xe9&\xe7#T\x82\xce\xcb\xb9YL\xf6%v\xa4\x33\xb0\xef\xff#/C\x9e\x90\x91\xf4\x88\xbe\x1a\xf9s\x03\x00\xa7\x86\x03\x8a\xe8\x62R\x84\x7f\\F\xbd\\\x12\x03\xc3\xe5\xebr\"\xa1\xd6\xec\x19\x9e\x63>\t\x98\x9b\x43\xaay\x1e\x39nqY\xc9Qzj\xd1\xa7\xae\x8e\xd1Lj\x8d\vcj\x05\x92\xc1\x31k\x9d\x7f\x46\x65<\xd4<\x8b\x42\x8f\x7f\xb4J\xe8_\xd4\xaf\x1f\x97\xa8\xd5~K\x86\x82\x10\x92\tg\x14t<\xdd\x82,L@}S=\x82\x89g\x11\v\x91\x13(7\xd6-\x05\xa6\x04\x32\xc8\x66\xee**\xad\xe3\a\x04p\xff\xad\x9a\x8a`zY\x91o\b\x98\xc5s\x96\xdd\vu\xf8>9\n\xd9\xbd\x38\xa2\xbczUV\xdc\xd2&\xf2\x42^#\x02\xa1\x33u\x11\x96\xd4'#\xfe\x10\x37\xb2\x38\x13\xc9s\f\xf8\x95\xbd\xce\xdd>(\x17.\xfe\x9d?P\xdc\x88\x31\x1b\xf7\x9f\xcb\xbd\xa0l\x92J\x87\x16\xbe\xee\x85SA\xaf\xca\xa6MU\xfe\xd5k\xd2\xca\xd2\x45\x32\x19\x35\xeb\xac\xe1~PI\xfa\x92\xf1,^\xbe}\xa5s7\xb6\x14:s\xa4\n!\x00\xbeXw\x91\x89\xc7\xb0\x8b\rh\xa4\x18\xbat\x01U\x01Q\xb0\x38\xa0\x36n\"\xd5\x1b\x45G\xdc\xb0\xf3\x41\x13\x1a\x37{\xb6\x31\x02#\xa1\xf4\x94VO\x96\x93\x32\x87\xdd\x19\xda\x06v\xea\x02\xa6\x45\x11\x8e\x14\x84=\xe8", }; static const size_t kLen106 = 5; static const char *kData106[] = { - "0\x03\n\x01\x05", + "0\x03\n\x01\x01", }; static const size_t kLen107 = 5; static const char *kData107[] = { - "0\x03\n\x01\x06", + "0\x03\n\x01\x02", }; -static const size_t kLen108 = 1870; +static const size_t kLen108 = 5; static const char *kData108[] = { - "-----BEGIN CERTIFICATE-----\nMIIFODCCAyCgAwIBAgIJAIbNvSGMRNd3MA0GCSqGSIb3DQEBCwUAMCgxCzAJBgNV\nBAYTAlVTMQswCQYDVQQIDAJXQTEMMAoGA1UECgwDczJuMCAXDTE3MDkwNTA1MTUw\nNVoYDzIxMTcwODEyMDUxNTA1WjAoMQswCQYDVQQGEwJVUzELMAkGA1UECAwCV0Ex\nDDAKBgNVBAoMA3MybjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL44\nCoKiyb2g53V0t6j6TQPoaHWHDpT/o4rew8CNNDi+NrIBFtF5pPbtpBk8CBVtYkDw\nj6NJAdMDE8UsF67mSacyNmrDGGzaZFRsTAQU/eKfTiXJ5Y3mgmLBHtlnXJvd9IsZ\ndsPTIxt2ru4msJgC/kenBtOlaZE5Ux/W+vmNTEFDPfYz5sqh69oOdznMNHi9lnJ1\nC7HzhUDjcUy0D2iha3QHCXQfoMusgPOiewgEnT48j6hDKqXsRorFME19m4vGua+y\nfROZpl0qS1Uh7m62X59VLqGXK/Cs6PfSQG18hLzpMYvSMR/rI3bjdNmzwbOj7GEE\n4s6bAE34LSLo64imVukS6ha7LeJwh8vDD22P2aD4rDGiAN/mhXVC8qRr8wyXrIr2\nhUpp42iJVyzVHWDRkq4dU31xbNsj/89FEh+XOYiuM7ZgeHV/Ie89nr78vOfv0iCM\ngCFsykpFZ+8vDC22m6pGrl58VdY59d6jHtpNtQYWn1B5wxBx0ugPHd0uRyBvk8zr\nIf9A60QsQ56F3imJC6dR+4R8M8t84Wm6sDQAVvjyYoy9u4e4rLXT5IMFHGjI7Vda\nhA0BmIBzBLfOb6ZUX2na0ckGvVu8DCrm9lJP1NYpHuQ3W2Hws1+rMD0URJqZy/D2\nbttPxVgT/5KqCSpmBjvsv2unTfxVbZInQQFtt70lAgMBAAGjYzBhMB0GA1UdDgQW\nBBQS34F1ccqS084bLCt3O54zd/P3bzAfBgNVHSMEGDAWgBQS34F1ccqS084bLCt3\nO54zd/P3bzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG\n9w0BAQsFAAOCAgEAs2C1eSchstZ7wUaOfJ4/4T2bzZ+aPpb9qR9rU+no8QpqW0TO\nP5JROba0mpD3oRrS8hEihp2UPpHII1JRqzytq5GHM6rW9sowxJqhhp46LxtAqIeL\n1k2PB53E9UIav4kf4C1eO32iO00ndK/fuWxku/95kIC7o5pQajCksEkeEoKx6oUp\n6Rt2KAGrEImpoEP4qqw3GN8GrntC0s+FfZYsrj/KTJcQQBg18g7UY6rj0db1OxbK\nK7USvQzPWh7c1mQPIFYfTnvn3KA14rUuWSW5NF9Eb6rwuczCWhzydvz94zeWMYrH\nuDwJLbtLBv6f6CPPmladG8BpGKBb3p9l8FzfvUVtAtpBFcPZ40HemNO50kU27blN\nmpvLCs6HcJ0/mgz+bVNDkkXyB1PSHbVqaWFJ4Sp/mo4liNgQBGgDfokC/4+hk30E\nMn8wWjILbmdnqiUSXEwroEi1qNVv/PJ97ZBOpQx01dcftuCxBIrQSAp3bsbguOoi\nC/tAoGPsYpxHHffmHFD+2WZDrBYKwzl4S7j4/NRt57DdLZ8tdmLQoWyFPjmPyRJL\nFhIqLSrlmZgT2/FNOOYRgZ+Z4uaoEZVdZ9YLj6R+wW4NBi5K+sd1/R+R7Es9iQFq\nSYKXaJNh0sbvVOofX6/TqBapmcbVu3NbRnU6Csc2YgdY4WdN0G0ADWC0i8A=\n-----END CERTIFICATE-----\n", + "0\x03\n\x01\x03", }; -static const size_t kLen109 = 1740; +static const size_t kLen109 = 5; static const char *kData109[] = { - "-----BEGIN CERTIFICATE-----\nMIIE1zCCAr8CFC7H11oa4DYsBEHlPyQFUmccFsByMA0GCSqGSIb3DQEBCwUAMCgx\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEMMAoGA1UECgwDczJuMB4XDTIzMDYw\nMzAwMjc1NFoXDTIzMDYwMzAwMjc1NFowKDELMAkGA1UEBhMCVVMxCzAJBgNVBAgM\nAldBMQwwCgYDVQQKDANBV1MwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQCvQUftan6xMQ3mTNhEdcUuT6qvhE7F4PN00G8Ch8pRaBiD3Ut8izHoLTkJiA2l\nvHlndwgPi8ili2p7aNoFU7w1j7t/ASa5mOZ7XCrjG1OTs/0qLji8j/yxCZOV7PKW\nvEQ8Q0Wl9dVsS6myDLa4claVrbxnOSaGYRMC88vhyjuAJMlAu7u12XU3L2hqSjEC\nuKcatWUscRFGxVq1bz1oIOXyIVv1XWTwNpyPjB/eAhow4iXuF8H+XdSW9TP5Iv/7\nSunrW3K5nWX9mao61QJlpShfw46RE7zUpc4sHLnuln/1pNTd4CDZJAdU34HlK/pF\n6zyAB10P/NbsTRhRaE9omC9FQZNHT9v6OeyKQbcOzGvpZMJlYGtpuZZA7tK0J4db\ncrfwD3sDs1G+ta6b/eDcCPFEoKp61+hmsyo7FshR2izNJ4v5XohGzmbSLdcrRBPN\n0qfpmTxCRv0VAH0FBHcqibXjgyYex5FzpwJsYlkFXB/eRypMtWCG8k0Q+p1YBo5o\nlApXuWpRD5pLsk3xIyPSCapapOiX1DGjxpeQ4owyDyZfu7QZI9S3qXe1ysq+30fF\nERyO+NxaR+gaNv7YG90uniGKYf2nHerL5Zi38KJp6Pzxo3TtmwkuGy9xnd4aWQqS\nEgf5wTpTU/KUXX5dVolxltsbI0zq5mqexc8AmW5UcyejCwIDAQABMA0GCSqGSIb3\nDQEBCwUAA4ICAQB04qQEq93jsmF0LrsdTqmojzY32q7rahamNbcwiW73b9N2ubgr\nSSxMkRDKZ9+SwQ84zbkIrsz0p/LSHmKyVyIWJhSgqq8tcdJ93wNK00/w+LRWO8eL\nsGsKiUVZQXBA2gHELaZkHrdIMiT96iMHwwbp1uf/TevbDdz73J22EmBovc8Oe7Bk\nbyxmomlckWmo9lKbIjNn3BG/+VntHbptIvhXLybuZfNKgjxLEwdi93JgF22GZ5GC\ne2sS9HkhJSj0SF5u8mdKSRf1+ujkEbXuyMezAk+EZW4GEO/+OLJesXTVSPRUMkEp\njFs4bk04SAZ3myGqj2fUZetQYjZz86f+Wcdid1RO7N35SQeAwcq3h11LzQN4HXB8\n3NUi+D/ThYHV7lzcC5K4YaD3h2NbCy+npy/g5cOXt+0J6qvMitECCLtTb4rNyiwe\neT4o1wjktYutvczzhWgzuet1zlVQeOq0DGknIZebShpY8ljB666CaIjA1bxnpCPZ\nAu6CZugmNkd5gzmfDoE12DZv2mP1iThMv9Oh56TL+k/sNQnibq/Yy+h8G01nxQpE\nMp0U4RFuCcv3am9aQaHUD02aUPjdry2dofHZ/vzYMPXxOyKMtDZQXf+sizQJwZoG\nnSrtrGeryR9W1bVcuQrBaFECPNQTYyQdXBq0uwh7XWtjz601P7QViAfVjw==\n-----END CERTIFICATE-----\n", + "0\x03\n\x01\x05", }; -static const size_t kLen110 = 1744; +static const size_t kLen110 = 5; static const char *kData110[] = { - "-----BEGIN CERTIFICATE-----\nMIIE2zCCAsOgAwIBAgICd3gwDQYJKoZIhvcNAQELBQAwKDELMAkGA1UEBhMCVVMx\nCzAJBgNVBAgMAldBMQwwCgYDVQQKDANzMm4wIBcNMTcwOTA1MDUzOTI1WhgPMjEx\nNzA4MTIwNTM5MjVaMEAxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEMMAoGA1UE\nCgwDczJuMRYwFAYDVQQDDA1zMm4gVGVzdCBDZXJ0MIIBIjANBgkqhkiG9w0BAQEF\nAAOCAQ8AMIIBCgKCAQEAsdNiIHYethm112F5avA/cm2F34+Lv6/fnV5evNGqaV9e\nv35B0Bvi+0vMTax2RUj4KKAMXcznz+EzSKjaN5PezsZWe0JsM99swAYFNo3ckIly\nTYMu1kKfXY+7Yg2Tu1VaAbo7/KzGDEJtEDyQTDf/H97M2TMqqi+3yS2jK4dljjSN\n3Spcgsoe29rTaWI4TCBZhqvKvspMSX+2V5o386AlLawlIv/YGehmv8zTBHqEEOr9\n2B+AI+bmGiNT8aWNmAR0ogpUomttERwvcP/donY66tYvElqgObsTsRM09pYetej3\nZYO7AsokT3m9LXTjS7hIOmUAtbwkSDpXrn6RpHG3KQIDAQABo4H0MIHxMAkGA1Ud\nEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMB0GA1UdDgQWBBQGLa0yYrqtRsHXNHv4\n/nSkq8GsVDBYBgNVHSMEUTBPgBQS34F1ccqS084bLCt3O54zd/P3b6EspCowKDEL\nMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMQwwCgYDVQQKDANzMm6CCQCGzb0hjETX\ndzAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwMwYIKwYBBQUH\nAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zMm50ZXN0LmNvbTANBgkq\nhkiG9w0BAQsFAAOCAgEAk96vwb03XGRVsAgnaUS/xFmYt7C8mX2Ox1smokVr8e3R\nxYBQw8iUUJa+jchYOKnwpbpaJXQVzppxAm2X837dm7HvvVWhaGD7u7ZblCJ02fnq\n0Ry7CGNiiA3o+Bc7yZHLbbf7Vbgro4k0uoEoBHXUCkoRaPHOSzrB3qg6r2f9fPlt\nb617wBp+4gVmKe4R/it2rODsJ5Oev1nYec9qf/O3N1mmlQXCBVkjTnMQbpv/0uAh\nyS9crG93U0UkQE88v4L3je4YGpv7yJnkOCFn7TnwxrkWKR4FUZJw7LM5+DKTk6wQ\nZqYpxfIxnOS/MRP+P+C0V2dKE51iXqPuCB5ocOdCEhGg4hqlzLtQyR5Ml4uWDMP9\nbN/CXTw+boffvlO34PnuRtNQ2GxkHOVqCvu0eiA74Da1jOoYteB3WHU4BZgxi918\nmT20kScJuwvPwhodbz2TFRqAY6azJABb8MXvh4ScXt/kpN+vMWSFs3UeBcIwBLY2\n7C0IxOpDbmfLpiDxQvY1AsVoHdwrcMiObVxW1Xgo3g6n+gOcZ3oOVv7nS50/N1Ds\nLMj6FcIAPjNOJLnekUyfke27AckGMgWiAHgSIWl2C4bezWSFNCit6SIIEZ+VtEL3\nKQyrfL8ymVro7xCn+piJ/kTCSLg3/6XNpJcFiHqrbtvDst44vXyjLKw9B0IKFcc=\n-----END CERTIFICATE-----\n", + "0\x03\n\x01\x06", }; -static const size_t kLen111 = 1460; +static const size_t kLen111 = 1870; static const char *kData111[] = { - "-----BEGIN CERTIFICATE-----\nMIIECTCCAfGgAwIBAgIBAzANBgkqhkiG9w0BAQsFADAoMQswCQYDVQQGEwJVUzEL\nMAkGA1UECAwCV0ExDDAKBgNVBAoMA3MybjAgFw0xOTA3MTEyMTQ5MDVaGA8yMTE5\nMDYxNzIxNDkwNVowTjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMQwwCgYDVQQK\nDANzMm4xDDAKBgNVBAsMA3MybjEWMBQGA1UEAwwNczJuIFRlc3QgQ2VydDBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHKbmPNWSqD37R0lKFUMy9ct5PtyZgQ70fza\no00OjS5E2WwUwSUO+8gJIXtrBl7z6c3Mwwo1c5q+3s7AqOzxrYmjgeAwgd0wLAYJ\nYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1Ud\nDgQWBBQLtWXnPNV3aXoN8pc/9ssWBRIbljAfBgNVHSMEGDAWgBQS34F1ccqS084b\nLCt3O54zd/P3bzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIEsDAdBgNVHSUEFjAU\nBggrBgEFBQcDAQYIKwYBBQUHAwIwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzAB\nhhdodHRwOi8vb2NzcC5zMm50ZXN0LmNvbTANBgkqhkiG9w0BAQsFAAOCAgEAWUvZ\nxu4SPozbN7QMzMmvlv+rMvlUgC8uQGs5v/OgopbAK1qypSB6s4R+ARZ5kP2k2olo\nUjsuxAf5L7KLxElauXAhSetV1irKtm1c7ui5kqpLRskBc50e8yQa+JzRu5p+vs1o\n8RSuT0OpGiz00oqu25Cie9nRaQ8uo9KeUNOg5gnWBXGg0bs+1Dvkfc44gwNCxr+D\nYCjOpXW39xtuW+r/MmHTNhuDHx/pJucjVILOy7lZTPYldqQzsO//Iy9DnpCR9Ii+\nGvlzAwCnhgOK6GJShH9cRr1cEgPD5etyIqHW7BmeYz4JmJtDqnkeOW5xWclRemrR\np66O0UxqjQtjagWSwTFrnX9GZTzUPItCj3+0Suhf1K8fl6jVfkuGghCSCWcUdDzd\ngixMQH1TPYKJZxELkRMoN9YtBaYEMshm7ioqreMHBHD/rZqKYHpZkW8ImMVzlt0L\ndfg+OQrZvTiivHpVVtzSJvJCXiMCoTN1EZbUJyP+EDeyOBPJcwz4lb3O3T4oFy7+\nnT9Q3IgxG/efy72gbJJKhxa+7oVTQa/Kpk1V/tVr0srSRTIZNeus4X5QSfqS8Sxe\nvn2lcze2FDpzpAohAL5Yd5GJx7CLDWikGLp0AVUBUbA4oDZuItUbRUfcsPNBExo3\ne7YxAiOh9JRWT5aTMofdGdoGduoCpkURjhSEPeg=\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIFODCCAyCgAwIBAgIJAIbNvSGMRNd3MA0GCSqGSIb3DQEBCwUAMCgxCzAJBgNV\nBAYTAlVTMQswCQYDVQQIDAJXQTEMMAoGA1UECgwDczJuMCAXDTE3MDkwNTA1MTUw\nNVoYDzIxMTcwODEyMDUxNTA1WjAoMQswCQYDVQQGEwJVUzELMAkGA1UECAwCV0Ex\nDDAKBgNVBAoMA3MybjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL44\nCoKiyb2g53V0t6j6TQPoaHWHDpT/o4rew8CNNDi+NrIBFtF5pPbtpBk8CBVtYkDw\nj6NJAdMDE8UsF67mSacyNmrDGGzaZFRsTAQU/eKfTiXJ5Y3mgmLBHtlnXJvd9IsZ\ndsPTIxt2ru4msJgC/kenBtOlaZE5Ux/W+vmNTEFDPfYz5sqh69oOdznMNHi9lnJ1\nC7HzhUDjcUy0D2iha3QHCXQfoMusgPOiewgEnT48j6hDKqXsRorFME19m4vGua+y\nfROZpl0qS1Uh7m62X59VLqGXK/Cs6PfSQG18hLzpMYvSMR/rI3bjdNmzwbOj7GEE\n4s6bAE34LSLo64imVukS6ha7LeJwh8vDD22P2aD4rDGiAN/mhXVC8qRr8wyXrIr2\nhUpp42iJVyzVHWDRkq4dU31xbNsj/89FEh+XOYiuM7ZgeHV/Ie89nr78vOfv0iCM\ngCFsykpFZ+8vDC22m6pGrl58VdY59d6jHtpNtQYWn1B5wxBx0ugPHd0uRyBvk8zr\nIf9A60QsQ56F3imJC6dR+4R8M8t84Wm6sDQAVvjyYoy9u4e4rLXT5IMFHGjI7Vda\nhA0BmIBzBLfOb6ZUX2na0ckGvVu8DCrm9lJP1NYpHuQ3W2Hws1+rMD0URJqZy/D2\nbttPxVgT/5KqCSpmBjvsv2unTfxVbZInQQFtt70lAgMBAAGjYzBhMB0GA1UdDgQW\nBBQS34F1ccqS084bLCt3O54zd/P3bzAfBgNVHSMEGDAWgBQS34F1ccqS084bLCt3\nO54zd/P3bzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG\n9w0BAQsFAAOCAgEAs2C1eSchstZ7wUaOfJ4/4T2bzZ+aPpb9qR9rU+no8QpqW0TO\nP5JROba0mpD3oRrS8hEihp2UPpHII1JRqzytq5GHM6rW9sowxJqhhp46LxtAqIeL\n1k2PB53E9UIav4kf4C1eO32iO00ndK/fuWxku/95kIC7o5pQajCksEkeEoKx6oUp\n6Rt2KAGrEImpoEP4qqw3GN8GrntC0s+FfZYsrj/KTJcQQBg18g7UY6rj0db1OxbK\nK7USvQzPWh7c1mQPIFYfTnvn3KA14rUuWSW5NF9Eb6rwuczCWhzydvz94zeWMYrH\nuDwJLbtLBv6f6CPPmladG8BpGKBb3p9l8FzfvUVtAtpBFcPZ40HemNO50kU27blN\nmpvLCs6HcJ0/mgz+bVNDkkXyB1PSHbVqaWFJ4Sp/mo4liNgQBGgDfokC/4+hk30E\nMn8wWjILbmdnqiUSXEwroEi1qNVv/PJ97ZBOpQx01dcftuCxBIrQSAp3bsbguOoi\nC/tAoGPsYpxHHffmHFD+2WZDrBYKwzl4S7j4/NRt57DdLZ8tdmLQoWyFPjmPyRJL\nFhIqLSrlmZgT2/FNOOYRgZ+Z4uaoEZVdZ9YLj6R+wW4NBi5K+sd1/R+R7Es9iQFq\nSYKXaJNh0sbvVOofX6/TqBapmcbVu3NbRnU6Csc2YgdY4WdN0G0ADWC0i8A=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen112 = 302; +static const size_t kLen112 = 1740; static const char *kData112[] = { - "-----BEGIN EC PARAMETERS-----\nBggqhkjOPQMBBw==\n-----END EC PARAMETERS-----\n-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEICkehPQssOkQf0rv3jnnvlkfnl9jqJ0uIG0h+xJXbkxRoAoGCCqGSM49\nAwEHoUQDQgAEcpuY81ZKoPftHSUoVQzL1y3k+3JmBDvR/NqjTQ6NLkTZbBTBJQ77\nyAkhe2sGXvPpzczDCjVzmr7ezsCo7PGtiQ==\n-----END EC PRIVATE KEY-----\n", + "-----BEGIN CERTIFICATE-----\nMIIE1zCCAr8CFC7H11oa4DYsBEHlPyQFUmccFsByMA0GCSqGSIb3DQEBCwUAMCgx\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEMMAoGA1UECgwDczJuMB4XDTIzMDYw\nMzAwMjc1NFoXDTIzMDYwMzAwMjc1NFowKDELMAkGA1UEBhMCVVMxCzAJBgNVBAgM\nAldBMQwwCgYDVQQKDANBV1MwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQCvQUftan6xMQ3mTNhEdcUuT6qvhE7F4PN00G8Ch8pRaBiD3Ut8izHoLTkJiA2l\nvHlndwgPi8ili2p7aNoFU7w1j7t/ASa5mOZ7XCrjG1OTs/0qLji8j/yxCZOV7PKW\nvEQ8Q0Wl9dVsS6myDLa4claVrbxnOSaGYRMC88vhyjuAJMlAu7u12XU3L2hqSjEC\nuKcatWUscRFGxVq1bz1oIOXyIVv1XWTwNpyPjB/eAhow4iXuF8H+XdSW9TP5Iv/7\nSunrW3K5nWX9mao61QJlpShfw46RE7zUpc4sHLnuln/1pNTd4CDZJAdU34HlK/pF\n6zyAB10P/NbsTRhRaE9omC9FQZNHT9v6OeyKQbcOzGvpZMJlYGtpuZZA7tK0J4db\ncrfwD3sDs1G+ta6b/eDcCPFEoKp61+hmsyo7FshR2izNJ4v5XohGzmbSLdcrRBPN\n0qfpmTxCRv0VAH0FBHcqibXjgyYex5FzpwJsYlkFXB/eRypMtWCG8k0Q+p1YBo5o\nlApXuWpRD5pLsk3xIyPSCapapOiX1DGjxpeQ4owyDyZfu7QZI9S3qXe1ysq+30fF\nERyO+NxaR+gaNv7YG90uniGKYf2nHerL5Zi38KJp6Pzxo3TtmwkuGy9xnd4aWQqS\nEgf5wTpTU/KUXX5dVolxltsbI0zq5mqexc8AmW5UcyejCwIDAQABMA0GCSqGSIb3\nDQEBCwUAA4ICAQB04qQEq93jsmF0LrsdTqmojzY32q7rahamNbcwiW73b9N2ubgr\nSSxMkRDKZ9+SwQ84zbkIrsz0p/LSHmKyVyIWJhSgqq8tcdJ93wNK00/w+LRWO8eL\nsGsKiUVZQXBA2gHELaZkHrdIMiT96iMHwwbp1uf/TevbDdz73J22EmBovc8Oe7Bk\nbyxmomlckWmo9lKbIjNn3BG/+VntHbptIvhXLybuZfNKgjxLEwdi93JgF22GZ5GC\ne2sS9HkhJSj0SF5u8mdKSRf1+ujkEbXuyMezAk+EZW4GEO/+OLJesXTVSPRUMkEp\njFs4bk04SAZ3myGqj2fUZetQYjZz86f+Wcdid1RO7N35SQeAwcq3h11LzQN4HXB8\n3NUi+D/ThYHV7lzcC5K4YaD3h2NbCy+npy/g5cOXt+0J6qvMitECCLtTb4rNyiwe\neT4o1wjktYutvczzhWgzuet1zlVQeOq0DGknIZebShpY8ljB666CaIjA1bxnpCPZ\nAu6CZugmNkd5gzmfDoE12DZv2mP1iThMv9Oh56TL+k/sNQnibq/Yy+h8G01nxQpE\nMp0U4RFuCcv3am9aQaHUD02aUPjdry2dofHZ/vzYMPXxOyKMtDZQXf+sizQJwZoG\nnSrtrGeryR9W1bVcuQrBaFECPNQTYyQdXBq0uwh7XWtjz601P7QViAfVjw==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen113 = 1679; +static const size_t kLen113 = 1744; static const char *kData113[] = { - "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAsdNiIHYethm112F5avA/cm2F34+Lv6/fnV5evNGqaV9ev35B\n0Bvi+0vMTax2RUj4KKAMXcznz+EzSKjaN5PezsZWe0JsM99swAYFNo3ckIlyTYMu\n1kKfXY+7Yg2Tu1VaAbo7/KzGDEJtEDyQTDf/H97M2TMqqi+3yS2jK4dljjSN3Spc\ngsoe29rTaWI4TCBZhqvKvspMSX+2V5o386AlLawlIv/YGehmv8zTBHqEEOr92B+A\nI+bmGiNT8aWNmAR0ogpUomttERwvcP/donY66tYvElqgObsTsRM09pYetej3ZYO7\nAsokT3m9LXTjS7hIOmUAtbwkSDpXrn6RpHG3KQIDAQABAoIBAD7vCrlmVHQqITr6\nmlgIcsvyiwCV8uWCPueY8Hpu0Zq9T/EBpBUc6XX6W3HZ6XmX24u1KOtBi4D8uIOs\njp5AzQftFcpFtbmeBwTmnI20Iy1cF4HrPXZC2dfo+G45U+Fm0ZXu7S/9jZHlKGgo\npwDyiG4lEeaEv0K/5JFkf2z2XDC5PXeJ/WUGhgklSyCTskyJ6wjFDBr068E4V+fL\nQi0B9Ky8JOcuu12IIIl4zk+8JxeUWZYubYuAGOGbrWJz3cnhODWJcjtdIbLNnqCQ\n8aJHLm1NyFJrWfbTAaEefvUb1HY/cMgzHnSsy7okbsMvJowRWpmbO6L9Q6PwJnlx\ngkQmswECgYEA4qLH0uYlg4x7z1gTFOnsUywbs0vr4P+AMtJfmPAs6mIV6pKYQMB+\nVSjGNuETdqDg3nam9vneRhueACRLc8TVLEvYeJLk1AgQTBimPiI1CzWhp9r3eMUS\nA8RrpGSMiS3IrkMx0TtTZ6+FeY7pM5yonecGOovnrqavr/KrZod4/tECgYEAyN2i\nFInnCiw2rrTOocIud3qXoah/u6OqEoTGT114HJboWb2vEB3tvk5+5a9lH3QbgSpq\nnBU+SMfKoYDqZn467+AIZ+q2VWY1hvXm2sezjCa1+mv+sCPg4lEXyqGXZYS6ShCu\n82JIIfs7LhnKHc0KKU+H86KAkZvCp3OCKFXkONkCgYEAxrKUovCoXychvW2ofSOB\n0IHRX2bmzQL08JnEup+HoY6RTHFuDwc1O5BeB+tZVx5BSImaZNo46Bp6cgFgLYWa\nqBVvGncfLE5Ni4no5nyzKLrCmhm98iJFYwwom56UIAkF8tJysNBklXkreqGzD07/\n/kB4E4hpfZQiYA5P+7o2eKECgYEAgFM/8hkr9o7KnJC8lhEleIVkjA3HFQx5Yf1b\naGbRjopGhNavGf/U3EjvvzNvykl2LO35UCAuO3cQmF9w4OvyIT+ifykvNZ3nwoIk\n6068AWTVy9fkzYkOaefe6ECWJXBHR3wjGTCH3tXPOCOXwbQ1srCxrU/7DYtSL4KW\n+8fr1vkCgYBFHrjPWWur/wNDROB82BVsEiG0SLNSFyC8olmjsYjFRey0tBxfLqhY\nlabx9qB4jRhXuHojXIWvYBaf9OhPBelriINSHJNAn3Fzb88hUKYieTtOm7KeSA7Q\nozGvogxknnwwuS0RAn09aAzeAYD3wqsnFIr8xOKKT/RIEbrSCvkQdA==\n-----END RSA PRIVATE KEY-----\n", + "-----BEGIN CERTIFICATE-----\nMIIE2zCCAsOgAwIBAgICd3gwDQYJKoZIhvcNAQELBQAwKDELMAkGA1UEBhMCVVMx\nCzAJBgNVBAgMAldBMQwwCgYDVQQKDANzMm4wIBcNMTcwOTA1MDUzOTI1WhgPMjEx\nNzA4MTIwNTM5MjVaMEAxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEMMAoGA1UE\nCgwDczJuMRYwFAYDVQQDDA1zMm4gVGVzdCBDZXJ0MIIBIjANBgkqhkiG9w0BAQEF\nAAOCAQ8AMIIBCgKCAQEAsdNiIHYethm112F5avA/cm2F34+Lv6/fnV5evNGqaV9e\nv35B0Bvi+0vMTax2RUj4KKAMXcznz+EzSKjaN5PezsZWe0JsM99swAYFNo3ckIly\nTYMu1kKfXY+7Yg2Tu1VaAbo7/KzGDEJtEDyQTDf/H97M2TMqqi+3yS2jK4dljjSN\n3Spcgsoe29rTaWI4TCBZhqvKvspMSX+2V5o386AlLawlIv/YGehmv8zTBHqEEOr9\n2B+AI+bmGiNT8aWNmAR0ogpUomttERwvcP/donY66tYvElqgObsTsRM09pYetej3\nZYO7AsokT3m9LXTjS7hIOmUAtbwkSDpXrn6RpHG3KQIDAQABo4H0MIHxMAkGA1Ud\nEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMB0GA1UdDgQWBBQGLa0yYrqtRsHXNHv4\n/nSkq8GsVDBYBgNVHSMEUTBPgBQS34F1ccqS084bLCt3O54zd/P3b6EspCowKDEL\nMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMQwwCgYDVQQKDANzMm6CCQCGzb0hjETX\ndzAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwMwYIKwYBBQUH\nAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zMm50ZXN0LmNvbTANBgkq\nhkiG9w0BAQsFAAOCAgEAk96vwb03XGRVsAgnaUS/xFmYt7C8mX2Ox1smokVr8e3R\nxYBQw8iUUJa+jchYOKnwpbpaJXQVzppxAm2X837dm7HvvVWhaGD7u7ZblCJ02fnq\n0Ry7CGNiiA3o+Bc7yZHLbbf7Vbgro4k0uoEoBHXUCkoRaPHOSzrB3qg6r2f9fPlt\nb617wBp+4gVmKe4R/it2rODsJ5Oev1nYec9qf/O3N1mmlQXCBVkjTnMQbpv/0uAh\nyS9crG93U0UkQE88v4L3je4YGpv7yJnkOCFn7TnwxrkWKR4FUZJw7LM5+DKTk6wQ\nZqYpxfIxnOS/MRP+P+C0V2dKE51iXqPuCB5ocOdCEhGg4hqlzLtQyR5Ml4uWDMP9\nbN/CXTw+boffvlO34PnuRtNQ2GxkHOVqCvu0eiA74Da1jOoYteB3WHU4BZgxi918\nmT20kScJuwvPwhodbz2TFRqAY6azJABb8MXvh4ScXt/kpN+vMWSFs3UeBcIwBLY2\n7C0IxOpDbmfLpiDxQvY1AsVoHdwrcMiObVxW1Xgo3g6n+gOcZ3oOVv7nS50/N1Ds\nLMj6FcIAPjNOJLnekUyfke27AckGMgWiAHgSIWl2C4bezWSFNCit6SIIEZ+VtEL3\nKQyrfL8ymVro7xCn+piJ/kTCSLg3/6XNpJcFiHqrbtvDst44vXyjLKw9B0IKFcc=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen114 = 1187; +static const size_t kLen114 = 1460; static const char *kData114[] = { - "-----BEGIN CERTIFICATE-----\nMIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF\nADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6\nb24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL\nMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv\nb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj\nca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM\n9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw\nIFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6\nVOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L\n93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm\njgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC\nAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA\nA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI\nU5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs\nN+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv\no/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU\n5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy\nrqXRfboQnoZsG4q5WTP468SQvvG5\n-----END CERTIFICATE-----", + "-----BEGIN CERTIFICATE-----\nMIIECTCCAfGgAwIBAgIBAzANBgkqhkiG9w0BAQsFADAoMQswCQYDVQQGEwJVUzEL\nMAkGA1UECAwCV0ExDDAKBgNVBAoMA3MybjAgFw0xOTA3MTEyMTQ5MDVaGA8yMTE5\nMDYxNzIxNDkwNVowTjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMQwwCgYDVQQK\nDANzMm4xDDAKBgNVBAsMA3MybjEWMBQGA1UEAwwNczJuIFRlc3QgQ2VydDBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHKbmPNWSqD37R0lKFUMy9ct5PtyZgQ70fza\no00OjS5E2WwUwSUO+8gJIXtrBl7z6c3Mwwo1c5q+3s7AqOzxrYmjgeAwgd0wLAYJ\nYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1Ud\nDgQWBBQLtWXnPNV3aXoN8pc/9ssWBRIbljAfBgNVHSMEGDAWgBQS34F1ccqS084b\nLCt3O54zd/P3bzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIEsDAdBgNVHSUEFjAU\nBggrBgEFBQcDAQYIKwYBBQUHAwIwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzAB\nhhdodHRwOi8vb2NzcC5zMm50ZXN0LmNvbTANBgkqhkiG9w0BAQsFAAOCAgEAWUvZ\nxu4SPozbN7QMzMmvlv+rMvlUgC8uQGs5v/OgopbAK1qypSB6s4R+ARZ5kP2k2olo\nUjsuxAf5L7KLxElauXAhSetV1irKtm1c7ui5kqpLRskBc50e8yQa+JzRu5p+vs1o\n8RSuT0OpGiz00oqu25Cie9nRaQ8uo9KeUNOg5gnWBXGg0bs+1Dvkfc44gwNCxr+D\nYCjOpXW39xtuW+r/MmHTNhuDHx/pJucjVILOy7lZTPYldqQzsO//Iy9DnpCR9Ii+\nGvlzAwCnhgOK6GJShH9cRr1cEgPD5etyIqHW7BmeYz4JmJtDqnkeOW5xWclRemrR\np66O0UxqjQtjagWSwTFrnX9GZTzUPItCj3+0Suhf1K8fl6jVfkuGghCSCWcUdDzd\ngixMQH1TPYKJZxELkRMoN9YtBaYEMshm7ioqreMHBHD/rZqKYHpZkW8ImMVzlt0L\ndfg+OQrZvTiivHpVVtzSJvJCXiMCoTN1EZbUJyP+EDeyOBPJcwz4lb3O3T4oFy7+\nnT9Q3IgxG/efy72gbJJKhxa+7oVTQa/Kpk1V/tVr0srSRTIZNeus4X5QSfqS8Sxe\nvn2lcze2FDpzpAohAL5Yd5GJx7CLDWikGLp0AVUBUbA4oDZuItUbRUfcsPNBExo3\ne7YxAiOh9JRWT5aTMofdGdoGduoCpkURjhSEPeg=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen115 = 1882; +static const size_t kLen115 = 302; static const char *kData115[] = { - "-----BEGIN CERTIFICATE-----\nMIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF\nADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6\nb24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL\nMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv\nb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK\ngXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ\nW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg\n1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K\n8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r\n2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me\nz/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR\n8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj\nmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz\n7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6\n+XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI\n0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB\nAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm\nUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2\nLIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY\n+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS\nk5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl\n7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm\nbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl\nurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+\nfUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63\nn749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE\n76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H\n9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT\n4PsJYGw=\n-----END CERTIFICATE-----", + "-----BEGIN EC PARAMETERS-----\nBggqhkjOPQMBBw==\n-----END EC PARAMETERS-----\n-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEICkehPQssOkQf0rv3jnnvlkfnl9jqJ0uIG0h+xJXbkxRoAoGCCqGSM49\nAwEHoUQDQgAEcpuY81ZKoPftHSUoVQzL1y3k+3JmBDvR/NqjTQ6NLkTZbBTBJQ77\nyAkhe2sGXvPpzczDCjVzmr7ezsCo7PGtiQ==\n-----END EC PRIVATE KEY-----\n", }; -static const size_t kLen116 = 655; +static const size_t kLen116 = 1679; static const char *kData116[] = { - "-----BEGIN CERTIFICATE-----\nMIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5\nMQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g\nUm9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG\nA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg\nQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl\nui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j\nQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr\nttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr\nBqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM\nYyRIHN8wfdVoOw==\n-----END CERTIFICATE-----", + "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAsdNiIHYethm112F5avA/cm2F34+Lv6/fnV5evNGqaV9ev35B\n0Bvi+0vMTax2RUj4KKAMXcznz+EzSKjaN5PezsZWe0JsM99swAYFNo3ckIlyTYMu\n1kKfXY+7Yg2Tu1VaAbo7/KzGDEJtEDyQTDf/H97M2TMqqi+3yS2jK4dljjSN3Spc\ngsoe29rTaWI4TCBZhqvKvspMSX+2V5o386AlLawlIv/YGehmv8zTBHqEEOr92B+A\nI+bmGiNT8aWNmAR0ogpUomttERwvcP/donY66tYvElqgObsTsRM09pYetej3ZYO7\nAsokT3m9LXTjS7hIOmUAtbwkSDpXrn6RpHG3KQIDAQABAoIBAD7vCrlmVHQqITr6\nmlgIcsvyiwCV8uWCPueY8Hpu0Zq9T/EBpBUc6XX6W3HZ6XmX24u1KOtBi4D8uIOs\njp5AzQftFcpFtbmeBwTmnI20Iy1cF4HrPXZC2dfo+G45U+Fm0ZXu7S/9jZHlKGgo\npwDyiG4lEeaEv0K/5JFkf2z2XDC5PXeJ/WUGhgklSyCTskyJ6wjFDBr068E4V+fL\nQi0B9Ky8JOcuu12IIIl4zk+8JxeUWZYubYuAGOGbrWJz3cnhODWJcjtdIbLNnqCQ\n8aJHLm1NyFJrWfbTAaEefvUb1HY/cMgzHnSsy7okbsMvJowRWpmbO6L9Q6PwJnlx\ngkQmswECgYEA4qLH0uYlg4x7z1gTFOnsUywbs0vr4P+AMtJfmPAs6mIV6pKYQMB+\nVSjGNuETdqDg3nam9vneRhueACRLc8TVLEvYeJLk1AgQTBimPiI1CzWhp9r3eMUS\nA8RrpGSMiS3IrkMx0TtTZ6+FeY7pM5yonecGOovnrqavr/KrZod4/tECgYEAyN2i\nFInnCiw2rrTOocIud3qXoah/u6OqEoTGT114HJboWb2vEB3tvk5+5a9lH3QbgSpq\nnBU+SMfKoYDqZn467+AIZ+q2VWY1hvXm2sezjCa1+mv+sCPg4lEXyqGXZYS6ShCu\n82JIIfs7LhnKHc0KKU+H86KAkZvCp3OCKFXkONkCgYEAxrKUovCoXychvW2ofSOB\n0IHRX2bmzQL08JnEup+HoY6RTHFuDwc1O5BeB+tZVx5BSImaZNo46Bp6cgFgLYWa\nqBVvGncfLE5Ni4no5nyzKLrCmhm98iJFYwwom56UIAkF8tJysNBklXkreqGzD07/\n/kB4E4hpfZQiYA5P+7o2eKECgYEAgFM/8hkr9o7KnJC8lhEleIVkjA3HFQx5Yf1b\naGbRjopGhNavGf/U3EjvvzNvykl2LO35UCAuO3cQmF9w4OvyIT+ifykvNZ3nwoIk\n6068AWTVy9fkzYkOaefe6ECWJXBHR3wjGTCH3tXPOCOXwbQ1srCxrU/7DYtSL4KW\n+8fr1vkCgYBFHrjPWWur/wNDROB82BVsEiG0SLNSFyC8olmjsYjFRey0tBxfLqhY\nlabx9qB4jRhXuHojXIWvYBaf9OhPBelriINSHJNAn3Fzb88hUKYieTtOm7KeSA7Q\nozGvogxknnwwuS0RAn09aAzeAYD3wqsnFIr8xOKKT/RIEbrSCvkQdA==\n-----END RSA PRIVATE KEY-----\n", }; -static const size_t kLen117 = 638; +static const size_t kLen117 = 1187; static const char *kData117[] = { - "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSIRFH/UCpp\nXi2I9CG62QzyzsvqfBgPMjAxMjEwMTEwODQxMTNaMHMwcTBJMAkGBSsOAwIaBQAE\nFEi2DTgjjfhFbk7lhD6jlBEYApefBBSIRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz\nIiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMTA4NDExM1qgERgPMjAxMjEwMTUwODQx\nMTNaMA0GCSqGSIb3DQEBBQUAA4IBAQCNnhlBMxxh9z5AKfzAxiKs90CfxUsqfYfk\n8XlyF9VIfWRfEwzS6MF1pEzLnghRxTAmjrFgK+sxD9wk+S5Mdgw3nbED9DVFH2Hs\nRGKm/t9wkvrYOX6yRQqw6uRvU/5cibMjcyzKB/VQMwk4p4FwSUgBv88A5sTkKr2V\neYdEm34hg2TZVkipPMBiyTyBLXs8D/9oALtnczg4xlTRSjDUvqoXL5haqY4QK2Pv\nmNwna6ACkwLmSuMe29UQ8IX2PUB4R5Etni5czyiKGxZLm+4NAhuEwWFNEzCyImPc\n087gHGU1zx+qVSlajqMJ/9ZXYjbt7WiWdhOTGEv4VMn8dHhRUs32\n", + "-----BEGIN CERTIFICATE-----\nMIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF\nADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6\nb24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL\nMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv\nb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj\nca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM\n9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw\nIFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6\nVOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L\n93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm\njgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC\nAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA\nA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI\nU5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs\nN+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv\no/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU\n5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy\nrqXRfboQnoZsG4q5WTP468SQvvG5\n-----END CERTIFICATE-----", }; -static const size_t kLen118 = 638; +static const size_t kLen118 = 1882; static const char *kData118[] = { - "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQLWOWLxkwV\nN6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAyMzAzMTlaMHMwcTBJMAkGBSsOAwIaBQAE\nFOy+ZAvtiWulchtVZmfKU1ZI9ewTBBQLWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0\n0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDIzMDMxOVqgERgPMjAxMjEwMTQyMzAz\nMTlaMA0GCSqGSIb3DQEBBQUAA4IBAQCHn2nGfEUX/EJruMkTgh7GgB0u9cpAepaD\nsPv9gtl3KLUZyR+NbGMIa5/bpoJp0yg1z5VL6CLMusy3AF6Cn2fyaioDxG+yc+gA\nPcPFdEqiIMr+TP8s7qcEiE6WZddSSCqCn90VZSCWkpDhnCjDRwJLBBPU3803fdMz\noguvyr7y6Koxik8X/iUe8EpSzAvmm4GZL3veTI+x7IezJSrhCS9zM0ZHjySjoDxC\n+ljGH0EuWPTmFEqZVGIq3cuahIYzKItUbYnXU6ipi/2p42qbsFeok7eEN0EYsY1a\nvRATHGRmU7Q5HLCq4rQtZC1cis52Mvc9x1W4z/Gt5A3FtgElXXNA\n", + "-----BEGIN CERTIFICATE-----\nMIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF\nADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6\nb24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL\nMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv\nb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK\ngXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ\nW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg\n1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K\n8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r\n2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me\nz/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR\n8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj\nmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz\n7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6\n+XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI\n0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB\nAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm\nUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2\nLIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY\n+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS\nk5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl\n7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm\nbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl\nurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+\nfUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63\nn749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE\n76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H\n9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT\n4PsJYGw=\n-----END CERTIFICATE-----", }; -static const size_t kLen119 = 642; +static const size_t kLen119 = 655; static const char *kData119[] = { - "MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBStvZh6NLQm\n9/rEJlTvA73gJMtUGhgPMjAxMjEwMTExMTM2NDdaMHQwcjBKMAkGBSsOAwIaBQAE\nFHyxZlScq9tE7mImFq30ZXv3etWUBBStvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN\nbJWejX5BTb8DmevkCauAABgPMjAxMjEwMTExMTM2NDdaoBEYDzIwMTIxMDE1MTEz\nNjQ3WjANBgkqhkiG9w0BAQUFAAOCAQEAfnj3nh6z+USW6VlDWRytWpNmC1ZRwWlg\nP2+G4UF4HE8bMJkuiFLcZEVYTxlTYv+xAEpSFxdInFM2Q5C+O6pWOZ9NbikeR4oZ\nFTI1kAZ0Uw+YMpVM4ztvKBIpUSqlbi69iNJ9WGF6qzxVeqobSOyrjjwtTsuglUbR\n+mshp/SP7Br2IIK+KM1vgsmVExPfGPYANyk7ki/Q8uUnjqkreeSa9WC2iJLGcybW\nYavDhYWALebUGukNeedkloYhdjPboPPxDkKNjakwIG8EkbJK7uXewMOHHOFvFTX3\nK388me8u5iQf4f3fj6ilEgs6f5Szzmb+vklPX0zIny/TVk2+Az7HmA==\n", + "-----BEGIN CERTIFICATE-----\nMIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5\nMQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g\nUm9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG\nA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg\nQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl\nui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j\nQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr\nttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr\nBqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM\nYyRIHN8wfdVoOw==\n-----END CERTIFICATE-----", }; static const size_t kLen120 = 638; static const char *kData120[] = { - "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSIRFH/UCpp\nXi2I9CG62QzyzsvqfBgPMjAxMjEwMTAwODU0NDVaMHMwcTBJMAkGBSsOAwIaBQAE\nFEi2DTgjjfhFbk7lhD6jlBEYApefBBSIRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz\nIiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMDA4NTQ0NVqgERgPMjAxMjEwMTQwODU0\nNDVaMA0GCSqGSIb3DQEBBQUAA4IBAQDHKDxWTbAHRXY7HapfhE99T+OSa/AfRYqX\nH9yIeMRa5VftXMyvBFuvVm/qLRwK6mxhkiVIvF/Pk5yxMjbm7xPO26D+WHOdQML4\n+M4OX9BO76FjZRin5x+4b0Xo5SuSU1ulqfvSZnx+nG+hMbt/3Y7ODCEUWCYFoXNp\nU+TXTbv2mwJ9AL8Q/zjL4P8NJHzFJBKjEs+AAVRxTY/5RHHKU9dcm7ux/gsWoDUM\nw677Xxzn6icd8mqn72/HmzPnMrLHKKJFe2escbJn7JlV6qbZ9EWbrr+3OH0IJy5I\nE3LcPIsNZ//QEc6vS6J+j8ljV8Xne6rS1EmiOwV9NgubvYwDCm4R\n", + "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSIRFH/UCpp\nXi2I9CG62QzyzsvqfBgPMjAxMjEwMTEwODQxMTNaMHMwcTBJMAkGBSsOAwIaBQAE\nFEi2DTgjjfhFbk7lhD6jlBEYApefBBSIRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz\nIiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMTA4NDExM1qgERgPMjAxMjEwMTUwODQx\nMTNaMA0GCSqGSIb3DQEBBQUAA4IBAQCNnhlBMxxh9z5AKfzAxiKs90CfxUsqfYfk\n8XlyF9VIfWRfEwzS6MF1pEzLnghRxTAmjrFgK+sxD9wk+S5Mdgw3nbED9DVFH2Hs\nRGKm/t9wkvrYOX6yRQqw6uRvU/5cibMjcyzKB/VQMwk4p4FwSUgBv88A5sTkKr2V\neYdEm34hg2TZVkipPMBiyTyBLXs8D/9oALtnczg4xlTRSjDUvqoXL5haqY4QK2Pv\nmNwna6ACkwLmSuMe29UQ8IX2PUB4R5Etni5czyiKGxZLm+4NAhuEwWFNEzCyImPc\n087gHGU1zx+qVSlajqMJ/9ZXYjbt7WiWdhOTGEv4VMn8dHhRUs32\n", }; static const size_t kLen121 = 638; static const char *kData121[] = { - "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQLWOWLxkwV\nN6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAwMDI1NTdaMHMwcTBJMAkGBSsOAwIaBQAE\nFOy+ZAvtiWulchtVZmfKU1ZI9ewTBBQLWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0\n0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDAwMjU1N1qgERgPMjAxMjEwMTQwMDI1\nNTdaMA0GCSqGSIb3DQEBBQUAA4IBAQCJRXcrz4wJe7bqWBHULu/QDXVz74OhSNlu\nswI0J4h+UmzJuW1GpdhTwJcTG3ARVwCLKz3evvpvHSumcsop0G3NolryNLP/oGD0\nVf6PbLrJ8v+NxUNugPbtWM985Ti/B2a+XjbzYlH2vS3KOTL4X1zWSL07IQFNXc2h\nyHBscKpYgt0mZcFZFxN3NTCNpT6IjJzZzTG9xTYZ3hZdMQQ3DYO+/Hv4J+U1/Ybq\nCjuMWRak/0R/BiBDJdGhbThlvV7bNUxYY7DVaOiLER8ptpmhnzlB/vsTAxZqX48J\nmJdv2bxoTby98Pm/BMydEA9qcFqyP1XvqhzIY35ngoS/1XREyW7t\n", + "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQLWOWLxkwV\nN6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAyMzAzMTlaMHMwcTBJMAkGBSsOAwIaBQAE\nFOy+ZAvtiWulchtVZmfKU1ZI9ewTBBQLWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0\n0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDIzMDMxOVqgERgPMjAxMjEwMTQyMzAz\nMTlaMA0GCSqGSIb3DQEBBQUAA4IBAQCHn2nGfEUX/EJruMkTgh7GgB0u9cpAepaD\nsPv9gtl3KLUZyR+NbGMIa5/bpoJp0yg1z5VL6CLMusy3AF6Cn2fyaioDxG+yc+gA\nPcPFdEqiIMr+TP8s7qcEiE6WZddSSCqCn90VZSCWkpDhnCjDRwJLBBPU3803fdMz\noguvyr7y6Koxik8X/iUe8EpSzAvmm4GZL3veTI+x7IezJSrhCS9zM0ZHjySjoDxC\n+ljGH0EuWPTmFEqZVGIq3cuahIYzKItUbYnXU6ipi/2p42qbsFeok7eEN0EYsY1a\nvRATHGRmU7Q5HLCq4rQtZC1cis52Mvc9x1W4z/Gt5A3FtgElXXNA\n", }; static const size_t kLen122 = 642; static const char *kData122[] = { - "MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBStvZh6NLQm\n9/rEJlTvA73gJMtUGhgPMjAxMjEwMDkxNjAxNTNaMHQwcjBKMAkGBSsOAwIaBQAE\nFHyxZlScq9tE7mImFq30ZXv3etWUBBStvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN\nbJWejX5BTb8DmevkCauAABgPMjAxMjEwMDkxNjAxNTNaoBEYDzIwMTIxMDEzMTYw\nMTUzWjANBgkqhkiG9w0BAQUFAAOCAQEAFnJAzuT8P4KKyTI6sdj5HkQ352qEu5CN\nK9M2kU/eg9kPfwLv8z3yArobwgx+/IDRajbVAKrk8UPCGUqkDc0OiU5c0+jpn+nT\n20VVCtWsBSWDfzKqYln/NGrblhv+/iuFZJpyfud5nWguW5nogPC8IAfgt9FMDMl6\nwlQWLSWEkgAJWvhNR3nzgvyMnuDuMIVQgB9/+vAIxA7nlpEEh6KTswyGqE9+u1yC\nkvrz4PwKZQMT6r1eRCLs6NaagOZT84QHhZ6TAA+QHjfK406KL8F9mFgbGKbW+st2\nQHm+giUhrgZMv+1Yaxe34BjDS439LCPjdZ29On8FeZr3F55T+s3VzA==\n", + "MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBStvZh6NLQm\n9/rEJlTvA73gJMtUGhgPMjAxMjEwMTExMTM2NDdaMHQwcjBKMAkGBSsOAwIaBQAE\nFHyxZlScq9tE7mImFq30ZXv3etWUBBStvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN\nbJWejX5BTb8DmevkCauAABgPMjAxMjEwMTExMTM2NDdaoBEYDzIwMTIxMDE1MTEz\nNjQ3WjANBgkqhkiG9w0BAQUFAAOCAQEAfnj3nh6z+USW6VlDWRytWpNmC1ZRwWlg\nP2+G4UF4HE8bMJkuiFLcZEVYTxlTYv+xAEpSFxdInFM2Q5C+O6pWOZ9NbikeR4oZ\nFTI1kAZ0Uw+YMpVM4ztvKBIpUSqlbi69iNJ9WGF6qzxVeqobSOyrjjwtTsuglUbR\n+mshp/SP7Br2IIK+KM1vgsmVExPfGPYANyk7ki/Q8uUnjqkreeSa9WC2iJLGcybW\nYavDhYWALebUGukNeedkloYhdjPboPPxDkKNjakwIG8EkbJK7uXewMOHHOFvFTX3\nK388me8u5iQf4f3fj6ilEgs6f5Szzmb+vklPX0zIny/TVk2+Az7HmA==\n", }; static const size_t kLen123 = 638; static const char *kData123[] = { - "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSJRFH/UCpp\nXi2I9CG62QzyzsvqfBgPMjAxMjEwMTEwODQxMTNaMHMwcTBJMAkGBSsOAwIaBQAE\nFEi2DTgjjfhFbk7lhD6jlBEYApefBBSIRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz\nIiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMTA4NDExM1qgERgPMjAxMjEwMTUwODQx\nMTNaMA0GCSqGSIb3DQEBBQUAA4IBAQCNnhlBMxxh9z5AKfzAxiKs90CfxUsqfYfk\n8XlyF9VIfWRfEwzS6MF1pEzLnghRxTAmjrFgK+sxD9wk+S5Mdgw3nbED9DVFH2Hs\nRGKm/t9wkvrYOX6yRQqw6uRvU/5cibMjcyzKB/VQMwk4p4FwSUgBv88A5sTkKr2V\neYdEm34hg2TZVkipPMBiyTyBLXs8D/9oALtnczg4xlTRSjDUvqoXL5haqY4QK2Pv\nmNwna6ACkwLmSuMe29UQ8IX2PUB4R5Etni5czyiKGxZLm+4NAhuEwWFNEzCyImPc\n087gHGU1zx+qVSlajqMJ/9ZXYjbt7WiWdhOTGEv4VMn8dHhRUs32\n", + "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSIRFH/UCpp\nXi2I9CG62QzyzsvqfBgPMjAxMjEwMTAwODU0NDVaMHMwcTBJMAkGBSsOAwIaBQAE\nFEi2DTgjjfhFbk7lhD6jlBEYApefBBSIRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz\nIiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMDA4NTQ0NVqgERgPMjAxMjEwMTQwODU0\nNDVaMA0GCSqGSIb3DQEBBQUAA4IBAQDHKDxWTbAHRXY7HapfhE99T+OSa/AfRYqX\nH9yIeMRa5VftXMyvBFuvVm/qLRwK6mxhkiVIvF/Pk5yxMjbm7xPO26D+WHOdQML4\n+M4OX9BO76FjZRin5x+4b0Xo5SuSU1ulqfvSZnx+nG+hMbt/3Y7ODCEUWCYFoXNp\nU+TXTbv2mwJ9AL8Q/zjL4P8NJHzFJBKjEs+AAVRxTY/5RHHKU9dcm7ux/gsWoDUM\nw677Xxzn6icd8mqn72/HmzPnMrLHKKJFe2escbJn7JlV6qbZ9EWbrr+3OH0IJy5I\nE3LcPIsNZ//QEc6vS6J+j8ljV8Xne6rS1EmiOwV9NgubvYwDCm4R\n", }; static const size_t kLen124 = 638; static const char *kData124[] = { - "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQMWOWLxkwV\nN6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAyMzAzMTlaMHMwcTBJMAkGBSsOAwIaBQAE\nFOy+ZAvtiWulchtVZmfKU1ZI9ewTBBQLWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0\n0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDIzMDMxOVqgERgPMjAxMjEwMTQyMzAz\nMTlaMA0GCSqGSIb3DQEBBQUAA4IBAQCHn2nGfEUX/EJruMkTgh7GgB0u9cpAepaD\nsPv9gtl3KLUZyR+NbGMIa5/bpoJp0yg1z5VL6CLMusy3AF6Cn2fyaioDxG+yc+gA\nPcPFdEqiIMr+TP8s7qcEiE6WZddSSCqCn90VZSCWkpDhnCjDRwJLBBPU3803fdMz\noguvyr7y6Koxik8X/iUe8EpSzAvmm4GZL3veTI+x7IezJSrhCS9zM0ZHjySjoDxC\n+ljGH0EuWPTmFEqZVGIq3cuahIYzKItUbYnXU6ipi/2p42qbsFeok7eEN0EYsY1a\nvRATHGRmU7Q5HLCq4rQtZC1cis52Mvc9x1W4z/Gt5A3FtgElXXNA\n", + "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQLWOWLxkwV\nN6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAwMDI1NTdaMHMwcTBJMAkGBSsOAwIaBQAE\nFOy+ZAvtiWulchtVZmfKU1ZI9ewTBBQLWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0\n0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDAwMjU1N1qgERgPMjAxMjEwMTQwMDI1\nNTdaMA0GCSqGSIb3DQEBBQUAA4IBAQCJRXcrz4wJe7bqWBHULu/QDXVz74OhSNlu\nswI0J4h+UmzJuW1GpdhTwJcTG3ARVwCLKz3evvpvHSumcsop0G3NolryNLP/oGD0\nVf6PbLrJ8v+NxUNugPbtWM985Ti/B2a+XjbzYlH2vS3KOTL4X1zWSL07IQFNXc2h\nyHBscKpYgt0mZcFZFxN3NTCNpT6IjJzZzTG9xTYZ3hZdMQQ3DYO+/Hv4J+U1/Ybq\nCjuMWRak/0R/BiBDJdGhbThlvV7bNUxYY7DVaOiLER8ptpmhnzlB/vsTAxZqX48J\nmJdv2bxoTby98Pm/BMydEA9qcFqyP1XvqhzIY35ngoS/1XREyW7t\n", }; static const size_t kLen125 = 642; static const char *kData125[] = { - "MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBSuvZh6NLQm\n9/rEJlTvA73gJMtUGhgPMjAxMjEwMTAxMzA3NDZaMHQwcjBKMAkGBSsOAwIaBQAE\nFHyxZlScq9tE7mImFq30ZXv3etWUBBStvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN\nbJWejX5BTb8DmevkCauAABgPMjAxMjEwMTAxMzA3NDZaoBEYDzIwMTIxMDE0MTMw\nNzQ2WjANBgkqhkiG9w0BAQUFAAOCAQEAA70+GYJoFuUBwIN9KHMqmOOtnmoLBBlm\nHL2Su70ZEqSmL4zTt3iHY3m2YaNYSPphgDlQ4lY8zGAkCSrZ3ulpJun3RRy+gD29\n0ks155tChMbYNZrFm46vKWabBjh2p+623daymlcbgizi5Z+P4oJL68VrOqh+DArE\nMpHH16BTGaF+bAjzTRSbS90xUReqwnnEpRBrmcQVo4uKpSkbyrx7iMLqsJ2vGpgh\nxqj1kNPT9g3+gegmdU9QpFV0l9ZV8X/f0uz5nT4I0NL81d/KDHGx2rd+bftLODeL\nZAWAzFbr5B5EMqPGoh/SQXpcuVOqMHjh8fi8PBXBcitlIFzdDKXDvA==\n", + "MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBStvZh6NLQm\n9/rEJlTvA73gJMtUGhgPMjAxMjEwMDkxNjAxNTNaMHQwcjBKMAkGBSsOAwIaBQAE\nFHyxZlScq9tE7mImFq30ZXv3etWUBBStvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN\nbJWejX5BTb8DmevkCauAABgPMjAxMjEwMDkxNjAxNTNaoBEYDzIwMTIxMDEzMTYw\nMTUzWjANBgkqhkiG9w0BAQUFAAOCAQEAFnJAzuT8P4KKyTI6sdj5HkQ352qEu5CN\nK9M2kU/eg9kPfwLv8z3yArobwgx+/IDRajbVAKrk8UPCGUqkDc0OiU5c0+jpn+nT\n20VVCtWsBSWDfzKqYln/NGrblhv+/iuFZJpyfud5nWguW5nogPC8IAfgt9FMDMl6\nwlQWLSWEkgAJWvhNR3nzgvyMnuDuMIVQgB9/+vAIxA7nlpEEh6KTswyGqE9+u1yC\nkvrz4PwKZQMT6r1eRCLs6NaagOZT84QHhZ6TAA+QHjfK406KL8F9mFgbGKbW+st2\nQHm+giUhrgZMv+1Yaxe34BjDS439LCPjdZ29On8FeZr3F55T+s3VzA==\n", }; static const size_t kLen126 = 638; static const char *kData126[] = { - "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSIRFH/UCpp\nXi2I9CG62QzyzsvqfBgPMjAxMjEwMTEwODQxMTNaMHMwcTBJMAkGBSsOAwIaBQAE\nFEm2DTgjjfhFbk7lhD6jlBEYApefBBSIRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz\nIiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMTA4NDExM1qgERgPMjAxMjEwMTUwODQx\nMTNaMA0GCSqGSIb3DQEBBQUAA4IBAQCNnhlBMxxh9z5AKfzAxiKs90CfxUsqfYfk\n8XlyF9VIfWRfEwzS6MF1pEzLnghRxTAmjrFgK+sxD9wk+S5Mdgw3nbED9DVFH2Hs\nRGKm/t9wkvrYOX6yRQqw6uRvU/5cibMjcyzKB/VQMwk4p4FwSUgBv88A5sTkKr2V\neYdEm34hg2TZVkipPMBiyTyBLXs8D/9oALtnczg4xlTRSjDUvqoXL5haqY4QK2Pv\nmNwna6ACkwLmSuMe29UQ8IX2PUB4R5Etni5czyiKGxZLm+4NAhuEwWFNEzCyImPc\n087gHGU1zx+qVSlajqMJ/9ZXYjbt7WiWdhOTGEv4VMn8dHhRUs32\n", + "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSJRFH/UCpp\nXi2I9CG62QzyzsvqfBgPMjAxMjEwMTEwODQxMTNaMHMwcTBJMAkGBSsOAwIaBQAE\nFEi2DTgjjfhFbk7lhD6jlBEYApefBBSIRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz\nIiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMTA4NDExM1qgERgPMjAxMjEwMTUwODQx\nMTNaMA0GCSqGSIb3DQEBBQUAA4IBAQCNnhlBMxxh9z5AKfzAxiKs90CfxUsqfYfk\n8XlyF9VIfWRfEwzS6MF1pEzLnghRxTAmjrFgK+sxD9wk+S5Mdgw3nbED9DVFH2Hs\nRGKm/t9wkvrYOX6yRQqw6uRvU/5cibMjcyzKB/VQMwk4p4FwSUgBv88A5sTkKr2V\neYdEm34hg2TZVkipPMBiyTyBLXs8D/9oALtnczg4xlTRSjDUvqoXL5haqY4QK2Pv\nmNwna6ACkwLmSuMe29UQ8IX2PUB4R5Etni5czyiKGxZLm+4NAhuEwWFNEzCyImPc\n087gHGU1zx+qVSlajqMJ/9ZXYjbt7WiWdhOTGEv4VMn8dHhRUs32\n", }; static const size_t kLen127 = 638; static const char *kData127[] = { - "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQLWOWLxkwV\nN6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAyMzAzMTlaMHMwcTBJMAkGBSsOAwIaBQAE\nFO2+ZAvtiWulchtVZmfKU1ZI9ewTBBQLWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0\n0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDIzMDMxOVqgERgPMjAxMjEwMTQyMzAz\nMTlaMA0GCSqGSIb3DQEBBQUAA4IBAQCHn2nGfEUX/EJruMkTgh7GgB0u9cpAepaD\nsPv9gtl3KLUZyR+NbGMIa5/bpoJp0yg1z5VL6CLMusy3AF6Cn2fyaioDxG+yc+gA\nPcPFdEqiIMr+TP8s7qcEiE6WZddSSCqCn90VZSCWkpDhnCjDRwJLBBPU3803fdMz\noguvyr7y6Koxik8X/iUe8EpSzAvmm4GZL3veTI+x7IezJSrhCS9zM0ZHjySjoDxC\n+ljGH0EuWPTmFEqZVGIq3cuahIYzKItUbYnXU6ipi/2p42qbsFeok7eEN0EYsY1a\nvRATHGRmU7Q5HLCq4rQtZC1cis52Mvc9x1W4z/Gt5A3FtgElXXNA\n", + "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQMWOWLxkwV\nN6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAyMzAzMTlaMHMwcTBJMAkGBSsOAwIaBQAE\nFOy+ZAvtiWulchtVZmfKU1ZI9ewTBBQLWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0\n0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDIzMDMxOVqgERgPMjAxMjEwMTQyMzAz\nMTlaMA0GCSqGSIb3DQEBBQUAA4IBAQCHn2nGfEUX/EJruMkTgh7GgB0u9cpAepaD\nsPv9gtl3KLUZyR+NbGMIa5/bpoJp0yg1z5VL6CLMusy3AF6Cn2fyaioDxG+yc+gA\nPcPFdEqiIMr+TP8s7qcEiE6WZddSSCqCn90VZSCWkpDhnCjDRwJLBBPU3803fdMz\noguvyr7y6Koxik8X/iUe8EpSzAvmm4GZL3veTI+x7IezJSrhCS9zM0ZHjySjoDxC\n+ljGH0EuWPTmFEqZVGIq3cuahIYzKItUbYnXU6ipi/2p42qbsFeok7eEN0EYsY1a\nvRATHGRmU7Q5HLCq4rQtZC1cis52Mvc9x1W4z/Gt5A3FtgElXXNA\n", }; static const size_t kLen128 = 642; static const char *kData128[] = { - "MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBStvZh6NLQm\n9/rEJlTvA73gJMtUGhgPMjAxMjEwMTExMTM2NDdaMHQwcjBKMAkGBSsOAwIaBQAE\nFH2xZlScq9tE7mImFq30ZXv3etWUBBStvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN\nbJWejX5BTb8DmevkCauAABgPMjAxMjEwMTExMTM2NDdaoBEYDzIwMTIxMDE1MTEz\nNjQ3WjANBgkqhkiG9w0BAQUFAAOCAQEAfnj3nh6z+USW6VlDWRytWpNmC1ZRwWlg\nP2+G4UF4HE8bMJkuiFLcZEVYTxlTYv+xAEpSFxdInFM2Q5C+O6pWOZ9NbikeR4oZ\nFTI1kAZ0Uw+YMpVM4ztvKBIpUSqlbi69iNJ9WGF6qzxVeqobSOyrjjwtTsuglUbR\n+mshp/SP7Br2IIK+KM1vgsmVExPfGPYANyk7ki/Q8uUnjqkreeSa9WC2iJLGcybW\nYavDhYWALebUGukNeedkloYhdjPboPPxDkKNjakwIG8EkbJK7uXewMOHHOFvFTX3\nK388me8u5iQf4f3fj6ilEgs6f5Szzmb+vklPX0zIny/TVk2+Az7HmA==\n", + "MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBSuvZh6NLQm\n9/rEJlTvA73gJMtUGhgPMjAxMjEwMTAxMzA3NDZaMHQwcjBKMAkGBSsOAwIaBQAE\nFHyxZlScq9tE7mImFq30ZXv3etWUBBStvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN\nbJWejX5BTb8DmevkCauAABgPMjAxMjEwMTAxMzA3NDZaoBEYDzIwMTIxMDE0MTMw\nNzQ2WjANBgkqhkiG9w0BAQUFAAOCAQEAA70+GYJoFuUBwIN9KHMqmOOtnmoLBBlm\nHL2Su70ZEqSmL4zTt3iHY3m2YaNYSPphgDlQ4lY8zGAkCSrZ3ulpJun3RRy+gD29\n0ks155tChMbYNZrFm46vKWabBjh2p+623daymlcbgizi5Z+P4oJL68VrOqh+DArE\nMpHH16BTGaF+bAjzTRSbS90xUReqwnnEpRBrmcQVo4uKpSkbyrx7iMLqsJ2vGpgh\nxqj1kNPT9g3+gegmdU9QpFV0l9ZV8X/f0uz5nT4I0NL81d/KDHGx2rd+bftLODeL\nZAWAzFbr5B5EMqPGoh/SQXpcuVOqMHjh8fi8PBXBcitlIFzdDKXDvA==\n", }; static const size_t kLen129 = 638; static const char *kData129[] = { - "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSIRFH/UCpp\nXi2I9CG62QzyzsvqfBgPMjAxMjEwMTEwODQxMTNaMHMwcTBJMAkGBSsOAwIaBQAE\nFEi2DTgjjfhFbk7lhD6jlBEYApefBBSJRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz\nIiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMTA4NDExM1qgERgPMjAxMjEwMTUwODQx\nMTNaMA0GCSqGSIb3DQEBBQUAA4IBAQCNnhlBMxxh9z5AKfzAxiKs90CfxUsqfYfk\n8XlyF9VIfWRfEwzS6MF1pEzLnghRxTAmjrFgK+sxD9wk+S5Mdgw3nbED9DVFH2Hs\nRGKm/t9wkvrYOX6yRQqw6uRvU/5cibMjcyzKB/VQMwk4p4FwSUgBv88A5sTkKr2V\neYdEm34hg2TZVkipPMBiyTyBLXs8D/9oALtnczg4xlTRSjDUvqoXL5haqY4QK2Pv\nmNwna6ACkwLmSuMe29UQ8IX2PUB4R5Etni5czyiKGxZLm+4NAhuEwWFNEzCyImPc\n087gHGU1zx+qVSlajqMJ/9ZXYjbt7WiWdhOTGEv4VMn8dHhRUs32\n", + "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSIRFH/UCpp\nXi2I9CG62QzyzsvqfBgPMjAxMjEwMTEwODQxMTNaMHMwcTBJMAkGBSsOAwIaBQAE\nFEm2DTgjjfhFbk7lhD6jlBEYApefBBSIRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz\nIiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMTA4NDExM1qgERgPMjAxMjEwMTUwODQx\nMTNaMA0GCSqGSIb3DQEBBQUAA4IBAQCNnhlBMxxh9z5AKfzAxiKs90CfxUsqfYfk\n8XlyF9VIfWRfEwzS6MF1pEzLnghRxTAmjrFgK+sxD9wk+S5Mdgw3nbED9DVFH2Hs\nRGKm/t9wkvrYOX6yRQqw6uRvU/5cibMjcyzKB/VQMwk4p4FwSUgBv88A5sTkKr2V\neYdEm34hg2TZVkipPMBiyTyBLXs8D/9oALtnczg4xlTRSjDUvqoXL5haqY4QK2Pv\nmNwna6ACkwLmSuMe29UQ8IX2PUB4R5Etni5czyiKGxZLm+4NAhuEwWFNEzCyImPc\n087gHGU1zx+qVSlajqMJ/9ZXYjbt7WiWdhOTGEv4VMn8dHhRUs32\n", }; static const size_t kLen130 = 638; static const char *kData130[] = { - "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQLWOWLxkwV\nN6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAyMzAzMTlaMHMwcTBJMAkGBSsOAwIaBQAE\nFOy+ZAvtiWulchtVZmfKU1ZI9ewTBBQMWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0\n0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDIzMDMxOVqgERgPMjAxMjEwMTQyMzAz\nMTlaMA0GCSqGSIb3DQEBBQUAA4IBAQCHn2nGfEUX/EJruMkTgh7GgB0u9cpAepaD\nsPv9gtl3KLUZyR+NbGMIa5/bpoJp0yg1z5VL6CLMusy3AF6Cn2fyaioDxG+yc+gA\nPcPFdEqiIMr+TP8s7qcEiE6WZddSSCqCn90VZSCWkpDhnCjDRwJLBBPU3803fdMz\noguvyr7y6Koxik8X/iUe8EpSzAvmm4GZL3veTI+x7IezJSrhCS9zM0ZHjySjoDxC\n+ljGH0EuWPTmFEqZVGIq3cuahIYzKItUbYnXU6ipi/2p42qbsFeok7eEN0EYsY1a\nvRATHGRmU7Q5HLCq4rQtZC1cis52Mvc9x1W4z/Gt5A3FtgElXXNA\n", + "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQLWOWLxkwV\nN6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAyMzAzMTlaMHMwcTBJMAkGBSsOAwIaBQAE\nFO2+ZAvtiWulchtVZmfKU1ZI9ewTBBQLWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0\n0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDIzMDMxOVqgERgPMjAxMjEwMTQyMzAz\nMTlaMA0GCSqGSIb3DQEBBQUAA4IBAQCHn2nGfEUX/EJruMkTgh7GgB0u9cpAepaD\nsPv9gtl3KLUZyR+NbGMIa5/bpoJp0yg1z5VL6CLMusy3AF6Cn2fyaioDxG+yc+gA\nPcPFdEqiIMr+TP8s7qcEiE6WZddSSCqCn90VZSCWkpDhnCjDRwJLBBPU3803fdMz\noguvyr7y6Koxik8X/iUe8EpSzAvmm4GZL3veTI+x7IezJSrhCS9zM0ZHjySjoDxC\n+ljGH0EuWPTmFEqZVGIq3cuahIYzKItUbYnXU6ipi/2p42qbsFeok7eEN0EYsY1a\nvRATHGRmU7Q5HLCq4rQtZC1cis52Mvc9x1W4z/Gt5A3FtgElXXNA\n", }; static const size_t kLen131 = 642; static const char *kData131[] = { - "MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBStvZh6NLQm\n9/rEJlTvA73gJMtUGhgPMjAxMjEwMTExMTM2NDdaMHQwcjBKMAkGBSsOAwIaBQAE\nFHyxZlScq9tE7mImFq30ZXv3etWUBBSuvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN\nbJWejX5BTb8DmevkCauAABgPMjAxMjEwMTExMTM2NDdaoBEYDzIwMTIxMDE1MTEz\nNjQ3WjANBgkqhkiG9w0BAQUFAAOCAQEAfnj3nh6z+USW6VlDWRytWpNmC1ZRwWlg\nP2+G4UF4HE8bMJkuiFLcZEVYTxlTYv+xAEpSFxdInFM2Q5C+O6pWOZ9NbikeR4oZ\nFTI1kAZ0Uw+YMpVM4ztvKBIpUSqlbi69iNJ9WGF6qzxVeqobSOyrjjwtTsuglUbR\n+mshp/SP7Br2IIK+KM1vgsmVExPfGPYANyk7ki/Q8uUnjqkreeSa9WC2iJLGcybW\nYavDhYWALebUGukNeedkloYhdjPboPPxDkKNjakwIG8EkbJK7uXewMOHHOFvFTX3\nK388me8u5iQf4f3fj6ilEgs6f5Szzmb+vklPX0zIny/TVk2+Az7HmA==\n", + "MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBStvZh6NLQm\n9/rEJlTvA73gJMtUGhgPMjAxMjEwMTExMTM2NDdaMHQwcjBKMAkGBSsOAwIaBQAE\nFH2xZlScq9tE7mImFq30ZXv3etWUBBStvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN\nbJWejX5BTb8DmevkCauAABgPMjAxMjEwMTExMTM2NDdaoBEYDzIwMTIxMDE1MTEz\nNjQ3WjANBgkqhkiG9w0BAQUFAAOCAQEAfnj3nh6z+USW6VlDWRytWpNmC1ZRwWlg\nP2+G4UF4HE8bMJkuiFLcZEVYTxlTYv+xAEpSFxdInFM2Q5C+O6pWOZ9NbikeR4oZ\nFTI1kAZ0Uw+YMpVM4ztvKBIpUSqlbi69iNJ9WGF6qzxVeqobSOyrjjwtTsuglUbR\n+mshp/SP7Br2IIK+KM1vgsmVExPfGPYANyk7ki/Q8uUnjqkreeSa9WC2iJLGcybW\nYavDhYWALebUGukNeedkloYhdjPboPPxDkKNjakwIG8EkbJK7uXewMOHHOFvFTX3\nK388me8u5iQf4f3fj6ilEgs6f5Szzmb+vklPX0zIny/TVk2+Az7HmA==\n", }; -static const size_t kLen132 = 2020; +static const size_t kLen132 = 638; static const char *kData132[] = { - "MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBRf2uQDFpGg\nYwh4P1y2H9bZ2/BQNBgPMjAxMjEwMjMxMDI1MzZaMHUwczBLMAkGBSsOAwIaBQAE\nFKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8\nvx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDIzMDcwMDAwWqARGA8yMDEyMTAzMDA4\nMDAwMFowCwYJKoZIhvcNAQEFA4IBAQAJU3hXN7NApN50/vlZTG2p8+QQJp4uaod3\nwyBQ0Ux3DoQZQ9RG6/7Mm4qpOLCCSTh/lJjZ0fD+9eB3gcp/JupN1JrU+dgTyv/Y\n9MOctJz7y+VoU9I+qB8knV4sQCwohAVm8GmA9s4p/rHq5Oymci0SuG/QCfkVxOub\nrI1bWjbHLvvXyvF3PoGMORVHG3SA+jJ9VkHWJyi6brHxY+QR/iYxer8lJsBtpyc7\nq2itFgvax/OHwne3lxsck9q0QgKpmEdJu2LuGyWFIhrEwR3b7ASEu1G/nKClv3dR\nvyOXMm1XIwuUhCjAcpNEKiOMorFwnLS1F8LhfqFWTAFG0JbWpAi8oIID+DCCA/Qw\nggPwMIIC2KADAgECAhIRISdENsrz1CSWG3VIBwfQERQwDQYJKoZIhvcNAQEFBQAw\nWTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV\nBAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy\nMDkxOTA3NDA1MFoXDTEyMTIxOTA4NDA1MFowgYUxCzAJBgNVBAYTAkJFMRkwFwYD\nVQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu\nZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDIxFzAVBgNV\nBAUTDjIwMTIwOTE5MDk0MDAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAnCgMsBO+IxIqCnXCOfXJoIC3wj+f0s4DV9h2gJBzisWXkaJD2DfNrd0kHUXK\nqVVPUxnA4G5iZu0Z385/KiOt1/P6vQ/Z2/AsEh/8Z/hIyeZCHL31wrSZW4yLeZwi\nM76wPiBHJxPun681HQlVs/OGKSHnbHc1XJAIeA/M8u+lLWqIKB+AJ82TrOqUMj1s\nLjGhQNs84xPliONN5K7DrEy+Y65X/rFxN77Smw+UtcH1GgH2NgaHH8dpt1m25sgm\nUxZWhdx66opB/lbRQwWdGt7MC0kJFaWHDZq64DTuYoekFYSxAFu0nd0EekEHEJEi\n9mquB9cv/96SuEJl8BcUWU/1LwIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P\nAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw\nHQYDVR0OBBYEFF/a5AMWkaBjCHg/XLYf1tnb8FA0MB8GA1UdIwQYMBaAFLCwSv0c\ndSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCKRl1iXFmOQtLseDWP\nY5icDDBGiRi17CGgvIzGJi/ha0PhbO+X0TmQIEnRX3Mu0Er/Mm4RZSjMtJ2iZRh3\ntGf4Dn+jKgKOmgXC3oOG/l8RPHLf0yaPSdn/z0TXtA30vTFBLlFeWnhbfhovea4+\nsnPdBxLqWZdtxmiwojgqA7YATCWwavizrBr09YRyDwzgtpZ2BwMruGuFuV9FsEwL\nPCM53yFlrM32oFghyfyE5kYjgnnueKM+pw1kA0jgb1CnVJRrMEN1TXuXDAZLtHKG\n5X/drah1JtkoZhCzxzZ3bYdVDQJ90OHFqM58lwGD6z3XuPKrHDKZKt+CPIsl5g7p\n4J2l\n", + "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBSIRFH/UCpp\nXi2I9CG62QzyzsvqfBgPMjAxMjEwMTEwODQxMTNaMHMwcTBJMAkGBSsOAwIaBQAE\nFEi2DTgjjfhFbk7lhD6jlBEYApefBBSJRFH/UCppXi2I9CG62QzyzsvqfAIQIuEz\nIiCgSN8psr+aMcKbB4AAGA8yMDEyMTAxMTA4NDExM1qgERgPMjAxMjEwMTUwODQx\nMTNaMA0GCSqGSIb3DQEBBQUAA4IBAQCNnhlBMxxh9z5AKfzAxiKs90CfxUsqfYfk\n8XlyF9VIfWRfEwzS6MF1pEzLnghRxTAmjrFgK+sxD9wk+S5Mdgw3nbED9DVFH2Hs\nRGKm/t9wkvrYOX6yRQqw6uRvU/5cibMjcyzKB/VQMwk4p4FwSUgBv88A5sTkKr2V\neYdEm34hg2TZVkipPMBiyTyBLXs8D/9oALtnczg4xlTRSjDUvqoXL5haqY4QK2Pv\nmNwna6ACkwLmSuMe29UQ8IX2PUB4R5Etni5czyiKGxZLm+4NAhuEwWFNEzCyImPc\n087gHGU1zx+qVSlajqMJ/9ZXYjbt7WiWdhOTGEv4VMn8dHhRUs32\n", }; -static const size_t kLen133 = 2044; +static const size_t kLen133 = 638; static const char *kData133[] = { - "MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB\nyVdbHxANRLCFYj1mqBgPMjAxMjEwMjMxMDI1MzZaMG4wbDBEMAkGBSsOAwIaBQAE\nFLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA\nAAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL\nBgkqhkiG9w0BAQUDggEBAEJN4FuPQPnizPIwEj4Q8Ht765gI6QqMNrvj3UykxYeu\nqUajKcqA+V1zaDHTaz+eCQthtmCNKC9T+zVkjGelVsd7Kn2fVKWqp+5wVPI8dVkm\n6Gs/IGZ16HDnQ/siTrY3ILWCRz4Hf6lnHpIErQuQRQyjlGKNcE7RYmjGw4w0bxx8\nvHN/baCMApBL0D0zeBqlpJCMUZqJJ3D1+87HxHYR1MkMZDC9rOPIhlpEP4yL17gx\nckrPf+w+A/3kC++jVeA3b8Xtr+MaWOFH4xVn6BTxopczZKVl18tSYqgwITlx5/cL\nLpYEdllC0l83E8GRzsOp0SvFxo0NBotgFNZQQujpOzagggQQMIIEDDCCBAgwggLw\noAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF\nMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw\nGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw\nNzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu\ndi1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh\nbmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID\nMwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi\noudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL\n866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J\nltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5\nMJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw\nyyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec\nTarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG\nAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ\nBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF\nDZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD\nggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7\n8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm\nuDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb\n4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa\nYW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC\nfBIRKjnK621vAWvc7UR+0hqnZ+U=\n", + "MIIB0woBAKCCAcwwggHIBgkrBgEFBQcwAQEEggG5MIIBtTCBnqIWBBQLWOWLxkwV\nN6RAqTCpIb5HNlpW/xgPMjAxMjEwMTAyMzAzMTlaMHMwcTBJMAkGBSsOAwIaBQAE\nFOy+ZAvtiWulchtVZmfKU1ZI9ewTBBQMWOWLxkwVN6RAqTCpIb5HNlpW/wIQEaO0\n0OyNt3+doM1dLVEvQoAAGA8yMDEyMTAxMDIzMDMxOVqgERgPMjAxMjEwMTQyMzAz\nMTlaMA0GCSqGSIb3DQEBBQUAA4IBAQCHn2nGfEUX/EJruMkTgh7GgB0u9cpAepaD\nsPv9gtl3KLUZyR+NbGMIa5/bpoJp0yg1z5VL6CLMusy3AF6Cn2fyaioDxG+yc+gA\nPcPFdEqiIMr+TP8s7qcEiE6WZddSSCqCn90VZSCWkpDhnCjDRwJLBBPU3803fdMz\noguvyr7y6Koxik8X/iUe8EpSzAvmm4GZL3veTI+x7IezJSrhCS9zM0ZHjySjoDxC\n+ljGH0EuWPTmFEqZVGIq3cuahIYzKItUbYnXU6ipi/2p42qbsFeok7eEN0EYsY1a\nvRATHGRmU7Q5HLCq4rQtZC1cis52Mvc9x1W4z/Gt5A3FtgElXXNA\n", }; -static const size_t kLen134 = 2414; +static const size_t kLen134 = 642; static const char *kData134[] = { - "MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV\nBAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML\nQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG\nA1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAyMzEwMzkzMFowZjBkMDwwCQYF\nKw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y\nORjRAgMLs8aAABgPMjAxMjEwMjMwOTU5MTJaoBEYDzIwMTIxMDI1MTAzOTMwWjAN\nBgkqhkiG9w0BAQUFAAOCAQEAYaaAzW26JQGFRyawj9ROtnSdJ9QPJ6B/wfpJif8e\nQU9lmKx0zIDdTum3Mc5tfxML71W025UW9jzowAfQ5bZbqa4nwZlWX5Py3hKebeYo\nWiND4pvhS4BRkheSkycEok0bj1FJYWYiJVpnTqKAPnOKrlL4qvGC2IOHk2toS/Je\niLyoUwxrPtqaXt4Caoa3I70HE3H1QqvPIGIY6V4bxV7Km/xv99QOutkbfANGiNsx\nW7EDB3TRNhldzMnjEwG58X5Pe3xwEVqjCiBL+wQ8JALn08bJzFn9E04aYrqCGc8s\ngw1dgaBoZt+0vbQUN71KEocwMj5mzJqottOyqNwo7FZnBaCCBL4wggS6MIIEtjCC\nAp6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex\nHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy\ndCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl\ncnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE\nBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD\nQWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD\nVQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr\n2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0\n3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz\nuzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz\nmogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16\nVDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD\nVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA\nMA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA\nMAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS\nr5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ\nVNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU\n6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE\nSTsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj\nReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe\ng9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo\n5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9\nHfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1\nVBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a\nwG/pag==\n", + "MIIB1AoBAKCCAc0wggHJBgkrBgEFBQcwAQEEggG6MIIBtjCBn6IWBBStvZh6NLQm\n9/rEJlTvA73gJMtUGhgPMjAxMjEwMTExMTM2NDdaMHQwcjBKMAkGBSsOAwIaBQAE\nFHyxZlScq9tE7mImFq30ZXv3etWUBBSuvZh6NLQm9/rEJlTvA73gJMtUGgIRAKcN\nbJWejX5BTb8DmevkCauAABgPMjAxMjEwMTExMTM2NDdaoBEYDzIwMTIxMDE1MTEz\nNjQ3WjANBgkqhkiG9w0BAQUFAAOCAQEAfnj3nh6z+USW6VlDWRytWpNmC1ZRwWlg\nP2+G4UF4HE8bMJkuiFLcZEVYTxlTYv+xAEpSFxdInFM2Q5C+O6pWOZ9NbikeR4oZ\nFTI1kAZ0Uw+YMpVM4ztvKBIpUSqlbi69iNJ9WGF6qzxVeqobSOyrjjwtTsuglUbR\n+mshp/SP7Br2IIK+KM1vgsmVExPfGPYANyk7ki/Q8uUnjqkreeSa9WC2iJLGcybW\nYavDhYWALebUGukNeedkloYhdjPboPPxDkKNjakwIG8EkbJK7uXewMOHHOFvFTX3\nK388me8u5iQf4f3fj6ilEgs6f5Szzmb+vklPX0zIny/TVk2+Az7HmA==\n", }; static const size_t kLen135 = 2020; static const char *kData135[] = { - "MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBSpTXftIZX0\nlLT9zwVSQC5Jfp3pqhgPMjAxMjEwMTAxMTU1NDVaMHUwczBLMAkGBSsOAwIaBQAE\nFKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8\nvx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDEwMTAwMDAwWqARGA8yMDEyMTAxNzEw\nMDAwMFowCwYJKoZIhvcNAQEFA4IBAQCaiUf6TuPaSmZR2i3hUwqdEfhjcZkcCXPu\n9diWuDZbaL6ubthfeTwx6OsZ0eM3Q+WPhBNlYQ9Sm8PDUQsQiq3YvuYu+QUisChx\nPN6BUEwFQZAGz+FX2h5+kAmK1M/xZeXMBCXJWJCClagiw5hOJfeV0ue7RUZRVuZv\nam0ZjyIeLsxsIrxghlcaJRosFmYNoM++euu5lvclutv1UQ5yyNxlYy0T/jA9gS07\nWJ/i38+zxnXTuAPOm67p5N1IkEAEg/7OPRIG17Ig1C38NctN74vAOdTU1d/ay05V\nBz4ZiI9PffkUkPgW2QRQCEjv50i80wYkKH5pIbT/mTk4t53DUK1UoIID+DCCA/Qw\nggPwMIIC2KADAgECAhIRIcYjwu4UNkR1VGrDbSdFei8wDQYJKoZIhvcNAQEFBQAw\nWTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV\nBAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy\nMDkxOTA3NDAzMVoXDTEyMTIxOTA4NDAzMVowgYUxCzAJBgNVBAYTAkJFMRkwFwYD\nVQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu\nZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDExFzAVBgNV\nBAUTDjIwMTIwOTE5MDkzOTAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAxkkb6QhDH3sEDj4zaysjVzYelq9lZ1cso4R2IyQxaoPaG6GkaCmHA4sz6KP+\nm3ADqplibEUBa/mzCxHW8/oy3NhGMFdbezduZrnRFLbzakOTeIo8VEIM3JPfgREv\nCX8nj6Xu7ERD6JO/ZQ9Xr7YVzKKN+3cVZlcMHoGBnOPcO2Sz0AcYyk5m5IsGBRoT\nT86j6Cr9PhOPTVwXL6Wxy1KVHsUZXUwnRacV0O4SHWQ4zM9Sablus9fTbh1CgIqW\nsKDyzVB4yECXkBVeUlA+cuCaRRVHRiR+jPDSgbU62nnNudEpGG7dyoop6IOvXv2O\nydncWzaukxIVvQ/Ij85kHqs7HQIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P\nAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw\nHQYDVR0OBBYEFKlNd+0hlfSUtP3PBVJALkl+nemqMB8GA1UdIwQYMBaAFLCwSv0c\ndSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCe4rZg61Dmwygl/Uae\nBJZog64/FvuB1sfCqKLJTjKOfLcugSTX1TT7bLJbzXRGPQuorI3TIZEOwldIw01d\nDTLlsOCHrfHd+bpxgijxPkUuaA4NYnpvqTEMJqPKOC8QYfKupNjAPSuHvwqvqCfO\nRCe3jY6xQDO0WCTZ8/xMsOkw+J/YEYqALETf2Ug7k5eRL/TvfLd8Sgi7vPfmUeiW\nptlsbhMOWQoQc+JA3vCI01rrjNq+0kIZ/r8nPGvablRr0Aakk6eDuS2dcReaPwuK\n0xE136pJYiXdQ3SA7uwmlorjxmejavyoPCr23TU74DQEt6hhc6uIcabsa4Y8KvJy\nRI4G\n", + "MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBRf2uQDFpGg\nYwh4P1y2H9bZ2/BQNBgPMjAxMjEwMjMxMDI1MzZaMHUwczBLMAkGBSsOAwIaBQAE\nFKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8\nvx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDIzMDcwMDAwWqARGA8yMDEyMTAzMDA4\nMDAwMFowCwYJKoZIhvcNAQEFA4IBAQAJU3hXN7NApN50/vlZTG2p8+QQJp4uaod3\nwyBQ0Ux3DoQZQ9RG6/7Mm4qpOLCCSTh/lJjZ0fD+9eB3gcp/JupN1JrU+dgTyv/Y\n9MOctJz7y+VoU9I+qB8knV4sQCwohAVm8GmA9s4p/rHq5Oymci0SuG/QCfkVxOub\nrI1bWjbHLvvXyvF3PoGMORVHG3SA+jJ9VkHWJyi6brHxY+QR/iYxer8lJsBtpyc7\nq2itFgvax/OHwne3lxsck9q0QgKpmEdJu2LuGyWFIhrEwR3b7ASEu1G/nKClv3dR\nvyOXMm1XIwuUhCjAcpNEKiOMorFwnLS1F8LhfqFWTAFG0JbWpAi8oIID+DCCA/Qw\nggPwMIIC2KADAgECAhIRISdENsrz1CSWG3VIBwfQERQwDQYJKoZIhvcNAQEFBQAw\nWTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV\nBAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy\nMDkxOTA3NDA1MFoXDTEyMTIxOTA4NDA1MFowgYUxCzAJBgNVBAYTAkJFMRkwFwYD\nVQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu\nZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDIxFzAVBgNV\nBAUTDjIwMTIwOTE5MDk0MDAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAnCgMsBO+IxIqCnXCOfXJoIC3wj+f0s4DV9h2gJBzisWXkaJD2DfNrd0kHUXK\nqVVPUxnA4G5iZu0Z385/KiOt1/P6vQ/Z2/AsEh/8Z/hIyeZCHL31wrSZW4yLeZwi\nM76wPiBHJxPun681HQlVs/OGKSHnbHc1XJAIeA/M8u+lLWqIKB+AJ82TrOqUMj1s\nLjGhQNs84xPliONN5K7DrEy+Y65X/rFxN77Smw+UtcH1GgH2NgaHH8dpt1m25sgm\nUxZWhdx66opB/lbRQwWdGt7MC0kJFaWHDZq64DTuYoekFYSxAFu0nd0EekEHEJEi\n9mquB9cv/96SuEJl8BcUWU/1LwIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P\nAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw\nHQYDVR0OBBYEFF/a5AMWkaBjCHg/XLYf1tnb8FA0MB8GA1UdIwQYMBaAFLCwSv0c\ndSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCKRl1iXFmOQtLseDWP\nY5icDDBGiRi17CGgvIzGJi/ha0PhbO+X0TmQIEnRX3Mu0Er/Mm4RZSjMtJ2iZRh3\ntGf4Dn+jKgKOmgXC3oOG/l8RPHLf0yaPSdn/z0TXtA30vTFBLlFeWnhbfhovea4+\nsnPdBxLqWZdtxmiwojgqA7YATCWwavizrBr09YRyDwzgtpZ2BwMruGuFuV9FsEwL\nPCM53yFlrM32oFghyfyE5kYjgnnueKM+pw1kA0jgb1CnVJRrMEN1TXuXDAZLtHKG\n5X/drah1JtkoZhCzxzZ3bYdVDQJ90OHFqM58lwGD6z3XuPKrHDKZKt+CPIsl5g7p\n4J2l\n", }; static const size_t kLen136 = 2044; static const char *kData136[] = { - "MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBT0zghPr/K8\njV5hpjGMML9Q+DwzShgPMjAxMjEwMTAxMjA5NTlaMG4wbDBEMAkGBSsOAwIaBQAE\nFLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA\nAAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL\nBgkqhkiG9w0BAQUDggEBAGZY28eFWl169g7puLnKSeEzi6Ma5/rErOveFRp052ck\n785B83HWkNmW/Bgw7Ws6Y7jBJce6ZQ5TMhwgNP34HuG/mVyn2ZjtCe4KKFBVnZV7\nmHGx93jgKkQvdp4pbNKxZ504eZDp8UOlR9+uwWOWHVObn7o+2N8iWKErSbZ2uX54\nAjk8Hg/XN5wI4RUtcK3QpZSf3Ren5iit4NInwCpmTOkDz/IVK96BWaEQICq4VlHG\nziD0H0SlBQCdcSPzZndGoCtIhNyJEL3O2y3Grg4X1XH7VeeyGesuTLEIAEMHJPJD\nTOVNoe5YPRK9Tqb+6jsubw8X/1b72kw3xVgb6MfC0tqgggQQMIIEDDCCBAgwggLw\noAMCAQICCwQAAAAAAThXoveHMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF\nMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw\nGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw\nNzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu\ndi1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh\nbmNoIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMQY/h5DSRT24n\nmMtD19lrn8WZzOoIl+Z9qOsrLLjEQeTMDlL7JPZh5pLaHHb6kSWT+O/RcEwpw6Dq\nH9jtAgDOsGoN7gCK7wJbIvn4MdmkXZqVBcVl3uLuII3v1CPnlc/zoz5d9qXcZKb6\nYuzseyzhDPecQ+7l2NVAUOFUj8GXOZi//bIveMsm+/zSLMfriIC84Uym2QY649SC\naFNbtF/tR6upvLCLe0b2D1g+OBfGqZasi3QI5uX6lT0gHbCnPhRo3uxG2+S4KL3M\n9sndMByrR5K6QuVf7UqA1vt0CfbA2OUXwcH5x3/TsHxtXDj2F/fWnC9QBBSN5n4I\nG8K7ZpYtAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBT0zghP\nr/K8jV5hpjGMML9Q+DwzSjBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG\nAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ\nBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF\nDZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD\nggEBAGU9HIQImzhTHkQLyA178dUdnF5E3DdzmNtwVV3cxGrFOLMpciMQLioQ/xp5\nt6j5Mshlp59imFylqowRRxRy4aN5TtMCufNh7yHIxI2Dt4O6qpPM946t5CJkMy+k\n63pXz2xFIxaJDzAmzpWzu70OY0jrh3dZa8NR4AvhtoZ8zFE6suva6ZGK7JIoINaA\nj5uyZ0qU+7vFwV1awdReNV6494z/HRjs1n956mNbalB9mKp9XXyfZlix/nN5mTJd\nNlJqz7QjnCzZRM/Gfamzk8L3/CPS3XmSblFyn6SeZ92Vms4PNqZiEUNa2TMKXQR1\nEMiDRMkyfIIMI80VgRvvzCiOt0c=\n", + "MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB\nyVdbHxANRLCFYj1mqBgPMjAxMjEwMjMxMDI1MzZaMG4wbDBEMAkGBSsOAwIaBQAE\nFLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA\nAAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL\nBgkqhkiG9w0BAQUDggEBAEJN4FuPQPnizPIwEj4Q8Ht765gI6QqMNrvj3UykxYeu\nqUajKcqA+V1zaDHTaz+eCQthtmCNKC9T+zVkjGelVsd7Kn2fVKWqp+5wVPI8dVkm\n6Gs/IGZ16HDnQ/siTrY3ILWCRz4Hf6lnHpIErQuQRQyjlGKNcE7RYmjGw4w0bxx8\nvHN/baCMApBL0D0zeBqlpJCMUZqJJ3D1+87HxHYR1MkMZDC9rOPIhlpEP4yL17gx\nckrPf+w+A/3kC++jVeA3b8Xtr+MaWOFH4xVn6BTxopczZKVl18tSYqgwITlx5/cL\nLpYEdllC0l83E8GRzsOp0SvFxo0NBotgFNZQQujpOzagggQQMIIEDDCCBAgwggLw\noAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF\nMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw\nGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw\nNzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu\ndi1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh\nbmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID\nMwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi\noudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL\n866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J\nltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5\nMJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw\nyyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec\nTarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG\nAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ\nBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF\nDZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD\nggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7\n8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm\nuDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb\n4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa\nYW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC\nfBIRKjnK621vAWvc7UR+0hqnZ+U=\n", }; static const size_t kLen137 = 2414; static const char *kData137[] = { - "MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV\nBAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML\nQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG\nA1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMDEzMjE1OVowZjBkMDwwCQYF\nKw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y\nORjRAgMLs8aAABgPMjAxMjEwMTAxMzA1MjBaoBEYDzIwMTIxMDEyMTMyMTU5WjAN\nBgkqhkiG9w0BAQUFAAOCAQEAH1auyXFf1fOdfShSnAFkg5JsRUvajrilUioTkPIn\nIGYV//huaPNZwZGCC2haZIdUuKB6G2OCXeZVskBTXPjt8/6JmoHgsZeI3x5xKXxZ\nvddLC0PgYp0cA3FqjXR2UCpdBF+GK37rnfZsdW2vD9JaEBXxTV4+ICDAg15ZphJW\nlLGmdP3mQqPURIwamcYam8tntARimgEpA0KgfVue2A+izjcxC7qk9BQYG72Fh3hC\nZFxi5u6xKNUQ2EBF9KXZyP9d2i/bYCZAUeUSRtir+fsOXHlihYRih9npKyAPwpHd\nNqhwK9NhKed8gmkX3cSaK0arBx7ev7avhM4Dqem+BzppjKCCBL4wggS6MIIEtjCC\nAp6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex\nHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy\ndCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl\ncnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE\nBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD\nQWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD\nVQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr\n2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0\n3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz\nuzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz\nmogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16\nVDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD\nVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA\nMA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA\nMAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS\nr5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ\nVNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU\n6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE\nSTsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj\nReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe\ng9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo\n5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9\nHfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1\nVBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a\nwG/pag==\n", + "MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV\nBAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML\nQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG\nA1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAyMzEwMzkzMFowZjBkMDwwCQYF\nKw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y\nORjRAgMLs8aAABgPMjAxMjEwMjMwOTU5MTJaoBEYDzIwMTIxMDI1MTAzOTMwWjAN\nBgkqhkiG9w0BAQUFAAOCAQEAYaaAzW26JQGFRyawj9ROtnSdJ9QPJ6B/wfpJif8e\nQU9lmKx0zIDdTum3Mc5tfxML71W025UW9jzowAfQ5bZbqa4nwZlWX5Py3hKebeYo\nWiND4pvhS4BRkheSkycEok0bj1FJYWYiJVpnTqKAPnOKrlL4qvGC2IOHk2toS/Je\niLyoUwxrPtqaXt4Caoa3I70HE3H1QqvPIGIY6V4bxV7Km/xv99QOutkbfANGiNsx\nW7EDB3TRNhldzMnjEwG58X5Pe3xwEVqjCiBL+wQ8JALn08bJzFn9E04aYrqCGc8s\ngw1dgaBoZt+0vbQUN71KEocwMj5mzJqottOyqNwo7FZnBaCCBL4wggS6MIIEtjCC\nAp6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex\nHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy\ndCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl\ncnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE\nBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD\nQWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD\nVQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr\n2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0\n3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz\nuzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz\nmogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16\nVDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD\nVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA\nMA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA\nMAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS\nr5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ\nVNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU\n6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE\nSTsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj\nReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe\ng9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo\n5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9\nHfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1\nVBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a\nwG/pag==\n", }; static const size_t kLen138 = 2020; static const char *kData138[] = { - "MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBRg2uQDFpGg\nYwh4P1y2H9bZ2/BQNBgPMjAxMjEwMTExMTI1MjJaMHUwczBLMAkGBSsOAwIaBQAE\nFKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8\nvx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDExMTAwMDAwWqARGA8yMDEyMTAxODEw\nMDAwMFowCwYJKoZIhvcNAQEFA4IBAQAHQBPHdHWNzaFs5bfBvQcvxBWsDnsCFXNs\na1fECiWDFNt6Nz4MCBY4rC7n0nhQfvg4m1woNcTAZVO8lacYomwUU/5/XpeFM6yc\nNeFcVbfVXA48GWPANitNQCwyRL5hGfIqNy1I9T1BHlBqYusmJKy65r2iqpmld/hD\n7S1dsCd4fXhjBQQORPmBqhKvWEU08Dh5aoaDAuaZoxRH8B1q+mUs0ODOIu34L84y\nJcxTKccd/HCwI8oxwLoBtyXSHb+dCzc7zSjFvQhbT5dOCvJNNe/fk6+EhMtQ6ybC\nD7p9EShCvU5jAdw54bZWk5wIQSvsWk9axUmYFFLYI3hAaoybpFVroIID+DCCA/Qw\nggPwMIIC2KADAgECAhIRISdENsrz1CSWG3VIBwfQERQwDQYJKoZIhvcNAQEFBQAw\nWTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV\nBAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy\nMDkxOTA3NDA1MFoXDTEyMTIxOTA4NDA1MFowgYUxCzAJBgNVBAYTAkJFMRkwFwYD\nVQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu\nZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDIxFzAVBgNV\nBAUTDjIwMTIwOTE5MDk0MDAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAnCgMsBO+IxIqCnXCOfXJoIC3wj+f0s4DV9h2gJBzisWXkaJD2DfNrd0kHUXK\nqVVPUxnA4G5iZu0Z385/KiOt1/P6vQ/Z2/AsEh/8Z/hIyeZCHL31wrSZW4yLeZwi\nM76wPiBHJxPun681HQlVs/OGKSHnbHc1XJAIeA/M8u+lLWqIKB+AJ82TrOqUMj1s\nLjGhQNs84xPliONN5K7DrEy+Y65X/rFxN77Smw+UtcH1GgH2NgaHH8dpt1m25sgm\nUxZWhdx66opB/lbRQwWdGt7MC0kJFaWHDZq64DTuYoekFYSxAFu0nd0EekEHEJEi\n9mquB9cv/96SuEJl8BcUWU/1LwIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P\nAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw\nHQYDVR0OBBYEFF/a5AMWkaBjCHg/XLYf1tnb8FA0MB8GA1UdIwQYMBaAFLCwSv0c\ndSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCKRl1iXFmOQtLseDWP\nY5icDDBGiRi17CGgvIzGJi/ha0PhbO+X0TmQIEnRX3Mu0Er/Mm4RZSjMtJ2iZRh3\ntGf4Dn+jKgKOmgXC3oOG/l8RPHLf0yaPSdn/z0TXtA30vTFBLlFeWnhbfhovea4+\nsnPdBxLqWZdtxmiwojgqA7YATCWwavizrBr09YRyDwzgtpZ2BwMruGuFuV9FsEwL\nPCM53yFlrM32oFghyfyE5kYjgnnueKM+pw1kA0jgb1CnVJRrMEN1TXuXDAZLtHKG\n5X/drah1JtkoZhCzxzZ3bYdVDQJ90OHFqM58lwGD6z3XuPKrHDKZKt+CPIsl5g7p\n4J2l\n", + "MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBSpTXftIZX0\nlLT9zwVSQC5Jfp3pqhgPMjAxMjEwMTAxMTU1NDVaMHUwczBLMAkGBSsOAwIaBQAE\nFKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8\nvx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDEwMTAwMDAwWqARGA8yMDEyMTAxNzEw\nMDAwMFowCwYJKoZIhvcNAQEFA4IBAQCaiUf6TuPaSmZR2i3hUwqdEfhjcZkcCXPu\n9diWuDZbaL6ubthfeTwx6OsZ0eM3Q+WPhBNlYQ9Sm8PDUQsQiq3YvuYu+QUisChx\nPN6BUEwFQZAGz+FX2h5+kAmK1M/xZeXMBCXJWJCClagiw5hOJfeV0ue7RUZRVuZv\nam0ZjyIeLsxsIrxghlcaJRosFmYNoM++euu5lvclutv1UQ5yyNxlYy0T/jA9gS07\nWJ/i38+zxnXTuAPOm67p5N1IkEAEg/7OPRIG17Ig1C38NctN74vAOdTU1d/ay05V\nBz4ZiI9PffkUkPgW2QRQCEjv50i80wYkKH5pIbT/mTk4t53DUK1UoIID+DCCA/Qw\nggPwMIIC2KADAgECAhIRIcYjwu4UNkR1VGrDbSdFei8wDQYJKoZIhvcNAQEFBQAw\nWTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV\nBAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy\nMDkxOTA3NDAzMVoXDTEyMTIxOTA4NDAzMVowgYUxCzAJBgNVBAYTAkJFMRkwFwYD\nVQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu\nZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDExFzAVBgNV\nBAUTDjIwMTIwOTE5MDkzOTAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAxkkb6QhDH3sEDj4zaysjVzYelq9lZ1cso4R2IyQxaoPaG6GkaCmHA4sz6KP+\nm3ADqplibEUBa/mzCxHW8/oy3NhGMFdbezduZrnRFLbzakOTeIo8VEIM3JPfgREv\nCX8nj6Xu7ERD6JO/ZQ9Xr7YVzKKN+3cVZlcMHoGBnOPcO2Sz0AcYyk5m5IsGBRoT\nT86j6Cr9PhOPTVwXL6Wxy1KVHsUZXUwnRacV0O4SHWQ4zM9Sablus9fTbh1CgIqW\nsKDyzVB4yECXkBVeUlA+cuCaRRVHRiR+jPDSgbU62nnNudEpGG7dyoop6IOvXv2O\nydncWzaukxIVvQ/Ij85kHqs7HQIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P\nAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw\nHQYDVR0OBBYEFKlNd+0hlfSUtP3PBVJALkl+nemqMB8GA1UdIwQYMBaAFLCwSv0c\ndSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCe4rZg61Dmwygl/Uae\nBJZog64/FvuB1sfCqKLJTjKOfLcugSTX1TT7bLJbzXRGPQuorI3TIZEOwldIw01d\nDTLlsOCHrfHd+bpxgijxPkUuaA4NYnpvqTEMJqPKOC8QYfKupNjAPSuHvwqvqCfO\nRCe3jY6xQDO0WCTZ8/xMsOkw+J/YEYqALETf2Ug7k5eRL/TvfLd8Sgi7vPfmUeiW\nptlsbhMOWQoQc+JA3vCI01rrjNq+0kIZ/r8nPGvablRr0Aakk6eDuS2dcReaPwuK\n0xE136pJYiXdQ3SA7uwmlorjxmejavyoPCr23TU74DQEt6hhc6uIcabsa4Y8KvJy\nRI4G\n", }; static const size_t kLen139 = 2044; static const char *kData139[] = { - "MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTrlwecTarB\nyVdbHxANRLCFYj1mqBgPMjAxMjEwMTExMTI1MjVaMG4wbDBEMAkGBSsOAwIaBQAE\nFLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA\nAAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL\nBgkqhkiG9w0BAQUDggEBAHThkPoy6eA7qX9y5C5b1ElRSwdjzsd15OJSqP2yjQbS\nOl1K8DWtX0UhTfRH+CrIPoWL40g2HjXtIVeMD6s3hakYimZUenIJ/IRRSVWp+EXU\nMewgTVPz/wJN/9dJIkSbOI/BmpIGlaaBaLwcb39nJjZMq0sXj8jRI5i0isotOAFz\nZc0R20viBEH099KuGktB2fKKEpVbbWPljTxKzkIBs9SXZBIqd/X2MWzQWcLKzhL0\noynkvqxTFqNVjjZKcKSXPS/XEUufLrv/E3xQZYAfTJr778kFkyA8JzrXiH6W5DX6\nUbqsnO5DaPZvMDfvlQWETkoS1j+Qgu2mIWzdiw7sPrOgggQQMIIEDDCCBAgwggLw\noAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF\nMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw\nGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw\nNzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu\ndi1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh\nbmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID\nMwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi\noudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL\n866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J\nltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5\nMJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw\nyyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec\nTarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG\nAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ\nBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF\nDZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD\nggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7\n8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm\nuDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb\n4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa\nYW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC\nfBIRKjnK621vAWvc7UR+0hqnZ+U=\n", + "MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBT0zghPr/K8\njV5hpjGMML9Q+DwzShgPMjAxMjEwMTAxMjA5NTlaMG4wbDBEMAkGBSsOAwIaBQAE\nFLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA\nAAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL\nBgkqhkiG9w0BAQUDggEBAGZY28eFWl169g7puLnKSeEzi6Ma5/rErOveFRp052ck\n785B83HWkNmW/Bgw7Ws6Y7jBJce6ZQ5TMhwgNP34HuG/mVyn2ZjtCe4KKFBVnZV7\nmHGx93jgKkQvdp4pbNKxZ504eZDp8UOlR9+uwWOWHVObn7o+2N8iWKErSbZ2uX54\nAjk8Hg/XN5wI4RUtcK3QpZSf3Ren5iit4NInwCpmTOkDz/IVK96BWaEQICq4VlHG\nziD0H0SlBQCdcSPzZndGoCtIhNyJEL3O2y3Grg4X1XH7VeeyGesuTLEIAEMHJPJD\nTOVNoe5YPRK9Tqb+6jsubw8X/1b72kw3xVgb6MfC0tqgggQQMIIEDDCCBAgwggLw\noAMCAQICCwQAAAAAAThXoveHMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF\nMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw\nGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw\nNzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu\ndi1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh\nbmNoIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMQY/h5DSRT24n\nmMtD19lrn8WZzOoIl+Z9qOsrLLjEQeTMDlL7JPZh5pLaHHb6kSWT+O/RcEwpw6Dq\nH9jtAgDOsGoN7gCK7wJbIvn4MdmkXZqVBcVl3uLuII3v1CPnlc/zoz5d9qXcZKb6\nYuzseyzhDPecQ+7l2NVAUOFUj8GXOZi//bIveMsm+/zSLMfriIC84Uym2QY649SC\naFNbtF/tR6upvLCLe0b2D1g+OBfGqZasi3QI5uX6lT0gHbCnPhRo3uxG2+S4KL3M\n9sndMByrR5K6QuVf7UqA1vt0CfbA2OUXwcH5x3/TsHxtXDj2F/fWnC9QBBSN5n4I\nG8K7ZpYtAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBT0zghP\nr/K8jV5hpjGMML9Q+DwzSjBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG\nAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ\nBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF\nDZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD\nggEBAGU9HIQImzhTHkQLyA178dUdnF5E3DdzmNtwVV3cxGrFOLMpciMQLioQ/xp5\nt6j5Mshlp59imFylqowRRxRy4aN5TtMCufNh7yHIxI2Dt4O6qpPM946t5CJkMy+k\n63pXz2xFIxaJDzAmzpWzu70OY0jrh3dZa8NR4AvhtoZ8zFE6suva6ZGK7JIoINaA\nj5uyZ0qU+7vFwV1awdReNV6494z/HRjs1n956mNbalB9mKp9XXyfZlix/nN5mTJd\nNlJqz7QjnCzZRM/Gfamzk8L3/CPS3XmSblFyn6SeZ92Vms4PNqZiEUNa2TMKXQR1\nEMiDRMkyfIIMI80VgRvvzCiOt0c=\n", }; static const size_t kLen140 = 2414; static const char *kData140[] = { - "MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV\nBAYTAlVTMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML\nQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG\nA1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMTEzMjE0MVowZjBkMDwwCQYF\nKw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y\nORjRAgMLs8aAABgPMjAxMjEwMTExMjQyMTZaoBEYDzIwMTIxMDEzMTMyMTQxWjAN\nBgkqhkiG9w0BAQUFAAOCAQEAEWd9kKEfaurOXDV98OVtU27TmK4L4MeGEPdkg1i+\nfbPMe1mouWlVm23W6yaM7mM2NMXLW+hTNzqfyMPM7rByXNaFAAniCPTXNO3eJRIA\nZf0F10OSdBQ/ln4igHQCVZCnXR30/aP5/PMb4u3/LTuC9aW6K7mLXcuCvJztGnXO\nv3r64q/qTGG/b4eS65exykV9riSFuGp1rzLAy5fSYTBWTOBQ679PFjQnL60GkrZA\nEgtxw2ozEDwo+X0WamEouxN8mjX/VQlMdEbykUFDuPD3vZydZ04BV9f18RJZOU9j\ngCwMzd9gb4jUL4ykdWiLmO+YPDWFyNSYEIfnGgk1VvPHuaCCBL4wggS6MIIEtjCC\nAp6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex\nHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy\ndCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl\ncnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE\nBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD\nQWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD\nVQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr\n2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0\n3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz\nuzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz\nmogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16\nVDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD\nVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA\nMA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA\nMAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS\nr5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ\nVNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU\n6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE\nSTsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj\nReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe\ng9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo\n5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9\nHfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1\nVBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a\nwG/pag==\n", + "MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV\nBAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML\nQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG\nA1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMDEzMjE1OVowZjBkMDwwCQYF\nKw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y\nORjRAgMLs8aAABgPMjAxMjEwMTAxMzA1MjBaoBEYDzIwMTIxMDEyMTMyMTU5WjAN\nBgkqhkiG9w0BAQUFAAOCAQEAH1auyXFf1fOdfShSnAFkg5JsRUvajrilUioTkPIn\nIGYV//huaPNZwZGCC2haZIdUuKB6G2OCXeZVskBTXPjt8/6JmoHgsZeI3x5xKXxZ\nvddLC0PgYp0cA3FqjXR2UCpdBF+GK37rnfZsdW2vD9JaEBXxTV4+ICDAg15ZphJW\nlLGmdP3mQqPURIwamcYam8tntARimgEpA0KgfVue2A+izjcxC7qk9BQYG72Fh3hC\nZFxi5u6xKNUQ2EBF9KXZyP9d2i/bYCZAUeUSRtir+fsOXHlihYRih9npKyAPwpHd\nNqhwK9NhKed8gmkX3cSaK0arBx7ev7avhM4Dqem+BzppjKCCBL4wggS6MIIEtjCC\nAp6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex\nHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy\ndCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl\ncnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE\nBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD\nQWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD\nVQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr\n2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0\n3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz\nuzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz\nmogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16\nVDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD\nVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA\nMA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA\nMAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS\nr5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ\nVNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU\n6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE\nSTsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj\nReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe\ng9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo\n5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9\nHfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1\nVBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a\nwG/pag==\n", }; static const size_t kLen141 = 2020; static const char *kData141[] = { - "MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBRf2uQDFpGg\nYwh4P1y2H9bZ2/BQNBgPMjAxMjEwMTExMzI5NDJaMHUwczBLMAkGBSsOAwIaBQAE\nFKFyDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8\nvx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDExMTAwMDAwWqARGA8yMDEyMTAxODEw\nMDAwMFowCwYJKoZIhvcNAQEFA4IBAQCX3gEX+JVfxuYmxBBxC9sNCi3o76ODIicr\nXMvm0DTO9VSyDBl7LDsMMgNMIDtO3flQSlBNZ2B9ikwyckXOSWXiXzybZVMdA/uq\nNchgkM9aChrlhG0AHZyYe/+dJSmEBFXkIomy+S6YQ7Mcs2s6WxCeWU7gB4XOy1zO\n/CvWjv0WQV1J2lZZ6pkvtECKAEjrVP275LA38HInFbYvVPXWzl4sDcX2TAxwUa4S\nxAJAfwl+B+oZSerZWGRo6KjZuB/OB31cB5n/lABmRez6Obi27D0UUCRv/eSbwOF4\nOfaa/XzJt7sF7WpVgoR41HI88W7aN4vtcw1zcVsBmfRMUNYZSqtfoIID+DCCA/Qw\nggPwMIIC2KADAgECAhIRISdENsrz1CSWG3VIBwfQERQwDQYJKoZIhvcNAQEFBQAw\nWTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV\nBAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy\nMDkxOTA3NDA1MFoXDTEyMTIxOTA4NDA1MFowgYUxCzAJBgNVBAYTAkJFMRkwFwYD\nVQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu\nZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDIxFzAVBgNV\nBAUTDjIwMTIwOTE5MDk0MDAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAnCgMsBO+IxIqCnXCOfXJoIC3wj+f0s4DV9h2gJBzisWXkaJD2DfNrd0kHUXK\nqVVPUxnA4G5iZu0Z385/KiOt1/P6vQ/Z2/AsEh/8Z/hIyeZCHL31wrSZW4yLeZwi\nM76wPiBHJxPun681HQlVs/OGKSHnbHc1XJAIeA/M8u+lLWqIKB+AJ82TrOqUMj1s\nLjGhQNs84xPliONN5K7DrEy+Y65X/rFxN77Smw+UtcH1GgH2NgaHH8dpt1m25sgm\nUxZWhdx66opB/lbRQwWdGt7MC0kJFaWHDZq64DTuYoekFYSxAFu0nd0EekEHEJEi\n9mquB9cv/96SuEJl8BcUWU/1LwIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P\nAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw\nHQYDVR0OBBYEFF/a5AMWkaBjCHg/XLYf1tnb8FA0MB8GA1UdIwQYMBaAFLCwSv0c\ndSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCKRl1iXFmOQtLseDWP\nY5icDDBGiRi17CGgvIzGJi/ha0PhbO+X0TmQIEnRX3Mu0Er/Mm4RZSjMtJ2iZRh3\ntGf4Dn+jKgKOmgXC3oOG/l8RPHLf0yaPSdn/z0TXtA30vTFBLlFeWnhbfhovea4+\nsnPdBxLqWZdtxmiwojgqA7YATCWwavizrBr09YRyDwzgtpZ2BwMruGuFuV9FsEwL\nPCM53yFlrM32oFghyfyE5kYjgnnueKM+pw1kA0jgb1CnVJRrMEN1TXuXDAZLtHKG\n5X/drah1JtkoZhCzxzZ3bYdVDQJ90OHFqM58lwGD6z3XuPKrHDKZKt+CPIsl5g7p\n4J2l\n", + "MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBRg2uQDFpGg\nYwh4P1y2H9bZ2/BQNBgPMjAxMjEwMTExMTI1MjJaMHUwczBLMAkGBSsOAwIaBQAE\nFKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8\nvx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDExMTAwMDAwWqARGA8yMDEyMTAxODEw\nMDAwMFowCwYJKoZIhvcNAQEFA4IBAQAHQBPHdHWNzaFs5bfBvQcvxBWsDnsCFXNs\na1fECiWDFNt6Nz4MCBY4rC7n0nhQfvg4m1woNcTAZVO8lacYomwUU/5/XpeFM6yc\nNeFcVbfVXA48GWPANitNQCwyRL5hGfIqNy1I9T1BHlBqYusmJKy65r2iqpmld/hD\n7S1dsCd4fXhjBQQORPmBqhKvWEU08Dh5aoaDAuaZoxRH8B1q+mUs0ODOIu34L84y\nJcxTKccd/HCwI8oxwLoBtyXSHb+dCzc7zSjFvQhbT5dOCvJNNe/fk6+EhMtQ6ybC\nD7p9EShCvU5jAdw54bZWk5wIQSvsWk9axUmYFFLYI3hAaoybpFVroIID+DCCA/Qw\nggPwMIIC2KADAgECAhIRISdENsrz1CSWG3VIBwfQERQwDQYJKoZIhvcNAQEFBQAw\nWTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV\nBAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy\nMDkxOTA3NDA1MFoXDTEyMTIxOTA4NDA1MFowgYUxCzAJBgNVBAYTAkJFMRkwFwYD\nVQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu\nZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDIxFzAVBgNV\nBAUTDjIwMTIwOTE5MDk0MDAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAnCgMsBO+IxIqCnXCOfXJoIC3wj+f0s4DV9h2gJBzisWXkaJD2DfNrd0kHUXK\nqVVPUxnA4G5iZu0Z385/KiOt1/P6vQ/Z2/AsEh/8Z/hIyeZCHL31wrSZW4yLeZwi\nM76wPiBHJxPun681HQlVs/OGKSHnbHc1XJAIeA/M8u+lLWqIKB+AJ82TrOqUMj1s\nLjGhQNs84xPliONN5K7DrEy+Y65X/rFxN77Smw+UtcH1GgH2NgaHH8dpt1m25sgm\nUxZWhdx66opB/lbRQwWdGt7MC0kJFaWHDZq64DTuYoekFYSxAFu0nd0EekEHEJEi\n9mquB9cv/96SuEJl8BcUWU/1LwIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P\nAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw\nHQYDVR0OBBYEFF/a5AMWkaBjCHg/XLYf1tnb8FA0MB8GA1UdIwQYMBaAFLCwSv0c\ndSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCKRl1iXFmOQtLseDWP\nY5icDDBGiRi17CGgvIzGJi/ha0PhbO+X0TmQIEnRX3Mu0Er/Mm4RZSjMtJ2iZRh3\ntGf4Dn+jKgKOmgXC3oOG/l8RPHLf0yaPSdn/z0TXtA30vTFBLlFeWnhbfhovea4+\nsnPdBxLqWZdtxmiwojgqA7YATCWwavizrBr09YRyDwzgtpZ2BwMruGuFuV9FsEwL\nPCM53yFlrM32oFghyfyE5kYjgnnueKM+pw1kA0jgb1CnVJRrMEN1TXuXDAZLtHKG\n5X/drah1JtkoZhCzxzZ3bYdVDQJ90OHFqM58lwGD6z3XuPKrHDKZKt+CPIsl5g7p\n4J2l\n", }; static const size_t kLen142 = 2044; static const char *kData142[] = { - "MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB\nyVdbHxANRLCFYj1mqBgPMjAxMjEwMTExMzMwMTBaMG4wbDBEMAkGBSsOAwIaBQAE\nFLhXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA\nAAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL\nBgkqhkiG9w0BAQUDggEBAA0H7bvcULg1GayFtQVrYDyW0feOEMNGLmgaGuwRdrY3\nKuWyNJLUUJKQZnOkdT8A4RpVX8xD4EgVyOqRACUahgdgp0g3QOn+vf2Zyf+NJIgW\nwoF5qaJgCOeIOw5O6F4r1vUhp8NvqXHotswgG58Nzz6UMD+uyIgq5o8uzOjryEm6\nwO2X+KvN9sMzkeZhNvAHkgBQL8CG4CggWnzn7At1DmhhsizfhDrosigM4Zr6Sm6z\nv1YfSPznD0b3TQ7RzvpbJPofF2aJXMIMxdKR5pemuevTDR2+JCXjVPsD/ZODFykc\nrsQeqx2vTOIg84PRKboXjCAwHn4rIN7JJtQqebLtD9egggQQMIIEDDCCBAgwggLw\noAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF\nMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw\nGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw\nNzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu\ndi1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh\nbmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID\nMwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi\noudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL\n866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J\nltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5\nMJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw\nyyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec\nTarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG\nAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ\nBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF\nDZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD\nggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7\n8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm\nuDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb\n4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa\nYW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC\nfBIRKjnK621vAWvc7UR+0hqnZ+U=\n", + "MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTrlwecTarB\nyVdbHxANRLCFYj1mqBgPMjAxMjEwMTExMTI1MjVaMG4wbDBEMAkGBSsOAwIaBQAE\nFLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA\nAAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL\nBgkqhkiG9w0BAQUDggEBAHThkPoy6eA7qX9y5C5b1ElRSwdjzsd15OJSqP2yjQbS\nOl1K8DWtX0UhTfRH+CrIPoWL40g2HjXtIVeMD6s3hakYimZUenIJ/IRRSVWp+EXU\nMewgTVPz/wJN/9dJIkSbOI/BmpIGlaaBaLwcb39nJjZMq0sXj8jRI5i0isotOAFz\nZc0R20viBEH099KuGktB2fKKEpVbbWPljTxKzkIBs9SXZBIqd/X2MWzQWcLKzhL0\noynkvqxTFqNVjjZKcKSXPS/XEUufLrv/E3xQZYAfTJr778kFkyA8JzrXiH6W5DX6\nUbqsnO5DaPZvMDfvlQWETkoS1j+Qgu2mIWzdiw7sPrOgggQQMIIEDDCCBAgwggLw\noAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF\nMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw\nGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw\nNzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu\ndi1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh\nbmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID\nMwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi\noudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL\n866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J\nltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5\nMJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw\nyyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec\nTarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG\nAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ\nBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF\nDZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD\nggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7\n8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm\nuDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb\n4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa\nYW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC\nfBIRKjnK621vAWvc7UR+0hqnZ+U=\n", }; static const size_t kLen143 = 2414; static const char *kData143[] = { - "MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV\nBAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML\nQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG\nA1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMTE0MzkxOFowZjBkMDwwCQYF\nKw4DAhoFAAQUjKTJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y\nORjRAgMLs8aAABgPMjAxMjEwMTExNDIzMjVaoBEYDzIwMTIxMDEzMTQzOTE4WjAN\nBgkqhkiG9w0BAQUFAAOCAQEAgdrf+v+BwEhG0ghTLMVmuxWprJr/9VFtpKpxQrTo\negSoW+5JOPCUAStfw3R3u7QM8sJf9bnPorgoCoY1hPKcWNLhvf1Ng3QlVkNa6NcO\nEonbuI4KE9Rhoflpf//pD/3AFKzU+ecRs04KtYezKrUvC1RayGabd7bgtIpdFss4\nZCZ22riqjFtqD3+2//AHg7VaqiJMKlRt05CMmGe+HKn5PEN9HaeI52nsTf+L1Jeh\nItnaDPfV76vFHHXyUhR3iIgnqQDCig0q3yj7BQqH50+K+myiMAY+p8cuVqebno1i\nBzXxxpZl/fw1KnTFdEa7p2jtmXw3KZiHAWAddwg1F1tHTaCCBL4wggS6MIIEtjCC\nAp6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex\nHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy\ndCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl\ncnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE\nBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD\nQWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD\nVQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr\n2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0\n3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz\nuzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz\nmogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16\nVDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD\nVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA\nMA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA\nMAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS\nr5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ\nVNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU\n6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE\nSTsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj\nReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe\ng9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo\n5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9\nHfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1\nVBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a\nwG/pag==\n", + "MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV\nBAYTAlVTMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML\nQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG\nA1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMTEzMjE0MVowZjBkMDwwCQYF\nKw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y\nORjRAgMLs8aAABgPMjAxMjEwMTExMjQyMTZaoBEYDzIwMTIxMDEzMTMyMTQxWjAN\nBgkqhkiG9w0BAQUFAAOCAQEAEWd9kKEfaurOXDV98OVtU27TmK4L4MeGEPdkg1i+\nfbPMe1mouWlVm23W6yaM7mM2NMXLW+hTNzqfyMPM7rByXNaFAAniCPTXNO3eJRIA\nZf0F10OSdBQ/ln4igHQCVZCnXR30/aP5/PMb4u3/LTuC9aW6K7mLXcuCvJztGnXO\nv3r64q/qTGG/b4eS65exykV9riSFuGp1rzLAy5fSYTBWTOBQ679PFjQnL60GkrZA\nEgtxw2ozEDwo+X0WamEouxN8mjX/VQlMdEbykUFDuPD3vZydZ04BV9f18RJZOU9j\ngCwMzd9gb4jUL4ykdWiLmO+YPDWFyNSYEIfnGgk1VvPHuaCCBL4wggS6MIIEtjCC\nAp6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex\nHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy\ndCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl\ncnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE\nBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD\nQWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD\nVQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr\n2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0\n3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz\nuzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz\nmogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16\nVDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD\nVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA\nMA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA\nMAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS\nr5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ\nVNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU\n6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE\nSTsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj\nReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe\ng9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo\n5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9\nHfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1\nVBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a\nwG/pag==\n", }; static const size_t kLen144 = 2020; static const char *kData144[] = { - "MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBRf2uQDFpGg\nYwh4P1y2H9bZ2/BQNBgPMjAxMjEwMTExMzI5NDJaMHUwczBLMAkGBSsOAwIaBQAE\nFKByDqBqfGICVPKo9Z3Se6Tzty+kBBSxsEr9HHUo+BxhqhP2+sGQPWsWowISESG8\nvx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDExMTAwMDAwWqARGA8yMDEyMTAxODEw\nMDAwMFowCwYJKoZIhvcNAQEFA4IBAQCX3gEX+JVfxuYmxBBxC9sNCi3o76ODIicr\nXMvm0DTO9VSyDBl7LDsMMgNMIDtO3flQSlBNZ2B9ikwyckXOSWXiXzybZVMdA/uq\nNchgkM9aChrlhG0AHZyYe/+dJSmEBFXkIomy+S6YQ7Mcs2s6WxCeWU7gB4XOy1zO\n/CvWjv0WQV1J2lZZ6pkvtECKAEjrVP275LA38HInFbYvVPXWzl4sDcX2TAxwUa4S\nxAJAfwl+B+oZSerZWGRo6KjZuB/OB31cB5n/lABmRez6Obi27D0UUCRv/eSbwOF4\nOfaa/XzJt7sF7WpVgoR41HI88W7aN4vtcw1zcVsBmfRMUNYZSqtfoIID+DCCA/Qw\nggPwMIIC2KADAgECAhIRISdENsrz1CSWG3VIBwfQERQwDQYJKoZIhvcNAQEFBQAw\nWTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV\nBAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy\nMDkxOTA3NDA1MFoXDTEyMTIxOTA4NDA1MFowgYUxCzAJBgNVBAYTAkJFMRkwFwYD\nVQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu\nZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDIxFzAVBgNV\nBAUTDjIwMTIwOTE5MDk0MDAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAnCgMsBO+IxIqCnXCOfXJoIC3wj+f0s4DV9h2gJBzisWXkaJD2DfNrd0kHUXK\nqVVPUxnA4G5iZu0Z385/KiOt1/P6vQ/Z2/AsEh/8Z/hIyeZCHL31wrSZW4yLeZwi\nM76wPiBHJxPun681HQlVs/OGKSHnbHc1XJAIeA/M8u+lLWqIKB+AJ82TrOqUMj1s\nLjGhQNs84xPliONN5K7DrEy+Y65X/rFxN77Smw+UtcH1GgH2NgaHH8dpt1m25sgm\nUxZWhdx66opB/lbRQwWdGt7MC0kJFaWHDZq64DTuYoekFYSxAFu0nd0EekEHEJEi\n9mquB9cv/96SuEJl8BcUWU/1LwIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P\nAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw\nHQYDVR0OBBYEFF/a5AMWkaBjCHg/XLYf1tnb8FA0MB8GA1UdIwQYMBaAFLCwSv0c\ndSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCKRl1iXFmOQtLseDWP\nY5icDDBGiRi17CGgvIzGJi/ha0PhbO+X0TmQIEnRX3Mu0Er/Mm4RZSjMtJ2iZRh3\ntGf4Dn+jKgKOmgXC3oOG/l8RPHLf0yaPSdn/z0TXtA30vTFBLlFeWnhbfhovea4+\nsnPdBxLqWZdtxmiwojgqA7YATCWwavizrBr09YRyDwzgtpZ2BwMruGuFuV9FsEwL\nPCM53yFlrM32oFghyfyE5kYjgnnueKM+pw1kA0jgb1CnVJRrMEN1TXuXDAZLtHKG\n5X/drah1JtkoZhCzxzZ3bYdVDQJ90OHFqM58lwGD6z3XuPKrHDKZKt+CPIsl5g7p\n4J2l\n", + "MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBRf2uQDFpGg\nYwh4P1y2H9bZ2/BQNBgPMjAxMjEwMTExMzI5NDJaMHUwczBLMAkGBSsOAwIaBQAE\nFKFyDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8\nvx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDExMTAwMDAwWqARGA8yMDEyMTAxODEw\nMDAwMFowCwYJKoZIhvcNAQEFA4IBAQCX3gEX+JVfxuYmxBBxC9sNCi3o76ODIicr\nXMvm0DTO9VSyDBl7LDsMMgNMIDtO3flQSlBNZ2B9ikwyckXOSWXiXzybZVMdA/uq\nNchgkM9aChrlhG0AHZyYe/+dJSmEBFXkIomy+S6YQ7Mcs2s6WxCeWU7gB4XOy1zO\n/CvWjv0WQV1J2lZZ6pkvtECKAEjrVP275LA38HInFbYvVPXWzl4sDcX2TAxwUa4S\nxAJAfwl+B+oZSerZWGRo6KjZuB/OB31cB5n/lABmRez6Obi27D0UUCRv/eSbwOF4\nOfaa/XzJt7sF7WpVgoR41HI88W7aN4vtcw1zcVsBmfRMUNYZSqtfoIID+DCCA/Qw\nggPwMIIC2KADAgECAhIRISdENsrz1CSWG3VIBwfQERQwDQYJKoZIhvcNAQEFBQAw\nWTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV\nBAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy\nMDkxOTA3NDA1MFoXDTEyMTIxOTA4NDA1MFowgYUxCzAJBgNVBAYTAkJFMRkwFwYD\nVQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu\nZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDIxFzAVBgNV\nBAUTDjIwMTIwOTE5MDk0MDAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAnCgMsBO+IxIqCnXCOfXJoIC3wj+f0s4DV9h2gJBzisWXkaJD2DfNrd0kHUXK\nqVVPUxnA4G5iZu0Z385/KiOt1/P6vQ/Z2/AsEh/8Z/hIyeZCHL31wrSZW4yLeZwi\nM76wPiBHJxPun681HQlVs/OGKSHnbHc1XJAIeA/M8u+lLWqIKB+AJ82TrOqUMj1s\nLjGhQNs84xPliONN5K7DrEy+Y65X/rFxN77Smw+UtcH1GgH2NgaHH8dpt1m25sgm\nUxZWhdx66opB/lbRQwWdGt7MC0kJFaWHDZq64DTuYoekFYSxAFu0nd0EekEHEJEi\n9mquB9cv/96SuEJl8BcUWU/1LwIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P\nAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw\nHQYDVR0OBBYEFF/a5AMWkaBjCHg/XLYf1tnb8FA0MB8GA1UdIwQYMBaAFLCwSv0c\ndSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCKRl1iXFmOQtLseDWP\nY5icDDBGiRi17CGgvIzGJi/ha0PhbO+X0TmQIEnRX3Mu0Er/Mm4RZSjMtJ2iZRh3\ntGf4Dn+jKgKOmgXC3oOG/l8RPHLf0yaPSdn/z0TXtA30vTFBLlFeWnhbfhovea4+\nsnPdBxLqWZdtxmiwojgqA7YATCWwavizrBr09YRyDwzgtpZ2BwMruGuFuV9FsEwL\nPCM53yFlrM32oFghyfyE5kYjgnnueKM+pw1kA0jgb1CnVJRrMEN1TXuXDAZLtHKG\n5X/drah1JtkoZhCzxzZ3bYdVDQJ90OHFqM58lwGD6z3XuPKrHDKZKt+CPIsl5g7p\n4J2l\n", }; static const size_t kLen145 = 2044; static const char *kData145[] = { - "MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB\nyVdbHxANRLCFYj1mqBgPMjAxMjEwMTExMzMwMTBaMG4wbDBEMAkGBSsOAwIaBQAE\nFLdXtbacB/gWIxOOkMkqDr4yAaoxBBRhe2YaRQ2XyolQL30EzTSo//z9SwILBAAA\nAAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL\nBgkqhkiG9w0BAQUDggEBAA0H7bvcULg1GayFtQVrYDyW0feOEMNGLmgaGuwRdrY3\nKuWyNJLUUJKQZnOkdT8A4RpVX8xD4EgVyOqRACUahgdgp0g3QOn+vf2Zyf+NJIgW\nwoF5qaJgCOeIOw5O6F4r1vUhp8NvqXHotswgG58Nzz6UMD+uyIgq5o8uzOjryEm6\nwO2X+KvN9sMzkeZhNvAHkgBQL8CG4CggWnzn7At1DmhhsizfhDrosigM4Zr6Sm6z\nv1YfSPznD0b3TQ7RzvpbJPofF2aJXMIMxdKR5pemuevTDR2+JCXjVPsD/ZODFykc\nrsQeqx2vTOIg84PRKboXjCAwHn4rIN7JJtQqebLtD9egggQQMIIEDDCCBAgwggLw\noAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF\nMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw\nGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw\nNzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu\ndi1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh\nbmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID\nMwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi\noudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL\n866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J\nltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5\nMJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw\nyyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec\nTarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG\nAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ\nBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF\nDZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD\nggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7\n8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm\nuDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb\n4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa\nYW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC\nfBIRKjnK621vAWvc7UR+0hqnZ+U=\n", + "MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB\nyVdbHxANRLCFYj1mqBgPMjAxMjEwMTExMzMwMTBaMG4wbDBEMAkGBSsOAwIaBQAE\nFLhXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA\nAAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL\nBgkqhkiG9w0BAQUDggEBAA0H7bvcULg1GayFtQVrYDyW0feOEMNGLmgaGuwRdrY3\nKuWyNJLUUJKQZnOkdT8A4RpVX8xD4EgVyOqRACUahgdgp0g3QOn+vf2Zyf+NJIgW\nwoF5qaJgCOeIOw5O6F4r1vUhp8NvqXHotswgG58Nzz6UMD+uyIgq5o8uzOjryEm6\nwO2X+KvN9sMzkeZhNvAHkgBQL8CG4CggWnzn7At1DmhhsizfhDrosigM4Zr6Sm6z\nv1YfSPznD0b3TQ7RzvpbJPofF2aJXMIMxdKR5pemuevTDR2+JCXjVPsD/ZODFykc\nrsQeqx2vTOIg84PRKboXjCAwHn4rIN7JJtQqebLtD9egggQQMIIEDDCCBAgwggLw\noAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF\nMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw\nGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw\nNzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu\ndi1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh\nbmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID\nMwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi\noudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL\n866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J\nltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5\nMJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw\nyyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec\nTarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG\nAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ\nBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF\nDZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD\nggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7\n8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm\nuDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb\n4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa\nYW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC\nfBIRKjnK621vAWvc7UR+0hqnZ+U=\n", }; static const size_t kLen146 = 2414; static const char *kData146[] = { - "MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV\nBAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML\nQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG\nA1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMTE0MDYzNlowZjBkMDwwCQYF\nKw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBe1MhvUx/Pg5o7zvdKwOu6y\nORjRAgMLs8aAABgPMjAxMjEwMTExMzU4MTBaoBEYDzIwMTIxMDEzMTQwNjM2WjAN\nBgkqhkiG9w0BAQUFAAOCAQEAjcryO6FUK5+TcPBxJKixVt9q07Xy3qv1e/VFuJ0f\ntnYDcu83Q5yCta49PXaA13nFDFZ445wCDivDBLolS6JKSh+JrLpAxSBzak7Ps8wz\nDPNAtexZz9/hPPzHnGOMlRtew07jk+NX5ZgCxDZGmBHIHOGyab2WoqmpRTll0oP4\nb/DzI3mzrur5lm2NAT3ZJ8bVaWsAJBVTfUye3S4GRWlfGSRVAMk0QHnCkYP42okc\npsIKbvdIoS2gxo6kBTMevxciPV2lPIiSrIWH0IGm7AqGM5+Vz7IdbD6fOQd1I3uw\nO+1NugMYfScB6jCvSW2uESeRZ+qW/HMXQbU1eiH+x88UIKCCBL4wggS6MIIEtjCC\nAp6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex\nHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy\ndCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl\ncnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE\nBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD\nQWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD\nVQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr\n2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0\n3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz\nuzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz\nmogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16\nVDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD\nVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA\nMA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA\nMAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS\nr5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ\nVNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU\n6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE\nSTsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj\nReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe\ng9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo\n5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9\nHfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1\nVBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a\nwG/pag==\n", + "MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV\nBAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML\nQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG\nA1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMTE0MzkxOFowZjBkMDwwCQYF\nKw4DAhoFAAQUjKTJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y\nORjRAgMLs8aAABgPMjAxMjEwMTExNDIzMjVaoBEYDzIwMTIxMDEzMTQzOTE4WjAN\nBgkqhkiG9w0BAQUFAAOCAQEAgdrf+v+BwEhG0ghTLMVmuxWprJr/9VFtpKpxQrTo\negSoW+5JOPCUAStfw3R3u7QM8sJf9bnPorgoCoY1hPKcWNLhvf1Ng3QlVkNa6NcO\nEonbuI4KE9Rhoflpf//pD/3AFKzU+ecRs04KtYezKrUvC1RayGabd7bgtIpdFss4\nZCZ22riqjFtqD3+2//AHg7VaqiJMKlRt05CMmGe+HKn5PEN9HaeI52nsTf+L1Jeh\nItnaDPfV76vFHHXyUhR3iIgnqQDCig0q3yj7BQqH50+K+myiMAY+p8cuVqebno1i\nBzXxxpZl/fw1KnTFdEa7p2jtmXw3KZiHAWAddwg1F1tHTaCCBL4wggS6MIIEtjCC\nAp6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex\nHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy\ndCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl\ncnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE\nBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD\nQWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD\nVQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr\n2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0\n3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz\nuzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz\nmogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16\nVDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD\nVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA\nMA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA\nMAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS\nr5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ\nVNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU\n6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE\nSTsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj\nReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe\ng9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo\n5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9\nHfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1\nVBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a\nwG/pag==\n", }; static const size_t kLen147 = 2020; static const char *kData147[] = { - "MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBSpTXftIZX0\nlLT9zwVSQC5Jfp3pqhgPMjAxMjEwMTAxNDU0NDNaMHUwczBLMAkGBSsOAwIaBQAE\nFKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8\nvx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDEwMTMwMDAwWqARGA8yMDEyMTAxNzEz\nMDAwMFowCwYJKoZIhvcNAQEFA4IBAQBw5Z+0ggEddRTIq7cXlMoxG9Nrx4HtutsH\nitIUoZp/rlLoxHsJTo/VmdZvTTGIc7Ok9XuoH61lY/x9glAKsGRjz4Myc9+5rx0O\n675lwmOS+uaf3/hRkicVrVr7Pt2ug3R7OXm2MJrohjNKP8lqtLJ0hHP88a8rotKA\nr9uz/qHm7K4Uh7dRt/Pnu9MPG74tZeFNN4M1ONMEiRdG39FqzFDXWxwQ3NmyC0Wo\nDQn+NklZMknr8mm7IBWpzgU1fTD9R0yv0zdhUZGiEXxvdhm7GJrTET5jS30Ksm5j\no+n39YVu/vGbjyyYx3+WdeQLEyipaGvldSuJpT+R684/RuFWNetcoIID+DCCA/Qw\nggPwMIIC2KADAgECAhIRIcYjwu4UNkR1VGrDbSdFei8wDQYJKoZIhvcNAQEFBQAw\nWTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV\nBAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy\nMDkxOTA3NDAzMVoXDTEyMTIxOTA4NDAzMVowgYUxCzAJBgNVBAYTAkJFMRkwFwYD\nVQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu\nZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDExFzAVBgNV\nBAUTDjIwMTIwOTE5MDkzOTAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAx0kb6QhDH3sEDj4zaysjVzYelq9lZ1cso4R2IyQxaoPaG6GkaCmHA4sz6KP+\nm3ADqplibEUBa/mzCxHW8/oy3NhGMFdbezduZrnRFLbzakOTeIo8VEIM3JPfgREv\nCX8nj6Xu7ERD6JO/ZQ9Xr7YVzKKN+3cVZlcMHoGBnOPcO2Sz0AcYyk5m5IsGBRoT\nT86j6Cr9PhOPTVwXL6Wxy1KVHsUZXUwnRacV0O4SHWQ4zM9Sablus9fTbh1CgIqW\nsKDyzVB4yECXkBVeUlA+cuCaRRVHRiR+jPDSgbU62nnNudEpGG7dyoop6IOvXv2O\nydncWzaukxIVvQ/Ij85kHqs7HQIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P\nAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw\nHQYDVR0OBBYEFKlNd+0hlfSUtP3PBVJALkl+nemqMB8GA1UdIwQYMBaAFLCwSv0c\ndSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCe4rZg61Dmwygl/Uae\nBJZog64/FvuB1sfCqKLJTjKOfLcugSTX1TT7bLJbzXRGPQuorI3TIZEOwldIw01d\nDTLlsOCHrfHd+bpxgijxPkUuaA4NYnpvqTEMJqPKOC8QYfKupNjAPSuHvwqvqCfO\nRCe3jY6xQDO0WCTZ8/xMsOkw+J/YEYqALETf2Ug7k5eRL/TvfLd8Sgi7vPfmUeiW\nptlsbhMOWQoQc+JA3vCI01rrjNq+0kIZ/r8nPGvablRr0Aakk6eDuS2dcReaPwuK\n0xE136pJYiXdQ3SA7uwmlorjxmejavyoPCr23TU74DQEt6hhc6uIcabsa4Y8KvJy\nRI4G\n", + "MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBRf2uQDFpGg\nYwh4P1y2H9bZ2/BQNBgPMjAxMjEwMTExMzI5NDJaMHUwczBLMAkGBSsOAwIaBQAE\nFKByDqBqfGICVPKo9Z3Se6Tzty+kBBSxsEr9HHUo+BxhqhP2+sGQPWsWowISESG8\nvx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDExMTAwMDAwWqARGA8yMDEyMTAxODEw\nMDAwMFowCwYJKoZIhvcNAQEFA4IBAQCX3gEX+JVfxuYmxBBxC9sNCi3o76ODIicr\nXMvm0DTO9VSyDBl7LDsMMgNMIDtO3flQSlBNZ2B9ikwyckXOSWXiXzybZVMdA/uq\nNchgkM9aChrlhG0AHZyYe/+dJSmEBFXkIomy+S6YQ7Mcs2s6WxCeWU7gB4XOy1zO\n/CvWjv0WQV1J2lZZ6pkvtECKAEjrVP275LA38HInFbYvVPXWzl4sDcX2TAxwUa4S\nxAJAfwl+B+oZSerZWGRo6KjZuB/OB31cB5n/lABmRez6Obi27D0UUCRv/eSbwOF4\nOfaa/XzJt7sF7WpVgoR41HI88W7aN4vtcw1zcVsBmfRMUNYZSqtfoIID+DCCA/Qw\nggPwMIIC2KADAgECAhIRISdENsrz1CSWG3VIBwfQERQwDQYJKoZIhvcNAQEFBQAw\nWTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV\nBAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy\nMDkxOTA3NDA1MFoXDTEyMTIxOTA4NDA1MFowgYUxCzAJBgNVBAYTAkJFMRkwFwYD\nVQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu\nZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDIxFzAVBgNV\nBAUTDjIwMTIwOTE5MDk0MDAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAnCgMsBO+IxIqCnXCOfXJoIC3wj+f0s4DV9h2gJBzisWXkaJD2DfNrd0kHUXK\nqVVPUxnA4G5iZu0Z385/KiOt1/P6vQ/Z2/AsEh/8Z/hIyeZCHL31wrSZW4yLeZwi\nM76wPiBHJxPun681HQlVs/OGKSHnbHc1XJAIeA/M8u+lLWqIKB+AJ82TrOqUMj1s\nLjGhQNs84xPliONN5K7DrEy+Y65X/rFxN77Smw+UtcH1GgH2NgaHH8dpt1m25sgm\nUxZWhdx66opB/lbRQwWdGt7MC0kJFaWHDZq64DTuYoekFYSxAFu0nd0EekEHEJEi\n9mquB9cv/96SuEJl8BcUWU/1LwIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P\nAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw\nHQYDVR0OBBYEFF/a5AMWkaBjCHg/XLYf1tnb8FA0MB8GA1UdIwQYMBaAFLCwSv0c\ndSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCKRl1iXFmOQtLseDWP\nY5icDDBGiRi17CGgvIzGJi/ha0PhbO+X0TmQIEnRX3Mu0Er/Mm4RZSjMtJ2iZRh3\ntGf4Dn+jKgKOmgXC3oOG/l8RPHLf0yaPSdn/z0TXtA30vTFBLlFeWnhbfhovea4+\nsnPdBxLqWZdtxmiwojgqA7YATCWwavizrBr09YRyDwzgtpZ2BwMruGuFuV9FsEwL\nPCM53yFlrM32oFghyfyE5kYjgnnueKM+pw1kA0jgb1CnVJRrMEN1TXuXDAZLtHKG\n5X/drah1JtkoZhCzxzZ3bYdVDQJ90OHFqM58lwGD6z3XuPKrHDKZKt+CPIsl5g7p\n4J2l\n", }; static const size_t kLen148 = 2044; static const char *kData148[] = { - "MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB\nyVdbHxANRLCFYj1mqBgPMjAxMjEwMTAxNDU0NDhaMG4wbDBEMAkGBSsOAwIaBQAE\nFLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA\nAAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL\nBgkqhkiG9w0BAQUDggEBACkGyoGefA2WuktIerofBoPgeyT8Mry57DxF7IEvX8dI\nAdk+MZRo5suYIE2AJty8bohYYiIxS7sZ5nsUM+iyu5cIdmsIwt/YifYsSdHc6DKz\nl3Yh4bS27QX05/Vuok3HmEMsRBmensKATMfvGP+TOwhuFeHWAK8KHSCmUbGZFP3A\nWKtrhRh/qC4qetMt07z/OKZcqHUYegEpO3xqRJ4MdqRJpV1urjdL/852US0mWAOL\n/EPoexWiHiKJmsNy7HAEKFQ+daqdZYM1BTGbS2aj3go/BVqf0xEhRLT0fsdof4Is\n1Cy2ZHGbaVEyOQpXsxUEAqEdJcFRcLFGhdgnUjcQ9lqgggQQMIIEDDCCBAgwggLw\noAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF\nMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw\nGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw\nNzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu\ndi1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh\nbmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQ2QF8p0+Fb7ID\nMwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi\noudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL\n866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J\nltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5\nMJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw\nyyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec\nTarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG\nAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ\nBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF\nDZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD\nggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7\n8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm\nuDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb\n4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa\nYW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC\nfBIRKjnK621vAWvc7UR+0hqnZ+U=\n", + "MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB\nyVdbHxANRLCFYj1mqBgPMjAxMjEwMTExMzMwMTBaMG4wbDBEMAkGBSsOAwIaBQAE\nFLdXtbacB/gWIxOOkMkqDr4yAaoxBBRhe2YaRQ2XyolQL30EzTSo//z9SwILBAAA\nAAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL\nBgkqhkiG9w0BAQUDggEBAA0H7bvcULg1GayFtQVrYDyW0feOEMNGLmgaGuwRdrY3\nKuWyNJLUUJKQZnOkdT8A4RpVX8xD4EgVyOqRACUahgdgp0g3QOn+vf2Zyf+NJIgW\nwoF5qaJgCOeIOw5O6F4r1vUhp8NvqXHotswgG58Nzz6UMD+uyIgq5o8uzOjryEm6\nwO2X+KvN9sMzkeZhNvAHkgBQL8CG4CggWnzn7At1DmhhsizfhDrosigM4Zr6Sm6z\nv1YfSPznD0b3TQ7RzvpbJPofF2aJXMIMxdKR5pemuevTDR2+JCXjVPsD/ZODFykc\nrsQeqx2vTOIg84PRKboXjCAwHn4rIN7JJtQqebLtD9egggQQMIIEDDCCBAgwggLw\noAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF\nMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw\nGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw\nNzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu\ndi1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh\nbmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID\nMwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi\noudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL\n866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J\nltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5\nMJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw\nyyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec\nTarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG\nAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ\nBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF\nDZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD\nggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7\n8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm\nuDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb\n4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa\nYW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC\nfBIRKjnK621vAWvc7UR+0hqnZ+U=\n", }; static const size_t kLen149 = 2414; static const char *kData149[] = { - "MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV\nBAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML\nQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG\nA1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMDE1MTkzOVowZjBkMDwwCQYF\nKw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y\nORjRAgMLs8aAABgPMjAxMjEwMTAxNDU2MTdaoBEYDzIwMTIxMDEyMTUxOTM5WjAN\nBgkqhkiG9w0BAQUFAAOCAQEAH1Bs3glJoAvCHhgVtN4F/avlKA1St74v7yuD1DIu\ncBf/4YRJdxZATXMI8I0TPjSl8L+rRAiUTVd8sPhWQ9XD9WaYKkTEjuQSPp851/81\nzDihz9Kj5Rzo5PYpFsbSps/ALMQSRkrtuX4DCm9fbK7xC+adpbhQDnWW/GXM1+Ob\nlv3pHDQXLh2GQbRsaJBgLeSUxIIE7RWJv1N+Ugi5zF8rja5qnJ9DnkilEqMeXQp8\nSThaI+TOe+KHK+7wTp5QkFNIE5l/uKgvSNIOwLe9HDevlSl1wYF6e+mAz3uoQyJa\nUcx8FIoV6CIr+wUd+P8CmNXiQ7M59I8gm3FCDiEvWDQGEaCCBL4wggS6MIIEtjCC\nAp6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex\nHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy\ndCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl\ncnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE\nBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD\nQWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD\nVQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQCdxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr\n2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0\n3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz\nuzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz\nmogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16\nVDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD\nVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA\nMA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA\nMAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS\nr5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ\nVNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU\n6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE\nSTsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj\nReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe\ng9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo\n5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9\nHfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1\nVBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a\nwG/pag==\n", + "MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV\nBAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML\nQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG\nA1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMTE0MDYzNlowZjBkMDwwCQYF\nKw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBe1MhvUx/Pg5o7zvdKwOu6y\nORjRAgMLs8aAABgPMjAxMjEwMTExMzU4MTBaoBEYDzIwMTIxMDEzMTQwNjM2WjAN\nBgkqhkiG9w0BAQUFAAOCAQEAjcryO6FUK5+TcPBxJKixVt9q07Xy3qv1e/VFuJ0f\ntnYDcu83Q5yCta49PXaA13nFDFZ445wCDivDBLolS6JKSh+JrLpAxSBzak7Ps8wz\nDPNAtexZz9/hPPzHnGOMlRtew07jk+NX5ZgCxDZGmBHIHOGyab2WoqmpRTll0oP4\nb/DzI3mzrur5lm2NAT3ZJ8bVaWsAJBVTfUye3S4GRWlfGSRVAMk0QHnCkYP42okc\npsIKbvdIoS2gxo6kBTMevxciPV2lPIiSrIWH0IGm7AqGM5+Vz7IdbD6fOQd1I3uw\nO+1NugMYfScB6jCvSW2uESeRZ+qW/HMXQbU1eiH+x88UIKCCBL4wggS6MIIEtjCC\nAp6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex\nHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy\ndCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl\ncnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE\nBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD\nQWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD\nVQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr\n2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0\n3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz\nuzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz\nmogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16\nVDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD\nVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA\nMA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA\nMAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS\nr5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ\nVNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU\n6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE\nSTsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj\nReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe\ng9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo\n5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9\nHfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1\nVBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a\nwG/pag==\n", }; static const size_t kLen150 = 2020; static const char *kData150[] = { - "MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBSpTXftIZX0\nlLT9zwVSQC5Jfp3pqhgPMjAxMjEwMTAxNDU0NDNaMHUwczBLMAkGBSsOAwIaBQAE\nFKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8\nvx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDEwMTMwMDAwWqARGA8yMDEyMTAxNzEz\nMDAwMFowCwYJKoZIhvcNAQEFA4IBAQBw5Z+0ggEddRTIq7cXlMoxG9Nrx4HtutsH\nitIUoZp/rlLoxHsJTo/VmdZvTTGIc7Ok9XuoH61lY/x9glAKsGRjz4Myc9+5rx0O\n675lwmOS+uaf3/hRkicVrVr7Pt2ug3R7OXm2MJrohjNKP8lqtLJ0hHP88a8rotKA\nr9uz/qHm7K4Uh7dRt/Pnu9MPG74tZeFNN4M1ONMEiRdG39FqzFDXWxwQ3NmyC0Wo\nDQn+NklZMknr8mm7IBWpzgU1fTD9R0yv0zdhUZGiEXxvdhm7GJrTET5jS30Ksm5j\no+n39YVu/vGbjyyYx3+WdeQLEyipaGvldSuJpT+R684/RuFWNetcoIID+DCCA/Qw\nggPwMIIC2KADAgECAhIRIcYjwu4UNkR1VGrDbSdFei8wDQYJKoZIhvcNAQEFBQAw\nWTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV\nBAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy\nMDkxOTA3NDAzMVoXDTEyMTIxOTA4NDAzMVowgYUxCzAJBgNVBAYTAkJFMRkwFwYD\nVQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu\nZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDExFzAVBgNV\nBAUTDjIwMTIwOTE5MDkzOTAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAxkkb6QhDH3sEDj4zaysjVzYelq9lZ1cso4R2IyQxaoPaG6GkaCmHA4sz6KP+\nm3ADqplibEUBa/mzCxHW8/oy3NhGMFdbezduZrnRFLbzakOTeIo8VEIM3JPfgREv\nCX8nj6Xu7ERD6JO/ZQ9Xr7YVzKKN+3cVZlcMHoGBnOPcO2Sz0AcYyk5m5IsGBRoT\nT86j6Cr9PhOPTVwXL6Wxy1KVHsUZXUwnRacV0O4SHWQ4zM9Sablus9fTbh1CgIqW\nsKDyzVB4yECXkBVeUlA+cuCaRRVHRiR+jPDSgbU62nnNudEpGG7dyoop6IOvXv2O\nydncWzaukxIVvQ/Ij85kHqs7HQIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P\nAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw\nHQYDVR0OBBYEFKlNd+0hlfSUtP3PBVJALkl+nemqMB8GA1UdIwQYMBaAFLCwSv0c\ndSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCe4rZg61Dmwygl/Uae\nBJZog64/FvuB1sfCqKLJTjKOfLcugSTX1TT7bLJbzXRGPQuorI3TIZEOwldIw01d\nDTLlsOCHrfHd+bpxgijxPkUuaA4NYnpvqTEMJqPKOC8QYfKupNjAPSuHvwqvqCfO\nRCe3jY6xQDO0WCTZ8/xMsOkw+J/YEYqALETf2Ug7k5eRL/TvfLd8Sgi7vPfmUeiW\nptlsbhMOWQoQc+JA3vCI01rrjNq+0kIZ/r8nPGvablRr0Aakk6eDuS2dcReaPwuK\n0xE136pJYiXdQ3SA7uwmlorjxmejavyoPCr23TU74DQEt6hhc6uIcabsa4Y8KvJy\nRI4F\n", + "MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBSpTXftIZX0\nlLT9zwVSQC5Jfp3pqhgPMjAxMjEwMTAxNDU0NDNaMHUwczBLMAkGBSsOAwIaBQAE\nFKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8\nvx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDEwMTMwMDAwWqARGA8yMDEyMTAxNzEz\nMDAwMFowCwYJKoZIhvcNAQEFA4IBAQBw5Z+0ggEddRTIq7cXlMoxG9Nrx4HtutsH\nitIUoZp/rlLoxHsJTo/VmdZvTTGIc7Ok9XuoH61lY/x9glAKsGRjz4Myc9+5rx0O\n675lwmOS+uaf3/hRkicVrVr7Pt2ug3R7OXm2MJrohjNKP8lqtLJ0hHP88a8rotKA\nr9uz/qHm7K4Uh7dRt/Pnu9MPG74tZeFNN4M1ONMEiRdG39FqzFDXWxwQ3NmyC0Wo\nDQn+NklZMknr8mm7IBWpzgU1fTD9R0yv0zdhUZGiEXxvdhm7GJrTET5jS30Ksm5j\no+n39YVu/vGbjyyYx3+WdeQLEyipaGvldSuJpT+R684/RuFWNetcoIID+DCCA/Qw\nggPwMIIC2KADAgECAhIRIcYjwu4UNkR1VGrDbSdFei8wDQYJKoZIhvcNAQEFBQAw\nWTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV\nBAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy\nMDkxOTA3NDAzMVoXDTEyMTIxOTA4NDAzMVowgYUxCzAJBgNVBAYTAkJFMRkwFwYD\nVQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu\nZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDExFzAVBgNV\nBAUTDjIwMTIwOTE5MDkzOTAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAx0kb6QhDH3sEDj4zaysjVzYelq9lZ1cso4R2IyQxaoPaG6GkaCmHA4sz6KP+\nm3ADqplibEUBa/mzCxHW8/oy3NhGMFdbezduZrnRFLbzakOTeIo8VEIM3JPfgREv\nCX8nj6Xu7ERD6JO/ZQ9Xr7YVzKKN+3cVZlcMHoGBnOPcO2Sz0AcYyk5m5IsGBRoT\nT86j6Cr9PhOPTVwXL6Wxy1KVHsUZXUwnRacV0O4SHWQ4zM9Sablus9fTbh1CgIqW\nsKDyzVB4yECXkBVeUlA+cuCaRRVHRiR+jPDSgbU62nnNudEpGG7dyoop6IOvXv2O\nydncWzaukxIVvQ/Ij85kHqs7HQIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P\nAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw\nHQYDVR0OBBYEFKlNd+0hlfSUtP3PBVJALkl+nemqMB8GA1UdIwQYMBaAFLCwSv0c\ndSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCe4rZg61Dmwygl/Uae\nBJZog64/FvuB1sfCqKLJTjKOfLcugSTX1TT7bLJbzXRGPQuorI3TIZEOwldIw01d\nDTLlsOCHrfHd+bpxgijxPkUuaA4NYnpvqTEMJqPKOC8QYfKupNjAPSuHvwqvqCfO\nRCe3jY6xQDO0WCTZ8/xMsOkw+J/YEYqALETf2Ug7k5eRL/TvfLd8Sgi7vPfmUeiW\nptlsbhMOWQoQc+JA3vCI01rrjNq+0kIZ/r8nPGvablRr0Aakk6eDuS2dcReaPwuK\n0xE136pJYiXdQ3SA7uwmlorjxmejavyoPCr23TU74DQEt6hhc6uIcabsa4Y8KvJy\nRI4G\n", }; static const size_t kLen151 = 2044; static const char *kData151[] = { - "MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB\nyVdbHxANRLCFYj1mqBgPMjAxMjEwMTEwOTE1MzNaMG4wbDBEMAkGBSsOAwIaBQAE\nFLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA\nAAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL\nBgkqhkiG9w0BAQUDggEBAF/9ByrCS+pCCK4qovqUAH/yoWckmpLFCzKJGHkErJeY\nFlUbAJuu/Gs0IdLmLp+2VbStjsL4vLtDU2Q4e417C1fm8+ixh+kP7qPRd8cxyMBx\ncmD2m1v0CgbrflCZEC71cTrrWpcW+6jg623lI4Ug3A4zlizbT/f9IrxuV9VB9/G5\n6kPI5dYOVZM0ColIxmJsafuxfr6ONQLPHKTlZJK3SyWebs25006OmrSyfBi0j26j\nWU5d6B2NJZBKqvDVMXxZ0q6QOgKxOs8WD+6DaA1d1f7gTOl45XJZWz5KnRePyRxM\nFp0ak6XYbE1y2vHE2RWp1w4lcVJ0BUQXWxx+g86F5W2gggQQMIIEDDCCBAgwggLw\noAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF\nMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw\nGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw\nNzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu\ndi1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh\nbmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID\nMwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi\noudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL\n866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J\nltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5\nMJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw\nyyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec\nTarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG\nAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ\nBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF\nDZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD\nggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7\n8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm\nuDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb\n4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa\nYW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC\nfBIRKjnK621vAWvc7UR+0hqnZ+Y=\n", + "MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB\nyVdbHxANRLCFYj1mqBgPMjAxMjEwMTAxNDU0NDhaMG4wbDBEMAkGBSsOAwIaBQAE\nFLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA\nAAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL\nBgkqhkiG9w0BAQUDggEBACkGyoGefA2WuktIerofBoPgeyT8Mry57DxF7IEvX8dI\nAdk+MZRo5suYIE2AJty8bohYYiIxS7sZ5nsUM+iyu5cIdmsIwt/YifYsSdHc6DKz\nl3Yh4bS27QX05/Vuok3HmEMsRBmensKATMfvGP+TOwhuFeHWAK8KHSCmUbGZFP3A\nWKtrhRh/qC4qetMt07z/OKZcqHUYegEpO3xqRJ4MdqRJpV1urjdL/852US0mWAOL\n/EPoexWiHiKJmsNy7HAEKFQ+daqdZYM1BTGbS2aj3go/BVqf0xEhRLT0fsdof4Is\n1Cy2ZHGbaVEyOQpXsxUEAqEdJcFRcLFGhdgnUjcQ9lqgggQQMIIEDDCCBAgwggLw\noAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF\nMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw\nGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw\nNzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu\ndi1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh\nbmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQ2QF8p0+Fb7ID\nMwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi\noudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL\n866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J\nltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5\nMJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw\nyyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec\nTarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG\nAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ\nBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF\nDZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD\nggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7\n8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm\nuDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb\n4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa\nYW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC\nfBIRKjnK621vAWvc7UR+0hqnZ+U=\n", }; static const size_t kLen152 = 2414; static const char *kData152[] = { - "MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV\nBAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML\nQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG\nA1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMTEwMTAyMVowZjBkMDwwCQYF\nKw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y\nORjRAgMLs8aAABgPMjAxMjEwMTEwOTUyNDJaoBEYDzIwMTIxMDEzMTAxMDIxWjAN\nBgkqhkiG9w0BAQUFAAOCAQEAWX7faLDXkmIdOv/IKBh7awhPmGUhFPVSrMI4dc9/\nfcPDOYhFwWr9evKT/QdXRGpZY493mfa4Z6eEDxRDTexOloaiaJzVpSeV9hoJUxoS\n8NEWDyi33bDlIJH6zru4kk1LpuSMiSWsvLaeoRhHmW3EPDeadpCa5tYX2yNW5hdP\niCfphDJ34/hWHHwHP6mLd1wEO1Rw6nymqeDbuLk1FviD/ZWXMGzK8Sv++tmsQ0Tg\n7XrkIPcSrozPKOTCf/1iJVF5KeQVIb0Ju1PvGUKtGaVTX8IZQmer2WQ1D6OOUcsS\ncWA6NSpWmScX/0/uBpXdSDX0AnGUS9SNrPNEolz6rA5OUaCCBL4wggS6MIIEtjCC\nAp6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex\nHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy\ndCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl\ncnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE\nBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD\nQWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD\nVQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr\n2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0\n3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz\nuzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz\nmogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16\nVDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD\nVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA\nMA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA\nMAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS\nr5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ\nVNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU\n6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE\nSTsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj\nReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe\ng9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo\n5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9\nHfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1\nVBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a\nwG/paw==\n", + "MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV\nBAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML\nQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG\nA1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMDE1MTkzOVowZjBkMDwwCQYF\nKw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y\nORjRAgMLs8aAABgPMjAxMjEwMTAxNDU2MTdaoBEYDzIwMTIxMDEyMTUxOTM5WjAN\nBgkqhkiG9w0BAQUFAAOCAQEAH1Bs3glJoAvCHhgVtN4F/avlKA1St74v7yuD1DIu\ncBf/4YRJdxZATXMI8I0TPjSl8L+rRAiUTVd8sPhWQ9XD9WaYKkTEjuQSPp851/81\nzDihz9Kj5Rzo5PYpFsbSps/ALMQSRkrtuX4DCm9fbK7xC+adpbhQDnWW/GXM1+Ob\nlv3pHDQXLh2GQbRsaJBgLeSUxIIE7RWJv1N+Ugi5zF8rja5qnJ9DnkilEqMeXQp8\nSThaI+TOe+KHK+7wTp5QkFNIE5l/uKgvSNIOwLe9HDevlSl1wYF6e+mAz3uoQyJa\nUcx8FIoV6CIr+wUd+P8CmNXiQ7M59I8gm3FCDiEvWDQGEaCCBL4wggS6MIIEtjCC\nAp6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex\nHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy\ndCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl\ncnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE\nBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD\nQWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD\nVQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQCdxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr\n2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0\n3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz\nuzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz\nmogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16\nVDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD\nVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA\nMA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA\nMAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS\nr5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ\nVNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU\n6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE\nSTsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj\nReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe\ng9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo\n5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9\nHfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1\nVBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a\nwG/pag==\n", }; -static const size_t kLen153 = 1521; +static const size_t kLen153 = 2020; static const char *kData153[] = { - "-----BEGIN CERTIFICATE-----\nMIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs\nIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290\nMB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux\nFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h\nbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v\ndDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt\nH7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9\nuMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX\nmk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX\na0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN\nE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0\nWicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD\nVR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0\nJvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU\ncnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx\nIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN\nAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH\nYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5\n6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC\nNr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX\nc4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a\nmnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=\n-----END CERTIFICATE-----\n", + "MIIFzwoBAKCCBcgwggXEBgkrBgEFBQcwAQEEggW1MIIFsTCBoKIWBBSpTXftIZX0\nlLT9zwVSQC5Jfp3pqhgPMjAxMjEwMTAxNDU0NDNaMHUwczBLMAkGBSsOAwIaBQAE\nFKByDqBqfGICVPKo9Z3Se6Tzty+kBBSwsEr9HHUo+BxhqhP2+sGQPWsWowISESG8\nvx4IzALnkqQG05AvM+2bgAAYDzIwMTIxMDEwMTMwMDAwWqARGA8yMDEyMTAxNzEz\nMDAwMFowCwYJKoZIhvcNAQEFA4IBAQBw5Z+0ggEddRTIq7cXlMoxG9Nrx4HtutsH\nitIUoZp/rlLoxHsJTo/VmdZvTTGIc7Ok9XuoH61lY/x9glAKsGRjz4Myc9+5rx0O\n675lwmOS+uaf3/hRkicVrVr7Pt2ug3R7OXm2MJrohjNKP8lqtLJ0hHP88a8rotKA\nr9uz/qHm7K4Uh7dRt/Pnu9MPG74tZeFNN4M1ONMEiRdG39FqzFDXWxwQ3NmyC0Wo\nDQn+NklZMknr8mm7IBWpzgU1fTD9R0yv0zdhUZGiEXxvdhm7GJrTET5jS30Ksm5j\no+n39YVu/vGbjyyYx3+WdeQLEyipaGvldSuJpT+R684/RuFWNetcoIID+DCCA/Qw\nggPwMIIC2KADAgECAhIRIcYjwu4UNkR1VGrDbSdFei8wDQYJKoZIhvcNAQEFBQAw\nWTELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExLzAtBgNV\nBAMTJkdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSAtIEcyMB4XDTEy\nMDkxOTA3NDAzMVoXDTEyMTIxOTA4NDAzMVowgYUxCzAJBgNVBAYTAkJFMRkwFwYD\nVQQKExBHbG9iYWxTaWduIG52LXNhMUIwQAYDVQQDEzlHbG9iYWxTaWduIEV4dGVu\nZGVkIFZhbGlkYXRpb24gQ0EgLSBHMiBPQ1NQIHJlc3BvbmRlciAtIDExFzAVBgNV\nBAUTDjIwMTIwOTE5MDkzOTAwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAxkkb6QhDH3sEDj4zaysjVzYelq9lZ1cso4R2IyQxaoPaG6GkaCmHA4sz6KP+\nm3ADqplibEUBa/mzCxHW8/oy3NhGMFdbezduZrnRFLbzakOTeIo8VEIM3JPfgREv\nCX8nj6Xu7ERD6JO/ZQ9Xr7YVzKKN+3cVZlcMHoGBnOPcO2Sz0AcYyk5m5IsGBRoT\nT86j6Cr9PhOPTVwXL6Wxy1KVHsUZXUwnRacV0O4SHWQ4zM9Sablus9fTbh1CgIqW\nsKDyzVB4yECXkBVeUlA+cuCaRRVHRiR+jPDSgbU62nnNudEpGG7dyoop6IOvXv2O\nydncWzaukxIVvQ/Ij85kHqs7HQIDAQABo4GEMIGBMAkGA1UdEwQCMAAwDgYDVR0P\nAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GCSsGAQUFBzABBQQCBQAw\nHQYDVR0OBBYEFKlNd+0hlfSUtP3PBVJALkl+nemqMB8GA1UdIwQYMBaAFLCwSv0c\ndSj4HGGqE/b6wZA9axajMA0GCSqGSIb3DQEBBQUAA4IBAQCe4rZg61Dmwygl/Uae\nBJZog64/FvuB1sfCqKLJTjKOfLcugSTX1TT7bLJbzXRGPQuorI3TIZEOwldIw01d\nDTLlsOCHrfHd+bpxgijxPkUuaA4NYnpvqTEMJqPKOC8QYfKupNjAPSuHvwqvqCfO\nRCe3jY6xQDO0WCTZ8/xMsOkw+J/YEYqALETf2Ug7k5eRL/TvfLd8Sgi7vPfmUeiW\nptlsbhMOWQoQc+JA3vCI01rrjNq+0kIZ/r8nPGvablRr0Aakk6eDuS2dcReaPwuK\n0xE136pJYiXdQ3SA7uwmlorjxmejavyoPCr23TU74DQEt6hhc6uIcabsa4Y8KvJy\nRI4F\n", }; -static const size_t kLen154 = 1801; +static const size_t kLen154 = 2044; static const char *kData154[] = { - "-----BEGIN CERTIFICATE-----\nMIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw\nMDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp\nb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAMxKljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi\n7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK\nHCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy\nhVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS\nb6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f\nBZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY\n5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq\nfDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1\nMDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv\nbS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v\nQ09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm\nMD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU\ncnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv\nY2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9\nP9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40\nTKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj\nhC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs\ntN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl\n9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf6\n-----END CERTIFICATE-----\n", + "MIIF4AoBAKCCBdkwggXVBgkrBgEFBQcwAQEEggXGMIIFwjCBmaIWBBTqlwecTarB\nyVdbHxANRLCFYj1mqBgPMjAxMjEwMTEwOTE1MzNaMG4wbDBEMAkGBSsOAwIaBQAE\nFLdXtbacB/gWIxOOkMkqDr4yAaoxBBRge2YaRQ2XyolQL30EzTSo//z9SwILBAAA\nAAABL07hRxCAABgPMjAxMjEwMDEwNjAwMDBaoBEYDzIwMTMwNDE1MDYwMDAwWjAL\nBgkqhkiG9w0BAQUDggEBAF/9ByrCS+pCCK4qovqUAH/yoWckmpLFCzKJGHkErJeY\nFlUbAJuu/Gs0IdLmLp+2VbStjsL4vLtDU2Q4e417C1fm8+ixh+kP7qPRd8cxyMBx\ncmD2m1v0CgbrflCZEC71cTrrWpcW+6jg623lI4Ug3A4zlizbT/f9IrxuV9VB9/G5\n6kPI5dYOVZM0ColIxmJsafuxfr6ONQLPHKTlZJK3SyWebs25006OmrSyfBi0j26j\nWU5d6B2NJZBKqvDVMXxZ0q6QOgKxOs8WD+6DaA1d1f7gTOl45XJZWz5KnRePyRxM\nFp0ak6XYbE1y2vHE2RWp1w4lcVJ0BUQXWxx+g86F5W2gggQQMIIEDDCCBAgwggLw\noAMCAQICCwQAAAAAAThXovYBMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNVBAYTAkJF\nMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw\nGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwHhcNMTIwNzA1MTgwMDAwWhcNMTMw\nNzA1MTgwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBu\ndi1zYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBPQ1NQIGZvciBSb290IFIxIC0gQnJh\nbmNoIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP2QF8p0+Fb7ID\nMwwD1gEr2oazjqbW28EZr3YEyMPk+7VFaGePSO1xjBGIE48Q7m7d6p6ZXCzlBZEi\noudrHSr3WDqdIVKLDrZIDkgEgdjJE72Hq6Pf5CEGXyebbODm4sV96EfewSvOOYLL\n866g3aoVhLDK02ny+Q5OsokW7nhnmGMMh10tZqR5VmdQTiw8MgeqUxBEaEO4WH2J\nltgSsgNJBNBYuDgnn5ryzVqhvmCJvYZMYeN6qZFKy1MgHcR+wEpGLPlRL4ttu6e5\nMJrVta7dVFobHUHoFog97LtQT1PY0Ubaihswjge5O04bYeCrgSSjr1e4xH/KDxRw\nyyhoscaFAgMBAAGjgdIwgc8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTqlwec\nTarByVdbHxANRLCFYj1mqDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBXzA0MDIGCCsG\nAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJ\nBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFGB7ZhpF\nDZfKiVAvfQTNNKj//P1LMA8GCSsGAQUFBzABBQQCBQAwDQYJKoZIhvcNAQEFBQAD\nggEBAHiC6N1uF29d7CmiVapA8Nr1xLSVeIkBd4A8yHsUTQ7ATI7bwT14QUV4awe7\n8cvmO5ZND8YG1ViwN162WFm9ivSoWBzvWDbU2JhQFb+XzrzCcdn0YbNiTxJh/vYm\nuDuxto00dpBgujSOAQv8B90iDEJ+sZpYRzDRj62qStRey0zpq5eX+pA+gdppMUFb\n4QvJf0El8TbLCWLN4TjrFe6ju7ZaN9zmgVYGQ2fMHKIGNScLuIA950nYwzRkIfHa\nYW6HqP1rCR1EiYmstEeCQyDxJx+RUlh+q8L1BKzaMYhS6s63MZzQuGseYStaCmbC\nfBIRKjnK621vAWvc7UR+0hqnZ+Y=\n", }; -static const size_t kLen155 = 3574; +static const size_t kLen155 = 2414; static const char *kData155[] = { - "-----BEGIN CERTIFICATE-----\nMIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw\nMDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp\nb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAMxKljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi\n7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK\nHCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy\nhVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS\nb6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f\nBZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY\n5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq\nfDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1\nMDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv\nbS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v\nQ09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm\nMD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU\ncnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv\nY2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9\nP9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40\nTKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj\nhC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs\ntN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl\n9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf6\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIE8TCCA9mgAwIBAgIQbyXcFa/fXqMIVgw7ek/H+DANBgkqhkiG9w0BAQUFADBv\nMQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk\nZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF\neHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow\ngYExCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO\nBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMScwJQYD\nVQQDEx5DT01PRE8gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3\nDQEBAQUAA4IBDwAwggEKAoIBAQDQQIuLcuORG/dRwRtUBJjTqb/B5opdO4f7u4jO\nDeMvPwaW8KIpUJmu2zuhV7B0UXHN7UKRTUH+qcjYaoZ3RLtZZpdQXrTULHBEz9o3\nlUJpPDDEcbNS8CFNodi6OXwcnqMknfKDFpiqFnxDmxVbt640kf7UYiYYRpo/68H5\n8ZBX66x6DYvbcjBqZtXgRqNw3GjZ/wRIiXfeten7Z21B6bw5vTLZYgLxsag9bjec\n4i/i06Imi8a4VUOI4SM+pdIkOWpHqwDUobOpJf4NP6cdutNRwQuk2qw471VQJAVl\nRpM0Ty2NrcbUIRnSjsoFYXEHc0flihkSvQRNzk6cpUisuyb3AgMBAAGjggF0MIIB\ncDAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73gJMtUGjAdBgNVHQ4EFgQUC1jl\ni8ZMFTekQKkwqSG+RzZaVv8wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB\nAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9j\ncmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVybmFsQ0FSb290LmNybDCBswYI\nKwYBBQUHAQEEgaYwgaMwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0\nLmNvbS9BZGRUcnVzdEV4dGVybmFsQ0FSb290LnA3YzA5BggrBgEFBQcwAoYtaHR0\ncDovL2NydC51c2VydHJ1c3QuY29tL0FkZFRydXN0VVROU0dDQ0EuY3J0MCUGCCsG\nAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0GCSqGSIb3DQEBBQUA\nA4IBAQAHYJOZqs7Q00fQNzPeP2S35S6jJQzVMx0Njav2fkZ7WQaS44LE5/X289kF\nz0k0LTdf9CXH8PtrI3fx8UDXTLtJRTHdAChntylMdagfeTHJNjcPyjVPjPF+3vxG\nq79om3AjMC63xVx7ivsYE3lLkkKM3CyrbCK3KFOzGkrOG/soDrc6pNoN90AyT99v\nuwFQ/IfTdtn8+7aEA8rJNhj33Wzbu7qBHKat/ij5z7micV0ZBepKRtxzQe+JlEKx\nQ4hvNRevHmCDrHqMEHufyfaDbZ76iO4+3e6esL/garnQnweyCROa9aTlyFt5p0c1\nM2jlVZ6qW8swC53HD79oRIGXi1FK\n-----END CERTIFICATE-----\n", + "MIIG8AoBAKCCBukwggblBgkrBgEFBQcwAQEEggbWMIIG0jCB+aF+MHwxCzAJBgNV\nBAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEUMBIGA1UEChML\nQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFVNlcnZlciBBZG1pbmlzdHJhdGlvbjEYMBYG\nA1UEAxMPb2NzcC5jYWNlcnQub3JnGA8yMDEyMTAxMTEwMTAyMVowZjBkMDwwCQYF\nKw4DAhoFAAQUi6TJyxcpGUU+u45zCZG5JfKDImUEFBa1MhvUx/Pg5o7zvdKwOu6y\nORjRAgMLs8aAABgPMjAxMjEwMTEwOTUyNDJaoBEYDzIwMTIxMDEzMTAxMDIxWjAN\nBgkqhkiG9w0BAQUFAAOCAQEAWX7faLDXkmIdOv/IKBh7awhPmGUhFPVSrMI4dc9/\nfcPDOYhFwWr9evKT/QdXRGpZY493mfa4Z6eEDxRDTexOloaiaJzVpSeV9hoJUxoS\n8NEWDyi33bDlIJH6zru4kk1LpuSMiSWsvLaeoRhHmW3EPDeadpCa5tYX2yNW5hdP\niCfphDJ34/hWHHwHP6mLd1wEO1Rw6nymqeDbuLk1FviD/ZWXMGzK8Sv++tmsQ0Tg\n7XrkIPcSrozPKOTCf/1iJVF5KeQVIb0Ju1PvGUKtGaVTX8IZQmer2WQ1D6OOUcsS\ncWA6NSpWmScX/0/uBpXdSDX0AnGUS9SNrPNEolz6rA5OUaCCBL4wggS6MIIEtjCC\nAp6gAwIBAgIDCpvzMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0Ex\nHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2Vy\ndCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNl\ncnQub3JnMB4XDTExMDgyMzAwMDI1NloXDTEzMDgyMjAwMDI1NlowfDELMAkGA1UE\nBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRQwEgYDVQQKEwtD\nQWNlcnQgSW5jLjEeMBwGA1UECxMVU2VydmVyIEFkbWluaXN0cmF0aW9uMRgwFgYD\nVQQDEw9vY3NwLmNhY2VydC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQCcxtRv5CPHw3BLdR/k/K72YsRgodbP+UdAONmvBvWzhwm6B8h6O+M64sFr\n2w6be7SYBECIyOQgNJ1flK4MoAWhdBA/H5NtxaDOKbAqA27tO9GaevcPp7c518O0\n3hVnlPLvsN1f48nY0jQOXUTfv5nYXmD0OSSK/V3IRo0KsWB6T9UnMGCeEwb4Oqqz\nuzM0b4SBflzMEony/m6Tg/qL7qs2TLZAqe77+BZaVdFkDUnaBN7RyMruXySxeXiz\nmogT3WhROeloMa/X+E01bWBYBEK7VZIY9pgBpXQ7vDbbIGgYuIXUi20wh03WMy16\nVDYdV0IUXHpidNUeK9W/BPP/7APBAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwJwYD\nVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDCTAJBgNVHREEAjAA\nMA0GCSqGSIb3DQEBBQUAA4ICAQAoT6p5f3cGprAcgrnzdenfTmDe9LCW7k2VnazA\nMAzpsD6gXcSlo4+3hoHem/SpKRH2tqi34DmImCiv/S6fxsKM4Gfn5rlkAFviuTvS\nr5Zrwh4ZKSfaoWv4bmbzmcAxvuxdMWHf/5PbjegjzFTbBMekVPZY/abYtD6kdHQZ\nVNgzwZVfTBfYhfa+Rg72I2zjKpMsjxMqWfTmUzW6wfK6LFudZqu0U1NnJw+IlnVU\n6WtjL885ebQrmcRqWz3nMhVLIu5L3w/s+VTLvm7If6jcMDNUjz8s2BPcJeCXg3TE\nSTsyl6tvk17RRz2+9JskxVOk11xIn96xR4FCERIid2ek9z1xi7oYOajQF50i/9Gj\nReDEfRSyb4/LzoKDOY+h4Q6jryeHh7WIHFiK5qrBN2y8qOoRJ/OqQnqci/BJBNpe\ng9Q9PJRgGSzRndTXNHiYRbeLpq7eGo3sPqlR9qBQ3rd98XGOU0RCMnzjKhENC3qo\n5PkSF2xs8RmjWktFSTDwjYo0qf1teo7CGHjgaPjQ7JE8Q4ysFOQndSWmLpqwDcI9\nHfIvPwUIWArQrJRh9LCNSyvHVgLqY9kw8NW4TlMxV2WqaYCkiKi3XVRrSFR3ahS1\nVBvRZ8KpplrV7rhXjVSSqqfLk1sX3l72Ck2F9ON+qbNFmvhgNjSiBY9neMgo804a\nwG/paw==\n", }; -static const size_t kLen156 = 1383; +static const size_t kLen156 = 1521; static const char *kData156[] = { - "-----BEGIN CERTIFICATE-----\nMIID0DCCArigAwIBAgIQIKTEf93f4cdTYwcTiHdgEjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMTAxMDEwMDAw\nMDBaFw0zMDEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0\naG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3\nUcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI\n2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8\nQ5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp\n+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+\nDT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O\nnKVIrLsm9wIDAQABo0IwQDAdBgNVHQ4EFgQUC1jli8ZMFTekQKkwqSG+RzZaVv8w\nDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD\nggEBAC/JxBwHO89hAgCx2SFRdXIDMLDEFh9sAIsQrK/xR9SuEDwMGvjUk2ysEDd8\nt6aDZK3N3w6HM503sMZ7OHKx8xoOo/lVem0DZgMXlUrxsXrfViEGQo+x06iF3u6X\nHWLrp+cxEmbDD6ZLLkGC9/3JG6gbr+48zuOcrigHoSybJMIPIyaDMouGDx8rEkYl\nFo92kANr3ryqImhrjKGsKxE5pttwwn1y6TPn/CbxdFqR5p2ErPioBhlG5qfpqjQi\npKGfeq23sqSaM4hxAjwu1nqyH6LKwN0vEJT9s4yEIHlG1QXUEOTS22RPuFvuG8Ug\nR1uUq27UlTMdphVx8fiUylQ5PsE=\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs\nIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290\nMB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux\nFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h\nbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v\ndDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt\nH7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9\nuMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX\nmk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX\na0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN\nE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0\nWicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD\nVR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0\nJvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU\ncnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx\nIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN\nAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH\nYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5\n6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC\nNr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX\nc4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a\nmnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen157 = 1521; +static const size_t kLen157 = 1801; static const char *kData157[] = { - "-----BEGIN CERTIFICATE-----\nMIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs\nIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290\nMB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux\nFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h\nbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v\ndDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt\nH7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9\nuMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX\nmk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX\na0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN\nE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0\nWicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD\nVR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0\nJvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU\ncnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx\nIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN\nAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH\nYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5\n6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC\nNr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX\nc4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a\nmnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw\nMDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp\nb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAMxKljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi\n7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK\nHCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy\nhVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS\nb6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f\nBZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY\n5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq\nfDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1\nMDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv\nbS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v\nQ09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm\nMD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU\ncnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv\nY2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9\nP9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40\nTKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj\nhC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs\ntN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl\n9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf6\n-----END CERTIFICATE-----\n", }; -static const size_t kLen158 = 1801; +static const size_t kLen158 = 3574; static const char *kData158[] = { - "-----BEGIN CERTIFICATE-----\nMIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw\nMDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp\nb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAM1KljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi\n7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK\nHCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy\nhVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS\nb6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f\nBZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY\n5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq\nfDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1\nMDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv\nbS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v\nQ09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm\nMD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU\ncnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv\nY2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9\nP9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40\nTKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj\nhC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs\ntN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl\n9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf6\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw\nMDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp\nb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAMxKljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi\n7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK\nHCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy\nhVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS\nb6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f\nBZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY\n5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq\nfDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1\nMDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv\nbS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v\nQ09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm\nMD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU\ncnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv\nY2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9\nP9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40\nTKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj\nhC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs\ntN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl\n9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf6\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIE8TCCA9mgAwIBAgIQbyXcFa/fXqMIVgw7ek/H+DANBgkqhkiG9w0BAQUFADBv\nMQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk\nZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF\neHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow\ngYExCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO\nBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMScwJQYD\nVQQDEx5DT01PRE8gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3\nDQEBAQUAA4IBDwAwggEKAoIBAQDQQIuLcuORG/dRwRtUBJjTqb/B5opdO4f7u4jO\nDeMvPwaW8KIpUJmu2zuhV7B0UXHN7UKRTUH+qcjYaoZ3RLtZZpdQXrTULHBEz9o3\nlUJpPDDEcbNS8CFNodi6OXwcnqMknfKDFpiqFnxDmxVbt640kf7UYiYYRpo/68H5\n8ZBX66x6DYvbcjBqZtXgRqNw3GjZ/wRIiXfeten7Z21B6bw5vTLZYgLxsag9bjec\n4i/i06Imi8a4VUOI4SM+pdIkOWpHqwDUobOpJf4NP6cdutNRwQuk2qw471VQJAVl\nRpM0Ty2NrcbUIRnSjsoFYXEHc0flihkSvQRNzk6cpUisuyb3AgMBAAGjggF0MIIB\ncDAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73gJMtUGjAdBgNVHQ4EFgQUC1jl\ni8ZMFTekQKkwqSG+RzZaVv8wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB\nAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9j\ncmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVybmFsQ0FSb290LmNybDCBswYI\nKwYBBQUHAQEEgaYwgaMwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0\nLmNvbS9BZGRUcnVzdEV4dGVybmFsQ0FSb290LnA3YzA5BggrBgEFBQcwAoYtaHR0\ncDovL2NydC51c2VydHJ1c3QuY29tL0FkZFRydXN0VVROU0dDQ0EuY3J0MCUGCCsG\nAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0GCSqGSIb3DQEBBQUA\nA4IBAQAHYJOZqs7Q00fQNzPeP2S35S6jJQzVMx0Njav2fkZ7WQaS44LE5/X289kF\nz0k0LTdf9CXH8PtrI3fx8UDXTLtJRTHdAChntylMdagfeTHJNjcPyjVPjPF+3vxG\nq79om3AjMC63xVx7ivsYE3lLkkKM3CyrbCK3KFOzGkrOG/soDrc6pNoN90AyT99v\nuwFQ/IfTdtn8+7aEA8rJNhj33Wzbu7qBHKat/ij5z7micV0ZBepKRtxzQe+JlEKx\nQ4hvNRevHmCDrHqMEHufyfaDbZ76iO4+3e6esL/garnQnweyCROa9aTlyFt5p0c1\nM2jlVZ6qW8swC53HD79oRIGXi1FK\n-----END CERTIFICATE-----\n", }; static const size_t kLen159 = 1383; static const char *kData159[] = { - "-----BEGIN CERTIFICATE-----\nMIID0DCCArigAwIBAgIQIKTEf93f4cdTYwcTiHdgEjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMTAxMDEwMDAw\nMDBaFw0zMDEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0\naG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0UCLi3LjkRv3\nUcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI\n2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8\nQ5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp\n+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+\nDT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O\nnKVIrLsm9wIDAQABo0IwQDAdBgNVHQ4EFgQUC1jli8ZMFTekQKkwqSG+RzZaVv8w\nDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD\nggEBAC/JxBwHO89hAgCx2SFRdXIDMLDEFh9sAIsQrK/xR9SuEDwMGvjUk2ysEDd8\nt6aDZK3N3w6HM503sMZ7OHKx8xoOo/lVem0DZgMXlUrxsXrfViEGQo+x06iF3u6X\nHWLrp+cxEmbDD6ZLLkGC9/3JG6gbr+48zuOcrigHoSybJMIPIyaDMouGDx8rEkYl\nFo92kANr3ryqImhrjKGsKxE5pttwwn1y6TPn/CbxdFqR5p2ErPioBhlG5qfpqjQi\npKGfeq23sqSaM4hxAjwu1nqyH6LKwN0vEJT9s4yEIHlG1QXUEOTS22RPuFvuG8Ug\nR1uUq27UlTMdphVx8fiUylQ5PsE=\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIID0DCCArigAwIBAgIQIKTEf93f4cdTYwcTiHdgEjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMTAxMDEwMDAw\nMDBaFw0zMDEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0\naG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3\nUcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI\n2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8\nQ5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp\n+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+\nDT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O\nnKVIrLsm9wIDAQABo0IwQDAdBgNVHQ4EFgQUC1jli8ZMFTekQKkwqSG+RzZaVv8w\nDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD\nggEBAC/JxBwHO89hAgCx2SFRdXIDMLDEFh9sAIsQrK/xR9SuEDwMGvjUk2ysEDd8\nt6aDZK3N3w6HM503sMZ7OHKx8xoOo/lVem0DZgMXlUrxsXrfViEGQo+x06iF3u6X\nHWLrp+cxEmbDD6ZLLkGC9/3JG6gbr+48zuOcrigHoSybJMIPIyaDMouGDx8rEkYl\nFo92kANr3ryqImhrjKGsKxE5pttwwn1y6TPn/CbxdFqR5p2ErPioBhlG5qfpqjQi\npKGfeq23sqSaM4hxAjwu1nqyH6LKwN0vEJT9s4yEIHlG1QXUEOTS22RPuFvuG8Ug\nR1uUq27UlTMdphVx8fiUylQ5PsE=\n-----END CERTIFICATE-----\n", }; static const size_t kLen160 = 1521; static const char *kData160[] = { - "-----BEGIN CERTIFICATE-----\nMIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs\nIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290\nMB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux\nFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h\nbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v\ndDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALj3GjPm8gAELTngTlvt\nH7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9\nuMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX\nmk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX\na0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN\nE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0\nWicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD\nVR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0\nJvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU\ncnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx\nIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN\nAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH\nYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5\n6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC\nNr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX\nc4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a\nmnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs\nIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290\nMB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux\nFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h\nbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v\ndDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt\nH7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9\nuMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX\nmk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX\na0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN\nE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0\nWicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD\nVR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0\nJvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU\ncnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx\nIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN\nAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH\nYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5\n6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC\nNr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX\nc4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a\nmnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=\n-----END CERTIFICATE-----\n", }; static const size_t kLen161 = 1801; static const char *kData161[] = { - "-----BEGIN CERTIFICATE-----\nMIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw\nMDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJVUzEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp\nb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAMxKljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi\n7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK\nHCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy\nhVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS\nb6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f\nBZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY\n5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq\nfDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1\nMDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv\nbS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v\nQ09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm\nMD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU\ncnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv\nY2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9\nP9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40\nTKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj\nhC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs\ntN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl\n9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf6\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw\nMDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp\nb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAM1KljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi\n7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK\nHCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy\nhVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS\nb6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f\nBZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY\n5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq\nfDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1\nMDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv\nbS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v\nQ09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm\nMD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU\ncnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv\nY2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9\nP9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40\nTKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj\nhC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs\ntN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl\n9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf6\n-----END CERTIFICATE-----\n", }; static const size_t kLen162 = 1383; static const char *kData162[] = { - "-----BEGIN CERTIFICATE-----\nMIID0DCCArigAwIBAgIQIKTEf93f4cdTYwcTiHdgEjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMTAxMDEwMDAw\nMDBaFw0zMDEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJVUzEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0\naG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3\nUcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI\n2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8\nQ5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp\n+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+\nDT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O\nnKVIrLsm9wIDAQABo0IwQDAdBgNVHQ4EFgQUC1jli8ZMFTekQKkwqSG+RzZaVv8w\nDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD\nggEBAC/JxBwHO89hAgCx2SFRdXIDMLDEFh9sAIsQrK/xR9SuEDwMGvjUk2ysEDd8\nt6aDZK3N3w6HM503sMZ7OHKx8xoOo/lVem0DZgMXlUrxsXrfViEGQo+x06iF3u6X\nHWLrp+cxEmbDD6ZLLkGC9/3JG6gbr+48zuOcrigHoSybJMIPIyaDMouGDx8rEkYl\nFo92kANr3ryqImhrjKGsKxE5pttwwn1y6TPn/CbxdFqR5p2ErPioBhlG5qfpqjQi\npKGfeq23sqSaM4hxAjwu1nqyH6LKwN0vEJT9s4yEIHlG1QXUEOTS22RPuFvuG8Ug\nR1uUq27UlTMdphVx8fiUylQ5PsE=\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIID0DCCArigAwIBAgIQIKTEf93f4cdTYwcTiHdgEjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMTAxMDEwMDAw\nMDBaFw0zMDEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0\naG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0UCLi3LjkRv3\nUcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI\n2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8\nQ5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp\n+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+\nDT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O\nnKVIrLsm9wIDAQABo0IwQDAdBgNVHQ4EFgQUC1jli8ZMFTekQKkwqSG+RzZaVv8w\nDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD\nggEBAC/JxBwHO89hAgCx2SFRdXIDMLDEFh9sAIsQrK/xR9SuEDwMGvjUk2ysEDd8\nt6aDZK3N3w6HM503sMZ7OHKx8xoOo/lVem0DZgMXlUrxsXrfViEGQo+x06iF3u6X\nHWLrp+cxEmbDD6ZLLkGC9/3JG6gbr+48zuOcrigHoSybJMIPIyaDMouGDx8rEkYl\nFo92kANr3ryqImhrjKGsKxE5pttwwn1y6TPn/CbxdFqR5p2ErPioBhlG5qfpqjQi\npKGfeq23sqSaM4hxAjwu1nqyH6LKwN0vEJT9s4yEIHlG1QXUEOTS22RPuFvuG8Ug\nR1uUq27UlTMdphVx8fiUylQ5PsE=\n-----END CERTIFICATE-----\n", }; static const size_t kLen163 = 1521; static const char *kData163[] = { - "-----BEGIN CERTIFICATE-----\nMIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs\nIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290\nMB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCVVMx\nFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h\nbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v\ndDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt\nH7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9\nuMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX\nmk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX\na0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN\nE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0\nWicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD\nVR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0\nJvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU\ncnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx\nIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN\nAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH\nYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5\n6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC\nNr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX\nc4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a\nmnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs\nIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290\nMB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux\nFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h\nbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v\ndDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALj3GjPm8gAELTngTlvt\nH7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9\nuMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX\nmk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX\na0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN\nE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0\nWicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD\nVR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0\nJvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU\ncnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx\nIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN\nAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH\nYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5\n6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC\nNr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX\nc4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a\nmnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=\n-----END CERTIFICATE-----\n", }; static const size_t kLen164 = 1801; static const char *kData164[] = { - "-----BEGIN CERTIFICATE-----\nMIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw\nMDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp\nb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAMxKljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi\n7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK\nHCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy\nhVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS\nb6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f\nBZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY\n5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq\nfDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1\nMDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv\nbS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v\nQ09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm\nMD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU\ncnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv\nY2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9\nP9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40\nTKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj\nhC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs\ntN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl\n9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf7\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw\nMDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJVUzEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp\nb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAMxKljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi\n7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK\nHCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy\nhVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS\nb6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f\nBZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY\n5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq\nfDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1\nMDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv\nbS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v\nQ09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm\nMD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU\ncnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv\nY2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9\nP9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40\nTKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj\nhC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs\ntN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl\n9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf6\n-----END CERTIFICATE-----\n", }; static const size_t kLen165 = 1383; static const char *kData165[] = { - "-----BEGIN CERTIFICATE-----\nMIID0DCCArigAwIBAgIQIKTEf93f4cdTYwcTiHdgEjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMTAxMDEwMDAw\nMDBaFw0zMDEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0\naG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3\nUcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI\n2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8\nQ5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp\n+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+\nDT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O\nnKVIrLsm9wIDAQABo0IwQDAdBgNVHQ4EFgQUC1jli8ZMFTekQKkwqSG+RzZaVv8w\nDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD\nggEBAC/JxBwHO89hAgCx2SFRdXIDMLDEFh9sAIsQrK/xR9SuEDwMGvjUk2ysEDd8\nt6aDZK3N3w6HM503sMZ7OHKx8xoOo/lVem0DZgMXlUrxsXrfViEGQo+x06iF3u6X\nHWLrp+cxEmbDD6ZLLkGC9/3JG6gbr+48zuOcrigHoSybJMIPIyaDMouGDx8rEkYl\nFo92kANr3ryqImhrjKGsKxE5pttwwn1y6TPn/CbxdFqR5p2ErPioBhlG5qfpqjQi\npKGfeq23sqSaM4hxAjwu1nqyH6LKwN0vEJT9s4yEIHlG1QXUEOTS22RPuFvuG8Ug\nR1uUq27UlTMdphVx8fiUylQ5PsI=\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIID0DCCArigAwIBAgIQIKTEf93f4cdTYwcTiHdgEjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMTAxMDEwMDAw\nMDBaFw0zMDEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJVUzEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0\naG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3\nUcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI\n2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8\nQ5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp\n+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+\nDT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O\nnKVIrLsm9wIDAQABo0IwQDAdBgNVHQ4EFgQUC1jli8ZMFTekQKkwqSG+RzZaVv8w\nDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD\nggEBAC/JxBwHO89hAgCx2SFRdXIDMLDEFh9sAIsQrK/xR9SuEDwMGvjUk2ysEDd8\nt6aDZK3N3w6HM503sMZ7OHKx8xoOo/lVem0DZgMXlUrxsXrfViEGQo+x06iF3u6X\nHWLrp+cxEmbDD6ZLLkGC9/3JG6gbr+48zuOcrigHoSybJMIPIyaDMouGDx8rEkYl\nFo92kANr3ryqImhrjKGsKxE5pttwwn1y6TPn/CbxdFqR5p2ErPioBhlG5qfpqjQi\npKGfeq23sqSaM4hxAjwu1nqyH6LKwN0vEJT9s4yEIHlG1QXUEOTS22RPuFvuG8Ug\nR1uUq27UlTMdphVx8fiUylQ5PsE=\n-----END CERTIFICATE-----\n", }; static const size_t kLen166 = 1521; static const char *kData166[] = { - "-----BEGIN CERTIFICATE-----\nMIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs\nIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290\nMB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux\nFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h\nbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v\ndDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt\nH7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9\nuMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX\nmk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX\na0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN\nE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0\nWicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD\nVR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0\nJvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU\ncnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx\nIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN\nAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH\nYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5\n6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC\nNr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX\nc4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a\nmnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgU=\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs\nIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290\nMB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCVVMx\nFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h\nbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v\ndDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt\nH7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9\nuMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX\nmk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX\na0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN\nE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0\nWicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD\nVR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0\nJvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU\ncnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx\nIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN\nAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH\nYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5\n6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC\nNr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX\nc4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a\nmnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen167 = 1631; +static const size_t kLen167 = 1801; static const char *kData167[] = { - "-----BEGIN CERTIFICATE-----\nMIIEhjCCA26gAwIBAgILBAAAAAABL07hXdQwDQYJKoZIhvcNAQEFBQAwTDEgMB4G\nA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp\nZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTEwNDEzMTAwMDAwWhcNMjIwNDEz\nMTAwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1z\nYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBFeHRlbmRlZCBWYWxpZGF0aW9uIENBIC0g\nRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNoUbMUpq4pbR/WNnN\n2EugcgyXW6aIIMO5PUbc0FxSMPb6WU+FX7DbiLSpXysjSKyr9ZJ4FLYyD/tcaoVb\nAJDgu2X1WvlPZ37HbCnsk8ArysRe2LDb1r4/mwvAj6ldrvcAAqT8umYROHf+IyAl\nVRDFvYK5TLFoxuJwe4NcE2fBofN8C6iZmtDimyUxyCuNQPZSY7GgrVou9Xk2bTUs\nDt0F5NDiB0i3KF4r1VjVbNAMoQFGAVqPxq9kx1UBXeHRxmxQJaAFrQCrDI1la93r\nwnJUyQ88ABeHIu/buYZ4FlGud9mmKE3zWI2DZ7k0JZscUYBR84OSaqOuR5rW5Isb\nwO2xAgMBAAGjggFaMIIBVjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB\n/wIBADAdBgNVHQ4EFgQUsLBK/Rx1KPgcYaoT9vrBkD1rFqMwRwYDVR0gBEAwPjA8\nBgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29t\nL3JlcG9zaXRvcnkvMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs\nc2lnbi5uZXQvcm9vdC1yMi5jcmwwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzAB\nhihodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9FeHRlbmRlZFNTTENBMCkGA1Ud\nJQQiMCAGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAzAfBgNVHSMEGDAW\ngBSb4gdXZxwewGoG3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAL0m28rZa\npJWrnlrpK4KbzJBrfHRFIOde2Mcj7ig1sTVlKqVR4FU/9oNntOQ2KbDa7JeVqYoF\no0X+Iy5SiLQfEICt0oufo1+oxetz3nmIQZgz7qdgGLFGyUAQB5yPClLJExoGbqCb\nLTr2rk/no1E1KlsYBRLlUdy2NmLz4aQP++TPw5S/EauhWTEB8MxT7I9j12yW00gq\niiPtRVaoZkHqAblH7qFHDBTxI+Egc8p9UHxkOFejj0qcm+ltRc9Ea01gIEBxJbVG\nqmwIft/I+shWKpLLg7h5CZctXqEBzgbttJfJBNxB7+BPNk3kQHNG7BESfIhbNCYl\nTercGL7FG81kwA==\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIFBjCCA+6gAwIBAgIQEaO00OyNt3+doM1dLVEvQjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMDA1MjQwMDAw\nMDBaFw0yMDA1MzAxMDQ4MzhaMIGOMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDE0MDIGA1UEAxMrQ09NT0RPIEV4dGVuZGVkIFZhbGlkYXRp\nb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAMxKljPNJY1n7iiWN4dG8PYEooR/U6qW5h+xAhxu7X0h1Nc8HqLYaS+ot/Wi\n7WRYZOFEZTZJQSABjTsT4gjzDPJXOZM3txyTRIOOvy3xoQV12m7ue28b6naDKHRK\nHCvT9cQDcpOvhs4JjDx11MkKL3Lzrb0OMDyEoXMfAyUUpY/D1vS15N2GevUZumjy\nhVSiMBHK0ZLLO3QGEqA3q2rYVBHfbJoWlLm0p2XGdC0x801S6VVRn8s+oo12mHDS\nb6ZlRS8bhbtbbfnywARmE4R6nc4n2PREnr+svpnba0/bWCGwiSe0jzLWS15ykV7f\nBZ3ZSS/0tm9QH3XLgJ3m0+TR8tMCAwEAAaOCAWkwggFlMB8GA1UdIwQYMBaAFAtY\n5YvGTBU3pECpMKkhvkc2Wlb/MB0GA1UdDgQWBBSIRFH/UCppXi2I9CG62Qzyzsvq\nfDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1\nMDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv\nbS9DUFMwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5jb21vZG9jYS5jb20v\nQ09NT0RPQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdAYIKwYBBQUHAQEEaDBm\nMD4GCCsGAQUFBzAChjJodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9BZGRU\ncnVzdFNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv\nY2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCaQ7+vpHJezX1vf/T8PYy7cOYe3QT9\nP9ydn7+JdpvyhjH8f7PtKpFTLOKqsOPILHH3FYojHPFpLoH7sbxiC6saVBzZIl40\nTKX2Iw9dej3bQ81pfhc3Us1TocIR1FN4J2TViUFNFlW7kMvw2OTd3dMJZEgo/zIj\nhC+Me1UvzymINzR4DzOq/7fylqSbRIC1vmxWVKukgZ4lGChUOn8sY89ZIIwYazgs\ntN3t40DeDDYlV5rA0WCeXgNol64aO+pF11GZSe5EWVYLXrGPaOqKnsrSyaADfnAl\n9DLJTlCDh6I0SD1PNXf82Ijq9n0ezkO21cJqfjhmY03n7jLvDyToKmf7\n-----END CERTIFICATE-----\n", }; -static const size_t kLen168 = 1261; +static const size_t kLen168 = 1383; static const char *kData168[] = { - "-----BEGIN CERTIFICATE-----\nMIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\nA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\nb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\nMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\nYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\naWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\njc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\nxy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\n1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\nsnUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\nU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\n9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\nBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\nAQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\nyj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\n38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\nAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\nDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\nHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIID0DCCArigAwIBAgIQIKTEf93f4cdTYwcTiHdgEjANBgkqhkiG9w0BAQUFADCB\ngTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\nA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV\nBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMTAxMDEwMDAw\nMDBaFw0zMDEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl\nYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P\nRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0\naG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3\nUcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI\n2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8\nQ5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp\n+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+\nDT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O\nnKVIrLsm9wIDAQABo0IwQDAdBgNVHQ4EFgQUC1jli8ZMFTekQKkwqSG+RzZaVv8w\nDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD\nggEBAC/JxBwHO89hAgCx2SFRdXIDMLDEFh9sAIsQrK/xR9SuEDwMGvjUk2ysEDd8\nt6aDZK3N3w6HM503sMZ7OHKx8xoOo/lVem0DZgMXlUrxsXrfViEGQo+x06iF3u6X\nHWLrp+cxEmbDD6ZLLkGC9/3JG6gbr+48zuOcrigHoSybJMIPIyaDMouGDx8rEkYl\nFo92kANr3ryqImhrjKGsKxE5pttwwn1y6TPn/CbxdFqR5p2ErPioBhlG5qfpqjQi\npKGfeq23sqSaM4hxAjwu1nqyH6LKwN0vEJT9s4yEIHlG1QXUEOTS22RPuFvuG8Ug\nR1uUq27UlTMdphVx8fiUylQ5PsI=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen169 = 5179; +static const size_t kLen169 = 1521; static const char *kData169[] = { - "-----BEGIN CERTIFICATE-----\nMIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290\nIENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB\nIENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA\nY2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO\nBgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi\nMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ\nARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ\n8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6\nzWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y\nfk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7\nw2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc\nG8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k\nepKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q\nlaegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ\nQUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU\nfslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826\nYreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w\nggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY\ngBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe\nMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0\nIFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy\ndC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw\nczovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0\ndHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl\naHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC\nAQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg\nb3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB\nACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc\nnWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg\n18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c\ngr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl\nJzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY\nsONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T\nSCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF\nCpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum\nGCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk\nzk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW\nomTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIHWTCCBUGgAwIBAgIDCkGKMA0GCSqGSIb3DQEBCwUAMHkxEDAOBgNVBAoTB1Jv\nb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ\nQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9y\ndEBjYWNlcnQub3JnMB4XDTExMDUyMzE3NDgwMloXDTIxMDUyMDE3NDgwMlowVDEU\nMBIGA1UEChMLQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFWh0dHA6Ly93d3cuQ0FjZXJ0\nLm9yZzEcMBoGA1UEAxMTQ0FjZXJ0IENsYXNzIDMgUm9vdDCCAiIwDQYJKoZIhvcN\nAQEBBQADggIPADCCAgoCggIBAKtJNRFIfNImflOUz0Op3SjXQiqL84d4GVh8D57a\niX3h++tykA10oZZkq5+gJJlz2uJVdscXe/UErEa4w75/ZI0QbCTzYZzA8pD6Ueb1\naQFjww9W4kpCz+JEjCUoqMV5CX1GuYrz6fM0KQhF5Byfy5QEHIGoFLOYZcRD7E6C\njQnRvapbjZLQ7N6QxX8KwuPr5jFaXnQ+lzNZ6MMDPWAzv/fRb0fEze5ig1JuLgia\npNkVGJGmhZJHsK5I6223IeyFGmhyNav/8BBdwPSUp2rVO5J+TJAFfpPBLIukjmJ0\nFXFuC3ED6q8VOJrU0gVyb4z5K+taciX5OUbjchs+BMNkJyIQKopPWKcDrb60LhPt\nXapI19V91Cp7XPpGBFDkzA5CW4zt2/LP/JaT4NsRNlRiNDiPDGCbO5dWOK3z0luL\noFvqTpa4fNfVoIZwQNORKbeiPK31jLvPGpKK5DR7wNhsX+kKwsOnIJpa3yxdUly6\nR9Wb7yQocDggL9V/KcCyQQNokszgnMyXS0XvOhAKq3A6mJVwrTWx6oUrpByAITGp\nrmB6gCZIALgBwJNjVSKRPFbnr9s6JfOPMVTqJouBWfmh0VMRxXudA/Z0EeBtsSw/\nLIaRmXGapneLNGDRFLQsrJ2vjBDTn8Rq+G8T/HNZ92ZCdB6K4/jc0m+YnMtHmJVA\nBfvpAgMBAAGjggINMIICCTAdBgNVHQ4EFgQUdahxYEyIE/B42Yl3tW3Fid+8sXow\ngaMGA1UdIwSBmzCBmIAUFrUyG9TH8+DmjvO90rA67rI5GNGhfaR7MHkxEDAOBgNV\nBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAG\nA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYS\nc3VwcG9ydEBjYWNlcnQub3JnggEAMA8GA1UdEwEB/wQFMAMBAf8wXQYIKwYBBQUH\nAQEEUTBPMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5DQWNlcnQub3JnLzAoBggr\nBgEFBQcwAoYcaHR0cDovL3d3dy5DQWNlcnQub3JnL2NhLmNydDBKBgNVHSAEQzBB\nMD8GCCsGAQQBgZBKMDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuQ0FjZXJ0Lm9y\nZy9pbmRleC5waHA/aWQ9MTAwNAYJYIZIAYb4QgEIBCcWJWh0dHA6Ly93d3cuQ0Fj\nZXJ0Lm9yZy9pbmRleC5waHA/aWQ9MTAwUAYJYIZIAYb4QgENBEMWQVRvIGdldCB5\nb3VyIG93biBjZXJ0aWZpY2F0ZSBmb3IgRlJFRSwgZ28gdG8gaHR0cDovL3d3dy5D\nQWNlcnQub3JnMA0GCSqGSIb3DQEBCwUAA4ICAQApKIWuRKm5r6R5E/CooyuXYPNc\n7uMvwfbiZqARrjY3OnYVBFPqQvX56sAV2KaC2eRhrnILKVyQQ+hBsuF32wITRHhH\nVa9Y/MyY9kW50SD42CEH/m2qc9SzxgfpCYXMO/K2viwcJdVxjDm1Luq+GIG6sJO4\nD+Pm1yaMMVpyA4RS5qb1MyJFCsgLDYq4Nm+QCaGrvdfVTi5xotSu+qdUK+s1jVq3\nVIgv7nSf7UgWyg1I0JTTrKSi9iTfkuO960NAkW4cGI5WtIIS86mTn9S8nK2cde5a\nlxuV53QtHA+wLJef+6kzOXrnAzqSjiL2jA3k2X4Ndhj3AfnvlpaiVXPAPHG0HRpW\nQ7fDCo1y/OIQCQtBzoyUoPkD/XFzS4pXM+WOdH4VAQDmzEoc53+VGS3FpQyLu7Xt\nhbNc09+4ufLKxw0BFKxwWMWMjTPUnWajGlCVI/xI4AZDEtnNp4Y5LzZyo4AQ5OHz\n0ctbGsDkgJp8E3MGT9ujayQKurMcvEp4u+XjdTilSKeiHq921F73OIZWWonO1sOn\nebJSoMbxhbQljPI/lrMQ2Y1sVzufb4Y6GIIiNsiwkTjbKqGTqoQ/9SdlrnPVyNXT\nd+pLncdBu8fA46A/5H2kjXPmEkvfoXNzczqA6NXLji/L6hOn1kGLrPo8idck9U60\n4GGSt/M3mMS+lqO3ig==\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU\nMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs\nIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290\nMB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux\nFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h\nbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v\ndDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt\nH7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9\nuMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX\nmk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX\na0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN\nE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0\nWicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD\nVR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0\nJvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU\ncnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx\nIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN\nAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH\nYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5\n6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC\nNr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX\nc4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a\nmnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgU=\n-----END CERTIFICATE-----\n", }; static const size_t kLen170 = 1631; static const char *kData170[] = { - "-----BEGIN CERTIFICATE-----\nMIIEhjCCA26gAwIBAgILBAAAAAABL07hXdQwDQYJKoZIhvcNAQEFBQAwTDEgMB4G\nA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp\nZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTEwNDEzMTAwMDAwWhcNMjIwNDEz\nMTAwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1z\nYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBFeHRlbmRlZCBWYWxpZGF0aW9uIENBIC0g\nRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOoUbMUpq4pbR/WNnN\n2EugcgyXW6aIIMO5PUbc0FxSMPb6WU+FX7DbiLSpXysjSKyr9ZJ4FLYyD/tcaoVb\nAJDgu2X1WvlPZ37HbCnsk8ArysRe2LDb1r4/mwvAj6ldrvcAAqT8umYROHf+IyAl\nVRDFvYK5TLFoxuJwe4NcE2fBofN8C6iZmtDimyUxyCuNQPZSY7GgrVou9Xk2bTUs\nDt0F5NDiB0i3KF4r1VjVbNAMoQFGAVqPxq9kx1UBXeHRxmxQJaAFrQCrDI1la93r\nwnJUyQ88ABeHIu/buYZ4FlGud9mmKE3zWI2DZ7k0JZscUYBR84OSaqOuR5rW5Isb\nwO2xAgMBAAGjggFaMIIBVjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB\n/wIBADAdBgNVHQ4EFgQUsLBK/Rx1KPgcYaoT9vrBkD1rFqMwRwYDVR0gBEAwPjA8\nBgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29t\nL3JlcG9zaXRvcnkvMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs\nc2lnbi5uZXQvcm9vdC1yMi5jcmwwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzAB\nhihodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9FeHRlbmRlZFNTTENBMCkGA1Ud\nJQQiMCAGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAzAfBgNVHSMEGDAW\ngBSb4gdXZxwewGoG3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAL0m28rZa\npJWrnlrpK4KbzJBrfHRFIOde2Mcj7ig1sTVlKqVR4FU/9oNntOQ2KbDa7JeVqYoF\no0X+Iy5SiLQfEICt0oufo1+oxetz3nmIQZgz7qdgGLFGyUAQB5yPClLJExoGbqCb\nLTr2rk/no1E1KlsYBRLlUdy2NmLz4aQP++TPw5S/EauhWTEB8MxT7I9j12yW00gq\niiPtRVaoZkHqAblH7qFHDBTxI+Egc8p9UHxkOFejj0qcm+ltRc9Ea01gIEBxJbVG\nqmwIft/I+shWKpLLg7h5CZctXqEBzgbttJfJBNxB7+BPNk3kQHNG7BESfIhbNCYl\nTercGL7FG81kwA==\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIEhjCCA26gAwIBAgILBAAAAAABL07hXdQwDQYJKoZIhvcNAQEFBQAwTDEgMB4G\nA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp\nZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTEwNDEzMTAwMDAwWhcNMjIwNDEz\nMTAwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1z\nYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBFeHRlbmRlZCBWYWxpZGF0aW9uIENBIC0g\nRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNoUbMUpq4pbR/WNnN\n2EugcgyXW6aIIMO5PUbc0FxSMPb6WU+FX7DbiLSpXysjSKyr9ZJ4FLYyD/tcaoVb\nAJDgu2X1WvlPZ37HbCnsk8ArysRe2LDb1r4/mwvAj6ldrvcAAqT8umYROHf+IyAl\nVRDFvYK5TLFoxuJwe4NcE2fBofN8C6iZmtDimyUxyCuNQPZSY7GgrVou9Xk2bTUs\nDt0F5NDiB0i3KF4r1VjVbNAMoQFGAVqPxq9kx1UBXeHRxmxQJaAFrQCrDI1la93r\nwnJUyQ88ABeHIu/buYZ4FlGud9mmKE3zWI2DZ7k0JZscUYBR84OSaqOuR5rW5Isb\nwO2xAgMBAAGjggFaMIIBVjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB\n/wIBADAdBgNVHQ4EFgQUsLBK/Rx1KPgcYaoT9vrBkD1rFqMwRwYDVR0gBEAwPjA8\nBgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29t\nL3JlcG9zaXRvcnkvMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs\nc2lnbi5uZXQvcm9vdC1yMi5jcmwwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzAB\nhihodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9FeHRlbmRlZFNTTENBMCkGA1Ud\nJQQiMCAGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAzAfBgNVHSMEGDAW\ngBSb4gdXZxwewGoG3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAL0m28rZa\npJWrnlrpK4KbzJBrfHRFIOde2Mcj7ig1sTVlKqVR4FU/9oNntOQ2KbDa7JeVqYoF\no0X+Iy5SiLQfEICt0oufo1+oxetz3nmIQZgz7qdgGLFGyUAQB5yPClLJExoGbqCb\nLTr2rk/no1E1KlsYBRLlUdy2NmLz4aQP++TPw5S/EauhWTEB8MxT7I9j12yW00gq\niiPtRVaoZkHqAblH7qFHDBTxI+Egc8p9UHxkOFejj0qcm+ltRc9Ea01gIEBxJbVG\nqmwIft/I+shWKpLLg7h5CZctXqEBzgbttJfJBNxB7+BPNk3kQHNG7BESfIhbNCYl\nTercGL7FG81kwA==\n-----END CERTIFICATE-----\n", }; static const size_t kLen171 = 1261; static const char *kData171[] = { - "-----BEGIN CERTIFICATE-----\nMIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\nA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\nb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\nMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\nYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\naWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDbDuaZ\njc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\nxy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\n1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\nsnUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\nU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\n9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\nBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\nAQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\nyj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\n38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\nAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\nDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\nHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\nA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\nb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\nMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\nYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\naWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\njc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\nxy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\n1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\nsnUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\nU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\n9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\nBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\nAQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\nyj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\n38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\nAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\nDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\nHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen172 = 2569; +static const size_t kLen172 = 5179; static const char *kData172[] = { - "-----BEGIN CERTIFICATE-----\nMIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290\nIENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB\nIENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA\nY2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO\nBgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi\nMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ\nARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAzyLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ\n8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6\nzWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y\nfk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7\nw2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc\nG8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k\nepKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q\nlaegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ\nQUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU\nfslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826\nYreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w\nggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY\ngBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe\nMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0\nIFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy\ndC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw\nczovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0\ndHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl\naHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC\nAQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg\nb3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB\nACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc\nnWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg\n18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c\ngr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl\nJzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY\nsONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T\nSCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF\nCpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum\nGCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk\nzk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW\nomTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290\nIENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB\nIENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA\nY2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO\nBgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi\nMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ\nARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ\n8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6\nzWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y\nfk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7\nw2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc\nG8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k\nepKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q\nlaegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ\nQUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU\nfslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826\nYreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w\nggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY\ngBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe\nMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0\nIFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy\ndC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw\nczovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0\ndHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl\naHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC\nAQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg\nb3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB\nACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc\nnWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg\n18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c\ngr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl\nJzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY\nsONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T\nSCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF\nCpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum\nGCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk\nzk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW\nomTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIHWTCCBUGgAwIBAgIDCkGKMA0GCSqGSIb3DQEBCwUAMHkxEDAOBgNVBAoTB1Jv\nb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ\nQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9y\ndEBjYWNlcnQub3JnMB4XDTExMDUyMzE3NDgwMloXDTIxMDUyMDE3NDgwMlowVDEU\nMBIGA1UEChMLQ0FjZXJ0IEluYy4xHjAcBgNVBAsTFWh0dHA6Ly93d3cuQ0FjZXJ0\nLm9yZzEcMBoGA1UEAxMTQ0FjZXJ0IENsYXNzIDMgUm9vdDCCAiIwDQYJKoZIhvcN\nAQEBBQADggIPADCCAgoCggIBAKtJNRFIfNImflOUz0Op3SjXQiqL84d4GVh8D57a\niX3h++tykA10oZZkq5+gJJlz2uJVdscXe/UErEa4w75/ZI0QbCTzYZzA8pD6Ueb1\naQFjww9W4kpCz+JEjCUoqMV5CX1GuYrz6fM0KQhF5Byfy5QEHIGoFLOYZcRD7E6C\njQnRvapbjZLQ7N6QxX8KwuPr5jFaXnQ+lzNZ6MMDPWAzv/fRb0fEze5ig1JuLgia\npNkVGJGmhZJHsK5I6223IeyFGmhyNav/8BBdwPSUp2rVO5J+TJAFfpPBLIukjmJ0\nFXFuC3ED6q8VOJrU0gVyb4z5K+taciX5OUbjchs+BMNkJyIQKopPWKcDrb60LhPt\nXapI19V91Cp7XPpGBFDkzA5CW4zt2/LP/JaT4NsRNlRiNDiPDGCbO5dWOK3z0luL\noFvqTpa4fNfVoIZwQNORKbeiPK31jLvPGpKK5DR7wNhsX+kKwsOnIJpa3yxdUly6\nR9Wb7yQocDggL9V/KcCyQQNokszgnMyXS0XvOhAKq3A6mJVwrTWx6oUrpByAITGp\nrmB6gCZIALgBwJNjVSKRPFbnr9s6JfOPMVTqJouBWfmh0VMRxXudA/Z0EeBtsSw/\nLIaRmXGapneLNGDRFLQsrJ2vjBDTn8Rq+G8T/HNZ92ZCdB6K4/jc0m+YnMtHmJVA\nBfvpAgMBAAGjggINMIICCTAdBgNVHQ4EFgQUdahxYEyIE/B42Yl3tW3Fid+8sXow\ngaMGA1UdIwSBmzCBmIAUFrUyG9TH8+DmjvO90rA67rI5GNGhfaR7MHkxEDAOBgNV\nBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAG\nA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYS\nc3VwcG9ydEBjYWNlcnQub3JnggEAMA8GA1UdEwEB/wQFMAMBAf8wXQYIKwYBBQUH\nAQEEUTBPMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5DQWNlcnQub3JnLzAoBggr\nBgEFBQcwAoYcaHR0cDovL3d3dy5DQWNlcnQub3JnL2NhLmNydDBKBgNVHSAEQzBB\nMD8GCCsGAQQBgZBKMDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuQ0FjZXJ0Lm9y\nZy9pbmRleC5waHA/aWQ9MTAwNAYJYIZIAYb4QgEIBCcWJWh0dHA6Ly93d3cuQ0Fj\nZXJ0Lm9yZy9pbmRleC5waHA/aWQ9MTAwUAYJYIZIAYb4QgENBEMWQVRvIGdldCB5\nb3VyIG93biBjZXJ0aWZpY2F0ZSBmb3IgRlJFRSwgZ28gdG8gaHR0cDovL3d3dy5D\nQWNlcnQub3JnMA0GCSqGSIb3DQEBCwUAA4ICAQApKIWuRKm5r6R5E/CooyuXYPNc\n7uMvwfbiZqARrjY3OnYVBFPqQvX56sAV2KaC2eRhrnILKVyQQ+hBsuF32wITRHhH\nVa9Y/MyY9kW50SD42CEH/m2qc9SzxgfpCYXMO/K2viwcJdVxjDm1Luq+GIG6sJO4\nD+Pm1yaMMVpyA4RS5qb1MyJFCsgLDYq4Nm+QCaGrvdfVTi5xotSu+qdUK+s1jVq3\nVIgv7nSf7UgWyg1I0JTTrKSi9iTfkuO960NAkW4cGI5WtIIS86mTn9S8nK2cde5a\nlxuV53QtHA+wLJef+6kzOXrnAzqSjiL2jA3k2X4Ndhj3AfnvlpaiVXPAPHG0HRpW\nQ7fDCo1y/OIQCQtBzoyUoPkD/XFzS4pXM+WOdH4VAQDmzEoc53+VGS3FpQyLu7Xt\nhbNc09+4ufLKxw0BFKxwWMWMjTPUnWajGlCVI/xI4AZDEtnNp4Y5LzZyo4AQ5OHz\n0ctbGsDkgJp8E3MGT9ujayQKurMcvEp4u+XjdTilSKeiHq921F73OIZWWonO1sOn\nebJSoMbxhbQljPI/lrMQ2Y1sVzufb4Y6GIIiNsiwkTjbKqGTqoQ/9SdlrnPVyNXT\nd+pLncdBu8fA46A/5H2kjXPmEkvfoXNzczqA6NXLji/L6hOn1kGLrPo8idck9U60\n4GGSt/M3mMS+lqO3ig==\n-----END CERTIFICATE-----\n", }; static const size_t kLen173 = 1631; static const char *kData173[] = { - "-----BEGIN CERTIFICATE-----\nMIIEhjCCA26gAwIBAgILBAAAAAABL07hXdQwDQYJKoZIhvcNAQEFBQAwTDEgMB4G\nA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp\nZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTEwNDEzMTAwMDAwWhcNMjIwNDEz\nMTAwMDAwWjBZMQswCQYDVQQGEwJVUzEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1z\nYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBFeHRlbmRlZCBWYWxpZGF0aW9uIENBIC0g\nRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNoUbMUpq4pbR/WNnN\n2EugcgyXW6aIIMO5PUbc0FxSMPb6WU+FX7DbiLSpXysjSKyr9ZJ4FLYyD/tcaoVb\nAJDgu2X1WvlPZ37HbCnsk8ArysRe2LDb1r4/mwvAj6ldrvcAAqT8umYROHf+IyAl\nVRDFvYK5TLFoxuJwe4NcE2fBofN8C6iZmtDimyUxyCuNQPZSY7GgrVou9Xk2bTUs\nDt0F5NDiB0i3KF4r1VjVbNAMoQFGAVqPxq9kx1UBXeHRxmxQJaAFrQCrDI1la93r\nwnJUyQ88ABeHIu/buYZ4FlGud9mmKE3zWI2DZ7k0JZscUYBR84OSaqOuR5rW5Isb\nwO2xAgMBAAGjggFaMIIBVjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB\n/wIBADAdBgNVHQ4EFgQUsLBK/Rx1KPgcYaoT9vrBkD1rFqMwRwYDVR0gBEAwPjA8\nBgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29t\nL3JlcG9zaXRvcnkvMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs\nc2lnbi5uZXQvcm9vdC1yMi5jcmwwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzAB\nhihodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9FeHRlbmRlZFNTTENBMCkGA1Ud\nJQQiMCAGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAzAfBgNVHSMEGDAW\ngBSb4gdXZxwewGoG3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAL0m28rZa\npJWrnlrpK4KbzJBrfHRFIOde2Mcj7ig1sTVlKqVR4FU/9oNntOQ2KbDa7JeVqYoF\no0X+Iy5SiLQfEICt0oufo1+oxetz3nmIQZgz7qdgGLFGyUAQB5yPClLJExoGbqCb\nLTr2rk/no1E1KlsYBRLlUdy2NmLz4aQP++TPw5S/EauhWTEB8MxT7I9j12yW00gq\niiPtRVaoZkHqAblH7qFHDBTxI+Egc8p9UHxkOFejj0qcm+ltRc9Ea01gIEBxJbVG\nqmwIft/I+shWKpLLg7h5CZctXqEBzgbttJfJBNxB7+BPNk3kQHNG7BESfIhbNCYl\nTercGL7FG81kwA==\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIEhjCCA26gAwIBAgILBAAAAAABL07hXdQwDQYJKoZIhvcNAQEFBQAwTDEgMB4G\nA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp\nZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTEwNDEzMTAwMDAwWhcNMjIwNDEz\nMTAwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1z\nYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBFeHRlbmRlZCBWYWxpZGF0aW9uIENBIC0g\nRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOoUbMUpq4pbR/WNnN\n2EugcgyXW6aIIMO5PUbc0FxSMPb6WU+FX7DbiLSpXysjSKyr9ZJ4FLYyD/tcaoVb\nAJDgu2X1WvlPZ37HbCnsk8ArysRe2LDb1r4/mwvAj6ldrvcAAqT8umYROHf+IyAl\nVRDFvYK5TLFoxuJwe4NcE2fBofN8C6iZmtDimyUxyCuNQPZSY7GgrVou9Xk2bTUs\nDt0F5NDiB0i3KF4r1VjVbNAMoQFGAVqPxq9kx1UBXeHRxmxQJaAFrQCrDI1la93r\nwnJUyQ88ABeHIu/buYZ4FlGud9mmKE3zWI2DZ7k0JZscUYBR84OSaqOuR5rW5Isb\nwO2xAgMBAAGjggFaMIIBVjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB\n/wIBADAdBgNVHQ4EFgQUsLBK/Rx1KPgcYaoT9vrBkD1rFqMwRwYDVR0gBEAwPjA8\nBgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29t\nL3JlcG9zaXRvcnkvMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs\nc2lnbi5uZXQvcm9vdC1yMi5jcmwwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzAB\nhihodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9FeHRlbmRlZFNTTENBMCkGA1Ud\nJQQiMCAGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAzAfBgNVHSMEGDAW\ngBSb4gdXZxwewGoG3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAL0m28rZa\npJWrnlrpK4KbzJBrfHRFIOde2Mcj7ig1sTVlKqVR4FU/9oNntOQ2KbDa7JeVqYoF\no0X+Iy5SiLQfEICt0oufo1+oxetz3nmIQZgz7qdgGLFGyUAQB5yPClLJExoGbqCb\nLTr2rk/no1E1KlsYBRLlUdy2NmLz4aQP++TPw5S/EauhWTEB8MxT7I9j12yW00gq\niiPtRVaoZkHqAblH7qFHDBTxI+Egc8p9UHxkOFejj0qcm+ltRc9Ea01gIEBxJbVG\nqmwIft/I+shWKpLLg7h5CZctXqEBzgbttJfJBNxB7+BPNk3kQHNG7BESfIhbNCYl\nTercGL7FG81kwA==\n-----END CERTIFICATE-----\n", }; static const size_t kLen174 = 1261; static const char *kData174[] = { - "-----BEGIN CERTIFICATE-----\nMIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\nA1UEBhMCVVMxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\nb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\nMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAlVTMRkwFwYDVQQKExBHbG9i\nYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\naWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\njc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\nxy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\n1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\nsnUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\nU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\n9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\nBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\nAQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\nyj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\n38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\nAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\nDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\nHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\nA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\nb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\nMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\nYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\naWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDbDuaZ\njc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\nxy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\n1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\nsnUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\nU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\n9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\nBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\nAQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\nyj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\n38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\nAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\nDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\nHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\n-----END CERTIFICATE-----\n", }; static const size_t kLen175 = 2569; static const char *kData175[] = { - "-----BEGIN CERTIFICATE-----\nMIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdUZXN0\nIENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB\nIENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA\nY2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO\nBgNVBAoTB1Rlc3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi\nMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ\nARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ\n8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6\nzWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y\nfk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7\nw2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc\nG8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k\nepKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q\nlaegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ\nQUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU\nfslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826\nYreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w\nggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY\ngBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe\nMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0\nIFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy\ndC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw\nczovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0\ndHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl\naHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC\nAQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg\nb3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB\nACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc\nnWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg\n18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c\ngr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl\nJzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY\nsONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T\nSCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF\nCpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum\nGCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk\nzk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW\nomTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290\nIENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB\nIENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA\nY2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO\nBgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi\nMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ\nARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAzyLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ\n8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6\nzWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y\nfk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7\nw2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc\nG8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k\nepKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q\nlaegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ\nQUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU\nfslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826\nYreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w\nggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY\ngBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe\nMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0\nIFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy\ndC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw\nczovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0\ndHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl\naHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC\nAQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg\nb3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB\nACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc\nnWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg\n18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c\ngr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl\nJzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY\nsONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T\nSCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF\nCpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum\nGCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk\nzk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW\nomTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD\n-----END CERTIFICATE-----\n", }; static const size_t kLen176 = 1631; static const char *kData176[] = { - "-----BEGIN CERTIFICATE-----\nMIIEhjCCA26gAwIBAgILBAAAAAABL07hXdQwDQYJKoZIhvcNAQEFBQAwTDEgMB4G\nA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp\nZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTEwNDEzMTAwMDAwWhcNMjIwNDEz\nMTAwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1z\nYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBFeHRlbmRlZCBWYWxpZGF0aW9uIENBIC0g\nRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNoUbMUpq4pbR/WNnN\n2EugcgyXW6aIIMO5PUbc0FxSMPb6WU+FX7DbiLSpXysjSKyr9ZJ4FLYyD/tcaoVb\nAJDgu2X1WvlPZ37HbCnsk8ArysRe2LDb1r4/mwvAj6ldrvcAAqT8umYROHf+IyAl\nVRDFvYK5TLFoxuJwe4NcE2fBofN8C6iZmtDimyUxyCuNQPZSY7GgrVou9Xk2bTUs\nDt0F5NDiB0i3KF4r1VjVbNAMoQFGAVqPxq9kx1UBXeHRxmxQJaAFrQCrDI1la93r\nwnJUyQ88ABeHIu/buYZ4FlGud9mmKE3zWI2DZ7k0JZscUYBR84OSaqOuR5rW5Isb\nwO2xAgMBAAGjggFaMIIBVjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB\n/wIBADAdBgNVHQ4EFgQUsLBK/Rx1KPgcYaoT9vrBkD1rFqMwRwYDVR0gBEAwPjA8\nBgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29t\nL3JlcG9zaXRvcnkvMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs\nc2lnbi5uZXQvcm9vdC1yMi5jcmwwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzAB\nhihodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9FeHRlbmRlZFNTTENBMCkGA1Ud\nJQQiMCAGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAzAfBgNVHSMEGDAW\ngBSb4gdXZxwewGoG3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAL0m28rZa\npJWrnlrpK4KbzJBrfHRFIOde2Mcj7ig1sTVlKqVR4FU/9oNntOQ2KbDa7JeVqYoF\no0X+Iy5SiLQfEICt0oufo1+oxetz3nmIQZgz7qdgGLFGyUAQB5yPClLJExoGbqCb\nLTr2rk/no1E1KlsYBRLlUdy2NmLz4aQP++TPw5S/EauhWTEB8MxT7I9j12yW00gq\niiPtRVaoZkHqAblH7qFHDBTxI+Egc8p9UHxkOFejj0qcm+ltRc9Ea01gIEBxJbVG\nqmwIft/I+shWKpLLg7h5CZctXqEBzgbttJfJBNxB7+BPNk3kQHNG7BESfIhbNCYl\nTercGL7FG81kwQ==\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIEhjCCA26gAwIBAgILBAAAAAABL07hXdQwDQYJKoZIhvcNAQEFBQAwTDEgMB4G\nA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp\nZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTEwNDEzMTAwMDAwWhcNMjIwNDEz\nMTAwMDAwWjBZMQswCQYDVQQGEwJVUzEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1z\nYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBFeHRlbmRlZCBWYWxpZGF0aW9uIENBIC0g\nRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNoUbMUpq4pbR/WNnN\n2EugcgyXW6aIIMO5PUbc0FxSMPb6WU+FX7DbiLSpXysjSKyr9ZJ4FLYyD/tcaoVb\nAJDgu2X1WvlPZ37HbCnsk8ArysRe2LDb1r4/mwvAj6ldrvcAAqT8umYROHf+IyAl\nVRDFvYK5TLFoxuJwe4NcE2fBofN8C6iZmtDimyUxyCuNQPZSY7GgrVou9Xk2bTUs\nDt0F5NDiB0i3KF4r1VjVbNAMoQFGAVqPxq9kx1UBXeHRxmxQJaAFrQCrDI1la93r\nwnJUyQ88ABeHIu/buYZ4FlGud9mmKE3zWI2DZ7k0JZscUYBR84OSaqOuR5rW5Isb\nwO2xAgMBAAGjggFaMIIBVjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB\n/wIBADAdBgNVHQ4EFgQUsLBK/Rx1KPgcYaoT9vrBkD1rFqMwRwYDVR0gBEAwPjA8\nBgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29t\nL3JlcG9zaXRvcnkvMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs\nc2lnbi5uZXQvcm9vdC1yMi5jcmwwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzAB\nhihodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9FeHRlbmRlZFNTTENBMCkGA1Ud\nJQQiMCAGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAzAfBgNVHSMEGDAW\ngBSb4gdXZxwewGoG3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAL0m28rZa\npJWrnlrpK4KbzJBrfHRFIOde2Mcj7ig1sTVlKqVR4FU/9oNntOQ2KbDa7JeVqYoF\no0X+Iy5SiLQfEICt0oufo1+oxetz3nmIQZgz7qdgGLFGyUAQB5yPClLJExoGbqCb\nLTr2rk/no1E1KlsYBRLlUdy2NmLz4aQP++TPw5S/EauhWTEB8MxT7I9j12yW00gq\niiPtRVaoZkHqAblH7qFHDBTxI+Egc8p9UHxkOFejj0qcm+ltRc9Ea01gIEBxJbVG\nqmwIft/I+shWKpLLg7h5CZctXqEBzgbttJfJBNxB7+BPNk3kQHNG7BESfIhbNCYl\nTercGL7FG81kwA==\n-----END CERTIFICATE-----\n", }; static const size_t kLen177 = 1261; static const char *kData177[] = { - "-----BEGIN CERTIFICATE-----\nMIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\nA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\nb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\nMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\nYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\naWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\njc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\nxy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\n1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\nsnUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\nU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\n9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\nBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\nAQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\nyj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\n38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\nAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\nDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\nHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4Q==\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\nA1UEBhMCVVMxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\nb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\nMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAlVTMRkwFwYDVQQKExBHbG9i\nYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\naWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\njc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\nxy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\n1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\nsnUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\nU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\n9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\nBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\nAQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\nyj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\n38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\nAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\nDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\nHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\n-----END CERTIFICATE-----\n", }; static const size_t kLen178 = 2569; static const char *kData178[] = { - "-----BEGIN CERTIFICATE-----\nMIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290\nIENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB\nIENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA\nY2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO\nBgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi\nMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ\nARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ\n8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6\nzWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y\nfk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7\nw2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc\nG8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k\nepKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q\nlaegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ\nQUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU\nfslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826\nYreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w\nggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY\ngBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe\nMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0\nIFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy\ndC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw\nczovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0\ndHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl\naHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC\nAQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg\nb3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB\nACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc\nnWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg\n18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c\ngr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl\nJzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY\nsONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T\nSCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF\nCpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum\nGCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk\nzk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW\nomTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVE\n-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\nMIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdUZXN0\nIENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB\nIENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA\nY2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO\nBgNVBAoTB1Rlc3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi\nMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ\nARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ\n8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6\nzWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y\nfk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7\nw2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc\nG8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k\nepKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q\nlaegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ\nQUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU\nfslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826\nYreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w\nggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY\ngBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe\nMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0\nIFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy\ndC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw\nczovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0\ndHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl\naHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC\nAQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg\nb3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB\nACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc\nnWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg\n18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c\ngr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl\nJzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY\nsONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T\nSCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF\nCpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum\nGCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk\nzk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW\nomTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD\n-----END CERTIFICATE-----\n", }; -static const size_t kLen179 = 982; +static const size_t kLen179 = 1631; static const char *kData179[] = { - "0\x82\x03\xd2\x02\x01\x03\x30\x82\x03\x98\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x03\x89\x04\x82\x03\x85\x30\x82\x03\x81\x30\x82\x02w\x06\t*\x86H\x86\xf7\r\x01\a\x06\xa0\x82\x02h0\x82\x02\x64\x02\x01\x00\x30\x82\x02]\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x06\x30\x0e\x04\b\xe2\xb3\x39\xd2\xbdZ\x8c\x0e\x02\x02\b\x00\x80\x82\x02\x30x\"\x01\x8c\x16\xcd\x11\x86\xa1\xc7n\xc4w\xa1\x8d\xb4\x85\xc3\xb2\x02\x63p\x8b\xfb\xb0\\\x8f\x1c\xec\x0f\xc7}\xb6\n\x03_ \x00\x32-.\x12NZ`Ho\xd0\xe9\x8c\x15Y\\b\xe6$L\xfd\x1f\x30\xa1\"\x8b\x0f\xe5\x37\x82k\x19\r\xcc\x85M\xce\x64\x9b\x82)\xfeJ\xe4\x11\xd2\xe6\x01\xce\xdbTdk\ai\xb5\x19\xfb\xf1r\x84\x8a\x9c\xf1!$\xebR\xd1\x7f\x32Wh\xa0\xac-\x94\xe8LY\xa3\x43\xfb\x18yL\xbe\xc2\x84=n\xb3/\xc8r\xbc)\xec\x06\x87\xc3\x9aH@\x0e\xe6\x34\xc1J\xf7*n\xe0\f\x9c\xa2\x32U\xd6\x43,\x9dtK\xf0\\\xaa/k\xb4\xa3\xb6\x10\xe1 \xad\xa2\xb7\x31T\x1c\x92U\xb1G\x9bV\xe7\x89\x90@\xa4\x87q8\x95\xec\x43&KY\xadm\xf0\xc2\xf7o\xa0\x9a\xbb#PD\xbf\x8fI7\xc9O\xd5#~\xf6]\xfb\xd8\ad\xe0\xa8\xa3:>\xc7\x8fW\x8a\xb2[\xc9\xfc'%-\xcd\xcc\x9b\\D\a}\xf4\xad\x42\x12%H\x14V\"f\xe5\xec\xe8v2\xe3\x18\xb1\xac+\x0f\xd2\x92\x82\xe2\xd4\x42\r\r1\xb3\x8eS\x17\xc4\x8a\n\xf9o9\xd1\tU\x04\xe5\t\x15\xe7?*\xf0\x89\xff\xb1\xa8\xe3\x8a\xf8\x9b\xa4\x34\x93\xea\x46&\xcf#s\x82\x87|\xe3\xd2\x9bIS[\x99\xa9\xd4\x87\xa4\xf0\xd0\x82@\xb0\v\x8c\xb2r\xca,\xb1WTe\xf6\x88\xbb\r\x93\xac\xcbs\x90\xa8{\x16Us~~\xe3\xe1\xc5\xc4\f6^3\x91I\x9cq\x11\xf5\xd3[8\xbd\xe6\xb5\x0fr\x8c\x34\xc6\x18l\xc9\xe5@\x9c\xbe\xd8>MB\xd3\x96\x98\x14Q)\xba\xedLO\tPG\xf1\x84\x14\x65\a\x85\x82\xadr4T[\x0e\x44]\xb8,qgU s \xb9VziF\xca$GC\xd9G\xe7x~\xc6\xfcY\xe5\xd9u\xe7\x65.\xd8\xa3nX\xdd\x96k\xf4\x30\xd26\xbd\x15\b@P\xc1\x8b~\x9b\xc6y\xe1\x1e\xaf\xd9S\x82\x61\xb2R\x8a\xf2Vp\xc3r\xcd\xa9\xb5\xf0j\xc0K\x89\xe5|\x93\xb9\x1eh\xb4:\xc3\x31%0#\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x16\x04\x14?18\xec\xb9\xf1\x45\xe1>\x90q\r\xc1(\xbaNo\xa0\x9c\xed\x30\x31\x30!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\x7f\xd4[\x84\x34\xb7\xf9\x87\x88|Rzy\x02\x96X\xcc\xdb\x9d\xf2\x04\bb\xf5}\x8f\x84\xe5\x64%\x02\x02\b\x00", + "-----BEGIN CERTIFICATE-----\nMIIEhjCCA26gAwIBAgILBAAAAAABL07hXdQwDQYJKoZIhvcNAQEFBQAwTDEgMB4G\nA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp\nZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTEwNDEzMTAwMDAwWhcNMjIwNDEz\nMTAwMDAwWjBZMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1z\nYTEvMC0GA1UEAxMmR2xvYmFsU2lnbiBFeHRlbmRlZCBWYWxpZGF0aW9uIENBIC0g\nRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNoUbMUpq4pbR/WNnN\n2EugcgyXW6aIIMO5PUbc0FxSMPb6WU+FX7DbiLSpXysjSKyr9ZJ4FLYyD/tcaoVb\nAJDgu2X1WvlPZ37HbCnsk8ArysRe2LDb1r4/mwvAj6ldrvcAAqT8umYROHf+IyAl\nVRDFvYK5TLFoxuJwe4NcE2fBofN8C6iZmtDimyUxyCuNQPZSY7GgrVou9Xk2bTUs\nDt0F5NDiB0i3KF4r1VjVbNAMoQFGAVqPxq9kx1UBXeHRxmxQJaAFrQCrDI1la93r\nwnJUyQ88ABeHIu/buYZ4FlGud9mmKE3zWI2DZ7k0JZscUYBR84OSaqOuR5rW5Isb\nwO2xAgMBAAGjggFaMIIBVjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB\n/wIBADAdBgNVHQ4EFgQUsLBK/Rx1KPgcYaoT9vrBkD1rFqMwRwYDVR0gBEAwPjA8\nBgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29t\nL3JlcG9zaXRvcnkvMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs\nc2lnbi5uZXQvcm9vdC1yMi5jcmwwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzAB\nhihodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9FeHRlbmRlZFNTTENBMCkGA1Ud\nJQQiMCAGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAzAfBgNVHSMEGDAW\ngBSb4gdXZxwewGoG3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAL0m28rZa\npJWrnlrpK4KbzJBrfHRFIOde2Mcj7ig1sTVlKqVR4FU/9oNntOQ2KbDa7JeVqYoF\no0X+Iy5SiLQfEICt0oufo1+oxetz3nmIQZgz7qdgGLFGyUAQB5yPClLJExoGbqCb\nLTr2rk/no1E1KlsYBRLlUdy2NmLz4aQP++TPw5S/EauhWTEB8MxT7I9j12yW00gq\niiPtRVaoZkHqAblH7qFHDBTxI+Egc8p9UHxkOFejj0qcm+ltRc9Ea01gIEBxJbVG\nqmwIft/I+shWKpLLg7h5CZctXqEBzgbttJfJBNxB7+BPNk3kQHNG7BESfIhbNCYl\nTercGL7FG81kwQ==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen180 = 882; +static const size_t kLen180 = 1261; static const char *kData180[] = { - "0\x82\x03n\x02\x01\x03\x30\x82\x03\x34\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x03%\x04\x82\x03!0\x82\x03\x1d\x30\x82\x02>\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x02/\x04\x82\x02+0\x82\x02'0\x82\x02#\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x03\xa0\x82\x01\xeb\x30\x82\x01\xe7\x06\n*\x86H\x86\xf7\r\x01\t\x16\x01\xa0\x82\x01\xd7\x04\x82\x01\xd3\x30\x82\x01\xcf\x30\x82\x01v\xa0\x03\x02\x01\x02\x02\t\x00\xd9L\x04\xdaI}\xbf\xeb\x30\t\x06\a*\x86H\xce=\x04\x01\x30\x45\x31\v0\t\x06\x03U\x04\x06\x13\x02\x41U1\x13\x30\x11\x06\x03U\x04\b\f\nSome-State1!0\x1f\x06\x03U\x04\n\f\x18Internet Widgits Pty Ltd0\x1e\x17\r140423232157Z\x17\r140523232157Z0E1\v0\t\x06\x03U\x04\x06\x13\x02\x41U1\x13\x30\x11\x06\x03U\x04\b\f\nSome-State1!0\x1f\x06\x03U\x04\n\f\x18Internet Widgits Pty Ltd0Y0\x13\x06\a*\x86H\xce=\x02\x01\x06\b*\x86H\xce=\x03\x01\a\x03\x42\x00\x04\xe6+i\xe2\xbf\x65\x9f\x97\xbe/\x1e\r\x94\x8aL\xd5\x97k\xb7\xa9\x1e\rF\xfb\xdd\xa9\xa9\x1e\x9d\xdc\xbaZ\x01\xe7\xd6\x97\xa8\n\x18\xf9\xc3\xc4\xa3\x1eV\xe2|\x83H\xdb\x16\x1a\x1c\xf5\x1d~\xf1\x94-K\xcfr\"\xc1\xa3P0N0\x1d\x06\x03U\x1d\x0e\x04\x16\x04\x14\xab\x84\xd2\xac\xab\x95\xf0\x82N\x16x\aUW_\xe4&\x8d\x82\xd1\x30\x1f\x06\x03U\x1d#\x04\x18\x30\x16\x80\x14\xab\x84\xd2\xac\xab\x95\xf0\x82N\x16x\aUW_\xe4&\x8d\x82\xd1\x30\f\x06\x03U\x1d\x13\x04\x05\x30\x03\x01\x01\xff\x30\t\x06\a*\x86H\xce=\x04\x01\x03H\x00\x30\x45\x02!\x00\xf2\xa0\x35^Q:6\xc3\x82y\x9b\xee'P\x85\x8ep\x06t\x95W\xd2)t\x00\xf4\xbe\x15\x87]\xc4\a\x02 |\x1ey\x14j!\x83\xf0zthy_\x14\x99\x9ah\xb4\xf1\xcb\x9e\x15^\xe6\x1f\x32Ra^u\xc9\x14\x31%0#\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x16\x04\x14?18\xec\xb9\xf1\x45\xe1>\x90q\r\xc1(\xbaNo\xa0\x9c\xed\x30\x81\xd8\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x81\xca\x04\x81\xc7\x30\x81\xc4\x30\x81\xc1\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x01\xa0\x81\x8a\x30\x81\x87\x02\x01\x00\x30\x13\x06\a*\x86H\xce=\x02\x01\x06\b*\x86H\xce=\x03\x01\a\x04m0k\x02\x01\x01\x04 \a\x0f\brz\xd4\xa0J\x9c\xddY\xc9M\x89hw\b\xb5o\xc9]0w\x0e\xe8\xd1\xc9\xce\n\x8b\xb4j\xa1\x44\x03\x42\x00\x04\xe6+i\xe2\xbf\x65\x9f\x97\xbe/\x1e\r\x94\x8aL\xd5\x97k\xb7\xa9\x1e\rF\xfb\xdd\xa9\xa9\x1e\x9d\xdc\xbaZ\x01\xe7\xd6\x97\xa8\n\x18\xf9\xc3\xc4\xa3\x1eV\xe2|\x83H\xdb\x16\x1a\x1c\xf5\x1d~\xf1\x94-K\xcfr\"\xc1\x31%0#\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x16\x04\x14?18\xec\xb9\xf1\x45\xe1>\x90q\r\xc1(\xbaNo\xa0\x9c\xed\x30\x31\x30!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xd0\xb4\x17\x1a\xdb\xa3'\xd8\x9e\xd3\xf2\xb3>\x96\a:\xf2j\xc2\x1c\x04\b\xb5\xa8\xb9\xdb/\xf1\xa4\xcd\x02\x02\b\x00", + "-----BEGIN CERTIFICATE-----\nMIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\nA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\nb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\nMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\nYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\naWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\njc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\nxy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\n1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\nsnUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\nU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\n9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\nBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\nAQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\nyj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\n38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\nAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\nDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\nHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4Q==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen181 = 2636; +static const size_t kLen181 = 2569; static const char *kData181[] = { - "0\x80\x02\x01\x03\x30\x80\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x80$\x80\x04\x82\t\xef\x30\x80\x30\x80\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x80$\x80\x04\x82\x05w0\x82\x05s0\x82\x05o\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x02\xa0\x82\x04\xf6\x30\x82\x04\xf2\x30$\x06\n*\x86H\x86\xf7\r\x01\f\x01\x03\x30\x16\x04\x10\xacq\x8a|\x89\xcf\xa8\xb0\xd6\xd1\a\xf0\x83Oz\xd0\x02\x02\a\xd0\x04\x82\x04\xc8\xeaQ,a\xaa\x9d\xf3\x90\xe1\x38\x45\xb0_\xfd\xe2\x04\x65\xe6\xff\x87\xb6xi\xb0\xcb\x14\xe9\x99\x39\xe3\xe5p\x84Wh\xf7(\xb9u\xa6\xfb\x16r\xe1\x34\xb8;aQ\x89\x18\x94@\xefs\xda\xdb\xd7\xb7\x44s\x8f\x16\x84\xa2\x99\xa6\x05^t\xae\xe2\xcf>\x99\xca\xcdv6wY\xec%Y=KE\xa5N{z\xc9\x8b\xdeOpm\xb1\xa8\xf3\xb6\xb5\xe7g?\xe9\x64\xb8I\xf4\x11\x94\x9d\x1c\xb0\xa5\xfb\xb3\x61\xd4\xf3\xa7hf\xd7\xa4\xf0\xcd\xc8@O>\xa7&@vd\xa1N\xf1\x91\xc2\xa3\xef\xbc\xcd\x42\xe5\xd2o\xff\xfeM3\x01\xb4\x99\x63\x1b\xd3\x01U\x00\xa6#\x9b\xa9\x17\t82\x18\x36\xbc \x02\xfe{\xec\xd3L}\xc9\xc9\xce\x66;4n\xea\xf9\xb1\x1a\x83\xa3<\x8d\xc7y\xc9\xffk\x1d\x35\xf6*=;\x83\x16\x64\xcf\x9f|1\x02\xda\x37\x1a\x16I\xdc\xd9p\xae\x99,\xc7\x01\xba\x42\xab\xe9M\xa4x,\xbd\xa0\xf1\xb7\xcf\xdd\xc1\xdb\x8f\x04\x87\vGO\xd5\xd5\xe7\xfcnB\xd5\x91M{\x1b\\<\x02p\xdb\x05\x91\xaf\x35\x43\x05\xc2m\xcfY#\xfc\xc4\xf6g\xf1\x84\x61J\xb6L\x15\x15\xa3\xea\x8f\x13\x15\xe3\xd2\xb5P\xc8\xae\xc8\\\x03\xb5\x63\x93\xaa\x10\xd7V\rn\x13\x45\x8f\xec\x17\\\\s\x91_l\xaf\x11\x13\x32^\x14\xf9\xaf\xaf\x43\x04`\x93\x42\x30\xa6u\xc0\x83\xd2L\xa5\n\x16\x39\xef?\xf7\x9d#\x19\xb9\xcd\xd8|n\xeem.\xffZ\xf3\xb9\xab\xe5\x64\xdc\xc2g0s\x19-\xea\xd2\x19\x1f\x1f\xe0\xd9\xac\xc9\xdb\x38t^1G.\x9e+\xcc\xb9\xe4)\xf8\xb2\xbf\x1b\xbch\x96y\xcf\xaf\xf2\x1fW?t\xc4qc\xb4\xe8\xbeX\xdb(b\xb5y\x8b\xe4\xd0\x96\xd0\xda\x0f\xd2p\x93/q\xe0\x9f(\xb7R8\x9c\xcb\x8b*\x8e\xbf\x0e=`\x05\n\x91[\xb5x\x10\x31\x00\x80\x31-\xd7\xb0\x88\xc7\xd9X\xc6\xfc;\xf4\xee\xec\xba\x05\xae\xae\xff\xcf\xd0q\xc6\xe7\xf3\x8b\x64Pz\t\x93\x0f\x34Y-\xdeK\x1d\x86I\xff\x63v(kR\x1b\x46\x06\x18\x90\x1c-\xc5\x03\xcc\x00M\xb7\xb2\x12\xc5\xf9\xb4\xa4j6bF4*\xf0\x11\xa3\xd6\x80!\xbf;\xfd\xc5%\xa0M\xc0.\xc0\xf1{\x96\x11\x64\x8e\xb9\xdb\x89N3\x89\xf5\xc6\xfc+\x99\xf5\xc2\x04\x83\x15G\xa8\xa5\xc1J\xe4v\xab>\xf0\x9b\xb7\x8d\x46\xd3R\x9b\xbd\xfd+\xbas]#gh\xe1voV+\x17\xe4~\x9a\xfd\x05H9\xc9\xcf\xa5\x83\xf7\x90\x9c\xa4(W@\xe9\xd4K\x1aKoe\x14\xca\x43\xc1?|\xec\x82G\x0e\x64\x8bo\x8c\xb2\xf0m\xeboq\x8f\xcc-`+\xc3\x9f\x13\x94\xc7#\x02\xf5\xe6\xdf-\xa9\xdb\xa9\xf3\xee\xe9?*i$kx\xffj\xd7\xe4i\x8c\x17\xd5\xc1\x36\x1a\xcaw\xb0\xb5k\x96J\xb5\x0eM\v\xd6\xd9x\xc5\xbf\xe3Y\xfe\x63\xe3\xd3<\x9a\xfa\xd7i[\xef\xd3\xa4\xa3\xb9\x1f\\@ \x95\x38-\xf5\x04\f,yw\xc1\xb6\xcct\x94\x42\x06\xe7G7=\xf5\xda>*:\xc0#\xd9J&i\x13\xa6\x93|\xf2\xaf\x04^\x9b\x88\xc7w\xd0\x93\xab\x1b\xbd=i\x90\xab\x41\xa9\xbc\x84\x18M)\x02\xc1\xf8\xff\x63\x18$t\x8f~D3\xaf\x88\x8b\x93[\x9a\xaek\b\xa2\x82]\xf3\xbe\x61\xc3\xf0-1L\xb5\xb5\x91\x0f\xfa\x81\x61\xad\xfc\xba\x91\xeb;\x9d\"AE\x0e\x8e$\xc7\x1c\x81\x95\xa8{d\xed\xa5\xecZh<\x85\x8d\x92\xb7$\x0f\xed\xf5\xc6\x31\x61\xdc\xef\xa7\xcb\x8f\xda\x43\x05\x42\xf6\x9e\xbc\x1b\x9a\xa1\xe8\x1d\x8d\x42\xdb\x80\x83UR+\x95\x00\x05\x82\x84\xc3T#\x8e\x1d\x00\xa2\x16>\xce=\xcc\x9e\xb8LY\xb2\x12\xa2#\xc1\x46P\x86\xaeu~I8w\x94\xf0'\xd8\x17\x38\x8c\xe0s\x00\xfb\xaf\xbf\xe8\xed\x85X>\xb4\x88\x04\xc8\"\x1b\xb4u\xa2\xc4\xdd\x06\xd2\x83\x42!W\xfc\xd8\xae\x9c\x0e\xd8jp\xd1\xeb\x44\x9c\xb7\x37\x04\x05\xf5\x17\xbe\xf3V\x1b\x06\x36\x1cY{e\x8d\xbb\xbe\"\x9ap\xa3\xe9`\x1a\xc9\xdd\x81<-N\xc0\x8a\xe5\x91\xa7\xc1\x80\aGztO>J\xdc\xb2\xcc\xff\x37\x66\x05\xcb\xd6\xe9\x90\xf5\xef+~\xa7\x66Q\xcbH\xb3\x8ao\x06\xba\x8b=56\xdf\x0e@\xe5\xa1\xe3\xdd\x89\xab\x64\x9c\x01\x15\x9e\x93\xea\xf9O\x9e\xf5\x8b\xf2\xc2\xbb\xe5\xc3\xa3\xe3\x13\x63O} \xe4\x66\x96\x84\x8d\xd4\xcarR\xdc\xb8\x93\xd4\xa5>nBV\x80\x46w\x86I\xfe\xf3\xb4[7\xfc\xb8\f\xd7\x63\xac\xa4\xf6\xe6\xbd\xa7p\xd4\xdc\x9b&\xcb\x31p\xaf>\xa4\xb6\x8d!1g55\x86g\xd1\x02l6v\xc9 \xf6\x0f\x30\x41\x83\x19\xf5\xe1\x33\x90\xbc{\x8c\x9b\x8ah0\x9e\xed\xf4\x88\xc9\x04\b+\xb0\x0f\xae\xc7\xe0nR\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x39\x30!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xe0\xf7\xa1\x1b\xf6?\x05\xadUj Lq\xca\x62G\x13(\xd5\x05\x04\x10>\x87-\x96\xea\x80K\xab:\xb9\xee\te(\xbc\x8d\x02\x02\a\xd0\x00\x00", + "-----BEGIN CERTIFICATE-----\nMIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290\nIENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB\nIENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA\nY2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO\nBgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi\nMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ\nARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ\n8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6\nzWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y\nfk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7\nw2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc\nG8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k\nepKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q\nlaegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ\nQUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU\nfslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826\nYreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w\nggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY\ngBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe\nMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0\nIFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy\ndC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw\nczovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0\ndHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl\naHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC\nAQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg\nb3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB\nACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc\nnWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg\n18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c\ngr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl\nJzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY\nsONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T\nSCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF\nCpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum\nGCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk\nzk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW\nomTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVE\n-----END CERTIFICATE-----\n", }; static const size_t kLen182 = 982; static const char *kData182[] = { - "0\x82\x03\xd2\x02\x01\x03\x30\x82\x03\x98\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x03\x89\x04\x82\x03\x85\x30\x82\x03\x81\x30\x82\x02w\x06\t*\x86H\x86\xf7\r\x01\a\x06\xa0\x82\x02h0\x82\x02\x64\x02\x01\x00\x30\x82\x02]\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x06\x30\x0e\x04\br\xdc\x9c\xcd\xe8i\xd5\xcc\x02\x02\b\x00\x80\x82\x02\x30\x35\xfd\xeexGq\x12\x87\xc2\xcf\x1c\x12\xc4zhj\xb5!\xd6\xa4\x1a\r\xd3Gk\xad\xf0\xe0\xfcXk\xd1\xf1\x1a\xce\xf5U\xca;\x85\x18~\r\x1e\x33\xcd\xf0\xd1\f&ggD\xbaq\x93\xf8\xa4\xe0\x18\xe2\x1a#\x8e\xb5\xc7\xdc\xe1s\xa9\xa6\x03\xb1::\xbd!Q\x04\x30\xf0\x9e\xb5\xc9\xee]|\xf4\xaeU\xd7\x15\f\xb3P\xa4RIt\x1a\xb3\xe9\xe8\x95MW\x11Z\x8b\xf2\xdb,+y\xb0\xee\x1f\xd2\x02\xa4LD\x1c{\xea\x81\x8d\\\x1dR\xbeh\xf1V\x96\xf1\x14\x62,4\x12\xbc~\xa4YFm\x9e\x97\xd5*3C\x85\x93\x06\xf7\x8a\xc9\xd1\xb5\x91JR\xba\xde\xca\x34\x65K\n\xc8\x8a\xb1\xf1r!@\xc6o#\xf7\x42\xb9\xec\xbb\xf1\x43\x1b\x98n\xba\xe4\xee\x33\xc3Q\xcb\fg~\x19\xb3N \xabZ'\x81\xbbt\xd0,\xa6\x16\x18W\xdd\xcf\xf9\xdc=mS,\x91\xb6\xf1\xe6\xe2\xee\xc3\xc4\x06\x62\x98\x83*\xe8\xc7\xdd\"\xbc\xd1\xeb\x1f\xd5\x33IRr\x01\x84:\x9e\xbd\x98\x9b\x44\xffXfn\x03\x9a\x96R\x9e\x1d\xa2Y\xc5[2\xe1\x9e\xb0\xe0\x8c\xfbLA\x04:NA=|\x01P\x8f\xe9!\xaa\xfc\x8bVd\xe2kHt\x9fW!>\x7fy\x12\t\x84H\xa2\xcd\xdb\xb0'4\xf1\xef<\xe5\xef\xe4\xe2\x1f\x04\x85\xc6\x00P\x19\x65\x1b}\v`\t\xe5\xe1\xd1q\xdc/^\xfa\x86\xf0\x8c\xf0\xf0\xf0\x46\xc5\xff\xc7\xcbo7\x94\xc5\xb7\x62\xcb\xbc\x44,\v\x96\xb7\x1dO\xd6\xb0XP/\xd6\xef\xe6\xfbuL\xcf\xa6#y\xd1\x94|\xaf\xffN a_\x1dyY\\x\xd2\xad\xda\x87\xb9 [gP\x82\x8b_\xb0X\x99\x62\xa6\xd2\x03\x82\xbc\x8e\x89\xba\x9c\xe5 \x9a\x42\x37_[{\xf0\x64\xf2\xc5T\"\x9e\x15\xec\xca\xf7'\xad:\xfb<\xc0\x11\x9eK_A\xf1\xcd\x0e\xca\x9b\xb5\r\xab)vg\x04\x1b\xffR\xc7,\x14\xd6\x04#\xc9\xcf\xf4;q\x93\xb7\xe2/\xe6\x1a\x32\x19\xba\x1c\x93\x87s}Q\x1dku\xbd\x17\xff\xef\xd0\x8f\x65\x37\xa0Hg\x94\xfdjq\xb3?Ni\xa9\xc4\xae\xd1\x9bx\xdd\xeb\x06\t\xca\x38\x13;*\xed\xea\f\xdf\xfe\x1f\x15\x86k\xec \r\x19\xd1\x32\xd6h\xc8&\x04\x91\x46jgR\xba\x30\x82\x01\x02\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x81\xf4\x04\x81\xf1\x30\x81\xee\x30\x81\xeb\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x02\xa0\x81\xb4\x30\x81\xb1\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x03\x30\x0e\x04\b2\xe5t\x9b\r\xcf\xa3\x05\x02\x02\b\x00\x04\x81\x90\x7f\xa7n[s9\x15\x93\x42|\xda\xc0\x16\xa0u\x96=\x95\xc8Rke2\xe5\xce\x62\x9b\xd5\xac\x38\xd7\xaai\"\xcc\xa9\x8dt\x15\x87\x06\xbd%\xd4\xd5\xa5\xda\x12\xd9\xd9GB\x05\xf3\xb7\x17LT\xdb^\x1c\xb9\x1dk\xe2\xa8\x95\b \tq5h\xb7\x1cjl\xfd\x99\xf9+o\xb3SU\xd9\xbe\x8c\xb1&\x12\xab\x8aXh\x84\x9f\xa1\xa6\xebp3\x14\x0e\xf6\xb7\x31\x81y5\xb2\xab\x10M\xe3\x16\xbd\x7f~r\x12\xd5\x04\xd8#\x97\xca&8b,\xb7\t\x00?\x01\xe0\xf7\xff\x12%&\x99\xdc\x31%0#\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x16\x04\x14?18\xec\xb9\xf1\x45\xe1>\x90q\r\xc1(\xbaNo\xa0\x9c\xed\x30\x31\x30!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xd1\x96\xa3)\xa9\x45\x1d\xad\xa1x\xa7\x1e\x30\xb8v\xd0\x87#K\x02\x04\b\x9c\xff\x9a\xa3\xf5p\xa8\xd9\x02\x02\b\x00", + "0\x82\x03\xd2\x02\x01\x03\x30\x82\x03\x98\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x03\x89\x04\x82\x03\x85\x30\x82\x03\x81\x30\x82\x02w\x06\t*\x86H\x86\xf7\r\x01\a\x06\xa0\x82\x02h0\x82\x02\x64\x02\x01\x00\x30\x82\x02]\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x06\x30\x0e\x04\b\xe2\xb3\x39\xd2\xbdZ\x8c\x0e\x02\x02\b\x00\x80\x82\x02\x30x\"\x01\x8c\x16\xcd\x11\x86\xa1\xc7n\xc4w\xa1\x8d\xb4\x85\xc3\xb2\x02\x63p\x8b\xfb\xb0\\\x8f\x1c\xec\x0f\xc7}\xb6\n\x03_ \x00\x32-.\x12NZ`Ho\xd0\xe9\x8c\x15Y\\b\xe6$L\xfd\x1f\x30\xa1\"\x8b\x0f\xe5\x37\x82k\x19\r\xcc\x85M\xce\x64\x9b\x82)\xfeJ\xe4\x11\xd2\xe6\x01\xce\xdbTdk\ai\xb5\x19\xfb\xf1r\x84\x8a\x9c\xf1!$\xebR\xd1\x7f\x32Wh\xa0\xac-\x94\xe8LY\xa3\x43\xfb\x18yL\xbe\xc2\x84=n\xb3/\xc8r\xbc)\xec\x06\x87\xc3\x9aH@\x0e\xe6\x34\xc1J\xf7*n\xe0\f\x9c\xa2\x32U\xd6\x43,\x9dtK\xf0\\\xaa/k\xb4\xa3\xb6\x10\xe1 \xad\xa2\xb7\x31T\x1c\x92U\xb1G\x9bV\xe7\x89\x90@\xa4\x87q8\x95\xec\x43&KY\xadm\xf0\xc2\xf7o\xa0\x9a\xbb#PD\xbf\x8fI7\xc9O\xd5#~\xf6]\xfb\xd8\ad\xe0\xa8\xa3:>\xc7\x8fW\x8a\xb2[\xc9\xfc'%-\xcd\xcc\x9b\\D\a}\xf4\xad\x42\x12%H\x14V\"f\xe5\xec\xe8v2\xe3\x18\xb1\xac+\x0f\xd2\x92\x82\xe2\xd4\x42\r\r1\xb3\x8eS\x17\xc4\x8a\n\xf9o9\xd1\tU\x04\xe5\t\x15\xe7?*\xf0\x89\xff\xb1\xa8\xe3\x8a\xf8\x9b\xa4\x34\x93\xea\x46&\xcf#s\x82\x87|\xe3\xd2\x9bIS[\x99\xa9\xd4\x87\xa4\xf0\xd0\x82@\xb0\v\x8c\xb2r\xca,\xb1WTe\xf6\x88\xbb\r\x93\xac\xcbs\x90\xa8{\x16Us~~\xe3\xe1\xc5\xc4\f6^3\x91I\x9cq\x11\xf5\xd3[8\xbd\xe6\xb5\x0fr\x8c\x34\xc6\x18l\xc9\xe5@\x9c\xbe\xd8>MB\xd3\x96\x98\x14Q)\xba\xedLO\tPG\xf1\x84\x14\x65\a\x85\x82\xadr4T[\x0e\x44]\xb8,qgU s \xb9VziF\xca$GC\xd9G\xe7x~\xc6\xfcY\xe5\xd9u\xe7\x65.\xd8\xa3nX\xdd\x96k\xf4\x30\xd26\xbd\x15\b@P\xc1\x8b~\x9b\xc6y\xe1\x1e\xaf\xd9S\x82\x61\xb2R\x8a\xf2Vp\xc3r\xcd\xa9\xb5\xf0j\xc0K\x89\xe5|\x93\xb9\x1eh\xb4:\xc3\x31%0#\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x16\x04\x14?18\xec\xb9\xf1\x45\xe1>\x90q\r\xc1(\xbaNo\xa0\x9c\xed\x30\x31\x30!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\x7f\xd4[\x84\x34\xb7\xf9\x87\x88|Rzy\x02\x96X\xcc\xdb\x9d\xf2\x04\bb\xf5}\x8f\x84\xe5\x64%\x02\x02\b\x00", }; -static const size_t kLen183 = 2469; +static const size_t kLen183 = 988; static const char *kData183[] = { - "0\x82\t\xa1\x02\x01\x03\x30\x82\tg\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\tX\x04\x82\tT0\x82\tP0\x82\x04\a\x06\t*\x86H\x86\xf7\r\x01\a\x06\xa0\x82\x03\xf8\x30\x82\x03\xf4\x02\x01\x00\x30\x82\x03\xed\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x06\x30\x0e\x04\b1$\xca}\xc3%>\xdc\x02\x02\b\x00\x80\x82\x03\xc0U\xe7\x7f\x9c\xd6\f\xd2i\x1dn\x8b\xb8\a\xecJ\xe7\x06g\xd1$\x1b\xd5h\x13=\xd7V^\x15@\xdb\xda\x88\x36\xc9\x02\x96\xb5\xb5\xf7\x81\xef\x88\x1d\x66\x62\xa8\x83\xf7\x91\xb1&\x1f\x9b%x\n\x04\xb1\xc0\x93H\xa2\xf0QO+\xf8\x03ga\x1b\xed)\xfe?\xdd\x83\xa3\x93u\xa7\xd9\x37[\xa7\xc9\xf4R\x86\xd2?\xca\x61\\\x1e\xf9\a}\xbd\xdav\x8a\x03\x8e\x12N\x8fhnrn\xf0\xbe\"\xc7\x9d\x97|E\xc0\xaa\x31\xe1U\x81\xb3\xec\x98\x94\xac\xf7\x15\x9b\x42I\x8c*)z%\x92\x64\x92\xbdN\\\xec\xff\x61\xbb\x8e\\\xc8\xdb\xba\x97\x30\xf4U\x9e\x1b\xfa\xbe*\x90\xcf\xe8\xc0\x9d\xb0\x0e$a\xe7:\xb7\x7f\xda\x63\xaa*J\xa6\x91R\xa6v\xc9\xbe\x9f\x1b\x1d\xa4\t[\x0f\xd1\x64N\xdf\fDY:\xef\x9a\xd8\"\xa2_\x80\xb5O\xbe\x84#\xe3tw<\x9e'd\xac\x65\xf4\xbb\x34\xb7\xa4\xfe\x02\x1a\x88\x05;K\xb8\xd8\xb9&i\"\x97=\x93\x9b\xe8r\xaaM\x8fvQ\x12YX\xf1\x1a\xa3\xdb]\xbc\xea\x84\x19UO\x00\xfb\xe2WG\xca\xea\xbe\x8f\x85\x8b\x1c'\x8d\x81p\x7f\xf1VX\xe1&\x94\xd8/\xde\xac\xc8\xac\xbf\xc3\xc6g\xa6\xf4l\xec <\xbc\x9d\xd9\xd0\xa1N\x8c\x11\x19+\xb3\xa1\xdfj\x8f\xa2\xc3\xcc\xf6\xbd\tz\x96\x61 \xd4\x06\x99Lo#\x9bL\xccs\x8b\x42H\x99\x45\x8f\xcb\xc8\x46\x1a\xfbQ\x03j\xf2\"\x85\x88\x9d\x61\x8b\x16\x33\xf4\xf7\x9b\xc8!O\xb1\xcd\x30\xfc)\x88\x12\xdc\xd4\x30L\xb9\xad\x34\xde\x01\xf8\xc1\x12\xa7M\xc7\x31\x99+E\x88\x06\x34inm4\xd8\xdd\n=Yt61j\xed\x91;[\x88\x43\x46?gf\xe4\xdeR\xb4\xbf{=Ty\xaf\x8d\xf5\n\x80\xfd\xeb\x31$\xbc$\xd7!\x9f\x87\xab\xbdu,\x13\x13\x96\xabv\xfb\xb2\x44\xd0\xd2\x19\xf1\x95\x9a\x91\xbfz{v\x95r\xa9\x16\xfc>\xa9N\x01\x15=Cs\xa3\x8b\xefH\xad\x11\xbdS\xd3\f\x15\x15\x1a\xb4:\xe0\x7f\x9a\xa1\x36Gr\x92\xf0\xdf\xb0\xe2\xbc\x35\xd4\x32k7iOG\x9a\xe2\x35\x8a\x31`\xed\x80W\xe2\x9dX\x9c\x7f\x46\xd2T\x0e(S\x8b\x1f\x46\x34\"\xacq\xc7\xca\x0f\xb4\xb7z\xfc\x34W\xa5\x86\x8d\x66\\\xc7:\xdb\xf8y:\x8a\xf6\xa2\x1e\t\xc9\x10\xe9\x93:\xc5\xed\xb2\xca\xbb\x66\xf1\x9d\xc9\x9c\x42ud>\xe4\x12+g\xf8\xbf+\x98]\xb6\xa0\xbay\x98\xe0G\\w\x85N&q\xfe\xab\\\xa8\x32\x93\xec\xd0&\x90\xe4\xda/4\x8aP\xb8;{L_\xa9>\x8a\xa8\xf3\xc0\xb7P\vwN\x8c\xa0\xaf\xdbY\xe7\xac\xd1\x34NbG.\x1e^\xb4\xc9\x64\xf8\x0f\xf4\xf8\xb6\x9a\xe3~\xcf\xb7\xee\x11\x14R\x89;'\x98\xfc\x95\xa7\xad\xbf\x61\x34\xad\x1a$*Hfeu\x9cY\xc0O_=Z\x8c\xee\xd0\xb1\x17m4F7\xa0\xbaq\xacws)\xa3\x37O\x02\xd3\x7f\x0e\xe8\xce\xff\x80\x11\x45\x42\x03Z\x87\xaa\xff%\x12\x1f\x43\x19>\xa9\x62\x96\fo3\x88\\\xaa\xf9\xe2\xb4\xb9\xf7U\xae\xb5vWG\x83\xe3\xfa\x05\xda\x86\x02\x97\xb4`\xaeY\xd5l\xc1\x33\xe1\x36\x36\x94y\x9e\xad\xa3-\xbc\xb5\xa2\xeb\xdd\xcd\xcbHB\x15\xb8\xe6\x0ev[Wt$\xe6\x89\xc4\xe8\b\xa9\xfe\xb3#\xa6\xcar\xe2\xe4\xcb\xc1J\xd1\x1d\xb9^6\x97\x19|\x15H\xf1-\xeb\xec\xadRo/\xe1\x19\xcf\xcf\x98\x13\r\xcc\xb2\xa6\x8a\xda\x93$=]\x83\xfe\x8d\x9eG\xd8n\x8d\x06R}F\x84\x04i4a\x04P\x1f\x86\x92\x94\xe9\v\x13[\xf6\x16\x81\xeb\xfa\xf1\xbb\x04h\x17\xca\x35o\xbaNL3\xce\xf4&\xb7t\xab\xa5\xd0\xaa\r\x85\x11\x30Xb\xdfH\xc7\xdf\xc9\x38\x9eo\x96#/\xc1\xd4\x8d\x65\x9b\x46_\x9c\xea&`\xb5\x95\x85q\x18\xc3\xf4Ta\xca\xfeU;\xbe\x81\xaf\xd9:'\xe9\x1c\x30\x82\x05\x41\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x05\x32\x04\x82\x05.0\x82\x05*0\x82\x05&\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x02\xa0\x82\x04\xee\x30\x82\x04\xea\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x03\x30\x0e\x04\b\xd9h\xcb\b\x16\xc8\x93W\x02\x02\b\x00\x04\x82\x04\xc8|\xdb\xa6\x1e\x33\xa4\xc6N\x13\"z\x1f\xc6\x82\xab\x93_\xf0\xa4\xe4@\xac\xdf\x16\xec\x8d\x1f\xd9\xe4\x03\xd6\xc9\xc4\x1d\xfd\xa3\xe3\xba\xfc\xcb\xd0Ge\fn]\xfc\xd2\xd4\x63\xa7\x93\xf6\x8a\x44\x8c\xfe\x84\xd8\r\xa6\x16\"\xe1\x65\x10^\x18\x44X/\xc7\x64t_\xcfs4\xe1K\xe4\xb3[\xdb\x81K\x1c\x38r\xa6\xc5\xebV\x9b\xc7\xe3=Tn\x05,\xd3W\xc9O\x80\x1e\xd7\xd8&j\xcbyFp\xfc\x45\xa7y\xab\x01\x03\xb6\xb1\x44\x41\xd9s7\xaa\xd7\xf9\x44\x93\xaf\xbb\xb5w\xeb+ .\xbd\xea/\xde\xa6/\xd6\xact\xa5\x34\xfb\xdf\xf7\x02\xa2 \x15\xc8\x61r\xbb\x7f\x04\xf6\x0f\xf8~\xc3\xe6\xab*\xe6\xd8\xe1\rZ<\xc0X\xae\xf8\x1b\x15<{\x7f\xf5\x9f\xec\xf7?0O=lD\xdd\x0eL,\x93hC1\xa8\x97K\xf6\x66q*R>:\xe6r\x8a\xe6\xe3\xc8\xff\x65h\x1a\x46!\xb3\xf0\x46|\fe\xd1\x8e\xa4\x91\x11\\\x93\xeb\xeb\xae\x46\xf4\xbb\xf8\xf3~ 0\xf8\xcd\x19\xcdT\n\x7fO\xe8\xac\xa9\xacr\x96\x80\x45*Jc\x90\x01\x19\xd0~&S-\xc4 \xa5\x1f\x89g\x0f\xd9uQ\n\xf1\xd4\xfd.\xbe\xe6\x94;l\x8c\xe3\x0f_\xceXH\xde\x8d\xeb\xd3\xe1\n\xcd\xdf\x34M\xd1[\xab\x41\x41k\xeb\xa1/\x01Jr.\xf4^Dv\xc7\xe6\x16\xb9\xfb\x10\x37\x00-\xc6;\x17r!\xdb\xac\x86{\xf5p?s\xa3\xce\x0e \xbbYL#\xc2\xe8\"\"\xe0\x02\r\xe4\xa2?U\x9d\xc0\xeb\x9a\xc4\xf3\xaa\xb8\xf1s\xecG\xe8-k\xa1@\x94\xf6\a\xb9o\x03Zx\xe5YA\x1a\xc7\xcd\x43\x10 (\x95\xe0*o\xf2\xf8\x12\xd6\x13\x7f\x37=8\xa7\"\x91\xc6\xe3R\xde\xd8\xbfx\x9a\xa4\xf7\xc0\x8c\xbf\x81( \xb8\x01\xde\xb5k\nV\x12\\b\x1d\xaf\xb7\xf2tf\nz\xc4\x9f\x1e\xc2\xa8L\xd6vmt57\x12\\\x95\xee\x98\x1d\xe2\x91\xde\x13\b\xd0YMb\x92i\x1b\xf7!E\xaf\x83\xf8\x64\xf0\xfb\x92\x9d\xa1\xd9\x61^\x00\xc8\x1anj-\xad\xa8\x1b\x0e\xaf\xea\xb2\xae\x1c\x89\xc7M,\x0fM\x8dx\x8d\x15\x9dL\x90R\xa1\xa9\xd8\xb2\x66\xb9\xb1\x46\ni\x86+\x0f\xb2\x41\xce\xe8\x8eI\x97\b\vp\x97\xcb\xa4\x33?\x83kl\x17\xce\xd8\xd5\x9b\xd4U\x9b\x99\xe1\xba\x61\x31\x36y1_\xa1\x8c\xa9wB\xaa\x8c\x45n\xb6\x90\b\xe8.\xc4riB\xca\xa2\xd4\x8a,7\xe1\xde\xb8\x98\x36\xeb\xccX\f$\xad\xab\x62\x44m\x80\xd5\xce.J>\xa5\xc5\x34\xf8\x32&*V\xa4\xdd\xe9\x92\x06\xad\xe8\x85wk\xf1\x1b\xeb\xacw\x19\x1cj\xb7\xef(p\x87\x92\x33\xdd\xaa\x30\xc1\xa0\x93\x64\x18\xa2\x91\x7f\xf7\xc4\xa5\x16\x93\xb3[\xd8S(\xc5^\xb1\xce\x97\xbc\xb6\x65\xa8S\xcd\xf4Mk\xeaoo\xa5\x1c\xf1\x0f\xcb\x04%J\xfe}\xfc\xa3\xbd\x41\xd3\x96j\x8b\xad\xd4\xaa\nv\xea;\xab\x39U\xa3\x89\x9f\xf6\xf5\x9b\x9c\x83\xf8(P\xdf\x31t\x83\xdb\xf1\x0fL5j\xe5\x64.\xb9w=\xdd\xff\xa3\xa7\x90y\xc6[\x01\x16\x38\xa8\"\xa3\x14\x13\xed\xd0\x89\r\x1f:ALWy\xfc\x1d\xdf\xad\x1a\x11\x15\x31~\xdb\x99:l\xde\x94\x9a\x45L\xfb\xa5\xa5\x31\xee\xe3\t\x13m\xfd\x19\x37?\xf6\xed\x8f\f\xceK\xd1\xe1=\xfb\x85\x00\x84\x19\xeb\xa2\x63\x1d+-!\xee\bZm\xb0\xb1\xd6\x81\x00\xb6\xd0\t\x90\xb4\x84\x17\xd9*<\x1dS\xc6\xc1\x8b\xda\xae\f\n>\x1c\x8a\xc4\xd6\x97]H\xe7y\x80x\xaa\xde\x17`](\x15:B\xb7\x85\xc8`\x93(\xb0N\xc9\xf7\x46\xe7\xfcN\x9f\x9f\x12\xdf\xcbn\f\xafq\xda\xb7\xec=F\xf3\x35\x41\x42\xd8'\x92\x99\x1cM\xc9<\xe9\x0e\xcb?Wew\r\xdd\xff\xeap5\xcc\xf5\x38\x1bW\xdfm\xcb\xfd\x13\x39\xd6\x04\xe2\xf1\xc2\xd9\xea\x8c\x9f\xfb\xb5\xfc\xe6\xa9\xaa\x0f\x43\xc9\x9c\x91\xe4!\xaf\x37\x14xF\xe1)A\fN\xf5\x93\x1d\xf8\x33Go\x9d\x8b\xf3'\xd4\xbb\xf6\xae\xfa\xa5\x8b\x41\x8f\xb4\xd7/\xc1'\xeapU\x1d\xe2\xd8\fJ^|\x87\xa4\x0e\x84\a\xd3\x38g,U\x11\xfd\x1e\xdaMf\x01\x12\f\x1b||\\\x82!5e\\z\xd2\x66\xc2+^\xb8\xb1\xcb\xdfY\xc9\x31\xb7\x17&\x96^o\x1c\x62=\x8d\x88\xf1\xd1\x01>\xf9o\xb9w\xdc\xee\xeexY\xef\xcf:\x87\x88\xa2\xea\xfd\n\xa9\xa9>\f\xf8\x7f\x97\x32\x17\xc2\x97\xcb\xa4\x9b\xae]\xe7\x39++\xa8\xe6{Qu\x1fST7\xf4\x00\xa4\xb0\xa0\x93\xb4\x33\xe7\xae(\xc0-:\xb3\xaa\xd7\x8a\x9c\xf1!$\xebR\xd1\x7f\x32Wh\xa0\xac-\x94\xe8LY\xa3\x43\xfb\x18yL\xbe\xc2\x84=n\xb3/\xc8r\xbc)\xec\x06\x87\xc3\x9aH@\x0e\xe6\x34\xc1J\xf7*n\xe0\f\x9c\xa2\x32U\xd6\x43,\x9dtK\xf0\\\xaa/k\xb4\xa3\xb6\x10\xe1 \xad\xa2\xb7\x31T\x1c\x92U\xb1G\x9bV\xe7\x89\x90@\xa4\x87q8\x95\xec\x43&KY\xadm\xf0\xc2\xf7o\xa0\x9a\xbb#PD\xbf\x8fI7\xc9O\xd5#~\xf6]\xfb\xd8\ad\xe0\xa8\xa3:>\xc7\x8fW\x8a\xb2[\xc9\xfc'%-\xcd\xcc\x9b\\D\a}\xf4\xad\x42\x12%H\x14V\"f\xe5\xec\xe8v2\xe3\x18\xb1\xac+\x0f\xd2\x92\x82\xe2\xd4\x42\r\r1\xb3\x8eS\x17\xc4\x8a\n\xf9o9\xd1\tU\x04\xe5\t\x15\xe7?*\xf0\x89\xff\xb1\xa8\xe3\x8a\xf8\x9b\xa4\x34\x93\xea\x46&\xcf#s\x82\x87|\xe3\xd2\x9bIS[\x99\xa9\xd4\x87\xa4\xf0\xd0\x82@\xb0\v\x8c\xb2r\xca,\xb1WTe\xf6\x88\xbb\r\x93\xac\xcbs\x90\xa8{\x16Us~~\xe3\xe1\xc5\xc4\f6^3\x91I\x9cq\x11\xf5\xd3[8\xbd\xe6\xb5\x0fr\x8c\x34\xc6\x18l\xc9\xe5@\x9c\xbe\xd8>MB\xd3\x96\x98\x14Q)\xba\xedLO\tPG\xf1\x84\x14\x65\a\x85\x82\xadr4T[\x0e\x44]\xb8,qgU s \xb9VziF\xca$GC\xd9G\xe7x~\xc6\xfcY\xe5\xd9u\xe7\x65.\xd8\xa3nX\xdd\x96k\xf4\x30\xd26\xbd\x15\b@P\xc1\x8b~\x9b\xc6y\xe1\x1e\xaf\xd9S\x82\x61\xb2R\x8a\xf2Vp\xc3r\xcd\xa9\xb5\xf0j\xc0K\x89\xe5|\x93\xb9\x1eh\xb4:\xc3\x31%0#\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x16\x04\x14?18\xec\xb9\xf1\x45\xe1>\x90q\r\xc1(\xbaNo\xa0\x9c\xed\x30\x31\x30!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\x7f\xd4[\x84\x34\xb7\xf9\x87\x88|Rzy\x02\x96X\xcc\xdb\x9d\xf2\x04\bb\xf5}\x8f\x84\xe5\x64%\x02\x02\b\x00", }; -static const size_t kLen184 = 2567; +static const size_t kLen184 = 1619; static const char *kData184[] = { - "0\x82\n\x03\x02\x01\x03\x30\x82\t\xc9\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\t\xba\x04\x82\t\xb6\x30\x82\t\xb2\x30\x82\x04\x34\x06\t*\x86H\x86\xf7\r\x01\a\x06\xa0\x82\x04%0\x82\x04!\x02\x01\x00\x30\x82\x04\x1a\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30I\x06\t*\x86H\x86\xf7\r\x01\x05\r0<0\x1b\x06\t*\x86H\x86\xf7\r\x01\x05\f0\x0e\x04\b\xdbH\xe6\x98\t\x8fn-\x02\x02\b\x00\x30\x1d\x06\t`\x86H\x01\x65\x03\x04\x01\x02\x04\x10\xee\xb3\x10\xe5!\x85\x03>i\xad\xdfx\xa7\xd8\xac\xf1\x80\x82\x03\xc0\xcbX\x11(\x1d\xbc<\x8c\xe7{\x15g0\xf3+\x94\x10\x8c\xbe\xfd\xaa\x11\xd7\x99\xee!\xb6\x1bOS\xcb\x44\xffO\xbf\xf6\x43=\x12\xe6\t\xe8\x05\xdd/\xc5\x39\xde\f\x88\xe8N\x89\x8f_\xdf#P\xe6\xb7\xba\x1a\xdd\x1c\x63Q\x0eq\xb7\xf7\x39<\xd4\xe7RP\xc5\xd7\xbf\x65\x94r\x97*\xb9h\xc2\xbd\f\x97\x02t#\x7f\x11k\xea\xb4\xe4/\xf0\x8b\x91\\\xdb\xae\x10\xbf\x89\xbc\x62\xef\x99\xbf\aYX\x12\xef\xaf\xe6\xcd\x30'\xe4\xab\x44\xf7\xf9\x14\xb2]\xfa\x97\xe6\x9a\xed\x85`\x86\xd9\xb0\xd7\xa4\xe4\x00\xa8\xee\xbb\xfc\r\xe8Xz\xca\x02\x1d\x02\xab\xbd\x16PO\xfc`\xdeH\xb1\x7f\xea\xba\x45{)\xfe\x8e\xedH\xd2\x31\x64\xda\x89\x84o\xd1\xd2\xb1{\x97\x19\x38\x16\xd9?\xd6\xdbo\xabV4\xca\x34\x9cWAn\x87\x85*\xa8\xfb\xe9\xf6=\xb6\x83{\x02\xc9\xbe\xf1\xbb\x8e\xe5h\xae\xaa\xe1%\x8d\x1f\x1fRE>\xef\x33\xd8X\xd9H\xd4\xb5\xe1S!\xb5\xbd\xd4\x63\x1f\xbf\xe4\x30^\xc3\x63\xce\xdc\x12\x8c\xc7\f\xea;\xf3\v8\x8d\xcc\x9b\xe7\xa0\x14^H\x9ct\x86\x8e+w\x80\xbb\x85\xa6\xd4%nu\aY\xd6\x88\x00\x35\x03Z\xb0\x86~\x01\xa7wt\x13\xfa\x9f-\xe3\x90\xdah#6\vb!v\xdal\x05\x35\x80\xfc\xee_<\xac`*\x9cnL\xaa\xa3\xd1\xdf,~\x0e\xc0\xa0\x84\xe4\xb2\x33\x1f\x8c\xcbt1\x18[\v\x18\x41\xc6\x87\x13\xa2\xad\x1d\x43^g\xd0\x31\xf5\x61|=\x16U\x01\x94\x45\xa4P\x0f\xb1\x1b\x81Q\xa7\x92\xae\xa3mNUF7\x98\xe1\xe4\\)y\xc9v\n\xb5\x9d\x1b\x8a\xf6\xab\xebin\x17\x88\xeb\x82\xfax/\x8c\x30\xfd\xf1t\xcdSx'C\x82\x05\x37\a\xb3L\x89\x9d\x00\x1ds\xad\x0f\xcd\x63\xbe\x9b\xa9P\xa5\x43t\x86\x87\xbc\xd9\x97\x66\x84\x35>g\xce\x92,x\xc7\x88\x19j\x1c\xa8\x93\vy!\xe5\x39\x1b\x00h*\v\xacj/\xc1\x9c\x90\x18\x86\x63Sr4\xd9\xa8\x92\xce\x64:\xeb\xba\xd8\x31\xf3\xfb*\xac\xc6\xe7\xd1\v|\xfc\xbbiW\xc8\x97=\xdb\x81w*\x9f\a,yi\xbcQ\x0eh\x11\x00\x10\xed\x9f\xb8\x8d\xa0% \xd3=\b F\xfa\x89\xefiL`3\x80\xb9S\xb4{\xab\x38\xf1\xcd\xb8u\xc4\x85\n\xda\xab\x19@\xd3\x88\xd5\xf7_\x8e\xcd\x8e\xa4\x1c\x9c\"m\xce\x66)\xfa\x62o\x01\xdc\x46\x45\x38\x64\xf7\xc4\x94\xfdHDpM\xef\xf0K\x95\xf8h\x8d\xb7\x35}\xc6\xf5\x97\xce]\xad\xe8\\\xebO\x9b[\x03\xce\x33`\xf5\xce\xcc\xfe\xfbw@\xc4\xf4\x9d\xf3,\xdb\x83\xc2\x1a\xf2\xb6\xbe\xfc,\x7f) 5P\x00`\x03\xd2\xb3\x03\x18\x64\xb9\x64\x98\x33\xdbGC\xe2\xa1\x85y\x9b\xb1\v\x0e\xbb\x14_\xb9\x16\xb6\xc3\xf6\\\x01\xe3\xaa?\x03\xad\x18\xeb\x0e=\xa3\x1f\xccMHD~\xda\xb9\x9d\x17\xe8\x92\x46\xea\xf5>\x05N\xa7\xb5\x94m\x95\x42\xa7q\xfb\xc2\x45\xd6\xd2\x86\xd0y\x99\x1f\x96x\"\xeb\x05&\xf2\xa1gg+\xae\x1d(B\xd6\xbe\b\xf6\xb7T\xc8\x82\xbf\x92\x0f,\xbaG\xe2\x01s,\xd7\x34\x84/\xb6\x41\x84\xebz\xb2\xf9\xdd\x31\xbe\a\xb4\x88\x05\xd8\xe1yU\xe6K\x8c\xdc\xd1vXrB(\xb3\x9f\xd0\x05\x37ket\xce\r\x01\xa9I\xc5\x90\xab\x90\x16,\x9c\xba\xcb\x94\xc7\xfa\xe0\x39\x82\xa2\x88\xd6\f\xc4M\xfe\xb4\xbc\x87\xe5\x63;k\xf0\xd1\t9\x8fQO2\xae\xed\f\xffyR\x19\xa9NE\x11\xc3_\xd6+f\xe3\x9c\xbe\xbc\xda\x65%\xcd\xf5sE\t\xf5]k\x83\x45(\x98,XD\xca\x37\xeb\xc3\xc2\x10w\x14y\x9b\xd8\xb2\xbf\x45\xd5\x63\xe4\x37\x42{-\xe2I\xb3\x18\x8e\x86s\xf1Y\x8a\xf2\xd3\x8d\xd6\xb5\x8a\x05\x02\x02\b\x00\x30\x1d\x06\t`\x86H\x01\x65\x03\x04\x01\x02\x04\x10\x61\xa0/\x8d\f\xa1\x03\xc9\xdf.\x81\x65\xe0\x63pU\x04\x82\x04\xd0$\x1e\xf9\x1d\xc4\xe9\xbfI<\x1eUJ\xd4\xb0\f\xdd[\x92\xb2\xed\x18\xac\x66\x90\x1b)=\x10\xad\x02\xe7\x17\x83\x44g\xba\x11o\x05\xf5\xf7\x37\xcbZ\xe9\x0e\xc3K\x1b\x62\xee\xb2\xb7\x14\x85\a-\x95\x83\xa9\xdc=K3\xadh\xbfT\xf8\xef%\x05@\xcd\x61\xbe\x12\xebxu6\b\x8cZW\xa1\x98\xd5\x42\x01\x1bL%\xc2\x18\x9f\x91\xfex\x88\x99GZ ,71\x05\x98\xef\x91n\xeb.\x86\x90\x61\xb1W\x1a\x05\x82\x14\f\xa8\x94\xaeV{\xd6/\x8b.\x91\xa6\x12h\x1f\x06\t/\xa6\xed\x33\x99rV\xe5\xf7\xea\xcc\xcf'\xa5\xadIZ\xbc{\xe3\x62\x63\x8f\x00+\x96\xc5?\xaf$\xba\xf6\x8d\xe2\xef\x18P\xd6\xd8O\xb2]\xb7\x96o\x02\xf7}\xf2\xa2{\x9b\x13\x98\xde\xddn\xb5HR\x8e\x44\xad\xe0\xcf@\x9f\xfd\x88\x33\x66\xcejI_\xe7K6\x93\x7fIb\xc9Z\xae\xa1\xca\xf7Z\xbe\x85w\x9a\x8f\xceM\x84\x81\xd0\xa2\xee`\x92\x86\x16*\xd5\b\xb6Xc\a|A\xac\x97O\xf0\xcf\xd8\xd2\xb1\xd7\x1d\xe5\xb8|\x04+\xd9\xee\xf7\"\x88\xa1S\xdb^[GI\xeb\xcf\x04xi\xd1\xfc\x8a\xa9\x61\x92\xbf\\\x7f\xdeIB\xfc\r\xc2\xa2\x8f\xba\xdf\x12\xa4\x62\xfb\x8d\xd3\xc5\xf9\x85L\x17p\xb7\xf7\x99)R\x92\x36\xc5K1#\\\t'<\xa0v]\x92\x99\x63\x88\xca\xad\xed\xd7\x85\x98/\xbe\xaa\xa5\xf3\nv\x13\x01\x90\x8a\xe7Z-+\x1a\x80\x33\x86\xab\xd8\xa7\xae\v}\xcd\x64\x8d\xa6\xb6\xfb\x83\x9f\x91#\xcb\xda\x63\xd0\xde\xf4\xdd\xaa#IlD\xfao\x12\x13\x90\x37\xde\xa3rE\x1a\xa7\xab\x01m\xd6\x34\xe7Q\x0e\x33\xbc\t\xbf\xb6\x16\xf8\xd3\x11\x11\xd1_\xaa\x32\xb6[\xe7\xbc\xdd\xaa\xe4\xed\x42=.\xf7\xa1\x06\x39\xd4\x00\xc6\xc8\xed\xb5\x96\xc1\xbfL\xf1\xf6\xc6Y\xf4\x99\x9c\x10\"\xa1:\xcd\x94\xac\v\xc8~)\xbc\xf0\xae'z\xb8\\\xa0\x13\x36\xb5\x19K,\xc1\xceIW\x1d\x36\xf0\xc2L\xdfm\xc9\x64h\xcb\xea\"2\xd7\x11,w\xbe\x01\xa3\x82-\xa1K\x13\x93\x87=\x01t\xc6\xc6\xf9\xae.\xa1\x44]Glo\xc6\xce\xef\x32\xf8\x8dSM\xa5\xf0\xa0Q~\xd8\x35U*\x04\xb9\x42\xa7Q\xba\xad\xce\x88{\x93%\x9d\x03\b\xfau8cx\x13\x11\x9d\xf6\xcc\x18\xe3\x99\xa9]\x90k\xbf\x9ci\x99\x63'5\x8a&\ag\xd1\xaeW\xec\xc0\x45n*BF\x8f\xe4\x84\xc7g\x06\f\xa7~\\ \x80\xdc\xc1\xe4ztv\x8f\x41x\xcej\xf9\xcb\x7f\xe9\x17pE\x01\x9a\xc3\x9c\xa2h\xa0y\xfd\x44L\xc8\xa0\xaf\xa5\xba\x0f\x03\x30\x43J\x1d>\xd4\x8e\x1fm\t\xf9\x63\xde\xd2\x9ew\xe7\xde\x61Rv\x0fm7\xf7\xc2i\x96\x9d\xc5\xd9\x15\x10\xf2\"\x1f;\x83\xb3\xb4,%6\xc3:$\x17\xed\xad\x11\x1f\x46\x31\fj<\xd2\x1a\xe7\x41\xb3u\xd8\x80\xb3\xf8+\xab\xb5\x81\xc6^@\x9aw\xaay1\x1fy\xfe\x0f\x0f\xb0\x36\xb7\xdc\xca\xf6\xbf\x80\xebx\xc6sj\xb3qi\x9c\x1d\xdd\x90\xd9s\aC7\x19\x7f\"\xa4\x9aM\x98\x66\x10[\bb\xb3\xd8/Vh\"\xdf\xd1\xa2ZE\xf9\xb4\xb9\xf2HN8\x1a#6mBV\xbb\x32\xe3\x00\x84\xa9\xe2\xba\xb6\x86\xc9\xa6\x64\x8a\xd6\xa6\xc4\xd7>\x8b\x34\x1bke\xfe\xb1\xc9\x93\xe1\xeb\x8a;\xf1\x0f\xdb\x84\xe2-\xf8i\x04\xee\xafX/\xc7\x96pM\xd9L\x1dR8\xc6&'A8\v\xa5\x1c\x16\xd0\x1d\x32\x99\xb9\x1f\x35\xaf\x02\xb0\x13\x0f\x95\xd3\x9b\xd6\t\xcc)F\xe8\xf1TM\xb8\x96\xa6\rYa\x1f\xee\xaf\xbc#X\xff\xcf\x96\x91\x1f\x00\x80N\x9a\xa2\xe0\x00\xf7>\xb1\x91l)X^\xe7\xc7#\xfa\x88\xf7\xfb\v\x0eJ\x04\x46\xe0g\x10\t\xea\xc0\xa9\xbe\x83\x11\x33\x8e\xfb\xd6\xd5g\xef\xb4\x13M\x17\xa1\x44\xb7\x98w\xd0\x63\xe7\x9c\xa7\x96)\xe5\xferL\xa9\x85\x9b\xc9\xf3\xf6\x05\n(h\x99\x31\xe8\x64\x30\x9c*\x90H\x84\x00\x1a\x66\x0e>\xf7\xaa\xc9l[W{\xa9\x17\x91\x1ek\xe8\x12\xa1\xd4\xde\x1e\x38\x14{\xe0\x9a\x15\xaeZ&\x93z\xd6\x8d&a(\xf2@q\xc7\x8a-ir\x04[\xb9\xc1{\x17\xde,\xfc\xa9\xf2\xf8\x34\x33\t\x87\x91\xdf\xeb\xf7W[2\xe2\xd4\xe4Gx\xe8\x9b\x1a\xab\x44U(\x98 \xa7\x16\x8bNB\xf1\x91\xbe\x00\x87:\x91\x63\x9a\xc2\x8d\x13\x34\x8b\x33\x02\x88\x1e\xb1\xa8\am\xb1\xf5\xb3z=\x17?\xbd\xa1\xdb\x04\x0f){\x0e\x98\x18\x63\v`\xcd\xa5\r_\x1eS\xcd\xfa\xc0\xc7\x99S_\xb7\xe5J0\xde\x14\xc9IF1\xb6\x92\xf3K\xc1\xb0\xdd\xecH\xff-RSd'Lx\x96\x80\x90\xa3\xd7\xfdz#6\xa0v\x9e\x96\xfc\xcd\xecX\xf8vK/\x8d\xb9\xd6\x89\xa1W\xe1\xc6\xed\x9a\x1e\xde\xc7h\x93+.\x84\x1a\xf9\x8cX\xb8\xf0)\xfe{\x03\x84\xe8R\x1c\x01\xbb\xcc]\x88\xcd\x37\x8b\xe2-0\xd1\xbe\xf7\xc1\x95\xb7\x01\x43\xab\x30?\x96GmR)\x87\x10\x31%0#\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x16\x04\x14\x14t-R\x8e\r\f\x06l2d\xd3~31h\x8b(\x1au010!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14/\\\xc6\xaf\xa7\xcc\xb5w@\xcaq\xc3\x8c\xc6i\xdc\xc6\x7fT\xef\x04\b\xf8\x9c\x8b\x12'\xe8\xec\x65\x02\x02\b\x00", + "0\x82\x06O\x02\x01\x03\x30\x82\x06\x15\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x06\x06$\x82\x06\x02$\x82\x02u$\x82\x02q$\x82\x02m$\x82\x02i$\x82\x02\x65$\x82\x02\x61$\x82\x02]$\x82\x02Y$\x82\x02U$\x82\x02Q$\x82\x02M$\x82\x02I$\x82\x02\x45$\x82\x02\x41$\x82\x02=$\x82\x02\x39$\x82\x02\x35$\x82\x02\x31$\x82\x02-$\x82\x02)$\x82\x02%$\x82\x02!$\x82\x02\x1d$\x82\x02\x19$\x82\x02\x15$\x82\x02\x11$\x82\x02\r$\x82\x02\t$\x82\x02\x05$\x82\x02\x01$\x82\x01\xfd$\x82\x01\xf9$\x82\x01\xf5$\x82\x01\xf1$\x82\x01\xed$\x82\x01\xe9$\x82\x01\xe5$\x82\x01\xe1$\x82\x01\xdd$\x82\x01\xd9$\x82\x01\xd5$\x82\x01\xd1$\x82\x01\xcd$\x82\x01\xc9$\x82\x01\xc5$\x82\x01\xc1$\x82\x01\xbd$\x82\x01\xb9$\x82\x01\xb5$\x82\x01\xb1$\x82\x01\xad$\x82\x01\xa9$\x82\x01\xa5$\x82\x01\xa1$\x82\x01\x9d$\x82\x01\x99$\x82\x01\x95$\x82\x01\x91$\x82\x01\x8d$\x82\x01\x89$\x82\x01\x85$\x82\x01\x81$\x82\x01}$\x82\x01y$\x82\x01u$\x82\x01q$\x82\x01m$\x82\x01i$\x82\x01\x65$\x82\x01\x61$\x82\x01]$\x82\x01Y$\x82\x01U$\x82\x01Q$\x82\x01M$\x82\x01I$\x82\x01\x45$\x82\x01\x41$\x82\x01=$\x82\x01\x39$\x82\x01\x35$\x82\x01\x31$\x82\x01-$\x82\x01)$\x82\x01%$\x82\x01!$\x82\x01\x1d$\x82\x01\x19$\x82\x01\x15$\x82\x01\x11$\x82\x01\r$\x82\x01\t$\x82\x01\x05$\x82\x01\x01$\x81\xfe$\x81\xfb$\x81\xf8$\x81\xf5$\x81\xf2$\x81\xef$\x81\xec$\x81\xe9$\x81\xe6$\x81\xe3$\x81\xe0$\x81\xdd$\x81\xda$\x81\xd7$\x81\xd4$\x81\xd1$\x81\xce$\x81\xcb$\x81\xc8$\x81\xc5$\x81\xc2$\x81\xbf$\x81\xbc$\x81\xb9$\x81\xb6$\x81\xb3$\x81\xb0$\x81\xad$\x81\xaa$\x81\xa7$\x81\xa4$\x81\xa1$\x81\x9e$\x81\x9b$\x81\x98$\x81\x95$\x81\x92$\x81\x8f$\x81\x8c$\x81\x89$\x81\x86$\x81\x83$\x81\x80$~$|$z$x$v$t$r$p$n$l$j$h$f$d$b$`$^$\\$Z$X$V$T$R$P$N$L$J$H$F$D$B$@$>$<$:$8$6$4$2$0$.$,$*$($&$$$\"$ $\x1e$\x1c$\x1a$\x18$\x16$\x14$\x12$\x10$\x0e$\f$\n$\b$\x06$\x04$\x02\x04\x00\x04\x82\x03\x85\x30\x82\x03\x81\x30\x82\x02w\x06\t*\x86H\x86\xf7\r\x01\a\x06\xa0\x82\x02h0\x82\x02\x64\x02\x01\x00\x30\x82\x02]\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x06\x30\x0e\x04\b\xe2\xb3\x39\xd2\xbdZ\x8c\x0e\x02\x02\b\x00\x80\x82\x02\x30x\"\x01\x8c\x16\xcd\x11\x86\xa1\xc7n\xc4w\xa1\x8d\xb4\x85\xc3\xb2\x02\x63p\x8b\xfb\xb0\\\x8f\x1c\xec\x0f\xc7}\xb6\n\x03_ \x00\x32-.\x12NZ`Ho\xd0\xe9\x8c\x15Y\\b\xe6$L\xfd\x1f\x30\xa1\"\x8b\x0f\xe5\x37\x82k\x19\r\xcc\x85M\xce\x64\x9b\x82)\xfeJ\xe4\x11\xd2\xe6\x01\xce\xdbTdk\ai\xb5\x19\xfb\xf1r\x84\x8a\x9c\xf1!$\xebR\xd1\x7f\x32Wh\xa0\xac-\x94\xe8LY\xa3\x43\xfb\x18yL\xbe\xc2\x84=n\xb3/\xc8r\xbc)\xec\x06\x87\xc3\x9aH@\x0e\xe6\x34\xc1J\xf7*n\xe0\f\x9c\xa2\x32U\xd6\x43,\x9dtK\xf0\\\xaa/k\xb4\xa3\xb6\x10\xe1 \xad\xa2\xb7\x31T\x1c\x92U\xb1G\x9bV\xe7\x89\x90@\xa4\x87q8\x95\xec\x43&KY\xadm\xf0\xc2\xf7o\xa0\x9a\xbb#PD\xbf\x8fI7\xc9O\xd5#~\xf6]\xfb\xd8\ad\xe0\xa8\xa3:>\xc7\x8fW\x8a\xb2[\xc9\xfc'%-\xcd\xcc\x9b\\D\a}\xf4\xad\x42\x12%H\x14V\"f\xe5\xec\xe8v2\xe3\x18\xb1\xac+\x0f\xd2\x92\x82\xe2\xd4\x42\r\r1\xb3\x8eS\x17\xc4\x8a\n\xf9o9\xd1\tU\x04\xe5\t\x15\xe7?*\xf0\x89\xff\xb1\xa8\xe3\x8a\xf8\x9b\xa4\x34\x93\xea\x46&\xcf#s\x82\x87|\xe3\xd2\x9bIS[\x99\xa9\xd4\x87\xa4\xf0\xd0\x82@\xb0\v\x8c\xb2r\xca,\xb1WTe\xf6\x88\xbb\r\x93\xac\xcbs\x90\xa8{\x16Us~~\xe3\xe1\xc5\xc4\f6^3\x91I\x9cq\x11\xf5\xd3[8\xbd\xe6\xb5\x0fr\x8c\x34\xc6\x18l\xc9\xe5@\x9c\xbe\xd8>MB\xd3\x96\x98\x14Q)\xba\xedLO\tPG\xf1\x84\x14\x65\a\x85\x82\xadr4T[\x0e\x44]\xb8,qgU s \xb9VziF\xca$GC\xd9G\xe7x~\xc6\xfcY\xe5\xd9u\xe7\x65.\xd8\xa3nX\xdd\x96k\xf4\x30\xd26\xbd\x15\b@P\xc1\x8b~\x9b\xc6y\xe1\x1e\xaf\xd9S\x82\x61\xb2R\x8a\xf2Vp\xc3r\xcd\xa9\xb5\xf0j\xc0K\x89\xe5|\x93\xb9\x1eh\xb4:\xc3\x31%0#\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x16\x04\x14?18\xec\xb9\xf1\x45\xe1>\x90q\r\xc1(\xbaNo\xa0\x9c\xed\x30\x31\x30!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\x7f\xd4[\x84\x34\xb7\xf9\x87\x88|Rzy\x02\x96X\xcc\xdb\x9d\xf2\x04\bb\xf5}\x8f\x84\xe5\x64%\x02\x02\b\x00", }; -static const size_t kLen185 = 2691; +static const size_t kLen185 = 882; static const char *kData185[] = { - "0\x82\n\x7f\x02\x01\x03\x30\x82\nE\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\n6\x04\x82\n20\x82\n.0\x82\x04\xa2\x06\t*\x86H\x86\xf7\r\x01\a\x06\xa0\x82\x04\x93\x30\x82\x04\x8f\x02\x01\x00\x30\x82\x04\x88\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30W\x06\t*\x86H\x86\xf7\r\x01\x05\r0J0)\x06\t*\x86H\x86\xf7\r\x01\x05\f0\x1c\x04\b\xb2^\rm\xda\xaa/\xbe\x02\x02\b\x00\x30\f\x06\b*\x86H\x86\xf7\r\x02\t\x05\x00\x30\x1d\x06\t`\x86H\x01\x65\x03\x04\x01\x02\x04\x10<\x04x7\xb3\xb2$\xd3\xb5\x46 \xb7\xd2\xdd].\x80\x82\x04 :\x01\xe4\xf4W\xd3\xed\x14\xd0\x42?\xd3\x61\xee\x84\xcd+\b`0\xbdr\xa7\xd5\xa4\xf2\x13\xe9\xf0\x44\x66&4\xe7,]\xc9\xb0K\xabG\x16\xab\xe6\x06\xa6;yA\fy\xd5\x9b\x02g\xd8\x7f\xc8\x36\x37'\xb4\x44\xa2^\r8\xb8\x41\x8e:\xf1\xe9\xab\xe0\x19\xd0\xe1\xc7\x92\xd4[5\xf3yH;\xfc%\xfc\xc6\x9f\xed\x35([\xfa\xeePB\xa3\xc3\x96\xee\xe0\x87\x33^\xa7\xc7\n\xfe\xda\xe5\xd5)jW\b\x7fV7*\x1a\xa0m\xe9\x84\xac\xed\x0e\xd8\xc0\xd8\xc6w\xb1\xdd\x1b\xa1\xed\xa7y\x13.[\x9b\x80\x44\x9e\xff\nn\x99\x33\xcf\xf1G$\xaaH\xe7,\xb3\xe6\xdc\xd4\x1e\xe4\xb8^r\xaf?\xd3%J\xac{5\xb1\x82\xa5\xd9\xf8\x01\x12\x92IL\x17\a\xb2\xb1>\xcb\xfd\xd1\x17\xb5\x65=\f++\xc0\x37\x9c\xe7\x04\x9bqZ\x10\xc0\xba;1\xde\rfl\rL\x99\"v*u\x7f\x84\xd1\a\x1fW\xf0\vqA\xea\x38\xe2\xe7\xbe\x11<\x92\x8c{\x0e\xb4~v\xc4\x80\x41\xaeL\xe2\x38\x36\xcb\x82\x39\x38:U\xb4\xe2\x35\x94\xc3\xae=\xd1\x03\xf3\xdb\x00\xd9\xfa\x96\x62%\x97Q\xc5\xcf\x84\xe8\xf7\x8b/1\xeb\xa7\n\"o\xad\xf5(%\xaa\x99\x0e\xb1\x83\x9fpy\xaf\x10|,U\xfe$}\xea\x85H\x8ez\xf7G\xd8\fd\x97\xe0\x8f\x62^\xd0O!\xa4\x46\x8e(\xb0\xb1\x90\xec\x01}\xc4\xc8o\xf2\xe2\xb7\xc4\x35l\xa9\xf6\xaf\xc2\xb6\xa9\x02m\xb2\x8b\x43kA\x80\x9d^Q\xa7\x31\x00\x1b\xb5$\xed@\x99\x33\xde\x87\xd1KvxWL3y\x89\xd3\xfap\x0f/1B\x8c\xce\xe9\xc0X\xe1\x30\x30\xf1\xe9\xab\xc8`|\xe0j\x99\xe7\xd3!\x1a\xcc\x98`D\xaa\xff\xee\xec\x34 \x19\xba\x03;go\xee\xd5\xb3\xa7!W\xd6I\xaf\x91\x8f\xecp\xd0Y\x1ay\xe2\xd2\x94\x82S\xfb\xea\xd6\x83IJo\xd6\xed\x15\xc3q\b:\xbf\xde\xa8-T\xafJ@\xbc\xe5S\xaeK=p\xfe\x1c\x03\x1e\xb2\x9d\x1c\x35\xbd\x9a\xf8\xc5\xd1\xa5Jc\x18\x02\xd4\xff\xdd\xcd\xb3l8\xd1\x9a\xad\x16q\xf1\xc6\x1d\x8fl0\xfa.\x13\x9d\vN\xe6\xd3\x37\x80X&\r\x04\x97\xe6\x8d\xcc\x63<98/zs\x01\x0f\"iGT\x9e\x42\xc8Y\xb5\x35\x43\xb4\x37\x45Y\x85\xf2G\xc3\xfb#\x13\x18\xef\xd8\x11pt\xce\x97\xcf\xbf\xd5-\x99\x00\x86V\x9b\xdf\x05g\xf4I\x1e\xb5\x12#F\x04\x83\xf3\xc1Y\xc7{\xc3\"\f,\x1b}\x18\xb6\xd2\xfa(6\x8bQmX\xf4\xd6\xdf\x38\x94\xcflPO\n\xf3\xc3\x91\x39\xa5\xc9\xbc\xa8\xeb$\x1a\xddX\x9e\xdc\xb2\xee\xe1\xa5\x16h\xc2\x63\x8c\xc9\xa7\xbe\x1e\x30\x84\xa6(\xebP\xd9\xdd\x15\xea\x64\x34\xf0zVj\xdd\xb2p.\xearf9T\xaa\x36\xfah\xaa\x06]H\xca\xadN\xfeK@\xdf\x43\x46\xd6\xdf?\xa1\x9eL\xdc\xfeL\x01\t\x7f\xd8\x00\x84\x94)\x17g\x00\xd3\x46\xd2\xba\xb9\x62\x66P\xcd|zpFJ2b\xc2n\xe7^\x04$\xc5\xfd\x9d\xf4\x9b\xc8\xe9\xebs\xf9\xaa\xa4\xcc\x63\xa3\xdc\x63\xe0\x30\xecp@\x9e|cy\xae\xba\xfd\x95LF\xf1\xc4\xae\xb9\x03\xe8\xd4\xe4\x90):\xbb\xdb\xd8\x8f@\xc3\x39\x9aLpT\x9f\xc9\n\x04#\x98k\x9c\xc2\xe0\xad\xae\x30\xef\xff\x44[s.\x8f\xd7+\x12\xf0\x31\b\xfb\xb9U\xf0\xc3\x62\xbb_m\xa7\x1d\x61\xc2&\xce\xab\xb6\x88%\xce\x8b\x02\xb6\xc5\xa2\xcc\xd4\xa3t[v\xf7\xb4\xd9\x9c\x93\x86~\xac\x82\xe0\r\x83\xe1\xc9\x7f*\x86\xbb\xaa\xfe\xdc\x17\x9c(w\xe1X\x18\x15\t\xe3\xda\xdb\x8d\xeeU\xf6\xda\xad\xe5R\x84\xb4\xf0$\xce\xa1TK\x9f\xea]M\x7fS\vy\x1d\x87\xcb\v\xa8\xef\x03\xfaXW\xf6\x02p\xdbzd\x89\x1f\xc7\xca\x87\x02'3\xc5[*P\xc5\xb5{-=\xa9\xbc!{\xf2\xbe\x9cV5\x83\xba\xce\x34\x8d\xec{\xaa\xe4\xcb\xd1OJ1\x00\xd1\xb8\x30\x38\xaf\xe8\xe3\xd7\xc2\x8c\xe3\xb4#\xb3'\a\xc6\x88\xecX\xe9Y\xfb\xa9\x11\xa2\xc8w\"j[\x86\xde\xdc\xedvnsy\\\xb4\xcf\x19v\\k\x1cK\x03\xcb\x35\b\x94\x37\x01\x98R\xd8\x31\x42=\x7f\xa1\x11\x06\a\x88\xb8\x31\x35\xb2I(\xc6,DC\xb6\xbcXvlO\xc8\xb6\x30\x82\x05\x84\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x05u\x04\x82\x05q0\x82\x05m0\x82\x05i\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x02\xa0\x82\x05\x31\x30\x82\x05-0W\x06\t*\x86H\x86\xf7\r\x01\x05\r0J0)\x06\t*\x86H\x86\xf7\r\x01\x05\f0\x1c\x04\by1\xf9\xe2\x42\x33\xf1\xaa\x02\x02\b\x00\x30\f\x06\b*\x86H\x86\xf7\r\x02\t\x05\x00\x30\x1d\x06\t`\x86H\x01\x65\x03\x04\x01\x02\x04\x10\xc9\xda_\x96\xc8,\x85]\xa0\x30\x82\x16k\xf4\xfd\x91\x04\x82\x04\xd0\xc3\x89jVj\x84Xv\xd7#\xd5\xa8\xc1/C8\x99\xf8\x64\x97\xe7\xe8\xd2\xcf\x36\x9b~\x04\xe5\x87\x80\xff\xd5XPZ\xb3\xc0\x15\xc9\xd5\x61\xd6;\x7f/;\x98PU\t\xcf\xc3\xdd\xbd\x8b\xcd\xdf \x90\xe1\xd2\xcd\"\x9f\xa7>\x10\xd3\xb7&Te\xfb\x18\x12X\x81\xd8\xe6\x97\xdf\x32\xd1\x04J\xdb\x05\xb4\x13\xa9\x86\x62 \x94\xdc\xaf\x98S\x16\xc7\xb2\x9c\x44\x30\xc5\xaa\x14z-\x93 \xffm\x8dGio9\xd4\x15\x81k\x85\x36\xf9Y\xa5\x8e\\@b\xf8\xfe\xf7\xe6u\xf7\x37\xfe]S\xa6\x66\xe5\x0eJ#\xa9\x80K\x04\x11\x0eP\xef\x9e\x88\xed\x39\xd1_\xfa\x90\"\xa3p\f\x8b \x9c\x80,\x90.,\xe0\xe6&\x84\xd8j\xe4 \x1e\xbc\x96\xba\a\x9d\x1d=l\xd1\x04\xc8\xd1y,\x96\x0f\xe8\xa5k\x03\x06Q\xfd{D\xab\x66JA\x04\x02\x64Z@}k\x1a\xbcn\xeehp<\x10\x32sv(H\xd9\xa4\xe1!\xf6\xe4\x03\x94\x10\xef\x82\xe0v|\x99\x30&\x9a\x95\xa2\xc5\xb9\xa7\xae\x9f\x85\xcb\xf1\x82\xcd=\x06\xec\xafr\xc1\x33\t\xf9Q\x94\x42\xf0i\xb9\xc6\x04\xe6z\xfb\x1c\xee\xac\x95\x9b\x88g\x19\xa8yg\xc7\x1b\xccr\xe9\x18\xd2\x96\xcf=\xf8\x98 S\xc9\x37\x0f\x92\xb1\xbc\xaf\xc6\xecO%\xda\x95\x14\xed\xb8>\xaf\xd1RL(;\x84\x8cI4c+\xd4\xf4x\xb1\x8f\xb0\x35{\xd5\x44\xc3\x98\x9e\x85\x86\xae\xee\x05\xdd\xa1oS\xe4\xdco\xf5|~\xd8z\x9b\x18\x43?{*\xf3\xb5\x39Z\x1cr;\xdd\x01y\x97\xff\xdbX\xe5Ma\xde\xcf/\x13{\xafk\xa4\xf2Y\n\x13V\x1c\x05\x00\x0f\x18\x66\x33r\xbd\x62\x8d\x11\xf7 R)B\x83\x33\xc1\x0f\a\x80\xd4X\xe2\"\x94\xad\xec\xbf\x01\xb6q}\x92\xb1u\x14\xf2\xfbw9\r\x82\xb5Q\xba\x1f\x65W\xaahj\x17\x41\x13\x38\xc0\xe5\xeb\xcc\x8c\xdd\xb7\x00N\x01\x06%\xab\x87\x1c\x30i\xc4\x15\x0e\xf8\xf0r\xb6\x1d\x92~\xe2\xe6w\xed\xb8?\xcfW\x8d\x90\xe4\xa3yI\x9a\xe0\x1fJ\xde\xe9\x44\x8d\xd5#;\ac\x92\x9f\xde\xba~g\xb0\x82\x41*\xcd\xe1\xbb@\xf1\x8a\x66pt\xf1\x99}\xb0\vj\xa2^~\xc0\x8c\xb2q\xda\xcf\xbc\xfb\x9c\x03\x0e\x33^\x13\xb2\x34\x38\xc1\x83\x95\xdf\x46\xfc\xe0\xe0\xaf\x93\xe0p\xd5\x15\x8c/\xaeK\xa6\xeb\x13\x8f\xaf\x1b\xf5q\xc4\x62q\b\x97\x10R\xfe\xbd`\xd7\x9f\xdf=\xc5\xdd\xcd\xe7\x8e\x85`\xdf\x61y[\x90\xd9\xaaV0m\x0f\xfb'\x84\xdd=\x04j\xe0p~\xbbY\xf4\xeb\xe8\xc0\x62\xaa\xf6\xed\xca\xae\xb2+\x0f\xc1VE\xe7$k\xaf\xeb\x15&\xb2\xcd\xae\x1f\xe7\x11\xc0\x1c\x19J\xc7Q*)\xdf\x14\x82\x43\xfeR9\xba\xe6l\xa5v\x8b\xb1!\x9c \xb0\x10\fD\xf2\xd4nA\x1b\x8f\x90#\xe3\x87\xfc\xf1\x46\xc6[\xae\xd0*+x\xf5+\xb9\x9f\x46K0\xf8IW~\xb4\xff\xca\xadM\xf3\xc1{B\xe0\xa4\x37/\xe2\xb2`\xe8\xaf\xd7\x39#LgD\xe5m\xb3%\x11\x9f+\xea#\xfb\x1e\xce\xbf\xa4/\x88\xec\x18@\x16\x43\x9fq\x9c\x8d\xbd]U;\x92N#<\x87\xed_.\x8f\xde\x83\xad\x30\x42~\x1a^\xf5\xc5u\xbb\x99n\xf1\x87\xe0\xf3Q\x1e}\xe8\xfc\xc6\x88\xf2\x39m\xaes\x9f\xad\x9b{g\x99\xdb\x90\x0e\xa0\xfc\xaf\xcc\xdb\x8b\xaa\xc2T\xd5-\xb3_\xa3\n>\xd6\x8d@M;\xe5-1\xd8\xb2\x12\a\xca\x36V\xd9/U\x82\xdc\x8e\x92\xa9l\x91\x9e\"\xe4\xc6'\x8b\x1a\xa2xV,Z\x19\xdf@\xf9\xfb\x44![\xdf/\x99\x84I\xcf\x1a\x15\xa5Y:f\tM\xc1\xf2\xb1$3\xbd\x86\x41\xdc\x33\x9b\x03\xc0\xa8\xf8\x94x.\x16\x97\xef#\xee\xa4\xac:\x90\xb6\xd9\xc0\xda^&4&\xce\xc9\xf8\x45\x37\x83|\xbd\x9c`@a(\xcd\x9c\xb4\xe4\xe6\\O\xd1yB\x13\xa9o&#\xc2l\x8e\x8d~?\xee+M\xd2[\x80\xdct\xda\x1f\xbc&T\xc5\xfe\xee\xa9O\xce\x46\xaf\x90\xb0\x12\x9a\x18\x0e\x06\x05\xc7\x98\xef\xccm\xa3\x46\x91\xa5\x0e\xe7\x35\x1a\x7f\x9d\xae\xa0\xb4\n2;\xe4\xcdK>\x89s\xc9\x97\x38\xe5\x86O$\xedJC\x04\x02\xc1)\x8d\x85\xa2\xdd\xb2\x61<\xce\x8bG.\xedK$\x94\xb7\xbf\x9dUB\x95\xc2'\xe5\t\xd4 \x03 !:\xd8\xd2\xa2\xb3G\x93OZ9\xca\xd8t\xa9\x19\xa6\x9a#\xb1!\xa3\xb3\x14\xcc\xe2\x12\x91\x30\xdbP\xf8\x44t\xd6p\xdd}&\x7f\xbf\x32\x93\x1f=@\xbf.\xec(\xf5\xb1\xaf\x11\xc7Nd\x13<\xbf.\x19\x81\xfe\x35\xba\xecn\xb6\xa9\xfe\xc6\x85\x33\x41X\xab\x06\xae+\x96\x62\x1f,l\xad\xec\x1aYUZo\xe0\xebq\x8d\xb5\f\x81*9\xbdg9H\xfb\x91\x64\xad\x01LJ\x0f\x30)\xa0\xcf\x30\x96\x43\xe9\xfc\"K\xf3O\xab\xec\xbcZ\xfb\x7f \xd9\xd5\xc7\xce\x93\xa3.\x82\xd1\xa0\xc6\x16\xd5\x64-?i\x15\xfd\xf3(=Na\x01,\xd4+@Qn\x95\x00\xa4\x34\x31%0#\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x16\x04\x14G\xf4\x18\xa5K\x85\xb7\x02\xc1\x97\xffW\xb6o!E4=\x92\"010!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\x17\x45\f\xdfSv\x9b\xce;\x12\xddG\x05m\x16\x90\x9d)\x9b\xe1\x04\b\xa1\xf2\x82\x1c\xd1\xd1{\\\x02\x02\b\x00", + "0\x82\x03n\x02\x01\x03\x30\x82\x03\x34\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x03%\x04\x82\x03!0\x82\x03\x1d\x30\x82\x02>\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x02/\x04\x82\x02+0\x82\x02'0\x82\x02#\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x03\xa0\x82\x01\xeb\x30\x82\x01\xe7\x06\n*\x86H\x86\xf7\r\x01\t\x16\x01\xa0\x82\x01\xd7\x04\x82\x01\xd3\x30\x82\x01\xcf\x30\x82\x01v\xa0\x03\x02\x01\x02\x02\t\x00\xd9L\x04\xdaI}\xbf\xeb\x30\t\x06\a*\x86H\xce=\x04\x01\x30\x45\x31\v0\t\x06\x03U\x04\x06\x13\x02\x41U1\x13\x30\x11\x06\x03U\x04\b\f\nSome-State1!0\x1f\x06\x03U\x04\n\f\x18Internet Widgits Pty Ltd0\x1e\x17\r140423232157Z\x17\r140523232157Z0E1\v0\t\x06\x03U\x04\x06\x13\x02\x41U1\x13\x30\x11\x06\x03U\x04\b\f\nSome-State1!0\x1f\x06\x03U\x04\n\f\x18Internet Widgits Pty Ltd0Y0\x13\x06\a*\x86H\xce=\x02\x01\x06\b*\x86H\xce=\x03\x01\a\x03\x42\x00\x04\xe6+i\xe2\xbf\x65\x9f\x97\xbe/\x1e\r\x94\x8aL\xd5\x97k\xb7\xa9\x1e\rF\xfb\xdd\xa9\xa9\x1e\x9d\xdc\xbaZ\x01\xe7\xd6\x97\xa8\n\x18\xf9\xc3\xc4\xa3\x1eV\xe2|\x83H\xdb\x16\x1a\x1c\xf5\x1d~\xf1\x94-K\xcfr\"\xc1\xa3P0N0\x1d\x06\x03U\x1d\x0e\x04\x16\x04\x14\xab\x84\xd2\xac\xab\x95\xf0\x82N\x16x\aUW_\xe4&\x8d\x82\xd1\x30\x1f\x06\x03U\x1d#\x04\x18\x30\x16\x80\x14\xab\x84\xd2\xac\xab\x95\xf0\x82N\x16x\aUW_\xe4&\x8d\x82\xd1\x30\f\x06\x03U\x1d\x13\x04\x05\x30\x03\x01\x01\xff\x30\t\x06\a*\x86H\xce=\x04\x01\x03H\x00\x30\x45\x02!\x00\xf2\xa0\x35^Q:6\xc3\x82y\x9b\xee'P\x85\x8ep\x06t\x95W\xd2)t\x00\xf4\xbe\x15\x87]\xc4\a\x02 |\x1ey\x14j!\x83\xf0zthy_\x14\x99\x9ah\xb4\xf1\xcb\x9e\x15^\xe6\x1f\x32Ra^u\xc9\x14\x31%0#\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x16\x04\x14?18\xec\xb9\xf1\x45\xe1>\x90q\r\xc1(\xbaNo\xa0\x9c\xed\x30\x81\xd8\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x81\xca\x04\x81\xc7\x30\x81\xc4\x30\x81\xc1\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x01\xa0\x81\x8a\x30\x81\x87\x02\x01\x00\x30\x13\x06\a*\x86H\xce=\x02\x01\x06\b*\x86H\xce=\x03\x01\a\x04m0k\x02\x01\x01\x04 \a\x0f\brz\xd4\xa0J\x9c\xddY\xc9M\x89hw\b\xb5o\xc9]0w\x0e\xe8\xd1\xc9\xce\n\x8b\xb4j\xa1\x44\x03\x42\x00\x04\xe6+i\xe2\xbf\x65\x9f\x97\xbe/\x1e\r\x94\x8aL\xd5\x97k\xb7\xa9\x1e\rF\xfb\xdd\xa9\xa9\x1e\x9d\xdc\xbaZ\x01\xe7\xd6\x97\xa8\n\x18\xf9\xc3\xc4\xa3\x1eV\xe2|\x83H\xdb\x16\x1a\x1c\xf5\x1d~\xf1\x94-K\xcfr\"\xc1\x31%0#\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x16\x04\x14?18\xec\xb9\xf1\x45\xe1>\x90q\r\xc1(\xbaNo\xa0\x9c\xed\x30\x31\x30!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xd0\xb4\x17\x1a\xdb\xa3'\xd8\x9e\xd3\xf2\xb3>\x96\a:\xf2j\xc2\x1c\x04\b\xb5\xa8\xb9\xdb/\xf1\xa4\xcd\x02\x02\b\x00", }; -static const size_t kLen186 = 982; +static const size_t kLen186 = 2636; static const char *kData186[] = { - "0\x82\x03\xd2\x02\x01\x03\x30\x82\x03\x98\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x03\x89\x04\x82\x03\x85\x30\x82\x03\x81\x30\x82\x02w\x06\t*\x86H\x86\xf7\r\x01\a\x06\xa0\x82\x02h0\x82\x02\x64\x02\x01\x00\x30\x82\x02]\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x06\x30\x0e\x04\bAF\"\xac\xe7\xd6~a\x02\x02\b\x00\x80\x82\x02\x30\x9a\x05UZ\xa0\xf6\xd4\x8c^\x1c'\x91\x11\xfd\x1d\xe8\xfd\xae\xf2\xe6\x9f(\xb8\x1e\xfa\xce\x88\xb4#\xd6\xfan\a\xe9\x33\x81p\x1d\xd0^\x94\x04\xf1`\x8e\xbf\xe1\xef\xf4\xd7\xb2/\r\xe9p+\xe8\x62\xfc\xd3*I\xf3\xf1\x06o*\x94\x8c\x42\xff\xc6\x80\xa8j\xbf\xa3\n\xd3\x8eYR\xea`\xe8Zd#\xac\x8d@-\xc9\xfe\v\xf3\x93R\xc3>\xea\x34\x9a\xea\x42j\xe4\t%D]^\xb4;\xfb\xe0\xc2\xdf\xd8\xaf\xae Y\xb0\x8c\xdd\xb3J_\xcal/\xe3\xb4\x99\xc6\x8fu\xc5r1\x0eLF\xe6\xe1\xbf?\xdf\x02}\xde\x35\xad\xd9\x9d\xcbt\xa7\\R;\xc2\x9cv\xbd\xf7\x96\xfc\xc5\x9d\xc7\xa7y0\xa0\x89\xd6\xd3\xa8\xe8\x63\xd2:?\x88\xc1\"\x8c \x9c\xa0#\a\xc3\xe4\f6\x19\xa8\xa3\xc4\xbc\xbc\xd6=\x80\xcbT\x91\xc4\xab\x02\xd2\x43\x30\xe5\x01\xbd%\xcd\xe4)U\x0fn\x83\xb8\xfbp\xf2\x34\x9a\x15\xc6\x16\xdf\x89\xe4\xd4\x83&\bb\x05\xa6\xea\xf3\x63\xc3\xb5ib\xf8`\\(!Q\xa4\x43v\xdd\x41m\xbdm\x8e\n\xbaI\x1b\xe2\f\xb6\x85\x9b$<\xdf&\x9d\x05Pd\x12\x96$\xdbMy\a\xa7\xb2<\xf9\x42\xca\xdag\xc0m\xf2~\xbc\x1e\\+K\xf6\xf4\x35\x82pk\x81\x16\xfc\xf1\xa9_\a,\xe9\x1e?0\x82\x01\x02\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x81\xf4\x04\x81\xf1\x30\x81\xee\x30\x81\xeb\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x02\xa0\x81\xb4\x30\x81\xb1\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x03\x30\x0e\x04\bo\xb9\x01\x93l\rM\xe1\x02\x02\b\x00\x04\x81\x90\aBjZLAA8\xe4\x15\xc2\x85N\x88\xc6\xd3o\x9f%\xd8\x66\x86\xf3\x65]QC\xd6\x03\x91L\xeb\xbbu\xce\x8b\xf4GCL\x1aKH\x92\xf4\xaf\n_I\x96\xea\xaf\x31){\xa3\xb5\xd3\xe4g\f \x0eR\x9e\xcf\xcfj-E8Ra\xbf\x10+\xc1\xc5\xde\x04\x1d\nR\x88\a9\xc2\xc1\xd0\x44\x39\x9f\x46\xf2i\xa4\x30[\xe4`hi\xb0\x95x\x05\xef\xe1\x81\xc2\xd2N)R9Q\xfc=(\xe1{Xv\xcf\x35\x33/\xef\x95v\fR\x11i\x17\x90q\r\xc1(\xbaNo\xa0\x9c\xed\x30\x31\x30!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14R\x8c?r\x8c\xcf:\xeb\xc8\xff\xc2\x8cHB\xa6\x1c\x42n\x18\x43\x04\b\xea\xec\xdc\xf6\xc4\xdf\xda\xd6\x02\x02\b\x00", + "0\x80\x02\x01\x03\x30\x80\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x80$\x80\x04\x82\t\xef\x30\x80\x30\x80\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x80$\x80\x04\x82\x05w0\x82\x05s0\x82\x05o\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x02\xa0\x82\x04\xf6\x30\x82\x04\xf2\x30$\x06\n*\x86H\x86\xf7\r\x01\f\x01\x03\x30\x16\x04\x10\xacq\x8a|\x89\xcf\xa8\xb0\xd6\xd1\a\xf0\x83Oz\xd0\x02\x02\a\xd0\x04\x82\x04\xc8\xeaQ,a\xaa\x9d\xf3\x90\xe1\x38\x45\xb0_\xfd\xe2\x04\x65\xe6\xff\x87\xb6xi\xb0\xcb\x14\xe9\x99\x39\xe3\xe5p\x84Wh\xf7(\xb9u\xa6\xfb\x16r\xe1\x34\xb8;aQ\x89\x18\x94@\xefs\xda\xdb\xd7\xb7\x44s\x8f\x16\x84\xa2\x99\xa6\x05^t\xae\xe2\xcf>\x99\xca\xcdv6wY\xec%Y=KE\xa5N{z\xc9\x8b\xdeOpm\xb1\xa8\xf3\xb6\xb5\xe7g?\xe9\x64\xb8I\xf4\x11\x94\x9d\x1c\xb0\xa5\xfb\xb3\x61\xd4\xf3\xa7hf\xd7\xa4\xf0\xcd\xc8@O>\xa7&@vd\xa1N\xf1\x91\xc2\xa3\xef\xbc\xcd\x42\xe5\xd2o\xff\xfeM3\x01\xb4\x99\x63\x1b\xd3\x01U\x00\xa6#\x9b\xa9\x17\t82\x18\x36\xbc \x02\xfe{\xec\xd3L}\xc9\xc9\xce\x66;4n\xea\xf9\xb1\x1a\x83\xa3<\x8d\xc7y\xc9\xffk\x1d\x35\xf6*=;\x83\x16\x64\xcf\x9f|1\x02\xda\x37\x1a\x16I\xdc\xd9p\xae\x99,\xc7\x01\xba\x42\xab\xe9M\xa4x,\xbd\xa0\xf1\xb7\xcf\xdd\xc1\xdb\x8f\x04\x87\vGO\xd5\xd5\xe7\xfcnB\xd5\x91M{\x1b\\<\x02p\xdb\x05\x91\xaf\x35\x43\x05\xc2m\xcfY#\xfc\xc4\xf6g\xf1\x84\x61J\xb6L\x15\x15\xa3\xea\x8f\x13\x15\xe3\xd2\xb5P\xc8\xae\xc8\\\x03\xb5\x63\x93\xaa\x10\xd7V\rn\x13\x45\x8f\xec\x17\\\\s\x91_l\xaf\x11\x13\x32^\x14\xf9\xaf\xaf\x43\x04`\x93\x42\x30\xa6u\xc0\x83\xd2L\xa5\n\x16\x39\xef?\xf7\x9d#\x19\xb9\xcd\xd8|n\xeem.\xffZ\xf3\xb9\xab\xe5\x64\xdc\xc2g0s\x19-\xea\xd2\x19\x1f\x1f\xe0\xd9\xac\xc9\xdb\x38t^1G.\x9e+\xcc\xb9\xe4)\xf8\xb2\xbf\x1b\xbch\x96y\xcf\xaf\xf2\x1fW?t\xc4qc\xb4\xe8\xbeX\xdb(b\xb5y\x8b\xe4\xd0\x96\xd0\xda\x0f\xd2p\x93/q\xe0\x9f(\xb7R8\x9c\xcb\x8b*\x8e\xbf\x0e=`\x05\n\x91[\xb5x\x10\x31\x00\x80\x31-\xd7\xb0\x88\xc7\xd9X\xc6\xfc;\xf4\xee\xec\xba\x05\xae\xae\xff\xcf\xd0q\xc6\xe7\xf3\x8b\x64Pz\t\x93\x0f\x34Y-\xdeK\x1d\x86I\xff\x63v(kR\x1b\x46\x06\x18\x90\x1c-\xc5\x03\xcc\x00M\xb7\xb2\x12\xc5\xf9\xb4\xa4j6bF4*\xf0\x11\xa3\xd6\x80!\xbf;\xfd\xc5%\xa0M\xc0.\xc0\xf1{\x96\x11\x64\x8e\xb9\xdb\x89N3\x89\xf5\xc6\xfc+\x99\xf5\xc2\x04\x83\x15G\xa8\xa5\xc1J\xe4v\xab>\xf0\x9b\xb7\x8d\x46\xd3R\x9b\xbd\xfd+\xbas]#gh\xe1voV+\x17\xe4~\x9a\xfd\x05H9\xc9\xcf\xa5\x83\xf7\x90\x9c\xa4(W@\xe9\xd4K\x1aKoe\x14\xca\x43\xc1?|\xec\x82G\x0e\x64\x8bo\x8c\xb2\xf0m\xeboq\x8f\xcc-`+\xc3\x9f\x13\x94\xc7#\x02\xf5\xe6\xdf-\xa9\xdb\xa9\xf3\xee\xe9?*i$kx\xffj\xd7\xe4i\x8c\x17\xd5\xc1\x36\x1a\xcaw\xb0\xb5k\x96J\xb5\x0eM\v\xd6\xd9x\xc5\xbf\xe3Y\xfe\x63\xe3\xd3<\x9a\xfa\xd7i[\xef\xd3\xa4\xa3\xb9\x1f\\@ \x95\x38-\xf5\x04\f,yw\xc1\xb6\xcct\x94\x42\x06\xe7G7=\xf5\xda>*:\xc0#\xd9J&i\x13\xa6\x93|\xf2\xaf\x04^\x9b\x88\xc7w\xd0\x93\xab\x1b\xbd=i\x90\xab\x41\xa9\xbc\x84\x18M)\x02\xc1\xf8\xff\x63\x18$t\x8f~D3\xaf\x88\x8b\x93[\x9a\xaek\b\xa2\x82]\xf3\xbe\x61\xc3\xf0-1L\xb5\xb5\x91\x0f\xfa\x81\x61\xad\xfc\xba\x91\xeb;\x9d\"AE\x0e\x8e$\xc7\x1c\x81\x95\xa8{d\xed\xa5\xecZh<\x85\x8d\x92\xb7$\x0f\xed\xf5\xc6\x31\x61\xdc\xef\xa7\xcb\x8f\xda\x43\x05\x42\xf6\x9e\xbc\x1b\x9a\xa1\xe8\x1d\x8d\x42\xdb\x80\x83UR+\x95\x00\x05\x82\x84\xc3T#\x8e\x1d\x00\xa2\x16>\xce=\xcc\x9e\xb8LY\xb2\x12\xa2#\xc1\x46P\x86\xaeu~I8w\x94\xf0'\xd8\x17\x38\x8c\xe0s\x00\xfb\xaf\xbf\xe8\xed\x85X>\xb4\x88\x04\xc8\"\x1b\xb4u\xa2\xc4\xdd\x06\xd2\x83\x42!W\xfc\xd8\xae\x9c\x0e\xd8jp\xd1\xeb\x44\x9c\xb7\x37\x04\x05\xf5\x17\xbe\xf3V\x1b\x06\x36\x1cY{e\x8d\xbb\xbe\"\x9ap\xa3\xe9`\x1a\xc9\xdd\x81<-N\xc0\x8a\xe5\x91\xa7\xc1\x80\aGztO>J\xdc\xb2\xcc\xff\x37\x66\x05\xcb\xd6\xe9\x90\xf5\xef+~\xa7\x66Q\xcbH\xb3\x8ao\x06\xba\x8b=56\xdf\x0e@\xe5\xa1\xe3\xdd\x89\xab\x64\x9c\x01\x15\x9e\x93\xea\xf9O\x9e\xf5\x8b\xf2\xc2\xbb\xe5\xc3\xa3\xe3\x13\x63O} \xe4\x66\x96\x84\x8d\xd4\xcarR\xdc\xb8\x93\xd4\xa5>nBV\x80\x46w\x86I\xfe\xf3\xb4[7\xfc\xb8\f\xd7\x63\xac\xa4\xf6\xe6\xbd\xa7p\xd4\xdc\x9b&\xcb\x31p\xaf>\xa4\xb6\x8d!1g55\x86g\xd1\x02l6v\xc9 \xf6\x0f\x30\x41\x83\x19\xf5\xe1\x33\x90\xbc{\x8c\x9b\x8ah0\x9e\xed\xf4\x88\xc9\x04\b+\xb0\x0f\xae\xc7\xe0nR\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x39\x30!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xe0\xf7\xa1\x1b\xf6?\x05\xadUj Lq\xca\x62G\x13(\xd5\x05\x04\x10>\x87-\x96\xea\x80K\xab:\xb9\xee\te(\xbc\x8d\x02\x02\a\xd0\x00\x00", }; -static const size_t kLen187 = 2566; +static const size_t kLen187 = 982; static const char *kData187[] = { - "0\x82\n\x02\x02\x01\x03\x30\x82\t\xbe\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\t\xaf\x04\x82\t\xab\x30\x82\t\xa7\x30\x82\x06\b\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x05\xf9\x04\x82\x05\xf5\x30\x82\x05\xf1\x30\x82\x05\xed\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x02\xa0\x82\x04\xfe\x30\x82\x04\xfa\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x03\x30\x0e\x04\b\xb7 UZM?\x0e\x89\x02\x02\a\xd0\x04\x82\x04\xd8:\xcc\xd6\xcbMT\xc0\x04V\x10\xccI\xe4\xe0\x10s\xfb\x1a\xdd\x1dOnU\xe3\xa4\xab\xf9&\xaa\x42T\xa0\xd1\xf0\x8d\xbfq}\x18\x00\x17\xb3\xb7\x63P\x8d,\xeb/\xe3\xc3\xbf\x93\xc8\x46H\x99G\xe2;\x8dq\x01_Y[a~\x1f\fn>\xc4t\x99\x98\x30\xff\x37{0\x19\xb5\xfci\x94_yi4\xda\xb5!\xcf\xfer\x87\xe8})~'%\x90\x80\x98\xdd\x8d\xbf\x42\xb0\x10\xd8}m\xfeo\ra\t\xfd\xb2\x9b\xeb\xbf\x1c\xca\x33\xbcN\x19RUS\xb4\xa5\x98l\xa3;\xf8\xa4\x8dy\xcf@\xf2\x89\t<8\xab\xae\xf4\t;\xb6\xcb\xdd\xd7\xad\xe0Zqd\xc9\x0f\x18\xac<\x12\xd4\"T$\x1a\xa5\x35x\x99\tJ\x18\x95#\xb9\xf7\x89?\x13\x43\x1f\x8dvk\x04\xdb\x64\xf4\x8e\xf5P\xa0\xae\x1c\x8c\xc8\xf3\xde\xf3\x11-\xfev\xf0\xac\x46T#\x03I\xfas\xcd\xe0\xa1lfM\x1b\x99W=aa\xeb\x61@\xc7\xd6\x41\xbe\x63!\x1e~\xb5\x0e\x94\x93\x37\x41\xe8\x91\x06\xd7\xa3\x33x\x17\x17Yx\x8f\xaf\xed\xf9\x90\xfb\xb6\xc8\xa9\v\x10\x1a\xf1\xab\x10\x11\xbc\x7f\xa5-4}{\xaf\xc8\xb2\x00k\xd4\xbb%\x9b\xc7\x14\x8bP\n\xd5,\x1f\xa0_\a\x1d^\x1a\xa4K\x85\xb2\xa6\xe2\xdd\xb7\xda\x11%Q\xbfrPS\xa1=\xfa\x1d\x34u\xddz\xe0\x90V\x14\xc3\xe8\v\xea\x32_\x92\xfc.M\x0e\xfe\xba\x1a\x00m\x8fu\xacILy\x03.\xf2\xcc\x8e\x96'\xb8\xe9\x1f\xd8\xe0\x06\x18\x1b\x8e\xb8\xa3\x96\x34\x19;\f\x88&8\xe7\x65\xf6\x03O\xc8\x37n/^]\xcd\xa3)7\xe8\x86\x84\x66\x37\x84\xa0IN\x8f;\x1a\x42\x9f\x62\x1f+\x97\xc9\x18!\xd2\xa5\xcd\x8f\xa4\x03\xf8\x82\x1e\xb8>kT)u_\x80\xe6\x8f/e\xb0k\xbb\x18n\r2b\x8c\x97H\xd3\xaa\xf2^\xb8%\xbc\xb5\"J\xac\xcf\xdc\x8bH\xfc\x95\xf2\x17!\x1e\xda\x13\xd3\x1b\xe2\x37\xd5\xbf\x92\xe4\x81\xf5\x98WQ\x14\xda\x80}Jj\xce\x17\xaf\xdb\xc3.\x84;\x1e\x02QJ\xc1%\x8cZ V\xee\xecY\xcf\xd7>_9\x9f\xbfMN\x94\xb1\x1d\x83p\xc0\xab\xff\xfa|.[\xfbW?`\xb8\xf3\x36_\xbfj\x8co\xe0\x34\xe8u&\xc2\x1e\"d\x0e\x43\xc1\x93\xe6\x8a.\xe9\xd9\xe0\x9fVP\x8a\xbdh\xf6WcU\xbb\xe7\xfe\"\xca\xdc\x85\x38\x39\xc8\x66\x02(\x0f\xe0\x1c\xd6\x0f]j\v\xd8\xe5j\xebT\xb2\xe0\x02o\xe2\x42\x89\x66\xc2\xd5\xc6\xe2\xb2\x04m\x8a+H\xc2Q\a\x8e\xf3\x91\v\xb7Un\xbb\xbf\x11Z\xcb,\xb3\x1e\x61\xd3\xdb\x90\xad\xba\x10\x96\xe2\x16\xf4\fG\xbd\x64\x66z\x17\x63\xb9\x02\xcbSz5\x92t\xc3*}\xc5\x11\x18/\xa3\x62,\xc0\x87\xd3\xd3\xba\xcb\xe0\x86\x9bK\xc5Y\x98~2\x96U\xc1=Z\xcd\x90-\xf8\xb7\xa8\xba\xce\x89\x64\xa6\xf3\x1b\x11.\x12\x99M4E\x13\x66\xb7i{\xc5y\xf5k\xc2\x1d\xc8?\t\x18\n\xfc\xf7\xaf\x98\xc2\xc7\xcc\x85)\xc6\"zw\xab\xb5\xac\xf7\x9ep\x8e\x7f<\xf1\xbd\xd9z\x92\x84\xc5\xb8V\xc3\xcb\xf7%\xad\xda\x0e\x1c\xe4hf\x83\x91x\xf1\xe7\x8c\xaa\x45\xb6\x85t\x9b\b\xff\xac\x38U\xa5j\xea.uq\xd3\xa2\xdc\x1c\xc0\xc7\v\xa9\xd5~\xf9\x63\x82\x87\xb7\x81\x01\xb9\x31\xdf\x41\x35\x0e\xe2\x1fH\xbf`\xce\xb0\xb4\x38\xa5\xb4v\xa3\x80\x1f\x93W\xf2\x05\x81\x42\xd1\xaeVm\xc5L\xab\xa6$*\x02;\xb1\xc4u\xcf\x15\x90\xb5\xf2\xe7\x10i\xa0\xe3\xc4\xe6Rc\x14\xb4\x15\x91\x8e\xbaz\xad-\x9b$t61\xca\xcbKZ\xbf\xd3N\xb4\xc1HDt/\x83\xe4\x39=\x90-2\x12\xf7\xfa\xd3\xe3\xdbO\xe6\xe7 ,W\xc0\xf9\x80\xe1\xdc\x1c\xf2\x05T5\xf6\xbd\xfb\xbd\xc5\xb2\x82\x32\x63\x32\xca\xf4\xf7\x14\x92\x87\x8a\x45\x37V\x93\xdaO\x04Y\x03$\x93\x1a\vN\xdbX\xbf\xda*\x0e~\x98l\f\xeb!\xf9\xbf\x9b\x1f\xc0\xef\xd3\xea\xcb\x99^\x14>\x10\xfa\xad\x38\xf7h\x9f\xa3\xcc\xdf\xe5\x31\x91\x98\xdet_{\xce\xe4T\xd9Q\xec\xf5K\x17_\x99L\xf8\x00\xe0\x10\t\ad\xae\x61;`\xa3\x89\x38\xc4\x80\xf2\x1e\x11&xr\x05\x97'\xba\x83\x33\x1b\x14K\xc0\xc8\xb0\xcc\n\x9b>L\xde\x12\a\x11\xd5\xf0\xc0\xddp=\xd8z\xf7\xa2\xf2p\xadT\xcegA\x12)\x1f\xe1I_LwA|t%\x9c\x91\xd1\r\xa5\x9a\xb8VL\x01\xc0wQ\x14\xc8\x92@\x9a\xbd\x7f;\x9b\x17\xbb\x80nPd1\xed\xe2\"\x9f\x96\x8e\xe2NTn65\xfc\xf2\xed\xfcVc\xdb\x89\x19\x99\xf8G\xff\xce\x35\xd2\x86\x63\xbc\xe4\x8c]\x12\x94\x31\x81\xdb\x30\x13\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x06\x04\x04\x01\x00\x00\x00\x30W\x06\t*\x86H\x86\xf7\r\x01\t\x14\x31J\x1eH\x00\x65\x00\x65\x00\x36\x00\x64\x00\x38\x00\x38\x00\x30\x00\x35\x00-\x00\x30\x00\x36\x00\x64\x00\x39\x00-\x00\x34\x00\x32\x00\x65\x00\x32\x00-\x00\x38\x00\x62\x00\x36\x00\x38\x00-\x00\x66\x00\x65\x00\x61\x00\x62\x00\x35\x00\x65\x00\x66\x00\x32\x00\x38\x00\x32\x00\x37\x00\x30\x30k\x06\t+\x06\x01\x04\x01\x82\x37\x11\x01\x31^\x1e\\\x00M\x00i\x00\x63\x00r\x00o\x00s\x00o\x00\x66\x00t\x00 \x00\x45\x00n\x00h\x00\x61\x00n\x00\x63\x00\x65\x00\x64\x00 \x00\x43\x00r\x00y\x00p\x00t\x00o\x00g\x00r\x00\x61\x00p\x00h\x00i\x00\x63\x00 \x00P\x00r\x00o\x00v\x00i\x00\x64\x00\x65\x00r\x00 \x00v\x00\x31\x00.\x00\x30\x30\x82\x03\x97\x06\t*\x86H\x86\xf7\r\x01\a\x06\xa0\x82\x03\x88\x30\x82\x03\x84\x02\x01\x00\x30\x82\x03}\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x06\x30\x0e\x04\b\x92\x16mmh\xd3\xb0\xc1\x02\x02\a\xd0\x80\x82\x03P\xeev\xe8`\xbf\xca<-\xe5)\"\xf6\x33\xc3Pj\xdb\xf3X<\xd9|\xd8\xf9\x83\x89\x17\xa8\x1bk\t\xc1\x99I\xb0\x43\x06\xc6\x42K|\x85K\xe6i8\x91\xce=<\x97\xd5\x14O\x15Z\x81Mw@\xe0\xe1\x1ci?\x1d\x65h\xb3\x98\x95\x30l\xb0p\x93\f\xce\xec\xafW\xc6\x9c\x34\xb4+\xaf\xc3^p\x87\x17\xe8\xc9T\x06\xb5\xb7\x83\xff\x46+\xb6jf/m\x0f\x96Sfe\xb8{HU\x83\xd3\xc4\x16\x93\xderY\xf1\x9a\xab\xd5\xd5\xcb$\xa6JNW\xf3n\xca\xb1\xeb}\xdb\x02\xd2y\x89\xef\xa2\x8b\xeeo\xdc^e\xa5\t3Q\xb5!\xc8\xc6\xab\xed\xd5P\x93\x39q\x97\xd3,\xdd\xaf\xb1\xc6\x9bKi\x98\xae\xaf!\xa0\x8a\x90%\xe0\xf4\x8c\xf2\xc3Od\xb6\xc6\x64\x90\xff\x95\n\xcc\x8c\xf4\x86\x80S\x8dQ\v\xcd\x45O\xcf|\xc6\xdf\b^\xa7\xdfO\xcf\x84\xde\xb8Ms@\x06\xbe\x33\x82\xe8\x41\x1b\x9a\xc3[\xb6\xf3\xfc\x32\x98\xcc\xcc^\xd5\xb7\x86\x0f\xc8Yr\xcb\x9a\xc5I\xd4-/P5\xeb\xb8\x10\xa7\xea\xb1\xe2\fj\x84,\xe2z&\xef~k\x1eGn\x98\xc0?\x92$\xe7\x88\xf9\x18x7\x8aT\xa6+[\xf0\xc7\xe2\x98\xa4\xa6.\xc3jufQ\xe8\r\x90\xfd\xa7\xec\"\xb3}\x9d\f\xfer\x7f\x98\xf6\x86\x30\xd3|\xee\xa5\xc5 \x89y\x04\x8e\xa8\xb6\x94pNu\xe5\xa0\xae\x8c\x7frL\xd5\x9f\xd2V\r\xb2(E\x99\xf8@\xd4?BJ\f\x92#\xe1\x17\xafh\xa6\x0f\x1d\x32\r\xf8\b\x8e\xdcyh\xf0\xfe\v\xda\x94-\xa6\xa7v~\xd6\xca\xec|7ROw\xcf\xa3\xcf\x8a\xfe\x89\xd9>\xbc\xb5\x06\xa0!\x91\x89w\x84\x85\x43*e\xecuM\r\x1cy\x0f\x61\xca>b\xbb\x41\xf9L\\;\xde\x33\x8e\xdfQr\x93\xca\xa6\xc7\x16\xe5\xb3\"\xb6.\xbf\xae\x1d\x91\x1dI\x96\xa3%\xd4\xceo\xf0\xfb\xb7\xf5J$\x03TK\x7f\v\xb4\x31\xb4\x33\xb7@\xf0\xd5L\xee\xe3K\x12\x8c\xc9\xa7\x06\xb1\x02Z\x14o\xe2;h\x9b=\xfc\x83J\xcc\xb5w\xe7\xf0\x1bR\xce`\x89\xe2\x45v\xaavp\xc2\xfd!\x8f\x1dg\x1aL\xe8\x81+.\xa9V\n'\x0f\x81\xba\\O\xfan~3}x\xed\xd2\xe3$\xae$\xb2\x1b\x62q\x0es\xfe\x8a;\x98\r\x82\x8e\x8d\x0f\xb3\xe2\x65\x87\xeb\x36\x91M\x8a\xfb\"z#,\xe1\xb6\x94\xb6\x90\x94\xcc\f}\x02\x36V\xda\x45 \x90H\xdb\xa4\xf5'\xac\"I%\xaa\xd8\xa7y8\x80\xc0\x95\xc7\xd1\\\x17|\xa7\xec\xd2\x63\xc6\xc6U\xfex\x99\x06,nO\xfe\xd1[\x8c/\xa1\x42\x03&Z^\xda\xef\x43\xd2\x0e\xf9_\xdb\x1d\x9c\xd1\xcb\x65\x84&\xed\x91\x8f\x16\xb4\x1c\xc0\xb3\x8dy\xae\x9b\xcb\x36m\xcdg\x1f\x87\x11*|\xb1\x8c\xfb\x06\xab\xd2\xd6*\xe3\x45l\xa5\xc0\x19k\xfc\xc3\xb7T5\xda\xdf\x12\x97\\\xacY\xb4\x42%\xef\x04\xf7L\xdbt\xb9h\x8f\xee\x37\n\xc6!\x86\x0fo\x8e\xab\xd5{8^_}\xb9Z\xcb\xce\xa0V7\x13qK\xba\x43|\xc0\xb7\x7f\x32\xd7\x46'X\xfc\xdb\xb5\x64 ; \x85y\xa8\x9a\"\xaf)\x86\xc5\x9d#\x96R\xca\xc7\x9d\x92&\xe5:`\xd6\xad\x8dZ\xd9)\xbe\xd5\\:w\xda\x34\xe2v\xcb\x98\xa4\xf3\x33\xf1h \x83\x95\v\x8d\x93Y\x02\f\x8f\xe4\xc4\xb0\xe7\x61\r\xf9\x80 X@\xea\xb7\v\x1b\xad\xe3\x30;0\x1f\x30\a\x06\x05+\x0e\x03\x02\x1a\x04\x14-wyy\x90\x41u\xf4J\x7f\xf7\x15\x94(b\xf7i\xd4\x44'\x04\x14+/\xd9$\xc3\x8a\x34\xbbRR{\xf6\x0e{\xfe:fG@I\x02\x02\a\xd0", + "0\x82\x03\xd2\x02\x01\x03\x30\x82\x03\x98\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x03\x89\x04\x82\x03\x85\x30\x82\x03\x81\x30\x82\x02w\x06\t*\x86H\x86\xf7\r\x01\a\x06\xa0\x82\x02h0\x82\x02\x64\x02\x01\x00\x30\x82\x02]\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x06\x30\x0e\x04\br\xdc\x9c\xcd\xe8i\xd5\xcc\x02\x02\b\x00\x80\x82\x02\x30\x35\xfd\xeexGq\x12\x87\xc2\xcf\x1c\x12\xc4zhj\xb5!\xd6\xa4\x1a\r\xd3Gk\xad\xf0\xe0\xfcXk\xd1\xf1\x1a\xce\xf5U\xca;\x85\x18~\r\x1e\x33\xcd\xf0\xd1\f&ggD\xbaq\x93\xf8\xa4\xe0\x18\xe2\x1a#\x8e\xb5\xc7\xdc\xe1s\xa9\xa6\x03\xb1::\xbd!Q\x04\x30\xf0\x9e\xb5\xc9\xee]|\xf4\xaeU\xd7\x15\f\xb3P\xa4RIt\x1a\xb3\xe9\xe8\x95MW\x11Z\x8b\xf2\xdb,+y\xb0\xee\x1f\xd2\x02\xa4LD\x1c{\xea\x81\x8d\\\x1dR\xbeh\xf1V\x96\xf1\x14\x62,4\x12\xbc~\xa4YFm\x9e\x97\xd5*3C\x85\x93\x06\xf7\x8a\xc9\xd1\xb5\x91JR\xba\xde\xca\x34\x65K\n\xc8\x8a\xb1\xf1r!@\xc6o#\xf7\x42\xb9\xec\xbb\xf1\x43\x1b\x98n\xba\xe4\xee\x33\xc3Q\xcb\fg~\x19\xb3N \xabZ'\x81\xbbt\xd0,\xa6\x16\x18W\xdd\xcf\xf9\xdc=mS,\x91\xb6\xf1\xe6\xe2\xee\xc3\xc4\x06\x62\x98\x83*\xe8\xc7\xdd\"\xbc\xd1\xeb\x1f\xd5\x33IRr\x01\x84:\x9e\xbd\x98\x9b\x44\xffXfn\x03\x9a\x96R\x9e\x1d\xa2Y\xc5[2\xe1\x9e\xb0\xe0\x8c\xfbLA\x04:NA=|\x01P\x8f\xe9!\xaa\xfc\x8bVd\xe2kHt\x9fW!>\x7fy\x12\t\x84H\xa2\xcd\xdb\xb0'4\xf1\xef<\xe5\xef\xe4\xe2\x1f\x04\x85\xc6\x00P\x19\x65\x1b}\v`\t\xe5\xe1\xd1q\xdc/^\xfa\x86\xf0\x8c\xf0\xf0\xf0\x46\xc5\xff\xc7\xcbo7\x94\xc5\xb7\x62\xcb\xbc\x44,\v\x96\xb7\x1dO\xd6\xb0XP/\xd6\xef\xe6\xfbuL\xcf\xa6#y\xd1\x94|\xaf\xffN a_\x1dyY\\x\xd2\xad\xda\x87\xb9 [gP\x82\x8b_\xb0X\x99\x62\xa6\xd2\x03\x82\xbc\x8e\x89\xba\x9c\xe5 \x9a\x42\x37_[{\xf0\x64\xf2\xc5T\"\x9e\x15\xec\xca\xf7'\xad:\xfb<\xc0\x11\x9eK_A\xf1\xcd\x0e\xca\x9b\xb5\r\xab)vg\x04\x1b\xffR\xc7,\x14\xd6\x04#\xc9\xcf\xf4;q\x93\xb7\xe2/\xe6\x1a\x32\x19\xba\x1c\x93\x87s}Q\x1dku\xbd\x17\xff\xef\xd0\x8f\x65\x37\xa0Hg\x94\xfdjq\xb3?Ni\xa9\xc4\xae\xd1\x9bx\xdd\xeb\x06\t\xca\x38\x13;*\xed\xea\f\xdf\xfe\x1f\x15\x86k\xec \r\x19\xd1\x32\xd6h\xc8&\x04\x91\x46jgR\xba\x30\x82\x01\x02\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x81\xf4\x04\x81\xf1\x30\x81\xee\x30\x81\xeb\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x02\xa0\x81\xb4\x30\x81\xb1\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x03\x30\x0e\x04\b2\xe5t\x9b\r\xcf\xa3\x05\x02\x02\b\x00\x04\x81\x90\x7f\xa7n[s9\x15\x93\x42|\xda\xc0\x16\xa0u\x96=\x95\xc8Rke2\xe5\xce\x62\x9b\xd5\xac\x38\xd7\xaai\"\xcc\xa9\x8dt\x15\x87\x06\xbd%\xd4\xd5\xa5\xda\x12\xd9\xd9GB\x05\xf3\xb7\x17LT\xdb^\x1c\xb9\x1dk\xe2\xa8\x95\b \tq5h\xb7\x1cjl\xfd\x99\xf9+o\xb3SU\xd9\xbe\x8c\xb1&\x12\xab\x8aXh\x84\x9f\xa1\xa6\xebp3\x14\x0e\xf6\xb7\x31\x81y5\xb2\xab\x10M\xe3\x16\xbd\x7f~r\x12\xd5\x04\xd8#\x97\xca&8b,\xb7\t\x00?\x01\xe0\xf7\xff\x12%&\x99\xdc\x31%0#\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x16\x04\x14?18\xec\xb9\xf1\x45\xe1>\x90q\r\xc1(\xbaNo\xa0\x9c\xed\x30\x31\x30!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\xd1\x96\xa3)\xa9\x45\x1d\xad\xa1x\xa7\x1e\x30\xb8v\xd0\x87#K\x02\x04\b\x9c\xff\x9a\xa3\xf5p\xa8\xd9\x02\x02\b\x00", }; -static const size_t kLen188 = 85; +static const size_t kLen188 = 2469; static const char *kData188[] = { - "0S\x02\x01\x03\x30\v\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30\x41\x30\x31\x30\r\x06\t`\x86H\x01\x65\x03\x04\x02\x01\x05\x00\x04 \xfc\x85\xd5\xb6\xc7x\x80\x96t[\x13\xe4\x14yV9\xd1\xa3\x1b\x0e\xf9!\"\x9a\xe8\x03\x91\x98\xf4\xb6=?\x04\b\x91\xc1\x65N\xe5XC\xf0\x02\x02\b\x00", + "0\x82\t\xa1\x02\x01\x03\x30\x82\tg\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\tX\x04\x82\tT0\x82\tP0\x82\x04\a\x06\t*\x86H\x86\xf7\r\x01\a\x06\xa0\x82\x03\xf8\x30\x82\x03\xf4\x02\x01\x00\x30\x82\x03\xed\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x06\x30\x0e\x04\b1$\xca}\xc3%>\xdc\x02\x02\b\x00\x80\x82\x03\xc0U\xe7\x7f\x9c\xd6\f\xd2i\x1dn\x8b\xb8\a\xecJ\xe7\x06g\xd1$\x1b\xd5h\x13=\xd7V^\x15@\xdb\xda\x88\x36\xc9\x02\x96\xb5\xb5\xf7\x81\xef\x88\x1d\x66\x62\xa8\x83\xf7\x91\xb1&\x1f\x9b%x\n\x04\xb1\xc0\x93H\xa2\xf0QO+\xf8\x03ga\x1b\xed)\xfe?\xdd\x83\xa3\x93u\xa7\xd9\x37[\xa7\xc9\xf4R\x86\xd2?\xca\x61\\\x1e\xf9\a}\xbd\xdav\x8a\x03\x8e\x12N\x8fhnrn\xf0\xbe\"\xc7\x9d\x97|E\xc0\xaa\x31\xe1U\x81\xb3\xec\x98\x94\xac\xf7\x15\x9b\x42I\x8c*)z%\x92\x64\x92\xbdN\\\xec\xff\x61\xbb\x8e\\\xc8\xdb\xba\x97\x30\xf4U\x9e\x1b\xfa\xbe*\x90\xcf\xe8\xc0\x9d\xb0\x0e$a\xe7:\xb7\x7f\xda\x63\xaa*J\xa6\x91R\xa6v\xc9\xbe\x9f\x1b\x1d\xa4\t[\x0f\xd1\x64N\xdf\fDY:\xef\x9a\xd8\"\xa2_\x80\xb5O\xbe\x84#\xe3tw<\x9e'd\xac\x65\xf4\xbb\x34\xb7\xa4\xfe\x02\x1a\x88\x05;K\xb8\xd8\xb9&i\"\x97=\x93\x9b\xe8r\xaaM\x8fvQ\x12YX\xf1\x1a\xa3\xdb]\xbc\xea\x84\x19UO\x00\xfb\xe2WG\xca\xea\xbe\x8f\x85\x8b\x1c'\x8d\x81p\x7f\xf1VX\xe1&\x94\xd8/\xde\xac\xc8\xac\xbf\xc3\xc6g\xa6\xf4l\xec <\xbc\x9d\xd9\xd0\xa1N\x8c\x11\x19+\xb3\xa1\xdfj\x8f\xa2\xc3\xcc\xf6\xbd\tz\x96\x61 \xd4\x06\x99Lo#\x9bL\xccs\x8b\x42H\x99\x45\x8f\xcb\xc8\x46\x1a\xfbQ\x03j\xf2\"\x85\x88\x9d\x61\x8b\x16\x33\xf4\xf7\x9b\xc8!O\xb1\xcd\x30\xfc)\x88\x12\xdc\xd4\x30L\xb9\xad\x34\xde\x01\xf8\xc1\x12\xa7M\xc7\x31\x99+E\x88\x06\x34inm4\xd8\xdd\n=Yt61j\xed\x91;[\x88\x43\x46?gf\xe4\xdeR\xb4\xbf{=Ty\xaf\x8d\xf5\n\x80\xfd\xeb\x31$\xbc$\xd7!\x9f\x87\xab\xbdu,\x13\x13\x96\xabv\xfb\xb2\x44\xd0\xd2\x19\xf1\x95\x9a\x91\xbfz{v\x95r\xa9\x16\xfc>\xa9N\x01\x15=Cs\xa3\x8b\xefH\xad\x11\xbdS\xd3\f\x15\x15\x1a\xb4:\xe0\x7f\x9a\xa1\x36Gr\x92\xf0\xdf\xb0\xe2\xbc\x35\xd4\x32k7iOG\x9a\xe2\x35\x8a\x31`\xed\x80W\xe2\x9dX\x9c\x7f\x46\xd2T\x0e(S\x8b\x1f\x46\x34\"\xacq\xc7\xca\x0f\xb4\xb7z\xfc\x34W\xa5\x86\x8d\x66\\\xc7:\xdb\xf8y:\x8a\xf6\xa2\x1e\t\xc9\x10\xe9\x93:\xc5\xed\xb2\xca\xbb\x66\xf1\x9d\xc9\x9c\x42ud>\xe4\x12+g\xf8\xbf+\x98]\xb6\xa0\xbay\x98\xe0G\\w\x85N&q\xfe\xab\\\xa8\x32\x93\xec\xd0&\x90\xe4\xda/4\x8aP\xb8;{L_\xa9>\x8a\xa8\xf3\xc0\xb7P\vwN\x8c\xa0\xaf\xdbY\xe7\xac\xd1\x34NbG.\x1e^\xb4\xc9\x64\xf8\x0f\xf4\xf8\xb6\x9a\xe3~\xcf\xb7\xee\x11\x14R\x89;'\x98\xfc\x95\xa7\xad\xbf\x61\x34\xad\x1a$*Hfeu\x9cY\xc0O_=Z\x8c\xee\xd0\xb1\x17m4F7\xa0\xbaq\xacws)\xa3\x37O\x02\xd3\x7f\x0e\xe8\xce\xff\x80\x11\x45\x42\x03Z\x87\xaa\xff%\x12\x1f\x43\x19>\xa9\x62\x96\fo3\x88\\\xaa\xf9\xe2\xb4\xb9\xf7U\xae\xb5vWG\x83\xe3\xfa\x05\xda\x86\x02\x97\xb4`\xaeY\xd5l\xc1\x33\xe1\x36\x36\x94y\x9e\xad\xa3-\xbc\xb5\xa2\xeb\xdd\xcd\xcbHB\x15\xb8\xe6\x0ev[Wt$\xe6\x89\xc4\xe8\b\xa9\xfe\xb3#\xa6\xcar\xe2\xe4\xcb\xc1J\xd1\x1d\xb9^6\x97\x19|\x15H\xf1-\xeb\xec\xadRo/\xe1\x19\xcf\xcf\x98\x13\r\xcc\xb2\xa6\x8a\xda\x93$=]\x83\xfe\x8d\x9eG\xd8n\x8d\x06R}F\x84\x04i4a\x04P\x1f\x86\x92\x94\xe9\v\x13[\xf6\x16\x81\xeb\xfa\xf1\xbb\x04h\x17\xca\x35o\xbaNL3\xce\xf4&\xb7t\xab\xa5\xd0\xaa\r\x85\x11\x30Xb\xdfH\xc7\xdf\xc9\x38\x9eo\x96#/\xc1\xd4\x8d\x65\x9b\x46_\x9c\xea&`\xb5\x95\x85q\x18\xc3\xf4Ta\xca\xfeU;\xbe\x81\xaf\xd9:'\xe9\x1c\x30\x82\x05\x41\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x05\x32\x04\x82\x05.0\x82\x05*0\x82\x05&\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x02\xa0\x82\x04\xee\x30\x82\x04\xea\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x03\x30\x0e\x04\b\xd9h\xcb\b\x16\xc8\x93W\x02\x02\b\x00\x04\x82\x04\xc8|\xdb\xa6\x1e\x33\xa4\xc6N\x13\"z\x1f\xc6\x82\xab\x93_\xf0\xa4\xe4@\xac\xdf\x16\xec\x8d\x1f\xd9\xe4\x03\xd6\xc9\xc4\x1d\xfd\xa3\xe3\xba\xfc\xcb\xd0Ge\fn]\xfc\xd2\xd4\x63\xa7\x93\xf6\x8a\x44\x8c\xfe\x84\xd8\r\xa6\x16\"\xe1\x65\x10^\x18\x44X/\xc7\x64t_\xcfs4\xe1K\xe4\xb3[\xdb\x81K\x1c\x38r\xa6\xc5\xebV\x9b\xc7\xe3=Tn\x05,\xd3W\xc9O\x80\x1e\xd7\xd8&j\xcbyFp\xfc\x45\xa7y\xab\x01\x03\xb6\xb1\x44\x41\xd9s7\xaa\xd7\xf9\x44\x93\xaf\xbb\xb5w\xeb+ .\xbd\xea/\xde\xa6/\xd6\xact\xa5\x34\xfb\xdf\xf7\x02\xa2 \x15\xc8\x61r\xbb\x7f\x04\xf6\x0f\xf8~\xc3\xe6\xab*\xe6\xd8\xe1\rZ<\xc0X\xae\xf8\x1b\x15<{\x7f\xf5\x9f\xec\xf7?0O=lD\xdd\x0eL,\x93hC1\xa8\x97K\xf6\x66q*R>:\xe6r\x8a\xe6\xe3\xc8\xff\x65h\x1a\x46!\xb3\xf0\x46|\fe\xd1\x8e\xa4\x91\x11\\\x93\xeb\xeb\xae\x46\xf4\xbb\xf8\xf3~ 0\xf8\xcd\x19\xcdT\n\x7fO\xe8\xac\xa9\xacr\x96\x80\x45*Jc\x90\x01\x19\xd0~&S-\xc4 \xa5\x1f\x89g\x0f\xd9uQ\n\xf1\xd4\xfd.\xbe\xe6\x94;l\x8c\xe3\x0f_\xceXH\xde\x8d\xeb\xd3\xe1\n\xcd\xdf\x34M\xd1[\xab\x41\x41k\xeb\xa1/\x01Jr.\xf4^Dv\xc7\xe6\x16\xb9\xfb\x10\x37\x00-\xc6;\x17r!\xdb\xac\x86{\xf5p?s\xa3\xce\x0e \xbbYL#\xc2\xe8\"\"\xe0\x02\r\xe4\xa2?U\x9d\xc0\xeb\x9a\xc4\xf3\xaa\xb8\xf1s\xecG\xe8-k\xa1@\x94\xf6\a\xb9o\x03Zx\xe5YA\x1a\xc7\xcd\x43\x10 (\x95\xe0*o\xf2\xf8\x12\xd6\x13\x7f\x37=8\xa7\"\x91\xc6\xe3R\xde\xd8\xbfx\x9a\xa4\xf7\xc0\x8c\xbf\x81( \xb8\x01\xde\xb5k\nV\x12\\b\x1d\xaf\xb7\xf2tf\nz\xc4\x9f\x1e\xc2\xa8L\xd6vmt57\x12\\\x95\xee\x98\x1d\xe2\x91\xde\x13\b\xd0YMb\x92i\x1b\xf7!E\xaf\x83\xf8\x64\xf0\xfb\x92\x9d\xa1\xd9\x61^\x00\xc8\x1anj-\xad\xa8\x1b\x0e\xaf\xea\xb2\xae\x1c\x89\xc7M,\x0fM\x8dx\x8d\x15\x9dL\x90R\xa1\xa9\xd8\xb2\x66\xb9\xb1\x46\ni\x86+\x0f\xb2\x41\xce\xe8\x8eI\x97\b\vp\x97\xcb\xa4\x33?\x83kl\x17\xce\xd8\xd5\x9b\xd4U\x9b\x99\xe1\xba\x61\x31\x36y1_\xa1\x8c\xa9wB\xaa\x8c\x45n\xb6\x90\b\xe8.\xc4riB\xca\xa2\xd4\x8a,7\xe1\xde\xb8\x98\x36\xeb\xccX\f$\xad\xab\x62\x44m\x80\xd5\xce.J>\xa5\xc5\x34\xf8\x32&*V\xa4\xdd\xe9\x92\x06\xad\xe8\x85wk\xf1\x1b\xeb\xacw\x19\x1cj\xb7\xef(p\x87\x92\x33\xdd\xaa\x30\xc1\xa0\x93\x64\x18\xa2\x91\x7f\xf7\xc4\xa5\x16\x93\xb3[\xd8S(\xc5^\xb1\xce\x97\xbc\xb6\x65\xa8S\xcd\xf4Mk\xeaoo\xa5\x1c\xf1\x0f\xcb\x04%J\xfe}\xfc\xa3\xbd\x41\xd3\x96j\x8b\xad\xd4\xaa\nv\xea;\xab\x39U\xa3\x89\x9f\xf6\xf5\x9b\x9c\x83\xf8(P\xdf\x31t\x83\xdb\xf1\x0fL5j\xe5\x64.\xb9w=\xdd\xff\xa3\xa7\x90y\xc6[\x01\x16\x38\xa8\"\xa3\x14\x13\xed\xd0\x89\r\x1f:ALWy\xfc\x1d\xdf\xad\x1a\x11\x15\x31~\xdb\x99:l\xde\x94\x9a\x45L\xfb\xa5\xa5\x31\xee\xe3\t\x13m\xfd\x19\x37?\xf6\xed\x8f\f\xceK\xd1\xe1=\xfb\x85\x00\x84\x19\xeb\xa2\x63\x1d+-!\xee\bZm\xb0\xb1\xd6\x81\x00\xb6\xd0\t\x90\xb4\x84\x17\xd9*<\x1dS\xc6\xc1\x8b\xda\xae\f\n>\x1c\x8a\xc4\xd6\x97]H\xe7y\x80x\xaa\xde\x17`](\x15:B\xb7\x85\xc8`\x93(\xb0N\xc9\xf7\x46\xe7\xfcN\x9f\x9f\x12\xdf\xcbn\f\xafq\xda\xb7\xec=F\xf3\x35\x41\x42\xd8'\x92\x99\x1cM\xc9<\xe9\x0e\xcb?Wew\r\xdd\xff\xeap5\xcc\xf5\x38\x1bW\xdfm\xcb\xfd\x13\x39\xd6\x04\xe2\xf1\xc2\xd9\xea\x8c\x9f\xfb\xb5\xfc\xe6\xa9\xaa\x0f\x43\xc9\x9c\x91\xe4!\xaf\x37\x14xF\xe1)A\fN\xf5\x93\x1d\xf8\x33Go\x9d\x8b\xf3'\xd4\xbb\xf6\xae\xfa\xa5\x8b\x41\x8f\xb4\xd7/\xc1'\xeapU\x1d\xe2\xd8\fJ^|\x87\xa4\x0e\x84\a\xd3\x38g,U\x11\xfd\x1e\xdaMf\x01\x12\f\x1b||\\\x82!5e\\z\xd2\x66\xc2+^\xb8\xb1\xcb\xdfY\xc9\x31\xb7\x17&\x96^o\x1c\x62=\x8d\x88\xf1\xd1\x01>\xf9o\xb9w\xdc\xee\xeexY\xef\xcf:\x87\x88\xa2\xea\xfd\n\xa9\xa9>\f\xf8\x7f\x97\x32\x17\xc2\x97\xcb\xa4\x9b\xae]\xe7\x39++\xa8\xe6{Qu\x1fST7\xf4\x00\xa4\xb0\xa0\x93\xb4\x33\xe7\xae(\xc0-:\xb3\xaa\xd7i\xad\xdfx\xa7\xd8\xac\xf1\x80\x82\x03\xc0\xcbX\x11(\x1d\xbc<\x8c\xe7{\x15g0\xf3+\x94\x10\x8c\xbe\xfd\xaa\x11\xd7\x99\xee!\xb6\x1bOS\xcb\x44\xffO\xbf\xf6\x43=\x12\xe6\t\xe8\x05\xdd/\xc5\x39\xde\f\x88\xe8N\x89\x8f_\xdf#P\xe6\xb7\xba\x1a\xdd\x1c\x63Q\x0eq\xb7\xf7\x39<\xd4\xe7RP\xc5\xd7\xbf\x65\x94r\x97*\xb9h\xc2\xbd\f\x97\x02t#\x7f\x11k\xea\xb4\xe4/\xf0\x8b\x91\\\xdb\xae\x10\xbf\x89\xbc\x62\xef\x99\xbf\aYX\x12\xef\xaf\xe6\xcd\x30'\xe4\xab\x44\xf7\xf9\x14\xb2]\xfa\x97\xe6\x9a\xed\x85`\x86\xd9\xb0\xd7\xa4\xe4\x00\xa8\xee\xbb\xfc\r\xe8Xz\xca\x02\x1d\x02\xab\xbd\x16PO\xfc`\xdeH\xb1\x7f\xea\xba\x45{)\xfe\x8e\xedH\xd2\x31\x64\xda\x89\x84o\xd1\xd2\xb1{\x97\x19\x38\x16\xd9?\xd6\xdbo\xabV4\xca\x34\x9cWAn\x87\x85*\xa8\xfb\xe9\xf6=\xb6\x83{\x02\xc9\xbe\xf1\xbb\x8e\xe5h\xae\xaa\xe1%\x8d\x1f\x1fRE>\xef\x33\xd8X\xd9H\xd4\xb5\xe1S!\xb5\xbd\xd4\x63\x1f\xbf\xe4\x30^\xc3\x63\xce\xdc\x12\x8c\xc7\f\xea;\xf3\v8\x8d\xcc\x9b\xe7\xa0\x14^H\x9ct\x86\x8e+w\x80\xbb\x85\xa6\xd4%nu\aY\xd6\x88\x00\x35\x03Z\xb0\x86~\x01\xa7wt\x13\xfa\x9f-\xe3\x90\xdah#6\vb!v\xdal\x05\x35\x80\xfc\xee_<\xac`*\x9cnL\xaa\xa3\xd1\xdf,~\x0e\xc0\xa0\x84\xe4\xb2\x33\x1f\x8c\xcbt1\x18[\v\x18\x41\xc6\x87\x13\xa2\xad\x1d\x43^g\xd0\x31\xf5\x61|=\x16U\x01\x94\x45\xa4P\x0f\xb1\x1b\x81Q\xa7\x92\xae\xa3mNUF7\x98\xe1\xe4\\)y\xc9v\n\xb5\x9d\x1b\x8a\xf6\xab\xebin\x17\x88\xeb\x82\xfax/\x8c\x30\xfd\xf1t\xcdSx'C\x82\x05\x37\a\xb3L\x89\x9d\x00\x1ds\xad\x0f\xcd\x63\xbe\x9b\xa9P\xa5\x43t\x86\x87\xbc\xd9\x97\x66\x84\x35>g\xce\x92,x\xc7\x88\x19j\x1c\xa8\x93\vy!\xe5\x39\x1b\x00h*\v\xacj/\xc1\x9c\x90\x18\x86\x63Sr4\xd9\xa8\x92\xce\x64:\xeb\xba\xd8\x31\xf3\xfb*\xac\xc6\xe7\xd1\v|\xfc\xbbiW\xc8\x97=\xdb\x81w*\x9f\a,yi\xbcQ\x0eh\x11\x00\x10\xed\x9f\xb8\x8d\xa0% \xd3=\b F\xfa\x89\xefiL`3\x80\xb9S\xb4{\xab\x38\xf1\xcd\xb8u\xc4\x85\n\xda\xab\x19@\xd3\x88\xd5\xf7_\x8e\xcd\x8e\xa4\x1c\x9c\"m\xce\x66)\xfa\x62o\x01\xdc\x46\x45\x38\x64\xf7\xc4\x94\xfdHDpM\xef\xf0K\x95\xf8h\x8d\xb7\x35}\xc6\xf5\x97\xce]\xad\xe8\\\xebO\x9b[\x03\xce\x33`\xf5\xce\xcc\xfe\xfbw@\xc4\xf4\x9d\xf3,\xdb\x83\xc2\x1a\xf2\xb6\xbe\xfc,\x7f) 5P\x00`\x03\xd2\xb3\x03\x18\x64\xb9\x64\x98\x33\xdbGC\xe2\xa1\x85y\x9b\xb1\v\x0e\xbb\x14_\xb9\x16\xb6\xc3\xf6\\\x01\xe3\xaa?\x03\xad\x18\xeb\x0e=\xa3\x1f\xccMHD~\xda\xb9\x9d\x17\xe8\x92\x46\xea\xf5>\x05N\xa7\xb5\x94m\x95\x42\xa7q\xfb\xc2\x45\xd6\xd2\x86\xd0y\x99\x1f\x96x\"\xeb\x05&\xf2\xa1gg+\xae\x1d(B\xd6\xbe\b\xf6\xb7T\xc8\x82\xbf\x92\x0f,\xbaG\xe2\x01s,\xd7\x34\x84/\xb6\x41\x84\xebz\xb2\xf9\xdd\x31\xbe\a\xb4\x88\x05\xd8\xe1yU\xe6K\x8c\xdc\xd1vXrB(\xb3\x9f\xd0\x05\x37ket\xce\r\x01\xa9I\xc5\x90\xab\x90\x16,\x9c\xba\xcb\x94\xc7\xfa\xe0\x39\x82\xa2\x88\xd6\f\xc4M\xfe\xb4\xbc\x87\xe5\x63;k\xf0\xd1\t9\x8fQO2\xae\xed\f\xffyR\x19\xa9NE\x11\xc3_\xd6+f\xe3\x9c\xbe\xbc\xda\x65%\xcd\xf5sE\t\xf5]k\x83\x45(\x98,XD\xca\x37\xeb\xc3\xc2\x10w\x14y\x9b\xd8\xb2\xbf\x45\xd5\x63\xe4\x37\x42{-\xe2I\xb3\x18\x8e\x86s\xf1Y\x8a\xf2\xd3\x8d\xd6\xb5\x8a\x05\x02\x02\b\x00\x30\x1d\x06\t`\x86H\x01\x65\x03\x04\x01\x02\x04\x10\x61\xa0/\x8d\f\xa1\x03\xc9\xdf.\x81\x65\xe0\x63pU\x04\x82\x04\xd0$\x1e\xf9\x1d\xc4\xe9\xbfI<\x1eUJ\xd4\xb0\f\xdd[\x92\xb2\xed\x18\xac\x66\x90\x1b)=\x10\xad\x02\xe7\x17\x83\x44g\xba\x11o\x05\xf5\xf7\x37\xcbZ\xe9\x0e\xc3K\x1b\x62\xee\xb2\xb7\x14\x85\a-\x95\x83\xa9\xdc=K3\xadh\xbfT\xf8\xef%\x05@\xcd\x61\xbe\x12\xebxu6\b\x8cZW\xa1\x98\xd5\x42\x01\x1bL%\xc2\x18\x9f\x91\xfex\x88\x99GZ ,71\x05\x98\xef\x91n\xeb.\x86\x90\x61\xb1W\x1a\x05\x82\x14\f\xa8\x94\xaeV{\xd6/\x8b.\x91\xa6\x12h\x1f\x06\t/\xa6\xed\x33\x99rV\xe5\xf7\xea\xcc\xcf'\xa5\xadIZ\xbc{\xe3\x62\x63\x8f\x00+\x96\xc5?\xaf$\xba\xf6\x8d\xe2\xef\x18P\xd6\xd8O\xb2]\xb7\x96o\x02\xf7}\xf2\xa2{\x9b\x13\x98\xde\xddn\xb5HR\x8e\x44\xad\xe0\xcf@\x9f\xfd\x88\x33\x66\xcejI_\xe7K6\x93\x7fIb\xc9Z\xae\xa1\xca\xf7Z\xbe\x85w\x9a\x8f\xceM\x84\x81\xd0\xa2\xee`\x92\x86\x16*\xd5\b\xb6Xc\a|A\xac\x97O\xf0\xcf\xd8\xd2\xb1\xd7\x1d\xe5\xb8|\x04+\xd9\xee\xf7\"\x88\xa1S\xdb^[GI\xeb\xcf\x04xi\xd1\xfc\x8a\xa9\x61\x92\xbf\\\x7f\xdeIB\xfc\r\xc2\xa2\x8f\xba\xdf\x12\xa4\x62\xfb\x8d\xd3\xc5\xf9\x85L\x17p\xb7\xf7\x99)R\x92\x36\xc5K1#\\\t'<\xa0v]\x92\x99\x63\x88\xca\xad\xed\xd7\x85\x98/\xbe\xaa\xa5\xf3\nv\x13\x01\x90\x8a\xe7Z-+\x1a\x80\x33\x86\xab\xd8\xa7\xae\v}\xcd\x64\x8d\xa6\xb6\xfb\x83\x9f\x91#\xcb\xda\x63\xd0\xde\xf4\xdd\xaa#IlD\xfao\x12\x13\x90\x37\xde\xa3rE\x1a\xa7\xab\x01m\xd6\x34\xe7Q\x0e\x33\xbc\t\xbf\xb6\x16\xf8\xd3\x11\x11\xd1_\xaa\x32\xb6[\xe7\xbc\xdd\xaa\xe4\xed\x42=.\xf7\xa1\x06\x39\xd4\x00\xc6\xc8\xed\xb5\x96\xc1\xbfL\xf1\xf6\xc6Y\xf4\x99\x9c\x10\"\xa1:\xcd\x94\xac\v\xc8~)\xbc\xf0\xae'z\xb8\\\xa0\x13\x36\xb5\x19K,\xc1\xceIW\x1d\x36\xf0\xc2L\xdfm\xc9\x64h\xcb\xea\"2\xd7\x11,w\xbe\x01\xa3\x82-\xa1K\x13\x93\x87=\x01t\xc6\xc6\xf9\xae.\xa1\x44]Glo\xc6\xce\xef\x32\xf8\x8dSM\xa5\xf0\xa0Q~\xd8\x35U*\x04\xb9\x42\xa7Q\xba\xad\xce\x88{\x93%\x9d\x03\b\xfau8cx\x13\x11\x9d\xf6\xcc\x18\xe3\x99\xa9]\x90k\xbf\x9ci\x99\x63'5\x8a&\ag\xd1\xaeW\xec\xc0\x45n*BF\x8f\xe4\x84\xc7g\x06\f\xa7~\\ \x80\xdc\xc1\xe4ztv\x8f\x41x\xcej\xf9\xcb\x7f\xe9\x17pE\x01\x9a\xc3\x9c\xa2h\xa0y\xfd\x44L\xc8\xa0\xaf\xa5\xba\x0f\x03\x30\x43J\x1d>\xd4\x8e\x1fm\t\xf9\x63\xde\xd2\x9ew\xe7\xde\x61Rv\x0fm7\xf7\xc2i\x96\x9d\xc5\xd9\x15\x10\xf2\"\x1f;\x83\xb3\xb4,%6\xc3:$\x17\xed\xad\x11\x1f\x46\x31\fj<\xd2\x1a\xe7\x41\xb3u\xd8\x80\xb3\xf8+\xab\xb5\x81\xc6^@\x9aw\xaay1\x1fy\xfe\x0f\x0f\xb0\x36\xb7\xdc\xca\xf6\xbf\x80\xebx\xc6sj\xb3qi\x9c\x1d\xdd\x90\xd9s\aC7\x19\x7f\"\xa4\x9aM\x98\x66\x10[\bb\xb3\xd8/Vh\"\xdf\xd1\xa2ZE\xf9\xb4\xb9\xf2HN8\x1a#6mBV\xbb\x32\xe3\x00\x84\xa9\xe2\xba\xb6\x86\xc9\xa6\x64\x8a\xd6\xa6\xc4\xd7>\x8b\x34\x1bke\xfe\xb1\xc9\x93\xe1\xeb\x8a;\xf1\x0f\xdb\x84\xe2-\xf8i\x04\xee\xafX/\xc7\x96pM\xd9L\x1dR8\xc6&'A8\v\xa5\x1c\x16\xd0\x1d\x32\x99\xb9\x1f\x35\xaf\x02\xb0\x13\x0f\x95\xd3\x9b\xd6\t\xcc)F\xe8\xf1TM\xb8\x96\xa6\rYa\x1f\xee\xaf\xbc#X\xff\xcf\x96\x91\x1f\x00\x80N\x9a\xa2\xe0\x00\xf7>\xb1\x91l)X^\xe7\xc7#\xfa\x88\xf7\xfb\v\x0eJ\x04\x46\xe0g\x10\t\xea\xc0\xa9\xbe\x83\x11\x33\x8e\xfb\xd6\xd5g\xef\xb4\x13M\x17\xa1\x44\xb7\x98w\xd0\x63\xe7\x9c\xa7\x96)\xe5\xferL\xa9\x85\x9b\xc9\xf3\xf6\x05\n(h\x99\x31\xe8\x64\x30\x9c*\x90H\x84\x00\x1a\x66\x0e>\xf7\xaa\xc9l[W{\xa9\x17\x91\x1ek\xe8\x12\xa1\xd4\xde\x1e\x38\x14{\xe0\x9a\x15\xaeZ&\x93z\xd6\x8d&a(\xf2@q\xc7\x8a-ir\x04[\xb9\xc1{\x17\xde,\xfc\xa9\xf2\xf8\x34\x33\t\x87\x91\xdf\xeb\xf7W[2\xe2\xd4\xe4Gx\xe8\x9b\x1a\xab\x44U(\x98 \xa7\x16\x8bNB\xf1\x91\xbe\x00\x87:\x91\x63\x9a\xc2\x8d\x13\x34\x8b\x33\x02\x88\x1e\xb1\xa8\am\xb1\xf5\xb3z=\x17?\xbd\xa1\xdb\x04\x0f){\x0e\x98\x18\x63\v`\xcd\xa5\r_\x1eS\xcd\xfa\xc0\xc7\x99S_\xb7\xe5J0\xde\x14\xc9IF1\xb6\x92\xf3K\xc1\xb0\xdd\xecH\xff-RSd'Lx\x96\x80\x90\xa3\xd7\xfdz#6\xa0v\x9e\x96\xfc\xcd\xecX\xf8vK/\x8d\xb9\xd6\x89\xa1W\xe1\xc6\xed\x9a\x1e\xde\xc7h\x93+.\x84\x1a\xf9\x8cX\xb8\xf0)\xfe{\x03\x84\xe8R\x1c\x01\xbb\xcc]\x88\xcd\x37\x8b\xe2-0\xd1\xbe\xf7\xc1\x95\xb7\x01\x43\xab\x30?\x96GmR)\x87\x10\x31%0#\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x16\x04\x14\x14t-R\x8e\r\f\x06l2d\xd3~31h\x8b(\x1au010!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14/\\\xc6\xaf\xa7\xcc\xb5w@\xcaq\xc3\x8c\xc6i\xdc\xc6\x7fT\xef\x04\b\xf8\x9c\x8b\x12'\xe8\xec\x65\x02\x02\b\x00", }; -static const size_t kLen190 = 74392; +static const size_t kLen190 = 2691; static const char *kData190[] = { - "# RFC 8439, section 2.5.2.\n\nKey = 85d6be7857556d337f4452fe42d506a80103808afb0db2fd4abff6af4149f51b\nInput = \"Cryptographic Forum Research Group\"\nMAC = a8061dc1305136c6c22b8baf0c0127a9\n\n\n# RFC 8439, section A.3.\n\nKey = 0000000000000000000000000000000000000000000000000000000000000000\nInput = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nMAC = 00000000000000000000000000000000\n\nKey = 0000000000000000000000000000000036e5f6b5c5e06070f0efca96227a863e\nInput = 416e79207375626d697373696f6e20746f20746865204945544620696e74656e6465642062792074686520436f6e7472696275746f7220666f72207075626c69636174696f6e20617320616c6c206f722070617274206f6620616e204945544620496e7465726e65742d4472616674206f722052464320616e6420616e792073746174656d656e74206d6164652077697468696e2074686520636f6e74657874206f6620616e204945544620616374697669747920697320636f6e7369646572656420616e20224945544620436f6e747269627574696f6e222e20537563682073746174656d656e747320696e636c756465206f72616c2073746174656d656e747320696e20494554462073657373696f6e732c2061732077656c6c206173207772697474656e20616e6420656c656374726f6e696320636f6d6d756e69636174696f6e73206d61646520617420616e792074696d65206f7220706c6163652c207768696368206172652061646472657373656420746f\nMAC = 36e5f6b5c5e06070f0efca96227a863e\n\nKey = 36e5f6b5c5e06070f0efca96227a863e00000000000000000000000000000000\nInput = 416e79207375626d697373696f6e20746f20746865204945544620696e74656e6465642062792074686520436f6e7472696275746f7220666f72207075626c69636174696f6e20617320616c6c206f722070617274206f6620616e204945544620496e7465726e65742d4472616674206f722052464320616e6420616e792073746174656d656e74206d6164652077697468696e2074686520636f6e74657874206f6620616e204945544620616374697669747920697320636f6e7369646572656420616e20224945544620436f6e747269627574696f6e222e20537563682073746174656d656e747320696e636c756465206f72616c2073746174656d656e747320696e20494554462073657373696f6e732c2061732077656c6c206173207772697474656e20616e6420656c656374726f6e696320636f6d6d756e69636174696f6e73206d61646520617420616e792074696d65206f7220706c6163652c207768696368206172652061646472657373656420746f\nMAC = f3477e7cd95417af89a6b8794c310cf0\n\nKey = 1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0\nInput = 2754776173206272696c6c69672c20616e642074686520736c6974687920746f7665730a446964206779726520616e642067696d626c6520696e2074686520776162653a0a416c6c206d696d737920776572652074686520626f726f676f7665732c0a416e6420746865206d6f6d65207261746873206f757467726162652e\nMAC = 4541669a7eaaee61e708dc7cbcc5eb62\n\nKey = 0200000000000000000000000000000000000000000000000000000000000000\nInput = ffffffffffffffffffffffffffffffff\nMAC = 03000000000000000000000000000000\n\nKey = 02000000000000000000000000000000ffffffffffffffffffffffffffffffff\nInput = 02000000000000000000000000000000\nMAC = 03000000000000000000000000000000\n\nKey = 0100000000000000000000000000000000000000000000000000000000000000\nInput = fffffffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffff11000000000000000000000000000000\nMAC = 05000000000000000000000000000000\n\nKey = 0100000000000000000000000000000000000000000000000000000000000000\nInput = fffffffffffffffffffffffffffffffffbfefefefefefefefefefefefefefefe01010101010101010101010101010101\nMAC = 00000000000000000000000000000000\n\nKey = 0200000000000000000000000000000000000000000000000000000000000000\nInput = fdffffffffffffffffffffffffffffff\nMAC = faffffffffffffffffffffffffffffff\n\nKey = 0100000000000000040000000000000000000000000000000000000000000000\nInput = e33594d7505e43b900000000000000003394d7505e4379cd01000000000000000000000000000000000000000000000001000000000000000000000000000000\nMAC = 14000000000000005500000000000000\n\nKey = 0100000000000000040000000000000000000000000000000000000000000000\nInput = e33594d7505e43b900000000000000003394d7505e4379cd010000000000000000000000000000000000000000000000\nMAC = 13000000000000000000000000000000\n\n\n# Additional test vectors that are long enough to ensure OpenSSL's SIMD\n# assembly is fully tested.\n\n# Length 2048.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72", - "c924bba2a8b4e8354188ebfed\nMAC = 69d28f73dd09d39a92aa179da354b7ea\n\n# Length 2049.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc8\nMAC = d6a26654b88572e875d9661c83471c1b\n\n# Length 2050.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe", - "23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852\nMAC = 9fbbb7f7adcd0cd5b46a4a520b22499a\n\n# Length 2051.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f5\nMAC = eb7cdceb97ade2a07622f8f5a4b1ce15\n\n# Length 2052.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f9", - "0a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f590\nMAC = d41c310927cd92e14784ea78b85503db\n\n# Length 2053.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073\nMAC = 16af133c423f783a14c49d9f526384cf\n\n# Length 2054.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab", - "799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f4\nMAC = 00c75db8f0636b22f195645b03091f5f\n\n# Length 2055.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f434\nMAC = 4a532bc740f581555831345f3b75bf33\n\n# Length 2056.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f", - "297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f4347a\nMAC = 698c7d32c5923871d124a2479e521706\n\n# Length 2057.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f4347a8c\nMAC = a677187dbf3c927aeeafb9ebce0f61dc\n\n# Length 2058.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461", - "cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f4347a8c8a\nMAC = 201fed7eee981b31d2cc42ff6c38141a\n\n# Length 2059.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f4347a8c8a28\nMAC = 0c3d3d01a37f347c4f7c5826bcafb3e1\n\n# Length 2060.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae19", + "0\x82\n\x7f\x02\x01\x03\x30\x82\nE\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\n6\x04\x82\n20\x82\n.0\x82\x04\xa2\x06\t*\x86H\x86\xf7\r\x01\a\x06\xa0\x82\x04\x93\x30\x82\x04\x8f\x02\x01\x00\x30\x82\x04\x88\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30W\x06\t*\x86H\x86\xf7\r\x01\x05\r0J0)\x06\t*\x86H\x86\xf7\r\x01\x05\f0\x1c\x04\b\xb2^\rm\xda\xaa/\xbe\x02\x02\b\x00\x30\f\x06\b*\x86H\x86\xf7\r\x02\t\x05\x00\x30\x1d\x06\t`\x86H\x01\x65\x03\x04\x01\x02\x04\x10<\x04x7\xb3\xb2$\xd3\xb5\x46 \xb7\xd2\xdd].\x80\x82\x04 :\x01\xe4\xf4W\xd3\xed\x14\xd0\x42?\xd3\x61\xee\x84\xcd+\b`0\xbdr\xa7\xd5\xa4\xf2\x13\xe9\xf0\x44\x66&4\xe7,]\xc9\xb0K\xabG\x16\xab\xe6\x06\xa6;yA\fy\xd5\x9b\x02g\xd8\x7f\xc8\x36\x37'\xb4\x44\xa2^\r8\xb8\x41\x8e:\xf1\xe9\xab\xe0\x19\xd0\xe1\xc7\x92\xd4[5\xf3yH;\xfc%\xfc\xc6\x9f\xed\x35([\xfa\xeePB\xa3\xc3\x96\xee\xe0\x87\x33^\xa7\xc7\n\xfe\xda\xe5\xd5)jW\b\x7fV7*\x1a\xa0m\xe9\x84\xac\xed\x0e\xd8\xc0\xd8\xc6w\xb1\xdd\x1b\xa1\xed\xa7y\x13.[\x9b\x80\x44\x9e\xff\nn\x99\x33\xcf\xf1G$\xaaH\xe7,\xb3\xe6\xdc\xd4\x1e\xe4\xb8^r\xaf?\xd3%J\xac{5\xb1\x82\xa5\xd9\xf8\x01\x12\x92IL\x17\a\xb2\xb1>\xcb\xfd\xd1\x17\xb5\x65=\f++\xc0\x37\x9c\xe7\x04\x9bqZ\x10\xc0\xba;1\xde\rfl\rL\x99\"v*u\x7f\x84\xd1\a\x1fW\xf0\vqA\xea\x38\xe2\xe7\xbe\x11<\x92\x8c{\x0e\xb4~v\xc4\x80\x41\xaeL\xe2\x38\x36\xcb\x82\x39\x38:U\xb4\xe2\x35\x94\xc3\xae=\xd1\x03\xf3\xdb\x00\xd9\xfa\x96\x62%\x97Q\xc5\xcf\x84\xe8\xf7\x8b/1\xeb\xa7\n\"o\xad\xf5(%\xaa\x99\x0e\xb1\x83\x9fpy\xaf\x10|,U\xfe$}\xea\x85H\x8ez\xf7G\xd8\fd\x97\xe0\x8f\x62^\xd0O!\xa4\x46\x8e(\xb0\xb1\x90\xec\x01}\xc4\xc8o\xf2\xe2\xb7\xc4\x35l\xa9\xf6\xaf\xc2\xb6\xa9\x02m\xb2\x8b\x43kA\x80\x9d^Q\xa7\x31\x00\x1b\xb5$\xed@\x99\x33\xde\x87\xd1KvxWL3y\x89\xd3\xfap\x0f/1B\x8c\xce\xe9\xc0X\xe1\x30\x30\xf1\xe9\xab\xc8`|\xe0j\x99\xe7\xd3!\x1a\xcc\x98`D\xaa\xff\xee\xec\x34 \x19\xba\x03;go\xee\xd5\xb3\xa7!W\xd6I\xaf\x91\x8f\xecp\xd0Y\x1ay\xe2\xd2\x94\x82S\xfb\xea\xd6\x83IJo\xd6\xed\x15\xc3q\b:\xbf\xde\xa8-T\xafJ@\xbc\xe5S\xaeK=p\xfe\x1c\x03\x1e\xb2\x9d\x1c\x35\xbd\x9a\xf8\xc5\xd1\xa5Jc\x18\x02\xd4\xff\xdd\xcd\xb3l8\xd1\x9a\xad\x16q\xf1\xc6\x1d\x8fl0\xfa.\x13\x9d\vN\xe6\xd3\x37\x80X&\r\x04\x97\xe6\x8d\xcc\x63<98/zs\x01\x0f\"iGT\x9e\x42\xc8Y\xb5\x35\x43\xb4\x37\x45Y\x85\xf2G\xc3\xfb#\x13\x18\xef\xd8\x11pt\xce\x97\xcf\xbf\xd5-\x99\x00\x86V\x9b\xdf\x05g\xf4I\x1e\xb5\x12#F\x04\x83\xf3\xc1Y\xc7{\xc3\"\f,\x1b}\x18\xb6\xd2\xfa(6\x8bQmX\xf4\xd6\xdf\x38\x94\xcflPO\n\xf3\xc3\x91\x39\xa5\xc9\xbc\xa8\xeb$\x1a\xddX\x9e\xdc\xb2\xee\xe1\xa5\x16h\xc2\x63\x8c\xc9\xa7\xbe\x1e\x30\x84\xa6(\xebP\xd9\xdd\x15\xea\x64\x34\xf0zVj\xdd\xb2p.\xearf9T\xaa\x36\xfah\xaa\x06]H\xca\xadN\xfeK@\xdf\x43\x46\xd6\xdf?\xa1\x9eL\xdc\xfeL\x01\t\x7f\xd8\x00\x84\x94)\x17g\x00\xd3\x46\xd2\xba\xb9\x62\x66P\xcd|zpFJ2b\xc2n\xe7^\x04$\xc5\xfd\x9d\xf4\x9b\xc8\xe9\xebs\xf9\xaa\xa4\xcc\x63\xa3\xdc\x63\xe0\x30\xecp@\x9e|cy\xae\xba\xfd\x95LF\xf1\xc4\xae\xb9\x03\xe8\xd4\xe4\x90):\xbb\xdb\xd8\x8f@\xc3\x39\x9aLpT\x9f\xc9\n\x04#\x98k\x9c\xc2\xe0\xad\xae\x30\xef\xff\x44[s.\x8f\xd7+\x12\xf0\x31\b\xfb\xb9U\xf0\xc3\x62\xbb_m\xa7\x1d\x61\xc2&\xce\xab\xb6\x88%\xce\x8b\x02\xb6\xc5\xa2\xcc\xd4\xa3t[v\xf7\xb4\xd9\x9c\x93\x86~\xac\x82\xe0\r\x83\xe1\xc9\x7f*\x86\xbb\xaa\xfe\xdc\x17\x9c(w\xe1X\x18\x15\t\xe3\xda\xdb\x8d\xeeU\xf6\xda\xad\xe5R\x84\xb4\xf0$\xce\xa1TK\x9f\xea]M\x7fS\vy\x1d\x87\xcb\v\xa8\xef\x03\xfaXW\xf6\x02p\xdbzd\x89\x1f\xc7\xca\x87\x02'3\xc5[*P\xc5\xb5{-=\xa9\xbc!{\xf2\xbe\x9cV5\x83\xba\xce\x34\x8d\xec{\xaa\xe4\xcb\xd1OJ1\x00\xd1\xb8\x30\x38\xaf\xe8\xe3\xd7\xc2\x8c\xe3\xb4#\xb3'\a\xc6\x88\xecX\xe9Y\xfb\xa9\x11\xa2\xc8w\"j[\x86\xde\xdc\xedvnsy\\\xb4\xcf\x19v\\k\x1cK\x03\xcb\x35\b\x94\x37\x01\x98R\xd8\x31\x42=\x7f\xa1\x11\x06\a\x88\xb8\x31\x35\xb2I(\xc6,DC\xb6\xbcXvlO\xc8\xb6\x30\x82\x05\x84\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x05u\x04\x82\x05q0\x82\x05m0\x82\x05i\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x02\xa0\x82\x05\x31\x30\x82\x05-0W\x06\t*\x86H\x86\xf7\r\x01\x05\r0J0)\x06\t*\x86H\x86\xf7\r\x01\x05\f0\x1c\x04\by1\xf9\xe2\x42\x33\xf1\xaa\x02\x02\b\x00\x30\f\x06\b*\x86H\x86\xf7\r\x02\t\x05\x00\x30\x1d\x06\t`\x86H\x01\x65\x03\x04\x01\x02\x04\x10\xc9\xda_\x96\xc8,\x85]\xa0\x30\x82\x16k\xf4\xfd\x91\x04\x82\x04\xd0\xc3\x89jVj\x84Xv\xd7#\xd5\xa8\xc1/C8\x99\xf8\x64\x97\xe7\xe8\xd2\xcf\x36\x9b~\x04\xe5\x87\x80\xff\xd5XPZ\xb3\xc0\x15\xc9\xd5\x61\xd6;\x7f/;\x98PU\t\xcf\xc3\xdd\xbd\x8b\xcd\xdf \x90\xe1\xd2\xcd\"\x9f\xa7>\x10\xd3\xb7&Te\xfb\x18\x12X\x81\xd8\xe6\x97\xdf\x32\xd1\x04J\xdb\x05\xb4\x13\xa9\x86\x62 \x94\xdc\xaf\x98S\x16\xc7\xb2\x9c\x44\x30\xc5\xaa\x14z-\x93 \xffm\x8dGio9\xd4\x15\x81k\x85\x36\xf9Y\xa5\x8e\\@b\xf8\xfe\xf7\xe6u\xf7\x37\xfe]S\xa6\x66\xe5\x0eJ#\xa9\x80K\x04\x11\x0eP\xef\x9e\x88\xed\x39\xd1_\xfa\x90\"\xa3p\f\x8b \x9c\x80,\x90.,\xe0\xe6&\x84\xd8j\xe4 \x1e\xbc\x96\xba\a\x9d\x1d=l\xd1\x04\xc8\xd1y,\x96\x0f\xe8\xa5k\x03\x06Q\xfd{D\xab\x66JA\x04\x02\x64Z@}k\x1a\xbcn\xeehp<\x10\x32sv(H\xd9\xa4\xe1!\xf6\xe4\x03\x94\x10\xef\x82\xe0v|\x99\x30&\x9a\x95\xa2\xc5\xb9\xa7\xae\x9f\x85\xcb\xf1\x82\xcd=\x06\xec\xafr\xc1\x33\t\xf9Q\x94\x42\xf0i\xb9\xc6\x04\xe6z\xfb\x1c\xee\xac\x95\x9b\x88g\x19\xa8yg\xc7\x1b\xccr\xe9\x18\xd2\x96\xcf=\xf8\x98 S\xc9\x37\x0f\x92\xb1\xbc\xaf\xc6\xecO%\xda\x95\x14\xed\xb8>\xaf\xd1RL(;\x84\x8cI4c+\xd4\xf4x\xb1\x8f\xb0\x35{\xd5\x44\xc3\x98\x9e\x85\x86\xae\xee\x05\xdd\xa1oS\xe4\xdco\xf5|~\xd8z\x9b\x18\x43?{*\xf3\xb5\x39Z\x1cr;\xdd\x01y\x97\xff\xdbX\xe5Ma\xde\xcf/\x13{\xafk\xa4\xf2Y\n\x13V\x1c\x05\x00\x0f\x18\x66\x33r\xbd\x62\x8d\x11\xf7 R)B\x83\x33\xc1\x0f\a\x80\xd4X\xe2\"\x94\xad\xec\xbf\x01\xb6q}\x92\xb1u\x14\xf2\xfbw9\r\x82\xb5Q\xba\x1f\x65W\xaahj\x17\x41\x13\x38\xc0\xe5\xeb\xcc\x8c\xdd\xb7\x00N\x01\x06%\xab\x87\x1c\x30i\xc4\x15\x0e\xf8\xf0r\xb6\x1d\x92~\xe2\xe6w\xed\xb8?\xcfW\x8d\x90\xe4\xa3yI\x9a\xe0\x1fJ\xde\xe9\x44\x8d\xd5#;\ac\x92\x9f\xde\xba~g\xb0\x82\x41*\xcd\xe1\xbb@\xf1\x8a\x66pt\xf1\x99}\xb0\vj\xa2^~\xc0\x8c\xb2q\xda\xcf\xbc\xfb\x9c\x03\x0e\x33^\x13\xb2\x34\x38\xc1\x83\x95\xdf\x46\xfc\xe0\xe0\xaf\x93\xe0p\xd5\x15\x8c/\xaeK\xa6\xeb\x13\x8f\xaf\x1b\xf5q\xc4\x62q\b\x97\x10R\xfe\xbd`\xd7\x9f\xdf=\xc5\xdd\xcd\xe7\x8e\x85`\xdf\x61y[\x90\xd9\xaaV0m\x0f\xfb'\x84\xdd=\x04j\xe0p~\xbbY\xf4\xeb\xe8\xc0\x62\xaa\xf6\xed\xca\xae\xb2+\x0f\xc1VE\xe7$k\xaf\xeb\x15&\xb2\xcd\xae\x1f\xe7\x11\xc0\x1c\x19J\xc7Q*)\xdf\x14\x82\x43\xfeR9\xba\xe6l\xa5v\x8b\xb1!\x9c \xb0\x10\fD\xf2\xd4nA\x1b\x8f\x90#\xe3\x87\xfc\xf1\x46\xc6[\xae\xd0*+x\xf5+\xb9\x9f\x46K0\xf8IW~\xb4\xff\xca\xadM\xf3\xc1{B\xe0\xa4\x37/\xe2\xb2`\xe8\xaf\xd7\x39#LgD\xe5m\xb3%\x11\x9f+\xea#\xfb\x1e\xce\xbf\xa4/\x88\xec\x18@\x16\x43\x9fq\x9c\x8d\xbd]U;\x92N#<\x87\xed_.\x8f\xde\x83\xad\x30\x42~\x1a^\xf5\xc5u\xbb\x99n\xf1\x87\xe0\xf3Q\x1e}\xe8\xfc\xc6\x88\xf2\x39m\xaes\x9f\xad\x9b{g\x99\xdb\x90\x0e\xa0\xfc\xaf\xcc\xdb\x8b\xaa\xc2T\xd5-\xb3_\xa3\n>\xd6\x8d@M;\xe5-1\xd8\xb2\x12\a\xca\x36V\xd9/U\x82\xdc\x8e\x92\xa9l\x91\x9e\"\xe4\xc6'\x8b\x1a\xa2xV,Z\x19\xdf@\xf9\xfb\x44![\xdf/\x99\x84I\xcf\x1a\x15\xa5Y:f\tM\xc1\xf2\xb1$3\xbd\x86\x41\xdc\x33\x9b\x03\xc0\xa8\xf8\x94x.\x16\x97\xef#\xee\xa4\xac:\x90\xb6\xd9\xc0\xda^&4&\xce\xc9\xf8\x45\x37\x83|\xbd\x9c`@a(\xcd\x9c\xb4\xe4\xe6\\O\xd1yB\x13\xa9o&#\xc2l\x8e\x8d~?\xee+M\xd2[\x80\xdct\xda\x1f\xbc&T\xc5\xfe\xee\xa9O\xce\x46\xaf\x90\xb0\x12\x9a\x18\x0e\x06\x05\xc7\x98\xef\xccm\xa3\x46\x91\xa5\x0e\xe7\x35\x1a\x7f\x9d\xae\xa0\xb4\n2;\xe4\xcdK>\x89s\xc9\x97\x38\xe5\x86O$\xedJC\x04\x02\xc1)\x8d\x85\xa2\xdd\xb2\x61<\xce\x8bG.\xedK$\x94\xb7\xbf\x9dUB\x95\xc2'\xe5\t\xd4 \x03 !:\xd8\xd2\xa2\xb3G\x93OZ9\xca\xd8t\xa9\x19\xa6\x9a#\xb1!\xa3\xb3\x14\xcc\xe2\x12\x91\x30\xdbP\xf8\x44t\xd6p\xdd}&\x7f\xbf\x32\x93\x1f=@\xbf.\xec(\xf5\xb1\xaf\x11\xc7Nd\x13<\xbf.\x19\x81\xfe\x35\xba\xecn\xb6\xa9\xfe\xc6\x85\x33\x41X\xab\x06\xae+\x96\x62\x1f,l\xad\xec\x1aYUZo\xe0\xebq\x8d\xb5\f\x81*9\xbdg9H\xfb\x91\x64\xad\x01LJ\x0f\x30)\xa0\xcf\x30\x96\x43\xe9\xfc\"K\xf3O\xab\xec\xbcZ\xfb\x7f \xd9\xd5\xc7\xce\x93\xa3.\x82\xd1\xa0\xc6\x16\xd5\x64-?i\x15\xfd\xf3(=Na\x01,\xd4+@Qn\x95\x00\xa4\x34\x31%0#\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x16\x04\x14G\xf4\x18\xa5K\x85\xb7\x02\xc1\x97\xffW\xb6o!E4=\x92\"010!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14\x17\x45\f\xdfSv\x9b\xce;\x12\xddG\x05m\x16\x90\x9d)\x9b\xe1\x04\b\xa1\xf2\x82\x1c\xd1\xd1{\\\x02\x02\b\x00", +}; +static const size_t kLen191 = 982; + +static const char *kData191[] = { + "0\x82\x03\xd2\x02\x01\x03\x30\x82\x03\x98\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x03\x89\x04\x82\x03\x85\x30\x82\x03\x81\x30\x82\x02w\x06\t*\x86H\x86\xf7\r\x01\a\x06\xa0\x82\x02h0\x82\x02\x64\x02\x01\x00\x30\x82\x02]\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x06\x30\x0e\x04\bAF\"\xac\xe7\xd6~a\x02\x02\b\x00\x80\x82\x02\x30\x9a\x05UZ\xa0\xf6\xd4\x8c^\x1c'\x91\x11\xfd\x1d\xe8\xfd\xae\xf2\xe6\x9f(\xb8\x1e\xfa\xce\x88\xb4#\xd6\xfan\a\xe9\x33\x81p\x1d\xd0^\x94\x04\xf1`\x8e\xbf\xe1\xef\xf4\xd7\xb2/\r\xe9p+\xe8\x62\xfc\xd3*I\xf3\xf1\x06o*\x94\x8c\x42\xff\xc6\x80\xa8j\xbf\xa3\n\xd3\x8eYR\xea`\xe8Zd#\xac\x8d@-\xc9\xfe\v\xf3\x93R\xc3>\xea\x34\x9a\xea\x42j\xe4\t%D]^\xb4;\xfb\xe0\xc2\xdf\xd8\xaf\xae Y\xb0\x8c\xdd\xb3J_\xcal/\xe3\xb4\x99\xc6\x8fu\xc5r1\x0eLF\xe6\xe1\xbf?\xdf\x02}\xde\x35\xad\xd9\x9d\xcbt\xa7\\R;\xc2\x9cv\xbd\xf7\x96\xfc\xc5\x9d\xc7\xa7y0\xa0\x89\xd6\xd3\xa8\xe8\x63\xd2:?\x88\xc1\"\x8c \x9c\xa0#\a\xc3\xe4\f6\x19\xa8\xa3\xc4\xbc\xbc\xd6=\x80\xcbT\x91\xc4\xab\x02\xd2\x43\x30\xe5\x01\xbd%\xcd\xe4)U\x0fn\x83\xb8\xfbp\xf2\x34\x9a\x15\xc6\x16\xdf\x89\xe4\xd4\x83&\bb\x05\xa6\xea\xf3\x63\xc3\xb5ib\xf8`\\(!Q\xa4\x43v\xdd\x41m\xbdm\x8e\n\xbaI\x1b\xe2\f\xb6\x85\x9b$<\xdf&\x9d\x05Pd\x12\x96$\xdbMy\a\xa7\xb2<\xf9\x42\xca\xdag\xc0m\xf2~\xbc\x1e\\+K\xf6\xf4\x35\x82pk\x81\x16\xfc\xf1\xa9_\a,\xe9\x1e?0\x82\x01\x02\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x81\xf4\x04\x81\xf1\x30\x81\xee\x30\x81\xeb\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x02\xa0\x81\xb4\x30\x81\xb1\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x03\x30\x0e\x04\bo\xb9\x01\x93l\rM\xe1\x02\x02\b\x00\x04\x81\x90\aBjZLAA8\xe4\x15\xc2\x85N\x88\xc6\xd3o\x9f%\xd8\x66\x86\xf3\x65]QC\xd6\x03\x91L\xeb\xbbu\xce\x8b\xf4GCL\x1aKH\x92\xf4\xaf\n_I\x96\xea\xaf\x31){\xa3\xb5\xd3\xe4g\f \x0eR\x9e\xcf\xcfj-E8Ra\xbf\x10+\xc1\xc5\xde\x04\x1d\nR\x88\a9\xc2\xc1\xd0\x44\x39\x9f\x46\xf2i\xa4\x30[\xe4`hi\xb0\x95x\x05\xef\xe1\x81\xc2\xd2N)R9Q\xfc=(\xe1{Xv\xcf\x35\x33/\xef\x95v\fR\x11i\x17\x90q\r\xc1(\xbaNo\xa0\x9c\xed\x30\x31\x30!0\t\x06\x05+\x0e\x03\x02\x1a\x05\x00\x04\x14R\x8c?r\x8c\xcf:\xeb\xc8\xff\xc2\x8cHB\xa6\x1c\x42n\x18\x43\x04\b\xea\xec\xdc\xf6\xc4\xdf\xda\xd6\x02\x02\b\x00", +}; +static const size_t kLen192 = 2566; + +static const char *kData192[] = { + "0\x82\n\x02\x02\x01\x03\x30\x82\t\xbe\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\t\xaf\x04\x82\t\xab\x30\x82\t\xa7\x30\x82\x06\b\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x82\x05\xf9\x04\x82\x05\xf5\x30\x82\x05\xf1\x30\x82\x05\xed\x06\v*\x86H\x86\xf7\r\x01\f\n\x01\x02\xa0\x82\x04\xfe\x30\x82\x04\xfa\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x03\x30\x0e\x04\b\xb7 UZM?\x0e\x89\x02\x02\a\xd0\x04\x82\x04\xd8:\xcc\xd6\xcbMT\xc0\x04V\x10\xccI\xe4\xe0\x10s\xfb\x1a\xdd\x1dOnU\xe3\xa4\xab\xf9&\xaa\x42T\xa0\xd1\xf0\x8d\xbfq}\x18\x00\x17\xb3\xb7\x63P\x8d,\xeb/\xe3\xc3\xbf\x93\xc8\x46H\x99G\xe2;\x8dq\x01_Y[a~\x1f\fn>\xc4t\x99\x98\x30\xff\x37{0\x19\xb5\xfci\x94_yi4\xda\xb5!\xcf\xfer\x87\xe8})~'%\x90\x80\x98\xdd\x8d\xbf\x42\xb0\x10\xd8}m\xfeo\ra\t\xfd\xb2\x9b\xeb\xbf\x1c\xca\x33\xbcN\x19RUS\xb4\xa5\x98l\xa3;\xf8\xa4\x8dy\xcf@\xf2\x89\t<8\xab\xae\xf4\t;\xb6\xcb\xdd\xd7\xad\xe0Zqd\xc9\x0f\x18\xac<\x12\xd4\"T$\x1a\xa5\x35x\x99\tJ\x18\x95#\xb9\xf7\x89?\x13\x43\x1f\x8dvk\x04\xdb\x64\xf4\x8e\xf5P\xa0\xae\x1c\x8c\xc8\xf3\xde\xf3\x11-\xfev\xf0\xac\x46T#\x03I\xfas\xcd\xe0\xa1lfM\x1b\x99W=aa\xeb\x61@\xc7\xd6\x41\xbe\x63!\x1e~\xb5\x0e\x94\x93\x37\x41\xe8\x91\x06\xd7\xa3\x33x\x17\x17Yx\x8f\xaf\xed\xf9\x90\xfb\xb6\xc8\xa9\v\x10\x1a\xf1\xab\x10\x11\xbc\x7f\xa5-4}{\xaf\xc8\xb2\x00k\xd4\xbb%\x9b\xc7\x14\x8bP\n\xd5,\x1f\xa0_\a\x1d^\x1a\xa4K\x85\xb2\xa6\xe2\xdd\xb7\xda\x11%Q\xbfrPS\xa1=\xfa\x1d\x34u\xddz\xe0\x90V\x14\xc3\xe8\v\xea\x32_\x92\xfc.M\x0e\xfe\xba\x1a\x00m\x8fu\xacILy\x03.\xf2\xcc\x8e\x96'\xb8\xe9\x1f\xd8\xe0\x06\x18\x1b\x8e\xb8\xa3\x96\x34\x19;\f\x88&8\xe7\x65\xf6\x03O\xc8\x37n/^]\xcd\xa3)7\xe8\x86\x84\x66\x37\x84\xa0IN\x8f;\x1a\x42\x9f\x62\x1f+\x97\xc9\x18!\xd2\xa5\xcd\x8f\xa4\x03\xf8\x82\x1e\xb8>kT)u_\x80\xe6\x8f/e\xb0k\xbb\x18n\r2b\x8c\x97H\xd3\xaa\xf2^\xb8%\xbc\xb5\"J\xac\xcf\xdc\x8bH\xfc\x95\xf2\x17!\x1e\xda\x13\xd3\x1b\xe2\x37\xd5\xbf\x92\xe4\x81\xf5\x98WQ\x14\xda\x80}Jj\xce\x17\xaf\xdb\xc3.\x84;\x1e\x02QJ\xc1%\x8cZ V\xee\xecY\xcf\xd7>_9\x9f\xbfMN\x94\xb1\x1d\x83p\xc0\xab\xff\xfa|.[\xfbW?`\xb8\xf3\x36_\xbfj\x8co\xe0\x34\xe8u&\xc2\x1e\"d\x0e\x43\xc1\x93\xe6\x8a.\xe9\xd9\xe0\x9fVP\x8a\xbdh\xf6WcU\xbb\xe7\xfe\"\xca\xdc\x85\x38\x39\xc8\x66\x02(\x0f\xe0\x1c\xd6\x0f]j\v\xd8\xe5j\xebT\xb2\xe0\x02o\xe2\x42\x89\x66\xc2\xd5\xc6\xe2\xb2\x04m\x8a+H\xc2Q\a\x8e\xf3\x91\v\xb7Un\xbb\xbf\x11Z\xcb,\xb3\x1e\x61\xd3\xdb\x90\xad\xba\x10\x96\xe2\x16\xf4\fG\xbd\x64\x66z\x17\x63\xb9\x02\xcbSz5\x92t\xc3*}\xc5\x11\x18/\xa3\x62,\xc0\x87\xd3\xd3\xba\xcb\xe0\x86\x9bK\xc5Y\x98~2\x96U\xc1=Z\xcd\x90-\xf8\xb7\xa8\xba\xce\x89\x64\xa6\xf3\x1b\x11.\x12\x99M4E\x13\x66\xb7i{\xc5y\xf5k\xc2\x1d\xc8?\t\x18\n\xfc\xf7\xaf\x98\xc2\xc7\xcc\x85)\xc6\"zw\xab\xb5\xac\xf7\x9ep\x8e\x7f<\xf1\xbd\xd9z\x92\x84\xc5\xb8V\xc3\xcb\xf7%\xad\xda\x0e\x1c\xe4hf\x83\x91x\xf1\xe7\x8c\xaa\x45\xb6\x85t\x9b\b\xff\xac\x38U\xa5j\xea.uq\xd3\xa2\xdc\x1c\xc0\xc7\v\xa9\xd5~\xf9\x63\x82\x87\xb7\x81\x01\xb9\x31\xdf\x41\x35\x0e\xe2\x1fH\xbf`\xce\xb0\xb4\x38\xa5\xb4v\xa3\x80\x1f\x93W\xf2\x05\x81\x42\xd1\xaeVm\xc5L\xab\xa6$*\x02;\xb1\xc4u\xcf\x15\x90\xb5\xf2\xe7\x10i\xa0\xe3\xc4\xe6Rc\x14\xb4\x15\x91\x8e\xbaz\xad-\x9b$t61\xca\xcbKZ\xbf\xd3N\xb4\xc1HDt/\x83\xe4\x39=\x90-2\x12\xf7\xfa\xd3\xe3\xdbO\xe6\xe7 ,W\xc0\xf9\x80\xe1\xdc\x1c\xf2\x05T5\xf6\xbd\xfb\xbd\xc5\xb2\x82\x32\x63\x32\xca\xf4\xf7\x14\x92\x87\x8a\x45\x37V\x93\xdaO\x04Y\x03$\x93\x1a\vN\xdbX\xbf\xda*\x0e~\x98l\f\xeb!\xf9\xbf\x9b\x1f\xc0\xef\xd3\xea\xcb\x99^\x14>\x10\xfa\xad\x38\xf7h\x9f\xa3\xcc\xdf\xe5\x31\x91\x98\xdet_{\xce\xe4T\xd9Q\xec\xf5K\x17_\x99L\xf8\x00\xe0\x10\t\ad\xae\x61;`\xa3\x89\x38\xc4\x80\xf2\x1e\x11&xr\x05\x97'\xba\x83\x33\x1b\x14K\xc0\xc8\xb0\xcc\n\x9b>L\xde\x12\a\x11\xd5\xf0\xc0\xddp=\xd8z\xf7\xa2\xf2p\xadT\xcegA\x12)\x1f\xe1I_LwA|t%\x9c\x91\xd1\r\xa5\x9a\xb8VL\x01\xc0wQ\x14\xc8\x92@\x9a\xbd\x7f;\x9b\x17\xbb\x80nPd1\xed\xe2\"\x9f\x96\x8e\xe2NTn65\xfc\xf2\xed\xfcVc\xdb\x89\x19\x99\xf8G\xff\xce\x35\xd2\x86\x63\xbc\xe4\x8c]\x12\x94\x31\x81\xdb\x30\x13\x06\t*\x86H\x86\xf7\r\x01\t\x15\x31\x06\x04\x04\x01\x00\x00\x00\x30W\x06\t*\x86H\x86\xf7\r\x01\t\x14\x31J\x1eH\x00\x65\x00\x65\x00\x36\x00\x64\x00\x38\x00\x38\x00\x30\x00\x35\x00-\x00\x30\x00\x36\x00\x64\x00\x39\x00-\x00\x34\x00\x32\x00\x65\x00\x32\x00-\x00\x38\x00\x62\x00\x36\x00\x38\x00-\x00\x66\x00\x65\x00\x61\x00\x62\x00\x35\x00\x65\x00\x66\x00\x32\x00\x38\x00\x32\x00\x37\x00\x30\x30k\x06\t+\x06\x01\x04\x01\x82\x37\x11\x01\x31^\x1e\\\x00M\x00i\x00\x63\x00r\x00o\x00s\x00o\x00\x66\x00t\x00 \x00\x45\x00n\x00h\x00\x61\x00n\x00\x63\x00\x65\x00\x64\x00 \x00\x43\x00r\x00y\x00p\x00t\x00o\x00g\x00r\x00\x61\x00p\x00h\x00i\x00\x63\x00 \x00P\x00r\x00o\x00v\x00i\x00\x64\x00\x65\x00r\x00 \x00v\x00\x31\x00.\x00\x30\x30\x82\x03\x97\x06\t*\x86H\x86\xf7\r\x01\a\x06\xa0\x82\x03\x88\x30\x82\x03\x84\x02\x01\x00\x30\x82\x03}\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30\x1c\x06\n*\x86H\x86\xf7\r\x01\f\x01\x06\x30\x0e\x04\b\x92\x16mmh\xd3\xb0\xc1\x02\x02\a\xd0\x80\x82\x03P\xeev\xe8`\xbf\xca<-\xe5)\"\xf6\x33\xc3Pj\xdb\xf3X<\xd9|\xd8\xf9\x83\x89\x17\xa8\x1bk\t\xc1\x99I\xb0\x43\x06\xc6\x42K|\x85K\xe6i8\x91\xce=<\x97\xd5\x14O\x15Z\x81Mw@\xe0\xe1\x1ci?\x1d\x65h\xb3\x98\x95\x30l\xb0p\x93\f\xce\xec\xafW\xc6\x9c\x34\xb4+\xaf\xc3^p\x87\x17\xe8\xc9T\x06\xb5\xb7\x83\xff\x46+\xb6jf/m\x0f\x96Sfe\xb8{HU\x83\xd3\xc4\x16\x93\xderY\xf1\x9a\xab\xd5\xd5\xcb$\xa6JNW\xf3n\xca\xb1\xeb}\xdb\x02\xd2y\x89\xef\xa2\x8b\xeeo\xdc^e\xa5\t3Q\xb5!\xc8\xc6\xab\xed\xd5P\x93\x39q\x97\xd3,\xdd\xaf\xb1\xc6\x9bKi\x98\xae\xaf!\xa0\x8a\x90%\xe0\xf4\x8c\xf2\xc3Od\xb6\xc6\x64\x90\xff\x95\n\xcc\x8c\xf4\x86\x80S\x8dQ\v\xcd\x45O\xcf|\xc6\xdf\b^\xa7\xdfO\xcf\x84\xde\xb8Ms@\x06\xbe\x33\x82\xe8\x41\x1b\x9a\xc3[\xb6\xf3\xfc\x32\x98\xcc\xcc^\xd5\xb7\x86\x0f\xc8Yr\xcb\x9a\xc5I\xd4-/P5\xeb\xb8\x10\xa7\xea\xb1\xe2\fj\x84,\xe2z&\xef~k\x1eGn\x98\xc0?\x92$\xe7\x88\xf9\x18x7\x8aT\xa6+[\xf0\xc7\xe2\x98\xa4\xa6.\xc3jufQ\xe8\r\x90\xfd\xa7\xec\"\xb3}\x9d\f\xfer\x7f\x98\xf6\x86\x30\xd3|\xee\xa5\xc5 \x89y\x04\x8e\xa8\xb6\x94pNu\xe5\xa0\xae\x8c\x7frL\xd5\x9f\xd2V\r\xb2(E\x99\xf8@\xd4?BJ\f\x92#\xe1\x17\xafh\xa6\x0f\x1d\x32\r\xf8\b\x8e\xdcyh\xf0\xfe\v\xda\x94-\xa6\xa7v~\xd6\xca\xec|7ROw\xcf\xa3\xcf\x8a\xfe\x89\xd9>\xbc\xb5\x06\xa0!\x91\x89w\x84\x85\x43*e\xecuM\r\x1cy\x0f\x61\xca>b\xbb\x41\xf9L\\;\xde\x33\x8e\xdfQr\x93\xca\xa6\xc7\x16\xe5\xb3\"\xb6.\xbf\xae\x1d\x91\x1dI\x96\xa3%\xd4\xceo\xf0\xfb\xb7\xf5J$\x03TK\x7f\v\xb4\x31\xb4\x33\xb7@\xf0\xd5L\xee\xe3K\x12\x8c\xc9\xa7\x06\xb1\x02Z\x14o\xe2;h\x9b=\xfc\x83J\xcc\xb5w\xe7\xf0\x1bR\xce`\x89\xe2\x45v\xaavp\xc2\xfd!\x8f\x1dg\x1aL\xe8\x81+.\xa9V\n'\x0f\x81\xba\\O\xfan~3}x\xed\xd2\xe3$\xae$\xb2\x1b\x62q\x0es\xfe\x8a;\x98\r\x82\x8e\x8d\x0f\xb3\xe2\x65\x87\xeb\x36\x91M\x8a\xfb\"z#,\xe1\xb6\x94\xb6\x90\x94\xcc\f}\x02\x36V\xda\x45 \x90H\xdb\xa4\xf5'\xac\"I%\xaa\xd8\xa7y8\x80\xc0\x95\xc7\xd1\\\x17|\xa7\xec\xd2\x63\xc6\xc6U\xfex\x99\x06,nO\xfe\xd1[\x8c/\xa1\x42\x03&Z^\xda\xef\x43\xd2\x0e\xf9_\xdb\x1d\x9c\xd1\xcb\x65\x84&\xed\x91\x8f\x16\xb4\x1c\xc0\xb3\x8dy\xae\x9b\xcb\x36m\xcdg\x1f\x87\x11*|\xb1\x8c\xfb\x06\xab\xd2\xd6*\xe3\x45l\xa5\xc0\x19k\xfc\xc3\xb7T5\xda\xdf\x12\x97\\\xacY\xb4\x42%\xef\x04\xf7L\xdbt\xb9h\x8f\xee\x37\n\xc6!\x86\x0fo\x8e\xab\xd5{8^_}\xb9Z\xcb\xce\xa0V7\x13qK\xba\x43|\xc0\xb7\x7f\x32\xd7\x46'X\xfc\xdb\xb5\x64 ; \x85y\xa8\x9a\"\xaf)\x86\xc5\x9d#\x96R\xca\xc7\x9d\x92&\xe5:`\xd6\xad\x8dZ\xd9)\xbe\xd5\\:w\xda\x34\xe2v\xcb\x98\xa4\xf3\x33\xf1h \x83\x95\v\x8d\x93Y\x02\f\x8f\xe4\xc4\xb0\xe7\x61\r\xf9\x80 X@\xea\xb7\v\x1b\xad\xe3\x30;0\x1f\x30\a\x06\x05+\x0e\x03\x02\x1a\x04\x14-wyy\x90\x41u\xf4J\x7f\xf7\x15\x94(b\xf7i\xd4\x44'\x04\x14+/\xd9$\xc3\x8a\x34\xbbRR{\xf6\x0e{\xfe:fG@I\x02\x02\a\xd0", +}; +static const size_t kLen193 = 85; + +static const char *kData193[] = { + "0S\x02\x01\x03\x30\v\x06\t*\x86H\x86\xf7\r\x01\a\x01\x30\x41\x30\x31\x30\r\x06\t`\x86H\x01\x65\x03\x04\x02\x01\x05\x00\x04 \xfc\x85\xd5\xb6\xc7x\x80\x96t[\x13\xe4\x14yV9\xd1\xa3\x1b\x0e\xf9!\"\x9a\xe8\x03\x91\x98\xf4\xb6=?\x04\b\x91\xc1\x65N\xe5XC\xf0\x02\x02\b\x00", +}; +static const size_t kLen194 = 104; + +static const char *kData194[] = { + "0f\x02\x01\x03\x30\x1e\x06\t*\x86H\x86\xf7\r\x01\a\x01\xa0\x11\x04\x0f\x30\r0\v\x06\t*\x86H\x86\xf7\r\x01\a\x06\x30\x41\x30\x31\x30\r\x06\t`\x86H\x01\x65\x03\x04\x02\x01\x05\x00\x04 \xf2} \xb5\xc6\xba\xf6\x01\x98*\x06GUX\a\"+5\xd8\x89\x8f\x94}\xf4;\x12t\x17\x39\x89\x1a\xfb\x04\b\xa0\a\x87\x63\x05k?\xea\x02\x02\b\x00", +}; +static const size_t kLen195 = 74392; + +static const char *kData195[] = { + "# RFC 8439, section 2.5.2.\n\nKey = 85d6be7857556d337f4452fe42d506a80103808afb0db2fd4abff6af4149f51b\nInput = \"Cryptographic Forum Research Group\"\nMAC = a8061dc1305136c6c22b8baf0c0127a9\n\n\n# RFC 8439, section A.3.\n\nKey = 0000000000000000000000000000000000000000000000000000000000000000\nInput = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nMAC = 00000000000000000000000000000000\n\nKey = 0000000000000000000000000000000036e5f6b5c5e06070f0efca96227a863e\nInput = 416e79207375626d697373696f6e20746f20746865204945544620696e74656e6465642062792074686520436f6e7472696275746f7220666f72207075626c69636174696f6e20617320616c6c206f722070617274206f6620616e204945544620496e7465726e65742d4472616674206f722052464320616e6420616e792073746174656d656e74206d6164652077697468696e2074686520636f6e74657874206f6620616e204945544620616374697669747920697320636f6e7369646572656420616e20224945544620436f6e747269627574696f6e222e20537563682073746174656d656e747320696e636c756465206f72616c2073746174656d656e747320696e20494554462073657373696f6e732c2061732077656c6c206173207772697474656e20616e6420656c656374726f6e696320636f6d6d756e69636174696f6e73206d61646520617420616e792074696d65206f7220706c6163652c207768696368206172652061646472657373656420746f\nMAC = 36e5f6b5c5e06070f0efca96227a863e\n\nKey = 36e5f6b5c5e06070f0efca96227a863e00000000000000000000000000000000\nInput = 416e79207375626d697373696f6e20746f20746865204945544620696e74656e6465642062792074686520436f6e7472696275746f7220666f72207075626c69636174696f6e20617320616c6c206f722070617274206f6620616e204945544620496e7465726e65742d4472616674206f722052464320616e6420616e792073746174656d656e74206d6164652077697468696e2074686520636f6e74657874206f6620616e204945544620616374697669747920697320636f6e7369646572656420616e20224945544620436f6e747269627574696f6e222e20537563682073746174656d656e747320696e636c756465206f72616c2073746174656d656e747320696e20494554462073657373696f6e732c2061732077656c6c206173207772697474656e20616e6420656c656374726f6e696320636f6d6d756e69636174696f6e73206d61646520617420616e792074696d65206f7220706c6163652c207768696368206172652061646472657373656420746f\nMAC = f3477e7cd95417af89a6b8794c310cf0\n\nKey = 1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0\nInput = 2754776173206272696c6c69672c20616e642074686520736c6974687920746f7665730a446964206779726520616e642067696d626c6520696e2074686520776162653a0a416c6c206d696d737920776572652074686520626f726f676f7665732c0a416e6420746865206d6f6d65207261746873206f757467726162652e\nMAC = 4541669a7eaaee61e708dc7cbcc5eb62\n\nKey = 0200000000000000000000000000000000000000000000000000000000000000\nInput = ffffffffffffffffffffffffffffffff\nMAC = 03000000000000000000000000000000\n\nKey = 02000000000000000000000000000000ffffffffffffffffffffffffffffffff\nInput = 02000000000000000000000000000000\nMAC = 03000000000000000000000000000000\n\nKey = 0100000000000000000000000000000000000000000000000000000000000000\nInput = fffffffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffff11000000000000000000000000000000\nMAC = 05000000000000000000000000000000\n\nKey = 0100000000000000000000000000000000000000000000000000000000000000\nInput = fffffffffffffffffffffffffffffffffbfefefefefefefefefefefefefefefe01010101010101010101010101010101\nMAC = 00000000000000000000000000000000\n\nKey = 0200000000000000000000000000000000000000000000000000000000000000\nInput = fdffffffffffffffffffffffffffffff\nMAC = faffffffffffffffffffffffffffffff\n\nKey = 0100000000000000040000000000000000000000000000000000000000000000\nInput = e33594d7505e43b900000000000000003394d7505e4379cd01000000000000000000000000000000000000000000000001000000000000000000000000000000\nMAC = 14000000000000005500000000000000\n\nKey = 0100000000000000040000000000000000000000000000000000000000000000\nInput = e33594d7505e43b900000000000000003394d7505e4379cd010000000000000000000000000000000000000000000000\nMAC = 13000000000000000000000000000000\n\n\n# Additional test vectors that are long enough to ensure OpenSSL's SIMD\n# assembly is fully tested.\n\n# Length 2048.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72", + "c924bba2a8b4e8354188ebfed\nMAC = 69d28f73dd09d39a92aa179da354b7ea\n\n# Length 2049.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc8\nMAC = d6a26654b88572e875d9661c83471c1b\n\n# Length 2050.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe", + "23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852\nMAC = 9fbbb7f7adcd0cd5b46a4a520b22499a\n\n# Length 2051.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f5\nMAC = eb7cdceb97ade2a07622f8f5a4b1ce15\n\n# Length 2052.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f9", + "0a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f590\nMAC = d41c310927cd92e14784ea78b85503db\n\n# Length 2053.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073\nMAC = 16af133c423f783a14c49d9f526384cf\n\n# Length 2054.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab", + "799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f4\nMAC = 00c75db8f0636b22f195645b03091f5f\n\n# Length 2055.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f434\nMAC = 4a532bc740f581555831345f3b75bf33\n\n# Length 2056.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f", + "297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f4347a\nMAC = 698c7d32c5923871d124a2479e521706\n\n# Length 2057.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f4347a8c\nMAC = a677187dbf3c927aeeafb9ebce0f61dc\n\n# Length 2058.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461", + "cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f4347a8c8a\nMAC = 201fed7eee981b31d2cc42ff6c38141a\n\n# Length 2059.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f4347a8c8a28\nMAC = 0c3d3d01a37f347c4f7c5826bcafb3e1\n\n# Length 2060.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae19", "13ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f4347a8c8a28c9\nMAC = 33a4e0e0bed7c84c5cc5dd4784410f07\n\n# Length 2061.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f4347a8c8a28c99e\nMAC = 8e41c40a2f8ec58fe594f3a3a2de4ae1\n\n# Length 2062.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c4", "90485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f4347a8c8a28c99e21\nMAC = c6e5d1810fd878ac6b844c66cef36a22\n\n# Length 2063.\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nInput = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16e9c66a3709894e4eb0a4eedc4ae19468e66b81f271351b1d921ea551047abcc6b87a901fde7db79fa1818c11336dbc07244a40eb14cf77bde35e78ae9ad7d3f57ed7e7f23926c9172f82d77684ea5ed7d74ebc6f142b997036bcb7cce8df1bbc0d5b35a46509c954fc9469d214d6238f166cbf872156b4c41d7aac5942cffb175023078252a3f36e315c5d4ce0e39928a018252862becacef96a19f03bdcf46d75584299d1f8b03c0169e9e407d937145b5e5024139e7022a1978f114f24cdfa23780a119735c41da8fb759bbb3f025c6ec30e6c6e9bce8615be68e392fce59fd26a8e6a6cc5c606e3848116e4d01d29565a1facfb524b6d29643b826eee1e42869fc76df229dd79b39a2b1df28bb335c3a5f15a855d0121e4a6da34b5e4d5b7b5d5746a03ecff70811e1516fcec1bf7462e8876a2d21710aa168c78f45a6a15015950e221da85d3ec822ad6d0a6931b25a06b7bb5f3c10bb36cd4d647f9561982fde9818de5d4bf8db7f86c53b4ff14928ac15f79023b61861e73e44216540bb302153770da2533de9795252ab5fb77ad924c9338c8144c23d4c90dab9a18feac1a1574d4545e1435eb405e6c4c439fc724fce992ae85badf345bad16d85fbd338f04433703614754d0e7e54c4ccde2670587d52ecfb5a70a14a501bacc727722649931d8515b13d020a78e511fe136d45fbf97f9c7f689fcc677cfb3683723878350ffe9d08130cc6e567b6179e01b7eb2b3bbcf0873e1308eec018edeb8cce946338e15d5bf68c71916a83a99358039ef071e009546a2df936879dffbba397a93925d229a469fd17d71b7f524e03a30da6ee927542f8b369bed4734fe25dbd63d24ffd2a222f5f84f75d858ab989be925af570ad6d45bd28ce61b5139e1dd2f0b7795fe072e6e83acbb5e7b777a70c641e4cab2af40eed69abc334cd2703c3273204fac580c6a3d6680427e5f7d051e8380a53f93a180f4556ecea4530b9a2d5948dad63d415b6874f6b90e767d6d265be86351b53ba690780bb57c21b57418c5b97559e840c68257f839e7583a4bf7c7645c5987d40cc1ba79a218c35edfacdabe581d950e4bb7a481ebe64d61d00e75b1f25f1ce5f5462334a5b9038a697aa0937a3f8017e05d2c9c05dcb05c0b02508dea619b137f5444b6f088eb3cb2c66788f88afdfbba8faa1c490485624c88ae11e57347a676902e7553f056188493209bdbb30acc63c9e41e16a9d6c009416b520a76ba38f57628170c43626b5cb46179dc5bf65de865085f84bf741c223fbe474d2d19d8f43914fbd6586351089e73babf344f988b7963fe44528457d7aad3c564f6bcbd0d772a4c9fd328e6022d1c7c9f86726f8d5a23797d309c0f653ab1ac687833eb2700f156296062a8b377078f45f6b68c3d07cae1913ba8d5a6f9bf7525a3439eb932d4cefc4bf8e1b07b48ca13ece366cbc3e0388915915d1757475103a9e9454e7e6355de2d6acbf4710f9a63e4f6d3cd70c2d6fca88dd8a14448fdb63ce9350fdaafbe0b8bd1c5d307dae76dfed799aef2d8f23d5608d37d1330dd38b94860905dbeebf78d7b7318b7d42aed40d3f9899e9f420cbd92a6eeae3026f7725694e0e4bee016ba346fed2c21172bdb4a461cebe0cfe38e76645226ac127a259c193264d735ce8c8a57e17dd3f0579e2e86dc295ad1f45ba2d85db35044da61f7d401274b31eefbeb34e8d2ae596e9b4541aae117bdac5ed0b324c20539c27c07a411d5288b0b5f6fa16e9a7df85dc319fa6b71cd08a859c06a3f7b0289e1750adbf182f9750fea96fea5ab7aa3473340607cd7ed2c626f5382491c26d5d5bea61401dee7319c94d418f297e61ceac8f258ee8c23831bda081591f5a918e96855774ddedffc51e5b180f1971806d42fc333020b734aeb45adb0bc47325d0cea5f6713a786558022afc39d573892aa3635efbfd8bcb11c57f306c72146afe8b45388125cb7bf9ecf965a7ba4f768c77be366470dcdcf214b7f6a5a9460ed4fe44ae559d85e2fdc2094de83fff12ea8804db1215c4ca865871bdd7f8ef32ab799bf923ffb02c1ded7d129beadad46c5eda31ab1a6f43da05ea08bff7ffa88d8966353d01830558c39b930b01d175e437124d8edd0d2698fd8932f2b2c9b14746e52879c57a395538150f390264f00e60d470711202f4194499ff79037ca9885dc8d695f7d917a3086ca88e8f8d0243efee09302cf39e039eb7cc8dd19d28120d5fe533b5727cd39133181c729ca6f90a015ed30be7668d5cb5ecc33a53ee69bf7d1a5ecbdb153803743c6adaaabd36bf84e5be38d3f04a5d5dbfd67bdcd3b176e65bd1391ade775cc32ce43a847fb6c672a3fe97a5d4081c4986959ec5fb898f42a9397ba2b3ec2c1018f8d76d057f2366bd0e4465514ad6560c599664fb85621fe771e00f43d39b591b2a6a321100f4d1ef23a376d5ae3eeedbfe23da73dff0ee4d16b34ebddd8f5f053db9824105fc7300dbee7ea6af56b112319e3e215a0fc79ae946f6b5227453ec7fcaf17cf7651f71499a50d81221404d5f129ac50ea7528ff0e0069ec4ab8acb7919d81749ab37a870c5ef2cc5a15cf96709d3c65b4addc77e7416847160bcabb94ea36377e0ef71be80b5cc53effd5444888044a353574c72c924bba2a8b4e8354188ebfedc852f59073f4347a8c8a28c99e21df\nMAC = f6eaae369c3cb5c05748e8d919178e00\n\n# Regression test for https://rt.openssl.org/Ticket/Display.html?id=4439\nKey = 2d773be37adb1e4d683bf0075e79c4ee037918535a7f99ccb7040fb5f5f43aea\nInput = 89dab80b7717c1db5db437860a3f70218e93e1b8f461fb677f16f35f6f87e2a91c99bc3a47ace47640cc95c345be5ecca5a3523c35cc01893af0b64a620334270372ec12482d1b1e363561698a578b359803495bb4e2ef1930b17a5190b580f141300df30adbeca28f6427a8bc1a999fd51c554a017d095d8c3e3127daf9f595\nMAC = c85d15ed44c378d6b00e23064c7bcd51\n\n# Regression tests for https://rt.openssl.org/Ticket/Display.html?id=4483\n\nKey = 7f1b02640000000000000000000000000000000000000000cccccccccccccccc\nInput = cccccccccccccccccccccccccccccccccccccccccccccccccc80ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccceccccccccccccccccccccccccccccccccccccc5cccccccccccccccccccccccccccccccccccccccccce3ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccaccccccccccccccccccccce6cccccccccc000000afccccccccccccccccccfffffff5000000000000000000000000000000000000000000000000000000ffffffe70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000719205a8521dfc\nMAC = 8559b876eceed66eb37798c0457baff9\n\nKey = e00016000000000000000000000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaa\nInput = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa000000000000000000800264\nMAC = 00bd1258978e205444c9aaaa82006fed\n\nKey = 0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c\nInput = 02fc\nMAC = 06120c0c0c0c0c0c0c0c0c0c0c0c0c0c\n\nKey = 00ff000000000000000000000000000000000000001e00000000000000007b7b\nInput = 7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7a7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b5c7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b", "7b7b7b7b7b7b7b7b7b7b7b7b7b6e7b007b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7a7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b5c7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b6e7b001300000000b300000000000000000000000000000000000000000000f20000000000000000000000000000000000002000efff0009000000000000000000000000100000000009000000640000000000000000000000001300000000b300000000000000000000000000000000000000000000f20000000000000000000000000000000000002000efff00090000000000000000007a000010000000000900000064000000000000000000000000000000000000000000000000fc\nMAC = 33205bbf9e9f8f7212ab9e2ab9b7e4a5\n", }; -static const size_t kLen191 = 90795; +static const size_t kLen196 = 90795; -static const char *kData191[] = { +static const char *kData196[] = { "# Random test vectors generated from another implementation of SipHash-2-4.\n\nKEY: 5a174c22c487d0c5c1161e570d10d145\nIN:\nHASH: 9f06a76d8ae7ff05\n\nKEY: d56745469ae42734c2ad87e7c13ea101\nIN: 3c\nHASH: 9698cd8e2620362f\n\nKEY: cc7c78ae24ca106c5d771742b530cbce\nIN: 6cfb\nHASH: a94c8f359a6034d0\n\nKEY: c8de6d120462739b29b25913f75f8be4\nIN: 8bff10\nHASH: 5f12329867deb530\n\nKEY: c435d95c06085dc26060e488f0691013\nIN: f575791b\nHASH: 38824fa193583e1c\n\nKEY: 5d5853675bbe37b0034e019c8703bbea\nIN: 20be54d583\nHASH: 5586f5ed0a52d560\n\nKEY: 77fdc2467cb5cfadba4dcb02f08d5de0\nIN: 58ff9d2af71e\nHASH: acc2bf8eb5308b5b\n\nKEY: 3f1abc8a74470e697aade7bb409d8c36\nIN: 2a0d12d99b8c10\nHASH: 2349992cbb601e73\n\nKEY: ad977640b6902db5fb05c35bde85e221\nIN: 336ddbba25fc15fd\nHASH: c7a610c0743b7f8c\n\nKEY: 9eeb5f0ce1545597c93fcd236e022df9\nIN: 123569d0a53d5399cf\nHASH: 7f25736f962974ce\n\nKEY: 56d9ecda6345127adbf79e4ec0871116\nIN: b472f565c1370a620c66\nHASH: 3f3acf72be80cb20\n\nKEY: 4b5a67fad0b4c6dd41656e79e47e4ccc\nIN: 317e7ef64c39cf111212cd\nHASH: 4c8ee337c7103c0b\n\nKEY: e0e04322fb57cf43fb6809a33d392565\nIN: a783aca573cb07e82829eb47\nHASH: 3d5ca090c68d3a94\n\nKEY: 2895c38788e064541584f222900a45fb\nIN: 6381894b7947f3cdb6eca1e8c5\nHASH: 8ee7682323bbf06b\n\nKEY: c3a0b4ea71d4e824459acac0aa2caa9d\nIN: 6a9257065f991f36ba175ec177b8\nHASH: 078b76ac3dc840e2\n\nKEY: 56e7c5dc7ba9c37095117d3b78b6be0c\nIN: d9a8402bc9303b5a67c3aa0f1975ac\nHASH: f5fc32c55915e9ff\n\nKEY: ffcd0ca31dbb4c0a64bce83d4a876e2f\nIN: 4c50fca688dcc34a62bf77554af22fca\nHASH: 9e266efdc2b55efa\n\nKEY: a358acb475fe3a545aba172e6a2e606b\nIN: e2e6007adac976736a222ad2a607d4d15d\nHASH: c4bb7312a7d39486\n\nKEY: cc611d043067a99cb5572bb0121beac8\nIN: 7428cfc5fd76f0ffc59a216b142576d9ee5d\nHASH: 67dc4aa8a52069df\n\nKEY: 19c44128e61c992e625a1187036566b5\nIN: f6b8f9422f6eda5c70999737573142bd0d503f\nHASH: 35d6199bb8b26627\n\nKEY: cc690d64cbbd6766af28d5e8809804e2\nIN: 80b9e15766ecf0fd988658701328a266220528f9\nHASH: 8da47f7d2c8a24b9\n\nKEY: d097c32707d111358a8f6470c4bbd3bb\nIN: 4a174edf086a5406f36aa20f1dc5f854df264ec159\nHASH: 8dab02709978b647\n\nKEY: 79a047071edd76cc634f9510dd0113c7\nIN: 247ba72455b9a97dabab6905b0a1227635f79f3e530e\nHASH: 1364c8043fb9baac\n\nKEY: b3092acdd6023215701aa9c99ae4e218\nIN: ce36b755300273c22805eebdfe7dadb59fff0bf8167fba\nHASH: c8e50f39c0605ecb\n\nKEY: db6c7ce746a0431f8269407f8c35a4cd\nIN: 40dbedc0f4c351a6ffc058a2ff63794419b1c2ecb4759f6d\nHASH: 9f46bd8f53a03217\n\nKEY: 110301071f6676fc2ae41a5cea83b10f\nIN: 7947c7e55c5fe0fd584ade5a30f8af69cfbcc4825ca4e45fd8\nHASH: 7305e77b0e3dd8bb\n\nKEY: 976c2ee47783766ea8235001f65d256b\nIN: 912be0ef8e0e7becfa176ed4006ee8f2e77107f022e42351cc20\nHASH: 2f05ddca521adcf1\n\nKEY: 58b1de6e33ffea228e144b4f25e5762e\nIN: 02e8b89312479f1b0a6da0f7f35e6ccb50ade322e70ba2f5b0a354\nHASH: dd0547e80e8505e1\n\nKEY: bc57f28c8f461d9714b48c087164a695\nIN: 990ceb64628bbafa3c0c4bdabf465a19d075fb66918dd240ebef176f\nHASH: 7ce492853fc22eb8\n\nKEY: 16c2ffc4e03d5f17064f22fe0512eebc\nIN: 42e78f029eaaa1474268d534d1542e6019af7c311b70a3b80d89fc8394\nHASH: 5830bdb3f6cdbf80\n\nKEY: 546cec4ec1ccdd1dec16ffd684fba160\nIN: 36fa97e2d20f91a56389c84d3c2670c25afd2d551de8930c735f30dc0f8e\nHASH: cc29ae6a40051fa9\n\nKEY: dc04255c1214077c60ed57c00719c4ae\nIN: f6eddb62225c75e47636587d992abb31fb1429cf0e4bdf7ca7610833c6c145\nHASH: 8959c817d89057b1\n\nKEY: 66fa7b74c5d112044e6e26a8f056672e\nIN: 9c303c5097358b4671f2b282d2286ccb9925e22717f3e1bb16a2a7f088c89efb\nHASH: ef44eb07b3dabf20\n\nKEY: e68c0b8b0fc194402a074069fa79bcc9\nIN: 68740dd32b54ab57313b7aba7212eeaeedcd00fc34b5a295c3742361acb450c331\nHASH: 31c38d85506f95e2\n\nKEY: 5a9bda075c2c3756bb03637b833a2c7c\nIN: 0a20ae05077a2775accf3e93197c2cbe58ec0c8cb2d666a6d1c5ab8f6a88921b33a6\nHASH: 83ac7417ef2f78cc\n\nKEY: bddb529beb2c89ee5f3e6b91c786f7be\nIN: a963b7e8a6ab9ebce913d39af035540d1172488c29b85217edf02143c23183da52a3ba\nHASH: 87bfacf3844aa239\n\nKEY: 65bf6deca182d55e94ebbf8fe0df1e01\nIN: 7c95a702ffec11b19ddafcb53feb2571214b06219feae9b8a058509fde4b54e1f16cb89b\nHASH: 170b6b574e480859\n\nKEY: 7ef0aa07183687c13f800f268a00ea86\nIN: 8c2b513a5facec6f5a34f49eedcdcda7bccf99fd9de0526ceff7c81ee11797d451d62cb689\nHASH: 5d0f521bc4b1c1e1\n\nKEY: 490cc83d84a0102cd83c11f8123733d2\nIN: 1f7312100fe65f082abecc08f276ff81164b21ad7ea83d7729dfd1ef622b5c39c884b3f82e49\nHASH: 2b72bb41af9f002a\n\nKEY: 81e1981c81e5c3010ca4b048eea1cc72\nIN: 012273854b89fb3c66e4427d460e8493927d71f44ba7ed7dc2b3cd3178faeb6f0471bc31436a85\nHASH: 6d67485ebe1e15ad\n\nKEY: b47f522fa34143dbccffc3b1f4093b09\nIN: ba235ce1ad78f2566f78270021fe9f31417c3f65f1533c43ef71d6d281d17722ae4bc8eb87636c2c\nHASH: 390e3fe50119cac3\n\nKEY: 9a3fedb06d1e550dbbb4c4c6c42c7b58\nIN: 95f641d66e88414ee49060d1b7bbb2d62f326eaf6cc3c77a359ea2dbcb0526f737b4a1797e7026d813\nHASH: a58b6f3f1df212fb\n\nKEY: 9111abb078f38c77eed9ff96e25ec5ea\nIN: e1476ccebc8fd7a5f5d1b944bd488bafa08caa713795f87e0364227b473b1cd5d83d0c72ce4ebab3e187\nHASH: 30527d54ef667563\n\nKEY: 42808b700fca9f85fddfb5d590807f0a\nIN: 5f81bd275320d97416e5e50d5d185d5542a157778b2d05521f27805b925e4f187d06829a2efd407ba11691\nHASH: e58617ceafeab62f\n\nKEY: b609075989500f06abed2bfc45c83d13\nIN: dfedfc41d8a98c617adab43f94b8d55a4fb1c02bd9c4939f8517e7207d3b8227d2bb8af086dc37e2ac24f437\nHASH: 0037588ae129b9e4\n\nKEY: c9afb75085e1759dc2bb6790ae29ff1d\nIN: 01a06ae550215331ad34fc87c2e9597d2a369753009c5a5fa2044481c6126bbbeab1a9f3d49f6198565fc6db9b\nHASH: 236763204e7ce6be\n\nKEY: ca4a9f84ef63e8b62514d34f2d74b4b6\nIN: 5f670e9e199c590700b7a7fd6b777f325ceb90f05b611ab77a970dda67db8636ba82bfc8770f742a22e66d39a59c\nHASH: bb3bd93cf471803a\n\nKEY: bbb3452a0a57a75460a77f238bdde048\nIN: 6279c2ee80f83cfc3074f24e5026a3fdbbc29e95f46a4e2862af2dda8e0c49b896f8186e0a3aa527dc4fad02a7c21b\nHASH: 823931f402c9d3ae\n\nKEY: c1f2268a501653c08ce64a34b1eda186\nIN: 2b55a854ed9125c148e97ed0fd128ab7a48bd0abf150aa86f60292feb3cb02da159698a01adc48bea1bd38a8f0339496\nHASH: 050afb47067c73d4\n\nKEY: b4a12074ce0969ae5de1cbd25e4f6f5d\nIN: a1543098dc8e85c7319269c590513eafae8bc5bec292b7718ea49018e3a0ce80843ce1aa644732eb083cfdb418582a4a7f\nHASH: 7c0fb55d3f5e8363\n\nKEY: 598233eb95280098c909e3dd3f93dcc7\nIN: af6e57e39dbfe09b91e57c212977b9b5ef48d30bf8bc8764e3796b5aa82680fb590d7ec73f4ef2357c34aaf2e12b45dd1f47\nHASH: 78ab42112974448c\n\nKEY: a91a39cfbfd3a01ba163294d96d99477\nIN: 092c683817c7484996b32e6c1fb46f3754b829b1b46120bfe1bb9123d139d46f5565c8dbc11a60273bf6b8e1bc38bc9a6f1995\nHASH: 7fa74c95642f9644\n\nKEY: 0b564ed2eee9e3649ccf53fe50d8b1c6\nIN: 05f42bd7cc89c80fb6eb8d09d4f4968fc47aabc0db6ebdbdf70a416815622d6e92de69cc675671db24d021be0b6c7545aab0becd\nHASH: 708bebc79de07dc6\n\nKEY: bae7c48ecb04834a577ad26c87022cd3\nIN: 9f5af8c66983938b16fe3a2de4d59faef425ca769d3a31c62330aafa1aba57e53bfc3d61357b618f1ae01bba3efecc65a70edcc8b8\nHASH: e9d43d98f790f1e9\n\nKEY: ac86394cf9e8668900fc3e731e5573d2\nIN: b832f6c610c6f3bc5ae50b656709f26777a9cfa6266faa80d788376d7a4b0af3c84e2f14a4b538bcde23e45f0554e7a333a95224b474\nHASH: 689de641675e6b3c\n\nKEY: dd60e6ec34522428fe517767fd94a5cf\nIN: 3ed67357449c3b24b6d8a381d92a443d333532aafd1c90411a29b80ffb6566cb13762c5c8c8ef87741023ffafe8ca473f77934acbd25c6\nHASH: 30ff83beb6a4eb30\n\nKEY: 9f5c48c10551808854f2c5965f2b8402\nIN: 9b160f17162a71a9aebbca3a32939cf09ea4aaaeb98c75aa5fe0c15a8a94cdbfb7716ea37b7f0aaa9e058d93ef5800e9ec863a5df85d51ff\nHASH: 987b4b16546765bc\n\nKEY: df955ec1e84432fec581bc446b10ba8a\nIN: 44ae821f9ddb1e1bfbec2259fad2042558fb216dee7c56af074d24b94a61074f37a011a46fc7542907af3a5c03ad64b34f1940219e3c129b8f\nHASH: ed3e957005bf498a\n\nKEY: 5a901ece66329a9488bd17ad3f350ec9\nIN: 3e404145993bf0c296c97729f9f2e6eb3bf22010fe642312c8136c0da176ed4c314eaee878047cfe0705a835a8a22e7d2b29c9328370032d4824\nHASH: b5e479243d036ead\n\nKEY: 6835a439c331ce630ef771f866f045a5\nIN: 5f2d95f898406fce05b36d1cfe21c57541bcbbb9293c3dd56e6fa8519e1ee76b40c2db8097ed008e84dd47b8aaae3c2b33037f9f7af38f3f41c9c4\nHASH: 7ce56ef8daac6676\n\nKEY: 84b224c92018a348dba300d4e17cd139\nIN: 9c520b111bb008086c5815f450a6b7b6daec0925c4b0c8cf99f9f9ddb6198000a379fcb62527d7c361ccbda2597deecdd055850abc6a17251c08577b\nHASH: 3e5ab339d1f90e72\n\nKEY: b3af10ef15d3e728b36171cd7e0bfc54\nIN: b0c30990fa7d8451403c84c7cbd650847dab3e087fdf2985eda79c48deda583bc9c4957e24b0502ab6004a85bbaaba74efe9bdf2377043d008ae14e169\nHASH: 0821d1f9e241ca1d\n\nKEY: 3f0dfe713054af061ab05dec911b8895\nIN: 0d3ee8fcd134e9814641fdff20b22ddf17ffcf3f23af7327e203cf1971329f92e99622d1b8329f9a8f9244c5efbd4ce3e07f1b9779f1d84927e8fb16c030\nHASH: 0a5fe88", "9f9475d8e\n\nKEY: 62663e655ae3a122b869b11182f16a11\nIN: 82696187d910792ac92d50900677a1a0238d91cee3cd72ad949b50c53a0613add3bf0ab02c78e87f96847d5bda2bb31e4e19d92c933b1637aa00be18eec696\nHASH: a2c05353cb689240\n\nKEY: 1d3f1977fc1aaa27f459cb4de22a736e\nIN: 935e1cd9a08b1d0b57dbbc640915c6de3eec62f481cc64a27cda6a08db9e7dfa58d13dedad1ce2abfa967f059185b41f2b72114a4ba51a9a5d279f067ed9fba6\nHASH: f64a0fe86b7dffa1\n\nKEY: 96bf9034f02772a5150b0f2dfdd49c88\nIN: 2315e242205287d3e9dc5cbe317ddf3f286ad02fc4385c82bfdbd43ff6d5f425347e229faf0521acf9bbf3eb6f3abc2029c7af2506972444425e1b92aa1d6601ea\nHASH: 2ceb3eded2754829\n\nKEY: 5e2d0b77b3478b1d041b9b6784bd4e0c\nIN: f10b956532deea1838bebcb192cf256817525cb95242e5295830db8cee586e5cf3fdd0d9a5277d5a50a8dc6e4878d2cc6a549eb52bdc5beeb89ce870e65a87702eee\nHASH: 8fc78a2ca1ba1f7f\n\nKEY: b2c34273ff91123facb2e3f4ac03952d\nIN: a43e581d35caf54ece5b668df2f4a77e29bee3e1fe26add027b07e814991bc538da16f1649886e42be0a5be8b221ad155eb7489e81330ee91b194904086f91e9e71a78\nHASH: 36ea4accc3181075\n\nKEY: 828238257380186239aad56fda379060\nIN: 46f7fce30d03f04bee6559ace020e6ce72379001c20e5fb30bc7a500ce91262e0d7af70d8be30c61fee623e67a5e46db55d1dec64bd4be6af45bfff65050800194ba175c\nHASH: 7a1a36cfdd778b12\n\nKEY: aa751839cf5a43613a3b686bb22f9e02\nIN: e0848a835142871c489c772d01ca0115f226d39f94efde92178a38f87fbb371d4791f13954feb4f493bc0707c4dca732e24642cc6effa26da527ee7472c1c34c4b0b4834a2\nHASH: e144d10851a7e0da\n\nKEY: e3d027fcfc629cc735fdb70912799363\nIN: 08a51183fb0396a1633bf7a2c6ce4abd1e44d9153d7bc2a269f478269181df5ff29346366cea689a8301efca949693e1836d27d9cff181099e878b2bd53da75866f4abe0b64f\nHASH: 4a935a091f380fbe\n\nKEY: c9852a9cdd185cb16fd88ef793bdf598\nIN: 49cb5ab1bbb45afb32878b059685a40016f3add53623e23859c9384641c537e13aff631d814deed607bb6abc375c855f98744e455e937ee1c9e478c4878854166c30d0b686328b\nHASH: f2df3a49621a40ad\n\nKEY: a713bd5752e392d99947a0a0fef98da9\nIN: 15064ba012aa36887257f3f84261ac66134c36dc02d4d8688e2fb10ea36974c4fd3963144f8ff01e3132d2c69e5b57cdba82f98453238a51653facc718467ca781e73044aa368879\nHASH: f187bacabe914603\n\nKEY: 5292ed7c7317c2aa71831d03b905d0c2\nIN: e3eea270140e52ee204c78b9a4d86c0be9c74127acb4f3957b1fd380417dbd57f91fe69509126e531a62144cf7ec147b36aee7931b883a028f93993bb8068552e1ac9736775038c8cf\nHASH: a9a8c0bc50104e8d\n\nKEY: c3117a19ed788199add874b10f62190c\nIN: 112a91dad631502ec6d9a569d14cc009779bcf2ffa489ea4df85c275ec37148b25a133dcb6d4c3dbea8ed4375e7cf26885b991f96ad984880bff76a62568fc115d3762dccb4522f1a27c\nHASH: 4fc2a87b168477a8\n\nKEY: 45862eabc24e2b62acfd8833595b329c\nIN: 921a7d233720992b5d767b61f86b4d6857caa99d39e18656de8c5571f2a7295af7e0d703467e4c0b83f6f7079c63b55657776d3020424443756388ea217c2407284fc8657d3935a9b34573\nHASH: c1cc6da484446857\n\nKEY: d185262e194717d27be06c1297b8f27b\nIN: 7804f030a6d67847f53cc93052953516f66c915affba735df79df7da6d70bd511e4edb33fd712b58bfdff47d98b8acfaff064bd4e1f64828d61a82a5e72ad97573f4631fcec0ebfcbd16e67e\nHASH: f9d37ca5a7750584\n\nKEY: 53ea30bf7b1aeba84ae8e0b434a8657e\nIN: 65ffe0a087ce955a6170462711dd53fc057aeee9fb5e7a8cd866527fdce70aa4b8acc65ee4a366cdae649cb5342120cd7cbb9d536b1697cc45326a44494aedefb4f7d96fa5d0ddd104bdc6a84c\nHASH: 965ba9830abddee5\n\nKEY: 79bad8d7ff51922ef1d540b7d8d7663d\nIN: ed536d02d21049bfe6c1428ebb6a8faa481321a4977a685409b0fb2ca39d72c92d3db0ac406d56e2f15d6b6b62c73246807215bae613d283b8a35678df263fdbb6d3172c16909deb8e97d78694f3\nHASH: 4841b9dd5502f605\n\nKEY: 104104e76e645e83c7b40c6674906d55\nIN: a7546cb4e6b1b1c112aa28563028e910915c6b44b668bb57bd6623b941af4c3e22c7cf6eff2f6c474657fc5ee293db60a84944bafed2acabdbe6a6e7f0804ebed61786c2cf29cdfb0c62e8d41df81b\nHASH: d21db84542deb383\n\nKEY: 8d3c174a295a9d859e009f73e113403e\nIN: 16ed05c2b7b0c54df274bb67804c5d7671b915d899e15b2e166c3f1e4d9e990ab5be59c5e9fd70e1967a8021797ed8b2e40182f860dab2d0208dcc7c9fdb7bdcaabbc81f5b9b8751c558c5418dd654b2\nHASH: 0c4d09f8827c0c37\n\nKEY: 55bc19da3d5e60a3308379d5900165d9\nIN: d18ece72cd2f5fafe52fd55def2e6af0370e420d7aff7968f9cb5efc44ebb161a6bdd22132aad0aa9685e9168ebb9578209e51865625a4cc86c8f7898ad629b64e400a7d4687a5c3c000ad724a281440f2\nHASH: 7c47369a6d8387ff\n\nKEY: 58a3165308ef3c5e2a7c05070085455e\nIN: d9382554d5b633afa16065e6dbc0d472ee26629e6217a293b63af73cbd4a5dc3cf61ef7ebd5b6900a34bf4ade833c0dab9afe9d2d97369bf2814d03349d6e917adb5e0e1388772fad1a4baf64d7836fe3ffc\nHASH: 2ba3e3082bdd312b\n\nKEY: b636290e491b0ac22476c91c958ab313\nIN: 3d27f5c20db62e3abe1068c018fe8e09e4823b8c1209b74a50dbc19302e190350dba1c5ad616007c72be04bc21d7ef0a82804f266ba95fb3047a6a05de3f0d7ca3cc7c4633a02dda4f367051685535d8e1a155\nHASH: d14da7a2dc3b015c\n\nKEY: 667094c06354337178e646e23e453403\nIN: 215f856c43336295b5e4d625d8cf5b37c4a5b07a39eff2b42427d5df683982ae78ec85ba085740a28446c7928bce24be1b66a087898634a3f6260a3926c9a8f953e235e469c4de23fd32dde181168525b716a2cb\nHASH: 2f7cb69c5e4f942d\n\nKEY: 52eebf5170c603985982122bd8eeb1d6\nIN: da1ac8ccb4c66979633092524e42ca05df667ecc3921849a24c8fbf6aee70a01504ee2a80a000ffbc7b7629843f15270982a59ff9f3f081963a109ae8eee0a1d59baac5207f44071e51c64535b6920bc07bbc9048b\nHASH: d3a5fe4ac656bef1\n\nKEY: 1c1515cae3eba8cc9ed94c10f8a1c211\nIN: 4348d387039f7fe59a1d94a9e6d894241d62eb3ee91c19ebb09064792abb126710a619073fd293b59fecae7d90655d651e542be56a01ae5d419f14b1cee06cd90ee68e0106cd48130dd6e0d73db8fedbad3b00ada87e\nHASH: 57a4daa6abfb5a2d\n\nKEY: 8a8680122ba96ad89992741a8802f79e\nIN: 6ae10dfa31e5d06aeed3bf640591b9810245ccc175a8ff9f36893ad6e10c6dd9347d001f37c41123e4ea16b86b08aa3498c75bf5b8702228fb654595fb930cea2bb9ec97ffe1fba10fdbb7e8b16a2495df30abdfe1fc4f\nHASH: fc353ccf54b8c294\n\nKEY: 40d3e4941056b2585e1ed3bbd3196b24\nIN: e1764c110b024e2c406a18d6a6cb1b2d8dc05f8cbf635d9c6b59f8c54f7cfa1c9022f719d28979dfd75f6a221687690a046404fb1204cb27ab6502f6f24ac6d9c272852acfccb2d51948ddb427950c95ae4045699ec002c1\nHASH: 47108a5f3f664b98\n\nKEY: aa377b72cf2c282946fb87e6f3f16fbe\nIN: 4bf7833eb1e828df6fc190ecb568e3e175307408c4f851532afe731986d05c2e0a6d21c40b0228af69a0cf4f30293ba119462f3f95200386c70a4c49ad7251bc797be0b504efd50c98c3099b1119772deb764ba799bed28d35\nHASH: 6afdff80d074b585\n\nKEY: 304b7a8d2825ab0b4c78a82b202b1942\nIN: 43094418f2f65b85acacf5b3190711332fd3fa7c1e471a49a7d5134ab7f22def6fa973cb135a0add46fa482e7e29976abff74c3bc33af797b46540c85eecca45b848b55d3e412970c8937fb97d2b61af68ff3f2876bf8cb72dc3\nHASH: 8f89c9b9a3b9bf62\n\nKEY: 1b54ae53fbea3567a9678350ae934303\nIN: 8d02b02800d9605227fa73cc920962339645c72b560ba8c266b0b9e94eb8be0c9748718ba9cc48f1afd12e8b458d745596b763c7e65cb8a0fcc3d937c56e04a6873ceeefd3a77f3c545eb957a9a7bfbefabd47dca867ea92203c9a\nHASH: 86f09b1edb5f7934\n\nKEY: ada9526398c0ffe64b200ec1823a0d16\nIN: f6fcdf72c13acae3886dbf6a842806fc9ad021d0329e595748a8cf82f375fd357e1cc37a7d995d869373cad1dd8ecb8dbf0e5333767470378fd7e5b0d1fefedc18fcf045cfac7d883e67a8a32efbccc1a87a8e089f34186f7ea4ac41\nHASH: 64e098ae04f9e06b\n\nKEY: 30f08a4322a8c71e1e1a6353b371fd4d\nIN: 80df14c6bb51846621cd95b57c02e34afe6a96eeba8bc29002b2514f26c3ce53dc81330ebdfe8bce32d4e789f5bc354b03b4d10a64a10248dd1626726ff607529386f7becf9d716664bed65656629cef7fc7482e9046af09aa7ed60072\nHASH: 746b10b00aafaf2c\n\nKEY: 9bfa27a589f425dd70390c6ca1e1760b\nIN: 79fc7caea4cf78001a8d601de3438584517972e81d55c8e00b5c8ffd1e1aa5896058a56e636a4e66842d31f5287e01587601a9f79488db6f28f0a5644b34de163831cf462493ec579ee0c7631adda09f5e135cd70e6a4504e52823c1cbc5\nHASH: 1899998766305ccb\n\nKEY: fab33b56c2b97f9899438d8c4448a721\nIN: fb7e625072c6dedcf31d0fbdaaac81585465f6227d1a37d60befeb9662823d2bfb70f0dca67af4c1c60f72a524fef0c243a758f8b2883f17f2b113277fd71d28378c027cc9aa8c79d5dadcd65c2ff275f29a428437f424ab2171c33f819df4\nHASH: 208be5482e6ebba2\n\nKEY: 6ede0e899a0dacffa8c8ae3cf7552310\nIN: 9865e6577b8811c937447194caf30ca9db318f3949a0a095a148fa0fe0fe7a0ef4efd7c04c7f0ac13206841ab8b30b6b1a55b1555da37a40d5abf1543d59f1331309c1ce5f2adb39259c152628dfbe10c0c5e81ab172c025f9b84abc2d996834\nHASH: e46838d2cbfe6c33\n\nKEY: 2f0b8714a8f0454f62db8dc4fa506a6b\nIN: 6c45eb8e88bf9e63db9d1558e381f4a6f831727d866daaff9d402ba1c3ec6911aa4c62dff1bfac2fb00a50be2c2d945b4c1cd10d1ab0d96d201a5e38d80a5ac2cbee6b2945091e91aa40ccff6f37656392758bbb7da5ce2ef3c933b1bf83f82201\nHASH: 433657c53e5fa081\n\nKEY: 85cf9b7e4bd9af87f8fff9d854fb894a\nIN: 0e808570f9bfa7fde488e3fedfd61905b232a2e6c512ff4659b6b03722d4d1a8ab0b757de0eb114c52620054364d51d6087417f2ecc73bfc78caa8dc5c3063722b8c7387f5cf1eea7369baf108092b1736f34f3c85a1a64caaf188753cc348ac09", "34\nHASH: 25272780593c358a\n\nKEY: 903764f0b9bcab23a0d1e7b0d8248711\nIN: e63b264edf7a3ab19e8f38ae22fb9e00ed7c80d25e3a9d76def3c3cc7975ed5a19aeb552a559da1cc6d6f4d7ad5ade44bd7bb57ad1910a469fc7082267ce9644e9d4e24f1ce5afe6cb3886172485df77b3e47dce36e549c62129788648c3738f836caf\nHASH: e995824b960f3012\n\nKEY: 902dea339b29a5a4c54c71ac3486b509\nIN: e33910d372dedb9a154cd8b1ffd4d98c58c4b8c93b5d7ff59a87a40730547ffb145a820aea56bca4f7c043c40aa2f5e0099b9a91683d2d2927febca53c727ecfd8dca77830012c0d33135a2d1a5665c013c4126acec9073cee84f429c2a1d57abff643aa\nHASH: 7a6d533f1d13f598\n\nKEY: d760372d5a2224bdd096ca9c317b315d\nIN: 868257422e5898c7de261682a088bf97a19bddba87650eaef967e4085d5145787dd8a2236859c67b1d96e64a81934210b63ee44adeb5cedae03cf3598496f7b77caa7f2a2f123778e3720229ee7eeef87837a0d5de7ced3baf40114d663bc0e576ce6cec70\nHASH: 05eeed619f335b0b\n\nKEY: d443db5067af5681f8b61a489400d3b3\nIN: 2f69ba36de9d7f2489ad092263f06e04b87179dbbdc3725a8478abf6930f19ebfd1a23823d41f851618f6d533ca56273e602918c27926cd77e7380de5af322bfa2704ec669ef402971bf606da799b85c8d51ea8e2f8b8df3e9e4ecd9cb03f9c1bc387fb69a02\nHASH: 3b54dfef0537f65a\n\nKEY: ff85c309dd953710c4c450015a92db7d\nIN: 3b4cc08fb998a83c0bcfda112957646e708a5e7f457c33a4e31fcfeba9fb5bc37be521bf351eb5ac1bf11144c3fd4837cf9d9728b02b75c51fef0342140e3a0d199fe0a67710a3a7131c6d3c33e0ca00259cab1b7cd1d6de7ef81e97dee7ecaba9e2073c08096f\nHASH: 0880d53fcd40525d\n\nKEY: 50703fdb1e055a0f72353a13de243741\nIN: e94047f4276abc898fa1e268b53ba5effecad744a315d93f1218a47725ac6512bbf0e418681cb15e6a98c3a82bb3fff9f64583ba39268a70a45d91f432baabf3f38335b1e9f52a4141bfaa1c55570ab0ecdfccd5d7cee5bbf692277849891625deb64a8850a477bc\nHASH: 758c1f2f92b68e49\n\nKEY: 2b022fdf4bb13146ba014e1f2abd73d3\nIN: af723b77807c45b4aaea43e9d79a9149fcd1fdc59849b1bffa88abf27c6a779fd8172f325909ae43e49c2a44d3991350a377d58643e5f6ca9d8743c7842d58cb8706814d783e2c7855b8d63e55164cbc1fd7a13bb963d6c5bf4be737a0159c1347a72b88c0c5115a4f\nHASH: 2275a762396e6942\n\nKEY: d6c230457b3494e373c113c4fbfc8fef\nIN: 7820e1b5f75780ae7e6360c6708ec8bb5f82f948e656deb214a29d7887162c67aa1dc547b9b1b878f870cb44b22c61f804c6a9bfefd38588253360532a558c4176c98b63872df3741a718d8487e9bf17d5da3ca9145cb76a9ace837fc9b1f3065b8a777e10fa95dcfbb3\nHASH: 53b8f6e69f5a89d7\n\nKEY: 17f7716d7d49fbabdf1583287dda7802\nIN: 96ab47e1979e30b418b98f8b0f86ee5f5a773b3ab1d062274a4335f2f8cec6a0586aeaae7dc4d0da82e52c3b4b670b0ccd724b0100af58ddc74899995bf000fc626490b19b8bbf4f6352879a0530e97f9bd2418104a1a27e7252df3a6b996b27f54503ef8a718a8123d580\nHASH: 8aedf4fc510a8fe7\n\nKEY: b12168e2e46319863bc595aa421cb4ba\nIN: 0ce0a170319192d56484fc847a8285abe28b3ba3f8aef58702df5bf50e4d0ad2320946d8256dbf2338c8c0a6a1da48496adf9941a4d38d74e0c8aa52dbb5c757e28fe3756421964a3e4eeb9fdecf2529d70216b00515d5869087b611ed0ca1607a650ed6a3707ec6bdfa4d5b\nHASH: 4d85e666f836edcd\n\nKEY: b05bd753656eae367d8f37b4907e4fa7\nIN: fa2a52f77554506d25e8847bfe613139565cedbce07110a7a5af53d024204af9e0bb08c8266616dfc1e21bd5c651de626e1303b08c0c90ab709613caf2713848ff1ba3310852a575d07e12c7691cb081157147a413e80d53a55248240eb5dc566b8dd67d616c5d4dd8199d5d69\nHASH: 885116def6316c20\n\nKEY: 0bb368a25169217504ce1bbce5820394\nIN: 34b4df9ec90072e91548fb40a35128349986b7e50e425d894664a270f919456abc031284b29b6bebd734e53d5241919a8dccb05c38c633fcbad53979d92eb7cfe111584155a4c352f06c29242178ed4d904ed739a04d4ebedd27b7043d79afa9b740df4ad58c5640da67eb121997\nHASH: fd965ec9c1ef4449\n\nKEY: fdaec5633f8d54859574792bcda87468\nIN: ed96b9cd567f55d1d9e087bd63abccd07baaacca8a6d375d2576f00b1e09b5d920200a74cb12e8721e550c80b8c61ac7a8e733e1a14ad0311c30afc83f5aa7a8cd9fca47aafa84babbef5f93a86eacb5d50f696b7a60f0ac48f9b57dcab2168ce26f6390ce3c091a947397db050ce5\nHASH: e92615340f232b12\n\nKEY: d529ce056cb054580b538c81752d63b5\nIN: 75677757aa8eec8e44411d238aac77fbf1158c1c9c3174b78eab4a70034c325e52cd1a275fc0a24c432f82a10b5920a922981dac43571500263c0bbfb95d08bf20acb526bc6a180e6519499cd571414f7bf69d704b476d62083d53049674c46fb616b028bd269e1b822daae40ae4ec31\nHASH: 9d6ee722d9af0ac1\n\nKEY: 28b413218335bcc2f9031dc3554b0585\nIN: e4ac05d0860d28f45b7dde35028dfa67c25c8364545bf27a016228c4f1b5cbdacc418806d229d1fd2d30570fdb1304e38c7443c02d2e55ddd20718dd09d0b3a667df71c2040f079c9798a7f5ca7b09186df6c44edf4740433ec17873180038f7c5e0d4220d3755e264b0543ad5a5c1d537\nHASH: 7d6d8be4026abd19\n\nKEY: ab31c8820d2d02f63dc3ac5acac3828b\nIN: dae9931233787d476b472cb8e7ca4f86c2f8b9cdc38f49a50857f99e4e64b89d451e1bc8e5afacae36579d51b8bf67a4be36a65f9b464a150c1fc012c115bec08e45bea214b80ad39e1a705cb9b0b759901133d6619812ded8abf7848a67758f483aacd11297315dc190746a44e9ed56708b\nHASH: c9cd54ada0139758\n\nKEY: 145d3281341d26c75cbffbaab06d783a\nIN: 9859eb836c49cb41beb29eb493988b459f5d0b22a4dac9e64c34f93a71a700612cd568f76b84cf71966edfebaf6b27ef52524208e4905b83f8d52e879618180101c1ea0e326a44bb4d59539f779a0157af835c5bd7009882f16bb2aa2c87d49b6db49e996390a3ace578794c4d0f1802dc0a82\nHASH: 219b0dfe6c21ff2a\n\nKEY: db21409aca53c06e34752eaf651ae7ec\nIN: 962ec5dbe61976d91eca580b50d3b21c478bb8139da94be0a90e68f89b26b8b28d3484cb938791cf729a269c54af470e528a72ac9122ea10c08e836f8f32f1c1bbcf10716ef243d2abbe31bbf52dfd6c6884b81d6c48f18f087842b055432e5f67de978a2e7bdcd645dec43feb33f2be7fc8bb5d\nHASH: b31faaa12c80d2b3\n\nKEY: 0a92a6dce6418f53cd3823b9a40c5183\nIN: d1f4d53bd0409a3127ef19482d47964197bc061bc779b32ca5ca6f546c18180dfabd32b5a8519f868ac3ab67cd72c3bfea3ad96f5e40fc09a64046ff818928ef87ed043d0a0994c1adb8b0bdf446188b98b20dc65ada689654c5fcf8fe26d66baba8c02d8b39ee2be9217c09a62a4fce8236eda6f7\nHASH: 3e9be4b24cd3f47f\n\nKEY: 868dfe7c81ff02bded7c42a242d4c1bd\nIN: dea44a7466a4910b89fe6abcd824e65603a17ac436890fecbf4f6bc6809be8b13c0a6d593840d48ac59de059787dab1c1ca09a6834114cbf7ff2686a71ec12921aff5e13e9cd80c77ba7adbd361e72429c2b46eccbe27b25068cf457f865bd0149da14383317bcf8fbf949e36eabc7f8dde08c5483a4\nHASH: a0b3afbcb9412ad0\n\nKEY: bc662a2870b8baf74a1153e5d24b4832\nIN: 503401e821133e2ec69942d28503993e0337ac43502466f788fde4821e5bb2be6b0aa80a6886eb10dceec3225762a1357992b740d5ada6f6acb26761c57532599c66c9b55812ced61bc0293781f600fa1b2d211a7556702f41203b7824654207894feb9e2f744e03f5d79682ba4570756050e42eecb3e0\nHASH: 285affa883d1597e\n\nKEY: a51217e323aaa13dc0debaa2d26a7141\nIN: 52c40d6b8dfd5fc99158481dd889643452c533643534298382d2f3d159a7c0f019cb614d8773299451ff87520d9680e5f283e9e9a2fe9a8a7b5e4bda6b94e578b97948eb9bd868ac3c33ba79df325c141eb83ad6be7c1b5c9001d59f88a4bb2208ac62dace5922b6df16f09092b48d432bcdd79b4eb484cc\nHASH: 5aae64a7fcaf3072\n\nKEY: 89c8b8541be48278ee4cafed6616a581\nIN: 86a7c752d913e379429724ff0358994fb8ccc6605573437ed5742fd1b2934c6943259c2eefc5000f5292901a154e856df3c8b7fdf370bc72ffae5957f104fb3b07ed448def575680bc637e3804ce9cca9ce1d85fb79b33e8e4c45f1f974d0613d40c63734b9c927fd0e6e16bb4d288204bb759b199269fa7cf\nHASH: 339b0843b05f2652\n\nKEY: e8b664ce32d35f060e5a015caa287b7f\nIN: c9d496f2e1c2141154bfeb0c4a4347fa7fa002ab2573c634b2c2a376fd270c7d45d2fd6078e4d997aed34bd4dbfb308e2c1a14d07f58e1363c3fc4bf32adf4af4a6d1bcb79e4c5c3db2ed2c68fd2229b6b5fc831d7a2cce989d2ef8dce13f9e076aeabb5a30c7ae72f4e98874f885cdb52518e71a020e0bfb7c9\nHASH: 254a78254aa531f7\n\nKEY: 1ce06b6d7f0c15734448e53a4fa52fb3\nIN: fda649ace37b9fe4f4d572d8b1b74e28ba13db46f6b0f42ba9ac940d379d6d50623fc1ef7545763651818347ce38a3d86828148b14ef090dea626c5c3d1379341704f719ffbb234e423b0024ee635ccd2ee50c501d8689f84c929d689745a05bba54f99a23fb248366ab05e31bfbc18be87110d419ac43834476f2\nHASH: e5d2f7f9315945d9\n\nKEY: 84c2f71ddfa145332dabe73460c7e03d\nIN: a8a162a8b39975a998568ede08dac2c98a7da7021711e159356c13cd39f5080fbfe7f9f2ffd75174ed6bcd82fe0cb158a83d10bd64639f0c6a10335635c4aab34bc0986b898b9b4dbc013fa456a34374aee1a0d437f1de697f5fd2b87c9ad39017434d66761c0f26e81e9c99a9dd57f390f2488ebbfe7d1666cfda65\nHASH: 7c416c3bb889ff8b\n\nKEY: 63ab163cdeda549ba268896b9a677d89\nIN: 64be9cb0aadb6544d4401ba45a3d2b7d766d7d67e09bb2f141e743fa72b8dd14d7427fa2ec37ca6dc5c32861962c7744b1afeea8f28f878420cf67268281ab9ad6dcf0aacdbb52a6983cb91ebfafd294aefce90c6f3628376d7afaf4fd5818602328e215cf1aa3c9510ce53f42dc04288accde985e90224260e318d589\nHASH: 21cb18940175042b\n\nKEY: 2f8057e7a18f356d187ac98e43127515\nIN: f5c76f7b6d6cf30342c1f4673ac063091c9c02862238549255bfc2530f743c69cf4943a9d4035fa1912826673b3c9892a489e0afc011abc45bb5a251f2c80ec97962f366376841939e9997637ee1a2dc0655e9e8a1d262b046cc4c0eccb981ffb46d494d5537cdb202b840601380212f67e728cf9c3867cbc53c0a825f61\nHASH: 843747a", @@ -7089,278 +7399,278 @@ static const char *kData191[] = { "739b90eb2\n\nKEY: a96ec37c773d908b5cc732eabb877b24\nIN: 6baf8f4a20f45bf086c0003c0c6e3837cbdbee6f861d27417547d06e21feb53703fa0f896dde73cb97671e4af7b27fb175d802bf3d941e13172ef158aa6f19e27a504e46c1f1b1dac741bc3ce66b73f46941821561be24448e37a64af54c9beb16da91ee8705d13b2882b9c80fdbe249e1d3b6e5c671ee524d76f543dac473bf83cddcd95c07e82d70ed4f0d86615e6d3776e6db7f740ff7db55a949193734b2b9caa48dfafd8bb40bd8cf2eac7bb6462e92f2a0fc101c7b1fef491f6a16c1c555df9a57a1f7a8e70eeceee14bc6e81882a8fecc48ff9b171b9e8915882f281925282a479b8239bfb48d8cdcc56c22294210a484702c5a8e4d4fdee2f6223e\nHASH: d10db578e9b44fc3\n\nKEY: d5f074017db58f6e68d210b58e091d7b\nIN: 319a1100ad4e268dcc7f3ce71fac847336fbedb9046c1b1b433c373385326fcde6824b3b1ff34f86a0a27b9216afe3145945eb5f7aa37875fac08cc62abf01e2591f8d8109f102214457193412c58a393c4819812ec9fc2079df042a3f57d172d76a8f2709b942e79b3ef839f2f51dab93d225e6eaef30b2a67324481d60a9c5a215ada44eca05470337379dd01eb0dea2cd14bcfd0991d0bb11a6b0fce97b4e51492fa665ee7e29cbba50a5ce0d50c663b16ec8260edce17d548c6d8566cc76ea7270e406f9c888849d15197b37d30c64eac4eb90f3101ef65b3c1493370f8758e7d954b41a543e520394f2da5229efd6f06ca947bfff71b11425a67229120f\nHASH: 1b460b968867e42d\n\nKEY: 338962444ff46d8d1c4ef2d14849202c\nIN: bdfc2290fb71a50aa63595c3f11ffc426539678601b31bae30b1771435e3199668980adb627c738ea28ba458c0179e48a802d81afe0b2d09b5c3efb06808a22d73173049781c0822d780e360e442619dd82cfca21291eb0b793eaef44202b7a5e6c30505ce4e026bbf724ce76a05e827c526ea99bef552460abff8058142e11e1c223aa0cc31bfa2e5f9184d9a0fb9533facadfa08b5da0a7b65ea1758675bbeb1ce2faa11ce20ade70ad5fcf88fd253c75e5a2d0ec79f3468e5056309b4d46e1e96ec811a14cf6e64fdb91a044979a86b571a9d701b6663d8f24ad77c4a514576fa942f45970993dc703dbc68a06eb688b9f7e87fbae04019d54320a26a5b7b84\nHASH: 2529cebc7a6002d2\n\nKEY: 94f80db0bb92d9f844c8fcc43ce0d94b\nIN: 3d09d5fadd1e79e648ed155dde5646d2b9b90c9103d4d7b4d53d5ff184033fb17db63516b70d4407aaf3be325d66d7196d08e310851c7a9f6ecb6d3a73b7ebc9bd604db7bf93879e17c2e1d7654247295ea02b97a60a3b85261119d021ed1f040f27e456f011cb46dad312b65c1927765cad2c56227d6aed2a5d7754a57de58c11f185aee88e38ae5c8fdbfe6242eb3dfc7981592556cdaf21351648abc64667998c4003cfb8376417ff98b506c0fa51dd2a152d00f34f6ab58c883362b08c986041724d360f68b94d8d071e327ff536023c98313f09df4ecdf11e16ecfaf3970ad682086ffc7e43d571a96b7103e9eb80acdb6fb8f78107a8042b2c8893b1d2f19f\nHASH: c4746b2d19941e56\n\nKEY: 995882b99f51c4a67f5b55f90e2a9aa2\nIN: f640e51da483aadfa88812d5851ea3a0d9e605b144013ffb7f74df26cae9317fd90233e2893575d5e470df2d80a2e9f4e8f6f5e5f885498bdad37d1489ab823dab96832d48c7617b255d40716d54dc45e9bb3d88f908d573172486d88c698496faf792696ac1f446419f6459866cd4ccfac5359ad9fc8a7bf85f755d08fa5e44f4b0def68513a39ddb97698180592baa03e37220eb955c636baef003040d753d5b2c307edd1b7a24ba1df13b9bcdd72cfbea7b17aeea59c604e509f511855e3784328479de46457d1ce706cd2f9e937d71192ff215733c62a205a6f08b901e2521e1935ee33d524c3d10c73c0a593acced88f73bf6624b15de138076569945cf2b6b11\nHASH: b24f340cc0fb1d2d\n\nKEY: 8da14614383bf855cdc281b5225515ce\nIN: e17c973f19eb796bfbc57ddb9601806998a5e97f18a3eca6a1d20c3cdcd109815cd8ee13981858324ab89e8b30214e3251e6f308648552034545f7d24ca74aa6de5bc1513c20d869a310ad1a44e462666d2817c0cc225a28efa78b1435c80adca1e07683e1792152267649aeb7ee19efade02dbc631b1fc58ac59671ea5982234da90dad42430fbd85fe6527991ccea11bb805815fdd0c8a920dc9e818a5fcf8fbf680a06999c42c33c7cc712dac8badf82059d142c6c3f80a8d09c881182cf336cce2e0e088d0af39fcdf6dc29c1ef496968455e2fa149a65cc57df06fe6830895e2daf352e922bff8cc3fc757161f3c61b2ec9e7d787e1ad976595d27f0f5fc5a04da5\nHASH: 36bd2cce6ed21122\n\nKEY: 70e11b8cda2ab4a0abcb736625145d90\nIN: 7f4fa8fc41f72c8fdcce996949b74560ea9fc7a3c57e502628487144472bee4300671cc1617fa7c76850df408b92020e7f5d377f4c8f410288ff60aca90516d0f1d13969c9e5af7e348ea7f8f9a36b8c69d0645432103f5b93ab560f3113e2d86b35fd6e704116ae5e7bfdf1c29b6d5a4570e2b1082a3e6023f14e666a76af86e4661e140eb836f262dbd5d388c166215ac4f39dd9fccbe3a3a8c58a2236304e8fc0fa1fc535e860e888a0d640277426e2e2a05d855c5ffd0876ee0306cc0c394d064fc45e974d1c19094a1e83d59057bf269f581637f343a9fac376ed41f4d193aa5e3c30141d31391c02390afd81bd32b6865ddd8974a44724217eaadd7ef316e0b4c2a5\nHASH: f6624d4d13833699\n\nKEY: e974c2247093c75ef6ed70632f16924e\nIN: 71f2e0508d7d36b373e8ee0fabf49dfd69638c5a6c79be9c89bbd0043b3bc66abb3618c67299c0afc4e24af8440185ce8d7d8b1d45732f123aa8243a9a0a0bb27b3d6bf59b39e389c15211b92c93bc5aa8582c98fb1523427c84969a65e99775e9d97f382b9ab47ccfdaddac3e7201f917bb64843f2b804801a018c71bb6f632f4521c1a4e9a375d7bbc8a42e561843dd65ae3e7ec0da1db8751960a656876983986bb2be2dadca5bb312cb004eb10f1c608af4afa599d946bdf8bd52102c257871810f5c8a899580287074686738a5823f33e96d3c2a7c77b68e4a21a5ac50e06664944d0cd6bd40ae95a2e21236e671bdaef79f08da52e2a6f65131a2e80c6263ddbeb9759\nHASH: 00ab496891593584\n\nKEY: c6f1ee0aada0c076cb20cad883bbcf52\nIN: 912f5b270fe4f445134d1caad3cd04cebc9c377fd03d3e26b82d4449d4ce1914ea718a6fa8c179dcdce1d117e99f4e8cad2cc0f0c059fd94cd8b3149a38a6b271c7fe1c90943c7a8d40774817c272a9139a05e1c0aa74cfb5a7c3c93aed9303b9579200022527a0911908875e23b1d8bacd42a123fac2342723a77942523b4aa858ff284821e1ecdb82ab2858580227bdb2e297ba3680a1f1cb0d31cb8e6f6c45235dc64f4c3f986c24f9ae3a6cb9d3710d58125f20d8e8c4cf4f89adc091649bd7a33ecb58cd163baed98e7e4f4dc16955f7f09bee1a51e0f76e9575cbc2733bf58bb4be4a4e2a2b1285c1b928aae6d8d9becdbc3723b408fc01acccb95861d23a3940df799bd\nHASH: 792ff12185fc3326\n\nKEY: 5cad21c8c3805f62248b1e1758c9c392\nIN: ec943f6a3d3681cd718f532bea0e5e2839c9425d0381dc5808cbfb273f6730efd52496b0331a711fce232991dd0847b5b6fd58330f54c19f571346d1e100e2304ebf5fff1b1047ddbbbc4dae02ffa3a21f8655b8972f683a33676352908e007ae3d12ce62e77acb2ca8278161d7c6964d6b97332c19c1d1d7288542eec4743731144a0e8a0abd58d0df0664eeacd5e97e272d672e110734c84c075b9ca5ecc279010f22236063a8ed1a7ef31bd84637832ce375944eb672b51edd7b4b248dca106295d83f14f160b63f84a49cb6a0ab143494ccdf5444c464ede3ee7936f821857cb2f3cd7d29da414c10ab7db05e4d0817c1556804b1d3d9c771adafae48541f930464549cd2635\nHASH: e428c0fa3cf4f1cf\n\nKEY: f6f49ac81cbafda6579b81c9d34de602\nIN: b5e3e21c2b2104c50bdd9a96667d460c3a4c0a5975df60369ebfc0f6ace585d727292f1d37107ef0bdd7ef16fe8740e0453501405c2a863289773a4d121b37f01e1672b0339f57fb445f132262f6337f64e9df4ed7fa79ed1c722171cf350f1c1d78e7427904ff3b90bffa1eea64181c4e69440af712e37b7dea95953ebd4ef5efa7bb3b14f3f452e204f9a26fcfa104b80deb56e16e16af88fc710f68df3da7f162e3de3aa9f31a2485169411d6009014578cace09aacebda2e965cd8c4841df7e31704584aafc459e02afc978b812f8ba22e2887728243658b4adcc46a471aa357567505b17fa51fdbc4c5ddc67827cc86f66ce3a55257d00683ed2b67ea19ce1ba0eaaed8c4c1a7\nHASH: 1b44de49c45e9bc3\n\nKEY: 05f5a594c805575eca581fd6e8b16051\nIN: aefef8817ca1ec2ce86d04184ee9f5da020497d3296395cecec10af22696deb65dcf3cfa4a3b808eb1826ff421de79aeebfca796306eb3b39165ad11d8733cee89f30229f75c06dea935045439d5a69ac118c5ca26bf59a9cade2e6b80b0fcff911eaf7f4097f87751570362dc5aa42a379c5ad313fb403b15c9c6c517be4ec28a22039bafd618284b16e12bc38c39e8525b930f5a630d4d595980becae425229bee4c63706fc172f5f9ba6cd5fd36ab474112169c2ef52b2bd72b2ef3bceb8a82ca53a42abcb044b712cc1a6b37a8ca8894b9904076452ddaae641f9137a72987fe928c20b67c2ccaf9fd601fa10c5e4c968727357c4547fc68b0e11b35f4fcbdcc3784c2722eeebefb\nHASH: cd45d7070e5ecb55\n\nKEY: 0546eaf96bc197e372139dac59c9ca1f\nIN: 1e0622e2d160fe532cc789b76e99a5fc7e90078dfa0d3d9342ca8c625192afeacf6935e930bca3e7bb2d7a4db23371b6ee3e645b9c6939bc3d414ddbff363d4ecb2967962bbb1d3b86a476bedd5820d17b86747c886efb34692b87db843588d0db53c3d91f2c305e5d58cb7ab98d6387ac45400d2ad1f2435bdb0c4a76c6fd491c3f2bc049fe70426767cadb0fa897e29cfda1bcf4f18d0b15795de39ca05fd2318dcc8b9afb7a278e986521ad971a236745bb62a680b47707a7dd1ffeb98e8e61edaa038e7c2a568c4a0060c38752eae915e4f99c91d6de11574b3dee5f85209acb8a38a02d0f59f5192a3151ba8073682d191ddd26b01913e98b403a4ce771e5e020ffed080d2dcb7082\nHASH: 079a62a92c61d7ad\n\nKEY: bb1780c25e2afb8c9bc58a3dbec8867a\nIN: ed5287df6db34449db95528d55e64ff486f178d68135dcc996593592a40655c88dfbef41fecbbc09066adca3b3ceca2c9f7be48ba61587ac3c69bb5589fb257bb96c000ab5e5843e9e7257095ae087d084aa7e62e9e3f74079d1c4c10443c9d9bcbcae47c74e72c024e5cd13280f058a772afc379d2dee0e39ec0cfc219cbb2af7698162a3b84be52c90617760e84d3743909bdd5cf21bd3ea3e3e37c3734dda57a06db25ab81ff02823f6d39cf9e068698e1f597458d08a29aefef218b40e191dc3d05f089f133f5f337d98d1c0161f490849782248e915ebcf700d80667b2d0ba3fda022faeeb23ca87add7664666f46", "37571964d613bf76a22061c9f746f9fb00ff0f5c2d90f648717e1f\nHASH: fcda80db378102b4\n\nKEY: ea7247b6addced42c51c827dbb2cb66c\nIN: 0ec554948d3af7cbc2306d249861f6291d44ab2be6bb26ab629347ac0e892cc902b3c5bf9688e39d826e32609834b34644a8b39c9a91f47a0f24e73a13edeec9e224756f6cff77e1d07fac03c1d803649279e33b2f16dd2d100bd82e9806afadb022700d55f5fc9688193da02dcc9dce974b60ccc2caad064acaa0f1b9e4f24e9074ac7877b91b19c7abbe5bb7f889775cd72ab9334475dddba19d008fdb01ab9cbfb1038a486c76f3c542bac704cf795be628cb83a5d9d128c2b401cf23ce494584cfe5b4ed58d9c906ded22090ffed4894238c6d02835e6180ce662b24ea18fd84d5fcbed49790322260fcf3f193081ccdb60d8f768b6dbfa61867bf90fbb1f27e1a6cb83daad6243079904a\nHASH: f8181640a08f1343\n", }; -static const size_t kLen192 = 489; +static const size_t kLen197 = 489; -static const char *kData192[] = { +static const char *kData197[] = { "-----BEGIN CERTIFICATE-----\nMIIBOzCB4qADAgECAgEBMAoGCCqGSM49BAMCMBwxGjAYBgNVBAMTEUJhc2ljIENv\nbnN0cmFpbnRzMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAwMTAxMDAwMDAwWjAcMRow\nGAYDVQQDExFCYXNpYyBDb25zdHJhaW50czBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJEq2LxVbZGSZr4q32NCQw2K2UKzSXnDy7dJLCbsdlES+ZwEIkGNUhERpxGo\njS6aHNHZXk0vMEE/3I8P8D4KHlejEzARMA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZI\nzj0EAwIDSAAwRQIgTNs2aQPDZs+Pal5LA1fAKyC4AKTNN+JE/vEYndKhFxYCIQDf\nb7IjDoXx/3GBnsrht14NUmzUBdqkQafJvC+eHIdtQA==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen193 = 493; +static const size_t kLen198 = 493; -static const char *kData193[] = { +static const char *kData198[] = { "-----BEGIN CERTIFICATE-----\nMIIBPjCB5aADAgECAgEBMAoGCCqGSM49BAMCMBwxGjAYBgNVBAMTEUJhc2ljIENv\nbnN0cmFpbnRzMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAwMTAxMDAwMDAwWjAcMRow\nGAYDVQQDExFCYXNpYyBDb25zdHJhaW50czBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJEq2LxVbZGSZr4q32NCQw2K2UKzSXnDy7dJLCbsdlES+ZwEIkGNUhERpxGo\njS6aHNHZXk0vMEE/3I8P8D4KHlejFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwCgYI\nKoZIzj0EAwIDSAAwRQIgHdMalNLi3hzz58PdNQPAqiA5KAa/dfQWuNNjzE6iDIcC\nIQCda6js7OKQvdqCFb/POHPriXX1YXIJ3N95+SE7qFJ9Gg==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen194 = 493; +static const size_t kLen199 = 493; -static const char *kData194[] = { +static const char *kData199[] = { "-----BEGIN CERTIFICATE-----\nMIIBPjCB5aADAgECAgEBMAoGCCqGSM49BAMCMBwxGjAYBgNVBAMTEUJhc2ljIENv\nbnN0cmFpbnRzMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAwMTAxMDAwMDAwWjAcMRow\nGAYDVQQDExFCYXNpYyBDb25zdHJhaW50czBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJEq2LxVbZGSZr4q32NCQw2K2UKzSXnDy7dJLCbsdlES+ZwEIkGNUhERpxGo\njS6aHNHZXk0vMEE/3I8P8D4KHlejFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQEwCgYI\nKoZIzj0EAwIDSAAwRQIgZx7fIDI65CU7Lck0t7ep/GtBkpELR0gKkUJrI09/JJoC\nIQDFPukkJgYA7RpFsAsEq77S+i9gf/S/IreobhvQm/401w==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen195 = 493; +static const size_t kLen200 = 493; -static const char *kData195[] = { +static const char *kData200[] = { "-----BEGIN CERTIFICATE-----\nMIIBPjCB5aADAgECAgEBMAoGCCqGSM49BAMCMBwxGjAYBgNVBAMTEUJhc2ljIENv\nbnN0cmFpbnRzMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAwMTAxMDAwMDAwWjAcMRow\nGAYDVQQDExFCYXNpYyBDb25zdHJhaW50czBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJEq2LxVbZGSZr4q32NCQw2K2UKzSXnDy7dJLCbsdlES+ZwEIkGNUhERpxGo\njS6aHNHZXk0vMEE/3I8P8D4KHlejFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQowCgYI\nKoZIzj0EAwIDSAAwRQIhALj37ijrYfommrWjrXMXjJyILvGNH7KxViKU1cWjX5dF\nAiA6WjePmZdKilZebpZ++MTPs5cbpdcShWYuJ45sANCKgw==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen196 = 485; +static const size_t kLen201 = 485; -static const char *kData196[] = { +static const char *kData201[] = { "-----BEGIN CERTIFICATE-----\nMIIBOTCB36ADAgECAgEBMAoGCCqGSM49BAMCMBwxGjAYBgNVBAMTEUJhc2ljIENv\nbnN0cmFpbnRzMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAwMTAxMDAwMDAwWjAcMRow\nGAYDVQQDExFCYXNpYyBDb25zdHJhaW50czBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJEq2LxVbZGSZr4q32NCQw2K2UKzSXnDy7dJLCbsdlES+ZwEIkGNUhERpxGo\njS6aHNHZXk0vMEE/3I8P8D4KHlejEDAOMAwGA1UdEwEB/wQCMAAwCgYIKoZIzj0E\nAwIDSQAwRgIhAIc3Cbr1SRZZ8ZusjOQjA/9Ro5ijEZbMaD1ClW62/GqSAiEAy1tU\nNo3zRwTUcuyAnav+XbXkS1a5Fm2/rFBoWN8ZAxA=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen197 = 465; +static const size_t kLen202 = 465; -static const char *kData197[] = { +static const char *kData202[] = { "-----BEGIN CERTIFICATE-----\nMIIBKjCB0aADAgECAgEBMAoGCCqGSM49BAMCMBwxGjAYBgNVBAMTEUJhc2ljIENv\nbnN0cmFpbnRzMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAwMTAxMDAwMDAwWjAcMRow\nGAYDVQQDExFCYXNpYyBDb25zdHJhaW50czBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJEq2LxVbZGSZr4q32NCQw2K2UKzSXnDy7dJLCbsdlES+ZwEIkGNUhERpxGo\njS6aHNHZXk0vMEE/3I8P8D4KHlejAjAAMAoGCCqGSM49BAMCA0gAMEUCIQCQ1/Ca\nRanCM+PIUqVkCpfumEeLKawHMYIA2ZM3Yy2wngIgZg10Sd25/POZKIXlMAiwlDrM\nUQcfzZiBh8T5JEWKeRc=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen198 = 623; +static const size_t kLen203 = 623; -static const char *kData198[] = { +static const char *kData203[] = { "-----BEGIN CERTIFICATE-----\nMIIBnjCCAUOgAwIBAgIBAjAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowKjEoMCYGA1UEAxMfSW52YWxpZCBFeHRlbnNpb25zIEludGVybWVkaWF0ZTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOI6fKiM3jFLkLyAn88cvlw4SwxuygRj\nopP3FFBKHyUQvh3VVvfqSpSCSmp50QiajQ6Dg7CTpVZVVH+bguT7JTCjYDBeMA4G\nA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTAD\nAQH/MBUGA1UdDgQOBAxpbnRlcm1lZGlhdGUwDwYDVR0jBAgwBoAEcm9vdDAKBggq\nhkjOPQQDAgNJADBGAiEA0XamFS9fNIkvjN4muFP3EYEuO3/y+WiNhewBtusrhD0C\nIQCmTHE7J6c+Pvtv4Ro2S/I3Pypr8sJNWdezoE5Okhf4Gw==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen199 = 619; +static const size_t kLen204 = 619; -static const char *kData199[] = { +static const char *kData204[] = { "-----BEGIN CERTIFICATE-----\nMIIBnTCCAUKgAwIBAgIBAjAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowKjEoMCYGA1UEAxMfSW52YWxpZCBFeHRlbnNpb25zIEludGVybWVkaWF0ZTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOI6fKiM3jFLkLyAn88cvlw4SwxuygRj\nopP3FFBKHyUQvh3VVvfqSpSCSmp50QiajQ6Dg7CTpVZVVH+bguT7JTCjXzBdMA4G\nA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTAD\nAQH/MBUGA1UdDgQOBAxpbnRlcm1lZGlhdGUwDgYDVR0jBAdJTlZBTElEMAoGCCqG\nSM49BAMCA0kAMEYCIQDKVSKO0wAESfYL/ZRzKj3rBxolJ9+GHKxNTXnmf7w6sAIh\nAM0mSwKy1M+w7th5s0XhfImVfpi+V4Xxbtz8AWN6Grfm\n-----END CERTIFICATE-----\n", }; -static const size_t kLen200 = 619; +static const size_t kLen205 = 619; -static const char *kData200[] = { +static const char *kData205[] = { "-----BEGIN CERTIFICATE-----\nMIIBnDCCAUKgAwIBAgIBAjAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowKjEoMCYGA1UEAxMfSW52YWxpZCBFeHRlbnNpb25zIEludGVybWVkaWF0ZTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOI6fKiM3jFLkLyAn88cvlw4SwxuygRj\nopP3FFBKHyUQvh3VVvfqSpSCSmp50QiajQ6Dg7CTpVZVVH+bguT7JTCjXzBdMA4G\nA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAVBgNVHQ4EDgQMaW50\nZXJtZWRpYXRlMA8GA1UdIwQIMAaABHJvb3QwDgYDVR0TBAdJTlZBTElEMAoGCCqG\nSM49BAMCA0gAMEUCIARJW0WA3S/H8amVP7H8BLJj6AnNocXOC4FkQY1YNNdSAiEA\n/Y4tQ2nvQhDuBGxdkDfR5wyYLOuS+t/CWIiV3A63VsM=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen201 = 615; +static const size_t kLen206 = 615; -static const char *kData201[] = { +static const char *kData206[] = { "-----BEGIN CERTIFICATE-----\nMIIBmTCCAT6gAwIBAgIBAjAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowKjEoMCYGA1UEAxMfSW52YWxpZCBFeHRlbnNpb25zIEludGVybWVkaWF0ZTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOI6fKiM3jFLkLyAn88cvlw4SwxuygRj\nopP3FFBKHyUQvh3VVvfqSpSCSmp50QiajQ6Dg7CTpVZVVH+bguT7JTCjWzBZMA4G\nA1UdDwEB/wQEAwICBDAPBgNVHRMBAf8EBTADAQH/MBUGA1UdDgQOBAxpbnRlcm1l\nZGlhdGUwDwYDVR0jBAgwBoAEcm9vdDAOBgNVHSUEB0lOVkFMSUQwCgYIKoZIzj0E\nAwIDSQAwRgIhALzNOt3jZR7ZP0DWt0hw3SRu5l8dcKYy49xVNIY3D8OuAiEA4KHg\nSfy+XLtLvVG9Tnbbh3XS+iLHiDUsYCGivpTAb44=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen202 = 619; +static const size_t kLen207 = 619; -static const char *kData202[] = { +static const char *kData207[] = { "-----BEGIN CERTIFICATE-----\nMIIBnTCCAUOgAwIBAgIBAjAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowKjEoMCYGA1UEAxMfSW52YWxpZCBFeHRlbnNpb25zIEludGVybWVkaWF0ZTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOI6fKiM3jFLkLyAn88cvlw4SwxuygRj\nopP3FFBKHyUQvh3VVvfqSpSCSmp50QiajQ6Dg7CTpVZVVH+bguT7JTCjYDBeMBMG\nA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wFQYDVR0OBA4EDGlu\ndGVybWVkaWF0ZTAPBgNVHSMECDAGgARyb290MA4GA1UdDwQHSU5WQUxJRDAKBggq\nhkjOPQQDAgNIADBFAiEAtoKHHh57yauGrcGren78p+jqfq41XmuwaF6vQ7BfmxQC\nIHCPCJcys8DqJOXId0F6fyk/Dk7jixFnmwW8S5E8N+Ee\n-----END CERTIFICATE-----\n", }; -static const size_t kLen203 = 639; +static const size_t kLen208 = 639; -static const char *kData203[] = { +static const char *kData208[] = { "-----BEGIN CERTIFICATE-----\nMIIBrDCCAVOgAwIBAgIBAjAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowKjEoMCYGA1UEAxMfSW52YWxpZCBFeHRlbnNpb25zIEludGVybWVkaWF0ZTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOI6fKiM3jFLkLyAn88cvlw4SwxuygRj\nopP3FFBKHyUQvh3VVvfqSpSCSmp50QiajQ6Dg7CTpVZVVH+bguT7JTCjcDBuMA4G\nA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTAD\nAQH/MBUGA1UdDgQOBAxpbnRlcm1lZGlhdGUwDwYDVR0jBAgwBoAEcm9vdDAOBgNV\nHR4EB0lOVkFMSUQwCgYIKoZIzj0EAwIDRwAwRAIgFTYJwndHsZh13cYj4EfDZFNe\nckt9rkRJjEP7nDGyD44CIAE6M7HDjbJRjJbYsAfc45ax00i9htFjb88t6AJyDU9M\n-----END CERTIFICATE-----\n", }; -static const size_t kLen204 = 644; +static const size_t kLen209 = 644; -static const char *kData204[] = { +static const char *kData209[] = { "-----BEGIN CERTIFICATE-----\nMIIBrjCCAVOgAwIBAgIBAjAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowKjEoMCYGA1UEAxMfSW52YWxpZCBFeHRlbnNpb25zIEludGVybWVkaWF0ZTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOI6fKiM3jFLkLyAn88cvlw4SwxuygRj\nopP3FFBKHyUQvh3VVvfqSpSCSmp50QiajQ6Dg7CTpVZVVH+bguT7JTCjcDBuMA4G\nA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTAD\nAQH/MBUGA1UdDgQOBAxpbnRlcm1lZGlhdGUwDwYDVR0jBAgwBoAEcm9vdDAOBgNV\nHREEB0lOVkFMSUQwCgYIKoZIzj0EAwIDSQAwRgIhAI49whD5azejKejI1xowdbu7\nLHeT2wNanCCU+KCOoBFPAiEAoog5xR90Z2lWsLJEPWiw7WLJMNuZBDINLNVDCA5d\nD0k=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen205 = 611; +static const size_t kLen210 = 611; -static const char *kData205[] = { +static const char *kData210[] = { "-----BEGIN CERTIFICATE-----\nMIIBljCCATygAwIBAgIBAjAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowKjEoMCYGA1UEAxMfSW52YWxpZCBFeHRlbnNpb25zIEludGVybWVkaWF0ZTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOI6fKiM3jFLkLyAn88cvlw4SwxuygRj\nopP3FFBKHyUQvh3VVvfqSpSCSmp50QiajQ6Dg7CTpVZVVH+bguT7JTCjWTBXMA4G\nA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTAD\nAQH/MA8GA1UdIwQIMAaABHJvb3QwDgYDVR0OBAdJTlZBTElEMAoGCCqGSM49BAMC\nA0gAMEUCIDsbBMbAWuJq9VnfrSjLBTK6TSfskt3i0ns2y/9FEW04AiEAkjyacdGb\nsk1wvjrVc5ny6O96NvUGkdO1/GNdPNKPYWQ=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen206 = 688; +static const size_t kLen211 = 688; -static const char *kData206[] = { +static const char *kData211[] = { "-----BEGIN CERTIFICATE-----\nMIIBzzCCAXagAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GaMIGXMA4GA1UdDwEB\n/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMA0GA1Ud\nDgQGBARsZWFmMBcGA1UdIwQQMA6ADGludGVybWVkaWF0ZTAaBgNVHREEEzARgg93\nd3cuZXhhbXBsZS5jb20wHgYDVR0eBBcwFaATMBGCD3d3dy5leGFtcGxlLmNvbTAK\nBggqhkjOPQQDAgNHADBEAiAJtROn4TOAvfttoQJ6RsqnsaR1WaP+CKzWXjARJxtQ\nLwIgGmbRenVTFx8ho17JY8ncV5qaJqc0EXN56twt9SccKqE=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen207 = 680; +static const size_t kLen212 = 680; -static const char *kData207[] = { +static const char *kData212[] = { "-----BEGIN CERTIFICATE-----\nMIIByDCCAW2gAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GRMIGOMA4GA1UdDwEB\n/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMA0GA1Ud\nDgQGBARsZWFmMBoGA1UdEQQTMBGCD3d3dy5leGFtcGxlLmNvbTAeBgNVHR4EFzAV\noBMwEYIPd3d3LmV4YW1wbGUuY29tMA4GA1UdIwQHSU5WQUxJRDAKBggqhkjOPQQD\nAgNJADBGAiEAj6hhgnfiI0zt38N98eQsfJCJ8ZGkLfH+69OOUISls2QCIQDtyWhN\nL/7L787+zkUazG4HvZ/YHO7hbWQAfMQVbk/iRA==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen208 = 692; +static const size_t kLen213 = 692; -static const char *kData208[] = { +static const char *kData213[] = { "-----BEGIN CERTIFICATE-----\nMIIB0zCCAXigAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GcMIGZMA4GA1UdDwEB\n/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATANBgNVHQ4EBgQEbGVhZjAXBgNV\nHSMEEDAOgAxpbnRlcm1lZGlhdGUwGgYDVR0RBBMwEYIPd3d3LmV4YW1wbGUuY29t\nMB4GA1UdHgQXMBWgEzARgg93d3cuZXhhbXBsZS5jb20wDgYDVR0TBAdJTlZBTElE\nMAoGCCqGSM49BAMCA0kAMEYCIQDo/XMevx8IdL+LOl55riE3otGDWKDDPgaZKA43\nsnAJAwIhAJtgm2YNclXG1i8PzrSqZ5Y5mvBMgtjTfW/7ld7ED3pK\n-----END CERTIFICATE-----\n", }; -static const size_t kLen209 = 684; +static const size_t kLen214 = 684; -static const char *kData209[] = { +static const char *kData214[] = { "-----BEGIN CERTIFICATE-----\nMIIByzCCAXGgAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GVMIGSMA4GA1UdDwEB\n/wQEAwICBDAMBgNVHRMBAf8EAjAAMA0GA1UdDgQGBARsZWFmMBcGA1UdIwQQMA6A\nDGludGVybWVkaWF0ZTAaBgNVHREEEzARgg93d3cuZXhhbXBsZS5jb20wHgYDVR0e\nBBcwFaATMBGCD3d3dy5leGFtcGxlLmNvbTAOBgNVHSUEB0lOVkFMSUQwCgYIKoZI\nzj0EAwIDSAAwRQIhAJwe+EZy9v2fW6bYAE8T2NEJjc0SDLoHshJOae3yOYMoAiB1\nkTrY4iuQKBwbbAokFgnHr+Ev1aXcmjRn0sJFDesUAw==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen210 = 688; +static const size_t kLen215 = 688; -static const char *kData210[] = { +static const char *kData215[] = { "-----BEGIN CERTIFICATE-----\nMIIBzzCCAXagAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GaMIGXMBMGA1UdJQQM\nMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwDQYDVR0OBAYEBGxlYWYwFwYDVR0j\nBBAwDoAMaW50ZXJtZWRpYXRlMBoGA1UdEQQTMBGCD3d3dy5leGFtcGxlLmNvbTAe\nBgNVHR4EFzAVoBMwEYIPd3d3LmV4YW1wbGUuY29tMA4GA1UdDwQHSU5WQUxJRDAK\nBggqhkjOPQQDAgNHADBEAiAoWszkhUlrT+vn0BqkA8yuuyCQ7HvK8KQOJsvzFYkS\nqwIgbzwpATgcK7hhRG+GIO8v/MWqomOLExlQYcGIPPODHH0=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen211 = 668; +static const size_t kLen216 = 668; -static const char *kData211[] = { +static const char *kData216[] = { "-----BEGIN CERTIFICATE-----\nMIIBvzCCAWagAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GKMIGHMA4GA1UdDwEB\n/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMA0GA1Ud\nDgQGBARsZWFmMBcGA1UdIwQQMA6ADGludGVybWVkaWF0ZTAaBgNVHREEEzARgg93\nd3cuZXhhbXBsZS5jb20wDgYDVR0eBAdJTlZBTElEMAoGCCqGSM49BAMCA0cAMEQC\nIDBcHYVfj62g5y2gP/TTvH3VQr4XG/QNZLL6N8H/A8arAiB95102dlC8zVt4beDe\nejD7/YA0FNMSgEnAZ1VgzPejxA==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen212 = 676; +static const size_t kLen217 = 676; -static const char *kData212[] = { +static const char *kData217[] = { "-----BEGIN CERTIFICATE-----\nMIIBxTCCAWqgAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GOMIGLMA4GA1UdDwEB\n/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMA0GA1Ud\nDgQGBARsZWFmMBcGA1UdIwQQMA6ADGludGVybWVkaWF0ZTAeBgNVHR4EFzAVoBMw\nEYIPd3d3LmV4YW1wbGUuY29tMA4GA1UdEQQHSU5WQUxJRDAKBggqhkjOPQQDAgNJ\nADBGAiEAurYkjuxVgkxbmI1D+qM5RGXPPs7V74okqeQdURcL7HACIQDGNT6gcPDw\nAx2Hm5GK3H5UrNEmD1K4IOxfKl9zguiffQ==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen213 = 692; +static const size_t kLen218 = 692; -static const char *kData213[] = { +static const char *kData218[] = { "-----BEGIN CERTIFICATE-----\nMIIB0jCCAXegAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GbMIGYMA4GA1UdDwEB\n/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMBcGA1Ud\nIwQQMA6ADGludGVybWVkaWF0ZTAaBgNVHREEEzARgg93d3cuZXhhbXBsZS5jb20w\nHgYDVR0eBBcwFaATMBGCD3d3dy5leGFtcGxlLmNvbTAOBgNVHQ4EB0lOVkFMSUQw\nCgYIKoZIzj0EAwIDSQAwRgIhAOgBejpWnjlxO/K8FMTGO7J+sHS6PAQohwvEgLmT\nKWhMAiEAuc5uRycxN44gGka2Of9zw09o50sKgS1Ckv+VhkDqgbg=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen214 = 574; +static const size_t kLen219 = 574; -static const char *kData214[] = { +static const char *kData219[] = { "-----BEGIN CERTIFICATE-----\nMIIBfDCCASKgAwIBAgIBATAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowIjEgMB4GA1UEAxMXSW52YWxpZCBFeHRlbnNpb25zIFJvb3QwWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAAQmdqXYl1GvY7y3jcTTK6MVXIQr44TqChRYI6IeV9tI\nB6jIsOY+Qol1bk8x/7A5FGOnUWFVLEAPEPSJwPndjolto0cwRTAOBgNVHQ8BAf8E\nBAMCAgQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zANBgNV\nHQ4EBgQEcm9vdDAKBggqhkjOPQQDAgNIADBFAiBd9AxKvRMSY7ll42h5jjYh5QtK\nYu3fxeME1IeivVNzQAIhAPov0l/2FYwZmMGI9ihR3iD/8petRfp4E9JLQQd3TgL5\n-----END CERTIFICATE-----\n", }; -static const size_t kLen215 = 599; +static const size_t kLen220 = 599; -static const char *kData215[] = { +static const char *kData220[] = { "-----BEGIN CERTIFICATE-----\nMIIBjDCCATKgAwIBAgIBATAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowIjEgMB4GA1UEAxMXSW52YWxpZCBFeHRlbnNpb25zIFJvb3QwWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAAQmdqXYl1GvY7y3jcTTK6MVXIQr44TqChRYI6IeV9tI\nB6jIsOY+Qol1bk8x/7A5FGOnUWFVLEAPEPSJwPndjolto1cwVTAOBgNVHQ8BAf8E\nBAMCAgQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zANBgNV\nHQ4EBgQEcm9vdDAOBgNVHSMEB0lOVkFMSUQwCgYIKoZIzj0EAwIDSAAwRQIhAMVD\nOFcNzmPEdD2dJ3KWRGR15vQbXEXvimZgJdKtXdbLAiBfJOocLiQfPU7Nk3Qo0Ti1\nEn0QfUATxx8DNR15cfcupQ==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen216 = 574; +static const size_t kLen221 = 574; -static const char *kData216[] = { +static const char *kData221[] = { "-----BEGIN CERTIFICATE-----\nMIIBejCCASGgAwIBAgIBATAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowIjEgMB4GA1UEAxMXSW52YWxpZCBFeHRlbnNpb25zIFJvb3QwWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAAQmdqXYl1GvY7y3jcTTK6MVXIQr44TqChRYI6IeV9tI\nB6jIsOY+Qol1bk8x/7A5FGOnUWFVLEAPEPSJwPndjolto0YwRDAOBgNVHQ8BAf8E\nBAMCAgQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYDVR0OBAYEBHJvb3QwDgYDVR0T\nBAdJTlZBTElEMAoGCCqGSM49BAMCA0cAMEQCIB2OGsfTIUGaJ3iTXv2oung5pLKH\nVExVqc+KbnIyDbnaAiBwgxjlX+01/ERfGguz+W+00m4IZlzbyAp4dEs4rW9AXw==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen217 = 570; +static const size_t kLen222 = 570; -static const char *kData217[] = { +static const char *kData222[] = { "-----BEGIN CERTIFICATE-----\nMIIBeDCCAR2gAwIBAgIBATAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowIjEgMB4GA1UEAxMXSW52YWxpZCBFeHRlbnNpb25zIFJvb3QwWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAAQmdqXYl1GvY7y3jcTTK6MVXIQr44TqChRYI6IeV9tI\nB6jIsOY+Qol1bk8x/7A5FGOnUWFVLEAPEPSJwPndjolto0IwQDAOBgNVHQ8BAf8E\nBAMCAgQwDwYDVR0TAQH/BAUwAwEB/zANBgNVHQ4EBgQEcm9vdDAOBgNVHSUEB0lO\nVkFMSUQwCgYIKoZIzj0EAwIDSQAwRgIhAIY8RxbluUZ2M2PPy5IHnvdXRaQdIq3Z\nDFg9LwkxXl8NAiEAzdE/F19Upl4E7LmdnmGXz8BxhNB6e5CxiJJEdeexCn8=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen218 = 574; +static const size_t kLen223 = 574; -static const char *kData218[] = { +static const char *kData223[] = { "-----BEGIN CERTIFICATE-----\nMIIBfDCCASKgAwIBAgIBATAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowIjEgMB4GA1UEAxMXSW52YWxpZCBFeHRlbnNpb25zIFJvb3QwWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAAQmdqXYl1GvY7y3jcTTK6MVXIQr44TqChRYI6IeV9tI\nB6jIsOY+Qol1bk8x/7A5FGOnUWFVLEAPEPSJwPndjolto0cwRTATBgNVHSUEDDAK\nBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MA0GA1UdDgQGBARyb290MA4GA1Ud\nDwQHSU5WQUxJRDAKBggqhkjOPQQDAgNIADBFAiEAt0anuhA0pecFMnlB4+M9lcy6\nVZsopjCniyHxfaaf1jQCICPaxHg+ztBFtOjCsr8nbgSy/JWYejF1uTjLYZKj5z6I\n-----END CERTIFICATE-----\n", }; -static const size_t kLen219 = 595; +static const size_t kLen224 = 595; -static const char *kData219[] = { +static const char *kData224[] = { "-----BEGIN CERTIFICATE-----\nMIIBizCCATKgAwIBAgIBATAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowIjEgMB4GA1UEAxMXSW52YWxpZCBFeHRlbnNpb25zIFJvb3QwWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAAQmdqXYl1GvY7y3jcTTK6MVXIQr44TqChRYI6IeV9tI\nB6jIsOY+Qol1bk8x/7A5FGOnUWFVLEAPEPSJwPndjolto1cwVTAOBgNVHQ8BAf8E\nBAMCAgQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zANBgNV\nHQ4EBgQEcm9vdDAOBgNVHR4EB0lOVkFMSUQwCgYIKoZIzj0EAwIDRwAwRAIgHa/R\ni3/yXzHD61xU8mVWSnH39FP5V0mzcHqxKvGSlk4CICsg1HCVLPvYIVUd0Kc8bv6h\nuu6UUup8MlUdFrRJaOus\n-----END CERTIFICATE-----\n", }; -static const size_t kLen220 = 599; +static const size_t kLen225 = 599; -static const char *kData220[] = { +static const char *kData225[] = { "-----BEGIN CERTIFICATE-----\nMIIBjDCCATKgAwIBAgIBATAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowIjEgMB4GA1UEAxMXSW52YWxpZCBFeHRlbnNpb25zIFJvb3QwWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAAQmdqXYl1GvY7y3jcTTK6MVXIQr44TqChRYI6IeV9tI\nB6jIsOY+Qol1bk8x/7A5FGOnUWFVLEAPEPSJwPndjolto1cwVTAOBgNVHQ8BAf8E\nBAMCAgQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zANBgNV\nHQ4EBgQEcm9vdDAOBgNVHREEB0lOVkFMSUQwCgYIKoZIzj0EAwIDSAAwRQIgZ12y\n9EulwmfqICXtykhGr9Pjfcdg6SacCreLx7454cYCIQCQkP5Ji2SW1Huzp6hE1oHw\nXwNwxFXV6XMJ+NylMYoJ3w==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen221 = 579; +static const size_t kLen226 = 579; -static const char *kData221[] = { +static const char *kData226[] = { "-----BEGIN CERTIFICATE-----\nMIIBfTCCASOgAwIBAgIBATAKBggqhkjOPQQDAjAiMSAwHgYDVQQDExdJbnZhbGlk\nIEV4dGVuc2lvbnMgUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAw\nMFowIjEgMB4GA1UEAxMXSW52YWxpZCBFeHRlbnNpb25zIFJvb3QwWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAAQmdqXYl1GvY7y3jcTTK6MVXIQr44TqChRYI6IeV9tI\nB6jIsOY+Qol1bk8x/7A5FGOnUWFVLEAPEPSJwPndjolto0gwRjAOBgNVHQ8BAf8E\nBAMCAgQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zAOBgNV\nHQ4EB0lOVkFMSUQwCgYIKoZIzj0EAwIDSAAwRQIhAOOhlyJ15KAUZlokr35Y51mJ\nIc8V3490rloGXldPJajUAiADevilj44K19daaJCFDSIRByO23doY7AmoeLt6YgNJ\nDQ==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen222 = 18852; +static const size_t kLen227 = 18852; -static const char *kData222[] = { +static const char *kData227[] = { "-----BEGIN CERTIFICATE-----\nMII2MzCCNRugAwIBAgIBATANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJDQTAg\nFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowDTELMAkGA1UEAxMCQ0Ew\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6C9qEGRIBQXV8Lj29vVu+\nU+tyXzSSinWIumK5ijPhCm3DLnv4RayxkFwemtnkGRZ/o94ZnsXkBfU/IlsYdkuq\n8wK9WI/ql3gwWjH+KARIhIQcSLGiJcLN6kGuG2nlRBKMcPgPiEq2B0yBXFf4tG3C\nBbeae7+8G7uvOmv8NLyKj32neWpnUCTL5o2VwyPoxjLxT5gUR69v9XSVFj2irCZb\nsEedeKSb++LqyMhLfnRTzNv+ZHNh4izZHrktR25MvnT5QyBq32hx7AjZ2/xo70Om\nH7w10a2DwsVjJNMdxTEmgyvU9M6CeYRPX1Ykfg+sXCTtkTVAlBDUviIqY95CKy25\nAgMBAAGjgjOaMIIzljAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0lBAwwCgYIKwYBBQUH\nAwEwDwYDVR0TAQH/BAUwAwEB/zCCM1wGA1UdHgSCM1MwgjNPoIIZqDAJggd0MC50\nZXN0MAmCB3QxLnRlc3QwCYIHdDIudGVzdDAJggd0My50ZXN0MAmCB3Q0LnRlc3Qw\nCYIHdDUudGVzdDAJggd0Ni50ZXN0MAmCB3Q3LnRlc3QwCYIHdDgudGVzdDAJggd0\nOS50ZXN0MAqCCHQxMC50ZXN0MAqCCHQxMS50ZXN0MAqCCHQxMi50ZXN0MAqCCHQx\nMy50ZXN0MAqCCHQxNC50ZXN0MAqCCHQxNS50ZXN0MAqCCHQxNi50ZXN0MAqCCHQx\nNy50ZXN0MAqCCHQxOC50ZXN0MAqCCHQxOS50ZXN0MAqCCHQyMC50ZXN0MAqCCHQy\nMS50ZXN0MAqCCHQyMi50ZXN0MAqCCHQyMy50ZXN0MAqCCHQyNC50ZXN0MAqCCHQy\nNS50ZXN0MAqCCHQyNi50ZXN0MAqCCHQyNy50ZXN0MAqCCHQyOC50ZXN0MAqCCHQy\nOS50ZXN0MAqCCHQzMC50ZXN0MAqCCHQzMS50ZXN0MAqCCHQzMi50ZXN0MAqCCHQz\nMy50ZXN0MAqCCHQzNC50ZXN0MAqCCHQzNS50ZXN0MAqCCHQzNi50ZXN0MAqCCHQz\nNy50ZXN0MAqCCHQzOC50ZXN0MAqCCHQzOS50ZXN0MAqCCHQ0MC50ZXN0MAqCCHQ0\nMS50ZXN0MAqCCHQ0Mi50ZXN0MAqCCHQ0My50ZXN0MAqCCHQ0NC50ZXN0MAqCCHQ0\nNS50ZXN0MAqCCHQ0Ni50ZXN0MAqCCHQ0Ny50ZXN0MAqCCHQ0OC50ZXN0MAqCCHQ0\nOS50ZXN0MAqCCHQ1MC50ZXN0MAqCCHQ1MS50ZXN0MAqCCHQ1Mi50ZXN0MAqCCHQ1\nMy50ZXN0MAqCCHQ1NC50ZXN0MAqCCHQ1NS50ZXN0MAqCCHQ1Ni50ZXN0MAqCCHQ1\nNy50ZXN0MAqCCHQ1OC50ZXN0MAqCCHQ1OS50ZXN0MAqCCHQ2MC50ZXN0MAqCCHQ2\nMS50ZXN0MAqCCHQ2Mi50ZXN0MAqCCHQ2My50ZXN0MAqCCHQ2NC50ZXN0MAqCCHQ2\nNS50ZXN0MAqCCHQ2Ni50ZXN0MAqCCHQ2Ny50ZXN0MAqCCHQ2OC50ZXN0MAqCCHQ2\nOS50ZXN0MAqCCHQ3MC50ZXN0MAqCCHQ3MS50ZXN0MAqCCHQ3Mi50ZXN0MAqCCHQ3\nMy50ZXN0MAqCCHQ3NC50ZXN0MAqCCHQ3NS50ZXN0MAqCCHQ3Ni50ZXN0MAqCCHQ3\nNy50ZXN0MAqCCHQ3OC50ZXN0MAqCCHQ3OS50ZXN0MAqCCHQ4MC50ZXN0MAqCCHQ4\nMS50ZXN0MAqCCHQ4Mi50ZXN0MAqCCHQ4My50ZXN0MAqCCHQ4NC50ZXN0MAqCCHQ4\nNS50ZXN0MAqCCHQ4Ni50ZXN0MAqCCHQ4Ny50ZXN0MAqCCHQ4OC50ZXN0MAqCCHQ4\nOS50ZXN0MAqCCHQ5MC50ZXN0MAqCCHQ5MS50ZXN0MAqCCHQ5Mi50ZXN0MAqCCHQ5\nMy50ZXN0MAqCCHQ5NC50ZXN0MAqCCHQ5NS50ZXN0MAqCCHQ5Ni50ZXN0MAqCCHQ5\nNy50ZXN0MAqCCHQ5OC50ZXN0MAqCCHQ5OS50ZXN0MAuCCXQxMDAudGVzdDALggl0\nMTAxLnRlc3QwC4IJdDEwMi50ZXN0MAuCCXQxMDMudGVzdDALggl0MTA0LnRlc3Qw\nC4IJdDEwNS50ZXN0MAuCCXQxMDYudGVzdDALggl0MTA3LnRlc3QwC4IJdDEwOC50\nZXN0MAuCCXQxMDkudGVzdDALggl0MTEwLnRlc3QwC4IJdDExMS50ZXN0MAuCCXQx\nMTIudGVzdDALggl0MTEzLnRlc3QwC4IJdDExNC50ZXN0MAuCCXQxMTUudGVzdDAL\nggl0MTE2LnRlc3QwC4IJdDExNy50ZXN0MAuCCXQxMTgudGVzdDALggl0MTE5LnRl\nc3QwC4IJdDEyMC50ZXN0MAuCCXQxMjEudGVzdDALggl0MTIyLnRlc3QwC4IJdDEy\nMy50ZXN0MAuCCXQxMjQudGVzdDALggl0MTI1LnRlc3QwC4IJdDEyNi50ZXN0MAuC\nCXQxMjcudGVzdDALggl0MTI4LnRlc3QwC4IJdDEyOS50ZXN0MAuCCXQxMzAudGVz\ndDALggl0MTMxLnRlc3QwC4IJdDEzMi50ZXN0MAuCCXQxMzMudGVzdDALggl0MTM0\nLnRlc3QwC4IJdDEzNS50ZXN0MAuCCXQxMzYudGVzdDALggl0MTM3LnRlc3QwC4IJ\ndDEzOC50ZXN0MAuCCXQxMzkudGVzdDALggl0MTQwLnRlc3QwC4IJdDE0MS50ZXN0\nMAuCCXQxNDIudGVzdDALggl0MTQzLnRlc3QwC4IJdDE0NC50ZXN0MAuCCXQxNDUu\ndGVzdDALggl0MTQ2LnRlc3QwC4IJdDE0Ny50ZXN0MAuCCXQxNDgudGVzdDALggl0\nMTQ5LnRlc3QwC4IJdDE1MC50ZXN0MAuCCXQxNTEudGVzdDALggl0MTUyLnRlc3Qw\nC4IJdDE1My50ZXN0MAuCCXQxNTQudGVzdDALggl0MTU1LnRlc3QwC4IJdDE1Ni50\nZXN0MAuCCXQxNTcudGVzdDALggl0MTU4LnRlc3QwC4IJdDE1OS50ZXN0MAuCCXQx\nNjAudGVzdDALggl0MTYxLnRlc3QwC4IJdDE2Mi50ZXN0MAuCCXQxNjMudGVzdDAL\nggl0MTY0LnRlc3QwC4IJdDE2NS50ZXN0MAuCCXQxNjYudGVzdDALggl0MTY3LnRl\nc3QwC4IJdDE2OC50ZXN0MAuCCXQxNjkudGVzdDALggl0MTcwLnRlc3QwC4IJdDE3\nMS50ZXN0MAuCCXQxNzIudGVzdDALggl0MTczLnRlc3QwC4IJdDE3NC50ZXN0MAuC\nCXQxNzUudGVzdDALggl0MTc2LnRlc3QwC4IJdDE3Ny50ZXN0MAuCCXQxNzgudGVz\ndDALggl0MTc5LnRlc3QwC4IJdDE4MC50ZXN0MAuCCXQxODEudGVzdDALggl0MTgy\nLnRlc3QwC4IJdDE4My50ZXN0MAuCCXQxODQudGVzdDALggl0MTg1LnRlc3QwC4IJ\ndDE4Ni50ZXN0MAuCCXQxODcudGVzdDALggl0MTg4LnRlc3QwC4IJdDE4OS50ZXN0\nMAuCCXQxOTAudGVzdDALggl0MTkxLnRlc3QwC4IJdDE5Mi50ZXN0MAuCCXQxOTMu\ndGVzdDALggl0MTk0LnRlc3QwC4IJdDE5NS50ZXN0MAuCCXQxOTYudGVzdDALggl0\nMTk3LnRlc3QwC4IJdDE5OC50ZXN0MAuCCXQxOTkudGVzdDALggl0MjAwLnRlc3Qw\nC4IJdDIwMS50ZXN0MAuCCXQyMDIudGVzdDALggl0MjAzLnRlc3QwC4IJdDIwNC50\nZXN0MAuCCXQyMDUudGVzdDALggl0MjA2LnRlc3QwC4IJdDIwNy50ZXN0MAuCCXQy\nMDgudGVzdDALggl0MjA5LnRlc3QwC4IJdDIxMC50ZXN0MAuCCXQyMTEudGVzdDAL\nggl0MjEyLnRlc3QwC4IJdDIxMy50ZXN0MAuCCXQyMTQudGVzdDALggl0MjE1LnRl\nc3QwC4IJdDIxNi50ZXN0MAuCCXQyMTcudGVzdDALggl0MjE4LnRlc3QwC4IJdDIx\nOS50ZXN0MAuCCXQyMjAudGVzdDALggl0MjIxLnRlc3QwC4IJdDIyMi50ZXN0MAuC\nCXQyMjMudGVzdDALggl0MjI0LnRlc3QwC4IJdDIyNS50ZXN0MAuCCXQyMjYudGVz\ndDALggl0MjI3LnRlc3QwC4IJdDIyOC50ZXN0MAuCCXQyMjkudGVzdDALggl0MjMw\nLnRlc3QwC4IJdDIzMS50ZXN0MAuCCXQyMzIudGVzdDALggl0MjMzLnRlc3QwC4IJ\ndDIzNC50ZXN0MAuCCXQyMzUudGVzdDALggl0MjM2LnRlc3QwC4IJdDIzNy50ZXN0\nMAuCCXQyMzgudGVzdDALggl0MjM5LnRlc3QwC4IJdDI0MC50ZXN0MAuCCXQyNDEu\ndGVzdDALggl0MjQyLnRlc3QwC4IJdDI0My50ZXN0MAuCCXQyNDQudGVzdDALggl0\nMjQ1LnRlc3QwC4IJdDI0Ni50ZXN0MAuCCXQyNDcudGVzdDALggl0MjQ4LnRlc3Qw\nC4IJdDI0OS50ZXN0MAuCCXQyNTAudGVzdDALggl0MjUxLnRlc3QwC4IJdDI1Mi50\nZXN0MAuCCXQyNTMudGVzdDALggl0MjU0LnRlc3QwC4IJdDI1NS50ZXN0MAuCCXQy\nNTYudGVzdDALggl0MjU3LnRlc3QwC4IJdDI1OC50ZXN0MAuCCXQyNTkudGVzdDAL\nggl0MjYwLnRlc3QwC4IJdDI2MS50ZXN0MAuCCXQyNjIudGVzdDALggl0MjYzLnRl\nc3QwC4IJdDI2NC50ZXN0MAuCCXQyNjUudGVzdDALggl0MjY2LnRlc3QwC4IJdDI2\nNy50ZXN0MAuCCXQyNjgudGVzdDALggl0MjY5LnRlc3QwC4IJdDI3MC50ZXN0MAuC\nCXQyNzEudGVzdDALggl0MjcyLnRlc3QwC4IJdDI3My50ZXN0MAuCCXQyNzQudGVz\ndDALggl0Mjc1LnRlc3QwC4IJdDI3Ni50ZXN0MAuCCXQyNzcudGVzdDALggl0Mjc4\nLnRlc3QwC4IJdDI3OS50ZXN0MAuCCXQyODAudGVzdDALggl0MjgxLnRlc3QwC4IJ\ndDI4Mi50ZXN0MAuCCXQyODMudGVzdDALggl0Mjg0LnRlc3QwC4IJdDI4NS50ZXN0\nMAuCCXQyODYudGVzdDALggl0Mjg3LnRlc3QwC4IJdDI4OC50ZXN0MAuCCXQyODku\ndGVzdDALggl0MjkwLnRlc3QwC4IJdDI5MS50ZXN0MAuCCXQyOTIudGVzdDALggl0\nMjkzLnRlc3QwC4IJdDI5NC50ZXN0MAuCCXQyOTUudGVzdDALggl0Mjk2LnRlc3Qw\nC4IJdDI5Ny50ZXN0MAuCCXQyOTgudGVzdDALggl0Mjk5LnRlc3QwC4IJdDMwMC50\nZXN0MAuCCXQzMDEudGVzdDALggl0MzAyLnRlc3QwC4IJdDMwMy50ZXN0MAuCCXQz\nMDQudGVzdDALggl0MzA1LnRlc3QwC4IJdDMwNi50ZXN0MAuCCXQzMDcudGVzdDAL\nggl0MzA4LnRlc3QwC4IJdDMwOS50ZXN0MAuCCXQzMTAudGVzdDALggl0MzExLnRl\nc3QwC4IJdDMxMi50ZXN0MAuCCXQzMTMudGVzdDALggl0MzE0LnRlc3QwC4IJdDMx\nNS50ZXN0MAuCCXQzMTYudGVzdDALggl0MzE3LnRlc3QwC4IJdDMxOC50ZXN0MAuC\nCXQzMTkudGVzdDALggl0MzIwLnRlc3QwC4IJdDMyMS50ZXN0MAuCCXQzMjIudGVz\ndDALggl0MzIzLnRlc3QwC4IJdDMyNC50ZXN0MAuCCXQzMjUudGVzdDALggl0MzI2\nLnRlc3QwC4IJdDMyNy50ZXN0MAuCCXQzMjgudGVzdDALggl0MzI5LnRlc3QwC4IJ\ndDMzMC50ZXN0MAuCCXQzMzEudGVzdDALggl0MzMyLnRlc3QwC4IJdDMzMy50ZXN0\nMAuCCXQzMzQudGVzdDALggl0MzM1LnRlc3QwC4IJdDMzNi50ZXN0MAuCCXQzMzcu\ndGVzdDALggl0MzM4LnRlc3QwC4IJdDMzOS50ZXN0MAuCCXQzNDAudGVzdDALggl0\nMzQxLnRlc3QwC4IJdDM0Mi50ZXN0MAuCCXQzNDMudGVzdDALggl0MzQ0LnRlc3Qw\nC4IJdDM0NS50ZXN0MAuCCXQzNDYudGVzdDALggl0MzQ3LnRlc3QwC4IJdDM0OC50\nZXN0MAuCCXQzNDkudGVzdDALggl0MzUwLnRlc3QwC4IJdDM1MS50ZXN0MAuCCXQz\nNTIudGVzdDALggl0MzUzLnRlc3QwC4IJdDM1NC50ZXN0MAuCCXQzNTUudGVzdDAL\nggl0MzU2LnRlc3QwC4IJdDM1Ny50ZXN0MAuCCXQzNTgudGVzdDALggl0MzU5LnRl\nc3QwC4IJdDM2MC50ZXN0MAuCCXQzNjEudGVzdDALggl0MzYyLnRlc3QwC4IJdDM2\nMy50ZXN0MAuCCXQzNjQudGVzdDALggl0MzY1LnRlc3QwC4IJdDM2Ni50ZXN0MAuC\nCXQzNjcudGVzdDALggl0MzY4LnRlc3QwC4IJdDM2OS50ZXN0MAuCCXQzNzAudGVz\ndDALggl0MzcxLnRlc3QwC4IJdDM3Mi50ZXN0MAuCCXQzNzMudGVzdDALggl0Mzc0\nLnRlc3QwC4IJdDM3NS50ZXN0MAuCCXQzNzYudGVzdDALggl0Mzc3LnRlc3QwC4IJ\ndDM3OC50ZXN0MAuCCXQzNzkudGVzdDALggl0MzgwLnRlc3QwC4IJdDM4MS50ZXN0\nMAuCCXQzODIudGVzdDALggl0MzgzLnRlc3QwC4IJdDM4NC50ZXN0MAuCCXQzODUu\ndGVzdDALggl0Mzg2LnRlc3QwC4IJdDM4Ny50ZXN0MAuCCXQzODgudGVzdDALggl0\nMzg5LnRlc3QwC4IJdDM5MC50ZXN0MAuCCXQzOTEudGVzdDALggl0MzkyLnRlc3Qw\nC4IJdDM5My50ZXN0MAuCCXQzOTQudGVzdDALggl0Mzk1LnRlc3QwC4IJdDM5Ni50\nZXN0MAuCCXQzOTcudGVzdDALggl0Mzk4LnRlc3QwC4IJdDM5OS50ZXN0MAuCCXQ0\nMDAudGVzdDALggl0NDAxLnRlc3QwC4IJdDQwMi50ZXN0MAuCCXQ0MDMudGVzdDAL\nggl0NDA0LnRlc3QwC4IJdDQwNS50ZXN0MAuCCXQ0MDYudGVzdDALggl0NDA3LnRl\nc3QwC4IJdDQwOC50ZXN0MAuCCXQ0MDkudGVzdDALggl0NDEwLnRlc3QwC4IJdDQx\nMS50ZXN0MAuCCXQ0MTIudGVzdDALggl0NDEzLnRlc3QwC4IJdDQxNC50ZXN0MAuC\nCXQ0MTUudGVzdDALggl0NDE2LnRlc3QwC4IJdDQxNy50ZXN0MAuCCXQ0MTgudGVz\ndDALggl0NDE5LnRlc3QwC4IJdDQyMC50ZXN0MAuCCXQ0MjEudGVzdDALggl0NDIy\nLnRlc3QwC4IJdDQyMy50ZXN0MAuCCXQ0MjQudGVzdDALggl0NDI1LnRlc3QwC4IJ\ndDQyNi50ZXN0MAuCCXQ0MjcudGVzdDALggl0NDI4LnRlc3QwC4IJdDQyOS50ZXN0\nMAuCCXQ0MzAudGVzdDALggl0NDMxLnRlc3QwC4IJdDQzMi50ZXN0MAuCCXQ0MzMu\ndGVzdDALggl0NDM0LnRlc3QwC4IJdDQzNS50ZXN", "0MAuCCXQ0MzYudGVzdDALggl0\nNDM3LnRlc3QwC4IJdDQzOC50ZXN0MAuCCXQ0MzkudGVzdDALggl0NDQwLnRlc3Qw\nC4IJdDQ0MS50ZXN0MAuCCXQ0NDIudGVzdDALggl0NDQzLnRlc3QwC4IJdDQ0NC50\nZXN0MAuCCXQ0NDUudGVzdDALggl0NDQ2LnRlc3QwC4IJdDQ0Ny50ZXN0MAuCCXQ0\nNDgudGVzdDALggl0NDQ5LnRlc3QwC4IJdDQ1MC50ZXN0MAuCCXQ0NTEudGVzdDAL\nggl0NDUyLnRlc3QwC4IJdDQ1My50ZXN0MAuCCXQ0NTQudGVzdDALggl0NDU1LnRl\nc3QwC4IJdDQ1Ni50ZXN0MAuCCXQ0NTcudGVzdDALggl0NDU4LnRlc3QwC4IJdDQ1\nOS50ZXN0MAuCCXQ0NjAudGVzdDALggl0NDYxLnRlc3QwC4IJdDQ2Mi50ZXN0MAuC\nCXQ0NjMudGVzdDALggl0NDY0LnRlc3QwC4IJdDQ2NS50ZXN0MAuCCXQ0NjYudGVz\ndDALggl0NDY3LnRlc3QwC4IJdDQ2OC50ZXN0MAuCCXQ0NjkudGVzdDALggl0NDcw\nLnRlc3QwC4IJdDQ3MS50ZXN0MAuCCXQ0NzIudGVzdDALggl0NDczLnRlc3QwC4IJ\ndDQ3NC50ZXN0MAuCCXQ0NzUudGVzdDALggl0NDc2LnRlc3QwC4IJdDQ3Ny50ZXN0\nMAuCCXQ0NzgudGVzdDALggl0NDc5LnRlc3QwC4IJdDQ4MC50ZXN0MAuCCXQ0ODEu\ndGVzdDALggl0NDgyLnRlc3QwC4IJdDQ4My50ZXN0MAuCCXQ0ODQudGVzdDALggl0\nNDg1LnRlc3QwC4IJdDQ4Ni50ZXN0MAuCCXQ0ODcudGVzdDALggl0NDg4LnRlc3Qw\nC4IJdDQ4OS50ZXN0MAuCCXQ0OTAudGVzdDALggl0NDkxLnRlc3QwC4IJdDQ5Mi50\nZXN0MAuCCXQ0OTMudGVzdDALggl0NDk0LnRlc3QwC4IJdDQ5NS50ZXN0MAuCCXQ0\nOTYudGVzdDALggl0NDk3LnRlc3QwC4IJdDQ5OC50ZXN0MAuCCXQ0OTkudGVzdDAL\nggl0NTAwLnRlc3QwC4IJdDUwMS50ZXN0MAuCCXQ1MDIudGVzdDALggl0NTAzLnRl\nc3QwC4IJdDUwNC50ZXN0MAuCCXQ1MDUudGVzdDALggl0NTA2LnRlc3QwC4IJdDUw\nNy50ZXN0MAuCCXQ1MDgudGVzdDALggl0NTA5LnRlc3QwC4IJdDUxMC50ZXN0MAuC\nCXQ1MTEudGVzdDALggl0NTEyLnRlc3QwB4IFLnRlc3ShghmfMAmCB3gwLnRlc3Qw\nCYIHeDEudGVzdDAJggd4Mi50ZXN0MAmCB3gzLnRlc3QwCYIHeDQudGVzdDAJggd4\nNS50ZXN0MAmCB3g2LnRlc3QwCYIHeDcudGVzdDAJggd4OC50ZXN0MAmCB3g5LnRl\nc3QwCoIIeDEwLnRlc3QwCoIIeDExLnRlc3QwCoIIeDEyLnRlc3QwCoIIeDEzLnRl\nc3QwCoIIeDE0LnRlc3QwCoIIeDE1LnRlc3QwCoIIeDE2LnRlc3QwCoIIeDE3LnRl\nc3QwCoIIeDE4LnRlc3QwCoIIeDE5LnRlc3QwCoIIeDIwLnRlc3QwCoIIeDIxLnRl\nc3QwCoIIeDIyLnRlc3QwCoIIeDIzLnRlc3QwCoIIeDI0LnRlc3QwCoIIeDI1LnRl\nc3QwCoIIeDI2LnRlc3QwCoIIeDI3LnRlc3QwCoIIeDI4LnRlc3QwCoIIeDI5LnRl\nc3QwCoIIeDMwLnRlc3QwCoIIeDMxLnRlc3QwCoIIeDMyLnRlc3QwCoIIeDMzLnRl\nc3QwCoIIeDM0LnRlc3QwCoIIeDM1LnRlc3QwCoIIeDM2LnRlc3QwCoIIeDM3LnRl\nc3QwCoIIeDM4LnRlc3QwCoIIeDM5LnRlc3QwCoIIeDQwLnRlc3QwCoIIeDQxLnRl\nc3QwCoIIeDQyLnRlc3QwCoIIeDQzLnRlc3QwCoIIeDQ0LnRlc3QwCoIIeDQ1LnRl\nc3QwCoIIeDQ2LnRlc3QwCoIIeDQ3LnRlc3QwCoIIeDQ4LnRlc3QwCoIIeDQ5LnRl\nc3QwCoIIeDUwLnRlc3QwCoIIeDUxLnRlc3QwCoIIeDUyLnRlc3QwCoIIeDUzLnRl\nc3QwCoIIeDU0LnRlc3QwCoIIeDU1LnRlc3QwCoIIeDU2LnRlc3QwCoIIeDU3LnRl\nc3QwCoIIeDU4LnRlc3QwCoIIeDU5LnRlc3QwCoIIeDYwLnRlc3QwCoIIeDYxLnRl\nc3QwCoIIeDYyLnRlc3QwCoIIeDYzLnRlc3QwCoIIeDY0LnRlc3QwCoIIeDY1LnRl\nc3QwCoIIeDY2LnRlc3QwCoIIeDY3LnRlc3QwCoIIeDY4LnRlc3QwCoIIeDY5LnRl\nc3QwCoIIeDcwLnRlc3QwCoIIeDcxLnRlc3QwCoIIeDcyLnRlc3QwCoIIeDczLnRl\nc3QwCoIIeDc0LnRlc3QwCoIIeDc1LnRlc3QwCoIIeDc2LnRlc3QwCoIIeDc3LnRl\nc3QwCoIIeDc4LnRlc3QwCoIIeDc5LnRlc3QwCoIIeDgwLnRlc3QwCoIIeDgxLnRl\nc3QwCoIIeDgyLnRlc3QwCoIIeDgzLnRlc3QwCoIIeDg0LnRlc3QwCoIIeDg1LnRl\nc3QwCoIIeDg2LnRlc3QwCoIIeDg3LnRlc3QwCoIIeDg4LnRlc3QwCoIIeDg5LnRl\nc3QwCoIIeDkwLnRlc3QwCoIIeDkxLnRlc3QwCoIIeDkyLnRlc3QwCoIIeDkzLnRl\nc3QwCoIIeDk0LnRlc3QwCoIIeDk1LnRlc3QwCoIIeDk2LnRlc3QwCoIIeDk3LnRl\nc3QwCoIIeDk4LnRlc3QwCoIIeDk5LnRlc3QwC4IJeDEwMC50ZXN0MAuCCXgxMDEu\ndGVzdDALggl4MTAyLnRlc3QwC4IJeDEwMy50ZXN0MAuCCXgxMDQudGVzdDALggl4\nMTA1LnRlc3QwC4IJeDEwNi50ZXN0MAuCCXgxMDcudGVzdDALggl4MTA4LnRlc3Qw\nC4IJeDEwOS50ZXN0MAuCCXgxMTAudGVzdDALggl4MTExLnRlc3QwC4IJeDExMi50\nZXN0MAuCCXgxMTMudGVzdDALggl4MTE0LnRlc3QwC4IJeDExNS50ZXN0MAuCCXgx\nMTYudGVzdDALggl4MTE3LnRlc3QwC4IJeDExOC50ZXN0MAuCCXgxMTkudGVzdDAL\nggl4MTIwLnRlc3QwC4IJeDEyMS50ZXN0MAuCCXgxMjIudGVzdDALggl4MTIzLnRl\nc3QwC4IJeDEyNC50ZXN0MAuCCXgxMjUudGVzdDALggl4MTI2LnRlc3QwC4IJeDEy\nNy50ZXN0MAuCCXgxMjgudGVzdDALggl4MTI5LnRlc3QwC4IJeDEzMC50ZXN0MAuC\nCXgxMzEudGVzdDALggl4MTMyLnRlc3QwC4IJeDEzMy50ZXN0MAuCCXgxMzQudGVz\ndDALggl4MTM1LnRlc3QwC4IJeDEzNi50ZXN0MAuCCXgxMzcudGVzdDALggl4MTM4\nLnRlc3QwC4IJeDEzOS50ZXN0MAuCCXgxNDAudGVzdDALggl4MTQxLnRlc3QwC4IJ\neDE0Mi50ZXN0MAuCCXgxNDMudGVzdDALggl4MTQ0LnRlc3QwC4IJeDE0NS50ZXN0\nMAuCCXgxNDYudGVzdDALggl4MTQ3LnRlc3QwC4IJeDE0OC50ZXN0MAuCCXgxNDku\ndGVzdDALggl4MTUwLnRlc3QwC4IJeDE1MS50ZXN0MAuCCXgxNTIudGVzdDALggl4\nMTUzLnRlc3QwC4IJeDE1NC50ZXN0MAuCCXgxNTUudGVzdDALggl4MTU2LnRlc3Qw\nC4IJeDE1Ny50ZXN0MAuCCXgxNTgudGVzdDALggl4MTU5LnRlc3QwC4IJeDE2MC50\nZXN0MAuCCXgxNjEudGVzdDALggl4MTYyLnRlc3QwC4IJeDE2My50ZXN0MAuCCXgx\nNjQudGVzdDALggl4MTY1LnRlc3QwC4IJeDE2Ni50ZXN0MAuCCXgxNjcudGVzdDAL\nggl4MTY4LnRlc3QwC4IJeDE2OS50ZXN0MAuCCXgxNzAudGVzdDALggl4MTcxLnRl\nc3QwC4IJeDE3Mi50ZXN0MAuCCXgxNzMudGVzdDALggl4MTc0LnRlc3QwC4IJeDE3\nNS50ZXN0MAuCCXgxNzYudGVzdDALggl4MTc3LnRlc3QwC4IJeDE3OC50ZXN0MAuC\nCXgxNzkudGVzdDALggl4MTgwLnRlc3QwC4IJeDE4MS50ZXN0MAuCCXgxODIudGVz\ndDALggl4MTgzLnRlc3QwC4IJeDE4NC50ZXN0MAuCCXgxODUudGVzdDALggl4MTg2\nLnRlc3QwC4IJeDE4Ny50ZXN0MAuCCXgxODgudGVzdDALggl4MTg5LnRlc3QwC4IJ\neDE5MC50ZXN0MAuCCXgxOTEudGVzdDALggl4MTkyLnRlc3QwC4IJeDE5My50ZXN0\nMAuCCXgxOTQudGVzdDALggl4MTk1LnRlc3QwC4IJeDE5Ni50ZXN0MAuCCXgxOTcu\ndGVzdDALggl4MTk4LnRlc3QwC4IJeDE5OS50ZXN0MAuCCXgyMDAudGVzdDALggl4\nMjAxLnRlc3QwC4IJeDIwMi50ZXN0MAuCCXgyMDMudGVzdDALggl4MjA0LnRlc3Qw\nC4IJeDIwNS50ZXN0MAuCCXgyMDYudGVzdDALggl4MjA3LnRlc3QwC4IJeDIwOC50\nZXN0MAuCCXgyMDkudGVzdDALggl4MjEwLnRlc3QwC4IJeDIxMS50ZXN0MAuCCXgy\nMTIudGVzdDALggl4MjEzLnRlc3QwC4IJeDIxNC50ZXN0MAuCCXgyMTUudGVzdDAL\nggl4MjE2LnRlc3QwC4IJeDIxNy50ZXN0MAuCCXgyMTgudGVzdDALggl4MjE5LnRl\nc3QwC4IJeDIyMC50ZXN0MAuCCXgyMjEudGVzdDALggl4MjIyLnRlc3QwC4IJeDIy\nMy50ZXN0MAuCCXgyMjQudGVzdDALggl4MjI1LnRlc3QwC4IJeDIyNi50ZXN0MAuC\nCXgyMjcudGVzdDALggl4MjI4LnRlc3QwC4IJeDIyOS50ZXN0MAuCCXgyMzAudGVz\ndDALggl4MjMxLnRlc3QwC4IJeDIzMi50ZXN0MAuCCXgyMzMudGVzdDALggl4MjM0\nLnRlc3QwC4IJeDIzNS50ZXN0MAuCCXgyMzYudGVzdDALggl4MjM3LnRlc3QwC4IJ\neDIzOC50ZXN0MAuCCXgyMzkudGVzdDALggl4MjQwLnRlc3QwC4IJeDI0MS50ZXN0\nMAuCCXgyNDIudGVzdDALggl4MjQzLnRlc3QwC4IJeDI0NC50ZXN0MAuCCXgyNDUu\ndGVzdDALggl4MjQ2LnRlc3QwC4IJeDI0Ny50ZXN0MAuCCXgyNDgudGVzdDALggl4\nMjQ5LnRlc3QwC4IJeDI1MC50ZXN0MAuCCXgyNTEudGVzdDALggl4MjUyLnRlc3Qw\nC4IJeDI1My50ZXN0MAuCCXgyNTQudGVzdDALggl4MjU1LnRlc3QwC4IJeDI1Ni50\nZXN0MAuCCXgyNTcudGVzdDALggl4MjU4LnRlc3QwC4IJeDI1OS50ZXN0MAuCCXgy\nNjAudGVzdDALggl4MjYxLnRlc3QwC4IJeDI2Mi50ZXN0MAuCCXgyNjMudGVzdDAL\nggl4MjY0LnRlc3QwC4IJeDI2NS50ZXN0MAuCCXgyNjYudGVzdDALggl4MjY3LnRl\nc3QwC4IJeDI2OC50ZXN0MAuCCXgyNjkudGVzdDALggl4MjcwLnRlc3QwC4IJeDI3\nMS50ZXN0MAuCCXgyNzIudGVzdDALggl4MjczLnRlc3QwC4IJeDI3NC50ZXN0MAuC\nCXgyNzUudGVzdDALggl4Mjc2LnRlc3QwC4IJeDI3Ny50ZXN0MAuCCXgyNzgudGVz\ndDALggl4Mjc5LnRlc3QwC4IJeDI4MC50ZXN0MAuCCXgyODEudGVzdDALggl4Mjgy\nLnRlc3QwC4IJeDI4My50ZXN0MAuCCXgyODQudGVzdDALggl4Mjg1LnRlc3QwC4IJ\neDI4Ni50ZXN0MAuCCXgyODcudGVzdDALggl4Mjg4LnRlc3QwC4IJeDI4OS50ZXN0\nMAuCCXgyOTAudGVzdDALggl4MjkxLnRlc3QwC4IJeDI5Mi50ZXN0MAuCCXgyOTMu\ndGVzdDALggl4Mjk0LnRlc3QwC4IJeDI5NS50ZXN0MAuCCXgyOTYudGVzdDALggl4\nMjk3LnRlc3QwC4IJeDI5OC50ZXN0MAuCCXgyOTkudGVzdDALggl4MzAwLnRlc3Qw\nC4IJeDMwMS50ZXN0MAuCCXgzMDIudGVzdDALggl4MzAzLnRlc3QwC4IJeDMwNC50\nZXN0MAuCCXgzMDUudGVzdDALggl4MzA2LnRlc3QwC4IJeDMwNy50ZXN0MAuCCXgz\nMDgudGVzdDALggl4MzA5LnRlc3QwC4IJeDMxMC50ZXN0MAuCCXgzMTEudGVzdDAL\nggl4MzEyLnRlc3QwC4IJeDMxMy50ZXN0MAuCCXgzMTQudGVzdDALggl4MzE1LnRl\nc3QwC4IJeDMxNi50ZXN0MAuCCXgzMTcudGVzdDALggl4MzE4LnRlc3QwC4IJeDMx\nOS50ZXN0MAuCCXgzMjAudGVzdDALggl4MzIxLnRlc3QwC4IJeDMyMi50ZXN0MAuC\nCXgzMjMudGVzdDALggl4MzI0LnRlc3QwC4IJeDMyNS50ZXN0MAuCCXgzMjYudGVz\ndDALggl4MzI3LnRlc3QwC4IJeDMyOC50ZXN0MAuCCXgzMjkudGVzdDALggl4MzMw\nLnRlc3QwC4IJeDMzMS50ZXN0MAuCCXgzMzIudGVzdDALggl4MzMzLnRlc3QwC4IJ\neDMzNC50ZXN0MAuCCXgzMzUudGVzdDALggl4MzM2LnRlc3QwC4IJeDMzNy50ZXN0\nMAuCCXgzMzgudGVzdDALggl4MzM5LnRlc3QwC4IJeDM0MC50ZXN0MAuCCXgzNDEu\ndGVzdDALggl4MzQyLnRlc3QwC4IJeDM0My50ZXN0MAuCCXgzNDQudGVzdDALggl4\nMzQ1LnRlc3QwC4IJeDM0Ni50ZXN0MAuCCXgzNDcudGVzdDALggl4MzQ4LnRlc3Qw\nC4IJeDM0OS50ZXN0MAuCCXgzNTAudGVzdDALggl4MzUxLnRlc3QwC4IJeDM1Mi50\nZXN0MAuCCXgzNTMudGVzdDALggl4MzU0LnRlc3QwC4IJeDM1NS50ZXN0MAuCCXgz\nNTYudGVzdDALggl4MzU3LnRlc3QwC4IJeDM1OC50ZXN0MAuCCXgzNTkudGVzdDAL\nggl4MzYwLnRlc3QwC4IJeDM2MS50ZXN0MAuCCXgzNjIudGVzdDALggl4MzYzLnRl\nc3QwC4IJeDM2NC50ZXN0MAuCCXgzNjUudGVzdDALggl4MzY2LnRlc3QwC4IJeDM2\nNy50ZXN0MAuCCXgzNjgudGVzdDALggl4MzY5LnRlc3QwC4IJeDM3MC50ZXN0MAuC\nCXgzNzEudGVzdDALggl4MzcyLnRlc3QwC4IJeDM3My50ZXN0MAuCCXgzNzQudGVz\ndDALggl4Mzc1LnRlc3QwC4IJeDM3Ni50ZXN0MAuCCXgzNzcudGVzdDALggl4Mzc4\nLnRlc3QwC4IJeDM3OS50ZXN0MAuCCXgzODAudGVzdDALggl4MzgxLnRlc3QwC4IJ\neDM4Mi50ZXN0MAuCCXgzODMudGVzdDALggl4Mzg0LnRlc3QwC4IJeDM4NS50ZXN0\nMAuCCXgzODYudGVzdDALggl4Mzg3LnRlc3QwC4IJeDM4OC50ZXN0MAuCCXgzODku\ndGVzdDALggl4MzkwLnRlc3QwC4IJeDM5MS50ZXN0MAuCCXgzOTIudGVzdDALggl4\nMzkzLnRlc3QwC4IJeDM5NC50ZXN0MAuCCXgzOTUud", "GVzdDALggl4Mzk2LnRlc3Qw\nC4IJeDM5Ny50ZXN0MAuCCXgzOTgudGVzdDALggl4Mzk5LnRlc3QwC4IJeDQwMC50\nZXN0MAuCCXg0MDEudGVzdDALggl4NDAyLnRlc3QwC4IJeDQwMy50ZXN0MAuCCXg0\nMDQudGVzdDALggl4NDA1LnRlc3QwC4IJeDQwNi50ZXN0MAuCCXg0MDcudGVzdDAL\nggl4NDA4LnRlc3QwC4IJeDQwOS50ZXN0MAuCCXg0MTAudGVzdDALggl4NDExLnRl\nc3QwC4IJeDQxMi50ZXN0MAuCCXg0MTMudGVzdDALggl4NDE0LnRlc3QwC4IJeDQx\nNS50ZXN0MAuCCXg0MTYudGVzdDALggl4NDE3LnRlc3QwC4IJeDQxOC50ZXN0MAuC\nCXg0MTkudGVzdDALggl4NDIwLnRlc3QwC4IJeDQyMS50ZXN0MAuCCXg0MjIudGVz\ndDALggl4NDIzLnRlc3QwC4IJeDQyNC50ZXN0MAuCCXg0MjUudGVzdDALggl4NDI2\nLnRlc3QwC4IJeDQyNy50ZXN0MAuCCXg0MjgudGVzdDALggl4NDI5LnRlc3QwC4IJ\neDQzMC50ZXN0MAuCCXg0MzEudGVzdDALggl4NDMyLnRlc3QwC4IJeDQzMy50ZXN0\nMAuCCXg0MzQudGVzdDALggl4NDM1LnRlc3QwC4IJeDQzNi50ZXN0MAuCCXg0Mzcu\ndGVzdDALggl4NDM4LnRlc3QwC4IJeDQzOS50ZXN0MAuCCXg0NDAudGVzdDALggl4\nNDQxLnRlc3QwC4IJeDQ0Mi50ZXN0MAuCCXg0NDMudGVzdDALggl4NDQ0LnRlc3Qw\nC4IJeDQ0NS50ZXN0MAuCCXg0NDYudGVzdDALggl4NDQ3LnRlc3QwC4IJeDQ0OC50\nZXN0MAuCCXg0NDkudGVzdDALggl4NDUwLnRlc3QwC4IJeDQ1MS50ZXN0MAuCCXg0\nNTIudGVzdDALggl4NDUzLnRlc3QwC4IJeDQ1NC50ZXN0MAuCCXg0NTUudGVzdDAL\nggl4NDU2LnRlc3QwC4IJeDQ1Ny50ZXN0MAuCCXg0NTgudGVzdDALggl4NDU5LnRl\nc3QwC4IJeDQ2MC50ZXN0MAuCCXg0NjEudGVzdDALggl4NDYyLnRlc3QwC4IJeDQ2\nMy50ZXN0MAuCCXg0NjQudGVzdDALggl4NDY1LnRlc3QwC4IJeDQ2Ni50ZXN0MAuC\nCXg0NjcudGVzdDALggl4NDY4LnRlc3QwC4IJeDQ2OS50ZXN0MAuCCXg0NzAudGVz\ndDALggl4NDcxLnRlc3QwC4IJeDQ3Mi50ZXN0MAuCCXg0NzMudGVzdDALggl4NDc0\nLnRlc3QwC4IJeDQ3NS50ZXN0MAuCCXg0NzYudGVzdDALggl4NDc3LnRlc3QwC4IJ\neDQ3OC50ZXN0MAuCCXg0NzkudGVzdDALggl4NDgwLnRlc3QwC4IJeDQ4MS50ZXN0\nMAuCCXg0ODIudGVzdDALggl4NDgzLnRlc3QwC4IJeDQ4NC50ZXN0MAuCCXg0ODUu\ndGVzdDALggl4NDg2LnRlc3QwC4IJeDQ4Ny50ZXN0MAuCCXg0ODgudGVzdDALggl4\nNDg5LnRlc3QwC4IJeDQ5MC50ZXN0MAuCCXg0OTEudGVzdDALggl4NDkyLnRlc3Qw\nC4IJeDQ5My50ZXN0MAuCCXg0OTQudGVzdDALggl4NDk1LnRlc3QwC4IJeDQ5Ni50\nZXN0MAuCCXg0OTcudGVzdDALggl4NDk4LnRlc3QwC4IJeDQ5OS50ZXN0MAuCCXg1\nMDAudGVzdDALggl4NTAxLnRlc3QwC4IJeDUwMi50ZXN0MAuCCXg1MDMudGVzdDAL\nggl4NTA0LnRlc3QwC4IJeDUwNS50ZXN0MAuCCXg1MDYudGVzdDALggl4NTA3LnRl\nc3QwC4IJeDUwOC50ZXN0MAuCCXg1MDkudGVzdDALggl4NTEwLnRlc3QwC4IJeDUx\nMS50ZXN0MAuCCXg1MTIudGVzdDANBgkqhkiG9w0BAQsFAAOCAQEAL2zj4W3+BzBa\nUA0pBD3K5mXq5H94uVT3YFiS1Yrrv1aGJjnb9iabNjdPNRFq7eBm1OajFTv8UtE/\nWJR0JDvBTs7yvpOgTy+JY9RY8NP72gdOOvpZ3DbJ0bbSUFqBVQlM8771Mz9RVQX9\ni9oCqVkakKI/9guAU2XHx9ztTB6N3mULB3QkeFmlyrqeeVK/2lFErArRxyKQXjxb\ncfD76JGADWpp6p1/QUGYmPNYGxHMtWzAhzX1zs/OdGwVVX7g6xxfFdOw0z2PVSPL\notKS5E3GWvqe43Edz3D6AI7jp6ibtH32HX/D4lLLd9nSiQURvJJ0nrMYZI+7p1DE\n6BsnsA2jNg==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen223 = 26473; +static const size_t kLen228 = 26473; -static const char *kData223[] = { +static const char *kData228[] = { "-----BEGIN CERTIFICATE-----\nMIJMMTCCSxmgAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJDQTAg\nFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowgjO+MRAwDgYDVQQDEwd0\nMC50ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nMUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nM0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nNUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nN0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0OEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nOUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTBAdGVzdDEXMBUGCSqGSIb3DQEJARYI\ndDExQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxMkB0ZXN0MRcwFQYJKoZIhvcNAQkB\nFgh0MTNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDE0QHRlc3QxFzAVBgkqhkiG9w0B\nCQEWCHQxNUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTZAdGVzdDEXMBUGCSqGSIb3\nDQEJARYIdDE3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxOEB0ZXN0MRcwFQYJKoZI\nhvcNAQkBFgh0MTlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDIwQHRlc3QxFzAVBgkq\nhkiG9w0BCQEWCHQyMUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjJAdGVzdDEXMBUG\nCSqGSIb3DQEJARYIdDIzQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQyNEB0ZXN0MRcw\nFQYJKoZIhvcNAQkBFgh0MjVAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDI2QHRlc3Qx\nFzAVBgkqhkiG9w0BCQEWCHQyN0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjhAdGVz\ndDEXMBUGCSqGSIb3DQEJARYIdDI5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzMEB0\nZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDMy\nQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzM0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0\nMzRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDM1QHRlc3QxFzAVBgkqhkiG9w0BCQEW\nCHQzNkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzdAdGVzdDEXMBUGCSqGSIb3DQEJ\nARYIdDM4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzOUB0ZXN0MRcwFQYJKoZIhvcN\nAQkBFgh0NDBAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQxQHRlc3QxFzAVBgkqhkiG\n9w0BCQEWCHQ0MkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDNAdGVzdDEXMBUGCSqG\nSIb3DQEJARYIdDQ0QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ0NUB0ZXN0MRcwFQYJ\nKoZIhvcNAQkBFgh0NDZAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQ3QHRlc3QxFzAV\nBgkqhkiG9w0BCQEWCHQ0OEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDlAdGVzdDEX\nMBUGCSqGSIb3DQEJARYIdDUwQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1MUB0ZXN0\nMRcwFQYJKoZIhvcNAQkBFgh0NTJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDUzQHRl\nc3QxFzAVBgkqhkiG9w0BCQEWCHQ1NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NTVA\ndGVzdDEXMBUGCSqGSIb3DQEJARYIdDU2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1\nN0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NThAdGVzdDEXMBUGCSqGSIb3DQEJARYI\ndDU5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2MEB0ZXN0MRcwFQYJKoZIhvcNAQkB\nFgh0NjFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDYyQHRlc3QxFzAVBgkqhkiG9w0B\nCQEWCHQ2M0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NjRAdGVzdDEXMBUGCSqGSIb3\nDQEJARYIdDY1QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2NkB0ZXN0MRcwFQYJKoZI\nhvcNAQkBFgh0NjdAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDY4QHRlc3QxFzAVBgkq\nhkiG9w0BCQEWCHQ2OUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzBAdGVzdDEXMBUG\nCSqGSIb3DQEJARYIdDcxQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3MkB0ZXN0MRcw\nFQYJKoZIhvcNAQkBFgh0NzNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDc0QHRlc3Qx\nFzAVBgkqhkiG9w0BCQEWCHQ3NUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzZAdGVz\ndDEXMBUGCSqGSIb3DQEJARYIdDc3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3OEB0\nZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgw\nQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4MUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0\nODJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgzQHRlc3QxFzAVBgkqhkiG9w0BCQEW\nCHQ4NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0ODVAdGVzdDEXMBUGCSqGSIb3DQEJ\nARYIdDg2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4N0B0ZXN0MRcwFQYJKoZIhvcN\nAQkBFgh0ODhAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDg5QHRlc3QxFzAVBgkqhkiG\n9w0BCQEWCHQ5MEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTFAdGVzdDEXMBUGCSqG\nSIb3DQEJARYIdDkyQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5M0B0ZXN0MRcwFQYJ\nKoZIhvcNAQkBFgh0OTRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDk1QHRlc3QxFzAV\nBgkqhkiG9w0BCQEWCHQ5NkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTdAdGVzdDEX\nMBUGCSqGSIb3DQEJARYIdDk4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5OUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTAwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTAzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDEwNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTA2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxMDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwOEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTA5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDExMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTEyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEx\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTE1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxMTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDExN0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTE4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDEyMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTIxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxMjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyM0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTI0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTI3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDEyOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTMwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxMzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEzMkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTMzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMzRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDEzNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxMzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEz\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxNDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0MUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTQyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDE0NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTQ1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxNDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0N0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTQ4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTUxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNTJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDE1M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTU0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxNTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1NkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTU3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNThAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDE1OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYwQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxNjFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2\nMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYzQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxNjRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2NUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTY2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNjdAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDE2OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTY5QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxNzBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3MUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTcyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzNA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTc1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzZAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDE3N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTc4QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxNzlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4MEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTgxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxODJAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDE4M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg0QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxODVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4\nNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg3QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxODhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4OUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTkwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTFAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDE5MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTkzQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxOTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5NUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTk2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTdA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTk5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDBAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDIwMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjAyQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyMDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIwNEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MjA1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDZAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDIwN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjA4QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIx\nMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjExQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQyMTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxM0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MjE0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMTVAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDIxNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjE3QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQyMThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxOUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MjIwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMjIzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDIyNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjI2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyMjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyOEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MjI5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDIzMUB0ZXN0MRgwFgY", "JKoZIhvcNAQkBFgl0MjMyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIz\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjM1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQyMzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIzN0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MjM4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDI0MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjQxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQyNDJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0M0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MjQ0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMjQ3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDI0OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjUwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyNTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI1MkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MjUzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNTRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDI1NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjU2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQyNTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI1\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjU5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQyNjBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI2MUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MjYyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNjNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDI2NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjY1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQyNjZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI2N0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MjY4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNjlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDI3MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMjcxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNzJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDI3M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjc0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyNzVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI3NkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0Mjc3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNzhAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDI3OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjgwQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQyODFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI4\nMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjgzQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQyODRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI4NUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0Mjg2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyODdAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDI4OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjg5QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQyOTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI5MUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MjkyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyOTNA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDI5NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMjk1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyOTZAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDI5N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjk4QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyOTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMwMEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MzAxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMDJAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDMwM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzA0QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQzMDVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMw\nNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzA3QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQzMDhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMwOUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MzEwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMTFAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDMxMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzEzQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQzMTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMxNUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MzE2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMTdA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDMxOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMzE5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjBAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDMyMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzIyQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQzMjNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMyNEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MzI1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjZAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDMyN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzI4QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMz\nMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzMxQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQzMzJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMzM0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MzM0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMzVAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDMzNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzM3QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQzMzhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMzOUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MzQwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNDFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDM0MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMzQzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNDRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDM0NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzQ2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQzNDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM0OEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MzQ5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDM1MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzUyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM1\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzU1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQzNTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM1N0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MzU4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDM2MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzYxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQzNjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM2M0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MzY0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNjVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDM2NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMzY3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNjhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDM2OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzcwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQzNzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM3MkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MzczQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNzRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDM3NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzc2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQzNzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM3\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzc5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQzODBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM4MUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MzgyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzODNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDM4NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzg1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQzODZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM4N0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0Mzg4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzODlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDM5MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMzkxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzOTJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDM5M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzk0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQzOTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM5NkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0Mzk3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzOThAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDM5OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDAwQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MDFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQw\nMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDAzQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ0MDRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQwNUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NDA2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MDdAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDQwOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDA5QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ0MTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQxMUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NDEyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MTNA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDQxNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNDE1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MTZAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDQxN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDE4QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ0MTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQyMEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NDIxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MjJAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDQyM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDI0QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MjVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQy\nNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDI3QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ0MjhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQyOUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NDMwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MzFAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDQzMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDMzQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ0MzRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQzNUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NDM2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MzdA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDQzOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNDM5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDBAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDQ0MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDQyQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ0NDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ0NEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NDQ1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDZAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDQ0N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDQ4QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1\nMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDUxQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ0NTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1M0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NDU0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NTVAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDQ1NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDU3QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ0NThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1OUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NDYwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NjFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ2MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNDYzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NjRAd", "GVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDQ2NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDY2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ0NjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ2OEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NDY5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDQ3MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDcyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ3\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDc1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ0NzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ3N0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NDc4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDQ4MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDgxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ0ODJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ4M0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NDg0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0ODVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ4NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNDg3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0ODhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDQ4OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDkwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ0OTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ5MkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NDkzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0OTRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDQ5NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDk2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0OTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ5\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDk5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ1MDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUwMUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NTAyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MDNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDUwNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTA1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ1MDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUwN0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NTA4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MDlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDUxMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNTExQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MTJAdGVzdDCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQoCggEBALoL2oQZEgFBdXwuPb29W75T63JfNJKKdYi6YrmK\nM+EKbcMue/hFrLGQXB6a2eQZFn+j3hmexeQF9T8iWxh2S6rzAr1Yj+qXeDBaMf4o\nBEiEhBxIsaIlws3qQa4baeVEEoxw+A+ISrYHTIFcV/i0bcIFt5p7v7wbu686a/w0\nvIqPfad5amdQJMvmjZXDI+jGMvFPmBRHr2/1dJUWPaKsJluwR514pJv74urIyEt+\ndFPM2/5kc2HiLNkeuS1Hbky+dPlDIGrfaHHsCNnb/GjvQ6YfvDXRrYPCxWMk0x3F\nMSaDK9T0zoJ5hE9fViR+D6xcJO2RNUCUENS+Iipj3kIrLbkCAwEAAaOCFeUwghXh\nMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8E\nAjAAMIIVqgYDVR0RBIIVoTCCFZ2CB3QwLnRlc3SCB3QxLnRlc3SCB3QyLnRlc3SC\nB3QzLnRlc3SCB3Q0LnRlc3SCB3Q1LnRlc3SCB3Q2LnRlc3SCB3Q3LnRlc3SCB3Q4\nLnRlc3SCB3Q5LnRlc3SCCHQxMC50ZXN0ggh0MTEudGVzdIIIdDEyLnRlc3SCCHQx\nMy50ZXN0ggh0MTQudGVzdIIIdDE1LnRlc3SCCHQxNi50ZXN0ggh0MTcudGVzdIII\ndDE4LnRlc3SCCHQxOS50ZXN0ggh0MjAudGVzdIIIdDIxLnRlc3SCCHQyMi50ZXN0\nggh0MjMudGVzdIIIdDI0LnRlc3SCCHQyNS50ZXN0ggh0MjYudGVzdIIIdDI3LnRl\nc3SCCHQyOC50ZXN0ggh0MjkudGVzdIIIdDMwLnRlc3SCCHQzMS50ZXN0ggh0MzIu\ndGVzdIIIdDMzLnRlc3SCCHQzNC50ZXN0ggh0MzUudGVzdIIIdDM2LnRlc3SCCHQz\nNy50ZXN0ggh0MzgudGVzdIIIdDM5LnRlc3SCCHQ0MC50ZXN0ggh0NDEudGVzdIII\ndDQyLnRlc3SCCHQ0My50ZXN0ggh0NDQudGVzdIIIdDQ1LnRlc3SCCHQ0Ni50ZXN0\nggh0NDcudGVzdIIIdDQ4LnRlc3SCCHQ0OS50ZXN0ggh0NTAudGVzdIIIdDUxLnRl\nc3SCCHQ1Mi50ZXN0ggh0NTMudGVzdIIIdDU0LnRlc3SCCHQ1NS50ZXN0ggh0NTYu\ndGVzdIIIdDU3LnRlc3SCCHQ1OC50ZXN0ggh0NTkudGVzdIIIdDYwLnRlc3SCCHQ2\nMS50ZXN0ggh0NjIudGVzdIIIdDYzLnRlc3SCCHQ2NC50ZXN0ggh0NjUudGVzdIII\ndDY2LnRlc3SCCHQ2Ny50ZXN0ggh0NjgudGVzdIIIdDY5LnRlc3SCCHQ3MC50ZXN0\nggh0NzEudGVzdIIIdDcyLnRlc3SCCHQ3My50ZXN0ggh0NzQudGVzdIIIdDc1LnRl\nc3SCCHQ3Ni50ZXN0ggh0NzcudGVzdIIIdDc4LnRlc3SCCHQ3OS50ZXN0ggh0ODAu\ndGVzdIIIdDgxLnRlc3SCCHQ4Mi50ZXN0ggh0ODMudGVzdIIIdDg0LnRlc3SCCHQ4\nNS50ZXN0ggh0ODYudGVzdIIIdDg3LnRlc3SCCHQ4OC50ZXN0ggh0ODkudGVzdIII\ndDkwLnRlc3SCCHQ5MS50ZXN0ggh0OTIudGVzdIIIdDkzLnRlc3SCCHQ5NC50ZXN0\nggh0OTUudGVzdIIIdDk2LnRlc3SCCHQ5Ny50ZXN0ggh0OTgudGVzdIIIdDk5LnRl\nc3SCCXQxMDAudGVzdIIJdDEwMS50ZXN0ggl0MTAyLnRlc3SCCXQxMDMudGVzdIIJ\ndDEwNC50ZXN0ggl0MTA1LnRlc3SCCXQxMDYudGVzdIIJdDEwNy50ZXN0ggl0MTA4\nLnRlc3SCCXQxMDkudGVzdIIJdDExMC50ZXN0ggl0MTExLnRlc3SCCXQxMTIudGVz\ndIIJdDExMy50ZXN0ggl0MTE0LnRlc3SCCXQxMTUudGVzdIIJdDExNi50ZXN0ggl0\nMTE3LnRlc3SCCXQxMTgudGVzdIIJdDExOS50ZXN0ggl0MTIwLnRlc3SCCXQxMjEu\ndGVzdIIJdDEyMi50ZXN0ggl0MTIzLnRlc3SCCXQxMjQudGVzdIIJdDEyNS50ZXN0\nggl0MTI2LnRlc3SCCXQxMjcudGVzdIIJdDEyOC50ZXN0ggl0MTI5LnRlc3SCCXQx\nMzAudGVzdIIJdDEzMS50ZXN0ggl0MTMyLnRlc3SCCXQxMzMudGVzdIIJdDEzNC50\nZXN0ggl0MTM1LnRlc3SCCXQxMzYudGVzdIIJdDEzNy50ZXN0ggl0MTM4LnRlc3SC\nCXQxMzkudGVzdIIJdDE0MC50ZXN0ggl0MTQxLnRlc3SCCXQxNDIudGVzdIIJdDE0\nMy50ZXN0ggl0MTQ0LnRlc3SCCXQxNDUudGVzdIIJdDE0Ni50ZXN0ggl0MTQ3LnRl\nc3SCCXQxNDgudGVzdIIJdDE0OS50ZXN0ggl0MTUwLnRlc3SCCXQxNTEudGVzdIIJ\ndDE1Mi50ZXN0ggl0MTUzLnRlc3SCCXQxNTQudGVzdIIJdDE1NS50ZXN0ggl0MTU2\nLnRlc3SCCXQxNTcudGVzdIIJdDE1OC50ZXN0ggl0MTU5LnRlc3SCCXQxNjAudGVz\ndIIJdDE2MS50ZXN0ggl0MTYyLnRlc3SCCXQxNjMudGVzdIIJdDE2NC50ZXN0ggl0\nMTY1LnRlc3SCCXQxNjYudGVzdIIJdDE2Ny50ZXN0ggl0MTY4LnRlc3SCCXQxNjku\ndGVzdIIJdDE3MC50ZXN0ggl0MTcxLnRlc3SCCXQxNzIudGVzdIIJdDE3My50ZXN0\nggl0MTc0LnRlc3SCCXQxNzUudGVzdIIJdDE3Ni50ZXN0ggl0MTc3LnRlc3SCCXQx\nNzgudGVzdIIJdDE3OS50ZXN0ggl0MTgwLnRlc3SCCXQxODEudGVzdIIJdDE4Mi50\nZXN0ggl0MTgzLnRlc3SCCXQxODQudGVzdIIJdDE4NS50ZXN0ggl0MTg2LnRlc3SC\nCXQxODcudGVzdIIJdDE4OC50ZXN0ggl0MTg5LnRlc3SCCXQxOTAudGVzdIIJdDE5\nMS50ZXN0ggl0MTkyLnRlc3SCCXQxOTMudGVzdIIJdDE5NC50ZXN0ggl0MTk1LnRl\nc3SCCXQxOTYudGVzdIIJdDE5Ny50ZXN0ggl0MTk4LnRlc3SCCXQxOTkudGVzdIIJ\ndDIwMC50ZXN0ggl0MjAxLnRlc3SCCXQyMDIudGVzdIIJdDIwMy50ZXN0ggl0MjA0\nLnRlc3SCCXQyMDUudGVzdIIJdDIwNi50ZXN0ggl0MjA3LnRlc3SCCXQyMDgudGVz\ndIIJdDIwOS50ZXN0ggl0MjEwLnRlc3SCCXQyMTEudGVzdIIJdDIxMi50ZXN0ggl0\nMjEzLnRlc3SCCXQyMTQudGVzdIIJdDIxNS50ZXN0ggl0MjE2LnRlc3SCCXQyMTcu\ndGVzdIIJdDIxOC50ZXN0ggl0MjE5LnRlc3SCCXQyMjAudGVzdIIJdDIyMS50ZXN0\nggl0MjIyLnRlc3SCCXQyMjMudGVzdIIJdDIyNC50ZXN0ggl0MjI1LnRlc3SCCXQy\nMjYudGVzdIIJdDIyNy50ZXN0ggl0MjI4LnRlc3SCCXQyMjkudGVzdIIJdDIzMC50\nZXN0ggl0MjMxLnRlc3SCCXQyMzIudGVzdIIJdDIzMy50ZXN0ggl0MjM0LnRlc3SC\nCXQyMzUudGVzdIIJdDIzNi50ZXN0ggl0MjM3LnRlc3SCCXQyMzgudGVzdIIJdDIz\nOS50ZXN0ggl0MjQwLnRlc3SCCXQyNDEudGVzdIIJdDI0Mi50ZXN0ggl0MjQzLnRl\nc3SCCXQyNDQudGVzdIIJdDI0NS50ZXN0ggl0MjQ2LnRlc3SCCXQyNDcudGVzdIIJ\ndDI0OC50ZXN0ggl0MjQ5LnRlc3SCCXQyNTAudGVzdIIJdDI1MS50ZXN0ggl0MjUy\nLnRlc3SCCXQyNTMudGVzdIIJdDI1NC50ZXN0ggl0MjU1LnRlc3SCCXQyNTYudGVz\ndIIJdDI1Ny50ZXN0ggl0MjU4LnRlc3SCCXQyNTkudGVzdIIJdDI2MC50ZXN0ggl0\nMjYxLnRlc3SCCXQyNjIudGVzdIIJdDI2My50ZXN0ggl0MjY0LnRlc3SCCXQyNjUu\ndGVzdIIJdDI2Ni50ZXN0ggl0MjY3LnRlc3SCCXQyNjgudGVzdIIJdDI2OS50ZXN0\nggl0MjcwLnRlc3SCCXQyNzEudGVzdIIJdDI3Mi50ZXN0ggl0MjczLnRlc3SCCXQy\nNzQudGVzdIIJdDI3NS50ZXN0ggl0Mjc2LnRlc3SCCXQyNzcudGVzdIIJdDI3OC50\nZXN0ggl0Mjc5LnRlc3SCCXQyODAudGVzdIIJdDI4MS50ZXN0ggl0MjgyLnRlc3SC\nCXQyODMudGVzdIIJdDI4NC50ZXN0ggl0Mjg1LnRlc3SCCXQyODYudGVzdIIJdDI4\nNy50ZXN0ggl0Mjg4LnRlc3SCCXQyODkudGVzdIIJdDI5MC50ZXN0ggl0MjkxLnRl\nc3SCCXQyOTIudGVzdIIJdDI5My50ZXN0ggl0Mjk0LnRlc3SCCXQyOTUudGVzdIIJ\ndDI5Ni50ZXN0ggl0Mjk3LnRlc3SCCXQyOTgudGVzdIIJdDI5OS50ZXN0ggl0MzAw\nLnRlc3SCCXQzMDEudGVzdIIJdDMwMi50ZXN0ggl0MzAzLnRlc3SCCXQzMDQudGVz\ndIIJdDMwNS50ZXN0ggl0MzA2LnRlc3SCCXQzMDcudGVzdIIJdDMwOC50ZXN0ggl0\nMzA5LnRlc3SCCXQzMTAudGVzdIIJdDMxMS50ZXN0ggl0MzEyLnRlc3SCCXQzMTMu\ndGVzdIIJdDMxNC50ZXN0ggl0MzE1LnRlc3SCCXQzMTYudGVzdIIJdDMxNy50ZXN0\nggl0MzE4LnRlc3SCCXQzMTkudGVzdIIJdDMyMC50ZXN0ggl0MzIxLnRlc3SCCXQz\nMjIudGVzdIIJdDMyMy50ZXN0ggl0MzI0LnRlc3SCCXQzMjUudGVzdIIJdDMyNi50\nZXN0ggl0MzI3LnRlc3SCCXQzMjgudGVzdIIJdDMyOS50ZXN0ggl0MzMwLnRlc3SC\nCXQzMzEudGVzdIIJdDMzMi50ZXN0ggl0MzMzLnRlc3SCCXQzMzQudGVzdIIJdDMz\nNS50ZXN0ggl0MzM2LnRlc3SCCXQzMzcudGVzdIIJdDMzOC50ZXN0ggl0MzM5LnRl\nc3SCCXQzNDAudGVzdIIJdDM0MS50ZXN0ggl0MzQyLnRlc3SCCXQzNDMudGVzdIIJ\ndDM0NC50ZXN0ggl0MzQ1LnRlc3SCCXQzNDYudGVzdIIJdDM0Ny50ZXN0ggl0MzQ4\nLnRlc3SCCXQzNDkudGVzdIIJdDM1MC50ZXN0ggl0MzUxLnRlc3SCCXQzNTIudGVz\ndIIJdDM1My50ZXN0ggl0MzU0LnRlc3SCCXQzNTUudGVzdIIJdDM1Ni50ZXN0ggl0\nMzU3LnRlc3SCCXQzNTgudGVzdIIJdDM1OS50ZXN0ggl0MzYwLnRlc3SCCXQzNjEu\ndGVzdIIJdDM2Mi50ZXN0ggl0MzYzLnRlc3SCCXQzNjQudGVzdIIJdDM2NS50ZXN0\nggl0MzY2LnRlc3SCCXQzNjcudGVzdIIJdDM2OC50ZXN0ggl0MzY5LnRlc3SCCXQz\nNzAudGVzdIIJdDM3MS50ZXN0ggl0MzcyLnRlc3SCCXQzNzMudGVzdIIJdDM3NC50\nZXN0ggl0Mzc1LnRlc3SCCXQzNzYudGVzdIIJdDM3Ny50ZXN0ggl0Mzc4LnRlc3SC\nCXQzNzkudGVzdIIJdDM4MC50ZXN0ggl0MzgxLnRlc3SCCXQzODIudGVzdIIJdDM4\nMy50ZXN0ggl0Mzg0LnRlc3SCCXQzODUudGVzdIIJdDM4Ni50ZXN0ggl0Mzg3LnRl\nc3SCCXQzODgudGVzdIIJdDM4OS50ZXN0ggl0MzkwLnRlc3SCCXQzOTEudGVzdIIJ\ndDM5Mi50ZXN0ggl0MzkzLnRlc3SCCXQzOTQudGVzdIIJdDM5NS50ZXN0ggl0Mzk2\nLnRlc3SCCXQzOTcudGVzdIIJdDM5OC50ZXN0ggl0Mzk5LnRlc3SCCXQ0MDAudGVz\ndIIJdDQwMS50ZXN0ggl0NDAyLnRlc3SCCXQ0MDMudGVzdIIJdDQwNC50ZXN0ggl0\nNDA1LnRlc3SCCXQ0MDYudGVzdIIJdDQwNy50ZXN0ggl0NDA4LnRlc3SCCXQ0MDku\ndGVzdIIJdDQxMC50ZXN0ggl0NDExLnRlc3SCCXQ0MTI", "udGVzdIIJdDQxMy50ZXN0\nggl0NDE0LnRlc3SCCXQ0MTUudGVzdIIJdDQxNi50ZXN0ggl0NDE3LnRlc3SCCXQ0\nMTgudGVzdIIJdDQxOS50ZXN0ggl0NDIwLnRlc3SCCXQ0MjEudGVzdIIJdDQyMi50\nZXN0ggl0NDIzLnRlc3SCCXQ0MjQudGVzdIIJdDQyNS50ZXN0ggl0NDI2LnRlc3SC\nCXQ0MjcudGVzdIIJdDQyOC50ZXN0ggl0NDI5LnRlc3SCCXQ0MzAudGVzdIIJdDQz\nMS50ZXN0ggl0NDMyLnRlc3SCCXQ0MzMudGVzdIIJdDQzNC50ZXN0ggl0NDM1LnRl\nc3SCCXQ0MzYudGVzdIIJdDQzNy50ZXN0ggl0NDM4LnRlc3SCCXQ0MzkudGVzdIIJ\ndDQ0MC50ZXN0ggl0NDQxLnRlc3SCCXQ0NDIudGVzdIIJdDQ0My50ZXN0ggl0NDQ0\nLnRlc3SCCXQ0NDUudGVzdIIJdDQ0Ni50ZXN0ggl0NDQ3LnRlc3SCCXQ0NDgudGVz\ndIIJdDQ0OS50ZXN0ggl0NDUwLnRlc3SCCXQ0NTEudGVzdIIJdDQ1Mi50ZXN0ggl0\nNDUzLnRlc3SCCXQ0NTQudGVzdIIJdDQ1NS50ZXN0ggl0NDU2LnRlc3SCCXQ0NTcu\ndGVzdIIJdDQ1OC50ZXN0ggl0NDU5LnRlc3SCCXQ0NjAudGVzdIIJdDQ2MS50ZXN0\nggl0NDYyLnRlc3SCCXQ0NjMudGVzdIIJdDQ2NC50ZXN0ggl0NDY1LnRlc3SCCXQ0\nNjYudGVzdIIJdDQ2Ny50ZXN0ggl0NDY4LnRlc3SCCXQ0NjkudGVzdIIJdDQ3MC50\nZXN0ggl0NDcxLnRlc3SCCXQ0NzIudGVzdIIJdDQ3My50ZXN0ggl0NDc0LnRlc3SC\nCXQ0NzUudGVzdIIJdDQ3Ni50ZXN0ggl0NDc3LnRlc3SCCXQ0NzgudGVzdIIJdDQ3\nOS50ZXN0ggl0NDgwLnRlc3SCCXQ0ODEudGVzdIIJdDQ4Mi50ZXN0ggl0NDgzLnRl\nc3SCCXQ0ODQudGVzdIIJdDQ4NS50ZXN0ggl0NDg2LnRlc3SCCXQ0ODcudGVzdIIJ\ndDQ4OC50ZXN0ggl0NDg5LnRlc3SCCXQ0OTAudGVzdIIJdDQ5MS50ZXN0ggl0NDky\nLnRlc3SCCXQ0OTMudGVzdIIJdDQ5NC50ZXN0ggl0NDk1LnRlc3SCCXQ0OTYudGVz\ndIIJdDQ5Ny50ZXN0ggl0NDk4LnRlc3SCCXQ0OTkudGVzdIIJdDUwMC50ZXN0ggl0\nNTAxLnRlc3SCCXQ1MDIudGVzdIIJdDUwMy50ZXN0ggl0NTA0LnRlc3SCCXQ1MDUu\ndGVzdIIJdDUwNi50ZXN0ggl0NTA3LnRlc3SCCXQ1MDgudGVzdIIJdDUwOS50ZXN0\nggl0NTEwLnRlc3SCCXQ1MTEudGVzdIIJdDUxMi50ZXN0MA0GCSqGSIb3DQEBCwUA\nA4IBAQCp6JcB0NWRQJSgjsI0ycv1gpuoo2k/NjPlkYCcsLwmTPRVdpBHi9MJNS2i\nMKPk7Wek2y9wJw6QPq9fMi/XSmEqRcFC8uBZ9evyTwmVbzzRsEN3qGHCrVdOnVLa\nD7x7NjoTLApVNelYTxMPEennTd9+we8cl0T2TqosTnbxyvP+pnwtpazjDAFKlt8e\nJpLRlRtWR/aScZ+P8CGj4b3prp12NJIAPG9W2ZqiHNLNMhTQG4Bz+O5+zMnIbC+e\nAhc4co+A/7qzselNZL1pcFFyRtTeLAcREuZVTTRa/EXmlLqzMe+UEEinEtdktnPL\nKO0ED3qPXggpBbFaa4/PVubBS4QU\n-----END CERTIFICATE-----\n", }; -static const size_t kLen224 = 16219; +static const size_t kLen229 = 16219; -static const char *kData224[] = { +static const char *kData229[] = { "-----BEGIN CERTIFICATE-----\nMIIunDCCLYSgAwIBAgIBAzANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJDQTAg\nFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowEjEQMA4GA1UEAxMHdDAu\ndGVzdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoL2oQZEgFBdXwu\nPb29W75T63JfNJKKdYi6YrmKM+EKbcMue/hFrLGQXB6a2eQZFn+j3hmexeQF9T8i\nWxh2S6rzAr1Yj+qXeDBaMf4oBEiEhBxIsaIlws3qQa4baeVEEoxw+A+ISrYHTIFc\nV/i0bcIFt5p7v7wbu686a/w0vIqPfad5amdQJMvmjZXDI+jGMvFPmBRHr2/1dJUW\nPaKsJluwR514pJv74urIyEt+dFPM2/5kc2HiLNkeuS1Hbky+dPlDIGrfaHHsCNnb\n/GjvQ6YfvDXRrYPCxWMk0x3FMSaDK9T0zoJ5hE9fViR+D6xcJO2RNUCUENS+Iipj\n3kIrLbkCAwEAAaOCK/4wgiv6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggr\nBgEFBQcDATAMBgNVHRMBAf8EAjAAMIIrwwYDVR0RBIIrujCCK7aCB3QwLnRlc3SC\nB3QxLnRlc3SCB3QyLnRlc3SCB3QzLnRlc3SCB3Q0LnRlc3SCB3Q1LnRlc3SCB3Q2\nLnRlc3SCB3Q3LnRlc3SCB3Q4LnRlc3SCB3Q5LnRlc3SCCHQxMC50ZXN0ggh0MTEu\ndGVzdIIIdDEyLnRlc3SCCHQxMy50ZXN0ggh0MTQudGVzdIIIdDE1LnRlc3SCCHQx\nNi50ZXN0ggh0MTcudGVzdIIIdDE4LnRlc3SCCHQxOS50ZXN0ggh0MjAudGVzdIII\ndDIxLnRlc3SCCHQyMi50ZXN0ggh0MjMudGVzdIIIdDI0LnRlc3SCCHQyNS50ZXN0\nggh0MjYudGVzdIIIdDI3LnRlc3SCCHQyOC50ZXN0ggh0MjkudGVzdIIIdDMwLnRl\nc3SCCHQzMS50ZXN0ggh0MzIudGVzdIIIdDMzLnRlc3SCCHQzNC50ZXN0ggh0MzUu\ndGVzdIIIdDM2LnRlc3SCCHQzNy50ZXN0ggh0MzgudGVzdIIIdDM5LnRlc3SCCHQ0\nMC50ZXN0ggh0NDEudGVzdIIIdDQyLnRlc3SCCHQ0My50ZXN0ggh0NDQudGVzdIII\ndDQ1LnRlc3SCCHQ0Ni50ZXN0ggh0NDcudGVzdIIIdDQ4LnRlc3SCCHQ0OS50ZXN0\nggh0NTAudGVzdIIIdDUxLnRlc3SCCHQ1Mi50ZXN0ggh0NTMudGVzdIIIdDU0LnRl\nc3SCCHQ1NS50ZXN0ggh0NTYudGVzdIIIdDU3LnRlc3SCCHQ1OC50ZXN0ggh0NTku\ndGVzdIIIdDYwLnRlc3SCCHQ2MS50ZXN0ggh0NjIudGVzdIIIdDYzLnRlc3SCCHQ2\nNC50ZXN0ggh0NjUudGVzdIIIdDY2LnRlc3SCCHQ2Ny50ZXN0ggh0NjgudGVzdIII\ndDY5LnRlc3SCCHQ3MC50ZXN0ggh0NzEudGVzdIIIdDcyLnRlc3SCCHQ3My50ZXN0\nggh0NzQudGVzdIIIdDc1LnRlc3SCCHQ3Ni50ZXN0ggh0NzcudGVzdIIIdDc4LnRl\nc3SCCHQ3OS50ZXN0ggh0ODAudGVzdIIIdDgxLnRlc3SCCHQ4Mi50ZXN0ggh0ODMu\ndGVzdIIIdDg0LnRlc3SCCHQ4NS50ZXN0ggh0ODYudGVzdIIIdDg3LnRlc3SCCHQ4\nOC50ZXN0ggh0ODkudGVzdIIIdDkwLnRlc3SCCHQ5MS50ZXN0ggh0OTIudGVzdIII\ndDkzLnRlc3SCCHQ5NC50ZXN0ggh0OTUudGVzdIIIdDk2LnRlc3SCCHQ5Ny50ZXN0\nggh0OTgudGVzdIIIdDk5LnRlc3SCCXQxMDAudGVzdIIJdDEwMS50ZXN0ggl0MTAy\nLnRlc3SCCXQxMDMudGVzdIIJdDEwNC50ZXN0ggl0MTA1LnRlc3SCCXQxMDYudGVz\ndIIJdDEwNy50ZXN0ggl0MTA4LnRlc3SCCXQxMDkudGVzdIIJdDExMC50ZXN0ggl0\nMTExLnRlc3SCCXQxMTIudGVzdIIJdDExMy50ZXN0ggl0MTE0LnRlc3SCCXQxMTUu\ndGVzdIIJdDExNi50ZXN0ggl0MTE3LnRlc3SCCXQxMTgudGVzdIIJdDExOS50ZXN0\nggl0MTIwLnRlc3SCCXQxMjEudGVzdIIJdDEyMi50ZXN0ggl0MTIzLnRlc3SCCXQx\nMjQudGVzdIIJdDEyNS50ZXN0ggl0MTI2LnRlc3SCCXQxMjcudGVzdIIJdDEyOC50\nZXN0ggl0MTI5LnRlc3SCCXQxMzAudGVzdIIJdDEzMS50ZXN0ggl0MTMyLnRlc3SC\nCXQxMzMudGVzdIIJdDEzNC50ZXN0ggl0MTM1LnRlc3SCCXQxMzYudGVzdIIJdDEz\nNy50ZXN0ggl0MTM4LnRlc3SCCXQxMzkudGVzdIIJdDE0MC50ZXN0ggl0MTQxLnRl\nc3SCCXQxNDIudGVzdIIJdDE0My50ZXN0ggl0MTQ0LnRlc3SCCXQxNDUudGVzdIIJ\ndDE0Ni50ZXN0ggl0MTQ3LnRlc3SCCXQxNDgudGVzdIIJdDE0OS50ZXN0ggl0MTUw\nLnRlc3SCCXQxNTEudGVzdIIJdDE1Mi50ZXN0ggl0MTUzLnRlc3SCCXQxNTQudGVz\ndIIJdDE1NS50ZXN0ggl0MTU2LnRlc3SCCXQxNTcudGVzdIIJdDE1OC50ZXN0ggl0\nMTU5LnRlc3SCCXQxNjAudGVzdIIJdDE2MS50ZXN0ggl0MTYyLnRlc3SCCXQxNjMu\ndGVzdIIJdDE2NC50ZXN0ggl0MTY1LnRlc3SCCXQxNjYudGVzdIIJdDE2Ny50ZXN0\nggl0MTY4LnRlc3SCCXQxNjkudGVzdIIJdDE3MC50ZXN0ggl0MTcxLnRlc3SCCXQx\nNzIudGVzdIIJdDE3My50ZXN0ggl0MTc0LnRlc3SCCXQxNzUudGVzdIIJdDE3Ni50\nZXN0ggl0MTc3LnRlc3SCCXQxNzgudGVzdIIJdDE3OS50ZXN0ggl0MTgwLnRlc3SC\nCXQxODEudGVzdIIJdDE4Mi50ZXN0ggl0MTgzLnRlc3SCCXQxODQudGVzdIIJdDE4\nNS50ZXN0ggl0MTg2LnRlc3SCCXQxODcudGVzdIIJdDE4OC50ZXN0ggl0MTg5LnRl\nc3SCCXQxOTAudGVzdIIJdDE5MS50ZXN0ggl0MTkyLnRlc3SCCXQxOTMudGVzdIIJ\ndDE5NC50ZXN0ggl0MTk1LnRlc3SCCXQxOTYudGVzdIIJdDE5Ny50ZXN0ggl0MTk4\nLnRlc3SCCXQxOTkudGVzdIIJdDIwMC50ZXN0ggl0MjAxLnRlc3SCCXQyMDIudGVz\ndIIJdDIwMy50ZXN0ggl0MjA0LnRlc3SCCXQyMDUudGVzdIIJdDIwNi50ZXN0ggl0\nMjA3LnRlc3SCCXQyMDgudGVzdIIJdDIwOS50ZXN0ggl0MjEwLnRlc3SCCXQyMTEu\ndGVzdIIJdDIxMi50ZXN0ggl0MjEzLnRlc3SCCXQyMTQudGVzdIIJdDIxNS50ZXN0\nggl0MjE2LnRlc3SCCXQyMTcudGVzdIIJdDIxOC50ZXN0ggl0MjE5LnRlc3SCCXQy\nMjAudGVzdIIJdDIyMS50ZXN0ggl0MjIyLnRlc3SCCXQyMjMudGVzdIIJdDIyNC50\nZXN0ggl0MjI1LnRlc3SCCXQyMjYudGVzdIIJdDIyNy50ZXN0ggl0MjI4LnRlc3SC\nCXQyMjkudGVzdIIJdDIzMC50ZXN0ggl0MjMxLnRlc3SCCXQyMzIudGVzdIIJdDIz\nMy50ZXN0ggl0MjM0LnRlc3SCCXQyMzUudGVzdIIJdDIzNi50ZXN0ggl0MjM3LnRl\nc3SCCXQyMzgudGVzdIIJdDIzOS50ZXN0ggl0MjQwLnRlc3SCCXQyNDEudGVzdIIJ\ndDI0Mi50ZXN0ggl0MjQzLnRlc3SCCXQyNDQudGVzdIIJdDI0NS50ZXN0ggl0MjQ2\nLnRlc3SCCXQyNDcudGVzdIIJdDI0OC50ZXN0ggl0MjQ5LnRlc3SCCXQyNTAudGVz\ndIIJdDI1MS50ZXN0ggl0MjUyLnRlc3SCCXQyNTMudGVzdIIJdDI1NC50ZXN0ggl0\nMjU1LnRlc3SCCXQyNTYudGVzdIIJdDI1Ny50ZXN0ggl0MjU4LnRlc3SCCXQyNTku\ndGVzdIIJdDI2MC50ZXN0ggl0MjYxLnRlc3SCCXQyNjIudGVzdIIJdDI2My50ZXN0\nggl0MjY0LnRlc3SCCXQyNjUudGVzdIIJdDI2Ni50ZXN0ggl0MjY3LnRlc3SCCXQy\nNjgudGVzdIIJdDI2OS50ZXN0ggl0MjcwLnRlc3SCCXQyNzEudGVzdIIJdDI3Mi50\nZXN0ggl0MjczLnRlc3SCCXQyNzQudGVzdIIJdDI3NS50ZXN0ggl0Mjc2LnRlc3SC\nCXQyNzcudGVzdIIJdDI3OC50ZXN0ggl0Mjc5LnRlc3SCCXQyODAudGVzdIIJdDI4\nMS50ZXN0ggl0MjgyLnRlc3SCCXQyODMudGVzdIIJdDI4NC50ZXN0ggl0Mjg1LnRl\nc3SCCXQyODYudGVzdIIJdDI4Ny50ZXN0ggl0Mjg4LnRlc3SCCXQyODkudGVzdIIJ\ndDI5MC50ZXN0ggl0MjkxLnRlc3SCCXQyOTIudGVzdIIJdDI5My50ZXN0ggl0Mjk0\nLnRlc3SCCXQyOTUudGVzdIIJdDI5Ni50ZXN0ggl0Mjk3LnRlc3SCCXQyOTgudGVz\ndIIJdDI5OS50ZXN0ggl0MzAwLnRlc3SCCXQzMDEudGVzdIIJdDMwMi50ZXN0ggl0\nMzAzLnRlc3SCCXQzMDQudGVzdIIJdDMwNS50ZXN0ggl0MzA2LnRlc3SCCXQzMDcu\ndGVzdIIJdDMwOC50ZXN0ggl0MzA5LnRlc3SCCXQzMTAudGVzdIIJdDMxMS50ZXN0\nggl0MzEyLnRlc3SCCXQzMTMudGVzdIIJdDMxNC50ZXN0ggl0MzE1LnRlc3SCCXQz\nMTYudGVzdIIJdDMxNy50ZXN0ggl0MzE4LnRlc3SCCXQzMTkudGVzdIIJdDMyMC50\nZXN0ggl0MzIxLnRlc3SCCXQzMjIudGVzdIIJdDMyMy50ZXN0ggl0MzI0LnRlc3SC\nCXQzMjUudGVzdIIJdDMyNi50ZXN0ggl0MzI3LnRlc3SCCXQzMjgudGVzdIIJdDMy\nOS50ZXN0ggl0MzMwLnRlc3SCCXQzMzEudGVzdIIJdDMzMi50ZXN0ggl0MzMzLnRl\nc3SCCXQzMzQudGVzdIIJdDMzNS50ZXN0ggl0MzM2LnRlc3SCCXQzMzcudGVzdIIJ\ndDMzOC50ZXN0ggl0MzM5LnRlc3SCCXQzNDAudGVzdIIJdDM0MS50ZXN0ggl0MzQy\nLnRlc3SCCXQzNDMudGVzdIIJdDM0NC50ZXN0ggl0MzQ1LnRlc3SCCXQzNDYudGVz\ndIIJdDM0Ny50ZXN0ggl0MzQ4LnRlc3SCCXQzNDkudGVzdIIJdDM1MC50ZXN0ggl0\nMzUxLnRlc3SCCXQzNTIudGVzdIIJdDM1My50ZXN0ggl0MzU0LnRlc3SCCXQzNTUu\ndGVzdIIJdDM1Ni50ZXN0ggl0MzU3LnRlc3SCCXQzNTgudGVzdIIJdDM1OS50ZXN0\nggl0MzYwLnRlc3SCCXQzNjEudGVzdIIJdDM2Mi50ZXN0ggl0MzYzLnRlc3SCCXQz\nNjQudGVzdIIJdDM2NS50ZXN0ggl0MzY2LnRlc3SCCXQzNjcudGVzdIIJdDM2OC50\nZXN0ggl0MzY5LnRlc3SCCXQzNzAudGVzdIIJdDM3MS50ZXN0ggl0MzcyLnRlc3SC\nCXQzNzMudGVzdIIJdDM3NC50ZXN0ggl0Mzc1LnRlc3SCCXQzNzYudGVzdIIJdDM3\nNy50ZXN0ggl0Mzc4LnRlc3SCCXQzNzkudGVzdIIJdDM4MC50ZXN0ggl0MzgxLnRl\nc3SCCXQzODIudGVzdIIJdDM4My50ZXN0ggl0Mzg0LnRlc3SCCXQzODUudGVzdIIJ\ndDM4Ni50ZXN0ggl0Mzg3LnRlc3SCCXQzODgudGVzdIIJdDM4OS50ZXN0ggl0Mzkw\nLnRlc3SCCXQzOTEudGVzdIIJdDM5Mi50ZXN0ggl0MzkzLnRlc3SCCXQzOTQudGVz\ndIIJdDM5NS50ZXN0ggl0Mzk2LnRlc3SCCXQzOTcudGVzdIIJdDM5OC50ZXN0ggl0\nMzk5LnRlc3SCCXQ0MDAudGVzdIIJdDQwMS50ZXN0ggl0NDAyLnRlc3SCCXQ0MDMu\ndGVzdIIJdDQwNC50ZXN0ggl0NDA1LnRlc3SCCXQ0MDYudGVzdIIJdDQwNy50ZXN0\nggl0NDA4LnRlc3SCCXQ0MDkudGVzdIIJdDQxMC50ZXN0ggl0NDExLnRlc3SCCXQ0\nMTIudGVzdIIJdDQxMy50ZXN0ggl0NDE0LnRlc3SCCXQ0MTUudGVzdIIJdDQxNi50\nZXN0ggl0NDE3LnRlc3SCCXQ0MTgudGVzdIIJdDQxOS50ZXN0ggl0NDIwLnRlc3SC\nCXQ0MjEudGVzdIIJdDQyMi50ZXN0ggl0NDIzLnRlc3SCCXQ0MjQudGVzdIIJdDQy\nNS50ZXN0ggl0NDI2LnRlc3SCCXQ0MjcudGVzdIIJdDQyOC50ZXN0ggl0NDI5LnRl\nc3SCCXQ0MzAudGVzdIIJdDQzMS50ZXN0ggl0NDMyLnRlc3SCCXQ0MzMudGVzdIIJ\ndDQzNC50ZXN0ggl0NDM1LnRlc3SCCXQ0MzYudGVzdIIJdDQzNy50ZXN0ggl0NDM4\nLnRlc3SCCXQ0MzkudGVzdIIJdDQ0MC50ZXN0ggl0NDQxLnRlc3SCCXQ0NDIudGVz\ndIIJdDQ0My50ZXN0ggl0NDQ0LnRlc3SCCXQ0NDUudGVzdIIJdDQ0Ni50ZXN0ggl0\nNDQ3LnRlc3SCCXQ0NDgudGVzdIIJdDQ0OS50ZXN0ggl0NDUwLnRlc3SCCXQ0NTEu\ndGVzdIIJdDQ1Mi50ZXN0ggl0NDUzLnRlc3SCCXQ0NTQudGVzdIIJdDQ1NS50ZXN0\nggl0NDU2LnRlc3SCCXQ0NTcudGVzdIIJdDQ1OC50ZXN0ggl0NDU5LnRlc3SCCXQ0\nNjAudGVzdIIJdDQ2MS50ZXN0ggl0NDYyLnRlc3SCCXQ0NjMudGVzdIIJdDQ2NC50\nZXN0ggl0NDY1LnRlc3SCCXQ0NjYudGVzdIIJdDQ2Ny50ZXN0ggl0NDY4LnRlc3SC\nCXQ0NjkudGVzdIIJdDQ3MC50ZXN0ggl0NDcxLnRlc3SCCXQ0NzIudGVzdIIJdDQ3\nMy50ZXN0ggl0NDc0LnRlc3SCCXQ0NzUudGVzdIIJdDQ3Ni50ZXN0ggl0NDc3LnRl\nc3SCCXQ0NzgudGVzdIIJdDQ3OS50ZXN0ggl0NDgwLnRlc3SCCXQ0ODEudGVzdIIJ\ndDQ4Mi50ZXN0ggl0NDgzLnRlc3SCCXQ0ODQudGVzdIIJdDQ4NS50ZXN0ggl0NDg2\nLnRlc3SCCXQ0ODcudGVzdIIJdDQ4OC50ZXN0ggl0NDg5LnRlc3SCCXQ0OTAudGVz\ndIIJdDQ5MS50ZXN0ggl0NDkyLnRlc3SCCXQ0OTMudGVzdIIJdDQ5NC50ZXN0ggl0\nNDk1LnRlc3SCCXQ0OTYudGVzdIIJdDQ5Ny50ZXN0ggl0NDk4LnRlc3SCCXQ0OTku\ndGVzdIIJdDUwMC50ZXN0ggl0NTAxLnRlc3SCCXQ1MDIudGVzdIIJdDUwMy50ZXN0\nggl0NTA0LnRlc3SCCXQ1MDUudGVzdIIJdDUwNi50ZXN0ggl0NTA3LnRlc3SCCXQ1\nMDgudGVzdIIJdDUwOS50ZXN0ggl0NTEwLnRlc3SCCXQ1MTEudGVzdIIJdDUxMi50\nZXN0ggl0NTEzLnRlc3SCCXQ1MTQudGVzdIIJdDU", "xNS50ZXN0ggl0NTE2LnRlc3SC\nCXQ1MTcudGVzdIIJdDUxOC50ZXN0ggl0NTE5LnRlc3SCCXQ1MjAudGVzdIIJdDUy\nMS50ZXN0ggl0NTIyLnRlc3SCCXQ1MjMudGVzdIIJdDUyNC50ZXN0ggl0NTI1LnRl\nc3SCCXQ1MjYudGVzdIIJdDUyNy50ZXN0ggl0NTI4LnRlc3SCCXQ1MjkudGVzdIIJ\ndDUzMC50ZXN0ggl0NTMxLnRlc3SCCXQ1MzIudGVzdIIJdDUzMy50ZXN0ggl0NTM0\nLnRlc3SCCXQ1MzUudGVzdIIJdDUzNi50ZXN0ggl0NTM3LnRlc3SCCXQ1MzgudGVz\ndIIJdDUzOS50ZXN0ggl0NTQwLnRlc3SCCXQ1NDEudGVzdIIJdDU0Mi50ZXN0ggl0\nNTQzLnRlc3SCCXQ1NDQudGVzdIIJdDU0NS50ZXN0ggl0NTQ2LnRlc3SCCXQ1NDcu\ndGVzdIIJdDU0OC50ZXN0ggl0NTQ5LnRlc3SCCXQ1NTAudGVzdIIJdDU1MS50ZXN0\nggl0NTUyLnRlc3SCCXQ1NTMudGVzdIIJdDU1NC50ZXN0ggl0NTU1LnRlc3SCCXQ1\nNTYudGVzdIIJdDU1Ny50ZXN0ggl0NTU4LnRlc3SCCXQ1NTkudGVzdIIJdDU2MC50\nZXN0ggl0NTYxLnRlc3SCCXQ1NjIudGVzdIIJdDU2My50ZXN0ggl0NTY0LnRlc3SC\nCXQ1NjUudGVzdIIJdDU2Ni50ZXN0ggl0NTY3LnRlc3SCCXQ1NjgudGVzdIIJdDU2\nOS50ZXN0ggl0NTcwLnRlc3SCCXQ1NzEudGVzdIIJdDU3Mi50ZXN0ggl0NTczLnRl\nc3SCCXQ1NzQudGVzdIIJdDU3NS50ZXN0ggl0NTc2LnRlc3SCCXQ1NzcudGVzdIIJ\ndDU3OC50ZXN0ggl0NTc5LnRlc3SCCXQ1ODAudGVzdIIJdDU4MS50ZXN0ggl0NTgy\nLnRlc3SCCXQ1ODMudGVzdIIJdDU4NC50ZXN0ggl0NTg1LnRlc3SCCXQ1ODYudGVz\ndIIJdDU4Ny50ZXN0ggl0NTg4LnRlc3SCCXQ1ODkudGVzdIIJdDU5MC50ZXN0ggl0\nNTkxLnRlc3SCCXQ1OTIudGVzdIIJdDU5My50ZXN0ggl0NTk0LnRlc3SCCXQ1OTUu\ndGVzdIIJdDU5Ni50ZXN0ggl0NTk3LnRlc3SCCXQ1OTgudGVzdIIJdDU5OS50ZXN0\nggl0NjAwLnRlc3SCCXQ2MDEudGVzdIIJdDYwMi50ZXN0ggl0NjAzLnRlc3SCCXQ2\nMDQudGVzdIIJdDYwNS50ZXN0ggl0NjA2LnRlc3SCCXQ2MDcudGVzdIIJdDYwOC50\nZXN0ggl0NjA5LnRlc3SCCXQ2MTAudGVzdIIJdDYxMS50ZXN0ggl0NjEyLnRlc3SC\nCXQ2MTMudGVzdIIJdDYxNC50ZXN0ggl0NjE1LnRlc3SCCXQ2MTYudGVzdIIJdDYx\nNy50ZXN0ggl0NjE4LnRlc3SCCXQ2MTkudGVzdIIJdDYyMC50ZXN0ggl0NjIxLnRl\nc3SCCXQ2MjIudGVzdIIJdDYyMy50ZXN0ggl0NjI0LnRlc3SCCXQ2MjUudGVzdIIJ\ndDYyNi50ZXN0ggl0NjI3LnRlc3SCCXQ2MjgudGVzdIIJdDYyOS50ZXN0ggl0NjMw\nLnRlc3SCCXQ2MzEudGVzdIIJdDYzMi50ZXN0ggl0NjMzLnRlc3SCCXQ2MzQudGVz\ndIIJdDYzNS50ZXN0ggl0NjM2LnRlc3SCCXQ2MzcudGVzdIIJdDYzOC50ZXN0ggl0\nNjM5LnRlc3SCCXQ2NDAudGVzdIIJdDY0MS50ZXN0ggl0NjQyLnRlc3SCCXQ2NDMu\ndGVzdIIJdDY0NC50ZXN0ggl0NjQ1LnRlc3SCCXQ2NDYudGVzdIIJdDY0Ny50ZXN0\nggl0NjQ4LnRlc3SCCXQ2NDkudGVzdIIJdDY1MC50ZXN0ggl0NjUxLnRlc3SCCXQ2\nNTIudGVzdIIJdDY1My50ZXN0ggl0NjU0LnRlc3SCCXQ2NTUudGVzdIIJdDY1Ni50\nZXN0ggl0NjU3LnRlc3SCCXQ2NTgudGVzdIIJdDY1OS50ZXN0ggl0NjYwLnRlc3SC\nCXQ2NjEudGVzdIIJdDY2Mi50ZXN0ggl0NjYzLnRlc3SCCXQ2NjQudGVzdIIJdDY2\nNS50ZXN0ggl0NjY2LnRlc3SCCXQ2NjcudGVzdIIJdDY2OC50ZXN0ggl0NjY5LnRl\nc3SCCXQ2NzAudGVzdIIJdDY3MS50ZXN0ggl0NjcyLnRlc3SCCXQ2NzMudGVzdIIJ\ndDY3NC50ZXN0ggl0Njc1LnRlc3SCCXQ2NzYudGVzdIIJdDY3Ny50ZXN0ggl0Njc4\nLnRlc3SCCXQ2NzkudGVzdIIJdDY4MC50ZXN0ggl0NjgxLnRlc3SCCXQ2ODIudGVz\ndIIJdDY4My50ZXN0ggl0Njg0LnRlc3SCCXQ2ODUudGVzdIIJdDY4Ni50ZXN0ggl0\nNjg3LnRlc3SCCXQ2ODgudGVzdIIJdDY4OS50ZXN0ggl0NjkwLnRlc3SCCXQ2OTEu\ndGVzdIIJdDY5Mi50ZXN0ggl0NjkzLnRlc3SCCXQ2OTQudGVzdIIJdDY5NS50ZXN0\nggl0Njk2LnRlc3SCCXQ2OTcudGVzdIIJdDY5OC50ZXN0ggl0Njk5LnRlc3SCCXQ3\nMDAudGVzdIIJdDcwMS50ZXN0ggl0NzAyLnRlc3SCCXQ3MDMudGVzdIIJdDcwNC50\nZXN0ggl0NzA1LnRlc3SCCXQ3MDYudGVzdIIJdDcwNy50ZXN0ggl0NzA4LnRlc3SC\nCXQ3MDkudGVzdIIJdDcxMC50ZXN0ggl0NzExLnRlc3SCCXQ3MTIudGVzdIIJdDcx\nMy50ZXN0ggl0NzE0LnRlc3SCCXQ3MTUudGVzdIIJdDcxNi50ZXN0ggl0NzE3LnRl\nc3SCCXQ3MTgudGVzdIIJdDcxOS50ZXN0ggl0NzIwLnRlc3SCCXQ3MjEudGVzdIIJ\ndDcyMi50ZXN0ggl0NzIzLnRlc3SCCXQ3MjQudGVzdIIJdDcyNS50ZXN0ggl0NzI2\nLnRlc3SCCXQ3MjcudGVzdIIJdDcyOC50ZXN0ggl0NzI5LnRlc3SCCXQ3MzAudGVz\ndIIJdDczMS50ZXN0ggl0NzMyLnRlc3SCCXQ3MzMudGVzdIIJdDczNC50ZXN0ggl0\nNzM1LnRlc3SCCXQ3MzYudGVzdIIJdDczNy50ZXN0ggl0NzM4LnRlc3SCCXQ3Mzku\ndGVzdIIJdDc0MC50ZXN0ggl0NzQxLnRlc3SCCXQ3NDIudGVzdIIJdDc0My50ZXN0\nggl0NzQ0LnRlc3SCCXQ3NDUudGVzdIIJdDc0Ni50ZXN0ggl0NzQ3LnRlc3SCCXQ3\nNDgudGVzdIIJdDc0OS50ZXN0ggl0NzUwLnRlc3SCCXQ3NTEudGVzdIIJdDc1Mi50\nZXN0ggl0NzUzLnRlc3SCCXQ3NTQudGVzdIIJdDc1NS50ZXN0ggl0NzU2LnRlc3SC\nCXQ3NTcudGVzdIIJdDc1OC50ZXN0ggl0NzU5LnRlc3SCCXQ3NjAudGVzdIIJdDc2\nMS50ZXN0ggl0NzYyLnRlc3SCCXQ3NjMudGVzdIIJdDc2NC50ZXN0ggl0NzY1LnRl\nc3SCCXQ3NjYudGVzdIIJdDc2Ny50ZXN0ggl0NzY4LnRlc3SCCXQ3NjkudGVzdIIJ\ndDc3MC50ZXN0ggl0NzcxLnRlc3SCCXQ3NzIudGVzdIIJdDc3My50ZXN0ggl0Nzc0\nLnRlc3SCCXQ3NzUudGVzdIIJdDc3Ni50ZXN0ggl0Nzc3LnRlc3SCCXQ3NzgudGVz\ndIIJdDc3OS50ZXN0ggl0NzgwLnRlc3SCCXQ3ODEudGVzdIIJdDc4Mi50ZXN0ggl0\nNzgzLnRlc3SCCXQ3ODQudGVzdIIJdDc4NS50ZXN0ggl0Nzg2LnRlc3SCCXQ3ODcu\ndGVzdIIJdDc4OC50ZXN0ggl0Nzg5LnRlc3SCCXQ3OTAudGVzdIIJdDc5MS50ZXN0\nggl0NzkyLnRlc3SCCXQ3OTMudGVzdIIJdDc5NC50ZXN0ggl0Nzk1LnRlc3SCCXQ3\nOTYudGVzdIIJdDc5Ny50ZXN0ggl0Nzk4LnRlc3SCCXQ3OTkudGVzdIIJdDgwMC50\nZXN0ggl0ODAxLnRlc3SCCXQ4MDIudGVzdIIJdDgwMy50ZXN0ggl0ODA0LnRlc3SC\nCXQ4MDUudGVzdIIJdDgwNi50ZXN0ggl0ODA3LnRlc3SCCXQ4MDgudGVzdIIJdDgw\nOS50ZXN0ggl0ODEwLnRlc3SCCXQ4MTEudGVzdIIJdDgxMi50ZXN0ggl0ODEzLnRl\nc3SCCXQ4MTQudGVzdIIJdDgxNS50ZXN0ggl0ODE2LnRlc3SCCXQ4MTcudGVzdIIJ\ndDgxOC50ZXN0ggl0ODE5LnRlc3SCCXQ4MjAudGVzdIIJdDgyMS50ZXN0ggl0ODIy\nLnRlc3SCCXQ4MjMudGVzdIIJdDgyNC50ZXN0ggl0ODI1LnRlc3SCCXQ4MjYudGVz\ndIIJdDgyNy50ZXN0ggl0ODI4LnRlc3SCCXQ4MjkudGVzdIIJdDgzMC50ZXN0ggl0\nODMxLnRlc3SCCXQ4MzIudGVzdIIJdDgzMy50ZXN0ggl0ODM0LnRlc3SCCXQ4MzUu\ndGVzdIIJdDgzNi50ZXN0ggl0ODM3LnRlc3SCCXQ4MzgudGVzdIIJdDgzOS50ZXN0\nggl0ODQwLnRlc3SCCXQ4NDEudGVzdIIJdDg0Mi50ZXN0ggl0ODQzLnRlc3SCCXQ4\nNDQudGVzdIIJdDg0NS50ZXN0ggl0ODQ2LnRlc3SCCXQ4NDcudGVzdIIJdDg0OC50\nZXN0ggl0ODQ5LnRlc3SCCXQ4NTAudGVzdIIJdDg1MS50ZXN0ggl0ODUyLnRlc3SC\nCXQ4NTMudGVzdIIJdDg1NC50ZXN0ggl0ODU1LnRlc3SCCXQ4NTYudGVzdIIJdDg1\nNy50ZXN0ggl0ODU4LnRlc3SCCXQ4NTkudGVzdIIJdDg2MC50ZXN0ggl0ODYxLnRl\nc3SCCXQ4NjIudGVzdIIJdDg2My50ZXN0ggl0ODY0LnRlc3SCCXQ4NjUudGVzdIIJ\ndDg2Ni50ZXN0ggl0ODY3LnRlc3SCCXQ4NjgudGVzdIIJdDg2OS50ZXN0ggl0ODcw\nLnRlc3SCCXQ4NzEudGVzdIIJdDg3Mi50ZXN0ggl0ODczLnRlc3SCCXQ4NzQudGVz\ndIIJdDg3NS50ZXN0ggl0ODc2LnRlc3SCCXQ4NzcudGVzdIIJdDg3OC50ZXN0ggl0\nODc5LnRlc3SCCXQ4ODAudGVzdIIJdDg4MS50ZXN0ggl0ODgyLnRlc3SCCXQ4ODMu\ndGVzdIIJdDg4NC50ZXN0ggl0ODg1LnRlc3SCCXQ4ODYudGVzdIIJdDg4Ny50ZXN0\nggl0ODg4LnRlc3SCCXQ4ODkudGVzdIIJdDg5MC50ZXN0ggl0ODkxLnRlc3SCCXQ4\nOTIudGVzdIIJdDg5My50ZXN0ggl0ODk0LnRlc3SCCXQ4OTUudGVzdIIJdDg5Ni50\nZXN0ggl0ODk3LnRlc3SCCXQ4OTgudGVzdIIJdDg5OS50ZXN0ggl0OTAwLnRlc3SC\nCXQ5MDEudGVzdIIJdDkwMi50ZXN0ggl0OTAzLnRlc3SCCXQ5MDQudGVzdIIJdDkw\nNS50ZXN0ggl0OTA2LnRlc3SCCXQ5MDcudGVzdIIJdDkwOC50ZXN0ggl0OTA5LnRl\nc3SCCXQ5MTAudGVzdIIJdDkxMS50ZXN0ggl0OTEyLnRlc3SCCXQ5MTMudGVzdIIJ\ndDkxNC50ZXN0ggl0OTE1LnRlc3SCCXQ5MTYudGVzdIIJdDkxNy50ZXN0ggl0OTE4\nLnRlc3SCCXQ5MTkudGVzdIIJdDkyMC50ZXN0ggl0OTIxLnRlc3SCCXQ5MjIudGVz\ndIIJdDkyMy50ZXN0ggl0OTI0LnRlc3SCCXQ5MjUudGVzdIIJdDkyNi50ZXN0ggl0\nOTI3LnRlc3SCCXQ5MjgudGVzdIIJdDkyOS50ZXN0ggl0OTMwLnRlc3SCCXQ5MzEu\ndGVzdIIJdDkzMi50ZXN0ggl0OTMzLnRlc3SCCXQ5MzQudGVzdIIJdDkzNS50ZXN0\nggl0OTM2LnRlc3SCCXQ5MzcudGVzdIIJdDkzOC50ZXN0ggl0OTM5LnRlc3SCCXQ5\nNDAudGVzdIIJdDk0MS50ZXN0ggl0OTQyLnRlc3SCCXQ5NDMudGVzdIIJdDk0NC50\nZXN0ggl0OTQ1LnRlc3SCCXQ5NDYudGVzdIIJdDk0Ny50ZXN0ggl0OTQ4LnRlc3SC\nCXQ5NDkudGVzdIIJdDk1MC50ZXN0ggl0OTUxLnRlc3SCCXQ5NTIudGVzdIIJdDk1\nMy50ZXN0ggl0OTU0LnRlc3SCCXQ5NTUudGVzdIIJdDk1Ni50ZXN0ggl0OTU3LnRl\nc3SCCXQ5NTgudGVzdIIJdDk1OS50ZXN0ggl0OTYwLnRlc3SCCXQ5NjEudGVzdIIJ\ndDk2Mi50ZXN0ggl0OTYzLnRlc3SCCXQ5NjQudGVzdIIJdDk2NS50ZXN0ggl0OTY2\nLnRlc3SCCXQ5NjcudGVzdIIJdDk2OC50ZXN0ggl0OTY5LnRlc3SCCXQ5NzAudGVz\ndIIJdDk3MS50ZXN0ggl0OTcyLnRlc3SCCXQ5NzMudGVzdIIJdDk3NC50ZXN0ggl0\nOTc1LnRlc3SCCXQ5NzYudGVzdIIJdDk3Ny50ZXN0ggl0OTc4LnRlc3SCCXQ5Nzku\ndGVzdIIJdDk4MC50ZXN0ggl0OTgxLnRlc3SCCXQ5ODIudGVzdIIJdDk4My50ZXN0\nggl0OTg0LnRlc3SCCXQ5ODUudGVzdIIJdDk4Ni50ZXN0ggl0OTg3LnRlc3SCCXQ5\nODgudGVzdIIJdDk4OS50ZXN0ggl0OTkwLnRlc3SCCXQ5OTEudGVzdIIJdDk5Mi50\nZXN0ggl0OTkzLnRlc3SCCXQ5OTQudGVzdIIJdDk5NS50ZXN0ggl0OTk2LnRlc3SC\nCXQ5OTcudGVzdIIJdDk5OC50ZXN0ggl0OTk5LnRlc3SCCnQxMDAwLnRlc3SCCnQx\nMDAxLnRlc3SCCnQxMDAyLnRlc3SCCnQxMDAzLnRlc3SCCnQxMDA0LnRlc3SCCnQx\nMDA1LnRlc3SCCnQxMDA2LnRlc3SCCnQxMDA3LnRlc3SCCnQxMDA4LnRlc3SCCnQx\nMDA5LnRlc3SCCnQxMDEwLnRlc3SCCnQxMDExLnRlc3SCCnQxMDEyLnRlc3SCCnQx\nMDEzLnRlc3SCCnQxMDE0LnRlc3SCCnQxMDE1LnRlc3SCCnQxMDE2LnRlc3SCCnQx\nMDE3LnRlc3SCCnQxMDE4LnRlc3SCCnQxMDE5LnRlc3SCCnQxMDIwLnRlc3SCCnQx\nMDIxLnRlc3SCCnQxMDIyLnRlc3SCCnQxMDIzLnRlc3SCCnQxMDI0LnRlc3QwDQYJ\nKoZIhvcNAQELBQADggEBAGfZxjrjcjFw5FnJMzq7SIad+JpmvMar7VnzXj84hjoV\nFuUqiclqjg1KRD7aIh5M1VEQv+AAk8UP6jMrvLJpoi5OD8ljivNA8zycj1N/LhNq\n8MjZauCTS+tuXIoh5hOE/TQqY6cUxY4LRBLIFIcbH0FGF22amCtowMVbRoaUpPvr\nGR5OXPAS3yRiEWrp703c21o3hw9QckB82z7Lxnt3oOFPg62EFPXiqE07Wkw/1xH4\nJ9yy45XW5A77kfel22hVs873QVHI+GkKoTPe/q6eQVgesR2vpDRytKDP9K4tK4KS\n6hqVxj6a8Eqund0izSV+UXkskc9iN6EPXvVTELo3hD8=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen225 = 37039; +static const size_t kLen230 = 37039; -static const char *kData225[] = { +static const char *kData230[] = { "-----BEGIN CERTIFICATE-----\nMIJqrDCCaZSgAwIBAgIBBDANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJDQTAg\nFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowgmfXMRAwDgYDVQQDEwd0\nMC50ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nMUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nM0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nNUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nN0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0OEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nOUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTBAdGVzdDEXMBUGCSqGSIb3DQEJARYI\ndDExQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxMkB0ZXN0MRcwFQYJKoZIhvcNAQkB\nFgh0MTNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDE0QHRlc3QxFzAVBgkqhkiG9w0B\nCQEWCHQxNUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTZAdGVzdDEXMBUGCSqGSIb3\nDQEJARYIdDE3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxOEB0ZXN0MRcwFQYJKoZI\nhvcNAQkBFgh0MTlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDIwQHRlc3QxFzAVBgkq\nhkiG9w0BCQEWCHQyMUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjJAdGVzdDEXMBUG\nCSqGSIb3DQEJARYIdDIzQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQyNEB0ZXN0MRcw\nFQYJKoZIhvcNAQkBFgh0MjVAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDI2QHRlc3Qx\nFzAVBgkqhkiG9w0BCQEWCHQyN0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjhAdGVz\ndDEXMBUGCSqGSIb3DQEJARYIdDI5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzMEB0\nZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDMy\nQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzM0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0\nMzRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDM1QHRlc3QxFzAVBgkqhkiG9w0BCQEW\nCHQzNkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzdAdGVzdDEXMBUGCSqGSIb3DQEJ\nARYIdDM4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzOUB0ZXN0MRcwFQYJKoZIhvcN\nAQkBFgh0NDBAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQxQHRlc3QxFzAVBgkqhkiG\n9w0BCQEWCHQ0MkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDNAdGVzdDEXMBUGCSqG\nSIb3DQEJARYIdDQ0QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ0NUB0ZXN0MRcwFQYJ\nKoZIhvcNAQkBFgh0NDZAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQ3QHRlc3QxFzAV\nBgkqhkiG9w0BCQEWCHQ0OEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDlAdGVzdDEX\nMBUGCSqGSIb3DQEJARYIdDUwQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1MUB0ZXN0\nMRcwFQYJKoZIhvcNAQkBFgh0NTJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDUzQHRl\nc3QxFzAVBgkqhkiG9w0BCQEWCHQ1NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NTVA\ndGVzdDEXMBUGCSqGSIb3DQEJARYIdDU2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1\nN0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NThAdGVzdDEXMBUGCSqGSIb3DQEJARYI\ndDU5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2MEB0ZXN0MRcwFQYJKoZIhvcNAQkB\nFgh0NjFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDYyQHRlc3QxFzAVBgkqhkiG9w0B\nCQEWCHQ2M0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NjRAdGVzdDEXMBUGCSqGSIb3\nDQEJARYIdDY1QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2NkB0ZXN0MRcwFQYJKoZI\nhvcNAQkBFgh0NjdAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDY4QHRlc3QxFzAVBgkq\nhkiG9w0BCQEWCHQ2OUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzBAdGVzdDEXMBUG\nCSqGSIb3DQEJARYIdDcxQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3MkB0ZXN0MRcw\nFQYJKoZIhvcNAQkBFgh0NzNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDc0QHRlc3Qx\nFzAVBgkqhkiG9w0BCQEWCHQ3NUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzZAdGVz\ndDEXMBUGCSqGSIb3DQEJARYIdDc3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3OEB0\nZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgw\nQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4MUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0\nODJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgzQHRlc3QxFzAVBgkqhkiG9w0BCQEW\nCHQ4NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0ODVAdGVzdDEXMBUGCSqGSIb3DQEJ\nARYIdDg2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4N0B0ZXN0MRcwFQYJKoZIhvcN\nAQkBFgh0ODhAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDg5QHRlc3QxFzAVBgkqhkiG\n9w0BCQEWCHQ5MEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTFAdGVzdDEXMBUGCSqG\nSIb3DQEJARYIdDkyQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5M0B0ZXN0MRcwFQYJ\nKoZIhvcNAQkBFgh0OTRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDk1QHRlc3QxFzAV\nBgkqhkiG9w0BCQEWCHQ5NkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTdAdGVzdDEX\nMBUGCSqGSIb3DQEJARYIdDk4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5OUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTAwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTAzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDEwNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTA2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxMDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwOEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTA5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDExMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTEyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEx\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTE1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxMTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDExN0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTE4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDEyMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTIxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxMjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyM0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTI0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTI3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDEyOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTMwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxMzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEzMkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTMzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMzRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDEzNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxMzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEz\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxNDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0MUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTQyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDE0NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTQ1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxNDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0N0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTQ4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTUxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNTJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDE1M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTU0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxNTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1NkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTU3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNThAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDE1OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYwQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxNjFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2\nMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYzQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxNjRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2NUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTY2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNjdAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDE2OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTY5QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxNzBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3MUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTcyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzNA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTc1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzZAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDE3N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTc4QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxNzlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4MEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTgxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxODJAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDE4M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg0QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxODVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4\nNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg3QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxODhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4OUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTkwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTFAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDE5MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTkzQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxOTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5NUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTk2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTdA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTk5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDBAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDIwMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjAyQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyMDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIwNEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MjA1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDZAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDIwN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjA4QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIx\nMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjExQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQyMTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxM0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MjE0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMTVAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDIxNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjE3QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQyMThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxOUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MjIwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMjIzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDIyNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjI2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyMjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyOEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MjI5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDIzMUB0ZXN0MRgwFgY", "JKoZIhvcNAQkBFgl0MjMyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIz\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjM1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQyMzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIzN0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MjM4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDI0MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjQxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQyNDJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0M0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MjQ0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMjQ3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDI0OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjUwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyNTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI1MkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MjUzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNTRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDI1NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjU2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQyNTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI1\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjU5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQyNjBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI2MUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MjYyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNjNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDI2NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjY1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQyNjZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI2N0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MjY4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNjlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDI3MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMjcxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNzJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDI3M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjc0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyNzVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI3NkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0Mjc3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNzhAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDI3OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjgwQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQyODFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI4\nMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjgzQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQyODRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI4NUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0Mjg2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyODdAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDI4OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjg5QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQyOTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI5MUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MjkyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyOTNA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDI5NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMjk1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyOTZAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDI5N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjk4QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyOTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMwMEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MzAxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMDJAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDMwM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzA0QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQzMDVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMw\nNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzA3QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQzMDhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMwOUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MzEwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMTFAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDMxMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzEzQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQzMTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMxNUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MzE2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMTdA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDMxOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMzE5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjBAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDMyMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzIyQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQzMjNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMyNEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MzI1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjZAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDMyN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzI4QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMz\nMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzMxQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQzMzJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMzM0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MzM0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMzVAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDMzNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzM3QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQzMzhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMzOUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MzQwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNDFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDM0MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMzQzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNDRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDM0NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzQ2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQzNDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM0OEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MzQ5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDM1MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzUyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM1\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzU1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQzNTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM1N0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MzU4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDM2MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzYxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQzNjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM2M0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MzY0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNjVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDM2NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMzY3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNjhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDM2OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzcwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQzNzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM3MkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MzczQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNzRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDM3NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzc2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQzNzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM3\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzc5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQzODBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM4MUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MzgyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzODNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDM4NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzg1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQzODZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM4N0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0Mzg4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzODlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDM5MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMzkxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzOTJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDM5M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzk0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQzOTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM5NkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0Mzk3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzOThAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDM5OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDAwQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MDFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQw\nMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDAzQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ0MDRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQwNUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NDA2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MDdAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDQwOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDA5QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ0MTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQxMUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NDEyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MTNA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDQxNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNDE1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MTZAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDQxN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDE4QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ0MTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQyMEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NDIxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MjJAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDQyM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDI0QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MjVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQy\nNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDI3QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ0MjhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQyOUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NDMwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MzFAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDQzMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDMzQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ0MzRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQzNUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NDM2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MzdA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDQzOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNDM5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDBAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDQ0MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDQyQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ0NDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ0NEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NDQ1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDZAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDQ0N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDQ4QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1\nMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDUxQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ0NTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1M0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NDU0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NTVAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDQ1NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDU3QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ0NThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1OUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NDYwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NjFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ2MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNDYzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NjRAd", "GVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDQ2NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDY2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ0NjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ2OEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NDY5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDQ3MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDcyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ3\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDc1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ0NzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ3N0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NDc4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDQ4MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDgxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ0ODJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ4M0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NDg0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0ODVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ4NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNDg3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0ODhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDQ4OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDkwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ0OTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ5MkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NDkzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0OTRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDQ5NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDk2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0OTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ5\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDk5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ1MDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUwMUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NTAyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MDNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDUwNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTA1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ1MDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUwN0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NTA4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MDlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDUxMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNTExQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MTJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDUxM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTE0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ1MTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUxNkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NTE3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MThAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDUxOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTIwQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MjFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUy\nMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTIzQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ1MjRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUyNUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NTI2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MjdAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDUyOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTI5QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ1MzBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUzMUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NTMyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MzNA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDUzNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNTM1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MzZAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDUzN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTM4QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ1MzlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU0MEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NTQxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1NDJAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDU0M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTQ0QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ1NDVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU0\nNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTQ3QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ1NDhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU0OUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NTUwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1NTFAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDU1MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTUzQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ1NTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU1NUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NTU2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1NTdA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDU1OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNTU5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1NjBAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDU2MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTYyQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ1NjNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU2NEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NTY1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1NjZAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDU2N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTY4QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ1NjlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU3\nMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTcxQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ1NzJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU3M0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NTc0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1NzVAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDU3NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTc3QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ1NzhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU3OUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NTgwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1ODFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDU4MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNTgzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1ODRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDU4NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTg2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ1ODdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU4OEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NTg5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1OTBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDU5MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTkyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ1OTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU5\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTk1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ1OTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDU5N0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NTk4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1OTlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDYwMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjAxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ2MDJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDYwM0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NjA0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MDVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDYwNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNjA3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MDhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDYwOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjEwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ2MTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDYxMkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NjEzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MTRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDYxNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjE2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDYx\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjE5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ2MjBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDYyMUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NjIyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MjNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDYyNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjI1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ2MjZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDYyN0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NjI4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MjlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDYzMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNjMxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MzJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDYzM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjM0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ2MzVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDYzNkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NjM3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2MzhAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDYzOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjQwQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ2NDFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY0\nMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjQzQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ2NDRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY0NUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NjQ2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2NDdAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDY0OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjQ5QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ2NTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY1MUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NjUyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2NTNA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDY1NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNjU1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2NTZAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDY1N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjU4QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ2NTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY2MEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NjYxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2NjJAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDY2M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjY0QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ2NjVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY2\nNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjY3QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ2NjhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY2OUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NjcwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2NzFAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDY3MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjczQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ2NzRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY3NUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0Njc2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2NzdA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDY3OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNjc5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2ODBAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDY4MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjgyQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ2ODNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY4NEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0Njg1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2ODZAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDY4N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Njg4QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ2ODlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY5\nMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NjkxQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ2OTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY5M0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0Njk0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ2OTVAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDY5NkB0ZXN0MRgwFgYJKoZIhvcNAQk", "BFgl0Njk3QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ2OThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDY5OUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NzAwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MDFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDcwMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNzAzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MDRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDcwNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzA2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ3MDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDcwOEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NzA5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MTBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDcxMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzEyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDcx\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzE1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ3MTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDcxN0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NzE4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MTlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDcyMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzIxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ3MjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDcyM0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NzI0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MjVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDcyNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNzI3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MjhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDcyOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzMwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ3MzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDczMkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NzMzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MzRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDczNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzM2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ3MzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDcz\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzM5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ3NDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc0MUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NzQyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NDNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDc0NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzQ1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ3NDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc0N0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NzQ4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NDlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDc1MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNzUxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NTJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDc1M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzU0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ3NTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc1NkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NzU3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NThAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDc1OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzYwQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NjFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc2\nMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzYzQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ3NjRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc2NUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NzY2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NjdAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDc2OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzY5QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ3NzBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc3MUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NzcyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NzNA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDc3NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNzc1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3NzZAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDc3N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Nzc4QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ3NzlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc4MEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NzgxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3ODJAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDc4M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Nzg0QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ3ODVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc4\nNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Nzg3QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ3ODhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc4OUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NzkwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3OTFAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDc5MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NzkzQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ3OTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDc5NUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0Nzk2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ3OTdA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDc5OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNzk5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MDBAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDgwMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODAyQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ4MDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDgwNEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0ODA1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MDZAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDgwN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODA4QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDgx\nMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODExQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ4MTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDgxM0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0ODE0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MTVAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDgxNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODE3QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ4MThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDgxOUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0ODIwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MjFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDgyMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nODIzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MjRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDgyNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODI2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ4MjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDgyOEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0ODI5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MzBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDgzMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODMyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDgz\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODM1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ4MzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDgzN0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0ODM4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4MzlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDg0MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODQxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ4NDJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg0M0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0ODQ0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NDVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDg0NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nODQ3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NDhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDg0OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODUwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ4NTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg1MkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0ODUzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NTRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDg1NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODU2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg1\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODU5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ4NjBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg2MUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0ODYyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NjNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDg2NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODY1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ4NjZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg2N0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0ODY4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NjlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDg3MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nODcxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NzJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDg3M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODc0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ4NzVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg3NkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0ODc3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4NzhAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDg3OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODgwQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ4ODFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg4\nMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODgzQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ4ODRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg4NUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0ODg2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4ODdAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDg4OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODg5QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ4OTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDg5MUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0ODkyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4OTNA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDg5NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nODk1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ4OTZAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDg5N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0ODk4QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ4OTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkwMEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0OTAxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5MDJAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDkwM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTA0QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ5MDVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkw\nNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTA3QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ5MDhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkwOUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0OTEwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5MTFAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDkxMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTEzQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ5MTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkxNUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0OTE2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5MTdA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDkxOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nOTE5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5MjBAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDkyMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTIyQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ5MjNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkyNEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0OTI1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5MjZAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDkyN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTI4QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ5MjlAdGVzdDEYMBYGC", "SqGSIb3DQEJARYJdDkz\nMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTMxQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ5MzJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkzM0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0OTM0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5MzVAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDkzNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTM3QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ5MzhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDkzOUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0OTQwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NDFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDk0MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nOTQzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NDRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDk0NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTQ2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ5NDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk0OEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0OTQ5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NTBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDk1MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTUyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk1\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTU1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ5NTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk1N0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0OTU4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NTlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDk2MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTYxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ5NjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk2M0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0OTY0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NjVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDk2NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nOTY3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NjhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDk2OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTcwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ5NzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk3MkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0OTczQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NzRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDk3NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTc2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ5NzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk3\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTc5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ5ODBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk4MUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0OTgyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5ODNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDk4NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTg1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ5ODZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk4N0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0OTg4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5ODlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDk5MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nOTkxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5OTJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDk5M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0OTk0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ5OTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDk5NkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0OTk3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ5OThAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDk5OUB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAwMEB0\nZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAwMUB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0\nMTAwMkB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAwM0B0ZXN0MRkwFwYJKoZIhvcN\nAQkBFgp0MTAwNEB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAwNUB0ZXN0MRkwFwYJ\nKoZIhvcNAQkBFgp0MTAwNkB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAwN0B0ZXN0\nMRkwFwYJKoZIhvcNAQkBFgp0MTAwOEB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAw\nOUB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAxMEB0ZXN0MRkwFwYJKoZIhvcNAQkB\nFgp0MTAxMUB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAxMkB0ZXN0MRkwFwYJKoZI\nhvcNAQkBFgp0MTAxM0B0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAxNEB0ZXN0MRkw\nFwYJKoZIhvcNAQkBFgp0MTAxNUB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAxNkB0\nZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAxN0B0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0\nMTAxOEB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAxOUB0ZXN0MRkwFwYJKoZIhvcN\nAQkBFgp0MTAyMEB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAyMUB0ZXN0MRkwFwYJ\nKoZIhvcNAQkBFgp0MTAyMkB0ZXN0MRkwFwYJKoZIhvcNAQkBFgp0MTAyM0B0ZXN0\nMRkwFwYJKoZIhvcNAQkBFgp0MTAyNEB0ZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOC\nAQ8AMIIBCgKCAQEAugvahBkSAUF1fC49vb1bvlPrcl80kop1iLpiuYoz4Qptwy57\n+EWssZBcHprZ5BkWf6PeGZ7F5AX1PyJbGHZLqvMCvViP6pd4MFox/igESISEHEix\noiXCzepBrhtp5UQSjHD4D4hKtgdMgVxX+LRtwgW3mnu/vBu7rzpr/DS8io99p3lq\nZ1Aky+aNlcMj6MYy8U+YFEevb/V0lRY9oqwmW7BHnXikm/vi6sjIS350U8zb/mRz\nYeIs2R65LUduTL50+UMgat9ocewI2dv8aO9Dph+8NdGtg8LFYyTTHcUxJoMr1PTO\ngnmET19WJH4PrFwk7ZE1QJQQ1L4iKmPeQistuQIDAQABo0kwRzAOBgNVHQ8BAf8E\nBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADASBgNVHREE\nCzAJggd0MC50ZXN0MA0GCSqGSIb3DQEBCwUAA4IBAQAi7LIMyX5Ec514hvjROZ8b\n7i4UR3xd5IbniVSej+PKZhG2inN6aX9bksdda0ddYZeRSHAkNJuoabeankQJ/x5x\nsxBntWSVLCxz6S8NRrLAPKKPBvFb/W5ns57LP9SrLIij9l/NSd+K/CQNTlfcdorg\n4ltPVNwSMp/XXjH6rQYJSbo9MhDoxeqPpv73e4jY0DfGn1a8uwyCXalLjh4EkUyS\nYe0N7MoUKV0IucrXKdgj2sHgBFqNKJ/GVQ422xZRbYqsyIJ0bPD6Fc8VcqfVrvYg\nlCYJfu7Xij5n3mjQaSYcbVxH71X8fYhhNq1tk+WtQOXirz2EkSuh1rNGU/LT8Q6r\n-----END CERTIFICATE-----\n", }; -static const size_t kLen226 = 566; +static const size_t kLen231 = 566; -static const char *kData226[] = { +static const char *kData231[] = { "-----BEGIN CERTIFICATE-----\nMIIBdDCCARqgAwIBAgIBATAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg\nUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE\nAxMLUG9saWN5IFJvb3QwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmdqXYl1Gv\nY7y3jcTTK6MVXIQr44TqChRYI6IeV9tIB6jIsOY+Qol1bk8x/7A5FGOnUWFVLEAP\nEPSJwPndjolto1cwVTAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0lBAwwCgYIKwYBBQUH\nAwEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU0GnnoB+yeN63WMthnh6Uh1HH\ndRIwCgYIKoZIzj0EAwIDSAAwRQIgctaVgroxlAkLhPEaTXvsE3ePYM2X+KGOJZXc\nusyO3YkCIQDN1RLJq9vHGjZzDCEehKjxHsV+XSAkdfU7nB7KjVHTKA==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen227 = 660; +static const size_t kLen232 = 660; -static const char *kData227[] = { +static const char *kData232[] = { "-----BEGIN CERTIFICATE-----\nMIIBuzCCAWKgAwIBAgIBAjAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg\nUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowHjEcMBoGA1UE\nAxMTUG9saWN5IEludGVybWVkaWF0ZTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA\nBOI6fKiM3jFLkLyAn88cvlw4SwxuygRjopP3FFBKHyUQvh3VVvfqSpSCSmp50Qia\njQ6Dg7CTpVZVVH+bguT7JTCjgZYwgZMwDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQM\nMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJDS9/4O7qhr\nCIRhwsXrPVBagG2uMDwGA1UdIAQ1MDMwDwYNKoZIhvcSBAGEtwkCATAPBg0qhkiG\n9xIEAYS3CQICMA8GDSqGSIb3EgQBhLcJAgIwCgYIKoZIzj0EAwIDRwAwRAIgCnvy\nK47AK/Ve/rzcFSm1fcjFg9UwZoTvOAhZU/xpfLgCIFV4vHl6jsGq9rPs4KblSsIY\nVBjAjG2AYkH0Lq+O4LjO\n-----END CERTIFICATE-----\n", }; -static const size_t kLen228 = 599; +static const size_t kLen233 = 599; -static const char *kData228[] = { +static const char *kData233[] = { "-----BEGIN CERTIFICATE-----\nMIIBjDCCATKgAwIBAgIBAjAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg\nUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowHjEcMBoGA1UE\nAxMTUG9saWN5IEludGVybWVkaWF0ZTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA\nBOI6fKiM3jFLkLyAn88cvlw4SwxuygRjopP3FFBKHyUQvh3VVvfqSpSCSmp50Qia\njQ6Dg7CTpVZVVH+bguT7JTCjZzBlMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAK\nBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSQ0vf+Du6oawiE\nYcLF6z1QWoBtrjAOBgNVHSAEB0lOVkFMSUQwCgYIKoZIzj0EAwIDSAAwRQIgf9Jt\nwpHxfA3j6Z8+h88MSh2MHkDGhWcnRY9VboMR/RoCIQDiSiaPGISK/31JBhNVvNnK\nIBo822QHPPMWDR/K/nyWiA==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen229 = 639; +static const size_t kLen234 = 639; -static const char *kData229[] = { +static const char *kData234[] = { "-----BEGIN CERTIFICATE-----\nMIIBrDCCAVGgAwIBAgIBAjAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg\nUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowHjEcMBoGA1UE\nAxMTUG9saWN5IEludGVybWVkaWF0ZTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA\nBOI6fKiM3jFLkLyAn88cvlw4SwxuygRjopP3FFBKHyUQvh3VVvfqSpSCSmp50Qia\njQ6Dg7CTpVZVVH+bguT7JTCjgYUwgYIwDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQM\nMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJDS9/4O7qhr\nCIRhwsXrPVBagG2uMCsGA1UdIAQkMCIwDwYNKoZIhvcSBAGEtwkCATAPBg0qhkiG\n9xIEAYS3CQICMAoGCCqGSM49BAMCA0kAMEYCIQCcgAbQr/HNdHwPEcWotOqtXXGH\ndi6cAJtWaSynP8+UoQIhAPEMK79OO+tJHzmD0N01OdZefAwKlYZvDCQvAfAQVf7j\n-----END CERTIFICATE-----\n", }; -static const size_t kLen230 = 648; +static const size_t kLen235 = 648; -static const char *kData230[] = { +static const char *kData235[] = { "-----BEGIN CERTIFICATE-----\nMIIBsjCCAVigAwIBAgIBAzAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg\nUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowGjEYMBYGA1UE\nAxMPd3d3LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEkSrY\nvFVtkZJmvirfY0JDDYrZQrNJecPLt0ksJux2URL5nAQiQY1SERGnEaiNLpoc0dle\nTS8wQT/cjw/wPgoeV6OBkDCBjTAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0lBAwwCgYI\nKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAaBgNVHREEEzARgg93d3cuZXhhbXBsZS5j\nb20wPAYDVR0gBDUwMzAPBg0qhkiG9xIEAYS3CQIBMA8GDSqGSIb3EgQBhLcJAgIw\nDwYNKoZIhvcSBAGEtwkCAjAKBggqhkjOPQQDAgNIADBFAiEA3MEtsp3pypprhmPB\nUbMC7FwvK+YZI5qo5dDRGUu0H6QCIEbUDagJc0qNdvZ4H//E/cvqb8dH6UmmIXVX\n/WMkIJt2\n-----END CERTIFICATE-----\n", }; -static const size_t kLen231 = 583; +static const size_t kLen236 = 583; -static const char *kData231[] = { +static const char *kData236[] = { "-----BEGIN CERTIFICATE-----\nMIIBgjCCASigAwIBAgIBAzAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg\nUm9vdDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowGjEYMBYGA1UE\nAxMPd3d3LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEkSrY\nvFVtkZJmvirfY0JDDYrZQrNJecPLt0ksJux2URL5nAQiQY1SERGnEaiNLpoc0dle\nTS8wQT/cjw/wPgoeV6NhMF8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG\nAQUFBwMBMAwGA1UdEwEB/wQCMAAwGgYDVR0RBBMwEYIPd3d3LmV4YW1wbGUuY29t\nMA4GA1UdIAQHSU5WQUxJRDAKBggqhkjOPQQDAgNIADBFAiBhnGGMJBM2gTBo9r4C\nNDR89ECTU7dwdvFyOGOIOOZEFgIhAIRIhGdQ9eRRi2qMhN1F19P5VsIUuc4VL1bW\nsXO8fwZM\n-----END CERTIFICATE-----\n", }; -static const size_t kLen232 = 631; +static const size_t kLen237 = 631; -static const char *kData232[] = { +static const char *kData237[] = { "-----BEGIN CERTIFICATE-----\nMIIBpjCCAU2gAwIBAgIBAzAKBggqhkjOPQQDAjAeMRwwGgYDVQQDExNQb2xpY3kg\nSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAwMTAxMDAwMDAwWjAa\nMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMB\nBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZREvmcBCJBjVIREacR\nqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo34wfDAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0l\nBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAaBgNVHREEEzARgg93d3cuZXhh\nbXBsZS5jb20wKwYDVR0gBCQwIjAPBg0qhkiG9xIEAYS3CQIBMA8GDSqGSIb3EgQB\nhLcJAgIwCgYIKoZIzj0EAwIDRwAwRAIgPTm7NO8gR+z8BqA6gV9FVwrSmOAJVzyu\n5loq9ZTtIS0CIEjBbvBcY4+Y3xWL4SUFQKQk3pNZ37xJoz2v+/yvEE5/\n-----END CERTIFICATE-----\n", }; -static const size_t kLen233 = 13599; +static const size_t kLen238 = 13599; -static const char *kData233[] = { +static const char *kData238[] = { "-----BEGIN CERTIFICATE-----\nMIInDDCCJfSgAwIBAgIBBTANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJDQTAg\nFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowghmkMRAwDgYDVQQDEwd0\nMC50ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nMUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nM0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nNUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nN0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0OEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nOUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTBAdGVzdDEXMBUGCSqGSIb3DQEJARYI\ndDExQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxMkB0ZXN0MRcwFQYJKoZIhvcNAQkB\nFgh0MTNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDE0QHRlc3QxFzAVBgkqhkiG9w0B\nCQEWCHQxNUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTZAdGVzdDEXMBUGCSqGSIb3\nDQEJARYIdDE3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxOEB0ZXN0MRcwFQYJKoZI\nhvcNAQkBFgh0MTlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDIwQHRlc3QxFzAVBgkq\nhkiG9w0BCQEWCHQyMUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjJAdGVzdDEXMBUG\nCSqGSIb3DQEJARYIdDIzQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQyNEB0ZXN0MRcw\nFQYJKoZIhvcNAQkBFgh0MjVAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDI2QHRlc3Qx\nFzAVBgkqhkiG9w0BCQEWCHQyN0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjhAdGVz\ndDEXMBUGCSqGSIb3DQEJARYIdDI5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzMEB0\nZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDMy\nQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzM0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0\nMzRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDM1QHRlc3QxFzAVBgkqhkiG9w0BCQEW\nCHQzNkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzdAdGVzdDEXMBUGCSqGSIb3DQEJ\nARYIdDM4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzOUB0ZXN0MRcwFQYJKoZIhvcN\nAQkBFgh0NDBAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQxQHRlc3QxFzAVBgkqhkiG\n9w0BCQEWCHQ0MkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDNAdGVzdDEXMBUGCSqG\nSIb3DQEJARYIdDQ0QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ0NUB0ZXN0MRcwFQYJ\nKoZIhvcNAQkBFgh0NDZAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQ3QHRlc3QxFzAV\nBgkqhkiG9w0BCQEWCHQ0OEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDlAdGVzdDEX\nMBUGCSqGSIb3DQEJARYIdDUwQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1MUB0ZXN0\nMRcwFQYJKoZIhvcNAQkBFgh0NTJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDUzQHRl\nc3QxFzAVBgkqhkiG9w0BCQEWCHQ1NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NTVA\ndGVzdDEXMBUGCSqGSIb3DQEJARYIdDU2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1\nN0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NThAdGVzdDEXMBUGCSqGSIb3DQEJARYI\ndDU5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2MEB0ZXN0MRcwFQYJKoZIhvcNAQkB\nFgh0NjFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDYyQHRlc3QxFzAVBgkqhkiG9w0B\nCQEWCHQ2M0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NjRAdGVzdDEXMBUGCSqGSIb3\nDQEJARYIdDY1QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2NkB0ZXN0MRcwFQYJKoZI\nhvcNAQkBFgh0NjdAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDY4QHRlc3QxFzAVBgkq\nhkiG9w0BCQEWCHQ2OUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzBAdGVzdDEXMBUG\nCSqGSIb3DQEJARYIdDcxQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3MkB0ZXN0MRcw\nFQYJKoZIhvcNAQkBFgh0NzNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDc0QHRlc3Qx\nFzAVBgkqhkiG9w0BCQEWCHQ3NUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzZAdGVz\ndDEXMBUGCSqGSIb3DQEJARYIdDc3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3OEB0\nZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgw\nQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4MUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0\nODJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgzQHRlc3QxFzAVBgkqhkiG9w0BCQEW\nCHQ4NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0ODVAdGVzdDEXMBUGCSqGSIb3DQEJ\nARYIdDg2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4N0B0ZXN0MRcwFQYJKoZIhvcN\nAQkBFgh0ODhAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDg5QHRlc3QxFzAVBgkqhkiG\n9w0BCQEWCHQ5MEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTFAdGVzdDEXMBUGCSqG\nSIb3DQEJARYIdDkyQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5M0B0ZXN0MRcwFQYJ\nKoZIhvcNAQkBFgh0OTRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDk1QHRlc3QxFzAV\nBgkqhkiG9w0BCQEWCHQ5NkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTdAdGVzdDEX\nMBUGCSqGSIb3DQEJARYIdDk4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5OUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTAwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTAzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDEwNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTA2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxMDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwOEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTA5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDExMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTEyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEx\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTE1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxMTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDExN0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTE4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDEyMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTIxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxMjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyM0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTI0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTI3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDEyOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTMwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxMzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEzMkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTMzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMzRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDEzNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxMzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEz\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxNDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0MUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTQyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDE0NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTQ1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxNDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0N0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTQ4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTUxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNTJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDE1M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTU0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxNTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1NkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTU3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNThAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDE1OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYwQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxNjFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2\nMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYzQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxNjRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2NUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTY2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNjdAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDE2OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTY5QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxNzBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3MUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTcyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzNA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTc1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzZAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDE3N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTc4QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxNzlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4MEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTgxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxODJAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDE4M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg0QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxODVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4\nNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg3QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxODhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4OUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTkwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTFAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDE5MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTkzQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxOTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5NUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTk2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTdA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTk5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDBAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDIwMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjAyQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyMDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIwNEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MjA1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDZAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDIwN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjA4QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIx\nMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjExQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQyMTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxM0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MjE0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMTVAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDIxNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjE3QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQyMThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxOUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MjIwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMjIzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDIyNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjI2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyMjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyOEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MjI5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDIzMUB0ZXN0MRgwFgY", "JKoZIhvcNAQkBFgl0MjMyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIz\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjM1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQyMzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIzN0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MjM4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDI0MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjQxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQyNDJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0M0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MjQ0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMjQ3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDI0OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjUwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyNTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI1MkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MjUzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNTRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDI1NUB0ZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A\nMIIBCgKCAQEAugvahBkSAUF1fC49vb1bvlPrcl80kop1iLpiuYoz4Qptwy57+EWs\nsZBcHprZ5BkWf6PeGZ7F5AX1PyJbGHZLqvMCvViP6pd4MFox/igESISEHEixoiXC\nzepBrhtp5UQSjHD4D4hKtgdMgVxX+LRtwgW3mnu/vBu7rzpr/DS8io99p3lqZ1Ak\ny+aNlcMj6MYy8U+YFEevb/V0lRY9oqwmW7BHnXikm/vi6sjIS350U8zb/mRzYeIs\n2R65LUduTL50+UMgat9ocewI2dv8aO9Dph+8NdGtg8LFYyTTHcUxJoMr1PTOgnmE\nT19WJH4PrFwk7ZE1QJQQ1L4iKmPeQistuQIDAQABo4IK2jCCCtYwDgYDVR0PAQH/\nBAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwggqfBgNV\nHREEggqWMIIKkoIHdDAudGVzdIIHdDEudGVzdIIHdDIudGVzdIIHdDMudGVzdIIH\ndDQudGVzdIIHdDUudGVzdIIHdDYudGVzdIIHdDcudGVzdIIHdDgudGVzdIIHdDku\ndGVzdIIIdDEwLnRlc3SCCHQxMS50ZXN0ggh0MTIudGVzdIIIdDEzLnRlc3SCCHQx\nNC50ZXN0ggh0MTUudGVzdIIIdDE2LnRlc3SCCHQxNy50ZXN0ggh0MTgudGVzdIII\ndDE5LnRlc3SCCHQyMC50ZXN0ggh0MjEudGVzdIIIdDIyLnRlc3SCCHQyMy50ZXN0\nggh0MjQudGVzdIIIdDI1LnRlc3SCCHQyNi50ZXN0ggh0MjcudGVzdIIIdDI4LnRl\nc3SCCHQyOS50ZXN0ggh0MzAudGVzdIIIdDMxLnRlc3SCCHQzMi50ZXN0ggh0MzMu\ndGVzdIIIdDM0LnRlc3SCCHQzNS50ZXN0ggh0MzYudGVzdIIIdDM3LnRlc3SCCHQz\nOC50ZXN0ggh0MzkudGVzdIIIdDQwLnRlc3SCCHQ0MS50ZXN0ggh0NDIudGVzdIII\ndDQzLnRlc3SCCHQ0NC50ZXN0ggh0NDUudGVzdIIIdDQ2LnRlc3SCCHQ0Ny50ZXN0\nggh0NDgudGVzdIIIdDQ5LnRlc3SCCHQ1MC50ZXN0ggh0NTEudGVzdIIIdDUyLnRl\nc3SCCHQ1My50ZXN0ggh0NTQudGVzdIIIdDU1LnRlc3SCCHQ1Ni50ZXN0ggh0NTcu\ndGVzdIIIdDU4LnRlc3SCCHQ1OS50ZXN0ggh0NjAudGVzdIIIdDYxLnRlc3SCCHQ2\nMi50ZXN0ggh0NjMudGVzdIIIdDY0LnRlc3SCCHQ2NS50ZXN0ggh0NjYudGVzdIII\ndDY3LnRlc3SCCHQ2OC50ZXN0ggh0NjkudGVzdIIIdDcwLnRlc3SCCHQ3MS50ZXN0\nggh0NzIudGVzdIIIdDczLnRlc3SCCHQ3NC50ZXN0ggh0NzUudGVzdIIIdDc2LnRl\nc3SCCHQ3Ny50ZXN0ggh0NzgudGVzdIIIdDc5LnRlc3SCCHQ4MC50ZXN0ggh0ODEu\ndGVzdIIIdDgyLnRlc3SCCHQ4My50ZXN0ggh0ODQudGVzdIIIdDg1LnRlc3SCCHQ4\nNi50ZXN0ggh0ODcudGVzdIIIdDg4LnRlc3SCCHQ4OS50ZXN0ggh0OTAudGVzdIII\ndDkxLnRlc3SCCHQ5Mi50ZXN0ggh0OTMudGVzdIIIdDk0LnRlc3SCCHQ5NS50ZXN0\nggh0OTYudGVzdIIIdDk3LnRlc3SCCHQ5OC50ZXN0ggh0OTkudGVzdIIJdDEwMC50\nZXN0ggl0MTAxLnRlc3SCCXQxMDIudGVzdIIJdDEwMy50ZXN0ggl0MTA0LnRlc3SC\nCXQxMDUudGVzdIIJdDEwNi50ZXN0ggl0MTA3LnRlc3SCCXQxMDgudGVzdIIJdDEw\nOS50ZXN0ggl0MTEwLnRlc3SCCXQxMTEudGVzdIIJdDExMi50ZXN0ggl0MTEzLnRl\nc3SCCXQxMTQudGVzdIIJdDExNS50ZXN0ggl0MTE2LnRlc3SCCXQxMTcudGVzdIIJ\ndDExOC50ZXN0ggl0MTE5LnRlc3SCCXQxMjAudGVzdIIJdDEyMS50ZXN0ggl0MTIy\nLnRlc3SCCXQxMjMudGVzdIIJdDEyNC50ZXN0ggl0MTI1LnRlc3SCCXQxMjYudGVz\ndIIJdDEyNy50ZXN0ggl0MTI4LnRlc3SCCXQxMjkudGVzdIIJdDEzMC50ZXN0ggl0\nMTMxLnRlc3SCCXQxMzIudGVzdIIJdDEzMy50ZXN0ggl0MTM0LnRlc3SCCXQxMzUu\ndGVzdIIJdDEzNi50ZXN0ggl0MTM3LnRlc3SCCXQxMzgudGVzdIIJdDEzOS50ZXN0\nggl0MTQwLnRlc3SCCXQxNDEudGVzdIIJdDE0Mi50ZXN0ggl0MTQzLnRlc3SCCXQx\nNDQudGVzdIIJdDE0NS50ZXN0ggl0MTQ2LnRlc3SCCXQxNDcudGVzdIIJdDE0OC50\nZXN0ggl0MTQ5LnRlc3SCCXQxNTAudGVzdIIJdDE1MS50ZXN0ggl0MTUyLnRlc3SC\nCXQxNTMudGVzdIIJdDE1NC50ZXN0ggl0MTU1LnRlc3SCCXQxNTYudGVzdIIJdDE1\nNy50ZXN0ggl0MTU4LnRlc3SCCXQxNTkudGVzdIIJdDE2MC50ZXN0ggl0MTYxLnRl\nc3SCCXQxNjIudGVzdIIJdDE2My50ZXN0ggl0MTY0LnRlc3SCCXQxNjUudGVzdIIJ\ndDE2Ni50ZXN0ggl0MTY3LnRlc3SCCXQxNjgudGVzdIIJdDE2OS50ZXN0ggl0MTcw\nLnRlc3SCCXQxNzEudGVzdIIJdDE3Mi50ZXN0ggl0MTczLnRlc3SCCXQxNzQudGVz\ndIIJdDE3NS50ZXN0ggl0MTc2LnRlc3SCCXQxNzcudGVzdIIJdDE3OC50ZXN0ggl0\nMTc5LnRlc3SCCXQxODAudGVzdIIJdDE4MS50ZXN0ggl0MTgyLnRlc3SCCXQxODMu\ndGVzdIIJdDE4NC50ZXN0ggl0MTg1LnRlc3SCCXQxODYudGVzdIIJdDE4Ny50ZXN0\nggl0MTg4LnRlc3SCCXQxODkudGVzdIIJdDE5MC50ZXN0ggl0MTkxLnRlc3SCCXQx\nOTIudGVzdIIJdDE5My50ZXN0ggl0MTk0LnRlc3SCCXQxOTUudGVzdIIJdDE5Ni50\nZXN0ggl0MTk3LnRlc3SCCXQxOTgudGVzdIIJdDE5OS50ZXN0ggl0MjAwLnRlc3SC\nCXQyMDEudGVzdIIJdDIwMi50ZXN0ggl0MjAzLnRlc3SCCXQyMDQudGVzdIIJdDIw\nNS50ZXN0ggl0MjA2LnRlc3SCCXQyMDcudGVzdIIJdDIwOC50ZXN0ggl0MjA5LnRl\nc3SCCXQyMTAudGVzdIIJdDIxMS50ZXN0ggl0MjEyLnRlc3SCCXQyMTMudGVzdIIJ\ndDIxNC50ZXN0ggl0MjE1LnRlc3SCCXQyMTYudGVzdIIJdDIxNy50ZXN0ggl0MjE4\nLnRlc3SCCXQyMTkudGVzdIIJdDIyMC50ZXN0ggl0MjIxLnRlc3SCCXQyMjIudGVz\ndIIJdDIyMy50ZXN0ggl0MjI0LnRlc3SCCXQyMjUudGVzdIIJdDIyNi50ZXN0ggl0\nMjI3LnRlc3SCCXQyMjgudGVzdIIJdDIyOS50ZXN0ggl0MjMwLnRlc3SCCXQyMzEu\ndGVzdIIJdDIzMi50ZXN0ggl0MjMzLnRlc3SCCXQyMzQudGVzdIIJdDIzNS50ZXN0\nggl0MjM2LnRlc3SCCXQyMzcudGVzdIIJdDIzOC50ZXN0ggl0MjM5LnRlc3SCCXQy\nNDAudGVzdIIJdDI0MS50ZXN0ggl0MjQyLnRlc3SCCXQyNDMudGVzdIIJdDI0NC50\nZXN0ggl0MjQ1LnRlc3SCCXQyNDYudGVzdIIJdDI0Ny50ZXN0ggl0MjQ4LnRlc3SC\nCXQyNDkudGVzdIIJdDI1MC50ZXN0ggl0MjUxLnRlc3SCCXQyNTIudGVzdIIJdDI1\nMy50ZXN0ggl0MjU0LnRlc3SCCXQyNTUudGVzdDANBgkqhkiG9w0BAQsFAAOCAQEA\nJIFn5ymMVnj0DOFldXQzAjaosat0Z1dAca0BFO/4bf+IfvpaLvZCiSucInV0ejgR\ndP3UsoiXV8qXBax1nr5t4k+yOGYbhgj3imHFtKhFaqJ45AqEJOmzCHWIN0LkN+YL\nME6JBJr86EB+diLPBS7iljmtvN7avvmJ8AbGFI6eB5BwSjewavWpv55u52zMWti7\nCa2WpKffH74zhnGqkbMzEiiRa1L1+H/uQBJ0BEeAZbr+pSkJZJvzY/eH8a7fLHra\nLfBqD4epDm6RI6gSNeJ+G7qSfpVSk7l9bsVh7rUTSSCKBxhcImudqBuLfswoa0Ub\nZoA33vstMRAur0m/blHQHA==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen234 = 8557; +static const size_t kLen239 = 8557; -static const char *kData234[] = { +static const char *kData239[] = { "-----BEGIN CERTIFICATE-----\nMIIYgzCCF2ugAwIBAgIBBjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJDQTAg\nFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowEjEQMA4GA1UEAxMHdDAu\ndGVzdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoL2oQZEgFBdXwu\nPb29W75T63JfNJKKdYi6YrmKM+EKbcMue/hFrLGQXB6a2eQZFn+j3hmexeQF9T8i\nWxh2S6rzAr1Yj+qXeDBaMf4oBEiEhBxIsaIlws3qQa4baeVEEoxw+A+ISrYHTIFc\nV/i0bcIFt5p7v7wbu686a/w0vIqPfad5amdQJMvmjZXDI+jGMvFPmBRHr2/1dJUW\nPaKsJluwR514pJv74urIyEt+dFPM2/5kc2HiLNkeuS1Hbky+dPlDIGrfaHHsCNnb\n/GjvQ6YfvDXRrYPCxWMk0x3FMSaDK9T0zoJ5hE9fViR+D6xcJO2RNUCUENS+Iipj\n3kIrLbkCAwEAAaOCFeUwghXhMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggr\nBgEFBQcDATAMBgNVHRMBAf8EAjAAMIIVqgYDVR0RBIIVoTCCFZ2CB3QwLnRlc3SC\nB3QxLnRlc3SCB3QyLnRlc3SCB3QzLnRlc3SCB3Q0LnRlc3SCB3Q1LnRlc3SCB3Q2\nLnRlc3SCB3Q3LnRlc3SCB3Q4LnRlc3SCB3Q5LnRlc3SCCHQxMC50ZXN0ggh0MTEu\ndGVzdIIIdDEyLnRlc3SCCHQxMy50ZXN0ggh0MTQudGVzdIIIdDE1LnRlc3SCCHQx\nNi50ZXN0ggh0MTcudGVzdIIIdDE4LnRlc3SCCHQxOS50ZXN0ggh0MjAudGVzdIII\ndDIxLnRlc3SCCHQyMi50ZXN0ggh0MjMudGVzdIIIdDI0LnRlc3SCCHQyNS50ZXN0\nggh0MjYudGVzdIIIdDI3LnRlc3SCCHQyOC50ZXN0ggh0MjkudGVzdIIIdDMwLnRl\nc3SCCHQzMS50ZXN0ggh0MzIudGVzdIIIdDMzLnRlc3SCCHQzNC50ZXN0ggh0MzUu\ndGVzdIIIdDM2LnRlc3SCCHQzNy50ZXN0ggh0MzgudGVzdIIIdDM5LnRlc3SCCHQ0\nMC50ZXN0ggh0NDEudGVzdIIIdDQyLnRlc3SCCHQ0My50ZXN0ggh0NDQudGVzdIII\ndDQ1LnRlc3SCCHQ0Ni50ZXN0ggh0NDcudGVzdIIIdDQ4LnRlc3SCCHQ0OS50ZXN0\nggh0NTAudGVzdIIIdDUxLnRlc3SCCHQ1Mi50ZXN0ggh0NTMudGVzdIIIdDU0LnRl\nc3SCCHQ1NS50ZXN0ggh0NTYudGVzdIIIdDU3LnRlc3SCCHQ1OC50ZXN0ggh0NTku\ndGVzdIIIdDYwLnRlc3SCCHQ2MS50ZXN0ggh0NjIudGVzdIIIdDYzLnRlc3SCCHQ2\nNC50ZXN0ggh0NjUudGVzdIIIdDY2LnRlc3SCCHQ2Ny50ZXN0ggh0NjgudGVzdIII\ndDY5LnRlc3SCCHQ3MC50ZXN0ggh0NzEudGVzdIIIdDcyLnRlc3SCCHQ3My50ZXN0\nggh0NzQudGVzdIIIdDc1LnRlc3SCCHQ3Ni50ZXN0ggh0NzcudGVzdIIIdDc4LnRl\nc3SCCHQ3OS50ZXN0ggh0ODAudGVzdIIIdDgxLnRlc3SCCHQ4Mi50ZXN0ggh0ODMu\ndGVzdIIIdDg0LnRlc3SCCHQ4NS50ZXN0ggh0ODYudGVzdIIIdDg3LnRlc3SCCHQ4\nOC50ZXN0ggh0ODkudGVzdIIIdDkwLnRlc3SCCHQ5MS50ZXN0ggh0OTIudGVzdIII\ndDkzLnRlc3SCCHQ5NC50ZXN0ggh0OTUudGVzdIIIdDk2LnRlc3SCCHQ5Ny50ZXN0\nggh0OTgudGVzdIIIdDk5LnRlc3SCCXQxMDAudGVzdIIJdDEwMS50ZXN0ggl0MTAy\nLnRlc3SCCXQxMDMudGVzdIIJdDEwNC50ZXN0ggl0MTA1LnRlc3SCCXQxMDYudGVz\ndIIJdDEwNy50ZXN0ggl0MTA4LnRlc3SCCXQxMDkudGVzdIIJdDExMC50ZXN0ggl0\nMTExLnRlc3SCCXQxMTIudGVzdIIJdDExMy50ZXN0ggl0MTE0LnRlc3SCCXQxMTUu\ndGVzdIIJdDExNi50ZXN0ggl0MTE3LnRlc3SCCXQxMTgudGVzdIIJdDExOS50ZXN0\nggl0MTIwLnRlc3SCCXQxMjEudGVzdIIJdDEyMi50ZXN0ggl0MTIzLnRlc3SCCXQx\nMjQudGVzdIIJdDEyNS50ZXN0ggl0MTI2LnRlc3SCCXQxMjcudGVzdIIJdDEyOC50\nZXN0ggl0MTI5LnRlc3SCCXQxMzAudGVzdIIJdDEzMS50ZXN0ggl0MTMyLnRlc3SC\nCXQxMzMudGVzdIIJdDEzNC50ZXN0ggl0MTM1LnRlc3SCCXQxMzYudGVzdIIJdDEz\nNy50ZXN0ggl0MTM4LnRlc3SCCXQxMzkudGVzdIIJdDE0MC50ZXN0ggl0MTQxLnRl\nc3SCCXQxNDIudGVzdIIJdDE0My50ZXN0ggl0MTQ0LnRlc3SCCXQxNDUudGVzdIIJ\ndDE0Ni50ZXN0ggl0MTQ3LnRlc3SCCXQxNDgudGVzdIIJdDE0OS50ZXN0ggl0MTUw\nLnRlc3SCCXQxNTEudGVzdIIJdDE1Mi50ZXN0ggl0MTUzLnRlc3SCCXQxNTQudGVz\ndIIJdDE1NS50ZXN0ggl0MTU2LnRlc3SCCXQxNTcudGVzdIIJdDE1OC50ZXN0ggl0\nMTU5LnRlc3SCCXQxNjAudGVzdIIJdDE2MS50ZXN0ggl0MTYyLnRlc3SCCXQxNjMu\ndGVzdIIJdDE2NC50ZXN0ggl0MTY1LnRlc3SCCXQxNjYudGVzdIIJdDE2Ny50ZXN0\nggl0MTY4LnRlc3SCCXQxNjkudGVzdIIJdDE3MC50ZXN0ggl0MTcxLnRlc3SCCXQx\nNzIudGVzdIIJdDE3My50ZXN0ggl0MTc0LnRlc3SCCXQxNzUudGVzdIIJdDE3Ni50\nZXN0ggl0MTc3LnRlc3SCCXQxNzgudGVzdIIJdDE3OS50ZXN0ggl0MTgwLnRlc3SC\nCXQxODEudGVzdIIJdDE4Mi50ZXN0ggl0MTgzLnRlc3SCCXQxODQudGVzdIIJdDE4\nNS50ZXN0ggl0MTg2LnRlc3SCCXQxODcudGVzdIIJdDE4OC50ZXN0ggl0MTg5LnRl\nc3SCCXQxOTAudGVzdIIJdDE5MS50ZXN0ggl0MTkyLnRlc3SCCXQxOTMudGVzdIIJ\ndDE5NC50ZXN0ggl0MTk1LnRlc3SCCXQxOTYudGVzdIIJdDE5Ny50ZXN0ggl0MTk4\nLnRlc3SCCXQxOTkudGVzdIIJdDIwMC50ZXN0ggl0MjAxLnRlc3SCCXQyMDIudGVz\ndIIJdDIwMy50ZXN0ggl0MjA0LnRlc3SCCXQyMDUudGVzdIIJdDIwNi50ZXN0ggl0\nMjA3LnRlc3SCCXQyMDgudGVzdIIJdDIwOS50ZXN0ggl0MjEwLnRlc3SCCXQyMTEu\ndGVzdIIJdDIxMi50ZXN0ggl0MjEzLnRlc3SCCXQyMTQudGVzdIIJdDIxNS50ZXN0\nggl0MjE2LnRlc3SCCXQyMTcudGVzdIIJdDIxOC50ZXN0ggl0MjE5LnRlc3SCCXQy\nMjAudGVzdIIJdDIyMS50ZXN0ggl0MjIyLnRlc3SCCXQyMjMudGVzdIIJdDIyNC50\nZXN0ggl0MjI1LnRlc3SCCXQyMjYudGVzdIIJdDIyNy50ZXN0ggl0MjI4LnRlc3SC\nCXQyMjkudGVzdIIJdDIzMC50ZXN0ggl0MjMxLnRlc3SCCXQyMzIudGVzdIIJdDIz\nMy50ZXN0ggl0MjM0LnRlc3SCCXQyMzUudGVzdIIJdDIzNi50ZXN0ggl0MjM3LnRl\nc3SCCXQyMzgudGVzdIIJdDIzOS50ZXN0ggl0MjQwLnRlc3SCCXQyNDEudGVzdIIJ\ndDI0Mi50ZXN0ggl0MjQzLnRlc3SCCXQyNDQudGVzdIIJdDI0NS50ZXN0ggl0MjQ2\nLnRlc3SCCXQyNDcudGVzdIIJdDI0OC50ZXN0ggl0MjQ5LnRlc3SCCXQyNTAudGVz\ndIIJdDI1MS50ZXN0ggl0MjUyLnRlc3SCCXQyNTMudGVzdIIJdDI1NC50ZXN0ggl0\nMjU1LnRlc3SCCXQyNTYudGVzdIIJdDI1Ny50ZXN0ggl0MjU4LnRlc3SCCXQyNTku\ndGVzdIIJdDI2MC50ZXN0ggl0MjYxLnRlc3SCCXQyNjIudGVzdIIJdDI2My50ZXN0\nggl0MjY0LnRlc3SCCXQyNjUudGVzdIIJdDI2Ni50ZXN0ggl0MjY3LnRlc3SCCXQy\nNjgudGVzdIIJdDI2OS50ZXN0ggl0MjcwLnRlc3SCCXQyNzEudGVzdIIJdDI3Mi50\nZXN0ggl0MjczLnRlc3SCCXQyNzQudGVzdIIJdDI3NS50ZXN0ggl0Mjc2LnRlc3SC\nCXQyNzcudGVzdIIJdDI3OC50ZXN0ggl0Mjc5LnRlc3SCCXQyODAudGVzdIIJdDI4\nMS50ZXN0ggl0MjgyLnRlc3SCCXQyODMudGVzdIIJdDI4NC50ZXN0ggl0Mjg1LnRl\nc3SCCXQyODYudGVzdIIJdDI4Ny50ZXN0ggl0Mjg4LnRlc3SCCXQyODkudGVzdIIJ\ndDI5MC50ZXN0ggl0MjkxLnRlc3SCCXQyOTIudGVzdIIJdDI5My50ZXN0ggl0Mjk0\nLnRlc3SCCXQyOTUudGVzdIIJdDI5Ni50ZXN0ggl0Mjk3LnRlc3SCCXQyOTgudGVz\ndIIJdDI5OS50ZXN0ggl0MzAwLnRlc3SCCXQzMDEudGVzdIIJdDMwMi50ZXN0ggl0\nMzAzLnRlc3SCCXQzMDQudGVzdIIJdDMwNS50ZXN0ggl0MzA2LnRlc3SCCXQzMDcu\ndGVzdIIJdDMwOC50ZXN0ggl0MzA5LnRlc3SCCXQzMTAudGVzdIIJdDMxMS50ZXN0\nggl0MzEyLnRlc3SCCXQzMTMudGVzdIIJdDMxNC50ZXN0ggl0MzE1LnRlc3SCCXQz\nMTYudGVzdIIJdDMxNy50ZXN0ggl0MzE4LnRlc3SCCXQzMTkudGVzdIIJdDMyMC50\nZXN0ggl0MzIxLnRlc3SCCXQzMjIudGVzdIIJdDMyMy50ZXN0ggl0MzI0LnRlc3SC\nCXQzMjUudGVzdIIJdDMyNi50ZXN0ggl0MzI3LnRlc3SCCXQzMjgudGVzdIIJdDMy\nOS50ZXN0ggl0MzMwLnRlc3SCCXQzMzEudGVzdIIJdDMzMi50ZXN0ggl0MzMzLnRl\nc3SCCXQzMzQudGVzdIIJdDMzNS50ZXN0ggl0MzM2LnRlc3SCCXQzMzcudGVzdIIJ\ndDMzOC50ZXN0ggl0MzM5LnRlc3SCCXQzNDAudGVzdIIJdDM0MS50ZXN0ggl0MzQy\nLnRlc3SCCXQzNDMudGVzdIIJdDM0NC50ZXN0ggl0MzQ1LnRlc3SCCXQzNDYudGVz\ndIIJdDM0Ny50ZXN0ggl0MzQ4LnRlc3SCCXQzNDkudGVzdIIJdDM1MC50ZXN0ggl0\nMzUxLnRlc3SCCXQzNTIudGVzdIIJdDM1My50ZXN0ggl0MzU0LnRlc3SCCXQzNTUu\ndGVzdIIJdDM1Ni50ZXN0ggl0MzU3LnRlc3SCCXQzNTgudGVzdIIJdDM1OS50ZXN0\nggl0MzYwLnRlc3SCCXQzNjEudGVzdIIJdDM2Mi50ZXN0ggl0MzYzLnRlc3SCCXQz\nNjQudGVzdIIJdDM2NS50ZXN0ggl0MzY2LnRlc3SCCXQzNjcudGVzdIIJdDM2OC50\nZXN0ggl0MzY5LnRlc3SCCXQzNzAudGVzdIIJdDM3MS50ZXN0ggl0MzcyLnRlc3SC\nCXQzNzMudGVzdIIJdDM3NC50ZXN0ggl0Mzc1LnRlc3SCCXQzNzYudGVzdIIJdDM3\nNy50ZXN0ggl0Mzc4LnRlc3SCCXQzNzkudGVzdIIJdDM4MC50ZXN0ggl0MzgxLnRl\nc3SCCXQzODIudGVzdIIJdDM4My50ZXN0ggl0Mzg0LnRlc3SCCXQzODUudGVzdIIJ\ndDM4Ni50ZXN0ggl0Mzg3LnRlc3SCCXQzODgudGVzdIIJdDM4OS50ZXN0ggl0Mzkw\nLnRlc3SCCXQzOTEudGVzdIIJdDM5Mi50ZXN0ggl0MzkzLnRlc3SCCXQzOTQudGVz\ndIIJdDM5NS50ZXN0ggl0Mzk2LnRlc3SCCXQzOTcudGVzdIIJdDM5OC50ZXN0ggl0\nMzk5LnRlc3SCCXQ0MDAudGVzdIIJdDQwMS50ZXN0ggl0NDAyLnRlc3SCCXQ0MDMu\ndGVzdIIJdDQwNC50ZXN0ggl0NDA1LnRlc3SCCXQ0MDYudGVzdIIJdDQwNy50ZXN0\nggl0NDA4LnRlc3SCCXQ0MDkudGVzdIIJdDQxMC50ZXN0ggl0NDExLnRlc3SCCXQ0\nMTIudGVzdIIJdDQxMy50ZXN0ggl0NDE0LnRlc3SCCXQ0MTUudGVzdIIJdDQxNi50\nZXN0ggl0NDE3LnRlc3SCCXQ0MTgudGVzdIIJdDQxOS50ZXN0ggl0NDIwLnRlc3SC\nCXQ0MjEudGVzdIIJdDQyMi50ZXN0ggl0NDIzLnRlc3SCCXQ0MjQudGVzdIIJdDQy\nNS50ZXN0ggl0NDI2LnRlc3SCCXQ0MjcudGVzdIIJdDQyOC50ZXN0ggl0NDI5LnRl\nc3SCCXQ0MzAudGVzdIIJdDQzMS50ZXN0ggl0NDMyLnRlc3SCCXQ0MzMudGVzdIIJ\ndDQzNC50ZXN0ggl0NDM1LnRlc3SCCXQ0MzYudGVzdIIJdDQzNy50ZXN0ggl0NDM4\nLnRlc3SCCXQ0MzkudGVzdIIJdDQ0MC50ZXN0ggl0NDQxLnRlc3SCCXQ0NDIudGVz\ndIIJdDQ0My50ZXN0ggl0NDQ0LnRlc3SCCXQ0NDUudGVzdIIJdDQ0Ni50ZXN0ggl0\nNDQ3LnRlc3SCCXQ0NDgudGVzdIIJdDQ0OS50ZXN0ggl0NDUwLnRlc3SCCXQ0NTEu\ndGVzdIIJdDQ1Mi50ZXN0ggl0NDUzLnRlc3SCCXQ0NTQudGVzdIIJdDQ1NS50ZXN0\nggl0NDU2LnRlc3SCCXQ0NTcudGVzdIIJdDQ1OC50ZXN0ggl0NDU5LnRlc3SCCXQ0\nNjAudGVzdIIJdDQ2MS50ZXN0ggl0NDYyLnRlc3SCCXQ0NjMudGVzdIIJdDQ2NC50\nZXN0ggl0NDY1LnRlc3SCCXQ0NjYudGVzdIIJdDQ2Ny50ZXN0ggl0NDY4LnRlc3SC\nCXQ0NjkudGVzdIIJdDQ3MC50ZXN0ggl0NDcxLnRlc3SCCXQ0NzIudGVzdIIJdDQ3\nMy50ZXN0ggl0NDc0LnRlc3SCCXQ0NzUudGVzdIIJdDQ3Ni50ZXN0ggl0NDc3LnRl\nc3SCCXQ0NzgudGVzdIIJdDQ3OS50ZXN0ggl0NDgwLnRlc3SCCXQ0ODEudGVzdIIJ\ndDQ4Mi50ZXN0ggl0NDgzLnRlc3SCCXQ0ODQudGVzdIIJdDQ4NS50ZXN0ggl0NDg2\nLnRlc3SCCXQ0ODcudGVzdIIJdDQ4OC50ZXN0ggl0NDg5LnRlc3SCCXQ0OTAudGVz\ndIIJdDQ5MS50ZXN0ggl0NDkyLnRlc3SCCXQ0OTMudGVzdIIJdDQ5NC50ZXN0ggl0\nNDk1LnRlc3SCCXQ0OTYudGVzdIIJdDQ5Ny50ZXN0ggl0NDk4LnRlc3SCCXQ0OTku\ndGVzdIIJdDUwMC50ZXN0ggl0NTAxLnRlc3SCCXQ1MDIudGVzdIIJdDUwMy50ZXN0\nggl0NTA0LnRlc3SCCXQ1MDUudGVzdIIJdDUwNi50ZXN0ggl0NTA3LnRlc3SCCXQ1\nMDgudGVzdIIJdDUwOS50ZXN0ggl0NTEwLnRlc3SCCXQ1MTEudGVzdIIJdDUxMi50\nZXN0MA0GCSqGSIb3DQEBCwUAA4IBAQBjxDfYTob", "CREWVHPrt1T9iT2t0gieS7hVw\nlQaezO1n+m0MerQ92DHhMXBROBiMXIWyvTa341xClpYAwPqqAIUEdS0L5r4Jq/Ep\n4uglb+eZXMvTAm89KH3L8xTugc8UtHMqbfyo92v96wgFXBrcDDXIkGdPkLyz2s2J\nQjpNVG/La/EYTQdHPgv6Rg0g+t6RNN1JJ0p1wQ5ItDc8d/bfWdlG/EViWVRsiSBh\n7YRbkGWdnHnorCe0yIg0jKCk3UhgXaYY66/alpmE/QVXSaLgNvdmJ5m9mixY0ZaB\n0niy+KzIgBczvDcxVdL5/fsxGvA4nI8Gi7Z+EJDKXeED+FwcTDJD\n-----END CERTIFICATE-----\n", }; -static const size_t kLen235 = 18982; +static const size_t kLen240 = 18982; -static const char *kData235[] = { +static const char *kData240[] = { "-----BEGIN CERTIFICATE-----\nMII2kzCCNXugAwIBAgIBBzANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJDQTAg\nFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowgjO+MRAwDgYDVQQDEwd0\nMC50ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nMUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0MkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nM0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nNUB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0NkB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nN0B0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0OEB0ZXN0MRYwFAYJKoZIhvcNAQkBFgd0\nOUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTBAdGVzdDEXMBUGCSqGSIb3DQEJARYI\ndDExQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxMkB0ZXN0MRcwFQYJKoZIhvcNAQkB\nFgh0MTNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDE0QHRlc3QxFzAVBgkqhkiG9w0B\nCQEWCHQxNUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MTZAdGVzdDEXMBUGCSqGSIb3\nDQEJARYIdDE3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQxOEB0ZXN0MRcwFQYJKoZI\nhvcNAQkBFgh0MTlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDIwQHRlc3QxFzAVBgkq\nhkiG9w0BCQEWCHQyMUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjJAdGVzdDEXMBUG\nCSqGSIb3DQEJARYIdDIzQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQyNEB0ZXN0MRcw\nFQYJKoZIhvcNAQkBFgh0MjVAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDI2QHRlc3Qx\nFzAVBgkqhkiG9w0BCQEWCHQyN0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MjhAdGVz\ndDEXMBUGCSqGSIb3DQEJARYIdDI5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzMEB0\nZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDMy\nQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzM0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0\nMzRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDM1QHRlc3QxFzAVBgkqhkiG9w0BCQEW\nCHQzNkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0MzdAdGVzdDEXMBUGCSqGSIb3DQEJ\nARYIdDM4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQzOUB0ZXN0MRcwFQYJKoZIhvcN\nAQkBFgh0NDBAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQxQHRlc3QxFzAVBgkqhkiG\n9w0BCQEWCHQ0MkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDNAdGVzdDEXMBUGCSqG\nSIb3DQEJARYIdDQ0QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ0NUB0ZXN0MRcwFQYJ\nKoZIhvcNAQkBFgh0NDZAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDQ3QHRlc3QxFzAV\nBgkqhkiG9w0BCQEWCHQ0OEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NDlAdGVzdDEX\nMBUGCSqGSIb3DQEJARYIdDUwQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1MUB0ZXN0\nMRcwFQYJKoZIhvcNAQkBFgh0NTJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDUzQHRl\nc3QxFzAVBgkqhkiG9w0BCQEWCHQ1NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NTVA\ndGVzdDEXMBUGCSqGSIb3DQEJARYIdDU2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ1\nN0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NThAdGVzdDEXMBUGCSqGSIb3DQEJARYI\ndDU5QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2MEB0ZXN0MRcwFQYJKoZIhvcNAQkB\nFgh0NjFAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDYyQHRlc3QxFzAVBgkqhkiG9w0B\nCQEWCHQ2M0B0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NjRAdGVzdDEXMBUGCSqGSIb3\nDQEJARYIdDY1QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ2NkB0ZXN0MRcwFQYJKoZI\nhvcNAQkBFgh0NjdAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDY4QHRlc3QxFzAVBgkq\nhkiG9w0BCQEWCHQ2OUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzBAdGVzdDEXMBUG\nCSqGSIb3DQEJARYIdDcxQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3MkB0ZXN0MRcw\nFQYJKoZIhvcNAQkBFgh0NzNAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDc0QHRlc3Qx\nFzAVBgkqhkiG9w0BCQEWCHQ3NUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzZAdGVz\ndDEXMBUGCSqGSIb3DQEJARYIdDc3QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ3OEB0\nZXN0MRcwFQYJKoZIhvcNAQkBFgh0NzlAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgw\nQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4MUB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0\nODJAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDgzQHRlc3QxFzAVBgkqhkiG9w0BCQEW\nCHQ4NEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0ODVAdGVzdDEXMBUGCSqGSIb3DQEJ\nARYIdDg2QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ4N0B0ZXN0MRcwFQYJKoZIhvcN\nAQkBFgh0ODhAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDg5QHRlc3QxFzAVBgkqhkiG\n9w0BCQEWCHQ5MEB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTFAdGVzdDEXMBUGCSqG\nSIb3DQEJARYIdDkyQHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5M0B0ZXN0MRcwFQYJ\nKoZIhvcNAQkBFgh0OTRAdGVzdDEXMBUGCSqGSIb3DQEJARYIdDk1QHRlc3QxFzAV\nBgkqhkiG9w0BCQEWCHQ5NkB0ZXN0MRcwFQYJKoZIhvcNAQkBFgh0OTdAdGVzdDEX\nMBUGCSqGSIb3DQEJARYIdDk4QHRlc3QxFzAVBgkqhkiG9w0BCQEWCHQ5OUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTAwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTAzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMDRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDEwNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTA2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxMDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEwOEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTA5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDExMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTEyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEx\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTE1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxMTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDExN0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTE4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMTlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDEyMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTIxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxMjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyM0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTI0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDEyNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTI3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMjhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDEyOUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTMwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxMzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEzMkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTMzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxMzRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDEzNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxMzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDEz\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTM5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxNDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0MUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTQyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDE0NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTQ1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxNDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE0N0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTQ4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNDlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTUxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNTJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDE1M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTU0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxNTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE1NkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTU3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNThAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDE1OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYwQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxNjFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2\nMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTYzQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxNjRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE2NUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTY2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNjdAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDE2OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTY5QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxNzBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3MUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTcyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzNA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDE3NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTc1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxNzZAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDE3N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTc4QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQxNzlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4MEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MTgxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxODJAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDE4M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg0QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQxODVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4\nNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTg3QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQxODhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE4OUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MTkwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTFAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDE5MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MTkzQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQxOTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5NUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MTk2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQxOTdA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDE5OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMTk5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDBAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDIwMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjAyQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyMDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIwNEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MjA1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDZAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDIwN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjA4QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQyMDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIx\nMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjExQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQyMTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxM0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MjE0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMTVAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDIxNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjE3QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQyMThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIxOUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MjIwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMjIzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMjRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDIyNUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjI2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyMjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIyOEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MjI5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDIzMUB0ZXN0MRgwFgY", "JKoZIhvcNAQkBFgl0MjMyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIz\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjM1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQyMzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDIzN0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MjM4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyMzlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDI0MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjQxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQyNDJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0M0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MjQ0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDI0NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMjQ3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNDhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDI0OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjUwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyNTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI1MkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MjUzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNTRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDI1NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjU2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQyNTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI1\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjU5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQyNjBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI2MUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MjYyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNjNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDI2NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjY1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQyNjZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI2N0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MjY4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNjlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDI3MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMjcxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNzJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDI3M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjc0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyNzVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI3NkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0Mjc3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyNzhAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDI3OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjgwQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQyODFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI4\nMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MjgzQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQyODRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI4NUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0Mjg2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyODdAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDI4OEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjg5QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQyOTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDI5MUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MjkyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyOTNA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDI5NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMjk1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQyOTZAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDI5N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mjk4QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQyOTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMwMEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MzAxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMDJAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDMwM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzA0QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQzMDVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMw\nNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzA3QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQzMDhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMwOUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MzEwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMTFAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDMxMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzEzQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQzMTRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMxNUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MzE2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMTdA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDMxOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMzE5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjBAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDMyMUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzIyQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQzMjNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMyNEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MzI1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjZAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDMyN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzI4QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQzMjlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMz\nMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzMxQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQzMzJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMzM0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MzM0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzMzVAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDMzNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzM3QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQzMzhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDMzOUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MzQwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNDFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDM0MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMzQzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNDRAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDM0NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzQ2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQzNDdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM0OEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MzQ5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDM1MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzUyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM1\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzU1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQzNTZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM1N0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MzU4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNTlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDM2MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzYxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQzNjJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM2M0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0MzY0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNjVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDM2NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMzY3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNjhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDM2OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0MzcwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQzNzFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM3MkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0MzczQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzNzRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDM3NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzc2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQzNzdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM3\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzc5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQzODBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM4MUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0MzgyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzODNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDM4NEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzg1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQzODZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM4N0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0Mzg4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzODlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDM5MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nMzkxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzOTJAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDM5M0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0Mzk0QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQzOTVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDM5NkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0Mzk3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQzOThAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDM5OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDAwQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MDFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQw\nMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDAzQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ0MDRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQwNUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NDA2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MDdAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDQwOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDA5QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ0MTBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQxMUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NDEyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MTNA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDQxNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNDE1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MTZAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDQxN0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDE4QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ0MTlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQyMEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NDIxQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MjJAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDQyM0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDI0QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MjVAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQy\nNkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDI3QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ0MjhAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQyOUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NDMwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MzFAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDQzMkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDMzQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ0MzRAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQzNUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NDM2QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0MzdA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDQzOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNDM5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDBAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDQ0MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDQyQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ0NDNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ0NEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NDQ1QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDZAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDQ0N0B0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDQ4QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NDlAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1\nMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDUxQHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ0NTJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1M0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NDU0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NTVAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDQ1NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDU3QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ0NThAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ1OUB0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NDYwQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NjFA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ2MkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNDYzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NjRAd", "GVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDQ2NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDY2QHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ0NjdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ2OEB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NDY5QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzBAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDQ3MUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDcyQHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzNAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ3\nNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDc1QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ0NzZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ3N0B0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NDc4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0NzlAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDQ4MEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDgxQHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ0ODJAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ4M0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NDg0QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0ODVA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ4NkB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNDg3QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0ODhAdGVzdDEYMBYGCSqGSIb3DQEJ\nARYJdDQ4OUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDkwQHRlc3QxGDAWBgkqhkiG\n9w0BCQEWCXQ0OTFAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ5MkB0ZXN0MRgwFgYJ\nKoZIhvcNAQkBFgl0NDkzQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ0OTRAdGVzdDEY\nMBYGCSqGSIb3DQEJARYJdDQ5NUB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDk2QHRl\nc3QxGDAWBgkqhkiG9w0BCQEWCXQ0OTdAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDQ5\nOEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NDk5QHRlc3QxGDAWBgkqhkiG9w0BCQEW\nCXQ1MDBAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUwMUB0ZXN0MRgwFgYJKoZIhvcN\nAQkBFgl0NTAyQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MDNAdGVzdDEYMBYGCSqG\nSIb3DQEJARYJdDUwNEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0NTA1QHRlc3QxGDAW\nBgkqhkiG9w0BCQEWCXQ1MDZAdGVzdDEYMBYGCSqGSIb3DQEJARYJdDUwN0B0ZXN0\nMRgwFgYJKoZIhvcNAQkBFgl0NTA4QHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MDlA\ndGVzdDEYMBYGCSqGSIb3DQEJARYJdDUxMEB0ZXN0MRgwFgYJKoZIhvcNAQkBFgl0\nNTExQHRlc3QxGDAWBgkqhkiG9w0BCQEWCXQ1MTJAdGVzdDCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQoCggEBALoL2oQZEgFBdXwuPb29W75T63JfNJKKdYi6YrmK\nM+EKbcMue/hFrLGQXB6a2eQZFn+j3hmexeQF9T8iWxh2S6rzAr1Yj+qXeDBaMf4o\nBEiEhBxIsaIlws3qQa4baeVEEoxw+A+ISrYHTIFcV/i0bcIFt5p7v7wbu686a/w0\nvIqPfad5amdQJMvmjZXDI+jGMvFPmBRHr2/1dJUWPaKsJluwR514pJv74urIyEt+\ndFPM2/5kc2HiLNkeuS1Hbky+dPlDIGrfaHHsCNnb/GjvQ6YfvDXRrYPCxWMk0x3F\nMSaDK9T0zoJ5hE9fViR+D6xcJO2RNUCUENS+Iipj3kIrLbkCAwEAAaNJMEcwDgYD\nVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAw\nEgYDVR0RBAswCYIHdDAudGVzdDANBgkqhkiG9w0BAQsFAAOCAQEAQA/0vvY1gLA2\n0jrPkBVWte7OHzWVkwq7mqgQPR4L9qLLu7Vhelp4dW8n95s1wCbca5j5SJEGv4Uv\n0fI1OOK7XQeYdNlHBmvMVW47GoBSo6tuYNPI/y4xnM6ypEZiPKkdj9Ar9qNgURfV\nz3s1czip915dyTWgwBy7CTxOlG8NW0uiFgEc9iiDDfQsPwVXiVtxOPtjhPeI3F0J\njh3wctFxBnAvLV9SsDxpWujM1dd/1SSQ25jKQhbKNtiDAC8v+Q043r8ZGHjRdxe8\nW2tVWH/iz9c+ze0P0ao7LKv8eGzoIsrBqICS86X4Zv5lGeTGaD2osF1oNvmmoSlh\n536yFa415g==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen236 = 692; +static const size_t kLen241 = 692; -static const char *kData236[] = { +static const char *kData241[] = { "-----BEGIN CERTIFICATE-----\nMIIB0jCCAXegAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GbMIGYMA4GA1UdDwEB\n/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMA0GA1Ud\nDgQGBARsZWFmMBoGA1UdEQQTMBGCD3d3dy5leGFtcGxlLmNvbTAeBgNVHR4EFzAV\noBMwEYIPd3d3LmV4YW1wbGUuY29tMBgGA1UdIwQRMA6ADGludGVybWVkaWF0ZQAw\nCgYIKoZIzj0EAwIDSQAwRgIhAJepDBm/DoCSSUe2wqmNTjSJxbdQ2I9abl66G7Fs\n6mguAiEAnlJysXppr3jMa5yOFEXRNGRVoBKr6GS/MvCwbeuIXvg=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen237 = 692; +static const size_t kLen242 = 692; -static const char *kData237[] = { +static const char *kData242[] = { "-----BEGIN CERTIFICATE-----\nMIIB0TCCAXegAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GbMIGYMA4GA1UdDwEB\n/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATANBgNVHQ4EBgQEbGVhZjAXBgNV\nHSMEEDAOgAxpbnRlcm1lZGlhdGUwGgYDVR0RBBMwEYIPd3d3LmV4YW1wbGUuY29t\nMB4GA1UdHgQXMBWgEzARgg93d3cuZXhhbXBsZS5jb20wDQYDVR0TAQH/BAMwAAAw\nCgYIKoZIzj0EAwIDSAAwRQIgB1c3+kIZdUX0w3ULyHU4ybkbnlpvhNZDEpqWueYU\n8C4CIQCdJv6LWwvdGNQ9FJxQhHpmZUaB7k/rqih3BYxR50m54A==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen238 = 692; +static const size_t kLen243 = 692; -static const char *kData238[] = { +static const char *kData243[] = { "-----BEGIN CERTIFICATE-----\nMIIB0TCCAXegAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GbMIGYMA4GA1UdDwEB\n/wQEAwICBDAMBgNVHRMBAf8EAjAAMA0GA1UdDgQGBARsZWFmMBcGA1UdIwQQMA6A\nDGludGVybWVkaWF0ZTAaBgNVHREEEzARgg93d3cuZXhhbXBsZS5jb20wHgYDVR0e\nBBcwFaATMBGCD3d3dy5leGFtcGxlLmNvbTAUBgNVHSUEDTAKBggrBgEFBQcDAQAw\nCgYIKoZIzj0EAwIDSAAwRQIgORtSwqcycbej93AjlQp5UNCkHVIfvRcekoqAyX8d\nG9sCIQCQHEk/0/BK/KCigzr8UyCyjniemH99Ka0O9nGF8xoBmQ==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen239 = 692; +static const size_t kLen244 = 692; -static const char *kData239[] = { +static const char *kData244[] = { "-----BEGIN CERTIFICATE-----\nMIIB0jCCAXegAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GbMIGYMBMGA1UdJQQM\nMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwDQYDVR0OBAYEBGxlYWYwFwYDVR0j\nBBAwDoAMaW50ZXJtZWRpYXRlMBoGA1UdEQQTMBGCD3d3dy5leGFtcGxlLmNvbTAe\nBgNVHR4EFzAVoBMwEYIPd3d3LmV4YW1wbGUuY29tMA8GA1UdDwEB/wQFAwICBAAw\nCgYIKoZIzj0EAwIDSQAwRgIhAPlqfHIXlF4u9YZclOy8GQAAyE/lVQTSvZT9psfe\nKA7wAiEAt4/kRnYsDJLmJC2g4YwQlVVzIdmaII4GvsDqtPFtcBw=\n-----END CERTIFICATE-----\n", }; -static const size_t kLen240 = 692; +static const size_t kLen245 = 692; -static const char *kData240[] = { +static const char *kData245[] = { "-----BEGIN CERTIFICATE-----\nMIIB0TCCAXegAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GbMIGYMA4GA1UdDwEB\n/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMA0GA1Ud\nDgQGBARsZWFmMBcGA1UdIwQQMA6ADGludGVybWVkaWF0ZTAaBgNVHREEEzARgg93\nd3cuZXhhbXBsZS5jb20wHwYDVR0eBBgwFaATMBGCD3d3dy5leGFtcGxlLmNvbQAw\nCgYIKoZIzj0EAwIDSAAwRQIgTevxULZ+ge4Vb3FHa0xFQD1pdiXxHrwkCU81GHgd\nkhMCIQCTahPY69HhJNemXhCKX6cNU9ciRqo5ZIijleHXafLOnQ==\n-----END CERTIFICATE-----\n", }; -static const size_t kLen241 = 688; +static const size_t kLen246 = 688; -static const char *kData241[] = { +static const char *kData246[] = { "-----BEGIN CERTIFICATE-----\nMIIB0DCCAXegAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GbMIGYMA4GA1UdDwEB\n/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMA0GA1Ud\nDgQGBARsZWFmMBcGA1UdIwQQMA6ADGludGVybWVkaWF0ZTAeBgNVHR4EFzAVoBMw\nEYIPd3d3LmV4YW1wbGUuY29tMBsGA1UdEQQUMBGCD3d3dy5leGFtcGxlLmNvbQAw\nCgYIKoZIzj0EAwIDRwAwRAIgB5sQf45OpqWJqqKgPHMwB0tOcOv9K6FLdEQM3rLl\ntkcCIAFMvtwlvfIzbw1V6leaXucRfKrI6I2gqq9jyC+RdiMZ\n-----END CERTIFICATE-----\n", }; -static const size_t kLen242 = 688; +static const size_t kLen247 = 688; -static const char *kData242[] = { +static const char *kData247[] = { "-----BEGIN CERTIFICATE-----\nMIIB0DCCAXegAwIBAgIBAzAKBggqhkjOPQQDAjAqMSgwJgYDVQQDEx9JbnZhbGlk\nIEV4dGVuc2lvbnMgSW50ZXJtZWRpYXRlMCAXDTAwMDEwMTAwMDAwMFoYDzIxMDAw\nMTAxMDAwMDAwWjAaMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAASRKti8VW2Rkma+Kt9jQkMNitlCs0l5w8u3SSwm7HZR\nEvmcBCJBjVIREacRqI0umhzR2V5NLzBBP9yPD/A+Ch5Xo4GbMIGYMA4GA1UdDwEB\n/wQEAwICBDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMBcGA1Ud\nIwQQMA6ADGludGVybWVkaWF0ZTAaBgNVHREEEzARgg93d3cuZXhhbXBsZS5jb20w\nHgYDVR0eBBcwFaATMBGCD3d3dy5leGFtcGxlLmNvbTAOBgNVHQ4EBwQEbGVhZgAw\nCgYIKoZIzj0EAwIDRwAwRAIgZX4OegSkMvAY822XIS91eOzMhwt8jMS5aAp+jPwh\nS/sCICiNfc8gZkH72TTz8NYdKPJ20R9l4k42tDSz5DLabc78\n-----END CERTIFICATE-----\n", }; -static const size_t kLen243 = 45577; +static const size_t kLen248 = 45577; -static const char *kData243[] = { +static const char *kData248[] = { "# Imported from Wycheproof's aes_cbc_pkcs5_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: AES-CBC-PKCS5\n# Generator version: 0.8r12\n\n[ivSize = 128]\n[keySize = 128]\n\n# tcId = 1\n# empty message\nct = b10ab60153276941361000414aed0a9d\niv = da9520f7d3520277035173299388bee2\nkey = e34f15c7bd819930fe9d66e0c166e61c\nmsg = \nresult = valid\n\n# tcId = 2\n# message size divisible by block size\nct = d1fa697f3e2e04d64f1a0da203813ca5bc226a0b1d42287b2a5b994a66eaf14a\niv = c9ee3cd746bf208c65ca9e72a266d54f\nkey = e09eaa5a3f5e56d279d5e7a03373f6ea\nmsg = ef4eab37181f98423e53e947e7050fd0\nresult = valid\n\n# tcId = 3\n# message size divisible by block size\nct = 514cbc69aced506926deacdeb0cc0a5a07d540f65d825b65c7db0075cf930a06e0124ae598461cab0b3251baa853e377\niv = 8b2e86a9a185cfa6f51c7cc595b822bc\nkey = 9bd3902ed0996c869b572272e76f3889\nmsg = a7ba19d49ee1ea02f098aa8e30c740d893a4456ccc294040484ed8a00a55f93e\nresult = valid\n\n# tcId = 4\n# message size divisible by block size\nct = 137c824d7f7dc36f24216dde37c2e1c10cee533f6453de92e44b898fc3037d2e9e19d67a96387136dd9717a56e28614a5c177158f402ce2936fd98d1feb6a817\niv = 2717d10eb2eea3b39ec257e43307a260\nkey = 75ce184447cada672e02290310d224f7\nmsg = c774810a31a6421ad8eaafd5c22fa2455e2c167fee4a0b73ff927b2d96c69da1e939407b86b1c19bcfc69c434c3cf8a2\nresult = valid\n\n# tcId = 5\n# small plaintext size\nct = 599d77aca16910b42d8b4ac9560efe1b\niv = 155fd397579b0b5d991d42607f2cc9ad\nkey = e1e726677f4893890f8c027f9d8ef80d\nmsg = 3f\nresult = valid\n\n# tcId = 6\n# small plaintext size\nct = 74e20bf03a0ad4b49edc86a1b19c3d1d\niv = 4eb836be6808db264cb1111a3283b394\nkey = b151f491c4c006d1f28214aa3da9a985\nmsg = 27d9\nresult = valid\n\n# tcId = 7\n# small plaintext size\nct = 3f7a26558ba51cf352219d34c46907ae\niv = a8446c27ea9068d8d924d5c4eac91157\nkey = c36ff15f72777ee21deec07b63c1a0cd\nmsg = 50b428\nresult = valid\n\n# tcId = 8\n# small plaintext size\nct = c29d1463baccc558fd720c897da5bb98\niv = ef026d27da3702d7bb72e5e364a8f8f2\nkey = 32b9c5c78c3a0689a86052420fa1e8fc\nmsg = 0b9262ec\nresult = valid\n\n# tcId = 9\n# small plaintext size\nct = e24a717914f9cc8eaa1dc96f7840d6af\niv = c9defd3929dcd6c355c144e9750dd869\nkey = 43151bbaef367277ebfc97509d0aa49c\nmsg = eaa91273e7\nresult = valid\n\n# tcId = 10\n# small plaintext size\nct = f080e487f4e5b7aed793ea95ffe4bb30\niv = ce91e0454b0123f1ead0f158826459e9\nkey = 481440298525cc261f8159159aedf62d\nmsg = 6123c556c5cc\nresult = valid\n\n# tcId = 11\n# small plaintext size\nct = 27cadee413ed901f51c9366d731d95f6\niv = 1cb7bc8fe00523e7743d3cd9f483d6fe\nkey = 9ca26eb88731efbf7f810d5d95e196ac\nmsg = 7e48f06183aa40\nresult = valid\n\n# tcId = 12\n# small plaintext size\nct = 59bf12427b51a3aee0c9d3c540d04d24\niv = a345f084229dbfe0ceab6c6939571532\nkey = 48f0d03e41cc55c4b58f737b5acdea32\nmsg = f4a133aa6d5985a0\nresult = valid\n\n# tcId = 13\n# small plaintext size\nct = 1a0a18355f8ca4e6e2cf31da18d070da\niv = e5b6f73f132355b7be7d977bea068dfc\nkey = 1c958849f31996b28939ce513087d1be\nmsg = b0d2fee11b8e2f86b7\nresult = valid\n\n# tcId = 14\n# small plaintext size\nct = cef498ea61715a27f400418d1d5bfbf0\niv = c7cd10ca949ea03e7d4ba204b69e09b8\nkey = 39de0ebea97c09b2301a90009a423253\nmsg = 81e5c33b4c620852f044\nresult = valid\n\n# tcId = 15\n# small plaintext size\nct = 7ab43ddc45835ce40d2280bcea6a63f2\niv = bb8c9af30821dfeb7124392a554d9f01\nkey = 91656d8fc0aced60ddb1c4006d0dde53\nmsg = 7b3e440fe566790064b2ec\nresult = valid\n\n# tcId = 16\n# small plaintext size\nct = c70b457c945ad40895cf4c8be3ce7c66\niv = 54c3b90ca6e933f9094334d0263d3775\nkey = af7d5134720b5386158d51ea126e7cf9\nmsg = 7cc6fcc925c20f3c83b5567c\nresult = valid\n\n# tcId = 17\n# small plaintext size\nct = f9900afee2acfe63f8f15d81bbf64c39\niv = 9a2c5e91d4f0b9b9da64b46c5c2c8cb2\nkey = 4ed56753de6f75a032ebabca3ce27971\nmsg = 0c8c0f5619d9f8da5339281285\nresult = valid\n\n# tcId = 18\n# small plaintext size\nct = da4137bd8ac78e75a700b3de806f2d6f\niv = cf7951501104e1434309e6b936ec1742\nkey = beba50c936b696c15e25046dffb23a64\nmsg = 821ea8532fbabffb6e3d212e9b46\nresult = valid\n\n# tcId = 19\n# small plaintext size\nct = fed05321d11d978e2ec32527ecfce06c\niv = 90f5cf4fbfd2e2a1ab8eef402617bd5c\nkey = 501d81ebf912ddb87fbe3b7aac1437bc\nmsg = 2368e3c3636b5e8e94d2081adbf798\nresult = valid\n\n# tcId = 20\n# plaintext size > 16\nct = 8d55dc10584e243f55d2bdbb5758b7fabcd58c8d3785f01c7e3640b2a1dadcd9\niv = 54f2459e40e002763144f4752cde2fb5\nkey = 831e664c9e3f0c3094c0b27b9d908eb2\nmsg = 26603bb76dd0a0180791c4ed4d3b058807\nresult = valid\n\n# tcId = 21\n# plaintext size > 16\nct = e9199842355ea0c3dbf1b2a94fef1c802a95d024df9e407883cf5bf1f02c3cdc\niv = 088e01c2c65b26e7ad6af7b92ea09d73\nkey = cbffc6c8c7f76f46349c32d666f4efb0\nmsg = 6df067add738195fd55ac2e76b476971b9a0e6d8\nresult = valid\n\n# tcId = 22\n# plaintext size > 16\nct = 19beb4db2be0f3aff0083583038b2281a77c85b5f345ba4d2bc7f742a14f9247\niv = d9c9468796a2f5741b84d2d41430c5d3\nkey = fda6a01194beb462953d7e6c49b32dac\nmsg = f60ae3b036abcab78c98fc1d4b67970c0955cb6fe24483f8907fd73319679b\nresult = valid\n\n# tcId = 23\n# plaintext size > 16\nct = 84904fc92bd2e7590aa268e667370327b9446f41067dd40d3e5091a63a0d5687e4926e00cc3cb461c3b85d80ee2da818\niv = c98b47808add45c0c891983ec4b09846\nkey = efd9caa8ac68e9e29acdae57e93bcea8\nmsg = 3e1d2001f1e475b972738936443a5f51eedaf802a66fadf2406cfaadb0549149fcb9f485e534dc2d\nresult = valid\n\n# tcId = 24\n# plaintext size > 16\nct = 1d1391593a336be4b207295ad0542bc4ef2f39053066e12c38f71603f377fd42f4f0b2b5a42cdfeaee2af039f06fcf347abe171af3157ff07f3cdd3b33e11a60caecf9890325c132eeb66ab847278d165c26bca7c30486bb2fd83b63c5ff7ae0\niv = 08e9410de244d3f40607ebae38fa74e7\nkey = 37e4dbdc436258d5a9adb9f205c77cf3\nmsg = 24a874aec067116ad22eb55846ded3f5e86919a135585c929a86d92b2958fed110e52e33804887243584a6a94402cc9a105e0c940ec335bd2890f16dcce3fc8bd02873c80ade6f1ac08683130bcca454\nresult = valid\n\n# tcId = 25\n# zero padding\nct = aa62606a287476777b92d8e4c4e53028\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 26\n# zero padding\nct = ada437b682c92384b6c23ec10a21b3d8\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 27\n# zero padding\nct = 26c5b3e540ee3dd6b52d14afd01a44f8\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 28\n# zero padding\nct = fbcbdfdaaf17980be939c0b243266ecbc0deb417e98aba3ee12fea2921f8ae51\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 29\n# zero padding\nct = fbcbdfdaaf17980be939c0b243266ecb1188ff22f6563f6173440547d1e0dfd8\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 30\n# padding with 0xff\nct = 726570a34cea08139d9f836579102a0e\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 31\n# padding with 0xff\nct = c8ef7ac3fd659ce7157d72a25f0a5048\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 32\n# padding with 0xff\nct = 6123c889bbc766acd4bca4cb982f9978\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 33\n# padding with 0xff\nct = fbcbdfdaaf17980be939c0b243266ecb442cd16f7410fca70924b573f7967e84\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 34\n# padding with 0xff\nct = fbcbdfdaaf17980be939c0b243266ecbb20f899b0e7c1d65b931af94b5c44c25\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 35\n# bit padding\nct = 50aeed98a820c5a037a5aa4d4ef3090b\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 36\n# bit padding\nct = 25ee339006f948f42713543c", "62467ef9\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 37\n# bit padding\nct = 97914574676ed5b8db0b6f3931195b3f\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 38\n# bit padding\nct = fbcbdfdaaf17980be939c0b243266ecb2874a1e2d28dd18e5573df9fd59fd789\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 39\n# bit padding\nct = fbcbdfdaaf17980be939c0b243266ecbb547c4fddbdcd3e02f438a2e48587594\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 40\n# padding longer than 1 block\nct = d17ccbb26f0aa95f397b20063547349bac24c5429cbea591e96595cccc11451b\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 41\n# padding longer than 1 block\nct = fc07025e81d43efa85f92afdf8781b1e88598e12d6812df43733e93414b9e901\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 42\n# padding longer than 1 block\nct = deb1746f4e9e0be4a21825b071b6e93303031651e0c59091e2ae0fbcce11b987\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 43\n# padding longer than 1 block\nct = fbcbdfdaaf17980be939c0b243266ecb563d35096fde10ccb6f768438c9eb4ec90f399b76924c716e9f94143263306c6\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 44\n# padding longer than 1 block\nct = fbcbdfdaaf17980be939c0b243266ecbc8fd2e2c5362acf5212bd47859aa827d8469b87b0e6adafe3dba98c1885b6345\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 45\n# ANSI X.923 padding\nct = ca5dd2d09bd56eec9e8acaeca20af68e\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 46\n# ANSI X.923 padding\nct = 01e53a5ec9b0957c45f79ed0f4b2b982\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 47\n# ANSI X.923 padding\nct = fbcbdfdaaf17980be939c0b243266ecbd3909bb3457e5b946ff709be9a2ed84d\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 48\n# ANSI X.923 padding\nct = fbcbdfdaaf17980be939c0b243266ecbc5ab3ab637166a6a067b82b5672c08f8\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 49\n# ISO 10126 padding\nct = ba0726bd6dea11382b19c842e2ddead2\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 50\n# ISO 10126 padding\nct = 22f18b85c729903744fb8db5ed2840d4\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 51\n# ISO 10126 padding\nct = fbcbdfdaaf17980be939c0b243266ecb6b103fbe43519a18880b7e6d9153e1c2\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 52\n# ISO 10126 padding\nct = fbcbdfdaaf17980be939c0b243266ecbe00bdb15b8a61285447498700d35e0c6\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 53\n# padding longer than message\nct = d17ccbb26f0aa95f397b20063547349b\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 54\n# padding longer than message\nct = 2056dfa339fa00be6836999411a98c76\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 55\n# padding longer than message\nct = f92628f6418d8d9c9afac233861b3835\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 56\n# padding longer than message\nct = fbcbdfdaaf17980be939c0b243266ecbc0c41093b495a7d5a080d976493fd0e7\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 57\n# padding longer than message\nct = fbcbdfdaaf17980be939c0b243266ecb6770446a5ccaa26f7d4f970cc5834eba\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 58\n# invalid padding\nct = 4ff3e623fdd432608c183f40864177af\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 59\n# invalid padding\nct = 6a1ef1e6ae6a788777aabd9ccf3cf43a\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 60\n# invalid padding\nct = fbcbdfdaaf17980be939c0b243266ecbee1345cd513161b241f4ae2799b0327f\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 61\n# invalid padding\nct = fbcbdfdaaf17980be939c0b243266ecbe0d539beef6f2d4f7cda4fd9f4f05570\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n[ivSize = 128]\n[keySize = 192]\n\n# tcId = 62\n# empty message\nct = ff0c315873b4b1872abef2353b792ef0\niv = db20f9a6f4d6b4e478f1a4b9d4051d34\nkey = 3d6bf9edae6d881eade0ff8c7076a4835b71320c1f36b631\nmsg = \nresult = valid\n\n# tcId = 63\n# message size divisible by block size\nct = 7dbd573e4db58a318edfe29f199d8cda538a49f36486337c2711163e55fd5d0b\niv = 69a76dc4da64d89c580eb75ae975ec39\nkey = f4bfa5aa4f0f4d62cf736cd2969c43d580fdb92f2753bedb\nmsg = 0e239f239705b282ce2200fe20de1165\nresult = valid\n\n# tcId = 64\n# message size divisible by block size\nct = bd0258909e5b72438d95ca4b29c8a79c6228fd06a3b2fa06f7659654c7b24610f23f2fb16313b7d3614cb0cd16fabb8e\niv = 6525667350930fb945dd1895a3abfcd1\nkey = 9d11abc1fcb248a436598e695be12c3c2ed90a18ba09d62c\nmsg = aa5182cae2a8fb068c0b3fb2be3e57ae523d13dffd1a944587707c2b67447f3f\nresult = valid\n\n# tcId = 65\n# message size divisible by block size\nct = 6cbeacf8de25d7dd9dcdc087bf2f80873b1eb335400589076f8d2bf81e294c5d72b85eb8ac9558b0de9e9fbee4b18716e5220c507fbb9d319a08f67816765ca6\niv = 3943d8fddd5bb2a59772df31a31a8fff\nkey = 7e41d83181659a2c38da5ead353cdb04c2b4d4a3cfe58e25\nmsg = 8a32d11c7a11aa72e13381632b1310f4fd90fc209a6a350e61c069a561871214f9c04fc1df7354cbe4d8d639c525d324\nresult = valid\n\n# tcId = 66\n# small plaintext size\nct = 519925956d32e4fa350b1144f088e4e8\niv = 1379d48493f743e6a149deb3b9bab31e\nkey = 915429743435c28997a33b33b6574a953d81dae0e7032e6a\nmsg = 58\nresult = valid\n\n# tcId = 67\n# small plaintext size\nct = bfb90aa7de1bdeed5bdc5703bdfd9630\niv = 48c7f44b43a1279d820733e6cb30617a\nkey = f0c288ba26b284f9fb321b444a6517b3cdda1a799d55fdff\nmsg = 0f7e\nresult = valid\n\n# tcId = 68\n# small plaintext size\nct = b1a25816908c086f26037d10b7be9ad9\niv = 2c287b38cc30c8c351b087b91a6a97ba\nkey = 6b55e4d4fd6847a80a6bfb0dcc0aa93f9fd797fc5c50292e\nmsg = 33f530\nresult = valid\n\n# tcId = 69\n# small plaintext size\nct = 74dbdecbfa94b71d2d6ef03200c7d095\niv = 61f6060919c9c09ef06be28f39c344aa\nkey = 1eb21a9e995a8e45c9e71ecbd6fe615b3e0318007c64b644\nmsg = 3aa73c48\nresult = valid\n\n# tcId = 70\n# small plaintext size\nct = 10c860aaee23c3c3c1b9306b189dd80d\niv = 7682005907bf", "ef3ce00196a17ad2246d\nkey = 710e2d5d4a9f0bc7e50796655e046a18cc5769d7764355da\nmsg = 7e4c690a88\nresult = valid\n\n# tcId = 71\n# small plaintext size\nct = 673dcd444386930a0cc577fab4501e5c\niv = 1f6c912997ce007701e5fdf407c6b421\nkey = d8c09ea400779b63e774bdacd0cb7b5dd6f736ca23d52acf\nmsg = e9520280973b\nresult = valid\n\n# tcId = 72\n# small plaintext size\nct = 059e5f72a81d8820add8eae8fabcdd42\niv = 5854033ae50de090678432781a168b6c\nkey = 8e67e9a0863b55bed408866f1cbc05357abe3f9d79f406f2\nmsg = 4880b412287a0b\nresult = valid\n\n# tcId = 73\n# small plaintext size\nct = c412159fd5ae20d771b7d2e734124d6a\niv = 003b2d86d8b636c58cf664565572d5e6\nkey = 28d8da67806410e5565bcc5a9d7ab9fb357413fa0158378c\nmsg = 004e3f4a4e6db955\nresult = valid\n\n# tcId = 74\n# small plaintext size\nct = 4aba571c2c5ab9a6140f16efc68c8ec1\niv = 3f22b50f888ab9424ba871d15aac55b7\nkey = dc968dd89fd602bb7eca6f3a8a13e4f59c08d02a514b1934\nmsg = 41a25354efeb1bc3b8\nresult = valid\n\n# tcId = 75\n# small plaintext size\nct = 66d1b9152a8cd1a88eab341c775070b4\niv = e4b8dde04b49fa6b88bfccd8d70c21d1\nkey = 7658951c0f620d82afd92756cc2d7983b79da3e56fdd1b78\nmsg = f0e82fb5c5666f4af49f\nresult = valid\n\n# tcId = 76\n# small plaintext size\nct = d9377788e2881a48f9347786db7df51f\niv = 7753f616cd8796c9b8a3bbfbe6cb1e7f\nkey = d9574c3a221b986690931faac5258d9d3c52362b2cb9b054\nmsg = 178ea8404ba54ee4e4522c\nresult = valid\n\n# tcId = 77\n# small plaintext size\nct = db825f4434ea3bb53576fa7385fb7dfe\niv = eae9ee19ccb7f8b087675709c4d35f73\nkey = 704409bab28085c44981f28f75dd143a4f747106f63f262e\nmsg = cda5709e7f115624e74ab031\nresult = valid\n\n# tcId = 78\n# small plaintext size\nct = 3e7287df2a5ed9de4d817e352bd47ea7\niv = a6aaff339a729d30a7ec1328db36d23e\nkey = d8d06ef6a53bbff5c8f12d791b8f4c67e574bf440736d1cc\nmsg = a1171eae1979f48345dd9485a0\nresult = valid\n\n# tcId = 79\n# small plaintext size\nct = 17c3ade4b469ae614760039a8fa6250e\niv = 92fda71e88c70d18ed71b992735a2150\nkey = 71129e781613f39d9ac39fbde2628b44c250c14deb5ef9e2\nmsg = 967593cc64bcbf7f3c58d04cb82b\nresult = valid\n\n# tcId = 80\n# small plaintext size\nct = 9cafecff2a28d02f732573f65a2cadca\niv = ed6596c86b98123ad2f3c573e974d051\nkey = 850fc859e9f7b89a367611dee6698f33962d8245ca8dc331\nmsg = 586f4f171af116519061a8e0e77940\nresult = valid\n\n# tcId = 81\n# plaintext size > 16\nct = 401ad889bdb9d38816c782e00b168ccccde9bf75f4be868ceb91237e8b37b750\niv = c45b52a240eba3bdde5dfd57f3d474fb\nkey = cfd3f68873d81a27d2bfce876c79f6e609074dec39e34614\nmsg = b1973cb25aa87ef9d1a8888b0a0f5c04c6\nresult = valid\n\n# tcId = 82\n# plaintext size > 16\nct = 455d516e87851e6c894578a0f7126e0acbc7cfbb1d80296647ab89a79dfa6f71\niv = 07ece5fe02266e073499fd4d66929034\nkey = b7f165bced1613da5e747fdf9255832d30c07f2deeb5a326\nmsg = 289647ea8d0ff31375a82aa1c620903048bb1d0e\nresult = valid\n\n# tcId = 83\n# plaintext size > 16\nct = cbf541330a5a9bda24984976b0cf96ba08ef521fa2cdb3df839128570e222ac4\niv = d799157bc1f77c182027be918b30783a\nkey = 9bbe6e004fb260dadb02b68b78954f1da5e6a2d02e0aeefe\nmsg = 665423092ce95b927e98b8082030f58e33f3ec1b0c29532c2f421855f00f97\nresult = valid\n\n# tcId = 84\n# plaintext size > 16\nct = 03225f08592efca14ad8ecf822465e8be4157465d0be150dd3d645b6fef1b19ca7bbaa5940b2a7895fa2b0ee55b0d4ec\niv = fdf97645e4192ba84728bbf6683f79de\nkey = 1381fbd5e79045d40f29790fc1a436c95b040a046ebf0b0f\nmsg = d575dce596dd0a2cd1c18dab7eb0948fafb8669969a48b6314493bfb8daf8acacd51382f9bb5b357\nresult = valid\n\n# tcId = 85\n# plaintext size > 16\nct = 27ad00313f328f0d3e6c3238ab560cb7243a9f54f7dff79b5a7a879439993d458017f09e8d3f694098bc19e61fe54085138664abb51a5b328cf2c9ce5d59726fff5e1b7553c143d9e0493c51cab23ff2ecdad91bd72bb12b32f3b611f9a4225d\niv = 059685f59247eea5d3f2a1532cb9d6b2\nkey = 1bb4ed0e8435e20729f48c1b7e3af6e69e4cebf0731131cf\nmsg = 6d29dab6a0568c961ab3c825e0d89940cef06c63ade7e557cd3e92792eaf23c8cd5a0f029c63b1cdce4754ccfad7a73c7c9e50ffe081e9136f5e9a424077339de12ea43572afe1b034e833e5887763aa\nresult = valid\n\n# tcId = 86\n# zero padding\nct = 2c010faa25c68c3b30b8c1491c316d5f\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 87\n# zero padding\nct = 818454d433154a8e00e8f590b8a1c38c\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 88\n# zero padding\nct = 0a7423fae3f4c8d4633f839d36f2e9ff\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 89\n# zero padding\nct = a7cfcdabcc5a2736a2708c1cb0b61432e83f6e522c371e6e71bde539595b70b7\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 90\n# zero padding\nct = a7cfcdabcc5a2736a2708c1cb0b6143254d15f47701fa54f5957828f386e1d97\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 91\n# padding with 0xff\nct = 6ded36cc7603e514014dfb7199900676\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 92\n# padding with 0xff\nct = 839f772f8e5f50afdc02f954094869fe\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 93\n# padding with 0xff\nct = eefe3553c099c187929b287e54f95726\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 94\n# padding with 0xff\nct = a7cfcdabcc5a2736a2708c1cb0b61432d0531a2641d40467353542d79ce20ea8\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 95\n# padding with 0xff\nct = a7cfcdabcc5a2736a2708c1cb0b61432aaf08a090ecf66167ba5958100be7950\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 96\n# bit padding\nct = c0e402c8bbdda18c8ddd86470bd4b244\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 97\n# bit padding\nct = dc185d4572565e01131e471ec4c48125\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 98\n# bit padding\nct = 3ad1ddf3c3b320398785e6ec6544e9a2\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 99\n# bit padding\nct = a7cfcdabcc5a2736a2708c1cb0b614325876f90cfbbdbcd85e8252d37c44c638\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 100\n# bit padding\nct = a7cfcdabcc5a2736a2708c1cb0b61432d18f57216b0e6426d911998a0e44156b\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 101\n# padding longer than 1 block\nct = f1605abb4e6628347c616da350fe243043a8d7b6aea244ca013f45241d802213\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 102\n# padding longer than 1 block\nct = a5f027fb9514ec8844534d452c940feb2c1807f57ed628156cf753f2ab698356\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 103\n# padding longer than 1 block\nct = f346fbc9744d723c42bbb2a4c934cdd4f1019e58c226cb2491fed621271a38f3\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 303132333435363738396162636465\nresult = ", @@ -7368,9 +7678,9 @@ static const char *kData243[] = { "99\nkey = 64be162b39c6e5f1fed9c32d9f674d9a8cde6eaa2443214d86bd4a1fb53b81b4\nmsg = 195a3b292f93baff0a2c\nresult = valid\n\n# tcId = 137\n# small plaintext size\nct = 4ed0eac75b05868078303875f82fb4f0\niv = 2d4cead3f1120a2b4b59419d04951e20\nkey = b259a555d44b8a20c5489e2f38392ddaa6be9e35b9833b67e1b5fdf6cb3e4c6c\nmsg = afd73117330c6e8528a6e4\nresult = valid\n\n# tcId = 138\n# small plaintext size\nct = f4d298caea7c390fc8c7f558f584f852\niv = a10392634143c2a3332fa0fb3f72200a\nkey = 2c6fc62daa77ba8c6881b3dd6989898fef646663cc7b0a3db8228a707b85f2dc\nmsg = 0ff54d6b6759120c2e8a51e3\nresult = valid\n\n# tcId = 139\n# small plaintext size\nct = 5e1c00e2ec829f92b87c6adf5c25262d\niv = 38b916a7ad3a9251ae3bd8865ca3a688\nkey = abab815d51df29f740e4e2079fb798e0152836e6ab57d1536ae8929e52c06eb8\nmsg = f0058d412a104e53d820b95a7f\nresult = valid\n\n# tcId = 140\n# small plaintext size\nct = bf3a04ddb2dbfe7c6dc9e15aa67be25d\niv = bfcc3ac44d12e42d780c1188ac64b57f\nkey = 3d5da1af83f7287458bff7a7651ea5d8db72259401333f6b82096996dd7eaf19\nmsg = aacc36972f183057919ff57b49e1\nresult = valid\n\n# tcId = 141\n# small plaintext size\nct = fdcfa77f5bd09326b4c11f9281b72474\niv = 35bc82e3503b95044c6406a8b2c2ecff\nkey = c19bdf314c6cf64381425467f42aefa17c1cc9358be16ce31b1d214859ce86aa\nmsg = 5d066a92c300e9b6ddd63a7c13ae33\nresult = valid\n\n# tcId = 142\n# plaintext size > 16\nct = fbea776fb1653635f88e2937ed2450ba4e9063e96d7cdba04928f01cb85492fe\niv = 4b74bd981ea9d074757c3e2ef515e5fb\nkey = 73216fafd0022d0d6ee27198b2272578fa8f04dd9f44467fbb6437aa45641bf7\nmsg = d5247b8f6c3edcbfb1d591d13ece23d2f5\nresult = valid\n\n# tcId = 143\n# plaintext size > 16\nct = 3a79bb6084c7116b58afe52d7181a0aacee1caa11df959090e2e7b0073d74817\niv = 9a1d8ccc24c5e4d3995480af236be103\nkey = c2039f0d05951aa8d9fbdf68be58a37cf99bd1afcedda286a9db470c3729ca92\nmsg = ed5b5e28e9703bdf5c7b3b080f2690a605fcd0d9\nresult = valid\n\n# tcId = 144\n# plaintext size > 16\nct = 642b11efb79b49e5d038bc7aa29b8c6c3ce0bf11c3a69670eb565799908be66d\niv = 400aab92803bcbb44a96ef789655b34e\nkey = 4f097858a1aec62cf18f0966b2b120783aa4ae9149d3213109740506ae47adfe\nmsg = ee53d8e5039e82d9fcca114e375a014febfea117a7e709d9008d43858e3660\nresult = valid\n\n# tcId = 145\n# plaintext size > 16\nct = a9b051354f0cf61f11921b330e60f996de796aeb68140a0f9c5962e1f48e4805262fb6f53b26d9bb2fa0e359efe14734\niv = 6eedf45753ffe38f2407fbc28ab5959c\nkey = 5f99f7d60653d79f088dd07ef306b65e057d36e053fa1c9f6854425c019fd4df\nmsg = fcc9212c23675c5d69a1266c77389bc955e453daba20034aabbcd502a1b73e05af30f8b7622abdbc\nresult = valid\n\n# tcId = 146\n# plaintext size > 16\nct = 5074f46f1a6d0eeff070d623172eb15bbfc83e7d16466a00c9da5f4545eecf44adbf60cf9ac9aa1a3ec5eca22d4a34a7b21ca44d214c9d04ab1cb0b2c07001de9adb46f3c12f8f48436b516a409bf6cbdf1871dee3115d5cbb7943558b68867e\niv = f88551c6aa197f9ad80251c2e32d7663\nkey = 95aaa5df4ccb529e9b2dc929e770c1f419f8e8933bfb36f632f532b3dcad2ba6\nmsg = f5735567b7c8312f116517788b091cc6cb1d474b010a77910154fd11c3b2f0cd19f713b63d66492e8cc7ee8ad714783f46c305a26416e11ff4b99ec5ce2550593cc5ec1b86ba6a66d10f82bdff827055\nresult = valid\n\n# tcId = 147\n# zero padding\nct = e07558d746574528fb813f34e3fb7719\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 148\n# zero padding\nct = c01af61276368818a8295f7d4b5bb2fd\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 149\n# zero padding\nct = 97dd9716f06be49160399a5b212250ae\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 150\n# zero padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce783bb4b4e18d7c646f38e0bb8ff92896\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 151\n# zero padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce64679a46621b792f643542a735f0bbbf\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 152\n# padding with 0xff\nct = c007ddffb76b95208505fe7f3be96172\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 153\n# padding with 0xff\nct = e9b7719c4c2b9fa6b94cb50e87b28156\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 154\n# padding with 0xff\nct = 77b31f474c4bd489dbadd532643d1fa5\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 155\n# padding with 0xff\nct = 8881e9e02fa9e3037b397957ba1fb7cea0166e9e1c0122cb2e2983fc0fac7176\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 156\n# padding with 0xff\nct = 8881e9e02fa9e3037b397957ba1fb7ce6f0effa789cbb0b875cc53cc8f7b3caf\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 157\n# bit padding\nct = 4dd5f910c94700235c9ed239160e34e2\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 158\n# bit padding\nct = 94d18b5923f8f3608ae7ad494fbb517e\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 159\n# bit padding\nct = 0c92886dbcb030b873123a25d224da42\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 160\n# bit padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce851be67798a2937cd6681165da6dce03\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 161\n# bit padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce45658a37aaebc51098866b0894007e8e\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 162\n# padding longer than 1 block\nct = 524236e25956e950713bec0d3d579068f34e4d18c4ccab081317dae526fe7fca\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 163\n# padding longer than 1 block\nct = d29eb845640c3a8878f51bc50e290aa4a65a34a93728fe8f82fdb8d3d2b7c648\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 164\n# padding longer than 1 block\nct = c34563be2952277c0f5c67ae1d6f847118730dd7f6a502ceef3c4bce5999f7aa\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 165\n# padding longer than 1 block\nct = 8881e9e02fa9e3037b397957ba1fb7cec0f74a1aa92fd9c96f9d15d193d1695c1eb33486e269277612f90f509f0535c2\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 166\n# padding longer than 1 block\nct = 8881e9e02fa9e3037b397957ba1fb7ce151ade309ec5200bacdd83b57ce794cd2b3bf9f8957def829e8465f7db266f9e\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey ", "= 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 167\n# ANSI X.923 padding\nct = fb38cbef13f1d5be9c0ac7ed9cbe023c\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 168\n# ANSI X.923 padding\nct = 18cf8988abe9a2463a3a75db1fac8bcc\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 169\n# ANSI X.923 padding\nct = 8881e9e02fa9e3037b397957ba1fb7cee16d6fc4b4d3cdf6f915996e437fd4cc\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 170\n# ANSI X.923 padding\nct = 8881e9e02fa9e3037b397957ba1fb7cea8f41f61ead6e9936cbe7ee5a1163b9b\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 171\n# ISO 10126 padding\nct = a05c14da0109093c195b4998812fe150\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 172\n# ISO 10126 padding\nct = c477877250c8e4ca2869f35c4757cdb4\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 173\n# ISO 10126 padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce69f57c6e99c7b9df7d4879ccd15caf3d\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 174\n# ISO 10126 padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce77f89a247c928f147748ce6bc8fc4b67\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 175\n# padding longer than message\nct = 524236e25956e950713bec0d3d579068\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 176\n# padding longer than message\nct = e03b6f2ae1c963b6dfa40b42d34314b7\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 177\n# padding longer than message\nct = df14f4cbbccca57b9727d68270a1b6c1\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 178\n# padding longer than message\nct = 8881e9e02fa9e3037b397957ba1fb7ceea228bf1edd41c390e2eef140142bc00\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 179\n# padding longer than message\nct = 8881e9e02fa9e3037b397957ba1fb7ce3937e0e9abf7f672a34a500ba8e9099a\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 180\n# invalid padding\nct = 32ac6057df2a5d1e2e5131348c6ebc4e\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 181\n# invalid padding\nct = df4a7c3b9f4756d30fca0d18e9b28960\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 182\n# invalid padding\nct = 8881e9e02fa9e3037b397957ba1fb7ceae2855c47c7988873d57f901e049494b\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 183\n# invalid padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce0714c8de200b27ac91d9257fc93c13be\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n", }; -static const size_t kLen244 = 132574; +static const size_t kLen249 = 132574; -static const char *kData244[] = { +static const char *kData249[] = { "# Imported from Wycheproof's aes_ccm_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: AES-CCM\n# Generator version: 0.8r12\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 1\naad = \nct = \niv = 438a547a94ea88dce46c6c85\nkey = bedcfb5a011ebc84600fcb296c15af0d\nmsg = \nresult = valid\ntag = 25d1a38495a7dea45bda049705627d10\n\n# tcId = 2\naad = \nct = d7\niv = b30c084727ad1c592ac21d12\nkey = 384ea416ac3c2f51a76e7d8226346d4e\nmsg = 35\nresult = valid\ntag = 6be3fd13b7065afc19e3b8a3b96b39fb\n\n# tcId = 3\naad = \nct = e64d0b64ebb381ec\niv = b5e006ded553110e6dc56529\nkey = cae31cd9f55526eb038241fc44cac1e5\nmsg = d10989f2c52e94ad\nresult = valid\ntag = 25409c795d491d804e583917227b73c7\n\n# tcId = 4\naad = \nct = aaf596fa5b00aaac27700146aec932a9\niv = 0e1666f2dc652f7708fb8f0d\nkey = ffdf4228361ea1f8165852136b3480f7\nmsg = 25b12e28ac0ef6ead0226a3b2288c800\nresult = valid\ntag = 848b6735d32c96e4a0532bcdfaf33582\n\n# tcId = 5\naad = \nct = 0333df2a86d7f094dd8bce75da6c38c5c1\niv = 965ff6643116ac1443a2dec7\nkey = c15ed227dd2e237ecd087eaaaad19ea4\nmsg = fee62fde973fe025ad6b322dcdf3c63fc7\nresult = valid\ntag = 417da29df85a1d134feee8aa35569081\n\n# tcId = 6\naad = \nct = fcaaa38feda3aca975ac76553c3e7ef36b887a8c4d8241f9\niv = fbbc04fd6e025b7193eb57f6\nkey = a8ee11b26d7ceb7f17eaa1e4b83a2cf6\nmsg = c08f085e6a9e0ef3636280c11ecfadf0c1e72919ffc17eaf\nresult = valid\ntag = c2c6dcaeaeb9f38a3a42d2f4e8a17de4\n\n# tcId = 7\naad = \nct = b3fb66d3f2cb7590ad5ef5604813c125020ee3d791cb0ec67eb5eb86709b6b\niv = 42b51388f6f9047a2a994575\nkey = 1655bf662f7ee685615701fd3779d628\nmsg = 857b2f6cd608c9cea0246c740caa4ca19c5f1c7d71cb9273f0d8c8bb65b70a\nresult = valid\ntag = 155577b98a811e45324616043997bc03\n\n# tcId = 8\naad = \nct = 532694bb2851ea7f3bdd37c4e806be5b953ea79d08100e74af3fa67eca8890db28\niv = eef1a6e651321852f0b25a31\nkey = 3fd50741ec47ddbfc2fc090975d154f0\nmsg = d6f6a9a24db6a7a6176d4362639c4fd77f70f3e089dd940086e12a9becbaf97f82\nresult = valid\ntag = 9e1acee688848bca454c6d04753d3c7d\n\n# tcId = 9\naad = \nct = 4ca01b5b2a5e57bcc1a4b7f63f049dc477e3ee2e5c268efb346ff95b7dcd67f86ed0f11bb17c1dd7fb511d2f37b9684550c0d84be0f10030ccc4e0de5b74ef92ea54\niv = 064b3cfbe04d94d4d5c19b30\nkey = 42e38abef2dd7573248c5aefb3ecca54\nmsg = 2c763b9ec84903bcbb8aec15e678a3a955e4870edbf62d9d3c81c4f9ed6154877875779ca33cce8f73a55ca7af1d8d817fc6baac00ef962c5a0da339ce81427a3d59\nresult = valid\ntag = c5a57dd6fa16aa9de8de20e6bd321396\n\n# tcId = 10\naad = a43d39f78a2e9a8a\nct = \niv = 5508f5cea197386986d92dbe\nkey = 59ab7ec1c02bb206af5a9131f1134311\nmsg = \nresult = valid\ntag = 09ec70faae333537a7314929ddfb525b\n\n# tcId = 11\naad = 705d676cd8a94451\nct = 08db327a88be7b48f430fd7bfccdf502\niv = bdffaa763b916ff0ee3f3ce4\nkey = 9415f925bcb41dc25e86c826dbc8bf68\nmsg = feb36167eafc02c8e2bd6e13817686ba\nresult = valid\ntag = b7c249f810adacf99abded1f3b9130f2\n\n# tcId = 12\naad = 3ddba7b3ab69c8b2\nct = e0caf2a9d50f70ecaa43b4a287c3b34a99\niv = ef423240358830df915506a3\nkey = d97c9b043bdccfd59491a995e78f1696\nmsg = f047594a5cffda64303a80b2fa6a957169\nresult = valid\ntag = cff4c61882b413b686ff35b63a3a73de\n\n# tcId = 13\naad = 28\nct = \niv = acca8ae916119e49d87c33a7\nkey = 16be38c05c7bc5c68ee6203871799240\nmsg = \nresult = valid\ntag = 217d40efd972701fcc33df5362e1ea9c\n\n# tcId = 14\naad = b8e8\nct = \niv = 07c8ef981bea995257d3d65a\nkey = 7c89680b4bca11a64314f4cac57a95df\nmsg = \nresult = valid\ntag = dea636ded8b9ef2a08ffdf58a05b7871\n\n# tcId = 15\naad = eae252f42d2c71\nct = \niv = ed1d316d0834d174c1b5b438\nkey = 439fd5c3b76587d5a601ba6ef8fad214\nmsg = \nresult = valid\ntag = e8530426cbabf63633ff373159247e38\n\n# tcId = 16\naad = d55908958b70abee81054cdf3d3df5\nct = \niv = 5d2904298f668ba95eaa1797\nkey = 1a44f3550688fddbc1e5041dc98952c0\nmsg = \nresult = valid\ntag = 5c71b4f069cfa13b7634db4b13e7be7d\n\n# tcId = 17\naad = 6fc1ca24e69786aa26bfb5d46ef8cb56\nct = \niv = e98693e9f6632d115b5d5a74\nkey = 7db6d8e58e3c552a644520aa805e2f48\nmsg = \nresult = valid\ntag = b9a8a6d461a441fbd5bb6a8ac0d47e9d\n\n# tcId = 18\naad = eedf6e776ad37dc610825a6168e21356c2\nct = \niv = efc1870282e77ca8063f1beb\nkey = de6ed169d396cfb7378e892c7faf1d5d\nmsg = \nresult = valid\ntag = 0d650a974ebea22fed077d229e0c9e65\n\n# tcId = 19\naad = bd913967db07b9eb5907f0be71ce886c41ff923c296c0ef3f704e98f649e59\nct = \niv = 4c4c525a8c7ee6879aefa79e\nkey = 6cf09599181c07aeb21d7820bf706595\nmsg = \nresult = valid\ntag = 806e48e7d452b63b6126f576efbdf4c4\n\n# tcId = 20\naad = a386d5c44de8c6a5063adf5ba9f0b75e9ad1f239a530dd76d797554d7b037d7d\nct = \niv = 0576a1017ac00e49110c4cac\nkey = ef35b5c797bb6beedb513ba3d8aebd25\nmsg = \nresult = valid\ntag = 6966a1cf5729332b26fd3e3850b74865\n\n# tcId = 21\naad = 35312ca23e4eb36cb0a66c6f386b8ec29f6d11e82fbfcaadfd6cbc9b59d51a6c0270868274d91f60978d1f0f37280930d3fdcb3e90ea461eccc83fa0d975548816\nct = \niv = 6ca6f87b7a8584df4f4687b9\nkey = 649f3dfddbf1af6087674568e2e6d7c3\nmsg = \nresult = valid\ntag = 3daa0003de384d78443ffd3a5ea48179\n\n# tcId = 22\naad = 30\nct = 75e6ffcb6114833b67cd93bdf2c22b55\niv = 4bad10c6d84fd43fd13ad36f\nkey = a5b5b6bae45b741fe4663890098f326a\nmsg = 127b150080ec0bc7704e26f4ab11abb6\nresult = valid\ntag = c90e18eaf810b7bcefe7a526b1783b20\n\n# tcId = 23\naad = 743e\nct = 646cef72906e2b8f69ac3134b496598e\niv = 2186a3091237adae83540e24\nkey = 0cecb9f512932d68e2c7c0bc4bd621c8\nmsg = 437aeb94d842283ba57bb758e3d229f0\nresult = valid\ntag = 9dab1ee9314a0430abf54c37c88c790f\n\n# tcId = 24\naad = ab91ec8cc73373\nct = a884f769fcc727839d59711fa3cb5ee0\niv = 690e7ad1e05d0d4ab4552cf7\nkey = a3fd2fdcce8a63bfe4eb2db7e42adbe1\nmsg = be0231b5c7861f0af7b6381479d25b77\nresult = valid\ntag = f2017e3bd10bb1b43fdcc0feeffc9c68\n\n# tcId = 25\naad = 25591707c004f506f4b51e85e29f6a\nct = 89166dcd7d74a445dfd3526c5180d825\niv = 0c908e58cddad69dea1a32c3\nkey = 55e04c122780be52ed9328928039008c\nmsg = 26eb70672eef03667b34cc7d0df05872\nresult = valid\ntag = 8b8ed5f97a168881c3b6efe91cfe7043\n\n# tcId = 26\naad = c07092d799dac2b4c05fbddd04743c34\nct = 2315110f7ec64e7a23e5a762822f71ab\niv = c30968c967e53505621628db\nkey = 5f0a1b5f8f8673d566ec7f54e7dca4f2\nmsg = f6538476daf04524cf134309dd84e187\nresult = valid\ntag = dc7b12fa2dbfbdc6d85faa77a2eb767e\n\n# tcId = 27\naad = 3ea12d80f40f34f812479d2ecc13d2d6df\nct = 5d5630fc728ffb08ce693f7299e6728b\niv = a51c37f467893c1608e56274\nkey = 671a70e883fb0611dffd0b1dd9b8cca2\nmsg = 3baf3edf04dc0c97aae081cdeb08021d\nresult = valid\ntag = 00023f11a023c0786c105fe4c003af6e\n\n# tcId = 28\naad = 4f2285ce3dafa528c694a5272d3b7b929097db398772653bd9bbbdb3b2c8e1\nct = 8703e44697138c58532d97ee99231d94\niv = 459fc7c004bf46323a02d846\nkey = 20bbf74c1e63982c472c4743569e4c84\nmsg = 6db50992e8fbbee15d4979d3e322dacd\nresult = valid\ntag = f14c2f39a4871a4a16c42f6fe878deef\n\n# tcId = 29\naad = 5189ea6f39b2a78c0202fdff146c5cc6bdc7491d4786f80c6c6aef65634c05da\nct = 5590155f3e701b4a960989d0251bac65\niv = 52c20979cdaaade573dba650\nkey = 63f03172505d90e94900125cb8a4b0dd\nmsg = 602c98997ee03fd11ce00e92de193977\nresult = valid\ntag = fd6a2c9273d124b5553be42e78931465\n\n# tcId = 30\naad = 482da24bb4fb9eaa0dbf403733597f5b3ee8338b5d09a1d6f9070bb069264abbcacc5657aa6353f179d1bb4c7fa00526789eaf08e0da258cbdb39e9877c68b4a75\nct = 1b89c6bcddefbe9233ee4093468a5f61\niv = 580af48bc1108604d5551343\nkey = 5bf008f6f27cc21f5ae82fb7907b1d92\nmsg = ca89d6ae284afb6792cd894e07aa8336\nresult = valid\ntag = a49c7747dad42df6d729a01f4c50cf34\n\n# tcId = 31\naad = \nct = \niv = fe9f6fb4415cfb4189f9c76d\nkey = 30d8692eb3b62db6144f74ee9dec5296\nmsg = \nresult = valid\ntag = 804f915fc7fea2ca7d8baf1350c5227b\n\n# tcId = 32\naad = 76d332ba081b3d3cfba271167ba108cd\nct = \niv = 61f6c4ec9e2091d4a031804a\nkey = 21517fd9ebfd387dff2a0c0518ab8267\nmsg = \nresult = valid\ntag = 2cc4b905a4d39e35d4beaebded9b5966\n\n# tcId = 33\naad = \nct = 99ae76cfff552ce37b210e26e810787c\niv = 91773659adac8f12e5526316\nkey = a716f931c8f9d977f7da8573bc65f2bf\nmsg = 9c98038c5e8d1af597b3b9188b3624fb\nresult = valid\ntag = 2bdab5e6f008b0cc751d5b067487eb2b\n\n# tcId = 34\naad = 35a6d9829c8449c4402e385cc5c6fe98\nct = 3469c3ff738aa32aacc1ac48d89b1d75\niv = fdc5014ed1ad706129d57322\nkey = 875b0b4a84150524eb1f50f9d8de1388\nmsg = 2f575dfb2dbe9d238de576fc63e4ac32\nresult = valid\ntag = fa68720a3171a54c4b3690bffde7b610\n\n# tcId = 35\naad = \nct = 476869a3ddb386bf42478d0c84179045be\niv = d96f9bbbfa14e9616c458df5\nkey = d6298fff67dba1ec250308e0bc5f4fae\nmsg = 8eeb4445a34c81fdbc478b83df71116ce6\nresult = valid\ntag = 9136d994daa2", "2ead4d0827e5825001ac\n\n# tcId = 36\naad = 3d2f458c67c5b6c794b1f12dad409e0f\nct = 28aaec53493cd6252cf6410ed141bdafb7\niv = 89d270fc8b583bc631cefd39\nkey = e3d3ec41f28eb35fb53f5fa91804e051\nmsg = 847acf521995b33f8bc474c8befbca3bb2\nresult = valid\ntag = 47bf3e16c227ca11fd68a16d407c2cc3\n\n# tcId = 37\naad = \nct = a789907aeb2344f025b1b426c9dee52b106ff2110cb200cfb85aea60fddf6a\niv = 2ffa982a4784797cf46b07ab\nkey = faf36a66f8e54f2fb2a02f3a30f0180b\nmsg = 50a59edc01b7bd0db6ec43fe23f72e70ed4d42337ab1926cc6956aa44dbebf\nresult = valid\ntag = 722e5c450c5ed9492859a3236a220f76\n\n# tcId = 38\naad = 72175bdfdb4a23e97fdcbd263baf4316\nct = 320ae0c11e92d10d5bf5485c854b2d8f6318e33f16b520cffd35ada381c967\niv = 917962caf3932441c259282f\nkey = 2c9b9ff47d742c4ab224e9ca1ed57c4c\nmsg = b542c2f3f81670ddf74f15184ab7de17e057cde9eef92babdb837500774c19\nresult = valid\ntag = a4866908e664ee140c6ae2b9d2ab8416\n\n# tcId = 39\n# Flipped bit 0 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3d6d5f66430ad65bb034077297f0929a\n\n# tcId = 40\n# Flipped bit 1 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3e6d5f66430ad65bb034077297f0929a\n\n# tcId = 41\n# Flipped bit 7 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = bc6d5f66430ad65bb034077297f0929a\n\n# tcId = 42\n# Flipped bit 8 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6c5f66430ad65bb034077297f0929a\n\n# tcId = 43\n# Flipped bit 31 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5fe6430ad65bb034077297f0929a\n\n# tcId = 44\n# Flipped bit 32 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66420ad65bb034077297f0929a\n\n# tcId = 45\n# Flipped bit 33 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66410ad65bb034077297f0929a\n\n# tcId = 46\n# Flipped bit 63 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66430ad6dbb034077297f0929a\n\n# tcId = 47\n# Flipped bit 64 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66430ad65bb134077297f0929a\n\n# tcId = 48\n# Flipped bit 71 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66430ad65b3034077297f0929a\n\n# tcId = 49\n# Flipped bit 77 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66430ad65bb014077297f0929a\n\n# tcId = 50\n# Flipped bit 80 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66430ad65bb034067297f0929a\n\n# tcId = 51\n# Flipped bit 96 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66430ad65bb034077296f0929a\n\n# tcId = 52\n# Flipped bit 97 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66430ad65bb034077295f0929a\n\n# tcId = 53\n# Flipped bit 103 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66430ad65bb034077217f0929a\n\n# tcId = 54\n# Flipped bit 120 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66430ad65bb034077297f0929b\n\n# tcId = 55\n# Flipped bit 121 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66430ad65bb034077297f09298\n\n# tcId = 56\n# Flipped bit 126 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66430ad65bb034077297f092da\n\n# tcId = 57\n# Flipped bit 127 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66430ad65bb034077297f0921a\n\n# tcId = 58\n# Flipped bits 0 and 64 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3d6d5f66430ad65bb134077297f0929a\n\n# tcId = 59\n# Flipped bits 31 and 63 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5fe6430ad6dbb034077297f0929a\n\n# tcId = 60\n# Flipped bits 63 and 127 in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3c6d5f66430ad6dbb034077297f0921a\n\n# tcId = 61\n# all bits of tag flipped\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = c392a099bcf529a44fcbf88d680f6d65\n\n# tcId = 62\n# Tag changed to all zero\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 63\n# tag changed to all 1\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 64\n# msbs changed in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = bceddfe6c38a56db30b487f21770121a\n\n# tcId = 65\n# lsbs changed in tag\naad = \nct = 3ee9f3430f3e803c0a46b7a84cd803de\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3d6c5e67420bd75ab135067396f1939b\n\n[ivSize = 96]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 66\naad = \nct = \niv = ff0ddb0a0d7b36d219da12b5\nkey = 5019eb9fef82e5750b631758f0213e3e5fcca12748b40eb4\nmsg = \nresult = valid\ntag = 2d03f5e8c2e5a1b43c7708dd0cbf0acd\n\n# tcId = 67\naad = \nct = 39\niv = 34047bc39b9c608384dff5b8\nkey = 21218af790428f8024d3e7e1428c9fcf578c216636d60e73\nmsg = e3\nresult = valid\ntag = 7450f55a21e717a1106ea0c11871f5ff\n\n# tcId = 68\naad = \nct = 5d24d0e1a2ee9fce\niv = 4ebc13cf4636cc7c45e560a7\nkey = 3a8bf543c480925632118245bcbf5d01522b987a31a33da3\nmsg = 53fc72e71b59eeb3\nresult = valid\ntag = e770f91a51f5b587a44cd9d3634b9706\n\n# tcId = 69\naad = \nct = db5893dc8da336614aa0ff768d469535\n", "iv = be0326d23bdc2c64648d13f4\nkey = bcb6bc5ee6743df1396a34639327b25809ec9c81dd6a0c0e\nmsg = 80474a3a3b809560eee2ce7a7a33ea07\nresult = valid\ntag = 902c2a8325cb55bc95f0e13cafe9aa8d\n\n# tcId = 70\naad = \nct = 20ebc1f5a2c9f88d1cdb182e81329cc03e\niv = b6be6cd0681235d826aa28ea\nkey = 5e1d28213e092536525bbae09e214af4c891e202b2b4fa4f\nmsg = 53d59433a7db7f41b31ccb6d4a2d789965\nresult = valid\ntag = bc545e91c974a744baeab2dd8ce60960\n\n# tcId = 71\naad = \nct = 1bc99029a09c080140608a62c33bc7ae69ff811fefb20b2d\niv = b022067048505b20946216ef\nkey = 7f672d85e151aa490bc0eec8f66b5e5bee74af11642be3ff\nmsg = ef6412c72b03c643fa02565a0ae2378a9311c11a84065f80\nresult = valid\ntag = 80f09103485f95f86ad1f072a214c55e\n\n# tcId = 72\naad = \nct = b3cec777f807d16b697163d0c6a45d002936714d600a156d7e5365d1aacad0\niv = 6e2ba2833c5dce6becc4f6d8\nkey = f7ace6c3c10c3ff977febe7dc882b8e779ef3a17ef9324a8\nmsg = 2e11e41951c20460c768b0d71ad56e77bec05e0478f99d5b62e799f732e467\nresult = valid\ntag = 11a56edbe2fbbbb2b011c43a62000830\n\n# tcId = 73\naad = \nct = 0a6b84de44cce14255a9cb19169695cf4660489f1e3f605334355828c5c09fb30e\niv = 9015b4bcd6989083046be86d\nkey = a9541a96b86d32b452092e8b92099ea3f45f98ca05ce692b\nmsg = 9d359aad3ff5ce3735a8cffe4f087114d4d6c5e01dceb1969f40c8e0db6bb90281\nresult = valid\ntag = a19a60105fc7a03be1783f558ea23e9c\n\n# tcId = 74\naad = \nct = 8fcea9e2faa523298472b5583e356d1875393ea3bc1b4f8ea4aad597147a7ca94e2609fe6bf0ab861e0631a3124eb15d0de265ef11a33e4507e30770ce37bbb4b6c3\niv = 14a6281a43b4eb056a67b9e6\nkey = 239195b58668eb89636b1ec2b331336946369fc6c87b8849\nmsg = 39d873d4cad71cb252784bd14648a494ceb517eb9e3e6f32d19bd18dfaf877c7aec22103d242993ed7bab123326110dfdb7229143a0c601e16aa4ecdde808cd83bb2\nresult = valid\ntag = a4456828b49cdbf8f3c200429c339a89\n\n# tcId = 75\naad = 91e10ac5636fe99b\nct = \niv = c4ca2d678e51742ec5e560ab\nkey = 03b4675851b78b69fb7b5589882e718b075e9a5402b520fb\nmsg = \nresult = valid\ntag = 937f15ffd1ccd645d9c7cdd6677311cd\n\n# tcId = 76\naad = 7320367d5b070559\nct = 912d05c402383950e1c5a5188e6241d8\niv = 447dd09a23708f3b6664e15b\nkey = 400eec9b06a80a8403d45dae5d58cc917bc854f51cd3ce0d\nmsg = b784925a695f0ed14ca40249c1fd5d1a\nresult = valid\ntag = ab309be2c05c941fbfb338ba064b19a1\n\n# tcId = 77\naad = 27702950960b9c79\nct = 7830446f333057d996a1a79b21c68d8b43\niv = 5ead03aa8c720d21b77075db\nkey = e258b117c2fdd75587f07b400ae4af3e673a51dcf761e4ca\nmsg = afe96113a684bc52a6d962cf2724f6791d\nresult = valid\ntag = 72ac478a66f5637563f1f12c1d0267ca\n\n# tcId = 78\naad = f1\nct = \niv = 8f015ece4e0338e782fa3a2f\nkey = 6c2a03e9ed8e421e07dfc36b99c0d0dc9bb874ea3af8a8b7\nmsg = \nresult = valid\ntag = 9226c4c39166df5af4e0c91b64b463a2\n\n# tcId = 79\naad = 3c09\nct = \niv = 9307317d2f423b57b3720f8f\nkey = 1486b5f150524cc601b2ea7da47d7c8afb06d6420dd33f8d\nmsg = \nresult = valid\ntag = 3600e06def585e2012350efe047826e9\n\n# tcId = 80\naad = c1a13c74c11cb8\nct = \niv = 3ec61e9c166d678399239152\nkey = e09c83ff0fc0b6a30f938e50e26685247e9ded2e7d6dbc7c\nmsg = \nresult = valid\ntag = 9f5b3e48ddda9af3751501509c940ac1\n\n# tcId = 81\naad = 3596ce989ff975f3250e6c9eced25b\nct = \niv = 9c460abf56292dcb1b35b3b4\nkey = d0c688c52580d8f800aca34fa74cec487b671aaf85027b9b\nmsg = \nresult = valid\ntag = cda434c229e54bf9bfd54c8d8ce4730c\n\n# tcId = 82\naad = e8b1c6cc6c45105e0c32587a0de369e3\nct = \niv = 0e872de58ad10da248403f21\nkey = 1892dbd7e6b3fe18ebdc81bb271ab03a8f32af04f13300d2\nmsg = \nresult = valid\ntag = 0c7e14dc49a81e6be123b9cfbb281787\n\n# tcId = 83\naad = 1014ed7889694cff767876c069ae1f9185\nct = \niv = 316d38a90019b9a37ad080b7\nkey = ef7992b0f8ec7a101d34000100eb7d9b2eaee333d0aa2ff8\nmsg = \nresult = valid\ntag = 17ff8e799760558f1d4cf8927d5ec699\n\n# tcId = 84\naad = 90a7357519e35e8dbd8976d4b36710ffc1eb0d9a4ae7d5315ae7324eb1d18c\nct = \niv = 5a31a3a026786c49db9d0958\nkey = e4570815a149599d13bd8dcaadbec93cf09019baa2d4070b\nmsg = \nresult = valid\ntag = 06ccbf767e0a63c89d50b8141187a555\n\n# tcId = 85\naad = f5368b9d8fdc1efab2b17a45f4604245983572f8c167aa31fa3f530f1c5e1781\nct = \niv = 3f5def0880b889db0b3f2bf0\nkey = 9f0c076b0630caa10e7bdc07dcdc89a270f03930997ade0b\nmsg = \nresult = valid\ntag = 334c1325fa969a07179011d2f8613636\n\n# tcId = 86\naad = dfb71f25e7f11cca17702eb89a184e57f22e4ea4741ff603abc901fa026bde7ce1107e2ffba0a0a0f24f47ee627832ee5bc2192c18845630009910c07f8d0ab451\nct = \niv = b05ec49bc405eb7e97294f19\nkey = 803f4ebbed8b1a4f348713461c0eb0bd30caec55a1e71628\nmsg = \nresult = valid\ntag = 2b71d2a81f4c6ea267a9865094fe20e9\n\n# tcId = 87\naad = 6d\nct = a42863b95abea391940adac7fe0c4143\niv = 80765eac2281969cba569ce7\nkey = da6e3df6735f632e035ab8f10c37b5f00a40e18b17778a85\nmsg = 3d8765df3a06f5248b1aaa54123b86bd\nresult = valid\ntag = 122b46f81a0b6e92cda1950ce6fe026e\n\n# tcId = 88\naad = 27ff\nct = 3418154afc95d05569ee6fe4db82eb6e\niv = 8b1e57f98ea4e77deae4576c\nkey = 54e171cf90729c77d500e1d2533360e841e260894576b129\nmsg = 2d716366f2873860d5043700f1e9a9d8\nresult = valid\ntag = 0a734bac17843b8573fbfeba4a5fc5d4\n\n# tcId = 89\naad = 068d940e26b678\nct = ba340926de500d01ae3dff2e90560816\niv = 57c8786e66d8b0bec33604b0\nkey = 992cabb64f12210c8b0b14d73d39317ddb2b8a628ac35106\nmsg = 9e7692f12132cdd53f50531651417bd2\nresult = valid\ntag = db9dba31a03019ce88ce741c03940660\n\n# tcId = 90\naad = f6a28d27686adcbf9ff8ab80ecc1c1\nct = b19be8ba6ebcdb74d33c2dbdfdc02074\niv = f47f6b65d660f10c043ea641\nkey = 89be6495c917bd7af0a3b7a6c8a4c6b5cade766d32de3604\nmsg = c3c50f4b38aa3751f4910a44675d37e5\nresult = valid\ntag = 93bb717061330accc718b4a8ef05ab20\n\n# tcId = 91\naad = 7d4d7c273a9aa0f35d1f91570141db54\nct = eb45ae2980d996f5023593f762d37051\niv = ea16c104bce5b7edd5a25a46\nkey = 8ea954552417516c972e4311692d658dd7ac9a7fd6f3d02c\nmsg = 0fc6cc800a5786e63a4546fb33887af9\nresult = valid\ntag = 4acc06242cc4ec4ba36e8bfbe84f3d5d\n\n# tcId = 92\naad = cf75dd4536d00f11eda40db4d252e172e3\nct = 5a8374391adc22e8c066557d9ff586cf\niv = f3723b9ab728c99bbd6f2304\nkey = dfa7ef72302dfbcd2648b88958fe0f049f1d60143d86e395\nmsg = 20b3883244300a82094ddb9b3d1efb81\nresult = valid\ntag = d4a111d611efa63f0c3f08b2fbb3b0ac\n\n# tcId = 93\naad = 9020b56256bcb02c690720e3239d325d259f1898ea05170e315c144960d263\nct = e84471601fb8b4dbbdc80d56e37f69b8\niv = b1beee8afb00e01a9cbf5973\nkey = b63b52d1d159a17596dfbd9be5c5088699d94b9c5d95c22d\nmsg = dfb417903c6d4827500a3eca2184fe1c\nresult = valid\ntag = 52089cb4e6c11bd764ae7d4438cfd1f8\n\n# tcId = 94\naad = 2d688b3b3311770579dd064614a7d11b17a16953bd9700759b35a5031a2d8bd0\nct = d13cceb8376eb423f5b2ea257c118fb5\niv = 2a56235f079d53a3100702d4\nkey = aaf64023f5762c4a54c3eb0ef3bb2ebd23ceaf38b3e0285f\nmsg = 34aec5a65795cbeedac2ee6fd7765c6f\nresult = valid\ntag = 7b6a3c76fd52930a989f034e5dfe074b\n\n# tcId = 95\naad = b497221c7fad55a06ea9f56f39b3609330edc467b79cbf3353636bceb784b60ec63a836074ceb48624a4a41ac0496d5adfe2989313d7412b9c2d89cafd9cd5a734\nct = 994bb34470d4ddb7bb7a3c3abb5da3c5\niv = b2b42fa60a2a80412eecc7fc\nkey = b521e4fa92eb46fd4916c71e3f999027aaf21466fad5f96e\nmsg = a3a80ac0f5b46597a7f4a583dda02124\nresult = valid\ntag = 02550e2b278c723672a01e4b6a46afc7\n\n# tcId = 96\naad = \nct = \niv = 3d9281c4acfc72387346fd92\nkey = 7757754aeccf85c91e48e4d4970d4d62dae94cf44f9ff026\nmsg = \nresult = valid\ntag = da9ae60a12aa6f926cf46d2a335faac7\n\n# tcId = 97\naad = 8b388e2e7225c087300042f6024a111f\nct = \niv = 2d2a5c8b17212d4c44ced459\nkey = a0cac7e83c7eba22365256cb8f237039b94f1a269263648e\nmsg = \nresult = valid\ntag = 84043498ce07d8742330c605d96d966c\n\n# tcId = 98\naad = \nct = a322f75800fcaff691251762ed39fb39\niv = ec1b6d7f097a2cad8cbc9fe9\nkey = fa07aa3932b901696269c8f8bf56662f82dff2957a4aca35\nmsg = d9a689793c947968f07d4ba2eb1c25eb\nresult = valid\ntag = 8a734892213383ac54dc2c1f48841938\n\n# tcId = 99\naad = aa13c109b2f57f700a89931de75b7080\nct = 982b14f66482d0c98371e08078efa012\niv = ba9538ad1575a1df7879782b\nkey = f997a79b63b1cf641483706097ff4abeeba13962db056206\nmsg = f376943459b6041ed5232d7b9fb5e9e6\nresult = valid\ntag = 14f1b2b24575a1a33206acdf500e9d46\n\n# tcId = 100\naad = \nct = 3450a992a6fbce9ce29f6c4f9f41c36ef6\niv = f511d16e972e138d5ae8ddac\nkey = d7c6ea0a285a5d8c5964773080488967e7e65935890c3265\nmsg = 5034fa6da3a9ee380be7e8d02605ac2023\nresult = valid\ntag = ed6ca1ff3ea1a7ca8819501139f8a0b8\n\n# tcId = 101\naad = 404059189f1eaf31b2e505fec08c7053\nct = 6c26392899e365450054bf0ab33f983f27\niv = c5b45df3a5bf4ef539c3dbd8\nkey = b29346a95c3b653c9bed023df2e03b6de45b8de1a4067d86\nmsg = 22e6281fba3e5b056871a98dd2ef0e164d\nresult = valid\ntag", @@ -7389,9 +7699,9 @@ static const char *kData244[] = { "6]\n\n# tcId = 483\n# Nonce is too long\naad = \nct = 681841a0a013923907c669efd3ffd069\niv = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 054cd6f1cda1b1bf91e0100f\nflags = InvalidNonceSize\n\n[ivSize = 512]\n[keySize = 256]\n[tagSize = 96]\n\n# tcId = 484\n# Very long nonce\naad = \nct = e73cc2ee050a0e7b345aeb1000c481c3\niv = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 182dabaff0400de708746b6a\nflags = LongIv,InvalidNonceSize\n\n[ivSize = 1024]\n[keySize = 256]\n[tagSize = 96]\n\n# tcId = 485\n# Very long nonce\naad = \nct = e73cc2ee050a0e7b345aeb1000c481c3\niv = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 182dabaff0400de708746b6a\nflags = LongIv,InvalidNonceSize\n\n[ivSize = 2144]\n[keySize = 256]\n[tagSize = 96]\n\n# tcId = 486\n# Very long nonce\naad = \nct = e73cc2ee050a0e7b345aeb1000c481c3\niv = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 182dabaff0400de708746b6a\nflags = LongIv,InvalidNonceSize\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 16]\n\n# tcId = 487\n# Invalid tag size\naad = \nct = d3dab1ee494cc229099d6cac7df14add\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 198c\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 24]\n\n# tcId = 488\n# Invalid tag size\naad = \nct = d3dab1ee494cc229099d6cac7df14add\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 198c08\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 40]\n\n# tcId = 489\n# Invalid tag size\naad = \nct = d3dab1ee494cc229099d6cac7df14add\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 231a2d8f6a\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 56]\n\n# tcId = 490\n# Invalid tag size\naad = \nct = d3dab1ee494cc229099d6cac7df14add\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b1bbf3883507cd\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 72]\n\n# tcId = 491\n# Invalid tag size\naad = \nct = d3dab1ee494cc229099d6cac7df14add\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = cd0ae63f3a30f7fb5b\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 88]\n\n# tcId = 492\n# Invalid tag size\naad = \nct = d3dab1ee494cc229099d6cac7df14add\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 535e32ac416816615e5a20\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 104]\n\n# tcId = 493\n# Invalid tag size\naad = \nct = d3dab1ee494cc229099d6cac7df14add\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = a6c58458d3969da9cb0849f95e\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 120]\n\n# tcId = 494\n# Invalid tag size\naad = \nct = d3dab1ee494cc229099d6cac7df14add\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = f7879fb7fe88dd74cb8e96fda1d2eb\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 192]\n[tagSize = 16]\n\n# tcId = 495\n# Invalid tag size\naad = \nct = 1c49324515a346d424eed6fed9bddc17\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 95eb\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 192]\n[tagSize = 24]\n\n# tcId = 496\n# Invalid tag size\naad = \nct = 1c49324515a346d424eed6fed9bddc17\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 95eb98\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 192]\n[tagSize = 40]\n\n# tcId = 497\n# Invalid tag size\naad = \nct = 1c49324515a346d424eed6fed9bddc17\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3fd40dd8e0\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 192]\n[tagSize = 56]\n\n# tcId = 498\n# Invalid tag size\naad = \nct = 1c49324515a346d424eed6fed9bddc17\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 793ca5d351e68c\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 192]\n[tagSize = 72]\n\n# tcId = 499\n# Invalid tag size\naad = \nct = 1c49324515a346d424eed6fed9bddc17\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 63a0987ffff1313caa\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 192]\n[tagSize = 88]\n\n# tcId = 500\n# Invalid tag size\naad = \nct = 1c49324515a346d424eed6fed9bddc17\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 0ee40f14475b7e28752983\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 192]\n[tagSize = 104]\n\n# tcId = 501\n# Invalid tag size\naad = \nct = 1c49324515a346d424eed6fed9bddc17\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 40a4fc82d429a0091c962d7152\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 192]\n[tagSize = 120]\n\n# tcId = 502\n# Invalid tag size\naad = \nct = 1c49324515a346d424eed6fed9bddc17\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = f8f9bdc6b8506afd3ae54a0a67e185\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 16]\n\n# tcId = 503\n# Invalid tag size\naad = \nct = 3b6829d5deb47ca9f10abf481564aee1\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 8f8b\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 24]\n\n# tcId = 504\n# Invalid tag size\naad = \nct = 3b6829d5deb47ca9f10abf481564aee1\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 8f8b32\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 40]\n\n# tcId = 505\n# Invalid tag size\naad = \nct = 3b6829d5deb47ca9f10abf481564aee1\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = a94e19f34c\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 56]\n\n# tcId = 506\n# Invalid tag size\naad = \nct = 3b6829d5deb47ca9f10abf481564aee1\niv = 464748494a4b4c4d4e4f5051\nkey = 000102", "030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 5e90218caca470\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 72]\n\n# tcId = 507\n# Invalid tag size\naad = \nct = 3b6829d5deb47ca9f10abf481564aee1\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 385cef2c2599faa960\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 88]\n\n# tcId = 508\n# Invalid tag size\naad = \nct = 3b6829d5deb47ca9f10abf481564aee1\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = e81c270020edd93ba7e564\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 104]\n\n# tcId = 509\n# Invalid tag size\naad = \nct = 3b6829d5deb47ca9f10abf481564aee1\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = c5d5f29af5c0db444ac2618b9d\nflags = InvalidTagSize\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 120]\n\n# tcId = 510\n# Invalid tag size\naad = \nct = 3b6829d5deb47ca9f10abf481564aee1\niv = 464748494a4b4c4d4e4f5051\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = f2f6d8b6ab69c8e10039b5754f5537\nflags = InvalidTagSize\n\n", }; -static const size_t kLen245 = 52732; +static const size_t kLen250 = 52732; -static const char *kData245[] = { +static const char *kData250[] = { "# Imported from Wycheproof's aes_cmac_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: AES-CMAC\n# Generator version: 0.8r12\n\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 1\n# empty message\nkey = e34f15c7bd819930fe9d66e0c166e61c\nmsg = \nresult = valid\ntag = d47afca1d857a5933405b1eb7a5cb7af\n\n# tcId = 2\n# short message\nkey = e1e726677f4893890f8c027f9d8ef80d\nmsg = 3f\nresult = valid\ntag = 15f856bbed3b321952a584b3c4437a63\n\n# tcId = 3\n# short message\nkey = b151f491c4c006d1f28214aa3da9a985\nmsg = 27d9\nresult = valid\ntag = bdbbebac982dd62b9f682618a6a604e9\n\n# tcId = 4\n# short message\nkey = c36ff15f72777ee21deec07b63c1a0cd\nmsg = 50b428\nresult = valid\ntag = be0c3ede157568af394023eb9a7cc983\n\n# tcId = 5\n# short message\nkey = 32b9c5c78c3a0689a86052420fa1e8fc\nmsg = 0b9262ec\nresult = valid\ntag = 57e1506856c55dd32cd9ca821adb6c81\n\n# tcId = 6\n# short message\nkey = 43151bbaef367277ebfc97509d0aa49c\nmsg = eaa91273e7\nresult = valid\ntag = e01adc3be6a7621824232c4285dd35b9\n\n# tcId = 7\n# short message\nkey = 481440298525cc261f8159159aedf62d\nmsg = 6123c556c5cc\nresult = valid\ntag = a281e0d2d5378dfdcc1310fd9782ca56\n\n# tcId = 8\n# short message\nkey = 9ca26eb88731efbf7f810d5d95e196ac\nmsg = 7e48f06183aa40\nresult = valid\ntag = fc81761f2f7b4ce13b53d36e32677332\n\n# tcId = 9\n# short message\nkey = 48f0d03e41cc55c4b58f737b5acdea32\nmsg = f4a133aa6d5985a0\nresult = valid\ntag = 1f1cd0327c02e6d00086915937dd61d9\n\n# tcId = 10\n# short message\nkey = 1c958849f31996b28939ce513087d1be\nmsg = b0d2fee11b8e2f86b7\nresult = valid\ntag = 555f462151f7dd16de698d639fb26760\n\n# tcId = 11\n# short message\nkey = 39de0ebea97c09b2301a90009a423253\nmsg = 81e5c33b4c620852f044\nresult = valid\ntag = 9b004f15b7f6f366374954e64bc58f5f\n\n# tcId = 12\n# short message\nkey = 91656d8fc0aced60ddb1c4006d0dde53\nmsg = 7b3e440fe566790064b2ec\nresult = valid\ntag = 76672ed16c29be449e0c80785cc38e89\n\n# tcId = 13\n# short message\nkey = af7d5134720b5386158d51ea126e7cf9\nmsg = 7cc6fcc925c20f3c83b5567c\nresult = valid\ntag = 2dc5c88cf3b80ab6c0199f40be904abc\n\n# tcId = 14\n# short message\nkey = 4ed56753de6f75a032ebabca3ce27971\nmsg = 0c8c0f5619d9f8da5339281285\nresult = valid\ntag = eab4366d97e99a0850f077329ad058c0\n\n# tcId = 15\n# short message\nkey = beba50c936b696c15e25046dffb23a64\nmsg = 821ea8532fbabffb6e3d212e9b46\nresult = valid\ntag = 22f33cab09c173f75d3401fe44efeead\n\n# tcId = 16\n# short message\nkey = 501d81ebf912ddb87fbe3b7aac1437bc\nmsg = 2368e3c3636b5e8e94d2081adbf798\nresult = valid\ntag = aeb784a3825168ddd61f72d0202125e6\n\n# tcId = 17\nkey = e09eaa5a3f5e56d279d5e7a03373f6ea\nmsg = ef4eab37181f98423e53e947e7050fd0\nresult = valid\ntag = 40facf0e2fb51b73a7472681b033d6dc\n\n# tcId = 18\nkey = 831e664c9e3f0c3094c0b27b9d908eb2\nmsg = 26603bb76dd0a0180791c4ed4d3b058807\nresult = valid\ntag = a8144c8b24f2aa47d9c160cff4ab1716\n\n# tcId = 19\nkey = 549bd282ee21b4d7c3b1d02e3ee20ef7\nmsg = d84bf73c5eecbd38444f1a73556e2fa3253f4c54d6916545\nresult = valid\ntag = 7ed458afe02f4a513f59715b664b1bbe\n\n# tcId = 20\nkey = 9bd3902ed0996c869b572272e76f3889\nmsg = a7ba19d49ee1ea02f098aa8e30c740d893a4456ccc294040484ed8a00a55f93e\nresult = valid\ntag = 45082218c2d05eef32247feb1133d0a3\n\n# tcId = 21\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 96dd6e5a882cbd564c39ae7d1c5a31aa\n\n# tcId = 22\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 43802eb1931f0032afe984443738cd31\n\n# tcId = 23\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7acfbbca7a2ea68b966fc5399f74809e\n\n# tcId = 24\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 95dd6e5a882cbd564c39ae7d1c5a31aa\n\n# tcId = 25\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 40802eb1931f0032afe984443738cd31\n\n# tcId = 26\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 79cfbbca7a2ea68b966fc5399f74809e\n\n# tcId = 27\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 17dd6e5a882cbd564c39ae7d1c5a31aa\n\n# tcId = 28\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = c2802eb1931f0032afe984443738cd31\n\n# tcId = 29\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = fbcfbbca7a2ea68b966fc5399f74809e\n\n# tcId = 30\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dc6e5a882cbd564c39ae7d1c5a31aa\n\n# tcId = 31\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42812eb1931f0032afe984443738cd31\n\n# tcId = 32\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcebbca7a2ea68b966fc5399f74809e\n\n# tcId = 33\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6eda882cbd564c39ae7d1c5a31aa\n\n# tcId = 34\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802e31931f0032afe984443738cd31\n\n# tcId = 35\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbb4a7a2ea68b966fc5399f74809e\n\n# tcId = 36\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a892cbd564c39ae7d1c5a31aa\n\n# tcId = 37\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1921f0032afe984443738cd31\n\n# tcId = 38\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7b2ea68b966fc5399f74809e\n\n# tcId = 39\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a8a2cbd564c39ae7d1c5a31aa\n\n# tcId = 40\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1911f0032afe984443738cd31\n\n# tcId = 41\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca782ea68b966fc5399f74809e\n\n# tcId = 42\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbdd64c39ae7d1c5a31aa\n\n# tcId = 43\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f00b2afe984443738cd31\n\n# tcId = 44\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea60b966fc5399f74809e\n\n# tcId = 45\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564d39ae7d1c5a31aa\n\n# tcId = 46\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032aee984443738cd31\n\n# tcId = 47\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b976fc5399f74809e\n\n# tcId = 48\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd56cc39ae7d1c5a31aa\n\n# tcId = 49\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f00322fe984443738cd31\n\n# tcId = 50\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b166fc5399f74809e\n\n# tcId = 51\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c19ae7d1c5a31aa\n\n# tcId = 52\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afc984443738cd31\n\n# tcId = 53\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = inval", "id\ntag = 7bcfbbca7a2ea68b964fc5399f74809e\n\n# tcId = 54\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39af7d1c5a31aa\n\n# tcId = 55\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe985443738cd31\n\n# tcId = 56\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc4399f74809e\n\n# tcId = 57\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1d5a31aa\n\n# tcId = 58\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443638cd31\n\n# tcId = 59\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399e74809e\n\n# tcId = 60\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1e5a31aa\n\n# tcId = 61\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443538cd31\n\n# tcId = 62\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399d74809e\n\n# tcId = 63\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d9c5a31aa\n\n# tcId = 64\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe98444b738cd31\n\n# tcId = 65\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5391f74809e\n\n# tcId = 66\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1c5a31ab\n\n# tcId = 67\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443738cd30\n\n# tcId = 68\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399f74809f\n\n# tcId = 69\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1c5a31a8\n\n# tcId = 70\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443738cd33\n\n# tcId = 71\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399f74809c\n\n# tcId = 72\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1c5a31ea\n\n# tcId = 73\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443738cd71\n\n# tcId = 74\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399f7480de\n\n# tcId = 75\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1c5a312a\n\n# tcId = 76\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443738cdb1\n\n# tcId = 77\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399f74801e\n\n# tcId = 78\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 96dd6e5a882cbd564d39ae7d1c5a31aa\n\n# tcId = 79\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 43802eb1931f0032aee984443738cd31\n\n# tcId = 80\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7acfbbca7a2ea68b976fc5399f74809e\n\n# tcId = 81\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6eda882cbdd64c39ae7d1c5a31aa\n\n# tcId = 82\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802e31931f00b2afe984443738cd31\n\n# tcId = 83\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbb4a7a2ea60b966fc5399f74809e\n\n# tcId = 84\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbdd64c39ae7d1c5a312a\n\n# tcId = 85\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f00b2afe984443738cdb1\n\n# tcId = 86\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea60b966fc5399f74801e\n\n# tcId = 87\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 682291a577d342a9b3c65182e3a5ce55\n\n# tcId = 88\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = bd7fd14e6ce0ffcd50167bbbc8c732ce\n\n# tcId = 89\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8430443585d1597469903ac6608b7f61\n\n# tcId = 90\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 91\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 92\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 93\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 94\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 95\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 96\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 175deeda08ac3dd6ccb92efd9cdab12a\n\n# tcId = 97\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = c200ae31139f80b22f6904c4b7b84db1\n\n# tcId = 98\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = fb4f3b4afaae260b16ef45b91ff4001e\n\n# tcId = 99\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 96dc6f5b892dbc574d38af7c1d5b30ab\n\n# tcId = 100\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 43812fb0921e0133aee885453639cc30\n\n# tcId = 101\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7acebacb7b2fa78a976ec4389e75819f\n\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 102\n# empty message\nkey = 3d6bf9edae6d881eade0ff8c7076a4835b71320c1f36b631\nmsg = \nresult = valid\ntag = a8dd15fe2ce3495ec5b666744ec29220\n\n# tcId = 103\n# short message\nkey = 915429743435c28997a33b33b6574a953d81dae0e7032e6a\nmsg = 58\nresult = valid\ntag = e13b3f7f7f510c3a059df7a68c7e2ad5\n\n# tcId = 104\n# short message\nkey = f0c288ba26b284f9fb321b444a6517b3cdda1a799d55fdff\nmsg = 0f7e\nresult = valid\ntag = 06ef847f5f9dbf03a4f283da8c400220\n\n# tcId = 105\n# short message\nkey = 6b55e4d4fd6847a80a6bfb0dcc0aa93f9fd797fc5c50292e\nmsg = 33f530\nresult = valid\ntag = dd135053a47ca8f282c299e83b8c", "57c4\n\n# tcId = 106\n# short message\nkey = 1eb21a9e995a8e45c9e71ecbd6fe615b3e0318007c64b644\nmsg = 3aa73c48\nresult = valid\ntag = 1e93fff846934a6eea0575eecb0f0e1f\n\n# tcId = 107\n# short message\nkey = 710e2d5d4a9f0bc7e50796655e046a18cc5769d7764355da\nmsg = 7e4c690a88\nresult = valid\ntag = 016d4df06c68a6a788a9ea052e1b550d\n\n# tcId = 108\n# short message\nkey = d8c09ea400779b63e774bdacd0cb7b5dd6f736ca23d52acf\nmsg = e9520280973b\nresult = valid\ntag = 8030ae9f98f5d20c6089f6b1bd87c29e\n\n# tcId = 109\n# short message\nkey = 8e67e9a0863b55bed408866f1cbc05357abe3f9d79f406f2\nmsg = 4880b412287a0b\nresult = valid\ntag = bcaf50785f062a8fb8dd3c2c4cead2e1\n\n# tcId = 110\n# short message\nkey = 28d8da67806410e5565bcc5a9d7ab9fb357413fa0158378c\nmsg = 004e3f4a4e6db955\nresult = valid\ntag = c4c2c0876be9eabeb5a956da53846b08\n\n# tcId = 111\n# short message\nkey = dc968dd89fd602bb7eca6f3a8a13e4f59c08d02a514b1934\nmsg = 41a25354efeb1bc3b8\nresult = valid\ntag = f33a62caf397f9aff71fe42941ba41d8\n\n# tcId = 112\n# short message\nkey = 7658951c0f620d82afd92756cc2d7983b79da3e56fdd1b78\nmsg = f0e82fb5c5666f4af49f\nresult = valid\ntag = 4d724d05f3402967eb65ae1e32d5469e\n\n# tcId = 113\n# short message\nkey = d9574c3a221b986690931faac5258d9d3c52362b2cb9b054\nmsg = 178ea8404ba54ee4e4522c\nresult = valid\ntag = 64a0e0b6757309ab58d74f72c310e473\n\n# tcId = 114\n# short message\nkey = 704409bab28085c44981f28f75dd143a4f747106f63f262e\nmsg = cda5709e7f115624e74ab031\nresult = valid\ntag = 6ab2074334be14a95b6a241f897a43de\n\n# tcId = 115\n# short message\nkey = d8d06ef6a53bbff5c8f12d791b8f4c67e574bf440736d1cc\nmsg = a1171eae1979f48345dd9485a0\nresult = valid\ntag = 7aa57cf98b24897cc9230e3316758e61\n\n# tcId = 116\n# short message\nkey = 71129e781613f39d9ac39fbde2628b44c250c14deb5ef9e2\nmsg = 967593cc64bcbf7f3c58d04cb82b\nresult = valid\ntag = 6cc488b0a40eadbe4bcee2623239d126\n\n# tcId = 117\n# short message\nkey = 850fc859e9f7b89a367611dee6698f33962d8245ca8dc331\nmsg = 586f4f171af116519061a8e0e77940\nresult = valid\ntag = fb11a360c9776991d73d6e41d07710a2\n\n# tcId = 118\nkey = f4bfa5aa4f0f4d62cf736cd2969c43d580fdb92f2753bedb\nmsg = 0e239f239705b282ce2200fe20de1165\nresult = valid\ntag = ab20a6cf60873665b1d6999b05c7f9c6\n\n# tcId = 119\nkey = cfd3f68873d81a27d2bfce876c79f6e609074dec39e34614\nmsg = b1973cb25aa87ef9d1a8888b0a0f5c04c6\nresult = valid\ntag = b95a016b83a0ae4194023333c8a7345a\n\n# tcId = 120\nkey = 648a44468d67bb6744b235ee7a3fcd6ed4bdc29ec5b5fa1a\nmsg = c59d0d6981cca1be1d5519fc7881e6d230f39f6c12a9e827\nresult = valid\ntag = a1b96272ae7f9aef567271795f21d1d3\n\n# tcId = 121\nkey = 9d11abc1fcb248a436598e695be12c3c2ed90a18ba09d62c\nmsg = aa5182cae2a8fb068c0b3fb2be3e57ae523d13dffd1a944587707c2b67447f3f\nresult = valid\ntag = 8597d9a04d1c271d61d42f007b435175\n\n# tcId = 122\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ed12390ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 123\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c81307df60859acb911c7be61be7ca90\n\n# tcId = 124\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f91bde0069a6e389573bf04e7cde688c\n\n# tcId = 125\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ee12390ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 126\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = cb1307df60859acb911c7be61be7ca90\n\n# tcId = 127\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = fa1bde0069a6e389573bf04e7cde688c\n\n# tcId = 128\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = 6c12390ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 129\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = 491307df60859acb911c7be61be7ca90\n\n# tcId = 130\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 781bde0069a6e389573bf04e7cde688c\n\n# tcId = 131\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec13390ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 132\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91207df60859acb911c7be61be7ca90\n\n# tcId = 133\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81ade0069a6e389573bf04e7cde688c\n\n# tcId = 134\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12398ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 135\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c913075f60859acb911c7be61be7ca90\n\n# tcId = 136\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde8069a6e389573bf04e7cde688c\n\n# tcId = 137\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea1a7ed15d9d37a6eca1fc990\n\n# tcId = 138\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df61859acb911c7be61be7ca90\n\n# tcId = 139\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0068a6e389573bf04e7cde688c\n\n# tcId = 140\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea2a7ed15d9d37a6eca1fc990\n\n# tcId = 141\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df62859acb911c7be61be7ca90\n\n# tcId = 142\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde006ba6e389573bf04e7cde688c\n\n# tcId = 143\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed95d9d37a6eca1fc990\n\n# tcId = 144\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859a4b911c7be61be7ca90\n\n# tcId = 145\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e309573bf04e7cde688c\n\n# tcId = 146\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d8d37a6eca1fc990\n\n# tcId = 147\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb901c7be61be7ca90\n\n# tcId = 148\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389563bf04e7cde688c\n\n# tcId = 149\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed1559d37a6eca1fc990\n\n# tcId = 150\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb111c7be61be7ca90\n\n# tcId = 151\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389d73bf04e7cde688c\n\n# tcId = 152\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9f37a6eca1fc990\n\n# tcId = 153\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb913c7be61be7ca90\n\n# tcId = 154\n# Flipped bit 77 in", @@ -7400,9 +7710,9 @@ static const char *kData245[] = { " d609717c3a4ef822ea200b297d2accec\n\n# tcId = 246\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e210cae26dad29bba32d\n\n# tcId = 247\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101e0089727691b7fb\n\n# tcId = 248\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2eb200b297d2accec\n\n# tcId = 249\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cbe26dad29bba32d\n\n# tcId = 250\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0109f0089727691b7fb\n\n# tcId = 251\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a26a200b297d2accec\n\n# tcId = 252\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e2904ae26dad29bba32d\n\n# tcId = 253\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f2089727691b7fb\n\n# tcId = 254\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea000b297d2accec\n\n# tcId = 255\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cac26dad29bba32d\n\n# tcId = 256\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0088727691b7fb\n\n# tcId = 257\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200a297d2accec\n\n# tcId = 258\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26cad29bba32d\n\n# tcId = 259\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727791b7fb\n\n# tcId = 260\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297c2accec\n\n# tcId = 261\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad28bba32d\n\n# tcId = 262\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727491b7fb\n\n# tcId = 263\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297f2accec\n\n# tcId = 264\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad2bbba32d\n\n# tcId = 265\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f008972f691b7fb\n\n# tcId = 266\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b29fd2accec\n\n# tcId = 267\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dada9bba32d\n\n# tcId = 268\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727691b7fa\n\n# tcId = 269\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297d2acced\n\n# tcId = 270\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad29bba32c\n\n# tcId = 271\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727691b7f9\n\n# tcId = 272\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297d2accee\n\n# tcId = 273\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad29bba32f\n\n# tcId = 274\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727691b7bb\n\n# tcId = 275\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297d2accac\n\n# tcId = 276\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad29bba36d\n\n# tcId = 277\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727691b77b\n\n# tcId = 278\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297d2acc6c\n\n# tcId = 279\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad29bba3ad\n\n# tcId = 280\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6af0a293d8cba0101e0089727691b7fb\n\n# tcId = 281\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d709717c3a4ef8a2eb200b297d2accec\n\n# tcId = 282\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58ee3f3b5f83e290cbe26dad29bba32d\n\n# tcId = 283\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a213d8cba0901f0089727691b7fb\n\n# tcId = 284\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d60971fc3a4ef822ea200b297d2accec\n\n# tcId = 285\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3fbb5f83e210cae26dad29bba32d\n\n# tcId = 286\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0901f0089727691b77b\n\n# tcId = 287\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef822ea200b297d2acc6c\n\n# tcId = 288\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee", "3f3b5f83e210cae26dad29bba3ad\n\n# tcId = 289\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 940f5d6c27345fefe0ff768d896e4804\n\n# tcId = 290\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = 29f68e83c5b1075d15dff4d682d53313\n\n# tcId = 291\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a611c0c4a07c1d6f351d9252d6445cd2\n\n# tcId = 292\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 293\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 294\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 295\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 296\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 297\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 298\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = eb702213584b20909f8009f2f611377b\n\n# tcId = 299\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = 5689f1fcbace78226aa08ba9fdaa4c6c\n\n# tcId = 300\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d96ebfbbdf0362104a62ed2da93b23ad\n\n# tcId = 301\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6af1a392d9caa1111e0188737790b6fa\n\n# tcId = 302\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d708707d3b4ff9a3eb210a287c2bcded\n\n# tcId = 303\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58ef3e3a5e82e391cbe36cac28baa22c\n\n[keySize = 0]\n[tagSize = 128]\n\n# tcId = 304\n# invalid key size\nkey = \nmsg = 00b9449326d39416\nresult = invalid\ntag = \n\n[keySize = 8]\n[tagSize = 128]\n\n# tcId = 305\n# invalid key size\nkey = 0f\nmsg = 4538b79a1397e2aa\nresult = invalid\ntag = \n\n[keySize = 64]\n[tagSize = 128]\n\n# tcId = 306\n# invalid key size\nkey = a88e385af7185148\nmsg = dc63b7ef08096e4f\nresult = invalid\ntag = \n\n[keySize = 160]\n[tagSize = 128]\n\n# tcId = 307\n# invalid key size\nkey = 003a228008d390b645929df73a2b2bdd8298918d\nmsg = ad1d3c3122ab7ac6\nresult = invalid\ntag = \n\n[keySize = 320]\n[tagSize = 128]\n\n# tcId = 308\n# invalid key size\nkey = 94baaac150e2645ae1ec1939c7bcefb73f6edb146fae02289b6c6326ff39bc265d612bef2727fa72\nmsg = e3f75a886c4a5591\nresult = invalid\ntag = \n\n", }; -static const size_t kLen246 = 44166; +static const size_t kLen251 = 44166; -static const char *kData246[] = { +static const char *kData251[] = { "# Imported from Wycheproof's aes_gcm_siv_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: AES-GCM-SIV\n# Generator version: 0.8r12\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 1\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = \niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = \nresult = valid\ntag = dc20e2d83f25705bb49e439eca56de25\n\n# tcId = 2\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = b5d839330ac7b786\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0100000000000000\nresult = valid\ntag = 578782fff6013b815b287c22493a364c\n\n# tcId = 3\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 7323ea61d05932260047d942\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 010000000000000000000000\nresult = valid\ntag = a4978db357391a0bc4fdec8b0d106639\n\n# tcId = 4\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 743f7c8077ab25f8624e2e948579cf77\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 01000000000000000000000000000000\nresult = valid\ntag = 303aaf90f6fe21199c6068577437a0c4\n\n# tcId = 5\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 84e07e62ba83a6585417245d7ec413a9fe427d6315c09b57ce45f2e3936a9445\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0100000000000000000000000000000002000000000000000000000000000000\nresult = valid\ntag = 1a8e45dcd4578c667cd86847bf6155ff\n\n# tcId = 6\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 3fd24ce1f5a67b75bf2351f181a475c7b800a5b4d3dcf70106b1eea82fa1d64df42bf7226122fa92e17a40eeaac1201b\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 010000000000000000000000000000000200000000000000000000000000000003000000000000000000000000000000\nresult = valid\ntag = 5e6e311dbf395d35b0fe39c2714388f8\n\n# tcId = 7\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 2433668f1058190f6d43e360f4f35cd8e475127cfca7028ea8ab5c20f7ab2af02516a2bdcbc08d521be37ff28c152bba36697f25b4cd169c6590d1dd39566d3f\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 01000000000000000000000000000000020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000\nresult = valid\ntag = 8a263dd317aa88d56bdf3936dba75bb8\n\n# tcId = 8\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 1e6daba35669f427\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0200000000000000\nresult = valid\ntag = 3b0a1a2560969cdf790d99759abd1508\n\n# tcId = 9\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 296c7889fd99f41917f44620\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 020000000000000000000000\nresult = valid\ntag = 08299c5102745aaa3a0c469fad9e075a\n\n# tcId = 10\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = e2b0c5da79a901c1745f700525cb335b\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 02000000000000000000000000000000\nresult = valid\ntag = 8f8936ec039e4e4bb97ebd8c4457441f\n\n# tcId = 11\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 620048ef3c1e73e57e02bb8562c416a319e73e4caac8e96a1ecb2933145a1d71\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0200000000000000000000000000000003000000000000000000000000000000\nresult = valid\ntag = e6af6a7f87287da059a71684ed3498e1\n\n# tcId = 12\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 50c8303ea93925d64090d07bd109dfd9515a5a33431019c17d93465999a8b0053201d723120a8562b838cdff25bf9d1e\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000\nresult = valid\ntag = 6a8cc3865f76897c2e4b245cf31c51f2\n\n# tcId = 13\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 2f5c64059db55ee0fb847ed513003746aca4e61c711b5de2e7a77ffd02da42feec601910d3467bb8b36ebbaebce5fba30d36c95f48a3e7980f0e7ac299332a80\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 02000000000000000000000000000000030000000000000000000000000000000400000000000000000000000000000005000000000000000000000000000000\nresult = valid\ntag = cdc46ae475563de037001ef84ae21744\n\n# tcId = 14\n# draft-irtf-cfrg-gcmsiv-09\naad = 010000000000000000000000\nct = a8fe3e87\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 02000000\nresult = valid\ntag = 07eb1f84fb28f8cb73de8e99e2f48a14\n\n# tcId = 15\n# draft-irtf-cfrg-gcmsiv-09\naad = 010000000000000000000000000000000200\nct = 6bb0fecf5ded9b77f902c7d5da236a4391dd0297\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0300000000000000000000000000000004000000\nresult = valid\ntag = 24afc9805e976f451e6d87f6fe106514\n\n# tcId = 16\n# draft-irtf-cfrg-gcmsiv-09\naad = 0100000000000000000000000000000002000000\nct = 44d0aaf6fb2f1f34add5e8064e83e12a2ada\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 030000000000000000000000000000000400\nresult = valid\ntag = bff9b2ef00fb47920cc72a0c0f13b9fd\n\n# tcId = 17\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = \niv = f46e44bb3da0015c94f70887\nkey = e66021d5eb8e4f4066d4adb9c33560e4\nmsg = \nresult = valid\ntag = a4194b79071b01a87d65f706e3949578\n\n# tcId = 18\n# draft-irtf-cfrg-gcmsiv-09\naad = 46bb91c3c5\nct = af60eb\niv = bae8e37fc83441b16034566b\nkey = 36864200e0eaf5284d884a0e77d31646\nmsg = 7a806c\nresult = valid\ntag = 711bd85bc1e4d3e0a462e074eea428a8\n\n# tcId = 19\n# draft-irtf-cfrg-gcmsiv-09\naad = fc880c94a95198874296\nct = bb93a3e34d3c\niv = afc0577e34699b9e671fdd4f\nkey = aedb64a6c590bc84d1a5e269e4b47801\nmsg = bdc66f146545\nresult = valid\ntag = d6a9c45545cfc11f03ad743dba20f966\n\n# tcId = 20\n# draft-irtf-cfrg-gcmsiv-09\naad = 046787f3ea22c127aaf195d1894728\nct = 4f37281f7ad12949d0\niv = 275d1ab32f6d1f0434d8848c\nkey = d5cc1fd161320b6920ce07787f86743b\nmsg = 1177441f195495860f\nresult = valid\ntag = 1d02fd0cd174c84fc5dae2f60f52fd2b\n\n# tcId = 21\n# draft-irtf-cfrg-gcmsiv-09\naad = c9882e5386fd9f92ec489c8fde2be2cf97e74e93\nct = f54673c5ddf710c745641c8b\niv = 9e9ad8780c8d63d0ab4149c0\nkey = b3fed1473c528b8426a582995929a149\nmsg = 9f572c614b4745914474e7c7\nresult = valid\ntag = c1dc2f871fb7561da1286e655e24b7b0\n\n# tcId = 22\n# draft-irtf-cfrg-gcmsiv-09\naad = 2950a70d5a1db2316fd568378da107b52b0da55210cc1c1b0a\nct = c9ff545e07b88a015f05b274540aa1\niv = ac80e6f61455bfac8308a2d4\nkey = 2d4ed87da44102952ef94b02b805249b\nmsg = 0d8c8451178082355c9e940fea2f58\nresult = valid\ntag = 83b3449b9f39552de99dc214a1190b0b\n\n# tcId = 23\n# draft-irtf-cfrg-gcmsiv-09\naad = 1860f762ebfbd08284e421702de0de18baa9c9596291b08466f37de21c7f\nct = 6298b296e24e8cc35dce0bed484b7f30d580\niv = ae06556fb6aa7890bebc18fe\nkey = bde3b2f204d1e9f8b06bc47f9745b3d1\nmsg = 6b3db4da3d57aa94842b9803a96e07fb6de7\nresult = valid\ntag = 3e377094f04709f64d7b985310a4db84\n\n# tcId = 24\n# draft-irtf-cfrg-gcmsiv-09\naad = 7576f7028ec6eb5ea7e298342a94d4b202b370ef9768ec6561c4fe6b7e7296fa859c21\nct = 391cc328d484a4f46406181bcd62efd9b3ee197d05\niv = 6245709fb18853f68d833640\nkey = f901cfe8a69615a93fdf7a98cad48179\nmsg = e42a3c02c25b64869e146d7b233987bddfc240871d\nresult = valid\ntag = 2d15506c84a9edd65e13e9d24a2a6e70\n\n# tcId = 25\naad = \nct = \niv = 438a547a94ea88dce46c6c85\nkey = bedcfb5a011ebc84600fcb296c15af0d\nmsg = \nresult = valid\ntag = 596d0538e48526be1c991e40cc031073\n\n# tcId = 26\naad = \nct = 4f\niv = b30c084727ad1c592ac21d12\nkey = 384ea416ac3c2f51a76e7d8226346d4e\nmsg = 35\nresult = valid\ntag = 8b2b805fc0885e2b470d9dbe6cb15ed3\n\n# tcId = 27\naad = \nct = 04c7a55f97846e54\niv = b5e006ded553110e6dc56529\nkey = cae31cd9f55526eb038241fc44cac1e5\nmsg = d10989f2c52e94ad\nresult = valid\ntag = 48168ff846356c33032c719b518f18a8\n\n# tcId = 28\naad = \nct = fd9521041b0397a15b0070b93f48a9\niv = ecb0c42f7000ef0e6f95f24d\nkey = dd6197cd63c963919cf0c273ef6b28bf\nmsg = 4dcc1485365866e25ac3f2ca6aba97\nresult = valid\ntag = 09df91414578f7faf757d04ee26ab901\n\n# tcId = 29\naad = \nct = 6eb905287ddfafc32f6b1c10046c089f\niv = 0e1666f2dc652f7708fb8f0d\nkey = ffdf4228361ea1f8165852136b3480f7\nmsg = 25b12e28ac0ef6ead0226a3b2288c800\nresult = valid\ntag = 4ff9f939a77c34b0cb1ee75fcb0dd29a\n\n# tcId = 30\naad = \nct = 6f62bd09d4f36f73e289ab6dd114727fe3\niv = 965ff6643116ac1443a2dec7\nkey = c15ed227dd2e237ecd087eaaaad19ea4\nmsg = fee62fde973fe025ad6b322dcdf3c63fc7\nresult = valid\ntag = ea727c084db2bc948de0928edddd7fcf\n\n# tcId = 31\naad = \nct = 80133a4bea7311f0d3c9835144c37c4ef0", "ef20c8f2e36be1\niv = fbbc04fd6e025b7193eb57f6\nkey = a8ee11b26d7ceb7f17eaa1e4b83a2cf6\nmsg = c08f085e6a9e0ef3636280c11ecfadf0c1e72919ffc17eaf\nresult = valid\ntag = b92f47c1af6713e14fbdf60efebb50c6\n\n# tcId = 32\naad = \nct = 778b308e4ca17607df36c0b94695bc64603173b814701a9f69147b42478a0b1f\niv = a2dbe708db51c68ef02994a6\nkey = 7519588f30f7f08ff98e1beee6a2a783\nmsg = 1851956319256ebb0f9ccaf325a24abfc5c3e90b055e57cdc0c7ab2165ae03b1\nresult = valid\ntag = b75c98952c0aa11958a55c9c2ecf33f5\n\n# tcId = 33\naad = 30\nct = 173ba6370171be47dbb6163a63a3b725\niv = 4bad10c6d84fd43fd13ad36f\nkey = a5b5b6bae45b741fe4663890098f326a\nmsg = 127b150080ec0bc7704e26f4ab11abb6\nresult = valid\ntag = 53aefed6e971d5a1f435f0730a6dd0fd\n\n# tcId = 34\naad = 743e\nct = 959f0ff12481dedc4302ad7a904f9486\niv = 2186a3091237adae83540e24\nkey = 0cecb9f512932d68e2c7c0bc4bd621c8\nmsg = 437aeb94d842283ba57bb758e3d229f0\nresult = valid\ntag = 0215be2ab9b0672a7b82893891057c9c\n\n# tcId = 35\naad = 25591707c004f506f4b51e85e29f6a\nct = 8ae3a16a237f1358ac8cfeb5f4cc2818\niv = 0c908e58cddad69dea1a32c3\nkey = 55e04c122780be52ed9328928039008c\nmsg = 26eb70672eef03667b34cc7d0df05872\nresult = valid\ntag = 28f5aa8a34a9f7c01c17759d142b1bae\n\n# tcId = 36\naad = c07092d799dac2b4c05fbddd04743c34\nct = d5220f6a49d1e4c10d38c77c8156ebd0\niv = c30968c967e53505621628db\nkey = 5f0a1b5f8f8673d566ec7f54e7dca4f2\nmsg = f6538476daf04524cf134309dd84e187\nresult = valid\ntag = 80b50f526286dad22d40984636f0e9ce\n\n# tcId = 37\naad = 3ea12d80f40f34f812479d2ecc13d2d6df\nct = 3e771b9376e1d1cde3d9b73349c958bc\niv = a51c37f467893c1608e56274\nkey = 671a70e883fb0611dffd0b1dd9b8cca2\nmsg = 3baf3edf04dc0c97aae081cdeb08021d\nresult = valid\ntag = ebd3ea678a1e87839a4356584ea89bac\n\n# tcId = 38\naad = 5189ea6f39b2a78c0202fdff146c5cc6bdc7491d4786f80c6c6aef65634c05da\nct = 05b568a589d0a77a8ee9c6f06415c6b6\niv = 52c20979cdaaade573dba650\nkey = 63f03172505d90e94900125cb8a4b0dd\nmsg = 602c98997ee03fd11ce00e92de193977\nresult = valid\ntag = 91ba5089dffb7538199c441728d5f84a\n\n# tcId = 39\n# Testing for ctr overflow\naad = 395f4091b410c373073bcdc79e02d3af\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 010101010101010101010101\nkey = 00112233445566778899aabbccddeeff\nmsg = 43488548d88e6f774bcd2d52c18fbcc933a4e9a9613ff3edbe959ec59522adc098b3133b8d17b9e9dad631ad33752c95\nresult = valid\ntag = 00000000000000000000000000000000\nflags = ConstructedIv\n\n# tcId = 40\n# Testing for ctr overflow\naad = 616b2dff4d665e5f7ab890723dd981b1\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = f012c6a7eb0e8af5bc45e015e7680a693dc709b95383f6a94babec1bc36e4be3cf4f55a31a94f11c6c3f90eed99682bc\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\nflags = ConstructedIv\n\n# tcId = 41\n# Testing for ctr overflow\naad = 387a8997605fd04ae8951c4759087864\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 030303030303030303030303\nkey = 00112233445566778899aabbccddeeff\nmsg = 71ceee58179d6fb968521e9594dbf98cc0040f6aa38fe873c32a9b122d6cbfd51aa4778b3f4f37be7348690d97e2468b\nresult = valid\ntag = fefffffffefffffffefffffffeffffff\nflags = ConstructedIv\n\n# tcId = 42\n# Testing for ctr overflow\naad = 6783b0d5e9d8a2a7274065797097d1ae\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 060606060606060606060606\nkey = 00112233445566778899aabbccddeeff\nmsg = 2e14f9e9a09ea204557367898a80dcad117af3666bea25762b70633a9f3614fbe631ba617c371fd5566d5e613496e69f\nresult = valid\ntag = ffffff7f00112233445566778899aabb\nflags = ConstructedIv\n\n# tcId = 43\n# Testing for ctr overflow\naad = 2933810c146f4f7dd146dd43f35199c6\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 010101010101010101010101\nkey = 00112233445566778899aabbccddeeff\nmsg = 27fac75879c9d87cd52a0793137ba792f6f145148158eb538f2081e09cd0315986a7025045ecbb2ca1bb18a17bfcd567\nresult = valid\ntag = ffffffffffffff7f0011223344556677\nflags = ConstructedIv\n\n# tcId = 44\n# Flipped bit 0 in tag\naad = 27dd62060507dae87c4f93f391ba15f9\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 45\n# Flipped bit 0 in tag\naad = 9ea3371e258288d5a01b15384e2c99ee\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 46\n# Flipped bit 0 in tag\naad = ce24e3ec0fe7b8550d621b71fdb5d0eb\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 47\n# Flipped bit 7 in tag\naad = 1471f354b359c235117febba854a823b\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 48\n# Flipped bit 7 in tag\naad = 11f820294fc9d13f1895d2fb5509913b\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 49\n# Flipped bit 8 in tag\naad = 45e7257b814f09de44177b27b914822f\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 50\n# Flipped bit 8 in tag\naad = 4c49780b5438c4a7ea9795b9856fdae1\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 51\n# Flipped bit 8 in tag\naad = ecc2f2f4142837a34f9cd1fa030a5d7f\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 52\n# Flipped bit 31 in tag\naad = 69c7f5605da8e0684990b087411f8cf5\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 53\n# Flipped bit 31 in tag\naad = 20b346be60e7e97588bf504ce707ce0b\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 54\n# Flipped bit 56 in tag\naad = 3955107da2e9938c6b19bb19ae9fc09f\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 55\n# Flipped bit 56 in tag\naad = b1385d46a8accd7022c142442a0b13e9\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 56\n# Flipped bit 63 in tag\naad = 19b298f3a061a73cb774da927ce11ca2\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 57\n# Flipped bit 63 in tag\naad = bff8c631e61c18a050a523ad4a750a20\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 58\n# Flipped bit 64 in tag\naad = 7b6171302b689c926852163e310f08d4\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 59\n# Flipped bit 88 in tag\naad = 4e79aa30003226402245893e91f2024c\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 60\n# Flipped bit 88 in tag\naad = 9312e1813a05b8682", "555061b05edcef1\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 61\n# Flipped bit 96 in tag\naad = 643684185211af58061022efa360d54b\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 62\n# Flipped bit 96 in tag\naad = 786d8056e26150918e3cbe520cafeb50\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 63\n# Flipped bit 97 in tag\naad = 555036128fa18ecadd090cb772ac0bf3\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 64\n# Flipped bit 97 in tag\naad = a5b43b8e1dbb2bfbda1b625fee4064a7\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 65\n# Flipped bit 120 in tag\naad = ae47cc5d7681dd480c23469c5519b647\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 66\n# Flipped bit 120 in tag\naad = d53dd677184702eaa660f1349195fc04\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 67\n# Flipped bit 120 in tag\naad = dc78584e4599dd4b2fb333db2f9ccb95\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 68\n# Flipped bit 121 in tag\naad = 0bfd9271e79153a8afdb7f3d96fe446f\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 69\n# Flipped bit 121 in tag\naad = 1e0537a95b7200134d0b440657d50fd1\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 70\n# Flipped bit 121 in tag\naad = 7633155df35857258d23b0651d60847c\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 71\n# Flipped bit 126 in tag\naad = ab0a064b473de43598adf81ee297d856\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 72\n# Flipped bit 127 in tag\naad = f62bdc3f4fcb699ee12f6e87dcc704cb\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 73\n# Flipped bit 127 in tag\naad = 1320051031807b8f44e9d2cb1ec6aa92\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 74\n# Flipped bit 127 in tag\naad = 329b813d3ae2225d3e15f97a28037bcc\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 75\n# Flipped bit 0..127 in tag\naad = edc723bedd0078696acdea005c74b841\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 76\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = \niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = \nresult = valid\ntag = 07f5f4169bbf55a8400cd47ea6fd400f\n\n# tcId = 77\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = c2ef328e5c71c83b\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 0100000000000000\nresult = valid\ntag = 843122130f7364b761e0b97427e3df28\n\n# tcId = 78\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 9aab2aeb3faa0a34aea8e2b1\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 010000000000000000000000\nresult = valid\ntag = 8ca50da9ae6559e48fd10f6e5c9ca17e\n\n# tcId = 79\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 85a01b63025ba19b7fd3ddfc033b3e76\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 01000000000000000000000000000000\nresult = valid\ntag = c9eac6fa700942702e90862383c6c366\n\n# tcId = 80\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 4a6a9db4c8c6549201b9edb53006cba821ec9cf850948a7c86c68ac7539d027f\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 0100000000000000000000000000000002000000000000000000000000000000\nresult = valid\ntag = e819e63abcd020b006a976397632eb5d\n\n# tcId = 81\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = c00d121893a9fa603f48ccc1ca3c57ce7499245ea0046db16c53c7c66fe717e39cf6c748837b61f6ee3adcee17534ed5\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 010000000000000000000000000000000200000000000000000000000000000003000000000000000000000000000000\nresult = valid\ntag = 790bc96880a99ba804bd12c0e6a22cc4\n\n# tcId = 82\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = c2d5160a1f8683834910acdafc41fbb1632d4a353e8b905ec9a5499ac34f96c7e1049eb080883891a4db8caaa1f99dd004d80487540735234e3744512c6f90ce\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 01000000000000000000000000000000020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000\nresult = valid\ntag = 112864c269fc0d9d88c61fa47e39aa08\n\n# tcId = 83\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 1de22967237a8132\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 0200000000000000\nresult = valid\ntag = 91213f267e3b452f02d01ae33e4ec854\n\n# tcId = 84\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 163d6f9cc1b346cd453a2e4c\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 020000000000000000000000\nresult = valid\ntag = c1a4a19ae800941ccdc57cc8413c277f\n\n# tcId = 85\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = c91545823cc24f17dbb0e9e807d5ec17\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 02000000000000000000000000000000\nresult = valid\ntag = b292d28ff61189e8e49f3875ef91aff7\n\n# tcId = 86\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 07dad364bfc2b9da89116d7bef6daaaf6f255510aa654f920ac81b94e8bad365\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 0200000000000000000000000000000003000000000000000000000000000000\nresult = valid\ntag = aea1bad12702e1965604374aab96dbbc\n\n# tcId = 87\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = c67a1f0f567a5198aa1fcc8e3f21314336f7f51ca8b1af61feac35a86416fa47fbca3b5f749cdf564527f2314f42fe25\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000\nresult = valid\ntag = 03332742b228c647173616cfd44c54eb\n\n# tcId = 88\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 67fd45e126bfb9a79930c43aad2d36967d3f0e4d217c1e551f59727870beefc98cb933a8fce9de887b1e40799988db1fc3f91880ed405b2dd298318858467c89\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 02000000000000000000000000000000030000000000000000000000000000000400000000000000000000000000000005000000000000000000000000000000\nresult = valid\ntag = 5bde0285037c5de81e5b570a049b62a0\n\n# tcId = 89\n# draft-irtf-cfrg-gcmsiv-09\naad = 010000000000", @@ -7410,9 +7720,9 @@ static const char *kData246[] = { "2030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = d04846a01f472262e60a1cb4cfcbdcb05c3f819628a3a49395c5dae96c434b2417ce071699afa74a60c32c0bafd9c01a\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\nflags = ConstructedIv\n\n# tcId = 118\n# Testing for ctr overflow\naad = 2e34d12622a441b557eeb1d647c6cb73\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 010101010101010101010101\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 79637cee9decf33e3080de3d2c55bd21cd529ba8080b583edb6cfe13cda04bd00debe58b8cd48d6e02a1ecfc4d87923a\nresult = valid\ntag = fefffffffefffffffefffffffeffffff\nflags = ConstructedIv\n\n# tcId = 119\n# Testing for ctr overflow\naad = 0814a95481bf915a4097949e3525c7e7\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 000000000000000000000000\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 6492a73880dac7f36743715b0fc7063d3e46a25044310bba5849ed88bfcb54b0adbe3978040bda849906e1aa09d1a8e3\nresult = valid\ntag = ffffff7f00112233445566778899aabb\nflags = ConstructedIv\n\n# tcId = 120\n# Testing for ctr overflow\naad = b691ef42f2ab8d1b4a581bb08394b13a\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 010101010101010101010101\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 7848d9e872f40bca1b82a4e7185fb75193b3496cc1dc2a72b86ed156ab8389e71687ed25eb6485e66561fa8c39853368\nresult = valid\ntag = ffffffffffffff7f0011223344556677\nflags = ConstructedIv\n\n# tcId = 121\n# Flipped bit 0 in tag\naad = e144878b0bbbf01b75231277e1e0d114\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 122\n# Flipped bit 0 in tag\naad = 0289eaa93eb084107d2088435ef2a0cd\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 123\n# Flipped bit 1 in tag\naad = f3bd6013669b7d9371727fcb1aafea75\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 124\n# Flipped bit 7 in tag\naad = 922e91b2c5016e4303c737d1608ca25f\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 125\n# Flipped bit 7 in tag\naad = 7195dd0addce5dd7014bfddb2f23206f\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 126\n# Flipped bit 7 in tag\naad = 32fc2a53e9678f1fc6d63081c36c6f2c\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 127\n# Flipped bit 8 in tag\naad = c55ba71ee250216f8ecfe822d712dd38\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 128\n# Flipped bit 8 in tag\naad = 5546acf865fc305fbd7ff1092cb9c2c3\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 129\n# Flipped bit 31 in tag\naad = 6b060eebe1843b409a4dfd0be8f86a2b\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 130\n# Flipped bit 31 in tag\naad = c4adb92f1a60eb2faff88675f62a7276\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 131\n# Flipped bit 32 in tag\naad = 70c5a8591f52f869c6415a6d7000e253\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 132\n# Flipped bit 56 in tag\naad = 46c788111083d8913153a6e37e5506a3\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 133\n# Flipped bit 56 in tag\naad = 1ed7665962378cec4039c793a8f744d0\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 134\n# Flipped bit 56 in tag\naad = a0f7587c5862609c6dc983780bcda180\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 135\n# Flipped bit 63 in tag\naad = b5fe79f182cb9f2945208e29513928d1\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 136\n# Flipped bit 63 in tag\naad = c1dbf87e4a586b040c53f6dd9063b4cd\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 137\n# Flipped bit 64 in tag\naad = 845466e603ca85a224693d150ae13ba3\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 138\n# Flipped bit 88 in tag\naad = 90a992a8443d65870b4d8bca85e4a698\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 139\n# Flipped bit 88 in tag\naad = e1737a834410e5fba6cdc1d1f7d12c12\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 140\n# Flipped bit 96 in tag\naad = 445c8fffa3d960e39ca86260c66418d8\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 141\n# Flipped bit 97 in tag\naad = 18cb9f5eede6224fa3fcd525cf9f958b\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 142\n# Flipped bit 97 in tag\naad = 8c4fbca37d2e361856b9f80adf455fa0\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 143\n# Flipped bit 97 in tag\naad = bc517fe140abf2b42eb1cafe8c0715a9\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 144\n# Flipped bit 120 in tag\naad = 617e1c5ef62ed35cf678e670f116ff2f\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff001122", "33445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 145\n# Flipped bit 120 in tag\naad = e71802b7a37e8ef1f001ef0c52c636f2\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 146\n# Flipped bit 120 in tag\naad = be647e37f154d4a8edca5a29ca221cc5\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 147\n# Flipped bit 121 in tag\naad = b3caa01f49c7cbc56c7c92547257957e\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 148\n# Flipped bit 121 in tag\naad = ab0347a2aec4cc4c366583062442ba07\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 149\n# Flipped bit 126 in tag\naad = 62573ef39a27f77b37fb7bfc84e46cee\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 150\n# Flipped bit 126 in tag\naad = 28e3cadfb16834e824642e965588c200\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 151\n# Flipped bit 126 in tag\naad = 7edd2fc15bed224a46dc8608e1766080\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 152\n# Flipped bit 127 in tag\naad = 7e0e03104e2c0ff20ba4c35742180c5b\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 153\n# Flipped bit 127 in tag\naad = 9a24dc75c5ddd3bab57ff532eb86d224\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 154\n# Flipped bit 127 in tag\naad = 3196aec499c15bc043b6866ba0df6e6b\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 155\n# Flipped bit 0..127 in tag\naad = 55a2987aa94bf46ad1b6d253a44c1622\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n", }; -static const size_t kLen247 = 81097; +static const size_t kLen252 = 81097; -static const char *kData247[] = { +static const char *kData252[] = { "# Imported from Wycheproof's aes_gcm_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: AES-GCM\n# Generator version: 0.8r12\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 1\naad = \nct = 26073cc1d851beff176384dc9896d5ff\niv = 028318abc1824029138141a2\nkey = 5b9604fe14eadba931b0ccf34843dab9\nmsg = 001d0c231287c1182784554ca3a21908\nresult = valid\ntag = 0a3ea7a5487cb5f7d70fb6c58d038554\n\n# tcId = 2\naad = 00112233445566778899aabbccddeeff\nct = 49d8b9783e911913d87094d1f63cc765\niv = 921d2507fa8007b7bd067d34\nkey = 5b9604fe14eadba931b0ccf34843dab9\nmsg = 001d0c231287c1182784554ca3a21908\nresult = valid\ntag = 1e348ba07cca2cf04c618cb4d43a5b92\n\n# tcId = 3\naad = aac39231129872a2\nct = eea945f3d0f98cc0fbab472a0cf24e87\niv = 0432bc49ac34412081288127\nkey = aa023d0478dcb2b2312498293d9a9129\nmsg = 2035af313d1346ab00154fea78322105\nresult = valid\ntag = 4bb9b4812519dadf9e1232016d068133\n\n# tcId = 4\naad = \nct = \niv = 438a547a94ea88dce46c6c85\nkey = bedcfb5a011ebc84600fcb296c15af0d\nmsg = \nresult = valid\ntag = 960247ba5cde02e41a313c4c0136edc3\n\n# tcId = 5\naad = \nct = 54\niv = b30c084727ad1c592ac21d12\nkey = 384ea416ac3c2f51a76e7d8226346d4e\nmsg = 35\nresult = valid\ntag = 7c1e4ae88bb27e5638343cb9fd3f6337\n\n# tcId = 6\naad = \nct = a036ead03193903f\niv = b5e006ded553110e6dc56529\nkey = cae31cd9f55526eb038241fc44cac1e5\nmsg = d10989f2c52e94ad\nresult = valid\ntag = 3b626940e0e9f0cbea8e18c437fd6011\n\n# tcId = 7\naad = \nct = 8a9992388e735f80ee18f4a63c10ad\niv = ecb0c42f7000ef0e6f95f24d\nkey = dd6197cd63c963919cf0c273ef6b28bf\nmsg = 4dcc1485365866e25ac3f2ca6aba97\nresult = valid\ntag = 1486a91cccf92c9a5b00f7b0e034891c\n\n# tcId = 8\naad = \nct = f7bd379d130477176b8bb3cb23dbbbaa\niv = 0e1666f2dc652f7708fb8f0d\nkey = ffdf4228361ea1f8165852136b3480f7\nmsg = 25b12e28ac0ef6ead0226a3b2288c800\nresult = valid\ntag = 1ee6513ce30c7873f59dd4350a588f42\n\n# tcId = 9\naad = \nct = 0de51fe4f7f2d1f0f917569f5c6d1b009c\niv = 965ff6643116ac1443a2dec7\nkey = c15ed227dd2e237ecd087eaaaad19ea4\nmsg = fee62fde973fe025ad6b322dcdf3c63fc7\nresult = valid\ntag = 6cd8521422c0177e83ef1b7a845d97db\n\n# tcId = 10\naad = \nct = 7cd9f4e4f365704fff3b9900aa93ba54b672bac554275650\niv = fbbc04fd6e025b7193eb57f6\nkey = a8ee11b26d7ceb7f17eaa1e4b83a2cf6\nmsg = c08f085e6a9e0ef3636280c11ecfadf0c1e72919ffc17eaf\nresult = valid\ntag = f4eb193241226db017b32ec38ca47217\n\n# tcId = 11\naad = c3\nct = f58d453212c2c8a436e9283672f579f119122978\niv = 32bcb9b569e3b852d37c766a\nkey = 28ff3def08179311e2734c6d1c4e2871\nmsg = dfc61a20df8505b53e3cd59f25770d5018add3d6\nresult = valid\ntag = 5901131d0760c8715901d881fdfd3bc0\n\n# tcId = 12\naad = 834afdc5c737186b\nct = bf864616c2347509ca9b10446379b9bdbb3b8f64\niv = 9c3a4263d983456658aad4b1\nkey = e63a43216c08867210e248859eb5e99c\nmsg = b14da56b0462dc05b871fc815273ff4810f92f4b\nresult = valid\ntag = a97d25b490390b53c5db91f6ee2a15b8\n\n# tcId = 13\naad = 4020855c66ac4595058395f367201c4c\nct = a6f2ef3c7ef74a126dd2d5f6673964e27d5b34b6\niv = 33e90658416e7c1a7c005f11\nkey = 38449890234eb8afab0bbf82e2385454\nmsg = f762776bf83163b323ca63a6b3adeac1e1357262\nresult = valid\ntag = b8bbdc4f5014bc752c8b4e9b87f650a3\n\n# tcId = 14\naad = 76eb5f147250fa3c12bff0a6e3934a0b16860cf11646773b\nct = bd64802cfebaeb487d3a8f76ce943a37b3472dd5\niv = 9f0d85b605711f34cd2a35ba\nkey = 6a68671dfe323d419894381f85eb63fd\nmsg = 0fc67899c3f1bbe196d90f1eca3797389230aa37\nresult = valid\ntag = fce9a5b530c7d7af718be1ec0ae9ed4d\n\n# tcId = 15\naad = \nct = d33bf6722fc29384fad75f990248b9528e0959aa67ec66869dc3996c67a2d559e7d77ce5955f8cad2a4df5fdc3acccafa7bc0def53d848111256903e5add0420\niv = 5dfc37366f5688275147d3f9\nkey = e12260fcd355a51a0d01bb1f6fa538c2\nmsg = d902deeab175c008329a33bfaccd5c0eb3a6a152a1510e7db04fa0aff7ce4288530db6a80fa7fea582aa7d46d7d56e708d2bb0c5edd3d26648d336c3620ea55e\nresult = valid\ntag = 8bc833de510863b4b432c3cbf45aa7cc\n\n# tcId = 16\naad = \nct = 17d72d90bd23e076d8364a87ecb9ac58acc5de4629bfd590409b8bf1fcd3a2f602731b4614cec15e773ea65a65e7210994256bf5450a25acb527269c065f2e2f2279d1fe8b3eda98dcf87b348f1528377bbdd258355d46e035330483d8097e80c7de9bbb606ddf723f2909217ffdd18e8bdbd7b08062f1dcba960e5c0d290f5f\niv = d767c48d2037b4bd2c231bbd\nkey = 3c55f88e9faa0d68ab50d02b47161276\nmsg = 5d6add48e7a5704e54f9c2829a9b4283dce0d3a65b133eba3793c4fbfa1d8e3a2539d0d4f3de381598ce5b2360173fbd149476c31692c5d6e872fce40219378949c2e70b5f1b9f0a1d5f38352ad814b2a035bb3f3f26425d831a2f7a5e65c5dfcd91a315c2b24f53a662605ea40857dd980e9be5cdad000c569f2d204d4bd3b0\nresult = valid\ntag = 090b8c2ec98e4116186d0e5fbefeb9c2\n\n# tcId = 17\naad = \nct = 5bc6dbafc401101c7a08c81d6c2791aa147ce093aad172be18379c747384a54a41a747ba955cade8fdfb8967aa808b43fee3d757cc80f11163b800e5e59df932757f76c40b3d9cba449aaf11e4f80e003b1f384eafa4f76e81b13c09ec1ad88e7650c750d442fe46d225a373e8a1b564b4915a5c6c513cfdfa22d929d5741ca5ebefaedcba636c7c3bbef18863fdc126b4b451611049c35d814fc2eb7e4b8f1a8995ecb4a3c86652a068c0b2a3e1c5941d59c210b458d5d5d3b06420ec2053465ccceca7c20f67404985460379e2ee806a46e8409dfab2e0dd67ea3cf46d5ad4eb78756827358c3ef1fdbd07c33834f3d9eca3ff13b744a01059a6c17a315a8fd4\niv = dfe20d1c4350e6235d987af1\nkey = a294e70fa2ac10a1fb00c588b888b673\nmsg = 6ed1d7d618d158741f52078006f28494ba72a2454f27160ae8722793fcebc538ebc2f67c3ace3e0fe7c47b9e74e081182b47c930144e3fc80d0ad50611c3afcfe2dbc5279edbbba087c0e390355f3daffcd25ad4dea007c284ad92e7fcbecb438fb60623ff89a599dca2aac141b26651386ca55b739b94901ef6db609c344d8acf4544568e31bb09361112754b1c0c6a3c875bd9453b0ee0081412151398a294ecad75add521611db5288b60ac3c0128f6e94366b69e659e6aa66f058a3a3571064edbb0f05c11e5dde938fb46c3935dd5193a4e5664688f0ae67c29b7cc49a7963140f82e311a20c98cd34fbcab7b4b515ae86557e62099e3fc37b9595c85a75c\nresult = valid\ntag = c7587e7da41bed682c37377ea4324029\n\n# tcId = 18\naad = 75fc9078b488e9503dcb568c882c9eec24d80b04f0958c82aac8484f025c90434148db8e9bfe29c7e071b797457cb1695a5e5a6317b83690ba0538fb11e325ca\nct = b6786812574a254eb43b1cb1d1753564c6b520e9\niv = 5046e7e08f0747e1efccb09e\nkey = c4b03435b91fc52e09eff27e4dc3fb42\nmsg = 8e887b224e8b89c82e9a641cf579e6879e1111c7\nresult = valid\ntag = ad8c09610d508f3d0f03cc523c0d5fcc\n\n# tcId = 19\naad = 8ed8a9be4c3d32a5098434ee5c0c4fc20f78ef5e25ed8b72a840a463e36b67b881e048b5e49f515b2541ad5ce4ebb3a917c16bcdc0dc3cb52bb4ed5a1dffcf1e1866544e8db103b2ad99c6fa6e7de1d8b45bff57ec872f1cfc78b0e4870f6f200ff1291cae033defc3327ba82792ba438e35c4bfbb684fec5ce5e3ae167d01d7\nct = cfb631790767d0645d8ec6f23bf7fa8b19ce79ee\niv = 517c55c2ec9bfea90addc2bd\nkey = 7e37d56e6b1d0172d40d64d6111dd424\nmsg = 6a7dea03c1bba70be8c73da47d5ee06d72a27430\nresult = valid\ntag = c5767ddaa747158446231766bd20490c\n\n# tcId = 20\naad = 18526e4efd995a0bf6405d9f906725c290278958d49554974d8fe025e7860daa225c1285b0573916a4b6741f7cc2e29ce4e525e12f436cb7ce0ad47df3d0f5bd80fb27e47635a4985fdaedf0e821f1c8959985cac49c97a4a02438d92b4afd4c855dcc7ef41ecfc36866334fcc05b2bb93ef13f00c5ea9b921e8a519d77f648e0efe9b5a62305a2ecf7d4999663a6ddfca517f1f36f0899b0bdef9f433c4bb2663c0cc1bb616e7d1949e522bec85485d371d1134c90eede75e865dc7be405b54c33f0acbace6cf780c78035b8035b6ea3f562a8d30a156c199fdafd25be06ee895581195ef125cb4e629e4f18e0bee979d31513896db8466e448e6b4600a316757\nct = e4d3f4898cb3d9732641d1f8d9d889b2c98af930\niv = a2712eac5e06d3cc2864aa8b\nkey = 3076741408f734ce25d48f982e8b844b\nmsg = 414ec6b149e54735302dada888b98b7fdb4c127c\nresult = valid\ntag = 76d4fbb69d529b64175b328be00b1068\n\n# tcId = 21\n# special case\naad = \nct = f62d84d649e56bc8cfedc5d74a51e2f7\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = ebd4a3e10cf6d41c50aeae007563b072\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 22\n# special case\naad = \nct = 431f31e6840931fd95f94bf88296ff69\niv = ffffffffffffffffffffffff\nkey = 00112233445566778899aabbccddeeff\nmsg = d593c4d8224f1b100c35e4f6c4006543\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 23\n# Flipped bit 0 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d9847dbc326a06e988c77ad3863e6083\n\n# tcId = 24\n# Flipped bit 1 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = da847dbc326a06e988c7", "7ad3863e6083\n\n# tcId = 25\n# Flipped bit 7 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 58847dbc326a06e988c77ad3863e6083\n\n# tcId = 26\n# Flipped bit 8 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8857dbc326a06e988c77ad3863e6083\n\n# tcId = 27\n# Flipped bit 31 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847d3c326a06e988c77ad3863e6083\n\n# tcId = 28\n# Flipped bit 32 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc336a06e988c77ad3863e6083\n\n# tcId = 29\n# Flipped bit 33 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc306a06e988c77ad3863e6083\n\n# tcId = 30\n# Flipped bit 63 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a066988c77ad3863e6083\n\n# tcId = 31\n# Flipped bit 64 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e989c77ad3863e6083\n\n# tcId = 32\n# Flipped bit 71 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e908c77ad3863e6083\n\n# tcId = 33\n# Flipped bit 77 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988e77ad3863e6083\n\n# tcId = 34\n# Flipped bit 80 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77bd3863e6083\n\n# tcId = 35\n# Flipped bit 96 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3873e6083\n\n# tcId = 36\n# Flipped bit 97 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3843e6083\n\n# tcId = 37\n# Flipped bit 103 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3063e6083\n\n# tcId = 38\n# Flipped bit 120 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3863e6082\n\n# tcId = 39\n# Flipped bit 121 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3863e6081\n\n# tcId = 40\n# Flipped bit 126 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3863e60c3\n\n# tcId = 41\n# Flipped bit 127 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3863e6003\n\n# tcId = 42\n# Flipped bits 0 and 64 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d9847dbc326a06e989c77ad3863e6083\n\n# tcId = 43\n# Flipped bits 31 and 63 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847d3c326a066988c77ad3863e6083\n\n# tcId = 44\n# Flipped bits 63 and 127 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a066988c77ad3863e6003\n\n# tcId = 45\n# all bits of tag flipped\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 277b8243cd95f9167738852c79c19f7c\n\n# tcId = 46\n# Tag changed to all zero\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 47\n# tag changed to all 1\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 48\n# msbs changed in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 5804fd3cb2ea86690847fa5306bee003\n\n# tcId = 49\n# lsbs changed in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d9857cbd336b07e889c67bd2873f6182\n\n[ivSize = 64]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 50\naad = aac39231129872a2\nct = 64c36bb3b732034e3a7d04efc5197785\niv = 0432bc49ac344120\nkey = aa023d0478dcb2b2312498293d9a9129\nmsg = 2035af313d1346ab00154fea78322105\nresult = valid\ntag = b7d0dd70b00d65b97cfd080ff4b819d1\n\n# tcId = 51\n# small IV sizes\naad = \nct = \niv = 28e9b7851724bae3\nkey = f3434725c82a7f8bb07df1f8122fb6c9\nmsg = \nresult = acceptable\ntag = 44aca00f42e4199b829a55e69b073d9e\nflags = SmallIv\n\n# tcId = 52\n# small IV sizes\naad = \nct = 03e1a168a7e377a913879b296a1b5f9c\niv = d084547de55bbc15\nkey = deb62233559b57476602b5adac57c77f\nmsg = d8986df0241ed3297582c0c239c724cb\nresult = acceptable\ntag = 3290aa95af505a742f517fabcc9b2094\nflags = SmallIv\n\n[ivSize = 128]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 53\naad = 1a0293d8f90219058902139013908190bc490890d3ff12a3\nct = 64069c2d58690561f27ee199e6b479b6369eec688672bde9\niv = 3254202d854734812398127a3d134421\nkey = 2034a82547276c83dd3212a813572bce\nmsg = 02efd2e5782312827ed5d230189a2a342b277ce048462193\nresult = valid\ntag = 9b7abadd6e69c1d9ec925786534f5075\n\n# tcId = 54\naad = \nct = \niv = fa294b129972f7fc5bbd5b96bba837c9\nkey = b67b1a6efdd40d37080fbe8f8047aeb9\nmsg = \nresult = valid\ntag = a2cf26481517ec25085c5b17d0786183\n\n# tcId = 55\naad = \nct = fd\niv = 9477849d6ccdfca112d92e53fae4a7ca\nkey = 209e6dbf2ad26a105445fc0207cd9e9a\nmsg = 01\nresult = valid\ntag = 032df7bba5d8ea1a14f16f70bd0e14ec\n\n# tcId = 56\naad = \nct = 2f333087bdca58219f9bfc273e45cc\niv = 5171524568e81d97e8c4de4ba56c10a0\nkey = a549442e35154032d07c8666006aa6a2\nmsg = 1182e93596cac5608946400bc73f3a\nresult = valid\ntag = e06d1ef473132957ad37eaef29733ca0\n\n# tcId = 57\naad = \nct = a780bd01c80885156c88a973264c8ee5\niv = 1275115499ae722268515bf0c164b49c\nkey = cfb4c26f126f6a0acb8e4e220f6c56cd\nmsg = 09dfd7f080275257cf97e76f966b1ad9\nresult = valid\ntag = 2adeffa682c8d8a81fada7d9fcdd2ee2\n\n# tcId = 58\naad = \nct = 7e47e10fe3c6fbfa381770eaf5d48d1482e71e0c44dff1e30ca6f95d92052084\niv = 95c1dd8c0f1705ece68937901f7add7b\nkey = 0b11ef3a08c02970f7", "4281c860691c75\nmsg = f693d4edd825dbb0618d91113128880dbebb23e25d00ed1f077d870be9cc7536\nresult = valid\ntag = d01444fa5d9c499629d174ff3927a1ac\n\n# tcId = 59\n# J0:000102030405060708090a0b0c0d0e0f\naad = \nct = 00078d109d92143fcd5df56721b884fac64ac7762cc09eea2a3c68e92a17bdb575f87bda18be564e\niv = f95fde4a751913202aeeee32a0b55753\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 152a65045fe674f97627427af5be22da\nflags = ConstructedIv\n\n# tcId = 60\n# J0:00000000000000000000000000000000\naad = \nct = 84d4c9c08b4f482861e3a9c6c35bc4d91df927374513bfd49f436bd73f325285daef4ff7e13d46a6\niv = 7b95b8c356810a84711d68150a1b7750\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 213a3cb93855d18e69337eee66aeec07\nflags = ConstructedIv\n\n# tcId = 61\n# J0:ffffffffffffffffffffffffffffffff\naad = \nct = 948ca37a8e6649e88aeffb1c598f3607007702417ea0e0bc3c60ad5a949886de968cf53ea6462aed\niv = 1a552e67cdc4dc1a33b824874ebf0bed\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 99b381bfa2af9751c39d1b6e86d1be6a\nflags = ConstructedIv\n\n# tcId = 62\n# J0:fffffffffffffffffffffffffffffffe\naad = \nct = 64b19314c31af45accdf7e3c4db79f0d948ca37a8e6649e88aeffb1c598f3607007702417ea0e0bc\niv = dd9d0b4a0c3d681524bffca31d907661\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 5281efc7f13ac8e14ccf5dca7bfbfdd1\nflags = ConstructedIv\n\n# tcId = 63\n# J0:fffffffffffffffffffffffffffffffd\naad = \nct = 2bb69c3e5d1f91815c6b87a0d5bbea7164b19314c31af45accdf7e3c4db79f0d948ca37a8e6649e8\niv = 57c5643c4e37b4041db794cfe8e1f0f4\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = a3ea2c09ee4f8c8a12f45cddf9aeff81\nflags = ConstructedIv\n\n# tcId = 64\n# J0:000102030405060708090a0bffffffff\naad = \nct = 127af9b39ecdfc57bb11a2847c7c2d3d8f938f40f877e0c4af37d0fe9af033052bd537c4ae978f60\niv = 99821c2dd5daecded07300f577f7aff1\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 07eb2fe4a958f8434d40684899507c7c\nflags = ConstructedIv\n\n# tcId = 65\n# J0:000102030405060708090a0bfffffffe\naad = \nct = 0cf6ae47156b14dce03c8a07a2e172b1127af9b39ecdfc57bb11a2847c7c2d3d8f938f40f877e0c4\niv = 5e4a3900142358d1c774d8d124d8d27d\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = f145c2dcaf339eede427be934357eac0\nflags = ConstructedIv\n\n# tcId = 66\n# J0:000102030405060708090a0bfffffffd\naad = \nct = f0c6ffc18bd46df5569185a9afd169eb0cf6ae47156b14dce03c8a07a2e172b1127af9b39ecdfc57\niv = d4125676562984c0fe7cb0bdd1a954e8\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = facd0bfe8701b7b4a2ba96d98af52bd9\nflags = ConstructedIv\n\n# tcId = 67\n# J0:000102030405060708090a0b7fffffff\naad = \nct = d6928e094c06e0a7c4db42184cf7529e95de88b767edebe9b343000be3dab47ea08b744293eed698\niv = b97ec62a5e5900ccf9e4be332e336091\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = a03e729dcfd7a03155655fece8affd7e\nflags = ConstructedIv\n\n# tcId = 68\n# J0:000102030405060708090a0b7ffffffe\naad = \nct = d82ce58771bf6487116bf8e96421877ed6928e094c06e0a7c4db42184cf7529e95de88b767edebe9\niv = 7eb6e3079fa0b4c3eee366177d1c1d1d\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 1e43926828bc9a1614c7b1639096c195\nflags = ConstructedIv\n\n# tcId = 69\n# J0:000102030405060708090a0bffff7fff\naad = \nct = a197a37a5d79697078536bc27fe46cd8d475526d9044aa94f088a054f8e380c64f79414795c61480\niv = 0314fcd10fdd675d3c612962c931f635\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = f08baddf0b5285c91fc06a67fe4708ca\nflags = ConstructedIv\n\n# tcId = 70\n# J0:000102030405060708090a0bffff7ffe\naad = \nct = 149fde9abbd3a43c2548575e0db9fb84a197a37a5d79697078536bc27fe46cd8d475526d9044aa94\niv = c4dcd9fcce24d3522b66f1469a1e8bb9\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 62a4b6875c288345d6a454399eac1afa\nflags = ConstructedIv\n\n# tcId = 71\n# special case\naad = \nct = 45a3f89d02918bfd0c8161658ccc9795\niv = 00000000000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = bec6fa05c1718b9b84c47345bbed7dcb\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 72\n# special case\naad = \nct = 1cd5a06214235ceb044d4bad7b047312\niv = ffffffffffffffffffffffffffffffff\nkey = 00112233445566778899aabbccddeeff\nmsg = 4d82639c39d3f3490ee903dd0be7afcf\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 73\naad = 00000000ffffffff\nct = e27abdd2d2a53d2f136b\niv = 00112233445566778899aabb\nkey = 92ace3e348cd821092cd921aa3546374299ab46209691bc28b8752d17f123c20\nmsg = 00010203040506070809\nresult = valid\ntag = 9a4a2579529301bcfb71c78d4060f52c\n\n# tcId = 74\naad = aabbccddeeff\nct = \niv = 00112233445566778899aabb\nkey = 29d3a44f8723dc640239100c365423a312934ac80239212ac3df3421a2098123\nmsg = \nresult = valid\ntag = 2a7d77fa526b8250cb296078926b5020\n\n# tcId = 75\naad = \nct = \niv = 4da5bf8dfd5852c1ea12379d\nkey = 80ba3192c803ce965ea371d5ff073cf0f43b6a2ab576b208426e11409c09b9b0\nmsg = \nresult = valid\ntag = 4771a7c404a472966cea8f73c8bfe17a\n\n# tcId = 76\naad = \nct = 06\niv = 99e23ec48985bccdeeab60f1\nkey = cc56b680552eb75008f5484b4cb803fa5063ebd6eab91f6ab6aef4916a766273\nmsg = 2a\nresult = valid\ntag = 633c1e9703ef744ffffb40edf9d14355\n\n# tcId = 77\naad = \nct = cf332a12fdee800b\niv = 4f07afedfdc3b6c2361823d3\nkey = 51e4bf2bad92b7aff1a4bc05550ba81df4b96fabf41c12c7b00e60e48db7e152\nmsg = be3308f72a2c6aed\nresult = valid\ntag = 602e8d7c4799d62c140c9bb834876b09\n\n# tcId = 78\naad = \nct = 43fc101bff4b32bfadd3daf57a590e\niv = 68ab7fdbf61901dad461d23c\nkey = 67119627bd988eda906219e08c0d0d779a07d208ce8a4fe0709af755eeec6dcb\nmsg = 51f8c1f731ea14acdb210a6d973e07\nresult = valid\ntag = ec04aacb7148a8b8be44cb7eaf4efa69\n\n# tcId = 79\naad = \nct = f58c16690122d75356907fd96b570fca\niv = 2fcb1b38a99e71b84740ad9b\nkey = 59d4eafb4de0cfc7d3db99a8f54b15d7b39f0acc8da69763b019c1699f87674a\nmsg = 549b365af913f3b081131ccb6b825588\nresult = valid\ntag = 28752c20153092818faba2a334640d6e\n\n# tcId = 80\naad = \nct = 73a6b6f45f6ccc5131e07f2caa1f2e2f56\niv = 45aaa3e5d16d2d42dc03445d\nkey = 3b2458d8176e1621c0cc24c0c0e24c1e80d72f7ee9149a4b166176629616d011\nmsg = 3ff1514b1c503915918f0c0c31094a6e1f\nresult = valid\ntag = 2d7379ec1db5952d4e95d30c340b1b1d\n\n# tcId = 81\naad = \nct = 0843fff52d934fc7a071ea62c0bd351ce85678cde3ea2c9e\niv = e6b1adf2fd58a8762c65f31b\nkey = 0212a8de5007ed87b33f1a7090b6114f9e08cefd9607f2c276bdcfdbc5ce9cd7\nmsg = 10f1ecf9c60584665d9ae5efe279e7f7377eea6916d2b111\nresult = valid\ntag = 7355fde599006715053813ce696237a8\n\n# tcId = 82\naad = c0\nct = eb5500e3825952866d911253f8de860c00831c81\niv = 98bc2c7438d5cd7665d76f6e\nkey = b279f57e19c8f53f2f963f5f2519fdb7c1779be2ca2b3ae8e1128b7d6c627fc4\nmsg = fcc515b294408c8645c9183e3f4ecee5127846d1\nresult = valid\ntag = ecb660e1fb0541ec41e8d68a64141b3a\n\n# tcId = 83\naad = 956846a209e087ed\nct = feca44952447015b5df1f456df8ca4bb4eee2ce2\niv = 376187894605a8d45e30de51\nkey = cdccfe3f46d782ef47df4e72f0c02d9c7f774def970d23486f11a57f54247f17\nmsg = e28e0e9f9d22463ac0e42639b530f42102fded75\nresult = valid\ntag = 082e91924deeb77880e1b1c84f9b8d30\n\n# tcId = 84\naad = ab2ac7c44c60bdf8228c7884adb20184\nct = 43dda832e942e286da314daa99bef5071d9d2c78\niv = 5a86a50a0e8a179c734b996d\nkey = f32364b1d339d82e4f132d8f4a0ec1ff7e746517fa07ef1a7f422f4e25a48194\nmsg = 43891bccb522b1e72a6b53cf31c074e9d6c2df8e\nresult = valid\ntag = c39225", @@ -7424,9 +7734,9 @@ static const char *kData247[] = { "e5563f8f826\nresult = valid\ntag = 20529bff3c59222ec33353af337b1d40\n\n[ivSize = 160]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 208\n# unusual IV size\naad = \nct = 073a5291b11df379f31b4f16\niv = 130c14c839e35b7d56b3350b194b0da342e6b65d\nkey = ef2e299dd4ecd7e3b9cc62780922cc2c89f78840564d1276\nmsg = 03f59579b14437199583270e\nresult = valid\ntag = 17205999491bd4c1d6c7ec3e56779c32\n\n[ivSize = 120]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 209\n# unusual IV size\naad = \nct = fc213602aa423b87d7c2a874\niv = 17ca250fb733877556263223eadde1\nkey = e98b0669a645eb14cd06df6968fc5f10edc9f54feed264e3d410cdc61b72ef51\nmsg = f384b3ed7b274641f5db60cf\nresult = valid\ntag = 36b15bab6923b17218fe1c24048e2391\n\n[ivSize = 160]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 210\n# unusual IV size\naad = \nct = c1d76233e8c5042e92bf8d32\niv = 0f9d6ed7eef362dfa4a7dfa5c0f74c5b27bd4ebf\nkey = 849b3e6b8cdd85bdcfb8eb701aa5522ae2340fbe5214e389622cef76979225c4\nmsg = 8c5564e53051c0de273199b4\nresult = valid\ntag = 7cf036d235d3b2dd349a8c804b65144a\n\n[ivSize = 256]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 211\n# long IV size\naad = \nct = 5348af57fafe2485b43f2bc4\niv = 365e0b96932b13306f92e9bb23847165bcbf5d35e45a83d75c86ecca70131f4c\nkey = 5927bae748bb69d81b5a724e0a165652\nmsg = 316bf99bfafc76f1bfc0b03c\nresult = valid\ntag = 019a96c5373c031626b6c0300d4cf78b\n\n[ivSize = 512]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 212\n# long IV size\naad = \nct = f559b70fe1149cb34406a2c7\niv = 967fa7c990eb2becbd450835e28ea3a9000c7216285cfa7696e8c3dac3ce952a1fe638d7c8c73e1d708dce01b5a20fcc9aa011949d2a835f777423c172fa3aa0\nkey = dbd3676f293409273f27b375e03793a3\nmsg = 625efedb8b7f1aa62238a8f2\nresult = valid\ntag = 94180ddb7bb1995abe0219eab5ce232f\n\n[ivSize = 1024]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 213\n# long IV size\naad = \nct = 5291dd4da91ccc2e77306d83\niv = 494356c3459d60e3a83433c9bcf2c0454a763e496e4ec99bfbe4bbb83a4fda76b542213899dcf5521cd9bbbe5d11545bda44a3f4a681ce2843acea730d83d3930ea30991ee1a68ebf6d1a5a40f9b02a1aab091298df8dd689dc7613bcbff94d35f2ca43377d81618562bcf6573411ec9bc97c5a6276b554054c0fa787073d067\nkey = 7e5a39dcda7e066988f19adf4de4d501\nmsg = b04729b4adbaac63c2aaf8d8\nresult = valid\ntag = a7f7b21a3b7ece509e922647fd905f06\n\n[ivSize = 2056]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 214\n# long IV size\naad = \nct = e3be947153a26a3a54e3015c\niv = 6fd260bba87339539c37dc68fdc3656f63c83028cb8adcb531085e98bd570c6b735d0cc4b4b924696000a2d893621ae64dcce992b562b89a5285643a08febccbc52243cbfc8d45212e047b00c87c6b6bf175f8bb678ec55c1091315cbecb8b85700f4a4653623fb78e63cfff7d6235e48e9832c9f0716d10992fc5b0ad4e6972bbeeb1ad670cd7ec8fac82e07ea5a64f9761a39714aaa73affd2cb190a7ac2df5e5dcea6812ae2c872c7ac70453c5e7ec4d0b5b18c6ff3bfb9ae15fea44cf392615b80034edae596b8821f97fca58d167fb44a093b0c009a0bd5631355b0cb25d93ba9b79b006301d99db657e801933fc2764a0ce650eaf5a1299efe60cb53b634\nkey = eac3f28cd937ff29eb6158a3721b5145\nmsg = 098912a302773377b9c26ac3\nresult = valid\ntag = fd042bdde22f67c4fd298d5dc0867606\n\n[ivSize = 256]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 215\n# long IV size\naad = \nct = 8c2a9823a3b3d413be696387\niv = 36e4b381574d171c7769a788cbc147224fabd8b773f16b8ae84d8f2603aaa440\nkey = 8f9ebc67a9a6430c2b0ceeaf983e1356964bb928635b9ca4\nmsg = a3a96ee94f94caa81ebcd66d\nresult = valid\ntag = faaf01ceb40a7e145e8fe65aa9af58c0\n\n[ivSize = 512]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 216\n# long IV size\naad = \nct = a660ea5bf07a78fea0120173\niv = 90743bd5d794d52ac848b7e2384545a25846acf143be84c0ead0432fcf3172631cf58d0ca78571c03053c1e1b85ed79cb5303d0e3a98ff4f56c4f0a5eb4f0eac\nkey = f4bbdfd06f7fb1434880e4166d38d56e02a3f0df0d5301ce\nmsg = 39d2abe6697f17ec27f2a39c\nresult = valid\ntag = 7404fc7b7354694428236f203c130244\n\n[ivSize = 1024]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 217\n# long IV size\naad = \nct = f400132ff38c04ed747dde34\niv = fbb3eab379c9b8689dc30b0713690e55d51c956ca36fbcc73eeeee16a46d7c41a7a9626e68e25d685c008c19d3b2b1792bdc99c35441a6fcac35e0d6446dd914f543abd9ecd6b0cb5201c243026c4f13641d67c8d8cd5114b6e11ebbc6b1dee2a18db2150a5a575dcd21648e0337dadbccd3deffd6d979e03e6b9ddfee0abdc2\nkey = 1761c77798ef9cdfa40553f34614fe7402212087f0509411\nmsg = 35ca4eb463a2000138210b4d\nresult = valid\ntag = ca1534e7dd0336bbb32a79830c71a447\n\n[ivSize = 2056]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 218\n# long IV size\naad = \nct = 13a95a06c1bed4845af9c701\niv = 3569fca7c9d06e2a03fed1aac2484fd4416ca07d55ecbb333ec674f0ea5c6e75a10dfb9c738b69dab2eda10ada721a61c7f02b7e7f79e8a9e2dc36b3fdf609e436054c82a774ec617dceec84a577037ff1a3f120d9818d042063acb36c9584e81ec94f11f1ee240f2e45e944694a9c8e535acbb01d93958411cff68e3d32f8931746a4a0cece65e93c51c70b3111034b6867b407e0147f97c576d3ed8cec7e8ec26e95643e46e97ea3595c9c3172b4856f2d2b6dc8564666ddac92c794ffb2d4dc7f461761f0e326650f48d327604e095bd8754072116c96360d09f010ac2f39eb96b227f3d738deb756c8699460d88cf716170ae15267b14f4a89164720f1c602\nkey = f795ece7de1881fbc6843eb740f812e41e3fc49ff6c7b940\nmsg = 22dbd8037aa05b14cf81dd23\nresult = valid\ntag = 03379836b0c82f64a1bccdcd763acbbc\n\n[ivSize = 256]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 219\n# long IV size\naad = \nct = a295c2cb27ce23d26874ade1\niv = e826a79361f9d582b64450e3edc82589487853d5b22feaa0c889875bd0d87cd4\nkey = ee4171917d2337496812a2784d6a71300e6b8c1ac3b1ef58cee77c229aeaf2c5\nmsg = 94d2f8697facaaa191ba617a\nresult = valid\ntag = 04650a78bbb61db337c9c32aa3e7b6fa\n\n[ivSize = 512]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 220\n# long IV size\naad = \nct = 9cdcfc3aaa8d466f25588e4b\niv = ec51ee18cfb46897d3666c7df35c29ca5d898241c4a34f893eb1db5d5c6b76e24617459d1153868154437a0e95aa3c26e956b494a52dd5ac3b9331116c7c775f\nkey = 132c59b4bcb8afb31637734a81105bb2c9878f320ace9076d5fd7c5d216c8d12\nmsg = 12c7be00facda49596e19134\nresult = valid\ntag = 7e80f51e7180f1cd3ba84349888fcd5c\n\n[ivSize = 1024]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 221\n# long IV size\naad = \nct = 3f3c151e984d059462f9e5a0\niv = 7d08b226b4a5d03f6f8cb3a3cb8d1ce31b059dc5112385275e38a15c97e0f24022b249a5f7019ea577198cb26ac64e82b2b04681537c4198775a523b0e6494b84febaef3399b35c27b0969fa43572bf5827a763aac1af69526f37e38acb5d354f2b68487f275f4361ed39073f7dd6653ac17c0794118a0cf143293ac0be66229\nkey = 7b0b12491901d62d097fa26dc71e15cfacafa3226719e47126d99c79d98ec222\nmsg = c80312590700c3bbfacd1a40\nresult = valid\ntag = e559f5f755aa292171cc35fbf911a64f\n\n[ivSize = 2056]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 222\n# long IV size\naad = \nct = 5496ae94c3322ebf959ea9a9\niv = 92c2cee7e9138b186da51f146fb21fd5b491f1a19eef61d4ed14ce6b21b04fdb6ff8ebb60fddc55926e7bda2a8f35c610bb795232412739d6c2d74458ef5a1a1cde9bf17e47e3b00db0b0504d56dc8b8d3de23f7c3a5d52e8d0aab1e64405aaa852ec2dd667ed9c1fd8dc1fdbbc8712c7a38f30faeab594f33897b41b1720f3c2f954ed91ca450d82c3dcd35858c608ad42f36832e56b04821a132f72e0da7b62cbd3925250f64fbb3f5c4783495893097adc09a32d776e04bf72558d37830b372341f6536d8ee9df4a82e4074e7774ab6917a04fa8c499eb4b46a92def365da8b5eb1e0b438779507d1f5272a6e8629a3f9c7bd4862c5691ee8b56bfe292deb4e\nkey = 3bc3bf39d0d5ffd94cca2b45c678a2d049151ed2babc713be53cb66f54a16337\nmsg = 8125ee7637d7d0e03bbacf35\nresult = valid\ntag = 70717cc00fd1ffa59bb04329226a0c0a\n\n[ivSize = 0]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 223\n# 0 size IV is not valid\naad = \nct = \niv = \nkey = 8f3f52e3c75c58f5cb261f518f4ad30a\nmsg = \nresult = invalid\ntag = cf71978ffcc778f3c85ac9c31b6fe191\nflags = ZeroLengthIv\n\n# tcId = 224\n# 0 size IV is not valid\naad = \nct = 00a29f0a5e2e7490279d1faf8b881c7b\niv = \nkey = 2a4bf90e56b70fdd8649d775c089de3b\nmsg = 324ced6cd15ecc5b3741541e22c18ad9\nresult = invalid\ntag = a2c7e8d7a19b884f742dfec3e76c75ee\nflags = ZeroLengthIv\n\n[ivSize = 0]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 225\n# 0 size IV is not valid\naad = \nct = \niv = \nkey = 0b18d21337035c7baa08211b702fa780ac7c09be8f9ed11f\nmsg = \nresult = invalid\ntag = ca69a2eb3a096ea36b1015d5dffff532\nflags = ZeroLengthIv\n\n# tcId = 226\n# 0 size IV is not valid\naad = \nct = 509b0658d09f7a5bb9db43b70c8387f7\niv = \nkey = ba76d594a6df915bb7ab7e6d1a8d024b2796336c1b8328a9\nmsg = d62f302742d61d823ea991b93430d589\nresult = invalid\ntag = 2c9488d53a0b2b5308c2757dfac7219f\nflags = ZeroLengthIv\n\n[ivSize = 0]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 227\n# 0 size IV is not valid\naad = \nct = \niv = \nkey = 3f8ca47b9a940582644e8ecf9c2d44e8138377a8379c5c11aafe7fec19856cf1\nmsg = \nresult = invalid\ntag = 17", "26aa695fbaa21a1db88455c670a4b0\nflags = ZeroLengthIv\n\n# tcId = 228\n# 0 size IV is not valid\naad = \nct = 7772ea358901f571d3d35c19497639d9\niv = \nkey = 7660d10966c6503903a552dde2a809ede9da490e5e5cc3e349da999671809883\nmsg = c314235341debfafa1526bb61044a7f1\nresult = invalid\ntag = 8fe0520ad744a11f0ccfd228454363fa\nflags = ZeroLengthIv\n\n[ivSize = 8]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 229\n# small IV sizes\naad = \nct = \niv = 80\nkey = 59a284f50aedd8d3e2a91637d3815579\nmsg = \nresult = acceptable\ntag = af498f701d2470695f6e7c8327a2398b\nflags = SmallIv\n\n# tcId = 230\n# small IV sizes\naad = \nct = 0a24612a9d1cbe967dbfe804bf8440e5\niv = 9d\nkey = fec58aa8cf06bfe05de829f27ec77693\nmsg = f2d99a9f893378e0757d27c2e3a3101b\nresult = acceptable\ntag = 96e6fd2cdc707e3ee0a1c90d34c9c36c\nflags = SmallIv\n\n[ivSize = 16]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 231\n# small IV sizes\naad = \nct = \niv = 0f2f\nkey = 88a972cce9eaf5a7813ce8149d0c1d0e\nmsg = \nresult = acceptable\ntag = 4ccf1efb4da05b4ae4452aea42f5424b\nflags = SmallIv\n\n# tcId = 232\n# small IV sizes\naad = \nct = ba3e7f8b2999995c7fc4006ca4f475ff\niv = 8760\nkey = b43967ee933e4632bd6562ba1201bf83\nmsg = 5a6ad6db70591d1e520b0122f05021a0\nresult = acceptable\ntag = 98f47a5279cebbcac214515710f6cd8a\nflags = SmallIv\n\n[ivSize = 32]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 233\n# small IV sizes\naad = \nct = \niv = cc851957\nkey = 4e9a97d3ed54c7b54610793ab05052e1\nmsg = \nresult = acceptable\ntag = e574b355bda2980e047e584feb1676ca\nflags = SmallIv\n\n# tcId = 234\n# small IV sizes\naad = \nct = 1b84baea9df1e65bee7b49e4a8cda1ec\niv = 7b5faeb2\nkey = d83c1d7a97c43f182409a4aa5609c1b1\nmsg = c8f07ba1d65554a9bd40390c30c5529c\nresult = acceptable\ntag = 5c0bb79d8240041edce0f94bd4bb384f\nflags = SmallIv\n\n[ivSize = 48]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 235\n# small IV sizes\naad = \nct = \niv = 4ad80c2854fb\nkey = c6a705677affb49e276d9511caa46145\nmsg = \nresult = acceptable\ntag = 1e2ed72af590cafb8647d185865f5463\nflags = SmallIv\n\n# tcId = 236\n# small IV sizes\naad = \nct = 18291aa8dc7b07448aa8f71bb8e380bf\niv = d1dafc8de3e3\nkey = eba7699b56cc0aa2f66a2a5be9944413\nmsg = d021e53d9098a2df3d6b903cdad0cd9c\nresult = acceptable\ntag = 9c0e22e5c41b1039ff5661ffaefa8e0f\nflags = SmallIv\n\n[ivSize = 8]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 237\n# small IV sizes\naad = \nct = \niv = cb\nkey = c70ce38e84e5f53ed41c3f0d2ca493412ad32cb04c6e2efa\nmsg = \nresult = acceptable\ntag = 08d96edb5e22874cd10cb2256ca04bc6\nflags = SmallIv\n\n# tcId = 238\n# small IV sizes\naad = \nct = 6c5e796ba9a3ddc64f401e68d135101d\niv = 0f\nkey = 74c816b83dfd287210a3e2c6da8d3053bbfbd9b156d3fdd8\nmsg = f2b7b2c9b312cf2af78f003df15c8e19\nresult = acceptable\ntag = 96a132ed43924e98feb888ff682bdaef\nflags = SmallIv\n\n[ivSize = 16]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 239\n# small IV sizes\naad = \nct = \niv = 75e5\nkey = cbf45ba488932aea1a10e5862f92e4a7e277bda9f34af6d0\nmsg = \nresult = acceptable\ntag = 1f0d23070fcd748e25bf6454f5c9136e\nflags = SmallIv\n\n# tcId = 240\n# small IV sizes\naad = \nct = 550b48a43e821fd76f49f0f1a897aead\niv = 8989\nkey = e1c0446f11ae6aa4fa254f9a846fc6e13e45e537e47f2042\nmsg = 3a2f5ad0eb216e546e0bcaa377b6cbc7\nresult = acceptable\ntag = f6e0a979481f9957ddad0f21a777a73a\nflags = SmallIv\n\n[ivSize = 32]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 241\n# small IV sizes\naad = \nct = \niv = 68d7fc38\nkey = 567563bf4cf154902275a53bc57cd6dd7b370d27011bdac8\nmsg = \nresult = acceptable\ntag = 1475563e3212f3b5e40062569afd71e3\nflags = SmallIv\n\n# tcId = 242\n# small IV sizes\naad = \nct = 309133e76159fe8a41b20843486511ab\niv = bb9d2aa3\nkey = 834d0bb601170865a78139428a1503695a6a291ebd747cd1\nmsg = 6f79e18b4acd5a03d3a5f7e1a8d0f183\nresult = acceptable\ntag = 03ab26993b701910a2e8ecccd2ba9e52\nflags = SmallIv\n\n[ivSize = 48]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 243\n# small IV sizes\naad = \nct = \niv = a984bdcdcae2\nkey = 99fb18f5ba430bb9ea942968ecb799b43406e1af4b6425a1\nmsg = \nresult = acceptable\ntag = d7b9a6b58a97982916e83219fbf71b1e\nflags = SmallIv\n\n# tcId = 244\n# small IV sizes\naad = \nct = e08261e46eaf90d978ea8f7889bccd4f\niv = 52aa01e0d0d6\nkey = b77b242aa0d51c92fda013e0cb0ef2437399ace5d3f507e4\nmsg = 4ba541a9914729216153801340ab1779\nresult = acceptable\ntag = c052a55df3926a50990a532efe3d80ec\nflags = SmallIv\n\n[ivSize = 64]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 245\n# small IV sizes\naad = \nct = \niv = d1c61cf8532531b5\nkey = d74599b3d2db81653de43b52fc994c50d0be759fab87c33a\nmsg = \nresult = acceptable\ntag = f94f2049a6560c470b3a7ca7bbc31a3d\nflags = SmallIv\n\n# tcId = 246\n# small IV sizes\naad = \nct = 3c6ec0ab1b827bf238a5384fb7e212ce\niv = 8f075cbcda9831c3\nkey = 0b177198c8b419bf74acc3bc65b5fb3d09a915ff71add754\nmsg = c4b1e05ca3d591f9543e64de3fc682ac\nresult = acceptable\ntag = 7db7402224fd583e312bc0e61cf11366\nflags = SmallIv\n\n[ivSize = 8]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 247\n# small IV sizes\naad = \nct = \niv = a9\nkey = 8f9a38c1014966e4d9ae736139c5e79b99345874f42d4c7d2c81aa6797c417c0\nmsg = \nresult = acceptable\ntag = 2a268bf3a75fd7b00ba230b904bbb014\nflags = SmallIv\n\n# tcId = 248\n# small IV sizes\naad = \nct = 7bea30ecc2f73f8e121263b37966954c\niv = b3\nkey = 144cd8279229e8bb2de99d24e615306663913fe9177fcd270fafec493d43bca1\nmsg = 976229f5538f9636476d69f0c328e29d\nresult = acceptable\ntag = 8bbad4adc54b37a2b2f0f6e8617548c9\nflags = SmallIv\n\n[ivSize = 16]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 249\n# small IV sizes\naad = \nct = \niv = c332\nkey = 7d31861f9d3536e14016a3216b1042e0d2f7d4614314268b6f834ec7f38bbb65\nmsg = \nresult = acceptable\ntag = 1d978a693120c11f6d51a3ed88cd4ace\nflags = SmallIv\n\n# tcId = 250\n# small IV sizes\naad = \nct = 9c39f5b110361e9a770cc5e8b0f444bb\niv = da6c\nkey = 22b35fe9623ee11f8b60b6d22db3765b666ed972fa7ccd92b45f22deee02cab1\nmsg = 5341c78e4ce5bf8fbc3e077d1990dd5d\nresult = acceptable\ntag = b63ff43c12073ec5572b1be70f17e231\nflags = SmallIv\n\n[ivSize = 32]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 251\n# small IV sizes\naad = \nct = \niv = 6b30145e\nkey = c224e0bba3d7a99165f7996b67a0fce3e12f2c01179b197b69b7e628bca92096\nmsg = \nresult = acceptable\ntag = ae6f7c9a29f0d8204ca50b14a1e0dcf2\nflags = SmallIv\n\n# tcId = 252\n# small IV sizes\naad = \nct = f73f72f976a296ba3ca94bc6eb08cd46\niv = 5110604c\nkey = 093eb12343537ee8e91c1f715b862603f8daf9d4e1d7d67212a9d68e5aac9358\nmsg = 33efb58c91e8c70271870ec00fe2e202\nresult = acceptable\ntag = b824c33c13f289429659aa017c632f71\nflags = SmallIv\n\n[ivSize = 48]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 253\n# small IV sizes\naad = \nct = \niv = d4d857510888\nkey = 98e6f8ab673e804e865e32403a6551bf807a959343c60d34559360bc295ecb5b\nmsg = \nresult = acceptable\ntag = 3db16725fafc828d414ab61c16a6c38f\nflags = SmallIv\n\n# tcId = 254\n# small IV sizes\naad = \nct = ed463f4f43336af3f4d7e08770201145\niv = 1bdcd44b663e\nkey = 0bd0e8e7781166e1d876dec8fad34ba95b032a27cac0551595116091005947b7\nmsg = 91222263b12cf5616a049cbe29ab9b5b\nresult = acceptable\ntag = c8fc39906aca0c64e14a43ff750abd8a\nflags = SmallIv\n\n[ivSize = 64]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 255\n# small IV sizes\naad = \nct = \niv = 0d10c5c84b88d688\nkey = 61ba694897925d1b4174d40401469c3ef267cdb9f829edb1a10618c16d666059\nmsg = \nresult = acceptable\ntag = 1311f9f830d729c189b74ec4f9080fa1\nflags = SmallIv\n\n# tcId = 256\n# small IV sizes\naad = \nct = 7e0dd6c72aec49f89cc6a80060c0b170\niv = 04102199ef21e1df\nkey = 115884f693b155563e9bfb3b07cacb2f7f7caa9bfe51f89e23feb5a9468bfdd0\nmsg = 82e3e604d2be8fcab74f638d1e70f24c\nresult = acceptable\ntag = af68a37cfefecc4ab99ba50a5353edca\nflags = SmallIv\n\n", }; -static const size_t kLen248 = 140567; +static const size_t kLen253 = 140567; -static const char *kData248[] = { +static const char *kData253[] = { "# Imported from Wycheproof's chacha20_poly1305_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: CHACHA20-POLY1305\n# Generator version: 0.8r12\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 1\n# RFC 7539\naad = 50515253c0c1c2c3c4c5c6c7\nct = d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116\niv = 070000004041424344454647\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 4c616469657320616e642047656e746c656d656e206f662074686520636c617373206f66202739393a204966204920636f756c64206f6666657220796f75206f6e6c79206f6e652074697020666f7220746865206675747572652c2073756e73637265656e20776f756c642062652069742e\nresult = valid\ntag = 1ae10b594f09e26a7e902ecbd0600691\n\n# tcId = 2\naad = \nct = \niv = 4da5bf8dfd5852c1ea12379d\nkey = 80ba3192c803ce965ea371d5ff073cf0f43b6a2ab576b208426e11409c09b9b0\nmsg = \nresult = valid\ntag = 76acb342cf3166a5b63c0c0ea1383c8d\n\n# tcId = 3\naad = bd506764f2d2c410\nct = \niv = a92ef0ac991dd516a3c6f689\nkey = 7a4cd759172e02eb204db2c3f5c746227df584fc1345196391dbb9577a250742\nmsg = \nresult = valid\ntag = 906fa6284b52f87b7359cbaa7563c709\n\n# tcId = 4\naad = \nct = 3a\niv = 99e23ec48985bccdeeab60f1\nkey = cc56b680552eb75008f5484b4cb803fa5063ebd6eab91f6ab6aef4916a766273\nmsg = 2a\nresult = valid\ntag = cac27dec0968801e9f6eded69d807522\n\n# tcId = 5\naad = 91ca6c592cbcca53\nct = c4\niv = ab0dca716ee051d2782f4403\nkey = 46f0254965f769d52bdb4a70b443199f8ef207520d1220c55e4b70f0fda620ee\nmsg = 51\nresult = valid\ntag = 168310ca45b1f7c66cad4e99e43f72b9\n\n# tcId = 6\naad = \nct = 4d13\niv = 461af122e9f2e0347e03f2db\nkey = 2f7f7e4f592bb389194989743507bf3ee9cbde1786b6695fe6c025fd9ba4c100\nmsg = 5c60\nresult = valid\ntag = 91e8b61efb39c122195453077b22e5e2\n\n# tcId = 7\naad = 88364fc8060518bf\nct = b60d\niv = 61546ba5f1720590b6040ac6\nkey = c8833dce5ea9f248aa2030eacfe72bffe69a620caf793344e5718fe0d7ab1a58\nmsg = ddf2\nresult = valid\ntag = ead0fd4697ec2e5558237719d02437a2\n\n# tcId = 8\naad = \nct = 3cf470\niv = d2ab0abb50a8e9fba25429e1\nkey = bd8ed7fb0d607522f04d0b12d42c92570bccc5ba2486953d70ba2e8193f6225a\nmsg = 201221\nresult = valid\ntag = a27a69c9d7ee84586f11388c6884e63a\n\n# tcId = 9\naad = 6c8cf2ab3820b695\nct = 610925\niv = 94f32a6dff588f2b5a2ead45\nkey = 1c8b59b17a5ceced31bde97d4cefd9aaaa63362e096e863ec1c89580bca79b7a\nmsg = 453f95\nresult = valid\ntag = a8a7883eb7e40bc40e2e5922ae95ddc3\n\n# tcId = 10\naad = \nct = fe6849aa\niv = 7aa5ad8bf5254762171ec869\nkey = e4912cb75a1174345f1a457366f18885fe8460b06478e04be2f7fb4ec9c113e5\nmsg = 9e4c1d03\nresult = valid\ntag = 99ad07871b25c27defc31a541bd5c418\n\n# tcId = 11\naad = 15d93a96d0e6c5a9\nct = f4710e51\niv = b7f526e3fd71cf5720961aec\nkey = e05777ef3d989ace7d2abfba452bfded54801dbd5c66e91c0c2ef00479d85572\nmsg = 17bfda03\nresult = valid\ntag = b957c6a37b6a4c94996c002186d63b2b\n\n# tcId = 12\naad = \nct = f711647ff1\niv = 9447bf85d5b97d8aee0f8e51\nkey = 1a4c4f39abe890e62345c947bcf7de7c2e33bd5ceeda0a0abf0e7ef935ddf3ee\nmsg = c15a593bd0\nresult = valid\ntag = 22b12dc38cb79629f84cdbdc2425c09d\n\n# tcId = 13\naad = 96224835610b782b\nct = d171f046ea\niv = 3dbe876bd880ec8ea2017043\nkey = 800e9a24791700c9609736695ba2a8b99b2d57f1c3bfb61ed49db1c6c5219583\nmsg = a7bfd041e3\nresult = valid\ntag = d179b1b9c4184378df009019dbb8c249\n\n# tcId = 14\naad = \nct = 9351b1b1b082\niv = 27fb58ec6a21e84696cb8830\nkey = 208c2c376c9430433db20e1a6b7ba817f8ffbfa6827f26759ccede42e591d3ec\nmsg = af104b5ccd0e\nresult = valid\ntag = 560785509f60f26b681933d9cdbfd29f\n\n# tcId = 15\naad = 6d52feb2509f7fbf\nct = 41abff7b71cc\niv = b5965470c383fd29fe7eaee7\nkey = 2eb168e53b07ab04355ea792fe11a6be2ce9c39cfe15a997076b1e38c17ad620\nmsg = 6fdf2927e169\nresult = valid\ntag = 9b5174297c03cf8902d1f706fd008902\n\n# tcId = 16\naad = \nct = 5dfe3440dbb3c3\niv = 3c4e654d663fa4596dc55bb7\nkey = 55568158d3a6483f1f7021eab69b703f614251cadc1af5d34a374fdbfc5adac7\nmsg = ab85e9c1571731\nresult = valid\ntag = ed7a434e2602d394281e0afa9fb7aa42\n\n# tcId = 17\naad = 84e46be8c0919053\nct = 4bd47212941ce3\niv = 58389375c69ee398de948396\nkey = e3c09e7fab1aefb516da6a33022a1dd4eb272c80d540c5da52a730f34d840d7f\nmsg = 4ee5cda20d4290\nresult = valid\ntag = 185f1408ee7fbf18f5abad6e2253a1ba\n\n# tcId = 18\naad = \nct = 8e9439a56eeec817\niv = 4f07afedfdc3b6c2361823d3\nkey = 51e4bf2bad92b7aff1a4bc05550ba81df4b96fabf41c12c7b00e60e48db7e152\nmsg = be3308f72a2c6aed\nresult = valid\ntag = fbe8a6ed8fabb1937539dd6c00e90021\n\n# tcId = 19\naad = 66c0ae70076cb14d\nct = b9b910433af052b0\niv = b4ea666ee119563366484a78\nkey = 1131c1418577a054de7a4ac551950f1a053f9ae46e5b75fe4abd5608d7cddadd\nmsg = a4c9c2801b71f7df\nresult = valid\ntag = 4530f51aeee024e0a445a6328fa67a18\n\n# tcId = 20\naad = \nct = d9d897a9c1c5bb9f01\niv = 8092fc245b3326cddbd1424c\nkey = e1094967f86d893cdfe2e2e6d5c7ee4dfef67da3c9c5d64e6ad7c1577dcb38c5\nmsg = c37aa791ddd6accf91\nresult = valid\ntag = 085a430373058f1a12a0d589fd5be68b\n\n# tcId = 21\naad = 8c32f47a386152ec\nct = 8fdb429d47761cbf8e\niv = f1ca81338629587acf9372bf\nkey = 236f9baee4f9da15beeca40ff4af7c760f254a64bc3a3d7f4fad557e61b68586\nmsg = d7f26d5252e1765f5b\nresult = valid\ntag = 8ef647ed334fdebbc2bef80be02884e0\n\n# tcId = 22\naad = \nct = 700d35adf5100a22a1de\niv = 4c15a71dc6791a8c005ad502\nkey = 4de207a3b70c51e5f23048eed5a5da9bb65e917a69aa93e7c8b4a815cd9724de\nmsg = f2c54b6b5e490da18659\nresult = valid\ntag = 102d992ffaff599b5bddddeb2dfb399b\n\n# tcId = 23\naad = e1e27ccddb3cb407\nct = 04aad66c60e0bf8ebba9\niv = 6220527aba88e27f766658b2\nkey = 6d667fd79e5fb725f50343dccc4863227c75ee3f7a578476e3e9f32598d81559\nmsg = 0c8c5a252681f2b5b4c0\nresult = valid\ntag = c15f69a4d2aef97d7748756ff49d894b\n\n# tcId = 24\naad = \nct = 1c3d53baaa36eaa1d8ec4d\niv = ec1e2967f0f6979e5f5b07fb\nkey = 8f4bd94ef73e75d1e068c30b37ead576c5344e093ece1330e9101c82f793cf05\nmsg = b89812b34d9bced4a0ba07\nresult = valid\ntag = 4d94ebf960f12433bec43aa86d7e6e6d\n\n# tcId = 25\naad = a9bc350eaf2e6e3d\nct = 1c8578f8e75203d0336a52\niv = 28cce57a5db2cd206321e340\nkey = 2aa3bc7033351cac51364cdaf6ffac2c20f64046e1550a7b1c65f41800599019\nmsg = 83016823123484b56095b0\nresult = valid\ntag = 5910f7a9d5e4df05d7248bd7a8d65e63\n\n# tcId = 26\naad = \nct = ff7dc203b26c467a6b50db33\niv = 9a59fce26df0005e07538656\nkey = 99b62bd5afbe3fb015bde93f0abf483957a1c3eb3ca59cb50b39f7f8a9cc51be\nmsg = 42baae5978feaf5c368d14e0\nresult = valid\ntag = 578c0f2758c2e14e36d4fc106dcb29b4\n\n# tcId = 27\naad = a506e1a5c69093f9\nct = 9f8816de0994e938d9e53f95\niv = 58dbd4ad2c4ad35dd906e9ce\nkey = 85f35b6282cff440bc1020c8136ff27031110fa63ec16f1e825118b006b91257\nmsg = fdc85b94a4b2a6b759b1a0da\nresult = valid\ntag = d086fc6c9d8fa915fd8423a7cf05072f\n\n# tcId = 28\naad = \nct = e6b33a74a4ac443bd93f9c1b94\niv = b776c3fddba7c81362ce6e1b\nkey = faf4bfe8019a891c74901b17f4f48cee5cd065d55fdea60118aaf6c4319a0ea5\nmsg = 8dadff8d60c8e88f604f274833\nresult = valid\ntag = 0c115172bdb02bbad3130fff22790d60\n\n# tcId = 29\naad = 5a8e1c7aa39810d5\nct = b0a7500aca45bb15f01ece4389\niv = 6d62f159731b140eb18ce074\nkey = 841020d1606edcfc536abfb1a638a7b958e21efc10c386ac45a18493450afd5f\nmsg = d6af138f701b801e60c85ffd5c\nresult = valid\ntag = 0160e83adbec7f6a2ee2ff0215f9ef00\n\n# tcId = 30\naad = \nct = d3017e0bb1705b380b34cc333450\niv = a9ea4d619fe405d04cba7d7a\nkey = 470f9ce3d2250bd60cbbefdb2e6a1178c012299b5590639c7797b6024fa703d8\nmsg = 6ca67dd023fba6507b9f9a1f667e\nresult = valid\ntag = 5708e72ca2bd354f487f82f67fbc3acb\n\n# tcId = 31\naad = eaaaeab26957f9a1\nct = 52e9672b416d84d97033796072d0\niv = 0e23c942a0c9fb526586eead\nkey = e4b97e91e4c8e85eb7ce0a7f30bf8a0abf4468251e4c6386c0e7aacb8e879aa8\nmsg = b84b3f74cd23064bb426fe2ced2b\nresult = valid\ntag = e83839dc1fd9b8b9d1444c40e488d493\n\n# tcId = 32\naad = \nct = 0b29638e1fbdd6df53970be2210042\niv = 68ab7fdbf61901dad461d23c\nkey = 67119627bd988eda906219e08c0d0d779a07d208ce8a4fe0709af755eeec6dcb\nmsg = 51f8c1f731ea14acdb210a6d973e07\nresult = valid\ntag = 2a9134087d67a46e79178d0a93f5e1d2\n\n# tcId = 33\naad = 6453a53384632212\nct = 32db66c4a3819d81557455e5980fed\niv = d95b3243afaef714c5035b6a\nkey = e6f1118d41e4b43fb58221b7ed79673834e0d8ac5c4fa60bbc8bc4893a58894d\nmsg = 97469da667d6110f9cbda1d1a20673\nresult = valid\ntag = feae30dec94e6ad3a9eea06a0d703917\n\n# tcId = 34\naad = \nct = e9110e9f56ab3ca483500ceabab", "67a13\niv = 2fcb1b38a99e71b84740ad9b\nkey = 59d4eafb4de0cfc7d3db99a8f54b15d7b39f0acc8da69763b019c1699f87674a\nmsg = 549b365af913f3b081131ccb6b825588\nresult = valid\ntag = 836ccabf15a6a22a51c1071cfa68fa0c\n\n# tcId = 35\naad = 034585621af8d7ff\nct = e4b113cb775945f3d3a8ae9ec141c00c\niv = 118a6964c2d3e380071f5266\nkey = b907a45075513fe8a8019edee3f2591487b2a030b03c6e1d771c862571d2ea1e\nmsg = 55a465644f5b650928cbee7c063214d6\nresult = valid\ntag = 7c43f16ce096d0dc27c95849dc383b7d\n\n# tcId = 36\naad = \nct = 02cc3acb5ee1fcdd12a03bb857976474d3\niv = 45aaa3e5d16d2d42dc03445d\nkey = 3b2458d8176e1621c0cc24c0c0e24c1e80d72f7ee9149a4b166176629616d011\nmsg = 3ff1514b1c503915918f0c0c31094a6e1f\nresult = valid\ntag = d83b7463a2c3800fe958c28eaa290813\n\n# tcId = 37\naad = 9aaf299eeea78f79\nct = 35766488d2bc7c2b8d17cbbb9abfad9e6d\niv = f0384fb876121410633d993d\nkey = f60c6a1b625725f76c7037b48fe3577fa7f7b87b1bd5a982176d182306ffb870\nmsg = 63858ca3e2ce69887b578a3c167b421c9c\nresult = valid\ntag = 1f391e657b2738dda08448cba2811ceb\n\n# tcId = 38\naad = \nct = b621d76a8dacff00b3f840cdf26c894cc5d1\niv = 37270b368f6b1e3e2ca51744\nkey = 37ceb574ccb0b701dd11369388ca27101732339f49d8d908ace4b23af0b7ce89\nmsg = f26991537257378151f4776aad28ae8bd16b\nresult = valid\ntag = e0a21716ed94c0382fa9b0903d15bb68\n\n# tcId = 39\naad = b8373438ddb2d6c3\nct = e0a745186c1a7b147f74faff2a715df5c19d\niv = bfd6ff40f2df8ca7845980cc\nkey = 68888361919bc10622f45df168e5f6a03bd8e884c0611bea2f34c1882ed9832b\nmsg = ff97f2eefb3401ac31fc8dc1590d1a92cbc1\nresult = valid\ntag = 917baf703e355d4d950e6c05fe8f349f\n\n# tcId = 40\naad = \nct = d6e0ed54fccef30bd605d72da3320e249a9cb5\niv = 2343de88be6c7196d33b8694\nkey = 1b35b856b5a86d3403d28fc2103a631d42deca5175cdb0669a5e5d90b2caafc5\nmsg = 21ef185c3ae9a96fa5eb473878f4d0b242781d\nresult = valid\ntag = c68bc6724ec803c43984ce42f6bd09ff\n\n# tcId = 41\naad = cc4efd8364fb114a\nct = 29e54d608237c3c3609dba16e6edf43842d72f\niv = 1af1d90e877e11a496efa3df\nkey = d6484e3973f6be8c83ed3208d5be5cfa06fda72fbfdc5b19d09be3f4e4eba29d\nmsg = 7335ab04b03e706109ec3ee835db9a246ea0ad\nresult = valid\ntag = d3365fdcd506aaaa5368661e80e9d99b\n\n# tcId = 42\naad = \nct = 7fe606652d858f595ec2e706754fa3d933fcc834\niv = 1e7e67be948de7352ffdb727\nkey = 422add37849d6e4c3dfd8020dc6a07e8a249788f3d6a83b9cb4d802362c97542\nmsg = d7f5e611dd3a2750fb843fc1b6b93087310dc87d\nresult = valid\ntag = 78d59235aa5d03a4c32590e590c04d22\n\n# tcId = 43\naad = 956846a209e087ed\nct = 14f707c446988a4903775ec7acec6da114d43112\niv = 376187894605a8d45e30de51\nkey = cdccfe3f46d782ef47df4e72f0c02d9c7f774def970d23486f11a57f54247f17\nmsg = e28e0e9f9d22463ac0e42639b530f42102fded75\nresult = valid\ntag = 987d4b147c490d43d376a198cab383f0\n\n# tcId = 44\naad = \nct = 1003f13ea1329cbb187316f64c3ff3a87cf5b96661\niv = f9d6320d7ce51d8ed0677d3a\nkey = e79dfc6d2fc465b8439e1c5baccb5d8ef2853899fc19753b397e6c25b35e977e\nmsg = 4f543e7938d1b878dacaeec81dce4899974816813b\nresult = valid\ntag = d2323ad625094bec84790d7958d5583f\n\n# tcId = 45\naad = 093053e20261daab\nct = 2d48b0834e9ffe3046103ef7a214f02e8e4d33360e\niv = 50ba1962cdc32a5a2d36e640\nkey = 1d7b8f1d96a1424923aef8a984869d4a777a110990ba465627acf80396c7f376\nmsg = 5d3efd5767f3c12efd08af9a44e028ae68c9eff843\nresult = valid\ntag = d533ad089be229ea606ec0f3fa22eb33\n\n# tcId = 46\naad = \nct = e9917ff3e64bbe1783579375e75ea823976b35539949\niv = c9cc0a1afc38ec6c30c38c68\nkey = dd433e28cfbcb5de4ab36a02bf38686d83208771a0e63dcd08b4df1a07ac47a1\nmsg = 8a3e17aba9606dd49e3b1a4d9e5e42f1742373632489\nresult = valid\ntag = 074a890669b25105434c75beed3248db\n\n# tcId = 47\naad = b2a4e12a19a61c75\nct = db4c700513818972b0dc0e531b1c281ca03e40c60dea\niv = 8ba77644b08d65d5e9f31942\nkey = a60924101b42ac24154a88de42142b2334cf599176caf4d1226f712dd9172930\nmsg = c949957e66439deee4b2ac1d4a6c98a6c527b90f52ab\nresult = valid\ntag = 63f4478bba2af469a7a4dc3b4f141360\n\n# tcId = 48\naad = \nct = b5f14617491fc923b683e2cc9562d043dd5986b97dbdbd\niv = 4b3dca84ecc407f424f281a9\nkey = 1aa42027836965b1e6086fa137f9cf7f1ff48676696829bd281ff81c8ea0a4a9\nmsg = 37252a3eb5c8960f0567e503a9035783b3d0a19a4b9a47\nresult = valid\ntag = 972ce54713c05c4bb4d088c0a30cacd3\n\n# tcId = 49\naad = 413036411af75745\nct = b7ca3879f95140bf6a97b3212218b7bf864a51e5bb0b3e\niv = acad618039b317470d21621b\nkey = 5d40db0cc18ef2e42815d3b6245a466a0b30a0f93e318ac10edde3bf8ad98160\nmsg = 959dde1ef3129b27702c558849e466f2baca1a45bdf4b2\nresult = valid\ntag = fe558fb570145470ea693eb76eb73171\n\n# tcId = 50\naad = \nct = 42f26c56cb4be21d9d8d0c80fc99dde00d75f38074bfe764\niv = e6b1adf2fd58a8762c65f31b\nkey = 0212a8de5007ed87b33f1a7090b6114f9e08cefd9607f2c276bdcfdbc5ce9cd7\nmsg = 10f1ecf9c60584665d9ae5efe279e7f7377eea6916d2b111\nresult = valid\ntag = 54aa7e13d48fff7d7557039457040a3a\n\n# tcId = 51\naad = 3e8bc5ade182ff08\nct = 123032437b4bfd6920e8f7e7e0087ae4889ebe7a0ad0e900\niv = 6b282ebecc541bcd7834ed55\nkey = c5bc09565646e7edda954f1f739223dada20b95c44ab033d0fae4b0283d18be3\nmsg = 9222f9018e54fd6de1200806a9ee8e4cc904d29f25cba193\nresult = valid\ntag = 3cf68f179550da63d3b96c2d55411865\n\n# tcId = 52\naad = \nct = 1d218c9f1f9f02f248a6f976a7557057f37d9393d9f213c1f3\niv = abfaf42e0dba884efcf07823\nkey = 9460b3c44ed86e70f3bda66385e1ca10b0c1677ef4f1360532830d17535f996f\nmsg = 5c5cce881b93fb7a1b7939af1ffc5f84d3280ada778cca0953\nresult = valid\ntag = bc88344c6fdc898feed394fb28511316\n\n# tcId = 53\naad = 84cdff939391c022\nct = 9715d344e8d3f3a3eaa98a9cea57c0cd717c6ef5076027c9ec\niv = 85f18ad8ff72cafee2452ab8\nkey = c111d6d5d78a071b15ab37cc8c3819199387ab7c1933aa97b1489f6584ba8e2a\nmsg = 6989c646a10b7c76f4d9f7d574da40e152013cf0dd78f5aa8a\nresult = valid\ntag = 3056ff5ee0aa8636bb639984edb5236b\n\n# tcId = 54\naad = \nct = 9089bbdb8bcfd124e227bf75c4bfe1cba2004a274fc31aa32358\niv = a6f9a8d335fa84c3b27dcd2a\nkey = 8a1b1e699a0c4a3e610b10902daedab1bf1ea0d505c47d7842cbcee0d3b1b6e6\nmsg = ee6a15fc183108f0877e7f2b8a9615f4b3fc36e1c83440f66aad\nresult = valid\ntag = fd2e21c64a019621c68594826cd7b1cd\n\n# tcId = 55\naad = 85073f2edc13d3a1\nct = 796ffb70ab43e7fa79f95583e384524727bb3e47fc45b969f714\niv = ebc19fc9ecb2339908ea3836\nkey = 74b384e6e013ec4172ed7a28a10fb9bb79b4be2a24f6999e3d3caa28e64a8656\nmsg = 3aa9f7372f056e5a0729752d9a37132d6dd07c56792e1c7582a9\nresult = valid\ntag = c3322b4445de5f3c9f18dcc847cc94c3\n\n# tcId = 56\naad = \nct = 49c81d17d67d7ba9954f497d0b0ddc21f3f839c9d2cc198d30bc2c\niv = f3307430f492d2b8a72d3a81\nkey = 77d824795d2029f0eb0e0baab5cfeb32f7e93474913a7f95c737a667a3c33314\nmsg = 0c4179a497d8fdd72796fb725692b805d63b7c718359cf10518aee\nresult = valid\ntag = 50009899e5b2a9726c8f3556cadfbe84\n\n# tcId = 57\naad = 73365f6d80edb1d8\nct = 4c129fc13cbdd9d3fe81ac755bf4fbea2fdd7e0aca0505a6ee9637\niv = 342ada4f0c115124b222df80\nkey = bec5eac68f893951cbd7d1ecd3ee6611130dd9c3f80cddf95111d07d5edd76d1\nmsg = 481433d8b1cd38af4a750e13a64b7a4e8507682b3517595938a20e\nresult = valid\ntag = 9cede1d30a03db5d55265d3648bc40d4\n\n# tcId = 58\naad = \nct = a6fa8f57ddc81d6099f667dd62402b6a5d5b7d05a329298029113169\niv = 9544d41ece0c92ef01cfac2d\nkey = a59c1e13064df8f2b8df77a492b0ca2eae921b52a84b305a3a9a51408a9ecb69\nmsg = 1c35b898821ba55c2617c25df9e6df2a8002b384902186cd69dfd20e\nresult = valid\ntag = bb24e38b31dbbc3e575b9e3ee076af2a\n\n# tcId = 59\naad = 770f6e6e89a3fe8e\nct = fd42cb5cf894f879e3cf751662aaa58a2288cc53548802becaf42359\niv = 829f005e980f0a6e2f983eaa\nkey = 084b5d7365f1a8fec6365939ed741e6ea5893e0318d82ab47500a97d77aaa041\nmsg = 7510016efadc385a71ed689ceb590c8ea9cc1e81b793338bddf5f10c\nresult = valid\ntag = 188329438afe1cd7225d0478aa90c773\n\n# tcId = 60\naad = \nct = 402302b56140c4dcc39774732c55883de124ce4bf0a0261cfa1569e2cf\niv = 4946a0d6adea93b82d4332e5\nkey = 5a7f850a1d9aafa77d59ae1b731965e8aaec6352280fc76a7b5e23ef3610cfe4\nmsg = 3c161d791f624fb0388e808f0f69ed790dbe4cbd089ebac46627bcf01d\nresult = valid\ntag = e830bfe933a96786cff2dd72b82c4bd5\n\n# tcId = 61\naad = f2415377ad283fd8\nct = d052932bad6e6c4f835f02019e52d7ff807dc2a5aac2040883c79dd3d5\niv = 2f90a65e9e48725de6ffc727\nkey = e6d5a4246f6f05618b59c8f9ec3ac8068cc0d3f351c571aa52b09cb251f9c2f6\nmsg = 964fc9e0e8355947aa1c2caadd7b3dbef82a1024e623606fac436ef573\nresult = valid\ntag = 655f93396b4d755dc4475721665fed91\n\n# tcId = 62\naad = \nct = 83f5c77396cabd28dfcc002cba0756d4ea5455e0261d847d5708aac21e8d\niv = a797205a6cacdd7e47a4789d\nkey = 09e822123adbb1ed89b79a58619c64853992f8371d46338712f6c91ab11a68bb\nmsg = 80b71bbe833629841bd3aeaeb9db6123e51d367b436", "fe9d2d3454b62cfad\nresult = valid\ntag = 705a05820a21f381d244d40e58d2f16b\n\n# tcId = 63\naad = 200a9c95946ff05c\nct = 209b7539385c8b19ecd0fd8b5011b2996e316f1942064e68edfa363acbcd\niv = 9d8cdf289dddd09afdc1b02f\nkey = 625735fe7f8fc81b0c1edc3d08a78b41268f87a3c68488b674222630c1d587a5\nmsg = 67ae1882d0b1c1b2485bec98115ecf53b9b438deb1d0400531705038873a\nresult = valid\ntag = fa2f454b9fa2608f780f7c6f9b780fe1\n\n# tcId = 64\naad = \nct = 45c7d6b53acad4abb68876a6e96a48fb59524d2c92c9d8a189c9fd2db91746\niv = 04a9be03508a5f31371a6fd2\nkey = 2eb51c469aa8eb9e6c54a8349bae50a20f0e382711bba1152c424f03b6671d71\nmsg = b053999286a2824f42cc8c203ab24e2c97a685adcc2ad32662558e55a5c729\nresult = valid\ntag = 566d3ca10e311b695f3eae1551652493\n\n# tcId = 65\naad = 374618a06ea98a48\nct = 46a80c4187024720084627580080dde5a3f4a11093a7076ed6f3d326bc7b70\niv = 470a339ecb3219b8b81a1f8b\nkey = 7f5b74c07ed1b40fd14358fe2ff2a740c116c7706510e6a437f19ea49911cec4\nmsg = f45206abc25552b2abc9ab7fa243035fedaaddc3b2293956f1ea6e7156e7eb\nresult = valid\ntag = 534d4aa2835a52e72d14df0e4f47f25f\n\n# tcId = 66\naad = \nct = ea29afa49d36e8760f5fe19723b9811ed5d519934a440f5081ac430b953b0e21\niv = 72cfd90ef3026ca22b7e6e6a\nkey = e1731d5854e1b70cb3ffe8b786a2b3ebf0994370954757b9dc8c7bc5354634a3\nmsg = b9c554cbc36ac18ae897df7beecac1dbeb4eafa156bb60ce2e5d48f05715e678\nresult = valid\ntag = 222541af46b86533c6b68d2ff108a7ea\n\n# tcId = 67\naad = 2333e5ce0f93b059\nct = 6dad637897544d8bf6be9507ed4d1bb2e954bc427e5de729daf50762846ff2f4\niv = 262880d475f3dac5340dd1b8\nkey = 27d860631b0485a410702fea61bc873f3442260caded4abde25b786a2d97f145\nmsg = 6b2604996cd30c14a13a5257ed6cffd3bc5e29d6b97eb1799eb335e281ea451e\nresult = valid\ntag = 7b997d93c982189d7095dc794c746232\n\n# tcId = 68\naad = \nct = f5982b601c7a18fc72a65b218c44974dc564d8314cbe6f87fcf6c6cfbe618b34b1\niv = c26c4b3bfdb97ee6b0f63ca1\nkey = 5155dee9aade1cc61ee7e3f92660f7590f5e5ba82f1b59b850e3fa453d2fa6b3\nmsg = 2734e08eff8f5c4f84fa0c207f49c7fd78af1ad5123ff81f83f500edf4eda09edf\nresult = valid\ntag = c43632f55760b5d1ed37556a94d049b5\n\n# tcId = 69\naad = e99698241c599b5f\nct = eaf6810e6ec1cb7a2918856257d1aa3d51a827879146c6337ecf535e9c89b149c5\niv = ad8050dc6d122dce3e5639ed\nkey = 573f08ebbe0cce4ac9618e8c3b224bea0a32f055c6996838a32f527ca3c3b695\nmsg = 668d5e3f95fe030daf432a5fc5837af3a79c81e94b28d8204c5ee262ab3c9908a7\nresult = valid\ntag = a2950c2f394a3466c345f796323c1aa7\n\n# tcId = 70\naad = \nct = fba78ae4f9d808a62e3da40be2cb7700c3613d9eb2c529c652e76a432c658d27095f0eb8f940c324981ea935e507f9\niv = e74a515e7e2102b90bef55d2\nkey = cf0d40a4644e5f51815165d5301b22631f4544c49a1878e3a0a5e8e1aae0f264\nmsg = 973d0c753826bae466cf9abb3493152e9de7819e2bd0c71171346b4d2cebf8041aa3cedc0dfd7b467e26228bc86c9a\nresult = valid\ntag = 8f046956db3a512908bd7afc8f2ab0a9\n\n# tcId = 71\naad = b3e4064683b02d84\nct = a1ffed80761829ecce242e0e88b138049016bca018da2b6e19986b3e318cae8d806198fb4c527cc39350ebddeac573\niv = d4d807341683825b31cd4d95\nkey = 6cbfd71c645d184cf5d23c402bdb0d25ec54898c8a0273d42eb5be109fdcb2ac\nmsg = a98995504df16f748bfb7785ff91eeb3b660ea9ed3450c3d5e7b0e79ef653659a9978d75542ef91c456762215640b9\nresult = valid\ntag = c4cbf0befda0b70242c640d7cd02d7a3\n\n# tcId = 72\naad = \nct = 9a4ef22b181677b5755c08f747c0f8d8e8d4c18a9cc2405c12bb51bb1872c8e8b877678bec442cfcbb0ff464a64b74332cf072898c7e0eddf6232ea6e27efe50\niv = d61040a313ed492823cc065b\nkey = 5b1d1035c0b17ee0b0444767f80a25b8c1b741f4b50a4d3052226baa1c6fb701\nmsg = d096803181beef9e008ff85d5ddc38ddacf0f09ee5f7e07f1e4079cb64d0dc8f5e6711cd4921a7887de76e2678fdc67618f1185586bfea9d4c685d50e4bb9a82\nresult = valid\ntag = 9ff3427a0f32fa566d9ca0a78aefc013\n\n# tcId = 73\naad = 7193f623663321a2\nct = 5fbbdecc34be201614f636031eeb42f1cace3c79a12cffd871ee8e73820c829749f1abb4294367849fb6c2aa56bda8a3078f723d7c1c852024b017b58973fb1e\niv = d31c21aba175b70de4ebb19c\nkey = 97d635c4f47574d9998a90875da1d3a284b755b2d39297a5725235190e10a97e\nmsg = 94ee166d6d6ecf8832437136b4ae805d428864359586d9193a25016293edba443c58e07e7b7195ec5bd84582a9d56c8d4a108c7d7ce34e6c6f8ea1bec0567317\nresult = valid\ntag = 09263da7b4cb921452f97dca40f580ec\n\n# tcId = 74\naad = \nct = d0102f6c258bf49742cec34cf2d0fedf23d105fb4c84cf98515e1bc9a64f8ad5be8f0721bde50645d00083c3a263a31053b760245f52ae2866a5ec83b19f61be1d30d5c5d9fecc4cbbe08fd385813a2aa39a00ff9c10f7f23702add1e4b2ffa31c\niv = 17c86a8abbb7e003acde2799\nkey = fe6e55bdaed1f7284ca5fc0f8c5f2b8df56dc0f49e8ca66a41995e783351f901\nmsg = b429eb80fb8fe8baeda0c85b9c333458e7c2992e558475069d12d45c22217564121588032297eff56783742a5fc22d7410ffb29d66098661d76f126c3c27689e43b37267cac5a3a6d3ab49e391da29cd3054a5692e2807e4c3ea46c8761d50f592\nresult = valid\ntag = 41865fc71de12b19612127ce49993bb0\n\n# tcId = 75\naad = a11c40b603767330\nct = 7545391b51de01d5c53dfaca777909063e58edee4bb1227e7110ac4d2620c2aec2f848f56deeb037a8dced75afa8a6c890e2dee42f950bb33d9e2424d08a505d899563973ed38870f3de6ee2adc7fe072c366c14e2cf7ca62fb3d36bee11685461\niv = 46362f45d6379e63e5229460\nkey = aabc063474e65c4c3e9bdc480dea97b45110c8618846ff6b15bdd2a4a5682c4e\nmsg = ceb534ce50dc23ff638ace3ef63ab2cc2973eeada80785fc165d06c2f5100ff5e8ab2882c475afcd05ccd49f2e7d8f55ef3a72e3dc51d6852b8e6b9e7aece57be6556b0b6d9413e33fc5fc24a9a205ad59574bb39d944a92dc47970d84a6ad3176\nresult = valid\ntag = b70d44ef8c66c5c7bbf10dcadd7facf6\n\n# tcId = 76\naad = \nct = 294a764c03353f5f4f6e93cd7e977480d6c343071db0b7c1f0db1e95b85e6053f0423168a9c7533268db9a194e7665359d14489bc47172a9f21370e89b0bd0e5ef9661738de282572bcc3e541247626e57e75dec0f91ac5c530bd1a53271842996dcd04d865321b1ecb6e7630114fe780291b8dc3e5d0abc8e65b1c5493e9af0\niv = 8a3ad26b28cd13ba6504e260\nkey = d7addd3889fadf8c893eee14ba2b7ea5bf56b449904869615bd05d5f114cf377\nmsg = c877a76bf595560772167c6e3bcc705305db9c6fcbeb90f4fea85116038bc53c3fa5b4b4ea0de5cc534fbe1cf9ae44824c6c2c0a5c885bd8c3cdc906f12675737e434b983e1e231a52a275db5fb1a0cac6a07b3b7dcb19482a5d3b06a9317a54826cea6b36fce452fa9b5475e2aaf25499499d8a8932a19eb987c903bd8502fe\nresult = valid\ntag = f2b974ca0f14fb9f92014bff18573cff\n\n# tcId = 77\naad = 0587af8530ad0547\nct = 2b90b4f3de280c44913d1984bdd5dfa0566c6a14a058659a9b623277b0bb6e82101e79395d12e643f62d9a822bae497907493e4f8213fcf99da8a78fdf867af36bc8b0931c1886b4f0ae5729986494dbd59737e956cd8f226c7c522689d082f023894d54acab0c4d609f3746a67369bb8876008f7fd3dc6681c5fb9d728c5911\niv = 903188433c1ce8971aa19b9d\nkey = 80be86fb6fc49bc73428cab576f6ad72ff6aca04001b8b1c57a7128be73900aa\nmsg = 67ce499cd8ed68bd717dfe61c60f27d260b1c163a72e8cc8597253d3d987c2dbe1bff2e44d9bd4765d3e53d9c3f8eb3b90e751f47c7157bdc1142bc33f5833ac1cd1262cbb239066b334a4ed99ae82c74f2b49540f1a614bc239d8fc5add8c178184e41281f6e66c5c3117fd953547f7c829425b5082aa69686847eaf5784692\nresult = valid\ntag = f005ebe1c1ada75a9cee8d630881d5b8\n\n# tcId = 78\naad = 02\nct = 7e72f5a185af16a611921b438f749f0b\niv = 87345f1055fd9e2102d50656\nkey = 7d00b48095adfa3272050607b264185002ba99957c498be022770f2ce2f3143c\nmsg = e5ccaa441bc814688f8f6e8f28b500b2\nresult = valid\ntag = 1242c670732334029adfe1c5001651e4\n\n# tcId = 79\naad = b648\nct = 85f29a719557cdd14d1f8fffab6d9e60\niv = 87a3163ec0598ad95b3aa713\nkey = 6432717f1db85e41ac7836bce25185a080d5762b9e2b18444b6ec72c3bd8e4dc\nmsg = 02cde168fba3f544bbd0332f7adeada8\nresult = valid\ntag = 732ca32becd515a1ed353f542e999858\n\n# tcId = 80\naad = 8b71ac\nct = d46e8265a8c6a25393dd956bb44397ad\niv = 25b7bdf4a6dcbf7c9a3ec2b3\nkey = 7afa0f59dfcb5ad3a76490c5c804327c8d052be737a60fa8bcbf0a2c36630a43\nmsg = 623e6ba6d3166a338bfcc7af90a230c8\nresult = valid\ntag = e28f3ad9e3ef4a3d94ee07bf538eaafb\n\n# tcId = 81\naad = 3a5ddf40\nct = 2d3cb2d9303491e264f2904f0e0753f4\niv = 6fb0d1417cdfff4df37db08c\nkey = 2ec25b0ec7ac244224e9c7fc2fa5d3ef17809e19fd6e954158dd0d72738a4cc8\nmsg = a1c933768a6d573ebf68a99e5e18dae8\nresult = valid\ntag = 6c1db959362d217b2322b466536bfea0\n\n# tcId = 82\naad = 9eec540bb0\nct = a988c03c71b956ff086d0470d706bd34\niv = 2538fc67afb9eab333f83290\nkey = 0a2cf52371cf9d9f95b10108fc82b4fd6110a8ba9a88a26083685ad29826891a\nmsg = 0d8c691d044a3978d790432dc71d69f8\nresult = valid\ntag = b35d7cbf2beb894b0c746e0730429e15\n\n# tcId = 83\naad = 56e014d97c74\nct = 32bf95d4c195dbaf58d9af4001c6e57d\niv = a071be999151e2a1c41c81e9\nkey = 307e886b38bb18b445f8a2c6d6f8932492a9cea8d041ba72eb5efdfa70d0b8d2\nmsg = 9aba22b495cb7ec887ddaa62019aa14d\nresult = valid\ntag = 4393808703d67a90870578046cd8b525\n\n# tcId = 84\naad = bb5a3812f0aefd\nct = 2a2", @@ -7446,9 +7756,9 @@ static const char *kData248[] = { "fffffffffff025d1565924f6c7418de9babf8be4407ffffffffffffffffffffffffffffffffc35e56b05c9d78eb406fb3f474f36294ffffffffffffffffffffffffffffffffc35e56b05c9d78eb406fb3f474f36294\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 19de9b9ec8b247d42bbee2016d6715babf286fd979807951b183a188930ad15ecef0b056a2eecc51d30838e640615e1464413d71939b9cb0a4d32ef115da9e1021d14da7b4f76f9f68fa8903138d563cdef8a3be837efbea7db940f762861f45\nresult = valid\ntag = 369cf17011cae47539e2723f010cf980\n\n# tcId = 283\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = f9ffffffffffffffffffffffffffffff005d1565924f6c7418de9babf8be4407d2ffffffffffffffffffffffffffffff5541133fd4554a1a89a3216ce40b9d0bd2ffffffffffffffffffffffffffffff5541133fd4554a1a89a3216ce40b9d0b\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 19de9b9ec8b247d42bbee2016d6715babd286fd979807951b183a188930ad15ee3f0b056a2eecc51d30838e640615e14f25e78fe1b53ae416d1fbc698522618f0cd14da7b4f76f9f68fa8903138d563c48e7e6310bb6c91bb475d26ff27ee0da\nresult = valid\ntag = 532eb8e272a8d171378b0d42dff2bed9\n\n# tcId = 284\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = d2ffffffffffffffffffffffffffffff98f82782afd996d0efe3800d48c1ca05ffffffffffffffffffffffffffffffff3a0c9639358f7c6d1ee0dc082de4d96effffffffffffffffffffffffffffffff3a0c9639358f7c6d1ee0dc082de4d96e\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 32de9b9ec8b247d42bbee2016d6715ba258d5d3e441683f546beba2e23755f5ccef0b056a2eecc51d30838e640615e149d13fdf8fa899836fa5c410d4ccd25ea21d14da7b4f76f9f68fa8903138d563c27aa6337ea6cff6c23362f0b3b91a4bf\nresult = valid\ntag = d1be7426cd12446fe52e8d45331e0835\n\n# tcId = 285\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff6b3fa796480ab62f9884dc7dfb4daf88faffffffffffffffffffffffffffffff79858179ae42311dacad2f325a8d3007faffffffffffffffffffffffffffffff79858179ae42311dacad2f325a8d3007\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1fde9b9ec8b247d42bbee2016d6715bad64add2aa3c5a30a31d9e65e90f93ad1cbf0b056a2eecc51d30838e640615e14de9aeab86144d5464811b2373ba4cc8324d14da7b4f76f9f68fa8903138d563c6423747771a1b21c917bdc314cf84dd6\nresult = valid\ntag = 62630c18de8c10876adb9f30f300963f\n\n# tcId = 286\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff7141e89bc0455e348313475fa4bdb3cbffffffffffffffffffffffffffffffff97d10c4f5c7356f4ef3e5fd79afe6e08ffffffffffffffffffffffffffffffff97d10c4f5c7356f4ef3e5fd79afe6e08\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1fde9b9ec8b247d42bbee2016d6715bacc3492272b8a4b112a4e7d7ccf092692cef0b056a2eecc51d30838e640615e1430ce678e9375b2af0b82c2d2fbd7928c21d14da7b4f76f9f68fa8903138d563c8a77f9418390d5f5d2e8acd48c8b13d9\nresult = valid\ntag = feb6412b9031f076eddcd9426fff5b31\n\n# tcId = 287\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = d4ffffffffffffffffffffffffffffffcf5e1ff522101a6eade8cd6049b76f0dffffffffffffffffffffffffffffffff20c173ad1d88a70fa8cf4367eef82a8affffffffffffffffffffffffffffffff20c173ad1d88a70fa8cf4367eef82a8a\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 34de9b9ec8b247d42bbee2016d6715ba722b6549c9df0f4b04b5f7432203fa54cef0b056a2eecc51d30838e640615e1487de186cd28e43544c73de628fd1d60e21d14da7b4f76f9f68fa8903138d563c3d6786a3c26b240e9519b064f88d575b\nresult = valid\ntag = dafdf430c8124483c175404b6bff5b41\n\n# tcId = 288\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = ddffffffffffffffffffffffffffffff7817ec25241bcc26c5b27dadbcb12b0f61fa3a21712933597b1da91633f3e64761fa3a21712933597b1da91633f3e647\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 3dde9b9ec8b247d42bbee2016d6715bac5629699cfd4d9036cef478ed705be5650f575882c3800f757ea6e0f8c6d47acc6e551e0be2fd7029fa1341352da1ac3\nresult = valid\ntag = f8800c5b6283dddfc41f935c01bd0d24\n\n# tcId = 289\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = ffffffffffffffffffffffffffffffffdba35e4e633a3c646379bc7f82db98ce07f07c0b2132c73943308806721c542707f07c0b2132c73943308806721c5427\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1fde9b9ec8b247d42bbee2016d6715ba66d624f288f52941ca24865ce96f0d9736ff33a27c23f4976fc74f1fcd82f5cca0ef17caee342362a78c15031335a8a3\nresult = valid\ntag = 38bfb8318c627d86c34bab1f1ebd0db0\n\n# tcId = 290\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = 14cada5efddb046351f2487c56a6e4f6e5ffffffffffffffffffffffffffffff8558412d1bf9b512930fed3d4b054406e5ffffffffffffffffffffffffffffff8558412d1bf9b512930fed3d4b054406\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = f4ebbe3fca96bc4885b35582c43e0eb3588a85431430eada56a2c5dc944b6aa6b4570e8446e886bcbff82a24f49be5ed42e0943e30f91ba41b4362fa9ed6037b5b76f37550f12572040a9bc1a777edc5\nresult = valid\ntag = af7293eb09957d9de7432dd41316f0e4\n\n# tcId = 291\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = faffffffffffffffffffffffffffffffea6f4576d71568cae5ceee80e97eaf0edbffffffffffffffffffffffffffffffd1d2b02fe01eb32df3f3f0f6dacc4f05dbffffffffffffffffffffffffffffffd1d2b02fe01eb32df3f3f0f6dacc4f05\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1ade9b9ec8b247d42bbee2016d6715ba571a3fca3cda7def4c93d4a382ca3a57eaf0b056a2eecc51d30838e640615e1476cddbee2f185776174f6df3bbe5b38105d14da7b4f76f9f68fa8903138d563ccc7445213ffd302cce2503f5ccb932d4\nresult = valid\ntag = e178b0d5eb9bc551fa645c49f9f17667\n\n# tcId = 292\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff0344dfbdb8a569b44dfc38ef4c796b50e3ffffffffffffffffffffffffffffff7a8b7d60e12965e60abea0434ec70b07e3ffffffffffffffffffffffffffffff7a8b7d60e12965e60abea0434ec70b07\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1fde9b9ec8b247d42bbee2016d6715babe31a501536a7c91e4a102cc27cdfe09d2f0b056a2eecc51d30838e640615e14dd9416a12e2f81bdee023d462feef7833dd14da7b4f76f9f68fa8903138d563c672d886e3ecae6e73768534058b276d6\nresult = valid\ntag = bdbf63db237d195ecefdc251f5f17677\n\n# tcId = 293\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = deffffffffffffffffffffffffffffff3812dd4103ddb68f86081010aac51901d3ffffffffffffffffffffffffffffff1c98423cdb89c7e94daa2af16e06d505d3ffffffffffffffffffffffffffffff1c98423cdb89c7e94daa2af16e06d505\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 3ede9b9ec8b247d42bbee2016d6715ba8567a7fde812a3aa2f552a33c1718c58e2f0b056a2eecc51d30838e640615e14bb8729fd148f23b2a916b7f40f2f29810dd14da7b4f76f9f68fa8903138d563c013eb732046a44e8707cd9f27873a8d4\nresult = valid\ntag = b4ccb422bc5f7264aff73f3675ff5b19\n\n[ivSize = 0]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 294\n# invalid nonce size\naad = \nct = \niv = \nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 64]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 295\n# invalid nonce size\naa", "d = \nct = \niv = 0001020304050607\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 88]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 296\n# invalid nonce size\naad = \nct = \niv = 000102030405060708090a\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 104]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 297\n# invalid nonce size\naad = \nct = \niv = 000102030405060708090a0b0c\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 112]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 298\n# invalid nonce size\naad = \nct = \niv = 000102030405060708090a0b0c0d\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 128]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 299\n# invalid nonce size\naad = \nct = \niv = 000102030405060708090a0b0c0d0e0f\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 160]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 300\n# invalid nonce size\naad = \nct = \niv = 000102030405060708090a0b0c0d0e0f10111213\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n", }; -static const size_t kLen249 = 232513; +static const size_t kLen254 = 232513; -static const char *kData249[] = { +static const char *kData254[] = { "# Imported from Wycheproof's dsa_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: DSA\n# Generator version: 0.8r12\n\n[key.g = 0835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d]\n[key.keySize = 1024]\n[key.p = 00b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f]\n[key.q = 00b90b38ba0a50a43ec6898d3f9b68049777f489b1]\n[key.type = DsaPublicKey]\n[key.y = 173931dda31eff32f24b383091bf77eacdc6efd557624911d8e9b9debf0f256d0cffac5567b33f6eaae9d3275bbed7ef9f5f94c4003c959e49a1ed3f58c31b21baccc0ed8840b46145f121b8906d072129bae01f071947997e8ef760d2d9ea21d08a5eb7e89390b21a85664713c549e25feda6e9e6c31970866bdfbc8fa981f6]\n[keyDer = 308201b63082012b06072a8648ce3804013082011e02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b10281800835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d03818400028180173931dda31eff32f24b383091bf77eacdc6efd557624911d8e9b9debf0f256d0cffac5567b33f6eaae9d3275bbed7ef9f5f94c4003c959e49a1ed3f58c31b21baccc0ed8840b46145f121b8906d072129bae01f071947997e8ef760d2d9ea21d08a5eb7e89390b21a85664713c549e25feda6e9e6c31970866bdfbc8fa981f6]\n[sha = SHA-1]\n\n# tcId = 1\n# Legacy:ASN encoding of r misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 302c0214aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\nflags = NoLeadingZero\n\n# tcId = 2\n# valid\nmsg = 313233343030\nresult = valid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 3\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30812d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 4\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082002d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 5\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 7\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000002d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 8\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000002d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 9\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 10\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 11\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 12\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 13\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 14\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 302d028000aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0280496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 17\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 18\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 19\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 20\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f0000021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 21\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 22\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0500\n\n# tcId = 23\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3032498177302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30312500302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 302f302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0004deadbeef\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3032221a498177021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 303122192500021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30352217021500aa6a258fbf7d90e15614676d377df8b10e38db4a0004deadbeef0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3032021500aa6a258fbf7d90e15614676d377df8b10e38db4a22194981770214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a221825000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3035021500aa6a258fbf7d90e15614676d377df8b10e38db4a22160214496d5220b5f67d3532d1f991203bc3523b964c3b0004deadbeef\n\n# tcId = 32\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3035aa00bb00cd00302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3033aa02aabb302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3035221daa00bb00cd00021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = i", "nvalid\nsig = 3033221baa02aabb021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3035021500aa6a258fbf7d90e15614676d377df8b10e38db4a221caa00bb00cd000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3033021500aa6a258fbf7d90e15614676d377df8b10e38db4a221aaa02aabb0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 38\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 39\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30312280021500aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a22800214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 42\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080312d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30312280031500aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a22800314496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 45\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 46\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e2d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f2d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 312d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 322d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff2d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 51\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 52\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 3031300102302c1500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 53\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 302c1500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 55\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 56\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b00\n\n# tcId = 57\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b05000000\n\n# tcId = 58\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b060811220000\n\n# tcId = 59\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000fe02beef\n\n# tcId = 60\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0002beef\n\n# tcId = 61\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f3000021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 62\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b3000\n\n# tcId = 63\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 3030021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3bbf7f00\n\n# tcId = 64\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 65\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 3017021500aa6a258fbf7d90e15614676d377df8b10e38db4a\n\n# tcId = 66\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 3043021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 67\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302e02811500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a028114496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 69\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 302f0282001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 70\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a02820014496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 71\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021600aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021400aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0215496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0213496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 75\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30320285010000001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3032021500aa6a258fbf7d90e15614676d377df8b10e38db4a02850100000014496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 77\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3036028901000000000000001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3036021500aa6a258fbf7d90e15614676d377df8b10e38db4a0289010000000000000014496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 79\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 303102847fffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 80\n# length of integer = 2**", "31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a02847fffffff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 81\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30310284ffffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a0284ffffffff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 83\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30320285ffffffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3032021500aa6a258fbf7d90e15614676d377df8b10e38db4a0285ffffffffff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 85\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30350288ffffffffffffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3035021500aa6a258fbf7d90e15614676d377df8b10e38db4a0288ffffffffffffffff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 87\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d02ff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a02ff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 89\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 30160214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 90\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 3017020214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 3018021500aa6a258fbf7d90e15614676d377df8b10e38db4a02\n\n# tcId = 92\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021700aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0216496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 94\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f0217000000aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a02160000496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 96\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 97\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021700aa6a258fbf7d90e15614676d377df8b10e38db4a05000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0216496d5220b5f67d3532d1f991203bc3523b964c3b0500\n\n# tcId = 99\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 301802810214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3019021500aa6a258fbf7d90e15614676d377df8b10e38db4a0281\n\n# tcId = 101\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 301805000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3019021500aa6a258fbf7d90e15614676d377df8b10e38db4a0500\n\n# tcId = 103\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d011500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d031500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d041500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302dff1500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0014496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0114496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0314496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0414496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4aff14496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 113\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 301802000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3019021500aa6a258fbf7d90e15614676d377df8b10e38db4a0200\n\n# tcId = 115\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 303122190201000214aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 116\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a221802014902136d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 117\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021502aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 118\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a02144b6d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 119\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38dbca0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 120\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964cbb\n\n# tcId = 121\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 302c021400aa6a258fbf7d90e15614676d377df8b10e38db0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 122\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a0213496d5220b5f67d3532d1f991203bc3523b964c\n\n# tcId = 123\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a02136d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 124\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 302e0216ff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a0215ff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 126\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 30190901800214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 127\n# replaced integer by infinity\nmsg = 313233343030\nresult = in", @@ -7479,9 +7789,9 @@ static const char *kData249[] = { "= 54657374\nresult = invalid\nsig = 3008090380fe01020101\nflags = EdgeCase\n\n# tcId = 881\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3008090380fe010201ff\nflags = EdgeCase\n\n# tcId = 882\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3023090380fe01021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 883\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3023090380fe01021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 884\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 885\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 886\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 887\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024090380fe01021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 888\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010a090380fe0102820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 889\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 300a090380fe01090380fe01\nflags = EdgeCase\n\n# tcId = 890\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3008090380fe01090142\nflags = EdgeCase\n\n# tcId = 891\n# Signature encoding contains wrong type.\nmsg = 54657374\nresult = invalid\nsig = 30060201010c0130\n\n# tcId = 892\n# Signature encoding contains wrong type.\nmsg = 54657374\nresult = invalid\nsig = 30050201010c00\n\n# tcId = 893\n# Signature encoding contains wrong type.\nmsg = 54657374\nresult = invalid\nsig = 30090c0225730c03732573\n\n# tcId = 894\n# Signature encoding contains wrong type.\nmsg = 54657374\nresult = invalid\nsig = 30080201013003020100\n\n# tcId = 895\n# Signature encoding contains wrong type.\nmsg = 54657374\nresult = invalid\nsig = 3003020101\n\n# tcId = 896\n# Signature encoding contains wrong type.\nmsg = 54657374\nresult = invalid\nsig = 3006020101010100\n\n# tcId = 897\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303c021c296410b8cb6200edafd1205e7377a09ad2011ac7b15b8bc9b9b4c6db021c25ca283c868dc2a5ce86aafcf681ce21d660b461da48270f15b53889\n\n# tcId = 898\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303d021c347c4f6875bf4476afbdd6b2b1f9e35c870e785e708e661109bd068e021d00b0b908a617d3ad6c8bc277f397095c00e659c86ca7c600090571ab17\n\n# tcId = 899\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303c021c3c76bc6f17369414d4c21c5361ed0cca6e79f73f90706f1f7ca9f05a021c3cc60d8a0d44fb967baa0e5621e12cd434aafd748cba3e7cdc733b2f\n\n# tcId = 900\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303e021d0086a5efea8e6a8033b8a0034b52ae614e1f14fbcbfa0bb50194efa6a7021d00b3d66f6d2b10cfe62fe96b78fcf41ca7b442aceb98ab109a01409e4a\n\n# tcId = 901\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303d021c16727d52bd711e9a63e0dd2c4db045cfb993942b1e39e4f43a65c11a021d009fb9c02d10c968e75bb15acab8467f30b84481f679e136e8af65a266\n\n[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]\n[key.keySize = 2048]\n[key.p = 008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]\n[key.q = 00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]\n[key.type = DsaPublicKey]\n[key.y = 00848177b9bcff136c52caef2a4a9bcb64dbefbac69e18aae499696b5ec7b270e90478b413bb8ad8f8eee8ad32107d7ba492c36b007f9ef30ebe1ee484d0ea7cb0ff4afaa8c705ad5e16576975414f1bc0efed25c2190a3ed0068bffa1f03bf6f21056c9bb383350851997cbc89cf8729b394527f08ab93ce9b360aa055a47177e82a4ce6fe76c8dffddbd6ee20fa08d0085d3983edd2c8d9a366ad2245b4ed28d6754769f5f3a798be4be19cf469399865d464e3f640438bce03c962c2344d0d550542aed3db55c153833bea44b4146878ba347c8614436c6aac4fd1a60f25c62b3f869a7d55cab4b7122d5e9af4322a3fc8214fa55dc1ee021459fb2c4595827]\n[keyDer = 308203433082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde03820106000282010100848177b9bcff136c52caef2a4a9bcb64dbefbac69e18aae499696b5ec7b270e90478b413bb8ad8f8eee8ad32107d7ba492c36b007f9ef30ebe1ee484d0ea7cb0ff4afaa8c705ad5e16576975414f1bc0efed25c2190a3ed0068bffa1f03bf6f21056c9bb383350851997cbc89cf8729b394527f08ab93ce9b360aa055a47177e82a4ce6fe76c8dffddbd6ee20fa08d0085d3983edd2c8d9a366ad2245b4ed28d6754769f5f3a798be4be19cf469399865d464e3f640438bce03c962c2344d0d550542aed3db55c153833bea44b4146878ba347c8614436c6aac4fd1a60f25c62b3f869a7d55cab4b7122d5e9af4322a3fc8214fa55dc1ee021459fb2c4595827]\n[sha = SHA-256]\n\n# tcId = 902\n# r,s = 1,1\nmsg = 54657374\nresult = valid\nsig = 3006020101020101\n\n# tcId = 903\n# r,s = 1,5\nmsg = 54657374\nresult = valid\nsig = 3006020101020105\n\n# tcId = 904\n# u2 small\nmsg = 54657374\nresult = valid\nsig = 3022020101021d009592121ed12d93197f1ffb863ac63937f28ef4f62f1e009a30aabab1\n\n# tcId = 905\n# s == q-1\nmsg = 54657374\nresult = valid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n\n[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296d", "a887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]\n[key.keySize = 2048]\n[key.p = 008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]\n[key.q = 00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]\n[key.type = DsaPublicKey]\n[key.y = 629374929537e2c3b09f30d881554ca7357f89e25105474dbbce06e4001efd61481a457aa0d7d7e565e90b7a3d9c688005fb404bf3b6d3e61e402300beee7c58ceeaf00b112ddfeef3cbc2020ba2206dd4ef0563d7fa52c321b4ee6280eb8585041d03cadb9244dff21dc90417bbe6f06b91c2ca6484437c3846926b18ee22275081b60726e7a26a29a947eabd035ede83d65927b3ceb0d4d8c2f34e94a3de0f57e4ea99af059657529f6954b1ac9bb4484ca76b4083e1cf4264eff028662137761e4d7f35b1eda3cf516856f25553840e43ae38379d234b06c891822132081d19f0d5db9f23b4bbd5f5667dd78f3dd7f1fe5f25ca48515f6335ce1c9fd0a64b]\n[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde038201050002820100629374929537e2c3b09f30d881554ca7357f89e25105474dbbce06e4001efd61481a457aa0d7d7e565e90b7a3d9c688005fb404bf3b6d3e61e402300beee7c58ceeaf00b112ddfeef3cbc2020ba2206dd4ef0563d7fa52c321b4ee6280eb8585041d03cadb9244dff21dc90417bbe6f06b91c2ca6484437c3846926b18ee22275081b60726e7a26a29a947eabd035ede83d65927b3ceb0d4d8c2f34e94a3de0f57e4ea99af059657529f6954b1ac9bb4484ca76b4083e1cf4264eff028662137761e4d7f35b1eda3cf516856f25553840e43ae38379d234b06c891822132081d19f0d5db9f23b4bbd5f5667dd78f3dd7f1fe5f25ca48515f6335ce1c9fd0a64b]\n[sha = SHA-256]\n\n# tcId = 906\n# s == 1\nmsg = 54657374\nresult = valid\nsig = 3021021c5a252f4fc55618747fd94b13c9bee62bb958d85777cb07dd90710d24020101\n\n", }; -static const size_t kLen250 = 133793; +static const size_t kLen255 = 133793; -static const char *kData250[] = { +static const char *kData255[] = { "# Imported from Wycheproof's ecdh_secp224r1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDH\n# Generator version: 0.8r12\n\n[curve = secp224r1]\n[encoding = asn]\n\n# tcId = 1\n# normal case\nprivate = 565577a49415ca761a0322ad54e4ad0ae7625174baf372c2816f5328\npublic = 304e301006072a8648ce3d020106052b81040021033a00047d8ac211e1228eb094e285a957d9912e93deee433ed777440ae9fc719b01d050dfbe653e72f39491be87fb1a2742daa6e0a2aada98bb1aca\nresult = valid\nshared = b8ecdb552d39228ee332bafe4886dbff272f7109edf933bc7542bd4f\n\n# tcId = 2\n# compressed public key\nprivate = 565577a49415ca761a0322ad54e4ad0ae7625174baf372c2816f5328\npublic = 3032301006072a8648ce3d020106052b81040021031e00027d8ac211e1228eb094e285a957d9912e93deee433ed777440ae9fc71\nresult = acceptable\nshared = b8ecdb552d39228ee332bafe4886dbff272f7109edf933bc7542bd4f\nflags = CompressedPoint\n\n# tcId = 3\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004e73a6ca72f3a2fae6e0a01a0ed03bfa3058b04576942eaf063095e62ca16fd31fa0f38eeb592cbeea1147751fdd2a5b6cc0ead404467a5b6\nresult = valid\nshared = 00000000000000000000000000000000000000000000000000000003\n\n# tcId = 4\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a00045763fa2ae16367ad23d471cc9a52466f0d81d864e5640cefe384114594d9fecfbed4f254505ac8b41d2532055a07f0241c4818b552cbb636\nresult = valid\nshared = 00000000000000000000000100000000000000000000000000000001\n\n# tcId = 5\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004142c1fd80fa2121a59aa898144084ec033f7a56a34eee0b499e29ae51c6d8c1bbb1ef2a76d565899fe44ffc1207d530d7f598fb77f4bb76b\nresult = valid\nshared = 00000000000000ffffffffffffff0000000000000100000000000000\n\n# tcId = 6\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ed6f793e10c80d12d871cf8988399c4898a9bf9ffd8f27399f63de25f0051cdf4eec7f368f922cfcd948893ceca0c92e540cc4367a99a66a\nresult = valid\nshared = 00000000ffffffffffffffff00000000000000010000000000000000\n\n# tcId = 7\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a000408fcfc1a63c82860be12e4137433dfc40be9acdd245f9a8c4e56be61a385fc09f808383383f4b1d0d5365b6e5dcfacdc19bc7bcfed221274\nresult = valid\nshared = 0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff\n\n# tcId = 8\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004d883ed77f1861e8712800d31df67888fe39f150c79a27aa88caeda6b180f3f623e2ff3ab5370cf8179165b085af3dd4502850c0104caed9a\nresult = valid\nshared = 0003fffffff00000003fffffff00000003fffffff000000040000000\n\n# tcId = 9\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a00042b8b279b85ee3f3d2c0abeb36fdfc5aad6157d652d26489381a32cd73224bd757ef794acc92b0b3b9e7990618bb343a9a09bdb9d3616eff6\nresult = valid\nshared = 01fffffffc00000007fffffff00000001fffffffc000000080000001\n\n# tcId = 10\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a00048bd5f03391eeeae1744e8fc53d314efffafa4d3fa4f1b95c3388a9cd7c86358b273119c537133eb55e79c6ac510b10980b379b919ccf2e2f\nresult = valid\nshared = 0a15c112ff784b1445e889f955be7e3ffdf451a2c0e76ab5cb32cf41\n\n# tcId = 11\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ce9631b6a16227778625c8e5421ae083cdd913abefde01dbe69f6c2b95386aff2b483b2c47151cfaabfd000614c683ce2e1778221ae42c1b\nresult = valid\nshared = 62989eaaa26a16f07330c3c51e0a4631fd016bfcede26552816aee39\n\n# tcId = 12\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a00041f441c98eda956a6a7fdbfd8d21910860ab59d16c3e52f8e7fad6ca5df61a55fc508fc0499c55492f1e87bb2faa0cb4170b79f3a85ec2f3d\nresult = valid\nshared = 661ac958c0febbc718ccf39cefc6b66c4231fbb9a76f35228a3bf5c3\n\n# tcId = 13\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004be74583cb9d3a05ae54923624e478a329a697d842dfae33141c844d7d9ba4fc96e0fe716ac0542e87368662fc2f0cb9b0ae57936ddec7190\nresult = valid\nshared = 6d7e41821abe1094d430237923d2a50de31768ab51b12dce8a09e34c\n\n# tcId = 14\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004a281ad992b363597ac93ff0de8ab1f7e51a6672dcbb58f9d739ba430ce0192874038daefc3130eec65811c7255da70fea65c1003f6892faa\nresult = valid\nshared = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 15\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004be3e22133f51203f631b81dde8c020cdea5daa1f99cfc05c88fad2dc0f243798d6e72d1de9e3cdca4144e0a6c0f2a584d07589006972c197\nresult = valid\nshared = fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0008001\n\n# tcId = 16\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004af14547c20afbd91bfe64ea03d45a76a71241f23520ef897ff91eff1b54ca6ca8c25fd73852ec6654617434eff7f0225684d4dea7a4f8a97\nresult = valid\nshared = ffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff\n\n# tcId = 17\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004b1e484925018729926acda56ff3e2f6c1e7e8f162b178d8e8afb45564fceaa6da5d998fe26b6b26a055169063a5ab6908852ca8b54e2de6c\nresult = valid\nshared = fffff0000007fffffe000000ffffffc000001ffffff8000003ffffff\n\n# tcId = 18\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004937eb09fb145c8829cb7df20a4cbeed396791373de277871d6c5f9cc3b5b4fd56464a71fc4a2a6af3bd251952bffa829489e68a8d06f96b6\nresult = valid\nshared = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\n\n# tcId = 19\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004000000000000000000000000000000000000000000000000000000037cac269c67bd55ea14efff4eadefe5e74978514af14c88fab46ec046\nresult = valid\nshared = 3fa0b9ff70b884f9f57bb84f7a9532d93f6ba803f89dd8ff008177d7\n\n# tcId = 20\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004000000000000000000000001000000000000000000000000000000012ea2f4917bdfdb008306cc10a18e2557633ba861001829dcbfb96fba\nresult = valid\nshared = be1ded8cb7ff8a585181f96d681e31b332fe27dcae922dca2310300d\n\n# tcId = 21\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a000400000000000000ffffffffffffff000000000000010000000000000073ca5f8f104997a2399e0c7f25e72a75ec29fc4542533d3fea89a33a\nresult = valid\nshared = a2e86a260e13515918a0cafdd87855f231b5624c560f976159e06a75\n\n# tcId = 22\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a000400000000ffffffffffffffff000000000000000100000000000000006fe6805f59b19b0dd389452a1d4a420bfeb6c369cf6fed5b12e6e654\nresult = valid\nshared = 31ef7c8d10404a0046994f313a70574b027e87f9028eca242c1b5bf5\n\n# tcId = 23\n# edge cases for ephemeral key\nprivate = 2bc15", "cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00040000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff77c5cfa4e2c384938d48bd8dd98f54c86b279f1df8c0a1f6692439c9\nresult = valid\nshared = d1976a8ef5f54f24f5a269ad504fdca849fc9c28587ba294ef267396\n\n# tcId = 24\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00040003fffffff00000003fffffff00000003fffffff00000004000000001f0828136016bb97445461bc59f2175d8d23557d6b9381f26136e3d\nresult = valid\nshared = ce7890d108ddb2e5474e6417fcf7a9f2b3bd018816062f4835260dc8\n\n# tcId = 25\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a000401fffffffc00000007fffffff00000001fffffffc0000000800000012d8acca6f199d4a94b933ba1aa713a7debde8ac57b928f596ae66a66\nresult = valid\nshared = 30b6ff6e8051dae51e4fe34b2d9a0b1879153e007eb0b5bdf1791a9c\n\n# tcId = 26\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00040a15c112ff784b1445e889f955be7e3ffdf451a2c0e76ab5cb32cf413d4df973c563c6decdd435e4f864557e4c273096d9941ca4260a266e\nresult = valid\nshared = 77ec668a00f72d85aa527624abb16c039fe490d17dd6c455a1ed7fd8\n\n# tcId = 27\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a000462989eaaa26a16f07330c3c51e0a4631fd016bfcede26552816aee39389ee9436d616cab90032931aa7fbbfcfc13309f61e2423cc8dab93c\nresult = valid\nshared = a3f432f6aba9a92f49a5ea64ffe7059a9d9b487a0b5223ddc988208b\n\n# tcId = 28\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004661ac958c0febbc718ccf39cefc6b66c4231fbb9a76f35228a3bf5c3103b8040e3cb41966fc64a68cacb0c14053f87d27e8ed7bf2d7fe51b\nresult = valid\nshared = 1530fd9caf03737af34a4ba716b558cbecbc35d18402535a0a142313\n\n# tcId = 29\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00046d7e41821abe1094d430237923d2a50de31768ab51b12dce8a09e34c276cf273d75d367820dd556182def0957af0a314f48fed227c298dc0\nresult = valid\nshared = cfc39ccacb94ad0e0552b2e47112f60fbbe7ae0dc32230b9273dd210\n\n# tcId = 30\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00047fffffffffffffffffffffffffffffffffffffffffffffffffffffff7d8dbca36c56bcaae92e3475f799294f30768038e816a7d5f7f07d77\nresult = valid\nshared = 73bd63bd384a0faafb75cfed3e95d3892cbacf0db10f282c3b644771\n\n# tcId = 31\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc000800174f1ff5ea7fbc72b92f61e06556c26bab84c0b082dd6400ca1c1eb6d\nresult = valid\nshared = 85b079c62e1f5b0fd6841dfa16026e15b641f65e13a14042567166bb\n\n# tcId = 32\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0126fdd5fccd0b5aa7fd5bb5b1308584b30556248cec80208a2fe962\nresult = valid\nshared = 8a834ff40e3fc9f9d412a481e18537ea799536c5520c6c7baaf12166\n\n# tcId = 33\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004fffff0000007fffffe000000ffffffc000001ffffff8000003ffffff20cfa23077acc9fbcb71339c65880cd0b966b8a9497e65abed17f0b5\nresult = valid\nshared = a0887269766e6efcbc81d2b38f2d4638663f12377468a23421044188\n\n# tcId = 34\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffff00000000ffffffff00000000ffffffff00000000ffffffff1c05ac2d4f10b69877c3243d51f887277b7bf735c326ab2f0d70da8c\nresult = valid\nshared = c65d1911bc076a74588d8793ce7a0dcabf5793460cd2ebb02754a1be\n\n# tcId = 35\n# point with coordinate y = 1\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a00043b5889352ddf7468bf8c0729212aa1b2a3fcb1a844b8be91abb753d500000000000000000000000000000000000000000000000000000001\nresult = valid\nshared = e973c413cc7dd34d4e3637522b2e033c20815412b67574a1f2f6bdd7\n\n# tcId = 36\n# point with coordinate y = 1\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004bf09e268942555c73ce9e00d272c9b12bf0c3fc13a639acc791167f6b05df0023c9bd41d0b0c461854582d0601182213f2219d44ea44914a\nresult = valid\nshared = ec856e807808a9c5332e886759e03f01be02437cfe0214613e4e7dc7\n\n# tcId = 37\n# point with coordinate y = 1\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a00047b664cff2eef0a4f7dce24780113432f66feb25cb0931d033d63910f548ee514f6fdf1cb6f5709581c197d76a5eb218afaed19f205f4ab80\nresult = valid\nshared = 91d424e122c9c01720bbed6b53ec1b37a86996fa4fcf74bfd30f723d\n\n# tcId = 38\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a00045a2b3ec1053390550b587557712bcc0bf85654d23099420154877ec4138322ca02e5fceae870227a43ae8982b67276f6d8f1dd7e12692474\nresult = valid\nshared = 012879a1ff456acb8726455836bc4f504c1bd799a4d96f514b3730c6\n\n# tcId = 39\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004fc229bb1df3e11351e7e4224f68f40c0d0e194023c6e0840cd45ee5ca242112fbab5736e821dad26493e4006e2c6125342e7d9bc25272856\nresult = valid\nshared = fd6e5edb54d7dd554f8747ec87b8031258fc0bf1d2404b64db4540d4\n\n# tcId = 40\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a000469a65f62d4159235801a246f2d13e45c8983a3362da480e7a51d42a65b7047abfc2a179d943bb196fede7ac3ad8a4fcacd4c4caa717b6b26\nresult = valid\nshared = 164e95bfa2a9c3a1f959feb88720bb7a37f988a08124639d8adf86df\n\n# tcId = 41\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004dc68eb945528af0051cbf23e3eea43b2bc4c728976231e7031e63a2744ba65a4e1e34e8ec50cf7e8df4458582b16413ab83f568508c59037\nresult = valid\nshared = b0ffd55fa112aa48eddc960db4a1200d406e144aac9e109ad9892b2d\n\n# tcId = 42\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a000481c89369d7be252920e08e2d6c6841b887efb4fc747db31dd1030b1919bf8ccb629b58fea6234e39812083fb0833a0c937e348eda22ea0c0\nresult = valid\nshared = d6ab4567eff21277284be082d9e09eb08bb80685f4929dc3dca4b333\n\n# tcId = 43\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a000451d830f792795409f1ee972d3b94289f59206fe09e12166920739a73d2f1831b26677901bfaf8323f82b81e1012d9d3f1c9296c59c97970f\nresult = valid\nshared = b43de12912b40cbdd56e30fdfe9a2c24fb72687168c9cfe6b7476966\n\n# tcId = 44\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ab63ce55145842149f99023f37a0a89b9fc4ae6a878fdae8caf31d17ffd0d55830eed46f8255f94b6dcf98a22f1ff26dabf773d556788881\nresult = valid\nshared = 588ee0af3bc60118a715325c6d56c850f73067dcb37b7596d0cfda5f\n\n# tcId = 45\n# point with coordinate y = 1 in left to", " right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a00041d64535d54bfcccb38165acbfac01ae33db20e802c5687343cb21b7eb59d86f1892a974741925624477eef21f4e72fa04ee6ce35dfffe5f2\nresult = valid\nshared = 7219ef73ac9e47ac2e03dead23fa8382ae898e2415017cdeb4739f0f\n\n# tcId = 46\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004d9d78436a3f9c1fa20e8c2318e61e62b94623e23a0ab746c5ac0cbc38262bd66c17515d3048944dae43b2bd6dd9d7c7a0f7042de2d1001c6\nresult = valid\nshared = 267b069aac5d768a720acc62c92f20b786fc48c7da42f1f5677424ee\n\n# tcId = 47\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a000465eb3750c6401339caa69ebe6dec86dfc4d79bf657d68bbdd082c5a03eb81e85931352ff338ccbc3a1d332e2d8bc84342d516da06bef220f\nresult = valid\nshared = bbdd4ac5890b9c0412e4ef3135f666e5b3ddb658ec837691e8129be8\n\n# tcId = 48\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004e92d3be1614555ae17a90647979fbb37468c55a1fff9e15f376d49994e470f515b7b3fe50cb55def16142df594c3e46d9d1354730778f9e8\nresult = valid\nshared = f793ff0d14bd7690840c733162b589cd3413d8c41f4488b427da496f\n\n# tcId = 49\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a00043c92710c9a7f6f98bbec9d2a4fa617cc70e96bc96ecd4597e329143f4750a027c6972459c091ab02c0e2a3082fccec429a38d3596e7aff2b\nresult = valid\nshared = 56c703d4716239c954109b9b841db75b04a790f1f72aa966aece3494\n\n# tcId = 50\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004568dfbfa42efc94ce207322e637b4c94f37a5668ad230e987a91d048dcadd244fc059cffab5fa8820a969353620e708e85bd5eec8a0c68ec\nresult = valid\nshared = 7823fe7eb642d50984fb32f911ef289419d85330c3398423d0eda05f\n\n# tcId = 51\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ec10837e495b644904dba58d8dd82133c905a285ae7c2a06d5ccaf6bf0fbf00d13e21a399dc95ae5524a1a37044193e94e3300259b70e058\nresult = valid\nshared = f7014d38f460836a51075cce9667b56b8851ba19011c8b0274b74a4b\n\n# tcId = 52\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004bee2f9352f42ceeb3bf3109e90e6578d0bd4888458df7d179d746977e50e53503dee83eca1824a290566588fa3591645b1a2d56861bda760\nresult = valid\nshared = 777f99f2bdaa72a1185388465ddda1d059872ad043c7cb85b94e28bb\n\n# tcId = 53\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004546facbcaa8b551c51715a9add5edc3c8a66dcc47a6223f605614cf7af6d92f5bdebea738658a42c6231e53c08237ccf52f79399579b2dcc\nresult = valid\nshared = a1db178b716e51e0fa46c1d74a2603005326bca7e81170d4b33a3d2a\n\n# tcId = 54\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a000423b1811fee891adb33c8bfee289964e92a9d3358daf975d0efb73e229a3332668b7d6da290a2edc941e8bd6f2e33745fc606756eddc013bb\nresult = valid\nshared = f455c8273416199505019861266ddb9bcde7bee3c3f15a98ee54607b\n\n# tcId = 55\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a000458f53d67332415fe5b4b81999f8332fb6dcdb965d96dbcbab0fac375f29efef7ab4d94bb2d25d25205eae29fe8d9a85b811114a50f6c6859\nresult = valid\nshared = d3af1857aca1689514fcfee8d8c40b8637d40452ae35c404f9e67494\n\n# tcId = 56\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a0004f2d6e58fcd3ed3f656a9bc687fe4c789ba9614d0359967bc0468eabfa1658a14ef0633f2485e29141e2c4a13bd328ec9bf6af4c7a774131b\nresult = valid\nshared = 933c385d5fadb57de53e4a5d385118fce830430703c3f585a5d4d0b5\n\n# tcId = 57\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a000402ca5d1b7638b7b88ad02176bd10ff1cfe8812a62f9769a6d62e0c6c787b3e3b2a063940911bf987fc38deebf542400b8bbd9dfeb7d90a8a\nresult = valid\nshared = 75aea79d99e5c7edaab0284443b548843371d1d9b55f2d73a1a9092f\n\n# tcId = 58\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a0004a394d8bf9b479ec3c7ac3fc6a631d01d57d338b9fb5a0ed6e5130e050cfc600cfb08e67727ac5a33345ec1d48d4a9a18516c2203acbd2667\nresult = valid\nshared = 8c1d0850691cda7523ffccf1cba44b4d472193e6a3bb0727e490a8b5\n\n# tcId = 59\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a0004642e26421e96fa88f956d098ac26f02f1d6faa80e460e701a3789a66c38dd95c6b33de8768c85cbe6879d0d77e29fe5a18b26a35cb60c0b6\nresult = valid\nshared = 50b9ed4d99e2f24e0096eaeded0b552cf8deff5ca8f976964ae47e92\n\n# tcId = 60\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a0004f974d1cbbf4171d4773c3e84eab80bc3c6c2858dadcfbd11d64316905df36fbe345f28a3ef663125649474c6fc1ebe175c3865c4469e192b\nresult = valid\nshared = 5616ee3e63dfb424d329c2b9b50cf378bb77a8bd7e314a241b5942c7\n\n# tcId = 61\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a000455561db3cc8fb08a71654ee9573a1a36a44f0913ca8ad7582cfafbfc62b31e5e78be98ad8c8ceab4bb82e8efc0acb29f1a8d031ed044046c\nresult = valid\nshared = b1da14507b5c05159e15f77d085c017acd89f158011357a97802855d\n\n# tcId = 62\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a0004a363bcb9bddd5de84a2f4433c039f7be3fce6057b0d3b4a3459e54a2ba32302871e7ba5c3dd7ec9b76946cdc702c15a8d9ec0f4a04e7afb6\nresult = valid\nshared = 2f1bd4a5a497481c4a21222320ff61f32674a95d540cc3f4f3ca5849\n\n# tcId = 63\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a00043a656d0e25bce27282f256b121fbfcde0a180ccd7aa601a5929fc74002f89e45b4dcb873c56da5d1a28fbca33a126177b217a098e0952e62\nresult = valid\nshared = 8c807d65ba7b9fd3061dffef26c025a89524a26b942edd3a984fe51d\n\n# tcId = 64\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a0004bf5f49ba0086eec289b068b783438ef24b6f28130bb1ed969ef8b041f11b0de95f15edcd835f01bab1f5faaa1749c2ca4f16a7d99d916ff4\nresult = valid\nshared = 8fda76f4d124e6727f855e5f4921cc05c48e2a8ed0fee7c75d6a8047\n\n# tcId = 65\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a0004a57232560d9d604655181f775859b0723d4e", @@ -7500,9 +7810,9 @@ static const char *kData250[] = { "ed = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 312\n# wrong length of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033b000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 313\n# wrong length of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b810400210339000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 314\n# uint32 overflow in length of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301006072a8648ce3d020106052b810400210385010000003a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 315\n# uint64 overflow in length of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3057301006072a8648ce3d020106052b81040021038901000000000000003a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 316\n# length of bit string = 2**31 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301006072a8648ce3d020106052b8104002103847fffffff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 317\n# length of bit string = 2**32 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301006072a8648ce3d020106052b810400210384ffffffff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 318\n# length of bit string = 2**40 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301006072a8648ce3d020106052b810400210385ffffffffff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 319\n# length of bit string = 2**64 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056301006072a8648ce3d020106052b810400210388ffffffffffffffff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 320\n# incorrect length of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b8104002103ff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 321\n# lonely bit string tag\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3013301006072a8648ce3d020106052b8104002103\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 322\n# appending 0's to bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033c000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 323\n# prepending 0's to bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033c0000000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 324\n# appending null value to bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033c000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620500\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 325\n# truncated length of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3014301006072a8648ce3d020106052b810400210381\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 326\n# Replacing bit string with NULL\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3014301006072a8648ce3d020106052b810400210500\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 327\n# changing tag value of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021013a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 328\n# changing tag value of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021023a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 329\n# changing tag value of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021043a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 330\n# changing tag value of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021053a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 331\n# changing tag value of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021ff3a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 332\n# dropping value of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3014301006072a8648ce3d020106052b810400210300\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 333\n# modify first byte of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033a020486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72f", "a4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 334\n# modify last byte of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3dae2\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 335\n# truncated bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d301006072a8648ce3d020106052b810400210339000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 336\n# truncated bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d301006072a8648ce3d020106052b8104002103390486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 337\n# declaring bits as unused in bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033a010486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 338\n# unused bits in bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301006072a8648ce3d020106052b81040021033e200486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da6201020304\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 339\n# unused bits in empty bit-string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3015301006072a8648ce3d020106052b81040021030103\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 340\n# 128 unused bits\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033a800486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n", }; -static const size_t kLen251 = 196857; +static const size_t kLen256 = 196857; -static const char *kData251[] = { +static const char *kData256[] = { "# Imported from Wycheproof's ecdh_secp256r1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDH\n# Generator version: 0.8r12\n\n[curve = secp256r1]\n[encoding = asn]\n\n# tcId = 1\n# normal case\nprivate = 0612465c89a023ab17855b0a6bcebfd3febb53aef84138647b5352e02c10c346\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000462d5bd3372af75fe85a040715d0f502428e07046868b0bfdfa61d731afe44f26ac333a93a9e70a81cd5a95b5bf8d13990eb741c8c38872b4a07d275a014e30cf\nresult = valid\nshared = 53020d908b0219328b658b525f26780e3ae12bcd952bb25a93bc0895e1714285\n\n# tcId = 2\n# compressed public key\nprivate = 0612465c89a023ab17855b0a6bcebfd3febb53aef84138647b5352e02c10c346\npublic = 3039301306072a8648ce3d020106082a8648ce3d0301070322000362d5bd3372af75fe85a040715d0f502428e07046868b0bfdfa61d731afe44f26\nresult = acceptable\nshared = 53020d908b0219328b658b525f26780e3ae12bcd952bb25a93bc0895e1714285\nflags = CompressedPoint\n\n# tcId = 3\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000458fd4168a87795603e2b04390285bdca6e57de6027fe211dd9d25e2212d29e62080d36bd224d7405509295eed02a17150e03b314f96da37445b0d1d29377d12c\nresult = valid\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 4\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040f6d20c04261ecc3e92846acad48dc8ec5ee35ae0883f0d2ea71216906ee1c47c042689a996dd12830ae459382e94aac56b717af2e2080215f9e41949b1f52be\nresult = valid\nshared = 00000000000000000000000000000000ffffffffffffffffffffffffffffffff\n\n# tcId = 5\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400c7defeb1a16236738e9a1123ba621bc8e9a3f2485b3f8ffde7f9ce98f5a8a1cb338c3912b1792f60c2b06ec5231e2d84b0e596e9b76d419ce105ece3791dbc\nresult = valid\nshared = 0000000000000000ffffffffffffffff00000000000000010000000000000001\n\n# tcId = 6\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e9b98fb2c0ac045f8c76125ffd99eb8a5157be1d7db3e85d655ec1d8210288cf218df24fd2c2746be59df41262ef3a97d986744b2836748a7486230a319ffec0\nresult = valid\nshared = 00000000ffffffff00000000ffffffff00000000ffffffff0000000100000000\n\n# tcId = 7\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e9484e58f3331b66ffed6d90cb1c78065fa28cfba5c7dd4352013d3252ee4277bd7503b045a38b4b247b32c59593580f39e6abfa376c3dca20cf7f9cfb659e13\nresult = valid\nshared = 000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff\n\n# tcId = 8\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004767d7fbb84aa6a4db1079372644e42ecb2fec200c178822392cb8b950ffdd0c91c86853cafd09b52ba2f287f0ebaa26415a3cfabaf92c6a617a19988563d9dea\nresult = valid\nshared = 0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00010001\n\n# tcId = 9\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c74d546f2fcc6dd392f85e5be167e358de908756b0c0bb01cb69d864ca083e1c93f959eece6e10ee11bd3934207d65ae28af68b092585a1509260eceb39b92ef\nresult = valid\nshared = 085ec5a4af40176b63189069aeffcb229c96d3e046e0283ed2f9dac21b15ad3c\n\n# tcId = 10\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000434fc9f1e7a094cd29598d1841fa9613dbe82313d633a51d63fb6eff074cc9b9a4ecfd9f258c5c4d4210b49751213a24c596982bd1d54e0445443f21ef15492a5\nresult = valid\nshared = 190c25f88ad9ae3a098e6cffe6fd0b1bea42114eb0cedd5868a45c5fe277dff3\n\n# tcId = 11\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d5c96efd1907fd48de2ad715acf82eae5c6690fe3efe16a78d61c68d3bfd10df03eac816b9e7b776192a3f5075887c0e225617505833ca997cda32fd0f673c5e\nresult = valid\nshared = 507442007322aa895340cba4abc2d730bfd0b16c2c79a46815f8780d2c55a2dd\n\n# tcId = 12\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f475f503a770df72c45aedfe42c008f59aa57e72b232f26600bdd0353957cb20bdb8f6405b4918050a3549f44c07a8eba820cdce4ece699888c638df66f54f7c\nresult = valid\nshared = 5f177bfe19baaaee597e68b6a87a519e805e9d28a70cb72fd40f0fe5a754ba45\n\n# tcId = 13\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f3cb6754b7e2a86d064dfb9f903185aaa4c92b481c2c1a1ff276303bbc4183e49c318599b0984c3563df339311fe143a7d921ee75b755a52c6f804f897b809f7\nresult = valid\nshared = 7fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff\n\n# tcId = 14\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cce13fbdc96a946dfb8c6d9ed762dbd1731630455689f57a437fee124dd54cecaef78026c653030cf2f314a67064236b0a354defebc5e90c94124e9bf5c4fc24\nresult = valid\nshared = 8000000000000000000000000000000000000000000000000000000000000004\n\n# tcId = 15\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047633dfd0ad06765097bc11bd5022b200df31f28c4ff0625421221ac7eeb6e6f4cb9c67693609ddd6f92343a5a1c635408240f4f8e27120c12554c7ff8c76e2fe\nresult = valid\nshared = 8000003ffffff0000007fffffe000000ffffffc000001ffffff8000004000000\n\n# tcId = 16\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a386ace573f87558a68ead2a20088e3fe928bdae9e109446f93a078c15741f0421261e6db2bf12106e4c6bf85b9581b4c0302a526222f90abc5a549206b11011\nresult = valid\nshared = ff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff\n\n# tcId = 17\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048e7b50f7d8c44d5d3496c43141a502f4a43f153d03ad43eda8e39597f1d477b8647f3da67969b7f989ff4addc393515af40c82085ce1f2ee195412c6f583774f\nresult = valid\nshared = ffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff\n\n# tcId = 18\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c827fb930fd51d926086191b502af83abb5f717debc8de29897a3934b2571ca05990c0597b0b7a2e42febd56b13235d1d408d76ed2c93b3facf514d902f6910a\nresult = valid\nshared = ffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff\n\n# tcId = 19\n# y-coordinate of the public key is small\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cbc1b31b43f17dc200dd70c2944c04c6cb1b082820c234a300b05b7763844c74fde0a4ef93887469793270eb2ff148287da9265b0334f9e2609aac16e8ad503\nresult = valid\nshared = 7fffffffffffffffffffffffeecf2230ffffffffffffffffffffffffffffffff\n\n# tcId = 20\n# y-coordinate of the public key is small\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042830d96489ae24b79cad425056e82746f9e3f419ab9aa21ca1fbb11c7325e7d318abe66f575ee8a2f1c4a80e35260ae82ad7d6f661d15f06967930a585097ef7\nresult = valid\nshared = 000000000000000000000000111124f400000000000000000000000000000000\n\n# tcId = 21\n# y-coordinate of the public", " key is small\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004450b6b6e2097178e9d2850109518d28eb3b6ded2922a5452003bc2e4a4ec775c894e90f0df1b0e6cadb03b9de24f6a22d1bd0a4a58cd645c273cae1c619bfd61\nresult = valid\nshared = 000000000000000000000001ea77d449ffffffffffffffffffffffffffffffff\n\n# tcId = 22\n# y-coordinate of the public key is large\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cbc1b31b43f17dc200dd70c2944c04c6cb1b082820c234a300b05b7763844c7b021f5b006c778ba686cd8f14d00eb7d78256d9b4fccb061d9f6553e91752afc\nresult = valid\nshared = 7fffffffffffffffffffffffeecf2230ffffffffffffffffffffffffffffffff\n\n# tcId = 23\n# y-coordinate of the public key is large\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042830d96489ae24b79cad425056e82746f9e3f419ab9aa21ca1fbb11c7325e7d3e754198fa8a1175e0e3b57f1cad9f517d528290a9e2ea0f96986cf5a7af68108\nresult = valid\nshared = 000000000000000000000000111124f400000000000000000000000000000000\n\n# tcId = 24\n# y-coordinate of the public key is large\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004450b6b6e2097178e9d2850109518d28eb3b6ded2922a5452003bc2e4a4ec775c76b16f0e20e4f194524fc4621db095dd2e42f5b6a7329ba3d8c351e39e64029e\nresult = valid\nshared = 000000000000000000000001ea77d449ffffffffffffffffffffffffffffffff\n\n# tcId = 25\n# y-coordinate of the public key has many trailing 1's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200049a0f0e3dd31417bbd9e298bc068ab6d5c36733af26ed67676f410c804b8b2ca1b02c82f3a61a376db795626e9400557112273a36cddb08caaa43953965454730\nresult = valid\nshared = 7fffffffffffffffffffffffca089011ffffffffffffffffffffffffffffffff\n\n# tcId = 26\n# y-coordinate of the public key has many trailing 1's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048e5d22d5e53ec797c55ecd68a08a7c3361cd99ca7fad1a68ea802a6a4cb58a918ea7a07023ef67677024bd3841e187c64b30a30a3750eb2ee873fbe58fa1357b\nresult = valid\nshared = 0000000000000000000000001f6bd1e500000000000000000000000000000000\n\n# tcId = 27\n# y-coordinate of the public key has many trailing 1's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004293aa349b934ab2c839cf54b8a737df2304ef9b20fa494e31ad62b315dd6a53c118182b85ef466eb9a8e87f9661f7d017984c15ea82043f536d1ee6a6d95b509\nresult = valid\nshared = 000000000000000000000002099f55d5ffffffffffffffffffffffffffffffff\n\n# tcId = 28\n# y-coordinate of the public key has many trailing 0's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200049a0f0e3dd31417bbd9e298bc068ab6d5c36733af26ed67676f410c804b8b2ca14fd37d0b59e5c893486a9d916bffaa8eedd8c5ca3224f73555bc6ac69abab8cf\nresult = valid\nshared = 7fffffffffffffffffffffffca089011ffffffffffffffffffffffffffffffff\n\n# tcId = 29\n# y-coordinate of the public key has many trailing 0's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048e5d22d5e53ec797c55ecd68a08a7c3361cd99ca7fad1a68ea802a6a4cb58a9171585f8edc1098998fdb42c7be1e7839b4cf5cf6c8af14d1178c041a705eca84\nresult = valid\nshared = 0000000000000000000000001f6bd1e500000000000000000000000000000000\n\n# tcId = 30\n# y-coordinate of the public key has many trailing 0's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004293aa349b934ab2c839cf54b8a737df2304ef9b20fa494e31ad62b315dd6a53cee7e7d46a10b99156571780699e082fe867b3ea257dfbc0ac92e1195926a4af6\nresult = valid\nshared = 000000000000000000000002099f55d5ffffffffffffffffffffffffffffffff\n\n# tcId = 31\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000000000000000000000000000000000000000000000066485c780e2f83d72433bd5d84a06bb6541c2af31dae871728bf856a174f93f4\nresult = valid\nshared = cfe4077c8730b1c9384581d36bff5542bc417c9eff5c2afcb98cc8829b2ce848\n\n# tcId = 32\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000000000000000000000000000ffffffffffffffffffffffffffffffff4f2b92b4c596a5a47f8b041d2dea6043021ac77b9a80b1343ac9d778f4f8f733\nresult = valid\nshared = 49ae50fe096a6cd26698b78356b2c8adf1f6a3490f14e364629f7a0639442509\n\n# tcId = 33\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000ffffffffffffffff0000000000000001000000000000000138120be6ab31edfa34768c4387d2f84fb4b0be8a9a985864a1575f4436bb37b0\nresult = valid\nshared = 5a1334572b2a711ead8b4653eb310cd8d9fd114399379a8f6b872e3b8fdda2d9\n\n# tcId = 34\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000ffffffff00000000ffffffff00000000ffffffff0000000100000000462c0466e41802238d6c925ecbefc747cfe505ea196af9a2d11b62850fce946e\nresult = valid\nshared = c73755133b6b9b4b2a00631cbc7940ecbe6ec08f20448071422e3362f2556888\n\n# tcId = 35\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff1582fa32e2d4a89dfcfb3d0b149f667dba3329490f4d64ee2ad586c0c9e8c508\nresult = valid\nshared = 06fa1059935e47a9fd667e13f469614eb257cc9a7e3fc599bfb92780d59b146d\n\n# tcId = 36\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00010001684c8a9586ed6f9cbe447058a7da2108bab1e5e0a60d1f73e4e2e713f0a3dfe0\nresult = valid\nshared = f237df4c10bd3e357971bb2b16b293566b7e355bdc8141d6c92cabc682983c45\n\n# tcId = 37\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004085ec5a4af40176b63189069aeffcb229c96d3e046e0283ed2f9dac21b15ad3c7859f97cb6e203f46bf3438f61282325e94e681b60b5669788aeb0655bf19d38\nresult = valid\nshared = d874b55678d0a04d216c31b02f3ad1f30c92caaf168f34e3a743356d9276e993\n\n# tcId = 38\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004190c25f88ad9ae3a098e6cffe6fd0b1bea42114eb0cedd5868a45c5fe277dff321b8342ef077bc6724112403eaee5a15b4c31a71589f02ded09cd99cc5db9c83\nresult = valid\nshared = 11a8582057463fc76fda3ab8087eb0a420b0d601bb3134165a369646931e52a6\n\n# tcId = 39\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004507442007322aa895340cba4abc2d730bfd0b16c2c79a46815f8780d2c55a2dd4619d69f9940f51663aa12381bc7cf678bd1a72a49fbc11b0b69cb22d1af9f2d\nresult = valid\nshared = 4e173a80907f361fe5a5d335ba7685d5eba93e9dfc8d8fcdb1dcd2d2bde27507\n\n# tcId = 40\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200045f177bfe19baaaee597e68b6a87a519e805e9d28a70cb72fd40f0fe5a754ba4562ca1103f70a2006cd1f67f5f6a3580b29dc446abc90e0e910c1e05a9aa788cd\nresult = valid\nshared = 73220471ec8bad99a297db488a34a259f9bc891ffaf09922e6b5001f5df67018\n\n# tcId = 41\n# edge cases for ephemeral key\np", "rivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff2e2213caf03033e0fd0f7951154f6e6c3a9244a72faca65e9ce9eeb5c8e1cea9\nresult = valid\nshared = 55d0a203e22ffb523c8d2705060cee9d28308b51f184beefc518cff690bad346\n\n# tcId = 42\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000480000000000000000000000000000000000000000000000000000000000000042be8789db81bb4870a9e60c5c18c80c83de464277281f1af1e640843a1a3148e\nresult = valid\nshared = 2518d846e577d95e9e7bc766cde7997cb887fb266d3a6cb598a839fd54aa2f4f\n\n# tcId = 43\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048000003ffffff0000007fffffe000000ffffffc000001ffffff8000004000000722540f8a471c379083c600b58fde4d95c7dcad5095f4219fc5e9bdde3c5cd39\nresult = valid\nshared = bdb49f4bdf42ac64504e9ce677b3ec5c0a03828c5b3efad726005692d35c0f26\n\n# tcId = 44\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff5df80fc6cae26b6c1952fbd00ed174ee1209d069335f5b48588e29e80b9191ad\nresult = valid\nshared = f503ac65637e0f17cb4408961cb882c875e4c6ef7a548d2d52d8c2f681838c55\n\n# tcId = 45\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff2c63650e6a5d332e2987dd09a79008e8faabbd37e49cb016bfb92c8cd0f5da77\nresult = valid\nshared = e3c18e7d7377dc540bc45c08d389bdbe255fa80ca8faf1ef6b94d52049987d21\n\n# tcId = 46\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff7a116c964a4cd60668bf89cffe157714a3ce21b93b3ca607c8a5b93ac54ffc0a\nresult = valid\nshared = 516d6d329b095a7c7e93b4023d4d05020c1445ef1ddcb3347b3a27d7d7f57265\n\n# tcId = 47\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fffffffffffffffffffffffeecf2230ffffffffffffffffffffffffffffffff00000001c7c30643abed0af0a49fe352cb483ff9b97dccdf427c658e8793240d\nresult = valid\nshared = 6fd26661851a8de3c6d06f834ef3acb8f2a5f9c136a985ffe10d5eeb51edcfa3\n\n# tcId = 48\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fffffffffffffffffffffffeecf2230fffffffffffffffffffffffffffffffffffffffd383cf9bd5412f50f5b601cad34b7c00746823320bd839a71786cdbf2\nresult = valid\nshared = 6fd26661851a8de3c6d06f834ef3acb8f2a5f9c136a985ffe10d5eeb51edcfa3\n\n# tcId = 49\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fffffffffffffffffffffffca089011ffffffffffffffffffffffffffffffff267bfdf8a61148decd80283732dd4c1095e4bb40b9658408208dc1147fffffff\nresult = valid\nshared = 44236c8b9505a19d48774a3903c0292759b0f826e6ac092ff898d87e53d353fc\n\n# tcId = 50\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fffffffffffffffffffffffca089011ffffffffffffffffffffffffffffffffd984020659eeb722327fd7c8cd22b3ef6a1b44c0469a7bf7df723eeb80000000\nresult = valid\nshared = 44236c8b9505a19d48774a3903c0292759b0f826e6ac092ff898d87e53d353fc\n\n# tcId = 51\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000000111124f4000000000000000000000000000000000000000d12d381b0760b1c50be8acf859385052c7f53cde67ce13759de3123a0\nresult = valid\nshared = f1f0e43b374feb7e7f96d4ffe7519fa8bb6c3cfd25f6f87dab2623d2a2d33851\n\n# tcId = 52\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000000111124f400000000000000000000000000000000fffffff1ed2c7e5089f4e3af4175307a6c7afad480ac3219831ec8a621cedc5f\nresult = valid\nshared = f1f0e43b374feb7e7f96d4ffe7519fa8bb6c3cfd25f6f87dab2623d2a2d33851\n\n# tcId = 53\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000001f6bd1e5000000000000000000000000000000004096edd6871c320cb8a9f4531751105c97b4c257811bbc32963eaf39ffffffff\nresult = valid\nshared = 3ebbace1098a81949d5605dd94a7aa88dc396c2c23e01a9c8cca5bb07bfbb6a1\n\n# tcId = 54\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000001f6bd1e500000000000000000000000000000000bf69122878e3cdf447560bace8aeefa3684b3da97ee443cd69c150c600000000\nresult = valid\nshared = 3ebbace1098a81949d5605dd94a7aa88dc396c2c23e01a9c8cca5bb07bfbb6a1\n\n# tcId = 55\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000001ea77d449ffffffffffffffffffffffffffffffff000000007afbc0b325e820646dec622fb558a51c342aa257f4b6a8ec5ddf144f\nresult = valid\nshared = 1b085213a9c89d353e1111af078c38c502b7b4771efba51f589b5be243417bdc\n\n# tcId = 56\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000001ea77d449fffffffffffffffffffffffffffffffffffffffe85043f4dda17df9b92139dd04aa75ae4cbd55da80b495713a220ebb0\nresult = valid\nshared = 1b085213a9c89d353e1111af078c38c502b7b4771efba51f589b5be243417bdc\n\n# tcId = 57\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000002099f55d5ffffffffffffffffffffffffffffffff152c1a22d823a27855ed03f8e2ab5038bb1df4d87e43865f2daf6948ffffffff\nresult = valid\nshared = 67cb63566c7ceb12fdd85ce9d2f77c359242bbaa0ea1bf3cf510a4a26591d1f1\n\n# tcId = 58\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000002099f55d5ffffffffffffffffffffffffffffffffead3e5dc27dc5d88aa12fc071d54afc744e20b2881bc79a0d25096b700000000\nresult = valid\nshared = 67cb63566c7ceb12fdd85ce9d2f77c359242bbaa0ea1bf3cf510a4a26591d1f1\n\n# tcId = 59\n# point with coordinate x = 0\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000000000000000000000000000000000000000000000066485c780e2f83d72433bd5d84a06bb6541c2af31dae871728bf856a174f93f4\nresult = valid\nshared = d11c640b4382e60ec8d254ee76f09b8fac57651ab73b6dd3fdc935a61564a3e9\n\n# tcId = 60\n# point with coordinate x = 0\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004100121f1a09443851c9aa2ab6ee6440e2ac5e1be648274bd5d26c12fb3ba3f7f032a1c219fa1457cb20588297e0513cfd4901f9a95414f7e914f9179f38567a6\nresult = valid\nshared = 90e712e2afd14171c19467a2bfe7abf1c477d1f40f6675f00e622fd5604fa16a\n\n# tcId = 61\n# point with coordinate x = 0\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cad02ab537c80831ccdd395129fc4bfe4a89ae0c866f6619a3e1", @@ -7529,9 +7839,9 @@ static const char *kData251[] = { " = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 440\n# incorrect length of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703ff00042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 441\n# lonely bit string tag\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3016301306072a8648ce3d020106082a8648ce3d03010703\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 442\n# appending 0's to bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d030107034400042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 443\n# prepending 0's to bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d0301070344000000042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 444\n# appending null value to bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d030107034400042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0500\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 445\n# truncated length of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3017301306072a8648ce3d020106082a8648ce3d0301070381\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 446\n# Replacing bit string with NULL\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3017301306072a8648ce3d020106082a8648ce3d0301070500\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 447\n# changing tag value of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107014200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 448\n# changing tag value of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107024200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 449\n# changing tag value of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107044200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 450\n# changing tag value of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107054200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 451\n# changing tag value of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107ff4200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 452\n# dropping value of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3017301306072a8648ce3d020106082a8648ce3d0301070300\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 453\n# modify first byte of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034202042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 454\n# modify last byte of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add6eb\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 455\n# truncated bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301306072a8648ce3d020106082a8648ce3d030107034100042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add6\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 456\n# truncated bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301306072a8648ce3d020106082a8648ce3d0301070341042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 457\n# declaring bits as unused in bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034201042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 458\n# unused bits in bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301306072a8648ce3d020106082a8648ce3d030107034620042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b01020304\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 459\n# unused bits in empty bit-string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3018301306072a8648ce3d020106082a8648ce3d030107030103\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 460\n# 128 unused bits\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703", "4280042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n", }; -static const size_t kLen252 = 236047; +static const size_t kLen257 = 236047; -static const char *kData252[] = { +static const char *kData257[] = { "# Imported from Wycheproof's ecdh_secp384r1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDH\n# Generator version: 0.8r12\n\n[curve = secp384r1]\n[encoding = asn]\n\n# tcId = 1\n# normal case\nprivate = 766e61425b2da9f846c09fc3564b93a6f8603b7392c785165bf20da948c49fd1fb1dee4edd64356b9f21c588b75dfd81\npublic = 3076301006072a8648ce3d020106052b8104002203620004790a6e059ef9a5940163183d4a7809135d29791643fc43a2f17ee8bf677ab84f791b64a6be15969ffa012dd9185d8796d9b954baa8a75e82df711b3b56eadff6b0f668c3b26b4b1aeb308a1fcc1c680d329a6705025f1c98a0b5e5bfcb163caa\nresult = valid\nshared = 6461defb95d996b24296f5a1832b34db05ed031114fbe7d98d098f93859866e4de1e229da71fef0c77fe49b249190135\n\n# tcId = 2\n# compressed public key\nprivate = 766e61425b2da9f846c09fc3564b93a6f8603b7392c785165bf20da948c49fd1fb1dee4edd64356b9f21c588b75dfd81\npublic = 3046301006072a8648ce3d020106052b8104002203320002790a6e059ef9a5940163183d4a7809135d29791643fc43a2f17ee8bf677ab84f791b64a6be15969ffa012dd9185d8796\nresult = acceptable\nshared = 6461defb95d996b24296f5a1832b34db05ed031114fbe7d98d098f93859866e4de1e229da71fef0c77fe49b249190135\nflags = CompressedPoint\n\n# tcId = 3\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004490e96d17f4c6ceccd45def408cea33e9704a5f1b01a3de2eaaa3409fd160d78d395d6b3b003d71fd1f590fad95bf1c9d8665efc2070d059aa847125c2f707435955535c7c5df6d6c079ec806dce6b6849d337140db7ca50616f9456de1323c4\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 4\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200040161328909675213e32098d35a6b8308a8d500cca39dcee5e804e73bdb8deaf06fe417291fd9793b231ef5fe86945444a97a01f3ae3a8310c4af49b592cb291ef70ee5bc7f5534d3c23dc9eefde2304842c7737ae937ccf9bd215c28103e9fe2\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 5\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004af4ae964e3bcbd923accda5da3175d411fd62d17dd3c3a1c410bef1730985a6265d90e950ac0fc50743b1ed771906ff33b68cf4d3d83a885a87097fdd329ce83b189f98cec5be44c31d1a3a2bba10f471963232b8ba7610fa8c72179050eb86d\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003\n\n# tcId = 6\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200041478ab6e032b9545eda9ac2c264e57a11f08acbc76d16a0ab77b04dbdaf20f215c4183437b32afc471eaa603d14c7c5d8a4c84ee0e895bec5c37f0a1ca075e106ff6bf38801b5c697409d39675231108d33c4a5ea65aaa8c03e939c95d96c4c4\nresult = valid\nshared = 0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff00000000000000010000000000000001\n\n# tcId = 7\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004f63208e34e7e90bb5fb036432467a89981444010663b8533b47bfa94bd2bc16f38aa516b930a4726e3876d3091bfb72ec783ed4da0cac06320817dc8bc64f59ccf06f48abc4386a150913fa95743a7b4601190e1c6ee8f8bf6354b254ecace45\nresult = valid\nshared = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\n\n# tcId = 8\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004033271ef42d92ad47b273b09ea2f45401161baa52696590d0e175ff2d1c0dfa3fea40e4266d446546c05e480d57fabec7889f16a8bcc176602f6d46561614a2f4284abe697b7cb9ce79f7e2e71b155cb1f155ce925d16391a680eda23152e6e1\nresult = valid\nshared = 0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff\n\n# tcId = 9\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004737e8437e18683de2455b68945bba31daec3e754d72f0a0776d3192b2f9298bb95ca1464baa6687aabb679f804cf6ec6c2b4d47d61a60404df63b1e9ac0954b3419bbc2ad52a0409aeeb82f4703758588059165b20367dcb4b235b0caf71d727\nresult = valid\nshared = 007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0008000\n\n# tcId = 10\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b810400220362000437f9004983156bbd9c47891e75237bb13016bd7fe6f4e0f71cef0e63f16a672f0d3b0e20165c33407e146b6a4ae6962dd3b57ccb99e7aaf1303240516d0ebe08e585513e3695d42c467dcab5340ef761990cadc8d8840aacc944481415c07feb\nresult = valid\nshared = 3b5eed80727bcbc5113b8a9e4db1c81b1dddc2d99ff56d9c3c1054348913bde296311c4bd2fa899b4d0e66aaa1b6a0dd\n\n# tcId = 11\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200049655d8e5622718b317cfbc09894357f75a6b13fa516bcd6630721b869a620196cf0c3dec8860b32d27ed9bac2cf263af17321698116d7d811ae8da9b9cbbf9382c1e36e2b67d6c6af9bcea7d9de00ca72b398606c098a0a0f0c4b8941943ed65\nresult = valid\nshared = 6a99a5acd4a7edb1c707d7f8be12e81140338e3e14ba563c703c681a319a3f9ce1f90f032bf840f3758e89cb852ceca6\n\n# tcId = 12\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004ccb13d427b3c4bb33dd4f20cddabc68600eaf97eeb2c81e8c218ae90743e74ff38ca56f0c0224379db464dcf4a40f04350cd7a659b2c4851a5dcf8c990fc920c07d4d5aa50a2185750e6b84c42e83cff635050482decb4780f812e4c49fc7404\nresult = valid\nshared = 7c25a4f57f76ab13b25cab3c265db9d9bd925fecbf7bf93bef1308778646628decab067ed988a9755cd88e88de367104\n\n# tcId = 13\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200042664624307c02ef487030a632162c515f841d15ea3152d98ff2364232d7aab39343d5f703a4d5a31092aa7356c3a2f671c1cd603addfd8b5477552a3b32a18edaf3e33bec22ee2167f9da729636002a7974eaeb5ff082b2aabf8c7056b84c3ab\nresult = valid\nshared = 7fffffe000000ffffffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff8000004000002\n\n# tcId = 14\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004665f1f320b6ab1c1b52d144e52d87a154c2b4489838c9119de622c2d1b52b65b0a3955e44e0d4859175360c0f63dee813f14f69972f18caed7916c94a4d20ec344591e7536a4a7a4d8c9832818c96d60b1a81fabe64ea02c5f647e361bf5b60f\nresult = valid\nshared = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 15\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b810400220362000491357ca87dbb08e85d7b1acecfd1e086078a82d19f81474da389364a39fe2543eb934b440173c38e61a1d9407855b5d89ef0d9e920764b6d7765b084cf9541dacc43d1dabaa390b0fb856097b0c00a8556f4e3848568ab4ae790c3d346ca01b6\nresult = valid\nshared = fff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff\n\n# tcId = 16\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004d5a833bae33b2d10fdff6db7c54", "77adb614b191c70d97c6f130a14e93931cc1dc058053fee54a264a00fdd16d3166fdc42992276b79925bafcd183b03ed18235350980abfe67b814c6c11074c38f74cd4e734ad58cdb49d9fcd2181d1b8f1119\nresult = valid\nshared = fffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000004000000\n\n# tcId = 17\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b810400220362000467547cda7fbe8f16be5a4477cbb02979f1af72fc0f39302773552fbcf4667a8e23abc0e12856ee6234deeca5f22ae0503a4df7c068e7432417260cb9fe0d68b9c7fcf7e16a2ada05687d8f8900b84723103edbff0a42b27517da2760b7d38843\nresult = valid\nshared = ffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff\n\n# tcId = 18\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200041363e3b99008e09bb3f085949b9b6ea26a318f496de568a96630fdb9d4c72c2814df3087a1741f32f24989b428167f93c653cb3ae8c3ecfaec57efd54bb8ce9d79c7bf6cc70fb1114f939be8f1a99bf1e42b97431124ef9fa33450faa4e76839\nresult = valid\nshared = ffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff0000000000000100000000000001\n\n# tcId = 19\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004ba2be8d7147e2417c2ec80b24b4c1aa94464ffd0aae1fa2e078b3afbc77c144489ca9d064acbb7a9cfa6196d0f467b7e65ee1ca1eb1351ff9968f553dfe2e4c59ff8ba34c22a42b3baa13a9a1adc7f13abd40f1fd25d46bc5330852b9371966a\nresult = valid\nshared = ffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff\n\n# tcId = 20\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004d69850ccbacc4736ea200ff2f8488f26247945a2ab48dd3708f494b293d8cba83417f48974881c7fb03854089bbf66cc1c773ec03cb8cd5f007ec3b03bdd05a409b352103f0decf25b41673ab8ca3d04334babee01219f15701f2bca22d40b37\nresult = valid\nshared = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe\n\n# tcId = 21\n# y-coordinate of the public key has many trailing 0's\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200046fcaf82d982d222d6096ba83e55b1c7dcb71a41e88f323333f44284d95c4bd3616da7a1bef928f31c26f885ba7adb487826fde2ed9f5649c11cf8465f8bf8ad50f68914936fc39666f68219d066506bea4001fdc816c9a90e7e2afb19bea085f\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000001f03123b00000000000000000000000000000000\n\n# tcId = 22\n# y-coordinate of the public key has many trailing 1's\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200046fcaf82d982d222d6096ba83e55b1c7dcb71a41e88f323333f44284d95c4bd3616da7a1bef928f31c26f885ba7adb4877d9021d1260a9b63ee307b9a0740752af0976eb6c903c6999097de62f99af9405bffe0227e93656f181d504f6415f7a0\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000001f03123b00000000000000000000000000000000\n\n# tcId = 23\n# y-coordinate of the public key is small\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004bfeb47fb40a65878e6b642f40b8e15022ade9ecfa8cb618043063494e2bc5d2df10d36f37869b58ef12dcc35e3982835fd2e55ec41fdfe8cabbbb7bcd8163645a19e9dac59630f3fe93b208094ff87cd461b53cef53482e70e2e8ea87200cc3f\nresult = valid\nshared = 0000000000000000000000000000000000000000000000000000000036a2907c00000000000000000000000000000000\n\n# tcId = 24\n# y-coordinate of the public key is large\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004bfeb47fb40a65878e6b642f40b8e15022ade9ecfa8cb618043063494e2bc5d2df10d36f37869b58ef12dcc35e398283502d1aa13be0201735444484327e9c9ba5e616253a69cf0c016c4df7f6b007831b9e4ac300acb7d18f1d171588dff33c0\nresult = valid\nshared = 0000000000000000000000000000000000000000000000000000000036a2907c00000000000000000000000000000000\n\n# tcId = 25\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cf99ef04f51a5ea630ba3f9f960dd593a14c9be39fd2bd215d3b4b08aaaf86bbf927f2c46e52ab06fb742b8850e521e\nresult = valid\nshared = 6092a1757ddd43a04e185ff9472a0d18c7f7a7dc802f7e059e0c69ae16c802651719406e04de27652ff83da4a780ef2f\n\n# tcId = 26\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002732152442fb6ee5c3e6ce1d920c059bc623563814d79042b903ce60f1d4487fccd450a86da03f3e6ed525d02017bfdb3\nresult = valid\nshared = 89c804cb81443386b185bcd9e2e6c35ee6177c3b90298985c4e81a89d520cceb17d729540e56ecc343c26bf314f2d052\n\n# tcId = 27\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036660041b1c7984620e8d7fd7ccdb50cc3ba816da14d41a4d8affaba8488867f0ca5a24f8d42dd7e44b530a27dc5b58da\nresult = valid\nshared = 35513157e804bd918d04de202778b81a6fc7ad8aa541ee94116a0f18466725d75e71c6942bf044b1b0ecba19db33e0de\n\n# tcId = 28\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000ffffffffffffffff0000000000000000ffffffffffffffff00000000000000010000000000000001141b9ee5310ea8170131b604484a6d677ed42576045b7143c026710ae92b277afbbea0c4458c220d561e69404dc7d888\nresult = valid\nshared = 102080c047881d19aefb01c29c82a4fb328a8ea6e6d6c914af73100507c8ee499799aaa646de0ea8c2727c0b5ed2439b\n\n# tcId = 29\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b810400220362000400000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff70370385413d3eff6fa3407ba24f682c2b01b51445dbdf5ef7b0dd0979f17e713e09081571f1e94dfb66bf282002f39f\nresult = valid\nshared = f689f6e475b4e15162521acab4637a3cdb9cb42aa92f9114b0ee300ddae89d5eafff3463a1f5004a2a1bd4aeffa47b78\n\n# tcId = 30\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff112e191f1f78bbc54b6cc4f0b1e59ae8c6ff1a07f5128e41dfa2828e1b6538d4fa2ca2394c6aab3449dcb3fc4eb44c09\nresult = valid\nshared = f3486244119b3632fd55be9e6951eb5d9c8c62f6a27042f94b924155ecfd4ff8744ba3d25bcf85a7b925bd28a12b897f\n\n# tcId = 31\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0008000028a4c8da5a05112fe6025ef41908969de20d05d9668e5c852ef2d492172ddc2a0a622fc488164fcc1a076b872942af2\nresult = valid\nshared = 8171b7c80d4c90bb58ae54393921ab9c5c0b3196f045e9fe5c8b168f0e5f6a77e1aa34ecedc5481ce55ab34c14", "e0f2e8\n\n# tcId = 32\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200043b5eed80727bcbc5113b8a9e4db1c81b1dddc2d99ff56d9c3c1054348913bde296311c4bd2fa899b4d0e66aaa1b6a0dd7b7f0f28d55e2f3a50f1f1bef3976834a05b43418e979303bc0363ed16d2d0b4011cc37b3c06ad73154faeab7915cd87\nresult = valid\nshared = 1fe6fea5f00d3005abaae2267ff18e430915838d87909ab503885edf38be7618ecb321f0a4df71b0913fbf12c76fc1f0\n\n# tcId = 33\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200046a99a5acd4a7edb1c707d7f8be12e81140338e3e14ba563c703c681a319a3f9ce1f90f032bf840f3758e89cb852ceca63cf99ef04f51a5ea630ba3f9f960dd593a14c9be39fd2bd215d3b4b08aaaf86bbf927f2c46e52ab06fb742b8850e521e\nresult = valid\nshared = f58adc13ff997d38383910db7befb17670393a33d95b049c2aa19d760c8e728ecedd32168476b90b26a3742dcc121b07\n\n# tcId = 34\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200047c25a4f57f76ab13b25cab3c265db9d9bd925fecbf7bf93bef1308778646628decab067ed988a9755cd88e88de367104562ee0c57e71d96cefe31b4c4045bd4086a38e8ab9adf2d5567be318051d70f3aa68b753f271ab032b6abcce919e2962\nresult = valid\nshared = 56299684ec5ceb09ba4d94d1231005a826c9c08a5219c757e0136cbe8b6430badd4925172f2939891da7c7893850512f\n\n# tcId = 35\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200047fffffe000000ffffffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff80000040000024480ab33cb4bf7cb79c024eeade3fd641e2f3003698400e8986a7343a5da59a3b26eea4b4176e53239371437d834a1a7\nresult = valid\nshared = 1911a0ee6aebe263fdcf3db073f2598cdafabec2123a2f24a28c3d9151c871f32d6dc2f31d25af9c498fd68da23e5bef\n\n# tcId = 36\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200048000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020797da4c0751ced16de80d16ab7c654a5dc27d092626d0865a192a1c5ea7c1b88c9fcab057946741e41cc28c80ec0b9a\nresult = valid\nshared = 15900643e2e0583976974b05f83c7a96611425f7c4a6eb51916ab958a037fd9cc172bdcfff4540a2ff3ce64e6505557e\n\n# tcId = 37\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004fff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff6c70898ae6fb31fa2f086562af2d10486ba4c6fd5e41dfe4aa61598b4707a3bc276a62feb1b98557e3b17c025f7adf4e\nresult = valid\nshared = 88a544a769d5c34a051416bd509dfac911863f604c83ea844bf0e4c5c272dec86d057a88b152a9274701938c705900c3\n\n# tcId = 38\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff00000040000000eb1592858b6e6e3a199c0f3e7c5f0b4a92915936efb8bc0407680eb7274be7422156ce8cfc8b505b2d902c39992380f\nresult = valid\nshared = b7db26b286e7527cb1f454782fe541862ff0f8d7eed960e22855deb7ac2a69611668c777c53bb74c2bcd40edfbf7944d\n\n# tcId = 39\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004ffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff4987abae412809c2fa48fd23b1bdf9e622f5a606c44117215ffa61b18ef46e54a7fbbf11f9a6ba59c991b4ae501fedce\nresult = valid\nshared = b1e8aab1aa633d98dc6b768594e1e3edb801a9ef483f287c83e19744d2ad343ad3debdc4dc178213ad6876b52284f552\n\n# tcId = 40\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004ffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff00000000000001000000000000013691fe493d4d28bf8ee1dfec812d6c306eae0842919eda6dc525f0d49ac2d26a992251912139a2936849f9d6fa949a68\nresult = valid\nshared = b0de006f80f6f89e4eea6e46dfe305153005612d1e903171ec2886230971961b5202a9f3187bdac413ac24c836adf7a0\n\n# tcId = 41\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004ffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff615842aa06b06f78f0a66f7bea88d4b6ee59653eeaa00dc5e0a2b658f969b71af90c9b4e96bd3ca33846955bdccbd359\nresult = valid\nshared = ca8cfa42c5e374914c14d6402b1a99208e47e02ec49818913694ea0822a2cc6c310259a8f3ab7559b9974bc4c2fa337e\n\n# tcId = 42\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe732152442fb6ee5c3e6ce1d920c059bc623563814d79042b903ce60f1d4487fccd450a86da03f3e6ed525d02017bfdb3\nresult = valid\nshared = edf040bace18d90bf9ce720df2a3b31d76d95b7ed9530a159ac0b24e82a871033eada40552f9e606f7115e6a78927511\n\n# tcId = 43\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000001f03123b0000000000000000000000000000000071bd1e700c34075c3cade8ce29d33724af68a7672b265a4e157055360440ab7c461b8e9ac8024e63a8b9c17c00000000\nresult = valid\nshared = ea817dff44f1944a38444498f1b6c1a70a8b913aa326bc2acc5068805d8ddd7a5e41b8ee5b8371a1cf3f7a094258e3a6\n\n# tcId = 44\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000001f03123b000000000000000000000000000000008e42e18ff3cbf8a3c3521731d62cc8db50975898d4d9a5b1ea8faac9fbbf5482b9e4716437fdb19c57463e84ffffffff\nresult = valid\nshared = ea817dff44f1944a38444498f1b6c1a70a8b913aa326bc2acc5068805d8ddd7a5e41b8ee5b8371a1cf3f7a094258e3a6\n\n# tcId = 45\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000000000000000000000000000000000000000000036a2907c00000000000000000000000000000000000000007f57b69a014783dbfa4967b2f9cfa678a6f0b6e9cfd41648cec5b3c498e72152da3f82d3da2e8e9f8ef37b11\nresult = valid\nshared = bfa93e184f76279fd707d53ddcb3628855cfafb111bcbd0b4df6ef77aee624924d681626a153fa4e59c923b71fc090b3\n\n# tcId = 46\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000000000000000000000000000000000000000000036a2907c00000000000000000000000000000000ffffffff80a84965feb87c2405b6984d06305987590f4916302be9b7313a4c3a6718deac25c07d2c25d17161710c84ee\nresult = valid\nshared = bfa93e184f76279fd707d53ddcb3628855cfafb111bcbd0b4df6ef77aee624924d681626a153fa4e59c923b71fc090b3\n\n# tcId = 47\n# edge case for Jacobian and projective coordinates\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe732152442fb6ee5c3e6ce1d920c0", @@ -7562,9 +7872,9 @@ static const char *kData252[] = { "ublic = 3076301006072a8648ce3d020106052b8104002203630004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 400\n# wrong length of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203610004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 401\n# uint32 overflow in length of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301006072a8648ce3d020106052b81040022038501000000620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 402\n# uint64 overflow in length of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307f301006072a8648ce3d020106052b8104002203890100000000000000620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 403\n# length of bit string = 2**31 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301006072a8648ce3d020106052b8104002203847fffffff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 404\n# length of bit string = 2**32 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301006072a8648ce3d020106052b810400220384ffffffff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 405\n# length of bit string = 2**40 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301006072a8648ce3d020106052b810400220385ffffffffff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 406\n# length of bit string = 2**64 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e301006072a8648ce3d020106052b810400220388ffffffffffffffff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 407\n# incorrect length of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203ff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 408\n# lonely bit string tag\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3013301006072a8648ce3d020106052b8104002203\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 409\n# appending 0's to bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b8104002203640004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 410\n# prepending 0's to bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b81040022036400000004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 411\n# appending null value to bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b8104002203640004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510500\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 412\n# truncated length of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3014301006072a8648ce3d020106052b810400220381\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 413\n# Replacing bit string with NULL\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3014301006072a8648ce3d020106052b810400220500\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 414\n# changing tag value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002201620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 415\n# changing tag value of bit string\nprivate ", "= 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002202620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 416\n# changing tag value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002204620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 417\n# changing tag value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002205620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 418\n# changing tag value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b81040022ff620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 419\n# dropping value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3014301006072a8648ce3d020106052b810400220300\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 420\n# modify first byte of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203620204c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 421\n# modify last byte of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312d1\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 422\n# truncated bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075301006072a8648ce3d020106052b8104002203610004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 423\n# truncated bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075301006072a8648ce3d020106052b81040022036104c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 424\n# declaring bits as unused in bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203620104c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 425\n# unused bits in bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301006072a8648ce3d020106052b8104002203662004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed03125101020304\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 426\n# unused bits in empty bit-string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3015301006072a8648ce3d020106052b81040022030103\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 427\n# 128 unused bits\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203628004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n", }; -static const size_t kLen253 = 333824; +static const size_t kLen258 = 333824; -static const char *kData253[] = { +static const char *kData258[] = { "# Imported from Wycheproof's ecdh_secp521r1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDH\n# Generator version: 0.8r12\n\n[curve = secp521r1]\n[encoding = asn]\n\n# tcId = 1\n# normal case\nprivate = 01939982b529596ce77a94bc6efd03e92c21a849eb4f87b8f619d506efc9bb22e7c61640c90d598f795b64566dc6df43992ae34a1341d458574440a7371f611c7dcd\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040064da3e94733db536a74a0d8a5cb2265a31c54a1da6529a198377fbd38575d9d79769ca2bdf2d4c972642926d444891a652e7f492337251adf1613cf3077999b5ce00e04ad19cf9fd4722b0c824c069f70c3c0e7ebc5288940dfa92422152ae4a4f79183ced375afb54db1409ddf338b85bb6dbfc5950163346bb63a90a70c5aba098f7\nresult = valid\nshared = 01f1e410f2c6262bce6879a3f46dfb7dd11d30eeee9ab49852102e1892201dd10f27266c2cf7cbccc7f6885099043dad80ff57f0df96acf283fb090de53df95f7d87\n\n# tcId = 2\n# compressed public key\nprivate = 01939982b529596ce77a94bc6efd03e92c21a849eb4f87b8f619d506efc9bb22e7c61640c90d598f795b64566dc6df43992ae34a1341d458574440a7371f611c7dcd\npublic = 3058301006072a8648ce3d020106052b81040023034400030064da3e94733db536a74a0d8a5cb2265a31c54a1da6529a198377fbd38575d9d79769ca2bdf2d4c972642926d444891a652e7f492337251adf1613cf3077999b5ce\nresult = acceptable\nshared = 01f1e410f2c6262bce6879a3f46dfb7dd11d30eeee9ab49852102e1892201dd10f27266c2cf7cbccc7f6885099043dad80ff57f0df96acf283fb090de53df95f7d87\nflags = CompressedPoint\n\n# tcId = 3\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004014c643329691ba27459a40dfe7c4ce17b3ea14d0cd7aa47b01f1315404db51436fbbfe6de0842e0f7e1265f6ff3aca28750677d3370b2fb2a6ef497356f4b95811201051b14178639a09a41465c72d3743436ee1c191ff7388a40140b34d5317de5911ea03cdbb0329fdeb446695a3b92d437271a9f3c318b02dec4d473908158140e97\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 4\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040029cd32125c23a41af24fd4b729da0faacbc35516ef0ba59096602571693cd282e26d67e18ef4643d0f6f158d7370d3394ca9a8de7938032ac178c6fd34e3702b8d008649834e2b41be3a8b7510bfe570f4c67075943cd0cbb9d9e1d1da52618b5b96d6aec9b650daf1ca6624c13e5116302b9c79c8c4d3d351915d1e8e1ab6ad76098e\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 5\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040032c6f06ce6a15ea064464d35aa368d299c9a9e1e368f694aefb603876248f898f223ce0217bef37d61eb09b27c93187cf8e61ba7b14e3c9bee692b06ac6d95f836019fd19f8480e21c63211d48d45f96f6365cf55f958e1a0fe7ea6b6b9ff230a87b70bb1b14d3a5fb6669a91641c6acf4570c1d3a9e709913b7fe6b35ff81c394d6a7\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 6\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401f7eb96e64b1a62daf9e0801bfd96a0b15b68e5f5cb3e90b434495a473907338e53098e1c2e493335d09c6aae6fdda0345b98aaed588f2abe82910713fb6c20252901396b17cf250bc018f4cead097e7e09863f14cf1239b065e57d884949eee141926f7e7c9f7f34cf0536368767bc0e1ab5142877293a4c722693a73fe14a5390af93\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 7\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004006ddf9b10965d5fc129e96f7a37667ccf66cc44384772906fedb21f9de4629e01aaa09ac7c9866112064bbc9bd58ebc123ab2fe19d8fed1a056d27bfef0630509c7001c441311ef20a16346332ea42d5c65788d68f6817b0267fcab11ea9c948ed108115dda8e823a380b601460742d3772d6424c67b240da24772ff0d2ccd9a1e0cea6\nresult = valid\nshared = 000000ffffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff0000000000000100000000000000\n\n# tcId = 8\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004007a8c547268c948b626da636cf54428ea2ab23861d499a84ad7be1cf691b92872a06e26c6dba08ca9ed386f83d396156d5fa023f57d5ea6440ec7401dad2c08ad70018c3815b1b9a2e42555419a6c19043fa2b0ddcc4b5a6e372fee9fcb227d85bad704687e7e1a818b612d5c046cd75972f7a2dd5c9a200ac5582cd59fec47ac525ecf\nresult = valid\nshared = 00003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff\n\n# tcId = 9\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040029153cf062f88f303e5d6f9aac968bd901076d5994ea7f831833b1e69b67e9e9fe20cf9c5623e00e0b9e3592fca2a03324b5df7c93186aff697aca864600d44ecc002801a62e2f4106f34106da23dc93d50e3e975a1d47510021835290649b7a4125109f656b6b0b5bd00b24d84ea1ba4e1ed49e61c526fb1011005131caee7ee0501e\nresult = valid\nshared = 010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 10\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400a61eb994e28722c59b3c6007dfdf8b37893f6350f461b26a00e1a45104314aae9989da87e4facb2c4ef721185b7d96d9a45a28a102756501a1acc5d329a21bbf73010e8d0e12f5a9a40e0d59c90ce73043d39730aeadd3788e31d7c2bb62a1166161994664afa658ce2e60a13f45f27f914307c8d6f8d4ed16ab041b8f69908a62782f\nresult = valid\nshared = 010000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff\n\n# tcId = 11\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004011dd497b30c73709906b164a9a79dc7f2a98c0148ed63016bb95243834fbcdf8eb74b0ff652d54f59f31aef51da6e8974d363655b1da138dc4de0f2a8d800f475ae0057bd4b84607400d863ffbf45a3cf58999ee24ba05e93eca7b0e4ae760eb1733559a45d15579d3370d716ffa3ec4bfdae418e32fb06138dfca213720a938577610e\nresult = valid\nshared = 01ff00000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000100000000000000000000000000000000\n\n# tcId = 12\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401283eb93fa369fe7012b647d21e0a97cf9950e5fbed819ef56158f20c8a9473a418eccbca4dc2b47f4cb6d322f917005859bf221e84ac9827cab82a801c627fb1ec0075c480cbafb352fcaf93baf23a1405fd81febe09729a908d1077e177dd8993d94b251a0d52652da3edb6fdf864e80cd51540e73d0b5107e3433576dcaa4e18db43\nresult = valid\nshared = 01ff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff\n\n# tcId = 13\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6", "b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400173beefe35ee868d497ff6601628f65ce18a1591f7e4a3a406622f3f508e2da68f101ed02febc38418c6ddfc26a5ec9848c42792463b1e945f9e167db34bdf2d660053070647aba7cd60eb295ab81a268a3903f393c5d28bbc5e022351c377cd84f02c19deb36442372cae1332e92f95ba60b6c852e0de0718e89d24e43cd479c9fb11\nresult = valid\nshared = 01ff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\n\n# tcId = 14\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004009829cd5432687739ab6ae10af8ea73d2cb53b81ebb06b5961b7badc1676b3ef7b00454f7cde56774a01312d574a9193c1a5fe5336fbe62623ad9bf81143789f9f90012f955697ed578207197bf9aac3896521615dbacc8dc665d4f1715b08439f49c2aa6ed337023ffccc5075a85944936826db92f919737ca3afeadba1847084bdef7\nresult = valid\nshared = 01ff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00010000\n\n# tcId = 15\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040126e3c959cd41120bb83693b1d6a034b385137c1bb3213b776122fed96056e329885718a73bee639c0ba4b68818682f498ce5496925002bd7652516405fcc4fecad0073a9c6e3b0c694bf7cc8ccbbd09800e81e3548ba44a0c2381cef0b07bf702a19054bb5d717a1b79294609cbdafd4e2018064f7b2c4c204d818eb7ce521c3268ce5\nresult = valid\nshared = 01ffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff8000004000001\n\n# tcId = 16\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040153dc481ab3c5dc8decd24ceaee1bec77f59f21f7f31c19538af047d281ac9e2567933fd3d21096b185d4098919571931bb9b0be7197995e2fbaf21c8a10007ade001ad69f08fcae164390be826256b50fae47502ce0e9ca46af0c490cb4033c886f88661a99ff2bd3c9c8e7da30faf2b4c769edc5831810ac05054c97e41063f496e1f\nresult = valid\nshared = 01ffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff\n\n# tcId = 17\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401f586611c87150288c3e86116c5db94a26718978829d701ddac05e9b0ce22dee4b18e95f60cba783ed3384da373deaefc57b8265d3a34eeb458bf24b9d82be32819008456e0f1d80492ef0078cc246d32fc7c7fb6720b4d458b51b2098d35746752b0ef0345bd0d342dfee6dd2f12ed12b34bd95d058c2811fd479d2dde32180e6c9ef2\nresult = valid\nshared = 01ffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc000000080000002\n\n# tcId = 18\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004015edc87fd499a73eabffd14d2b6a70a8fb69b6a39d0d9c4dda2337b53cc72e49a9e3d5a2d9e8930cfa11852dac33443227fba6684bd74732e6879884b6ef9dae98f010eeb8d2e3360ea9726628085268af3f2a05ad41235d0a892098bd661b636f7ef0a820282906eda3f1ff1980b98fb5937228e9edcd6332e3641216c7307e7f3f452\nresult = valid\nshared = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd\n\n# tcId = 19\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040131b43002f7e687eec1ecf6a253c2ccc9e48f04d86fccd18fee0d2d22191f1ea539c40d521970b4709dc03986f647e0e8bb3340cf8a3e643a3541035437cf25f01500b27a55ac45f0296f8c9656bcfd52b5cea9f4115c06e4c64319609847d45e92418400e7868672c0d3e6e5e6e004a7190476ed77cfc33ad19a4bd2c615ad9950f374\nresult = valid\nshared = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\n\n# tcId = 20\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d20ec9fea6b577c10d26ca1bb446f40b299e648b1ad508aad068896fee3f8e614bc63054d5772bf01a65d412e0bcaa8e965d2f5d332d7f39f846d440ae001f4f87\nresult = valid\nshared = 0053bf137fee8922769f8d0fe279caa4dac9c6054ad0460995588a845d0a959e24bc0fc2391a2b92f7bd400f50a11a9db37f07bef7fa8dad2a903fcf534abc8736f7\n\n# tcId = 21\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010010e59be93c4f269c0269c79e2afd65d6aeaa9b701eacc194fb3ee03df47849bf550ec636ebee0ddd4a16f1cd9406605af38f584567770e3f272d688c832e843564\nresult = valid\nshared = 01c95ac417c90a520149b29105cdab36f528a23efb5621520dbdafea95a7d43499c4c8be02cd1c2de000da18104fa84a1e9ece6386f0e0efa5234a24595d7c4c96f4\n\n# tcId = 22\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200d9254fdf800496acb33790b103c5ee9fac12832fe546c632225b0f7fce3da4574b1a879b623d722fa8fc34d5fc2a8731aad691a9a8bb8b554c95a051d6aa505acf\nresult = valid\nshared = 01b47ec41e3a5abd9dd9808fc04d9078cbed72b9eba98d3c1ded70a29938f0efd5a27a7113ff721f122cb17411de307a355c685074f5766b6d1a033d2fa188c945b6\n\n# tcId = 23\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000005f880f50ec94bfac6658fa2fce05945c6a36b266407b6fbd5437a83e2f2f9b9c50a734872e48e70df65457f13e47d06c6b8b29f4735acf105ea63e051904d18aea\nresult = valid\nshared = 013aefe3245728a08c904fe7d61cd9c2fdac63f29cf664d8f161bebacb93f8a710e9692f9689480ad498de00f00061e40e46e76e4754c1130ef4217a58933e0b1dc6\n\n# tcId = 24\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000ffffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff000000000000010000000000000000f33ffc45da3eac1baab727ab8fd355cfa134c42047d55262651654fb50df7e9a5a75f179c8c86c4388213b5687dc43dfebb37f30128703c44ccd5c3284833b8717\nresult = valid\nshared = 0168df272d53e3161926168c4aeab5f355b8d2a6689cfd567f2b6eb2011a18c775ac2a21f8dd497f6957217020b3b1afcb7021f24fccc2523be76a2bff44596e5a14\n\n# tcId = 25\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004", "00003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00cd2839d857b4699f5c8e8a0194786e26a862f086b4ba80746ae5225ed3aa68f96b7aaec55225830bb98f52d75221141897ba49d7a31ebbf0b6d7d31352e5266190\nresult = valid\nshared = 013db1b9241b23d33860d32dec37a79e4546a41afdfdd9c438d04e1f8b566ac8d9d3f572c293e96943722a4ee290e113fffaa82a61867d9ca28d349982354c9b256f\n\n# tcId = 26\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000813d9829119f42ffa95fea8ba9e81e4cd6a6ca97fb0778e12e5f5dfe35201dd4cca8eca0d2e395555997041381e6ac1f18ddf4c74e0b6e9041cfdca1d1c103091\nresult = valid\nshared = 01d2bbe9f754584ebbc7c7ad74136d1c8a144948948aa8be49989dd9b4c514db2e2ab1e0713ad1699f632dd2cea53da218ed549f030a113e282fd9e3be462d9aba84\n\n# tcId = 27\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004010000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff00878ad597d290db2cf660594aeed0f9b7c8dd68451d2d1b2cbc816b1ec4f35465b3964aff2edf1255163f5fca580132f85cade2887a017e7cd0b37196ad85221107\nresult = valid\nshared = 000f37a2e2caef54fff4126c0fa96e7c47f0cad74626ef91e589e12d2e1e8c221be7295be9dc2712b87bb0aa0f5880b738bc1242f2ba773bf9eb2a54e3c1ca4758d7\n\n# tcId = 28\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ff00000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000010000000000000000000000000000000000b5e1191b449fa1ebdbd677daa48f90e2d1d6c058c877087cafd9364d99dbb283c68402e6e6c5f5411b2ed42824d8b280ceb910aba6847883a7e3780e2132af41c1\nresult = valid\nshared = 017aeb254d9c8c8ee06215ff33811357da73bf7f6dd6d7f8f176d62c065a88a9005f680c630e9f2763585ea2ee76b6e4ab45e673f814ebfa95947c0c63fb24fa6e9b\n\n# tcId = 29\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff00207513d615656a1cc7505c18aa21b08e2b1d5a841de0816cc29c004efdb2d902ac1a7bb05e20722b576b64a3ddf4d2486421ac706bf4a424f252386368a5340fb6\nresult = valid\nshared = 0061bed42248a37b4625ef04c4f9c7ef69ee3c6f9503378351fcab1b8ce1343206997eec1b88449eb6f7355711ea1a818a486ee30a24126241a7e2289267cf5dd61f\n\n# tcId = 30\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff001fe800c50e54012b75a33e4be7d07c8d60f29680a395e951a6a31c5096b0ea928fc2cbf327dd784dc0a7ca46ea73992b758b5641364b4aba39e93798a4d925a008\nresult = valid\nshared = 001067d9104e296ef42b944587de11b10df05d2d959ed44cac9e7ef1c7a05d90819c43bc79c7397918f957cc98db931763bbeb1bdfc35865e8a359a013f13d60c433\n\n# tcId = 31\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00010000008dd18a1f5e482140be79bb65a21ad60c8987e532c84345f0135affd46ec71ef02b1ca3ad56f301d955fa306c122d441d6fedcf8b855ef256350bf69d23a7207ad9\nresult = valid\nshared = 00b779d83035cf7bb0bb04c7b2f46d08f6791f0d1542c9bcce7250e772b12ad8e38fce1d2b063a06f0fa3a1b072dd976f5f8542979903075162f1f5c6ba3b76cc45d\n\n# tcId = 32\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff800000400000100566203dd325a081c4441f001f780365874fd3d0c9bc47227481afe76a93ae1bfde63af972203abfe22c63b80e83f7cc2184c3cb8cfd0152c54324c4759fd1f9a50\nresult = valid\nshared = 01afe5d23733728b79c743933b9ba7dfec5ed19b7737e393908a1d000918aa795d1ce0ad533983d018f927b35d2af6463356573f387febd75911a49486202ca69d3a\n\n# tcId = 33\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff00b11c668fbd549f36889f7b63434051da26f15705839136b1b14a09152d7a182ea7806c35478a32d3aa3c9c1627a61519ebec71b36fa77449025b8829e27f307834\nresult = valid\nshared = 019612aeb386febb1a28096fe5b2f682dead02389785225b80a27df439510d08349a193839525f248b7f9bcabfd3dc8da8cc1724022299b7b5e72399d89464b82e44\n\n# tcId = 34\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000008000000200aa75efc0a8daac1d73f32c9c552414bccf44af8e74331b47439e7dcc49a135b3ee61e9f69717d89b4bba3567a195aeda13fbec634bf2984b5ec6b6f80f5978ed5a\nresult = valid\nshared = 00570673f87adcef49c1f011e8b9f1e11f7fd3b3c93114d08d3f515aa4a895a6c701c523063bdc13ad1db0a54f6e7b476fe10db2070441befc58c8cff3c08ef76e59\n\n# tcId = 35\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0010e59be93c4f269c0269c79e2afd65d6aeaa9b701eacc194fb3ee03df47849bf550ec636ebee0ddd4a16f1cd9406605af38f584567770e3f272d688c832e843564\nresult = valid\nshared = 0016aaf228b0aec190d4e4e5b8138ff9cc46d705da1bf002901c6ab420f59314d5b641712b14ef3e4fb125652c47888676804fb5575b741a8408c5625bfccff4fdda\n\n# tcId = 36\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00d9254fdf800496acb33790b103c5ee9fac12832fe546c632225b0f7fce3da4574b1a879b623d722fa8fc34d5fc2a8731aad691a9a8bb8b554c95a051d6aa505acf\nresult = valid\nshared = 00a5d6dfda2b269f4ab895a41c3b71b6ba10d5c9f0d9b3e730275345e4721594abfd39464c227716ded8ef3e60bb1ca0b551716e3f6eebb48d5ce8e0ab58cb1b73c9\n\n# tcId = 37\n# edge case for Jacobian and projective coordinates\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -7607,9 +7917,9 @@ static const char *kData253[] = { "4a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 459\n# length of bit string = 2**64 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a2301006072a8648ce3d020106052b810400230388ffffffffffffffff0004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 460\n# incorrect length of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b8104002303ff0004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 461\n# lonely bit string tag\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3013301006072a8648ce3d020106052b8104002303\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 462\n# appending 0's to bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b810400230381880004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 463\n# prepending 0's to bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b8104002303818800000004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 464\n# appending null value to bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b810400230381880004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500500\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 465\n# truncated length of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3014301006072a8648ce3d020106052b810400230381\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 466\n# Replacing bit string with NULL\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3014301006072a8648ce3d020106052b810400230500\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 467\n# changing tag value of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230181860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 468\n# changing tag value of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230281860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 469\n# changing tag value of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230481860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 470\n# changing tag value of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230581860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 471\n# changing tag value of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b81040023ff81860004017ee1", "6985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 472\n# dropping value of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3014301006072a8648ce3d020106052b810400230300\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 473\n# modify first byte of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230381860204017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 474\n# modify last byte of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32dd0\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 475\n# truncated bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b810400230381850004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 476\n# truncated bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b8104002303818504017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 477\n# declaring bits as unused in bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230381860104017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 478\n# unused bits in bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301006072a8648ce3d020106052b8104002303818a2004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d5001020304\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 479\n# unused bits in empty bit-string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3015301006072a8648ce3d020106052b81040023030103\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 480\n# 128 unused bits\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230381868004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n", }; -static const size_t kLen254 = 112343; +static const size_t kLen259 = 112343; -static const char *kData254[] = { +static const char *kData259[] = { "# Imported from Wycheproof's ecdsa_secp224r1_sha224_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[key.wx = 00eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7]\n[key.wy = 00eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[sha = SHA-224]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021c2840bf24f6f66be287066b7cbf38788e1b7770b18fd1aa6a26d7c6dc\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021cd7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = MissingZero\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 4\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30813d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 5\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082003d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 7\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 8\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000003d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 9\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000003d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 10\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 11\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 12\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 13\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 14\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303d028070049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 17\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a028000d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 18\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 19\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 20\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 21\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f0000021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 22\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 23\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610500\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3042498177303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30412500303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 303f303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610004deadbeef\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30422221498177021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304122202500021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3045221e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0004deadbeef021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3042021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2222498177021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a22212500021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3045021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a221f021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610004deadbeef\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3045aa00bb00cd00303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3043aa02aabb303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30452224aa00bb00cd00021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig", " = 30432222aa02aabb021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3045021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2225aa00bb00cd00021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 38\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3043021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2223aa02aabb021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 39\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30412280021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 42\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2280021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080313d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30412280031c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 45\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2280031d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 46\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e3d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f3d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 313d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 323d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 51\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff3d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 52\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 53\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 3041300102303c1c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463\n\n# tcId = 55\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c1c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 56\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\nflags = BER\n\n# tcId = 57\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb3584636100\n\n# tcId = 58\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb3584636105000000\n\n# tcId = 59\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361060811220000\n\n# tcId = 60\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000fe02beef\n\n# tcId = 61\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610002beef\n\n# tcId = 62\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f3000021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 63\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463613000\n\n# tcId = 64\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 3040021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361bf7f00\n\n# tcId = 65\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 66\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 301e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a\n\n# tcId = 67\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 305c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303e02811c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 69\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02811d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 70\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303f0282001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 71\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0282001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021d70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021b70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021e00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 75\n#", " wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021c00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30420285010000001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 77\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3042021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0285010000001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3046028901000000000000001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 79\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3046021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a028901000000000000001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 80\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304102847fffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 81\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02847fffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30410284ffffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 83\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0284ffffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30420285ffffffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 85\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3042021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0285ffffffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30450288ffffffffffffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 87\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3045021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0288ffffffffffffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d02ff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 89\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02ff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 90\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 301f021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302002021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 92\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 301f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 94\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021f00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e000070049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 96\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021f000000d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 97\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0500021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 99\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021f00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610500\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30210281021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 101\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0281\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30210500021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 103\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3020021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0500\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d011c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d031c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d041c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303dff1c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a011d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a031d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a041d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 113\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480aff1d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30210200021d0", @@ -7625,9 +7935,9 @@ static const char *kData254[] = { "a5f8b89bbb2a7e667aff81cd]\n[sha = SHA-224]\n\n# tcId = 321\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303c021c753bb40078934081d7bd113ec49b19ef09d1ba33498690516d4d122c021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n# tcId = 322\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303d021d008ac44bff876cbf7e2842eec13b63fcb3d6e7360aca5698f3ef0f1811021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[key.wx = 4c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466]\n[key.wy = 00ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[sha = SHA-224]\n\n# tcId = 323\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 303d021c2770403d42b7b45e553308d1f6a480640b61cac0ae36665d6f14d34e021d0085506b0404265ededf9a89fc7c9c7a55c16c5b0d781f774de8f46fa1\n\n# tcId = 324\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 303d021d00b68da722bbba7f6a58417bb5d0dd88f40316fc628b0edfcb0f02b062021c5c742e330b6febadf9a12d58ba2a7199629457ef2e9e4cecd2f09f50\n\n# tcId = 325\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 303c021c01ec1ff15c8a55d697a5424d674753f82f711593828368d2fbb41a17021c20d9089db7baf46b8135e17e01645e732d22d5adb20e3772da740eee\n\n# tcId = 326\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 303c021c3e46e9ba4dc089ff30fa8c0209c31b11ff49dbeec090f9f53c000c75021c6f2e3b36369416602bca83206809ed898fcf158a56c25a5474143f68\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[key.wx = 00aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf]\n[key.wy = 008a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[sha = SHA-224]\n\n# tcId = 327\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c77b38da37079d27b837613ac3e8248d66eabd5d637076c8e62c7991e021d00d40cd9f81efc52db4429c0c1af7c1d8a22b6c7babbe7fbd8b5b3f02f\n\n# tcId = 328\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d008c03b32c166c0c8b99d7f876acd109447efb13f6b82945e78d51a269021c657568f1a0a8bd7df5ffa43097ebb2b64435c8e3335bcaafc63f9ed5\n\n# tcId = 329\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00d199a375253d30f1d2b4493542e9934f9f1f8b0680117679f5bc4ad2021c11419ddbf02c8ad5f518f8dac33f86a85e777af51a034132e2767a6d\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[key.wx = 00bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f1]\n[key.wy = 73d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[sha = SHA-224]\n\n# tcId = 330\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d008ff82699e2e82870be9cfdd8a408bb34f8f38a83a4ac8370f18f2bc8021c7e5008fab6a0d4159200077ef9918dad6592cd8359838852c636ac05\n\n# tcId = 331\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c3f3b60b529ae0f950c517264adf2e481616bc47416742d5103589660021d00f731ebe98e58384b3a64b4696d4cc9619828ad51d7c39980749709a6\n\n# tcId = 332\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00dc11ffdc6b78754a335f168c4033916a2158d125a3f4fed9dc736661021c6dd84364717d9f4b0790f2b282f9245ecb316874eac025600397f109\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[key.wx = 26e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000]\n[key.wy = 00eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[sha = SHA-224]\n\n# tcId = 333\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00a59b25b786d55f26b04dfe90ee02a6bde64ed6e431dc9fbdc3ab360e021d00fc14b5ad20f39da9900e35437936c8626fccf6632e7a3d9e587e3311\n\n# tcId = 334\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c2eda1f96c1a6e3ad8a3321ce82cbb13a5b935b501abf6c06f7fd2b3f021d00e81050c3e5f53a3c7b9d0bdb9ed92a326dfeac44791ba1abe4d6e973\n\n# tcId = 335\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c60f5e093fda08fc14ac99d820a18ad1370c58150bea0aca24fc6db9d021d00c2220a0ebbf4896e68fdb5bd824f88291c1c862b916f9c4af87f8f5f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[key.wx = 00ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff]\n[key.wy = 41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[sha = SHA-224]\n\n# tcId = 336\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c2ead37846a5e36a490b75140bdc7b636c6e9f6d8f980f6fadb08f769021d00e1fe130ae1798c196d7be62c7a5ddb3168cf4b8d48b6b6b4dc94ab3b\n\n# tcId = 337\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00a8a4c9416d72c860573d073281cb08c86ad65313f06b15a329e82eb2021c5a6edd2f0816b7263d915d72c67d50a854e3abee5cde1b679a0cef09\n\n# tcId = 338\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c576bb86c517bfecdc930a4c8501725548d425afbb96d93f5c1e2a0e1021c77248c5ecd620c431438c50e6bee6858091b54a87f8548ae35c21027\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[sha = SHA-224]\n\n# tcId = 339\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c34e41cba628fd8787ba1a528f6015d2cae015c1c9a866e08a7133801021d0083d422ffdd99cc3c6d7096ef927f0b11988d1824e6e93840ff666ccd\n\n# tcId = 340\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c2558a42e79689244bccd5e855f6a1e42b4ff726873f30b532b89ef53021c07f9bd947785187175d848b6e2d79f7ab3bbc1087b42590b0cfb256a\n\n# tcId = 341\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00d5fe7dd5fb4fd1ea5ce66c0824f53f96ce47fd9b6c63b4d57827fd17021d00bce5bc3af705afaacb81bfa6d552d6198962fece9fba41546c602ddc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a9", "92b9a4a0e0ce178d20c]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 00ffffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[sha = SHA-224]\n\n# tcId = 342\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d008c1da2f07cdcbce4db8067b863468cfc728df52980229028689e57b6021c32175c1390a4b2cab6359bab9f854957d4fd7976c9c6d920c871c051\n\n# tcId = 343\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00e46d4f11b86b5a12f6fe781d1f934ef2b30e78f6f9cc86a9996e20c0021d008351974b965526034a0ccef0e7d3bc13d91798151488c91533143f7b\n\n# tcId = 344\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c305ccf0b5d0cf33dc745bb7c7964c233f6cfd8892a1c1ae9f50b2f3f021c785f6e85f5e652587c6e15d0c45c427278cf65bb1429a57d8826ca39\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[key.wx = 00f7e4713d085112112c37cdf4601ff688da796016b71a727a]\n[key.wy = 00de5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[sha = SHA-224]\n\n# tcId = 345\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c0e4fde0ac8d37536505f7b8bdc2d22c5c334b064ac5ed27bea9c179e021d00c4d6bf829dd547000d6f70b9ad9e9c1503bebcf1d95c2608942ca19d\n\n# tcId = 346\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00818afcaf491da9d08a7cc29318d5e85dce568dcca7018059f44e9b7e021d00bf32a233d5fc6ed8e2d9270b1bdad4bbd2a0f2c293d289bd91ffbcf3\n\n# tcId = 347\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c0e05ed675c673e5e70a4fdd5a47b114c5d542d4f6d7a367597d713ea021c26d70d65c48430373363987810bdcc556e02718eab214403ae008db4\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[key.wx = 00ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f725]\n[key.wy = 0086c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[sha = SHA-224]\n\n# tcId = 348\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00ab7a19eecf63e9668278963b65236b2768e57cae0e268cb86a0ddda1021d008829f5d3a3394f9467ba62e66ef1768e3e54f93ed23ec962bc443c2e\n\n# tcId = 349\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c17111a77cf79bead456ed86a7d8a935531440281eb8b15a885e341c0021d00fdc3958d04f037b1d4bb2cee307b5201be062e0d4e089df1c1917668\n\n# tcId = 350\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00acafa1e33345eeba0c338c2204b4cd8ba21de7ec3e1213317038e968021c0b42fbbaeda98a35da0de4c79546f3a0f7d9dec275d2cd671f93c874\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[key.wx = 00b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 0e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[sha = SHA-224]\n\n# tcId = 351\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00a3fe71a2a56f554e98fd10a8098c2a543c98bc6b3602ef39f2412308021c5d1d68f9a870ef2bc87484b3386549fae95811ab72bc0e3a514720da\n\n# tcId = 352\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c132f7625704756c13f2bfa449e60952f836f4904660b5b1da07e5a9f021d0082b4abafc40e8fd19b0c967f02fff152737ce01153658df445c4d7b7\n\n# tcId = 353\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00f36a8347c6fe0397a1161a364cbc4bdfb4d8b7894cbaa6edc55a4ff7021d009c9c90515da5e602d62e99f48eac414e913dd0b7cbf680c1a5399952\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[key.wx = 00b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 00fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[sha = SHA-224]\n\n# tcId = 354\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c2125ecc08e52e9e39e590117de2145bd879626cb87180e52e9d3ce03021d008f7e838d0e8fb80005fe3c72fca1b7cc08ed321a34487896b0c90b04\n\n# tcId = 355\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00e485747ac2f3d045e010cdadab4fd5dbd5556c0008445fb73e07cd90021d00e2133a7906aeac504852e09e6d057f29ab21368cfc4e2394be565e68\n\n# tcId = 356\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00a4de0d931ddab90e667ebc0ad800ce49e971c60543abdc46cefff926021c550816170bd87593b9fb8ad5ed9ab4ddb12403ff6fe032252833bac4\n\n", }; -static const size_t kLen255 = 118159; +static const size_t kLen260 = 118159; -static const char *kData255[] = { +static const char *kData260[] = { "# Imported from Wycheproof's ecdsa_secp224r1_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[key.wx = 00eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7]\n[key.wy = 00eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[sha = SHA-256]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d009e82950ebe102f37ff3645cc7d3c1bab8864e5e03a5011eeba8150bc\n\n# tcId = 2\n# valid\nmsg = 313233343030\nresult = valid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 3\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30813c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 4\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082003c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 5\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303b021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 7\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000003c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 8\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000003c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 9\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 10\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 11\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 12\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 13\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 14\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303c02803ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040280617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 17\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 18\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 19\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 20\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e0000021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 21\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 22\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810500\n\n# tcId = 23\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3041498177303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30402500303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 303e303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810004deadbeef\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30412221498177021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304022202500021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3044221e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040004deadbeef021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3041021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042221498177021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0422202500021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3044021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04221e021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810004deadbeef\n\n# tcId = 32\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3044aa00bb00cd00303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3042aa02aabb303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30442224aa00bb00cd00021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30422222aa02aabb021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3044021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042224aa00bb00cd00021c6", "17d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3042021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042222aa02aabb021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 38\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 39\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30402280021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042280021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 42\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080313c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30402280031c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042280031c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 45\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 46\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e3c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f3c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 313c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 323c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff3c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 51\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 52\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 3040300102303b1c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 53\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 303b021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 303b1c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 55\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\nflags = BER\n\n# tcId = 56\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad98100\n\n# tcId = 57\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad98105000000\n\n# tcId = 58\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981060811220000\n\n# tcId = 59\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000fe02beef\n\n# tcId = 60\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810002beef\n\n# tcId = 61\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e3000021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 62\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9813000\n\n# tcId = 63\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 303f021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981bf7f00\n\n# tcId = 64\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 65\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 301e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04\n\n# tcId = 66\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 305a021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 67\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d02811c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402811c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 69\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303e0282001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 70\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040282001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 71\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021d3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021b3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021b617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 75\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30410285010000001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c", "800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3041021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040285010000001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 77\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045028901000000000000001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04028901000000000000001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 79\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304002847fffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 80\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402847fffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 81\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30400284ffffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040284ffffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 83\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30410285ffffffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040285ffffffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 85\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30440288ffffffffffffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3044021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040288ffffffffffffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 87\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c02ff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402ff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 89\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 301e021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 90\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 301f02021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 301f021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402\n\n# tcId = 92\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021e3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021e617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 94\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021e00003ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021e0000617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 96\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 97\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021e3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040500021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021e617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810500\n\n# tcId = 99\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30200281021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040281\n\n# tcId = 101\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30200500021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3020021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040500\n\n# tcId = 103\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c011c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c031c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c041c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303cff1c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04011c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04031c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04041c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04ff1c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 113\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30200200021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040200\n\n# tcId = 115\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3040222002013a021bde5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 116\n# using ", @@ -7644,9 +7954,9 @@ static const char *kData255[] = { "d = 356\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c519bf185ff4635271961fa491be257231deeea9c53a6ede3b4a89ed1021c486bdad484a6a3134e1471cf56a9df0fac50f773b3e37d6f327617d7\n\n# tcId = 357\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c09fd644898b7cb5d018b52234e7b4ef2b54789afd0ce9c434e9e5515021d00f19309532164ea2053cae55df7bdcbab536c83ea7bfe6fe10d60c1ab\n\n# tcId = 358\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00ec919d4e283ccf1f71a9e3c0f781a36758d3f38b1b78a87a74288e80021c4c4663044a73c79bd88f0dc245ab1a32f89f06f40a704b31e9fabc51\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[key.wx = 00bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f1]\n[key.wy = 73d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[sha = SHA-256]\n\n# tcId = 359\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00c51760478447217597ecc6f4001bd45088d53c90f53103608bf88aea021d00a201253aa903f9781e8992101d7171d2dd3a5d48c44d8e1d544cd6d7\n\n# tcId = 360\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c76be0112674ec29128823e1af7512e6143872fef30a64e2f1799bd56021c187e503e1a48c27b549fe0a4ce5e581e242c8663fc9efb02d6f2b193\n\n# tcId = 361\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c36245ef126b5b51e459f84eaaad5a495061f0471dc8c23f1c5f16282021c39e31d72a06ba8e14fcf95778e07bc16a2628e39449da8857d506edc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[key.wx = 26e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000]\n[key.wy = 00eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[sha = SHA-256]\n\n# tcId = 362\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c258682975df8bca7f203f771ebeb478ef637360c860fc386cfb21745021c7663e70188047e41469a2a35c8c330dd900f2340ba82aafd22962a96\n\n# tcId = 363\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d0085c98614f36c0d66f8d87834cae978611b7b4eebf59a46bea1b89ae9021d00d1a18e378dda840e06b60f6279bf0a2231d9fa2d8d2c31e88bc1bdd7\n\n# tcId = 364\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00ca7b7432ba41ff2112e1116fffde89bbd68f5ce67fe5513d16c8e6f7021d00e421b7599e0180798acc2006451603cda2db1d582741116e6033ce5f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[key.wx = 00ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff]\n[key.wy = 41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[sha = SHA-256]\n\n# tcId = 365\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c19397fe5d3ecabf80fc624c1bf379564387517c185087dc97d605069021c33b5773e9aaf6c34cb612cfc81efd3bf9c22224e8c4fa1bfccf5c501\n\n# tcId = 366\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c70f24f5c164164bfbb8459aa12a981aa312dbcf00204326ebaaabdc8021d00f5cebee8caedae8662c43501665084b45d2f494fb70d603043543dc4\n\n# tcId = 367\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c0bf2d86ecaa8b56aca5e8f8ebcb45081d078a14555b75f5be8e9b132021d009a55b3ce4734849966b5034ccd9b19f76407ee0241c3f58e7b8fc89a\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[sha = SHA-256]\n\n# tcId = 368\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00bfc5dc4434cd09369610687d38d2d418b63fd475dea246a456b25a3a021d00b171dfa6cf722f20816370a868785da842b37bac31d7b78e6751fc50\n\n# tcId = 369\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d008fdbe8da646c5642d767c7dbeb3872b1edab6e37365805f0e94ce0a9021d00bcf35ab81222883dd3526cb0cf93138f4687cd0b10c2b0a126385161\n\n# tcId = 370\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00e23a11275848fd4f8b6f4ac4fc305eae981d3b7dc453e5a980c46422021c1a875693f24a03ea1614c4c3bbd0dd7221429f22b337ea7d98348ca4\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 00ffffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[sha = SHA-256]\n\n# tcId = 371\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c76645164ff9af3a1a9205fda2eef326d2bffc795dcc4829547fe01dd021d00b65bba503719314b27734dd06b1395d540af8396029b78b84e0149eb\n\n# tcId = 372\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c32fa0ca7e07f1f86ac350734994e1f31b6da9c82f93dced2b983c29c021c7b7891282206a45711bdfcb2a102b5d289df84ff5778548603574004\n\n# tcId = 373\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c2d5492478ca64e5111dfd8521867b6477b7e78227849ad090b855694021d00a532f5a2fa3594af81cd5928b81b4057da717be5fb42a3a86c68190d\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[key.wx = 00f7e4713d085112112c37cdf4601ff688da796016b71a727a]\n[key.wy = 00de5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[sha = SHA-256]\n\n# tcId = 374\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c191eee5daf55cd499e8539cb2cff797cfec5d566d2027bf9f8d64693021d00dadfeae8131f64d96b94fd340197caa2bc04818554812feef3343070\n\n# tcId = 375\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00e0e2c08180b8a207ee9105a7d379fa112368e8370fa09dfde4a45c45021d00c717bc0860e016e7ce48f8fe6a299b36906a6055adad93b416ce8838\n\n# tcId = 376\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c1b919ef93532292743bb2e1b7b4894fd847c6e5de52a08e1b0f2dcfb021d00c2d30d6b7594d8dbd261491ae1d58779505b075b64e5564dc97a418b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242", "a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[key.wx = 00ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f725]\n[key.wy = 0086c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[sha = SHA-256]\n\n# tcId = 377\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00e75db49ed33ff2885ea6100cc95b8fe1b9242ea4248db07bcac2e020021c796c866142ae8eb75bb0499c668c6fe45497692fbcc66b37c2e4624f\n\n# tcId = 378\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c1f81cd924362ec825890307b9b3936e0d8f728a7c84bdb43c5cf0433021c39d3e46a03040ad41ac026b18e0629f6145e3dc8d1e6bbe200c8482b\n\n# tcId = 379\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c00fda613aa67ca42673ad4309f3f0f05b2569f3dee63f4aa9cc54cf3021c1e5a64b68a37e5b201c918303dc7a40439aaeacf019c5892a8f6d0ce\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[key.wx = 00b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 0e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[sha = SHA-256]\n\n# tcId = 380\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00b932b3f7e6467e1ec7a561f31160248c7f224550a8508788634b53ce021d00a0c5312acf9e801aff6d6fc98550cfa712bbf65937165a36f2c32dc9\n\n# tcId = 381\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00e509593fb09245ee8226ce72786b0cc352be555a7486be628f4fd00c021c0b7abde0061b1e07bf13319150a4ff6a464abab636ab4e297b0d7633\n\n# tcId = 382\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c6e54f941204d4639b863c98a65b7bee318d51ab1900a8f345eac6f07021c0da5054829214ecde5e10579b36a2fe6426c24b064ed77c38590f25c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[key.wx = 00b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 00fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[sha = SHA-256]\n\n# tcId = 383\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d0085ea4ab3ffdc992330c0ca8152faf991386bce82877dbb239ba654f6021c0806c6baf0ebea4c1aaa190e7d4325d46d1f7789d550632b70b5fc9b\n\n# tcId = 384\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c44d53debb646b73485402eab2d099081b97b1243c025b624f0dd67ea021d00e5de789a7d4b77eac6d7bba41658e6e4dc347dabed2f9680c04a6f55\n\n# tcId = 385\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c1526eb2f657ebea9af4ca184b975c02372c88e24e835f3f5774c0e12021c1f1ecce38ee52372cb201907794de17b6d6c1afa13c316c51cb07bc7\n\n", }; -static const size_t kLen256 = 132917; +static const size_t kLen261 = 132917; -static const char *kData256[] = { +static const char *kData261[] = { "# Imported from Wycheproof's ecdsa_secp224r1_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[key.wx = 00eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7]\n[key.wy = 00eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[sha = SHA-512]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021c394766fb67a65fe0af6c154f7cbd285ea180b4c6150cdafafb0f6f0f\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021cc6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = MissingZero\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 4\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30813d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 5\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082003d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 7\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 8\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000003d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 9\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000003d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 10\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 11\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 12\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 13\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 14\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303d0280691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 17\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab028000c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 18\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 19\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 20\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 21\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f0000021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 22\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 23\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0500\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3042498177303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30412500303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 303f303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0004deadbeef\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30422221498177021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304122202500021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3045221e021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0004deadbeef021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3042021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2222498177021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab22212500021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3045021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab221f021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0004deadbeef\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3045aa00bb00cd00303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3043aa02aabb303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30452224aa00bb00cd00021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig", " = 30432222aa02aabb021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3045021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2225aa00bb00cd00021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 38\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3043021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2223aa02aabb021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 39\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30412280021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0000021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 42\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2280021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080313d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30412280031c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0000021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 45\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2280031d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 46\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e3d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f3d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 313d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 323d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 51\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff3d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 52\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 53\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 3041300102303c1c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb\n\n# tcId = 55\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c1c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 56\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\nflags = BER\n\n# tcId = 57\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e00\n\n# tcId = 58\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e05000000\n\n# tcId = 59\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e060811220000\n\n# tcId = 60\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000fe02beef\n\n# tcId = 61\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0002beef\n\n# tcId = 62\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f3000021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 63\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e3000\n\n# tcId = 64\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 3040021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2ebf7f00\n\n# tcId = 65\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 66\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 301e021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab\n\n# tcId = 67\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 305c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303e02811c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 69\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab02811d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 70\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303f0282001c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 71\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0282001d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021d691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021b691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021e00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 75\n#", " wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021c00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30420285010000001c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 77\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3042021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0285010000001d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3046028901000000000000001c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 79\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3046021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab028901000000000000001d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 80\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304102847fffffff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 81\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab02847fffffff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30410284ffffffff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 83\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0284ffffffff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30420285ffffffffff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 85\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3042021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0285ffffffffff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30450288ffffffffffffffff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 87\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3045021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0288ffffffffffffffff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d02ff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 89\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab02ff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 90\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 301f021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302002021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 92\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 301f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab02\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0000021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 94\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021f00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e0000691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 96\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021f000000c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 97\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0000021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0500021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 99\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021f00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0500\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30210281021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 101\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0281\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30210500021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 103\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3020021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0500\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d001c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d011c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d031c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d041c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303dff1c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab001d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab011d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab031d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab041d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 113\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92abff1d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30210200021d0", @@ -7665,9 +7975,9 @@ static const char *kData256[] = { "ef6fa778b19dccd609d496b62a211021c6c51e846fa53d03d42f798e6bb90954f9a48c1794b47e84ac97b460a\n\n# tcId = 430\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021b34befa1d25b756ce76b383a6e8753741c12a59266c2c7921ff6e8b021d00bc44e3823e4d807cbc92fa786a89e62a4b217b5fb0c0f1865d4a7e43\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[key.wx = 26e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000]\n[key.wy = 00eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[sha = SHA-512]\n\n# tcId = 431\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c224a38e733ebd3fac274ecc50ecef2e7c3189be2b9d093a8dcc6fa3a021c134fa5a4f923d296b3c6dd4683d249ccf0ad272890e4149c9a0d7415\n\n# tcId = 432\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c338d07d990879ad844e24c1788e362269d8aca70500357d385768227021d00f745cc4ebaaf1cd42830026a66e5b95564cdbee5edf853bb2cc91259\n\n# tcId = 433\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c689fce4b33d8212a663640a1ae0efaa7a7d7711beba719374fe634ee021c04bd9981fa52293063076f0fd70fc31875d580ef94f020d2f95440e0\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[key.wx = 00ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff]\n[key.wy = 41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[sha = SHA-512]\n\n# tcId = 434\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c2a4287e01510e7fb5fed2e1ccc3f2a6929cf7d03850e49d7ae8a504a021c355c3915f3fa9637dc8001438a8c04e15d14934cabd430feb0cb5ba5\n\n# tcId = 435\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00b5bf795a38adb052b401468ffcab81103d2d9fca2e15b8d08ab98ce8021c5ec0d2c6aec71888c941af324c7272bec192abb292f9df82a24e8a41\n\n# tcId = 436\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c100ed07f467133bf10917f7a15ab2bfda519bdbc2653b95955e22211021d00b38a081f7c2e2b775d1da868d0381c09ba1559c9613b5be7159363ad\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[sha = SHA-512]\n\n# tcId = 437\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c54e6add8ac910e52c6228fe3980d8f586218334d8d859ba9a3329917021c5836cc79ec88519eab4a6b2614c501628c9fee32fbafd93e32158409\n\n# tcId = 438\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c1230d5409f379584b4d548b7bccba64baf81d512a9f2e6398c4e3a66021c1937a298f8cbdfa85b8e6fcf0a12be4966d80270cade85a0c37ee6f3\n\n# tcId = 439\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00862f43b044fb32adb45e00378ba083ae761c84452054f17b1341bf5b021d0095d8d8e5e3a6cc2b0a06c792252ca11a642257721831578520f96b9e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 00ffffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[sha = SHA-512]\n\n# tcId = 440\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00cb5cabb1ca01b847a6bc70558d1e5d3a204d1741bbe800f4b159af35021c3580cc85f218394130bddf1c4eac04fe96f59f14fb436686950398be\n\n# tcId = 441\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00c9d83dc04cf4ee89c405045d0fd1d704f627ca5bbe350f40b826bbc1021c74fedc9e55045e9759f2124460fdfb991dc620cfee6effc0b4adaa9e\n\n# tcId = 442\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c46dd65b6e7f10c0841841b01033a5befd3a0e78c85f1f390bb3cdf25021d00f33acea3d47cf0dd5273735b004104f6512ed641052509422c0325a7\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[key.wx = 00f7e4713d085112112c37cdf4601ff688da796016b71a727a]\n[key.wy = 00de5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[sha = SHA-512]\n\n# tcId = 443\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00ddb4a7e400a1e98118f474722da3f421f65a76eec61f4f7b699faf07021d00db80cba199859cdfe916d6ab3deb91d76aaf0ed554c8f9ed7e5aa59d\n\n# tcId = 444\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c4c260b546280604e4c80384721c9e803ef704e7fb70168e6730fc1f3021d00a8aceae219ac25c9f04231b4e0c171413db1d26df1c1e8430062eb2b\n\n# tcId = 445\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00f4098d2c0240e78fceabb0183df0b39e7ad3e7f5d6da1587fa09853c021d00d42412b2abaa614c95eb11f9b9346282ce3a1c93aac35ce7aa372f4a\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[key.wx = 00ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f725]\n[key.wy = 0086c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[sha = SHA-512]\n\n# tcId = 446\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c48ddc497f9a4732c677e46c0e2bdabec54fc9d27e46ab595056db4d9021d00b8219ebbfaebc2fe4311efab0c35d4392751351bcc1971e8d01941e4\n\n# tcId = 447\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00e1abaf51d27a6d7d4c9b28078325cac2d7ce3d5403916c68903760b7021c2c45a99e2770f782fee5ca1d713eaecf07e62d53c64b7cf93de9900d\n\n# tcId = 448\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00868cd127c99e1149f7fc8d878cdfa986b62e99addea281149611ff15021c16e5953820135b7d462ce5434ef85920e973eec9e4d14d7cb3cc2a3f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[key.wx = 00b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 0e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[sha = SHA-512]\n\n# tcId = 449\n# y-coordinate of the publ", "ic key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00a375929718ec4e6ada9c9370c51df6bdaee7ebab2a70675d42a0b6b3021d009eaf4802efaf7ca082ffbf5ed774af43792d9b3fd711c6b1c36112ff\n\n# tcId = 450\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00d97b32f3bf8bc11ec2672dd6320418beeed99527a63fe4c52199ec61021c68dd9006b03319ccbe651d0bdaf84c63356f03cb007a6865ee3e0206\n\n# tcId = 451\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d008ee5794dc2e66f2584910ea1d8361e5b53db535adcf5c1c35e128309021c5d1d8b9b996c0a488e05af14421b86e9841f0cba706027fc827d4d95\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[key.wx = 00b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 00fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[sha = SHA-512]\n\n# tcId = 452\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c7999727c0cc02d88ef274012a762afcbb19e7fce19091a02acd00564021d00dbfacf67999f22c499d48a60a6fe4bbb746199c29957a1ec7a0900e0\n\n# tcId = 453\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c5797c21c0162e42f69693c6c0244dfdf9218c01e9235760177b61a54021c5452c887b27fb342a8a00d27579c7195dddb73df399233ed0dea567b\n\n# tcId = 454\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c0eb9dc5d67bb0d4009544f8654977907dfe770e7fae4571d31d7b4fa021d00ab5cda53e868bff5198be4be3681b186cb0c1396d272c71f093f8b12\n\n", }; -static const size_t kLen257 = 131736; +static const size_t kLen262 = 131736; -static const char *kData257[] = { +static const char *kData262[] = { "# Imported from Wycheproof's ecdsa_secp256r1_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 042927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[key.wx = 2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838]\n[key.wy = 00c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[sha = SHA-256]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802204cd60b855d442f5b3c7b11eb6c4e0ae7525fe710fab9aa7c77a67f79e6fadd76\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180220b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = MissingZero\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 4\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30814502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 5\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082004502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 304602202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 7\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 8\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000004502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 9\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000004502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 10\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 11\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 12\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 13\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 14\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 304502802ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 17\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18028000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 18\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 19\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 20\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 21\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047000002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 22\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 23\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0500\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a498177304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30492500304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3047304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0004deadbeef\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a222549817702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30492224250002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d222202202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180004deadbeef022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182226498177022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1822252500022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182223022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0004deadbeef\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304daa00bb00cd00304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac", "5df4087c134b49156847db\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304baa02aabb304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d2228aa00bb00cd0002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b2226aa02aabb02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182229aa00bb00cd00022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 38\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182227aa02aabb022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 39\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3049228002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 42\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182280022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080314502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3049228003202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 45\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182280032100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 46\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e4502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f4502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 314502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 324502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 51\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff4502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 52\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 53\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 30493001023044202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847\n\n# tcId = 55\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 3044202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 56\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\nflags = BER\n\n# tcId = 57\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db00\n\n# tcId = 58\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db05000000\n\n# tcId = 59\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db060811220000\n\n# tcId = 60\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000fe02beef\n\n# tcId = 61\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0002beef\n\n# tcId = 62\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047300002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 63\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db3000\n\n# tcId = 64\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 304802202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847dbbf7f00\n\n# tcId = 65\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 66\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 302202202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18\n\n# tcId = 67\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 306802202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30460281202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 69\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304602202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802812100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 70\n# length of integer con", "tains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3047028200202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 71\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180282002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502212ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045021f2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022200b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 75\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304a028501000000202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 77\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304a02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180285010000002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304e02890100000000000000202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 79\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304e02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18028901000000000000002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 80\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902847fffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 81\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802847fffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30490284ffffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 83\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180284ffffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a0285ffffffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 85\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180285ffffffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d0288ffffffffffffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 87\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180288ffffffffffffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502ff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 89\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802ff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 90\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 3023022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302402022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 92\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302302202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702222ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 94\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022300b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3047022200002ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 96\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180223000000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 97\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702222ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180500022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 99\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022300b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0500\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30250281022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 101\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180281\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30250500022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 103\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 302402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180500\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304500202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304501202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304503202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b4", @@ -7686,9 +7996,9 @@ static const char *kData257[] = { "6082a8648ce3d030107034200043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f49726500493584fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]\n[sha = SHA-256]\n\n# tcId = 367\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 30440220664eb7ee6db84a34df3c86ea31389a5405badd5ca99231ff556d3e75a233e73a022059f3c752e52eca46137642490a51560ce0badc678754b8f72e51a2901426a1bd\n\n# tcId = 368\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 304502204cd0429bbabd2827009d6fcd843d4ce39c3e42e2d1631fd001985a79d1fd8b430221009638bf12dd682f60be7ef1d0e0d98f08b7bca77a1a2b869ae466189d2acdabe3\n\n# tcId = 369\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100e56c6ea2d1b017091c44d8b6cb62b9f460e3ce9aed5e5fd41e8added97c56c04022100a308ec31f281e955be20b457e463440b4fcf2b80258078207fc1378180f89b55\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[key.wx = 3cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f497265004935]\n[key.wy = 7b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[sha = SHA-256]\n\n# tcId = 370\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 304402201158a08d291500b4cabed3346d891eee57c176356a2624fb011f8fbbf34668300220228a8c486a736006e082325b85290c5bc91f378b75d487dda46798c18f285519\n\n# tcId = 371\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100b1db9289649f59410ea36b0c0fc8d6aa2687b29176939dd23e0dde56d309fa9d02203e1535e4280559015b0dbd987366dcf43a6d1af5c23c7d584e1c3f48a1251336\n\n# tcId = 372\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100b7b16e762286cb96446aa8d4e6e7578b0a341a79f2dd1a220ac6f0ca4e24ed86022100ddc60a700a139b04661c547d07bbb0721780146df799ccf55e55234ecb8f12bc\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 042829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[key.wx = 2829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffff]\n[key.wy = 00a01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[sha = SHA-256]\n\n# tcId = 373\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100d82a7c2717261187c8e00d8df963ff35d796edad36bc6e6bd1c91c670d9105b402203dcabddaf8fcaa61f4603e7cbac0f3c0351ecd5988efb23f680d07debd139929\n\n# tcId = 374\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 304402205eb9c8845de68eb13d5befe719f462d77787802baff30ce96a5cba063254af7802202c026ae9be2e2a5e7ca0ff9bbd92fb6e44972186228ee9a62b87ddbe2ef66fb5\n\n# tcId = 375\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 304602210096843dd03c22abd2f3b782b170239f90f277921becc117d0404a8e4e36230c28022100f2be378f526f74a543f67165976de9ed9a31214eb4d7e6db19e1ede123dd991d\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[key.wx = 00fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f5]\n[key.wy = 5a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[sha = SHA-256]\n\n# tcId = 376\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30440220766456dce1857c906f9996af729339464d27e9d98edc2d0e3b760297067421f60220402385ecadae0d8081dccaf5d19037ec4e55376eced699e93646bfbbf19d0b41\n\n# tcId = 377\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100c605c4b2edeab20419e6518a11b2dbc2b97ed8b07cced0b19c34f777de7b9fd9022100edf0f612c5f46e03c719647bc8af1b29b2cde2eda700fb1cff5e159d47326dba\n\n# tcId = 378\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100d48b68e6cabfe03cf6141c9ac54141f210e64485d9929ad7b732bfe3b7eb8a84022100feedae50c61bd00e19dc26f9b7e2265e4508c389109ad2f208f0772315b6c941\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[key.wx = 03fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e]\n[key.wy = 1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[sha = SHA-256]\n\n# tcId = 379\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100b7c81457d4aeb6aa65957098569f0479710ad7f6595d5874c35a93d12a5dd4c7022100b7961a0b652878c2d568069a432ca18a1a9199f2ca574dad4b9e3a05c0a1cdb3\n\n# tcId = 380\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304402206b01332ddb6edfa9a30a1321d5858e1ee3cf97e263e669f8de5e9652e76ff3f702205939545fced457309a6a04ace2bd0f70139c8f7d86b02cb1cc58f9e69e96cd5a\n\n# tcId = 381\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100efdb884720eaeadc349f9fc356b6c0344101cd2fd8436b7d0e6a4fb93f106361022100f24bee6ad5dc05f7613975473aadf3aacba9e77de7d69b6ce48cb60d8113385d\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[key.wx = 00bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015]\n[key.wy = 1352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[sha = SHA-256]\n\n# tcId = 382\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3044022031230428405560dcb88fb5a646836aea9b23a23dd973dcbe8014c87b8b20eb0702200f9344d6e812ce166646747694a41b0aaf97374e19f3c5fb8bd7ae3d9bd0beff\n\n# tcId = 383\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100caa797da65b320ab0d5c470cda0b36b294359c7db9841d679174db34c4855743022100cf543a62f23e212745391aaf7505f345123d2685ee3b941d3de6d9b36242e5a0\n\n# tcId = 384\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304502207e5f0ab5d900d3d3d7867657e5d6d36519bc54084536e7d21c336ed8001859450221009450c07f201faec94b82dfb322e5ac676688294aad35aa72e727ff0b19b646aa\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[key.wx = 00bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015]\n[key.wy = 00fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[sha = SHA-256]\n\n# tcId = 385\n# y-coordinate of the public key is large\nmsg ", "= 4d657373616765\nresult = valid\nsig = 3046022100d7d70c581ae9e3f66dc6a480bf037ae23f8a1e4a2136fe4b03aa69f0ca25b35602210089c460f8a5a5c2bbba962c8a3ee833a413e85658e62a59e2af41d9127cc47224\n\n# tcId = 386\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30440220341c1b9ff3c83dd5e0dfa0bf68bcdf4bb7aa20c625975e5eeee34bb396266b34022072b69f061b750fd5121b22b11366fad549c634e77765a017902a67099e0a4469\n\n# tcId = 387\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3045022070bebe684cdcb5ca72a42f0d873879359bd1781a591809947628d313a3814f67022100aec03aca8f5587a4d535fa31027bbe9cc0e464b1c3577f4c2dcde6b2094798a9\n\n", }; -static const size_t kLen258 = 147510; +static const size_t kLen263 = 147510; -static const char *kData258[] = { +static const char *kData263[] = { "# Imported from Wycheproof's ecdsa_secp256r1_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 042927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[key.wx = 2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838]\n[key.wy = 00c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[sha = SHA-512]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002205f85a63a5be977ad714cea16b10035f07cadf7513ae8cca86f35b7692aafd69f\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00220a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = MissingZero\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 4\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30814502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 5\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082004502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 304602202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 7\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 8\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000004502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 9\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000004502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 10\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 11\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 12\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 13\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 14\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 304502802478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 17\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0028000a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 18\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 19\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 20\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 21\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047000002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 22\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 23\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20500\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a498177304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30492500304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3047304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20004deadbeef\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a222549817702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30492224250002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d222202202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00004deadbeef022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02226498177022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c022252500022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02223022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20004deadbeef\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304daa00bb00cd00304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c", "2ed1dc84841359d1b34eb2\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304baa02aabb304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d2228aa00bb00cd0002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b2226aa02aabb02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02229aa00bb00cd00022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 38\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02227aa02aabb022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 39\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3049228002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00000022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 42\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02280022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080314502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3049228003202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00000022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 45\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02280032100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 46\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e4502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f4502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 314502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 324502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 51\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff4502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 52\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 53\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 30493001023044202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34e\n\n# tcId = 55\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 3044202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 56\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\nflags = BER\n\n# tcId = 57\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb200\n\n# tcId = 58\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb205000000\n\n# tcId = 59\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2060811220000\n\n# tcId = 60\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000fe02beef\n\n# tcId = 61\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20002beef\n\n# tcId = 62\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047300002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 63\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb23000\n\n# tcId = 64\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 304802202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2bf7f00\n\n# tcId = 65\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 66\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 302202202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0\n\n# tcId = 67\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 306802202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30460281202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 69\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304602202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002812100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 70\n# length of integer con", "tains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3047028200202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 71\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00282002100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502212478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045021f2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022200a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 75\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022000a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304a028501000000202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 77\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304a02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00285010000002100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304e02890100000000000000202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 79\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304e02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0028901000000000000002100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 80\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902847fffffff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 81\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002847fffffff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30490284ffffffff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 83\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00284ffffffff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a0285ffffffffff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 85\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00285ffffffffff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d0288ffffffffffffffff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 87\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00288ffffffffffffffff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502ff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 89\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002ff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 90\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 3023022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302402022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 92\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302302202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702222478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00000022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 94\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022300a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3047022200002478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 96\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00223000000a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 97\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00000022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702222478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00500022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 99\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022300a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20500\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30250281022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 101\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00281\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30250500022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 103\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 302402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00500\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304500202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304501202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304503202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc8484135", @@ -7709,9 +8019,9 @@ static const char *kData258[] = { "b1022064a83af0ab3e6037003a1f4240dffd8a342afdee50604ed1afa416fd009e4668\n\n# tcId = 439\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 30450220575b70b4375684291b95d81e3c820ed9bde9e5b7343036e4951f3c46894a6d9d022100f10d716efbfeba953701b603fc9ef6ff6e47edef38c9eeef2d55e6486bc4d6e6\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[key.wx = 3cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f497265004935]\n[key.wy = 7b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[sha = SHA-512]\n\n# tcId = 440\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 30450221008d4f113189dfd3d3239e331f76d3fca9cef86fcd5dc9b4ab2ca38aeba56c178b022078389c3cf11dcff6d6c7f5efd277d480060691144b568a6f090c8902557bfc61\n\n# tcId = 441\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100834d10ec2d2d50eeebfecd6328f03fafbb488fc043c362cbc67880ec0ebd04b302210094c026feaf6e68759146fe5b6fd52eaa3c3c5552d83719d2cb900615e2a634db\n\n# tcId = 442\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 304502206894de495e7bb5566807d475d96a0d414a94f4f02c3ab7c2edc2916deafc1e1f022100a603642c20fabc07182867fcc6923d35be23ad3f97a5f93c6ec5b9cce8239569\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 042829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[key.wx = 2829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffff]\n[key.wy = 00a01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[sha = SHA-512]\n\n# tcId = 443\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100e500c086fedd59e090ce7bfb615751ed9abe4c09b839ee8f05320245b9796f3e022100807b1d0638c86ef6113fff0d63497800e1b848b5a303a54c748e45ca8f35d7d7\n\n# tcId = 444\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100b922c1abe1a8309c0acf90e586c6de8c33e37057673390a97ff098f71680b32b022100f86d92b051b7923d82555c205e21b54eab869766c716209648c3e6cc2629057d\n\n# tcId = 445\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100823c37e46c74ec8497d89245fde3bf53ddb462c00d840e983dcb1b72bbf8bf27022100c4552f2425d14f0f0fa988778403d60a58962e7c548715af83b2edabbb24a49f\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[key.wx = 00fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f5]\n[key.wy = 5a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[sha = SHA-512]\n\n# tcId = 446\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30450220577a08a95db6dcda9985109942d3786630f640190f920b95bd4d5d84e0f163ef022100d762286e92925973fd38b67ef944a99c0ec5b499b7175cbb4369e053c1fcbb10\n\n# tcId = 447\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 304402207ba458cfe952326922c7aa2854bdc673ce3daaf65d464dfb9f700701503056b102200df8821c92d20546fa741fb426bf56728a53182691964225c9b380b56b22ee6d\n\n# tcId = 448\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 304402205cd60c3b021b4be116f06f1d447f65e458329a8bbae1d9b5977d18cf5618486102204c635cd7aa9aebb5716d5ae09e57f8c481a741a029b40f71ec47344ef883e86e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[key.wx = 03fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e]\n[key.wy = 1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[sha = SHA-512]\n\n# tcId = 449\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304402204b50e1e8cf830e04c17e7472caf60da8150ffa568e2c64498cc972a379e542e502202e3adaa5afab89cca91693609555f40543578852cde29c21cb037c0c0b78478e\n\n# tcId = 450\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304402205aea930c7d8fffcd5c6df2c9430ef76f8b5ed58a8b9c95847288abf8f09a1ac202207ddfef7688a6053ce4eeeeefd6f1a9d71381b7548925f6682aa0a9d05cf5a3a3\n\n# tcId = 451\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304602210098b092c2d14b5b14a23e9368e0ce1be744dfae9f9a5cdaba51e7872099df96f202210090d3e4f87bd7bc94589f8150b6b01045cd8759a00af78b24d7de771887610df5\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[key.wx = 00bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015]\n[key.wy = 1352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[sha = SHA-512]\n\n# tcId = 452\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 30460221009e95f2856a9fff9a172b07817c8c60fe185cd3ce9582678f8cc4b02bc444621a022100c54ca51d8117d904f0d3773911cb2792348fae21c2da7dad25f990d122376e4c\n\n# tcId = 453\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100e77df8f9782696344c33de29ebdc9f8d3fcf463d950cdbe256fd4fc2fd44877e02210087028850c962cf2fb450ffe6b983981e499dc498fbd654fa454c9e07c8cb5ca8\n\n# tcId = 454\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100bd2dd6f5026d2b5ad7ead74bdf52b8cbcabc08facee0a1c8584658a85ed0c5dc02203e8543e819bdae47d872e29a85ba38addf3eaeaad8786d79c3fb027f6f1ff4bf\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[key.wx = 00bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015]\n[key.wy = 00fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[sha = SHA-512]\n\n# tcId = 455\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100bd5c0294acc28c15c5d1ebc7274c9ca21a081c8a67da430a34a7fff1a564fabb02207ec103a2385b4ff38b47d306434e9091de24dc9f1a25967ee06f8a0a53ac0181\n\n# tcId = 456\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 304402203c7dbfb43dd80379ee2c23ad5472873a22c8a0179ac8f381ad9e0f193231dc1f02207cf8e07530ade503b3d43a84b75a2a76fc40763daed4e9734e745c58c9ae72d3\n\n# tcId = 457\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100b38ca4dac6d949be5e5f969860269f0eedff2eb92f45bfc02470300cc96dd52602201c7b22992bb1", "3749cc0c5bc25330a17446e40db734203f9035172725fc70f863\n\n", }; -static const size_t kLen259 = 168183; +static const size_t kLen264 = 168183; -static const char *kData259[] = { +static const char *kData264[] = { "# Imported from Wycheproof's ecdsa_secp384r1_sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 042da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[key.wx = 2da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa]\n[key.wy = 4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200042da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[sha = SHA-384]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702301840da9fc1d2f8f8900cf485d5413b8c2574ee3a8d4ca03995ca30240e09513805bf6209b58ac7aa9cff54eecd82b9f1\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70230e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = MissingZero\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 4\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308165023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = BER\n\n# tcId = 5\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30820065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = BER\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3066023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 7\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 8\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30850100000065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 9\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3089010000000000000065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 10\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 11\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 12\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 13\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 14\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3065028012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 17\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7028000e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 18\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 19\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 20\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 21\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30670000023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 22\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 23\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820500\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a4981773065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306925003065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30673065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3", "394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820004deadbeef\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a2235498177023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306922342500023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306d2232023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70004deadbeef023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72236498177023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d722352500023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306d023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72233023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820004deadbeef\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306daa00bb00cd003065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306baa02aabb3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306d2238aa00bb00cd00023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306b2236aa02aabb023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306d023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72239aa00bb00cd00023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 38\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306b023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72237aa02aabb023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 39\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30803065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30692280023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70000023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 42\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72280023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30803165023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30692280033012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70000023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 45\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72280033100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 46\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e65023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f65023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3165023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3265023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 51\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff65023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 52\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 53\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 306930010230643012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f\n\n# tcId = 55\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 30643012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 56\n# indefini", "te length\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\nflags = BER\n\n# tcId = 57\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f8200\n\n# tcId = 58\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f8205000000\n\n# tcId = 59\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82060811220000\n\n# tcId = 60\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000fe02beef\n\n# tcId = 61\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820002beef\n\n# tcId = 62\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 30673000023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 63\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f823000\n\n# tcId = 64\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 3068023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82bf7f00\n\n# tcId = 65\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30673065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 66\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 3032023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7\n\n# tcId = 67\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 308198023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306602813012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = BER\n\n# tcId = 69\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702813100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = BER\n\n# tcId = 70\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30670282003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = BER\n\n# tcId = 71\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70282003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = BER\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023112b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065022f12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023200e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 75\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023000e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306a0285010000003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 77\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306a023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70285010000003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306e028901000000000000003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 79\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306e023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7028901000000000000003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 80\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306902847fffffff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 81\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702847fffffff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30690284ffffffff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff4", @@ -7734,9 +8044,9 @@ static const char *kData259[] = { "9023942871acb7002dfafdfffc8deace02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n# tcId = 386\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 30640230064ed80f27e1432e84845f15ece399f2cbf4fa31aa837de9b953d44413b9f5c7c7f67989d703f07abef11b6ad0373ea502302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0429bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc9a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[key.wx = 29bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc]\n[key.wy = 009a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000429bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc9a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[sha = SHA-384]\n\n# tcId = 387\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 3064023032401249714e9091f05a5e109d5c1216fdc05e98614261aa0dbd9e9cd4415dee29238afbd3b103c1e40ee5c9144aee0f02304326756fb2c4fd726360dd6479b5849478c7a9d054a833a58c1631c33b63c3441336ddf2c7fe0ed129aae6d4ddfeb753\n\n# tcId = 388\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 3066023100d7143a836608b25599a7f28dec6635494c2992ad1e2bbeecb7ef601a9c01746e710ce0d9c48accb38a79ede5b9638f3402310080f9e165e8c61035bf8aa7b5533960e46dd0e211c904a064edb6de41f797c0eae4e327612ee3f816f4157272bb4fabc9\n\n# tcId = 389\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 30650230234503fcca578121986d96be07fbc8da5d894ed8588c6dbcdbe974b4b813b21c52d20a8928f2e2fdac14705b0705498c023100cd7b9b766b97b53d1a80fc0b760af16a11bf4a59c7c367c6c7275dfb6e18a88091eed3734bf5cf41b3dc6fecd6d3baaf\n\n# tcId = 390\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 306502305cad9ae1565f2588f86d821c2cc1b4d0fdf874331326568f5b0e130e4e0c0ec497f8f5f564212bd2a26ecb782cf0a18d023100bf2e9d0980fbb00696673e7fbb03e1f854b9d7596b759a17bf6e6e67a95ea6c1664f82dc449ae5ea779abd99c78e6840\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aacacbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[key.wx = 00ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aac]\n[key.wy = 00acbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aacacbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[sha = SHA-384]\n\n# tcId = 391\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3065023007648b6660d01ba2520a09d298adf3b1a02c32744bd2877208f5a4162f6c984373139d800a4cdc1ffea15bce4871a0ed02310099fd367012cb9e02cde2749455e0d495c52818f3c14f6e6aad105b0925e2a7290ac4a06d9fadf4b15b578556fe332a5f\n\n# tcId = 392\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100a049dcd96c72e4f36144a51bba30417b451a305dd01c9e30a5e04df94342617dc383f17727708e3277cd7246ca44074102303970e264d85b228bf9e9b9c4947c5dd041ea8b5bde30b93aa59fedf2c428d3e2540a54e0530688acccb83ac7b29b79a2\n\n# tcId = 393\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30650230441800ea9377c27865be000ad008eb3d7502bdd105824b26d15cf3d06452969a9d0607a915a8fe989215fc4d61af6e05023100dce29faa5137f75ad77e03918c8ee6747cc7a39b0a69f8b915654cac4cf4bfd9c87cc46ae1631b5c6baebd4fc08ff8fd\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[key.wx = 00d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422]\n[key.wy = 00c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[sha = SHA-384]\n\n# tcId = 394\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306402303244768016457c463b74f2097f216d9670b191f76281c74bc6a1a1971d19f209bf4696468f5eb75d6326a0a43c0a65290230501e0ad985ed9f95697bd17fdbe3f9ca92e0f76426d3664e6896648d9c750bf588d0ce7d011c1a1e8d6c2e082422dc93\n\n# tcId = 395\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306402305e1af40f2480e3d97c4ae4bfd34a9f45269241356f3a46becd86a4a7c9716d73ca5aebdb3db1a7765650666683bc856b02307e7c4b473a2baaa4953785be8aa2a10006f6d36b400ab981864d69cecec046718d0404b9647454b159aa5a92d76d7955\n\n# tcId = 396\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306502306688e36a26f15bdc1c3f91367f8a7667f7bb3e30a335d6f0900e9534eb88b260cb29344c723fedfbe7ac9c5a33f4bf0d023100aa35fddf0fdc9017860b378f801cd806f3e2d754cd2fd94eb7bb36a46ce828cef87e9ebbf447068e630b87fee385ad8f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 041099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[key.wx = 1099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000]\n[key.wy = 00e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[sha = SHA-384]\n\n# tcId = 397\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100d4a8f3b0b4d3a5769e3a0bbc644b35f1d509355ed1fe401e170f667b661f693b32598e8c143a817a958982845042bb48023004cc07578bbd1981dbf6e8a97a354c98d41b8b6f6e8a2c2b1763c7c2a29d79e24f8476075c9aed9aec6c64dff50461ae\n\n# tcId = 398\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100c286d1928e9c79fdd3bebdf22a1dbd37c8105e8ecf41e9e3777fe341b6b8d5a89b9d986827d6d1dbb381cd8239484a220230201119ae305b9360aa9b5e5d1567e0674c09e4f025556ebf81b987466b0f421b8d31f72bbe95f3ce2aa9874a84edfd40\n\n# tcId = 399\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100d9c678550167f10c511e62acb4bd0a3f7f336bc090c94e6c6b02622439c348a2159c5f41f9b5aa4b470590d40dcd7cc202301fd5eaee295abb4081cb626745f4ad279ceb44604062830b58e6c0465c562d41f02ba588fc0db1ebbe339cdc008d7a1b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04000000002b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[key.wx = 2b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69]\n[key.wy = 00d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004000000002b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300", "e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[sha = SHA-384]\n\n# tcId = 400\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3065023020fee7c71b6cb0d1da3641ec6622c055a3b16a1f596c64b34da1b2d0b868b66a8f0a0d0db983b3dc7e53bb7295da81970231008141a931d3579aec1cac9887d2fff9c6f12d47a27e4aab8cf262a9d14a715bca0b2057cbc3f18b6fd3d1df76f7410f16\n\n# tcId = 401\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100913eecc559b3cf7108a65d6cc3076bfdf36c6f94dcc6693d06690470f34a2e81564241e1de5f5f51421de30af467f10f0230649bd3717244e8ef3c6b0eda983f84dca5ea86d1bec15386b9c473ec43a8cd0ba558eee819f791d9ff9272b9afd59551\n\n# tcId = 402\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3064023023855c46403a97b76cbb316ec3fe7e2c422b818387604bda8c3d91121b4f20179d9107c5f92dedc8b620d7db87fccccd023050f57343ab148e50662320c4161e44543c35bc992011ea5b1680b94382cf224ea0ec5da511e102f566cb67201f30a2ee\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b33600000000208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[key.wx = 00fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]\n[key.wy = 208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b33600000000208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[sha = SHA-384]\n\n# tcId = 403\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100d200958d491fcebde667cd736c9dba0961c70db2ecaf573c31dd7fa41ecca32b40b5896f9a0ddf272110e3d21e84593a023100c2ecf73943b9adce596bac14fce62495ae93825c5ff6f61c247d1d8afcba52082fc96f63a26e55bccfc3779f88cfd799\n\n# tcId = 404\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 306402306ac17d71260c79f81a7566124738cb3ee5d0aa690e73a98ae9e766f1336691e500cad51ba1302366c09cc06b8f7049e0023032ca965d6d7012ec187c7cab9544334d66c2a7658ddefa67e4ad40429815518ecc87b1492ddd57333bd2300b4660a835\n\n# tcId = 405\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100e19a4646f0ed8a271fe86ba533f8be4fd81bbf4674716f668efa89a40cac51eec2a6cfbd92327d25efe91ca4ff712bc502304a86b2e8e12378e633dec2691e3b1eed4e932cc48b28e45fa3d464cc0e948c02cc9decf2bb43b25937fcf37e9ad86ef0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[key.wx = 00fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]\n[key.wy = 00ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[sha = SHA-384]\n\n# tcId = 406\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3064023015aac6c0f435cb662d110db5cf686caee53c64fe2d6d600a83ebe505a0e6fc62dc5705160477c47528c8c903fa865b5d02307f94ddc01a603f9bec5d10c9f2c89fb23b3ffab6b2b68d0f04336d499085e32d22bf3ab67a49a74c743f72473172b59f\n\n# tcId = 407\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 306602310090b95a7d194b73498fba5afc95c1aea9be073162a9edc57c4d12f459f0a1730baf2f87d7d6624aea7b931ec53370fe47023100cbc1ef470e666010604c609384b872db7fa7b8a5a9f20fdefd656be2fcc75db53948102f7ab203ea1860a6a32af246a1\n\n# tcId = 408\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100dd4391ce7557cbd005e3d5d727cd264399dcc3c6501e4547505b6d57b40bbf0a7fac794dcc8d4233159dd0aa40d4e0b9023100a77fa1374fd60aa91600912200fc83c6aa447f8171ecea72ae322df32dccd68951dc5caf6c50380e400e45bf5c0e626b\n\n", }; -static const size_t kLen260 = 179510; +static const size_t kLen265 = 179510; -static const char *kData260[] = { +static const char *kData265[] = { "# Imported from Wycheproof's ecdsa_secp384r1_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 042da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[key.wx = 2da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa]\n[key.wy = 4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200042da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[sha = SHA-512]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202307b0a10ee2dd0dd2fab75095af240d095e446faba7a50a19fbb197e4c4250926e30c5303a2c2d34250f17fcf5ab3181a6\n\n# tcId = 2\n# Legacy:ASN encoding of r misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 30650230814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = MissingZero\n\n# tcId = 3\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2023084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = MissingZero\n\n# tcId = 4\n# valid\nmsg = 313233343030\nresult = valid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 5\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308166023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = BER\n\n# tcId = 6\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30820066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = BER\n\n# tcId = 7\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3067023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 8\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 9\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30850100000066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 10\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3089010000000000000066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 11\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 12\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 13\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 14\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 15\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 17\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3066028000814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 18\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202800084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 19\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 20\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 21\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 22\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30680000023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 23\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 24\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0500\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306b4981773066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a2500306602", "3100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30683066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0004deadbeef\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306b2236498177023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a22352500023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306e2233023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20004deadbeef02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306b023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2223649817702310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22235250002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 33\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306e023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2223302310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0004deadbeef\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306eaa00bb00cd003066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306caa02aabb3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306e2239aa00bb00cd00023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306c2237aa02aabb023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 38\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306e023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22239aa00bb00cd0002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 39\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306c023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22237aa02aabb02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 40\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30803066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 42\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 306a2280023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2000002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 43\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2228002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30803166023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 45\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 306a2280033100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2000002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 46\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2228003310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 47\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e66023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f66023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3166023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 51\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3266023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 52\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff66023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 53\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 54\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 306a30010230653100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 55\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673", "854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7\n\n# tcId = 56\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 30653100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 57\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\nflags = BER\n\n# tcId = 58\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd00\n\n# tcId = 59\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd05000000\n\n# tcId = 60\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd060811220000\n\n# tcId = 61\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000fe02beef\n\n# tcId = 62\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0002beef\n\n# tcId = 63\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 30683000023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 64\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd3000\n\n# tcId = 65\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 3069023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cdbf7f00\n\n# tcId = 66\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30683066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 67\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 3033023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2\n\n# tcId = 68\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 308199023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 69\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306702813100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = BER\n\n# tcId = 70\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20281310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = BER\n\n# tcId = 71\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30680282003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = BER\n\n# tcId = 72\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2028200310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = BER\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023200814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023000814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 75\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202320084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 76\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202300084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 77\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306b0285010000003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 78\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306b023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2028501000000310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 79\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306f028901000000000000003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 80\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306f023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202890100000000000000310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 81\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306a02847fffffff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 82\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada", @@ -7760,9 +8070,9 @@ static const char *kData260[] = { "11337e6af36ae0798c17043d79e8efcdae8e724adf96a2309207c2d2cfd88e8c483acb]\n[key.wx = 0081f92630778777a01781e7924fced35fc09018d9b00820881b14a814c1836a1f73c3641f7a17c821ffd95da902efe132]\n[key.wy = 221d81323509391f7b61bd796011337e6af36ae0798c17043d79e8efcdae8e724adf96a2309207c2d2cfd88e8c483acb]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000481f92630778777a01781e7924fced35fc09018d9b00820881b14a814c1836a1f73c3641f7a17c821ffd95da902efe132221d81323509391f7b61bd796011337e6af36ae0798c17043d79e8efcdae8e724adf96a2309207c2d2cfd88e8c483acb]\n[sha = SHA-512]\n\n# tcId = 420\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702300eb10e5ab95f2f26a40700b1300fb8c3e754d5c453d9384ecce1daa38135a48a0a96c24efc2a76d00bde1d7aeedf7f6a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[key.wx = 00aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7]\n[key.wy = 3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[sha = SHA-512]\n\n# tcId = 421\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3064023043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158ca02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n# tcId = 422\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3065023100bc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d322ff6d1d1162b5de29edcd0b69803fe2f8af8e3d103d0a902302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[key.wx = 00aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7]\n[key.wy = 00c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[sha = SHA-512]\n\n# tcId = 423\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3064023043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158ca02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n# tcId = 424\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3065023100bc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d322ff6d1d1162b5de29edcd0b69803fe2f8af8e3d103d0a902302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0429bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc9a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[key.wx = 29bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc]\n[key.wy = 009a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000429bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc9a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[sha = SHA-512]\n\n# tcId = 425\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 306402302290c886bbad8f53089583d543a269a727665626d6b94a3796324c62d08988f66f6011e845811a03589e92abe1f17faf023066e2cb4380997f4e7f85022541adb22d24d1196be68a3db888b03eb3d2d40b0d9a3a6a00a1a4782ee0a00e8410ba2d86\n\n# tcId = 426\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 30650231008071d8cf9df9efef696ebafc59f74db90c1f1ecf5ccde18858de22fe4d7df2a25cb3001695d706dfd7984b39df65a0f4023027291e6339c2a7fed7a174bb97ffe41d8cfdc20c1260c6ec85d7259f0cc7781bf2ae7a6e6fb4c08e0d75b7381bb7d9b8\n\n# tcId = 427\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 30650230470014ccd7a1a5e5333d301c8ea528ac3b07b01944af30cec60f4bad94db108509e45ba381818b5bdfaf9daf0d372301023100e3d49d6a05a755aa871d7cb96fffb79fed7625f83f69498ba07c0d65166a67107c9a17ae6e1028e244377a44096217b2\n\n# tcId = 428\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 30640230377044d343f900175ac6833071be74964cd636417039e10e837da94b6919bffc3f5a517b945a450852af3259f5cbf108023032ea25006375c153581e80c09f53ad585c736f823c70147aba4fb47bb0a224fae4d8819adad80d4c144ecc2380954a9e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aacacbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[key.wx = 00ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aac]\n[key.wy = 00acbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aacacbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[sha = SHA-512]\n\n# tcId = 429\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100ccb13c4dc9805a9b4e06ee25ef8c7593eaff7326c432d4b12b923163cf1cbe5fe1cfd3546c1d0761d8874e83ffd2e15d023100db1b0c082ae314b539f05e8a14ad51e5db37f29cacea9b2aab63a04917d58d008cf3f7ba41d5ea280f3b6a67be3ae8f8\n\n# tcId = 430\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100c79a30e36d2126b348dd9eb2f5db6aa98f79d80214027e51bcf3cabec188a7ebaf25cb7bbe9ec6bfed135e2a3b70e9160230241338ee2ac931adea9a56e7bfe909947128d54d5122a47b00c278e684e10102740d26e89e343290a5b2fa8b401faec6\n\n# tcId = 431\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 306402300df82e4ec2960e3df614f8b49cec9a4ee1054365414241361feec9d9d9b6909d8775f222ec385a14afab46266db390c302300968485e854addba0f8354e677e955e1ef2df973d564c49f65f2562cb2a2b80d75e92f8784042955f7b8765f609ce221\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[key.wx = 00d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422]\n[key.wy = 00c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[sha = SHA-512]\n\n# tcId = 432\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306402301fafd83d728422e1485f1e52e5b631548647cc3c76c109c3177a73751d91a19012fa4628b218f2229fc4d55f105fe00102304474f9af7b4b0bb96fdb05ae918f799024e8d5b86", "4e49ccd047cf97e7b9f8763cce015c11cf1f461c9027cb901055101\n\n# tcId = 433\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100e6025bb957ab197fb4c080d0a5c647e428afb0d7cc235c605ae97545494fd31a9979790bb2da6e1cf186789422b15c970231008ae9872291430d1bb371ef72360dad5afbb6fb001f403d9aaa1445f0326eb1eef775c9dfe1d7ef8bf4e744822108d27e\n\n# tcId = 434\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100877d5567c18fa568259005a89c2300d1b3825b732fa14964c1477d4b3098afd09384b97d497464adba41e9df8a74d339023100c40f0760717b4b3bae75742b6dc3dcf04cc22a449cfea19d305e0658cb705fda75163e7399e0b3125ca7d1919c13851e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 041099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[key.wx = 1099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000]\n[key.wy = 00e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[sha = SHA-512]\n\n# tcId = 435\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100e706b0045a6f54bd175e2437b48767b0204f93d8a4d9d3d00838278137e5b670de4305c5c55e49059b8b5f6e264654c90230405741adff94afd9a88e08d0b1021911fa4cedb2466b1a8fd302a5b5d96566ada63ccb82b6c5e8452fde860c545e0a19\n\n# tcId = 436\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306502300c57ce2bc579fbd3a759dfbf5e84c3cef2414846a2e300453e1e4c5188f24432b14ca647a733b6ad35c980a880d36145023100f12a119e22d48b82049df611f1c851fb22795056498a873c730fcb9fd8f314728de0298b9b22c348abc6de2aba97e972\n\n# tcId = 437\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 30660231009a8f80697ccf2e0617612027d861a3a3a657fb75cc82810b40dd5072d39ff37eca29008390da356137e2c9babd814198023100a86537a83c3d57da50e4b29b47dcc3717c5a1ed0fff18ade8dcce4220eac63aab60b9bfed5f1bdd241dab655a9bdd75f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04000000002b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[key.wx = 2b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69]\n[key.wy = 00d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004000000002b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[sha = SHA-512]\n\n# tcId = 438\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 306602310093718f6f8542725f62de7039fc193d3fcc81d622230ccc94e9e265390b385af3a3ba50c91a9d6a5b1e07d79af2bd80b2023100d08499f3d298e8afecea122265a36dbf337259020654739783c8ec8ef783d072555b5907285ce83fc8ced9c8398c6269\n\n# tcId = 439\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100ce26e42c490dec92cf59d6b1ba75c9a1400d6e5c3fd7c47e1eeb1cded30a3a3d18c81cdfdcbad2742a97293369ce21c202310094671085d941fd27d495452a4c8559a1fe24f3225f5b8ef75faf9d3fb01372c586e23b82714359d0e47144ff5d946161\n\n# tcId = 440\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100ffc4738acf71f04a13104c328c138b331fb7202aef66f583ba543ed490d12993c18f724c81ad0f7ea18dae352e5c6480023100e67d4ccdeb68a9a731f06f77eae00175be076d92529b109a62542692c8749ddfde03bed1c119a5901a4e852f2115578f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b33600000000208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[key.wx = 00fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]\n[key.wy = 208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b33600000000208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[sha = SHA-512]\n\n# tcId = 441\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100e6fa8455bc14e730e4ca1eb5faf6c8180f2f231069b93a0bb17d33ad5513d93a36214f5ce82ca6bd785ccbacf7249a4c02303979b4b480f496357c25aa3fc850c67ff1c5a2aabd80b6020d2eac3dd7833cf2387d0be64df54a0e9b59f12c3bebf886\n\n# tcId = 442\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 306502301b49b037783838867fbaa57305b2aa28df1b0ec40f43140067fafdea63f87c02dfb0e6f41b760fbdf51005e90c0c3715023100e7d4eb6ee61611264ea8a668a70287e3d63489273da2b30ad0c221f1893feaea3e878c9a81c6cec865899dbda4fa79ae\n\n# tcId = 443\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 306502310091d9da3d577408189dcaae33d95ed0a0118afd460d5228fa352b6ea671b172eb413816a70621ddaf23c5e2ef79df0c110230053dadbfcd564bddbe44e0ecb4d1e608dbd35d4e83b6634cc72afb87a2d61675ee13960c243f6be70519e167b1d3ceb0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[key.wx = 00fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]\n[key.wy = 00ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[sha = SHA-512]\n\n# tcId = 444\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100af0ed6ce6419662db80f02a2b632675445c7bf8a34bbacdc81cc5dd306c657ca4c5a3fb1b05f358d8f36fda8ae238806023046b472c0badb17e089c8f9697fd0b4ce71f0f4471b235483d4c8dd3d00aa282cde990253df38ba733b2ad82a601c7508\n\n# tcId = 445\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100e2aa9468ccaaadad8b9f43a429c97f0c6a7eedcb4d4af72d639df0fe53f610b953408a8e24e8db138551770750680f7a023100d81020846d1c50ee9ae23601dd638cb71b38d37fb555268c2fa1ad8a761fa7b27afcab2fa69224d1f976699914e09de2\n\n# tcId = 446\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 306402306bf6fa7a663802c3382cc5fd02004ec71e5a031e3d9bfc0858fa994e88497a7782308bc265b8237a6bbbdd38658b36fc02303a9d5941a013bf70d99cc3ff255ce85573688dac40344b5db7144b19bf57bb2701e6850a8f819796b67f7d0b6aea7e50\n\n", }; -static const size_t kLen261 = 225135; +static const size_t kLen266 = 225135; -static const char *kData261[] = { +static const char *kData266[] = { "# Imported from Wycheproof's ecdsa_secp521r1_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04005c6457ec088d532f482093965ae53ccd07e556ed59e2af945cd8c7a95c1c644f8a56a8a8a3cd77392ddd861e8a924dac99c69069093bd52a52fa6c56004a074508007878d6d42e4b4dd1e9c0696cb3e19f63033c3db4e60d473259b3ebe079aaf0a986ee6177f8217a78c68b813f7e149a4e56fd9562c07fed3d895942d7d101cb83f6]\n[key.wx = 5c6457ec088d532f482093965ae53ccd07e556ed59e2af945cd8c7a95c1c644f8a56a8a8a3cd77392ddd861e8a924dac99c69069093bd52a52fa6c56004a074508]\n[key.wy = 7878d6d42e4b4dd1e9c0696cb3e19f63033c3db4e60d473259b3ebe079aaf0a986ee6177f8217a78c68b813f7e149a4e56fd9562c07fed3d895942d7d101cb83f6]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004005c6457ec088d532f482093965ae53ccd07e556ed59e2af945cd8c7a95c1c644f8a56a8a8a3cd77392ddd861e8a924dac99c69069093bd52a52fa6c56004a074508007878d6d42e4b4dd1e9c0696cb3e19f63033c3db4e60d473259b3ebe079aaf0a986ee6177f8217a78c68b813f7e149a4e56fd9562c07fed3d895942d7d101cb83f6]\n[sha = SHA-512]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024201d74a2f6d95be8d4cb64f02d16d6b785a1246b4ebd206dc596818bb953253245f5a27a24a1aae1e218fdccd8cd7d4990b666d4bf4902b84fdad123f941fe906d948\n\n# tcId = 2\n# valid\nmsg = 313233343030\nresult = valid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 3\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082008602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\nflags = BER\n\n# tcId = 4\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 5\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 6\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000008602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 7\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000008602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 8\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 9\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 10\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 11\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 12\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 13\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 14\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 30818602804e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645028028b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 16\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 17\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 18\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 19\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 308188000002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 20\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 21\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df92", "3a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10500\n\n# tcId = 22\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818c49817730818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 23\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818b250030818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818930818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10004deadbeef\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818b224649817702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818a2245250002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818e224302414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450004deadbeef024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818b02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452246498177024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864522452500024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818e02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452243024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10004deadbeef\n\n# tcId = 31\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818faa00bb00cd0030818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 32\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818daa02aabb30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818e2249aa00bb00cd0002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818c2247aa02aabb02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818e02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452249aa00bb00cd00024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818c02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452247aa02aabb024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 37\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 38\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 308030818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 39\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30818a228002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450000024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452280024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 41\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 308031818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 42\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30818a228003414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450000024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452280034128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 44\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 45\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf", "8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 46\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 31818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 32818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 50\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 51\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818b300102308185414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 52\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318a\n\n# tcId = 53\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 308185414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 54\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\nflags = BER\n\n# tcId = 55\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac100\n\n# tcId = 56\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac105000000\n\n# tcId = 57\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1060811220000\n\n# tcId = 58\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000fe02beef\n\n# tcId = 59\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10002beef\n\n# tcId = 60\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 308188300002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 61\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac13000\n\n# tcId = 62\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 30818902414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1bf7f00\n\n# tcId = 63\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818930818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 64\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 304302414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645\n\n# tcId = 65\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081c902414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 66\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3081870281414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\nflags = BER\n\n# tcId = 67\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502814128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\nflags = BER\n\n# tcId = 68\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 308188028200414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf", @@ -7792,9 +8102,9 @@ static const char *kData261[] = { "bfc9b045f8a55e1b6a5fe1512c400c4bc9c86fd7c699d642f5cee9bb827c8b0abc0da01cef1e]\n[sha = SHA-512]\n\n# tcId = 429\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 308188024201625d6115092a8e2ee21b9f8a425aa73814dec8b2335e86150ab4229f5a3421d2e6256d632c7a4365a1ee01dd2a936921bbb4551a512d1d4b5a56c314e4a02534c5024201b792d23f2649862595451055777bda1b02dc6cc8fef23231e44b921b16155cd42257441d75a790371e91819f0a9b1fd0ebd02c90b5b774527746ed9bfe743dbe2f\n\n# tcId = 430\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 30818602415adc833cbc1d6141ced457bab2b01b0814054d7a28fa8bb2925d1e7525b7cf7d5c938a17abfb33426dcc05ce8d44db02f53a75ea04017dca51e1fbb14ce3311b1402415f69b2a6de129147a8437b79c72315d35173d88c2d6119085c90dae8ec05c55e067e7dfa4f681035e3dccab099291c0ecf4428332a9cb0736d16e79111ac76d766\n\n# tcId = 431\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 3081880242014141e4d94a58c1e747cbd9ee6670a41eac3c26fb4db3248e45d583179076e6b19a8e2003657a108f91f9a103157edff9b37df2b436a77dc112927d907ac9ba258702420108afa91b34bd904c680471e943af336fb90c5fb2b91401a58c9b1f467bf81af8049965dd8b45f12e152f4f7fd3780e3492f31ed2680d4777fbe655fe779ad897ab\n\n# tcId = 432\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 308187024108135d3f1ae9e26fba825643ed8a29d63d7843720e93566aa09db2bdf5aaa69afbcc0c51e5295c298f305ba7b870f0a85bb5699cdf40764aab59418f77c6ffb4520242011d345256887fb351f5700961a7d47572e0d669056cb1d5619345c0c987f3331c2fe2c6df848a5c610422defd6212b64346161aa871ae55b1fe4add5f68836eb181\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a00000000009b98bfd33398c2cf8606fc0ae468b6d617ccb3e704af3b8506642a775d5b4da9d00209364a9f0a4ad77cbac604a015c97e6b5a18844a589a4f1c7d9625]\n[key.wx = 304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a]\n[key.wy = 009b98bfd33398c2cf8606fc0ae468b6d617ccb3e704af3b8506642a775d5b4da9d00209364a9f0a4ad77cbac604a015c97e6b5a18844a589a4f1c7d9625]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a00000000009b98bfd33398c2cf8606fc0ae468b6d617ccb3e704af3b8506642a775d5b4da9d00209364a9f0a4ad77cbac604a015c97e6b5a18844a589a4f1c7d9625]\n[sha = SHA-512]\n\n# tcId = 433\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3081870242011c9684af6dc52728410473c63053b01c358d67e81f8a1324ad711c60481a4a86dd3e75de20ca55ce7a9a39b1f82fd5da4fadf26a5bb8edd467af8825efe4746218024134c058aba6488d6943e11e0d1348429449ea17ac5edf8bcaf654106b98b2ddf346c537b8a9a3f9b3174b77637d220ef5318dbbc33d0aac0fe2ddeda17b23cb2de6\n\n# tcId = 434\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 30818702417c47a668625648cd8a31ac92174cf3d61041f7ad292588def6ed143b1ff9a288fd20cf36f58d4bfe4b2cd4a381d4da50c8eda5674f020449ae1d3dd77e44ed485e024201058e86b327d284e35bab49fc7c335417573f310afa9e1a53566e0fae516e099007965030f6f46b077116353f26cb466d1cf3f35300d744d2d8f883c8a31b43c20d\n\n# tcId = 435\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201e4e9f3a7b800de63407b8703ac545226541c97a673566711f70e2b9ccb21a145ad4637825b023d1ea9f18e60897413711611a85c1179bff9c107368f1c1b61c24c024201de948ee577c3d4e4122a52ecccac59abb6fa937dfb3e4b988cb243efe98740309452ba013112b225b3b1b1384d5f68796845199a2602a8d4505a331b07d101188e\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a01ffffffff6467402ccc673d3079f903f51b974929e8334c18fb50c47af99bd588a2a4b2562ffdf6c9b560f5b528834539fb5fea368194a5e77bb5a765b0e38269da]\n[key.wx = 304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a]\n[key.wy = 01ffffffff6467402ccc673d3079f903f51b974929e8334c18fb50c47af99bd588a2a4b2562ffdf6c9b560f5b528834539fb5fea368194a5e77bb5a765b0e38269da]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a01ffffffff6467402ccc673d3079f903f51b974929e8334c18fb50c47af99bd588a2a4b2562ffdf6c9b560f5b528834539fb5fea368194a5e77bb5a765b0e38269da]\n[sha = SHA-512]\n\n# tcId = 436\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 308187024200b6cf64861a2b16e33976095dbf45a592c7c24228c4a1dd727f303d5eeb87e5388ad05c328f824c40abd3e6ce003fef5cd59dee0069ad6348ea6e57f90f6bdc0a820241228181c180366e5451dfef3593ce664804cb42d5a8d5046b816b3daf6602fafd9ac2dc24b8c93a10024480882558b6ad3d9e905923dcd0fd2a11964754a9b46b8f\n\n# tcId = 437\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30818802420093c8f766827d6dc15c810fa30433153a5e742859205ee8389fbf695c8840dc917440870acc5b160087ffd0cd9a6081029c60a7c26d5e8aa9a0570f4efdeb13dea20242012ec3bbf75a0ad3df40310266648a36db820217ed7fa94e9c8313e03293ef4f6a40e736fb8f208ad8fb883ca509d48046910523645459c27829d54431463b2548c7\n\n# tcId = 438\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30818802420152388c6da66164b706b41dd4dd48176d6eaf6525f876ef0ff2d147f6966ebfadf1767fa66d04203d3ec9c937a1f0c945aed953e34be444c219fd3b94d3277aa652024201658c1e5b2e563a49d11c883d05c491d628f0a92c3e3dc8db9a4c8d5f0dc846ac22af8b3c5fb5bbe2cfa98614dcffd87de1cee2c5912a5899505a0c5bcaa513e2c6\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040000000002fba6a061201ea6b1ed4265163568735ebab78600cdf6a71101dc63beaf546d97a214fc6396793b014eb1aa7a728f53deb2ff9999a3808ddfed15e9629b01993852dadc39299a5a45b6bd7c8dc8ec67e7adbb359fa8fa5d44977e15e2e5a9acf0c33645f3f2c68c526e07732fb35043719cfafc16063c8e58850a958436a4e5]\n[key.wx = 02fba6a061201ea6b1ed4265163568735ebab78600cdf6a71101dc63beaf546d97a214fc6396793b014eb1aa7a728f53deb2ff9999a3808ddfed15e9629b]\n[key.wy = 01993852dadc39299a5a45b6bd7c8dc8ec67e7adbb359fa8fa5d44977e15e2e5a9acf0c33645f3f2c68c526e07732fb35043719cfafc16063c8e58850a958436a4e5]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040000000002fba6a061201ea6b1ed4265163568735ebab78600cdf6a71101dc63beaf546d97a214fc6396793b014eb1aa7a728f53deb2ff9999a3808ddfed15e9629b01993852dadc39299a5a45b6bd7c8dc8ec67e7adbb359fa8fa5d44977e15e2e5a9acf0c33645f3f2c68c526e07732fb35043719cfafc16063c8e58850a958436a4e5]\n[sha = SHA-512]\n\n# tcId = 439\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3081880242010e89470f981d2c7c5c96587121a67323bb96ff2427739d0d885ea277293efa3b25c0bda04d81466198a3cbfc441f1b1b98f6bcdc2589d9d91a17a7899f70d0461e0242017351b0da8c8d0e4aa0974669d190fa2f90aa50227160594dfb55755002365441de17ea42902128a6f81e554177ed509c0cec31fd5053fae03f62ff76579ba92bda\n\n# tcId = 440\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3081880242011094ac23ca46a3e2b4ac3baae6504f1bfb3ddf2db9ab40eda32d8e0a05727998f8552a033bb05241e826a86a1d03014eae3aa5fe1a45caac1db3e8138b9cf5906802420147edb15a5080ee2f929f78b6ac86604aae51b674fa46eaae7fdfd90bf64d6189341155f4eba937eae74c9e480eb4fb7e6aafd4285e7fc503ee6ec20f0b1415be06\n\n# tcId = 441\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201d876ae174da31e128babff9f1d15507660bdc7958750844dc4f4291f75a882a22f177f704be6067bf7ce8f06b8626d971e6ef5dcb666fa975c1e11126e04fccce2024201abb12630a68b669e6ad2d8d62654d75dfbc6b54a8e3a9c915be663e080ddcc348e57a10e2b1dd9f03e1b897796ad889b075e5919dc5bf37a112d92c693456e6457\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401fffffffe1d5d52b31ca52f8947a35593edf164cd324f833b90935846c64db1454df9f028dc8bc36bb04cb7f0cceceba01a3844097f7c35eeaa81428db0cca6333101b7c70277d0bf78a3c7b62c937f0cb2cad2565f5514f6205ceb1a193d4fdb45ba6e6cec07827bae0b16b8316c3539a15114d", "0de6d2de407fd7117551a70826eada6]\n[key.wx = 01fffffffe1d5d52b31ca52f8947a35593edf164cd324f833b90935846c64db1454df9f028dc8bc36bb04cb7f0cceceba01a3844097f7c35eeaa81428db0cca63331]\n[key.wy = 01b7c70277d0bf78a3c7b62c937f0cb2cad2565f5514f6205ceb1a193d4fdb45ba6e6cec07827bae0b16b8316c3539a15114d0de6d2de407fd7117551a70826eada6]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffe1d5d52b31ca52f8947a35593edf164cd324f833b90935846c64db1454df9f028dc8bc36bb04cb7f0cceceba01a3844097f7c35eeaa81428db0cca6333101b7c70277d0bf78a3c7b62c937f0cb2cad2565f5514f6205ceb1a193d4fdb45ba6e6cec07827bae0b16b8316c3539a15114d0de6d2de407fd7117551a70826eada6]\n[sha = SHA-512]\n\n# tcId = 442\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30818602414ed692af1ed1b4bd5cea3aa8ddc6f3f15d8a6ee0016fa0e8eb958580e7421832ecc0e387c34aafac6380bac419ea45c42ae6426af503847f22c49c2f456338c1a702417aceadde02ace1668bc1a3360d34e125afde230f536c154d91e6c876bee1d34ae06edcbbca0c7cd17646840913164740b12e2e224fe3ef3dec6fd84a81b581c188\n\n# tcId = 443\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 308188024200e01094048fcf7a1e2ec66faedffc40f48c9c93514325bde6b4958d80f0413efde7eec1dc6de65f96009c069397e51da2eb1729efa287afd5552b25a9e427a6d836024201489e7e124f66942e642de992e60b3a86fcce576767719390c3a312fcdeaa560a7fbb0cabb35e05a6d6f3499160fd2dba12d29b613b16dec7494c950d65fdf11fa3\n\n# tcId = 444\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201d296292213380de133dc66eceb8bd857a5c468afe855c05da9db937373b51f9020ca11353415da76bb6af997a486d2370e31adcc0a4531952a3b59428678ee59430242015979a3c609c2c2099ae1b290da3d613b248e3a10de7ad770dffc82fb33e74fc3207533f97285cf4557a6407e9a775e59efeaee4264b2634933a6baf8c406f0c4a9\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400c7c8817bf2f0652a4a4b5140c773e261080a0a111395856e8a3350f5eb5612bd63b367b965e92e9538ea3b7908aef1ade4b68e17f9f9148495c167d1c4dd4913490008bf0be2979abb8111fd0d768adcad774113a822c1bb60887053b5cf8c9563e76705a391ece154b5dfb114b20e351df4014bec19fa87720845801cf06b7fffffff]\n[key.wx = 00c7c8817bf2f0652a4a4b5140c773e261080a0a111395856e8a3350f5eb5612bd63b367b965e92e9538ea3b7908aef1ade4b68e17f9f9148495c167d1c4dd491349]\n[key.wy = 08bf0be2979abb8111fd0d768adcad774113a822c1bb60887053b5cf8c9563e76705a391ece154b5dfb114b20e351df4014bec19fa87720845801cf06b7fffffff]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400c7c8817bf2f0652a4a4b5140c773e261080a0a111395856e8a3350f5eb5612bd63b367b965e92e9538ea3b7908aef1ade4b68e17f9f9148495c167d1c4dd4913490008bf0be2979abb8111fd0d768adcad774113a822c1bb60887053b5cf8c9563e76705a391ece154b5dfb114b20e351df4014bec19fa87720845801cf06b7fffffff]\n[sha = SHA-512]\n\n# tcId = 445\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201ef8f785c51a25ae2cd93487b5c848d4af133217a91f51359c966e7538e68743578122df5830002f96f6fadb5bc44480e3b3b2c804e4c51cf95d059d5646c5cef21024201ba2276cc003e87bea37c3724e58a0ab885f56d09b8b5718f674f9c70f3b5ecfb4ad1f3417b420ec40810e08826efa7d8ad6ca7c6a7840348097f92b2de8d6e080b\n\n# tcId = 446\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 30818802420155978adc4b570d897511f5ecfb65a31947e6e989da17dea716625bb3fa7b92b853623eb0cd9ce2a5e2b4d8c1c2a90ec04fe79d012576ec728a45c5ce47c6d500c0024200f79fa8b94ee282a3d1815892cbf15d7ebdf62cb042c76bb3c710c23e32b75992cc249d84072198e4ed63d72435a07d2ed76f278d7399f61a5b5c997f45692fed22\n\n# tcId = 447\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201a2af29c58184ca861e7cd931f39cea064b199eee563f241cd5ecf6ebb2ade728f1be23cf007ebe8ef0c42d99f9f5190f6815446afc3043a820d7daf27e86b83b8a024201a2acd1822eb539383defff8769aad8bacd50cd24ca7aa6670671418110177808c3f4fbe6041b9cb898359ee61e04824adedd62b39fe5791907a20586333bd3c76d\n\n", }; -static const size_t kLen262 = 127998; +static const size_t kLen267 = 127998; -static const char *kData262[] = { +static const char *kData267[] = { "# Imported from Wycheproof's ecdsa_secp256k1_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b838ff44e5bc177bf21189d0766082fc9d843226887fc9760371100b7ee20a6ff0c9d75bfba7b31a6bca1974496eeb56de357071955d83c4b1badaa0b21832e9]\n[key.wx = 00b838ff44e5bc177bf21189d0766082fc9d843226887fc9760371100b7ee20a6f]\n[key.wy = 00f0c9d75bfba7b31a6bca1974496eeb56de357071955d83c4b1badaa0b21832e9]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a03420004b838ff44e5bc177bf21189d0766082fc9d843226887fc9760371100b7ee20a6ff0c9d75bfba7b31a6bca1974496eeb56de357071955d83c4b1badaa0b21832e9]\n[sha = SHA-256]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 3046022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365022100900e75ad233fcc908509dbff5922647db37c21f4afd3203ae8dc4ae7794b0f87\n\n# tcId = 2\n# Legacy:ASN encoding of r misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 30440220813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\nflags = MissingZero\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 3045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 4\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308145022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\nflags = BER\n\n# tcId = 5\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30820045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\nflags = BER\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3046022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 7\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3044022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 8\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30850100000045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 9\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3089010000000000000045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 10\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 11\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 12\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 13\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 14\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3045028000813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 17\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502806ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 18\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 19\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 20\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba0000\n\n# tcId = 21\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30470000022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 22\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba0000\n\n# tcId = 23\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba0500\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a4981773045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304925003045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30473045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba0004deadbeef\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a2226498177022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304922252500022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d2223022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc98323650004deadbeef02206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365222549817702206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3049022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc98323652224250002206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365222202206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba0004deadbeef\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304daa00bb00cd003045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff", "758000d6f613a556eb31ba\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304baa02aabb3045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d2229aa00bb00cd00022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b2227aa02aabb022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc98323652228aa00bb00cd0002206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 38\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc98323652226aa02aabb02206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 39\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30803045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba0000\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30492280022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365000002206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 42\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3049022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365228002206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba0000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30803145022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba0000\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30492280032100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365000002206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 45\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3049022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365228003206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba0000\n\n# tcId = 46\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e45022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f45022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3145022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3245022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 51\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff45022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 52\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 53\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 304930010230442100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 3044022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31\n\n# tcId = 55\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 30442100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 56\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba0000\nflags = BER\n\n# tcId = 57\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba00\n\n# tcId = 58\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba05000000\n\n# tcId = 59\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba060811220000\n\n# tcId = 60\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba0000fe02beef\n\n# tcId = 61\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba0002beef\n\n# tcId = 62\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 30473000022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 63\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba3000\n\n# tcId = 64\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 3048022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31babf7f00\n\n# tcId = 65\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30473045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 66\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 3023022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365\n\n# tcId = 67\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 3067022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba02206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304602812100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\nflags = BER\n\n# tcId = 69\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3046022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc98323650281206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\nflags = BER\n\n# tcId = 70\n# length of integer con", "tains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30470282002100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\nflags = BER\n\n# tcId = 71\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3047022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365028200206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\nflags = BER\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045022200813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045022000813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502216ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 75\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365021f6ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304a0285010000002100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 77\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304a022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365028501000000206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304e028901000000000000002100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 79\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304e022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502890100000000000000206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 80\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902847fffffff00813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 81\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3049022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502847fffffff6ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30490284ffffffff00813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 83\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3049022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc98323650284ffffffff6ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a0285ffffffffff00813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 85\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc98323650285ffffffffff6ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d0288ffffffffffffffff00813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 87\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc98323650288ffffffffffffffff6ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502ff00813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 89\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502ff6ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 90\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 302202206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 30230202206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 92\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 3024022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3047022300813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365000002206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 94\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3047022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502226ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba0000\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 30470223000000813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\nflags = BER\n\n# tcId = 96\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3047022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365022200006ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\nflags = BER\n\n# tcId = 97\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3047022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365000002206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 3047022300813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc9832365050002206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 99\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 3047022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502226ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba0500\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3024028102206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 101\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3025022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc98323650281\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3024050002206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 103\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3025022100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc98323650500\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045002100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045012100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a556eb31ba\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045032100813ef79ccefa9a56f7ba805f0e478584fe5f0dd5f567bc09b5123ccbc983236502206ff18a52dcc0336f7af62400a6dd9b810732baf1ff758000d6f613a55", @@ -7812,9 +8122,9 @@ static const char *kData262[] = { "6]\n\n# tcId = 352\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3044022079be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798022066666666666666666666666666666665e445f1f5dfb6a67e4cba8c385348e6e7\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 048b904de47967340c5f8c3572a720924ef7578637feab1949acb241a5a6ac3f5b950904496f9824b1d63f3313bae21b89fae89afdfc811b5ece03fd5aa301864f]\n[key.wx = 008b904de47967340c5f8c3572a720924ef7578637feab1949acb241a5a6ac3f5b]\n[key.wy = 00950904496f9824b1d63f3313bae21b89fae89afdfc811b5ece03fd5aa301864f]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a034200048b904de47967340c5f8c3572a720924ef7578637feab1949acb241a5a6ac3f5b950904496f9824b1d63f3313bae21b89fae89afdfc811b5ece03fd5aa301864f]\n[sha = SHA-256]\n\n# tcId = 353\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3044022079be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798022049249249249249249249249249249248c79facd43214c011123c1b03a93412a5\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f4892b6d525c771e035f2a252708f3784e48238604b4f94dc56eaa1e546d941a346b1aa0bce68b1c50e5b52f509fb5522e5c25e028bc8f863402edb7bcad8b1b]\n[key.wx = 00f4892b6d525c771e035f2a252708f3784e48238604b4f94dc56eaa1e546d941a]\n[key.wy = 346b1aa0bce68b1c50e5b52f509fb5522e5c25e028bc8f863402edb7bcad8b1b]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a03420004f4892b6d525c771e035f2a252708f3784e48238604b4f94dc56eaa1e546d941a346b1aa0bce68b1c50e5b52f509fb5522e5c25e028bc8f863402edb7bcad8b1b]\n[sha = SHA-256]\n\n# tcId = 354\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 3044022079be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179802200eb10e5ab95f2f275348d82ad2e4d7949c8193800d8c9c75df58e343f0ebba7b\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8]\n[key.wx = 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798]\n[key.wy = 483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a0342000479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8]\n[sha = SHA-256]\n\n# tcId = 355\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3045022100bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca60502302202492492492492492492492492492492463cfd66a190a6008891e0d81d49a0952\n\n# tcId = 356\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3044022044a5ad0bd0636d9e12bc9e0a6bdd5e1bba77f523842193b3b82e448e05d5f11e02202492492492492492492492492492492463cfd66a190a6008891e0d81d49a0952\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798b7c52588d95c3b9aa25b0403f1eef75702e84bb7597aabe663b82f6f04ef2777]\n[key.wx = 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798]\n[key.wy = 00b7c52588d95c3b9aa25b0403f1eef75702e84bb7597aabe663b82f6f04ef2777]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a0342000479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798b7c52588d95c3b9aa25b0403f1eef75702e84bb7597aabe663b82f6f04ef2777]\n[sha = SHA-256]\n\n# tcId = 357\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3045022100bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca60502302202492492492492492492492492492492463cfd66a190a6008891e0d81d49a0952\n\n# tcId = 358\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3044022044a5ad0bd0636d9e12bc9e0a6bdd5e1bba77f523842193b3b82e448e05d5f11e02202492492492492492492492492492492463cfd66a190a6008891e0d81d49a0952\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04782c8ed17e3b2a783b5464f33b09652a71c678e05ec51e84e2bcfc663a3de963af9acb4280b8c7f7c42f4ef9aba6245ec1ec1712fd38a0fa96418d8cd6aa6152]\n[key.wx = 782c8ed17e3b2a783b5464f33b09652a71c678e05ec51e84e2bcfc663a3de963]\n[key.wy = 00af9acb4280b8c7f7c42f4ef9aba6245ec1ec1712fd38a0fa96418d8cd6aa6152]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a03420004782c8ed17e3b2a783b5464f33b09652a71c678e05ec51e84e2bcfc663a3de963af9acb4280b8c7f7c42f4ef9aba6245ec1ec1712fd38a0fa96418d8cd6aa6152]\n[sha = SHA-256]\n\n# tcId = 359\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 3046022100f80ae4f96cdbc9d853f83d47aae225bf407d51c56b7776cd67d0dc195d99a9dc022100b303e26be1f73465315221f0b331528807a1a9b6eb068ede6eebeaaa49af8a36\n\n# tcId = 360\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 30450220109cd8ae0374358984a8249c0a843628f2835ffad1df1a9a69aa2fe72355545c022100ac6f00daf53bd8b1e34da329359b6e08019c5b037fed79ee383ae39f85a159c6\n\n# tcId = 361\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 3045022100d035ee1f17fdb0b2681b163e33c359932659990af77dca632012b30b27a057b302201939d9f3b2858bc13e3474cb50e6a82be44faa71940f876c1cba4c3e989202b6\n\n# tcId = 362\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 304402204f053f563ad34b74fd8c9934ce59e79c2eb8e6eca0fef5b323ca67d5ac7ed23802204d4b05daa0719e773d8617dce5631c5fd6f59c9bdc748e4b55c970040af01be5\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 046e823555452914099182c6b2c1d6f0b5d28d50ccd005af2ce1bba541aa40caff00000001060492d5a5673e0f25d8d50fb7e58c49d86d46d4216955e0aa3d40e1]\n[key.wx = 6e823555452914099182c6b2c1d6f0b5d28d50ccd005af2ce1bba541aa40caff]\n[key.wy = 01060492d5a5673e0f25d8d50fb7e58c49d86d46d4216955e0aa3d40e1]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a034200046e823555452914099182c6b2c1d6f0b5d28d50ccd005af2ce1bba541aa40caff00000001060492d5a5673e0f25d8d50fb7e58c49d86d46d4216955e0aa3d40e1]\n[sha = SHA-256]\n\n# tcId = 363\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304402206d6a4f556ccce154e7fb9f19e76c3deca13d59cc2aeb4ecad968aab2ded45965022053b9fa74803ede0fc4441bf683d56c564d3e274e09ccf47390badd1471c05fb7\n\n# tcId = 364\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100aad503de9b9fd66b948e9acf596f0a0e65e700b28b26ec56e6e45e846489b3c4022100fff223c5d0765447e8447a3f9d31fd0696e89d244422022ff61a110b2a8c2f04\n\n# tcId = 365\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 30460221009182cebd3bb8ab572e167174397209ef4b1d439af3b200cdf003620089e43225022100abb88367d15fe62d1efffb6803da03109ee22e90bc9c78e8b4ed23630b82ea9d\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 046e823555452914099182c6b2c1d6f0b5d28d50ccd005af2ce1bba541aa40cafffffffffef9fb6d2a5a98c1f0da272af0481a73b62792b92bde96aa1e55c2bb4e]\n[key.wx = 6e823555452914099182c6b2c1d6f0b5d28d50ccd005af2ce1bba541aa40caff]\n[key.wy = 00fffffffef9fb6d2a5a98c1f0da272af0481a73b62792b92bde96aa1e55c2bb4e]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a034200046e823555452914099182c6b2c1d6f0b5d28d50ccd005af2ce1bba541aa40cafffffffffef9fb6d2a5a98c1f0da272af0481a73b62792b92bde96aa1e55c2bb4e]\n[sha = SHA-256]\n\n# tcId = 366\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 304502203854a3998aebdf2dbc28adac4181462ccac7873907ab7f212c42db0e69b56ed8022100c12c09475c772fd0c1b2060d5163e42bf71d727e4ae7c03eeba954bf50b43bb3\n\n# tcId = 367\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100e94dbdc38795fe5c904d8f16d969d3b587f0a25d2de90b6d8c5c53ff887e3607022100856b8c963e9b68dade44750bf97ec4d11b1a0a3804f4cb79aa27bdea78ac14e4\n\n# tcId = 368\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3044022049fc102a08ca47b60e0858cd0284d22cddd7233f94aaffbb2db1dd2cf08425e102205b16fca5a12cdb39701697ad8e39ffd6bdec0024298afaa2326aea09200b14d6\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04000000013fd22248d64d95f73c29b48ab48631850be503fd00f8468b5f0f70e0f6ee7aa43bc2c6fd25b1d8269241cbdd9dbb0dac96dc96231f430705f83871", "7d]\n[key.wx = 013fd22248d64d95f73c29b48ab48631850be503fd00f8468b5f0f70e0]\n[key.wy = 00f6ee7aa43bc2c6fd25b1d8269241cbdd9dbb0dac96dc96231f430705f838717d]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a03420004000000013fd22248d64d95f73c29b48ab48631850be503fd00f8468b5f0f70e0f6ee7aa43bc2c6fd25b1d8269241cbdd9dbb0dac96dc96231f430705f838717d]\n[sha = SHA-256]\n\n# tcId = 369\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3045022041efa7d3f05a0010675fcb918a45c693da4b348df21a59d6f9cd73e0d831d67a022100bbab52596c1a1d9484296cdc92cbf07e665259a13791a8fe8845e2c07cf3fc67\n\n# tcId = 370\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100b615698c358b35920dd883eca625a6c5f7563970cdfc378f8fe0cee17092144c022100da0b84cd94a41e049ef477aeac157b2a9bfa6b7ac8de06ed3858c5eede6ddd6d\n\n# tcId = 371\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304602210087cf8c0eb82d44f69c60a2ff5457d3aaa322e7ec61ae5aecfd678ae1c1932b0e022100c522c4eea7eafb82914cbf5c1ff76760109f55ddddcf58274d41c9bc4311e06e\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0425afd689acabaed67c1f296de59406f8c550f57146a0b4ec2c97876dfffffffffa46a76e520322dfbc491ec4f0cc197420fc4ea5883d8f6dd53c354bc4f67c35]\n[key.wx = 25afd689acabaed67c1f296de59406f8c550f57146a0b4ec2c97876dffffffff]\n[key.wy = 00fa46a76e520322dfbc491ec4f0cc197420fc4ea5883d8f6dd53c354bc4f67c35]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a0342000425afd689acabaed67c1f296de59406f8c550f57146a0b4ec2c97876dfffffffffa46a76e520322dfbc491ec4f0cc197420fc4ea5883d8f6dd53c354bc4f67c35]\n[sha = SHA-256]\n\n# tcId = 372\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022062f48ef71ace27bf5a01834de1f7e3f948b9dce1ca1e911d5e13d3b104471d82022100a1570cc0f388768d3ba7df7f212564caa256ff825df997f21f72f5280d53011f\n\n# tcId = 373\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100f6b0e2f6fe020cf7c0c20137434344ed7add6c4be51861e2d14cbda472a6ffb40221009be93722c1a3ad7d4cf91723700cb5486de5479d8c1b38ae4e8e5ba1638e9732\n\n# tcId = 374\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100db09d8460f05eff23bc7e436b67da563fa4b4edb58ac24ce201fa8a358125057022046da116754602940c8999c8d665f786c50f5772c0a3cdbda075e77eabc64df16\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d12e6c66b67734c3c84d2601cf5d35dc097e27637f0aca4a4fdb74b6aadd3bb93f5bdff88bd5736df898e699006ed750f11cf07c5866cd7ad70c7121ffffffff]\n[key.wx = 00d12e6c66b67734c3c84d2601cf5d35dc097e27637f0aca4a4fdb74b6aadd3bb9]\n[key.wy = 3f5bdff88bd5736df898e699006ed750f11cf07c5866cd7ad70c7121ffffffff]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a03420004d12e6c66b67734c3c84d2601cf5d35dc097e27637f0aca4a4fdb74b6aadd3bb93f5bdff88bd5736df898e699006ed750f11cf07c5866cd7ad70c7121ffffffff]\n[sha = SHA-256]\n\n# tcId = 375\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 30450220592c41e16517f12fcabd98267674f974b588e9f35d35406c1a7bb2ed1d19b7b8022100c19a5f942607c3551484ff0dc97281f0cdc82bc48e2205a0645c0cf3d7f59da0\n\n# tcId = 376\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100be0d70887d5e40821a61b68047de4ea03debfdf51cdf4d4b195558b959a032b20221008266b4d270e24414ecacb14c091a233134b918d37320c6557d60ad0a63544ac4\n\n# tcId = 377\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100fae92dfcb2ee392d270af3a5739faa26d4f97bfd39ed3cbee4d29e26af3b206a02210093645c80605595e02c09a0dc4b17ac2a51846a728b3e8d60442ed6449fd3342b\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 046d4a7f60d4774a4f0aa8bbdedb953c7eea7909407e3164755664bc2800000000e659d34e4df38d9e8c9eaadfba36612c769195be86c77aac3f36e78b538680fb]\n[key.wx = 6d4a7f60d4774a4f0aa8bbdedb953c7eea7909407e3164755664bc2800000000]\n[key.wy = 00e659d34e4df38d9e8c9eaadfba36612c769195be86c77aac3f36e78b538680fb]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a034200046d4a7f60d4774a4f0aa8bbdedb953c7eea7909407e3164755664bc2800000000e659d34e4df38d9e8c9eaadfba36612c769195be86c77aac3f36e78b538680fb]\n[sha = SHA-256]\n\n# tcId = 378\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 30450220176a2557566ffa518b11226694eb9802ed2098bfe278e5570fe1d5d7af18a943022100ed6e2095f12a03f2eaf6718f430ec5fe2829fd1646ab648701656fd31221b97d\n\n# tcId = 379\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022060be20c3dbc162dd34d26780621c104bbe5dace630171b2daef0d826409ee5c2022100bd8081b27762ab6e8f425956bf604e332fa066a99b59f87e27dc1198b26f5caa\n\n# tcId = 380\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100edf03cf63f658883289a1a593d1007895b9f236d27c9c1f1313089aaed6b16ae022100e5b22903f7eb23adc2e01057e39b0408d495f694c83f306f1216c9bf87506074\n\n", }; -static const size_t kLen263 = 143762; +static const size_t kLen268 = 143762; -static const char *kData263[] = { +static const char *kData268[] = { "# Imported from Wycheproof's ecdsa_secp256k1_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b838ff44e5bc177bf21189d0766082fc9d843226887fc9760371100b7ee20a6ff0c9d75bfba7b31a6bca1974496eeb56de357071955d83c4b1badaa0b21832e9]\n[key.wx = 00b838ff44e5bc177bf21189d0766082fc9d843226887fc9760371100b7ee20a6f]\n[key.wy = 00f0c9d75bfba7b31a6bca1974496eeb56de357071955d83c4b1badaa0b21832e9]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a03420004b838ff44e5bc177bf21189d0766082fc9d843226887fc9760371100b7ee20a6ff0c9d75bfba7b31a6bca1974496eeb56de357071955d83c4b1badaa0b21832e9]\n[sha = SHA-512]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 304402206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022034d2f1a567d7e647b178552dec35875a2cc61df3ce8ae2c1357ea8c5ff505561\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 304402206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90220cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\nflags = MissingZero\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 304502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 4\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30814502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\nflags = BER\n\n# tcId = 5\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082004502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\nflags = BER\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 304602206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 7\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 304402206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 8\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000004502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 9\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000004502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 10\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff02206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 11\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff02206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 12\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff02206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 13\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff02206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 14\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff02206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 308002206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 304502806cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 17\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 304502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9028000cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 18\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 19\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 20\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe00000\n\n# tcId = 21\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047000002206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 22\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe00000\n\n# tcId = 23\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe00500\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a498177304502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30492500304502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3047304502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe00004deadbeef\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a222549817702206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30492224250002206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d222202206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90004deadbeef022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a02206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e92226498177022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304902206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e922252500022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d02206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e92223022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe00004deadbeef\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304daa00bb00cd00304502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd", "7a8a53b5c6d0e5ebe0\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304baa02aabb304502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d2228aa00bb00cd0002206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b2226aa02aabb02206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d02206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e92229aa00bb00cd00022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 38\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b02206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e92227aa02aabb022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 39\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080304502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe00000\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3049228002206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90000022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 42\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 304902206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e92280022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe00000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080314502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe00000\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3049228003206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90000022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 45\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 304902206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e92280032100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe00000\n\n# tcId = 46\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e4502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f4502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 314502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 324502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 51\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff4502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 52\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 53\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 30493001023044206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 304402206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5eb\n\n# tcId = 55\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 3044206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 56\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 308002206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe00000\nflags = BER\n\n# tcId = 57\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 308002206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe000\n\n# tcId = 58\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 308002206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe005000000\n\n# tcId = 59\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 308002206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0060811220000\n\n# tcId = 60\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 308002206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe00000fe02beef\n\n# tcId = 61\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 308002206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe00002beef\n\n# tcId = 62\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047300002206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 63\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe03000\n\n# tcId = 64\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 304802206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0bf7f00\n\n# tcId = 65\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047304502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 66\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 302202206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9\n\n# tcId = 67\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 306802206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30460281206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\nflags = BER\n\n# tcId = 69\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304602206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e902812100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\nflags = BER\n\n# tcId = 70\n# length of integer contain", "s leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3047028200206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\nflags = BER\n\n# tcId = 71\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 304702206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90282002100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\nflags = BER\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502216cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045021f6cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022200cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 75\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022000cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304a028501000000206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 77\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304a02206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90285010000002100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304e02890100000000000000206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 79\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304e02206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9028901000000000000002100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 80\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902847fffffff6cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 81\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e902847fffffff00cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30490284ffffffff6cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 83\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90284ffffffff00cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a0285ffffffffff6cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 85\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a02206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90285ffffffffff00cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d0288ffffffffffffffff6cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 87\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d02206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90288ffffffffffffffff00cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502ff6cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 89\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e902ff00cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 90\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 3023022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302402022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 92\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302302206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e902\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702226cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90000022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 94\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022300cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe00000\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3047022200006cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\nflags = BER\n\n# tcId = 96\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90223000000cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\nflags = BER\n\n# tcId = 97\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90000022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702226cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90500022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 99\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022300cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe00500\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30250281022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 101\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302402206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90281\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30250500022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 103\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 302402206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e90500\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304500206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304501206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e5ebe0\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304503206cb914246e1c92050a03d9b0b4f05ddf5eebd9d87486236561230f18b407a1e9022100cb2d0e5a982819b84e87aad213ca78a48de8bef2e0bdbd7a8a53b5c6d0e", @@ -7834,9 +8144,9 @@ static const char *kData263[] = { "e3e0ad98bc0]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a034200045e25e2ee8af5ef8a3e0908341f9884501fb58a2fd234b1db6f22d561025524f4491d97a7793c9d9a1f35bb35f12121b9dbe075d8501cbd4db6697e3e0ad98bc0]\n[sha = SHA-512]\n\n# tcId = 423\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3044022079be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798022049249249249249249249249249249248c79facd43214c011123c1b03a93412a5\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 043ddf2920607df596da90123ea5674958054c8ed7758661b813f1aa30f19778b0707243e1a7bcc264b54289832e950c27563856241b79c243d0fc54f7ad24bc25]\n[key.wx = 3ddf2920607df596da90123ea5674958054c8ed7758661b813f1aa30f19778b0]\n[key.wy = 707243e1a7bcc264b54289832e950c27563856241b79c243d0fc54f7ad24bc25]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a034200043ddf2920607df596da90123ea5674958054c8ed7758661b813f1aa30f19778b0707243e1a7bcc264b54289832e950c27563856241b79c243d0fc54f7ad24bc25]\n[sha = SHA-512]\n\n# tcId = 424\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 3044022079be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179802200eb10e5ab95f2f275348d82ad2e4d7949c8193800d8c9c75df58e343f0ebba7b\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8]\n[key.wx = 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798]\n[key.wy = 483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a0342000479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8]\n[sha = SHA-512]\n\n# tcId = 425\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3044022043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b02321028102202492492492492492492492492492492463cfd66a190a6008891e0d81d49a0952\n\n# tcId = 426\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3045022100bc07ff041506dc73a75086a43252fb4270e157da75fb6cb92a9f07dcad153ec002202492492492492492492492492492492463cfd66a190a6008891e0d81d49a0952\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798b7c52588d95c3b9aa25b0403f1eef75702e84bb7597aabe663b82f6f04ef2777]\n[key.wx = 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798]\n[key.wy = 00b7c52588d95c3b9aa25b0403f1eef75702e84bb7597aabe663b82f6f04ef2777]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a0342000479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798b7c52588d95c3b9aa25b0403f1eef75702e84bb7597aabe663b82f6f04ef2777]\n[sha = SHA-512]\n\n# tcId = 427\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3044022043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b02321028102202492492492492492492492492492492463cfd66a190a6008891e0d81d49a0952\n\n# tcId = 428\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3045022100bc07ff041506dc73a75086a43252fb4270e157da75fb6cb92a9f07dcad153ec002202492492492492492492492492492492463cfd66a190a6008891e0d81d49a0952\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04782c8ed17e3b2a783b5464f33b09652a71c678e05ec51e84e2bcfc663a3de963af9acb4280b8c7f7c42f4ef9aba6245ec1ec1712fd38a0fa96418d8cd6aa6152]\n[key.wx = 782c8ed17e3b2a783b5464f33b09652a71c678e05ec51e84e2bcfc663a3de963]\n[key.wy = 00af9acb4280b8c7f7c42f4ef9aba6245ec1ec1712fd38a0fa96418d8cd6aa6152]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a03420004782c8ed17e3b2a783b5464f33b09652a71c678e05ec51e84e2bcfc663a3de963af9acb4280b8c7f7c42f4ef9aba6245ec1ec1712fd38a0fa96418d8cd6aa6152]\n[sha = SHA-512]\n\n# tcId = 429\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 304502206632473c909425b6fa37095398e2538daab8552440320f9fe190dba8f672796b022100a8c3aacce9ffe4bc17c0530738f1386f9d9579f029ff3a7791b16e98422265e3\n\n# tcId = 430\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 30430220465b0fb05c14cd4ddef23e13acbe5f2337c45ea3816536670cfa7f2ab9090619021f5e525e837c406cf8944383e20bcee32112d8da5b42b40f88415098f722aa89\n\n# tcId = 431\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 304502207b1553e4d650c71fd49aa36ceed56f0438b0065e1b234445134bf7c83231ca9d022100e369a20fa6434bd138b092885a89e53a3f0b6bdcc5d2653e136c54070081dc5a\n\n# tcId = 432\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 3045022100c7ba1c73bdc4364f6c7c61ab1fecc0547f8d6fcbeb251f734964407536353f3202207b3a6fb2fe60f8861e9e0955663f5703a17f5ecc3a5b5140eb87eaf35a3a5090\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 046e823555452914099182c6b2c1d6f0b5d28d50ccd005af2ce1bba541aa40caff00000001060492d5a5673e0f25d8d50fb7e58c49d86d46d4216955e0aa3d40e1]\n[key.wx = 6e823555452914099182c6b2c1d6f0b5d28d50ccd005af2ce1bba541aa40caff]\n[key.wy = 01060492d5a5673e0f25d8d50fb7e58c49d86d46d4216955e0aa3d40e1]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a034200046e823555452914099182c6b2c1d6f0b5d28d50ccd005af2ce1bba541aa40caff00000001060492d5a5673e0f25d8d50fb7e58c49d86d46d4216955e0aa3d40e1]\n[sha = SHA-512]\n\n# tcId = 433\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304402202b9c9f85596fed708b3af80393b27edfd0b5ae2f0074270a56362f5f9f62b4e102202fae837503ba2c1d4c945e0913949ef094ce0b8086359bbb5dba4a12707c5600\n\n# tcId = 434\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304402205cd765209021d8c1a8aef4ff61d6fa6e7993bf9fea0b93609eea130de536fccc02204f10c7989587fe3019e36d85aa024bf20db6737c4f28900c1c9662f2782143e0\n\n# tcId = 435\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304502204c1a59b1e578d76f1595e13b557057559f26ab559ec1df3f45ec98b90fa526ce022100c6872f094bdb3f82e31f93ad65357e2daafe66f304af197089ef0dc94ff90624\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 046e823555452914099182c6b2c1d6f0b5d28d50ccd005af2ce1bba541aa40cafffffffffef9fb6d2a5a98c1f0da272af0481a73b62792b92bde96aa1e55c2bb4e]\n[key.wx = 6e823555452914099182c6b2c1d6f0b5d28d50ccd005af2ce1bba541aa40caff]\n[key.wy = 00fffffffef9fb6d2a5a98c1f0da272af0481a73b62792b92bde96aa1e55c2bb4e]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a034200046e823555452914099182c6b2c1d6f0b5d28d50ccd005af2ce1bba541aa40cafffffffffef9fb6d2a5a98c1f0da272af0481a73b62792b92bde96aa1e55c2bb4e]\n[sha = SHA-512]\n\n# tcId = 436\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100a35d1400d4cc7a8f617b721faee7118a74103c4630dec5aa47e097951dafc1a7022100958221023024e97ef6df35a22e820c7bc5e16299f3f12e9d9b1b727c46d795e6\n\n# tcId = 437\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 304402207fb733ed73c72fc4f4cf065e370c730301316ff4e9c6a8a701170f604c2d70b702207ca9ca985d3df48978b3a2f9c0bb8a58b216c795e687f74623a3321448bfa73c\n\n# tcId = 438\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 304502210095ae4df2fba8524e1151cb9a9c5c1ec1357a663722a18329303d86a58e7047540220591ea644b1dc6f4c7cd5d7d939397f84d9e077100760f0816ae5b22ae6a74203\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04000000013fd22248d64d95f73c29b48ab48631850be503fd00f8468b5f0f70e0f6ee7aa43bc2c6fd25b1d8269241cbdd9dbb0dac96dc96231f430705f838717d]\n[key.wx = 013fd22248d64d95f73c29b48ab48631850be503fd00f8468b5f0f70e0]\n[key.wy = 00f6ee7aa43bc2c6fd25b1d8269241cbdd9dbb0dac96dc96231f430705f838717d]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a03420004000000013fd22248d64d95f73c29b48ab48631850be503fd00f8468b5f0f70e0f6ee7aa43bc2c6fd25b1d8269241cbdd9dbb0dac96dc96231f430705f838717d]\n[sha = SHA-512]\n\n# tcId = 439\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 30440220717925f0dd5cf45e746e87f79c9ea97d11eb01444052c270aeccef56c2e958280220785787b664137080383d2fc500459fa713258205fdae97b3240fb64bb638a657\n\n# tcId = 4", "40\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 30460221008adfdeae3b586315d06183610d271fc423cc789908b8f5dc563253a3c782510a0221008137bedbb4e60da26041b351f72a6bc3b7741f745743f0733b40b7fc56febd04\n\n# tcId = 441\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304502210092ded14e19b94d17c79b063a034b122ce3b93a2502f2f223fad3461abf631632022052ff8ad14ba3657242e29440d01cab36ebb6033ee36021dc8d9b38f0808a90bc\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0425afd689acabaed67c1f296de59406f8c550f57146a0b4ec2c97876dfffffffffa46a76e520322dfbc491ec4f0cc197420fc4ea5883d8f6dd53c354bc4f67c35]\n[key.wx = 25afd689acabaed67c1f296de59406f8c550f57146a0b4ec2c97876dffffffff]\n[key.wy = 00fa46a76e520322dfbc491ec4f0cc197420fc4ea5883d8f6dd53c354bc4f67c35]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a0342000425afd689acabaed67c1f296de59406f8c550f57146a0b4ec2c97876dfffffffffa46a76e520322dfbc491ec4f0cc197420fc4ea5883d8f6dd53c354bc4f67c35]\n[sha = SHA-512]\n\n# tcId = 442\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100d48373483e0fa2f11cfdfaea6f1de59e6861e9e87c4f6446602ba0125ab7de460221009d753bba3a7be08aab456e93a6500d4781795ed59af8bd6d6133129abef1ad98\n\n# tcId = 443\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100f11473117b66e5d84a2ecd0f8b7ec4a2cc2aee89ae022020235777305142f498022100fe5ce43ced28f3f69f65e810678afefd2bdeefb051280ad2880157fda28b2ab1\n\n# tcId = 444\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 304502203c9f5bdde7310b5696c93c86203fc97e11a70739e20c71c9e722308d45a59e6c022100c09efb9a045a47cce799b768890bb17833a0210d869a36be1da33f2585477c32\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d12e6c66b67734c3c84d2601cf5d35dc097e27637f0aca4a4fdb74b6aadd3bb93f5bdff88bd5736df898e699006ed750f11cf07c5866cd7ad70c7121ffffffff]\n[key.wx = 00d12e6c66b67734c3c84d2601cf5d35dc097e27637f0aca4a4fdb74b6aadd3bb9]\n[key.wy = 3f5bdff88bd5736df898e699006ed750f11cf07c5866cd7ad70c7121ffffffff]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a03420004d12e6c66b67734c3c84d2601cf5d35dc097e27637f0aca4a4fdb74b6aadd3bb93f5bdff88bd5736df898e699006ed750f11cf07c5866cd7ad70c7121ffffffff]\n[sha = SHA-512]\n\n# tcId = 445\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 304402206953442c487f240487d2af81f9825c894b1fc2534321fa012db8248be20a4b06022056927395d64ce4d690caa98944c2ddebc312f57f439d37236ea63cc1de098718\n\n# tcId = 446\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100fb39aa5f36ceca6e68d1932e811598c412892734dade389fd9e8ba94c5c7a251022100fdddf0c3db66c7c46608ac98431f0ee8ebb1e27ba501937789ebcd0f7ac26ecc\n\n# tcId = 447\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3044022044fef6017638fd5bda17dfce346b0311b5e369bfb68aa85d5e970786b8e6644b0220720b3a52fe44be6028759f0f1a6fd7020ff6792cd4ece98dffd0d97d3b726091\n\n[key.curve = secp256k1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 046d4a7f60d4774a4f0aa8bbdedb953c7eea7909407e3164755664bc2800000000e659d34e4df38d9e8c9eaadfba36612c769195be86c77aac3f36e78b538680fb]\n[key.wx = 6d4a7f60d4774a4f0aa8bbdedb953c7eea7909407e3164755664bc2800000000]\n[key.wy = 00e659d34e4df38d9e8c9eaadfba36612c769195be86c77aac3f36e78b538680fb]\n[keyDer = 3056301006072a8648ce3d020106052b8104000a034200046d4a7f60d4774a4f0aa8bbdedb953c7eea7909407e3164755664bc2800000000e659d34e4df38d9e8c9eaadfba36612c769195be86c77aac3f36e78b538680fb]\n[sha = SHA-512]\n\n# tcId = 448\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 30430220304babc41346e6205cf03e2d0b26e4b222dce8227402d001ba233efa69c91234021f65add3279f51b2417fb0a13b0f06404199caac3430385513ee49f67d8e8cdf\n\n# tcId = 449\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3044022023868700b71fbafcaa73960faf922ee0458ef69e01fb060b2f9a80d992fe114c02206ec1526bd56f6eebf10463bd9210d62510b95166365e10a7b7abfc4d584ca338\n\n# tcId = 450\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100dd60d7cf83a08208637212b65d079fb658d8ef1b8438d9c58f4122b0cd14ac49022100f1d762516f4d6c3e6a98dd31dc3869dc7cf35944f33b35c6a17fe632d2b18cd5\n\n", }; -static const size_t kLen264 = 52032; +static const size_t kLen269 = 52032; -static const char *kData264[] = { +static const char *kData269[] = { "# Imported from Wycheproof's eddsa_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: EDDSA\n# Generator version: 0.8rc16\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa]\n[key.sk = add4bb8103785baf9ac534258e8aaf65f5f1adb5ef5f3df19bb80ab989c4d64b]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321007d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = d4fbdb52bfa726b44d1786a8c0d171c3e62ca83c9e5bbe63de0bb2483f8fd6cc1429ab72cafc41ab56af02ff8fcc43b99bfe4c7ae940f60f38ebaa9d311c4007\n\n# tcId = 2\nmsg = 78\nresult = valid\nsig = d80737358ede548acb173ef7e0399f83392fe8125b2ce877de7975d8b726ef5b1e76632280ee38afad12125ea44b961bf92f1178c9fa819d020869975bcbe109\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d\n\n# tcId = 4\nmsg = 48656c6c6f\nresult = valid\nsig = 1c1ad976cbaae3b31dee07971cf92c928ce2091a85f5899f5e11ecec90fc9f8e93df18c5037ec9b29c07195ad284e63d548cd0a6fe358cc775bd6c1608d2c905\n\n# tcId = 5\nmsg = 313233343030\nresult = valid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bf0cf5b3a289976458a1be6277a5055545253b45b07dcc1abd96c8b989c00f301\n\n# tcId = 6\nmsg = 000000000000000000000000\nresult = valid\nsig = d46543bfb892f84ec124dcdfc847034c19363bf3fc2fa89b1267833a14856e52e60736918783f950b6f1dd8d40dc343247cd43ce054c2d68ef974f7ed0f3c60f\n\n# tcId = 7\nmsg = 6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161\nresult = valid\nsig = 879350045543bc14ed2c08939b68c30d22251d83e018cacbaf0c9d7a48db577e80bdf76ce99e5926762bc13b7b3483260a5ef63d07e34b58eb9c14621ac92f00\n\n# tcId = 8\nmsg = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60\nresult = valid\nsig = 7bdc3f9919a05f1d5db4a3ada896094f6871c1f37afc75db82ec3147d84d6f237b7e5ecc26b59cfea0c7eaf1052dc427b0f724615be9c3d3e01356c65b9b5109\n\n# tcId = 9\nmsg = ffffffffffffffffffffffffffffffff\nresult = valid\nsig = 5dbd7360e55aa38e855d6ad48c34bd35b7871628508906861a7c4776765ed7d1e13d910faabd689ec8618b78295c8ab8f0e19c8b4b43eb8685778499e943ae04\n\n# tcId = 10\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 11\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 12\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000ecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 13\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 14\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n\n# tcId = 15\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 16\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 01000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 17\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0100000000000000000000000000000000000000000000000000000000000000ecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 18\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0100000000000000000000000000000000000000000000000000000000000000edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 19\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0100000000000000000000000000000000000000000000000000000000000000edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n\n# tcId = 20\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de14000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 21\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de14000000000000000000000000000000100100000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 22\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010ecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 23\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 24\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n\n# tcId = 25\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 26\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0100000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 27\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 28\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fedd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 29\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fedffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n\n# tcId = 30\n# empty signature\nmsg = 54657374\nresult = invalid\nsig = \n\n# tcId = 31\n# s missing\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0\n\n# tcId = 32\n# signature too short\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946\n\n# tcId = 33\n# signature too long\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d2020\n\n# tcId = 34\n# include pk in signature\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa\n\n# tcId = 35\n# prepending 0 byte to signature\nmsg = 54657374\nresult = invalid\nsig = 007c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d\n\n# tcId = 36\n# prepending 0 byte to s\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0007a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d\n\n# tcId = 37\n# appending 0 byte to signature\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d00\n\n# tcId = 38\n# removing 0 byte from signature\nmsg = 546573743137\nresult = invalid\nsig = 93de3ca252426c95f735cb9edd92e83321ac62372d5aa5b379786bae111ab6b17251330e8f9a7c30d6993137c596007d7b001409287535ac4804e662bc58a3\n\n# tcId = 39\n# removing 0 byte from signature\nm", "sg = 54657374313236\nresult = invalid\nsig = dffed33a7f420b62bb1731cfd03be805affd18a281ec02b1067ba6e9d20826569e742347df59c88ae96db1f1969fb189b0ec34381d85633e1889da48d95e0e\n\n# tcId = 40\n# removing leading 0 byte from signature\nmsg = 546573743530\nresult = invalid\nsig = 6e170c719577c25e0e1e8b8aa7a6346f8b109f37385cc2e85dc3b4c0f46a9c6bcafd67f52324c5dbaf40a1b673fb29c4a56052d2d6999d0838a8337bccb502\n\n# tcId = 41\n# dropping byte from signature\nmsg = 54657374333437\nresult = invalid\nsig = b0928b46e99fbbad3f5cb502d2cd309d94a7e86cfd4d84b1fcf4cea18075a9c36993c0582dba1e9e519fae5a8654f454201ae0c3cb397c37b8f4f8eef18400\n\n# tcId = 42\n# modified bit 0 in R\nmsg = 313233343030\nresult = invalid\nsig = 647c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b1d125e5538f38afbcc1c84e489521083041d24bc6240767029da063271a1ff0c\n\n# tcId = 43\n# modified bit 1 in R\nmsg = 313233343030\nresult = invalid\nsig = 677c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bc108ca4b87a49c9ed2cf383aecad8f54a962b2899da891e12004d7993a627e01\n\n# tcId = 44\n# modified bit 2 in R\nmsg = 313233343030\nresult = invalid\nsig = 617c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b9ce23fc6213ed5b87912e9bbf92f5e2c780eae26d15c50a112d1e97d2ea33c06\n\n# tcId = 45\n# modified bit 7 in R\nmsg = 313233343030\nresult = invalid\nsig = e57c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bbb3eb51cd98dddb235a5f46f2bded6af184a58d09cce928bda43f41d69118a03\n\n# tcId = 46\n# modified bit 8 in R\nmsg = 313233343030\nresult = invalid\nsig = 657d1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bcd237dda9a116501f67a5705a854b9adc304f34720803a91b324f2c13e0f5a09\n\n# tcId = 47\n# modified bit 16 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1592402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b6b167bbdc0d881cc04d28905552c1876f3709851abc5007376940cc8a435c300\n\n# tcId = 48\n# modified bit 31 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1412402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b7fd2ac7da14afffcceeb13f2a0d6b887941cb1a5eb57a52f3cb131a16cce7b0e\n\n# tcId = 49\n# modified bit 32 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492412ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b7373ba13ebbef99cd2a8ead55ce735c987d85a35320925a8e871702dc7c5c40d\n\n# tcId = 50\n# modified bit 63 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab54e03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bd35bd331c03f0855504ca1cab87b83c36a028425a3cf007ede4f4254c261cb00\n\n# tcId = 51\n# modified bit 64 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce02e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bcb35101f73cf467deac8c1a03b6c3dc35af544132734b7e57ab20c89b2e4750d\n\n# tcId = 52\n# modified bit 97 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f2384d051b9cf3570f1207fc78c1bcc98c281c2bb58d2e8878290bff8d3355fdd4ea381924ee578752354eb6dee678ab4011c301\n\n# tcId = 53\n# modified bit 127 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d851b9cf3570f1207fc78c1bcc98c281c2bb978c866187ffb1cc7b29a0b4045aefc08768df65717194ff0c6e63f4dea0d02\n\n# tcId = 54\n# modified bit 240 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281d2b0576ecf8eaf675f00f3dfbe19f75b83b7607a6c96414f6821af920a2498d0305\n\n# tcId = 55\n# modified bit 247 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c289c2be5241a345c7b5428054c74b7c382fa10d4a5f1e8f8b79a71d3fdea2254f1ff0e\n\n# tcId = 56\n# modified bit 248 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2a63950c85cd6dc96364e768de50ff7732b538f8a0b1615d799190ab600849230e\n\n# tcId = 57\n# modified bit 253 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c0b543bd3da0a56a8c9c152f59c9fec12f31fa66434d48b817b30d90cb4efa8b501\n\n# tcId = 58\n# modified bit 254 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c6b8da07efd07a6dafb015ed6a32fe136319a972ffbc341f3a0beae97ccf8136505\n\n# tcId = 59\n# modified bit 255 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281cab227aedf259f910f0f3a759a335062665217925d019173b88917eae294f75d40f\n\n# tcId = 60\n# R==0\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000e0b8e7770d51c7a36375d006c5bffd6af43ff54aaf47e4330dc118c71d61ec02\n\n# tcId = 61\n# invalid R\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff463a1908382e7eb7693acef9884f7cf931a215e0791876be22c631a59881fd0e\n\n# tcId = 62\n# all bits flipped in R\nmsg = 313233343030\nresult = invalid\nsig = 9a83eb6dbfd54a31fc1d3c580fc7b2fae4630ca8f0edf803873e433673d7e3d40e94254586cb6188c5386c3febed477cb9a6cb29e3979adc4cb27cf5278fb70a\n\n# tcId = 63\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab067654bce3832c2d76f8f6f5dafc08d9339d4eef676573336a5c51eb6f946b31d\nflags = SignatureMalleability\n\n# tcId = 64\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab05439412b5395d42f462c67008eba6ca839d4eef676573336a5c51eb6f946b32d\nflags = SignatureMalleability\n\n# tcId = 65\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab02ee12ce5875bf9dff26556464bae2ad239d4eef676573336a5c51eb6f946b34d\nflags = SignatureMalleability\n\n# tcId = 66\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0e2300459f1e742404cd934d2c595a6253ad4eef676573336a5c51eb6f946b38d\nflags = SignatureMalleability\n\n# tcId = 67\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b32d\nflags = SignatureMalleability\n\n# tcId = 68\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b34d\nflags = SignatureMalleability\n\n# tcId = 69\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b38d\nflags = SignatureMalleability\n\n# tcId = 70\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0679155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b38d\nflags = SignatureMalleability\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = a12c2beb77265f2aac953b5009349d94155a03ada416aad451319480e983ca4c]\n[key.sk = 0a23a20072891237aa0864b5765139514908787878cd77135a0059881d313f00]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100a12c2beb77265f2aac953b5009349d94155a03ada416aad451319480e983ca4c]\n\n# tcId = 71\nmsg = \nresult = valid\nsig = 5056325d2ab440bf30bbf0f7173199aa8b4e6fbc091cf3eb6bc6cf87cd73d992ffc216c85e4ab5b8a0bbc7e9a6e9f8d33b7f6e5ac0ffdc22d9fcaf784af84302\n\n# tcId = 72\nmsg = 78\nresult = valid\nsig = 481fafbf4364d7b682475282f517a3ac0538c9a6b6a562e99a3d8e5afb4f90a559b056b9f07af023905753b02d95eb329a35c77f154b79abbcd291615ce42f02\n\n# tcId = 73\nmsg = 54657374\nresult = valid\nsig = 8a9bb4c465a3863abc9fd0dd35d80bb28f7d33d37d74679802d63f82b20da114b8d765a1206b3e9ad7cf2b2d8d778bb8651f1fa992db293c0039eacb6161480f\n\n# tcId = 74\nmsg = 48656c6c6f\nresult = valid\nsig = d839c20abfda1fd429531831c64f813f84b913e9928540310cf060b44c3dbf9457d44a7721fdc0d67724ff81cb450dd39b10cfb65db15dda4b8bf09d26bd3801\n\n# tcId = 75\nmsg = 313233343030\nresult = valid\nsig = 9bbb1052dcfa8ad2715c2eb716ae4f1902dea353d42ee09fd4c0b4fcb8b52b5219e2200016e1199d0061891c263e31b0bc3b55673c19610c4e0fa5408004160b\n\n# tcId = 76\nmsg = 000000000000000000000000\nresult = valid\nsig = f63b5c0667c7897fc283296416f7f60e84bbde9cbd832e56be463ed9f568069702b17a2f7c341ebf590706a6388ac76ac613c1675ec0", "f2c7118f2573422a500b\n\n# tcId = 77\nmsg = 6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161\nresult = valid\nsig = 1bc44d7001e6b5b9090fef34b2ca480f9786bbefa7d279353e5881e8dfb91b803ccd46500e270ef0109bfd741037558832120bc2a4f20fbe7b5fb3c3aaf23e08\n\n# tcId = 78\nmsg = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60\nresult = valid\nsig = ea8e22143b02372e76e99aece3ed36aec529768a27e2bb49bdc135d44378061e1f62d1ac518f33ebf37b2ee8cc6dde68a4bd7d4a2f4d6cb77f015f71ca9fc30d\n\n# tcId = 79\nmsg = ffffffffffffffffffffffffffffffff\nresult = valid\nsig = 8acd679e1a914fc45d5fa83d3021f0509c805c8d271df54e52f43cfbd00cb6222bf81d58fe1de2de378df67ee9f453786626961fe50a9b05f12b6f0899ebdd0a\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a]\n[key.sk = 9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a]\n\n# tcId = 80\n# draft-josefsson-eddsa-ed25519-02: Test 1\nmsg = \nresult = valid\nsig = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c]\n[key.sk = 4ccd089b28ff96da9db6c346ec114e0f5b8a319f35aba624da8cf6ed4fb8a6fb]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321003d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c]\n\n# tcId = 81\n# draft-josefsson-eddsa-ed25519-02: Test 2\nmsg = 72\nresult = valid\nsig = 92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025]\n[key.sk = c5aa8df43f9f837bedb7442f31dcb7b166d38535076f094b85ce3a2e0b4458f7]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025]\n\n# tcId = 82\n# draft-josefsson-eddsa-ed25519-02: Test 3\nmsg = af82\nresult = valid\nsig = 6291d657deec24024827e69c3abe01a30ce548a284743a445e3680d7db5ac3ac18ff9b538d16f290ae67f760984dc6594a7c15e9716ed28dc027beceea1ec40a\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e]\n[key.sk = f5e5767cf153319517630f226876b86c8160cc583bc013744c6bf255f5cc0ee5]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e]\n\n# tcId = 83\n# draft-josefsson-eddsa-ed25519-02: Test 1024\nmsg = 08b8b2b733424243760fe426a4b54908632110a66c2f6591eabd3345e3e4eb98fa6e264bf09efe12ee50f8f54e9f77b1e355f6c50544e23fb1433ddf73be84d879de7c0046dc4996d9e773f4bc9efe5738829adb26c81b37c93a1b270b20329d658675fc6ea534e0810a4432826bf58c941efb65d57a338bbd2e26640f89ffbc1a858efcb8550ee3a5e1998bd177e93a7363c344fe6b199ee5d02e82d522c4feba15452f80288a821a579116ec6dad2b3b310da903401aa62100ab5d1a36553e06203b33890cc9b832f79ef80560ccb9a39ce767967ed628c6ad573cb116dbefefd75499da96bd68a8a97b928a8bbc103b6621fcde2beca1231d206be6cd9ec7aff6f6c94fcd7204ed3455c68c83f4a41da4af2b74ef5c53f1d8ac70bdcb7ed185ce81bd84359d44254d95629e9855a94a7c1958d1f8ada5d0532ed8a5aa3fb2d17ba70eb6248e594e1a2297acbbb39d502f1a8c6eb6f1ce22b3de1a1f40cc24554119a831a9aad6079cad88425de6bde1a9187ebb6092cf67bf2b13fd65f27088d78b7e883c8759d2c4f5c65adb7553878ad575f9fad878e80a0c9ba63bcbcc2732e69485bbc9c90bfbd62481d9089beccf80cfe2df16a2cf65bd92dd597b0707e0917af48bbb75fed413d238f5555a7a569d80c3414a8d0859dc65a46128bab27af87a71314f318c782b23ebfe808b82b0ce26401d2e22f04d83d1255dc51addd3b75a2b1ae0784504df543af8969be3ea7082ff7fc9888c144da2af58429ec96031dbcad3dad9af0dcbaaaf268cb8fcffead94f3c7ca495e056a9b47acdb751fb73e666c6c655ade8297297d07ad1ba5e43f1bca32301651339e22904cc8c42f58c30c04aafdb038dda0847dd988dcda6f3bfd15c4b4c4525004aa06eeff8ca61783aacec57fb3d1f92b0fe2fd1a85f6724517b65e614ad6808d6f6ee34dff7310fdc82aebfd904b01e1dc54b2927094b2db68d6f903b68401adebf5a7e08d78ff4ef5d63653a65040cf9bfd4aca7984a74d37145986780fc0b16ac451649de6188a7dbdf191f64b5fc5e2ab47b57f7f7276cd419c17a3ca8e1b939ae49e488acba6b965610b5480109c8b17b80e1b7b750dfc7598d5d5011fd2dcc5600a32ef5b52a1ecc820e308aa342721aac0943bf6686b64b2579376504ccc493d97e6aed3fb0f9cd71a43dd497f01f17c0e2cb3797aa2a2f256656168e6c496afc5fb93246f6b1116398a346f1a641f3b041e989f7914f90cc2c7fff357876e506b50d334ba77c225bc307ba537152f3f1610e4eafe595f6d9d90d11faa933a15ef1369546868a7f3a45a96768d40fd9d03412c091c6315cf4fde7cb68606937380db2eaaa707b4c4185c32eddcdd306705e4dc1ffc872eeee475a64dfac86aba41c0618983f8741c5ef68d3a101e8a3b8cac60c905c15fc910840b94c00a0b9d0\nresult = valid\nsig = 0aab4c900501b3e24d7cdf4663326a3a87df5e4843b2cbdb67cbf6e460fec350aa5371b1508f9f4528ecea23c436d94b5e8fcd4f681e30a6ac00a9704a188a03\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 8fd659b77b558ed93882c1157438450ac86ec62d421d568e98ee236f3810295a]\n[key.sk = d7ad3f1f6bbe0477c3c357a806a19eb41ae3f94025035bc87f281f8ee9fc0e34]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321008fd659b77b558ed93882c1157438450ac86ec62d421d568e98ee236f3810295a]\n\n# tcId = 84\n# Random test failure 1\nmsg = b0729a713593a92e46b56eaa66b9e435f7a09a8e7de03b078f6f282285276635f301e7aaafe42187c45d6f5b13f9f16b11195cc125c05b90d24dfe4c\nresult = valid\nsig = 7db17557ac470c0eda4eedaabce99197ab62565653cf911f632ee8be0e5ffcfc88fb94276b42e0798fd3aa2f0318be7fc6a29fae75f70c3dcdc414a0ad866601\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 2a606bf67ac770c607038b004101b325edb569efd3413d2d1f2c3e6b4e6e3082]\n[key.sk = ad9b22793336fcdac10e136c4deea599be187a38eef91c1cf7c7a4ec884dda08]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321002a606bf67ac770c607038b004101b325edb569efd3413d2d1f2c3e6b4e6e3082]\n\n# tcId = 85\n# Random test failure 2\nmsg = a8546e50ba31cae3234310d32672447be213fad91a227a19669c53d309b959782b0e6b71f8791fdb470043b58122003157d2d96a43a6cbd7d3a8d86bf4c97391883e268d50af80e1e6e12939c2bd50ca746cdadfad4edf1bda875299740724148efb1ebe73fb60088cda890317658627a5f7ab5a0c075d9d8f3f97b6492b35519e50ff6b38377432a7081f9176bb1c29a862deac1336ca20b097a47829cec10a6a7cec178eda2d12f6dc6c87f910454af0123555ba184e68804d9cced60fd5c8c90943e56599c8f0ba59a38491ba5e5a53460682474c07e40ca142983314fd762856bb1093f359da6eb0a756bd93a3160c10dd8feea6b97e7c6a17cb54bd5d7649c05c66d7bdee056671dfdaf689fa3945bb8e29a429f4bd5d355dce9687b06f01d5e33e3999f0e8\nresult = valid\nsig = 67d84d4c3945aaf06e06d524be63acbfb5dbb1988c4aea96a5ee9f7a9b9eecc29df4f66b8aa1d9e8607a58fb1ef0c2ad69aac005b4f58e34103344a9c8871a09\n\n# tcId = 86\n# Random test failure 24\nmsg = b477b0480bb84642608b908d29a51cf2fce63f24ee95\nresult = valid\nsig = 28fafbb62b4d688fa79e1ac92851f46e319b161f801d4dc09acc21fdd6780a2c4292b8c1003c61c2bcebe7f3f88ccc4bb26d407387c5f27cb8c94cf6ce810405\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = c9c946cbc5544ac74eef491f07c5881c16faf7ec31ce4aa91bb60ae7b4539051]\n[key.sk = 04a6553d68a9baef78a2175af375458eaa01cdb77350c61e282ef5f0c7116599]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100c9c946cbc5544ac74eef491f07c5881c16faf7ec31ce4aa91bb60ae7b4539051]\n\n# tcId = 87\n# Random test failure 3\nmsg = cd2212eddb0706f62c995cef958634f0cb7793444cbf4d30e81c27c41ebea6cb02607510131f9c015692dfd521b148841e9a2d3564d20ac401f6cb8e40f520fe0cafbeaa88840b83013369d879f013463fe52a13267aa0c8c59c45cde9399cd1e6be8cc64cf48315ac2eb31a1c567a4fb7d601746d1f63b5ac020712adbbe07519bded6f\nresult = valid\nsig = 24087d47f3e20af51b9668ae0a88ce76586802d0ec75d8c0f28fc30962b5e1d1a1d509571a1624ed125a8df92a6e963728d6b5de99200b8e285f70feb6f05207\n\n# tcId = 88\n# Random test failure 20\nmsg = 27d465bc632743522aefa23c\nresult = valid\nsig = c2656951e2a0285585a51ff0eda7e9a23c2dfd2ffa273aee7808f4604e8f9a8c8ea49e9fce4eb2d8d75d36b7238fe6fc13b6c5d9427dd58f8c6615d033c0bd0f\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 32ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e]\n[key.sk = c367c8d2ebeeecd70c1e8985b70c38", @@ -7845,9 +8155,9 @@ static const char *kData264[] = { "6f0ac47ea136cb3ff00f7a96638e4984048999ee2da0af6e5c86bffb0e70bb97406b6ad5a4b764f7c99ebb6ec0fd434b8efe253b0423ef876c037998e8ab07\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = d3c9aa2f3d6ef217a166e8ae403ed436c37facbbe3beceb78df6eb439f8fa04a]\n[key.sk = d8aaad0749db159569a68b46048b3d3e8266e110150251c42806f0752a84e95b]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100d3c9aa2f3d6ef217a166e8ae403ed436c37facbbe3beceb78df6eb439f8fa04a]\n\n# tcId = 127\n# regression test for arithmetic error\nmsg = 619d8c4f2c93104be01cd574a385ceca08c33a9e\nresult = valid\nsig = b7cbb942a6661e2312f79548224f3e44f5841c6e880c68340756a00ce94a914e8404858265985e6bb97ef01d2d7e5e41340309606bfc43c8c6a8f925126b3d09\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = d53280367c1c0b95ac4112218b92c6a71c51fb6312ce668de196c7d52a136155]\n[key.sk = e78d26ab5b726c9d4dfb1f634082abded90432a2fd18089c7c85253a5d2fc7d0]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100d53280367c1c0b95ac4112218b92c6a71c51fb6312ce668de196c7d52a136155]\n\n# tcId = 128\n# regression test for arithmetic error\nmsg = 5257a0bae8326d259a6ce97420c65e6c2794afe2\nresult = valid\nsig = 27a4f24009e579173ff3064a6eff2a4d20224f8f85fdec982a9cf2e6a3b51537348a1d7851a3a932128a923a393ea84e6b35eb3473c32dceb9d7e9cab03a0f0d\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 94ac2336ba97a476fb4c9f2b5563e4167ca292c6e99e422350a911ae3172c315]\n[key.sk = 8e7ca56e07f1438ac3615fd9ec77ae63679d0ec059b4595febf40be59d976a05]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b657003210094ac2336ba97a476fb4c9f2b5563e4167ca292c6e99e422350a911ae3172c315]\n\n# tcId = 129\n# regression test for arithmetic error\nmsg = 5acb6afc9b368f7acac0e71f6a4831c72d628405\nresult = valid\nsig = 985b605fe3f449f68081197a68c714da0bfbf6ac2ab9abb0508b6384ea4999cb8d79af98e86f589409e8d2609a8f8bd7e80aaa8d92a84e7737fbe8dcef41920a\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = e1e7316d231f7f275bdf403360304da1509fdf1af1fd25ca214eaac0a289398f]\n[key.sk = e77525af5856ab9df5abb64e5312576b498cc27f61f266e21f382e0526d4e6fb]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100e1e7316d231f7f275bdf403360304da1509fdf1af1fd25ca214eaac0a289398f]\n\n# tcId = 130\n# regression test for arithmetic error\nmsg = 3c87b3453277b353941591fc7eaa7dd37604b42a\nresult = valid\nsig = 1c8fbda3d39e2b441f06da6071c13115cb4115c7c3341704cf6513324d4cf1ef4a1dd7678a048b0dde84e48994d080befcd70854079d44b6a0b0f9fa002d130c\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = fffbeea71215efaf9888fec2cc68edb3703ff11a66fd629b53cbda5eabc18750]\n[key.sk = 1f43235ad716f1beb754ab0f546dfa934488fdf7472b493d7cc3c60353005d24]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100fffbeea71215efaf9888fec2cc68edb3703ff11a66fd629b53cbda5eabc18750]\n\n# tcId = 131\n# regression test for arithmetic error\nmsg = 0a68e27ef6847bfd9e398b328a0ded3679d4649d\nresult = valid\nsig = 59097233eb141ed948b4f3c28a9496b9a7eca77454ecfe7e46737d1449a0b76b15aacf77cf48af27a668aa4434cfa26c504d75a2bcc4feac46465446234c0508\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 19ccc0527599cb032e0b4c4d74e60f13901768a99df041c3bc1bf6c0ef271169]\n[key.sk = 3977785b9f8c5320e51a3a16f8cc22c4f7e64857617f9550147fa35d685ca34f]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b657003210019ccc0527599cb032e0b4c4d74e60f13901768a99df041c3bc1bf6c0ef271169]\n\n# tcId = 132\n# regression test for arithmetic error\nmsg = 4e9bef60737c7d4dd10bd52567e1473a36d3573d\nresult = valid\nsig = 519105608508fe2f1b6da4cc8b23e39798b1d18d25972beed0404cec722e01ba1b6a0f85e99e092cca8076b101b60d4ac5035684357f4d0daacdc642da742a06\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 0e726e27047563aa0a1a9c2e085d8d26af2acba129d0869c65031e3e6cac329a]\n[key.sk = 1aa4415c5db0131bec6fa188d0c23d49a65bf795657153fae94777e3f19bcf54]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321000e726e27047563aa0a1a9c2e085d8d26af2acba129d0869c65031e3e6cac329a]\n\n# tcId = 133\n# regression test for arithmetic error\nmsg = cc82b3163efda3ba7e9240e765112caa69113694\nresult = valid\nsig = d8b03ee579e73f16477527fc9dc37a72eaac0748a733772c483ba013944f01ef64fb4ec5e3a95021dc22f4ae282baff6e9b9cc8433c6b6710d82e7397d72ef04\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = e77717b54a2b5e5bce5bccb8f0c5fdb5fd7df77ac254020fc9120dc0d4df4178]\n[key.sk = 0fb7680a50d3f2940077ea4dfcb7eb040a125c4f4b5dcefa16d3af968fc8e5de]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100e77717b54a2b5e5bce5bccb8f0c5fdb5fd7df77ac254020fc9120dc0d4df4178]\n\n# tcId = 134\n# regression test for arithmetic error\nmsg = 923a5c9e7b5635bb6c32c5a408a4a15b652450eb\nresult = valid\nsig = 26da61fdfd38e6d01792813f27840c8b4766b0faaed39d0ee898cb450d94a5d5f57e58b6a003d7f9b56b20561954c6edcf66492d116b8b5e91f205a3a6449d0b\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 6220972d3f7d150b36790d7d522384876d64d640cd9913186815e1629582ed36]\n[key.sk = e222c444d6bc8a4796a0d5a2d71d19b98845cc56e39caaf8233ea4c6b0704f09]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321006220972d3f7d150b36790d7d522384876d64d640cd9913186815e1629582ed36]\n\n# tcId = 135\n# regression test for arithmetic error\nmsg = 6f2f0245de4587062979d0422d349f93ccdc3af2\nresult = valid\nsig = 4adeaff7a58c5010a5a067feea0ae504d37b0c6a76c6c153e222f13409dff2df0fab69bc5059b97d925dc1b89e9851d7c627cb82d65585f9fd976124553f8902\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 7b64a28c50ec7678a90e3e1a21522e30ac9db7b5215aea2bfb33bea037eab987]\n[key.sk = a89ea18476b9ad90cb14b8b1ff24777e4ebd015bc810a60785a9154dacf3be52]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321007b64a28c50ec7678a90e3e1a21522e30ac9db7b5215aea2bfb33bea037eab987]\n\n# tcId = 136\n# regression test for arithmetic error\nmsg = 6e911edb27a170b983d4dee1110554f804330f41\nresult = valid\nsig = 4204d620cde0c3008c0b2901f5d6b44f88f0e3cb4f4d62252bf6f3cb37c1fb150a9ccb296afe5e7c75f65b5c8edd13dc4910ffe1e1265b3707c59042cf9a5902\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 724452210a9e4c994819229bf12bf84e95768a3a97c08d8d8f5f939a4cad34c5]\n[key.sk = 69b1da56cde8d1676c2a8c0e7f95c7d0bf60739efd1304dd2ccb02729d17a22c]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100724452210a9e4c994819229bf12bf84e95768a3a97c08d8d8f5f939a4cad34c5]\n\n# tcId = 137\n# regression test for arithmetic error\nmsg = b8cf807eea809aaf739aa091f3b7a3f2fd39fb51\nresult = valid\nsig = f8a69d3fd8c2ff0a9dec41e4c6b43675ce08366a35e220b1185ffc246c339e22c20ac661e866f52054015efd04f42eca2adcee6834c4df923b4a62576e4dff0e\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = bad265b294ed2f422cb6a141694086238fbfe987571aa765d8b4f3a24105aa01]\n[key.sk = b332265cf95595f0c90221593b5a2b3c574d60dc634ddff6186f0eed7980a383]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100bad265b294ed2f422cb6a141694086238fbfe987571aa765d8b4f3a24105aa01]\n\n# tcId = 138\n# regression test for arithmetic error\nmsg = 01a2b5f7fee813b4e9bd7fc25137648004795010\nresult = valid\nsig = 61792c9442bc6338ac41fd42a40bee9b02ec1836503d60ff725128c63d72808880c36e6190b7da525cbee5d12900aa043547dd14a2709ef9e49d628f37f6b70c\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 0aaee4b723db9b51ba7d22eb23eb8a76a5ac02f4fc9dd06f77bea42e1d37ec5a]\n[key.sk = faec9764b369df0ef10890dd022c502e551a3222b43e8429455496c76feea45d]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321000aaee4b723db9b51ba7d22eb23eb8a76a5ac02f4fc9dd06f77bea42e1d37ec5a]\n\n# tcId = 139\n# regression test for arithmetic error\nmsg = 0fbf5d47cb5d498feace8f98f1896208da38a885\nresult = valid\nsig = fa3cd41e3a8c00b19eecd404a63c3cb787cd30de0dfc936966cff2117f5aff18db6bef80fcfd8856f3fb2e9c3dc47593e9471103032af918feee638a33d40505\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 812344af15a91ba83c2c91e96f1727ac0f3c4c41385b9fa84efa399ada5168be]\n[key.sk = 4eb19e278f7a30a06a7d55e42c44775f4a81b7a45c0512aae026262e71770dac]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100812344af15a91ba83c2c91e96f1727ac0f3c4c41385b9fa84efa399ada5168be]\n\n# tcId = 140\n# regression test for arithmetic error\nmsg = 36e67c1939750bffb3e4ba6cb85562612275e862\nresult = valid\nsig = 97fbbcd7a1d0eb42d2f8c42448ef35a2c2472740556b645547865330d6c57068af377fced08aaf810c08cd3c43d296f1975710312e9334c98b485f831efa4103\n\n", "[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 0ee5cb5597fbdf8dccc48b01485e39b33aa133b52d30d23740277267cfec3e3e]\n[key.sk = 1998d5949cab365a00f828e7d17b06c708d33fef0031d353a4e15bf7222a73b0]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321000ee5cb5597fbdf8dccc48b01485e39b33aa133b52d30d23740277267cfec3e3e]\n\n# tcId = 141\n# regression test for arithmetic error\nmsg = 13945c894c1d3fe8562e8b20e5f0efaa26ade8e3\nresult = valid\nsig = d7dbaa337ffd2a5fd8d5fd8ad5aeccc0c0f83795c2c59fe62a40b87903b1ae62ed748a8df5af4d32f9f822a65d0e498b6f40eaf369a9342a1164ee7d08b58103\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 9fba1de92b60b5b4703089763d0d6f9125e4dd7efae41f08a22882aef96892c4]\n[key.sk = 6164676114c66bd9887dac341c66209dc587ccf0cc5cd9baffdfac9295a00c4a]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321009fba1de92b60b5b4703089763d0d6f9125e4dd7efae41f08a22882aef96892c4]\n\n# tcId = 142\n# regression test for arithmetic error\nmsg = 4de142af4b8402f80a47fa812df84f42e283cee7\nresult = valid\nsig = 09a2ed303a2fa7027a1dd7c3b0d25121eeed2b644a2fbc17aa0c8aea4524071ede7e7dd7a536d5497f8165d29e4e1b63200f74bbae39fbbbccb29889c62c1f09\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 7582ab1b52e1316e5c13671f43b39ca36b28133cd0832831bcddd0b0f23398cb]\n[key.sk = 4b0bd03a03b20069ccbcc214a7448473f4e7a491fa7ceb48ddbe24c83c4aa4bb]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321007582ab1b52e1316e5c13671f43b39ca36b28133cd0832831bcddd0b0f23398cb]\n\n# tcId = 143\n# regression test for arithmetic error\nmsg = 563357f41b8b23b1d83f19f5667177a67da20b18\nresult = valid\nsig = e6884a6e6b2e60a0b5862251c001e7c79d581d777d6fc11d218d0aecd79f26a30e2ca22cc7c4674f8b72655bc4ee5cb5494ca07c05177656142ac55cc9d33e02\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = dd2d678bae222f3fb6e8278f08cc9e1a66339c926c29ac0a16f9717f5ee18cd8]\n[key.sk = 2fce7870be1f392d21fb1d2350ec7877db8aa99b359fe5bdd5338ff35a791d1c]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100dd2d678bae222f3fb6e8278f08cc9e1a66339c926c29ac0a16f9717f5ee18cd8]\n\n# tcId = 144\n# regression test for arithmetic error\nmsg = 931bbf9c877a6571cf7d4609fc3eb867edd43f51\nresult = valid\nsig = 6124c206d864507ea5d984b363b4cf583314db6856a45ded5e61eebff4d5e337e0b4c82b445ae2e52d549d2d961eace2ea01f81158e09a9686baa040db65ad08\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = ccbe7cb2e4bc215cee2f885e1d22f7e0d582b2bbbd782c104e548b152d26fc69]\n[key.sk = a9ace42195ddbb3a16f366b24dd9d37a8a043ed2e6001f54652296750379367d]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100ccbe7cb2e4bc215cee2f885e1d22f7e0d582b2bbbd782c104e548b152d26fc69]\n\n# tcId = 145\n# regression test for arithmetic error\nmsg = 44530b0b34f598767a7b875b0caee3c7b9c502d1\nresult = valid\nsig = cfbd450a2c83cb8436c348822fe3ee347d4ee937b7f2ea11ed755cc52852407c9eec2c1fa30d2f9aef90e89b2cc3bcef2b1b9ca59f712110d19894a9cf6a2802\n\n", }; -static const size_t kLen265 = 61255; +static const size_t kLen270 = 61255; -static const char *kData265[] = { +static const char *kData270[] = { "# Imported from Wycheproof's hkdf_sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HKDF-SHA-1\n# Generator version: 0.8rc17\n\n[keySize = 88]\n\n# tcId = 1\n# RFC 5869\nikm = 0b0b0b0b0b0b0b0b0b0b0b\ninfo = f0f1f2f3f4f5f6f7f8f9\nokm = 085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896\nresult = valid\nsalt = 000102030405060708090a0b0c\nsize = 42\n\n[keySize = 640]\n\n# tcId = 2\n# RFC 5869\nikm = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f\ninfo = b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nokm = 0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4\nresult = valid\nsalt = 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf\nsize = 82\n\n[keySize = 176]\n\n# tcId = 3\n# RFC 5869\nikm = 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b\ninfo = \nokm = 0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 4\n# RFC 5869\nikm = 0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c\ninfo = \nokm = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n[keySize = 128]\n\n# tcId = 5\nikm = 60ab7f45b0ad534683b3a6c020d4f775\ninfo = \nokm = 73bf325f0fcc78f15b6cee7c9e7d927d4016eafd\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 6\nikm = e3db76e02278cbd2adbcb4555803da11\ninfo = \nokm = a9382b2bb04ceb4fe0543cee88753df8cb90c9dc440f7e476e95150c82e1376e123f058875c00cff6f29\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 7\nikm = d4dcb92a769f57c8bab8a420ee0aa351\ninfo = \nokm = d10d4bd0ed723533adfceaa903f1ee8836e61cd085fd951dfc6a291edded082e8478c9f8bd1f7a2611a6a049761dfc2888a9e32be9c326833c6559487c33f6e1\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 8\nikm = 2d43e54bf0c94c9cbff4300f4aa69ab8\ninfo = d674da3bb47d5c7e38b501e5251d9348af601c44\nokm = c1b8065a9ea8e79d404f882089cf423a99bde5ea\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 9\nikm = 4055536896c406d5fe14a6cd6b999bff\ninfo = 2094768a8816f7df070d6e08b7ad93755dc9024b\nokm = c7d3c9ab74081357d0f6ee3aef0442afee7325381090a2df642926a3e6e6a7e213f05ea5c39978d52165\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 10\nikm = 5b01b2da3166f217cdd68de8af60078f\ninfo = 6884cfa7ffe8f27bf4ebc6e46a7e01488c79243a\nokm = 1535a41d6e8a94c5bd51b7447bbd9c2b8fa00ba05b92e7ab0da7d1fec7d348ee7d50a4bdbbde173dd6eeff83aba9e8b822823b339a76811d62771336f4e08f3d\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 11\nikm = 467403c2ec02a235bf730ff37e8d8ff3\ninfo = \nokm = 4ab2bf78f2678effaced317249e116862d3d9b8a\nresult = valid\nsalt = 41f0f173d307d40436c25856cf559f96\nsize = 20\n\n# tcId = 12\nikm = 3352f942aa93071da6d39cc5ed8dc460\ninfo = \nokm = bbcf63065c761017f229183e767683b98633a85f4d8f32236cfa0fd3f6b182a5f41c33506636d18c5eba\nresult = valid\nsalt = 57a0db708b25a51afc4271803aa35204\nsize = 42\n\n# tcId = 13\nikm = 08867e76311126089356623ba5381e73\ninfo = \nokm = 3084fee371179b60a4fd27ea2637a9b89a3dcf6ab45d4805c99880b26e5d73efed4b421f1fea4cabb60893241765b19554aa51689bf00d7d94a053a94bfec55e\nresult = valid\nsalt = 0c164c443edcdfaedb1ab150f047951f\nsize = 64\n\n# tcId = 14\nikm = c55c41d69d2424a520414e3662aa7303\ninfo = 3fdf20538063b76901d61bbf9b72b0c18749e00e\nokm = 3917a782fed4d7f525ca16ca1dfde0faa7207262\nresult = valid\nsalt = fea9bfc92b74337e43a201a2dc199e27\nsize = 20\n\n# tcId = 15\nikm = 5d3db20e8238a90b62a600fa57fdb318\ninfo = 2bc5f39032b6fc87da69ba8711ce735b169646fd\nokm = ca0903f17759fc29df761469e3b98a5b1476977706f3c87e9d39050e5b36c7ae6bbafeb3814037b12ca0\nresult = valid\nsalt = 1d6f3b38a1e607b5e6bcd4af1800a9d3\nsize = 42\n\n# tcId = 16\nikm = 8677dc79233ef3480777c4c601ef4f0b\ninfo = a38f634d947819a9bfa792174b42baa20c9fce15\nokm = 1761915ac282909fbfd43ce31934e7a10951f901ad33f614a9394b6f5ca04e00906aa14b91132bf9e8ae0aa2102c3c7a67756e81b57d89192a62ca0cf907a3dc\nresult = valid\nsalt = ad88db718244e2cb60e35f874d7ad81f\nsize = 64\n\n# tcId = 17\nikm = 0f602703d37943e0253bed3da331aff4\ninfo = \nokm = 4a54220ecee20a84e1b7b6f5407af234b14938d1\nresult = valid\nsalt = ebdc8510499f69b2e188daab77cd819cccb95f276f46e6b2be11cbe72700\nsize = 20\n\n# tcId = 18\nikm = 9fe65737574c5c7aa67646adf8230ba8\ninfo = \nokm = 741662ad515bf9d2661aa0731eebd674f7390bd20fa3bb7cb2e9d6ca953c2bd839929c44a6f0ba5ae614\nresult = valid\nsalt = 73a34648c152443586236abcb46a090ce55ef6c7f282ffce6342d694650a\nsize = 42\n\n# tcId = 19\nikm = e8f2b1c3e6a6c3d5ee0a20dd47aafa78\ninfo = \nokm = 695807f517ba39e33eadeb6a7b71d2016163e9f5e6aaad5f493bcbe24ac06f8a6770097da76b50338a4dcbd9fac4d3a545c45eb1e733f70e9e82ca03830d0ee9\nresult = valid\nsalt = 3f5e162de91e0782cd189f3b7778cdc2ce6bfe9d3fe841cd3c70475d7b3c\nsize = 64\n\n# tcId = 20\nikm = a679521cdb56aafc5a4b76db0431a4dd\ninfo = 44ec41ab4f4e64f4a36e5e30c9f0dc1d77ae4974\nokm = e36789305dd2613dedd29e041afddf558d6fb8b6\nresult = valid\nsalt = 123033b1ddaead83a4b9cfef8a660bd8e00fde01e67c35656c6d7607d456\nsize = 20\n\n# tcId = 21\nikm = 49bf155ca102026f2a217ea1bc9843ac\ninfo = 851bda4faa8f7add2a3cbf0acf9c2786f8f955b2\nokm = 6016f537e75e1aaf2e6920827d18aa25e9fc8742c607b0cd97a38cad0bed0a6622981f97b63b08f31ed9\nresult = valid\nsalt = 76776e3b4d75f8f43dce4bded71f3b1ae6bcb012d9c0d59f78248b9427b8\nsize = 42\n\n# tcId = 22\nikm = 6cf725e939e8824d4392233eeac75d30\ninfo = 495425d9727fee2e2b7e78899868c1c3e7735e1d\nokm = b31f845aa6ad9b6803153872145a28617035e9b2d2a5c1ce8d0d2c6017f17403a67326cd06068af972eb8b734903d10b633d07de05f02fc70ed383a60bd82b48\nresult = valid\nsalt = 1e72f24b05a91a0093f34306ffced79e7003055b0833c6d0f27a4f33a1bd\nsize = 64\n\n# tcId = 23\nikm = a319ff7b5ba9b14ac72b681cecf0f742\ninfo = \nokm = d547c94891439eb7dc9e0c425adf20262d27fd9b55e7b0516e836db6b2f778c70296bc97c466e05ce2d5\nresult = valid\nsalt = d7e3bc6daed343ce77ef793e15a8246e4bfcbaf83d2ac956d0661d1df7262b2e7311623dfe4152caddbfda8fa8ed7a82656ec00b72c5adf7c9d388e5b3bc8d24\nsize = 42\n\n# tcId = 24\nikm = 34bae5a158c1678aa76a744417a70d7a\ninfo = 87ec30aa53acfc3d09ccc1d57d654fdbce403cd4\nokm = c508b4bc7503440f3ee04c5b8c5832bf70b54a6caea8d2a0ade43a0ea72c08e474904587334d699ba2ce\nresult = valid\nsalt = 1532075f363e061133780ac959bf653c7687d181b9431215d6f62dd2f1ec3019d61c50fa82c70ae25e624c849a276b0c57d7c02a4d753fe84a1a6621e9a5ef01\nsize = 42\n\n# tcId = 25\n# maximal output size\nikm = 9ab09999adde788dc2bf82c7ec8fab03\ninfo = 60999543d9cec9d3\nokm = 033293a76b1496c9619331f089d402d0deae28166bccf304bf25822f369479cf0aa1600b6ebcae43fd1f5d3389c55331b81cbe1e9f6ae29aa86d8a332d298d50516af4926f01691754981c9c92d743d0d26a94423120761a4d0d0e562368696ab78684e51a65b30cc4849a6a5a6c53a076c276db287b787dbb43d1e107f86bce19986cfcb86ec40fd74dfba08784219c2aea2152e21be5a87dacdd18b22ef23292623bcc64bd03a3a1b408a77fbbf4e18ae59a94cac72f43687190e358579d1b0a54d3f2df7f08b867af0b941deb9f7035a1a8f13c6d0da4f9e02f817ea0a92c02140ff5a7d7e398a7b410574d2e6ef7a710efbd1db628318650236ea02f1b617bc79087f5a6c3adeb7037176ef51fda844b2607a4960e3852107dd2703558a534a06ab5a1595d237fe3eb0c0ea3f14400332abb221784914e99fa5ca7a1f67338860283bf589a6b6ea0b32e2779e207fa8139dfeee954e762ebf6255250b1fc58c4c79b3d98fbbeaf786907b5fc7a8c34a25a642b7286a4b2ecdfd1dce041294322bc54b3c15ac44913dd1a3a4361e2d2a0e58c13f34ab2ead723fa01311a2659f74722a09f5b1837a7666da60728ae5cb4b837621961bf0278da749f79a47249ea0e361be3afd14ea9ead4e2f70d9941fa55862d86b53046de5dceec48a4b9f7b895693e328c59c0b2543ef2cd84b2c549a8e0013351703f7669b8346d2b32f7627b7df9ee746b1092f34033f69314a985ce2e948b9a98dabe9bf259f92b78b9a1de7285db617784001894af381618e9a2992c5738337930408b7e0fb57697bf4839e7e72ffa1010319a50aef208829950d60b6c4e57b76bc62d1923003c374710d5370249172064e4e5e0aacae369fecd4ac4bec3861fd24a6c633aca87f2d73c7accb43f9d83bce2d544563c9213e2eaf4a159520500d576bee5d3301613c31580cd6ca8c47039a4d4085dd8b959e5b8ca4835705bcba8982bcf9e8fef0a1602a76364cedb6daf92952ca58be7076ff5536403023", "0daff9fee31152d64fa0d6541d862970c2c013efd711c4f96b532fe9f4a4a180ac4d3cd41e5d66d62371616e6ea88896320944a8f3df632ae0188bd93929ce6a6669803c04be549d80fba1815ec67a0269b74e0a1d33beabc1c94ef6636722a2b27bc0f249da083feeb39ef2fa5666ee38339791602afacc9829abf6541a5ede2cd45ece276ddaa9f49fc4d02b755eab466d5bb0ceb3b7b771ce6a9d85283d4a53f53c54b63b4011110b42e9c1fc8c8dca6e4b69e6c4b3b89c53f0f990e26b84ca5f0660e712c775c1824eab5055527bd92495cc59f8d4c04ae13b49c466e886d81639d00b7bc68875a8ab6cb87807d4b2257252561d69788cc136a5273e5f3e68b9ac4ba4f7547422544edd4ca658e1c13c756420e4a6290c7db03f5ff7f44ac78fe4d353847caacd1692c1521b12f1f55362ae755c9714712a6d80362080d865062905ed0e9601c5b12b1300dca219f7676d0080a33d1a6b08718c36f084211461c0f50f6911f17746752f3a6bda656e3a065aab0cf30ce2542eda35a42821c62c838ed18dcd4dcf5d51346804c034fb2c3a16b0c84a6aad62972c84b499a370965a959e17d537acc13d5d08000d732c11aaad9e0f192a9b74d94ef408040c8bc50e7b2ba9edbac047fd4b80c16dbd3962f7eb528e0d80cb5a439eb3d6cc62e41e2cc7f4e2d5141bd48b400ffd19da07d0694e983b91744e420541c01bbfba3f333c5e3e7946d2dd245b70304c3b1a35cd9485aa6908c7a7a846f23466265c1e55e6dfdf8d0cc320033a18feff132c0e3b1216d33b954679121ff2c8795e7c4f9a4a9725d31200bfc72444cb76f50f198b04afbd4821a31a183593210789f93ed612a2e1d70facfa0b23e5aa854059b83979b55ac382777e351589d266d3ceba76a5bc345c5514f4f07e79e54a8b70a024cb031808bc13524c04b4d1fe28781da04688bad13f379a0659915ce438985428473823a70687daa8b6afb659edf07e25518b00114e9847e3d6598f23f2eecf07e59cd2a801eea6e3891735e457b7fa03872358e682571fec629cf19f17fe167a6253dee7b6deb39773e0d3606e025df91f35fc27be8c046d67489e010f743d84599283fcc418b628dc244d2f859db667c376b2953991e0db773b3e068c1da262302c391681fb414c26c41ed85eb4212e982d0e15eab5a67257a3ff913ce68d6aed6e9a8ff385c7d878cd4789ec9adee99fe25438911252de7a7cf6ef5d6662cb424208003d0ddc04d38e04c32d9beb4f6e8cbb19a8dc0835515bb5ddbc600f148861d6dec69dc8cbd4aaa7fbbe49f782199d618cfcc9820e77f2a474a3fa219c384d66bc8abccecf9f82caed37f05f3f0e1d448af96a5a8287a8c877b25b842dd9e0f66ef810f1b0be4e76f8f4e6e15d7eeadd07633fa3763c493e12a84639f76f67cfc823ab945403ce84d50263edcc95223a22acebb79b85aecd82b3aee931c891ba61bd8ff94c625cfa4d55e1b2bd996b5d99e6cab245e243e6414005f1cc4f0dea54b35e1309cc2db46cd785b294aad50ebd634d363688e3206a57fe38d83cc068c4b8504c11bb4c1d256d496513667170163f7ec98b5b9c3e23777d6a3cf72598ed68fc51466ec4e3ebd0412e002af200f1bc8800400e816ab29293b1c7ef24e30415a8e513e4a9efc851fa549b3d1e0d881fda0a6c393d0ff0c57f44260b3f5d7dd60408ca687429c4cd4274c206f80833d605290e5c992f17e05dbc9552f8c40300bc1f3480c6bb404c75c4220d8888afeaa779eb0f625c5c044bb12349af62adf5b0a18e07b37c954146851dd628dc26e894ffea95c84e78a75c25cb751cc81dc93d3146b6beee9871ca3004af6e644b65e972df9934717e075b53eaa6c878cb94f5d1fea89c3e8c9da4d0bd7d8d8ffedda0b48eee4c9877748be05a06b3e69342d5366e9db9be38f36af0f759fb6904876f5ce327dfc777fad8732e4372ada25106477d8311095b8d9dc4c0100cffd70847305695be46b2b5ba8df8ab3de333d09a7f32736061eadf9182bc4c0ea5965ba7d91d655d6942f0796fb4a05c959b6afb52a8b943065de6e0eae3639006c5b130b0a8b00b617409c5c8d5cfcdd88b1e981930ec92f21ada92a8373fc7b49d3ccc5c63b776849d5efa51de531f9387a9d11ae9fba6987d6b680fe15fc19c88bf0b5e1764044bd689554a12c8013f1e7dd6d2214c74c3fa65b4a0a35bf479d2582e948ef91c464c4dbfbea80d42bc8b1ce1fa42ccc38f492e3acf93b2b64f5e956fb171eb2c0e4ff537c4ea2ca13978dbd280aaa1d5a798b423942b6897663aa75d4c153f76d653b4fbdda2d2e141e9731679d52225fbc6dd0e81e03095b37af927e0c2aaf7eea5bdcbf59749e54e391b2af88626ef8f86920c81043334b3a09acd8c0a20e9aa0849dd56a2643803d133fefa3ee0f6b52b6109170ec5d6a15d0d20f7fb546ed78930b4298f4b5623ed912d0a5d6688b05b1b5c892e6fe60b2f1c68623bcf9a0ed513ac75c17cde5e01c3be75b1ce441174d26244873a7946ec1953666512efae05547dc8cf58fc342b262c3ab072f29ee876327e1de6c67f5c480814ea26702e1c7672de4655a87350b38f7b290cb22a3a0725f8aa2d24a794fea6f70fac5a345fc426ea2931cc3890b8cae7e92cc171d86f5f1baddae8f4b1db7aab80e629022eccfad9276c578d2a6085a446ed4b017e6a0da40343be3761f190d801283c061865610c3173753384bf87ef3ec78e63aebb1b051236f9f4d6712b487f0c407a44c7241c96e2af404a2ca14b8b6a11564d0aa2b6efe18072d6d596e26d105783a57beb5954f6066f7d2f4eefc2b455171d56364b21c3d8747d5f407cff5bd8bd350d904c17a4b91f37b48ffca09e5334420bdcb6fc3797417cf99af8773a027d0dccf56087c7e751e519c365119dd9195ee2449de13aac6d538c31d58dfb3b4183be4e71f6b4893ca588876514b581b03ac897b5e9305234740858f2b2a368b26b4d560c54a3f1018df913344d66229c56b3995a9c67d5f6db145e495159501522472dfd3d38deebf4c8cdd698325914d7472d02c49af1a9c85d20c019b03259a849130a53909929695a2f911e11f04caec36280f9653218911f4fa62ff63d77ecbeab3f2eaa235598617c424eb6caceaf365fdb7659eb06569623d38e47306ca2dfa98398586c4d5aba8ee29b9046416b3d7c6660b03aa5f59ca921e9f25090769428587428c8715f053323dff1eecbc2bec9ce90bda4d890416fcb952018f50f9ac9119d45e7ed56af58a4d0d9ab8a2a301eb17325f89359575a6277d340c8fb40f3271387fcbe04f2d3c1d63b490d12b5d2e8e592529c62d07d5d9c315f54157d30cf5ffb870b6a466c6c1f19fd0aa4b8973f1c3492b77cd7aeea7bd85f21cec76b61c3183cccf83e754d8ecca2b2e39420fbd4724f03efd9b6f4d4d59f1e8cdc3746b1dfebcad85287127de3658c2aadaa514e35c84bc772839575622d872a0e8469b3eec05e143b2129c6a75d1d4f043b2785fd2818a3db7dcf2991ea95caf73db5b2340df001771a8548db332006378466ff16dd0c60fcf6fe0c185da8e501afebcc9f566e1ff34f69b5af7997e6413c9e17e34745e131edce9820540c07ada9f500368b0f3dda452b3d1f8312e2926e20ad55fd398d21fed2ae3440834c9779d747f4553cfa2d5edd8242f3e6b1b3694031fa2c7430e78f117e69487798f1f3ac539979e29cb69ec44d8dcf6d0220d956cb4e6a5c9b8ce5263a950362f88f3ba56ad7d2f38fcfb2195cfe79baf44845dc124aeb5283962691abc25a4e016bed2f127e4e6bb78b22437ebc87cc975fc898793dd20f94784cad271dafeda980b4c6a91de39ba71eed0529bf05907db0b1bb9ff09e2bbec611d8238eac1939c3a7fabe8ab631337300ed6c40dbd5299f934790137ea875e54af87a60a169eb920522af2a50b62856a6e471e6c52f285cca854d0bc98b69622aa2c4364843279ac21eb4002c9814fec8be3de5f1e587ea62b0b2f1b5313b69ea407f1f2b7bab8c13cd54ce2a7704ee97d01c1d40feca1aa698fd90b2003507b32644043254dc61ac50f92840a408c62d6754e80108ca656b0ac977e9d1da44f87f4e8be3f1b2258f092714b9c4027b1678388546031a1c7391d9a151a33c5d291d85a457fe46b12ba6faac046630ad646fd5705a67ae2b2f85e4a79f780bf506829fc9cdcf6b8c2cad831ef7b26b37d3db8d4cf63776eb60151f17b68d86002e878c6198c171c8db609f870ef0ce62bc27b0c97788c25262020c4b42036ac3ea666429f7a47248fc41126bfc5777ea036775437b9d14154aea29884aee95e46966699a6a5707726057de573d77f31d190624dc3833c939c318784fb1d80c448fca6f0af4cd18168cb40d3c19377852195ba42da113d5953c1a0fbe5d188d884f6162503d69442798c891d1fa0c706c80565b9e6300918e6f718770058f18e80ae393a96c83a987ab08b2065c42d02f03d88385f1b2041ed70b90b124b6973990d61cff38b493c778c3eb26c722408f4060da392632be571b7260051cf18dfaea3efbc3d37c67b0c182a0cfacc1d013c38ad0592bfd868797790bc8f5a5e2a95c33bf078bfcee82afa438cd4ce48eb8698906cee16e0eee03c551d8c0df8d3448924d3d1108a6dd89739ae1745d637035af515ef94ab3ef461eb479281e743b9d7ea10e7bc1a033da2eac28a97e1b81550c32033ad630efa2a6ec9f666c34adf8dab8367a40c21f1b70fb8254976eed50be0764be04e62cb0427cfa51a9b78d1f4ddfa09c995d20fa0cc3cda2978ccc762146ce9441394df789bfd8233950f84df64d20808758f19e00b5c6aabe64d3c23f709ce866fffa5d35590801459f076e6751827d131185e36e818c30bd5ade360e4f0818a03188a5266c44747ed5e7154c4c93a87f0ce05b745bc7ebd3fe011c5169f1ca118bab34337eeb61206f251d8a0307f6dcb33aea11b1ec7eb888667c7145b2fc601dac47787c842a45ee0f5af1811b7a57759c14f5da6f8b86f73a3bea7b3f1effd9366dc6658fb3b8510f54621d8d13f330163a6530da45f7263a8fda2c43123ef46580b3990d51def937db27f9e06e87fdfd186df2fd6a5dd6133a8f3ee06e0e14719861def6cccf68f085caa631db3e85b4bcdedf83923c2950665b0187e224522060d5d54a02d5501a0c0a384bd247164caedb02c9a69f9a3638d258b945aeba029250ab549478cb855cb27404fa5cdb15a46b9f1ff8dda401f2dd472a6d6c66dfe8f5f7449238eb959c091db1c26e5efb5e7efe096489c7a25515de6399d7399b793aea554bf9fa1f6083f3c955f144171e8584b133a2ea77f49c974c2e79846e83541f37e0671d65173b3327de75c5173644959ba119f49195ed3ca26b144ca3001aa5044d46781a1336967911496da309744bb6ad244d1a96d47c7089c539486a1977a63b6523782bc2701495d50ea208a7fa411c70953cb506befe8ef37cc41dded7edc0a91de2e952abe338141e020afcff657e3eae7d11b384b0a496dc105fcba6c9cb3404dc20c704f0d37c5a96cc37ee132c47ce1ad12791d48a96ea2dfd0881b1d1d777619405b9040fb52cb1a7ca1ca993f34eaa2a7e97edeec2382ff73bfcf3ed5b6fd911c8d610551aaf92c92111d95a3919e20974ac27f3ceabe6aa3be7b6bceab0080f7ad9ee3d48bdfa7e44f6c71845c4e744726f1069324c519188d7ea3607d466ffd25b2d65a4ae1023929087e959eb8277eb495fa4dbbd1fa2", "29490db87ba6b3a46c55524e398000d7f3d50c11aad2b9e3d033e503fa279f77d2a2fca9c8bd026a006ecc4c913dd3fa519594784c9eb43a9e3f862c3014cc1f01284545004d3733e63b6832607685b329988f26dc394bf17d2d4355e5e4622f86a4a2179b48f6e3a2eb391c343364a6040a384e70babdfb557d23fbf08730f9e8894f28b6c43a8fee397bdb39555c9e1cb389388776f72ac3c88656e4f36ff032c6324d68949bd2608313651eb6662095d40ed72a89dc85b420168c1c299f78ef8601609c1a5a29625545794b89a01e13cbaa339c05f7504bd45b79239d8f0ed106450918fc0be03205e414a58c734cc9fa134e6d7af2e106f25861511c6bb1510f1a4a493bacbad33bea4f41c3d8d28488a87d8fc\nresult = valid\nsalt = 1aa93ccbc92e29d7016f71e7f806bae2027f62c4\nsize = 5100\n\n# tcId = 26\n# invalid output size\nikm = 7727bdfb91621dcd4ca5e8cea6b4e2eb\ninfo = f3fecf4736e28862\nokm = \nresult = invalid\nsalt = 96b2e11fe817e1e40fba8aa5083cd490482b2abe\nsize = 5101\nflags = SizeTooLarge\n\n# tcId = 27\n# output collision for different salts\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = bfe5a1669df67ed5638007f620875759af8c0242535a263cd4d17ee9bd9219d2\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 28\n# output collision for different salts\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = bfe5a1669df67ed5638007f620875759af8c0242535a263cd4d17ee9bd9219d2\nresult = valid\nsalt = 0000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 29\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = ef793d5a62169cc1911fe5dac7ddb3ce07404e8299296f7c139442b721a75ef4\nresult = valid\nsalt = 329f445e7de8a156cf26a0208dbb028d9de6ef76b8de67ca634f4a5a732138a1bd436a7b345d7a0314c7ed0a00b0d34ecad2cb8bd141e2ecc1c77e237094d55154\nsize = 32\n\n# tcId = 30\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = ef793d5a62169cc1911fe5dac7ddb3ce07404e8299296f7c139442b721a75ef4\nresult = valid\nsalt = ff881c9fd53adc0535d68f4690bbbd4f4990c7c1\nsize = 32\n\n# tcId = 31\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 2a031029e1b02289917618b7e0dcaf0226f84ff1a5770896c92e42cbe6d27d00\nresult = valid\nsalt = e69dcaad55fb0536\nsize = 32\n\n# tcId = 32\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 2a031029e1b02289917618b7e0dcaf0226f84ff1a5770896c92e42cbe6d27d00\nresult = valid\nsalt = e69dcaad55fb05360000000000000000\nsize = 32\n\n# tcId = 33\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 2a031029e1b02289917618b7e0dcaf0226f84ff1a5770896c92e42cbe6d27d00\nresult = valid\nsalt = e69dcaad55fb053600000000000000000000000000000000\nsize = 32\n\n# tcId = 34\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 2a031029e1b02289917618b7e0dcaf0226f84ff1a5770896c92e42cbe6d27d00\nresult = valid\nsalt = e69dcaad55fb0536000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 35\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 2a031029e1b02289917618b7e0dcaf0226f84ff1a5770896c92e42cbe6d27d00\nresult = valid\nsalt = e69dcaad55fb05360000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 36\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 2a031029e1b02289917618b7e0dcaf0226f84ff1a5770896c92e42cbe6d27d00\nresult = valid\nsalt = e69dcaad55fb053600000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 37\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 2a031029e1b02289917618b7e0dcaf0226f84ff1a5770896c92e42cbe6d27d00\nresult = valid\nsalt = e69dcaad55fb0536000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n[keySize = 160]\n\n# tcId = 38\nikm = e2865d6bbc1abf6a815067edc4ee7aa33c290d5a\ninfo = \nokm = 1c9f5d2c19e47feddf19af9bbf38ed6aab1f872b\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 39\nikm = 8c177ab5f40e9c57203883562f01f174070ccd97\ninfo = \nokm = 07d4aa3e002dad7940089482d10e80b349da499fe7d9530b27a8dc5c61940bb44aa703fba340d21c1fec\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 40\nikm = e842a4fc1a147cf2f87de9bd5a42fce6457496f7\ninfo = \nokm = 5f426da341127db39b959cd77c13cfa4a7a29259f105f2b181067492a54ba259020a5289b0fff0ffe0b9f72606bb980c929a1aa37255d3cec453bdfb26a3ffe0\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 41\nikm = 5b870ee1bb97ee83f67fa7335b4a0f9dadc80d12\ninfo = 0a0dfb2a6e051441678788bdec04cc1b63ebe1f4\nokm = 31aa4cff955a0bc5884e1653087f9d97e284775c\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 42\nikm = 58ea7ab33acff514ec08f41e59c17a3c66c1ceef\ninfo = 1cf9e25bd70c5546ea7a79eaf5d90cacf754c4f0\nokm = 16ec1734868565540efe2967cae02d8be26a86abe83edcb4b599f08e016b25b925660179b9dcbf0bf07b\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 43\nikm = e8d20934b9d320458f4854e2442e2f0fa092f461\ninfo = 4425999958aa3cc629300c25ab15be8cea7a4277\nokm = ad2bdb5383dc53258ca2051b26c53adc156b31acaf61ecef7d0ecfa14b81b0f53b1c98ce28ee804e964f8b106312f429670287ddcf5bbb67bcbf96ac66c242b5\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 44\nikm = dc9e488c684dbf0ac8ff1eefaa0666d413d258f0\ninfo = \nokm = 65580e5feab001f31405f812d87c7d8bcc187c78\nresult = valid\nsalt = 9afa7df500d7a17af1f44422d25a62bf\nsize = 20\n\n# tcId = 45\nikm = 34b85c341a04cbade472b3f7dee4de4d1954bf70\ninfo = \nokm = e02ff2640000391f1fcb3d0fcec40150b20c5af7c3a0c4965281e1761539d48555cddb2cc35efd27ff86\nresult = valid\nsalt = b066b42acea664350a8448f8e064225f\nsize = 42\n\n# tcId = 46\nikm = 44cc641e09f7d5642f7b6007ca5a1c0813319666\ninfo = \nokm = 81c3016fe63b57cfcb13ad04eea7e2f5ab1402dc489c20824271c5a95ac1cb9b0809d76d5d7437e4ac74a36c1693d964d37d10064649fe9003503197456dc4d2\nresult = valid\nsalt = 69c0dde6c8e5bd40553a5981fad6ad87\nsize = 64\n\n# tcId = 47\nikm = 88a8880cc2b73e73b3b6ca1d4902caf2128732c3\ninfo = 6dc723df3d26f704067afb2fb6d95a66516d089c\nokm = 69614a2ebf14d74188e830ee5623c0e0366ea994\nresult = valid\nsalt = 0579f690ed32e57a26701a9f6877f243\nsize = 20\n\n# tcId = 48\nikm = 8408668b9d671121b8c7d31113f045c0d7c020fe\ninfo = b4451b0f1a217db703582881e86d8044d5f2e092\nokm = 6a6ee276cb321c6cf237360a7b30faab9060653ecad213a3aee36735e29164c6fc929b7f206ea4fc2f1c\nresult = valid\nsalt = 679b30e6930a8ea3f076e317b9595d5e\nsize = 42\n\n# tcId = 49\nikm = e6715cc4ee13c4d999d8f8f500243c321f70b0be\ninfo = ef17c9227a5ca654fbdb35dd00dd6dc77b6321de\nokm = 1532fbae2e75d854c96a0b172cbe40b91d36143a93bd1b68d26be85f19de06f585d8670190380dd0690f5fd168cd0c64bcbd99b8dcb9fda9eb345af917f75739\nresult = valid\nsalt = ecfaca2ea3301a992b4de081d9d3a4cc\nsize = 64\n\n# tcId = 50\nikm = 9a6b88f3f68f5a8e79903b51dcd733abaece1a41\ninfo = \nokm = 0b45a0d3ee381c5c1a33556af0a050c81a336f9d\nresult = valid\nsalt = 0226df3d66ee3abb275eb39c8ec3d3e12e9b87b67f85c552accc4279ec17\nsize = 20\n\n# tcId = 51\nikm = 0b9eaec88b2940a4754e83272cbf47fb6f86aaa1\ninfo = \nokm = 844af69cb0e4dbd1a768f69c4a5d2b280b645e48f11cf9f9dfd5930dacae47f5a8a0a58cda227747638f\nresult = valid\nsalt = c1616497d49246400ba68242b635c67515d2528ee1c3b71b318b631f9bef\nsize = 42\n\n# tcId = 52\nikm = c4717276e7c7f794c4ee333b2f7a2ab244be9e8c\ninfo = \nokm = e1e9d8dabba5f8bf934c933170abf15edfa69a19e32666503b00694a1952c38c16703c79ee41d76cc6219533876d162727fa738b949b74b8d04a880d7e917dba\nresult = valid\nsalt = af4c63e5b554063e83e37bf730ffa401c696088ccc4f133a8695ffcbf2a9\nsize = 64\n\n# tcId = 53\nikm = 5e43a900ee0d432c5fe6fc81db8d5f81a54e39df\ninfo = 32460280e60910b10abee2e9f80a3dab48acbc59\nokm = 113ea70eb9eb87624ca2956afa5d5acdb4a5eabd", @@ -7857,9 +8167,9 @@ static const char *kData265[] = { "00cdd0299971ac4f1cdfc6af7de2a3f131c868714a24b3c0aff8162951852aa97a29cee9eb7558bd2f384065130abc4de58ee5b268aab6b2380d885e5c98d22138fdf77bff9fe2370eff28f22a4515341d9c226a6dded964086f3bcb5342acee09451c6257eeb434b61b8d93b0850d49e2d229fbd0bb84ba4efa3fc1c2d59a2e725a528fcdb44d43a0e1f5572d52b3f526581af49043d939e9857713d04ba2a96139e007b974b2971f71a0bbdfa76998f250802eecce869bee6e4bd3e4523c3b5d32a61c9f9aa1e0bc215484a4b11bc81ba3b2562ea49d08f63b46edfdcdcb7a496f414d80f853547ae94d8654de4729774b08dfe3acb94ec5ee2a940efef53bb76d2517ffe1acc915ea5c17652ec6651d3f7734cb8b7aa176c5f2e601dc42f0700357b592d4bc72c25e42ad9897ef1fb43bec5be51b7225e57b87732383d0274e1a9594d4cc22451611ec5de786e31a69fdb3c5aa4a857e02539f1655c542c84a32f40dffc4ae8d83ae8c8f7e54dfcc4362fb4c8134a9137836f0ea40b329bb7040eacb31e7b362010fda9fabfa96622db22316c3b297e26d2b867bdee55f600e97d338cd5a2969f38a76f968d9b76aabc392bf1089c0f99dad174b6f8b8e9897bbb0680e9fb08b39f1b9d618b81e1295b546c3ddf7b8b807950199d9fb48a3c1754d97344908e8a4831477132cc7e8525a5fbbe15608619dd369ace1f9c73c67224358f4ce07dbb3cde19df4bac7bc706f18df54c17c3a8284610ae25c00913edbaf2c9fc8ef582ea3ba5c50b7d15a93acc50f632ce4473009da29a6e1852e752a15e6b7c56f5a0dfe65e5cdd00edd363469dcb9866397646722c6ae0f48502dc75bf8381225a17f3533be924a0864f60ba58341a75b1a83404d1d4380f0565c3d55533e858d4c9f427c712965c015fe91589d43a4ef4e95f4bcff164ba8752ed83cb57a7b460d2c9796177433588f800fcd518c5e99baf8ed652e61c1fb4d47a882174e4a0d2d03078b2316327799adb88d07270fc7c9d7919b6be24bbbe2ee7999ca00eae4c64c19e217196c8df9a45d7a9009f11444340eac6454db20263873c86d884d466dd75ffa5315a693fca6ed2af24452a48c9a5e36c1cd7408f5e6a8fbc41e3653986e0f355a05288c51d1f911c494540e9eb164e2cf270d4d07c334a47fdd3d870a2fe69516f8b4ddbc3c0f21179c3ba3863d2851ee1ff0f336a23add665ddbbf7a8168c6e04119eaf4944b132df977cfc826cb53768c275848a498fb3c68a352c1d0a51701bdbe7194beb546c6f9cca343a7e3d86aa74cae125b926dcb5037bf7b3ac08e15c024b1997c4d01f95fc1a941027f8efc6b8abf34c6b25aed0b4052c0bf15aa56812d90c7a43856d9134dc1140788dd2300c555a0ede7be750bea34dd3f8ccbdba143abf975879f9e374b6d417fba64e22b5c848189173a9f972176ca68e2591e4be093e51ba3775443101767db9be8dd92953ce03d91a9f1bb3ebf0a3bdc434be0197f527da23927d8ab4ce0613e363fb7acafa3f2b11ad4c1f12a1990c431bf2553d936d98822a1c893a41663b0ccae8541da379d14895584151c57605c76390b1c91dbc752acae6ad571ab4d0a47e2a4db7b88fedf2081e1c0bb0cf5f60230129711586fa5c99fd34cc3816fcc30644195c4bb72fe8578d4007f7cc16ede32eaf34ce19084782080e2815f25d117dd1d911601fb77bc0e471189fd0a4bbe01b1aa979f052e0431dae1abd9dc8e2cb7d575c5749fdd82f247f1686c24677f8d3a358b6860632d26af38f2d4c91457372c11acde9b447fa1a598b5ec1a3ac0babdbd4eb737f3c4c2f2e15b5d8df3b8d6e6b70a3cd365b57349e6ac60b8759bb09bbef1855c1468d10a777a2babb7e77313a321f2169761108d5e8f11c51c1314fe8fd59aea60551c402c4102d08f4d0c54e4a8ad7303905e42bae5b1ceb09119324e274b63c32215eedf7dc51e4f1ed19f013c5a23c8a2f0841eafbe1ae2ea5f4cf20719010a448f154397b6c65be5867508cf112f9f2ff236024c8254d921c8de4e4c39d91e847e7aef69a2747f75edde39e3adc4c653f20d5742606baaf985260b955c2b6e1947b469927a61d866f797e73fadb2821ffe03c109219078d8c24c852188e3352fe257ca3e371043470575f1b180d0747550d9ae8b55b29b06be0cdfe6955a1acba316f2e0d9fc4a99d7725d022fc240e3956bd66425dd2c844b4824cb5307af5d6d77ee97590ecd849650cab25567bdfef5661d35966a16ad5fea8ca1dad42e19bb6b2b28b06e24dcd8bb240e065ea027ca71ee286e9b8c7a4100f1f08391dfdc0ea125e35c2867aa55f21af22a5ff685ef1bc3a023453bdd381b3cc0a1f0470f0e198c8e9ece8d469479b73f3eced657dabb588b95f82de80b58a924e41146274cdd7b32aaf7c2c1f600f30353cbd88bd236c37619ec4c54f44dad9eb79b5e0f5900dedf93b43e33b94a0bbd24bcf17aa7986287232717a8ccf085ba6826f7224d4a35fbee2592b32ad48cbb30961d2412c65f6d6385107267b7595568d7d76fc8cf4ec6fb06f1c38d29357511454a28ef029da6b9007f3d6a400c381f4b0bd99c5f8371d97a7adcf122bc8d1b51f914016fc96f1ebf1628d62d0c1ff93bc16b960f93d782c66d73023685a881acef65f40e5891132e723697082b8a9bc48eaa170e5935a801914c175906b0e7a54f199907562bc2a3d919bc41b4b4fc43872aceceb494f186fd2510925d082c623a3f17f80d1d421710b91035dcfdfdb912b84270e07c9be495e8713ff51df5eda5a030e51516917605e24d29f2238d27b2a823443e8c7659c62ee4d69d3094e95e630e27e2c0c913d200e23fdfb947f7d2d2037284680aac2d002adb79848e99ca1ee7d5c40e190a3ef5f05c59eeadc97449300b0f41943dd70f3ca2f59a218a093cc036cad4f8f3bf1d488f402d5c5abf5ac9fee0263f6d44fae0d5c157ac12b78032604b618bd66a2dbec688b28a0c301ae294b1e2fffaf0f4f92030aaf4154f91baa6d1167ace84be70da0cb2c38c1f1e8a0e8a7474f3f3e508c1fc9d4a431e2f1f45d142f8cc22af65ac656b94109905ca95d33e809586d3b409ca68269bda1368ecd8e9b6e2d95327aa491b6bc162a9f6c4e8162809b0efd7bee9e4c915534083d5cb9ff27bfaa40f7cfacd1c301c740254ab4421aaeb4fdf8d6f46014a3c3ea23256ac64fb2fc95cfb99688a8788759d1dc35992d455b3ecc4a4c99ebab223d774270d7ebefa8545203cefd49bb21397b6d68664dad1b3461a5162fced871d8fc2160d57834356ec88841f89da475fa7acebcc2321f04c6cb56268b42087b52191d43bc82c29c44d451d6798758b43040617a6024b5750577ee3679f43e08a893da6c330b54cbcb6a3c6eee525d4740ad5cca9c7dd75c3d1b24801961f7a517386fb0ed2b181521ab207574fd4edfa09597afd0fe976d2edc428ea28ba9a5c96162bf891e6b50e345855bd6852252959586aaeb63c1aa0c07c422d70e5655507c090ee47e98c2b7cecfa6a4d11210ee8f22a28806b5f5dce15f139385dcccd2838a7c6c71740b80a7f0239706fde8be06cb1e8e352c176b8bb564b5cc98eec6d4a554a4d7bca07b5f72ca8131fa8479d706d367d32d1652c6f8ec4b9cd374153acdf29bdedd5d385e3b581a3142092b28cc3c8d89c3470cf56ceb9109d70d5a0d98ebe4e9432143d6ccd58fcde6a1f0eaa845175dca5ff85dcfa5448bae273be2dd5354654763de0f2fb0974164f001b42d1156ede02fce2ca912355d59e510ddef52589210506439138c230298e2c7f1b76a4ca7dbcffda66fa2a52e146dcca8ecc0cfae3340fccd033e83fb85cd3ceb30ff33a8bfaac4e9d3c28bd0a1ab89d6582c3c9cc6894e299e71551e4f394ffd81b0a67985a65c9c9850ce869635da0c769bb283bf27c1c2b70fac3b7f0ec6773351753c7527cab97a982722b422eb950b41b9e03e025c17c8dc73852490bc83e82ae956b2c546aa0b1c9a06dd9d4c60c3702753385f67df61422906f5a63cc5ff225efdfd57d9e33acc917b68661c8145e2db301777659692925511534e701ad80c46479e5808aeb1f90ed45526ccf995255555d57f987e2e56bfb04233aad88790207b67b7675db58cc00f7594bfe5089671617991124b72ad32d46b304a87c2a5074c581421652bd730808ebb039e74cdd6dfd1f8dcbb55f978458d1b161780fbbbfa52e3a2288653210c0ba901b385dd7d886cb2db18407b37e3c455b2773bc670436ff702af2bd9d87dce441ed7083231763ca76fb07389de0be1029f29c0fc873fc2c986ffb21724c6c1a746ec03729a0d9cdcf123129c550b8e1500968110c363bdf0fd68df0e3a60146790b216447f82b17718c3ceff4df0ee840f42712f9bf4b898ac9e703afd5869309d89604f2c6fdae0c8ca348e1a980303c522d89949dda61e02982814708630324e6362839f3d28b80adf42a0772c52b532ebb2636c8a006a39b0d384cdabcfab075e66116fdd9ad6c6af17cc812d4b691708f671d9a63244dd833e2c3a90aadfd68ddc03fa290663f0fc7445aee617dca94941f94ca0c6638d99b92f0ed7ebbe5fb6f1c02273751094d8aaee32772365cd8efdb5a85290bb356c4c787dd8bbb9a97ae562c27941bc68cd38f314080c89e27fc1bd7f45bca8412149be8260eec24928f77fc7a722a42e5050ab5d135985c56cb68abd5b7ec49c56ec519c63373a1c8d6dee785671e3c104ca6f5c740c7ca3bb1fd8cce68a097c540fa40f9a4f2b21a7853554556596665881038d4d4530862931aca8cd76e412bf5d2ef66b0d67ba991c4c676d95e2a8d6a4ba8b9dc70e165c697227e59323c96f28f81d79db8ac1fb80de77f13358a2255b9a8c56eeb7a4e504de72e71d31cc6e4b4166313035bb6a44dd80a369c9106e9baf69f5963f92b2bc7c16d39e0e8b88611c36523a7635bf8172b995892bf67bf2f5b4d971508f1a1a8d8d1bbfc46f87f2bc50ef30a8922a354764c66e9daa50194e3ee90ad0b59072fa84b1c2e36f93446c9b920f543ddbb0485f18191cd1aba0387d7793aa3b6e62dc49e3bb5b7ec1cc06840fb671dfb8e6c185ae1e0c62a142d244863689a5772eb78c6356122498bc088e53f0c6895cdb1cf0f646ac6db2d8efdeea5f7ff23c91901c4d496e34550695667a7db538e2a4982d34e8256f18be3d493fa2cbe46c1f04b0474328f4eb417ba155cf3d926107845f0a734488bfc5c9c3b0b236750bcbe0bed15b7a5d219a7c2df95d3505a4f116fa6dafa8b746f4d1fdb1a502d9a45849cf2cad4dbe24eae0b65cf4f38ee38078997a5ade9ccf13fe11206362300fff7628603a4707c1c2fd5eb883f5321e8882c1dcfa1867877447ed9b6813031b95ab9603ced93317b265f70229bfd702da85e3ec5df6d2b9dc2958fb9a0f99e501efd391e22c0e198eec87bd2db850058e6f42b53d888cf8c5fb400ecf6e804554fe2b8e7a3a9d9db7a7704c3a2c82643816d8362c909720a693b665d3eb\nresult = valid\nsalt = bd5cafafd71f517269ce6300208db7593c558639\nsize = 5100\n\n# tcId = 95\n# invalid output size\nikm = ac106eababe3b8fcdfe44ed3f332695aa50833d5d110632b4215a86f9f4ceebb\ninfo = 9824a5f84186c0ea\nokm = \nresult = invalid\nsalt = aac161c03b3d3cf4d94072a48fd6ca3619510888\nsize = 5101\nflags = SizeTooLarge\n\n# tcId = 96\n# output collision for ", "different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 06e27d970948bb30a9d453d843ab332ae2231dfdffbc4815788695c38368fb03\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 97\n# output collision for different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 06e27d970948bb30a9d453d843ab332ae2231dfdffbc4815788695c38368fb03\nresult = valid\nsalt = 0000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 98\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = e86ef68c222337607de55e6bef35d9df3563cfd8754a5a231a5fb110f1ed1b40\nresult = valid\nsalt = 0102c651e047fed9c217bcf915520532d44999534c1e7e7c87311093d7a3681aff3e2d335b3c6139b9fc66dcfe35573b36a329a550c4cd20bfe2a90dfea50167ff\nsize = 32\n\n# tcId = 99\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = e86ef68c222337607de55e6bef35d9df3563cfd8754a5a231a5fb110f1ed1b40\nresult = valid\nsalt = ce4fbf306d1eecef0d60543d9726b5b3d3d5d8d2\nsize = 32\n\n# tcId = 100\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 87cf7342816d0b08822263edae8567b453a251373e2f3ce338114b6738cdd1b4\nresult = valid\nsalt = cd920e8dbf19ed66\nsize = 32\n\n# tcId = 101\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 87cf7342816d0b08822263edae8567b453a251373e2f3ce338114b6738cdd1b4\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000\nsize = 32\n\n# tcId = 102\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 87cf7342816d0b08822263edae8567b453a251373e2f3ce338114b6738cdd1b4\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000\nsize = 32\n\n# tcId = 103\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 87cf7342816d0b08822263edae8567b453a251373e2f3ce338114b6738cdd1b4\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 104\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 87cf7342816d0b08822263edae8567b453a251373e2f3ce338114b6738cdd1b4\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 105\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 87cf7342816d0b08822263edae8567b453a251373e2f3ce338114b6738cdd1b4\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 106\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 87cf7342816d0b08822263edae8567b453a251373e2f3ce338114b6738cdd1b4\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n", }; -static const size_t kLen266 = 80000; +static const size_t kLen271 = 80000; -static const char *kData266[] = { +static const char *kData271[] = { "# Imported from Wycheproof's hkdf_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HKDF-SHA-256\n# Generator version: 0.8rc17\n\n[keySize = 176]\n\n# tcId = 1\n# RFC 5869\nikm = 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b\ninfo = f0f1f2f3f4f5f6f7f8f9\nokm = 3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865\nresult = valid\nsalt = 000102030405060708090a0b0c\nsize = 42\n\n# tcId = 2\n# RFC 5869\nikm = 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b\ninfo = \nokm = 8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n[keySize = 640]\n\n# tcId = 3\n# RFC 5869\nikm = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f\ninfo = b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nokm = b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87\nresult = valid\nsalt = 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf\nsize = 82\n\n[keySize = 128]\n\n# tcId = 4\nikm = 60ab7f45b0ad534683b3a6c020d4f775\ninfo = \nokm = ae5dbce80bbab5bca5b3c6d3b7e6548fb2c23b2f\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 5\nikm = e3db76e02278cbd2adbcb4555803da11\ninfo = \nokm = 207ebfa8798c6d8d5260d797fdb9c9969173442186d9e932b18fb589fee2fd00ca4ab49d0402aba2c1b0\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 6\nikm = d4dcb92a769f57c8bab8a420ee0aa351\ninfo = \nokm = d875a072bb18fd7717ceaac8829178884b8e51a926849210caf7f42574109f218596e27b92041155d2012917c20e09539bf52016d78aac0b53a51d9cc21e3b15\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 7\nikm = 2d43e54bf0c94c9cbff4300f4aa69ab8\ninfo = d674da3bb47d5c7e38b501e5251d9348af601c44\nokm = 3d36966f29c0561b4e50f9325c7c98292b6d28bc\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 8\nikm = 4055536896c406d5fe14a6cd6b999bff\ninfo = 2094768a8816f7df070d6e08b7ad93755dc9024b\nokm = b10173a66a08fffa6cf7c1057744eba73cbbde83a3d8674bb0bc1a46d80792a9d5a0d2ca72510e02a6e4\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 9\nikm = 5b01b2da3166f217cdd68de8af60078f\ninfo = 6884cfa7ffe8f27bf4ebc6e46a7e01488c79243a\nokm = 7a8e83577d8aeb830d772d8e42fbd105e54ee3f38da12388030580c8b8935f4a2be01c5092f28d5b1bb757bec0a527250eba2549e770d21224e1cdaa5bb76a98\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 10\nikm = 467403c2ec02a235bf730ff37e8d8ff3\ninfo = \nokm = 4b1c4f54615e31f713f2364bf194d3f14f68e704\nresult = valid\nsalt = 41f0f173d307d40436c25856cf559f96\nsize = 20\n\n# tcId = 11\nikm = 3352f942aa93071da6d39cc5ed8dc460\ninfo = \nokm = a6823c9940138becba3f9baac05ec119a2715a018f51f4c0ce2add465db8635a6453efdf7c161c2d172a\nresult = valid\nsalt = 57a0db708b25a51afc4271803aa35204\nsize = 42\n\n# tcId = 12\nikm = 08867e76311126089356623ba5381e73\ninfo = \nokm = ce632c353328d59ec519023d08652a97252f2c8f3f29104237fe35261c82eed7e0df52514a157a00fd82d7e46ebf9acc23512e1cda7d5b65b92f692965943e8d\nresult = valid\nsalt = 0c164c443edcdfaedb1ab150f047951f\nsize = 64\n\n# tcId = 13\nikm = c55c41d69d2424a520414e3662aa7303\ninfo = 3fdf20538063b76901d61bbf9b72b0c18749e00e\nokm = 7fce7c021469c8e016f7a9eee111ad71df7c4fdf\nresult = valid\nsalt = fea9bfc92b74337e43a201a2dc199e27\nsize = 20\n\n# tcId = 14\nikm = 5d3db20e8238a90b62a600fa57fdb318\ninfo = 2bc5f39032b6fc87da69ba8711ce735b169646fd\nokm = d3e6274c91a88821367b1853b852a96f3ec12ed466769fdb88e14622165d5878cd736fecc93b9e8633e0\nresult = valid\nsalt = 1d6f3b38a1e607b5e6bcd4af1800a9d3\nsize = 42\n\n# tcId = 15\nikm = 8677dc79233ef3480777c4c601ef4f0b\ninfo = a38f634d947819a9bfa792174b42baa20c9fce15\nokm = 17c2b03dc593fe9bb94f5b9bf646ff15749e82cd4bf569f7806275c241c83e1fe0615663a628ecfd7c1b700215a450f9f42529800424c4707d54488150299f11\nresult = valid\nsalt = ad88db718244e2cb60e35f874d7ad81f\nsize = 64\n\n# tcId = 16\nikm = 0f602703d37943e0253bed3da331aff4\ninfo = \nokm = ff23874bcf844f88f2fb57c0c3a4e3a7a498965c\nresult = valid\nsalt = ebdc8510499f69b2e188daab77cd819cccb95f276f46e6b2be11cbe72700\nsize = 20\n\n# tcId = 17\nikm = 9fe65737574c5c7aa67646adf8230ba8\ninfo = \nokm = 19d4b9e3bf37ca1affeb953ac3a593882b2dd0002409be198718b376253f1e8522af9f276152739e2d5c\nresult = valid\nsalt = 73a34648c152443586236abcb46a090ce55ef6c7f282ffce6342d694650a\nsize = 42\n\n# tcId = 18\nikm = e8f2b1c3e6a6c3d5ee0a20dd47aafa78\ninfo = \nokm = d623e645a84b5ed4a210b9457aad79c9c3171f306bdb8bc9b60496a99e640cdef1cfb56ee336d216aa20122ee33b91c7aac3e5e7d56d87dbed3a446cd5224208\nresult = valid\nsalt = 3f5e162de91e0782cd189f3b7778cdc2ce6bfe9d3fe841cd3c70475d7b3c\nsize = 64\n\n# tcId = 19\nikm = a679521cdb56aafc5a4b76db0431a4dd\ninfo = 44ec41ab4f4e64f4a36e5e30c9f0dc1d77ae4974\nokm = b75be6d7fdb9a7c58514c81e6596973058e8198e\nresult = valid\nsalt = 123033b1ddaead83a4b9cfef8a660bd8e00fde01e67c35656c6d7607d456\nsize = 20\n\n# tcId = 20\nikm = 49bf155ca102026f2a217ea1bc9843ac\ninfo = 851bda4faa8f7add2a3cbf0acf9c2786f8f955b2\nokm = afcec12e5ba6481f144f6e6bfeab0a054b30f2710aeedea90d4be9c790c8e05e601fcb208afafc6cb991\nresult = valid\nsalt = 76776e3b4d75f8f43dce4bded71f3b1ae6bcb012d9c0d59f78248b9427b8\nsize = 42\n\n# tcId = 21\nikm = 6cf725e939e8824d4392233eeac75d30\ninfo = 495425d9727fee2e2b7e78899868c1c3e7735e1d\nokm = e70ba99926c4edd98bf001ed3c8a1557987449a6fbe58360e96c2d1a3c1f2eac7806fa406ec64c4dc2a743129f97ca449380ff495462d1b1858af83d40fb31ff\nresult = valid\nsalt = 1e72f24b05a91a0093f34306ffced79e7003055b0833c6d0f27a4f33a1bd\nsize = 64\n\n# tcId = 22\nikm = a319ff7b5ba9b14ac72b681cecf0f742\ninfo = \nokm = 31e7b971f165eb923b499460c94937477fd61cc4e96c27fa2abb552accceef42aa3a35637bce32d996e9\nresult = valid\nsalt = d7e3bc6daed343ce77ef793e15a8246e4bfcbaf83d2ac956d0661d1df7262b2e7311623dfe4152caddbfda8fa8ed7a82656ec00b72c5adf7c9d388e5b3bc8d24\nsize = 42\n\n# tcId = 23\nikm = 34bae5a158c1678aa76a744417a70d7a\ninfo = 87ec30aa53acfc3d09ccc1d57d654fdbce403cd4\nokm = b80f7525a93a3f630465033ac53f1ace76caf7dcae3bc7374ffdc6d1be60179e1adb9aa8def2d47823e8\nresult = valid\nsalt = 1532075f363e061133780ac959bf653c7687d181b9431215d6f62dd2f1ec3019d61c50fa82c70ae25e624c849a276b0c57d7c02a4d753fe84a1a6621e9a5ef01\nsize = 42\n\n# tcId = 24\n# maximal output size\nikm = 195b2a73c91f69140910664d79ee7f3c\ninfo = 5b3afef0895fee8a\nokm = ba560d02f6661eb3d0bf3a17438343b231d2757e4c8ac2d0f57de4ae267f3b3a40919c4dde2ad7d11ff636e25e4fdc21db7c2b2f20fa1ce7bd6acd2d534f1f660e0487703adde77a0f72c8e3f2b9202c94527e4bb9adf53a0b897a09abc0dddb7f94e6d6ac00d8eb5233f0b88921c8f4b97a1ebd8dfc32ac5cd089bf07720bec56f85dafe527cdbbeffeb168c8a7867fe35ff6fb57a969189d3c17b230db2d213a6860b5cb678fdc913aef231601d131588f021799625c080013a3547cdca49599368b5a483d830fe182bf4639bf830bdba4e301643c20c09434766dc554d7d4effc7165933ae420b136623ca1314383661593fe5aedddabdb44f77afa633149c832fbefd1c884d2717d61156a1916698ecb30aa2f8a43ef7238eb11e4cb1acc7e98a83f66eb8eb4387a7d6cd26249338054d9e5328d97506ecf06e9bf8923756f2f586dd8f17faf515c75d140f502fd162eb074c250b0c4430b659ee49c0dc2176d60ae2e4818b7089c1ba58cf1d80075ac3446fc8f14ad8a9fe26fc677c398bcafb401dd84755e7e550d20684650ca590376b140942410173149fbd9cbe4781bf81b3a3a2e04130e0b392d747f16aa54b323a8dada9fc690e05f75d9108d49ea10015c90505c2d500ceee985354b28fb74bf5f45c3c412ef281c372f4ee2f8df2ddbe889a9cd541326cc2528728159019bdd4925dce7d8cb6c6672298e24cc8760e8a33a5ec9dfe84725dbaba05a8215b30f0ea143d53706d99351f31fc6632f6a28b57baad13bb6768cf52bafd820ad0b2949b789bb4e4d449c8cf6e6c1543c2882bc225f94f70ca6d25855019f29f9d3ce5746ae88a12b70aca25cc16c7ad19769d63ad0de5e0207c994709755c2816febbdc3c381bcd90c5252139bfe45dc86d0ccafa5d437cb3c2c0cb74c59a1f67a206fb0aafc7282aafc7efc5de534c76425c699dff283cd10d7313f342ff79dca06a12dd44f168fe857d41658015e74f40c76f6765b57bc5827082b6ca55e57221428e812b74df3ff82d18678b619f1ac727751fc4b27f1dfcff461ad30bb17e2774288ec3e337a7c8438877f8006d8024c7a62a02d5ba2f1eb302396de86bccff719dfa721abc5be82373a5e62b69f2fd02cef4cde6e66e98c891221f0de23b6223470d34e357efac653c943ae7ce487", "18a549ce85a0c5f53b966e0ae1495efafa6f70bfd73e915b67cf9439029153161459ed07c7d3fd54cd66a89d366ff9a86f5595044060b612f2ec65e9f2216e30489545c706d79d23abc7ca26aa486480047a92ac01164c3b97fbf253b722c4545ab83741ff483d8ad28b54c072f0ea72119f2807ef71994d18e9015a6cd813c525ea838d3a437640e4f99273369cde21dd580b8e08865603ca87d9d28e1244e93e560f3fe4ce219b55f8f6753e87e59dbf51d89cd4b8aea2f45cfc1be2863b108920a5c380fc1f07b174c72a3ce791bf0799089a571a6dbc0adc4ea668fd8f6e4a8b5a92363d00f92ece0ccbffdebde591779210b34b329f943c426788661b58d637a37094744d7ff967bb27a9d4fbbf00f3a1c2c49e50c14b55e56224d98dbe7bc1e7612d1fe956f048f831ce663b85778478a8572a63ffbfc04e9db2bb307c655707548e48f2e91b86cedb00877e9fd7fea3f07341f4ac342ed020e2ac993209f7a721ae8ca4b9273790f571de9f9d22ab89572fc9a9743efe5a6accc921be33327ca7fe3d3b1f980919f2f62a58475a570ac9f08d39c6e0f9599bb8ebc2101cd9f60da8331dab6dfa3e65a6fecd113f8d28fb87d3750a7019527b388f5eac13b49640554f031e240f52e202e55938b80471560437be12619e1bbf98f3ae350f5a03722e811693285b4774505fc36ea01a97faa35ecc30fcfa8eab0fbf661293bf79877014c68cf582aad70e5c212b18588a6ef3d75202bc4a02f86c62f99a97fb0ffd980f2d7f2fbe7f1eec22c6bbbe2685b4c1693b0429a5069ee387cef60bf0cbf2fd81263085dfb22f404e09284f075d782dc3cdbc24cf242e6a4c7ef6dd65f0269c5a9b49baa1bc0526cd72ee78db3621fa294ee8b7d6cb15f0edf6d9e62b743f25c38f317d100b706baebcffc11396d5400af4657a267dedd3bcfd96527f03be8d733195c0c47d7dcc97e8c8f639c7c972338dc88861f023b5621b6b55549b47aac9630b19884b072aa58fe1a975e86fbf8482821147597914b28ea5a84fcaff9d8ad021282df1a06feae1d813f4094680c6709d63a3907e98a67a5c7a9232e7d4c01bceda04bec5a5dd8e29753af74521d01e346c29955bde6112e131948582695980b71a777e2c42c37c0cec771b1de9f737cfe5301b487e9bfcf35d2750940de6fbaaf00b9897e3fa99f6c5c79e5d27acd055212e0dea3162b27e2b1a400eabf4e8b78077381fe8bba84c8732f469972a0122b8009138ea77592f68717d66bb8ffb3e9bcf4f77a2b472a393f5c6d7758afa9f6adb1a939da7164c22fda33f290bb15fa17ffb87b445931248c9a67edc3e116bbb75fc9439ba7b451e06a589c1cf506a04c2d1c889ed5b9af2002171055580b9555b58ce083a9f5b9f05d440e7fda4eb9a62df33ce6ecd2399ad2725f1eda7568e313f3dfd85d240924ac987d9273f14259170ab30d7363929e3f22dd2e3976b5592e73ba3b4a2f58c4f490affca796ada73db38bdf8b56211038b22242dac86910c132496e9cd1b7fe0e6daeef0c44e31df2c7424d5a8cca7fd812b5b90fe1566e7558e22c35080a73a12c0057e024c60bbf849c9bf20b5acebf48acb4d513ebe9436fa6c6f2c5334504162e6a0e4297c814408483ef02a21b9bdcddb91e73809c36ba0728659eca89fc978f1f154fbdc84638e00620b505965be1b41dd7e2022fe2100cd5aaea63c2e6f1fe80b9188da7655c8c1457ec3f2b02a839260b8cd39d63a6734064ac59251a167e6d25d9d0384c9b526c10b6b258e40496fdd46c85c3ef2b1e4ba91f5c27ba1624c9135535fb922b43970cf7e9b357f2057137cb3df1375a6e6df71e392f2efd6c5ea6e256a0f7b766c30931d89b09dda788e082f9cd4cb8c9c82734d83b817de5877f3ddf0ca4f5392aebf9e70eb9f5c35ad4c40b26b0c485fe8f46638d3994011f2883a70f898fcdf84edf7f3e95309f2e3b166b0bba18f385cdf1d2e530632422c81766fe9e841c205e5e792b49b572415a5f7f5024aaee6e99c65f63df7967d8b3c1976a6c275c7e5668cfb6378bff333477bf599bdd6fc8a969287f796717f6713b375a9262e06fab02684da3ec5d533de48505e41b766540aea29ec73d7c563f2c5d131c1c758aa932a6e5bb039e725e3958b4f1556ea6e2307e2cf3f111421e4acb596aaf6d83a483b11a5c8dd44ae3ef5e3ad813495b54a5fb2688ec3d22d8109297a87fe891e9f67439f0ea7199d3bfd41ab61531414a4f858d0af8338753257934c05c25dc4618b90829c3a7714e732e4dbca579169bed379a46dbb638a7fdac8838d3b4f0769b75880b142568ce9d55e930db5f4d158262b1dc953ccdb6e0fddfee14f042fbfddc88d64b46b7ac177d26c6b7c20341b53a3f31b5c53e9b824b9d5d5d0f7917295409fb497b7ee9450b9d242b009792c8bcf25413c45ac27532d8f36fccac3922fd6a19d1868b558dafa58680e3add12a3fdbd1cdc92f2aa899ad36eae392ce29fbe66af974361a12495a041b5ffb82843750544c2a3a0e817f55877538ab75524b09ff702d04d694b9f7d4d6716a9e461249c298d2d4dd28ce99c64492477d9aa1b1294bd51b45eab201f4c42636bd2dcfa38f509ab8b49ae4e88ab4ef628491b77f073a4a128f452a7cbe3d82d26ba2d354af17cd6bf77164269da782261cf6daecb328573cf975b4d6e8a984839b1f3e6ec81c5c692e32f78f158c1f472ceceb9b448cb8676b56c7d6bde38fb9a37170492a469f936113127e01a8c3801630d56576654552504860b7677d4e49e021640003c093ba2efa8f4a9e2e3286327d7a84527af378029f4306ef188f02204bad184f9a3c977e9a270892b9c0af614373798f5a089c21db136fe3d078586875e6bda63ac7c25859b83a3d2979374eceb99039baee563ac5c6fc54e7b9d818f6d834fb240b3393e56f465ac497a95ea743d6f48a8e34f9c83915678d6dd580aaf103fa8c87ccc667bc66b8a6964d7705f739828272e4e342d495ce5b10aae5a17c68a86d28086ef7d7cc363fb73f763e6b72975f35b3e0e70d38a90d30577d86099de0d2f4570f852b52876c86a2589c199ef5b22485babf4d655a975e22c9c21db0d01dc32a3bd5b808a7434f3025e04a1559f9b1c8e74d928dade07d4fb01e37691077d4f2b9006c15e8122607a3c3176177ba1e6a8238632f705f3f25693c9a9aabee45b9296fe3b2d9333caca0935553f0fc2a57535bf459066442a922de1b96fdd69d5ff57a051eabb0f4781a46f122d393d21fb0d1856d40f6805546fe1d0778f8ee5d1d41d274f6c9edcd0a1d96bf7360389319a21aa2d116fb6ebc44397f1bf3f7d8382cd16f24ec49fa0285f293ee7c3f6b560097b60eada98927584c1bbf30ff9432e6e377d02876390dea6ef7661d3c3d3a7b481883c2e49714238dce4aa8c428f7fb4a5f601782d8b8f719ad89c2ce74333dbd61c7262a5145f5f7b42d3d642e0c393a6d5a2d4633053a4a2e109d70feea7b020b2691c28b5844bd361a442ee779b836100f8b08bd78fa9cf0baf07722570228f12971bf927e31c61365faef3d1e7692f1e48a579dcf3d5b64ad28fb0a7cdc483dc654ce82ceb69ede7f6a960d6c9fab900164aada8a0f600792caab44bd0b6dd8692d6060f90a751625968413dbe4d1d1a2ef3bbff2a21566e4cb41c3abf7006f6d81eebd0f9afcb4de724d16bb0720553523b33654ec6a0fef8af2d49a171dafad2e3751eb21637e4743375107925cb8e9c15d4f6aabcafa3a9659ee3dce219b6cb3e5205b836bbd75fa21baa00e7885613a241c2de00d0cb0b5de2b944f97b0aa758eb708872f7fb4110b852a27286092d31d2f49ec5104212068051f6ee4576f55e23447aef5172673e6268b977156f5bd5b23640bd0915d2e4313557af0ec6d4d0bf98cc881a4f7b5ccbcb77b74ae60c2e4b1c2c32e3738bde4ba6ff854f7d3912df0e28dd30b36f4008430166aff51725cc973c8c69115a219f677390b37ef442257d46d23fd3963904402cb93c6b6c6dad972478a0d8b79670f6f69f9e0cd8d819d8d1d45c38440cc749cf09ab90434d7b57fb1e66af9d09d38c3961a35cb526023b0469c948199aef59a8e1341ab2a73e42b9f05b8ce78c6ede74e9a355ffa0b81aad630bbbe9ef325be7149acb62b02ec7f0dc72b7ac576daa5b19993fb4a52ecc154935beef88abdfd133d51e9953aaa23669e423467a2be1bd35c09c5959f5861a7f9455fdbd25e4a792907b33f6db7f8ee11e5f36aa14a277785b0af2b8ac49700fcbda5aa55c47a24dfc8081003343d55973615b3783037abde6ae0bb35f4175f01b7ff3054b64ee4eb18cd50e0b879b6d41ccbda2638a33ebc23fbac7a09ccf92e19a0bd62725e555079ab1a3f4362ff43b363cae144034f33366f108f284c63ad8d4a798a540c6687823dab864832dbf299e7065594520156842659efad38e48464561bd7d5259af3e590c63cd43ecb95720cefc5b28c3d6b1c7128334db2c112991addaa5b91ac37f06debcd89852c6e8438024c5b4c10049b03169172ef733b1aadb6edf7add5477fc26a48ed428cf0d5cd336e646d17af02642837371913c7286d71aec82d4854617dd362bafc2d582e87bec7afc57ef3c81876e201ea87603b208031583c78876c3f9eaa3fd8995fe691d5ab476a91223c16ebebdc299b23eefd6e93174624021510a7fa1ee3c6cbc268c969f99eafd01f0f86e0146f9fa963c287b704d6fb11ee0b7d465cfc73d1d4c915cf2de87e94e2de498749cb2e0ee9e3cbba76b1a4b9e9e363b7f35088e99be1880fd235a06a614c3e82ceed6e27a72657a4d4f860b336f090adbfc99d4a80754cc747bf4151ab57358b6b4ca5233b17a2b2d1dfe8ef9ae0a92bc4304653b95578aeb5457ca665323292c441f91b6e237cf3a0b2cbee2f1ef8f356c2b42f4d2dee26729b89ddb7747145fd5e4344a82e4a3cedee77506ff79115f00aaa4ee1ecac6999a543d745cc0977340a2502ba6d32607ffbeb3c693a7910907da1a28f6818e6bf83fc72628cda0ec80947c5fda35ec61c3a87c89f1cba548d4a7bf0b911b35b187179d1c74ce03f14682eccf253933bc0b2bc3d4e3a8cc57ab254511075ccb4cf162cc11d36da79125e31f6ae4e758cc62afd8238b28ab8d4020006fc90854eb729edc885179b2f011b0f6d1be61a47e7e9e52110fd8eba49443bb3ec68617d4584c6e6cdfb6bf85db554d777ad8d7fb1ce7fedd3b873d8788a0103a9bf9dad1b07498eb026f455793bde9210c11b173c1304ec6bb44ec007451be41206009f8c723e9e05b3add083abbcd15ef7026af358880a3e9e66ee891c8c36d8133c13c0afb903869980c30d1df0ec297d0f5434fb3d66ffde872f3d97a723d1a30cc297a2e49b7a4590617e6a3c355cd654c9f5ffc5145ff1484b7f87a1e3ace368dca920a593580520438463900d1f079f27ebf68b48dc0fc39f7d7301b3224b760bb1170571135c82fbf1e1d653719c40a726b02262e846494e83a606a47283f002739faa870593c9e57270e36fa7ef18f490f6ada2f93319a4876b3f481880bc762d7cecd0569641b0705914090185793262c8bb5bbd669c86947bdc3b908a8f8abd9f0175dcdea4c952e2255576adf472da19d077e2988b0d5ce05a1aa5dc5c02646ecc7d5fe0a4bdf233f66cbb761e43e5c4c0863ea9e2876c9f846f6bd1b9b84d2521eb8ca0e3be5a9fcbb76713c69d29181acc9f97d73986f95e140d92b901fbe7399aa191d027c438688", "8ed49665ff8e2843745a065809990aa0c4fcccf24220fdf1e27aa789e334446e13a5788a5e9de3e575f582df12dd3e520fed30cb04d9349424b71587f581939ecfbeb7b48744cfd30e551ddce85a62b903afb33d999a5a1fdc40215a0cc01812b41a2a52ecd4def95ee47345d90865e8f4269f16214e97a7e1df0b4de2e20359a89f88ab906ae05430a211cfa0a33658fa65af3742c1541be4d3a6582fc4b20e42d9e818a62125a7d148966624cd65ebb5528c8c01dca81d20381d832add767a0126203fe9a2837d0479727876673b611afc9a7f5e87294c00deed48fae0fac6506aadda0f7e999a877f527a61d47e440c5f19c8ce12a8b09dcdcf4ea96b8af6fa7e83caecb2ca03fa35a454c419e1121f23cae9d24e53ba352c701211f3138c413d431937ed83da75aebe0acbb8ec9837e857be00a9cff2ca3eb13f045f347f7c745f56df8b73399b1f3d923571a20b5a9a7ebece39e8f379f6df72765272725bea9612e5bcf3cfb6adc56dd05f3249e799cd02adec060b809ca4425e1eef11f7ef2e5721aa37d051c34daa07fab8e729af4b981636083621d7044c13e52c987621a69ca8eac3889776d9c8aa3070aaf563f96ca393d118ce161fb7911b2952b8af451e1bdb717fc70c6e24f3e2f0048e1ca36be23c13d9957d6a021ebb35677f68fa33778ef7524dfb15ae96a296bc393ac5f25261a422e1f7238464d13e3f8726a75d10ad9fb74b480d44c2e9a6bfe0ca0c8d22fbf0f9ad53e9369d0ffecc27b8a0dd1b85cc77b81e701706231c39a045b1bd891a54b0ed1c87b282de40691dee685423f14ad5a6304fc5997482fe0d1351b34136d60b04cab130ab2e7f5721c6e021983dfd3e868cf2dd9f0b180d5218eae554fabe07a62aa7409a93e7e3b3718961106ca3d1ceb606a2e6e93e5d9c05a8d43d34ea1e14cfed1f25074cb7bdc1289f3f7a6ddaf43cc5e7508a964e0a93e26f6711cd234765f7a35c71975ed4e919f4c45cf83ce20076f5238b995a65cb0b402d3690b0a36cd2d164bc7ca986327ec955f49fad0c3f0e94c18638c5473f5b20ba654646d0178e3ba35353a278f32920a75567c7b87991b413db47a164acb93f73339bfe0f72b034c8785de3da8e22a445b5bbc0d13ff3312a13c11f8b5326e8860c136fdbf79da666469da270e0167735941648dfd8fe1b23ce03305bcbc60930906346821ac373a51eedf5c938d3c9f3de9ab43c68a2035068bcd4eb1585c0a696090c25c2825382d8eeb4b75bafd6e5cec3327e80c72b14445aced447bca79ce78d0e1869146c12fb57fc0e27529cfca81bf30b5829f903ac1a36dd560e2ab2ca33c521dadb57c3caae0298a1df936da26a6afe2c9d280f8d9861be48668150385d589ea349cc77c9f67ed448a01b4615decfd902c01ba53df4416736631256afb890af6aff39e47e5cbe59070aed031f20f16e3589d63540904d7ad5709c4830f09c1bbd5b33cd47ff3da3232e11c17d4d9eb02ceb827e092e8e7b7614adab4b3d9aafb45b083f4cb71e25ff7a865541ea185d95d1e80224c732cc5fbe1f2df689fa4ba1753d148d7f6b1846736071d9a4cecc99e96f47f6ff082cef981183d01b08fd14950878d7dc1101770fb3a1565eac3714820c0e058f83b7f85cd38a1ebe3f0fde0734e99efb883c1d08900253963e17333dc90901c56c8fcaf44e4389cc0515ff06bce030367c1301653fee32dbb8ea88c17cc1346aa072723cdf0644ad3d6d5f0608f21131d2fb7d3c994db65f2a615fb21087b4a9e73d81021d1e0316785c96b8236ac14ebcc6efb194a8f05d8120a6fbe19429c27ad8cb8db54e9404d04f94f681791b8d3251c9307cdbcfcc3619111fb10b1daf8de24da449e0e3c6f4f488dbd42c53ef2765a6e5d1a349d13489225ce8eba209ea228ba155648f59c77d5f8856e80e515741aab423e7f3ebe4700aa5c32d30756c4e37d7552f8e63be7a4612a5f1c6ff6c5846bb85611ffe0241200aa188cdd77303db4ad75489afaab6155212a1aea646b50221a9479c0c7ae53579e44c617d20e6cdadb19583835b19c41d230535cb7b4d06fc286554db084dd5b07e6dc7bb798549a68055b86ef86a119e8dbda606e006610f44f6fb62b0c1abfd3c69aece8746ab44f4993048148f4fa6d13399c70a422383be38844c0a1ba4e4b98c0dbfb2be577f62a5669d05ab1aea757959e1c20c691b1924a7fa7ff0c54a8b7388f1f9eb1641771b782a04366ad5799631fc3951ae756d2f54de50a356520be51eb6699a8e224bcf9c223947235da1286824b0feaad9681e68583697da87f55e0402d2baf68251f938930fdd1536cccac63e2ef55d90fbdc91f725846c592dd8b154e19fac278c3df0c90b5032d79ffd12203c626dcfe3091b59624451cdc9811cb5bb61e2894e0c1d5bbd462d2404302dd881109f99cc5b37b3d42ef44e55a8d68eafc143f01ec1a5d48090745f97ff747fe1aa7dabbaaee2d107d73852c38b35ade93c7e7a6cdfd8b3dba80a63626fd0d10adc304ab5c28fdfeecc83f3e04fbb298dff5233f3e7dbac1736c4ae9e80364b06f8bbade5fd619f4655f5f73ae4e978799f725c3c6f9e51528d9842a4c9df7630c857e856dfbe0d7c7753233a16151eae8bb1e018132a28156ccf9d5a085b73d0a3a530ca431a3e705f419091fad1d0dc3e163433f4b5846db6c15214580a533540dc1e14f90cadaa64f662f41377bf35a86310c9bd4ea2a890e672b5a3cc1ab945edaefaf5a7b99f6b664814c728e1ee958bbfd9e810502cacaf5b9671dc8c52982c810d9b737f7210ba7eab97ed95e03dcb75b2b4bd87b19c474a559829deb5f2459d8c25b4518821ac3e9c0294393126efc184fb52cd14e6381a976ba1bb579ca6249ea09d8fc16de82da10413b1251e9a8d85efa079f1afd02dcb8d92876e4d24fcbbe9b134183a28cdab503d18708395c33f94d50d9d4c1d16f2f417fff903f77c6de34e1f506dae723063052645c98217677ade132e466a07a2256f87aa7ad9bc1061cc9482c74717e544c2050b0ea8729bc1a34ce7ecf825b2137a815701fe04c1a3e50fd590521bd26ca7a193a45f864d33e8c7de51b3c686c47074b03d2c442a6882bc03154a61ba68a5ba5a1bc72a5d8c455f0c67371aba5140793aa1a3dc158004bd4da50b70d5a67cf250c665cb897394df202d79cfbb8917827c705a481c9429c7ed6b2cdcc008e6c33132b9173222ad2219b461d69ccbc63a0587bbb550d0e07711c9e4da24a29664be3222c7463661455021fe64027c1d31b052104c3f7a13c8b669aafc16b9558a0431ac7e997884a8a39f92511caf9647cd8dadfeba6ed0ac35813bb9149ac44f1597b00f85786ddd972474d6a572954383fbef702118754ee38b24bcb72ebe91e9ca9a84ad5cd6bac94157bf63ecec1f77bfeb5942430037378e5776d6931af7254590b90b8ccfd3e05f37bddd9dde73bfd7e3b285bcc494964d180a01ceea8f8cef3b7c34e9192f1c89310c1734dbef35fd13d612f699ffdc50e435a07f556f246ede04074b465150fd8f0d9305526d869db0f1b90386e5f775048e6bfe2e826320bdd95ae65061fae55e7a6a427bcf248008bc7d9a05ecb8ef768e24018a3c4063fc2703e650f4080ef663a80525771b147064037eb819c3f00e9b980dc091f9dd8367e79ec2d1c30ca6aa598554af86f347cb95d0f15b0a41423c27e1491a82a29284d5e0721d1ca8b515a2e2f365add9d4c577d7d769585d2e826dacf5e501b25ee58d1ed04e16955213f557b9d774c26fe2c621c0f38d4bc3a2ee4f39fb1738240cdc121c09f9ccb36fb3c839733027152d4db959a4654ed1cb50e35ab6988a551c560b62ed5c19ae6a1d28673ab5a7c10cf4bd956d14016d1d9e063a8c5135b6a4d0d6ad15195c738a9b2fd890e834b0cbb258a10acb46014c08f77458eaae5fbdcf3cc54a404578fbe639ae1a46139a906a94bffd319fd5ee35d1938dc165935bfd453046f5881bb9161ec199a1daac82dadd11df0427afd77c9789c0fa9cbfbf7406aed350f62ef54a54398f013fcbdb5b9ad58a14c024a9e8b390b06229e005fec042a74a3e169d6c54049fd303be7344695942bd50a4689f5a7c31c63e295d38ffc90802844cfa92980b429fe1d2cf4041f3131090b59bcfc7255319ce362d2dd90cf873f87ef01ee1ccbe31a8eb17cfb2660a169375068e2bc4d2a318d964c0d3a514093f77b50f28498e4fed5b90804b649002650720fb0eea7b9da0f92440c8aae5e4017c67475acca73c946425a588d50e5cea5bb5395b8db5cec759503a6e73858dc53e76bb21320a740cec4023195687cf5e82a68a40f8acad2e68df3b8949af88ce071d2db7b389c09ef55b9d7ff4d27d157bb78aa1db6acb793c82cf0c798cd204b48622a5f6af33c80d4d8068c2468c8a1ccc07e44fa27c3ec9d505a3aae1e7508254921905fa29f5c2e232ba2e5380f64603f44ac8acff4ebcdbc53b4ed75a7534bbe9ee9ceed15d9bedeef5398526b31a766364b5952ee2809ee10a58de9e7d04a1f3b729\nresult = valid\nsalt = 45cf5b7711c199f70999902eb755aefe490c86b96cf86ac20d4e67fd87a1c8bf\nsize = 8160\n\n# tcId = 25\n# invalid output size\nikm = febaf0ce3a452bdad48338ae258775db\ninfo = 572d90bc31fc1edd\nokm = \nresult = invalid\nsalt = 701dfbe3f22c13268a04871dbb9711f371bd702b2bb41dba24409578e6481bc1\nsize = 8161\nflags = SizeTooLarge\n\n# tcId = 26\n# output collision for different salts\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = e7f384df2eae32addabd068a758dec84ed7fcfd87a5fcceb37b70c51422d7387\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 27\n# output collision for different salts\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = e7f384df2eae32addabd068a758dec84ed7fcfd87a5fcceb37b70c51422d7387\nresult = valid\nsalt = 0000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 28\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 12fce691378f28f92cb26ae9cc7ec5a34007fc693944ab79b6fc461093a66c4e\nresult = valid\nsalt = 329f445e7de8a156cf26a0208dbb028d9de6ef76b8de67ca634f4a5a732138a1bd436a7b345d7a0314c7ed0a00b0d34ecad2cb8bd141e2ecc1c77e237094d55154\nsize = 32\n\n# tcId = 29\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 12fce691378f28f92cb26ae9cc7ec5a34007fc693944ab79b6fc461093a66c4e\nresult = valid\nsalt = ed16eaa37a3cb51a9ae18e69b1ccb5950ba29ece2e94894ba05715bcc9d926f8\nsize = 32\n\n# tcId = 30\n# a salt shorter than the block size is padded", @@ -7871,9 +8181,9 @@ static const char *kData266[] = { "8e3197751cfc33c0d47e2f32a53440109bc257e171bcdcc2cd92adc8f63eeaab0a9d8111a752d37998ac37e47b1b73abe52036c418b039ca2d7214b010104dcc31ecda77670e49ce591e8c422a87243e7529d1a214a84720328811bba534b64a4a893169322d03b2bff9fdaa6df1ac474bb7ff285f3652d171a460cdde44706e757ee9b9e5957d3503734df518dfa30792b6d916877c61a96bba4f104b409f6e6c378dd331fdf6ad124b2b83b885838cc8ee3092b6b30e752058e821a66b217ccbf651dfc504450e71ec6586e5f17d68e7114a1caa8da5360a5aeee9de512ef24aedfb9b48ca3d218f2800aa0c2b8e9e7cddc99a7efda35d71f11916be2cffcf12be9dca9644a856fc64cccc93940d2ecca09b2ec74af5279a3b33eed028ca439e2aa7ea02d043aaf3bf6f13511ca11162951fb9a638de1bd4925d430a63a02da095bd1439f121de1c619627edef0d652c08e4240509f99a715c51e30c6a95c08705355a64d79df580e24700283bb31692b1d1d558187d13dbf61174585915f5da61f22792572de06a64be18270608e0f4723612ca55d295d99a12751d85a54c153713d8bd3cdd0ec92f5ac910b8d27124192cb6d61479461fac6b4b6f0bff38a67c131e3a01c2eaeb6e88673a2b7d45ae3275a19e4a127a672cd91e5497a55ae90178d8130862a223a4b20b3ef51dcf658d63d26514a22107a18051f7f70a3aa1bc69cd60de295b3ac351552b909605a48a983f6ebcfaa1bc13f75db0f92ac8ee4af89daf8cedbc64cb880ef0f2b4679935f0d1cc60a60c5024a7c16ad27ca9fc21c889387977ea6b497d7c3d5e5c45d1ece8c19cca96c4193a19b36b829334385dfab2bac6158f47eefbeec3b171069f516d0fe68fbabde4009d09735fede9298d59d70791ce0572a48283a0549165f9937f165b91003dbacbedf6341b97115710021c1c32263d0edff55d10410628ff4cb5ce3b010951cc6b16d2756eb14ade18005944f0787c1d3860b750ee1e90d1d7a7bafab9d45e29260e0f228869fb353bdf071ac6fcdc0b87071b20d131cdc8305c5a91352d9ffb376e86cd72ce5973713f1e0a2d2079b133ca8a27ca6594c4631900da68dc067dac381dc16ab4da1cdb1c494f295cdd83adc791644fc6ea04915cbe120bc4f2c0e0a93d81c9cf1ca9c302497068c854d2b26d2d39b08c80efc43ec29f268a21a1c3afe2582e5741d7e7a1f364f0fc1e6a760caf6dbdea461b273b34a501dcb7e323f5f3467949692e2548dd60781e8c98262592f73e158d58d579d7859173bd25624e18c310ea8b2dcc5eabb1581b59131c877b663e55532cfa079fd08b4ebf4e9227152d69677d6e7152cde685feaff986167d5331fe5f8d2b509abaec8d2a8771e310c5aa188daca39170f42002ad8dcffd74477ce628c5d157e6e2323c3d2e768749a4194d41a9f6a204663b9efdde8b65d9739812513374659c5ba2ecb72b29a874c814e9ac1e71c005fbbe2b9bd73b00918118a8d6cccbaf2facb4cfab078aef373fa61a7aba5bed3e4b902f2ac9e5a41672c0b8aa024eae9a3e0c9b2365e2f5d8f4b94aa80425db5e16a414499f27eb4e8103cc1da41f2f25579246e0c32d8bc09f36f1f0591ff8a7acc32b2b16dc36ae4c8eb35ccd330eb9dba0abd1646b685f90cc6564ebfd51b0541050ea10e920051c2c2d720747a0ecc8c59bfead9ed542ffe1ff84c8755a2174e6292077e1bb452d199c75fc65218701a3d65a5acdd252a83df1c39745789cd35b05b041206b6e7e7b8ca46671aace80601dfbb50a9b88d636b6c8bc8318e3fd1015f6aa06a59982104ed7d08065a7d99c52f5e03ee16e0e58ca717a899fc1d329aab6ef3f5c442cabea9c20e61e7518c637a975bfc55f5957700b16e2ee0abaae3ea3a10198d7cb7cfde8d74588c9416896a477945712ba256d458b7a076f7f5750588afffc44f53ff99f77060c6dadf5cd921661f72050af110bed15d92a9853c5190d1cfa0cfbd5d73209f00b9257f9fdfc960b338642b7007b7b449bc9858391a4e090402f4b26b818f4f0e759aa583fccb0a54f1707cc222071e8b571ad78a68a1e37601ae655666a955bc5385084830ed2bff7d48af88ef15c08a59f163670a6d908dbdc464075134ee28a8b91a82a711b0ec8eed5ae747b023f0323ad5db9c1c8e7cd1436260754363f3910a94e240becec54980cd3ae6cf82f7e0d642f91045f722bc1f62866ccda4069718c2ab6f831b9b17e87ab967f58fb50ad011c541b2ece0971eda5bfa563c9d3be13cbb3c9c00b9e0297159049ab1f798fae5d555f1b76dedee3eb174955aa76b960815a9f9d9039c45e23f0b855d1c936adbc44cf79217332bde34937e523c797355f95e1ed5ca1e7ec55df924a92abd8ea4beed019aee23d4c31dc78870c90371d02f8c499bf94d6ebc8dca987a294c705f455637ca13f486d6bdd2cc4f6c6e41576ac70479f63eb74f10bb0ed3e82e26d92399046c5fa2b77720415b25c0d86ebb435d5faa4a53aa7103d035e050aec235e848c1d30ef28f49bc12badf7e1f1e9928614e373ad0f462991f0f2cfe39b7fb10d44d6abd53c506e7b2e728ae537ea2a126dfdb3466e373fd773deacc438d55b06f78b4abd8aab4ab2b694ef7422c177cc358ee977afef5b5d50717d4856c4839e747cf106cf1af079c33e8d946cd20a240fb94efe18f0ac7b1c9ab8be58e891976b7e7693cfb0592901bb56da2918b55da38a3615207720972a028266398ef451666fabe85d79b154c0e8157057847d93c7cd14d9fd2173b0f6b57fd7aaf2fee3eb98f059c7539557679090b842186357e19fabb891957788e34264ae867a83f5c5a1d79cadca44dee4ed6797611e9731da5a98b5b43f6a48a67431fb5b1f28e5edffe36a188cb696b0861194bb809b0f8687d790d0a5ada98ab06f6c1aeed04bc1beb0dbcceeece2e0ff3dcb54615206ec070cd109dd6eb5b4a84eccab44ab4712429eb91c5bd2b22f04ea140c252db8f65c42fcb09ceebb9e1de961a8d9ce1e536a5e040f9999ebf9bd8b38cb3562fa9b52ce8e27877303d542896526d5638f8fce8b69dc0ad08e9b1edbb404d24ba86bc37297a5dc0608557f9c520007078480adff54f8a6f36cba5441d7261f1985ad48d0d12b9172e1a1bd463d102134527099ce0c919d427dc53478fa6d6276e438cf83abc94414a5f73da8cdd206613833c836edf4a5d2dbbc7689a8c1abb9cdef52944d31a65d61f5d5a780db652e55ca89dca7d67b7e920c08e95d7d0252d008194b5392c948e4c00da29c0ab2d6a8d8e71fafb5c25e006a5c60ca27179312c7254e5eb82a9797b50169b21306cadc75a96b51c76f0685ee77b13d1d05985c1fcb8dcdb131f5292b79e076f101228173700800e8cb992e2fb3f06565ea245320b1abcf4461e40e6d01708758aad1c790f7859c47d85ad07ba8e693a056907ef24c37e7b2ed52ae5a36552043dc4cb67139b5bac5cb42d2641dbaa76d16aa1471305d677eca15b2ab5a0c54ac4686afc42e541c2ca6c82b8f2a0e4ca0b84d70822d3c86c3c8344f11cac9a1d9a846dfdd55d3789fc1b48c4382d02eb6d9c1b56d7ab915e10907383770457c13ac1ed8cb37b382043b00b921dad98b35ae0f62664b612032752a11902b4abb2b57f403a8417d58467eb35566fee7508e4efeba70f10fe8eea45aed2c3ed7d1c4124d491a4a609267bbeef11f79dfd8fa009b0053cf07750264a44771d94fd7f59477ba8cc35e98dd58e3b32564449b5477abdc1626352124323a28db2340a3813fed4291d6e1ce3d247cbed072c92b0c02214673a5332cf8df8f533a1d042e63b087c0c6666082a6688bdaf355c28592e933ca0d22b271e3973f8c3e19a73eb247041f0c4888ce1933e64b9353b8991e8e6dcc4bb680a4cda36eadb8684ed368247c079e3ad3c9eca7bf36af7f45ef899345b8fb087d7b9e0d74169b9fa5a25cb01512479c6deddaceca52e56682cc4cdbe1228de2e2fd4e2d960c39dbeadf0a170dfee63c326b4a1ecad2229c8244920331aca9b2aee0e2f8734f8b33044eaf313adc11332a2c9665d11021ed9807b8cb25fd533f36e9aaa71a725de7b51b60d00f1ef156027d7170d3a3ac9f05d7ff28c985322ec94758a93ae09c916f114bced7fbf18f8a87e1e7e0d38a45609c78c3c7f4215de6319be36f4900c2a6a333b680be8997b2e5ebef0dc61c45085ac0e7194070f17d1982ae77ea146fca09f02f4fe51ebc3dee456bac5103a7e9d92c6c3c33fa401e64fd35e4ec598c61a9a3a509383cc8bf206ff3686e16a62e603ced7512249b8d0bdbfc8c8e17610e04313ef99787bb305d7eafaf61c3f4bbd655fece58867d68a49aa0569e1d4c267cf30af3096b9c6974a1e14b88ea41d390540c7b9dbf5f796d23d4fa78493eab7f2d8f9004f7ffdea1545a49e54802468d30bce39995d712645aeddbecbb0cfebff195ab658fe05c04a31c6254858af5d8e57f4098e638f1faf3361d851bc7d19e72d8347c3fd27a16fcb329bbf9130af7120e6b8551fb82466f6a75562c50199017ca29fab28b0a38c1a3787a1b66d5edc9d7937ddc8205a210b5a339170bba3fd387e776fbe0f0dc1f05a339c0ffc8ea6f5ec60a7b8d51154103939fbb09496c79e6a62acfa592654be3067ce0fb5faf4499a7bfbe01f0aada0c03f8bb84de45f09e5a4b54bc6edc14588b705688fef1d0188c8726e69ce8c6cf22b576e96810c586601feed56c7926f4fab1cf71802fd25f8ec4ec5b27a5e163ea7a9562efcdb31cf49d310e073287941335babe8d8b1df469e47ae1dd068fa820453db30c3cfc4f6d5857235bb0951ab5e2efacadaa5381184d0a03eaf9be1bb86f8c7a15f078f0be01ac7adb3b1c455e76d1dd3767592ea6cb12986c48aaa4c20a00c8d11bfa44606f5d8475cc6dab844940f88831955d3686e3d0a659abe6482d560aa2c721525e66baa84ebe53aece8e36252b8d2458b955f55eb3706047683130aee910ff235fe48d2e44c868afaa3fc4641948d5dfbecf3ad74f7acc4457207f7e292ff1355af9fa109c498e2613f13071b229a4ebdc69caf29872b6c98cbd17b60fc797214bad78c987451e46418735bed33551e997e6bc8093941ae3d4a6d6a01c786f689e121e02827fc0303852bdf72f44330ca69ce6cc498cdb68823de53768741dea09be1bd98cceeb7f89cf473ccef1f3e672d32188cc599f37ce5255edc6148e7e2e3428d74f112916709609911f6b7f3569c50b9ae727f3365e1f14238184e9c67d2149c2ac408c6f7d7eae8b3fa763706dbaf0271402d92c639810f59698dc9117ad42e1c19701c1d32f069875838b2d83e5a8c8a064ec82dcd1ed3526e01bc511c41fc09d53856dab28f60107769eb259658d84c50e6739edef6f4df380a74c17db01dd0ac1f5465b3eefcd046a1e52bb54c98e52a22af4497c5b59d667b54d7f11969a547555d573df24946d51887f45fce145982b4f2632007f25f280dd87aec910932fba1f742218895412136ef7041f3d00e88efd80260597434a0fef735d07a3f57939821f13dec8de69fc4bb98f5ea8317ff7f89bf7af215c7875142e6c894c596a24acbb703fd5a4705d37ead919326ad55d19775b5765a7cd60314cb453a96bd8c64f51f19f9144f3f88072260d1a27d758fa670d63cca7b5d1ac750b591f0227fbc250f139e663f42b0e8318ee709f3e2e04015ed16918c57bf108f7a8fa0901c99161734db72e530c4e2f41860b0fd703913b4e1993", "a0fe32e26c2b93fd195aada3b88ae1bb5f40ec7e07bd6bfe95fa1e3cb060a3dab1ca52d87fc955956a25543af410888972e7984eaf94e80faa1b254569c95b0d52badeefd14e4cc14c42ae12adaac72c9eea48cff90ec96d85b37e0225ff9bc82cfea6499ec29d56a61bec24284e885e0021163b14649a050de5a90b5b941aa0ec0891e7d7052d045ef1ca93c47921019b3140b075eb6d99ff5c327f964b5ccb4d3fd4e9985606fa1f2850d1fa5fb1e902049c015d13b128f322fa47ba2552fdc2cabddcc3161b34ae0541945429d7607627b45bd7a808997dc1d5fff59ff3962a300da1dd37296d1cb39425e5fabae502da8d740bdea15101e63b97d896229910241dc438b0937b66a0df0730a966a00df510a54ddf1fbec550093591f891b2cb17934f0380094e096d0448c91bc7d28a5719ec9a8a2f6df5b593a15597a7fc6989eacbb343c928d7fc5e9051299b02b42db3cf3723e92250bb84fda24f61bd5a86e2696f5aa07dd1108fd5862ea54ea307f5a54e7a192f9ed2b214ef65924eed31e07dc3b7ba9a4195b53d446104060f29b26acbd1e36ffae1c0f96d2310ecc1d9ca125f3dc682678a47993bedb9cd91133740d17eca07bc0eb3d8ba18a3eb52f3d6779298045766f33f813212e766f76e48a4b0416b5ee646969659b490da413df61fc3d961b87793676a877123ae7038b3d10fda9fdb2a990097262004b63ae4d992270d53ceb9572f87655f0dc91b78bb4a8ba6047a16ec25fab31c06ac7a2dca432d4b7ae82b1acfa3ee0910af0f7717ea57f98d3330bbbfd0ce475815e85340be8f3d1d713b0d7c437cd5a04c5e511c6d55314d61274e8354c37b8c54b3cc613e9bc97ce393fb2f55873105ba127fca0716bdd399905948fe42b76e7ce9a3f6e91abeb51c346952241edd6edb9c6873f8ed5ac470ec6f69e75d42b88a643b9e10c7515b93cd66cf65a636f5f6157001c4082d53c5876ace30248dd982f035e6c4122a7a5d9d299c7774e55449af162b7a7a33394742817ffd6c4b5aad1e62c7319c1e6724d6fd0c8c2cecbacd2a7eefe17c1cb0b87945f3a19a3cda8cad0935fe7cf6211bd71b54463ce9e5a9616a5ec60bc5c85060ec0a6e63d0c5750d2bd36f6042db66accf596724bbff5d200e3286ca26b744aaad6288cde5540c8d2e99e6b682d19baf0bd70582c572d0271f259b6260ceb5bb831207992c5b20c8bd37067e48062c309236bc08cae43ccb0fe28dd0e1d05a910c5bdf7e255e056b06cf36d9e384e76c8cc42827083a300be06d63e2f17dc39415597fa647c502fe45cdecea40cdf6a5a133ebc8beb2303bd6a628f6c796d71ba2a5aaa4f0105\nresult = valid\nsalt = 90983ed74912c6173d0f7cf8164b525361b89bda04d085341a057bde9083b5af\nsize = 8160\n\n# tcId = 94\n# invalid output size\nikm = 2b1017f28a19841832f576bfb3108db78a1e6f2009d49d25aade75d403ded34f\ninfo = e4978d1c18687176\nokm = \nresult = invalid\nsalt = 41535a35ec11384df15a0a24a65f067591b446ac4514f7d981724db4900a6106\nsize = 8161\nflags = SizeTooLarge\n\n# tcId = 95\n# output collision for different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 2d0d642aea95ee9892fb87ac392b06aeaead1735c3468fff85c4d65fa62d4a06\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 96\n# output collision for different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 2d0d642aea95ee9892fb87ac392b06aeaead1735c3468fff85c4d65fa62d4a06\nresult = valid\nsalt = 0000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 97\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 99dfa94cc0a5e1c313ffc5b3e664149bfe9c85afa7f4d8cff61b7b4fe4b9515a\nresult = valid\nsalt = 0102c651e047fed9c217bcf915520532d44999534c1e7e7c87311093d7a3681aff3e2d335b3c6139b9fc66dcfe35573b36a329a550c4cd20bfe2a90dfea50167ff\nsize = 32\n\n# tcId = 98\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 99dfa94cc0a5e1c313ffc5b3e664149bfe9c85afa7f4d8cff61b7b4fe4b9515a\nresult = valid\nsalt = 4031634ed8a9a6152058b921eee93908e7277f79263e73976967278317c2b885\nsize = 32\n\n# tcId = 99\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 64f72009dd00e4ca7a63f4b9f92dddf6dd074b5cb3e0fa753d47748dc42f0824\nresult = valid\nsalt = cd920e8dbf19ed66\nsize = 32\n\n# tcId = 100\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 64f72009dd00e4ca7a63f4b9f92dddf6dd074b5cb3e0fa753d47748dc42f0824\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000\nsize = 32\n\n# tcId = 101\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 64f72009dd00e4ca7a63f4b9f92dddf6dd074b5cb3e0fa753d47748dc42f0824\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000\nsize = 32\n\n# tcId = 102\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 64f72009dd00e4ca7a63f4b9f92dddf6dd074b5cb3e0fa753d47748dc42f0824\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 103\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 64f72009dd00e4ca7a63f4b9f92dddf6dd074b5cb3e0fa753d47748dc42f0824\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 104\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 64f72009dd00e4ca7a63f4b9f92dddf6dd074b5cb3e0fa753d47748dc42f0824\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 105\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 64f72009dd00e4ca7a63f4b9f92dddf6dd074b5cb3e0fa753d47748dc42f0824\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n", }; -static const size_t kLen267 = 104065; +static const size_t kLen272 = 104065; -static const char *kData267[] = { +static const char *kData272[] = { "# Imported from Wycheproof's hkdf_sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HKDF-SHA-384\n# Generator version: 0.8rc17\n\n[keySize = 128]\n\n# tcId = 1\nikm = 60ab7f45b0ad534683b3a6c020d4f775\ninfo = \nokm = 3f8b0e4a7b2bff01a26a18f1e07c0218897a324e\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 2\nikm = e3db76e02278cbd2adbcb4555803da11\ninfo = \nokm = 54d872ee6079718738b96cad7573bdd667aef80a43344ccdd2488eb2e1d3c33b9e291faf89609af32365\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 3\nikm = d4dcb92a769f57c8bab8a420ee0aa351\ninfo = \nokm = 8998abf032b4fbb29e431f0bf1544e19590ef4fc99e013db8d6ce0dc085660dd3f2432b5f9cdcc44cb6ce0053e7eb43c0375ac7efba148ece8688e637a5759f6\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 4\nikm = 2d43e54bf0c94c9cbff4300f4aa69ab8\ninfo = d674da3bb47d5c7e38b501e5251d9348af601c44\nokm = 658e6132e5279439568a617274fc788dccc2bacf\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 5\nikm = 4055536896c406d5fe14a6cd6b999bff\ninfo = 2094768a8816f7df070d6e08b7ad93755dc9024b\nokm = 14a650a903d54e0de9962f5462deb135071cd1e3051ecacd65d378b6181b41e1e1ab3b5d2143b710c728\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 6\nikm = 5b01b2da3166f217cdd68de8af60078f\ninfo = 6884cfa7ffe8f27bf4ebc6e46a7e01488c79243a\nokm = 7bf6c7c72fa9bf184f9a2e13077a0e1afb9d976a5574fb7ec819d8bafb9b10f962e6fa8bc6a844ee0b609eee34aaaa025065a7e3a7fe4678a005640f7dc286c2\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 7\nikm = 467403c2ec02a235bf730ff37e8d8ff3\ninfo = \nokm = 55169d60bedd7ab2399d830b1da06f69f94e4b0c\nresult = valid\nsalt = 41f0f173d307d40436c25856cf559f96\nsize = 20\n\n# tcId = 8\nikm = 3352f942aa93071da6d39cc5ed8dc460\ninfo = \nokm = 260a775477eb6b32fbeb4e6825464a47ac8484a92296a3a3d51b0821b346deadf57f9c82e589ee369fe6\nresult = valid\nsalt = 57a0db708b25a51afc4271803aa35204\nsize = 42\n\n# tcId = 9\nikm = 08867e76311126089356623ba5381e73\ninfo = \nokm = 59debea3637c46394e2fb2790ebf8760de4986f36a6b142305bb62d1466dd56fa201c96814a2e5846acdf141733ccc54df9e6ccbaebf84c4f40e21201e180b12\nresult = valid\nsalt = 0c164c443edcdfaedb1ab150f047951f\nsize = 64\n\n# tcId = 10\nikm = c55c41d69d2424a520414e3662aa7303\ninfo = 3fdf20538063b76901d61bbf9b72b0c18749e00e\nokm = 25ffbc81bc7b1c2dc1cf98020f55d256a31ce89f\nresult = valid\nsalt = fea9bfc92b74337e43a201a2dc199e27\nsize = 20\n\n# tcId = 11\nikm = 5d3db20e8238a90b62a600fa57fdb318\ninfo = 2bc5f39032b6fc87da69ba8711ce735b169646fd\nokm = 6724e716f6a953aab112b61e29d921fec0f8e806841d5ccd3aa567574b502904d04ae707d244187fec52\nresult = valid\nsalt = 1d6f3b38a1e607b5e6bcd4af1800a9d3\nsize = 42\n\n# tcId = 12\nikm = 8677dc79233ef3480777c4c601ef4f0b\ninfo = a38f634d947819a9bfa792174b42baa20c9fce15\nokm = 758546362a070c0f13cbfbf1756e8f29b7819fb903c7ed4f97a56be3c8f81e8c37aef5c0f8e5d2b17eb1aa02ec04c33f546cb2f3d193e930a9f89ec9ce3a82b5\nresult = valid\nsalt = ad88db718244e2cb60e35f874d7ad81f\nsize = 64\n\n# tcId = 13\nikm = 0f602703d37943e0253bed3da331aff4\ninfo = \nokm = 25b54be713ec3eabde9f8d25745672d1e6386c07\nresult = valid\nsalt = ebdc8510499f69b2e188daab77cd819cccb95f276f46e6b2be11cbe72700\nsize = 20\n\n# tcId = 14\nikm = 9fe65737574c5c7aa67646adf8230ba8\ninfo = \nokm = 24e3486d28a6574270b32541651cccbb93f0418905e628ec1274263681b943114f742b9b81db0f86385d\nresult = valid\nsalt = 73a34648c152443586236abcb46a090ce55ef6c7f282ffce6342d694650a\nsize = 42\n\n# tcId = 15\nikm = e8f2b1c3e6a6c3d5ee0a20dd47aafa78\ninfo = \nokm = 167928954f92eed2e1c82496e57cf091d9c96aa6d4c01ea0b4275f9f17ceed820d90287cea90ac8297f892c219885243a67429829bfc86ca8eabda4295236252\nresult = valid\nsalt = 3f5e162de91e0782cd189f3b7778cdc2ce6bfe9d3fe841cd3c70475d7b3c\nsize = 64\n\n# tcId = 16\nikm = a679521cdb56aafc5a4b76db0431a4dd\ninfo = 44ec41ab4f4e64f4a36e5e30c9f0dc1d77ae4974\nokm = 72f15cece4bc7704a841eb5047f04756f86ec549\nresult = valid\nsalt = 123033b1ddaead83a4b9cfef8a660bd8e00fde01e67c35656c6d7607d456\nsize = 20\n\n# tcId = 17\nikm = 49bf155ca102026f2a217ea1bc9843ac\ninfo = 851bda4faa8f7add2a3cbf0acf9c2786f8f955b2\nokm = f693a3253389435899adac72d3ff59c240c65bf282f373cea7a9ee00864d5b4f39b2000f7eb49af16fda\nresult = valid\nsalt = 76776e3b4d75f8f43dce4bded71f3b1ae6bcb012d9c0d59f78248b9427b8\nsize = 42\n\n# tcId = 18\nikm = 6cf725e939e8824d4392233eeac75d30\ninfo = 495425d9727fee2e2b7e78899868c1c3e7735e1d\nokm = e13a7490f842b6e5be206e6d5ce69b2a8e2cba5525715283f22b021d2fbc2aec59d0144088581058f0fb2f551c6d62bfbd8a15d2706e23e10f3bf7277fff337f\nresult = valid\nsalt = 1e72f24b05a91a0093f34306ffced79e7003055b0833c6d0f27a4f33a1bd\nsize = 64\n\n# tcId = 19\nikm = a319ff7b5ba9b14ac72b681cecf0f742\ninfo = \nokm = 83b3d9f22cb5765c16dcca24e6ce6875b180ec9253bb3950666c52e3711f3b9200d2a995aa548bc6bba2\nresult = valid\nsalt = d7e3bc6daed343ce77ef793e15a8246e4bfcbaf83d2ac956d0661d1df7262b2e7311623dfe4152caddbfda8fa8ed7a82656ec00b72c5adf7c9d388e5b3bc8d24\nsize = 42\n\n# tcId = 20\nikm = 34bae5a158c1678aa76a744417a70d7a\ninfo = 87ec30aa53acfc3d09ccc1d57d654fdbce403cd4\nokm = 9413c6e1b27f829fb82252b5ac5e14a54503e5f433fc8182a6b556bd7b8e04ac34b0d6006950d5917132\nresult = valid\nsalt = 1532075f363e061133780ac959bf653c7687d181b9431215d6f62dd2f1ec3019d61c50fa82c70ae25e624c849a276b0c57d7c02a4d753fe84a1a6621e9a5ef01\nsize = 42\n\n# tcId = 21\n# maximal output size\nikm = b8a3fec3c020e028a2a9512ad3acb688\ninfo = 006a7b5529648b31\nokm = d21bf9e7a8685d4c052b391b472767d436a0335ce2315a9e44d5b183da2f06fb0ac31733fe0cb0c1b47f1652d16b4ca84a5c05e4fc9432a840426d146cdf17924c62d3e1901cd3f5cbb0aaa55d46e0d3d23fd86f82a2bcf3181a548cef4d848960ec65518ae2230474d6177a29381e6537eedc2b2728db2573ee182afc5d72cd65ba04ed613f245f3ac401de5e4b30018040b8b1f253eb57a2128c2c0e99ab68dab4583f5a1ee7d0a1d16e9f00afb5f63a1e98268f8c66db5d49ddff7528dfe71f792a93623e355d0860d65344eee9eba04e739627874829c2cc469f27d467822a72a5dafbea14fea2aca2c521aa17985c07a8457b18a1965ce824bc886525c439bf48c36e957e567edd26ee015c01e01cf3ae463f8efdf12dd0d102d95310da2849b8b0bb0849e8b1b41c515708299c7fb645c8f5c86e165e14ccdd9f3ac4766e8ca74eec97f7632a75543d4a93818fcd2b3201feddc19eafe19ed596b76aa3a8492edc52e990549f91967aad94536e8234afb862a60c92267e029bf90e07315db87e56ce4fe7a857edd4869c44b4f410f62b7ddcd31bdad3c1d6016edff774ea7e17c1cb3b39ba918ef0d961725ebe407b6c89b06a9f012d8fa55abb1b84e277991d8b2089a7e228d326eb0c24632e4e35289a14cf7fa1f036de44ee56c0444bbe7d84873597fd82dd6b717488ba3086d57c76783e88cb0992944c66f8b87132eb9908c5dfcf30600feca06ac52d28af218bc5df00fdf4b8fe3fc3947e3ee24a68d8f7c96517337df46283adbad468daaefd334ee2b101692651cf5c8c1c60c2b204a111707afa2ff0520727ac222807629e65f8425c925eddd4a301ad247499f6640f9ae9818644cc94ce4b088e37ce728c48e42f82201b9b27c7b0e918c09b3dcf6484d6794ba27f10374f618c4ec49791a3918977a13099e53bb8fe4fdee599016e7fc91f849692ba97e722c90fa6b4fe54e2bdf4699857fafef364fda90767692818a40cd83cfa42e5c12b56f7d83c4a8653434ec7e5e9a13cb46019bdd215c106425ad51418a6258014a62a449287edbd879063d8db019de0980d0ee30c9463c50860c7a2c390974c09c74e634b0543212e99f6db9bc104e14fb7eb52c4d98c5df24808c59baeaa01bcec03dd110d0ca6529e437e2994dadd8a48af91734b638acfe6c8d216b5d1ee48143a0b24c51f4e24ab2687be88233d10bb974906d46ac8e08dee1191fe7455075c167a743290c261362051c28fc441737d92de5ebc763cb52bd905cd3cf115dfd3ee89f0051e31159965e285887fee7fbc529ece2d350985d13bd16abe379ac5f9a89a99b768d4f0353e2d52bc8636c1dcb05bed53e958937de69636e34d5f46ca5371bb0f38e2fd718a6bec6784076efefeb08c3184bc92e18a9fb7042910d1305b560b9c59223db160e2959f061cb0c9a0acb11f479d4e77c6d98d5ca73149bd19875daaf06341b86227a93e09765877c0d7d0e74337f9cce38d59f0c4c9fa202d1c48e9c398064d5f9fe802f634b094f47dc44cd041086b728ef57103162df6d62208c3b60f750a4bcc2ab461424fc88107cfd545518aab77b42fccbebc7bf3da92e4a8c2a1eeca8d7052ce8c94ba6393f66be9b758cacf37b7c87ae41e48f9d2016fcac2305d6e15256d4bf7d19d6129582eaf7237af07463aceb51edd7c56bbaae7a54af6678256bbd5ad3bbb328d0506e451855281c5b380f63c1bce87b370132570ca98e4e330c1ad12831771ecfeb6773eaa44880bc5dc633452160ac8388b9eddbd02fbad325e0dbd66cf20298cba81f3263a402c5e6d5d57d4ee5fe391de78d2103067fd889d870a36e7df6441e466262b759d3e2c051f7c850e8484b6fb837239e8d11570d095a76241817fbd518ac44bf1bdeea004f8496a252726de49f36b0dc69c0a5d01daf2723140922ddec55519d49391f9a34b7c1a5e00d094c0ba8af27bd3b2ae1de2d6ae15b23e49bf65483104ac62172c8f2e9ca109c59649d0318e5c38cdd659779c598c23620151783d521f7ca021cb910f195", "e36d55bd963c25167cdb3bffe3642bde8e184eff7905affe418f80379393cd7ca78586764a80be777dc9d9cbe0840a4219c83459745f9cae786d26c1edc74f5fad27113fb84e8854c76e1fb02b1998253d365cb7aa682104765ea1f020b0aef0d3cd2378c037e5d64ab2dafd8a23beb5ac5fae3341be1c6a9c6053a3d857a2d74d56a7bafe341bd5bf7779bd7bbd1991a949850fc25ef0f2e012772ea0d2cb7e9292fe2658c6424ce786d7b7aaafe415adaf9ed7ac5e5ac8e24218bf9e629dc93d22d398a7872b9a0477ae98df9fb22e042d475f96d349029dbe108632d4d3b56dd89f352dfc703e2f25fba97da49a079133f1e0c0c729bf80b02edad76bb036a9ce1c841e5202d59cf63149cb3b81a68df64589fba8b1dc7f4fdab3cc8c4b5ac9712d7c9c41a6d5e0efebc2a9ad6310d30087395dd74b61aef03cb4facfd59d5d50d8c04c5e79518823f9824a94e0ec06b7157e48916d551bb5a6831ec44cae0cc8dabba3ae1b6c03391f3b5ce45861902a8e777fea9a5729cd16eefff724636284dea34605f53d98010fd888f469475a6a98b20c8ad8fc07466276e461b9821ea55cf3c42e208fc56c610f70368ff331e3dfdffbecc26e489f70b0a3e995fbdeec6b8fc87e19d3ac6f9036dddab7e8ffc38f58446f75fcb2cc4f7e90a721533de151a61c67346dcc63e15fe1a4ef1a98d1cbb25cd7b24703045fdfcffbb1249ebd3c1e52399d6c24838d7bd5b668807a4310b447c167cd3d3c13697f35225bb284339149bdd4618656b2a09712a812b2586c3492bc07a4c2f8fbe39861cf8d36dad815edc9cdc97dc2fe4b24b0fb3c2513e3504bcdb1dacf2692c98a6f90ff77fc5348d4acc44ee4524506bc176257b434e8584a483c4c734cefbb7457b4761e1dd2dafa10eba4a031e1f0f644e210e5bcfb7a72e2e14577c972a78b1a275f338145e2b7d80851013b784811a91c19c71bbb9df88ccc2c1380699f0d88d203800574a0830632e4401880c547c6bab52d2235638a7222662e166307779d2528c3dc5436508e25544d1025ac3dfb627781e8fc7bfa67738b63a86bdd9f1f089f30a71cb7a79dda35340ac1a2dec129cab38dbde6cd5dcf9d2da3a88f9c2cf65b4a1aba02ca213ba596af1a2f323a47ab6a07f0e3057c6d635b2f5ed1bc2f4f6ece8eac348202cf1c6d9f9c8738044ca5166e371dac0f305fbf1b5ef2536cedda250a4f209ab01c714882244b3c1ab3c0a0e5c07d6b928dbc52c9b23362266ab8a25e2ade5e06c3d645dd557630fabe57733c7543f7453e002da4eb1844899740d95ebe604dbb03e883d9f668b4974282ed491ba183c5d8cb2867788f24eed7d67f4b6c235262cf71d52763fb7688d3d84d92424b0b23468908e95ae82de41a2615cb009aa7e5f18c889125f1167d60aa24c3fd9e2e087c6b99d29733abd06c81e5a728faa0a945a2ac8029d58d7782f03aea0e185dbcca12e0564fd163427ebc2bf46bc71fa3564bc9556546ca2cf1e8ac1720d8955caadd08a6530c98d7df7ac14b07f7959d0edc4ac31e6d58d793be3c6ceb370868cb1ee8b57b74860576398fa5c7bc8d23e673745e7ecb1754dc2c873d6ea61057adb9b91dc4ca1ae1fa69a93e8caebd8a647915a75db4935e040e609e3cbd1e382a433b7a990488094dc53a91104c9c28fac9c74568e5a9e4d37df0a44f750fba7dd45b17c142057f16361ac750fbccd56fe43ccc548c9c97ed9a190e14be1bc2a039a671175ae625bd4a0a7a9f6ff27d75a022a5a0e5bea17eb6976631117ad44beeff05360580b8aa87d8a6c65b7f4b51d53c20d9ccf9008eee95cddc90032325598f0c671810edc80c9de9a74cb32de95b940507773347a17fea02f85cd2461e2e76e0f58315a7393489b9d26440283d89ac0d4f8e853e35790aaabf8dc26981bccb4b85c36393db621c26c99d1ccb072c8f250924fd0411136c5e2f9e79ccf450e785de248b75427dc6f858975b0d3f11feb0f8745ef8e2873424d34f09d04bf01edc974865fb2223b9cf72aa4aa35a5b2c9c91f55f2e545ac403e66435c25fdcd6aff3466bc9b947bd1c811c65de058a92dd3d3668f2ea7c8fdfbc54188d8328e445676a3d115252022b2e828ffedad08c2b96b10b5ca3057083fcc313e3a6d1fffac12987b8d518cdb8b0447f6f23d5266d95e03d36a806dedcc5466ca408580d5c3872d7f6c96bc63fe3c0ffacdbac126ecfaa9426483bee96596d0ff88f8fac8b9c67de4d023b3f0b146d8ee27cad9ae019d8982c85e361cfb7495dfbcff0486448251e34a31f22c0beece7f01f8b81448d267397bfe55b4b384d6604606015a744ae36c92d593a1cf33d3b5562d98093313f3a2ebc7b8b7baaaa0535476b7399ef34521f06d459861985e81e2f1bee5b3544c09e5528bfd472e01383975dabd907be7e9628ba660a776a9ed3a815ffb1df09753e8dc45a0225ba98e197508e0a22560cc0d76fc1692749a16c91dbed55e385593331f3bef1666de4c2b8f29f5df2673ac331a337da8fc020d76f4e4b0933ed6df06b5199715416d6ce46b760205b7583973bdf3967fa546c9e367d6e60f4c9f8dd79fc73a0967a58deb4b779f9b5695a91db67fc2c0e55e7d74eff97bcc322a00c5a5c0fb9564d2c128f5ee3b3378416894ff25b8445e52d21bd35f1759171cb4e6e426c71bab9a6cda6049d8eea904a0c95ebacc98dbf5a5e98d835b6e216e6fc062e600ba74c321620f63e76995637fb506daaf7b7e0514563b536edbc11a35515a75c58cb7f56f3f5ca0e7dfa3ec715089bf6e5f26ad74c10e72ba5f603f3ee51c7bc9645f4194877d4f4645c8226b1d974fab69e62aa3527ad2fbd101eb6b752a739a191d431a87d5c739b7d7f7804430f41820cde5e5a717ed84d80ad154f816657561d58f379e4a2e7761cdb505b5da6f1008143cac623d11859b186c291a0b39267da29f64d5f5c3e0e5cf0f3dca3b78372593aecff71541dbe2d3f89d0febe753f9571684bf8c1b82826715d40cc0da84fc2cbeb3f46c1e53f522fe5f682479503bfa423a2fe10396a9330be5c484e21d60a26aa3f70b210d3ca96226972b7b03fcddfde1499fa81be22e82d851e609834ff9be6407e0bae00909f952798a559809bbe47ea0e4e626de0445b79758726a09e38e757c5645379223141ac21de8ee298542670f329d77ab498f73adfd2d269dcee504d8dd046f7b496fea449e2b265874af3419d43b58df44d9be3e414775c715d65a1d4107bafad16bc315610a36b5775b7fdba09511ce68d1fac79592e740535a27b47a24f07b98bc2548df11610860c5918173f04cf28890e9c038846ea4baaac30b22c552d5545c7dab8f4a034367352336e58409ed2907df1a2fdcb0c56994477c2c9075ce3b1876abda5da66b3768eb7eba609f83376aa5175e3d23a49e8a4327ca3687e401b9fc2f00fb41a13059dd57f9053d438fb66050c4022f9a2d740ca1be13830047d47e9d15184669640ae993fdcd2242977f479b80169ccc802baede5fb86fba380d3d6313bf2034f71f9bd7616c02225ae23b2a83158e31de5726b79564f16abde403a915c0e8d9110319dd91e8c32ba5546ae522ba3204b70d59731d9971157807b024306cbb720563671b282b6e89f82cf91d5686978de9af12e523beb1f2947a384dfe1a6b18989a0cf1c42803c8238eab525ed3a25dad792908db3478d14cb26abbf324d589eaf96204c837b32a4c4e6f9240103ffaa14c1edd6b7ee221ca2dc52dc553cd4eea179ca9a7c4481f17a3f4a9633d29987056afe59b8f51b8665837c62c72c0a3b5a4c5c597327414485c39f298b190da1d9effc1e103b0194f5dc634c6e12c7a22866ae23e64a86bca3629544be79f5b4e89592a69c46d92566c7939385870e3337174dde45ddbda3691ccd6573edb897a15d2d17f2599c523355137de6b987cc35df65d0bba0e06e64bd3059ff94e723ab11bb4f015d72b42e1762226f163b881bf82dcbfa1604fe33107c978181d850bbaec70b44d64fb27baaf7cddd33b1ebb0872115a4fbfaeb6ca5299a02aa07ebbb28574c430d02cedf0396b8e181ff3631a1fe938b0ef175ac9e7dd399b663ec6c6c9520e4a63c80584d8b845087f5419d8c815b1ad78e402a4db542b900c71a16ada2cff190d6fb38815c59238e96e6cde1dda63a89ba907db338e0db29d6151722e9120126d70c6d348b8d3b99084fd8b2bc068258d43a34dba7f639807eaf2176ca7eda0c0e2b4e168c1df200734b592416304e7fefe17f051640464164d643e7b66dce05264a24354651cb803c012af3aa6b61c7c2c5690979b1e1b5e05fc64cb6dbd4c95df382f7d5550e12d7bb9242ddc025f2af03a44f7974dcf5da038f23ad826e9177b23f6163b827a98f0cb065395235e7d3141f94e83e46e8fe71c9e2c43c77837c8616150250485db8a41f7dae069fba1e453cca231ac71454bcace3477af40485ff2f24474115a6029163ab3b7186af02de5c3361c3f26741b1d86334823120178f6d453057cd7b7df09c908ab114c0fda4767bcbc43d1262cb94f07c396ff51858ea2a55ee02873cf9fe2c456f8afb5a64671c05c020177891ba65fd8a3857359de1fb4fdd80d2f7bca6e369f8dca930bd1c977a141728afb66abbad60bbd3b5a08f32901354067f5442de768972a8ac3330f3b4324c16c1a5f4b321c68467404cfe642418620df5078d8525919eff62163c388ad4c2666bcd06330ce5737d438b59fe84f4089fcf35dcdb17ad93d3d40e32493a57ef97a6c0d45604623ecc80714b561e515c0169ccf488ece2672af491446a5d9ec8cd443d6bf95258d2bbbe220be1b56f1179231aca39ae84f5ed34ead9511a2e9af44bac69f4bf42b241696d4cdd5f260d28c22d26ebb580265c5046c81bc386c0bf698ca1d412e7cadcc247dc1c774877f5b9ff8193128934fbcdee8e0932e6658dcd30d07391f82f4d89a17e2b622a8b87997e1848490e26efbc6e79b9e1c40a414d9f84e22a0dec7e21321245c76e64921e3030a1076c9a87596d5aa97caa5c9c68b3280427668348985c7b7759db6fba4c1ce21ebc6b6889fd7d925215d56758131c515b544c56e75f95b90d15dda7f309b7740aa7989cf1a9e3ce217e0ca6e27f502731bb7821a3fdfa73f915ee49e0757a897972d58475e4b12ac735cd9e6b28b81a76d2ab0ff179fc1755a7d96cef5e8a68ac9256d8d8f17d9182daf1540d7af15aab8b1517f7b8656fd3e6708b99dca9a1fd598efeaaa60ebeab6adb5a76a0ab6cbb7dedbe3f0862ffb028ba4e942372344cfe84da9fdec4ec75fb290240828c4c31a1fac0d178f0dd2245f29d346c3a841f863130920bc97dc05c510020852f3c01bd783a8c6db64228b973b20d72c45bc5482517cff230f1a9bf1d8d0979f62049bbd5e8a3e1bc54f6a1c148289b2a66685ddfd0406bbab589abfd183c4299ed66283beb96556ff200497804dbabf9b6702a87692b4b5bb58e01d16ce069b6c3512332b394db1c91db0882a571ee41e458bc960e7535668e334152c9d46e9c155ad09617c348c3874e5db311601f25d5e1682cf69689c15c13dc5c8d836ff6e30b0b804e4810e280252f4bee9470964159f2b271c275c9615b341d20f292107a481955b0b986365c3d7f05de29a8955cccc5d42113c21fe60e2a4a51be45784fc304e8da0091398205a9afdad9b62361d6f8c42b16a7990d5fb50ebb90cd1e1052f62a966a9e8be73593b50be8398c5b3e8f7ced3af398d537bce72a", "b1d7b10b4f0aa77383560a79f4faf2f29992c1e2afda295d15a65e30e6f968d00d60e5f1dab5a847060e55ad9b64f0203b21bdb506319ad379302c24673a727acc17b59ba12f20c3ba472c0a5628d0b05213116e2dfbaf9e98628fac973046f60f930b7eaf0790ff010914c19e93f07b74ac3f7a6b6c3cf92adb49443194f9167f7dd553768841b34d461f7b854a40926b016d8a0123a1fae741e07662e125d42fdcfd765c52d518049ff16393422e6080b9fc69117e5f17f3764917eba5fff3f078727048f3e5bff1d9eefe8ebe2fb6db7c54cdc9b7678fd0d6551aee06b584dc4047beaa72c198bd96ae9eb9b151f29747af88b75399b21570ba6cf983637e6dd2b1d42d39d07108464ee22d81d640aa4cdbdbee7919de51d8f82710e32dc722a04a8ea96aa32a7a19c7048c1d76d2ae63ea288b1120d139bfd2e51f634c82f6f10a5bf18b02725bfed7a2913896b5f108fcebd949d04647467e9837256d9918c2185905e078a14d2945ae64d57eb7ebf9746f80ef939c3b1a307c6af627b91db34d59234d3b62279fec874720624278a51fa6d22886456135bc98b683eccbabcaacab2f013fcc884c554ddfc6f91950215c4f1f750cac338ef3e420a82c1ba15ef420798053483ced448b730e386f0788e1a3a747f8365385bd0e02cd42f1cb48a61ffeb2b2e6e3ad75363a118a27dcb86cf27400be97bc7d10bccdc03f6e19227ffd0e3881bd7c3126d682596abc15bcebe77854ce2844219b17f604aa2b4cc19971e8dc163ac654126bc39966d35737ae75a4852ea1c29183a3700e7cf609ca864285a8b92de0f32ae7c33b5ca11aaea05e10f87d892c5571e89dfe54091639bd87636245f06cfaf87fa3a7d6d657ab3aa89f5fa6b54eedec92186b2026954045a07822997051bf232e39dc1a36a50cbade8fe4dc6ceaaa29008c13fcd7ef96cafc7554b60d479132b2810ffa583aafd6c7e188293c4c35008d895fba6634eb20c92bc1fc2a93f7034694e6bae8d291c59caad61a723719298ae5d99fbb0485837a284f070fd293f74307fafbcd5b9b3a49c96d9b7dace812d6fc7a94aa381346e879601fc292e850d5a732bcec383ec59a1034a573793ee07b9c30e29c3f3cf0efb40693b8ee6df08cad92be3bc4666093daae5484fc02df28f3601861a2aa9ea96e68bbda698fbb032485a55c4baa03893813804f09a4d3e639f2d84c553f2e917b3d47f658820702a6cda2e06070d29c71640c677fd76c429f98ef0b65aed0d5c82d334a3e22b5e2d49a31518d61833ed8fcef352146e7a1ca1c9eac1d786487e357a108ba102415f9d87ef8b00d1fdadccaf3328d9376600ab0e4ee2400aced47774ef5374e62ceb9f19670e144e4590e80d33e0f5863be0e5c515656c7f0880bf57ad0b986affe07a1f66cc9b1763ae7646a8f28f6c804b6c8c260f5fa02af05cffc3a631377f0e4abe659e55655f691fd9572ad832f6485c06bc025d5300dca8aebf5ac0094e582c5ba28389d76fe6387f933db6d04b5da56b739824bd507a072f32b5e10be0516718d1c9031dc83aef222abe60c6ced982b4256a36beaa9d15e11fd3f3f600e28c2625ba2b7a9290fbe89a41465b075aa5f00b1bbcbbfdced6dbfc41e30d511b02c9711510087652b4c6637c44ebaabdd0d5527e5017dc4a339479c9be804bb5b606ea3e701e88bf02cb6c2b3e8c6f7e4bf730c8cc36748d38b96300ad92136c9ab8632c54da6d7307afc226eef8b3b9c849235347fdd953a194a90cc730edd043d44f4387858fb88daaf9a0b4f73abc949895ad4af054a8d31b69a2a98090940c24cf008fe675befaa7641a79c440e666905a055e4ede90f923d8bf16e2c451bbe8970e4c3c54ba5b1c3ddf66e8ee0cb3ea1d417cf82a72d244ccad0288c9231809302494235e905876cf8ae1f874b61d78c26b9e1645f68a0478767d049dee312f6ca578ef5630cf4bcb55967c960077503927f3562dab3e37bee4c96d18b66f969f04d592457d055302ac96fd47abd3582a5117fd62b09a1a8c74c379961fe68c9e1792a2097d29c1d837161edeee01a4b76158b0939af676edd2bcfd18bced7ebd0ea8464be04edfd2590004004b0b24af9c1c028fc2b7e756408854ad3d4f89f8d1d27f90db5844c1622b007c47882f316ddca82c7429c870b2455aebd0519bacda287f843419cd74bb07a40cc08d1fc812039254411266245f3b16dca3d88d305d7ffeaae1b45b1bf622945e3ce4e90ec153b9ef84741db9782f1b4518233ac86e10d5f212ae7dd3cbbb952336401a1831621aa7aaaf1f053efdf3938e73ec95d084cca4c2a266e7a1db5e58851fc291db9d0e7bc4447319feceb83767a5c226010db7c1068e8831d90c0051689a7d7a9dbf687d1f1ae43f62a33d3076784cb5d800c2e3e9007d9a50c1d218efc59bb6d5e61c12112b90f72deb9348e874f3292135d7ea9dd6061a6023cf8d9d8c3abc3a8f29a50f2a2be9ee11de0a910bd3763f0b90946ed1fa5a6494fc65f155bc0a1349f0c3626359746e020f8d3bd83ad591f6ad00921a13909d6df288f4174bdd2bd231d2c5352fa232687c5262432732b2837fc37874ba8ec887f17e41a0eff1b56a03d6d4cce12cd60b426a0ce2ca0a3af667874b2c43dab58e65f83c0afe85e36a754cf460fd66689746ecf640d5af440403d2339898647dd36e733b550f41882b6aebf31d886091d1f3a7044ac84014ffc793f34f6633e419599c792042282f37cade01ea1b307cff1f7ddfc340703166c24a63587324859d7190d540352bd31ecd34a2213978980a490c456dc55adda4f3c920aeaf16611ef0516180d05ccfb6c05a8df20792591a12df86a3450c0bcf0ee7ca2a861c9eab2de259e77391f4cbc3125e67d41553644b2a1a8268647237255bb08e884852fb050365574a5fd78999e23a6b0457b7007c0f31d1919680ba10e803bb52e8af42c4dd85638c87d5ea436be1c8102876cf7c38aef78864ad5ab556b7648806caf6fda6dc247f26754862b29fd0d8c89b5c70476132737eb9d6bbf044fb0eec96a961d4f9975d866a84df0a08cde0e9525b179b4b4f18ea67d035fcaa946e807bb22ae18c159241534ed15da394ed5f73b1d74c51db40283048dd8c0f8c5c807cc7c13129f10d957b698470c05caaf280b37f605ff4d855726869251fd4952cb35d6a873309a7166548cc3aac9008589a6d258d8b4b31835dc26504455bcaa25fc580f27b213d8af43897d59e89cca09472f57720146f4d0748040c2f21764b9b3faa75e5ff78d3eebba844feefe0ad9bc0493599bdf1de61b3d71446e6acaf3327dcf61635e51694d3713732804b43989a43d293f133ac21ead51d1f2b92b76b3c61f8de0aa8dd660effc9cb1bbab80f9d1915025cbf3f70198f979a5a1e15db18ec2b78da238cdab78dad028fd5aac7ac043acda7828234d93bf512e09deea886b6c9459962705f8cac432ca315c3b9449c68deb4b0e71b4d393b891bbf92c6ba9dcec3fece0dd91512f49af9806c6c05f950bf2af2842a85fe153153dd658719a2e1b1a2e989448fb0c9b456d81f4ca770140fe9e37e1ccbe61893c1886ba8805f08c9417c8a3998b5adaf96a37d71b953aeae5717258b9f11fbc891d2bec8ead8d355656a0d0fb783cdc1353af35d8cfce2ecc36124809a77cb6fdba75d0f1ab2c9f82de83e1d166a70edfb86129d9b4e362db8d4dfd6b37c6c85e0399bddc8d30ef6b24e1f0a49871511aa210027fb6dd37b979d3a79cd386d0aa3629a25df9e77c33f4eb822ea3daf6c29be1c2d88d3ae3be2321c8fea439c0da77cee72cce86673477cced34d4fd93aee2d2dde285eeac032a81d4df620603a141fdd1d62ee11d2a82e70c4134ce2a80071cd39cfca105bc669319fc85aae441754ef7a3ea83ccd1ccf3fc6c22b998107d1c747ad5dae0d304649f2bd9e21e3064be40ec7b570fe564fb71d95f9ddc94ca45b8768a0b96414dace446411a07fa0100835aa70b21526a1d6f59c167ae22e7e181a14cff96e1073f652cea4ff504180c74320633527430719178a4f75e65ae9464d7dff690bbed239e00e7d166c5b7f8b6f12d510c7d8e619976b359c3cf71b6ecca2984dbd080e631af5c0e5b4c5641aba47eeb4f3b0d942eff17da0f59ef22a12bf3c09f3c24b462743e396a0bdc21b728bb1a73c6d0038bdeb6c078efe49262c597c50cae204d7ee129f7189ec333b2099d5b8c30a5e651402dfcdd65aac3a30ce35e905b8480a45f3f339b81eecc19ed0b36f40fea6490f47ee1a3386678164e1f299abf45dbadd518f38c758bf4366f8e6a5774ce0ae4c4501f11b06fd72eb8ccc25e5bff4809ffbc78faf3b0055394348513fcc2053207008244ed0461660105fcdb9540cd7a026cd3485c5a06ed7907309c1666f9391eac01bf63d0c6d4818cfa4782e5350f14f0b61dfc566d2d6ae766ba4832a974e7524c351bdcf5279fc49f385894f64c56dafcea13762d9c1763515fe16207ce1873a183ecb0a7e557a2807289a868cc4194efa2b46e0cdfa8668eaf99e583888030891f9991f47cbd11e6594ddcaa87f1d8caf858fedb73269b5dc5749aaa794cd37241100ae2c6ab74f5e5d091cca278b3e2f16109d0fde76230e5b3c91c6b63dbf736fb2af20429af3975d589ccbf41515d492560e92c4f72ca6655c3faa78ea5f49487d2812c72b455b8be1c1b881d243e1bce03a6b171cbdba96e795eb0164cbdf40538e98efcde2843a8b1b12e66daccc68e2b4c169a7198090dcc60934783bab955259332dc3b2fd9f2ee83ab234184c22554325e0fb07c52cd3d1737f12911947312c46ee47ace07e8183dede9d52d1e4d9b8447ecc3f21d8ae22c4065d4a12ec8b0c317324595f5dcf17b14642d0e8b18c1a821723a9970281a593fd865fb6b9fe3c93e58767d3a60a55972e505cbfdafcd957752d2015af86b956972691ae027725c9bc6bd5ad63e8b41ccc5c6c0bce89441e1ecd86b20c73780b4e453a10cd3928c354bdb96fce9f09bfc0c0e34298604a0f2ab0e87d5ec6d3e20ca312695da3b65f8218f161a05fb224437c94c8a936b2f73f27f112df39ec596ec8248e228d379acedb3664a1a96825db7c770c43cf3fd1d8abff9fd68977a72d2cb6c3792c88588913e106a77749fbc9f8f5f0e3178475caf5b228327a7c1620c3b4e3a9e41f66456e40f484343dd3e14ce084e82a06d285379094d7d820b02673e16c79dc1a5e56c04d69a33b328a944d94e33c8009d7071d3dce25b74b1c7b7ff60cee8807c9dc1b8e854c79087e9ac00ec8216e01f1ecccab81432563d71e604af79bbb24761c6fbebb1b5420764624e0d6b08d7127661873b756cfbd99cdeb494228d03a619cda283e430da5cf2ea8854e3bb42b5af8dc957901e2442c89d189c7d0739eaa4c79aac9cc829bc70320c896d626b5cd2f862bae1294f3e2c83270e61c12d1db6064c4be559bbb03bca33d3129437a5f0f0696b9d36cd29b4f98561e4cf0e765258b324c50066db05ec4ed01caf9f6fec58dbd5818fad71b2ddf59c70506a2245e3a3a2753152d94b3b79a90ce2af0f6819bd9ccda102b73b81419c2a317c59d2baa3a963214050d15aa8fa85ea825a8e9852bbd3711ce45b495079b610c18789e0123c6d07178387bcd88fff0ac62437c5dbddcba1ea4af9ad0983f57381c438ff89700eede5047951aae1cd545597ef2f59b82ee173d1e06dbfd55f93b944ad68aafaab9eacbe1ee366e2e650881647d375abf478ea48cd", @@ -7888,9 +8198,9 @@ static const char *kData267[] = { "be95c376d9934950577b682d82985f0ffc2adeb9ac1d801cee6ddad69d342046487798373560db6331ac07287a9240fe1cffa3bcb14825ee235389e80ecfbbe138c349f6fb43574077213fa5a995ecc936eb12b011a7a1b3417b33f2adc3963a2b7abbd2314c4d32291cf24e9d0e896bd709c01e5a05acb60bb7713234b450557e460aa3ba916c5da158a88f37fab9c0a293565610ee33a42fe1b632c9c5ec0a70667d5fe236fd8405a80152bb91ccf336608dbc472602343579d0bca549d6d97155ff65e6d3cd2342ba931158a97613ea430b8fe663c28dac1cce08e8c28db4bae76758d3d186b6e34c631ad743a20ab81771879df17361e7d5db49fb0a88651d6d4b388b925714c19d790c50a76182f3d121dff6fae46fcd97e7eff2277bc8c6b87984c0fdb67cdec92b763d867ac3f54f30ea1c5e86be4484b8d52408dd9638f3d13d32e9fc43a7596c9748e0aaeabc83c08a7849c28df6262ffa83128341431cb97eb574990a2e2e92610035442bd7fa3520c4ad3f6a849297ff68650516fb80b786a3cd5a2699e37ab1f36d40c6b35843ba7cca1aa445af87711feea243c787165dc51975ae058f80cd70a272721e7d3be99db79e76c9cdbb476eea6b73e50968e9ff7515d78bf550e9b77fde7f686544e238483e7444faef2829a01651eb76aa767c03dbfd37c79ed8d77491cdc75798d230d9734052ab886075da01556263d09e82f2682bbad8c26d780ed6def00bbd3413a3b7d69d2eafc4ea0c42fa89114964aa4b775b5840ea4ea9f69b01d269ba4551f1aa7bff0dafd8e3ed13941abcd91fb3bef76a7b49340382eeca128b9ddd1bb253c1d082f02d20c37f0411a57ba5249b05b1ca2959aa140edfc4bbb474c9273909594b1d970124f86f861c0504bcb56d7ce395da042c175384e8e1c0b2be453df961e9fb0e8d60ad09ab6b8c8b09d8c7c3fa0c0376e70fe6487dab64d398257b8293c19bca53ec82479f7784f5359ef3577c7904acfd59ba3694283d7f0b63be70c5f7e55b45ae013ba5a8a77126a11154e91f8c3e9ed719e087c73e425c7425abda06860b898b1763dc030debaa9790ac22263a099573d6b4fa2ac17ffc9e7e0fa710a23326b965df9e2d2a69f07a249f7b2c931f2219a3f6281aa96937b1f88f952693519089b4504965e0408dc018f449c566f027866f891ca75832689995b72fd5f518e5a1e37f33c06775166822050932319f0d1e53bbccb9ae4d18c100086fae3311c69650d2317d83e4a164c4e67278dc1539dfaf2d9e02b52cd6885c9a66831cb81ce13422ccb069067ab6a6c4d3c89650677551c344918a5c24b0973ef5727f9593c59ba1026a82ca6e78033d6ba6a40488c5ec91708ec2479dc53d0ba7fe14bb238181f1c058e694898c914c2208dc01979119bfc0195e8ac0fcaca51d61fcfc5f72d92ba68a8d51394eea8d10b624dff051a9153b7d729f50f02d04547a6676add6ee0338b6d9ca9dee43260980291adaed18759bddd5311b7b46956cd113a076a3995b2e72cd1a5138dc31fcb5edfbc514bd2ee72fb53e0722367afc717b9ec401e4213a317583e6b3b19a75e1c63f1889f60dfb3059b0a64b85fb758651c713ac43345c8cd3c801da3f6ba8aceaba572f46100def2adcc135c4af0965f379a7a6c75d039a2cd40f2bb5919a3c8b74d58bc9d008b592f2ddb3acf4888e8b7873585f1f3d8581c743b324873fc23a345176635375b746575f79d361d186108eb5609dc78612b7bb530b6327bca6dfca45fb4f4f975afd1bf0f898dae164a19dee3f0feaaede1440cc7ff8fcb21145680e8a24e2eb5404697e25c2558ae9289f528a8faa572a354931a1cd4bc05bfb0116a0359a6b70aa79b145a88df482ed33354c260d1567e000b2d315e2808138638fd7bf7f4e88add370d24ceab5a999643741b13612ea85f67ecfc728e110aedeff58060a8aff0b7e1526f4aa60b9f9b558c2acf584a83b08d91901d6cff5ea2bcdd832303539703d30102ca067db40908dd8b555834a6060f3f6e7189612ed0d3b6c645db8b113909a38149072b3decb1f3a28be9223cfde40c2feea7e8c9d5bf37a2e55a60d8f89c391903e49bc644178531e6891653b1a4d73ee0870b18f8d53a089d5066dfadc3d92271232455637b20c298d640cb04b668d7080a510146b08031fcb84f41ca0cc85428f27ea9657de94073fec43d2c8c464723539276dbdcef593d716d02d172d30e76a9fc022d4952621d4c306278d3969592469d9a9ba62841dedd07e76a362b67ae5f925fae70f27c9cc870ba7b15d2d7d81b4e1d49f02fd963fa6f9ea5f4c901eade1114d92eabbde70cb0c6ba9136c68cbd25acb278e6cc73f9e625f1747e281d248739ecaaf403a21269758211121db85805ac522295ece97b8f90abb56e5a762bb7601b916befe8257e02a2b10c8384887de04b2d1c5afabe583367690c03d3ea6f7294f71b82ca80cd99951e5ccfe9ce7cbc5e04d1d60dcdd2ec88f9edb424bce5f04217be277700df4035443d18c14391bc9469f38f78f41f2d983bf761296161216e5719b37e3653de0d4a90a5171c2fdb9547a75be38910aa96c27ecc4e1fcf7a12d5254a8951a659df30db813ad7c75716ac050e61bd76ee5a4ec0bd7208a4c8cf4dfa0ac4438fc7f85e23db79d006e2acfb8d5a4229dbf0ee5ee26d064dc57a1dfb4374dc306158c1f8a9fe450a11e7ed21700ab2b817724a7139e2ac3df5f953ade220d996821ccef9e8f58a9c4996ed0bf6e70fc17237141d822f393cbc725b6813626cc63b88f5b893732969b47dc884c772e12c9099be0e519eccbc31d5b5886fbd737499a622058d6c13e200e7b201839c52634dd89e87a742cc99c5971e0b7cd976e8b1f5043a74fd6bd9d30eb8ab29c332057b2dac2f95739f34f1abe9e85b856f1d2df1d80915338cfc454b70ce41c2ce77da0f06f3b113d8ebc2ea441721a2f4d6e573eef2ce7e86c2c68a1060f6836526723e6726046c6efc68178798d967a88c17b4b4c59b96828d7497c7e40d6cb57e8f83c7164ad56c4e95cf551cbfe0314523fd7ca84bd0063ba241b591799b5422ba0cec9c2d5d5a3785bc510a4b12ece05c1081bd489edf428bba344eac60f1c9a59152fb8442c7b65987ac41b5ee2ff7ca6b8bbeded9e8b10ece0a3a792a508ac22497df9e66031edade139dffb19a3fc7d27b9bcd572d60b6a0f3482b8fb6ef495e2aaad99cdb89cf6171609096e4f2f03e21f01ad554c59d008ffce5f1ba874fc58638179ff01dd4fdfb01c4b60e08e315654fa5e211d0b75109439082a982ace4667ef510211b1c3ed116bbff57a3304161e1707f4f9c3b22365760b1de206a68c4eea017970e138a5e29fa3f5fb28f220d84596c0a7fa5e192e7aac83a1b83f65a5a61b2ce0586cf5c387ad24efacdec8f4c9e96334b94a9994fe3181a5e0ef82dd8e6a9ca79dcf9e5dec753a01f8d8c89e709a63a92638f0dbd4d083cd80ee7b4c82bb08bdb24d77ead9d20fa041b32386bb68d7e5255290ce65dd07d470b220e5298bf80a064c940378f06d35a3eec74dc60be0a9f46d29014210cb09374406a02e48342bc07db10811d314b0fd9be677909c91958ef5b3de9660d105058cb3a9bb859a355d502076938dc0f8feab32cc342f08e5392735263ab0e84eae11b39e993f0a6dfbbbc69dd01a7c23989f05acf42829f0fedc564e8ea633dbd4a1ae9318b8a7fe03efc535eb008cf30f8c9d38fa572e79a1b6c8bb02b87050dfd40f6d8a91a3b1bbc167247613000dd7fdcfa7e49000eb3604cbc7e790b1df640acb5a7dfb359d138b6fe3e12a8025b512f429d47ddd60c8c56c9084c509766d38ee652d49fa12aa3c2a26be8faafe589bfbae0815203101127aa23abae6b01b4fb82a2f7fee10cac9092d92e68b48bf26629524f2d8882dcd18965c2b7b6ecbab0204bd90e68ba89f1af5ab3992604bebfd482babe08ac40f86dc638c9440796bacc8bda1895d75fa30fcb0434aab12526de4c026d320587ebc36843a662d5c646eefc6524d6350ab11206530a7e48b53c8ef851e1d17d1a78a5f0a58023b9081357b033e2ece1dfc4cd68f99ae754195ba9453cc90f60371ebfb5086f60619f6b951f0708c1304875c618eb30ff4acf7b16a5f88564cebd3afa0c509516889e4a58354aed00433173830cc90c16ebd6b366e7d2b43da4f37ee4a05860e2d3267b4b61facdfed2ffb1960adce69914d4f36d13a5b7d6920524b364c87c2697000335cc5fecbc68c24acb6a6235a61fff788daad1294df9d2fd0d012b446b35e3bd4592f4f6418d7e676cf46bfdf1ede5c9f9c3fabbf3ea0b435555d253412deb4c66922f54a59cedef5dfd961795b0a8840a78266810d45da1e76f4ff7c8642e106852173bb7fb44394bf4b285d95d711651031d8f062ea62f2503c0047d808a131a44c0d67bbf1ae1ff58f9018bd92c63bab4761f572ec67da2538bae95fee458b1f298d27be26fbeb9c80361e30e0738e7da2d5b0dd21817832bd2af3f92f2e6d9a8c75f0bdb4c5f31811c4ba4af5312aa615e0e72a987724b56d78c8d598a59eee50978dd4ef4aa0fe958ce88f6ff8d3672a5d07a50a4c61af4b8121e6b5efdf7e39842d91004d2a78cda448ad233708a91d6a9b0e29e5c6ae3494b3e73f81c04e9df3d7cb5e4f8484bddcc228e87c3efeb39ee367cc3e9bd25521b493b168d15f5e15379177fe625e9a6052f8e3312ba0b85380ce40ec62afe4abb8d21ff9e420865874f16525fa38e3ea1aab965f548db6ba2bc21001a836b2598792e4dc27ac82b136ce604f554078d44b80424f449968cd3e7f07e73c1769fd6bbf2580421d4fa4e6bc2929da999f4ff8fb9f6170210e1d2be140f6fba282ec31c9d57a6d69e73502d194b611b1adbbc4c028bcea1d4003368cd564a59bd93966f2996fe7c6ef5b7ca578dac3b59989080b47024732adf735ffd721fdd88638217d44ac912893f031366150855028af0b12719460cfcb72378447f43fde09ae5fa6060e41372e40b89e088b00decd495dc7f37f9e8a4421f504108fc2f56eef0bc2eefe041dc52cde085622407d0da699cdc018a7844e8f8589e62cdd3359b08a6b90c75eb5b77421df5316c6dcb2e0672369f3feb5fc368d112a1d4d00abbae91f28e5fbecf772c8bfa84c222963934b206f8f77886bfc27e03b876d3c33e59d29901d41c7f3209d9562eee953eeb239a9c83f3c649a86c55d84a799145eac8f05303dfa6530cb693bfd5d1facb26753f76c50a3528003044e64359f22d8b31750782dd323b003c767ab6a8332994c51b57563cdc60c181400c46b5e7f928684e049a146ff614facfc17ad5f34e23f2a3bed5bb41cae4c65b9e6a6e62fa7dbf787543e5d8d2dcda4dad9773ba129e75b4dbf341cf6261c71441875a690ceb6b56b1f8a5c2504f17d521e1fb2b9e802db8a2e332c9ec91dfa044b0d948be844b6c67547efa07d74c9f9b1f44998888a62ce1b04a806923e3368fe4d9a1960191e022a1774589533b5c39090351ad793327dea2c54c6c03fe8afa5185e8579ef4f91a7b34d01b771bcb6cf1c9107bbb06045b4f689c034d4026a0540b44c24e9df543014a18\nresult = valid\nsalt = 8ed2f3533ae5da80bc34db49d9c3b3b0a7873baf9148772f286244b23ec6b3c1d9f235310c383c96bfe02a7e8be2c01c\nsize = 12240\n\n# tcId = 88\n# invalid output size\nikm = f39c81ba274637ba1460a7ecd776db66fa91ac12e1429be", "f84a9963b76c2c07f\ninfo = 516c2d910a221982\nokm = \nresult = invalid\nsalt = 408df96efb424324020d4836d100280b70f5d0e850e5460db77c543224ad5d2ba935060d1b5d63d80923fe922db1220a\nsize = 12241\nflags = SizeTooLarge\n\n# tcId = 89\n# output collision for different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ef369d7b63f5509da56c5f6e446e2f03b700ca40c13e059ea0f43b08f5c29f15\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 90\n# output collision for different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ef369d7b63f5509da56c5f6e446e2f03b700ca40c13e059ea0f43b08f5c29f15\nresult = valid\nsalt = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 91\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = b8365c28c10d6cd188f01efa320fa26713f7d87bf18f18529071607d1410b93c\nresult = valid\nsalt = 0102c651e047fed9c217bcf915520532d44999534c1e7e7c87311093d7a3681aff3e2d335b3c6139b9fc66dcfe35573b36a329a550c4cd20bfe2a90dfea50167ff\nsize = 32\n\n# tcId = 92\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = be14708389e4bf856681504fe3bd6a50eb33bf71a823337ada17316fc641344c\nresult = valid\nsalt = a0b5f9ccef84deab2a26b5d81f84e62b8800dbf270bad71f53d66881ccc543e33c20eb1b6526ffb53ab50399c5c96339\nsize = 32\n\n# tcId = 93\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371\nresult = valid\nsalt = cd920e8dbf19ed66\nsize = 32\n\n# tcId = 94\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000\nsize = 32\n\n# tcId = 95\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000\nsize = 32\n\n# tcId = 96\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 97\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 98\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 99\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n[keySize = 384]\n\n# tcId = 100\nikm = baa311295125e326efd92676775b9aa20a0acd68fdd9b05795cf82e157c7dac61394fdc26cd7f8a9015e9587c5d0855d\ninfo = ac9954349e500c55\nokm = 5f027dcc4e32bc2f1c23de92b8b5fad67312fdeca2c09daa97bf0c81015bfe02ff2c17de1851336833666db3b29ceb16\nresult = valid\nsalt = 79f4669058de474f47efb74371ca5b6e3788a729abc31d47113ca0c2f972217ac9deb56b317f1e80fe42f5504c8690fa\nsize = 48\n\n# tcId = 101\nikm = a91adac5ab8bdd60fb350eb81d7243cf97740787877d41b40eee1c4c9a96f077e8bda335cb0e3b106454e85629bc5e63\ninfo = 3eb47169931585a5\nokm = fca326c96af6690eb9b61b4b2a23d78a05c90152667c87cf813c2c16f56047a63cc6103986d3c2bce48c5e4e031dde077fc153876bab3f57e12e871a506278f220d6180321ce84eb1ea45494d6b1c5bf44f60a397cf01d5a\nresult = valid\nsalt = 07e28c9f6efd74908c06435c95f3ab25f4d9a9e023f287e7298f9cde0cba29717baa1158e86fb70d5bd76d2549291923\nsize = 88\n\n# tcId = 102\nikm = e80e0fdb818f228c505ea15887a42abfd7b6479b589a76c33b0f63c00e7d188a20ef8e98534aa85df6e482750f85ad7f\ninfo = 31580276db515d6b\nokm = 941c9c841ecfd3b0d2c0488e0b327d151081d6f4d6b927c319df7ba4e3c9dd92ebe1c5b420af2f3b50b6991cc57a4f5a6aded05d5be9d699b4c70555e3dae218eb520158fd63e7be11bff5c5601ed9c6e616147aeb9878d01314ff519c4fe23bf29abe768df09bc485c175d9320e93aebce8336bd83c400b69d07fc19ff692bf05d299b25679cd038bffa43405057d22f014b9db5e5d94f09d3f6cea5d479d7e70f31dce39e2acd93f47f789ff094c0ae4c68b231d818548a81cd1373120b0f5\nresult = valid\nsalt = d1dd17d92c45854e1c617830ec2bd6ea613d8debe261ac30f0fdf9358a2be2dbb25f7ffaa9eee85f06df367b370804c8\nsize = 192\n\n", }; -static const size_t kLen268 = 129346; +static const size_t kLen273 = 129346; -static const char *kData268[] = { +static const char *kData273[] = { "# Imported from Wycheproof's hkdf_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HKDF-SHA-512\n# Generator version: 0.8rc17\n\n[keySize = 128]\n\n# tcId = 1\nikm = 60ab7f45b0ad534683b3a6c020d4f775\ninfo = \nokm = 2109bd244744acae2b8caa9e70f57596ad680212\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 2\nikm = e3db76e02278cbd2adbcb4555803da11\ninfo = \nokm = b28e3c338c70ede899f2a2654f2cd7e0d958d16eab2fa2a76035a2696054b68fa963c617b8fc2a826917\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 3\nikm = d4dcb92a769f57c8bab8a420ee0aa351\ninfo = \nokm = a8420281c08c5f087c9d54d5660847805b0fff2d6257f02bf849badfa8a29bee84ebe704a6eadc0beba0c33805d5843e167b1966aeba6a15b0f1f7b3db8c407a\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 4\nikm = 2d43e54bf0c94c9cbff4300f4aa69ab8\ninfo = d674da3bb47d5c7e38b501e5251d9348af601c44\nokm = ccd42097a730e47cd2908a834f9d81a3239f4b91\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 5\nikm = 4055536896c406d5fe14a6cd6b999bff\ninfo = 2094768a8816f7df070d6e08b7ad93755dc9024b\nokm = 0191ca548ab4c1f91eeaeaa2e561f954983885dd363c80079f7bbd053da4274b236f4ef0e4954b34a386\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 6\nikm = 5b01b2da3166f217cdd68de8af60078f\ninfo = 6884cfa7ffe8f27bf4ebc6e46a7e01488c79243a\nokm = 01e10d4c477c906d4f67105e4a8054bd2e9479d726166893fcf77b5df431ad007c0ae42847d3706a770a5e468783c9519804be63a404112dcd4ecea952952b73\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 7\nikm = 467403c2ec02a235bf730ff37e8d8ff3\ninfo = \nokm = 13abf6dd4468e2db7114437adc914cda3fab1c26\nresult = valid\nsalt = 41f0f173d307d40436c25856cf559f96\nsize = 20\n\n# tcId = 8\nikm = 3352f942aa93071da6d39cc5ed8dc460\ninfo = \nokm = 3cbd7242368ce2eecacd1839876cf2e8ee04d8c54848bf5515dfdd046fbe09483982d406345d1f71a4f9\nresult = valid\nsalt = 57a0db708b25a51afc4271803aa35204\nsize = 42\n\n# tcId = 9\nikm = 08867e76311126089356623ba5381e73\ninfo = \nokm = 098d9f9e0e0c609b94e8aa57b0449cdb3929605f821cda305e4d93746553a40a1e4c97565183e116511c3dc5d9d56561c698849a114692c8128b5d3c1cd728f7\nresult = valid\nsalt = 0c164c443edcdfaedb1ab150f047951f\nsize = 64\n\n# tcId = 10\nikm = c55c41d69d2424a520414e3662aa7303\ninfo = 3fdf20538063b76901d61bbf9b72b0c18749e00e\nokm = 19c2ea76fcf7ea72279de10e44533436300e250d\nresult = valid\nsalt = fea9bfc92b74337e43a201a2dc199e27\nsize = 20\n\n# tcId = 11\nikm = 5d3db20e8238a90b62a600fa57fdb318\ninfo = 2bc5f39032b6fc87da69ba8711ce735b169646fd\nokm = 8c3cf7122dcb5eb7efaf02718f1faf70bca20dcb75070e9d0871a413a6c05fc195a75aa9ffc349d70aae\nresult = valid\nsalt = 1d6f3b38a1e607b5e6bcd4af1800a9d3\nsize = 42\n\n# tcId = 12\nikm = 8677dc79233ef3480777c4c601ef4f0b\ninfo = a38f634d947819a9bfa792174b42baa20c9fce15\nokm = 918e9cda37bf7f52506111048a878e64a503f9869d0c2615047b995f1efedc4f713b4dbcc940838e68f6a2bf772ebefae9154e9075da80ea1fd68b9df580ad76\nresult = valid\nsalt = ad88db718244e2cb60e35f874d7ad81f\nsize = 64\n\n# tcId = 13\nikm = 0f602703d37943e0253bed3da331aff4\ninfo = \nokm = 60738c594db9638656cc8493db969736e743e152\nresult = valid\nsalt = ebdc8510499f69b2e188daab77cd819cccb95f276f46e6b2be11cbe72700\nsize = 20\n\n# tcId = 14\nikm = 9fe65737574c5c7aa67646adf8230ba8\ninfo = \nokm = d02f9f8a507d3cb0bc047b0d979b50f94dd9f3d805a5d7f5cd372ca14479cb698e17a95c737849aa7881\nresult = valid\nsalt = 73a34648c152443586236abcb46a090ce55ef6c7f282ffce6342d694650a\nsize = 42\n\n# tcId = 15\nikm = e8f2b1c3e6a6c3d5ee0a20dd47aafa78\ninfo = \nokm = 34718d60d8eba9f7ad6d111ef14160652381239551aca21bfc1f250f8d04c64cb6cd503c7f5fb3ff6b73ce234cf6bf91056228a8a51599a39c402e32d47618cb\nresult = valid\nsalt = 3f5e162de91e0782cd189f3b7778cdc2ce6bfe9d3fe841cd3c70475d7b3c\nsize = 64\n\n# tcId = 16\nikm = a679521cdb56aafc5a4b76db0431a4dd\ninfo = 44ec41ab4f4e64f4a36e5e30c9f0dc1d77ae4974\nokm = cb914a0b318cd57eda5b9575dd511313b60cb7ef\nresult = valid\nsalt = 123033b1ddaead83a4b9cfef8a660bd8e00fde01e67c35656c6d7607d456\nsize = 20\n\n# tcId = 17\nikm = 49bf155ca102026f2a217ea1bc9843ac\ninfo = 851bda4faa8f7add2a3cbf0acf9c2786f8f955b2\nokm = 4a540a643b1597bfbd4cb38953f31b677c02c40cdcbdb6c48984aa8ff3e5dc17caf09d0a6f67afe92cb0\nresult = valid\nsalt = 76776e3b4d75f8f43dce4bded71f3b1ae6bcb012d9c0d59f78248b9427b8\nsize = 42\n\n# tcId = 18\nikm = 6cf725e939e8824d4392233eeac75d30\ninfo = 495425d9727fee2e2b7e78899868c1c3e7735e1d\nokm = 379e6d4fc3c9b344754a1094eac60b71e47e281695515987abbc3b22c1e267d95b101592896e08c869557ea82ba075d9c9524d3cb79d7d8cabb33364f5252968\nresult = valid\nsalt = 1e72f24b05a91a0093f34306ffced79e7003055b0833c6d0f27a4f33a1bd\nsize = 64\n\n# tcId = 19\nikm = a319ff7b5ba9b14ac72b681cecf0f742\ninfo = \nokm = ca31c0e0f5ddaa7fded85be96d6311d8b935307b08127f690f15f5ce3ed5a44d1c226e354e8d7e5069ef\nresult = valid\nsalt = d7e3bc6daed343ce77ef793e15a8246e4bfcbaf83d2ac956d0661d1df7262b2e7311623dfe4152caddbfda8fa8ed7a82656ec00b72c5adf7c9d388e5b3bc8d24\nsize = 42\n\n# tcId = 20\nikm = 34bae5a158c1678aa76a744417a70d7a\ninfo = 87ec30aa53acfc3d09ccc1d57d654fdbce403cd4\nokm = 65f5385dab06d375033a6a25926ef4bf5dc660737ab8ccef370af10cc9dcd7743cf273fd048f64b7301e\nresult = valid\nsalt = 1532075f363e061133780ac959bf653c7687d181b9431215d6f62dd2f1ec3019d61c50fa82c70ae25e624c849a276b0c57d7c02a4d753fe84a1a6621e9a5ef01\nsize = 42\n\n# tcId = 21\n# maximal output size\nikm = dfc7c0159b921546a4ccb3067cafdd6c\ninfo = 7fa60cc2c830aba2\nokm = b52c51a447b923e2e6acfc05cd6fb0fb65d8f67f7facce95d3fd4b0dc0dc41d7a92bd06c1fa156d7756d603f8c26a5023cb842c7a133850e842aceea3779417d29a517452fac99855a2ec52503e725975b1d1142fe20608ca753d39301d37d99ff5956b45a7b587e3ad485e135c0002dc9918ec49a985d494795b7cfd53641ea9ceec7834d33d060bdb2eb158d10caccf74f87465052f71c43e67567e62975f02cc79349ed381720965533fa5eaa172d8c7c017036a0b4076d5b76ca16f69586aecc94d2e93585c4c90834ba697d0ecdf04b322c4a6f1b468a7c89bda5ea1307cd99060427fb6c2daeb2f25ad3572b9df69a5bb783d0e91f5f72f95e3aea3575de29e0d91aa8011c85dc918481155dac096260475076e1b5b2cf8061e888de70697899771eb8eaa9c899de2a5fcacb78ecec49a1b8d72df2e208eec858e2af089003c34079a24c15cac878d5339933b91497fe6732bd2d0f77cfb4a5adac9d59a778e38a65c986fd4cbe5f3661ff6e4aec2cb1f103660708a06b9dda3eb50e76629375c4bfc4027f563ffffb0a6b17e80fb1c8705fd28cdace78666dcb64e009ebbd67d77b8fd18c1cac8f7e114c18b4215f4678d719672f7c3307eafeb91b1ac44675654b26c49ec71144fee1fdd0c238be154768be9e851187d41dd1e8842fb4c7de48061cb1a2568a8682aea5cd457453f281541ec0544da726c0fa38b76672867763c1937fde3c9c3f8b58e4120a1ee1704a3dc472da40ac9326aa417b49e3a9603cad661bf1c61f92dff92c553a8368ec0c3b5b105e4c3a4bd1b02a7fe12e93b6674a2b45396206a113d28bc77fa6135d1a3c5d4c876a8c17b6f4611483ed080642677255f7d0219c9e6e7e661ddf05fd7ba333194efa079121091d9b117d9f0281c2a0d51bdafc8a7e391ee607176b1ccbae5b0df7a936f9611753cd5bd815a9fab6bcb2a95343dd7781484afbcdf55d260335cfce70f07b8f4737c49c7a9d93335fbf5bd2595c77e5fb088f81c033ccf08673b446da6edd68cb0e1cb2b93c793dbbd3f845d76bc90728149d6f5bcf3360a5601d42e6befa0574d89ef6f3d749538f7fac02e4b122ab93cee09cd710b0aea2570d761164f6bf37b43f2a252fb5d17a737b83ff36cc07ed550f5cc6d32679691d9cdd72c91f9fd3229c8492c02710a3b380b8ff95d2ed3779cab4abe7e1d16d21b0572a0cff15488721e447efbab8db70c2a79d36e80b6e7da11101e06b560bf6c3dd0e3fe7decbab8c3a023597d07f2ae5af73bac662508f4a86db8e71b9e02545a970f614f66c18fc69e569ff96fc32c05f1b3e87d3376131d69ac2f0aa9e50f4c02806f164a29f32852f64291862609f423be3627ca2a0b76e09f1080c3b602396fc043c7bb77722c08574385685f711446600a98718e78f49ce1ca2d522061bee0dc45a5b899769d098282d1bfde4f35c9a60101dae768e91f59d69e6b9d6f5c08c067044c7efa01790ad94b8e3c562ea8501f67b43933e76a7e416bdacf52f7ced3f5f01af4e317b5e537cb6d1b96960832066d8ccc74ca06664a8416a390ca7d0f31aee6973ea9c4d08d7a14b6dcba15203cada6baf08934cd211b6ec988cf1ae8b23ec9da4f78c5a73313fe294fe2d19c5dd7e5086efaf5956d8653362f03d70a7c4a348ebbab64831a12ba64081e8e4b9233fa75096ac0f0d225f2ca3d4944aaaa7da6dc1bec11a9aecb14e21181bbcd0f5b466d40bdbcd69bbddd51a85e2e9cb8becd5da2c7fcaf20283a35f6408061f9cc0bf68088c68df7e257492f2b1a77db3f6e3884689b09ebe0af6d8bea07eb4ec4f78aa4f61f94533311ce24c8e3bbca0e57d96834e2ab1fe9b80f8ccab305e47e63145244f340480513ea6089fdeab01a69f4401d2da6aed99176d5603cedfad1a9ba79b277c35611801c03534b1de4784e5def8f2e1d81aa68207968e1e9baf3405cd5fffe6a0acab1a18e01540821cdc1b69d344111c6043ea8dd9196a3eb2ea9c2b1f6a1c77564c0eb144e376b9cfe74ba734eddec86ba19e2c57677547ff6", "5dce2091d57fe59b7515941acddacbe757029babde6d8363e9c87ea40973f121463e706514a6b93cacc4375b0a4b640731d39bad93aa5d81d0024406b9412b951158a4a91a40c39dbe50295b01281f78c65430e6ba97ad3106a672721c80909d5d0d3e95b5e81308fe7e9b7cd6145dae402c32967ff73b04a163405e8d104ce751203d2c354622370b9a54601c1b1c9d484d3827d2137faab9fbd6fdae854add24a933b1b32f33985cf3bc1132ee2f6b0399101801754e34ef0d15bd95a40e9d8b3241008e39082a518a3882e30ffa1b4073cc637b2412667d4b51993135746b748fd88ed5da3e83948d278426262368f57cf5179ffe02c35952539c1f61591825c63e8178f45b6eb515e4f02547f7118b39646b8840694ceeb28ad96b4a1f63941fe68cba5eda641538906fb6b930a9e4fca5b02b2ea1e155093dc56bdc8c88780ba1ac9402fd0674ade1621e0aae1936fdca343e6a05e791147150e06c9a5720c76cd7f1b6ea0e02472deed435d69081c57b88c33618bfc31938fb11e5d1e731e1ac83b24c15a32e3c4becdfb839c5e737d21e3321bfd607300b606ec2c73544741536cdb72b0853da920453443d6efd99694124b61d312e11a8bfad436df14d04f9f9fab14ec474c5df8f81f4dd1de24ca5a4a74880ef61106f1218b55df34ed85ff1a6139330c8df45b047fa3acc4f3b1c896cea3a979e8dc5f58ee34c44a82dcdfbbdb6a42e1332579399651cec217355acb55e45f8206bee4e53e6afc6811704e3119e191e3be8182219e8543095cbc639f1b66b4cfbf96fd3b7d02ef6f781b18882e8dc5ccd684d330141029a9d8c8ebebc3a9e49a7a0f21facc94ebe64cc538d328679f38b06f31b3c5996729ffd9d1cd95e7ad33e7c5dfc147c3e75cd9dc417a08c910fdc3041accbe5b669c649502e16c02b78729784d08e81e0bc40b4590836cd877f80217e23bbde955d56176372221ccf1f18b1bac1f5c150b0b4bd764206b7cfe43716f4bbdf7a44b4407278bd849479865a581812221fa56ec34c30a08fff4045853251a12f48e9bc4fbf58fb1cca7aa68b5703ab6f6be834923c933b2b467013a0e6c156f417e14ae817f20a18898db4806465980eda6f166dcd8d8e36f8a138a96d65aa739a4c3ffc5777d1303f4a3c44751b12ebf293df5fa49beaf657ea5e10c06c5160635b5ffb0b252c32a2f0cf448bfb934d099fb450de717981befb8fdf24fa711eea66e3f670124b68eee9c7861e3cdd3e3d1366d981a6362563dd7cd1c3f87faff083c39be3cf2f39101012bd105715f36c34ec8d6a4bfd35ee74a813e4fa0c98c077f6c9f2ebe1decc3b2455f6b2e99121f6b1478ca45d6b2ad2903ecf2294741f80d09076c447bed7da37e3445fea133a4cab5de5c4f7b46abb84756925f3e1e1a6adcad8cf667e6521aaea32d8fd5f423b9ad7fbd6003ca6d15d6457f31720d5ec7833e58866465d89d807b9bf71be745241e6dd2a179f5d2b6ebc9b92ad0a86a7c64d6fb15ddfaba5b030ed94a0cde4ff8f67282b572fcfa85072a3f1102fa710e60e4f59e906fa190ead2056a35efcee0d74d7d6f3bc05fefda6a43362eb966944c23c99810f0ad6998427f33c0e94388ed7e677dee402c48fe08409bb8e7a2109c230f1f0bbeacf57910d5beb58d1d83c10e55454cee4de633b63fba04904b9f796fd0d8428522536c50ba8ba2997b43198ccc4e3009eecbe43ff652e3e17e6cf0e9774b4b8616cc9bc30740c85fd04bdeb181aa281a3fee92bab269fe0999d85d89e8cd1a4d1682ee873de633eff0f51473e0e29d625c2582c2d67d941d6a80aa9eae47bd8b1c147601eaafda28e721082edc8724e3a6ca944f2b96286035fe8017a9dbfdac05d0602037bb330ad2e05aa6ac6b771a836334a7a8eae30f8a0caf757b74e63c995fdbebb159152c7ca7105245597035258bd9b031bfe1951c688cc224fb3ba8da6063f244cad38b8fb5db148dcb838eabdc402572bb30cd8ab5ecf9a220c513f6d45ae3472e04779776b014acd812f48b1356d2c8429213b0204734338d386e29ea394fd856533c1fa81483a3acf32cb33025373debc7d00c8d5a153dd3e56f5069c44a8ac745cb6d1cd6d0a37ddf4816bb64667da38ad6c75e246ed358e539febd606bd66d12153ec3d223a5ff15f74d7a46319c73962aaeaa8cd470a861782ec3de3ca235688a99bdd8b234e61f6a1264fb93292ea2826e3695ee16b6c57e4287220429d2d1a28c6dc8b5a0b50117d23b0b5f4df498d3ad61ac6fc58e398a9f4093b5aa92e23a1a4b5a34ef93b9662e60baccf9bdcce4c058b80469c01975c6f0742e7cab07c14f975072533081a312d30a251867341f0e904391252bb5cf03e9cbc9318e2aac65b0a69c506b7f9e8ad7b9d19ebde74801e0526a2bc03b4821f8cec964bf1763ba94930135d589dbbc63a048c42d79ead50613135278685f99a38070696a4c8e88985a9a4c7fea3e23bae77d287db1281bdfd00e60a5a5cffcf7c29962604df3017c8b4f4fffaf1a27f2d353fca7c40784219c8e31c06ac628257dbc3cecd1341cab153109fc5e0df5e89c0996525ae5d2f949876a85e6f5671e9043c28920f46f5c778490cd1ee733ca3eddb8003abd82fd6973a45e338b9091f472ac877ebf57161b9afc4ec5721a03f17729c95af786d27f02da6c53f43d339e313bc11aa483a354fef6e36d17508bc8f22a98f13508af80a5f136248cecd3c34da11b2ebec4b2f135b66f3188803b840eca048a559b33b842d340e489df31644ec53cac0d10646d6100f76e3c6e074a13e4194796113a770331bb84bd00fdea57433ed74849d90410e2a2913a79d642103a3b732725d6e7a7c02c4fa844fa4866aca3af7c257cc94720fc032eb482d75a27ffd5491b28144bc2191b2db5d4e515ab4c79c55af44000a821f02c31621b0efeef6a4ef945c59ea4b32a6b95b73bf9a2687a3d059c9cb7ea1472271066892c4ab14198897ae910311f0f353ddf4f9e8177f8bb10dc0a64e0c9be776c07d94fa788718973226077dffca41bcbd57c0cdb2cef9b95ddf7beffa76ea663b28225b382c11a8f1a9a7fb3d1ba4448c36aeb55e7a49adba4992d057dbf4dde3f24d208e0611ee7e15fa715046eb32fede6193f64356da54799599a582a499ed2c48182d9a4f208931b64105ed27385ac1727122cabec3580897762509a7a5e5fe4c3bf921bbf2f0308905895c298633dca6450cd9334708b3c0342c73e32674530d6588a7528cf2fef4077597d18e2342b692581d6ddd977ef3a7bff43dc0c5078f38985896f6e6dc753bc5d2b02d8152097f62fb92508bc80bc556e5295329a0b1502b4fccce062bf1166e21da5b1253c0165fda2d31e6d80b7e68e4687ba90acbdad5a8af67b06bdaefdfead0deed71d318805adea6f641fb35b300b9f79a8ef3822463258684e0ee033b5c304db81f3c104fcadc7aaeefd80b8184e2d016440463948d35058ba6be3dae282d096beb6cda140c3663bce15aeb07fae784de1372f766c0ffb2748fb1210f5eede51c67527dcaf5621d225586c17554bc78d367d70413e2a1e0cc06bebfa1fef2b7a971e08e50087d0266a4da1505dfbe5f639d29421bb7045712a603aa65d54e9070e4d71fdd4a14ba92681a8aaa0254b198dd5095780dab36afe8e6e85289c67740cbbca6723ee55173b1c36759edf969af04cd52c05480573f60ce7c97dd97b64e3da1b9889bde260d1dac867c75d365476678c33a4cc2adf218a1d469af05e821cea216bccbff7ed7ce7af028816181e01eee51a9f72c4520abb40a82bdbb8b7b69e97b92c0805555a9052f17a123ff4a1c797be25a661cfc8c3096dddfb987022bfaebf169bb7f3d83b9e66d1999bc8f75df07be79b3be2f1b69d8a5d3c4b9e3b8388ee06bb5891374c922a99f597729066efca97d709c55b9dcb49384a2e49c63e4c83c3378b8cb6147405d2998d113bc29909ebb2fe97fbcdeedfc89d686763bb9a43476a2690600a3cb83858f9198c1b8d5969dd534e609cbf3da0d311c70896772531a53f4e8329b2d8fea575831bfb77283bd688dd6a3004438cc10f0dbc4f5b982fd25325e16b530b6f3fd015036b92e166b5c38238211b81e8f7b92aa492027bd91fe3f8d879dd4b3220c4738fdae0ebd462f554eb1a51987988a130e78c40e0e03c7df1f7527d87899a1fed1ce4155992c753f7b5a8e554b99d14cbe36ab012687e89fe01a87e250bef650611d2be15071119f9649691eef5a147c253eb77eaaeb53d44b1e354e0b5c00eaeba91dc4c5eef389fe861a38f1f9dd4262cc2f85351b7dc1b8dd740f43040c85c5fcf4b3316738c1bf0d31960416a6cab54112987262ea54c06ead156de660559805558ab110145b2df2a601266991f00c9e4dc7567d33834a13a156419eb1cd213629b3ddebe5dce71212c4c08fcadc22ee78687d465b6908cd578729ba23f326c7f02f68a7e567a5c07effefaff4bdf726dc90d37e1f3b72e8332d3ef5016fabf5c73c384816e18d175d718c6fb5f702d39063ae9b92e05e1674cac86a7c34db1f11eb9dcc0898143d8a66e8ca343e4a3f20e593ecb311ac06a36c4e84068de483794bb0fcf516bfb291befb6ff7af518219d6bff8eab670b42e824610522e805aac17808ffeb87ff7bc135de4eee0fd200c4344fb88e4c178fbe517c9f2a4919dc2a3f3c68e849e255106cd5216235fc8d6a0ec04d9f4765c7c9f58a71d2ea63b4446b5ed4cdee274a224d3c4ee5d5edb1b0a7d4fcf7234e612652e06c88f670eccf15086f1da39dcb273e1c0e7365b7fd506b14944f2a387294a3221993e60f0a10a50b662b886e199d3421d0710bf08ebb40a876de217eab4222db41590f13e7660939173606158d050d3d3e5e902b497bea23c38b0715033e0aa117fc2ac13c8f467a9e2547d58e60a68f478b78e6ab7bf8c963a0e708a60cfd9cb5d9e3782bf3cf2449d0df555bbe8fed61c7b55e56b056ae1220e94e13ae292ae2aeb6fac9ab5c5b920889dc0c83d2852ecd25ee82227d112a1ccd356aba1087f72f3885d302b7d302dc44b61483e0d1a692bcf68d96574a462fe217f323c5d88e76cf792fa81e6956800b6c0b5ef54f596dec633ba322dcdb6affe30af64f39bc4907ad4ed4f74e1a067fa82f76fab1d05f0804124e65e2afb43cf97c3c335fa71b7efe743955a5b5910c297799a57fd46828969f8c9690d4e2f102aefb6ea3acd049d811d977827b88ae5c01319beb85ca0a9f3cb835733b8945ba5fe50c23a84864800c87e9e26e3271612006e057a3fc38fbbe52bf7db6bac81d1c1b6c1ec9d12d09a27ef91546cf9f2ac6354e2118bfedd3fcceb77c6aeef1abc9fb985770980d65dbd1b25651268ec9826f979d10d2c9f7b267349c2a2afe2d3a799472a1f555f38c8ec67cd153b3ba55cbc3864fe8bf4e8624d9051fc4270abdf759e1cb1ca09374a747e806002039acea004ba5cc557d04701871c4ca0c5814c1a5912c5ba11dd66a36ca49b098f0d16a1a067f3e5df1c49a6a1ce5a82851a518986d12e0e207eb73c94648ff95437de11e49fe8f1f99f2858356472fdffe262a384e42443cc535767ee5aa223664cd20254e8a26121329fe22b0f64cd59a4b4558d21568e8cfe22272163e3d2af3805703153fa7b252ecc87e2ed1f807d2c8f1f52bd46bab665c207fe031f943a2e48e688c96417496a553eef8ac31d2a284f579464ec7e1e863a603fcae6bda14452a6ff6ea9efd2b83036848905df1382", "32bd8f68ec7f69078469111304bcf83519431481bec07ac9baaafe37dd63dca2aa6a07918d6da72305a3104819759dd829ec38ef1f4f2d96325a1ef4080075dad795c9b99bc0170f3d9868d11edc63e47e3c5bea097abf2817bb5c0e1d682370a22d70310d73280d5b50cd197492ae15176e292ae2fe2e00edb69c55817d5b6fd6eb349c028d35478edcb877d5316cf53d91a91e381bad7c07f015bb7b5f5bbd5047e51207ab93564b2120d34c524aaad5ed7d6334d22971eedc4ace2e319421644ff8f0b072f083e7440dbf8b97dcaa32702e364e481cc7c6fed8b50bddf67165224516ca8043dff05c6a9ffdbfed302ec8587866937ccde5633787e4e2755a81562acef00e150975568ed07a35182c06c79ed2db3c738f4a14d0281a1e649dae9d6b9c13faf164c4eb24a639fbb382776bf5fc01a4ff8273bc8e2229fa421a530f4f625e6ad2ca3b3309ce6eb1b090796771606b41d7a875d62c895937a6f5b8a202a4a215a72977a5ef7a90d63c6be8c4acf2f468a2f67ce26cc13f2d1d39788660eddbea5dd1ccc07578fab26c0d15f64294f8e51aadc1face02f3b990cb49b5898388664dfd0d20aa9f93d0a8a606cded780841bfd8aee52a4c9f701c8461627f94cf4e501ddb23033cf514839a23206306c5158cbbc993614bea44e00b8c927cafd1df01381884bcf35827ec7903f6b6e9eb1c6f6e7e163b5aafd77088d59379437babf32201c99583e65888a06197863fbd2cd814126905e6c4df6a4a4217b7d31535448cc9cc82dc5c3b2d9e939c3b4b6edb4cd2548fc94a2b94cf5c3bf992e5c4b911308df9fb02a4f3bd2565b06486538ffa08adb77fc650b51a3c5d1437a09f8ef2ad418241e9d22e1054133565d13eed0095cfd57364ce634060519d52865344cdac47c5c5c91c3ac77ae18d392146f300fcbd35f61126868b13763eb3978d318f53ca31de3c94449bde5eef91690e1a69d6fb44ad56edef2f8659123fb7022346472a6e218ca641aea266e6e5d582147a2f8e40d0689abfd150c9228cdf6d994ea3d211260a8c6e7ed60b6710babef11ffbd7c0c7bfd6c23f8030164341158ea10697c02855b827561023c20df47c529aa71fbd242425ec2c0fe1d506a0b72bb3b37564390180e0c2597b91c4ab07e02f5e95d71279cb44c01bcc95a2f2cfd095d48e6501ebef72e0696702b1d86506be3e53ac548fe2f567606f0b8d6b9dd0e4cc0fb24d78c6f5c3e9bc59ad74ba7d0dc92646de38bd6f9329cfaf83babd3f94752c44e2e1a20a7c8735d1adf9876360e5916b16761a2e1eb6359870e521099da05eb535b008fbc519aa03b030835033e4d529cc93038eb836c85ca1d61bc454843f0b32992c4f155c18a5cfe15ff5a07eef8e64f741288e8ced16b372d41f82cd13f285a51209a80d7612ea7ed2f11d5bebc20fae499612a9f92e203e49de1fe3a5a8caa9b27f49de9c73e4b7206f87142edfc179cefdc06ba50b8aabeb06f20e6023ce71dc996b53119e6252709b0d42d4abfac576ac907d31403dc260d76d7ab2c6e3dc25a079878e543abb7238f5e0c178388075d1a0abe378dd46e3f28ee782ca60459ba930c5e4083c4d91f4e7538b85e71bb5997c748719ba412ca291e9b9e93e3792dfa471652b710e86bbd38d4c147de34fd1ab283b6b3d8b7eb886b7306137e8c94ed0b18bf7cad1e829186ca25d91bb60af412b37080728f94f8893e6956f99e48cf032eb1604c6ef2021ecea58b87b2673a3f7982ecf16b372d6315f0613dd8b964f5c11218853f0db2f4c12d990386fedd53a848270f9d16c197f48ea850ece23c9b892bfaba8aeefa9d8bda3e801b186ebd7588469028406e0e2605bd66ec849c3269b6e6356ba367e8915d9baa88fdf5d8e039990b858b956daa61faf19856721bc4780662f698cd0ed03ca4f4468115c2c1431bfa187c7edaad651d6f4b361939235622650c1287aaf97dffe04458ef2d10070293cad2ee1b42e405bf3f8a18158d89e58309c37fe6616bca374f89a7566d914cb5ebc32c29141d38cceceaa28bbb02e13d5e8ce5626e6742c54ad953ec5f34eb15e1fb92746cbfdbba531e5e2d3ac6725a02d17007d31d1c7ff2df57af6430559eefd0e814e40553244b8a4a4e31dcce5f5688a7407d262dcf5369a50c964b56b49389d7aa15c3cd40191b21a1faba10db56cf83b2b47aef0944ba252ceb790f52a2537b6d9935029dd9c78631c999ed03c06e9bc608d4a87aec4671fb361bd631699270af5c6304e0fbc309a4d46175ecd1ba5fdfe9bc08dc3745b27af2cc22d67043a8c9d2e616286042cd0286b66de058bf1bc424f035a07804364dd03f85e3353e218c871f9faab4e276a676d0bbc1ae56750a56901b46a65b8d0fe096e571e70b9007d6f2a3c138b49d1883f0d32ac3956b94db4955f638f99c131b7ba291075e7f14692769ea03d8a05a64f68dd34ec9e39b7685192715b3b79463ade1c16dbe3522447078684a50264b26f79f9c6bdf1e8373a3d161f91962f5a850524bff5437bc9b9eecb657141f91aeec634db228a5246a9e2a2f96c005fedcea91bf8c4623894cfdddfe606c7f81cec461678b72cb4542715a72e5790be4f0bd62f36d6d2a1182c19f7832d9dab663c75e89f2f84603e9a172db7d89271ae0cbc7186c17a71204394f63294b540ef407d4b7b83d087026976b3e4b2d3e3252a6e9c281704bbc21333bc15c5f0fd67ecde2a13b763dddc1b6770c28641bafeca1bf333b09d5735b117bd3b93d404afdea4a35b05e910985225472d6363b481adb11672b6cf1ac2e8a6b50b04b355ff9f15fd661b36b8f00a9af9775c7c6fe44fcfc33bb73f702ea96d647cc6758edf04c77e209baec6c2c99bbaf14b43f100e920afcb470bfa5d638e8938908131cebd588f4591f846591b5ac53c32ae5809a807d57b74f08d949eb55f8e21b4b0b6007600a541e0aedbd027727592b6720f4275e832da4a488efba1ca4e94ed3702a2c978c656984960c0893b911aa7ed49cd70d543894eac675b2d9a37659cb89aba129a285323f92918801987f2d87b8c328005ae3fd99c48c1677f057f3b4eb9ed4375ff2cc0b34049276a9007388e0eaff0b20a7d209ce1186707e7773bc95fe97fefc2ba6a06680dd37608d1f76e91fe0a5fcf49577058e4ee270e6966c71f482456b31ca90bd7b43c3781a48eca3eb0689c3a93e9b258d25e49861e6a37e4de6491f6e4924a9fbc6e712fd4aeccdadf5ebf6dcfdc862e11bc52ee047460ed3d0bf6d472500b03762ee040ea403540ef4ce2495e50b64c0b541f7f27d14a6e6e20a3089ef309ce106504788a40fc4ab08a31608ec5237409fe59978339c672ebd22da9af5e791cb41dafad39e6217bee14f7367618e6183ff7280fc9b960871418b2d249b14879dce08f4bf1c1a1150672b5ab73002064d9d2b39941244c3d892d9d901bb9903aa66f224c2944b185c4a4f457d07f9587e850c4a0357bb6d64f0d3ad5f77edad72538dfa9df8569ec6094b24e36fb7a73938a13dac36aaf5813bfd5106e8d4064b9d82b45e3ec7caaa743e393c5de2145f711a6f653ad8de4cca55d9a8c4e90af42aaab37957dd4c9e7bca090dc713820e2395cf884b00e898f5196a8ee68ac822fcbc1a02ad92804d6e01bad3c337e3cdf3050da13a4cc0e5e677d2c225f6a297b4f077a90f52869e548b939a5fdfca735c2d0a58f279e624be63b6ae8ea3e5fc992f821ca38a5f67a05e721c90e79a5192bd6758d3d126ba9646c571b1a9678ac57975894f96f0ae17f0e2ad8cec39e8bc7de599e46bc05811360150acbff1d114cffe1edfba639fb63a1896cda03d42e6cf8fce4473426d92377e23454e8f289c01882305ea571138ae226d7c2951dee3b41f82e00c2425fc7c0b0bf925fdadc8e9abea6464ff49393539495e8b2b2b60a46a256b07b99a961bd11acafdb4235eb1a9d428296f068495861b824bf3be80a7e58dd09062d8141dba93f4b969a3a056cf78c3b91f6987262798045d5e72494bf3954bb56b6f9576ebeb2a4085aca829def1fdcf8a34140e859586819f7c50ef6aa4910c868de43f1c510fd6c049ddedd62dde4f6efbb83959d0a9157bee03c782b0b6e9e965bb0628e0600531372cdf27f510f47f4ec377dda208d43c5da5a0690498ed64dc9efb560295afdd09fe1fad5b1867a44cbde8faad2da662336183620eb7cec6d9bb09e60dcf67d332f28b4b07da39e25ab94fe074bd4919673625de5565a83ec7e42dcdcebe3ee5bcb1d52e7db91e1ac1f76359114080bb4e268d243906cbe5cbab8fef482732b971c4052e746c7136edba055dc6527e0516f5999c05654d28f4e23b56fe7da84d690ebc208193c6859c302346555c76f1e5f92cb4bc8f95abb2522d25a9b31387f3b3002d4c9f6b40d36d19b31fcf7715d9868513eef8de50afbd4f10caef4edebff586250b9965f8414ccf493a5f4c81032a0972c7ee33986cb278f6ff999e8f7be77795241a0c801966071c8f12aba59d9011f46acc1524b9683eef30700f8bab89a9c3d981e61be6d2e7b5227539d0c0227d8d1583e454404283517c2f4915c3612dba632ff9ada1aeb3ae94e9ba31a5c6a9fc555a8b1772fd2f2c7664b50a021f3e7174a65c386278ca670b398afc43c5bc79e6df61766780b73e0bba811fcf7c11541802953d01289f315fc4d1689f27e34ed4179ece68e550357a0ead1c34b7bd7b36d4fd5c812539877255ce67c1f561d58d9389eeda415d939bc3ab34a80e21fe9c6838b751130ceddbd412f8faa61b369670917b4778b0c0244619a6d483466a5ef85ec76a8514fdb1ac5cc429d6c6d6e5904776fced03bb677d9c3929fce21e0cd0f161d6d2e6149f6653f97cf62e802212ad1c6207866ad0fe6261428957f9aa0606262db22ca6490ed5930db5ce49a016265f12ea5262620acf93dc0a22fbb8147d92a11e6ca3999e0cf6d7b2770124db73949f84556ddc3008a0e27c686c40b8f3eac972a4c75a84e76dce3f917f2abe9de474cce9e6fa11711411d471971d74ee7474bf8e612ee769ba9878384f0b61a98c6c62f27dcd96398fc04883cde133d86e396b28c08443217a14efa2fc801cda336afa7481ddb71489df94bb8b432240ed0186511e55d8c03397306d8b67c2fa79da7380a866d40a5af26d5fdaaac09f98eebc69b1b4c0d339115a25c6435c7e6f8905406f0c6dba03d54f32e20333c5c2273613a764a7d594f967f9471a206380ed6f38997a55b7a4287d4f2b1cfd6c15c188b55696b90d5625ed0f33a9dc3ebb89e085bb7e295236b2be0872ec037b43a64b0896d2daaff9058d028298b7aca6a1053cc500885314cd0a304fa04e95a6ee95f859823c1a17808903cdc093c039b11c78108ec49a1af11a3188d61c9517f781745e32a02153a1f9af4fa8d7db0b3d34268c129a2c5f7b72f07342d1f3221037704da06235a6c55c3bec83b705087ca5293765ef24603f36b9280efa3c4683fd25190ccf2342034ac0fe5813ef2aac89c06a0ed565d2f9d590824a09ae785e581628ab9b0de009a736a3939bbe79c62111cf6a16fccdd4f1266017f7e68cfe71898b4ddfcfc58869de822590b124ce4c188eca36087b5f848fa8dc1b8178b943d8096fe3a94e24745026ce50f62632610540fcd8c2db5b9cf714002f8db11807f008e719304f269d1fc41473d14d97f85bcfe4c797bd0529fa8450286284fc57e63f4952e73f96268e7a413754182d5ccfb1fdf5c05a0c016696dae8516e8", @@ -7908,35 +8218,35 @@ static const char *kData268[] = { "b8069b185e8ca97f1772204e5a84ceadc892f8d3dcd2e3314d0d52894beea8ce9a536a88231f4d4386da6cae92841b9b90f78efa335ebca2464dd7017346fb53240150b5effbe0ef6b2d22398879ad07f981a2f079f28e29b73e67b58fa3163bb9411a5be962fdcf419ed7f5e67edb9c325aa6f1440d04a5111dc190e085e7c0f68365ab086f83ea68b4607f7219a4719e5c8288a0bc08889bfbe0dfc469cd9a90d440826ffa49296cd8b157a14f4383d47470bc139e2d38e0656b56f9958b5e08ac1802bffc142f9fed8df02e04ff976ead2817af9cc173aa9328fd73416fd105cd6d5742f509f7ea8864e13d4030555142c5507f1c2c74aa273cb9823e12c54d28842756504b966e2c157a46b20f57154ed063db1d2c31e55642edeaf53c3d078c255f168e5905689c30e94c8ef657e3990e3d32f09d41fbf6c4a360e3cf7957cff3888343f1b24d277d4dd8e70a3defe4cb5247b9f6c24f7469bf5d9270e9a1edd5e764ccd8b5e08927c066e08a792166b7907ef572dc9218600b18ca4c0de84870580871201db507af257d516c40c01902ac4be0a8190fbef31e71cf812dd3fd0d01cc6f4e5abec3bd68cefc1c97aef46e84923c08997c6ad565edbb70b0cd65856fb253cb35f9e10b485713cfcd5dd870ed6ea4d6490ef08323757b067abe2a1ddeb4e4e5b2471eba838682e0c611894bbfc1fbc831d2e6969798016462299a89f2a60860a5ed5fdc5854b2fb6c5b7f7e1b0efd261f70624c290c9207e903900faad06a7690b924edfda733a6e1b9541b556ff4c5585c3530349060eaa8576cc0e56ee3687fd087e26d933e4d0c5cbbd887302c3622a1a747096dedb5fc9cbc86b084df79d205cdfe29bb6e53b8f34d67111dd8218af04142332ddecb12e66d59307633b51d33e465b00b8126d2708d6caf45aa045a800b2860da7ed2b0af0f949a6fb164a9d5c837de7ccb4931c45b6b0c857c52f9030a377a75e5b27623e5d63badbd3d4d15dd9c36dd518f54a7f9f3271686fe5e606e608aacc9114e3ec0f6cc90ac163dd2ffde0fe8f2012477bc3a7a90b9df4233648634ec312a46994d4399ee5b5446c47c4d51658d88d2584bf7fedb329557ff80fcf1a94b03515561539b20e90e4da5c0626b51efeba29496fbc3091b70a73d9fbdb8739606dc5ee6d564d0f54d7febceb590be1e0f2b78fa7b21d5e181c6ba899c40d234e438bccfe37ba779cd8e1194a496e459c9e76fb9d8494a1182623ee747a3349b75bcd90dfc760f6fc72c174b5809789301ccfe6685c69968d1400ea9ecaa2441b8d772ecbbc8b8bbf0cde4887a9729298cbeeb2f9f5c8a823b0634818f78d0d4a79b2252fb5aeaa6c2b89b8818c18a21930e5b740cd842d049e02690fe0c10ff9b962068454d63f4a1bf7f6c5b7bec88db6810bfebfa38071ced9253e21f4be3790c5d96c6e99347b02d1fc6786aa7266bdc6f5c0e39891e772773ff348bf7e54bf21870692d07f2ba6558a20012d80351a9fe55ebbaeee155ffd13f59bab4917f75b1b8a0288340df5e06eee792497cded2f92016c00e44107b3eda12a007e84f9b81b09b21c22760e5d143c7acf0e057817149f07c055e049d96e0490f9b860bb80473a597fa2a842e0d20e7f2dce2eb2c5c68dab59d5205a5c9eeb3087b7cc798b02bd1bd84ac7d6973624fec2443fbbcd67cda5742651a441c0aaeaec96fb1186f66bc33f488c6f243ab16a07227e6796ab2124b62f6cb47255f2cab97c44dc94a090b366aeeee5efbf3846a47a886ff23b29dbec2a3df3b6295127d9b7fa6de46a69c7c195845e996a4384c07d1282dc7cd461fcf7eed91348d7481a4de5b3dae00f7326364c77f746e0271981779dc832edc3665628b504d657103f303443c653c1a1e898f99c794180bdfc2075787c0a6392e57b8afd6a517367cf614474ad2af4c221b448a23c0083daac98f16c9031504e778daf072db58eebf0485fd739e8431b88684f8cb3ca585577e8795415a16f19a11b5a60ae17bd244d12339bf1f5e9610cd19f1b020421c6b5cf6fd3442883cf10dd8ab6ccec576c81ee4cd404e89510b4035947a370442ef46a71ea93703505c240d8430c35d42078f45ff49b2fd382379643b36318efbcaef2d063e5f0306551454752b86adf5e406a9f190a0ac2fd3e8a17f1b02168e1a1a97b909e79c5e820376e6832bc3be73bace1dd05ec791590daf112a232a460a133e0d222d11d6faad404924c8591bd5900b34c829f6ab52fac5ff158b40089324d8e2ffdd53d0dd85b43995f7df351ec38825ea4deb1359e7fbfc8eff2135241fbfd484e1e832b3a680c8e228e5d5e5356818bf93d2b97bb68c6d6e528fcd6bc0fbc3ebb28ad842d94e750072d3a635e69969b778c8f14a97a2d28042a4071753fab49db785b5c41f7761ef49280a1a689642d6e47eb6e03cfcc18313729895c6bdc6bee62a970bcb247099c27c29733de0ed2de83674756ef4c84c41ffb7d47d67aeb8737ba082a33aea742601158d4843e55ee641a0fdc956a3bf2fba5f391b73036f1b4150f2908be5138cc0ee92953e2ef7de0455af425e8c5dcaac16b5e640892c56bf161ff1b94c16ff80bb0c3d6a876d072aeed92e4d4b1becfbee8b5c452d796b92ec452af4f8bc838e7b84dfdd80343983526d315622afdea80ab1ba296617556a993c9169f778c9d9e9256f4585e843fe550d1148d4d1a4891aa0fdff51a8f8914092a162f7959aa899fc3a0d105915bd88c05412fccff60504a0cafae00bb4880b6bd169316f9eb52835267f95c448cfd00dd1e409acc0cf2d7f5f6fdd1325f38adea4fd6f55af71c739ecdafe366dec44f3b544ae5c77c339e8fd5c7e06d28fa7207dd61518b3f327b35c6ab2b6e245fc4560770ddb18820826d95c743ffdce1b1a3af8a71c22beb5b5ef571ecab56373d182c20ccdcda91fc9a1b3bee03ee89cc38bf109cb0070c20d515f0b5339cc9060aabd23c2715f82a44bb10f2d956dd51f9c1d48dcd887b79723f9e7c61c87d61f1414d1ee1945f8defabccc0a4eddc2b5b02e2190d4510ec2b7ad404eeb28ad5a0c5eb838a35f39bf7fa91fc999445ccfa59391363ea6cd7ec389694eb4ecae97ca31524582f207dd120eecb0c6145885eee6bd39c8627c33916379a9d614c929adb64dd3fdb28c12b24d31b66919c4730cafd23fbd0266d471a2bd72b01cbe1649b56b4203c903b7c1e27fd00bdb8146632c2a5916ac678cae648192464082c747da12caf955033f4d942da3bd16690ced4653280abdcbe6ae6780a5512930d8adc6f7badde45a3426b78271bada4c28cbd4c5e5bb5ac958615ef129970ac13c376c7929d60ad1c629f8bab3c610649007dcfbfe6abfb66f4c4585082b1d9167a705cfc685f5fe5b17350e48b405e03a3d3d07f0ab0cedc961137e009b4ecdb9969f6ddbb92fc05bed560080d8450f7235b43ff79c9b460c29b2ffd0b67f4c437cbd8cc3badfe5a9feb3315c0aa6c9bfcb81c87547625038c804061e98346ff3633746cc571c3853ceff7a1842e0d2ddaeafd01f15758954ffac64ba46725acc1e30f6a5872fc090e47640cb4c804a59c55a5ed0316297a72f2bd4154f0452eeb785136f5d9befc4534b2ec2afd932c235c0c58f932aab15aa16f2cf7372633656c8623fab7291525e946550efe47eab479a1fc6c51132856ce09eecf36091892bb06f0f8ccc87f260c858873a4174ba1a64e1060a111efe1224c0b3d2c05e7d1282660b52e35c8f1a68a52cee6516e94b9746917d224c28f68ab4bb4a75a8b47ff343ea1056cf3116ac0660815bf0f6be1a6b98d713647d439c7e2511824026118a96b06c006d27454c3050f8bfbda087b3c7a8397383d652cc3b579fbeb309947773d6fbfdeda2940b7a0bbc2569b31dcac7dbfb8843b5a7bee26e63f734db3eb0773460d040238dbe757db9efb4ef872f781be75f357336b17bd84e2717db6fc23ab1a5c635a2dac389b3b6ff5bbad55711e807fcf207c80183f32efb5d47943bbccd96f5761c3861eb1ad3dc874cbfc5c25435c1a283c662cc13cd65ad6a807020dca215132f6a453ccf26ad4e8bf94dd0f6f8024c17729843d9f359609dd9b25e2a9b3c87622a751ace3ae47ac5675a3011c86d0ba3356ab8f9827bc726c956d11b4617010bdf90ddde46ab21423eb8ffe23da3cf551b23be964f9dbeb79297416ec4b3ac8e3dc7881aebed2a8c168e2c34316fcfff83602ff57cb99c18a71372d9f019fcea16abe0b6b7a27b02d99e2d67564986f122cae4205c0937bdd89a1de0cdb4fb71a4bcacc2a592b02be16e5d32ef4cddc4a52889c793dfe401135ca3baac0e1610f3bef47c89d411a53de275cb290b0715ed885bffe333a2df6bcd681ff0b47760306c0e379b07503e556a0f5313f7314c0d20f53cc41a75f07ef86720a42c88781ac6a968245fba509b43b67a42df8200981bcbee163c88d28b8dd1b70c61f0d558e0c5f827920d0b677e48915b99361dbb017e7df4cb5e2285557751b5dc2427cb7ff490b3f4566b3130b3c373fc877877149c8182c6e8c609eeb46bbc9e353d87cb8dd2fd59112b778881c30a87ee32618501767587e3bf64fbc7b8d801738bc9fb703fb8adeaa7699d4b227a588a4820dd4d07ecbead8910578c190465c14d7a1383b6ff1910017c3cf624b7a02dab9b2713084f45a7bac3d75012c3ea47cb39defc2009ea9fd083dd8b521e7df4c903bd39207ed5fa56c5dc594483e1531190bac65f348baa2159249546cebcf65155cc70b76013883af3df8ed1d8ae43da4cb26eab8d7e13a9ccbc1a8da5cd1026ef1bb5804169bcb25d6724775309414c7fd55d2fa219998a69a911a7e77e447fb12e3a2efea3265c728a0b14139436b50455669838f83463adb4ff0876285c5ce221ff704682f68949b2cce4749a6d442c6fe3a1fcf84e6714a764e19c383174b20f054c7f9488474ad2f8e572c566c1a33457f3ad24347e9f2517769c0a0842e3299b4b693492d5ac595654ced83e3b478676ea56dfc6a0430f356b6a5de1b473d5f9a6aaee5e4d31d1933340f42e09f245ac543fb2e2331f2c30847af524456563c0d9bc4190ab02ff510fcbcf5d8efb0f668587ef0023b0f4bdb193c4c73f7dbf1c7d662bb8e98fafb96bd9015c2b16b8fec91f764add9a57a5a5b25b4c9a836f95043b5fda20dff16e139c35922ce381d246f430036c79b32904979ed54ec4e08fc3fb006a62f90464b7fbbc18624e377710ba748782fc2ab80bb5133311d98a9d234601337b680073800c4408f44040629a3a0d2c6610a28367dd7ab59e43270ff10c3d29d945b01798d01169b13c061b4b60978df83702d7061bfefa1378b2ad3dda42a60179a5e3f080a3e1b8e36d9a689b1f41e039e39c500934d260bc1a51e0f6a87d5b65f65d2bc0bee3cb85adeffff9b0ae52a1bb80e1328a738964d91764fe1416a199b41603aa97fc63489238c6cd17c0d70a16c70118321cd1d3cd2536e40b782b40dc3c6f02d994a9a7270dad180345a48050119d96707c31159e12430a79b15330315c707e2d6843fef43e4454b1e033dd54ba498fe3dab1614aee2e290d971d4cf9d2043102231edeb6b703b4af5a23dc1dfd3f796c4916041aea90dff64d5c9cc9f6181ecd0843d6cc3d1767ee1d660929b953f8b4a51c9f10e90e1fb7dc1130877c46dc26b897e7c2b31cb868e38f9358d7997fc52335f530e41e33c\nresult = valid\nsalt = a1f3edc92da6733ed0c662ac5b9564525810e6", "4d87a2b317749f9eb4068f4df93b5e9bf1f5f2033b8e4cde8782738fb46c37aa1023399f29562033cb35b65ea2\nsize = 16320\n\n# tcId = 88\n# invalid output size\nikm = 38ec0b50e79a870ca225d1e78fdfb74b7fbde0891a16ed1b6e7ce8889d441fdd\ninfo = 9a6c71fc1588b2d2\nokm = \nresult = invalid\nsalt = 78865524949fc5a008997d85b1ce5d33054ea061d6ff5d7bf74c9d36b3502f0b6fc163101376b241024ee063e82d5826ff5395124a18504256544f922b7c1761\nsize = 16321\nflags = SizeTooLarge\n\n# tcId = 89\n# output collision for different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 084332b8a0ab8635227a3b9ee0737072f021c21fbf0b087940939f34f685c0a0\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 90\n# output collision for different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 084332b8a0ab8635227a3b9ee0737072f021c21fbf0b087940939f34f685c0a0\nresult = valid\nsalt = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 91\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = d41d1d366b10f6dd7e886e5030ccd01ed14ed918407c84f12f8b9a2ed3a5841c\nresult = valid\nsalt = 0102c651e047fed9c217bcf915520532d44999534c1e7e7c87311093d7a3681aff3e2d335b3c6139b9fc66dcfe35573b36a329a550c4cd20bfe2a90dfea50167ff\nsize = 32\n\n# tcId = 92\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = dbbe9ebd37e2545d08d715013b50f31fd1f7089ebc2866191e49e774c537b17d\nresult = valid\nsalt = 1a57a60677a3c97fea6d4d6eabe0201452130c58eef435bb9cbc21eb65f1cf2c879639d10b9a580b1eda822aa5f406b939cea2ff9be10c56f0856709abf33a08\nsize = 32\n\n# tcId = 93\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = f05091c6083c24742adbe5fbdf10a941783517d568e96dcc8cb55db90756d8c2\nresult = valid\nsalt = cd920e8dbf19ed66\nsize = 32\n\n# tcId = 94\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = f05091c6083c24742adbe5fbdf10a941783517d568e96dcc8cb55db90756d8c2\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000\nsize = 32\n\n# tcId = 95\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = f05091c6083c24742adbe5fbdf10a941783517d568e96dcc8cb55db90756d8c2\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000\nsize = 32\n\n# tcId = 96\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = f05091c6083c24742adbe5fbdf10a941783517d568e96dcc8cb55db90756d8c2\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 97\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = f05091c6083c24742adbe5fbdf10a941783517d568e96dcc8cb55db90756d8c2\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 98\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = f05091c6083c24742adbe5fbdf10a941783517d568e96dcc8cb55db90756d8c2\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 99\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = f05091c6083c24742adbe5fbdf10a941783517d568e96dcc8cb55db90756d8c2\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n[keySize = 512]\n\n# tcId = 100\nikm = a75ce5b072311acdf290ceb4c6fd25eb6c52ecabc8ed1ffc698d7556d1132180e2888bbe6a798d891e0c8c5e0f79cabf3d27df56d472be152aae155b52d9a9f9\ninfo = 69d2aa66efec2cca\nokm = 8b025c9925f105898fe8f75da1839b683beb73e349dd08b79a3d80a7b29e7d9c1eebb5cf4c902371b31376e44d49ea39725ac912d5055c8638ce0771a8edc999\nresult = valid\nsalt = 8df18f4f797c4be88ca6b2935441a1100db080759c042a6d2c37d2e6fea9fd6fb066805c467b7557c78d078ae44dcb886e5e3d5f74a96bf6394aad36847ed8b7\nsize = 64\n\n# tcId = 101\nikm = 5be4b9756eff71ebe87fdb5933e5d88d51bcaf384cc289c16ec642d67f2e9236c04106e01ebe7956bac010e4107b6b788ed8b3916a39b59c7c01161cbc2671a7\ninfo = e496bea60a731eb7\nokm = 02487460b110121d3df3746d7860332b6d67d746f96ff8e7bcb2d62481b653dcf67903b25aabaf9031b370959105c9136536b52dab810cf041862e73d3352f77747814aee2d74cfa29840dbfbca242f38b95ea26d4a540edbdab3fbeced1c767d35a73b4c2ff180eee75b4ada9739b7bd8c75c3bb03589ab\nresult = valid\nsalt = 336a871d315b7d2ae0a0d24febebf0702d9f039ca97146cc0aa2341728824e83553e6eb166e954dac33e4d6a2437309d0980e26d1c7665ddc79b2e9ba3354262\nsize = 120\n\n# tcId = 102\nikm = 45102dd5f609c2f9352b91d8b492d83b5ab34976372b4ac814bf82cf0dc4f3875cd31dfd5897022458fc7bb8e5d2930a620909b7385ba4e48c8395b50d7d07fb\ninfo = cf6db9210ef18e3d\nokm = 146e59745a9d65fa6c98308b6f162566045d2f459a09eeb7ef7cf15e076fe8093fa202d15b12063e55d4b5ab4e80d58140b2664d944e33d8b2a72a3ac307ca51c23976adb1ff9ff04fd0fcbd21edea49890c12698b0600b3b70a61dd228542d47e69797122f0734c08d53f51afeccea785af1028b35e6ee911fa0d98f76e2aedc517f35d719c199b6a73aa867ad31253fc1c1d612ecc913b70c2f6b983fd50eccd8a20172052c8726ac6ecad97b8bc8770ba5fd59eec423160828fd8b1936a5ac5bbccfb6398cf46dc3e19df40d315091f2ae3df875334030418143e7b791cd1f732935482fdd585fba2f495973436138c7fc106058f9538b92f055ea3bbfec1\nresult = valid\nsalt = 76d1494d3631034558ac7108a69b79f7e38a45aa50783af41bf8c19531fdb30782e7689a50a4eb1391415ab2e6085b1e246ce0e6c35a5e02910c072a241cd8a0\nsize = 256\n\n", }; -static const size_t kLen269 = 30701; +static const size_t kLen274 = 30701; -static const char *kData269[] = { +static const char *kData274[] = { "# Imported from Wycheproof's hmac_sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HMACSHA1\n# Generator version: 0.8rc21\n\n[keySize = 160]\n[tagSize = 160]\n\n# tcId = 1\n# empty message\nkey = 06c0dcdc16ff81dce92807fa2c82b44d28ac178a\nmsg = \nresult = valid\ntag = 7d91d1b4748077b28911b4509762b6df24365810\n\n# tcId = 2\n# short message\nkey = 4cd64efdb76df5a85dce3d347012cad06b0c3db4\nmsg = 6c\nresult = valid\ntag = 6d3d37af55c75d872d2da07b9b907ba22ad487d4\n\n# tcId = 3\n# short message\nkey = 52e1995025297fe7b793dc8e1e4f7d312fee2700\nmsg = 29df\nresult = valid\ntag = 82cb24bfa38fbdc91d1eea2d2dc1ce6e60ff881e\n\n# tcId = 4\n# short message\nkey = f3edfa003d89c4e2a6422e77a01b8adbd7ac26e4\nmsg = b015b7\nresult = valid\ntag = cb244ca6ad233947378436076fbfd20c9c8b842b\n\n# tcId = 5\n# short message\nkey = 4b07ed4e0c8ddaa1f76cf0010728679c8857e18b\nmsg = 3b2c1afe\nresult = valid\ntag = 924125532e6b625e7c5a8dcd1614e04334c067cd\n\n# tcId = 6\n# short message\nkey = 7f532c8ec83cb21dc98af7734c64f5fd9167ec30\nmsg = a33c6f9826\nresult = valid\ntag = 0d25bc40f60fbed36d8d7a1045ffa60d88484d56\n\n# tcId = 7\n# short message\nkey = 99e60c1fc0cb3e6ed836619775e37bf15b2cb93f\nmsg = b129bb88ceaa\nresult = valid\ntag = 6924d833a3e74b48f991e6c44173565fdf8c7470\n\n# tcId = 8\n# short message\nkey = 53845f10344b7f39eddbd3e44231fa802d7e1aca\nmsg = c6f5b1cee31033\nresult = valid\ntag = fd4b28273d3ee8cc24de2d8dad23ad4f355240c7\n\n# tcId = 9\n# short message\nkey = e3220700ce24a010cf623f60891e4f298ff26b11\nmsg = c97afb5063a9dd0d\nresult = valid\ntag = 383b103ce9054cb74a0431d16da99d8233e94fc2\n\n# tcId = 10\n# short message\nkey = 466c061ddcf3d9b285a2900f8725971b733f850f\nmsg = 89024ceda7de3c114e\nresult = valid\ntag = 1b81f1127635233383b6ea5ba8fd68eb5112ef0a\n\n# tcId = 11\n# short message\nkey = a81f9f51b041ff29b8d705bb408f854ccbd7e5ab\nmsg = 032d866a270762cbae24\nresult = valid\ntag = b72ba0c89d010215a8f280616acbd8640fe86cec\n\n# tcId = 12\n# short message\nkey = e60d0b14886fe6fa2c839329204d84d81026b7ab\nmsg = fda7f48c11101255e02c8d\nresult = valid\ntag = 2be7bb541cede978f541e2cac0ab6451060e3e83\n\n# tcId = 13\n# short message\nkey = c090ef122a29348740ccd571d98407764b2adaac\nmsg = d1fe3dfa80ade7087efabb52\nresult = valid\ntag = e6c1e0c3ebb7750d66a50b6abccfdef9c2599008\n\n# tcId = 14\n# short message\nkey = 564a56290e1aea0522f19088a88ab4dce4c7cdf2\nmsg = 4213bd3cdaebbb1ec1cc81866a\nresult = valid\ntag = 6d1d5808c085ad512487debb57fb93514b205075\n\n# tcId = 15\n# short message\nkey = f898459d272fd5e43b062156f44958d85d97ea3f\nmsg = 5e86b05522eb65a4fb7b932cecd5\nresult = valid\ntag = b778f421c2d1e2701e75da6bd1bc65379b80e879\n\n# tcId = 16\n# short message\nkey = 7d5cc53f464e759438ee90b47f2fe67aa83d6b52\nmsg = 9f38ea80122b40f742a00c2e83e085\nresult = valid\ntag = c80ce6d33fe868432c262766fd23bf431e313882\n\n# tcId = 17\nkey = 33e9140175519b2f1619b44848331763c756fad4\nmsg = 7de0fccc83b51c29e5eb1b658c102438\nresult = valid\ntag = 34de6b8f479523870b8f905684672617669b0607\n\n# tcId = 18\nkey = 0ef29e7c961da37afaea8182f28738d22c340232\nmsg = 165bb8e5c6f0a3ae40946dc807aee84645\nresult = valid\ntag = 78e6fa53ec213e9019d47ee7529d963a8a252942\n\n# tcId = 19\nkey = 203cfad921e605c80d7aa8b64d3bf18328b7a7a0\nmsg = d289c7cd10d996d5daca1410c37815b237f74929588c5ae4\nresult = valid\ntag = 27d96da41895bf53d150ac15e7c31853f56ae363\n\n# tcId = 20\nkey = 8eb7416efd0c73c86b91df0d58891fdb738f40df\nmsg = b415cb7cd384a1035d2bac1f7b96ae858dfd44c467030f304e817d11b9f9c606\nresult = valid\ntag = 24cb16323b7ec47e3add8f55cb9920aa7c1655de\n\n# tcId = 21\n# long message\nkey = 6fbb3c55e935e0a002c170a9122f1f7037bc0c59\nmsg = 36ac9a8cf0223ccf5d9048be9a65df4a1f40aaa857ce13d621f601bdee1fbe803171002d1fa634a1977dc23d9aa8fd\nresult = valid\ntag = e2fe8b343cef4b9754308408930526159537ecc8\n\n# tcId = 22\n# long message\nkey = e40f6206105f7800a1f190602bb6dde8057c3a87\nmsg = 10463b771fa586c5ed5c1f6488d793299db40fdd4f3e53334ae3ff8e09e5a879da06eb46d210ee0af0c8251e6c07aa1d\nresult = valid\ntag = b5dfce5998d2e321800e0e42762e62ec7a81448f\n\n# tcId = 23\n# long message\nkey = f04cc641ff67aba4ac2d17e6a042b6ccf86ae1d2\nmsg = 73c179acc26ffd0710b6cb3f73570702c9c059bf685614bb0ba7973ab875ff882d9aeecea4ef452c8893224472cfa5b61c\nresult = valid\ntag = b7d1e63fae54638082a9cb58c69fac9efcbee174\n\n# tcId = 24\n# long message\nkey = f61c1a878550d27aa459b3016b31731b89630d36\nmsg = 82b378d40ca04ad478a980d7b46e56c9967bc4e110a7add8bcbda411c12de384f41324e9df888d81702ff2b9e8752986ba081363eacc2e396f6b5fb01bf842358f0145d569d34fb3b4e24ee9dc9103284d743c52ea8661504b2db42f221b6d49b605fde34aa555e33ab0a140f61f3cda\nresult = valid\ntag = e688199489c9d3938f2e33d7cb3fc81bad4ffb8c\n\n# tcId = 25\n# long message\nkey = 8c29eb661fb633087f2452d057f98d553d2846f1\nmsg = 021b968c4ce337595154d90e44229980f0e2b64776f562ea25b24881637b44375bde65e5f9418bf163e2aacd37bd10319729ac596615a35cb632e0ffc316936a68acf4c7ae3ad36026124cee6d204f10432f08157cc32c5f4bcadaee67bd42bbeb826a9e9c8af9f554f7419fb265338d22bae2190bb644b32fe9bb6a2287aa\nresult = valid\ntag = f940df33b09965a3118c847c2ae1591690d0405f\n\n# tcId = 26\n# long message\nkey = 6316298f3aadadc664eda2cedf17669bc80d44ae\nmsg = bab807df54c009610a5c3f1e81605f6bf7d76b299d7ebdefa70f5e2e0b979011d191ead39c3bbe5dd2658347eb172950a1e03a01552bb38add33bac832b7177a77b08eb11cc1afe3ae84daffe4c4e88bc441e54e4dcbae3e0d5639f635228d811f0a043b13d5c91899c26bce2da2ddabd21b2ee668a21b454928915d6585408d\nresult = valid\ntag = 23b9a6d6a9c7cef6dce537722f4557b65dcdde99\n\n# tcId = 27\n# long message\nkey = f291696bf4f9655a00c9a2382bd1487342358714\nmsg = 32a650b5307d94b23139be64d470ef1492d57ca7af98205bf9bce8854ba8f5204880b2e9d58ddbe2e7bb21e6e0673f5e1a39f505909227475e41c1d59c73a933b13f4b07a75cb9f3279cc3bf61a6c09e3b9f755907491b9e745bfda58ad4e2304ff7525b41507a51a2fd664a2ee98cea00148a3663d77c47beb055bd45e7df48f6a0ce66c0a2d9a848761a4575d195d74eef5bb78c0993557a25ad7ca32e0a96b2518d9d8a180f357402a44217f1e36a9138c0909faffd0e9a907048584bb03a4e06fc69c463f39542dd2c7c81467d3728481bbf6bb60259604aa33a2d4c6195012fdc7aec99e2175aeb2d0c1f680964d63ee11418cd4d26e77ec131108417\nresult = valid\ntag = 3346bf23e52231a4aed773fd73e58d918580ede5\n\n# tcId = 28\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 07e8ad50fc1035823661d979e2968968cecd03d9\n\n# tcId = 29\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e5641600cedd7e12063deaea0788785f56113520\n\n# tcId = 30\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 04e8ad50fc1035823661d979e2968968cecd03d9\n\n# tcId = 31\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e6641600cedd7e12063deaea0788785f56113520\n\n# tcId = 32\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 86e8ad50fc1035823661d979e2968968cecd03d9\n\n# tcId = 33\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 64641600cedd7e12063deaea0788785f56113520\n\n# tcId = 34\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e9ad50fc1035823661d979e2968968cecd03d9\n\n# tcId = 35\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4651600cedd7e12063deaea0788785f56113520\n\n# tcId = 36\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8add0fc1035823661d979e2968968cecd03d9\n\n# tcId = 37\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641680cedd7e12063deaea0788785f56113520\n\n# tcId = 38\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fd1035823661d979e2968968cecd03d9\n\n# tcId = 39\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cfdd7e12063deaea0788785f56113520\n\n# tcId = 40\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fe1035823661d979e2968968cecd03d9\n", "\n# tcId = 41\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600ccdd7e12063deaea0788785f56113520\n\n# tcId = 42\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035023661d979e2968968cecd03d9\n\n# tcId = 43\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e92063deaea0788785f56113520\n\n# tcId = 44\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823761d979e2968968cecd03d9\n\n# tcId = 45\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12073deaea0788785f56113520\n\n# tcId = 46\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc103582b661d979e2968968cecd03d9\n\n# tcId = 47\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12863deaea0788785f56113520\n\n# tcId = 48\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823641d979e2968968cecd03d9\n\n# tcId = 49\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12061deaea0788785f56113520\n\n# tcId = 50\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d879e2968968cecd03d9\n\n# tcId = 51\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063debea0788785f56113520\n\n# tcId = 52\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d979e3968968cecd03d9\n\n# tcId = 53\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063deaea0688785f56113520\n\n# tcId = 54\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d979e0968968cecd03d9\n\n# tcId = 55\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063deaea0588785f56113520\n\n# tcId = 56\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d97962968968cecd03d9\n\n# tcId = 57\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063deaea8788785f56113520\n\n# tcId = 58\n# Flipped bit 152 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d979e2968968cecd03d8\n\n# tcId = 59\n# Flipped bit 152 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063deaea0788785f56113521\n\n# tcId = 60\n# Flipped bit 153 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d979e2968968cecd03db\n\n# tcId = 61\n# Flipped bit 153 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063deaea0788785f56113522\n\n# tcId = 62\n# Flipped bit 158 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d979e2968968cecd0399\n\n# tcId = 63\n# Flipped bit 158 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063deaea0788785f56113560\n\n# tcId = 64\n# Flipped bit 159 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d979e2968968cecd0359\n\n# tcId = 65\n# Flipped bit 159 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063deaea0788785f561135a0\n\n# tcId = 66\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 07e8ad50fc1035823761d979e2968968cecd03d9\n\n# tcId = 67\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e5641600cedd7e12073deaea0788785f56113520\n\n# tcId = 68\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8add0fc1035023661d979e2968968cecd03d9\n\n# tcId = 69\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641680cedd7e92063deaea0788785f56113520\n\n# tcId = 70\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035023661d979e29689e8cecd03d9\n\n# tcId = 71\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e92063deaea078878df56113520\n\n# tcId = 72\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = f91752af03efca7dc99e26861d6976973132fc26\n\n# tcId = 73\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 1b9be9ff312281edf9c21515f87787a0a9eecadf\n\n# tcId = 74\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 0000000000000000000000000000000000000000\n\n# tcId = 75\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0000000000000000000000000000000000000000\n\n# tcId = 76\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 77\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 78\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 86682dd07c90b502b6e159f9621609e84e4d8359\n\n# tcId = 79\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 64e496804e5dfe9286bd6a6a8708f8dfd691b5a0\n\n# tcId = 80\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 07e9ac51fd1134833760d878e3978869cfcc02d8\n\n# tcId = 81\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e5651701cfdc7f13073cebeb0689795e57103421\n\n[keySize = 160]\n[tagSize = 80]\n\n# tcId = 82\n# empty message\nkey = 5ece0769742feabb6644469c9b264326b3deb126\nmsg = \nresult = valid\ntag = 344f8351f1d2773cae9e\n\n# tcId = 83\n# short message\nkey = 4ee9f9a93b2ddfe551281b397ccef844fc21af3a\nmsg = 2d\nresult = valid\ntag = 3aab1a2c9a2f2b8ac840\n\n# tcId = 84\n# short message\nkey = dfeebe9a5c181afc605ff63b22bf349ebdb6c7fb\nmsg = a5f3\nresult = valid\ntag = c3b7152230dacae4ef48\n\n# tcId = 85\n# short message\nkey = c5147ecd59b7d42315d5e3a55ec8b3a320c8d615\nmsg = 371777\nresult = valid\ntag = 0abb78a2c67c565f89b1\n\n# tcId = 86\n# short message\nkey = db0da5659ba69ce195a69524508e437c688f7147\nmsg = 4ef4ec44\nresult = valid\ntag = 4062faeb0b406698b740\n\n# tcId = 87\n# short message\nkey = 495d6c1191852ecaf0573e6a77610c32acf5a117\nmsg = 1566ae63ce\nresult = valid\ntag = 45cbefcd9c7eeee37ae5\n\n# tcId = 88\n# short message\nkey = e5cfe7dc67514c4c75d28bb805d0700bdea0d669\nmsg = af1a6b15b622\nresult = valid\ntag = e867269d506a37e8a62d\n\n# tcId = 89\n# short message\nkey = cf1b8b902512186e38c38165d6e587bceecae87f\nmsg = a59512152c7221\nresult = valid\ntag = 1a125b21412cdc596894\n\n# tcId = 90\n# short ", "message\nkey = d0157fb40c7739ae506aad7de60f32ccc3325583\nmsg = 1292df8d53d16f3c\nresult = valid\ntag = 9224f11bff0e49b9aa95\n\n# tcId = 91\n# short message\nkey = fd55b81edd55a15bff409129e9930f1ba1763c33\nmsg = 05220a6997533c699b\nresult = valid\ntag = 3b2d07dc8ca206ba16c4\n\n# tcId = 92\n# short message\nkey = 079937cf3bd42864d5b15c62bdd92f275597316d\nmsg = 5ac13ce1b1f77724e281\nresult = valid\ntag = 0c24afcdadd8538977b1\n\n# tcId = 93\n# short message\nkey = 545b13e1f39f0b7ca9252bc596277278166ad410\nmsg = 08a7bc90732d54381b6e30\nresult = valid\ntag = 9bf7f121365a82c2ac69\n\n# tcId = 94\n# short message\nkey = 25385e9f89b66098ee8162aeca03bb45b313561f\nmsg = bff236aad71fb5daf7fc43b8\nresult = valid\ntag = 44db86e7a1476226dd86\n\n# tcId = 95\n# short message\nkey = 9b68139d93a88fe34cf9f83006c03b3164b60468\nmsg = ad672b9719c10863fd6fa8db88\nresult = valid\ntag = 2d17a88d87aae7dbaced\n\n# tcId = 96\n# short message\nkey = c3b785915e137544dac542cb4bdb16d53036fb11\nmsg = f8c1edb469b93c073b6f6bf74cca\nresult = valid\ntag = 16713d61fbb4149f500b\n\n# tcId = 97\n# short message\nkey = da67475185b3615055f971819db27871b23c75d0\nmsg = a176533319bee5e43d8f0eafb77bb3\nresult = valid\ntag = fceece892852d4a26070\n\n# tcId = 98\nkey = 0cf146ca7a254db1e001a29ad03c5e6dcbe7140a\nmsg = a83df5d099854eb6ead7031c51460357\nresult = valid\ntag = 9bcf7513206e27a4697d\n\n# tcId = 99\nkey = e038dff028227dc4b4d7453db3070108465dd5b2\nmsg = 7ae4e30834db449e4244a9fc0322193e7a\nresult = valid\ntag = 9aa8544a9afdd920c0f2\n\n# tcId = 100\nkey = b399fcfd1ad32140879aa0556ac34d8b5ac267f2\nmsg = 0e3f0fc5cb1456fede99f86a056f640b8f5e5e1b612f25f6\nresult = valid\ntag = fa095c6faed0f086b215\n\n# tcId = 101\nkey = 2bf7d201ef44241a22ae4b81aab910d22c2db918\nmsg = aa0afaf3af36548227349adcfcb6bf998a7fa78d29b87a0f50609c42edcdb3dd\nresult = valid\ntag = 708ec45d410b1fe075c8\n\n# tcId = 102\n# long message\nkey = 48ccc3907c3612a18294fddf2660e33d9cb787fc\nmsg = edbb680243a825068eefe5ba184e5eed4b7f85ca3b511a42d655be3e05d8ff124541b3d56a10a35cff8da8b6229ac1\nresult = valid\ntag = 3cb7fce20df8385cf6bb\n\n# tcId = 103\n# long message\nkey = 227d796b7867409db3de1ffa3cfe376704044f01\nmsg = b6393ab18376c025e2d8e00ca774a51aec19dc4a89cf6a9f8fc4aba81d73b3907efef1a0d018a53cb8b8ca1032e31583\nresult = valid\ntag = 525387c81c2ab67aca74\n\n# tcId = 104\n# long message\nkey = 5718e700c48a7971350d8a11b37754ae55a9aad2\nmsg = cc95286e9b3ca936191aff8731e6a17806a0958b0b1a39977c46395240641e97d5395a9c8a9d36281eba825a94e8b1ad79\nresult = valid\ntag = e54782110d40efb54343\n\n# tcId = 105\n# long message\nkey = f56aa792795eb03ae0990440714ab16cc4ad18c3\nmsg = 7a024d995addd38d967bc3b41641738b69897d8c52b7aff961a700cb68fa7481da0a3690a151ce09c95b4da60f7cf28990017292893bbb2f81a4dda45fe8639877ac5abaebbe00c1fd179eaaf7dfb4d50929371b9ab8b7d3531a63ab188d7b99160060475c33e83351f65d5e329ee8bf\nresult = valid\ntag = 1e2205d17ad4de3f1ec1\n\n# tcId = 106\n# long message\nkey = 00be0034d32699b1335d8d4e506235ee4f07bef6\nmsg = 639e828d88bf0642be0a541b1c3fca07609eb98d23a8b2cd4e60e139515e4ff440dfda1bc19392feffed74164d6a9d8f5bafe53fd397cb5ee1dcdf9bfc86169f1bc38ba57f88d7e8c6728c35fc07128ab6c396bb3ef3c14d13a05f8c3453353e850dc1b291ac7061ab52f121663f18b024e5cc0068328c88f52c20cd21793a\nresult = valid\ntag = 6e98973d3a775ac508e7\n\n# tcId = 107\n# long message\nkey = c5baa750a8424450f1b4d453c58e29c462e52639\nmsg = 137c7227a192bed26d08da886430f010094243b5c4686e6831e48db450045aa1d7e3aecf193eaaa1a73905f5f1190659a43ed4d10bfca5668ebeb343b21ff71d0737f81f67392b6459aa95f9441f699bf45fee24867a98a8a6c57f972abe3e400fd64ce3e5b48622a0e99e08d424250fa00ed0dfa1193f936c78af276a4b442b\nresult = valid\ntag = 490dfd2d5e6ea130f6a1\n\n# tcId = 108\n# long message\nkey = 6bd486ce934c2f5fe38a19423d257bc5d808e367\nmsg = b8a684ada0a01405614b1fa66ebab8b0356e33b889b81b3eb68d13b05c4e60c724785e634c4ec0081cc6bbdf213db7254f92c0a858bfcc3d63a4e4dfd9e75bd4839ac05751c23cb59945f4c3660d2b3009f5b08a596bdc33070244bceea11180ac0906404518b09d5d8612e0d8e69f4b9e55bbc053b56574711b02956db3f3bd8f6c42065871255854a161e57100adb82cba79893aad715dc3df1488b3edb56e58b89c0be3cfab09a3df40524d2d3251b0fcf7faabfc75f50026795060c1d62872574a769e3da0e19af1b5e25514ae17a160c8d1eb253c9f66ec3df789ec0c6c704a9e2fe8ef7e9bf8e8164f86d09d2a23698733a8e40a279cd5fe02c295ff\nresult = valid\ntag = a594d26d98b53b4063b2\n\n# tcId = 109\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 07e8ad50fc1035823661\n\n# tcId = 110\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e5641600cedd7e12063d\n\n# tcId = 111\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 04e8ad50fc1035823661\n\n# tcId = 112\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e6641600cedd7e12063d\n\n# tcId = 113\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 86e8ad50fc1035823661\n\n# tcId = 114\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 64641600cedd7e12063d\n\n# tcId = 115\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e9ad50fc1035823661\n\n# tcId = 116\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4651600cedd7e12063d\n\n# tcId = 117\n# Flipped bit 16 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ac50fc1035823661\n\n# tcId = 118\n# Flipped bit 16 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641700cedd7e12063d\n\n# tcId = 119\n# Flipped bit 17 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8af50fc1035823661\n\n# tcId = 120\n# Flipped bit 17 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641400cedd7e12063d\n\n# tcId = 121\n# Flipped bit 23 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e82d50fc1035823661\n\n# tcId = 122\n# Flipped bit 23 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4649600cedd7e12063d\n\n# tcId = 123\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8add0fc1035823661\n\n# tcId = 124\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641680cedd7e12063d\n\n# tcId = 125\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fd1035823661\n\n# tcId = 126\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cfdd7e12063d\n\n# tcId = 127\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fe1035823661\n\n# tcId = 128\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600ccdd7e12063d\n\n# tcId = 129\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035023661\n\n# tcId = 130\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e92063d\n\n# tcId = 131\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823761\n\n# tcId = 132\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12073d\n\n# tcId = 133\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc103582b661\n\n# tcId = 134\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12863d\n\n# tcId = 135\n# Flipped bit 72 in tag\nkey = 000102030405060708", "090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823660\n\n# tcId = 136\n# Flipped bit 72 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063c\n\n# tcId = 137\n# Flipped bit 73 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823663\n\n# tcId = 138\n# Flipped bit 73 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063f\n\n# tcId = 139\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823641\n\n# tcId = 140\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12061d\n\n# tcId = 141\n# Flipped bit 78 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823621\n\n# tcId = 142\n# Flipped bit 78 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12067d\n\n# tcId = 143\n# Flipped bit 79 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc10358236e1\n\n# tcId = 144\n# Flipped bit 79 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e1206bd\n\n# tcId = 145\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 07e8ad50fc1035823761\n\n# tcId = 146\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e5641600cedd7e12073d\n\n# tcId = 147\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8add0fc1035023661\n\n# tcId = 148\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641680cedd7e92063d\n\n# tcId = 149\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = f91752af03efca7dc99e\n\n# tcId = 150\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 1b9be9ff312281edf9c2\n\n# tcId = 151\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 00000000000000000000\n\n# tcId = 152\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000\n\n# tcId = 153\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = ffffffffffffffffffff\n\n# tcId = 154\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffff\n\n# tcId = 155\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 86682dd07c90b502b6e1\n\n# tcId = 156\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 64e496804e5dfe9286bd\n\n# tcId = 157\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 07e9ac51fd1134833760\n\n# tcId = 158\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e5651701cfdc7f13073c\n\n[keySize = 80]\n[tagSize = 160]\n\n# tcId = 159\n# short key\nkey = 1d9535a0daea9dfe443a\nmsg = \nresult = valid\ntag = 7436089fede3291c0c421c9ad13c357ec8660bae\n\n# tcId = 160\n# short key\nkey = f5c2c420c6f056467fca\nmsg = bc8a29f52e57581cb89a86e5d644a14d\nresult = valid\ntag = 1eb76df7235c52371d86113f5423628b2eb7c3d5\n\n# tcId = 161\n# short key\nkey = e59b0276e27a0abc75f1\nmsg = 061ca1a1af51c5133728c414f9646b3f50223e9b2055707032e754dc1d31964b\nresult = valid\ntag = 2081260f65316df2956aac723a9bd7d2225a8669\n\n[keySize = 80]\n[tagSize = 80]\n\n# tcId = 162\n# short key\nkey = b18aba1171cc2ffc7d58\nmsg = \nresult = valid\ntag = deeb3d6d81e33d1cad21\n\n# tcId = 163\n# short key\nkey = 23082066e8c45da82fc6\nmsg = 06c19c6ee4d2f015769f6d46eb46d6b4\nresult = valid\ntag = 747cd928e8831917c855\n\n# tcId = 164\n# short key\nkey = a6fa1e04df38a78667eb\nmsg = 51a4ea38e5566d6fd803aec5e073e087e9ae00d37d4a98d559074ebffc7658b7\nresult = valid\ntag = ec8c200c1ddad6d3aad0\n\n[keySize = 520]\n[tagSize = 160]\n\n# tcId = 165\n# long key\nkey = ab92e2cd40e00b40c4442dd7671c067c7792af28e60f2585e87f163bf3bdfca7f553cec71b0065025500c48e2070984ad9e24e733107ebfde27164a4828981ac20\nmsg = \nresult = valid\ntag = 7a29b47ff6ae90c99573d8c922a23e83a62b66bc\n\n# tcId = 166\n# long key\nkey = 3b47a5d5b72babe116e61919600cb980c904c298ab91fae3db9c82b0f38a18888bc05a418d65d68f8850937559bb37325bce04d0e5d175a24fea309895f5705ad7\nmsg = d71862028fcaf13422bf32ac0c5f079b\nresult = valid\ntag = 8019231e77aca645182670cadf887afd4b4115a7\n\n# tcId = 167\n# long key\nkey = 6e6c43df9bb6c6b8fe414a183e738508f0aca41d5beef6df1b260c39e1979b54683622a4d53354231bef6c35e129f85f822ba09198aa30c65ee60e4202de8cd102\nmsg = 98f0a4b9a36e173d89730a3b370777c499b4cff2846f50bfb88fbbbc547cbae4\nresult = valid\ntag = d1653c90fc591e3a3c285a3be8b12ca9b2121e88\n\n[keySize = 520]\n[tagSize = 80]\n\n# tcId = 168\n# long key\nkey = 4f00fd17ae82a6252ada98280bbd895d743fc4c20bc9e615d8a786c79e454c2b1341e24254fa0371fac86e7c0ef1a7df5c16f3b3569fda112cca8685faecbb8923\nmsg = \nresult = valid\ntag = 6802ca52be056d66b9a0\n\n# tcId = 169\n# long key\nkey = d22ec568909990c213679f7072eaf19763508ebde6962c75e7429c5f2454d4b5472811eea8e02fdc89ec386bc6f41d2ad8a91d116b2cbc52b80d357127d1555a66\nmsg = f71b43e0cc64b5409e6501ca55a8d450\nresult = valid\ntag = d492a296860cc5a89c5f\n\n# tcId = 170\n# long key\nkey = bcf6ad6e5c7e2200299ea8602efb42b409292346f78a0e57a789ba17b17ed608e88497e2bb4ebbbb3ce7750d222b3bdf848d4dc8d49b5b60378fb93ce3f66ab4eb\nmsg = 586f5ddbc372c0711b77e4b87d345d62b6de55a1ce6fa18de3346c86be5cec6e\nresult = valid\ntag = 1de9aefcc53130245a6e\n\n", }; -static const size_t kLen270 = 35704; +static const size_t kLen275 = 35704; -static const char *kData270[] = { +static const char *kData275[] = { "# Imported from Wycheproof's hmac_sha224_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HMACSHA224\n# Generator version: 0.8rc21\n\n[keySize = 224]\n[tagSize = 224]\n\n# tcId = 1\n# empty message\nkey = 7eef1e40253350eb9307cc6bd8ab8df434bc2faf7095e45b50ffdd64\nmsg = \nresult = valid\ntag = 45b466021214d19245506900532f5272f44b5ad9b3d829f0f5c2108c\n\n# tcId = 2\n# short message\nkey = 8648ee936c6ebc5ae4bb48c1139a54e3ac5d897beec492dc4d740752\nmsg = 2e\nresult = valid\ntag = 5b72e3208679e63f929e6ee19a257d0555f21484c7caac7c9861be43\n\n# tcId = 3\n# short message\nkey = 2297d78cc45faf9b885b36ac80205cc08e1b730f264f23f4edbbb406\nmsg = 329f\nresult = valid\ntag = 2e7a81c4e29a435d91e95f37fb0a62fbe9a69e061f416c1ad17a7fca\n\n# tcId = 4\n# short message\nkey = 0361a904f7cbd107a617614ab69d11208ee6d423b3ae90e2bb6d7e54\nmsg = e6e765\nresult = valid\ntag = bbfa7ff960931e2f5ed8c925cd74272990e755f31422e5c858995b73\n\n# tcId = 5\n# short message\nkey = 264a8d2128e8fd0972d9acc66dc275b1286beeb0aff7ce8e97c7b96c\nmsg = 25838e50\nresult = valid\ntag = b25c33bba1a91024f42cfb93232ad685d54be2ca310b0ff9ba5107b8\n\n# tcId = 6\n# short message\nkey = 6dde8828f09b7aa981082aa116fca3b7341721c0440803f52cc9732e\nmsg = be81602da7\nresult = valid\ntag = e510fbf14bd7301f751cc0ae89f8725a7654ebbba6bb2f741626471d\n\n# tcId = 7\n# short message\nkey = 3ba156ffdc55d155bd085105aca64d13044db60c82cf2cd9d61d098f\nmsg = 69c76c8937a0\nresult = valid\ntag = a9d38740245038d9c23cbb59ba6513f7034d8047a07a904a2a23d2fc\n\n# tcId = 8\n# short message\nkey = 9c2739bae2a863fb0236466ba3408f4eec8d43206d56bb7aa2f8f75e\nmsg = aaf4c9146db948\nresult = valid\ntag = 2110393c6ba01f53be203533fbc5471fc8f04940fe912411564ba36e\n\n# tcId = 9\n# short message\nkey = 31d9cae2c3df064018209b121f9e883976ea757942ecda9d92fdadfd\nmsg = b844289529206f5a\nresult = valid\ntag = 1f1ddb8680b0d99893c498a772a7bea63c2e08c0257a7f31e3db2b88\n\n# tcId = 10\n# short message\nkey = 89a1b9e9004444c1d4e967570c21a05512d3f618ec168fc3e13ea5a2\nmsg = 6b42eb6d84e90c70c2\nresult = valid\ntag = 3b6f3b09e03424c8adc267fccefaf614db6d74977754fcad8a8d1a9b\n\n# tcId = 11\n# short message\nkey = 4398731752fd7af1db86ebccbee0ad65eb5faf00ace6c9aa35441faa\nmsg = 1ae2e7d917c48026570d\nresult = valid\ntag = 5f1948336953337c381d449c17ab5c327c86121a8b1e0db19f624e3f\n\n# tcId = 12\n# short message\nkey = 339460d6bb26ca60ebcef10c38587b9e575c398491782ccf9e8f6803\nmsg = ca03eb4f37536b2377738e\nresult = valid\ntag = 51c5661c31fc7edd09de60c91957036824a19761bcc54f1e93c43c3c\n\n# tcId = 13\n# short message\nkey = 025f8380d10b8207b3623e4a90f79c3e753b1be6a35b88b68330a40c\nmsg = e57daef9ede4e915c3a9eece\nresult = valid\ntag = 8afdb371714e9d6063ec9e43c8cd55e1c032b2fda57f91e9ec0f6601\n\n# tcId = 14\n# short message\nkey = 0bdc5f51f8a1a35d75554be70efbcdf51e54f30fa4696f727431941f\nmsg = cc3dd1eb0690f7af09ad408f9c\nresult = valid\ntag = c0918951c3422b48502635b6e58c5dcee9fea51c9dce5c7c215c9b93\n\n# tcId = 15\n# short message\nkey = 5ada97d90a74a7d4a68c5464fff25a9b7fa2e75d6acf0a59f143a2e9\nmsg = 3fe4ede158af108e09f543e14ab7\nresult = valid\ntag = 180a6b8814ae34228ae9ac76da8379376aae6f1aa0102e8f06b022dc\n\n# tcId = 16\n# short message\nkey = 007afe6b7c0701c30cb76b431afa3510c8b31d21cfe0bbaa5289cd08\nmsg = c2cf80005c591c1f737369fcc212f0\nresult = valid\ntag = fbfdb450a42f9a4154146f73c590a0ee9187af8505d60790a9615447\n\n# tcId = 17\nkey = 26491168a32ce8cbc4c0cd64107e4fcc432f07d59c992862e1e55b1e\nmsg = 15e51091b4f424ba1fdecb5e2fba11f6\nresult = valid\ntag = 3fa99ee160328fddc47a7c5043e9ef645b8b07462b71cad58a024517\n\n# tcId = 18\nkey = 6978b6c134dd6949832d65e4cb9c1e1dc36beae4a134907c80da0f44\nmsg = 6641d834b3fbfdb5d178007801f7b4e7b1\nresult = valid\ntag = 61387230446f31fde8552f22ec52a7fef82e16d0ad399de939d8229b\n\n# tcId = 19\nkey = 9f9fb280adf12e739548b1d676cb794d685b9104e63b619b055cb60f\nmsg = 91513dd6de40a1c23f8d1eb0ab8f5ea6f6835506ec750894\nresult = valid\ntag = e6b92f9c030270897c5d27162a5d40f6d373ff136105d1a90e0f9a60\n\n# tcId = 20\nkey = 3b1b16e6dd2e69559dbeb964e10fc94c068471b2374d3a2d24d2d466\nmsg = 8ecd55b56c668dcb8e8b1efd699c0e4a464204d29af140f87d3f5075495378a3\nresult = valid\ntag = 175856b8f56a8c6fbebc36541771545046bb416254f01ff11a218d2e\n\n# tcId = 21\n# long message\nkey = fc296398845063e661bdf36ff3615926eaccbf06947cd31e6677f710\nmsg = 62bd0ad75d64c554cb2cc109c6e4019fc601c61cabdf99f8de871edc17a301b4c1f55a15ed66f91eb4666dd08bc59c\nresult = valid\ntag = b7cf741cf96d6bf57d216c43611c20869ca0d008a4542f5c850605bc\n\n# tcId = 22\n# long message\nkey = 6c98d1feafff9861351966bc6ed19ed467f9dc767fa0df6b56955554\nmsg = e99d51a1d9a25c5842501a5383133578c8debe501581b1610f7575519bbd26f01ab7cbe069bfd5df3699a2fea5b461a3\nresult = valid\ntag = 0fe64fdd912966a6542069a22bfd084b484c015cf434d86bca15cdb6\n\n# tcId = 23\n# long message\nkey = 42a164f94e33d574118e0f8c938bbc2874bab219ee7a179f21e13b02\nmsg = e895639631f8b5d48e3ce00eb310bf129976ffced96a6f30a09d6ac1c291f73e93690526d86cc4d1a8e21c11f5a8979308\nresult = valid\ntag = 1ea982226e8d4cb7b07922158e535af2233b4c4d39d26b062d6d2aae\n\n# tcId = 24\n# long message\nkey = c1b5b91210667e72aa510346e1811358815a3330c5ed27a695c39451\nmsg = bf1086c3ea8b8840418c690c92152c73a6730bd1a0210c8b1d25c43a2193e739684f04a25a52cc305599f22ba6f70c8ed00d10b914a9522a25e06c471ebca2ff1bb4fa6799b85122020978dfa66ef12ed26ad38331b26eaf591afceac96d8c771eae50fb7f46242337dd0029f4813b53\nresult = valid\ntag = 4f355edbe6a3c93fa7add384be899bb4fb55385a78812a26cb64e44f\n\n# tcId = 25\n# long message\nkey = 4f09d14d40e475b68288c080668ebb1bc8c6be3191f6664d91a23fcd\nmsg = ae8b6ecc219b368d22fb596e42652d0bffee0b20d69cfd089ce3dc9303ba2f054ccaf5f5147c7968a028b140f5e3c9274eae2afc61c3bb6298dc598df77dec1cd2dd84212693b082b8132ad0f0b19f66db69fa7f6bf352b4feac724ce048440d2a42b44d53bb62fe2ab25f7f54bedf9ce7ddafd8e09330dacc6d52ee9b65f5\nresult = valid\ntag = 29ba268103019e158a35614c80780fda3f5ec3fc32c80aaa27b4025d\n\n# tcId = 26\n# long message\nkey = 613f414cd94130bb8a6243e12eccd90836808428b4a7177867934da0\nmsg = f696b9063b64816a45064f48ca05ffe4d5cc3d0b3beb0dd4057b6ada994969bf039bfbb72ce197101cc4e4b3959b3702f045afb7fb3113c997606dcaf2aaab31e02ac6ee597dfc0f9143d0effedc9ae7ea10e7ddb1db860a91afec62c48ed9c0a6c10b4da1de748caf7f7a5e01799ac57090daf4e3352fe859c5131c205d262d\nresult = valid\ntag = 8129e2093070168a20899793a04447a7ef01ae723419256a8cb42f6d\n\n# tcId = 27\n# long message\nkey = 5b88275307aaf691a0cf0c51f50553dda972d14f8afff98e62c2d972\nmsg = 57e4efbde1ce9fee2e29db19dfc6ba3bcb17f33765af7f20133bbd1910d542145c7def187a304517b8d8954454a90a717f67f9c8cc587965fd9b43f41ecc50b3458d8ce9f66b475f1eaef4a29ba89a3d58e5011c92acd1536fcd18abec29411b389b64f7f344777ed6deae32127abaa69a50ba22a11d6e59354f2ff0e3c3e3293cdc335411cf55b180bab59da36903a6fba91df34d2aadf7017ff49a4fbd73c9c74469f225dafc0a0c7048c2b824cc0cba8cad8aced11b8cdac3243cdb5b654f7a15ce2014e92ee287d06904d778512a1b1f5ec0c9b090b9ab439c44266b6be3d6a98947d26d079e4f7e849f3c6d93de98624e6c5f53ec02dbd368bc24a300\nresult = valid\ntag = 657dd04b970219edd63abf9d4aa108474aa316b6bb66bca76ed806c6\n\n# tcId = 28\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6f99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 29\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0c216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 30\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6c99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 31\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0f216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 32\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = ee99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 33\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 34\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = inva", "lid\ntag = 6e98e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 35\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d206faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 36\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e8e2e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 37\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216f2edf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 38\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e432e8936d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 39\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faede3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 40\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e732e8936d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 41\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedd3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 42\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8136d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 43\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf30534d51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 44\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936c78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 45\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd50fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 46\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e893ed78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 47\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cdd1fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 48\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d58b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 49\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51dcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 50\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b4f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 51\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcae417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 52\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02809b130ab09806b2af02f7cb9d39d12\n\n# tcId = 53\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417322c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 54\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02b09b130ab09806b2af02f7cb9d39d12\n\n# tcId = 55\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417022c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 56\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f0a909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 57\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf41f222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 58\n# Flipped bit 216 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d13\n\n# tcId = 59\n# Flipped bit 216 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88b\n\n# tcId = 60\n# Flipped bit 217 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d10\n\n# tcId = 61\n# Flipped bit 217 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d888\n\n# tcId = 62\n# Flipped bit 222 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d52\n\n# tcId = 63\n# Flipped bit 222 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d8ca\n\n# tcId = 64\n# Flipped bit 223 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d92\n\n# tcId = 65\n# Flipped bit 223 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d80a\n\n# tcId = 66\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6f99e862e532e8936c78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 67\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0c216faedf3053cd50fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 68\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e8e2e532e8136d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 69\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216f2edf30534d51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 70\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8136d78b5f02909b1b0ab09806b2af02f7cb9d39d12\n\n# tcId = 71\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf30534d51fcaf417222c87144abd5f2f7fa00ab4667d88a\n\n# tcId = 72\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 9166179d1acd176c92874a0fd6f64ecf54f67f94d50fd083462c62ed\n\n# tcId = 73\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f2de905120cfac32ae0350be8ddd370ebb542a0d0805ff54b9982775\n\n# tcId = 74\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag =", " 00000000000000000000000000000000000000000000000000000000\n\n# tcId = 75\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000000000000000000000000000\n\n# tcId = 76\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 77\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 78\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = ee1968e265b26813edf83570a98931b02b8900ebaa70affc39531d92\n\n# tcId = 79\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8da1ef2e5fb0d34dd17c2fc1f2a24871c42b5572777a802bc6e7580a\n\n# tcId = 80\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6f98e963e433e9926c79b4f12808b031aa08816a2bf12e7db8d29c13\n\n# tcId = 81\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0c206eafde3152cc50fdae407323c9f045aad4f3f6fb01aa4766d98b\n\n[keySize = 224]\n[tagSize = 112]\n\n# tcId = 82\n# empty message\nkey = 26f314170b054daef5349804da18f969c94174baca2beeb009d47a23\nmsg = \nresult = valid\ntag = 816d7af2475e94713f2dc3aa3069\n\n# tcId = 83\n# short message\nkey = 17429a622dc18d38715b31f8f2b963108e952a6708f3e52d5b25848a\nmsg = da\nresult = valid\ntag = 26630777d85f777187630bb94674\n\n# tcId = 84\n# short message\nkey = 0acfe12d89acd7d9ca49bae6318f35b2fbbfc84e5d2c9d4954beded7\nmsg = 03a8\nresult = valid\ntag = aa4c4bb63cad66ac675150f718b2\n\n# tcId = 85\n# short message\nkey = 5a0680f112354bd467865b19ae956b2719e21ecee1a913bdca294339\nmsg = a0fb73\nresult = valid\ntag = 36c7cd3f290d1d7d332b951aa471\n\n# tcId = 86\n# short message\nkey = 46fa59aa524fe30a0f4e39561b5666854440dbd970bb59925ce0ae1a\nmsg = c8b2f557\nresult = valid\ntag = c1a8a7d43df34d917f0cb512c57d\n\n# tcId = 87\n# short message\nkey = 29efc5ab5d30e535357603f2711b6e0aa6cf4613546c23144436d213\nmsg = c8d9f5b373\nresult = valid\ntag = a8cc7bebef4cfcd5ac2f401a372d\n\n# tcId = 88\n# short message\nkey = fe60e0322035538f2b1de9de380cde35f291deeb6e027b5d829ecd1e\nmsg = 185e4cada4f4\nresult = valid\ntag = 32faa154396b0b62436e6bf937ee\n\n# tcId = 89\n# short message\nkey = 1bf7fcdf3742fa77991528cc1c678b98be9876a8c8c5b809beab7d9c\nmsg = 9c0f34a5654279\nresult = valid\ntag = 086170c46d2b0a76c61527c2d052\n\n# tcId = 90\n# short message\nkey = 32533c16f792ed0acf8e9e60f54aa173937c7194b882ecc3e671009f\nmsg = f968dc7a19afe339\nresult = valid\ntag = 3fb4eb4450ac4b26a714bcfb224c\n\n# tcId = 91\n# short message\nkey = 3cf28a476ce7eaecfc3fbf1b0859a042a568740a584c77cb8f9603ac\nmsg = dbca9e4bdd84b38934\nresult = valid\ntag = 2cf14eb8f4c7537e9831983bb5af\n\n# tcId = 92\n# short message\nkey = a2a8090aef69277f92830ec7404c032f8fdebfbceabb9e590968a77f\nmsg = 6b790a946a83364c79d7\nresult = valid\ntag = d467209f63a9bd3d2c5398c305da\n\n# tcId = 93\n# short message\nkey = 6f999929e91672bac35ea70f8ff8b9aeefa5489493c99b0d27797207\nmsg = b7dabb237aeae2be8b5e19\nresult = valid\ntag = 09b2bb6eaeda5f0229b8c35a2f54\n\n# tcId = 94\n# short message\nkey = 4525b96c263e4d2dab2890aa55f3cc503dc1206d9f1915a6fba5ae61\nmsg = ef858f496fcb7c3fabbfb52e\nresult = valid\ntag = 6f5ca7efcb9a70d0abf8425f42ca\n\n# tcId = 95\n# short message\nkey = f89401acb0a60d07fd733ed563f2ee241f4ecfea8114587a44dfdb0c\nmsg = 7d3c0918085984df95097afa81\nresult = valid\ntag = fc227f29b51f9c855343dcd0ea11\n\n# tcId = 96\n# short message\nkey = 58bce8c0d17fc7131d2fa2262409bb14663a6e68019f88299987893e\nmsg = 1ca50cd6c3f1225eb6c4ec4d6a90\nresult = valid\ntag = 53e103bbded7b825affa240f8578\n\n# tcId = 97\n# short message\nkey = 658e510fba4e2208afac98333f9e242bc118f6e79ef0661d619dd32b\nmsg = 32c385b75ae84558ca302881c51639\nresult = valid\ntag = 485f351e2a9a82910c3c949e32b8\n\n# tcId = 98\nkey = 6a41cc3ca7142ae14e6d979a3f890a331597e592dd74520ce4ea660f\nmsg = 78e3a770a8aaaf039fd4c9b6a1780411\nresult = valid\ntag = 331a58ed96fc8b9e684ab05f636c\n\n# tcId = 99\nkey = b8972b93b68302cbaa08d32904eae6375a66f3508ece3c9b22382c7e\nmsg = 3687e6287d73c9e3f679a50e7671247127\nresult = valid\ntag = 27d8113955026d4d318070fbfd8f\n\n# tcId = 100\nkey = bc570932abfa11050ad4fc80a6d5afe3271d86aa29dc62738b207d14\nmsg = d53202acd2ec74d746531bd9ad3016d0980e0166fb427a08\nresult = valid\ntag = 020e3e0c2940ce15eeb67392570f\n\n# tcId = 101\nkey = c92a0665c12e87026e1b344f971fdb0e474d450cba834aae40e2d21e\nmsg = 4a3a85ac09f5190ab94f73fd91d98f056015263c89ed5da223fc4675cab25cdd\nresult = valid\ntag = 922853f159c42b9e274fcef7bdf3\n\n# tcId = 102\n# long message\nkey = 6fbef67cfbacc98c63252b1ca009a60e8e3479769a2d449fb4639064\nmsg = 006e179eacfa9e1e628bb7823ee9609ae7968b6df90e176f772a79088d37e9b15cab312922aaf8fc6583a341002bda\nresult = valid\ntag = 0a27a12afbb9c3136202e02ae3b2\n\n# tcId = 103\n# long message\nkey = 700b09908174f1072e31ae8ccbda1c4460fcf21fdf146a11482b210d\nmsg = f772564ecb109e80eefb1d5a7f1c95e203ba4c980233dd8d13de3046079a6b2ca26dc3521e5e0c807eae7a79877c73e9\nresult = valid\ntag = 04c718a4cd8b583d5ffb8170276c\n\n# tcId = 104\n# long message\nkey = e18a20246ebe1b5796dbfe35110efc7637d74a355f0a6758d4a00b7d\nmsg = 77720dde530e6eeaa0e9af3311f7e99189d6c4f7d71d0a4207d62c766bee32020c92f5d5d28d5de4d0d9c94b57ec05f0c3\nresult = valid\ntag = 25ebc8611f4b636d892f11df2b29\n\n# tcId = 105\n# long message\nkey = 3c4585a775bec76c7d8b27b87e70a5863a85e6111f3161b3815f59b4\nmsg = 628c0ff8c432d74f4cfb77ba46b7cef67a48ac053cf0c18be41648736abcc8c6fbe4981529babd4b27866e34ced16d8b0bec456e14653a1422f5a62556d20b0fe4e03749d5f6e986375062dbdd82f6e9e1d4ad547c31530c2a31383c25ff57e879eae99d9b3a0da1f3c1dacb975067ac\nresult = valid\ntag = deb94b2d43e98926af51fc0c88dc\n\n# tcId = 106\n# long message\nkey = acaf94cb1a8ff4677fc586d2bdf981ac3a656b208215e0a7647b420f\nmsg = 314c2c25465de3427279dbc89436505fee6d37d56fbda0e5e2a49449d9dbf003027f2e4ef5c52f7af93fd80155a66a1cd6b9885b56d828058a0de7d247e19580b2e8dcbdef2ae46840565fd8b276569c19d7e185116ea11ad67d5fc27f4a6816ba45be5d14f3ba4315c74d1edb20f217b116be852b62a7f4e32b3e708ff9f7\nresult = valid\ntag = 5b0d7aec7fbd196ee69ed373e131\n\n# tcId = 107\n# long message\nkey = e490348ad78fd2cd5b51f2795b79e5805ce1d9baf1151dbdf995e1b0\nmsg = f6ff1845842b9e46f79adb1079aff47397391dc269bc0c899ba4087b58a676f5408c3f7637ffc4772af3e41b5cea51058bc528ea09bb4bd797594c798b0f0ff881695e98c08bbb040c12c5cbdb228d61cc99e332e963128d06e97ed2eefded2e1b5a035f3bea68273efac03a894dcf2fcc79a5696218595404b2758deb9a80ee\nresult = valid\ntag = 590727f344d8a540e5c5e0f4dae9\n\n# tcId = 108\n# long message\nkey = c8e099dbb60a8f19d8b86856b21c55f3437ae27f77dff9808f12a1b5\nmsg = edbc109bf28c8ab32b1238eff1cd14308cdd845fa919bfd8a00c991cf9a8d6b05dd8cc7d2393782949c899de79e771ef7d8567f32287623963048e6c80d91f0778dd63311106e9d0913c08b7a0b7253fa3ce307ac40ec55a4c445f5455a570fec090e251e8646bada1a486d41c3794bce5639732f2c6cfd58081c479a68c515f5d47bc5b2f1622a08d38a596a817f3d4efef8003ae430e6ae93b0a3ae8fa95a2ace3d24d90a9ef861dc04c13e38f6e524b3abdf9cce4fa490707c80c16e254b7a71af00a12dbf473b50b9fe4097ec00ab27e66b6f3022b0f101ee1a9f7fa8652e9f095ca240a446067446867f78e8352c4110794c2e3383dfedfb35e74a33e\nresult = valid\ntag = 33e7dcb0fde3b1c5b92506e635eb\n\n# tcId = 109\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6f99e862e532e8936d78b5f02909\n\n# tcId = 110\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0c216faedf3053cd51fcaf417222\n\n# tcId = 111\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6c99e862e532e8936d78b5f02909\n\n# tcId = 112\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0f216faedf3053cd51fcaf417222\n\n# tcId = 113\n# Flipped bit 7 in tag\nkey = 000102030405060708", "090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = ee99e862e532e8936d78b5f02909\n\n# tcId = 114\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8d216faedf3053cd51fcaf417222\n\n# tcId = 115\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e98e862e532e8936d78b5f02909\n\n# tcId = 116\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d206faedf3053cd51fcaf417222\n\n# tcId = 117\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e8e2e532e8936d78b5f02909\n\n# tcId = 118\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216f2edf3053cd51fcaf417222\n\n# tcId = 119\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e432e8936d78b5f02909\n\n# tcId = 120\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faede3053cd51fcaf417222\n\n# tcId = 121\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e732e8936d78b5f02909\n\n# tcId = 122\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedd3053cd51fcaf417222\n\n# tcId = 123\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8136d78b5f02909\n\n# tcId = 124\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf30534d51fcaf417222\n\n# tcId = 125\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936c78b5f02909\n\n# tcId = 126\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd50fcaf417222\n\n# tcId = 127\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e893ed78b5f02909\n\n# tcId = 128\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cdd1fcaf417222\n\n# tcId = 129\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d58b5f02909\n\n# tcId = 130\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51dcaf417222\n\n# tcId = 131\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b4f02909\n\n# tcId = 132\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcae417222\n\n# tcId = 133\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02809\n\n# tcId = 134\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417322\n\n# tcId = 135\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02b09\n\n# tcId = 136\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417022\n\n# tcId = 137\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f0a909\n\n# tcId = 138\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf41f222\n\n# tcId = 139\n# Flipped bit 104 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02908\n\n# tcId = 140\n# Flipped bit 104 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417223\n\n# tcId = 141\n# Flipped bit 105 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f0290b\n\n# tcId = 142\n# Flipped bit 105 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417220\n\n# tcId = 143\n# Flipped bit 110 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02949\n\n# tcId = 144\n# Flipped bit 110 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417262\n\n# tcId = 145\n# Flipped bit 111 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02989\n\n# tcId = 146\n# Flipped bit 111 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf4172a2\n\n# tcId = 147\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6f99e862e532e8936c78b5f02909\n\n# tcId = 148\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0c216faedf3053cd50fcaf417222\n\n# tcId = 149\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e8e2e532e8136d78b5f02909\n\n# tcId = 150\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216f2edf30534d51fcaf417222\n\n# tcId = 151\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 9166179d1acd176c92874a0fd6f6\n\n# tcId = 152\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f2de905120cfac32ae0350be8ddd\n\n# tcId = 153\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 0000000000000000000000000000\n\n# tcId = 154\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0000000000000000000000000000\n\n# tcId = 155\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffff\n\n# tcId = 156\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffff\n\n# tcId = 157\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = ee1968e265b26813edf83570a989\n\n# tcId = 158\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8da1ef2e5fb0d34dd17c2fc1f2a2\n\n# tcId = 159\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = inva", "lid\ntag = 6f98e963e433e9926c79b4f12808\n\n# tcId = 160\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0c206eafde3152cc50fdae407323\n\n[keySize = 112]\n[tagSize = 224]\n\n# tcId = 161\n# short key\nkey = 77b0de54e893642caeac34bfd1ab\nmsg = \nresult = valid\ntag = 2014a9f272378fa1c9f6744d4db4861b52e61a19eb28320ebee2d174\n\n# tcId = 162\n# short key\nkey = 7346c7e4b118b24e51f4512f906a\nmsg = 506d4faf624f92965aa6b5c01e0c80a8\nresult = valid\ntag = c4e0ad2f62279898a7ede0f709a1ccb8c1004941f3c5074392e79533\n\n# tcId = 163\n# short key\nkey = caa864179f66e826a0ef3b5edbe3\nmsg = 73f64253706ce6b5094c24ee012ece9ac2495283dcd8c7f1114e81e4587d8ea4\nresult = valid\ntag = a1220745bb03d982763bfa7ce352b8bc87576a0ad5d46a0da08ff2d6\n\n[keySize = 112]\n[tagSize = 112]\n\n# tcId = 164\n# short key\nkey = 663a97d6b5493dbfa60c8dd087ed\nmsg = \nresult = valid\ntag = 0c6e21a85e3cd2cd413f36507d6e\n\n# tcId = 165\n# short key\nkey = b08c345a7c7166fdd33ce768c1dc\nmsg = 9964d80ee2338cffe28483aa446a6f76\nresult = valid\ntag = aa003015309f2ed6fd7752e49c31\n\n# tcId = 166\n# short key\nkey = fc9d2883c67534fefbd6ed4a9798\nmsg = a49820c194a43deef11f3a0f4eaa80425439fca9d9f1d7c8e665d6b130e4e908\nresult = valid\ntag = 1c2b96623c91ca9c5027f8f81ede\n\n[keySize = 520]\n[tagSize = 224]\n\n# tcId = 167\n# long key\nkey = cfa639656cd49f8d70f0b1a5a056ab4fc0aeeebc91338d067f36c47b6012dc8d856b8abcc4e1abffc910aeaee21b4d366e907488ffd0ca55b36a621aee0b2e9f0c\nmsg = \nresult = valid\ntag = 0ef4fedaeaab4ad52c843657047b19788a9fa91061b7a14adda8c490\n\n# tcId = 168\n# long key\nkey = b36d3d47a4585b401fc64c98eff56243d4da78863063d814e88f370b92576406d447fcf3d129a1ede57ddc56ea3a0a1f100105a95e83138cdf45ecf2a5992acf90\nmsg = 15c75a64b04d097af2371af380079eb8\nresult = valid\ntag = 4ecb2daa5fb08dbd836e92a51e200bb230f54ac2c9778f5226b3abc9\n\n# tcId = 169\n# long key\nkey = cf78b991382db5e8666ccb2333fb672179b10a75cf9e5a7699ae640005e19772ef6499a3bc97f12e58e835bb0017bb3b2e64c6ab44a0d619dfa0363484d1c991e2\nmsg = f661e598f180f25dc6dd76db8a9e0e4c9c272b9665a6b1756560c723b8e08595\nresult = valid\ntag = cd55cdb0c4f02b9f6148392993b18b4ff00a5e73b6f3fbf83a854aeb\n\n[keySize = 520]\n[tagSize = 112]\n\n# tcId = 170\n# long key\nkey = 3772ff6bb4e5b2811cfd4d6a3d34dc74bca3dbf89a5817b79d8472a1383b8c9afb27b3006196ce9966829eae6a313c2d724d995f4def17117c09edcfc8c0cbbc93\nmsg = \nresult = valid\ntag = 40beb1d3aaab25a403224e577770\n\n# tcId = 171\n# long key\nkey = 2ba910bc0bca90644cb21e96063e2cd85f5dd02fda75d353c9b51eaf45eee94c165ca6592d6cfdd987bfdc1cba66363d535a14b2f7ead841b17c4d76a5049105f9\nmsg = 7ba461040de9ea3cefd4809124f78b39\nresult = valid\ntag = 4d28a926df1b188e85d092bacf11\n\n# tcId = 172\n# long key\nkey = 7fcf3cb1b1c5b537492aede4689284b5881935e3537bb7307198d6518e7a6aabf70b50b44e4a8dfee35e9f5cbada7447e511a37209390fcd171c62075c6a8bf1eb\nmsg = 83d29c1c4d059ddb0d2aca787e5b701bac3953fb9bc72dc87b1ef92a582e9748\nresult = valid\ntag = 392ce38f7838b2f87163eea00b86\n\n", }; -static const size_t kLen271 = 38438; +static const size_t kLen276 = 38438; -static const char *kData271[] = { +static const char *kData276[] = { "# Imported from Wycheproof's hmac_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HMACSHA256\n# Generator version: 0.8rc21\n\n[keySize = 256]\n[tagSize = 256]\n\n# tcId = 1\n# empty message\nkey = 1e225cafb90339bba1b24076d4206c3e79c355805d851682bc818baa4f5a7779\nmsg = \nresult = valid\ntag = b175b57d89ea6cb606fb3363f2538abd73a4c00b4a1386905bac809004cf1933\n\n# tcId = 2\n# short message\nkey = 8159fd15133cd964c9a6964c94f0ea269a806fd9f43f0da58b6cd1b33d189b2a\nmsg = 77\nresult = valid\ntag = dfc5105d5eecf7ae7b8b8de3930e7659e84c4172f2555142f1e568fc1872ad93\n\n# tcId = 3\n# short message\nkey = 85a7cbaae825bb82c9b6f6c5c2af5ac03d1f6daa63d2a93c189948ec41b9ded9\nmsg = a59b\nresult = valid\ntag = 0fe2f13bba2198f6dda1a084be928e304e9cb16a56bc0b7b939a073280244373\n\n# tcId = 4\n# short message\nkey = 48f3029334e55cfbd574ccc765fb2c3685aab1f4837d23370874a3e634c3a76d\nmsg = c7b8b2\nresult = valid\ntag = 6c13f79bb2d5b6f9a315fe8fd6cbb5cb817a660687009deccd88c377429e596d\n\n# tcId = 5\n# short message\nkey = de8b5b5b2f09645be47ecb6407a4e1d9c6b33ae3c2d22517d3357da0357a3139\nmsg = cc021d65\nresult = valid\ntag = e87538eb167e62d7cb236690ff3f034a9c12d417aa8dfa694d7405f9e1f85fe8\n\n# tcId = 6\n# short message\nkey = b7938910f518f13205ca1492c669001a14ff913c8ab4a0dc3564e7418e91297c\nmsg = a4a6ef6ebd\nresult = valid\ntag = 01a93f4ed216d0b280896301e366aa67b25e6b6a5a6e84f291a13391c6e496c5\n\n# tcId = 7\n# short message\nkey = 1bb997ff4de8a5a391de5c08a33bc2c7c2891e47ad5b9c63110192f78b98fe78\nmsg = 667e015df7fc\nresult = valid\ntag = 06b5d8c5392323a802bc5cdd0b3c527454a873d9651c368836eaa4ad982ba546\n\n# tcId = 8\n# short message\nkey = 32fdeda39f98b4f4426c2d2ac00ab5dd4bfabb68f311447256ed6d3d3a51b154\nmsg = 4163a9f77e41f5\nresult = valid\ntag = 1b0103729f48c2772bb132aef9ebd6dd6aafc9145df6d5c514b233ee92ef4a00\n\n# tcId = 9\n# short message\nkey = 233e4fdee70bcc20235b6977ddfc05b0df66f5635d827c66e5a63cdb16a24938\nmsg = fdb2ee4b6d1a0ac2\nresult = valid\ntag = 120b26ee1355c134c262513c7922deb6c4fd90303de4cd61b9f9cd08f22d6e18\n\n# tcId = 10\n# short message\nkey = b984c6734e0bd12b1737b2fc7a1b3803b4dfec402140a57b9eccc35414ae661b\nmsg = dea584d0e2a14ad5fd\nresult = valid\ntag = 88bc2282e5fce47ec6d9895395cd47fff91a0cdc589a8fd56d8d344616533a3d\n\n# tcId = 11\n# short message\nkey = d0caf1456ac5e255fa6afd61a79dc8c716f5358a298a508271363fe1ff983561\nmsg = 18261dc806913c534666\nresult = valid\ntag = f678f081d83cf126ad6bd52c2dffd786214f519c47452b85a97458d0c10c3ee5\n\n# tcId = 12\n# short message\nkey = 835bc8241ed817735ec9d3d0e2df4c173ee4dded4a8ef0c04a96c48f11820463\nmsg = 26f8083e944bacf04e9a4d\nresult = valid\ntag = e0e46cd7d1a75b3d102893da64def46e455308761f1d908786628ca7ee22a0eb\n\n# tcId = 13\n# short message\nkey = 055f95c9461b0809575eccdfa5cdd06275f25d30915c4eb8db40e1acd3ab7591\nmsg = bfb7d6a08dbaa5225f320887\nresult = valid\ntag = e76d5c8c070a6b3c4824e9f342dc3056e63819509e1def98b585aeba0d638a00\n\n# tcId = 14\n# short message\nkey = e40f7a3eb88ddec4c6347ea4d67610756c82c8ebcc237629bf873ccabc32984a\nmsg = 7fe43febc78474649e45bf99b2\nresult = valid\ntag = aa57d020aa24ad823472c2b80ff2d0cf475f7de0068f9a59e8112fede53a3581\n\n# tcId = 15\n# short message\nkey = b020ad1de1c141f7ec615ee5701521773f9b232e4d06376c382894ce51a61f48\nmsg = 81c7581a194b5e71b41146a582c1\nresult = valid\ntag = f45c72603cc160c0762f703407844a7781dfe0f1ddf0aaf4ccd8205e94469aed\n\n# tcId = 16\n# short message\nkey = 9f3fd61a105202648ecff6074c95e502c1c51acd32ec538a5cce89ef841f7989\nmsg = 2a76f2acdace42e3b779724946912c\nresult = valid\ntag = 0226ee13cc05e2340135b3f4b27a9da1a160f6170fe805dadd98a3711ec9c421\n\n# tcId = 17\nkey = 6fa353868c82e5deeedac7f09471a61bf749ab5498239e947e012eee3c82d7c4\nmsg = aeed3e4d4cb9bbb60d482e98c126c0f5\nresult = valid\ntag = 9ed7f0e73812a27a87a3808ee0c89a6456499e835974ba57c5aab2a0d8c69e93\n\n# tcId = 18\nkey = 5300489494ca86221c91d6d953952ae1a5e097139dc9cf1179c2f56433753824\nmsg = 90fea6cf2bd811b449f333ee9233e57697\nresult = valid\ntag = 5b692cba13b54fffc3adcbb0e015cc011fbfd61235303ff0ad2a49775083bf22\n\n# tcId = 19\nkey = 383e7c5c13476a62268423ef0500479f9e86e236c5a081c6449189e6afdf2af5\nmsg = 3202705af89f9555c540b0e1276911d01971abb2c35c78b2\nresult = valid\ntag = 4e4901592ba46476408d758435c7d1b489d2689afd84ceaaee78bfb91fd9391d\n\n# tcId = 20\nkey = 186e248ad824e1eb93329a7fdcd565b6cb4eaf3f85b90b910777128d8c538d27\nmsg = 92ef9ff52f46eccc7e38b9ee19fd2de3b37726c8e6ce9e1b96db5dda4c317902\nresult = valid\ntag = 3fc1d73dd4a8858c1fc3d8c4a3f33ed5ad0c70210038394a5902cb26fe287348\n\n# tcId = 21\n# long message\nkey = 28855c7efc8532d92567300933cc1ca2d0586f55dcc9f054fcca2f05254fbf7f\nmsg = 9c09207ff0e6e582cb3747dca954c94d45c05e93f1e6f21179cf0e25b4cede74b5479d32f5166935c86f0441905865\nresult = valid\ntag = 788c0589000fb7f0b5d51f1596472bc9ec413421a43df96ee32b02b5d275ffe3\n\n# tcId = 22\n# long message\nkey = 8e540cb30c94836ae2a5950f355d482a7002e255207e94fda3f7ef1a099013a0\nmsg = d6500f95e11262e308bf3df4df4b855f33e857563d4543f195639a0a17b442eb9fdcc1367d2eee75c8f805730b89290f\nresult = valid\ntag = 39697e70ce741feb33dedc069f00b5627fd9b837d10cbdd5b6d19cfbd511dd2c\n\n# tcId = 23\n# long message\nkey = 69c50d5274358188cff4c0fae742243d4e8a5e5ba55d94ff40edd90f6a43dd10\nmsg = 1ac5255aff052828d8ea21b376f1ebdd4bb879949913900405aebce83e48feb6813b5e9c89f94501a8ade41b26b815c521\nresult = valid\ntag = 4b0b4d0416fa2e11586fbfa7fb11261e69991dfa34019b9893d69a2be8c1fc80\n\n# tcId = 24\n# long message\nkey = 23209b7c5aadcbd13f7279af1a86d3c7ae8f179d1bcaaad0dff9a15302e78dbf\nmsg = 84bdac37e1af35d9356404e2787d47ece58348dea76a4a46e8aade3463d4db8c94a051be3733b38d756984865d56c60e8025f15e3f968f093e7fb7ebc7e31189c5692d15ed4256737b9b1894e5809503aaa1c9983fb096aa21916361eeb6ef455b129723a1a1ddf9deddea208529a648\nresult = valid\ntag = 4a85c479d1650dbd73bc5248074a55ff50218bddaa8d1fddaaf44946dc19aefb\n\n# tcId = 25\n# long message\nkey = 7c9cc667cae175f448faa96647319633b2d48531373ae7d316c44ddd8b9f69cf\nmsg = 9233c1d73b498c5106ff88951e07b9652cb0ddae740737ec205c9876d094978bfc947f7dc937119fd6a93915b19b625958a7a22363aa2ac33fb869ed16b303336ab740a0498a2df66a6599da710094481a7b544bd955b6f97135ba4673401db2db144a6e287041e47a51ed9b6ba956c13508c1c0c25310105239ab73629e30\nresult = valid\ntag = ca1b80441d333909c2bb30769650055051ed20f17de8ee953cb9070af56c704f\n\n# tcId = 26\n# long message\nkey = 82314540564ea3ce30591e97f68b2602de40fa29f773c2508327471b8348e8c4\nmsg = 6a6d2f45cebf2757ae16ea33c68617671d77f8fdf80bed8fc5cdc5c8b7086bd28e7eb3eecc7163491104e5309455e67f836579b82a1da3bf5991a8e2b2f189a49e05700e46c409ed5de77780a5f389e3f13dad406c9d55675329c5c921f07034180937c0f6ef34a2308b6ff3e1a0e9dc1ea65f5632730e8744d1db2c40a6595b\nresult = valid\ntag = 0900b3e6535d34f90e2c335775e86bf38ee7e3d26fb60cd9cdf639eb3496b94c\n\n# tcId = 27\n# long message\nkey = d115acc9a636915241795f48852052e07b51273ae2448251ec1d0d0f9807f3db\nmsg = 696d2456de853fa028f486fef437b6b6d1b530a8475e299db3a9005ae9cef8401985b7d31e172e8f439ccd1ad1ec44c9b86b78f3f243c1305b53bc21abad7a8fc5256311bfd34c98e37dfdc649e7ae4bda08cf2994b063c0c7106ed0b02a1f48af9191cbfb0d6a953b7e04327dfe8c93779cb574ba9cba575d01674e83621aa0c5f400d6e6cd24b301e33c9f3303e73bf357408c1be86c2489c09de998ff2ef32df554f1247d9313ce1a7160115d06f4c18d6556ff7986ef8a55e2adcfa27e4c69c71cc2ff01639e9d49bd9ed0687f530ffeb0890132457df2088081bc4a2f7f0a9f4dcea2c80d991db7f3747a1803d7619aaf3dd382c69536a0bcdb931cbe\nresult = valid\ntag = 82f92977f0b605eaada510ffceb53ad75fde16a8029f1b75b406a84270dbb8b7\n\n# tcId = 28\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d28b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 29\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d9b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 30\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d18b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 31\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = dab99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 32\n# Flipped bit ", "7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 538b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 33\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 34\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38a42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 35\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b89f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 36\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42896d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 37\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99fa709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 38\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096c80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 39\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2708a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 40\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096f80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 41\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f270ba3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 42\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f4df826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 43\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3caf4172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 44\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f836b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 45\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74162cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 46\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f026b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 47\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74972cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 48\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f824b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 49\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74170cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 50\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b45a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 51\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbf93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 52\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d4607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 53\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93834c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 54\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d7607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 55\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93804c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 56\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a955607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 57\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93024c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 58\n# Flipped bit 248 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1ca\n\n# tcId = 59\n# Flipped bit 248 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14f\n\n# tcId = 60\n# Flipped bit 249 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1c9\n\n# tcId = 61\n# Flipped bit 249 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14c\n\n# tcId = 62\n# Flipped bit 254 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc18b\n\n# tcId = 63\n# Flipped bit 254 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef10e\n\n# tcId = 64\n# Flipped bit 255 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc14b\n\n# tcId = 65\n# Flipped bit 255 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef1ce\n\n# tcId = 66\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d28b42096d80f45f836b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 67\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d9b99f2709a3ca74162cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 68\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42896d80f4df826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 69\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191", "a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99fa709a3caf4172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 70\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f4df826b44a9d5607d672496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 71\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3caf4172cbe93824c1fa9b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 72\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 2c74bdf6927f0ba07d94bb562a9f8218db695bea2c0b5e573771c44625723e34\n\n# tcId = 73\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 274660d8f65c358be8d3416c7db3e0d64dc5f3e163de427ae00d2d3c62410eb1\n\n# tcId = 74\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 75\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 76\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 77\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 78\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 530bc289ed0074df02ebc42955e0fd67a416249553742128480ebb395a0d414b\n\n# tcId = 79\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58391fa789234af497ac3e1302cc9fa932ba8c9e1ca13d059f7252431d3e71ce\n\n# tcId = 80\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d28a43086c81f55e836a45a8d4617ce62597a514d2f5a0a9c98f3ab8db8cc0ca\n\n# tcId = 81\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d9b89e2608a2cb75162dbf92834d1e28b33b0d1f9d20bc841ef3d3c29cbff04f\n\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 82\n# empty message\nkey = 7bf9e536b66a215c22233fe2daaa743a898b9acb9f7802de70b40e3d6e43ef97\nmsg = \nresult = valid\ntag = f4605585949747de26f3ee98a738b172\n\n# tcId = 83\n# short message\nkey = e754076ceab3fdaf4f9bcab7d4f0df0cbbafbc87731b8f9b7cd2166472e8eebc\nmsg = 40\nresult = valid\ntag = 0dc00d7217bbafe8d78bf961189b8fd2\n\n# tcId = 84\n# short message\nkey = ea3b016bdd387dd64d837c71683808f335dbdc53598a4ea8c5f952473fafaf5f\nmsg = 6601\nresult = valid\ntag = ff296b368d3bf059cc48682f6949ccaa\n\n# tcId = 85\n# short message\nkey = 73d4709637857dafab6ad8b2b0a51b06524717fedf100296644f7cfdaae1805b\nmsg = f1d300\nresult = valid\ntag = 2d02bd1c25b1fe52b1ead07374d6e883\n\n# tcId = 86\n# short message\nkey = d5c81b399d4c0d1583a13da56de6d2dc45a66e7b47c24ab1192e246dc961dd77\nmsg = 2ae63cbf\nresult = valid\ntag = 4d9e8bddf9b7a1218309d5988aa1b0d9\n\n# tcId = 87\n# short message\nkey = 2521203fa0dddf59d837b2830f87b1aa61f958155df3ca4d1df2457cb4284dc8\nmsg = af3a015ea1\nresult = valid\ntag = cb8a4b413350b42f4ac3533cc7f47864\n\n# tcId = 88\n# short message\nkey = 665a02bc265a66d01775091da56726b6668bfd903cb7af66fb1b78a8a062e43c\nmsg = 3f56935def3f\nresult = valid\ntag = 1cfce745db1ca7de9a1d4420e612ca55\n\n# tcId = 89\n# short message\nkey = facd75b22221380047305bc981f570e2a1af38928ea7e2059e3af5fc6b82b493\nmsg = 57bb86beed156f\nresult = valid\ntag = 0bde0d0c756df09d4f6da81b299a3adf\n\n# tcId = 90\n# short message\nkey = 505aa98819809ef63b9a368a1e8bc2e922da45b03ce02d9a7966b15006dba2d5\nmsg = 2e4e7ef728fe11af\nresult = valid\ntag = 406a5c2bd3e6a9595f9b7dff608d59a7\n\n# tcId = 91\n# short message\nkey = f942093842808ba47f64e427f7351dde6b9546e66de4e7d60aa6f328182712cf\nmsg = 852a21d92848e627c7\nresult = valid\ntag = 0b1bf9e98d0a794fa55c09b63e25799f\n\n# tcId = 92\n# short message\nkey = 64be162b39c6e5f1fed9c32d9f674d9a8cde6eaa2443214d86bd4a1fb53b81b4\nmsg = 195a3b292f93baff0a2c\nresult = valid\ntag = 71f33f6021d90858cadb1353d7fbe8d7\n\n# tcId = 93\n# short message\nkey = b259a555d44b8a20c5489e2f38392ddaa6be9e35b9833b67e1b5fdf6cb3e4c6c\nmsg = afd73117330c6e8528a6e4\nresult = valid\ntag = 4b8d76372ebe5e5caa56ca4e5c59cdd3\n\n# tcId = 94\n# short message\nkey = 2c6fc62daa77ba8c6881b3dd6989898fef646663cc7b0a3db8228a707b85f2dc\nmsg = 0ff54d6b6759120c2e8a51e3\nresult = valid\ntag = c580c542846a96e84ea77701778455bf\n\n# tcId = 95\n# short message\nkey = abab815d51df29f740e4e2079fb798e0152836e6ab57d1536ae8929e52c06eb8\nmsg = f0058d412a104e53d820b95a7f\nresult = valid\ntag = 13cdb005059338f0f28e2d8ce1af5d0a\n\n# tcId = 96\n# short message\nkey = 3d5da1af83f7287458bff7a7651ea5d8db72259401333f6b82096996dd7eaf19\nmsg = aacc36972f183057919ff57b49e1\nresult = valid\ntag = bd993e4428cbc0e275e4d80b6f520363\n\n# tcId = 97\n# short message\nkey = c19bdf314c6cf64381425467f42aefa17c1cc9358be16ce31b1d214859ce86aa\nmsg = 5d066a92c300e9b6ddd63a7c13ae33\nresult = valid\ntag = 86c9f4dde0b257a7053a7b03c7504409\n\n# tcId = 98\nkey = 612e837843ceae7f61d49625faa7e7494f9253e20cb3adcea686512b043936cd\nmsg = cc37fae15f745a2f40e2c8b192f2b38d\nresult = valid\ntag = b96bcacafac30094f18ac5039e7b3656\n\n# tcId = 99\nkey = 73216fafd0022d0d6ee27198b2272578fa8f04dd9f44467fbb6437aa45641bf7\nmsg = d5247b8f6c3edcbfb1d591d13ece23d2f5\nresult = valid\ntag = 6e597c4c3861a380c06854b446fc2a87\n\n# tcId = 100\nkey = 0427a70e257528f3ab70640bba1a5de12cf3885dd4c8e284fbbb55feb35294a5\nmsg = 13937f8544f44270d01175a011f7670e93fa6ba7ef02336e\nresult = valid\ntag = f731aaf2f04023d621f10495344679a0\n\n# tcId = 101\nkey = 96e1e4896fb2cd05f133a6a100bc5609a7ac3ca6d81721e922dadd69ad07a892\nmsg = 91a17e4dfcc3166a1add26ff0e7c12056e8a654f28a6de24f4ba739ceb5b5b18\nresult = valid\ntag = 95243eb1a9d448174ae4fccf4a53ebfe\n\n# tcId = 102\n# long message\nkey = 41201567be4e6ea06de2295fd0e6e8a7d862bb57311894f525d8adeabba4a3e4\nmsg = 58c8c73bdd3f350c97477816eae4d0789c9369c0e99c248902c700bc29ed986425985eb3fa55709b73bf620cd9b1cb\nresult = valid\ntag = 343367207f71425d8f81f3110b0405f6\n\n# tcId = 103\n# long message\nkey = 649e373e681ef52e3c10ac265484750932a9918f28fb824f7cb50adab39781fe\nmsg = 39b447bd3a01983c1cb761b456d69000948ceb870562a536126a0d18a8e7e49b16de8fe672f13d0808d8b7d957899917\nresult = valid\ntag = 151618eec4f503f3b63b539de0a58966\n\n# tcId = 104\n# long message\nkey = 7b0d237f7b536e2c6950990e61b361b384333dda690045c591321a4e3f79747f\nmsg = 3d6283d11c0219b525620e9bf5b9fd887d3f0f707acb1fbdffab0d97a5c6d07fc547762e0e7dd7c43ad35fab1c790f8047\nresult = valid\ntag = ce201c0dcfdc3f2bef360609a31fb19e\n\n# tcId = 105\n# long message\nkey = 17c92663741f012e5bb6714e614c2d155948617f10936269d954c58aba2ae62d\nmsg = 7fdd6a15c861d0313f6635d77dc55e115ff18c8ab063b5d03eab472eeca87a378188f25813515cf90b6cffa94a8ff36b29d65603eab3fbd2aa9500b261e184049893dc6ca2010becac163053f211070bdda621b8bd8af77e450268603b52db34c90be836dfebddef42303f724e63bf0f\nresult = valid\ntag = 76e8dfd94db4af9d79d9718eec46cb2d\n\n# tcId = 106\n# long message\nkey = 424c6b22606fcc094ae82fc5d3cbe484174c2211b3ec778091cac34a8e38a152\nmsg = d96ff062e2490e8e0c54c5a8b89e85b25a66d93d7c2b93bdfef846b70d38672746a4b988d08f15a5c527ca4f2c80e53f7c6ac0521bc57ebe38209180cbf934e0bbeb58cfb63d75da64af41d09ce174af1896f42522910fced35ea000402e95fd3ac7aa6d5e0a6b533b0879bc466019b3a5e6b16e4bd1ea6cdfc9ccc1d6f0f0\nresult = valid\ntag = eda709c7009714c372d0d6a63dfde469\n\n# tcId = 107\n# long message\nkey = 15d553c8da433d53cdc7f15087a70349caab57b379a4078928ce9b99302e31a6\nmsg = d6c0c53b73f74fb426adfdc143d70db7f7a8f8ed32a2faef263cf9ab117537b6b9d1728bd1000c1f28906c6ce6ad21862bfa4d689c1a8ebe3868b992098", "b7f981b2af5189a6adedff53a6c70c83693f5c8d6385a9a8a4dca017c5716ac4d5b9765c5ca2ab5f9867e02795198c0b9527e07d08af52dbcb91ceb3d8b412a2b2402\nresult = valid\ntag = 8ca1402bf8fc23442ac2067be925b828\n\n# tcId = 108\n# long message\nkey = ffe559468a1031dfb3ced2e381e74b5821a36d9abf5f2e59895a7fdca0fa56a0\nmsg = 238899a84a3cf15202a1fbef4741e133fb24c009a0cd83854c6d1d7c9266d4c3eafe6d1dfc18f13845ccdad7fe277627b5fd5ff2555ce6dfde1ee078540a0a3590c6d9bf2fb63ba9afbe9380e797be7cd017645c5a3613eef38ef89e3b7461e6e700ff2b4deef5636c9d2198b143f797ca1820a3dcc5d462ebf4a8c4c09eb202a23592eb9524082c79adda8fcd56d256041a26bf8f523962ba911ce5a5786570d65be3c4df722ed8830302065febdf944715298a1fbb7d10b68d7da2bf889324314ce51e815c7fbf03aa0a8358aff3a86eb7a33f9a4923660db3047e793bebb0c6918f4395d400381723fdae2832c36efc8e368a68f30f6351c3bc942cd560\nresult = valid\ntag = a830b313f4936dea56a3aefd6a3ebe7d\n\n# tcId = 109\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d28b42096d80f45f826b44a9d5607de7\n\n# tcId = 110\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d9b99f2709a3ca74172cbe93824c1f29\n\n# tcId = 111\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d18b42096d80f45f826b44a9d5607de7\n\n# tcId = 112\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = dab99f2709a3ca74172cbe93824c1f29\n\n# tcId = 113\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 538b42096d80f45f826b44a9d5607de7\n\n# tcId = 114\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58b99f2709a3ca74172cbe93824c1f29\n\n# tcId = 115\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38a42096d80f45f826b44a9d5607de7\n\n# tcId = 116\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b89f2709a3ca74172cbe93824c1f29\n\n# tcId = 117\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42896d80f45f826b44a9d5607de7\n\n# tcId = 118\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99fa709a3ca74172cbe93824c1f29\n\n# tcId = 119\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096c80f45f826b44a9d5607de7\n\n# tcId = 120\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2708a3ca74172cbe93824c1f29\n\n# tcId = 121\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096f80f45f826b44a9d5607de7\n\n# tcId = 122\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f270ba3ca74172cbe93824c1f29\n\n# tcId = 123\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f4df826b44a9d5607de7\n\n# tcId = 124\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3caf4172cbe93824c1f29\n\n# tcId = 125\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f836b44a9d5607de7\n\n# tcId = 126\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74162cbe93824c1f29\n\n# tcId = 127\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f026b44a9d5607de7\n\n# tcId = 128\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74972cbe93824c1f29\n\n# tcId = 129\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f824b44a9d5607de7\n\n# tcId = 130\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74170cbe93824c1f29\n\n# tcId = 131\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b45a9d5607de7\n\n# tcId = 132\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbf93824c1f29\n\n# tcId = 133\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d4607de7\n\n# tcId = 134\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93834c1f29\n\n# tcId = 135\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d7607de7\n\n# tcId = 136\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93804c1f29\n\n# tcId = 137\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a955607de7\n\n# tcId = 138\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93024c1f29\n\n# tcId = 139\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607de6\n\n# tcId = 140\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1f28\n\n# tcId = 141\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607de5\n\n# tcId = 142\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1f2b\n\n# tcId = 143\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607da7\n\n# tcId = 144\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1f69\n\n# tcId = 145\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607d67\n\n# tcId = 146\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1fa9\n\n# tcId = 147\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d28b42096d80f45f836b44a9d5607de7\n\n# tcId ", "= 148\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d9b99f2709a3ca74162cbe93824c1f29\n\n# tcId = 149\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42896d80f4df826b44a9d5607de7\n\n# tcId = 150\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99fa709a3caf4172cbe93824c1f29\n\n# tcId = 151\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f4df826b44a9d5607d67\n\n# tcId = 152\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3caf4172cbe93824c1fa9\n\n# tcId = 153\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 2c74bdf6927f0ba07d94bb562a9f8218\n\n# tcId = 154\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 274660d8f65c358be8d3416c7db3e0d6\n\n# tcId = 155\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 156\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 157\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 158\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 159\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 530bc289ed0074df02ebc42955e0fd67\n\n# tcId = 160\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58391fa789234af497ac3e1302cc9fa9\n\n# tcId = 161\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d28a43086c81f55e836a45a8d4617ce6\n\n# tcId = 162\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d9b89e2608a2cb75162dbf92834d1e28\n\n[keySize = 128]\n[tagSize = 256]\n\n# tcId = 163\n# short key\nkey = a349ac0a9f9f74e48e099cc3dbf9a9c9\nmsg = \nresult = valid\ntag = 3a8437b877b75cc08a4d8d7559a8fc6869a58c713da63d1d4b350d59b597e30c\n\n# tcId = 164\n# short key\nkey = ac686ba0f1a51b4ec4f0b30492b7f556\nmsg = 2fa43a14ae500507deb95ab5bd32b0fe\nresult = valid\ntag = 008532a53d0c0ab22027ae249023375374e2239b959609e8339b05a15742a675\n\n# tcId = 165\n# short key\nkey = 73ef9ef1a4225e51e3c1db3ace1fa24f\nmsg = ffad380d9aabb0acede5c1bf112925cdfc3d379fc2376a4fe2644490d0430ac3\nresult = valid\ntag = 9c7cb9f7c207ec46d1e3c55764731c4ab5ddbae4e1401e52a895df0cff4787c9\n\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 166\n# short key\nkey = e34f15c7bd819930fe9d66e0c166e61c\nmsg = \nresult = valid\ntag = 1d765ab9e29892f7bfec2975ad4bc2dc\n\n# tcId = 167\n# short key\nkey = e09eaa5a3f5e56d279d5e7a03373f6ea\nmsg = ef4eab37181f98423e53e947e7050fd0\nresult = valid\ntag = cfc19ec07902ec8be489606d8f40d172\n\n# tcId = 168\n# short key\nkey = 9bd3902ed0996c869b572272e76f3889\nmsg = a7ba19d49ee1ea02f098aa8e30c740d893a4456ccc294040484ed8a00a55f93e\nresult = valid\ntag = ac50adad9785a89c7282d8ab881dc615\n\n[keySize = 520]\n[tagSize = 256]\n\n# tcId = 169\n# long key\nkey = 8a0c46eb8a2959e39865330079763341e7439dab149694ee57e0d61ec73d947e1d5301cd974e18a5e0d1cf0d2c37e8aadd9fd589d57ef32e47024a99bc3f70c077\nmsg = \nresult = valid\ntag = f5bfb940561fb4db73ebba49bf2e4893bb0cca618a71b7ecf6aca38231e167ea\n\n# tcId = 170\n# long key\nkey = 2877ebb81f80334fd00516337446c5cf5ad4a3a2e197269e5b0ad1889dfe2b4b0aaa676fac55b36ce3affc7f1092ab89c53273a837bd5bc94d1a9d9e5b02e9856f\nmsg = ba448db88f154f775028fdecf9e6752d\nresult = valid\ntag = 1690ed4180642899e0deb9ec2270374e8b0a484217f5a682c524316eca219b64\n\n# tcId = 171\n# long key\nkey = 21178e26bc28ffc27c06f762ba190a627075856d7ca6feab79ac63149b17126e34fd9e5590e0e90aac801df09505d8af2dd0a2703b352c573ac9d2cb063927f2af\nmsg = 7d5f1d6b993452b1b53a4375760d10a20d46a0ab9ec3943fc4b07a2ce735e731\nresult = valid\ntag = e542ac8ac8f364bae4b7da8b7a0777df350f001de4e8cfa2d9ef0b15019496ec\n\n[keySize = 520]\n[tagSize = 128]\n\n# tcId = 172\n# long key\nkey = 813e0c078c221375e80590ace6774eafd2d2c242350988d02efa550e05aecbe100c1b8bf154c932cf9e57177015c816c42bc7fbc71ceaa5328c7316b7f0f30330f\nmsg = \nresult = valid\ntag = bb6ab66f51e53fa086c9c61a26ca27e0\n\n# tcId = 173\n# long key\nkey = 5713343096b0aaf0562a6b92c1a15535924160475a4e4233589159728c562e3b2ad96f740c6a4da2bc3f768ce98c9bd66bac28d1646ff592028c940d455f35eeb4\nmsg = 71712de2fac1fb855673bff72af64257\nresult = valid\ntag = c18165b8b97db1ca5e2486a32b39731e\n\n# tcId = 174\n# long key\nkey = 7208afbecf5f1f34828f98b719414e280716de64f5edd1ae1c774153cd2022337bb20fade1b7856f1dbfd40e2b4307f1293ceff1692ee90d8c90b5fdf953ab01a5\nmsg = 43b53302b604d613e62db002044a4782d572ac8fbd3cd0ece91b43bc52e18e98\nresult = valid\ntag = 2fecfe45d79339c57dddba68ab34f5f1\n\n", }; -static const size_t kLen272 = 47894; +static const size_t kLen277 = 47894; -static const char *kData272[] = { +static const char *kData277[] = { "# Imported from Wycheproof's hmac_sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HMACSHA384\n# Generator version: 0.8rc21\n\n[keySize = 384]\n[tagSize = 384]\n\n# tcId = 1\n# empty message\nkey = ee8df067857df2300fa71a10c30997178bb3796127b5ece5f2ccc170932be0e78ea9b0a5936c09157e671ce7ec9fc510\nmsg = \nresult = valid\ntag = a655184daf3346ffc6629d493c8442644e4996a2799e42e3306fa6f5b0967b6cf3a6f819bab89bce297d1d1a5907b2d0\n\n# tcId = 2\n# short message\nkey = 976696c0dc97182ca771975c3928ff9168ef89cd740cd2292858fd916068a702bc1df7c6cd8ee1f0d25e61d4c514cc5d\nmsg = 2b\nresult = valid\ntag = 363e8973fedcf7892013dfae0b7065d61d80b98c635bc09ed860a01473b9bcd0dc550dbf66cf0d601fe9cbf3ae59620d\n\n# tcId = 3\n# short message\nkey = c55ea4c64a0a63e2d14ad42559ba7c816b8824d263c2cc6a015761b53f681e514369f0dfba5cde165320ee10a96eb1fc\nmsg = 5abd\nresult = valid\ntag = ccc2925f164a7d9662f1e76bcaf6345492bb091d4d2d775af2178a4bcc1ca21dcf8b3bf8f056823770782f25a419bb3e\n\n# tcId = 4\n# short message\nkey = 2928d465d92fa40072ca9d67761be66e491755e43499003c1057d3bec870f255126c3658d0d8a0c7d207df8710037ca7\nmsg = c405ae\nresult = valid\ntag = d9e19c672a466e4c83a849905728c4be1db99bdd260946d9ff52939779002dcc460c576f02b40dda0717182be96b5411\n\n# tcId = 5\n# short message\nkey = 686a3730085cc944fceb141628419818e662fe21e52bea2748f3b704f80ce801086db1e3068917b242e62b4d6e6ed685\nmsg = 6601c683\nresult = valid\ntag = 10dc39103983b3a6be376a8eda7b6f363cb91efe11b027a62440ae136bd66f98b0a1d8b8f2399099492021076afa14a0\n\n# tcId = 6\n# short message\nkey = f22d867b972b232e3f444a488dd794d170807c70eb650f952b6177596f76c558a5d860d6f7be0be9e666f9bd53732f8d\nmsg = 15b29377e0\nresult = valid\ntag = e02e4e20b5f1e5f06913bc9745c9069c09ec1369f1a296ad1d07c04cc4f9cb4741248d7ba097cd3ba0e75d2409d6a01b\n\n# tcId = 7\n# short message\nkey = 3ac9abd53dbd0fbb891f9b5e16dd45df994e5283527832707138fc2712bad9e34761e7d9c6d05d46f2c8323ddb0efe99\nmsg = 5a34155b1115\nresult = valid\ntag = 78c53dd1a2431174628f5f4867fa777afa6df1b36269bba114d016d1065fcb021170baad09b4a528f40573903a65f540\n\n# tcId = 8\n# short message\nkey = ae3aa94fdd35e2bef40472d29bdad3a409840ea441c3d7025cd72f3e81ff56da602161d84b23d1634061385be30c5bbd\nmsg = 8a140d781e7191\nresult = valid\ntag = fd22ba896cb1147bb86f8ad51c253b792657c0becc913e90104da0f139f9b08c9169706f1531a2c6c03d6bd72a77eff2\n\n# tcId = 9\n# short message\nkey = 44b79852cabcf3fe93d2fff55d2afe6a46c35b7ad1954ce0888de7b459b982722faf8b490e6b00e7bcabbd36f18443f5\nmsg = 9398cd251deafe8b\nresult = valid\ntag = 56128fb438a93f6f48f47c0f4c7549f8008a8e69bbdbf0886ec40f86e7870034ef9090d2b04057391f1def5b25e8f0ad\n\n# tcId = 10\n# short message\nkey = 03fed2f579a3ebdececfb184ebe2984876113399c4a593d98b5f5e606dd330fb394c285d9ead601748259b493335f8e5\nmsg = 18d879b1f63df3ac7a\nresult = valid\ntag = a0e3b5660eeb5fc4a5dd48e725b09a0e282b22bbe2693d8b893ddf0f2116450e0875925407e909fde0f1f728f608fba9\n\n# tcId = 11\n# short message\nkey = f4ef48bf4056d39dbba4154018c63bdf29420b9991ea594ff05e3cc1cb02e176d54ba038a6b78692519d6788e495bbab\nmsg = 0a5de13cd9ba31c94486\nresult = valid\ntag = e9a1219e86983d69e336068b280309f974ab61f25968fc6352324ba49c36ce42c578676a3a31ef11e960d6771386650e\n\n# tcId = 12\n# short message\nkey = fc771f7ccd499a1ed633d86876d707b5f1d53c6bcdf21aa2907766ab3ca7fa6cdd6a9b981b1a84a528e81444303f1057\nmsg = 03ba11f3f3173b85226b25\nresult = valid\ntag = cfb4971d5449db364e2c8d0d429a0767050d480a5397f0dcc74294f52ea96260a57fe6cad14409ad67da6fbebf2da0d8\n\n# tcId = 13\n# short message\nkey = b3999de680b11550e18631c8199f7eb8a74e21bdc9d97f781245c2af19f85497d9f38b250a564e48650fd00be365f155\nmsg = 9c658cb5e601d85dc3857863\nresult = valid\ntag = d547e4cbd56e82b47d2ec93eeb6b34924ebda461fb60e475bf328d2368618f55fbf7b0e2eb1ff542c4eb7eefbfc8bd2b\n\n# tcId = 14\n# short message\nkey = 88005a62864ea699e1509616ec48033e84d2e2a13b8bc2e8a76f2eccbdb207a95ac8e2f5b5a703b22a0b571e8acc599a\nmsg = 5a94f84541a794bf23d72db16d\nresult = valid\ntag = d6b73ee67e88a20fceb5520be92594daf1b3786c7187535ccb1f0b926dae11adde6e8697ba803b159019849df3c9d2c7\n\n# tcId = 15\n# short message\nkey = b1cbda2c9a12f92315a5101aef311e99d6db002b0e04fb53c50106aa4d28e9a346697ba97084572eea56ccfc4ad7e572\nmsg = ce12c0c78e3f6b276ac56ed7435e\nresult = valid\ntag = 5c0802cd0ed82380e4c2a61d146ed72762613de89eb4ab9fe71da9ad3d79e1d2321cae186292f7c52ab639d3ba6aa85a\n\n# tcId = 16\n# short message\nkey = 08517e8014e00db5c37f2a20f987ea2ec52e7938de018ad6be256ba2236804144ad2a1bcc242738862b40647007e0a2c\nmsg = 21e2a0a167789a6b722d1737d92f8b\nresult = valid\ntag = 2264d3c9b835aedf699d5fbfc05d46f085591441df75aa2b2873f6c8a11a0856a2b79ae11ea0a91609dbd564a0bed456\n\n# tcId = 17\nkey = 503d7478a773b694d6e552c9703cc8bc56fd49fafc9a17cab8b0332dca8d49336fa7e9ec2bcb56253fe5bb504e3e7f7f\nmsg = d96e6fed893addfd9237c81c4f4e341b\nresult = valid\ntag = 19389766789912260f3f9757df3651663829c358bb48b22c1c63132070df318905beffd45f51e4dfcb3e785f44cf9106\n\n# tcId = 18\nkey = 41341bab902e767d4d1964c0acfecf46eff1b02b6455bcb2097de9c154be1f667f21be076de18cd2c15c005896fca87f\nmsg = 4c43ac7de3631cc86f4da72fe6b6a552f1\nresult = valid\ntag = 3c3104f24b7070cc3277d9ae640d416298fc917a0c1cdc3c2e7b6da75706fd2ae234efd551af12ae29144704793e2f6a\n\n# tcId = 19\nkey = c2f83be1acce7b89a5f9e9ea7e4c4f8b0f4319986fbe479fa3b4a3c298168362393b56ea03b5cef77f48e5a72abe6d08\nmsg = 8dd0cd786cd800ffebec098728923d69249d3223c4c595cb\nresult = valid\ntag = 751c6c7d00fef5e4edc993915fba694943a7ee3a2c8e5b700d0ee536bf85fb117a9cd6c456485cd670f7a0b490c83e61\n\n# tcId = 20\nkey = 6bd2aee9dd98d6b6609fce82181b10c20bba861da68a1590586fab08c5e9e90ff584047db4760828643fea38087160e4\nmsg = 33236a9de603c1e4f5e11164224740627d10f6008eb73ec2642321bf0b82d579\nresult = valid\ntag = e4cd8b8868bb078ed5d6938e40d9ff4bf61a4994be40a5f2b5446463e5db90516bccdd19f16c92e3f839b9d6de68b2a9\n\n# tcId = 21\n# long message\nkey = 2f98ba2ceaadc5ba08880a35cb0080dc870a5734a782ebe31c4bab100ff8786dcc3be6de18482ea5d1b3bf14aeabb470\nmsg = 2d74a66dacf12edb85ef3073feafd122889cb634add00ff0395d224b4ff8b5d5d67ca6419b6826abffdb41bab427d5\nresult = valid\ntag = a8ea72100859f4b7b6f2fe596248f1729bcdf0606c900ab52e51eab548d26e1eb634a42e5fc7ccc18356c0d283597ee2\n\n# tcId = 22\n# long message\nkey = 5e5f60e40d84c7ca2608af3bcc6e04abc5f8b7ca730a78af7f6f032e5a1501695bd91f3bebb28590af1db90d8390ca58\nmsg = 2efe6a14ea8d679e62dbcedf35e61852278c83c54adbe1f1c72cb1a746b11cff8cb4fc3a2c3acd44255d51c020ca6d47\nresult = valid\ntag = 6e8c95a4097ea13d064ed10809a33b569a6a84205158bd692ff82bc4b70b47a60ed332f2f5bca5211a1cc89c06f9c595\n\n# tcId = 23\n# long message\nkey = bc310bc3913d9fe59e2012a058c9e150534d25611e36206cf07ccaefe153f38eb0eaad9941b6883dfbce01bcb5196041\nmsg = 9f0747d7396bfbe01cf3e85361e50085e0a91a7490b994031d81851b725065993f45dad0d60d794aedec7ba5d9d6dbbee4\nresult = valid\ntag = 3a86498f78c3fb7eb3b7b3d82f677d2dfe01166fe76e232083334d74f11588fd089637c94761e9cfe836436005deaef7\n\n# tcId = 24\n# long message\nkey = dc770c64d00d156e43cb74970e3a1a2ad28b6d9ec6b2b6e5ac3e356a99f879cb620f00340c044cc1f31bdccfa0dbd177\nmsg = 403fd8e3ef51b6539db658a894be85b58fbc84881e61c5e0cb13ae421a09d31d780603256d390edd056d190856be00ad20a7048f0c67416fe8e02884086155f4263262e8c1275504d4f91f2751d3c3dccd4409ff2b45e41de93f7b104d58f6e15bacb62ace9700615ecc1b30a0cc1b35\nresult = valid\ntag = 1c4f6474f39e6eabbe7a99faa234f49833444130acf01dae68d68251a930419960b0fb5f48360149e05d1209941cc9ec\n\n# tcId = 25\n# long message\nkey = cca9299c7bdc26a4b595055c99ca23bec8ed11b5deeda91f83e2365e7340395ceef4e86e5cd91f2593bcfec498a67fc9\nmsg = a05b40b8d3a7bc7b75b0e97309c9bd1c9d8755c1ff5245ef6308a6a5cad3ecfbcb6364b41ca6f3d24bbee844d6204d1026abe345af7bdec114a373b109aa5724b738d50ab7a826c268e873709f8b35135a870045d5fb9daa82d3c245b5338917354e72b3058c9a4b807117465217d7d14f36f8a8d4e97bc3b93587c92641e7\nresult = valid\ntag = 1b6b5ba848bc13dd46c35177ae9ff9bd2d6ca5f4c9373964d3182483d980b4654527f36d7cc51b9e2efe7ed97a82e3be\n\n# tcId = 26\n# long message\nkey = c728e65e08d9296fe3cdf2dedb49c81a30b603a62569eece4ee5d01e9a32ae3bcb4ec163e455e452582454ceefefc046\nmsg = e6c6bac87c17e269a471434ca9568401451d78c2444a9d6edcda3cdab51c5bed1c19eaf34326580fd85ae5236ad51bc5dae386b36101f54695c595eeedcdd0182a4a117f8093f4f4812e03db396ede9849d193e7722081aeec4be6c4caf6c979d36ead56634a21be21162ea232dec9cffdbd2474245878dca369e814fd028303\nresult = valid\ntag = 533920a013cf006aa29b26f74b6dd29363", "4293089986aa249271c426b942dc6bae32b2641616672f3d75968866e182e5\n\n# tcId = 27\n# long message\nkey = 90c4215dc3f237435047fefdd8638d339a3fc66fca06c5063eacbda002ab335e621605f672f3da9f641fae110afc3e7b\nmsg = 1ebc22c3031b64615eb6f1a0696e33b7df139a4b891d3e6721cc26c05d55de790dca623668c10308485d38e95ec4769fa4430ca3ebc25da9f5d31c972674517d9a2222e6b97d8def6512af096c6d1480d83a229c84b7f28c80184b6bebf3f4eff5fc4e5c6cfea4f8eba9a957f7913b20a88ad1734f7c38547e934d1dbf2d73dbd61e31fb1583c7b6577a171e7d02f19045126ac2973d855bc18d34d32326d1e216da58366a60033450091128ae26a479069bba7b91b2ab7f3c5fbcde391de3ca114b951d6852f92795f8023d7a29a7f4ce61e9241b4f235d21e899087167ab3f3a0e9321c7942b165178788df48d3b106b203ec1e01d29bda41a99ac0d2c00\nresult = valid\ntag = c52b91daed6ee46416f2db78978251cb334e5d8e00b32ae06e365f455d28de406a9cce2f9f29378f229822dbf26bfdad\n\n# tcId = 28\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 45be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 29\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a84d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 30\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 46be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 31\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ab4d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 32\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = c4be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 33\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 294d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 34\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44bf81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 35\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94c07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 36\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be814415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 37\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d077f90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 38\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c414d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 39\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff91b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 40\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c417d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 41\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff92b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 42\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d2832b7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 43\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b3386064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 44\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7b62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 45\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e065b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 46\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283abfa62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 47\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e0e4b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 48\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a42a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 49\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064903603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 50\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a55188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 51\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03703d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 52\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45189e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 53\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d66bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 54\n", "# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a4518ae5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 55\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d56bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 56\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45108e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 57\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603576bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 58\n# Flipped bit 376 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c67\n\n# tcId = 59\n# Flipped bit 376 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d217\n\n# tcId = 60\n# Flipped bit 377 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c64\n\n# tcId = 61\n# Flipped bit 377 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d214\n\n# tcId = 62\n# Flipped bit 382 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c26\n\n# tcId = 63\n# Flipped bit 382 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d256\n\n# tcId = 64\n# Flipped bit 383 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310ce6\n\n# tcId = 65\n# Flipped bit 383 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d296\n\n# tcId = 66\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 45be81c415d283ab7b62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 67\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a84d07ff90b338e065b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 68\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be814415d2832b7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 69\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d077f90b3386064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 70\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d2832b7a62a45188e5da7bcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 71\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b3386064b03603d76bcf8214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 72\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = bb417e3bea2d7c54859d5bae771a25043468259f942a4e936d3e03c90e673f4c58eb6de7b72a1fc20e3b7b6447cef399\n\n# tcId = 73\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 56b2f8006f4cc71f9b4fc9fc289430fdeb4e047739946bea2218998b769bff06847bf7401059117938e9405b5b9f2de9\n\n# tcId = 74\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 75\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 76\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 77\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 78\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = c43e01449552032bfae224d108655a7b4b175ae0eb5531ec12417cb67118403327941298c85560bd7144041b38b18ce6\n\n# tcId = 79\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29cd877f1033b860e430b68357eb4f8294317b0846eb14955d67e6f409e48079fb04883f6f266e0647963f2424e05296\n\n# tcId = 80\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 45bf80c514d382aa7b63a55089e4dbfaca96db616ad4b06d93c0fd37f099c1b2a615931949d4e13cf0c5859ab9300d67\n\n# tcId = 81\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a84c06fe91b239e165b13702d66ace0315b0fa89c76a9514dce66775886501f87a8509beeea7ef87c617bea5a561d317\n\n[keySize = 384]\n[tagSize = 192]\n\n# tcId = 82\n# empty message\nkey = 1c678267be13acb464939c2896c9e9ce1deb5b30833bdd9ca00370889b84410782ad52afe25dc10ab7ec5cf5f34793b7\nmsg = \nresult = valid\ntag = 6dd566be678c1e6359ab31b635cc1601", @@ -7944,9 +8254,9 @@ static const char *kData272[] = { "090a0b0c0d0e0f\nresult = invalid\ntag = ab4d07ff90b338e064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 113\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = c4be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 114\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 294d07ff90b338e064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 115\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44bf81c415d283ab7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 116\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94c07ff90b338e064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 117\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be814415d283ab7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 118\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d077f90b338e064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 119\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c414d283ab7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 120\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff91b338e064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 121\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c417d283ab7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 122\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff92b338e064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 123\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d2832b7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 124\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b3386064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 125\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7b62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 126\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e065b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 127\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283abfa62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 128\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e0e4b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 129\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a42a45188e5dafbcb97da606bd5b16c\n\n# tcId = 130\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064903603d76bcf0214b1fb88c66b9415\n\n# tcId = 131\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a55188e5dafbcb97da606bd5b16c\n\n# tcId = 132\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03703d76bcf0214b1fb88c66b9415\n\n# tcId = 133\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45189e5dafbcb97da606bd5b16c\n\n# tcId = 134\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d66bcf0214b1fb88c66b9415\n\n# tcId = 135\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a4518ae5dafbcb97da606bd5b16c\n\n# tcId = 136\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d56bcf0214b1fb88c66b9415\n\n# tcId = 137\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45108e5dafbcb97da606bd5b16c\n\n# tcId = 138\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603576bcf0214b1fb88c66b9415\n\n# tcId = 139\n# Flipped bit 184 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16d\n\n# tcId = 140\n# Flipped bit 184 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9414\n\n# tcId = 141\n# Flipped bit 185 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16e\n\n# tcId = 142\n# Flipped bit 185 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9417\n\n# tcId = 143\n# Flipped bit 190 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b12c\n\n# tcId = 144\n# Flipped bit 190 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9455\n\n# tcId = 145\n# Flipped bit 191 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b1ec\n\n# tcId = 146\n# Flipped bit 191 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9495\n\n# tcId = 147\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b", "0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 45be81c415d283ab7b62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 148\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a84d07ff90b338e065b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 149\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be814415d2832b7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 150\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d077f90b3386064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 151\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d2832b7a62a45188e5da7bcb97da606bd5b16c\n\n# tcId = 152\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b3386064b03603d76bcf8214b1fb88c66b9415\n\n# tcId = 153\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = bb417e3bea2d7c54859d5bae771a25043468259f942a4e93\n\n# tcId = 154\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 56b2f8006f4cc71f9b4fc9fc289430fdeb4e047739946bea\n\n# tcId = 155\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 000000000000000000000000000000000000000000000000\n\n# tcId = 156\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 000000000000000000000000000000000000000000000000\n\n# tcId = 157\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 158\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 159\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = c43e01449552032bfae224d108655a7b4b175ae0eb5531ec\n\n# tcId = 160\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29cd877f1033b860e430b68357eb4f8294317b0846eb1495\n\n# tcId = 161\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 45bf80c514d382aa7b63a55089e4dbfaca96db616ad4b06d\n\n# tcId = 162\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a84c06fe91b239e165b13702d66ace0315b0fa89c76a9514\n\n[keySize = 192]\n[tagSize = 384]\n\n# tcId = 163\n# short key\nkey = 08476e9d49499c5f52e37f80ece6f5a45459948806b48241\nmsg = \nresult = valid\ntag = 1b6cfc8709aab8075465f32e13b0b0f796cc34d93d7bed090f297dcf9fb75e0d8e285b1500b732d554ac97ba45f33e47\n\n# tcId = 164\n# short key\nkey = 213b44d8e1fabaff837ef30ee2542f9ab82ed70411dae78f\nmsg = ee0bf48585c186ff991b4d8607817c9c\nresult = valid\ntag = 54f4010d50f80bcdb4b84d56bc4ef30e4c68f75128214cf446b5145f6fff1326a209945fc21ab5e1f5d917559ea9b800\n\n# tcId = 165\n# short key\nkey = b4afa9daaa8c944d73a3881f3221e42b34ef4e35f184e878\nmsg = cf607f6a0eb44ecbca81b6d1fdb595cee35f2353da02e82e28e133b9decd8fbb\nresult = valid\ntag = d064a51fb109c3b1d443f13f41e90e14198f846080464547806d46a8151c4e3855a81f4af40915609095dd72f869aa1b\n\n[keySize = 192]\n[tagSize = 192]\n\n# tcId = 166\n# short key\nkey = 89e46b66209548c80b0c830662223b49b0e3b895eb30e2fc\nmsg = \nresult = valid\ntag = 4b012c0c0da44ede2a427e85ace8ecc54b379e9e24f08d41\n\n# tcId = 167\n# short key\nkey = f2c10ce8cb1cf3b363354473b027c1e53deccef03233be0c\nmsg = e1fa10b8e301e0348405770bc3fafcb1\nresult = valid\ntag = 2d088af29cc744e347124fbe4100cbcdebbae037ed9bf69d\n\n# tcId = 168\n# short key\nkey = 92e074442cc4c59e72260808d80d8e7b85c6335068917b83\nmsg = 34eae27425ace17771e164cbb634306f352edc9c37bf608be8a755fb94148183\nresult = valid\ntag = b7e6b7bb29c02e4635dbdc50d8be71e2ddf0a544471de285\n\n[keySize = 520]\n[tagSize = 384]\n\n# tcId = 169\n# long key\nkey = db6f9956c3f4ca6e41f1f7f14629d44c79e0353edbf3e310e6858bbc45a7cd57778a9053ba22a141bf58bfd434ad08648c7041a224b97a0d17e0edf94fd40b410a\nmsg = \nresult = valid\ntag = 0cb1b296255bb259f3b601b49b35524a5eca6c52360754d3d96dd521c905b1c1821d74965967d8e86d50de950fe4d635\n\n# tcId = 170\n# long key\nkey = f03404bdb3e08f530d4c3a5f165d236012a4c45cd063e3e4483da088ec0afdb24e9639fccabb91f98a49dc2972e2981426573ecfe69c00c43a2d99a3107cef3a70\nmsg = 73ed9fa2acf49d6c98bfc7d6c5ad9c56\nresult = valid\ntag = b6132e5216f711eeeb44da3d92983fe5b6de5cd9410be71db8d3b07228341686aa60e7081e95f2e4b69bb7cd9648bc0b\n\n# tcId = 171\n# long key\nkey = ee799e25edb1b18452e5ed174bc6b2185a6754417d6cc05d736d2ba9efc8367e4b05ba0a2ee525ceeab74f9804a8479130c328d671e34070cf174a003a1dfb5994\nmsg = ac3e7da7e578b9b4dc2424030446c7f6aebcc471445a9e0e6e65099caeec5b2f\nresult = valid\ntag = c8607fca1888418166c550dd58d7a3976a6ecd0e4ca99b02fb187800a9c9ef909a6c1497c0652d4dca82405ab07f5eed\n\n[keySize = 520]\n[tagSize = 192]\n\n# tcId = 172\n# long key\nkey = 063d6e12e670098adabe68192023b637bb6d8d713fc8436188c4ec06fdd084ce6d193f26c86a9560e1abc27d813fce2b3eac0170fd1cb72e1930a2776bc84d6c11\nmsg = \nresult = valid\ntag = 9dc2acbfa28a7ac5f2a5bdd4b1b2dbc806c48f96ce950eb5\n\n# tcId = 173\n# long key\nkey = 359318e6c6279ba9ebcb1675f5a98195bbf5d895da9c17b8329038be857dc395b12ae91a55598876593c1c20bc0172cf15126b7a6bf0a238eda3325d6dd60600ef\nmsg = 7ad0c9098ea10e615bb672b52c96542d\nresult = valid\ntag = 4163737c219f7c5e743843dc3d36019c6585ea5d4e7cf24f\n\n# tcId = 174\n# long key\nkey = d01cd898089d8a1eeb0035b0d332da80fbd3571b9192db10fa6f55f665ab192d7050cab643996e99254d9573e0cf4eeaa63afccdefd81614fe7b83dfe30e3ba19f\nmsg = d67c77cdd0af5d10e8cae887e5a609bb76a9e5597653773c303b82b918fdc59f\nresult = valid\ntag = e7df527a988080749ee215ba0f8207838df38a37707a6330\n\n", }; -static const size_t kLen273 = 57350; +static const size_t kLen278 = 57350; -static const char *kData273[] = { +static const char *kData278[] = { "# Imported from Wycheproof's hmac_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HMACSHA512\n# Generator version: 0.8rc21\n\n[keySize = 512]\n[tagSize = 512]\n\n# tcId = 1\n# empty message\nkey = 5365244bb43f23f18dfc86c09d62db4741138bec1fbddc282d295e0a098eb5c3e37bd6f4cc16d5ce7d77b1d474a1eb4db313cc0c24e48992ac125196549df9a8\nmsg = \nresult = valid\ntag = d0a556bd1afa8df1ebf9e3ee683a8a2450a7c83eba2daf2e2ff2f953f0cd64da216e67134cf55578b205c8a1e241ba1369516a5ef4298b9c1d31e9d59fc04fe4\n\n# tcId = 2\n# short message\nkey = 00698977f7102c67b594166919aa99dc3e58c7b6697a6422e238d04d2f57b2c74e4e84f5c4c6b792952df72f1c09244802f0bcf8752efb90e836110703bfa21c\nmsg = 01\nresult = valid\ntag = 4d1609cc2c2f1ab5ddc35815ae1b5dc046f226bde17ec37a4c89ec46fbd31af2aeb810b196dffdd11924d3772bef26a7a542e0a1673b76b915d41cbd3df0f6a6\n\n# tcId = 3\n# short message\nkey = ed6dc65dbeaadbdaab530a0d35f19f78a7bd93e698546c82751bf650c2a44fc8529033d088febeed288fb4c8132a59df0207687640c76dcdb270ac3af5f042f1\nmsg = a78f\nresult = valid\ntag = 0757b27e120559d64cd3d6e3cb40d497845375815181bd9b4e74f2189d09d01a1b3ead53701380d988958ed22bc379ace9d47cbcac1d49bfa7e14f1f44804c30\n\n# tcId = 4\n# short message\nkey = 463c5e696da0ec0d784388be775d1d91d94746aa8d3d2c209f56ac95ea54e7288329f9fb40be4eef35547e64c61dc51a4a1f3380a2b96420f088655ea9d85b97\nmsg = e956c1\nresult = valid\ntag = ac4b1509391814ae5cb5a123e7a060601575c11d81b563bdc52febe6bb2c747b85eeddcb6748c98147a46a1cc9be6776d1a8e82ae4896b9c18da2ff351c56795\n\n# tcId = 5\n# short message\nkey = 4bc0d32e945cfdafd20d39be3820f9649727cbda5ab5859953a322cbde1ab7a514d7dcd14ba90905e70919bb86b85cfeaa375ee2ce2703711b938c8f4ab5f178\nmsg = b2aa48b3\nresult = valid\ntag = c4ecdbd2efb17640ce6707e2e9d0ee5bfb98b91584bc86ab386437eaa37b0f2eb70500361105416c0dcecff389dc94c723fcff18cb801740962312007a195a23\n\n# tcId = 6\n# short message\nkey = aca47f6350941a0efd8c3bac9064a554be337cde7d192f6fbf86d1b4db09b36531165cbae0a634206f71fa400df33352fff60e1fba4009ac6671cd37312bdd98\nmsg = bc993b1db0\nresult = valid\ntag = 89af2f5746cab89fda6993e00f1bf0cc70a77188945bb7b5409b536aec5533ad501db6ecfa3e516b580b7df9c8eadb3cf556ccc01668be984335bd5a6255d566\n\n# tcId = 7\n# short message\nkey = b3ecae6f25c2f699f158b3ffcd0a7a575583e4c9cb56b5c22ef4273cde6c6734e84d7400749c17e47e8cfccafaf8b50c65eb47dfeb273d5d30a1181e37b27ad0\nmsg = f0361d58291e\nresult = valid\ntag = 4037a57aa279b5a07abe9389dcf508be9495a8257dcb3feba3f0801cd57574c30bfddc6df5df6567cd572c4e82735fd4e67b65e85b030f183a7f4457fb7d2c3d\n\n# tcId = 8\n# short message\nkey = 70ff24a252d65183bdc6b7c88751f850821141a61246727c3240b4f96088ae3278767a822b65735a28ccebe4c874bcb2c942882cb23f9dd87fe08fbaad5ae72f\nmsg = e18da3ebf0ffa4\nresult = valid\ntag = 878d488754bc796c70e11d5db77acda2e1796d86146e27d862586740c4d488ed12239e6fb4ab2925afc88168609edc048f8572536fae96e149d73d230b18db66\n\n# tcId = 9\n# short message\nkey = dd4e05933d09711ee88cb4c1ceb3600b2b33808bc08d499387b331d9c7af49bc65b55172cf8083385a940e4b864b7b4b73ddf3bd513a6cbcac73878a879b4d06\nmsg = 66948029351432c3\nresult = valid\ntag = 9968a16eff2b4eeecb2f9d11fcb105e8d8ca59ed4e69131c9de599cd8155fa4f33def1195a6b452263aad9265e16d4951841d7cd33c74c475da04497c02922ea\n\n# tcId = 10\n# short message\nkey = fbd32caf8984fc4376d10daa7288db8e6e74464bdd94b448adab4497b319e9a6dcce542f82a7ff2e775d12477c880e460a9eab8efc49fcfc8c5476cb4b08954a\nmsg = 38a2586a2883953cc4\nresult = valid\ntag = e0c69bd034cdec5b48150fdf3a4383456a7626d4405df52dc6c2bc8fe93bd87e369e06a781ed80ba8b1fe1146c4df82b6a514412358b31b77b9b79c7a91ec9e4\n\n# tcId = 11\n# short message\nkey = fd4c3f6b2137513616c28ed4d8638f867ad0b97188b73fc9b36f3d52b82d72a49b9dc1b8b25397eb448054a8d38d838e7a88b4df9c263aea1b968771d5ac5756\nmsg = 86b4e61b3b7d650044ad\nresult = valid\ntag = 29345d7da44e2f228e8d502e29fb655da3676a481f9947c8482502ce070b3da5065589d84c02a05cd774b4bd5a15b668c59bafc192695aec43e5df3a82301745\n\n# tcId = 12\n# short message\nkey = f95baea535f477d22b405c67d927f59a9e042c46297a1681bcc16fdbe1b2cd59675a221351a78075981e7eb4998066768801cbd7a85231114d7f27f9bdf24899\nmsg = 5a34dee4e0982d458efffb\nresult = valid\ntag = 63867bb3e82bd4a5f715b3dd67ba3625666e458c5e3d75804709f80b6dde6f774ea223ba9e2536c60ab636dd12d07b217234a490ea9cae4fe673215d33f8c57a\n\n# tcId = 13\n# short message\nkey = 4d76ae95a123207e01c6d22d8b587e63ba682963e50961afff531160a9b9aac6c772c5e8bf918ddecbeb56455ea64710e51ac21e3bb9af4b24eaa8535b3c2924\nmsg = 2c31f2d986f68a6d6a96c4b0\nresult = valid\ntag = 9d4f9549ac134a6f60f17fd0fbc80f55426afa73cdaf84a806d98dfffc94263178116f76aadca95a9243a9128f5f66d3e7f33e72603d4b35ab90ab7d1e870ad7\n\n# tcId = 14\n# short message\nkey = 0da7fa1f5d217951e3e343cda81f232deb71764eb49e8510bc28dba8eb62afa2a98b6f0536adb10250c74878fe649f47bbafdf3f722fa150f66e83f65f606ab0\nmsg = 83511de190663c9c4229ace901\nresult = valid\ntag = 11bd76ba2fd5684e3faadd44abc05d32661472ae4c75fd69e62e47a2d462e483ab5fd374070e648017250934d486fed55e68f4338547fb5dc54d4bed894c1c2f\n\n# tcId = 15\n# short message\nkey = cec9e9f25ed9a017004a7882b1e44e8bd8fa3203c50cb6058455ed4f2a036788d46fcd328327d0d86b1abae69f7bbb96e3d66373ec8bd45075890879a83f4d33\nmsg = 80dcd8ba66f98b51094144e9b8bd\nresult = valid\ntag = c69f1787bf7804bfffd9da7e62f58c1c9f599ccae2ed4fc6abda1be48620afc797d59d4adb396e1fa5d18b8c1aa1c7c15218a9f9e3aab226119adad742641089\n\n# tcId = 16\n# short message\nkey = bbe25649ecdf54ae0028fb923cc8c28ec00e10e2d44214590781238a143b75d54efb037eb9f53082a8ab3d8876daf4dbdc2483c4ba222797fe20da3b7730368b\nmsg = 33f630088c0d24cda98caff1a3afc7\nresult = valid\ntag = c803ca833e851418a3d9ed764f8c83f481060141eb1b2bf64d7ee7991b041c48bfc747bce13d69722f63944085cef8e7a166270530fe31a2a525a99b8a75f1b1\n\n# tcId = 17\nkey = f5e2b9e2313f4f807cb3a924a7d4943fc3fb475d8f1a1b40ce09a37770f621af8977729cadf986c98c75f08a4fab4280538e09e7e51e87a8d62c03411bdb8d24\nmsg = 74ef623c83275ae99745bff7e6142afa\nresult = valid\ntag = 471055f7a2d44758e7d7837db85c33626b8306760eb45e18d4ba8dfbcd0d4279fcf8b539ef7b165eeabf5457ee2c41e52d07e9121da02c988f08162f86bdf208\n\n# tcId = 18\nkey = 8e323d5fb4752d92a6d905c512b287d07b21ae50002d026ff0388e1593bde9998dd02321e200d148f5fa2e824b37e9f5a77441794b840bedd552d1051c1ddd8c\nmsg = 4daa229b009b8984354c2ec3e7973e0042\nresult = valid\ntag = 93a2137cc84e2fa1439d7c239767b3ce653d634c58a4590eb61af9d3ef986445220aff3554de45a1b0933fa06d3d64460418910977d8d9ddb2eb04963c816841\n\n# tcId = 19\nkey = 465bc1ab2125cca29729d01df044e393b0677defdd939280a3aa141224efa06457e623056d02f6c36eca3dfc4a7476dd36b97d0c2d60c7672129189e73b6af8f\nmsg = dd84599b47ba9ae9f2ad0c8eac678485433eb6b1dfb7c998\nresult = valid\ntag = 9fff43a83c71833211f9d60eeef4166965c41a37c76634b1bdf9c5291df75dc877668f2287bcf8108ea9e03d061a708db2db08687eda61fa97b1ca92dcf22b92\n\n# tcId = 20\nkey = b90226798dff2ffb91d1ee4103f26397d0bf84c13c1ec717392c5fe1d4d0f4dc790236d759fa1be852e305da585a3dbde0d3912bea60d6b140c25645eb00943f\nmsg = aa29c372f136993c65ace5e1d62078806eb787913bb35af33371056359d354b2\nresult = valid\ntag = 493a727536b07d434a7fc8df6b70989148a8d94cadb9761ad845ac5fde2068f9565e68607b531b0f307d7c17ce0a2ba69fb1ac1b0c716f93904eec75669e70b7\n\n# tcId = 21\n# long message\nkey = af1bb91775cb40c73983f119c927a2ce8f7b954a6274ecc1cd96019e5c417af4b094376194eae71c7f68f3345654d5d9f8198a697b41ae251e82308accd935bd\nmsg = 75ededdfa7f1df1dc144fb195b27e454640e3f897cb564222f05e8aab0c6024f90472afea6e7254ed25134ea43452a\nresult = valid\ntag = b53d564086a745b10d88a48b50ed8b53f4c83fd12bf56a75108074de9b343cdf0668ce8b6a3d884ba2da5f4c957f1319e26c0813c99a4269c171ad80981013a2\n\n# tcId = 22\n# long message\nkey = 513e0e7622eabcb6bfc81669dac903df46daea1240f32248bbf4fc61f1f9b13b2c3fe1bcc97540d30065be9eee41e51748bc42c16a8c8269fbe2b6f625c19228\nmsg = 81d8650937f50871a66af71605ea4fa9d6c5d7a375774c2280eb34aefcee8c0ef83345bc547e4de7cbea482369b25a93\nresult = valid\ntag = 9d942e4585742ba118bda6e132510af3b9297047d364f76b2a0d1fc803849b06ccac0eaa427934055c9d2e5a5da19cf17299ffdab65089580d10ff7207c9ed03\n\n# tcId = 23\n# long message\nkey = 627c9a72247d07b0cec8346277468311c7401fc4cecaea8e22e13ece4b352c8f7a7eb1ba81ce348a08670438c97b8d9e883614d550f1ff16d636975c59988c2d\nmsg = 118e0468cbb52f93a3396ebfaa114881a98a4101f4ff912ced47ecfc73b27f52205b7a5d4f3899506f9e34ebf99460da7a\nresult = valid\ntag = a186e08c7731d4bbb1d5342a105ef48f5353c5c542277de607831fcbbc8d0b9fd509c74bf9e352ee739792ee3cd6382f", "96e70adb589fdf1fb031d43eef1a595f\n\n# tcId = 24\n# long message\nkey = 1e981d0cbbad5bea9480d836b4704bf3147663b6ea59e1e0a280fb45d9b85d445dc972159dde301c6f1e66681f95642dbb9a9218c00d0cd724cb02f3bcaea2ea\nmsg = 440dff390688c9fde31c17fdb61c1d13899f9544a986324c34d5eb07bef9a4436297f4a7fe16de5dd7b24e0c7c129051efe6f2dd0a21aec05c3e3c8f6fa30d9c0cbd60d840d14f0b2a928bc7189b9de4a6a731151d6b31e6a0ecae75095434737be8c3db11a6a697d0616c78b97041de\nresult = valid\ntag = c52eb5d18e90687248342a84dc0241c680e992b88b1409275df7e347c99169a50cd780eb4726ad759e2a027fb091354e3d7c7aba8a21f8acd1d0e21236af5f98\n\n# tcId = 25\n# long message\nkey = ee8aea2a52eb7e0c1120ab736b1a825b12610063de9642c594766c020cb87314d8ac94b13072bfbf3c019b4aacb1d2695cdd7563a26f574e12559906784d853c\nmsg = a3951f1d18135602fdadceeef5741c24ad22756160d0c55e51b788af952adaeb13e18c24c6b09672f405d7ec3d49b0bd86c7f8691b6f69af49175423215cf57d7c08a54ab0b0293e685c9aa250f1599d78193a00af822dec4b56fdb41f0343ab2cf85ea27bb2e650930f5e8ca836833903b053b3e06899b4012a6532978d90\nresult = valid\ntag = d3678ca7c5c1aa21f12eccc21a1add0b3eb12ccd134033570468191e51b058c61f2a7d88f2ca6c652c29c65c491bf1f0252bc157bdd77436ff55204eac6dfb0d\n\n# tcId = 26\n# long message\nkey = ecd1861a12eaee48aef1d7ed278223b50d3416dbff81e976c56ecd4b1a1bc8892b584cbcc72370ff5e976a6af1790caa32f9ea912855914c0315979578fbf165\nmsg = 5779c56373a8e5db43bd65c0453ce23144230d43666d717a3b59d2e90f0e10732376831d7281cb23dd5566e5f8c627d00d39650139ceb87cd47e921d65d6c1cc7712ac4bd75bda8828e68abc968f4160ed91b28946c9d706b0360bbbdd65f47ef9983c50f2d09d05c3674c0943ea4af54c381089f9b846dd69ce908e0f6eaaaf\nresult = valid\ntag = d377e4efc39f25ca751452e79dcb5661f8adcc06570bd3f710e03854e032286ca477e6a620647958fd31706463b542ddf617757875f349c61109358d04f6dc58\n\n# tcId = 27\n# long message\nkey = 71aadbf330ea133b46c939d12e603896902e8df638597c98872dfb5aecd5161bc84095221de3222367012f45c6d70701e862ab000e782e91b505b21b4e212c38\nmsg = e6d7b0280d2f7df83fd26562fcdea2597cf687a9c9fa194f655c44d3271b881f28adc436db8e0437ff4dc5d38356271c338829c3e2d9ba4ac1777c94886983d4b72c275bc00e4f7b06c5ce38a2fe549fe53761857f236da705fd03790b41cc6f759f41aa206feca7ba5486f4fc9d09f35c8e0887241291882010414ae41b8b384a715a409be13da17bfd60d3fbd4b8cb3cc7c26043807264a20b9a5c02725e742fff03e1806b38af357ebf8c79fc4c38b007bf0613286cf063e45482375475e6c426d4f70057cd92efcb2dfe86e45bdea399273a5e0f142221fae206800555c01b18533295f577e23a9a7a0aa072823002b9096501174d3bc4aac33e0dc600\nresult = valid\ntag = 0c1cbb2f196d3d1af5f982a330bf1d9accaada72cf6c254658cb32bfd8705481abd2e163a73338700f0d961ca02a31b600df04faf311cd06498557831102f80f\n\n# tcId = 28\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d39b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 29\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = be301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 30\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d09b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 31\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bd301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 32\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 529b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 33\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 3f301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 34\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29a9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 35\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf311cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 36\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9ebf87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 37\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301c3fb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 38\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f86809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 39\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb466720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 40\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f85809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 41\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb766720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 42\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809606f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 43\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566728e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 44\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617", "18191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f24109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 45\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e22f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 46\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686734109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 47\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720ea3f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 48\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f36109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 49\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23d166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 50\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34108fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 51\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f167e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 52\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc618d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 53\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24965c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 54\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc518d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 55\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24a65c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 56\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fb4718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 57\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e2c865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 58\n# Flipped bit 504 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388d\n\n# tcId = 59\n# Flipped bit 504 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca53\n\n# tcId = 60\n# Flipped bit 505 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388e\n\n# tcId = 61\n# Flipped bit 505 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca50\n\n# tcId = 62\n# Flipped bit 510 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb038cc\n\n# tcId = 63\n# Flipped bit 510 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca12\n\n# tcId = 64\n# Flipped bit 511 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0380c\n\n# tcId = 65\n# Flipped bit 511 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8cad2\n\n# tcId = 66\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d39b9e3f87809686f24109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 67\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = be301cbfb566720e22f166e24865c396f21619c7c15033cc6e8ebbcc8c5c", @@ -7956,18 +8266,18 @@ static const char *kData273[] = { "c396f21619c7c15033cc6e8ebbcc8c5c5b23\n\n# tcId = 147\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d39b9e3f87809686f24109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 148\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = be301cbfb566720e22f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 149\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9ebf87809606f34109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 150\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301c3fb566728e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 151\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809606f34109fbc718d62bbb09c278cf05a206adf21463e1170362\n\n# tcId = 152\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566728e23f166e24865c316f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 153\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 2d6461c0787f69790cbef60438e7295444f63d8730fa5df9520deb9c1ee8fc9d\n\n# tcId = 154\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 40cfe3404a998df1dc0e991db79a3c690de9e6383eafcc339171443373a3a45c\n\n# tcId = 155\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 156\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 157\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 158\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 159\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 521b1ebf0700160673c1897b4798562b3b8942f84f8522862d7294e3619783e2\n\n# tcId = 160\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 3fb09c3f35e6f28ea371e662c8e543167296994741d0b34cee0e3b4c0cdcdb23\n\n# tcId = 161\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d39a9f3e86819787f24008fac619d7aaba08c379ce04a307acf31562e0160263\n\n# tcId = 162\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = be311dbeb467730f22f067e34964c297f31718c6c05132cd6f8fbacd8d5d5aa2\n\n[keySize = 256]\n[tagSize = 512]\n\n# tcId = 163\n# short key\nkey = 14d93759fc28f3319ab74b8167c974e800f032344dc2747ec0f4945061a47827\nmsg = \nresult = valid\ntag = 68934dbe948d9a77a5e0a92ed98254fa3b6c93c8bf5eeaa912b7dfdf762b37192c5d8523bcab9ad71b09bf96d8454188d001c7f2077eb641199f5731b9f94669\n\n# tcId = 164\n# short key\nkey = 9fa371f36fb273d514fd628cb938067a4bae32a19a1e045a7d6d7f6de3751cbf\nmsg = 311bbf722d322cd7a0710f480fc66518\nresult = valid\ntag = 16345f6a6ca6e78d4ccac30b48d76691d6442420efa113c15ef127b538b5b024018b7d2db4bc3ed3424251ab6b8b6c3cb108b0beda842dc3e68e63400287e5cd\n\n# tcId = 165\n# short key\nkey = 6313f1526bc220f20dde1e64ced8597279586d1e15aad05ad591d841b369284f\nmsg = f744fa3933e16d8bf524afaeb34c715653a9cfb01fa45fe1fb68e701fe1487ca\nresult = valid\ntag = b88d1ba03e2799200a447550d18e310697a57974f513df77eb07bbe315ba5fef397eeb81ad9071680bcc6c70f6b252ade35b4a4040279ec01b86e40b98770e39\n\n[keySize = 256]\n[tagSize = 256]\n\n# tcId = 166\n# short key\nkey = 1e225cafb90339bba1b24076d4206c3e79c355805d851682bc818baa4f5a7779\nmsg = \nresult = valid\ntag = 23d482a05c907eeb346ba98f83db0f63c2adfbd5b2940f33c7964c7f1799f180\n\n# tcId = 167\n# short key\nkey = 6fa353868c82e5deeedac7f09471a61bf749ab5498239e947e012eee3c82d7c4\nmsg = aeed3e4d4cb9bbb60d482e98c126c0f5\nresult = valid\ntag = 1cf9d2c9c1b55a45190b5beb590cd4cc95e3853df8aaf9f4fef9bbbbd72435ff\n\n# tcId = 168\n# short key\nkey = 186e248ad824e1eb93329a7fdcd565b6cb4eaf3f85b90b910777128d8c538d27\nmsg = 92ef9ff52f46eccc7e38b9ee19fd2de3b37726c8e6ce9e1b96db5dda4c317902\nresult = valid\ntag = d127b7385badf0c76f2b3d8aa9c722333592e01f462fedd35ec664a6f6d52d74\n\n[keySize = 520]\n[tagSize = 512]\n\n# tcId = 169\n# long key\nkey = dd1e0bdbb6b60862176484f3669da531455f1cd714f999c29f08b851055fee8d72186d376c236f4e16cba7a25cba879fb2753deca4459aaebc6f6de625d99af330\nmsg = \nresult = valid\ntag = 7e4f7d844b3ba0e025b66de7cc6227bc50d4e174930251bfff3df36c3900b5b76b00095a896d0f96842e37b6134df40760307699534d6670f138974ee1c58d94\n\n# tcId = 170\n# long key\nkey = 432b311ebcfd46ecfcd3cc706ebd05c787dfbe1855fdcfce8d50c9a00f72b65a8d42acec335b4e07d544c92fd7b1d38543ac6e0fc04c26d88de8dd974af69e24d7\nmsg = 36b1fbe8f1335e7c0399c24730906420\nresult = valid\ntag = 2cfb688f30b10534da9377a4b3fbee1dec161cb288ac8b758793838b45ab953979dadf27817f477c9ebf23cfdcbacb60b81038e08bc4fc3180bd2a1ee805976a\n\n# tcId = 171\n# long key\nkey = 17f720f09df5972af9b9c63e10043284608900d50b7955db3b4e2679cb4120be2c9b9e2aa1a5743eb519792822c326b4d890b5554d1cb0eb71081b7569a2f04df7\nmsg = 57167c2524a55289687b83a40d3a69bc90adc53ad247020b88897f9b95d1516d\nresult = valid\ntag = 4f70267b98fceb4f662901bd18fb4c81ac164281dd0ece43028a3c2a65ca213aedf1bd207f0939bd879bbe20fd09cdeb20246e6539766add08b3adc5143d2bd9\n\n[keySize = 520]\n[tagSize = 256]\n\n# tcId = 172\n# long key\nkey = 8a0c46eb8a2959e39865330079763341e7439dab149694ee57e0d61ec73d947e1d5301cd974e18a5e0d1cf0d2c37e8aadd9fd589d57ef32e47024a99bc3f70c077\nmsg = \nresult = valid\ntag = e1657f44bf84895e6db0810a2cca61a6e105e12ec006f0b5961020301b57744e\n\n# tcId = 173\n# long key\nkey = 2877ebb81f80334fd00516337446c5cf5ad4a3a2e197269e5b0ad1889dfe2b4b0aaa676fac55b36ce3affc7f1092ab89c53273a837bd5bc94d1a9d9e5b02e9856f\nmsg = ba448db88f154f775028fdecf9e6752d\nresult = valid\ntag = 33d5a2d1998a586849eebf8134728485fcfc71248f4a98e622f83b967844c40e\n\n# tcId = 174\n# long key\nkey = 21178e26bc28ffc27c06f762ba190a627075856d7ca6feab79ac63149b17126e34fd9e5590e0e90aac801df09505d8af2dd0a2703b352c573ac9d2cb063927f2af\nmsg = 7d5f1d6b993452b1b53a4375760d10a20d46a0ab9ec3943fc4b07a2ce735e731\nresult = valid\ntag = 88d579c2801905b818070ccebd2c7192f97bb3e7acdcaf613cecc74d0e41", "1232\n\n", }; -static const size_t kLen274 = 39527; +static const size_t kLen279 = 39527; -static const char *kData274[] = { +static const char *kData279[] = { "# Imported from Wycheproof's third_party/wycheproof_testvectors/hmac_sha512_224_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HMACSHA512/224\n# Generator version: 0.9\n\n[keySize = 256]\n[tagSize = 224]\n\n# tcId = 1\n# using SHA-512 instead of SHA-512/224\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = invalid\ntag = 61d2fbea647212738aeb15d76ef078c3b66b0daa3bfdd55ce600145d\nflags = TruncatedHmac\n\n[keySize = 224]\n[tagSize = 224]\n\n# tcId = 2\n# empty message\nkey = 7eef1e40253350eb9307cc6bd8ab8df434bc2faf7095e45b50ffdd64\nmsg = \nresult = valid\ntag = de1ea6d2880770285591af1f04be43e44fd55ae0c5130b5a18af7d9b\nflags = Pseudorandom\n\n# tcId = 3\n# short message\nkey = 8648ee936c6ebc5ae4bb48c1139a54e3ac5d897beec492dc4d740752\nmsg = 2e\nresult = valid\ntag = 5979cc5dcdaf49daaadfc3388de3f5a04d183ebc896fd4f9dbdcc513\nflags = Pseudorandom\n\n# tcId = 4\n# short message\nkey = 2297d78cc45faf9b885b36ac80205cc08e1b730f264f23f4edbbb406\nmsg = 329f\nresult = valid\ntag = ed41089eb265e7b3c265c13426cefd0b934dfd05b3a8b0cd6962539e\nflags = Pseudorandom\n\n# tcId = 5\n# short message\nkey = 0361a904f7cbd107a617614ab69d11208ee6d423b3ae90e2bb6d7e54\nmsg = e6e765\nresult = valid\ntag = 742bfa0582e39a539a98068b989507f63bcbd8f99798746686846f53\nflags = Pseudorandom\n\n# tcId = 6\n# short message\nkey = 264a8d2128e8fd0972d9acc66dc275b1286beeb0aff7ce8e97c7b96c\nmsg = 25838e50\nresult = valid\ntag = bebb169e5470c13fcae6e3f9726a6d8894bf22e72dcddf6ebc669345\nflags = Pseudorandom\n\n# tcId = 7\n# short message\nkey = 6dde8828f09b7aa981082aa116fca3b7341721c0440803f52cc9732e\nmsg = be81602da7\nresult = valid\ntag = 91379c58125c721afc3e47813bc5f6946a22413f05becfbf0faf85d0\nflags = Pseudorandom\n\n# tcId = 8\n# short message\nkey = 3ba156ffdc55d155bd085105aca64d13044db60c82cf2cd9d61d098f\nmsg = 69c76c8937a0\nresult = valid\ntag = 4c9d5622bebf233b68b087ad802736b5027f013ca6382b11ac4cc992\nflags = Pseudorandom\n\n# tcId = 9\n# short message\nkey = 9c2739bae2a863fb0236466ba3408f4eec8d43206d56bb7aa2f8f75e\nmsg = aaf4c9146db948\nresult = valid\ntag = 543d1984aec6d26085c4fb62e1684a0b93d1f94ca22a6252324bae2b\nflags = Pseudorandom\n\n# tcId = 10\n# short message\nkey = 31d9cae2c3df064018209b121f9e883976ea757942ecda9d92fdadfd\nmsg = b844289529206f5a\nresult = valid\ntag = 9f7209e0d880c1bcd9af1379ac84bf0d10230b8a2f84fd653bddda9e\nflags = Pseudorandom\n\n# tcId = 11\n# short message\nkey = 89a1b9e9004444c1d4e967570c21a05512d3f618ec168fc3e13ea5a2\nmsg = 6b42eb6d84e90c70c2\nresult = valid\ntag = 685e480dfd6c29f8fb87e616c18ec6d5a9405777dd092e03dca1a67a\nflags = Pseudorandom\n\n# tcId = 12\n# short message\nkey = 4398731752fd7af1db86ebccbee0ad65eb5faf00ace6c9aa35441faa\nmsg = 1ae2e7d917c48026570d\nresult = valid\ntag = 07f2a5d4fde17d5b4fe1b97fbb96fac05863bf45a963702e2c51b045\nflags = Pseudorandom\n\n# tcId = 13\n# short message\nkey = 339460d6bb26ca60ebcef10c38587b9e575c398491782ccf9e8f6803\nmsg = ca03eb4f37536b2377738e\nresult = valid\ntag = 354c2bdedcf3c7d22054435391984c4ced92f4c6de20d2d057cc3ea1\nflags = Pseudorandom\n\n# tcId = 14\n# short message\nkey = 025f8380d10b8207b3623e4a90f79c3e753b1be6a35b88b68330a40c\nmsg = e57daef9ede4e915c3a9eece\nresult = valid\ntag = 01d8f38ff5e10f7497cb76846245cc7d25a139f31ec8b40f055b7c50\nflags = Pseudorandom\n\n# tcId = 15\n# short message\nkey = 0bdc5f51f8a1a35d75554be70efbcdf51e54f30fa4696f727431941f\nmsg = cc3dd1eb0690f7af09ad408f9c\nresult = valid\ntag = c08767ccaae2148b2c7f5a19ccbe0c59993d5b3401ee2a3e50f0bc5b\nflags = Pseudorandom\n\n# tcId = 16\n# short message\nkey = 5ada97d90a74a7d4a68c5464fff25a9b7fa2e75d6acf0a59f143a2e9\nmsg = 3fe4ede158af108e09f543e14ab7\nresult = valid\ntag = 15c164bd2d2e729bdf205a78ef3a2ae2d9c24d963b04995411a22b31\nflags = Pseudorandom\n\n# tcId = 17\n# short message\nkey = 007afe6b7c0701c30cb76b431afa3510c8b31d21cfe0bbaa5289cd08\nmsg = c2cf80005c591c1f737369fcc212f0\nresult = valid\ntag = d97c88423ad64a10a66c471979589f155f2020d6cde7adfda5b76487\nflags = Pseudorandom\n\n# tcId = 18\nkey = 26491168a32ce8cbc4c0cd64107e4fcc432f07d59c992862e1e55b1e\nmsg = 15e51091b4f424ba1fdecb5e2fba11f6\nresult = valid\ntag = 7820d75782cbcb699bdf3a46a5be7b4ec43a00b2b78000ea738345a2\nflags = Pseudorandom\n\n# tcId = 19\nkey = 6978b6c134dd6949832d65e4cb9c1e1dc36beae4a134907c80da0f44\nmsg = 6641d834b3fbfdb5d178007801f7b4e7b1\nresult = valid\ntag = 3b76bfd395df3bfd1e26e8c97639ee2a1549f44327a6cbdea2c320d2\nflags = Pseudorandom\n\n# tcId = 20\nkey = 9f9fb280adf12e739548b1d676cb794d685b9104e63b619b055cb60f\nmsg = 91513dd6de40a1c23f8d1eb0ab8f5ea6f6835506ec750894\nresult = valid\ntag = ef1c83ce9ebbc0b210bf488534d56149d1e67f6f13e0b3b5c0eff85c\nflags = Pseudorandom\n\n# tcId = 21\nkey = 3b1b16e6dd2e69559dbeb964e10fc94c068471b2374d3a2d24d2d466\nmsg = 8ecd55b56c668dcb8e8b1efd699c0e4a464204d29af140f87d3f5075495378a3\nresult = valid\ntag = 79960b85cf3b9c36e36e98a8438253a7ac42fa700029323a671725c0\nflags = Pseudorandom\n\n# tcId = 22\n# long message\nkey = fc296398845063e661bdf36ff3615926eaccbf06947cd31e6677f710\nmsg = 62bd0ad75d64c554cb2cc109c6e4019fc601c61cabdf99f8de871edc17a301b4c1f55a15ed66f91eb4666dd08bc59c\nresult = valid\ntag = 8714e7993140c4811cfa66565d10f2e7f12a64e92fbce35243b2bb93\nflags = Pseudorandom\n\n# tcId = 23\n# long message\nkey = 6c98d1feafff9861351966bc6ed19ed467f9dc767fa0df6b56955554\nmsg = e99d51a1d9a25c5842501a5383133578c8debe501581b1610f7575519bbd26f01ab7cbe069bfd5df3699a2fea5b461a3\nresult = valid\ntag = 2d14e4be0d01fc2d8672d99100c00e8e04189163e4c933b6354b880f\nflags = Pseudorandom\n\n# tcId = 24\n# long message\nkey = 42a164f94e33d574118e0f8c938bbc2874bab219ee7a179f21e13b02\nmsg = e895639631f8b5d48e3ce00eb310bf129976ffced96a6f30a09d6ac1c291f73e93690526d86cc4d1a8e21c11f5a8979308\nresult = valid\ntag = a097c8fef5ac1138bc3aafb208d62dcbdc7ff9269edf0d2f17d37ad4\nflags = Pseudorandom\n\n# tcId = 25\n# long message\nkey = c1b5b91210667e72aa510346e1811358815a3330c5ed27a695c39451\nmsg = bf1086c3ea8b8840418c690c92152c73a6730bd1a0210c8b1d25c43a2193e739684f04a25a52cc305599f22ba6f70c8ed00d10b914a9522a25e06c471ebca2ff1bb4fa6799b85122020978dfa66ef12ed26ad38331b26eaf591afceac96d8c771eae50fb7f46242337dd0029f4813b53\nresult = valid\ntag = 09877e2602fefd379afe23f0e75a3979f11ad516bd11d0c04e77ec64\nflags = Pseudorandom\n\n# tcId = 26\n# long message\nkey = 4f09d14d40e475b68288c080668ebb1bc8c6be3191f6664d91a23fcd\nmsg = ae8b6ecc219b368d22fb596e42652d0bffee0b20d69cfd089ce3dc9303ba2f054ccaf5f5147c7968a028b140f5e3c9274eae2afc61c3bb6298dc598df77dec1cd2dd84212693b082b8132ad0f0b19f66db69fa7f6bf352b4feac724ce048440d2a42b44d53bb62fe2ab25f7f54bedf9ce7ddafd8e09330dacc6d52ee9b65f5\nresult = valid\ntag = b4ad5a816e5e7f93cd357b7d9c3ff8fa46f4440c39a0d2c19b4ee1f3\nflags = Pseudorandom\n\n# tcId = 27\n# long message\nkey = 613f414cd94130bb8a6243e12eccd90836808428b4a7177867934da0\nmsg = f696b9063b64816a45064f48ca05ffe4d5cc3d0b3beb0dd4057b6ada994969bf039bfbb72ce197101cc4e4b3959b3702f045afb7fb3113c997606dcaf2aaab31e02ac6ee597dfc0f9143d0effedc9ae7ea10e7ddb1db860a91afec62c48ed9c0a6c10b4da1de748caf7f7a5e01799ac57090daf4e3352fe859c5131c205d262d\nresult = valid\ntag = c6912ef24a670cd423391ff7cff4c44329c5e604cf6d8bd9a5acffa1\nflags = Pseudorandom\n\n# tcId = 28\n# long message\nkey = 5b88275307aaf691a0cf0c51f50553dda972d14f8afff98e62c2d972\nmsg = 57e4efbde1ce9fee2e29db19dfc6ba3bcb17f33765af7f20133bbd1910d542145c7def187a304517b8d8954454a90a717f67f9c8cc587965fd9b43f41ecc50b3458d8ce9f66b475f1eaef4a29ba89a3d58e5011c92acd1536fcd18abec29411b389b64f7f344777ed6deae32127abaa69a50ba22a11d6e59354f2ff0e3c3e3293cdc335411cf55b180bab59da36903a6fba91df34d2aadf7017ff49a4fbd73c9c74469f225dafc0a0c7048c2b824cc0cba8cad8aced11b8cdac3243cdb5b654f7a15ce2014e92ee287d06904d778512a1b1f5ec0c9b090b9ab439c44266b6be3d6a98947d26d079e4f7e849f3c6d93de98624e6c5f53ec02dbd368bc24a300\nresult = valid\ntag = 3699b1e0af2aedb5eb7db914df2267d7ec8982869ad2117dab613297\nflags = Pseudorandom\n\n# tcId = 29\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 49efbd72991a1b6c1a276d5f37b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 30\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 879315366722fe790cae426b35a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# t", "cId = 31\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 4aefbd72991a1b6c1a276d5f37b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 32\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 849315366722fe790cae426b35a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 33\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = c8efbd72991a1b6c1a276d5f37b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 34\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 069315366722fe790cae426b35a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 35\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48eebd72991a1b6c1a276d5f37b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 36\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869215366722fe790cae426b35a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 37\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbdf2991a1b6c1a276d5f37b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 38\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315b66722fe790cae426b35a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 39\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72981a1b6c1a276d5f37b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 40\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366622fe790cae426b35a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 41\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd729b1a1b6c1a276d5f37b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 42\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366522fe790cae426b35a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 43\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1bec1a276d5f37b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 44\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fef90cae426b35a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 45\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1b276d5f37b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 46\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790dae426b35a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 47\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c9a276d5f37b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 48\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe798cae426b35a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 49\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a076d5f37b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 50\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790c8e426b35a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 51\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276c5f37b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 52\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae436b35a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 53\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276d5f36b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 54\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae426b34a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 55\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276d5f35b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 56\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae426b37a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 57\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276d5fb7b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 58\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae426bb5a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 59\n# Flipped bit 216 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276d5f37b62e55deaddbe0bd107e4bfa366c67\nflags = ModifiedTag\n\n# tcId = 60\n# Flipped bit 216 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae426b35a9354196cee5f968db30eb0b5163b3\nflags = ModifiedTag\n\n# tcId = 61\n# Flipped bit 217 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276d5f37b62e55deaddbe0bd107e4bfa366c64\nflags = ModifiedTag\n\n# tcId = 62\n# Flipped bit 217 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae426b35a9354196cee5f968db30eb0b5163b0\nflags = ModifiedTag\n\n# tcId = 63\n# Flipped bit 222 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276d5f37b62e55deaddbe0bd107e4bfa366c26\nflags = ModifiedTag\n\n# tcId = 64\n# Flipped bit 222 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae426b35a9354196cee5f968db30eb0b5163f2\nflags = ModifiedTag\n\n# tcId = 65\n# Flipped bit 223 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276d5f37b62e55deaddbe0bd107e4bfa366ce6\nflags = ModifiedTag\n\n# tcId = 66\n# Flipped bit 223 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae426b35a9354196cee5f968db30eb0b516332\nflags = ModifiedTag\n\n# tcId = 67\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 49efbd72991a1b6c1b276d5f37b", "62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 68\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 879315366722fe790dae426b35a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 69\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbdf2991a1bec1a276d5f37b62e55deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 70\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315b66722fef90cae426b35a9354196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 71\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1bec1a276d5f37b62ed5deaddbe0bd107e4bfa366c66\nflags = ModifiedTag\n\n# tcId = 72\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fef90cae426b35a935c196cee5f968db30eb0b5163b2\nflags = ModifiedTag\n\n# tcId = 73\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = b710428d66e5e493e5d892a0c849d1aa2152241f42ef81b405c99399\nflags = ModifiedTag\n\n# tcId = 74\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 796ceac998dd0186f351bd94ca56cabe69311a069724cf14f4ae9c4d\nflags = ModifiedTag\n\n# tcId = 75\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000000000000000000000000000\nflags = ModifiedTag\n\n# tcId = 76\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000000000000000000000000000\nflags = ModifiedTag\n\n# tcId = 77\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nflags = ModifiedTag\n\n# tcId = 78\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nflags = ModifiedTag\n\n# tcId = 79\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = c86f3df2199a9bec9aa7eddfb736aed55e2d5b603d90fecb7ab6ece6\nflags = ModifiedTag\n\n# tcId = 80\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 061395b6e7a27ef98c2ec2ebb529b5c1164e6579e85bb06b8bd1e332\nflags = ModifiedTag\n\n# tcId = 81\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 49eebc73981b1a6d1b266c5e36b72f54dfacdae1bc117f4afb376d67\nflags = ModifiedTag\n\n# tcId = 82\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 879214376623ff780daf436a34a8344097cfe4f869da31ea0a5062b3\nflags = ModifiedTag\n\n[keySize = 224]\n[tagSize = 112]\n\n# tcId = 83\n# empty message\nkey = 26f314170b054daef5349804da18f969c94174baca2beeb009d47a23\nmsg = \nresult = valid\ntag = a27305b736f48c15db5a8b4c99e2\nflags = Pseudorandom\n\n# tcId = 84\n# short message\nkey = 17429a622dc18d38715b31f8f2b963108e952a6708f3e52d5b25848a\nmsg = da\nresult = valid\ntag = 4e44747b2af2ec7d4c2f3eaee226\nflags = Pseudorandom\n\n# tcId = 85\n# short message\nkey = 0acfe12d89acd7d9ca49bae6318f35b2fbbfc84e5d2c9d4954beded7\nmsg = 03a8\nresult = valid\ntag = 52ddf94b5f544840ded36fae52ef\nflags = Pseudorandom\n\n# tcId = 86\n# short message\nkey = 5a0680f112354bd467865b19ae956b2719e21ecee1a913bdca294339\nmsg = a0fb73\nresult = valid\ntag = 5c0448f858fca81d5fb874d0d9eb\nflags = Pseudorandom\n\n# tcId = 87\n# short message\nkey = 46fa59aa524fe30a0f4e39561b5666854440dbd970bb59925ce0ae1a\nmsg = c8b2f557\nresult = valid\ntag = 3ec7e0c6da0faa258e6eaf15b115\nflags = Pseudorandom\n\n# tcId = 88\n# short message\nkey = 29efc5ab5d30e535357603f2711b6e0aa6cf4613546c23144436d213\nmsg = c8d9f5b373\nresult = valid\ntag = 95bdce6766b6aadd3dd42551f14d\nflags = Pseudorandom\n\n# tcId = 89\n# short message\nkey = fe60e0322035538f2b1de9de380cde35f291deeb6e027b5d829ecd1e\nmsg = 185e4cada4f4\nresult = valid\ntag = bed5a5e44558a8994d786ba9b3d2\nflags = Pseudorandom\n\n# tcId = 90\n# short message\nkey = 1bf7fcdf3742fa77991528cc1c678b98be9876a8c8c5b809beab7d9c\nmsg = 9c0f34a5654279\nresult = valid\ntag = 6cccde17c6681e556ec608a356eb\nflags = Pseudorandom\n\n# tcId = 91\n# short message\nkey = 32533c16f792ed0acf8e9e60f54aa173937c7194b882ecc3e671009f\nmsg = f968dc7a19afe339\nresult = valid\ntag = 2ecc97ae579f761908dd63cabcc5\nflags = Pseudorandom\n\n# tcId = 92\n# short message\nkey = 3cf28a476ce7eaecfc3fbf1b0859a042a568740a584c77cb8f9603ac\nmsg = dbca9e4bdd84b38934\nresult = valid\ntag = 735cf724c76e81abaf6f2ffac034\nflags = Pseudorandom\n\n# tcId = 93\n# short message\nkey = a2a8090aef69277f92830ec7404c032f8fdebfbceabb9e590968a77f\nmsg = 6b790a946a83364c79d7\nresult = valid\ntag = 86415126c1fc8ebfea4b9027415f\nflags = Pseudorandom\n\n# tcId = 94\n# short message\nkey = 6f999929e91672bac35ea70f8ff8b9aeefa5489493c99b0d27797207\nmsg = b7dabb237aeae2be8b5e19\nresult = valid\ntag = 521d98d1ec2e55b5df46e3e2dcb1\nflags = Pseudorandom\n\n# tcId = 95\n# short message\nkey = 4525b96c263e4d2dab2890aa55f3cc503dc1206d9f1915a6fba5ae61\nmsg = ef858f496fcb7c3fabbfb52e\nresult = valid\ntag = f57cda8a74b524d1271c8b979249\nflags = Pseudorandom\n\n# tcId = 96\n# short message\nkey = f89401acb0a60d07fd733ed563f2ee241f4ecfea8114587a44dfdb0c\nmsg = 7d3c0918085984df95097afa81\nresult = valid\ntag = 4374d99e54cd51ea7efb4db69fc1\nflags = Pseudorandom\n\n# tcId = 97\n# short message\nkey = 58bce8c0d17fc7131d2fa2262409bb14663a6e68019f88299987893e\nmsg = 1ca50cd6c3f1225eb6c4ec4d6a90\nresult = valid\ntag = a489401e20b7d456d3db526a1533\nflags = Pseudorandom\n\n# tcId = 98\n# short message\nkey = 658e510fba4e2208afac98333f9e242bc118f6e79ef0661d619dd32b\nmsg = 32c385b75ae84558ca302881c51639\nresult = valid\ntag = 0c8a6c34fb28cce7bf39f9c399ee\nflags = Pseudorandom\n\n# tcId = 99\nkey = 6a41cc3ca7142ae14e6d979a3f890a331597e592dd74520ce4ea660f\nmsg = 78e3a770a8aaaf039fd4c9b6a1780411\nresult = valid\ntag = 11c226517ace709316e552f5ef92\nflags = Pseudorandom\n\n# tcId = 100\nkey = b8972b93b68302cbaa08d32904eae6375a66f3508ece3c9b22382c7e\nmsg = 3687e6287d73c9e3f679a50e7671247127\nresult = valid\ntag = 7c9fa33e9a8e351538e53711a65c\nflags = Pseudorandom\n\n# tcId = 101\nkey = bc570932abfa11050ad4fc80a6d5afe3271d86aa29dc62738b207d14\nmsg = d53202acd2ec74d746531bd9ad3016d0980e0166fb427a08\nresult = valid\ntag = 38907c41f54cdc605500a417839e\nflags = Pseudorandom\n\n# tcId = 102\nkey = c92a0665c12e87026e1b344f971fdb0e474d450cba834aae40e2d21e\nmsg = 4a3a85ac09f5190ab94f73fd91d98f056015263c89ed5da223fc4675cab25cdd\nresult = valid\ntag = 394248ebf929c3b5caf3c66a2be2\nflags = Pseudorandom\n\n# tcId = 103\n# long message\nkey = 6fbef67cfbacc98c63252b1ca009a60e8e3479769a2d449fb4639064\nmsg = 006e179eacfa9e1e628bb7823ee9609ae7968b6df90e176f772a79088d37e9b15cab312922aaf8fc6583a341002bda\nresult = valid\ntag = 7c30f2ddfd88a67b4d248feac3ef\nflags = Pseudorandom\n\n# tcId = 104\n# long message\nkey = 700b09908174f1072e31ae8ccbda1c4460fcf21fdf146a11482b210d\nmsg = f772564ecb109e80eefb1d5a7f1c95e203ba4c980233dd8d13de3046079a6b2ca26dc3521e5e0c807eae7a79877c73e9\nresult = valid\ntag = 4a50251d607bf6b159ab8251278c\nflags = Pseudorandom\n\n# tcId = 105\n# long message\nkey = e18a20246ebe1b5796dbfe35110efc7637d74a355f0a6758d4a00b7d\nmsg = 77720dde530e6eeaa0e9af3311f7e99189d6c4f7d71d0a4207d62c766bee32020c92f5d5d28d5de4d0d9c94b57ec05f0c3\nresult = valid\ntag = 5b7e9454b9a59fc7b63a4f4509ee\nflags = Pseudorandom\n\n# tcId = 106\n# long message\nkey = 3c4585a775bec76c7d8b27b87e70a5863a85e6111f3161b3815f59b4\nmsg = 628c0ff8c432d74f4cfb77ba46b7cef67a48ac053cf0c18be4164873", "6abcc8c6fbe4981529babd4b27866e34ced16d8b0bec456e14653a1422f5a62556d20b0fe4e03749d5f6e986375062dbdd82f6e9e1d4ad547c31530c2a31383c25ff57e879eae99d9b3a0da1f3c1dacb975067ac\nresult = valid\ntag = a17024021a2ea88f885eb1ea63b0\nflags = Pseudorandom\n\n# tcId = 107\n# long message\nkey = acaf94cb1a8ff4677fc586d2bdf981ac3a656b208215e0a7647b420f\nmsg = 314c2c25465de3427279dbc89436505fee6d37d56fbda0e5e2a49449d9dbf003027f2e4ef5c52f7af93fd80155a66a1cd6b9885b56d828058a0de7d247e19580b2e8dcbdef2ae46840565fd8b276569c19d7e185116ea11ad67d5fc27f4a6816ba45be5d14f3ba4315c74d1edb20f217b116be852b62a7f4e32b3e708ff9f7\nresult = valid\ntag = 8abf1099527ceb51ae8adbff4ef8\nflags = Pseudorandom\n\n# tcId = 108\n# long message\nkey = e490348ad78fd2cd5b51f2795b79e5805ce1d9baf1151dbdf995e1b0\nmsg = f6ff1845842b9e46f79adb1079aff47397391dc269bc0c899ba4087b58a676f5408c3f7637ffc4772af3e41b5cea51058bc528ea09bb4bd797594c798b0f0ff881695e98c08bbb040c12c5cbdb228d61cc99e332e963128d06e97ed2eefded2e1b5a035f3bea68273efac03a894dcf2fcc79a5696218595404b2758deb9a80ee\nresult = valid\ntag = 8af7f1421d15ae9b407b19815e8e\nflags = Pseudorandom\n\n# tcId = 109\n# long message\nkey = c8e099dbb60a8f19d8b86856b21c55f3437ae27f77dff9808f12a1b5\nmsg = edbc109bf28c8ab32b1238eff1cd14308cdd845fa919bfd8a00c991cf9a8d6b05dd8cc7d2393782949c899de79e771ef7d8567f32287623963048e6c80d91f0778dd63311106e9d0913c08b7a0b7253fa3ce307ac40ec55a4c445f5455a570fec090e251e8646bada1a486d41c3794bce5639732f2c6cfd58081c479a68c515f5d47bc5b2f1622a08d38a596a817f3d4efef8003ae430e6ae93b0a3ae8fa95a2ace3d24d90a9ef861dc04c13e38f6e524b3abdf9cce4fa490707c80c16e254b7a71af00a12dbf473b50b9fe4097ec00ab27e66b6f3022b0f101ee1a9f7fa8652e9f095ca240a446067446867f78e8352c4110794c2e3383dfedfb35e74a33e\nresult = valid\ntag = ad5b46cdc16ac10c3f027236a44a\nflags = Pseudorandom\n\n# tcId = 110\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 49efbd72991a1b6c1a276d5f37b6\nflags = ModifiedTag\n\n# tcId = 111\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 879315366722fe790cae426b35a9\nflags = ModifiedTag\n\n# tcId = 112\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 4aefbd72991a1b6c1a276d5f37b6\nflags = ModifiedTag\n\n# tcId = 113\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 849315366722fe790cae426b35a9\nflags = ModifiedTag\n\n# tcId = 114\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = c8efbd72991a1b6c1a276d5f37b6\nflags = ModifiedTag\n\n# tcId = 115\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 069315366722fe790cae426b35a9\nflags = ModifiedTag\n\n# tcId = 116\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48eebd72991a1b6c1a276d5f37b6\nflags = ModifiedTag\n\n# tcId = 117\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869215366722fe790cae426b35a9\nflags = ModifiedTag\n\n# tcId = 118\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbdf2991a1b6c1a276d5f37b6\nflags = ModifiedTag\n\n# tcId = 119\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315b66722fe790cae426b35a9\nflags = ModifiedTag\n\n# tcId = 120\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72981a1b6c1a276d5f37b6\nflags = ModifiedTag\n\n# tcId = 121\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366622fe790cae426b35a9\nflags = ModifiedTag\n\n# tcId = 122\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd729b1a1b6c1a276d5f37b6\nflags = ModifiedTag\n\n# tcId = 123\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366522fe790cae426b35a9\nflags = ModifiedTag\n\n# tcId = 124\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1bec1a276d5f37b6\nflags = ModifiedTag\n\n# tcId = 125\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fef90cae426b35a9\nflags = ModifiedTag\n\n# tcId = 126\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1b276d5f37b6\nflags = ModifiedTag\n\n# tcId = 127\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790dae426b35a9\nflags = ModifiedTag\n\n# tcId = 128\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c9a276d5f37b6\nflags = ModifiedTag\n\n# tcId = 129\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe798cae426b35a9\nflags = ModifiedTag\n\n# tcId = 130\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a076d5f37b6\nflags = ModifiedTag\n\n# tcId = 131\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790c8e426b35a9\nflags = ModifiedTag\n\n# tcId = 132\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276c5f37b6\nflags = ModifiedTag\n\n# tcId = 133\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae436b35a9\nflags = ModifiedTag\n\n# tcId = 134\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276d5f36b6\nflags = ModifiedTag\n\n# tcId = 135\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae426b34a9\nflags = ModifiedTag\n\n# tcId = 136\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276d5f35b6\nflags = ModifiedTag\n\n# tcId = 137\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae426b37a9\nflags = ModifiedTag\n\n# tcId = 138\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276d5fb7b6\nflags = ModifiedTag\n\n# tcId = 139\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae426bb5a9\nflags = ModifiedTag\n\n# tcId = 140\n# Flipped bit 104 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276d5f37b7\nflags = ModifiedTag\n\n# tcId = 141\n# Flipped bit 104 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae426b35a8\nflags = ModifiedTag\n\n# tcId = 142\n# Flipped bit 105 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276d", "5f37b4\nflags = ModifiedTag\n\n# tcId = 143\n# Flipped bit 105 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae426b35ab\nflags = ModifiedTag\n\n# tcId = 144\n# Flipped bit 110 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276d5f37f6\nflags = ModifiedTag\n\n# tcId = 145\n# Flipped bit 110 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae426b35e9\nflags = ModifiedTag\n\n# tcId = 146\n# Flipped bit 111 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbd72991a1b6c1a276d5f3736\nflags = ModifiedTag\n\n# tcId = 147\n# Flipped bit 111 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315366722fe790cae426b3529\nflags = ModifiedTag\n\n# tcId = 148\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 49efbd72991a1b6c1b276d5f37b6\nflags = ModifiedTag\n\n# tcId = 149\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 879315366722fe790dae426b35a9\nflags = ModifiedTag\n\n# tcId = 150\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 48efbdf2991a1bec1a276d5f37b6\nflags = ModifiedTag\n\n# tcId = 151\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 869315b66722fef90cae426b35a9\nflags = ModifiedTag\n\n# tcId = 152\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = b710428d66e5e493e5d892a0c849\nflags = ModifiedTag\n\n# tcId = 153\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 796ceac998dd0186f351bd94ca56\nflags = ModifiedTag\n\n# tcId = 154\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 0000000000000000000000000000\nflags = ModifiedTag\n\n# tcId = 155\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0000000000000000000000000000\nflags = ModifiedTag\n\n# tcId = 156\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffff\nflags = ModifiedTag\n\n# tcId = 157\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffff\nflags = ModifiedTag\n\n# tcId = 158\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = c86f3df2199a9bec9aa7eddfb736\nflags = ModifiedTag\n\n# tcId = 159\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 061395b6e7a27ef98c2ec2ebb529\nflags = ModifiedTag\n\n# tcId = 160\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 49eebc73981b1a6d1b266c5e36b7\nflags = ModifiedTag\n\n# tcId = 161\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 879214376623ff780daf436a34a8\nflags = ModifiedTag\n\n[keySize = 112]\n[tagSize = 224]\n\n# tcId = 162\n# short key\nkey = 77b0de54e893642caeac34bfd1ab\nmsg = \nresult = valid\ntag = 08dc9a2f35e07d60e1aa64d3defa46f9338bac3c8591e9f9f9935ca0\nflags = Pseudorandom\n\n# tcId = 163\n# short key\nkey = 7346c7e4b118b24e51f4512f906a\nmsg = 506d4faf624f92965aa6b5c01e0c80a8\nresult = valid\ntag = b54d31dd8ed124255aeca208d438e5b08ae1116057a1cb8f758d61db\nflags = Pseudorandom\n\n# tcId = 164\n# short key\nkey = caa864179f66e826a0ef3b5edbe3\nmsg = 73f64253706ce6b5094c24ee012ece9ac2495283dcd8c7f1114e81e4587d8ea4\nresult = valid\ntag = 80abd30d83e3e6dc89b14eee6f875a06f0b4b807abde66900129daae\nflags = Pseudorandom\n\n[keySize = 112]\n[tagSize = 112]\n\n# tcId = 165\n# short key\nkey = 663a97d6b5493dbfa60c8dd087ed\nmsg = \nresult = valid\ntag = 08fcd608bc979c84d52887313e66\nflags = Pseudorandom\n\n# tcId = 166\n# short key\nkey = b08c345a7c7166fdd33ce768c1dc\nmsg = 9964d80ee2338cffe28483aa446a6f76\nresult = valid\ntag = 056f6a8e114741ad674322f21fdd\nflags = Pseudorandom\n\n# tcId = 167\n# short key\nkey = fc9d2883c67534fefbd6ed4a9798\nmsg = a49820c194a43deef11f3a0f4eaa80425439fca9d9f1d7c8e665d6b130e4e908\nresult = valid\ntag = 569ee7d61a6e7f7c47254edf5937\nflags = Pseudorandom\n\n[keySize = 520]\n[tagSize = 224]\n\n# tcId = 168\n# long key\nkey = cfa639656cd49f8d70f0b1a5a056ab4fc0aeeebc91338d067f36c47b6012dc8d856b8abcc4e1abffc910aeaee21b4d366e907488ffd0ca55b36a621aee0b2e9f0c\nmsg = \nresult = valid\ntag = 3191e7a11401b7229d39f710c79c0d3c863525983582eb78ee259c8e\nflags = Pseudorandom\n\n# tcId = 169\n# long key\nkey = b36d3d47a4585b401fc64c98eff56243d4da78863063d814e88f370b92576406d447fcf3d129a1ede57ddc56ea3a0a1f100105a95e83138cdf45ecf2a5992acf90\nmsg = 15c75a64b04d097af2371af380079eb8\nresult = valid\ntag = 6d1e2f1d736b429096292dd6e07c1f6589eccc0bb751cc0b778cfc95\nflags = Pseudorandom\n\n# tcId = 170\n# long key\nkey = cf78b991382db5e8666ccb2333fb672179b10a75cf9e5a7699ae640005e19772ef6499a3bc97f12e58e835bb0017bb3b2e64c6ab44a0d619dfa0363484d1c991e2\nmsg = f661e598f180f25dc6dd76db8a9e0e4c9c272b9665a6b1756560c723b8e08595\nresult = valid\ntag = f2381927c5382b0db8355f362be7f77d6f4412a7a30e93746eb97a05\nflags = Pseudorandom\n\n[keySize = 520]\n[tagSize = 112]\n\n# tcId = 171\n# long key\nkey = 3772ff6bb4e5b2811cfd4d6a3d34dc74bca3dbf89a5817b79d8472a1383b8c9afb27b3006196ce9966829eae6a313c2d724d995f4def17117c09edcfc8c0cbbc93\nmsg = \nresult = valid\ntag = ea5345000128c0738c8f599a6e3b\nflags = Pseudorandom\n\n# tcId = 172\n# long key\nkey = 2ba910bc0bca90644cb21e96063e2cd85f5dd02fda75d353c9b51eaf45eee94c165ca6592d6cfdd987bfdc1cba66363d535a14b2f7ead841b17c4d76a5049105f9\nmsg = 7ba461040de9ea3cefd4809124f78b39\nresult = valid\ntag = 94b6b9944a2150c2352ec433f37d\nflags = Pseudorandom\n\n# tcId = 173\n# long key\nkey = 7fcf3cb1b1c5b537492aede4689284b5881935e3537bb7307198d6518e7a6aabf70b50b44e4a8dfee35e9f5cbada7447e511a37209390fcd171c62075c6a8bf1eb\nmsg = 83d29c1c4d059ddb0d2aca787e5b701bac3953fb9bc72dc87b1ef92a582e9748\nresult = valid\ntag = c5bda15644f48a624902d3251aa6\nflags = Pseudorandom\n\n", }; -static const size_t kLen275 = 42276; +static const size_t kLen280 = 42276; -static const char *kData275[] = { +static const char *kData280[] = { "# Imported from Wycheproof's third_party/wycheproof_testvectors/hmac_sha512_256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HMACSHA512/256\n# Generator version: 0.9\n\n[keySize = 256]\n[tagSize = 256]\n\n# tcId = 1\n# using SHA-512 instead of SHA-512/256\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = invalid\ntag = 61d2fbea647212738aeb15d76ef078c3b66b0daa3bfdd55ce600145d7c910753\nflags = TruncatedHmac\n\n# tcId = 2\n# empty message\nkey = 1e225cafb90339bba1b24076d4206c3e79c355805d851682bc818baa4f5a7779\nmsg = \nresult = valid\ntag = baae6ac18c37dbf3a71b22741ced96e1e2dbe6e7a737142e14bd93fda144dad0\nflags = Pseudorandom\n\n# tcId = 3\n# short message\nkey = 8159fd15133cd964c9a6964c94f0ea269a806fd9f43f0da58b6cd1b33d189b2a\nmsg = 77\nresult = valid\ntag = aee7a277e0f36a042368ae52b1337ba13f1c00fdb2dfb1d5f0c304e485c3a7dc\nflags = Pseudorandom\n\n# tcId = 4\n# short message\nkey = 85a7cbaae825bb82c9b6f6c5c2af5ac03d1f6daa63d2a93c189948ec41b9ded9\nmsg = a59b\nresult = valid\ntag = 10e53513a8a4749d977ab7ed4a718727b9e2346fc735e4ee202de37a5fadb2f7\nflags = Pseudorandom\n\n# tcId = 5\n# short message\nkey = 48f3029334e55cfbd574ccc765fb2c3685aab1f4837d23370874a3e634c3a76d\nmsg = c7b8b2\nresult = valid\ntag = 238bff443bf9c439227f2b1e2e7298c576909ff8ee618d0f74f0ec63629b4df7\nflags = Pseudorandom\n\n# tcId = 6\n# short message\nkey = de8b5b5b2f09645be47ecb6407a4e1d9c6b33ae3c2d22517d3357da0357a3139\nmsg = cc021d65\nresult = valid\ntag = df7cf9e3cbc2770d2ca7f91f8c3acb7f7d1c8d549706cd54c6cd14725b268468\nflags = Pseudorandom\n\n# tcId = 7\n# short message\nkey = b7938910f518f13205ca1492c669001a14ff913c8ab4a0dc3564e7418e91297c\nmsg = a4a6ef6ebd\nresult = valid\ntag = 89ebd94af4d3d963f29d7b443ddb023f230208e371daa586629fe407f2d1bcd2\nflags = Pseudorandom\n\n# tcId = 8\n# short message\nkey = 1bb997ff4de8a5a391de5c08a33bc2c7c2891e47ad5b9c63110192f78b98fe78\nmsg = 667e015df7fc\nresult = valid\ntag = ae7a29fd949066b682b6efda53aedfaea2afb217460825085d76ba05c3146676\nflags = Pseudorandom\n\n# tcId = 9\n# short message\nkey = 32fdeda39f98b4f4426c2d2ac00ab5dd4bfabb68f311447256ed6d3d3a51b154\nmsg = 4163a9f77e41f5\nresult = valid\ntag = a5e439420fa9dedc9db6c2479305fe66d462499f05c383f628fb0f51b5ff11b1\nflags = Pseudorandom\n\n# tcId = 10\n# short message\nkey = 233e4fdee70bcc20235b6977ddfc05b0df66f5635d827c66e5a63cdb16a24938\nmsg = fdb2ee4b6d1a0ac2\nresult = valid\ntag = 37597f0aeba2c247c3bf3ecc6ec5e6beb0efe1c08499daa98428c03c5f8e8504\nflags = Pseudorandom\n\n# tcId = 11\n# short message\nkey = b984c6734e0bd12b1737b2fc7a1b3803b4dfec402140a57b9eccc35414ae661b\nmsg = dea584d0e2a14ad5fd\nresult = valid\ntag = 8e323512445ad61949af45242f01ed91162617812e827b79508008f5c5ba5d0b\nflags = Pseudorandom\n\n# tcId = 12\n# short message\nkey = d0caf1456ac5e255fa6afd61a79dc8c716f5358a298a508271363fe1ff983561\nmsg = 18261dc806913c534666\nresult = valid\ntag = d6d5d3d7522af212cf539dfa3d25652aafb93881739db248a4fcd0fc48c66e4e\nflags = Pseudorandom\n\n# tcId = 13\n# short message\nkey = 835bc8241ed817735ec9d3d0e2df4c173ee4dded4a8ef0c04a96c48f11820463\nmsg = 26f8083e944bacf04e9a4d\nresult = valid\ntag = 0866e924b0ea366795c0ce78d0217b0d6308285b1be4effbd9ac075b1ee54c0b\nflags = Pseudorandom\n\n# tcId = 14\n# short message\nkey = 055f95c9461b0809575eccdfa5cdd06275f25d30915c4eb8db40e1acd3ab7591\nmsg = bfb7d6a08dbaa5225f320887\nresult = valid\ntag = 8901caf87509a9ad50907be7ed64786440da6e12900236989a30449ebe13aa5a\nflags = Pseudorandom\n\n# tcId = 15\n# short message\nkey = e40f7a3eb88ddec4c6347ea4d67610756c82c8ebcc237629bf873ccabc32984a\nmsg = 7fe43febc78474649e45bf99b2\nresult = valid\ntag = 993d5ae37dd031c74a5ee1514ae152ddb24283b03bc2fa7fdfee6b164ca06c1d\nflags = Pseudorandom\n\n# tcId = 16\n# short message\nkey = b020ad1de1c141f7ec615ee5701521773f9b232e4d06376c382894ce51a61f48\nmsg = 81c7581a194b5e71b41146a582c1\nresult = valid\ntag = f1f15fd253c0e1abe524643c6830422420243c71267de7ea7b5fab173f8d528a\nflags = Pseudorandom\n\n# tcId = 17\n# short message\nkey = 9f3fd61a105202648ecff6074c95e502c1c51acd32ec538a5cce89ef841f7989\nmsg = 2a76f2acdace42e3b779724946912c\nresult = valid\ntag = d75cafdafc0711855db378b5b525fc77df150c6b3cb9bbc21627dc56d17d6a32\nflags = Pseudorandom\n\n# tcId = 18\nkey = 6fa353868c82e5deeedac7f09471a61bf749ab5498239e947e012eee3c82d7c4\nmsg = aeed3e4d4cb9bbb60d482e98c126c0f5\nresult = valid\ntag = f2503f147ad7cc3d411e25211491914b658a6676dfd45ed54f6b279ffeb939c1\nflags = Pseudorandom\n\n# tcId = 19\nkey = 5300489494ca86221c91d6d953952ae1a5e097139dc9cf1179c2f56433753824\nmsg = 90fea6cf2bd811b449f333ee9233e57697\nresult = valid\ntag = 7f0470eb227de250cfac8e690767b4ff49ee3f8e68a7d03716921e5c018ca3ce\nflags = Pseudorandom\n\n# tcId = 20\nkey = 383e7c5c13476a62268423ef0500479f9e86e236c5a081c6449189e6afdf2af5\nmsg = 3202705af89f9555c540b0e1276911d01971abb2c35c78b2\nresult = valid\ntag = fa928790bde88ad98ef3ac926097368eb6cdac1ca9b2b0b101c501171478a176\nflags = Pseudorandom\n\n# tcId = 21\nkey = 186e248ad824e1eb93329a7fdcd565b6cb4eaf3f85b90b910777128d8c538d27\nmsg = 92ef9ff52f46eccc7e38b9ee19fd2de3b37726c8e6ce9e1b96db5dda4c317902\nresult = valid\ntag = 3fc7a4a6677c1b0b5b90555847d16819d285a5cff63ea21c98253e58031d4ff5\nflags = Pseudorandom\n\n# tcId = 22\n# long message\nkey = 28855c7efc8532d92567300933cc1ca2d0586f55dcc9f054fcca2f05254fbf7f\nmsg = 9c09207ff0e6e582cb3747dca954c94d45c05e93f1e6f21179cf0e25b4cede74b5479d32f5166935c86f0441905865\nresult = valid\ntag = fc8a7726fd9ffcf936e554e984732750dac592d6ee86fc81839e24f18c3afd31\nflags = Pseudorandom\n\n# tcId = 23\n# long message\nkey = 8e540cb30c94836ae2a5950f355d482a7002e255207e94fda3f7ef1a099013a0\nmsg = d6500f95e11262e308bf3df4df4b855f33e857563d4543f195639a0a17b442eb9fdcc1367d2eee75c8f805730b89290f\nresult = valid\ntag = 46b170a647cb6bc3ca975195e62f54e1f1f966cf42ce553546f4d43269131d14\nflags = Pseudorandom\n\n# tcId = 24\n# long message\nkey = 69c50d5274358188cff4c0fae742243d4e8a5e5ba55d94ff40edd90f6a43dd10\nmsg = 1ac5255aff052828d8ea21b376f1ebdd4bb879949913900405aebce83e48feb6813b5e9c89f94501a8ade41b26b815c521\nresult = valid\ntag = 24902a3e64c863f137d9dc84ebb629a071a9ac266bd583625225cef98f278c45\nflags = Pseudorandom\n\n# tcId = 25\n# long message\nkey = 23209b7c5aadcbd13f7279af1a86d3c7ae8f179d1bcaaad0dff9a15302e78dbf\nmsg = 84bdac37e1af35d9356404e2787d47ece58348dea76a4a46e8aade3463d4db8c94a051be3733b38d756984865d56c60e8025f15e3f968f093e7fb7ebc7e31189c5692d15ed4256737b9b1894e5809503aaa1c9983fb096aa21916361eeb6ef455b129723a1a1ddf9deddea208529a648\nresult = valid\ntag = 141c849ca20286c73f95c674cd15886bf48443bf71deae36935762d553c9685f\nflags = Pseudorandom\n\n# tcId = 26\n# long message\nkey = 7c9cc667cae175f448faa96647319633b2d48531373ae7d316c44ddd8b9f69cf\nmsg = 9233c1d73b498c5106ff88951e07b9652cb0ddae740737ec205c9876d094978bfc947f7dc937119fd6a93915b19b625958a7a22363aa2ac33fb869ed16b303336ab740a0498a2df66a6599da710094481a7b544bd955b6f97135ba4673401db2db144a6e287041e47a51ed9b6ba956c13508c1c0c25310105239ab73629e30\nresult = valid\ntag = 40b2235a0ebf00b7e5f89059114cf37d28b7da2201be2a8502a9eeb61be15f30\nflags = Pseudorandom\n\n# tcId = 27\n# long message\nkey = 82314540564ea3ce30591e97f68b2602de40fa29f773c2508327471b8348e8c4\nmsg = 6a6d2f45cebf2757ae16ea33c68617671d77f8fdf80bed8fc5cdc5c8b7086bd28e7eb3eecc7163491104e5309455e67f836579b82a1da3bf5991a8e2b2f189a49e05700e46c409ed5de77780a5f389e3f13dad406c9d55675329c5c921f07034180937c0f6ef34a2308b6ff3e1a0e9dc1ea65f5632730e8744d1db2c40a6595b\nresult = valid\ntag = bd2ae0fd279df94ee8366ddb78a38431e48975780c8d2820ca68c66453e771c4\nflags = Pseudorandom\n\n# tcId = 28\n# long message\nkey = d115acc9a636915241795f48852052e07b51273ae2448251ec1d0d0f9807f3db\nmsg = 696d2456de853fa028f486fef437b6b6d1b530a8475e299db3a9005ae9cef8401985b7d31e172e8f439ccd1ad1ec44c9b86b78f3f243c1305b53bc21abad7a8fc5256311bfd34c98e37dfdc649e7ae4bda08cf2994b063c0c7106ed0b02a1f48af9191cbfb0d6a953b7e04327dfe8c93779cb574ba9cba575d01674e83621aa0c5f400d6e6cd24b301e33c9f3303e73bf357408c1be86c2489c09de998ff2ef32df554f1247d9313ce1a7160115d06f4c18d6556ff7986ef8a55e2adcfa27e4c69c71cc2ff01639e9d49bd9ed0687f530ffeb0890132457df2088081bc4a2f7f0a9f4dcea2c80d991db7f3747a1803d7619aaf3dd382c69536a0bcdb931cbe\nresult = valid\ntag = 33dae4d519d63031654e93f3bc8a319e8946723793487b6c3185c10a6ccbd872\nflags = Pseudorandom\n\n# tcId = 29\n# Flipped bit 0 in tag\nkey =", " 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 63d06962dd2c4114a07d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 30\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8bd41561cada5abccc606f00c4a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 31\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 60d06962dd2c4114a07d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 32\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 88d41561cada5abccc606f00c4a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 33\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = e2d06962dd2c4114a07d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 34\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0ad41561cada5abccc606f00c4a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 35\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d16962dd2c4114a07d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 36\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad51561cada5abccc606f00c4a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 37\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d069e2dd2c4114a07d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 38\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad415e1cada5abccc606f00c4a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 39\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dc2c4114a07d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 40\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cbda5abccc606f00c4a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 41\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962df2c4114a07d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 42\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561c8da5abccc606f00c4a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 43\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4194a07d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 44\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5a3ccc606f00c4a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 45\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a17d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 46\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccd606f00c4a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 47\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114207d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 48\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abc4c606f00c4a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 49\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a05d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 50\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc406f00c4a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 51\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0a1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 52\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606e00c4a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 53\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0b1ef06df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 54\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606f00c5a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 55\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0b1ef36df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 56\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606f00c6a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 57\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0b1e716df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 58\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606f0044a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 59\n# Flipped bit 248 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacd\nflags = ModifiedTag\n\n# tcId = 60\n# Flipped bit 248 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606f00c4a35931794eb51a2709dd667de3c6c2e684e3eb\nflags = ModifiedTag\n\n# tcId = 61\n# Flipped bit 249 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aace\nflags = ModifiedTag\n\n# tcId = 62\n# Flipped bit 249 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606f00c4a35931794eb51a2709dd667de3c6c2e684e3e8\nflags = ModifiedTag\n\n# tcId = 63\n# Flipped bit 254 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\n", "msg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aa8c\nflags = ModifiedTag\n\n# tcId = 64\n# Flipped bit 254 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606f00c4a35931794eb51a2709dd667de3c6c2e684e3aa\nflags = ModifiedTag\n\n# tcId = 65\n# Flipped bit 255 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aa4c\nflags = ModifiedTag\n\n# tcId = 66\n# Flipped bit 255 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606f00c4a35931794eb51a2709dd667de3c6c2e684e36a\nflags = ModifiedTag\n\n# tcId = 67\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 63d06962dd2c4114a17d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 68\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8bd41561cada5abccd606f00c4a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 69\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d069e2dd2c4194a07d0b1ef16df27cc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 70\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad415e1cada5a3ccc606f00c4a35931794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 71\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4194a07d0b1ef16df2fcc5f2d9c80fc246e8a9ef7b9b7c59aacc\nflags = ModifiedTag\n\n# tcId = 72\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5a3ccc606f00c4a359b1794eb51a2709dd667de3c6c2e684e3ea\nflags = ModifiedTag\n\n# tcId = 73\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 9d2f969d22d3beeb5f82f4e10e920d833a0d2637f03db9175610846483a65533\nflags = ModifiedTag\n\n# tcId = 74\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 752bea9e3525a543339f90ff3b5ca6ce86b14ae5d8f62299821c393d197b1c15\nflags = ModifiedTag\n\n# tcId = 75\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 0000000000000000000000000000000000000000000000000000000000000000\nflags = ModifiedTag\n\n# tcId = 76\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0000000000000000000000000000000000000000000000000000000000000000\nflags = ModifiedTag\n\n# tcId = 77\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nflags = ModifiedTag\n\n# tcId = 78\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nflags = ModifiedTag\n\n# tcId = 79\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = e250e9e25dacc19420fd8b9e71ed72fc457259488f42c668296ffb1bfcd92a4c\nflags = ModifiedTag\n\n# tcId = 80\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0a5495e14a5ada3c4ce0ef804423d9b1f9ce359aa7895de6fd6346426604636a\nflags = ModifiedTag\n\n# tcId = 81\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 63d16863dc2d4015a17c0a1ff06cf37dc4f3d8c90ec347e9a8ee7a9a7d58abcd\nflags = ModifiedTag\n\n# tcId = 82\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8bd51460cbdb5bbdcd616e01c5a25830784fb41b2608dc677ce2c7c3e785e2eb\nflags = ModifiedTag\n\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 83\n# empty message\nkey = 7bf9e536b66a215c22233fe2daaa743a898b9acb9f7802de70b40e3d6e43ef97\nmsg = \nresult = valid\ntag = c155ff4bc0bf8c1436b23cb9c16591e0\nflags = Pseudorandom\n\n# tcId = 84\n# short message\nkey = e754076ceab3fdaf4f9bcab7d4f0df0cbbafbc87731b8f9b7cd2166472e8eebc\nmsg = 40\nresult = valid\ntag = ecde21a991aa09dd7f42836d97e3e7d2\nflags = Pseudorandom\n\n# tcId = 85\n# short message\nkey = ea3b016bdd387dd64d837c71683808f335dbdc53598a4ea8c5f952473fafaf5f\nmsg = 6601\nresult = valid\ntag = d8890a46022eea99fc958d93b3c7eeb7\nflags = Pseudorandom\n\n# tcId = 86\n# short message\nkey = 73d4709637857dafab6ad8b2b0a51b06524717fedf100296644f7cfdaae1805b\nmsg = f1d300\nresult = valid\ntag = 2ec85a2a3867f613184ce3493c250964\nflags = Pseudorandom\n\n# tcId = 87\n# short message\nkey = d5c81b399d4c0d1583a13da56de6d2dc45a66e7b47c24ab1192e246dc961dd77\nmsg = 2ae63cbf\nresult = valid\ntag = fad84b8631a89b9cafac065d788ffcfe\nflags = Pseudorandom\n\n# tcId = 88\n# short message\nkey = 2521203fa0dddf59d837b2830f87b1aa61f958155df3ca4d1df2457cb4284dc8\nmsg = af3a015ea1\nresult = valid\ntag = 35e5ceaf32b221534ac6d9ab786ac3f1\nflags = Pseudorandom\n\n# tcId = 89\n# short message\nkey = 665a02bc265a66d01775091da56726b6668bfd903cb7af66fb1b78a8a062e43c\nmsg = 3f56935def3f\nresult = valid\ntag = 08151bc441cf73348a79576e79392737\nflags = Pseudorandom\n\n# tcId = 90\n# short message\nkey = facd75b22221380047305bc981f570e2a1af38928ea7e2059e3af5fc6b82b493\nmsg = 57bb86beed156f\nresult = valid\ntag = b905064ddd9b6e626cc9c6342ff2f315\nflags = Pseudorandom\n\n# tcId = 91\n# short message\nkey = 505aa98819809ef63b9a368a1e8bc2e922da45b03ce02d9a7966b15006dba2d5\nmsg = 2e4e7ef728fe11af\nresult = valid\ntag = 8e510fd967f69f9cc49e834ddf624399\nflags = Pseudorandom\n\n# tcId = 92\n# short message\nkey = f942093842808ba47f64e427f7351dde6b9546e66de4e7d60aa6f328182712cf\nmsg = 852a21d92848e627c7\nresult = valid\ntag = 09fe45cf3d0003c306886904474fc698\nflags = Pseudorandom\n\n# tcId = 93\n# short message\nkey = 64be162b39c6e5f1fed9c32d9f674d9a8cde6eaa2443214d86bd4a1fb53b81b4\nmsg = 195a3b292f93baff0a2c\nresult = valid\ntag = 142da85605caa57a667415e62b0e420f\nflags = Pseudorandom\n\n# tcId = 94\n# short message\nkey = b259a555d44b8a20c5489e2f38392ddaa6be9e35b9833b67e1b5fdf6cb3e4c6c\nmsg = afd73117330c6e8528a6e4\nresult = valid\ntag = 9623f00ec64c2d49863972a90ff7c517\nflags = Pseudorandom\n\n# tcId = 95\n# short message\nkey = 2c6fc62daa77ba8c6881b3dd6989898fef646663cc7b0a3db8228a707b85f2dc\nmsg = 0ff54d6b6759120c2e8a51e3\nresult = valid\ntag = b368cf82ae3b0b853a7bc56383030576\nflags = Pseudorandom\n\n# tcId = 96\n# short message\nkey = abab815d51df29f740e4e2079fb798e0152836e6ab57d1536ae8929e52c06eb8\nmsg = f0058d412a104e53d820b95a7f\nresult = valid\ntag = 1ee4ee38698299221682e64fd6d34469\nflags = Pseudorandom\n\n# tcId = 97\n# short message\nkey = 3d5da1af83f7287458bff7a7651ea5d8db72259401333f6b82096996dd7eaf19\nmsg = aacc36972f183057919ff57b49e1\nresult = valid\ntag = a8c810be7051080126f502a98aa32b68\nflags = Pseudorandom\n\n# tcId = 98\n# short message\nkey = c19bdf314c6cf64381425467f42aefa17c1cc9358be16ce31b1d214859ce86aa\nmsg = 5d066a92c300e9b6ddd63a7c13ae33\nresult = valid\ntag = 1a38156d8b622cbf2436c3dffdf279ac\nflags = Pseudorandom\n\n# tcId = 99\nkey = 612e837843ceae7f61d49625faa7e7494f9253e20cb3adcea686512b043936cd\nmsg = cc37fae15f745a2f40e2c8b192f2b38d\nresult = valid\ntag = 705c80da3c3166dbec0a3ae959f598f8\nflags = Pseudorandom\n\n# tcId = 100\nkey = 73216fafd0022d0d6ee27198b2272578fa8f04dd9f44467fbb6437aa45641bf7\nmsg", @@ -7975,9 +8285,9 @@ static const char *kData275[] = { "b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606e00c4a35931\nflags = ModifiedTag\n\n# tcId = 134\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0b1ef06df27c\nflags = ModifiedTag\n\n# tcId = 135\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606f00c5a35931\nflags = ModifiedTag\n\n# tcId = 136\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0b1ef36df27c\nflags = ModifiedTag\n\n# tcId = 137\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606f00c6a35931\nflags = ModifiedTag\n\n# tcId = 138\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0b1e716df27c\nflags = ModifiedTag\n\n# tcId = 139\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606f0044a35931\nflags = ModifiedTag\n\n# tcId = 140\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0b1ef16df27d\nflags = ModifiedTag\n\n# tcId = 141\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606f00c4a35930\nflags = ModifiedTag\n\n# tcId = 142\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0b1ef16df27e\nflags = ModifiedTag\n\n# tcId = 143\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606f00c4a35933\nflags = ModifiedTag\n\n# tcId = 144\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0b1ef16df23c\nflags = ModifiedTag\n\n# tcId = 145\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606f00c4a35971\nflags = ModifiedTag\n\n# tcId = 146\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4114a07d0b1ef16df2fc\nflags = ModifiedTag\n\n# tcId = 147\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5abccc606f00c4a359b1\nflags = ModifiedTag\n\n# tcId = 148\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 63d06962dd2c4114a17d0b1ef16df27c\nflags = ModifiedTag\n\n# tcId = 149\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8bd41561cada5abccd606f00c4a35931\nflags = ModifiedTag\n\n# tcId = 150\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d069e2dd2c4194a07d0b1ef16df27c\nflags = ModifiedTag\n\n# tcId = 151\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad415e1cada5a3ccc606f00c4a35931\nflags = ModifiedTag\n\n# tcId = 152\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 62d06962dd2c4194a07d0b1ef16df2fc\nflags = ModifiedTag\n\n# tcId = 153\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8ad41561cada5a3ccc606f00c4a359b1\nflags = ModifiedTag\n\n# tcId = 154\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 9d2f969d22d3beeb5f82f4e10e920d83\nflags = ModifiedTag\n\n# tcId = 155\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 752bea9e3525a543339f90ff3b5ca6ce\nflags = ModifiedTag\n\n# tcId = 156\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000\nflags = ModifiedTag\n\n# tcId = 157\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000\nflags = ModifiedTag\n\n# tcId = 158\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\nflags = ModifiedTag\n\n# tcId = 159\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\nflags = ModifiedTag\n\n# tcId = 160\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = e250e9e25dacc19420fd8b9e71ed72fc\nflags = ModifiedTag\n\n# tcId = 161\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0a5495e14a5ada3c4ce0ef804423d9b1\nflags = ModifiedTag\n\n# tcId = 162\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 63d16863dc2d4015a17c0a1ff06cf37d\nflags = ModifiedTag\n\n# tcId = 163\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8bd51460cbdb5bbdcd616e01c5a25830\nflags = ModifiedTag\n\n[keySize = 128]\n[tagSize = 256]\n\n# tcId = 164\n# short key\nkey = a349ac0a9f9f74e48e099cc3dbf9a9c9\nmsg = \nresult = valid\ntag = 4a8f573fd11a441f7387bec1c5db992ca8ff0dea08639d25f0479f9d5b73eeee\nflags = Pseudorandom\n\n# tcId = 165\n# short key\nkey = ac686ba0f1a51b4ec4f0b30492b7f556\nmsg = 2fa43a14ae500507deb95ab5bd32b0fe\nresult = valid\ntag = 444ec6f9b3a6afe977a93d080425526cf25367fcea2bc88b534b2e9a0dbe659f\nflags = Pseudorandom\n\n# tcId = 166\n# short key\nkey = 73ef9ef1a4225e51e3c1db3ace1fa24f\nmsg = ffad380d9aabb0acede5c1bf112925cdfc3d379fc2376a4fe2644490d0430ac3\nresult = valid\ntag = 5b79aae2aa78b9aaa6ffbbaebb71fb6e622d49f7e7d6275178c879d9fbc0a7d6\nflags = Pseudorandom\n\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 167\n# short key\nkey = e34f15c7bd819930fe9d66e0c166e61c\nmsg = \nresult = valid\ntag = 2fd8b5b96fe9ca363c7031310f436bc6\nflags = Pseudorandom\n\n# tcId = 168\n# short key\nkey = e09eaa5a3f5e56d279d5e7a03373f6ea\nmsg = ef4eab37181f98423e53e947e7050fd0\nresult = valid\ntag = 9033b0a30e67e22f2a255486dbb87097\nflags = Pseudorandom\n\n# tcId = 169\n# short key\nkey = 9bd3902ed0996c869b572272e76f3889\nmsg = a7ba19d49ee1ea02f098aa8e30c740d893a4456ccc294040484ed8a00a55f93e\nresult = valid\ntag = e4a8eb8bb6fc019258048e069919dd03\nflags = Pseudorandom\n\n[keySize = 520]\n[tagSize = 256]\n\n# tcId = 170\n# long key\nkey = 8a0c46eb8a2959e39865330079763341e7439dab149694ee57e0d61ec73d947e1d5301cd974e18a5e0d1cf0d2c37e8aadd9fd589d57ef32e47024a99bc3f70c077\nmsg = \nresult = valid\ntag = 05a64be452f9c6e190113eea89bd4ca6ecd14e8fe924a3adf41a53a381615f34\nflags = Pseudorandom\n\n# tcId = 171\n# long key\nkey = 2877ebb81f80334fd00516337446c5cf5ad4a3a2e197269e5b0ad1889dfe2b4b0aaa676fac55b36ce3affc7f1092ab89c53273a837bd5bc94d1a9d9e5b02e9856f\nmsg = ba448db88f154f775028fdecf9", "e6752d\nresult = valid\ntag = 786b60be5e986337f1c64a67704a180c65d8b0d6e8befe4abb7979d8a114bd38\nflags = Pseudorandom\n\n# tcId = 172\n# long key\nkey = 21178e26bc28ffc27c06f762ba190a627075856d7ca6feab79ac63149b17126e34fd9e5590e0e90aac801df09505d8af2dd0a2703b352c573ac9d2cb063927f2af\nmsg = 7d5f1d6b993452b1b53a4375760d10a20d46a0ab9ec3943fc4b07a2ce735e731\nresult = valid\ntag = 9bae00d08a9dfc0eb02c225a57e9ffb3ae38a096da54f025dc901cd174a9212f\nflags = Pseudorandom\n\n[keySize = 520]\n[tagSize = 128]\n\n# tcId = 173\n# long key\nkey = 813e0c078c221375e80590ace6774eafd2d2c242350988d02efa550e05aecbe100c1b8bf154c932cf9e57177015c816c42bc7fbc71ceaa5328c7316b7f0f30330f\nmsg = \nresult = valid\ntag = 87ba20fe77815786e5159ab713c1bab5\nflags = Pseudorandom\n\n# tcId = 174\n# long key\nkey = 5713343096b0aaf0562a6b92c1a15535924160475a4e4233589159728c562e3b2ad96f740c6a4da2bc3f768ce98c9bd66bac28d1646ff592028c940d455f35eeb4\nmsg = 71712de2fac1fb855673bff72af64257\nresult = valid\ntag = 2db582e6ceaadb885a36e27a2bf50dea\nflags = Pseudorandom\n\n# tcId = 175\n# long key\nkey = 7208afbecf5f1f34828f98b719414e280716de64f5edd1ae1c774153cd2022337bb20fade1b7856f1dbfd40e2b4307f1293ceff1692ee90d8c90b5fdf953ab01a5\nmsg = 43b53302b604d613e62db002044a4782d572ac8fbd3cd0ece91b43bc52e18e98\nresult = valid\ntag = 75531ead9c8db199ba2b1ec6b7e00d60\nflags = Pseudorandom\n\n", }; -static const size_t kLen276 = 55755; +static const size_t kLen281 = 55755; -static const char *kData276[] = { +static const char *kData281[] = { "# Imported from Wycheproof's kwp_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: KWP\n# Generator version: 0.8r12\n\n[keySize = 128]\n\n# tcId = 1\nct = 8cd63fa6788aa5edfa753fc87d645a672b14107c3b4519e7\nkey = 6f67486d1e914419cb43c28509c7c1ea\nmsg = 8dc0632d92ee0be4f740028410b08270\nresult = valid\n\n# tcId = 2\nct = e8bac475d1429034b32f9bdeec09a37f9b3704028f1e0270\nkey = a0b17172bb296db7f5c869e9a36b5ce3\nmsg = 615dd022d607c910f20178cbdf42060f\nresult = valid\n\n# tcId = 3\nct = 4c8bcd601b508ef399f71b841294497a4493c4a0014c0103\nkey = 0e49d571c19b5250effd41d94bde39d6\nmsg = f25e4de8caca363fd5f29442eb147b55\nresult = valid\n\n# tcId = 4\n# wrapped key is longer than wrapping key\nct = 9e4510cc84c4bd7abab0a8a5d7f1e6ff3e6777ca2dff9be7e223652239fe57d8\nkey = e0e12959109103e30ae8b5684a22e662\nmsg = dbb0f2bb2be912a20430972d9842ce3fd3b928e573e1ac8e\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 5\n# wrapped key is longer than wrapping key\nct = 8fbf39ae583bd4efa7a3e8f7b86870b34766ae7d8923a8e97b0cd289ad98cacb\nkey = dd583d9f1059861430ec8b5d8a180e9b\nmsg = f2e34f356362a31b51d6e02bcd333c9e6170494ca5ff5487\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 6\n# wrapped key is longer than wrapping key\nct = df2fbe5fa86418edc7b5b04a4aea724aca17e88cedc84ca8b0b0f048e64590cb\nkey = faf5ccfae42b43cee2c5f0f3177a7c5d\nmsg = 4e02084833660c463830483b36dab866c64c8cf7429cac3d\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 7\n# wrapped key is longer than wrapping key\nct = 67f8edf57f84ea0a35b35511d67d3f299c9984b2c07d3809c3d7f5f45091f1a8fbb937ed447677f6\nkey = c2b9d23f2831ddcdeb456853d4014db9\nmsg = f4cfea98e58b939cc859554385cf3a6c7f8217f728efb431c964786de8274907\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 8\n# wrapped key is longer than wrapping key\nct = 60d55a22ba7dbd7d8f317388e01e6be561d15d29f85c566f1259aa7e7dc3d5d30e0ef5f4c6267553\nkey = 620a08f320cdedbf7ae551add348d95e\nmsg = cec34eaf8e67e1ce619ddfc309531c42f16033a7e2cbc4f5eb3a548164e9b291\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 9\n# wrapped key is longer than wrapping key\nct = d78a8291108f0f2d8be0ec10ec08240bf4d3021f0a5ed7faba0748db73762f34a0504bd373212df2\nkey = ed089ac274f8c7cea2415671a94b5e53\nmsg = 6065e41df14daeeefacac5daeb7674cdc9c1f686013b797153e80ef215893299\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 10\n# Round counter overflows 256\nct = 9341221aca1c647e2afc2bdd9cf4ed6e60058eb0a84cb3fc2daf3a87d9fad0a1f8268b27aaf7201d705e72f7e2240309ad98742094e3f1c99b7faa9ae181b441f5004b8bc93cdd4160d403d0884749a3c379d47c112a45788c05c2106c98f59758d393e04c880691b0e8683a12df7f876e1e1f68b4acbae9cc8310b34d59ccf4617cee72e845df1e0e32e5b4938f2923d55f1bb5156dd8c787401e6ef241ea4073d0a59ddfcd7a53db5d89b480b030cfb9084ea8479b964f090bb612d5251eee9ef8870a45f1e76fd24abdd9b350fe148b15a4cfeb032d57b5743b3548a7ce9eec8e21a31ce832530edfd1cffd9bb37369e6463c6b373ab60d80b0a2677e92e658f7daf2a5234b7312bf2d967cd0bc809e9be2f706ae63bd632fd611f161e48ee19677f3243aa0e91f6651a1cef62feff7a72eedf830bae1dc6d89e55ccb5e6f97889c6266f7d3f2eb0aea6c8c42200febccc5916825368adc87e04e835de06fd7bc2805c219e7f0b6252563f29969b1f30cfa1a8da4b90ae7534fb849d068a7e77de7360f8af173\nkey = b6121acad51038e11873aaa7e6c7be06\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 11\n# wrapping small key\nct = a65959a600000000\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = \nresult = acceptable\nflags = SmallKey\n\n# tcId = 12\n# wrapping small key\nct = 09bcbab50b8dd45ad83412e2919030d3\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 4c\nresult = acceptable\nflags = SmallKey\n\n# tcId = 13\n# wrapping small key\nct = 0cbe852cdce4f0b5333366f446b2b1c5\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = be52\nresult = acceptable\nflags = SmallKey\n\n# tcId = 14\n# wrapping small key\nct = a9dc66e03435ab3d4f97ff66f2c911a3\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 2d5244\nresult = acceptable\nflags = SmallKey\n\n# tcId = 15\n# wrapping small key\nct = 1b970c8ecb4187447e60e6083da03086\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 6c3d3b4c\nresult = acceptable\nflags = SmallKey\n\n# tcId = 16\n# wrapping small key\nct = 0344f7b34ab8ef28aaa843f276b0b3d5\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 0412ab3ec6\nresult = acceptable\nflags = SmallKey\n\n# tcId = 17\n# wrapping small key\nct = 17356c7148334ca1a24aab7e82a66e18\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 8ae08938929c\nresult = acceptable\nflags = SmallKey\n\n# tcId = 18\n# wrapping small key\nct = 1db7510a55591a455d9f8167e6db3c88\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 7c8dfbb68d72af\nresult = acceptable\nflags = SmallKey\n\n# tcId = 19\n# wrapping small key\nct = 936fe58b629ea6ec158145218f2361c7\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 536f8f83b64771c1\nresult = acceptable\nflags = SmallKey\n\n# tcId = 20\n# wrapping small key\nct = 6787816804b3127d0ca4073f1dba5c4d3db1ec9c227e6556\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 8571f282b18b64ec5e\nresult = acceptable\nflags = SmallKey\n\n# tcId = 21\n# wrapping small key\nct = 34131c3bfcc48af15eea8672e52927b462f81d5ba0e6260f\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 8ada889862813e364c4d\nresult = acceptable\nflags = SmallKey\n\n# tcId = 22\n# wrapping small key\nct = 4d1ec9287cd4dd378b9aefee79d4ed35bcb98ad9fa9fe529\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = f9c56e8058758a5c7c2baa\nresult = acceptable\nflags = SmallKey\n\n# tcId = 23\n# wrapping small key\nct = 7209f5b6bd5d4916f4995d280e9aa89edd5e96e3c9283ad2\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 7c7dbc83fa62206a521ed4ad\nresult = acceptable\nflags = SmallKey\n\n# tcId = 24\n# wrapping small key\nct = d85a1efc6ab3a40948f723d9810a5deb019b3ce0208a0d94\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = a6614daf00df6d14f50388bad5\nresult = acceptable\nflags = SmallKey\n\n# tcId = 25\n# wrapping small key\nct = 43509b5df3688b6e44c1a994592f4c03da34712f886e63d5\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 450580a47d7008321496bfb82f48\nresult = acceptable\nflags = SmallKey\n\n# tcId = 26\n# wrapping small key\nct = 16e369351c40f220d3fb1197f35da652a3a40ca3b1e99bfb\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 9efd21e13855eea8907afdcd8935f4\nresult = acceptable\nflags = SmallKey\n\n# tcId = 27\n# Modified IV\nct = 4cdd2962f23ec897d41d14c3f818516c055799185f459e2d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 28\n# Modified IV\nct = de895192c35ec58ee6e5614fd2b20a85f8e9c8234cdc5319\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 29\n# Modified IV\nct = 4a24069a050af7bbcf6c2160d54525e017e3ac1b3a2e71f0\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 30\n# Modified IV\nct = 6252ab0e688d0638df7d87ec5be3b2f9c0c245c0f0794012\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 31\n# Modified IV\nct = a2ed5982a604512d85d87630cd50705b1a70189b81575e3f\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 32\n# Modified IV\nct = fed7d02db4081728c55cc17f45f267117347e526f4231651\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 33\n# Modified IV\nct = ed37722b94b08b6a6f7663fe90acd81dc25f85abd2f65c06\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 34\n# Modified IV\nct = 0adb0f47b890efed426e7cf5dbd67d5cd3d9d4807c34bc7d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 35\n# Modified IV\nct = a0c51e687c46f342c78e3c59eee076a85312206a37213ac3\nkey ", "= 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 36\n# Modified IV\nct = 8ac142d100eab0808b5f34ed29650163db77ab281e6f1e58\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 37\n# Modified IV\nct = db345851a09bf92c35855c367c8787e5ab3ff16e9d8b0f3b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 38\n# Modified IV\nct = a90cb672f232eb693a290523a10d8f988a18829a11cabd96\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 39\n# Modified IV\nct = c9b3a55603e490c450b49c8b79c9a169030e6985b6e95b54\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 40\n# Modified IV\nct = 1c90d7613c7e81e66d9374d72a8a6a0c40163fc69bccafb1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 41\n# Modified IV\nct = e381bb56d1354e40c01cb414118b9518934c9ad92663f5e8\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 42\n# Modified IV\nct = f2a87686a3baa37810eea23232e9b784f628b1c0b4a557a1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 43\n# Modified IV\nct = 36ef8fc13d0f1f5745e3939877b62b8ecba2f5f0b19f9e90\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 44\n# Modified IV\nct = 7255c4eacb4105a68095e9e5b5a4bd8f9623a0da5c6fc230\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 45\n# Modified IV\nct = ea26eec89a46ff1a628834c7247a8e4e45d8a8d3229e26cc\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 46\n# Modified IV\nct = 508593fa85a8effd27c8a225981978fcec6e992eb488c9c2\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 47\n# Modified IV\nct = b8a4cb22f15529864d4ced8e8abae69752a9045a084dfc3f\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 48\n# Modified IV\nct = a0a6bf5e47e89706932b1057b680c3c81dc4d9d0b4f9153b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 49\n# Modified IV\nct = 11f3af4ed30e77520517c880f1d0c272a89a968dc697cb5a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 50\n# Modified IV\nct = 6fc912a0bda73bacfa93db4002f18f349fa30f22f7a95ab9\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 51\n# Modified Padding\nct = 96518bcf3d24b1c6c3c6ed642a3336531563abaa9bc19873\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 52\n# Modified Padding\nct = eceb8904c71372a974dcf65e2ee2e8eac035953cf41bf31e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 53\n# Modified Padding\nct = e8e1f4d621dc0d10786823eefd73e1d98873900fff79cdcf\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 54\n# Modified Padding\nct = 5aae3ef6d59abbd1acfba77d5e660a176b45683165398912\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 55\n# Modified Padding\nct = fdf11a815beb61c33f293801c33e681e296782967ff6c56b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 56\n# Modified Padding\nct = 62cd9fd59aa08666b6d0e5fb0ed60b3692e87e680ea1d3ea\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 57\n# Modified Padding\nct = 31a9c782cc94c6fcd26e0aa6ee327fd01c5b1997ec70e22c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 58\n# Modified Padding\nct = ab29c3f5a4822bd572e43fdf2c59c2dab20327b9a25dcb87\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 59\n# Modified Padding\nct = 078070742b07caa793dfcab4d1c09f8df6a99f494ed00ea4\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 60\n# RFC 3349 padding\nct = 3731038571c35f7dcc55e48892de353e54c079b89774bbfd\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 61\n# Invalid encryption\nct = d85c6bfd092df1aeae5a548e47aa7681\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 62\n# padding too long\nct = 7a92427387f5587ee825d1ffa011c40286844ecdadce31cd9678338694ea2682\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 63\n# padding too long\nct = a437d354606ae752894feb62c8def7d17046d8e47f9aed755fba48b3a3009e3ff67d34e26a779064\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 64\n# incorrectly encoded length\nct = e8d240d64f16d1522ae2ded42ced257dfec158ff2fe1467d\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 65\n# length = 2**32-1\nct = 6d1bfda356b7b954e7aaccc6df953322f75be95947b02b30\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 66\n# length = 2**32-1\nct = 17dbf878ef4076cfcaba5f81d7b123d7\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 67\n# length = 2**31-1\nct = 75c23e253478037802fae0f86af9c78d4e4d9be0c3bff89f\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 68\n# length = 2**31 + 16\nct = 55717658c6a35e15ee36c66cce91083b63091f51525c0b51\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 69\n# data is incorrectly padded\nct = 8ede88a52ccb8a6d617456955a9f04c94d87696125ded87eebe3e97e185496d9\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = ffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\n\n# tcId = 70\n# data is incorrectly padded\nct = 5b4a8f1abffa51676ac8b5ddf9366c12\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 71\n# length = 0\nct = 205cc6dd9592da0ebff6b4b48a0c450eeaeb11a60d33f387\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 72\n# RFC 3349 padding with incorrect size\nct = 908a68b0d2054e199220d37c34a2e136\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 73\n# length = 9\nct = f84bdb15045cee3a8a0f3ed2f07c1771\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 74\n# length = 16\nct = 7592b1ee6ee92c9467db366adcfa65bb\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 75\n# length = 2**31 + 8\nct = db93a1db3b5babc80a304d527682c1ef\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000\nresult = invalid\n\n[keySize = 192]\n\n# tcId = 76\nct = 5c117a678223cfe5ee691503061e7ab1e5f720e005171b32\nkey = f75a2f49a630c7dc91626b00ce029f0bd2981d7c74a93ebe\nmsg = 9adbc00c710b1101bdf6a4ed65b32d72\nresult = valid\n\n# tcId = 77\nct = 6a7f9e03b6f379c56da3a56d8f32eba515454a91fd417449\nkey = b713f6b7814f98894d7b153974684359f1460213eb74be68\nmsg = 78585f0c49922e82caf17ebc3721b4db\nresult = valid\n\n# tcId = 78\nct = 764097f5ee8236bc0d93bbcea139a652f4b211cc33a61ac9\nkey = 13ecf423211caa334ba6db37259a535c20de8ad10fc8c432\nmsg = 4fc75d0f221e22408a37e11265d49a05\nresult = valid\n\n# tcId = 79\nct = 04b83ec803a75bbcb2f87fc6f488a4ccc1827b412483070eed195b6f0048ccbe\nkey = 4417fbbea51bdd91818d74051957dd70e135c5cf3732bdf1\nmsg = f5357da9f8fd4a1190f36e9fa09a90fcf14d87d62332f1a5\nresult = valid\n\n# tcId = 80\nct = 46ab71f032cb1ccbcc7447a5183574268c0167a26a93fe8422bf284417aa93ea\nkey = b3f26d8a22fdd61f709841231fbde695b3f28dddced6d41e\nmsg = 0d0af955d2e3829cc3d643219b301e64e0510dfbc428119a\nresult = valid\n\n# tcId = 81\nct = 47ca298ee47b1b755a499129347e11e7a25754ccb6c2689e8eff270e98c81d18\nkey = f70cfb262c729a18206c8afd74356ec7e049d10b44a6e000", "\nmsg = 241cedfa64c4e7bec541a2eb4c368269e0f0ddebc58267ea\nresult = valid\n\n# tcId = 82\n# wrapped key is longer than wrapping key\nct = ecac4c91758e1ae7bb010c34f4c5f99a3d728b9fa92cb778d3fe80d777a20d3de85ef46e7a0c6a6a\nkey = 1639f9f81e53e2eeb677a249e5eced3af108971301601a7b\nmsg = ec3c6a1f1a9585327fe658490c74635e5300876da5846a629398984fb551d691\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 83\n# wrapped key is longer than wrapping key\nct = 39b7326a44eaed08bffbd4aeaf3e2c3f899c1fd049384ed7b3eb92b788c6449acd6385f0bb18cf28\nkey = 1f22d5658aa685b8ba8659dc342880d5b2399e6a815005b0\nmsg = 50be4c1b2f29a63f44d7fc63737f600f0194ea3fb36e173d2ddd19f218656380\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 84\n# wrapped key is longer than wrapping key\nct = 3d2e9f39c7b13e9585227c4344fbe596f92b002456616f137deacc6a8c941649ce294bb2695c1807\nkey = 3a2f4aa50441954bba5a1836294ce071f9296b23dbed6771\nmsg = 65da02ff21b483a1e39575490b4319e84ae0299f1f00b3859fbe2e74b3ec2aaf\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 85\n# Round counter overflows 256\nct = d6aacfb52c26baae78c2f54259a4e4168f817064344e2ba8fbfa7fae9f1fd69bd5bc5c1e20a6101b4a7119cbce028e25a9e93d29ee260c4e609baedee788411c2afe60218ce1b0d28b9c29b941251fdcbac3009d59040a0337b8b4a3a020c6d8f310cba63db046d8f36b64c9092e75cee463fc7692ef56bed395c4579da0ecb02129e45ad8a7f116aac6170204888e40693f017a6a0a7dd3962004e60db3a9b6c8b7614a467ccb799bce1ba83f5c0921f1e52bb3909bc0486ec0eaea736498f3ba520a519c3ddf491307958620b737613417b15b438b80b43189baa455031f5771502002ea170c767b33d247feebce62e606f2262537f85f18d1951cc75cedef291c6a501cb1778586249b58156eb8d7283a3f508ee8bcc1206d77bbd6892fe74b865bfc02a8f07223087a6c1e50a41b7cf5f6ee04bd07766b2e5b34c4a7666b0ce06f670e6434a59fb74e0df36c91d94e5e8b721e53e09b6f6504c5d515492a373fcc348a63122cc6e4716e0e1a543d038c6f7731199f691780a8a655cca6718e3dc56e815b3669\nkey = b6121acad51038e11873aaa7e6c7be06f93826b74fec0ea1\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 86\n# wrapping small key\nct = a65959a600000000\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = \nresult = acceptable\nflags = SmallKey\n\n# tcId = 87\n# wrapping small key\nct = 52c7f388d0d4237afaa29f2b94723475\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = a3\nresult = acceptable\nflags = SmallKey\n\n# tcId = 88\n# wrapping small key\nct = 833431ce8799be69b36aafe3f38d9dac\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 594b\nresult = acceptable\nflags = SmallKey\n\n# tcId = 89\n# wrapping small key\nct = 31674f46b989f6ead582c70dedc8c6b9\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 72ab34\nresult = acceptable\nflags = SmallKey\n\n# tcId = 90\n# wrapping small key\nct = 80535172d2a498aa31601d70fdca9dea\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = d4d9460f\nresult = acceptable\nflags = SmallKey\n\n# tcId = 91\n# wrapping small key\nct = 56232300dd7b2a71d2328b6df47af8e3\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 643972e552\nresult = acceptable\nflags = SmallKey\n\n# tcId = 92\n# wrapping small key\nct = e27e08efe39adbbad8d300b87be2c258\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = f3cdb73d2561\nresult = acceptable\nflags = SmallKey\n\n# tcId = 93\n# wrapping small key\nct = 8f90942cdab33e58b24a23ad7efb7538\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 7b0b53b6429e14\nresult = acceptable\nflags = SmallKey\n\n# tcId = 94\n# wrapping small key\nct = 0ebaf23c858015d3bda5b8d908db6049\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 6b2393773e6d1378\nresult = acceptable\nflags = SmallKey\n\n# tcId = 95\n# wrapping small key\nct = d56f89977b8eff511158edad6b993007189e5a4b8c0e2faf\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 2c52d6639e769960e8\nresult = acceptable\nflags = SmallKey\n\n# tcId = 96\n# wrapping small key\nct = dd889475a76733849f59bed49a15d4315bdb5ba00dc63470\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 707c9356216d69c69048\nresult = acceptable\nflags = SmallKey\n\n# tcId = 97\n# wrapping small key\nct = 1a9b3369239b0f40a8dc5bd8d965caf7431445799337b99b\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 615f6fa79e1847e7359a8a\nresult = acceptable\nflags = SmallKey\n\n# tcId = 98\n# wrapping small key\nct = 5232f8f6679a17d3303b0bd72b06b56b5089e80372dc295b\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 7f5e999168ec60624426cbb1\nresult = acceptable\nflags = SmallKey\n\n# tcId = 99\n# wrapping small key\nct = e5544361c60980f3d38f2d8820a150f48f49ef3f9184b29f\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 3f93aaf4463775baf6c0c975ae\nresult = acceptable\nflags = SmallKey\n\n# tcId = 100\n# wrapping small key\nct = 55396065905915ec914b8d1efbf471e37d283fc2c1496b49\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = fefcf10c976309b2beb085771e50\nresult = acceptable\nflags = SmallKey\n\n# tcId = 101\n# wrapping small key\nct = d90376be302a24c541bd6d96094f0025e3d73888391b4306\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 6854354d0099f7eff740b0587140b3\nresult = acceptable\nflags = SmallKey\n\n# tcId = 102\n# Modified IV\nct = 24f5b27f9e4d7b645331719ea8f2b63841b2324e61ce13df\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 103\n# Modified IV\nct = 5b5221464c7e960b31c3d6e5784e66c69fa0fba8ae315d4e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 104\n# Modified IV\nct = d17e8392b0d7e064f22770b7f38ffcdc572cf7694da9648c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 105\n# Modified IV\nct = 2f9ba2d81292a2494845ac8589f1a44affdd3d09044fc81c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 106\n# Modified IV\nct = 9258882e1812b1793c0cc08d6adc9fe9597d9270b1f0c3ef\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 107\n# Modified IV\nct = 8bdfb51ff4664220de3d87e06882c748490af56c0c5ef789\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 108\n# Modified IV\nct = 20a5b0fc789e8422e09a3128a10b6b0bca6aba2bde496aa6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 109\n# Modified IV\nct = fdfde90ee4681372c85fc5875dd482cef85bf69dfe57e71c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 110\n# Modified IV\nct = 5f2ba1d716b8fdee03f3fc5cc4c7ea35836bb3c073f02dc9\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 111\n# Modified IV\nct = f241ce804660d60397789d4c67f4e252b55838144b199355\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 112\n# Modified IV\nct = a4f5b4f3ef5a6939949fe6dfd755f327ffa604dc417ea495\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 113\n# Modified IV\nct = 4e23f48297480d1a4afc85fc97d6d69f861f518bc00fe7c3\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 114\n# Modified IV\nct = d9f0de809d4f6ef5815a3e6bfb09b11f0b51b6180caac98c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 115\n# Modified IV\nct =", @@ -7986,18 +8296,18 @@ static const char *kData276[] = { "\nct = 60107f4c60c04c987c7c5810130303bd83fbc35d924f4482\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 189\n# Modified IV\nct = 38e8d42ffc1a26278c6fad73bd699f207251f6e1b622bf92\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 190\n# Modified IV\nct = c23f1fdbe6c021a04bfc386b55c8fe911481f82edf308d79\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 191\n# Modified IV\nct = 7cc6af073f8d21e26713222ba609c91b69fc5faee9870eb7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 192\n# Modified IV\nct = e7e5d96c0bc89dc23bff610db5ccfb5de8f97b74100b3492\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 193\n# Modified IV\nct = 18e77b855e322457a4942209f97acaed1fe6af0aea80c454\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 194\n# Modified IV\nct = 0fcc89e543fae40b914510c9064307b70ef12de4c8750874\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 195\n# Modified IV\nct = f795cf444efd94bd6a561d8cb0703ee0e979c073aa66fdaa\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 196\n# Modified IV\nct = bb5d2e4082140258d6cb26a74af7c10f985e4a84dcd5d8d6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 197\n# Modified IV\nct = 47819be55567934b165a6e93ca25d3900103bedb86eab148\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 198\n# Modified IV\nct = 41b70a974d3fce94feb94b7b01d959541cd120f879cf60e1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 199\n# Modified IV\nct = 86b9f13e871ecb5aa009c80a31693336e59ae1ed3c8d7aaf\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 200\n# Modified IV\nct = b17c3957d85127aae1ae0a04096b19eb2e0f67583772182b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 201\n# Modified IV\nct = 2ca5c335226e3e171fde0f3401ba6835fa389f30f5288699\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 202\n# Modified IV\nct = 5b8ba944f4a961d6e4c5121279ea4d3fcd555b05e75da4ff\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 203\n# Modified IV\nct = 7fd3ad3aee0545da1ed3a54d5a198a2c76cf8290c011c042\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 204\n# Modified IV\nct = a24e94c12b2e6b776c8febe9179521beae0cfbd507d358b4\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 205\n# Modified IV\nct = 9395b071fa3d9908b2e1b349bf7cd6a1cfc86b979c8c73cd\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 206\n# Modified IV\nct = 1eb452770bc0f26a3576b604bf5ac72f714fc468c357eba7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 207\n# Modified IV\nct = b42bcb4161f40b30f3d2f740f43e441d3c9a39613914f1c6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 208\n# Modified IV\nct = f3d76dd320e5f1b3f85b8f73a9ebcfabfb8346daafaf36e6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 209\n# Modified IV\nct = b8e26164496942f44f16751096fb47952ec478bb288e72a1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 210\n# Modified IV\nct = fa783b3aca0ec1e677378f23ebe937776fa590ecc6b01392\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 211\n# Modified IV\nct = 8b011408049eab81cc185796b9636982c1ad28e940e5c35ab1219434c23e8c59\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 212\n# Modified IV\nct = 08db2f06aa2400d4cc1113b1c9e3ba1b39e3e26a84918f9266796c426c166428\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 213\n# Modified IV\nct = 3114404be000ee167b65dd3cfae3b10c50dffe1df864b5e52a2805f0c80021c0\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 214\n# Modified IV\nct = 405ae5bdeff8b05d28ea55900b8e81dc789d532ec3fc457730819e762172f751\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 215\n# Modified IV\nct = 7c19e66d21c0f1409ee6f03a36ab6ba532349e2567200b95d7f5012b2b7e5d33\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 216\n# Modified IV\nct = 955ac67d6e496b9b93a4dda8f6e65e668f1326b256ee146a7647ba18deee7986\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 217\n# Modified IV\nct = c8600aa18be27279493fd68c84130c8bc328b0f6821e01e892b6c2dc1c005270\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 218\n# Modified IV\nct = 492566e0dc539e234b08b95fb23594a6d14f59fa4367799495c2e7f2993135ec\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 219\n# Modified IV\nct = 0b0aa97121bb8e367b8e80e6518a786ab686f4d6b8a075c3abe534698ec462e09fba981615d43ebd\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 220\n# Modified IV\nct = aa6eaa5b94f39247b9581c4d3120ed71e6a427eb51b2439f245d1762041dcf50741fc53fa7a95579\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 221\n# Modified IV\nct = 5cef33853f321f523951a27e41a68dfca418d5b8560484d3f233c5a45e7b69e7a6e4893e690cde6e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 222\n# Modified IV\nct = 62e120f39799ab7633fde15836b89b28a8ced5ecdc421939d8657e41fa1ea49a54da75b51b8dd3d8\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 223\n# Modified IV\nct = 9dc7bc15dfbc7da1a6f74bc4dfbc70091f2a180dbb76f9a6e9e18bcc3c11d2b56bed36c58c7dbc65\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 224\n# Modified IV\nct = e7ee36c6321ba0a30906b25e087fb0cabd74fbb0905b015ccc246cc90e5684605898a5a77983e897\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce", "3497352690\nresult = invalid\n\n# tcId = 225\n# Modified IV\nct = 75c636384c4210ea46422f31a5622d001e8978c2b0fbbb79ce3d7c4b46bb3c7c2c9d4182571ae515\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 226\n# Modified IV\nct = b0116ad877c745d609f7df14b9225a2d69ab56f2e74077e34607b4e75a2883442864f17ca19af259\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 227\n# Modified Padding\nct = 64956d333265a8f2547756feab37b81f97786a4ebf491f13\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 228\n# Modified Padding\nct = 6ee239e916d27f8a8931740fda92657f98dfc68e5e3984da\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 229\n# Modified Padding\nct = 40c990f89aa7c76400655fd4167b04cbe24145c8c800dc35\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 230\n# Modified Padding\nct = f2a900684f167b9246b1345b8a94e711d9b6ac439f3ef3e8\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 231\n# Modified Padding\nct = cd7053a854fcc2f476c20539360ce47e767563723c11d211\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 232\n# Modified Padding\nct = ffa557ea4960669ccbcf59007a24de06755475c1cfef56da\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 233\n# Modified Padding\nct = 8672fdfb252c0dc9e3bc39b0fe76b9b08cf87b65c0f28ee3\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 234\n# Modified Padding\nct = fcc2c7a6d2944e7d02ca08e49a7ceb77ee3f5966509b528e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 235\n# Modified Padding\nct = 57bc3a4c7544fe76b92740608a1023bb70227856cbdb8ada\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 236\n# Modified Padding\nct = 9220a6eb9c77a3d6374647afa7a3effb99be7e1f7bafeca8a1bbd93e8adcca6e570484008ee674ca\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 237\n# Modified Padding\nct = 94654a58be6bb6b946ef40ac7b8f1d19e2edff7c2c8c54eb7b2cbb3227c4f9df2cb317795beea413\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 238\n# Modified Padding\nct = 1ae49d65e69886f0f47cbbeb50f07ab5163983916a738a0d8f538c59c8a6e1e9ad229b27418259a7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 239\n# RFC 3349 padding\nct = ac1a774a5de27e4f9c356e4f62deaf8b7eeee6bcafafd895\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 240\n# Invalid encryption\nct = b3941437f55e7cbc3f88050aff703967\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 241\n# padding too long\nct = 86175acf19ad0b7ac60d1fe4bb7850635e7ec6f8a314f85b6dd3d8f9349ea38d\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 242\n# padding too long\nct = 791f088847a76731e0d56b9b2dcb28bf9f091a9725790e0a64fc8e7cb3ad50f380297a98e3b1c33e\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 243\n# incorrectly encoded length\nct = 868c34495bd3d7b4e2c1861e7fcbbdb372099488dd96c9ea\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 244\n# length = 2**32-1\nct = 4a8b4aeaa713469bfd9bf88d4072379fc858e40b24b0bebe\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 245\n# length = 2**32-1\nct = c210aa3b5fbf5eac97e68d98d7727f38\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 246\n# length = 2**31-1\nct = e0ebd376e050cc9027b76dfc38ee2c6ae2808cecf480a560\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 247\n# length = 2**31 + 16\nct = 23a693e211c08ab9b222c2ede2db18f437e22917fdff8032\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 248\n# data is incorrectly padded\nct = 003f2916fea6827e01199028d3dc4e03889113f97b1860cc242e5a0f28a0f159\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = ffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\n\n# tcId = 249\n# data is incorrectly padded\nct = 5c25a170d5225a6d66e117c691b37383\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 250\n# length = 0\nct = df9ef924eb59634be5b27cabd33d72bd6be6e01e4672ab05\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 251\n# RFC 3349 padding with incorrect size\nct = e6e66fad359a7b63a977788acd297121\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 252\n# length = 9\nct = 76b88ecda760b1af80703036185fc476\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 253\n# length = 16\nct = fd101943f4ab7c38ec68c75d4b3193dc\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 254\n# length = 2**31 + 8\nct = 1793a3a9bd146726edbcb9589f20e849\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000\nresult = invalid\n\n", }; -static const size_t kLen277 = 36748; +static const size_t kLen282 = 36748; -static const char *kData277[] = { +static const char *kData282[] = { "# Imported from Wycheproof's kw_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: KW\n# Generator version: 0.8r12\n\n[keySize = 128]\n\n# tcId = 1\nct = 9de453ced5d4ab46a5601708eeefefb5e593e6ae8e86b26b\nkey = 6f67486d1e914419cb43c28509c7c1ea\nmsg = 8dc0632d92ee0be4f740028410b08270\nresult = valid\n\n# tcId = 2\nct = 8c3aba85cc0ae1ae10b36658b068f595baf8caafb745ef3c\nkey = a0b17172bb296db7f5c869e9a36b5ce3\nmsg = 615dd022d607c910f20178cbdf42060f\nresult = valid\n\n# tcId = 3\nct = 1de093654826f18fcd0f3fd499416ff22ed75ee12fe0b624\nkey = 0e49d571c19b5250effd41d94bde39d6\nmsg = f25e4de8caca363fd5f29442eb147b55\nresult = valid\n\n# tcId = 4\n# wrapped key is longer than wrapping key\nct = 9c3ddc23827b7b3c13105f9e8b11523baccdfb6c8b7e7825496e7a840bd32aec\nkey = e0e12959109103e30ae8b5684a22e662\nmsg = dbb0f2bb2be912a20430972d9842ce3fd3b928e573e1ac8e\nresult = valid\n\n# tcId = 5\n# wrapped key is longer than wrapping key\nct = afb744aaf746dcc0b57f8b378c404cbe877f44cf3d45140d60814eda3f541f01\nkey = dd583d9f1059861430ec8b5d8a180e9b\nmsg = f2e34f356362a31b51d6e02bcd333c9e6170494ca5ff5487\nresult = valid\n\n# tcId = 6\n# wrapped key is longer than wrapping key\nct = cff98cd64cb51ab99b81aee82cee4274d0df3e1b6a4943d39236ea989846d0cc\nkey = faf5ccfae42b43cee2c5f0f3177a7c5d\nmsg = 4e02084833660c463830483b36dab866c64c8cf7429cac3d\nresult = valid\n\n# tcId = 7\n# wrapped key is longer than wrapping key\nct = 58dcfb0e7ec4d3bc8003418d865fbd520c6b24b2bde35b1be5b1c5ff32a130f33d035e5932616083\nkey = c2b9d23f2831ddcdeb456853d4014db9\nmsg = f4cfea98e58b939cc859554385cf3a6c7f8217f728efb431c964786de8274907\nresult = valid\n\n# tcId = 8\n# wrapped key is longer than wrapping key\nct = 4ee47bd68d418586c447a39111e2ec1502ff0f1726ea91c5d97370409d89b8e66e889b638ac40ced\nkey = 620a08f320cdedbf7ae551add348d95e\nmsg = cec34eaf8e67e1ce619ddfc309531c42f16033a7e2cbc4f5eb3a548164e9b291\nresult = valid\n\n# tcId = 9\n# wrapped key is longer than wrapping key\nct = d3b093fd822ce454ebc251c6f21fa71c3858ee7e623ecbfbbf887398a30b40c55d0565c7a15e4015\nkey = ed089ac274f8c7cea2415671a94b5e53\nmsg = 6065e41df14daeeefacac5daeb7674cdc9c1f686013b797153e80ef215893299\nresult = valid\n\n# tcId = 10\n# Round counter overflows 256\nct = 222deadde6efb760cae42fa188310e0c07e7d557529766444a9efb330907d42f0dd8f3d17b3a38bf40d68c095a9cce19daf907bf2c92f1e59b18b277ff0397fc50f45f582db936aa8afb943de01b58abfdc81daef4e038c99e4c1eb3ee447464bb8f89a4ea81e56556cc26c72883c06a7fe850d04347d68bbadc4a06775030676db8cc34aeb07e39c7f059c2bff76a7f2baf076749004ef7189f887f89029f88c5c1d0f5ee62320b423048e2ad8186e63be23c553f5576a40d967e8b527ccd783c41abc64bea1aec8a76deb3e9c9a6656756e1dac38bd25ff008888a5591af763fd73f5addd749794817070990484654a46ef442adaeacab14d12daaf87bcb91661a21593717d9b93529d813ea5fc812d708c0d8e9b68122d9f5e6267cde363780a45d07e4caa5bf14f2334f25b9d177632bb80a82894aa47b6f360b2da1138dedd4331f077c900554c7a68b5d154980bb3517ac20a78a51f6f21e42b2c4c960d31cbd22bd610819182c5e456ba7d7e903f5e60f6e0c4cc014feb4f81973ce48ad6f4dab8da51eb7\nkey = 31cacbb17d6dbbecae40727c5048fe0c\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 11\n# empty keys cannot be wrapped\nct = a6a6a6a6a6a6a6a6\nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = \nresult = invalid\n\n# tcId = 12\n# keys of size 8 byte cannot be wrapped\nct = dc26fb6911d71971df0356d6bb9ed6e6\nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 13\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 00\nresult = invalid\n\n# tcId = 14\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 0001\nresult = invalid\n\n# tcId = 15\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 000102\nresult = invalid\n\n# tcId = 16\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 00010203\nresult = invalid\n\n# tcId = 17\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 0001020304\nresult = invalid\n\n# tcId = 18\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 000102030405\nresult = invalid\n\n# tcId = 19\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 00010203040506\nresult = invalid\n\n# tcId = 20\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 000102030405060708090a0b0c0d0e0f10111213\nresult = invalid\n\n# tcId = 21\n# invalid size of wrapped key\nct = \nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 22\n# invalid size of wrapped key\nct = 9f\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 23\n# invalid size of wrapped key\nct = dc9e9580\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 24\n# invalid size of wrapped key\nct = b9b282d138693000\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 25\n# invalid size of wrapped key\nct = 0efc635b2d61e244056b9d4591ca6b\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 26\n# invalid size of wrapped key\nct = 4a305dae087b0d24d62af41831338f33ae\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 27\n# invalid size of wrapped key\nct = 82cb927097cf31ea4affea440b0d8ca6a240b900\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 28\n# bytes appended to wrapped key\nct = 9790ab51fbcb850df6764e011ae97c85785bed2633aea66500\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 29\n# Incorrect IV\nct = 0aac329ccd513edbdd6367df67999eaac9e7b51984c4d38d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 30\n# Incorrect IV\nct = 5a55dc429749ca49bb4ab01d966b19ea9a9e1402e6ab2962\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 31\n# Incorrect IV\nct = 45f533f6072f640eb7e1e512d56072085567f4ad6012a97a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 32\n# Incorrect IV\nct = 84f284565df47c409107f7a0a71bc370a8ed4489d414b9e9\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 33\n# Incorrect IV\nct = 3941c366554fc896e9fe52f02493ca03d439eb17c236146d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 34\n# Incorrect IV\nct = 45c9d42363d981d086a972728e130a42f5dd90bda562a85a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 35\n# Incorrect IV\nct = 037d17859519d6c0728a9eb6e64113e86919decabd3bbb88\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 36\n# Incorrect IV\nct = 1ad10af7f6c042b267a0c7bc4d25d27c003deb50e2cc566a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 37\n# Incorrect IV\nct = 630c571b7fb8647ac5360a255f9f5d3645795ac45285cbaa\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 38\n# Incorrect IV\nct = 16db553e467d4029d0fea62b2c440e5df6c6591f0497a99d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 39\n# Incorrect IV\nct = 097991090a156047d4784b757f262e12ce57e13a3d5d286c\nkey = 4f710eb6b5e28703becfc3dc52", "fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 40\n# Incorrect IV\nct = 3957c338b750a3285eb7b65c9cfe77053dd7d8149f42caa1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 41\n# RFC 3394\nct = 1fa68b0a8112b447aef34bd8fb5a7b829d3e862371d2cfe5\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 00112233445566778899aabbccddeeff\nresult = valid\n\n[keySize = 192]\n\n# tcId = 42\nct = 00be1caddfd5ad7697877017795f9cee4bce5a61687a6126\nkey = f75a2f49a630c7dc91626b00ce029f0bd2981d7c74a93ebe\nmsg = 9adbc00c710b1101bdf6a4ed65b32d72\nresult = valid\n\n# tcId = 43\nct = 54e7f278b5a1fb4c31a0d79ac1f615edd910bf22015a0668\nkey = b713f6b7814f98894d7b153974684359f1460213eb74be68\nmsg = 78585f0c49922e82caf17ebc3721b4db\nresult = valid\n\n# tcId = 44\nct = 510455bd9c078ac1f07bb3752cbd04e421b0dd635190fa62\nkey = 13ecf423211caa334ba6db37259a535c20de8ad10fc8c432\nmsg = 4fc75d0f221e22408a37e11265d49a05\nresult = valid\n\n# tcId = 45\nct = 880da5b410f913ad72cc93f46344f1152165bdea14664fd2d3afbd87b8cc5cfd\nkey = 4417fbbea51bdd91818d74051957dd70e135c5cf3732bdf1\nmsg = f5357da9f8fd4a1190f36e9fa09a90fcf14d87d62332f1a5\nresult = valid\n\n# tcId = 46\nct = 27654cf6a63d6004ae83da54c2e5d7b5fad20878f350087ddd17ac44a2be868f\nkey = b3f26d8a22fdd61f709841231fbde695b3f28dddced6d41e\nmsg = 0d0af955d2e3829cc3d643219b301e64e0510dfbc428119a\nresult = valid\n\n# tcId = 47\nct = ad7ca66ad4664f43e4dd09296a6e6f02d5af4408f225c0abeb0d9b76c8d1e982\nkey = f70cfb262c729a18206c8afd74356ec7e049d10b44a6e000\nmsg = 241cedfa64c4e7bec541a2eb4c368269e0f0ddebc58267ea\nresult = valid\n\n# tcId = 48\n# wrapped key is longer than wrapping key\nct = e245c90a6b46caece94f47117d608331958c8f75f531ebcdc902c0213d9105f2155af07daa62d132\nkey = 1639f9f81e53e2eeb677a249e5eced3af108971301601a7b\nmsg = ec3c6a1f1a9585327fe658490c74635e5300876da5846a629398984fb551d691\nresult = valid\n\n# tcId = 49\n# wrapped key is longer than wrapping key\nct = 8a32b9f207ae5aaedb7e8a0d945107412c1bd06999bc5ac83c1f958dfb77ebdcf9d98c60dbd4650a\nkey = 1f22d5658aa685b8ba8659dc342880d5b2399e6a815005b0\nmsg = 50be4c1b2f29a63f44d7fc63737f600f0194ea3fb36e173d2ddd19f218656380\nresult = valid\n\n# tcId = 50\n# wrapped key is longer than wrapping key\nct = 4a5842b10d2db96ea1039ef4785ce722555b3751a9b6dd39126ad363378c72320d83ea7adb81615a\nkey = 3a2f4aa50441954bba5a1836294ce071f9296b23dbed6771\nmsg = 65da02ff21b483a1e39575490b4319e84ae0299f1f00b3859fbe2e74b3ec2aaf\nresult = valid\n\n# tcId = 51\n# Round counter overflows 256\nct = e2192598e6124f2791b2751f930958435bb1d02e98aa1e09781bba0b159435db659fa73fa310111704692c68e16ddf4be06022c52fe9dba6279aad1aeb814125d0ddf33f31e58e625af32305050cfea390d8782d32caac558889ca8e641908208da6976542b40dbd090178e2a6812a436c18a5e891ac8083176ace1ddfee4d382856a59c80c643ecd5c1ab68c66b2b8984ce6e0e386f6554a9cb91d363bb4accf028878ec20b8b2e37214f7b12dbcd78fb38f711a90fe262c78491b9058354e27b34fc92ef0d7028594cb08259f86b54cb1d317ec55f2ef2ab7e8b141671f8bcb1a90bb7d82bc8cb4fb02c9ce430ef4ae0dc847e91e7d4fb463eb9dd87fc9dc9568f3a4ef504d74c134dcb60ca01b36ce10cb467268ea297c0518a50d12cc025cfeea1381ddd7dd63e4ac94890a0eae9dbd8db244625a3c8af2e1aff6a8112c4d3d98e8263588ee1dd9063b709b8ec00474c4ea413a802b8cde814e7b3731410809ed000060fb7b9b0bf8509ef17515f333e868b188ea16445f380b3a7d42774f6456cdf724246fa\nkey = 31cacbb17d6dbbecae40727c5048fe0c01bc53b23ab63502\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 52\n# empty keys cannot be wrapped\nct = a6a6a6a6a6a6a6a6\nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = \nresult = invalid\n\n# tcId = 53\n# keys of size 8 byte cannot be wrapped\nct = 38d8238cdb0d9a2da28d6d56194f2e78\nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 54\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 00\nresult = invalid\n\n# tcId = 55\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 0001\nresult = invalid\n\n# tcId = 56\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 000102\nresult = invalid\n\n# tcId = 57\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 00010203\nresult = invalid\n\n# tcId = 58\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 0001020304\nresult = invalid\n\n# tcId = 59\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 000102030405\nresult = invalid\n\n# tcId = 60\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 00010203040506\nresult = invalid\n\n# tcId = 61\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 000102030405060708090a0b0c0d0e0f10111213\nresult = invalid\n\n# tcId = 62\n# invalid size of wrapped key\nct = \nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 63\n# invalid size of wrapped key\nct = 9f\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 64\n# invalid size of wrapped key\nct = dc9e9580\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 65\n# invalid size of wrapped key\nct = b9b282d138693000\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 66\n# invalid size of wrapped key\nct = 0efc635b2d61e244056b9d4591ca6b\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 67\n# invalid size of wrapped key\nct = 4a305dae087b0d24d62af41831338f33ae\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 68\n# invalid size of wrapped key\nct = 82cb927097cf31ea4affea440b0d8ca6a240b900\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 69\n# bytes appended to wrapped key\nct = 55dfb2f7e0c1ea04fead897c451c0505921dc47f308c491700\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 70\n# Incorrect IV\nct = 9b1593fd7d4fe25a660bbc1976ea4ab68bcc53f848a8eb9d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 71\n# Incorrect IV\nct = e7edb847fa91e2deded726edf3ab93da91151697425fee28\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 72\n# Incorrect IV\nct = 1b51a7c033c1efb5ee2994259c40f03bb57d8cc09e507e6e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 73\n# Incorrect IV\nct = c40b614a5062f5fd049c5379b3e8141614c2da97893589fb\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 74\n# Incorrect IV\nct = d7575ef02df54b3086eb49035eeafbce0e08336e89b35ab0\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 75\n# Incorrect IV\nct = 0d617f1c12485a35917d2a941e949d2fdbf03a346889b850\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 76\n# Incorrect IV\nct = c7df34729174db2e83ee16c6de74d5eb9766715fad049b40\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a8", "28cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 77\n# Incorrect IV\nct = c3ed38d6f9ccb9bf3c56bb3176f00d3ce9887521f8d4c70b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 78\n# Incorrect IV\nct = 6582b5f4652744b0537e97e7cdae0f443130140dbaea604c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 79\n# Incorrect IV\nct = fc9b9bdf25f2b48ad79934c8d34897cdbf4c846f8cb4b11d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 80\n# Incorrect IV\nct = fc23c7f4fe20aa81105efc1a7105a5316b23399ac792c824\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 81\n# Incorrect IV\nct = 37b4a261b96bcec9cc93eef5b2fbbbe84634f978c5893dda\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 82\n# Incorrect IV\nct = 1831109847d17d010bfcd93fb46f3150cdafd52733db74c221b034fe8e1552c0\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 83\n# Incorrect IV\nct = 2b2b89c3c6b2db4903877ad4622ca33f3a3cb7e6701d1340e6afc0fdab7dbd72\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 84\n# Incorrect IV\nct = 3c6903f37da57161af6706050a2ed747cd55344d869189fd49d2536ff948129d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 85\n# Incorrect IV\nct = 8a8dc8b131c6b968b60c1dd819a655392d1a96d6cafa48e30fb1146f096229c6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 86\n# Incorrect IV\nct = 303e0b3602d514a7d52edba3306d7383e8999e7c652a510335a8949efb42eb66\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 87\n# Incorrect IV\nct = 319befbf2ddbb475723fb2fa30f2ae7fc1ceb1e6f361715eca7209608873c7fc\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 88\n# Incorrect IV\nct = 9b3e440341c5da131559959db6b3553a534691162f4f009327bf2c21d6fe5ada\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 89\n# Incorrect IV\nct = eba6cc0959e6a56339b141629840add80f4565656dc687a3b996960c994dfd26\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 90\n# Incorrect IV\nct = b703b6cf4587709353c7e4004d3da61ce5f5deaf7163ca9d6158dde919e0ac34\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 91\n# Incorrect IV\nct = 72549d52d6f4ff912d833c74136d90634ce8afa4f84412bbee8074084d4cecff\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 92\n# Incorrect IV\nct = 1337c8bd6c8a5dd43aba8d298864ffe76ad6ea909f3488157a15e6c46acf2214\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 93\n# Incorrect IV\nct = 4aaffaca5fe85814d040aa2a306ba4d1d44746cfe46c978aa057b53fd25316c1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 94\n# RFC 3394\nct = 96778b25ae6ca435f92b5b97c050aed2468ab8a17ad84e5d\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 00112233445566778899aabbccddeeff\nresult = valid\n\n# tcId = 95\n# RFC 3394\nct = 031d33264e15d33268f24ec260743edce1c6c7ddee725a936ba814915c6762d2\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 00112233445566778899aabbccddeeff0001020304050607\nresult = valid\n\n[keySize = 256]\n\n# tcId = 96\nct = 940b1c580e0c7233a791b0f192438d2eace14214cee455b7\nkey = fce0429c610658ef8e7cfb0154c51de2239a8a317f5af5b6714f985fb5c4d75c\nmsg = 287326b5ed0078e7ca0164d748f667e7\nresult = valid\n\n# tcId = 97\nct = 939b3389336fea4a9751bf014ef18011323090e8a0500bc4\nkey = 0dda6da5123e2c37c6fa16ba0d334cd01acd652f8994211751dfab4faac2fc22\nmsg = b40b6828729b456322a8d065abc0d081\nresult = valid\n\n# tcId = 98\nct = 59ee8e5198861237f682edec6ba906526c016d4d935942bd\nkey = d6925914cd06308f81ad91e23073593d99d4e50351b20eb2a8d1a1ac4ced6588\nmsg = 037b27b3dc95b19d15bd4091e320bfe1\nresult = valid\n\n# tcId = 99\nct = 1ab53a065d8f776a08b33e51383071b6f154612116655137bd3b7ec29b70fd56\nkey = 07518a82cbc8da1dcec55f3763a206d277487abd03cedd0b8bef9ee2fb157121\nmsg = faa4664d79fce3c7d2fdd462f6c1c423c2f8e6b69be2e071\nresult = valid\n\n# tcId = 100\nct = a1bf8e73e3fa1db759f0ab2ab0b1ca6f2c85b63d83e25f7a0b5293d0a216a2b7\nkey = ea46991d4e71f53dd624e7fe7fde11944a7c5942d232369b8065d42b8cd2dde1\nmsg = dffc5cf1dd5411d015d84601fa38df5effe885c7f26a4825\nresult = valid\n\n# tcId = 101\nct = 27308a0e1a6c0a1d15d6174ab7d68675207b615df16fcf7a3c69b25f551cca9f\nkey = fdcfa902c6f222f527af84da533b14b52e2615da3a89d1d35708b0cd49f60d87\nmsg = 966b07047354966a703e79607b556032f4f596b7f9206f05\nresult = valid\n\n# tcId = 102\nct = 7155ee932b0358d98182a23f7f427c774ab340a4757d0b6a63facd3de90578438cf03201c3f88057\nkey = 38e1b1d075d9d852b9a6c01c8ff6965af01bac457a4e339ae3e1d7b2ffacc0cd\nmsg = 80ad6820f1c90981e2ca42b817a345c1179d0a11d8e23a8adc0505e13d87295a\nresult = valid\n\n# tcId = 103\nct = f20b9b553bc0847529f8d4379fa909211e68249bd429f436c615c4c4a5d9f1a1968f0b89c5237b30\nkey = c641f1689d81caa8ba37d895272240664054ed974cfffc40e6c5c0cad1b916c7\nmsg = 3fd0ba19955e46749f54d88e99d080b7339d588fe612ec0f4021ca3ca2104270\nresult = valid\n\n# tcId = 104\nct = 2811716854a214aecdd318c6670b9b2a7511713c9a0c0fa805230ff05cf84af795dd72f6c1a44512\nkey = aa0ab9d68ed4a04e723f81b44c0c88d0bcde7a80cfd476eb4b8836d9aa01ec4c\nmsg = 57faa8766f6d6a0aa1cf643f857c150df5b31303b50af480e21c4b5e8c8a15d5\nresult = valid\n\n# tcId = 105\n# Round counter overflows 256\nct = 5322bc62bd8379abbb75f69688b8f00e31962b8f9ae1e89771952d8a2a749e1352ec33b5435a674271b314760ab9f753b16726185ec7d319ac60531355344c1d53c7903000a8039eb40f70564a0ad3f41b2355ea5dfa6a1d46392f1d106a5da569bfb0493bf7c12dff04bafeae377df4bb47cd440b6f60fbab2a54a98551b76273e02cac8d7be9f2343d3abb2a23af1c91a7011c67a7907260116b67d510aabe5c7ca46c1c20f77106c45966583b3e4ed799a47ee19bb4223209265c2b1ac8183a678ff43bc9a3470a50b9ee4d10f60674268d72c68be003a0d9dd6849aba836fe8a1792b81c90e12945bfe1f27a9c6b2af66a063cdb7721a7f23fb30afdbd8b18db377dd1697f157be81c1578d08b066c71b0c5ca7feecac1cdd938cf9ad525f74844660908194b28e54eddb158f6e4c921b811d90db71a92ff872db2250dcc3f847fc752b66d77e33c85084d3fa53b4f30503d2a06e6cabb9033d59fc1dc15e32f19846a039b91597b0ba3141a7d9717630062170117b2131dab77406e9ed7d66b2c754d849c60\nkey = 31cacbb17d6dbbecae40727c5048fe0c01bc53b23ab635025cbac1ecf52ca495\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 106\n# empty keys cannot be wrapped\nct = a6a6a6a6a6a6a6a6\nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = \nresult = invalid\n\n# tcId = 107\n# keys of size 8 byte cannot be wrapped\nct = 181ba6a3a4392469e3de98ddbbdd2432\nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 000102030", "4050607\nresult = invalid\n\n# tcId = 108\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 00\nresult = invalid\n\n# tcId = 109\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 0001\nresult = invalid\n\n# tcId = 110\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 000102\nresult = invalid\n\n# tcId = 111\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 00010203\nresult = invalid\n\n# tcId = 112\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 0001020304\nresult = invalid\n\n# tcId = 113\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 000102030405\nresult = invalid\n\n# tcId = 114\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 00010203040506\nresult = invalid\n\n# tcId = 115\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 000102030405060708090a0b0c0d0e0f10111213\nresult = invalid\n\n# tcId = 116\n# invalid size of wrapped key\nct = \nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 117\n# invalid size of wrapped key\nct = 9f\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 118\n# invalid size of wrapped key\nct = dc9e9580\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 119\n# invalid size of wrapped key\nct = b9b282d138693000\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 120\n# invalid size of wrapped key\nct = 0efc635b2d61e244056b9d4591ca6b\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 121\n# invalid size of wrapped key\nct = 4a305dae087b0d24d62af41831338f33ae\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 122\n# invalid size of wrapped key\nct = 82cb927097cf31ea4affea440b0d8ca6a240b900\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 123\n# bytes appended to wrapped key\nct = 7dfbd7cf6158d75bb5900b3bf1e3871003402a6508b1912800\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 124\n# Incorrect IV\nct = a417671bc62a23c7a65543092124024df72c048d8db330c7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 125\n# Incorrect IV\nct = 9518d0f99d7a73ed4a502b449c14c285971b0e6177ce0eca\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 126\n# Incorrect IV\nct = f3511f0491bd74ae1defb5307f0e18db864b57b5c404d428\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 127\n# Incorrect IV\nct = 6c03ce779259661c43d41d5d0e45687f874353bba516c73e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 128\n# Incorrect IV\nct = 8df01969a11c87026535bfccf72b1d064c86ecc7e5227157\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 129\n# Incorrect IV\nct = 8ed1cde228d9c8d046dca65c7a27aef2edf8ae90c705d1e9\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 130\n# Incorrect IV\nct = d69b3e34e9de38d44de1998992362a6fa1f696b5acab3f10\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 131\n# Incorrect IV\nct = 67865122af3294b8da0588775125cbd6dc19d5e5cab97b6d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 132\n# Incorrect IV\nct = 9f0fa52363dd55df472d867e6faf5da8eb204a1d6d497030\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 133\n# Incorrect IV\nct = c399f999c96a4204325e7f08d6a4de256faf21ec2c007ddf\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 134\n# Incorrect IV\nct = 282082264a87dc35ce1cc5b9931b77d80d82fcacc0927f85\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 135\n# Incorrect IV\nct = c192c90b83003ca96744498014b6ad6bedda837955269819\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 136\n# Incorrect IV\nct = 30a983cd9e69d561acc95c42b252aba4185f8392f2e6c935c8eb105af8082e34\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 137\n# Incorrect IV\nct = 4de9a639b799630b45b49e28dbfc44dabb9843ee588a8cff286b8d5fbd7b32ee\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 138\n# Incorrect IV\nct = d915b2cdfb769d9d82259dc3d124646bbf972b83efd4c2eae9b9f751073f78d6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 139\n# Incorrect IV\nct = 117d653f480b69fce564f1fe99572492945189ed5af789ce05a2651baf90bb5e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 140\n# Incorrect IV\nct = 8226d07a2f919e24ada1081c69a75520be895e3a2bda9b805d9747773ddeaa38\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 141\n# Incorrect IV\nct = b0a74345bedf8865348daf45d054b99ce515ea8be136270d1cf71e1cfa7aa4a2\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 142\n# Incorrect IV\nct = a261db77f17f7ec736d1a8be16e5f9ae432fe2a17012e5a6f07c5426a9f0ca59\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 143\n# Incorrect IV\nct = c53acb5e096b54548e1385b2ff18eaef68d235c95b0194e74a2383d3a7a530dc\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 144\n# Incorrect IV\nct = faef482d99ebb180e5bc5e3cf775ba292c2a3b6c44aa4a21ad400906f11af392\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 145\n# Incorrect IV\nct = 73a450b63b07b3aece9d1ae5bf097a3dd3fcf73e3ec2f1bd8fc3b5586cb9bd73\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 146\n# Incorrect IV\nct = d34b6ee184d387c9aa4b2d180ae0a89498014e55fe8e416be4f826fcf7d56522\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 147\n# Incorrect IV\nct = 2af823d1602803740bfa9040c2c4e769a5b6de919d403cfba9ad360f63af1113\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 148\n# I", "ncorrect IV\nct = dd78ebd3091c55a5da5b24504200f7fadd1b3ac6ad35f814f733e603c13936245d69d83f262f6b1e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 149\n# Incorrect IV\nct = 3d8338eae7de322399e1d1b4a3df54326b242b563612ea4b27da22a041d3c80966911bc009911761\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 150\n# Incorrect IV\nct = d04bf75cadd3b5f099c34b27a91e64a8f2dbcf08e8c5c1c9f07a777eeb805d5d0e8c5c01afc43944\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 151\n# Incorrect IV\nct = be0c5d193b61c5137a8fd8a6d7d1ed8f0fa28cec516f544697c12add4f8f4d5cfca65edeb1019974\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 152\n# Incorrect IV\nct = a83ebcbeb2be9d6807b5cfc31c89849d1343dd4eb22e5bfe9e2b2b3790ad8900601f1f5d54fd472f\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 153\n# Incorrect IV\nct = 416221485a6cb98ad1342ea9a12926a9a133ead8bd919323fe789bb8f89a4fcaf81e1be54f9d358e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 154\n# Incorrect IV\nct = bf6a53286fac48e7f25d89b7056b27aa917d5b54c0d3171dff369f7249153bf09da5891eb4dc2d88\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 155\n# Incorrect IV\nct = 99d517a1321bb633b0d5f3afda2372d3abf68b41d13cbfdffc78f173b88bc4b97efcab2b2904788d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 156\n# Incorrect IV\nct = d92456bc77a268ef71cba76064a1b772d1fee2ae4f0ee3bb932a2adb2b031796b9eadb51753f2868\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 157\n# Incorrect IV\nct = 5bb54630ab8d73a040f0f87e70e263d1aeb2358bcdc0dce6994d0d874452bbd8741b7ec1d59d8298\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 158\n# Incorrect IV\nct = 4581d6536039db1b23da50c648777e90c82d6128bb92e28b2974bae1141543a19a1592fda1fbd61f\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 159\n# Incorrect IV\nct = d35bc67e62064c34f48150999ba30ded475d8c75978f45737320f23edaaa7a40d7803fc61add34a4\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 160\n# RFC 3394\nct = 64e8c3f9ce0f5ba263e9777905818a2a93c8191e7d6e8ae7\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 00112233445566778899aabbccddeeff\nresult = valid\n\n# tcId = 161\n# RFC 3394\nct = a8f9bc1612c68b3ff6e6f4fbe30e71e4769c8b80a32cb8958cd5d17d6b254da1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 00112233445566778899aabbccddeeff0001020304050607\nresult = valid\n\n# tcId = 162\n# RFC 3394\nct = 28c9f404c4b810f4cbccb35cfb87f8263f5786e2d80ed326cbc7f0e71a99f43bfb988b9b7a02dd21\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 00112233445566778899aabbccddeeff000102030405060708090a0b0c0d0e0f\nresult = valid\n\n", }; -static const size_t kLen278 = 94020; +static const size_t kLen283 = 94020; -static const char *kData278[] = { +static const char *kData283[] = { "# Imported from Wycheproof's primality_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: PrimalityTest\n# Generator version: 0.8rc17\n\n\n# tcId = 1\n# small non prime integer\nresult = invalid\nvalue = ff\n\n# tcId = 2\n# small non prime integer\nresult = invalid\nvalue = 00\n\n# tcId = 3\n# small non prime integer\nresult = invalid\nvalue = 01\n\n# tcId = 4\n# Non-prime Mersenne number that is pseudoprime to base 2\nresult = invalid\nvalue = 07ffffffffffffffff\n\n# tcId = 5\n# Non-prime Mersenne number that is pseudoprime to base 2\nresult = invalid\nvalue = 7fffffffffffffffff\n\n# tcId = 6\n# Non-prime Fermat number\nresult = invalid\nvalue = 0100000000000000000000000000000001\n\n# tcId = 7\n# Non-prime Fermat number\nresult = invalid\nvalue = 010000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 8\n# Non-prime Fermat number\nresult = invalid\nvalue = 0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 9\n# pseudoprime square derived from Wiefrich prime\nresult = invalid\nvalue = 123a99\n\n# tcId = 10\n# pseudoprime square derived from Wiefrich prime\nresult = invalid\nvalue = 00bc18d1\n\n# tcId = 11\n# square\nresult = invalid\nvalue = 04\n\n# tcId = 12\n# square\nresult = invalid\nvalue = 09\n\n# tcId = 13\n# square\nresult = invalid\nvalue = 010201\n\n# tcId = 14\n# square\nresult = invalid\nvalue = 0f2ad9\n\n# tcId = 15\n# G. Jaeschke: \"On strong pseudoprimes to several bases\", Math o. comp. v.61, p\n# 915-926\nresult = invalid\nvalue = 01f51f3fee3b\n\n# tcId = 16\n# G. Jaeschke: \"On strong pseudoprimes to several bases\", Math o. comp. v.61, p\n# 915-926\nresult = invalid\nvalue = 032907381cdf\n\n# tcId = 17\n# G. Jaeschke: \"On strong pseudoprimes to several bases\", Math o. comp. v.61, p\n# 915-926\nresult = invalid\nvalue = 0136a352b2c8c1\n\n# tcId = 18\n# G. Jaeschke: \"On strong pseudoprimes to several bases\", Math o. comp. v.61, p\n# 915-926\nresult = invalid\nvalue = 023c3db80e80e53bd1\n\n# tcId = 19\n# G. Jaeschke: \"On strong pseudoprimes to several bases\", Math o. comp. v.61, p\n# 915-926\nresult = invalid\nvalue = 0504e8e504fd585e79193ca1\n\n# tcId = 20\n# G. Jaeschke: \"On strong pseudoprimes to several bases\", Math o. comp. v.61, p\n# 915-926\nresult = invalid\nvalue = 00b7d84161830e3f6f2231a7a1\n\n# tcId = 21\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 4c6092d9a7a5462b34e5\n\n# tcId = 22\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 22c9a603ee84bb9c4cad\n\n# tcId = 23\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 437ae92817f9fc85b7e5\n\n# tcId = 24\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 0190e262098f0d746505\n\n# tcId = 25\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 027a5f7ca7b29ee74d5525\n\n# tcId = 26\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 008d60a89f3f36cb1fd495\n\n# tcId = 27\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 02be6951adc5b22410a5fd\n\n# tcId = 28\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 0292a0068ebb0ed3251f55\n\n# tcId = 29\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 750b703e68cb957ab415\n\n# tcId = 30\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 02d0facc78aeeb89f5b299\n\n# tcId = 31\n# Richard G.E. Pinch, \"Some primality testing algorithms\" a counter example for\n# Maple\nresult = invalid\nvalue = 09bdc1c98b9b\n\n# tcId = 32\n# Richard G.E. Pinch, \"Some primality testing algorithms\" a counter example for\n# Maple\nresult = invalid\nvalue = 0ffb48c934842b\n\n# tcId = 33\n# Richard G.E. Pinch, \"Some primality testing algorithms\" a counter example for\n# Maple\nresult = invalid\nvalue = 18444fdb12afb7\n\n# tcId = 34\n# Richard G.E. Pinch, \"Some primality testing algorithms\" a counter example for\n# Mathematica 2.0\nresult = invalid\nvalue = 08e4f37e51\n\n# tcId = 35\n# Richard G.E. Pinch, \"Some primality testing algorithms\" a counter example for\n# Mathematica 2.0\nresult = invalid\nvalue = 179d55b600e7f1\n\n# tcId = 36\n# Richard G.E. Pinch, \"Some primality testing algorithms\" a counter example for\n# Axioms primality test\nresult = invalid\nvalue = 085270bd76a142abc3037d1aab3b\n\n# tcId = 37\n# Richard G.E. Pinch, \"Some primality testing algorithms\" a counter example for\n# Axioms primality test\nresult = invalid\nvalue = 02cb78fe3f36c4f5f05dbe92b82798d5fc18f2bfaaa388ef\n\n# tcId = 38\n# A composite q that was acceptied by Gnu Crypto.\n# http://www.iacr.org/archive/pkc2005/33860010/33860010.pdf\nresult = invalid\nvalue = 4682f52f0b54308d315b2fbec25065506c77be95912b137bc6eecffad8a299b631c55ce068702b1b3e4ce50958994c289b148fb298a8c603a0959cb0ba5ad4bcba278cf4c87e0ff85a62a25c40849662c53d0f81cf9e4431d8c391586629260e558db473997db20108278b1ae374089140d93bc2c5a808ad3aaf212f60bfc93cc0c788149dcd82f7ab\n\n# tcId = 39\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00f67307e54779cfe9120bf862afc5466c5d6d0783d12df5215c0c981c51e4bfc098e9afd574f51b18c820259b692ec0bf7c9d6e56e9bb99fbd3b7ecc4082146a9d7a5b7bc6519d476c4a9975d9c3e3b12bee45b7accb07a6a68ea583ac2523ef32ee6d01bc766b59c43031f9c6980c9b4317da6825be9f7c5db03283d04c13323\nflags = WorstCaseMillerRabin\n\n# tcId = 40\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00c1d00b32d63e3ea4fb69ab6b9dee40a17fada46c122e52a53fecd3fe613303f51c07871dc0b5d8d8c1705b484de6bdb7f442efecd7d9f59dc36e495f72905c7619bc4d3706283774e704a3adad7d6c1be42ddeffc2ca5b1c0e31b58ed606f16dc14676e60ecff42ae33e503621e232ba449e91e3a9909e80a8318610aea3b7cf\nflags = WorstCaseMillerRabin\n\n# tcId = 41\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01c2faadef91d43c9ab1320020e08e2ec3c34012bd0db94a1175170dc5aec26897e867d0b7a7273119fbe1115f02875b522566016f69f319ad5485e7458fcf50205d22ba765cc586a6037be987b6832c46227df19cd8ce0641794b60b73fbdd3c104870ae9bdf0194e772c985536e860b90b7fa3eb205af6b224413f5813836abb\nflags = WorstCaseMillerRabin\n\n# tcId = 42\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 0109fddd44575367466c67aaa921047b367515c9aa579eb60728034ad2d56f10eb01cfadb3ba0abde99f348bc3c70559bc24551b85937ca4c886abc0826cc1c310f14393652c1b4994953881bd2d81de0f2a280839829543f429bc41bf3c6db120bb150173e2707f36d1f76318249851f4fedc39e36aaaca48686de03e6d256973\nflags = WorstCaseMillerRabin\n\n# tcId = 43\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00ffd0847cdda5a4fdfd2345bc731f1bc77843478950d33b2830ef0caf8deffdbe6309fe61fb67dded6659e433f30363339dbcc7c0832593f33c24a8b8f0e28038cb6edeed58ae765e6884ac0b66b5218cc758e6247269d24be9f91865d33c105219ffbce00c6c2d6391448643bcf5138268f510258f638b90a6c8b53bfc121759\nflags = WorstCaseMillerRabin\n\n# tcId = 44\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 0118d077827c6db85bc61d53063edf5676d6ac65b611d836eed07ee7e1d15c02d999a3eb78ce662edaf457f0f7d9c0a0305acc1faec4170400f0610a797de50ebfb08fd0a5da77144a1e0236e2bc6d8d2a6a719e59df071367cd61275f372e23b1c0187d87d15bda5f71f4705b1c3aaaa8ad951d20cee93274b151f3f9a55bd693\nflags = WorstCaseMillerRabin\n\n# tcId = 45\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01c09377e15f53b1329b6e8a08bf0f94da27dd29c89be74544d705173a0bdd410935e186dd95ac113732674fe08585690ebe9f749a116a8c64e1b4a281ef0cb28bc70b1639bc1352ff5777783bd72e3b8495c1494ae11fb32bdaba8c80870a3de71c0c27f07983e97500c0ec0321b86c679c53ae7f8c76ddbf6a9cc3ff63e45023\nflags = WorstCaseMillerRabin\n\n# tcId = 46\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00f35cac3bb3c7cf5e4e50162f4ca889ac7b875f4aac08c5a2433600e9bc64db6c9895aaccf3ee98783ee2cfd8a5e448b265bbc4cda6cb80d487c7967d5a6724fae1ffd27c70f579e62b49f29819c6221d7659fa9364e8e37795d88611506b552a20533f1f6446a35b41a986d304fdd7a39f484331b4fbf242f95b80788cff39cd\nflags = WorstCaseMiller", "Rabin\n\n# tcId = 47\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01e9df6f069f5984c080087127f90437f2d38f19385b3592d17a5f23603ec6315c36a88d2012e85eca62a983de7ef27673c605155b5647311840cf8887be8267fbc01cec3f7e0467d5e9a812e5dca577cc8ac93971c84f8cea94637c60c0bfe5d7f4b4f950e60ad077941190afaa905d6d5d570c9b4dab98c32c7abc42346f894d\nflags = WorstCaseMillerRabin\n\n# tcId = 48\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00c5286502dda772fc22d43b0a2f46823777a91f580f3a1261c47be8e2010a5ad9395e2c036b32813dcdaad33c8f2f4a522593e31ae55ef05c8df8ed58636ac1b9db2b205797d39343e0868ff02bef46d18736bedc6f527730da8594d45d0447e7c7f0e8ca12b285b88aea5e343264874ac22038f5821bd96519d49caf45184f97\nflags = WorstCaseMillerRabin\n\n# tcId = 49\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01c29fe8b7e63795218563774685b9fe85eada73691a6420c38f0e9f2f802e89c77ae78716924e4efb5e4c639ca98ddb0c9e35cbc6313196b3327672527404b6da8ff7813915702fb7fa254c1cdc167a34170da57606ccff876ca0ce5e920f443e389fc9d0c071b908c6675b6a9f5903d6d22ad490e6476a7e13adcaf988663b3b\nflags = WorstCaseMillerRabin\n\n# tcId = 50\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01e8648f8abce82efb0afa9861c96c428f690c5fe33b9c9d47f97198542c982e607fd9700f876159ea404983f4eecbaf2a73b262085da4b7b5de8f6e8ca0b712f5e89c0e8f024033879f858f814275a3ea5543fd539e74f5e099769d0d726ebd8bc74bda6e2f8ffabbb7d043f7818cd8d531180a827731fac59f45b2af35d273f9\nflags = WorstCaseMillerRabin\n\n# tcId = 51\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00cedc5db464312d6f1ecf53a40bde07ae0d5540ef75a4802ff469142270049dbba2b74e4ece7340d8eb99bac1a3d6f0b52ebb41794d3cd4e4a588431879ff81818abc50bca5e686a06d48461b425be62d3c064321429e346960163f897d21b362dc72f306a6865cfb9c8c5682cc7fcd7dc6ac4202e8d070729ef9e3b526236c71\nflags = WorstCaseMillerRabin\n\n# tcId = 52\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 0093ec9e6681f1bc1d6534add99d97e0d907828996bb3d7b481f3ceaefbe8f3fdf15698302ce26feb84c08994079c9f368af8171faf76801fe6dfdaecd587fa0edc751d64ff7e9aa73fb7aa51a8469379bac38e9d7941e0bbdcf658633daea40738e81f5605198b04fe8fd49646da4e98c2282a8041c25bb9894252412472294f9\nflags = WorstCaseMillerRabin\n\n# tcId = 53\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 0129fffd0bf1827f2847f45bd490d5423f67d87eb8254535d57078707e19f2ca5ca10602c5eca552fbdc77e30592b7498254f901cad02e0bf59802f5582cbb3059a1979a5e5311855807b1cbeff86a651dbf3818c3b6cf50092c9b744c4831873d1d0d8c23f23b39517ce435a257e5026cfa0be280672e1bba3074b2cdc6474a37\nflags = WorstCaseMillerRabin\n\n# tcId = 54\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 017232b942eedc8a0df14f5c1ad4e099f192b242b7d3dff09c50cecfe636c72c6c8ba1c65dde4396282e1a1c823b6d5d9c0c9068b39e202dcba26a9d35a00b7bb6bede272820fbbba503bc1866c6ae183d8b50e28555a921121929862ce87ea4ddde8f9d6ff2e17a8ee7cf9d306faa0815a4d46e8dfd4b7ea538b7399cc1c06c1f\nflags = WorstCaseMillerRabin\n\n# tcId = 55\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00d3768b43c242fa7ac1de856dc7bd413b79d544bb8d38677bc9f44aa116ac5525c3e7fcf2fb2c1d3de61844931f47646b4c5f7de226031c925acbe57f1cd292fec7e7d4fd25afa128704ffd8da910ef18961e081e88d40bc37582b087f1b1f39fe4d23a03ec6b869c76fa3aed7a3606c469069c4fa1d4ff1c6112da16ba9dcf97\nflags = WorstCaseMillerRabin\n\n# tcId = 56\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 011b5119e5c68a710158c36d414597b4e1ccff332d1b437a4d2da2d2269ad2b626fde79e3ba7ed92128e5feaa87556f18ca6937b5a88f4738608d6bb6aacaf4fb719d67561d66dba9690009bcdbea2db4ee48d575722cbafbf1e487bab1c62ba0cde30a34620c7733b3e13d8b27fa035115680fb81016d1ca777b8a2bb7c399a47\nflags = WorstCaseMillerRabin\n\n# tcId = 57\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 008e9ee596ea83d06e1a9a4c3b75fc67f3c01de737be4dcdc18f1d10e322df48e455546ac8ac810129dbcb0fbf568987033cadef9d051f6032c8dca2804fc8d8d6e79f5d767963e4b6d72ac29d98d2520c29c8e69ffa59164d6a1e4cb55b7fcc60c7cb274da264203839873ec2f85f4ae377eeb6189e031b17e8603a01ef877b3f\nflags = WorstCaseMillerRabin\n\n# tcId = 58\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00879d1e0bc0538cd9025110cec61a034305c8fdea2b9709ba80b0c45891e7ffc69c05285f4680b95b5882ad04210342314d3ab465ee1209d0690613a09bf7df0d48de18a7200e09e8b7944e748413ad64057fee2daacd099dcbb19920429cf9776d939c27c74c3adc8c41f1001f98d5293e018b1dde228abc6e79092331804bdb\nflags = WorstCaseMillerRabin\n\n# tcId = 59\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00a14d02b57eb643499b92b797687a69aa809fc6c5b56be581de2f8668d38936c9921a16c921a18ae91bff15ab595897416ebbbde977244dbab4779d47bccfec14b1bdb255597bb9bb70e9372fc9afe475b2f73754daf575ef2dd565dfb4216208141fa99df428417d84fff2c54b1fba037a4237bb17b07ddac0f39209f83f8541\nflags = WorstCaseMillerRabin\n\n# tcId = 60\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00d11e471371b5ce0473a80367ce1b0baeb21d8f8ddfebf1116f3b3721247ec85f6e2786467b63743af0885e69c59d674d2b1a4b655ab15d8003be755fabd56f60ad3a7d2a5edbe942663b882e8c1d9aab7250a45b93feae3f092e8819d5cc2c0eee2cee0c6a098a40331aa12a0efc384e518036d382e4e231de3cf644e8aa8b97\nflags = WorstCaseMillerRabin\n\n# tcId = 61\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01fe65939e5a1c520be98522b1ebbd40e4c030adf0677c1878b1b0a58b72873eff6f58712e377457ef467bdbb4666e2f8a4733a13a065aa01e3f5f0cc0fbff0e8a2eb2d8d43b9f2a4931d107315943fa7e1d304f98838903897cd42ab948f7c5ce31a9323a35bdc0cae10eebccb5f318a1239f9b9609d45387805524d67e216477\nflags = WorstCaseMillerRabin\n\n# tcId = 62\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00c24248b5f6e52e0ce8c9068ba2b5839489d1a4849feb751b627e12d13722fd5a00cf4597e63c9bfd1a275b68489539f2b0bef36a09504d7539d0e1a346bc0dc5fa2c65c4c23b771a9946ef5bda403dcd27f496dc02233c05d7d7dc73f6438169a0bdc510bad2ca105d84c2c8bbf2a44c4d7d4d0ead980c13bda71a945d1f3f01\nflags = WorstCaseMillerRabin\n\n# tcId = 63\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00ab0ef4c1c3be6b7bb39ab0c8a1ffb2c12f8a2fb6c85ea1a8893f452dae161a8decbbc6a84ddc2068bf9df927c0f68a95fff1af8aa9eddd80b0c373b7ea750def2f6df54c0a7e50c16bded071b8d1df6687264e496316be5fcf5f9ab73f5c39b61a876441fb3f467205c92a864d97205032660d6eb2cee3ebfca9649295f6fc95\nflags = WorstCaseMillerRabin\n\n# tcId = 64\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01878ec4f236498bbf2320c89679639394b03dda157a9901f2e07486e64f1bb52f6b4823db13786296a71d6e65ad6a17308e46ddbb2608774eab3df41221eec799fc13ec95b567450abfbae8aa04f3c6361df3a1c01028b83560018b729b5924ee5f03f1306267eea55ab65a95591b105810a50111c9041d20b3ddd389e8ded20f\nflags = WorstCaseMillerRabin\n\n# tcId = 65\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01602a125e7578a82e23051dd12ce12be44f2becfccbd13c2ee18ae1e391356786315832fe9fa6dd5488c83b4f560a5a4b9d9daae4faf0b9b21075fa1b470c7d984b2b43cfca22bc36ec305e52fb4b897445024f2ee536164a5a9a4201db4d9247d4e28e193ad3c62657a91b23727804e8f4bca40691eb41f17c68ab65bb8dd2a5\nflags = WorstCaseMillerRabin\n\n# tcId = 66\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 0109a25eac262687f28e560e73bd95be9894bf2a0006dc217e97547064d29be5fae521312fcbdd2949520961abd90b5a2ebcf55780f0d14ebda3c17825089183fee844a3ba0d132cf3db13ebb8f42905bf24374ac29a7b68f93f76dbce3942d4b1dbd91c611d24251b374bd29ae153cb9e23177115dc7003894269328d960cbbc9\nflags = WorstCaseMillerRabin\n\n# tcId = 67\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01962b71c4824f2072f59c73cedfa26a49bd976bba7014005b6feecfc61c90caeeaa05ca8954219165f073bcdb73770846c97383ad1d47f0cf656830388fa5847ab9f542e26226d3e9c2a90bdc23819333bd13803f7520272e4cfb80b5c54c92dbc2936ac75f426babec5b49db6a64cd6eee14ecff0402506eabffc8bb11ec6c93\nflags = WorstCaseMillerRabin\n\n# tcId = 68\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 0102134c13210c561b22c8f2549e0a1786fb85900e3c69c20905cb46a3f633b7128656ba1644cb6bbfa1b5b0c5a5bed69a7802a543cefceb2132e0db7c596e51b88e62185f3815fdd40e7db9d1aed0b0f135b09c4d90e81fcd4ea7a8e7c150147bb2f0fab2d8a0128f25e1e498813f6dc26722a73a441d6e9ba4f488d96ee6d399\nflags = WorstCaseMillerRabin\n\n# tcId = 69\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01ecee4b07f4311afce14524ab060a72a7198499342f099f681dd6b8a366bc9550a7ddd3288273ef59f62c5daa55c9c4726c78f08c20e0d9a74208db52f732377bbd8ca8f8f1d336bda6bb2defab66506c0db04bf0d", "d6f7179f52cfe9c5c91179de1c03eab017d7ff867478e45386955c7a5a744e7f8dacf738c80352a99226777\nflags = WorstCaseMillerRabin\n\n# tcId = 70\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 019fd1a5266cb6e8dfcff2b755624ec26413d25cf53a9d4341ff5c7b0b4e06e8246e6e1063e185b05d90f38637ca69c298d6a834e9aeb06e02afd001897c1fb097c905445b2e6d27750cef01f40d6030f0328eee55241137afead4f8d358d0be0655782a60265f0b9aa30b275a32b60bdb252c95d8d69b68e8a1e07c2374029bcd\nflags = WorstCaseMillerRabin\n\n# tcId = 71\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 32fa78d5eb67eb14a53de388e9d03ae6ebeb7ae017dbae8f594b95f82f6ec380d5162f6f498d0cb61bb14d7ae54fa1b427c2a1d819133161576864a86d039200cb22c5d68716fd0e2b8f021cf25e08506d4ce285536bc6a074edb6d9b4a9dc01fd79eda19efd3b168eac045b6a4edc4c880de430dadc5dd3f32886b88d320505f5f0b064e46be0f1e31c57dd160e89738a4f6897975875564f20f82ecd4cc0db\nflags = WorstCaseMillerRabin\n\n# tcId = 72\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 5954649e58b4eea73bf1738957727ed4f356fd14891d95b81c7cd40a9ae4b9f1a807fc859d4d419e9a2178a369ae734cebf3b6b9b7069570515a94b5609585625a7aab4e2ff05566be39860b1c2e41910a07b46a555299a573c50b82572a8e40d70cd5949c0c5488582cc2ca544265e1e48ec5501fe611ee65de54946f4543ddd94f5d2c100fad681b6390924e3dbee62bf78133bb2ae6d1592fa5c4b0873635\nflags = WorstCaseMillerRabin\n\n# tcId = 73\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 282ca88061946bcd2fa15fecd98e61505b4c98079e5ffd08e9797059673150435ed47f6d94311c9df4ceadce2e13679b4eb1e7120f9f19d7ac393cc090d1885c88136ec24d085ace42e92ab049d8cdf963d8ba7b93b25e3c720367fa9d7d3905eb460c6922f53866fe439bb96f6d5213e66ede6239512bf0c2253ae23c3ff9915dbee4eaa576395e2d6986d40151cd8fe4c9b4d990ba17ec4bcdf6660459858d\nflags = WorstCaseMillerRabin\n\n# tcId = 74\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 2161895b72aff5d2a865dac7e95cabaf7a28010da0dfb075f9b25c189821c99c1bb599d47d6a688254401511cfad26f1d93f254a3be2752a70f7859acad5e6f741848bfefe449072365616be7251781063e8f8934b59f1826341ebd0839dcf72b1735e21f35301313c683d28fb637f6f93453f575330f74e2a0d661ed5fe54816f8cd38b162d5e769c0bf94dfe83e25b6c05b7705a477ebf52ff4deb6bec6aad\nflags = WorstCaseMillerRabin\n\n# tcId = 75\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 71f7dff1a6a0fd66d5228398a7ff1707ed9f83b9b8c660ae57ee4dd40de7493cec1540e50b4586fdda98ee538e6264fb72f51682bb7bb5305285c287f4577023b8350a84fb088005e36121d9d137b16c4528b4a8a3934db88fd27128733b5f9ea78bbaf239c93bd9b6b4b1fb683e2e2ea911eb4da824b5650f186a7304031b62fc145a9a20a269079ba598dbd183f29a2f35a46eb05276b8ac99a8dc72d76151\nflags = WorstCaseMillerRabin\n\n# tcId = 76\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 55654725a248e323f3d4050b87acae89736b85dc8dd45a9c143b001685c72a70996f3ce99f40be4cdb83b7b420b520e7fa001eecd49cd43c31500c7c502e8c31e309026c07fcba386f0905da79d34b855861018af444fbd519736483fa79ab2d02182a9f0c0e514528f38cae7ef7668829b25d58b569027e4f286a71c1da3d9257a72a234ccde58d1604954d99115db265ae13c012125b5f317ab3297e5ca3e7\nflags = WorstCaseMillerRabin\n\n# tcId = 77\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 6af6ed1adb0d772536d2e80f9f048b9a94cea70f6e15f37a6b5cac22794826089a11c8fb421b3bf8c108bd41a3cd7f34d09466aadc8b043a51b0b3e9c18e0c96e4c703343fcf68d45d5f023bf781de530a1d7946f4d2bcde9d7ef44374a2ba94ad56777aa113abb19b57d4802c18bedb58157dcd52eeca7a3837e65aa97d95f3b757e7eec27a5f890f41399aa5c2831f13a724d798aeabfb642a011c52a7c70d\nflags = WorstCaseMillerRabin\n\n# tcId = 78\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 344b4e93ddadf36e039a4e97783a18c3a84f3d725d5f496f0b3632fd15b1a0c2ddf8f97a0f47401d0bef33c32ef36b2819f5d0f72046ab8bdd68fac28397d1906a1923f5ad96483048254e931a6acb5a3d31d4953212aa58c2f96e94dd5393f1e830e76264af68abfed551f3ff4e8d3bfbc6e6cb296befe2b9d694db4d4dd186cfcd6d697c7aadd92277f9ab85e000dfef3085cd52418d0f9b11605a64719003\nflags = WorstCaseMillerRabin\n\n# tcId = 79\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 2947f606c39ded9591b3314918b7fc0586888d42eb0a8d68bfa0890292f83f948280dc92e897c59de2477340c9fb288241737213d63d006a64b5d9c36b010164953fc68b3e4c7d70e4837b707a2b4b3608d878c7e5c122665299c012e2d5b3630b6862b87e4c680cedf13a6fbcc6eea8ce2d1fc394aa2327d6e0f41c4259b00fb8d8922b4a81432a30f7adf6477b5c436102c83bd1896718d8e795cbd5c30b65\nflags = WorstCaseMillerRabin\n\n# tcId = 80\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 2d586d8d3e1a38f532ed17011ff9d397084633faf6690129eac51e092c67217fb23e6d08f9cddbc38f7b3fafc308f23375df556f68f8dce22247da756e8aded669cb841b6be2fe5a22da4c0d06dcc6d6fd899d294ad0f62de03a7057e56ea6836ce8967d929f4144c9955460bb924fc32f5210919c79e9566e0552caaa130b6ab2e9be086fc97659bb2097adb0ddf82cca17b472ca511735499c448a8301f379\nflags = WorstCaseMillerRabin\n\n# tcId = 81\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 4ae1078c81d196eea211f9c4f762a350b4c060b4d3630bf7fb7dddd2739986b9de2422c9902e5870b3760be7b7926d6aaae633cf0ca9c0e78a2ee03fe193675524e0042073d3be737efe994b7bd93382bf8426f454e4a221fc899764f1059fa30b48ba6db9be33c92e312e449d190b3fa2f1c731277286fa363ac8420668239e0bfc26387ba329720bc4ed0217a772ab214a60d8d2d0889d887960383c420595\nflags = WorstCaseMillerRabin\n\n# tcId = 82\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 4acba34e2619592d5cfdbbe195d2aa9eed8762ac0a8336d947c846fc97d1d934c1ff42f1254de674990f76e514be53b2755cfb4ac52edec66a8127685c8e77e84b06bcfeda0684fcbfb20e2ee05c1202f3cb897bfb1c44bcb6301a9843f8e8eed031a1b4eb913bea04f13390ebd2a033ed151ef8b49b511da558e56cf1e3ac89545219ec026b3938ba9732792a1c89ca6d38c3c5e0e400af528ee477ffcf2ad9\nflags = WorstCaseMillerRabin\n\n# tcId = 83\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 3d809b8c90e877efa20e031ec99d825afc1c1920d8b94e460848b80c3fa0a093ddff5c608963ab74f505a6da96b8068c2c2b3bc1676170dd0c2e65adcaf7cfd0c6b0309634961ad0c9b7f75e2f721f1f57fa9cf5d4f41f60b2ad3fc1d213b8e75fedb69ad157e24ad67f2ecc4099943e19ecfa7e1a34abb9f4bb02cf205906dc159c258973267731ce59d16552d372b9b47f0e630ec677711bc13995e00a41c9\nflags = WorstCaseMillerRabin\n\n# tcId = 84\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 3de7d0bda6eae8145cc70591c4b78b1dd8d9ecc4a3d7edc1bbb75bf0e98fd3fb8d5cd4e94e4cd3ee246617b22426ceec6981681af9f7e6af08bc02bde7cbfa13301f7b88f607e1751285c4a861af2ac69f20d2d600e27b0de873b9ec7bf2cd0725b31032932f0f817084b347852613af9977931e2b3132a523dcd87f545805730b34db29c8c8dac9df8a50f5aa1e36a056ae41b01d04cd9574acaa98203d84a7\nflags = WorstCaseMillerRabin\n\n# tcId = 85\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 5e2a15c7d9bee2668dfd689d027bcc37743259309457147ee7785bb3960dae3c8126655cff9e1302086adb3d1c962c3390f50ca3bf5f666e8a004930536c0bedeef4e8bc3f4dedafc3168692109a239a7d4fbd3aef9e6e0c8665c6379caa6ccb05a6f941782379fb13990f2bc104dc7e0007702c7eea3bb7ee42ffb5d570570b2f5409ebe76d7244b1e8392ccabbfda22515beb0bfad6c006c2a02a5e8526763\nflags = WorstCaseMillerRabin\n\n# tcId = 86\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nflags = WorstCaseMillerRabin\n\n# tcId = 87\n# A strong pseudoprime for the first 46 primes. F. Arnault, \"Rabin-Miller\n# primality test: composite numbers which pass it\", Math. comp. v.64, n.209, p\n# 355-361.\nresult = invalid\nvalue = 00907b5573c3d72ca5afda9df723d24066410e3d2b61f89c5c600f90732d0ad7db06a02e209f6792b609fee2ac6f3d73a5805f2b30642d1e2654f7ffd155153e5fbdcb17c76c27fbcc15010ccbfa7a1737cdf032edd5da7edebc9703e51572ce452c2319f1d91bee276d3e1121f9563b1700448ff37346b5a88098c9a682a59ccab86401aeeb74c8ce45dbf8b5\n\n# tcId = 88\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n# http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.6783&rep=rep1&type=pdf\nresult = invalid\nvalue = 19bc037ff6b1\n\n# tcId = 89\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n# http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.6783&rep=rep1&type=pdf\nresult = invalid\nvalue = 01933ecb87a0c1\n\n# tcId = 90\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n#", @@ -8011,118 +8321,118 @@ static const char *kData278[] = { "b96229e4dd12baecae8680aa038c104df148191a40e5f0cca2b25b456957bd8f2145529e71d25762fedbb3b6cf3023dfacf47200b91b6a4bacbfaa92ffaf4a760ec132868b9e7e3f3d0f7cf77a1426645ad54a2e057fc01e223682e7c56afeec356d4f53a08528e5d2684b8be5eab78a3d9b46cf331\nflags = CarmichaelNumber\n\n# tcId = 192\n# S. Mueller, \"Strong Dickson Pseudoprimes which are not Fermat Carmichael\n# Numbers\"\nresult = invalid\nvalue = 00f4e8aaa62114c404219ed23f\n\n# tcId = 193\n# bound for deterministic tests\nresult = invalid\nvalue = 07ff\n\n# tcId = 194\n# bound for deterministic tests\nresult = invalid\nvalue = 05361b\n\n# tcId = 195\n# bound for deterministic tests\nresult = invalid\nvalue = 14f5d5\n\n# tcId = 196\n# bound for deterministic tests\nresult = invalid\nvalue = 008a8d7f\n\n# tcId = 197\n# bound for deterministic tests\nresult = invalid\nvalue = 018271b1\n\n# tcId = 198\n# bound for deterministic tests\nresult = invalid\nvalue = 3e9de64d\n\n# tcId = 199\n# bound for deterministic tests\nresult = invalid\nvalue = 00bfa17dc7\n\n# tcId = 200\n# bound for deterministic tests\nresult = invalid\nvalue = 011baa74c5\n\n# tcId = 201\n# bound for deterministic tests\nresult = invalid\nvalue = 518dafbfd1\n\n# tcId = 202\n# bound for deterministic tests\nresult = invalid\nvalue = 01053cb094c1\n\n# tcId = 203\n# bound for deterministic tests\nresult = invalid\nvalue = 323ee0e55e6b\n\n# tcId = 204\n# bound for deterministic tests\nresult = invalid\nvalue = 1c6b470864f683\n\n# tcId = 205\n# bound for deterministic tests\nresult = invalid\nvalue = 081f23f390affe89\n\n# tcId = 206\n# bound for deterministic tests\nresult = invalid\nvalue = 00ffffffffffffffff\n\n# tcId = 207\n# small prime\nresult = valid\nvalue = 02\n\n# tcId = 208\n# small prime\nresult = valid\nvalue = 03\n\n# tcId = 209\n# small prime\nresult = valid\nvalue = 05\n\n# tcId = 210\n# small prime\nresult = valid\nvalue = 61\n\n# tcId = 211\n# small prime\nresult = valid\nvalue = 65\n\n# tcId = 212\n# small prime\nresult = valid\nvalue = 00fb\n\n# tcId = 213\n# small prime\nresult = valid\nvalue = 0101\n\n# tcId = 214\n# Mersenne prime\nresult = valid\nvalue = 7fffffffffffffffffffffffffffffff\n\n# tcId = 215\n# Mersenne prime\nresult = valid\nvalue = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 216\n# Mersenne prime\nresult = valid\nvalue = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 217\n# Mersenne prime\nresult = valid\nvalue = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 218\n# Mersenne prime\nresult = valid\nvalue = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 219\n# Factorial prime\nresult = valid\nvalue = 02611501\n\n# tcId = 220\n# Factorial prime\nresult = valid\nvalue = 00f17a60a5d627ded85b6a9a397c2ba63bb27910ccf7e3135d4d1ae8c9f5cc1e4bf01ea704abb2000000000000000001\n\n# tcId = 221\n# Factorial prime\nresult = valid\nvalue = 01e764f3171d1e44a5f0c50c6537730168041cd93fa34898140da93d3df2939adecf61802daa63eaf08428d72148d63f267f22bd24cd411b7f25984b057bda5c11510000000000000000000000000001\n\n# tcId = 222\n# Factorial prime\nresult = valid\nvalue = 3a7c596683f12898e64bf1355bb9bc85f01d91307e568d01afdc9cf0b3fa9e464b140d899d9bf62a0c61c2bf0a8bca1de36f6d36a5be4aa212681896def96f583c8a7cfe362b4e823bd244f813e575391a029df7012e738d3e2e8e0181ea40000000000000000000000000000000000001\n\n# tcId = 223\n# Factorial prime\nresult = valid\nvalue = 72b20ce22e5616f923901a946b02b2ad0417882d9172d88c1940fec763b0cdf02ca5862cfa70e47fb8fd10615bf61187cd564a017355802212a526453e1fb9791014f070d77f8ff4dd54a6d1d58969293734e0b6bc22f3ceea788aa33be35eed4bdc1c8ceb94084399d98e13e69a2b9fa6c5583836a15798ba1a10edd81160a15662cdf587df6b816c570f9b11a466d1b4c328180f614e964f3a5ec61c3f2b759b21687a122f9faefc86fe69a3efd14829639596eb7f2de6eab6b444d06233d34d0651e6fed17db4d0025e58db7cad8824c3e93ed24df588a0a4530be2676e995f870172b9e765ec2886bce140000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 224\n# Factorial prime\nresult = valid\nvalue = 2c47a7947e4ef970e990c8b4a793b5f7d49b9af95a12b9f08475e1cf58f31046fd224c3ef20a736d7cae39a2f989d934c2aa644483aa6e348bd41c34a6819d7c08fdbd93a7f7c24a4756bb7dd97516287e161af87e56735c06d61918cb2fd4ae9dc1c7f2cbb5749934626af5f4db5bde6b748072c004110d45f6db0fe51c4889ff053bb2a24f83bbb80798b94e5d7a189599d85792807626de78a61a7468eab70a2c4dda6200e0c8328408e0327897220bbe009cf8bbbb23fa1cb5fbd3713f7172f8186d059d0b97c2ef5b096c558ec61f66e81116be44f2940f4c93b67d7cd3564c266540fbf0bb95cc3c52c9dbc71aa6a424457131aec3285e6ba46e828e635f3455e30b6db3e4680ba04c580fb569145f6371a0d352f40321751cd26623e92a6c5c9e83eb655338c9077826148e23c3705b8f11b15a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 225\n# Factorial prime\nresult = valid\nvalue = 1774015499125eee9c3c5e4275fe37ffffffff\n\n# tcId = 226\n# Factorial prime\nresult = valid\nvalue = 22d4fb39eb23880b4674bcffd06a18547ee73e7e77f1fb29c0dbfa66ed52cb8b22bbe0ed9b2a2b779c9037d7b412a389bec5ffffffffffffffffffffff\n\n# tcId = 227\n# Factorial prime\nresult = valid\nvalue = 371196ced90a51b120fd9171fa388fe8c2e634f9ee10f4bcddddfd269ebda2f3eed661eaab3cfbe6914395a73735701d7d65e278f76842b02d1f8f5d941d652067ead60bf9bb537ae7e13404711ee80b35bbf5936641be34d53d4b3bbd025bed4be7fa44113cfea3ffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 228\n# Factorial prime\nresult = valid\nvalue = 0120dd73742e20e30f56d82ace2d9ff917e66b2c92024a1444490511d41a39685a9901187f206b5a248b9e52d82f15820801be21beb73ff9e0c8150c69334f02fe9593493b55d48229601857a3ca4449a444d2c0566936deadacd46310d04480265834fe9b5e733357b0c73a0d1e23d85e401e8c3b60571045a6bfb1a19f4940140736098dac2d705dc1339370f1ac19252b931c450bb260800bb40aa404dc54199b7251abcb50d26fc9de82de037c3b9926a2958bd6a1d8690805c0681f5cb5d90b1447cb7e5d81c436b913d743372be382e3bb2d1cd7185948136957af2496888060c7b7ea519b173d5f190c27c70f3dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 229\n# Factor of Mersenne number\nresult = valid\nvalue = 07c97d9108c2ad4329db02eb8f166349\n\n# tcId = 230\n# Factor of Mersenne number\nresult = valid\nvalue = 010001\n\n# tcId = 231\n# Factor of Mersenne number\nresult = valid\nvalue = 663d81\n\n# tcId = 232\n# Factor of Mersenne number\nresult = valid\nvalue = 00b161194487\n\n# tcId = 233\n# Factor of Mersenne number\nresult = valid\nvalue = 08112264cd9bb77f\n\n# tcId = 234\n# Factor of Mersenne number\nresult = valid\nvalue = 0b73493decfd9b68318ef9\n\n# tcId = 235\n# Factor of Mersenne number\nresult = valid\nvalue = 3d30f19cd101\n\n# tcId = 236\n# Factor of Mersenne number\nresult = valid\nvalue = 126cf51772d253cba3f5a7cf\n\n# tcId = 237\n# Factor of Mersenne number\nresult = valid\nvalue = 00d3eafc3af14601\n\n# tcId = 238\n# Factor of Mersenne number\nresult = valid\nvalue = 013540775b48cc32ba01\n\n# tcId = 239\n# Factor of Mersenne number\nresult = valid\nvalue = 3a294c585a8f5c7073e36ee3637cab2586d049baa0ba2c911801\n\n# tcId = 240\n# Factor of Mersenne number\nresult = valid\nvalue = 03f1cb0fdf0fbef0f3747f239f5a8983e72b455488b792c8e29308f8c78e7f\n\n# tcId = 241\n# Factor of Mersenne number\nresult = valid\nvalue = 37a5f7f30fd2d1f46cd794e8337106ccebced1189c1f5b6b3c525b64b6c36768785f7912013f\n\n# tcId = 242\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00c4ec4ec5\n\n# tcId = 243\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00c18f9c19\n\n# tcId = 244\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00a08ad8f3\n\n# tcId = 245\n# edge ca", "se for Montgomery reduction\nresult = valid\nvalue = 00fcfcfcfd\n\n# tcId = 246\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00c71c71c7\n\n# tcId = 247\n# edge case for Montgomery reduction\nresult = valid\nvalue = 3d70a3d7\n\n# tcId = 248\n# edge case for Montgomery reduction\nresult = valid\nvalue = 3ef368eb\n\n# tcId = 249\n# edge case for Montgomery reduction\nresult = valid\nvalue = 69d0369d\n\n# tcId = 250\n# edge case for Montgomery reduction\nresult = valid\nvalue = 51b3bea3677d46cf\n\n# tcId = 251\n# edge case for Montgomery reduction\nresult = valid\nvalue = 7e3f1f8fc7e3f1f9\n\n# tcId = 252\n# edge case for Montgomery reduction\nresult = valid\nvalue = 43fa36f5e02e4851\n\n# tcId = 253\n# edge case for Montgomery reduction\nresult = valid\nvalue = 3454dca410f8ed9d\n\n# tcId = 254\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00c5b3f5dc83cd4e93\n\n# tcId = 255\n# edge case for Montgomery reduction\nresult = valid\nvalue = 593f69b02593f69b\n\n# tcId = 256\n# edge case for Montgomery reduction\nresult = valid\nvalue = 008f6ec07432d63dbb\n\n# tcId = 257\n# edge case for Montgomery reduction\nresult = valid\nvalue = 101767dce434a9b1\n\n# tcId = 258\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00fafafafafafafafafafafafafafafafb\n\n# tcId = 259\n# edge case for Montgomery reduction\nresult = valid\nvalue = 0c934ff1a0c934ff1a0c934ff1a0c935\n\n# tcId = 260\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00d2f87ebfcaa1c5a0f02806abc74be1fb\n\n# tcId = 261\n# edge case for Montgomery reduction\nresult = valid\nvalue = 7880d53da3d15a842a343316c494d305\n\n# tcId = 262\n# edge case for Montgomery reduction\nresult = valid\nvalue = 6a850096a850096a850096a850096a85\n\n# tcId = 263\n# edge case for Montgomery reduction\nresult = valid\nvalue = 0098dbdea62334302c77d10fbfc4b593eb\n\n# tcId = 264\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00df0041ff7c0107fdf0041ff7c0107fdf\n\n# tcId = 265\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00af8af8af8af8af8af8af8af8af8af8af8af8af8af8af8af8af8af8af8af8af8b\n\n# tcId = 266\n# edge case for Montgomery reduction\nresult = valid\nvalue = 7f26fe4dfc9bf937f26fe4dfc9bf937f26fe4dfc9bf937f26fe4dfc9bf937f27\n\n# tcId = 267\n# edge case for Montgomery reduction\nresult = valid\nvalue = 009b8f4f9e02732385830fec66e3d3e7809cc8e160c3fb19b8f4f9e02732385831\n\n# tcId = 268\n# edge case for Montgomery reduction\nresult = valid\nvalue = 64a9a50bc0a383524478973fdf4c22bf1b14f339bd92a6942f028e0d4911e25d\n\n# tcId = 269\n# edge case for Montgomery reduction\nresult = valid\nvalue = 7f95438b41e0500d578e97c3f5fe550e2d078140355e3a5f0fd7f95438b41e05\n\n# tcId = 270\n# edge case for Montgomery reduction\nresult = valid\nvalue = 5f1bbd6c9500cae5d85f1bbd6c9500cae5d85f1bbd6c9500cae5d85f1bbd6c95\n\n# tcId = 271\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00967300c9a633fcd967300c9a633fcd967300c9a633fcd967300c9a633fcd9673\n\n# tcId = 272\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00a305942530f7f11f9cd2c027abb32354eb8b77a1c8368c165094c3dfc47e734b\n\n# tcId = 273\n# negative of a prime\nresult = acceptable\nvalue = feff\nflags = NegativeOfPrime\n\n# tcId = 274\n# negative of a prime\nresult = acceptable\nvalue = ff3b13b13b\nflags = NegativeOfPrime\n\n# tcId = 275\n# negative of a prime\nresult = acceptable\nvalue = ff38e38e39\nflags = NegativeOfPrime\n\n# tcId = 276\n# negative of a prime\nresult = acceptable\nvalue = ae4c415c9882b931\nflags = NegativeOfPrime\n\n# tcId = 277\n# negative of a prime\nresult = acceptable\nvalue = a6c0964fda6c0965\nflags = NegativeOfPrime\n\n# tcId = 278\n# negative of a prime\nresult = acceptable\nvalue = ff05050505050505050505050505050505\nflags = NegativeOfPrime\n\n# tcId = 279\n# negative of a prime\nresult = acceptable\nvalue = ff20ffbe0083fef8020ffbe0083fef8021\nflags = NegativeOfPrime\n\n# tcId = 280\n# negative of a prime\nresult = acceptable\nvalue = ff5075075075075075075075075075075075075075075075075075075075075075\nflags = NegativeOfPrime\n\n", }; -static const size_t kLen279 = 26217; +static const size_t kLen284 = 26217; -static const char *kData279[] = { +static const char *kData284[] = { "# Imported from Wycheproof's rsa_oaep_2048_sha1_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 0747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb9]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e5]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001028201000747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb902818100fe3d238d376a3856d9592fd4961c17a7fb0fa39d442e9df22e7eda115c648c5cb738df89ea92d8378558d0d9c1cf3d8bff740d3743a0140a6a7523e9176c2953b2c11d7f44691cf8bec2b34fb59c649535983319488118c03118ae7445e70df466ce98671260f05d5068ce777da97e2ba84779490500ceb4ff7f62ceca9a147f02818100be814af26bf3c27115bc7595d0d12a1af7713feca877ae6e6d858825eda3d192704774f42e1ae1b67f1739e8c45a0476388070fa545b7cc96b8a44003bc8d07fde73f5bcdd18268395dcc2842b5023ff14b352382607b7179a5ea330840fc45045d86e0acc4feb135f0ab9b7ce6b8eb5f5a575f2a2a8de299c0d3f506df4879b02818061bb4cf4572e0cf44ddefc0503a34ef0b31142fb0c9fc2f5bb2be656302732d1dd590e8d6cd0002fefa1c1bf43c28fcd4668ed3fa64e5e05d700aaca4ac7b867455af924d83e73f5a7171f68efce6bd7f3df4b1d5802d069e935acb263c0bb5b8d3db3d64379624cecc12d453fd82cf9495a18649a78c1fd500e3f04715ba3af0281806649dbe920a7a8ceb982108cd9ab857527498aae52a2b86918ab6b381a4a2cbbf94794f78b4de9c5e8a59af56d807c06d23dbcebdca1a6f62ba4f8f03b298f32294a9036d16c2739de1cc3e0ddb4d12f2479487b57882afa246c0e297daf4d94607c5e51b3f4715f5c57d0f26d867901209db02010d0a541284640a9b9f0636302818039ec606f5c9f1f33d964606e128e9e90cff932772c5715aa759816d504efe2c46206f3379aa61d31f88e726b50dd80b8ce8558a0d7408525f58c3399ce32e239d70941f12d21e7761c043e0b02220d25ffd03571c7ae5bbd59c31f48120676f9d7c370a749d8491bdfcea01662a136c85d349b6c710fc6f6ebf8a7a79b62adc3]\n[sha = SHA-1]\n\n# tcId = 1\nct = ba366806e4ad50f76c0d8f63a84cc8c1045fbb2f9bef31da89214b2c8553e2d0126fb91e8ad9c78d1515c1593fcd589278369f83d8da3508beed573b2e8a2e61e09d9923476cf2d1cade862344a87c8e50d6600754089992851f44998be57109fe4f9a787fc13cba351f335df5f4cd656858a9d9b547438db4e0e81640618104fac10c0227733f85e041a322459c13ebcf4855fa69519ab94301561146830680e1616fcf4652d30dc6d0cd0aba397560d2a5b9556b42d42ee2088ef8793469d1142331a0b3018feb153999a2439349a709eecbf09568643f8e5d3389073eafd93d37544057e567c3a553269ea1b15a49388127532ab967860c0406a4b0cb3adc\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 8773fdde3f148ec33d4facdfba812e44001d90861c047a9eefe6c6540212795b50dd186bb7712b8448830fc1799e0543b7093e4770f301e9216922e80280e9b50582c669e3a9a4feb08ec6f5b2428dc7efbcf6fe49feb61fd2795af1c8b23acb605812c9d7586e4f48e4d758f0695b688d1b4b563067852b1ce9db5dc82aba29ab416178f616426e5d0caf3f9903de2a5beeb970af7281e7cdacaaa00662ae36fb0365c20c653b670b3e7be4b0680932f3254d48ec3505ca1547d1be27d2414a3539f405df91057f4f97aa7796d7ccb69ed553447131fbe79611756b7e564bba7d76ce9256168446b34498a2e91d9a955a8aa98a71a43d65ee60fcea39d811fe\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 504b4e0d94d800a9da92be8fa84fc345f7ab4921ec53c073c79592b347a692cce2450135e998e07bb75ed7ee44f047f75a07e37b9c912d3d529b62bef144952d5b202246ad32c5d34ec8559c4163e2145fa5fd4d56de28cbfe7e537d5732305945c9370bbc6dcd72b3296fd54a2660365715f7d911099c96dfe6d114eec7b4425cb65701aa9e08d99c7ac20179656bb678554d74baca4501b5d0b366c97224bf0c8734e00ff2af8b916aef8b83142d5ec142493e0cc4c57326515a50a31ec2c6703512034642e5789649773d2f8312561bf2f2f6000cebdbf7c7a95fbfd0f721c31ba392acea37568a24f176767f71b31f407573deef95c305e0e063db0e9168\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 25a918a0c7985a72f18f6b6216d0e2d19a9b42a4d5b680e995c3c5c584966e29c6179877cfd0317f9e4dcdc87f76714994e4407cd868842350e28f328b3f33746a897ea9995575f328be7f9912369482ae1a66ff5b7a1c8ac8fd4e5771e58077b54a55db6c6849ff288d50de0ee1e45bfdf81ffaed16971f19abae660338a3a9240a0b732984fadcd28a85c680f0dac8b73306481a096f700706e91f7c100ce64e1c6bbabd419807dc167f1f924edc6f44a69b75a7c72989b25ce35480433bc456c6afa93a0e9b4156d75863f9440ae442eefd213b8a3f53a065daa8cd0206886d1544c3bfecaf62659cfa591da5e920d7d4370a9aabf7f9983fade101da2dba\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = a2550a9850903f3142bc1b1b54e45d7754e75ff0d39a8ae813b51eb8165be08a4c0366b93c803ef161650f8cb966f7dd4648f40363dd0cc37595e43756078955ef02e415b3e0efd5f9744d564eae763e307e893002dd1a9d0ba2997fe6658f3689fef4f4f21e7a972c0dc642993ff6612c6e6b43f9ce53674919abbc13e42772beb8c3f3f655df9dc9839e075e01beb9b93d8e016f57afc9a0207d9189b4bcb14ba6459ff5fdd5f2fed5260ac9a7a092feca20af0f23a00d8b990c074ca23d964e19e49c17c970bc972b70fda2b6c6e99e4e7ff11902ea7126257fd1964e7da07fbf413c8becb48729fbd861ddcc3fa6c3df2355759ef1338d02551b7fc80a88\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 6f35b56ebd7e12d58cf2239b3c926d21d54222da0d1943bcd0c0e446bc9213526c63ce0736b11340754460036eeac885dacac617499a58c56a6df5de1e91db4e1befba0237f696d1b6a8447163b839ddf082a1c5f8c1315f7fbab45b2bd8011accd5b2b1e3d4f35315e998eef82f368a72728817f7369648b9b1959781449707a5a668a6f8eefe5624135ff8edcdf9594eb4db32f27b2a6f5f7c6406c2f2c7b818f859d9e379a76c17b4d1535db7404e77d611f6cf5b4d0205f885883186d603c7a9920934fb5886406a38013f7a1864d5074f89ddc164c9e13f5aa5e4eb13dfc3a53b153c56d9f6403bf2ac5dde9c42227201fe314984752b5b41ef0064acb0\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 3530605f43b5539c80398f856eea8d88984af4a6a08db3b9d4093cc80d1a313c0ebe727eb2c45cec2025eee60f385822c09f82e3bcedf66b79c2b34a4f41aa8885eca5b9891798d47914f947c76881dbfc3f21ec27a11dc926c647b6b2a7f3292ec4aa32e969bab49afe203ffd79b0c1ab5777a041fbe4e9e1a679fe2d82e9c267ee7fbe54e9e0def68d8bbacb1e53da99aec8ba9255d2ff6676dbcc58498a386dd8a6b3cf0222a9e14fd03313303bec9d0439ff0e8a5a09ce2926ebe86cafd00cd8ca761b88df9cf84f7b8e07cc5f655199ea81ea6407ec264b5971738967a2e977132dc589c72f8bb639a9429feb512d8d32c441f7e1ce6c6befa08140a090\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 4d0cb9e23ea2f25cd93f6a4a5b9189156178572214c2bbc773158ed82b83cdfe7ac1e96d662afd46a9225b9e8d1ded274e00048c058d4cb66cccf4eb6c4ebaf30b97e3ff17a21223cded8708524bf75e3dec075833dc953dfd9a1341072f1485c60018f92bd41cedd0510085d818a5cb4df32c447294f4245385e1e5c4627c41450c1dfd22f34f96514aed1565976735e321c266300de6b93dd93e4db4e521b1a269947cb79bccd472cd40e3fd", "430726723cb97bca50e610bd81daed31fc164c18ef378f68e405ee6d978f97cc042dd266c90b909ba52128824fea7f4496ad56e03fa4aeb528d2fd3d9bfae8295e1a5306b389654b1d7058890b5dbd6770ff5b\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 873c4ecb4858c60218b4ff5fe75ec216502367e0a8446fef2302da892816f127a8bedf7e2fff349be493857c4e363493b28f90365eae44323a933eae25701d84024c84e09b9163de0dc7ba2d44f97c29af5b9422c417bb241a2fd326efd9aed2dcd7cea55bb16b9571647eaece0a0ca71f7da7decfbc588cafa8beacf0b286e143ff77f05407388b72c89c6a4be35d074083e2a128fda53ba7d3363c0d261430667770fd7b42032a4d9764fa86dd4834eba3864acf3e0c230fd03581292562151faa1ed3f8433bc63472c425c382d7425b11c97969b1fd0fa0b014d47d87af919de6df72ba52be888e44de4fa63c215ea80fc61072a320a24e99c6a247880c9a\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 91de22e76714eff612a41318303dc5aaf154dc5e4b79df8495b5acba18a27be6dd454f2c39494aa18d1911aabf38bbad0460922404c6e2c08ac3abfdcdb963623f1c1c07eb2096dff7064d3c55c6221773e4b2a80adaeb210532ec76a3c92832b0aaf7da03cfb60303e0116cb6cdead2b7371cbfaebbf3e511503b9b8bcd54c13c035a44368fba19dfb8735c6117a3edcbe9939afabd7204b6542c77d31a6a244b10481211ec99e45231203720043fe89a57c7a612b3588b12166c55edec13b8265a2c091dd859d4f34eb66ead8b583fd1f0f0ec739b92e7618c1abe1e3e9219fc43f628fe89ccdf2cabc07ffcc5c485c4cadbbbeb02efd8394f4db0b72d81d8\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 8654643090ce426118dcce2bb0fca3b2a4ed45589d73ae2f5683334f17ca5b9f41eb97ff566cbbc0171d8962fcca465f66f4cf14d0114d7768bbac1dfb726d91331670e0e88ce7286e1f0ee7acd5cd75e0d325adc9f47ff02820544770ecf46f381ff330a5c75978e8d248cc12f0752cc7c452265ae919f5a4dd7c20023fbf51d0b413afe09f746114d16d1be499c98d270e9213a37a2a745a3bb216bd30a07d110558090f4fe73debea009e18eb3770eeddd7150b4c7231539f7232d837836490c9547e27dac00efb5a8ccdf9a7c3c1d29c035170a517db899ee61925cc7a2cd278cf576ebe8281bd3a4f2665f15dd0b2e61bcd65172c2fff50a86a2adbf2f1\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 7866ab0f81437de93442325f02f86a305c4a4a0871207ff3203746c26a43fff5979e68c74264c34dad13955a32785ec1523fccb264957ed6f6b822b5c052b9161d6b75adde451c6f8d637a75dffc9b9a9103934e777cef41b7966bf730a648e5b96aa587936d460124dcec515b55473a009844f19cb2794bd739557d25417e2c036762a921481d728b4d32a8015b17539b7cc2a16a2b33e43b85561a2119fb6c9d8ed42d6bec324281be79e2f79426c653f8445a20cce87a2c263e7933b8ef3fa0b9f9f38fd115fde459e5d32eee2412c0af06d2f6454e04ba060ea87c5aa0d4b365f24b4f05bb27c4aa42061a45cdcef1a39118018b875dfb9f904fda4d80fb\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 55fe2f0fdbe16bc284545cf2be83d2a92a526f52e33e7b116b265859f14433fdf3ae92e10b3a906ac95a4541c42eb80b3aa963e5d9dc4d3414bb5f378cfb3d50af10e9e84fe0e31c98e091643ee99fda65a2a8802f9fba68492beab9e606501b8e82a3d830175137617ae0352bc790b4ecfb76fc126c34fc600f5f09b58f3915155d3ae4820d91904cb92b61fe9193d150d4f0b6bbbaba2692eaff15d2a0f01d0bfb81228462954f404ae06350a24469381047a62e281d2bfa798a3fe19ab0c808de18ebaea11941e6325c04927e0af3499043a42705cfece04a60b6ed8c280869787a4f3d484218f09f0b266efc3a5b442098c82cdf809820cf3b8e7f6ebb8c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 930eeedfc0e94791a2118b228c4e1522ab52f5fbe53373d9c11b4d1b2595b121780f4312a4f834614df0c31425483dd845279b08fc0f1081dafcf51f32958505960e2eb9b9672c9a72a12fb45a25df678009542a171ef8d7f07b11fbe52db47957ce38d9242852a228a4ea864c36d14d58bf41d2a1151b8c18cad777c9a6f8542b2f3c9c84990a461df613f36a0461658b98ba193e6e6b14765021d0272536c044d8820bc3a5da2404f11a35c632b8c0f9ee8f5f3cf6c77934a7b03750031d6d7cd99623c484c5c244ddc07559ea756886d235844d9c6ba4aa24fab14e9c4ed01bac85d332869a8ba8c05ca7a074409e8231ae38c0e1bb98412fdf124f3ffa9f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = bbf27bdc6311952dcf7bb31459ad6f97e09d5948c7d21226c656121aaaf3ac28118efc49e379eabad3ab4b576b494cf438d0e210b8cbe6067a07ca78af7df1547ef9accb15c5c2601c2a020780cb14757201bfab58bb85ef5642d9b5b97ab768f285eb2012f1ed8f7bbd2bc4ac2b9eddbd656dc7477e800e95924827ba6d4f5bfae058e34150dc676e91cec780528d6bdb9d39c4af4005035ef45afeced57ca8f2817b5fcec969a6afa2e0df7cfe5b818bbdda76d7b760454f682d553f6976562f7f529ed8319cbc98bcc759db0c5f3c7c47557092bb3e0d3b208ab6fdfe75dd5c081ff4fcdb08556e78877623fdc4be029933bb659fd3677d62bcb5d8d37818\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 0fe6fcde58648f13ebd5f0ccbd68458da8ae18dfbe82238d2fb90eb42b743dcbe7b12b33f77e31ca85eaf694dcc1159c2fd4778fce93ceca25f5123aa63ad8ddbf776400d489d8d3d46665c9d22b4382d468881b7aa30c97cc6068a9031a100cd4b035426932c488a6396de7bf42bdfc8da04af6ceaa7836752feccfbe5295a757dfcc25c8e8c5cfe122bcb764f0660528e162c3205e0a6b9f8d399f50529005467f56ea70c0182c9d679d13dbb0e1ea24b84709c1681418cd174f4467f943cd5a1802bd0ac666dabac72bb3be4d3ab9874b23c4c394f3287075c60454daad062f2e5b81bfb14222c97caef742482c6729c9b44de880e07668b59a93d8e27d17\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 0a182cc23064e7b1d11ff906ed40842213938431906395ac4995b9e8e56fa3835e9fc4c4ca81d5cd0e14814bf16de6e07ddd949b43522387e8f543672dc965976229da3e791efccf4a4d28c3d5cc8c32f7216e89400794c495a54d2b38f72e30570b43b58c657471fb9b6be7a999807976263cc259c06df51e632beecd7372e2d0ffa17f79d029dba8cf00611caa9e05bdc0ef87d9a2f5f02e4732aac5bdbf1d754e2263a209a9b211a1a8712a2b9a8dbf676fb7bf130c505ec1972e4c5c4baef2e33c955e63d55cecb818f9c85dfb1fa54207a406f153ce77d946c60c4faa289d955d73a8c64f5d4dbc2fac3b4741eff3b3fc205e1bdaf7fabd738d01eaa404\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = affb9604fa25ac904e054b0401d51c566c7556c965088e81bb0181dc16532b5c5800117eaee491c1dcfebb184ca00ccfb3a934a4e3efd42a2249ef6d4a1df93af90db0d135a000c97fc1092e85cca90770e4b3583baa654cd127b5ef7549d7d7a4dab1ccb16b7fb0b0eaa6ae401e023efa97ef61a136554d013c61934cb9996db2cbac0a4b68651285ef3421ae2276c7e65dc81d8e3089c15e36e2bcd8f42926daa907f56e5fa4d6a8f3891e71b4f80a15798a94bb64aa68e295bb0d1f6669ea761de0792fee6e0bff465e53b1447eff610b33d38eca86d9c66b542f579338fd944f6a116333dec3684e4c78aba1b1ec12e8e6712206f81701d30a3b43688d0b\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = a455a8536e5295ac29243e3f7bfd2f6ebf1aa7e3d1333c1bd9fe05b6ade3aa913b859dbd45ba093ae9b034f619f99a69eaa680ffb7be3ab38784648f6f31f858200992f95740ff2edb835f8fc03bb6785278ab9eae742d5966519fa9f584f0c3044136d04fe12104ec8a8bd07950334db8df8a83af843347a10974245c723fc85686240eefd0cce09d81a63c6f6a4d2b83d29ff9ad060129e5521da5e635dc05796ba540f1dad25b9423bda365202709e5e287a2b0d7b09a2ab6031447e1a2ae8efd9e980a29dff1458327edc0ad162670f80343d8490118856f396c72058227f57b9b0ba66b13c4e7117538bcda3e937dfe05d10a764c0ba1f5626478d4fc72\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 96982e222302818f506285642768615f426bdf9f3b4daf80ec5e3ea26cbbe7f5ab48cbdaca4ab0538bfdd91f7678101b61181806f48b2d6fe778d899804a888716a0c2c3a7078513b1cbaf1d096e6fdc83abc2fe40b6742709a2e51afd8e767aa4a72bb4554286140533e4bd5432010d6016d308d475eb2a40165d46dba630c11a183532f658bd538096c1877fc4d843d9d2d8cee570dadc9895cfe2372df9601fcd74399006466fb9ed923b7d9abbad9bc7de963e0eeac7bbd56f20e1c254ef722d523fa8f3bdb0b91b37202e11b4578a3252673e69ec05a05ea60913ea1b9e6228d9fa0c85ac6d794dfeccdf7595828b06df2bdc89fd8d22629fdfee205be7\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = ae11f45e24cffa8e4f37be34ec87852db77c2501", "c1274e23477c50d62313480ba2ac9de76b790a355b50c2f2ed2dd061cd860ff7932cadaa0e1565e43d4177ac98e26d964e81cfb7c20fba7e2b0853fdcc7deab75b62ef5f231ea29f10c83c2f27c9215b7d10d85443d967ce7fcd41b0de999d9f98a072dc80fb5857d47e4373c736bae728932733d0a071164b6d6dea3205e267bebc287d9b5035a76978dcc2f38946dddca48a6a6035557dd9e1aaec4344dbb457612eb27b9302e02ea0c9456984e70faf235aecd20cb32f3da016c9a8a8b23e07a06dfa57f5a25853944cbf538c864169566797a4346e52fcd2ea1489799109820cca4b6249502270dfb1f6\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 8ba65949d2a53d5a933abbdff1efb4b6861484dc230bca0c363a66202691bd39d94798664763d72f55edb37e8cc791b3904c42c4e1b75e4aaad312f5dc53a246f211d19e311a974c92ff8af0573dc831c51194e59c920ec3d6325f06b9c4bceaa6e55696b185163e73aac401fc1925cffcc7b80985bab727288d258a3c60f7d3d2d8ec80dcfe7547229183a19247e3ea10afcb0fb0c8e7c4c57bd5cfd5529abbd407f959f4b9c492411691da445fc5ff3ffdd11fcd20c2a2936d1373b55c2ee41a7b43c049b40cc55f7bc85e46b0d8464a3add0bf28a0d3ee46c12e6fd600f840ed65f11d590381fb9c6a80a46d64570eb4f6930ed24087e47aa12eca2a1329a\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = e2dae040ee2a2d4c4a0e620b5dd05b56df67f079884f0bbfb64a3eeff08fdaafdccc458b014d53f0574f9ec5514ef21524373c0408b2d67c11fdc812762812db75786693b66313ec08cd001d90787a1b4cee69d3a9f2cf9ab81503be8f205c701da8a39d70b1e8cc40f132b3bed46ed8f466cdee0d032955dacc5c373789f5d58886a3a5cff7c841a5b34789a3091a0f1903a2227ac24ccf0a2fc3739c92210afdf726d53e07692f3fb82f431f2779768766608111f6f4f9cfdf256d79c5ab13cf68e9d494b2c60fd5eeabdaf4b0c896fdc190db93c78c85671ed3ab6b48b7bef639dd19b4f224d0667f1fffc200019773ad09be3f58b1eb5a7cec3289ff8f9f\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 000025a918a0c7985a72f18f6b6216d0e2d19a9b42a4d5b680e995c3c5c584966e29c6179877cfd0317f9e4dcdc87f76714994e4407cd868842350e28f328b3f33746a897ea9995575f328be7f9912369482ae1a66ff5b7a1c8ac8fd4e5771e58077b54a55db6c6849ff288d50de0ee1e45bfdf81ffaed16971f19abae660338a3a9240a0b732984fadcd28a85c680f0dac8b73306481a096f700706e91f7c100ce64e1c6bbabd419807dc167f1f924edc6f44a69b75a7c72989b25ce35480433bc456c6afa93a0e9b4156d75863f9440ae442eefd213b8a3f53a065daa8cd0206886d1544c3bfecaf62659cfa591da5e920d7d4370a9aabf7f9983fade101da2dba\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 25a918a0c7985a72f18f6b6216d0e2d19a9b42a4d5b680e995c3c5c584966e29c6179877cfd0317f9e4dcdc87f76714994e4407cd868842350e28f328b3f33746a897ea9995575f328be7f9912369482ae1a66ff5b7a1c8ac8fd4e5771e58077b54a55db6c6849ff288d50de0ee1e45bfdf81ffaed16971f19abae660338a3a9240a0b732984fadcd28a85c680f0dac8b73306481a096f700706e91f7c100ce64e1c6bbabd419807dc167f1f924edc6f44a69b75a7c72989b25ce35480433bc456c6afa93a0e9b4156d75863f9440ae442eefd213b8a3f53a065daa8cd0206886d1544c3bfecaf62659cfa591da5e920d7d4370a9aabf7f9983fade101da2dba0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = a918a0c7985a72f18f6b6216d0e2d19a9b42a4d5b680e995c3c5c584966e29c6179877cfd0317f9e4dcdc87f76714994e4407cd868842350e28f328b3f33746a897ea9995575f328be7f9912369482ae1a66ff5b7a1c8ac8fd4e5771e58077b54a55db6c6849ff288d50de0ee1e45bfdf81ffaed16971f19abae660338a3a9240a0b732984fadcd28a85c680f0dac8b73306481a096f700706e91f7c100ce64e1c6bbabd419807dc167f1f924edc6f44a69b75a7c72989b25ce35480433bc456c6afa93a0e9b4156d75863f9440ae442eefd213b8a3f53a065daa8cd0206886d1544c3bfecaf62659cfa591da5e920d7d4370a9aabf7f9983fade101da2dba\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 31\n# em represents a small integer\nct = 092d5b4bea487029a4c06c97f727f6ad4531f7f646c95cd269e1e606a7e047c19a6a9eca8fa5abcbbca415477420ba422a7d5ba41ac79ba7548aa6f4b44aa65ad915ec11d7f50cd2ad7eac86869bf88bd7cbd11439aec354a25be71d36541e7ef211ae010d8259ac7b5af49e38e14d87b62a3e7840316799b548f14339cf7b46ccffd66e596b0879782f8638b975a89edc2b2355f05c53845078502d046b7f4371bdf911e30302fa980fefb439737333fa9c179c33a98e1b052da7da2436e8b862ee5f7c63c88ab751a244705c8bd1f32c277e0a7c80ef302bd01c9fd50c9b7b6395044c72461dc69aea549e37858b8b53b2792238f59445684e551e52e08750\nlabel = 610c549ce717749d3143cbd96c51c1c75885a5d200000000\nmsg = 32fdd5b5319188914afbe21b1fa91bc4e484ecd1f9968231879e372570c43a27f720e6773e1d905b70f85a312347f7e9752a8c4f5b9f27bd01530b6efeb221dddc723cd51b4bc4814992268c403ed4fdddd526efa87d835069246f25e8098dd5ae3e463fd639b36a4c139476b3d29ae0c9b6c163d81e7719cc85e65289bdde2f82b69bb4aa9c5a5dcd513421a54e5d4638d8c23567c12978c3aa806ba7964a547a689360105fc1b2468fa1480204d468ba2fe41ce9302328d4279e00a9af1c7cdd9f16d572e70b06f1f40acfd50c8865ef37d888b2fb\nresult = valid\nflags = Constructed\n\n# tcId = 32\n# em has a large hamming weight\nct = 58a4e190a7306bcb33ea5f1ad83b74da56e3debd2b2fb4499ea9339379b0f08117c77b4d5ca6dd1ad51a4cea4b818c270344980077674c8bf6e8a5ce5ab6212ddcabcd53be82672f19d535debf66bf853538d163b6128468fa21bd4464e84fbfa92501ad51bb1bf7e14ff522ecfd65a29e08ef23aae01218d7635915f8372055e0c6a2ed1de61511484bd6c32286a23a9eb2f1999708e8ed5e28516874241eb778713a845241151a946c509c07e4d27c167b7b5ef6f7a4f1fadf9049996eab17d97ef4d22550649060692af63fd06d05c76f3191689158323605582696729db7d94f730e5107d0d585cea56160968a887ab42bee7fd4f9ffd1449f021a3d41ab\nlabel = a0a0b480327073f080fc1efd8cf5be9bfcefd3a000000000\nmsg = f032ef2759de946b6ccf829695a9438e5f986fdbbf333262a795ff9ede842bb7b153c526abd1ea498f56e992bd21558c7c3b6434e4c667ccd16687eddc199bbaa59547e065a8a3814cd5ea46d7437c1d6bdd8f1a72ee5e945a2b1f11da2049a685ddb525da742260a20ce52f95755b8d7b5d29dfe7f55395c6203c518d5f45ae7435fbc19efb7fa9d2e1626cd655d409e35fdc4e8b5773965d9db726afa40a73cb212b60678bbc7a0417b94d97e03c273c8ee2ec49f23f57576ab3bce568fa2a1080f0f036e6971eba8a773b405ba2c5ba6564a4289a\nresult = valid\nflags = Constructed\n\n# tcId = 33\n# em has a large hamming weight\nct = 526352ba3b50ba160f05b9b7604abd508e744e176f99f5ed5fa47869dbf220f32fa43f7942a8951a75505a5800f8f49233d57778ea9dd5220bbecef15d38dd7400ba81ff4cd5085d2d20af7ce79f097ec08ce2a8dbab4482675ff08bda80c74078a44cd89af547a356cd21bb4be52a0cc5dad5bc779b54fbad60d15f10ca79d25e82f19d9dbfff7ecc1cccd8374582bef1d4bc3fa745259dcaecc56b8f162f7d4063aa2c99ed8f418f2aa5658df7d1f36041883b4484ac6766b059948960fa2e40363c6c56242396809f4b036fd91d46de8eb053c8cb0297784120264c6ac7e359f4ad5ec65a002644c03cfc166a8e5a019b8236c7", "d7145df247cd123a09c8c2\nlabel = bba0b480327073f080fc1efd8cf5be9bfcefd3a000000000\nmsg = a472bbae5a81e6500afc183d8bd1ceec795f4907c496830bff4a9f3b15f1768724cec8d288d1d11f47529538cdf93f769917afd65d033d4f563cc14f6dd39a8e7e03afde9eb374b9177f5bed74ebcbf771f630a1b3075d0a308ce65424386304396e824528deed8a2ac7a387f7a3eec3b633882c92e9c33eba9a91f9297dd6aeef37a5d475d10fe69e0b1264fc2ea1cb45ab4f1c6908cedac276183adee1f60da7cc1a105ed5ef187c2b11748e98c8a93af9683d441a3088cb0aa669b06db151e7151371d0273e2ecb161c8fa69d4e56666681c6439b\nresult = valid\nflags = Constructed\n\n# tcId = 34\n# em has a large hamming weight\nct = 6ab92b1c57f99c17ae4ca5f7d4c0149eb24cb18aaf36163859e1186dcbafeeda4d77fd059b0f938e92b8d413b771852fb019a66d76009444605edd5fb48e6eebbd9d01827be732292cb07cde541dce138990d46599b5a196525af199ad4adf7c259109e715e563d8974cbbeae62a53c8137076f10731a964f2ce37305a175d35eb7c8e6e72c9792631d35133dcd49f1a1da677ab3ac074172778402a4176c036cd8ac5674770f171d9134585a115f6a0983d606b748e0e47be040acda88cc5b8c7eadd33162117bb61f49cace91260c5e2c8ef4dbcec7f156a18894a2bed9956520b2b681b2fa31347df7ea98062d97f2972280be22e507249b2436a9ab91689\nlabel = 7fa0b480327073f080fc1efd8cf5be9bfcefd3a000000000\nmsg = 6d5c2cb5790875728fb21e987278fdd1d881cf4953e62866f8d53ebb067cf9a4ef53218030e3eca6732a6b1f789cdf3cc711b6063a01f424b388905549663769dcdcbdd82deb6bc23f66c1c04d30c6d91fd6116bdf8802c150fed396562edd21ca606528cd40b569e895c8ad5bd1bd5848a215501537dccbd0fcd70cf3b2d0df58a072e07f60ff764c4688c37240863242f6eafe36601dfcda41eb863f4db701de54781a6d53a97932d32aae0e6a526048f766902128b4842068fad9ab10811ce93339ad42f2e13c4cec324a8cf7035705b8a36fd8a7\nresult = valid\nflags = Constructed\n\n", }; -static const size_t kLen280 = 21242; +static const size_t kLen285 = 21242; -static const char *kData280[] = { +static const char *kData285[] = { "# Imported from Wycheproof's rsa_oaep_2048_sha224_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 56d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f502030100010282010056d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a102818100ea6010a0017d4073198610d0e761f286e3a1133eeed71b4fd4dfb0d8b52e1e1d8ffc58d9c10396629952eb002369b22bb9c3313c80330c1f3ab7a3fcf8d0fbf5a1c0fb7936ef20d51373b21bea72fcb7f70275ac41d97b566b71f727a32f0006de15e7f9bccfcc3224106f6b1ae62d59380065a48ef7bd015ee6dabae0f9d78902818100d52ed808d74a79b3ab515b4f2fe7b41027472c3785eb25587ae31d3500bf3c6ef20c427e223efa4f2911cd38cfc4479f28ae495fe3e88e94c236c0bc1323d71027aba290669ffbd7e0fbb6f615df1c9e4fe5abb5a90d4d0b6d1dea0ae2b249e6a5102092c998b60dd920d09a2e6ecf2a611793016bc0c92de3b9d92744bc070d02818100cb64f6c884c257ae0b56673d83af62b360d3a64a1527a3d211e0d62e1a7d9d30f6857dedeb2cdbd3514fbe14eea689329d1121a76971e3712e99b3bc9389793edf5304695b1d0697233c62330bb12253dc0ecc63e2f983a9a9b0cb5620ad670e8ea8e019c09b6c8f8ef09c608c85789156a231932f671b251760ac2d45944c5102818100b616befc3e3824dfac535f74b1ec6d46e6e5ca04dae4510fd4572d595a7bfdf89dd28ef101fb5cfe448c2a087e9e9eb6799ef4996d27f4b1677a3101f42f46c14bc134a7b6a0ac1266df5a15b3f4d0930097a22516727ffe64838aa7259f37b44405146d8cb85db8525fcf0e02df2f2079b21324c18ef7c7b49dc7b7dce3e5f902818040fbda2e571060971cc6aea0c1cc82beab4fa0361de43a55bd2b399f25ed89e33c48983f409d9f27292770d5c0ac1b31adf766045e60d67b89957c81c0f3b7706c3e1418926bfecba0242ba54ed95ae1bc73b67ddb1e3f4161380cbbf1db7d3dbef852ebb38063bc2544c9c29f47f416f14eb1ea3cf2bab933d21c2c091293ce]\n[sha = SHA-224]\n\n# tcId = 1\nct = 03aea385d1f1321eeac78684a79ea101f54adae40474a54c8e574e1ae3871634050e5b596461730c345cfc93224deb7a26ae40f30a0497d7c6f0e141e9657b84bf9e20606fa7fe6e1c921d8de5032ad8ecc37b7c3247a56b3992c7c63dfc3fe2f22d7c4904fbddc371f560fef052f3ed89202bcc5f92f5a7fced461f984406554eadb85ab7d2bd7fc576d333b8876f82860c94aabb705e34e5f385cc2d7acfc5463a0135a15ed3c417789e0b8873d5fa0241c9a0d9894f617cf55c11fc45a47b3fcc04fa5b57e9e188addcf259a0f8051f254b6a57c2af22cbd4eb2c411e229045efbb577da4f480989d173a2fa367af721088547a8a219ff2466561eaa877e1\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 5d19107e5f9422dd3d9e2207ca637f7347454c338c3191ef2eb5687a49f6570f723aab7ebbd78abba840942e74aea052dc24792c9eef1d72c148733c19776216431f917b81a9a80ff4b1883daba20dc6c368c525a2105550715a374583b56f9030df876d67b229fba732369113585166e41f8b5bb7735afc50970396f47921cb2d6c8bdedd5ff1f0411c804e412c2523da5354a0232a46bf9268402fb952f0ca00d04bfc4504c2ecd9772001b2d77be4731e131f90b46e0d0f51a6f7d787d95f01ce64f78b0c4759db1e4546857658b4bb899cb2e024d15b8bd14d0f2fd02a4001be3b6ab35ac589a83234d8d906750dec3e509332ca081969b26a1dd0ac7614\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 00d7ab45e49e37e0d73d9ec5d477985b51d9e1b7b9eb67a8e0224f49d8a3432c0dd8df02b5dbe8962b8a3d749d71e56c7871c0b4137d98de5b77d5f94bb448e124b57b2af9c24004bb693baf2d9f54fefe770f6f320cbe73c0405276b09b1d0627b3018787a3b27e09aa0b3ce50a79f946fc45746de72a93554b993936d3a41bf90bd9f2913f5580c8c1c1b853271286dacf275280faa981c78dfefcd4dd09b6f09bd5dde3ec11b02eb4538e43fbae835e40f903c81744797f04f5a38409a502f3a7eb9447a342dccd82fb192601d40f57192255f751f102e14fedc7e7aa81c770c6b72dcb853366b7a18fb11b8e3b3ee218e59f2dd74feba1bb6e06a87405d7\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 942fc136ac976cfc686ed13a38314c9c8b570a4afa2b18ae0a3cc39173a1430c1cab8893d530d4bfbf98251035d1fc18d18d905ac86792a1f597c08de11d9e2487dd78900a0bf79239f75e155eb0fc6d151cd7acd4664ac606c396494969422c6a321e12fe747a3b0601afaa43a0d9c08c776a7bacd68ca04b3b5dd9e8c9dee6773cfe652b923ff9d4e82d353113fd7e0264189556b1f28011dabf2fed6beb47498af5a6a8b0b1ac9640e5acb53ebb90bf29b7783a01ad6b4f4595e067711a49f8f1cf00443292251d2c0551f89e4271140b03681e8f4fdfe62e588f565c2e5288b3b14a488f14751b5a493290dd9365a48ea33011ffadbd2b898bec921bb1ba\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 36deb3f715d91d4f2c5a21a028f87b227dafedb7c0e064712dad36c276fc15bea7d0d3671b115323849ecf52e6326e5f2b205033177410eddd8e29fb06a1b93e99ff62ac8f7dbb973345947de615e9a8da910b5c810732985c3020d93e7485c69801b7ed49433ad66a0708f26d51c0fbd1c73cafc4c89f50a20a09369db4d065e9cd7845be623e86f497a0c3e9485701f18006b8130210cf09c69dcab7ec0e3c166fbbc5cc78c89dbd0cdaf7219b03dc580b4b8f7497c1f9f36d1c61e1609be1f67b892871ded426121c5f83e38d39127c7b574157e2f4ca589efe094c3472348bad8ec5b07b4a2f3f68d4176b6f381930ef377c640ae8491b5bc3249a5296fb\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 39f8f5ee290e93d4a36b96aa94a3bb7edb33c0fb6565ca6a99fe2434222be6b6846af4daa933bc6ecb62e963d2e107f51bba8a92ea5a4e6490402102dd378a55c0ee2224e77395e27bf28a216c6f929db2c2c95721d1448160e888aa93251c966858535146a70188d87443416101e530cef68a1781f10368ceb43c287c73cd8c44592c56bd8f2bd501284c3118fa0f0402b42ca7c4ea3a917afe71ea82df1655a39c650ea6adc9d73e789970d9b3bbe3f34d0fc4dc5fd51529cd328a62dee0c30eafbaf7dd51de3c31090833024124741966bc8722a157a8e71ed60bb3ef4704ebfabeba4ef67edfc5a120a0ee3316797e0e6a9ddb4d3bc7dcc9f4c262fe022d\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = b798998999f0e4318470e72841a57733c842f174121247fbf3e59e7724bfd9501425234f8616d288f0dc8206c727aba50c13016d4be6f3bb64bed9dc5122b94522b8987a9db93403975302ef6fd585cad02556a735ffc5332d362272a07c1ddde4484639ab767e39881fa1c0077aed9e8ea4f6349f59940953c956f52065fde0a97624d0840fa610a46dcbdd12b8ea3c56c5873e9fb3f58e43ac719d50c75b434b01fd7f65c7eabd5a71f305561088ffd2fa7bb8698d16455a81d233a4dcc4c1f12280bae89741ac47885552d21b37523ffa8901a2256b3f7fd410b6d842a786ce2cd6ab81a7596ce5479eee98aa3836a22ee8307888d9365a962f2746b01430\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 2860d0785fcecef5d43ea029d6ef89b978b25b091a2bb64ee1b95da7dd257ed644a5e4ae1437bb20840715895adc9b2dfaaa1a427ab35d6380c0a6840c022a2fa1eff9b6de19568cf8276ce549365c768a0ee6d84c4c4f4c582ed93c297e83507c8495b3951279b274215cbae88de81447ff5d5d9421fb025a821a934d0103b9efa6d36067cfd394751251ccf4418e32c283ace982f8ee86635b9489aa2e756ccf6d2773a4c8613b89", "9b7764c319153762a9ad14352538507d36f70f56e47c74e2786b8197ad42e2380324ba8cfc80d354eb4487e3642dba175cdcd8382f074e170e326f2cdce0cbdc3831aae1e1abb87756e503520b87a18eff17fca24fe20c\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = a13447bed3796370d356bca37fe2ce27d19022301007dcaafa7162de0897698bf706c3c4594107e9a3585091178a25f458aed6e63eda039b1ab89704757d80a94751ee21c1fb672ca1a8f448fe8d959ec226867bb13dedd1b870986a9e7fec6893fd2d8d533ff13e60b7d61303e123d1f50b7301ac9dbce4480cb3d334b72e048f8740a5b9739bd07beef64265dcd6576dbbc956095aa586a1f22962dc96a00baf953faf836dce03568f3bea85696b074c9e1180dc2f801efe48a47e0735195944891a866d3e2cd1edb8333bf5164b94e618b1204af410644d966fab0e49b23efb23ee2038dfa88bf231ed1deab19346c4833f17ead5f1a2f15d695eef4e14df\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 19dc98b0bd6a47a1d0cf9c9584bae53837bc666029ba6478152d23cfd36e72f1c686543a5836a6420c5f2c984c6c025cd26ec5c6a74ca4e0eb87ea26ad2ee94365c3a6ad0928f9bc9f560bef8b2830374707f7dbba0a938b230f8a42de6645fe765422810eceaa713e8f78e0fbe48b70bc636e21030a89b80118fd4bc066e4d5400529e9c2f8984bbd5800168d72329bfe0d86ac71d3b3d7aa749b1d860afc9b49dac1ee8fd12b73ffa7c095c610df9d502e80c8108b6c944eddca8162666b7955d061231a95698c4c8470217ef9c47ad1003c80f032d95b7a29f459d7ddff205a9b02513f977fdb72b148869527539c0f21a4d749a0301a2fc686e12a2aa6cc\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 94ad881563060d9ac62c32f57f9cf08c57ec10bcf77b35a67ce89da68cf8569e2e6891ed966ab988e68a0e6e44b389a57e2ceccf4e7e32d6bb73be98db72bf363d0da8a20d063e9be5d9f4c62e718004132c9cf876ef58b07c122f02691896df3deac296dbf3e1f6841d02572b6e297d2f0c8a54cc4088fc9bbc0f67f9de75dbdf81cd48e2f45b3b9ff2bdd3ac749d4f43866ecea7483e810cd3c332f055cea1525f263c54e5ca3e1e049af11850bc836e6064cda5cf9204e9cba0857b1fcd65654e30b062e980150d541027a212ecda6985f7e93a0f799679a7c36918aa39de158e0fd52c5cdde046fe6e4ee67f20ccdec1c4d328098c09e6b2fe4251586b67\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = bdcbfb51335812a53e7db2c1b73ed5585fd7899936adb790f4b10327ee075714e21e7df55bddc6888adce032ffe1935d37178adb4dbff608eb5f4cf9e29bc32554358a829ad0b84b1cde5da1018440fa31f60ca72407f5604ea216a139c34034705d295bad65cb9fade9951e17d1ee85f4a46dd4ce81bc878daeddd800d0296eaa90345dcfd83f6dff5cb3ed87c7a8b5985b2ccd7f925b67d39920438b66c1ae1c1321fea7a8a90023f57cd97a50081c42d012de9ba5b98a1aec7da9929cf783def9efdafeaa8d9302da9fd44ec252cb5a97d5dd4fc6f68daddaa9d0f431b7968386df1a514f407f1342e33b996ee9c4b5af934f1aa2fe1e1ad485438d497afd\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 61b8f5873124a6ec36f1ae35081f79e17516362e8e7c5ddf3f44af7070808411db7182a3c82b70cb4c0510aac537a817c6087b907627cdccfcec4cd4b0a901f8aa2ef75e797457cc6f5a0effaaa9b6c542726eb45e9b27e3040d9dd283cb92f1514d93f00f9ea8f40170fb26129d82f169d5e3d9e4d57a38eac39a5aa5dc7fbece162c2f0f13fc095894f323cef093eaa2f000507fbe9d2fa22078bf824b9df7b894ec9705c16e9dd43d2c98f11594e04cf120666c72c8192658e94b02ac89876d51173bfe282c90ff93a5a68d1136e2ebc98fbaf956f28c71df44975fc6376003e713dc5d89ef08658a4d3686a198a4d140259e213f9fbcf5471afb3e0bdfae\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 4fd0d013bedc7ec38e1cb2bb2c234bec4a91733c1363f1dcb7ca47b6d4c8cbd56d7d75255efb3d5fee9f0c1bc5f00560f14ec1947274287153f8db015df8f4f4db9e9d0d9cef10302cac8cfeb72e04feb612ddb2bf4d58a50e19d77027457cbcc158dbcc845ad48b13d710ba1156a9d8f50a27da1e09f0c449e4571a359b4bd9555dad9f5b9354d6ebcf31171704315f6daff2a50b9807dfbfd94264680f44e146039216d83821e27c7933cfe13efb6b0f3912c51dad42bf433d89ccf52a7de04b59931665ed7ca91c7b9b9ce9da70c47c5e91f55cfc6f97c88ce230dadc2222e25f8d25f6f669762bc05e3888b9a05bfc03ea32cc43df08c84219d5c75d7283\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = bd6952203734e2d690c1468c7707b6976f802e82d79a786b40e64275d563b36f1e91bc99853eb3c194d265509b8011ca2d553f6fbbe7a0d6cbb1de6a61dc2b4f6f89344b3033f41e0b302eb626f800c4cf316dbed56580210f951535656605ff142fb8f4e116663b17e0cf8725de29c385737660b4e04c0b710726a70c39d5c417c12a653c3be05031958b1a14befdf95c582e677daa8364fb5ab08cc7d9aa59e02792c44867f68daef5eac69d81200d8dc12dc34be80bece0b80cb16b40a6317ce24ee21e8c082af1598bc4f590459cbf469ddfa4130118fd4686ebb636de9fa41216c24885726d53ebfe50bdb41fd93ae97b079fae913694543339e5cb3ec7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 916331689c162246baef783597f0448e34dc5d358b7f00fa47d5549f4fb52c7607c3a3d571b0930705ea61da60d59e96f9b4cb9fa6aac7fc737cbf6615c98b4f8ecd4a0c27878f469edba1bfc1108b104f73d90f089621ba85a938714818efa68c0483359e014c69c84209e1560b8692b8ac90e6164796cd1bc0578805d9e7318bbf08345835c67397eddc2d326468f594b2d4ddaaf8c67f5dfd998eab7c2fecb6a9ce63bde38cf23e0b0f252dbe964647da61dd054d10c5ea82abf730b0ef1722f98aeb15dda842a099501246700dc37d696177f52345c7a8be7bf55d0fb0f134731fc138ece8feee540bfc0da05edb375a1c0035e6fb0168a6424cf25bec5f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 7d9133d56002b70d758be84c5765c01ada73449ad76776d0dd6995062b5707c6033cc93a3d3056d5cb576d5c8ef6e65f8f3aa2555a454a953c405e5163bf2b0e7f6fbbc9dcd210430862ad22628dc2529179eaaa047f2f87a5f5831a36b604a117908a2170497c218db30110812da89559c5ebaea9281429172088558b7754624f1dd71cff3eacaac9e71df7e4404129cc1b7a1d77c5d34167a3ac4214a74e11d154e1ad42c4d12e9ea32c40bf3d92b356ca5cff7ca65c5cab2298b2899c00fe15bc31996038b577f50204d0def12c900bbdbff4f7ddca011437e01ec923ef76144f097c6951c0606c18bb200c700f451529594512d4ec4c55980c7c0aade461\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 8dabf24844e59cba5ce1ab2a32862c6357c465475b98cfd54c5dbd07017e0ba9215aeddd2dde36d2db9891661e6a8a9ca5bf9676ed193047dbd140875f312fee28db4ffc433dd8edec1fd8c342faaf36ee398f8aed0108a3ce98f145883ad126eb025a011c64ea51e2008a14fde229622275c8fda70f3bb83d92597a110c655cf6303a96bed0ac6955501f14b663255ed5cefa0d7a14ff79a993c4f42db39e67530d0263b55832678bf1502d2defc59bf6848d2929ff8959cdf4d7e44c2721786b2306a8e6eebb4ba8d470d15bd8e608652c5d3922aedac36727ff02b55f3e4eebc38924392d28306f8e364f61d8f7cf4749165790cfaff47c3ba7c81ec5430c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 4ea21ab2ff547aa2e8edb93ce6e041b654793095327f4fa21f5bb5a06d84c40cdb428e99a4fee6e90697cc8e79f5a1919b47d057b79bf4be5baff430c28896a336705c57da70586cceaba902aa3740be61b41403d7bba0bf939ed2faad83206e0a41536247fc8b8e4e58686d0d19b8cf3aeabe578f4af256100a79472c4d501dc32bd30d7a921574b1e0d4f4ed2151350d246ceff46abd7b588d66c519d7191231461aab4009c03c3995b9e3b7296eddc6db550d8e6f57d1496fcf2d1c18b993557f11a7df438d4a9c73b680fe653297af059964a691bfdb378497528c1ede29bda74389bc462f6729d4ee3303e6e4ea17ece5e270e2dd2bd5ac6f415f972a9f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 8d15a2f44d4b458af3d83dc082cd75e1fb78f6d8016a22458afaa019bcee0fb298d2990941c1bc9c0594fdbe4d292183b7b3c7d3a747117cab05a1312c34ae5ab16f25f7f002b8ff9cc905d2372601103f12c6c69d91ef320d0f31775fe72f8d7db1e8e0b7a6f45fdccf017b74d4e6a3af16099be38d605921652dde236101c16ed6310e126e36b74936a04ca0fb0c26b0d4b28b1aa2ad42cbee98747b7c43ed3ad7a5388cab80b25b5ef5be9fac24f6d0b373919493f928df49bb415f7842b47c13e44f45c042da263ea3b5b989312bd6284fd049a59ffc5eab219440874d173bd11744419aff23450f86d7c7bea2a341361a306b299a8513a94b9c034bfed5\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 4f802efe0073cf430f7af010f23dffdca40a4a53db96a5cb00431170c6ea57d3", "bd6d50cfb0cacf6772017adc41810de36f020efb1e00e500a3ca6329ff3d88d86322c0764d4b11f75746b78dfb0838a848d24e0c471d58743a296f10b3fbf44375b289f87ad7ffcbafcaa46a2a0301270b48d123d61ea6f21dc4666df0ea2078140b742ae75c1887d29742dcd7b92b4cbda27b98d8e16b43ced64d5e2a207778d6f022f3228c0b7edeff81437d3669c418186e651b7ed2df8963c5a71726d1f507c8fb694a9a94ef7ff17dca9e1bd79c9686097e7286665a454a9b68acc4334349d99b9d5ab7093fc36c0c0c11d41ac6de2e4c3935bd0ec2eaba1502d22ba0d3\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 91a3872121d32ba547703f8a0b9c9aca280f099b9c559998fb39d8841f7ab6a1fdf05a81f246c324ce435d7d9ea135fbc989e15a56df082b5e1c47b3b40f86cd5db01304ffdd328ae99d205d4185bbdf506acba181cdcd2d1d48be3b860d96e0c6ca54ce626372a2a749121af68523decff2c4f02d9d6bfb3d3b9a175e9ce1f03e4616230d32d691a4a8455ec09995962d651cb6f85d2cad6b09e35274368f2eee8ae5c7aa123a16407bcdb200bb351ede750f4798b083ce82f2800e04b66fd2be942b4a64d56dd582de56e3da7facc71157ddaa124502cdae10591eac676df0c94224649cd109027af09cb147dbfd9938488e7be36cb1146753e7656421e90c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 0000942fc136ac976cfc686ed13a38314c9c8b570a4afa2b18ae0a3cc39173a1430c1cab8893d530d4bfbf98251035d1fc18d18d905ac86792a1f597c08de11d9e2487dd78900a0bf79239f75e155eb0fc6d151cd7acd4664ac606c396494969422c6a321e12fe747a3b0601afaa43a0d9c08c776a7bacd68ca04b3b5dd9e8c9dee6773cfe652b923ff9d4e82d353113fd7e0264189556b1f28011dabf2fed6beb47498af5a6a8b0b1ac9640e5acb53ebb90bf29b7783a01ad6b4f4595e067711a49f8f1cf00443292251d2c0551f89e4271140b03681e8f4fdfe62e588f565c2e5288b3b14a488f14751b5a493290dd9365a48ea33011ffadbd2b898bec921bb1ba\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 942fc136ac976cfc686ed13a38314c9c8b570a4afa2b18ae0a3cc39173a1430c1cab8893d530d4bfbf98251035d1fc18d18d905ac86792a1f597c08de11d9e2487dd78900a0bf79239f75e155eb0fc6d151cd7acd4664ac606c396494969422c6a321e12fe747a3b0601afaa43a0d9c08c776a7bacd68ca04b3b5dd9e8c9dee6773cfe652b923ff9d4e82d353113fd7e0264189556b1f28011dabf2fed6beb47498af5a6a8b0b1ac9640e5acb53ebb90bf29b7783a01ad6b4f4595e067711a49f8f1cf00443292251d2c0551f89e4271140b03681e8f4fdfe62e588f565c2e5288b3b14a488f14751b5a493290dd9365a48ea33011ffadbd2b898bec921bb1ba0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = 2fc136ac976cfc686ed13a38314c9c8b570a4afa2b18ae0a3cc39173a1430c1cab8893d530d4bfbf98251035d1fc18d18d905ac86792a1f597c08de11d9e2487dd78900a0bf79239f75e155eb0fc6d151cd7acd4664ac606c396494969422c6a321e12fe747a3b0601afaa43a0d9c08c776a7bacd68ca04b3b5dd9e8c9dee6773cfe652b923ff9d4e82d353113fd7e0264189556b1f28011dabf2fed6beb47498af5a6a8b0b1ac9640e5acb53ebb90bf29b7783a01ad6b4f4595e067711a49f8f1cf00443292251d2c0551f89e4271140b03681e8f4fdfe62e588f565c2e5288b3b14a488f14751b5a493290dd9365a48ea33011ffadbd2b898bec921bb1ba\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", }; -static const size_t kLen281 = 25538; +static const size_t kLen286 = 25538; -static const char *kData281[] = { +static const char *kData286[] = { "# Imported from Wycheproof's rsa_oaep_2048_sha224_mgf1sha224_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 56d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f502030100010282010056d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a102818100ea6010a0017d4073198610d0e761f286e3a1133eeed71b4fd4dfb0d8b52e1e1d8ffc58d9c10396629952eb002369b22bb9c3313c80330c1f3ab7a3fcf8d0fbf5a1c0fb7936ef20d51373b21bea72fcb7f70275ac41d97b566b71f727a32f0006de15e7f9bccfcc3224106f6b1ae62d59380065a48ef7bd015ee6dabae0f9d78902818100d52ed808d74a79b3ab515b4f2fe7b41027472c3785eb25587ae31d3500bf3c6ef20c427e223efa4f2911cd38cfc4479f28ae495fe3e88e94c236c0bc1323d71027aba290669ffbd7e0fbb6f615df1c9e4fe5abb5a90d4d0b6d1dea0ae2b249e6a5102092c998b60dd920d09a2e6ecf2a611793016bc0c92de3b9d92744bc070d02818100cb64f6c884c257ae0b56673d83af62b360d3a64a1527a3d211e0d62e1a7d9d30f6857dedeb2cdbd3514fbe14eea689329d1121a76971e3712e99b3bc9389793edf5304695b1d0697233c62330bb12253dc0ecc63e2f983a9a9b0cb5620ad670e8ea8e019c09b6c8f8ef09c608c85789156a231932f671b251760ac2d45944c5102818100b616befc3e3824dfac535f74b1ec6d46e6e5ca04dae4510fd4572d595a7bfdf89dd28ef101fb5cfe448c2a087e9e9eb6799ef4996d27f4b1677a3101f42f46c14bc134a7b6a0ac1266df5a15b3f4d0930097a22516727ffe64838aa7259f37b44405146d8cb85db8525fcf0e02df2f2079b21324c18ef7c7b49dc7b7dce3e5f902818040fbda2e571060971cc6aea0c1cc82beab4fa0361de43a55bd2b399f25ed89e33c48983f409d9f27292770d5c0ac1b31adf766045e60d67b89957c81c0f3b7706c3e1418926bfecba0242ba54ed95ae1bc73b67ddb1e3f4161380cbbf1db7d3dbef852ebb38063bc2544c9c29f47f416f14eb1ea3cf2bab933d21c2c091293ce]\n[sha = SHA-224]\n\n# tcId = 1\nct = 5b467ce0a97ef94c7956b5f2ce08f88acabc4e9d6e7b83e6521e73c03abe9fda31c4c2c61ea1dcf5a4bea5f68cd1c17198c9c9f22cf9bcb6797629b9db4d96341503d7bc1286c0c47faca078594ab01530f88dae2fae71e5601c8a79040c81afda8f60fc1853df885885d8d2cc6bcb905f105f448d984e4a2374e78e4c357ef5674fe9917e30196d33fd97c4d67cb98c2a0c3f30c410453679ae748fb922a91da74359ad8dd9b00865517e7f225a8c999bf7c93bfa83bd687404425321e73f9e1fb97c11562f0622b217b09ac3542e0ac650a451011431a870c2ad77b9be4c72068e25dcaed1f2f9cf9a2a8336b407711c3fe16f2bc2c12e5454275ef783c732\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 9dd1ed2ae7257d576d793a110e0b39d85fe2b312ede286f0c1bec4fd975f10f9f51d9cb1b467de234697c428094a87879434f21f91e39fbd2e1d4b877313af6d9c92f4a7a16ba148fc5bd48c5405e27a9bfd6f2832f0f40fdb32ed3067fe2952060e5726a9a97d55e055b623cc42ed6a4db870f246ece6e89ce346060a4a5cca214a35e868231528c0c184a167f1d7c331cb0c1af95d6abd6dda250262aa54f2f6016d12d3b530dfe09d31eb182ea3718d8241bfa3e60137db838043ef4cce8ba28fd32b94198501d8d3d81dc9cf7eb5163c41753abee2ccbcbd368b8383b39bfe0739fe84f3e2b32612d01b324e4408b727318356ee38c200d5148b6e246bd3\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = a042226c1eac49482797ac7065940a268bc9d7b71a84ec7ab43f2fec5af2e39521780c7410cfd7538acb5d17d213d4e9ee1ae14e44db6e2249f97ef1ee97983e2bab3d2ea4775c4c8cb79f252cc7875dfca5214835dacb1bab7da6bc7781c15b56546f9273f79025fb8cfd90e632da174311aaad6cc5affbee024ff1099395f5cd9f314ec3cfecf089c6703296caa433d6c3c5779645ccd5c2702dd916aa74963c1c11d30af3348ffcd6ab28ea6b8076a8a82df890186c1821c1aa18766d8024885083b1ac5ade07aaa0bc7c5d38acd6fe392f70378e2a64403c39fd4dff70af9ea96b25d2dcd4ea4f9334cc24a888d1cda58af7eb85bf04752c379491c9d8be\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 54a3149fd9a580492b16ab91406c69164f8091ce0f5f57e9c2c798fb1cd985cea1cb7c3d39e2ed35fd5443140b7f2868e3090cb90a4e1f4f9efb8eafbe93e6ba65e2670778f0e82c403921d29d55f3ba5a965ed2bb623f6bd39078b859948a7f0dd929210c192ef7fd28d9ce9d04ac56f785ecdf5b7c98cc2735f0af1474125fefc2c063893868eaffc6bc61c80551093926f2b79c3d207ce310c3cd11063a274760e17ffedb5cfa640080a7c233ba38b95c3976a0a284ec904eb3ac75fd2156763a3968d01aa22886b3eef912e3a0fed03e2652eb18ecf0824e2879d70a586d92ccab823d16fe430fe5b5a4115f079b591c33d31970fa8081972d3f1c6fdbd5\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = bb49b660fb692e67ef888b55dc4944726ff955229f20593757eb616a796035bc3ee9d461d37dd6c5a5cb34303eb739b938dd53454675f872db127ca7cc6b77c6ec7188a436c09310004777409a7e680b8631cb420f7e69f04bd8fc3d1f735754a297a05b58ee52188b8fd00c7f1059932b8fbdc5db8321db0599dbae89f62d7a05015ccaff40a0505baaf4bf96a62e0f3656e84fe1b5e14117755d3c2d4395b9039fec8db8d02afc90cc4589d232f501c184753b6c1c9d687a77e6a40acbbdd97be6b43deb327c4a75f3e09b638df85eeb73cf8e6234122f04814c412407003d703d8192e02016d33638765f5aaf83699287095b47eba7d48db65541e4d8f6da\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 9f0a968b8aed115482ee51eb63b25ff07c3294eb3f8faea6af968408f4bb7fec7b456e2459626d5b8bf10ca8e953b0606627607ac227155b7accfa1ec90bd94ed216b7a7bc8ffcdec6f4ad0441dd24f1227a2f2a61e0645fa9a4d325f5861479a51af341bcfa8f699c64c02b5d2979cf7fa6ff2316aa3546e31bf0e17b0974252019c61783594adad3f8ba9b81780e17a646528e111994aac91fb056a57c19fedb948bcf1270573ab35cf903e1ec1ac33ce8359c3dc4210467a1620b1d3928782ad079ba9bb1f2040e157c7e5963594a7bc855b9a476adcaaa3be95f28ec49c934bd2a2440e6110ded6f02ed569206cc986a40f60ea4a97b30f5dfe8f38a6e30\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 3a2f3740f3df888485a993c169874d624097050697b21f5d3b6d19bcd373a6005f633931446147e8a4ee53fe11c305d397670019cc03fe83eb15431de666c1b7164184c33ce2508bb0c0e0c79639e6be07b7f5435d37e5f1279bf033ace5fa259c83b19a62f8f9df45cf0fa8a2b1b0b3725926c40a7fb2463da7e80e4dddfb260b3129d4dcd8f05e728f5cb6cd484b2328b8d8c5e421c9a7227daaa09cd0e7425886a9912a38d5e6cb716f0d148e17ea1ffe520a94d8b6235b5c82579734c642717cdac41d65aabea49e05cbf41ad2554ffd97fdf73d14d783e80f08eadf7fd522961ab00d89fd964b6f72039a5f1c76cf029f2177a80bec3cc89475ea3c9010\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = bffe021eb677345763b20dda24b4f482d02b9c42a3948fe4e90391f079f527471795b8ae9c8bb1b5437f56b8a6f60e5623433b02851a387761e27426fea806ad68ae140cd104b0fda542b1f00130bf89fd565c13cbdc28a27c980a0707d1d5a1fe275aa2acec5290c2892a0a28f6b7e546a89706965d3be0ea55a664471b03017a3c4414c1c694484b58a38eda72091cbdb2160f699f5bd1f53549f4e03de3d7fffb080bc57bb2", "835fa1bad1c19eee3d330f3e8eaff8110f226ea824842ca9996632b832a4509333ccff3ada3c6b9431273479ea1d0e541fe6494c9f053ad07d6bf9a4ca17d64fe50546428ab72fac1602637c7eb7ddf6ad081f6c9d767b4177\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 100de36f08403f5f8d3a42342c9471b3a59f412d641d402971d0208fcdc7f28cc5517e2d6aafc79d59a49c654ed10285e75f8b600f5ac4906d3716dabfd42785b6698147dbcca09eef28ee96c78699b688428e2de34341ee0c81febc6ed43512cfeb9304e2e40738a20d7b4847742f9fad3824f0cf06e437b3ec1061ce8aad0892689c3388ab6087adae203e23019875768bd53a4568986f9cc91a65a5e5e50c0ffbe07bad0f002a03dbb3b3c61647c35e23d8658879956fc23d5591a6142421490cfbe8e12f0673e2e456afd44b6f463ef3d2d5b51755305ad83181bca08f14b2a702e4ef2cc0786b69d9188714e9a4e9a1853011c515a22bb1789c47da7331\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = bb47d730bdcc0fbefa8cecebd029150fe5d3c967a429c40f16b48c8d07848699a3ab5d68ddb32f76e0e74e897bac9405a1620dbe9ffc2e0d653924bf5da381a903a278ed7489a62ca5b94c7f963a2604d5cca61a637d43dd78ab44314b4eb3547e2e4a72afbabed8cc8d48e23faeb5eb036c42d542578c68d72134feff3cbfc561348a2db48032e08f98765e87dc76600504cb7217fec04ee9050bd3766657719757f389c0b4f0bdb2fdeb8e5757a3a9b2391ee6eb2e6fcfe95764706c0778e4f0f3c7fc024f356f999e5f50c637ca9be7ff20f65edd5c9f6ec869c29657b1792225d8a16574c183dd5f15f084e97a9337e53b56f5d7bc54bf5e031922959f48\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = c2edf03b946ce57141fafbc89189daa734d0f388c211a322ad4ad9423ba5f31699abe68d5c03c0ccd56b1a39abd3145f4c0d59955e6cb502d6720c1af31ec511fed541e1a66761a20422f5490d3dadd815390a01da616ce4d7934c68e7b1c53d947803268d81d26429df505c22578f55ae0788cc619567f02237368258d2f591b51d61f088d972c40e4fbd4f50f72a674d25a1cff3b49edc9019ac9945cf2b828d4345398b3aefb63c9f0497ace4b7f9cf6c087efc93802e1c19326585788df3aeef36300f78f7ad016cd4ba6c55eb49d36e0d49f97e1bb8ae12e9d9ba66d18aa76812008eff83e0d7d45212ee972957c355307823fb692bb2041e6acc81902d\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = a7bf9e3d83a704bc5d3c672912a883d379f18ad0a8480c8b062b05def52191ecc81b2c6a8f5783ca3b401cec23f981f35246e3d45272ec73ed416713a4afb104f344dc9e73c4af29948dfca67f245815bdccf4491c5ee7ca2827934db728e08778eea48cc82da3ffc7b94434d2ce301e801feebcc39a57bc7450ea29d1013c31f716809af36189c3cdca42e78e31408f32b98dc79619628ca348ddbef3f18a942387b9479dec0af05e382ea15bf0280a9027f7f24a3150da0497a13a8f394070515c9be5fa0c705c012415dd7b4201f2ee28af50178f59e5064685d75fa54c187a22f2854051d6084894fd902e43b20f18d14091cb14804fd9e51dc681d1d9f6\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 794bccc669c6a853722db8e7100d5a76bdddd5997be5ee52bb6b30751672566da38fcc38fcee38be9ef3b9fee98eba9818277fab9367e3f024cb17babf71a71b4c03619de6bf25772b64e670102d5eac40c61250ee174aa802277a48a7488ce9582dedbfa941e7ffc6791515787652964bfbee021da63879251de9c89b9d9b63c547253c1b539d0ddec1074ff864ae6360db0c60492c5a992124593a797e7c4c85ed6bb873d5718a24df180f0739495562c8a522243bfb8c6dcef4bb099b7fb42ba01486e48b6841cadf7f8a8294c0234b779a8618945d7d557238fb7153f9f3fbaa89027eccaa49c75c583fb5b2309650bd4fdcfd3d77b9a181915fbe009507\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 3155ac16ff4b2c2e256d01ab5adb8eb7127076c92fb72d9dc30f217edbd10183a15dd8fb41ea074dcc27bacdaff2a5c58193fb25a18f15a98bea320cb52be2031f18b247815599f43f640121f91873d8a61cfaea011eedb77474bbbf9b15481ece1b0db5b56049294539168d6000c36dd0c35d11921cf5df1a0eff4cad1a32678700a4433e5fc90a7cd14a1fbc4f819e8ef74db8474d3c1c1aeda496226e8b7e1a184277a064be61e932dcebe94f366831f54088aef277819cbe29bfce1332e4d2cda509550711a9edffa9fa36c1dfaaaccf0d8a67419ad9cf1a5421a2da4cb2a96b94c0aebff1a64e4a932f6361b50685e07e9ecd23634d64a7610def333a40\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 2df84b7d330dbc93c4804b6112d997d012d1bd3bc0047630c9c7a97b494e295e25b63d5ec98a62878213bf0d523f7b8f29c5aab3fb6ff08d336cb078ac9ce0c3be123eddcd83ae7b8189409f4db89ed764c8dfa4557f95630065e74073bc92e6a725550f19957da5cec59402f82622b86f01f92e896247e80a2cb876014a6decc3cea0e3ca9290eec17f3ed80fd54e2a0410daae5d9705dba809ef3f2068038db7e74d0b1cbe8e1b3634fae69166e0348c9b1fecaf9915e9dd09cc8017b66a2f3d4faa8b51099e69e4f68728c223f79b32bd1bbbb01b9ac4ef18e226b9934290dc8e88369041624396f4dd27f6f570e18d790d29a894c14c1ab62c59b81d16b5\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 6995411d2531e2142f0d8bd65d41d2bf17c3f8b74626ae10c84ae86ffd0e53943af5155944da2d9eefe255f92aa8c4b29aedb9851202d93b36df48cc0fa6b70c79b8c3d5bd42f5ffcd1ab9a223b1126c2018c0628651f6c23d5d676365e3a5858cabd99eae861a3e91c0d8136d9e6dac7e95e4e1c6201132f764922b2beb9a47fbe9d5ed12107aa113b50cdbfbeca7ccfe9ae5abbfbbb28804c1f7b155b726294e6b0d77b1e845ac80c1b8e7936cce6229c7202d9be49b90c1816b179012263a64fced7858f52d80b8565ff2b0d7beedfb6c6bdaead108c19b2007b6872e83870133f52fa0caab1842e72be8f9a3d66d9e34cc16a650c69041bbdce7ad707878\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 5abda3c551401f34bbbbd1d4fc754b3bef1278a4c7a349e297c89ff1d98005c2c230312b998e000926e11132895d2c92b9d91cdefbad259528e1b95e5692b5ad2a60b304434c75ee9ca52a2135ea626b3d0415495062b5433522d802a370aac20123f8060e258d6540debfc200247bc61dbd72bc00517eed3d6ae66c064e7c5bcae2187b152024e8d092664bf1883d9fb64d39d33b350656236b92611a2fded06cf27149d479196a94981264a3fb4763e34afd94550d73615257cbd75ffa421aac56d79c76a63231daf70775cb510892ef88f2472ddf66ee7127112d2cca7006b3cce968538f95250aba7a914f1f3074433be80ec762ae2b35b463babe9d52cd\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 1aae5728fbc6acb37194eab4cf6de62c0d8229094f0c559c285c86d9cc2387c16639a8f567ddf7ea388f6e3785dfce3edf8b3dacc6f6b47ca90328648141623acaacbc02b2440cd5f3d5c41f7537736d9cd5c7a297bd8f773ffc2f616282084e3384c445fa3328ae6448232673e1c1fab93cc441ba6817099c64e22744e23c877720ae09f1405ab3c05837a80bb8f8c9f03476195d1c8fbb8202ef359b4b33911088fe4fbf601044702df98d395b4f2c19d7cecbcb8a544a8e50fb38135d272ed2b8d9a41432301d15822232b361f077336675c36e157d992d2f0a2a467f7a40a1b899ffbc1a310c92ecfa631d03f21a459310c05cf84a0a2bf58c93178e2a72\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 67bc8ecfbd98ec151cf04de90f1ecc3da09b7f94dc7f8ada3750c49de7a98173a59b908a09df6877b3787f1b74a5b456f92cddda3f1f14ea05d4531725627a8003773d0f6f14b4dbf5a06690f9d8b966e473741cb695e287c1f3c60aaeb01ca74e673f080928793ac06e609f54e4214ff53107cbeb73f32073ad771566fcefda28ffbad80a765eb52e2e6065227f21f60e06dac7fa34384968aa2d355184fa8202762bff510315ca73a93daf910686d36b77f0a4a9175874eda4ad07023cff631450b2d2aaaf99be755c36ac2bebefca2e402a8e4994220ebffbe080e84582c3f9ca283546ba8b9fba3b7aaeca60d8b9d61daa87940b9e500fbb47f0d6bde479\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 2aba9ba6b55fcba1efd92069966c95ed8b567213bef9fd6bba37a7b7c502f7fed38c9cdee9fc1c221bd651f1df6f1a938a01ef80a746ca9478ae00b7ab697e2ac311425a38e4384002dea66d9824c79b56f05b00bba5b26f852a7fe27a869ef101ca73c1bf8951edfe60da5b5ca9650a2bb04640026720b8c8e94e941b1f6cfa3e9475c2ade8597515ca64077c34e896817fee30d8c80e9b4802b5c8605f7597e7f49025237989bb253e06ce5673481d36ae7f70103a4457624dfecdc953207102cdc2efd5d682907fc4812a31fcb55324b6ba2ef697b3c31cbf82a5113e1ae8fbc2afc8d63a1ac9c3a54a25cbd3db54e934402b1c5b07ea445e4d21f38ff790\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 8941c4670d7798f1a935da39de654e7763329afed53c9ad2c2c6f7e8214c", "19e8fb27ecc137be1e54b1d51f6ece4e951fa2e7f4e39a3124d9298beae8d2ae35243b83d216301c34010df33faa631b50f87fde7e4f7c34436f62df2330fee4366da95ac2bf891a9fd4fa850f7e15430b8c966ea5bdd78f5172a27df1b56716e1260f71dbc42fd4fd0b92b90e9de67f8b4ff47f20365153799ba212ffd601f0f7e674dc532ccea5619e039068990beae5f10d39e5d1f860018d25a784665d6ad50e06e59386e13b6da201980fa5aa3b642527aba012269691c773484ff2fee7a1b0a1fe6db4f1ffb1a7da8464320ebb93557c5750bef6794696b3022ea92d01bd52\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 956180f6a240d45f212d6eecc906477151f0af704e743ed7789c06baf8cb4c3ab00d30cd0e13a77f1905ef37e55bbaad3c7e80abb5e64f4ca1aba2861d98f504e3cf834a2c669535001b0ba494e6684dbfc2c7f43dc14a80ad73c79856d18c26f5c635015e282bfb4344229d9f7719c743baddb89a2f64bae603c8f3da5e07d09a363a86d3f71b7c038b939516e3930a181f6b00d6e8171add3f68d83c3d82a34e56868c84105afbbeb473a38934af4a9264dab2f8b3495e7594a25df693e71a5806163f1c44f8040aaea20586edce9050e1cbd7f8a2c30e40db9508b66c42f21a9cbb54a4b228455b05aea9486dc81233679ff3bb13a463debd8ccf55660b02\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 000054a3149fd9a580492b16ab91406c69164f8091ce0f5f57e9c2c798fb1cd985cea1cb7c3d39e2ed35fd5443140b7f2868e3090cb90a4e1f4f9efb8eafbe93e6ba65e2670778f0e82c403921d29d55f3ba5a965ed2bb623f6bd39078b859948a7f0dd929210c192ef7fd28d9ce9d04ac56f785ecdf5b7c98cc2735f0af1474125fefc2c063893868eaffc6bc61c80551093926f2b79c3d207ce310c3cd11063a274760e17ffedb5cfa640080a7c233ba38b95c3976a0a284ec904eb3ac75fd2156763a3968d01aa22886b3eef912e3a0fed03e2652eb18ecf0824e2879d70a586d92ccab823d16fe430fe5b5a4115f079b591c33d31970fa8081972d3f1c6fdbd5\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 54a3149fd9a580492b16ab91406c69164f8091ce0f5f57e9c2c798fb1cd985cea1cb7c3d39e2ed35fd5443140b7f2868e3090cb90a4e1f4f9efb8eafbe93e6ba65e2670778f0e82c403921d29d55f3ba5a965ed2bb623f6bd39078b859948a7f0dd929210c192ef7fd28d9ce9d04ac56f785ecdf5b7c98cc2735f0af1474125fefc2c063893868eaffc6bc61c80551093926f2b79c3d207ce310c3cd11063a274760e17ffedb5cfa640080a7c233ba38b95c3976a0a284ec904eb3ac75fd2156763a3968d01aa22886b3eef912e3a0fed03e2652eb18ecf0824e2879d70a586d92ccab823d16fe430fe5b5a4115f079b591c33d31970fa8081972d3f1c6fdbd50000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = a3149fd9a580492b16ab91406c69164f8091ce0f5f57e9c2c798fb1cd985cea1cb7c3d39e2ed35fd5443140b7f2868e3090cb90a4e1f4f9efb8eafbe93e6ba65e2670778f0e82c403921d29d55f3ba5a965ed2bb623f6bd39078b859948a7f0dd929210c192ef7fd28d9ce9d04ac56f785ecdf5b7c98cc2735f0af1474125fefc2c063893868eaffc6bc61c80551093926f2b79c3d207ce310c3cd11063a274760e17ffedb5cfa640080a7c233ba38b95c3976a0a284ec904eb3ac75fd2156763a3968d01aa22886b3eef912e3a0fed03e2652eb18ecf0824e2879d70a586d92ccab823d16fe430fe5b5a4115f079b591c33d31970fa8081972d3f1c6fdbd5\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# em represents a small integer\nct = b2ed7a397f2245207dd9db69744a196ee5cad1df24e980196f3e9cdb69bc3db3bfdd4ec01780f7a063e1daa0b670f0185ab9c19f37462a1fa76b50a580f9c919be1502d3cbca99c24827c738178da543e0c2b7a8714471528fc54db03921fc9558017e01a2397d9c31136000c17b558b72584a1b25d6ee85340e99ec4ee7163e6f205cf0c8f3077050efe8a244bba2ef0dd2c1d71c1ff6aa76c34ed678d343a644d6b03dcbb0b1e176c18aa952ee1a95592e9880d82a1fd4ae689a9045d90ddb95ebeaf30e35f7afeafb7a127695bde67a5e0a79277db6769022d13e2008e2a1205d67f8776f0f99571ddf73bbc611e3e189223f1e62daedfa12f4a2b0cbf58a\nlabel = ec04b8614d294a9aa508cf5e5f0f29ba3547a24e4c6bf37feea8d68e00000000\nmsg = fdf36d511ab761a3424c296760f4c8124a75896cd8723dac73d3684ec27193a22113fb6e6df10b5d34b906fa8b1503b672a0ee0498a0c6c022c7d4a82a2c7eaee28f7a38c9b53e60b9473ba26c3db70480ff58291ca5bd5ca3ed660337e5b08698937ef2a3008735c097e79815ee74634bc13d152974b54cd3326355cda4a97d1e6aae770028678d51f0bf04ac5765ebe78719a5632f58f5adb235889cf900a7cb6d1ebdfa41af651ce05cd16e08fb62fbf95746a3ccb13edef8391ef9f6c996939418289d27\nresult = valid\nflags = Constructed\n\n# tcId = 31\n# em has low hamming weight\nct = 975e78a8894d8f0bf47eb4b6baad70b000512823ad93b370c01f1959aaf252471951b0bb941dc89e6d552ffdac77eb6af19b407dfd767f4f608a82d0f8f03d25276bc2dfa69b39e2151eea0fd6505a997439dfc73fe9ae5d1c95835483ec4a41a1d7cd5c9446beb7d418302405ef80324fea76ac32bfe1a06db9ad6d651fbb821a025b82f78197d7aa3185b785139649479e896ad382be558dffa756c7b09b28925f2c25897f00bc4be23f907a5ada5868929dd72a1fdaae110c293ed039bf6bf75065c42870f9227a914e4c00a14b58f0dbcd0f5fd6c94596ad69a89d28a8e318050222fe1c288e5d9ff624e97cea755a733ca76d4564875f09fb2d4a4b0a19\nlabel = 8c9ddb95c6f32d5665a1d95cd8c6fb17668ba638c482e0d539c28bf800000000\nmsg = eb6b68854f2011f6a2fa9d614c12f76f5cee4b203fde576dbb232d69f7b9301154d7af5c8c9d320a7456f93a84dceb152759d3c505cfc95204a618bcc5bfb367f056b0fb95c8334dc354c82036e3b551309b5124f4ca4696d481cda583085708796059853abb72f63e59a64dc28f194356fc9ce90bf90aaa50846c50c14a4ddc6b8a71a97de2b8fb16a1521d9ff6a612b27cace9431d59038669ce497219e934defc48a24b7916b75e18e8dbde1a110b5a4d3100a2935b073ec3cca440f5d369572581894d06\nresult = valid\nflags = Constructed\n\n# tcId = 32\n# em has a large hamming weight\nct = 16e4df71edb9cce0e20f9bc613de0958325747cf1e90d4b1aaeccb1cb9c586a9896b04e18bdeda54f82fa113e54e05e10bd39792ce5d3601473602b0174ef3d81040b9ba9a237de71d255882422b1a7e13ae5d7d50ad14c2054b0734bda9f2c42ca169e89fbb1072f4819c6a13e7d9ed6adce1cf565ddb5885c17ce7200c795f73b8a0f6b1d76b7f7bdf03291fce95b4ecc8f56178f86cf30e71f692c53cec7c091cc619a5bbbb2ea063bf1328a3abc56fc61dcb5ea4aa78ee1075038c2ae17fffef8a487b94efa62a26c01c05de83e965dfd19842fb586b4a8dcac7afc952d231be7ac0ba96a7d63c942cea6736ac7f2682023c9efbb312157e57ef082cb9c1\nlabel = b42f55b1895be2324ceb2fd6f40f469df1f5f3db556d84846989c81300000000\nmsg = dda76849a089db6948515c7a512b285ee8fc97c5b41ff7f7d1acfcd1fbabb4163916e63656f85bb9e285727e22f03d15e93e0895dd10bcf276fb8fcb21ccd0bc8ef2a8f29b87780a43622ffa7d92f5ee6dea280644027661d96d9ac818e91454f68994b11ee4fd0e64d3be8d3c14653813a704f0c7410ac1368ff6bd921ce2c4de86ccac17ad58dc2495129c8e3d36f141c634d232f2587dd102c609b57f0ea3c821e620e5f6437b1bfc1d99f5176a79a9f7cc7ed90f6012e54ce1cd873f2aba6dbbdb2252b9\nresult = valid\nflags = Constructed\n\n# tcId = 33\n# em has a large hamming weight\nct = 7b5e8addb0384e472da0c2465cb1e03bd4fd865c148850710b5cde1892c0834", "458ab2429e93ba375ebe1fe26cc81b8f991f0d21e6372fb34660ca513650fcfee3114aeb10855b9b3e7713b779687d0bab738dd24792b6261182670bd09cacbc7a26655ef299bc715a51403744282d0614c9182030b51c3000ab17f98e604eca3f7edd824ae52607bbed63f14717f771374ded2b5a0440d1a2edf74115df754a5c7e1368326f90e245ddf73916b6277f73d0866fc4657a1b4470cddaf91d3d297bfbb04e03cbab5d180a1e3c63d88453844c30d91db2f458e54dcc7bee78ded8ff29dce2d07fb8b5256531fa21a95524f5f8467b5ee2a2d4061676eb8fb899891\nlabel = 842f55b1895be2324ceb2fd6f40f469df1f5f3db556d84846989c81300000000\nmsg = 07f559e91dcb945125f58eed3cce2d841ae22af2cab3b8181eb33682c8b712922a911f397cb92e66b536246c3cd17f27605526c5eb17d4e77bf7509dfdde05fb598e3b037e613804220ac88b84bb39fc8f885bcdfd9734d64fac27e32bef6696c09fdf8bd5117f1a71f5b792065d2a466d9e33a36c84b0bc3ea2a99e2a4abd23c50bf71f8dd61f8e848abf5932c63136d82c6957b6cd80e14a54d43c96f670266df22733de9e8ce1f399f0a123d7e643cf4e4b7aaa832a94aeb9d723b7a4f8639535cf4da088\nresult = valid\nflags = Constructed\n\n", }; -static const size_t kLen282 = 21224; +static const size_t kLen287 = 21224; -static const char *kData282[] = { +static const char *kData287[] = { "# Imported from Wycheproof's rsa_oaep_2048_sha256_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 7627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001028201007627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c102818100dc431050f782e894fb5248247d98cb7d58b8d1e24f3b55d041c56e4de086b0d5bb028bda42eeb5d234d5681e5809d415e6a289ad4cfbf78f978f6c35814f50eebff1c5b80a69f788e81e6bab5ddaa78369d659d143ec6f17e79813a575cfad9c569156b90113e2e9110ad9e7b48a1c9348a6e653321191290ea36cfb3a5b18f102818100bd1a81e7977f9898122273ae3222b598ea5fb19eb4eabc38308a5e32196603b2e500ffb79f5b886816611debc472fac45544070beb057c941378a6868af3b7a03d3f9880ec47d5e089b94fbde542aba9ae8d72c57088d7abf5b131f39098f7bc160f90536abc9492fd4e06f3ed7299d4b97bb03677207d95669f140cfbc20f2502818100a94b528b28f291599121d91952ffd1c7f21d7c1479d99d478885fb161870ee1218bf08472612dbe5497e8d9c650688e09c786961ae3e2c354dc48ae34514759c4c23c4588488961dc06b414e61c0e1e7fbbd2923d31532fe289f96da220711e58c14019808e00414276933bb07e4efb9b4a9b37656917205209f33f09515d7c10281803af0e72a933aef09ff2503df78bafed531c02ff1a2bc437c540cdcbd4ad35435cf511763596543480629b114ca7f780ff7efa32ea0cb6e000d6d9ea1f2ef71fd9cf9948422a165557e37e755edfe70d90b920502eb478bc98a63f788ce3a0f856d6ede7251a383bfa8fa480a81a925af7b3cc538c4bab8c9f7597ffb68011d8d0281802640fbfbcfefb163ee7a87b6483a66ee41f956d90fa8a7939bfc042ee0924b1b7993d0445f758d51933e85179c0320b0c968b48a91c38b5be923e1097c0c562f88d42294b6a2759bafa5428a74f1270874e45f6fcc60f21602de5eccd143cf31241f5921b5ad3983fb54ef17be3b285367e50c999c67247b552fe4bfce945f7b]\n[sha = SHA-256]\n\n# tcId = 1\nct = 8e6f127b86ed4ce03bea0242759dec562f3c0e475d70c950bb9865c5a00c19186487f6dad25e6ed4600510e067a8679cdd63f7718af92e5cc297d74d5ce72472c404083b156924c39852b03fad90becc3da0cbb1e80556b4010e9569c61e3b188b9dbbf58f779d3be5a9a7d000ab596d69c9aa48fa6c1f1fbc5be79ec39e27b7a76191b681a02d61cbc5924651198bdf9bb7749ab4a515d1ea1d9d32dad38dc703228985985043c152e2d8e918b652d67a40c2be1e2c6cc2fce11f6c923714b11732d8fdb1613c46bfcecafd64f9536fb7b41816736e3e4b62a1dd6e4c26e8a8f66d99cced308127a39ea1f21a6d7886e22aabf3ca6d6464278d930bf60f277f\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 7a896725e0944db789d4caa96bd8701fdc100a26ca12e45d7d9a5f5599fdec0a8ca5ba9e2e0a5c743d2e82a0006b915e6572e066c30bd794e98fe0959519f418d5587a5012ff9b0c545930e3065cf8deac440ef60715ecb8de63f2bea7fb80bc81cefd2f5b979bf0d32e07e615db6a363f0447bec068db90a9e86bb4703098b3ddf1bc34b2803930b56fbb8e026b8691248d8e471ed6dc0a90905f96412470f1002ab2a754cda6dead97c5a05fbcec5d0398c1561876bac021ec4cdc6915d929ebb6fa5ffa1d6e37db99951fa19670ae0f8bbe18bacab54bebeb5ec2dfb4a0cf69dd7077b3229fd0cd8580fb56fa13c399364e2bdecc1a0bfc6eb67f01a17fcc\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 835a8d5ab336e2133ade3b3537dbcd908a49d3933d0747e6c567e6e4938346b40a208321669f82ac6fe7055b4c435c455772ad9b3809ac65b5223c04329f232aaed6412bc6f024575fa9eee9d5f813e384a07289b9b203cf8cd7e2bfadf949aedfac4e08705a17e4db719ece091d46b264eb40befa199cb27de1a744c96182483ce84808686afc56e414ccbc2f219057af1d7e23549f44f7bae74f135254cc965227aca4ecd7b4571cd05cb2c99b6fa55cf7ec9c4cc085cd0ad0ce90e3e7f68af2ea3e2a6097b81a5c5091c31026261a479d46f05c45ae016e86029dae86c67afba8b8b6e8e646a94d07d07f3eaf8ca177c6c0ed05896971c0a911c846ffbdac\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 822e8870c00908cbf5032226547d38e423deb912c49c9fcbee66920cd2e9e3197b3fd7428cbbc5e90e660545720f180ac0ce06205cef8735446de30df32c8797380ccce9c0512eb285b7bffd883ef00fe118f027bdc75700e511226ec4da35f406e460fb88f9af2e9c4ec219387676ae21cadfad0fb1d704be69d0ebcdda90dff7e172612c972c6a974b828acee6ca186c71b50376d1ed5eb6c107408065473d53a2ebedc833f07f60f909a6c42464d79d76f94531a0d386213fce5efc2e66f311e73b06142f8245b063b9e395722dbea029dabe5ed1c12788b890974ba1d28492cce2c90e0a3026c282964763a030a7f7f3f76a72843a97d9eee17cdbbb00f4\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 94712359a945bb4711cabb40b95020092c43428748b10e0f11189172d7052b28401d96ffba516a9d491895e9e95308562cdf17953a4e05bbae8c8cf391e7c363506ac86d46932b373963e9e661e9de2df322719e6369f3ba68f42bba78ac932f7d2333759a53d4d18f5990b18a6d4d0af96d9a9451b2d5a8c3f427f607380997b5b2029f58f04301b52c18cf57c2a763b546a21b8da9627070a1cc30bee0c75863b196128988ffea683a4da5203924db470a53dac36a3fbec3dbd9710f85ff6b0728a692d640ed7ba67b7e493a7b95864a2191f617968ee1efdcdb5b015e45da55086b2b382a380cf66bc61521b2327a6bbf247ab7635da9a48acc119e867467\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 610aa2973bb0d67efc725204a0af7db852bcdd8227e309e6a523ef627555b7aeb783dee396934b61141590952801c027a559a3b7380abb6724224cf825a9c74dccfae278719551bbf0e6a8125d64bb437ef78c24cc00a52fd9a716ac20102b5a1d8fbd445d9a2d4ce2c55a2f549c2fed8e5932cbdfc8deb907d973834c2963720557668d61e3f2e53564d6db7b41899873e3ca66a1b5186a8a545d27915aa466df12ca7163a7d8137eea71ef80690d229deb089510567f24756f0f70a1dac609a57a11ddc400af943126e5c5b118b76b769dfc1a7a6ec748b5b906baa0f0e188b1c6fdbd6bc307af0fd9b4602ea62513430b3208e3d690707fc2d28ebc432388\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 76f7b6e1cf45b005ad58b5354cfc5799f74edfb27f27b414b4d25500a1ec4bcd46c6b65603b204f69a2a71b8d1099ce96c8ee52e119ed9b080d86d82789e3e5777cc5f920b147126ec8612b206bc5734e828ac819f90ea7191832d570d376df2c4e3eb5070fd8382f8c0a9b89da928bfbdd24bf1d17ebc83f9237a51352ff04b6bb3848cb6a9c195e5369f4b6ed9b4cc166377f88c7e6db6ef78c0e1bfbac5a3825867af9b22689b627dcd8d1441b515b15b78688b52b04df4157a888aabdb9e792c65fcbdcd03743fe45e637afa7e422782e6da58b95163acd59353e634337abb1c15b831a9dec79c517a5be0b4ee43f7544a2e9bf6af2bc53b080c60dc2bc6\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 338514dc5a9ce8f20a5040f26a830018314c569249d540e2dec247f4ae925f6cda2d7a535e4e20e5348bf14f6c87861b37fbe4901758dd38da7cc7cc050edd1e208acaf6ab2d332a6482c4e5af4cd4c4f1f9950610ff56ef910b2831e3f23b2b6d3325e8a9f4fc50e0057a50af5db51ec2a1f78d0465e5f54053113df300584f458a1ebf6e5b1358f2454cef3b3e4aec9bcdfdcdf5d88206bed1e9a4e7c7c8dc5f087d66103bcd28e94c", "2c233eac1706261aa6aa67f044bb06532954d91653aedcd58e8231a81c52aea96bb4ad1adc5e3c2183ea99247a4af8011b415d618c67c94f0b276bdafcddc8b646182989c1db26da677bfba285c0ab76c82b80a638a2\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 31478424e4255ab21a4d9a8c5a3daa8f0dd5416f79c2baab2fbeef406f76c493cb436acd030e0bc4d09432d9983860c01b1c559ce095b7d91761ac2e4bc5513c68ae6bdf747d556a84ac07133233368fc92d4f32f9bc9fc415c3d0dfa87f84853a828fdd103b8ade889a020f965304cae5324f78e36c72cf5d8b94496a6f48b03a9ee3f32fb435d48d31002ace7d212a108fef640f55e715a148335b396e900ca3fe96a0854764b54c3187e37d9eb5a65b54ce6676d3747bfda91ed2f536d79a6976fcfbbd683ecee32c5a8dc29622f789579a370eb7d66a1404a376a43ef584a0e2eddea06fe60c28ae08b7d1a8af26b20e50e9a8b3f8654e183219af3dd508\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 90689b191d041a9bc69ea93b26d04236edee88b8af6c0b29e9b438270b242dca467ee4874acf7f9b6b244c3843674962c9d0d67fdb7021aba63fcaec2eac3b6b5114ca4b242b08a1ddc1dc671b403bbd5ccb57c7f6c87cf0dc995b38aba6fe635f4a727f6b164bd36a5ff5e7b91e42bbe50835638cf9e3c7a5397f5f095784c3dc5c493ee1a22a9e2b3f28c71dddda2553e269d6e818aaad196b22e670eec5832a84a0f89cb9bf5d8f69e35f34ccbef4037e9a4b6bf2d8d3197bd02acb344cbe27006efb73db0b9d5493dcd14b95b934afc2768af27d1b3b24de694fc0f00f757488d231e3e2cc5be77530f512014445889600bd1a265a4bf188f617b9751783\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 9edf0e6ae25a3e7b6f31fa13a7a31db0e6ce2faa624c2ebcba9669bf5f205758e1e904a9a738bdf430072b0563d1a87f16522811d645cd9f85f13359d2961bbc583a3b15c66ab5a0d1373c2949261e3f44c2a1a88e25190efd30aa9fc410d2d23148c16daa90457bf1ee77c2d344525036e037ed473275bd535fa961a66e47072b586915d85d3d7edaae7945b5e7f08fa15a4d08cc669b3846b1ea02cdc3eb9bc5a54aba227f9434f19d28d06add791fce9efe2171e2c676bc1b09bc163798a1a74b7fdedad993dc47c8323cbe3aead96d0d4e7e494ac390200e6a79f96d88844d59a3d78626b0797b902220874e6957e6c214f3ab7574c6e476cc4262beda98\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 9a4a3467718bbd455baf312dcfc65eeb570d286bc88ffbe19d2f8e032308a50acba1f7951f507f502de91c0ae3fa4708f47ba2459c5c62ca667fde3131ec16f65a221a63d1d27314c54589db50a1fdfe44fc7c789c041ca0398a0e648b1251fd3ea559eff450ba92d133233cc1779a2094e23a6b88f0ad8ef1e0c6ff42d9be754e2c9d904dfc75124b3f34b00e56087e672f5eacb98f27b5f0fda7f67e71c2e3e2d98ce379872d8120aeac24bc5edb3919a196f2790830b615806fc0b5bf03e6b60fbb36c9b202a9972dfb71d28d168f00f698960b2e1cf6a6528060ff7fff91afa0082bb9a618c5a05206de8bdd0759cefbe16b300a1b51ee12809551009bf0\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 008e70553d2ab7d1724c2e422ba525ebed71739bd8eb968c65d8667704383fec6432f0e071cd0ad71809a3fde92233bf7ef0144dabc688dc1beabcc829c76b3e418b6a994c94209e872bf7e7dc64e6ee8cac7a5a6ca3d40a2280f875d88fbbd59a2f5afd245a5b12c3fda1263c97bd1c5536245d0891ebc220757f6a95151cf06af744840cf2ee8610150427ffdcc619de7e0b0c8519c2eece9c45882dcec3bc4822057e5be017d17cf3b1df53c00414fc19fe478e67abec5b1b8e0462ec9e8606994f60433fe15ba3652719047d54089c9193218077f743b71d04990705c663817918b803ef8f362ee17522c3080b97a1db100291a70fabd925de209496209d\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 45a7b98944f429526c32ffd6770d2cfa275eb81a8163d0662e1e418d9a093736ad0aef2ec70013f15b5f240336a0c2c3c673ba265125ff6a3897a91a749a2894187bf7ade153ba1491c66c52b5dc67b3b163725dff9c49e4f36d901e1e9d964b285586777455438f8c001caf53e013720ecb14e1e28aedae25beddc5f42580b9f72bccef986ae0ed3daf0435838b4c2d55bdcef2341f8a08f6ef5c2bc4194eed1c1b2c741c7c9041fae5c8a48e90a469807750bea3a50fb7c848199ed62a6d0b09ea8bebe4ea6d433a73d6a34e31cd9fdd21622814cab547f01d4f6a626aa180e982b2a89977140762567f391ec069d85977a9469513ee60e7a9abb54e07b3a4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 2f782d8e57831158d10ef1fcfa7c1fff1aed675d34bc49656a11d97e1927503e189f76bf4e335b1ea0f53b1e909fdd5fdff67d7e034b518da036c00dba897006031af4830863fd11d6fecec254646d00a2bfc2db8cde7b303922c703885372cdac94d19a296761850dd582c42ba5c96905ebcef582442643ff8baa83911817a4f00ad7f644acd3fef86d43c20c8f81580f044546e606c87a5b073ac860462f11a004ac2fa00f775cebb98e20d07bdb3bfc407f2711267889b0fc365762272276d509f4a9fa94b63c407c0ab98b601837f6f5d0e5171ad86b5b66af9eb94509950c42f5fd7cdb0cc9cd3d95a96f852b5941eb73db45843ae062518044ce18d200\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 3a88faf7dc8658070703eedbaf36302db8e43aec4f1cab99a39637cf2221f5feb0f716d4fce38903532055f8fb6f9036a2e0be53417736bd3746a04bcfe47954a61402fccf19851a2299a54d3c63485d69dbc52095bec0838ba87eec636251a2483d320569d7e62da616dafe0b5f0ab8aae2b2f943d6583dbe35e2047d50eb9b3ae9eeea5cabb580bc34628fe5d00e6f5e5e9a1b5db85d446c276749fe47ad1c495428677e33698ebdc4da12972bcdec64318bc7814e8578851f1905a6ac0874af691da2518daa47b9da4c9f94e832d9d932b5285ee4eb5e50072590f9d3075e76f1e3d691269d76dad090d98a6c32aed8567b74f4dc343bec1cd5a538ca796e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 36b2dd6aae05f5cc143d28532d5e9c2107cd30cdfa69c670004d61657877cbc80e619d2673ca3de8313942f1fbc2151e7b2cd2ab86e91f99a39af44864999bf1037504fdf0561875e7b713e497da2000220ce615d933ad78f04d5ccdbf050affa72953cebe1b52fc2f2745da7e918a235d5e0a55bbbb8fff755704adf305ffdba10fa536361ce984126f0f8b72731218cfa4ad4c6c007a2d3b9329916393a9133b80c951a5731f62b1e8eff8c2c66865260e18040fc603b2479aee5ea762070c09af9149300c12c9bca17f3605703b40bb914e8da315d6db1062f5766cd03d9bafc0cbab492df3f2c74f59a65e4d3b3eb26519b6cf775239d370174032e2c0ed\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 7c440d6013a18f8fe017be3f55384c3b98e08a0df1d71b68e21c8ae75774a80584f9708c21c56f78d0d9bfeb0bf72318abb61c8c89df56db67261930900a1e6353b7ab4615bb4c5fe524b591e6383dd54ed7740f0e0a5f64ecb497c3d503d4d7fcb20441ea1bf678a2edb792dcd4c5a6c0ef570f11212edf698b242c43ebb3081ab17f6271f28c45e300bd367295195db3f2f160f7d6793192dcdf15049e89113bdb4fb526833db559e42f939229c2de0f1d86f0c1b59f6cc27f44744e227b373673c19d0c20c5298fdcad478d2bf4be5514015e5840a5a207f2c61188511d4513a874cd9836282984615369ef4d0d172b6d50a39fd12846f0c0cdba4f8a6c59\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 540c7f1adc69c34a2c230cf1a22a81f8a04bde9da4f844008074f3f68856e2f09fea0ad1ae62df08afbb99b659db9fffd04f940d4f764829a055908a13b59263264a854fbe97eaa251ee5073682fbd7f2316e9ec34a403b05d285e2852a574a25a29d1a1ac4a6d85b74f833160aa292aae2c90f169a83349d58232590be84533448d63f7565d1b3530b295913d7107217d6e98dbc18435da1be650ab747c5fc80bd3b6b3e685bcded82b901b8b58dab7d3ea18096535a9c77c3144e93a8191e0eb2d0f991af331a03c6323c59a45efd1c87a73dec29f9f091b7f7da23f4d7db399ceda5061445e1374eb75653d8422d32c4f36557ec66128ad1511a9c37a132b\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 610b4b5d2a85de6825ab293619162335cf8bb7b234e2b7e3bc898d7123b30f0abe764a0a5c9ee849cc107c6e9dab86cce426b42010719a05096e3cc7e0ac1f0133035756c1380ace2afee84ea82de9b8f612b7d292598d8533a8ce2848ed6d539b2519018806a11318317a864bfa2f2d55db110d7477d4f4f71ab9261477c7d8485beb1c5eba81c52529f98a5430d3eb2f540c7a66ecdebeb1d75391cf1f2d99be18967fc32fb02b515d10f60c20ef63ef6da45f78ec1692b131b2dc8c1b337e78cf81976d8e8908b4f62c0767be8b3a4cd8b3cd2f7ef8b9454eff54795a3edfbfe21cde680dae88544d88624ea27efdf72cd4bebe4a86951e5afaf6170a2398\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 6bfe4b01a7747e8f92a4d9138a2ef034b0127215095145b36e2668e10275c4ee9bd79e397f28bc9422", "75c9f401e81a3d7f0b6e3e191026be641171ee916af6bb4ddaaa20fbe55be2e251e2aa4f07b1291c955af87823e2134fef3e843c8af3bbd168344176d9fbc8d11ec8d8b410fa224530c98b84a01da048b7618c944d8cc7b18ab17bd405d262a1870552e827dee9d1a8196ddd93975d4c487e819e4b2e0cf5dc39eee5670e249437c5460dc4684794760e26244e83e0017e3cb37a1b5947709f9059d245c5e3ff23fcfe3b101e496e7a222bf9883f2f12e22b0a31da932f6ec8003f13a70050e2dda32c01ec3fb80908593bfeb2c9b06e0868738d545475\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 989d2556e8fe1a5bb102c28190c8ee1abf3ce700857a0fe25e648998daf337bc5cd835799d86a3b3c93c7ba7fa9d7feada59bfe62a6f76c694d37aa6e741c1a6a0f55c8202b3649d9f134c3f711b9dc907b5b8ff932379c3b24da57c4684c99cd94b5f0dd363108c06f5b6a7b6f7743f46f726d064a4cf2dd63fe0c26e02b2950db03903f14b7b1a22e1a68620384cced1e54efd29b977cbd58186f10d46d54964ec04f29b8ab3c6b58cbde5630465ba3410c814b9da9903f8549c8455d3f9050d905ba75c8f7feb55a20dc996d040184dcdc3019f841dabd657b07cc0da579f88eaa0298507ae6b2e5b8b0ecfabc254679900366ee747831760ff1667ac9625\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 0000822e8870c00908cbf5032226547d38e423deb912c49c9fcbee66920cd2e9e3197b3fd7428cbbc5e90e660545720f180ac0ce06205cef8735446de30df32c8797380ccce9c0512eb285b7bffd883ef00fe118f027bdc75700e511226ec4da35f406e460fb88f9af2e9c4ec219387676ae21cadfad0fb1d704be69d0ebcdda90dff7e172612c972c6a974b828acee6ca186c71b50376d1ed5eb6c107408065473d53a2ebedc833f07f60f909a6c42464d79d76f94531a0d386213fce5efc2e66f311e73b06142f8245b063b9e395722dbea029dabe5ed1c12788b890974ba1d28492cce2c90e0a3026c282964763a030a7f7f3f76a72843a97d9eee17cdbbb00f4\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 822e8870c00908cbf5032226547d38e423deb912c49c9fcbee66920cd2e9e3197b3fd7428cbbc5e90e660545720f180ac0ce06205cef8735446de30df32c8797380ccce9c0512eb285b7bffd883ef00fe118f027bdc75700e511226ec4da35f406e460fb88f9af2e9c4ec219387676ae21cadfad0fb1d704be69d0ebcdda90dff7e172612c972c6a974b828acee6ca186c71b50376d1ed5eb6c107408065473d53a2ebedc833f07f60f909a6c42464d79d76f94531a0d386213fce5efc2e66f311e73b06142f8245b063b9e395722dbea029dabe5ed1c12788b890974ba1d28492cce2c90e0a3026c282964763a030a7f7f3f76a72843a97d9eee17cdbbb00f40000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = 2e8870c00908cbf5032226547d38e423deb912c49c9fcbee66920cd2e9e3197b3fd7428cbbc5e90e660545720f180ac0ce06205cef8735446de30df32c8797380ccce9c0512eb285b7bffd883ef00fe118f027bdc75700e511226ec4da35f406e460fb88f9af2e9c4ec219387676ae21cadfad0fb1d704be69d0ebcdda90dff7e172612c972c6a974b828acee6ca186c71b50376d1ed5eb6c107408065473d53a2ebedc833f07f60f909a6c42464d79d76f94531a0d386213fce5efc2e66f311e73b06142f8245b063b9e395722dbea029dabe5ed1c12788b890974ba1d28492cce2c90e0a3026c282964763a030a7f7f3f76a72843a97d9eee17cdbbb00f4\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", }; -static const size_t kLen283 = 27137; +static const size_t kLen288 = 27137; -static const char *kData283[] = { +static const char *kData288[] = { "# Imported from Wycheproof's rsa_oaep_2048_sha256_mgf1sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 7627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001028201007627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c102818100dc431050f782e894fb5248247d98cb7d58b8d1e24f3b55d041c56e4de086b0d5bb028bda42eeb5d234d5681e5809d415e6a289ad4cfbf78f978f6c35814f50eebff1c5b80a69f788e81e6bab5ddaa78369d659d143ec6f17e79813a575cfad9c569156b90113e2e9110ad9e7b48a1c9348a6e653321191290ea36cfb3a5b18f102818100bd1a81e7977f9898122273ae3222b598ea5fb19eb4eabc38308a5e32196603b2e500ffb79f5b886816611debc472fac45544070beb057c941378a6868af3b7a03d3f9880ec47d5e089b94fbde542aba9ae8d72c57088d7abf5b131f39098f7bc160f90536abc9492fd4e06f3ed7299d4b97bb03677207d95669f140cfbc20f2502818100a94b528b28f291599121d91952ffd1c7f21d7c1479d99d478885fb161870ee1218bf08472612dbe5497e8d9c650688e09c786961ae3e2c354dc48ae34514759c4c23c4588488961dc06b414e61c0e1e7fbbd2923d31532fe289f96da220711e58c14019808e00414276933bb07e4efb9b4a9b37656917205209f33f09515d7c10281803af0e72a933aef09ff2503df78bafed531c02ff1a2bc437c540cdcbd4ad35435cf511763596543480629b114ca7f780ff7efa32ea0cb6e000d6d9ea1f2ef71fd9cf9948422a165557e37e755edfe70d90b920502eb478bc98a63f788ce3a0f856d6ede7251a383bfa8fa480a81a925af7b3cc538c4bab8c9f7597ffb68011d8d0281802640fbfbcfefb163ee7a87b6483a66ee41f956d90fa8a7939bfc042ee0924b1b7993d0445f758d51933e85179c0320b0c968b48a91c38b5be923e1097c0c562f88d42294b6a2759bafa5428a74f1270874e45f6fcc60f21602de5eccd143cf31241f5921b5ad3983fb54ef17be3b285367e50c999c67247b552fe4bfce945f7b]\n[sha = SHA-256]\n\n# tcId = 1\nct = 6e62bf24d95aff6868afec2a92a445b6458f16f688c19fe1212f66a63137831653cedd359d8cff4dd485d77dfd55812c181373201f54aafd65730d2a304e623455d51125d891e65d97fce52341cae45fb64c38a384a1c621e2713ee6794633f029a9fd4d774f56551eac2176162e162640f25eab873a3451c475570f19228bcede4c67c370a75ed7fabccd538c9819eff182481b10d42f1a9f6a05373b8cf9b71818d467bd3b8ebacb619e8ad42916e600c043effceb3855bc48a629e60ae886f51b2a7876b0e623fb2ce68af4b039242f963adb0e4240aed0ed07f65f1ee7c0cc77d210d0c2d1dc10c81b881aa0c9c9e9499665cf2970d2ccfeeb3191531765\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 207180c340658b5154ae45d2e4e7326a0997c683a26b595e536a29333c4b66149af85e029d5419a39e3a147b221516ffd86b6b4b66c3e0c4c49fe8c57a2f5c37b8704b9b592b80db9cd788a4ed51ab4f0a1cbed63bd18d1f06a22f225866b0c2c417cb23473b7ba4250b1353bd2e5b4f0f937cd2efe5fa38db3c295f7748b970088657db4aa9a76e1ee6fbff166ec1861d00d085326c7384bdd1bc2f400d4f74dbdfadaf3fdc46073e668573e02030b9eb5af58eb540c66677a771194479ec0098d858a2ea45d0ba1e6b32440dfbac745000554d51a17684ca964b02a74d479f1d432ef763ef4059715a4348cfe36a215359712f25b6977903be4adb92febbf6\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 5eab3f0741e63986ed647d53e1cd71df041986900803d0f99c68355d249a15a47dc5b4f70a191477654299e5a2731f3b4eec76dea18262fc696ac794e5f66cbfcddac4472c578e246c26707598055584540b839836b1404c5611ae558a984cee8fd036cea924e0be2474a940f61e0acc14fcae95ebdc59942a9ce9af9a9c81999f7f6815f057ffdc2533cb15d6391d1e2d95f16f9c04209c889a4c359c7d2926d28a66e2b030a416b928d2825627998e5191fb4983a6e65024262d94fc09187a2d78162122433251d1bfcc8e507d06eba2d229c10031261da32ab8ccd15f1c5f9fbf07ed158483d736a110af4b44d6a4da60d6cb519b4454213cf9f0dc560f2b\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 0da290b0bf71a1141b2adc62b5b42b07fc52520cb05d1f39ccca7b7c22d379a6c2f2d93143d057050140527a1e5638243938b531ec3de7014b0151301e49b9fa433482a02abdfd94193dc9c70157e557776a69ded01ecbeac405133595c61165a428b6284729a4746b47d2bbaca9d7432c3b5693591cfee488eb3c68ddb6cde0dd61cfc6952423f994abecee34f5683732b29934a2c498ad48cdd30c149177189f48eefd9cc7232df18be11ff5f7e3af7319e3115997c599e2d8f7f4f663dcc40032d403436d3058a5ea66473660f0e195281ec6eba997d2a951ca6ca5f3c112715c89da1d3dfb20a21940594ed10ade90ed7452b753757d7241cb8a803c373a\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 121196e51a3f4476bfb6adddfdeb3a25dad72d1ea315d652f331a43631ad36724b3d14532110dc44e407b1184618f115677b33751fb0e8786ba220cfa7fc3fce22822eabdd4fc2761c7f34a04e8f13c1021c31adc123a32d871f0da6cdacab9c020222da52afd5c307a6e55e4566944403fda426ee2c6c973ccaaafe2d081ed8c5b1dc00662424e395faed86c9ae19a3a95950c83d2a9ad5c7e7f670faeb123acef07fe7795ad298aafe543504d7811336b3e2ecb1622bc90599a185b34700f8f4c52a651d73ea57e8cfa80e61d9da61f36951c7194ae4dee3c6e67b5757a39685dd3fe01cb87620a54666ff8132e93d7081d38ddc9f079431075e96cca78f59\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 7ae8e4f5494393be144d81517f11baf4b634bb68b2f0ea9b30731035e8cbf4283c0ca99120f60b75ef685e989fecd7a5dc524cb66292a0ab87ebc61e67baca1a8aed99350edee045dfdd029406acb707d85dec9555169cf7ec5118d8f29d182f205e2859a8dcc5122bed640ad0ef128deb21785efaa20f92067dc216cf40c15bd7130e2c094131917950a816da814c5990fa6beed709a0218f4ddca2473796e1b44cff6d7ed601c574a784d0865d3afe5fec023ebe71bca881da5637e3d1d17238c20a5bd0075bac018f07898f74b9e6dc0fa3d5f8d0b274dfef3e6720d8396b34a81ac2e64da5b3e5d7666323ed7c56e8bdd179f3c6b2cf05bcac402513dd87\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 096958786ee7972050d67a9e4b69d6c6af7db7cc674386df725770dd29129b826e39552330104c8d71e6cc3a3014dd2f61b54153af51b0438d447ee939f9e3c13bb8b00a37dea6a068f6c9d27e848b1be7a1eeeb3ee50b78036fba95ae46948ca5b13f356ea24db10f60dc09e4b8bad8f766b668ef72524432080a0ce00ed676d6d5e354984b1078520412525848156d06f0652469f95791baa3d9a798ae537094f76f976faecd5c9ce0c930a75910c63dacf63485cb4b5e7bdbcf4d80e74037eaa1a8fe4b52930bec6be99cf6ac88cf5878dbf6859d456a95dbc34654eec425de84ca2a535d517403a9aada827e7d0093ecfc97ed056a7652825e9a45cb2dcb\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 6583e2f176aa7e7f655d2c53497349c156c8851fb23325589e85fb83bfa857346caba222cdaa3234e71564154298c24dbb85e18822a1d5e7faa47863a64d76874a3cbc70f4d9f137426a344c473fac1dd7008a9973765e9f66c5b492535a647c273c4f78ceb5aa7ba963a2142f2ce4a81f804c002b9b2eabb3c75e80a3c6ceafe5384a544c672a5d28d32bb87115f43eb79775fd9b3f4a2f6e6a89368bdd95ef1d014877b60afdb1", "234acd57653a65459f01b2fbe381f22a739504b4897a7e6c33b6349b276db6083abad9c169405859b800c812237634b503de6ada43013c1d86697a135be78a9784576d796d62aa7819e2ea0e2d902ffdd9cfdd1ae66212ee\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = a0443ba434156d0b503ec662f5eb5b10e20ad0cb8233720ee187ba986e4811dd312844d3edb26bfaf51b4b9268dc3c76072dd47c199d713c91824da23ff00481ee69e9d4cc543120fc33b7244bf0c1ad5fdd1ae9cbada7fe9a70ad0afaaaad8361e8dc4b3198ae661a84e275b60bf2ebb85e512da785d2fc3482294fa11967681d7bceffc08ce0e36f0a8af7fcfb1337186863c2c1c1b94c9ec9785cd3d94d15437c23b775677f3d29a4c9e52f13398fd14661160e5868bca97625aa6c7ecb07bbb479644def353f1f01a4c4100f9adb82c4f6a265a5ee962da58c3c042aa549c9d2de3008e7448e0c4b9b4ac8f5e4d8629873909bb995ccc0825fe87d81d596\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 26aa8e7931ed624bfd4077e3b83ec08de080483a61641e877f493fb7d0ae4dfebd4f05612a2e4869d20d440a64e928b13daa3b79da2ed674b99421df7e7f625a22b1c71136da27db699d3dd96e3364ee0cd2123ab6808930c6bc28a5dc307880d1ab4b03bcd6178a81b8ad52aafffbab387d40352dfea526abedca016c87e9e56ccc4c88e80f579da015b979bcdd88618b2a32ce072918b2e223535359f1ce4eaba5e692e6296b2140dc2304092ebd6f136a48092b3849082b57e70c93b54db55045dd6094ef3d2cfa8bc9e2fd2b1bbe0c7c603ad38d3f40c9eac8ae5e28cbbb031c38d93d3b2541d94eab3a1e8992a444ee4ce7b8d08c0b9a4f623d32fcba14\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 7efb69f1137d6a6e813b7ab75bf0400b3d07a442b88ab048675dc06b0215fc1a2e033263ec31a6c1d2eac56cb0470d69022a48131d1f000bbed70586b80cf6356465c8834daced7ea2a5ff8ef9c44d5ab828ffbf0556a6394752a4a28a70cae20084e1236f042f6c29de5cb34ef73acba5abcc7ccb3a26342701df3b9daa945d9fa5bf0b9b10306655e56370183f50fb8321f8f0cd1c72114791fca5df2166296b509b01a0b291c46110787cebe69d41b3b1e89590bc2f5e5d49ea24ae0f1207eef1aee54b9760553e80c5506a8a8a75732e92875025f0bfd5ead71e4340c8a9fa16dcd5a7dc96d8c4a7dc4e91f47a69366445c4695c8bad578ffe52bb672f65\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 287d7108a1c6e7a18acb0045b20c57cdf2ac03456b44942764a7a9e9fdf3db481d7e202e4c8d733b56b9c1e93d71e791af8325c9363df789b252a5ed0eddc79e76fa41c2cb0a35618398217a390a5e6d99eed905d5554d19c1cf4e30bdf1c2fcc5148b641d71b3f1977b63d232648ddd935ec9499a53ac2fbcac55f462e91065adaa018a39c453ba759bd68b454074153421e2ce75cf149f748b5b84758df8a423d1c50c880af863f2a6df3cd465ca36aa2152b5771f3d507f4a4dd9f8006d80eca23537092287976f218a90df1e16d889fe31e79f7309f3224f613e9b52479fe73b7aad915319a3b62a5936649f7d015d7b09f7fa9f454f78a7c3dd4bf791e0\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 8b65065af82770625d24917d13fd97ae13247cad97910a2651f95800165b76cc34bfe06cbf8c31a7d7ab4f41e05c45a25b90c606378c8e49c95a15ca11ae37e797a00f1b2680a6958c54396be4e1ceedcabc58d9f136b36867a2fefe648a9758f49634bfbcaa48717a116cba58c27539be10c56911aabe013e0329645e8308423c3aa42e0c9b1f4b5f546ddd9f90bf4d007dab52ac3879db755e4f2b96db5cf01950f39076f261f50b1bae137be500b03ceff6ea1bbd80b33424f7faba5cc6b86670fcb7db1a9b3c58bdfd7b75ba9f3ebd34ae32d320c757020a7324df7d3985bccfe0e81bb7f61bd98cb37219312299b4f274b2c90c52a8e1790f52e8fdd768\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 356e91db9bd932c7b5726da288e2620cd79667c2e1d7aca562331ceaa6e4ab47665213ed75579abb147728bcff60787c95107f5be787c42e714d51627fcc8b4ea71c232c0c80ce6163cd0fbfa9dd7e8c1990176abc2705f4ffcf1d5c62393eab1c0ec8a653a90f27a968df8f4af622e96f663fceead8b0bf5dff65cd657a72b9c33265c5c2a8f7f9c614b9c2f8a95246970e6a778aca4b12552da47c274282ad9205ecd2264ae3c649597beaa35c141910e84233776d419448f55019a84e199a4867d68bf213f47b0316d50079dab77299fbbe7fe8929906461c1103a97c2b3f1633c8ef03e820ec675e331cd1fda8ebfedf541d0f2b571f4eaf292ce0ab14c1\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 5a6efdd2d211d50366885e177190ce1621ba110ee46530bd083ba76ed48992d85efd8f9ba964eb33e596e0c0bcb545f89e2c9592ed18495e8e5df1866fe30b27522a3ad9cf7124c4aa23f7c925900613c50b7c18872b4537a750419ae128e913e9a2d87c219e2cd01132972298028e54fe394ef9779d04543c72eec4c5732cadff0b954964706bc4085722b0c595162d11793ab29754837bf5d324e21814ea24b12fed441f20d22148ba5a987b6aa7c7d4ab5a33af8e6c9096c29777cb0d5cfe938a6ed5d30936a5a8f5fc435df14d1c439d1b9d274254e7b248bd20d21dc4652c1605d5a2929db018bd45794a523b217fe0a9a6b0704197ba8126fc8311556f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 52582e10264630e1584155f5e970b8eda9108a87370861cda12ee773411cf556db328c8a2a165d10f6f969ac61b170a75975fbdf9319d13c9535f30d621db19e41da3a04fe40874caf779c8f03bd5d1892e52925b183c118446ed9a335e9c1dc4519fb1253215e5f8d8ee6d49c0167af9d5ca5b1ace067af573e0be9a61beeccdac37b0e54f6b0f70576cb8a400d01136357a8576e81c119d3dd91c7b5cb343692a810362e1e6dc06c1746e071a903a2856b4446f10f78c670d617e5e24dc5c0e45caafbf8ffc4af6b3ef998fe1bfb59aacb16d98d7e389679939861a6722c4e29af731da99d17058d7a12ead0d3d576de796ad2ad596feada4c091f10748536\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 3f5e00347c36ceb79f400effcae92d331aa9f52539041c50dbbc6fd071912912692a16353378276a2c1596358c46f6232434a95a99c573d0b83e4a6e970a73e99ca13d734506e2a2a56744b1872bffd501a80ba7cf5494df6ff9b421cb10247e11d19ac9e60afe0dda87cb351c21ba554ea50b70f6eee4ffa949ae38694ef831020d4e599c6ff4493d07c7b6be06453b84143813a68dfe0fada2317a9f4040a3cf6308090b6bfaca36067312f41bc0c4c01ac00fdb5aee4395b04cdff82cb433b01cd3e70daafc7807b2f770226699e7535124a453f7ad2653bfb7cfe71e120dc37ba88a5be347ad134351c11ff1019b7e42d24b7a3890a8424fae53a10c0e11\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = a166bf7b5c2cf1896c0b924a69233a0a585bd47ed7f2330654aa68806deb0ff68c6475050ab45c691bbbcc58dbc2f5c817729e8e195ebd39d48bd5e14977abae0829636831655917fb5a758fb43a8e505d6ce595f625970685f7ec81cb5592210f5d68c6e2e1ef26b4ef8c92bf44f077e1d5099f379cb8120ad185bf07877979ca81f251fb81be0ad3c14f4d7885fcec496f80033fd4279b6830a20cbdead27c0967e28d1e06ef4bd7ba89210ec0d696274a187dc2f13212f5adf06e9450eca398325cfda73431036ac21b087d373c9f575c941f8cb078961176e31859a61c49baf8ff4f817a11010448d6a0e40dcede1a5ac3befa4c6e9d9d67d8e8fd8b6de3\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 75829ac4d97848dfba21c1688e936cfc736f53fde5b91d5330b63a9968dd4f51c2f529fd8d8f84e4a908196fcc5deba21b5c7300d7381e07c4e0ea2184965169cc9464933ef5a840d86b1dbcc945c7547d9eab245ba64d24946a75961161c2b8f417daf11b163b1e5a5b02d45341384f37755248fa871e6a82f948ad6292f11445bf30596dcccec73a441cea5e5dc470016309a83b6c8f158536687ad2734d3ea1562d46e23bfe8cab498d19b0b104d97182aacf852b6db3c4670109b81af1bd99b483d92b3e4bd813edfa4d0513214dcc5bb4da768e86007c22f11e5fe6f4cb60b909958fb94dea660d3fff0b99db15c2d2e6c8df7478330dade8c517b90975\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 8e5f01ff0c1775870715fd0366a8748531f8b00803df35e0e2308db63bbec4eca4e093351876b794213b904e5dde284a82d74abfcbfff94bc9a8300bea99edd07fe97d6e0b11219f85ac15acc404d37d3da16819a14a438f3f72f8178b312526232386e918a8a7e11fc38f4668c499a00480cf9d2d75aabc0198d3ba9ba345fba9105c6564df5f6ce796f14100d186abffe4d83d57969c1caddc7c7aa340b4d1bab23d9b3982278328ddebe648f5c52588738f3c56a88b3f34c890c03fafc27f485a17677a53e974dc1dd86f463a927f4328ac51bbc61705ae8abd7f45628957489e2defd8e043b955b118fb2a1c407d45893004aae0f945f06add1e45b41a03\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 50c23e2ad6e3f3b10a5716cbf60efcc9f66d2c6f17bf050ba0153b877ba2755e8a0d5406003456", "2266155744ef80547b8af777b0ff764fbb12baae49d02b4f6d65b6cd8f0a397839101d32ae163ff2e6072748d6b8017e5e73e332d53f4e91fe6233a82dbf54f3146b489803575c5ea37ab55a9ea7eae47ad4f1727d45822b569cd6e5d4b6ab759850948186616b5da2a9a316f57d899f91934bbb27edcdfa19532ba1c01f3724738daffdd88c9a18562ebcbc49185b0a817407903476d442c424c81b63aeb8f9d1b184756e0cc0a381eaba45a85c8bbc6770fd047ff1a6404a384599fbbd6a40b212a066e23f6a15cf13e42c0ea88c710e4d70c612074968e5\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 3f92a694661cae336cac7a3c5a6f67e0655d10218a64459739ab9664f2cec58978939512df621e6b92fe3429bb22c08b5103da648a7719e7e95a04e6b61601546955825d60f4c517619f851780ad17f1b8a955cf8c7f1a5e26ca4a0cc19cca751d0790d56e1140a4705e19274f638b7c16d9d3e423a7f787d02699235e3e9e4d543a954f9b1bce5411c8ebdcae86a4bb86c66818a0bab51a2b00383b318e53d95508bab1b19e388cd5a03cdceba0f7176c1782e19ef62cff69352d444b1ce0e1f339e96d8a65c07aa37f5f2cf33867f6c496e0da6cd79b3e2183b57064ce21a1b92072702e555a82cad75107fdfd8bd5e7ea5f119cfbbc1770e962fd0b781aff\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = b056e2513c7c470d897032d406e97b5946dcad52df1c1650d61a1d7b0af59e8cfaec4d9e834d06d819b92a7d440d277e5039ab8aeff25043e98b281ae6ce0a91f8dfbbd1b4998fe5481671381b6a3952448b617ae606f06a0143561a040edaf3c972e611bd7cb814aa4761d38e4a007ca65af8fde6eb25d919d8bd9273cca7622984aa27994d049612424547775c5df75483962143522d075b8c55ea61b04583eb4c0358f9fbb902dedff30b7d8592b57094df4f6345668af53d1aea86fb36dd69b4434bacf8fc12c13802f5b03551ba8f207d4060a9f56e6b7e18c766eb82b6ce6ee0747fbe785c3c1c25fe7fb87de50032b172129fa41a69c3ce0e777ef10f\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 00000da290b0bf71a1141b2adc62b5b42b07fc52520cb05d1f39ccca7b7c22d379a6c2f2d93143d057050140527a1e5638243938b531ec3de7014b0151301e49b9fa433482a02abdfd94193dc9c70157e557776a69ded01ecbeac405133595c61165a428b6284729a4746b47d2bbaca9d7432c3b5693591cfee488eb3c68ddb6cde0dd61cfc6952423f994abecee34f5683732b29934a2c498ad48cdd30c149177189f48eefd9cc7232df18be11ff5f7e3af7319e3115997c599e2d8f7f4f663dcc40032d403436d3058a5ea66473660f0e195281ec6eba997d2a951ca6ca5f3c112715c89da1d3dfb20a21940594ed10ade90ed7452b753757d7241cb8a803c373a\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 0da290b0bf71a1141b2adc62b5b42b07fc52520cb05d1f39ccca7b7c22d379a6c2f2d93143d057050140527a1e5638243938b531ec3de7014b0151301e49b9fa433482a02abdfd94193dc9c70157e557776a69ded01ecbeac405133595c61165a428b6284729a4746b47d2bbaca9d7432c3b5693591cfee488eb3c68ddb6cde0dd61cfc6952423f994abecee34f5683732b29934a2c498ad48cdd30c149177189f48eefd9cc7232df18be11ff5f7e3af7319e3115997c599e2d8f7f4f663dcc40032d403436d3058a5ea66473660f0e195281ec6eba997d2a951ca6ca5f3c112715c89da1d3dfb20a21940594ed10ade90ed7452b753757d7241cb8a803c373a0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = a290b0bf71a1141b2adc62b5b42b07fc52520cb05d1f39ccca7b7c22d379a6c2f2d93143d057050140527a1e5638243938b531ec3de7014b0151301e49b9fa433482a02abdfd94193dc9c70157e557776a69ded01ecbeac405133595c61165a428b6284729a4746b47d2bbaca9d7432c3b5693591cfee488eb3c68ddb6cde0dd61cfc6952423f994abecee34f5683732b29934a2c498ad48cdd30c149177189f48eefd9cc7232df18be11ff5f7e3af7319e3115997c599e2d8f7f4f663dcc40032d403436d3058a5ea66473660f0e195281ec6eba997d2a951ca6ca5f3c112715c89da1d3dfb20a21940594ed10ade90ed7452b753757d7241cb8a803c373a\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 31\n# em represents a small integer\nct = 18416ff48c3a78bc85e1f483d546052d84deac02ce86fcd197215f227b6dad58bc19394f46551111f858b08879bc37c620b1e81ebac4c75fdd71713ce75c24293fa39caf46294d28bf87a46da9a769a304157ea1fc71afc3bfb790da32e84d812a8946d1b3d211fb6972b3fe6674496b2d8056c1503d02fd4c2e607bfb1e6b26b35636b8b823757ee9ba3795d3af2dd8710b0a6da4dbb430bc69dc089f1563d34f0d79431d63e7b8d94c8234649b64223d1e0be17463401184a096feb9c81e226eec26c7e9f3f4357536633029ebc0349bc136d1206c6064fc51b6d2e79578f2b26439c5b3f6ffe1b515740b3c4b94a49430631292968eb50983251bbc7f0f89\nlabel = 5a3564e9482a072bd99d0306d69a7f4595c49fb9c06b72250eed2b50ceddcc4700000000\nmsg = c4fc4b065f4595751c7ff8bb99681d505b7d0f1730d404617940f4b5c3b01979ffcffd19e86f69450e5fc14d9bc27a1f39734fd5f8f663d2d87c444e3e15da8764709909679aaa553d98ddbb1ad7dcc8be04bb8751570b4e6cdc7a8f56b09a4af43053a393bd8f947d7625137e6d84f9b9c727475a98ea22efcf679ee0aa5258da88a08afc53bd8bfa19b0131d6f676fe198a9c6a1f84174fc69ccf8e34e3617f8ff6c4192075cd6668392523fbecedb27578e591dead78c80a89be589a1\nresult = valid\nflags = Constructed\n\n# tcId = 32\n# em has low hamming weight\nct = 23ee3b4df8ac632078167f2f97a736469c6e6b39ced4ddc552d31f0fbc7ccb478adabe56cac20cbec1a0084125aefde0bdb575d68bd74cfbdf5f3bfb4401fa573645c223568918aa911c1f5a01b3b0903e91d82e8c04194df4bdc5facb6959b4df23593c7925a827f029064c75a4bc3d2899649025670e70f3e01336fe961664563a3bb0c7bca66d7eed48326746a060c5d3f18a160abce399917ab2e2386d0f1c2d7c9105d16befc1b0bfd72606ec300a777ac550b1b0b807b7e46467db5bfe0eac8bcbebb2df47bc65fe42174368595b72650b770f47157d2d14c71cebcaaa5cf567ab803e2bcff5f4298c06b1983757abe02faf4c7c5f9141aface72ab98c\nlabel = b503d03521b4ffc4b855c94e911a6117f04c76c6fe8000f8031e705486ae641900000000\nmsg = 03fd61590ddd05555a6d46d1e8925293fe46fa168cb06135c2e7c8d36551187e62016f40f3eb31751f3690f5da1aaba5c16ffa650b2e6c25f3763fe324929c4becc7fb28a383d66c31973c72eb13ff8c87a92b495f6f0619290f8675e9889f49d30d5e77b2115e8805eeeb1aa9324843a75e0bbe70538eefb7978a0ea7beb211e67bb075981673517518586eca5b04ef3ad6a3a978605fbc0e67af7fe412acfcb550d20c9900f4d71d7829a107cc51d663db54c57116959998f3946b4d43\nresult = valid\nflags = Constructed\n\n# tcId = 33\n# em has low hamming weight\nct = 94f4edda147a95cf29bb0402d0413e5421b5ae347c31b2ec3239bd808c4e5b609d0ce9d9c3a12e47eae6c5fe319288553ba25e8932d644a6387087b4e495ad4bc124596d9440ddd5376f2c1844e61a7c51bef528ad20065574198ace92d3402dcf4df8ff5d68c06dafe9302da4e075ab0e011bfc1bbaa55b4cc1bc30dc9b104539c21d60b6fc7044e0242591360751fbeb2883099602a900cb5320195cb7071819dbce2667a7532aacb2c9b96f3e726267b709c5c0877280f5d4efeb5d4155bf8751f9560db4bfaf8150a8f27b366c3935860aeb106bd88914b6bccf35bb6eaf9217254e6dacd88f0f1182d6cbe25635d4d9ad76a06687d2527ed7d9cbf50803\nlabel = 3bd80a6378115c0c946b4e3af28c6c96d1110621e21e8633416e9c8ef0a73d4", "000000000\nmsg = 90fd851c721e936df0134ce13f2b7f4469d58f69f85f4bebe2726123cc742c1c43293f85f50b5c6d220f40c387a1f2bb2704a16508e267c6c4324a82191170e67cbf57f56dc02a706e3373e9dca1ca0f7703804c0093e9f8a2ae5502d2ccbf26dff3cd179b5b8f97959d5d2a9400b31b01ee09caa6013d198beb7e0979aed5263974591cca36ceceb252110e61bebdf0272386f9571be79fe3afc8478eb9e7155759ed20e2a2e537d98aeda18c374ed9b48be8624984ba4b15bfffff6cc9\nresult = valid\nflags = Constructed\n\n# tcId = 34\n# em has low hamming weight\nct = 68825b60b53cc0bbc92e4ce994b0dd270bad0eb657e41acf26a9e3161c5254e4bd38b03e90d7453424e605a372bc185f3ae6ba9ff58fab0cc4c1cc158d7a1e8f1f0b30ac08789f7576fab2dae7e86dae60d9af793dc1b400c2d25a9d3357ba0d27361d74a1b4e1445147a45875901d70f3190a0b34defbdbec1cb9ed3014f15a1a0f9000d9b224fba944e791d303d816bafeb8e65dfc6d740d04719c4ab36c4bbf4ebea5fc45ead338825fc5a71dd6c25f8d8891a4f8d6e0b35483c75c1bd645c3cbe9dcf5a17ae5cd2abdfb132b2b37102122a9bfc42ceb3eac98f2af39905b9cece5d122b70c95239062ceeab798691dd2b88028047924d5ae814df78d555b\nlabel = 48915cebf2a2ef9e5d5b92cce033b60456d72af1ba54f88f5074a36a643a317800000000\nmsg = 0cf83d297f20f527983f3111716a68d0d33d97ee4f5d1822c9e5382398542bd532316db29d8a8f92bacae063aca1c1cd9bc272fec688b3f67956c662a5b2f895509fe6f2406f0674afb0f0472aa205a7d55a092a5ced1b1c1b92a7b93f9c695440a3257e007949d27098410454d4e39612c7dcabc85e19f3421734bb2717de00c041f569e8d43006005960af8f573e13867911989a4c678da8f15ca0278ebbb21742fe33b3613f22afca45ac09f815b50155ecab6eb07806bdfef37b5dd5\nresult = valid\nflags = Constructed\n\n# tcId = 35\n# em has a large hamming weight\nct = 0ed3b1f6a9b200147e535042353768280244b3c831215928a2b2103df02b3613f43ecfdecc6a8f61ce0183b8c60980f82c3dde3a731ea25a0ca9b89e5f68a7cd6cf6c6475f591f24b7a89a885a46edb0ade49e37665219a6da9afbbf655943912636af85e0bc859f43d3c48b4e77c9d1c0d641a21fecf4957185b805aeb908c6387c9d1c8ad85a166c075942f0cf68ca70f8174a9d2a4e5589c7005e2c423ff97c97a208da51d9adc0cb4588a257c0a1d0feb02eb050f9980309abd09258570ab2c8186cc357a9f693107c84855ff6ee7936b71980de42883e3ee7c1c6ddbe03d16a1f1c5bc5f987e6de9cab329ed7a31b59cac467d7b6432cb40f616ac9d4a8\nlabel = 02be339a2b399ffeaec99acfd80f50ebdfc8fe3021a9a432ddd4134b3466b4a800000000\nmsg = 2124d6fdfbbf77ac89f50a235b0af69edbdbe9ef3fcde36441d7022afdc8434431b893eba822cb82585384e36298df45b4b4415a3bdc494604305272f5e988f2cc14a56043421557d5e5dc958fd771e4d509126656d21222cb8e2e1052ba38286c5e3d0be0f4b1c978a61bd1e3652ccb63fea82ec46d6b64863c00b93a3243e2328f70f692aa65f73976335eec5b29a9542befa03d5e82aba9dc285af0913382d67aacd513bbf6f5095e4d5f9b5ebfb5ddc25cafd888addf9ffa068bd4eb\nresult = valid\nflags = Constructed\n\n", }; -static const size_t kLen284 = 21160; +static const size_t kLen289 = 21160; -static const char *kData284[] = { +static const char *kData289[] = { "# Imported from Wycheproof's rsa_oaep_2048_sha384_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 5a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001028201005a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb102818100ef885b87e25c29d1ee431d1f4ace787c4f882e92d12c4b2766c84f89263106ef0be0ddc4de3bf061a2ba46ffe7c132ae67d337f04dc66daeb9de553791f4989f50b224c981812b5388d1c2b5d53349a61393bf6611995b6988f143c278ccc260cfe82a6ac4a6409807eab32664b7ee3f1c41dfe567e097fd7afe8520871a1c5302818100dbca582288c81a30d6581f272050a5fea773d711301bdd6ecac7214e00c0fcb9498f1e585086b14463cc89a02c2e77a89271c058c6f69f3cd13553994d8a76cf62ad9e275217720d62eb6e888ec4509cea474b53f37b458fc956dd31df3bb6ec7de659e88e7e709fe3be6a8d37264c3d20e7d088276ce7651a403c68d6c47ea5028181009d7e87c851d28d80c5eb84f375494ab959c5cdf1a4ed3dc0fb78cbaafedc8f958fb6dbba3cf1263ddc3424c8d0461c9fc60e802255d1197f20210ae10debc88a4011d1d4587d68d2750c8ebce620e1d4fbdc52a5b6fea1b7435e7752200169f123e2a0393171aad90ba38b05bc859f76098b5abec8cd48c2572390bef175fe970281800eed602d00432edc30428de31763c2d257c71b4d348a3ff0bd5ee6d9285df30c167ddcdebca1593abed86e646d7bbe6eb97b7647d14380af1dba54722dfd0072b74df956cc5181527d6c65f66a53d4f1c34b9247225b35ef3d0a643d75ded55e9c725f9ad6caa995825f35575fee7ef10be2129c9ca8ddd2550515d53cf8dd6d028180101d1f49afb04d065bd8c29001d212e737bba696108574a330a9cbacc51bf6c96594f37fba9c8de156c226371d49902191e1f69d84a1352193bff29e318eb36ede6ffbab93b6555ecf6addca9e134c20220a2d24b03a6d23ef8c608a5186769f66fe2f6b21bc39f6277ad706038b907872c4716609c223762130ef03616482f2]\n[sha = SHA-384]\n\n# tcId = 1\nct = 8402dbdca0d3e9ce70cacfdfe3b2ef26ed92a6b8dc3c70640e06d0900213824a79d0cce6d0d781306eb236384d69f3ed9d921db8203e82a0cab04a51c12eb0a3fe668ab0ecfc419d3529f9970d45d9bac4373ec312b2a24f0c829aa0c0051e44a25e6da5bcccf9edc6f1d87f152b4770aedb8a36993d5768cd97c302abbcfe9360baacf437d68f59048280b560f5265e7f08769103468338bc9332568c20c7efbeddca8350662d64964ae5338138ce13c0cd0c9eb6f0b2516ef227bdbbe55d208f470ec5976116865f42897e63294d4fdbf36f6f4fc43dcb79d2c84d30c5f69ace97abe77a1d82d3fd815253d5b573dde8eb01f96416085538e94b8a0d95de57\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 858406b01fa56d4f216e36fe4fb2ba991130cd5ef56542ff60bc5ac95eccdaffc40bedb373babf08a79620f838d874e574935604cc15b2dc0220f84ece76b43d5239c3012f0cc6a446dece3616606e36026fb1544b26ffb2d0dcbb954eb812e96abdf245dfba3ea30aa5d5e7b81973f5c00a9e18a5337bdcf046c55d7e5a6028b093e6fe5e825807376a27134974bed314226cd65e17077d721cb52bb083e5e379d2cbe8594617908d9b90e0851203ce7d9dd8df667e86c3857c2bf9dbbac70f939d822c188de67c60f3bfaaed36ad4932c2e28bf9a5460bf51f2ad381e96391c4024643c19165e63db29de6232c7bbf951d04d6fd67df6d0dd08c4d164386d0\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = c5390503bcc08959ab92c92ec9e07a59cddd2ca4929bdaec89efde9c4da1011c1be7484eb76b649769f3d258219a2503464c284a1d3bf12af8e584c45b717db7bebe3255a1b8aff1f19bc2ae26672d2bb1cc3d05ca6f4af9bca6967f22593e54d7c42b10e19735d483862850b7f184fcd38a3f895cecce365b68f922083c4737c16d152d70aeee8edff5d3a3c0153b33529b8faa73bccc4e2342b23acc227064d09fa7b66583068d9ae9978c14f96998362dd9ed0f67290b8eb220557e257daef38f118873094b8733c6d72a1aad6e40601cbec847690842a38de4f85e04e9d0edb39834571adb0da4dd158f8e22a6678db45ac86ce797d8b86d4d6de844c0dd\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 5814d6f2f3b23545e005a4f72eb0ef659fc07a8374780f8eb9223dad417bff6c96a91c6071abd678a8c9cbf0b4735e4c225e984669224e88655dd4f05adf1cb1ae96f7dc7932a0b387158a915f7563085f44c72a41f331e0e17e6895e442f7492151397159637968b15888f851323107bfdc1cd419d6ade56b974aff865d5823daad3d0cd8b1a94ee1767b70fe477c64a5bfa593783aa90868d4456f098630eb32ae71ad4914c142c805a69d2fd0e93563feca567ed922514c0c8867332c053d4912cd17d238eb46245fbeb03439c6e6adc1cac06d1eb41d9a185057431b25d4600684e057e571dfd1a573dc60395e7c2e3d612f9f66472f4dff284f4cad4e6a\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 8472105e089af324cfcbad5eb2ce2f85185f2e2f5a9e5e302022eaae5e40b1507dfd4801ac5d4743b18b87d916b2bb55bba812735831296dfcdf4087ba4a4dbf852f0274c7e37dcf2682c3aac50a70b6d08835b0c59e90fe3ce2f3b6100863936a67af141236daf5f588f2eaa09c391f5728dac6a007a02dde61bc69c65d4885149a344046d66f1b91711eecf5196006fb916ec209e5bd251ccb97b08c31aa1ebb25b44028047ae4f61adaea5215e0324af6d0509da3a3843eed6ae53fed3a1e459c7aac4d94f8c85611354e0e24f7630a42b184805f67aa7ed0bfb57e6136c43261f81940338fb4aeb662d29301ff3a0a5a01aa20e53f4041c20f14207ebe96\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 3645e92f0c46b7d6f6765575fa9aabde09512564a2d2ac80aa8b43710f34c4aff72d2df02446cc548acf30e34994020ed7301bba6b69bb4e9abcc766e3c9284abf824ae8389fba58bd2633b01edc3ab648788d31bc7b404f6e079a650dd8224b0642fd589b3f84cc393d18bf8b3a1f65fbe6684f6a76b3e767d5f2953db53e61dbfd69371b69b7112284f256ff11beeded9f4deea47350c283d825387981c1d51d62ca032485a1a6f8582148e7b80d2c55daae467576ef45be6f00e676eb5a40da88c18573ff012267859030cc614135dca8694dc0a0ef0d00e62761999d93c3e8651a11fb43a028370b481ddaf6cd8c4a086aea2e658d44556a6eedd64da5d4\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 4dcaf6ae82481350b49b344e2ff3348d0064b63d4a686283cfe7ca8ded4d73c55c9cd3dfc6656e3fd18e45dc69dddcc82a33b46531f3b5b7682ef1fa0068ec42583a2021e7dae3908d924a6bac3bcaa123c88afcf1dc6e22ac6be966723223f5f7aa46e2205c6e6cc594cdc5cbf9315c641a84665d66408a7b4f38ba6672fe3c77c53ed13ff5ca5e3d78ab51fd19186802709a0f98d7de5efc10ec7aa4448c0e89d506168acda5c85a12badb8b4104c6b6d48ad4cfaa4e055484a8c4009bd579e89b81d7121d4bb40e94a31f35ccab0e71cf767158139e7b413912efc9716d8de8f088467cb77f8e0649aaed9ef9f48df64cddd9b75ca5f077a08468a768cdcb\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 8d31b6a86582c2b35e86fba1af4d02484ea81326f9728c22761cfe337b7d0adff787e2cd68c3b71f22cf9d0c141e273ba9c61cd6c6cb18050391279456c3c930cd6cb2df70b295e3c062c93d60d8884a2cff2839364086208f1be9007247233a04805151b46854f9da2b9a9e0803200afb3166db9907c9406b002013d5a566e4ce83b0572694bea9d3cbedc796fc4538f0315eb920bed4267b12b9127c683e83069e8baeaaa911c8f08d", "2457539c731c6a90c62768fcc7169088b98c13a291bc70bf6d10372494f072d017cab2f2ab8ed682b4514f576af2f81b90cdc13a266efea3f98fecb4a2ac1062aba39e47e8b3bc487156bf7f41cb7872e402d514df86\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = a78eefe103fdfad9987535d10be6543a0092d1b49aef20a8c40df71b6470b560c64d1cda67b47338a572d695b314d4ba50f836deb746cc5a862e50c76fac689736c7912d5324db072f029fba10c9cb879973473e66f4a617d6aca9405f2556d44bf1d6fc3ede6a60a52334cb09cb0637f8f247200fc0063a0e8cc34ef01a6657a41444a942a8c72248f9dc2d15a26e822e0ef73ea5d9ec03060f906790510d88f46c38def40397a2aff2b77540dee5963a0ea5049904235b5e74da536c7a3f353d9cec5c50a5bcbfa07b9476aabb8de297653680823265d7afd8815267a79953301d7040e08d5981c1bb8958ad5bb3bb420b02449a25e8fff1d216fdc1f3cc2c\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = bd682ddc5226f61206b2464973df9155f6c3474412943f51dd8c8e1fd00a31b6ee2cca899db0aba83a918bda521014808790a0455a32cc765c19f088a0e1773364e25745eaf015b185ce69c7886efc16b3d95fb1668038eb9ee812985f965e3bd9bb84b8da9f1bfa324d050af36d93bc793fe58d6762d927340136dfac3ba149bbc38b4d3e4177ab95fc6fd53acaa925180b88b71f607620243d45d3bad1e96297fdd339a5a25a37436320e549742a5b1266d0946e056916cce24e002f7ce5ae412046bd0c519efc417352bd6d0e95920712d11a7afe3190afdd3b5ce510c0df7ff16c2e80869f69a2cb735f34f9c260b472ed20c3e8e61b2c38f564dff60ff2\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 672d24c076429291e410245c34e35eda0356fb22076601d55bea1bf309a8734062f44ee6615df4fa0067d43e86cca0a823bc4089cd50517fb3b921585ba0d1fbdb131a24685c02cfb25ab56ade1de0f6e705519bd5ae7e4eb2cf2a63ba9537ca850008712825cb2a2873dc76715c9922fcfb3a3acca0a4f15abfaf49fc298b5788bc912266900cb82700404c502ed66c83b6a4e93830bf9ff8e547a6c623ee99927dca03447fa1af896d76e59ecf3ab73e0453fd0d768f5ea1f4c8252f6a01849f8098461147c8e137533a89807968520c1d18b2cf62677ecdbbad1f09615c6ecb4939c7cdc17a53dc46f8143c36e3ebc99a21ef9320e770867d90fa3f083f9b\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 17652dc5457163c0a622e1a52d149770af1b5399b75cc7797aec3238bf8d9a67061e1d735e67f76f4f6f697c5c4f5eaece14eee288609ba0433fb17d0f7c54c9f5593b0059aab6e8fa94235174fadf7e601ea9968257bd9d9ee85631e3b1ce0d7a66294bfa68dd265f921dc7806babc31d404c35e51f4ae61c4b7b9e4d44f8c8decc0bf99b4a4367b53e3a61f85683ddc9c0f7f1d2186727517d1f9cf206e1004b0f57a19cf978456d669d9ee1339ae3329ecbacf717f13c51387b1ba0ae81718eeaba3e6227301ba8ff149a1c6d286e1fb016919fa4c8c7b78acebacb47606713b58205d15baa11755e7646b20dab4646a02d374346ffc09f6beda72a7f6734\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 02776046b529db8ff90a316f91eee580346bc626a688c0978fe5d66c14aa9ad9fcd2a887f98b77c8f3037126d32382dbf6a8109f8c0120e964a7519fe5bb9d1f4bcb3cdf761a19587b4914cde8d43f6bf31ab3d71ffe29ed293ea2202e5d383075cce7f9b83e3366563c148c72648a0ade863be3613d715dc9649a442cd2544762f3d2f0c0faaf9384f3f5b021200a062ee74d8b809cd9d8bfbe989499d9872402a0a490b654c1f856526334dfb84e73ec37cd75f63151dbfdf78d5e062977ba707c504dca2509fabdc85480fa2bead84f14c1a7197e2f41a6940ab4768fdcd6c72439be6f25bc600e0fc882348b73582adc13c674080d9c921367226230665f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 3102a70e601b928a6b350337b6e424d3ce2850bbccc6de821d677f2c406686c24ef6f3dc6fc450f873a7dc4ccc8a16ecd1c35b9374ee480465b7b312149538fe2e1d3a2a8b017fc916d3316eac606bd65b9af6d6179fecbd8ac2ef0f6f59082612dcf24786b4688a6a8659a46e5a8f941ad7c11a2e2e7275b900f0b8b0f6ca4c21878d96e876b05b3b1bc8e0d5548d433ee56f37722258d988624f0cca3cb0976c31c395f06931da563c3f2e134e636d5c50b4f4c32eb3a596b360ba0dc5f7fa2beb8f8342787d9f9e55ec018556edb4ce0f9d26b0f410ac877073ca8d40eefa2a500bf4489bad4fc60c373c576ab0135a612e2711c6fe04a07566f4c17d021d\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 2393ef64f33218e38ac80c309344fe33a1deba9f63aab29e06529f5fe5736721abbb792e787f2df1ec8db8513869c1fc1f0a78648f5613f70e0b522cd5cd78c01e121d3e527a49c248861c47f7b108228a6c4481451e2ac834029a48403598105fe99b3f060296043fb609277fff1746325763a5fde8d65e6f43791abd7b113fd7a8281d2629caf7f7615876dbc702aee7f2f01829b506dc336e9ebbc6147d94d853ead79693c3c6f956a18ec825be43084e23a3e15d31a888a885152bd7cff34cf3de284805e8358c7ffdaeb56b2257e3c7c1fe8c2ced183ee27fdc99e4f74758cd68d1442e1dcd05b62ce431c26c0c76852750791375345eedf9c9848eb272\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 6115fe66f94af6dc4f2cc46e552710603c271eb211261f415bea922adb0dc26085fc650758b79403dd76e035031e5d7d177abb752f4b1feb0bc44e13cf4b17b9b95b553c3eeeff2278f827345fdf3308b8d534a1e4a07be9ebd60c96fa45a2a04d6c91292f13223950466e441550c8903677be93f0c40562d8c51f9d772b7e2f721624342d6ba28d29b628ce8cccdfa07e50cb379063861abdb0d6876433243bcebe75a3424322255b5cbb44f2dfefaa9a9383296ebc44c6552f87e703368fbb33cc83de4f9027c588ae3d9e567ba28bd8efc5a4b173accdd0d0793abae5d2fb933055553be82eedbb6711e2ad648b04098a17e82a2a0ef4c6745c15639b7c85\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 4054692a9438bb2156dff805a60dde5ef1812df0eb8f7b4eb2aef74951bc2ad44850b830f558407cf5bec5cac20a26ba54112871a24e138ea43e499a7ff60e612124d06e0cd88533dd7b64ea20277fdba3c2522bdac6f79d9884ca1f971f1db54698e4cd149cca7674210f3beb08e1ba5bd1647417b5eb25116b94b165b80bf69cfad68457cf79dd3bdab1ec01b757d5f1a0286d53d8340ad5d53b0531a94e91e1a7f0fc864d7db4f9f0cc9ee0f9a6eb03305d7ebec3fc997923e7ca879d6f458ddc4618d2d8b7baa058f25c6dc092d6360b7f2708a0f28ed44c722f39f1e42b6aba4e4df8e51545df6cba4ed7b4fe8d65a6c1ad09fffde83e962d728de73fa4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 14c56a1f064ef78ee6a263c6b551d355fbf6beb7bdf6769999b86182f836a63f1f53c629243ab3dad581e221e8b51cae706698970d205f4bfb3858d265d05e0d5c9ad973e0a30f8fa6b249d1271ae931132ddb7d0b5a665c4a4f178aaf036a25ffcd5225c6edec847f9ecf949a93dbdb30cdcda198c95353033d87b3cc16fcbdd928dd131f4874dd4b50a8a617d049b475308d649c84444cb44e8544077166636ae6b64c4600029243f0acca7182a32e5504d98fdd8ab9cc3136aa0601ee63ee4022ea40cc6525bfeaaf3afcf66b0087885badcbefcfa31a0262840f098800dbe26ba91138600978ee739054ebae9fd9ce8566aa2a24989688b4f3245c7be832\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 81ea170e37cf844e0e3569cd9a1c88fb35d894c820fa46ea6de145613e51a6444404b18313bb47fc27ce81b953416bf40d9c86062f50cb7d547f0cae0682408fb6d1ca311ad617435229c6c1cd118476a12cf1fc96130208abdffe50101cf07ad3a318a8312c6c23fe9545a21274a169b1d7d4dbf198a1a06197c4d77c91bbc6b8591f66a3673d1eae4fdb0839b5925868ab8cd41ef670bbfaa77d12a9347658a969b7d0e4f51a1efaeb3339c761b8087f865d580263306417a275aa2a69a5b7db581b09b636f2dde022a7f9d2b2d88d64c02bdc3ca912ae89f10a0db867e61e7946057162259f9105cc13ba8d5125bcb3c49ddced4ffa833414b5f21d1e8446\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 8d86dc4148c4cdb2fc0fa7a92f48a1efd33897a2306f002aa39ba338cd20c44bee1dfe7db050145d9deebacf296cfa651f5e2e0f1a2b9e09df5d11dd564e2895f64c359c590ce0f400dd774f67c2e1ee178c0e5127ec30a2154f74b4b75b7f3788e51bfc6a54397f28e88587ffea825efd6cd1e5b6aa1464cbd5ee1aad24cfb86446687e58a2e9604f05a40c237bb94300677cb65a70505581af2fe51e0d7d82a08629db0499fb1d360f1f1a9affbd75579b98d6d976ebe2e407da9121cfb3a8b88472fb868d82881be87cee4d23c58a27b3707f2771dda0800ff269968bf5393a5d8c83d5d4235cc1eaa8c9db342b2929ad0ed8638044915efcecc507f66350\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 3e970ded411dc9ed2a18ceadbbd9d5470209c1dfba22e7cc3287ddcf10ca0c28fec6cad62227a156a5ee2066a995ab28a121ca7599992abfb75dbe987a4c190b1c58af8b13b11ed247", "24ba41e4a484fb35a38941c6838e4045fa8a048ea3efb460b01fb2d11aabcedf4ff2db5e889145bb2d729c8456e51f29608eb5aa65a1908fb94beb6c2a89778a1f2389821f15f818865e38568eea9aeeba0366198379b13723c6c37745b7ff7e4f7164afa5394083592e7d102ffa72a5ae6b3da8d92b5977fdef3a6449696c9e5cd2024a9f795e81633c243db6e74e566cc68ec4043a89cf69e020ed10b6590082e1a2015369029aaa673a92f44d6e62604672559fd933\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 731eaff9f54ce72b0572eb6cf3d586b898dd9d96ba82202c77a63f1d98642920790e092ed5a38abff54b6d12d7985efde0ec8b6321a5b8183a80adf3c68972e90f0027654e2c585eeb99e5edd7a9b56b652acc0051b95507b3daedbc6b00203f50553f432e612afa74056d0fae7021159ed95477fdc5719627c77af1ef2b2ee3b8048da4ef6ddb1662e35aa560cac6cb0beaa7d811eab49939b6dcd3cdbd1f00beb875bb60fcdf2a006eded6f449bae338908a0fe181035f14e6fec4f162743438ae2d9bdcdcc49c7cd778e762458bf2669b35ed3d498ada6041342d12627f14cebbab2c55daf2b9e4e645641ce07961b39061f432b6ab787a175f8e68f2c98b\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 00005814d6f2f3b23545e005a4f72eb0ef659fc07a8374780f8eb9223dad417bff6c96a91c6071abd678a8c9cbf0b4735e4c225e984669224e88655dd4f05adf1cb1ae96f7dc7932a0b387158a915f7563085f44c72a41f331e0e17e6895e442f7492151397159637968b15888f851323107bfdc1cd419d6ade56b974aff865d5823daad3d0cd8b1a94ee1767b70fe477c64a5bfa593783aa90868d4456f098630eb32ae71ad4914c142c805a69d2fd0e93563feca567ed922514c0c8867332c053d4912cd17d238eb46245fbeb03439c6e6adc1cac06d1eb41d9a185057431b25d4600684e057e571dfd1a573dc60395e7c2e3d612f9f66472f4dff284f4cad4e6a\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 5814d6f2f3b23545e005a4f72eb0ef659fc07a8374780f8eb9223dad417bff6c96a91c6071abd678a8c9cbf0b4735e4c225e984669224e88655dd4f05adf1cb1ae96f7dc7932a0b387158a915f7563085f44c72a41f331e0e17e6895e442f7492151397159637968b15888f851323107bfdc1cd419d6ade56b974aff865d5823daad3d0cd8b1a94ee1767b70fe477c64a5bfa593783aa90868d4456f098630eb32ae71ad4914c142c805a69d2fd0e93563feca567ed922514c0c8867332c053d4912cd17d238eb46245fbeb03439c6e6adc1cac06d1eb41d9a185057431b25d4600684e057e571dfd1a573dc60395e7c2e3d612f9f66472f4dff284f4cad4e6a0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = 14d6f2f3b23545e005a4f72eb0ef659fc07a8374780f8eb9223dad417bff6c96a91c6071abd678a8c9cbf0b4735e4c225e984669224e88655dd4f05adf1cb1ae96f7dc7932a0b387158a915f7563085f44c72a41f331e0e17e6895e442f7492151397159637968b15888f851323107bfdc1cd419d6ade56b974aff865d5823daad3d0cd8b1a94ee1767b70fe477c64a5bfa593783aa90868d4456f098630eb32ae71ad4914c142c805a69d2fd0e93563feca567ed922514c0c8867332c053d4912cd17d238eb46245fbeb03439c6e6adc1cac06d1eb41d9a185057431b25d4600684e057e571dfd1a573dc60395e7c2e3d612f9f66472f4dff284f4cad4e6a\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", }; -static const size_t kLen285 = 24258; +static const size_t kLen290 = 24258; -static const char *kData285[] = { +static const char *kData290[] = { "# Imported from Wycheproof's rsa_oaep_2048_sha384_mgf1sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 5a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001028201005a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb102818100ef885b87e25c29d1ee431d1f4ace787c4f882e92d12c4b2766c84f89263106ef0be0ddc4de3bf061a2ba46ffe7c132ae67d337f04dc66daeb9de553791f4989f50b224c981812b5388d1c2b5d53349a61393bf6611995b6988f143c278ccc260cfe82a6ac4a6409807eab32664b7ee3f1c41dfe567e097fd7afe8520871a1c5302818100dbca582288c81a30d6581f272050a5fea773d711301bdd6ecac7214e00c0fcb9498f1e585086b14463cc89a02c2e77a89271c058c6f69f3cd13553994d8a76cf62ad9e275217720d62eb6e888ec4509cea474b53f37b458fc956dd31df3bb6ec7de659e88e7e709fe3be6a8d37264c3d20e7d088276ce7651a403c68d6c47ea5028181009d7e87c851d28d80c5eb84f375494ab959c5cdf1a4ed3dc0fb78cbaafedc8f958fb6dbba3cf1263ddc3424c8d0461c9fc60e802255d1197f20210ae10debc88a4011d1d4587d68d2750c8ebce620e1d4fbdc52a5b6fea1b7435e7752200169f123e2a0393171aad90ba38b05bc859f76098b5abec8cd48c2572390bef175fe970281800eed602d00432edc30428de31763c2d257c71b4d348a3ff0bd5ee6d9285df30c167ddcdebca1593abed86e646d7bbe6eb97b7647d14380af1dba54722dfd0072b74df956cc5181527d6c65f66a53d4f1c34b9247225b35ef3d0a643d75ded55e9c725f9ad6caa995825f35575fee7ef10be2129c9ca8ddd2550515d53cf8dd6d028180101d1f49afb04d065bd8c29001d212e737bba696108574a330a9cbacc51bf6c96594f37fba9c8de156c226371d49902191e1f69d84a1352193bff29e318eb36ede6ffbab93b6555ecf6addca9e134c20220a2d24b03a6d23ef8c608a5186769f66fe2f6b21bc39f6277ad706038b907872c4716609c223762130ef03616482f2]\n[sha = SHA-384]\n\n# tcId = 1\nct = bf20e0e04ddbf103a5133227fbc2696a0acc72f76f869240b06aee89c25128386d0e0c16927f98c1ff3b22b4fb61b508f383f7ea764396b2201e800c793c81a4d38e20b03ead703f0b164d7e7bf4708ce970c5907b139bdab8e2a1922989f97cc2cce656fe37630919626d966222c462af0e72ea36f3d81678bfd1928caf9111079edf93796d2713deee2b85cb04fa63d9fa41d212345507c90d04f4c6c80a114b36416cc55d78eb969d904269a69bf2e839075543955616071a45bc1678c64304ff5f4c22b207c27703f70061d1471b4704357c13dc44e1b3eed0842f578e3e84e28184f84ef6f80ac806c3ccc0afdeb17a74b42693f6e4b2a6c76161363f3d\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 0051190f85cf3bd0e9bdf5c937593d2219db50ba7d0512d38807b31eaa9310f0120320f7fad7c6b135f29cb17ffa5b135c0ebb1c4c8112a66912aa92bbb3191d5a284884f19460dfb9bf232f0db6c207ff21d53712e1c8d90bec036426cef56a017e6175bf8bf238c32050188869301ef78d3984762038bb72a982d5c9c9501820196d68c798ea29d0d60f7628625ffe975ee0757c6b70bf87b8219ddf9e6ad324ec9751fd3664887336bcaa7af71c93083dd96702e6089e2b67abb763193f95d4222b9177c17b4726998240ce74205f18cb4b17bbfc73185176ad761c1d48e633a4ac7adc2f61dc95798e530d20817b721311be824dfcf7629fbc533543280c\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 0a5067a97a17114be5a71697f15694d98cdd6e79dcba1726a38ca660ae4fd9a1336df2de79718cea176a365c46a24d0468c2a719cc1835e5b60aa64424a8dea0921fb641458c279c74a7ac74474126becc25c84cb8e411cc7a119c78298a2f45658c7590c3b40dbceb7c41c67e73d41b46ac55cbea541c64a91c521e377890cc031a4933a237609dce1d9f76684641417a44759662e166d837e77e9b8b3fd3343cad26de86db4f914ae83893fe9658654d0932b6a98ca5735669d667186d894b5d472a1efef4b2e06035189feaf960ca1242b620264e71c47307a8a38bbae9bc3d1bd5508ac37f1ba770bfc36a50a543ee204e5eff5310fe3bf430dc6908eb9e\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 767bcf450f416e428980a488bc8307674976253008d81340a2f519a1f4b936abf02028c2e7614f4aa31a8b3e17c96b4922340a6a9696fd4ff358c1a84c347b405033459f9192e9f7d611ca2da6a669a895d491a3c1908cb598730b596d66b1d4b7617f33766af385c333f037e7341c9680f9854f6ab4f2c986462d874f4dc66c6fa4f49fd3ef33d7c8cd81d7608411aa610e5e9101dbdba522f75cd12c575b42d082811227ba10319f6ea0c9a2eb6a3e63cfe0c1bab18f29091fc5d6372785208a830f732f8a0635f5ee7b0b9d2d62ff9f1a6cb88da253ad5f0d56e572548a350a7e12ff846d09ad5352fa45de484386b529e6f14a1e8055145394f8d4f91b80\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = c2a9b96b17314bfcc82d0653e14aaa7024b31451a842f7174a8a708dd80c94212af670806f96e7c08e2413198bc32d99a2e67d32c6fe772735ced16ae8b903d340b61585eb4b2ae7e0f51caafea691dabe31ddff90b114a13f05072fd8a8a9bc16fdcf32d199daa0de8ef34fd790f113505eab2b049c515a13a7d56f452f748ab76a07476d609f9e8db48d97f74f8e8bcdea62f495f573bfd2a171224bce7e2389811c01eec70ddffedd6bd2b7a3896a81a383e686dd80863f86a2290db0961ad1b2c6399a12fc725a33a182dfffd5ebc099612b9cd996a1c44037d2396ff657d22a50d94204e4428fe3d62b629c8319677654efb1bb0fceac9ae8d1eb3d2f07\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = c67d74acd68029ef1783f6412a2ff097bc4c588f4125dc9af871ff6cbc18caf2fdbd5f92235211bb460d7c32bad3d768a7893ad5b1e920ec9bde3cf9577f66a16d5a3e5a4feb40f0413ad47613929b44d40185cd4507515e73e9144a626c6e2461876789c8128eb6438879cc6b2a971dbcafa9e9f40b0120fa38f48023805011d89d48cb093bbafd221aca8b62311a6a2a29a92e13302c6da0f9190aceb9c36c970d731425ec079bbc6295aac01d9cce136f9e2d55e8516d007413f1d44bfaf63e257767dc0620a8902fb449f9d62a25630087b613784af81f1a588da7b0fc2ed2138e58eacc746cc2417b0088a1bc945552afb7536847baed72c16484ee7ddb\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = c1fb0843b4e3c77e622d1197ee897b8251971172ddd2a1bb94142173451d1748b468a450b15bc062adc94311fbd43a807391721bc05a4949b39af2ceafb1bbbe6e157237c6a7cb33fb971cef3c7bb172ca76f27e5a70b4ab501b8c4f695145da34f00a54deb47baf1f4722c313a1822b8746109c471f4fd8e6941cefe545804fad30e789e419aa32f16958fa667ed42912d6dfb5cc6d7635e2867253bfeb5ae946283f4fbc001fe8f578ca00c735f6cb02f65efaff2401f9da630ac2ed9ca7d44e4de8ae1ff6425560d54d75a934937021589418b91573b4eeb4f698383009c3074939d83c90d463a2c799c16e06c6467641d335b001ef89c9412f7478d5afb9\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = a59ed1881782b3a151254fd0102d0c78269ce015a542767763d786bbb88d7c764e6a2449f49bb8313430ed480ce6d65583502f647f439ffb578cba6267ddb492dc74ffab44cebbc11df44fa6e83899719c7432e509ae3a58717f452bdb531f01b70f9541cadb504b942f82b1032a5daa27179d83dc63e0f342d5f769fafc07506874704fab17d61cbda698a201fa42738fb21e9ef8828cfa0e0b4a5ee86e639d69642748cc764a4f", "a27fdb18c422f1257b9a7caaf2430e6a347bbaa170b77fc7f2aab7ad2673324c17acff7f67cc00525483c5a390c084eceb0ddea637f09cc1158638eedead7b38a14e9939c555cfb1881dae08479d838c1dc1af3b81348305\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 5490da684778d73666ab3cddb145bf50c914ed7fc5ccca7fa5aec07e45d925fd404e34c899b3620ee010cbdf02f190bf23f47c07f995142bfa0b1bdd988872671aa4ccaba8fcc668cf413a627bdf27f8b680f1b9d633cf3e2a3c0b83a9ebec591c9fd9f1a4bc997ad836bf5db9a8015c34bef11392ef8bfa4b278b9ba8f315e256908299812245dc534deacb9b97b7645162ab669721268177404799173f4f9a1e90abaf04cf78a1ea8a95e86c343553153562e3175ea135998e20cb51386e934ee28676e10a5a73b59fa1ca3b5c96ae43323883ab5a9a9214baa461046e3f600eaced75ccfb887fdb11d5d202347918cb42276370ef6fb42330d3922771e7b5\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = aaec366e45e9cbee804f4beab0c7d4a802731ae1e22d93e3dc0fa4868dd849c0cdfc52066051cf12887ccc09257301026be0e4ebe2d60dbec6de547d1dd4f778682fa9d88dccb0eab5e6cb07fe7c3a3664b5f31bd68cdbe9b88fec684b9e4a023f0e782e5e9a328628db6c3d94a1082bd0d3e453ce2628c1f17a767c017d725084dd0b7d715241b808b2537464dcc6eeb5af4c4c18702bcdc733c53f35d805f813e772ac32bcaffe025ef0fa8931849febf99c9e73cf5e4730a14924d9f074063b4d80faf3e8bce1930daa241ecee3b684d6674dc41b8ce53aa8c0002b0200fa393720ed967822eb2edd74a195423eba5dd6fe39150dcb697cc1f3553f84b9fe\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 348f6680d25d93e7f8f17f2410dd4bdc8a2ba5c9d29b17f3dc1e308d868ef3e1121982635c60fd386f77566370f5bc0d34e9596637c59b00a6eb665bf57071260483f72a5cf0bd6ad806a049aa670ffac206672fad6e206d9e13f82d89cd3675a888873cfdd1ea20feec04ac9e1d4daebc58ae9ebb84459a3481d268468f6e97bbad0011247576cdcea319b68b19ce7f2573cb3d711e078b9e206fea729e5b61d67f400a335aedb48f673af1a81c2998d80ba34ac18530ccef71838658e8937c127f5d5ce93a525a2ec60c98569d785592490fcf3c72d53791f8e81244292f1824264518bb827adf1205e6a2e1ca7d01195dd4c3616acb7580c0c9c572024a4f\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = a642bede4d119d37ba3c6f729ab8ef09055a41c5cc650a954bd0a2aa248172f3e332d3caf27f6652202287705d58b3ec31a5925083486c50c31ea5b27a693b2b93c6a4be3c5938a478148ed6600042970d71e2ae81e21a2f60ea683c4a11be85d2a00cd39edb6f05f8e93c2d760e68ba74a42dcecb6a890536c7bb093146a8161e8847b18ddf18e13eb04fcd841260016084b23efad5f36c3c5374a850b26f97e8076f9e288c9e904845c46df4fd8af41031dc6a9dc41c35c1ac73fb9586e308ecb8260d85d730ffe78bcc0439e4845bc9f6197956b2e4dfa4c5e6367b203c1a450a081e3edf6b50aa85303bbb547efbab5009fa80839d78a7d3c8514815a993\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 4d805a7ce650739a4e4f334de9e57fc134604c9e5198aab2bd2044b11afbc45741814b2c6b796411710445ad3f73b5a11d2066ab73d4ed636997c6542ec18e8af4f1ca0019865156cf9ee86315adb75db3640953d1f1268537d308256f712d0a3b3a4b2b88322056ae9c06458fc36eeed60359d091090a9a3d6c3646fcf54e0f98008a6440f5077ece467e10b9eeffc671309306eea60b912dcb872b48428450041f553412b0f7a370fc1f2ecfbe1711658de4991fedc33413f8faf69c3f8cf97e9003b2b039bff237681339875a85d2132bda1a029a2e79f0e37f90f50358216399b599d17e7760336fa447e6599cee60ca384f829df0fe49e6fddfce91a74f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 552edaec51577daf5a3a41f5122d8e14a0f210f4a691c22b624550d953c2e0c93fef2fb883d766a4996424377c384f41624c3d65728aa1a953e3283bba9ff5d020acc1f870e495c539f9857d32b42e9a7f821e2187e997c409ef85f0013c434918d7e085566607c2cf279d6d7a1f51ba51672d74491d1ad797461b555199ff3bcbd26f3d87781f09dee6cef446053685eeb60f0a81d57cf73b3d674cfff6060f53b0fa8f224e43ab4a88f0ce37d2ab9b4c257df77e7519f211dbaf6b9837992d9f6cd4e5fabba4ab0b405b49c8ef0cc172bc5889ac9beecef9abd48b46b134c3f0a8522cdfa0a07fd1c91788ac81c06b2cabd16117fe55d7892e4dba41188dc9\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 5de9c4fffaad1023d578673bda5f05d62dc73b5972b5addd16c453cb0d5aa9beb4cd7b51ef91a49f58c4eacba817b298b3f0d5053c37cfcc03770c0f84e77688bf35904033a4b002fab9065805e698f6f3082c4afd05d18e7b066a45a8c400a25d935455d3b575ee28da69e833163f8014f50cc3abda567b07f5b5fce34522f6825cfb6432ee17fb9ed6de30b7cd610960cf39f19844b09a61b00a957706227b2fa4e88081ca030a264dc1314bebc9a760dff72ded1f8d51706349db4cc95f0d7e6f331535075be4e95c12389759c26717cdd933157117a3b03f1c6f73826ab837a57405b0cdabb22e7f6ee468f46d93549067daaa6e735ef478fb2f6809b116\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = aea235313fd3bc3be95b1db39e4bf2ae67b8e70555d6dbb3de2c079c19fbb1dc4a9a6b4e8ce3d8dfc6d085b76a0559240bb90dab223dddf650da78301c255085982a7b8ecf11bc824586de0524cbcfea2a83ba11f619c8c87ae91d64aae92743b6e2719cc3d7a670a77614e086e4e3137cb1ca0c4867689b3c3aeccc5f31528801d1e22e864c031f58ced9d73f619bd5efa8f28f224587768c309e5086703ab9d6acacaaa1ee2681417b647c92db0640446840866b50de5d357da3ca259bd9e0b072bbc3ddba819a90ded0b4df6045ee3af3a0f013228fc454263f92a249eded9c73f7612f2f3303cc2b3463dd9c7a0fc2e474f899e9a27f83ea7fa5f11e0995\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = acb7bccf7e2cad69572f61c98565957f0e30931cc5980c4ee4540844e08d37066280b3d8d0f15090faeca12ab22b0a3f70b2d3b68ebc6d4b3f1998277d93256836a1f65879c8f48ea22b13b80fb0738cd44fb540507fb9f44577623a1af15384196afc9d5a6882c245938fc1b53c600fd0dd9f07a574e167041b53f414c7db6c252e875443b0006358382f5c83735e971337077249f7e9386ed0e915ceab283c0474308bba05e7410c91959648d1768d2e51e599d479a5578c6e7a0fc61fc8e18c017f4e2576087be8a8fdc7ada5b708bb07d6b0579c9baecab7e38794698c6d91390fef554c53b97561034db14b16dde648c9d5ffe61ef8debab95c57b22565\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = aa5b36de5f95c3c3b355a7968d39de17299bdb01870f07b3600714d5999dceee36451047e7eb1942bf25828a7368d219710ee27cbb8f58d9f64d9cc165865fbabdc52594a95049f21b65fbee38116a8032d37eb53dbe05b7ce5476e694cc0ea4ff981fb269d93cb634061c8355ef8e29d35ae3c251d24d894fbdbcd151da914a2a1c057a22afe8e13a596829cff32da6a8f7200cec826833bccb20bce20f96dd04066ea0728149dfd469ad2057ab3d6517c85d8817365258bec18a3fc67f314470b75f00c57cbbd04c51bd04971603acdbbdcdb36ff8b315baf4939d0b9ad5fa52093c8dcd701fe20fd67d8c3a1238f60141cb45e6b4ce0d504f03028091447c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = a79aaccb72907b41123e3efdb57be0c5ab48dc09ac22fddcda6bc497cbaa95b588ed3c70dc3e394e96e8c8cc07d1b49a6ad958a9cff9422be78aa2be641f38dc1609e076c41b79d874b8dfc0d601fcd065c4a24b9762170fdd20985a283f493d6772ac5b87f28ddc3fb67a941b7de48c6a8a8769b30d8e1cf020e649d11922d46933ffe809a68597744d9fc54ee47edcca190ab7d95f66067657703a61d53a0a6fa28113e1d4912f3ef0a8d2b5d0aadcf607f2f42a4ff52e2a9962d119fcf8d65c6474a91d62fc3e7fba867d06a07a03d2fa4969195879a692389134a5f414632de3dc6928744909452f7c6318ffd0df0ce3d9e10a8cae53d806b555a462178e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 07bd2fbe880a85da97962b4e806e3f380bba3dc80f631d9b4a9a64ab51179c5ea7f58789d8e5894b1fc7df15b34d09f5592fc600bf1edd118538a614ce3144165bf0578652686ce7df720c2660543d836746675a41cc929b198647c52ffb8b4afc74cba7de456d2298a1aa40c25247b4c1304f41bf4e137b98245ab8edea6f62077a8eadc6bc903722d0c7253b3d2b0acdc1f961157f14404dbdf50f294fd7fed64fab3a0c3cf46e683f41b89c0db6112395ff8af6348924823a43855a0cceb4bb00bb2564e40de0db8ccd803af1c4ce7873aa2fa156d09a4274b47c5888553cd09c32456da49411061e900188225eb181cf57cd8bbadf055f9f4df6f6389acd\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 79cb7928bcca16d8b74a0900d8de2b4e7f962e6073d74f3dff11c5a7d3e407ca962fd7eae0d3dc1ede81ea7cd4059fd1e304bf297cf30207b0abc8aa31189403d52a38811b6f11", "bfb930c15ec7b0e2e903623ae1d81083a5e0a7331c620d3d5b289adcbb74246d9c59336d165c0176e3c1b922d381ae8da731a933279fef6d185a689e039970135ac3c4d1d87d858e65f409341c593dd199e2dc60c16033023ad2665615877b41348721fdf3569bd03aff206a00a9705c25b3e33ff3b700ced05a6e72f3c5581eb3090c1c238ff5fcb26a286bd4c231f4eba81c5daee3c3c2dc9ac3cf2e73bcc15eef091cef335b8b89963a0d5983e1754e423d3b70c039b2c7\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = c295f57de51d491eff362ae8459c8be0224f27393a6d135bc8656b4f4a801f50e1c4c48b9eb52dda12c397416a89f709813fc500804e0cb458ce64d7c2c96f3f1f89ce70eb79b1f3c2efbdc46e1bf5dc8deeec5a34ab252568aaf8b6d832f677c04aac913901cd37c6914fc3517e53de1d75060c6c2d766625b5b8163ba556414cd114f45403f73d2676b7fcf9208d4f299d492f146f3e3da32ebfbde77a4f91574abe2195af5ba3b91bc4fe441e15e01da0fcd6d9e374aac38e622697b9385edb493bba4a486d35e8700c5009ec9cb82cac71a88c854edc6f1ceef96e759c64b08350f8073fff929468ef5aa83a86bffd9750dc43ea99927e93b4b3f84819c8\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 0000767bcf450f416e428980a488bc8307674976253008d81340a2f519a1f4b936abf02028c2e7614f4aa31a8b3e17c96b4922340a6a9696fd4ff358c1a84c347b405033459f9192e9f7d611ca2da6a669a895d491a3c1908cb598730b596d66b1d4b7617f33766af385c333f037e7341c9680f9854f6ab4f2c986462d874f4dc66c6fa4f49fd3ef33d7c8cd81d7608411aa610e5e9101dbdba522f75cd12c575b42d082811227ba10319f6ea0c9a2eb6a3e63cfe0c1bab18f29091fc5d6372785208a830f732f8a0635f5ee7b0b9d2d62ff9f1a6cb88da253ad5f0d56e572548a350a7e12ff846d09ad5352fa45de484386b529e6f14a1e8055145394f8d4f91b80\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 767bcf450f416e428980a488bc8307674976253008d81340a2f519a1f4b936abf02028c2e7614f4aa31a8b3e17c96b4922340a6a9696fd4ff358c1a84c347b405033459f9192e9f7d611ca2da6a669a895d491a3c1908cb598730b596d66b1d4b7617f33766af385c333f037e7341c9680f9854f6ab4f2c986462d874f4dc66c6fa4f49fd3ef33d7c8cd81d7608411aa610e5e9101dbdba522f75cd12c575b42d082811227ba10319f6ea0c9a2eb6a3e63cfe0c1bab18f29091fc5d6372785208a830f732f8a0635f5ee7b0b9d2d62ff9f1a6cb88da253ad5f0d56e572548a350a7e12ff846d09ad5352fa45de484386b529e6f14a1e8055145394f8d4f91b800000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = 7bcf450f416e428980a488bc8307674976253008d81340a2f519a1f4b936abf02028c2e7614f4aa31a8b3e17c96b4922340a6a9696fd4ff358c1a84c347b405033459f9192e9f7d611ca2da6a669a895d491a3c1908cb598730b596d66b1d4b7617f33766af385c333f037e7341c9680f9854f6ab4f2c986462d874f4dc66c6fa4f49fd3ef33d7c8cd81d7608411aa610e5e9101dbdba522f75cd12c575b42d082811227ba10319f6ea0c9a2eb6a3e63cfe0c1bab18f29091fc5d6372785208a830f732f8a0635f5ee7b0b9d2d62ff9f1a6cb88da253ad5f0d56e572548a350a7e12ff846d09ad5352fa45de484386b529e6f14a1e8055145394f8d4f91b80\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# em has low hamming weight\nct = cd72b9c7697a399323bb3df69256ef3d7896c4b7c35a4932d56321e2bce7d590399041672d8a7694ba945d065469d9f527416cc771d6bec69db4d3653ab84ef6a1e1ab13cfcd5a23b49fe970f218016bcc674a655a10426cac75580065df467e2b3ca95e4a92f0c58b5fd9e6606cc44496a42207da4b5bc46ea6d389c35b3095db2c7ed756182408ac5c99aeeaa7098b1f4a91c5b6ade587633d66c9bc3357b11f3ecf019b1c53858d451d9f00a23318338255d48921971e86adb89a5c5742c6d7da82c7b9eb71679d2dc54911d9a427246be058f54ff269108c47a4bd568c3953a9365f641588f95c3c51311b3fe2f7c4e9b94f8db3410e738157d57e559898\nlabel = 027f3eb14d2f370b118a0b95acb6ce9849b6394de05269f339cbc505fc1b45f3f6a25b824cf997a6406ab2f496e145bf00000000\nmsg = c8556ddde4086f39f881c459e790ab6d3e6ac862be3b0f7ccdb6b1859eb160793cc16538744dd2d7b8f5d0a431b2e7fb21dc47977b40cd1381fcc5f3e8577331c14584ab3e5ed92a979a5bebe4b48c21a8b4f71d6a496d526907f7b6e5791328aefb2591e7994564c996826798bf62fa86d4b1e2f57e5df1fab316a928a007174698d32d15cc5a7e15acf53c31b30dfc18aab2aa9ddb0edabe65e153edb6\nresult = valid\nflags = Constructed\n\n# tcId = 31\n# em has low hamming weight\nct = 4112dc2f415f5ca05e1a9372660096836f4e47649ef22f31f3d2b2765cccedf922bbd9417f3863ee6be8f99a748f6b2d8bc0b286abd20849548b0173e385fa906d2e6d50ac3c8beecbea78d90aa7c630f4cd126b84e34b6acba9dd545a8673c4e00de4f6bca436f626bd7b8c1ff3c7cb3da7176ec11a0fd596078905a57e91387ce470f73c239227b6a9906c3aa8ccc214f323ca467a359fd0d1ae6c3a560d0f1285589b3e8b2e2acbc3ca606fe23298739cc194d97448a57206595189bbc9ac039aecbb77a3874aeed61ddf8fe718a873560c52f7cfa22d054d370aff20a48fc31850a19d7c4173d120a4fb108051bc68b8ebd40da335f620cce53cd07ea9dc\nlabel = d14bd61a246e92ee2be39c6066d25d2b2bb3bc95cfb16ca34700048ecdcfe85685d5aab6bf71d5d83bd6faccb81d1c0b00000000\nmsg = 5a1eba083b903ae2ef8bcc91ee0ce44249903d72e0dfecdb2e44e196f7b1febe5090b58e40b6e70004cf163b9a59bc02908aaa3eb52063d0b9ae6817a7eae8533a13437c0eafe1b5c359b5dfbc8821e213c41befd4b4548dd3e37f01d6b461d12cc4031d50c933514f004dce0e62a4e970b6a7b3bf06819dcb2a33351d7e8c0d130b0bbf3a67e2b75fb0059fb6ea8364678e90f86f9ebf2e9e4c5299d389\nresult = valid\nflags = Constructed\n\n# tcId = 32\n# em has a large hamming weight\nct = 204f1dfe1caf7952af8d4745071f4176edab7c4670db83502a450f6b52a6d90aef179eb4869b371d6a3ee2f0225494bdade6bd38b04a8ccbb00493e7c4b60c0c5be671808ca91f93aea17496b47cf9c6ca83e5f6cbdc41860b840f2c7bd19c2236aa1caf92f7b7f151305abb173d1ccbc97a3dabf50c24ae5d5bb719595cc2d1bea29185c55d7e1e873ff504b8e3008ec3bd8c702e792b6f6b7b24daf71b12168fb5cd586ac9313bce2fda37cfd0d68e401444920ea125fd9e7c8f424f4c5e0a068e7b95948289d71472b75d429021acf73249651deb09cee062de574e5ec18102852d1946050c84b3da9e63756f964cba0e4c68e8c8ef2cbbf6cd325a11853b\nlabel = d13595cf0b4193b80f34d3ed3f8a4cc3a3ff5d42f6a21d7f1493e744c3bb5819c53a9f16c9ec3b62dece167bd674a2f800000000\nmsg = 068a7d6662c9e1f96cb4c32cde0ba6da2aaf25501dc5f3b0cff0c74b6adc1cacf81c5b546505f360a4edc91f7f54cdac99458bdb01a5eee04947e2c725044da507c560a8b9856a5374fd75c02e6b8d1f915e291c6d8352eb89cef2f9297cc4d9b8ca118d1ebfac47aa64992a7e077e4ba35ca181eb3f0bda0330720f3f702a33878d3035e15e6376d528fadeaf29db79f4b6943417bc741c2a2f1d1eb598\nresult = valid\nflags = Constructed\n\n", }; -static const size_t kLen286 = 21094; +static const size_t kLen291 = 21094; -static const char *kData286[] = { +static const char *kData291[] = { "# Imported from Wycheproof's rsa_oaep_2048_sha512_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 0a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff39859]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001028201000a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff3985902818100e74a124759a174de33185996b3b437c24ed248203d674a87bcc2e76a667be3f54ac15e8f04e4c5e540f4e19f402a71d37d39756dcefbfaefb380095b6cfbdf4d78dd20cf085a1f127610e3b7102ca6bde1825941ab602e9b72c08e4533ac50317138e10bf7edfea30f52ee91ea6628c2cc65e76bafc02eb9d21ab66ad374ef2702818100d793b4f5514921bfbc47a1e45faa043eea03f052bce600ec4f5c62b014a7c45aeb3f4bc02160e7b12dee135e44b227a31854ca833ac706d14670ab5932a269c9b6f9188acb93e698b4a7dff65bb9c963c2e02b2cea3f2d5cb254e07b616792896e37550cb38171c4c32e0a6543bbe6acd4e99abeaba1340a961017412b57bc0f0281804dd402049a679730f2169e86f49f8f27c6684236ff1293e4cb22f6c63a083474251c9e9a17b677d5261f81109a81eddd91c4d4fc076b894c41a5b3005dd2ff984d3473c6d6f3a4830cd1b01eb8c59db245811c51d9be3ad0ba338b6c43f016e81c465c8c2f789977fb3f17e267f2ca828a4f3c29637193079a68bcbb83be547f028180767a352fc5d6bd7794d08186f3948af4d0c40d664b6ed4ff0ab6a97e403bdbcc6411cb5df27a419bbcb4656c9fb091dc2ed91adb78883d94f273a598461dc0aa1da754f7a2decc130ce65e4e15274c2949c6cdb3c7a1a51a96dfd2e7bc26a20069d47b2799d80060b52c2e866ced6ddf7abc50518e1df06e08ff1ae8b41b69bd0281805479dda30fc06b63cb5f77e20bb29db7eec7a6b37a5007f9651a46ffb66c90160be5700145c6a08d9737a98c5f7ba0dcef39352cc5d8612d94fd02383b8e093115376b154fa1cebdf915ddc051a7017d67a238fb4376749ced94712b117a1d0ca31cd653a1955dd547346d03b21eb0ad3c123fb85e92c8af50a985db10eba79b]\n[sha = SHA-512]\n\n# tcId = 1\nct = 409225dd2229d11accb99804e4da69fbcb862d3a74a1dceb8f1186d8d13b1569aa4fce51aff273aceb1f0c875d87a979f9915fd400a2eb1713b5a1ed129e6b0c7ca14a61a0939a87ae88c53e91ffdd635f7ddde6185dfe9b5b7bd739b53c4c198dc8333a36461c4d750773df1c84f024e18dc78d09fbbcdc4d12bb29854b2ae04c1b8b141eba753eed9cd90a5b66fea37612aca4c55f65a8381c4eff13c37ae1f9ed0688514788babc8ee27f8e76296495df254145331a49d11e7bee5a83a3713d4bbd5a805fdd8e84ba6ab869002b26e40b36d1d6c1189b8ca1c6fe19497a8059414abdc88ca71252fa86705ec96a7899296925f885fe55c9c6d2cbe7ca8578\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 7ab35168dc51cb7b3d8e5e3f9568e588c27dc395e825f909f3ef2a88c5ef8e1ee4918dcce7aa0c3ab6860f69de90e36d19284a15954a3bce2c95bb52b1a5cc752e35a7e08fc327f2a95ba05c474c4a5e625b5c0b780b3bed961e69bdfe073bc324a8dfeb3782413109fce1d795ef01a8eb0608ea42866ca997b8cd3c7b849190e42e84c3d60f935886df8d3dff5cca4157152e9ec9f954a7ea7b1ec4b0e1fbc14cef0f3ed16f1b013cef8753e1f5493ef7d0f753ed0a18ae5275459d15b86da95445dd65580a789354616e9a8a56720394a22ff30a01f38b173259a9829b8a4d14747326597ec332e1d402915c7f46a96c20bcd25a82ca3084660b4171cc31a3\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 930b4f613da112cd29f8fbb235ce0715eef85bd5a34fdf3a67b4af55015269ce99ac8112ee81b576b31f083160c5890dc2db204d581aba976974056a8bad367ff05984974c10f71f5b03482c7f7dd86aeabf5c9060b54b0487f40d30627e0a46fd7e801e5f1b2b813c4385f870258bc2cc186599e124b9ebca2a29a43dbc06bbd39faf7f305a902e7ffa403abc3bcedf29ee11361ba0a0b34f3bf9a9285660f66b4b75cf75e0eed8f463e204d93654a9c85b9788bf8e32890b658ea732efe3a56a4ddd2e7a426fec6486a0f591a8a1d4f089eb9c95a6332e7e0db103dc3daf8cebf35554d18cb6da33dfe6dfbe0c8cf04a4f6305693e94e87f68539f67892976\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 91d3f1fd66163ef8a8fe02f98802219f370938f21baaab871d6ed20de4449d5c615f395f89b5e455d301088285cf7ac42b51eeacc1c7d4220cf4c456178b9a2d6ba93b0b1c334b6aa6f19cb75f374d88d9d284feda4eea32c5a4d9baa0e12fec0f72308322eeeac9b0769f161491ddbea08983ea565058d98838b86df181088dc9048091450bedf4a671fe0a57f9d4ed67cc41ca6eb6a8324ce14d6202de07d55e80d56660ccc358b1cf6ed56061a2efdde8075553c326e9a15d441432c52c7209a6ea6cb6ae8fb1fb128d8aa31cea24e5648baa087eff8376bc01b6084e0476d3d5c5533d9c2c36803e939b8f525c2ed770ba08e221cb946d21d611c0fcfc15\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 41c04aefc703aaa71f40ce9f4f56a7719126ca192d2e9c33dfc6a8c176e8c1c22d9d7a83f39955403a7798d161e4ad17b1575c35cd8f2abab639307222395348b67ae8b7edc41eb0b9a38ac508f1c08489ebc21e5db909d98d69a74b210de76a924787b2fe1913c96ea934ef88be13969cb26fbbf007fff7f639760ca7de9041ddfe79b3be7710cbbf559db44d2db8aa32f88be33463b366924b845d07e2c00bf07fb3625a600b4f84041c73d777c0822bd896aee8b08c4f6e30dd4569208fc8caec74580a43acaf7fcb2b6daad569f4a58e281298caf9b6f155cf30e94ff671de9bb0cbabd184b854ef1d2b7cae33e7dc6072230ebe4bcd4d49253aef563e92\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 32af08d0e192b87a392e69c0e4f1faf525f9705af04301bcf4773caada60baf8c9e3ef5b23f22e38f9966849f55e075aab69f1bb76d2c9e443f34dcc1a9ed8d32a7ed3f9ecfc05cb154235e2e532af1b6f1fcc392676a500b5539f6a86be792de013a4d614129852ab57e030521e1a776d17a9c54061b7457e0517f260826640d24e604a08849f9c14a8b9b6126a394d1451649326b15a440f52da5fa917b15189a73f0ca93c6f1ca65a8b00f96516b9f87519e6ac96af33df112eb8cc669117821d7f318eb7f09ae74fe283ff4ded8a2e6b363543833a311c2b7be7b6f07798ba355a716707b06c4d50792c888424a5a049b1b0a33c881059dc8178119676a2\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 602a88779ae26e4aea37700b4ed513abed889d15de24523aebf34c9027fbd62747fadbdf46449ab8cf1bf5f2c4c942423e0c22df00e2b513aaa7a9502ee330be441274a09ac0b872150d73e52f34763879c56d09c400521aff0c7a8ddbbae280289113bd4f5cb1780eb16040974f41b6ec4e0b060209e7743df321a597a8a0fe00df285780073a03600c16ef62496e7e06335b7311d16a8cd376784f27289d02aadd1be5390e6e618cf8271dbd9ca7f8338392076ca53fee750f30c95aebfb26c8cee568a2253f2075eff7941b455317728bb1ad0442d691167f6472883b6e8b07e7f6c5bf10e4def8f271e622dabe23d6d3e8c0a1e277781e5888237e83bffd\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 738a92656e1e759bbf4515a13598efa7c7c3b3759ca87ee1974e7ff8f379953b7cb107fd421225d4c92c59e459e33290e6b73f8896f5f064be8de43c67c68bf6da3c7e4639268e5f204a7a9832fc1b1b5c4756c2e5b49c0912bb0dbdc049949090344301c42619143eb8024cd633a5a8429c9c717431f9dae72ce8f848ced228b72562517006f5ca77ef356af98f1d2828a59dc75fffb52437ef822a151bc696917a4cd0e688beaa6ca9e7", "ff15007c5ca12ff4da95e5780b8f7288fe9812df205a1a25baed9359ac87511bc8d4f0287de59940f0cd45e2f8ceb7ccb12b763b243adcec6da3d3def4e7856df4e4a4cd75fa03e14d5a63a5808bcad798ee2d2c8d\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 57c821093f340232c5df14fe7f6561c063d64e5660a353e6741774842e0fa0b4cd637ece4e935f7d948fa875b5978886b868195f5598a86e83f8d25bfaf445bf453c0a7ba4088e38eb6fb123788ad1dba2a3098e33cc7f354bd9622795720d3f3148db484fb982d5b0855e58ef8d74d12fe93e891f8987cf47d74024d1a2824b3d6a955670552d00055ec3bb0f6b4cfb87202cd66c36d831a62471c59c7d2ccd4302865496904bfce0a41ac3db7ac152fdfcec6bd984c9f63bda06d4b467ef1748f3a0c7f1e5a8ee5efd56aaae8981fb15329c44ba92d15edd20c982e555096b93921b081e68bd1e36b1dbe36fb3bdb69bddc8e9d9f6f1ca317ba16f664034a2\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 3d7787e441ea11708527a37464a529449650265f04b55294a71f3452586f55c1304fac48a46faa7082cf1b5d1d728fe337056551486d892eec1403550dd851ed6997e41f70acf7f401d1ac92c5e416e73f1f1a024e542ee279484db770c9a6c91c14d487bff37960db7a11064dcbbe07272cc036a1e0946d71f1fe97dcbdcab911b14d6e4dab44a07d8cd5bc3c0f008d9929f2d60b4c6ead2e84dcb86002adba056b3559fe40afd027cb05d41ea7f967e2cb4345c14ee37c25aef415ec932776de1ab992458203eb58a5eb1a21c3a619bf06aa0d6d74b5ea6decb25602139733c01e131c64b7de3465db2716940d00ecb5db6ba7c541543da53ba6119e7c117b\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 76a390230603a834305783f493b721b4f317f3d4b6e1bc26d1983ff1f49448babbeba061e94ef6b483579564496ea89f9e2e784e8e8db83cd0d2a6081048e4bece721197e66a54178acc6976089a4f6f268f8a54a2a9a3e90f583171401173f7f646d8cb422e4ee14fe057686b0072281e066a28cc0133c6b707781b718f535fa3a9c99a65360540d3182672acb1db4689c5d6d33159f37aa7e16d988d49f73b5e603f8116e1b5053ca45e6c04743cae29faa04ed939196b15faae2fe4303d7feab202d8809a7a2ad30deeec880990334f0da9c7faaebc1f7f64f0c8c20270c44b7046ee309d4bee151a504bdae896e856e202c8c5d8dc5d6f66c99961b6168b\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 60a639b945483083eb99c1c158f2cfd68ba8da37615b6f14f4a999b75da7fada3fb5b0716168f5342063306d8845ab565be176f457b6d26f2df5195356af72be2eab1185240d2b27d023141c060c37e46fc139d5df47667adb1e2acc5bf0b9d3adb7de087eafde53a157669b5e07507432fb366f4336f0231a04a3ff916ebc5f3a679239b39f952efe24aa5f053dcea10010986495bd2e1b6cad627f6c788b4adc6ebe482df63c13fca3b0371096ed74c079d8fa8fc3ab748b2e1935209a8934d4d4cd3baad94a6bf5be7c8517dfd55f76c25929cf3c14b64fed9c35101e3bbaa8c71ee816098741007496f20161aac16f1b4bc54b6a004d1e63beafc7bbd1f2\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = aece8a87a0c25ac33fe3225e262e5d2676ca68fe153b84c26b65e86f4dce6585f801e0b1d748ae6f3bcfcba4c5b95ab78f614499b547118d1eed2f6ede6e4a5966ae86c697577ce3d4f02cafacb76e2d90dc18222eadea2668717600e5eee93f3a20d583955ebdf9a66d5f957e42222a90f9de7232ef1d8eedbf884efe5e4fc0cca53fe4d7f60275c816f4f725b2d7539ce38ad3e643b7e4b4432842288e03734ae9dcb3d26f5e76ae227e7050ea7e0e5e2a755fd481a57d65cbc036aa9cb4062b5cee0d07e9dbae45b9a113575be96e9add1570ddf6b4849917e04bd9636f173cd5f79d3d05b1a0344cc62dbb523dd29c8cb770839525b9e6f7bbaf17385e2a\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = b05ad1bc0a5c6437aac33f123c62b94db24eb98d88808ebb1617b2866cc851c3818dd9c18e68c01416b1d593cabac1c364f89b1817bc58d021d9806f27d4ab4ec812d2a964dd70295ce9524cbc92b754e4057b2974b3648fec4a61c23548c7919ad4b97bc05639e6f727df472486c9f50265e227d648c56c13eb1ff4e5d743cd0a522f5b01f8efea61b934ed1f04fa0effc0b7a5a48b2662826ce72abaa3746e1718e73d06e3fa973f3117a45b578d759f89196b708e8685a314b8dc9387b4e82dbbad897708eaf10c285b9471468e2e464e57705e894018d2a02ea2059ccc7c7a921687ed9e358af5bc13c1d06d42afc5cec33e3497ad3c20b620f80eeee56e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 96a6cd6656b99ec45dae887958148f6748cf84dba950d7351033e98aae440c6f3603ed65bec311a55c6ec2bbc892442cb12730957b797ea8e3010efb8599891a3e8d209ea0eb6b32448e57f4003d2ac3dcf8c29a44454d0be799a5a772344282737e42f785ee3abd3ef80d5d4653931828d5f064354aee256b6271817e3807e15c805afae2877c8531cdccd2f8d66f3cd66d3866b5565d99154f1eb5a4f032596244dff79593980d07e6e06de0960c1df2c3f84de224c113494ade9d03f554871a0ef5c287fd0af2babd16fbf2983c758c792b489156e3a0db060a64d717e0d149c343c40015ccaff45bd4e3b155b9c4563d5b8c3d5caa97d7d46d4c5a2d2077\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 031efe798531e2ce640d492b623c630190a8da56e0fa3e2981680b20f14db024abb3bbfa08bdda51aa9d2fec81d23401a007326aa5849b24b099ce957c7e2b8352f97210a1e7ff68398aa3884a027f53f27e3c4ff65ee81af6afd4bc539e2f93282ed2a2274093305516b9800c547e4a8933db99b802b0ed67503fa58bd1ec8f086f1d646fb4fb3e468c75835efad1a17c5c1c7963cd74efc0c15d979a686ffc72f65b164dbfeb29930925ee5b2bd506378fefc797d96bcb1b55dbd4c58f0dd683c51c6d11c9427b4b452dcd7cc4344f21ba88dab082fa699acce7f0cb3e677d2d8ae803e0f1bafb0d2bc54d4ef88ddb91630fa6aa141b854b475ac190b696d7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = bc296554a73f000dc5b04a4dd96d91a82792cca120e52c7b9328a5b7518f4b8044e3bcebe8430badc933a8513641d68127d93a9137a96c81c67c4ad59048067990d14a208fd6b0d44d068c6bba72b28368c5781298d7be36cd3d462fdcf4f3c09fc0bedf8341b23f6722db3f0c96d7013603cbc35394ddb1f9edb8ac550c25d4ca6fe0062cb75ff3aced20040dbf752783a970783e78ac9f1c572c85973b254434cb7ceab15aeaa965878d1bc4be560838b821c35c218c06c5f6d690b86bd387e6511294cf9723d38226d95e3ad5d36ceae48889b7428d1f4188206cbe7673cfa2c28f51c4e451c5e2ad92c988038048c6c03b372f04eb2463512f5e85867504\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 6b36862a424ede6c744f0949dd9a3091d850ee1694deca2f844d864698eac29b2f1125ab310608067c37943bd386732b903e258865e0ae33eb38a8c35a84b3864b717ba29aecd5d5ef53f0def257b2951ee14bc95070356a9e9bf2f36232966c501710d08281c9b5944c5c923d65376f0cf592d3750603a758c16d30b9c307e32543a311bff7d47938f31f3547cc0ffc71441a1391f303970d975001d2df0033170cc00f26ae118bacb31707fde93c24abbbb8304b558c1bd52e9e6dabae23b789fb799f4f8667f6b7b724321d455ff4f391e8f1989f271204aa81ebb9491241871472ca1ebc38a05b93d557c4000e2cef7c5c9c0a85f8a63049170c90b2d901\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 8cd7fcfdeb18140c470d230b89444a63763c1025f69409757be574bf71fe7d899467cfe1a65d23d2401b7209e86be5a47753ad295c7203d2c935bd9de14556486908a7bf83dd9aee74b6e57204f9eb04cca15e2d50b22c5f45c7f362f23ed948195392a15b96a238b4e03daae8b7258ae607a9d5da0dba5629575edb56b444817824b8493b125d5da63dd81eba51dcc11f7979b16ca0314f02af4212a5ea840daf215e9fa082a7089550e5dd0c0d0f264d230a6249b45926fd360a4a56ac05910a15201292d5dc3d92308f98175c0fb4f9034ec8fc8d5b584e95ebb942fd16d04cd6867fbb2aa53377dca93e5ca2380de64e59ab41f71e449be3eafad63b4158\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = a83a07c4b0e408dd205adbed9d929d418e19e6cb0c2d486bf716ab66c21d1bdb341636ec9b5734ab9778ce1e28f882fa98582313d9840c05cb453973dc1384e73e2586b5e7539a3367f9ec788644f881be29c991b0e23de4e9e299dded39e349807318c5bed4d32b52d040ef5e99f06b1c14244347f50e57a8cb264638db98b3cfd467c2fb621366f83cbc68a27b0d3567e5741d1ccae568eaca51ac93f4c5febca4e23cc73fbf506ea337b0dfb47afdb351ac03e7bb81f1f6e867e4428d9b262d006976fb39901e84a2331b65b59fb96704f08bd77cbb7e0a39f357bc1100a70342e5f47c092a817374ac5ed1f66a4beb6f3a4820b6109b075cd80e0fbd840e\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 66e2bd9cb74a6abea34c2285165902c9a5aa5e11208f38a161ec72b0ba11e4006a9ff8b118de42bc45297a538e6aff1f4b56519e6d31d7ff9e5ff32e2ff05db68d023efb5fc10f5b57d4a3b216b63048c4aebd88ba409ec87e95bc239317c2320a06bad2da6cf7dc8867", "1c76859e4750eb39d09fbc2e27fef6e6247b23981a506e8ba9e8ee29709e0a846a617649083ef5ee383209036ba666f1240389328aabf61996563f65fceda07a24052e68896c65aceaa8d4e543ad4a2858a37369ae622924af975bc6924fd5eef327a01baf0b864c557ce86bfc2e84c1900d201e5f66786b499741e0f3504286ca6adad82d379394d4b8ab6f3a4ec3b16eee5506d98e\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 2d18a31f2e8762317ad943db09655b96ae7dd2b7c4754af2e852bd0fa877c58b160d62ab9378c06c0956d56b96d63d5693ed28b5d57a635432fbcdc2911c9843c68094301c6eb1ec02ff41400b9d9806673a0c07310a0a0e91973761a2cba91e38140217590cc2634c85247886f6364d5e5499c6e99f43822241d4e8ce6906b4d9b66ce4407c6e8fcda8f18aae2831c382afc9a8d273f17e2d44cfde2f463ea47a3292a74f743b1a99bb9adda4b65c8415040834f31e0f4392572d3a1237d8227adc380f794919e16144590fde3ffb92fae4353fab405fc09b25282450f66433d25a3178655545dda9da0a4759c8510e6e8f3f85799226715e7b2be7867d1fa3\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba748\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 000091d3f1fd66163ef8a8fe02f98802219f370938f21baaab871d6ed20de4449d5c615f395f89b5e455d301088285cf7ac42b51eeacc1c7d4220cf4c456178b9a2d6ba93b0b1c334b6aa6f19cb75f374d88d9d284feda4eea32c5a4d9baa0e12fec0f72308322eeeac9b0769f161491ddbea08983ea565058d98838b86df181088dc9048091450bedf4a671fe0a57f9d4ed67cc41ca6eb6a8324ce14d6202de07d55e80d56660ccc358b1cf6ed56061a2efdde8075553c326e9a15d441432c52c7209a6ea6cb6ae8fb1fb128d8aa31cea24e5648baa087eff8376bc01b6084e0476d3d5c5533d9c2c36803e939b8f525c2ed770ba08e221cb946d21d611c0fcfc15\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 91d3f1fd66163ef8a8fe02f98802219f370938f21baaab871d6ed20de4449d5c615f395f89b5e455d301088285cf7ac42b51eeacc1c7d4220cf4c456178b9a2d6ba93b0b1c334b6aa6f19cb75f374d88d9d284feda4eea32c5a4d9baa0e12fec0f72308322eeeac9b0769f161491ddbea08983ea565058d98838b86df181088dc9048091450bedf4a671fe0a57f9d4ed67cc41ca6eb6a8324ce14d6202de07d55e80d56660ccc358b1cf6ed56061a2efdde8075553c326e9a15d441432c52c7209a6ea6cb6ae8fb1fb128d8aa31cea24e5648baa087eff8376bc01b6084e0476d3d5c5533d9c2c36803e939b8f525c2ed770ba08e221cb946d21d611c0fcfc150000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = d3f1fd66163ef8a8fe02f98802219f370938f21baaab871d6ed20de4449d5c615f395f89b5e455d301088285cf7ac42b51eeacc1c7d4220cf4c456178b9a2d6ba93b0b1c334b6aa6f19cb75f374d88d9d284feda4eea32c5a4d9baa0e12fec0f72308322eeeac9b0769f161491ddbea08983ea565058d98838b86df181088dc9048091450bedf4a671fe0a57f9d4ed67cc41ca6eb6a8324ce14d6202de07d55e80d56660ccc358b1cf6ed56061a2efdde8075553c326e9a15d441432c52c7209a6ea6cb6ae8fb1fb128d8aa31cea24e5648baa087eff8376bc01b6084e0476d3d5c5533d9c2c36803e939b8f525c2ed770ba08e221cb946d21d611c0fcfc15\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", }; -static const size_t kLen287 = 22691; +static const size_t kLen292 = 22691; -static const char *kData287[] = { +static const char *kData292[] = { "# Imported from Wycheproof's rsa_oaep_2048_sha512_mgf1sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 0a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff39859]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001028201000a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff3985902818100e74a124759a174de33185996b3b437c24ed248203d674a87bcc2e76a667be3f54ac15e8f04e4c5e540f4e19f402a71d37d39756dcefbfaefb380095b6cfbdf4d78dd20cf085a1f127610e3b7102ca6bde1825941ab602e9b72c08e4533ac50317138e10bf7edfea30f52ee91ea6628c2cc65e76bafc02eb9d21ab66ad374ef2702818100d793b4f5514921bfbc47a1e45faa043eea03f052bce600ec4f5c62b014a7c45aeb3f4bc02160e7b12dee135e44b227a31854ca833ac706d14670ab5932a269c9b6f9188acb93e698b4a7dff65bb9c963c2e02b2cea3f2d5cb254e07b616792896e37550cb38171c4c32e0a6543bbe6acd4e99abeaba1340a961017412b57bc0f0281804dd402049a679730f2169e86f49f8f27c6684236ff1293e4cb22f6c63a083474251c9e9a17b677d5261f81109a81eddd91c4d4fc076b894c41a5b3005dd2ff984d3473c6d6f3a4830cd1b01eb8c59db245811c51d9be3ad0ba338b6c43f016e81c465c8c2f789977fb3f17e267f2ca828a4f3c29637193079a68bcbb83be547f028180767a352fc5d6bd7794d08186f3948af4d0c40d664b6ed4ff0ab6a97e403bdbcc6411cb5df27a419bbcb4656c9fb091dc2ed91adb78883d94f273a598461dc0aa1da754f7a2decc130ce65e4e15274c2949c6cdb3c7a1a51a96dfd2e7bc26a20069d47b2799d80060b52c2e866ced6ddf7abc50518e1df06e08ff1ae8b41b69bd0281805479dda30fc06b63cb5f77e20bb29db7eec7a6b37a5007f9651a46ffb66c90160be5700145c6a08d9737a98c5f7ba0dcef39352cc5d8612d94fd02383b8e093115376b154fa1cebdf915ddc051a7017d67a238fb4376749ced94712b117a1d0ca31cd653a1955dd547346d03b21eb0ad3c123fb85e92c8af50a985db10eba79b]\n[sha = SHA-512]\n\n# tcId = 1\nct = 101f82bcb8157966c8f50531f294510416393943fa9dd5dc05f85bb82f0492502274e07ca7dbda2a7e16187981c923d60cb6b427693c6d7b107ebadbb6fc400492fb795cebcc804d498a7d3a077cf39cd030e941308dc87000af5380b3ca5e8728313e35e31b78ede9e5f07cdec8e3569afe3d13466d06d4b77030d146b32cdd7da566d96753fa44d64791e687dcb324f52371c0191bc9f1a5bc7b7736a5bf00d3fd518b70ed6f4ae0fcb20bc92ff3eb048a6f767596263127ccd66e474e8c27521fe2eb21b8abb2c23b91bb16264e058265a567492bc51c4cd033b1d8a5d7b5798360f4c3716ddb43622ea5dc9fcd36819e05a989252dcce826506711a20fdb\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 35aee1c56044da3b866bfed989690dbaf57ac10211ca4c364c4f4127fed0a55b581217c7e854d11fd1a1f9d5431c2c309e62a6f7c3c59676182b288edccfa961c78c1baa53f2db1b1b9a4dd05015f41872cf22acfe3a071d6ac1e82ba6c31f5c2d9325247d6f2c9b03ce00c94f02fe33c5678a4149cf2fb70bbbd995af1465e3819c83c9ab8b55088fd5d75036613b04df302113948700d7876b7cec9d7337bf5773343d51a4298e717a4fae09e573fea412d88b836ecd4f74c7cc7500609723b3f3a2a00d85ee7ccbd92bf6c065833027c5e50310c6cf8fe8d13e2d8218e785333a2e65b547e5eda2f8f2f9608f366d7e43636fca4f46450c76f06dd08b00db\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 58878dc8b9527a416ec9bfbe0f07fdee8dc5bac8e31ca545ae7c6ef4a68f2c6b2b73366518edf85f1143c27fba00a5d9a9b02843ad8951631ddf01ef1238853b4593abf9701c621941b4f05931eaf307c06faa7fb818db8f859c96dbfc43268965303b44fcc69a0e3ce619624907bce074205f113715e5e820bc8c6dda65066453215702416db9320f54e67fc91e9d37a8522d701aa22976966a99cbc8fec0e12f2eb9b5705b4dc77caff82a36485550752a3a5ebd47fc67d66b68024a2c5db809d08be9090bb96e18807925b18a753ece05f1624fb19537abe7fd662830d56647a416df7ddb3e6a073150d5112f60538b685243f1e4fde2a5951c9e9499ecc4\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 2800f421c1c078b8bee9c4a4f355e1ea834c5bca442e9986792a50e66e68c0b8122cb81bb59e0070ca044c1c5b190f9098dbdaa977a441a8a4c62897edb9484935007aadb6732c1b2b2171aea3ab1513f225ebe7830fb823ec3f5433bd8f3c3e52775bb45fa91aa0ad3b7c1bc647b775e4de8e1b22eb971041267878421cf43a5e2a2675b2c940daa55f12a7c79d87d45e08c5592362f5e0d7ea668af99eecd2f60d7fc3791e4f53aed79931bd0ba90f701de836d8c8c9be7f7f4aedcbe5c92383932f762bec65fa298eb644877de26eec995146af551ad77ecfd06a3670721ab4c7577e61c048c5dd01b282cfc0fc963b92c78eabd13fba64195d74de4829bb\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 65a7286d77963a2d168ddb4c0e854baf8898d1d22c9de5d4968e8b326f92ede2f18fd29964708211ef6328e4ef16ec36a775b36b4531c52e01c7cc0058064af954790160012517134f17d92a05000ebba84f515f90258278208cb0a5db11d4b1dc26d2042218d2fd62aaaf53633ff0f632431a010b7e14971a41791644ebc170792a61b5548569f1b0268c890074a4b07d8e62d4857f9e720cb7307713424c701f6f666981ac8e96ab066f303fe89a138abd57b24f03d9136ef468cd8519235cef7bab01717898357c0e4ff4d3685706beb5d680da2885556e84663772d6c299fbda67df2cd325cbfd62932836920e0751b0d8095b914c18fbe5e348bcf4d85c\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 7fcda819b841cf7c668f9ec9e7e115146f990cc420efefafe239637076bf9ef1c49ea69474f63495d90cd3859e335d323ab9a967c65fceb0b33a760142b00894d1ac25ee7c2833bf2dcd086a0cad64433aa606f4747f14500ed2779470b4339f580e2fa0a14d870d6738e726a34dda3fb7b82509edb6d6b9bcaefeca077b2dc582982ee6e28fbf167a92b0ff1141d10fc3dfc49adcfaf32115f900b20c812094bca91bb10301616af5030e0a600c993a24d96764986782da083e327569103f7b358a6a91d05fcf89a9290ff989ac8c0acdae03438a44b16c7a3e06a1591869874f29460b0ce09bd022fc3c606d785ecfe4f4a120298408cb425e9abc7171e4d3\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = a5053d46939bd6c90f2a67f6613070ba40a831428884fbbb09d4923b978f17bf538a5963a0416875300f1b51d56880ecefbe58ff6ec7b3740a649f36db16ba6cab9b0e4e7a1ec658fa0fec781361a547a718ef5d9f7d03892bc1b18602436fbe5ff5cc6c3cfe8f2e9df960ed89800da546630251d292b00a60d102211db28ad184919709d8d4a1ab89d65ab2fdbcb66e1492c4525417eed89a0be2c67a79c5f89494ee7ef9d3d0d7db2de34ec6be5863993e8f64e4601b7945b2ea271efc941c4253b09dd3a3fdec6b45038887018a5018771fe60eb67a68bf977e9d3c6b032fa28868df58386902065ba3ac7f028600c5dd5c180552a25d741db12763dc3b89\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 38ead5cec1622d62e9f27eb7bb9d369fc13cf7d21256c5df8958dffa1df2dfbae006c80ac45ebc3044a20f8ba024b73c2e03185a9e4d975fe3075e6e11787116d1ddabf2af65904ec9a5b145dbf167872d066ef490c4b9a724000c44425cd33448288e883fd01ad915b8a4d9d3c65fc0c12d5c5bcb78b323db20ba07e57a18820e1154e9460d71b92f85aed92c2128c83e598564138a97e0379966459364be6aa166a8b62cf7c5b806", "2d99e98fad155c9f0f1c8629e43a45674563f0d142c309605ba2dcb048a9d5c58feba16b5b2c988d93741e84ec47f1cbfeee540f10dac120734143c80e98725c609ac249558f8ac58cb21769941102af34aaf02d538c55\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = a4582c4dbd1e60062e517331f4d49a67491c975bbeeb58c53c21c1aa350c63d74940ebb3e6d8062cefb2f0cc645b07e77e6bd350baab08862665b80fcbb5c386bfe330eae7c43a451d68e75da6a0230a5ffc45c9706cb5bff4952aba08230a626929726ceea068d52c18c525dec9d94884cd93a5b39acbcf31a0a3c1d28bc2ff352ff4097224664102015a14d6d9663d91489f9ca4e5e240a4d9c93707e015f07dd6398b306959d6a545616a3124b3a87c8a17293ba36f3c8af4be8bfccbcc0fda06881e05046b8088fa09c542f6bc7a397ab82f47e05d517e79b462fa77be7fa1af05a09baa17ebffe73e38c3107f4600d75f9becaa8af68e37a4deedfd9f10\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 1bb7a6d1dbab994619f25bd1659c215dfc12ccde9f91ecdbcebebd9c9d1399ab8296035f43f0ac65c56f56707aa4a301939b745a0d0000652072aba5c514ca331c9dd06a2f1c0122b1ba6f9389c6ea6904f36cac5788d339691feabd34b65bfa4505c60e439713591a8ddc6ebe85131bcfb37f7476120d587f127cc52f8914f0c78a2edddd1c6c5280b745de595bc6be424d01d99e58a8834742cd2f085b334966b692c3bd372b94c846581548ed2280c64b320ec1341ab54a702ef7040ff67094d540dcb080fdeeb2050fff66eaabfd5b66c99ab49db5e6c72cb2d530d503a87d691dcdbff85c5e8c9fe28a1f32fc4a22a2a67ae9584a4411f8dc03d3e76b55\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 89bc06f1f12c0b688352d31ddbe22de92b3e8ce8e0f7d34e5663cef1b473408c932aade4f06b056a52a48a0b7c80c763ccd3155f9f4282aa350e9c494dcd99dc2f4c17d53abbf24a37194db5f987aaa176028b2570c8e74aab356e233e406812a17fac0b92d27f503e6dcba5578755ad33a105ccd91204c8ed22e923492ff07d5aa702394b5b8cc417e8e390fc8268cab2468a4285a4fc327a83038e59114654df7d4dd32910f0fc2e900177d46aea50a61fb0e2066947fc648ef40e22c2156464fad8bfab19d8dd9a4aaa8804024693fd2cd45c233c59ec67be03a8b23fd859003b2d01540214b3c06633ce273a9a992d11befc23ef6be34798522c074f4ffd\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = ae26c94476747f8a7454a80c05405bf35799ca1070341b73208de24e7787af7846de55ab36c2d0feacc1653197d42cfd02aabdd57633a69f7fe09bdc72c8ed28c4b1736ca7b285cc685886a5ec535da9db91965b291c53bf92b1ae159974ee795ad0fdb8b422c06aeb78923b27ce67a766f142d10f960448679e5fd1176124593d32b9b7653862147637a76a87332acc5be2a955e4bd2de8b63d873ff449715f6f1f7c76e4083151dc6d58a3e3144c694a4ec85523fe71b298dca5f0716619ea3e1182a94c5a9f6e602844df92d1d2850fb64bd1f28da347b44e0af2017bad6b61a7190dcfded0df48840d3a7bcad796744c7ba5b214002f930b28f958cc5f0e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 1773e5b493ec17b56e250885eb5fbc3db160e2f6ae55bcd6a43abf01aa61a4b0b7b2dd0d522428af6730ff374c40779ca0c2bd8008e266ed234c6133ad4ce13f78468a0f828ad86a8dd7866fbfac741f66d909ea1f415a7337fd449f5b2ec62c5bec328d18f9dae193eb1645e1fb26be42bc6eb980ce5679a88144a2dd1df32d8fc48fd9b3c70e95561f50da328161d2ff658196f7f98da563af6e4c1ed2dbe992ef0df66932a45812234211131b43f618b277c553fbc408ca2369f33e080d9b1188210434c2d90c3f8d03d892eadd70af1c43a8586a4f523c60fbba5cb98e2b0855db413c2e99ea4863a1c2db014b6a31aee56448bc00a58717f03859dd6552\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 6cffa2bacf010449460c15f4e4d5bafd23be3d7ba4ac69368ac0dbba1268df39b96a863e759eb31a3f9eac5494e29f710afeec490ec82d582654e782c06cb0613d9b15d8c06417e36f686b71540494f51e993bc2eb44629fd3299429068ea84309504899c5b1bcd7a49599938f5bea8d308113d84c38acf7eb901cf3274dbfd71b98f420a83372613b4f43189308aa76c9ba15f9769cf4bc5def8ae02449c3b1ee74f0032bf1a8356797aae23f5a598c3f336df8d195cf31f9dbb60ff4a9e5c1398ba07662f31246170ffa3bd38ab0b42dbbb555affdd4928a4b478f9d5ca9a8f9719b0b2a0d3ddfbf708368970bcf027e48ea2d0ad10949a238c218ac7101e7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 9256e2341234a867ea476be7848b35aad5e2d2cd9170768af4f14fc1b30be151ceeb2768767e090913e0e05844088fa15b7a1a99777b614a89e99de472047decd6e9214e6c025385fbc467c5331febae8e2307bbb0f015228024445e142e79d91cb7a00cce07ebd36474d6bb2194a39cad1c110492ac0e0637fdfcc5453b0313065475a563a8257aa1ea467c58cdeea0e139132a97af3fc90b3bd70f03c337dbe73ee8c992a71d847bf9f559e666592a7f1d3876cd1625ebd4056c6de6077229cc2dd230cbc51ae7a28105be3dc32f795ecc11b45ed1074154f1d24b11ab5596d3f8829a5be976b2db2dda1e2fc2174384e6332a63a19a734c50b1a34e201ca0\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 6808813038a51bbaa5f4054f9fb7906c30736fcd150a1c70b3541d3707263057142503bf285bda1debd1d6c5491269627245cd649a027d0edcb4358ff9fad83c0644ebd8c3dee5be6fdfc1eef443bcd9cd5530b088f9f970623b380bbeb0b945c74737177c6b1485c5de2a0aad576ca79d05b41ec7c52975503f3af2cbc772116a27731687aadf16fa4704cfe56223336c64e2d8daa6a5fb75e47c0fde2bef7c48beb46317b3e637c5bfce3ff4fd5654b24ac6401ab346fcf7e214c674e099eb9d933cd1484e70fcefaff0498c8fd8672e35312d0bff87e244df3bb4a3c3f64d73fb0606ab46b8848e140a91fa3da08ec104bcee483360048cb1596a25b56106\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 7696edf1c06a6b772a95964665cbeb28f92fdde12ab092d7cf18816ef5209503d6416c9f4b24a5e4e1f828bd93634594b6a597a86005900d47e6b467337ce96023392958e30e4af43e7adf2a61b523517e299dd10092398d1b13c227b846a9ff8c792b0b1dc413459d9ba4543c81db4609dc6e17e5b99f04154444ef3b235e517e2b493f7fa1cf6e7271aa16961077f6843a3170aa61a0c4d57c0411a518cd35c0eb63e50b9479e7b6d41ea793a6aceee1cd892004dd35934ea383799eaf12347aa184c9be87ef1c244407acfef24f973a7127e614c57cc11a8161b92d57ecb67740fc29164c53413a9a9e216a5b3a290d585a5c0d9a26bfeb6b045b6bcf5c4f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = a7b27e1bb007bef734447c7e9a2b37e06a1721aecf7452f73da74ff381762b1489c6eba62e348ef4c4c6227a910025e8970729023cdc628d97f9d67e81a36e05d83ff625daaee05183042d5f1490c6d5ab6347e94f33a88ff692cc1388ac01fd1d7fd5ca5a026af5fe75551a76a8bf51b5a88e6d7f9e9977a91c535450f27914556a9bda1497dc58dd74b6f27b8a33d8eb157e03c3c5d874232f1b2e7c13138756c81e4de00d53629d6cbe7c7ee9b30ff55b5f31475e2ef3e96aa01f604bb382f5ecb0615d195c011d405e72fd5510adad469e88e42a5c61415c6147e2e471f28ac71c97044fb5df892cdc482caac4c2350033e00b43a1221d0008c63fb8f0b7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = a0c8b1ed6dfbaa3e738a3f6382a9d010f7281d9f0ee9de03436db92cb51738aa315bca194a9bd908340b0c3e1fc8523ce5711ab0f9b3f9e009ec09e1252805809eacfc2059579d45be3d4e26ba9c6be2f35c2ca3f00876a097d0ba9719ac9798c205fd8b44fd239f5bd21f7b264d883a1aa760c60a226c9b9c43090e6d91335a1f0ea04e5151631807a2f1e13fcbb5da9d98867ce9fd448ef1a116f779933dae65e5284053dbd2d004cdabf7c3bf5eb2cab25b0e646b25d34d277a4b20696f2e6cf735ad8acf6a999858d808627a049fc4acf5a507477620468ddfa11b56d28b63e46ba88ee90133990e0f4bcc2ee53acc150ab3f0c6ffa1015bcbd29f9d2d69\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = acaf316a29cbd805132b0c43a4589761a54aef928e4036b15b389a9c17a04c86ee6d595c064cdabe383414e41420be7e70163d89822774374ea85befbd3f3fc7dddc3de1f1ffa2bd595dbc678a03c0ed643ab4ee540c8e3ffaf86fca0f39eb4f795e9c387045ab2f378f246a2ff746dc3cc1df8f6158f16581231514fb22f6e169b13199c4239c1827767aec256d84f729739916f7d43a015a331c56099e8d33d66df6352a459356d9d981bf467dd88fc115eb88b4b22bfcb333facc97d295d72cb06984cd12b670a539400a719d11809a73f8c4406a677eb6285da557f8f69bd006da2c286a64cbbcaf2f2a083a8e5baf560c9d6fd703ad1544413eb0c3fce7\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 0e5569756d22d82b912ac15e90209006c52f6a48a499e242c6603eecfc2087c3175c4d18f42bf6bb6b201b9cebdd8a97a7b32e4e7e75e034ecb96bf0013b2f52ba036ab2929c163962f08cfd96ce780912bbebcab7798b5cb3eab91b82b01dd1983c1bee76334a71", "fa93ad2468a799afed4caa1284fc01225cf225bc0ceff35a6569b76b5cb57be214da94872eba8a73cd51acf917a627ef17547af38bcb805485262063f80c0daab609a40467f73fdede744db116842cfcbe4b1ea7468fcfc258e2069afaf2c552b3be864517a7b0c71d46765e9573f0643cc762ad21826920de1ab3d116496b71366b2f6eb487d8b4cf8b1d6d673da1b38fbbf1e11615b108\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 27f08c9efb8bae2841e67397d0bbb2e852c6d844b0b83eb0d3124ce3159020ac4bc750377f11630cda6956954cc9dd8ac5fe586e73c045ec8af96ebbc2bb6c0a3bb70c8d67cac5e972b38b20901339ce118e268a8a59675a6dd3db05f0f9c4890061d040a8734fd456176d1f4ef81129c7b3daf2eddb2f4c72251fa52550118496230461b583122df9f112599cee7372629b1704030385c988c372e4892007777098d3bb278578e306e5a37b89b7665321635b24564055f9f4ade4e2c7007014db3add8093659c285338ff370ff7e644ced701a7f8c131073f8651994758d0394224cd2271275443c079a3121df825024afec839406cd410f20fc829aa542702\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba748\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = eac59c81e52db549558a3b7bada6e9cb7b09ddabfec008f9ee9c9cb91f1976f168adef3158e37b210f8fbe1790bd6ab892cb556d5d1e204d02c2259f6f581f00371b1fe122cb7045d8fade589248475b30c37e5fd93b053411ca329e568a58bb503b0f25ce9ef9663a32b75165804d0f99941475bb4ee8aef1283b9c7a9a9b8fa337d9b6e35ca1be25db180d80804c241b6733e62832fcb8c660f2197dd4f4fd87078e46f85143b43682e33f58ee33b74a357d0588dff43dd06c6be4ab49e81f4f905a22b563c2704401c64dc3e4ff066c3adc541d5715fd7674031e62d5a7b2398de09eb8da0a954b3c185db29b3fe26e00a61067413fb640103bd0f503d104\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 00002800f421c1c078b8bee9c4a4f355e1ea834c5bca442e9986792a50e66e68c0b8122cb81bb59e0070ca044c1c5b190f9098dbdaa977a441a8a4c62897edb9484935007aadb6732c1b2b2171aea3ab1513f225ebe7830fb823ec3f5433bd8f3c3e52775bb45fa91aa0ad3b7c1bc647b775e4de8e1b22eb971041267878421cf43a5e2a2675b2c940daa55f12a7c79d87d45e08c5592362f5e0d7ea668af99eecd2f60d7fc3791e4f53aed79931bd0ba90f701de836d8c8c9be7f7f4aedcbe5c92383932f762bec65fa298eb644877de26eec995146af551ad77ecfd06a3670721ab4c7577e61c048c5dd01b282cfc0fc963b92c78eabd13fba64195d74de4829bb\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 2800f421c1c078b8bee9c4a4f355e1ea834c5bca442e9986792a50e66e68c0b8122cb81bb59e0070ca044c1c5b190f9098dbdaa977a441a8a4c62897edb9484935007aadb6732c1b2b2171aea3ab1513f225ebe7830fb823ec3f5433bd8f3c3e52775bb45fa91aa0ad3b7c1bc647b775e4de8e1b22eb971041267878421cf43a5e2a2675b2c940daa55f12a7c79d87d45e08c5592362f5e0d7ea668af99eecd2f60d7fc3791e4f53aed79931bd0ba90f701de836d8c8c9be7f7f4aedcbe5c92383932f762bec65fa298eb644877de26eec995146af551ad77ecfd06a3670721ab4c7577e61c048c5dd01b282cfc0fc963b92c78eabd13fba64195d74de4829bb0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = 00f421c1c078b8bee9c4a4f355e1ea834c5bca442e9986792a50e66e68c0b8122cb81bb59e0070ca044c1c5b190f9098dbdaa977a441a8a4c62897edb9484935007aadb6732c1b2b2171aea3ab1513f225ebe7830fb823ec3f5433bd8f3c3e52775bb45fa91aa0ad3b7c1bc647b775e4de8e1b22eb971041267878421cf43a5e2a2675b2c940daa55f12a7c79d87d45e08c5592362f5e0d7ea668af99eecd2f60d7fc3791e4f53aed79931bd0ba90f701de836d8c8c9be7f7f4aedcbe5c92383932f762bec65fa298eb644877de26eec995146af551ad77ecfd06a3670721ab4c7577e61c048c5dd01b282cfc0fc963b92c78eabd13fba64195d74de4829bb\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 31\n# em has a large hamming weight\nct = bbd79dc8eaa9101aa641ce152235ba3d804b48ec5e3dfe69842f125d815d6a56bdb774857c0bc0966aeab1d9c774e921852ff2b84d0a44016382d0e091c3534f0d38f4d5c0ea27744fe320bb0847521ab5474f22d4538562730909fa4496a0c262fdd9b62b422ed4ca9aa30f9cd7cbffe22b3747b0f2eafe1aecbf0f7506016afc9cb3414710fa3f46dd779b21622579b78aa7b580e5960d6c21da81b21b112ee7e2d33f3d67dceee1f07cb3bce8d7bcf8678a07e55498018470a714e00ce9ab796ebcd335240c202c82ac18c4c8c47b2fffba6974322e0e55624a2f0b7e8f3dff1ab4e73bcc65158f6e3d06f7e37535b413a7467979cb5a748b91313e3b7bf7\nlabel = 83f0db4e0dae6949337373a0d78c4b20c15a13cbd4e2adb885c33e0ef4c9764667a8706d059d1d891523d052e0edc1d8b5c959eebc340ce5d41559a89a1aeb5600000000\nmsg = 6b2e7b3152a8eb663899ce78d5c196462d5399720e85cb69fd2714b09842db9dad683ecb27f77938182f14168e76ab7dc039c224ff26c4631344442d81afef7a776101af2d19c45bc7609582eedaa9c1c1a1d364194186b767e6329f7c3daf2ca26348d9f6d2a80b0d018417606cf2256d28b782ace17b8463eb773cfac1\nresult = valid\nflags = Constructed\n\n", }; -static const size_t kLen288 = 31155; +static const size_t kLen293 = 31155; -static const char *kData288[] = { +static const char *kData293[] = { "# Imported from Wycheproof's rsa_oaep_3072_sha256_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 72ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f369981979]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[privateKeyPkcs8 = 308206fb020100300d06092a864886f70d0101010500048206e5308206e10201000282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b120302030100010282018072ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f3699819790281c100f5eca16e0e83696b0ed9ac8a812545daba55f20a964c4e6343604a7f2be2860fce9fa16a1cc92120939deb88dff68550383ead851fac07ad1b2e8a9b2bb69525d96ceabb7ee83ce50f08d649107f449a14521a6893f3f3c5c5a703b2fc28bfcfe261a4f7f450558080deaeaab651c7a9ae586c1e7f5c52cda93e40aac908e4e3357984fc116af9cbe9539bc7a8d3b351a73ea5c2413d1da2e0b448b454670aca89ffe73b1401e9b8554fc3f23d6c904623251a1d29962ca9b26d973345bc4c5f0281c100cf25446f59cf512919ddbfcfa2d9670495ad92b6f295d61032057f9da6dbefc4510a623c2b47a5220082a3bc42af1a144f98c9ee4fdae41be0ec501ccc94b2b0640191099b355611160deb327e8ace018b898025ef470e4373ec1d97f669e298e1d845c6553c0a546ccb168d5b510dbe6018fd4ed9a3545f9bdb81968f4a6d7c790e5c34729a8efb496086fa1300249ab8b28f38951d7bee1c127ac3c4d0bd596edee1e9d17781dbb8227d7b5d76ce8b8bce03c5d339b9757981610848c55cdd0281c06357a59679d26801514c6940c20eb67b370e84e9f5f0f9316c0437d3cb7c843f5a6e6d9c19e8bdb3152e93f904cfe6e692f1eed27a0ada46f95601b3d122be793dad9bdd05d4f6d469105ecfc11448381dc154ddadf6bc20c649435b483585d68a527b7b967be52e35e0be9a437021c1cfa5f4771567cc233c1ce3ae99eb37daf8bd10156b4bd580a3ce9c7d391bdbb23e67363a947405c6c812cbd3dccc8b356a2dafd0d3b23a21b684b458e4ab3854bcd9be04cdc9d65ceeb10a8531c470ed0281bf04dadabfc15b1a8bdc0f566f876191088a7986f6c2b8c04ba0e0801d31cbf5d2a4139a39cec9df14ecee22e846a7d3f4a5e8eed2a70c7a4c2cf95ce74fe42c4bf60c135a264919bb4cc906ba283d1896f0ae48529b490f0c85ab03068cbfee8fa6bb6ae73b182d25cd66f5205b038b4eeaf1aafe2e1ba5de97c88d40fa1ac47626602fc90ae694734f44f3e4e88d184e8805a755ac2904be8fe9def6b7a62cc9ebcf4d7c2d6c9f9e86b2483e9bf22ce51861bbb4e73e731a4dbeba87772d290281c0214a1f73130e48b336fe01b950885ecdb3443d93e7e8ca62fb0da96bd423759d8be552c8be44f139fbee6ec24b75fbf0744fac4daabf5488fe6c3600d9b8e9a922481fc74a7a3d622662db8c85318de48ee8b716f19429fb594990da705ebdf7ef6613dd6bf885c16ad65e9fe6c280386bee976c25dbaff8fbf69baed9510be5eded3f90e0ba4a97e5c81a2189f114670745ab95edda215bd05fdc78929fa0cfe8b01c83f2aec93e3ad1a334fd85aa8794eacf955ae5dacd45b268741fca195c]\n[sha = SHA-256]\n\n# tcId = 1\nct = 5817f7d276493c294359e776931f0c4922207b6a06b43b5b03e3ec6cea095fa6acb8313b61d4a60e293eb8f99372b9cd210818a54e796bf09c70e21eec280fddd784c56d63091bfca32ea28846219f1e39d262ea475e5ef0e0802e80d36479ab81f6250d3b590de65e870bc9a1e71da1bb32154c9af2d049b539c183c0b5d6225c7ebc81b29cd0ad8caee728c57b8a9aa81e02e0e4e2ae2653d8e9045a2f267b844244eb84f93fc5dd37fd956ac933ae1a65643bd910bfed21dea885581b6717cf9cfff50fac0cd7ab5d13884401f3fb65a280a209e6ead340dab05177724f6ce72109a78c433c936e88d746c244d6ffc9ae76d16cc5a2d55fe1ecece194bc1c1a7d589376b16efe8ab4198997476c3c47ee232107af8fd1285f27bb3b455990649c14ef7ae1e81775042d6905c37a0afdcaeb6ce8c303d8fac88d9515ce50e6df603129aeb112fb3742ed607a6f095b1de291fc9f1d808a9c17c78a314bf0d1317cb4d2498b1ceadf919b4aa0978b929fb1b25e2f310daa3e707a7e3816e2a1\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 9c3c92244619c8e02a3a5c444ed621ca2dff15ca12def6a375b96548ae86a1c27056903fe1ba70d376f8f7949adff43d946430cc6692b03151f4baed3f395c496ce2416d8fd91578c607832c3d02005a88631b741414fcbd517f7d4774a818566e2a8eb15e5737110a3515cd43140083d6c8f8e059a1ee0e30145bb10ae2170c0fb782296d646e50066bc92825f1f3ded41d694c6f0c5dc5b17b1dfc84d6be72ac705b41f82157593996f7b95b6362e7227f1a4b1213e473c1f6eb3014f2c79f255a00b3ff7d9aad362a88eb5aaed14b9a620ffd3abb2301feac7cbeb7728b261ee6e877da45d28e6554f736273879833b0d8f11ff04b44753130bf7e5e340303a20d5c21c5659f48e3c3d1c566eccc2b5c57cc7d215ecb8adc6cbaad1eb2dedce4dfa5cf2888cd307718b9980ea17b6b3c559b955b19534207a2ef5ec1ee270a69e417e5d6bece4a62f594e94ceae0ed182833cb7d58633d24d676d1c009be9f52d655c656ea5bd938f1459d9b8405aeb0317d6d4d14cf2c7de2146696a64bf\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 606657c39ae419347af5117fee8d9b8f28866aa59e0dd7d6c2c07a24db6f500272a7766cd45e809055b4ad8a650647076034035a055e0b492a2ffeac0395ccf0a1f79b8344f6e5fb30ede7a0c75ca443b9e999aab43f902c8f85b1c3295296a599b16d5dbdb8f0b65a541d40c4fdb7a800406b56d3b01466b7097a5ef5140e283bfcd16ab7a9101a71700b490eca0a5f12b465be16e46997d03f119b25c98a3898417a433139043d11149f07e829fb7a274f8b6ad7191060dbf740806326fc62921dce846871c2800f4b3ed6936b63ef829a6509d17dd5ab71093f75afca0b32f2b81b697213a1076757fc7e2d264597bf2670b61c2fa2376f21a32aaac2dfd0ed728bfdf865762e07303c860cef78fbb4a32bbac94320bf3246eb7a9e19db4a219b88c41e86aaac68ee52a9700e734887ca4547cc5b6b2725bcd47cfce7d74eb37e7a67ef1cc2adcdd5137201a43af8c5da372c80946d8aac2bd920283bbc0cf4afe2e20572e8100134a0ce1db5422e8a2f52e0f46be3de9dc134e2a0fae6a8\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 3302b97f67d2cd9fb0298f15a375a21defb6c9b52cdbd78838d4561f0650cbe2563cb5e5ea797ca7703f551980307429bd786c5f5d15090701f1d130366cb0a93219f0396c9bf9c7bf2aceee5053553f147c15d02a0b5f00b597d01acda7a396d4f7c250cf61342a48e1bbd07b3bd3c2d47fa2da326e1c757816e47c", "7cd81de6e0e7ae36c99ae2fcc56bb47570a68f5507468dd40bedf2ab43eabf6fd00fb43a0e711477db4ee323300897cf11e4fbba49836f55197b9673a2433a1756fbcfc2497a4adc620e65428e29a18c80c9a86710d1634b56c296238efae7cc0ff177052ac7b2159d2c21e587752ca16ea50c3a3e50b12709535b7eac02c4f8fbb6a95d8455e472f41765a2eddc24008e74b79baa11c7073168c7b54d3168cb41353bf8011e33d02d4753bfb28c762b7c459912da6d441f4942c64fb5f6e82c351d8942c69299b07ad25b6011a7a280471bb90113bda8e450a1098c6944d048c371351b0f1fbc254f9334a6c7b26f5a1888f0c558727ad05da09539ec9966b5adb1f6dc\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 22609a0bccdaf1e08cef04569a12655f58a9d5a43f83cf9f979e3a358c67a1e444d104a656aaebf8f7627870799435c292ac4655edcdc427a0b618781268a9664fac3a2ea481d3b62b3fcc37f0a473ce47090bc6f3fb2a3d80db8883b99f26c3da4a9e9b1902b2d0dc4643c8d9f47c105f8efa57bf8aaafbc96ab3094d49792d0edd751bf028611c1a5fa38319514bd34fbd19a837cd328f0a77b39e7f56f1c76d1e2ad9594251ad8c7741e958371a5737aa272d0dcb6674ea36440c807e57f95edbb182236bb5af45cf17d8649e33cec6e594b5d0e609fd7fd74c53358f9aa320df99c2fa38f69caa1fc333e4cc5d0bcf8a4c4b6d2ed237748eb1886e5a9f155aac9e86dcf798caecaf3d8e83fcdcf1dad4c2e304e288aa925ed68a3ed672c78fe3477f2f59510ced468965d90c88b1d7eeda4d7a6c5f6cfb418231343d2838d96f6152f9963ecc68684d5e5572cdc3b7cd237c3307b7ab72c810a5832ed907e275fe67b267d022c4dde029aa840bea6870f3ad29524a097f9060cfea3a73fc\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = a79686ec88818d6266f1fb06991ade5719ac10a7b0ecce5694dd76aea13fdcf32d620c290350839782f8083af7e73eb65a41d7a908644c6a28d6b9ffadc9545127eb1827468aa6f39a2f04308099480f79c37282e9d7f0545f6214bce22534cdf131c5bfc148562e45545beacab5568d3ce1615ad3ba0c48a93a3ccc72ec11ed32b770a3d435e5ecaa6f013cace1e04b8167dde67b97dfcf4c6434fc50bc53494d6252b70de6d48370aa80b8efd667993cc559791c0f60dd8e324a578a50507a2b36255c47871659e1c96148b17d9d2dfc453db34277a9ff395b828d627bd80083d44b594257a1b7741bd0b0865cbb0b6073d2b7e2a1158db00a20d652786937ed861e6775b551ff3ea78419ff4287a1d680981962f34d2c57a7ff0b8bfcbfe10e5c1a42e58e624971a53d59e1985b215a48a36ca8b4f2977b713baf9066ac3a98fef9775c97e248c53c3f425552050c29fe1eb05e31132806b7b7660da08ed9833ee43e7fe8f8d50325cfc1f6e54bc34b9b5994548516a980df38b9f61747fb\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 5a4eaf5cc897db7ed7dbd6a57519a06247b0c9c229f7bb1c6c6561858bca7552d56590821e22591218ca5edce82972f58cecd65804e048bbfe48df1934501d4ae5bcb8d50a0a12778540cd5354cbba91875ea70dd0f5057d808528f8c5600ee33c38ea7910f881e45ddd4db2ea933547db764769ca54bab59f3f9559b4d4e2d439462762fad169bf0e04cfc377b3f144924514c32d82e0a53e870ee0855d4ec96393c0eba5fa5fc5debe3d384debd1b61b33509f17da3bd95baeb0c43940924a11124d95d274e67df9e697c2b8133231f2f33aa5d6cc6f41b2962292c97465926bc8569a907c28b54fa6b6d2fd89c409da1b11d23a5f6c53ed82043fdaac6c0e4098daf8a27569d58b87b4597a25134ae45a8e1e6f1871d3310e56eca5894fcaa946e9a5844813e2ef31931dd105a3696bf04e4defef88c5c5a1cbe6bda766804a8e99c82474bdbc2ec344bc2de0575ff90a50d39f6446b99092cde226a81ac82f3688ecdbd527f37cb48490614022e2e961dc1ecbbac819cdcd1ed836a3a344\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 4b5ee510deba57cbbf954949f999d27fc760ad542eb46689672abbc8a9f56b3d2ed8d175a341686671ab4946655b7231fd2ecc8166781329f1f427dd2f937cadcb752bcc459fd51cf6d50721736a18d19387f0beb3b1c07f24bcc162b89803f58ebbebc35485505e834d9f5b69ebdc3428fd64aa70ac45d13765a89594f36498b5092fa8b8f5f0c359c2128af55530746375745966081040842f51894aec7f54a500b4e16525c264f587a3db0c2567fb431cc6d4efeeaf64df4328055c7b5d689f656bbbc221ee003a47ad35dc16655763c90633394ab8b584cfac31f81c90ac72e19dc800f2a5ae2fdbc2f839e56aa60558aba3868f835967d2610ba6214acc3f9d256bea014cbdc8c45a83d37fff6fcd59a7b561782123bcf2d41e15b7e08e7c247053d6114e951b5a50fc6e0b6281aa366f919cc36068fda6f9b228ae866cdd62a108ed151c42fd209bc4088cb6c03767bae21f310c37065fa66f0dffe8f4a8ca90b0d936888fc5e0401072780f54505f20e927be377a709ad13ed6d3fcc0\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 991e95287bb7b68da9337b8d5d615a7d18315a8b2a1023deeffa4f54728a1a0e86f4f70ffc2ec884eea8a7e6438656b96b6f60b5cbe724ccd58c7f94037bd458a24ced5ee99b57fa1df9fe91082dba94121e6bf34c5440e5b286af25ea23aa5295da4a4edd441d8898eea42606aee4f646980c3fa4b99da3cfd1383188fa3e5db7e464360d57ba32f94583f317bdc7c8679b793009f25063a948366be29e04e2a5e4e18384bab0c3c5dd25a9c015c5946b606b8e8934a831c674cc228b9cde32d090bd575ab306c7f88ac0ab610a4e4b81db9b54e9000bae8b8cc411297d7902bf219d3c5137a6c402a7723863bd3347293369db5916ee72250e8f699e0bf2717fc07c9550e875fa125ab902fc8d8df07df501a35e7146676480677587049090739721b9a655bed7737ff664def6cb4eed10466a264a83f3504e8ca057e98e9013837b221970549f40e48fe5c2637c4c5463d7a29371c5283111f1583c3639eaeac24b66aedddfca15404f71309f441196373dc4ab6419b9858131842950ad08\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 9a8b5757e7be4efb98d03e5a6d7e8cae4a3764168bb2e0854b1c95b4c0946318ab46fcafaef9f1859efe369c7bd3ea1bdb7bd3e119425ce9de08f5c2c2c2c036b1e01632d6582f86bba5b0aacb210c99aba26c96f1f3d5897617b5a5865e9999f6375bc8436073d631801a76881a6af0348759be5bbe2efcfc31416cc51ffdcecd0dc40f41247911f0b6b98a580792c68120bc3a662f0268dd84e8e7feee9634b590257020b8d1698510cac27c586a2ec72ea743fb2951ed79ae3e0a801a4a35361a37fcd1f8c4be9e06ee6e70481adad57d9fcf2baeb8820acba99b09549a3c44d78e17849a57c8ce356c823deff5597c8b6098b610f7c323693920fa088ca307ef3fb23b4730508bed46f575c83b2e7ed70ee9bf29c90ab7dd123a359280245dd7930363a0c2ea0ac1eab83225ba1cabaf5f57ba9c0a26a86242b3c09cc71533317dc5f1b4a410a9af00c14af4103ec6eb61ced21f3b115eb40c0b7a4a2d4667451cbd76074671e1c8ac3797ecddb82c55ea1c2309db5c4c9cc6ce6aa59fe3\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 0392ad8b60f892220f5ebd2ac686ba3bc49840dc8e54fcf21f8e8a656ca0c53ed0020c9d512d5aba3f3b8df0ea3c65ac066deeac64111af27d7f7759900280f3cd554ac91016f341bc089ca022bd1d772a1dc99ef9130cdd0bdead74f65d08cb1097c9b5745bf28141cfb6dd17c3587c549e06fe37325a51df08a15c1bf817760f6b4d6c3bf6d49b949e97272de6700e3a82a856ed06cdb3d0eaf6e74d6c9a5e6b2da5bb6b3b162baf291a78e0ce082b58057fe92de538672ae21c19e215e337d4ba7e6b878f269be166e6834d8670fcdbffe7676bca15ea3bdea2ce9286d87ec21d3c538f17c17e41f653257e967c8859bf9cca349d5450af6b48355b49dd58c189816bc4da34f907df6a178768c511e645b8a6069dee23854144693045814471cbcb45e607dbc82a501d97ca7e0c0f641da3f83d69f9561731ce59cf2020002e3ceffe8371422f1318194b862617d78c79f89215733c2aab34c3dd4f1eac7815d88cf18ac9424dfaeeaa3d4262a2e1f4871704e4453d65fb9cdb82700295a7\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = b6633093d61ed6dca2c22a5d7b8e94b34249d45c6b52b8b01473b8e2b7642ef1ea0b468a6ff1299b8b09c52bd3cbc63a157af1f85b78ee2f9ec7ca2ffdb19810dc6af4c5aa062f5ca321ec5ab600eaeab6bb087307ab0f8f0da27b8e0056d5db61852634033671983ae8d3455a468100cb1e5383ff42dca3a40a9cab167c33d118f67a3ffb4fa9eba472d0b0479eee9931383b3e93ebf3cb3500ad790bc9339b1c0bf4fdc1caa43f988e31587031fde728abae75749c2341e1df58bea94a8283537e3c77192f4b280a0021fae6fbdf9c456c9b34a5103e34829a8ad337d8020c77f244db22d05814877a3009e9a1e6f8be764b9d85cdcf129611c636eec65e6a968ca1f1335d320297d9f3c948846a8ef6545abd5badfd309acb083d7c163d712ac922de783b48812669e0d062d56e9e39c411b16fff13d48e0635ffb1ed8b7a43b2431e2d059a6c3b4a73dabb1bc0d09c3937dcc0fdc32b524d6ebc5d23db7d53a33943d8b0c034ac1c5cba115dc4e27eb04a26877806a61886f33ad3032f9e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 3f25923327bf6f3a1302697fda7f9024a1a4f649675fe8d5d09d889649499baebd", "6ba47b49782b04284d7cd00a863e6c10cee1268854bc884bc1061a8d8214f1326f95019026a6dcb6592b9bca412ef144252a66665f137bdb5fa5a39d13de8808afc9dfd8fd7591d180d436bf8d5f0642715b78e39eeb022cbd0d74669a755119984e255b8ea3223bfda0bb53c74c3e074f373a7c819cb0dc1b7835d27b94b240407dd5420e53fa72a4987a565880a83d242b8aa72cc902e89d7a47d9d2d74d3d3e0c4c5e1c798217fd1cb56999034773424f7a1e04547f463eb522d546a71bddf0c27229f82036391edcfaa85b32ebea83b0bc99b63eb5eea1dc614b6aec31ebc824ac6d59ab00538b919e9855e51378a82333817d20afb8128855ddee447c4653efb484524e2ef813c8ba23e3bda9824731553faa3289cbade67528884650f0c9c604129ecdd19668dacb79fcfbc4341f871845317194b0a147c86ec1225d0053209b5d4d2ee2607665c7ab28bbb156908f2f8c1f883264da65bc678669b0\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 1ca152106ad2592fa9a59024cfa7b33ef0fc9b52f1bf824f783c63ac1ef2e7accab17e5097103c4998589449398ae84a2e3368832cf7ed0647ba3d0f6ee5b8d947dad4a160e36fdab3f050371c4b332f0b4e4bc9cd7367ebc86a5fe51a8c925da97a01db87bf9d4a27992d97d2b7562d38a1fb1ba9c58dc5c423883a22190063ad60ff05c3c101485adfd95cd521e077f8b65cdbbfea945a5b212d32d0182bb1af5667adb413739e7c5582bc92845cbc17284f37b723bb8d6a77509376c492d58ed32683553bda2b7ebd24e5f83813f67b12f506e187b2db116e067d49eb1cc5e8dcd51a0da2822d2fbdea212fb631d264f255e0611c09fa43588cf92e1a3980a772560c8530f53de1c6b37cf5bf8325a915a9dea8ff1f580a657e795485d983a998e31fced4e23e92bc0974f58306eb2524cf3c8c3e592b2156e826e1fb88658eb65a947a5b2149941265faecde18bb1a2bdf7f03bb87a522278766016eb9b64dadf50d1f19c5c10632ca1f107d03b421abc217d3a07ddeb3b941eba59d37d5\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 819801441de0c512f558942ffb97c590b1fea96059f83f626fdc0ffbbecd334da7b9acfdb8ce52829cf05f046f57a083de44312d83eb46c93e971909ff553ab9be3c42f23ca15d7b7e14ca08fe874b0db6083700577c69a5e8a3bcf6f7c36240ab92ed3deb516b1aba0533a727eb75969ace40a304e0cf2982d696c4e95e30090b14a55e078426061c5d160f5456d6e6443f730341ddaf0acf4ad0e73b60e4bfe5e2305770dd65728ce2424d79115efd8de9cc2cc79bbe1789331b9a36100e1acd528a6fb25f6f093e4a9d4d187d767370f52c2deeef9448a6c016369e9fbdeb0c85b75d44a9afee56ccf8fdee0785e3e709bb36d125aafbfa9e80e38e01cd6604c5b29351fcfbc3bc31023aeb841f5926a37f728d3d345d48e2545d5412b738050964d374e493b3634758a39a73a29f5fe41185b60fff764008efb9257dcfd84a13ac79754875834d598c9cc4bade1c0927a274fb4bcd43d8d8a6dbf2b6f386022bfc68b79a13ecd608645a4d5dd5489935e221dbb767e760fda20b0c74aec6\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = bd60d3822203c14ba38ab4a83f40cae9dea49fc813a2922110244644eec6cbf63a293b5b7cd907705082c9349cd862f6f417d8d401d9c84c1dd39091c8288212c7b9b6ede28fd84fac25afc707ede9ddf3f7275b75ba946d2c9d75a2e26c712b20f704f3369b6c21d9c2a4ff3d691970055fd4b9d42f53c8040ff307aeab32c957973857843cc7ef2a3a2c86fada1ffedffa21dca1a343abc4f66c5944087096e3e4b6ce3adf9094c62d7dba4c615d7f60b13cbf445210186295fd55929ca296af79208f6f3e95945507e094ea927aa5c24316d8049f960cde93f221a018e42f772b765146f436aaaf003a0a4404b65861b86f299cc1d3b85dfdd19512632e513f282e06ad0c0e063950f1e34d612f8671a67724012597d080211cb310b162370026016db8f3ed378214ea76694c335723348f045b953467d86a13a26abe92194894f32b440bd247d81fbca4b1eb88e6175527f7cf454f7065ae5a0c5360d5f709969deeea42b2de830c2d346192d38589aba7c493e8329077deb6a2ea55f714\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 59ce93a93ff164f56ac01663ac9489ca65b071391a24fa7c70d4434d5a8be4a815ae3c84b6112429f69809f0895a3a35546630a74ba8a9c293900cb9e55e6d7ecae3a5c67471efe91e13246a04ae6b41886b338451f681597574bb3ed36a732655e8c32c819a82fcab17ab919a57a5d0f670c164bb02718017f99b5a6f45b5c0babdcd2b5d5fcf39f763f87fff70dc8cae554d1eb91cd9aed7b54f70e44e2d045602855e1a8b98f48b93da66e60c20084eeffe77a4fb5426b382505f8af60d97b7baa46921127dfd413b44bd26bf6453e10a849341677d809a831a68e24235af3a28481224fd114afc88ea74266671295e0e8d132f83f2a9f534b704418997fd51ae3f8eb0bd1353b1e396cbacd5b028d0323ef115c6c35af47c138f1e2d87ee03e418a9d02b95647e551037f263779322f1e9ed29f66432f3e71b1010b07951e0f155ccc4c3553602ab28551b6887530b7a066baeddb111f90fab9ff18eacd2f48127b1ffda4130f66f15c69593552fd6c8e2c0add716bcd8f4c23caa9341b5\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 5f2eb84a45b5c17a89eb1337b0ca5d7f13314a850e5607e1348b1bf1afad9e278454ac3bd3367c36c8ab22d1b3d8e16c364e0ab79c9ca91383c3ff68b8601faaf797f3721551a5f422594a8e96069ee1b7a698a86898cdd5e1b33d3fd108c74bab7c1e08a17a47d7f2195bdf1644ce12d6c5d4157a03be9019e439da230deea8972e360fcb3ba2b59c6e9fa514a26c00791af0dd5401cb01169a333ecc2216d2e0b603a52cb1fa09fe530324bd3e19f868c8c5b4cec1a07877543ee1b68bcdca734a6cf8f28bd57cf41f306f55fc759c193a6225893b3df93cf909de46a9a0eb80c58f80a74e11e78217489409579ab2a53ac7e0f615bd2e3f875e9abd2fc9046db342415b452ef112b7367c301f3bfe7ed537b5659302dc49fd22a8b0ddd8246fd5259b1f98bc857e4d4bc489db04d41379d82f81ceb2e3ef0a24defbbf027be3ece8af03e4e1b0323dccff2633183397289545988b0524b30ee637bc2fcfacb7cf97e57dcc78fc507d02cfdb4e3e1306888d1adc4d5a7d2c12d12c3e2f0d69\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 4da5ce126030a6df46e78cdf2c25b9e81c394b2ab1eb72128ba36e1ce978738830dea1af9cb743d037c0391feb51e3562a117b5bee96335495fed5e0969f26a25580a549e1299baf27f44253aad62b532524aeae684b0f989a0c5997ad35e66b8f4ec2501869b8c7a4161a126fb2594c728c96b97f0f52d29d1c50bee8db7358d5aed88117d262cc790e912403a332c5585195d815a84c8fef117f16c101fd12f51dba843c2e28b758e05b1fe47d738299a120b179703bb8116c50a9caa38799ab377307ed51c185d0ff54206e8b45215a5670d3a408dfdcfef08de0282d59fc33ac76c733d2e00c3a205b571dbf62c1e330d0948397a6a4f7cfea31ef6a297e7308a56bb48260cfbdc497d30956c976deae81604ecaf9ceacf056fccdc9e5d0c8ca1a0de2e7faa24aa0ddc97ca75d5e19e07a614e404ed0ea318bd04ce8866ab6db1f7ea6e65316582e3f8f23e9d9f258104da3cb9c3e8b2424642fea70b5de0b372e1b1ad15c1c97b67be227788bd1484d624d652a665cfbbac148ac4eb1c4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = c43f9e1991771364c2ae0e3fe7f0c5a30e39e998a7e1b293209a2bdd14dd1cfa14356288bf9f71056a0cf724b8e9242b6ad5f6947437051b9e09afb610b5a785f872f40d0ecf76417c38c2957e92d0ab43f77da2cd548e324ef96d87b78952e490e3d44f32125e62482eecdaf448a7a0a70df5b275b086dae02925d64216b25861017c73ffad338647133784b3629519245e830b11d2a9dc50385167b9cc698fa52ad02c5ed1d876f96cc1e425cd0d1f428c78227db88cdb0a9031dc555130a464d224e23ce8a53f41d3834bd414bf98657bd310e411a464875fb7cb12927cd30d2471171fe843c7f2d34160997dac0b91e9a3204b2d46909beaf50482d17758e088b392b1354e26a3ce8fd30afd35327056c432af2f4d0806b47c57183fe6172f9e2af390b2dd02e63d99a920c676c8e9b053e9544f3f01f75f0fa47646887ebdf8b677cb9855e49fd41587907accfbfc76712627af36d53253c3cf396e8ca0c756deafc025267e602af5648f068441e31b77773a0eb6b0be51b162941372d0\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 953969d3123d65c166431050330fbbb6927723a3315f714b6ed05c26b733b88c5ee3ca8d03515a7f3c7a6db910647b0243084bdcc3606799c7844b59faba014e8715b766dba6ba11cbe86eb7dea482af06558a87e51a9e4bd753bdbd01205bee4d3ba127063c0396477b600e44fb290a22241a4e1ff0091af1e93841ea3cf175b09aff11b81d9decfa5259165f4b7417067fc491fe816c700f3205eecd8b296f0d4047df2744843a1d8ebf774226a74e33b29c6a95750cd532b868713c1df0096bc9daaa57f21a7879d0f007c247c516de49fe3890934b71c2400646a983c688f1ad176891a79a87ec4955ef3e22c089c14e5b014f90de8f2ea1244effbe28fe001d6f80d09d2643f19e3bd09a8723267dee93ccb37ec58e10ae4725bd87b85a6268df03e98c5ab3227ed0009bbd4b9c338cc7089cb66228f626e2e12de47391ce49620c50fef3cdf1bf6bc0c068d81c3c776fa4b69b422b2fd5775535bbbb82c652519266fe45252f7ccb75f820690c91c1fb7430b8086aa10268fe226c9c79\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 5dc333cac75cf3da3e0a3bc580d5305ab08b11b10b8a4ddc4df54a6c08dcd21bea3c83178db7c3a9f1581a6db19972c2924ed07705045f0dc72bf60304e0f9f140986ad024aa4791f6b4e903a3c1f8e33f61268feea185a1b0f7690b80924ea06362ff9821ef7e39447bae69fda7671d11171dbbc6cb60d0e95bada53bd7a81e8a9188b4eb63d573bec3973d286777278fc4a4c7aea62267ea0c268a5498d2e989de4e4472c46a2d5961fd4a9a75d81e23e73770014b01721a09c05b39a1bcc1913a9a", "aa0c1f7e54859a86ed3f1dbcb5e4371658c640961927c2719109a964bea77b037d82a08ce241938ce0ca349590b9a5644c3c8f22b250bbff4aaa5731fec8ec554af2c3ea743effe2b42e30ff4ff181f8e6552c11b87090356b8d7597ba0d97059dfd77c300db534d6f660f6ae9163ea6d24a1543f5dcb691ef1fb9b917b7980660e223524ead8ea1d7b4dc29f1e542122361b4688c93f15434e52b791059650c99d97e09a3cf15e7dccadc95224478ea4c90615d654e51ca9433357835\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1202\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = fa00dcf88d38cfdbd67c16db4fe513720bc05e8649e1766e790ddd0ea86cf0977215d36e4d735c2115227dfd62acf808e3839209114929b6fe36864ec3e1d66024b62763acecfe3adf322168b340d839dbbb5e62d2196868dfd975a7a0eea51610df9a5202b0c7037afc6ba5b68d93bd9446f5a9ff1c27945852bf7c1b1aaaa8a1ff9fe3604fe120be2df2d8f1bef9bc049fb667459c487000c59b6f54bb8edf409521c5f87795f3782645a2c42b5136f281875e4193097edc2a284ee6f8981d637a276dcca9fe5cf990763648845e5cf874d56c57d6c49dd003a929672c8c2dc8cf96844bcc9d284a20f8449f8ea18ef2b6128cc49f6931623bff00e85c1f229ee9a9544ff2751766e5687ecd72ec6226ba5c5284771e57574cd65015940db4d4c88cbc3438d8ae0ae420d3962765bc7cdc92481ffc3e22ef0dc3c4cbefdc147639fc93029d68985e6efe7e9b10a223e3eb7988d2614c6f3c4b84fc84fa6c39667ae2054fed4af3be503ff186d64ca9cef2e9771c011a21074e5c6209cd08df\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 00003302b97f67d2cd9fb0298f15a375a21defb6c9b52cdbd78838d4561f0650cbe2563cb5e5ea797ca7703f551980307429bd786c5f5d15090701f1d130366cb0a93219f0396c9bf9c7bf2aceee5053553f147c15d02a0b5f00b597d01acda7a396d4f7c250cf61342a48e1bbd07b3bd3c2d47fa2da326e1c757816e47c7cd81de6e0e7ae36c99ae2fcc56bb47570a68f5507468dd40bedf2ab43eabf6fd00fb43a0e711477db4ee323300897cf11e4fbba49836f55197b9673a2433a1756fbcfc2497a4adc620e65428e29a18c80c9a86710d1634b56c296238efae7cc0ff177052ac7b2159d2c21e587752ca16ea50c3a3e50b12709535b7eac02c4f8fbb6a95d8455e472f41765a2eddc24008e74b79baa11c7073168c7b54d3168cb41353bf8011e33d02d4753bfb28c762b7c459912da6d441f4942c64fb5f6e82c351d8942c69299b07ad25b6011a7a280471bb90113bda8e450a1098c6944d048c371351b0f1fbc254f9334a6c7b26f5a1888f0c558727ad05da09539ec9966b5adb1f6dc\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 3302b97f67d2cd9fb0298f15a375a21defb6c9b52cdbd78838d4561f0650cbe2563cb5e5ea797ca7703f551980307429bd786c5f5d15090701f1d130366cb0a93219f0396c9bf9c7bf2aceee5053553f147c15d02a0b5f00b597d01acda7a396d4f7c250cf61342a48e1bbd07b3bd3c2d47fa2da326e1c757816e47c7cd81de6e0e7ae36c99ae2fcc56bb47570a68f5507468dd40bedf2ab43eabf6fd00fb43a0e711477db4ee323300897cf11e4fbba49836f55197b9673a2433a1756fbcfc2497a4adc620e65428e29a18c80c9a86710d1634b56c296238efae7cc0ff177052ac7b2159d2c21e587752ca16ea50c3a3e50b12709535b7eac02c4f8fbb6a95d8455e472f41765a2eddc24008e74b79baa11c7073168c7b54d3168cb41353bf8011e33d02d4753bfb28c762b7c459912da6d441f4942c64fb5f6e82c351d8942c69299b07ad25b6011a7a280471bb90113bda8e450a1098c6944d048c371351b0f1fbc254f9334a6c7b26f5a1888f0c558727ad05da09539ec9966b5adb1f6dc0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = 02b97f67d2cd9fb0298f15a375a21defb6c9b52cdbd78838d4561f0650cbe2563cb5e5ea797ca7703f551980307429bd786c5f5d15090701f1d130366cb0a93219f0396c9bf9c7bf2aceee5053553f147c15d02a0b5f00b597d01acda7a396d4f7c250cf61342a48e1bbd07b3bd3c2d47fa2da326e1c757816e47c7cd81de6e0e7ae36c99ae2fcc56bb47570a68f5507468dd40bedf2ab43eabf6fd00fb43a0e711477db4ee323300897cf11e4fbba49836f55197b9673a2433a1756fbcfc2497a4adc620e65428e29a18c80c9a86710d1634b56c296238efae7cc0ff177052ac7b2159d2c21e587752ca16ea50c3a3e50b12709535b7eac02c4f8fbb6a95d8455e472f41765a2eddc24008e74b79baa11c7073168c7b54d3168cb41353bf8011e33d02d4753bfb28c762b7c459912da6d441f4942c64fb5f6e82c351d8942c69299b07ad25b6011a7a280471bb90113bda8e450a1098c6944d048c371351b0f1fbc254f9334a6c7b26f5a1888f0c558727ad05da09539ec9966b5adb1f6dc\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", }; -static const size_t kLen289 = 39041; +static const size_t kLen294 = 39041; -static const char *kData289[] = { +static const char *kData294[] = { "# Imported from Wycheproof's rsa_oaep_3072_sha256_mgf1sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 72ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f369981979]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[privateKeyPkcs8 = 308206fb020100300d06092a864886f70d0101010500048206e5308206e10201000282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b120302030100010282018072ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f3699819790281c100f5eca16e0e83696b0ed9ac8a812545daba55f20a964c4e6343604a7f2be2860fce9fa16a1cc92120939deb88dff68550383ead851fac07ad1b2e8a9b2bb69525d96ceabb7ee83ce50f08d649107f449a14521a6893f3f3c5c5a703b2fc28bfcfe261a4f7f450558080deaeaab651c7a9ae586c1e7f5c52cda93e40aac908e4e3357984fc116af9cbe9539bc7a8d3b351a73ea5c2413d1da2e0b448b454670aca89ffe73b1401e9b8554fc3f23d6c904623251a1d29962ca9b26d973345bc4c5f0281c100cf25446f59cf512919ddbfcfa2d9670495ad92b6f295d61032057f9da6dbefc4510a623c2b47a5220082a3bc42af1a144f98c9ee4fdae41be0ec501ccc94b2b0640191099b355611160deb327e8ace018b898025ef470e4373ec1d97f669e298e1d845c6553c0a546ccb168d5b510dbe6018fd4ed9a3545f9bdb81968f4a6d7c790e5c34729a8efb496086fa1300249ab8b28f38951d7bee1c127ac3c4d0bd596edee1e9d17781dbb8227d7b5d76ce8b8bce03c5d339b9757981610848c55cdd0281c06357a59679d26801514c6940c20eb67b370e84e9f5f0f9316c0437d3cb7c843f5a6e6d9c19e8bdb3152e93f904cfe6e692f1eed27a0ada46f95601b3d122be793dad9bdd05d4f6d469105ecfc11448381dc154ddadf6bc20c649435b483585d68a527b7b967be52e35e0be9a437021c1cfa5f4771567cc233c1ce3ae99eb37daf8bd10156b4bd580a3ce9c7d391bdbb23e67363a947405c6c812cbd3dccc8b356a2dafd0d3b23a21b684b458e4ab3854bcd9be04cdc9d65ceeb10a8531c470ed0281bf04dadabfc15b1a8bdc0f566f876191088a7986f6c2b8c04ba0e0801d31cbf5d2a4139a39cec9df14ecee22e846a7d3f4a5e8eed2a70c7a4c2cf95ce74fe42c4bf60c135a264919bb4cc906ba283d1896f0ae48529b490f0c85ab03068cbfee8fa6bb6ae73b182d25cd66f5205b038b4eeaf1aafe2e1ba5de97c88d40fa1ac47626602fc90ae694734f44f3e4e88d184e8805a755ac2904be8fe9def6b7a62cc9ebcf4d7c2d6c9f9e86b2483e9bf22ce51861bbb4e73e731a4dbeba87772d290281c0214a1f73130e48b336fe01b950885ecdb3443d93e7e8ca62fb0da96bd423759d8be552c8be44f139fbee6ec24b75fbf0744fac4daabf5488fe6c3600d9b8e9a922481fc74a7a3d622662db8c85318de48ee8b716f19429fb594990da705ebdf7ef6613dd6bf885c16ad65e9fe6c280386bee976c25dbaff8fbf69baed9510be5eded3f90e0ba4a97e5c81a2189f114670745ab95edda215bd05fdc78929fa0cfe8b01c83f2aec93e3ad1a334fd85aa8794eacf955ae5dacd45b268741fca195c]\n[sha = SHA-256]\n\n# tcId = 1\nct = b47525feffb063be5201aaa1d6846f9f397589b988fa26848afb9bbd9d6b0d0c92cec327332f02bd072d53e479726faff5fb89677c4947d60d5f1d7f3bbf211755975e1851f17f0d88eb970bd14719a9e5b257cde71071915774578e0bead5f7ccd7b476732a47e0d54ef214488d733c689238f6cccd6c8be7145e0dee871fcbb504c93e1efd842b228d67fa3e303a1081e26052c6c11ca85355a2de7f717dc432a90092ff9d3d75301e7f092b3b425354939c43f0879768342242836030822c9bbbbe09d5e938fd070aac9f974c35dd46599766ac6f0f87a036a36e3650f7244a336bee4a9ed1280b8adf57d702844c739354eae88ceabd8e66338e59262ecf51b28f4dfe7bea8449383c27580f81ea06bb4bd031826e6f6ddd0c6a3c7eae23d3d6acd5f6388fd9fa70e66c86d178394953ba4e391629a9a588797e25acf8c130859cb7c9504998cce6dd9e032b1a09aba8b215b03b4343a5c0f2a8253b5543d301bd883e941786371bdad14117fa273296b153bca8ce4581df09fee1bd5e15\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 4aae8595883dedea13a1fd656405ae1a94785eb86318e181b747331019087686cb81b259f864c6a524137a316f744c0d092348fe0428e1d9551bd402404342e1df33f7491c381a4f32ae5687bfae07e1c408c3e65720f54c5a168a29df6b7fbc1835fa49ed5a8b42f2acbbdefb3cf58fb6876c2a0a710bdc5c9032018c6b326389b3c32efbd7aefa8dfde0ae7bbd829e6160cef2c8632335006baad32fa7af1fc9fc3ec5ac9c4f7af226e7561cb44338d428d97886d29009989e1d875650c9f3fa8af2a0924f93d00d2cfcaae67e8a89ef34d96afba478a250b7995e7882873bec869541c02ed46b410ab75a214f0ff08ceaed4444080a4ade6baf39aaa9d9ba52487dca33759153345538143d11af5f0ca335a2a3b94e1045da7ff690a4bd454fb788bd7c73b0b16e35ec2766024fd0b7fa44e0ca01fc61e331b1fc8b09f549a946101e2b60c339304a48d044fe231288129d2b70d6b08592288d175183e442b9aa4f5ec6eac0148b6be1f989263d3cf34a7ff265539b8e34c2117b7a1c7616\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 8f71391b8e3a079a51d015e86e0572aca134e5af782000545da1cbbb4cdfaf836542cad19bbc6aca73367dff9cd1e33631260d390b6d83882f82606e28abd2d8aa229ec1d93b4cf16599dfadd2178029360ef5a3bea6a136cd437f59289d334f20e7bae91ecca18b7e4fa5e3613e489ec806a52bc4727333bd7ebd5bcc7568f697d4013d0f6f54caf1baf36791fd21f8ce84643031ffe474901920eb4f592ffa306a979edfd6c287ee5b1fb0005a21d840372c60a649a1702fbc46489211700e8262bb1a2f54fd38da6a07e15850405a277705a66e7088b98bfaee8b2b51992797d5e5712147b756367170b6fde26c3fb5988ee07f916d189a3a18cdc0f3b1affe63538cbc187d4bfdcf5149b4d26bb207a1495d51a2ee1c2415f4a0d6434d50953ff2fe8480d276491ca1468e86c2318e94087e984444b04e7b804cb1f62c66573e82fa6800ac3a42ce0d8e5909f3dfba024a40c51b21b5455836a9244eeba25157e24676e1a317d1af9bf4773913ec3ba6ed1df50d3810eb98bcd290757daa\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 157562f61b512b11b02d1f8299e62f55ffb9c1cb5facb33c75fee79ea8bfb68314d48a7868c05b8c97de4af54e4960868a694a3c302c73195a8acfdc78137231dc960dab44bad191c4bb2b9f8b162a73799ba2083d93c55b425f5857c925f2aea6af19514825fb18724555a5b11ef553889af38c7585c35033d1", "eb9b71e56ec0a1a1185e4e6e5b7aab351404f0d4a4416023449d84f3bebdf57d5666ffaea80be1958be5d7da7ad2c081aa338203516aba1e11642192aa4024e5fed6119aad7456bf13c2dd561c4ac9ac887eeaf4b53bf15e007b043de9abd6619a6fad5df35a336f744d5034af72a6ceecb9305da973c50615c29b98a8d0afa8c54f5cfe80f8efba51b08cf921cf55c69314523619e753f3056ee704a947c24d12e8817d5312ea5f6d8444da4061d26f18ab660f0eb88019506eda480195395e6e948d42e96c3ac8723f5514d87da3bc47432ab60e93efd8e6100589318f1b85d1c4bd04820be2892a8acca1e3633950b111859c6ee2063cc061a44a737ffaa2c158da806864\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 7c741c6f511fb2eeef9ce3dd89269e991cec00f0ceab514a1780c0ea2e06261259652bbc5e46871780d0c03f933d2a3e4a482ad95bf346f7402509a3234617ff36bd50070e2278e77728ebb27eec2b1573c76ec52a25d921b1a6372ee6200dec65575324588203fc3635948e856cd47a857cbfa8d2fbbd046df850ecb1582d7ecf531f4f6f390b725703a58e82947141179811651588d6b13ea9fa09d138d71afac2b24b82c48ebf0e5dfdfc2a700d93d396c8ed4f78846797dff44535b39d176ec2d0124dd61b29d36a314631aa2a7d25015a06c0e30e2dbb011045115d6d705f06b593a22f3f6921806acb1c8a4460cad9104a78ce9c18e940fdaba39a6451a10a54aedc3cf31ad505fa889ccced290dfae89743722527324ef6131b7ff0880d90ebbf803fd798567ba0e07ecaec6c6ab2b3257688d2c374cc3e48137ff81a66c504a8aed98ff76ff057ae39ac67485b17abe4e16d6fb5b64a5d7c3303137ee286cb6ec53a86511cb224eaf47a59045529ed6049e3bdedf619007eefe4094c\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 76efadf7cc972062cddb8c0eb6789d1422632751dbfd514d3e8a4cfaeb17e07d78244aba11bd078fa4fe3da077f1b6b2a6bb161dffc4d96245b6d24acbddb56a2245146699ef629a069d73ea233dc3994f93bdbc208f6f53d4d74e47cc0ac167ca7912c915842d9113e75da6b2492608412e7fc2a577fd3621a1107c1d1c5e74d3a0aac4cfbf389c88474aa37be31d18fcad2f750c1b176f2c1ff544f5d23fd3e1a3c4507e62d5a2c2e0fb1bb426f860f84c4de0a2ac63f90e3a6e266504389e96b37a16ac03fff70f3bc4488b3ef783bea505911512b7d04abee4ce52b0100727e563f8416e9c6f889e5436b27388cd6d7c4e2ffda6896688f8ce15167e8baff14ce9ab95caee52a5fdc51515fca66b646af8aee83e0aed730bbf2af2a966f330818dc33d4662e4dffd50025cbf77efe6ffb3c6cfa24420f55a418d08b675dd85f7aba3da35cbadd290482af1e7a0c2b7034a41bc28a5e3dc2c47e78fb46ef14dc4674c65f5cacd17e4f542a9b98ec268bc977eb97045f50c714ad7a49c0e84\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 0351794ac968e26863bfa67aa4d602c725b79ca9a4cd907a9e03c7575b975bfd99fa491b5bc3f93e1eac5b48d95090e10a29d9e4edce709c74886ee2d5067bcabab044e239cb4c23e1ffa8a8666fbdc706ecf49225697fb6f1a095e20dcca49090548d9fd0b8533b090823a76ce6c8c8a139a20b3e930a8d2ef8d868fd92c086c06a86c172e40e76f9920a6de6ab2fbff2cbe029b685dbc20da94e84442050b0128200446bf227eca935e1bfa8c89ec3454ea3a82cc792a2512d8513f2ddaf172e35e735ad69a5f892ad0c216e84ea9e92129d8272db269173cbc525e61fdfa5533e2e69a4670ed95f4958c684476c208002667fc7f687260eb54d9cea88bbfeb7b6d7aa640cf0ad0af22ecae17034c762bf832a9e8ef090926c5ad4fe6a15b6e5ef69da001bb7fbc608bc024bcf38e157dbb57974169bdf302ec177e48d15a1d0c919d9b8862cd91d454a96df1c720561928e282b9e922d0d8218d65b74bb740cb7cf7455e97a5e6bba07424382c31c37549d7f29bf7e2e23093ee861dce0ef\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 7a9f4a75375002889bb9c4cafe5f044e2f28997474465251246788e51b0cd5c52c809a69f1ccef4c11723af030fb698a641b98b88b39c152e741b8ee29b13857ec144f200c669010a657441701e929ed7df195669197f46909acc69388128bb75645f270f20df256f0d0c0ed488efcf26c44e4d4e54a8757f6c5bc7008c68b7fec43778743a76a890d383e2983a754095224c56862b4b62e20f112d1bd96f30a3e66a20b01069c0ed9730f9f7de6cb13e2272640ca5cf807e64f44297e3e58ee9331e1f04610694a0d5be7006f96747cf730ff3fc4bf8884b3f9f0cba9c4a8f38a01b225b083d77516d46ade258242b0ea4f367bcdff490e2f127f013808cfeed451aa7c0f64b3156fc968507ec7c80572693d154b924fe18dfea946d52da81a5ad0bfb5fac7010ed5b4f18a0bd1ef400a2804b9ca2b2dd0bb8b8b402952949bba935b674c4863ea4a9e38dd701d23c71e29b4a7c695856db5978b7e3c964ad8fd4decb1cb5eb3f83e8ef0be4e5fefd27f8604b1d6fa06dd4f97110317bb19d9\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 1f1ef3e2956c31f6b98fb4141a42fb2b1a14331b5591f40b5f34fb3cff536753eed85f9c54f24c76b29cf7010875b17e2bdadddffe230d411c87718a5f0cdbe6c120ade66b2171949bcf7df65e6c687249c0dedcd358c38aa1b61867e2435c478f46be8853906cc08741a1c092c2fc577a0b8a32c818434575b54bd58e17fcd1a6f910b185df53449fa88a777f1f795a89eee2586c1cacd4d1277333ca2ebbe0430190289665c3efea05871227670fd07250652a1dd2afa6ed9c295ebc68b15a254725dd6006d28aec6b1acdafba69247790ceacedf5eff437d569a71e5564d6ec6c90d295e225fbf525e76b2e466985482927345737eabfa34046ef618494af1c847b1d819f2f99b15c13b8e817d437db38a574f66da845f54895710f1b685cbdd83fbff9835a26de074c5b1712d98d4e036c9720d921739b8f3dc320f1d266ae5b367b92f5e33ae28a7a06f727f2df5437e55c325cb233c801ddf6b12240ccd0b8db8c31a5ca652cd0e33bc1087f4bbd70a0142617903956443f4ccea5cd93\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 85186e5bd121796c604ceeaebe2f12fe87f41f502c2622f0ac8599428f556f7ddba82355e65dde44fe1691b7901fcf6ed83fb837c1f7ca549b2565da1a249dc717c245a9c6362c8e831ee4156dfdec6d9e19ee500243edf4419d152c643360e35935d88a0364b28038cbab30d23f6571053be99e0e405538c54a71c4483caa328a8a49b1e9a5ab0172d429b5635fa7cc11f5703bb95536d218bdb4ed555a2b1b71c717bd65e3607dfd7e7cfc1fa7f42e72a5daae3e6bd694a4a6194bce970cf102bafc5573b8de18544080db3e89a753b9245ed9cf7a17282017c8276bfbe737bf0d802a7d2e9a9fb5f373f9760708211f9b7a99d3dce0becfa77c96b1f5fe1c4ae8cb2b4f7c741e90e4bd2fd1b93648252e4576b5670d51e86068497ddf162a80dbc2a16b73e16e3661f31a8f2fdbb66764a70a1cec5e0e247e38f3fe95949a5742b1987280ba9d4afe69cd00fe10feee87b9d0b40a2e94fc042a4a51474d7e162a1e7261b2791f8af2af6978bb87ea1059553af71777fd04fb92c4fecab972\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 6aa169ad089b2cd0c5c0d0742e452c4f1bfe9aa04f4df93eeb38ad6de8cc93da66af9ba589352446b8c3a5797cb0fb8b0b6d6b6fca1f9ae4d508951bf0b526a9433a9b26b5cee4aa943f0d2c0d94c479ef8f99e2bb680aa4bddef38ef607ce2770f4d60629ebfabdd9fc20c6b88c8a02179dce5e9ad9beb90cf75baf5980edbd5b92794bdf9bc58dcc44a13b181179e92fa394152506845188b80aedc2fe559a3bbc289b933fa2cddefe080817f6fb3f1e8f585389ebbef06c3376caa975c07efe683a32e64917566645330dca75480e7ad2eae5b4505b6ad5233e7cf4c3d8677e0350b8e1db4cbfd73344e14f458f49849cd991d3b4fd19061bf25784e17b04230b9a1db1637a7b8c0f4e3bfe00952201c039483551931f84980bf8a633a1bbf4b609ad64ac6d26514c869c1d7b915b223356fbb07fad300cc9a8e6c768927a857c7e9a58b0d784a04e24082a393e65f098ff211dcde8a5155550c18bb22d64d324224d77e150bf424262f17827f13920ec7df259ccfba158766b0b52bf25b9\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 5e6a85d2e4ebae323cdf919e12ac8e5028e0bd12501c5c81f2a30daa39a0ce15ed25e705c59edab7e53895e9a4b60b0a0c75f11d984a5cdc45d8f300398868c76c973e5d47f50831cbe994c5c76633574bde9f274bde95f5f4c7a05c7c74f59718e152c182b4dc9f86ec3a677d824ac63d33aa5dfd7d695bc409a3f22d84b4d75effa7c80b64647b1344e948087aecbbfbc607b667611fd7c3f847ce223d0ce6ee131f75eee01cad17131b5de821fa7d6b458cf989e3005ecf6fcd1f6cd022162c2963e05893912cdfa9b06634ae0e040a73284414a9a6d8f8ac2e23b51ddcb108586216bcee3f07c7b1abc84c41b98cede33d5c4ab8f8259aa0c52a4b6cbb754aa21c2b2ebe83962039651c9159ec65da43458f6ff397d9503d41ee102d0456ec58b1b8e28febdba82dc92e5e6941a097c8e406559f8410974fafbb77a9f72b0566bde813306b1a7df7603f731e8982f1730b95f9e541b29eed40fa85978044067650c55ead01240e58c456d9416145b0124170f10675e22d32920e91c11784\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 61a595dcd055dedd65419ed49aa559d1bab787f1d38ff2b2ca65baae8439bf", "2a6afa3cd590f450b42962d84919d29f3d9c11a2586be563163b0a16a4f182029568939068003b3cfabe21ff2c6b7864fc2f6dfbe31bcfd32a1cbf3f0333477401f2d469b6ba8a7509d7e832df96bc0dd71e3c0d2979ec479609db9c19d8cbc99682d5ba09a8dab54c1ef4f3257919c3912aee52376bf3dc4ba4de5d9362b6c197779308ecde992bfcdc6ac658aeb01d5112fe592ca8665641d1e09dfef06ceba48ce18cf6b8ca0edb966246f04705574bc72c163ff7b28c149376bf6302acd2dc687667a9df54b4796941ec1aa9ee96e484e34429ee3a48e8a8a0a912569490190656207dd2a933ce212e229314fd51ba3fe505db2d10a0d29b5f54af042b4aaaaf3b548f38837b95d61739a895fdab837efe422db7fc71ae4652ba5319ba383fc459c7d0115c32b1c99df909cc3722e549e3119e0b47061eb96e714522b8b64cd5841967d43cc5f700a197ef0ad5c7c2e064fee98c461690b0fade7ff42e3f11\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 5c7b1e592ecfb9b230ab893e72c80dd0f762e62227686a1978cfabb3b961c490ee18a68174ef713f4dacddfc392fa0862e55e48cd084199f702507cb1ff8352ad67fa9c128a5d2738382973a65a6302b169a94d977b242ae57edf951c3ec1a368ed5a580ce6755709e722f5a8bc0c6844c53e8f72748f5123ad8773485eaa9a52446bafeb59193b1a95fbe6a8fe876abe6d26c161d8d3b56d5f47cd3b9912e9e3d283ff8d459f99348fd5d81a20bcb4792717b48af6a455333b99aa6b34e9e2f8252be8d51256a30af1209d7c33b55238c72b92fb08f216eb598a99fdc4d660307770a19045fc5e21e2b6e67df5cb3e8a2aa7b7997cf0eeb5324e86a952704beda65502e29b423222bc68184e4e18e3bd1efc4cd0d371eee26f2472184edf302701c0dc869cfd10937ec9d720f0b09c9e663d4e528ed257bf03a6bb7edacf03ea5796c5fccfe6f99cf8ad9b487db1bb228130afbb468d289230366e3890ae1b9561ee44d8fe019eff7ab5a6b2179e142616f9e2dc0c753e570185264253f180c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 2595c4281b17918f228519968ca6882fd7abc6de23a3beb223391548f6c856e99d497778dfdd24f4a91a63564e0e059056977ec4f621994ed67135ae72392e35a3b80b21ef4ce5ef01cb72faf38159b78a7e395eef3525872d6fcb7b97124be06ebd9c78110227ba0108e5d681d9415801b70384822cc24f0cae597da0f161077940fdfee3978a420907b0fd66dd64a8f4231cd963a1a36331dba563922675280457ad17d8a9a051f0852f2d0a69044fd501f1e29c4fdf9ad5957e249ef72963d678ebca418f08a73b8c16ce683b146ee731da35a48057ce41b309ef6ed90865e59e3477e23d7bbc8e5da47ca9c890772f7a5523ef181af764a4d05781db1e8a856b09478acd29c273f3bb7b52a7926bfcf43326a6bea8678151ee6235cf8e94696e174552ba644867824d9bdbaffdfe6e82ae8dce01674ac44d636f6ce97e926f1da2fb4bc941fea2592cbcae57769cfebc519c77c1fa9559f3c13fea9a3fc985ccdd02aef5d977b7aee39ee424c8cf4e0f522d5f50e9981e3b58f33713bca6\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 2db9c10038f4912d0d2011c0a684a3b918eda30b238660865c3047285390cbf019eb7bb0eb17c1c94f956eae46ec8f6f86b4a800ad7dbbeba616e392ddc7e5cc1bdac3433b57e73b48a27e62c59de1da90a8960f3d7010792af056407060ac39d6c200c89e9e0f10668962bcd13506b58b0447424c0e50b27b3a5e501dd35470681dd6f88a05903f4a9f42e9e4440a998a9ec6c575b0472452fc2f7816fedfbe7b9335cb3d9dc84bf54ed5e8bc89a69aba9ce9507e388fa8ff2ff2af86c6ef6f385c7ca2a18714a3652721c00768d8024207d8ef89b4cbe181e645ae1fc906620a7a9890ccedf3b70a08bd90c4acd3b2213e75ad7a6725eadcb6b7a57bdb5cad2ad599991800ab4f7e8e875a2c722bacb09346853dfcb293f213e4d5612458441fb923615b5bd9ca7b38a1bf2578657858ccf0ab002de62f04c195f3588db29c6ecd74815a48c0d7ba9808750dc2569621878f5cdab99c8ae361fceb0f0440ee4c896cddf709dbe0b3d3a6a643cf98b31e40296174ebe7f9fc25805bd6fe8328\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 5552caabf0e33c74402cb8d9cc43fbee119055f8e5a9169d8fa3eb5bd2fdf2f9fb72a9d190ba067eb625da0415b9e2127a85aefd9ff61dfdc42a6d252101aaaa3c11703115298c8893737ab8123c675a65f7db661273b936ffd0f3a5cf5dad3d732b749c83705a90d03e1eb1845c4a37fefa7d1c10da277de8437d44d9c448ab38433985a1b9a24697bbae2dfa875cb033e57527fedb17dca5102683c907b82a4aad66345da3031167fcf6a333a9bc4006934409c7141c70ba0bc3915b2a5579a351a8a6d7613fffeb014fecc6dc9937b1311970e71f45968c890521fdc2167b80155619b575019b563601d8fd6c14c261f64b9d5056ab189a9730dc157f69ac75ffcb8cf2fafa06db43ec91f583ec085c6dda8b0dbd48df33e2aa84eb5bbd77b39334d3dae4dc4b63da5132d69c0879639db22f84b29fe9e03b0102c95c339bf85cecbc564091d9168d93e92f1930617687adf56988cb89b69c367632cca798372b89002bec586e92609c021273a1cc4bd596342d6fd7fcf4911b3ccafee359\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 11e958a24a754abf620bfb2c265c568e41ed4e601bd64e1918a4759a84d6cada1c3b704c9b5c24a3be37aeba85e539b33c05ebc685e81be333d599f3fbea364eb63cabf71b57d9cb38ee4bf01ecfe7a0df7f79d390981a7d56ae6be07c5789e42ce50a9bb84e388301e007ff823f95b677d8cc0c0ba7d320f94032369eabd8500acbfbf2040dd68cf6ad2abce9ad3f8e54033c81e3e2e9ed966b56554d4f0a8134e3fd18facd3dd4e0d3e5fe7be2e1121e926f6f7ce9727475c0478a73bd2256d5d0d90c4ea144b5ed91e3984febb2469a858020294c7c561ae2ead0a05f422fa01e7d91f9ddb1e50a4bd6619f841349f5c998554f023b19abb2c5e77cb0bb14c2630158e37b83ffc5a7653d97a42c7d670feb8d19ad2a3a5be3a3911024fc7d797c3f27b84923e6837eb6a24ef4c9a95f437a17d0faee59dc181771cdfc6c989f7cf9004a353e4ba84fdef74871024ebe667e4cff2959830cea4f2ccfe9a83f58388e56090ff9ba7278759508b65d39c4d4e977f0d0ec1280b7317e42b8f05a\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 7a6ffb72a3d0219ad9e99ec707c39c37d4aa072c47553c307270b9901c1587669de22819c1116d67f4689fef5453007800c29eeae66a1ba58ef4d08a77f2fc7fe9d6bb3f4105adace30eacd883ff86c0c64c422b9101a997a1497ff145d63f7f129a11237d7189361af0da522ec7ea7ddda2732bee2f2870a590c362063ddd5c4ee4476272abe76ff2c761fa7818d951abd8841d516c816b0c7ba93967f95401359db08c8d5aa4edbf5d535ea42c1ebe316de34ba0e392683ca5c5e6767c186a1e0ba04b7ed39ecccf96ddcec921c192c5545881ab2a84c326304e2ed70d29315746cb8b31bb7d036023684f6fa2cf33d558d194389029329da0802c377675a0f3ea28e497c712c5cb0b754af92060ae722563facc3a40794489765d23c9925302c8c5bb9ab8ef5c05c8a9d8a0907858f51e276671a9c96484165b2463e8bba99b3ab7ba5bf88a787800682b98d204f78dc0e137e1aca622d8a2e2f268e2a23309ba8085536cd0630b561211d6c844ea29224e7cd8f598df9bd91a961ee33544\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 4f2f2db05cb302c4fb4b2eb83bd00e6fe362d4b7fae313de90374190931919727876280139e8d52efceb10003b9b367e13195d83354a30df2e3a06a743671df8761f25620790d1ab32c6ea65b74317e4cedebb725e8558d89ff6d70da36663cb34d8b0183caf9a6766b8436d2d9b0e7bb92c40483cd7cd30a681940699c8d167a4b1a0b2ba2670afeae543d34c60cd758ad7a53b8053be8bcfa471635389503b1146d051e978cd4befec148417f3b4b3cfed96ed78048452bfe88ba9b7ac4cc09ea8be3fbcfef9a818235c98a43e160f25427a5636994066ec1ac19be9fad308eb71015f417c15330083d6726977714841383bab6f44f94ef2b7313f513d3589d67d96f1b4d0887f79e414e77b77c39d5764bd7e5156193821fb80d11f7a0847d68d62e1e092d09fa4f2bb1bb65bcf407ee2d9352b3a84dffa4ec241a850466864a38518e2d5f3b51627dce6e6cf666f5f80b476ed84f96b023a63cd92229feeabdb855de9ad90cbe085190f20e6039b01a41b36f111e8faa8e0ac4578cb4fbc\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 1afed89bb5df115fb1cf52de68fd4b1c895c86a6852a06002519a69c6a983e54d19351f930c227b46a6f3481b09a121bb19aeba02f2abca4b0c5aef15861f0f1d25ee3f6c0cf56eb6b3d10ec5b7640ef409d9897b32c3d3e98da2ac0089968c352838d0bc6a594786ab813c212cb72a1238014d421642839c3634ab14f61d0c775f03d875490354dd902b23752fa3bd39cda588aaedaf31b69d29895cca2bac9db554708224b753eb36c7bf11031fe9ad0462f5054750e7b5616cdfff13467b20025a71bcf4c5e6b31dea741ce589c1cfbf76cd858ee480a69dac7a306308c5d3ec8108a7efb2fae18504e72e263c0a1366103abb70cb1f7a7f01074bdca763c17d7edcbf8d64c9b0a74ef11855abbc4188451183904ef1e9647e512b302ef263123b0e4af885187d8e1eb2f6a1c65daf7b2779be15337c3386a284801cc40358c19a4d9e487896c0bbfc1e56913247e97876487d875d6bd487553552b4faf8eb4b17ddfb55a87f46b202bda0e64e480ef03e057b410b5823216f87e4709bd64\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 3dc25636b9915a15c0b5bc467c0f3834e40ea9df315ad7e60a0f515408382a40f900e8ca2279cc2de6c94500db484692f92a0a62ad1a91be01e55e82ede69c5c188bd624cade6a359524023b3654c4dc6fa2e95a5062a1f4ea04f26343280871eca16ad398ab356784775159cb6d94f45838ec75c810de14ffaddfcc76d5cda931f6bb0285f812d5bdc15c77af50ae6b10438019e0207a4e8f95982651de5b251702f3778f4c92da002250cbf9e9f6cf57b8736b3b5596e6afc06076460e948f87", "b64b008545a1a8f71f6918b4d944b6c9a777a1119eb1ff63cace54492b7fc7c57e55d7306d06df5056275fd1c61845cc2981cdf71a8f6ac8bf58036845a6100b3db63d6453b22f44e9dbd85a417e10a8c033cea38f7f3d1f0fae1af30f609d97d8379542dd1a3ad593c2dd00b79badcc9824f2a0946991b01382b205050f68926efef723a10acec37788969ed56ad9c2113a4167b69defe05f02ca56bf93fccf8278dcf160b8e01bdcb4460013bae15219e16c64464cb15e2b94e32c909cb8\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1202\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = dc73866f40b72d4dd67fa7484655a0aa1bc3569c7cb25222b6386e8e4adbdb3830ada800cbba3b063cc173d930c5e465b0746fe5e46093c956cf84fb058897e8cf3244d5850bd604e4c27e19ee03ad6e40daea9ae5a1cec36ca0fde49c6cf42de296f1527b758df1a460057aec70b54e4862465c4233ce6f140dc69b1027fb8262b90a0ae523599ea3f7526871ed0ea85d7c6d30bea21482b2583266845a82b113b99933f5032da3089f58073449a6e7631c296d49aa1d4b5ecced0da19775cf70bef05447f1b56535135d28b2af6b31d901729c05521826176a5bcd04990882d17758bbfed52ab5697ab85c61473ec8796b772856e4b68365e1ff5749a3f6be0a4e1691e8d43143cecfd79291344eadd09b9aba3a12ffe9cc68806d55dc24cfbe09c6704bcbc5502ac6c3537ff0db6222889e97b101796872754a2d24153c3dea6fd521dcdfe5b5f083a3417eaaf7b6c006b6b487497471ee8c86787e8db92a39e4506accfbf9b02fee81a8f3e9cac67cbd2f0862aaf8671557b705369b7a67\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 0000157562f61b512b11b02d1f8299e62f55ffb9c1cb5facb33c75fee79ea8bfb68314d48a7868c05b8c97de4af54e4960868a694a3c302c73195a8acfdc78137231dc960dab44bad191c4bb2b9f8b162a73799ba2083d93c55b425f5857c925f2aea6af19514825fb18724555a5b11ef553889af38c7585c35033d1eb9b71e56ec0a1a1185e4e6e5b7aab351404f0d4a4416023449d84f3bebdf57d5666ffaea80be1958be5d7da7ad2c081aa338203516aba1e11642192aa4024e5fed6119aad7456bf13c2dd561c4ac9ac887eeaf4b53bf15e007b043de9abd6619a6fad5df35a336f744d5034af72a6ceecb9305da973c50615c29b98a8d0afa8c54f5cfe80f8efba51b08cf921cf55c69314523619e753f3056ee704a947c24d12e8817d5312ea5f6d8444da4061d26f18ab660f0eb88019506eda480195395e6e948d42e96c3ac8723f5514d87da3bc47432ab60e93efd8e6100589318f1b85d1c4bd04820be2892a8acca1e3633950b111859c6ee2063cc061a44a737ffaa2c158da806864\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 157562f61b512b11b02d1f8299e62f55ffb9c1cb5facb33c75fee79ea8bfb68314d48a7868c05b8c97de4af54e4960868a694a3c302c73195a8acfdc78137231dc960dab44bad191c4bb2b9f8b162a73799ba2083d93c55b425f5857c925f2aea6af19514825fb18724555a5b11ef553889af38c7585c35033d1eb9b71e56ec0a1a1185e4e6e5b7aab351404f0d4a4416023449d84f3bebdf57d5666ffaea80be1958be5d7da7ad2c081aa338203516aba1e11642192aa4024e5fed6119aad7456bf13c2dd561c4ac9ac887eeaf4b53bf15e007b043de9abd6619a6fad5df35a336f744d5034af72a6ceecb9305da973c50615c29b98a8d0afa8c54f5cfe80f8efba51b08cf921cf55c69314523619e753f3056ee704a947c24d12e8817d5312ea5f6d8444da4061d26f18ab660f0eb88019506eda480195395e6e948d42e96c3ac8723f5514d87da3bc47432ab60e93efd8e6100589318f1b85d1c4bd04820be2892a8acca1e3633950b111859c6ee2063cc061a44a737ffaa2c158da8068640000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = 7562f61b512b11b02d1f8299e62f55ffb9c1cb5facb33c75fee79ea8bfb68314d48a7868c05b8c97de4af54e4960868a694a3c302c73195a8acfdc78137231dc960dab44bad191c4bb2b9f8b162a73799ba2083d93c55b425f5857c925f2aea6af19514825fb18724555a5b11ef553889af38c7585c35033d1eb9b71e56ec0a1a1185e4e6e5b7aab351404f0d4a4416023449d84f3bebdf57d5666ffaea80be1958be5d7da7ad2c081aa338203516aba1e11642192aa4024e5fed6119aad7456bf13c2dd561c4ac9ac887eeaf4b53bf15e007b043de9abd6619a6fad5df35a336f744d5034af72a6ceecb9305da973c50615c29b98a8d0afa8c54f5cfe80f8efba51b08cf921cf55c69314523619e753f3056ee704a947c24d12e8817d5312ea5f6d8444da4061d26f18ab660f0eb88019506eda480195395e6e948d42e96c3ac8723f5514d87da3bc47432ab60e93efd8e6100589318f1b85d1c4bd04820be2892a8acca1e3633950b111859c6ee2063cc061a44a737ffaa2c158da806864\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 31\n# em represents a small integer\nct = 8390361b70122cf45d2cdd8c575a7e81a81ef3cc4b54f591ecb3d817212701a0b53df39301b88b041a317e6c01d58085a7a52a7f5e6c18975918b5a9b6166baa57ec8be83cc19f8c40c087d2d7128f9f45643be5e1fcdeb7d733bf3bd1b6e850b676f32cc804534e29b2c1f1fd50eb94d3ca585d584f854e2dbad003aba313c12aa86105a9e53ba2da03e8df687f3f1932554175756a48f2f13f3fa63e255bd0f86b2e9d3bf680017ffda3b94ac1ae12dbb5b7e03e0f022f53ce1fe8e6708ad61b30bb9513b76224b9ee689c69636224e613aec7dd6386fb8fc7772e336ce101360764dfb8f762b86719976571e560521ca776efa90282705129e3d30cb0f4f04ccb3bdfd1dacce9813d1a589da6ac9a39099495853e346f5733b830a72a1dec9f74214b5ff93f7a8e68874fe90f7c7e02dfa2afb96dfe5018fb6d6c3a4705be77f901282ae50d911e381213495f44fff40a823e618ae7d248039b6ec7e13c78819c3222a2fef30fc389ea017f4e98f0783722ef626ad4c876af3a45f5f8fd2f\nlabel = 904f95a1a204aee8987400c5d30ca79d72fbe988321fcf55dfcd0f07e763a9d400000000\nmsg = 119f6f2b7ee1c7fe0d5c2eb8d68566d8cfcfa3e9bcb1351737f23ae3472fe909dac0d4cd2b34ca643e3eda5343b07d47138a25489169897ba8772a74cbdcbca5dc4c7ffb707d57e86db83dbea8bff77172aafd113d5445618e36f7b9e50a1e9e0eb1f0809528323b45195b16666f5c22e8365945918e81e29aec72811adfe006c45e968e96c605e247163ea93dd434017b482b88187e06d021b1fdf4c985142f471e08d8a2398d54a6ddc6ceca63c430d3f67e825e61cd841b9a5d157b265ec2e5b789ba4b3844bb4ca168ec70fc2afafd9dac34d967400e982ab175d0d82a5007905a83115a181d4ee569c223bb9c2f9e1499f2798658aa8ee0488046b6915db383b001dc693da904cc4e330a9937914a8e0c2309b07be783d0e56a045a195b124f54016ba1c3ae760c2606a90f32760e303343c1b0729da9d1ed18fb16\nresult = valid\nflags = Constructed\n\n# tcId = 32\n# em represents a s", "mall integer\nct = a5adc9089becdf7dfdc75a59cda6125b66cd9680c5689e6266887a4a73880b492e9fa277f1839994438962e946cac0da338b98a8affce9765feaf004bbce10a3c85faaf2a0a1daf931d273590c896dc847ecab8b923005e89613784536ff40fd58e193d1a4a179383e4fde0b914b1537bbffb23f311f7abf9c0de7ebf412451b7e8683389bf9f80bf6f3f564ed44682d5712d434f5a8623ea6918af69748b5d5d26d2c1b89dc6ec5262cfc327ab7f3cc1524c36991e28bddc59adcdcc69fcbf32d19db045753ed85ea0700afe3915bd95467456c967a1b1bed39d7b3cda9f103794eb26479894a83066ecb00e23ba424897132407b50f3d25fb2e9649f1afe244c5d4fabcbb53c2d214febc978a3495e0cce53fc9fb61aed4f7f6e42152a6cce5ff9d5984e4de9c7b757c6f9ef5edd7f5a20450bfef586996b009cd07f8377b240ae859b1e4518413d9a79b6111000ecd1312157f4ad3a35a0386eb1f9bd15193ad9e00cb0d63bbc5e279add877eeda0ad66ce845d8acbf33f69b5d8b16ba8f0\nlabel = aa66934039f2adcbc6de2b9cc1b00b11bf33a72ca8dbae5e7a8af45446ec682900000000\nmsg = 2a0e8d66a82662bc1db11a99703df46431f00f815f55520c16be0efcc67e8757ffd4596e232ea9a09a9c96c66b73ccc94da587d0eba7bbd35834c6ba2803a21b5e9a70aa8c37e391f6bed5ffa250276c19719dfc01d8f693d5760ad1af4eed07387a5e6cbdc69584f6058c04bbf0f3f32ebbeccc2d2bd395e4debc53f44a7eb184111fe6ca944865c9978f969712e1f777c3c2fd4286b705e40d56f7b424c315fb5b181bfb14b53dff5687e9c122fee7b3569444f76dd158cf3925b6a3640f5e573c0e5b420287396d85db8b3eb4e42336eeb55bb04e0972d6fa2172391bd954069c8aefce760813961d360f1a34d052e90f9b2b8f71e8c63b7a1fd2add9b04046148d2d8308f8517ed8010f8b23a56982a77ac8cc7f68da4c8e3617933bcad802044e176612450f2c2f5e399275e3877102deb58418e2b51dd2cb0da857\nresult = valid\nflags = Constructed\n\n# tcId = 33\n# em represents a small integer\nct = 8da7f29a7b3fefb253514a166eae3b4a8cf5a1eb746e9c6e3c0bb84c81047546a77815a6d527c3ec81c23761be29ce1e44df62dd3e6f5f04b91541d6f4b3591d9b8d9d701d92c6080842305e73c7be4ce52f3462c3676aba2b88d70cb82cb28a9052f0315449a7dfce72089e5a2508d99c54346bd2289a54517136239152bddec1181dd09406f5bc2b1fd9f637d3fdd8b2efee4136b1e8b8ac2aa5883343f56d74280a0458258a7fd7ffc3277c79adbbd96a928664853c2b3964b139071dcd56ad6bb3cb4921a3fbb2b90aacfd932b5d5c5521088dc02a453c719a22a0cf7e925264e8d3252d4c05f326f9bff175937ff2c3b5f3ba29d18a37e9d962274a99bbb5afb7431f68f50771d099288f3c4fff9b07dfa656bd8bd1d309ffcb8f1541e747ce920ca2d6b7582aa81838b379f4dc4ee23ea768e16d42784f97f0f670cb1424195ad8bb382faea3e5017ed8643065d6bbaf54999b08734097e7e34b3203d2c7ddc42073e15ed178e7893198028a58695f9c58f74a7def45eba8bf7ede23f6\nlabel = d586a88b3b492bfc530bd701d28172d67359ccda042cedca29f17a6152f01d4300000000\nmsg = 8d708fb7bb840034728ef72ec2bd7f10b95e37c272a385129d58f003364fcf454528e290bcb872d51306812bca9ae146edd97f2d56c4483bf39b073b43b44e38b55b35c7c35946c59ad9d513af40dc6d65e0edc2017091d4b762d7698c5b632708028d4b94b2e59489bdd2140aa173aa8529134e4ca51f7b3a038521ce76eaba81dff111922fdcfd13b75dc6a8aba0c56867c4621c740fe412f5a4146076e2c1c3132012e7fb48559ed4f39874e6d00479e5a19b20f8f3e247b91c083a2ea603b2a75ab0564d62c2568de416082d9a0c1384742839baef2401f63dde8e0169446cde0beaa9fc0f92ad4d8816fa0b9b06a3e394d9a0466b9bbd13b3c9b832b18df1537f3a79c941ecd567880d99ca9031690e619674e8cf67dbff8ff7d650c03f49f8f0fb2fba43b76e6116fa9ad33abf71a232614cfe1a2e99d2fc6d9311\nresult = valid\nflags = Constructed\n\n# tcId = 34\n# em has low hamming weight\nct = a42d715c584bcc5589631f73e7ba3e0ee68d590626f76526b15c0e6defbd3a0c0e0504dc90157ece3c12317cf898a3d753787807892d2d67476ca7400022f0b3fb923b0add8a519027875778cea6537ba5a1c6ec5ee73d60e6fe998b97c18333ba711776d617198f38d97e7b56e260637efef5b68432394ba6e4520a33ebd7785fb05b212973664492a271ea666e76e5e15c9304a291b2a3800a2e0918a293aaf69cd280db9333493a261386a8fd602cd072bd9a16d242da982c33b6f70d475ffe8702ab82471831496584a4a3b6710aad7e4019dfebc6ec2f3e3128ee19325de5522d64000816e98be981ec2755be99c4d340413a08f2f8c888452887ab8e9e293297391fc9473c216d4a48256c3c1b8c7a142be547fd383de8ab7c2ce4fa5d4a0c034e1098ec5fc4066ae6b70fb24538432f67b8b188be691d94541522e78fc6cf46e3480ea6188598f8e73d08593d8b17e4fa28f470f72a1ca8ed92c7a9fe7abe2d02d7c13917c93a37dfb2d631942ab003c84c2216135bf8e2c014e96d48\nlabel = 01ca475244e50d16a353682007326d0ef4568cdb1e388a8d164ac114e459ae3000000000\nmsg = e00ac921d4554304c4d4c75a656ec3ec388c3c22e9837409cdba079cdd80fa3d215a6ee2db42947c7c4cec3d31f3f80bb64662df47bb9640eadf73d64054e3808b7c847e551fd91bf8d15baa9e33e37b688d48432deaf1855821721d903f8c69d7f6735d6d57d98eb8510cf6ee31801946f6aeffbc37d545028c0d5bbac890e91142f630a634c8b54ecb1eb9639c9e69d5c8a6a8c320b762e341948cf4e8cb9ff0da3024368e4ca87b838ee293fa8e209f8b993fd6a1048db31d149f47b150a1484c14f3c218baa1fe9a17fe74acb1f00050fa7642bc6ddc6574004dbf83001140cff15b3fb32d221c8bb21d9352e3356780e87b0df0b03b1cbb6b257150c70f19e43ab09c5a511c3b3a7c4ce192e718faac1bc6bcd6c6d5958b129076e1e0b3aaef5b38a1f82ccc0b8479aa41ab316d0b3c22de19004e06ea50413b0582\nresult = valid\nflags = Constructed\n\n# tcId = 35\n# em has low hamming weight\nct = 51ac53ba60a571b3257507f19d07646d340d8ed75ddac57f0633ce8f2ff5e3d86d94ede08c2e18a5070f954709ccc044625592249fd797f98a62190a6a65e0c6f8621c89af542ef7bea7c4efc0495abcc4554a22a77c9df7d6173fda1f25d3e33cf0f4d64989e9536570514040611dd78a07bf98f76a642d7bb359b151e99a5b0bf5f245ba896602f01550818215f48d020b8d521d63b611201492b22d6a212ca5bbccf3e475f045e3afb0f976fef14bb91b45e2e2927dbbf2bfd1fb94ff7fb165d5c000eaf09421df56691ba70bbeb98d660c7598cc58206c57a37bd9e8e111582f5274dfce29c934d156656e15ed0fbb61c0b4a733324cb3e6abc95d75b0bdbef8b617e0eb18350549dedd8692f18fe6e2196af679d4ddf4b040efb92d2fd0ccd60db025c402616e0f3ec8259e7b1667501dda86a41e15fb3bc259d6aad4553923bf563933940f1679106b9bde4b73a86a502f1e5afb6a8190dd4b03cad65690dd51afe3e4cf11deca11bd2f28a759c94624ed6b26fe3d89da93eba095b56d\nlabel = 9bb39276df720a4c92ca64f2e89a3c144fb2dcb3f8b13d74df5f24a76945812f00000000\nmsg = debedafca5e356c5375f0abf71f8c6ceb3879a1d9a0a5d5a750f2310e899a70f1cc833bad9e4204d883ac3c6238939f044a3df5641bc1ea2db48995850ac642ff1735062f441dde9376e61a3c7d2ad1eacf4af26c25e29bf3c1c27d3ee76bf992cde316973f88ee7c940beff156794d0729561a24e35e144f7da7a87664e423d6f040f915d996323d091901968e910ae6e206b586f084b5da695c1a1aa0784a7efaf92ce453d3c57f05c8fdb1ca7b2fdc0c4dbf463d5d8f4f62f19281221eb386ad292d26deb871d968d0b42073e1687cb3413f07702b47307a7c83df1a6654b0d92f55aad337d5e7cd58a7c7645df931ade6aea398e91f148392eb6032827cc2543847140b19bcdaeeaeabdf7ff22079aa822948088e7cec45c953ef1e13139f3652464cedcb9127b38b600f3e50b914c2661cb3c7196cbb9b7a4fa17a5\nresult = valid\nflags = Constructed\n\n", }; -static const size_t kLen290 = 30190; +static const size_t kLen295 = 30190; -static const char *kData290[] = { +static const char *kData295[] = { "# Imported from Wycheproof's rsa_oaep_3072_sha512_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec2181]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245020301000102820181009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec21810281c100fd9e30b6bcb1674ead266332e2af25c56b2869b4d822d247e6f5b35cb0f3c573b5efc39e4b5de760489b82536d6cf3eda1bf60e5e43f69f26ac8e45b056d702f0361dbb4a73f42ae5889a849657a841d866b8b4417286ca9b39f854c4d95e3719b6cf367fc7128088a365f3e322c1fff16bc68bbfeb69c5b2a9a677dca6d494de44ad057135e65ae5a5f83c59a0d1477e5175acf716cdcb2966fb75145dad1554a112c466d249ba894caae5e182c65f1753fe5bb583ef962d1574d9be20bf6a10281c100fd3c5d0967b74bc6fb54ef961a6aeea76a59cad1600e3c73f834e5f5b7b5096f7779c62b07f783739341ad5de095e0209f2f2f30b8dd503da8a271f4b35d93cbda013b515f573501ab80dbc7d9fa9dc98da4451e00e0032f53583c818c2645cab8f35619e7c27928648cbcc3af39f30e0a61259ba2499ba96b2ed7b9edb881d442466c07f362ad11a2a9bb3f67548a5e24c246fc6c438d32de9ecfd18b609ce12fccca90bfa4c3ef63cfe3a349611e590e44a53242dbdbbe0937f2ecd81c8d250281c100a975dfbada4df7673c8edfcd8a65d96915f6c4dacf6844f5423f7dff3b4546f3cfe74ae0241fb4904333955b454c7d98947119bfc24914f3a3a263e2e5b7803409a0837b2c1d3ae2dfc9eb264fa6134cdf1a50cdc8637c67cfdb90e7b117ac07a7009f8b25c43e29a6a039f786f2b0d6734ca4f6a8753ff83279451969fea7f261ce13737b3fa1d564115a2cd88850dae3ba3d354ae6a078bbc81dc73253c977a1abe3d792e9d910458b40032347d73e054812aaa186428062bc60e0fda35cc10281c0098b4ade5de054a4cd38284779fb69bf398ce4cdfb56ce0478e8557a6b501168f811c8dc3a52a3cba953225b956950a72a18b72898ef0e652483ead3942704b8fc206bc1e75bfc0d720f4b393f07e9067da6214cbe2fb32f076f1de8ac058d3fd4b4a71c16d60786f43331b2165a92c486b39e9d3d0295314f6ed68695650ccf9927da4e7a67cfaa087d69273c97bd174b3f5f3988430b814d4ea2fa7ccc495d5b55d6949a0475b6020705c753aeab5c23e3866e5c82b8c772c57f0c5a20c9590281c100a2775a3e38c279cc6633f91e528ba76d14750e36b7d43883b1c8bc89eaaf2878c3b6ea9b87140d6938eaf938d1f010656899717be3e0de04437e1da539c6acf3db3956bd49ad71b747778217e2dc67ca0800726a7ab9624e41f10e578719850ed7684db03b7010e86c197eb79f7f68c3022403fcce14d8cf9df186b0a2b97cc120e2b4a729aa5877089240a18fab397962198fc846cf9a10eedcdb7cced6091c61e8b1c621df270cab19e5795485a4b74cdc3e24028bfbbf0eb1fa2ed4531cd0]\n[sha = SHA-512]\n\n# tcId = 1\nct = f9798ff0c606b0ff80a1042cd429d55bcad69856a0361640456261d29a98d2e42cc9618a08044fa29eb116d16f67212cafea3410c7c839a67519cfb5ca1def83ad3fdcc5488984ccbdfb2726371e1c2ca157357b881d873a7489004698ba21d697349968968a0189bd56ba4761b0e6feb4feeafcf4ebb5dd95fec7cb0a3cd23214356fbfdf93f17668196c354f7331a27bf12e8e9193e5c6c79e445160e0f28304be532b3157b50eac999cd162791c7bf446aff800686ca5d14a272a01dbfc6511472c18aa62d22b6af90a6335fec530aeaee8403cc8a07d9c2df2e9ea0e8c0cf83b82cde0488eabb8e7c8d18fcdcd62e680c6835955fdd7fa30c689b6b39805f317bb00e8dbe21907ee92f784c930acff37d70f8a7a838c7230e77d24ca45a5650726c2d1e3e7470d4247ee9f0a1bb8895dc2359cbde3b52785e4c05536759ae0c83555ef30f97482fe18f00527c7f0b37289c31c5621e3c7895abcb455277293e277c450bbb972fd63c533741d9a931be06163e166a4c6b139260e5909f01f\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 93c78c91f4245a3475669a0683430aa59900c789474ec8f95321c46252e440209469e541778dc362b2ce9d5a6c822892b5e3754fe40038d5523d76e13ee07d3ae941963ba947b2fbb07c687a18521181f857d134a3286c073abd024691a0b7b85460a1872b5e33cb297e6630af2acc82c8fc61b96b8e7795f7e6bc8581d196dff9e3752fa88b08cba6bd67ca563043bc5296b6c26d526e34b0683b921739dabed3986c9b36b354ea17dfda86b78cbe5f0d4646cf102fea80da86c45b5dcbea40b44807935620e382aa17c6ea148d9b5e655793f7e6b6088ce719b08ccc6b5dde7bc3424f1c4d61f3a282bfee3d6f30480ec23a0b6c0712e9fb2ff799fc79459d1e2dfe8e7e87404894bb0a31260c1086c577cbe703a54eb9e750488529076c2dbd6f6b34dcf39e843f0ff279d0beab2e6709148b8562ae172bcbe0e562125cd6ed7f5d3a055c320bbc3c8b4bd28f7f9ce1fb402ff265e6d311e82adea22332d1b6d2b920313882ce3ba836d17e1176bf001afdceb1ca006c8a18f574bdc635c0\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 2679e7a6a3aa29ea006f84456c5cb6b33dfc0a7d1a86cf711f001b442fdcd788b01cdfee7d6e3d63ff3c30b2a67515e7d1d609e6ed4e22087d5857d7fca0d0b8f5dc41790d2913033971f85ee7d789de23ccee294493dd4484eb79e400799b24d6830ae8290343ed50d123ae840c6e4aa819badbbcd513341fd19654391085b0682d8f32c9706eaf8e2a0fa09420e861dcf8ca0867ae2f4b333031cf8fea956e3d67b67c40d97847cff086033cb83b95f33267c69d771407ecf5caa28fadb976db3855f39ba0710498271c86649604db35b141c8b9ae343bc4bc62b43d5c662b424a8e766eafdc22b41686d96d26d65cc28a221e15f53a1ce82ce664a2d5dc602bf0c9e488781fbc0ed679c9b225258a5582f15be48ba4a7a3d541a7433af5f40de0f04c04544962ba318179d2ecc8f4965d306bc56e2b6ee7f9705ad1501c218c31bc2f277c62029626fbf631f46964403d8037f4f6c8349ee8d9906274ede7d6b78ba30a3e0473a2621bc86dc31ba89561d82c5559982ff188ffcde9f81729\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 5120b9815296215e7ee89f5a20a46dee6f255f7d96d399c8cbf5721f9f9c4d89a8ee37e2a6bbd6acd4878404856143960be4a77bd8f6afe6b255f15bb8bcdbe3395f800df64c2d2b55aa7cc3c15c3d753562359a14433abd29106a0d1416cac5fea97732828a198c04d09ed6b47c12365de2a98eeddac3", "46fe879d39a1a28bc19e2ec570b94681f7bed871311edda5c8fd76cc14b15983046da8cdf1e15c465e4a9df0fda11ded950ffe5e67a3d07e56f902c7535331c08720493d6ef4b1760c6489e0af7d1b97229c4380167fd68f6ee30de2d61859ec55b5f0106ea0f675fed7c9f660520981dc201cf16a6fa87379d2c667f9c8fae97fa337c34d591f18b092f534be25db157e6696b1c85fbd896971f2c045d08be1470b403f2effe6d82fcd1b9baa9ba2c0ab0d25ca9cb2aa26f2c4d5ca3699cae3b61ee6eaf98d44610c8204e4298a01886e9cd21030058b29462f3d73018043466fe45307d2382b8b828fbad34f77c1915514a9ca9e0bcfefd3c0c7daaf02db684454c18b109a7a056f\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 290186a1a87bdde5c2ce70e17605b39b4fa2a286fd85c299a303d56207ddd0557ad5513a7f92ce1a39d8cd571c9c638c279d722583e17ae488d9d3ddad55d837a43845a84f3e774d8679d09b13bf218d11d8a2173cad0c5fc7b86e477dc372f215bc5641a13e931170c6401447836530b065f574f3376b99d4e0200053b92b1fe1c8f513d2d8ddc3ed210062e601d4750c5bb9a63e051098f159ecf8c40f90e6f0265b357585aaf35c32dde08e565bc6687319bd7c637b7e1a012408224865b9334083460aa39c12565c5bbf03a316a6ca5c174d6edee3391bab9773190bccc4bf737ad0f350e629d2eff4cd1611d510a7cf9c11dca1c86b8dcedc8f9b80fcff7a828c9b415f4699b2a1de2bebbb804e0203a1a04ddb95afdc4bcc6d98d240ba71ca2918f21696ec92abea1a9e16607e86f40f7de08c9013485d9f8121d9f9c0675980275519dcd2e705dad4d87009f0fb8f6c413b97c131766620ab583c82dc1ac489bade156b8e502335365bc4a8d7d8adebcc32bad71e6b949a48118dcdea\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 13ad5b087b5a11595dcf44902ca1011fffd32efe6b77be307b3dddd1b528f33e7ea3f36e09873da3909c7f44fe9ecd17adae5b40cddf0efe84fd401df7fed988963d555c24bc5a55e8bc40deb8061fcb59183836c1b1342d66cfc74f6404b67a4f50d9dab04223c18805c0a577b964997e5aca7016daf2c4273ca773bcde39470fe7eb5ec4541650c7687a378d00008bfe8a3a4627cf1efe29e7c81b8a12cc8afb745a86567f5141d16d1b848514acbbb52ced7ceb7381e7cf0261991761d411e6b16f2606050b24ee918cbd17f6c3ff949ed2dc7fa6e99b21436d35729b241f4a346c9c92a60d57c40f39fd299b2bff2f97e196aead3f954135b473267b27ff76bdb451c23b49d9477aeeadfe45a08852caf353d92f0e47feb7cbed5e49a89f42e2a755db0d5efe9dc330c3a71f331110db4a9fa3db914535050a96b0671c2a15b2e9a3ff3f1212526e2391e3edb1bbded4de0c3cc677263f2ded3a9506bdbbbd5fb3f15efda88d954063fd70f6642a5a28295fbf96a4e0cddbeef97a2b841e\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = f4b9ec8148f2d6757e6a6c9c32d5928e0efd5ba4d9635d60d9b481ee84631c6b019b4a04d1e15d5b3911aa5c5e9c46d564e707e64149cea901a88781512ba96a3a53694d5ed7ed7f8fc7885e384daa32dcd4c5228ea33e6266bec630ddda028c013288ff16671dbc5147b28e26b73585beda7e572bae5e30a2a9b123fb12b711a4f64f4aab9b6531fe691098d38c27389a8e99b44ff5d39b0ebeee5930313422c918681be11fb722230759c5b69f03c6a07956bf406d53f8d55729373931dfb19e01dea1b9e5203955712ec5463772b38097c075d8887bcf437c44b1f3041f2e84a60387e5565feadf19b528e77fd009bd13d248a0354e701a09a63bad83b30b4c64fbeaabfe23edc45e8405ee8a9496cb863e0b12a21848023ab41bf5d24f39b35fefdd1c27702dc3fd3ec31a3643ff7cf03cd429ff5b14735c8b9c8fcc7683d599ed14200e472a030cf3b40dabf7c22ec7645c735800cd1c72cd50beef8439f5a7406a932bcc1f0ddff90c95fe554da7c1efb79364cc53a773a35a2ef89bb2\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 20ae63774da080fc14e32bd56d9cbb3610aa0208185afbd8f612ad4edc3d9fda4746957c1891098ba091c3d0d3e337a218aaba1911eaa73b78c5f16e54c31cfd460098b33b160ea3c274d8e09703339b3b1cee7ce11299b1e7f4fddb75f19f546844b211764c6c171d2dfe820ac2e3a8656b90c7e4e19f81cbf80fd85e2f81c350c49462b45501487df08c2188f87383bc2382a32d60ac965aa4dbe5c1cf28619901ed6b42f2254e066af44a20eb6a9d4348c3a4169a209263f939ab49dfb989358c6cd89682df00fcbbc2208bd992e06f75c64f3e8a434dd7d1a4200fd197d0ee2b7f851d04dd4448544ab22c16bab499719bc43c9b07007a124b5b1e18b613e401340b637a31860d86cb4798c27afdfd885427f6f8b267d767ba290113eced53c9a3a0e7143b00c14beb395f2ba5bff839dc2c53a44eabc269e4860ef9d4c42e9e8c1623ef77613278b399f344a89fb1a107f08b5c265bf5809f89785ec7f24ffcb884897b891358ff48196142f57290b1a02a31d6bf5288893a1fb615fe0c\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 7a90b7e694903463592d5bfff2e00189459a41261d0d3b1c7c10b2a578c792b8abdf57f52d7d26a26ef2ab75a7ac39c28334f8a05fc14775ff1d63dbefb688e654a595ba49687d0b711ff21643a2467ff587aeadabd0966f1e5f34519e5b36ad9005a05b7093d5053f6463734c314e654340180ef8a18ed259790e3058b1d5ec18842e9b054853d8219e18131f51aceb01736666e60dd293e8ac47d4966ed68ba39194b766029f4bfd344ba2b07d9f89238804f0685706ac9c16462e69506f18dc3ae39e0509d67acbc603fc21b900712c4386c01a48877b9935355adbd009fcb41e5fcf1d39fc4dc7d26e72f0db741e2dcc17ddf79db46ef3ef3b2ee3c6ef5c689e139442c24c2cbec5eee51f03b0f38f19f67ca802e899be6597feaf3f0fbfc52af1960c1374f6114ac9b1e82670568c8c78e00474a1ec3de11e4f510982d8e9fda89e537733583ef6792ec3bc77955f4389b5b44965644c20f23a09363ac346e15e1f0821cf0488498824200191971257392490946d660819e6dbf310ae57\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = d88801d500a78a626043e14bd52e01f068eb5381c434bb3af50c9367a2ac5ca1fee8a9d248be2b7de7a5f52c1e716d110113b72bc6e2d08766607ee20e262275f7dbb669d47d8710a753ed8b0d99aa86c7b4cf0e342800c2185f00c38190bcfe3b40758035390fe649b2b0936433cd218450e3b762d10e7eb95d85fd52e5759d0d5a0ae49c897a059f7b1628efe8fe06e04d294548a07f73c74e6e6d515e311e7ae846b0c7f5aa56c61f3373e1a99f2b610785df6cba710fda15c24f56c37bf66e05de18f8417c5215ac4401a6f638a8d8b9fe2f77d247d0ea0d190b8c604bc702c91a84a4352ad0c8ee44d8fd1731a01d91503de39f8b19a7693f8aa6efdff15bd1169a0b79272ae03cb20b3ba573b24be410a8eeaa6ad6de87734f1e299c7dd95afdfdf56d41cf33ff61a7ce0af5eb99826473647fc79e884a75541ea7ab9963f154efca34741cf5b343c86be001c6dbbbf6b2cd8197ab5d377b8f0d2761f42f058ba8406f768ba8061576ff516f45faa42048b2ed3851dc7466c425433f6e\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = c609ea7cedd8b6d56fa625b11123b898819558797be9cdb61f0354efa52ffe6c379c4314fddd546020ce9f0fd5b907e6e7b416b46ce8bb3c6129ec39295077fbd3b6c24aef4a9163f5d7d80dfd47f44ebce3b5127bdecb5cbe49d1e125e20479d226ae2852d79047b5f0d535b48e8bfe6118c1d7c37e8c70ae84d1e262977e550f5da03bd087012a934f46c01e121e8b3106e50b4bac05632e9aed32996f09ee8c524ae104911cadcac120a45c44992fbe6f3af37b04e8754dbd674d1fcabc9f5c8649e0228f5f87cadd6d6620f8a9d27928e5249c08eee52372cdf67a4ac0fd8dee2b9e57699d7e28f17a7c76bb3565b6896c83ad14157908aa765c7a51493f2d3de7d735f3adf9f911a6ffd0b7cdddf610bce09e6d929675631381777a9fd486a7915890c0b8b3c119e50330579a4961db1c498955f0889dfaf3dcae46f319c722f7279102467b1109ba6191e30159ca53c9398e6de412afd21cf25ee131840d742562388acfbc528672d3dc38ce758895ddd5db82c875f12de940503617dc\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 2fdc9577156255b3b2f1073c76aed1dea93f18758096085e69b2a8593bd9dec848ae70a250d893d73c6b4ee109c967f896361d8d57883db63549cd9b3b61cbe50d2d944fe88524124c168a322175ee87b571569b567310b4367af407a9ef2657f693a33b536fa7804f066103fc012414c932c83aa1eeb9169f2ca10992b48910f0b2fa4409d992bd4218954078dcc78da6436b809a83391bb8cdd75c602f2b41a1b836a62e4bc04add443e90f58038b99b177a9fdce99813cb7cf42854520916b9ed0bfa4326c3aaf45ef8915c50a8c159d4c8ca6dcb06d35c15c5e8869d3b278e3f2e9fdb0811c6be2afd4959d082b4ee2f57be078d149a673fea7252b085e04b5c91d93bf6ff343e374ad5454a89c2bb77e040df555185539f0ae81808e20edc9d7c94e06498aad532b1de2eaed00d0f3419adb91893941688baa57269c9d1de160d9b505d55c7c58a6fdf95facbfc2551150825f42c1df3dc8f3bddffb80a0f424386a04ee423b72d5fc6161054ac43edad4e1f0a0d2cb96727de0dc6487f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 12a86b617c77976f1647c75333a0e938a926d6ce39ae90208c63d1f0dd8420552946dcd8c929c08e6fdd8d03f8a1b8e8c3f1247a49bbbc010e8583bf4907405f62c95cc18d337bba3d54075dabc18c2845534dbee7df792262b49f3d", "7a71910181d6217f0f22f9839b7cd3990f2da4d959196ff448342b9a9dacb984a84969d62ae400a3116dbb8aa7b1ce61f82361cc5cf994f2b65639a772c731bcbfa1df069f6726ef3de4cd2840e7c6b91f3e032eb826b5b4abf2de20d4e8d667e6b275e72c202e4acf65459c91466dce7b81a811711d3fd4130b83cc8d33a6f736f91bdb911bba9c894f6a3497be6381a2dc4349c85fc07bf48b47fb2291717724d8fdc53c9b8ce15f3a536bdccafd36ebd5e4693420271c9a6c77cdde48f851279748a0acd9e29048174644c503c047d75be164bbef65c7a1c2f6db94298e7bbd74679e5b0d7799980173b89358371609b256adc28b8a7f67cae1bfbbd83b4497ee13646be77e17edabb75b33e382fd21cb8085ad958c38505ead775bb784d608a123a9\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 4187354a63cece7c984286cdd0eb98909757a41fb2e5cf45982676ca14e89fdbe5a570eb2d9475a5b9bd13a58b225f3154d538195a67f3813c6d70cfc8a282231aa41d3d3ce79aaeb9876af8b9cdcf68e529734d7ca576a8458837a6cb3ae65d8b706d54160f438ba1cb1eca3f6a557f2d2c66476e2d64a1b0b3dbd9ab0cb01d46900234aa22ce906e2acbba4cb1761ce412316deadc060269c74a81827b3180d94c69b5e30d2d45d51ec49b350ee0e672a0ea247a49601604c853c47170c4adf4a9e4a1066da59050f9edb6a21e922714706012443ba153959c8c11b9023f153d62d2a23f271e2b81ea0cb73dc15756ff7319f5ec3fab7e10fbb60b8a996fce23bf7de9fa17c11175f2cf604e32064b2ce3486221314bbb7a8d01987a57882f904d020761a53da20029d9b3a5355ce00520e61041b5a00d98a921300d3e30fc9a7dfcc00186e503bbf0fbf6ee00ca7eab439263d6d1257ce1dafafc1a0c3c684703ec18b3b12ecdf9a3f680b320a09865e70db3a6dce20a868a61ce187e5a56\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 4b845fca1d048ccf7e5a9cfe00c182238a2b69e02bb0b798863246e24c26856953d269d4de46e93caa7f383f241a963411b455e7a2547a9018b2f7676246324db9ebea25603d9b7f7792cf29ce26bb64cb6f3e703e359fe53ff4e2734371219307709d8a43959e61c5e76146b67b53cc2f669527594188b502bd92d811c9c44fdd7c7b69468f314ac30860bf51b26fbc8b6bf985df2cfb215fbd5f53ce0a6c00781f4d987f99fb420a8e34fa7544f87a7dc67f94418659c747bb984124086253eb86e0efc15214550429a7f4d13d8ab4bfe908794e0ceb41c5753b19792e8ad4f108f26eb990baea0d88e930c3bb245371905354c2a192bb21483c2f5033c05073e2bfaa65c8e7c0eee1d22f7363b363cd698b781cd7241db25eb2fe43f480ea8363a3c680869ca143f531d83cee2b4b6e9a56196358a4db22839aa7332c9be2acfbb5f0e710cf3c8b7eb30a16bc126d1a3dc2e29bdc54c830b070acddf2bbb2932a571125f12a5fe70282f21772bfa1a05967a04db4a17009ceab8b4ee7075c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 4e6394953d0761d4db461cdc976124f729800f191c1b308f663344db610b8e790521758688bff16f1f631d0f3023e5aec3d750db63fd4bbccb2798d1050beb31c16151253dbdcd7363a2c2c11398134965831cb076c0dda88d3898714969b0a55f944956d8f792a0d7074fcd6899675843e91cc6ea2f1372e3aecba67a4b598c4aa7092496070c94a0a1a289fcb6a0f19ae54ee2d634014064d76f44d092b2dc6da115b21b811faba0168722a5be99965527ac6c5992d2f8428319f72fed15451b89fc5b06710baf912bbdd0cee7e2f0f2818599bc99dc8df17cd5c410911d0277aa956f330f3cf062c8388e3d35136049fc9ea624286e5febc37ec9802aef1ab20b28da9602b88eac75b6d055dbc4363fd4d937e69a87931ba728101f70c8ce12ef9e1c1cd47ccaed88db0a95b40d8c1da61cacd0b31f723a57d908b8577259924ce2c457db888c302cfc9f2867dfa6b86dcc9250e69e3b392cf3057c06e0090d511ece16e3194abaf26a2ac9660ff6e0237d8ed4479b0740f77864138673aa\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 81b9ea5c0cbcc4b7f183deae85cf3d04d8c9a35cca7b9502238d1d94c05563bcfc6e3cd27320bccf3fabe737195bebf4d8770ddb232aa0e25fe41bb055d36dc328b2876e4b7842ad4499f0e735ebb283e7779f6b7c66cc71b62811f5c88ea3408939706ab48ba6fdd4359f18e8a6e0485de9bcbcda3654e7964cd8f243d3afd3cda79b498e6a10fda660029207f4b185f8ca73b1ae46c3dd3edd2097ddb6ca0396f94ce626448ee9325c91fab3e550bcc72c7a36cd4161cdfa65b9fba398e153ef1b75e06a2929a86a6e87f266b50d8f513699dc8663a7c6b1c4c9872a63fc3218cec37029c07a9b701d615bf8ef0da3361af097184c5f1a3feb4ca3785e235b83c0b494ac1e36b514fe5c343561136d14bd110117604fe8a99f210325afb5a406a10c99e6347b29dc6ea5b1902b7cca6fe6715f3b291e07850a12327d985565715266f723249cb595941f43b946ce7822edd05797eb1bccb9ade43248f22df4e38107ce9d92718cb795e93db7d1bf3203c8f64c804669159b58ecece44c6f2e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 5a49100a3e147a880407ba68183f96a904529cf14377eef22775c95ae7d3166b73c3fd5dc259256858424ee97812b1dfa159c25b6de84831d8227b153c4624904ddd8c84bb1fcfde36bd61319120a7cb0c916dc22369b2243505d5fcb2d466462dabee4b8495ac8c186a38bb4065fab4e483c947cf72c27ad542ce7d32f689c34f6d0873aeff48a87eb89efddbcc1a5f51264ba246f10dceb2091823d3215f4928a8b7f3ce462e227cc5726834b6e86a503506497cbe8d6bf04a5b4085ddeb04816654829ff24cb8978551e92ebf588f3e60006b444d7b39efc6d18e42be234c37fc25ee2a1c02e1efaab917de7c6d12b05bd599adc92af582e7fb522c884d0cece7f912d2e69812e52aadf0748a98aeab06f391381f4518f20d029360b764faaa3aa1e69a9c05cc59e29cc663119ce74e74ce1efdfa565cd0a67751a070b4a0def04f79c7da5a7340123d00de354bffac3cbcf85e7309336977c2c4f84d528a123bf1ce7fcafc49020a8d51c48ded174b9eb468928f5fe94ea6dbbc83c68d40\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = b4a8e5d8f2cab3e3b659b1964fb9f634ff7ea5de5a447fc7c6ceeeba8af5efd0f136fb79e09b734a3978b655e74a0156a3bece09c00b578d894b81331770a3e95691335656eaf1c260e4e9dc67367265d6e870b37d0685b16762062166e10f0c0ec9fa34935d0943b0f5d4c5b1d88422e21f9e3846f854a2e725f22b53a778e65fdaf32ad88943b2baae31209552085f82f27a01caea2fdf471c08643d806463c61ffce92d0c1458518fc100fda777f769b33750aa84d1d4e206282f8ca944f151ef9a5061561e96453d7bcc9927eabc21a04c84ce1e0e6a88113132eee3a7d7baaaf33db8d1818e520e202275c5df2d3e749c3acc43326964a6663eb4ff856bf2291194e584919e872a31e1f040a59dcdfc88300a816a0ba27616919df4fc97d16de1fb0c6150cda6c329f643b036d99736b0424b6676ce0cc4d971aa6c5ad91a421cd369b35c95a38623fd99dbad13beaca3bfae5f9315a8a788f111608b5b856f4313ca6d19cc3172bffc6cccc28682a09d0ff74fd16a58234151c0224da9\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = a985e8779a4a34ab75873210d0c8897af9381c83887cff7fad9fe60f601801620747ec0a2c1f5acf6560a751216d204acdbcfe2d5bc235b84c17e903ffc96897d5df86031aeb1e40320502be3e18daf723c2577331e03c216e1febd35b30be8a419d5ac4e78674c93bf244e2cd8e57a4774d0b8763b9de21aa1e74b0afc3b423be7c52f32595934c993c88c32c2b0a66e5180c96ef478ea2be4262c840d3e2dfaf86b9684e7bdbf3b31b0513e3e48322dfed125f2d0ce186e58a321cec902cf01a7253b77069576594488b665facb1ba33671ce26cab40dd679f3817607719fa0669c6a593f30de1fafe264156cf48dcbfb8a5581f6a9a8401a749983b43cd90bcea0f6b690b46b2a00505e112d0bc0fd080c453085319b5d31dbbf46a234ac0f0eefa947f002daf872681ce731b27714e37fa3ca743cfd3060935affb356be4ce827e27ad36df8ff4b4fd72bbc0076d2277fd643ca0a39233a16fa545a4d84f1217ecf07a2ee57298cdb6de88f797116f80de8f446930045119e52fbc7840c0\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 3a567bb387312c94a0b8637807f86728e6e54ff473ee541ffdb4131cb5c55a60c6044a53a813672e4e5f90d5779dc21f824587a3618d4996449b2949720a93afb50520947d3b4a7391e2928acadf5fbb0bf87e48798e018f133b12276891e49007ebb27e49c858818e242dfea715f575da026a4f039840ddcba0bb330fe916739d095ecb76829091ad29e33a0b58e23f3e1c80a9aa4be2bc6e21eb1e7dd3061a737d3b460a5c4cbe6264b506d4f424bd0906a3977e3ebea5549825c889dcbb601c111f392f690b8bcf4b9935895e23c0e39672391f5e12e873d393ba19b00922d7f188def9a193789a80514abff02565376577c073a3ebaaf216d535f50f6a602ce038216ce7f1d1f7e9964570d8cd2b3821b11339446ebac43ec87bfb712a634089daf4db979d50d1a93e8badc40395fd8e8d680206606b8a1e78fa238f09ab3eed6ba87ee54ddd3a3bbdfc5c036fc9aedb207c6ab9e9ee594ca06da39297d8528fbdadaf80005162964bd4e0168d5c92d8ae5b05398d66c032ab5ae0eaebd7\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = a0f2388c5bc52093c31189674c410b4eabbe1ffd0e0a902dfe0b4fc7daecf29148703ca5906bd860065da69e5e7dead22fe28bbb7f3bf71d696174a900c115ab7a98848a08467643aca3a056ff58ef4b4515761b0e9452a587c4e7a0330faf97f657cf925e5bb0a395f7a798a715f41b70aa2d3dbe411de02c6ba40831f0b636e030a51e66cf7237030ae9569bab4cd8759baf22325f88c11cbac0b0e7b87dbe01669fdb5862101679e28774aa415df8a92e45b1ab74e1d85a95125163aa74c91da4a774ba539c7e1ac945c20df5ae3e31ec55609883f83a75fd3bf70bc4e4dc18b0a6e77d678d19c82400c698a0c34e3e77e86de8f51daf306f102a22cb", "a918b6ac435a045e89df00a9c84689e29b1eb466ad2c96c7326073afe08d47490230150c9b5d8ec84b352c6a33a896a26bc0f91e49fda6412bdd8a0e7c9b7f8beead5070a494af8b5b4a449b976b7f07c1b5648ac303e7b60adf3e53bd98642642f1041694986f214882a06f48db4d118f2b91c05578c0e7665c128cc6b4685b7faf\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5244\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 00005120b9815296215e7ee89f5a20a46dee6f255f7d96d399c8cbf5721f9f9c4d89a8ee37e2a6bbd6acd4878404856143960be4a77bd8f6afe6b255f15bb8bcdbe3395f800df64c2d2b55aa7cc3c15c3d753562359a14433abd29106a0d1416cac5fea97732828a198c04d09ed6b47c12365de2a98eeddac346fe879d39a1a28bc19e2ec570b94681f7bed871311edda5c8fd76cc14b15983046da8cdf1e15c465e4a9df0fda11ded950ffe5e67a3d07e56f902c7535331c08720493d6ef4b1760c6489e0af7d1b97229c4380167fd68f6ee30de2d61859ec55b5f0106ea0f675fed7c9f660520981dc201cf16a6fa87379d2c667f9c8fae97fa337c34d591f18b092f534be25db157e6696b1c85fbd896971f2c045d08be1470b403f2effe6d82fcd1b9baa9ba2c0ab0d25ca9cb2aa26f2c4d5ca3699cae3b61ee6eaf98d44610c8204e4298a01886e9cd21030058b29462f3d73018043466fe45307d2382b8b828fbad34f77c1915514a9ca9e0bcfefd3c0c7daaf02db684454c18b109a7a056f\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 5120b9815296215e7ee89f5a20a46dee6f255f7d96d399c8cbf5721f9f9c4d89a8ee37e2a6bbd6acd4878404856143960be4a77bd8f6afe6b255f15bb8bcdbe3395f800df64c2d2b55aa7cc3c15c3d753562359a14433abd29106a0d1416cac5fea97732828a198c04d09ed6b47c12365de2a98eeddac346fe879d39a1a28bc19e2ec570b94681f7bed871311edda5c8fd76cc14b15983046da8cdf1e15c465e4a9df0fda11ded950ffe5e67a3d07e56f902c7535331c08720493d6ef4b1760c6489e0af7d1b97229c4380167fd68f6ee30de2d61859ec55b5f0106ea0f675fed7c9f660520981dc201cf16a6fa87379d2c667f9c8fae97fa337c34d591f18b092f534be25db157e6696b1c85fbd896971f2c045d08be1470b403f2effe6d82fcd1b9baa9ba2c0ab0d25ca9cb2aa26f2c4d5ca3699cae3b61ee6eaf98d44610c8204e4298a01886e9cd21030058b29462f3d73018043466fe45307d2382b8b828fbad34f77c1915514a9ca9e0bcfefd3c0c7daaf02db684454c18b109a7a056f0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = 20b9815296215e7ee89f5a20a46dee6f255f7d96d399c8cbf5721f9f9c4d89a8ee37e2a6bbd6acd4878404856143960be4a77bd8f6afe6b255f15bb8bcdbe3395f800df64c2d2b55aa7cc3c15c3d753562359a14433abd29106a0d1416cac5fea97732828a198c04d09ed6b47c12365de2a98eeddac346fe879d39a1a28bc19e2ec570b94681f7bed871311edda5c8fd76cc14b15983046da8cdf1e15c465e4a9df0fda11ded950ffe5e67a3d07e56f902c7535331c08720493d6ef4b1760c6489e0af7d1b97229c4380167fd68f6ee30de2d61859ec55b5f0106ea0f675fed7c9f660520981dc201cf16a6fa87379d2c667f9c8fae97fa337c34d591f18b092f534be25db157e6696b1c85fbd896971f2c045d08be1470b403f2effe6d82fcd1b9baa9ba2c0ab0d25ca9cb2aa26f2c4d5ca3699cae3b61ee6eaf98d44610c8204e4298a01886e9cd21030058b29462f3d73018043466fe45307d2382b8b828fbad34f77c1915514a9ca9e0bcfefd3c0c7daaf02db684454c18b109a7a056f\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", }; -static const size_t kLen291 = 33222; +static const size_t kLen296 = 33222; -static const char *kData291[] = { +static const char *kData296[] = { "# Imported from Wycheproof's rsa_oaep_3072_sha512_mgf1sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec2181]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245020301000102820181009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec21810281c100fd9e30b6bcb1674ead266332e2af25c56b2869b4d822d247e6f5b35cb0f3c573b5efc39e4b5de760489b82536d6cf3eda1bf60e5e43f69f26ac8e45b056d702f0361dbb4a73f42ae5889a849657a841d866b8b4417286ca9b39f854c4d95e3719b6cf367fc7128088a365f3e322c1fff16bc68bbfeb69c5b2a9a677dca6d494de44ad057135e65ae5a5f83c59a0d1477e5175acf716cdcb2966fb75145dad1554a112c466d249ba894caae5e182c65f1753fe5bb583ef962d1574d9be20bf6a10281c100fd3c5d0967b74bc6fb54ef961a6aeea76a59cad1600e3c73f834e5f5b7b5096f7779c62b07f783739341ad5de095e0209f2f2f30b8dd503da8a271f4b35d93cbda013b515f573501ab80dbc7d9fa9dc98da4451e00e0032f53583c818c2645cab8f35619e7c27928648cbcc3af39f30e0a61259ba2499ba96b2ed7b9edb881d442466c07f362ad11a2a9bb3f67548a5e24c246fc6c438d32de9ecfd18b609ce12fccca90bfa4c3ef63cfe3a349611e590e44a53242dbdbbe0937f2ecd81c8d250281c100a975dfbada4df7673c8edfcd8a65d96915f6c4dacf6844f5423f7dff3b4546f3cfe74ae0241fb4904333955b454c7d98947119bfc24914f3a3a263e2e5b7803409a0837b2c1d3ae2dfc9eb264fa6134cdf1a50cdc8637c67cfdb90e7b117ac07a7009f8b25c43e29a6a039f786f2b0d6734ca4f6a8753ff83279451969fea7f261ce13737b3fa1d564115a2cd88850dae3ba3d354ae6a078bbc81dc73253c977a1abe3d792e9d910458b40032347d73e054812aaa186428062bc60e0fda35cc10281c0098b4ade5de054a4cd38284779fb69bf398ce4cdfb56ce0478e8557a6b501168f811c8dc3a52a3cba953225b956950a72a18b72898ef0e652483ead3942704b8fc206bc1e75bfc0d720f4b393f07e9067da6214cbe2fb32f076f1de8ac058d3fd4b4a71c16d60786f43331b2165a92c486b39e9d3d0295314f6ed68695650ccf9927da4e7a67cfaa087d69273c97bd174b3f5f3988430b814d4ea2fa7ccc495d5b55d6949a0475b6020705c753aeab5c23e3866e5c82b8c772c57f0c5a20c9590281c100a2775a3e38c279cc6633f91e528ba76d14750e36b7d43883b1c8bc89eaaf2878c3b6ea9b87140d6938eaf938d1f010656899717be3e0de04437e1da539c6acf3db3956bd49ad71b747778217e2dc67ca0800726a7ab9624e41f10e578719850ed7684db03b7010e86c197eb79f7f68c3022403fcce14d8cf9df186b0a2b97cc120e2b4a729aa5877089240a18fab397962198fc846cf9a10eedcdb7cced6091c61e8b1c621df270cab19e5795485a4b74cdc3e24028bfbbf0eb1fa2ed4531cd0]\n[sha = SHA-512]\n\n# tcId = 1\nct = cb9ba45404396101c1211be70415603708e1051b0debfa045b75ab936fe7c5d4e8c67704fd2ee046af8679e0bcf3d266ce67b801c90b581a3f6909f56c6fef023f0e2c4428227a51362d3f50ca65a79edb3faf899cf71bf99e244dc817fb4c2bce848216f0de57a1747fb1d4f0310e59f7ae0a656376690125dd10657357de11b5e7e5588af7083abc6018013ddc43d21c2af42c9c302f008064630a27ab014d6dbf48350c8758d821e74c45efd168ac37f366b413024ebbb0c9624e6a93d4c02d1f2b050f75de4b6a74c701386a6c330767af6bf03e8ccd69ce6540b471c01e6fe20852a10f198e4e0d29469b1b01d5ebff85ece159355083829e4c2935f16cd2f409199f799f250c8f1306da1614d0aa15578a58f399a17223c7618242cab31fe32a2317cf7babbb30b3885d5c07c4b89e91ddcb37f449cb3e2faca585d04beba9dce34face1167f5e4aaaa0509867716e3da0ff81b8a481b3f9cda725f01441d7d3d7ae24a5bcb373ff85e608ee7a49750a0d7d185a61082924b2343e18cd\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = ad215dc277e269310c54925f735d9bd6e68b828c8a9adcad792a567fa89f75bfd9512c69caab0539f3a2d4ad7caa73e6c1166d94645308d09f98166547beffa48940bba67d08391d8ce831ab3e819b1113eff18d02a83d7f07f1db2ad63cc53dccf2c9a8d8cd42f3054cbe1d223029364877c61d2a58d4c16929eb2c8b21fa1d09797a558d61f00f6b2a4b67eb794dc9730421bf52e073cca7bd083b35562d21b6527a525662defa0db2c9fb0fb3d8122a85128839e68fab7224756fe7cfde6d86cc7bc3c6665d3ecc52ad0ee25767d5f1f1815e56c79e1ae089a4278bd8c34fb397c1029b4315573391064c02f139e6a672b8a9f50678419ab6d9fc42fbcb69b71dd644ceb7968d6b0edea5f72d9d05da3d7b36cac7de135d45edf45834b47f7b2b91fe89ec6c3f2863f7454017091cf6622b02447a0f8ea6a8668c61a55f8654c4c8f60ca13639f125f2a3a46bd82d2bb6bc66511ab7050433cee0d6fa98946d18947d5649b380f795fdc8f0f13b663f518fad69c65601a51d170f7013204b\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 487ea78c9548871a93a0b856306f349ab51bbd30b3e6db0c47cfc965774cb0532575333f8584dddcb13f24ce98ff4a33d63b5b1898b3a8d9babc0ea906cf7d9ae047284f7a36dbc350d7affd57030196afdd419750f1c5f2fc55622e442e6203d58a725c7b6e59205baad02c86e44447caea8e88d38963389541a86933cc64c1d8a3b70c4870b0f75146de372de834988a5f852235926d7f3893c83dfbb78a1a8cb4d9a4d516de110d315ada9be71431d3e6b03681d4d7f665987000a72a1b138476579aae7058f7d4151f058410d93bdc197009b839906ea6254e90c1a49327ebf818dab3517edc39761d3f84be8f8bdc8b35541c6b6b30bf8cfd20fbd9a09713c470c9ebe0622ddd8b2471f9b0298cc77b51e56ac2dbf9209fc5a95c066092deebeb7ebec0bda02f89904ccad29ecdc1d263a29930947b90a6ab83dfaa657871be533d55231224ba4e866ee9a3e352f501372d75090b5236d39b62ee6c84c792dbb253dd1f9fceb868d460fd76847d9c450b1ee5f280fdb0da832bc5627957\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = cc6b45a4202ea5a1fc930a5008136091f48831e3dce258955f0a2fa95427a18ce12bc6d95424b983e2e75152b654a0c481014c6bc538354ff720b043f57c238c42ef536dccde3637babe7feab03e2fea7ddbdfcf1b689cea466c07b1aef757a7120141a2720cffda1ad422eae68d751425f879eb8e", "c65a1d0d24e1529a91f0643fac68e71da9f4d0eb56aae99bc03b600daaa127221dc20a5f5060820ba6cb1625382a4adc47185c0ea77d650cb517761a085a55e1a306c6136ba6a03d254079464ee8022a7e0189ef458fb4587b53fdec7864c90872bcfc5476bac7a7af7b104cec4cea576ded30bf4e24f80513ffef05b31e5031a2dcdcd2cba7784869c211c2ce0a3a65814fec0f153de0b8e327ecd2b0ce80a9bf691c1c08f5920547a2a08d749e229a6eaa4b770db54345c18ec3365f68fab045111d0928bb2cef7380dbbe07f6bc4fa3bf340e8fdefb1438188a474b206b430f988fde41f96b0642484d02adb39aa8624d908e52cc7fd3d39d74e002ea04a756b61be3f279ccc7206ee0\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 2034cef8731f5ddf7533380860b7426ba0a7ba97199ba332efb7422578d346ede8a41c8c4488d52cf2559706f1a677edbaa50c5783c00301cd41815e46c588e2e8657ced9a91f1b2e61d51d5e2384b59b90c78c8d5607076130926bf198e0968b239fd8d4451dad125467ab895eb3ed450e6abb61d6217c65ba2cd2176e2532594b5a09bba689ea1562d04527de919d47c3af5c2c24698e572f3ea289f5691afa164970daed05e83c051e39a99240a4fbd9c2046ae742cd1035aaf0d0c20b5ce1d42a08f9175d5ca30b6f4a7345b4820784c148a68f92be82f6e38638c1f8ecf8f07df3827f9fdc8469049d157202f31d98f06563f737ea3df3764f4644d9f9185cb2739c8aaac86e9b39fead8e03818550a25997c31674d5e14cc4c13790e409e278d778171c5462f689b0ec344f9a920a312ae9351c7d51ac7ca7783038b3d5e59d79c4d89ed4d36152d2a1baff8be23ae1eeebf6af20eaf093604cbe79fb93b61478d3a1bea20e1c6c60d63cd3e09920f521e3eb3e40fc21fe46103f3194d\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 7929db7a0ef0e385abca461e86013785f72d60fa4cf1c97b1a16e7b501235701aff06e71d981ff75392a27a266afcc5bebef5b1dc09ce60ad97b1722baf70b7be33b09de2f203f92a527a123e929b038428de471fb0edcb8e64741a1484ad5d2d5497f91aec6d87e5ca95fdea8962b61362bca2d0a4742f8666f1b067da8db4fa24cd721440d6582750498c9fd319d5ae5c27c9b70f1811d90b673d0529706d085fc78d73f933845278e36e96c48194f1494a1b4d891f249e8633c03d9c564534952e98c059dbe01294506d9238816215028d6414b954467650820e5db42b7701adb0d694bf2c00b42e89b80839b9f35b4e23ea70e55e514c50e9ec197423ad28a5dd4ece946345bd6ba154c122ba356320c2c1cf0ab4e0c713db0c8296ff900a078ed5f0ed1802d7f1f92c9305c245471d66820d4230aac6cf9a4311f7293e1d93a5dfd529dadc6699aef4c2ed53bcdbcbe8deafe5f9b035a6aaaf9b2d8eb23dac290f828bf1886136c79fdc915e21e06133f24e63876514abc29d25c146fff\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 5ed5766e97ba0017cc6ef508702d74049112f588e8930c3954b43c7398650fb1bfb94cdf75ddcfad8b50c59ed05bf8c32291e8b804f49fd5faef0e39b922e14ab4186c575cbee9cd2677b58cd890df072669c3c26845d7c89420cbea27d8c1ea43c2041a95852c85056e1d22c0cc9ec563d937fcb1d6d024f3a1a2943f77354885b3fdcdf8945f7b41e1f5a3c7cace9bfd2bb845f6cfee05f8f4680d1bf2b9d6510a6d2093a12214396ff02bdfeaee4b21af5d52244a3cf6eeffba75e946b83b5784b3bd98e5e585032fc88a1abdb12cd30c7f412c72d2e4957681f77e4157760c067a9312df871c972de688a839bb155c9de29eacd38ebea064f53f2599d08d6014c0f77f3ae121a4508c30eb0c8dd49c4c0ef31cacc3b1dcb2240050db157299260e9fc52dbfb530af6f759dba3764e4eeaed032e564141fc102399433456b91a3df2186ae9032957276e691c095ddaeef7142cfaf5bc86915c27461c136c1381a800bc3322c2dbdbfa83374922d607720272c8f955a9a10814c4bb9587e5a\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = c3aca8106f74c7733cd1bfa74419a2cf802f12293693c1a207158d52bfb728bebdea14a885fd52ea5600f82020fef8fa23f9078fb9ee34d82eed4c76b1312e7f50d0165792a938d264331da446b09533a0084e7398718c9575b66a07b7cdc85293695f291fc1ecbba9e0147320a557fd015a1339ee323d6706af18a08654564c49d2150f5d182a44f12e5d02b1839771b2048dd04c116f961e4af1632043bbade7e993b416c45c61e4a742bada5ad14dadc263431bd542050f40f4db8a95dfd24db22e049477f4ca93375e1d19513d64ecda0e9da1166da426a0c8614524471d72d413f2f6822843154959239b134033c876b0b68cec3a5eac05d5f179f70305f1f2ec7ef9ed17e79598b3d2fc148f9aea95774918aa6be14aad89ff5d612b13fedc0937bd1ab01f05d43b5f7c131086c63f5430742a347cdcecb435912d226ddde31250c3c0ed6d3ac9920873c1e73970a9d44061dcf6e0acf1a2935bcc48e2fb76ef74bb5101d0bb1a02fbf9a55ec75e122fa4dbe210836873099a1f91af20\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 4ee617bce690f21a6cd1760d8e7c41ec1c4bf0de2bfc4aa85002c278eeb63b568118e4ea28cf795a673965cbaecf1af5e4943b95c0fd20604911477492950fb99fbda4d5c0ecb11d954c2bc0d8522f5ee7365427d59143b261d6138aa2f27ee1a60d64f1f491b9ba1adec8d09f242ee0116e201a54ba968ffdf39edc3b314e8139ea8efca06185840ae9a3996ff5ff3c41add6c4dd6ecc3943aa60254859db786a0f0500f644e3d43e348b993439cd021ff0b92d05f327d6bc3c11ebb2f8c1812dc460d4ecebb358eee01fde79aef408a6b51694a2a2f7baf69589f4ed152026303290d9178c9d580421996c89e94e14ce91de0686d70a37241e48e439bad3371aa900d0d6142867ec2177ac21d912eacc5e2413b78b0adad7bdd0f72a5715c69f6223ac7ce99fdc20fbc7c603371c328eaee80f94f079b935713d38d83f18dc810dfdef5f1221ff8a24abd4a0de3e5d3f993bd5992280b06bab17ec6e36b27b7b08522f8bea3390590832da475e85ad4b898045930855be48bf2d56603b7485\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 5e8f89e2720d8edfa1a943223d6445bef51e330036fe6efb07289dc1388098aade647cdc9b363b4108a900611a1abdbe53415599192cdd5c39b4e467073183f4732e06a58fd43dd48d378495b2b4109d62042edecdcc0a93df468a0f2f96a4957fc744cdcb891484d7a1db15a6e2da980a91942814c5a9910dca32fbd27e2fcf862756a50658c8531d12ae652d088b15b674dd4bd895e8cad8d81b29c78eb7cdcd29737c8e532fc0c8128222120dd0a4da19d00b603f6cad9d6dd559230e237197269aa75f4ca4f361e418493aabbcb0e55bb3aa114c5777de94e53abedd9e358b2bad3fab666693ad525b1970b97944578ea65a15e31bb1721776bd9b91ac9f558de32ea498948d75d7a7a9ea610bced38be4dad797dd5651eab3b972915ce41aefcd28b641a4563b71b491c2322af7b06dc3f6b6e70ee40f25b6731a5f34ef7726cbf19c65b26d3c4f0a673753c6bc538841b6bd6efb89fe76793ef7859f6866e264baad2a7e1b1c3905c04e1ea8632aefe5c158cb560eba262aa7a3a6b143\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 4d0da40b2f6c6ec3b8de97593a591681c69853847f9deaba86baaa69b42bfc3d8fdac5fbb3faaa7a5edef6e7ca0f25ae169c6545f26c908a1e3bfe8f0a385c584cf3da930acea13076d475e9b428ef9758113d3d8a0e23eb2dcbccbb1ca0c9b384aa760d17a5764a7c4c709cbfa9cef0ba5672cba0deb198577e3abafb2176781956d0c4d39632fd30f778b8da3da16eabf3caece2a325926dcd25abb0bf743b9ee06a3b4496d82489613b0a720353b017e72c3c43eda97c6444d8f2edee7a444916187129bc0e9bc20e457c0946c767d3b32866655742e891490ee996a3b2106cc024c5da94ac89dac17fbf0c97a95541f8283510411868863e68d9efb7ae4493246b409441656ad0eecd3f0d84c7fb16a593cf0e3b5ce01c142da30d50e42f58c7bdede2dc350313c480a644802fa10fe117c98a92f5f8ce6c9c4cf3ac0b01ffa629dda82c217171a4723db2ce751d4a359dc53dd4b398e7882a8c88c9b591856189a9f9afa349f02573a9f07c6cb96eb41cbaebe69dd82ea7d9b860b841b5\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = a5f338d231cde9f20f87f69ab54147107fab298cd79df6635d3ab882e8682d0ce5bdad698bcdf0260b11ba11e5db3e857490f9ffcfe8fc98b8c89f09903f984eebea2ed74c73ac578bff3af99d4fbc33587d91518a948549739b0ffab4ea6a3fef5726eaf3ce77cefbe4fb001386101027d78b04ee5f23b6a7b0b5ffa9b473e7a86d076223fbaefd1f5ec030b5fb36aab0453a3b51440dd7709b78c0395e3b43ea873afa61e2e391abf0ff567d934c61d87f15095143bf660b73e2df1be6734064445154593fbd304f80a9ff730a66f54078142ad5c49e77b55ad5de5d974ae09d73f4fb506099ff06a226de67d55665115eee485372c19e599197aa561909804462dc0ee6d233da9c30fa7687d4f0a0f764646697bb93d2cd8cb6cd86cb3143b043f54448e032e8790e856604977e23088b69a57d4677e073fac808c8f65240f7628d09e0bc74bf7d6fe0ab2f7378808f082219edbdc1c1d456e4bc7dbd8508415917ec0d5f5ea10242368b8fb75cfb28975110208788b5696e34589c8a48d4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 715a8b585a2759b9fbebcb1683dd7d1fe956abce7255358e05cb19547a92083c2b5abe5c429c2a5527bd8193a4d05a0a8d161fe71ba612cc8aa3270a5b8186ca3f02ad716d78b7702c20f7bd17ba01748d1b51e52b6cb6561c13", "e84ccb9aad4f4c241a951f999d4b7b60c14021619951204e046d663a011eb9cd9bdf96bb2c43d6f8bc97bba1b63845db59268a3ec918e198448050332a540fa49e39796220fe2a97999160f564baecd0ebc4be5030a2016961f9f352d7fb04ae9d3218261a510614bcdcf33ec274b31cfd2d4c9462803c825e7dbb1a3b2618fd5067bf676c5fbb2f6dfee7068e84d4de68f840f97faaf880b8596d8847141ebd59eb9810d18cd95ab6a8b3bc87ba2e6bb2ae178a0e5043497b5cbce86508d96991c5f3d78ea3cd3a77be12bff0a0ebd7a3cd03b9bcbf7faecdad6a375e55569ac9ec02c9a319078d79ed2ec273078ef328b54579c0661ed64dd94883eede29818455b37b271c67b7bb303e743d6a080076bc712a2f22b36bf85ea242f2b8697b0b265102c557\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = b65f42ecb2fdbb8c231e201751bcef6779d0d7c755c19d5c82824ba34a5657a6187dea33ed2a7cb91fc1e5a3e417d806be4e626c555750bca3b45d0441865f0be6a52f5754fa871ffd1fd58b00f74e89eb60518330b21b78ed6c79fe38b8ff4d0f7ac49a152d1c54189e2eed31eb6211601b8b41b9a90e5e3d34e537b0af684133780bbaa4ae97c6dea9a75ec01cd00d2c43ac2c7d8deef21cd6c6382e2935ea1a0e350156dca5e78ba10e88891a5c0978859ac2645f90d5ac32eaf791b34a0c7bde0ce53572d2258ab7e5a9058624892d5e680eff78aa4232b579f94acad6081a7fa8330e8d3339afc4c57a48bd39279a54900e755f741aba2d5663e5efb738b38c72af33c13be9e996aa8c6df839f08af6a4961bcded7eed2b5a67a81c112095f1da9a3e6aa6e149715bb69a265dfb1fba8ea52bf7c8309f613cc183cf53890fc51e4c5f3d01336d67ebb66a9cb0231bdb1f99b033e9dd361262aa6c1dddcaccaaaa7b6a3e94c2b893304404c6be98cf20ef488f64b7540e4232d05b2ebe0c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = a0119ccf48d11ea14d4dd8a57d954cccb913fabc353727e883b53d6fed8dcc48ed7cbf98e3703c740df9bbecd0168b42e699c48841c0a964b40630f28076069a3363bb14c38e830712376d9beeb719d2620eab87e99ca2897ae1fbd4251f828db85c0c76a4554a39b2e14150b1d3020850dce02ba6e7619daa5e95598d50d9fb9bbb7ad57d60a4811d50f432845df09da1f01744138d10ebafe8951e111aa93b24588c803b37b12b2e572c2b46d13e654954828585672706a001dc4777c9b4b937d92a761ea3fce68c14379af6a8a2700cc20f25e47a0e4bfa85e2082dbb569522853a5498d539faabb90c479fc95fecf1ffcd3d03f9283b806bc6ab6b7310e72be66959082d631d138221c4cd81c46162649b25e46f9fe864b4394f8afede0bb4c1e148ffd62202141640555283eb683a3d3b1fa0a62d8380fdecf44d9050e06bac6a24fcfef1e2b04d952726ac9cfbd67ae3090ae90e16379a96bc7731a38401ea68365ea413ac757de058730259473fe79fe30e1b50e4ae66730e489a61e7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 21f59c055849cccb6dd90d2aacac59f987c1dd44f560c7137cc762f975a7161edc11503a838e4ed98cd8c630b20a4c43bf191e26d4d4f19b4e714d92cc45303c14209989cf10f9782d96f31ed8d7bab24ba02fc114d8dbd4324bd5b198565bab012bb7fdbe6754ce6b54666484aeb42952b055fa69601a16cb86a20652bd091859904bee412c53759137e811dce8eba60390b011b123ae6c1d6d76c33acd26b54eea627662cf1c6887f8c5b62121064097bcd69eac2b2e669fe8e018ec3fff888396075059ebc0289c8925538861246b2606e878b4d93c4c33c3bbbe21cf5c861f5bdcc9121cec2d0c4dbe3a95976a658c8bd8ed7579c1c6eec248317ae3d3c73e5104d377ed5634c16bf49e65879db350bcf5988b99ca124c3f5c4ef52b7f170f5c48f139151adf8d39dc1013d9a152321fc5784e1e81d3ef1cdab8fcd83623453fe4ef7b825b1baecc5817a13b56197e0c0c35463f8f8d8bf2a1068b8555aeb0e099ff5c9b86aeb6c495f6ebe6d0d6d44ace2ef80ec9fb647954a9137b9cc6\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 100e00b23d1058916a2d99f5a1285efad8c62b8ce779a558d9256ac36757a024bc6f72aeb307db6923d7407ccb91d1388a525354373619139eab0cdb413ebcf50b82f19184b2187eddc19b2c0db25f4145b35111111b98b109939155f008552ac863a7bfe1dca6bed2c47cebf48e29328c475c9c34499b770ff42f94878cbfb29e6254f89a4d49f5b886d355834c3eab27d65013a5928e6099fe125e61b8300e68fcad66e8413404d6e0eca34a8701c2575089955cc13fe0c0b3e7fd6a4bd296c88fcbc71c07bf7278a410b90fb113bdb26db1738b06b5d0b559cbab838d4567754a7154e17eb7cc4506d47ec99640c51f1d0134da884335a3d982078a5aea7543ad3a8db51db9bf771656105982e0a85b30ff080ad7153656d52ab2a738b5e8beace9a74d9492cdbf079a8293b52c8284acb1eca6ae8e0b47b2d699d069536b62312ede061a8dcf651d3eb4286ed22c6da22418a5856cded4866f74589b88ff9a3afa0479ad7964cd567953510df300cf3a3443e04495cc0fb02a8ed9c352e5\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 8778373fedd6de294c9f7dd84acf66211883066ecd53d860d53031dc51e303841f14dceb8999be392a6ccd19b899dca89764db04c2308f241090b0e09bbfb60c82e460757f6da6aacdda90f1a853bac858100d701fdf37997605324cdd7cda6260dbc2fc40ffb17973d1d82715d59055f8d55c74c93c9d7dcab167e25d8d26e0d98b6a02e5087faf20b50e429fa134aaddd0213e938f6f6c03ee89c413991163746a7df66212ff7b03de95c7be90a0888f8791e3b72c8f11e310c291c3f316425ac2d418baf46aa79a1ecca245e0fdb92a0f4e99eaa8992bb0f5973f080f2c72b7919055e88026012d86e2faa008e24545c38470b24dffe84f12577a14311306a9293ff98e3c6c42cac10b913d912e5060651cc73dcc015707c429c7bc669204d78335babfcfc614d4019fb45be0aaf7ba50b7947bba652a2b1984d876ecdad54fea8ce3d1524e812fb2519c17db82f300cc3d7c163c8653b46ef233c1678dc19dd75e93d0db22648147fe17ffd841f38177033b0183ec70d3a060ae69a71f81\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 66f53d3aed293fc5a20d24b3a7a2774e12b69115e277894670046e3fe076d7ac74b830765d3d8b12b3979ead0d87ad3a0a8b3e677688f7b8cbf5e7ef7ed5a336ea144667a507be46cd3d9145c5ac552ebae558ee95d4e17c6e9e5d49105777dc1ddac7969318d03678e2afae41e265c61704b7f61cc3306b0ead4d0d9e36ffd08164f93422a1e51769b0c8478c9975e1b2244544252eec743da10d8eca2cf901a3052904e898d5018c0ea9923bb6fb8a405cecadd81a3f858e34c87c069897729186710de5bac42a6c7a19a3f7b310ea5dea8bba7c594ddd2cb5309703baf64cda2295157f8530dc5a46de57d3ea7461df8af53474b15b54644d6e724cf6684b72dbabd5cea129c80a1dd67f7b636b55ba6980fc123859e9a702df29b2fc3959ecdf9269246c4cdc05bd06dbb9bcdff693ca4d04170118e7fdf43b163831f0f6bb9828faa316eaf92a4428efed7b2f22efd93761593be714e9a85aa7b690472525bb0b2a28712f5f524ec56e1d0515ec7cc190662ed2be402c824396f7de194c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 6ff0c91199b45d05ff630f4b8bb84ec1eb03dc229b51ac817c210f6034e8f27e8623bfc1f8cb5e597fe687d075f289ad76cb2d1e6ccbd7aaf7812e49e2408c74b4b8869d4bc86db5c2d6f62d2b6c1aaffa76d3059809ef3945e7fad49dd198e132f2681c4148eadc808231b6dbb7a9a8e5b5361f23d602c0873ef6751cd353f10d1f922a20982d60d29bb7eb57c86d3337bc8f2bafc28f830e16b4684f7b6f51e0efc3cfbabdf76b08cb8b5770e9f709331053794e35e159ecfe46455bb0994b38994fe6f405b6a88b7f5912c409f9781767871b2ba18f5e542c964450a5dac4c82212945e968878e43f4698500dd10621f31eaf5ccb04551d6ed36752f110fd5cf3ef72b2c3369db93f6480b3cb01bef799007820b1f4aa34354ffeb4f7c8ffdc90e6d19d1744f27516d67d1eac69f139b5b753497a599e977f459081460a35c75d986383ee486810f1c6eab1836f7ab4b6cbd427fcb206c05d6e46c84fed94d065c22ca732eb88c02550dd72259aaf4afcf8da2eb419e81d4f8a8e914e903d\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 5a8eb1da635aaf6e94012e3d61f9c7d016c657b812d9d95c50f4ec073c662392c4ba98b5d9c93bf5fab48d724ea9a147b5b84ad6e169033f32318c6fef89b2733c9040aab0862fb4b049f560fe1b448b987d203a40f3f46cceeab0ed9589df97e6cd928fffc5d20d64a10b31f54bcb269f1522f04762b4935feb0b02ce5d9a8a0f99910a4fe237b00b3f48e44e04ee9f7fcc06252b7c08dfbab4fd27e47604f4022d3ca0aba753b9ba9b9defd3496cb0c752a2a4cd619755fd7693ee7116341f8b9575d13b4f821759055225d0fe338659c02eae9c528cfa937a1d58efd0463773a29e9b34ad3647487267df59b324f6b8e73ce0be930c5f163d43df88fdb54e761bcfc12100362a17c507adef60e2be506df242e81161144be1e4a29a3426436c0a7d0e574f9468acc5af42981d5cdf5775e2b7d4e02121398b6dcb2d590417c06f6daee42199ffb4a51b0de715676d3f9779f1ec051219057c75208ddaf3b4530fc0360d389d7f95fceebb0123e0fa25c5c7c7f4f8ff9d88a928d6904ef4b1\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 9fa960f4d424a2fd23f7cd07dc40f43fc0490862ae8fbe2399a96ac7f9931e2f30421692afeddbf00fa86731e6e6724f428a479b49af5af07119856a913fc9211c722a6d25791111650b71997c40a7c8b74b4d0efef376806099b634388b93da0cc5e3b2678c5037d399fb7770546ce572852b1f4461ea415c7dd846b5611fbff3a492203d16b18b476f48b4ec0c3d900054607843bc23dd2d8e4889ae2871774fd520c510b48fb25dd15ca9f09c4cad7adf5614813506511473110780457194d41357e2ebcff9e3f4819e70fb9ba71d9eba053946beb75147f47e5d6fb1ff8c560010c32fd708025f5ac3f201d9853184f7997ebe8ae6526f7c7f7d", "abbbf94ceec56e61528b321e5b9d6255b90f205d9ee6a1f86d52b97cef1764fdc42ed14c22675111650e2237be27ec2d1e9ff2a70ac5832ac5a6db325f3fda757dcdec0fc662803cc76b18537c03465fa51cc15c395369001bbc615334f3aa161304b6ec18cdc2fcc44873e22bd833fafcbfac7a74f30c44aae4a176f48f8686002a6d10\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5244\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 0000cc6b45a4202ea5a1fc930a5008136091f48831e3dce258955f0a2fa95427a18ce12bc6d95424b983e2e75152b654a0c481014c6bc538354ff720b043f57c238c42ef536dccde3637babe7feab03e2fea7ddbdfcf1b689cea466c07b1aef757a7120141a2720cffda1ad422eae68d751425f879eb8ec65a1d0d24e1529a91f0643fac68e71da9f4d0eb56aae99bc03b600daaa127221dc20a5f5060820ba6cb1625382a4adc47185c0ea77d650cb517761a085a55e1a306c6136ba6a03d254079464ee8022a7e0189ef458fb4587b53fdec7864c90872bcfc5476bac7a7af7b104cec4cea576ded30bf4e24f80513ffef05b31e5031a2dcdcd2cba7784869c211c2ce0a3a65814fec0f153de0b8e327ecd2b0ce80a9bf691c1c08f5920547a2a08d749e229a6eaa4b770db54345c18ec3365f68fab045111d0928bb2cef7380dbbe07f6bc4fa3bf340e8fdefb1438188a474b206b430f988fde41f96b0642484d02adb39aa8624d908e52cc7fd3d39d74e002ea04a756b61be3f279ccc7206ee0\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = cc6b45a4202ea5a1fc930a5008136091f48831e3dce258955f0a2fa95427a18ce12bc6d95424b983e2e75152b654a0c481014c6bc538354ff720b043f57c238c42ef536dccde3637babe7feab03e2fea7ddbdfcf1b689cea466c07b1aef757a7120141a2720cffda1ad422eae68d751425f879eb8ec65a1d0d24e1529a91f0643fac68e71da9f4d0eb56aae99bc03b600daaa127221dc20a5f5060820ba6cb1625382a4adc47185c0ea77d650cb517761a085a55e1a306c6136ba6a03d254079464ee8022a7e0189ef458fb4587b53fdec7864c90872bcfc5476bac7a7af7b104cec4cea576ded30bf4e24f80513ffef05b31e5031a2dcdcd2cba7784869c211c2ce0a3a65814fec0f153de0b8e327ecd2b0ce80a9bf691c1c08f5920547a2a08d749e229a6eaa4b770db54345c18ec3365f68fab045111d0928bb2cef7380dbbe07f6bc4fa3bf340e8fdefb1438188a474b206b430f988fde41f96b0642484d02adb39aa8624d908e52cc7fd3d39d74e002ea04a756b61be3f279ccc7206ee00000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = 6b45a4202ea5a1fc930a5008136091f48831e3dce258955f0a2fa95427a18ce12bc6d95424b983e2e75152b654a0c481014c6bc538354ff720b043f57c238c42ef536dccde3637babe7feab03e2fea7ddbdfcf1b689cea466c07b1aef757a7120141a2720cffda1ad422eae68d751425f879eb8ec65a1d0d24e1529a91f0643fac68e71da9f4d0eb56aae99bc03b600daaa127221dc20a5f5060820ba6cb1625382a4adc47185c0ea77d650cb517761a085a55e1a306c6136ba6a03d254079464ee8022a7e0189ef458fb4587b53fdec7864c90872bcfc5476bac7a7af7b104cec4cea576ded30bf4e24f80513ffef05b31e5031a2dcdcd2cba7784869c211c2ce0a3a65814fec0f153de0b8e327ecd2b0ce80a9bf691c1c08f5920547a2a08d749e229a6eaa4b770db54345c18ec3365f68fab045111d0928bb2cef7380dbbe07f6bc4fa3bf340e8fdefb1438188a474b206b430f988fde41f96b0642484d02adb39aa8624d908e52cc7fd3d39d74e002ea04a756b61be3f279ccc7206ee0\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# em represents a small integer\nct = 26a03bdf11a01ee4ba476d721c110840d093f38ed49f406c38f1c46fc4735a29bc7deaa3336aea98f6cfde4ec8ed305b91a194a23fe73112768080aba2c9e152f6ad8fbb8401546fac21ff696fb1f52268957cfd591fab64bc48c3c87ae5b3eb871beb669e15e881c0a9920ee5f401910d3415850fe2267f5ed141ea6e69d01cde65fb0a8cc063c33c0d333b6c90e7838f97cafb7a8aacb14b499c534a6af12934ee0c7585bef97a1ebf74aff278664aad35138fca85f360ba259d47542be5f97733b8f5e7a39bee1772cb8038d08acf56d3e8f613ee48ef147d6f0c1f57b3c08cc68b1c8f106402baa6834d460efdb8cc1dcb54f79f2928f4509e81de32d9839f9a022f47a83d8616f482c31eaeab84318f898763de7048f507a517900666549cc093b3c8f4d68c84fb33190e2b413134061e20ff51b8da5545aa991f89a0f612b5b2e74b7ad7facc491c7bbce41799ab70be4bf96a0ec76017399662ef8a6d8b3d8569ca86b2952ca3572777efe99724f85fa0375b29bbfff7380c36e4c533\nlabel = 55aa28091a62698acb80855f292ce725f088dc8fe0045e9e49375aa663055d72353a67087466c68306ab0135004b7cec41661da3db65188b9af52b255bcc888300000000\nmsg = 354f2c7d123c5bd8675e6f05c7a2d2a68f9002439be237430993ea325858e6a3690cc9345014539db4dffbe387995de694ff13c942a4d2634caa52b8451d2b04815d9a764cd9c7576943b559b7639ed8c0b604c2e59e65af105988c71dc91c6a0970c8917b0e00d3029bebf66129d4dc60b03a846decc6bb2cba9c45f6b2eefab79a9df5bfc01d93d5aa6bfef888d7334fcd0d2cd41f7b3e1c564dcdd2eefcb8819a66fd703cbbe9a4d7fdede75fc8578b94f8ae0009bd188f8c7469d6588ef8f240fabc1ddb0174783967106d2b6aaedbc15c4ece1cf7e12ba1d14415d7261d6d56efe0bc93f6838569504a131a4e126124d933bb63f6df189145caadf7\nresult = valid\nflags = Constructed\n\n# tcId = 31\n# em has a large hamming weight\nct = c63dfab03faf7d5933506b3a7ead6c6cb9bebf25ff4afc5693428e988bef9fb508e9d50f58f8e76f26121eb98f036c15d2538f6c8d7e707aff411d24b9ec3fc5ebe0fe04de2f13c212f674585dd157f5609b9ec156a04642e1b087b6b3d2a7015324c5c3986fb8a32482ca52821c033fe499e41aad19a55d934d2b179f6c89bf3b34b20f2fb616356b13b4aa8041089d9ba831f0868a66175609f4e3cf067289ca512b0444ee3a5761b5b95ee79151eb429e9fe2cf946c8dd86d5862ddc33997eefea8e7912a340f3d1e2d5a69eb32ec2bc82f74c4e68ba8c565dad2e9c71b81325d76a3fa600120cfe96613ae89a4251200df79ab92b1f04d9ec34f61f4bc71f05fe27b972c91be268d1e52dc46d85911212b9ecf42177f3be164fc99d11b878f1b85a508f13f583b4a0b7cfae186c421b34a997e31c594b7370503830ef7fdd8b50198def928a1075594a6e0b418e5361cb186fc3bd4ba01720081e21c9646aeecc0882c847871c894562508ce3320aec2f9b04c5b25975c9cf5af7364a3e7\nlabel = 5360d4b1eaf5a46e6f6a6ed03c0d405e7ed7fc2cecac86bf3cb27348f9d66a7bdca863e055ec1b6a5b20c351d63dfbc7eb599589d69a46ed7eafcd2ec117547b00000000\nmsg = 5265a56c99e71128fdcde31cd5918fd7e964b9f1d216bc9c4c10d6ddd3f63b65f0d3041f061c6eaa6f60407788d", "77e12b4e7b3b2e3751d2f1774d626e83d195c5b4d23e3fcb5f50eaf4252d720737b2af5a4e1928dcb7fc383193dfb13ffc6cafb3b609ebf0395508fa5124ed27207bef82e59dde2251dbbbd44405f69d771ffe54d269d417c42979dc014c1579ee58895475eb014ebfda48971ef3a08a3dc4f97b9b996ccf293d7b8f40055ed842eaece6d7fc4c76cb342914fe6bf89beef8ef463a048ec18695578ba514e5f6dd5813c58c7acc6f6eb02258dc3adcded16bc7cd3307e73445dad5f36e7e230dace3d4bf568daf408b6e07fdb365db5ad\nresult = valid\nflags = Constructed\n\n", }; -static const size_t kLen292 = 40513; +static const size_t kLen297 = 40513; -static const char *kData292[] = { +static const char *kData297[] = { "# Imported from Wycheproof's rsa_oaep_4096_sha256_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f049]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed020301000102820200097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f0490282010100c3c677495c2bd56619e44e26140d2ede0037409b81f3a5b3886a0904eb486140f43b8626af13d14a33918eb72b786b3c9114f39017871528953c09104e1fd2d36b725388f54ffea30373077895a6934ab174e55ca6a12c21923a7b775b5ffaffbd813f9fb752805b016a5735b883c639fedd55ba2e233a6dc1673063d8487390d1676123544d3def177a91caeef98b13f38860474e44993d4c6060926d878a2059855d0de1c794ac8dbdad655fbbad20f152f15c73b95ac544cbb87b8bec8fd3c007ad09d76ae22a5e993302aa72f11deb265a7f28b88976af5d0c912d97b7284b1783c5bc91a6dcb7a9b97fe53713965857742b7e4032dc5141acd4afd4771f0282010100c357cf685f9b8d4e59e96686f7b8752f0a982efbe6658e6bcdb615d921f5e7056882825347455782d7bc78d637e17e0e6810c2136ad81b16cc1c81750785924616f2bdf5964b26c7fc50fa98fb67b746b50812705b379f5deadbd11dcd2fec7b724d042aef25cea2eb37f85b7554d7ad49fe5f47737ff436bded418507f2f175c695e324fbb11beb0544a7a7cb3f07924e291b5c8ddaa6a7dbb07e23bce1960cb52b9000d3a7aab1f58e3c750b6d978adf3d085ae7693b7e6a46cf6dbb6d2ad981f4bca5d15e0962c39066a9fc27985b9ba1f51132355792796a5dd847400804f98671ee4899050bdc2e7872ce6fb2b78b1050436d882425ee0745546a6a1c730282010100a6bbb5460638d2b2f5242aa6657760cdf3731b1415d5f2ee77248f6fe00e31bdc70396da054ba47844791809c9fcf19f90943e671e928e23950d9f4e82aab9bc138b37b7b1ed2219a54b67367c8574762db237d0f39cda5ff110dbac286712f69167ad4f122b3263cf4dc8de58b9e9ade4f08e1d5543ed74223e06c9521f4a45310291892c37e8a262e5a19b2a71decfec1dde997c00125e5158d7867dbfec9466899d59c04b60c4a0a6c5314c1a2375a5f194dbbf37422635d426d719b12c41140fb5806735814ec268493861002977e8982e8493a2ae78251be32315a85b75f6961d44dfb7505c34135987a2288907074fdc015ab1c45f3cd8e91fee6bcdd302820100178cd58f72bf5118da141e6d351e42da69ff90e2839348c94c62a05dae0f744b9d9ee6515ded4930980bbbd1afa8fac687db455a8bee03ce0acb80fbf7ed2d864fabf224d27abaf12f45200123860c7d74c3c55d5051f35fa239e00b24ba9b5b029bb05df0b8f12189141558095c32284d1c62a63d917682c700fc7e2a482abe1533eacf819c878e1cf37af6eab4ed97c0de89d2edb327966310f31421e85c6ba9c7d7b391d0cbee6a793c66abfb09630fa8cf020e960c3b205aeb15029c95a6e558f90950a572a23a8b852507264ae2f86f5d1936a161ae61fee5d3763b8cfbf48d35dd1159895735b350881ec52e999c255a57d6b3ac0ffa935bd36284ea6b02820100484ad86e79415ea3c78af5f6c807cc99decfb14ca1e80c8e6a1ef00ee582d3d180774236a54ec9dc8dbcca51f4da4379cf634f3a07cea4b7748d7b5d94cacd4d474111f92d19f3ab5eb4def8dba57b990844efd28d85344666e283f5d5fb0e6e8d96f07411c882bf280446e49b3b9b15218fc24da34ce8f01e02735920ef48a343b4de11f99b26547a251afa7aaa69083c421e2447b1a989d50712bf8fc35882b63517c7c39843cf67b92645b68c6d8f90331600142e6cb97032a5af6ef7c20f87630c6b25dddeb57f2cc0cd8c8a0661b5f40ed6632989f5d40f33bbfd9be09374483606c2cd7ed8b5fcb8bf3df1f9368a13922b1240c0d25792505b857d3e8d]\n[sha = SHA-256]\n\n# tcId = 1\nct = 864915b51654401f018ee23280252369c2a4655156b167747c886796da7fd08af0e5ea3e5e477ef31498be2547e78de91aab3283aaaead23013a01cb14cbc5ccafb27b345af079fe4520c6fc4f4395abe18f8ff3525b7f9bcc1876693800de79ea33fc5c3aaeafc9e4c97535033708b77516a891fbecf160fa3f98ea6b0b7fcf69ef44c470df232a35c48e758dc4b70965d2c2256753afde954b642fe83d181759949a901558dd0c88cd20291e236581199cdca2b5436a102fab4c6c58d5c8f2e867a046114e0c3662bf115126aae27a66ce932b4d9603e14fb3769a2b712e5b332ffc1b615bf9116455cb802f907a0600d9ac9d292a4582d356b6f8c06d54f252ff17d1d4d07ae25ba1fccf3ae9b372e2b8420de1b9258217c15c80bf88afbdb5a879fe31fcd7c7a275f4b7432921b8de5bcaf43ec8db6ea38a962b79d810904406573cf3c40fc416dc5f8d2d8feca1285748cab7d5335cd4c253b656b52e9ed1b8f8dbc4cd93962028f0ac1feb7d4f754c0aeb1c31e961f25965ec2328ca7049661e8528603c117f9ed93b74bca5954936546bf729e4572682bcdae42f0e693fb3d05de3fb7f8728825675268438339debeded1c2d50bd89128b41cd40cbb6bd68564494b06c9bb43e3ba7edde3f89933165eff31ff255e1174d51b885b6b61d4d3712625d78423640fe911e761fb05bc702da7bb7a6819727dcd892f7462c\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nc", "t = 0d9e70cb448371ac08d862e2ce2cec00ec8cadcd05aab58ce26c5c098cb8aa64ee561c446392253b3b6349c286f1222a3650d2393aeffa1eac0832552a43d11f7780f6f219c8ff1d1c98bb085092751f479aad553b0243537a23e53a9c9779e15bc3c8d8a176693c3261b4c0520d634dc5b3d618565c1428cf9d616c6bff17a4d0dceb97339f5556f0d96f28b187309a48174651383989854585ae85d30874894e6d54a3a65e16917c751f3edf1d1653f22ff5d3f1eea35b390c1df1912469db041559b9ccf8148deb9d4caf8cb587191049bc575cb20495a9b0837035d2b8c47a74190829e13973b5b72eda42ae1a7cf0022cca75f86f039c64e16797836c83bcc7c638d22fe1357444bb4e42bb1410d7b63a8c122006f45dbb942a802aa4a964c6b17f21634e0e029a9a6510158f88dc05f9c6f4ae024c6f13d32a4d412ba0dd0b9f7382a1771a61a35fad4e310becb6a5a59dffec526a9e06d9feb696804aba676d0d9bc043f07068c7882b1f8cc19033b78416d64d5c6f4b2d121d170e4924cdb9a7179ae3a93121b814fcb74cc25eed8ab26b12890f9392debfa3c1b9382d41f8bf0d1b8cd40a724478ee753c70d3f3820f48b6f8d71ac6d62d4e319659b188a24b586521986fa3ff61b376e6a78a8988441da519c6f986f10c32bce6ce156ab0e2e1d4cd1f2765d0cfbd8157104b64709c4f8380181f8021f9fb153b15\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 40d37ad25e0f854b3f3431c1bf0e24dfdacddd8985895dd95f95d5b664e03e9f3d6c006973be95f2b17621615b8fed29aae91454a4108997a7dde9f279a93909782bfa6ebf7eb69c198d656752b980d6424f054b3458c8b772f509981209e8514f5c366d7a5272ba91072339cdcd81810eb2c27f47da51e13225e564ec772a0cb40c95a295eddef2f5dc6fddbedc8f7c2b141049979b7373049cf5b8f91b093fa2cb1220e145e5fa8bd1581dbb7ff6f1e28f51f15e67350f145ba336d4a894a1156ca2cf35cd8a29318d084e28d4402529551e8fde5a30c8005b983705cc67a7cff211e2a23065ef9342d4d065405818997126e14834b4f3073a6845add06853121bda9df7fc68e2516e72515d43ace942ba26c0bd36f58e93fa586183533b82cce7c8610b15ebd305d0be2ec52636377cdddeacd4eaaf84fa64e7bd17dc2acf0cd54f75181a7e237a6b1cba8514dac2c0301fc7b28ca07dab48894ed25f0d2c4f755cb6b83eeef73107338cc9bb21bb16bf8069f41d5a86b37f2c4e9f793d5226a5723c5c95da151f663e8c96f0dab2af01ece8ca1280fce698ba99d033817f79190c7e387c71ec8c70d04ddf965afb5e0c106e1ad913882bf6295b8b45d6859b25125e0af2514fe66c40381987ee925e6619c9cdff3ec71534ea1cec815bd3ae8a4f66ecea466d9100dc1c94c64be432d8fc9973426dc2041583a96e68312b\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 3d8628a19ba75e418329363a074d5992a80446e9791583095c23ed66de5dd41c94db742324edfa2a8807b6e115460e48a30898c1cf94d88edd54e400e448025e44d35e27b89509e4bb5e73b5dcfddd38939180b69ee551aa3eb74cb3b4320127cbd77fd51b28da7c74871e20e5067ac610053fefed9cd4599971e219849142dcae66ce97d13c937f8812d619b6fe0df57abcec358341f82ffe13827fe7e8e26c1030f821cb1d43a8787ee48033f4f11c901adb48e7c85a950b3502fff2f12695df04d55e1c816464a636981de537d1b3e66598759c8b38e1d87b9cf69c752982b6b54f2398f7658ab446c12585975bd3154386accbc9b796abf8a1c4cf6ef291e9cc519bfe2e09084a20a88d1f2243ed8d21d199f983df56d8a176603a9036a44c175f1417b7d34ea95c32993c0cb6a029edd753c10d77944b666f3fbfd743adb9e6b60c06e83cb51ddae3f37e3632e4c2b547580dc1ab3c7c94c6f09226dca4884affa94a0e119dfbbabb42a85a516375f767dedc7d1e0cffbfb44ffbfc7534cf619d1f926b0f61ddf2dbb8921e9b27fdf9cf52776e0b2adb781a5b110849c4600399850bdbb155c2523862f61fa84bfa9362cddac0a49e276c01d31ff4ee6646d914819ed75e7395e04cc741a0d7f61503d940d0ebce7888ded00facab381e912fa737c5d628f820650cb9b867cdf17ff60f145fb2c107203fca793503dc22\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 64d5b5a72e27de69cd016f58fc0f7b1a4608376f0c9c51c7c89ac24487b6a542e414606aac2f00892e8a72307c9167d48d555d3c46f924e95b2f7ea6451fdd6eb7bf14c5543ee45ef6c30d39c9c31d93fc807d9b1ee85405c38a5952d1387e393ca9e357d819470f43cb202dc1275b91d0a5dec0b7b3c547994024200275bbfa9acee80b6adbd742563088bda0f2fb6989e78e2464f0b7a7dc96701792c365f9ad1d8efd0b3842bd407774c4138810bc0c7f5900e50cfa5c24eef43d52be497b7c8094413d543fa3474a04580448d8203661d3ad87e997777c112161af200af2442f591c8bb41f337c1ec11821166cbc3d2f264f27eeb2ebe05f68f610aacd58aab3722eb38ba798e9a9c083dd335be40dd65978cf0a67d0e78a5b9c77034dd7dee2ff87172f98b61899d76b384920570ed063670b5dea2e644e538e7124a4b8c9ba5da4afc1e1196ec194a797bb2c3ff90d8957ae7bb8ebe99b69b90fefcb876752cbeeaf4f921060e8cf420463152b32ca55e39e61cef5ad4ba4b0ee4a2eba2d784b27ded395bf85db2bc85eef5e0cfb8fd0ab3198ba5aea550fdc866b828b3095b2a8d4b71a6e20ee3d572b94cb4f6753ddfbb144b11266a1efac7808931bf3763a4a80d0bbf475e5a3d237eacdc58351c1400d5bcfe9006e6483cb664d0274c5cf12d2a18038b6e5643244e0ff07072e38eec29eab5090946e73b01474c4\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 286d5dd2d8141c8f28ad5834c57b729f39bf5f90a087ee09eba1013208793361cb39d338b4acdad72ef3143f45c6092cd790abddb45d1150abbda9c70f4d42abcdf71648f63172062ea5b64629430b5e3b88021cf5fbb63dcaaded696e3d6ecce60a1346d75a972dc6eb6f50b5ffb7da7a5b7b7f8a5454f9dde9fc21ec497b2223b24e3dd579e3c0518feccecd2b3dd91ed6a26318dea80b1eabd165a87bac00040c29f3335a7e474cd01cb8cf2f1a56e27d5377d17da3ca581e84149852b63868a9de2ba8846142b07d14ced219ee0fc318b826a35f7806fad240685ba4067949a79b9fa3252495f14f49db5b4a31710d4c1d04d8a2f6e7121762cb4873d1d5ddd05c2be9f8c09ce5e22e15342ae22f227d940c8ce9ca62f4fdb080b85a447d2af34acd4e77d126792a69892f63356061221c0c7105dd5e044bdaf073db841f0f25f957cbe259a2474b7cb6421225add558838757ccb028ad426ac1b75029aa08746f9a47df7df604cdefbcf4abfa92e114da11686a6b2fbdcfb9a6bb3e676a7bb288b88a9c9546eaad05a84e1cbfb22503e326c63c15c2c634085d2ad2d5220b9c6a7a51548adf4474145cf3045aff023c27f92c098d77f065ba59a530ff15f1f0cc634432a3b3fcf0c5d5cc58fe071deb4268fbf16917bdec618250dbf4d41efb3d13d0be332848a0512c5e8e6b4a6fd06ab4094550cf69d51e5321627dbd\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 815f21b2970412f0d01a6f7eb209b214b80a944718895712c0b17b86ae408b01d38636b0b10a0d50a761359b770aac9074d0a89a22431f031063d9fbf174a767720807d02dbf70f9c561214c8ea73bdb37b0ddc8ff2e72e744cfe48de0e2188f2c034d6a779434a7e32ff44f5a9016cdca2e8ead252ae8fa7b5137c033013dc1a74b5bdf048bf81ca66a424feb93d2579c63f2aebac51db1535217341b501557c7e034a5276c8279d46e8724cf0c184025f8862c22a64d9142472c098b8974c61b5c8c998f0e9c8eb5525dd520a190768faa9d3fa58ee6d93f2fc775edd368ae734f6b359469f4d3211895f35dcf1610a4a6981cd135709b91f2f7667b7288db3337bd46d6f15c0eb26385078f3943ba1e67df9ef34f7e52630d5a4862dccb0477a3988f25d970ee69cf860eb4b56a85665fc47995befe817a4e3fd2b4f112ef60a52180adee5a11edb9ac1458c1c6ec41e3b9bd40eeb906e206b447b7538be7fc0170915b047c998b8baba8430aeff4ee8c48c763be4a49a8d0b8b7b45a2f0e0403e18aa2bc30e754982d6d1872434fdaf22ba6ab298ebe29a739788e377c51a140e6ba07545e97eb9b2b12454c720653504686225a4c7966a13cf0dcbe8e1a852a2d0b828b9e708c1012ccf401e7ac94c9fa0ab5c4a19f087761b3d1129317571621593629f9459c94b92c62dd5d6827cf1c5187e98a9c20d27c0cf4e4b18a\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 91d2e4d3a0be29f0dde7d2033e960301ff15e0fa649865781d97876e1a566b19e1bdb2f7f458a524d6d86e0d6f5e72f0bfbe5d23139987cf1d8cf778fabbcf3b5c10092fcab71b296b12bd56eb87093e90747d28a2a85bb1e62b6fc841f0da507978c7aa9039c5d7bfb8dc20008153bf81e94222fbafbbad6289c4fde8da4ccfe8142f11a922317673f94aee392b3d34dae9cda01d4fc3dd1136b7341f45af106ccfc8f71aede870522664494dafd9c740e7d864453ca9874b909bb08ad74c673e97ee78e816db3757f80d3c1edbad9133361160296a304420841c37b0de7c73fb6d3dc1c98d9c637a57d145008048e02235c51c141fc0d38e0815ceb54847a381f02c556d1ec28f823fb3ffdc98e38e9de7d52096e7c4901ecb03ca1725d2f386296ef307b2f4a0471ae3e8eabffc1581ac2e1a00e70a3cbc584f7efe6bedc8d437a412035e527aae977647eb7b8271cf9dcf361750720289218c4372448a24b1fa8558cb8bbe928ab734d66b210489bab3292c2745a050ebd6a88d38359ca463ee4aa29bf84cc09e69ad4116765ca079d5a1023796342d7c306fc0fe8f2ccff4c2b1b855077f752fae6232761d40fa9abe063125cc56e4efd234fe6623325417506fb6d4be187fcab7471c16e607abda762423bf4dbac021cb2700019a1862e32253c0a8fd3c443d381555a799f4e2df7d6d0a92fbe889426c9dc8b6801635\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 5399224a31e400c2e26dcb43e4bcc394b22b87ad7694e59fde38d7f16e3abf190c877f79a262b6e9e172659acfb37cd3879dc2d4d86b0f7672f297a569650a37b3392602b147b1b1110431a4615389ff759e6ab16371a514259f1131a96952af64515d93eda9541791429cd14d3a2ca29c279088607ebc57b887cbafcc88f3e7eb65067e952fae40301e9b784f0c7c9f3251287d279634aa92573fa33b7845471f96c915352618618d733706d2d9d661afbb04b87927a2589f46d13d8adb749d14eba316c9cdfa066623c9882894345033e1414a3f3430b551f7de8d387662f75589b7f55c9ec5293c1de87f7e3b0589ce9b8e2924cf7b87232f0da39c0eb", "0f89489d73ed6f7e73730d39823495cca741a19179093f15d6cb1518650c74138c1c1c7e4e65fa277757f17be457607c51d310dc10150e7b381eba75c607417449b7d1bfcd7223ea1d373826b623c7d1580d1e989060791f027adcb36e4bae8a7b09799ecdc0927256a218e24d1e4c51ef7d5f201f4a167d4ec77f0a77521c1747a67d413742f15b1393519758f9c98f3b621c361bb5eb9e7a5b904a324d98873d54944a18a87930a79d53332a9b8ab093afa12029406a078815b13872033145a421ad3b1cb9e7fda09679e7e75ceed95f934720e32fa3fafcbfbbeb028a62aeb8855569d7efebd70dc3f078686b54d26088c2870d698e42956e65312a57563a2b8\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 043e5e7106d5e9755860328c3c135bbd898ee93b09f329aff989c41a271d88239c9f079ebfc17c352124fd5a9d31265dd912ac24b2c506ad33ed33b5109e5f42a7e01cf4851c1246719eb1c75267edb673fcaddb07f0fd8ebfedaf7df9331f95bcbd21a766418badb064e6b0c436c6e21c74eee42e45e5d04d3ce219d089905eb700542144a045e0f7a94a38b0e20858ad94098e82a0197e077136352f26725e50d7ddc4771f52ebe4f486e1fe72dbb94f69968aff98fa9f5b820b368c60d82e89fc27f0aeff824b59a6e64a5f604df475c9e91d18911f5e0a20b8bba06d842d6a55378f382c0705b75a308b08a86bb37e4601903e18740d041c987dce213071ad7edbcfdc327b8dd6e8bf1d21c74f8bb0ef233340ee193ad2728bb511e7b7616d5c1ac6708ca3127b00a8e743b73ece1b007a09c74f60cefc924a0e04d967640ced76c5025246e888168dac8b3a9e4f16c0d44c8935fb401d3b171abd18b7c79d2f445cd22467c77d34dcdba4c01c5418def4c170189b396e4ce9216edceeee101c6b6df834ca29c9f2767ba5a1b14ec157c09217c28dc4db95490ee3c8d0059e9fb8314b4c89123be5e1f2c4bcfd732975550f5755a845bbee0c65aab017c25c306ebb43bbd14406be70e046a7589ca3235f529fbfa8ec9d9208a95f39cadf8b091857cbdcc6e9ef11439ba752b8d24d4c401f1e0862f71d07262f007e562b\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 0e617b28ed72162e19b7a80a8b57b9ea9c826d0ac8b230bcf449f027978034e1bdcfd55b89393643d97b082d7c1e7eb4f901241955ead53e18ea50e07d8818d01286e6c7f6a0b1edd82c40a18cd934fe4b117f3711f762dfff24668c511524bedbbf9248590b708c36ab59ea8449c9468ddeb978614c930d7cbc45e01115f5ec5bc8e024e6d4ba38cb8a3c80fa85142de7dda62ec3089c56a3a2a067b09a230890842e6844b20cd1e5143f4d149a99b86c162b3be1d98ea2850f0c336a9a0e1f350e4435b7d0ea8cf479f4c07b3ed800c51ee78cea37c628ad0f8d9d9df93c94a7b40c828927dcb7f53f705f9145bab0191ca8279957674707cc442482754603dce5fe9dcba2b0a545f8a3be70e108e4c7c9ec55f58c43cd654fcb7f0fe85dc2cc02fbeda0171dc5c2344bfd908692aab69fa50fc0d06bc7b9791dd1cd02f23e52fb26c7d017372dcd84f966b49ed939eb92b51d8d25cea6b25ba6593900075f0ca7fe54a43faf9686e35eb42658d2af3c62ec9b68abc449462342c1e1e4f5891d8a2b7b60446da02600bc65e9e48efb38b5ec69103a8447e5df840a266776eeda1864013fb966360ab45ba9410a2721850cd0e2672840c6efcce5d468a35f9bf0ec25046e47d0dfa4ee6241db8ea32125cf8a7ffaa9941e00b49a1cf68928d493fd1a16602dab0db580001bfece99fca4f90aa823717921e836b12ad2827e06\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 01cc477af0a4ef90faf0020641b6140a27ab93f44cc33a26bbf0a8bf451443db7a3b4625689cb4ae03fe2aa97efd4518d49148260e72120657b158a6070f400cc5c904b24c4ef187dc6c5deeab86130eb9eed59d75bf962ec900cb0b2df2a0086ea5a1ba9d85c9f71a5df2f61a4dcf73d40a1d6c25e5503316bfe9a2c58c3d6012367f51720baa470248a8d54c1e8cb5f8b1efe93f2bb7bb4e7f000e4c06df92986ee7743b9088571fe8b3cc5b16f35d98e633ea3b623d9c83e2095ae81b2877c36898c983ec58d74cca9026d3649a12248b09f04c49e3878715eadfd966af34531699ad173cb01f8d73f585dc00b8b3d72b32cd40903148c0b6167e4e80e2f3d29e5285486ce51dd8ad1cd195809a4ce6710776c19d9bffcc915da723493837d6f99a215ebe502da8cb4444b0421626b2eadf61ef05210547940210bc4e647193e0a7cf00a99cb51533f74fc29ce5fd4632862b8efc542a9ca0e2da81b50d1c72da1dee2bd9af43ffd5264c92e5c00e9cafcff11e5b4f9b6e047e5a19e7e599a736e15463b363f250a2e1616162dcbebf4791adfa8b51e80eda02a8440132a80fc0f0a2939f176fed967240ff457676c6deaf5bd76a3c826445ce807ccf4135c7c4f37b112ad2f6a10f213e4fa70ef872eec4a7371daf30ab6ec5a47bf8f1a9f6f7b3798e3d5bcc0d313eee136cd9c0d831af2ba21dfbfef9fb6142bc36f586\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 1c95586fb690af2cceacd7c9232c70a8a52fb37a7ce391e9da23cf087e3b4c609081977a713a032c4dbc263a369c9b57f7036f6218b9ba5f522cd965a34d8cecdaa0a79c97a962dd5641cb6b68dbc77018238489ca1d64b9d3a3beb33eccccf81de113073030fa54305d959180340c54c9ae4f3e5a3c308c150f0498cdbf23555ee5377805d2cd58e72d6109030837740131a6a7e5c894ce498eb4eeef7aa8099c727946ba78f684103a1bd386840932ae99cac1ceec176823bd4c2c5b7c7786e2f071add8a940edc4695d0e031c1466906b4e6e974f04e80d21177a21f4caf5e2d542d7574df82470308ab1215a83b9380c6fbbd34059a2896f156a076f13e95501784ffbeb42002c2659b88540848cc06da46d99dcb7ac4f6294bda2e0dfa699b1d852eb946ed4538b4b743fca2f1384cdd3aad9e863874448eec50d7581c96fbdde8af1d6496386cf49161df95c1fab9bb4f905f3dad3dc67bc70e21629e19bc60a2a9300b246964e5d7a5a56942eee8ac4676556283af90d27274bb9f460b3f5374deae951140d616c34905310a36b2c52ea789610288e60bad45c26e2df328161c54bdba8c7b25b077b2ca5ece64e59d0e35a052839bd762522b4a6e2ea4ea98426f7b50b90ee1c39b2ff1ccd1789188cc547645e96857f9eabdbe1ee17d4e040f2f34eb826c9a2f5a4712806efbaba70b3272797a26852704e9a14c50a\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 6937187451f030bb4e8da158c24989f1466afe60449e8f720abeb3ce766b5e1fad5ce87b6902b67daad9f6deeddedcca13be3a888cbc0333a205bbd292e0daa9367ad5901547b70de0174f644c3d824df3861a1bb6a14cac290e70b06935c39d9bbca33932f5a4cc18f96561a328f390f6e6b81aad21c090c2f0a654b18674448a9a858b6b2d0e9b2bd2782516e4a7b401e04845a24882190361278557785f7ec9bf9eee62162543341a8068018a92600a5ab037b9a646a294492e6b8776c2f3613ddea88ca7e840d89ffc3a3a112fc104d52a01a5493446c524a5c02f5f8aa393c3f46cbf05530bd70747ff7dc95f021dab34c617f550f40ccce73e92d7a351a67f4c531eb3e786f6b92632444f36a8b7a554be5bfa9f8f3c0eb18dd96da5eb9fbf3d39f79495da701a549f5a4a0dcbcf147d9f992ab83ecac1504b2dd11ce7a1ca3bc084a2c611c68cfa89aca69626d80cf2a016cda8f47f6536f085bfef6a18ee2c84e0cc32e9dbc08981b6b54110ac7a8146627283e5bb30f47869d09987da689cf5b6f3aff6893dabe94d1c2fcdbe789d29430a3913e4a20aa6569c26d88d6e15030eeefe1fd1ef7ba865e52a9407fbe4578685672a4603d41c09a9aa99ae0033c5265117d8438f64a3daaa862ba2931fb86e429870f51f77697ef8e0f4b11dc6b70c9a1cc47fd2cce484f7d088d1d3a0fed120555d56d1e7304a656513\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 35826bea475a851d9f7c2b94b28922aa417b7cde808fb6cea5a243a3f414bb2c5c6dc76c00dd6fdc692b085334c38ffbb4619198bf1c9f4cde1056f796f47adfef03207a911d7529bc6ed81f32b632d0c2d127556b9ef010d68a2f45071dba2f128052b3e34588c8edaa552f7e060156dd683dae4dea4bc0ace1e17681ff4d826816dcf00dad4dd17df81aea72ae1e436f42c4c9f0ebbcbfa801d94db1bf0f80f51cd82b25aab6b9afd42a4c22ac9c04dfb0faa1b6954941d8684ff721cdd485f81abd6a59793f681f371d2e2187e7f7c034f5f5d63560284d2e0de7aa27b61a3863722b3898769eeae9dcf124f6314a13328459c4093105481f7cc0bbfdb872f3f304892eaea2971420eeb0b86c5839be6afd4c719a50ded51fb8d1fb08568a7d12ee7614b6e8be6f21baaca84c166a69eb773dc69fdf855d02548a188402616794437a2a9aaf50ab6a14f0f172af0af4a89c057e857ba40333a8ed3f61c6e08a6c98679f55da53c76c1c1349791ccbc7cbb3c189a52b2ed23c6fe86f00a2394fd664bb7a8296fb32868901dae475bfdf0b66cfeb7661e5b734aa5b8689fdf54299a393cd85921e21d35bff5de824a9434378106c3d21f2716be4f8a60a37b64a429a570c1e19c7a5d2e9db9f110e7c0727a711d845a1d8ff3a8778852eabfb793d5a0054", "b6ce2e38f4d085b44603b812611bda8754025e89e65cecfe99c11b\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 29d887eba4aa52b73b5bb2308c0fe6fa78e6bd682ac7278fbe85cc8a9f9d009b2ebbe241ece0dfe5b6002921e555771ac5e5edebb8894be534e00135ed6660bc43e32fd3c20e8147f1d998d5291e877e075889a114b87a0051771a8c8034d4317e12f66d40955dd6d2e97eb2b0877ae0ceedfbe345cc10b5e6e3f41cf875f2600480c513672c8c0193d8f141feddc8ad82ff0fc3bf69663d386c968d53a4cc2fb82cbf8584d3c4d64280925737e1b6b27e60a443fbcb38ab7c4d14c81c98ff0018572054746a0ce3c6a004ec5ff3a827a140aeed96cfc0c2480fbaed571718b30ffde4c1de43667125ff7f68a5352ad76aa828abbb4e70dbaf02fccf4656382d4b7c261c0f858be7c59497823c892c52e9b2b8d57c70e82c8059345f12bf2a0fc4a214000e79a4f04ab7016c7ca1184a32b81243e44dae41d045933b9dae873d6b836d0b9c911616993eae95830ba8c5698d3ea722c370f47cade258cbdb67f1eb167e51c6f4b12ce7adce403a001e78092efc30a214939e3b86655bcc37d8b485d53b6e2ae42c18b03bd87299de70bf553a112e9e6bdbc2e2441c5072ecd2c74c25bfd94d7f5545c29c7a304be24be5ef61aec5ee4b119e971784e0189903240d2bec19ef9b39b528c65221649e72dfa36f7d04aa0becb4d147a33480764208623d0be7eaf7b466be492223d12c0fe756e23fc3b1212b4c3d257d50712c0385\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 7e977901be2cb2d4f55451fbeeee9f081b945a7bfdccd3e16d502a15b2e05b0e31390d996a74de4521104bf642f5c1f4b28775ee21dce345273b595a6ff7578635c888f9d3615f9852a0530b65ee49695e1d88fa542e3852b545d361bd8ba4f9d66aed3a7d59101dc971aeb3f47a3c4f7cab15319981bfda2c68a491ff3de9b8975c8963b692061c8a8bf3b5dd062d42e8a2efd1aad46f46be4e31e3cc397ede8203a3750d05537992f310c936d7559de5745cbbacbaa0cc8bfc549b5299662dfaf3cfb8a85c5c40e30d12f10b8cac0022b3bc4405644b328ae4b38e077cdf263ff9e2fe9ae44127dc71f6cff5487e76c51ff94cf6c28dea5771fee269d5c47a9bfe519ef6ca253677fb1a8deee6b51b9d6152b53405958e724281d374228c4e501937e5b7cc745b6aaca552b8fe6db2c346b7514831f4f0fdf724bba6b462ffac33f9a2b353ee8429307ce9e10b2f2e3af326bc79bda4a4a93d9d0560699b91a5afef136e1ae2af5d3c5f483af0578b032f62a5c65bba35c47ec5f0c662fee407c775ec8718b5ce7e696fa2f5cf2d7d553a7e1aefa31c7716762e4b2765e6b58f268576cee7143caf67cfd32e6759891d1f823fed71339efdd7ee8b3f7e3cc8c5655a86a6823114c14643c2ceff08b1cb448d8b0814205d2b565841899ed28f1a5240f914186caacffc0ee03a7dff8df4cbf4b7f587c19bafa9f33ef132d808\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 310d8328fe04b15b0f7e92ceb3aadeb1785e71cf8a2081386e2938a95f4fb2a7732d8c347ea1159e9d7588d97496cf8f2c89285e7f226e7572055dbaebb4f4fc4bde689bdf6e6c9a0ecf6b3f8a98be9459d6d8b86dd184061d822545703e2fb958345bdb03465422909aad9f52d45eae132c5e6776ee9b37dd5eadc8531b69839ae6cfa8e03b35003cba6f1df317b522eb2a62dc4ce5ab7193693aa3352110d7fca5a8d74515a01ad236a515bd61bf74f768b8b26cd61d03a3a9b3e635677d8edb4264860173a1fb650ca4cc4fadc3545f84d1b85fdbf883addfc6607c898765f9ad4c3a6e64ac02058be83c8fc006a2ab52b3945fb0291509691adbc95c67548feae0d40f72e71eb9318d7a17a64dc65260ebdd69f97b608dfdaccd8bf1d371084421ae3b475babbd4dcf6367e3bac835190f2a9b21258329dfb8930793f76fd981c7ffe8eca6244e6a546ea4b076fe2f99a47c8dd4241a14959f9ee3aeb07061178d00cea20d9caa337464fb104087c6a9aeb1ec2a78c9c3fdb0c764c5128f7e2bef352dfa523fbefbc4d897a86f3a3fff8d1c24f8b9c8199ca7ace330f26c883d7dbca66825d8b001023438204c5b80f62c6456f7f3a383c27eceb2c3da0f78c4a9a04f12117658cc8bca5fa240874732e08e3df609e63f82f899aae27f08860d4a02afa12b495cabfe12fc3540c200e4ebbcd328f05ac68356b36c4c41ee\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 132666be585f41004622ccfbe802a61bde0f8a0459044a658e98e8ad9adbbd3b83c63144153da14dea424b7adc4294fe52961e94703eb7945ded497de3e26d682d745c7a37c88d88d0240ae3f334dcc23e2a6e3eb18888b7f5bc2c17f54d167f1704cf1f0b726a5301e1b94707f8c982cadb9b9aa8a559bf2dc2730b17b425ab0c26e4816a7d30d040a4aa995981db947765e097b5e424e8805a78980e709e3026ce5373ce1bbbdfcda646df70e8f8f8536a83f0284d685e99bfc5d0b98efcec6246241ed9dd3a1b01ffeef06b647be2cceeb122fbdd140999b7cb00a96c039bfabd7225db666a10478b83495c1c9636391daf162feb08bd7b4a1a69e9b0d2f846e9608ab327dfdefbd89abcd763077996dbb0a974472a17a843348d67b9fa1f630c3dba8aa8edc0c6b56cd7f05445133eeeb27377b4442a2c1dbb1d7027ed3f3d2a335b78a1a138b423f05cb16db5ae8e609d2f1c249668f5e47bcd9e405d4a369299c17f5e1d24472b112300c296ed49b0c094e93f0fd3ab10ca2269ed94ebd31c65b64c6988b8e0eef4f0bf7fac04758798fe736d85eb2025a82ebc064f39e529860a05ec50a86d16100059da2596f7d16861c88be135d85bc586cf40425ff0e2bccd7993e9e0fc0fac29465db116f79c0708497456a5cfd8ef12a50cf1c5183e05fa04ef7a6c1283b2aa140d8de9b8f5652ef08df0499b3ab4781c0619e7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 28c4f829d3446be96b30b681e6de5c390996a47e1a3d8ab42a4d7cb12eb7ed14d2f30a66e53e526b0345fba4f6f7ffb2434dd204dca8277c906b4d3d96862697467e33eca8ccd99f6e4ad1224a068d5bb405c4dd3cb3a18af3bb52b0ee49a359e47a84c5d8f5bd9c0ccf5bf0fa147af08ba92d625da26361ec5322e7aa2bd8f2c015efc99142858cbc77053be48a76de6cd665936efa7ad555860d8a6ca836a8d82aa179e97d5eeafd63e00a79ec614087a601d31a41dd151884d02c9ed14b93330d3f9026162b5593ffaae8ecc31c398b23167720e34558702d0e64adab0486a0ddf92e33c8553cb7ef0aefcd27f85c1fed5f9541f060c0b5d8ef2bfaa8537cc5b892aaa9c10237e9c3de2a57ce3722d36c8451efbe7a6f13e03e3fd87fa549d001aba5ce8cebfd5e171fc73243a7d6093980535351436175ebca6ccbb69f77d902bbe1a7a42d7d73685bc085bfe6baad593b92def6d419b500a864a7840f980ac3826f275c269f2ebc1186de6031b54f094f318b4835f6de0b460fa87ecfbcc7a1ff512db05c4db55b58a9f19f7e9e1e44508b2facee44c80911467ba8e561ffe7ba0600665bb2f957f80462f5490ea6b2645b27fc035215a3ca465c0616108b5e9ef246633ff8195c2b43c9f2a0d5a4feb1d5fb918e761d175fb6fd826874dfcedf8b4a13b85e4eedba6f12b7dd670b47b3f0893686880b4ca58ee05c1d24\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 401be864d1a7b598cce9822ca99a41c4c8c3ee4421c6ce8f617fdddc4525b8b92551073d24b40f107d52bb3e6d4f9ccc9f857a49e3ee5389fd7f2140fff2181773f8badcdcdbf004b0ebd00b8732c118bc1552c14ad305eb5d02e0c75ead4ac514ef866f68814b131d94d7f4dafefab4f9751c00864f09e840e1b1f6b96f8b7bcb8b2285bb959355d8f1843f82166db5986be2c6d82bbdeebc45bf944b47ff35f7f6b97fbb9bde65d138fb7bf1e93cb635a8b9b2ee8b77117225a193c0b7317a4d28f9e1bd925c43df48629674f37161f7ee36ac41324ed0b070da7159b19046c21d6f2e850dcf024ce3c5149e4ce4decb467433f32cc5bcb32e48b2f5bbf3cbffbe002eaa347b68d5017c8d0d4bb0be96b4607ad1877e7fca38d52e5b88eea511911d9ea1cb4fe1c89d7d786b0acc3a21f344b146c8da86af77ba17526d5a00fd43c7994179841088587d184b6663b89702f7c54f453a698efb1089562994a6908c41e261daf831d3deb5994ea78aa415648c9148cc0490b5cd756dfdc205399d7d111688f501834e8bc51cc92859f0bab7fa86a111c78766a0388cd009ff8591b3b81304eb0222bb3362b921c1df0cfffa44027d444ab1d8c3c993841abc6ed49c96f341c2951a3c23c8250addaed803239bb494f8263ad311a1214ebe36a0e1b51eb85b9a425fcb6b8f178e02690446290af6fe01c09d5f4f9b36eb40d65b\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 7f535a238cb7c5b93031a9397f139bfb2f373248f05c67528e2ab5db915a413b99734f6131452d43c82b82289565a6b9a601f5e3719e0fa0d44add201b5b2dcbec7925a4ed7dedf4d3886883db6b6d9b56d3391d9753af4872c3214cfe1055968d88940a3c3549ab27b22f7e56e7812e1ac1963f263e6a574d5f95296bfc1f34ff9cce1a7ea7f71d1832be55a18a78629f15ac9970797be6505dcb6f2a07f67acad1c058be5ec7accf2daa109605c83a5c928423af2bb802e787cc7b35717ea5ad221bdd0866c3e166f258976a660fcd923da605b11eb416b2ac80a42fb12d8fdc8a2152aa145035760c2abc4a88b3f0d96e14be3b01a2a7572095fb1d0f0df7b725a7247fda5afe22e29c0bf543b3a396531dee98c852c578e16049d01663fb57b42636305283a5f184ac11a0d4e912bb3da0913a27a515078de839c8665d9331b737e5b86e4cd7a103a40b73c9b64e0fd3d0d30b75bd6de1f6fcd05df200d059a19ecceccab7836970536942e0f7b7445dee987b47c34f89cc4de829109bd3df8f695a83714ea81b7f98f38006c13f7345b3cf1b1bdd70462613844b3e751cf4adceb98a6d95c63b2f245e5721c1d5f5099bfddf28ad796382c325cfd08235040572734dfe3312ec5d5a1aea0665859d00ec81638b60780d40b6fb93daedba0ef0bb8854f6d71261c6271b9c6e6c44689818e805d9bdc24a693ca1d83c6981\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = 956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ec\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = d2e97c8e52fd77875f7e7b1e6771bf9a3498396e8085a306960696e81ae89c90a3464a3fba4b4278d942f4afba6dee4a432186edf010f09586bc4728e67ecf9ac6e15da13c11a555581328d8b0db99ca25b5a31063213908e0fc203083daa5ef1bfc22a497f04900a32dbae8af18a2066b0c4037261724c27e09506513673c878be21c47f6384c57459cda2746641eb741a80980e3aff548204952b5f06912b96aa5fe257a2985f4050d523c46b85a99bd7b77e03c46d1e3396b31a96007b7727336e68a6fd3bd188162e4509288df1fee129ffdd203bc68777728592f0d9bcafe47ac17c42b9df69b47b14e8972b4253caf74d03c5dd6d027d4dacab27857329fb3879e6e61499e565f7e94a185f9ff7eb966f9e6522af10b85b3320d761f209902c501e03d0dcd8c795b7aaa67969bb4b58eb4bd09db6a3cdb6410533ba5896b134c567255a9a3930943bd98eadce1e6431b4093cbc8b2b9b4e0ea79e07b7beeb84dacd11f0aabfc4e779911e228237f26bef2536423c042901b154a6a9aad61dd2fe182fd9d462c8d49d7dbd7a2eea8492fb14131a400397036c248434d90e113afb4bff3aac595733ce93dff73ff8cd8b3e3a851d3465abd87118a0d40eaab61572f6aa9bcdaad2a885afa4724d8e3a1ba29286759deb5c1fe3512235e846e688cf325a278d94ea82d946fdf0945d9ffd5e7fd507bdb7a31e9b79752c30f\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 00003d8628a19ba75e418329363a074d5992a80446e9791583095c23ed66de5dd41c94db742324edfa2a8807b6e115460e48a30898c1cf94d88edd54e400e448025e44d35e27b89509e4bb5e73b5dcfddd38939180b69ee551aa3eb74cb3b4320127cbd77fd51b28da7c74871e20e5067ac610053fefed9cd4599971e219849142dcae66ce97d13c937f8812d619b6fe0df57abcec358341f82ffe13827fe7e8e26c1030f821cb1d43a8787ee48033f4f11c901adb48e7c85a950b3502fff2f12695df04d55e1c816464a636981de537d1b3e66598759c8b38e1d87b9cf69c752982b6b54f2398f7658ab446c12585975bd3154386accbc9b796abf8a1c4cf6ef291e9cc519bfe2e09084a20a88d1f2243ed8d21d199f983df56d8a176603a9036a44c175f1417b7d34ea95c32993c0cb6a029edd753c10d77944b666f3fbfd743adb9e6b60c06e83cb51ddae3f37e3632e4c2b547580dc1ab3c7c94c6f09226dca4884affa94a0e119dfbbabb42a85a516375f767dedc7d1e0cffbfb44ffbfc7534cf619d1f926b0f61ddf2dbb8921e9b27fdf9cf52776e0b2adb781a5b110849c4600399850bdbb155c2523862f61fa84bfa9362cddac0a49e276c01d31ff4ee6646d914819ed75e7395e04cc741a0d7f61503d940d0ebce7888ded00facab381e912fa737c5d628f820650cb9b867cdf17ff60f145fb2c107203fca793503dc22\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 3d8628a19ba75e418329363a074d5992a80446e9791583095c23ed66de5dd41c94db742324edfa2a8807b6e115460e48a30898c1cf94d88edd54e400e448025e44d35e27b89509e4bb5e73b5dcfddd38939180b69ee551aa3eb74cb3b4320127cbd77fd51b28da7c74871e20e5067ac610053fefed9cd4599971e219849142dcae66ce97d13c937f8812d619b6fe0df57abcec358341f82ffe13827fe7e8e26c1030f821cb1d43a8787ee48033f4f11c901adb48e7c85a950b3502fff2f12695df04d55e1c816464a636981de537d1b3e66598759c8b38e1d87b9cf69c752982b6b54f2398f7658ab446c12585975bd3154386accbc9b796abf8a1c4cf6ef291e9cc519bfe2e09084a20a88d1f2243ed8d21d199f983df56d8a176603a9036a44c175f1417b7d34ea95c32993c0cb6a029edd753c10d77944b666f3fbfd743adb9e6b60c06e83cb51ddae3f37e3632e4c2b547580dc1ab3c7c94c6f09226dca4884affa94a0e119dfbbabb42a85a516375f767dedc7d1e0cffbfb44ffbfc7534cf619d1f926b0f61ddf2dbb8921e9b27fdf9cf52776e0b2adb781a5b110849c4600399850bdbb155c2523862f61fa84bfa9362cddac0a49e276c01d31ff4ee6646d914819ed75e7395e04cc741a0d7f61503d940d0ebce7888ded00facab381e912fa737c5d628f820650cb9b867cdf17ff60f145fb2c107203fca793503dc220000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = 8628a19ba75e418329363a074d5992a80446e9791583095c23ed66de5dd41c94db742324edfa2a8807b6e115460e48a30898c1cf94d88edd54e400e448025e44d35e27b89509e4bb5e73b5dcfddd38939180b69ee551aa3eb74cb3b4320127cbd77fd51b28da7c74871e20e5067ac610053fefed9cd4599971e219849142dcae66ce97d13c937f8812d619b6fe0df57abcec358341f82ffe13827fe7e8e26c1030f821cb1d43a8787ee48033f4f11c901adb48e7c85a950b3502fff2f12695df04d55e1c816464a636981de537d1b3e66598759c8b38e1d87b9cf69c752982b6b54f2398f7658ab446c12585975bd3154386accbc9b796abf8a1c4cf6ef291e9cc519bfe2e09084a20a88d1f2243ed8d21d199f983df56d8a176603a9036a44c175f1417b7d34ea95c32993c0cb6a029edd753c10d77944b666f3fbfd743adb9e6b60c06e83cb51ddae3f37e3632e4c2b547580dc1ab3c7c94c6f09226dca4884affa94a0e119dfbbabb42a85a516375f767dedc7d1e0cffbfb44ffbfc7534cf619d1f926b0f61ddf2dbb8921e9b27fdf9cf52776e0b2adb781a5b110849c4600399850bdbb155c2523862f61fa84bfa9362cddac0a49e276c01d31ff4ee6646d914819ed75e7395e04cc741a0d7f61503d940d0ebce7888ded00facab381e912fa737c5d628f820650cb9b867cdf17ff60f145fb2c107203fca793503dc22\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", }; -static const size_t kLen293 = 50963; +static const size_t kLen298 = 50963; -static const char *kData293[] = { +static const char *kData298[] = { "# Imported from Wycheproof's rsa_oaep_4096_sha256_mgf1sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f049]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed020301000102820200097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f0490282010100c3c677495c2bd56619e44e26140d2ede0037409b81f3a5b3886a0904eb486140f43b8626af13d14a33918eb72b786b3c9114f39017871528953c09104e1fd2d36b725388f54ffea30373077895a6934ab174e55ca6a12c21923a7b775b5ffaffbd813f9fb752805b016a5735b883c639fedd55ba2e233a6dc1673063d8487390d1676123544d3def177a91caeef98b13f38860474e44993d4c6060926d878a2059855d0de1c794ac8dbdad655fbbad20f152f15c73b95ac544cbb87b8bec8fd3c007ad09d76ae22a5e993302aa72f11deb265a7f28b88976af5d0c912d97b7284b1783c5bc91a6dcb7a9b97fe53713965857742b7e4032dc5141acd4afd4771f0282010100c357cf685f9b8d4e59e96686f7b8752f0a982efbe6658e6bcdb615d921f5e7056882825347455782d7bc78d637e17e0e6810c2136ad81b16cc1c81750785924616f2bdf5964b26c7fc50fa98fb67b746b50812705b379f5deadbd11dcd2fec7b724d042aef25cea2eb37f85b7554d7ad49fe5f47737ff436bded418507f2f175c695e324fbb11beb0544a7a7cb3f07924e291b5c8ddaa6a7dbb07e23bce1960cb52b9000d3a7aab1f58e3c750b6d978adf3d085ae7693b7e6a46cf6dbb6d2ad981f4bca5d15e0962c39066a9fc27985b9ba1f51132355792796a5dd847400804f98671ee4899050bdc2e7872ce6fb2b78b1050436d882425ee0745546a6a1c730282010100a6bbb5460638d2b2f5242aa6657760cdf3731b1415d5f2ee77248f6fe00e31bdc70396da054ba47844791809c9fcf19f90943e671e928e23950d9f4e82aab9bc138b37b7b1ed2219a54b67367c8574762db237d0f39cda5ff110dbac286712f69167ad4f122b3263cf4dc8de58b9e9ade4f08e1d5543ed74223e06c9521f4a45310291892c37e8a262e5a19b2a71decfec1dde997c00125e5158d7867dbfec9466899d59c04b60c4a0a6c5314c1a2375a5f194dbbf37422635d426d719b12c41140fb5806735814ec268493861002977e8982e8493a2ae78251be32315a85b75f6961d44dfb7505c34135987a2288907074fdc015ab1c45f3cd8e91fee6bcdd302820100178cd58f72bf5118da141e6d351e42da69ff90e2839348c94c62a05dae0f744b9d9ee6515ded4930980bbbd1afa8fac687db455a8bee03ce0acb80fbf7ed2d864fabf224d27abaf12f45200123860c7d74c3c55d5051f35fa239e00b24ba9b5b029bb05df0b8f12189141558095c32284d1c62a63d917682c700fc7e2a482abe1533eacf819c878e1cf37af6eab4ed97c0de89d2edb327966310f31421e85c6ba9c7d7b391d0cbee6a793c66abfb09630fa8cf020e960c3b205aeb15029c95a6e558f90950a572a23a8b852507264ae2f86f5d1936a161ae61fee5d3763b8cfbf48d35dd1159895735b350881ec52e999c255a57d6b3ac0ffa935bd36284ea6b02820100484ad86e79415ea3c78af5f6c807cc99decfb14ca1e80c8e6a1ef00ee582d3d180774236a54ec9dc8dbcca51f4da4379cf634f3a07cea4b7748d7b5d94cacd4d474111f92d19f3ab5eb4def8dba57b990844efd28d85344666e283f5d5fb0e6e8d96f07411c882bf280446e49b3b9b15218fc24da34ce8f01e02735920ef48a343b4de11f99b26547a251afa7aaa69083c421e2447b1a989d50712bf8fc35882b63517c7c39843cf67b92645b68c6d8f90331600142e6cb97032a5af6ef7c20f87630c6b25dddeb57f2cc0cd8c8a0661b5f40ed6632989f5d40f33bbfd9be09374483606c2cd7ed8b5fcb8bf3df1f9368a13922b1240c0d25792505b857d3e8d]\n[sha = SHA-256]\n\n# tcId = 1\nct = 48b29ff276452ebcaa7f74bbfefcaa0cbba598beca99a178594baba98b126b2679e7d64876c8fe07e39f1f3fdd5c4f664a1ab314bcb75f1e906643fc4c786d66e90cac12b8c23aef35c4727451cb033d889e2a30eecd2f8d5091a6d52170ac6ce579c9c49701461185196aec6a380e2504833609b359d33a436f2c63bfea9a70e803f06644a0ca725a4c5b9b01cec93c01cbb79f9a17c401728325e17bfc9750dd19cfc127b9dcff8951a78023b9e30ef7ab628084d04f64a4be3b6d7d3da9d0a94d692a4cb275a7f509aac8dd2db4f797a374aa880c2d646d23760c51f3e0c00601b4c05f6e618372edb7d3a6f5cc9a26b5095adbff2134450b1ba238dbb9b3952f4d055f6d486e27e8cf6ff773896a0fc2991fc5ee046f6e81cf948afb12d669cc020b3aa3f14a18cd63830964c9662fcd3860fc461694ab3c6dc4f85fb4fa527f77e944e7c13b94c23fd0fd517a30dc00212d15bb25c00d48a36db8bdbdcc398fd6b1d229c762f7bf6e99d5452f69b91b073d866884a6e34c4608ee1df0733e592e339eedd59554e85be57c0a9689b69fac6e010d35c9c823a37f6f854c5247db77d54fd784ba82ea4e3bf776413376b4bae99c02a0226abef411f1d56ba7da24b72a1a5f74ab9d7431af7fc940d2319ce81dbc51390096d42a3072291ccb44f3db326cffac084c6a73c0b92919d6039e0ddaa9fe8ab1d65aff8b22cec120\nlabel = \nmsg = \nresult = valid\n\n# tcId =", " 2\nct = 0788a1201bac2e27ee3c704ab8172cd45416bc353eddb23477841fd6e13d87b9926231315d26ccb3694064ed9c52ecf401c9be16f4e70e3d7c4eea6a2b20f32b53e94c9d26d10e60a3fc37983c4f63b46be3c04f66305c4aa23d409c9875ebf238a1d999114c9ce8644e7a93a8caf0cd006be19164508142b36000a3e3a3b8bcd445f9193ce9bc2100b4364d4c88cb5001b8fc6314cc782f469061cfa7cef3c3450121c8de529bb8d41b1cb6975698b138cf9e0460b15f10baf335cb8d680146f801de67dac74b0311059252960d59b734295f33c9f8506b6940698fb0467e746240366a49da355582831cd2d99be95057e9560c95f86931843633119218bfd2f353ffcd64983a5bcd4802acc68a0064f9da51d585c1e38310957db7373b76a3e376846614bc9271d2045fea65a6eec059cc7647c94318166fe53dd19b6e8994caf8fb0ba888f0b9b89071649299f95512c3b459ff6e3b1636c51213108c3140ce88ff377b3f36da31e85c46d5a479ddecc07899a5c175818881ea30d9a5a21b3abbbc1dfdfbd40cd6849c1312c4a89360ecbd5c1fd90c759563b0700a945bdc03a0b7888b893ed8c50149983a7e18668dcf61effd03ac8cd9d730ee55a0adfbfaad873b4b7e1923bf839a5e3df9bc634b15076379de0705150f03897142daac961c8f99a5dcbea953f2e29681546361fefa495afdb116f789ebf9815f271c55\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 3ee1f8fe284d3b84ecaa5f48ce36661a7842cab4f4aac4019e0e7e4506f1baa27539e468877d1e41bee136782ccd335c23640316a24fdd13e9257062fb40f102e0b482a4b589537d0e417f3db7df51c7f8a5094888981132fbc8236b79f2463b969e12c621121e697445cc80f7d0abbb31548e0b732b014b9c40b4481896c47d4d6194346f49fb8ab3c69e3a9e282a5ddab98140a798f4811b1dc4f5903f44cfe029b7038ba28d806bbd42213d5235180f33161efdc80bdd1424fee3e475dcb353f79a1fd23097f20b54afeca8d2123830e9a706bd6d827be20089a464d2df133a631db522dbc7ebddb06125c112644cc41dfc1ba6a924f7b32fc9a315626f6157aa9fdfa9979a73db2f8ee054e534b4f00235daf2fb967189720f8196986697609a45e1586fc6321a2ccaf745bcd99d69135edb45734fcd27698a87b8b3d95f426f63c5addec03201fa33ac224deb25c1cb5e1e32c7c0b895166ae10cc1b9c270a075619364650d78a2119816b17d808d44d2169022cbc5cc64f80b042ef6def97eaccac3a45c497bf2e43d823c1468167d3dc824fce8740e811c21d3e7b2289bf5c09d722edb94bcd7ac47427ce90c944279d898cd7d975d6a200ebd00104238be33bb85730c0edbd41ad4106855567be674a73b325e508483cb897cdc25aa678f0379fe121795cb858527e72c8a62dba7612104dd796d538d4d9ba80277a4\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 0122a411f6c18869d9d071d89fec1f8d91a658d644a5da66453ad0f0fef2d07146e6a96c87dc4bc5e2d5c65cbf493289d4c9dbb3ee79dba765c71d74d8f0f0e9342f39e8621d791c813e004383fa970001c72a859ee9d01ff9920a650cdb08c11e95df70fcd3bff1f21bb4838a9534f815085238a9f860c27ad6e3075ece222d7d035732c4ed6d4d4fbc64d153da106eb58676f527e7867a7c46dd86c0f55451cfd22b07897f84621765215dd8e2814ff9d9a9cbf828d594c16ac10074689ee3472280fbc14c5f723286f2ca0f15f4b91e25559e77c244be757c18ce7743fbd0151419a1317b82407ee16e2a5b970a660706d0b4de8368ea542ea576d1c0dbcf03e07f646b42a78e430a39eaf5e48ead2d6d0cb360dbd6188d364e4a8e2b0094c698adf864724dc7098b4dda564d16edf775060eb7d26c15692878b93af87c3cf79027ebad55a08ff9f04e863d3d56dc9534d48edac17888342ab8c1bb28d8681bfae21bee0139c16ec1f6a60f2fc4927556a56c036a13e27eed7b056d5e92e296a5b7993a83f788ab0f943b56ab2622b732d717b2a6a46ceb5b9361430c8e8cc05dfdb2af949702d03a1a2b438e1612293a05ded6733e95fa17f24a06e573dd722175195e21f1f5a408ad2d72c8cc788de6d7d02da851f64a59bc64fee89eb1ffb06addb5459871a4614d6652374ed29811d3ecbb04a6646dc261e8aac5f109\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 01f290bc344f5b28bbee4f37d113bb1eb5c9ab3a6e735b9ac13ee65aa42a18ac22b51c684a34b969de549af295d48235bc0c46bad9e5ceb6a0ddfabac4dee6cdaffedda65556e951ecca0dcd8d1ab708176c1d665436ee2e3e9810dd2ecc508b232b3345708d3f2acd95727a2a1f8a612da88865c39652c8de64ac37236fbd0bf6aef4519821363e0be2391b7b0279605d193e4ac96caf52fdf1b71807cd37458f28bd4557f8c9b6db47c72b468f8bd643b8176bced97db6657a59c146b78389ee5d7fa3a463cf2d207b0cb68fe760b83a62462b42398ce7109b3d00b991f5ea915501b6c31d1d7a388b14a995f9c415a108542d375015bad8950f0be42f64c09eb54e39fdcea2efe61e2fdcffa740a71ecc94051c073c66e38e47f9f3161bc6b325123fe3c02ecfcd1d4b811569d95f1eebc7135fd7118cdda6bc24546b5d84622b796c289d7cfddf7d0f34705666b9263e6b9b8c070b28b6853c06fad4b8e538de222799b65f4efedd7d7435d3eb6aa30bc3827247374447ac92dcc59825b5b1e7c636f77db09411ca764366bf3db3bf39d1803034cf76cf59202e664f0cc0bfe03e67c83334196efc95d1f57385150212613147d149d4e6f4f994a544abd82f7eca54c8f8bce8bdff122079196014832547d1f50a9123ea130bc93a4c5ac43edcbfc4fa0f2804a31fb2061868f401e98f2b92a0d9cd2e260ac119fa06664b\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 185bdb913b9dee3ba4d6b27a945258beb43ae70909b6f5a2011256c1a743a6e2e14dad48a92ef6cbe1452306c5dbc77266590476febcce9eb6f64ec7e8d0f233749770275271e79c1980a247c0571dabf207b9d9afe8b6c3ad6f6c5b77c83f445cadbd77c043d5428acd6a55f6104c102240bfb9bd9e82d6db53547abc11537188ffce7d688b116527992f2501ae917f7aebbce1c402693c32ec29611afe7b6709667a65a6b38a6029a6ea884a7659353c29f49398de3c16e6d06e33dd186b14e7e04660c7d864954efe5c9157f178b4b9af46f12bf5fb083bbefeab1fc97114d45f08ff8389e93945afdb56a13eb3a86c64a8b33ee46349289cae37cb4f0b9ddbc306464b7574dfcea969398e6d8720125aa72fa7513ce8cf11502444594012024345e3bc716639cc1814ed18d14eee2251d20464a43bd018a9243dfc8e1d122f1d84664bf1d7e2b63236c3991929fe20d44030d17be9990e11cebfd07836e7ba4e7fa960d88cbbd23859135d2e7359a85e99e1fbb8e97ec736bb9ededf2eaa94c3165c46cdb5e289fe4b243e8e25f3969a39b307840990eef3d8b0db5d515e65833fdd59cf83c152e06f9a066623cba2fbbe233541121295566c0f2ac6150fc0efd89e2cdf7b0972a5efb7302b078816279069ad2e89016cc82add02f9aaacbc26af2cb8494d333c6e33f29a9e237df6dfb5c8e5bd8868c3a66a02bce69e9b\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 7aa5fee8dd85b6fc0c75c86d72fe6c742ecb062a036bbd3796af044378669c2162f6f9c9470e1dc8edad8a41de37411b21c865c0d04a2a4a8cbae941258aecc1bc436e96ab7d66aa1b866e9b3018a56366eaefaf92a1af51d5a901900739eecf07f05748b76565e386efcc8a717f39cf0a163dbfd7b1b02d78f96c4688143a80ea589df83c78440f5c53a1a79fa7265f5e1c15cf8348b8b7abbfc1739a9fdc8a30e25c2081b44437935fdcd19682cff42627b223d796d1cd3437fb12aeb990bf5dee03ec6fe8f0634dc0545d0390facc7fea02b5609f0b37e4bc5f2a5e26868ac3042fac5589457b482bf1c144c239e2a96bd80a813e67d36b4e43cb89450289ab3fd7d377cdcaf9b40811ecc5aa3704086dce9a893d1b19d9f957dcfc283d0ff1a4bdd7f3351314bd5e10a22b2a469615feab35e9966e758c5c2742c35d42659533fbf50693dd1efccaf1787de3c7f66b8c0df90754ca851caf2341b9a7004a7eb8e34cf232a6bc0e993db274107d4d734bb996803a4b335e1ce32d0453450a6fa871430827fd49123849993f421084c60880e3b6e4d33771a1bb255535616544cf4c016c416cd8b9b92c3ed61214972e86a901560c1721fef866ea7044a2c89cc2cba85fb25df521daa90680fb52c2a0baeac9d5942c851fbf5f1e88d522e759aa342d15be1b72f9815c0debd081e9881fba247dd6858890fdedc8838e9448\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 339772930c065104ed237b979efdd87be944739273a3d76e38e2a9dab4a089307f236ad0477a324c0d5f065f6eaa3f50e73104e4e44d25fd5b999948ca61c72ee440e4b75ea2909617c41833d0f67c28de6ed499f3df084310babacb41dd8dc94b66622e7b9d1fd0f81328cdc451c86bb891efcb31c020b191598b36120a40942d35761113680911756c72b859bddc17993acf696a4360dbeb63534f4b8edbb8a633d1d649370ad4c46c51893071712d3ab165421f8f0fda893e4c988ebbfe22d2ff6cd0f289f3cb333ccbe06291fdbeabf19f77c4ead63bc8f316e95d1bf9f743fd5ffec9513c0a1b2b89211426d7e7fc386affb340a8a7caa6f17a9879fd9582a5a01fcd3a2c399967feeea1333f01072ff1ba1785d27cfc48e04b05bfefe22870d82369338b6146d72761318ec977e3193a5fa325bdcc4ef2bac547de3fd099ef4e83461b9cd4cf9c1d586160c52d9770060258792ade9ab50568281f1c71d7a886db372e0afe0a6a03b3d3bd24b9ebf1cc5495570b3304a39b2d57f94f282e7698bfa71904a087d57f20cb67a859a888a2828df1ad1a424f02b272fa7467555512050c3ef8eaf9169ed20d7143cda6fd86a110a3b4102ed8a74d176bf625e488dd209dbdb81b78d5d32509af825405fb87d5400201176c36c19a1d8b93b020400bfbd5ad7dcb2c0dcce99ee05ef2b48e191439fe990d0576d0d98c5c9602\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 84f103bc40d2535d3ba06070b9e5739dea918968e524cf431e4a8a18036d5c43c40fdda432b5ac9134a54ebc6914d6f54895aa24a0420175f348ac41d13069bdb443ad3dfd8c15c283ca76bd557060876b5e686e6ed9e090b8be9701dd6afbd650eb9032f5a331fd91ce85f784e20b4a20c998b94bb9e79ff8bfe56f67786ed76dcee79002cc5586d04b2e1d82b7bbb1998ae596d09aa3cc8c7293bf8c6a89c22d7220fc97f426d0738de5c06d41e9cf13db801180f3407448ac2bf55d20ecdec273f41dfabdad0104f07d7902905ec1d4979fe36d5e0f8940255817fe8f911cf3dc295df6f17de9874b7f754f08a50209b63e8c87302d78d5ea909b0", "ed81f07965e30cd58e877984067defb9599541a7770787fb738bcb34b31adb2099b19ec15e5f585c52d64ac0d3778ed8bd415fb08303ad9492fe1ece5cc3cf824465856c179c304211c7121e226c859b7b4951a833eadf6a6f29e3bd3c26156f5af69f61ba6b8dd42747f33056fc1c0ea9f941c397f0d57d67e7255fcad2b97db22be83f2661122afb59dd2e18b38019f1ae40d48e6482aaffad2fdee1b971f75a93a9b14062d62bc8639bf866cd70c4963bef4303da8d1708f4ed489ec91b0593ce8f83cf3609cc51fa8c0ba0a43f96004818668f403bf97cb37a86b247580a33595957cbe39c8766199e186725afba94491a5cc7b618e1ac76436322823bc3f0b44a7\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 0b3d6f1a7949a05d472e0909c4667374a87e291ca8065786829b26702f2b979ed440a037abd310da6c0eacf0c01f5b2b082d00ea043e9bd403af238a0909ad8302deb3514cf7710d6a7777838675fd61e698ff09d03821046caa15848cf3c8b1e70fc497e2c8d3639dfaae1bebc52b68c24b54f3f1c4dbd8691d05867a818b0364512d6096ee6a49de7aa7f17148de1f5036af74213df39be1639a1b22640a693163af2e061073e28e1b20f32ce15cabd1005ed66d4d4ccfb50f94c6a34357989c1e13350fb25eb75e5004dfc311babf755d0c007fddf9398aa9c2761b5415c3a1c25e1d0c883187ee41c669337f3b69e131f87c68360ebcf4ac53cdd7101c71fcb1aeead812b06efaa514fecc8ebbc4b339a3f8e9fecd720c2d9019885346d4b483418ddde6f99c6cfe67500ac3ef5c064ab2fd96bf3372ece582c02e3dccefe5ea8cd82a79e7922075db696c5aa712243566fb820bec894ff96d3e844aeef4416b08e023fe48570f05203cf48054601a227ed3fc81fab7e54090864c110d7c0333299839675ce029436cf78266441fb910ef46101c3378cf7d322b696beed85d68a74fc5ad8bf65d212996774a80a68c7d017bdcffbb3f6194c2625e5937d3a004684d3a30b4c31c7fe4c05718182bde18a444dc2467d87bfa9fd64fbf5d31919d4f33f6f5721bea0afde9f47170fc8a2f45e17f4711971572873344a14372\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 2049694bab04b950f76d997385c150446040ae3373d4f868e852cbc4047ddf2648523a963df01a9a383e8a8a47a6abaf900de879414fe360d8eeb36e805ba2821d64a536c7e9f3c013d72cfef75038007cf546bc418d5e612d2ec9a41d9ff6807f8a2def511b09743b28514ec61139abe25a6087348d66f18b0a80a58f7fd91d019117c3b223057b8229f07d22c3af1f37b92c1c7fe8f27ed23729926bcd1f8470eb84da9b8991ed03ed9420b029eac8fdb6c76142150d1216a9d0622bea7d168c8019cedb9db6b984232a97385fbbba76ee260b8712f805f8e1e6fc966c9edbb4836137cf8519961f2ae1134867928ab4a517f6c4148500492e5a70cdc756df38f55b6b93ab81651e6edbd434cbd7f41245cddfa884b5e6ccae02cd19e1714ac3537966a113ea8cdf31b73ab55935af37a27420a6b0c8aaf225ed93e4250392b67cfe09300596836050ca95f16f1e2913eb3118faae6026571bba1803c0b133c5c39b6d8e9db60470b193760efb1d229ed1b5f867636f890c96dd16e454ff3bf75c54a1ace011d8c5d85a0ea3723bb3461369ceae212f0632b50f0dc0feedacfe701beea123f7c2ce22173a1fca90c2a861769ff9bc7bffc4d04d5e8107dcb4a1a49d9fb5dc3d806a0aefc1622935230a617009831f58adfdd08426ac70c688297b89452581b094a21beafbe33547f68812433b41227b87855b205aac11c970\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 741d6aa34179e67d3a1174ac4682ed88991e043dbc2634ddbcbe2b36136b99a279116b713e8484a4d4bc12b53ace3d70c5c352a07a7fbcdca7158abf5def14eafcc6919288f84b315dadf12a105e306b8d452f78d5ff6d4a95705c66186eb3b3a112bb26c266d3b8262c00d7a97da919ca37bbab032a60a55a1fd8e1a2cf908fbe918fbbcd5065dc210e4020deb415ba02e112f098aff54824f7fbfb959fa23b411fdb711cce0e0925e8ce526052ac76769394fa9a57ae4eddd30e4c28d87473054af6f6173292e4047d668c3c7c6c0d1f1e5e5ae3dee7e85da43b0478d0d0a46a759a23e1e5e68f80562ef52b76d85f664868e8866d8d728793e0d4f20b5673dd32eceedb4fe982036ed1c7c930c8f711888c8bddb33e385033043c812d6f678dacb3efab547176eabb08abafbb521111a6d5bcde133fcb7a4f3ba2316d2f7bbeb4aff80949e759da76dc238e64fbe7d27f4501eba60eb1e4ea0bcf9bd21c23f4c2385ec0a8cc078f8e67ad9ccd605086477ba2a9cc7148213827f63173641b78d47c920f73b72d2ac17f7103aa8c8b3dd050b260a17ac760a3463fb7dd19703d6eba6cf5b1a0467b2691b46ead45cbd6ed0492528819b50c922ed25f2b7f4a7322bdf24194f1cab6507b11f2211090f27bf3a6321a7d2de90690968a0401c117e8165c08431a1dca9999d8167cde6d53d41d3dd8700892941c9a36aa4d72dd\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 0e1551fd4bced67cdf4a57e4bf864bfa05990c52542f86d76714e74606c4f034d8e79cebc72af64e9f38bad64a2ee9f9ad8e6b1674fbc8c0a8dad71b55d59a52689bf8dc4fa8912ec0ba8c8300089e7fd689afff6f33fd13d0da443be82080af45276f790d551b162dd1e2592a53578af985307251a07aa46470932fe1ac6fe031daed53fcf0cd8b542f24f6dc3f58b28488c80231e087d6b7f48d8b0629e450b75648c065b603290971708a831d42837bf8eef88e5233228af52766675a046af5524d3b79831933e96be6c737f958aedffeee151f0eccfad3e95ad7bc3102ebd4887a340471e9115c4a6186b1021c724c00322e79c2dbb77e29157b72418757eb07371634d436133517b20d54de645b49ed5cef79d7fd88cca5ae8eeacf2d086f33e9e08ab575c1b1d090b64145cd6b57793a182e519743c4a69c1369be0494c253de25618cb488cec77ba585e7a2d5b387fd3f76aef6f6f7811848610098b916d77efb486f42f85e011c962c521891e35877c392d190bb2a9ccbd60a8536c29a07033531b74f586add9eda8bba422f6d1d343d6577d9f75906169d15045cd012e1b9267aafa15f39df23f55f931d9d8793a9b5c3e93e077992cf32ad57ac46048b19e0576f4bed86c502ce1af168efc236c49fed9aaa9614bceadfd3cac500628a8be815f074618d7e96c5d9b23e4139ad155ce9db36885f72b9ee1249e069\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 0cd65cb5fbf66fd36a61d7c3577eaad17191db8ed11ad0075fc3661120df2accbf0ae26da7e52e6aef362c2ba11d0743c4672a96f5e67b2adab40902216f433bd70601099563d3e168ee93d75f3db88806cf3d59017f5d2c6da4218dd9c8fe0be177ac0093e0909c34245b86cc1b791787e9544b9a874eca413895d81710df277837f4a598ea9f57ab8ce38f6a960646abe9f4ff2748d994ecd6ece82788ff368ce6d3989a820bc2d51c43cb88b3f9106b9ffb01da520514e7a03c605b4bd10d706eb322b67ed75072423505118efe727496516397a3f5ef9c77515d391e45c7d589a1fa1eeeeca8e9511890ad1a5d86046ddc72af6f6f6e08f87668567cc67e50b20d47f30e41665f192efb99824b603012d24d8c9e14f3f9facb12baf09b7004d558c39674c7e76f26bbb33945f73264a712e09277ae0e8ba9f208971a207dfacc8c5743411a591e4000b25b263ba78e7305a74afbe58673f26b8ed7b8377f7ca627839017b64d20c3940670330f6b45938e382d6d1099301a4b0017cabcb04d2358eb62634f121ff426e39c512bbc6539316f1d16da7b4ea3e203c2cd5c599080d1b3b3eda0fddababa6b402ae8ab932185a78dbd47a69ba9eee993646670d07bacd79caab4f50371f0b28e23045fed617c632dfa694c4028b8724733f30606d57502934000a6b95068805f70d44576a039fa70db1de3d1a001c6030913b7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 16bee7581623613fa6bc708e804b11954ee5578e6f6f6747eccc52b5bc47c0039569ad2ff4c9fd98cdc54404c50d404987cbb74716d769d70045361ddbd27f2c0e744681a2177f4ececedf39d90e23461dce3353999c90bce6b6b75f2c73cb2c2bc6220cc652196e8555495379bffefee61caea6eb850c0132e084897d9bdee7aff74da1be6f7ef2b86bc6f57494565ea93c6f3ad1853a5706acecce1190bc97bde071559d89f65c2717c31740e176c2db442d48c1780f65230eed8b498da2000a1a12ce4247221e68231e27d8b60dcadb2f50e0a9ee346e2be5083d964a5195d80d9b898e18ae88ffa73f690f2598b45327875278135b4f5e7ecfbc273848e1f1fe5504cca4a2c4a7fa353a301c2b6ccf0f2df7d0ab439d1e8629304f63fbdab4f6d28a84c1d581d3d43ba64408c286dbb452d34a48644271f23841868bd3462df5e4c0f1cded8e868c96cce995b13308339c49a0eb16bf5ce9493812ee205dc8b3fc3b8330895de3389895f162079c72019cb2c936cdfef9cd9f413514947e0abbf440db492f8b8b8aa66522975d674b0f663b0e24bf826c8799b850cf6a80221414eb8ddd2c83f824ee4d4db6565d07b46d8ef26123148c77c693f3c16d007b7103230e378a428dbd16eebcdbcbde38910984b10df5a3f6f9e6204d462e5c304cf5", @@ -8131,18 +8441,18 @@ static const char *kData293[] = { "3f4dd2f0c772cfe0ede15065b351c3e0892dd065a0fbfc35e6cfe47ffd90dbdd465bd7ea500b73f4981f3edd968cb5f9d2d1fd5abc1c9575ee16c263ba85d349f23de634801c2b64769b375e7bf0d098890269762840fa2f6084af3d9276a030b975a42c484d2be534264562b4a3a96d8fc7ba0b333d5af7b7a218fae0f23d21567293132ba3380de85689a1e913021a8df624e80c09d9c0e039544dcf6233c76071028ebc67c9de3ee674bc6837af70fa12d22c6f0d04f3060e2acb6700c3cff134ab90c2e3b1d7526b2fd34f8d8197a2c9e2727615732b14bf4cca0d38ed1dbbc357e7e2cd994d8deaeac9e6f44f63cd0fe509180540b5f5e85431d78a2e1703737ee082e0e709d55b27a0734584ae1adfbdff977e7019978abc30e0a9736b6b3aeb8a9f7fe1843c1611a8c77f4b92620b8167335ca222b44f3b\nlabel = 8b64ae26615eda5dc0a47b20b4f2a398844e7b97a06abd28b8db929ae347a11800000000\nmsg = 0cb3e2a241c8977bce02b885deb4bd3e707e1e950bd20d6573ef1cb28e558aec1c4064a18a0d656c7649d5412c422663784f9d24f4ef4ce744446a8e22634a4da006497c93df79b1a1b35d3461ce7ca8008dc4e2b23ca9fb63f0e1819e978ab95a173127e3c347ba33ee597b269c39983a018b9b79e596296582fae18da8c38090f1f775cb3b12f45fc33dfbafbc262b2579d93370542c2e67fccc40872dca0e2c177a349278d9a04453603c7c94a818541a586470c53302a4e0541081d11de7205c3bd97987db419aa7443bc7256213a8e046d1160ca9b77e1f10d134d43ad288367dadeeb55633221876e5783214b7c454e9ab79741b8d47e2d2f8c8ef01fc3ce7cf4b3f18068cdb386ec0a5734614ffab0dbc2ee1cc35a2cfd2e84426131c78630b4c8965796691e84f276ad55c41ac6d9d66b320580465b9d8d5c956cd4b144874c3430b4bb9e3f9408b420f0dd6c86918f85197e53538dd5e7ccda27d0cc62d939f394f7b6acb0044674ab549f087b33eddae5e49688e02e1ba0abb60e28926692de9c31667c147a8058b6db9ca87b217048d621b8685a645ed87a5d1edf0027a4eb07bcfc874987f43691f3e82ff028f7052b66610ba4a02d25c49\nresult = valid\nflags = Constructed\n\n# tcId = 32\n# em represents a small integer\nct = 93ebead3c8001ed15efe1648c9615db880d29fc29efb069671fcc0d5888f6ba3e2784639e6e3b9028614603d2f5180680aca911f23c5cb3028ff616920026d65afba45ce6e8c708e166e11ba2d837e4b120563ac783ef6aac5baafbabd26dff137ec98971ae892040f9795f63ce03f8df39ed75ca38999476088a21a7e32bae2f446e8a7ff5d6cfa78fb3635e9e301068d0bf53a36d66f0837f69de0da108f5c43caedb8136bcb9716014f09a7eb76f28761ed675447fdc46bc7ed2993a408e047839ba94a7698361b102c5e22b091ba5973b82d4a2040cfc5bdcc767faf5479a5da031d1be8242f6b1ff9859cea44db3074f021a6894fec3b637e320fdd4a03bf1b58fe91d5f8fa36f41a1c989e52e5c7b2dfbdce9a6dfe75d95977fbe533a753ac972e92388351080eb1d564fea5f3eca118bdb6004c0f16ec0b41acb7dde8708f65a8cf3af10ef8d3e9afdd314fecd3d7d4d480edf892f5117a6344cb12a2d39637d4d74597c129d7713dd878eb34f6f7dab71e71efce02d17eb008d370b809b31202cdbcc15f437cd362e7d41a1aa2425ee578ff8c19e6941a79d7bafc87201e819e1fbe5db1e7148628806b4ffcbf0e0de6f4632452d606122899452282ccb9b84ac11c70943386b6dd0ab1a5707bcbcc1799708ac8b05e0006aae87dff7c5c9b167f50c0fb6cba16c7a6e3882c32771059591abfc5a7cd53224b120ad1\nlabel = 2750512215b61f8e6623523475aa61c48ecec1b5ca09ea23bfaef162984dfce100000000\nmsg = 88ee82a2ed9e2db05df7d835b69113bf60ff23efe64e0bd14bb064e197c03e75f9730421be7b35770bc6dfc660b477276ff0ec936a3d3cd416f69ce8d10e4a4c6dc855b7a9e2bec17e3443ecd35a567fd0a1ab0fe027757a4b8c90c35d3aa26e337b99d6a1e0333d57e997a16a65d75ebbc8a06eef396d316ff45d066d6f46d18e68a423b8056ebc97cd8dca44036864f73584872405f8935e33a1247f20957f470445c36617087ad5260395f5f2763dcf4027dac0f95f0b378c9a1eea7ab02092ed8b893257615aec24a7ea9ce8edffd082972517246dbd9fcaff3fcff191cf23be27ce41c97b77b0e6d0add28848d0453acd8fa996b46edd975934d449d40203bd2bda89dbf80c12859c00087d77f58172226c065c8a7a3ee9ffdb688b8134a06216335b1d5ae67b5ed44c48c01c7fa54732478a2789be70e8082707395fdad5bf7cbc111cec0fa6141d8107e962e4c22c4cdba303dd692d6ecd71b1fbfc33487b33be2fc6e261914e407c155e2af7a459c10a1356d679a5a338528a283a47163656fbcdb748f5f7e244291f6699b0355f0d3d4931bf6c258f29ecfe69d2d01cb1610ddc40751b17fb275c68c899782c43d1a15950b53dc42c556b0c61\nresult = valid\nflags = Constructed\n\n# tcId = 33\n# em represents a small integer\nct = 054309a578d6ebc75b500308a2dc17b0f4cd5f9c1b3776bdd084f629eb6cb96d419a9cfcaab5e82908aab40bd28f1c622ce7b5ae40487aed8b56a71be56a91b6c3a7059b5cdbe81e5c7d19e2b63fe3c55833cfdf176eb5d46b0b4237c4af14eacea75a53dbe3770d934d5f8fab4f3ac1222264768e12f4fa4e4d23b3b2cf5fa4e315fb3da46fbb821456e17873e7ff06c247be7feb91ea4d1f7fdc07d351f423a4d133ad4ba543c9eba67b06b9c023b06c12e64b3d9ced33192945f630509f38053601a70e9a1781ae3688db6926a65697f41b5c51e2d97cbe293d39f270bafc0ef97920d83ca6a8bdacbd4ad1f5ff7e6643be13f2b6a7826bb03c87c99608a3ba5088c5703148928b30fdd459d902af837a8a51141a10b7eaaaa47a5458e28c10c8c92522efccecf7961f9345b4f9e00fe08c1cb01d0780199ce25edac27918db9d31adc7bafe055d4b76bb6f6b92cfcd8a51fb57718413e6ec3b7b2fe695baec3c0b15f63c91cf1f2d5a471e83e8a6ef73db86dd44c8284e0f6beedfac5d50bc2a8985383610e388d4902fe179cc3eddff4e24e2d4585af1dd5027fef0f6544780d1b43e3f23c04db2b00f3078986124369b8e7db5295588d3ec5340806229069c50e91c1e5a63446ab7c5f7245df2e3995ff5e39d4f5c4c734fe01ef23371e79420c43efaa0683ea212580d7e4d2ab5f3cd988a26ef9b3bad91571df86a97\nlabel = 0e5192d581dd952ec3aff44952004636d015ecd7faed33c005928a26bc0d30e000000000\nmsg = 0d9c1280709b3d2fa20196594cf21174401bd42de9f550466a506bf1f088ae58de149971a848fc31a4471bc8500921a2dd2c5a642ba523c264e5a1e0571e960df2c7d3848705791fdd05d6518e92034740719e5a25806a19c9fdc454076b150538dc7e949f3c997c17c1d3beb28393b00e4778c4d373e8b7e4acedce664f9196a6ce3e1e2274d793f58b34a50379bbba57b221f961c0b10dc5af3fe6d55e368d91357095c0ede3cab024f4d6e38884616f9e9b8ed2b185036d44b54e3e26d2d84b0f8b82f401a3bab3a8e2fb63a1a7a29e10f821762ba1bc904a619c4c82ddcb34c2091b8326fa83246ade38d516a3c04a31c9a934015ba0dbe6cf992477c52e7d13bdb9fef43230fc19fab553c04337ca331860a1b1d6af4d99ecef5bcf2e28f67a4b0182156da9e5e7b9eac9e8caf6fd5a7463e31403d1ca14195a25e697e0b8b3038b2ae86cc6bc2a3aef690853778984ade5bb45239982aa99c961936b64c8e89bd2f35f8853fd1df173d1afafb939bc4171550ded9ec0a8e6abb02656e45adfab051cc64040a736882206eb723b5f36def6acfc31a51bb6524dde33205ed599e38d7976af79c6986fed1f6e7c064ccb6d57599d23bf9a1c96167c49\nresult = valid\nflags = Constructed\n\n# tcId = 34\n# em has low hamming weight\nct = 904f9e8ae7e411ed6172cc00bbbd2ad1149573d177a9a2eafb9c0a6df18aec5bd83c1e4e865b35425e562780e57e6d83e1b5258978a444a1f91fe68be1bc0c529d64702d3a0f7142a0f0ebf9a5fa6df32d2fabe3d2bc7aa0b0f82a903c8448e0037a8e204336396d5ad28fd8483159e45102360791d7c343e973b38943b0851d339f868715d6ac4e5ab615f9d430d666032712e2937cf325977db79cce435d8e2c6d75b306b668f72dc7cf2ba2f8eecbd23b54878d1624ec6d7fb72ba26e5ce30603b66edbe87d4402e989fc75352698bf7fb03d1b5694eda874b99e7be2fac348f1736a351207f1cad43da26dce1470a55a795f3d11fa4d6302f68b88d976b2989dec0e669388c62cb555b929bcd6b5e4e2e42b06bf23672f8b1ab3ab2078b64a598be8d3ea6540027f736ed1d75531c0ecd52be66328c4eede803f70e8cdab6524f226d035926603b27376fbdd28564d8361f7584426188ef5318ea7332619bcfb2eb02424e1737ee0719562cc9975e4a0cccbd6e41d9a133384a62dbd2fbc36c928827c56f275731f4b197374e99c572d190a18b35f19bd9f5d7048cc9b9e034aefd724638b37a973348a1b5e8211c24fc16795779885acf915a7f2baa7087ee16c125a417d7a180a8c969b0d958f3429e12bed1a8d24b1b1f3d315145169176d69707d60e34ea54b7af983722ad91a05ab44f8450a55fc2e6017d0604aab\nlabel = bb9da557e9104db1e8ccfef13fff9a409a7d459e1d4bfee04ded3f75aaa0f23300000000\nmsg = c41f3759e1d39fc1a701e34b0876440172eee941bd9a5bda66ce86ba942527eacd2a8089adb0d9112c57437818d1cd9d0ad82977a20a88f8599e23b123ffe00fe0b9dd3544fee275d1e48f072bd4eca1e3a3a40afb914f22d3cb06803575442d04a2dda5bb93453372244d63b23e9d8a250c54f27657ee68024abe1ceb69bc3a4f5933def93f4b1084b30e2577d6eb2e21e5febda06eec675093c2aa117b7024c82b2ffa9ef5d6bcec8481c5345843504ece69e52a8a57285f048f69b1afeb735aceee081655b8381f632966f3e34eda7c8b6a7bbf4b4c7af65b2d9393cb4424c94930cf941d15675c6b12e33f892e93cc11271affc6036434e9514c0edb18846c0962ec369f4834d0ecdf799f0b36f11837533d3b2b71c9a819008a14408f0e360d44034e14bdad6dee228e37ec34bac910970e718ca4467a71393b59135e19f2dde5b693383e9db1f8f890b5ae64a779c6ab4bc9b48185d1d03d69037dd03ff1fc4aa7368282ec50040a28b160fb406b0a573d0e10e1906e0665722a07743f34c8779f3d6ad56f4cc3e53d3e2ab666684bfe67cc631e1705a47df516cc440d8ce171be464a68cb9a2cd43d1b92414bc3620f2c1adb8e53130306750414\nresult = valid\nflags = Constructed\n\n# tcId = 35\n# em has a large hamming weight\nct = 47b177a8fea05a0c3f6668bad507fbd3f0278faad6938c69b45826043cd24505022c2ba5fe8da4f4f4eccda8e86f4b4eb290b5b53952a803326a60888c07e41b74496bf4f5df9aa6fc884eecaac5dd52252d4631ac09c3df407a28b0c10de2794222b4a5379468a407805f25bf6077f8ff834f", "c49a01d6b12d2cf133fd37f648da7a24dc19035d8df2ff9da5135387fffc1abaab10028bc3cabd79ddb8901a81940ed80d304252b38d7e62ed0bed5061010737d88d9482e99e6dd71c1db75922cb2304c6ff0b594372dc7d73000a80a0dade307bc7cac2a9e634c32573ba9197b6bf554ca549227815325399560c8aab7d29224d99572c91b9148b167d987c19c8e33e7afeae675d5b4ec8dc013d439cb96c9e61ffb67937172b7ebac9decf7407c2cad48448cc5ac696ae4b53454f75aceef6e7a9fe7f04657bc0b08f3b0373324a12f4e0a04ae842483abf2aa9f11f236cd512cf70859d1be27b58f7cad0778a34708770fd295295e89c6ed6d055563ad5e7b30b64042860d2d4a17d7d53ba648ee27639ec91a9cb4dfa9a640f18dac43a47717bf1bb0f6371b44efc63b970324a8e25da6e0e83eea6f835aaabb815eac784aa023866438c2763599e078242e9a9aed6895715fbb033362fb2f1b543d9be3190dfbc2420b57c16816813ec78be3faa05604379ae168ccb0d6ab9509d0a84f667331e158c1644522c7b0ca862\nlabel = adc385a5ed585a2afe16f5f539620a47cc3352cb31c836bb72e39dc7a23b84c600000000\nmsg = 12087af4d447159fa47d932be56c419788668b8da88954239531178a718810e3a6eab3a08caf92b39bf1500d64eb0f9076100fe45b8bcc1b04cb6df9cdf05cfa1f806361f6c72f2c7d3afa9340d3b5dd1e2381193ce01a150701dbf4dfd99b8fa8bbccb7d0336b2d5b7df7a7d60a2c199ca037c6125a20c115df340e417f6ea87e7bfc53b19108dc404e3caaba3338e4edbe2e66aab7fca73fcd855fb95557041c59256e35306c102ba3043624c4b01378a0dbb3fcccd81e9907bbe9f17d44d0ab1efd0cf45d8742afa55ab4efb08a84e1579cb57d8c233c0021b1d22c32b6f6dc903d63f12df51959b06b7070077ab9672bad56608c22e54dd5cb4969c9798bbbffde18cad39c18d8f392df84fa68142b383d4848ec907c251af6aa3b8529b84100b981bac087ddc9e1df72a30f0e861dd4cbff9b1583229ef9610217ff4592955db67837842394f4a7789e8d99255b999f61af7244d23e66805f368340c7662fd398172d326076936fd1e5752cc9b176b30cface1bd386209c50fef70e95f6d7ab854ff75368109c277fc169615803dea8df39fb4953f78c48a42ab137b0e6ef3fb7a7a45e5790773e8465d014e18d9d51feecab8f2f3e168ea78d410b\nresult = valid\nflags = Constructed\n\n", }; -static const size_t kLen294 = 39284; +static const size_t kLen299 = 39284; -static const char *kData294[] = { +static const char *kData299[] = { "# Imported from Wycheproof's rsa_oaep_4096_sha512_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 7bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c9]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001028202007bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c90282010100e97acd5f64c460b2cd51cbd70af5b4caa2882bf6033a92a23ed80f039e8a32c8a4c483f94ee1bb89c1dc1f6d04360a1c3f654251ad72eb39cccbfc38b072054bb0f21b9d516ef272e7cf86f8a8f838eba829e7fe9d803d469a1810fc5b37476333ddfc0cb6f00e9967970b4e474e04373f8dc92df50fa155e3139bfebf4e1cd274705551f2e9022029bea4b86664633d13fd90ebdd0b72d95a6508b6b4354e64b187fd81d21a0b1e4a853c27df11d7fe6c8953cff6344f50ebaed2513dc03761e8877c71ffa8005331043027b8dfdba97cae037fd5d1fda1f145a200c0d20f8dccd62e5c489eea8ae827910d3f48bddf0b18dc3089069f96d800de47036859550282010100dd1abc951ff1474ebfb70807b160b110b1eccef429c8fc8535ab0aa98376a82d3d33af906fb0395750b9aaccd8723cf73a8c3a6ad5c3a0929178ac55e1bd1ba1bf5da4f7698dbf09e87c84c45ecbbe8f12d3ed1091bc470eb2c733c31f8d27eba9718ee78db887385bff6b67950b79524482c50daead4db0f5676e4b92875b5be383ab1cd75e1cadb59cfb5794c17220154aca808f733a636d28c016d9843940bf44bb15ed191f53449b1651b79554c23e006a56dc0232cca209bf2d3c12cbbc0ed8b3110aabd365b603ea8cdf15e8b9ac781155f92f39dbf9749f70df003195a6bb169ea0e0d69eb3a18ce8fbcac9be3c710e797acb5c05a399c2f102947c870282010062f25622fd53741f927ffdc10eb5fe7e79cef7c274afd800c65d4e4f9c5ab916eb2d15390cc301756a20dd7897f646e69dbf4e11cb4e0e7e1a5ac0734de3a476e570555fa069427a8bdf19363c75a5b9c934a94af078ae7f4342bbc016f02062dc5251451a2a3625b10f040d928e6f9ef262264641baf406b00b596ae6ac35eec2c5f082a04d3b476229972946cb787b2403abed296a76abc2715af602fd2c51e422dbbeaec9b6b889a0595414673d806782f37008c9366bf6d5c9f000197bdf146a86c4d131e3a15dfe8661ef297fb01e54a8cafe54d6065177cf263e91476232d2fa26c5e80342070ced9e0d99c84dc4282ef8aab991dc9d8210b14bb267590282010100b83b9f0763265894758abd562ba6b5e3835e1ed3b43d94ac2a9beab674a45a5dd7b14988c087c63fcb33e9ede62cca3ff6b901b4238a6e31b2a52a742534bde178e33ea22981c2bd2ecb1295cda757913fcef6a9e7c54a302527772a0f103f434e5d21063040a1eb843cbff1ff6f20183c9dfa33fc68cb63b81806ff518917c6e93cbd47baece0589e0bc022aa00c66795564c85f301c095384fcc3f3ddfbf15044af0d8c4473aa2d777a29154b74978d0d0e7ca9867fc8c263898e3c83aa12881f66ebeb4759820181a0b46765c7b1ebb67108ae2a7473ed40d290d93c3458dbcf00759061452c0ca4cc26d1fe149590a63e9fbaf25e3f78eea8054f22167e10282010100c301f6bbe5fb5693f665b26d1a61e1de87e38950a5825270ee68ea5a5667e11a3aed28b2266768d1a3db3437dbda681ac8294dd50ad0b4bc5cee5694831b8df7354695335740b9b7dae5f7881536da6a6b2ac4308a0420ad6e99cb779a6338f5012986b1c1c889444d90585fb0dac995ad6e93af7eac717c643c4b8e7023cf57cfe284ca911d6dc3132b08e17f4e8759af42b43ac929c0259c3a1d5e5f7c4b247e2f6461aeff8577aedc710d6d2d56d943c211e47467421539dfc2700663c4068031b695e487ae6910ecb9c547cbfe12cc6f45b658e2c6f9f8fbe805304194a9d1d9c6d599c5ac5c9ee5fa78c8a4583218f7dc8f4c8d3adf275eec0e0941fa69]\n[sha = SHA-512]\n\n# tcId = 1\nct = b9fce8bcad33219375323a2e641de7650c1163d9aaf5f2f0c5b96230e788a9cb970fd4cfdf9df98060267e302b133e4974c0cd529ca1c900dfea65b46078fdffd9d589319087bafdbdbb8467013e48262bcda8554b225dc3567887da78976d5d9ae23ca9914248debc2383634f71d171ad375dccad198eabf391f4bcea22473c925e18d5210b02c555561592411d3fa6d2e425415a83fedd651718a8a7d1db2d81f64685c8da9a05e7201593374e30173ef04b42b1f16f0b8a8cff6c3ccc6b251fb61957df57176102a8a03d9718d95f3bf637b1fe1feefed9d50ebf9ee93a99c60d2e404bb78f9a4292ae280206782564cea8e2ae831f9b5d629b88af7c610cf28f9c6ec56534d16b70ebee0df20f8ffb40afdebec977d16f84c3e583a1229f0d2a01e0959b1cbf37448ab947da05e7cde1358c9bdfe298f2da27d65beef13aa13cc51f04c18560c054dd8f85d34ec759691b3d8c72138df12e6e442992a2466e3a6db6bd322d04c069741e0accc5f291a6520fb42fa001764c441c37456f9d91ab31c94283bd4a299fe4fda6fbd132e04d8d92157bf9aedc80c66cf7046a33bfa308ea7f5f56963edf4d804483e631acd033f2d9ec190c6d04c55540908e76f9b3749b8aef86287818358e4470cacc6d45fee370bf836d2b9277d044487aeec4064c74814d2c57839f6bffacdabe1f2ccaee4492b2a5b1ab7f3055d2569c58\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2", "\nct = bbb5c693aeb28296b4559a792e489c74bf21c3739153be06dfd336f397f16969fb1ea0523f0adc7e206d908ea2a8eae1011217a54af3beeb6558bd80f2c111dbe51a0e25f3ac65578d4e7f6b41bede65813bb551c97cd70485b81d70934e86e6fa349287bcaf977e666bf9526db02e76f82b3ec2941c2c7355133adf80e16fd8c4d01a62f63d1e0e6d67a247fa2084409df92f8f528ddee355bcd9cda753010bae377bfd6e1a29a4021b239f98cecb5b8932c268393dd5ebe58d42f7eb59fd389491cdf05d29e7cf8c148caf71232853203dd76bf0ef8ce7be145196b7bfa83eca9761669fdc281ecd66ac37d45732c510b8d1f520f8be259a2de0220068a5c741358d4c34d72ab820e7791764efad86c4113988cb71ca323f31683105e273c037c02b4d4b56e7a2a341f9348180cbd671f73adc9767e050b58b99269b5fd696b071473e9d767918d99ef0e5e69859bc0a3133be92bf38edae5d8060cd5c13f2aa522d0389c3a5af934f81c46f83492c1ac6e856b2b1e3b17ea83a7dffbda5e8f4ce57e5c106c5c337ad286858af9ccf44417f2e0cfea2f196d89e078d9884fc176b02673d3295fc3849fbaf4829d7f310ca53a3861e8704765e8654e2b0274d6bf43152d13ddca60014067eb1d5589045ceed16df90a718260db6ee83662542c8c6fe47962d18758824b7f276dc3d94b6b8bc85bff1babe91b13604b8696078\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 3fe06a589140e2e037ca786111219bb545a189b506c2cb52376b6fee3d8c216b33578a92623f4852d2c82ff02db90b9266e5fd0301c8e156a44093206a8bf93c48022738a35b834dc025db456dfe003026aee1e7144f95db86d357dbc93d11ae9568ebd700fb577e9ffaff19f324cdc30332c0a680c47476564de727eccb1a974826bdb384a517d489901cc5f0afda3be84fad6a95435aa8cbd91b0cc5d707cb4656303541b69e70f9327c2ee061d96a223bb6e29b5851bcc345ad6e47feb0b86565706fa575fbf7aa4728d997023de295f669b34ef205feb24ebe07074b2ccd0fbfed7c3b543ba56875cf0addd47b8bf0375a5706684763dd7f7f0702d43934726a1d2600a668b6c4b170c85d0a4841661bd946b0c1ecfe801d1e366bf4432e756ecda05afecf29338edfa80677e3f21e54213f77c673786ba5cfee8ee800d651414d055d51edbbd2108afa1ee8f354ea7427ef772b31d12950c1359e9c6b65a1e2a2636efdc0cc6da8956ff84977c25cd67e31c88d27ba681626f25acff63b056f402f8f83090c5be0d51b6b9ebee8ba48ba88917b02058f4efdedd354c63063ca470036e3ef13da38c9462da836826d9472be5a6133c137f496b2337c9d470478800f67045cf9b1f5cb072847da6981f77d4e16f71181e90748c40c79df936e36ba4d4810cc81023591a82465f59e0b98f8dba0b0503b8bb9ec28919f0d89\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 8889564896395f4392a9ff76ebd1e0f5b3c5254c83fa7fd7bf614aeac559db65999171139bcd3c0fd6adcbbe7adfff9d8254ce2300d4ffc48ed00131243811677e8916cae0ff5752d75135fda0acd167b0e383f48e2cee184917d5f860c0bfc88a59d54587825f75db894de2e9f40bb3b168db171e8844d64add489ad839f47a63edd6382972d133d1d8887cf120a1dbf4cc3ebc0845ae85d6abc4ca82be90648ff4905e11e9a37137cff9400a0080e2d13babefbcd787a86b75772dd8461d5cd8a8f3c3f14b7b305ba6e51c765302981f0c3632a2860fcf61735396fa39bd407100cc1e8dfdfddfc0b87735b0ddefe96f2a2de97f168e41f2383c345ff93007f6fd505874f2c6cf2ed6f30ab6a2c8bffbbf6d3cf32ee716c85697db87f2f2b0b9cf65a48cc15187f5febd3b015b3339815beb3b02f418bbd3e7c6e9fec74374a1fb7ce9acef3b75292a3659b04f44062dae0980f6426dfb1ebe6d67c6cfb887f5fa3f9027ecf4936f3c0995acc540a4691cdd28909b3df8c48a4a27c9772763f98e7dc7d8a5497142aabf2c4c472ca397edf2fd1a74af576fbe1db292fdbd140d64a3c65173c0656619f5e5b3db0596a955bf017db34d849f29902f8a08544eb8aed66579084ba3aae9646d170bb76eeaaafa95f34295f2ce86b8bfff613644cf1ea061f7af8ee42df5d97a83a094d07219901d2e1ef26517364a03f031a3ad\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 81935470cfa189178b215635b35436bab84d880c42127d5bea48563d6d1e52cc4116d8ecb9dc9d30b82756eaf8981ccde25d4b3555e1e26691d92cec29103f7a514036ebb1d850b795ad662c9bd6c63b2dba32ef4889419b740d4cb38283feefd285041ea880319eea371a15e99dcd02761029b5709232f5df156594259cf6f63f882c22a3c427592ef86b0e4a7d0b13f772234fd2889c13b157c2da6a94c3e3807771059c970a3aa786b05d79c92a36607fda0c7c3b7279402543debcbf3639b3bae654f48b80f65eb9fcf5d4960d88b8906ebb84aca936b7a06e4db3be1bdef0fd16af1a3d0fe03203492a0357bc7e76eccfef7a2fc1edfc50aacd0d46bc7a28428b92f46e3d3a58af3a7f9e0d4c70c3ac240eedb878891a8f148b1e729604d943af03ed079787a7f67f830e9a77e7fa6e39fab006398e09483e6e848d14a95e902f2cb60252059d1cabf319bc463719132bec91c6e7bed2341455c16502d2bbd0851301f86e0674c9c62f54e6cc9bebc268a4a714320ba2d30e0dd7996720466a976d3c9e8a11e38f32050ed5e079875160e2c1b0f8d4a29a5e3f6d04db8f501b205e56f3375dbadbc77c4a48117532917f09575ebd5ac491eb1bacf1d157dce7465eccb7568b2d51a87ebd493fbc9275d5b253b05d7744921cdf5c274906137b3076002a2c10cd52cee21a17feb9e35c5ab3af3e0427207c206fe6a068ab\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 8eae919086dc6c634f495a45d86023caf497163b2f4b63ab9dbee8cc8c139e41d83c5cbd2c54b032f79f3bc37e93ed2c7a4b652014b1fe4b607bca3529aa160c84ec89910bae46ae4d6e8bdd384ae8a5a18a48721e0f59aa9b8394ff821dccb8e222e7e7a2a33e3f02a320301e2e7a7c315fa0bf9f9c676e6a4535c34b621ff8345ed2b7d5d35014610040a9b3f81340f4911e230f356b469c9c6035de42048a68d5f04681d85eb9c2891c6a57a29e8e64cae0b0404d4e374f3188caa210c4d1378f0012805d7b91972d085956f067791529fc0357dc30aeed5fd3bc5efad687e5e9ec50957ac809d683b02e5764a5d8434e5e12764672807e18198c225d346b406b4dc06b9164ba5f3ae719bd376643727d9061745a2e587718206d66b1648bb52090b224c175688ea8d50b43a1d08ffbb4248ea7f351799c7e50f2d490e466722ece2c4f88f89d2f96fb9aa9ba610ddfd6cfa7b7a9c375e95575ae51c5d6de43086fd0c0663ff88035c3adafb82469a77556a91d32a421e33338bb16195d19010b58d720688d172ea7d64fa50caa902bfdc7b78c7bec427031ae9e3f691edd91a90c86e2e86d00dcdde12076308e1fc4c910814b00d751fe2e44baf232c4934b58624c1da5bb51b0e8acfb454aeaae2f04be02e4e121cec2b980ad7c23d13698a88d1d545521c0624261fb0e97422bcf76f47d7c33ad63a8eb4e497502569a\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 9284f12053cab1f558770b0da4ac1122dac9f3ccc92992cdcf186b62557b265a72234cd443e39d5d2e1e88d4c2b3bf569ba8feeacb53d7f4100a505de9118cbd22d159ac00d2702fc37350780cf78a101d7447d82b6e0ccf9d901c58734cf9ce7b182c05315b31756a30c5e563da32224272523bf01291732ef390e90d0b16de359a944c8fc92ed9949e9bab4059424aef42a5ca7c28040f3c473c952c52827159eb125e2234fdd251c898746ff9bed99fa7cbb2894cedbcb3218526ea286da4e1420af5c9fe91fd4d557f81b69d36964121e5202599cddd4993cd8dfb82a48265771b3f940a82ff572e514f5eee9bb98f848a31e2d3f7271ac9b298ffcfd03857cd562e8a36daa26cac1f1dd173dbc4e4d5dda6f3c28e3aa8c8d54dca67091d304bbd3217e2c42bf13ae02867ab9da1d3d01bf196ec8be97da126cde6a0244673477e4f0c98651592e25ce1266995c7a41d41fca2e2213806394df9a7aef43a1d90609cae8511514702d890fb3230b8c22a34720435a547edee50bc5f78da62224ecc3335e900d8803aeac4296fc4a41d59806c811924bc2d4a6067dcf71ae24a6d7cea82597bd14a3149fdf718aad5f5a6b6f126436c0621fdac4297d646ad0e6f70d524a48e58988066694f3618e013825d03c19c75b9c9d9aca436424a3a9a58bdb92003749241661527a6878601970abc94767cbaf82ff3ddfec7478638\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 4db93239d2b04e8d6247a970797e21cda029a6986a4e62991fc489bb1036ad5ac9f5cacd7bb84584f0371c2781f81b64b8289c8c0bb1f00c42513bca88417ac838ec7dff9b6bdc59a4e3598454fce85bb1bde30db75ea83352358326386214dc1f0d584939cda6019ed6e4433bd6a45e3a7a27a15bf08b69b70346819fa1fad4ae11b1ac7d06834c70b1d25b0cd2f7815a0a00c692cb7d0fa1f4cb53448834fa26b344fe6e38560f48f6ac1cc170822b599dfeda6f3709a8d9ce62aa21d5e37f8348808d3b50159acf7e3cab7efb6a437001a596c17d31be3fc0f896b41091541f705d64541e84871d0136e251f8d31d24fdd101672940efe26b433ca084ee48a7d60c5f4afc1bc60b02d0fd1ea25a77e976b691578012f251f542e60b784afb61f3fc988fce74b9ca5be9cbd9657a7d88d68aa9544ffa2198bf5fea0ecaabd8752afe5c51819dadc5c728c2ab1f6f24d474bfdbbd252856c4b7588cca27801c61df0afef9b892acb53842b0656c91f4445e50f395d4bbcfaba3146fd6631b668f4f5c1897bd0a12f45f3d03aed84a26f44ce2ad7facc05c7035e675b0411a7ccc6450bcac760def267f79bf65b033f6b807ba0153398b5cd5833688ca57ec08b48fddfb6cbe4ba4ab293865c67bab953a4b9883f8b03a5441efa492b4d8f2b7d1a216d057feda7a9f388d3bcb0a28a6fb082ec632bf88cb411da33898aa9b9a\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 29583aac29536dd4b6a21da5a44e1e2b6e755a45c67f828156e1af72c7b7138374e5110ec7e3d7385f3791c5198d16cb5c78fc6f0291716ed818ec6b6d0a8cd4a95e3712449f0e6b6aee58b75413aa6cb09659378fe2a43ec789310182cd7eba7be97bf2b38386508116c8d693ad3f49a825e1cc0f9f692e1c9e955a92d4988408b2e940ea4539a3579c55a1cfe91d1019c996cad449ee8d95cef7d84ea27fd992532db562cb5d3dc30509c9ad0ffc624aa8ead95ce75d914ddb89f5a6ad950323fcf94830744e9af3681eed79a3b1d88252b46ad3ebe55263c003f4efcb25e17b97dc7a3c2d5dd9c1b1b8352dd3ac3665172fad40d9a7e9a9a5b185d2c", "b383cbbfb0bbae7c65e186479da5f850f466391ead2670c7512c3a24a35998283520827122e3577f3b3e8fccddfac3cb30f56e1f69f9e3c8fd503cd3daa2492b1d6adec372e11346ac8e6c7470dc31336cc9fa256634e927448a8eb7b36c49486d2f24123be03d021bd6058a0b891c06a50dbde6d8106de893c046a98d8ebc3ff0dfab1cbad8188c0e411b619bb1d4bac1da82093804e81621306cc06b34ddab2a944e1ca809a63c5ebef662ba409d20f1c980a311ef4d46a0d28921faa54d1d48a6f47b06292ccb4deb9dca5af89d789101caed8b7745c5439812c980c03a8a103fecb3be579c450ff6dd5920ee4fb7144f243aec7192c4d4a623730b01cd323a381\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = a0eef89abaf87828a4359fdaf9ad21419045568dde6cb1c4975fa744cbec96a60e2752acd8b05785f34b9ea28f825959422f50e2326234ff6df151617f00274446ceb3eba0ad79476ab70b1efb932bad03236af106d7c5011cfb4fd9b19ea26393651eef432422ac892f6905f4e1ef1f6c8da0c57289e93f580ece8bbbad8ed8892a5481685a8ceedabe4944bb8bf3022cdf1d004be65ab2bb24e4b2b1495abf0f0b162cf02b949d431fe6f629c9a80388876012e1fde67fdd454b306c42899b92665c7ce20c3c005a0bdc49eb32a482b410fb4d10918d7c4bd2ec7118980d88d567883117313a7b2c49d482686d8f02659a2801c4cc237dd1a792f2b70407859cac860263f05854d96fd588f0d8e66bfe4b04309b8869693e95f08ce4cf3662fb03b172661c56d8033563a883a0933fab91ad2a833590aefe1f0152472582c54a533d77c232155a70b628dedc6898675e368b84aa1b757c40baa07ab95c4a450b7097205fe751e415ab68e5e579a0e5de2bb9eea9fadf5a7b53e969ba85b023d8f0c6d749571baa2c531ed105531078de99aa935266d04eb82699958047ec946c63384d431076556a7e6714a039306420c483ef52f0ac7609b2a2754b31e96c9d2cf72357b8ca5c7a683b95ff221892058b1809df67ad955ae0852460374176f4a042b31545146685339e928136ce173aefd8d6f5066b3777ccaa5e5fe312d7\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 5061876f8bdda06553a4f653c4f0a96a96d8f823c9484a6c0c21ca0344c6f9d15086265fda4f6f14573127dc073631fb91ffe0082f926d696f974b22f4f9c899dbf16feb967ab9c66556a4e4aacde7df73d4c789ef2eeafc23dd06d363ce3f70da60283510512eabbd43cd89b7c014240c35266b87d860466358840f85ae91ff3ae033c7456c74f5f425c4371ca76bca86e2a9639f9901780b1ce20f652644cc504c2497204fa6b51759eb932f4e7099701718476a8d2cfcbf95d70845d7c0ab4a264cd023bd5fafd5d3d0c5500b17a38d0a85593e042685b6074f4737ca181ce3f58f81d2b29e934d44c665713733740832079c3888cee12a5435372a32df434be0c03698d2e2503adc889be76619f4076e02b3517e75a94b7bfb58faa31e660682e8964aec6abad3aade06f376a9ac9d3266ef1e4e51078c446ab6c1e1904e5a1c5b121da4767d53e60f9cc1ad40822ec20c19cb3cffc61fa8f211a58c57b2f79f4131289f0354eddab2bbaa01962a25fa19338b2e546ec96054013cc3c2688464ac77d89fd3106621080266357eeff963c2b0244599d4a594b69c3eb4458187a869544522031235c6a8f3ddaad154c15df7380b8da5ba06afbe9d5c4fc1fdee76b0e90483899d564eaf23c5df73764d4af52e10aa7891d82f26285ef441a785ba0915feb6df082044bfa6fb6fcb2a3a9bb053afea9c015b9188a4123f1038\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 370fb94a46f8feaf018d0f2b9690189bdb29942522166645d0bb7921bc837daac9cd1bfd6ec6f67e4e88a7ff996932c9456314f2aefd01d81c9246696a74f0818a1f05b656ed5804bd99f2a9149277f8e5246e0f9724ccd5f1a0dc637687389bf5540d4873b535c2cf6e9c491b5caa3bbb2da4e71f1c27b7681a1f03b8639139ced480875abdaebf627989ecbcda9373d71c431513b8e937c4bb259db0e5bc64bd42da435ee9cf5f700f9587f32796e97eb5f60969c443efbd3c92f310a0005eadf2301bbf6d5411f7800603b53b6f7bab1072f9e6af0a01e44fb8c9677ff655de1a020b8a9854084c185179b49695f7ada1ca5300f1c8c61cf616ad7c8ef8b8f0250411cefbffad9fddec87dcc9e991ca5ce1f16049327704a73e2d46e6703b40c70e569ef52f0841e89d28da9c743a71fc17e3c23cd720ab7ef22a25d068e0f205a708fafee581787156f6804076ce20546c3dbf2609c9a70f7ea85915a8d0b7103daece1017fae3eb397e7f8b4c9d2ed708c97c9d7e34de437ddf5db42854ccbeff8be2557548bb1e6b1c443fd2a726e36d7ecad07d7ffa4f304dd374180a7456f2947212cb8a767a9241c537211982a9d42c67c5f9717eb6c05951f09a5c40c9d4d4bf6675ba071652912dca387602006b99455aa66dc45a170954700604296cc45204f89d5f875f54751f48b7b10984ac60cc5a46b55aac7443e91bc3dc\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 48a28128571fee7bd47d4e6645181e9bd4fda711b9a85e22ea31ee3668c2c4dd7f8f2e62bc155f642fc37c0f4d8327d06190242d9b10cfdfe70896e948a0272dc93c48a9ac7ea5211f6938e8c969c88ae3564f27a190b8fd230ec39ccb3f0a8aab83af20906b39a93bdc8d39cb09edc2f393cc3bf761ccb6a742b9cf6e7586a22f885ce9a9d673dfedbe4e54ea710c446a5489d5cee956b781013c83dfdd92d7af84b909b7bd4fb92e32d374398b7bc9f7fe145e3930bce6f600546b7e645b085a213200bfb1ddfb1d52a3abadaff9565416e526a2e065f8de084e2b729db9da4b413894a7bf36a50418872b64c65fcf92e83537f101bf9190b21bb5f16f65bfb50004139d36b78814adcf269cdb2c2b7dd19e2b380ea83b2af202cd2245f857abb0ac9208c009554772ba5bdb1b2ef2a3889c077e3c5641b223a04cdeec295ce6e065478a9f26ced392fe29b971b15ce35389e68fe5ac48c00750bb26d3f79bd7cf24273c5c232e7e3569f6a315b5a570cf6265946b6a006e4045b97da36792ead0677dc864c71903234ac1471ec2bb3faed265e2cf6159822b7cddeab67897bc723d6db29210e46b4da283d6f66330c035b67eb21f179f1828272b2a114bd72d7a5039eb63b9865c983f700070a8753766041489b36d6c66ff3f552f0f766bbcdcb9f58a4eeba194ef89e0ec68f47b93de49bc3006196faa6298cc7c7f1099\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 5c8b5881da1aca7e3842d9bc22c5af2dffd0d357380d7e95695af13a2521084f373dc2827b999094fa8dbaa85276b97cc95be2d0923503072533914032c696ab44172520a7f0ef999a7c9140da1facb71b44ff0b09c9e64fa3eb584aea20f1df0d1ea8f816b0bc4be4d59c12f586fe4811d84f9c3f0509d6c729e8718e23f261cc35ed38387e5ded781635738149b237f3c7e736a365d656175806cef25f50cb61271b4a0627e5c42c46398aa146e29cc27961851543196416766dcbadb41ff39c0205dcc43679391c699ad8f1b7202a17c7c6ab98a5edd3b04012546919d924f8081d2ae6b259a17e0a2f50cad28d3e4eed4a0d7f922cc5792a26ef2987ed8ad6a8b6dc3c5d05626854ff47ee4ee013ac85cf817833b43e1a856b8c3974766702c14e99e4e4b34e4babc99744c0a621820c234e2f6a3693feeab4c7db39744a2f039bb7e6269315861644474fb7586515bf340c764af09a408618bdfd79a944f14496b0d306f72e9540d650ac72079be5a90ba9ff80df176e8f762847be5cbeb391b7234eb1c37426ee6288d584af02b1529cd2cdff838523c9dcacfd7dd0941abe5b9f3868491d6159b426631bba86846321133bbefdd1c720a5f250c18678bed4cc4b1304b37abe5e0c7ebc79e85f615818cb2014945c519b9291331dc11cfed6a40258c8d547c0442a69d6dffc75b529e5fdad3aaccd820e89db767f91b9\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 256e3457626f1b5bb2cc1f82d7abcf966f487ea2227d164f5d9d60c688dae539988cc75a0f670e8c66abd77ea06101a9d78fabff1c5023114eb3832d561b48e99c977f351a4125af9d0b5210ed1473f07eddd6edd8905dc21189e23a1502cbefdf184534d64c257b896c631d6b3e17672170278af5850663207ac60f4da2151cc13939c126801477b181131d6857be3c31721ba2da42e7146ba1c2f3033072935546a6ffd833c4e8d5a733c1b1cf5854ade160c697e8f8d794bd6330af3a2268e31e432841910bfceac4d7c2300d942739c03a1234ce2195c28d4f6ec3b01c4ded49f811aad03021a7a7fcec212d150ed25cca815c461acc520bdc60d22df38f23a4e7fe25572ef55b1fb8a61ca50dd80a16e9ed0faaa74e7b502c81eb5e84e35f30e1b286e957195ea8c5b0326e5c45849ebe4a920dfa623a0295248d5338e888b7a47eb9730224c1f86663ba3bbef1aba30e9ed91a49d6abda5e0c1c5235767efef235585d81c789f7d83f3c42bbff9f327fecccabb5e35a070a6deba53bff749450c5883ccb2cb5a5545163df34badfe0ccba4b962ddaaa282d83f755f5b1492dedfb8c85c87e387e2855ac2ac6e669c981845f6feb77e986bc84bc16405a44fe810d9e2eae4af98352f93039a1495e4cc85522016337f75ddc3af6a2a4a5c89c8978c4d1d7c21bf16d4631c6406bb317160306aaaddcffca48adff7afbe4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding", "\n\n# tcId = 16\n# first byte of ps modified\nct = 8324d6f1ee40adbb9d76a16187d9d28aa2bb90202d7ef7bd7ba2d01cab0915fe4789aaba1aec37fac4dc16d4b7dae25650daea9d26cb1bfb2a34b622943f6e3fd01cf3479718b906afc21801acaf43d8bd91b7c2bf688923609ffddc7043677e906675fa06701e0ce610041a687aa5f001a212896607d19574280acec0780c76a8d5e9ec1b327c9190527a5f1c13a0326c138e0c7079a83bfecf601aef604e606b70cef7bdf1782c0dda68c917095c1a027694c5448c6653c1074ac923eed2f06fc96810b353925f33c48e509aafad75195f06332c8a0c4d05010d2a14a1b00b3f474a35897fb12f61d4caf772076db8a8f4fee8205f7b6f0ce12200ccd45ef177481def6f74d4c4e744812eb2e4240dbe0095c8a95f060ddbbd69f6a1b376558081c24f647cdeaf242a153b5e5ea36efd7dd42a6280f1811035a02aebe53b95f847ade834fffd070294cd8ba8d7cd753e0506d900ea1e76279ff293f1ebd5d973fa9da26090aaba7117237c33b08b9ed345672bd0147f78e2c9ec9b14e4825cce84dc2f39284e25f85b11939ef7f0ebb50c058597d054fdbffd8128f8f5822652b1c75e38d32f35d699b21d5a73f9ec5e887e139b061f24052974f08f36213c5c6250aded6afa138ca53c0328b0692403cbe3ed569304a891268123660cac7080d92fcf4b2965159c8de01cca170ecea328326c393bf2d118efbc50f7bd227c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = b91a1ef2ec1a83116dfaee41a62d3813d42ad5e092e3d68b6b790a6213b322b08f7672e85698de1e9d650399ec6cf9161fb3c57d63c623426ed663f2add206630f5fcbdbc3111078b804b84bbb7c9da6c1e90edd8a879f675ae49d7cbe4d31c4b5c1b8918693844b85f45a981f980c8e15c407dadf7ebe288f6487b6a85cfb5a4699ac0295a003fd58f06d428b56b430496e6e738c18578b846cd957f592f2b55230a27faa2c3d43dbd9ebc41a97f1120bd0e0a7e71ceae24770933a5cee41dcb424756c9934f0f873bacaeba7f5096087a1fa9b320facd6df2d390bd7f5a1c8ef3b92ab179738023590fd962278905e54028a04f4c6537e4cced2c9f6ff8bce8cd8ba1b2ed7f317b2eb9b6abe079750ec65e10579fd2db0e8405d5dd1dc597eb19888de90efb0b982ea435db8697fccd7b77a2090b1f4db9116c59f3ce1b59309b22493c79d48df153cab3a7164ed686812ae714c2ba5faadf874748928b036967310ab1d3b17aa4bea2d663cb7325dd3c877886aa2136271d3fe514d78629cd12f294095a768dddbdbfe241ed8d1e32e7c2b1c1dfd061ad38a84708e4fac5611a973a66f0e3354cc73117217ff4263abcebf7c7465fa1f74e2ef7d850ca3d3e9893e46741a7e46da50c9c93f258f9c62ff71b83b03ca1a6e98934519e2fb6023241f8d09b8d78708462ff61f43bed939554fdc306a81051aecf7990bb9b5a7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 1d604ba6149ecca0f7e06492035e54d8b4b89419b39ae9aa2560d00c46de8a25daf8dcee5fb9f5aa6b00d36f080904bb41c72be319b3007d05d1a2fd97519e3acc0cd8d6f492991b6a2deceb16839f2c541255d026ed575f4cbc2bd83ee3c16d7746996c887e8c456242ffc0a8e4730778590711a998c081f2321c03593e85933127012d86dd0e5bf30d8433057e4880da06de4cee2cef6b3f8a7d93703cc0fbb6591464a0bac813c2a91c64c5508a1d7716ddf2b75575446ea87f8b94a8db97c95b8b977cdec73ac3ac3f9fc2be746a0b3ec323fc241ac2e22e9f5a52b62efe8a96de6b18c28df18013c091207c1029195b4137940a38aab6d59bf53dea5de16c977fe96d4ac615dcc87e86c044ce97a40324e325ac7660fae8614c56f86ba270bcdb766f5598771aa4fd149259353d752dca72afda5c86b72e2ce2f98a5478c800ae5a21e0d84cc1b1ad15355ad0be194c19181d984768738c3c7872ff33e2ae6f57b282ee6f9987cad599b0c510cced1a31793916a26e354079ba5bf9077720ba336bd98a275844136a433ba7e039c960abcef4b13c322695182002c1a39b4ab04b1994c7257e90fce4dd4681dea84044f6ab11df936ac8af219b72f17588abbe9080d67a0568e4b41d6869f8a1368188ebdf8d4c95300de029b3caa43ac7a08b2dda8a9aa3e6ad3b35a8b8aff9ff4c47b28dc35d06919a9be45833c107fd\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 96104d3365a60a8b4e6884fb18755e6d74fb4c114dd3847681d61303ef4deab05d2e34c44ebc6463ca72d641d9783cc4c5bfd79063f7dcfa75531e6c238b1ea1a85482eae2a8db6c7d25963e3bfacea905ffb37a9837707d5820eaead9b6958ac017d2e8ba7e0b1419780caa8bcd341ba025285798d2bc389ce095978243d48f94a2985966a940028d71083d75ff3c1509ea04af0f58d55b45982e70389aeb26ec44c9008df049ddf184bf0130e5671ede3b36836763eecb90eb544f6268c0dd87ed68f421210ae4efbc8c9601533f18cef68da370c1b0960a95d054cb4cab186595d20c18a409403f20ec25df0f928b737e369656fb683eea7a87e54c46fcf1a06ea3f2df95570b95ac39194c9f7d51ae98b295546f7b18f8234b95c99a6e9f37f99c638971e868b389660e95c12ead98f8526e2190fa132f7ddfa58b987ae9f8150d83477bb40d96f959483aee8f8b5d51b9f1df3e4e309db43c83795bf8a08db5d3ae0dea4370f5dfebebc5952eb6d4aacb4fbd3629cce8adb205225aa1cc7c8934e119f1b338151e545722c27adc368880936c56eff68c14ccea07f5c328d5a22e298a3a681c84d7ed4b7c5f78609b63822a327ad68922d0885810f797b27fee06205450b897fdb36c9c6b1c6a8f095b6ad15118c6424581918f3050f86a329821dcdd1c144cbaba537a25ee0fc4ffd90205e223eb7030c6d55e9ecfab73\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 9e3b1e800104dfd28dcd147101435ea933562abff19d63aafc2bfc854596809842a68cb42f1110626176ab91a03bffd82b2290d05ff163bceb387601be00f5899a165f697b152b2812774910a5e07269c3266e5ad61957ff8e56cbf7fd896a0fcf14e154e50e3f795e081d11ddf10d8edd6263eb3e0f15fa54b0f16a77da6ab159b6ee22d74177d8ae5b05215c9544269d0f7a8013baab60516f2c7fdf631db996b5f48797015db8f2141a7f10beb71e68708e964e3457a48d6da6bded0525e6bbe10507aa87bf486199ffb52c67df477f9d86d307d8dad384b854939928e2d962f7c7cd6d309027a3d3689c26b7da4a648fbf3854f05fcc4658ffb3d9c35ded1169165bbd750c230a494f602b2a271425989f2a7d175bb24c0095f17b0de0d9e7ca854c80aa870edc6a02e17b1cd5a31a3bf3c74c2c18513bbe7ca1f6888754f35e2108ee1a2751d88dbc17dc1f4856eb8998151da990960f932f37c0d77aa44c25b5fe6f92c288f68ec83b2e8a453d608b2aab73224bdcdc3a4c46303c42106fbf5054c4f201cb96052c919e1c0eba7b7a88acdf38d35c6a998cd6d81d04665416959591662927bdf801f0de837ec3f9ea86d2ce82b07310bd4c326d757e1a56476f2ca7f5fad65a91f2b309ac1bb39c44737deca8203feb6fb18ae93ae546d7a23f6c908cb0ea4ba0183a25120f44659a112939745352e9ed922f478aa6a4\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 576983b7901bd02be7e1ae3261de56e187b6acb5c3b891797fdfe324bdb249e1960d27b5498ed2ef4039391a2678306c8245b3fb59c3d9a55e62ec37f83df7cfa13a29cdeb4a5f9a03673eddc3d0faba2ee005b04679b7b476b1f7f9f841948a7983c977eb5319e6e667215b70ea465c5cf4d53ab87a3784bc30cde5b84cfc5f483d13eb3747364847668cf566a1992dac542f451274e31b00f21255e750022051d39983d77ea0b08e599e24caad762fce8f4244baa51dbc8b61c2d81ac1909fbc6144576efe1a60ea7176bf45f4091e32b37607477b20b721ee8e4492360164c98cd3b671dbed37e8c6692af81c566dc6e7d614932bf91758affa7e71fb8d5cebd71ee0165c0cf5a62a672670963a0afe16b726b4618d7ae0287a31c442edcb5e3920d363b230a027a0479578fa36c7481b901fba6087f89e6d5b18f8b80f503db8da0c67f71b7882c92da575d640a04a87d418d19857f4073429649f149a87406048a181c9d0e29a63b207e0a14cf6e40b9735e5e71522a779d27e767ace40ba92921e1b20cef245dfd04600a9d7ce98c00577dbb3afc36d0f6be77e493cab881a74522e2899f97777c943255852e3a61bcd69e375ac0939c37d38a4c5be0ed2ba60a5fb715e56c953865c17085925389dc7eda944d8eca151607ff7da2187a299d8bb5a52741593c451696ce684e066eb91137f6d2432db760fc2ee11306c\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 9de5d8e7e5d4ca1a214e903fda56a012e739d704e4b910681d6f347198b1af54555fb28f1e4e071154f75374e09e4184f503d31b45358d72c4f1404501f87fcc4d124eb4573e52c30140e49aa6219e74f3aacf4ffb2e739bb96ec12e492e2a5bf490697b7a3b9f7fd3daf2f3bbdcc5c032441ff1cff63c70c3c27a7162afff864dc8ad1404ceb6fdc058222db8b69b1e4481f0044353d73b8e017a6a103030ac8d1ea2d0ec43c650be4fb8a410c4bc7ae813a06f6e3a393e5eb7272c52d1dac55a1834e1f3f6299573abd8dfda92c65071fe11be6edc0ce2561dbac5da100c4edfac2ebe9ea8756762d479a55132b0a922d7d405a301d31ec971581ae5358c435804f95ebec6286e7f7972a7e082f7172f66e5c118073a719e1a872665ea898a0a50c3d0bdf81b6cb1e890da4fbd8a9e45d78194dc687a5a91664003727689f7fb080d872580c6228601f61cbbff236caf521b76e527f5bd180bddc13a823a0ce7c5972466523de8cb6626761453d218170a37976e68113ad6294dc19ff06210118210c75d4cf2657f04ea9d79177474651044795bdfdf3c6959d9fc5c11d569f978679b7b81f9fedbf012dbf7b9b0652cee90c9059c98d7b24286304f7f41be1ab2a26931715c150de73775de58c2f12fa2fa353210ee1d8cb0f8dea22e9ed1d19df5f8dd349c181ad9bf5b9ffa5938f4b0f810feee4cd34356fc7251f5fea3\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d2\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 00008889564896395f4392a9ff76ebd1e0f5b3c5254c83fa7fd7bf614aeac559db65999171139bcd3c0fd6adcbbe7adfff9d8254ce2300d4ffc48ed00131243811677e8916cae0ff5752d75135fda0acd167b0e383f48e2cee184917d5f860c0bfc88a59d54587825f75db894de2e9f40bb3b168db171e8844d64add489ad839f47a63edd6382972d133d1d8887cf120a1dbf4cc3ebc0845ae85d6abc4ca82be90648ff4905e11e9a37137cff9400a0080e2d13babefbcd787a86b75772dd8461d5cd8a8f3c3f14b7b305ba6e51c765302981f0c3632a2860fcf61735396fa39bd407100cc1e8dfdfddfc0b87735b0ddefe96f2a2de97f168e41f2383c345ff93007f6fd505874f2c6cf2ed6f30ab6a2c8bffbbf6d3cf32ee716c85697db87f2f2b0b9cf65a48cc15187f5febd3b015b3339815beb3b02f418bbd3e7c6e9fec74374a1fb7ce9acef3b75292a3659b04f44062dae0980f6426dfb1ebe6d67c6cfb887f5fa3f9027ecf4936f3c0995acc540a4691cdd28909b3df8c48a4a27c9772763f98e7dc7d8a5497142aabf2c4c472ca397edf2fd1a74af576fbe1db292fdbd140d64a3c65173c0656619f5e5b3db0596a955bf017db34d849f29902f8a08544eb8aed66579084ba3aae9646d170bb76eeaaafa95f34295f2ce86b8bfff613644cf1ea061f7af8ee42df5d97a83a094d07219901d2e1ef26517364a03f031a3ad\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 8889564896395f4392a9ff76ebd1e0f5b3c5254c83fa7fd7bf614aeac559db65999171139bcd3c0fd6adcbbe7adfff9d8254ce2300d4ffc48ed00131243811677e8916cae0ff5752d75135fda0acd167b0e383f48e2cee184917d5f860c0bfc88a59d54587825f75db894de2e9f40bb3b168db171e8844d64add489ad839f47a63edd6382972d133d1d8887cf120a1dbf4cc3ebc0845ae85d6abc4ca82be90648ff4905e11e9a37137cff9400a0080e2d13babefbcd787a86b75772dd8461d5cd8a8f3c3f14b7b305ba6e51c765302981f0c3632a2860fcf61735396fa39bd407100cc1e8dfdfddfc0b87735b0ddefe96f2a2de97f168e41f2383c345ff93007f6fd505874f2c6cf2ed6f30ab6a2c8bffbbf6d3cf32ee716c85697db87f2f2b0b9cf65a48cc15187f5febd3b015b3339815beb3b02f418bbd3e7c6e9fec74374a1fb7ce9acef3b75292a3659b04f44062dae0980f6426dfb1ebe6d67c6cfb887f5fa3f9027ecf4936f3c0995acc540a4691cdd28909b3df8c48a4a27c9772763f98e7dc7d8a5497142aabf2c4c472ca397edf2fd1a74af576fbe1db292fdbd140d64a3c65173c0656619f5e5b3db0596a955bf017db34d849f29902f8a08544eb8aed66579084ba3aae9646d170bb76eeaaafa95f34295f2ce86b8bfff613644cf1ea061f7af8ee42df5d97a83a094d07219901d2e1ef26517364a03f031a3ad0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = 89564896395f4392a9ff76ebd1e0f5b3c5254c83fa7fd7bf614aeac559db65999171139bcd3c0fd6adcbbe7adfff9d8254ce2300d4ffc48ed00131243811677e8916cae0ff5752d75135fda0acd167b0e383f48e2cee184917d5f860c0bfc88a59d54587825f75db894de2e9f40bb3b168db171e8844d64add489ad839f47a63edd6382972d133d1d8887cf120a1dbf4cc3ebc0845ae85d6abc4ca82be90648ff4905e11e9a37137cff9400a0080e2d13babefbcd787a86b75772dd8461d5cd8a8f3c3f14b7b305ba6e51c765302981f0c3632a2860fcf61735396fa39bd407100cc1e8dfdfddfc0b87735b0ddefe96f2a2de97f168e41f2383c345ff93007f6fd505874f2c6cf2ed6f30ab6a2c8bffbbf6d3cf32ee716c85697db87f2f2b0b9cf65a48cc15187f5febd3b015b3339815beb3b02f418bbd3e7c6e9fec74374a1fb7ce9acef3b75292a3659b04f44062dae0980f6426dfb1ebe6d67c6cfb887f5fa3f9027ecf4936f3c0995acc540a4691cdd28909b3df8c48a4a27c9772763f98e7dc7d8a5497142aabf2c4c472ca397edf2fd1a74af576fbe1db292fdbd140d64a3c65173c0656619f5e5b3db0596a955bf017db34d849f29902f8a08544eb8aed66579084ba3aae9646d170bb76eeaaafa95f34295f2ce86b8bfff613644cf1ea061f7af8ee42df5d97a83a094d07219901d2e1ef26517364a03f031a3ad\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", }; -static const size_t kLen295 = 48491; +static const size_t kLen300 = 48491; -static const char *kData295[] = { +static const char *kData300[] = { "# Imported from Wycheproof's rsa_oaep_4096_sha512_mgf1sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 7bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c9]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001028202007bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c90282010100e97acd5f64c460b2cd51cbd70af5b4caa2882bf6033a92a23ed80f039e8a32c8a4c483f94ee1bb89c1dc1f6d04360a1c3f654251ad72eb39cccbfc38b072054bb0f21b9d516ef272e7cf86f8a8f838eba829e7fe9d803d469a1810fc5b37476333ddfc0cb6f00e9967970b4e474e04373f8dc92df50fa155e3139bfebf4e1cd274705551f2e9022029bea4b86664633d13fd90ebdd0b72d95a6508b6b4354e64b187fd81d21a0b1e4a853c27df11d7fe6c8953cff6344f50ebaed2513dc03761e8877c71ffa8005331043027b8dfdba97cae037fd5d1fda1f145a200c0d20f8dccd62e5c489eea8ae827910d3f48bddf0b18dc3089069f96d800de47036859550282010100dd1abc951ff1474ebfb70807b160b110b1eccef429c8fc8535ab0aa98376a82d3d33af906fb0395750b9aaccd8723cf73a8c3a6ad5c3a0929178ac55e1bd1ba1bf5da4f7698dbf09e87c84c45ecbbe8f12d3ed1091bc470eb2c733c31f8d27eba9718ee78db887385bff6b67950b79524482c50daead4db0f5676e4b92875b5be383ab1cd75e1cadb59cfb5794c17220154aca808f733a636d28c016d9843940bf44bb15ed191f53449b1651b79554c23e006a56dc0232cca209bf2d3c12cbbc0ed8b3110aabd365b603ea8cdf15e8b9ac781155f92f39dbf9749f70df003195a6bb169ea0e0d69eb3a18ce8fbcac9be3c710e797acb5c05a399c2f102947c870282010062f25622fd53741f927ffdc10eb5fe7e79cef7c274afd800c65d4e4f9c5ab916eb2d15390cc301756a20dd7897f646e69dbf4e11cb4e0e7e1a5ac0734de3a476e570555fa069427a8bdf19363c75a5b9c934a94af078ae7f4342bbc016f02062dc5251451a2a3625b10f040d928e6f9ef262264641baf406b00b596ae6ac35eec2c5f082a04d3b476229972946cb787b2403abed296a76abc2715af602fd2c51e422dbbeaec9b6b889a0595414673d806782f37008c9366bf6d5c9f000197bdf146a86c4d131e3a15dfe8661ef297fb01e54a8cafe54d6065177cf263e91476232d2fa26c5e80342070ced9e0d99c84dc4282ef8aab991dc9d8210b14bb267590282010100b83b9f0763265894758abd562ba6b5e3835e1ed3b43d94ac2a9beab674a45a5dd7b14988c087c63fcb33e9ede62cca3ff6b901b4238a6e31b2a52a742534bde178e33ea22981c2bd2ecb1295cda757913fcef6a9e7c54a302527772a0f103f434e5d21063040a1eb843cbff1ff6f20183c9dfa33fc68cb63b81806ff518917c6e93cbd47baece0589e0bc022aa00c66795564c85f301c095384fcc3f3ddfbf15044af0d8c4473aa2d777a29154b74978d0d0e7ca9867fc8c263898e3c83aa12881f66ebeb4759820181a0b46765c7b1ebb67108ae2a7473ed40d290d93c3458dbcf00759061452c0ca4cc26d1fe149590a63e9fbaf25e3f78eea8054f22167e10282010100c301f6bbe5fb5693f665b26d1a61e1de87e38950a5825270ee68ea5a5667e11a3aed28b2266768d1a3db3437dbda681ac8294dd50ad0b4bc5cee5694831b8df7354695335740b9b7dae5f7881536da6a6b2ac4308a0420ad6e99cb779a6338f5012986b1c1c889444d90585fb0dac995ad6e93af7eac717c643c4b8e7023cf57cfe284ca911d6dc3132b08e17f4e8759af42b43ac929c0259c3a1d5e5f7c4b247e2f6461aeff8577aedc710d6d2d56d943c211e47467421539dfc2700663c4068031b695e487ae6910ecb9c547cbfe12cc6f45b658e2c6f9f8fbe805304194a9d1d9c6d599c5ac5c9ee5fa78c8a4583218f7dc8f4c8d3adf275eec0e0941fa69]\n[sha = SHA-512]\n\n# tcId = 1\nct = 8e615a3b27fae31bbcb6abbd713e54498b38143c5a740eb326cce75e2b9df42b6454dcb465873b831d3c18c4a0e4d941ebc49722402aa05498b34a7fa56a74774adada8c9c3af19386da29c191816117488a37b9899d135da5e8afa8e2b76a87caed1b050b8289d110922ca9b19ed932be12c92b36d36ee77ae9803fa8bea86cf8287954fb0fd69a0cf9809b686bac0c0035d8ed0bd80dc2c5020b6c6afeae2d7998373d551ae3a868a06854eec8fe07c8dc61408676ab2c21c251c5877bc31cb570724bdda76cfe2b055d5a27d1b3961518ac88afd3a041e2d21542ca027d6cf8c71c078016f1b23f73aeec8b7f5b77bbf003ab4233d0c56ea42337f5ce83d82b5e05497f0f8e3b4f23b78f71be7691f5bd66544a60f2ee685c9c70b17c5933e864d66f1ae50976629c7b76e91e17c1bc3099f5fcd191fe6419097088fed1b7d875f9a39dded5ca6c7c1ac36edf1ef3dfe9cf707de34c21962bbe9e8d0a92a7bbc0eda639d813254f44c47983db3d35c662096dcb61324e97d68320624f97eae0fe0400a7b618039d97bed9034c29846278a030d3c2e0932bab62a9ab325bc07cec7094fa427a37a937dab17357ede8d08d3b3f76e95f1f470af327f2a98ee1f56a5c69d1eeda8f0262fc36e04c78b051f4657c94cbdfa3218385d4e3422f5c4cf7d6c869113e0307a3c16f41db561c4a7d43e1ecd8ea7ffa6a6a548606ba96\nlabel = \nmsg = \nresult = valid\n\n# tcId", " = 2\nct = 77c634e7ac8dc0d271f8d970c3d59ecdc19a09ad5076f586942116e7125b6df207f8aa21217c47862419cfd64f8cf83302660cae993c45bded252c6e618ff225d251b0057099b3bba4fbf9480b536e5eb6f39f64f2c9b32c7d07edbedc4a642a7d69d263d88a62475769b653e550dbabc1d2fc0d14e27bec772b2643f46bc6c8950415977fe21b2f33a432617134bc208a613c3ecfcd531950d7ed44b925b3f16caa870419de62053c44984fede89b8503212531c13345868265d1fb139d2272a9f659e6a988b9f54155251601259b2c0159b3dda4910b5190694d98ae847b05b152fb63c1fefa31abaee992a46fa7407499ba1f59b6dc69c348502fcddc58fb2c60fbe30f7471821b75572f149138841972d08515d85ecf0390ade20b1630c9f7cff16bb1c0c0c566fd0e55c1090dd28f18b5019347461e4e533a1d97e553583af0beec3f1dc3a595f855baa75834eeda16f6adbb435be7044050f164b6ba4ee420ba9186027b166b50534d5607f2635c3317ca87acb9fa9d08272fc1b69eafe2d0b17b81def08851e9f623e14674016ddad14a86125f629d3642f5549c1bc69845fb7fe01b9be3c77051781635f438c6846a17a1c15669f0a161edef0c13d01ee2f53902585dd02d2f139bb91702ad29f93b6275de15bc7e537a1d2a4f8df47fd7751a4f9ac25dcbc9b2e43d21accacc6c3f7155845435faf50c275c3d4572\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 1dda78168838f43a71aa61151bb8bb953c204d0af526231cb804952d4e958ed47d2b51aad7c3ddf0cf5af70b87b5a5c80d9963e261309692a822294b40ee3ad67af64408508bbb18dd2b61090882869a5207197ffe0df39f278c2f3a710e0f8ea451b655fcd8542e07606af88a44a7bdecf5a523c312ff73942ef4e8105a5cc69fc1bb315f77f36b87477ff693289963d72f2ff0b6ded18a0d56d79787928ccd72b7d5d7acd61d37d632cbdce66e2cbfe990cb6ee250b8261248e81013df77448dfe1cdc5b812c8380aaa0c19e6cb11781c0e3080017ee254b89fab5d534cc4192946217718d3161c87231d955d4fbecaa817fa92800104fbd0bdff088fd65e9ad9f8513c88fa613d952634ee8306166225a2f37eb7ed779fd6a799f0e5600ef915867d88e99645bd797e261cfc9e462773fb52eb5398e4e6efc189759c2405f9506ed48e6123379ba477bbd029e8bbd11ba86239e138487ba48882b0c3ef356cc1b3cb2cffb0d2d0c9161f8dbab0a91276a242762d18ba36b2daad8527c781a2343a110c4acce2f2a4c294057765d82e86abe6ff036d9331f1986115b8a22d7e425b81f7c0f0e32fb57b2971e8a7032d155fcf61d0df5e9415344519891a712907727bff0b31cf652357e7755c68d35e22dabdee83f8b46ef4f4cba34f180b957d52488c033f4f2fe413bbd6d83e70c52783d78bd98689bd6d822618fbd464c\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 2013a5504dd553e9ff2d0c42eefb6f6978cdfee946ebacb69aa0071640f42b1c6d019ab2c50362c7e271382d546a9ab53aed7cb625fdc692a60b4112df16d85db4a748935df606e4805419d4cd4a595285f369e20c7b474a2f71a6c40642c4e84f6ff870cd4546a4bb2b9f92a77d69bfa85724caa7c3724aeea131d9e2f61b5c24ab19a3ff46ef9b25e8951a165b2a795e8d734c996f0d3cdfc97995952195b60c65979f154ff185e880be3948eb95e449f5427fc3cebb805bc971dd32f57798e11d4411c7f2cae6ba40c711a5748c68d37fc7f493e5d389666159a55c57b1edb99fa9c30bc7eed5619177a90175cd0cb290b93b75a4725867baac40edc7033acb3b31e89063546d9c5b0a5d4c4f9062295269c51e7230b35fb2003c2e913f4c234ac9da3c467e6d522872fef1d28493e469b8e9efc1f6c389e69941b51977c4f4bb21c02a66926662899bf3dd638de31d47f8ffa9d8ee3404d8fa102985d2f8ec1e684acd5ca046e8b96d122630b3a7059ef8e7dc930c81c97bd81a3e3b9e984602d71cdf9985778f5f3b04d3f30faf4bd8a323ce6aadcedc43e3027abad83e92667afe962b07edfb218267f515c44be8509f1e26558220207468a318fe23e07fe2fda04114db17e754d9775d2c4951dc1c7f8d1b4476aa13ef50da043815a2a1c6453546067eb463db0877f717ec70c176e3fd73c8377ac3a8fd19dd2bb80f\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 0f0b837a5f4f036f5a1b38669a4768571e1ac523e89f082361530f1288a55cda8c6cb5f4b7632d4624a9ef1507546ff1416f5baf2c6b53f1bcb9aecb305b6bf57b204282c74827ee71d23398509537bc7dfda5a4810b0c4b6af3af45e838e1586b9728509124d8b49d0a2adc8d383962fe70e4524e2fea9bcbe5c71ab05ec65b5e4822a6b765de292861c86a7605e3c20d1e3f8e8268a21a326f51cb66ab0490673f036ebe3d8fe5fa39e195fd703c1c93b49f3697d9f73f683b6f70d5bf585d72324d34efc79985463ce1df5c6112720e9bedf876e1b80f36614d719743e4420a62200dced4d457ba2bde819fa7ea2643eb1a4672e6827c915920fcb94f3ea9c1b0eefdbd7e5e07d1a2d6738a60ac7f81be705645f2b33af5d5a20b09ea4c3922169bcdf0d376fdc80b355740686e77049028f2f0dcbc7c910b8c15cca7461ca5a411a9b6d750a315a250f0da703459a2147aa3633c5711d3938f863e35713b802788e2d20b0de356fdbec6d187580b75d97cdbe7f07ffba0c14bb88f32e30613a1c911eb82ed72b4bdcc232b46684c581440df157f780fa9ce534ae18d20d50187aa905611b2b045d8b1c2061b0eb9fabae940de151348d10f0f24f753cf6f667bf2689a73bbf3089bd26dd74b803ca47d9da8f9ca538f4c7a62aba73def2a08f92eba90bd6d482ade0b6b724bb100c9231a31a7a0973af2de4fd5aa752450\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = c40804f6c7fc5ba3c30f051a719c08823b6591f45a899fc9839d8dd77157761ce610d4a138c10bc231e53f9cf87d5fa26aac8f167deb1b6522a4b365a136849d0124b09a03c4d5f5c26ea90f7a0fcb4518625c3ae3908910085be3757143e1fe1fbd23bf0942174491cf8f7c2a1b697efcff99822ae13e2f4527c1b8e5d50c320971dfc3bf8761fd08ea49f60f78c80e65edb08aa916a5cb9355e9201c867fe17ccf4bb36d69dca6789906dd27515b1dd99285f483f8fadef217c80e0a430926bdad691118a33577689ec1815565f51dea4130533aca7a57a7bd706427ce2022000421a26a5d1fadbb834e6d78fe4dba457c70820c1c0f3f1efafa8a27ba302b1cafcb9b96f41a4f34633a28e87a6202f13fb0e41df3ff644a91106925c5c3b875c313aed8a04930011dd866c7d52ed018a6233f0125f4ceae5df8ef8890997868cdd3756e42775bce57327cff10e4daf568322f1021b140262f94f4c061c31475de1807313f1621fbfb24f4d779d99c917fa5104f93324ae675621df90b02446d40ab2f319c32d363b265ac32a7ffc6d262e7903d8c05dafeba307cadd25927a034cfcfc784ef45136c950682d313d35c20cfb918490c86eb342dce1c2b68967f3f10d439849a4b6db8430702615f36af9839391b1316c0505ee18b8a35806a94b73d00bd5e8bd2b79d383b89ce7bb046e5ef957d502fcd9e0290fe70886991\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 9e053f731455e4fccecfdd3260ac0056a291fb4a37e297899e812777054f13c9e836f27de12cb2549d6aab0ed553544464119c495067e90699caed744e61ee17295673d2c868b41cc23f9e594a002a7eda75f1bd7e0b211c3c2e8122fc2568131b354b722bc1a29ec52e718e471c212cef4242270a4f9a765f6d077e37a01091bb13ffd9ef02c70462aecff739a2624a5d8d8f5cb8f8cd3c6eaabb683a10bd131afc6197a8d21d6cb066c610277eea1221d55c9c0d26f553ff7c22bba1a883d22f153c18ad617b506ad55e4fa04fbfa7cbc7fd310b49809c80513322b9ab296aa4a033ad3bf785c1bc5ff0c928777de67a71b393b213227e102c145e9b40357f251c19bf572a48c2e3f5f0bc12604c8475aed9baed2155028feecfdbb328b488bd5bdc031213b0b122bdb9cd44097d1813a759d13122530587be372a779e1aaa08d18a84d26213f936885b73835c27939e9c5d284076a09ecca3e6dc6e5be5c36666ac1ca1d8796502e0d5359cd6fa43edec58bc3d2b39938e69cd46e2a62ac4f6760d8c0c84765a6f5f6b66411dd3e217d690452745808a2c0f0fc504e6e56989a72bd1a59774abf529067cce618d2c39c05f0b400e644f7ede106e6eb1d0635f7f32ec04f86cd3628dba1f967b3109bf0052613fa84012da70ab4ea84e5d5942d42a0b9e3d0c80b0343fa9486c5a077fca77ffd30256cd4f8138dad30d6b5c\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 63a3fabc60b94267d318b377327ee6548f594777842681fe21baaa2e9278f001a575ba38a207a3deeeb2258de8f6bf11276090f869efe817fec6299247c09550bafe7bad02d0d7e0be51f8134bab130d4a9c593e3fbab7b276034f22ba071792a4031e591ebf2d67048ef07c6a017d2f71c72f8db0d32acc16788976f02fcaad2097aa83843773e59ef4c04f383f013f86e2334f215cfbfe64257f60d0797e5a56bea35b5dff983414ac686d0d80d5ae14572869d02d442b6a7b88954a9c0bd56a872fed20dc45fc0ca511db195232021fca52ab997191a08d1c02d0ed41de86b49d05715974776d8b0fcfc5a78432f122482e28812a0608ad1570de40c55397abd5c2a58046519a052cd3e2f03cd9e91f4888bda964e7e52d1296ce1b41b312d20f640276b91a737e9db0bf4fd449ddec6da642559b92d0a60405e868793681a2366904e8fa4eeee0368a2d0a606173c9470e26bfd462d97a8e40d06c31a4330a9ec02de58920c6ac90dcd20debe6fc14357842640b44b8d0be5bf03d737c4fc08fd37ed249017682b62735964a24681332b210fa8825bc60ed85e857828004b6cc42e8cf8b7d08308280b0f6daba6ec96cb5a300dbf3ed260984066478b5b93274e1b627d6a2a126d9e8d2db8b886686cccf6361487f5a0d62aa0027f1608e1da7f5b909f247ac42375551af7c3fa53673470c1c156bd953cf188f62bc696a\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 21f1f6cc2dddc3f1d41d482a0e1161769b8468f2340e32187349d80955e7003c57386a85b297aae086ac1550f90f8a5ba73192818c68f0cdc9f1a69ca518d1bb84c34538d9b0fdcfaf2ab859bd24748b326c8f8e1f0bdfe2d32fa7a5a6e56dbf69b07c41eb81ec699c79be15f34cefeaac0531923556296b7f9c29b06c2f8c4c36f5adee505c95db1496bcf923b27d4af4e083e986b0bd04cda37312a99bc091a81485bd335fa7e63772d8512b4fba1df03cda8cdbfafb26479518a75618068579bec06809c3107cdea7fa5a264c9dc0f43ea9db33b32d4637b65b7fcbde0d0c959b2c5bea8518f24f7f600d33d89ed286044d4594a446aea113f86", "b19764f68eda9ce15504f779316529bef78d1a83aadaab26e8aac19947b85d949d253713036d7c04f405051fd33dd8cca36bb657b3519f4e4a1722476b02577db945b86c39f8614df5782fa3e1cc7074cc5b5b71c9cb1077d8e88ed3aaa9be3745859c4649dd2845b4c6606c8f689cc5299cce15721eb0a66e7b6f9a9105191bf17867eca2a2668ea0e9598454dce6a10846f49e680c4bed4a9db06c5b92f92735b4dcfd63506ffeac5b354a09d16adbfe6375f9b6ac88fbd5402199f68d31254cad765a554d65757f4ecaeaa55b0d3a4934e24bb12f8fea46b18291e9aa7daec97ae675707a3913cb08b306876ce15a025e386cb03b1638ae4d4ccc76b8ebed23b92a004\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 5559053e2566127dd1aa6ee3eecfdee11fa81f6896569d8a4f85c350c4f258126894f6826ae466ad939314b2674397f4aae2bb6a6d53ff89f5806cc29ee6c390434a4eec144547603742bbeff4584b884888b9af8988ec8fa2567cb6749b636b4a2a6196d2751840aeb64dee7dbd25c32b42776d04a2797bacf5e274895771f43b519a89669f56233c0b9a34c8a8e87b70ecbd5aa79337bae44364af6638e3d57b86946e3d26794434f8816b533aed1be591087448a13a1b247a64bbdfa989b1cac0047c966af74d0c9093a410cfbfdd828385597006b556276e6a466f9f3cfd38ccaea36d0a3bcc5acc63ed8f65ae5c3aec3091dcda791e7931221c09399ca56bfc3c2710c0211e9766dfa6f65cfbc6141479414a63a62d7c72830ff955b1cd86b38802d7935b430e7a802614d68f5015ef90adeeaf15f95bcd770fb7efe4d9e6a0ef8f23ec0743b3f71a9520e20fb60567998e58658abf6ecb98935fbcd343a949f952baec6ff5de23552ca435866b98e36288693b508bba177c09dfb27e13d70c741712d663f3525a7bbf929162d6f45031ead380ad869f40e230f78d9cc8a8918964ca0d8499e4bc355b3851a1fd1f03953d65935f613483058f6f250924db780733239b24dc454f9881df7648e2d19b416c2f8af53948cd7ea06e9b3baacd7fbd35e50a245c8c7d2113d9cac43880515d3a0fd6f3d76e5aec0d38f02e63\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 592e487960f3169443c5d6f87166bef2ffd52931518f3b0e5d977f3a2101814e749fff5fe8eba424a3d439609857940f5e23dcedbb45cde57c21c28bf729e396530d21fbcb96c97a148c5708801467b15be1eb0d35206105f543d21022fd023ac89b616ec790a9182aa053ee4aa7962f33f4b413a48ee3d53b2d247988683d4db30bf4ff6d80b6d0ce82e314ed6dd7607df577f1ec956acce51f744f89e7c6a770ceaf90b20665df2ca8050ac25ed29ca80a0351ad790c3b8fd00527195f427410dca6bbba37a441cb82e44383bb4e077fca32b27626051c13886392c10a305890454588f508ef8d9d0aeadd8bc78991fac96c5ffec892381b03580e28926d8b3a51da862951a05f48ef809b9ce11f23323ed10fd597d0449acabba954079164d775abba56da956c513b601d1846c867c6bbdbadf195db11857d4135c30c2b5898782ac9346f7fea4e2ec80b39b0ed962e0c1b34494af4441e5dad6d05fa7a47763368f850e3b81451b47ec12886fb317f5f5ca688275ff1d97410f8eeff8e210680c799f45dbc47744166d5b470c35a9df574dbf1b255931ec98e82e10985ea23daf960862882eb3ed17a99fef36af01b6168b22ae7ae0c91045f79da51fd62317630e123e322dc692c386bb9e30013525da3289321f311b8cd4e90175573debf08f772ce6d9257a6593557f9edd956c827a285f7bc620e262a7d64b8c56478\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 8bef4f3022bf5b4897cb318c5a2bbacab6b5a31d84553837feb0ee90f0e26e9c5fa0b963e13fa3f4867f60fca67c9de0ea48cd495df7083c269cd3d7da9942847623ccf81deb85240edf5ce1ed623f5edf0f8cbac61182538be43a32710d62881a973c12fd20012209ed24a8fcc64ba98cfc15029231ba9bf8c6171fce1cc365d7d49c169371e68191d9ed06a2f2b0b9dd8f21750e50c897f808e696730353a620656ab4449918b552628445f37e168b9d8e812bd6bc6ee3df375fccc531546479cbe773a839ae3523b7ba697ea0ca9cbcfe995f9f3e22680a787f3a43206571c556e6caadb9c6ea8f51da21f00820a2b5a3189fe1b3ba748408d93502cbff30e5204df86076a6612513db0067b2011927349066ba94b393a7dc23934904e6190a28c48d0913ba65f51e180b5458e1f0dbf0feb055bdc2f1002d2d4a1e506af1367d234dd0751cb2870fc9f4b84c05839366a2120503e8cff9f648c1f0b630619d5e020ea4ef7066df63053257d303bbe3717591e769fae87a9f92b1b04f9c0d879391fc063c8e5534f7b2eee96385fdd188b3ba26d6913ad9a767334dcd8d9b5b596a808301518de9f12f12b48b99f192670865abff0ce432ffffddfe5c311c3e321db48e79399c1fb530cf127936267dc18b05ea7e5594e77c63231d6a79f261854c856a4507d09ba5796995e1410135e05f16c7c5dde89973d35b0ff9b5f2\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = ab1f96560081e6aa20dcf6eefe00040bed6e0810076e5ab0457e276c06aea748946ff1f44c4884fc0509b79498709880b9be9a10accb2dad7a1195f6dafd668bd6d7b7225f1cea79f8c0dee13d125a0a1ba905f498ace6396e51f61f263af74304273220aeb8967b5a7f90fafb8226a1d3dac4f9bb626a513e4c7d352b31e25bd1eee15259fc3a4dba78641363e261242e18f860ad5f7ba35e60cc6c04c0709442048fe5b34ff9c567cfcba5a146df9f0c5fd9c1ba61d99595712e98a88c8c8d4b643925f0801b59cce4c1933d864b46c038400450bbb5da930612153116722050e8f8b377da4114052ab47ac3757aafbd6b7efcf006541681db2262478d3d125945901c2418fb3f013c5a9ecf3165de6e64b64a45e5bdc35ba38b6337b5da3cd9ffbd2a92f94565935f9505b1abd2f9c22705b5677b5e1e1290054d5dcae14f9314219287a4a618e2671930e6500acbba9417ec71e23b64d1cb5326f2fc531c5602e4b2fe45bcaa892dfdd8b05def3909b583d40e97a50ff7c38d29f7da72c92d7517e795ce7474f1ddfbc0cae588bdafa42188cb85204dbe88d742bbf7f71f7410e49b9215d9cf14a47d8b5bee0bc7947bab919462dc2c5549181ecf6ff07093fdc028251b8edaf2861a76465b9e22dd37940012d78182955e25a2a21ce157c6a93de447125184be3ad362f86b0299a74478f46061091a48704285fbd3a668\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = bc4463414999b839a31fd9e688d87f659a154a3025c0bc4bbb7ddee3c343b3b0d302def1195d56e39168b39dd48ec9ba5b16f8f52969e151ca122b06990d424b84884dea7a27d65b009af3125c2dc57aaa19bddb4ec284e008fe3c611883d60311c7cb4275588813e96090601c5c208f1d106145d02a7cc06659bbca484e1c898eb03fce81aaac560aad4b1e0dc4c92fafa0d4e232bbcfabb2e8c714c821a5673201df7b163f27d398451c4af2bbcd1448f83a4a8b238351b0561ad32dfd856b9a44516b3b6c20f5dee820aeb8e953d72f8d7e1f742d729bb1511d85400866e0f604e22f98e2f48033539756e86ab74939fec4568f37530678667e18bccece1abe6d3d934efb95ec85e1be5f0c2c4a3152cf5724a98a6f092de8ab70664e5a0725c8e5ed218540acd30ece6bc1279f1b8241660288b09300062e5d419525a9a7d6a04f24c2538189c9aba60730cbf6f6e208654077ee8e00a1e4b46ec3fbc37163572f0ed22b187970fed4e05a3331252263337e1d99f9d8e8fa5e42d5c4eb0b8cd9f4580b5c0c23667ac95004644eb125a6bc89b056d29aa9ba0757dd1bb7087102ef146b0bcf4f49d8898045ae7345ff58e4f804de5ec45ca10364bfa5594ff22049fc70801c1533a7946ac8eb445a14bb2159ff2c6f500fd67278b853d8b124dfe0ff022d0839533e4c17823639c6fc2fd0472649483db41ce72164970122\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 17a8c7f746c34ddeb535edc9196c8a8f921dff923eb8ba3be9fd7079733982a147ef9aa5e9b32ff0c54968cccab1ba030dc623204693c18acffd0bdf46730a04befd55035b969d829cf539168ecd100d24cc7b8db4651054b5e63def4d6b183236cefb3ad9ae7c8eece2fef6f5c3355af267a7ee614050bae80eceef92dfb3b994a37724d46dea998894bc68e37252dfcf5c0a43bd3ebbde0d5a99fd8ad03a42f5d18b464b1f0a46a80242d7533ffc26c012b03626a0339ce0649b1264e9b5ff0654a52ab981783ef6c1b0b53a4be1bcea6f0367e4a1f9be96091038279d6bd15ef2f87e0619915d999cb30044f1abd24e019fab6dc7a1c413fef5dbbcd29d268e72fff5da72de0f4c0813615b27e74776af8b7a58f4f29a233103487f20d09750bfa9c272d0d57bee59b1e50577a04fbb46523ce1a3434f72fd69eeff3ab5df6c9d5e6832ba2601c0876f9c67b5854ea9a046b2ca9b0d57700728e19204eae99e1797637d510b54a2057d0f772ceb31c84d5625fd3c458bed65501a38ad0287df1348290c8b296fec11e7b3e36969bb8ce32ab7ab19bce268abf0a5c183f9db1afe56f47aaf73a1dfa499b8669a50191d80635c908f4b46183a33f025e0d1c6d7a85e3617967a421d998ea2a7461a3ddf3a19740273fefaf7cf9e64057042adeaf6b765e514071b92aaa44078cca712063c1415395f2bdcf86108d77e0f2a9c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPad", @@ -8150,9 +8460,9 @@ static const char *kData295[] = { "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d2\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = e9bb0b12b3f09a5ecf2054518959b594497b2eb3035b6bacc2e7ba277e14c43bd23b0249e12b87ef366733da226bc6dfc5a30f477324658da07d90b79837bb9e47b35902d92cfe816c450003562b3dc90e8208f02e93b217e635f8fe296e2a9d4e9cba9e9194d0fa50537730245546b31f8937c2635e137eb1b297a6492cac1b36e88d363bca78c4f2988373ed2233d4ebd7e8078c40a00684b1f5e3a7ddedb73cde4a298cd9d9b487b29c589655c08b31fb753e521a9aa69a56bb8dc70c72b2a5a6048ca0a23d1171d249c3d59d3386d9dcca35be84bf4dd3dee8f3602f44269260750da3718ff5704ce66f41b8b8f97d6a0fb09c93616b29384101f2638bd43bf4a07d5c9885e03ec3aef9aadb7e75eaada3a3e2c15d2d7a557ab63a00b1752e15a40cee1f2d8d1604fd883a4e2ca72c35a3fd405453f4830a2ec2bbce111ebd2d0982060bf006d9b7d220d5c5ab5b7e5061b83eba5c9203a26284d2c01fec65d2e6c8fee9835bef26de005f68c7b165b388082d18db7a70ebe4be0378f13dbb6d3ad091089aa7f2154d677a77a5d0586488130dfad798eae4c6b61b90af10b95436f2e3da96f258e40946c8dab0999f04f2652df4b60b1a02a538cdb4325a6f2d2e3440012f4eea97051ea73dce639e35bae219cfd9e27adc7d4a6103dc8a7b99aa9d4ff2bbe7bac248828d60d8a811c725e156e3293af298e63e839bffe2\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 00002013a5504dd553e9ff2d0c42eefb6f6978cdfee946ebacb69aa0071640f42b1c6d019ab2c50362c7e271382d546a9ab53aed7cb625fdc692a60b4112df16d85db4a748935df606e4805419d4cd4a595285f369e20c7b474a2f71a6c40642c4e84f6ff870cd4546a4bb2b9f92a77d69bfa85724caa7c3724aeea131d9e2f61b5c24ab19a3ff46ef9b25e8951a165b2a795e8d734c996f0d3cdfc97995952195b60c65979f154ff185e880be3948eb95e449f5427fc3cebb805bc971dd32f57798e11d4411c7f2cae6ba40c711a5748c68d37fc7f493e5d389666159a55c57b1edb99fa9c30bc7eed5619177a90175cd0cb290b93b75a4725867baac40edc7033acb3b31e89063546d9c5b0a5d4c4f9062295269c51e7230b35fb2003c2e913f4c234ac9da3c467e6d522872fef1d28493e469b8e9efc1f6c389e69941b51977c4f4bb21c02a66926662899bf3dd638de31d47f8ffa9d8ee3404d8fa102985d2f8ec1e684acd5ca046e8b96d122630b3a7059ef8e7dc930c81c97bd81a3e3b9e984602d71cdf9985778f5f3b04d3f30faf4bd8a323ce6aadcedc43e3027abad83e92667afe962b07edfb218267f515c44be8509f1e26558220207468a318fe23e07fe2fda04114db17e754d9775d2c4951dc1c7f8d1b4476aa13ef50da043815a2a1c6453546067eb463db0877f717ec70c176e3fd73c8377ac3a8fd19dd2bb80f\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 2013a5504dd553e9ff2d0c42eefb6f6978cdfee946ebacb69aa0071640f42b1c6d019ab2c50362c7e271382d546a9ab53aed7cb625fdc692a60b4112df16d85db4a748935df606e4805419d4cd4a595285f369e20c7b474a2f71a6c40642c4e84f6ff870cd4546a4bb2b9f92a77d69bfa85724caa7c3724aeea131d9e2f61b5c24ab19a3ff46ef9b25e8951a165b2a795e8d734c996f0d3cdfc97995952195b60c65979f154ff185e880be3948eb95e449f5427fc3cebb805bc971dd32f57798e11d4411c7f2cae6ba40c711a5748c68d37fc7f493e5d389666159a55c57b1edb99fa9c30bc7eed5619177a90175cd0cb290b93b75a4725867baac40edc7033acb3b31e89063546d9c5b0a5d4c4f9062295269c51e7230b35fb2003c2e913f4c234ac9da3c467e6d522872fef1d28493e469b8e9efc1f6c389e69941b51977c4f4bb21c02a66926662899bf3dd638de31d47f8ffa9d8ee3404d8fa102985d2f8ec1e684acd5ca046e8b96d122630b3a7059ef8e7dc930c81c97bd81a3e3b9e984602d71cdf9985778f5f3b04d3f30faf4bd8a323ce6aadcedc43e3027abad83e92667afe962b07edfb218267f515c44be8509f1e26558220207468a318fe23e07fe2fda04114db17e754d9775d2c4951dc1c7f8d1b4476aa13ef50da043815a2a1c6453546067eb463db0877f717ec70c176e3fd73c8377ac3a8fd19dd2bb80f0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = 13a5504dd553e9ff2d0c42eefb6f6978cdfee946ebacb69aa0071640f42b1c6d019ab2c50362c7e271382d546a9ab53aed7cb625fdc692a60b4112df16d85db4a748935df606e4805419d4cd4a595285f369e20c7b474a2f71a6c40642c4e84f6ff870cd4546a4bb2b9f92a77d69bfa85724caa7c3724aeea131d9e2f61b5c24ab19a3ff46ef9b25e8951a165b2a795e8d734c996f0d3cdfc97995952195b60c65979f154ff185e880be3948eb95e449f5427fc3cebb805bc971dd32f57798e11d4411c7f2cae6ba40c711a5748c68d37fc7f493e5d389666159a55c57b1edb99fa9c30bc7eed5619177a90175cd0cb290b93b75a4725867baac40edc7033acb3b31e89063546d9c5b0a5d4c4f9062295269c51e7230b35fb2003c2e913f4c234ac9da3c467e6d522872fef1d28493e469b8e9efc1f6c389e69941b51977c4f4bb21c02a66926662899bf3dd638de31d47f8ffa9d8ee3404d8fa102985d2f8ec1e684acd5ca046e8b96d122630b3a7059ef8e7dc930c81c97bd81a3e3b9e984602d71cdf9985778f5f3b04d3f30faf4bd8a323ce6aadcedc43e3027abad83e92667afe962b07edfb218267f515c44be8509f1e26558220207468a318fe23e07fe2fda04114db17e754d9775d2c4951dc1c7f8d1b4476aa13ef50da043815a2a1c6453546067eb463db0877f717ec70c176e3fd73c8377ac3a8fd19dd2bb80f\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 31\n# em has low hamming weight\nct = 125414a4d9a1c6dfb02822a23a43a54f9a43b4695f7e563da34da5c1706cf07baf3c7c58cb37da1ea56305d9bde03f0559205e05dad61beb195f5aef8a6e6b0a921b3d3913b5bc7c87e3fff274afe789c715b96cf2fc43e8372b68d10cafc7362095410c3c4d33580884a0f215572fb05c19fde4744f90a0ac23980d6b579ead8d68bc782ae2cd5e70064478011ceb82ac9df20d2f64550b37def09050c319134383a88c9673f6349c446b178f2d02b2abe7c61f9a1a1193ed6869cf1a985ece2b921a1234ca29298974ef9b3b42b5984c44576725aea8d3da89a5703081c6cf915be00750ff13260950b24f46f4551b069e7eefd531e71f7b7f7afc717c1e41d7781f01d6f0", "9cdc49b966d4f5455694379f4f0e31d3923db4776ad7fa2210f41b0e7fc6191ea18cf536de4e56d1865fd58f0dcbd71a0780e505f3d971fcd44e11db1945116fc8ed7bb7fbf3afce6db6454d9842f6c75b9c37503aeeadc6ad57e515c32bbcd5d81da7d178fd818d9bc8aaee2480754bea86bd507e74c33995458113f481ca8ef4de38f11dd0f0b7e6c05419c3c15b08adc2d4cea1558d8b430d2ecc1dd4bbce534b9627292869357b461fbc1087e435636534021ad02964121c474948a618c92dc5b7e8cfbbe1f3a5333c3d643f6ac0ec753540ccf3557762040a4754d7bc61d02aa51c7d7cb10e53c01b667af539a6b45c60b3bc1624073644\nlabel = 34c9c04473bd8a4da755a88a04a9ccab0bae8fdc51332dcba4aad045ae8305491fbdfab41821f6b838729d1e09fcf99513db3817c94c5be96a41bb23c8d0b0da00000000\nmsg = df487116341e4900036f3e9c31d809d20d17baa32348aea3f66babb8b082fe9fd496aea62e54c7529e0ff4c30690ce047caa15cb2a1824f0a4b7d56914272e8845d85fc8b5af454a5012355b5e862b283c59dbbd146cc6fa2a8aafe3889e10c8affee1782529b9756b45692bf369febd0639dd46029ad55111492ec2707939e62d645b4f4aea52573b3fbef8b4148ea2a539530f6841d8396c279ec66a503d8420c580a1ab55f571eb0ca931a2cd27b08986a7906d1f48ba68721967f2aded2d43cbb1f7356d62a169e3a376bb8f6b9e5b9e2541222d43832fd541acbd23a2044f04012179f654b70514bc38743bdbc8d8ad78b7392860c4dcc7173f180a25e6fbcf18dbd7440dee9e8ed9dd4dcfbc6a49e08c8ab08bca2ce4c774dd10e0126424948876f2a922d074df12d549328fa802275211d8b108880d90f4e1728f82453ba6bd5dda5a903a39f4e2da981e93522d7894a2ede6d1cd7f294ebcbb3a153803590097030b4d280e148a4016e454bf6b8b2b12b8c107b00826c5da2903\nresult = valid\nflags = Constructed\n\n# tcId = 32\n# em has a large hamming weight\nct = 429b721c92718aab272499bb59c79c051e89a93c091925faa209521649f090ff304342e04f258863a9da36b906384afb760d40bf553aa3b83e5ebc6f6246b0628836e59c56daa726c02e68552f79f8cbdd1cc349b7f988263680b7519861f8fab9ddd10a8392e6814d6e300a4b6447b0a1860bb8af7bc18e818ca2659c0c462c70ca929e2d0a67d81f557da8b1b63031835c362527289dfcd9b18f5644d1fbe54fd67c3b51fe84d3e44f3efaf280fa7cdcd72bbac2fa6731dae2be296992d6a08e8b8ad9fbfcfc086669ad34e4de07238791db1540c2fc91ba513fba4a692fbccdc717392bdb91995daef21430eba513bb80fcfc450f7af98a49fd254267f8f424ed516825cad9bf036794b9042ab7cfdd16bdc3398b8235a225aaac21672098f9fd799164f02d367ccbed67df1d16ab7e6948057efad3ebf9320ab3c74599a28636bf039ed4d1e023ce92732d1bc04cc2f71dda0093027e1e84666da7b6797e1b64e66d79dc088f0f8f91a806efe3c17c563fc2d6f3cd662fbb5bdc94a6b8a24c968e99a72b1a0ae5e621891d0a81d3b266da316c55284d65e20827d25a9a7abc5cd394b5cf313c5f0fc78fd4d2d8646c910ebb04f96e5be89d794bdd65b12bdafffa37dc5dc9c11b3cd664408e0954ce302a6e846b86b182f04e4ae30122d2b87dfab07e68d8466ebb235f606cc5d0989b1b2dc222e4a6c48a98f785a07c5d\nlabel = 2aef95ffcec9fb31cd3a17df07044ff10e054c4ff56d7f31b8ec1e24cbebf6979ff21d71ce627f7d4d7630e65fd07df472b39f2c7ba2f3af7aa645ac7aeb68da00000000\nmsg = 1348c2870b2c2aa0b686a87d4e51b8c9155e89f3e33ae3f7eb5a1c09c3469d3049bcb8a76f98c27e034b223a6c0195d29de1d4fde6748b2bcecf39457b292114fefc237e5d5e67893b1fd93385f9ca739f2487b79754c5bed364bd846a7afaa88ea1477e97949b770d6775830e932ffe327031d11a19db2d38d8a1897f2207a29d24ad47db096857838faf4512990ac167e5838f4001b62d6a7240b20cdcc159135bbb0939d67ce2c35f50267d2c4d702afcd907d6e43332eec8f52d71445a709fd365adaac1ef0f6ef72e7f7d976acc64e2d7e8e574918ed845fc4468727267d6e365bfe4fe3230645432cb5dedd284bbd28eefd53476d4a046dd30411cc8841017d1f0939db10a5c028140351147949d03d3aa0d512f03b42ac61403ac3c0fd240d9b69598803ef2e934c8b7d2923acd94672d570b44e60ded2df818181613e1dac6d19780fa2974a3226335c7c136ad643a17739b5b252c2aa82ca6ed8040c7230b86de80ffe9d81a22853124ce391dd3093076c0a93188554d202c53\nresult = valid\nflags = Constructed\n\n# tcId = 33\n# em has a large hamming weight\nct = 4556d44840f6c838427c8c477bdd8efc88cdf57d419d128f208a9e44674119dc71352004f1b149f2beedec7f3ac44d93e7fb9bb10bee7b675d62dbd9bd28dfa42dd6173ff17968e8578f0629486f99d40473d3ccd8e0fd3747a6daa2323c61a88e1f168a073197686668a8931ac03ba05cee8db7a5863532e798da7b0c371d03bee6cd2ca532c448187d16f424e4c22dc0aa86f5bb8358d0a593c9796cb5130cd6610a3a4b9afaf4da87c0eaf4aa015fdd5899b749af62e85e955de5a315fa971c35e900e410017f6860dbcfa347206a7e33277efcd3a17715a8f1527456d16e2addd711d7bda3be776afde4adb2a8834d98e4a2682e9b742a8798f4a5496138472bd889eaf0b03316180ddbf750ea5607f37a199e54c0812c5d59bba22dc1c18bdd8e0f8c4eb61a3701de06a710d142a2f5c864dd05a40c7c3fc4d4ae02078abc9559017f3c6588e670854ad81896b213a769bdfa6e221b5f8dd7ada50424deee1b1f138c738ad938b64f5228880214bf4166580b11e1afafe2b89819e720a7e08f773109dbecf40851e839b4a512b5fdeb3309b8e2fff237f8207df0af5d33a6b42da14f44dd49b716a7dba83989094b217d4b448353e250b9ce5f5536a471f2e1058e421f9c5c166b58db8e6516fe57db729b4c6ed31f014510976779beb555e30f1ad0de2c2922d9dbbf8bffadb189b7a5506545d3ce0b0f5891cde090cc\nlabel = daef95ffcec9fb31cd3a17df07044ff10e054c4ff56d7f31b8ec1e24cbebf6979ff21d71ce627f7d4d7630e65fd07df472b39f2c7ba2f3af7aa645ac7aeb68da00000000\nmsg = 01bb3b045ddec9528281814d028d1d6e78be895499b7f975e181c80e60627453016f4d2a767ee0ac090290243a9af67a6952a9591e3f242e80a7a19f177bb1c130849b9d74929ee5b048974b2d74dacecd05a32216976c9f605d1ab338de1bf245f5ba8c6822623458be9be96cfac7dfc65146dee746b67b128b68b36d03104e31ad9318c2d6eccd622bdcd07880ba1764a80b5ff9a367cd8366d82c1bcc65c9784c7842ecad63080230c1d6a5cade3fab837afe5785a8972172b9d9d0d7d4558ac162ae80991ca40b520979b24f64435b68c226828eb95e30be152bbbd509f010d5123ab65f31f389136a53b91b89a8b4c4ceef30ddbf0f3ff6237386f9aa9e2e57445d2a100b8eae294b08d6b86945abc3314af6982e5513eff8f8d987705a43de929382267523434fe4bca190b6c725faeb377f9581c49c45ae50e311dcf29cf3489ca8d1ee5cdfcfd5eccecfe9bf7910aebf141b6099f26135cc20538145ae8e0406ff3eac640c7bcc2f266a033212848d4a25b51dea318a97d38399\nresult = valid\nflags = Constructed\n\n# tcId = 34\n# em has a large hamming weight\nct = 29171896b305db27c0c404b65571df5125fac9ea2d8faedc5805fa35dbc2c335286694fe96bf415f4f2e579bd6b559c2569e886ca2e507881c1d80fec2ec6a83c3cf176b697cfd88f098c4105aabf25e2d322cb6a933c0b825d76a45deceecec9c5809a11acfded98eee74597c0e6963ea1d4fd2718152c9be554d511e380f5ef59ebfedb279c60fc622c3ec2f89fb89f82104567eed8b0d1e5548330fd434f3d83adb81b919e308c90108fd10261ececaa4249359250aa1f58a373c351f0d0ab51e344fd76cf0e688b39cd2a14569aaf49fc9f2f4d31d3e7120a2bd1dabe14f22022dc4d9a24cdd78ab85bfe34e048d57d3d465b616a835c33ae1ac2e337cf19d14e362e2f79b4e0feb51387a2b12a971ca1da3b2c7b03520cc6778249ce57540d7e60717864f4fecfbeb1a2e1c5a26487f4efe315fad65cd6c3c9929cdb2be9dde2d7def70709d5d87b7df54b0f7d2db610098a5da516f69cf4375af1c51c5c58bf8183a39ff3476f3472892625357eccf2c71b98f09922a560248d9b1c638a2fe635c7d3c06bbaedf44c5643c3dad43aa66efe6ebf7afc7b19e2b89db235b085f5aab01fe49c5dffae0dea31a4af25b8a65fcb68dd13a166b9b6fbe539eb79d610d2333b77e08a21ba8530133e24b7da38dc86bc1e56c5c869df6f5693e4b1e870d0c8884292edcd5fc6fe0d726803055d1a64d28a19ebfc4b027a1a340c7\nlabel = 81ef95ffcec9fb31cd3a17df07044ff10e054c4ff56d7f31b8ec1e24cbebf6979ff21d71ce627f7d4d7630e65fd07df472b39f2c7ba2f3af7aa645ac7aeb68da00000000\nmsg = 204020bb5dd616c0697e2f261d547f9e1082f60a8691c73b8f3d78ad19e772d67ff85453cce82d39d052f76c2743445d7be719c7d1a8a0f437669c40430ea1c8af4fbeb7d70606e67341925e63768085c94685aa28d9d55ac67e9196712360f477df744ce770c1d8858f33a2dd2a6926945f3632b3391487a2124c4c8c071af265dfc365901ed8046e9e5857c53332906a703bd0afe663ac7143cf4900405ddaec708d18159fdd7919bd6684c02a48edb54223e12c8c5d154627eaae83b3cc1bd4f2e6dcd62d41b519fe2b01199abe2f4dc57d7cc2c360f8c4e72f28d826a8a849d41a86c5b6676f7204a8c236883ab504681fe7a83ef0f12201691252a589cc985001cc7462eff1151fcaa25741620e914aaf6a1699c77a09375d1005e7dc3755e795086a32bf86cb71e93093315233fcc8a86b4fb72f8ca5d320e5ac19c142fa7a0d2400979863489ecadbde99e15e3fc0277498fe871719d2955f229804c2a85594232e3e29ccda494c5e340e7ca9c720f93a1e39f906522bdb8f4f08\nresult = valid\nflags = Constructed\n\n", }; -static const size_t kLen296 = 931551; +static const size_t kLen301 = 931551; -static const char *kData296[] = { +static const char *kData301[] = { "# Imported from Wycheproof's rsa_oaep_misc_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 5ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d9]\n[privateKeyPkcs8 = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d902030100010281805ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801024100e882d12d5f0be26a80359f13c08210bdcbf759dfee695313efa8886919659b064e3c656a267af6275ed1af89a5dfe9e25b31a02bafbd59445b7507a22989a681024100e5a65cfa668bd857d59135a78c18c8adb7c222368e9d74abad8e83299f7ac3c2ad7aa44ddb05deea6d9b20dbaf09a8615284a17c72d3723240334685ea7e2559024100a327c8e8f19d4150428f5e055a3ceaca846a19e30d45534ad60d894b56caf9b1bf0c9a8d965b0a882dfd2e1485154ee5cbe052e8d4f525c2d5fa9554b1992a0102410091f17ceb411a247e056287f79787f498b9cc2d1400e43dce10b91dcfe8e30adf80820d42d12b54f4247dce8eee193421cd602e843930f944c81a0dfa730081d9024075915a454770b49082423761244ccec65a6e48ae9966344b675610facad9162fa5bd1cc5108c322c2fb3c144f807773a2c7d097f63e5c8d3bd8ce8efac2ade04]\n[sha = SHA-1]\n\n# tcId = 1\nct = 673779703fccab3ee7735e97e7be7fe3d1b39fa902ee35a858fabab8b2cd6b76b3a68f5971b42e28e8ceff7942cc4f3a0f2eeb4b998315961b06fac4b946d0c9f586fdab0c22b1252eae47d3c9d4fcde44dbf622b33b130adab572ca18a29016a35577c8518d24fc6659851b434b0025aa7da027d7ed77bfcbfc51c991daea7a\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 2\nct = bb7914975c8a7817a50e7b3af7d79a93b4de5f9b3ce8a9a15300da83c75af932833d5f662ed58de5d195b4b03b4f70c6d7741bec915bf8077e31238c4d51c6e3c49d1a89211d3e14a3d29ca5e3ac4f9e1d13e22cde950fe979834f12f6ff93247e10da5cfab6b265bc87c8f2a63253ddbafb8ca0c16b07d2b230a78c04747089\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 3\nct = 615a6e86e3d447a655ee83eba8d92e29e08812c5de4816649765457c9b3241498f6308b3b5b1ee54f70642b35b85ff229af8b1e81a48e6e3359a5dd67c34e5d02b58caa36e3be7350481d0f7c5a0af1eaa8eb93e9768e7e1e0eb5c5d75de77c220f41bd03732d4c3a56f6d29cded37752047b5f79f11fd4c4eca39b34ea792cb\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 4\nct = c3e50252a748d77060deb817e617367fa93ae234e535c7c3155c65e0131c1c249fc7ee8e6b8f58bb085a6a455b63efb336cb6fbc9ff82204ec500026a7ae09c7cd8d361cecaf6fba5fdb265d64f90cecd32b0b3fbd93e29725058e1f689f030373fe0c9133660ec88e1b027bf7ddb5abf3aae80f86c0af411496acdcd89908a5\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 5\nct = 6aacaa5bf3d71e04bad9ce95861983d5fa561c1bd4439aa47953d144fc880e82c1540487ab4586e24dc0749cb5d4f9a54854e6f90d03e288c23e5faa4a7a7f9ae09e36dce48428a8a9485123f1bb6d5b7a9bd339e8e799429da33668733dc8b323a29b8014a8eed800b36a783249842b7135e33b1708d4fcb5762a5845b16cf6\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 6\nct = 0c0166f8e2d95d40d1343c4afe4ac038fbe7654fe7c96abf312e385626830eba877197b931039bd4270147d3480a99ee9b124667dd8a89e3e253234c669d9cb45e35a3465252251ab265a3812923dff495c91c5c50f4bda0b3ba9f9b14565ce78583ae7995813ae9a795c4f7d43ced1cb60e2cf8c1341798f8f72ac397f0bd36\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 7\nct = be7e293ee24ecfa696de652c0ece7b95c8cb70b4eca65077616021f7ab5e2e3e6e1115283757d9fae9ddde688e69ad470481459a7db49eab7ba3b77015a5be9e294a2fd5372810d1da1fb6ead5949d44c20be3159e56a9400a685128091bae955c4838312b4da54a30f26481092abe3b7d89ebc249694a09f2a029b333cb1126\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 8\n# Longest valid message size\nct = 163a77d9bf01658d6c74efdf3615a6a44d3d06415a9b6aa7a43d0c8f3907d51a66d51d6ce250431dbf91c22dffb39b6b51f9dc40d9f45a23943ffaf3904e7193816a5a521096c135c6fe6f59982b0c7425bb7a653c9ca33dba69871f29a129be856488c39f19420a4f3a9fd9b6f49ecf9e9cfeb2de7ef3eb57dba9cc19efe0b9\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 5ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d9]\n[privateKeyPkcs8 = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d902030100010281805ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801024100e882d12d5f0be26a80359f13c08210bdcbf759dfee695313efa8886919659b064e3c656a267af6275ed1af89a5dfe9e25b31a02bafbd59445b7507a22989a681024100e5a65cfa668bd857d59135a78c18c8adb7c222368e9d74abad8e83299f7ac3c2ad7aa44ddb05deea6d9b20dbaf09a8615284a17c72d3723240334685ea7e2559024100a327c8e8f19d4150428f5e055a3ceaca846a19e30d45534ad60d894b56caf9b1bf0c9a8d965b0a882dfd2e1485154ee5cbe052e8d4f525c2d5fa9554b1992a0102410091f17ceb411a247e056287f79787f498b9cc2d1400e43dce10b91dcfe8e30adf80820d42d12b54f4247dce8eee193421cd602e843930f944c81a0dfa730081d9024075915a454770b49082423761244ccec65a6e48ae9966344b675610facad9162fa5bd1cc5108c322c2fb3c144f807773a2c7d097f63e5c8d3bd8ce8efac2ade04]\n[sha = SHA-1]\n\n# tcId = 9\nct = 43292f009868017ff514f9c3c04c2bcbe7d39e33b2b39d163812815e7294a87eeae5e8503ec8bd57d1f5bd02795ea3923c396ebffde08f70e9fcab64ab22b70d19cdd34653a265f13a36f832bd2e34f5a0211ffadb4dd353aa0bcdeea19c75290f0f948b61eeb5f41f86b42ed3222be38e2a30b8e568712d786b57173b3e4090\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 10\nct = 583c33c713bf7f920f63add1f9da9051ef3716581c117b4fa41c82e59a45dc4539569ccfb8a86dde1ef4fad8bacfb8be0f73a9e3dbc2c682d1463f8f72304aa181f1c3bf829121d5809cf3f57ad295710728cc44aa6ed74e46b0975ef5510e89ff129dd20dbb66ae948b4f633d6fc0e886f8e944df9a2dcb43f48a6b3327ead7\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 11\nct = 342f6040b7f229009a429a9079950154588ac7689aa226b363b75ff03afe2f69a2eb8e2261c6870f1aae8a0885ad5fa612cac2cb63f92ddeac9a721b06bfa7a343670a44afda70bd8e64971699f1136eb95c0e06bf684b850853f073719275accd66f0e1ccc50c6f163b13d4cb5d273792343ef69f547a3477ae5d7985ca5240\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 12\nct = 75a608f2a58538978fbb1b5b761bee895c10d3ce99a0a5e791d65937098b9ea30586ed1bde62a2cb3e0b4332c5d993e35b52ed28402404521f5b579a5e257b76c2e70d67b6e1459b790fe32eee1c64a5d9d78e98d7a8", "513d5dbec7b1c958b0f6fda4b322194d68818747f9a75afcaaf07f8def984aa09373997900b69775db86\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 13\nct = a12a689e17089bcb36b9487ba3b0ca55781ebcd5c68bf4a8dda58126a7ffb184633f97790e84905c2e9e2feb8d7fbf6cacdc35869aea943727ee3fbb494ba7657eb1cafb0c6e39ff159f41308d758f07afcd48808280f1269910b0aa51da3027788842df88ad5a299a014a040b4a9c9b54b382d349589ecf24f4acd82698ebea\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 14\nct = c019f80847bbe0b299b256fcdb1e71b035345fad162969d202c20bda4c7398d14a1a6a8ebe75ce61b718425a72cdf0e1cf7accf1b692a175c146e87e0eac2bf7920c8b218640f8223e536dbd24f93b8455bf6a45f6b200b38b11457491a1bfffb4abcae258e2590bfdf585264f31bed39a0039cd23969ccaaa5da66307a6caad\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 15\nct = cafb437c778965cf82ba9e33cfd390917c7fcfd4090e56c70c2e9ffe5863736ef3c8e62a00e61a11c86a100c56c49f8f39fd9d04616d95e2467dcb2c61ca6323c887d78ebf3ff71eb67ccb9cae039de696a47c1c3bea01caac297e3ff14cd6642353d68e3bce9bd702d225959e894a2f996c7e0064ee1a340ddb6071634d0982\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 16\n# Longest valid message size\nct = 59f72eaaffe725a5808f31ab0372afdc2e87f4ee8ba12792560c1e014374c82432128380adf701f4a4f814a8329583abc22dc9e76af568d3aa1539ff41034e17c89450c9efb17ec61b89c2a47744f43e675e870a9fb901ab596a8bf5bf8603833bc12f49d52923f32e4d0af4c908ef75a4b9ec2a6b5475ef30d31944dc2534d5\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 5ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d9]\n[privateKeyPkcs8 = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d902030100010281805ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801024100e882d12d5f0be26a80359f13c08210bdcbf759dfee695313efa8886919659b064e3c656a267af6275ed1af89a5dfe9e25b31a02bafbd59445b7507a22989a681024100e5a65cfa668bd857d59135a78c18c8adb7c222368e9d74abad8e83299f7ac3c2ad7aa44ddb05deea6d9b20dbaf09a8615284a17c72d3723240334685ea7e2559024100a327c8e8f19d4150428f5e055a3ceaca846a19e30d45534ad60d894b56caf9b1bf0c9a8d965b0a882dfd2e1485154ee5cbe052e8d4f525c2d5fa9554b1992a0102410091f17ceb411a247e056287f79787f498b9cc2d1400e43dce10b91dcfe8e30adf80820d42d12b54f4247dce8eee193421cd602e843930f944c81a0dfa730081d9024075915a454770b49082423761244ccec65a6e48ae9966344b675610facad9162fa5bd1cc5108c322c2fb3c144f807773a2c7d097f63e5c8d3bd8ce8efac2ade04]\n[sha = SHA-1]\n\n# tcId = 17\nct = 683504d9d84b2f9eeebda7748ecb59a8ea8a72a283983113deac27e65e268be105019dfc6608b6adb4c68e5a8b945481d797efe72bdfa554eafba55b5d4f2236777465eeeca0364e72f0e0ad96b09e1ccef8e7eb6bc1c58ed90a838f7c9b81517080b6978c1dff0038c6ff944bd084954b6b3b0c3184ecdfd08120455b5a24f4\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 18\nct = 0673ac76c5cd297a6605ea6fa07ab36179ce8d7ac2291ff1ca43078d542b928aa53ed48a9389203be4313a15c4dd476a6d97a67aef5b2765e460108312bf28c8b85433968c82a3127e22a6fb6088c088c0aa428a495ba25fe6c570516457ec68da37db32160266d5cff2b8e0cff69c8ff722cd71c44f80a6085005eb48ad2c02\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 19\nct = 196a786011bdf22c7ef74f04b9104314086a25219803c319ee8d2d1e0669505f61122c13f4414c23da0ba6fabefc94635ec5534eea50d60cbf094ef254622005da9b64ecdd529280e32ef32a1210c827e25e9f851c235a7d1681cd0156bc7714b22819a8ab99cc647ba310998dd3ba11a2d694376e111101e781cff6fb0ee52e\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 20\nct = 73cbf741e6ea2ff7d90da94f6b2b0193948f3bca2fd46b6d3d1419a70628523b78325e3eb1db07f504e0463612ca04a10badca665cf032332e0cdde7577e1f54710588db2707c1606abf8e84f2d8141e4f09e63e198827824bcbc82673fe2186b8489b4e9b52c30e536705cefe652954b97fbe7e0bfa0bfc3f8b51a762806232\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 21\nct = 9a05e365b558644187da88d6d54ce54ace67beed3b727dbb59bd3ed1f72ae4b8456c85254416efe608e2073ab3010fc7c2d27f157e9234e4d5c7f49bb89750819887d784c6ccb51c7f59cac5e04375dbe42b18f187be137befa13ba80c89605a18b8d838ce7a899e4a3145107d23cc55860e5d32187e0c6dcc946d11578c6c9f\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 22\nct = 84084b95130f1d91ba7444c045898f8bee7917d9dad6b59b9bdcb204e5ee8a142bd94b405ab42d859bd6d9e8338a202b67c2551a539201d6657eea79cdc629125515560ae5061477e5c7efe0c4aacd36da41ad126aa630795f9e105ee70fb77fea7a2b371907afd415697fbd570bc3f414f4b88e271f41be1223c29e3d72b21b\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 23\nct = 52ab5613c4ca5fd259398258edd48186c9007cb99b11915c85060e84975e4de2365723315ff4269ddc37acce4e809598b7adcef464c0973e8ad12037b186c74b2e1e76212421b127c2c1d56c6e69d353a7ce52531c7a1d375cb6a0e358c86de3798378a09c4ffc38a4d27adcdbfac6211366890a75692fd2dab14360717fa415\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 24\n# Longest valid message size\nct = 1d79894e48cfc27e8fafec2f2f59fea5890569201172ffe68ea13fc3918ea0eb0e5ec1c3265a39acd5e1d210883359ee35c33d18206aa8d59c1a0459de1282fbfcdcf09a2c0d3a849c048875240b9ff1452f57a9d45148f838dc0b47dff2b52e0d93760d7b4e1f0e389abe425c9c167dfbaa3ca0196e660814986572d1878cb5\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 5ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d9]\n[privateKeyPkcs8 = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d902030100010281805ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801024100e882d12d5f0be26a80359f13c08210bdcbf759dfee695313efa8886919659b064e3c656a267af6275ed1af89a5dfe9e25b31a02bafbd59445b7507a22989a681024100e5a65cfa668bd857d59135a78c18c8adb7c222368e9d74abad8e83299f7ac3c2ad7aa44ddb05deea6d9b20dbaf09a8615284a17c72d3723240334685ea7e2559024100a327c8e8f19d4150428f5e055a3ceaca846a19e30d45534ad6", "0d894b56caf9b1bf0c9a8d965b0a882dfd2e1485154ee5cbe052e8d4f525c2d5fa9554b1992a0102410091f17ceb411a247e056287f79787f498b9cc2d1400e43dce10b91dcfe8e30adf80820d42d12b54f4247dce8eee193421cd602e843930f944c81a0dfa730081d9024075915a454770b49082423761244ccec65a6e48ae9966344b675610facad9162fa5bd1cc5108c322c2fb3c144f807773a2c7d097f63e5c8d3bd8ce8efac2ade04]\n[sha = SHA-1]\n\n# tcId = 25\nct = 54b9f6b31d9a10c7534d156f6f07dba7310a714a4b3b1c7b7d325825cf30ff36a2dbfca7c740ea03304e0a1e270e320f2440504499c312b4f4fd46d8dba78211b5b1938e43dfe386605d09c8c1c90fe2cf0f8ff7f7be04550914217312fa4105f13709167cae9a0f4076b1d07316f7347bb01e33d71bb0b7ed1cd673433a1ed6\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 26\nct = a7f2cc65230e26da285af8905677315578b2d4eed37c8eff3c649f5f099c28d5184509b6ea5515bc1b15f7c0baed4323dd600f13d3831613b923b598c6446050a13fef00530f475bed55ec8de81e7badc5a078a2989e4b66ee1909793de82fe3bfab63263c7aa8bb74dc4afa23723982e65a0d6ebb2f54a53bf2bdd2c7c410c1\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 27\nct = 4f23774e0e834c3c94702652a3be92b3007b830b8650f517a5d2c690161c0a802f49fa9f896ee4de4c02370e84f66b8289d69eb828eae7ae2aad814770817b31a022fefd33e18197dd4f8991eae93292d9236858266944b86fdd9dc33170bd8a5f9c473afbffc88c51870d2ae39deb343da25afc2569bfede7177c92e80821c8\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 28\nct = 110f46bd1e27da8af2ce52d4c41171cdfc0c6a69f0709826b5c2de86e716ad41401d75442f849a06522ef7ddc0d67a99c06d5b6bbb8fe00a7bf5b470793bb65e3ddd761b7db657ee2e0fbddd1bf9e2441515e11717507eaa4a868378b888eb17ff4f02221c84650c2c41ce89d95e399f055ac70e3698f6836c655c44435090b4\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 29\nct = c55786f3ebec1657da50ebd20d4a984ef54d89de99defea0de73db7e348dcb505945fe5af43a319f38d47c9fd1fed3c6b5e91961d1cd8185b6021293f208499848e5ae2bc7b24274fdbfa2d67dce5f2fe986d4e4ac7067979b51bc220441d2da2c9123c5526200d57d81d993480d6ae622f2a1434b8387c4e641cb632673be9f\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 30\nct = 8637f6b594861442f04a9422df3ebff415fbca162712c1d69e83f6b05f8ac8214893e815fbe46b29ceb901830aa1b5397de66c0fa9607ea758849f5cd67571e3acfb0c614cc59512192012f18cc7a8dadd153cd7838572f921907b11b4ccc8e67614490a3e4769321f1e6330470bb206e81107c012d151512f8650b60c61381b\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 31\nct = 91a7ccc9d2fdac9e8b9697e0efb4f67cc1c1f5083201057e7405c0a82a5a91e3c6edec26a406367721c98be3baa7cccb5fd2a08bafc4f035e7e4c664e544611e0e44daf2667b26a1aaf84006c47661cc483d4ee031b35cf33c5205f26aeaae9606345d51b742aa5a09bc1a51b739a71aac058f9e69c4ead478f47597fb6a45bd\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 32\n# Longest valid message size\nct = bb0ff1cd0900a210d44649909b503a58e88073c3f1707d3be68f3b8148229b789c4870f5353a38f0550842cbebb7a596e6c458809d94626c3d2b457709990ed366fa1f66a0eb0c144b311a873080974f9e5a681abfa2afcefe43f59115fd3fb9fc2d2e685f3ee2ac686460bd79a88d90d2e5abc6853ffff19bbfd70333bd008e\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 5ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d9]\n[privateKeyPkcs8 = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d902030100010281805ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801024100e882d12d5f0be26a80359f13c08210bdcbf759dfee695313efa8886919659b064e3c656a267af6275ed1af89a5dfe9e25b31a02bafbd59445b7507a22989a681024100e5a65cfa668bd857d59135a78c18c8adb7c222368e9d74abad8e83299f7ac3c2ad7aa44ddb05deea6d9b20dbaf09a8615284a17c72d3723240334685ea7e2559024100a327c8e8f19d4150428f5e055a3ceaca846a19e30d45534ad60d894b56caf9b1bf0c9a8d965b0a882dfd2e1485154ee5cbe052e8d4f525c2d5fa9554b1992a0102410091f17ceb411a247e056287f79787f498b9cc2d1400e43dce10b91dcfe8e30adf80820d42d12b54f4247dce8eee193421cd602e843930f944c81a0dfa730081d9024075915a454770b49082423761244ccec65a6e48ae9966344b675610facad9162fa5bd1cc5108c322c2fb3c144f807773a2c7d097f63e5c8d3bd8ce8efac2ade04]\n[sha = SHA-1]\n\n# tcId = 33\nct = 2599294707d4888914f7f4b9634dbe1e471b10e3e8d43a988e853dc9943bcdca9cbfd9d44a780d6ab9df0617795585ab91d4c2d1a0f0e2bec78ac137902a2e1a88b165396d02a24beddb3905a6b3f031a2fef0d803266b170e435769f248c3e6c122f404f32ff3c450b38c608f12ff70ed46657d2ceb1a277b8ce418a7d9ba73\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 34\nct = 0daa2be79921c08cddd40e536bc38da267157f22cacde4e9ad36730d616b86c734a7751afa3d7678cc7e173bdd3b9afc19c2f4cb4cae58fe1d623685026468673b36d268f170ab500d974b57536bbe44f544b002101b7ed1b4d342c18c2ac169bcda4219490bad3e645cf5ba69dad96860cecf559307ff0d293ab30dd330f8fc\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 35\nct = 82c311c219ed2bd02be97da106d14f01e3292595f16afc6e61cf6d55202e7cff585fdccb56eebd86d03a04dc76069d1f06d3f72b59ebfd9be08ed664045377434311f83811163891704ed2fe0d25fc813b2df2718c4e32cd74fff8bec4d554ff72ff5c6420b2b76c03286dcfb2a662c8c66a86b04e61863d2ed379baede9c918\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 36\nct = 09cb258d6a5090a2638d2217f3c6535def5a2a05f97a2606f608d3ee10f7a6077f44bb63eb8008fd6d797937edc31dd0d5526cf24eda0191c4f48fdee02bcb731e4ecf09388df1d979c11fb841a0ac0d017334f6ec9f8a9c4de822c232faea803eff6225769a39d68206eead6414af996b1969f2f8d6bc1c3400f6fc31bfa8f9\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 37\nct = 6daf23cdb83c5d16be94c4d9646081be49dc1db87287bdc534052d6848c5cf47584ebe6ddba5767f445c11010e019352472aff14343df44232784dc2adb135455ca28a03bb69e865762afa850f907d89e14e08d9a81e92b0852e99d360804cb0857e47b4bd2608838d6f81826d74d17984f805d7de29fb475ab71e5bdd057612\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 38\nct = 6a397116dfd443619d3acb576c282eb0ee28b2ba901694c5459817909167fe1c9fffdce119316fda91e0f5c65ea4eecc595a18bec9a718cce8281fc4ab63d56dd82bd835b86a8b91229178d52ba4467f74a161314abaf533443efbe08270c1581caa5876eade4d34f48f1c9411aa089bb4a3370b92c30cd918bcfda92108e083\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 39\nct = b399d03b2fa231e85308c6c45fbad1aa03d7f328bae29e94a1c4e6975238d1883a343ac5c49f503ff35472a27c843d56cdc7c962c8753ce2229b2ca37dd9e24e3fa3f528787eed3c8980e9c1b888b093079af2ca69eb39859cffc31d66d0dc245d1213c7f54edb769bcbf0f10c6833967a7d13099ed99ed84154d505d51de912\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 40\n# Longest valid message size\nct = 149bd74986f0b9a4910723216817870a910c157d65df96d991f5dbf144f9911ceaafd2fa799b58d7e56971d6db66d3b23d1232ea0fa5be2467eab1c9142a898f0ea53f2c40702c42b2a7c0d987c50a6d4dd54ef27238f5d708e77954170631a9d52a2f54c79a4bc3edc8858da72752ad472e869782783f3e91ae36c176890190\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878", @@ -8268,9 +8578,9 @@ static const char *kData296[] = { "e33a4e0d8d02d15628a0a3420429cbefeb8d4128cff26cd051b7b4c4bb0ab6aed614352cf66da8d7a7b00e46ac9ff86251f7b85c044082971c22e343b401ab57c978250597e27fab6ffc7f1d18cff956eaaf9c317cb82b32f342099582e6c4ec53d7d31fb4fe7b5394221b00e2fa6cb5a1218fe0db3f3fb5570d2601507a7b5bf75dc6f262222e755bf22b02391f0361a189138af6f8c68117bea1035f384452841b7d91137a970d9dfba0e194c8fda769c05ee3f82da90ed2fc9d2edc8953db5b293b3e55065f5e6ae1998f2\nresult = valid\nflags = Constructed\n\n# tcId = 771\n# em has low hamming weight\nct = 85e36c189212207dd67264ad00a49e5eead977895d106b9551af968480f5e64226cccd03ddc2714a6b85421c6b8ed498073aed03131b9f61416e50f94fc2a0b115b70218b10980cf3f84d3963332d7728b566ff6e6c58f505793d380c9b33420912c8341e55ea0b4c141f1bd28d97de1a8a651b55388ac26d0359d6aafade11be18e1a9b090cbe11032025c18cdcfc67b209f543f7d7b5d5fb92ebd1c989ca78c4b285ecdc1311bf2ffddda98449c0b13de1ecd80c120ce982a9b5b85cbf8e93eb8bb17821d69811faefb6c9f4992885e8fdb2375f68bb4bd3d183e2966e5fbe425a582c13a143622c043027e2d35f6574d58cb80b2f006fb94163bce16ec2e540024ee8da188547bcaa8d579642d20c9e06f7eb29745f99c4ff0a5ca6a815de406a64887603b4f2c65672dc279d987aba84b3c7f37a9bdb9b0742d1f62a50ec92b8fea87c5ca84aff9943fa6a34d656820e1bfcc5895389870cca6f49c2e3b16862b3fd8f12973ab778a10659ecefd945f1b13d9c8bd5be10a8817819f5dea3e91dbd19032bf339a325e18727beae8a3a1fcc07691931e274ffafd4ce98e1f4ef3778f7254ef748b87237bd54082d2340c3ef3b628fe9fac36ee4d883aa6876a0151704eea3a678fe74c23860bfe610f15207bddcd681c65efeaf7dca35005962b57d0e463b77e430ec9620c9aa16fe67d1357bf23be23d\nlabel = 798250bc59a7dd01906d16cc87b8741d16a7a2168648d6a7d51e0af8346347d700000000\nmsg = 38854b2bb70035c630eb18f92cdb1333a14781df75d9a6fa5df90a9f307ebc1cffbf3575bc023a390aa5b33488592d80753b0707bd600f089522189fe3129834480d5f9147bc33e5afb7ffc5bbfc1f6d7b87954382cb8af5b56baa01898d06130b5f25ff96ab9636b27cc4ec040c5c7c962933fefb64aa53799a81300a71bbcb5d45a29ec4f4c4f20d16aab39cbca96f786797bc871efdfa61e36ff896599417d33c0794e550da399e38e183115aa9169008be498dcbe8d13ce1ab10e0a4868e86f4c68fa377a119679740ff2fe1633fed84b8e2a59f33ef3a2f13cc2f904b0a0c2801a10c7d16b818c0a0b15dc9b66588991144e8ebd1c308bceba8cc36b7b417f0ec2d6c12aaa91970802aeeb2f83e67ea7f85ac3257087f19b0cd37dfccd7ebb0f40c86ca954588a92b44626d3281ba5af5c4d999981fd48ceb634757a338f969d5ce09f18dc24f7cba6de30e47aa5e8eadd957f3c121c73f32918d2a0e61f2469a9de31363f28ca0cc85ada3301dd9f4de8cb3551fc19c82aea08fe37c80fca221e54b58db3f4ddca8e89cdd30490d092f8c270bc54c23c7a1095a390c3ef45b50e59328e28877f81bb05c2bb97c2f33ceed6c83\nresult = valid\nflags = Constructed\n\n[d = 0082a411c8b1fcc0e52f27dda23b1004f1f68f4ca36b3d4d077bd6105d63c4f42c676d8fc08e031c9297617a2c53c602a207046f4b5de2f1f78f2054466d42fee730b0b95557d9965ee3a96d870b0cd882786d8287d650cb5f6b1bdeaf03c9c4bf1aaadffd747d725cf58ea9d184cc0cf4475064df227a57d8a9493f9b1eeb60dda43c3e89a57097f5a28e1ae2fb63c62b389d216dd055aa82655b01b2a0fca375aaf5dfcb179e9141c88aa3f5aa4323f3779101612505f06c60ef5077b2a46d5db7555ac0eec10f4c91af2cd605e34bdbac1548424c878a91dae7ea391c95a85ed55318fa5e9dcd464a11fc5425df5da1d1d33fbe659dc98138bcb73f2f85f1416dbf30dd4336733c04534da98aa1b333fa0444a4b337ca5368467dfe256d04d08aead94e39131110db422603fe85812cd15453ed02197f7c3ea38a84bf2eb21d8390acd3f2e955d7ec84286987b28ec5aef7929701dd466c7c1bab412e1550c118696bf47b3ca98435e5374852505188b8d70e46cd1b60553a5f56d2c6c47179009dcc01]\n[e = 010001]\n[keysize = 3104]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 009ce4a11414e91683314b711e299ef58d817c68ece20f52902009d096bc7903250dacac14afd27d454d4bd21c4257f85820448ec74b5d5458246716f04252114873e3b19c867b00ac4e3b1ac1797c5fc0948a4095a1e87c8f5f6daeb754f2324d6ddc935c09a3cb86dfde5efa44002d563106891ea4e67eed97b4cbbf462fba0355fbb9adea1589f40ca565c04bb0ba23bb3ac683b9db0e7b591d5de431b42f174fee1c8e06adb78609f4e2654ac433fd721d3621b8c65de636e9ba769dab70079a5aafcbc12257381f14443892fda063ec252fe3934841c766208945e310693e735ee817e8639a8a9eade2f2e0112a845c83470349c32983e8b31407aada9e451f6973d47e39428da5c820681b8faec473e971eadeff14efe56e30060fead78f9155f5b9fb0807c0b800123f03c6ac5803334f6f8887304913198d98b2a97f0876ff24c3dc11644f6a7bf0e4e3a2aaad04ceca84bbc22823fb6559e914bfa9e1617f89dda2e90780ac15f12431406551b1f46e9995bb47eef70f6dc1d0e9929a22e5be91]\n[privateKeyPkcs8 = 30820710020100300d06092a864886f70d0101010500048206fa308206f602010002820185009ce4a11414e91683314b711e299ef58d817c68ece20f52902009d096bc7903250dacac14afd27d454d4bd21c4257f85820448ec74b5d5458246716f04252114873e3b19c867b00ac4e3b1ac1797c5fc0948a4095a1e87c8f5f6daeb754f2324d6ddc935c09a3cb86dfde5efa44002d563106891ea4e67eed97b4cbbf462fba0355fbb9adea1589f40ca565c04bb0ba23bb3ac683b9db0e7b591d5de431b42f174fee1c8e06adb78609f4e2654ac433fd721d3621b8c65de636e9ba769dab70079a5aafcbc12257381f14443892fda063ec252fe3934841c766208945e310693e735ee817e8639a8a9eade2f2e0112a845c83470349c32983e8b31407aada9e451f6973d47e39428da5c820681b8faec473e971eadeff14efe56e30060fead78f9155f5b9fb0807c0b800123f03c6ac5803334f6f8887304913198d98b2a97f0876ff24c3dc11644f6a7bf0e4e3a2aaad04ceca84bbc22823fb6559e914bfa9e1617f89dda2e90780ac15f12431406551b1f46e9995bb47eef70f6dc1d0e9929a22e5be910203010001028201850082a411c8b1fcc0e52f27dda23b1004f1f68f4ca36b3d4d077bd6105d63c4f42c676d8fc08e031c9297617a2c53c602a207046f4b5de2f1f78f2054466d42fee730b0b95557d9965ee3a96d870b0cd882786d8287d650cb5f6b1bdeaf03c9c4bf1aaadffd747d725cf58ea9d184cc0cf4475064df227a57d8a9493f9b1eeb60dda43c3e89a57097f5a28e1ae2fb63c62b389d216dd055aa82655b01b2a0fca375aaf5dfcb179e9141c88aa3f5aa4323f3779101612505f06c60ef5077b2a46d5db7555ac0eec10f4c91af2cd605e34bdbac1548424c878a91dae7ea391c95a85ed55318fa5e9dcd464a11fc5425df5da1d1d33fbe659dc98138bcb73f2f85f1416dbf30dd4336733c04534da98aa1b333fa0444a4b337ca5368467dfe256d04d08aead94e39131110db422603fe85812cd15453ed02197f7c3ea38a84bf2eb21d8390acd3f2e955d7ec84286987b28ec5aef7929701dd466c7c1bab412e1550c118696bf47b3ca98435e5374852505188b8d70e46cd1b60553a5f56d2c6c47179009dcc010281c300dd60b390ed7e73bc47d85692928b6a7669b75ac07b0d2d5e2aabbc97dd4f26f4504ccbac15fc18c8681e24241af32fea58e247ef47ff841fd88cd482685b24de080a373a7b2fb48300b997e911569f64129dc02092b51b0093addae3296c47a5388dd6f8cdc258c7bfa1cde81e97d01f198e6d05312ca8b9c58c2a11df5ed9e6ff75cd6925c52738278b7283ec198ff2c50e793e8e6842c23121dd5a702d312f6a0bdf29dcc932f5f58882953423176aadbf02dba57915fcbc2356d7b6d0e7a4ed410281c300b56e27f9764f02ffafd4689a3d1d1fc4ffc5c0d9d1b052394c72840963ee5eff90310b07cd6b45b0022439755aceaea774ba8aa99cfbfb9dadf8e007faa89329c347181236496485359d0d6eddc3c8e9f9ac3119f02b91e2e94cb63f1fa6bd4c02843714a74d5ae775d6d4422f7c4e99e5b3980bb3bc2ab9ceecc0a503f67720c8f294d15362e36b781c186a3c97c6076bce45d5853e57eb61dfed7e5db0094a28fee6df90a4406a9e3480adb2a972ddbf61a737dbd6f0afe961cdb8982f48326d510281c255e3d5e76ded78d3dd00179ea892c4cc8a79a41137ecc5e45a23e578fa596260b9e301c693850acc7e70eb4ec2d2058e23cc2f62ac097be6ab2b00ac53f6c0d810407e6b072e5c17d3a92e423402eab675ee94834ec84b60aeeb6e186292eb3d3432fbebee50f00717d79c3ee9d7b6dcca1a933bc7776f431c5d245968d3b131497e18232a8f52871bf8a386818ced67a082dc11a448d955e4a021f49bbf3ced0b74edb19d42c6addd0488bd80cbf8a2e02452e48b4fee72ef3fbacad8d83677abc10281c30089a28076d1d68ccad56388db0163b7b725e5aa3053cfb400bdcaddf995b2bea497896cf9c54f0cb5c25a22b0b16bbbb95367344c09c86b102a6b73e0f9b9aab272eedb06ede1ed7cd4b848f98308c4c122e40af7c767f62b329b3c6254ab944d365780c58d49b49d849aadb96bf69c5649985dcefad1d383d3c36d3d81ed16606bb1034e6d38c697bfad68a42745683837036b9cd890fbf797ef5d6690c23bb9e3b1c40973dbf6f62b005f61e5f8802852c84d27a601bfe363640bc16ec9e7b641910281c23c1346eae095cae1ef1feacd06a4c4d2f1ee4b135c2b7f3d22dfc10de6f4f67899cee2504252b572009a8fb80e807fbcd958f45a5237cf066f20788d8abfb76022032b6ad878160d6274c654681b9e399441fb0853c92f403cff13ad21d3ce998026e21bdbe3d98033fd1582169915b67c491388d41cef393ca2f2f583aae732d5d87a4561cfe160fd49a205531a03caa174ac48ba94d18e1b618c4935ecf562736897f2f813a344154387c4cd524115d352f8dfa10883532db127d4dd99258dc2d4]\n[sha = SHA-384]\n\n# tcId = 772\n# em represents a small integer\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = e3ed53a6f0f18a3e6a90044cfe6bf4efd1d3132cc274e37a1d65f5d86b7f0f44f3c924f714cb548c3e0a776a56c5ebaf00000000\nmsg = 6ce8486057bf0af47682d34def751d65a7cdf2edc2e1518cf96c95d125f17618b9a3fbeefe4b1c29ec258cfe3169aa771b3772c4997e472d65da3736e64120c1cc68110e5491fefde206b71a14cc4e96f826c1af4dea1369d6f29a32c9fb867c8910ffa786e47729ca862fb0e1b3b48700299d591a8cebdf0d8a2c622253dfdbc51fd554dd08d1bc4043b65aacd335b48490779be1b2499a9478415615ef70961421a4bed7be61a42825073054af2962e67d71201c094bb0ba924cf97e6e81dc4ebd9a8ee33030e2356b8e808a87b0cff1e91897aa241e7d1211ef464cfdb18a8881b59e346702e320abcaefe4e9f156fb589d54c340d15970729f64029341f2ba1b2ae0dae77be3a55122c85fa86945d41b1f4ab8411426ffed8fa632e75f609859\nresult = valid\nflags = Constructed\n\n# tcId = 773\n# em represents a small integer\nct = 1a93aa7065475280bff152e46394d26f07621a1e52972f0ee81c4f02985d276904c372f385c0f895c0f719ede146e397ad8e6c0c270d9da4f906c256c618d10cc581f4fde6f44263968f2eeb1b8c9d9240ea0976b8f4dbb8957a39cc598f3b31a69ff5cdd21b11dae9e0dd7929adbd6bcf5a34de85c99f2810960625d8ccb179b379296a26acc62c052f586ff31cead363a717c5726486fc1696a0c2f9d6740709a66f51043c318997911a87770afdf578c8d0c453028f2e597a3c5fdfcf7d039619736de870d84ddba29dad9f590483aebf4b84bc8b717ea498981c279c919c3ef70aecf7bef0fcd9536d340f43be884b3b5ad0b3482718e2132916cd068571b14694c4f6ee8433eaad6a13f3c4ed896ab0fce11b1b9d50c6347acd8ed088ff67aefdb19cba937e07d0705a6c8ffcd011629b33ad514510d5a3a31f53cc5f90817d5420472d554981b0bb9a45673e6fa956937f9f9ada017bc0000e5b6f5c578bc945402b216301afe6b25a1a961efadc4cd3aaf8bd3d4ec77fe13a554be5d73a4b2227\nlabel = f8343ff86e5650448a1a2c372b1bda8bf512701713017b61daa782751d0e3768e87e7b728abd485d2055e2bae4ad37cf00000000\nmsg = eb910d54e051c09090181c1bae07917b6b3b3f57a6a923307cb23f4d5a6e6f4ed2977762ddccefe94f439e9f44435e53180045f45de15320a30ce0139460d62603f53d66d59aae95b7000f0fb3c5d621d3583b023b69873a27fe52aef03ce6afc9b97588161d8a7c0a8fd4ed55174db1aae9e33649c5eab7d930b51f8c713e26c5bcf394a34ff1b893a409bf17437e0330cf4361cffa0e01aa3db7440b7c8c21d9c25e861eb8dad94f11e615efc251b37c63aca012fe778bd14e15a641075c8cbe4e497b4dbec93f63f8bf0e88a3e8e7f7a7aee334332db62eeef019f1ed55158ada3f79a32bc5e48f22b2856805a382b82edc3ef3cc492dad3519657b188e23a1b56155a3789dd2335759757412f4fee48f0aa4dbbda3914fe48c38ea08e835544b\nresult = valid\nflags = Constructed\n\n# tcId = 774\n# em represents a small integer\nct = 317931fe3f6a8b1f899371b89ac3d2497b91536b82f75179c593d8f5d4ec36284caf5587e49a9d1a4ac89ae6cbe6f2da24eb7a0fad03fcc277e0827a3c534fbc16f173cfd3d31279d229e50ed64e5ee7dc0baa5e46a3e9d4e79905cf87d85c2fbab5dda6afa8b9a08e3908e208231b5d5d56fade069077313c6f9494879b59092697c4f974377483ed66fee87431aef2b900896345c7072d705903497575fc22aaa3511a446ba3bc0f8118e3b74adf25c72a56495a5df1c96a6fff13410e7178fb32e5907afe85976b9764dedcea2d4f79fd3570a71844dff060084d8637d63577310d33741265e18641590c0a0a2909f8744aeb99cf97f819d614c751cb2c9158cfe0e3ef4843ffb7ba93958fe8e4cbe807274cb9c6d6b17d12200bb83b64f3a516eca3cbaadd70e4c55c4bb20346fb4f89f18ed70a829518f1b8864e1a83c5db09ffc880667b1ae30f936a30fa40afeb7f9471c4c7199ad7546de568c207de8dfe2bad374d7d4c5bfd7dce4398b4c971ca5700b13683d24e1c0a6d4f487e1f2cc86108\nlabel = f690520506e109069b536e670dec5d61bfb9f180291116fb2af2cd5f27bc523d9e820b145c1c03bbc9926a0629c09d8d00000000\nmsg = 0dae1d5855fa986c2b65cfcb24c2e3e6f84f8ecf91770c501ddb00b7e274389f5e7969dd2a1453e5bd1050f1c7961d35863bcefbffed80f16b2e5e282a0b67012a8ae741efbaddd1e062ac88bea714efd456d9a681c3baff87cb274d07ee5b9f75961b8d45bc2e3a69df97e477178e6e83c2c56e234336f3a219cfb77f32673129d1c3417e20ce9cdcefba9fb83375e0741bb66cd1c66fe62ae1be792a8a76e07e182ce6bf0116ff011810799412cafc477c99976222425a8843a457a3bf80c201bbc3976f13ee9a9b7fe378561b07602b3a2279af35ab5052b4dd71956a19656394bb2f89c7788cd642e3162a330c2231169691b4eeeafdcb63dd7c031f41b236ef579dfb688b0e6a4a0f7aa0c749196f154bdc8256e035e6ec5baeb3ab401872d0\nresult = valid\nflags = Constructed\n\n# tcId = 775\n# em represents a small integer\nct = 84484fe5185d8a4175d1501e8337df7680a210288677d116daf6828c7ac54fb635d29eeb745c517ce98ba08e1613073b1ba012605710cfe22b44d91fb95a07c261eb26afcca8385b0538e76dc4f0838478f0a1538c2cd12b53caa64b3c461f7abc5c01a2760f668db4a92451529c8c3fd63f4e3d15c47e7bf321fd1b90cfd1fa304ad289f36c5700f5289dc20c617e3447e59a6f590ddbacd194a42d44be825ae0558e0e0426b1ea46f86bcb746c643fbe87ce6d7b794fa3e575cf4692a457fb151fd1851f6268705cac43ffc2dca0d50fc1b1fee634478e7bdc5f64f00e53ea9dfe6fe13ae631530b87bdee1c33854e5091b84bafa460617c080bdd06ebbdeed51e9d91739ae2499fac61f980bfeaba7f190eda34acc3b60054afd731d51aeaca0dcba0de614119d4d30a7c6672f92752d0328dd926a05bd46640b98857c82388b4ee20450db739659997aed252d843c6ba8ee9f0616703dd8b33fd4c346593f325051c347fa4302534bee5dd669ab0ce33d210d0d72470e41403f05c812920ee0f603c\nlabel = b60b80e37f381cf571ed38a78823b59f0490163dbe7982f1369e986af48c8638c7937bd7302dd0304aa280e33c2bd03500000000\nmsg = a8ca5ddc13bcfba53524e57c821f4d1a979488b090c1bd30fc08ccb1e9c75b6e9011e7870ed5097b15ba4b0cb7762a52aaf7e68846216572ae70bc2057669d1b3e28deae3086c2309ef24b6d1338364c42c6bf2a5e504e2f1eee10ef2bcdd86054f38f04565fd1279b1a64fd84614b50f0ab724279398b100f10e1d64b6f83773e1be8877f1bb177a3dc0819d2440fc18e0fa600bbdbd6969213ac4502cea518b585dd53d2cf4775d96badc30c6cdd8df13407f5ccd6263b5d5e97a810cf14ab7330f744ba9789d89b56fe4a1d9808c5f65b5ae7c6adc55efd5626506f36ba3410d7ec8d33e69a8740563b57f5f1d612d0e4676d03fa2e0a3b87cf03893a3637b44cf05fa1b2bda733e15b633ed0c8d2e8049a49793ccb77c04874c9c992021ced72\nresult = valid\nflags = Constructed\n\n", }; -static const size_t kLen297 = 164058; +static const size_t kLen302 = 164058; -static const char *kData297[] = { +static const char *kData302[] = { "# Imported from Wycheproof's rsa_pkcs1_2048_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[d = 1a502d0eea6c7b69e21d5839101f705456ed0ef852fb47fe21071f54c5f33c8ceb066c62d727e32d26c58137329f89d3195325b795264c195d85472f7507dbd0961d2951f935a26b34f0ac24d15490e1128a9b7138915bc7dbfa8fe396357131c543ae9c98507368d9ceb08c1c6198a3eda7aea185a0e976cd42c22d00f003d9f19d96ea4c9afcbfe1441ccc802cfb0689f59d804c6a4e4f404c15174745ed6cb8bc88ef0b33ba0d2a80e35e43bc90f350052e72016e75b00d357a381c9c0d467069ca660887c987766349fcc43460b4aa516bce079edd87ba164307b752c277ed9528ad3ba0bf1877349ed3b7966a6c240110409bf4d0fade0c68fdadd847fd]\n[e = 010001]\n[keysize = 2048]\n[n = 00b3510a2bcd4ce644c5b594ae5059e12b2f054b658d5da5959a2fdf1871b808bc3df3e628d2792e51aad5c124b43bda453dca5cde4bcf28e7bd4effba0cb4b742bbb6d5a013cb63d1aa3a89e02627ef5398b52c0cfd97d208abeb8d7c9bce0bbeb019a86ddb589beb29a5b74bf861075c677c81d430f030c265247af9d3c9140ccb65309d07e0adc1efd15cf17e7b055d7da3868e4648cc3a180f0ee7f8e1e7b18098a3391b4ce7161e98d57af8a947e201a463e2d6bbca8059e5706e9dfed8f4856465ffa712ed1aa18e888d12dc6aa09ce95ecfca83cc5b0b15db09c8647f5d524c0f2e7620a3416b9623cadc0f097af573261c98c8400aa12af38e43cad84d]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100b3510a2bcd4ce644c5b594ae5059e12b2f054b658d5da5959a2fdf1871b808bc3df3e628d2792e51aad5c124b43bda453dca5cde4bcf28e7bd4effba0cb4b742bbb6d5a013cb63d1aa3a89e02627ef5398b52c0cfd97d208abeb8d7c9bce0bbeb019a86ddb589beb29a5b74bf861075c677c81d430f030c265247af9d3c9140ccb65309d07e0adc1efd15cf17e7b055d7da3868e4648cc3a180f0ee7f8e1e7b18098a3391b4ce7161e98d57af8a947e201a463e2d6bbca8059e5706e9dfed8f4856465ffa712ed1aa18e888d12dc6aa09ce95ecfca83cc5b0b15db09c8647f5d524c0f2e7620a3416b9623cadc0f097af573261c98c8400aa12af38e43cad84d0203010001028201001a502d0eea6c7b69e21d5839101f705456ed0ef852fb47fe21071f54c5f33c8ceb066c62d727e32d26c58137329f89d3195325b795264c195d85472f7507dbd0961d2951f935a26b34f0ac24d15490e1128a9b7138915bc7dbfa8fe396357131c543ae9c98507368d9ceb08c1c6198a3eda7aea185a0e976cd42c22d00f003d9f19d96ea4c9afcbfe1441ccc802cfb0689f59d804c6a4e4f404c15174745ed6cb8bc88ef0b33ba0d2a80e35e43bc90f350052e72016e75b00d357a381c9c0d467069ca660887c987766349fcc43460b4aa516bce079edd87ba164307b752c277ed9528ad3ba0bf1877349ed3b7966a6c240110409bf4d0fade0c68fdadd847fd02818100ec125cf37e310a2ff46263b9b2e0629d6390005ec88913d4fb71bd4dd856124498aaeba983d7ba2bd942e64d223feb7a23af4d605efeea6bd70d39afe99d35a3aa15e74a1768778093be0edd4a8d09b2def6dc9b67ff85764625c2e19236db4c401ce30a2572d3ecb4f969b7ad19c522c02d774465676e1a3776c54d6248348b02818100c2742abcd9897bd4b0b671f973fc82a8f84abf5705ff88dd41948623afe9dca60dc6543390767feaebeb539576ee8bfa61b5fcbca94a7cef75a09150c540fa9694dd8004ad23718c889049219369c99f4458d4afc148f6f07df87324a96d9cf7b385dd8622414a1832f9f29446f050c2d5a6407649dc41ab70e23b3dcc22c9870281810096a9798d250263400bb6277342881627e07cecdf91187b01b89ff47314188a7c20fb24800156d2c85d5666e8df6ceff9f9804ddfad80ff5767de56ecc029c72bf6c717df9f64daafc29acf9dc7908f9a0ad67e20e8949936ccba18d021a2c4febb04349a2b2047c4901385b6e5d0c691d118b33f81802b32ac272ef09e42fad50281800554f41b0b87f68a45722b3be0cf4ab1e165034c1a91002ab8f29e9ef9e2dab6fee7b2455bafb42037e9d2f7e533f348a147412fd72080be7c2633f5d802c91c39e6bcece3e675e59995033c55737020dad9e8b30d04b828adfb9304ad54a11a35a4f50709876ac5b118236ba76a4d7c9a291dd9607b169de1d182385691999f0281801c640189d9bfe8c623833210a76c420c6f44e5d760e259916cec2ae2b156456960fd95e2747660c389562250f055049cfab7e5c3039549384a7a2aaeb1c824d3af709482a8cf9b587022a00b1f0722db50f33cb26dc20dd2245d5265df61ee2983c938c2167dcee121fc4b4479c237e728cf633ab60a8c0ecd04fce7e3baa559]\n\n# tcId = 1\nct = 5999ccb0cfdd584a3fd9daf247b9cd7314323f8bba4864258f98c6bafc068fe672641bab25ef5b1a7a2b88f67f12af3ca4fe3c493b2062bbb11ad3b1ba0640025c814326ff50ed52b176bd7f606ea9e209bcdcc67c0a0c4b8ed30b9959c57e90fd1efdf99895e2608095f92caff9070dec900fb96d5ce5efd2b2e66b80cff27d482d242b307cb813e7dc818fce31b67ac9a94501b5bc4621b547ba9d81808dd297d600dfc1a7deeb061570cde8894e398453328740adfd77cf76075a109d41ad296651ac817382424a4907d5a342d06cf19c09d5b37a147dd69045bf7d378e19dbbbbfb25282e3d9a4dc9793c8c32ab5a45c0b43dba4daca367b6eb5f4432a62\nmsg = \nresult = valid\n\n# tcId = 2\nct = a9acec7e58761d9191249ff7ea5db499cadccc51d29f8e7fd0aa2cb9962095626f1cadae29666f04ce2afd4b650be59d071d06446d59107eb508cc60545727b0567dfb4f2f94ca60b939c60be111172f367dfd235516e4a60061648c67f5536650821ac2a60744be3cf6befa8f66e76a3e7c5fbc6dfa4dda55ecbdbffdc98d610de5667a4f485f6168b52bbe470e6014253874ce7b78e509937e0bc5f02857e1ad3cf55139bbe6dc7ac4b1ed5097bf781b7671ca9bb58187aa6c71c58ac0561c5aacf96c35deb24e395b6823de7fc96b8031b5906a34c4dc57e4f1226157b9abd849e1367dda014fbf9ed4ca515a7a04cf87787945007e4f63c0366a5bbc3489\nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 4501b4d669e01b9ef2dc800aa1b06d49196f5a09fe8fbcd037323c60eaf027bfb98432be4e4a26c567ffec718bcbea977dd26812fa071c33808b4d5ebb742d9879806094b6fbeea63d25ea3141733b60e31c6912106e1b758a7fe0014f075193faa8b4622bfd5d3013f0a32190a95de61a3604711bc62945f95a6522bd4dfed0a994ef185b28c281f7b5e4c8ed41176d12d9fc1b837e6a0111d0132d08a6d6f0580de0c9eed8ed105531799482d1e466c68c23b0c222af7fc12ac279bc4ff57e7b4586d209371b38c4c1035edd418dc5f960441cb21ea2bedbfea86de0d7861e81021b650a1de51002c315f1e7c12debe4dcebf790caaa54a2f26b149cf9e77d\nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 455fe8c7c59d08c068b5ff739d8dab912b639c8e9eade5d0519d58f4ead7208d5a753b4a88fe771475adc82d10ab29ded28caf03f9034d3a111b520440c02276e1b6417c42eec0257f1f05482868987f2f75bd33d1ec3dbc799d7b5bf25c4a0543793a4d3ce305cc43646bc450344e624fd381e24d8e57ef2840dd9d576da554ba408ee6580159e6d88438a28d66250b3b3fe3bc6624406022a9e4ee2778c38230674f635f56b9d6adcf2be6bfab34a8a431169d769876422f7077ded31fa6f29993dd1972b2d2d24b0513a7a193f6a88d53c49cde2c030f85e3ddfbc9f99b4a667fd9c652382238166f3d39eb2b78de53ad24c97699fe5738a7a705a2ab141b\nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 1cf861ef8b6c29474666605d3ddb663a259a9ae838417abcc7f7dd42d471d5f3812cdf90e3041c4c5bfd38ac1e4d95fd71661bddac45f5f8e3e89629a335bbf2eff116030f1c5ace8336cf7e94c2e8bf5a1d6116e54ec42b9da5fc651a41ac8fd38194e5029489cfde1f7fc850c0dfb3dc00021f74ae3847327c69afdb1355c7587bb93d5f4d2cfb35a7f70bcabd43eb32300585b6ee32f14a68c2a08434e923adb76dfcdf3ea5133edffa5ca20425083b28ecb045e69562b44286d320d87285e7a2e3bedded083c010401ae22c8f278b080112c4264a3cad3ed9fa31cf19e052aabbda9f8ecef1d64786258202bb61128b3140a355d65b982b0239764d77d24\nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 8122b33665648346f6cf728f285667cff7f3c20907e76438e64db81a6a5e74c34c5694fb5b4c826067bae94c5176e152eb16884d9c2b63d2ff41d06140c9c39469a4ae05cda86c81ccb208894266f6b24a0f79132f71521e10683faa05c8e68b77dd6c0c04cbfef55a9d1b68291c286e08907c3df029c52e15539027f534c7df8da5637db99355b24576b873c119ff1d74b3c913b70c48f366887ccbe6d206c11657401f41baad9290fe6ae01855a99891700d71775fb36237bd3597ad240fff4c03d1fe599cdec65baef11fbc4889575a55f255b51ec8298595dbcc89659382d35c2b85a941c33746a7937f3d18e27079fc3d2252904aa533fbfd2ebed2e059\nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 18e280e8b03d8588b923842d15fddb0493285ecd7ad2d9a9878045ce615ba07cb811fd4a0737e91ece5a63b70b1edc23e0da939ec654333eb77e956108b040bd6b92927e25a6922d1b92302036985915fedf9fb38431bbce1feee3ec42ff15bc4a4b6d10b3da41ec96667b81163b30b46eef4f46fb22f187da8fd536461e5594bf557a6dfc2337883bee8d6187192a3b4bea70398b01f3ea8c1547f6c57248243365b3c46b117924d8bb6845ea382c389c648d3e65ff0b8711bbe1a6fd3bea028f5808725f198cda0407a0ff46b5af261a37184547250f496800e697290e39d46d6bce67b767d73a63bd98f699c1828180abfd51a3048d050d496236edf1e99d\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\n# Longest valid message size\nct = 7e151b7b34e3b4abe045cf708640e61501c50fdca629aeca10259d45d15eeec6a2008b6336f57021ac6fdad9a6b29d65f098abff76f93722a8e23fb5e153db075005575dad6adccb7c020cd741c3419946b82d369a07fad5b0d55d51774f8991bd65e9e828d8f5a989c866a024a4a78434e9affd0af2c72f9185d450b627008a8a0968fc6373ca340410306a58921cce1207bb6f6c14e3d1f214304f9f6bb9199909e1610322e834b0ce9f55b1835d7623b82ef548545f984ea51466250159344dde902a0f021ba4baf26b16d8c6a42003f4d5dcae531", "187dc7e3f87c9e04470599eb623e04fca266e86f98cabb6866004e7fc80b36c3977456e51eb64f4b65f\nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 9\n# ps is all 0\nct = 6e0d507f66e16d4b7373a504c6d48692aaa541fdd59eeb5d4a2cd91f6000ce9b5734a232d6541a78729ac82152d3a30b51950a24ae379a108ed20fa4ec7542fe2281c2dd5de685564d15182f3c73e9c0135ebc993f5acd240a343d3257997582328c31be215c7349375406aa78a3ac35327226839bee2f1a4a0f8e6e06986cb33806c93e0b0c1d6cfd23f4a68c1f2a38c74b8df70f280984a840c710c52279034d04f61e313d4bcd8b3b5c58468a44565a1acb2eefc6d49044be7163e64ed84b5e7991ecba274a3a7ee4defb842a86ac4cbf2d3bfc9cf870ae025a3e2fbc775916a59579763c06eb84ad8edd1d03787e609ad446de43ebed16330ab06716fa73\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 10\n# ps is all 1\nct = 633546723d13ef2712561abfa5b477a36ce7c8dc5a9f43589ea289a15f749c89e4e3ba3ca6a615333e9bb5ff3efb62b32e7f11870c8bbeffe884a5ef2b1006045bd97bb29699084dac4212c217e10113232683445091fa7224abc02ad37feaf10d5b4af6f288fa01d85bcd944bf411ac56c0b7bf1037452f540f286114b14b2208fb4282b6829c594aa27ad5ef1dc67b5696ed2a4b9a4ee2354cc05315fff5e8a4e0e75675c1eed34d46effa73ea96e748340771dfec01dae937edd8924ece8470542a8251c31e9130e2c5f80152b4c66111df52f7e5f9b40835b44bf8e8e273b075dc04f758a30c24dc2c2abeaf639f4fca4dacd509250378ad0e5276374b99\nmsg = 54657374\nresult = valid\n\n# tcId = 11\n# rsa_sslv23_padding\nct = 94a6ecdadcc3a9c5645d0410929ba8f01c89b8426b889d3064cf1811f2caaa1e1a55a29a1869a7d719226bcea637407bb80383e76b5966e2ea4d56fbb2fb325da12546071b65898b12e36d0ea0e47245930eb051cecc4b8dede18adb4f1ca318cf0e36820f1cfd4911f076e0f3fbf9c197a0ed32063f72405477888f13cbab4649e3c8df4f022a4109ecb91fbeedbc4df4d89ad9cacbbd7e8e27a2f1fe1813d3f1b537ecf41878f05918171504bf800631781a7c36451abbc32dda5b55f05f4ba7b5414089d9d679248cf042756a4f06c37c8b5a18a6ba8f97853cc6763235ee841d96e61f2d75c188ca53d222d3d925a3d701551758feb79ccf8709cb61b793\nmsg = 54657374\nresult = valid\n\n# tcId = 12\n# byte 0 of ps is 0\nct = 6a8b8c01247d9d4d1c3bbaac58e077e37926854dc8bdb58fb7b98979ba9102934469836480a0b96a5b452e54dff55e77b52dc1cb93656f6802b7fbe06ca0923e38e549dabcdbce909fdd10d677d896384af75e7146794bfa009ebbb2d6890b1cfcad4698d297c759b0a01151bdfe1d48cf92e80896be923d02371930cafb155e543d9a21e52faf2395234e65d575fa9f5276c80ae4cd6ec18ac6d954ad043d2a46932763ca44476180b397215d95651fba63220998e06ab2dcc4935dadaae8660ac8c6356b871e0b1397af20d6fe937c3211e21559a3d0eb39c2949a96611b13740ae0c26ce67c373a9225a3c1773ec662ca20dee620c0acef1475b362ee9b9f\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 13\n# byte 1 of ps is 0\nct = 84c149c378f3f12ce202bb561456257057709114ecbaa4c3a7dbfbcbfaf2fe9a19cebabd72e39474b6bd7871c3dae41a9c87c5cb2fafc2d06d49c60ac401ed1e125522d0854fe8fb8611f8efb90d2b89a14eaeb6e991f19329dd7d183ef72cf0543dabedcdecc9977cc9395e2629a1dc8d359b2bc0fea6ef250c4cfa2ac8ad22a6a587e32859a8c99e4f7cdf938527e9e0bb597721517067d83fab31457e52e7a11b0393135d30e619d7cc47caf970facdd8dc4bd613b151f93cc53c1307cef68feb5a67d32337cf2ff954be7a553d3f07c9f657aebd9e8d4ee99e8736c152804295f366a4ffaf2a72e29c2f87b03b28b99da1f6a7ee0d9364ef711eda4f0793\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 14\n# byte 7 of ps is 0\nct = 3307264f64d4ca8b62c4e7da4cac117262e5d3a3dbc19a529ac5167c1987bce56e358726d0ecfc6cb591a12bd5f7531cd2249439254c366ad3cb7a608f845e1eca931018295208ba5c6198027b22191224c4568856ab331e2acf530fc434870865d3321ac90327a8c61f27cac9859dac8e3c38d8453349d2ef8e4a7e8011f6badd1530eae710e0c60d35905f20d7a2d118e7ce18ebb220f04b4089778cbf091bcb3e02aca83b4b9ba5319c3069188c7b00c7d32ebe1dd6e6535b5f667ce972f00ba773d4cf6a556ccf65bacc1eca2312881caf6a89ff5d83960846a5d9dd31477dcc9ee4ae50ab0cb2e574a685bd9d7b7a74c7ca9876f08fd64d1d5f196786be\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 15\n# ps truncated\nct = 16d56b7a9e672e387016e8b1c9cff474d560faa8ca14a565fba086015c5f9d53b205c4ccfe77ed5f3d10a04a23bc031d9c7fc809668ceb5c4e31ba8760475de713413b1ae5666e93087e146a2607c00d6492ed095973c7ccd79996aa26023a2c6623f382e94a4c595fbb596be074f87559267186cc475175152277cccaf9513dcb95a1f6540bb633a9a65182f2a53838b85329c9544c24740b24b27ce5d760f051c47e6cc107c264bc1a87ba7bd2bf27675547bda28b3d2a7281d6732f9dbc3c20eecb280f2ba6f25cd49c930dcc3a413987ab4de0fe9314a61e092b3708c75c9bf96831df05e4dbe31f75b2ddaf3bde7f01c7940ec62758006a652871d72b75\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 16\n# ps missing\nct = 25f67bc6c1320a13fa91a23d4d1801cc73594161a7f344ffa195d6dd1894c1e39d6cd81866462d05e0e16c02459a3f1dc5f0ecc52657f70385fd0b33de214216a2298b4814550af1ecd929170bc69b74e08299bea50de33021468f4fe2a2e4a43233d6872d15379ccea03450145d909c5eb11ca5f524e17b2065768b9bb06438e81b0b8ca816bfcc7eddcffba59b33e2a0b4ad8df215c2eafa240e553f1526dad66038e54f305a6d3fd6460e781239c9dc424ab6df7f75bb4327d873d0e8d7ecab1b09b8779cb841e002ee45f8dbebd2d483de2d7136ae7e350580dc8a48bcd6359a677bccd689bbdf879f2520d8976fc2b92e64dda8e7399719a13b8182c739\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 17\n# Block type = 0\nct = 371e281730bbc289cd77a64ab49b370ed7900c48f5625615ff28beeeeabc860b4673ab16003fd5e13c89c8b6a0e5c9b732044981ddf2bc45d4613bf409cb2e98123ceb661c1093773d71c67fd198288d6e9b832596894834c3955799ea20e242b632335baf8e8787c104499fb5d0eaa331f05a8b46383dd13cc05f0518d05d9b03bdfdc2dbc9299a04210c33f5dbed3779fb1548ead0022622234a6a2ffe5ca42a43db40f272d6633c7151360b5b90e135283a6aaf69b0491edda637dea0989e3a5dd0c3aac267074662443c37ce1b3fd4b2e9743fb0d00dc136d8df10b6fd0b60d30c1399ab52d75e2db559d8faefc45008c2d9100ed08caa88bdc11aea04df\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 18\n# Block type = 1\nct = 92210e5bbf24d2cd9527f6e24ffafafdfee242b146539f3731715fff42092cc8f5a1a4919417c9df9a5a32e61201f4354a87ab06e97f827f69e6cc13e7b9c79515145f210713523e6f64def697406a4929b2e09c31890b695b7b8bb851a22c7b541c5dc53cc75954c0246eae5a12af304133f4dcdb90f8c6f54847165612f7ef70f51dd493899d6e09ae9fed16fb1f1225d09750177893c5e5482e3cd427931ffd3fef3e901d51f39aa17e34443a34754533a887474e19213a5e24298071495d18c6ac77dece094c56bb34ed8274f5d75f99162a58dfc4240f5393baae58f484ef0a0259b56ad647ad81fe88c91b75a36b1acc67a56ec379bba03a8be91dc0cd\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 19\n# Block type = 0xff\nct = 6dbc27d33371f8cb3c3a54185a687a66eea8114f26cd234617b2f567d6013e222f33d7fe05298b73f8bf20266483571a52b1da2c0b1a431c257c62ed441215f57cd2a4af4628eeb21a9cd66a350a161cce446f25224a9acbdcdd709b14b810fafb02f3879605402e3fa6404e6e9a13b3f4fd3bd0e6c32f188a367a94aea813aebf4bd31635e5843a27bf7300419365d00ab97cb535866ba521dd0a8460fbc368ab9337caeee54f719f8998b126a111ffc6cff6d3c43ced45e8dce6565c00bf0be00694c339f7fdbe064c60e040a95b5d5b4af15fb7f14e00da6a591f187277e0c453eef7ffcef2a4efab93afdaa58e0bc1bb25286d9ce202176f395e29f92136\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 20\n# First byte is not zero\nct = 794ab724aeb176c4415a597e9d69cb567cece4479e6e4c9c19530b0877b53719d7f6318be8e970874c4be19984c632825dee7a38561a6904e23c776ccce71128847c24d5609e6790e3c9112393660ffd208771916d2e80d2c2fb35ff7936bab6c03e07646f15d09a88fd2ff8e70b624c66da4eb7dae241907ef328697c219d1ff347ada945e24ab526b6cea4e6b7f386560ab56f16751f6e2de0f7922a8946ae9afb9ce95369418f540163827f452f5d2a5029a1ce417453324eb015fd83ca2147331c02c762c457fc52ca5f097610c60430b69b6b0fc1c0877513bdb51923bca03e9af9174d3094530a007253958bfed03606e6f75cb5854443eaa363614116\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 21\n# First byte is not zero\nct = 8c7b80188818f63e6a0110cf94a169c78a0db75917caaf47405e8384b79a8f40de94f28f749186c4f16aeffb66168ac7c319d47de699ccae0edcb51a6822f88e27e99a1a0bb39d292e7d6e0922c1d2fd649376d81160d15cce10fc7082b88e8cd80dff13a33b54b8c00178a35fbbca633f4987f117aa9ec8e5f123dadcf29700ed5dbdad05bcd8e990985d950b210edae1ca1f6ecabf50a27e", "4bb23d4e80bf3955852e2ca18fd3e3c2f570fbeece943ef5c10ed1265049eac0d5b549713368703ad02311193ba0d3dac6073eb799139229a4aa0bfbc25bd5e886ad213dc321131ed12cf1008ee8af3a1588d06c75d7cf7375998e5a03af0ec8aa92276bd51b21\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 22\n# signature padding\nct = 34bc8b1a4646f2db8b10fdae22d6b5cb300229114015f25293d4b28e8f58783e1c5e6894da18dea527e4d843b51cf984170d56853e45f6ac77b1179eb0aa74fc556cbd632d576524b820a2c74a4c8159885fa08937e9c73ca0385c7a19676f2789b62f7a8b359a29132d74bc2b850e2335b5c7da8bf52d8d6fadd83ff9db32239bb737e890a32d561b10e9163c2fe4d35624e3e5faf664374c972a8d2e5b873c9a465e108bbdff1296c5557f314026558441a055d4b9cbb54179356787bd4bd02015cb3bbe02633711f266e915a0b4591415983610a2714adce1b0716675b95877bcef618784f2b3cd23fcdd0636e5856edb96852a32c9632c2e6e4b9a6f881e\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 23\n# no zero after padding\nct = 4629027bfdd6c33abda030f0cb3ac1b55bddddd11292520f142248bbd1efad14adcb7ec50d278471f4a98dc9a674c202d823677d2606cd639fda443d7c14f0aa35f472189abe1b639f0856743212aab46ae35160ab4e6c08a20e5b82210b07b6eed11a315ef1b1f831b52bfd3abc06382b51c41a665ca6428e4bb6bd0df7895d056b8c17093e73c8129916e3abab3f61ce9a94c9d2fd30902076104b0e7fbde8da601f6c1bcc56a0100104848da6e9fbb28d893274b40885b3003ec7781aa710c83fbf4d4bc197630b1455853c4d6d6050011a7f7377e9034d29e4396f52b24ee6875feef883274cb0842b4b177d3fa3b416095c6ff96f6de0d9123dd9ce6d31\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 24\n# no padding\nct = 910ad40ae0d8af151f512354e1cf12af7c4851cff0b659026e90a9ec4dea6c1e4b2b33cbe8260501493df2e7fa2cd77f020a7cfac1ca379eed3fe6d003335653a5f022f6bf5010e5f58c41fc91253d75eac2072479d4bb3509e1351a66f700ff4ac470115490021734bb8099e66c35f904f09d167303e26163393ed556cdccdfae95f239ebf0bd361a8adad927fb9544ca30132195735cb026dd0dc66c6efa0db41b73fc1c917be384a430e0788f5f872785cd709f70793204753d7b207fbce2d0bfbab11d3d614b99bf87bcc9a34db639fd203c9c081ddeecb9c85221e03cb9171685dafcfeaba470c5f1921a6fe016ba4b816a2328eee9853fa6994ec313d8\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 25\n# m = 2\nct = 6294ddf0fcd137390cb2193e050b5f61bf0183972912dca88ddcef7d54388665a7ff9be1f074b5e33b55dbf7c4212554a4e6243d3974aef4d95794dc72261883a45842da69497a36ed22c3590b0110e857bd0fc729663df53c831836f890b2b2012c9f56fc6dff36daada1a1e1cb2d654fee868c7c6fd58435dc8edb95dfe0271787074c2be9aace1f33ebd07ee6112cfb62f52487934af0c22ac93dafccfb01c561b370f05f3e604e92e5380103ba91113d007ab97b21ff3feb22f37c1a358215467d0a0223d43792f4947aa30c38f14246d1db9918c94600e7d0a393079dec2d9ad368ef378b2fff72cdd7c572f11074caca0995ca3e576428f651e1cf3764\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 26\n# m = n-2\nct = 50bc2c3ad07baf0bb9037b704b4e81c97003c7ce644ac8ed0c52ef9b1d7f825695f44a46e204786e6f7fe52cf01ab4f098e438a1125a79f2e3f76add9a8e9ebf175e92c5aa81e99abd17c6871b26de6b40f81c45d43194136f687545a33d590caeed0916deea9cb44ef815aa1695d9f7178dfb47b4805b3e2f47ec1e3de933e5b3de2950dbf702f3d09d7120ff94f43082409169beb5814955e445aa4914ecafbb36efc82aeda8b5d005f042f7a58d50f06763681d40a88119fa4d7b21e4a372701de8f5a4ef18e30e99f4126fd031af5aa28cf4316b03150a2e0a66355ce17124b13bc586e918116c2355f3169c186a80a85c1302fe01b33d01fd3c61fba0e9\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 27\n# c = 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 28\n# c = 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 29\n# c = n-1\nct = b3510a2bcd4ce644c5b594ae5059e12b2f054b658d5da5959a2fdf1871b808bc3df3e628d2792e51aad5c124b43bda453dca5cde4bcf28e7bd4effba0cb4b742bbb6d5a013cb63d1aa3a89e02627ef5398b52c0cfd97d208abeb8d7c9bce0bbeb019a86ddb589beb29a5b74bf861075c677c81d430f030c265247af9d3c9140ccb65309d07e0adc1efd15cf17e7b055d7da3868e4648cc3a180f0ee7f8e1e7b18098a3391b4ce7161e98d57af8a947e201a463e2d6bbca8059e5706e9dfed8f4856465ffa712ed1aa18e888d12dc6aa09ce95ecfca83cc5b0b15db09c8647f5d524c0f2e7620a3416b9623cadc0f097af573261c98c8400aa12af38e43cad84c\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 30\n# ciphertext is empty\nct = \nmsg = 54657374\nresult = invalid\n\n# tcId = 31\n# prepended bytes to ciphertext\nct = 00004501b4d669e01b9ef2dc800aa1b06d49196f5a09fe8fbcd037323c60eaf027bfb98432be4e4a26c567ffec718bcbea977dd26812fa071c33808b4d5ebb742d9879806094b6fbeea63d25ea3141733b60e31c6912106e1b758a7fe0014f075193faa8b4622bfd5d3013f0a32190a95de61a3604711bc62945f95a6522bd4dfed0a994ef185b28c281f7b5e4c8ed41176d12d9fc1b837e6a0111d0132d08a6d6f0580de0c9eed8ed105531799482d1e466c68c23b0c222af7fc12ac279bc4ff57e7b4586d209371b38c4c1035edd418dc5f960441cb21ea2bedbfea86de0d7861e81021b650a1de51002c315f1e7c12debe4dcebf790caaa54a2f26b149cf9e77d\nmsg = 54657374\nresult = invalid\n\n# tcId = 32\n# appended bytes to ciphertext\nct = 4501b4d669e01b9ef2dc800aa1b06d49196f5a09fe8fbcd037323c60eaf027bfb98432be4e4a26c567ffec718bcbea977dd26812fa071c33808b4d5ebb742d9879806094b6fbeea63d25ea3141733b60e31c6912106e1b758a7fe0014f075193faa8b4622bfd5d3013f0a32190a95de61a3604711bc62945f95a6522bd4dfed0a994ef185b28c281f7b5e4c8ed41176d12d9fc1b837e6a0111d0132d08a6d6f0580de0c9eed8ed105531799482d1e466c68c23b0c222af7fc12ac279bc4ff57e7b4586d209371b38c4c1035edd418dc5f960441cb21ea2bedbfea86de0d7861e81021b650a1de51002c315f1e7c12debe4dcebf790caaa54a2f26b149cf9e77d0000\nmsg = 54657374\nresult = invalid\n\n# tcId = 33\n# truncated ciphertext\nct = 01b4d669e01b9ef2dc800aa1b06d49196f5a09fe8fbcd037323c60eaf027bfb98432be4e4a26c567ffec718bcbea977dd26812fa071c33808b4d5ebb742d9879806094b6fbeea63d25ea3141733b60e31c6912106e1b758a7fe0014f075193faa8b4622bfd5d3013f0a32190a95de61a3604711bc62945f95a6522bd4dfed0a994ef185b28c281f7b5e4c8ed41176d12d9fc1b837e6a0111d0132d08a6d6f0580de0c9eed8ed105531799482d1e466c68c23b0c222af7fc12ac279bc4ff57e7b4586d209371b38c4c1035edd418dc5f960441cb21ea2bedbfea86de0d7861e81021b650a1de51002c315f1e7c12debe4dcebf790caaa54a2f26b149cf9e77d\nmsg = 54657374\nresult = invalid\n\n[d = 2bd68add0171ed921c0924dc0a40427fd4a4fc67821c6e7d50d0e8c730c665e2a843b1eb243e763a740d3c666b1bb1d4f9466b32b2b2e09a9e26e8777595da48a13ba9f9c45f6d2c214b9e5e504bfb3fafbce6adb31e8c15bde1968899efee1a5dcdff0d2a8bf2e27301eaa07882494610a23dd3644d0eb0a6086450e3a7bd4b5c446c01814be16c208619f8a5b7463fca583d936864bf74d96788aae8e5bae3c052a2b409df9a08eb9be76b3dbaba28863d5c56ee42eecdb85075e04de90b6dd3bd9408d7fa5694697c185162329ab9b57f21a84cab007c1c10d975f5491977fecf6c949f3a566d84be477ddaab02c0762d1b232f8a61910715a0ffa438a461]\n[e = 010001]\n[keysize = 2048]\n[n = 00dd904590397808c4314329623d9013453843251b13b8b3c4fef54598112af3eb31c71103c6259951674e53bd93a7e36d19472e474ebe8028686d9529484d8bafea4a04ba19555667616c8478670594009c9bc6a3efe52274cba64c724747d7edc194e4fedde32a3289d94c31936e7e7a15d756f548492f5b345b927e8c618bdd550acb21a17ae148304383db9b3c7baa3e4c8bd8e844a884daa3e18d56998cb32f9bae4d41d56a18ddd4313c8089b75e9dbb9128470bac9b087fb61928ab0f8c4c89360b020899008d08e8bd31f907a807e8056ad6800dffdf9ed9d964a939e7e48114b84978551acb85c9df9196f3eff55286d6cd4b39a822a8a7763a18208f]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100dd904590397808c4314329623d9013453843251b13b8b3c4fef54598112af3eb31c71103c625", @@ -8293,9 +8603,9 @@ static const char *kData297[] = { "fca291fa2ebd0d9ffe3e8cf5071a524f863df26369c22b38eacecdc784dd65e20d356a6e20de033c481ebe1c5cd42366ac83c26caf73875e628875c925de9c3939bd7f912bfded876393b1f6a314447a96bbc4cfe3c01443a2a9de7121023ee025194f5a20cb768591a01]\n[e = 010001]\n[keysize = 2048]\n[n = 00cc890f82986e18c35e18a2ea354bd2c7e88dca9f0e1981497b31342b893992a49f36380fbe9829995e9aec1b3ec88dfbcbfb11bd2a00140f8f6647c5e3bdda527799ef0571f45427f10d2463ee096fda48c41085d3a90bf7072d06fb7a3d2286cd10255a82a52452ea3e61e2d8e35eff9f6b831b48f09b522df104f48ac58f76cd241b9fddc042e7683774117808681693536600e1cd3035dcf6ec30a6bdf659b15e0417c3bfc4c9a591f2f858081df1243477d41812a6ac74bc4fbb6485b18aaf6a00c32593751a527723b4802d318038698de9063818044cca1b035b8800193fed71d3c38ed3296fddb336552b68d380d1214b13a1c86e6f687bd37e5fd22b]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100cc890f82986e18c35e18a2ea354bd2c7e88dca9f0e1981497b31342b893992a49f36380fbe9829995e9aec1b3ec88dfbcbfb11bd2a00140f8f6647c5e3bdda527799ef0571f45427f10d2463ee096fda48c41085d3a90bf7072d06fb7a3d2286cd10255a82a52452ea3e61e2d8e35eff9f6b831b48f09b522df104f48ac58f76cd241b9fddc042e7683774117808681693536600e1cd3035dcf6ec30a6bdf659b15e0417c3bfc4c9a591f2f858081df1243477d41812a6ac74bc4fbb6485b18aaf6a00c32593751a527723b4802d318038698de9063818044cca1b035b8800193fed71d3c38ed3296fddb336552b68d380d1214b13a1c86e6f687bd37e5fd22b02030100010282010100877c32fdfb22d2dc7734329699ff43fc901b7ca0a7a25575eb58c88a1e3838df3b679af332f97074dbaa1bc4606e513efdfbade07435e113fd956eedb2d24c105c9167376028cca63892d00c31dda66e1dcd627483a472fc8b905413b9014e21a52c90d1c7c0c4b2f7dfa2cfb583c7a5e4603f548f98720a99cc11d03b2c6abec41d4ab1a6e4f73f394ef46213fcade3131ef85b004fca291fa2ebd0d9ffe3e8cf5071a524f863df26369c22b38eacecdc784dd65e20d356a6e20de033c481ebe1c5cd42366ac83c26caf73875e628875c925de9c3939bd7f912bfded876393b1f6a314447a96bbc4cfe3c01443a2a9de7121023ee025194f5a20cb768591a0102818100ea90923ad1a16d8f5704bdfd34a7f059941112c391f656b750f6c9ca1d916397ebcc33f48c300a9d001071caf00d33f80cf0ae3efd899c6443e6cdb9214d9dfb209e088163e75dd7582d3639df75d9cf113eb42bc61f7e90ebd9a619deb41c76d5728f3134d4564142e166f46313f1a7492f23d207fc2d8fa15cc7a01f24214102818100df39faf40d3cbaf2aed2d0f69c67b2bbb19e7c81bc90306918471d1e406cac8ed9969e8bdc80be72502176d68ea1f6016ecaf4d3b4ce24ea76762325fd1680345e5c5b77ba4888b9d7d4fd85af16e20cc922b8bd2bbb49f6373236ddc939063ae276d2fb4a3812de74047a1d9259fd877e2329920f4424585bb27afdc61eec6b02818100cc97db2438b2d00825c37a1fbfecf7a47a94c5c415ad4307d433dde05017ff4184a7716dcd551dfcc11096e086af4d73ff7d72ce7880ae0b7a7a775811e74c73bd887a2cb9c215c4fe21395a13420d0022af89a160c719b33834783fba53693c7182e1c8eea682b19baf5508b6deaf79d548abbac7c23acf3bd4dc3e1acb7dc102818054bbe08bb55ea1242fc26c79c02308d0807ac58e45b281fdd2ae63da30e04f9c25f22b9ab187d942f131d2b75d0b13a3b597aad995df4e5a05bf9056023d014b5faa353a3c66fe27754b2f3508a26a0a2a6b58aece23d8ce7263483a66009461d3c7010d4c3dfec39c4c7ac230e4a1fd459f394f6d261399caacf44cd260b8a30281804f8c1d61e059c9920e68544adc7e028f8f05933b4f49cec1614999d120450198bef26bdde1099bffc5316baef331c2b3d854e42a2f18858735641952104847cbbce742c8a6b9238143af4b27cb8ca4ef931f5509f2bca875397edfabdd2263e0867303dbdfbfac683a10c42d76184f320c469ab0f680a83797684b61026b93df]\n\n# tcId = 64\n# edge case for montgomery reduction with special primes\nct = cc890f82986e18c35e18a2ea354bd2c7e88dca9f0e1981497b31342b893992a49f36380fbe9829995e9aec1b3ec88dfbcbfb11bd2a00140f8f6647c5e3bdda527799ef0571f45427f10d2463ee096fda48c41085d3a90bf7072d06fb7a3d2286cd10255a82a52452ea3e61e2d8e35eff9f6b831b48f09b522df104f48ac58f76cc241b9fddc042e7683774117808681693536600e1cd3035dcf6ec30a6bdf659b15e0417c3bfc4c9a591f2f858081df1243477d41812a6ac74bc4fbb6485b18aaf6a00c32593751a527723b4802d318038698de9063818044cca1b035b8800193fed71d3c38ed3296fddb336552b68d380d1214b13a1c86e6f687bd37e5fd22c\nmsg = 841ee52c94cac3dda367429494b2a07274e19f7f9567bceae1a940df892b8e44c7c86bdcc6ea7232774ee2195b19bfe932a88c12401c06fe0b865583d989ed3236fdb18264499a36b6ae6ba1bfc68b8220a0e3fa2f8221bb3e72e267115469c8648b5ec81d04393f8357daea9b849b95d2707a3b13e4e27a5be8e75e803f41b081c7accae863211f5357a4c81c\nresult = valid\n\n[d = 355d71fce2f312b7c53d7911d7fbdcd976ddb3d5809691d3031e2d4656b7b48545bd7b265aca5f9779e2c332e70d592904b9e0caf2a8c8aa87b9dd8d88ac9ec370a637399688c62bf63ae41d87e493820cfe30144b7f8f7f6cb3c88b00a907be37190398927353a005a1a821edc644ecbd9ebe67c2993d9575d88c45ead2251e270a28bf017051d8a4248d76172b65c51728c23b56a8eb3e8c24dfc35b05675314f4a6e808411ec2564969d7e1a23b10277937f3e4cb06a338691d26677927f6a67e5334bccabd309fabc851b5c55999c160300ee10511656561fa98c0ec5b2dec78491319862664bed347bef461b5fa7c5e53859bc36c440a47f39a63203d01]\n[e = 010001]\n[keysize = 2048]\n[n = 00b519563f7b707c6e9b89342aa5314536c521dd78877a3307b372f617622cb06c84626ca4e09e92cb869acaa07b04e18ae51a2935eb0d4cd29ddb96e5fea661c6f038859e31a96bcebefa32cd77dcbb2817c20774ce6badb1795c8b1e73a555921e6cf2726663576d9075af06dd89795bdf10b3f1973cdfbe81fd0f09d9b7aca821e3f403bbf517982d39f1a3411814a24f72d02f96a545cd0e0297ed88f3603cecc340adb01e2b35f9b7d8c2e4fa04e22122e5931cec5a12a3e0b93ca623a7d1a337c2bf6faf6ac17c0480a2b7e922dd99ee44297c5c085f044a92865429696387768e1ac55b0acd5bf312fe10279d3e7277f11c46ebf161feba67aeb49b103f]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100b519563f7b707c6e9b89342aa5314536c521dd78877a3307b372f617622cb06c84626ca4e09e92cb869acaa07b04e18ae51a2935eb0d4cd29ddb96e5fea661c6f038859e31a96bcebefa32cd77dcbb2817c20774ce6badb1795c8b1e73a555921e6cf2726663576d9075af06dd89795bdf10b3f1973cdfbe81fd0f09d9b7aca821e3f403bbf517982d39f1a3411814a24f72d02f96a545cd0e0297ed88f3603cecc340adb01e2b35f9b7d8c2e4fa04e22122e5931cec5a12a3e0b93ca623a7d1a337c2bf6faf6ac17c0480a2b7e922dd99ee44297c5c085f044a92865429696387768e1ac55b0acd5bf312fe10279d3e7277f11c46ebf161feba67aeb49b103f020301000102820100355d71fce2f312b7c53d7911d7fbdcd976ddb3d5809691d3031e2d4656b7b48545bd7b265aca5f9779e2c332e70d592904b9e0caf2a8c8aa87b9dd8d88ac9ec370a637399688c62bf63ae41d87e493820cfe30144b7f8f7f6cb3c88b00a907be37190398927353a005a1a821edc644ecbd9ebe67c2993d9575d88c45ead2251e270a28bf017051d8a4248d76172b65c51728c23b56a8eb3e8c24dfc35b05675314f4a6e808411ec2564969d7e1a23b10277937f3e4cb06a338691d26677927f6a67e5334bccabd309fabc851b5c55999c160300ee10511656561fa98c0ec5b2dec78491319862664bed347bef461b5fa7c5e53859bc36c440a47f39a63203d0102818100e9cffe9f3b702d03ee7c25703f1314b2647963de2da16f2c7966d3ebc18fea929f28cb7a55f576d9c3a5a2513087a439d74cae037a965a31832b87188d3ce71a2000f54b983956c8e6827e854d21b4c37eb3948f6801895319b1cf51e020dbb7883bf15164f1499696feda88eb0b6d75877deec33da2390e9976d698a6d9b0c902818100c648c5f9422c0127928e7a9cfe9b345185d53e06d8bbb35201cae7bdfa2ceb7a6b31bcb88f4617c995feb2b71ec8f4e1854fc17639c970bcdf37fc46654305a690b8e6a6bea726e8b7ea40edb886532d7944a2ad2763cbe612cc170d7ca95fb90ba90a806190252dcac94a3e79ba45e4abde0391769c1e750834f5cd00e384c702818100cb766a369a7ca54f948a87f1c391912323f7d68612e33661574bba02a02fe28ab0e1c91fae09aae11935dba81739121a1b56e8deb220806031ab0126c65147321ec376b1cfc7a5d3b173c131b2cb3008270b92adb06e15d830b5e09979165edcb93aa0669a16b658cb10ff8ec22af197a2ce5da59ccebc240e3bb1c6a8fb2ab102818051a7f48792bda678127dc476d4cf3bbb7adef75d40720405f8a103d093af5e061b10ef841dd4a2c52c95282a0b6e7c924721322daadc8f25e8d3187c310569d54f7225e2734f48d1bbb3a7ab7e3b2b13e605e2ec65f54e29e081d5d8830709599e38ae0f729e370165aa817dbb097ff10cea3013fe818a756dbcc9a0f405be4f0281806011e90bcbdc97ec1d0d43992f8830d4bda5922997eec843a9ed14f80f83d0a0afad3cc320108cae02e4010403b31650c26af431563f0821858c5da0095a9813c45c11bbf2a43bfc36ebd036cd4548f406a933235a5ea71aabe29ca536c5d8a37fd1310b43f0e1bcec13bba1d6a9968c718bf974f5b73ccbd808d1248c8f5cae]\n\n# tcId = 65\n# edge case for montgomery reduction with special primes\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "000000000000000000000000000000000000\nmsg = a3b94a63d4937de4bf024bce52957cd9af5efb3b0defef908d5f2ce35941b10168128951a1c5093dcdcebaa0622fdfc1e481daac4ce5675ed6690cec5f8ef20305185ed5b61db798e7a13626831fa9\nresult = valid\n\n", }; -static const size_t kLen298 = 242948; +static const size_t kLen303 = 242948; -static const char *kData298[] = { +static const char *kData303[] = { "# Imported from Wycheproof's rsa_pkcs1_3072_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[d = 0501205bd17b88d0d6626dd0fec898a0fd7f68f8dddcc314f74d167c40495b958a87e4ed63202e6ac68f4f4f4b88e3ec7a07d85757a7458468b766aad9a40f77337855408b28d140e75c2e6b3604ea8907bbd7f8e9578c2400ae645d28e2deef8bf718e29cf12fccb92fef9869f43aee5bd6adc223848d169cd6c27c2766652766ff81993b3e015a553decee0ffdc1624f39f8d96b6ed5d95047c1570b59fa2eb3d688dd5e14acc9407b8094f18b4694244eb1adcd655d873f57ff9af6e4fec470be236baf3b20c2040ab360d759c8b4e618bf8bd4e0ec6698f1b72c7160ed0521c82b5176b60fb63503d0ae23f6e2fb7a609305b0af62150b921ac53f4de899666cb01db0c9d8b650753015c1b6e682e6bf38204e59f7409c3808c0e53f254935540a381a963c2c1a77c6f987f06a07a0572686ed22882dbc82e7823cec080a58d72b09d00cc1d245cf158ff49cc40599d3af719dc301b4aa7f5b03629ae853e9daabe284db86d5c41d0401143df2b4593ef4e3747209c523f5a7f80f02d011]\n[e = 010001]\n[keysize = 3072]\n[n = 00dc8f7880672f0cf9d63617a8a58bdd271a109badda0fa826f94b8a795526b6a49a80564ccaba8a9491a935a53edeae1d9a7b5463d9e2ef3ee0ce7bff5d4b6c8147b5c073c2f220515d531d55a36687a6de3c34775c2f15191ac0a742d7342228c8d910fe6bbca439539c485debcbd0ee0e4bae317503b83cee8100ac7bb4587467cbc4373c4bda2eedf7c41631e50922b580f5bce81d24b208cabcd2d75fcfe99f75b493dffc5c9bd990f7fc3bf2efe392fecae36f3e4ef4456c1b5de99cc7451733a910b6834b61ec29274d986be3752c350b13a327dabc08dfcf6565499ad26e853446633eadb2970ca95bcf6bf05ffdbc2a804378d76985a71f06f90979f9fef716c36aa625a45b5eedf50825a53e9d9435b23caab9e5c64d38fd3a767e185ad7727d6e15f9e9bab2f4184d6487695db9a2698c672b2e823410dbef1d93fe40c9d357ee9fc77f849de11363f583af8ccf5181ca1aeb944c422516cb401e950923e4bd881439fa1093c77582bfe1ac5993674700b6434339e0245315d86fcb]\n[privateKeyPkcs8 = 308206fd020100300d06092a864886f70d0101010500048206e7308206e30201000282018100dc8f7880672f0cf9d63617a8a58bdd271a109badda0fa826f94b8a795526b6a49a80564ccaba8a9491a935a53edeae1d9a7b5463d9e2ef3ee0ce7bff5d4b6c8147b5c073c2f220515d531d55a36687a6de3c34775c2f15191ac0a742d7342228c8d910fe6bbca439539c485debcbd0ee0e4bae317503b83cee8100ac7bb4587467cbc4373c4bda2eedf7c41631e50922b580f5bce81d24b208cabcd2d75fcfe99f75b493dffc5c9bd990f7fc3bf2efe392fecae36f3e4ef4456c1b5de99cc7451733a910b6834b61ec29274d986be3752c350b13a327dabc08dfcf6565499ad26e853446633eadb2970ca95bcf6bf05ffdbc2a804378d76985a71f06f90979f9fef716c36aa625a45b5eedf50825a53e9d9435b23caab9e5c64d38fd3a767e185ad7727d6e15f9e9bab2f4184d6487695db9a2698c672b2e823410dbef1d93fe40c9d357ee9fc77f849de11363f583af8ccf5181ca1aeb944c422516cb401e950923e4bd881439fa1093c77582bfe1ac5993674700b6434339e0245315d86fcb0203010001028201800501205bd17b88d0d6626dd0fec898a0fd7f68f8dddcc314f74d167c40495b958a87e4ed63202e6ac68f4f4f4b88e3ec7a07d85757a7458468b766aad9a40f77337855408b28d140e75c2e6b3604ea8907bbd7f8e9578c2400ae645d28e2deef8bf718e29cf12fccb92fef9869f43aee5bd6adc223848d169cd6c27c2766652766ff81993b3e015a553decee0ffdc1624f39f8d96b6ed5d95047c1570b59fa2eb3d688dd5e14acc9407b8094f18b4694244eb1adcd655d873f57ff9af6e4fec470be236baf3b20c2040ab360d759c8b4e618bf8bd4e0ec6698f1b72c7160ed0521c82b5176b60fb63503d0ae23f6e2fb7a609305b0af62150b921ac53f4de899666cb01db0c9d8b650753015c1b6e682e6bf38204e59f7409c3808c0e53f254935540a381a963c2c1a77c6f987f06a07a0572686ed22882dbc82e7823cec080a58d72b09d00cc1d245cf158ff49cc40599d3af719dc301b4aa7f5b03629ae853e9daabe284db86d5c41d0401143df2b4593ef4e3747209c523f5a7f80f02d0110281c100fec6a10bfc49b58a2c850eafebdb997649a95575a0c17631b011cb20d7a320232a815b9af6040d7bf23d267e5e06304c33e04c85e6d481442f010a9758ba08364a70035ef99e9c98eeb431505b2afb6779d1c91d0ea2fb0a65dc391e79ecda7d52fd7dd69923b25dfae448cace829ebaca6b3c8a3cb64a81800614434895778c20d629b125b69f42945f66b644f3840bcfa6fce361074256c50863ecca2ce756b4a9fb7e993d0f1fa48b2cc485b7eaa61405fbef150e7563c2150811767de0f90281c100dd9ec1cee6d8a971b166902c44a4f02ef37a62053b41288a1d873d399cbc9e7bd306ed906487da2f49bc1c1809c0d4d88106d6879518ed925feb66aad5ff3c2b83466c554ed97b96abef55b3b02314f50d0385a0a1d8a46ae03e8fce91b412120f0a10dc681570fa564b6873bacd997b616b2bd7733fb723ade23bc1089da32e509583436f1e3448b579fb21b240620d20458d08f0f995abacc0a398f0ab6a67c9f5bcf7e032fb1d668fe698d80327599ae3fdf3aaaab19baf17639443194be30281c100f1bfb40cd56573971acb5eb65b0cd2bf4502228f2ceca5a45c37661151cbfdb0a0a28233b600fe727fd6ba71e9f1e15e4d53260960907fe01ce1d614ea220bacc8512541b786637d51f3355fd44222af7b0e2ed11d9454b4f7165234b2e8a62188dff3c9ef21ca1c16f70a833615075ca2b9c28641398fd4f58fcf2650f752aa6a760cb584dd969cec80e1cb4dfdeb6bf1abb80661892bcf7dc28a5ea3309c8acf7f039e8af53f267d517a3737d2de1a9ca158fef171f8bda1e9a6f03b0912b10281c03e3c2ae8d362dc9294e2dc71d2050f7ddfd9ea54d5c3028366af67be1a09cde7afe72e277253c42dab632bf0842ca698f602d993d186e2904c676ab966c6fa3aadeec4d560032af5b0ead10258e0412e5fad31855e6ddc1e3742da57840b3157e8e946bade6fc6fe45e57f3ba0a5c40825df56bc761cda6d2693757c4bd318d414c527cb7414e351d7c49d8564ed379bc0084806cec50806e1c86728b7cd2b606212a43267bf694d6453dcc9e73f5b798a49a4331d263a2222154b5d834a43490281c018cc971e9186f86c144d140ceabbc9ae22c94e8d8575356fb6a4a033991ef210bafa39a4cd1abfa99b332fde9e56955af179459a7236a700b7fd1d88093906f6130ae7ca9742d9ed0d5c63e6a9e9b43df4d8b261c12d2c2f9148bc0669f165b8b881879c3ed58d4a6cd5a3f1193e9abd2784609c01fb9094c7c822532ad7aec2a08aee9e263095ad0426455cb59258c7fd3731ca89dee31800d191ed7249721c25266650c46dcbfbae3070604d2e009914a2e269a01bafa5bdf8bba31c4f3b60]\n\n# tcId = 1\nct = 142b27c795e6d7451db575c90a38488757a5c07760ce10e23a1eeeaa20a08ef14cc07e3ee757c45e309075f7261ee35af580a72c06dc6b0446233687592e838b1220816fc578bf0ccae6977aeddb03fb2c0b5112334acae93f64026afa503d8707faa9989c2176c59a1ec2ff6b6308593c85c11d94a9da2fad66c860fc248f066574fee8b0d82fdc684d8eabbeeffc55c3897099415d99c5d1598cc3ff335bf494c8fd36f234a20566c0d35e3bac56082fc6a81b8cba2c99c47d1d372481ec23f35b62a6469cc42f4d349eea52f7f08a63898da4207e3104efcf81de2ab1e33cd243769bec34df4a4e7cac1c4be4073694bd56170dde8c4e12f85d2f02df12e9936d2990d4a6c490ae0cf6c3bad313f3a477db67332319eeb5932e9d1e1321dff28a866e939fe50626342e141854081981f388489a962f38220ff14a686fa111a5b236eaa4eaf6d3fbd54f93fe744e2767a815adb0c43e947360a149fbf75469957dc3ab8dac091f6339402620424b9cff8324e2a35a5a2b765897ed6e8b2542\nmsg = \nresult = valid\n\n# tcId = 2\nct = b5d5116431fc78c12ee663635c9e9c32ceb91a18a9af36ea63e7e6b647e17a981741279957fe4f0bf08288082fd4c1b6b09a805ebfd229396eab3689b5bb2b686ea39637ec69c1b8142c7033c271c9cae9abfc14f8107a8a2d57984ff2a45c70b276167ac8c92a070c718bca9a1a274258fc385a62faa02e8f15167f9e825c6ad7e2358566f79f6641c6e959e3b898ac780e369f43739321906cae687a9d229f9c86fdb01cbf061dd3c53f8d0c950d4226e7c58a66b310e197e757db3516db2388fbee4e4cf16d12bb2786607617e6f6c4b86b26d36efac63fad1dc561b91b66122d9600124e03b18ca58da78f30ab0c31c5c7f4bc059ce65dba182afdaa788cbbdc3bf8d48b7972c5400f14d3d460d329e0ac60ccf96b3c1d5e4ea9f763565322a110de5569fb74b6cd44de2a5777e23c681f3f769afa961c42782dd2e56e22b4af1c777b87a15df1f6cb48b6a39f7396068fe40168c4dcbd3cce69daaed21554a3b15a2ee62974b112733ecd4f78ac4a05c63eb759842f4503a950bc7654df\nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 63b63f6eb3fd2322a6c85ed16318932e83f32535b3ec2527fb41dcc865bc44690554467655034ad33aa0fa993788e80654ab0e0174f8dd238ad68c3bc194f390dd38d26408778774848c49a6a606e7fb1b3bfbf5f19db4d4d1ba2db43fefb9a9bac311f2e1fc1ab4f5ddc00a009b9dc435448f250a648b206fe764505805c9bed1729d5bfeaa4fddafc115d281703fab0e79726d5546fa698a45ca6e5e561b8c2964b2da01914f808a498ab77672eda3432ed9974f0a06d320ff87a4222899f893a6cb6abf13d7e56cce2ee7eae67fc26f2274b63ce8301c721d7195158b6c966b8d36e3cff0aec6f218b0fa6d8490493471ee0f08b840b6cdcbb73a164246864de0f35565bbebe51585819e42a425090479537ed67f98236415e6ad3ca81116beb91db802dfb3f9da733f86cb6fa90904c8a382afcbf6162f0d89ee04973f2d26659325f7f00a4ae9e800de6aa27b6c94b9d57791658eb0714b7cba5466ecfe44bd5803647c3825b58c37187311a8b11399f53a877c265da82493a90869e376\nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 072c9fb5c97732ddebad895eea7af5ae193a6cebe74a46cc2f911ddf31ea5a90fe7052861a520c8d8a2680b942eadf644933ac12d3f4e13390d0905808e2d4e7f29b3138ef7f50b360266833fb3ebbf3db0dfd33642b710899472500528a49b3d8d036671038820ede3a46709f7c64114e74c50f81f52ce4eeed74403ec9ed4fef6fb7cd788f8793b9951c1be5e075dfc1c53172dce2ec8c6ebebc3cae300beff7b551", "df0a11913f0a3aaedd59ed70d3308a3a04cb1f656edf2829c8c3d1de7530ce5db7ca1bc5d0e7d3830c77871b6af589b5db87d3d6e8f02c0954a14cb1ad4a79481ab124674acac340e0fb20dc6682c3db4039d2e15371807686b260cb093354e9e1b1793b86aa087455b54ad5ddbc9fc6a5b2b8f786fbd70c7998f55114adf9908a3259f51f31f228741ae5e7ed598000d8171f9c3fc1f24cdae7c6947c8d612d3918f4c7b01682e33633cab0875a83a779bc211d0c8c6c189af12c93716003a86ff7c5ce00a6d43cb37d9f467dff17156039f50c5a3c811f0f0b8be025\nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 0dfa0e455f2b30f23b868ebe95dc8008664d18f0a00da3612c045138c4ca44ae8d8bfc050f377f1995ce2084e7320bb75c763d95219f4fc11d9a3af128e9c369cec5ed19d52af27fd8e4a462b39c645c4b7b8534bdf7e2d5e2e7cb99a4bbd5713c3401fb1dc3dbe2f851a5fb655e3289d0592367c0518ad0dec38eb84c3a7f2400d3b53d9439b7fdfb42a8320a5617ad83366787cacb3644294a1a98deb09cf2dfc626889f5824b71d20b1a95b7b984760cd1f382a472d6025644770176390b8f38bebce8f28b68944eda8e5c6e99c694055456448f0df0136e7e4e881f1a6b73c642047327a6ce3966cc7d3124434191b09a0f6636e2346e234943cabefd18418a60da871c77a858551699583ec8c30516a28ce4f62a779d0f468f2efdb5fa60a4c647e62f045bd56f6df1564c5c2f112ad050a5bfd411396cfff1bd9618529efd92a62735e01c324da2ba4be1d3f450c2d37b7913bb809874bdbc0081397dd55f93716606a00001b25563f413d0c4b9c2b81efe320d9478bdb65fb3be9d268\nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 740486caac4d0038274e7627da5325320682e610bd678923158c7e23ce3d430e6bb0fc1063fcd84cbcb2415ac32128a0e506b2f95899dfc67c2955514d8e0b0e4d84077b869b5f4d13eaf96242a0925692ff69c752190082b813bb9dda83907e1d6c4733af31e00847e856c8d68445fd2021d982a0ed9165db69933f50acae667a5121672294ce4c534479590a9f4425a8fc7c0cdb8abfdbb290c71b4379cf7e7cd959f4557b2aa61e185e95699345aa4010d67efe3891094d5c0ad2310f1884111f4aa0d33cc1a4fa494c5a744c10c307069377c848e7042ec1581f0dce3fb7febd7d347c5abbce2ed3d2ec085644fb661d15ad8aa041a375ccc77c9e01dd47e300324738db555201506ff60fbf6c12a82f6acdf7396fe38e4692d1fbc9d86887709f81697676b0f45d57379dab3409b173827a6619572dd8e168b991d6f9f6b996453544032e097c28c320ee2072d5aa9582cdba70f40ee2aa58b0933896e6c27b0933268cc577ff5f6e9e6a7591b73dea4c6ee24fcc365bb7688eb786fd3d\nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 7f56c9312bee49fb2d93924c4be0ddc552ba918b292938136752bdced1074ce61b0af9f1cdea7dc572ceab2ae61510304ec9674175bf1f5fcbb78d466d1b8454f02c54d11e93153b9871842378a584722a5e85aa229a4c7a4399eb598f11bb931ea97d385a75627dd6698dd9255e77bd09d49b0453f2b2f7850dfea6f48ad7dbd64f046d656b0414da4e840059dbbebd27fb71c819a953440bd4bd7668953274cbedddf83dac7dea1422a6065cf4933beee13b7bf20c95ac07525f94ee38ead3809fc9eb8e4ae71ad57f72f7e8d6969aafbf8700c99f6363362dbeb0fd864c554f9a1d3cfeed9e8a94cad44a88427f856707c9f674aa2e2d29b075e246207bd692ef638c556ce50673823f5e0947845cee31ef97c1c92111d3121c7565cee925182c32ae3082ec1b0de1d6d85b61773f1b4a61a41f356f972e1358c71ea7bf9d984f603d3b69bfe0f0e995e38ef5f81f10c9e7d759eac65b7349a91b67105e30193c9491b137186bb834b8cd34171dd2b1cc4c5e923d9b29ef011937b9c59c8d\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\n# Longest valid message size\nct = 74b3f849a2957b53827ae1eadedf9fa29dd46c3705340afae5b18a4154efc6f2ec1705029383be4af5ce9140fdc315e8ac5d50e6537a470c0cdf0be4a66be30adef9c32e2caf8351b695c2e51ba0b1ef2dc466d0cee3c79bd95a8513f2241b3d82b8e0638d88f4b370ef17e0ac2fce14a626a34ce60b3e3f26ca01d26264ad1d577ea960c3eb57aa2f5cfe3a49f21fc081cf980fa5f433366a7fea9fc9aeff4441a86db59c8694b253d0bc35cd21332698a9358739b6a7524ee7228d89dfb0dbacc1e237b50bacf8c1d3f10586b68dd79303a37e2d0b6164f22a8f67cf0a39c4f66a4548df06353c4d2117691b1a2cff393a0ac9783d2370f52d7e6e8bd25bec8c193d1b4984bebfa72ba46c11d999094d0a5ab0a78196a6742c560291b79af6cb29a8e2504b5114411b8d83161c522c4a584b43603e47afb09500e82ed6d6a746e529742e50095ca9a8344572002881819b2cb50fa301f3b4d0a2b98c8f4e817d53dbbda8ef8487bdac3eb46ac4dda2eb7d1e9d08e782075669436bf5c094c7\nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 9\n# ps is all 0\nct = 88a6584754ad31f28a05575dd809be25231d078d1c1e46b7240c1c402645b710eb2d2bc189dbc16d82d9ad7bc5cc1df3318fc31bae54d88b25819f2b417f4da85dd11330cb8ba58bbf766bfe421af84f2b55a298ca0873fbc72317748c0437cf1416fae4bfb73a6ff973f62115d3cdc71d81a4cfb73afda00fcede7b586599efdc3aeb5e9ad6e816c0a39440629b8547163ac01340381607cbadbc93fd3e24a627a7b88d9d09dff135d22ec923af52d0dbdbe37f57956719b552ebd15803525b0d6509841fc3b35e8c564945f6ebffcbd96b4f34bcf4ff9120fce1c363dad2cefc2a83d427f47bf29968260380e47ff34e87ef9e2d9004a68641fa0ef26ae3a66a423097b16d4b82e8614cded1ebc68e7629c11eff3c9331d22adfe184bf4881691fa80d32790669d832c858c97149c47124c8ffc7fb55376546b7d9f173c51b899a156c7d4d5d8d0aa8d3b5ce2624cd24fe34fed4bd57b08a4c464f719bf67327fae5805d719276d3671b0cfdf7f05bf0772dfe1c830ff8f091ed49e73f60c8\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 10\n# ps is all 1\nct = c2459fbb04d640477c76958c8d5cb949ac552d188502553f01e6b3ec654bc70c55045b0184006936a69fc7dfd6684422c54463c8ded5be163f3392302834954c91852525e1beb096059465e6c261de5afca752cada74922debfc771bd0b99a5770f9a80d4b76e8558ea8ec6c8aa5cc28fdc3f049f5e38d99f2899d59d9b5ed6ead7581e991c56f8f6f1edf16881dcb7b29fb00a8566f0dcff5a1fa99ea2f6e4264545ec11da7762117ab938e3d906ee20c114cc35778753d96a89ca3e025efcb20215b6e983b9446e559831c4b5c06791e282d03bb303b9956bf3d90cf717e2117a45718edd2591d67dccc8405a3484c1633f0c7281d8c2605d9d2da7ccbe0d992c12c8bc54f30aadcc65ebb4fbbb27ac39571bde40631f8abd579c2c2a444b088a0bd112fb6b9ce010489e8561f6d411adb9cf2758b8874adfd0bc90eff1652f7ef9c6b810dd90a1ab591275605f9b658273d2edd513bffb5be5fd681a2b1f50d6dddc9b9b3f39d59d407d0710a712b3e6f3ac2a74c310caac45827c7ae241e\nmsg = 54657374\nresult = valid\n\n# tcId = 11\n# rsa_sslv23_padding\nct = 389edb8f7af2a7234657b851306c9f2443b9302403fea9ca9ce8b4e7a246dd2bafd4d669f34d409d04677dc5a64c42aeb834a324c9acb7f13604959422703274a686f8f39825f220173135cf4b6f32a97077f037cc7667ea02455f56891f98845be33b2e1a08062faed9ade751f5fa1b4a0d387fdf6be0db76f6525f924fec655cf8db49ff7e49a10f0facb52909bfc467b3ef4dda4ee287f681fb4678bf7f77545b7e8e168dd8202b464ffad10efe93350b6b125bd9153d9610dd3e7d9856392a9cd93ed9f77c6531e445383d0269bbff5a28524d29513f21ed2eb452456723606014c031722ec8a4768e2c17c609a337b0b9e992bdc43e6c49a20b834f8c93d7806949c32f281293393163a7ea5f83437c647dd29ef663b1c748304bdb663923b1cbc1c50ed4c1f5cef5c2f9b97d735500772dee60b5dcc2bcf925b2b815571dda26024d835dd99813ff469e5defc2a5f86da2049924ada57d2d811acdba5f8c0f7513b9fae73a5856de97fe8cc2471a06284075dcf00d3fb57a938c7dccbb\nmsg = 54657374\nresult = valid\n\n# tcId = 12\n# byte 0 of ps is 0\nct = d723aaad7aed7fe22277d057c70113531122781e8e46cecd035a9d26e980a771653d780cbb21d70db01aadc4a8b13b51380cc015326f5655e4acd5fb8e6175999efea729f0e1ddeb0369aace87d73d2d6c97edf3e65ac51a4b0edd0ff0bf10215cbf084ee7b463042f440b164e1e0d725651c2d79ae8e853bda5a0c656fb6999560b0734ad2f831d35b864e9ceda47dec6f6a675d33bf9412fde2432fa3aaf4a3278005f70838e7ea045097eee942e93c23f1bcc67bf383d47b8c98c7f7fbad6472745245266657de351cbf7b268e093bfd3eaf75c00da99873884f5c048a50348f99554c6a4c2f5e87f4c791764a09aa7e87a8f6e706cd18a6435b756f448fd903990e3b8edfd88a511eae5facdbf0db75ff279bb648b21517de4d306131552011c218ad28eb8e650424582b4ff49b47545f95101f6e0c100c795ebafac15a386a40200433f023d633b45c5b16a0727bf56488934a6328a352793a39d3b1d77b1a670ef6d02c76cd16e056740be323de03dd09d2ba30c913f289d312dd5925e\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 13\n# byte 1 of ps is 0\nct = 5b68c3c463fd8ffeda06c09fddccbc5284017f753ff81e1db255ecc8c32b7c11e7f92ddc170fd578f6d0e8218acd1b04bbf5bf540c1167984dc63abbc5799284a7c28a20ce4f6b95e142571f57198a6b0bb9488f455fbea076e520853b92e848bd", "1d29bb0581b6b5eb56ce839fc1c1afde7815d075f5da520443fe6d5d4d03ffaa029736d703457cb73e3769f6d9b70bb22d340886e088ae8356501b58ae6b6167bb0a29b9065305ac7228a07279a2f9787742991cb9c136ba53c569615a74f323526165ba73c340b041b97bb13c129bfeae795cca3dac7a1dcb30874c1b298056bf231f5bdb6419f5eb436ffc1f3101dae12428ee5ed02a4e72a4e7db60caf26b7fa4dcd4e8d0e663ce66569364d058db26c29588011543fc8c72995d325235eb4d3a6f85e1d74ab16cb3166409d3aca165c81746d4c956ebf8fb5b7b31bc31c8a0509cf068794ab0bd687dc1ed84ea6b17e7f98d235e7541bfa6e64916cb02f6c2892c56787c1ba490bcdfd7000f529c48608c2efd6240ed7e84fc1b04f0cc\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 14\n# byte 7 of ps is 0\nct = 01af89a4d37a04280b78628261964cd3fe67d062b74c35e851f68b9f8faf7454a22df1c84c64f625515b16b90d298d1123c3010d845b86c7bbe516e4434f1feaf3d83829d6658d5128069bf4a3fd5e0870903ac313f743b9c7a8f3a7ea4e9f72f5b8774046980bdc1a1af025337567bddf436ed9b739a7305dcbf76ed4d7085183a84bb298a262241ca5811113b60e211626adb2c20fdfd80d1bf76e763fb3eb7f2a0eebc565218808fe0f8b0351516773f4ef822693169a3f1c31c12ffbf53d583b1598125707ced9b6636acd2a66651eb3e94bd21055b13d4d6509bbfb01f9cf449f84397b448a7a761a878195a4a96f6ae1043b947e224325b5262145abf8b2daa65544ea8d56bf33cf9af7be8e0c8f20eac6dda208f45d068d4ffff279bb0f87ce8ed1562fdad32e89819f6d86bbdd46c175214514b2801ffae449029ab0987dd2ae49a619e6717abbc2395cbd02b2b0ee4023dc858e10fb08af579720a51b7aa51e5b366b5503563c271c485056153efc362515929ed6173a4fdcfcb0fd\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 15\n# ps truncated\nct = 700d40cfb0981f7b86260e36712a463d2d2faf1f9da3bf762c3f993371b441d9e3747f126dfe2ca3b6d538a2c53147e7bae60b6405238f0d76cff5f420f8b641ccbbe9db0f0b2eaac87335ce99ce8a2eec1bec4d569fe81cd580f6490e3ae27209c1d022de5fdd02eac36f674d664c75bbfab5020afc8fce701b6769de63eeb7c72ac0e428a3d88f071e68f377c79d5624481213ed8bf42d5f56a3a00b170c63f064cc61d8966ccf2ca5983d7d1b56f4e81e379e57aa8aaf59a05946c1c24aebef5eee5a97b4d6ce8796b2e731e9b31d3633524cd526c30fc921cf927ec392f95116c121c4599a9e180a9bc963d01cb3977e2d5f72747e5c1d839a515802a7c26529fa487ca5954bf137fecd5e46f301c54e8227c89f4ab766eb9b5f9d9a1d96a0a482c2415ec9bbcb5613a1d239add7fb99f24a4867a85a8e29ba668c7c1b5948d79b2f412998422bc35457bd05a4e5373ec671a88bc15eb7a4fab7394e38541fe8d4d2dbc7094be069933added250dafd8091dcc53ba08301e64d49a4960c9\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 16\n# ps missing\nct = 5a76259027089edb019b04788cb702e5e06b13b9826d57351694d20f5984badd4960bdc49b900c903255ffc689676044ce0990447fa4c674e780b24c142e39d157bd649995c23209b697f444a8d14f96033707c636c312b019783b1985dbae4b1558a9ce257fcc6a197edb6624c309bd3b2bc41898f370a0f94cd9531bf15f635d1ff5895654358db4e56c211a732a237cf9792b84096d747f41159ef8529324f5901d28549c726cdd12b9f60fd110a18b2ee2007abf99e0d126b57e8d92371091ea3fe289831097ee0b97b11edd36a5e382d3360ba33059375248e6e8a873b5e7d1382c430dd8ab68d93ba151680ff08c23159c7375bb455a9f73cbfec427305b378c4ba45f2080803a83d00aa058994b6cd3429653a3bdfade0b58221f94bf4c132888a595cc73ab6a705299e10f65297dc6e70f8c7623312f7205cfaba759a9663954ca3cd4390e7be33e0ecb9d3a5493c0329e6c07d048c93ff285d28e338db5595c5dfd6d31e920e49427c0623c01d498bec7ea2f1977a3d6a1ed7943f0\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 17\n# Block type = 0\nct = 0946361acb9a12452e370d04abbb2f64de0651ce5d6e813b4d256476003cfb170048284425c150dd9430dd53a2ca6fb8e86f1375ebabe86603af28b3561fc7df1cfa22fdd5d92018dcc4e208ec75723d55706351d00c8ab8017d703a0ed1eb5ad4772ce0abfe976d5c8c1e2b238ac50e9c7bf7871bab2362543312f24141ce3e0ff5fe2cdbcd8d36596189a504e16e09e617ecfe3d553ab36d529d885608cb4c3648b763b173a9f3b003e8a97bb9e8a0a19c5edff9f0cf585c0abb60af2545444df8789a747da21def80f287a3d54c0c5b50e114e2b1c17206011fc5fe9ad783b375044c442daef1b7c789cbe846809cd8eca17c1576060c1ff702e8b3d908e57be8c23a1a0984cc512937c3e3709f2f4ee82401db017d2a362af38f4e6629b70cba25cae45ef4f7a3d1c66c3ac7ceaf95b54638f8823b6ec510293f1d7221c2524f3b9011be4fc017ce600f6d0f77b271bfbd2325ed58e5975c41dbbcdf752e8c1bc40a096af1ccf5016b77229a4b081fa771f249695da0bf14e7be770ee010\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 18\n# Block type = 1\nct = 849eb249b9b5904f726cb7db324f5579d331895bd3ce5138edaa2d283360feda0bd3ebd97468ba98f3a5060ebfee43e495bf75db592f816bb9297fd1bd260d6f8ff79ddaee1100e013f13e4812caa3a8db290b4ae7dcb34701a2decf9834c53a0f6a5faee7cacfb11d017516aba150619021621d6aacd2612577802a52c88c119363358fe96c67ac5b3fc25c6ba28d8e6efe5f2b3305d686c58dfa3417a40134327885a302f59e9d81b5ec46127c391b5fb1a12d9776ee2190cc20248a4beae4c46e4b58130fbc3b805935a00df588845eee7956990d163c91b384d0db2bb66fed9eae58f15d3f39588e75ef79c8dbc60a87e4470ed2f48a48d62e2030ccbdadea0dc5cf75b21a8163dc2391bdc7d0b7999263b70346b02152020ca6160297797393be3a51944dc2666d829302eb9e1829fbaafefbec28710d58a0eab63ee49a5d1f0c2ea49b73f331ab27170fec368dc2473d1dc0ba7bf7b70b7ecae315e67b323ce267d5fa6b9fc83b20783ae20d755127b5654272b76c88fa362960f66466\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 19\n# Block type = 0xff\nct = 99aea15afde0b40c12960cce598c11d618b3e4a0502eb9764cc114eed704113f0d13d9c1181324c18669f6385b5f6b1e0eff715769e5b3236a53d7638b1b27fe1b6bf2089e97e0bf6b587ff2ee42c708ac45ebfea88d057b6fddb6af2f8ba0d0ee5da9366961ac098c0b8349683aaa5dbc789ef0a49737b059bdc1936ebbc03a00330b84606dd9e0aed5e2c51f9e336ae9f19c225477f1edf87e463e4d0d80cf6c85f8142cf6e9b33b83b9f4d0e62540ba4b3f73a8b3b6b9ed0728ffd97e2332131c6625578eced873f96e1a84e1f22c1ada6d8bae41e0f63f284d28e9198b4f047f9664f33db978e5d7843b2891fc5006b25a17cb8418c7cb17abc7c8235b9fc5c2acbe17febd87e3b758b1e0fa783117e738219bee41b29c2b64ec23c413f00cce03bb23652a7174fd299dcd68e3b5521a0b22f89cbbbd021fbb8723f5020e2e7205bb071dd792c6c5ab293f8ce1c5b837b6a8966a9560a38d52dd6518e636b69ffbb43035eba80531cd1077d7d1646cd1a458cbd4e88a42ea2ab62906f2dd\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 20\n# First byte is not zero\nct = a225db92d6853b708dd72cbfd081c06ce3d6c4579def7e6bd8b45090cc0b9f51d4217d3275402d5ec90be82e920cef6f9bfaeae58ac461a61b3cf568186c6fa2f3a14db4d349e55cdfe5633a530bb6178ab1c7d126686d3297c4871f19e065f1fec05b85b72b675d58836dd2f741c593719d8bd65d74b9c61ab771464766324338e9b3bd3c05fde9027f2f2746d806c3f8e3b41b93a2e45f276af2df8886948d9b4f1a4f7e67f2ad7ca03ccb2275850982e7723017639d51c0f09138f19449ff344c1caaeb72ca8607f6012b8fa6f7924ef0b6e516a79b02cd2219b03421ba25e7af6272f57d118e165da759af7b64b18e60b9597d1ca41a49da64caf8f9788dfbd67b5b68fca5fbb3d42e045328739d079596cf63ebe83c39041490d7961ebbd2c4729059b4e01d180e4b34d69fab70832dcf698225887377c615affc0df708dea84511b44905711e68a1dd3c0c6247f35c998299b82f1511168a79f40f50f7576eb4c963e00576cec70dc0c3016793c44aa9c8d9f7c9d34907523613d4bd84\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 21\n# First byte is not zero\nct = 85421977730b0f2ca7ac9e69328c09853d07e68f0c12396011a88e1b3d0d8675c723c3c7818b1b3ba6e46d1902eddcf05eab8f2f964e5b17e9bf0235c118336a25dc99469b6be3b939090279f0435f28e7b813444b1eb63a67aca79153c67addb59e1329c1faa7bf9c92870169afad12198dd0954fe581749137e63dceaa0151a4ca2e4157248458ac4d999dea03deffb079f01b7bb64d5e3f0f7e53817fd5af4d11c4768ee2a5b184925d0924ce5b8143d902768478439627e13ff2ef8554c322961b0d3070abda2b0821b53053228f63f81a634fc32cb909b7cd14cefa5208348c0044262ee4157d330cdfa1391471853554ebebeecd74a58c51d8d4dd433327a2b8bb6e2a29f986c6ec0b6cbe86706f8aa7f89b6287d818ef770f69e48d0266abde3f94fad09cc6f7bac45740247a03b7dd7aa6cc2b710e1fbf74d7d914c9588877e8e52ecc3eb8e5cd5b9c772a1aa3acbd2ce86168451dea1f539fb740fa4fd966bc7d124b098ee4dbcb86ec326a54665752a9050f80b90ac34dd51f1f11\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 22\n# signature padding\nct = 509c69e802c2ab812fea8c77f89dd321c0edfd279b200e93aaf46591886148722b06584fc8745e938d069cd4c100f07c48c2f81b7f94d47f835244bdf9c9eb08af688ff6908ea2b6b938b9265fbee0f421a35086223380a9925b3570b3c0eaebc37b9bc18db3271e7dc62850ef17cce8ce17d68dd81dbee566f4a585da87d4f02158f80b7ecebd0687acd6dc52a334ecaacd67895720766ce54ca6a3872ebf90f3c9b894a0f44c0e1a83d226807faf67144fa59b3a21cc33339d2bf9249ca5018b96ef837c3fad08e325c7d31c9ea2fa1fe4b7dcd36b1fe7c95530787423708a80044a745dca51ef448fa953e27353308a10d431c01b688cc2002614fdf60efc7f8e969b3b84caa04ac8305ce87586b0d1a01f016ab6eb5a970766201166d16b42d0829e811d258", @@ -8327,9 +8637,9 @@ static const char *kData298[] = { "9cb188a8308215dc910c83c3499870989ed340d3e90575ad9632f5ecd11bc041f4c5651993d5a0efe54af8b6ae87a2699a1fa34333ebcd069264d230219af3638c42fbb6aea60090832117dcae0d7795b13fbf2b0126f0a2a85868aee3ba033d64cad48b1e9a7bcea144f059333278d38e1767c6ef682d9d40f6ac9ebbb8\nmsg = deb2027b4c88c9d2efae9fc1aa883f016f01f7e8802aec6cf3f637e669b7e595e8d97d299bbb88\nresult = valid\n\n[d = 76557e33fa3349551c2c557d2b7c948c11b736f52766df40a37da1a0d263ce2798d529efa34e4b5fa79307c0345cb9acc995dadae0d7a7d1d7237a53f7b68ea0b73f70fc003450830b57dbc5b37ba185e01500771d7111e10b2495945f81bd854676cd22b3f3206b0be61931bd4e6b34d9d30384dab033104ed8a3ff4416cf02f60939fefabcc9a5ba2442e9bef333ff52488a0e841d9ef7ec83e1a476c447b94d4c8239d5f64346a9fef1de49bdff5db251d96d4823621146141d46aa601040139009c37c551455567562831847b6c43636aac85abd279b24390806cb9b555b05e0d26a2457801ad8f5724452695be0147c36e9a0cc332d2adf77628aa43253e4ef5f337484deca700db2962d4dc28421843880e3821e535dd94ea72662c4f3a5492e824d98c63e182c107a87941c7834c0af66c57ca1cdba550049c3bb3531d5d7bb07ee93bc84644ea60521f1511093b5b4d0b5a19518f6f48f377050b57a5919aaf958fd33b071109ed65741bff06f920401d5ab4d3e36c59d29bbf2f29d]\n[e = 010001]\n[keysize = 3072]\n[n = 00a9bd730ba3d04dc5f2f9ac15d00ef8bf6462ffd41000aa326e9b501f0a90bb299ea7f0bddcc46ff03cfa0d23fd45598a578be2434aa1738fa40ca05b8b2da67df4fc353facb7a0f7c4ab11a16780975641eb764c83f15c63e01807b7193b3c724220d21a2c2c83594c61dbd07474a8ce5b518ca7635d9c0e04b91eb2e84e0eadc7c790d5ee3129eb6f793d7b9bf4d52daf0313f841ea6688bf10891ef87aad500ea53b94662dbd4b7110103608bb31cde255ab82f852667bff55dd273114e5c1b2471f86fd41425067eafec25f8fdbbdb08490def14bb2d847b2eecc51cc4ef94e5a9f415d59ea8549b232cd8b6bb621d655989864d85de41d542f16eec86bc5f5d5465aa2e3eba1d1b82ddde61dddac0b62d660101032ba3f8fdd69a31c1ea2fa1966784802d3dbd848c479c93e12bec95a7ff15ea6bee5fbbea15ac31cc9e3e8196b8946aa322abfa29b044cdc5008313883885843728e9cd9a7cf1679fe374b06e1cf5ecfc51af75193797258c51309d96e7a71113ec0896b9261cd6cd2bd]\n[privateKeyPkcs8 = 308206fc020100300d06092a864886f70d0101010500048206e6308206e20201000282018100a9bd730ba3d04dc5f2f9ac15d00ef8bf6462ffd41000aa326e9b501f0a90bb299ea7f0bddcc46ff03cfa0d23fd45598a578be2434aa1738fa40ca05b8b2da67df4fc353facb7a0f7c4ab11a16780975641eb764c83f15c63e01807b7193b3c724220d21a2c2c83594c61dbd07474a8ce5b518ca7635d9c0e04b91eb2e84e0eadc7c790d5ee3129eb6f793d7b9bf4d52daf0313f841ea6688bf10891ef87aad500ea53b94662dbd4b7110103608bb31cde255ab82f852667bff55dd273114e5c1b2471f86fd41425067eafec25f8fdbbdb08490def14bb2d847b2eecc51cc4ef94e5a9f415d59ea8549b232cd8b6bb621d655989864d85de41d542f16eec86bc5f5d5465aa2e3eba1d1b82ddde61dddac0b62d660101032ba3f8fdd69a31c1ea2fa1966784802d3dbd848c479c93e12bec95a7ff15ea6bee5fbbea15ac31cc9e3e8196b8946aa322abfa29b044cdc5008313883885843728e9cd9a7cf1679fe374b06e1cf5ecfc51af75193797258c51309d96e7a71113ec0896b9261cd6cd2bd02030100010282018076557e33fa3349551c2c557d2b7c948c11b736f52766df40a37da1a0d263ce2798d529efa34e4b5fa79307c0345cb9acc995dadae0d7a7d1d7237a53f7b68ea0b73f70fc003450830b57dbc5b37ba185e01500771d7111e10b2495945f81bd854676cd22b3f3206b0be61931bd4e6b34d9d30384dab033104ed8a3ff4416cf02f60939fefabcc9a5ba2442e9bef333ff52488a0e841d9ef7ec83e1a476c447b94d4c8239d5f64346a9fef1de49bdff5db251d96d4823621146141d46aa601040139009c37c551455567562831847b6c43636aac85abd279b24390806cb9b555b05e0d26a2457801ad8f5724452695be0147c36e9a0cc332d2adf77628aa43253e4ef5f337484deca700db2962d4dc28421843880e3821e535dd94ea72662c4f3a5492e824d98c63e182c107a87941c7834c0af66c57ca1cdba550049c3bb3531d5d7bb07ee93bc84644ea60521f1511093b5b4d0b5a19518f6f48f377050b57a5919aaf958fd33b071109ed65741bff06f920401d5ab4d3e36c59d29bbf2f29d0281c100d42b178b5a12579410b0b3c5bdf6a93f15bdab87be1d964aec425ea611ec88b6f3bf924def484e9dcb2abd1fab2b2c3cee7f1ab3079d2d4bd7b48afafa6b2c903e112a7fe1dc997554054b3077e585d63ecc4ae058436adc56f417bdbaa3f346786aee58a26bd6c5e1d7e3965bfc0c7ce5e5d71ec1470d2a9358cfe7a3d06cefac24b0bcf692a8bfbdf38073f690535650f5620a6cc664d24b23134396397b79d2eeec9b97a290c282d3385767a96cfcb900c8220e76bd8dd717374085a019030281c100ccce75c5d321a523245787b19880044387fefb9fc06465e524539f265e85b8be15fad29e03173fb29e113d16d5c53f171fc9ebfb1df64428a59148d2ce5217607c1d2cc6dec49d46a88a10340e8c2a9e66b198b8babc64811d5e7cfdbc4b8710a0c908e081424549be828929b634e845fe8c1b89baf1d80867a32120884fcdc71e2aaec0d9e29d6fe907b706a700585f92c7eebb2755640dcc961361ddf239b1336088cb1cc2c6811e3d3703ff5522127f4b1f9bbde92f137cbca148d227393f0281c0789388cce4427a4d267315a7b27ec4ce9a4f7175328164116e5585aec18ef85f69051d63773253a36f7bf9814ee8b93a639c0e9362275c3fb6f5deea2578d519a07c66f7c867733aefa61686140d77d33b5b24ce7cbacbb72f1f878286d878003b9d219973acefa103e98a68c01bed08ea2a85e7ef95ae90dcae63715472b6063b819a83b969bdc7426f6937fe0f259d6f6314f5b1bdca3c8d010108af0e39f3110241ab6730b72e23e56026a43df0376bf85ac4a80da94a3bcbf0d5955b57fb0281c057e12b45e44f66858abd883b1b3dab16b30f25372a1daa5f455420511d73f18e96edd65bf8e58bee7fc6d3d8ad878287d09b1b07d896682eacc48763f525e264033d9d8e03de87c1dee5c7081f49e3abae52fc3e1fda60a1ca5155fea6421e4573486fe7ad6f1b3e06620aaafc44fd79b33cb94043182ce3865cc80526985faad5f5e8a0559dd88241928ee56ad94a1250703baed0b4e246cd8783ef9585af5daab6fc5b730edc9060c2518e048caa1f17c1cb614f7ef4353f6bcd24eb0feb8f0281c05a753898792e9799b9a6e5b244bc184c0cd8a06180b1bc3628fcdefe815675744c53e1c1881df87c00e0b104739754dcae0ee9bb9e7634c6d0e4530eb84836dc108bb38708935677fbd517902d757d0f5407ac78b9c939757a8c471c14222024591bf16784825190ae6e802258921a715d9a18a46994cb83ee87f5ddc13c69edbed56a8030f9f2d79292902727696d07013b12fdcdc5ae905be88a18fe318be5215fcc72ff82ceccfa6ebd9564ee779660cd31fe5f5e61b8f92bad3a8f7f26a4]\n\n# tcId = 64\n# edge case for montgomery reduction with special primes\nct = a9bd730ba3d04dc5f2f9ac15d00ef8bf6462ffd41000aa326e9b501f0a90bb299ea7f0bddcc46ff03cfa0d23fd45598a578be2434aa1738fa40ca05b8b2da67df4fc353facb7a0f7c4ab11a16780975641eb764c83f15c63e01807b7193b3c724220d21a2c2c83594c61dbd07474a8ce5b518ca7635d9c0e04b91eb2e84e0eadc7c790d5ee3129eb6f793d7b9bf4d52daf0313f841ea6688bf10891ef87aad500ea53b94662dbd4b7110103608bb31cde255ab82f852667bff55dd273114e5c1b1471f86fd41425067eafec25f8fdbbdb08490def14bb2d847b2eecc51cc4ef94e5a9f415d59ea8549b232cd8b6bb621d655989864d85de41d542f16eec86bc5f5d5465aa2e3eba1d1b82ddde61dddac0b62d660101032ba3f8fdd69a31c1ea2fa1966784802d3dbd848c479c93e12bec95a7ff15ea6bee5fbbea15ac31cc9e3e8196b8946aa322abfa29b044cdc5008313883885843728e9cd9a7cf1679fe374b06e1cf5ecfc51af75193797258c51309d96e7a71113ec0896b9261cd6cd2be\nmsg = 63461cd56eba70d756be706bd754d8e26d16629a685e3d6159e5e8684752574d6fe36a66755e327905f327c75de1158c34a22a99ce4306675bd876997225d3f508a2300a5029e7860d8eee842e28a4f3709dff9dd84365127e6d7b9d8d59d095894aaebc737dfebc5cdec19318b26245f2b77dd1c507cbc53dedc14f4a881fa4b41d3fb2b3b7569b36bb11bd79b562d464815ae4fd2742f03d78c50cfb22a2e56fa5754793390fba75ab1d068deead4156abd95566c051c3692f8e53bc4fd4e5a605b4adb29a78cda0170dd0b83546c951929adcc42bb4a2ac25439a55f0d193683aa521319eda1d6e0fc61ab084aa52909fdc220bffd22f2c691c579248b1928b08f791a3b64e81f587e58baa7a68e5c0b2ebbbb95418e3b2e0f210d53c33abca5076ebd4e0f5f7fd8117c3ba5404ddcea670da37c868e81a23e1d0f85f878917ef825d5a6bb5d257589ecb77c87a2cfdd6df915d343c38cef865ad4d0126c86a668cd64d6561c374c08680\nresult = valid\n\n[d = 33136923b595040cca19c000d9e6a1e3216b18c9e46f18b5b1e67f4e52a748127a9159484d5fd58d5ee237d363810c02db71937477e79085213e3575033cb57e2cd9a87c4a04f852d6b486580d410e57426d7529a16050cd30b280ddfe7f7ff35dc57caaf74152195da8d3b32fdee1cf1d4cfa2f615415f7ddcabf94a53e7af181b968041650665b517b45dc98556596e7116e247485b450e8937dbfcea703deb93be440bdc88ea6fb131ce97b7cc27e22720ec34222563ea0ff369f3ee4ca6113a2e77442cb9a7e616fa335b90380bcd954d71b62c201f1b3af478f814f08d2c78c982f9cacf8c9f63a06132b8164b69bee8b987094db722d99022efbe67853a0a6006a66a0e2d16b2d78d8c7eb1a568b647c5bfd81cb9da9afa3dab576a2b1569729aa492cc73214f473d4dd78a186d77b39a1f2ac5dd8b8b1f9c3aa662245774af9e2d135c7c267d4d4ca4d0d3173631fe19016e01dca4682de5d5c6849835487521c28a559a5faa8aeae2269cdf5d722c26fadcf3f759c4fbc23156990a1]\n[e = 010001]\n[keysize = 3072]\n[n = 00cd558670bb52e8c170723ac5b4edbfc4c1509816d2212f17808d7a17b637e281402984987e01fe42970fe736ab5d4d9b0c79b78b57f8d8883591fdda2242c87c68c5927b78370feba2050aa7f59717f7f8c9a0b23e87e6d5c7e6e618cd3cefdecc593c16cce7ae42039d671c2a5e8fe053dbcf9362e4920aed0a", "2a840c7c80444a2aada474069b25a79919882f44877ecd181bbb12582448f1066984633a6cf28b2cc751e917d84b475bcd91c45c8e822a874221ff254949c379d28f9e12ad06f28f0dfad56de8dded0a10888c5d18c163b7a9e826408dd8a27859e33874dc409fcac674eb8b5da86afebdaed4e83456df003b41f0a145f5cbc2b95455807080e2fcd049a6a49ee421b8e146fb9fc31f43bc7591ec25a970aef4752af01175b9370c20b49ce1bdac45ade8ae27f27e62f7716cbd5d49e7cbdf1e6952bb2403a01fc1d8b147dba49584931d7e0066544223a614d157beacd2f1bf36b4ad926c3073d9ba13a55df83a99017c500585320efdaedbd3ca91c227eb1f92753e3bed23]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100cd558670bb52e8c170723ac5b4edbfc4c1509816d2212f17808d7a17b637e281402984987e01fe42970fe736ab5d4d9b0c79b78b57f8d8883591fdda2242c87c68c5927b78370feba2050aa7f59717f7f8c9a0b23e87e6d5c7e6e618cd3cefdecc593c16cce7ae42039d671c2a5e8fe053dbcf9362e4920aed0a2a840c7c80444a2aada474069b25a79919882f44877ecd181bbb12582448f1066984633a6cf28b2cc751e917d84b475bcd91c45c8e822a874221ff254949c379d28f9e12ad06f28f0dfad56de8dded0a10888c5d18c163b7a9e826408dd8a27859e33874dc409fcac674eb8b5da86afebdaed4e83456df003b41f0a145f5cbc2b95455807080e2fcd049a6a49ee421b8e146fb9fc31f43bc7591ec25a970aef4752af01175b9370c20b49ce1bdac45ade8ae27f27e62f7716cbd5d49e7cbdf1e6952bb2403a01fc1d8b147dba49584931d7e0066544223a614d157beacd2f1bf36b4ad926c3073d9ba13a55df83a99017c500585320efdaedbd3ca91c227eb1f92753e3bed2302030100010282018033136923b595040cca19c000d9e6a1e3216b18c9e46f18b5b1e67f4e52a748127a9159484d5fd58d5ee237d363810c02db71937477e79085213e3575033cb57e2cd9a87c4a04f852d6b486580d410e57426d7529a16050cd30b280ddfe7f7ff35dc57caaf74152195da8d3b32fdee1cf1d4cfa2f615415f7ddcabf94a53e7af181b968041650665b517b45dc98556596e7116e247485b450e8937dbfcea703deb93be440bdc88ea6fb131ce97b7cc27e22720ec34222563ea0ff369f3ee4ca6113a2e77442cb9a7e616fa335b90380bcd954d71b62c201f1b3af478f814f08d2c78c982f9cacf8c9f63a06132b8164b69bee8b987094db722d99022efbe67853a0a6006a66a0e2d16b2d78d8c7eb1a568b647c5bfd81cb9da9afa3dab576a2b1569729aa492cc73214f473d4dd78a186d77b39a1f2ac5dd8b8b1f9c3aa662245774af9e2d135c7c267d4d4ca4d0d3173631fe19016e01dca4682de5d5c6849835487521c28a559a5faa8aeae2269cdf5d722c26fadcf3f759c4fbc23156990a10281c100f793a0a9963aabba0dcd9a4f18a08e62f6b194dc64022af47c6d473f2a0d38ef862fd20f361a96c334f9457861bc8c09ffde66c5e29565a57b864911920113b5f0d269968e6177ddd89da7d77263dd9cc99108f3a7063b58216850eb84446971a6d3726aa91f4727f99302ce5ba63295c559b3c94f8c93efb8443f7e97b4ac489854e9062d199d17ee00910b3213639759dd9a5e1b8bd1b6d9a306b33fd6326268be6ad24ea0927454fcdb091541fe3c90f6f2a9534339b6f83da27c86fd30fb0281c100d451f7d6105fc90f350a536765b5aa8e42083e0f67747d67478a105e012c870da1abcb07e1c73fd46c7343ae5e7eea192a4d865c044a300a526271d4ce475c21b56e1123dc9185a64e261f4d09f94f2b43814397cd5edade156d06378c717e59d27b92f928e245ca6d5b5d53936d72489c2f62d0ff99f475913fb21424c9e0a911a441d534506200d0579e755a38346740f41794ad4aef4c64c9db039d72c400a3c44d38d0cbbefb3eab213fa287da49206bc14da3634dfa9c2d76f260ed8bf90281c100beb436c3aaf6d2a4e4510595fbd0611d960d402f6bd1c7a8bfd7a553e05e8306ee0413f8a7a25f934a50e0d453e4dab23127ed5e6ca4cbc1669f0fd5baf39d6d3e6db5ebc50d0b3a15cb8b2807f32917c6a433930b8b5f570994c31047b832c8daca718dfb6c1e718a6b55740360c8025a1c38c2cec5e88675180d18c45ee57e9de879fec9eabaf95dd98de063d84f949c2278f018a3e10cca242bdb13473954587ea4e60eaedd6142bdeb32d9ef15992dc92b2e86f677949b2f4ee4414ef2d50281c100ab451bc900186455f2114c4a420f936f81f0a82f40e3052dc4d5a8724c3c210d6bf6eaa687087582e3a0ef5dbf385d9ac3371a452be8b46bff1d0e79fd942ecbba50f95e9654851d2c393052b2d2fb7c08ce433a371e672b72d92984b1b3f39a7d61d5a34bc98b46c98443fa61188e71e81b8978d256dc8de207219d82379f1482f89f6a5ef2e0bb8b54c2ac2384e730cb829b6b01874b15b2cfe9ee369a1765f4b52b1dc3c03764f09e970980105a9356a5d59ecd4813e52f0ab5c2bb51a3f10281c100ca356699c6f5b223bdaa954d5a6b95c4d0b0b90d679f302e3f3d6a2e6fdb5b8c2d34a2362b72fef0cff0c7e08bb63b88d82bdf424384975477943e464a6282a3c301b8da1e77fcd5a4f28d2906886876c3094224d6b0f482fa388585c0b859d79b0d76badf107072971cbfc6057890c50c5de1e7582d45dbee868fedb52b4de3b2779650ffc977663dc7fcbf0da60eff97bdb3257d0739b22738a68e31a819f090a96d3a79e9ebfedd99b677e93bccfd4112e4f40843324703eeae57b3f5089d]\n\n# tcId = 65\n# edge case for montgomery reduction with special primes\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = 2d6385fce580f795102dff20c7917588dfe5304746e5635dccc732d3a58def00efc60fe4af7805f09bfca49aad1ca464b6658daa7f133c12718ac8a6f60702eeb031d49ae35b99ec56d0c7a0a33108ca98b55ed68d27c4c81c38c02e82bb90060c5c2fd9d411dff55509b1e97908d152a4b3c93528013cef644dd70c3e99b647b403e49d0175c818de9f1289eb312cc44ed3a408b4f7f6ea03e44f9f1dc07ddfe02f2729feeb2174c032be05e9eb9243697264016cb0deb113266c3b\nresult = valid\n\n", }; -static const size_t kLen299 = 319528; +static const size_t kLen304 = 319528; -static const char *kData299[] = { +static const char *kData304[] = { "# Imported from Wycheproof's rsa_pkcs1_4096_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[d = 00d3519bd86edf5dbe9c64a3781713dd049b747f5651fd918cce8a9b80b6d6a2fb6aab334ab569a89b58982e0aae373090299fa227f9652b802d23ee5ca6824c433d01d40bb0473b16190a8bfb137c0a704b4f49b45015bfbee1f670446f07595259d70c7d79ae95f9b2543b0162ebb763ebb81c4b6edff9d197dede1dbe57e40466d156d4dfd5d7634c45534fb2bbbd1bf257817a173c0795fdbcc533976f4a0d04160f299af5dc272a814b36d5bae5116b9542178f1d554cab7a6453035482b981add4bd8ffd5d500839b23e30ebd3f3868f07584cbd12ba089325982860f69f2bdc7077b6c60f58a2272823379e1023704165f7c14f64a18fd5b245a18149b7eda3385a56ba9e79502a27bf13865cde35be15de03d06aa6f08b172b7eeb4b73cbc157019c5d933584a8d1add61b7dbca3b253ca0cf93dc9a8a3aac2f50227022e692f7b4767556620cc928d63e31078c360e2ab4b71a917e19e7eb09380482e5b4ea88202871c2a29ca6f66b2fe304af609520e4f81d64c26768bb812a86679366611f4cf6e89e2bd1d9d7e28729c7f0e4e3152d7ad7f186fa32f01e169ff06a12001bc179dfd0dc942cbabc555f67f5fd043e0a3354340fa490d2f123367be926eb3e1dffe70c3151c87450f3217dc2aa0b5a7069c5a17d55614c9994139f7b37b49e9fe780af65a0e89e2e58feaaffe163bc9d19eafd9cd29b0ef3cef3d01]\n[e = 010001]\n[keysize = 4096]\n[n = 00f601be0dccd04aa40b12f3f191ae17c1f9c8c0b68e7a77e14be25c3c7907cb1d33a6ef418ef41852f32c98392bc5c9aed91c1a1501c503eab89b3ee6f4f8eb2e0fcfc41bd03609cf6a8eb3aa6f0fbe23187b33db4d34b66d128a8aba0a2abf40bb9d13d8e2554569a57ab1d8c61b8cad2dc88599ae0da5346e15dace1bac7bf69737c22f083be9b46bb8b1eab5957b2da740275e96c87195b96fe11452159dafcfd916cee5d749a77bc3905a5ebd387ae445e8fe70f16e9a086639779ceffbfd41557bd99aea6a371a6b4b160615a1a12bc6958d34bce0c85adcbd8392fa10ceca52209d56196ba3d273ce228f1f111192aa92de2a039798a17bcecb4dc6100e6f8ae8c2643f2ae768b2255f082c978e95ca551555f10608231cf8003bbf807969fff1e51914b9a8c9b8f4564645b9e5d705ffad29663f5dae3d76652b422e43f13e6c1491090805c2d1268a74a251177427e33a9a91175c3670b91746008bce1fd231e6e4f2ad70cb43aca5f07600a6d31dd02915243dfdd943a02165da367a6b7e4dae1dd2e8b836903080795d2585076cc1c15dd9e8d2e5e047526569b1bfd395d957eb9fde325d342d14426e71efdc1887515e53cdea5834921f928629e748eed097ac4024e2bf255d70411f87373948cf8e8aa7effa2b0ab47d5166091e1aedec60568b155bd9c27bc55f3ece35f83d636dbcd5abf4853a051db94d5045]\n[privateKeyPkcs8 = 30820944020100300d06092a864886f70d01010105000482092e3082092a0201000282020100f601be0dccd04aa40b12f3f191ae17c1f9c8c0b68e7a77e14be25c3c7907cb1d33a6ef418ef41852f32c98392bc5c9aed91c1a1501c503eab89b3ee6f4f8eb2e0fcfc41bd03609cf6a8eb3aa6f0fbe23187b33db4d34b66d128a8aba0a2abf40bb9d13d8e2554569a57ab1d8c61b8cad2dc88599ae0da5346e15dace1bac7bf69737c22f083be9b46bb8b1eab5957b2da740275e96c87195b96fe11452159dafcfd916cee5d749a77bc3905a5ebd387ae445e8fe70f16e9a086639779ceffbfd41557bd99aea6a371a6b4b160615a1a12bc6958d34bce0c85adcbd8392fa10ceca52209d56196ba3d273ce228f1f111192aa92de2a039798a17bcecb4dc6100e6f8ae8c2643f2ae768b2255f082c978e95ca551555f10608231cf8003bbf807969fff1e51914b9a8c9b8f4564645b9e5d705ffad29663f5dae3d76652b422e43f13e6c1491090805c2d1268a74a251177427e33a9a91175c3670b91746008bce1fd231e6e4f2ad70cb43aca5f07600a6d31dd02915243dfdd943a02165da367a6b7e4dae1dd2e8b836903080795d2585076cc1c15dd9e8d2e5e047526569b1bfd395d957eb9fde325d342d14426e71efdc1887515e53cdea5834921f928629e748eed097ac4024e2bf255d70411f87373948cf8e8aa7effa2b0ab47d5166091e1aedec60568b155bd9c27bc55f3ece35f83d636dbcd5abf4853a051db94d504502030100010282020100d3519bd86edf5dbe9c64a3781713dd049b747f5651fd918cce8a9b80b6d6a2fb6aab334ab569a89b58982e0aae373090299fa227f9652b802d23ee5ca6824c433d01d40bb0473b16190a8bfb137c0a704b4f49b45015bfbee1f670446f07595259d70c7d79ae95f9b2543b0162ebb763ebb81c4b6edff9d197dede1dbe57e40466d156d4dfd5d7634c45534fb2bbbd1bf257817a173c0795fdbcc533976f4a0d04160f299af5dc272a814b36d5bae5116b9542178f1d554cab7a6453035482b981add4bd8ffd5d500839b23e30ebd3f3868f07584cbd12ba089325982860f69f2bdc7077b6c60f58a2272823379e1023704165f7c14f64a18fd5b245a18149b7eda3385a56ba9e79502a27bf13865cde35be15de03d06aa6f08b172b7eeb4b73cbc157019c5d933584a8d1add61b7dbca3b253ca0cf93dc9a8a3aac2f50227022e692f7b4767556620cc928d63e31078c360e2ab4b71a917e19e7eb09380482e5b4ea88202871c2a29ca6f66b2fe304af609520e4f81d64c26768bb812a86679366611f4cf6e89e2bd1d9d7e28729c7f0e4e3152d7ad7f186fa32f01e169ff06a12001bc179dfd0dc942cbabc555f67f5fd043e0a3354340fa490d2f123367be926eb3e1dffe70c3151c87450f3217dc2aa0b5a7069c5a17d55614c9994139f7b37b49e9fe780af65a0e89e2e58feaaffe163bc9d19eafd9cd29b0ef3cef3d010282010100fc21b855c5ad4ca2b6970516406f71c6e79efc4126e6598772db1e082de6b0dddaaa2a2951f04148e86e0bde28213b7f600f987308301eacea134062bb0c3ddf628da9abf93ef1ce3e75b0953a484dbd3554bd5c0649933dd77e527563e90f05a8013fddac958c329378e94303b304be5f9df1fe5b043a7fdd94700a3f0b1cbbd0516b7cd94c57ca96d9fd2a8ca973991218cba33a1c23d810f7519d1f7702ab72affdb3f84a1b2a88116e4033bc4d0cfc7989c657e0fe94e964476ae58bae6b7876f36c09d32b1a63f8c47c94a74c92eedf75fc27cffe0f8452363e4bc8f7653f3cb55eaf693cec70d13c875de935a8b20439ab7e93f76981c5957fc5bb44d90282010100f9c7f748a505d23ecef9a85f8097c8cf7d7028ef6c90e22a336511582d2cc3636e34ead37204dbd22f142a3fb1d5f857b0310c7a433f51ae14d4608b01b43aa8c7ae67835f7fbe0b9d97948b39e9ba2d3a1687edb8b56ee70ff0536dab4d0551f71ed0daee9e412449f5f099bcc15e4ef0554dc79f87fec5a0dea717c7054392bf444613937401bbef3c22fbf7e738c58779b981609a1f9c11dd6f0bbe9996e2773459e4cef247b02a9fc21296ac57a5b10561824310cfbdecc90e06598370e3698713fdbe2528ec4ef3dccaae701eedc3e54ad6e7af4e68e3b39bd2e97ac9119936c647a503511cb283df984cfd7c07f0f56aa8ae3166948ef3f41b0859934d0282010100815486aab0a0896bf97f13e3eb1f7f5c49195b49cc3b6277412a3688798b18f46422df479cb941b3b54e25964a3d69b897bcc8355160e58b4af29f1745dd2cabb670f634b9c058e6b3514947f2c27de5ed424f73b1e1f1be4a188911a0333f3a6688658b3ee8e3265a512e4deacadc470ee304ebb5224123afb461984fe8524fe0b6b30d32a59f6ed2dc74a96bc7cbfd1bb44e58a7092235c5d6272e12a2c862cb8c8cf5d109aa4fb1c6472875a14460c1ed5207c4b22bc494c7947eb7ca63a8cafd31361d000ddf16a2d79f13dd9140d979149b488cbf44945a5b6aaf13221bf4491ebbb7fca27ca20e221f49c3c37b89fcf2dc0e2cb63f8f8a9b7a142250590282010100b61d84ff934a4e437b16ee1b4b9fdf4ae13370b5385bde7a5464a123c0343df575f9e128ef9df944230d39cc9cf5dc0edb28b7e740b69ef024c1bfee39fcd5340ffaea0010160c535dc0920e7cd81be533d00fa554a1fc4d3e02c461569f5e7ca787f1515edf45b196b759884de652c38d5934cf92524e807b4d3b590bc39bc417ee4885a761d28ddadce6c8fdb3b961d3e7fd48064df9340a967f8b79997438841f48579a476ddb55088c308f68f2b29d01c6597a5a7c8d066284f63e37a68c3879c32aa3836675fd0eb2719883a91944561e9dd7e8aa6bb17157f08c48f8e6fae5c3e5a2bb6b5d580eec6c97ddcd9be0a49ef283a7031ad7aba8d438df4e950282010022fb8e5fcd9b767104e71244db53058c18061e1b0d1f63b73e2d59a95e2a10cd87426a33da13c287cdef8136e5e47e93fb9b30ad92628a7b543f48eb011a86356ab3cb480f27e391b018ca187d97af3d82e31861ecafa663db78aa89c3bd468e6aadefb3a43f78bc00b8014c95db54e9d21a017e8f21f671545edde9a965ea32dfff45cda37fca1aa5132f6c8eed222bd01fed5a6e7d639580c5955777a86544c2c4c939bdb8b4c486dda53072861a0334359bdb3758475e49d90d0539944e78cfcfd8fff55bb31a1cebc65b28f51e790701b2f7912188984f034e6e96e1c5251e33fe38fb221bce7a90a86857c5f56b6ca77307c45d5290b1f088ade082b349]\n\n# tcId = 1\nct = 591be9c4c087764d1c3f38b2948c896bdca19616e70ce1ea20c3c1361d51635345bb8db8f559be2a08dfa6c8e0a717e9c6974762b73927213682e730cd4697d377f8c36ceab1b52fa4e67f7f230a1e3a551a51b6e355f3d40042d3508a0898b061bda6b6cfd1a13753f3379a1ba33f9e303317cdf768ddb009d84a357231d04aa159d88756f8037bf1da996720dc0360998f2055c1fa37473047bcad28b5c4ff5540769d6f23815cc0078821c1976249926310f0fa4013e1dd0bc7294f4e50eaaa2f5ae3cf936dea032b42e5889d0f7fb8f139ecede958ff2756be876fea0b426c902682523fda747ef8aee0b72e0a76659a689b989685de912a10cd2c7e095b147294e8cdfc9e272a7dcda458c61a6f94cbd1d54d9cec61f95d7b4698761a3930715b53715ec6183cec159f4b1e532073b7cbb9224e5c0d5f8e36041d5be8f8de2203c66cdef24a278027e5a2212bb5ada33520b304f186b5973b00c5d2ad7d73e404ca1e930828f08c85b62001f589a73ef0d1e8c2367ab6f1a3bc29d9645597cf7c0a85bbf5bcee4c12fc89af545922132759f83fddb369b55fe68f2c93a7d2459b04f52bfc2fc9ec237c14f651b41e9fe813205c345d1c36a838785a2465619fa0d4370088cf2b4083c972b17e4e0e207e142a765529b325ac91e16eaabed7d010e1735525d166cd310caab5b27e56bff36c478868233a38228e0177cec9\nmsg = \nresult = valid\n\n# tcId = 2\nct = ae1edfea692eca58775d3c35999e5738886a47884814994b29dcc9", "7b99e79d9f35ac1de680ca6ac6638fe73771ade65e74d13f8de01ee5cdf5c4c4ed2b86261218ec529437606353a80fe45be9fc7f9f27850a70653ad31f490c1075429ad5263c46992a1265871a5ecfc7390c86d72ead118028a3fb3b9fc81ad055c137e34c6d56769cc8cc6e9edaa31958d0b2ac87751870f8c955ed2a0999d5638c8a42864174a0c8045a6fa810b6e0204f15800dfea5688d98156b1589d4c51032c7761bb02fb90fc15643db17f398b30f79906c739dc10751011032bc75828322de3d1e98de6f1bf644619e91cdd875f18b08c5876a485d8d46e5cde5435e26eadcac8dc48ead9f9fb747220fcdb09d2dfb1d1197b591b1aa3003c61dd880fc4e0b7da59146e04eb0d12715f6f44704bf0a9a0fd77bc7b74d3b61157ff5b0221c782fc886b9cfdefcaa2cd737178c683c84055beeccdd1d402d538e0b72485f3be93d8041a145ab0d42855706d61056a1d49a656cd67486682349ed0a6f8ff52ff05ef800a969b978f93d441f896302029ce5e8e800f3b5c2bb9c92c93cda18145fcaeb8f8942787074b02b434b4e52b6ddd918c4ad0ea22575fda6b108b6e0b8c7f681767c553f5b6b2ab56bc657f7017d1deff8f1f55906767bd039038373416eb1198e0195112df8c87c52840e32e4d616963b2e9cc7524c21487d7e81696125ca63\nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 04327a40b02bf671557124f963a57b3860e92cff62c439c0425b48b4346fc60c0ebf7a7584f94d34450d20cbd877c8d5dca12f517b486c2cccb8e1f467276ac03aadc94a97fcd224994d81672eb577cf0bbd6aa948d3dc4d7f06456f6650e5620435c078787db0f36124b292349ebe011ce54b3e932fac6525a37c793846a4f08ac3694d649f4a04e24e1f5e50f11a0492a68a509cf30e565ceb9931565b4aa5c3514b2ba87c4c0937ebcd6bb2b8248abb0970d30480059daea4c6ae556f6e91b25ffa5a4f723a9bf98a0bff668a1f0c799d3b0c85b19190dbfb5d894f84fa5d72d261dd2c09013dc0981cd0c46d7a08710801590aac8ff17b237387427ab3c6d6f2a59434b37f123bc7fc0a83d5ca5793540cba582e41b262859d36eabd0aa8203ca05d4c16aaf2a7b2bc7f251497d4c8f8654deae3cfffc5d3599ab4779585bf1673196782075a91ee7c3296a2edc6ee6c30344dd0c0a82274ae17982eeb23eca5c39c7d11a2dd171c70108b0a33164fc175425586f714deb5552e90e561f7882211d3f01c07867256d0cca511e61b0cb51189d8e5124e8cacdab6042bd421447ffa7fe6cad8e7f17dd3e599bae061f85bb5181726d1c0c5bbf2c2a5c1e60f486a81782e58d90ccd5a769f98361765441de142bb0a7f7bd406a537d5be0c2773e847b1df1d49ac1daa963feec84954b72a695b74281159647a62a3c19acdda\nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = c550c1db08ba647b812973ac38784a62e707840367a725e60489a0995a789463d05a3a6ef7cf06a8fa7304cf28e8b11d1b684ba87e3be712b2c086e2acc7c8d46ea84175bee9e4d25c4a24967296374811d4afc6675223e624b7f2c59f8a02a875b1ca75de2f5fde43b85b7aefcda3beae7cfde9ea0215c48d65a8b4014aca446b780c785a49fdc8481e3c342c82a66d1103bc48a4bef5702e6b9157ed367e20605d4645084950abf36ee49d76d25bc2639130e01fd9592ef399aa670c3cc549787466bf7fb5fa5be203cf86759419812af003850ffd3bf9c7170919ca68c224cd4fe9a3566bdc17793a69688313d71aded8b64e3be8c47f81103ab35ad6090d98d7d00952aabd1c67ece3e2ee12717f4fc1e849ce2b8130ac5873ccfb99cf683756641d11747276cbee0a9e75a7851012517bd4c197cc843c9f26c6f2f357323918600db96dd4388202afe276edcb9b73b2d7d43126c3a92f7354dba6e67a1bda30612897392116d33e53005e4eea4dda087e5eee5a30739076c1ba838670f0315ceb7cdc9b7aaf5aadb049345c81fcd972431f80ae8722a3f4a58b68c42f3206f8cf434205700a27742cfe25a0786e5f0bf4dbf9b150a52807be2db31b3258b87f3f5e617fb3b1839d4353951e7f556ad3689f0d9418e4311d99b790f39ae05cb28fdba711d33e28bfe87421fef67d98038873a6bc8a103ed14dfa87249332\nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 06c23a6999c870c68707f2c2d85c11c35fb77ef6cd263393a1a6a8363298f4b8937a8d176fc268a9a1d4f3bea51623f7ff7c76c4e4c8b12408471a460d9d1f226e41d17da80b03efd27ba00bcb7067dd9e02c26a3ae9f8b082f6cdcf1fcf76dd2ff774307b7810a4128eb2090880c967845ef02a6da6344749fcba456bacf43d915bd394eb9babdd19140287e44bdf1951eb4c058b489c7f3984dc5763f64b918f35393c4f6e86c457133a101b60cda0f9d0c93c90dcbae3345cdb894947d8bf1371694c0c21d009d4173bc849ea7d00f0d2c77e4683b403c32ded38f38afb61ef1348e889b3d8e0f787bf85b6b93ddee2c97805734d20006111b26ad1ede2d16d3f0238369d5008d255f1e1c518e68f82d0a09eee6ca803ebcf11b95cd20e195cd3f0d8221a78bad42820f2a5a7184b461a7002d06b003183aa66a313d91164a7d6d09aa567aff83e3cd512368893156337a741b388d1f18b10de386a28993117679deabd6b00d7f8c641d6f201ee8fe4b9934c9bdc48a70f21450c6f23b21e655f8818bad28f0755c856e3ee926b021f2c3d5336bf1752d6b54388b745b6e109d4c6885608a61ea8a5d511eb7836025cd1503bb3d25ac20819b7d9a1257a8d68b0bc51e7b085de69c267c0590fad3e003ca8018835b2c7cb32a25bdff2bea8111bc1656da3b8cf4ce3ce1a5b2c6838d9c276a6c1a4b58b07e17aad2c645736\nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 2d452fce3031f644f4a22e0d7b2df7296edb3aacefab84e7c57107021c61acbef498a914b9a70d3e33f97f66767eed7a14c16da88ec156e436245b5d9d7bd1023c997155e2e64d6801b535c3c861b19598807387c0ee366d024950b996cb206155493f0f320cbdf58f59c5911e10db3f8034b89a81878dee5a73dfde620ed224181364e7c7ea5812c874b252ededbe4c8644fdd3d312c7bb4785fff4b23a3ab00a2e5fdb3192404d8f1af8668d89e7b4aaf70634b98d98b2c244c336e57b3cf8411294f1a614f55b06a78e56eea98c6f59b2813643515a919f7be4ed59dabf69d68f43376964f0243ec6dd19a0a3609f8ce3e722ea3375a6b5f7ab24eafeabd58f81a2b3d2bd3aea2e6cfe396542961c1fa9d806037945ab866a0af6b2ff9f517d8beb5cf0c8679ec75324fd82c03e217572bdc12f374a445ce528b4ee5d8c93d3b8f254d372cabcec7ca69c4c539c0e1d02de02a0a337bdaa9910ef9402f449219b2e7376637dccdb01693e50196b7691cd8f6557e42afa7b9b7a7c925e6587613ccf007bbdf5457e67a2c2afcebd609ad8d04903cd2f748e1fd3eec0f7f812257da9d99207788e9770d12eee0240f9ae93ad9ac9b4fb63d4bf35f0c0a363bcf19eb0cf7085ead9244d4623a15deb7b9c02698d38ee78713fb67ce662ad0c76130b0b541a5120405b8683af5ec83bd8fedf72bb60491f829448cf76a73e534b\nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 3ed60cd73681d506ccfea349e5fb086eab2b679ecb796532af888088cc84d8692c6326cca3745d20a94e710335e105d2b71f6834f7cd16a1a2193a3ed88aa01b31cc5a8734178f6d9256a9a660e967ee58ba4ad63cc33ec6a08aa1c324a88f55aa700b4d5eadf46cbf7a3c5304bf883b233d5a3a2f9ae8f858959c7f832e793b5dd68f196b83702d929857a39d74a4e386f7f6636f7c03b96ffeac87625088b07a1fbeeb44fc03cb312b8f3b4308846b0566208b516687c5a786ee443ab399ea598a2631d40a7ec8671e49b6f8be46a337d9fd80c56308857247cd714205d647fdcf8019608f20bbd7816f427eb4e4384f8c10c57fb0a7a3557bd80a6744b3ce3f53ed8e32b2e384665bd274b9fd747c646111ccea90eb809e690bba31d190c6a2e2a895fcc71f521fa9c0481645348b718aaafa968bc18cc20065f25924b8f0565d1e93875fc6ec0249e5be0b1bb9d8ae054dff2a368ff4b11a3724fb8c56033ebda05246024ee0be0126217b6988242a17430284d2e9b204b9296ae22740a2e847948c60085464d8158d9ba7db29f4594dbc85482304e466936689599505576e92c6441653c2744a37b5bca6fd88c3cbf990433bd3d2f9977e474b4d09f3d489e78700df6ad9dd2b8170652d7df55557d86055b803ffca1a8c3f214369bfad683f77a4e134fcc4dba92134117323893a83c5a76c081d7f8198c2040d3fc308\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\n# Longest valid message size\nct = 3f1eeaa59c4b466f1cd4cc42345749746e18c80805c885df89ce608031692414ff9d7164d06a3cfcb16d20b439e65c44ec534016e9d9a173ca5652a707841e877c1bb3ee6e7440580e1edba79c7ce517bbc32f127fe0a5ea6d2715a1742adb5ab5538665620da3028cd1a50601942c0d255dad1c2b3fd7789318c0257c1ac140c0d3cb0766a7b51bedd5f1e1a65e533422158929824b7a8189f1c3aa0bc51586a82fa130bb465aa140def445a86b6d6331d6d98547d8da1a1c989b3d5e6b1f4b8278de9863cf8cfc30c776daad90dd4b9214295c9510d37a035c3c104c16d57b65ec0a816173ccb580e16b537948b3b21aa5fc56e78663b1b01c6623a977eb4aecde5d6aab6320be170f9cd5cbc6a520f32f23dd000116200faec4f04e7883abe9ccc482951384e7149cae39c6385ca17593a9cb2428fcb94eb6986b1a49b60f5fe43121423510d98bec37f700abe8adef9fd7e13321dcad201ae5a6033b59806f795bc0248e4c039e2f770635e1ceab3cfcee3f4c7ca68603b410cd9629d2391f38ec8576cee684aaf7e617d8da424c323124b28638b78e941933c7ebff9ab2d4a27069b83d82bdd694715be0a9145e30b9438d0e1b9fbae8ddf215f010ffff55926828d6a8f4c64c38370e5c3edc7385fef5acdbc4cbccb34352c8083b6a6d86246b940e7d19e98ee44c5b8d867d5b746061ba71d50c2d7ab4af66db6afcb1\nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878", "7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 9\n# ps is all 0\nct = 556ea7b7b4ca2cee4cb4a386744b99cc7fea3ad359cac1f08fac0417e051ac35a704c051a14eb3031bfb25bed2c51e1967068b1927d595d40c6f9d5ee029db187993bffacd772075e9b16f8bfc0dbd5a18ff065cb6f99ed759d219f3e03baf53c6270c5ae1e66ecd4ca71e44bc8efa0292987c8caef2b464cf3a2fbadd12613ea60e0a5b5e0fd207388374d20f2be36e8332ba8b37e20b8f461b87afa253a34cd7eb3314de4c3a6427acb27429cb1536f3171224c84e05f81537a75e6ec28a82ac6fe21af38c26831a9e7cde61dc7f3e0992170284e99518a3048ce6c4d687a3ecbaa8ed0244371343bd935a05be103d255a2162c7b914b99731f8b2fe088994e6c616611b12cf5f5f6077e3d18bd435aaf0aaa53ed40c023b8d2d13fb190fdc2022049c6fe4b6eb66f0bf6a36e81c8a920c53bfa9c93b51f8b2659051e445c9b816c02e2072024227470f10da398e35679e114795053d2f96c3fb033cbdbb0b2e31447584c35abd60875ffcc1bfb24f892ef213f507b8eb63460df382c6c507c6ed17ebbe049501ba62f53b499ff31d2c04a242f7e16e312439baca228130c3874e36c84c5872ebe774e3dd25dbe6b5aff945cb0399f742d200be7057375538701c3d5101feee7b02159ded185eeeaaedb72ca1d4189ad165b290b6b3261b0cbf74a87e1796c1b128a7d8bde89e189917215cc013add1c07f8eb1de069ce048\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 10\n# ps is all 1\nct = 2e6309334d66e15e8cbe39a9cd2c3c6d8f19d49f017d87abb99dd4b32135968586766bea12529f6eb01da0a1902793ab8fb656e7df70b5de12548670583a75d68eb6bd36357fd326d07aa4f1c690af4a4b6189cc2de456d163eccee06ecedf4f41a0288eec24c2e3abfbae9ffa349d578594bef818268925dcb294ee9066355b061513defe161749a2469abf3ffaa28d537d55a71a7910e4b29836298f9ea464bd327d33d33967029b1731c742cfb8d4a6fde07bf28789e2a2590d084f7330b52c9ed8870922dec327237b1ee9178dc611bff14380b330ef94e677a40c81c61368b1eeef2ca753b90861bb4421f7da836516378eaad2ab7f80e2642b84f66fb0acd62807f9673b8d975db172958d54528c915116257a5ee2fce3160253190511bcecd7262435fed8ad1a11ddc8bf0ece11333b01a3087f40beb1c4d112c2eeaa46f3c7cc843526ac0abf0104c94c8be9e54ec285ad5703ef1514fd210cfdaa6b2cd2e9d39bacfc338739ada8982b5b6af683ec8c2bc902bc9bc4c9d5ca6199fed502481d86f2a6f9dd23f3f8eeda71cbaf90b51a50f5c6280aec08469fb45447ab4878cfca86ef78daa0b618b9af3c16fc9e4402520b7fb3abbf3086a2ecefe84a10406b879e410fd46c518760059e37f56befef10590593cb4707a0605c056051956fcb9d95f36d4f3852cb15aae172578f73522f966d077a9d8d98d316b664\nmsg = 54657374\nresult = valid\n\n# tcId = 11\n# rsa_sslv23_padding\nct = 80e0480b11f19fbef3551fb123a4fd968d5e5ff64c88c1c2b70546570eb585d5b119f9d511fb15ab3e25b1dcee9fd3f337f949377af431df9ea9b60c07225da87ba0d61c0f7a99aeb130b09c294e0d49caf3854a65fa98be5644457cba4e5591b0f0434932b787e0573354932a6a9f0e3355524121b04fbb8fb5e4a787fa509a7fa946aaa34e91c16827a65639b06737bb1a9fd5b85c85c58b116cdb2a900142ff1886292de9d4d944edcaf4e98aa28560bd6d35b4d64f0c7e72c1b572883581ec8e479a836bc2fc55c49f8ae50a9118a81597ac5e0b31035aeb0cef1e5327df6ec7179ff461b6f157c690bdcdb9937fee7e8355384667cc7a69856f6e86457eab8d87ea8be33e5f684184001319fdacafdd20b90e2e03863bda108c349de950377fc11f20ee32f481d74fb656449c309459a0d296124f726519a73c2a5b41bff6779d91ae9b47c6091e695ee7bfc59ecfe123e4d0327a3cb5b04cf0a998487afc20a3d0aacde87a080481ae0455796c5273815cd2b2d76edc7c9558be1ea2840a17584941b3c86acd32967a64bd1295a94d3ab34cfc67b2cd27900898bf461453a8716c8820ac8e6e9880a3eee38b196d9af46a3ff7abd2354e1a5f654a1dc1ce45cb4902988e3e14d78d78f96f59ca20eb5cfccb2767e937a55acb7dec407f96f6e5f6345daaca1e8b11a72a599515e08a96dcdfe2a8b8dabc0a4dcac4cabd\nmsg = 54657374\nresult = valid\n\n# tcId = 12\n# byte 0 of ps is 0\nct = 4a7a03202b982309bcf2f99d30cd0bebe24b43800e3bef58abbc11e865ec2bceed4d25ae1aa95750d267233c5db0860e48228a4fd8c2953fca6bc7aef959729a7d35c9af4868fe63303ba4f00a8fef777eecab7baeb5d9db61c4a7581eb0c12c887ab6ee59f6d0d8ad044c64c39e344db3f2fb7906af25dbc1263d9ee3baee8ff46a49fec4d893425bb22ccfdf7bd86adb23b3171ee653bd129c042c60d049730a28cd9ca83ccc8d8838341701f545503f3e356bbd4ce269f455c9800a1e03228880edb0590136ec3982b33a4f561607d00eaf9ddf68b67f18808c485f7d2001712ca5e62ada62d3bb575e612cd2e94bd88e831026eb7a23cff7f3be1bb320d853202039b0f59dde8211f9c65494335e99b9049b5ca356dde17f3be1688e6cfd232271474065124a8b55186500bc42ba4d6dfab381d5dab6d7ee1e7305e9ee93f1202a9b8dc6a9b7f69034d9de54d112891a053223b8489ee5b24238629ddf6b5d78ec366fd0b00dc612c5751248108106a80676a3137cfe96008342696ae59c369c7364fb070fb0a5af3ff548f119c88f2a7059ef880d0d135b085918d48a377027f78c72ac6b4eacb869c8bf86135d459cd07202945b97873228fb280ef770fd317ad5b2d36925826d786bdc9fbb760d3907d3ef826a6ea47b0eac1ef709b7efacd40acf51339ebe4b99702e084bb6a15f070d409df7e7fc802e0e6a988a05\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 13\n# byte 1 of ps is 0\nct = 05256ddf55991cf3e74b8fb8b3172db6e327f15c2cf13830fd169716f7e5e717147f91602814e4e7b38ec9bb7fb5b5b60895a89a949d835398ee6798857e05857438ec27dcc897a777b85d420146e5a0f0ff64b23979b9626bf6a34a8e01658fc143eb9d6fdfe1dc878363b038e7f2d91a7f50854684f7bf2ccbf042477b9c6c50b8146f594800a5b907f04fcd03220bc25260748b24f6281d3fd939b51d2d694fa76941b8873c0c70311fec77bff5b0752dcaf86a8a041a29c5ed35b0a96bfe6f82754cd2d173763f9753dcda7f5651ec40e1da282c01bb0be7b5faa390fd134b05af61b3fbd83b0ddf0060015843aed03bb79a11ec906766a6fc82fc28016165b7e5f9c9b913d52eb0e1862209b9cc6950b5d47c21c3fd0673d0d7aa281ca5ec3a36cd9a4570419a29820c75307bdaf0012b68579a6ae9e832825f47ead6b6af0a1724ba7679a88233082b65862bf1fb76656b0ed76dd758470b00c147965b4ee233275476e9030ed301dcd19cbf7ddfeaecad3d17d7129c4e9b4352422a3d2b812d09e829d5d8c2e41f6aa10664824cf0d3b4597aa2cc137f05df672f17f0a345739c93f2cd583bc4ed5dc2bc7295d89c0d986eb88ecf5732a87fb8a10fb449fb3f5da74952511bf2ce03bd74db026b76df93b816a64b4372b33e873226681204022fc945d9c2909982e6517ec2157f57f4a36cbfadab9ba6c8589eb03310\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 14\n# byte 7 of ps is 0\nct = 9ea6991124c047788b4ce768614edc52cb1bf88865f80a7b7bbbc435c1389625a085a5030338856527d86f0fa9363101a7800d7e61dbc081d5839bc679728403bf028a22cebbfd2c9984d581ca79cbdd2e9962fae64a5bd3b2a8d419cb39fbbe2df7b8a9b4e7c603ae1cd923cea1da1561beeefa680d5bb36fe9822ce12e1c88498c2273b76646918353c663f91a2f54432cb3fdbc5c7191ec5b8412da54ea45616c4125775dba29930c36a12522ff3af5eb628d2fcef30b887114ab5908fba3ace7b7c71b101ab1fe311653997a50de08b7a3e92d50eeba2064e9162c13eee23b9fad9ec00bd62e62835745547afeb8fc1fa5af5a8be060bab8e4e2fa2664f62c8956ad4d20dd27932e57aa44eac7a86b867c4ff6e049981109c84585bdb50c31e6064dc4c592cb1796ab059849db5698e1956c38f0e07257fbadda137b57f03b8dbd3d6d5e4c06474bde194cfb7d671ca3d2f99b827af954cbf0c0dfff8cd63af75f7e01b6630798a00cc01676b0cdaff74cb270c216282906931a7daf29a4ef8034407e186f2f9dbeac1f712e8bb7b1a4b121e045e9547d15ef1ba1d8015f1d19a3be353f7a82a88c130352b8cfeaaaab871902fa5f68c852931b4a014e4fe3644861f276a6c17adbaffaa7cd23c223c4e54e2b85b46204b66a3c447b4db722e6a9dc0c61ce29407a4d246a2fe8386cdfe99732316026a2c632afe5084297\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 15\n# ps truncated\nct = 1427b2364dedf9b33b1cf70f8823b60a2686520f904e89247bc6b5b682170fd152554f862ca64234345bb83b118539eaa4c0b7fc46e21d2fbc7eb5bb26ade5464a7723f8d44c8d0a88e1d1d7fca1717adca7207b55c5b52457c8aa2c6d9a19e07e04ca09ac39301512aa66d61c5363898138d1f390af651cf230fdd8cc691d3c69dece67e4d9301b74b1cf6fe7aebe6626d49f47ea33e5861ba4c5bc0a24f506b4afc959e33733fef1ef7a207c29c610ceb9ae53f7080a84491bd12d609ed216445ee54315915b892561efdb1781150fe9c243af8800c7edb8466da8e4d0240c0f627ec2106326805cbdd845b30ac35dd46692ec964f6696adedf72948474255d50505acfc1f4be6f9b300708861f2b9f9796b0d488ffabd14f6750e67477c59a0abf21f066388b0cd1133c90dec0bfccf45f34f777748ca8687f3268c9b32d0552588df9fc496f29d7a9152d23b8b51203cf151c612fe183432ace03fba2fe5068d749463e50bfc09912220a618f650afe592e3bc4c7314e6d9a12aea44ac0b50d79c8b9393b0df70150af7da499a9c2d1ea3dce363305c21f3ece8f3880919bb57e764760ff7863c184c043be1c8de30b177e1bcd5cecb5e804d1ee96fc823f7cf2bc3159381c78a49879407191998ca759cf30eb503783f88ea157970ddc6ba7569e1362cbb99eb45b6578f142df5f1cbbcf2a713729c2a0117781f8509df\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 16\n# ps missing\nct = a4dfae8779a11c4254a59", @@ -8371,9 +8681,9 @@ static const char *kData299[] = { "59cd5cb75cbbc743f89b535898898ad298571\nresult = valid\n\n[d = 008777a7f9e0311bd8a049b874396230be6d1fc90ff4985e251641991f019ceb1914c2d911cc1b71f5f302cc3a4d094db7e9c1a544a07643d718c333434b76c0dd90069a90e7f8a6aae688c8d3d909b0c92a025669f07b55c99cd07757b58bce335fc9799f581eae4acf614fb15f07ce51c1b7fbe74e280238ca9a84cbe292534d10fb64421996652f7300c872f00f7ccbade7b6afba2e833be20b55759b112fde52452c481597cdd9681e9fbed850b16fda2cc86bdb0028150e10688cc8383ff58c072e02a86553ba2bfc07092d1d53c7d10100bba00464b776a07367b8a5f2754d3eb5236e811fd8100f6a9e14fc07bb0154de227216f22c434b07c179d69c754a87505ed6cdd1cb043f21629204fe4671248c4e70d28dd7a5e62fe9cfd08b15a0bf5754158c55bf271bec4963923c06964868c00b70f7f87ea54e2b188d3605477ccfa2f658a6298d627f56ae95131fa0e12c536b8afe962f8daf4b9e66bdab867e3809d80c5334421d14305e3fba5710beebd3f21012dfeb946644b1af604aeecb93efe288f047c076acf57981e0b0e873fbfdfb4a49579a7c1a8b2c945341e876027e93c213f37b6c09e1252488d31436dc62a9924c4d92fccb1f51296907e2faba674dd7ab7e3d73761a7c622bdbdabd45f02cdc66f0d6400c6b45875ac720fe045ac86a8e8324770aba7b9d7bbe49b98a819925ab8d200285ef0e927d55]\n[e = 010001]\n[keysize = 4096]\n[n = 00b9343dd96ed558cd9a99740fb5de19a5ca4c740e108bcdae2d6afd8d5091c09eed87021fa1bd291f6c23fd6657fefd470fa672ab568e41f5e37bf1b38241ad62f77630b644cd77be7db87d49ae13a151fe992198fa98d790099fabf71e50853482f321c833e5c7f76679faa9ce2e4ed7acdeef98944976b9b5a06fcc00c7e36a4d1047556587243903b678a3085eded3a17e7a7e691966a0a236ccc929af83ee37a78372d52cd9be2f79cea18bb20fccb59335b09b7d4e65b93f8f06ac983e521a341f38019f960b80661f9c4eaa7aac7c90019aff2c1ed85571ecfa86c4618831739d78af3af432e7548674daf1a781601ec1ecefa91fecf98fa5113de67f029e01fce0870fae71cbde1aa2b25cb958ef78ada540e054551be75c9659834d2fb458b20be0c4dfcfd02f5c69ade32a6301656d83f7ec8b88a610a9a4f5ab2c1e60fc8a096848658a1cab992cdc9954e29341cdbd4184909e6079d322b8a76eda67d6b5ca878d850d6c3ea2fff7119c1aa313d03797494f11b54cd36e4a8b22572b0088251f9fb3ed1531a4e70549054373bd4e0a17a0230d104c3f666ebf2d14d2060405b846202d2e4a44adc708b18749b75235d91ef786ef9b861ac1262dad728a397cb9e299bb64733d43aa2d21477c726bfd5993804578ac0533467af9a8ee31d402bcac633484e5445ed3b1a74d2a95feca1c4767d4cc7c150765558481]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100b9343dd96ed558cd9a99740fb5de19a5ca4c740e108bcdae2d6afd8d5091c09eed87021fa1bd291f6c23fd6657fefd470fa672ab568e41f5e37bf1b38241ad62f77630b644cd77be7db87d49ae13a151fe992198fa98d790099fabf71e50853482f321c833e5c7f76679faa9ce2e4ed7acdeef98944976b9b5a06fcc00c7e36a4d1047556587243903b678a3085eded3a17e7a7e691966a0a236ccc929af83ee37a78372d52cd9be2f79cea18bb20fccb59335b09b7d4e65b93f8f06ac983e521a341f38019f960b80661f9c4eaa7aac7c90019aff2c1ed85571ecfa86c4618831739d78af3af432e7548674daf1a781601ec1ecefa91fecf98fa5113de67f029e01fce0870fae71cbde1aa2b25cb958ef78ada540e054551be75c9659834d2fb458b20be0c4dfcfd02f5c69ade32a6301656d83f7ec8b88a610a9a4f5ab2c1e60fc8a096848658a1cab992cdc9954e29341cdbd4184909e6079d322b8a76eda67d6b5ca878d850d6c3ea2fff7119c1aa313d03797494f11b54cd36e4a8b22572b0088251f9fb3ed1531a4e70549054373bd4e0a17a0230d104c3f666ebf2d14d2060405b846202d2e4a44adc708b18749b75235d91ef786ef9b861ac1262dad728a397cb9e299bb64733d43aa2d21477c726bfd5993804578ac0533467af9a8ee31d402bcac633484e5445ed3b1a74d2a95feca1c4767d4cc7c150765558481020301000102820201008777a7f9e0311bd8a049b874396230be6d1fc90ff4985e251641991f019ceb1914c2d911cc1b71f5f302cc3a4d094db7e9c1a544a07643d718c333434b76c0dd90069a90e7f8a6aae688c8d3d909b0c92a025669f07b55c99cd07757b58bce335fc9799f581eae4acf614fb15f07ce51c1b7fbe74e280238ca9a84cbe292534d10fb64421996652f7300c872f00f7ccbade7b6afba2e833be20b55759b112fde52452c481597cdd9681e9fbed850b16fda2cc86bdb0028150e10688cc8383ff58c072e02a86553ba2bfc07092d1d53c7d10100bba00464b776a07367b8a5f2754d3eb5236e811fd8100f6a9e14fc07bb0154de227216f22c434b07c179d69c754a87505ed6cdd1cb043f21629204fe4671248c4e70d28dd7a5e62fe9cfd08b15a0bf5754158c55bf271bec4963923c06964868c00b70f7f87ea54e2b188d3605477ccfa2f658a6298d627f56ae95131fa0e12c536b8afe962f8daf4b9e66bdab867e3809d80c5334421d14305e3fba5710beebd3f21012dfeb946644b1af604aeecb93efe288f047c076acf57981e0b0e873fbfdfb4a49579a7c1a8b2c945341e876027e93c213f37b6c09e1252488d31436dc62a9924c4d92fccb1f51296907e2faba674dd7ab7e3d73761a7c622bdbdabd45f02cdc66f0d6400c6b45875ac720fe045ac86a8e8324770aba7b9d7bbe49b98a819925ab8d200285ef0e927d550282010100fcccd1ad86a93b05a2cba0cb9ce824924f596306841af3405169ef836d6bd96c57dd26ce2d01e46ef190871346e1486cdb3c11dc05b56e85c2a8fc5e1ff15ac223e033ff80aa03a3c0464636796e76865f1f3e4d255d7cf8d2e130da412a6508053a4a4b46bc091084cff4fa5ee007d9e48efcba6c4ddc4525f5f4a93e5771bf1a55699eb3c41eff562e529cd481aca601b7d4b4a7708869b7c3cbf79aeb2499a7845e0805d6f39e594f68fbc69f1e92f7488e57a8075a8f38c64db3fbe642bd8cdc48ba23ce019858adedd8c3fe56cc81e1b233e8f48a02175fa2919d4c16bc9003a3aece7f3b482745b6f767f137acf1bb6c673430440a3d17237768f235830282010100bb8c61e648015d9d08f8786e9236a5cb110048766ee1d43a8599b4457853bd67d168d8d2c076ce441343dfe0af9b219bd22457e0c431304dafeb78e00788992114be182aac566de4a788be21a91c78fc6cb214b6b464960bd4a257ed8873e94d94a81f83acae7f96eaf5e3ea0937569411b1dbb1421859c7933021d54f2b6001af99821a9e5f7bde3d396ed12e652021a0f80a66242ce8bdbd1d558c00475241b754eafd8d2d3217c7179d44071f1fdf3fb198a6addbdf14edfdc7960c0aef6668f6912c52df53f250ce93fe4209db1813e8f07160f5c117ee162110ff21f35227f2cec2c7f586a6e352b58a0900ec91daa3f05ab1ebff2dd00ff945534042ab0282010076bbc85b851ce4e0cfc66e1e53f2e0826b8c632b434ed9234359cb29e271be2bd9d4c00e242b785bf74f5771e15f9c41ac72b93caaddbd2c4bf24c9df4c8ca44d6cecdfd5a340003a022218622609480a61aa98b585a618108a2c5ec2ca139d49b87f62f06e8f824ef0c31568acb1444edc98ec00c70415da4e7b162f029e7fdc6e388f9061bbe275515eaad484e2385d0d6c3ab99dd0be5036f8dd41cca0665b8bd3de0ecc539a50cf3742e94ea5554d79a1768ea3d91f624c756e58b116a15571c7b7819aaff2acbb3dd3b6b4a81000a9cb3b317de0b17d25c93a16accbafd1372f224ff4dd8cd19ccef93a219347a210b536de1a02dc4d54e91d4dad0affb028201004ca5375123f622eacd42b5fd0216013576d235cae8cfb3aae2f488bea74919abb6e1f15257c375d24e493bd21811feef2e371a0eca3f0bed83ca6890ada37e690d900e524a31dc2148f2523971622873887c5288c43a2333dc872805f3f0e2d488bf1879f8752bc1626e70e131390351e9d554e2210fd0890636f26cb93911b83eaa2e887056b749809ddb12f3b1f22aac1d122ae1f7d479ce3291c6704ab56c13df4955ab7f5fec65b9d9d476509af6e291d2bfb3679ac873e675cd754876c3d47b87a2a48f8e40061416591f65e5baf650090b5cc3b250f444e8e8884bb8a3c79dac2fe006102c5dd46c4a68198f949fd4c5a25afa064413b6a37958677797028201007e3bc25b06f642f98a9eee091de958de87ac8252fec117dd7c6e873cfeffbb012320dded22e3640689346997a13b8fb96da25bd890af6e651f4884d9051e24c9ead42f096329b2692acd42374d8225a7b61159310a77dcbdc4ad809143e6d684890965cf485d0e805286408bbdd353790161472c7b0d2c309e897785c26662e27ec620ac7a496424410049c0848a2af34c44a22f986ae8a98891dde90219a4bbb79766be3101ffdde6c36a13dad1355dc41de41bcd282b29a171bac3196df7f18522d7776a947ac21658fcac2d91363ace9681184b2db52841c7b1cb12261997fc198914ed73a726fadf94faaa5b91a8cc1fb30dc0dc023769df5e76eddbbdd6]\n\n# tcId = 65\n# edge case for montgomery reduction with special primes\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = 229f09dfdf4edef7a8cfa04fbb1437e22b814eea8bb7b7e81094c94ffa8aac13d2a9cd1b51c0dee1bea82d037034bc03105041e86eec10abe3b74313cec27c1e046a5d0bc57bce9a5171bd9bfe3217ca5995eb0", "825295da331ebdc096c0b73\nresult = valid\n\n", }; -static const size_t kLen300 = 50963; +static const size_t kLen305 = 50963; -static const char *kData300[] = { +static const char *kData305[] = { "# Imported from Wycheproof's rsa_pss_2048_sha1_mgf1_20_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e5]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 1\nmsg = \nresult = acceptable\nsig = 1d5a9bb49cb1f5c2862f36e451dce7fc607f3d302eb9a9fbea5b673a29fa9023308381262c538cb53910b5773a7a44ff465828bdfccf8a7a4ef902e945dd5f6226ffb7d5b05f2335e5762c5aceff71c8408150959c1780cc9c22fccebd3405e81f1bc16d276c07e4a545ddb1aadeb751b571d22f3e4bc4e02020eec5901a1ebc04415e9ddfe967fbe4ec7166923aa095b9fc7a81fc21ba37b5220a973fc5f32fdb8e0841ed321450248402a159d2c08e4a72b780310d420a6e499c2b34b0bd6fe0d1d0e1a7810563324ad8e778720755eb00ac6e28b204ff5fbb01fcfc91e8f1d2f113a5f32843119f5e06beec0fe94e5bfd0ccdd7f322bdab7b05c4f83c0504\nflags = WeakHash\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 01e9b1d4f36d040a553ee12afb76a36d04c6c5a0f3df84ae22422e8157e57b1c43a7bdaade30ae73073632a4679973ec10bcbb3016f6e20c9cad29a14f96052507819e90cf56ba50c97df5e5001c7f94817ed29f7500f839eb415ef3182aedb2484bace43cd2fcaaa6f5dbc4b6491791592f084b2a14ab303e89deb28a68c72b0b630ae85becb67f2b722f23a0f321f3a7496b251895111640452932579aa53ffb8f8fb4ffd331fa48c6f1e8e152ce7e04cfec941cd96dcf7a885a3022e426d87e8111336f1166878dcf8d190ffb16a574fea9eb6d7e270e025c6d98817e75c968f78c4750be018f74968d7f3e5cb9d6f47d5aafc99c85c83af7175c73091ae8\nflags = WeakHash\n\n# tcId = 3\nmsg = 54657374\nresult = acceptable\nsig = ac3c332b52f06ba2190c6ee312c32321ac377019c35453537a393bcf0c1e6f3697f770ccec092740100a7009cba20f86304108165d5de572df89c42423eabaf910619d555f7b27f7aca31861db0bca8357956466d3792fb6669c77b98bed3c721f71321548f8b4313e535eab5638b9e341f4bac6c9ca02bd07111da4e39f2cb8ed8ea5daced3ada8376ec8db27f6d619ad92e01fb49bb3e53ec3b84ca67b18c268db08ec28752b0c13f269a39fa700dac163b5b9439cd7a9883673335f2b7ecc0728ab38df178ce14479bf6a8aa1e24a433e41f9f217be5c0181245135d1e265e1ca1aa06dd6e853f5d1f144878e2f64461599cf88490285b52a79b744f25ec5\nflags = WeakHash\n\n# tcId = 4\nmsg = 313233343030\nresult = acceptable\nsig = 0bb9473d3a8cc4abd63c6f2ac13e278a9cd1dda844fdbd13e9b77cdd52c1b05ac59126e45d276777e8b1bc423cb261d29675988954c9ddc38bb9a67bec5e03e1e780915333dfe494dd8a4f0bfa0d748805885c389d6f7fb6f786c58d21a468b3589346d70e1153e29dcdb91dec8ac185501efea247bac7c63e3c546ed635e647097bae3b8ccb992701a75d209c439c5dbe8122da616a4e230bce08f541abff854fb93c87fdde0fb457c44b2783568bcbbfbba611d8e984410d360c4ec3732cb69426a94191d5a0cb33149b518ded86864706c723b27228d74836513191cebc790793e5809287b0279e7bc82f266d437d192e98975960d0014dd02e172b7fe251\nflags = WeakHash\n\n# tcId = 5\nmsg = 4d657373616765\nresult = acceptable\nsig = 1b92015bd34fcce819bcf75a6c38a05ae2b425f4b21802306c1af645d1197d2c84b84b24d453eccc44f578465b8100ad9d60ac4912c7aa4d5745a1acead176d8758f6abb532d874ba5407d9e3e399f2cd6166b9d3ad1745cd20ddbb584891879ebe71bfd4275d4c176c9da1e13903e42be68ff2a78d2da9324a8cfc7a8e2fd08307c0ee14288087196c840a0e2b3811d9e9bda6ec24bc86e7ca5e34b57969e3aac31388fd2e696528f7d5136bd44c122156a5147f05bc9b118d3a33ee6d7faecbb048290bb0d4719c25ba71741d7434d66fc4baba9b995dfbc56e3507cfc97aa2d67acfa1083e0ef58e6db6975b3bd6b10ddf1c13087d2bf546a931f0baa0cc6\nflags = WeakHash\n\n# tcId = 6\nmsg = 61\nresult = acceptable\nsig = ab8c1e95acc36ad6218e48f033835d15ec6bc7181552feb6dd6e128546917bac892f5b349a234d051a83ea6469e27189f2995302388337c2ffb3a746db17b157923bcf6e985ebd203a4e9a23697cf2925912ecadc3d3f68252e5e01e112db1829658b16ffe7188228921829ee59d575c6ad8299d76c7f5d6cb204b769854de0204087560465904c73ec3bbc1b47bbc98586f0ba17b99c43234d262b7f1e19fb2cdd20b92c322d6e498835b3ce8480eda172921b5a4707d5ccb662e1ee4b3b4c36b5b485a10aecf1b12449732018e594a734b68c8fad4a730b469d097c89c4121d4f6dce34be78f65591b673b1d0ee170cb3c1852ca22bd53b9b26b2fa19ff275\nflags = WeakHash\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 264dc979cdb293d180f15ef3183334d4940410c9639712910006c68e3766c3aba1dd95510d71e7d91d93e61128da456cb0d84c44552f33504bd2dae30699d372e394912a66c334e888873a949d58a3b7d7d43e76391ab0cc490e7c3afee6a5f3262b7d298919d64c5e7bb81cd7bf8e612b9f6e266eb28316a7fd01e44b62100f4b462ba5b238115081536ad1f6a068d656d00000431afd1b6a5b57f43f27ca778c08a4f86f62ef84c73aa72b0c361c68345c10599ed731d6423c750462acfb469910a50aa2fcad3ef8c908633bd3fb0b2e7e8988f9be2ebd715333381c6506e0cdaba7691109cceb8ad5364fbc035c309a50912dbb670a8c255c287a9ba992f0\nflags = WeakHash\n\n# tcId = 8\nmsg = 383633323732373830\nresult = acceptable\nsig = 91d5f67dd4f93a6093adb8a7686be7e458f66c23e32464942f46193055c61c29db94eb12f96c918e1cbfcbcd2ed6f4ef6d271cb6def90375b1c07bb2d5e7c1c92425b16b2d8acfb87b8aececb874b7bc2ec9b2865f8882e0807db9ed481ed5fed0f3dca5b643686e70b4940af6d086ed7fb91fc30b322ce9fda13ab70a7206feab152991415d50ae586e8a9229a5d2ebdd1cfe56c131fb832f1dc39bd9fce7b73b190832b4052f5dd34cffcb39f5b0d527db2322d292427bba611ccaf8afd7cef8878337f1a8b2bc0f5ac08497eecc95b23ba171707795fdf5397f94ead6b8569b4871aeef1052fb4e895bad9f17462c1dfd712950631f625503d1336e850e6f\nflags = WeakHash\n\n# tcId = 9\nmsg = 36313639333935313337\nresult = acceptable\nsig = 500ba4952945df532e565c9803ee08eae2b7b69e02199cdc510184fab3f22613f4a005fb425bcff96e25ba4f66a849abbd299f2ea7d530b263bab4899ee3b6121b88b1f2ba0186867fcacf686a71fdba46c2e5379167603bd88a9e1a20f5211420a1737a77c40fce3a7722115682882ba04fb521088750178f3b665921011209f4046b9981b79696cb4193fe56783ea96ffea62fd3f5945e4790ed1a1059b5f81124e52dfdae58e6814a1ea91851c045d71960600a2a94db05f40fdcc61b90e846e563122e6fff4ad1ba74394af7fc13ec46fd7befe8825abb40b365e8ecec7131769ae3871e806eff4f6092802a8edaa8cc47ac8053c8fefca21648abcab60f\nflags = WeakHash\n\n# tcId = 10\nmsg = 333036353331303631\nresult = acceptable\nsig = 3296d2cbabc9257d91b75b51b994dfb8f777fd2630801414c33d405860e3f75b8b08540952e4defba250d3946537774f93a8c88607c8d673a0a1c7161ea14c56b8d3e2d17862e932146f29937b0084295f16bda9f6c555af0e26f7ddd223af6118c795463ac9b5be70bd413bbeda91539f05da157275c24269f039be88b3c3589e4cbc99746f3acf186b79bf27882ef2ef3edc0dc717ed2b94ed55177f99537a3261cf509852115652376261b090ef766cc68a99ec4ec7aa8ec6cab724b4eccae9805f300c48a076f0dd345b6018941bbe4fdbf94e548bdd6bdb6c62a358407ed3c84ff587ebb36ca82818fd82618c94bd355944547b09af94a03e68a3f07f94\nflags = WeakHash\n\n# tcId = 11\nmsg = 38353939363734353639\nresult = acceptable\nsig = 97e5859c080f776faa13039db19d49eaf2a16b048246c939ef875fdb4e28eb2bf4ee3c114b2d99b20753d1082061fc4935429a92aad3d486718657a8ca2141873e69668edd749f99f1cd757dfe7cc2db297cf1bcaa1f82c3cd92482f4dca6ca66b0c28276c32c4c2864c8e87e8c42b4008a", "87a4100523130c8e4bb35b7fa7d1af7ea6097da7f7ae8372d5aeda20b4a4ba3a6c93e1b77b17a08328a27d975ccfa6d1b9010b34ccc12ebc0c3d4e6bb14c1b655a15b7f68604068c9c493f561017a1aaec7c84d1a24d9ef97aa683a240abd141a55daa3c210174e731daff63eb39ac3aab1a79b9a0f9178a7c374f0bd0148e4ffd8c9e17f2dc7ef8fb20e3f5f1043\nflags = WeakHash\n\n# tcId = 12\nmsg = 3135393637383036353431\nresult = acceptable\nsig = 8357bf730c668cf632cf2b1b5f9f9f3837061a1de0b86906debecd43077bd132b6c6a078b35b6878a07a8d0a84ceb45c93cf8e56e21e7cfc095107412672b58faeea7cdba71765101890b12a92af31d12f6370529215c299469ebfdcaa2055d2c2261bfce7329977f13fceb51d445b56a57a4e34e7c6abcbd7ecd13af0d92a6300ccaf70e3ae8a827380c58bfe4f381ab085784545d6b23ebf896ea8c453af1b498784025c9e9eb01e10e9d1e22eaf2c77902b64435be4c54b9f3d74b63482e69cf751f522f5a3ff59a35ccec8e612321495a727fdabe0891265cb45a18c99846aec27bcebdd79195f65e05a4d5799a333219589c61e1aaa93547974138746fa\nflags = WeakHash\n\n# tcId = 13\nmsg = 333237303833383939\nresult = acceptable\nsig = 46f2507d0817c14753ed5d4a9fa6c98cbcf7483f237ecf5d26d76e6522e940215841da07f3f20d4af6d8a35e182617150115063c1e1dc897b67ade6b6263700f5420a7f6595ce620f90ce6b8393ff006fe4f0825dee82ddca8457ef74d78e3352f05ecce196a1bf4d45f018317a6a42c59a2f2876f95e405d65c4bc5f0380d0e0956766f89b15850fbf736cb042921e4589721b5ad9abb6213bfecf8eab2ed077c6cf33be26e8b9fc5f95adc045efff8658231e28fd595701531e8bc3c74b42f12271f077e08cf9386d5b611bd88218e42ae757eab5c0c9b974c2bc17da12c8babad3eefda8a16a56ce3431da35460b1ad1df2b2e172cdfc006512e1a4ac866f\nflags = WeakHash\n\n# tcId = 14\nmsg = 34363035383435363034\nresult = acceptable\nsig = 0c3b3f5120fb9c7dc3a715498786aae8e2dfe5d63f54cf805d02bafd36c806c83d0a93af5d1eda293f4ffe6d0ab218648a82ad12dd328a60f6c632dbf9f6e5e504fd08b8b84d8d58000a2d2a9f9a966ee898d9cb75a69c930b260f6dba3a0301ae876e212d4fb971d819c20cb07aaf0fcdbc152765398173dc0d7229ebcd8a9aaddff45d118bf63ab397adb39af91203e8fa5a7d28f2937ff7cf31ae90dd9efc9f2549bf6cbcc3c65aaf78a93c76007bee2720930e2a5331335983943a6d93570b11615165196f9d7ddadf805d443021580514d921f439891446c1fb1dd740794bbd6decb017acc238a81ceab36071be58551557b09643cd2bd7be6e69b77aa8\nflags = WeakHash\n\n# tcId = 15\nmsg = 3131313738363634323032\nresult = acceptable\nsig = 94b777215d1ae19f959d046fc02fde3e113e15bdadb1d792c744f217200e275d3954b798b43e5ee382877420144087be340e11d2879c10af6376437b5a8f62634fa19b9338360a318c95c9421d90f60337634f3a03a2260796d8928e056aa7759cb13f3bbc72954f9c9da7eab1d3564050e4267ced557e3684e5090cef96f585153db8c732b78b4f7df59db219d7aeac42d4f20b1dc9825171bbebc2712e722ed6fed12dfc72dccb1e9a2c6d93e4c86641e1dfe16d6d43629dee7d80eba8e9639ea594ffa206cf3f0e561b2953a290d8cd70bd0ccbef64b32bd66b294f1fb1ec97bad0e096e5e200e5812fe025333cedd7d1ec8c111b28beb4a402f5cabf2f99\nflags = WeakHash\n\n# tcId = 16\nmsg = 383035343535343634\nresult = acceptable\nsig = 819f624b0dfe6822d3923ac1e5c75f79e1da3dfbc13b332874d4052eebb30f9b2a09ecf75f1122990c37367d75e4ec510f4645b9f41fe4f2f9805a981ea81ce932127613126caf8e04b9d194a927b720b24cd9f1721e33d121c59930ec48a5f5574f9aa8c6bafb5c8ccf9dddb2dbb418d9884ecb4a931a9265360dac7475de7e4cc795ce7a586c7d476ba470dda7c03b3f1ab69d9372d7cff3422306edd8fe8f6dd745596f1fcacfb99914470c13e752bfaadce632fe4124d6ccd80eebf87a6982a998aa4a0892c270ae6de0b9bcbfbc9cbd96dff2e2f93f80d9370fa2a015e13d0376b4d9dcbdedea29ba9b616a83261ccf6ec56079ff2ec93d72989cf93454\nflags = WeakHash\n\n# tcId = 17\nmsg = 32373335323330353531\nresult = acceptable\nsig = 118d4dcfebd82ea74b28041bd8bf5f969d04e160e2b8ab2fbbe1c2a1673cdd4fa7d801aa4bc23f9898bc0dcb240e8a3ede076f911ffeb2749c03d21923055f8878aeed88563dbbc45422b658f8647dc868885c92015df4d5925f3e6d75e85754b7f002374d4583ed310bc991cad2812fd29d0906c4dea5c52921fe2184880c5e8ca51b06bc5654edd5e0e72e20922a9c9b2fcd068c700ec82878b6ac04a56becd76fbbe9fd4abfa9348756f983bfa92539424d972d764e7813bbbd34bb369ec147fcb1a94e8602e359f1ef312725f2bb81c04932c1c4ebebfa09e3165d0287a85a22f0898d6385538066246ade07cb51580db1fcca86afad06fe2f9695c2f8fd\nflags = WeakHash\n\n# tcId = 18\nmsg = 31323238343430383037\nresult = acceptable\nsig = 53711344088547e405b1e3f7605e44f9b7b6735d5d3c32ee0e408fe7ec9ccf58998487443f66d4edc0020dba88efdef9ead403a2874b2892054e391f61c1b36e490a8623868ea3e3eeb07eb6a2de96503b93f4fb534225072c6bf90837c029a1f5c2a5d8194df2e203fb0c2aaeea506767952897d900d9fb20c8cf4f7b68a97a5278d7aaa6e383f0cc8d2b53bb748ab6b0dc5fb1ce82b08aa986449b3c3137a5965985d0cd62b7a1a11b31a498669a0b3072692eed9a1393e42d7e61b90226acc62b284ec550c0813c4afa25a1b6fc103cb80cf429944b557e1334e81c1173df4a86ab107cd8ec6c75392cc7cb11c9212f15ee7e18aa0d27006af5c5ede7b0e6\nflags = WeakHash\n\n# tcId = 19\nmsg = 353131363538393837\nresult = acceptable\nsig = 972ab5dfd3aa92ef9ff40026764716784c87154f12967ed3f02adee5f73fe9a0594b22599e829bcdaeb00217a12218dadf06c9940aaf9c02c75cb149a89e258a548894bf4762100ba17bc8bc60a7a0d05307b7133678dba4babf660d12418659cea25c9f982bdb9b1d2300fdd9d144a25d4f150e54ca7ca344dde9e9e1ba5783c2cb606bbc86341ab9344a0840dc515dd1d589bede2e3f483b20180f08695cca0e9e1cefc68b6bfc3527e48ff0260a3f696c0680364bd4b6830d675ec4986638e976b83cb1f56ad5fe705d5dee0c0c5eb29bd15a24f265965000ebcee5a8551ad8ef74b40592477255169bda56dc8f35fafaf796fbfa44d366033e15acfe048b\nflags = WeakHash\n\n# tcId = 20\nmsg = 36383435383536373234\nresult = acceptable\nsig = 7a7cdead06ba212e8dd6b446f911cf37b40c5ac7f9c817125c0d5ee3cde49ef336b87eb94f7d8a93e1d9fd0efeb77e724769b27d6f63ba91f7219f23e085a3433e4d69ca8f8e420534f554c69a7221d70e57f8a8246b24b5986716c50da4942a1720e51b3ab87efdad42e02cac254be2673d5bfa4669e764defb401121a25055993dc5ebba22176834b4a2f9a8a3a34d35ae2c344e9a84675d94ef8f56b16d848d15851c058ae64df8a404eee09b63bb64fe017c206a94dbd7b274440f04fe07d22d079c2d2a8686f247eb983a0ee625b2d4b9fdd4d9ade53712f0d13cf1ff1aac03d09f80335bf9364327a89171a8a51f4219f86646be96f0d96c6cb27f43d3\nflags = WeakHash\n\n# tcId = 21\nmsg = 32373736323939313435\nresult = acceptable\nsig = bb15915502ad77b3a080eed70b444b753496450a4114d435d2aee9fbf1b345074fe85c23ad4ef52603b3a8a077d5024e3d56dd620169b6dc0ff7437fe1a520c293d78faa77258e8c8632100e0644f469f0a3250a53483e9a2f8dab0bdaead5df41dd1bba91dd01d79eda1df838dd4567d04526b0e1fcb5d07cc628f4ff62fecb65d2386af638ba6d0e594518699c5685033635af6cb302d07bf39a1dc5b50ede06baacafad9a2ee9ac48bf88c11329d2be62d565b0312813fc81c9e3cd243aacaa6c11dccbb6941e2aba6f93524b0140f30987168036b13810c10f65f0acc443f7df7009c238a8d5bfab00116f1adcb4cbf55c484239689404788bd29eb787f8\nflags = WeakHash\n\n# tcId = 22\nmsg = 32383739323832383334\nresult = acceptable\nsig = 4fe965e8b685d1eff38f26261f5c168b77560de5f2d7243a33c3c1c7f267d7b60e9a61444b6cf0a71caa18ca81f38960f45ef29586910c240c93820551f3da5e15180684807faa5d9fd361325b9d39c7b8e805abd75b69af4d020345bcda266a15540b32ccd28e57f7063edc228fbc815f1ab965fa542ed679c43f7b4949f7448e6882bc36a8f10412dc0e828b33ad4e09a5c72d3730143520e4eb625356615bf49e51ccebe904af7c6397785de0f20371689f2975666524103bdbb4bf27f1e202018aca8003de615f073773cca7e647e71ee51d97cc30356a17b50aa3c47a74e133aabba4ae41750786a9b1e584e319836c3c7e7c8c2eb2ce6604323856b399\nflags = WeakHash\n\n# tcId = 23\nmsg = 363635373637393733\nresult = acceptable\nsig = 9e12dc1ec88182f9462a795d710dd07447e79a4e035b97c16e351c4b5d4e98459b8e5a52e2f51dcc1edc4c8943863fa9abc8fbd75ee2f47691a58428034021c6d3323191a5a5fdb2da2ac1b2a149b8d1025576309e21410c9400cbd3b67d2ac4d4af6f57c6380fda2817c263984795934b48844f5ea4761402354112a2a8e2c06dccea0e535a06b6b1274a42f218b1d442c2c8347e7fd168100ef658c63c790e6bdfad3f4e57a536e2ce181a976dee1d605cee947bf5b228f7c540c2c9c9f2caa0461bf737e32f5454f52cf5300b23e8a9921d5e4a380eb836b645515c0c71ea803b730d0667dba49be3825c7a5f49afb7e989c85246ceec236c3a0eb43ed8be\nflags = WeakHash\n\n# tcId = 24\nmsg = 373436353535373037\nresult = acceptable\nsig = 3f55470e612c832eea00cd738b6152bd03d88c3abda95ccc2ed6eb6aa5c0e4d858982a548d25914eac7649c53d2169da5ad4f09bb64d6290c913d346424d189bc2414ed50dd2bdcfe3e9e80a992c6611ec86b537a8b5cd92985cb6226a0367c2ff20d2859c21882fafb2b9c47f48fd19cfa14f793e0fff45d06a2e886253a209ed95030da05a1c6ea35d2993c600491b493ded76e952acb0442c52760fbb1f735957a1ab30fefea6e7b596a7aa4ea479ba6a6aeb866ce6caf38cb7c6338b2993213c39c98b0cdd6e46c9702069b85a8c7e050c1079b11fd209fde0cc58d37beec46db4c8c95b402c45b2f5b7906f1ef19f2a84dbb8e54bd5d5dd39a532ed6e37\nflags = WeakHash\n\n# tcId = 25\nmsg = 39383734313231353838\nresult = acceptable\nsig = 08823a3eefc4d13f801419b374a5d8cd51f9281e124deb0415250e9e353e3a2f974a83347ca09d3b5", "ec24ec94048b096a4b11dfac52f2480b522f70eb4eeeed6f84941bc37d1dd1d82d7b9883beef1a6cdcdc5b3f6024d9299b10d7697c0325e2c75764f225cdf5fed483ac300a489b69536acc9fc90d581dfa10d67056b3ef9b05e09aa8dfd3d688ec4d63f483c301a44934bba1841860948c130d6353e7d74c9ca9e764c44e3b6fb1665afd38b6a7df8892d90a0d5483dfaec6270084ad76aa50f38e34389f891fa6455ed9f3cbacc422266f6ca2b10aea5c3caf83035c06833cd7bbbba83dadfb28807f7b3d7f4ac6e9025a47217c3dd1dfe9426aae6175f\nflags = WeakHash\n\n# tcId = 26\nmsg = 32363032333032333730\nresult = acceptable\nsig = bb6c055b3f55671f0ce85c5641b970b5ca0dd1f1b8978b915c8e36390700f6bfc765dc6b1694625672f70c0bdc97517d81cca9190ac4bc9eb5105df3457f48144ab9dcc049ae54f28123af0204176685ef6c2d71b0e618389400e18e90fd1dfe65cde88b628fdc410631ecae8d64b86da329228ce4c99fcf572e77e3ea366ce6d33d1401e250c75a329c71c7f5363a95cfde27bc8cf010bef57aacbd44c60a4d5b7aea41df9b9d59efa0cb6cd343b3c95c7acbd84d77873a5775c8757c585d665cfae9bf10095fe4f979b5866b6fb393b09890e118a35ae8a17f7eb8f60dd6e4954010ba903e69f4cdc63880bb24c3019acc596e6028b5f1aa86cc16d6f9720b\nflags = WeakHash\n\n# tcId = 27\nmsg = 33373236363131363038\nresult = acceptable\nsig = 80ac097d00555c8f6ac34f3ea96570432283b373bfbfc327e5e1f88b9b25d8dccd61d1064a944a10418ffb863ca2eee28182d046ea819b776e00a6fd62836aa3f334aaf7d14897971782a8e557c53314a3da16f3bf09959c139abf42c95a943e8f736fe6ac47aac2c4453d2a7091214e9d6c81098f39907d001b4cdaef6a66b426b571105a94331349d0c4d456263e090c0ed01ad2195ca0e7affd36d0f559cdf12c8c8128c7cf1a8aebaef6154b4bf8e3bd8db789eab080b14b45b10527e800452fbe2f20345cb41afae4f35530936c1b99137a3370f4f1c9eccfa81bfa3749fec4b1b0672b50e970c621ba0a66d1e775bb4df0674f587c938a29176c603318\nflags = WeakHash\n\n# tcId = 28\nmsg = 37333434363334343235\nresult = acceptable\nsig = 669f3256203b4ffe73ec01c2d7d120ab9c02bab82ac75495dcfa24db2f8e79970673d4790da772f4b16b14f81047086034b3ad927196a48390774aefe0d277ff466798d3497c0e108d51476945e4c324d32145af5d8cafe88bfd6a4b52c8e033ab4b95bc5b5c3451808f019b39285efd4feb6c21708b00aa5bc781afa87fd7475cad673833617159e75051646064d81ed42044791c27e37eec421893fd371d7cd96b462c158560545df3f5862fe97958c9974c9332b46d894486e97c84528a1f55a3d9add429cd7c1a05fb582affc12fa3aeee980a93b8168f284d7f95faa2ddf137e445d2c5658b89a2a230a9a640bbee40665c2bede3f16b986c72ad15b4f2\nflags = WeakHash\n\n# tcId = 29\nmsg = 39313032343039313337\nresult = acceptable\nsig = 50191cd6481555054231eb25b7d44f374052a228036f1e796c2d923c9df9bfd2f881620870ee4d7dffa4637e570d6055345c87b61a2c8f4f3b536d89cb0379883c99fa246e3ae9c6a157770767bb018d702382840e5125ea59bb6367f98c070327d30bc4e17c40b465fb5314e59692527d792c9155f5f1c2d9f4061a3b784741788d92d761e1a3c553320b4165c864e874f24664de3dc6b572dbbd4fdc495431de288389c2690bcf56482632ee34b638aa902f5ea808933aeace4eefbd2b6ef54b47cf2afe586c20bf015e782d5ab952bf7696268467a6beb2f2506cbcbec919674fc785474ee0608c43980f64987ec0b75e8041871ed9a2f99bf4623504a9d5\nflags = WeakHash\n\n# tcId = 30\nmsg = 33383239383138363835\nresult = acceptable\nsig = 55a3be3e5c6c1bb472feb54e2154aef10c8880195183860a3c19dc2f0d9f2e7473b90bb2a9ecdb1a8b144ee27c60ed7ea25838bf6ecd60c2c5dae9213439a9ee8a7a49e970eef3cdbd86f0b259d7ad598230f43e2a5ac0a0f68f947cbded0d20e7a768fca530f3dac41515ec9ca79167de3d800c8bf547163b035a0f3f45c371d53969ebb6d14e5850bab303dbfcf86092b47d41582ede460bf9920c8eee792187d1da134945046d28af67c433fb802f09a6bfa946a8aadba2ae9f89afb530540cbd22960126e6e858be58e6372903698c644253cb5ff72c493b35caa4407d381f96b304b0993ce08b7b0c692c0bb7936f743666db5aebe2afc2c67e3b256fec\nflags = WeakHash\n\n# tcId = 31\nmsg = 31333332313433383039\nresult = acceptable\nsig = b6fd6d2d4ebe5860470aec5e25bbbb02d67d46d960008311d1dbfff3b85048cef40642362104e8e544b914b9974eb53ff1cc12cb8b0fd5b8a924e96ad982ccafc1a80092586adbd2905250452e38b342f7921cfc82623ed499742b2fb0b90d1b5285bad2fa03ab82468488356605b5b7693335e8dcf983f639d82c3168020e27a7e0d06b2af184eb96618ce942c99b49bfcc27a4b6b47c5c07865c5b2eafe30c6bba2d9a97818aa0eb5d2288018103668f892e8bf5ef1837521cd2bd41b5b8f6a954f5c4a50de874b8e00784a5546cc9b7ce8de2ff776749b0027b37158cd5b11b440a52a1820b7950fa685bb43505e1d35312a6fdcbecdbe947672dc2be74a1\nflags = WeakHash\n\n# tcId = 32\nmsg = 34343435383035313539\nresult = acceptable\nsig = 7fc54d8108368eef19f5877275d07e871a3251cca71c63cafb46808748cce240b8eb95a1f218b77954edd2ab8768e3fcaa8c8d3e9b7d678c0d44f9731d5a58f6ac5f3643187bf88ba6023301200936d9414517f1b13ac2afc01d8cb8e011631109f2e8eb66b61b7110c273e26c2066e9384732b5d978c0b2d6a9f0227533e092373fe9d8c2dc33f8253c13aa5730b3f792dd66c6b6b2be2dc5723a470d8da15c79286d1842c5cea67eaa47b906c4f034d1587610d9fa02cb7241364f8862458feb6d8fff98255b4c81b69c248d5f5dd721ee477b1f7341c73808b880a88f8425dff9c27c2bd0140a61b8c64d8dae15c4359a918de42c8a778b8b8e352b624291\nflags = WeakHash\n\n# tcId = 33\nmsg = 39373637303232323239\nresult = acceptable\nsig = 039ca79f8bcf17374bde9dca5b7615b809ac8d49241a48b118c18cbdd4e3fc43c2e3792b73d403062ce800f26955125b7b15beb60a6447710082c6c6bf80d24dbb417a58ab934160b18883ba64f29b461f6f76f833ebd16c38f7664976aaec1521ab6a567b34283a98b8556b4fd346b050ed4b1756c1228f891172a634444779e26798476d481e416e1180aa1709f885fe5c6f091466aba6287f727f26d086618ebbcc2c020a001ad8b24d2ad0dac784456e162d06030567187c25f2e2a023e30decc076eaca92d2c82042dd077abfb788fa03a0daab9714db415822501d99f89600f8d677faa726aa43d2314645b2320588b4cad7208b2fd12d7f99fc37d809\nflags = WeakHash\n\n# tcId = 34\nmsg = 3130373838393031373235\nresult = acceptable\nsig = 907f826f39412c22974469bbb28f049d8404b9397bbb86322c742872d8dc008bd199ec7e891c1a799da60ef20c9dd7573ba969761f5d812f72e889af855b833b5aa1cac338cf2a42d4e0a9d14cbc6fb004866aba01341e9dee8e2896df163996d78c4d30d8c68770e7c72eaf689cc49713c3eb479be8452c935aa44c48aecbb0d3f0646614d36750ef126036828be76be580879961932a74f34bac9983fba0b970ac740f584152c5cbb4d6e3815e87701ada8d30a501abdb62ab173aa1a7a3199ca27cfb179895132089c038e40a273be45b471a1a1f70e7d176b7424e852b3f8c608193a7126588c5065cfc5a7117beb72f73ea8a836c8a15f12eca67f84051\nflags = WeakHash\n\n# tcId = 35\nmsg = 38323137333338363331\nresult = acceptable\nsig = 7b786c0a1baaf52fb84459e92afaf038bfe997c9a4d910303633fe2750b97448a15bb057b505683bc53ca4b18fff1dd90d1416bb8c0fb2c29550d7dda9c9a7f087386776fe65b1288c1f5508ba9468ed9328c9d6620e6882fc818c4ebe832df36dcb5d92837a711ea6f0d20b784235933d0c571e2d6061445ef5d1bc22d43378d2593b2a762114f687bcf59cadb4ecabf258d3e14a4bdea0b215828b2e7462439fcd4cb99518bb5d5dd9266d6dcd459bf36cf32cb8683067918a225c1685db5e52f9a5305cbe60a38df2babe901367eca57f9cfeee2955549ad9b99318b015ae19402a4dad7752e15b94b25b3414cc9be0c13421f31a41d0b1a3e43ce2c1d309\nflags = WeakHash\n\n# tcId = 36\nmsg = 31313438363037323135\nresult = acceptable\nsig = 642e3b94f8c5a0897b5787805c99b04af6c7a2ef47eae10ddcbf58e0f9411373920d1e4d769619f97182db36a9c38b6cd695a1d96daaa9c9288ddd4774f9e085dcb4829f1cd852239016dd23ceb1a493a1294e3d35104f48384acebfa0cbecdc114f445c63d8a1524e608d3f75172782b1c3169d5317902a6796688dd6b0112d0822a5c65a9ab31be84c939cecc4190dfc766cfd29b965ca02baccf2e3a68f13fa304b469c60d7eb49049d78dc1e0ed94daa273dfbde714024e62ba97cfc7b3d32fff034986518e0486124a6d6d33f40474182b2c235306c7d0d5088e7e733b0a895745a4bf4c187d2cdc9d6a8df7153b41f16305a15da7807c6bc69c313b4ca\nflags = WeakHash\n\n# tcId = 37\nmsg = 38303433333530303635\nresult = acceptable\nsig = 5ace1b9ce1f57901e8b8a90f033750f807e52361779bfd97c60f029cff8a70774c06781a2ec5d16116e0ea5170b99d0486eefafcff11f2780d7d04139e28e408a358b48ad55c0d62a357323d3ec759205df77c73f89e991f849114d8bfcfe4b6a4eafd86a9cf43500775b1cf4b4980c4f6eee17aef782eb7f94144ab1e7a0ab9c83ef2860c1429d4ac9174295f5aeeb6a3d5fd430807b9c2ec20e0e2cd1242e496e5470b733db52c857be5a65c604779d9e1bfa5a7bacbf2979f1e533278076f102b14efc321e905ae5285e50e3c9998036718b34cff35ea0c082735ea576acc2f18065c7e05df03d3fee209f1a8df7da5a07af3a4ab86e54edf85fe61343fef\nflags = WeakHash\n\n# tcId = 38\nmsg = 36363939343437303335\nresult = acceptable\nsig = 30a1a557fc9651e08c004b23a5fc256b13f9f9221082f867643dd707fd5513de72b52d13bd1b1b6fd090fd816beb486813419bd9f426f9d4e8ec7e5c86d4228e3bfb899287b2354d5b720db60b68982e76ba2b14ed22b8bf849244c9ae6b55071bcefd4f7063d15ba43e0a5f747bef7373cb2dcbff6d511b030d3e13f628896406955a77573570305073d92c5cfb2a9c4d92f867c1801e63c8addba43ce3d7faf91af464f941faa48f28f549d897f93c074394137203a19176cbdb41bcff260b7b0053508956970e31f65807b40c3b7905da151b5520931ec5c470f020acb306fc6e969a89966fef4ab1c2a17fd5a112e0a841b853dd1449be32a3b52d2f6e89\nflags = We", @@ -8382,9 +8692,9 @@ static const char *kData300[] = { "e93c01a0f4605c7256de93ce1e1cc8f5175838999c734809bdaf8b95edfac0d5f98c3de33ad6399e8207a8015373e1f5ed76e304b5e2ac260bbed23c662c38b6f29dcb01faa4894\nflags = WeakHash\n\n# tcId = 66\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 5a7e549f99c138d3fa7ede3ad655473f78c3a8de650bf8db6a5116f0807e5df84445ed72ea6a82a8150db352b85210e120818da13d9800d15823f5780b6051e51bf4488654e6a93c95d19b45378744483b43b37200d933775d2f84a7719cdff6dae2e15716c86a9c5a0042a5268cdc7b5e1860c150d85253573787b2839fedf64df3d54c977f63e7bfaf3168f0153e2ef019244e5cdd9be69b421607fef727bd5442ada4bab802ac9fc0c0044eb5b435a9caf217732b6740571bf9f7b1b3fd83da8d4c806a7e2241e37cd0d06abae28ac5a83ae3b2f81f3374dbea97e46c66e821226fc7cf0b0af2dcbdb7c5cff641775c81fea4c8cb9309e989bca04a4a5d3d\nflags = WeakHash\n\n# tcId = 67\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 4975c3fd6358989938633d07cf7bf0121c8a8c987fde1cac405924ab88c5a3175d27207ebbfe42b24404227e388b11d92bbbacbbcf152d3fac0166acb868f908515903e37da98e96aea367c179530a43f78d877cf0838333fcea303cf6710f046513f01d586bc54b42bfcf5dd47b1a01ea8b95aafb4b9406888b3266445f749b1c56459ce4e10a57edc59f610b8b74edf9987c9888460108a11525d0e7228ba5eb9472a0fada1d056c8b0d08efee2761107595c6b221716b6782c27bd7755f1a23aef6cb966a31471921594a1de17ebc7e5b52b933ae52a0794bf4bcd1a792e78a47f019698a37d0d389ca2040c0d3758eedf0fa810041574b32938d290cfb45\nflags = WeakHash\n\n# tcId = 68\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 881dc4bf8b2c6c17e10bef3dab327b4cbb76413a7e5afbd24f198fa461bce9392d31f0a11d69bd67b75fa30ff2100dcd52b8e0c24c91b0196d172ae3fc1d40fb167b2abdce4b83fed365b9d5946a333d0f669d99edf7b8a3a1c8ddf2397cb77bcb62aecf818807d696af4f186bf2e0628ddb1b9d45dcd6eb965dd1b5eb2bade60fbf5b2ae816f45f9e0ad024039bf64c081e37630d6db51a368e92256268178aebd32963a07693f828d01eebaad0fa04e0ff29d8c7ae681be4ec16d2a6bafc1573e38f58c6c2c36a5d5a2ae7718adb1390770d9a3882f895b3f0fee16a2bdc743b0906567b6938d73a666cc33d85142359d40eabbc1da65ae616c7818f86fe1a\nflags = WeakHash\n\n# tcId = 69\n# bit 7 of masked_db not cleared\nmsg = 313233343030\nresult = invalid\nsig = 15872263f8270e7ae9d3127a9b677828cae2077e534ea349070289394d13599392b5f803f8dbfe40a5487223dda2a3c6f30ddc92c4e6d9d22e7d0d2b60197e032f188da35457273ce5518b426196c952d0219ff6190fce905d856d491b00999821ce8d1ea4b18f3423ebad242bc846e0af408f21cddbf44e9e5f5d300d71a3b104eaa2230ee633d2ea44016af735cd5ed9c7b421f322781547bcbb0cd95e4780412f734bf681bb47abd46b158d251ec92056553ac06a59c4ba7fd20bfe50cc58386832b52e548df345b086b5757c4c9f2e133131becc90a72ec6c313e7664dbc922c87a90364bfc746a425df77c9b97dc2afecb2cc36fec415a4e1c6a957b4b3\nflags = WeakHash\n\n# tcId = 70\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 6de50a9911893547ab56065d2953038768cd0689a63b0703c0dc99e7cda412ff49eca503671f068635f69b38c0627427f02785b3870c6791add37d436a81538e6fe3dd0eafdb50a18d2f2d97e3cba062fc8343a6dfd448c11997d1c5bf6e1895e09ab435ebb16052c20347f4d077c6c7779297a29e76e49cdf0d10713fce20ab51d273febaffd0679a1ed56da5c0430a90a5fca1ec2010293b2eb8fe34a732ef4679318fc5682cd8796d57be09904043961d5171fa3230674501544e3d5482f510afeb0ee4ba9fd1cfe5ba5527c9c32ff09df579884d4a5b0351cefa07baf40961412348b6846fce5bd6d65a5438821218d677e774828108ad805f574ce7b597\nflags = WeakHash\n\n# tcId = 71\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 1f47ac7fd4585ea42ab08e1002f547dc78dbacda00eb2b3e74d0e46d45ffa8fa7b35d7afdf605b2da772bf54843f15297bcc6f52eeecaefe1c26108c35f9059c8223767c19597f4470de5028b6c522aefc5b61d545ebd6d3312cc092d1fc2a70c524fe0256029d3d357975215b2bb62336c4f4923eaa0cc422a3a088b86f4e0d81b6b4e04c21808a19ac229f2657edd42a6c41e883e69a916717b59fc6980d79884eae5ea918022da28ce2f8e52a2e5dd50d2d2969748c2d97525e672c12113f605b8c4bfcbfdca05bd85285d8fe6d22b73d3b04fafd453cfa7267cefdb5281900389ff53bb4dc3bf0dc366d86912d822410e8f77f33392c0c27fed3659da463\nflags = WeakHash\n\n# tcId = 72\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 7922bfdd4da222918c573184b1d81a14fe87eca0a30c55f9167ad8144ea06a9d22b108a41437b42aa08afac44e7661f7b4c6293897426cb2e960aff163613349b3581cbd3a884ff9898c45c5c213d996cdc1cc119dbcd7e0e99ed08f99f8b69f8aa079cc6d15006697d4a7fc5bcfd349fcf26f43b6f5074db8e448bc92ab8442b27e82643a11842a0dc70b822cf7ae26e90791f67d25a321aec24ccd7553e631bce74888c43d9ecd18e77fc24615ec445b7d7ee83aaf63c0733da25ecd512f7dc7eec6e3fb499d7eee6165c78a4275a9e6fdcb1b962f38c8139da5089565b39c6d73739f84c70ed60e2c83bb4f351d4c87cba2cf6c68b9879e283b9c5e3de1c8\nflags = WeakHash\n\n# tcId = 73\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 8a7e600a6675a06e677ff1344fd53a8dd2b99fcca40c2ab799636663594ac3fe2a510bf1e3ec4ca9dd28cced48b4e8457ed74f4ec2adf31b77ff1bfabd0f80c9ab4688f15630406d8ca31edaa3a3cc7980ba1b760cfbd3ff9016e1f3fa0c34cb59378b0f3745b451fd3e053c8711ecc41feaaf350980532a7db67afc35f00da1f191ff4f66b8e7e27368bc26160f540af784e8ecb38e2dadf4be82e4b761626c5c06efe0dada642eb26f12d1ee96684a5ef8e5feeeb0da9ef432647336e4ec715cfa260a8727aec4a080738086ad26b51355b8bfaf1b135e97d108b36c73b436cc5cb59593a7ce0f0e7483152319fceb37479451eeea098a8eeb0dee19756e03\nflags = WeakHash\n\n# tcId = 74\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nflags = WeakHash\n\n# tcId = 75\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nflags = WeakHash\n\n# tcId = 76\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e4\nflags = WeakHash\n\n# tcId = 77\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e5\nflags = WeakHash\n\n# tcId = 78\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 00000bb9473d3a8cc4abd63c6f2ac13e278a9cd1dda844fdbd13e9b77cdd52c1b05ac59126e45d276777e8b1bc423cb261d29675988954c9ddc38bb9a67bec5e03e1e780915333dfe494dd8a4f0bfa0d748805885c389d6f7fb6f786c58d21a468b3589346d70e1153e29dcdb91dec8ac185501efea247bac7c63e3c546ed635e647097bae3b8ccb992701a75d209c439c5dbe8122da616a4e230bce08f541abff854fb93c87fdde0fb457c44b2783568bcbbfbba611d8e984410d360c4ec3732cb69426a94191d5a0cb33149b518ded86864706c723b27228d74836513191cebc790793e5809287b0279e7bc82f266d437d192e98975960d0014dd02e172b7fe251\nflags = WeakHash\n\n# tcId = 79\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 0bb9473d3a8cc4abd63c6f2ac13e", "278a9cd1dda844fdbd13e9b77cdd52c1b05ac59126e45d276777e8b1bc423cb261d29675988954c9ddc38bb9a67bec5e03e1e780915333dfe494dd8a4f0bfa0d748805885c389d6f7fb6f786c58d21a468b3589346d70e1153e29dcdb91dec8ac185501efea247bac7c63e3c546ed635e647097bae3b8ccb992701a75d209c439c5dbe8122da616a4e230bce08f541abff854fb93c87fdde0fb457c44b2783568bcbbfbba611d8e984410d360c4ec3732cb69426a94191d5a0cb33149b518ded86864706c723b27228d74836513191cebc790793e5809287b0279e7bc82f266d437d192e98975960d0014dd02e172b7fe2510000\nflags = WeakHash\n\n# tcId = 80\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 0bb9473d3a8cc4abd63c6f2ac13e278a9cd1dda844fdbd13e9b77cdd52c1b05ac59126e45d276777e8b1bc423cb261d29675988954c9ddc38bb9a67bec5e03e1e780915333dfe494dd8a4f0bfa0d748805885c389d6f7fb6f786c58d21a468b3589346d70e1153e29dcdb91dec8ac185501efea247bac7c63e3c546ed635e647097bae3b8ccb992701a75d209c439c5dbe8122da616a4e230bce08f541abff854fb93c87fdde0fb457c44b2783568bcbbfbba611d8e984410d360c4ec3732cb69426a94191d5a0cb33149b518ded86864706c723b27228d74836513191cebc790793e5809287b0279e7bc82f266d437d192e98975960d0014dd02e172b7f\nflags = WeakHash\n\n# tcId = 81\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \nflags = WeakHash\n\n# tcId = 82\n# PKCS #1 v1.5 signature\nmsg = 313233343030\nresult = invalid\nsig = 3598f87916b45e657df63a839c7e544953c0039477b396a276d8df752b0a98192a10fdf431033353f8565c6de1b268f4ccb44c00ce760c67e97409271c55055b3ea885d742def2c6cd32f5fed077193d12bd48d78130353ad4aca34d9148bfe80d8ea455c3ce4b24f70131908e1947feae311e29e0ae9d1074ba73124568468e34c8b073283d16359c530ea613adb4de2ba94ebc470a57055571ef9f575c068e00de09b6d1af2051b93079ddc683090d4427847b4b9ed63a34a01d9aeeef00524278ff54b7d2955ccae5ca1001ee7588f5a21166dde7b2941a6136b38d374aac73752bcfd3e700066b2972c66cef76a48d81811e26fc7646974a149708ae2d21\nflags = WeakHash\n\n", }; -static const size_t kLen301 = 59654; +static const size_t kLen306 = 59654; -static const char *kData301[] = { +static const char *kData306[] = { "# Imported from Wycheproof's rsa_pss_2048_sha256_mgf1_0_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[sLen = 0]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 20081f8894a1330c4d503f642880e3c30e398fc6235c24f1be752e2d49cd9493ac0cf999e275c4f89ff08f0d9ba4e264a332525a616d336bd9e822f41ab3f4fae2f48ec66c2e52642ed93b7cb944396fbaa727cbfdfc1f20aace99a6f2a74475c338f8d9f22a38cb5bc51752076503b3aef1e65e5a8f8583d9ae7378ded038cf516898ad06beb90a42b85764526fcea44f74258fa4efb1da253d337f65619181ceb832dfe285ce78ae6b15f204e23bab274e87445d9f5df97f41dc8e3a97736b62591d075744b2552f90bcf1b1393e1e7627ef1f985f2bbabd52e43a35d0ddf4c67126e391f922ef7b1bb1911cd6e1b303cb2910dd70672bbfb62ea4eaad725c\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 4bf16f098701d340c438368e658ed8904d3a21f7714c02440d7476ead132766b3d578b325ae752f906873af1b795585a2a0d0e6788fe903321b2080bd0dfb9de42c3be41aeff37e32defdc0a75f12adb5b9de4d067a920a720cb16cfaf56d7c09d8ef384a8aa106545229b540c52b49ecc9d6d14ea70480642b9cd0330efc005502e4c38b96a36456447ce2133df78854307010ec221305dc90570252321e06c1bb01d75100e85e68326fe92488c0c5e58524b10f8ec7458d887cec254d39b0bef921ba31fd5a117977f1945fc04837727456949ffdc9886f21071186bf32dfbd9c3cd6a2a00a1cdd5fc3c22f4bbaab92aa85116711f1c53754bdd2bc384f2a8\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 2b3155b14971f79c9e3294723c7e41ded41af709f6edb2c19f3526584aaa1ef2de2e7a8dcaf5d7c3239f604c421656dc58e8b0852f7a65cd557724a9b2a17cac38d8020e939bfefec5dce0d8993e75615b974944e4c4a811e40db63f13d2b626bf26257a706a7bedc863d0100b676ab70d4a4f6eaf4692e0b69ee4426cfe7cfc3e92d93bb804569883cf31fb282efa5a81ce9f6d9f0ed79251ef2a0b596f80e0eb96ede67e30457a07655d777928b898ed1679046673e489d9c6305dee05abfdeba7357099f9cffd00735165ddc39aa7355b10a8b8612dfa2f836fb9f5f89f1407365d6b39a39e89c6647ff9da5fc6f960306686a8ed8e2ce12cc7fd9870d576\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 5e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848cb1f\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 501c8119a0f8aa2139ef5e05adc65384fa389b9023532171d514651ff48677aad546326a2e3c02b39ed84e5b7e4630604f2979c1fd7bf37da8e0cedcaecfbea6f9c715141a1d052529d0d0fcd71eb70867e2704377801a0ec721fc59fca9d8b1b08cd9ae3ab094f5bbe2faaf3171dcf1712c534bbc7ea802a2a72d8cebefeeff1530e4081b85a42ae38f630f38c1121199f2156e267ce2467f9b4853dbd29dd999aebfc402f2a0c33b8c1b8022941e754b7a187df4c59633dc6e76cb3200e34acfde53a386647833dc2accf244726fdbf440cd32503188a291e5b0678aa729b539c1f5f97e7b788c0c20b88d90c90a3bf33300d181b9ae797cbc76049b43be3d\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = a17d67937354c7fcba18dd5383edbf2f0868ccbe0a316876fb1c4fb14e7f4c048ef5ded5d01d02556cff0c8bf081bd09c46ce4da156e9810df195c5b65ddbc3025b84f91047049f205341ca8dc55e440bf8d9a3e98c231bb74e71be019cdf451e962d8b7e8e6d766d3be430c7596ffcafbb785e5fe8987ce721ae228832c8b4fe0b0071b0e5c652856f785695f70cbb3c62394a8291ba5f587d4fd7bb448649a72261447aae6a2b750824d400ca402543c8bdbbb8e7c3b44cb7085a83392346abe999ea2a5ea15e9eef6bf08a88096ee4e532369f0059285298b387a428e5e34ed7296e0b53d34c5e23f0d3c12e8a2d3132672a655c7048bdc0c69b36cae602f\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 64c26d43b028f284e9667d5951e70c75e611ae2ab876f66ccfaf09bd54a26dd17983d993bd4f5270537f4c4b2e48695eda28c8c365486b5fc3bde4049dcf6fd722e634fdf5571d29b1e156a48b0c706d96155d86c20dbbb1a47c7e54efa15b25d76f502b3069e2514f89d9bdfda9bcda02301c58e2173cf4f3dd49d8415802c11aed78f031e8e2e50197443e5fe9ab55afd8deeb7b5db8ba7a7b9fce6b7d9eeab9ef25035742d076935c059d076b4714127d408c9428a90cb9891a151eee8de7d0cea32b0ad2d8ca4abeb0521b296b5ac08f7c53d5c85e47ed828e0c11468d6cb50bea89e4b455936376bde9f22eb98b3e2395eedd05d1def38fd5e082ade3b0\n\n# tcId = 8\nmsg = 343236343739373234\nresult = valid\nsig = 08a900c5c0cf38963b8d47682cc7dae9d3f0a78e571ee5bce658154248b0084ab96a7ab0ca8c6ad8d6fc105040c9de8f8df61c1b6be59a5b899df586026e4b3ac1531ab09b5fb5026cbd252c6a548fae9ee881fa382d98499fb88c2b061f560e1daf98145705054fd0ce66d8fb2f64ab160f4bf1ed1a54cf69382afb75c71cf4c38bfc1603653af35a7ab1ab7268cfbed88bd4e779a8811acc947a21b059ea43c19786f370076360f4620a486d6e0572e5c6c796604736acc5b41c6da7ab2a40630bb8bf572ae96c9bf293580021d5a0b42a196c74b80b55225839756380305203b2bfd7525618b402d5288da288bb3d78deaeb26fdd432b2aac746c4fea8b0f\n\n# tcId = 9\nmsg = 37313338363834383931\nresult = valid\nsig = 29b1c67e4be642cd69e7f38115db51d963a54260a877781ddeba5fa6ff2fc0da182f8923bb9257e92989438392f047943f5769ee057c7162c71cf2c0147ead670ab9ae2c1fdab604601a2dba88483b2d3b1dd530aaa17f7a056f1dee49e0b967984506bd39f2df29a06d58f159465973a0fcf1eb5890464863aee92a4f3938742c876164ef95cf34753e9926ef87004d207b9e496922bd00dfbaffd9ddfa216a4b7bffad0d9608e0a2e8d22e41a514494683831e25c24f032d1bfac19d193c4b343815747a254f026313a6b554085921c6a8d0b362a7e75f6419215a5b9d4b7b872cd952f830426462a547a475ed3696bb977223c1fb5aefccaceef99689788f\n\n# tcId = 10\nmsg = 3130333539333331363638\nresult = valid\nsig = 12a1cb80d9ca2b229f85c7aa1705abaa6152b3fe1c6ddeadde2de56f49cb5d5176c91bf9a12a12372753d0b657fced52a8c6ae88cf6e84a358b996fd06ed0846dd685b800232177f17d72da5e817caba8ec9a1f08ec7e015aa2821a1f9777ba6a7d0950449254e5bc5a0bc63f7a6c797fa5b2d30e81704735f8dbbe1a6c7c8db18c142b0861f8525b66e4c55090377b08350001b18cd27f6e1be8d43b936883f7e057016b78f6f810cfbc19d394909040844c9cdc9ff5c8b37327feced820f3dabbc1f597b2ed353e7bbd3d315e9e02124f98b014be827c635e13f284c1dd5f5457129d2ef249ad12659cfca95646314abbbe090e12ff4480a50e393a47a19be\n\n# tcId = 11\nmsg = 33393439343031323135\nresult = valid\nsig = 7bed5bb43826841053d23cb2f574c687be827e9968b37af248db451efcb818d0bb8975ddf7407496603281c5719aab83afb418f496d8cf26e91c56974e65b382f96a206995dff1b57839f7208e338e86358cccaa30cff9677ac0a7afa48e8ae3e3942e36fa3fdfb47db4295027e0cc4e2b98ef1db49519b316ff4bfaac246391691c7705acb89923d39981388286c5969bc42851788872659019a3bb05a72fe815ee17dd0bace92a934683e019049669ef285625b0bdf9935befca3a0bf6b4154d65b62a83597abfdb0ec335c2cebfa627918ee28d64ef0debeab27e9efe", "dfcc557789f44d1e57127b066a221e11f4c0b146293d78d72a5f899f954b5dd37c1e\n\n# tcId = 12\nmsg = 31333434323933303739\nresult = valid\nsig = 38b09eb6acd2d2f0e083f0bf84523a475fb5519ebcb8a5fc2007cec2ca6f01b14e4332acd935b070140cb241b4255fa097db2781b572866b55aab5684d73181b4c911ec6e72b3c267c09469737ea36eb2aeba743c29fc4ff0c82b3002ed8daeac313d2ec4f7d9e707ec334f0228852eae8d58c27e1fdd1dbf8d15b8a7b0f824eb4f2c0191924749e2af4adc0a0ed41978bbf390e31860068aa8db5d5c7c7e86b0cbc9239fea65bf0d9b0a4d7a7058ce6e423858d3a0956c3ac3af7f408c7926ebf86d47cd49de364f90671afb52bd7d17aad00833ec79e43401ea2437d0ef7a89ad35dcf884121bf91ac17df17163ae19f084398ca3abee47db7c111c81bdad9\n\n# tcId = 13\nmsg = 33373036323131373132\nresult = valid\nsig = 495254a0e2eb9ca9f0fa281cc7ee5031ccadd0ff52a1c77dc7fd027f54319258dc0a4e4bf98d13711a4d9ab0c1ac8d67f98c04747ae6b9ef95e67c8671d7d9a2a2bc5e58b1b863525bc10c6fe65388590b96f246c58d118f03bc673b87715db69385907b5ed7ad576b452361ac8164f9eadd250eb445d697ce7c0bb4360c65868a8fe06101b56f4f7cf82a9bc78254eff974366f2ca2f7a17096b05b9bae47ee572eb60cceeaf1e7b484e90b5b0a8ee6f1517d1e694d23a2f9d33ff47a3acb7c9e93a6fb9ed2e994773caf5a8ed3453554807124fc4a4a19fad88c70d5d5d90969e19acd4c1f10b87629dcf5de6a7441f47ea4cc4b84ca6ff43e0905a73083fa\n\n# tcId = 14\nmsg = 333433363838373132\nresult = valid\nsig = 7d0aee24ec62cd2c6238e49dd589ddcc804b5122f57ca8c2d3f7ddcdf1503c3eae8ae192a0057fca6ebfb3231cb9aaa380bf4509df5c83204cc61b4870e4233616ee7097507222c22010c3f34b6c75e4a341920dce40e4cfb72206f00dad39cd0786427575cab19832b64ce9dd45bf8c0023b5b007544c4048eb06b0a73e1583db64b9ae70ca88a7a169953cb207acca099876841c6f0ae9a4cecdee900d2ef1e5559f8b496467733e44bdc6ce8f222fce5e99ae3bf2ee9f6821dee0f1a1fdb072e92404e325e06f813d70df6525e76f0ea5934e53ca6aa12160f6a92dd9d1f5a4a61e47f3f01f297f0470c343df4167588b81c5223908b68c4e2380d95fadb6\n\n# tcId = 15\nmsg = 31333531353330333730\nresult = valid\nsig = 5d822177791faa3beb1493af760b50f62e78f14b3eb278679d59dbb8ff0eca8b4f4f90124b830c8d635e90b86de97d92212b1e42aae57cead0650e7e9204d3d204b43d2e6376092d2b280acd18398295650dc94f74b7fa7198c0868890078422e2ce12d375986ef387a82b188a231784c86e85ab0c630f7876c652e4f4ba9a4d4dc3ca70316bbae3399f82c3e4e24983143baaf4e176c7c0ec1cf908eff9c15b3468fc7a44f6bc077cc3467e4ec3a50ba51858ac9cf3cff0c99ce5c963ebe5341752db2cb6ed5980544056d308c7c74fd14985a414ee61669bf4abf48767071cfd0c1a1df84b8dd4dfca74b342ec820aeb73a5eba0df78b85a568dc36ceea5b8\n\n# tcId = 16\nmsg = 36353533323033313236\nresult = valid\nsig = 978c8852ab3a09c6e28f627cd917927353874cb7b2d6647f3f5889ff81b048f4a4c6073ae6d99bc7354d9e45c805febe5be5dd3f95ad14513119169a6ac7a6a5b88ead2171d999f199b324251566066f8d9a3bb51a5b59c799858d459136341ab774480f059fee153bc03e37cf676b1db4abb2f7979554fb635200ce1c53448e5dc397be13c4d8f8bc2cf2117a0c4ddcb08926fd5a1addd193d0c1f2167731c73affba2c7437443d8bce828540a3d42f03b590dded0958aa4fe48d66d3dedb0697f366b3c7ef9bea8c2b5670a31c41df21828a3a481d9e42c93ef0b5cf43330e6356021893078179fd857a14c437d8b8c66d4e4efce1369f6945c6bf878508a0\n\n# tcId = 17\nmsg = 31353634333436363033\nresult = valid\nsig = 132228bc781249b547b2543f004b5807c05f6530eb685a0a3c6b7ebe5c38ef39eddedc5cf3f98f452ffb202e30dccb8f14c252e673473ec7bfeb0d9cb16c2d88ea166fbb69eca16f7e0305e054f158ed24c74d02328730488179254ebd63972f2a51c45f274939d89bcbad5df3d3961115392aa483beba4f00e55531550f6e167da38519273b3d16555dbc286979b40cee6e5e5559cdfbe6bc208b53e6337400821c43646f940fe624466834b335b3bad27b8f298dfb4a1d3e6308a5fea77fd5347abbd2ee8e708ca2f8719cee6ffe9aa91443fc8ea50417d5f546c223fd07a587ac547a2e4b3f686b7034c06453db15fde31bd1b1c76448a3bab5d14c7ff94d\n\n# tcId = 18\nmsg = 34343239353339313137\nresult = valid\nsig = a04a78f92d6693c9470e7e88690e40a4ae8aefd0af1845450690337321ce5b5e125f981b768e9e0a8a4a37e687a038da1d2c21462b962b3cbbdeb170227fd92f8e22e99e6a183ac68c0c42708e369559cfe7a1bc5fd64ac71e8ed34ce70e86336503028e6174b3ff2b9076f4b6b84f050fe36ac45a0f1de677b78f42908de140d1f2a6ec887a4fbc795f761f2f9b71d45de9e6ce7820bd6fd1a53f0c1516e3df5b31486518b767ab554814ede6270b417d53480d82c415d86d40355b405341034da2949cdd7598195975236e264b098822aa8844488f16fcbce076baff03a9aef6a2aba155ca14fa30e0efff4c968eac265760dfff2056f6b1079dc29316b629\n\n# tcId = 19\nmsg = 3130393533323631333531\nresult = valid\nsig = 221efc61ab6dd3044cf77780d379c01af65312951e5ea5bd5ecfafa5ef55c5a54e8bcdba38a7b12753bf049e5aef8f2b71796429ca9350ce820a10c7042dea4beef196ed5ec3a34cfa534e711ae8009631a6a3c6d87b25af090cabb2c80e14321763fe1545bfca78267415fc89878e968283b216af23a9a5e675028e62e1e2df117737c773d832c705d3ed36e680f1e3b2ecf06aeff69e0072f951a34449b4134e9e139ffddce8c38b2ff0d20a314b45a9345e3ae6e312a94673605e5ed8693002d60629c60fa54469148d5c50d80ed8a1a0d22e4672f9f3a2eb85d298928e4fc333fd1e0ad5909e65b8fb82917415473f28a17a618c07903e8acbf8015e1c81\n\n# tcId = 20\nmsg = 35393837333530303431\nresult = valid\nsig = 55b67374c9ef2ae609f70bd1c805f5c092278e8a2e45f049b949bd57d4bed44dd9880cd59896de266e3a5294f29023a7fe376bfdc35bb92d542f28f7efaa37d4f32c297cef38c723b27cd1fc0e45f6babb61a27547b37a186866a9c725a0d4253e35befebf4f47aef7cb1c4b35419b6e024e0151d47c0c49fc3bbeabeb75f2dd596fef0f8c9c275f6058b9130c58e0266ef12e0233c6d16f78ec5ccc1e8c7e03e3bcf12be33317dfb660cf6d3851bb2aeff5693fe1a6e4b644e0fc860a3d6c2100009f29c632fd9a579a6bece04ed27baad3c5d62b12ba30372e5d7bed23702c146f4a644a6ca1bc9b23f29cfec3b47f7c92e9fef471b9e2555700ac3c2960b1\n\n# tcId = 21\nmsg = 33343633303036383738\nresult = valid\nsig = 74af7b301b5b480ab70b7af2decd155d7c6a280ca77663c276cdbb702f7843fc3b0e3d54669fa9b99093f323533f3ee584483c83fd2f20d2d291ab8482435fb53dfa19a898fce36f470951b4808ee4cdeed273546db4e6db79cb2a429c04c6e0e7661f6ee84eea57981797a298ee37ad2661b002345afc0fe97c6b2b955efe1d753f3e26533b43c0ee4881e6e7bb36bd56f061bce340a9af0a679bb29f10c3c140ab6a5d3fee7f5ee90201d335a09cd99d71c3fc4a890723f1992f18ea3fe672ab6556140fe4ca5b16b168736d58ca8b0e2be364931a1c2d63ebad5fa3a075a889ee1c56d5c128b151ba55a0db4139973143182b6521962ec36a81975b0e4a7b\n\n# tcId = 22\nmsg = 39383137333230323837\nresult = valid\nsig = 3ed6a556e0d26350f61ecc896550888481a0e4fddc0a8db85ce3547bef67d5a4dc8ec653123b8fef836e6d16187c746042d8eb68310545578e7aa69d676e2fecbec00567e67d9f90bad6ffad56f2ceb90d06cacf8e7360439542a6773e0b25b15f385f356f6303348177e662b6ed30854dfd40b649e98eb9289e964e15bdfad7a5596435a2c2e5f849431cf14d2b3549691e642d5dbadb128f663fb06f84ae233d8bd81fc7571970de9c5a14854ec03b3b424aa5091c0da9a25020d83ee439e84898411e977db53a9bcae55985c218c1b3d08a964593774f9120aea723683f8ebc9f095598a1312259bf1e20ab6a79928fb22858572bb11a77354383713232db\n\n# tcId = 23\nmsg = 33323232303431303436\nresult = valid\nsig = 05d975ccb92859e4322c7712119877401618268ba486a05a525ce5fa879c5b8cb2e38171f1b8c5badfd2d32b276767389b011148e994c400b8dcd2e44919b20fdac75ea3c5bd2e1b488d285e974569932c418741da41ab229dd65ca09cf281f42e231c8657623dbaaf7b5d875aeb7dd4aea1fd15fe6a0b7effff66e9bf979e70b0ec28dab260ec68d679b13e76dc1f0a82a0c598b3412cf6a2f306e8e5107698d3c54a7ede188ff396ecf7e153cbbe322e48de7fb4c8eee3cde0cd35615779ce24f85f550a35d3d31a6ada6175dce6346f2b4c7ab0d60d4a95500bc54eb5a1da6028192d5a5372f48dbf704784db5616fc1e690f7ab3be167b5328d487893c3a\n\n# tcId = 24\nmsg = 36363636333037313034\nresult = valid\nsig = 40f9b74051d6a95fdaa25b05598b422eef97852dda217d51b591a36937af45ddf5e06f3eabfaf17610e55490ed3e00d11c8561f7cffa25600fb9ef7a5114399415a933eb6811ae2142351cc0621a5d39ff452875b1a669c666c606e4b817975b966635811694c8a920a5cbe8300df00c0ae0faa1a7812912daa081c7204af6eb7f7152ec82b45b504dc3214eb9ec5b322c58771410dad121f5cd887bff9976c38c3cc9b1a44d3683e95c76e6a83af6c650cf6091b68e6ea2e6f28b11e0c664ad132ff098d0cee65c8f0b436328332ca0bd1048af8de618fdb494148af8d2d98ef4819fede564476a52fa2b7d176e57f0fd9e499a215de6b7737278d7e6d95a2b\n\n# tcId = 25\nmsg = 31303335393531383938\nresult = valid\nsig = 94cd1d5b54a88649f920e1decf750e04c8630e32d71810016b98818bfd0d978bab2725466c1a826bdf4ef42b115b904e328ff1c012c704865640af61aff3f7bb6a3fd667ed2c91ebb93a0232655360807002c2f05fb64c90f842b7bec11dd1960bf85f2167b397e0852b790c7f193d6e7f264b2a5024807dd5d76d9487ab0e422c9216c693aa1709e56b3b61719c9d6b35f510a721d9471f83ca1a6e46f7c14ad0e4ab4f2513a389e70977b3d7d9917a13c25c1a439a75185e9aab64ee7576db623e514283b2d94e105f8c39acdfd853817275e90541c67812e40a79fcda5a2d32d2c400d1193f1b756c98e8d3212575dece26c44792fe3fbce5dc56d0248c5e\n\n# tcId = 26\nmsg = 31383436353937313935\nresult = valid\nsig = 17da6446874a87e7a7ae4fb637", "c191db1d13c20befdc726c8af26a63b78bf0c998b82c25a125674a50717a849ddf004ba0f1400921c08a37a0c56a728322a2069dca4121c0c47c437e7a16cc3592ad5441a157028d8cb6cf7ce5b8582fd525a1c5face82204e01fabca60243022ea4d58126fa33170a6053ce2fd53b46b165d105151d5a3ea7b0f2f019784ae87fed529d771ba5a6a6ab60934a8aef5d4a4f25e5ac91b64e47aee095352ac6a9f68f5eead836730c08a35395e0a2cc1aab29b7e1d5ef238e939e9847b90d7228b1239749e79c07394acf13aa32e349c23731838b241c20f7ebfa627f96dcdf395b4f773c74347ccb966ff8a3122f6d6f1192eb\n\n# tcId = 27\nmsg = 33313336303436313839\nresult = valid\nsig = 0169a22f82d7c1fc21caf6131d6a4002578212f3beeb185a832408833bbc246f05222959e90849bd41207d6d74a48e084b6eaafaec78c9c0aad7a9b24624e8c4c66bec56fc86d2ec31762a7498dd48207a16b315c68aac94662013940307e6f6dc1d2d512885198f288adbd73b3109300b1f03e137b904f743ccc7b90db246c7ee7b18c1b6b2ad5f061496f8cac534b58f161e2778e8f73db6f455aad62f599cffc8ef16a462bf380e0d09ad8295e7e9a7bafa1b7fd84166dad936373b323b525a111d3b34e5f918358cec48144a99f2c614ffb23f9a3c8f9a491f8a7fb0825dcde62b40b9b56fbc816e21425fa4b0621d215fa019d293107a547d55a1f552b9\n\n# tcId = 28\nmsg = 32363633373834323534\nresult = valid\nsig = 78b2098126eb13ca306f31cb64ba1afc17e053580b68184a029d5ad47ec8029474a64dccea67ef1d01b4f95f1c2b416d312437139ed1977ec80a9339bf925cd2f2c157dd3accb47d1b85eaa43a7f2f6083e85084b05d80336b2d0435315d0124ed155be0100a98f75b9d7596f3799cfb3a1b7e2a8ac3c805da8da5844a27b04486f80f1ddfd463ba9d01a850096a600346772d8bbfc73c9932522687b296ddcf2892f37b2a9b90be7dcd9081df2a48014f5bdd08c114989a4920ead57563c4615874f3b7707607d6257614847bd99429642a58a305383c835a1bbc2ea8b443a2aaefa5c8cde459904016ddf381c591dc238e10a8249c7e1caad96b42ea415f7d\n\n# tcId = 29\nmsg = 31363532313030353234\nresult = valid\nsig = 37ac7d0088f21118f5f9f834063d56966456a9ba840089a1b1805fcfc808ff22cc9d7b3b3a361cbf1c2f96c62f694b47a6e9a19f2adace721200a52110f34b9c95f45fb4af9c250d0472018069d493847fafd468e8f50b4d2f1ad97e10015862ec02822b1e17dce3da1715f6f09fb89b4f7d0c35b8509445f770ea6ec325e933c651dd4d75f5702080ec3b03c48b380b1f202112eac8686d3e6e37f2685a6be8b078584533ae66855cfd6f6b758e4487bab19a65a12245a6f177fbfd861c94c5d30b6fbf750d66b682f98e34facf4aadd67b4db4463cb08328d8d59357895da55f1736c91c62b2634a66ace8b2ea44a86e5dbc09aad6998524077a68b9c1f33c\n\n# tcId = 30\nmsg = 35373438303831363936\nresult = valid\nsig = 6d250a920de5965ec36ab916ad585ef21252355f0629b084a119f7e9b73d3de14256f612fa92e3d658efb3e53343c0edb8b7e55a704dce2af2f7d861a404d1554fe19aa9a6b9aa8a13897247a37a2d973cee58c3608c94789fb8ac1ce05d6f0c2c1c7b8baa7baa1cc8d77d4b7e911db371038117af95b1e240ab317031bba83686b8ab99d75baabed4873fc72884794b3a3da905da016ac292622b8f73e446f46a992cad8d2b9c9b4d50381f58de58da58a25ae341b11d302e11db18d2bafe673dea1093d67f7d1e4919abbd43c0c0008b8eab089ec6bbcf126fb9998fa8697ab48cfa5d90ae76eafdecf18037fc3c8c5fba02e37ae79b29665c051e271f269a\n\n# tcId = 31\nmsg = 36333433393133343638\nresult = valid\nsig = 97a3e342aa73973a4b993873d1741dc9ad916f5de63d78f8c6a7f7b2247e2ed62a76510d0e25e6a27ea0e2ea8a5d8e38381528f913458bf6caeccb73fe2e2ae3830d0c3f463859bfd55fc26e5bb16f95a1517f445979265fd09b17033297aa6d5336206182d5030396176ed04b0f6b86a9ad9d180c17f7afc6aacba9416f0a67d5f7b8d93c994b719fac075389f83eefd9c9f3ade146632917c26f622a1313ef470f257f67f9fbfe67245ec253959751a84ae84c7a0c06129337645dfa36c65ceee8fd1ccbd021a51781f4ab8398af3344b0a3b9036ed4b9d17f7c572903391a64a8c45c1fe5ef9da607a0a7ced1f97a8651b44ba4f037484626bf770d1765e1\n\n# tcId = 32\nmsg = 31353431313033353938\nresult = valid\nsig = 6fe1f5e3f11dbac400043505b0b331c32c28c37b4d3cfd9bbf959b301b3bbc752248e052b5fc3fd6c80b2a8175440105bf84904d2fa9ea763a31ba532f7c528e15967f4858c0a67fb9b91b0ed43926f3bbb90d970e8d81a3d2380556e63efe0b49ff702db5c1835adbad43830a983fa891529732104e60941c03fc8e267c0a889ca7d29d615811d05e964faa99f81c2bac929b26b0825c35abd7d3a36c09568141a53853760d632446d4088d032b348ef0942b91ebf1c68bafc91bc54863452245af96c00250302a05b24723f7327ef420fcb4427f40d5e33ef4c4820e0a7df57c24814b6ed8bd61de28c65976356a3279d52134753e008f02cd9d27bcb6330f\n\n# tcId = 33\nmsg = 3130343738353830313238\nresult = valid\nsig = 9ae78de184d5b7207e99087c84dacd1d5d510119a25b43155050154c1539a7b44146de65c835426365c6d8778c29e6e7639765da4184dbe09e8f5946eb2d632caba6e31eb2edfc30016ffc4e3b7eed4d2d95cc563c2794d70f8ef60ff3f77f876d82cd075bb2fb6ab0d027ce9dc5f3b26a3e93c8a2c2e8bceb14f9eb45ba4e1095a19f441fee145c60df21adf2068fe566dd7926dade24b31b71f5db3d4ddaf6c4e44bee59e0d3302dca6d75fcc87952cb58555c7dfbec53975c7e1cda803c2007ec1e53fffa363e69613d17f870c2674442840d1005039ecd2106921ab6ebd9d96e21307a80e994ff85eae5349f4b426d458aeb22cae533e46724cfa5f2b442\n\n# tcId = 34\nmsg = 3130353336323835353638\nresult = valid\nsig = a288dab1bdd7f4676d1bcc84291a7784be62f001c5c1a83ad575b15cf56a868600badc95f22954f9f474340d874d3d56fd23a8a85ee3f052c7be5ca653cc2fd2c1ea62f02c0c5b653fc201272d432671059ee279398e5ad0c45e735eb5c03a2ff9c82ab53d1ac9225589ecee80fde90a036e079e45b33b0b4f0e6afc317ad3744dd65d22607cf31dbabeb38b0eb935ede4420a1d8246b80da217dbed5d1cf6a4cf88ac03a3eca307bc7af4cdea63894f676ef253f7c8e1e7ac1f67fb45abd2aeac3ac8899a73867af86688b67b3ecdf9e6380a84b99b98d2dc4e65682558d28711dbb1288a0351cef187f1edda14ab57a8fbc71fb60375e682a53566eba5ff0b\n\n# tcId = 35\nmsg = 393533393034313035\nresult = valid\nsig = 0a5339301400f505424bbd72a88355759ce2b8e43c97c7dc6fc90dc4bd339dd397bcdcd706ae49df8d5f535f37c4275e894419345bc01a15a11251ac2b01bea9edcf093239b6bd15196974ed38ebddaedd60e6ba3ee67ae005c73850ca8a13a1ec693433bba8eb40dcb23f33a1a6fac64d634c9363f276c119d8e7e7649e15fee7c0a039dd41ffd5871592b7bcd7c3052b3daff5c998442f788f4af43ad032f257dd4fa0c7c67f078d6b0608df1a1d3b4948327eded47f9f4ed16601a6e7fe86ecaf9721a4391b01051c00576627d44f66ca5657236e1f5260a31f017c6dae68d17e984997e1892626dd97f41429a914a7669e650182845b2614c77f39267187\n\n# tcId = 36\nmsg = 393738383438303339\nresult = valid\nsig = 8383a989de89656ec90337181cc615385f691622af128860328520625bfaa1ffd2792fcd8395cb8f4ab3986c00e9d43a0db678cf1cd3f130e95669ee3160da36b99eae9388a24079326e0c3e87eeb7fed2ad444e1b66d3072f057167ee967e9dd08dec183c4bd55b07280f74be43445a19aa0659f78fabcf56e4bbcf3927e308ef773ea6324e5b23fdb46b08057a1a63272b9c29a0d0ed59d4778ad7cf2ba576ec19d3d81c869cf762d04260ef805a35055d9013b327013da7a898b6684275dbe5057b833d738cda3f018c100d63848959e15492fade26378f4b39bed4bd56259ea8df023f2c63014fad634806f6a650b5e68fb35f6caf198ed09dedcfba9da4\n\n# tcId = 37\nmsg = 33363130363732343432\nresult = valid\nsig = 23b5e6dc26e10e99bf0405b84347e1cbbb6af4a8d0025d0313561c726de0268ffe4ff7b2e20a96e4bd699583281aaeb10b592e207e1cc5d8fb7d5c2c1d8f034467ca090ec4885e0a1b09dea61a129c967450cdb5984ac5dbc852893afdf333b5227df2f023f37f310f13dd73ecb9c864ccba1c93f6b7c4934fd817e26fc2cd607dfcc6618b41cc571603aa26dd4fc180d5b3ae915418d35d6476dd34d4612f50cca249ff661fc5a2bcd09a806da0ff0463489fc0fac10cdd41d4243766584ae38e99c68e9abffe362894cf5ab10100dd3171c6cf63d93da5f8f6f7d3877cebe64f3afa8bfe78f4436b83f8b845ffd94f9980d58a743856b6efddbbebabd31d9e\n\n# tcId = 38\nmsg = 31303534323430373035\nresult = valid\nsig = 9f8a9abd119e44261097a7fb120fa7edfb77418aa3a5498abeaf17e2453e8be26a814e7cc1a276a351ae002ac8746f630f7da9459d3fa4178f8ec9756fa6debdf4d55814bce8f84eab38dfa0c98f81448800755d08c3b9691e837a2aa052b5ca412e2bb8156e4a3aca3d35c9bd447d6b5b532905c60e70dd65f6c79a28f236e3a0cbe4f734b2a3b22fb733e45038820e087bdd429b5b54b84a6d1210788bb558f0325ecf8ab7f4641bff09564f06af6d792df988699550d35f2197b4bd7cb7eaea64341ce82391ab8798c1ef6be8a7ed8f2e1dcaa331da2844c06e3e056ad0ba22c4724ea7929f57274fe5a2c462780b190d5404c68c823ba233ae35026a6e72\n\n# tcId = 39\nmsg = 35313734343438313937\nresult = valid\nsig = 227fb42cb5c3d88b8b71d1a6522bc5f824b2507d2998a94b9b972cabe4ab46eb47cd106f79c17d4a0c59c7b74b5b3d03180ce155a8bb0920e987fd2bbdd64d91ff3f57b5dfbe57f3989ce4aa9d9e3efafc501c4437a0b14e2983262a61b15a1000888ee1482bee4a1e6afc92bed17f35a32df67fad28979775cf0c1edde006919566cfdc3657c9ad2a82d2e68a11e23f01f4d8faff873f5bd1609e3b901ae13f8a599d42d2fb5ac9f9707d730921c5981cafaaed86d370bdc7585bae3ea4002c50c96b195283592c5d577c53627d946afa48d10e8c89432f50210f8e0c99a23eb089559390dfeb472db740e27ca255f0764c7a575d3909c24308f187bde90fea\n\n# tcId = 40\nmsg = 31393637353631323531\nresult = valid\nsig = 49b8d35ac6093bd9d53d5acf6af1a2f294c13b0072564931b8e69e11d7fbcc7ccea44f5e52f28b63b09dedddd5766515eed3ed3d595424e70846ba96b9bd12781715ac7c405acf97a8a735c8a9d274b66a54f2a24138fd9006b2b5", @@ -8394,9 +8704,9 @@ static const char *kData301[] = { "8f5f616b3fd413b310fe8f50ef4f721fc026a6222f0d9113624cf7d481e79e788587ee659e81296eaa438ff13454e36ea50e9f038ed2a7548a8d169635c3e15bc20cd83c8279d16e6b0edcac2e9c72b9048dd7fd1d298e414c3832236d612af3841e426c74f20484ef408b19f22449e701460633fbc5155851e812e886cbfd6218bb27388e20547fb4a48d2e0f9a284f9bc1e9391b28ab7f3f45ff5aeb6af12faae437361877d04e2df1a1057ac3a680e5123ef\n\n# tcId = 83\n# all bytes of ps changed to 0x80\nmsg = 313233343030\nresult = invalid\nsig = 4bb8fd79da58fd3217661938c90772eebde7bfe5d49fa597cf448019a56d710ea126e8b94aacb45bed81df07ed4c89a9889bac0ad2abd506374d5ebed14777673fb1c51a3f844e9619bf707c9866b21721a75458c100d57b9ebf6ca58aaff1d47cb2d0f26074dc15d0900a11d681bcd76b111140500a51cf8c1b5ff4771176f1dc0884d42b36a15690b991c77f9605ee9c4329fead40364f2b6372812319c0ed4a6a15c0716da9426ddbbee79938bbf8dc3b459bad11ce79c0bae6080a06b6c8c1c051fc37e0bf0546c7b55b2cb6d90bbf4961ccd1adc623c9b9b51912d6b78843932ce04323f8a9159d10ac94c2d980e9b48fc143299d4c830050ace61f7238\n\n# tcId = 84\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = 9aca5b5fe1369dc46eff908e690ba88744db0c86f7da7e644eac314493ba6a7d003dc5400e1c521c373ede410afcaae8a4ea8e14d1e6c2ac3f39c0bf8bfeb688962260f91058ef9c1a0ba39689736d039ff86524a97d8eaaf248601793023ce6569c3cf15dff30f41e384690ab40812cb1e4414a0370fc39f526abab87bb9a405fd44869069f343f28bab50a1e582d4bced25d41f9fdd2e958177a3625bb59c4677f7f749321023fc9b9b724e8172a4a512743a1c78c3c8b1f0556fede02e9f6f2f851fd31e21f0886a35d12a0e04f041251524bd7838d91657026540e133a2ac1ade52f03efb509c30578bfde272f0d9fc2e515e541259dfc249bf1762b17b5\n\n# tcId = 85\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 9211ea6374362d77f491d9dca7e8e8d2b672bd565dda1566814670d22e3f211b38246529a5f01333ced70323e6cc4de58e9dee11a90f345fc53c1cb0f0c2287230d1cfc83d33c6158a8730853b5163c825ec05084cf0816325e21ba87f1685197c9891ca3b89d8d8bbad395f7f71b91ef937a1d81bf7497356928b77b10fe270500a731d498beb85490c1d3c4145336d2a8ce8430354b3afcbf0c923b0b0e824adb36d7be69a8e951f64a5b1d648dfd9fea49b59c99efcf015c6b3937d8986100f48022346136eb56f9538b115284ead85196385d91dd414ee22a3c7f40f632cbe565c8d0a325404d0d4905282cf7acc6210a6eaa26f3c3961660a944771b342\n\n# tcId = 86\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 39112e1c8251d5ffe1373e70fac946358b00bae6a461a1af561a82d81ec4acdc63eecb3b98f5f070929dec66a758d4a12cec2600208d7597320ba5db412006ebe76ed593d8b1090e93be21b1c00700e393ddb4b7d7a8bbdaab603087abd2b90a0408a775a4469d4f2f6b34d228da55bb4872ef6dde5282f5bbcdd6a8cefc71c4caf00453e6d6c59321b738d3b21a3d8f0da4afde30c16bc5722ac30ad6bb1f9fe0451ad150fb3d67a805993e506a80b2dea3801bbedb8ff7b676f50ca3fa5b9bd744c00822c975e2ab8cc6a917436279a9e85aea62477ef84270f6efe495ed503623108ca39d5c47bafa3505f04995ec9c2a0e411fed9179c9a9e94fcecda5ad\n\n# tcId = 87\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 1baab34d753d4c169107ff7dba46ec1a4203cb1654489d6fc20d206bb21fab483872c44ae8017b7c07aadb8e8489a2b41b89f9331fef63317408105eae19900377ce150ec89a37b26bfb169a89aa1c71a83cba6858d5b47353e82017f19a6688927768bfd0e75bfcd71a5e1948543907d65bc8fc813436a15949fbaf0a7f95ddf010f298df9314203838a60b39c5bcbc7a438500649950bf28e78f94155cc664ad5ff996e51789fb13038e1757dc19b6572f028fdd8be318ab933adced2e87b569544503916030b4060e231b0265372805cb53214c6f21e13c632ce08031ee368bcdf3eacb3b87269e8a8684703a348524020e820de93f1f334b59cddff51a12\n\n# tcId = 88\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 7f04560acea95c8b3df67a74fb2b32d904e5c59b43b10b11519e796efa77c0c9b14beaf1ba1308a65fee50e7862289d46a3cfe79f423e7d9201dfc7428bec7f304228508b7e8e5af4dbabbb3958d1f48dae4016cf699421b7a9a0b1dc1c806a7b19cf65fb7d4465a031bd8c24071b397dc1f6987cddc8b69f5f3dde25fa36c2ad6e030c64413bf3eb39176bc003c909e37d28d5a040c15bb4a73c74c39c4d132d09fd565abd7b63d81115ecc8a151786f6ea50882e50db362cced39702ae1ecc176cece9509ff071b87f142547ca3aab04bec1a7d0c6ff35060420b99e285515eec016ec419caf75cf11af56a395187fe6575786998b6b4348561a0dd68878cf\n\n# tcId = 89\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 1c029185061385643943dca8adefc5666ca039765d29f8baa20dc3cc43981ebe1e6d1f09a617559955437323e50f6464a69950baf23c7463b1b1c6761b50bba89c81299d4543f76e3e4ca4e30ce710a20707b18dee5d2ac9e0d9330148526f193439cb33238ef9d82424fc1287097e7626bae0130b735a22cb6ef08ba4d840b370c9e8658f83267e52b8d56ae0ada9dc5114920f97884d6bf529bbd7c81b2f9a700e4df4c71a8ce3141f9f4be31c9d639619b20f725f55475b38ce36faee929864a5c7793ec26dd6d1c4b75f111feba3765d0d35a272fc52fdb85f2c0bd1bd22cfb47bd0ba58d00af119759e1f4d5763f15cba4e788fc6f8a221dbdeb32c484a\n\n# tcId = 90\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 0594a2a0f3d10857e8e2a89d72df80c8b37977bf2c390087d1df7672fca50d21b7a3b24453b55afee4c6fb2adf83e6b3e6a63db31b685ca956bda1f3074eb53364d9bbb9ad16883b56ceb66cae51712d592e10f851c4431a4f7b3625c774808bf7c694c582f1f20c2f51ca9f781c6172d05201e1e0ad96f7231c2786e039cdafcc4045bb078c2f432d3409dcaf25d8c0549de03d7964606aa0fbda333a0eac26e5f3ba13b1d6dc710c01a17e1a24241bd741d51db4cafbaca518fe32feb0ed5cb916c8c094c41f092cecb7a9cc0818351b5c8b6563bba32fb8e86b4c81f4f57c24a880e91daf31cd1911aa6690c8e45f00dd62986369bfa5824b785c1c56fdbb\n\n# tcId = 91\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 10bc1d1d1fdd4a8f74b17f2c8258078ef5c4f5fb973a2505060b126504c9366a4578e2a333b1a9c580239ee959d17017664631982cb8554fae8cedae07eb7e2fb69cb702db93d948d0d0e4654d9eb49192ef87e92f4d229ba56f165a8ad4769d0c707111b9be90c6cc29cb3389a9ae4d5045d8a69234cd5e57fabb76e5d1869d83cd2f3ea8f0419194cc54c398a288aaa35f765ca8e0e264865b709d5a21c9d807c4c0751f9e4e68c9cdc61d93113e5bb811c2e217f31eb14f010aad77abed3e4305e7bdb1066879237849883c3ef099b85c78352b32374dd244e173edc3824924098cfce9d729166ccfccadae8871266927763ae6a5e750f49b837b60682aa9\n\n# tcId = 92\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 93\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 94\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d4\n\n# tcId = 95\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5\n\n# tcId = 96\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 00005e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e", "1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848cb1f\n\n# tcId = 97\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 5e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848cb1f0000\n\n# tcId = 98\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 5e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848\n\n# tcId = 99\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 100\n# PKCS #1 v1.5 signature\nmsg = 313233343030\nresult = invalid\nsig = 1758eb94588e6fc4f50c1be1afcaa41027869f304cad513b1fb12c2f446d63cdc05c4830a7e3e630da7b2da4f7867cc173bf6420f9732277282596de41ded32e21d0cc31441174da8765f57419c7764ea758f55bc17646eb100c435d1ac0eed6fc7ba6de5f832094ee2f479979765e05ac9976788db3c241a9e32a0da864f0019a87646ba623d63f4411af5dee1be9ec488c7e3e1b231479de70b9ac5f78a17b1f4120aece45f26c07e7bb345fdfeb05e14bcaacc614672a465fc523624cb19f66f9c6c3f642b832ca44cb25176d679f0e05606c3fed022cac24c2bf960a406d48818e3eb7ed53b0446032469047dfed95fc18088c92d91d93722c47f88163a8\n\n", }; -static const size_t kLen302 = 61423; +static const size_t kLen307 = 61423; -static const char *kData302[] = { +static const char *kData307[] = { "# Imported from Wycheproof's rsa_pss_2048_sha256_mgf1_32_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 4f01e0c12b08625ecac89a69231906edf826380f37c959a96690d046316d68ffce9d5c471694fcebfc6b45534864689256e4fc81c78e583f675d0c94b449647451e81beff01a11a516d5e5ce3f1a910437cb8a3a5096b19fb15f4524a35b23d89cdba12cf5b71aac1047b28c562df7c5542c34ce23a182cf7e0e231934b17294799d44877a1d68ef1b8f073619b7618e6b7c22db20030d98cf591ffc3d4da5f58613ecd5ecfc3b40a1d02f40891ca43695cd4c088b05a8054c89c595a47e274816f35384226f74459ee63e25a1bfc03c360490552ec38343f8ace502f065303b00bc0ec320711b211fde92e57feb9013c3609342495ec0d7cabdec21e54acc38\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 0658c68fe0895646056d9bca422a64fe48813b4e14f0c8c4122e56d345b6813dc6286ffde014617e351c7af0a0d2c0f285def79cb734e1e055a25fa6fddc1c07da17b4b235c637413b1849c24311fa72331f4c0458c364a4916de8619b884d7e37288fad12926fc091f4851686a04fd0a504dbce3db370663a6ea6128fea86c2ca94c63e0d34d7f2c845b5d71d9a5e544451f524a451acb85c49bba7864e0a34a48613a819caf3dfd0d510c940f1df21c3373915be1f3509a557fa4d5a4e9f273e85467961133e2482c0907386454228fb0246638616fc31bbb6fa7c2361b8035994eec69a923f4c0bb0ba8696dfe8b1400c2398d7b343fdf498b1116c8de602\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 401eb03cdb47ca88033e3030f6bdecbac8f5c8fc1dd6a13d23d379ed9a2b309891d13d74fea9d21d159b9e6d8f37efa2489962e24555f56dd434ff1d31ce4f9f5abd3f22cbea8b691d6a11e44efb83e2bca155e6a164325e0fde2a8865afd5c9f51161a9d615f62af7ec2e31b3e5ab649c164490d31d88cfae35b84aea7925690f929a144b6d2f48e8fb894a52deecd1b9a6496990c4ecf1588699a42cacd10c53af350514e4291ea9a058e77f101e32c1c0cefa61d945f7bc931f8bd19e7ba3169358a60e5a8b0123bc3199b9fdcafe8e519c41ba675491a27b85e44ef2d77277c10fe107293c8290186913bc9a99b640d8da041b64f31eab1d35920985f4a5\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 68caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c6d36\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 599724adc1bae31e84eb6e1399cd90cd67f48b432c63719b600402384aaea9b21ee864cdcf259029180877c847a223912b0647f066a59a65df6c2d3a6675b1450f0b05185cee486bfac56cfded182babcefe60568a6954f026cb2f59002a2f755e9bce49793f280d89822c9bd3a06a7ad2209c3d6cab7c1f74c8bbf4bf374e7ae8a539fccb83a78cff96a4f538adeba0869659d0e9647d98f96cb55d9cb7e58440c4c9d85b8e9dc602e909e29e45f2b82ded44f40e9ceb1292da20063967e3a116f4aeb202863cea523f215b8ec7fc4f6a22cd8652ed661e33803f3fa1be966fa8754cc7b0fa894cee0f045efba14c4f4a1d7cb837cea69e30522526b8a5878f\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 4e68a8375e086990bde05fc4bbde2d368f8d96a5bbcf16d9239fcdd45942d764fc2317d90f4f62ec80059490240be8f32dfc32414a427c7e34be25ed0dcaee6927881e797db97a0341fdde459b9cc915d0a348e15dcbfe1b0780472f52a887faffc988a9ceb677e1cf5638e44a9d6f2532417ed0bde5d67f5dc9229ef1f3cfd9cb46c695738fd006cc62d02f5df76996270223060f72505ccfbdf4e88d961e2e7763705480335148ecdd23d1202c26a963860dc769a43e44c72285092ba7f24d81844e612bf03f9c2ddd4e5960622f71672f4e42b8a8f36c6847a05f70400207471c575d6a960fac1de809118efb52903ca37f12d40f6de74decb9a5b8a415d4\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 8bdd6db90323f3bf26a36a4ab5b92180c96881bd32b66317c4b48c2ba1421f8434000c06adde4264c6ea2d5346468c6d5e97cb13d3cb932e523ac57b59c814fa0397ca6dcc9bec4be1147d77abcd318a6aba1af46ede2f5640da06511a006fd1bd5fb8e04be22789956adc47bbec7988be477150f9b24a07dff51530e8f0c14cfef7d25ca141f512939987b7eb0825633d41a48742bd7f56d4db9733d92ac0f36b4041f51332695f551ec91076da2301120c438eb9ec197cbe318d4571b6b79098d17eded0ca47747a143e34f882ad6e3f490f3a710ff7ec1bffce022027165d96281e593180c67f44aeda9ce6605e6b8e5eac1347695dab211a965bb3d3f928\n\n# tcId = 8\nmsg = 343236343739373234\nresult = valid\nsig = 3a52bec84b5b41e09358a7fe24bb7ae0cb39364374c911e0d3f011f2c4c79667f43eb700fcb33e44533654b3efdb37e627eaf1352d21a187a70a86b79b2c34ae3eef944e3e61d361c3baa446dd465f2ddc0b2ae7bc8beec1761922fb5d7aa6cc4fab9d1a0835f15cd71ccb3fcb57c578a46a7197dab478b7d1ed7c6235dea3b117472c334c3a18fb8a574922f511d7ebf030201dd7457a3860a6af6252ddaf90d07d90aca03f7037223400c066db1d7feb91d84815af2430190a2170ac7eeff898ebd5c4c7e9bed19aa86293aa257a9ad0a5146be80e7ce6081c8906d269d06bf037e34ee18aba113dcfc98eca70abed7249dc9a49f971648e58d7db2282ed6a\n\n# tcId = 9\nmsg = 37313338363834383931\nresult = valid\nsig = 0b47d3bfedac89323cef0d273035674b937f4106355c0baabf6664a57b3064a789592ec5ec4a63997b6f3dd81b0514a78b8824edb2b0ffaf45f8ae6432ce3521bf77e01912df0da5d6fad9f554a3d69b402866526e6914b5c78af847233d3482598143dd6fc65a81df92cfe119f38b0d4f9d1a51a99aa569e42cdec9b42a0598f5f0bbaa1bcd44c19c7614202e0aebaaefff7f3d197635e490bba81927ce491a5810952593f8fd57a80f60bc3c0b2a7b10a0f9dd4930db8172bcb1642f6d03332a7d90ce1edc1f8054b5bd4f4760996bcd565bddd2c6dc8f54fc6da5e6fe80a2248f920216b1bb836d7885a023d92edad5d20b0e47cf5beb2cbb1393c624eb3a\n\n# tcId = 10\nmsg = 3130333539333331363638\nresult = valid\nsig = 20c9d447ee65a4cf7883ab724df0c454814029c8178ddd25eaafab34344d6e06877d5a7121af22c7e5333e2d4f2bdf42450b7b735c335ebdfb461f7b20dbb77c68c449b7826ad14668e2103b636b300a675a9b3b1aca936420cf3fd8deb2ac8aec6528409f6419d8d5ac9ec2757ad4781e9cbda98912f4304710d3a89053ebfa7a84353c86b0c48eea5a541af4644ffa21b766e738f0d94cc796004b625f244f63c41666b2213317f778f0d9d7d09a1003cbe1b2bfef585f1580f941398059a09ec07ae35bb690728ce85c2e192d423a71b513008c29582b37df1f83e40a699c88048aadd81211322b3c9bb449addb037c553551d7835e90d53f1a1883766d5b\n\n# tcId = 11\nmsg = 33393439343031323135\nresult = valid\nsig = 7c5e135d7670a57d8fd7a1c9c7b33a6e07a57d957f7a5d9594200eaa9647a1d460bbebc40e0036a7d7665ebaca9ffe3a166fa1411c704049975a5e46b4d4fa03adbf69d1a18adf59505e6d2cfbb82d5d32b7e3dceb8542e9ed8c7ac248f9f7a84abf3f16e862726a4dd189c61d6979d85ba982db3a5b2903f38d2558cc115d6481952506182a09e04ec257b19235f6c6e2c6587bedb90709298c142fa31742f401f22e2b4b446f9642b598cf43d4d29bd0934f4853ef70ec72b97f6bfb084f45ea439c4dd8242d059bc3c1a851c67d94357f93587014b2860d7f195f7b", "6bfb39afa712338c684f68501c5fb9a67dbb36544e6bae5f72dcc85815c2d4d70b5baa\n\n# tcId = 12\nmsg = 31333434323933303739\nresult = valid\nsig = 80ff5c8258bc0c74993dbdc0ba644e050cf47213a6a19bc83d5e4b2080adcca763a55918a7e19d85a0da38c5cc4c0b958884fc79578d4c91bc403756c6dc353740df2d0330f32e1ca91136933f2491c6e7e9a01ea7bcc87088d7863e048fe9796d955ec7cf1d166ac36a431e4f858d93d8caebc6ff60a678d38ffc0c88e8ee0ea655d4c1a46345556e4633ffdce68914c75a55f071d4e59a2eb0d6fb6fe4f28b63adfc590a4f5fc72812dacc547fa0c4985620d4019083eef115dbddd673847b79540a4bee6dc4ee8de267057e321c44aae047d7bef2302369cff291f6efa90dde97672ec3cdf4953f27f26ce62e77251fbf5077fa986dab5213f1f94b19e127\n\n# tcId = 13\nmsg = 33373036323131373132\nresult = valid\nsig = 70eddb0b9cdacf82add0c58a154ff2c0ca5cbe2877dbac3e5596de69c686ac2710a78caaf6492af18b42956c450dc4eb1a3e6fd669100d55e06b3428c6285254291fab9c80634c6f9c874db77c2107db37720b43982d9763cf34f79283265dd70f03e444158e82709555db72fd7d13a004290140c80511985fc5ad275a72abfa7ab878cf043e6694340ec6b3cbef5728f2c3c63747ff75906673be53800a7eac17a47debac1c5a9dd36eebba9c23575ffe1ed4ccd2fd3a4b9902f563b17f2bd9638d2348af175e1cb918a0681691a84444751750463325ebef2c40493f049c655077a70bf420b50917906315657178e7cfe607e9c22a23e67fb88590b753411c\n\n# tcId = 14\nmsg = 333433363838373132\nresult = valid\nsig = 0ff6e37a9aa03391e6ec8270b926c123c7e6853e01e4530382ae1e9067c2c447f2d21ea4f6b8cffea5cdead0e7bbf4c26c07418397f7dd85f4bbac0376aa099574dbd3142081428762e0092388142b351483b67fd8abfb5b73f10383d33fc21aeedc6a0e6f8a3d47f11c8b319425f9768cbbf498adee29e7d52611feff8596b1ef21ebd203397d5842cacf570d79cf0b4308a32d0951a7fbf794b84e540cb52bb076972f003ad59a35deb7af887bedfd26cc7b2bf334e242518978ff2e48224f89c7894737bb835bc353f4c0139553d3aa4722d0cb15c5e0aca5f5eb91dc9f4639aa81314038367c2779ba5521b250b5ada48ea3d2bc41a1680900bcf3cf66bb\n\n# tcId = 15\nmsg = 31333531353330333730\nresult = valid\nsig = 22bee45100f26f64d7d994187841d9eed5ae1af0601604b72ea005fae6e28cf0ac2ddd9761046eda1ee55949820c5545a0af3fced402bdd463f43070da8a4dff41531a0ce09b2eaa14bbd3713b79bdf00a144167cd2142df7aa8c5a24be69c4c1a728cd04421183658726c5765b36701f0d61d26d062baec16eb59b1594a185363d8eff993ab9c6d5a5899199169ada44b77eba624c53bd7b745b053c55355da88e6b83e74069d7d7e51964a0ad666ff027ec4792c6f139f1baaee769debc55abdcbfd22fe84d6d6c70a1cd14597e7e3c218b36f35f57d4b4dae3f1c1dee433259e961cf69c3e019438ab60dbdbae050519fc3620ff677d5ce9ed6fc43868e1b\n\n# tcId = 16\nmsg = 36353533323033313236\nresult = valid\nsig = 1b41b1021b3bd5fc186eed5c1d2a69f7e648d75a03b0fbd62104442c55a707812ef635c7269cfcb124f464d6532f28880b26f91b4f3f826207c0b25401ba1eed2b4895737080085ade80f13620c20bce004a157e708f450bc615fd35c1d248ed0f9cbfdc77222d847fa8143e85f3eddcddbb137bc7bdb2ceabadbff8aadee86aaaa217a3533939fef1d6f5f3b5277d7f8ef1ca07194730edee92cc3fc9ade2faa603117e5ab812ad5a375429ebb913fb370eeeff362727c9bf2901cdf34c6d3f03ca5adc849759ec2c8dd64fa24716af610749ce462f189a5c3c947e4cc65d66983ea9efa2927dd4d9054c2e0b969428b18aab616d3f95d24d8a725d2686d10c\n\n# tcId = 17\nmsg = 31353634333436363033\nresult = valid\nsig = 52449f163676b9a8249b63d0340d82305cf36a920f173389f304044503b3f5dbb503b8c09cae20a24cb6253a16d2e63559e0746f05c6ddd8fd657c34c2de6fee62cfd2d4c6c4258b138b7e827326110812b1a04573989b969c769d29c888e1e64546419d17a16ce9abebc2bc00f8822401ee1ecfb9aae39f35792338f607791acd3d7dfd3e6b584dc9382f558990607d26f1f461c5b57879d2b0d1b6f50d8ba23b37015da559c41fad4ba3607b5cb40d18c2131091102a4295555ea37e9ce92cc7dd2f41bb5eb30d02c305116c0f65464e8e9584d1757f4be2aa2814ce6b387cdd7ae78aa0032ad5935d74d4d56659e804342aea3a785d6bfb70c0cb44897903\n\n# tcId = 18\nmsg = 34343239353339313137\nresult = valid\nsig = 33c76df07a9ae7335f5e31b3d14d7412cc79c8761ffc7fb5528ade2e5088d3be3e269962088f356830f6dbb460c73a526057d57648cbc709c14c23d85f85c11ad5c6cc7e3ceb5238be9e8380bd789106cd10e034036873ba7b8ac9470a01cf4048b488782587e2e5d7b4d2116e34b94f9c3d22983115c0fe96b42063b4f6fef5943fbc891a320f09e62f36cb1a6d83752a1c4fa6b62899afff5118af7102e123fe9c7b2a51cf3056670848240be93aaa0385ed093da763c91726debaf1bb9a48df4be342a3cb9c335d2b3ef999da4eab94d15ba37b07d049f885572f47e7dc33b5d481b5ce1a3f8b3a4237befbf04f015a97217dae6b16e7d855b9413d7c2271\n\n# tcId = 19\nmsg = 3130393533323631333531\nresult = valid\nsig = 2daebad5dc34fd919164e3ef95bbad50efca0ef2364b6db55dddc8fd703cd046e12d2d2181002d3e6c79a3671e2c7ce180176c3482baacc90076da7727c9b0c958ac40f547376b44e4f266df35419779a4fd30603c0042fc473d4a37ca3f069a915d2d0ab95b81bee5366c053b99d156cc31b2f3d68b0ea5f98da4848eb8a4dfce8ba1e167cba0ae2584757e5c1e46398d4695dd7a96412e2e1c7e62b3475a6689c5a80cc6b7c4be01a3cce6045a43aab732530898e60f55aff427afb201e85694b61e81ee86e58959a174ea87dd7f244d29c616b85cb426e7473bf568a2649f1efc40592b700499314bc809d4d9668946d60e27af852c02f6c7210dbf96ac82\n\n# tcId = 20\nmsg = 35393837333530303431\nresult = valid\nsig = 5c4799e86c698d3e09d8c806104ca3e7cb604d922d4373d7119324e95befda0669732294666e9009f9c7711b130ce531b1cd16ca5a147490a39f8726b3482cb3f2683a8a14d04ed59012005df79d2500730360dfd40f6d7f90ec71c101a686f02cf38c598efc33a60bd5d9c6d4b2c084258f865b8e77e802dc85fa8c2f59d4530fbd1e2aee005c3d446ff8f59c807f0664e5e62f38eee7be9b2eea3f8f98eb2b44a0848a7076271ca986de8599830a59a1289734774118a967e70f63df1bb82374a1a08fd91222ec77117f2af9706abb91230b06d5022e2a8784919344647a3b2660cb5a689f062ac84c3613278043be9204a4239169fd14fa05c34d8a6a6e64\n\n# tcId = 21\nmsg = 33343633303036383738\nresult = valid\nsig = 32753c1f0fff11b1aae620f21f4b25ee32eb5319413c201a71da0503d32077c911e40fae8a14d944bc57b36b05d85a9b4e2d92f260f6cde67739b6d252e4800c8e5c9499f603eced7f97651e1ee878654c0bb205ba39b59285a695619963f7f36dfdb7a2040552bba7ff13d047d273f0fc1ca3892e7692609d43adc0de6e3191f2ee58f3069531509a94de113fc10c3e5d4c886108394a55dbc2fa4baab0623db347cd0f6e6306af8973f0f166558c31901c9458ef274332c15ed9c4a6ff8df090becb7841ce5cdc40705b799277825f029582eb21890e23712837088826c108341028c96b4c6a0dd7b37defcd82622bde64a2d54e4749b065db7da5a515eff6\n\n# tcId = 22\nmsg = 39383137333230323837\nresult = valid\nsig = a2226016f848d96442f82bbc33bfbf098c4cad85b07915dcbc323baad479bd971f81faa49b063776147c448210d4adef7f06fef44baddc672501e0444fe8a28f871f49f6ec634bf4f49d13e4f73c832c978bd227bc1e85804122157885c8744d31f777168a8cdbe7a4742366cdcf0bce50a0f550cc1729f2089c927990d94f73cc962af25d70a1fc4da6df8457ddb5a4969bfca4d2b1964bae88226ab11047da7b6e7adf8f96dbd772747f29bd9b9361244a04b7558df62d84828f7aad2e562f2306a96973a068b176008b0c7534eebf0ae9f7979a0902212d4e20dcf162ab51cd55944d9bc07692348f8306ca90a80306d404d21724a28efbdd228e2080dc89\n\n# tcId = 23\nmsg = 33323232303431303436\nresult = valid\nsig = 6b9a45ec517bf838a535ed93fb36bb027471b11d20d0bf6b1edaaeefa25bccdf5881f34409a042dadbe4a7b3c41bf24abe66c1f7f37b92b9658f59c55fa88aa1632465ba8245c5f0c98d082fcabb5e9fb834d727a354f8f8a7fcdb8d3230725472a6a4ecb6f3d97540773e53eb45383acbe4bc81168e244fe769b1a7d5220dbcaf831e46c93f6ea7ca2ee30ce9281dd9674fccdc796fd6147be4bd99c53a12eacfd4b9b00972b0539e3d94b85911694ea98f27496b567a29fd3087842ba01402901d1bb1ba6b3c7931f1329ff5644989bdc1f7025059d0d069517fbb682c0be049ec7e38b614af1cf9cc37eab74e20e6bca468f93d3f13749557b70129ef95e5\n\n# tcId = 24\nmsg = 36363636333037313034\nresult = valid\nsig = 01926cbf92190fe7ccd7f858c260036a7a9d554bf636a82d43edd3d2cf0f5f7006c2e0d6dc43c7c427e49940cdc5c397df66841897d3e118cfa86f5188c54409ffc169e8f192c3a84896931d98ae8a9e83075e6dabe4d28a56f0a9282432511ab09a1a0ed420be665521936a1c9834a456997c0e5e2c1fc56ab45927b6042d3571163ba59d994b902aa5ed416ceff4313fb1c67334ed7be715d2e96c045d6c0bfd20f2f5040e09fbb077a01f982384ccd883cfa2fa25d35320746728ae530bb796f5ae6ec2c36aad3344ce69045b793052cf3a569293a2d232eab378853dc4030b91e1f08c31348224b774e8b71a7e23e77403cb26d1f2b1bb800c772860451d\n\n# tcId = 25\nmsg = 31303335393531383938\nresult = valid\nsig = 363ca23ec7d980a83a5f367cba3e9a2225b3a3ecaf6434b5a347e3baa5ce5ea27824fec727ec7b3ba2d41cdc9723f5cff3e75dc7f7b9200baaa2c02b4d8399b1760a1011231e2b26bad9326204c5079ac1c1303ac08fbae42f6a4032407e87915fa3759c43b29ca07a1a3259fbee4274b63a52860c6351246f8c1c84538e5e6f6add7ff6152acca4dedddab146a25bbdf0076e2879ecf93baf9d647b32cf32a9e62718eec599cd7b51510a70fd989a77426049092621c2386a82771b06a4c5b86bc28fdd630e76fe43f21c5d22fa63001da300ef9777c9dc4121158840bd084394d600a6db284b1e771112b56b63364f007cd71666902cac56323c6e5494d50c\n\n# tcId = 26\nmsg = 31383436353937313935\nresult = valid\nsig = 4a2dc205db899d51447b689d", "3ad601003eafb70a51051ae4e570c5125afae66427056fc2c9f71bc42610ef85ba0f49a2721247d4a77c6dc9f01429c2d9b909fc84dfb049bd351872301a7736195596a1c49ccb1b367544a190d188e4e66749731a760d76aa116fa4a189665a98975b7ec803e2695fef42eae7c7f8e274e4fb1c99ab0eebc76ad6bc8d768d2dfd5969181e78b3ee72fa900c31510f071a1da8b7589e49e254de8850db02b1be841af478045a847f2db9126a4281887e02beb58f1f0bbe67c9c7acfb49b5e4ec4fc76ef30654b5d3ffcfcdf7cc912c5e1f2b20d91bdd6114d25405ab65215c05c4ad2b6fae6662ae5130d17652ce42c0ce86c153\n\n# tcId = 27\nmsg = 33313336303436313839\nresult = valid\nsig = 45a2550893820ad511eabae35039a13457350df7ec21cedc1484530dc37ad332a170af8bb305e4bd6da78cfa4382045ddfbe2499a19d51838b3a553d7a849c49e284093e1f2fe4b269295a75f12dcd0e727a79c1f0e9cd2a89e295a355a52da7ee1dc2547fa43d96abef1a3b5121bca67cf450cd087c9d904cf797834057334f788c96763a4ff0a899068363621d90136eb530c32041ef3ede97a44be137d08c2a7019f31f8e27e156e509227860c723e3aef19685a5e3a10b78df66b38f299d60b2338bc6a943bc1b2f9261977ef4e08d1b6b42de17c4c652099d377a7ab983ff983c3bbbca99f79c8148f2afa9b0f1bee51e322ffc05b051e17d132a6e90c4\n\n# tcId = 28\nmsg = 32363633373834323534\nresult = valid\nsig = 258d169322a9546caa2b68089b481bd38348159fa9ed192d2eb60839029552a420d5b24644c3381a5ffbf2ed46072974918d777f1c53ad51f9ce8a91aff95dbcd817f50ef13ebfc9efb6c36987dfaaa96e37aa89dd7a32348906bcc22f4d0b5104c42181f76974651e3ced20d5412f70467d834cb49b1b7e1532ff417f91dcf653f18c43a6ad9ff4469600890f836c553963bc2379d5bd79ad338035f7f4aa6a27fbd924b5bc8d8b5373de7f4cdac75cbe0b8abd3961db17b819d46ccb4cceddcdb3636309d6754c6d82a61f5d9b9bfabd0c948777264c1138c6fb6064fdd5a797e551c1d0e545d1d32d63e1ebdfcb78275692cb50717910312da9917052cf53\n\n# tcId = 29\nmsg = 31363532313030353234\nresult = valid\nsig = 824d0372c40297e3a0059236a93f60db3d2514defe409bfaa2890f4d04cb21043ba1871b8374fa51f1c4d7392d0e244222b1eccd118009e46bbfd2a84bac9e84ddc5102eb4508f5b9d77450f7aed31cbf5b6a4032bb44fd808bad403e8b78af3756f472563e050526527debc1ec49ecf5d5c10f279d06a5dbb7cca188ba212be9fd36c7eef8b187405da50dfea140c4b604dc313f28941f2c4447143a1420b31cd23663252ec0426c8465ade55cecbb9b9cf4f88e2b4b7c86cc5e2c6a4fb25c55835a2eca1780fbdbb8b354ba512d412e84e73764e055514e10d7ea32ad7e1a3c20dfc53732d85fae40ca951b5fc18f9ab21c9001dae67c6200b9cfc6d142565\n\n# tcId = 30\nmsg = 35373438303831363936\nresult = valid\nsig = 8367893d5ad77be24a739cffdaa7bd414d66442357db9bb339a7ce862b400363d9e7014aa1ced3a8c31d65f247e96ba5649df636fb759df04b7a62da27a64025bbb9719c7ab1d74d63d2ad5a324db8718742e5438b780ae630499bea065e2215df9313fd45a57941e9632ce66fe13a5359900a0ad5de9261aef6a11c3b98be765c94a6d24fb7c88fdec9d6fa52ffe975917d3b3d68794c6fc899b0f6901173fa91345df15f1d08dbaa0ed77e692f9de80d6670a95bce1b014beeba77543baf4092f4b2158a1f27b62cedb0bd3f2cdd381d9a46bae1aa34c2b8c36a65d4e44fa5aab1cd188d4202227d6fd537776980ebe636dd81d3bc0775bab23ccd9623d423\n\n# tcId = 31\nmsg = 36333433393133343638\nresult = valid\nsig = 99f149e9940d2a6eb2e824b48838d56f383e4503cea71e9ececaf2a6e9d616c1e941fc0f8994a0373ca6325f6de2b76be043e4812d361d89cce166e7c0f4ae8e0c2c8aa053ebe4568e0c5434acb6535902dd13901446a38d7905eefa51a22bb5b2a05b242b061643a8b1538c342255438d46824c43c5df1fb84631147b9cc689d7b828f2bd5abfb48bd40a1b0ff6866eadfd9588a0361d9bc6a076b978b9f855a36732207816c8b3c426914c73c9613ca53ef8261fc30dc7a15cf7c858609265946626000a1465d41b076ac9ded93b86e95de58c1a4d2b5cfed5d311b6f24cbf257fb03c47e443cabaf1e766167f524e6fb665e42ee046144f25544d46d34efa\n\n# tcId = 32\nmsg = 31353431313033353938\nresult = valid\nsig = 20d044f045bdddb0bfe994a34b5437e61446f9568f3c7d09137430cfa17e3929ab8b849ec7cd632079a88f994c0f4a0ce23f2976595df198b4f1431205c29b3fa1d37980855446d25327ee669324c3666022c0100cf1bf855c8774f3aa4898dace7a16693c614eac00cb337f05ec2588f670370c3ee40f29e8e900da16d1dd28aaeb098f8f3b918c562f8c2512af238ed4ecb3be4ae39374eb638b021419a3e00890a4eff70876fabd74eea1bd56de05dca208928d434e7342e9179471e958e235a298f35edcf9ad77411f824d5c53b4308cd08b0443b58fc5a868399538e5294dcbd2e94d02c719aa91ac12c3839bea47cec649620b73235f368fd5d977e033\n\n# tcId = 33\nmsg = 3130343738353830313238\nresult = valid\nsig = 4c8d64aeabd2e12c8f2e3d31ac3f4b861723ab8f9a52cb8910b298fa3a735bf91284e9ad92bef3995a1058fdb0f696143d92a99c69c233f60f64873882c1c9ca8e54cd03350804aac319747c5cb8ec6e42f6100474158111b30548519e02ae9ab39507efe50b8b212caa82305d9f2d2c43b2f75c5538b0ffe9423e1044b5fa05bd675e1afbe6d22e73ced8dddb3a00ef37211136838bfcd37655203bf2c830a62f2c707030e2b964443df1ea24ab1271fd06b3d6c1ab78b13374c086edab36267ac065bf5ad799d2f27a6f4bae708be1103841aaf21ff547474634e94c7ffec8b4bdf81cd00cf0f0e6f234cf2d208e2af2e2fec001944e9444b005c8ed919903\n\n# tcId = 34\nmsg = 3130353336323835353638\nresult = valid\nsig = 0e97e294583f528af631e44c02563344657ed47783c119a9d28d6c0f39b6ebea40e1847b9f2fe2708bedf44d2037ef4ba7464c630b8ea5bfe1c66d4b8729b20ffd22fb5721199e884b3b314ed1a6b8abf11c72314dce375aca1d02aab773d88830d1b56e86f45b1862482242d9ff57a1473876c476c33fb8228420f3a6a31f85b77aec3a8d60b383eed4f07dbade1020f5afcc08132d0423319e85f51235b4aa5e16c0b183e0fd653e594c6b17f25d055b410b78c890f29c7966a8096cc248906084176e090af500c9c5d9235a2d35f231bae74deb9b860a541d2bb933ff0a200ccff8ea3642e3350562cf29dc2c1100401a9ae0c0f5e1e6420b219e34416254\n\n# tcId = 35\nmsg = 393533393034313035\nresult = valid\nsig = 80aa94e49ee824191050c8bbaa73b352fea2311893d8b8e00e61a2d14701783d364e15fc09035482747711fa1fa72629460fafdb23474564527447e0c05be2ba895e2dd1853b9e6079afc1464f7c8689b2ad74f8cd2bbbc7690c91bfe2671bf3fdb1a43927c5e73123f4dcddb8dff9f06bf254ca2cda0a039939ceaf2e196f2cb268eea37c515d0082e5e9b4a82719c6f5ddd6e6a779054325c1ac45d6c2599f2c83def50881cd9d3a8508749646c9296ae2429a96f580d7cfc54b2f08726ed3caf7c3e5ab37d32aff309b1f34c1b8d77e2da69b619e3804ae6ce439e796f86340dd0bbbe7ea823857d9e4eb1aeb7604fa16f4b0683f78a8253d00fedb5b6024\n\n# tcId = 36\nmsg = 393738383438303339\nresult = valid\nsig = 1e10e4135796443ff3a815be4c873f9f61675c85137ff4397f600f4f5ff79634aa4ffde2195419fc78ac82eb7be206f91443b12d743457cf7fdbfac6d7f66fabe26fba464d7f984c6a502b19c8d4b634cded91d4289bd84ea7b2fdf2e6229bf47b40feb368692f60277eef9c0228bd315a3237458107c8fbfde830f8c32acc4d172e8eeccfac19e99021cf8122487f93175981bf9b797ff869153b8addaaed1f184a677fd694d88ee0eda3959bb3a0d8f66c361658359eb117eaa91f02c6c0889f69f9a14fad91d2fa443d2bb17f3aaa41928546e163ec2d09ec5cc9758c7cda12fb29692f09abb987a135892f17afac78014624298b1af79a523fc0cbdeb120\n\n# tcId = 37\nmsg = 33363130363732343432\nresult = valid\nsig = 73e39468a5640718bb56f26939ca18406995013cd10a7a72e65d2e6b1df2e841c1a7394135ce0e5da4a830bdfaac5bc5b2d8ddbe6b5098a3d9de96cc639823f7a1b23f769ba18d0d4772c1e989891a4d60a95bcd42160a78931361522da1ce1f10204f57c519a10c2cc9ee3145a0a2ac31c37b3b5e5572aaffda559f05a684402bb5c3b28c6a2ae263214073999508d96a96c30bf02fde3de162d937c4f2b31ffdebc42f9267e621855fd18eb97c0cfa4977c1a3765b4ebce955a9c87130baef1853497407b1922be2f43b6deaf7910d6f8fbfa97d870f16e17a3b9c133be1391e847e103096fee4905f246facbbe8c95f62d15f302cb27e8d4b69ec249af4bd\n\n# tcId = 38\nmsg = 31303534323430373035\nresult = valid\nsig = 40e3504284c59620caf145dd9f2425c39c66bb4e0d7abddd694b810be4a9e2f728d706531019e7e07293066de0dd6c7c68ccf32ff2d91dea74c592c504916148551c99ddd5e4ea0a906500341b1f7f6a03c4901827fabddffaf1f028139db5292554186b867a012520d554bbc42b1d73d52b397a7c310e7d195037f15fb1fe729f577d1847894436b9828eca4fe881945c1a38a40805365dddf6cf7708cba2948a15b756757d6246dad90985222e4baecc7823e4e7e99d568a9da144a5b556220aae30b8a8d916a050a869c70368607dd0092ca9b5a00865d3bc1ee0ec06df53f9828327127f33a97796f6b0b255f1cee34328cfd2ca1ea3e692d0a94e457ecd\n\n# tcId = 39\nmsg = 35313734343438313937\nresult = valid\nsig = 72f7f4bf01a6784face7d31b19c19ba1c75b16eff419f81b39c1c17cd489ecafffdb2dfeb33045cf679a455336bd6869ae61109043687293bf98ef7ad03afe6e71ce4d43319743c07c313b12a728c8a98256bd1fd735152d1d2c83de2b8b57cf9bed4691ade15eabd261377c8e26bab03d0da055086dc4ca5870bdcd9ef3e7e0973be871738a3e389d774d5d04d71ae0a3be03746aa4b7f20afbb3a44d9163cbf4e675e36d01f016087d4e7c68b2e3020f6fad363948804b0494d7b38d2ad4ee1288bfc5166b59ae3db2c2c03971fd42d04e6fecbd36cba6390fdd878b67a2c6565a7826671144712108e37adbe8198a2bb3a371c90d8c6880dbcc948cb4f775\n\n# tcId = 40\nmsg = 31393637353631323531\nresult = valid\nsig = 084cf6628f8f96ad842105198bc30a72bc3ea4aa4bb01176780f384f9f4ef2dc9b591d042c56c898e48d468226a9a361a9c8e0b27986fe6499112d9f425e08c778d01d3b221dc110411006373ff903d78678b5b04319b5f96ad1", @@ -8406,9 +8716,9 @@ static const char *kData302[] = { "79d321ff88830d47d4842c0b032c27a181ac06a42cd0bfedaf75f2daa53f64eacb5986545bcf150b8d433e66b698f2553f9da259bec319d8c0cec05d9c320e7300463d41eb077028c1e0a7d6d87d4dddf54c5b78d6a15e4527e37110b9b9ad2f3b2dd0db591227d41cc9f26f2349581dd89e0ba639d0cf9f8c86fe819dbadc688522b58d7284caabf843e7143395255e9a0d710ffbef6ad13f6a9361e20d2f6f5a414f5\n\n# tcId = 83\n# last byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 5798785187910703680cb2109f492c3f0a91b4a8f11d3da775aba891eedec3d76fd30a939f5d7a2baf7290c573e886cec8ecec0b1598f2cd169d53b4abf8accc09709187f32a12c80fdb42ed98d9e98b0923828f0e38acc338234f7b7a0ee377644a655f48816ea4a5bff0f6d63c3945dc3aaf921e9404864594bc323c1f3ef42f9361ed6cb8fcff2994293e17865e2fad2d885277251fa24d7e7aacebc48d61c3b48047dd7c99826b3105d2f820cd62404cad5d758da461af67677e39e55086d8fa52ea0334bc3b77f95191ffacd28ead07a34e4672577c4c65b5bb9d5f9cab6e1f1242216291b69a0c98714452f01f37722ff26589734cf6020c5ac9196374\n\n# tcId = 84\n# all bytes of ps changed to 0xff\nmsg = 313233343030\nresult = invalid\nsig = 3747c7c116cf30567e24fd4213c126ec84366a26eb304a65d144dd9b453054df4e5036c861b5807137934b1cef351411e40654bae5df6fbe3c42d763407f273d3dbe059fc6412a366775603e064b1561a58e70860edf954dbe666f8fe44f44f87df3b0e3f3e19c904966ada52f00806f975f256d4a855cee973e20f33c31f9f2b3792fcf326f075f86f275d8ef8df2dd0abac83d491d485fc167cd40f3802f66036df4fd64fc441ac8a25b405d5ef960127623c269ca836671a66a6bf2f39c0792dade17564d31863c7e0161ee0bb88522ac0c9054bebcedb603a2d18ddb0f64a91ca5a2f0086afd0d8c07cb0c1e7f24d12f866cdcde46d663c1d4dc7f7c6f62\n\n# tcId = 85\n# all bytes of ps changed to 0x80\nmsg = 313233343030\nresult = invalid\nsig = 1377d4997c03d885e4b95f0350b1c8091a4d9beef9533dc6abd194a1439c383622b9dca5a49da247cd55c02186829f695ebb007ef0535c4757baad057d7bf76dcfe37cb9181b0c290db16d0abc51ff32d03b6a8e56ecd270dac231c81e50c7e0203d22b991291fec650b9904b2539a8a330172843bcff0cf46f06e32f55bec1f5a734e70ec8e4e8883e3c22eab7561d9c76737025352b5c9fa9c76eaacb909d23d0d7d7b6f1094ccec8ba94f149f81946faedb39ac557cc28817c9114a89a6f720d849f90cb23ad202ed4682036b3cb70b6fd5df0225900eaec7a21e39fd433d3200aed4bb4abc3b531393fa462fbc920c918f1938d33ca86e7ca3bbf1d34d74\n\n# tcId = 86\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = 7d0f3cebb4372569e8f02df9f42222151cc31659df8d5078e9ee8e91030735d27e66da8c87039a27ac28588e8431d7ad1583534e8570318cbb2554c07016bfb02fe59af00576b7908286f4b27e36f768a118c3f3a1ceaeffee03a1b67270c3e489cce5c5f1171e0a8734553403047faff680dbcd70bf0fc1f0f4461bd4e68c6c0978da3490a137ddd8f62bd79c6a1daf70f7a9a3e90056ccd41c62f04915bf128f74dabcc47cba85b0fae47a04da32e17799ca150814d27793816e6a198390c35d1f35abf6816761a5ff0c28b1e60eeed244b1f24934174a1d2c469475f3eb8842eb9f5c6224386994aff9579f26ea7d73c668a113ef7dee8b2bda576135d452\n\n# tcId = 87\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 53f2db262358c21792eca635806ea1c1ad041d9334e977a25c1de0fc8233ec6f01737adcf1fb4dbedbd0078406ecad921e37c77d4585b5eb5ecc74c07ada1864a3c13acaba9372f852aef55ff2dc42c0aaef74bb656b8e0beccb7b9eae587fdf3b52eb678af1032e60ad12321c9c10c445448df523856ad262208a06b8817ee229df825f080a72d5e1a43f222215824a8ea6d455c80b2563c65be1eaa0455714ae576ae67e46d006934cf0c137b8c9900af9ed716391ce96ec43296e83a5a10390ed91f2e6753ed0254f0290ad899462b3b7af42c3c5f0893863a3b5e6052d3a6dee554746960a07fb6ecdf781e47b96023ba01cfde4c7214611a1be5735e2fd\n\n# tcId = 88\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 11e8938238a20f0e6947015987380dfd88a1661606bd05bbe4298f4746e81e3bbf34aeceba5360f1839ee0d7d7fe3e578cacc2d24b15eefe2064edb1fd04ff9a44c0a600ebf00f64fbb1ead4246e5ffbad0c22441ed073462f26e30b61a0a9142b4f993d1b26fa32e11382da33b9eb5855cef6736bec2f4f5bc6bf82fdf7da62346a4d9696c53e1cfa789667b721f32f7779daf7df85474096a9e9a7291afc76df3a66c7a0b997b41bfb71fedbdb4e65095efe1a81d35b66be55432e0a6e33905475b46a94e05bce7fee84645f500d8ebd7c0282c35f22774e7089262210f83ed485cd2b045acd5d62b4bb53dcbeb2588dc6535518189cb0220a7c9406e454d6\n\n# tcId = 89\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 39a8e947c919ecfad7ee28bb708c1f9e825036374ea0f610bf5531d89b813d506fd00bdc15850b250ac50fc556a676c894fb641dc650999eb6239b91e2c755126bbb9fef5783a5ab834e0ad91c60e720e80e096c091167a2a1dae838a16fe0ebaa8efb3573c89ac5d8e0584b5ec4e2168ef097f937ef0f0d2a2f964a8e6a810dd15b9c27b234d788af3c4f54dc97035657ff19f2835555dbafd02c4ed3c76654fa868babb71534bfe84674eeddbfc2b27a517f666bd03a27d8173bb92826a231cd9a241c171445b416934ebec5f7eea4fb41a61937d9a98f61b2fd1ca8e2be125e85cc8d16d553b114ab72395e86fea52f54edd853e9c5156557e38f621b975a\n\n# tcId = 90\n# bit 7 of masked_db not cleared\nmsg = 313233343030\nresult = invalid\nsig = 9c13d877ac2bd8c02c11e29ffcc0c1046dbc9870177e843c30b499c2bf7fd09daa43469caf2b8c3e955ded95e4d62209f7571bb45593f4cd8b0c7bc9470a8a693837248b5a7854dc8e37e752d949479272642994182061d7af80b0ac6f6e984874c8cdc6a5d7d17dc9e9de5ad12120cdb9f6c0d09c0e11b87b3423e37ba9437a4f76cc1e6124579e5f79832b89710de1968ce46e3e69fa185c0a924e8cb5f996ee5963f6826dd37714de264d75545e8509caf8735330cde7ed4228e5779471827b83757c466022117c45d598f5a4a7fed7be4e1b4d320f894879061a75d1a41efd8dcaf3c61733ed8ca2cc2f83714f8fdbc7a97cd6d6b97ea3d36ebd69890633\n\n# tcId = 91\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 00566c95524ad0995eda7d668fa08e8f75bea868b60972d6488cbe8939bbde68fa5206e671f35555f628fa707ce7ba0f468cfa8b9737e0ef64e0e23c901e4965ccaaeefa9b84363a3037cf5f9e044e295fe57f32c1125ca70c639b22732aa4c4b3e5562690bc1d7e7e74dd01c674212dcb63c58fa23333d45e1e4ccffa5d186443cc785c5ece3f2d7a8995e25de6a171cbc960c272c2899f6f87ceadb72eea1be085245669ac08993591e72bb9aff8bc29388b35c99f1ba7477af9d16754894a50d4caea4bc80e2aef2ced27f4a1c88be284bbb40cb8ae279b4e38a4cd8a51a92a279a799b3316c2938e1386043ae7ab1d8605cd310d7239c805a07a19c7b17d\n\n# tcId = 92\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 2b46a0aab5f573e32ffbcb411cd99d2f90aa9b1abbc600b0cda0d824f79020aab47a2494caea20fc93017e77b99eb73a1f8a550b611e2747ad29207772629c2ec40918c07adef1c90c99a15cddb9eac88955b4093a9e743d2420b4647e167bff8ddb07ce197db89d8a7d3f327058a41cc459ed4f6d5d23dfc015479d95e195da37f5b1fc318a3f74a0ac5fe2b9569c7fd99b8eb3ed3967a5eda1d246a3b225548f67ff860202033e7164d4b99dcf95f4232d18a7913f7258a33179133a6fb4ab5a4937b642eacb92908cf79495745abc583524cb0236fbfadd2c7e8b0a6597017912b4737fc01432625a508355869670bef25d32afe6753c38cfd96ec38953fb\n\n# tcId = 93\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 3b65975357ab2a410c2fae7f2f0381e6c40951260451f2eff05f0dc707abd013a996fc10658a6963f462877a808f61ad0362b9f640750b19debf3d59692134e357a49ed3693f50924b7c8a1824ccafcb4b93f7679dd892823cd479895d41fd1c40fb89fb1da19bc1fdc72eb038782f24ba3326428cfb166a475a9fd27f94d1a0ca6fa0e6a0d2c2883db3eeb2c0a59474da36211695fb811b9e8bc7f05ccb1f50d26d71a2dd209b0d269a736610c7dc1f7343a4736fa2b8c27827dfcad49bc4a86822cde1579dfbd646474f11e1a60f5e4ac2f2a3a5421a7baa9dea5d24be03cb6fee771dd808b67f886b37be5a300f6551d7e7636e9997b3255ceed5187ebcc0\n\n# tcId = 94\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 4516c8a39b8544d1c65d96472fea0b2753060330e76e6f90f41ab349953d26ab1b95fd87484535b68c0afcf1542a9b966a9bf98b89a53bb28877b34d168a4ba8201215c55f9e86d30b7159093517682e6e956078947e54e3f3a779da032af7dc6bcab1c0b2a6693fe0eeb9de0d158bcc125293a6f10ccaf1499b6ad912ed5912537e3c3c5f18eb0ab8e701056d7b973b8b61af918858b87152b6c40671bf96735ab1a112972346e771e7cd9482f6f59d320b8798a271cf21779747f964281afa1303142eb3e1841772de825b4b5e68024dea014193c4e1c206bdc6121a8f2d41837be3d13833ed615d5b9df4ac4c86cd25344fe1022df0adabfe2d46f7d9f0d0\n\n# tcId = 95\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 96\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 97\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d4\n\n# tcId = 98\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5\n\n# tcId = 99\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 000068caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c6d36\n\n# tcId = 100\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 68caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c6d360000\n\n# tcId = 101\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 68caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c\n\n# tcId = 102\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 103\n# PKCS #1 v1.5 signature\nmsg = 313233343030\nresult = invalid\nsig = 1758eb94588e6fc4f50c1be1afcaa41027869f304cad513b1fb12c2f446d63cdc05c4830a7e3e630da7b2da4f7867cc173bf6420f9732277282596de41ded32e21d0cc31441174da8765f57419c7764ea758f55bc17646eb100c435d1ac0eed6fc7ba6de5f832094ee2f479979765e05ac9976788db3c241a9e32a0da864f0019a87646ba623d63f4411af5dee1be9ec488c7e3e1b231479de70b9ac5f78a17b1f4120aece45f26c07e7bb345fdfeb05e14bcaacc614672a465fc523624cb19f66f9c6c3f642b832ca44cb25176d679f0e05606c3fed022cac24c2bf960a406d48818e3eb7ed53b0446032469047dfed95fc18088c92d91d93722c47f88163a8\n\n", }; -static const size_t kLen303 = 88303; +static const size_t kLen308 = 88303; -static const char *kData303[] = { +static const char *kData308[] = { "# Imported from Wycheproof's rsa_pss_3072_sha256_mgf1_32_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = b520065682633ba54c9b713b2ef19cdc1fcf275ba1744c2350da7307a20971cc30eefa37d1667d23d20001a674f0e00df4f9b9e1d5fe7eb85cc45cab5dd625759de83017995c93d48b126df03aa74ef87daea0c1652dd370ad5d663598a383cac217a208b22c7cf0e448cc7ae0555f892ccb8ded6894cfb0c328cb542be0485d860ca77203081f3b04c6f55c5689b1a66b1c24819a4a7ea55f32e00f61accf4b411bb320a96c990173b63ccd74e7da7df5ceaf33a39a8acb89a845a594b164ec6e22cce940eb06f2d487a8bc4574451878c2bbf57d241f76586e0703bf5f86bee832d05b75fabaed6accadfc1ec2cd6e619dbb29b65d6e6f5e118ad52d82a955d21005ecd63fb382f32bb8e2e1e57220b345cd6422bdd84a91495d0ab5775b08139edee960dab1b4ffd9ea5b27398b58e6e35211c3581501e99bf5e3f17fd79381528d28a4927e28082f45bfa9519f98ea663dc84c50317adf0bd5da98b01459011cec61800534dd5afc5a567c19e4a400f06dee74112083b5322615c144ce3b\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 8e10f23f49011d761946b283d7152e851ee76e5caa1741b0901eea317d8945f2a0368551b3f2b3a6a0d6a939aebded8fea0a96dd1d037be33b1c35ce78dc89693918a99d547a1d892f4047c09fff7a6523acb0cb0cddebcd4a6fdcc309a466ca9580fedf032bf56154f8d79d5c4686abfd2c7abd342b37e5373b59a07fa865b118c44f2c44b851306dc97eaeeb638f14bafbb09c81996beabaaec28c19f06ffd59dbe3080e0124e2386418052735f541d496322c03ebee6e4dcaba24dde9772a9f079973df26e854c255eb48df50c01d49831e54b64d0ff862d03fb4d82ff204d303b537176c50ea56761a83d0aed8ed2deecbbba981c8aacd1300051a864d1efdc897f31383ccd6f181bf976a75e7a7613b60b3cb2a6f7ab8636f672990c13017f2981c11ba36096cbea898f016c581ee859e950bec195cc4e376e134341b2fd3e3d6181ba4d377b2aab6a148c6ea8cca9ee3478297e901856ab18f61c0233c899841e5da125516cf5274dc1b22e2a51c922daeeccfad0f2a8bf84e531bc4f8\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 22915cfa1d7dd30f50b4c0e4cee42c5f0aa1b7a6644f8a11e611b2db042b122af8211ffc1dc220b435d8919cf64d715b54ff8a762f702b365cbdab455509b97d9b310011467d4186647b957e2efa404aed3b84840529bdef7746348385a1c6a2ecdb88d1cc2b40b36c346386739c39d2815938e463a35348426f17d32d633b873d6124d8b49a726743af7c0e56d63394155b63089c63ed8897f8af2a2260d33499afab11c911faa754ced5acdac2de571f39c2768716e4308244a99d1e65da7061d2feb8ec8b4e517bd5e19cac626698479ab2019257cf83ad7b641db2345b38006d63f84b41772b90037778389cc30ed6aba6af212d9326792af746d7bca9211fa344fdc2798a490aed3a2840620c2a85e3d9b9c38f2330072663e16dd26bc414c7d68f6b11d2cd3e0387c1834c5e2262a9e2dc1bf7c0108b4e2052566c7a941ef6b38c8687fd7abe6add2b745c2c2d680ae3e5646ce2e717ef9899c7f3fb1e3088e8c0587d86546f752771819595a7a3d422820ceaa12e3ee671a456dac673\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 8f9ac1354af4161d0e55b5674821d02823b3a6b3f79cefb98cbc77f9ac2d91cc6345f989a7828132f73f3630a247a936b6a057b3e5a2fda0c5999ea7721ee8880960c24cd2377e869cca1799747142d57ad6a8d83ec9254d89f591add11a758e1ea1e29bd08f624d0e28cea52ed5eed7c0f5f49d3533eb1cdbb2af837dc42942f9a86b5f4e2d5ce506697ef067a344949bdd89afcc25978af4d50c300bcd0ffc9d93cc559e3ae1a13215a1d3f6030827340c6591061a5ab7e65153b1df8b25e1421f924d39c7e6f76243c1bb9ae4063d9a475cd2ece45f4e288fe0720074e87868d70a5584a9ac2b47a56417cc76f15154315545a3ed6704b365f15d34320804469c3b09ed211cbc9e9e767b6f21fa16f8641d8b78b8dff8062a25b5bd3b6a38cb4706c42c1fbbe66db1c05cb57531132eb94fe1569735c33ec491c318a686c837ac810be4afff605f92bb390e7ab3cd24c0cd997cf13f112e5aa01746f43902432639e1eefcbd37b413c586f057bcba40a8f1251251e84cb7c87c53c1d1d558\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 6e471c9342aaa27bddf64b02e8805611a13770b22cc3d24cdfa9a2fc14865f59344c288cf15d4c8785089968a12e9d3e63b8179489568743448f698f316640146322ef3b611fc98396cf4a4757e48ce6701f123fc0bb8df80b63cd2371522f8ed929f7bdb709d424af6eab2eab212b43afe537fec7bbb9dd02e64f116e02ad1214ae931a6fe28a5982029088a27bb95ef2ee46ad212083719327acab5ee51c82d94d5b14f6dffd2242ddf9fbbb2d03f945796a3e35346f2334ca6b4ec5d9ed6f1584688e661951e948cb95fc5cc04e90cad98c861ddff514c60275650ae3003185efe0c04356b07f361f7dc7e17c5de479cbf119c2910aaffa032aaa81ec9eb9f7e1ad21a410ffce2502e4829404d01ae090ef289bc28c9c3f37d3fcae33e1523b3c9b81e301f51d046196fc15c90d58bd35a1fb11fa04621b32cb61e718a434a0aaefcb676cbca888554d1e84d43b108fc1cb123cd2d300da630fb77a3ce29a0f53af32a5ce81c5ad772a199d1180a9e2f090847cd87ddf7b39aeec89a6b492\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 39f7dc9010bf3c200df551499404ca40346e58ce0c56271e2eb7835187ae57a7b9a0688c9b088ad85e128f56c0299c437a1a9a9104f3f51aab7043d5714963e46ace5d8e435fd3e416dd61474e9dcac3ffa6c3f0ebc4ada987c4313ec36f2c43d2dc749e496fbfad639dc811304388990b98cf10ff616a866bf5d98cd5199bb74704ae4ef365424130738b9d81f893a5e2316ee6daea185c170f69ebd2ad455b56676ebda9d0bb0bf4d3357475ed8166a3d2dfe6e093c3a4bc5bc2fc2275e6779d809107b621138fc629a6767d5809c85bf88b46b14a8e4ee9e310db746f4c0a79a3d36f6e305125642dbf823474fb913a9967a6d120e82a79ace48c501fed8dd6edb9634df909fe6775f8f6fc5b79f5881e1f13b7cde37c7c3f97319cd612f8ad2b1ac921079f18213e5facba0b83c17887e69501a6d2eb37661f03590af1a15646165eb785f467cad0c625947e8a8a4a68f8938077d5ef7f1b8b4da0d09ad5874bcb22ccc4ee36b9341b974a51a1d6ca009ded4ace9faa99d924a23421aabb\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = ae8472e987806e5110beae330056ff974abfce7ea9927979cdd14346747414cdce06a9c78eb1846c75dc288d7da531531da49ba7651d3a1f79e3297fe37aa73e075cfe5ac004b166526cba55f914e0d2fb1f12a60a3222dac434fa378c2e7b0ea9c2cb5e22cc343ea624ad6cf5545a61364cd67d6dc23d22e4888a253e940ff0e0ce0207c1feedccdfa10f50d2363bdbdf10893e3967d7555fba157f9a450d6bbe63ff31777bdfd402afa72c3a2181e5cc025443cec30d253653db7e82eb7dd488e6491fd25001723eae2e3106c7b50c2b73c142a4a31ec4", "3edc9ec9011383c99a095b36258a0a77aac2af19b26af8a166b130f7f57f03a0e8007d5ac0eea9ecbe14fb7885538a22c13de5771bfdf523fef9c9b5f52ebc2af7902a0baf2a33923b0d0622b8fd5c938214aea4b9e7f0a647c5520c3a94a29737b95cc623f20bba8eaa3e9db60116fe1760d9b7ac1841e7586aec9708212a5bef2ff67c74462883062e052ab9fd90ffca0f0a6166b71a93bd289a1d4acd2d6ce72ae0b91cdde72e\n\n# tcId = 8\nmsg = 343236343739373234\nresult = valid\nsig = 5ce99063bb6c6bf8e46772e8701b63abb2feb5f88c5b76b76c00c719402ccb399d6c6d8c67ed5b6fb0f1dfeb8f8dcc5bae03ad57c1b0f53033dd2503b9604fdc40eba51e4b03c91a8d12b1a3b929b1ff1e8e79cb58d788114d53f7e07d87a885f6dd4d26560583986f7a84dc466ba981db06beddb1fa80b0a444b9a56c82f98a927977da9fa1ca83aebaf2c43692cef61b12995d8dd0f3bd6bf061025ddd34af3e0257203390a80765ef706acf7df6f43210a7928673d260f2f3c30a9bba9b08735dd9aa3ff2fc27a2ee9e130c88ba367c3d1428f173ea08e273886bc153c11e24b05cdbf9b00573b013170417fd96b0106f72c073f1216ba872eccc9f56ff9e3e08bfde64041d996b117a114b723cd97f70e07068ece643f58d5ee5cadca7e24a18b0a66ab724fb653a01c5749d51d4bf5408d2d2008b30eb3dc20b0e14510c06402f789276b6237802d608ab49378001ed6f3604abca038e3c7e057d95e85c9e668f397bcce18765132142d6b0f118c511e57defcb316fe41dec06b988d911\n\n# tcId = 9\nmsg = 37313338363834383931\nresult = valid\nsig = a7e0ad7ec64a600e37b70dcaba9036bb3ea95508c961668c4e051c8f3faa454496ce6c009ae9cfeaa2c194c5c9278e46b75bab40c52f077a4fea175b2679121d30b706139cde7ab571c89f4d19abe07c67c70afd3e4c2c05d60c92bb2a639ba389826088899605f1707ecacd88e42491debc78295b44f4e09791f9d541823ad5c48952bd3151ef98ace7e251d12ebcc9370bc205a1688c9a5e9190cd082da1ae94f22eb2b0b46b2a5eb2273b0b324215de187d685471a07f673d43e58f36c1e0f074765dc59c1ebce449229361d07522c7f03f27eda57ab8bc89ac683d27ff4f95a328892507952f14d9e3d8643d805c327eef8bdf13ab7e6634a103fe92cbe9e7b00f9bdf8efa740866c044735799d59245aafb8d04e8bd55b66fea31c9fce4cedd4abe68444fc8a6dd550c3c8f1d6597bde001fb977b7802e0263b7319ad7a6c1c4a6c558774641b204b6d3eb2a2aeedbf4a38de6584031102a1958fab6fbea9976793bd1ea6c9aeaafe81515b954c7615f8c45538f40a22adf0ce6f2c977d\n\n# tcId = 10\nmsg = 3130333539333331363638\nresult = valid\nsig = 6c60107dd182d5cbf4550e7a6e3a652f731503d8fafba3a7aa52e7ac93d4de4e03d911e058ade448285bb9c3452b60897c099fd4ba22ff4194eef1a3fcc3250cb9ae270c33ee767b2b4f18852612e27c4ab31d8ea6ccbf122a357a6d6e527191a36e0aa2aa925f68e158c8d5decfbf8484d16c2ce906826dc4773d59fd1a4032c2f576a1ae8374a13cc24abe15ac1403452ac7cd8a643dfe18c911ae34f773520fa94472c596dbd6f5b93227951ebbcbacf60b18e5a60330eba9bce0d8a732cfc27c7c0b9e22070670a165846d9d7e9b24dc6ee9759347f5c6320b63789d5ccbe9566d9f3c534e152f2686631a41aa85801a31a7f31cabf959cdc93755a3acdfcf0ddbbc5298e91fbbb2675565912e5fd95cd59b5744833222247aaaa5a5868da4d1d1af590b8633dfe6105e0a6abded2497ac7e46650432cbf0b784b9447770b20f75b2618fb7e6cc6fc5cadb022980f78943fa9f784e5f0c8fb5192239dbd3293a38e6dade27a07e08b54597029f92a8b29b700f842fda55aeb3e0dda79405\n\n# tcId = 11\nmsg = 33393439343031323135\nresult = valid\nsig = 2264d276cce22aec8d109ced7a048ea44d627aee577f1117998316af911e98139085bc92f120827b304c4ca519743a33f7be05d8a49a28cd716ca65f6b976513b33a440b6e8ec5daeb85d6a5926dc5015a2d24d94ff1f87a073867bea137a7217254b9bd040273664c58d61e618ace6bc942c446401c721565f74fad5bf31475093752e3a67fb32231ec8d26649594f32c5d453f0baae51b20dcc24f0e5e82eee71d85aa77f33ab01cb588420cf672461c490db52dc2fdcc7a22ccb2b92fe8de0e3f8110c93e5890076db8292b76f6fe80ecf3120b4f3824f77e538551ecd435922c7d433f0467b445026d0371a49a73fb2ee900c094fcb8ecc4c01b330dde0561fcde6bf2dfb6d26f3c3d9b897342d8079e29226828a39d8fec96b53e060a771fee75b482b2e0e262069316bd50e8e210078ce56476f70f149bfb356fe1e490ea642ce85a8664e50d0b3f350806d9de3926c8b2d417facd926741022fafa2f7b10781397cf012697442ea742c11f23a5b5ef5fd10369207cca693fc8af57d22\n\n# tcId = 12\nmsg = 31333434323933303739\nresult = valid\nsig = 677dd6918bf4c96934e329a114002460d67d1e8f729eea9d2e8bae78f4442f1a480ff1e5d20c1bd81e61e5f92e5e42881cb1fc22bb7da3a4d21060bb23bb17c234a85c76f7591fb54ce0ef70ee7556905eb670830b9d10905d100f0c255b944689f23e1313b0448777c52ba80b767e07108818aa5131f8b75c84fd2d7b4035e0df9a213afa8cb913482ae0af76a997aaa0c8cb63975bf9c006d89fe4ea6ef035cdb4137103585b9d05150b086d7f329b70efcb428ddf76ca36d44af742326aa05039382af67216c12f7eb2dcf01595f3b78235341be0bf7ea30f6294239c7a4b1ead8f98bac805e88caeb482b13c5bc552329a47f1e26233cd24a3b4bfb6be6d9e3ae8e58f06c95b513ccd5c61685ad0aef627bebab0b72bca3bc374f49645e403bbeaa255b501dce3f1f46f9d74d1aac2f6ec5eedc5440e3dd9f264bcb1d98b855d1cc788d796919d014ae215dfe2361a1d13aa55a7163f4164cff38c5f62c00f59eb20efec26e0fcf66d37f12c7a9d23dde68f25620df1a4d5e5e55ca94634\n\n# tcId = 13\nmsg = 33373036323131373132\nresult = valid\nsig = ad825df96215ebac22f37e5948fdb2281bb7ca69fbd9ed6d3f4d2fb21cc6f9d07cf7779a264dd427a863f0cc36a812f125d6ed9bccf6c233ae8958299cfe645b17331131c32459377524326f2e9eb43124e2e2fb7a025e0ec3de6551b7ec0aff5d1b4c4c03e454efcd250a7c9711f21e71f6e347b5e7400cef50eed93426b43cd11cf55c34a9d6d1d54314b1f0869febf3b92b8db421c4fa000e98ab0f891120d7c0a91bf50e307fb2cafa596c800a05e6f42c577a02aa2169cdbebca14c41d10ee1bd415785d7594347f46e700f62bcaa5cd728025247f39c40edc0977015604e196fa30b1a49d84132469d1a870a57d272c98ed93d8645a7bb92a4476057bf2b134ca20e45da22cca2961fd52d65f840b07a87aa4ad104af67d7bbc53ea95016883e3ee087f39582b13e274df32aa419eabe12a9eeb08868425c0a1ad06798d0f7da987340313cd4254a4140a62f3bb1b76bf57a2c0712ef2105f4de0819f6c724e0a2d92f87683a2734bedb4fcecc75ff26291ad862fc3397a9f02e6eddf4\n\n# tcId = 14\nmsg = 333433363838373132\nresult = valid\nsig = b3c301918f5d1becd6c88ef04f908509e9b62acd207cb0c03e968b56d4237b4a23cead6fa5a72ea6472af47ef3854766376bedaf67c14a7913d48a74aa6521f8ac814f01e3bcb073e3b85f315bf51468c28444231402a77cbebd0cbfc98b06fe925f5d59b4353c21abb324696bd5d402e7cc5435bccd8eec3eeb8e7e4b5d4f8f719adc00eae9180cb3cce9dd89231b637651a76d87c0311d0f9de0f7c9bd7f6485d7d600bbf105e1fc6d3744e83528fe761c2ab0fa0cd5c386d2ee44b0967ce2dac3abf1c723868569f43ae09f1a5ee32245b11569fb2dfff08f6f40c0cf45d2bc7fc524a82779328f850ffaedcd9de27db5e1bd372a76fb60fbbcf88a14a2d820647f660a894f5420c7246d9d9401ad56d577b56907d9fd3b69e35faa40000207d704087e3a7011cc343cc94f99ba653da6451485a9fc17bbad2688b511ee68cd90288e4f5e83ab742a54be006b51fd75e9ea3ad09ef7112f793b61d5470aa16255db34a8abd5963b53a940c890ce89f27b8f7e535489e965f33a4b9798c301\n\n# tcId = 15\nmsg = 31333531353330333730\nresult = valid\nsig = 602883fa2f9a6ca35437d377fffa5cf5a5643898763960c7722d5a5b808fdfb4a09a0cd3bbc8c5d2fc8a603229a5de18866aa0c5d88c2272784784c883918fcbf47ac62f5e7523d65d6ab486c68ca245199e1acad7f087b4e822669105f4f45a50c1a43722fbac7a9b88ef7bcbe5796ac9601a09d3fd6201c77ee09f591a9d37f48b3e93fb6ee5d9683d3ef4d581fb2ad9e5cb2896bacbd078952f9dd04540fbeeecf6d8d9fa45e791ccf3027130d1f1ec551fb35ebba6ff329c7d31c5bedd65303d56b58f826f38917b3f79d82b442f4668ad479b7e108e2e59d88640c1da8ecdf719156ddcad93d568d9593dfc7bf0bda2519454cd2b1dafefd556091a2a13ff80c75bbe9ddb04b1e55f7edccb8a0832ef03079564cc367cf5b696be4e193001d8c3bc5124227359c7616381a473b07f31d6494c062b2a9151420b828b830f250e66ec570e38bc44e26bb83d45c7f794a9460b4b6d746c888d084a754ac7d75ab1bff232be49dd1fb73efd76fbda26e6411b3b1de8671518f937b8ce3ba8c0\n\n# tcId = 16\nmsg = 36353533323033313236\nresult = valid\nsig = b259676e6b9b49edc04cf3f6b06267a6af924d278c21f5994c2190d0cb667d641291361a8bfaee8236360a4dffbd5ec4f1f8d9f85b54c1bbe3c9dc35332443c2509f0ad7d5ec42571d755af814cc0ef48e514dc5342ca7653d535789c8c21fee5e547ac3c247c9be6b792199db48a17299b5f9d3bb9881ca95751132fac76d776ad02872279bd77dcb43b0cae7673e40907c1bc321e14637f224481f58b90f875cdc08c49515b4be482147fcf2e62126fe4c0310c0677eb7eccd9352a9cc0902b54e4b3454f3ffd69666d16469be958a54aad1d2a58eb561b4b222a4ca5edcb5612d03b8bd2f7f26302b51567b83fe1d59eeed36bd2ef128cf476ccbabe4eb55d8c4ec91a0bda8445972fb3d74a4bcee2ecf5e90f5bc19d4e9908e7aa284cdbc37d22ff4ea70479e8e2a9d2bf0a6f02b3a2d2643a34d7d4f93782df0607c806177f61963b60c08e4154a074e92b26c4f2c678c9da7cd9d16307c7309559a3935a8eff9593b5454a1cd60c388c995df971075c5397feb77f36ed8b9987b8ef3db\n\n# tcId = 17\nmsg = 31353634333436363033\nresult = valid\nsig = 57765fb30e12f08143d72d7a4232c91583d60afbd8dfe01c3b50d861140d3c5bd0a17c3a51dfad96d8ce0716348dc6f62c12c16bab5401a1fa90950e96801064dab2537a4cd0b5227708618ed2e34e2eab8a557a316a5a7c42b6b297cfa646cf8a90af59730fe5d34df9a2d4a9bb0d8bb1d8e5decffdda6f50863bde347c17ed88e232c4d3235b00ce5db088e514f3490f8d459eba993d31f99bb24a097c0e322454e6c6", "8e6c9cb0042a8fe1a5897458d097ee68e5c79163f05ee0817499a98f2af038aaf02c488fad86ee0c157fbd1cfb91a17bc00971326d15e1c02ab440c46b07c807dad0822e2dce9505ea75dcea6ba134b58ee9eb79bb70c2045c1a4e6206ee9e12909b1c3a7a386cde5fb1965101159dd34c586170491b3b8cca3a9b4f1d0b7438aede0efb1cdc9e7712abe0675ea9ee87e2cd8200cb08bbb85a3f87695c3147092e153c292e5a32475bc4800fa2e3d037070bc6f130e5234f5cd74c9109d2cca14eb83bf61747712b4b9c90933d2c25d876ba1bf7a8e601b472c154c5\n\n# tcId = 18\nmsg = 34343239353339313137\nresult = valid\nsig = 27c677b2b0b546f23d5c3ceaed4007cfff9fc1e0843de43e7ddee8ba32274954d79d9fad43c10e890266123f247abd2ca351a15b196a340b7753d4cd3756a091271a25fbf7834b05ee9c5db4a8a355d5746ff9b0ff61061ac4670bfc9468a4101917ca61bf6da1b029872bc3fe14a306d4d43794deb2a1ae0a4aa5f432e9f33e536f39c249fc3ffc294a466e7bd7b3d35e7ce5f15a3564df9351770fe66b1312e69437a028d07fe31ab3644fa6d16d9e377fc3b8820f79d220b03012add369c630c7c01c123dfe1be97d8d71d491dc38e7781635139636213eda7655eb2ab9bf8c44af43d3c098667c6887be8e7f29cc72dbbbfd5c43ece1a0bdfbd01aaaad107700ed7d9468138638afe7c7ec64e66738e188400e8a71f89526f8170fb56a200f69dc9e4664fc24f40c80e117f3666f91ccbaf8dfae5fa145c9a94ad64219643a66c93a682a365bf082661a00bc8b0a663a6f2efbdae29744c735937c0f0d7f6faf7eacd068cd02c016cd16741d49170bc40e2fe3565cf3866db6fc1d528959\n\n# tcId = 19\nmsg = 3130393533323631333531\nresult = valid\nsig = 9849c3250c03095ecc9ad404f9ee412c4ee797ef0a0f0e806247225fe03b3ca5381157476b44bb8909d1cfb24504010873333dc969f035e08d552c2b9e2da82159619a75aaee04f20c5359450b6d85dbdc98e3174010395bba07cf3e64cd1ee44f81754a64cab4efe7c019e05ba8b3577333fa692858c3dadcb0f7047cdb1d2bf75b34493988ad84794517f18c934d95a7ed5ffe75aa5b3b5608462f18bf5c656e6f1e626d0e2ae4ab7c69da07a2616c515b88fe33feba7cab21eb9869ffa01cde1cf3b318e4b7c7089ec2d3748f93ce3ebcad0d75bc2e5f9bd20f10d6d946ee112be25dd97793f7295cf6862ec116f306d5328759c304329178a50a01ee76b5c5352ae160e0e7116f6e9640d7be77287c3910c929bc3a2a5ce1cbe08e48d5a27a11062d74442c5ec8a92be9bd8aa82db17bec86b2e141500fc5edaad589bcc0a0bc152a69857420bd5f6483aa3db9d1fa4ce7f6a1e20964b1620e8a3a13839311a61031e31bdbbd3e1350d1773ed132355eaa3adc8a292437293c26fc428844\n\n# tcId = 20\nmsg = 35393837333530303431\nresult = valid\nsig = 9d81ba9fff8a9e27c1af56efb4b48088785b9677397843f335f038b46e863045c5c48fc689ec046f87d7c2a1e22308558181a1dd95711088ba84db74ebe33398f77b760c693371a403d8988e3e90d025aede1e7b9d428ee4ce4502a307bd151cdec1ae148c6e0d36d50d3c19eb1266714b0111ace612dd8abdaef969c32cf3bae1bdd4b14cd53b3ffbe59ca75d279be3a933eb3496e0cc5d9b639a5899accc4c91f820cfcc4609630cd47f0f321a349f049cfeb5a74dd1dca0f898a36491cc3752c2a8c30d39c24f9cbfa21cfca15600e4ae161a9834f839878bbe66e201b8c8aa8a430913e157c3c7d74bcd901de43108d6049805bc85ac0b29869184fd587fe46d47eb740a86009940240480d3ba700a7130207637a438746084011f9039e52c1f6aa5c99d7093d14e3b4da4148f825a222fb8b1c35e5946d02ced55443cf0736f72011b129a40632caaefb78c44fcfc31fb2449f2d46c7aa53966b7966eba8d143b3220045991f66b1efe10f696d5d568ea87598ab5fd6655db506bee18be\n\n# tcId = 21\nmsg = 33343633303036383738\nresult = valid\nsig = 8f0c4086ce839242b6696e7e0fe63be07b1da1b77447520172fcccb41f341ba944927acc17cf1ca0686692130be5bfde236385628b0e99bd0b3ac5fcf2b64bb6fd0c8ca734febbd00dcc9b99887dbd4a8c5f7bc97031a7e18f6143d561b29ef3e25449559c5563a9169592efa534fb9b75cacb7ca67b3a8ff76f5642dfbffa93e4ba7e51e8a5919afdbb1c3ec91c9cba076902383614b2b1906e6192b451239870afb863e158f8ec61127f8a7a9442610c1ca47e5a9c8a0f460548320727ef1633cf9092cee65e373ef16322faddcdb4f671d91305ae8b3e4dc9ec65f5069667d462f429b025ee6f05cc38f8ea53f4cf0d81b4ea90f7e078e3b8c804ad2cc7525253fa81ebf50e8e62bd6841f28727214d183665a108bcf8e6f99b284a86b3f6adb5f5df71acda60cb6864970cc22769c1b1ec94abd1fbdd1c21edf2c375bb167ef66538dedde6b6b3c7f8634443ff163482250f1c8e97748cbe8ba0370662b1a10fb58b1ab595e228af813d3fbb852e9b8014a98afd6d96b2e27c0eb7688595\n\n# tcId = 22\nmsg = 39383137333230323837\nresult = valid\nsig = 2b1f093b09ddb27d5c25518781409db471c83e84e50332c47a183a657ce60fd44ad9a786b4d6ae9506e591a449dc0c46f65d9de5165079bf5bb776b70eeb826e3c58dd7a916e37d83b7ea6aef7a12f1aae1462844b0bab4acd4a5c9cffeec5c52b0a6d36ebb34facdef9c3dfc46d8a115d3835cea32775434e78dcdbc3e5444c82c0fa23f52fcaab3b8dec372ef7b19a0b391ffa8110e77fbfb6fea8a8def46a5f6ce20566af9e0918404df4446d6a69300eeadac1b0f5b81625f44cb9abb1876572815c2363e5d36691e070c19baf8c654e6440572739c468ab7589d262d3992fcdb2947d6f18e4be55572437e955d7f8b60ff4b1f1dc9d0c5e6bdedf913225fc65b0acbe8b6baede362cb615e86fa2335eb818878d3dd7bf689dd448205cdf14f69ca5925df66cf421da220035bebe9a78ec5fda4c0e4f49a456f9fefc791fa9109eaacb521e27aee95c120f4f9cde093b7a802dac80810b9d4d5793416672b58ca19273284a581ade84fd6d9bfa31a3b5254bece875a56fb3ad6451b1a661\n\n# tcId = 23\nmsg = 33323232303431303436\nresult = valid\nsig = 2b04d224788e2e94204486c111c0b07540b8e7324a8d57257841ecdb77d6ac906ac795dda72d51b054b5ce6c5232e061a18d67d64c7c1b1ef1b601cce28b84ed3645afc616eed7d1ed7c21fa348a418fc7417449bd997340e99c672a5b83dc43003fff82771a30b7b666fee40e078dfbc7af969d1aadec237ccde38959a0b5852ba0aeb15d8864ac41dacad460e9e69cea0374cb90fe2df0468011409cbbec5085f31684142100c13521742a47af6962e7a38d682f591c8b63fe3f629618afa3902590904f3c99bbd3f2681f42196714cb6e59a6422262b5d6c8220f6564cf35b3873e356015ae3dc6fbd243c29a8b4043a367a49a0dd44b921d98005a7bb0478371710c4a867a0022742449d594a321727776d906e636c4f1c798a65df8184d7c8261413b16a4544c37a8bfd4a3fcc4dd0cca3c3049c0446dc0e27e334c70f66787d8bfce5bd9dc2cc5811ad92518e679e8d219926321b0e7c77d4743db318ac1e47f6a5dbf3f6c53831a2ec8829a07125f5afca4f9f27a968fe5d269d5d427\n\n# tcId = 24\nmsg = 36363636333037313034\nresult = valid\nsig = 3ed79e7805fd64fffe1863e6e9233a502bdf1e35622799a3fd4da76a23a80e3e6fcab61e5c3f621474e91b90a43b36ede27a8627460d04a74677ae0994e949b7b93e01868c5413af61dcb5a9290f921fdc24073e5c7a85ce910016c2872ea410c239af0a33730ed89579f8d1f0743ebec1e55600fea2a3a98e49ac1c5ae12e3c27c32df9ea5fefeb5c4d004cedbcdd30cbfc00fc21b4aa5b172e87d34920c6dd31d9c80db40cadcac6341634ecf8c28fdb3cbae6c236a71322b81abb9137baaa83f65826f1d66e511f727935e01f16cc70c5ab78451f2fc199c02051789c3683bc573190adecfc041405c9a3aa8a6e36b5b4f016589d214da8bbb2e7456b50599ece0d8b61f106955cdd38eb737db4fd52783d60676af30c0d58bcb44655210d2d53f1d7001c925f74754041e94b9251d950784bbde135ef9108ffaf59170fe76d072011ad7fd1cf1ae2763140376be701a5210b29faef9e2501cb3e2769955230bceff7ca53afce8109b7cdd3812f412482f8157d55acdeadea7d9a3b314365\n\n# tcId = 25\nmsg = 31303335393531383938\nresult = valid\nsig = 072389935994033eb7a1bd07c3ddeb07f64589180bb5a0445f7c36412de2021cf7715254528c7ba95605045d2195499e095beea826d0f86da9386078b83a64c4e3dabd43415f68a1b4f08381ed290182727102e875bdc2854a28a725a8b9934dea06a8799c46463a21a9949f8bc19f87b5c0eabebd25200c1aea8eb8ae35be9b153ae54e11f348be421127b4bfa8982cb7db0a122a7b68c0f4496766c9250252c75ffc317e6c2a819edf70609a8a5935fc8e06554b84f31a5a2e1ca855f96c86acc12459cfe92b613573af365502365a3a3f7cd047ff3a227fc09c5494036d39c7887bf1f11dae79f83c0d4fe7cfa02c8e11561f351f86b691a14af945353284f9c7c0ea73d5389049ca0195cb103fa81f45ca01a17c7a857a142223f67c8551303478cf791f0f638e02e60c7f9452f848ebf0b6d6d8d0059bf8a2d513221c385ce075e8abe3ae0a7df9e65090ca2785286b245cf5ce734e4dd2a25774583a4aec4fc1ced402f25c2353bde80c2ef3eedcb5b761a7f2b87c201f3d5f9c08d3a5\n\n# tcId = 26\nmsg = 31383436353937313935\nresult = valid\nsig = 9c43688f7ccc4286e104c653c87979abfb36869a82ff4bc2c6cbeb4ddcd4c51b833367ac00098a84ceef062af0a0c0dec46b54d726f37df117762f83872611aa495a88e69fe0e31e58cee91e3b70987ff17f703a39a7af95ee4121b5bc092bb4a1306435d094a93153ee22dc50d4d4845c60aa065aa03ca6f327ddb3c870ac693b5679ab3390e6782dac49b76f71a0dd6354240184f8dd9400dd84bc2959234a3c9aea08b4ce781d38405eead754b8f3cf4c5bdd0cbf3a15017ef4bb5813bc9bd557fe288cbe32e6f6659ddcb01ee10a48a9f9d33cb5e57164fa77784c89b6e9a55ba65999f7cd61170d826f89e3cbae123ddebe1d2bcf2dac72a798ee9d2a47e80f1e73ad28c6516b271012733e3d8c3db695429d0d67302e5333f1afabe6c36cabac97c4f302e28b3a0821db915b10c1e5bedb64bc5b88d99b7fbd32d3af00b06201c64fa66f38fcf41903a7ef1df4265c0e120d1accb631c43b7b8fd49f8f77e228b550656ff7caeb79378dc3b868ba63d8e97b832ba18224d08cc87e67cf\n\n# tcId = 27\nmsg = 33313336303436313839\nresult = valid\nsig = 807f9a9f0fe0f04c59cdb1f87be60f510dfef3afbf5fc8d13aa735778a4c8823e82804650a837afac849e78c8d1fd81b364e98589da3f2092bae5f7c041ec0c399b994cfa89bc3c301ec3980f7bfc789a7838d212866a500763b5d29094f112ad572b2a825f19510869c5c6e67", @@ -8421,9 +8731,9 @@ static const char *kData303[] = { "714c5d78ca53d36728919a7c4e7069ce97bf215da1d02cf14068c16100f8f78baba2d19abd306e\n\n# tcId = 86\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = 8574a80f36973bf6b986c7b81bc6d289b118caafffc31d2c99d2dccc1e6611d598dda3fd7c22cf10c7729fa84a87e3f19ff4bf11a96018694b7d829bc003009eb104e8955e8a8717f2fa89220281fed0878b9febf77e5b81e93515a8541d7a4b8a4c008a298d317e7b82c826b5d67bf04d459a5d5fd7f69389dfbb25146c4805cab1aadd009d7b00956ba93f6d02f5266d8b06e28b346b06f1c3501cef04a1c607d7f85ee037178e6f2b0dde307eb6f5f88229541cb3d37e495cb5997264a0c1342713e8548e318681a783381dec9d6524f5c80c437b997f2fb95c80ca7158d0ebd531b4c9bafb19ad9ea0542217c1ad965ee6f1afa5a48becbf65b380f1946dcc85fbcd82fb90011e650dd1e507dd19037ec1f2ac98a87c25a6f588aa6b6f93d35b83c1e8e09152470dae2af8afc1fb2146cd426fe8d3cae5a80c1a63c7fc42825226bec26d57fb62bd048fcd921b8be7aa8d024926fe3cf5c5e3e7f5b2f50b33dea547389e40fd67a8523cd5facb29e97583f26a34f1ed880869800a4b35d6\n\n# tcId = 87\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 7857b1fe06fcc417c07766a9892ae30eaca65df7474575a70d8e286fc22e3092dcd23446b101cf27951eeb2cf879d320b2bd12f45b79c10018178532d8fc4d708583adb4d7d7469cd5362c074c519106c761228557d4280dadd907b27675e318033ad32ea71e001c3e7f68f6dc07509396a61db29a9ad376f406ff35aeaebf8c6fd0bf7df4bb721c91dfdffa933f37db0bee5d4f7d34f3df2a3a0f383e443647838d7c02ca87d9d79814ee9d5b2860fdfea5577702dbc829610ee1eb13f6e6f0636f39c5ec537c0695bca4971dcab6907e907650b92b96d5d64c6de52c4d986d458f0195345b1e84fbeaa483e3c926167a0d1a977024aef2474c31752515b55021048d2fc23ecc5ec5126c57b18a1656ed49aa90e0cb51e77e56507d7fc60b1f761354423b110d44c67664781e5caecb5da5475b01ab2356993378491c2ce4fbc41badf110c33bd0b78cd19540d8aaf27bc9f3450ce7579c87ee40a454133093ad89b29b99b4b15c21f072bd2f5c991e6a98a23fefc06121ba81540cad7e2a34\n\n# tcId = 88\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 9393a9989ba865a8be0fee265ee6b5b3cb9380019e3c4377521a729a968dee0374b547e94e6b12d860bdfd5197787d35208ae3e8d6a689d031072f6b993b7a8900a278fbf1c07dadcba6b4074375c666e035c2f12d158f626277d7d4b781c8b6bd71a97f575f08c4520b2d66588756b9fc8603a346cec73eba4e8350d7570e923cf84c1b33ad7bdd507d87c3ddf01084703f47d423a5abacb7a6caf5bf7ac4c61cfc91ba9483e7b3cbf9a094aae25b17468fb3a3b6a42d23225bd4859d2279037de2ff446eb441de7060a675b61b3e591a4f854265ffe937bcf575ea85b84046af568a298902774ad9a888847f3d20496d8c570da907686e3441998857e3927feebbf5540d734fc7093263b0efdc33f32f93b936d8f81b920745c2c854266059c92120435b3f41d7a3a5a7d2c3571a15db2136362f736e099e893785876f0ff0b51d3006417235129ba4480c4164329f1f9c6aaf48c93411e388f00cd8b6b125f4f1d3fbf21ee7ad4355a416101cd857f6ae91958aa88b31134a7b6906aa184d\n\n# tcId = 89\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = b77b9c5862c9fd0f4e4d72fb7bcb23b2a5d2124f13aa7001275451a10148993a3e846e0b29157aa3a1a8ae643e2ee84a459b033201692697eff53b3606e85c6649d76c8288899499f2751918879a034d616543c0b7cfb215744b8dd03e50ce4eeda2891ddb8ca9c568ccf98b3128be25e191a4462f6458c718b33e5f519e3de152b0ec691f2f5b8f3cc150ce37814095001cd60b3dc6e694a3df5aab7a0c1b2dc152c26901294b01cba43b74e4e28d14a9a614d0198c30fe578831c8d1b51b1db0dc34f6c47de0d38d20efd1afc8d385e6bffeae43280f62a5f2715af79af64f04d126e1dd36067bb44d01ebc78769766bd4332a43dba1b124a4cbed381ccb43952ee4cc19201f05558c11f51ab5e76b76b01fcd036a949ec9e4d7153fb25a1aafdc8e0f1754bb59ffecb9a6fd9cb05d527661bc013cb73cec4ad1ab046e1e94b6d518604c7ce7bae1dd1319b612cde529a6ae588c4c6a6a7669e82e141ba6352e4552fdf05d9d1e3fa217ac5b38629d81ed749629ec53f3b30f29df883fa68e\n\n# tcId = 90\n# bit 7 of masked_db not cleared\nmsg = 313233343030\nresult = invalid\nsig = 6ae7425610f6d9b6cf5a358bdff3bdd00802d55cdaba2201794738b900489dfeb11d921d87449ef9d1e5b0deae4bdb26cc13c9916a767cde8e0ef67de6f8042e1d5f600bf707f65380f971222d37088edaafa4909ed566694601e25bec8c3128dd61e664688b5ce2ed2f626a5b618bb10d12cc78ebbb0f3cd6883b6476fe4f89008d9e8feb7e835fa873f2d6d9973412abcf12d2646723b1a5ab4e3b206d49ab6f47789010cf902adf720a02c7677847925487634f81e163819f286da4d42437e66ead9278a088d9a2628aec137be60eac2eb30306e598b9459f0ee1c79dc132248f013f15fb80ba713703b66848612d8f4e5d6bc444e166998f3107b459efc73ebe1bdc0b98e4d57bb960d6db0540f68b96212da6ffb05bac7ace76db7b3bb69188715c091f14354fbb8a02cf2b2d77e7f2e8db505e93603bbfff2f33ba54be38630dba291befeca45c76c67f344b9daf7a7b0712b5a49e7b6af29734516570cac32d02074a74cc0e49797508e1aff2af9f20a7163440fd962bbcc5269d8f13\n\n# tcId = 91\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = b9bde8fc005ab0b6b0317aadbef7d6e8abb69391bd7ea43fba5a49ffec02979f89d0a9efeacfccabae271c998ad7fbff4442367c07e49a892b9632bf4f30de3e95583875f3069fd3299a30bc21e74526cc51cb10dafe22b06d3a412a6509daa83d337e18c5dee6591a11262e008c3b562a18a9ada3169267eaa849b16a377b195ca6f83df0d2c2945a3d3fc2b872bc2ba965ef4186ad1e7ea5b56fb689fada3f377e0897e5cf86906dd2d894848a6f3d64d96a5523fd74d2e8418809fcefe5b9bf12f5ae7189e2aad268e835b5a701073e26be131c9dac06203142d93c95af3d00acec603aae2a24bff3d5481c7e71be5f63a1c47eef680a00991008ca0047c7bef7812c9b823a64e6cb40d0fb4472b702bf4f1c9483f835812eb3f70808e3dec7ab2ce2d8cf1c0dede8521780513140f10d84727d4f14ae06f65276feba1857a7e879e9c4f59c80760b117e1c4083e342018da1c42adc6c5255404adaf8460d122d3c670aa29b58c087d118643eace86667e6bad6c07f078f9cdb8618b48e92\n\n# tcId = 92\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 872f410815926494669ff81dc7114e096f007790f6a4ae3a946b64984eb28bf28351616cc82ed34172f1d1d0a8918f87d64258328db63b72127fbd26320a21c114a7f0b6c88ef717d949f57a28e66244b1fbaaa942d3ab2245ac76f0cc4bafcc119a64f7d167e3e2a64dc9a004464b28bfdcac00a24ed7e3689ca1ed23480c1a0625601c4e7f1e374b54c1c1fbed91e0967b40a3920210b84619c23217c2a6a39734320607abee432c7ad2bb0a8b735400bf775256a61324d4c4ee743ffe99a7bcd13a27b0fa33c0dfbe0cf9663116997573a59204c62aa497e98a698b5dd19314de9ef95cb8bdad0e07b722eb6795f6ea8098b7b092f7bdf73aa459dd85843b310d71e0400470ac14db383940519c060d111f0b80896083b6fb305ee6d9d7879d177f7cfd85c913d226fd6c75f38519d7e8f6d32bce50e85901fe6bdfc74997862a3b809e5ed5793013cd19af9efca616a9ac3e346136142374f58ca823b6a6b2870bfec41207b0a8f58d72c119e319a3934cbd40451f0a1e26b447a5687b9a\n\n# tcId = 93\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 5e0a2f627d11c2f5c2a61cec6b9ab6ea6f2620085e52ab1d162365a2c7040178b3e6222503efdbc66eff0cb892be95abee6ae02af0a29436de4ecd2ff63eb7e082d51ab31d358309747ce61e30df4ab3382341b88eb2da84406ae20fb3bf9a968cf5ccc871be02f6cd9f2a89ffc6f3a69a589526e8a4f1a8c049286ffca8359e81cb3173a2d2e2cc76a4829edebdd3dbda327a92dd35202b597bdf077d7ac2924f8cfb29a85dc25dfd2ab6e770cc80120a7bd594e020392e58acca9d7356773e58aacfabd66c2d9a888379b73868d07e3d14af1dadc1843f2a6c8e14c93b3b29134169c5ae3b293ee6f6a475f20c7c159258a8cf1a1cede602afa9fe7c61a3218c34024a87bdf4a64ef12c78a11a50bc1521836bc4d84eba90ab1db1b17ef0e6e95d7c9de5d6b84e11dd5422a869ecc7f90f952794f6093df89fb664aae86669c63bd46de5972388d81908fe56c6bd029e393047c52924a97aa55c07d482f98b784e6d39cbc280330a34ac4a8a72733235e66234903a4505228a3fc8e1146034\n\n# tcId = 94\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 07f0772411cdb1e02802f8ca699bf55bebadd254c9aadc16e1d6d4af3e12670bfd2adc2dbe80195f065d75fa4a25ef757766fffa4d902b386a9c7f247206f60c744938f50d6f840170ae94c6792299c386a1d6d7aeb73fecd5b72a28249a2ad771a5518fb694f54924e15cecb2d755da44b54535dc6f8fce0e91ea160ea942c9e34eef5d7367c9065f5ac270ef11a35bcedf663183f74cd2d504410b97b4034a59d201333f235f59924aad30fa877a31e0c1573f62e7be41f961e9c31ec334153d83adb0ef38963f0f5e20c90b67ae5c5e2ef8520587587c22e869881abc6bfcecd62a1f878115e6cbca7259e8b9e116fdeed841f1d698e85f65c7ae07421cf3096f6b31a07e251944bd7e2cf50ccf69a18de7c17700b25786d29ed74fe8d5757d4dabe2d6fbffc2227448ee8d5559f992a3b635cd74a68c329f1785e743ce9d3bee57b997f9ae2deb531f8994ada98d9a3536b074814c2d5003d6a3d50a9e56287f3aee8ed87104c19656a6057515fe17bb2a72a53a7c19b7a814252c8bee61\n\n# tcId = 95\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 96\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 97\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1202\n\n# tcId = 98\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203\n\n# tcId = 99\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 00008f9ac1354af4161d0e55b5674821d02823b3a6b3f79cefb98cbc77f9ac2d91cc6345f989a7828132f73f3630a247a936b6a057b3e5a2fda0c5999ea7721ee8880960c24cd2377e869cca1799747142d57ad6a8d83ec9254d89f591add11a758e1ea1e29bd08f624d0e28cea52ed5eed7c0f5f49d3533eb1cdbb2af837dc42942f9a86b5f4e2d5ce506697ef067a344949bdd89afcc25978af4d50c300bcd0ffc9d93cc559e3ae1a13215a1d3f6030827340c6591061a5ab7e65153b1df8b25e1421f924d39c7e6f76243c1bb9ae4063d9a475cd2ece45f4e288fe0720074e87868d70a5584a9ac2b47a56417cc76f15154315545a3ed6704b365f15d34320804469c3b09ed211cbc9e9e767b6f21fa16f8641d8b78b8dff8062a25b5bd3b6a38cb4706c42c1fbbe66db1c05cb57531132eb94fe1569735c33ec491c318a686c837ac810be4afff605f92bb390e7ab3cd24c0cd997cf13f112e5aa01746f43902432639e1eefcbd37b413c586f057bcba40a8f1251251e84cb7c87c53c1d1d558\n\n# tcId = 100\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 8f9ac1354af4161d0e55b5674821d02823b3a6b3f79cefb98cbc77f9ac2d91cc6345f989a7828132f73f3630a247a936b6a057b3e5a2fda0c5999ea7721ee8880960c24cd2377e869cca1799747142d57ad6a8d83ec9254d89f591add11a758e1ea1e29bd08f624d0e28cea52ed5eed7c0f5f49d3533eb1cdbb2af837dc42942f9a86b5f4e2d5ce506697ef067a344949bdd89afcc25978af4d50c300bcd0ffc9d93cc559e3ae1a13215a1d3f6030827340c6591061a5ab7e65153b1df8b25e1421f924d39c7e6f76243c1bb9ae4063d9a475cd2ece45f4e288fe0720074e87868d70a5584a9ac2b47a56417cc76f15154315545a3ed6704b365f15d34320804469c3b09ed211cbc9e9e767b6f21fa16f8641d8b78b8dff8062a25b5bd3b6a38cb4706c42c1fbbe66db1c05cb57531132eb94fe1569735c33ec491c318a686c837ac810be4afff605f92bb390e7ab3cd24c0cd997cf13f112e5aa01746f43902432639e1eefcbd37b413c586f057bcba40a8f1251251e84cb7c87c53c1d1d5580000\n\n# tcId = 101\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 8f9ac1354af4161d0e55b5674821d02823b3a6b3f79cefb98cbc77f9ac2d91cc6345f989a7828132f73f3630a247a936b6a057b3e5a2fda0c5999ea7721ee8880960c24cd2377e869cca1799747142d57ad6a8d83ec9254d89f591add11a758e1ea1e29bd08f624d0e28cea52ed5eed7c0f5f49d3533eb1cdbb2af837dc42942f9a86b5f4e2d5ce506697ef067a344949bdd89afcc25978af4d50c300bcd0ffc9d93cc559e3ae1a13215a1d3f6030827340c6591061a5ab7e65153b1df8b25e1421f924d39c7e6f76243c1bb9ae4063d9a475cd2ece45f4e288fe0720074e87868d70a5584a9ac2b47a56417cc76f15154315545a3ed6704b365f15d34320804469c3b09ed211cbc9e9e767b6f21fa16f8641d8b78b8dff8062a25b5bd3b6a38cb4706c42c1fbbe66db1c05cb57531132eb94fe1569735c33ec491c318a686c837ac810be4afff605f92bb390e7ab3cd24c0cd997cf13f112e5aa01746f43902432639e1eefcbd37b413c586f057bcba40a8f1251251e84cb7c87c53c1d1\n\n# tcId = 102\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 103\n# PKCS #1 v1.5 signature\nmsg = 313233343030\nresult = invalid\nsig = 636d31d8d5dfe0fc6ab01ef2ccd4602dfea62d386b002c429e7e846e7a98d0cb1d448d25be039d5158887ab46a9dd49c41537a89036a065fc10329df051e5f2e5c1d4436e84790ff6db4d3f31575e5f0fbdfcaee625722c5492fceaa3fb29d0a865200dec06e117b04753ca9450a7ca7f7d1a1176cc38ecab721864413a0d7a22d8fc1595b6cd0032fbf154fbbb31b56d3bf963761ce8ec9fb38bba3419716d0d39e976857e79b1faefd5f5a2ce0ebd94968da1ec3a387804694d90f37b34033c7f70ccfb26beffaafb7bf56c1b8385d489217458e0a68b5d680f9fa45382fd1c227ff3c11e3ec82426ec648a564f0e886e5b12e695dd2fc8465bd9d08731fb140084c79be64d915bcb4ba10f1edb4c37e35231753be2d9f339d37d7b5f22c91584a68a973f9cc469a23d3b5800157dbd72a8405fef4e444ff01f7fd23efa143c1887504e81773743843d8a73209a1deb66c5f305df539bc30e871332e82330e5b66fa6ea253b2b64b4c9781011d20e80ddd8cb83916834eb8fa696b0a4b6bcd\n\n", }; -static const size_t kLen304 = 115183; +static const size_t kLen309 = 115183; -static const char *kData304[] = { +static const char *kData309[] = { "# Imported from Wycheproof's rsa_pss_4096_sha256_mgf1_32_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082020a0282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed0203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed0203010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 492e60b828a9847501c7ff46a4a304ee7bf61ae87dd88cd5598c76289a70ab3afb7fa9efa3228a1e826241c13c2e120d22cd3a38a9b9ec5826a9711bdb119748e0f7080ccf917e8cb53f6f21ed19f4ffad9efd94c66e329226a811eef928816b5edb3b10d1f483b64bcad9b055dc78e99491560f59a598001e76a0bff0ddad4ebfd565495e2b523b02dc80050b64db4a200b5ca9efd8a1339d6cdff6a82dcbf769d3b0ed7ae53ea8f1788eb025e186a5eac02e3e1fb1f0aeec29b2929c7a718c32159609f973109d4a876bcecdeee6c6418df27fa46eb5cd238e274f94ab571c968b2c4a838cd812aa90e4657b95c0ccd68d60bd7d33b6e291a6a13f68e046cd41ecfc2bbe35fa9b4a0c17d89a708f89f975bf5a5eb9abc812b0c498d93d2d161f5c7969afbcf798029f3c14efc3f7c265b93fda572d265e9e116ffa9416e111aad32072f61943e9f0754f6e116ab5119ed09bbe245022b6e8bfe35dcee4a53ed375f5451c43f38f6eb55b48e386030cfb76c408c81f606886c81aacc76a999735682413069cc016f6e390ea2df7e8e74d088fb0643aebf4899ee8177a4a5faea3889181612ffdffcdb3fc699d578eba383e23e1beb68824c0bc7f920afbbea8ce7bf2b7c3bb40f33c6b7c8fb6cf73e6e2f3679669f235ddfebeeafa872918581d99c84d6dc37ff85949449d3994982d332cb9f9b8aca691651c4b63e58f6b38\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 3731df2cf46de010d06775044db5ad8c98fcb8bf2be357fd39af55a864395bd24fe7cf104374159cfff1b537bb26ecd67a0488ba7a124d8273ee0b3cee00bf94c5d34900c4ccd6e200cac6e90d97d8b4197ea78ad36be7a4fea6e1b43b1ed954c737bd6ec6960945f24308b085e255c1142c61af876995bb5736ae19ca0e1cd9b319634ff7103a4dc89eaa41c00cd173236c275c463a1cbb67f65e45b1bcc4e10c7f3456911e4f9ac4cee8b43651980dc2e8c332e5452e35f256463b96bb21799e22f4349846e8a2583763226b3278134b9313757163ce6ce0628376001fca63c535d384a6aa7cfecc29ebbb5cf6be9d2b211464e02a09c089fa63cdd9571f3fc559bd2b92b7a5a724d3b88fb4e42079add87ae188a983c11fb769d3ce65fc5aa27dc17b6914283971278a749101e38d3b92ed2817ce2b37d4dbdec14f44f2b015433cd6e5a5de6d803e95b8b8196bcc4a77ff6a8419f5c78b4dcfdae0f9f98e8ab792cdc18645a14604a604a417abcee8051aff0eab887f235b1c6143327a0db2e00a63e4c6b8e002f21c86163de68e49c766fa91ad956c12d36856cf58324d417b4898aaa6db3eac372f06ef21d7a7e86b540972dd4e3f7afae7caec8a692f31386e7b3e8b934499a945cdf556eae3010cb1ece6a08d0dea9500157e78117d0f4cdff096fba973f7c04f79bf42a54e4a82e5456f065bbe9382605c444d21cf\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 2b981b661e1e244b67e1892bdab545edc9ef68b50b4572a536dd4a40f31195648b8180454faa8765ba19b7ac6a59176c1a2c621e6f4131af96beb4ea47252d7617b9d8b432b5cd900f7b328b0013364a520ce46ae66a63b7181ab60b514839ec8f6bb63ec2f83a2a142d8ce532f63ebdd3f29ce26797f46f68481818ff1e00c47df1e7e8d809737307a63902c94d9c2ee5c69f1fa0602eeedab4d7f6d0032de1a8294c117ad2aa34f1175544f2bc1d466c5965ae5796bae216cee8bf7b91f9746a97749cce0388f8f443d14317e825cba2ea278045826835dfab50091cc988fc12d4913920cd625ac321df4d89175ba3f49f89d372318bc222643ab888246f8e5ad64f227be043bec3828cea0bc0229be6e71a035dca97bfe0c2f34ce03c1ee9d084d19a6d6c301168129a6589cee1119cee84e35b561d1f658b2e4f16c2b4ac2ded8ed5757ebec2d5ed59c66f7bd932d64c58af7fc16af4d3f6bc42897114c9ec537f8b7ea86752a2a26133a7b8085f4d438ba643f7a389a1c6811c2ee4eda48060d27e6299b44c8d504d280ca56ca49c246b5c4c897d3e1d352e047f735cb7e30ce87061ef267bd9c50e7de77032a162ac9a026e684bb4d0e8131a90240494418fbe471c9900a6b322306e47915f83cdd8e525566e8a71dfc869ee5c7e74d33ac8646d7c170ff82f2f3e5d319dc61cad06235145c031d03cd420fc370adb3e\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 75fbc044fe19c72f459b5a1fc4793f7893ffcc95bab8609900b3c3d3be6643a42987c167e7feb63ec2a57f961c1b9c35b11b34044e065d7d3df0b49496dd80f7cd1eb2e8c0d0b726f37e701ba62a3003a17657af55adcb0b6e86f95198ed435207663d616d516bf7222db241094849fb232bf6fbeeed7b5879a6b6c8aebc57646117220bf55403d0ff078e219ff119bd2e52e767b708b91afe30e9be348766e7537e1128087b4c9aca0281415e550965a395ab20d423330939b4e37551a7735c6df2b0395dd032266ec7dd4afaa3c477c64e3f95ee4945960b7a0c43b7a9622448eba4149e30ccaa0c234be7b06f4ebe8ef43063c62282e0643c6e483feb1942e3310bad0c05bb2f87674825fed098d5c787b69c5ba6a1f716dfa62ede3b8a01c076598b15ffa2e2be82fd1d8025f8ded14cd8fc8753ef76419e1dd561bc0310b2c7845e2744c9621735758645af0252315b6a05894c264c4587c8870e02e94813fc3a797d590a9645d92845b614b0d89cfffc0b80c5b48186ae350d877f0bc06e561770736342f00d56b2ae785891afe39cc0412337e4f5d29ff06d727f6fee8f0966d52ac146ba82a753751ad786c9d70ccd3005b11fc4f6b81517433a052c2351390332bf7fcb4326a19930b512631317c0354a81ec7c529ccd1bb2ef206d697999950a539808958d6c2be64220123f12e7aad168be35de70103090937f44\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 66381e10ca91edb043adc721883b8c005eaac4daf040379f4d69a2bd7ded69cc6e85d80a6f3ce8aad523a5d185cbb2fcebece5210feb0318065ced244ff73830cbc628d79572f7f0961c111883b9c40336d110cdd4dc4b9a04ae4a0380e8b17f0667b71b2c5bdd1c9b48c4e83694820d4cf4200051bf3101559625c0d06fd0996b759e9f4c689610e41655b262957457a4d8341c65bd89dd438025699dda37aa2d05", "1cd3c974103aafb092e865b1397661be3eee3f95d7a75d9a2ebd74e6d2cfa54ff0d8753130eca1555eac4bea45e90a6a37d7d057ccde4c32e43c7499d5c38754ce950308fcff69d42aa4a4fa85e6d92bd20d605823e198e94af5ad65ca4c2fb919391f919aa5fe048ff51a506f63063cc5f777fa70b20cf759a0b812b2527265fc7f32a40cc275ef94ebb4a0410280ad658e67c34d581b5e7a17c5629be34ceb70ca68f40aedaa3c9b7dbcf34f30f12789909a3540512044bd812760c3f76dbc644b89760b54d9e090dd9cbab935597c55fdc6793f8ef007f732732e3d1fcc3e3ed253689aa29acfcf85847acb74a722533b0b5debfbcd0b5388f6b19e8b9ac47753f8a616ed9a7e4163ce8669437c62271bad3497edf3b655e4d1523cd8f3448c5d07c48dcfaf1e1f8310baf3d3707ea23288911fdf91d7379738ba8fee9ce525ca0b9c4c03bf1bbcd7d1369c0d2f5e0127ce2d1f95322c94d4c309f2e8\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 134d55894c80eefab7744abbc9fc5cbc087072da8243236fda9df5ddedd81d23f0998061ceec59d1bd4fa2f404547056f9616f77843330bc65a2d2386574ec9198b2abcadee4139074c3208e2f09eec1e527e26b78b8773121f852bb8480e22b34c0e1cafe9bb224ce6243c46c03cfbd0fdaf28041dba177ced1a2ad70ca2f1e7dddd6cd137732f4a774e47eb59d8225d4c6a507f8f273b600a5b6449d63924b3a0cefe987cb5998dffef835dfe3a675442c90d02067c9b3ff0e3f1d84ce8801bf366e040710ad2c08c9f379bd07797ed954d3e15ef1350ffef88e9bce7174466358effd2494d7e174ae88b04e17c5ffa7b63bb6cf194d007b3ac22113fe3a1dc0c97d3853aa67c892d7d6bc5b0be6681e18004640416587452c856644ae6c07d135afae80fb80132c1faf56c5b224923cef5abe9969b807023fb84146a62e19bb6d8e5af0475e07f48b469ba3178c99741af6e57aefcb766ead4ea6cb3d172532704818fd82e12132b6329dbdc62e4c9da1fee2cb19e4f60ebfebc681a5b892afb812e82029123a7414f56f57e09731fe107f682f10a5c31fdec1d60118cc3646b0284e1948b2bd37c280135ab587960fd0769629860d17c4349271267a89c26c5f5debfdf40d843428af1010f87ab73648ac1c698898717889c38be7a06b7dfe9f63a9c7a19a77d61e3235ceaccad99cce004d6a870b27cd13414383ef4aff\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 7a7848548b15bf23e4dc1908e5b3aa8989936c498e77d587e64ebc9b335ce6f400a3965c027c6c248afcda5c80efe8d1f1bd9e71a5c459aa428a4ae1d1cef91ae48788f361dd440fb3cf745c9935664e43b81e9f860985418b61c3afe63b85cbd07e7dd3601c8ef8b7467694e3221ba4ace737c3134a8bd7f7ecd84d1382a93e5c9a6b69c9a8f12cbd612e48e5145972a1ad4f92cb0a57f44e0fde4548d231a5ee0efa8698154c66ddfd8fdbdd41d1476bb5d8852663e4b7891755ef9fa7b5d508b190d59270d32a0a7f32b1a28570a7e52592324fc461a32bde7e2cd14b04129a400274e4183cbe44aa4bea3b4680061b119a97da65c6ed4bff5f2f59193ccdfa8d021816a2b5d32ac52414d1c51f8c198f4c03e0993f8e47c268598d665c2b624cb66ff02219a9100adb3ca9674ca1b63d77d6156307efe953a489529a1701ceac83ef1134e7cc7aaa578fa4909e9c4c0220a5c882433dd3f0af1d87bede7ad979ecc9999cccaec3c4d39265efad3c39809ad3f24fed3982dc74c57ff8cf1578d940f9c6d351aff9cdaa2481d0f355054389ab2a6edb6b5455677d828453cd6aa21000adda95644125cdc6b4a4f95cb69a1abd23b46603485e696dc419cbeba767b2fa7081e1641c4b2daa44f5fb2b9a6513dd12d6f12f0f1cf7da5a74223da8dc390468e46af16583faacb7fc0ef4c095c641af4d76be03e880d4f4e2c8a3\n\n# tcId = 8\nmsg = 343236343739373234\nresult = valid\nsig = 303afbfa17c9c8d18b64867e7293f22c8a139a6b106ac86e9a59b590f085d572a0b1bc177a35e3ba74d66e3c6d9f7b5daef34e03080d13951fc2e73cd1c7cef4a815071a089964c35afca9745ae54c1dc2443c79ddb9f111182c501177fd6351dfa8a980f1ba2c99b489b78c3e31002007b00850c52e5db7f6cfab31ac0a6c8f6d0516e19304e8376088aae408ba6f69b2f70ebecd64a53e3da851ec36cccdb7e317a4f4a337781a7e9b0c168af765431e7342f53164c50c12d1e33b5f026a6cf1925b76869252d290ed048ad6c88b0010ab293f6d15d05c884f5c830fd09d107bced6a0697215afd121bc137438ebffda18b1a6f607625813ca9a93b54d8ad6be5ad5aab808d5fb5293ccf6bd18dc920fd72c258572b660fc2072251488c8623e3d2bf988a72fb289be8046975828e210217fd04d82c5694031be9a9f2932aba449da9d21738705a513a5dda2f277ba9a017c6363da9042838aff0c9ae4b5655580e74a95459666108fd5d870486b7ce4187f057fca8fbb0c877e1fb3ffacc26732c26a50c581537adfd596baf30563d7d23af2d68395f774f52abc238738a2fd15d1ff2046e07c382d176d6fca5348c1a44b44bf89883ca569b7cb9d7b8550e65229c4fb21e3dedb80ed3ec51b378c77750617741976d5b2f764c7db5e103651782df4841789b6993c5b73840038cad16b03a368dd6684b7a90ede21a2ed2b\n\n# tcId = 9\nmsg = 37313338363834383931\nresult = valid\nsig = 245258fbe3957df086cf99d113f5297d5287f6809236e97e398a4a66d43236dc93c5ff7b089260ceeb8312ed7c7fc2a0faa6b5933adb453e0619ef06601d5b2e2ba8b43c76704c29f45416d0085d209911db798c0aaaee221d795fac94d66d9bc01eb43fd9caa23b5e34d33cecb735319133696aadaf316424a9bd445a6b8bd779791edb302f352b1460a69a25fd14432cf043fcc4f1ae1b7bcfe6955da3a89d6abbfa08e703372b977c57a84ba81f7cb51bd58a9929a8b8dff805aec99b03a46ce82a16d25f6f30e501a9bd0fb8a47105893c2b361f80f2ae872e5358290770198cd2b5139c234e70b80aa18cea9d9b94e2b3c46e9311b2fc513e28a5dc83a4b1603d59ba12f695656fc40bc6f890731e9d990242fb79f5fd2111ed7b7019c0f22c1b84e382fff744e9f0476e4eef7259730ace36cd7b1747856fde8d1c6883df62b20eaa58d18febd316091acbd323903a9351016d089ba51df67f5cd14114b8530049478883d53f0376ccdc8ec472af2907a5463c320c066ecd8aa6ee8cfac58f67bc051685f0d38bd2649442aadfd87749e22acabb6c396e018d623540edd2977842ebc518e3b2954a8555de5d4b675027488b52f8ce32ae864b9e965163b0780b53e8e227e914c139f91afb662b9c4fbf21bcb7b43040113155b97571806c112aae1e9da34743df2ceea812f3b931f33bb103d9c5239c92c701c0565fb0\n\n# tcId = 10\nmsg = 3130333539333331363638\nresult = valid\nsig = 3f4d6ad95e3b937372ffe704d32b54c879f04e85dda332b360b2106942c45c7bcd2c7ace3c7cd0b585182a83e89a34809fcd72687c007c9a2ae07359449ff983bb1b5c3a0fb44cc694eee28b87d961847fd9a3067697c3283d4e8b79fc086ce77eccbde90a7960d9112ac4e9f0ce5ba897bc564b3bb6fe023dc369c01724455eb40170d92071b3cb08de7cb55300b244992e80c2e181d854c9974fb76bcffd3b9389f37f39dc0c0df15584fb6ca4c29b1fe1dabb1570a235f5b17a283969958cc7eed4a1d15eacf84f8cd7214b063b79c976887039adb9a1456f022c11c4966c32dd4c7782a187eeff40865ac926cfe97a8640ecae28c5448e8dcbb50279232f0dc597b58dfc4ce53d9530584a808cc7a20dcdc90024931732b92ad17bee31b60e7e3d6667d809e4bb02caa28d3676a7eb5fccc841385a010597b02fdc728715fda89cfca37c72cec44b6befa8093b99a4cf0a81a23e484a671b589437b4e6a953e27e7339e00cf0762b9ba9aad64170b8f07c76f2729771b8d406936fb219d3decb9fa075f51ca804f7ea59dae8f663e49f6b007a0300a28bb54707cd891439207104463907bdb7f7ce2c7861888ced5527f91e6f52003fce1090d9231a07303a416138118be8c49fc919450247a9004164030bbc69534dc7f61867f494682884314dd0fd6573af2cdc3e86ce5c9dd6af71dee512c78f8cd5eb4cce3967e349\n\n# tcId = 11\nmsg = 33393439343031323135\nresult = valid\nsig = 8732ca98efa135da433f00d9f4f5d76ab711876cdcd965598e243a7e68565eba7d60a95a5838dab1a3e35051cdc1ad7be6a6a872ec631c8f23c84ff831a25a01f3f8a49547ed98ecd7672ff561c438aa86c5a8a7fbc07ca1f6437d6e30b695ed81111365f721fffc36979ca2d1a55818f5a0fcc922dde87ed5b76fc47d5f4ef219f05668feb398b77573f9b1232f090647a2632dbfa3ee02c585660d76f2e3504a682382606a766e214c51a2813b730a93013ddf4a7ef08028c8e444da2b8d1f583780bba7148a010314f2588310da17845a0ee37dd6308d1f8d9b87a88df57cb1d530441c6a2c7a18fd47b4b7f89353d3108e91bb584c2c98a74e413e8e3be7c8273d0822dbabf96970c61b104ceed8306038a215c61f15bb4743dcbd80de6ef1458923213f7b27abff0614b6e1c3b02c4011ba2a6590fc9577687a2bc5267762367d7b62b03110bfe5b8023ff6a7c46e46a5deb7a5fb5f7b50207760e449655bb7ad84638091119729758e11c30c7dac2f0bac200f0d62e0c603a9a6a4110dfc70ba838bc76aed762cc9a7c3830428f0c8c68f7972a3ed68f9895ed0fdb7a7d6f206e8cf44100bdceb126ff8a5bf21b1e6dce17c3bd3b8908a8f4aa1d7f16800185d96332be6d5c3c5dbe0324d1cc809ce72f1cb1696c5574b13430687b2ddf1970c5b45fa3c4df55b46c88603677f29fddc4eb302e2490fa09af3b14d8f9e\n\n# tcId = 12\nmsg = 31333434323933303739\nresult = valid\nsig = 4e3b548219cbdba85f3ca9e739a153e8fc69a4974648806eb92cf2484b00dc272b4ae4b88db9b38a5e4320332c2ea62448c08e44968fc1ea1390f66469ba52d4633ea98bd3b6204e813bfa3353dbbee7c0c659279d7bc78770290c444ad6105ea2634fcb66ae0535900ef9cc458ff9da86e40dfd4e51f6bdc7b221641f6783d14213b6507ffddcda844ae38b323c6f22415dced537575e175633997557af0990589f019ab5ae99e32557f82b1b9c1c54e9ce289cbc98fafacda9ebbddf5fb3d99fb73e4ccb3d2f2ba889bc47207887f646d529bd1cf78ec915efb3086d6d4d664e8b07d094bc88d8e9fbf6b2ef22e56dcc7ea634aa021efaa4b85aa517b748322a8e0ee3c53324865a8bbc545008a5b855e9813418db9f74b178c1aad20e52bd7679d2a651760c6c195de92bfc27fec2405bb4b267152cbde712ce658a58700eafd2b0d3f06ead2cca73ec56cf4e55b5cb112263bdd8636b51779fa27847b2b658b39cc023df2d67143922dbcbbd07796d7702aeb831bcac758fa50d578996b5da3ecdf9799bf27989e5895bc1d86e99cc8ee5629479e99f2c0a038d0531aa2fd6cffc52bafa4406df74e0f33ed33fde3b4f4caccd06b68febad7f59e7e9", "51c95c24a588ce25d5e92b9b411d8b25af54e87553264faa6c5773d6d59a01252bcc05a40f3bbcb995615cb85dd1771cf05b75305b5dbc9ccc8571c0290905c22bf0\n\n# tcId = 13\nmsg = 33373036323131373132\nresult = valid\nsig = 456c58e80907cd7723f351425750bfbb8fbcd7a42794063f9c3093180a79c9b289b0c2e7db35cf0e90af75f3d830cf27ab4fd739e1db1e51d32baf5c2c219e2db5b856b5f0fc49fe33b32cb53f6201b47b320bac4f8e26d461ac6bb4c54a8cb3666717f9fdfcf148410ee6e2468394ebaa58a23fa3c7349ede819045d13a082d0304e5d0dfcef237c661884663dc956be112d47bbe627a1e66deaea251aac624ff45b15a6cd49c50445fc6f3e8a15caf4f9d082fac7b788695e3401b5b80fade651c1fc2404f5ad45ed632bddd1d02acaa6467f0da107202ab964844dbf00a48716e28d84176aa98ecb76ab52c631ddb9e1f06e6655cfb9fa1bccf05e9ea3aa773e540d0e7937f78e754a8ae4b57b0ea7d3e7cf42686f229e425f00cacf766d0c56de3151a151e12204c04d97a1470903e78cbaa74ab12955e1b2cb162acb07aca887507a661987e83fa9b0606f2b0d1303a709f407cb6866a560fad21f60a65bc4db2440b1a0b349cc29668a9f32a6d6e4ca7ff2bee3d670402fcfc05a51b988deaef45b6504689fbed8793f5061e50b803ba73843f3d8ba4ef097ff361a7cb58e95bc740d93a8420f81c13ea40f2f4ec44a0195d010577fdc42fdcc9b17a0c273dc79b48bd417c980258689026d292508c0c21346b6d9959f900cb3d7edc5acb5ef2e1f75eb3560c82a20e7bfe4c151792b3531c708744149faaea51a9e8bc\n\n# tcId = 14\nmsg = 333433363838373132\nresult = valid\nsig = 70aeb4087275eb488c13af70b3bd01ed728cbaa7e9d23227b4852d07bdbddbccd7e7e45cbf67a3609cc5d916f090bcc003ca86943a56b99482cba553f54a6c30f9cd09832caae0eebc61ac2824d1adaa448e3ceb6678da38629b2e3dbed14937881cd9887b23b0971b9ad2b30d63f553bd6d8235185b43f7a1db62952c4d0aaab7b598777a3c6406c5fdde2664f0112269f8a02dbaac936674f08330dd7ad49d7aa7a43926f9a40824a386ef0002963b2697e23db3bc227d12730271e2842ade151db6db670cf849ed14279b1378291d32fcc4b76d918ee5a0b64f6b5bd43d84fd5258f53d908f9bfee9b9de510f6e94ab4209ead7d48d4b1bdfc13afbded36d85de2adaae2e72beebd2b83208b7171d1618a66016e3c5f89364c9c4b8e5c33129f85fafe0e48080b6b78ac0f898f73f9635d8e72939a039d56e59b359f5f7e891f81c59369dc97da667b8e2a2d86f84ac9dbe98eed74c4f3d73809037ba17467825fa21aaffd18daf6bce69b8a7b88974565012f9ec01a51646884c1e64346012448940c4b3af1c9f86bcf656ba5efb0b1e65e8f9bafe42295bca712030ef6cef2d8dbb300ee57af3cc40e19dc1ee4138e78cfbf6f98bb8ef278dfda3b2464bb0bb6c9cdfd19e1b70004c994d4ea2962c4cb66e4fde4ce9c62b05cea744414da3cdf41e6285c1134ca53dc8581c6090f2f4b649455cab26912571dd03fc4ba4\n\n# tcId = 15\nmsg = 31333531353330333730\nresult = valid\nsig = 27b2c163e957b544022b487423bafdcd96b0d6b8b91f3df95e1b57679a5ab1c046de6dfa0f6a898a6aa1b5a81dc8eeb113fc992f4c64486e29b733fb4bf040afbf2a033eebf837d0823c46a70806de28a2a2ff3e39116e726afc7d400864bdefab2edde98662e1b6b036266fefcbc6040f95ed6c316c0969bdd3aa93db59d9e51a5172adf71f1af70daf873485523d9235c217407240938d5746dcee5b978aab3213b66fb75fb685d99f99160f23290baf90e9de690e1baefe716f119163653d35d7d638af70712fc97def6fe88ce8520e695f8a7b28a1ce73f0b9d6ce433ac0ed5446656a9b31dec1712d3c0fb6dab5f8cfb7fa3858bccb01033d9ec092a2f7f0caf68867f90a0318dbee1d40edc4c8ec0fea960ba04262dd7b2e48a3200285705ab150988f0b4fce4fd313d45f109d1f4a7c1c184d9123e896981b81afd280106917dec36f5b0ef5d3a71bb37a0e9c42491cc28bb82c70256775a5f2cc5bafcc15a8852b41ac59b1c7f654ca8d80375bc49e2e6b415458628d965d4ef4a751701abd20cc9f45e3cea908ad75e3bc258b36f584e60502e7cd02d2d4f8976bcc52695adf1bd6325e06ffe0ca161be992b4fce04d2440d6035164b09a8b955673e201f473c0f759b27e892c7fa61483743e25af670833f6fd49bd606aa04369295355a93163faaaec789400ce03067bae206dc58c8c7b4157251e63d683257c27\n\n# tcId = 16\nmsg = 36353533323033313236\nresult = valid\nsig = 675b9dfbd81c45913b46533153fa93161adc71cebdcd218b534c43f24b59df6fe8311da886898300e818ccfb8911d740cf619edb42643938185db0e2749e1bf4d6ae5a5c2d7c4139c339ca64e8dab0bbaf762c5a6cf9b6e04c86e476a6aec56c110a94c9ba0545f6f7fdfd08510f555cd67a9a8fe12f8d04bc00634bb3f84fc92587a3d4a9bb121762d8bd21c85462ab0f33de235498516ca63e0c4e157fd3031d78da7117f46256fd99cdd5cb18ac82d85c4ee1fa954e603dc09367a979d452450a63995eb83bae1d371b33cac539083eb52894f534d06d3e091e8e6a1dc8dfbafd4abd4df3fd5aaf8b93bbd1ff1d26ba7d1aae04e25a1fffb6aa7c02a4e75dc099d0e3d8381d7df70bd2558113c52ca8f839487ff5571c2a12c4c8596b023a0f9cf90958b69e513e59ebb5bb892b9b48c8e79887551e9df73f8f1357947f9cb43583c0b775ab9ec0d89a700cbbf935ab3ec00061b8d462b83c496a4b8abfb0dee0c11b4d5e3b6912a33599b014b7c381c2d8e82d06197cf2c40698730881de5df4e7202fcad15bce63c6d08573cd7712551404cf830967976e258f903aa518d7ee967d1c7c319bbca1a24420ed6beac83719c43214b9617144c1daf762b66f22bc34b8667dccb5b3bc980090ea22fa61c68e9119fd5f3d88c84e2ea9f83f0dd7dfc76b7535205fe0c4f7798e14f5559263dfc3666e9536e8c79445674dccf1\n\n# tcId = 17\nmsg = 31353634333436363033\nresult = valid\nsig = 1d1824029de39c7907288499362efe10d06179a8211e200f73889c1b9b68f7bf0ceb17ff58dfe494654e108864a2859075adf2ad2bb2e66a061ac9330ca9fddc525b3be8761f01a9c3eb7c9286215612962882b42ef74a2328e8e4511d3a589653bf0e46f299a52bd72a697fc6f09c4ee62c2d34d5487ad8c723faf42669583f2c7418c5c3f4897a193a19511c19840eb5c2c71b81023c0df8b1c6d3f27a880547dac9b12e094dc90904d47473dba66cf61207c709cc57791b0786148f62c591f72e46754e3d6e6f838c97397c5bc90e6079bed3dee5cfaf3520f50e127be6ba35cd9783b46424ad907a5c04edec02560c3d72179a6ee5cbbc9cc2331ef0fb157ed60ba4effbaa9a208ef03e1a4659d2d9a77f36fa783aa9e6dfa72015f6d6a586223a4640e04fe01b003aa395297c8d9579cd3b8e0134a06ac361819ea8499e010615478cf3d883b8f6a1ed2cd83cda71c7a595b3582ace4cab76a387f9f1f30aba9f5fc6ead0ad95343156a734645abf5b2771299dbe5daf2e2be5d4f1e6db93e92ee5202b7419b47ed5539d14d30d099d39f504a4162bf8a16a986c5cbec2a7d56ae06d815c4b91301d235a3d7e5536086699b44e5b92fd723804caf6acefa2fd58a9dde0c0524cb8d5a6288b05490b1153792bad9fd99ee696aa3b83d8f04f965242e98b1e6a96cc13f5de46a2fcbce6bdf33022f7860faaaf6d1ff0a5cb\n\n# tcId = 18\nmsg = 34343239353339313137\nresult = valid\nsig = 7eba46db8935bb9f29f3e5009b8ea19022f177fbdff7b5c11ac0fe7fc31ed63cd12685096956be4cea1ca37f738104144ae4a62591a467cfaa68b7e45c76bff4719026f4a5b1ad2e1a587bff308a27647c93cd869445d23043f87fb1bf0730e6f620864a61a097bc494eff10ae87fa270180ad0642ba638bcd53d753d2b8ecd1f70dee4eb0c90d1108677ef19a13c5bbfa2b1a4fecccdd54e15909fc73e2947677bbb4cfd097b3933facbb3d4b608e600d06d5ad53ce537efae69a5c6ac257c850eaf211aa58a3836368a21498bc63aa271ad5e8bf169ee149eb7f761393061ecf567856c64ef7575a9785d2c482cbd9a2999cc6499cd39103ec8d91ad3cb8cac0b4588ea1cbb8a61cf622bb638db4f0ad7ca8b1eaf9d7c60f9c7427e08cccc25057f497bd444aa11da061daaae0e5cea7e6aca793a51010be4b4c500af433abdb21dab5f79a84c302d290aa296f03fc1a4ede683762b72bfd2694beb537d06c750fddc312eb9ffcffd25558d88ddcd2509ff2f2615c5f9e29e6d1bab5145c6dadf490aa978530eb2358bca9759434f765c07130749d3b14ef7c2c5e45547d6a458fd3c1f80ae725a24b72f896f55d40da4a21b3612849d18119d52b962302eacc6620f3951e2d41f544801d4f1007479f89521e023989e9eb9865989fbc18234a0d07a89c9f9b8d051ff1eb5d41d394ea8045f94980020cd1c1992cdeaf5a27\n\n# tcId = 19\nmsg = 3130393533323631333531\nresult = valid\nsig = 90462930f56f9abaa7d7cd95bb07bcd9108fb5eb9c0595e5a370507c457e188d2b6d4fea1f6d6ab5e3b96c1fa140ef5ecb43cd48f942387fa155d2a73a19f759c681858150a1379cbeed487e39bc74a72d48d8a8ae1b40e894c6dff19f4e2e5116b3cdf078eb2e30393e3580bce971ba0187c4d90203de37a1c13c3ea40cddcada0b15ab8c963c95a8ee80ff1fe44fae72d18ad0f3af1567e5ce04b4722f93b581fa42731215b515f572cb98446a53614c93afd5f8d6742e0b1d7f449dd39ef1734cf8e04e61fdf0b7b2a4ad44615f88f7e1d4fe105fccf397f9531f3833f0ed49679b91b067b4f9ca35d53c4e6930b75bdd03f3cbfcdcabe7f688f69e88a76b31bcc3e200cb5ece2a90d77b97f4f1b192694d92904def232ce4d7775b94956c75ce8820dced0786c820c2324b400c951561970e769b616e605eb9b5f873a71c168e38285ddb572200903c24f8dcca7a6deca91c27d053d87d3405dc5f7169cd7b54c935f8c90b3cec4046077d1d84d8acdf05d7a0cdd92ef6ee59edfd067cf00e7bf4e911b877f60b957b88f0e71665727944ff95748c47ebcafe04009a3f356c3edbc423c7a31a9e8345dd9041926d388dc0436b6d514d10a3dd13bc0321f1e6f56297294d4e7e2d77ecbbed84dda2d03eb9a846b3ab9402711d72af55face368da74ecb263ea9522d9a7ebbad4063a3030c3bcd4b7c9eccd8eceb34af0047\n\n# tcId = 20\nmsg = 35393837333530303431\nresult = valid\nsig = 6a411380c1d5066a8555fddf5d4827fcfb0db89b1c60e071e24bb86773f951b5300fe423238ab7df1c109d854f6804aba4901ab6701ea545a8469500dcf95e7fc9e1bf9fa79b5031f130f583d91ead61ad11fa2c5a97d990909eb337fd48eb3bba09c761f0dcbd48cbb2bb6c778131c3c6e73403ac7c0006139fabaec0d91c4eb1adc39e6b0504a77140e685f60f5ceda237f47a5ee4ab5383f9d579ddde74886a0daf3c8efbdb7666532a44b7856d13a5f75d1656e5c6a9167d26a110c902e9b3c8274e01f0", @@ -8440,9 +8750,9 @@ static const char *kData304[] = { "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 96\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 97\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = 956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ec\n\n# tcId = 98\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = 956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed\n\n# tcId = 99\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 000075fbc044fe19c72f459b5a1fc4793f7893ffcc95bab8609900b3c3d3be6643a42987c167e7feb63ec2a57f961c1b9c35b11b34044e065d7d3df0b49496dd80f7cd1eb2e8c0d0b726f37e701ba62a3003a17657af55adcb0b6e86f95198ed435207663d616d516bf7222db241094849fb232bf6fbeeed7b5879a6b6c8aebc57646117220bf55403d0ff078e219ff119bd2e52e767b708b91afe30e9be348766e7537e1128087b4c9aca0281415e550965a395ab20d423330939b4e37551a7735c6df2b0395dd032266ec7dd4afaa3c477c64e3f95ee4945960b7a0c43b7a9622448eba4149e30ccaa0c234be7b06f4ebe8ef43063c62282e0643c6e483feb1942e3310bad0c05bb2f87674825fed098d5c787b69c5ba6a1f716dfa62ede3b8a01c076598b15ffa2e2be82fd1d8025f8ded14cd8fc8753ef76419e1dd561bc0310b2c7845e2744c9621735758645af0252315b6a05894c264c4587c8870e02e94813fc3a797d590a9645d92845b614b0d89cfffc0b80c5b48186ae350d877f0bc06e561770736342f00d56b2ae785891afe39cc0412337e4f5d29ff06d727f6fee8f0966d52ac146ba82a753751ad786c9d70ccd3005b11fc4f6b81517433a052c2351390332bf7fcb4326a19930b512631317c0354a81ec7c529ccd1bb2ef206d697999950a539808958d6c2be64220123f12e7aad168be35de70103090937f44\n\n# tcId = 100\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 75fbc044fe19c72f459b5a1fc4793f7893ffcc95bab8609900b3c3d3be6643a42987c167e7feb63ec2a57f961c1b9c35b11b34044e065d7d3df0b49496dd80f7cd1eb2e8c0d0b726f37e701ba62a3003a17657af55adcb0b6e86f95198ed435207663d616d516bf7222db241094849fb232bf6fbeeed7b5879a6b6c8aebc57646117220bf55403d0ff078e219ff119bd2e52e767b708b91afe30e9be348766e7537e1128087b4c9aca0281415e550965a395ab20d423330939b4e37551a7735c6df2b0395dd032266ec7dd4afaa3c477c64e3f95ee4945960b7a0c43b7a9622448eba4149e30ccaa0c234be7b06f4ebe8ef43063c62282e0643c6e483feb1942e3310bad0c05bb2f87674825fed098d5c787b69c5ba6a1f716dfa62ede3b8a01c076598b15ffa2e2be82fd1d8025f8ded14cd8fc8753ef76419e1dd561bc0310b2c7845e2744c9621735758645af0252315b6a05894c264c4587c8870e02e94813fc3a797d590a9645d92845b614b0d89cfffc0b80c5b48186ae350d877f0bc06e561770736342f00d56b2ae785891afe39cc0412337e4f5d29ff06d727f6fee8f0966d52ac146ba82a753751ad786c9d70ccd3005b11fc4f6b81517433a052c2351390332bf7fcb4326a19930b512631317c0354a81ec7c529ccd1bb2ef206d697999950a539808958d6c2be64220123f12e7aad168be35de70103090937f440000\n\n# tcId = 101\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 75fbc044fe19c72f459b5a1fc4793f7893ffcc95bab8609900b3c3d3be6643a42987c167e7feb63ec2a57f961c1b9c35b11b34044e065d7d3df0b49496dd80f7cd1eb2e8c0d0b726f37e701ba62a3003a17657af55adcb0b6e86f95198ed435207663d616d516bf7222db241094849fb232bf6fbeeed7b5879a6b6c8aebc57646117220bf55403d0ff078e219ff119bd2e52e767b708b91afe30e9be348766e7537e1128087b4c9aca0281415e550965a395ab20d423330939b4e37551a7735c6df2b0395dd032266ec7dd4afaa3c477c64e3f95ee4945960b7a0c43b7a9622448eba4149e30ccaa0c234be7b06f4ebe8ef43063c62282e0643c6e483feb1942e3310bad0c05bb2f87674825fed098d5c787b69c5ba6a1f716dfa62ede3b8a01c076598b15ffa2e2be82fd1d8025f8ded14cd8fc8753ef76419e1dd561bc0310b2c7845e2744c9621735758645af0252315b6a05894c264c4587c8870e02e94813fc3a797d590a9645d92845b614b0d89cfffc0b80c5b48186ae350d877f0bc06e561770736342f00d56b2ae785891afe39cc0412337e4f5d29ff06d727f6fee8f0966d52ac146ba82a753751ad786c9d70ccd3005b11fc4f6b81517433a052c2351390332bf7fcb4326a19930b512631317c0354a81ec7c529ccd1bb2ef206d697999950a539808958d6c2be64220123f12e7aad168be35de7010309093\n\n# tcId = 102\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 103\n# PKCS #1 v1.5 signature\nmsg = 313233343030\nresult = invalid\nsig = 0e207de1295caadb15098f51f5db90f9f000776055b107be58bd24d52a01d4171cb9e47a40790254f86a8a56c8ae38252f909aa3b9bbe7b7e1fed008105690d9afa647067ac122a272d30ac28213d2cd37b45cf81dc48d59e87d9ffaef6e1c9cf6ddf4ea5ff6123523c9cc885344b7e1ef4c8096bb542bc0fa5c47abaabca9a58ca85bcf092924741503a0f3c54c725c48855dc434b09d761f729051fb15af5612bdd387b4cd5019577327bb2e64edb065f713d50ff4285f1d184fe709207f809b9c38d064722897a868f8a09bfe1d33c80be0693e98d7e85600befb643e9f713584c716306731d7f8087dff66be1c4f6dddbc51b6ffe6034845cf0f88749e039ec314887c94648154f", "7c97235323bf78041ec2c8ee98ea7c553ecfec1f9fe89279c9c91ac6acd12ebe969da4c67fa6534ef9ace4b629c7b1de8c4ce1dc2b0f5bd7d416db6eb512a4dc8eda0322138cb7c65b9a58d712284e4aaf059db80af5785af4d83d391b7d8bdc4071636712410d1dde662478eada1a2f1f35786b78eec77b2788536108e7463d676814a91f81fd5e2084a8c1b1cc33988e73184110c6e6b0ef1de874104602eb33b5276ebbac95d91b943e25de6dfc66b31d8091961c78dcddd358de7f25584d9f74dc6271ff31294bee2cc9b2f97a2583c9b33243600500bc723b05d65839de7442895bd57a1dd508651a20e20f264d8dcb59d485247\n\n", }; -static const size_t kLen305 = 189086; +static const size_t kLen310 = 189086; -static const char *kData305[] = { +static const char *kData310[] = { "# Imported from Wycheproof's rsa_pss_4096_sha512_mgf1_32_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[sLen = 32]\n[sha = SHA-512]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 8d4444ab233739c9d1441e99cb4f71581ed78fb996ba1257fffcd9e3c74ff60d6be352f002f959ff66bc6ed0c987a070097e5d57d8bd89b4452a9d2ca121eb6a283e8d0ef6f5f67875b6cbb8f04e6d242900d73d5bd7b59de4b9466ccbe53874ed422610e411fe3e026f47e47b8686b9c891c7226b4ca560a840e1734eb4f6fe877e559c9a9299dbbcaeebaf7eecfce6fe43ffbc483514fa3aabd6959e5aaa3977e23a9f97edf406d396e96c3c830164b10abc680bbaa6d99d19765d7c7e77946ef6ae240b5fef0249e7062792b15c8f9157da95971afb315c9c015c74a2e79ea2d0cc46992704872c340781f052b4b2cb5ded8f5cadd9b5e3edce128ef2354bd0411074d6515251f5231453bd530222f730ec736a86f721744267ba52652289ff6a207a5a7c45c20ec451948d6bd7b10f1af7282afed9f5df43e4a0d0f2e8fc6d3dd3130d4ff6fbc11f0ea460089856df29d1b7b111095754a7de9bc03029c6c397b6994674775fd29cd22ffb03dcd90c51096b18a6c174f2b48d50e94856f5a22adae64915d69c5528dac0345017c24e8aba401c6e9a0a268057a0fea237dbf0c88906796eea0d1bc3c2347cfcd812217e26015825e9f0fac404c22c26272443ccaf30b294c7c467497ee561a2a5f6d219973cffde9aed8e4486faa3de3d17405445e2f78a768dcac1efd01596486c2495f5bb1f830a4984041e03a7bcd77a\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 3a58fc64a234dbd7be958d7c34abcba7d780ca636c4f2b2bb7fd3d4e4faaea0e17226c85debf8dc9b1a79e152a3bd83b13f43b1e92be81b37e908d04b717251e32a2d49e2cb5f2e7dc18e74cf9fcf0c0e246d473f76c79c3d50e878a2f89bc4eb6ecdda96c166d6a825a1df569d11384a78d7052782ace5878c41361f148c54528288088716f935d3e5b5d556a0fc9b62c0de31d9ddf4893f82365111043ad7fca010d1fe9187bde48f78cf465657e184857451d64564a16a166743870033e64125ca3f20ba80c065b259666871fcfcf71e711aa34cb70ad9a2ac6051fc02c96149d4e3c1741c4d44663ee0b49e1ba60a80b4c2d389ce3ba953d68bec835432bfe170429951f82ff51f408aff052c934d51526117b3d57ed1f2a912b37cacdb5a980d30d223d79faee7948c5f4986c1df5ed42923a3f4342da02a41872db49aa09d2d48c3b3e1cca7114a9a34e76b747ae6c99141c9f856e41d98456b3fde7d26bf842d6a421b3d4cceda4da1aa4d1298b624159a1c83b6fe5cb89982eba5e7d6005489d39233f156817c00c04511b98463696f8b6b3962ca3f4ef76b37300dda1d368c237250baa057e38658882f482d024c26163dc1fdac29904bc6424130837b8928f764bc939f006913ab1e968c85016dd812dba264520e6380872587265d827557eeac6498db8137dd2ae029fd83250ab7dcd764d018ca05ac9db8f95e2\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 7c838ba65f923660aa4ac47465eb1df4df51d6fa2be26389757de8c6dfc7746aa5164d909b69b7c04758d256e13e3520e77e75b4094d8b0d60da0030b9c991969f6e892ff03ffba9b9f95ca991a279e7cded611a2879e6e6602f411a122c8d11cd333de5d2f7f367e38ee0491380e8796e113487ec7bc05ec1b1261aff871ef82cdd12f4e3d8f239cd49b2f53d57255dfe6ef29038831cdebe9cb1a76dc9ed79578e129b063724ccb3c7b3269f5dd3d9669a405582255cb56b1efe6d61a376df3a141014c3d660b66f9d1b266b5fd3c5472534df778e6e022a8f5a6cab501dde611e07c0c8eb5718962692e8e3773bfd25f1d3b63a20a251ef0c296f01f4a17814e18dfc029f2ed0ce073e83777cff44471f9348434fcc12b0420bf2de1c9018f0282ee21f09302b178f8c772c8f8962f6a29291c63532e1ae9301e7ac55781876965f425619a92559f33737d5e11b282f9434e27d9b27eb2fb0fce4e3e90ca9eaafef170644b00e512537bd779fd2207ee73020aaec07e6cd44103a14940c9499b013c42440d2f27a3def34f3509cd8631db1cc8633ac15180272c824369e1d3c8a6cdca511748361cb60e022173f95ad06e7c79d59e03934854a9f9827f3593d87c34d3fc44beec58e107d454ce04b55c96effce612aef0e5d55c31e367c9fc0166f2c9d450e86d79323d4da8fb409f97adc7af2ec6772ab290f622fe1fa61\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 4a80cafbe2a6095f8e8663f6289878514d7ee7daba0c1b0a077cefb333cacdf7c116ab89b0a01cab3161c68cac92a08aae7d117c9a3416d67365621da3380a85ff34a7a3b512846048acd1ec5957af942721c241a180a5dc5d8f6f6fe54d4d9fcb3709cde37081e2233b4fffa201d2029241932da170a5bad0d927a803a7f6289fc9f7b1d41cc1a6c94cbf588d5492b363920d0c98404f5da9eb9457648e2a4e9a034b2e2328c7f8c0e794771641a981df765887b5ba19b769156b375535911e1a2da68bb6a37eaa0ef8dded4ce3eac5caff4e8dc357703f0409d00baeedf3fbcbd6895dd3938e1f03dd9f131f9c979e22e4fcbea0c58721bc72d1f4976e93fc1a7649a23745c0310181031ac34b2200dfb4e8fe9bd4cdb52a23c31416745521aa4861eaea7dec4ea2c18ae9f75fa9d36c9b61bdc4185e434f8cb091cd731607b749a3990585cbbea2b1c0e0fff4f589a547d320bc7923b8a6b594c5866095df9c914cca80cd6c0e9aa3d691e2607f9de64322031ccfed04d9c805226cb476d3246d6caa1b04c63372a77668d5edf06365827b80391a6abd66010e8e1b873bd83db4dcc99444e109efa2414c6e5319f30a718eb43a1256b2142afa2382316e37aebde32da5bfec93e89d2adc39f62aca25a2289933a7cd8234d72a9b3c6a001d27560f8c8a2d9a233bac0b519b34f4f79288ea2cb08a87242953ac24ea144143\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 3d90ff4e36188b451116227e189a71734571b72cc6fe53dec4eec59e67e98111e96fcd906509fade9922f2de6a13a4faa23c7efaadde6dfd0acf150541eca973c7e38a49c597d741e99ef7575b6e2c8de0974bc868a5567f0890052c4df54d12198ea09a12bdb2b6ffc14a1d874e165ed12caab58b28aee171fa7f1839e36e23ecdee2633616791179084eaf98cc23d2f6ff479df0ba46ed933beedf07cc0cad4dea", "0f0b48f4a063488ac67519e1fb83c7b7e86e3644b0846383ecbb1b1189743036b271fbf121e2199601a3ffa8e8cab00a6b9b5527d62dc2a398e4a42c1e5a62f8aae35b629755119c54cba5e860b421845f9b4422f20d896abfa962ece5d116f7d4170db8dd0784b7625ab2a384c7d424c69901f59d03b144241f8f6556da8e3bfe07c17eae91c50ef2c53e71072c3ff16e642cf126feab904e09a2febebd282a2540389bb60b145cb332658d6a69e03a0a8419eec0f204d6e592e04df01b92f58236989b6b92eb0344255914c25dcd0a611c9fb77e435e2ef9bbe3c74efe144171ca95d1bb7de814f76be54cdd8c11db8af8d20af4451a4dd3b62387bac37cb79755afe91d0d9a2163d299ff61ee4fc4d5267eb8c5252371b0a83dea738f6383e085e992b3567ae170780f3b83e15d895ad4ea668a6304f10f0914ca3b2900fab1364c8b352dfa8d5a3993d5628f4d2264c412210798c18aa2ed6aee516c\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 07440a61252a8906a9264ff58cebad6217ad710833105369b7a858216f1d5a5f5dedbe3eb8128b34dc0f0243faacb64034d21b656a278abb26ced174f76a22637b755b768564db6ed4e4fba0d5784a22be30d088fa965307430982f84476907d55435ca3d4abdbf689e76f2d4b78d99bcc742e0b757b897c4fdb13d15c5057e6816e32c3e294a947374c998550173cc657ce33f9fcc18b2d14e1b448acaaef683ff84b086f545a05414589b1c23210290ed5ebbc25af614129212d3853ff728ec01128d37c4268975ef870a1e4fa00c3c98b39c3110c2c11af10333e25db027448fa8f219a7dca7c8bfb490912bd5040f1f348b2fb437a8a9f407ab7e8af1c6e29594f557f2e03fe74e4fbfd2f935e68ed824a510fc39bb4be0a2e091feb265fd2d7a33d2f238e70b153700f5bd5046aad7a6fc02a5e23dc36f67278fdb904d05f2efd0cabe9e4baf4e16af0f7ba9edad706d67c67221ca0630238d6f688174d66c1b152f8f921e2c6c08a19e870eab76a77371b42458dff1c36b0ae97b811e900f6c09e792c89644448f1d0b97b53b9818d1d8f3d7a37bcb1bd3e3a5bc022039f00a0ef7de19657c4c9e06daa2ecec2de30db3b7b84107bb74e164956eb26edc9bcc57e5e1c4ed875b02f0545383602faf9525f094c72f682995d4e2d71d03e11134495f637a3b1b022153689751b63521b1a16b3c3e269a2499a4be1aff9b8\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 2686029fb11cd033724e57dc1835da4f9321eef330747c3500a4893586429ebf02cb4424ee5a0b91a70eb35cb05ef60cf6b3635d4f2ef5eb647f398fd44f67fcd2969b629a7c54f1094f9827f9f27457509730f50c9ecd2dc83bd13f1268d93f0f61c29c5c27eb821c68edcdf1b01f79d1f261dd7f2f283db197ab56cae0ea3b3c1cfaf3fbd4c1ed1f6d313f0b919e5fddcb97b23f0bf64e36bdb6f7cce8ad9cf362953e66c644f8b8b64bddff1e850298f5531f121e6821a393f9658237280c2a53c7c658319bc7d38f93f2d7723ef6728008843f89f61f7ecf5949a2cce6a9fd9dbbc501ef25a53ca02486b61a5de0130149d9d246925f26e1a9a74287439592a4554a872ceca53e54d1c1f4c4e18a4977939a6c37eeaab5c8d0cb5686b44d84c86d736ee8e0d97421f4c8935e926419dd68fd4e5fe9999eef75d0d0f9494cbb0297fa066b3aaca55cc229a36659be310c1e328d0b52f7747c62b1102a2d0a4acbadf0acf621a45e5695ce1393b3eb05a69ca5318e6f6b7ae5c4ed3f6072f8ae99db9af66da6a98d675a35acfe0a7612e9d5f29690870d81114279010bf7bb3d458f630f10f81a785f671e6735d7bdddf4da375d2e6d48ceecaee741a33ec1e8f9e0ce0755bec28315c6f9df363c800ee147bd412c5ea7aeb89e7a354fcd3a2c8474aed04f9a2a5fd2983380f3c00a4558c46ca472a4c15887c07d4bc8a698\n\n# tcId = 8\nmsg = 33393439313934313732\nresult = valid\nsig = 69b292ceb8e8eb52e374140501389ae251d8451b64b9efbeeaa16ab24126f38f2a7d4e21981aee6b672df3afec1a9e167686b6238b2d3617c659ca1331470e95234e2c04c308cd6bdcef7631b74c36a752eb4187bee2dd33c59f3fed55bee29ebef7ea61d26e6c052a2b519702282de7652a500fc50956091b35f9ef03fc9bfcc72f02dd55b25f88b60bf22aa785f674791e4dc02f9f2f7f04a577f860ea1761d0d8d3a0082350551786c62789b48fb21e85ab6b05f56ba504f7f0ecf8625aedee4de0c95c4f97fda57929c399b6d4865b78eb2d1da433f2488b4134fa043aa26386b47f551d7778bba8b6f379cad3b4894e106fae90a2b391e859fe8bef5e545ca3d0d908133285273fec3616798b83a6f7136faed77ac31e13a3745de44bab641f559ef5487890261ea80cd9bc67c58c7e14e9821867ecfb473b47e95bdb0003cce856f9192e39b86f551b0e3b7342598cb34d8905e117cf85b828ce0aeeb55407785e27a9687b59b8c5fe011c95638c8f1549e95658de4ec73199e3bce9a14860a0ac64ebf20ce5f0083594f40d6c2a12a07a512a191072487d8741766af953365f240335db17d4fc57390ee0562e4f8dad03dabb113a665b5b9174c1c128190c335cb748469ba2bfcaee5bcd25c845bdec81508fbc519a8837c059427cb3e0d1ba0bbb6e79849fb6a2e7f29c7d778f957a7e26fb28534ddd85ae59498996\n\n# tcId = 9\nmsg = 35333637363431383737\nresult = valid\nsig = 28dea73d9efb0b7893b1493264c30a72708c1a28f10fa9b8c7af7e0f52fc5f533012c7b87c7005857f9c55386e81ec54a94f71364798a5d31297a13dfadab5b032052ed34124191d2a94023e27a7e6cd948e21ccd33bedd37769024e97ff90db92225b6b5c0643357d80ca155a69b3173755b88fa83a4367355f1921474f97fd2e1337ae93e2f535d81423177725404acb230144a9d86b74ba3c1a6e724a5420a12f2a19b4ad6984c043ff63eb14a0cd494c0072c40f54f4d931804fe63d9bfb97ee7de83e943e12693bdda14325de9d7ad605e7efa7f42b14657fdc2a2e8fa3de31bfe2560a034aaa6de4b4ba00b056ee9d060982ff77b5e2acabbee33f3df9e58b2782e2f99a6d8f1c6b827862b5b04a02641bd1331c73804e1322dd2edb621508aed4f997458a3f52380d2ef83e8c289a996dc2407f16f6c848074d12bcda0b5050140051301371b51e808f374685f728e24ae3e937ca9d5ef890e0727375e4832c8c07cfadc05b098fd50014d6be7a0aa2a35ac990026f5550427db3b2345866d72d3085594e2161871a4ece9c55bbfbccf854a7bae0631ff101d887681006388a37228dab83350e5a15c96f7d0397cc62c388e8ce6e13b6ac727df4b1dba0691b7b96574d0d024cdb0e329e94a128924772ebed4eedb41138e7dd99d347ba50b83d1547d80b85f98ea544aa63dd725f4ec61b1b3b522409a1369b5a9d4b\n\n# tcId = 10\nmsg = 35363731343831303935\nresult = valid\nsig = 19085093b94a6bbc8f27edfc375a736a9e086f98b1d6e4280e6a6f6e8dce1f878b4007ef9c55d3e4bbfce9a6fde2c6e07ba94c55bbe8053a3a3c08c5fb981960e82221fb66a95553448a4d2f8a1cc588bd1e9c4064e9b6346bf48b153262035db57ee6cc5453483501af3668a645a930332738782f55f4524b1de5787b4cf94c2042b43f47989295c8dc1e0bb9df8a28fa321c16637e20fb409f55a21ea3e29e515f833e18485b501442269ce5426a20b77bc3a797a8fe461b1e02ab4d2fdeccc84ab2b9a2f0f5fc68218dcaf140dfacc70a990b2157f71815049d86e43c094b956e6a1915ddcd3023e6805f9267e96318c466985fcc3eb84db972dca08c84a347aba687053871956edc2bee98207fa1e984b1bd05ff115e24bbfc706ca9fbc916565a3984533a281e665dfb6c8ef40852059993aa6d87d5d1faabab4e0143f1080a4ae9c8afd4886aa21ab3a487e316fa95dbcb0b67ad4dc8992c2beaa48cd274f3506b863b33d761d8369ee1e1ca85f5c86adc826d9adca6ac77fb586423eba20ccae5976f9feea127c720ecd881bdfec17ab1c6f539195838ea99d4b8e612933cbf8c7daf928e99c603e0f633e5d89bec797eb33d782769e03c75d04c6f64f90ae54a47f9fd3835a263ebe8c61df8987443ad8ad327aa2b9facf647409828fc9716da00f9ac1d932555c9138b6b9d23d9c6d1726d63c1e42527bfae0354bb\n\n# tcId = 11\nmsg = 3131323037313732393039\nresult = valid\nsig = 882a00befcdf655539171cfc51083a011e676653b03498c5f05a4894cc3ee7963997cb440e279acc5ba37f0f675b7de685d3f29aafa58fddd4feca007c1e96d0891f9e7407030fe288ea91d579d3d6e5062f9ce14aaf9b507b7405000a0a4ae6f207f756677276ab25352699fc3beb4892ee2c4fd416e59379732e1fc2af9e37bb6c49d4a9538f9cecbddb571a5e3f28d266a1a2eb3d477bb3f13ccf776101a5bb37ce0dab135f4a5976647ee50fb8c8fd829812c5f686012a48a6ef6af6a88c5e805cc95b5d0c90ce568b596b2ae2e5934d1c2dfd7b2966e52fa145ecc3d94cb7cfe3dfa4cd8b3b42b780a212678299a2ad2c920f386fee15085cfe225798f9ea233b5528915d8a4d530f80dfe6b20fd4fae2a80ad0ac3c3f45d99313801c1a06cfcd311fff3cc409ef375f0c2486cb5331a6f56f693f48596edaac25c10fd3f985b565e657570cac4ab291cc963ed196455f7285368f6877cf8c74ee7fb784ff192638415e4519abf74d82daf72cd6794b9e82258bc1b73f08c01941bf304385a3a80085898b0ef5ec929da0cb2f27fc75153c11d0699bad1fe8b1d357ee601d5de2489166447ece43d84212a88ee665c0890347e361f362f68a195184b224f3c2f0228350e326216b043a56efb4779aece7d5bb512e3113d611db9767639934778e442f838e9bcf2455f3aa66f5c038ba28a3a8838d2302384ffff1cb6131\n\n# tcId = 12\nmsg = 3131323938303334323336\nresult = valid\nsig = ba12cba0e650918ffed25cfa35075c29f2704a11d2698311965905bafa47ac53f0cd688647e298e3bd3cd380558b6d42e1ec16dc58f6175ad2341f93700703f9dc8617e321e5246c15d371845d4e67cf04f7e51b5328ed5a86464ab669330eb97749a10ed6ca4e052a21fda6ef70de6b49fccd8d6db530beb55588d85fa05f1643a79d5ad09003ae2e5413a06a189df2633b742bf43a8ab4a473bced22e6ff46a687b5a43d6d1e1d1b2d1fd96cc99e967b83c9841f4e2934a7e044606a73f8217455beef7926f0c65714cf50d2b5e06f59abbb95a489e8dd1725b9ba6d5b6092fd660091eb0c4f47e8a9844dec0e10cc1a61d50792e1f931071188af1e800784d202f99edf2b7fbe28a120b692ba476aa431765208cf493253d73763d36c795359c7146b2c82b635b4d6ca0c1a007cddc0385ede1c589cef90f02178e302bd731b37f66fde283777b7e02b77803edf808af7c1c71d0a321b7d090e299917aa21be4a9a82ece8bca006917fc0d126cea0e7e64f6073e10c589aaf3ea25211417f2c3d12d7066aefe4c2675d8022fac6506d12e8eb19af5a2c82829bf64abc4b52846191cd6dc555585c17aee1d50d82ab3a580d616d988de71bc7ed96", "5a6cb90702ee4ea29af392e4dcabb97f7dd7148b811a93724b40bf40a40ecd3729b99af580484958e1884e4947cfeddd5b3df5b810f65dff9d460ce273987f58ca57a03a\n\n# tcId = 13\nmsg = 39383736303239363833\nresult = valid\nsig = 39de8c150be0071d220697d5ec83166e42d608d83841cd01eecb5b63ef1a6638befb87269077ac7ebbedd0e368e3e3a87c63163ff84ba38e51cd346a4d0617704c1ce5780e1e1ca4d2fbe72b82429ba00f9311d2ee26075e8c045ba3f4f4e11c5454819353b951e684c829756be54da216d8d0585d23573720516ae900a197ba2ddd95c76a660726780213060c0a527e4e1e70eb4a377f7766237925fff87ce798349b4ba0fd3a0c89a7403b9e8ad657078166aa427ca530afae4b66233b1c601bf043c1358a73bb85fb5b4b7f2fe24fe532400a99f778f27a81352ae27d2ca9f3af99da7c9156871b7b4f0f649a3bbec0156e638f270af6e2e3730fee4500be694b0eb4e3066d2b5fe29fd91f1bf55747e6ef9cf106eb3bbc3772a8b181d6a4878531586022415f6be2541cba38f7b950f805b4b8d673355797ef0b5e58cb9e3dcb97d6cfc182ab493c5e04f239caf2c925ec2391700d501e5d4a7a7ea08b6fc9ed56c27460e7d717aa9f8100d76b57b4fe485fddbf8e81dee4b1616e0e0ce2eae4134ac6a96c1853cd3975f770f05f077eb4781ca935e58f7dfb618d855010cfccb3a5f3243853ee413ab695753329948e772aab3c1799b8ade5f9f4b0d041815842f7745d71d6ead2c83bdd2e654f445b469e5fee1f091e708cc50e8441eb38e0a035d58aa4bb9310468b38a8342d9ba9a346d64b25b4fb6143bb72155ff3\n\n# tcId = 14\nmsg = 3230323034323936353139\nresult = valid\nsig = 67f05d7cfb5ebb3fa6f34a32e859395de916efc318bb58cee0d5dee9457e458cfbb97fbda6909ebf85394095732353b221a1bcf502b9b2cfabb4d67eac73a6720733d5d76224fc6835fcd8937c259d7ed7bb1ebcc7517c3b6b0fb67a4998838f529b8be2abcc8c2cf10b60a19b9fd4139756b766827bc3cae375709ebd821abcd97bb4d2e5f42f56888d67cc159b9d54910316042a4acdda5c507c66a055f55281f1eb4b0a1fced99560878109be3c04eb62633bf069d86f1a7496b5008e7009eeb225d1d4d0b377ccd4029717fc7e55a26575059e4b90fc735f8dcc45fce928ebd5c116afdb631f6c302a213a71aa75d427cc805ef5c9cfed95a1e3470dfc1897860e459f50f98958bc4ba630aa855dbf5799dd564c7dc8c67797dc1eaf51396e4984e345b847bde407541c68c13fd29af83eb6e15bfd092641c46da3dc7537d07d83c343cc8bc8c6064f8e4f61915c555bb86b37ba73dece8f9a0203da68ca9ce7c874c2c1fe516952acf953b61b70c5424b17123020fcc64bbfd7b5ed9c4740971fefc1743beab357e466a35a14bc5b928a625c607799206c76a0aec7df6d9988f2dd266d41cfcc654fa23343d39196b3a10f651d8f9cbbdb410a629fa10efd840b85da03839d96e5744a0ba785d5f90e0e797a053b8762dd7ecf805abc99d648e97d603fc4890119942d3b9b9ad4e9391fe453002ea2059dd01ad7edbb73\n\n# tcId = 15\nmsg = 31343531363639313830\nresult = valid\nsig = 5b382b1f8b912347b40629ee86f870ef85da6ba37f8fe661b6a6af3e4ce714e2be967f149e1bd52224315c87e184a62537ba262072879a4c8f13c8534aefd892c074bd214c7b915e87fdba67287bc0e3737a13f69ea9c18fb9329ae08fd35b692eb7721d2816568f5fbeed25da9df0ccc0ed69a9cf2e299245b4be49ef11c956f182587062c75cc87a3befb1882386ed503b658756300adce5268270959fb270add0a61421c066aa8ffaef45428885176a466792ccd4af9b4ac03381b4e368eebb4a75ba4507e61137dabe41aab8239cdd9759766db0ba6420c967f008dccfd4537528c51dd7b9e95135fce34664ca0556a30e9bbb531f39bae4f6e15ae266efb39dbd7d9894c3022e8e5cec3808d8f465115f85b411f0b6e276dc5c6f2b676d6ffe8427112b3af2cd99137d25b109839c7661d8376e3252e1f8bf9c5baa524c1bd82eabe0228b2c8f2b186898a151d25192fa6266bbaeece357117b46dbbcbf4818de758c5892ac548a47c8631d4754d4ff1d13cfa3a707edb5dd8fc405545a84f2a860f4f59d587658dd5ef20681fd590c91245740d575d127a1173ca8969c4f69ab10bc67cdc3ef5718fc317cc7915bda8e97a5d674ae63da735abf9e119869fd76e816b2d9eb868cbcdcecfb7d3a22db60e686033227483de816fb80dbc3d0abeda3d3169f298aa72fc20e305d2c6df1092c8b406e48143a3a6211020bc6\n\n# tcId = 16\nmsg = 31303933363835393531\nresult = valid\nsig = 3d85ed8630bf31cdadca8fa4ec06e69ca8e9edca84ef2b5a9d689fc77ac3819fe5f1ce370a060e294425ac97c4ee2abd4c45e8566d5467ad19c2eae4ec85f3e25d0888ca4f739ab93cfe16c034295e075083702baa6f283428deca6d24c8083935c80c08e68a1c622697ac1989a6bdb26bf88403ec06685eee11976108c3abfa602b64e6dc62d53241600b71c85c0c9d5f30a1379b312c2cdd6051febe6e343ca99fccfdb53f0852730d2bb5585d3c344d9091cbffdc529f780ee7aa8d807e54c0a49fdfce3b2cf659c6cc214e2f3a8329bcc4156408db4a49071bc36a4e018872c6d8f138da58e0877307fde9650a94b98882e5686fcea8524ea07d9d67ccc6f17d914da6ce80f0ca32757cd5cb4357f419a1726006a2b8e5a3a5a2d93e3af8a8af38d12e409ed8cc118ddbf7028a4baaca589a5b937997097189160f36b9e38bc29723d2f8f3844963de7f0742dc6c7f3a183d0729efc785d280cde8c1879eb75a53556f2c064eb114a24bd36e498216e43f60f16dc231130f5a393ee13048c1e7830e2c9453381c238b730db88b186447174bccd5f297bd2b3343309df6ad047e6734980aac77ee15122e887d4109735a932401a9be4b02423171f26cc3c0c59ae1870a5d3561df937e344dce45ff2c03bd8ed634e61cb0a6655d8e5945d77e119f955103c7b121105e993389f44ae306d901ad9a568a90eaf0b6eb503fc8\n\n# tcId = 17\nmsg = 36323139353630323031\nresult = valid\nsig = 3ebc127c8ce530268e26be059e0db2f580109f0179c7694d384ad01f257effa13dd90dd760e011546e8f8185fa754d7f8f89718675c818d8b22d94f4410ba577778ff90207602e19dd66f7296548600ed4fd03ca80e706624b715c52dda105df29661759c39c3844a469f52cb187a4f51640c2feedeb9411d96bc9f79700fa5ffbdcb87183d5652718a7dc63f0fa5885f2b2a95e0a79294289caf3b998a747590bfd2f0054e844f79c57807cad58bc664d6c4daa96a6262f4d110e3bc456948ac157f067f7a999d789e1462af0c59bff7e6fd128ad3b04d3bc0863e7343ecd43c01b16e549a4d684f1ae5c069f5f48eb63d64b8c4e53decf1caeb545a7e3f7b62de1ea5cde0c77bfd03ed690c15b9ea122255d34252b5a59a3464d5c4e4187caa9143506088b62778d614a01cfeb6ae07cbb91ac1ce5e63769afd6d3746ca90bf387d86780e1bf86c6653112a0dd193ec8bfe26a2824694f28dab211e28262a45c54ba8e1e94e21e61cc282a3b9131709e0fe5132e27f3d8bb20e69ea99c972bc780da5c58448844635090da5aecef1683a663a7d8c3f65ed98568dcb3c5199c5a10ab41ae60a5ae31968f5ffddbdc30a475b02f18d97b0d0ea03ece8c9f06be97b3b76418cb57427b988cbc2f8c13607c8fb97f30f209683c2b25b1582b7fa99619fd62f36481147f4b1296b1e19c4e867d2f240671475d730c7c6e19b5b5a9\n\n# tcId = 18\nmsg = 35363832343734333033\nresult = valid\nsig = 2484f823b830036277b6c888a551a134afc4456e0f11c90c7de87443f115615a2c3b5cadfab075aeb8d5b044420b8b2a98a58b1601d4a179bdd2c28299386bfa8bfa23db3c0a32214a8f99d2d2bbd202ebd5d6a7ef645fb823ea7e07f1f0f8123099386a011d78b8f7d74391cc4c1e82d5f5e448e44b62d091d0c923aeaeb3dc0ebfacfab71956d6d05ebfb6b384a5ca850b4efbed24bc02410b68f72218bb57ef7d3831c777cf48e5ae455bd0fbff0533399708c02a3813413e877bd0d1f0ffc21489800bfc70f6d3f8e77dd2f3bed5d298a1677e75bcd2886e84b5eb2884642a560826269e0445c80d695ff1ff72496dbb5853f72affad202a780978d5bc18f87bf2562021016f6d6a6b94dc7161ba220088f1e9a6000b2424716ca33d3e0e68e332778e19297934634803cfd5ec4aec3de2f6c8606b217717cfc296bea23fdd61827508643cb5fe505ea14c2e6a61544362d4d541fc41912ba7dce58ddd928ce8b8ce465cfffb97904a3e961711a24a019d25f2bba8d65413b3de82cbb04f2975b87a95502c76921b550f545e6a659afc83c1731dd8bda533b154129883d9aea6af532adf3625712aa44ded67ffe6d90bc95357d446a673cb32487195ad20ae184250abdc7d3a08d3051044fd9eb1049272b89a2e98f1a35b2e0505793a8fcb7448c03c8f46aeec03d1cbc3eca5a27880c8b43a2d255132703c40413b2446\n\n# tcId = 19\nmsg = 33373336353331373836\nresult = valid\nsig = 76d929733914162395018b1641129388337fe075f1ef22857bf1fca62902ded0a7f6ea25a0b33196b1a51145dcafd1545c09daf6d4d453660c79b61993df7b3c3207b828920ee1fd030a29233e35fda6d8f96990acf3cb5715b769b4f8d1bcbe3d686527fed6ad66343012e8c9ca8217c7c3dd8a8efdd052652f7c9a89090e598a6a60753b2c8d9ab67eedb3b3ccf8fd755d116eb1b089b108f85ce2b3be6ce8b11340e57dbd8c9b3acdceddfb53e6ec145f7622e184dbfb35ae46d75ff43a197703b183196d8778bd06d5d245e79f6c2e0afaf9771babb9a88ff06d0300be38a6f4dd00a627df186147c91be1d2ee4dd1096985e37cd2754002c776223ec0aadb08a3279b0839c67e9e2053344bd45d487f65ddc1a526900e909cf1ab63908375a5e0811a084e481c1f149e58078a3fe8abc9ca195587bad6bfbda20beea9c87b122b55cac6f6f65635e655cc0187d63aff5a026915232490b43f35ae2b96d7a73747d958aead23b60784eacc6a7e6bc471f850adecf8e2b53f5f93c4b8a40a27420466abbcf5e554a35d40a2f0ce4447c23580193df8aba421fdafbea91a92f74f2f9d8a565251dccbf07133225b40ae28c33ecf8cf6ebd2703a135cc6420628304d13e5b65bfbf7aacec056664694126dbcfb2ec2334f04bf4e4d9227444b07737a4d7d7ef4762b53973b900320e589a08d0e6563086534b6fc6d939e0dfa\n\n# tcId = 20\nmsg = 34373935393033373932\nresult = valid\nsig = 757959f7d8edcc8d2b843027b0e7be51ef30769b79e7393a550ce13ff36088c49e062c19646b68a82fbff82d8f54efdef5e4a412faa075936fe83bab9d5ba4c16be9b50a45a8196769c899a4fda1351e0bfbc0d3778ba2f3cad6853e9b59fe1d5c2b6ccd3ea320300e55337991ecea2623f2fd2088c1a152acc9930b57aded1bcbc7d615e43b3f03f2568248b11fd0a7c8706acda54ed825a8a26dc5b745f26dcf0f6c6f6185170c7bcc94e0917160346a54b6f16596bc5b53d19824b77440ffeff031", @@ -8468,9 +8778,9 @@ static const char *kData305[] = { "3343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 164\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 165\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d2\n\n# tcId = 166\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3\n\n# tcId = 167\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 00004a80cafbe2a6095f8e8663f6289878514d7ee7daba0c1b0a077cefb333cacdf7c116ab89b0a01cab3161c68cac92a08aae7d117c9a3416d67365621da3380a85ff34a7a3b512846048acd1ec5957af942721c241a180a5dc5d8f6f6fe54d4d9fcb3709cde37081e2233b4fffa201d2029241932da170a5bad0d927a803a7f6289fc9f7b1d41cc1a6c94cbf588d5492b363920d0c98404f5da9eb9457648e2a4e9a034b2e2328c7f8c0e794771641a981df765887b5ba19b769156b375535911e1a2da68bb6a37eaa0ef8dded4ce3eac5caff4e8dc357703f0409d00baeedf3fbcbd6895dd3938e1f03dd9f131f9c979e22e4fcbea0c58721bc72d1f4976e93fc1a7649a23745c0310181031ac34b2200dfb4e8fe9bd4cdb52a23c31416745521aa4861eaea7dec4ea2c18ae9f75fa9d36c9b61bdc4185e434f8cb091cd731607b749a3990585cbbea2b1c0e0fff4f589a547d320bc7923b8a6b594c5866095df9c914cca80cd6c0e9aa3d691e2607f9de64322031ccfed04d9c805226cb476d3246d6caa1b04c63372a77668d5edf06365827b80391a6abd66010e8e1b873bd83db4dcc99444e109efa2414c6e5319f30a718eb43a1256b2142afa2382316e37aebde32da5bfec93e89d2adc39f62aca25a2289933a7cd8234d72a9b3c6a001d27560f8c8a2d9a233bac0b519b34f4f79288ea2cb08a87242953ac24ea144143\n\n# tcId = 168\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 4a80cafbe2a6095f8e8663f6289878514d7ee7daba0c1b0a077cefb333cacdf7c116ab89b0a01cab3161c68cac92a08aae7d117c9a3416d67365621da3380a85ff34a7a3b512846048acd1ec5957af942721c241a180a5dc5d8f6f6fe54d4d9fcb3709cde37081e2233b4fffa201d2029241932da170a5bad0d927a803a7f6289fc9f7b1d41cc1a6c94cbf588d5492b363920d0c98404f5da9eb9457648e2a4e9a034b2e2328c7f8c0e794771641a981df765887b5ba19b769156b375535911e1a2da68bb6a37eaa0ef8dded4ce3eac5caff4e8dc357703f0409d00baeedf3fbcbd6895dd3938e1f03dd9f131f9c979e22e4fcbea0c58721bc72d1f4976e93fc1a7649a23745c0310181031ac34b2200dfb4e8fe9bd4cdb52a23c31416745521aa4861eaea7dec4ea2c18ae9f75fa9d36c9b61bdc4185e434f8cb091cd731607b749a3990585cbbea2b1c0e0fff4f589a547d320bc7923b8a6b594c5866095df9c914cca80cd6c0e9aa3d691e2607f9de64322031ccfed04d9c805226cb476d3246d6caa1b04c63372a77668d5edf06365827b80391a6abd66010e8e1b873bd83db4dcc99444e109efa2414c6e5319f30a718eb43a1256b2142afa2382316e37aebde32da5bfec93e89d2adc39f62aca25a2289933a7cd8234d72a9b3c6a001d27560f8c8a2d9a233bac0b519b34f4f79288ea2cb08a87242953ac24ea1441430000\n\n# tcId = 169\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 4a80cafbe2a6095f8e8663f6289878514d7ee7daba0c1b0a077cefb333cacdf7c116ab89b0a01cab3161c68cac92a08aae7d117c9a3416d67365621da3380a85ff34a7a3b512846048acd1ec5957af942721c241a180a5dc5d8f6f6fe54d4d9fcb3709cde37081e2233b4fffa201d2029241932da170a5bad0d927a803a7f6289fc9f7b1d41cc1a6c94cbf588d5492b363920d0c98404f5da9eb9457648e2a4e9a034b2e2328c7f8c0e794771641a981df765887b5ba19b769156b375535911e1a2da68bb6a37eaa0ef8dded4ce3eac5caff4e8dc357703f0409d00baeedf3fbcbd6895dd3938e1f03dd9f131f9c979e22e4fcbea0c58721bc72d1f4976e93fc1a7649a23745c0310181031ac34b2200dfb4e8fe9bd4cdb52a23c31416745521aa4861eaea7dec4ea2c18ae9f75fa9d36c9b61bdc4185e434f8cb091cd731607b749a3990585cbbea2b1c0e0fff4f589a547d320bc7923b8a6b594c5866095df9c914cca80cd6c0e9aa3d691e2607f9de64322031ccfed04d9c805226cb476d3246d6caa1b04c63372a77668d5edf06365827b80391a6abd66010e8e1b873bd83db4dcc99444e109efa2414c6e5319f30a718eb43a1256b2142afa2382316e37aebde32da5bfec93e89d2adc39f62aca25a2289933a7cd8234d72a9b3c6a001d27560f8c8a2d9a233bac0b519b34f4f79288ea2cb08a87242953ac24ea14\n\n# tcId = 170\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 171\n# PKCS #1 v1.5 signature\nmsg = 313233343030\nresult = invalid\nsig = 12813153b37fa6c0fd755a1c7c409bb8169c5a39d045dff2da02b2f8e8897b0cdc6c2d40e6945b97006f18e1b26983f77b70bf2961b5e5f2759241daee8c56fca7c53c81f69d3a0341720d9761a4f7be8c068464e881c85a2c39e0ac6f74f6f5cb42df8c3713f66a282d7fba85b7a09a6af83a068b78bfe83ab25841e4bc67c9e40cf2a0974f8875fb81cc6a115b91f922419c44ea82b33187521a7e1f46c0ab9459b4e97a3f4a1d9e92403a37168826fa0e", "e914232afb6c4d7dd082d0c58885e356d0efb8aa9ae33d045f24b4b3182d5c54556f5838c449d31a49a3ac4ba568c248ed72c111b5ffabd991ebf5c48efbca33cb38996d584992c4abdcc7b93700ca03619412a355b41b000a32f6cc4935f942209b56a23cfb7b788dceb692343995f77daffa25e44d672f8bc451f776560b415d0d1bfe9925af1c2567a8e9bd15b8554d93377c62b0addabd27e8d9e0859f498ba8e03094e1d86d41e69f7606d9f1fac04744c3b7b8fc4942a846e2a3649bd9416d500b9895455fb6741ed8ed4f426f20ab40d8ab2e6cf6c63f5c290fc011768b317bde49753efbdfd12583f1ca79287225f9c3d3ed0c4530815e4f5e7ed78d14aec0d04142d0ac0fa3bb5d73b4bfda2fe7103a2ab40672abf08ef4d9e537b9f856d32450e2e41d9277be62ad0675d1a530709f2747f51f17aba10381fdc70c626bab45d51166b6f6ad978d2dee\n\n", }; -static const size_t kLen306 = 350237; +static const size_t kLen311 = 350237; -static const char *kData306[] = { +static const char *kData311[] = { "# Imported from Wycheproof's rsa_pss_misc_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-1]\n\n# tcId = 1\nmsg = 313233343030\nresult = acceptable\nsig = 88f4676b502e365dfd82805ac1db27d1107d1516431ab4f71107b62625b6275af4a5dbfd8314fae255820c0cb577ee2457f510851d2678e4ed3e6839848aca8b67c9ce52c5bf57a01b6683828d03470034b136e6ab1914adbb1d918fdc31f7cef6f44b0b0ba0dbd6c1d3c8d7699ce374dc86c28beb3bee8f81f41162344e688af0d91297da0dd5e8104a5440add89bdc6c05d20a164c0f079b78654f038d443743f94bc45762501034a32b5d05bb86e75dd9a171c81dbe43edf50b2e1fc24297375331d78a8f0399d4aebbeeed911f6d964049e67d89eec0e95443af2ceb37125ea8431cbad2d8416fc15fb9cbed9142fb8cb06dc7ceafac056cc1f6696e3d93\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 2\nmsg = 313233343030\nresult = acceptable\nsig = a85f06875b529ca61b60df404652e79a499f81a0591bafa3377b80d8e300cbae679a941832eb5569fb88c9f8629e3c2ebf5f32ffe43767d1eaf59016f5904de3f7d39cb470dfc5fb5678fcd7b55d1a30f716b7f04c2568f3c1a2bc780e974a363adc622e679902e966af183d874b35396423d1a263bb1c6e7330179671644c6953cd795a19e2fe4208e7da5244e4760dde142313a781a55b0baf866dc158812a723d74911c8717a512d722669193f8883b1cffac98de8473b7a77198e20560c0c21207e00fc7dd14385fabdd530d568d143ddbee8d1b502f7b194b9827eee9472f2be8b2a541124405582bff393412f6aba9c42e5824d7c24bdd4d82d925d066\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-1]\n\n# tcId = 3\nmsg = 313233343030\nresult = acceptable\nsig = 8189776015db3a51805f6bf71aa1214ee07f7e385510ea95a0d4c3d53bc0d59f07ca39af40fe8c3138cf6f4ba0f72a3397df6ffda9cf49e467a34d92ec772f6b6d51d52cef86d16f74bea798a85aac873cd4d5d3a0fbbb618998f4b2b691bc14fe1f235601c51a76c4eacd1a33975d9c3cdf1daf579fb943556f0febd948d1b1e15cc85edf486b00499fa9032b6b801b5ae4454c94d7f89dc1fa6dd6a927969b14a4bdf51caf7cc8a87ae05d41e1933849acc5fcb0f478f1e23a0f476372837ade82f8ed1809e2245062009b8e683f563029ddb9892a398dbc2df594c12fb4a0f0c551abdf2fee4cb325fe9800ea741f7b2f2b4db370939bc7e3ea95ab539b10\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b95489", "1cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-1]\n\n# tcId = 4\nmsg = 313233343030\nresult = acceptable\nsig = 49e060ccb577eb614274db1ad34249490d1cab2b8d3ae2b708b93c8a8ead302e6efb8d26644d5caa5f62b89f3949942d07470c37d8878eb5cc9c154701feea36ac66d0a9723fb316f7ad6226f634346c17ef47b3e19c7b9979d60118959a5b35cc188200c8f9b2723046f480d95a9a0af07e648225dc35114d8199a431ccf4f44fe8e8c9c0130aa819aeecb09f95eea8f6d89981c05cc82716fe7ea499c55460c95e99871aba1ad3ac3bdbc96850863b23e3e6659ca346ee0e186ad717a8ec9c7a548d8fed0e7b79f896722659ec7e1335de12f361d5e6c65c791441c3c0020de48e60f200c3ab79fe0179513b2c1592e2f0064ba4799f6a0eea199da77d174a\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-1]\n\n# tcId = 5\nmsg = 313233343030\nresult = acceptable\nsig = 2d4216f277e50736d41cda2191faa97fa99d9e325b34926a363f8dd73c901153f087ac206cf3cb25001dffbb6200b7b35565b466f46f23aafb872e5c39d26156d36d1bab19382e5f15873022e64b58c129d38eee8126130f6210fa5ffb697bb3dcddbd99a9b60b53b25d094f9ec9b7a1cdcd0cc74a3ac478c7a34cc22c7e30e952bfac85638678b8aa2341fb1f108114d43dc849d91a3b174b0dd62f6dfb96459d4c76ab5fb6479d68d690d4a5c120c42a4bf82a8a7e9e7aba127fd5fda3f4c6ffbf2e4eeb72ee695cfeb286ec99e7cee8cf300e4e149cf17e70cf9f2bdb6421087916e945bca42a70a88b1a87e7ca3ac0a1bf2ab1a65ebab7726994a6c9597e\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-1]\n\n# tcId = 6\nmsg = 313233343030\nresult = acceptable\nsig = b66294f7b1e1a673e566c59f9abf264860200763860cbd666e476dbbd61fc39136353ab74299cbfb64bff88ed51cf9a20694e832fd97235d31ec6aef386ad44487d3753cc1224dbd59a34babc3eb8b538c10705775a27fa88ae35c0f618e0b3c6b91d999fdec5b86f15d1e462feea3af6fa12a5234d526e82039e1df013ef1cc6056221b81d755a13b70c618cefc6dedcc3361b5a910fcd4a812ae48382fddd75d5b51ca3d243dac021aeeaf6e2bd4aed75d7ff6d81c9aaee2356e3d12192b5e75d006b124275b0daec06b5af29b0d3e85f057db59db4b887fdd2bd0a33865eb87e8f3e37b4d8621e2e41c760a973f1ba03722d42bf5b921380b71fea949cf0b\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-1]\n\n# tcId = 7\nmsg = 313233343030\nresult = acceptable\nsig = 513db066bc72893653d1f7fa3f19546281b6239bc8390c4984999121a1dd75aa94004c3874beb6327205f2ecf8f6eb93eab018de3a6c71ea8b2d3a628188d4aa2b1cd6bab169f3e78229e4383ab68aea4635935e0eabbe9dc1d671416945f1867782900da53451369ccbd548c8f756e7221ee7e1ff28dba099b8f28d1f3aad2ef8bd816a53dfa9bc88e4e3983b0de955e647caf71a607ffea2", "0a9677e687cdda29219c7daa839276de3fe436b96b2c68db64c170ab9e300ced00e72a9c0fdc321a517aa113cdec8e2713f8b54ee2d78820f6f86b2f6e6222493d15cbe8ee9815ef2e7ca9a6ceb55955049db35b1af188b99f2c4bce38f130a75780f41b852917\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 8\nmsg = 313233343030\nresult = acceptable\nsig = b3e943f3982a29d0c1e241890ebdd9e734baf85bd32de80c6240e34dd1f7f0ca4f37fff2c373f9718e7e900df224d155c4463c66badc8fc3563f36309568436bcbef1d83c63e393d9e1432d50541d45e54b7af1b18cc819d9eaaa65a4b1e4f37ae16ec75e9f44a07262cf3e2dab85a066d92b750ba1cd2a1d42493868123f18017bd9faf1de1a4f87a3f9cf744da1eafc761b7e24c9929d3dfd15d1b08db1e3fc64932816095cea495e0dbb82842b5f3ca90dc7b78895c1f12ba991f3bef6f16451a84880fa31cdfda6b9624a77a3a0489fcfdf6e07b89c0689b5b7b7052372a2b1e06a3457b027285c3b160c0de1dba4910c0162ae8e737a3d7dd1e05c77ace\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-1]\n\n# tcId = 9\nmsg = 313233343030\nresult = acceptable\nsig = a9b9eef8197c973d6a73bdc165f40f0f53b05848c93957aec2785fa92a9cc6397418a71870f1bbc21a39b244526b4a39a538d149cde62bf8f21f3eabca932751da83120136c48073792c55e2eff4e29e6973cd3f1090c5bf3ced02a1ba4c145addc674d33b0a285d73d14bcd6f374f60c95c4184e2d57388e9c73f697ac0af5116ddbf5081a8f99ace11027835cb3df8ae785491f42850de04b3e01b9317bd04ed488ad72e787c728b4516c7d839d388a2fd7b21994ff3f5b7f264413bedd3d8a5258d2b39e60411de1ee69fe05f4e76b23a9f50b49f7043f9812aeb81cd54cc1dd9ffdc6e73580e2cae821579ba3642ff7793a3995b136e057d2d2ca7aefae4\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-1]\n\n# tcId = 10\nmsg = 313233343030\nresult = acceptable\nsig = 899a49ab1511bef8727d1ed7093bf7e6a77fa8750d047b203740324d18fc45b587d3392bb7abbe7e6bed7bf2be2fa5e355f8ac5452e675027dbec1835555d059a4ec44120f499e4951cc3fab33d3e8154a4340d29c69fb50728c60eaa58d61b75cfe7efadbff55fc0edffb4af9719cd1a3b2a240936eb6c2ad70b10b72aab7e64d9fb17ba8fadb6f4f0036bc22d5779705b02d261b8c9be700b65c066c27be02db353f4ebcab1ccb41c4bbcfef39abfa8999196951209558463aab1c6d4917ae97006199daaf963666d85c133817035f36ea321714a6b20dadb355a226257fc0abff10c9afac551bb7c3ba9e44737f45ad4f9b7f2db002afb7ad61cda0d96538\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afa", @@ -8515,9 +8825,9 @@ static const char *kData306[] = { "b0976593ab6c6635d8258a7dae326dbe65d203951209f8ece46a4132efcb640bcbd7990a6f0c138b456688d268150396eed52b5553f091f4888642b18580977d80680bb9c1194968bed4b0198cf72d1ed4631a6c16f6ea562c6cf344b3f8d1c2fddbcede647c91d01312b3609345d3e32df899fb981f070ed1c0740d79eb19f6d54725c006c0cfd961a2943391baa2a32e4da6dff7ed0a2a61fded39a85ee642c1e219d9ccf93faf80e2c2135b0de494f8cbcec5bb77f75148e83ba408\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-512]\n\n# tcId = 145\nmsg = 313233343030\nresult = valid\nsig = a289625f9fe684d186604fa08140f7d522dbec8ae6266ce83fba2b6bc6305e2e27bbfb346165b4e110e1b3e9445ffa8933e5417dbd87e3084835b8677ae439609616f7b755bbbad33ed0257a170a3964b85b3cdfbce43ea3c550354a92ec8e75642b039e2b4d9bc77b84c6bc7f2f2a43a0a403a1992e008786b5e9e43fbe71bee787ecd99501f1204921f61ec0ca83f1a8fb7862efe69b104d822ff5170802d510fd55cba7dcc2b695db905bce4c07a702cdecf24381f49a9b95d4805f1eb51704ea198653f43c3f124a4347ea1becd138cc3fd43e813ed823c373a35eb9060bcbb8fefb1c453c72f1f6198747577aef14ad3fe144b7d8de1bd6a123bd9f3f96\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-512]\n\n# tcId = 146\nmsg = 313233343030\nresult = valid\nsig = 740cc94a43653655eabe5a2c9f883a3784cbc5b13161e05ac0849cee39b2e8a42a0f53d14b47ff61d143584797ad0889b26de17b0c27c79a69a356e2e3eaee2b8675b0aaf68dfe682df23463b9b780f5b4d6681c00b27277e4e7839a333b022a16e7b75418fae9d5f5b3b996427d518eb1a696ac83ce6c5107efae577859b814100f19c52708481ed03d038a4cf6039f91bf72f4788dba51179e3c95c750a9432af1044f7cc758572ff11c537add14a6618d0fc1064f762485a0ffebfb0cfaceff4602367a231cee6ea2c8407bcc88267f42189c02e3438e62e3825d8667d1ae221494d4e29626caea3a7f5d2284f18862512cdd4cd9cfe1d8d57cedc9960299\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-512]\n\n# tcId = 147\nmsg = 313233343030\nresult = valid\nsig = 9a8092d3e759eac9374356b3bda80d87c6cd1f1188dc894f48bfcc2d15e99c65ffb6353510998a360f28bd636c61edda93ebb903029feae9b2c3935b2870f9a3f29e044f3ccba9a08357226d48f760158cbe5bfc0d7c0a2eaca0b1b167745bf26ea1e008e7377a085f4bd685fd5ada6602758e27541e6f270adf6d5b1a2b6c65a3757c5b3c4c29284e7cadbd39f4cfcb4253e959945651c60eab57ac0170da7ccb0c8d72e760e603c755a1b1e1356e968989cec1b9e1273ec2c572ed7dd0d0d29c0ad1e77692b0d79ec60657fc21b746168dcdf0d05a3ef1f37a4ebfb199cc167d94cc2c9b75dddf113048326797a6cfd6c9a764a6c71131e5f5654a93fc83a7\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba78", "65dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-512]\n\n# tcId = 148\nmsg = 313233343030\nresult = valid\nsig = 3522943f158039aa68354e3c51eb6d9a496f5c7e7c33bfe9a20cf98caa710b88b18ecb6d73177787479d5064ce3deddc13f98998a7207118de77029e8fd5f012a9e056b972a974cb5b087b6564821af89ce3b64348095accdea8ad7d05cf3d21d6208365a1d2fcce7cd964295c963e5fd495448c0926de0950d12c42e056595295c4376484fd7d0dc6feef3dcb41ec5a0dd21eef375e65523bcf5af70a92331beb0c6b5ac445d6a06cbebeed0083b746b3d667aa366c647313389a2d9b61d41eaed8cf2db8b4938115700967432dcc4f383278b4a397afac04bdb7c2f5f6051854174d85fb96525c2ab7bb58c0ffb481efc29d08e4ad1a86ccfcbdcd98974862\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-512]\n\n# tcId = 149\nmsg = 313233343030\nresult = valid\nsig = 45d8ed4982ba484e0bcfca14537d607fb6c3f8f444425bca05cf29bd5f92945f0ac211ccbc78d934f6fd24131ae88483547aef01b4e70acd6f84eef74d4a2de40b4d15d38a0807087a54ece36f268a60b70c500b72fe0ff49920c63c0cbde6e0d9100f4e50ea3b5e11a595f3755878bb1e03c295d3e73f1ec32d24d629f2fb469cea48346c057abd64f6bae4cbd0fb89076a1e42bd5260cc5691fee46762136f936aed35cdb6e1579d586fc4e166fe252778a379c134562175e17eecf758c11eca66ad259aa9e51e504d0d317b1715bd224706d65418a4601612e482bf95c1e9e9278e5401bdf1ed24118b908a8e42c562a76896563fe4c04d62b8abdb61e4cb\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-512]\n\n# tcId = 150\nmsg = 313233343030\nresult = valid\nsig = 63942e89a56b634787dbf074e75b0525e8bd3b7b8172f2c27499272b939a812ce2f501eb95a64603f9bc7c2120ef2f7133c3b2a4bf6445e2257b59e57022c879f8d60667ab8e28dc972846670858fc0d5bdbfa71dff870aac96492214533383d8740d84ddf61d46f852c6bf0bfb2d10c2e4d41ce7eeaee028333dfe77650b53e66cd2c2991b80c32faa33aae27b1c30c0ae2abd759c59eb22e0d0597b6dd63491e0c95048c074b1d64d8f356e637669d90974f4eb29ca184468bc1e2d24cfcd36e395c41cf3703cdb1a5c206fbdd4763154e5569d04d75998e6f425bd42f80e0dcd8deeebc3322aa6f50aa873345d7c9a0522154b6de2387664ae33764ffb2a9\n\n", }; -static const size_t kLen307 = 236014; +static const size_t kLen312 = 236014; -static const char *kData307[] = { +static const char *kData312[] = { "# Imported from Wycheproof's rsa_sig_gen_misc_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[d = 5ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801]\n[e = 010001]\n[keyAsn = 30818902818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d90203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d90203010001]\n[keysize = 1024]\n[n = 00d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d9]\n[privateKeyPkcs8 = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d902030100010281805ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801024100e882d12d5f0be26a80359f13c08210bdcbf759dfee695313efa8886919659b064e3c656a267af6275ed1af89a5dfe9e25b31a02bafbd59445b7507a22989a681024100e5a65cfa668bd857d59135a78c18c8adb7c222368e9d74abad8e83299f7ac3c2ad7aa44ddb05deea6d9b20dbaf09a8615284a17c72d3723240334685ea7e2559024100a327c8e8f19d4150428f5e055a3ceaca846a19e30d45534ad60d894b56caf9b1bf0c9a8d965b0a882dfd2e1485154ee5cbe052e8d4f525c2d5fa9554b1992a0102410091f17ceb411a247e056287f79787f498b9cc2d1400e43dce10b91dcfe8e30adf80820d42d12b54f4247dce8eee193421cd602e843930f944c81a0dfa730081d9024075915a454770b49082423761244ccec65a6e48ae9966344b675610facad9162fa5bd1cc5108c322c2fb3c144f807773a2c7d097f63e5c8d3bd8ce8efac2ade04]\n[sha = SHA-1]\n\n# tcId = 1\nmsg = \nresult = acceptable\nsig = 03e64d148e05201b021fb5d3d72ab6abd4294be6c1673277ba5822ad2fe7ce4bb29ac547b2fdf09c2894ea0e31e76f1b3e1937db91c389467e9a8ac7be0a4f674456f01c5b4fa4277a26028b49b16e25689827d0a4b9f1c25a63350dc15131da908a05c7cfa8c08a67ac9efe3b0cd04aba7db12064cbc36729eaaec540c4bc12\nflags = SmallModulus,WeakHash\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 1d19763e80121e228ac4dbb3be8448560aac613ec74b168efe1d8a8335b77e6d8c3cc0f641de8c8e26a2aff9d32a4ab77340912fec0e60e89257b5b6b19c8deb866c2d2349fe63a06ac6b72397b478cdd4198ead64f8d36b9df29651e95ac7b886978cffbb5f7498f136b1ded7580cbcbb31620415eb71cdb5bd615b47eff813\nflags = SmallModulus,WeakHash\n\n# tcId = 3\nmsg = 54657374\nresult = acceptable\nsig = 0891ef2061c4d3377744cd7243ccc444619df533f4eadee216f7ffb9244e86d3e0162fc82c0b9502dc7aeebaf7884067e5f18f21b395c43bbfce5559ae84157ffde2aa457b7f44675e706af443acd9e38070428dfc6471a24cdc0d44f9283ac158704ad114375f10c24e3adbd12c55dabb78b8c41d3938124acc74126c82bb0b\nflags = SmallModulus,WeakHash\n\n# tcId = 4\nmsg = 313233343030\nresult = acceptable\nsig = 8277e8984d536f81667feeee7e24068ca5bb8b815210b3e9fa82294e11cae92c45164c9dd5683be4650e4b7709eb8879f793ae804620750b26032894e53333158f6afa6b52318e6c730a4a55d5a0fca6d029744f2ecaa2e00d3d6dffa0716acefd5c91afeda74b7f1a1bd7e635283bfa2142ace513da24eb8f25f3578a401ba7\nflags = SmallModulus,WeakHash\n\n# tcId = 5\nmsg = 4d657373616765\nresult = acceptable\nsig = b41191a7a1d11e973600e9a28c8d6e6d1513f7d970cb05ad50c686bd6fc42b7848559b2b3073a8cc9839f464d82f8a7d864cbc9698cc1a4b5b8c8103d07e9d79e5d24e1b3ab69053461bd76ac3b62935c31ef9f0c44120bf5c0a012eeedbd2a39d347cf6676ee8c81a88eb87eef2708edd793ebb79d6fced626e6475681fe73d\nflags = SmallModulus,WeakHash\n\n# tcId = 6\nmsg = 61\nresult = acceptable\nsig = 29f69d320ea3221cd0704300f456295becf54e877c2b9b2704dc47ef992588c7dcc1648d17172d8c76362c488aadb3437be488fe667a192c5db1440f70d102361d7e85ffab370c7bdaceba0d15b1f32ba0801ccddc9fbaed1323834a60d19ff13ecd46a27f06e79cb0d3aefdefc0c69d8e85fbe8761d83f35e362355ba675933\nflags = SmallModulus,WeakHash\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 9aa3040e7df724bf506881f6a92a133ff76f6a168f0f3ced70b3363835ed6b655fae6f39416555af4071c16262da7556412d9905279d666f9e15fb8a813b313d00007cef3ed2be306b9e29e6b69c2c5bebe36aa057feba44ccb6c8619076a5b23f39729ef78bd6478249f34ee99f3abeef37c504410910d1ad3f1a712c8d697e\nflags = SmallModulus,WeakHash\n\n# tcId = 8\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = acceptable\nsig = 1fd0610221104c3f1e7f49d4c77c48bc169e630d5471e41100ba58dbf0ee0d4731a3d5b3c8cf9b07ad116e6cf65787650fb90bc85a9c4fe9940f4754316772c4946022178a3becbaa3d9b6252ed1353f7de834e0ac6d95d5a1f81453e89650f5690dc078df80dfe8ab614ca4881e7b001f9a11a4464b1004bb537f2b99624deb\nflags = SmallModulus,WeakHash\n\n[d = 50f854da7dec301ab50d81761a575b0436ee7a6445ef359b7bf3ef374ab323883dfcd6e6c2c43fcc1d71d0d6408faf1f5992c69846911fd2a438068fba46fea5c108f95e307fdf3904c1cba6f014c6555a79679b843e5397e2dffc5e349d7b8666bc3c5e411f39f0f2585bc7bda70b84b8f5b08c9260b39d3e8603c88d128fc1]\n[e = 010001]\n[keyAsn = 30818902818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b0203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b0203010001]\n[keysize = 1024]\n[n = 00dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b]\n[privateKeyPkcs8 = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b020301000102818050f854da7dec301ab50d81761a575b0436ee7a6445ef359b7bf3ef374ab323883dfcd6e6c2c43fcc1d71d0d6408faf1f5992c69846911fd2a438068fba46fea5c108f95e307fdf3904c1cba6f014c6555a79679b843e5397e2dffc5e349d7b8666bc3c5e411f39f0f2585bc7bda70b84b8f5b08c9260b39d3e8603c88d128fc1024100f002a2625626ade6f48c6f981017968124de0e2a8fa38d6bc4853e1bd0b48ac327610f5e566f017bd74bd5134cc9fedc2625f0f7370f42249663e31dd58c4ce1024100eea660e905c086faf3d3ea3a94f2f9716a0fa760c170edc81b64a05cd5289ba8def634500068682dde0600531b41cc3565e9d6ec3b4ca3f3385e85a843e936eb0240667ac979318ddc6d23f81ee20fe4f2777c1570790dd1e8dd9e10c27f3ff306d8e324975a518f", "9e53918f2890d015e3c37e6a6ee42fd74d07b04b403b89e619210240609d72f663a1c203aedac824d75056b417a026bf01115af27c448cb788845c204dc397021c68286509519ca8088ce6c36772f7d3c35e0fb1d3cc5088029653e9024100b1bde8f7c203566e12f11e23319aaf9cd671e25579a22d6d153eeec123b5ffbe7fd6ae6a0630ef956640805b9231d9b5da97a0d1d83b55374c22885ebff7229f]\n[sha = SHA-224]\n\n# tcId = 9\nmsg = \nresult = acceptable\nsig = 507e6233a3c80971daa07c13f34a532d53441e196d642fd6564b347fdceb865c55dd47330587622a30f8d4ee66bf8f163c626f8dd26b313bb4095ea1ae9d6a96a24365f4c20056998eb9d1e3f2e1c78257361e5c21e5ba76320997e8cb30021e8f11a580000891bca3537d7a2c0972e06844f1a01a1dbc9a3f8b8a2955f7005f\nflags = SmallModulus\n\n# tcId = 10\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 414de39059daab523a725efe437d688824a43689766b33136aa3e6da0a2fcf1c2aeff952605c2f1a12a29e36f282e59631f442af96c7659e0717bb24807835aa06f034906670b042f8db1cdcbf3c54e25472383b6b9097a09bfbd73b2e7c10e18731c6bad47af591bdb2d376680f6cb62048a97c19f23a70e98ddedf02786efc\nflags = SmallModulus\n\n# tcId = 11\nmsg = 54657374\nresult = acceptable\nsig = aa5d174e95f9a1ff88c1ce60b3aed1d39e256e28b0512cc4b52be1d41b8ccfa2a739945aefb5b697886f4f08cef365d18bdd8151acc588fd4ebf2aede9bdd904aa3481822206f3fedc5889c9f9889a8dd4d160d65e587ee228f9ef155108cb283c4e2a697a1e739827cb4a9790f96023e6ad24cabe51741a7c7cea8c52f08cdc\nflags = SmallModulus\n\n# tcId = 12\nmsg = 313233343030\nresult = acceptable\nsig = 54a81c62bed2f716feb2939f504db144c1c3b70485a1f35b2871ede567ffcdeb8d2ed0c57c56f21b70388d631be05b4c738e67f160f34ec42f236cef92b03d3dc8e50145b33e634a6fad8e87f84624e96feefeeaa91ddbb003c3969017dd2d102da2e7d5de8ed298139d5e503e0aaab136fb583b99ece2e6b1681699a04b977e\nflags = SmallModulus\n\n# tcId = 13\nmsg = 4d657373616765\nresult = acceptable\nsig = 11890613a8ae298c21bda95fbe4059c37426f41ceccb7bd79598c72ab4662e012f08b7009c15155b5ae9d132b4ede565963e6014241305279d60662f57df7119e5d4088d32bfc7e0847036f41ca71f9a92660f90ec13ee9e19717d0b567ec5a6b5978a11337d5ee4e9147352fb954817be04fb767ef35c07babb03fd04a31338\nflags = SmallModulus\n\n# tcId = 14\nmsg = 61\nresult = acceptable\nsig = 0fd461012145fe0ae9362eef22ee35dac0d4751a037ce4cf0792012bb179d101f9a9752e5ebc5454b18684fa1b557f3136ae68edc087dbfa4bbfaa59be42d0daa84b574a9f23238d4d538ae3e6c32f8dbd98b1138b545badcc10b184428fe2707aec73206367f147196f7b83f358377562e8c7d9f1d396a1cd9aa74f8a78cb1d\nflags = SmallModulus\n\n# tcId = 15\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 307e421e06bdec1fc1750d53529f5f007eddcc991af8351477e1d67169409e3acc93367fadc412a4554854004c4a29c8af4af09793e55967ed439645034cc9e9ae565edfc861e04c763d058ff3aa29bef3942277b4c971d830be1259aa30c125a6ede65971b0120758c2a6eb21f238ff18228f344155ff9109a0f9656cae2351\nflags = SmallModulus\n\n# tcId = 16\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = acceptable\nsig = 019682b9c934a37ec166efae16b5ec75671fbc6322cdc91bf56a6f557001b8914050852ed7f13e96cb47fc5932a311ee677ffc05c1cf6589201b1a806f2ead9ff3c7cf327c391044fee073527a791a451a0571e50bb1e4b4f7e40847dba751f2d73f2ab2f5ab11724be81c9fcfded5a2535b593287e120870138e5534292104a\nflags = SmallModulus\n\n[d = 008505d47c271560aaf6cf65da6d5594a69c86f01622ea194071606fde369b65f5a751bce06052409c3a04c6a8b2be935bc0d084829dea8ea0998398fd2a0b0719ac1a1ae2d133fcc72d9df27b377b9a0109ef1a564e92b66963356b8da48f88fcdbc20658f74b542582925ec5cd03fb5e9a527c670465f792a69c1f6c7c5e1841]\n[e = 010001]\n[keyAsn = 30818902818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001]\n[keysize = 1024]\n[n = 00ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf]\n[privateKeyPkcs8 = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001028181008505d47c271560aaf6cf65da6d5594a69c86f01622ea194071606fde369b65f5a751bce06052409c3a04c6a8b2be935bc0d084829dea8ea0998398fd2a0b0719ac1a1ae2d133fcc72d9df27b377b9a0109ef1a564e92b66963356b8da48f88fcdbc20658f74b542582925ec5cd03fb5e9a527c670465f792a69c1f6c7c5e1841024100d397dcfab4919db23bb6b88c4511516f6135e1118277e496130f0cab3a75661010cc98ec8f40cdb0c1ab612c03bbe3b023d891f46185788fb114437c8a9ae71d024100d0c7805159509ddad70f35b9a76c7c2bd95a844d36b76d96138cfc7a2a55f88072e8b10ac37463caf9bf8d1014c93a001214d7ce230c8332fb58dadb05d52f8b0240762d3c4b7dac5292284dbe3701a051864e99e4117e77ede06fd698f1cd5da25a58b79cb58ab0dbf0dbca17249915486ea9269d260b8d9b2f4dec8e60b19d2075024062a4f06eff4944dc6262905ae0cd343a2f9f42058d85cb646e665de086e249e0beea4cc42e276f03374f9721f30044c445c6cd545b610d186883ca1c543c2f1302403cfcf044035c1854475e1dba480ac50d2a059f32d18e819c96a3199b1e3855a653ec0e5577e4d7677d6e0b7a55fc418b13202ee19430228c4bf9d28af8851c9b]\n[sha = SHA-256]\n\n# tcId = 17\nmsg = \nresult = acceptable\nsig = a0abd165a5ef8733ba111fa0fa092630222d809d8ae811f24f8bead4968b7533af31019663713ba134e7dd345c38e7166a037025eb34adcd6891c9ec941d2e3eb1e4bded1d269272b602cb9b53568b992ddb5103914e6424c75505701a37996c8318b0b6f8640cb6b6e770ac44314b866a7c683a6903f7bba07b6f197ec554fc\nflags = SmallModulus\n\n# tcId = 18\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 41339884a9b3940e8488d666bb158063c6a2a2717cae7f564834a876fcbf7098ecf3acbfabf37d38a8e6127b1e313744f1f896e165efdaea0b2e7673867842b9e94db0868ed9a92bcdcb370a4e20ff275c82595e4400a8b9e9f12482f014846b48216f321266ae6ae6338dbcdc41b711e483e6e3e728772e7f9f5ef95c30196b\nflags = SmallModulus\n\n# tcId = 19\nmsg = 54657374\nresult = acceptable\nsig = 8883676becdc27878ccdff53dda011e5e2f886e31e1e88d520bb161cd63aa001fded9f0656109c1507bd1ba5d3bb3e725029a236b4c3c0420a1fcfffe348c5277d6aa51bf75d9af26fdc15fc49d637b078a8b0478b5b0a9c428756d260068e5e622f193b9f9a2c1d979e3322d7f3edc32053541c6efa2485e42e99a804f94388\nflags = SmallModulus\n\n# tcId = 20\nmsg = 313233343030\nresult = acceptable\nsig = 9f2e01b92bc9dd32dcf24aee91467797396649a3255bac943dd0e03c9ef416f349c0cbb728704730f3c7a7c244066a94b229a6e86bde7753c8940129626307b542cc7f596583932b4fe6ea9384d5353e08654e966a64b63bd6745503f7e4383dcef74ad4516ac25c8790db6702ac5b8b057a8fae75669b6a9e689e9211a337b9\nflags = SmallModulus\n\n# tcId = 21\nmsg = 4d657373616765\nresult = acceptable\nsig = 3cb9557d9fe49b889319e0d41efc00cba34277caeed2b2c54fc89772c669200dd63f02f340cb6ed579a379a3fd6a568ca9d4bce206655ae4586850638ee6bffaae2bed7c7afe7353d22418d7e4f6b15e198c85b649d3e5a67f00702dd9fefed7dc72136bb4440fac58e64453e4ee63a81de4270446571b192f414116e165efc0\nflags = SmallModulus\n\n# tcId = 22\nmsg = 61\nresult = acceptable\nsig = 06e6fb568e366fa20d48704be40e991a291d47a464296a49c37718c1153b0fea17ac18a01ff97b32a92d07635dfb9143d011d003c9153020f5ef7fd3ef258cfe92a7a2120718fcc85c73acd34cbd50670c2e044dc3b82fca29b1017912b65d8a844515655308367d8797ae5b7fb91042df573f32de69c1842a128ac88937c0e9\nflags = SmallModulus\n\n# tcId = 23\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0", "f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 327238fd701dc4a829827550aad98f9bcd75e9f3831c3679998c869c1dd8381bc6b74b721e9d3377034e059d6637690ba3a184ffd98af951d43a22105a51838f72cf592d658af01adeedf721cf2eb2bb2c90c68311cb267f0cfacca903c1a2a73f7228badb5d86976f5d3371fe9b00cca048a7a0b0fc4b03da11c5a098045e07\nflags = SmallModulus\n\n# tcId = 24\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = acceptable\nsig = 65fd6547b4c27c06da21cfd067accbdede11ab8ddf16899d3acfd61134bbc4ed3269198733093062476906f36598a565ab32cb4b4f90e8c2acdab870bfd7f97726771050c4c67768d98514e51c28739067ca1a7890a846f6fb142d720df3c98ceb833a8cd8cc6129d22d0c5de9120c127e69e8d7b1548a474acf505897fd9f8d\nflags = SmallModulus\n\n[d = 5683206e498cd4867f94b062adaf2d3d7498150709d45ae03790731a58303b74a30d9b37b728f1c56fc34c2abf9c21e18adcf3952416d539934809cb1b516a62d80e1082b3e4d2ce749f58c7a1c0e5907fb7c6b9c9f971c80b890bfe101c5e8a83156bd4a55283a72d0634550a9bd674b771b9e1e00619eb43d6e35112e15031]\n[e = 010001]\n[keyAsn = 30818902818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed010203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed010203010001]\n[keysize = 1024]\n[n = 00a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed01]\n[privateKeyPkcs8 = 30820275020100300d06092a864886f70d01010105000482025f3082025b02010002818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed0102030100010281805683206e498cd4867f94b062adaf2d3d7498150709d45ae03790731a58303b74a30d9b37b728f1c56fc34c2abf9c21e18adcf3952416d539934809cb1b516a62d80e1082b3e4d2ce749f58c7a1c0e5907fb7c6b9c9f971c80b890bfe101c5e8a83156bd4a55283a72d0634550a9bd674b771b9e1e00619eb43d6e35112e15031024100d55f5ac3627e7d4bb07c530cb26b3e0ec6cfc7753986e009c9f53d84b6940923d293f8c55b5e9820b56dc6eb008ee779a156a7c8a0b4fa5b6117a4f64233a38b024100c227f5cd75d8865f75ab467ef5f8d43ee0707250450d523230fa3786a6632dbb893ec9cf1039058521b4280529644315f9d37409915f6f5e86365ab82827d323024028403bb3fe01948b51b8b24603e65d2796739dd1cc4f5836208605dbe2415cd4082667d87b1b0621ad780efd47f6ad4df194924433a4d051aaa836334a5bc96f02402fec0d0f9976c833e7a74ecf2787335c11a9af8d807db93c0a3ab859d3d7c701f2ee3c818f4f83bd48845f1c670b0843f455ecde2fb38e999626f45d600bf46102402efab8b9b528803fe02e6dbad575d57824b794dbd9ae0b4d6b43acc1b22a42ce2ffc12ff9339af3da08387cbe73e1bd326725487eb97c71ba6f960e5dddf4207]\n[sha = SHA-384]\n\n# tcId = 25\nmsg = \nresult = acceptable\nsig = 8bda47e85848bb1d98eab90bd5f1880540204c8753a17b2552ee4778405e4c42cc3d25a4d869eb38f1e6fd122a2f52fa8685c3ef40400ade2017555ae88fa892a1ad2793f7c23762f0e54db0852cfdb2e52ebd02c8acf81b9a1e78accb5fbb57a29391cf4fa9aa298111c7b94fe240f0f576b1b52853853fce13da155f16e81d\nflags = SmallModulus\n\n# tcId = 26\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 74b9a7b9548a281c5a258520c879e0e64d8a28812a7b6461c6e418e0502b61008a8e535a5b55fb64529a6a6df2f60ef33c1844b27f81532be2bc2992d0eb5e524112da90bf40adefcf206469639ff3895a9826674ee1acbdd623842ab0a9a36d48da13ba17c4ee069254da2ea418d5a8f135e2a414c0654a266d538621917545\nflags = SmallModulus\n\n# tcId = 27\nmsg = 54657374\nresult = acceptable\nsig = 10d9c8b0bf55586e985799be60a17979eb0461daca00ea6defcc62fe720ea502e7e486c02a48f5ca41ecd96c67b5c762a067c465c35a8e416748897ede3ee2cd3c3e1b1199da5c7f0dd0f036774a1730e63ba781d6ee43d78b067608e831a16dbec6075c8ec90e81a4d8e2ac2587b0ae43f7445478b03ab7eba2e63d4043c2e1\nflags = SmallModulus\n\n# tcId = 28\nmsg = 313233343030\nresult = acceptable\nsig = 2cb15eb09030fade89eabc41794d288275c456f12cb0d414311e5edb551a51c3e1354f134b27aecae50536379a871a4ce6ab2e1b999c0308f5fed2ec48d97d68885b37a1e3e26b841db103b64f720f9aef265632f4f4a207ddffe19092e8b16144b0a3443d779c0b648077d3b04b72dd4f4051ac232261ac9df65974764b97a9\nflags = SmallModulus\n\n# tcId = 29\nmsg = 4d657373616765\nresult = acceptable\nsig = 9c80154e3087b443fe6d9bc24faa7ea009330a210f2f1063ea1b61261507a5e3853079a0287d5b27983bd751ac782b1a5c31130978d3f2a8a95101c4ed87eacee964953ad32cd2cd4caeb7c37330d1650d7ca19dfa6e8f1c184d3dd9a3a759d6badc700b7063d2c579b336c5e141c200614ba613d9bb6493e87d26978b438573\nflags = SmallModulus\n\n# tcId = 30\nmsg = 61\nresult = acceptable\nsig = 99fc12c90f67dff9600c30c9f81bbf335492151345c809c05771d59ef73d438f88c5c43ba507a3cad6633641d70ec3f3c38f67cf7f2566489f59422a2dad1f647e790bbd28acc290ab392d48ce7a140184bb71023f8c9c5dcd9469ebe848063d96bad26fbd390974b38459d51727eb8c0a5b8a8ef1d3394b6f852dd2b22cd22c\nflags = SmallModulus\n\n# tcId = 31\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 869b42bb93624a139bb98c043cba8fe12d612aef040e3085994824a480274c0cca24d08d178321acb048055b777d897e267cd50809bc7e9f86c276beeb8a8d59d82aa2091c66c71e41ca59738b0e18f055f9c75a01e87aaad446e64ac0183c002ea2080415ebb4f85a590622bfa4e701a6e37d0b33bd78d5ff874d8d28fda263\nflags = SmallModulus\n\n# tcId = 32\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = acceptable\nsig = 1d1d3424bfc646c0e3668ab4e9eddbf993c5efe63ee6ccc966dd467c466225bf587b9d7508a7dab8079c50cb3086b9f0fa3c6e77236744618fd651d39bed94bdf47a2a77897341f16da3db9557b2377f151375a74d9af8204e155abbb62dc7e2f6effee3ffe936b360e45ab750ce69e29f29e915baf8578017f66d85192ded04\nflags = SmallModulus\n\n[d = 00ad5144c6c266314d11dca0af34b8684a77cab12be2ffc8fd213e9289ff83eeadb70e4b6af5bdc7dd72659753ef1f84c2f8039fb13ced41f12af77bcb1cbb0333e26dcf0b27187216910d3de289487ddc843c8b66f1f662037e181dae36d6aaa3b509dd33892ed4851ddcaa4d02ec210262947517a38da2e9ed35e5801901bb6e82043bae88aa951f4a56cf454b4dcf2a9dc425525ee4b6e199320d1b080625fdc8af4e44592e87cab8753316fe933ccf044380880b1984f662c638ed8c3158f1]\n[e = 010001]\n[keyAsn = 3081c90281c100b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e6110203010001]\n[keyDer = 3081df300d06092a864886f70d01010105000381cd003081c90281c100b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7", @@ -8548,9 +8858,9 @@ static const char *kData307[] = { "f875bf217a98fd573918edb2f8a19ba14637931e2041336f1221beb354d3032e5076d52037d18c03592ec334665a34152dab9f97836f72b808b444ca2fe5402a085782a1344ba6c96f1472896418e3383754ddedbf58d0308dd28dc18242c1cf34980107028201002cfe71b7d15c072e0ac71c7aef80e8e40823a92ffdcdba8977450a5e58b154b019c9d9e7a602015c41b7909389afe686a101e223da9e752638c244b31e298aa451e24857c97fc984998f276b6f4c69575f306376cd2870124488f518ede6ab3f43f0c68b133c5c278028d3d824163e22cc5a7f3fff478d502af055ecb5ab5039a94c9eea95db34ad163f1b0c4e5b66aa4fe75a4503df915c1431d6965e70c931fcd6e768b06e57653e7261f4b95ebe428ffd2bcf904f91fabe16c974b4f5ab10ebb66ee3e2a95b369946b2dc0a30f0e9653eaeb681fea81bc47adbe1f50d1e30c0bd85fd0a98fc4869dbd00f2d61571203411fa7f008c0e43cef14f6ed1ecc70]\n[sha = SHA-256]\n\n# tcId = 156\n# short signature\nmsg = 34333630\nresult = acceptable\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011a21abeac8409398319e65c8656f8f72e179dd1e99358c7531fddc037e47c1e688cd70eafd6eea01c823516bc79f89d7e52ee1eb4ffdeaad1d550dc0a47185bc9c42e47fce5503c3370a60510f834b4691152ef668deca633cf3873ce6613951784aa7dafde118f37f1cdf1a687ac236d5c956bced564b73cf202e3bace59667\nflags = SmallPublicKey\n\n[d = 5a227bd7284e2c0f51db10b911d24bd931add424b8cf6aad5f77f70bf94faebd2b6c8753ecb0bce16128569ead41ab428481b5748311fd02cc821a2379f3def60eadae0d46777eca8a98f50e653012867f0116768d9f04286b6921d77c812947fa838c22159a9743b030fefe695a25dc6e51a293700e545b52c01ccbd297d110a03719ee437ac4b220d7dbb058adef86b949ca4de07276101deb7b61b2e5e8fad8bc6bf2dacf8f90060aabf2696c7f1cafa101ec562ae5572fd592dd7cb1f5fec11473dd398f7effc7981ff96fea4269561f21fa87bb5c2ebbecb441a13098b6ff7b8aec3fb7f483f48f80bd8b531f4a99bb27cbdec584cd7c0114ec972380f333f1fe4849ba118e5c3895f9865b806733cb764b66e99703e35dd49bdc4372d8520f069237dfa06c72fe78ee267184cb3b14fbdeb1ebdadf31ba6bb57b469e6242bc0d1fa391e0e8edc94d01b5fdbb2010f7d8e4c5cdeab865b1a2f08643dd0ac0f7bc151b6ccb0c835202f07a9ee5b73db9c4ece4fe4cc2069379414ed6552b]\n[e = 03]\n[keyAsn = 3082018802820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103]\n[keyDer = 308201a0300d06092a864886f70d01010105000382018d003082018802820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103]\n[keysize = 3072]\n[n = 008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01]\n[privateKeyPkcs8 = 3082073d020100300d06092a864886f70d0101010500048207273082072302010002820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103028201805a227bd7284e2c0f51db10b911d24bd931add424b8cf6aad5f77f70bf94faebd2b6c8753ecb0bce16128569ead41ab428481b5748311fd02cc821a2379f3def60eadae0d46777eca8a98f50e653012867f0116768d9f04286b6921d77c812947fa838c22159a9743b030fefe695a25dc6e51a293700e545b52c01ccbd297d110a03719ee437ac4b220d7dbb058adef86b949ca4de07276101deb7b61b2e5e8fad8bc6bf2dacf8f90060aabf2696c7f1cafa101ec562ae5572fd592dd7cb1f5fec11473dd398f7effc7981ff96fea4269561f21fa87bb5c2ebbecb441a13098b6ff7b8aec3fb7f483f48f80bd8b531f4a99bb27cbdec584cd7c0114ec972380f333f1fe4849ba118e5c3895f9865b806733cb764b66e99703e35dd49bdc4372d8520f069237dfa06c72fe78ee267184cb3b14fbdeb1ebdadf31ba6bb57b469e6242bc0d1fa391e0e8edc94d01b5fdbb2010f7d8e4c5cdeab865b1a2f08643dd0ac0f7bc151b6ccb0c835202f07a9ee5b73db9c4ece4fe4cc2069379414ed6552b0282010044f592b4a5d5d2abfcbb235ed9c890ed4c393a58511d213477c92be7c44cc170a2476f6c9f836aea06b0d584c6b0d6eff344e20a58cd94b601b98ef3ec8ac8a7415430653450bde8b8e26ad2608814ee56bfe3ff1099d195c9c76edd82b1ffa50ed7b67f5cec464534ac99c8f043f57078a8752617abb04d4861031993efdcdda9df505b500c9dfda99f422ca3be309985b4a3ebe48cc37227e802298f9dfc937f3c419c156df8492b52cc24a1daeb355829836689fd0dd8c3057fc1d473942de38480e8ab6f16268cde71af49badce2cfd07524e8f90c301a6152129ad4d578f4cff93a042db9ffae0be5136c1ae5d8e49813d9dfc1703d14fc507846a8b45902818101f5ea5d7dd210be18585cc8f9118dcdd91e0587209ede4b419552064988741c3c76ff276ff952d104db1f6c0fec6c4a745e7340c2d000dde533258c29e5594566e240fe9a7981c5e7f6d6f42202590e759f34146e61de89f7370a15c0403ffd9469ca8e5b527b2d86cb52350e2e79dab865b9cb35fa88487d8190885a567d86e9028201002df90c786e8e8c72a87cc23f3bdb0b48dd7b7c3ae0be1622fa861d452d8880f5c184f4f315024746af208e588475e49ff783415c3b33b879567bb4a29db1db1a2b8d7598cd8b2945d096f1e195b00df439d542aa0b113663dbda49e901cbffc35f3a79aa3df2d98378731130a02d4e4afb1af8c40fc7cade3040acbbb7f53de91bea3592355dbea91bbf817317d42066592317f2985dd7a16ff001710a69530cff7d8112b8f3fadb723732c31691f223901bacef06a8b3e5d758ffd68da262c9425855f0724a0ec45de9a11f867c9341dfe04e189b50b2cabc40e161bc8de3a5f88aa626ad73d1551eb298b79d6743e5edbab7e6952ba028b8a835a58470783b028181014e9c3e53e1607ebae59330a60bb3de90beae5a15bf3edcd6638c043105a2bd7da4aa1a4aa63736033cbf9d5ff2f2dc4d944cd5d73555e943776e5d714390d8ef4180a9bc51012e9aa48f4d6c0190b44e6a22b84996945bfa24b163d5802aa90d9bdc5ee78c521e59dce178b41efbe7259926877951b03053abb5b03c39a9049b028201000a481e3baffb3d30fa9e49395e7fd986d58e804befc9bad0799b2e86389792a2e6e47449b23b9e15c9139dce384aae4f08bcffa353bea9ef2fe2639a35a1bc3f9ac38", "963f1b605d785bda5b7c5b17e66560d336cdec31b70709b43ce064d7e521df466c8015a1593453fb90f3d43713b5d5066f5c7a4abb817b874065a7a117be1df350320a5555fb39d78d178d17e37a288da8761853c40ee99590d87f21c133fe06d09f40f9c1765eddfa7e865b6a4b369470163aa681d85223f37a868e97e264f371dbcbd9cef8a17601f7b29b4e76f2ff77b538722695dd1fbf92e940b6e24c1f33b490b1aada82875596aacf074c36e1e8cac178e8690be9f54956bc1ac]\n[sha = SHA-512]\n\n# tcId = 157\n# short signature\nmsg = 36313237\nresult = acceptable\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001bdd0c9e451b5b3e5513a94492dbee1ada9ea87e65a8cd95cceb4d304294ce34bf09a212f14908f5b865c7a34a72e68e389794a2d1c5767ba17829e2044108ac7842b6bfe0a5663b433d656f4e38522c5a5a23c460b898833828d257350e5814291b54cf13089080f84998edcacf0fe5fca0c1f8b176b172c5f9989491a039bef\nflags = SmallPublicKey\n\n[d = 61d4ba892aa781fc663a897a56f278364b09a89485a37255bdabc5e0f543fede724713cf3613d20c059983e7a38442c776c9accbe8ff714aa45d4d5cc35005adf8b8c76a91bd14fc975341a1689495fd85fae6f45ee5f010764c45a01d7fe521b0463c5838ced4fdf17f2df3056cc3f1d1f76753b563848ad5eac21b40e286e5e847932fdbe9a7a569c0542ca2e072763516ff44f67817739a3ee721dbc88f5d3d4ea704e53798eb8c0e7195070f313b800d65827a4057f62ceff11b160a8419054f99fe6b7cbdfa62a9f07ff7313b8cbc2b338bdf9517b1150de81212f9d6bde36a5b16eb82aabcd0157d2caaea6e0b02c784bbf9a00c7cd12e708723909f93]\n[e = 03]\n[keyAsn = 30820108028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d0030820108028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d020103]\n[keysize = 2048]\n[n = 0092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d]\n[privateKeyPkcs8 = 308204e3020100300d06092a864886f70d0101010500048204cd308204c9020100028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d0201030282010061d4ba892aa781fc663a897a56f278364b09a89485a37255bdabc5e0f543fede724713cf3613d20c059983e7a38442c776c9accbe8ff714aa45d4d5cc35005adf8b8c76a91bd14fc975341a1689495fd85fae6f45ee5f010764c45a01d7fe521b0463c5838ced4fdf17f2df3056cc3f1d1f76753b563848ad5eac21b40e286e5e847932fdbe9a7a569c0542ca2e072763516ff44f67817739a3ee721dbc88f5d3d4ea704e53798eb8c0e7195070f313b800d65827a4057f62ceff11b160a8419054f99fe6b7cbdfa62a9f07ff7313b8cbc2b338bdf9517b1150de81212f9d6bde36a5b16eb82aabcd0157d2caaea6e0b02c784bbf9a00c7cd12e708723909f930281ab0c0f4f3c24bf8d0185bfe3f5be0fd9d94045abc59ed9082ebab4615c4fe5e74a26d2d3824276b90631aedbe4e2795873adaaf909fb454f7cc4eb6403c226a8d4fe96c429018c6500d227af70236f30ac3e299e502b0a9423ddccffb7e2987aa6889611896f3ca767a5d536f9815cd21fefa7f8f177ddb32b9a8c3599c3f37ef910e37e9048e61d0cf79dc14f14c242d0f0e350045ad6b54f278abca959b59c771e68c312aed3e33a71a73302560c2b1123368fcab3690929caa41f19b4e7e973c9696a6e1fd13e66b61ca9bb63cc30cbac1a8735206aa639fc8dbaca40f273e6b6320752fe2f0b4b5089d932ca0422ba3830eb74e462a7dad66f31491c321ad7f861df0281ab080a34d2c32a5e0103d542a3d40a913b802e7283bf3b5ac9d1cd963d8a9944dc19e1e256d6f9d0aecbc9e7edec50e5a273c750b1522e34fdd89ced57d6c4708dff0f2d70abb2ee008c1a74f56cf4cb1d7ec6698ac75c62c293ddffcfec65a719b0640bb0f4d31a451938cf5100e88c154a6ffb4ba53e7772670823bbd7f7a9fb6097a9b585eebe08a513d634b88181e0a0978aad91e478df6fb1d31b9123bda4bef0820c748d4226f66f770256081cb61779b531ccf0b0c6871814bbcdeff0f7db9b9c496a8b7eef24131bd242882087c811af78c047197bfdb3d1dc2b4c4d447976af8ca974b23235b13b7731581726d0209cf89841c53c8ef4cb8612cc11e550413f0281ab094cdf234ade11daf48b0df60628ad6846140b65d68783caf13171f4c2772e7a2f7576fc8ba0d5689074568ebfae719a4f2faee5159f17bbec294029f4b0d7ef85f5e7980a872ee5db8f6a39cf6871373abe90c894fc8cd96399a3a28f643752ea6bff28a919e88d85fe720ca359aa5d4c828f2530665ad9810d7dcecc0888bdce4d71e05c3a8579845fbe985ff6d0608fb2dfa1121c7b7e4ebd7209ce7fe2593ecfa2a061fb4e7b2773cf]\n[sha = SHA-256]\n\n# tcId = 158\n# signature is close to n\nmsg = 32353934\nresult = acceptable\nsig = 92bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240b8bf4bb1a6d0616fd5be2f081dc9ef741a9a4ae7274418b791432de470c4556463108388e8e8ed5dcebf3558e4650c2ac97c86fa682176f09b5dd8cfbf15d19c3fe4f961f4607c12cb3dfad9b6a0e59c92faa1fc8622\nflags = SmallPublicKey\n\n", }; -static const size_t kLen308 = 145457; +static const size_t kLen313 = 145457; -static const char *kData308[] = { +static const char *kData313[] = { "# Imported from Wycheproof's rsa_signature_2048_sha224_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f50203010001]\n[keysize = 2048]\n[n = 00c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5]\n[sha = SHA-224]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 19c576f191c273306ec6ee9e26c673bdcf3f821adaf13a0759df7787511ddb096e964f5dc199ccc5cf131f855065d6ff0a6c720651477d9026bed82d201f6e84a23b37725fd24f5b75aedc2afa24524e7222c0dd7c6d2742430bab3ec46d12204a94a533e2a9147723d087d619e07873a4261c420226ec1869abd70117c787d4b1827fe98779287451086354292bbb90617ceb391122efe70887710c5cb4549d163d37e79b33c1b336826cb53b648689e6da54241d20df822cf7770d7beaef4bb00068252786580a88cd00e93f5ef42b69efa7c364b98749fe734ee7bd13d0aca585d84e4fe4b29478697170280a5921278997ef9856f7372b6995d7eb43ce0c\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = ab2e758c8de97282a7ede3401680ead187cc08658be0041f108851149a9b9d2588d5ca544039533eebd0305c07f394504d91a578f5764267149d4ef70b88a2a3f8cf0b1061d06882af53a88bef195aac87294dc833d80f42d942f3a59bb242b187e23bb89a068bb4c8a215247d04aec57f81f75c14e711b5878b04863e715d0f359ad13f008b79342b7a4ca095fd021f639e8f48860c1eafe6fa19162c2632a2d3a05330d149f3ea6c9aed9f89fa3f7bcb2cf2a3d1af0484178710c21c046a812f3b8d68027173ff5aeb1ad19ea6639e2d886eabf8149a8fb491d2c36ccfc4da2a9785a992046f24a93d2dd7765a171cd8ecb68b94ee70b0e5bf791967267251\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 61c702c72b0177ac857e52707c1a40b84a1859bf1d7d1cdbda643f924e8bab7c3d3eb2065aff837e92f93836fd54ea52e085e19cb0cb59fa58afad48480c2dac579315340883886e78456ce750fc55b6c188b716bda7957ff547222f0cc1462344de4bf078ec19f1ba5901a0e5f40d93dbae4aac407834b272a2be82c8da085a3e1e9e0a57d3f43d26462566f0aeade04ee8981fec8d7e34c916fe78c0c5c43781bab2fecab654fa55ac99182545d0ddf070d41f67efe0737d8ecab3411720c84862606c8e4b53e60faa1c9a98386e92b03d676b53e3fdbca3bdf0187ddc50086cf82ca6052be55fbb7f3bdb6c6c0432defa5634797c23b494c3880846169b67\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 965f82f0649a338ef14387a7f3335b9e2d5d3b4009eecfd26c0110344a30117bde6bad668cf083beb28242460fbb96adf9754b9a4d4505f6412e677bf3349868fd5b5268786308a5293f2cb2f7ffda76104351f10381e504e72d27435d5bea0517d20ebec0afa531e520e5fe484475a330a40ba1109c204fabc44ec099878a5e31342a650047c299a5f2322f057b9586cd9eebeed1f3d2d94aac24f9d7b2f05c6f28bc49cb2b00f5e56870fa099cfb2c3e276381adf5a030ab6ffd9cb96fe309061d44c2ca5ccdd76a69458be561e3f0ef603ebe9ecd533333584236970dc7414124ace98357c496369bf94123bf0d4e57b03aee567c2f83a9e6378e62a42fed\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 105c68d221aa579ab6206d23be01d0c91f98fb67ed8d2044b6278916223758aa346bd6d5c7282d23a2bf702e0facdfb884e0b389202a5073a715fa80158e31d1e3588af30d2fd8b61233499ab7952f0761c84912b700fec807937d00a021eaa84d96f59760cc7733236138cb4ff1fb04c7d4621331b5c729f9694555b6f9c324e74db4a7a8b72f2853dfd0b9fe63759b3468bc66017bd6c1aada2070dc8643b5e581f12cad170d9fe754c65dfd0a5925cfe846a8413d729103e9d7e8825affc20f477d5bd3860947c2665ca4170fc44f2670bc33b51d42e5df78134919bf4660cfbc092c1cdcc09c8fda1ec9383512abe253cd1a470271832e0c7de5a6d9a7c2\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 3662fc9bc91b00d457bce2fbc667dbb31ce7fa451acdbad95b4b418782b8af67d2fbaf1424be2c99e95e2637d8d39e751d757f89711ae165fe5bf142fd88b284df696e948ee714e3f2062c5d01d04bb6c0387aa5ff1511552dd066bda861e1c5cbfe73dd8c6bc3039b729c700c8f297f48ba2a36aecbb626b5c9f9b3c04102f55ee65ef5477d8d1d14d9b7b048cdac54d7239177e702d0629d3617de2a9fa556a6d4ec37fe38a46b768e39f1d8a380484ffe0cef59abb7e20ffdb7c11b14a42ee3cedda99ef9f71eae7cf760fd81172e03a3f2a9f7e42a813db3b089c11528350e93b131641b8d023d47447f58aeb9f3f38760df8a9b1ad4b8d43ba0c9018e02\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 8392c4d888e7c63ae2a3d53d560ccbc226dbb1d9f69100fd86a19ef30a83981371169deb4ef87aafcfb4186c5ebf8d83764470acc8c9cbe36a9b15037e25b1dfc63e929b0bb3891be2d1804b8c6a0bf65891943e4c0fd21e7df55c134dde69682244d22510dac2b304c10a2e31adc134ab27ed186568fa9091df16f1c9f4e7044ddef6675269de710774ed124b52fbac9bed285b4be5ef9f2fd50e1d95383e145553762fb87a1da173b8b89a7eb9e947d08b5303ef0992bf4e3783c30253a43b373d90a75bd52fc53ee4fb86bfa1bad035a8177f8c0a9f53a6214ec950c2a07cea7f908c55c24dc31799867f819af18fa30f304ea001ce9cc87eb703ab578f5b\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 00a3e40c77eae1f17fbf23c0218bb5baabb4adc424ec585b499a0e28ac21e664a0a8030026a161b1c3eb96cb5d0e498023561f11cb4ecdbca633f5d6087784106683a804301a16911bd7f8fd44c66a1c890c70fdaebb68267253329280f60fd617594194c96714126ad30547a813ce57f4fd14b1907172986c8a525abd130977a8e0a4af8007bb1e9b7cd83865b6f1b0e40b1709663a25bf118aeabb0af179cf61f034fe23d505c86f9f2be08b4dbd9e9c465c71edc0ee7f6236c1b52ec2e01904c14a3da0a426f39a8a5c462bcbf6edc04febbacde1dfe30495fc5c9726fb103f19d30d9d49d69ffe9190f5d448ac2d063ec4bdb8e07aceddb17202dbc25823\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1da09f538311c3b591f0c28ff1ba3d0888fd583f78c1bbdb93cd44c17640ea658a62e41adcc74bf8d7509e7d46764b33fa02f74cab9db364101857870003caf2f6df6f4c366997d1d00e891a30275554db7690b267c56eda3a279a1c2d9271cace128f8f3449f2590e4f30befa9f374009c7d4d75dc9101e63c7a102fd7ef19c9d8cc8214c7d8960332be27270e913e2906e55d3e55085c792f2e34cfbc6e017fa7211d3d2aa0dbf9f664d7cd0252247f8d9859eb7d738985e2785d1ddc21a156824dc323b272c04ac36015061888de8cf026afd575257f4fb482d5807d5ca41ee8128b2c9bfb22900a6e60f03b3fa99621f2b7990421a070d89d0eb981de5c2\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 22b094143d7c0e14529739d6e712202114a04053f0ab81f2b9ff357e6866fc58ec238d225ad4dc6ec877db71152395ca3747f72c20de76aa4bc04b1a61babb5d3a08017978de1144c3810ab5e371e0236fe14fce95d79fedc74b3108c0713940d4be0da190a7e7b7b90440e91fa1770b56754b4e7a8024ca5918aba59afbc2fda4d60745665abbc2ce2d9ef7aa9a4894e14c150c98b7855f9c015b90a245b491f5c4f74900737692adb05900d590e617ba6ac8e951166f5c6ca69b1e627ac7cf09d73d84eac332cdb3b6372575a2db2531a4e1342f68b91bf6ab49523d5b29f99515fa6af1e2f5d02ed7a7ecf8aa3884a656dd026b29864762bb85e55e4a8e39\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 1addb77d2c6e825936e498fd1210c2b6fca811a99896ad40375567647012f3601f9657617876c62d1314731ea4609d03dc3681e6b53a93ec3ff0d49af491ed906692ac9278dcd0e0d051eacedaab7a038a6a8ec4d2de08103025a726568271ef9561db94f44ce4bda7210057f6d9d70ab71bef8599226349a88161de5e8035b671505b6b476f2cf39589030148c1bebffddff6d025870a4859866d63e8945a10c2cb2fe575f667", "6051c9f38140969c0162d87edcd0abd564e92e7389b223895ee92e35add16fb745ad493d269bb1c691cd1dfeebbde8e343da7051dd6d5afaf7aa4ee78200916ea2497043d07dfa25ffad324549902dbda79f4d9f02817a88ae\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = be516056260537514e69b25f482b4c22c1ff3ee12ca49b7f40e676a48cb424af3ca4bcb4d81b806c9c666ce066063efb1ba00f5b4dabae471e23e3eee7bbfb6ab5d505a725aadb6822a34d12ae00cb8e1a900a25cf236f3b1fe3b576162fcc8f33efd9bc6bc1c44d3c09e5e68c8aad9288a5a94cf86942231a413ced5bd61b4c6ebd83ccdbf52ab886f89d570d78c91d4b2afc3862569570e2d1b5469efb0be9b2c126c32dddac5c34d8f340b52cbcb38b1134c6b22109e7124411522b843c2bc3e575e60b35e7a440156770b85181c95488d82c0a725e02e90ca3dc4d41c8639d110d4bec80827140ffd1fe6e8d0c945de1e1b326a26e2998a2b03d86fbd7a2\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a9698fed4f4dd3d10ce7b039bd40b4a81bbd6a5eb82a71ba710094469479c14c1cb0cc13699fc8ccaf0c10382e1b03771a6d05670e22949c28965318acafde1331600f7337be8c19209b532958c5869c89b8384923a065df377de37b9e5cc7e5c8f6d0fd8664691dd9c97739194e5b2dd6d4330cef0aa0d873dce1405e7a435993fd84b339fb3574c78ed93fdc6fe604a3d9cf15c114e5fccbbbded2ae606fb9943a9a45461069e8b2dfdf882e9898a0eb59c4fadc3d86bf92b8dc537b1792be81b662b9c60db2938d513a7bb4878899df96a59334432d07a42b5de4a6d7c4b6449e3f469cd5f60857875bd1a617a2a8de8f9c0777fcf2e3e43499d90f3772a2\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 89d42ba026f51a31c27e079279cdded5cefe75069ce04bead266af39e266dfd8e9df16a3b9972e03f4afd3f561c931e815c66c2e81dafa56a8e6ff148f37e1ef4e98370c0a2b2e10ba47f7bdd4f433e8af206c107efdde39de9d8816bba196d52ace92335c34b15496c15f89bc087a16799059a556da9e96dafdb835b5553c5dc2c1b007a6ec1176e31a021da8c5106947e7a2316d3874a66b8a4ce2b237775365ec6f0842ade6f2a1b1e7d349189f6d2799c9dd40bd9d32056bfba10d14cd7d25fd260b1790f6ac6ff77631d4a5466c7c976c251f2d4b3fe943a344e75cfab3b8e30aff2ecb34014b906e1f1eb3f55dc8e4233a40cdd5364070ecb1f2b15682\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 712651f84c12fcbe98958b629326bb8aa9cf8e96cd8d06ebc68713e0241d2499b181b9216bb777e48d1191cae390d14dc63f0a09b5236fe6cb73f47d6043063ec1960e1fa5abb3631294e3c7fe3fa155864963a69ae9ad7f1b233a00e4b3b256fa0e28a431ff898155cbec008ec8367757b9290fc847bcad3a71d2026cd583b59401b7e66d552d9b59a010235785e6075cfa5f8a6588c957b66ce339882244311d9d0e33cf277134c0bf72c21683183ef12cff0ca9d3f517ee56acc4d89c74b0e81a7e1a26f14649766b0194b933649ec1fb72ebc78dd9645827e78843d31f503eebc40748a290b5fa5c1545d0801b63d753f0c0fb89e11e387d03c5dc465b2e\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = b23e98890d5806f743eed29a2f972bf2ef5e53bcd20e4e7f8beae79a4e7074ccc4ee9c38bd2122fc1ff4a94a22f25092024dd3aa598c70278c93d70e932402cc0bc7153d87c59c5fe15c50f13eaf4d0c468caba84e43c925c634a5c4518610e836da434a4743824139610d6ebacc07ef9438dbd860be879fa84f3cbc5ef4aaa140b581f7085cfbb343ea32dfd30546f559759df095853ab2d5dc9026f4f51f86a3621bd22b161215088a58233a42f64b1688244ce2a170b8c6656e33b697abf6a72d57662c5ba8e14cca9ac502392f4942f734670bd9addbc1033a33c1e7af3ec7dac7565a8fa50ddb8e220bc2426746bc0b05a9988aaf3b83103ef3a3902a74\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 98053fe9f2dfa6624379b11904fefed76adc19b8446cea727737fa452851deb44ea5a864300736b1c9a3ce27caed3fea4511e9bb9401d3a98b0892fb086a5dc04ae9e1d8ff6407914d0bb730507ceda69efb840219084c8ea2528b4146fc3420eaedaf45c0d8450192c7af36c3d6dc38f1604ea69fa9b2c38baf7e7cd4e0f5c151cc9db3590d505fd73e9c6363ac77aea87c7558582ff3a7b7ea08c4b4ef655984224c2bd9709d34d9b8662e48a2df5bbab3e9df9e5fb8db8411721c73ab50ac3d5a8b31bc64131415cc08daf6c34faae6abbf1b340dd4f3b1b0ab0d64cfa33b501bca552c950ddb7bb5f59562f73c51fd97f2d6d750b30ff19502516f5210f3\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a25aa3f523066ded870d269c7d26ef45ba35f386097015e0ef59a9de4710e88bffc62a16f8fb02eb18704c562bfb0ab9230d525e23b596a804707d98dce426d3e3a1278c29f342b9dc310b5c7da5aaa5584b84e922a385fedbe78ba432adee58f51b2570b7889fe854de8ba2654d52390217fc1f5f6f35f4a75cae85f388640db87e96908fe2a7b78c91f0fad3c118e75965ff2edc0cc9228cc81700069c6e71d4c7b527869e7a3dc63cf74c7f4aab9ecf0b2498d30765ed719ac0987cd5fa1058c81e57cacb3d489866f96d5962b1fba9f48ff298f89f8261e8fc4dacae06576c550421b419e5c5159a64b6b67eb7c709f145fd4ffbe4bf9d46b0b7d70d2e11\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3f0770de907f40310ecfa536486f77d721aa07371f7e3c77849fb84166389876f4bd2c1730ec69ea95951582f9f7fb9b7ca388689062f50ebf2202893842891edff2bf0449f9fd9d9b5b26a6c96033700230d740dc585e64e0365079df974d12fd96cacddf2f114caa5ded4181f63380f30a696b13000554fb963b6b073891ccedde00ca3701baae4818f5e74838f6824b7590263228e7b31d614432bf06e78247cc82f88c63ad0514868cde210e2625fe5b9162781b4ac32a53d52bd673a257863b0c137bccb2f86e481430d4ae570bca908f62c27746a1e8e1bd051fa2de935bc40278c00901e5974756f94b3824b40e695296dfa730c2493ce257fcd7f00a\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5e4895d00312302559c490c304dcd4fc4a10398cb8d545976d6b700edadac5605c44cb0c0c7c7738fcd77dd5830d0601d65f4b1211b365705f3d5fc36fd713ce5b75e18232557046efb632da5186399a1de3dfd0236e2a4244d72637ccfc39132a642e4d467b15140a32550ce67d602d06e40c4a39085f63b4e382d4ab9bd55e070eb498cf3dce7f315c28b7d83ed704dabcabe0159a7254295755c7cc0ef757614e4d04be52ac43f4586535373780cecc58d07511b310fdb3e858489269968751e25c0641519547127bd99233e0dbb82b0c1b984a7856fd28ade5eddb5df6ece6c252283d66c3477c2a5a631f0e032e5330ed8e097426426502bfdfe1434b29\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 1feb9e7455e16c9b7c572b6b0e095fae2a86e99fa92a8d65ed37f00450a20c3582dcb34c049d82c22200988da67eb45c2fe9d390161d50c3269250dd7e0f6f20a175fc4edaa6fc149a2fca18b3693b7779b686073e3c64f430c7578181389b813700da244d3725df2d63e0bff0b59d3894b646f94587e9431da3f508f23832b0eb69c825685bd1b9381d8127431d7efe2000bcfa5c507bba21b538780aabfe5aa9cbd8a075c91b487b29da70e18c48a9baa411f4f1d14ade15b09aafd0a3984013b376b2355ac9aac22b2695cd608cd9b9983821f1d570f523d3acbf119633af972fd5b311233fd0c7444c10d8b964b8372989640571ad80bf3f67dd1882d98f\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 43de19d59bba7bc49d2971d66a98e6eb34324705a3a860f74bff5edc1b41bb7b168cb7fe3639d7dd7766cfda9c8cb725c79c66cdf7b1fcfbf97e24ef45134b23e1028bdd8a3f6a50564970d9c8cdfa2e52defdc919a4c915104ec63b122323c9f37878017b5c2005af3249018417efdec9ac2cfe176a0f54b5b1b5cd949be1bf64e7e2b1d22e485bd215c61dc3b50af335e52ac5a9be0d5e3fdf6ead6e25146c429d7d4e0153a52e91504edf9e48ae8ebcbcbd753f06ebe111b72d7e24b80d5225daf8eec2bcc7d484a2fbb9d59c17cd5ab718557a452b848fc605b7f07a6a053049bc1221214932ac0892621b95dcabf0f9b2321a6af61fb4f47fa499d9f085\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 81d561d769770756f1120220a1b8abc6054560f2797778bd433e53e256419f4f58b0ad1356c2cfade14a7a081d1b93b37b5edf2cca3f51ca82c683781e25f2df36f20af9a67491b302cb12f8b96c49ded82557999ea30638fc5b3aaf546e7e81675c79299c1994ab1b3ebbe6adf6f91a4b5fe15af92f05c4f9a63339dd53675e843f50d5e74c47ef3a9f471a7b5966c7995e1dc9bbb3f14187636c8aa1e1d3bf70d24642396765333b72a2d450d839a6582c7a285db440734e2488baa416ddfdebd7b6dbab4b21146c9adde2a14f69cc69aca5bd0a80f285a4aba56b2f5abe0122edfea4b75404ff0eb6304e10886adaabee2b778e36527f38335ae0932f9d11\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3b8ef79b1e78c674f827a66f305d67324d31847c0855cbc993fe9159f7a5e310ac2b30621646dacf58e57bc7b44a139c0834b3252f9c06ba6de582bd90de6e94211431820de2e00b9b0ab100239a5a75bbbcbb1761d85a3570dda4889bf37c8d3cc0faad74baa8c83124394cd10131351defb1673cbac952c4d968a4af71a28fc776f6f070b087f69a4d924dea561722f1029dd0c78bea40575b7faa5e8f96d3ac66acaa75aa5f74d11fed5070eaeb9f05892b7faabc4709ebc8b1748fc4d97e1452dc4dec40ab4789df166f68a4c8de218abbffba4b7b1733f81c47b3bf371a35114fff099b7db6fbbcaf37f7fe5d25a0399723a273e2c94f78cd21b4e534a7\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 89721e40d6e14639991bdefaab28735bdf50739f2583cb9ab34f4298ecf8070b5badd7d818fba03bace4d54fa050117cae3f5", "75a97cb31859473040360b994866918ff6b83356ccf53ef6ea900a1a8ee77f31cd5cf25245c9c543463d09c4ecdcd9886513f630c9bee91ae0fd054cce64199a3e43ec3ecccf68a155f2bf1086c59ca0a3be47cec1d8638b9120b67d7ba03ebdd066493092297a6bf597ba63062dfbbd428bcd9725afd10586f1d6320738362e551ccb8631d802541ae74348dfb02f8662ff237daa10ca4efbe33cefdacfae2e6d86d96d7d06503c06375ca1abd2196bfae5c2ba9a2f4b1cc2cdcd59ac24451742edb3152852a89e5386c16bf37\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 10264b9667483464d2bff8d643de5bbc3482da0563fe1e77f11977c6c0c0b9c8699ab5b0ea87d123f8a73f4aefaade654f550a0e5197468246e5f8fe96704172ab6e50da24f48793f1de62bebf8fc54a2ddbd11304678f75831da77f3177b458f3ef73852fceb0c25fb91c1b99e865dac0deb6bfec1d924ceab739da876e7641cc3e3faf530d4a47b283b7a6954e943d0ab1435e217687ce7c0d0664c08b307401f7473e732a5edb1e5b76960283a29df5e39abae0a4ac89247c82a828273415189858f280a98ac509303e2a94c01f5e28aa4f04468744c9279858de3d3e81e534816eadd8d2188624f83135529544205e03f9aa256ef31c00cb5bb4cb69607b\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 6cc03e058bdf3761fa04a89069f97bb0654b41d00d825152cd00db635d7844d75596d33685fd02f4a1bf36040ad71d5c448d1e2a95d23dc150463d85394709f95d7e37aa44fe300e3cb6c59967cceb81e5741bdecfd1d877e5e02a543e4acac44c4563df5d5d2bcb20e68c26ba032928c5019b3030457f4a828b19d37c3bc5f341f00e15f14ac1184239ddfc66ad568682620ef099c08d088d5bd0a95935401fc1091bfa2a120e94d25a54cde34c455cadf6b5f784392e3d8a687a9c56f5348fe9e5082432b29f64ddcc292e445f51ee0af42a595e860b88eca2aa486e8c3998c00a3475ba04d740cb1cd3f8f436531271df58bd2f84c8dd20cf45ba4db256ab\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 177e1f3535ebf19016eefcc188271b53387292eed25eab416ef324d58b7c26bccd05e5843e49b5ea573ec7557fa3662159318994595a878bf162f5206729bb960c502e248a1bc85bb60025ef41d9aaccc040d99d3b178b609a40c1581251cce8e6f410b082d5635f94dfbd06885f2935fcfbde23ae0ae509af1f39d77c2d94c0454cb173ea29381ebdedc4983e34efef635f954f6d911968c4f79b6487b28ef427805f4c3d14d2b8ab72f5d736cd48fae65ab3565d8d3b7af61b56f691c064146e424bd6db124ac9e5fb82e9a84e2d7da8ca953fb8db2a845640e6d48532adc426c4761315bbc2639bcde29f420cb553d6ebff0a496ede669b413c80aa63553b\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2a0d24c903c732f2ad18dc96c7e58289a1ed5887006f1ff7eedcbeb28b517171a25e48bd161b33f8c620fc42f23cc0a4b3ec0c03e42748355650baafe1e03cb1e6dca25bed0afaf5a56f016372dae8b3d92e21e9a5dd7b56b26c9ada092805bdd6933cf2a9017bb258cc19cdb04b2ae507894527d93a1bc85ef0b8f3c2e6fb9671c75cba20986ecccae16470d2a0fd8534fd879d65e62233d0e6450e503912569db3ec382210f8173753b32c8302137f0b3a60faadbd5a2a5c7d117f248797ed44345ed43284adf7655e7f70a0d94c4b05f484553761ec8b7be2ab5bd66d3110b4fed00d83dde2f5e0c6e0dfad1f084a851b07fb097481517805affc7e5abb72\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 28d582ef90052ede462304fb54653941f2b45d26998ae7af80f058646d2dd472d7ae738fe4ec226e2937366e759d2cf741b72cdc85f49004a143a68dd4c820985a5656b583e95dfdf48afe5895f6e02d8ad5131a522d8bb005303005ffe99fce9374cc538cc78d4f383dfe8b95cdee1938a91c847ad0c29345c99efb03424a4a04e52e5f955eac56fe5ddbb9c103223e0b3883ef4b1b787ccac10d9de11b85cfb8d3f675d18144ad64ebc59823653d54b85696bb6989c54dd368f0a130d8cdba7945216b7dc1da1f0a85e73f1458e009884d02106a2ed5b66d9871b5d1143d0ab5cf09b76e98d4f03675ff3e74af40e4fba4f9c0b87653455da30e4dd0897cb0\n\n# tcId = 31\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 2ea2f54a8bb688cfc16d6566f6b94d3170cdd93451316e89bef148e70cd85e185e5e19f23f4a8e7a5e65d938a43002ad4be43b3be2e409aca1b69292928d98830945784abd1ceb0cec45984a5496d0ccf9958efeac39842ba50a1cad7130ef5b227fe93040ab7f4226d5005647cc1b0259373e08ffcd242b77f9037797cfafc0254a96edfae31c4f7ee08833c0490082bd33ea25a2138593cc88fcfd7668a82f0cd26f4e1dc65c4e010c113bb2678c91254de5eeb689b582601b79ad08198072c51987602fc78bee6bb4754361bf5be123aa9c1f8c0d8b2a804102962c8da772529947bf2dd36456f6ff6132a0c6ee7347afc5680e705ad3b8e81c9a04f6a807\n\n# tcId = 32\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 0bc548744c7474e5d904c1a21dcf938ef8abc3fd1a0e20d94564432dae05550449d4b6ade94503073f6269bb71afd2b3207b809d39a2828a6f14774bfc04624255c1a2f28a722925e28115c98b20e98016fca0f8c4b3e2947e555113d7bc88d5586bd5a0c361d290b4dccbd1cce03a6df3dacc1baa516b1664608e6b9b097e64eaed352c8dc9b8864b0111581b97bd62a0f1b9396a385de650690e36818fc38d042574401c9dafb28b81ecd14d1b9e64ba867b4bf29f8e78fd919ba2b00f0896ab7d7df12fe4a8f525cb5b9a5b1c13ea609cc7d09b6ee57db3858e62270602662e8b160d7d4b76f2d128c901ecd74a0e2188aeea9c40325c18937e0ab67ea4ed\n\n# tcId = 33\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = bf13c64caf9726506b5cf9605c68252c38c9151064fc85666c7572145a72fa04dfe0fa5aa12f020f4581f1b199025e44aee682d65b1d6f78d52b03466fb52c6c8bc2adf65a0e20cf39f4e9d62cbb6746de236279dedb71e4c3b27fa7b4263911ef7ee2164384ea9b47ab8efe33c7c41a785b3b8c3aeb329248a3ad4fe443828b73b7da87475b1ac102b582ef16d45678000dc625fbcff5fc6509f3b42e0b097617af91c63bdb661a6b92f72cb1ea33a6ef2b6d23782bb87d069f9726c8c91a7b412461d59433a85f04f01a94b7db2e6b493505f6ab51dd2cf37c22cb5b3b9cff2316fc4a7433af2f6ad4946bd3faffaf03fafc1921ba7dc135f3d06f76ab31d1\n\n# tcId = 34\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 4789ffe0c9ae08e5b4a13e8e94fc0609c0485dd09c3d10621187aca1a503b0ad3e74ca519bc90f171f2de9246967b16ff69730a4fe9073685d35105633300f8af20b543f281fc7c2580a7d90e5977b13e20e3598daed7d1164f99999c49a90d50350e5e5e134c3692bdabb75fde51fe7f09bda5af6d98eadd4396bd90782579b02a0d60bcfab72ba3ff4414cd500360b21f9cfab420ccb67465967bf5a77efc2baf38b97759c28aa1df3443713c2967223e014182699c82169375388fb204b8bd609df94f5c14de98c4c4a97ef52bc4a26907e5610e249aeca9c951b5559ab1a63235cdd50ad991efeeb5cc87c2f270f3ef916c76beb90dd0fe380ef1d7f54ac\n\n# tcId = 35\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3316b766710c2c54ce3c42fe05188c41bfd22cd91282464930c763ff3325bdf4cefe9328e6a6a9eaa0392422cc000a78903552649146773612a9becb4d7b4cdf2c6e468bf11b2ced75dcfb3f5811b596894c8dc7948d88093face5963356ef5dfe93a0839c0a3bde0ee33319fbf28949e9bf8710b988c6300beb0b04cbc841a9018a6a2fd6cad033fbb8e22c8cddf713fcbd096d5c498310a11863c276ba69d81a2327a0972bef0db5303e3d55dc4ccfdbac75885f337867e81994ce7e890dd52a0174639167b53718ad2dc59f75bb111461b713bedbb1fe00c790fed6984b630ead97647648bb09b65db20d2bdbf63b1101068d82a1ec3b2891f932ffa918cf\n\n# tcId = 36\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 4f3eb885b1033c3f5cdbf48b6fdcbd092972a466af821ebbd6f8b8a2508240ef14957e9cca82bcc1b3124828f9e2154353292ba3339f19e5e35bc6f6a678bb0296b2b5f54dcf9fb4b19fad1451c61539f5b2a3c0e94a738f25309ef87b273cfc3495c79a3937ea0cf56d3bce104b9b1ce30561dfa64867ff722c37973afefea4b5a79073f8ea6b0af36c9f49e61998381d0dbbdf9243838a987c7c446bfee0f18fd90ca023c03576c1ee24d8e2706d337f126775f6bd3ac3c5985592209b2d15f5ddb8dda0a432a5992d784dccb4d84f91e8edca9eabc4376411cde969c703eb1b61f0a8b82cce96dbf4bd97d574efb97e60c4a2b50808963c36c20baffb0ea5\n\n# tcId = 37\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 2d481e02fd9cb19356afe5a88342998ef96ef107f5b365c55e24073b815907f3ef9a628146f13101dc8305089ed0487576fa5b149ec6d80a0d1e6e8d874d1aa15f0261605105a63e41c05ba80aebb417a7fad72cbae383a26470e3ed867943a2a697b0e89ae5f2a9fa46edac74bbafec445a5d3f7ff8b010b6e0e0dd815f5a915d867c1345f39a3ff33e49e02c10dc0c87c1fbe3adfe8c21024573fe22e8f6700e9b577ba0c494eb96b55ac1fd6cc041f17f834c6b8b6ddc1c4087b6313012532365bf3771ef37bebc694fff80ae7682452d732da71a30cdee5af3f437451aae30d6b240752d87bfebf1141130d24a470fd991bd06bdc7fc1bc428380311dd86\n\n# tcId = 38\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 421326a7fb2b1c3ccef84998301905f4f7ea1c3b9a0edee378edf33a555bc379399ba64c970fd8c41a72f6d7f6149908d22700f3836fc0baa11f88a15ef9aba5337c3d5ba081715749b04c3a05d026f17ff8c781af9526add7d138e3899651e28544f21dac75fedb70d1a38f48eb711afb66dbd275ff82fa2cba43d265f07b2087821d63a5467c9ec363bef9a55b65537e15fa0b2015d8e3cebcf096c63733cb418336e8f04a86ef9f430d28b78352043151deacf135b27805fccd9ae4bd6e62b10c11173b22ab155555a88960f3d1cb8ec761c56d6d5aa63bad6b0cbb47a981e283f3c494411a4c3f27d26013e3d09bdb7efb", @@ -8570,9 +8880,9 @@ static const char *kData308[] = { "d145d522428c2e9e71be74af29f8e04d88ef46ac6b6dcddf2cb91156278f8b9151d7d5fec55224acc9b4a015762c9cc7327a16ed21a060b1f17b47d23ad66a2e5276524af9acc652e48d350409a119abdc73235d9de02a26964dff902aa1bcaefcb2b3e1a8394a50acf4c6fb503da872e9a65a220b7c1d31496ef10c2e27c00b7694648c60dfc5f238c7ca3063cd91d96d6617d76b0fed8da990838cb7a33561a7b61507deeebb95cb6a455b441305629ffde7979ac76c44601081f8cc425b346b08171752d4b3f711bf979a657e075e4924b73f011a0ba10d034934f8199c3c\n\n# tcId = 218\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = bac5e1663853e0a4088543eaf4cdf36e8b1ec7b52fef42081d31e3f294dffb31276834807c4719a1cfb8c7ff8db7020b72058d4dc481da66ab60f40db119cb57b66726329194f8a8e2a22499bb53c1346778b9a02f92e015b82b4ef432a13c51f93999fd3bba3723698bb0724b2cc5f91dcda79e29c5eddad80b7d4a08e3c549170952eeb03188dac1c81bf37dde0378f66fb81102aef841a9a69743f4c78a8e31556fadf5af56d81afa825d37d2f6d8516795abb7d5804ebeab2fe2fbafd5ae355dfb9864c996b147bb5f1d8c1b4ccc3040b42876a27c83df2068f1ae264ba557a6f1c5e0436c04fae398ad4200f5d1d5a872f771934d4a22a1c7785d4bf347\n\n# tcId = 219\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 83a66a917fd062478353636c8a55eef1bbd99fe82af9305ef6e9049d8e96758d856191bc2fa3226166670502552d6a9e2a62a26d449b31f5905a34c1199b2de9fa37ba9970d1a00baf6b070b92a59054b12d83517d3fe5ea4b07f7e234b3cce16b2783771d9d6cca2b7c6477d695fbc2566e55feae9c6dfc183f99b7e27a964a6169e6a27b16c6e51e1e4e1becb49f48d3f225214db85f5b8f729f3811ff4497b517c4bc0111396692e4f438c9a8437e62ccc5fc44ba85d6315a63dce77d13e54832835281982e722d3eee4f4ccc4c4112e881df0900433ef46cc6134dfa75ce7da8c6f96729760172cc613cfcc89ae90edf1e8126f39ca5db76f45eab8c20c9\n\n# tcId = 220\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 60ed20bd7d6f5a7e30cfce9c7cb5686507fcadec04b8c8aaae94353f83a5a857b305aa837eb818e11a350d1c1f1d3b40581118771f57e987f1b9fbfe5335a5dec435982fa37a7921af79cf52d638a79fa13fd6007deaaf9cfb5425b7bb99269d464e4a342abef1be23f5c6383750c6563caafa863e82ceb3aac7d66e38eba4811944dcaf6bc75e56bffaa2d1070202c898b381cdec53dce38601c196b40e1dcaa5ad76d7936be573fd2bedaa6ab98dd5cdb1428d36ff98e1784adaa39d3019ba7685c4ccecb18dcd7d120579b8c7dbfa3334a65d4fa7620c6d57ed256a6ef49dd5a317675c6fdf27d6e58000195c65f5b41ad81f866859e2c6adfe7a8b444865\n\n# tcId = 221\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 5c206e08becf1abf756f632e5a19959a8f91a57bcf02a9f826555d924cc084efa07cb56d0ac67921f8d7c40155137685cdaf3fd92938866210ab9674cd451ab7ffe6c6e6c4c079cfb14df12a169540f3561a410a83f31eeccf0b2ffa5ad426c8218de9c11685a4352aaf076c815a8cb750e7dc3906eabac30e7179657054cb11f04a70e9c07ed8ec499a274001c9790ed86a3ee1060bafde5c2ecb6545d2e19dcb2eba4cb16e0ac45723849cc5ac4d5fbe9dafd47db853964b90b4f20ba2cd1786ece2e8a34da5d5d63cd5e535672b34158ba66adc480c5b78e70cfa9b05b506abb83e03c7f3efb25013aaa0c35beed9a020dac6e8bf79ca43adaa4eb482f0a1\n\n# tcId = 222\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 6e838ff1c850eee3039e4ea545d9197b3f4bb810463d20759b7d5bf82bca07f8f82066aed8370c848ee55474fe61b8e0d83594d97a499123b468277c6b8eff5b9f124f43766e2314172a9c6864580fd24f4cac27d254c0638b15c0984008066340105d339418aba4c25e604992b70da5930533e830ba1a0cb9cb95505b25d4dce8b7e62975cb9f5a3a6bdebbe01a868048665ddf64262d55d21de69c6cff62aa7b316993876609eb1842f56279e88c238836ab6360520f1a81ac2642950293aafc945b2b9d967aa6e0ae09a0f9859a773b0f7ac0d74adcce5aff16b450317b2441a8b6cdc3c0c2c527ccca0f2a1e7870ec6e582f0b068e60a105f4c54f014433\n\n# tcId = 223\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 5f4e316d08081fb15f407f929883188cd7ed34b98fa2fcf2cd79ca01d83c86af4b122c300f4e4075cbe94c8b10b573e8f32f8dd24b5ba74f7ceb9583c562bd966d3071a56d4b815c285e16d15572f26ad3656bd86465cc2d1adcb4ffb0b323c1c77b3d4957523d76d82b25be35aa6a4c18e53ce056166aebc8ce5538f4e3ef33be60373f797fab945368e946fe6ac51516ce38ca46d86077c594e38f5a80e2475f3b929ed320ec43c12c12c297a6f15d90aa9d82321ca9a4ea7d147328ec2ab031ed9486dd889460f800a94a99ed2ee7a09c88f4dbafa1b462cdf42840db943b0b952f574a92c972af4ba04eb59540a2a02c538007f147769e238356a218ea09\n\n# tcId = 224\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 7cce1a56772b4dcaf1b2fc68dc8300b8ba9cab26f96841934b207590f868a2d5b0ab94d9e31e2edb1fa2b8785c5255d175f7c5eb3ad81d20bdf20bc6f8cc622529ab26688c74015d74257c76fbb3faf101db3823f6cd164bcf6ad60c3a80ab95dc400d275348d7d6a1f946c37b8b8f38c44ab05198c5e5ac32cee8b8e9b4efe4692ccbde4acfce1ab26cd1d8d10c31929d8ae3b0d24b91e2094ae967a42393ab198259230b07651476208350a0a83de06c588f77e4a6b401bed5339749ec26231e7fbbeb690d3d29b3aaea38214b3ebc3707dc1742fa373da53d98a47f3199d0e948f285edaa9d79fe819f8c37d51aa8a60a8059fce71e80f3b95364a0365823\n\n# tcId = 225\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 654fe698ff8d93bd6ef88c6aabe684521c451e4dafac0a762b4dcff7c159c410ce7f1ad7748b40ee4a97a72368edc33d94f024d83a2eb1188e48fd355dcb77dee4255c28a04e2b3c355e0032380336dc7e2de43ef670e578d1bf75cc25a3bbc169fe70b3d92d187d8eea1ad894ed1caef719353236e9a0813fdebef43f39fef0961d606106fcd476f0f51be3c202555bf96c4d32bdbf019e96b4935c03d0ccca0e62830bfa344339ebc679d90f9bad3eba617b60877acfd9563b413e4b7764ce9c746134c57cb40b7d4160fa26a5c8fa44f2f12d8a1c934ee6bd140bfcd61c560a3f8186da83d26f0d733028c6e4abcd8f223faf6ee371b97d765cb799e0c1ef\n\n# tcId = 226\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 61250794cd149921ecc1e182bac8a1c378462f8054be355d6bbd7159eee35718da038516172d30ea1806a674358a0474bfad792d1b99e014871f5d3ea1b818a1f42750aeac438b37e265119f9ec2ee6c6d26fdc17e080b2d7ad1ac5c0da61bc55ec89a2c78897ebfad49dbe9d6a0d6eea9acfc083551675b0468f78e5fe302298e97280995317a9ccfcd60fce9f6afd9e465b7934a2fbae4fc63cfcfce903e02f40b52978ed8ed01511576c54d9fa33efb708aae9854ef793a0abdf39a68f330423f79448de62ddba7bc8480186a2afea384d66b58c71b1c1b1aa905af314db3ac9f20b1449d2e5099c4a17ea0f131d3fb93fbfd79757025ed7c96d14ddbce12\n\n# tcId = 227\n# invalid PKCS#1 signature padding: 0001ff...ee00\nmsg = 313233343030\nresult = invalid\nsig = 1927a8ca62884d8515e9df565abc521a1c40ee409a7aaf19368bdc2c24f9e0cbd1f6a144109273acd712cb0e34d367d76800dc5f0ca9145feda1c518cdf7d07dbef73c189db35220e78c46339fbfdd63070d47e2bc1fd8dfa8b5bb08db1266960951da2ddd16a345c3d34f8bc59622e940a8317685a98f5883ce155471d6c96605b285b754032f998f2e6cd62139f75cd66b1822dce1a10b5af8c22d0931bab50ea1a47230a2dcdf77b720411bcc64c88efc0dacbe8610c359575a1dad37f923a6ff44b493a3b5ea1ddf22c205484cbe07ee665b04e26f9bd7ed62a66286b32a209fda6b5df0d7df048c400f27c493a2504bb1b10a20fc7a5566d2c0bbb3783b\n\n# tcId = 228\n# PKCS#1 padding too short: 000001ff...\nmsg = 313233343030\nresult = invalid\nsig = 89c981b36b3a8db41f0282f14fd9cad08d7c088b56aa16eeac5f643e83ff68d165ec6790a5c195bd37ca3e6d23f8da5187e866ef44c401b338337bd4f9312e8e87b019e89814fd5e24d322630555cdf628b56f93ef81c435be13cba6cf91db2c32eb6927c9db7f856a4f86dd127e9cac8159a990cc816edee7e8c39f06eff4c72c8128d2be37d2eb2247a9d709797af04bcd744d54741b14ec0a5b7b1583f9e12063521d1e7143690fbfda7cea18451599e76e7c2bea000ba9ffd5b8c547c4c23e8975bc6ae22eec79937929487e0d1166dc7ea9f6a1e71cef41e704e89f2d01b7a81baaeda1738756265573528a3a495919dc65abc36c9aa246691fe0aede70\n\n# tcId = 229\n# CVE-2017-11185: signature=n\nmsg = 313233343030\nresult = invalid\nsig = c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5\n\n# tcId = 230\n# the signature is 2 bytes too long\nmsg = 313233343030\nresult = invalid\nsig = c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb0", "0b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f50000\n\n# tcId = 231\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 232\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 233\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 234\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 235\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f4\n\n# tcId = 236\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f6\n\n# tcId = 237\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 32f5b016f20c499f3cbe5d57253f464bed824eb521d191f3dc668eb9da87c8725a012e7969756a5ed530266f109a4666997fcc27419c208ab0b40cf42d5ae972f2dcb10fc3c8cb60f10ceb8f44394d8e66633f7846f1abb11c581a4827d5606558bbd7fcb6263b4c877e1682773fa94f1a1dba167befc444b89975daa7f8d30c6dfdfc397c21db569f887a9caf74bd8810c6bf8a80f38d2267295c3e05afc3699abe11cfa69dd385de7da73871e4c16abfd1ba60abedeb54eec3763cdaa533abe970f75d63d2e936e75bca2d1b467e42490065644843a509d2dd58d178e28a435ef4c48f2017c5f7244b4d8a74fe024b513cfb36dd2d2dada6fd5e8975da1595\n\n# tcId = 239\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 3fa351c977a5fee02f875bb284a25bbde9175cddb79e53ad79b76b6e376a8967ac81e6ffe8b5091b4d4ffc3bb4394850eb912d2c98f60ab4fbd24e0b5b28b47e456d36aec7c11fedfb52ad0307ec24380ba1a2323e7f5786f655a6f6f6048a0bbf6e4257c22decd00d55556d06bcc138eecf2d51f2353df2c82c29227890f235cf84495febac0b074c35a072cd97ff206e3fb534de0315afcb4c36918ed8e39e84c6a1bed4941ea9ade58d45ea215174b0d45700918e9a3b44c1cb91bfa52d663ffd04dbd70889b126f030ce53e613d47f7cd3324856f1c41286d6ee16217b0fbbfc3ffa4ad4f2d323ab36fff4129cda11e42560791141ea22000ead1e2538cf\n\n# tcId = 240\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 199e5b886bbbac2fca6542b31726326be09fa9b865fdff482ef32ca5e91ab9b8a594ad1fca636c08d5ba242ee503d0500574fc07dfeaa2ccd6b0ce2cec51f3d97512e89494d6a33084095e1e3afcfd013f95952e3910b74f467d8d574917d5e0086973dacdd005d96e0cef0f6f518994335391238cadadb5871095cb399e2b5af51e06c00d2b78ac3b10d16e2a39628435e523f54873265b97874ea8f3c44c0bb331167b66ad055cbb6e236eed72a80081ace11bae8aaf39297587e5be4338f3baaa2a6623a9624162ab581371fe58f0ea58efd68465451502ae27596cd58fe40a841be295a81df636bfaee16afdafb01dcc717cd02b6065c1e99bc918f90786\n\n# tcId = 241\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 7e6af5ca287a5546bc76afcf42b1d5a8e4b3c3e276f6a56bb643cf3d84995437e830bca498c651b873b48c39493e71c6fd23eb76bd0d7523e092ea4c8f106a505f52605930b8ec244ac9b02dc14a089882462cd947d6e851d6c5999ab7b5325afb1e7c3a75f72064f6a66307dcfd98f86d8e705ac5d44d5a62023d97ebf9a759c6c657ea29039ee63370344610a2a072aa459b5309fa1ed4e1569ec40c57578166ad80a5da0f3b6d4f48a9c5cde4435d8edd5d909fa76228d8d7ae71ec5709ad08c24dd49280308e41339611df6f2e339215a70b901f189aa747be01867b8fdc08ba7fb0a867f3ff0e0aadb123747000db8d171b9864bb95885e912f76b3b21d\n\n", }; -static const size_t kLen309 = 148331; +static const size_t kLen314 = 148331; -static const char *kData309[] = { +static const char *kData314[] = { "# Imported from Wycheproof's rsa_signature_2048_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keysize = 2048]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 840f5dac53106dd1f9c57219224cf51289290c42f20466875ba8e830ac5690e541536fcc8ab03b731f82bf66d83f194e7e180b3963ec7a2f3f7904a7ce49aed47da4d4b79421eaf937d301b3e696169297b797c32c076a12be4de0b58e003c5123051a84a10c62f8dac2f42a8640008eb3c7cccd6760ff5b51b689763922582845f048fb8150e5a7a6ca2eccc7bdc85349ad5b26c52137a79fa3fe5c29ab5cd7615013219c1941b6708e9c3c23feff5febaf0c8ebca5750b54e3e6e99a3e876b396f27860b7f3ec4e9191703c6332d944f6f69751167680c79c4f6b57f1cc8755d24b6ec158ccdbacdb23107a33cb6b332516c13274d1f9dccc21dced869e486\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 8a1b220cb2ab415dc760eb7f5bb10335a3cca269d7dbbf7d0962ba79f9cf7b43a5fc09c99a1584f07403473d6c189a836897a5b6f8ea9fa22d601e6ba5f7411fe27c638b81b1a22363583a80fce8c7df3e40fb51bd0e60d0a6653f79f3bcb7ec3e9dc14cfb5b31ab1735bca692d50ac03f979dda92747c6430f8045efa3513ba6e0ce3e9e35570e1c30c8ebe589b44192e1344ca83dfa576fc6fdc7bf1cd7cee875b001c8c02ce8d602769e4bd9d241c4857182a0089a8b67644e73eef105c550efa47a40874289395ac0c4e02fd4ba98e130a4c2d1b95521c6af4a002ac3bdc6e52122ae4c08cc3da1c896e059acbddec574ac0432f6103dd97273d8803c102\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 264491e844c119f14e425c03282139a558dcdaeb82a4628173cd407fd319f9076eaebc0dd87a1c22e4d17839096886d58a9d5b7f7aeb63efec56c45ac7bead4203b6886e1faa90e028ec0ae094d46bf3f97efdd19045cfbc25a1abda2432639f9876405c0d68f8edbf047c12a454f7681d5d5a2b54bd3723d193dbad4338baad753264006e2d08931c4b8bb79aa1c9cad10eb6605f87c5831f6e2b08e002f9c6f21141f5841d92727dd3e1d99c36bc560da3c9067df99fcaf818941f72588be33032bad22caf6704223bb114d575b6d02d9d222b580005d930e8f40cce9f672eebb634a20177d84351627964b83f2053d736a84ab1a005f63bd5ba943de6205c\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 1758eb94588e6fc4f50c1be1afcaa41027869f304cad513b1fb12c2f446d63cdc05c4830a7e3e630da7b2da4f7867cc173bf6420f9732277282596de41ded32e21d0cc31441174da8765f57419c7764ea758f55bc17646eb100c435d1ac0eed6fc7ba6de5f832094ee2f479979765e05ac9976788db3c241a9e32a0da864f0019a87646ba623d63f4411af5dee1be9ec488c7e3e1b231479de70b9ac5f78a17b1f4120aece45f26c07e7bb345fdfeb05e14bcaacc614672a465fc523624cb19f66f9c6c3f642b832ca44cb25176d679f0e05606c3fed022cac24c2bf960a406d48818e3eb7ed53b0446032469047dfed95fc18088c92d91d93722c47f88163a8\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 513a5abde16b5e0ecb8659d3ca0845800adf75cfc4437d42fa34e7aafbbe35fc5984d3560cba938f9a622e932bb6162b7fbb6cd8c1cf8815f28c495995ac18cdbe8fabfdce29c17aa021df192ac02d080d7c5eda6bd4c99154178a9d5e1cf3ff4177106315f4e6d74c991b601069acd60b55b3bb4dbf6316c35096a487d6756181d3394944f1c742a2f4d608ce4f6abbfb72347ad7d342ae15dd6d1049fbd0ff55f4d7c43ab805f81ff1fbe9256b5c78c2de6beb787f4b6d66d290a3d4c4857368aea5f7ebaa1296020c8f9e3670441a08038bb810e853a654e44316a4e52428745123ce2714020d00e55a9eb82f7fb41c73d852a82b003670246c6ca2045fc8\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 38c042a00d6f27742a46f1f963a7b2e04f0eac637849631a491b8e4e58fc721c6ce620d5e705dc8e73409c3909c1c68b6bdb2b30f882cf2797e65030b38c4e7daf6fef9d1f115c890086cf54ca3e7c2b21dcbfd1250ed1d925810970f17dbf482d1784f296adee9ace6979075c1e12f5580cfb322e8737db9d127d38e1b99ed87ec49448a18a6fee650d3c27e4a2a86a3d6e3ce4fe64120be60872fa07a3f78a112715c167fb6c900698ba1afd824087a4cf733335c4a6d5120e3b29bc42f3b3d5db79973e4e321e0910a288d18cdba172d060283c4f4c6656e9175a18b756b7d06251e9060bbfcab04978853eec6032850a0e757bc0c61ad38aa4eb6bb6d907\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 2ae8d95b19cbd64d0e343ff413fffb85d8e6713c06ac8a1ceba7f3924fa740f8d2b3e120fd71f22711e795cd6468c5e263b1a5ba6ac6b8fa9e23d2d6e7243f510592a61d134e68b8ead00612dbf38c5b7302abc3bf33f23e6d4816a6e3ddcea6482566e84f57464f7d56de4cef0b2256ef21874dda4c131a47292ff8ef853f93804483c8e6373d39ca3a22552e75427b812b861de6a310ff4c366f6f6604116efd9770170aa423554c4ebbd2b5c0698950e66bb5b7c5c346285d9f5c35146255736b6e818e8e77983c93b21e7f60b04a7a525598e7fd8049b181000bffc7f3753a504370f6bb70617ac8e914deb05a198a5758a459c9fcd2fce1aede48e8a852\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 095dad1fd82bcd36652a381b7f4dd656bd89b40aa58b56da4f6aa8247874b935e65d2b86752d537df7103884d39dd9ad3d65f87404526b09094c5615c6249979b0dc58d2199ae8696a5b76b4bb03eaf08c2ab6aec686c6b1b289c9b44f648bd30cb1ac6a64a73d68e59cd05e7aa1b780f4bfd7b83dfe3b884ec11821a93dc5bbb47a00eea4557b6b96b5656276001f1f295ddbbbc511a99b9a665b9c2674c8af0d812286d0be3ce74817ba2cad283757de35dfb149f2835f60cb03ff155524a57f78b148feceb84cd20b0ae22e3e48f433fbd9bfd60be8afec93165ee0310be961d3695f309d031320c830aa6ba08b5a51d943797097c57630be391bd23736cc\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 8a0e82d4f334aca72a718b6f8f643f69c6048d619d5eba71263a5d2d3ac7a7af133b780c7595ca2c982c006e861948f543cd0210c758691f9626842c25de2843ea314ca8eff285d47e0cffa54180af416004017034962a80a5959c3d3f1bfc154a4824462a93c014f6dfe920824f414a6e30e0e5944d480b99949ec7bf64c4a7461575933b17d7d6b0178b5192392ace3ed8469e8ac1dacae51ad5d3ad73dcb213e056d04596e64d8c0703def3110c7cecc93ba8ac8059f0f3d66b89d8712c62b41d407e4b4a104f4569558b0290c213cad6d0653898b9df8f4a453ab07d13bfb7598d505abbd0c4987e4f1ac66e1a523e113e370ab7cf990f0cc63f50f4f0a4\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3a380c29ce2f304f33a08aed4bd92cc6e8cf56596928fbde6b640cfdbe1dca564cb01421789c7fbb49856bbafb34da6e1c8351fb12f79a4614c33e50197939e237e0b987efdbc042bdd09073f02624c520f1e9524ec1cd10e917b9237166e3689afb710e6c4ef644e08ce866da6dc8849e0b2b4c6615b0aa803bf112e9a4883c8e60660935c43fbae9d939fdce49af603dceea05246b220a5cf99044f0c09dc98f3640eb23fa218d1421adea7898563144085f2c2d1c113e7046f80ff359b2f65742c58551ad62eb6dc6e7465553f7080fe100fcf1aad89fb079bfed32c8c4c15c84d2193de22385df91e9825717feb5209f1dbb47962df24f3b43c114417ae2\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 8d9c25235cdcdcc7ca2558c0be14f83afeb303f00c13106ac5affc952af527a0585cf4801104a7d019fa2e63fd0b923c061a24b8be7c3105443c8eedf4a033d3de802adfd80f872d3c505f41e3feb116f5d5f31f04df3e448bc7e7cbc2343f7dd4f4c3d2670ed3d3c66f91d626bb12a2001160a123d03b77d2a6ec53445db517147171e3ba3cd7dde902c486c74e8d8d33d4f7699791179d1df4fac78cda67da9138c18f2cc886", "3018e1739fb309408c62051b715096512602c5c4c7e7c394282593ec087832fd48b4f353d8046600e4152c2092632a79bf05497a13840e171047d79c23a76896235e9d5f0f56a78d3fe472fded2899e228f714690b40b66ee7\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 884b4b6838fb629fe42914cf15257111b502385d71dae543d03597a46cb10a6122f6d539ab411161ee278f16cd3b5f4bb7dfea0f907256d96cbdad1f1fb40093e9f5c97880814d86091bfa080bfaa5a955af9d15e9460610d4c859332c5beafc24fc9e02848e951eee2797246bef20dfb89e8e949ed52af39663f5f088690f1a24abf8a8e221582282127344bf740308d146d6d16b127d1639071037fdcfd630342ac134ec24791cb8905b77dccf45eb3ed7e9b2e72e60b5e19367fbb5d1c41853d79965530b3181e4cc7c24b198a61bcc2e63806cb6b3c76757737e35066b7f1bf0dd709216fcdab4f35d550b31ccfbda9eb8165aa78ba4b4e66e316ee07282\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 9947c137ebf7013ea9e41f1ce93fd29022e340e6ade56c1119cd826430acf9833bbc1ed05c1899757a79d3104c9b4133ff0aef7e1cbeaafc2ada2422bdf9e29926626527f947124d5549d9f4fddb809f84923aa335d331c392a5ae5e29cb0f503e230ce7bff114206d5dfd51b812f9ed5448d9100125a8cc2324e560c69f4a492988045c97ab90a2806df900c3b95ab95bd634dd0a50edc5312eeef6463bc4b62e54261cc67e9cb9caa9a0a7550183c9e03f26bd5c8718dd77f54290b3a27a054d7d3e39e8cb45529d585ac0e507b8688219d2b8032268020b68d2284f9f743debab5cd47fb3fbd77fdfe3a9d7984b11a37cce190ac89a472578a3332b150f5d\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 259cc7e43882850415f4d7f2321fde08212490f6e9929c37c6a60cf686eec1dee385fc513f5e4105f19f2d63565b2d3762080634306b4ca87f857912bc062f31de6cccae9b48213c1b661ec9874d426d74e4c23c0ca53abc8f7bfdfb9d32dc6b5559f6aec33a5b9445ec4490302af6893890f57969de00287203d8df9a511b678caee2a7d666d9fca912826216ae3c62a37f12dac1412100c966ec7c8ff347eb79566784ef86943e999d0d1aa46fc9e5b90e9b91f4d16bfc2d5b9ffd4515f1d23cd0ce9612d19c28079702e1bc96b98cd86a5708b9000a5d61777a92d7d033557492f9ab1a4aee6719dbb14e6c3b4998480a8d49013898a5418bc8c63c41c5f1\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 8965489287b5c6732e9269f3ea349830169f9ab644076423519bd18d744e9547dfa82d9bba9a8cf4e1ff5bcd79ce2c4168a8b6b1c7931bf4eff64dd18a1728715274a735b9f529a2fe7b02cdc2a8740c2f16bed7e0ef2ef003089a30937f04c2d0617f70db8d67ae9f6200b8279200a21a7862b7cdb406d4855d8fc950a10d5430424e4872714cbe07ea03f36689f756ae0bc09b08cf1f3343cac1e1ae6f943b5d0b2a3df116b0bbf2d433a8c03fe27c6cf2de2c0603b2fbe174a6a4d0009248c0a04ee4b6f393195955ba0818d5e3abea276d9eac469b5eccf6b37d42e38d840513d7130009bb93fc3d208b89429d053ec1fb5b635e6240b3f0021c7a243640\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2503d3586cf23777bcf02ac28f32daa1664ffd2e2bc3c34377d80718cd02195de3de6d10cbb057db69ca2bac07881497189bcd66b181972aa8def94a879dfcc1175aca14781a2abb39cd71569b721e69e9d9504b4ed54a58a4d8baa5f17bcaa8ca9524ed86cde37a86139bd62502afa770f4eef4293a0ba157968e42e77dd690a3920311d24013522295cb726e006a2e7f26dc287fd2754087f784151ac30188937c99cb20ae8d26db527d5dd3020742e8964f518bf13bf2cd36d99eacb1c81a6a9a46155894153d3c1a98e7671233febbf4f30bfad312e0dc4a9520a97098c634966c204aeffe7e55543a436ed003ce0772d9f57c8b0d3164ddb785639314a4\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 129990973396b70468d380897ccbe6930a485460bfc199c7c8efeedf81c7fc6a98f47c0afc29546c92d3ac2d93d8b1c6909642757fa52de1375867a197dac0ee58c5b62f12182a5b4e703ca981ad344411e2dc3aa6c456dc69651cde35bfe136ca323753137b4a28571eccf8d1f0cc4cb4977238dc33827f1bf670d938f5b902e6389c10b564608b396feb0cdca57f5bc3ad6bbb2cd324d531b0c5538de37482a09ce103ef6399cdfb404021c836151c81adf6f852f9a96919e4e78ce76aec77a48bc5eb224a3fc404373e28f07a1488ce2fb3181075b852a87941bd11735b3cd6f5bc0b660031fbf7671d3bb4f8c9f653b8c36e89320f7532ac0fab23dfadb0\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2a004204ec4ec1515b855f1dd802299780835fbf7430f8f5861a4c6d86adaf38159858810d8645a3076fad16d6daac69b942890d6cadfbd12affcc3d3fad8f07e90c2b1e5aecfd9716ac9a12349e4a4b29eedd9bf59d875cbf028bc9a1a0cb4f5ea77b7ad026f09a208d3d39477a1ab59329cb64e9edb6e7e552b8875a73490551df742ab300f254b7805b4a9ad72b650ca944289a9c7c5223d760baad3dea1fc36d2b5961684840939fab0ffaf7fbb7e181ce3b92d9f7eb833235d97431b76891ef910827d110ca9fc88f7e4f98e84d00a98a1b5c6c70d86d89f56bb4f33cc88936db2b7f8127d11cf94d91f56a07aa7880f6a7c3c25b0df691d8657c330a5e\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 002faa1b204fd30ee0d3d6d79274f3b498f736bf6e6b34c0ec6eb418b7a4c105c1a75669c092f52fb1d39b2247a8d5692aaa44d4a4d70b8f9e636dfef370db9315fc1b35434af3ca21afd366c3295424bc1230a898186105a07788b92bd42c56d5b66a336fca64fbe58a843f391fcb58588466e0ba484502aa26c50ae35585eb95fe0ebf248b7a57782373cbac21a00928a091455347127910eb0b9ac35c1bac4a99eee0b718550ad282b4210eabe0602823209902b2bfac9283baac38940800515877366117a2d383e8f0cd09de7c946cff1eada4f1f97c44cbb3bf3562ce21af7f499af8ff40e13b907e5f4d1696dd52e3726570228095b89d4ed958e618a4\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 6d8de4a2cc01e33812da2d364cf3cb4fea7c6f37b4314c123eccbb2e4e9ec5d593934c60dadd5fef2a273d01447519573f701d398cfbb72b0c19937e9f7805fc4d354e292c5d0fc18bb872f6843a9211802f5980538ec6b100e3b2b744693a9b8d07654d2655414550a1645f047c865291ea8043137758a13dfb1652ef7dd42182603ba597eace857f39a0b7ea0c9a987326f55358910cb51e4141653e9f3c3d73f09686463433520ef0786163efc39bba3c62cd5c3599678a28b90470bb6f19fa1a56cf60e8c3465f8d7082728c20730227a2a3d2a6a4cc50fe0217f35a45459809de1f921ac5b6aa833a85bda15e288abe640829bc4a0af1aa9b3692a414a0\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4c698321f4342f64a87fe6b199d5800af12d39725e449c79706e9af98b51a2d0d724663ab87618b06c49d3c1b98d97db35fbd8746c1d9a61f31ead8893ecc072057ad4004a53009703f66bc2b4fa7fa6826f54e8b873c79bc19ef71fe61a182a8be6cdb6dd35d87d1f46746022f98360f3870f49aceac4bb1a839977af2096539a2d182dfc4bd97af34ea075ba96c39c4a85b3ca83002f97e992c110d40cb6c668eb9fd022a4ef89988095e8c513153f99e37d9cce75a7ffa0a55af6b7d8314de4690934d55895b99cb0882adb346feb8af0480a4fc46251649d6cb2e4358dbadecf27ac713dfda9b8f40cfecb642b39bc1cca681d5628f4fd30e8788635e937\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 43fe92f5ab6b2583fbba40b493ce45f9eb5f9e0254c6e2547ed4b9543a2c3a927d5b9c1c12525f4f94fcddcc4c586f4e16626ef48fb0688e07eccf77dc65a26c28f374aa4bcca05c72555e7f54d896065f3d44a728bd2ef9c8adfa698b963c16b13c1d5346457beb6a66c964330e0945dafc5bf75f4ff26e84c0a8bbc854c6c877ffad409b11627ba951181939ba9a2e28764de34704a5575f43f70c3f4bc5d74f4d651e25f32fe238f193d4ca55c04463dafcc2bfe50e017fe9d3bd319311bd2d972f5e04d8324a4b26842fd66115ebd139440fe89bdd55d10e14aea5d9e3f6a5c5fac4acada9d9e2006e6a0c36f4b94956493c9a582eab35c69c9add972d40\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 64401a452e3b56bebb1d5f3cdcac3dbb0a6f6e81bf2fe938143b9df7e8f6380687249a0c30a2bc5ba0fdb1e4d0fdecfdfc74064d365fb8dbca0cefeec0ba6fb4f775b4650839f03dc681c1f78d298f6c789ef4734d0a3ceed09ba8850671911e5e68af41ba2f37f3e56f7864fe4775ccc6af928876290ffcd20b988540c0146db97e333da0eadd4772cf15cb494e366f1f3bae740dbc69cd339a5d1f8a5e608cd61eafed4e85886796520ec5ad7240d11f1ce25463b57d0723509fc368f8f81a6c63ed2c61a216629dcdb9fd226215f8b248e2dbab5cd4f62600fbf921f4fb666384333d92251578dbdc5dcecfacc2c4435a211cc984346bf254b7cd52aa2bf5\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 8998ed832b496be462a431b1b32c3696374d816bbdd2e348d98795a5ad27b02766aca9b161d8e8c94370fa38c56ab0ea9aeaa0bb37fee33a7bc27024024d321b25504874343cbd50dc31ef1429b16e2ecf53deeef15b4a8e5a447cc3f1b212179ccc5ae4a62e5af2127c02e53e8a23cec5f1863ed53e62f472ea65d599272a5e4c0a0802553f31dd22103b7fb7155fc8ef4a3a7061f78f6e72c265e561436159722da4b8850204a7d85f7d45c18f5ed4e452cb146c47963e38cd29f2dd3652720fd4206bf96ba2c7601895c8771d1b73f03fa88ecf81b8a8f2f290094d85521048ae0c097460cf8340ab32262115b5332abd75950d46ae77ff03cb618dd69e52\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 09634aaa108980fb190dbaa425d9908a4237a2531c6471ad47dced90ff65e217baa0d9a8b5167d1c07fb414c88214e6caeeb6", "a1809cbf28f9c6083bd54cb2fea79296ad2dc1e27de2e96c056842ad7694391b40c6b6a6693c64fc1e3dab13185f8c1406ad4d2c39a04c3f6437519489b3d6185d9415d97e9cc405dcafcd488cc4b93a9df5100c1fa8dd31c60575dc64067f2fcd26d1f5c44919a4e28ae00688487c279130d087161137d6fd480111d45b03057bfb7f79ae75362439775f28e84839156b9f1fd1aac698f1b1874ca19964d30a725e92d4ab784b8da18258291f86e0116c9d3d4be6931568c109068ec52af3a26aed5ec136abadab1688f06488a\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4e63d527dd005236fbe35e838f51ffb09afd2669b684d9bf7488ba49730154be9147a63dd33473ebf547272cb6105b114f72f544e4568d45dc814a3c5250acbcbcab008dcaed3458e02159bf5be9e4b20420f9e4c075d27bb980748528327a1bbbc93f63db57ab03e7fd86c61db3ff8c39bf7d818a26d573fe57f5010718021e45299624e25a2f5acabcb3a1ca608fbde28d13cf74a3f58d283fa5a41e875854cc480c5948d2c0d57f2b857988a28e34a7dc5159c86ae1f970f3e318e9dc9d29641a521eabc66353ff0dbea4f237bce4ae546b8d05f6ad19a4ad8d4cd086b22458b311eb970ca33c484f0b9dc544ed4ddd88e7f70edc32702d66ba570b749428\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 467e9fdad9a1f83ffaf7622a156384920eae46b89f63c3fa61c5066786c34108ff73213ffc7ee9102f367726854aebdd9eaed49b32c88517e136778dcdd7e231716bd618261615d029241a77f148c1e5e39777a9f85fc3d4e9320f2455cdfd3280184ae17e35bd9be0a0a0d1c2a2d321a3bc86588fce12d929de1a2f473026e0920b1cb8b6dbadbe3810af22a3e95dabc9553733afa026e0c7847493182aa1f3057a3b227775a3d7ba139c1724b3196f6300ca4ef457c2bb3f09bb2be6fb4e7caee6d4502c962291da0e499213209a28cbf2c4adf5d559e44075631c3035990aceca49bf6161203390509a80bcec1d274f1e9a1bf26c9f59244a695adb2c5fb0\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 063b7dddb7483a77af978f1f09180b98557643574b40522da25e8636d5e5a71888c79ebc5de9ba6ac0e4c30c8dbcc4399661b117e4252d980822cee7cbd4d2aed3a10f91011d11ff92228d02393cadac68030123f52529d76ca2d41546cbfbfd28a43c5d52026ff582a6bcdd10a3dd944fd7232bb950ed162f8827a5625ff322bf98e079dedc770e4d586a7f28b4e19452a353eef2defdf56e0d07dc2fe5625d91651629c5b7bf6e180dd27a1cb51787ff264f0138b46bbbd32c5e1ea63722b4baa8e235f27e283ba6c46f1af28bd744e2db92e326ee7139b9e5370fa5b5e2c2bb79b60c9f9e305a8acaf29340edabf7531d17fffca6f43ff07ef5cccb50eb32\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5afcf0d327a427f6d51b87aec24789fd7ebaca9c4eebcc307664aa6e92b6acc22b112faa3918ea3ef24552665965842639a532a09b914bcb3b953a0726d5f88eeac1bf65bbdec56d55bbdac534da0f83e182dc8cfd6e9a59095bc82b5f0f5f56a1163f716ce722d80394a712bf0d5d24cc13961079082e4598c8df5510e20febb3d1a778fc5876c65a3e1d3700ea537c8d67f7534780fa8d1cb0ef9c39e439dcb8a4c8b76a723ff8309e3f3cf39e6cdd6e52edca5308aa6be2628608d5206e82251f9f7cd711183f3604d83e1c23ba71041b92d33a695225b1a3f61fc742f969726d79504b224be259e9115f1988bca3c1e2b61541527227c3d629b22a95791a\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 543ffa8db719767c9eaeacdee487311bd4c1d3b6bca2a07c6a3989eaad5f39042dae40b45a9b5aff326a2994f36f0a2a59ff3d46a3d4abc705d26afa3cd35a35bb662292c6ae3a47cea9b32de37cdadf797cf72c7c62f7c9b61024ad8c7c82f5efa27c8dfac28840677116183f1f0721fa36ccfc13ee5863589b0433b20b6e1c954cca97b3796232a3b0b2b6205382de80db8487bd00b620a4b423acfcaad649a683b915de7caa65a4efa6b0a1249a6d90348171b816deb0cf8c99013ffd84b8ebdc660866b56545de6dc4aa23156cd86c5bf3d5765ab48d8d601f43dc898ea6e05fc0460a28bfa2a776e8917c59f02f1c8e1cc454558658768acfd717718c6b\n\n# tcId = 31\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 5f912ddc495c20f1975219b0b5cdf0629585a98d5565e8ef2c98fd945cd851d703be32da38e6a376c1269734de5e72734cc685cded8a31d430f526dc3788dc2b54de838ce6514ef970afecb8bcc0b2cfe0c5e8de29d2a6c009813050114374e1db8d7f4cb714ab291a6095b7e2713a28b5dffdbe3ef127307e10155e0386e3af886cbc8e1b9b66086dc9c48d07e460fa4cf66197414a4e1a72f6bf09ca94964d668666ec1daeffc52a3384cb61abe1a4ee0c26674df776c7769fd0c89667a421855de0b060b169eeab02ce0005a1e7d7a126c8583da8a4900f14fbce7ec1b4120994ebebd3e97e0d9465bfb53f2ebef725a10fccd0359a2724a9ca18b2b7f715\n\n# tcId = 32\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 5dec8ec2a5ccc79cec9d4455a2479f562c049430d572b98e5bd44b83ccf6a08d94cffe4699dd29568dbecddbd28c92c771e37e2ce716ab7455e4a92ad87f9e5b76aa1ef1a08e3a77633bc71b3756e3ac956eb8d5974cb50b88a6f49f36d5d0e84bfc4d379621fde3bdfebfd9cd916e1294c854330218d50aef788aaff97e68f7cdb2e7a12e8350dedad00a0ede2d72fe294effd152ec33f95d66fdc648904c657eaf6fb0c322f5881bdc1f16305c3ef90c3df597a0e75222b82d79f5d6dfd913b2f9620092f418a3e67c48823b85e96b1fe85d306f3653a799811a1ed3dc612461383a6c1eeac737dbd2c6c20fbb56567bf544d199a474bdc38621c8b9bc7920\n\n# tcId = 33\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = a2ada8ff1c1821fadf49dfc156293dd59ac8f51367633f73d2200bbb65bd960f7b888d1a843920044ce98528773f3d3df57de92f129c03e1f6d425d39ac83978c7c8ed7cdcc8d47a778350f99f8fde4f6028d5ea77d46091f98f72279c59fb39ff8f73b35ab1c6748970d325c65ff49fdf833e8c2f40621bb770f2dcbdfc34fb22422f0105f5f582c90be73e664c215cc6d89419a8909f0d13f6535182aa567d4e16a2f7ce1e562a6cda4582304a5cef821c538de46c68509f3936166c109da8ef13f2000117644024ee1ec10e8ee4056879c07a6604956e1d03828dae5ae0eb60c322dbc6ff183a57b258c06a2b837021d4df94baab66be636b505a5a5b2697\n\n# tcId = 34\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 743209d44a3c907ca08c0b236b9cbabcaf210bf522de862005c977bf7099cb7a38eb9fb15b765a044703c9410082b6a35a7866821f33bc2e2a58ca8bde08b78ff6b3c53e771f8d7fb43503d8060a884ff6012101278564edd6d64fabb6add5f4d4c62707c2ffc45f904acb43ca2ab5609a23daf9cdc58aaaa638f6325a54a5e272b253bd57246d0935bcd19c7aa31f878c474c8298ec567b6a7e165c2e7eedcc80748953c90d20699ab8303062580d4693c058ac761678df6c875bd91d465430afc93cf0bce027ed00a35842ad560d79bb640cf3ea55d8ade362c258fa707397663fec6787d44ec075d857a6fc55c50f8df898da77252d8903220641005177e5\n\n# tcId = 35\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 098464aad869fbb37c36f56d750ba97ba6bbcf96c9e25d92fbd5778fcf214f6a24d1fa276a14b5945320eeb37dc9ce4cfdae21ba57185246052ae26718b549a59a81cf26387356b3d3fe39a45cf303741587e664244233fa2263cfc6f209f796112d61ca5e9f16e362765b0651e8e197920137a3842483772428b1088e7c1a7aec2152b62688c5655410ebc4907680753079706931359e893ac76ebce92a3572c7eb32c58b386d7ab0f3af24acc5047258b5b7c0db4c1ea4a4b64203d65aaf6c879ed89bf046ce5ffb1c647e95630ca485acc9fcd6beb6a5d17bd54fb518cbfa226d9738beb55325f1883ceebed860d54f5db3f1670ca910762d877f78af80d7\n\n# tcId = 36\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 498209f59a0679a1f926eccf3056da2cba553d7ab3064e7c41ad1d739f038249f02f5ad12ee246073d101bc3cdb563e8b6be61562056422b7e6c16ad53deb12af5de744197753a35859833f41bb59c6597f3980132b7478fd0b95fd27dfad64a20fd5c25312bbd41a85286cd2a83c8df5efa0779158d01b0747ff165b055eb2880ea27095700a295593196d8c5922cf6aa9d7e29b5056db5ded5eb20aeb31b8942e26b15a5188a4934cd7e39cfe379a197f49a204343a493452deebca436ee614f4daf989e355544489f7e69ffa8ccc6a1e81cf0ab33c3e6d7591091485a6a31bda3b33946490057b9a3003d3fd9daf7c4778b43fd46144d945d815f12628ff4\n\n# tcId = 37\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 4da37914ee4ecf0c0973cc89f9476e2d872eeb2fdb3eddf6fcbcad9b21b8eeff2dde26be6a26d5d5aae6300b4caf4f77f2ab7907af2434026c3369d76268c88b1a4c555c9d54723b17ac48ca1118d94e147a4c63c2c4baefd244235cde4f9c254bce8c8c21b45b7a2fd9d5971b21abad1bef74b9d5583d352ef67483ee611ff3f97198c023cfc56c667c81ef03bda4729b2eff85c24e75aafdaaa4c0f47419d8a63fb2ff72c074ffe985ec7f88bb0e93cfd375c656137722fc6aa45069771c6c66d4b109a5dfd8500331d8d840edf9a5c8024b2520daa56641ead240033b0aa300ff3f951009ac46a97ab9311f8af9467b8ecbde36c9744e44168314f092529d\n\n# tcId = 38\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 1aff9b9ad34e142421069661c71e35b98108a8f976191b45a97cf12e8ae8ebccd64c0fc6a795f4ed798fa4a2f79746c57a86f894110c1a5402dd72577c2bd9817a9e7a1b0b7e389527428140d53f4918b305e154f7c143011dc27ddb874c52b57758a3f4ee4395108897f0cf7b4fd7136ebf991dd9758bd2cb85cdc6f9d96a40f8e6a0c12970c18325d5742b80ae499da45655f972f33a80373a93572fe302dca03cf7e004690618c5b725e3b9be6e05dfd0ab8f28b8b994ea202875268837d3876681a63e88a410a0bf4a4c41f7336be2799c6e62514a5ee0422cb6d5c57c2e45e9f96d667f8629e0987421f01a9391a3334d", @@ -8593,9 +8903,9 @@ static const char *kData309[] = { "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d4\n\n# tcId = 234\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d6\n\n# tcId = 235\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 5e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848cb1f\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 57e8cc1dc00c07383d89a79b5c8e4f5bde2a2ba55a3c7201b3291c4d805b1b2eb36f8f326b542342da180abe508669bb6cc2dd54e327bc70c1e317ba93a0fd21e7fce22a0c597c7420d1d5602ac43d9348ba3eba561f250e301ab955b0dc33e4abde32946b9b3e86c8bf07a44646ca595960bb988fef04b2824967e9da8b0264f1da0659373935313a574b5380f0b54ce1bc0dde423bd3a54f6ae5fafa772a55c1c44eb6edffecf13e6e5e1edaf87a79e338577304141fbc44f0e9eeb286f553f879addd6e12e436fa3af51ad53a72f2679f0ed102d504ee08706fe111eaee49d880d1a0b91924b3b79968ed0f9bff446dac199ee89b158c074927d27b864498\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 68caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c6d36\n\n[e = 03]\n[keyAsn = 30820108028201010090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d0030820108028201010090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1020103]\n[keysize = 2048]\n[n = 0090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1]\n[sha = SHA-256]\n\n# tcId = 239\n# short signature\nmsg = 33363730\nresult = acceptable\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000989e7ff72e67e680bd21d5f966e4ad8a48c3592dbacc4a2f035b4ef4d17a2f25f8a9fef7e78eb99d76d68629ed02d67c43c4b7ec8c3badc32e3d0a524c326537739b0fde156723b27c23ae2b09895e470c64d700f5c\nflags = SmallPublicKey\n\n[e = 03]\n[keyAsn = 30820108028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d0030820108028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d020103]\n[keysize = 2048]\n[n = 0092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c26712", "89bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d]\n[sha = SHA-256]\n\n# tcId = 240\n# signature is close to n\nmsg = 32353934\nresult = acceptable\nsig = 92bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240b8bf4bb1a6d0616fd5be2f081dc9ef741a9a4ae7274418b791432de470c4556463108388e8e8ed5dcebf3558e4650c2ac97c86fa682176f09b5dd8cfbf15d19c3fe4f961f4607c12cb3dfad9b6a0e59c92faa1fc8622\nflags = SmallPublicKey\n\n", }; -static const size_t kLen310 = 152041; +static const size_t kLen315 = 152041; -static const char *kData310[] = { +static const char *kData315[] = { "# Imported from Wycheproof's rsa_signature_2048_sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8rc16\n\n[e = 010001]\n[keyAsn = 3082010a0282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001]\n[keysize = 2048]\n[n = 00cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f]\n[sha = SHA-384]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = c5b6f5fd8ea320880e9e27b0026b1d63bcd1152c72855853294b7683a759dee042be8bb0c350b0c31aea76e1ba2c6d79920c3e21b6e97b6cf46fabf92a701a7555540dd7c325e7c657fd9a079bc5a58923d2ccaef51014acd6fc6e5296960362a94688f2cb2675d5062c5101c3875399b95143511e6ea156ebbdd32c9ef8b061dc66e2c912bf2ae37e3ddcfd5f32a72412db8ba7a1ce3b44ea4c6e2a858b3f3cb198cf41914e4970b03edb1bf81f8abea6371b469d2e80883d7760c0707dac808fb55e588b285153b8ee5c32ffe90197991a567499d5ed62a6b810581901cf8abf086ddf84c10b03ad6845c977ec72d02028308cbd19daea2668865f00a23ab5\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 0e8742af2a1d82e99038a99a09bc182e21317b690004fcf8fac5a4b39c6c4c6f32ee0395a42b8aee31a7af7cc0b0205087b4cbe18e791c1d5454faa5dc220d3b21e44822d39beefa5e90654fae46205631c4691d3e78221f48edc14e342ad42dbeccfede07420b9352af9e0a009c49cac2b4564732d94495457dcbd2f67fb60fd77080631cf38b784a3373b66cc2d1ae971a7422562c2df5f2476983263f6559a8fed69c2c76806f8553b5f1f2239677f1a4a3f5f55a00f8391174fabd2852503c9dc130ba219d145709a4f045bf62b2278d1c9c5c2e7a81f47769b2a11b18bb8648a32eb984ff7aeed9c0ee1023886e6a402812ae6552b03419b4da25cbf3bb\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 943aaab06755ab012b4e062210ac3e2c1a455ca30f1c65beee0f7d54384e4e0d4e390208332690fef5ba0cfceffbfe28e6b05a1ecd8bca3a50f9542f17c39d28195a50203c7885195c7e84da26436bc9fe7fa98a5070e0a1b6f51d8ac7d2734fdb5e0b32da0df6c6c98311bc4d458b4e970412c67732effe67e083123bfc69ed164090be3d41a37bde52119da16a4fc7fba5d8d3ab905bca7b1bccf4699a8abea19d0ba0659fb6c94b4ec6d06fd086958f443a74a783b7440f6060f01cb9dee89f32c2f6fee61e3d61548fb6b3a0f6b649cd8bd5d5a5bbc016f4c737889c79d45c41b5406129066e259dfa06fa2ec05cf9330dec66ed4cf89b80b0f5dcd22c4f\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 682272b36ee1a6c7d4d73f0f3f153d8e84e2fa4ac812581fdda214a7b45d6ff7b7b3db0c89da96ce2e651fcfe25596761982799289b9fd2d69cf122e08404c9db0bdf6f8240b1545e76302a5a401ad56522e0a6158157dc1f9445f8cafc161b25423d35671d9ef714c5d33f7fc155424ab2ac34e0cc93bf2ce385721dacdc6251c7e3a5618bdffc8ef3f278477083a96de83303b9d286e64d8297ef0948b996616d34036bdee5538ca0c06fa08c72f03739fbc578814b402671f5d625dc9050d61b389d1f0a32011ac0dbb53b9c2980d315bc16e2272206a1a955ee870df725e78a7c6e9f793f5428af92c670df8e3bb0d567699714b04fede399f49fe19d0e7\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = c86aa0513ca2e6bb14892ae983212cb21cfaf702eafa5adcf17dfcb7ff53c1fc87d65001c639a20167ec97448463ada9b20d40d3e13db23d8048e38e5c05aa42ecb10d1683e3f64d42837274e1e021b3523cf763d32ee69f92180a9e3e6c6ff891b4c0f9f30a7840fe2524bdc0e82b0e19acd041554f4050f6d917a4677155c6e7841639cf86b8439a4a1edcb24ea272775dd9287291cbdaa79e97ecdbd97522e250db7c8d32658891a0dfe7fd079ca5a5284097ad505c83bbcfa82c0ba6cd91abfa0e21178981cd5c635433cffce413a3e03c7afcfc2fca37c7bd7a5287c13813afe3aa5d051d386e4250ef1617c0a58a24caa33e5855c32b457b1436d11d94\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 801ec289191d6f6e2ed3d7ba7d8cd78db3add3022c8387f592080705eaec1dca415a04e09d55aa6a8c90f11730e9eace7f0ef892f44377085fa8e72236b160382fb3bca71b71d775e4acd75c0ac133645c64517909530e0175a8f06236839de7f7704f39afdc4720a2d94c258188cf9f0794c279c777e5ef604a31412262cf871e3cff8a0fd7efec06eb1db05b50910733dc8d8783a24c07871908e711b27d0d1ebde4e418ce1216a5bc1c8c85d82fdd2b8bb9f0b047e8b38fcfb80771b019d154a510f2231c6c5becbff35f2c5b1f1a5d5280d0d8b0309db5294fd99b1afe576bbb85e980c4e9ea49327343084a6c29743d3e48316df0623776e98acbc84382\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 6ec812ff1115eb60ad2cc1f641479aca46c41da5d8f7b9e59b2dbdb8956f5c3ada3fe162c54bd5835f5e043ed3906a10a982e177f5f68c94ba367e4541b75117dbe18b7acabce6bf7bad0bddc4a1f98382272a655e0222ce4a87dac7f6a2099ad9996603479cf8454102e7ff703d11623cd59e3eb2df8a303732851a119d6c75f7503acc10c57f2cc418863e1b2a5305688c03fc9971334ba06541cb8b3cd192bbebfd5e9252517b17d2b8a3ddfa1533784d6f672e14737c4b6bfc38162ecfee2e97f0a29c98bc6709c922f42ed959bc3cf43764627a9beb32e53d2b35da63942006787476ce89abb7a82ee02e6c9c80ab777af86c1a99c65423ed75fe82acb1\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 127eca0852f26d216ffd2779159e3e3b742a830e3d4f29e9aebf4d8bbd45eda195002aac8ae5d10cebbf849b026caa37e988a7d5c6e3c0bf4f6da974b31a8139a85cbe62e0aed71b9c50a5e3bbfee50cc465d9a5173a33cc2952893e89815b3d68a2269c78dd91d3b8a9d9fb74bed451481267b797b28460358adaa90b82304a6182a5d79e113808adf31100d0bd943608a3a58c2561468aa379127cf8891ba61c2de46e66a9e4d86da3c007cebbc2ca0b8bb66f29b2205a3a45ca7303c0db32efc1e0e254e0735953a91f4927901cd78ab0ed2d047c822dafd5bdaf34cbbcc227e7711267785b68c2f9ba47ba108ff7633d6de61d453acf48fad092b28cb70e\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3c1d887865eccd6eb7d794756f93819c8126fb018d483b6cea67e10364d2455505e228c95106d493538c60d1203ca317aef7926e09e088a39e198915fcaaf316346db4ce62908464838efb7bca14041ce4477fd55422b94396dd79883f9024d46b8f9838ca7b5851e2d935329365c917ca03e1c44443a9602ae1cfb95ef89d9c7315f7e0b287a39d8133243c75ec0303339d88e937504b118ecedef756f746c6a8b244d86ad9e02d02b24ee5e616455deea86beb334af9e294289cee20a7a135448739dcd48400da80f15e060c312d4b981d63dba827ddb2751a89bc421ca600dbd5cc8915a1da43baa34d09e668d2cf5847cd55b705d5e7fb7d355c42c88d4a\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 47eb6558bc35fae214cf871eb167e0760a9b51309c805d7439bebca18ba163972f2fdecf5d1593933341553971b3f529e82850f519cd60597dad8a5920e567263995f7e7f348414920442fd9e4b0ec3b95fab248261913e773b05206e832ce35e5035d6f023a3d768e85b9588d9c5ac4c7beeb56ee14cea7744daa600064e9be391999bebc1786d3d2fd0a7d4ab0bb47ffcb0f3802503a0b3124797866c5d9c446025e21622f4d1cedfce4ad930aceff37e2e1f95dbeb1d4f162e542d1e6e47486766b8d6e0db3e336b8eba57a22f4e44a646ed6ff8bef24394c23059c8c6bd9ccc28a355d87d9a39270ca88834a8f0baa50af19a44aae9d5fe3961e25a9a070\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 4b09bdf2e03a21c695d457aaff214b4736034dca0fb9cf76763d623d16f49f2735fe831f9990f9b84171ebc39f5d533130a9b8b04adf332078b48a7aef60355683bafff862da9e30852e1e3a323bc09838679b687a6615df4b9a71dce533aec693345c1ceefdba7246eeb49b64848359b060fd08be04d4446241573d3445abd6bfdea24d490a14690e50920948998cfff43ba080dc20691841a739f6f134285eeb6c87f4e1b67", "0f2556b83b99ff76d873033fcc3953cdc9857a7352d3766217d987b03fa8fe6f90a4b7cf8bd55ab44d800a0c245ab25e91b54c0dcde0b3adf40e3f2bc8776f501fd419713a5445ddc0cd0e9c414ff30f8987071857050a12837\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 756305930024f3b1e17696ca04fdf72445291c2c4737277f9cbbd6c8e2036c3705e1630d47a6a4b5fe2cb1fd071303e4c70ec49378530cd811ee2dfb5f1da6aa66cb57d62e9a96d88c6628e23e1daf8ce536da9acca8d1068e1e430e43b469a55e311fe794767131f53e250ea99e5eb6a5f09e37a0d886ec92e0dd635ae4eb1bdecfc9a4b45b8fcc16245fbc5fee4e876944cf663a56bcc68f3e6cb79d96571eec6057922dd0841aaa126c6db7daf00c373ffe23d8dc7f14c2a294ff0704e5d7636c9108b05ebee13574b63362b547e4173ad37328241fa5cebb7ddb6a99dc52a4be44d3f2e0cbb823f02352fbbe31a3646e0b3988ef0f77445f4e5cea12434e\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 8f9c83a3a017383a5cab106589fe076c15802729be880120b956dd69d36b822022f58f6486cbc9009fceadb83b92883b281e3bd998115e522a1a3199b5773845aeb54331bed863baca87d6de45f387629bf6f328e8f3b0698fe2e96e4faa95d61d7afe105c15f6c3d11ab561bdefdeca453f87e75945ab1746fcc559fedad0be2a494b7b9b9c0089e131f86eb6a0a422da225390ada5559bc64d1990f94ffbe77d00aa19cf1a1676a2362596b32187229180e5e8944173606f54a627ae4457e748c481c3cbfa7416f381157684eabf87490ea96a8a032b1c0c316f99eb18b9c30192094fc8606bb86bf5445c10fc5e9025737fd52b779a008ae60e504b92c3c2\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3adba4b8e5c7ab81ff38544b299ee14cdbdc7d44aa4592fd32295a0e20ebf23d20cde4d26e752e3fc02a67bbd3b7fe927d2388d27f8d9d399ebdbceca97df4b5f1a4d5cc27fa5af84a8e39a32511f36707e8b23b6e38cec3526a15e557719aba13237620222b205992907f1e0b7a52cefcdd63d7f9d951ba528e707d179be671728708c1730096743494fb0bfe319fea4b8f02595c70dd831690c3e692c7b4f18f77e20e063d9d634b966cf14f4d110af8d7db642ad1f952c498d78f27838b84bfe0a9f89fea32cc243ac65e0cef7be743330a19c51a13a747e81d341d17a9204d167cb4006210cd8c7d6cb43d347cf80351041f98efe1379cfba9654d4a3e54\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = bdca4de4dd3bba08516ed45291cac24222f7978f0cad43c92cc3e11b3812ec5ccc196a59af3eea5217d66527776f630cc648d01803767bf1d97e341d6e89f2a4c0bb4ddf4bbec6e68b0e608119d3b41a2fd41da75e157bc3d7f76fbd29d9a6e60e1c383995dedecca3e5095d20978e7be11789137f940ddc8d3bf06eaa2013334530ed945cc3970e83d66f0f181e18c5bbe2440e0f04f472d1b259ad7af78ce7d670292a2894591d5055d5a0339e3321471f48043d92990fb6c3fbe41a3fe92597202e0ec85d0ecf6bfd88db54711cddee648540dc7f2cf1bfa9e0d96773c6c03884285d28fcba88e93e9238bbea7d07dcd36d251e39345c28bddfe365e04f12\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 648eed9f390fe7fc14589904bd72247c3a81dfbb0e84ca13796fbf4d248dd45763b2dbc687ae99a8594101260fd0b3a398ff2b6ec9bbd82099b5b44201a5bbbe8421a686bab7423663d45cea77321e16a155612af9443b94c7c287f73c6c5d3e0139823c081b91f4302da9a75f0e79633fca4175c2fe9f6d4657467ba38eefa1700b94f4f7882892e60954fada4483c99ae0b05d0ba46f774832a7e9fc8b35c81ef4a7fa073ad62fa2ea25143367c4d4df39090d34b40d48ec28f58073339b8677455bec559fc011320a53303c7484bdb3f7f2858262a6420412396f68c3a9f826d5e889d2c8599acbfa6705a7d22f1aef07560932e742a831a23f53d93d20bc\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 28a0905a6461f258c617cbd3cfa963ab3b137fc270296a7b5541c0e01aaa856a348383617dc987011ea42b58e19c49268b1f527ca54acce5e928ff5f122d0366f2e6f656765a73aa7ded1f2d0053015fc6e2d68155c6cd8819e7a6e51c485fc0a620f1c2c2973b21ad463603dee7954fb8fe83ad4ec7d4d860309d498e8d8c3f429df3defa7ec5ded39fee1d5a9aa75ae8ec9dd4b66e52f711e2bed712c43b5fd06e0fdbfbcfac5878d989102dae62307dabd0214f184fe768583e06311d8e8b30738703e11d52919fc72625e418749043df757d01b405cbb01eb2458c09d21b2c472015aec4fba7f88146cd72a2d0a3d80ae1adcb5c29416f538ead8249fb87\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 0167ceab6b14960f1160f13ecbdc8efa965049c1db8acfc8b487b363b7ae7a95b34c51bb54c69ff8a08f7b98fcf63eb200d2dceb5834487b843e9312e75940317d4b507501e46cb23000a12f7042548b8934315b247d4cb443485b39f208487110cf08a1f95a90869c63cc8c52fda64f86a37cd9c562be1e8a813906da82a5dfd72c96c8770b08959d5a7ce72bed149c2d74db3f57c3d67c1e2fc31cd2f2eba59348bca4111176ae050d8ba565a71ccc131d92f9ebe95a32a4f37512bc43edc02a9d65d45a59ae431163a5e4e2b237c0023ebf6aca27af938d3fe855543cf61c5e17e0bfff32c2da92b54a3ab8b196479a66a2962fba50cbb8365879b8618662\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 4b0a379baccf3147b547ffbb3c6023332620a2722e373b8261abbfa31165224fc85c1e41fc495e197f921a8db2d51282325bda21acd2b2fae56b4dd48da9dfe85b7c2f83e75972c22275f8af6c2c8edc544983cf5a783e74793978cb9717c39271613937505814f1862c4dbe2fb7ec577e4bd41e3fa6740319f15042eb4655aacf1b4a45473090910c179fa942e1a0876162f162f44b17bf554e65b291e7ef1eecc0377004c871f74628e2c069ef85d942da5cbe319a2489a5f6d16c421765451615c987f6d84acbd919013ded88bdf1408ed2c0ac1fd701fcc1df6da43a6a802368c11965c62aaa798efcdb699dc715e5f10bee9355d14afb732f270559fab5\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 6dbe87fa8707ec43fb4a4c51f6ca422ddd0051726dac648e1985b5146f54cffc78a2b0335b5d621f3a4f3eb5add994e1e68a4223e9e79616eb06eb421183729f4fedeab5fa291aaab3e83af7fa021b56aa02384752bfdb73ebcd540953695127d8adad2914426f5e9ac30ab4f5feb36e4ec9d7c7cf0a9f50c33979cdca2f7952ac8fccc4180c8beda3772250d6c5a5ef2ca99b9eeeb90a81e2346b465d24a8a8c47dad4a67d4e6a28a46a3ffe432af8c7ffc85c1eaaaa26f1ebf495474d96ec04b5fcdf09a25d8cdf45d8f348805b9558abe525f2c95d3cd97900e62aca25b744b779b14195f53d555808d3c15c0c3aabfdd50801356310deb29346a445d5a93\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 49b6dde9c7ccceaf49528a6f74c41d83fc3473ada4896eb0bc239c62efca50b33bea31e500b48ebabab16a35182651c38f72803654e1440e30215b0c54738772dad70b8883ebe60680103fb328d1a990547269cc470e9b06e208268220ab46c39411b7f2b5d3eb20ad723978d13d0970ea57a96237242e9892381c02674f349b0211b03bef1ab568abdb1fa28cd913fbda24d94af8ef79efb7d76bede1b43db2f45b9a522368cb9027a6d1f2c40581647b85a99334f05400e95e2ad4a414e032a560dd2321387f3f2deca9d3a4a34d40be2dad57650ae12390f28d2e4cb0ee8bad7ddcb9d7f8850c75c99c6cc4e154d4c8b741e972cedb373b9ca64eadc0e5db\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = befa74da01ad7d06b1464c2684576dffc25bdeaaa766683710934a8ac4aa2282320fcecb5f512e94dfc84289b2da3fc73afbe9239540f1066bec52bc8baafaa5830e85a5c8f31cf89a8e548604169d7e43d94fafb67b3d031b994af3f3741fb0aa02db1aa12e674e1e7fd0662fe06c8ee641029bf9fea3e997c15a7308fd65661a10be4ee1c8a4510b27794a3f5870bc83c6db63cefd008ccdf4206ad7ab6686c8047a52cf913adfe5d17b4d3b38a7e1e4f21bab174f2afa9268dfec1e6c9a611bba07273b4f65a33db419b18304f3ca920a4b1c655a76b5a5eb920b9123a1160b4855ce807a62c8bea9a9b8c38f592284afcfbb550d79ef085f1fc9edfacca1\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 814446f1d99803bae8290074bfa3b562eeb7fc2bdb5ae95524a8f31694e166163f89d2a22d37636b320867abb881467f0426fe948a774e349b72564a3215e117e7c14e54a7da4eaf67363723afa19886ba47998389f8069b3a752a2cb9e7e688ca273b260312562ffc124fb6529906dd397028762ca34a8313c99b648c25822191ca6ee3e956d98ab813ded5bc298ea65a9bf949f0a229fbe0000eadd2429ea40ff66238201a2f54e93b560e36e8a207a7f4624c782359437e5139d8ccd2a366a9d948780148daec600de8a0c516f0f93303067d12dcd8d5ba0b484d7c87cae1e63e4868c0c829cb4efa8650fba081c649014b3ada38dcc1c1471f93def8f7b4\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = c68048e66a376c5ac3c6a5eca4f1a73fef1cc0a1db91fa078d5334b80db31f339dd74ea3e975893c4dc26290bce8053a928321280ae60ffed3437072a562dd30442e5d3a5b046d1f4f3bce820604999b087d3d02130ec4bcf6cdc19df28ca9c61d44b9bf11b8d7d48b6d535dcdb52316da25dab87f747082a83118d7d1cb515641177f2453e2391345b893367f6bd8063a24d78d041e9eafd6543c9d4acc3f4e7ccd45bdada5b7b046a86b1bb0954397afd12650dc1d6bde119d7bc681c3c6cb1122cd2c523bf27f017faaaa1f5aee8f010f4c562f81d67a04e817d4fdd32bc032b8978864a9a6cde55958c0c6863690f2f3507aa53fcf7e3f932e460b09668b\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = bb7545df9dd8b0c768d7989248106c242e0e441dc1de681b22fd50b576a3afe9c6c19d52c77976343a529cd6bd95783a7c24", "4ff0d3fc701eb18297b52a3c0a6f7fdc3f991c1c2d47a413263ff67f83e042bc98991620ee16f08b9f9fbe47ce37a90062848a0d0ad96a54d4f8077e41d03953a10fbbe15a8366a88fc12f82f2cc1ed63fb5c295c4b0b3f7c87e95a2b76d649fe839979b1352fea3b0dc112d46c7fa72623932f1d3197b0da93d0b87f40a8ff1575dbf53dcc69c800d2f616cc7b80e942c6b3501858a6ebca6972fa3d4f3c16bbc165ac91f61b679fa33f2b2f909b63fa88bca231297145968bbf1c74814fd691249705140dd89dd32a49116aa9d\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = c5514a3811c53e0f8372a945ef0e3641acbb60f6321f67d9dbddb04e1287f1b42d97eaaeb7957e22de05abcd9f85d829b43ac766c9907271a1157c811d429d5c7c8cc36d19ac2dd24a036a16be2b6368da44cdc80bf21ffac73c0224b6f176218f70f0cb70e864224df7aea9724b61943dac5a0d0def579c342ff1fe0810b6edde9be8f9bf3d36cd75edad327d60c5dcdaa0f410ad7e74760bf56b93e0d5b9caac25ba319aefc510d26d44e57cd8e89a7355eb3c6d5ded4be863ab4c60e6c754fbcbd086fcb3ec64a1d4f40d3c1d00b65e93f2d09ed45eaa295a5c8b09268aa292096a5c41b86618e493d2f683682b10b25ac9032448e9e0b76bcb6f6664042c\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 6acd858e30ee15fc5c1e8d73f0ef784690e047b0152938993e3e0db02c61f04f21ecbb7cd154b98aaccece5d4948e26260e0b19f759a5107cd4c365bb2ff6e5be93274ff6fafa1df4f26ca73d995f5604e847d635de7d6631e23397d95246310d884c7082893baacb46b6426f08884b0eb4b0bddcd01ee97b8182c55ab80b67f73ee0507206a5563f79167e9045a7ba9a8c9d6a1ebb85f53922d4a5514f4bb13a5f69154a2db4287e8aa95612fd7cb7addefc7516609c1b93844f254d630a2924cbd7b7ce0b623812fe4edc7edacaaa449ea949aefebb2e4b924b5ab893d5bcca76fd20dcfbdd04ebc6bdbb1d7407f710bcb2f23c7d50a4fd49eb6acc7d4ab97\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4df3f6eb5fb1049fd74877577a1ef69216df191af5858a661ff8edf68c8ffb5554d2c0e3b7adbc7d10da656c1c788e381d43e9eba5b0a84a92431df56eb81d7b19fe0e87404d16608f387e4b961dc13d336fab669195f357291e1287f9bff838f4b2c79b75536e6af0b5adbd750135ec166377c6c8ef6a9f80c575b1ae95da834a2d129313c096faafb641b46bd093cd1464c20821f4ced6b4dbf5922c44297fab04dcc286b68ab98bdf03de215c4b8ee1b46ea93d8f910e1c8976f3f040972f62901fa1fb24c59bebe201d3e5ac0615da8106c6b28310382fcb6c6acac7ca3255eb3d529863d939cd876d88741944ef06fd8ff9939184bc417200d361d1f1ee\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 55e7afb895f743e418302ce73e8fd49aadbd0a4c27a9469406e0a801753d5a4cb96fffa47ce3af3a3f2dc0d816e6ec61a764455f2427cfcefbfb9452ed8401671607c8cea3bf105fda04abfbba07ebcccd141306c129b36f9014b4970f4e8ad6cf3f7b66c21ba1b56ec96ffc6b6500f8f38c00b7c4aaa0a0515272fdd0fffb43a4c4e8eecff7922b0891457df27029eba35c86191cd7d9775cc7223354d89118ce1b92490558b2f3a151fa1b8f9371db8f8fa0f156134f5d78d7897849d60414a7d0565535f271fc9172ed6c3eef2ff62e638da46ed4f507ae3c63a6d308a20ecad814232e39eeb7bdab898b18e37b57c10b19905c0d3d01fd8e7c390be1b218\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 89c7b4912157be3be42558074cf23b8693d38dca6205289c9fd347369dd92534d2d2ec8e9d6fdb0a2ccb7e398c90deb5566763e4802e747e9dc593237d5a5e1d52bc3c43d89ac484445e3798a16a00bfd498f42d88a4110cb7e4745c5f1e6359ee8b6e81b42e85dea2e00e80f1c17dba13d586c6f6f9d3e24f5523bf9a0f21d82f150a227a718123c5f7c934c2040628e2660c6392fb4db3f7ce09e1c403d479e4858adaa6d798c34c4af771994129386594f0b9aa687706bd463a92d47ece2d4dea43192f8971ed7786ca2b6dbda7c449c2c2d428178d8de5c3a10bbc7533296ddf9fcae3019e85a22d9fe9fa23942912187bdb11365bd37114fafc9e88d4e1\n\n# tcId = 31\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 2f64360a55c3d64c3a5391d6c3ded718786ee654c97b6910f4741315fd7d9ab021999638b88b4751736a13faefa6a18339371e2f892f68913dbd426415cd34f499b755b10376fe11896694f1ed703d840a5e6faae1e6f75c7d6dbbfcd3dfd8e818499ad7d03878f8148d85e325e7d2aadd6f9ca675d7f0b8813112e83d3235bf5f9a33b14bccc774aef67517529593439397413e322d02ab7259b98ae549fee758b02adb6116e563d2fc8347dc5b5bb07d573d51024de583baaf8e982b3a8c742f03d7d739ae804e8de6198c75a556318fb372e2d1e6187bece98a5f39640ad28fe014e823a380c83fef85cee7bd788941bd04284d32961bf3582c4c3ae488cb\n\n# tcId = 32\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 325cb004062247e5f293ceede0066fdaa89f37f2b73464a14fdddc045f5395e7ab3710a9ad3eab03e9c2fb15818b551b1d8755f454dfb5fb6ddac75dad79563d9824a213ffd5865bcdb9e82a1bde2b94756a7877b91be30d58d48700dcdab15210fb17613bb9dc4f7cd95e1b33f4de328b4d166f78c992121e7e409acc1fc893771265ce9b01b5e21aba04278bab10be21dddf8a9375bf4ea0dd4a608a186f0889b9c0d132b022de4e903786789d0a5a960edd05b63ac4c08ffe57f6c5afab772bbc7e77f82ecb119022f96a6f42c5a5b958b88d0d6b17d3314adb050bf863a88782aa78a8efc50434c21e1077ccdca9b9c7676369bb8972f290bd5a7d85a635\n\n# tcId = 33\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 4b043dfcb768599364cd876ee5f6456b8a270dcafa679ae2199793578b26c42b30ef14fd8cc4ab045dabb55b938bb8c8af337386de8ea009a3a19ff74b6ab8ff038d6685b17e7dc5089ebd1c8565f48dc699770b48a6ab5d9353e26472b3a57dc74634435bb7b04681bb69dd3e7396adb569d6cc8ad07aae13387a17ff862b40af23be43bd74c9fa24f07d3c0afa47a063412eaa2016647b84a95b67f0d18efe75c2c9be7240d748c2bea9f25921233010079028e608a85362cccf7fe1bef5a71a5142f1dbc72224f5d983d7fb3b0d1a6303f017d9ab77b5d6ec4281a5df521d3528c6caf9508d65f07a6676d8d4cc9fc796efc6c5dc2aef6ff516ae55212671\n\n# tcId = 34\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 2f7659bd4b043c5e74d9e3a6bb3841351335881091ccc4d0e2de1efa168ba11ec04ccc71a0cdbf84d88a54a9b5e8e5e0ddac7fdc7c221e87bdf70969f98857ff91bd6d4c9f8afe28f5394660c959ebc8e4a09ec3e0d9ee0d6c9831dc0f31807bb8ebac2c9e74fbbd38d0dcdcdddca714b771aa73abf3d2c3174553ae3b30597604e4b33f8a6adcbc42c4e49e04a6bb0e6d5dd36b519d5de172c5513f8317c16cf39c89ceeb5cb698ff18cb8e149b8350815cd8c619aaff2ae5302cc683863e3c5e5588607237fac82a01c028e572fa77b30e60bb5a2874715065a2596af49cbad2926bdef2c81b5d031a46113a178a92f4d69c97f9ef311ecc7a2f058ec7be42\n\n# tcId = 35\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 241cebed86cc3a251f62e6dac6a4cdc7ade20ed6f879942e18185c85729f6874d4b0c0d8eabaaf1ba722891d35ebabf4b549278d14815db39f9e3c3dc7856ad29f60292318c808675079e2ec94984bdf0966a33590f47ed05058fdb91b6fe11456e592c9df76e4ff56df480a83fd2890b088e14dd59e7d6bd0fa1f009affdbc07161f091947b9b9b8342684a0bcc746d853cc52164740f08c364c2855455b82aaccbb80488143f59614be4b6a1c4f70cd1e006c775498df75cb0d700b8fdf164d0cf97e860bc8e153c85fdb6f5834b79efdd0902e02ddbde4b515afa360aa25632c19fe7349247bb528e617d34333120014eca9b549fcb1b541d3ef6fb5e1010\n\n# tcId = 36\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 8e694aaee29d01d26ca0fecbb8cb2bb49cc8ac8e1a01e327ca9dad1ed741032dad845602b2752f8637ca9152d36f120e81f37b6f4d6e5b5468158be2ca3acd469e3f532d9731eb6e7247f97d28366a652d747b21b732c875fe22867adeb88e42729eac1077fe7e6255cd643fd33050ed087b01e07df5efa7c182d266ae8b33a667fe88e5dc95e1751787de699be68857470cd4b0ab989ba7483f9ae375c693aca41ffa9faedbc669a9f4a0856a809d7406207f4ba4ecdf882993a2d774ae4f35a12d5f24c79aff5c00e89b7fe99a8d93fce6b1305e91a3d553ff0433f1bb989fe8923e1296f775118b17bbb3ac22d4744815e647547cfa03a515c20a33b431ce\n\n# tcId = 37\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 4abd84f5455855d18a88df8808a009b6a470964a82604d5e562200b4ee22a6537b31ed57bfc60151922715eac7804f1aa4501721e242bf553509eefd5e34fbb1f4b6fb6d6e3caad4c1b7d12db028e42f4a52efefc88bcda58c567c24fbafd2b3165d768947ed7fe69f0bc55b9add57638bdf7b44c0aef8bd104fdc80f32084466ff0dc97d37cde2499a498b77cedd01d389a5a4063d9efcf6a2ea6b4ec3d28768297865220dfdf379ecb3546949ccf7687beec862c72c3faf80a944d71f888821f079bde045fbf1f11e4e813bbf81b102cc5417af8dc93f24a7c3200395c824b9c4a2b643fbce4af95cf22afe146f8b66ce38d76bd8821a3aed81ed05039a097\n\n# tcId = 38\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = c9dc8b821879fbad44e3b5827c1d0f096dadd16908d3d7f3b6a63052f897e2728a855ebbc04d2af9c2cc1cf87f0d67f2599f134358626f52f2fe0dfca954c4e7445e604f347e3f5442e0ecff1e81f4593d2ce920c94bda5a3c75022c303df0930be672a7648f68294dd62d4299bf750eda9af0322a17f66de12ce87876e51b4c6141c2e09f7369b76c51ae9a200bcf110ccb938d789f3265f8766ec8c40f1fde02e64937724156d367b1a7761eff40f301d1b610f4f1720b38191ec71c8753064291cf3446723b8a7a9c0a188a7cc9e09538b8ac54a04b9082a299131e49ba733eea7f86eba7ca0ccdcd8edeb6575181b78fe", @@ -8616,9 +8926,9 @@ static const char *kData310[] = { "88df0548430ff4f0a8dcfbe466508fd93a138ddb9dee83b9cdafb794ded\n\n# tcId = 231\n# wrong hash in signature: SHA-512/224\nmsg = 313233343030\nresult = invalid\nsig = 1c153e1a94bd76b0c5d51d1c91d38afee4db20a10ccc44bd46bbc4a40974c02180ca0b3a53377d694de9c34d168a7466b0bf5954952a98031104934fb319936185dd8e795bed92ec7f8d1487dd9393ffe476c377e406fcbf65011c96a34ec627b7093cf6c0ad4576506d559c74cffdd73700c83ae8c4b6b8189b4b5d4119bc4b720bfb2a6acbd8a560c2642e25f6e8a4ab5ac6ff0ab19226fdfeb02e6f97943227df82b251e6826028460f33b7c6aad633d663fa06aa048b5e3c7226af2feac31d00bbde8965ceaa0d3ba2d268cb2d6c3fea67ab672c7f16f8775b3b41d573b8b99a71fe60331c6243dcee7438a30a8161099a7dcbd9933562eb40bd7d587383\n\n# tcId = 232\n# wrong hash in signature: SHA-512/256\nmsg = 313233343030\nresult = invalid\nsig = 34e2223e4f00809c5128c2dd2611956e8b3177859bd30ba86765df75b2aac2241c6e6fd836970fe68ed723f1399cf1c7a8f04560d776c572d2e53b2d0edb65fa5dd813915236b278c058f4fca84c6dc75de97fa7d32b30d6f54d6aa8318105e58391508dcdc1d15cf235d238a70b085c8007a65e0df54962dc31b098a9a7d06108f07ece64a70426d5d749c3e329d1779125a7c60207a1c99b892022703229cfe852b426a2a46d9407806f911cbacfd98168e8e4f1322b4572bd1f0634c8337b5160c2150dfc37d30f671bfdb2c3acd89646ac37a0ebfee5e1d2a078fa1b4c980a87f83a6b098bd09c865305bee5bbacd3865e38b4414daf5fcc3bbbb1655157\n\n# tcId = 233\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 4a2bd5ed1e053d5421808f7d2636779c7c1e6e1d94c47ae2520332113333f0c3f229554db384561cc4be4615d2f9b36d7a1cfebb85333c0a070a8379293d5e46af0d5c34d71b4cecfee2a190a9bad3baac34aaa8881d048cd2e9b8a74c67a5be02fc27368e5417b4fb6d928254d645bdc95577fb1ba79bc169a9e24466427db64406a98a8589e3e164a5889d205ab861acd9ea5551cdc06515813e4455d202b08b829463dda47a55729961dfd2130ee03c4ca92a8579b30478c2b479646c242a7e9ff0547c7e774a29469eaa49157d53425e0afe0dca68c88cc71aad8a8a00bbfe8f39c36fa3ecc168f605d7333626b0afeaa7465d78862d4d44ad64a4f7a0cb\n\n# tcId = 234\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 5e47e74f1eaa0c542173139c91fc3684c52a3e0624ebffab2ed2bc007a3c7fea826b4400a9145c7893573d73340789f32c3f6770e1b646e814846690a941846578afd0455e9f016631475149bab5a150469acadc1d0486da5fd766a75f2b6be6e7ee56bd350913acdc08e06806a3db60ecb9c1caf58db36b92f13b3ebad4c67f7be7f16156520691dcc37b10c9c3d0215f3e2c0558cfb8d4944e936816d38ea6e3829b736b68cc6156e86f505236f366b5928572826be1bf0b42885f1ea822ebcf79b7008d14b23a1f76a2730848c077fddc5b8982ceee4768ba7733864a4cc0525640f1fda07c6cfd92c7f32715a6edbfc4366e2b62673fea9116a18e600458\n\n# tcId = 235\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = c1d45424fc88ebc3de2cb0f6fef91042822f857835b014e6362b986496d1d0dbf3ef50d71ee2dff5567027dd00fad1e826216bb34c95954ba3a9ee3fe646f9f690484c2586b96946efff54d6591024d251cfed885d6e8d36baa14757d7621e75ad521adea55a217ba7e6ea0a8294651d688ed395920975d52f607d542126db2283f00d9ebf48e395bb83901350843cd7812072b67472d16cbdc2cef414ed57e33bc725d53c5d78bb3282116bd3ee672842191e9a5794d78d4f2bb9cf600d6ef8f3d538881c9efb80c7f4318f62c091b0a3d13f485923bd0561bacfd7e08f75c26a60c8116b37524f4e4b40cf488035a796bd19d3ae5cba8bcee923e021a78183\n\n# tcId = 236\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 20835e06ad227e3e7868ba812b0361062e5e7204e2a0febf12eb0efcc5cec87328a0c0c39539c177f3f81e50f8f731c6651c03d865cb1ae667c2083132841ea3bd9749a54fed4a9d04b9f4a36ecc11c31202b79f5c7e2bbe0499eadbbc7781e22c6b182d5eedca6591af8e4a7665883666e30a927959ce67a149a7d03c7a863c16eaa980e7ffacf844daf83b5958c50c502d742e638f97067be25eb0c0c1f26ae9da1e65924bbc3a963dfcaae959300bae2240881d9f528d14a9f025a7feeadde1301096479d8ef77bf722dda463ff63dbdb4d7e5fefb4a0428544e2a8e9b1622b9971f71671cf32b0c066a26372c46294a66796d80a498282f6da546ab095e6\n\n# tcId = 237\n# invalid PKCS#1 signature padding: 0001ff...ee00\nmsg = 313233343030\nresult = invalid\nsig = b386c91fe71bfe594a2de2b2a0db0eb097178076afca8fec5913337edee509eb6b470eab1e4553b3b346d85c8f2fb31b6afc301d4a545cd3fa2b7c4157d501207518728819579b51d15d59318e8eeac0b903cf3e770660dd7350336ea6431057ff68e47c9cd471d616f25043d099c8a1aa11a9588e5b9275e3b1b93c71746307c277b74dc429d9ca2ec87145636778a95707296d980cd8c430e5cf1faea6b62a66b2362c9aa74d6391ba7bfca88aac9747cb4b29df1ea6bb22e5cff500c746e26a95ba0b442b468d1663bbcbd9d0162aabe84c02d002e760e77f766938880776e903ab5e09844829296515d89bc68f8c3ccc748c35dd285676c13877f44f2ece\n\n# tcId = 238\n# PKCS#1 padding too short: 000001ff...\nmsg = 313233343030\nresult = invalid\nsig = bbde1e1373cb938add41e6ceeee683908f3c575c6a15e38481ce6e83a5d95fa3d2a4b0b6e95e1abf165cdfd5ba308497640f58cc4642298100e9ff639951446951e67aec55ab8e7b9f05abd8870ed3bba86ab875e03d935803d13236fd66887069a72d14375a4f17e9fc274cbeedfdfa7c8b77c0b62fc570dc5bd30dd6f9f23f309ca58e004495472f2c4e5095202c47f24ee8a10474144e1d101ae173c387dc92647a93618d779ff040ae424d75b22262146f457e704240cdad3bff67d086d82b4dba7f8308e1e392691065b28be33e52dcc20787997817104d2d23bb67469d21d5e3cb84c035a1d75e6b699cfe363db10d52b9c0b4c82573cb1de5a5cd6cfe\n\n# tcId = 239\n# empty padding: 000001ff...ff\nmsg = 313233343030\nresult = invalid\nsig = 27e5a5c4d9f86f7de7d7220a783c26afc2a6614bbe8e2685171481f928b230abcff5b37f3ef2e384db521187566c70b09d75399385bf2358204fd38c1dfa1fb84fa78c1d5d5e5a869063d544ea812a3f1db8a1f0224fe7e21c5ee25e75a0cf2ae5d6db16172455bad2418c81235bcfe2319def91de16a7e3de8dffd74122bed90dc53e7fef8f77e832f30b2a33efbb35522fb620ea326455339fe22a81fed5b58d9a5b103188bd530439c4855e2db8cd9f98a8129c76a335cd45923ab67100dc2b02f31e0e5282fe526f9cba163715026071b61a2aeb93a5a58b4a8499b3c078cfa303ef0a107bca6d2922ac8220fff175e2b4e87a7a9669a1560aafe3ae99b5\n\n# tcId = 240\n# CVE-2017-11185: signature=n\nmsg = 313233343030\nresult = invalid\nsig = cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f\n\n# tcId = 241\n# the signature is 2 bytes too long\nmsg = 313233343030\nresult = invalid\nsig = cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0000\n\n# tcId = 242\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 243\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 244\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 245\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 246\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7e\n\n# tcId = 247\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b80\n\n# tcId = 248\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 249\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 69a1af712699465ff84ed85dbb35323df339f7627310b2b3cf2b8b9fd4fa5cb0f536680d7bf905347a642c1960c3e17495770bf939b7b3d426ed2209b5e47a6029af076a8e95f9a7fc959041d2e221d433f3836e37b6075a8388a2a6aed1785528cc79348d4dead276988f7f49d827c0ebbbfe7aae9d946f16c7a3598da587710a8d9fc72ca537534959c76a35c91ea90989dd0fce6bbb0d0f8c439188e51e0c82debfab4ac1dd7df3c3e48627039a9d3829a7f08432da36b6ca6d9ba0f9a15f6a61afa09c1ad305c3182e0a88e128192d8d064af7037950574cfd21b1ddb5f562ceecefed4e62c6d12f82135aab2c0a6dba9a181945f56943b4a81faa42fff0\n\n# tcId = 250\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 8c8001352b612c2a8ce94e15aabcf7e077a4135a6cb9f128870ce3f7ed11b74df002a93e9c7929b504f9c33d6bb1c8193dfaab4a808057380c3a142cdad876290bd68472ab37133d50d3805b6037c855d145d75151c42b6fe5121ccb44c7a624e897b298694566698f49289ae0ea09795450ab9d17dd30170b27fa65d54ca4a07835b3d772dc27ca21e8049dc5751522530169aed63009013091fa7621583d6487029c45eaffcf0c9e7e9fea1cee27da0f623b3e4cb8f73db62ef1a818244a4d00165e4328cb2b1af117eb8daa5cd808fe06e6e2058b7db69569e7db51b072381fa6acb7683e4ad9164b2e29bb3c72e99e0f585787a77c69f8a58084eec664e9\n\n# tcId = 251\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 5bec85b7d892bd8bf5452d477c53eab4c930828493ee9092e4abf42f905580413a6ad458f82e78a839a47016b2c6131899abffa563f54d49b07c3f56ba5e4975d216be7a591c6466e472ae46edf2a15c72b649f7089f4f1147cdfbdd1334b07303320a95c6bf8426cb9e6452d3f8695b4e376058db6805a7ad304462ede8d89543a5360749e83ff7cdaa6379941d28a44a60bc36353cf8ed7cf1e3db091d136372d489602ebb1c4a41a6a15663a809e2fd3905a6e62f49a4df64594e0b13737de6c7e38bc16b349c9a71fa9d8c519b6aed9cbad2984e13a0d75a6d24854823e6c8d64d891cbd64cfbbbab9157f4a015bcf9b6bd1465e5badfc462e51fdaaf698\n\n# tcId = 252\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 9bc2fc58e6db83a04d327571189b835a63df65aa3a41918aebd7f97c069cd499978370e4a4e46b1c27165b51f703beb3beb1c0a3a83ed6613dc840b58612a996dee3a10e1907bbceb5960e4f7a0fa9cce69a3ac34cbbf10b404b685763ae3fbafb42f125a060626e1136742d4ccdb469b3a6b58fbb4cacd3f5fe88da8838e2d2645d11618067edc8eb6bf6f96e1055122cff85c423d113cb4e9e1303c268dd5ceca5a201bc17d582a84ffc14f7f5e654a25a89486d54991f85bd24a6112849f38ccff768d1ca3c44e3e6e6a23e177426d26bb1173cba60a7938bde64b02432db83fab73c3fd4f10578f826ac3cea04172aaf43d60455c2632ae06c7665ef4537\n\n", }; -static const size_t kLen311 = 146586; +static const size_t kLen316 = 146586; -static const char *kData311[] = { +static const char *kData316[] = { "# Imported from Wycheproof's rsa_signature_2048_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001]\n[keysize = 2048]\n[n = 00c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749]\n[sha = SHA-512]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = b03dd72dc84b305ea811267a489aba10a1dc54b59f92e58546a2f0b6883f543512d621951352ef12abafe4bd6e10c2e5b0eabbbbf1d081b66e535fc9b8ad379040c3c71ec8f2b4f5d319f5d2a0240a767ddb4de1fbc878b2c5e8e1e260217bbd70971789fedb8c677fc8193f67e4637239607c7b9d3511868ccc0df372374abc685c9b4b74b2c5f11758f809b19bb3b5c464db870fea61ddfa5e18be2c4106f3e165fe85a7f8241db2806d0fc3c45d8a7f1eb4ca411a46ac411b81c04fd8c4ced5eff497da6bcb8e2fbe1f95cf4c3e761fc3037c82276f7ebfb7e6cc8534cb4fd34192074f580c6e31008df4f1404ae8dbcb111503d4bdfe6e7107a1ab5cd8c6\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 4de4dbf82607b36a5c6778ae6351d83b7ef5b4af64c3788889eb10ef1838822847ceb531914392360b92dee055796f73e3cdb8b3d50910a537dd2244fd7f922780356ea3f01e99e5bebcb1b6ef398d2399bd02472a871417daec3bbe6f89f45f1af0bf819a446dcbbb75c56958d34ba27c8120cee6ff97242921ccf58de9216995fa0c49cb3e6d60e46411b2df3b01b78fa81ca145ce8be594ee009031eda672eb097ba5ed6687a703b154ef616757f94237f4275f54738cb59d36b20a9c84ae133bd715747952f0222573a91faf740e4b7eb4e88abaa91004e72a1709b401616b2edb2784e491f671fcf5ebe326b669facaa5d8a0f6f8469ea995c4db772f06\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = a0f46582cde6be215351bb7b29e8ff24398816fad9e7e2ed6ccf1d0b5296bad827316c18b1565253291fa1c0baea9a735357cff8920e1024ae5707dd2f0cfcc9e6cc81402217d9b4f51e10def2bc2f4924e7d22c022fc87d6c3e772f4952050d027b003ab4267ff227a15cc7c884cdb46bbc7eb38852d0e6d8a12f485ccb0312157097687debb6feaf2b6dac998224c6047c1d5727195bb8ce05a59669034e88de0e4815af00c65def5b9748d017455056cc1ac6d3a77e31fcea4e726eda6be7bd33e509696e54d1d1858a1165fa9ece5d62e493c1a33ab3c94d294838a19f367fb799d6b69161bd9532a6ef317deb919923d78e33309f14a97b68023d600b4d\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 9922f7bd01d7ba6b2de255b91209631af92e5537a4554b3b7a50e39f2fe9b6085a7e418084213d445794ebc19be43782d9f80df1daa7498a1c67d935ec00dac6b7a194033a14431320acd1d7f3d4c2b7b5b1649dd93931c49f538c94e34f44fdcb8dac9d31539f87e6720dc887c6605284a6a0408e244325e35917b1e1ccdf5959ca87091827c8157bdaa31239e2103ca8a112cc76a8e7e90f352fb8cb3a3381e52cedf4d4188bf881054b80387605e7041ab149cccea1ac2bb6560b45000601c33ebc31cebdd499c0b8fdafa7c1691d6dcc48edc98519d55d126a757b2a753eda4f2bf35cb191face371c9c34b2ab57242053b9ecddc91e4b621e650432adc8\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 99996fc01a53bca03382b96e9ad83a3139bfacc5d37b180a099fb5d515a7b78a5c21a339ae6bd2bee8e0f503ba2bf892c1885ad5f4940a99d8d49df6f4623da16c337a011fb895c006100286aed82977be3fda054d1e935a872939b704750c3e2871c33768946e65a737184efa50060c6898247a6472854884fdbfc2533c936fe9c922d881bd5f093851b46693cf633e25f27efd6db65da3ad96f2e8154ac39f2a9859f15c919a92c8cd22285c1f9e87444e61769f6833bd0d56106f87825e472e59caaca1fedd8d4065fad9dbbc252a84c196bf5d6c40bd8660600bc6c825bc7470aaf4ad118c6c139a5c6fefd5223ef490d4afa6c06269ea8c0054aa1f368d\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 7930ceed4b191365ccac54cc8a5bd38498c0d0c1fa5a862b6c0744edf9bf1969ec4f3c7c42aec737438acc797b8301aa8b30be2a4a4c1323be0427411dc8be84881036e9062a55fa2334176049305a44b97f90ed0b3becf56f8c9f164ef0bb45729f9fab1d459f690c58f07ef5ef89f21b15da14a235f3012e6f83a7f226e118d3b7fdc9356c39667e1cea5c667b54ec5ca6a0d58ad933484f447c670e5bd3647361c81831dc710360a90692eb7e4a57ad225b2516d9c3bcc77323a9354d1b92d0b3f5ade911f5faac4e4bdbead32f3349840ee66f4010789a84f0934182c2b0cb7d6e72e2b2a6839d03d7c9f681bb7148449161ed50b4466d60002cdb7492fa\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 16b5ecefcd0167682fbb3601a016bfa8bce9dd5855bf305ff00b45d97e50fecd27716997c37ebf8efd8b269558385b3ecaf2b6e38313508a7a14546107b75afb450b1a0e39cd0760151b666451bab43d7fdbd93771e9d98152ac889bf1abbe1c3f62049c4735602ebd6a90a0361dfa08417ba03c55fc6b7bfabb136851ab01eacf528abb1129bef47f2b04e2aa24c0341720f728bc9fe12cfa5d4248976aaf7035d19c18302fb9ae2443286a71198b500034d48113b705c83e64561762c583dc013cc099c7e5bfecbfaa7b971c8f1a4d3868fe0a4ad518372ca68c65bdefbb726b1fd92ad92ab739d2bd1af97724dc076ba011a9f32db3979ca4cf94c5370b77\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = b73d6d97834d8d14bb4536b050dbe47db349dcf6847586f80624425065e10360f9ce491c38ae5e48f6640bd3a314eb097f08c859625d3b7e8198b0b9dda03920ce5fc4937adf8c16af3dea2cc3137c2c200cb8538baba5bf36c9913784e079d8cde826f615313cad093d53110ed616591e5c38f32e2873225634ab10fbc7393dcabe742ebae9ea3802031ffdd6356a30aee51d126064584db555657f11cf742b8ee1ee41119b5c2e65c740219bfc36e6f65fe8db8d16684ba4cd7a12b5bf22551192fa75362b142b95a0b0d786eb26c07547e73ee3f3a3f0b2f2f37ba562f61e86c4bb25e7e059ea504f0ea8f5883382d7b17c95c5297a934479b4d40b632e99\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 93611a697f527bb2d6e4193ea34e079e0b8ec8e4a516962a74cc91c157528bcf4654beb487f5eac5ed445f858fcf8461e63fc657a57bd8226d980b212fb5e61111e0c654e0a6aa0c959f20001f6345a60ab14b8ef5631a81cdc552a04ad3f17eef287b011ce401be17900e79b4b045c12a90412a852131a1b9ae7c31051e8fe6f066b4f7e1d8e9997aef10a8c516fa3d782c9aed73dcbaa1d9794de7300c607c17607740f091c2dde354b58c0ed9d4b8fdc43e249847b494821bc9560fbc3c57f363e5d2bfcc488c041f123fc379c7bc80a9ea6ae98b7fb76058f9260c0f5fa1000a7f865e5a63d1d279fc7f452775186608cae1f3b640594d4b3fd8af4a5a4c\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a98a9744f1f1893343ba5b702d7d431e40900a3e3948d3e6630fdc0a8f391eabe2f4b5521a2bb03a16053e87a15015d5bfbfb0e7ea4877a05f491bb8df5893c867070256e8bc348f896ca2c8ce4e0ab6a9adf10ab98412e4ab6a4fb8440243fd34749596855cc14745d7096842c48db0647fbd71361ebba7fc263a2d191d719d23e727b1ce36e543cccd521b540cc42e01120994a06a95f43cb83ea51f73dcdb9d5a90683f627a070ba8afe67f9e29b003800479b6b8ecaeb6f2e68bf19f1eb568b170e56d70a8ae41d2524a0e76bfd0f4d27ac8cde9b00900b49577c55384e948c6c6dce081d277c3623b1e749748488e648d9349b9f17cbf072d7083c377ed\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 1075928172057bdc681a626808436b13f556883057c93b452326c7f51316939cef89fe3072c6f1365120eceabaa0c12ce4ce05762843a09debccfa01ccb9a85f8b0f1f7f030ed2a0c1514ef1c25cce22557d30627cecbac23f9f1fb645776883fbdf502894cc373e18ac6bf47d655894b528369a341ec1e56c2801a30f4c93e5219a24f727b5d41c0789d01b868742dc9225f5bf3b588e5836aed54bb009e44b9598a96bb36df4", "bf3521cdfd792c2bf9647b01f77e80f8063299ee26a9a36aae9594536b7b3d3ab2fa8df3dfd7e4380eabec23ea09b046d9bd07a11f084107bb6caeaf32559685611791912513f50b0fca6bbc37f93b4c0048a41758228539e0\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 7a21f13f8af98f47bd62b03985a2e91ffb3c7c3a5af6ec75c2269e3ab11d859cd45a214b48310c7fd7983c8577d839cf63d3c3815302ea649a17f813d6cdc75803a6caf2195fe17a5e84d8a59eac0651232dc793d9b7554eb1123e3594e1f6a57a72e2bfa6b1ed9f1f9a6168aaa83ba2d8b408f3c709354a278b991751207075e7e5548f0c0f764d58775db3143191a210e702b69dfa8d8946b1a65d67b3da6f3451f70a65d29314ce5b7ff13b95cf7ae68854f586140d97a0e9de4ede07be81fe20a5b6330bd9c63f15a3d4904b3a4596951ef5c591007ee2f6ff94fa90abd1093d4dec45a9904eb656713a110faaeec429fea9d1b8c47133787ff6aad3f938\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a7db33f68fd972b3e122e2dc8c749561d14e513e7df9b03f285422015879de35021689bccca37b31aa7d156f39399063a06fc9590c58cee25d83e1debe90037a8713eb0c58194e7b54ddaa86baa0e9f83b604afb5585aa1e1a45fe24f38576e644eedbbb86f57031cb43f3ef1428a33998c1decf44011b63763e47d2b2fbdaa90deae270455607b928645b3f5ac39553feab8f5115c9e2f26497155076c13d76d95af3ef342bd1828e382949a63c54cd0d4c4c53cb00ff4b8e285034e78ee0f7dccf9017839c189ccb3bb8b92f515beb63345c9973e77dfb388b373b8076578e41aa3bf3e86bbd4e1875996ad19c8d618c8d69f4eb06b4103cceb2b8ccbd8a58\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 72eeb72c3c87040a35b98244d6d93cd309b65bcc793bf9b10d5f7501bcc4dd8030eea73c4670de7ed9605b3210dee4e53e758fe7741c6410dcdda4769df6351ee82380b5b2387c1cc8935a60d58408fa1a51b485949e0a4d4a82a27e8b2265ee634815b8fbe3778a00fcdef0201179bc4999ae16e1849027ecf92d53f53ae3e04c9d7a39e71f9be774036d40d38777fd6e115d0bb7d8b538e57cbf16bb4d5748ffac01e1b20347bd688b0b45448fb5028fdeaa190e3c288df6dae55ad078b50cd64adc36d471f0c31b574fe86680afac6a61ea7c2fa5942687e1a4027833655f88a123b50e7ccafb7cbb73c8ebcee7f915258b8ebc47a792832242176e2713ca\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = c280a6067d62ed84b0f9f44bfb322bad0ed92fd26f5c8ec7e91d9a115eec2dd6f5a589c124b50b732bc5f4e382ad344a3498ba280d70a8e7beb9759972fe31da8ba57b29a13c17004e4336207109385a5e27d53f12abd5bb6059fa917afbd45ca8a4322928cccc776cfbdefd7559eaa86326c21cdd6ae4c40c40b1659016520e5d34b1b63b7cf744a37bb795ffb86d853dec82a7c2c57ec5b14f68535c12279841fccacb94b35049a5feed59496db1ed372f968a4de1d70dd98c64e3e17e541d0fcc971a735cc610b9504680cb615301440cb211a73b6bb9355a677be77de6330dbdebcf6abf3ca83d457dbb951f3189d017022c354d08fd7a5d0f8f63aac308\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = bb7d11eff4ebfc47082969640c3883ae3b2a95efc08f0a4c4cd59c61fa5f15e1235a3e53a9653186f09c21e11757a016a671db51ab597959a437f26dd1f864ab7c67306fbc578dcf614c304f8ebf6b745967c71b8093485f74348f81865bcbadb39075497e1ed9de3f9e21209d21ce609d2d11c3fe837dc7381ef8aebf4680e680276cfcca5506d3c1eb5fce1655b566ed63cfa69e4e186140580ec9c7a51aab286a54fb674cbc1b527ef6d778ad228109a93ec4a7dd39c30c5879e2517a540ce7c0f4989b7a930899c1ff51143e7d2d3802c2328000331b9c6e9c887fe8242d2dfbff5f828f604050268c450d74779f8a512dd0632b90c9b5870c541b45d163\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 4988c316c1057404e4b0b1aa3d0aa039e0b4dee3917449c0cb816c7d738db50c5e62275770f2ac0372fa84e88a20a23b9c36970c6065c599ab4c23b5b28d260e95b7f020d760e7b7e00f0e7f7bba51ba104ef62205fafc6226c95c0f483486980eb163497d7c33aa1b856ff77bc1dcf94c57442edd91923417afa48fe718285f358a24bc7bba48707155e41145d16d9e37a12b8821ff29c581dbb2f3fb64172633c6d7c1ff6b78debd5fa8faa4623fa3fa93352834c7948f7b68311fd8f2189e54420d73dd5190ab34dc3a8efc9bb7787603f6030f0ea2eca2aa7e87c4373c9b0b3c8d9fe16afa3922639501b62459c34012313c160c8707f740330870ac2273\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 8f9a07ec03306424540f913dfd03eff0567cd419dbc5be4a28b3dfae5de126a01d1fe4c6147aa4f1a2f57fd50be2566ef8ef52ad8ff816abb114060d6efcfa64abb0864e613907ee142a4f96d965b3aeacc6c870bdfc316c72d43a5c9172fd2a5ba0de6c521fd82023c511c40700f7b7651e8e98a0a20d84f7be365ee540a403c9afc6087dd5ae8473006fe4203a790db4723520be38fa3b9247075c93e6b5499fe8ab997c7267e495d1a99d5865333acda265c02569040787d5aed0bd4e492e3f76605120bd41840473da0e4fe1a388cadca7b4d543f5beec4be9c3fbccd0442dd0b11f9d79c6e910177aa1c997028d675980c439e61571011ff9b26818a69c\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 22f3151da8a6c4d0b32ed9d6fc8fe090e218f18289b5a7d780b9cd78618f57415b49ed7a2ad1064cbeb8a20dcca021cff65e5d51a6d662f947dd2286e4734ea6923ff40acd41cbe4e6b33e4661966a8de0673e59958f71fdc191b24a9ca7b08a78bc318de1330ec7025f526cc6704faa7923c042e561f83719a7edcae9a3cc6ecd91d86a94416d2ef60ab3e74e1f587c0b5c26fbc4e2f67983d4845f907e58866936c80b3159d352383d1deffbb9bbd67a2eabdcc43450ebfda73495618c6b5b8093d49e1c0c32445f5e945227de1e8ce1cec611cbee43cd6956944d6554b5e120ff63899755836df131feba79d7fb06fc3a3b0feda121243ee00cf8965d4acf\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = ae0ea39ab7ce7af3075d67f8edd5862508eff6170b43c02e4f592c9101a7da1dd7ef2e4be53ba3449dd6c2a6c1837884f12fa29dbe8e9d40c677d1edb6122f61205b203ab0f342f21ef8cd45839b9fe9f61738e7ed0915ff398a679a983124009fd37fd5bc9891d33f4830aa6f89cf30b59dc3d84cf955ef960a0980f524c686cc8123dcff7bb9dc7e7e1bfb3585bec3aafacd5a0c7ba63f6af332dcd1b5215f95f06d2307cd75dbafff2ac5cdcf4587a68eab0d3d277ac6e999ede44a551a0d266f9358074715931a7787f4ca26a94ece1c963a96f6558a6c8611fef31a5d459635bc2781ecb35e75837829864001074dd585d70b7e5fa6abe2a6e28b67d48a\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = ae177278bf000f22063be4bbe62c28840bf0d293096cdbda95eb2794930c96544817c7af9e92f22dc81ef2b64f43fc50243ac91a99ff41d05a5e38005a32c519473de62f05a5250643412d6339b44fcc3ff2eb671da073ef72832cd9a4e892fa67c59f8dbdb1b5564f1c8b93ec9e9a1080670e649450b006afac18937a62142e2041cc5394f87325e723fee67bea8385eb8847058fc56bad33419314e4097852994286c2094e4d0360870aee0a6fa2a3823d27eb3650e727845df9dc1af0e475a8325cb9a39f0a9ebb2104a3b66214a7cc02b2ad3be12f91fa434553927dac42aec55b8fe2b5230b0951d738b42b73063b97eb6cf1fbebf76f5f7f5619c730c1\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 1037912266d26bbb66bc872403272075ebc3c0352ee5201b189db701f64ef193dc2facec45af460a38b8d2a71d1ccb17dd0f8532bd87e5d7f6b8e1414367b5128e3f6035b26054d3331ece1f926c2685f5c286ad0befce4be76df6c26bae8a6df520ad073a058eedaff3d5fc6906e8e1c864d5b989ce9319e87fb121623a27432e2c06e936d151b7657d6500a08e8a3c71a0b491cd3908811b18d00add825f848d6a0290f4c0ee2e289274cbac8c8ee00168631d43e7e637609444c18aa4cc0a887bc104d6ec9f699119840a99a9e6b7ee3dec0d0b4a1f6a1e022a44721066b0fbd6a7c6b4f51401036e755924845bc94de315f494c5c19901b23e62e9db6aef\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 47fc62936a9113548699f3133f7252e4d2b060969d2a992e4e83e2cc6330f4d3c9e5cc2005ab49f26cebe2834b7febf478cd01d0338a56f262955f61c70bf662a55ecb8848374f38bbb16b0b25bc012197e2b92d62b5c38bc7b2b570b376f6aaab95a134cf6d0805f3e5823bfbc5f57b69cd84fc103d7f3fd7f87186a08dade4522cd32a7cca292d25c02c90ea0a44f6c38c13eb58b71a54b58e42f17245f1881087d32df31be3e83a2716ff9487e3b389e2398d79ed80c0cb355322358bd908d397b7365185ec4f55a50a5879bfa87e248d31a6ff51617b282dd2c07e228510790babe57b466e5d7e7ea6491dd720e98c77124354b3e544d064895ac845c35f\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 389f60a3f7e33801cc6067cae353b16263aa75279d0cfed16c122b4ed81350538039fe7f43859a1f76bff62b613bc8abbac257ee6eb3e5088e6ec33815281d6f6702f05ff75f2c6260c8791e43dc168f69eedf1d33d42fa5da0ddc9d2f071ab3f9dc0654ff1a3db8c855cdd9941e6c6609aa29d69f6b1b1254c3437196fa871f443fed2b2beb113257da4bde8aa7bf232fd9c0ae7e7419bf977f14c4f2c4d128e5f79f6f5c63939e7fcec231ba64145f8fcf6f43b821b41776811a848d613b5da4cb8418a1a95402c3ee5bd7195666e8d5b13f12b08cbd730938c7ddea9d65ca45683e9de28d618af1b618aa0bc88e3d1db4521dd069be105b3145e54004eccc\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 7528546f84b9a056e49a848644d876452449b0e228681cf1a83c82aed6d1d68da0da6b880e31d71eeadd4ff2f59cd55340d63", "0c6c548b4b9c600de0cc4b18d0e6144a5a294216e4c9901250ec8a6897eb39517212fcb0ba823ed763427e477308194927c7ceef49c440c690f5ed33375cf29d697da0fec04e4bcb0d2bd0f52a3bcd209218605eec678ad665e8adc2ba55caf883d14fc6cedb87634a36b0fb6019849693fe47b0e5ab62bfee78b415397887cc3ab293b170b5cb4217f912e13ffaa27f8ae6bdd4210dffa0179d723a53ecf6d4996992ea0ac9ed6b10064bc793256bfb4ac5aab69858d9ec4cf9bcf13c1bca969831639fe8bc372ca67b7603fd4\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = a736d77611787cfc46ef5e49ca0d39f9a1249326fa77b50e024c657c791da09ea1d363657fb7b9d5978dd9b75a2b7593528e3c19e6e41abbe0e71273cda50382921ec6b366b07f0edc0aedb048484d51b603d062aaa18c404d6bdbd61a7bdbcb32e917a79bd95799cdf43a992ee3d93193f9a20fd113cbe168df7f884067825b79fa73c72b9168f7b83002096fdaf613919ecc40422317fd14b5ef8d2561639a3bcab462c3ef8e0f59929c43e23cf21911be969afe3548c1b449baeab90a8f6b52be5f6cfe47b941a625d4020785e8180eed315b7a6840986b33b6ad6d519c53179a2c3cb180583808dbd3ab5acd90e4ee01687d0946578ed9d7558ab8de8a8c\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = bea793e3475943e123a0f811de9b3066d85d6cf394e1e8494741d8449ec11eed7b3d796ac69a5a3ee4279362f4a69decdcb1dbf397c7e0e46b9b855feb3b125f3ee8c735f79282a9efd6fb25bef533a9f3641f47d1ee3bd647e4b8e0c1bcb48ca35468302cbb32ece10135a63b4d4e14300d0a30b3eed9412b24139134c84cc2231dcaf505a15ebbb8cdffb96ba06b24f8e85e4274588f20454175752d94b0c71aa8d50a776ad13662c8badce5ba74f4d086aab60f12cfed831ee562d3b9d9bbf4cab8b53071dae0ce35644b425202595f155eed25a8d651349a2dc734130e0bff2f09b12750977fec65c79449b95957e3602104b4b0936d8e41d5fdfd1e2c72\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 9740ab49e35c355c40c6eb4839c47c85a27231b2b96133015267e10a7b0f786130308be8255c68584aa3f6d4c1ac2c304130b5bced81ce26cf6a0a0bac293f23b31e2f04f5f91d98ff17750b299dc521cfc946134cfc76ab629f9abf5275739befee3fcc9c217e6e7c81a71dae3cf3407e5362ca0c0db20386ea943466d59ffb9e512022df97d666cb15c35b0d1a0cc532e408727e8f76cf9955587bfc1e327dd5f58d1f7edab6fbc7232d1d2afb9616fb5a5de1795cf6e93896a55285f793edec78ded83560b34b4102f505c4f2ab8f15f603a7fc73b75cbbad2bff29c374fbbd9e1d1a6a1dc10a09140bf0cd5aad2ba8a0926b29b3d830959e6c45e8d8fe32\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = b5f76f1fd7a6e786981f7a4fa8430dddd9a27ac86f683d4c7abc383932e57e5b15a30d6efc79cd266acac752fa73ff06e3f2169807133d3f9813932cdb7c83de7e57ee196f1785c12341142cc3af2048ea81b4b265ad16408a764b412b7ad96dd29fbf899d8343b01e74b63faba19c36ec825102941acfdb55f8388e7d429a89a5d10e96e2e612e231f8cd857127f6b19c7766e6d0f79d54e9ef54bcf5bcdb457509154eb5cb0640de286e2d4fcdc6941aa4d97f67fa99a1213deda89c78e5373e40a0fce38e71e57da2030575271012c4fe96eae29f65462ce293943952db34a93abb2719226592cd3c651d3d4ee6a36f8082a3f325290869bc3ca5f02de629\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1c41cc918d7f45458e0bcf5a8e4ba5eecf39beffac05fc670adfca933f8e997061fb546a2faacf4cbc92f7b6da6b7ec97bc142b41f38476458836df716b9b7597072f11848bffaf7ade3871435f2b06fa0baeb08d3be31466d6c10409e3871c92df4a6a5346b5d7c3e82b90539033d170e4950320169c7d9db5159201bb5457e9b3c02c9aa6fbf2b5359f4b657702d37f34bb0ea2841e46c73f6d30ac546c1cc8a83c72319bcabf4ac741a542f2c45fbdbde6f4d8be88906a24efa7f62cd5e7697ef02a76c3fc827c1d2969d8c4ef05658ac4de9ea06dac8c6c0a65bc3d05ae3517428883a0c219084486c8793e2d546be6c8cffe00e07eb7b82a07449c726c4\n\n# tcId = 31\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 1b80690c323802241d2b9fd1b024571fce1ba770566018753d6434d0927336d9d4441a845d629ca275502d14bf818ae7a58ff7af427c3b8ec88997473537cc564267270bb2be0030e0cd934c417f814091831fcf776331daa9e73b7e426f73f0ca9c1733d015f37cce5893723f1ce9fb2fa0bfc3df6fe7ac28549983fed2f05b70eae4648011da36855f892dc65c06c909ffa179a8950501f4e650fc6a1b05ab988edd59aef685d5b05224445d9603d5b816f1ea3b3743fde547de72f15ca60c305c6f493310d22e84523b036bd71b1fc3e38164ef7b954b0bec028fba60c4720710356d080917c1c5abce6d27d3ff35d63baaf685db37dc76568e3b35147d54\n\n# tcId = 32\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 596d8e9730030342f72f0a850fa5ef746f63b89a1e0c48b67a817f775ac937454936cd8400653f4d1f82e315597b9e5146ff3fe4f9412f81cf6f8516d9d440c9c01c6a8e0a56838e2a206216b2f3e419e5fcfeaacc7c9be4fffc7586ec21d8bca6b49a2efe44d66266f298a3b70c4310eb22e64366bbd5f324a1c9c667cf0d970ecb37190bf7c98977f180100d3d6c63e3dbfe382e406128eadcbb99e45407a858dc6a443bdfef2c9531bd2461186ce21ed34cf5715b764c5bb4d4cca9fb59c7f90d9f71f43eafbb256906095edc27679b8c752b6232ad374c668d4ef2c55bc6fad362f8538b553ecea8658adf73fbee8c6c47289d9ac5c4471f74847697ed26\n\n# tcId = 33\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 766027246bf7d6eb5d4a137dfc5d537fe2446156834428d928f6c2c927f8e911fd57db474d55b4e8007a0cc65d40e7f3b13c16ab4c106550e5a89059862a86d95b2de4dae32d29f7fa0ab67bccdb74f90708153e5c726614ac33d61b3ff90c90a2c8b7277dc33e677647cfdd303462ed192c145264f253cfc403bd55a48855ea683b3e0d39b866c9408f149f76beee227a9b22720cb5eafe4ccab94dcda783ce5a15c29905c2d932b57eaf359e1e066ee4e41f97ee2338bd61f01bc0516463a6189cbddbd083e61f82e6ed918942242ca178de8ec45d9c3abbe0d6a621fd395114ec2f53683cfce25c5d5c5758f81bda5f2323c4f5897e7bdb5e0b1c9a2691cd\n\n# tcId = 34\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 7465093e55ef94f127a95582587d4096c69391e5fd935f9679cd2423d5e4e2edb53e1c6106f12e57fb372f0ad6f0795fc9619651568834be5f78d4614498b79615f894058d5e9be91138895fc5f38f4dea435ee9d8f9a43cf3bd98778b1c6d17ad4285338b26ac1288b97c4b2fd1ad27d02c152f38e2cab73677de734e56e6d48f1cb5c8bb5cdce8597952fb63ab5801d60acde502e5583825173646d4ad4a7f47dfe060eb7eaf34e44a45f621a57c6afe57a4fa2bf785b09f0ccaa2d6179f4169b65bd8d71b1ddb3ec92807708354cb10d10a4f198dcd1eaf8210079b12ec50a0b759e0f32103f46d256156e8635c99c973a03f70f31e32ed7c441dd4d7e36d\n\n# tcId = 35\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 7925db05fc296b0d369a6695038c4196ef66d47f0a389ea05f0904eb9c048eeb464516de247437b2c8aba8fa6f95b563c982d21f5141505d2676b7691454a5f0c9c9d07d19b81c901b01f9c1cf5bd9b0d5e0b2e244b8475a1931efd5676bc18f84a8bf97031e2fadea1160ed8437c2dfd9a8f7fa918e93dc8803de821a067b0eeda6a6ba7c0a74f403b3fde78b182c7a22b6ca779513e0955a8fcc69d9a6d7d1e7960c032539f17322cc40e8698c146df8448ec2a430203dbe53421f2cf19158bfaba36840a5336a775200395dd1feb4363a4df2d115b6508fb2a52a7e1896a85fc778af2e014d485bd270de8727640d7e878fee0ca41b552241a83c1531fcff\n\n# tcId = 36\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 7255b2ff2dcd7241daf5c0973f37f460e2ac85bd20d4310c2797f2e263f4f8df1a70eed714bf5fb19ccecd66391abf0d3d6266313cf28b828694ceeb9846e9adaace75f691f9af5818e05fdccb2e2dc0c9cbef64aee2e058a0954ec3ac9d5146073796fee6f1fbaca676a5cb70b00bd0023b7d171e4f79d22d16fa3d6886f7695ebf19ef51d0d6e193ca73939c620c632881a26d61a354184e00e805e20326173fc14f1e0ad0e85c74272138f58345c365e4e46623c624995bda7eb6be14be0d276d6b6ab770b1d1e424aeba562e80bec509fe3c3646f455ad9f3ce1db8f8b923aed9ac89a72505e608f3ec9e58be7bd130e81c1e7d3b0bcfd20bdcda9e0945f\n\n# tcId = 37\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 9cfcb1b8abbfd5ca02379491ae39e3982ac9fe8bdf9577957ae39cc3b7c82815063a179822657aee3670e4b37436d47d7c24b79f5ac06d14a9ef51d5d48be524d09d1b8068b1af518ec4c80e2da596d9cc5f0fcd261a366ddfb191d0767e02371184ebe7b5999879ca805a79c428315ebc350ebe3d832fa0bca87248be57b1c1ce72df271cd7826888c43dbc4f187640ee5cde3ee3f004b530bfcddfc0eec7884998255351c7cfb7ae5d8356fbce910df9ec471ecfd15c3666b7943ddbbf3c688289ce3375bfa8a0fbf3f6078376c5f310690872c7e608b87b680be66d91630c8f3a71e44906c75560855ef3f341bd8cfcc1e49cbf77b58222ee1288b6979ad5\n\n# tcId = 38\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 67c3f8293b514637ca21417422cad5f3c5f39fa97cffafd617ac72649a9026047e6d8ad968e48a9523d0883666dcf1d7745e2bca246f01dc285c34b87c10bae061e8e9e9b27c673e43c311bd23531443960f132d78e667ea8d22e118ada4efeb34a84d147b9206a5c462f89c49c34785416575e7ec1d61c0cddcb4aaca309b44cd5a5d0a0266e7dd71171e160b761dc3f12024b2508196caaba0102ae74c7dd1cf1c1f45127cf532f274489e9af63c02b2d5664375faaf1b7ba2b556d46b145c28a8d123b5c88c0151698f7771b790c00c17e75bd63d48406b4b245827364fcafd4fadf605bc5f68a78323d362189ce601a791", @@ -8638,9 +8948,9 @@ static const char *kData311[] = { "a5916a6c0ef2dccfd5ac7397e76a301096732584e8442f20ae80627588961cdf97e344e131d79e6894be6fd51b72122bc2654d00f943683a8db630d35c6874ea56f908eea64902f18c0a548905b3c13114e3526f3d6ed39061724c8e9df498545ac7f455c37d2e05beecd47c15181161873925049bfb4a671e4d1901a75099c7edd6499268229353073a598174fc937f856fe85f950e9059496348d0a1d9f98aa94208d66ff3f58792ab0afe27075b241a636f1b5835f4a4b330c6f9e032a736119a1d8feb99f6c22f3490a82a65710abc3767e81ad70a230ac4b1db9a327ede40\n\n# tcId = 218\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 60899366735cff786b22572d67c50af5f644bcdfd50c559d989018efb91cc888398ce3b556d8ed134627827e7af0ffd5106795ddf96f988e581d8498ac2c2ac9ac5195d7c15bca548ccaa070924c6bc8de828fc08f5e74b8eb7cf94477310436b9d139e54e97a9764d0750182867e00f0f9e5b4b6122137bbb65271bda16add4bfb9bddb3d8ebc063296d9ca073c377e56993cd5f3f1bf229e0f40ad3efee00fde0a9ef1604f01a24c20d67fee04fe8848cd245a5b0e69d619dffea08fe1afb6cf075c2594d00cc6a21353656b1aed51af47159ef88b61891842a6eed6c3d294c1d226009d457e4c54108f8ebf4305d0dcacb07e60b51976c35d9dd5aa10b9a1\n\n# tcId = 219\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = bfa56d1f9db006144a2714fd66a633ac3d27e7033ad9d59967f816ee45277095689203f3b257c8fb64b3b1d16b6e424f1347076b6009ae56ae193075b82d5ece6e643f0e645b1675fa0b7998c6f5414511d2acedfcecd0324543f92a462b9f9f79223931e7ead2c2915a1dcccafaccbd374669caf1e2f50d45aa986e4511674fa9a5bebeac29760bb055acff67026ba83a977aee4d6bcc7b247a76bb77a345ceb97996750b77fcf979adcffb71e734c461adf3e23b708591f4987d59ca8983e0d10ff5a78199a02f02ee171c26b373160efbb51a23451bd326a7a6dcb66e4d9bd02ad30acb4719478b0908831d5cdf4012efe94aa8d87290f9e94d430e9095f0\n\n# tcId = 220\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 7859342f4b0977d970fd2c30ca94e898545f8dc398e37949a58146a203d191a6124cc2e0de5d3311587b4a54a83e5855486aeebe867584d7fe2d6b559f5bf2bdcf990062c2f04db9705f06fec4a3aa3db300cf080d1493a60c63df1ffb98e1c82440b8143b816244403c7d806bec0481264219fa263c62852ad9315db8f03b255e7e329caa6288beaf7a34ce3273ff39e8c8ba449a979253b60e48b66124cce678112cdb13d28d805c6b3a5fe55cab2df194287fc060442fade432473aaf96fa331fd16544c0fb801c30f63b0864ccf559432f98d1fe42215c050bc71616145b1fbb33a4842bd3222bad53bfba487101147c3119071513a49ba753c8b2307fd4\n\n# tcId = 221\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = a5521057430948701805207688507441e3ee85b3e8ef9334922c8ae9a9a8485f95f5747778b2f7db8ed3df6655e57b03022bc1244d04961d6ee57e62c762040b581bacefe7e5beee3fd1613a142baa6ad106e720206cb119c1884f41b90e3acca402b18deb5593c3f2d9d841e23b2f9443c13d450463b4e272a08fded7f00d26029f7c0478af557d41e7285c48d9a0ae3719a95a14bf8b9e25351c7513a5ddd86a2e6c124a54be07f29660bb09da8fa8e484c0c930833fd727b429ddd2b8a6e1626d05f6265bd88eb88e9783123a7720068f590d566d16bf19b474d58ab5ca9f718eb5d432d11f6c65e9325a2378c6588c5c6ee89edf7ac708c93bb9b04a1f80\n\n# tcId = 222\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 9c0eb700b26efe50ee6aafb76f0a996890ea71533c374286ded0c21a567afc5bb212e81cf80cfd6f2d26a3b27fd7f17a4c976f093b240fac274a2a22969d119ebcb26f81ae0bf5641dcef96510757de9b0e7b02db74efc1ae55c55e8135320156ee9152dd05c922066aa895319708bda1c7a9db1890ef7cdfe7de3925f4c9852a8679f4d71714cabf8fe834ff442794ba96c2f1df73641eef076b172ea846d7649e9a42bded0a7da4647e07ed4ad8c1f2d7858f416fdba4d63b7ad80241d8fd60012b3a77e7e0a759091274d350f688c8a73334a6c0f2cece789042cbc16585cc84150278bc3465b3df701533674d272c33d06ac852cc4ce6648e35cfe60da60\n\n# tcId = 223\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 4ca9a8f3f2a187234daaa149e463d1e27d78edb054e999ed19e63024e41e267a51bafc7c863b4f2802b09f1aa0dd3d6a42fb0306ac38fedfa3cc642eebb6f4748e55ab41d86e3fdc392b1a9f9b01c55215543b39e96d8603d80e223700521bf4b3030fe4f2a53dbace1d668d99cc4e57098732a05b99dfdd3326a218a11c195af7f09b829ef806ef71f3b139d1c2ab00d488cdc75576e7ccf75fad3ce9724495aca667dc41df1efa59974cb52b040fe7d578c7a4f2e71384ae347fd7dbc6f6076a86797198e989fc87878ce926fa39d23175de35b1d09862a62512fb58eacc669e11fee9aa0c08f351f4da30170a6e3bb47929edcb81ac0132bc6ca77b3f09f8\n\n# tcId = 224\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 89c5da365d5d2c22a961187ac62c26bd5b88cccebe46285c654dfc31f44b7268f38d9e2902424b09f35b7094a39ee937ab6140895acd30e63bb927f3a0e017e68a2fde529af3e1a2359ad2ca5df7c94e9e91843160922ecac8ba64d38ba0fbeed8e8fc7f2ff86888e0657805fdab834a6cef5920ff70929d66676eba288233427ab5ce9e44462e03f71225d9ba2e1b4898e56fb7949e6f788fc0b76c0b738366ebd32c58731e8d551f8f52b433bf45d6fd668548e59c41943684203697bfc0cf2c53274836aff5f346eb7ca753b3856ab4d9128efb0db77ca05274b393579ba78624fb356cb3360ea05bd5f9f9d642b74211f258fed6bb940577dddb2d807eee\n\n# tcId = 225\n# invalid PKCS#1 signature padding: 0001ff...ee00\nmsg = 313233343030\nresult = invalid\nsig = 084fc83861c80ca0f3c7d5f063916b2de3a1b3f93d11a5289ceb608ed3246bdf1fd79b7bbe22bf40ca7462d6689f1f50a53c0fff60b4899cbf86825f8e834171aad934a06687787c7c833cb4c6a2172002445389583edee72ba4d31a6c5cd09b1bcc18c3358faf548369af125a915d47affcfcd30f934b739a62ce37ee0060e568211ac255ed9481f6a3a871812ca2e86417b807e6d352b0aa0ca078c75319a64bdf4323a34f379dc2699201b1d6ab1599ad02c2e103499dd7cdfe0545716e73e400ea298005481288d384b76f1bff69dab1486921622fcabf0733c0bb392c3a9876d168e0a0ed453d0e020bcdc0432aa00ebcdab36538d616d93cd01ab3a63e\n\n# tcId = 226\n# PKCS#1 padding too short: 000001ff...\nmsg = 313233343030\nresult = invalid\nsig = 471eccd41ca3c301cc79447afec99925611ea09e5701fbba0ea0458be7d77b35e798452fd19865903b33e2121d4f21cbd0a2df7e2d10e8d20ddad3b9f0194cdac071a3c4f4f879ccd88fd03d761d4cf0770abeecc946a3dcac65e1f4152b833d4a43b65777bb146099800ae324479d98f623c5321cf9d0aca42ea93cd9df23f5bf27cc128f20ff41d9a5f4048357397ea45463f04ee665bf4e10630a006f57833ddae1b3704a6f50f5e2766b3f0c700c21160b24e0666c54eb3661f13cad3fac33b0d63860262e6759632204f0f87a3e1e039e38c15359c99cf89942cea589d78fd3710a83b5e9ab09f1630fd7f9d7a8857efd763d361e158bed5cc85b3776e6\n\n# tcId = 227\n# CVE-2017-11185: signature=n\nmsg = 313233343030\nresult = invalid\nsig = c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749\n\n# tcId = 228\n# the signature is 2 bytes too long\nmsg = 313233343030\nresult = invalid\nsig = c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490000\n\n# tcId = 229\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 230\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 231\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba748\n\n# tcId = 234\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba74a\n\n# tcId = 235\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = b6e6752a6f99a6dbc43817850a139bf61d3b983821b022758da22187af9cc02a33cc4e7b59586fa829582374031a34d8d7f3ead4d9f7e42d3e50ffa74ea085b4cd884bf637039152d05de1fb6611c66b26bb4f4543eb4680dba24249aa0e31ba17b6fb4a26994b85bb1b79bd77c59ed18bcd4d4da04e45655c0d981af616a8ef5c193135a58c9a61857e1fd4c6afa60b23d214f58a968d31486c57d483dfcf7a59d49039bca4d0a7b3469eb47cb2db77dd9fcaec9d906bd206fad6533efe9b06a39e61dc1e901fe552fa086fde96f03e58cf3d6b65bf1c4eb9a8b48b218189ff4b0008c99aed899a787cc0d4ad447093db347161ce79d1de880d653b1380b4ff\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 58c3e57605deefef20c57f260b790664b8b215b3dc82d33177b8054e5a990df72fb27c3e7554f76ca5e42ee8b2eee410a6a6c8eea3634a527232d6c8098056bdbdf90feab1d123e22f8fea82f42f9b4c8d65f5febd38fb8357b295586d63c3fe689f89695638679ec3807c76e097a76be05720320a525c3911602704382854c0222e2a51384a08b98df7eed637a5dfcbb8c49156848cfa4b8b36f00562f4ceb5d7e7c6237d9d0c1dcffe3847605d1607c1665e956666b4a28df99fd7342336ba119556c6c7b162208f160ce950e7ff41c6452bedcfd5eede9bd34da77749b8df8c6925e24ebb04175611f0027253e7ceb028c6fcc82d87fbee1e2017ea43b6a3\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 8ddfa621e73504de33ee75ca1498cd7daa0fa625b7dea0756392f2421cc84ce10f0032632bd7d2b74c60d55fd2278bb86185af3c187953ebf6415f643974e53d34d8cfafecafd20dc4767001fccbd197a38222dcb1dba53ac8fea54427bbfc25a858e52b1b2f8a778b1034318c5f76d0f81b91267a4e37ee7014e50753956740c33796f8161fa72899c00643c010314440f026bed963bc3b5362124f2e31221151dd6273a28b21c3955ef6bfbe48eeca51f454173d01f7d4dded623fd2ee69442affbad43a648c82c99e8bd05affcd805814dc1e1f96f301421ed9ef6a3ec2c6bd6af61d5cdbae31acd48218badc1da7d14c07f018edaec3537d4462999550ef\n\n# tcId = 239\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 53385d184121d3b7cb41d86ae31d9945bf8057e126c847b69d2799eaffc133877a51cf8196ed85e3d22e37c1f7df932f796753798abe3d3b08b03b5574ea201eb6caab2dd1a6e112fc75c92285243bc3ffc7bb20e8b1bd872c55c6f1e4935582b2653cfb7e1cd343429d693589b516c8381b324e27d16ea1569930295fbcd94c8a75f2d0d380006f0ba9702b2089394d678065540de715c7219dc16897201d61cc0ddeb2148ae691e92348c91e9c45118ce9a3d5d10edbc2081918e879c7234be129b480d5c46b5490eaef51d3e38403a36baa961d4d0e4dc9a045342488abaad93666a41bbf90039ab189b6b9cdabdd00e11fe0bdc9d52cfff469aba22080a7\n\n[e = 03]\n[keyAsn = 308201080282010100f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d00308201080282010100f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f020103]\n[keysize = 2048]\n[n = 00f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f]\n[sha = SHA-512]\n\n# tcId = 240\n# short signature\nmsg = 38343432\nresult = acceptable\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e7a1269086f0bbc0778ded8d7108ff4edcc2313425088117b2d5c53e9d9971950a5fe8b2b67d2bcd1be74f6b557a3f90650a96d7e4dbd63c05b94f73337eea682417c058d66ce523e4461065ac8ba990c4ecd04932\nflags = SmallPublicKey\n\n", }; -static const size_t kLen312 = 208470; +static const size_t kLen317 = 208470; -static const char *kData312[] = { +static const char *kData317[] = { "# Imported from Wycheproof's rsa_signature_3072_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keysize = 3072]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 157ffb942b1363b5989ec4beb93fb0187ef016de4ce055620825d13c3dafd4fff621c71920e884ba28c5e98b328baac29ad4bfc4d2cae2f0ecb9d1b6c9fbdfc385aa565aaf6c5b3150e085e0316e21d7d440a873074e5d2700d961114ed420478647a4769d832691f7a004d934a89dc249c9343341902d5d0c3d1a623001265634216beacd5f756821f21c3b58111790657690918a2eafa9e85ab1ee44edd3d8bb89e892acf411ba9eaaeef88eca37dffbda72751c117364fd1b38c840d7b42318fcd011a4449aeffc2de32836d3a4f704d4c8ad4e078315d0d1758f098f2ea749ccce62aac592ac4041b5e733ba0431b88332a39a2af7f68f9bb1f469a793b280b964f285ce5cd1ff3adcd7dbd464a7c9414ed45791073f08415be2dd9f01dc2fec8c3a26fe97d9778e2b2fccf71a1ea5e9ce017d2d46778d7e37bb832ebd5825b3257a7852db5cb6c132bcf9ba3522a670b0e866585444ed3601fd32a922818ef6611626eee3ea99cfcfeeaa4c370567cc65e0479bd35e091b772d7445cade\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 631cb4bed6b79dcd3827879f6d64de3ae17e0fdb022be013e733bbfe0031cf204f0508ab87a2e2bbdfaa16cf24acc96b3fd2e72bc4a224428e515d6f1e0ea6927eba6ed7282a959e5df5e52eb3be9a39cfe139ea2fa45c21eb81b3197eff655b918f7c5fff6abab33945557a922063f9600a372ae7701db686f7e1fe4a6e804a0f624331fbb59536733bed3710dcacd22ec74b1a1386d045372853cac91130703ecafad7f6f42ec1aade5cb865339743c83e882f248b0db0855f487a6d3b55442f67773611a11813ff46a58c762b1bd70b5e870c3095507f23758e90b3c84526f47a825f0ae787acfd3ed349ca6786a2e84ec500c6042a9027a994c328c7a6868e6a81481b294383edda62773fd224af46e782ea3f00468515f6100486d94e818afca1bdb81851e62b3bf4f9236f061afafb3e399b93e6f6a295ae200c9bba5ff5aabcac8361c84f2e69aff8a8a21720b900d52ea4bddcfbaba3a231bb9b0dd48f0a4ef1cdd255b3524ca0633d04907ab672314c5e3173108313ff4a97df3772\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 5819a699691c01a7f35f0bb1831a1cb65631ef693f7c9ef89f1e8460ee2ec312f6fd38fe382b3bf4db8f5d208146c32c5ed2d3b13105743767a73529bfddb5753c8cc13148d41db97f69ea1dee0ef1e1de990ff565f633bd3cfd315a7dafc70aa7f27d4f6486a2f1e2711e7919c5c73c518069338c0ac984d75f58b00fb0eee0f7da6c9c84d97955137417df8f20c02b7893b5cd929ba37f6b3278a1bd35748e14086c5f7100abf2edebeab5f767bb83d999a61cc27531bb67e44a92004fba9944b9c5f770bc66671d2efc74e01fbbd2885c5175a1fd72b91937c324b8d99d3592bfb73efb9641b87949266de441b61d180e141de510ae0cdefc2160df918c08c53799f050ca4eeb3a8b6b5ed35b8b59d3acd13a600a8a137eb1b8c1abbf55f3e99cf52d7092d1e3acc08583b04aa25a052668bc982abf060ffb17c1782daf76fbd69e7fc9510c5c6a68bd525719be5b81d0f2a8b961f1aeac7dc13aeeeef9986c7a47b34f8b96167d79f7ec458fef7345c1c31bba599d09b3fe33e738bc7da1\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 636d31d8d5dfe0fc6ab01ef2ccd4602dfea62d386b002c429e7e846e7a98d0cb1d448d25be039d5158887ab46a9dd49c41537a89036a065fc10329df051e5f2e5c1d4436e84790ff6db4d3f31575e5f0fbdfcaee625722c5492fceaa3fb29d0a865200dec06e117b04753ca9450a7ca7f7d1a1176cc38ecab721864413a0d7a22d8fc1595b6cd0032fbf154fbbb31b56d3bf963761ce8ec9fb38bba3419716d0d39e976857e79b1faefd5f5a2ce0ebd94968da1ec3a387804694d90f37b34033c7f70ccfb26beffaafb7bf56c1b8385d489217458e0a68b5d680f9fa45382fd1c227ff3c11e3ec82426ec648a564f0e886e5b12e695dd2fc8465bd9d08731fb140084c79be64d915bcb4ba10f1edb4c37e35231753be2d9f339d37d7b5f22c91584a68a973f9cc469a23d3b5800157dbd72a8405fef4e444ff01f7fd23efa143c1887504e81773743843d8a73209a1deb66c5f305df539bc30e871332e82330e5b66fa6ea253b2b64b4c9781011d20e80ddd8cb83916834eb8fa696b0a4b6bcd\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 08e0ae3dc0d16c927c423f12a87313afd1d66fbd5d09f48a4dd1a8b52102bbdd208284cdd692932869803a5c7f041a4492ac2e664bb6dd981c370e0c79ee3f7c5c6dd37018986fc2cc618139fe3eb85c0616f0673403c4afe7cbca49c1eff27bbf6d7e541b285ffff20b80bf61dcebcc4250068e25ef5a8e7c3306e49fcc2a1ee0f500a3ec603b472082f12ce4a6a12a6ac66cd4da8b6efac0796e9dcdc66c095a6282ae9a32ad274efe63f43e725410e6ed4c480828ed876b76b71b1cb8c142d0c7a51dc202af796d7bb55cf544dbde2f564f31994911ec7307015b0da2c51abe265a04a74b9afd0791a68e725cd7d8b473296c5d948157c10bc4682f74d843ce72e9ee8719a7a49d9de2f982c5d4490451eaed62c305eae3d0f9cb3493bff056a0dbca8579b7b41dc8deb1becfd5abb455634569d58c5b5535ff1356ccfaddd14e0f9f7f69a7ae9cb9f4c0c9f661fde349facd21f0021423d3a9ee5031855dd242f27009090ff0c15d1655317383231799b18c01fad231385aa5020990f41e\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 9858e2557c6b99fbd84bc7eac3e31283a4efb351ff019343760a1e282368938e29ad902d3eb6cb29b35a036dfbcc7e06d2f1d15548df59ced35326295375bacd7a9d28a01b4e8acfb676d80b6295e19c6b7a259df56456e1df72f6a746e9cd31fed9b79b35d7a30a7aa257e9e8ac60ea886042b9194e7a383d1c9f71c84511faf6c96f7ae0e690112b26bb60cf7bb10f684e4fbe2a3a1b1c0caa9b1bdc79fde23fb758c2ba57880a4de461ecd2bc696689438183e2b9724fa68258f461bb4405425620a4d95c87ddd83e04be381bc743b05d26ede2ceff8a858636baadf56ef1dab54080da0f516307c579833717def053c8906d4f102448ab22693e7f52d5850193a40ccf0d68d1303953771a73924e4bcddd8486e1477d96250bf6b480a5f4b822822183694c52a2edacb331564444f0335d3b17d511ece59889b6d961767a3192d7f081caf7e671addb3757451776d4bd3b03f7b689843dcd59019ae4f292dba54738a88b86cc6ce3b123c61a446f4878b627a7f3585d8ab7bca9b258f10b\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 1294490626bdb36a31c93fa7853d93152d920b022f1b473bde3083a99e11aeba8c03218fa07d6c4a5f8b2504d2cb54505c40130fef5a2412f7a5ddfec5e2c8b5058f7cbde7ace0ac01c7ba8a1bd897e8974d991ad2b95c2f03100a34ff408a788c70ab5ec73b5356a4e3c7beb44fcb9e2f3f25d1c974ed962b148167684351dc2a223a174c9744b092071d58dfd39c38364f47d292651e7806ad7962bbedb64739d7ea298f0254244790e3971c15b861c95f00f65532aa1c77fba5c04ad078525128e92ed2b4f1269ae744547e3efd4ebb63e9df844df152a098c47fa492bfe0f1917ec973867c7491f64c1", "72cf3ea1bc3f97b42a397e6ad88d12e150d3dbe360071a3285d6a68ee6e736eb4d7d637c649c2f545259ecd430b25b38a1618d69a4602ca8a2a151066f12c3807f5dc7cbd06bf095711e4483cb0a89c26dd9e4b0b03e05beca349f601c894f9a245aca3204584a9bd844772dd87b83d481c8df18b615307eaf643cbe856488c160e077458e899755301749d2d27bc190d68a5da11\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 8b889902d581f3be759dab7e53cf3419d5dcfc825d203c736a374f37ac5570da2b87239c938bd299691a46387fb47ca656bb9ab639f6736207e19680ad1a0c7a7818f2498ec98e4693c51bfe414fcecff4bae7afc6db0d72cb9dc447e2ce4ce9ff435b9daa98cb125d77b7c7d2fe2e39ba15122da11bf19d341b9878de33d3cc134bcb77b9963d19a3037a67458b17eec462eb0d7eb7ce69b71f41287d3b104b45757c76440f370dedb720a0c721c08c055c5b815650737fa478898246d36f7722e913c0913612e753908400bf6b456f269538102b778257af0c7c14339d0ae1ddcbaa357369a065c0b3627cade311a627e1e3179514cd3761463eab7f9485f6651793cdff282daba9b16c2f79adbd24ba54ce4890a9685ca78d73e8785d722825c9fd22ff327b97f38d5e0b95f449928114ee9756aef5213eb95cc40774fa1733fd02bf37cf5243e7ca76f88e7e3fa8d28a754b5adaedf31a91e6911688a6149ecb52eab8024e72e1bc3a98579d9eb242e08fc42bd491e3b0924b03fb95bd1d\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 46da0267738cab66df530dbea6fbbebbe904ad3d6ea7e7a06e39a3b5f3e38bf5856624185080fc756941b226a52c8e6126d07714deb781f6f7944f47147c680aeb0dce310c7d6f429429ac73e562510678c23042b635116174a2c2f4e8e8becfee1e4ba3cfbf4e2ee541c7f7c27b1916a2aa165cdeeaafb9f81c84e9754d196c3a9bdc777fc55d86b6bbd16270bc4d3cc75c2960f2a7a661105184b436a31de2cefad722a14abc1cd2f2c75738b2c81580fecff78d7d385b20d1a03d4aa2c21a168e13da18fd628e34be16d821b48136b6dcf7594ab3e1243c0a2a9e785fe40436cc6fc460879b673b068cd35a9114b59c2dc61fb875310e103610b74aa5e3620c51a257dcc3b9b0adbe774426ede0f779ea9d370f18a19d8844ed9f5d90ebfc4e0607a467645711da2b500840d4851e3de63723283bda8d08acc51a012699df0e8f5aabe269206f93ba4ca6597e17cdc01d2ead46b5dd2433b82237da01518ee3168b133b6a42e9a73194fcf9162b71d08528254c34b20d692e141c657c969d\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 39c1fd7fd0bc4578c3370787ea5a133e8a34ec9702dc1456c1ca7f8c3cda7bdcb8beed72e4098de5ab3e467f325141a324ff55af1390ff6f3d0cdf680f4319378f099604c9044025e04ed1af1ba5c74805265d8963684c7555cb835e8b1bfc162812698679e47b96744809002c805b75bcc5233f378fdfdf3e56593bfd6b0228f416f58b4c32ec0c2d32fe113cf7f3c347425b69e8bda1a2c5bbc3cfd0c1bbc609086d91175fab0adf050a8b3e904fc4a700d747500433fb72c55cdc25bd283d1bfa1db93604f18b8960127e9b7080227235e6ce234880de8e3c49d5edfa205140b8ea383e546e0bbd4c5dc59d0c058670ed91a02a3bee241ccceac20d434a442bf35ec6d5922196d78b080b1c14aca63b827434679d7b6e666db10dd9a85b2da60c6b47fc97979974f11b6051fe9378d96c78328ccf4e5cf5c120c2641b3f6b7abdfd0832fbcf59fd3787100032ae65aef2b076631788e7be1019feed9b863f39759525be659f3ec50dd7e9724bf6d09d8b771bc60e8a8e788ced8d945c89ab\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 530bfb86fd2a4b31587767d5809e5ec2002cbdd9121e135391392c242354844a9b4c8993ae61bd85810a0ed240203cc4be48ded5997832570875a7b775206460067b30df7c3b7f7af9d98e436f0007ce0d6360de0c1a4e75912b885d1154ebc25df90465ecb5f07a6cc477e44d3579f3a629bb49b7a19a619f44e6b630b684f3ac4daee5eb386dea0386593be825a696656e130ec0e4a4bd5411c45ade6ddb4a6284f343b0a746bbaeaf03cef31120f19f2845dd9a7fb818406b0cba91598ece880836e0b17e6f375b8941381d0b301d0ed1bf746c992649b40899d2ed2b39d488981970cea6da2453b5fc85f23c8d671a3c7544f4a7133fb500f5448da44d4c405bb70e85aa3aa399204148c01d1a79de3f784dc5a9141dcb41872461e62deca48dc567b984ee80097a099290e413e575411faa54f7f3387cd7759f71b8013ddcf9ff2079503ef802c54fb731e3131316c93182dead523f41551bdd3a96a4261bf6c3dc72a952ed4b7cc95d116741c653494b5ba8ed9aa565ee57ad22a4dc83\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 94e0075930de07ea37f0eca5023be15c472a674513654d837befcf17765225c73d17e93ac4c69d855027747c7ab81c6bfb3080ccd5b6dbdd41e2ea4871fe30131bf2dbc143ddad0292dd4156c60cfe5172fd9703729daf99b2067334af23a2aaffd0f74d574955c406ef8ccb1796189c140d1a45701c993737b9de11e44112c4df9a5b2c7ac827c9329c5f63f4bd740f3f1baf69a8fb6b69ddf500272beccfc2f24902c592b91de99783242fbe9767f3809b38368f04b02d973c761fd999b0c69eab43a2187d6de4fe5455e070e20bec5bcb8ffa5e439b04e3883804a5dbeeae652260a405ef5e2e6b9b7bf7e8018065a900cd831b05674a093650644c42341c3f5429d59fa3aa93737a6b525a80e0748518cfe19e6a4de792d3bf842e2a864f04da31a8ecd0b191ea656f1c2987a1973ba1b10e16b09524a3cd07c96814b395b29ae1a434e76bde8e0b6e4e29ea3c6871ca447fddf077f53a4c2c3499c7e96dc6de112cf28ba83d8d274ec03fcd1d570b74e22ddddece554b7645380a2a7483\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3e65342b3d9322ee9b0473f54f0c3be5a17f56f2cfa5a8168bcf3001ca1256be867d3a575b07c3d7d020037590aa10d75dd764a1d57a123976116286ced29b68e3b625c3ce0c235a629e27e4f8011afe4b383117a8bfc927a7718bd81ec4a156ef6ec5cb206c2f23941b595ab3e8e4a3eed825c8e2af444cc7b0ae0e303c8f109cc149fed6e8a2679c55a2f483dc64642170d0f62f0f20a5387a80c5ee3e72d275a8c3e18c65de6f9af8a7ce886b83d84cd0270bddbca64db5d6de42619ab0f37ec18594a09a80c0183d44dd3ec6b46ca4846daab73effe1d5e2d8ce302db26708ae9223369ba5c488bd11ad27751abbf994e2bd18cc999dfff0f65e8c6d6d04e229252a5d6704483458d7d094dfdc96cd5a7b0573a2e0b50fc14a8d291fc856e63d82343534b75b25298c6ab7af401ce1215cebedf87635ec80d0cc228831d26c40efa5997105fe4b3786d0a44c17be443a67181d35a5ee56da18b7e97db573879686a406c3bf340851d12d8ed57c0530433d655aea85eb3211bb7f128c91c0\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a7ecbb2fac0916fc1bc793f4503d496cf2683d1529632eaeeee4fc89bb8174e7797a8d78faa95a52da0c4c887585d61c680fc4d1224e02d3a0dd2b33031120a14be8ad16e267656c683c179d261f6aa6089a14122168748a4bfccb59ecb086c0b7edd342bc61d2a9a2f5aab2f4558d458971ca04672e513d3db5784db83fdb93816bf8f1b443470973d96ed20a7d85adf93bcb497ae07022db0f939028b9387a1d448b3fab2408c2754478621640cae0ee6af76fb6e653e4d418e83d431f7967e435b748e8c7a26384addf77115e0dbbf7cb5be6ec0d11b183edd6def81d0554a2e7fffe692e3cdaa6c138cd73bff960f047c0226ff0ce1abf9d16ecca4c3b998ae8ab1fd1e35f80b04979ecf0338497d1df5cea3108bdcb1d0bbb6636ae234cd81e6f2df123d263ae38924783a2a11c85b7605808e84433dfd72d9ae5b9d82fc6a8cf385b0994d32afabf3ba62e8578ffac2073d81d69c808a2c9f46b1115ce7f26885d1be3052ca23e2cfd05e92469795bbb274c4cca1b992612d0610c27f0\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7c2c6b135814accef0caafe8a22b8cbdb832a30c997edfd33e01a9578e309988322f08c64704080dbec0469274fcbfb131b4388cc1181ae2004a63cfec1080087dbd3b9e7409fc0f960ca721d456755f1bce99bc91ba36c65e747e4cb693ec4253f0ca37d8b9d64d5f7d0526ab809a4f476e6537263adc00f20d4261d78e5b6f22896706c665e885d5283716dd959400d2a7cb35974a3a3adb1a4bf3bf36e9773ca539787c0f6a05d17b75837452e247f065803513eb8c6c995e989a52a5d48bec77930a91cdfc1f373c58b344cb1700b7707a1801a758246267c8ce932035f8a93241f57e9ea8c4d2dab3ff4c5fe06caf37e5c996e60e7bcc4f3a6176a69e61df24f8cc080b7489bfd8395d30b6a4cde92ede49a26a0a03c766cef25ca6bf982fc3126ed7b1b1b2bf4a7ad9ddbe1a3a456a6720953460cebe6e1bd5c333b9ab2812f9b47452b2759436137424832753d8a97fd456603c5585620342fa1dd056be6247297d5758529c152d24fa2644e613244dbb66815278385be78cfa4224b5\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 27b9f6f0a34cfa0a71fe15c15c910b7c8f2096225213e7021649aa3689ccccd5e2041578ab5be9d110a05456fdc516c5675561dc82a23fca94cd66df6dbd4b0805ab85b57734f5dd2d6efcb1a0bd8c3da6f8ae7a68f54e015a324212b916a0eae4095975f76f509ea383edc4fd888217abb893693f821f4a3c72dff39dfb0fa7abace8c16151d01bb81be374122f0e479748df2c82ec87b443325ba908bd00b2cab985e64c7f6a1edc62787c64b84410d93ffaf6d9a33bf3164e4348d7e1afeb6cc7d3e8a51d723ba6ff27ff5ef1358001ffb8eaf651cf48ca5534bf5d86650e73b540226fc2a2c1a7c52e6003d89a108a65e1c9df183b47d1753ea697f05e77b3a13cbeba8daf25683a6bd423b2b7acefa66eb5e6d08ac1984007aedb7df5d4fa1da1aa3c6ea5f383571aebfa42ae1d42060d996cd9dcbcbfa605f002dd7ae653e7c295eb3c3d03c9f6c479068456a8b0087f0c61492ff7c125e3bffe30cc45a136d72c75b047b246dba18ebb41f3fb9ad0216a09d888885b4402200291e6f1\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 39c7a8c06ac4835655fa719be214556e0adc5a00ab466d88d33e694c30882e7c41", "d7fdefde724fb8255a44ec4bdbbd03d1ed528b4ea980bde20717349c0f2eb78141ed6f4490173e62cb2c48b76357c7816d1b0eb5f85391143d04cf6a100ed6917c46ec661a35860b3210ebf71bd7e6b8e4b8909914226ebe925c99a7a5a66f1d02c876f25d80ad4482899193d9a444a8a1d0ad8d5afa912b53995dc36ea89599f4f181241a6f4fbe698de8c7c794a82f1f576c255e701751d3815f5b6fe93efe9a678d2422ec9a4a5d090beef2e552db07a4d146f90bb4cdf1ea6fb844ffa1948542bdaaece102fa3359d2bd23c6447ddd64dfd7e4c94c801c2b6ae17b07b07a4dc79bd69ce5ec46aca637845a0185a372feb8adb7d60996133b9c37c32a9ad869ff5534f39aad8701e3487e1e6c8fb9ddaf71a1c34374a09ffb85fe44790ddea79439bae8eb51ce12e5abed6af335ad1ddbda07a8507b6df0d0f3ce80dec487968d29d92a139eb1d5ede5c28240320c5ad9cd0edefb69fd156f0626f6d45d\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 4c8a79462d5c62f418c83b35e67899db78b04883afddd506855ba23e7ef8c5336c1492faeaf1d57444d1049bd008c317fe7249d5decc09fb4f39d7858edd097c3949c53bca1a439674a61b355ff5a9388a60b7d5c7255961af7079e72c07fade552d0b77c36ea3d2f0c7c9985b8ce478df8658de208dbf4690299db7f1d32660585b918af94bbedbbde7ae9444972abcca2f6b3c4004e3c87940793f1a625d932ba14e715dc1b5f9231e0f34956b2920eaced888b3a320ec8376b059fd48ff369beb1ebfd32b9e9c9623d28b54856919b3af12239df425a055cf43e448541af94b88a223a90580977a72782b831ba0a88877cad65f8fb49c68d5e3b2f6224637e61f4b356fda8b8ab916cc31b18e6f92d33e0e27971a480491fde857715cc55388b281e7d313ebb0abe3337f7d4544ef9d144e402f49c2b71eed30f8ffe8e600c31de5960947bb07fcc4e15ac0d7bf00bee0920c9f092c8bed16ad9ab7d752433a96dbe49ac2cf33445257a51dd347dd77dd5ae0d08b223c457db3b57d727f52\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 93391857ce1fae6df31b1ad972189803a1fc3ae91b89a264ff86246d6efbdc599003bb7c35814a4215dfdd3932834d4064b497f464fa93054363f1fa5e365825d1b87881e125a50deaf22d75aae32fc0fe1e8f3115f7cab6af0c2aca54d6f21f5a72fa77a0731c9f8ea82ac2e31155fe56a7950f61fc1b22c274203ea91b28a4bba0a925ecaaa017b9258e1d0f492c24336334e328054a12df916e1e4108d0b7e5d8b2bdb3d4a10282cc1653b9df2a24a7ecbd753cc7677c88c2acb7f741e3d56d670c226a827fd6b19aefa445bd277eed60dd13619427a048616dd26770ce76a3031bf5856b50f0ceacc7bbef257d86f6e9fae62aa6af550c9d526a6076d1de77a9097acc15728cbab9fedd1428c33a89e07c0a49dc89822558da1da6db6f8f738ae309fec8f033ceda8773ed3eb5bf6203fed189c3b7a774cc5f44073dd0db9e4a614bf7c8005d5c6e022fda36b82dcfe66f4679eea23269ff39213851798e63e42c1ec5be20b3cb5e20787597b43248d4fadd1c10cc94d066639736b7781e\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1d9a1575ce2cd06e5f160063d03199cac5e912cea51439f738d98ede05aaf7b821d8b26082ecaf4d12fd01d0f64be9ea2e1831388cdb5e7c7564b73146de8f9b5314ad6738d98e1053ad0d7d594425043ece575c75128888d0d7b090ba5d5e008be46abadbea23c9b7741a023151ef281d99fdfd684408992a8aa9f2c85376a40e53d9d223ef4ced563fca832ef03bef29a47bf381eb6728830ba37c69a99568494efc85370e8e9c3fcaace1a59d6c98afd03a0e8bd5da2f5c909df5710e385ceac35ab0fab92a6cd918ca8d32cd5d4bfee5dd644e0adb3d188a5d0e7a20a305bda34ec10bb65c922a0c074e8427cec78a590c095a0c670cea6d34bc7a88b2f1f06b00b368b8009cbfe6a14b18bdf2b01caab7041d46e6b76fbb1f63e9b309f60fdb4f1a6033a11dd7dc1eb15d7faf922b3fdde28796c44e226633813a969ae1fc54388525d0a125414060862718bd0ee1337de2133fc773d06bf83987a22e4d2e883765e3affe55ff8d92771da79ea0898258f0d7e858fa3937ff24f122669d\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = c0177318feee842e802480dbe0dcfc6215d75431a30bb8492cfb1cb84f7ebc73dc37f56cd0dbca1f6a6516c6eee3de3addbcbd569bbc79d533a4f5955d95babc717cd4c8f5039ce49ce7dd20aa44bdb96a394f8499172079f8ed20c4ed780ffbe11cb00d04aeab80c882eac517c153993892549f2d4203d8e3fdc719fd745b06103b49f54ad51b6dfd0f4c94b08b7059875073ac11701e16af0b73d7b305d9a420fcb560b490d01c4afcc52b9b21a467e95bce62da8f559527066116c602bbcc29a434ca04ea3227a25a07d733f1b867040ad1c85b001904c749505166635c217d8858e637cbd74ebd1b86a400961f2713cd00e64947c2b5d2b97a4ef795822eae56328bc4bf8e8c9c8bb8d759a3743cbe9d368d985299d8338796ad6e24df7eb7db18147450d2db91000c8667681b47aa9f0f2e08b48aebadaeeca32976dd03ba94ae72950803a07f566e091670c83c8ad01cf1a2a921467010c20975e1b9653a7b56d2137799eee863a576a2275c33320445307670bc62fa039c7cdc8094c1\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 5675e16b96e961dd428de891451ed0d23706165d65392d277eaf846e24f0c4388536b2b52e519c07d0e10686a164bed5a05314249a77f77d140dd16d42fba947bbed204ef4c8a958e49f3aa4e62438ee333812d6a9719ff166839e467080d8762a4268fb575a33070209013741ae8ea0c757bb44d12450579ac8e22870569c6892edf1fdd0bc12a7823b695c4c90e93c3cea57c2fa004eb3306d13ba60cfa7aa3f1465a232c3f4cbb765a82bd59551d0f130137829871bd35cea7c59cfa12f188c91dfc214d8102810a7deccce40f204562993633ba4669f4d7d02418d5a66db59af8ad001884969b8e00951492bd846ad7db619d623b3466cfa062ae9282a1cddf150e761c90a3413e92f2f1fb2b5b62d410cdaf6bd8885d635f05f20331416fc3808fccd342764b7c244c1aaf78fa7a1166b1b204058a16ab750ac3fafbafdb2610f52164f75e7cff8a4c3cb899ebd5fbe1834682ee94e6cd810a4015ed7f0fea7f1494c5a477b572d172056629320307e8ece3f72de5dc0652e688d79d154\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 562cb29e3b27d68a9f8741a57006296a943bee15c1e0cff97e8748ad822a321234a15fb3b89f4e07c1756d693507461172981189e9191e0175c71accbc258d3e79bbc627365c95f19fa416aaabf223bf22fbfd46cb8022a88600fdaf84aee70e9c8939e24de4e8a5fb2536c4fda5e3e3d71adc377708c1f4d7982c0c2267265d4f85d9e27f689de2c216a21239d6d4f95dd30ce102da43ec1b3e72ee5696db8c63cf06d94b8ccba75e197b2d26350d35336475f66de615daf8c1900ba37d7699ea881c0f7af84e936c402c08e15d3923733aad0894b4e78216225911ceae7f4c770a17d90fd7178a196050bef7218d7e0fe7fd22eb5c3854c806a5cd179e3a82b59d9b4e9e2dd1d4cd998ed32ffbf19a91cb19149c948b74861fd0e92174c2f35c82c9232a8413adeee723fe489dffc8aded50c7716403c02549802e083f16584b05e3f67a4e726dd8ec6d4adcfedc0695a47ab75e6d0b0486e946b6485f89162349eeeb88f20dc3095ec5f45bae1c2b7af4352138e864e6fec18b9bbe98fbf4\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 2302f69cbfe30dbdfb830918913fb556f2634e268210efcd0afff8bc527fe30ea1dc36833b01fc1b7b1d8781913a5004a24c2412b9e0713b84f228b6b08349eaec2ac6908861157576c89bcf472572be53c0075e48534d335b954f46aa456c90653912e07137a418f8eb59329996e86fbcab8e585d80b7a8f97e7aacad3d08d24dbe30a76ef8f47788d36926e74c0f24df942f73fbdfd649ffe9a952acddf3fd8ed9aad055c3a950e749dfce25d0c45114f40dae0a449f23d7915dea8ee1f6f163849affa4b7b8105badbbffc5690190fce192f4a647b81b14101b4fd9b1f0379b08379901f0908ccb48d5c88e8a3d0b6563bf01117ebcecbd84dd61e6bf05b77dd2a3c63d9c36a394843df28b8184de81cde4f381eea84822002008938d3549550cdeafe31606fcc282ef2c2a4ab90b437d0975a6d576fb705e26131bd07add5bcd34887496b653f3e9c2a7760eb367935cc8052ea896c6f2023f0d2a5bf3267835cb4adb079019b8974426953ef1447069a79cdb51fe8c32fff14a9bb8f78e\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 92218f94fc3552f215e98d21758992429cb17fc3313f780feea3f482d0e32cf97fc8832205e74286e69a1fa35062b984635687692d15e6050376afd8e8501b4a07e8c61006a2fa6eb27e2a4c310f54b907808027eaf9cb0530f8ade781c4fa9095a41bb6630c1e0973783eab65cb0849f9c8e89f3c997ea3ab930b4fc629028dda3d5e0e7dcd99b2951282c31b8e3739b6724a414dbc254802e63a1a6a268e7fc6a91934cbb27d9cf0ec994fd02334a7451c3658e7ab13aa5dd27e81736c9cb316679eb9a3d3f87c3739ca07a7be08a0402ab2883d860867a4eccd2476c8d9e37e2ec214d6895664bdda7ce7344c95622791cdfaca32508c8b7388391846b720659de2aea7bbb84520fae9edea66638270e735677f175f115c582f8d76185e8edb3d105e3d6c0f490ec486f7ba41f750add6d50997ec85ed351a2b14a4c328a41faf70ff3e50fd4ddfae6f9c74fd72a7c1bc0df045e31fd72f04b6a797e0cced07bf2fce788d75ef6d783cd6e4eff98c49e99487c76ccd4e08ea26d36c29aae1\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 55a36002b43d9b5a2f99ba0acf767cb04b54b7849fc2443d123bae5b6c6b6fb666d7ffb96e09580462df5fc560cbe9744c166f8f43be98b7b61ab71b86323d771eb6aed87ca4261b4e4d76af84813173c01cd82a87fda653c47f3700fc2110a852def8c785da96dbc779615335ec871a31ac3590562e8f50972b5e217d45089a217e8b0b1905693e7dcd121542d11c0083b967b04a8927211ce89262329ba2f7875412b8785ebe47693b8f3b76f98192bdadd3f4359999d48d751290e87264a5f2e53ef5814225931b253b451a3246f22ee3fc7295806ead7992bee92e74b19dba84b1228a8fcec6fc0729f4840d2b467956f86a916129c57025c7465fbfd760e0ddfb480f74", @@ -8668,9 +8978,9 @@ static const char *kData312[] = { "fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030000\n\n# tcId = 229\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 230\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 231\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1202\n\n# tcId = 234\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1204\n\n# tcId = 235\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 4e28f546283f9ac74cc99c6bca79bc208e47220cfb0717aabc521ac55119ec6bbcac880bed0007c04eef92a24b091d9a09ee5d3b5be790abdb2c98a07313d505fc876adcbb1089026940e03dfc10fb46a0c2a764ebe86e51ecc2ab489f56daf38764fc0a36a9cb4529367c9880bfd7631c340fb7fbac0edd2e1def00d65bd52e597e2eba1be1e41bd89a00f5c66fbc18b93e9cc1b5be962780f6d7a9c6d375a28556114f37a8a3606dcd68c8128bf7a7e5f1205778bcf3048bd4f7c10cbdb4ae759954c4e4db0a9fe4df270c41bb86885dbdd8cb7e72a33322238a2d29615a2f01e9fc59c230c2cce58ad096c2de5071e020f76c8c39874f1de677dd5d2f96ab4dc145098d25b740b5279f05713daff54ba695f950039882059cfc2f86c35a0501b8d0914aa59a806e8d1403fb2eef163ba1d6e3d1e18dc99c622f8c2d360bfab2c9e8fd9d74a027e466fbcf4fa56777ee0fea7e04ae1901e65b5361f97146d7f4a550adf77539fabb7135967dc16f8ca99e8283dd69627cf27cb9d2df20bbbb\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 78d3509284dc06b54583e11ddf2507d9e50bdbf079fc319d107bc2527c1b742f4c759320fa22435d74e94253feb4a379128e7f33c5f3462fbfb92ff40c10b23f8bdc5890114757364207768014380fc16ebeaf22a7b1a9366f3fbbbb912347f1ef595d742a976b69377533e7b61d3237c3693cf43b34f92773497b8df7ac0660f67439aaa66fe179b34d9dd4d013e8fab958fbe2a27ce84b6d1c3c2998a50d41b6b38000191673c23792db2fe47e4ddd3b5396c65dc44812e55298b8b50b5a2a01d508b9d215986113b099717c3a4ee930f479308c20c26630aa5419c2589c8cbbafa7eaebd71fca9e751793629d767be8709fef9177d6631a48731f5e59fc7e98cd466375e8775ba935f12b45575819ecef4d78d85b6e984d90d41c93bb03c832fe415fb567a1d951f7dbdf407beef8caa3a741ca7c7729c8d8ba98896dbe52d9785feb49332e646771e7d84b75476aafa0a54512806339cb54ec1c70943beb508966741eba4d39c2fe535aa82a9cb92eec99d38540efa3e39fbc02d757ad74\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 8f9ac1354af4161d0e55b5674821d02823b3a6b3f79cefb98cbc77f9ac2d91cc6345f989a7828132f73f3630a247a936b6a057b3e5a2fda0c5999ea7721ee8880960c24cd2377e869cca1799747142d57ad6a8d83ec9254d89f591add11a758e1ea1e29bd08f624d0e28cea52ed5eed7c0f5f49d3533eb1cdbb2af837dc42942f9a86b5f4e2d5ce506697ef067a344949bdd89afcc25978af4d50c300bcd0ffc9d93cc559e3ae1a13215a1d3f6030827340c6591061a5ab7e65153b1df8b25e1421f924d39c7e6f76243c1bb9ae4063d9a475cd2ece45f4e288fe0720", "074e87868d70a5584a9ac2b47a56417cc76f15154315545a3ed6704b365f15d34320804469c3b09ed211cbc9e9e767b6f21fa16f8641d8b78b8dff8062a25b5bd3b6a38cb4706c42c1fbbe66db1c05cb57531132eb94fe1569735c33ec491c318a686c837ac810be4afff605f92bb390e7ab3cd24c0cd997cf13f112e5aa01746f43902432639e1eefcbd37b413c586f057bcba40a8f1251251e84cb7c87c53c1d1d558\n\n[e = 03]\n[keyAsn = 308201880282018100ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83020103]\n[keyDer = 308201a0300d06092a864886f70d01010105000382018d00308201880282018100ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83020103]\n[keysize = 3072]\n[n = 00ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83]\n[sha = SHA-256]\n\n# tcId = 239\n# short signature\nmsg = 34333630\nresult = acceptable\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011a21abeac8409398319e65c8656f8f72e179dd1e99358c7531fddc037e47c1e688cd70eafd6eea01c823516bc79f89d7e52ee1eb4ffdeaad1d550dc0a47185bc9c42e47fce5503c3370a60510f834b4691152ef668deca633cf3873ce6613951784aa7dafde118f37f1cdf1a687ac236d5c956bced564b73cf202e3bace59667\nflags = SmallPublicKey\n\n", }; -static const size_t kLen313 = 205965; +static const size_t kLen318 = 205965; -static const char *kData313[] = { +static const char *kData318[] = { "# Imported from Wycheproof's rsa_signature_3072_sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082018a0282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d17690203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d17690203010001]\n[keysize = 3072]\n[n = 00a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769]\n[sha = SHA-384]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 473432cf11b6f96b1dd41e1742ace21cd10e8dad89a3e00ec68f3b45411059d0bbc6c8a3f077bfb4b12da60aca86dd856934061aa8e4c3221a019b7ed3d4e70ed8bf53fa140d3c31877a135a6ae140e021bea9408ee61fe7f32e60cd18932282b1aef1019f9a39789cb48991e535568b55eb26cf96e9bab35d03121f6be9f0d65079b064cff923edb5639cf08f48ecaec0670ab37b03e4cc2e604582e1cccef79f262c8b3d146887303c542ae7c455b0f68e882c5e2259ecd9f76cd3706e9894766089b267ed3bdec29df5b57e6a6f8deff21e093ce611724ba1012cf63aa2c62e7267af4b1df5ef030e6cba7b217d46fe43fab255f41ce086bec5e4f604718c95acdbd5c56bf8b68541ac0dde0a5e0f2336ea608864abdc5324b29b9f7bd35c514373efde38bb593b8d4b249535984662bf4b397b2a584ca15624416537320fdef81133d6038edd99ee19af9567c9fa536474effa925555c9c2fcea525fe2da935b791ec1d7d3bde33a58f80dd1e587e1c433239c65332e94d66d3c79bfd190\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 69d89aee9a1b9827228c40c3f3bdb9479ed36bedd2c77b3f5dca19917a5cde9636b9f6ede29718a391224ab58f464c9052b5e6786178194a90ec04d2d2b7513b19df2799b0e7a2d6d1ef2c49ec6870fb8cae45ee1103692da8d211bf61f656d304f69adf68c0227c7af5ceb8c2db4a3668bb6a1b8cc3a437b9df79bc0dd650d6e3a42295b4a6e23d40b3a9b7548f3760e0faf69200df230d2c143807b2f35fa449cfa73792844dff5d2ae50adc272c0dbacacd60eb0b7964012a5c1981cb2f358ff53509f90b0ec41259fef321e9a306a08363ed194e51ab6dbc00ceee576c048c02704a19f8f357250adc70cdd2819157d71af04ab0cc63ac9c6fa4b5799eae521e275f26ce53302017510826f96c4a2889deaef19fdedacc70a6598aa89e2bcf373239bed98d1f2267fa7c2436add13df68d9ea296fab52fed0f5ee46874f48735fe32c61ed2b1c977ff1862ccce093bdf7d84a6b03c3007c4c926d1e52d81dcc0bc2a553a12be363b764f6a322e41a8318ea7408c18e33c260aa05d039625\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 259332bd5a274bc347ffa3e8a31c8b27f216cc865d32c917a5d7e4c06abd44b6c024f44eba997862c812d8ebaf7caccbb234293178e44b2532478e8bebf6af5f83318ebe398e0850e929a89cda860cd18ec94554e4e0d45a9ec2d9acd83fbef2b5d31dd7b2f3c12e791afd3e39a9437fda7724c9426194bcfdc6bd52036f62aeea7853db2c8c498103eb60180281170aa0fae8139417974d917090dba8f9061665e92d953827dff4d450f5566d2c5b753b65c9b522a0c4da868629569a666b7c292b22060e92acf4ed65e51245403a4f162c8b504b85a810906ecaca2956d395c163a7f6f23573156968ecf62ef46b72b9ce39303681e354e91c5d7944cd3288b2a84a1ea28e7e6f260bc5f8d92be419ad649a8f55a2195ca46130922d82759f9bc030c8b122211d952c3ee7851f09f30c2fecd1070656c69c2598584b55cbe6567dd2719305dc52dfda03ea289a5db920fc2c777e7081cfd92864316d3fca9aaf8e2218ed8a5235e746e5cd9bcc856b0c615b901dc610f0193171869202e845\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 1f32b36eb43f87b18e569fcfe7021763bea0ca576cd273c0b20352906ed8484428d250241709c825704518ff9e97103bb70cd26f437f87754bd40407034a9653d00e868a759a190f3067ce5efce9ab17c8b46000d88e2d9e68b8dae0a0eaa4a31d3bb51c8c8d0fc839b0b273c83dad57016b1b5c1d8eccff1c753e5c6d189ed07b801f0a54a1144c142011fd3226451faea43d52597b003f9256cedb0d7d7f56d86dfeef50179a794f0b0de97da1926e9491f025bb3c3e8e031661e0ead860c8914f0b294bf8cfea2d5ccc726ad0743e192510732dc84301eee15eca3c6a5213ba66d0871789315f8537a44b727bd8a10d6e54636b345715fc0b6f5b5116f22557b0af9f948558b0ff4a3b0faf1de7da1965b977aaaf039c5b7b09b4f03efeeab3189d2a09fddc3983e4815df35ddd1c2198b695cffc35aa6662839f82468cb676b677d53ee4857ab9be7bd99e1749c811e2d6584427cbce14d2ca15df061165e85502420602666993463733b43c1c1ebae8d37780470b8cf5cae31cd7427799\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 7e3165358b5d09ab1ad1599935bbdab27abc32486910382a0ae630f725b5dca5ffaa9e606e2e555122c1e0f3409d7d915ea00d8784b814a6721d0dd117297c951c8d225a484a549e488fb80f996ad65490a09defb0b46f9cfca2e952b04dfd5418da920dfb2968e48dba8f0729b16fa32a832fd8b789bfebc63f01a1190813cfd55ace949d802afffbe9a1ec1e6a5df196e5ffb241c918d712e466f30c66c0bddd48b57ba4d0baa0c2ba9bcf519c3a26140df6aa5efbdd5ac9beff48613f92d247b35efbd6014f3d714705933e47d582f4a5da05b15a79bcacba1aa15a5fd6ddb228bbe4c5236f9ac607f41a492e6b1c92bd68ce30659eb5b27a5b2f76a5867dafbf85a9dfddfdd476c383fd03e38e81f2e1434553643e652cc006e5df7313272335f122a7fd9cae6f2f5a7da65865698d6d08d688000a730c90919e1826bfa1db85d5607ff9d76cb100ea1649442cefc4251a8cc1d823215e0ad1abfb2976bc4a6b2bbd793ebf9c7770957dba1e2a8583d9a82a072386d0957789b450993c77\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 8bc948c5c16603ab63e75e18bc7f062ea4c675ebf98dcacc1a9826b0eeab0004e2592b07525fca53bd288bb56b5961aea93b548771068f5b0cef467c387e2d62c91e045872922b516dd6c5b8ac3615c986a9c8b5211a05f63e82387175e8749709951273cd9d8b2eccf678284761c72285be5c189c4400629c26f87bf18ebfe5e56f2057fd91fc9209ec48a872d6d23bc330f1c81ede7fc5a0e2b09c3a4735eff9c8adf73152b3406a62656897c1eef075c4fb02244ecd93912dd36fbe0d358a71e02d2b302dbebd28ba50860e4a963071f0a890a2e400c18f530cf9440a897eb2781ceb17bbc58f61828a6456b93c86df972c42d082b913c4d8807b7563aafb7b330ec39dc988674a5c3b36f6bbdd096201f1c7c25ca9ea8f28e923ba46dbe93910268d6e35cfb605b92ecf98699ae9b09dd4634d1280586c5e6bb0b1a4b5e5e22b225453f5c66f9a7ed7fff83ecb201eb157c76c9beff95227b495c8516bbc7118f011cf9237b6e794bd7a9ba19e35d0a650dbf7c06a0c9ddc95f108a78246\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 09ee821221ce7bbeb4d66ea3ec88387bb5c5bfb055b8beb36ccba4c2ce9666b1a09935689db1cc2312d797ac8b6f62643de736f38269a81f969308eb616cf41960341fa8edd3501f4edf73736806b6fc1387df4ef3e1e26c03249f3db6471ed580699e8ac77d0fd9a78972347e8657b6cdfe172fda324eea00d60d38b47e066c4a6fc0e33f75d1d4ecdf46efd966ca9aef80d22e43dfc2cd0af37fa70d6df7c637c3c18a219bf58dc1e7bfc941a235bfe81ee7101530a2c264527608d7148dd91325b7895817ae50d774e8dcd2def8a476a9592d55be743c62c1192f0ad69981fdc8651c1db828097ff8088", "b720c637c60c771b5091f9d9e174bc823115a1f7dbf086f9ad36a403c2d710c47af4753fe6e43c675c30219abc2b8560bd18c25aac719546ce7a74080fcf22bd4e6cffc270e57baedcf2739c5cf4fc5fac18f5dd023301caac1b1faf4dcc65327255ccf54f5fbd3cf82801a8685c2eef3c5e7f608cf6f747b8307f617fce148347b76facf0e1f7895aeeb11e3225e3a6066a244ca\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 3b1a01f69afa77d96c1b7bfdff94d58e346746f3712b2bf2705d771b6ee082c7dd9d2c8a87de6a684177edd8038ea1b9bfdd6722a1453d68204e4d6effa584a1b9520561982f0181f102de2d62108418778b4976b4933a79c6a981bd48f84711a3f7cc26ddbf06c59aa669d56d60a741407f86e6a645dbdb1f7927dbc0acf996736899dd9aa367ec7bb157ed121da15f25bb21807293ccf6d3a66e18713d80763cd153cdef58b1e6e31b348cc514b8f2d357d14af7cbaae39993d7871bbd0cb9c136936b292dd368ef1d826000d3ca13ab48b659d231c95c02163d2e11e33152e69f6f3f08694918d89f9a04ad6a01c0887309654a4ea8a848422dc924f990cb65ba2550ce166b6a001cce4767a3f1cce74649876624d2a1111436a9a6b06dfdbafeaf329886d5e7482ce3e81a33b69a9fa7d82981aabd81c2650c3c2b34778f99efa2d3843b386c24377fe17483c490a63c6896212f8beeeee04a3959eeef47a00fec8061845d84fe7d7afa206074b41ff001be315a7e32c2cfabdc861eec45\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7835e135188e97973f3cd0a05a102e888fa51ce232062c9856d134b30ff32b513093e07b7571b251f5b3618364b830b1af01169b0a19c203e079083c4ef85827f1a4095f0a6cfb9ea0c6ea4ad1bcbe27188f90b8c66a9ba0258d3baa49b97d0f8150370bbe9926e1471772f1f37dd85b37a5b9a4e15d32c02b427313407fa9ed693e0f444fc6f10dc1564072c360f9e5433fe985fa699860d6c9fc528aa82cd7b503854a975524b132eeed5f94015ed1b2d85d9dfc6b10b529e140bd611d316cb54f31f9d7d06b6deef9b63519c14ffe3d9694077bd0bbb3482b09a490b10ca2c6b510532f38dc2bfce51cfbf2ff8a43181fe2852e6876b760558129c3066a4f2f6e0f2f4e95c85f40ccdd81e795d5d2987c92013d542d99764bd0cac97024adacefc81ce89b36311ec4ee304b2307cf1e10d1f171f0ce7413cc03d5bd2c2233e0f80d98034e91d8b575e1ecab76d708c0899f27bfa1fee102e9a5f393ad18293d3ba93c7af3bb62e17311e79e02214dc9b62a85e6fe270be98a72391ba14e18\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 0e0e316e9d6d1e5f7333789d42f3761598bbb76da7847d5b75c376ad884ac2b61a0394bb2f65e1dbb986c26fa3837f905bda324dc65545fcc6d949ca4b8bd49f9ef7cc5b1c0c593bc34e02a56a0b2fcde4ced168a504ebd4ef1565cfb400cec0d86275af35afb01a5ed32263bc264a2c8a45a84f348c2ab7c7f74711e4e295323e2b9b76a7ba7475d8f8d72943b10ba64eb084c832ac9b2a984e1a2ce1bfb50b97f64bb754bf5d5832499479a198baef88d9dd21240cc95568c64664a704a359eb56534e241b106cd8d301b047448c9e83d0e3d9632da4641581ce53c8829e49701ed297d815c46f85528d2fc531a7813eeae45c0d249eea00dc69da92550ddd9e04787a1cbb76d7c6f4bf35b7d8582ce2f2e4c1184f79d3d7473d7637f42215ad4b9bebf143f958f3d0295b529d3b3db192dcdf4419d42ae219bd81a716f7d6472a6a86328e2728c5ed4c08cfc6f9c3277e42df22d15d7d46c442af610a45668de66d735e09abcbb638ac39cda905dab0cd802f5a542951df3233aa8732111d\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 02e31b3b6f1200f93fbe8426cf433575cf01030fa1284ab8bf74428acef25759df587be26a5260789cde2aae7b133d249783b1cae14796658d4b6a4aa24321f5afe684788efaae848b693846a457737694d1a7af6985890ffa7384769864064eca91ece6c03298f5ebfa7a18bf731ec9a7cb23025b7072ad4c06bbbfe33655654422cd4b97a9be3aff016000a6c7303ccfc73cbd908e82c930dd410c3ab2ace258bcd05e91e94e4a616a6ded7a4c64b00dc5cf202689a0ef3583a31e066337b1971cdd909c20a1ffc7c006944b81a89a5c96cf43a6def4d745134056becdb9c9275b2f2a97cfe0163bea5ac8dc32d0fa7b24dda4ec0c88f61cae77fac4c19a67c46fd26a03b990c5737ebeebde402879a02cde56728688394d577e5fc7c347a8cf66702b3b255084eb224436ca5c861b6886db60590a783c2d32beacbcecdfacfe6b6e520586856596b25cd918d586642db9acda72986078511bceddbea5239f229f1aee80cfb9d851ef9e84056141d026ff50abe0c83d2eba6288722457f916\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 0ea7aa33781b897d17e849f3967ff8f99b2f027a2f3d46bb979e5d4e58398f2b6798b6c6ff4e83df0a320cc964dfbd6542c0441668156e108d2eb5c7cd4947b4c310456fbe342a00ad7ec2be365d0e6c71abeba20f701b0b55c833e52e30ea9cde21bb1d23372b9ebf920e1c163703a484960872c2b5ec4e4840843447d108cc76a37474a9b7f2ba09e406ae26722b424f3de7a0c9b68ecd71fb1cbf3e87163dc780fbb8f0a16f06e05cd31a0b6de0c79912df07296bd059ff327fb5f860ddde50c3a28ccef959e89808120cb1298ca5f6f7bcb7366564981bf90161453df0bd8268e8cb34209c969bb5c7028476eb212baa30990526fd57b36c66b71c59180ccd26b02990906e0de5fb386bce5ac1b3d2d23e1893220f698b5d075ec0bd871843f473555df877bed9bb22cbe69cd7004d9eae7feec60808ec74db9f257ccdde2d20ff5eea9a4a8c3b89bd281286864d62e4997db92df8ae0d2a1fc3dfd9aebce9f7093c129c426b5b74e5dabb7fa2bbf8a59fa2e4b1aef9d69ff7ad653c2546\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 556a31f90b1879a1374cc4f2922dd41cb2313a61fc526e889fc9a20868458ad5cd26d6b3d3a0106193d44be3a22d1384084a949e5d1388f1e671f638da0dd1ab90d9d316ce66a25840a332bc2ca312dd9fde87ba57ca718f99f1851b36be9e023e24b9984062828211a581127b0d81e4b1bf5977f23d1c70da7887c09830c0e3c5a4cb66bc8035da055596ee7cbc1ed4ea76d7712708330385e5a9359fa8e3a0f6e63a569e5d2db4e867812b40da15d3015dcf31ffa887fa7faf478a0cfad3125fad16d38a57fac2262e01217d6d7adc50a3af804d8881e61dedb535001d999b82e2d9250ebaac07c4e695e946b5f42c86b546ff18f1a16a946963c9234d56d44a78c4b0ba0adea30b17528ae91fc326f1f976891de26e9320bdbca32f3709f731009da45b0b09ed5ee788278f18baa5a97d039448785a4751b77a7b061489adb289eb85459e663d85f3bb300be43a185283bbb94336c41e08f50ef7ba378e525e48a844e3a165bd484b882db08284e5a51b392727d54f913d4bb9b7c153b884\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3e5d3c3c140ee9a1443428aa0612506da862e56b1add3a86b13f4a014b65ab0be390c5b6be0aa14caa77c0e0a9116c543f3ae0ecb927924833838993d02cde56819fb5293b84b9a00ee84233c42cf993ca79a9af5dc7fb1d0074b9a9f895bf48f8d9f79f5d8535748196734790ded7f5e1cff092ba949bb70756835d1ff2472c82069aecb50ef4eb2078e59877ee8ebe42d90d8629580813f3ee4b9fe08960615c7b4c59acd071df543fdeb7440499ad473621dfcae3c14a2971f85e233925215ab08f7f2ee3cf70427e94be6c895cc11e2a3ba569d7a530d36e33f00cf76bb7f60b4fe7349cad86f09225a5ce0092b8fa2162b3ed556a7eba89e48461d32a241c4fc7016ed77a097ffb289ed34b88bc471d35a931a75b0309021dcfde235169d8b3f18de671444cc5a86acaccdaf62945fd39f71c833a58521f591c5ba04af3287444d6975d128f090c1030ae4de3100094c24e262481de1ff346da67ea73c410b80758273dcbd83e127524eb93a703bb982930644297545ea36000df500e7d\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 79184f204ed24bea8e2e768a55ced92dbc0b5d59ff9013db7d8b6828d9c631f47e1fea91d383b7c00a64a3a3e553e7953288cfdaa78affed5e7acd78f48878b507b02e85479c9fc529879e9c8c252a0e559543d78f0cde0e3b797d87fdfdbf960a8ec3bd49adf6ea370a10ee8caba7f8edaa44d36430163f1be74bb06a6e6b689aac34ec48c3dad3f95d21d5a453ea55d472331d56e2272765747a06909d8cba8d1543488cba40015af45608cd11dee21c22e76670693498ed7943732fc3bd4c3f5b78821f1d3481a1ecb73c878b190094b5b5094c54f68a017918768d9162c15e1e15e2623019e7773e6815bd6cfdc37560336619980829a61e950d34e87fcca3b5143ca26d55d6b9c896a28eaafd1d77320e18c46ea1933f681d32828486d2703903079633a61d2a828fadff6c617bcec466570da7d9d0a447e50d49beacb46a4488b65743fe8200cf6a0b44bc675ef6c6acb7c96fbaffb7b8ab0ffb6bee5d3d5bf94b6aaee4346307bc65be6e96de1fc84c52e8ccf2b81f65785f097f9bb9\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 11ad49205eb560672ca173d10d16e9f196ae3ae43350069549b74ff6c8c4aa71b31e017ba2abb0d8b6e8154652fe186a83fc34844beff934852a9c278286bf60166b6f99a30081a344e11c655a0fb51e1fc7a3ad700676ebaeb0557a2c8140686d5a803bc8e5ccc80f688bd0550bee603ea5f59705cf3add97712642f0b65e517a183b4637da5c7ac78665cc5ec07515fc4cd84c885ca673c35f33b01b9727342ddf269f4be73686b05d8fdbf83a149232f5c7e674d4079b8021dc314afcf3c5561915e03fef780f51eb5acb78ae14e84c82a1efe444330ac4638e3f9918ddc97b89ccfff94538d0031807ea147e068e5df45e7fa3592fec60fbb15a88094d491bf94394e0201a865b40516e1669695bc32813a443aa868de58f60b60617230f871f9923c2aabb9106c39b88650f150ac935485a246f559437a9f687104785630a6b18d5544a1eadeb259228e0a047ef829d9fc5c9ce907a344a89c5afc51408f8f23438be6885ac746a334e797213fb6f854e58dfb58baabaf05a4f2070244a\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 135943bd12689bfe04cc1c0a8860d7c18f13b4bf0a82c334b44ada2c5e82fc32b0", "ae99c048c94e3508f59855c53e6b42bcc041c219fd6465d21582f4f99cba4b88ec1844ae5a89f3215caf458547f0d147c0fa1db67453465e593ad2bfbac8ea9238d672368d32ccb681663fd8b023115c4f41345551d5f2bfd387117830323a4d061fcbb6aa13f2dc0c5a317e6b7339f6cce5c543291154ed7b118fb8c55e8942d0ee9acba4ec3c9106278c982a8cda67a2f3cf74eef8a37fef7a256e27ab43f5b6f6a5645544bc7d766e4aeb439d255d144330fea4c10438d2b801b477da861f6f13eeaf61bf5ad0b79669dd1c795e03bb826627fc3797846005aa975553343c91deac0c777ba9e253da8f3b925abf5cbb0c317fc2ea6f8d750bdce9cf149ebf623314de480daab1139f882af161750d3b74ca437df8bd7c9570c23d0d896d4a70aa4e464d0a836c7bbc22306aae10058d1dfd81303dfe07b9231c651fe30e0ceb328570802e30dfb5910cbb0739c6f74c6088b2ff20088b7b91fdbbe96068\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5513c16ec53402c0546785ed2febd651c1370352c121289d2a1fc9d4db74f99041af22d59c407d60769174e5976159ad64e84a3dd841c04a16b6f740067b50385cd31956d917372187d04bc169ac0d55555dda949bd422d39ca03e40817a3388a4ae03668af3148dd08e6faf1eaa170d4d8d9d1fd607ebc4f72c3eac163024dd2f86afdcd6b448c7c5d09f2594e95ef97b5fe6a38a265c06c12dda0665393ecbf64770be7cba42563293626c305eb840b54387d40fb371047014a058ed0082be31f59259971a27dc4de18a403bc26c7b4279e390844bfc13215365375fdec2f3c3873b1ff8f87f60506c55b7ccf03f3b3ca2534a4f686145536f65bd1f11bf7eca54f327c6bc120192fe4975657f54b962f0da0444c6650984213ea2b531b0b8432525a416e2de1790efb83a224d29d5d8153279d45f990e36c839ab7ef3cebab0dbae382b096a87075b5fe000a4369bae1335b22edccced1085f7c1fdc7f71c6ec16afc96df26df65bcab54321d91d59f7024ca5d65e4791f8a1589f094b797\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 62b1fd9511766e69a94d61d38e4b02f1c6b39a3c28e8e390175cd61df62001b189a0e44e7726cd8de44b0518dadd7aa360ebbffcf293c5ff749230066a63cc5e393ac443e73a345d79e4b54637ab3d1625a3d1e7d3d0c5bbcedb65be1c85317035cea9f73b282554f355350513a7f8564d5c2ebf93723f943d579878c89b63d25be92293538bb9d80793505b20c958da5ffde894c71c392453c506649b3891be55d69c607b6e4179d5a91a332f84a44ed32767bb189fdb7145bc13f128a0790b333be81288d4b52493cefb118d770aa5622a4318f5d37ba40cbea11d2433bf51d10d6f0d48f856ac1a87376c6a008ad9507d64103cf2e12d4f903f9dc7bd08c1c6e56a5710c01040a30575e755b8dabbdd83abbf53c9c0e53f184680a5d95526252f9ec04b03ba99731ff15e07d8566366ec78d3eea0f723c6df1cc32e0f906cf33b1967077f61ed045058f040746e4d414584d0c231cde7c28a108e15ccbf5e89744e3ba1f7bd3ec92934101be8af0bc0705690043261e98692ef737ed78e5b\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1b035a14cae3a8c4311b879f4ed000debbe72f9847fa91cffe371d2cc3e5e5853542eeec362006e7bb8fe2528d325071a8d8564ec9d60eea7655ff33bcb698d65cc30753084f773ddc3347e934942afcff23da35628dcb2751337afddf1fd900e2d83f528a96d4a5ebd4636aa7ce0f20b181176973c440b014d203b24b03a92531a79c7fc802cd10b7f633fc238e9ff3e184bbae1db31a8e70a69dbbebf925467e5684218e5651fdcb9ab2379b2cbb398363c410192c1ff0397e9e23eddd8e3cb473ed39dd9ad142a7806c2e753310efb1254edb928d781e70211d0483bcef6b7c43b52d04b96ed56de631343e29c99f4c115d11c0b74880c4d6a1235c55d0601b07b23530c9f619ce12289bc1b3efd4f0a5d1d2f7f46f9d58f0b93f659420cea287532e0f3b6c92d65084c5e188c998857989d5a2056bb973a7cec9f8a25b260963bcc2d4f74f8701aeb9ca92fe7551c006b21dbca74f481b8ca1640e251b98ffa768ef2ec7924cd708931b15752858d6f7dc0890fae266181b52ccedc87446\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 0d6c8e033994b6ecedf22c5f544f2e3b688db8b2235a00dfc8f1b2bfd1391faf649be65815533d6ee94098a4382072beddc2a2f439837dc6df0c9826ec49c3c529b71e9cad2ce717fa047cebf81e0788ea71f8005a0c7ad1a8d59c27efc334c826b40c3f4ec0354633e7e6d71654509460e7d5eef7a44f4894f07e652d9d7860c78ba7facd161b65e5b8c47fd3df85816ee5af4ed35c03f9bf08c2d95d56bce82954f17da0195e95558dfc49d7d545ba004afc59e8f17236cb6f0d8d7d288f8bfc41122ac5e803ef855b3d02d11dd214a7f1e90617435b2840583acdee0feb145a37a8b8c9f5feef750d9a950a605b59841370a47f59a3aeaad2753f6b1ef1c4327133fd59895b627b7da0dcf5f9bb7660cb9002692ab94711db9c15d3bc5fb4cb0e62b36beff03bda7746a0161b4199366d3e2a3a9c7a762b6bf15ec1fa27585aa22d428e7c7ae7dfe8b8010a7df9f07a060d9115d235287ace863596e1e01fbf3551d9995e5442de650953cd2951c561317d331df010d1c6fcace9f8b05145\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 7bbba09b554cdbeb72016995325649ab9c9d0a9bdecb5fc44ff0057bf619df2ca2bbd0c3b13dec3126a0545dc4936c043f200d7df11d87c390dfa1b0dd4e20c19877f283f62d6e20e0ff2f0d561589a683034bffb5fb2be9ce2be2a3f9f86667b53cb0901cdf40c23ee67746a49ba1ac576b2075bf1ff7f48941dd8bb9604d5369c9077d766776f265baa4db5dc3fe7a2643fc644a01f14c40a7a96d95713927b7cae6fd55faa5c802added32c5ff6f7026adef607a2f2abf59f2f0a8edd35547db4ace0b8d81961480412b02b5d51f1e7f0420086fb506b7d617605414a59db8d7f1374398efe6d38dfa39a0568a53fb58e1b71ced8e3c126db99b02c0a7b3e27a4d1493f2c077f51f5b9ae73bc89399b18c270e6e5766b69577283e084ce3b2522a77a994fe0e4a192eb997cb5b4bbd7592d24ec4fb1977809440c7e0dea07c384169e9cccb23c1fdca7773afee4ed804f63aa556492b7a4063a0699ddffe2b583230b826a320e1e26677adfc11d185a1992d38e4946631053330a542fe594\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 7e13964d767f2f286807be50118481f2651e9da08d93d850bba4297890e79673480d7dc10f5435b5e0e318adc9af3dd5d99e0339f9bbfe21891f2bee35b9462b442ddd764fc278f77e7c17d017779888fd552537f8d7a9bee63dbddc10903c665e975cbb01cc1ddd0349afa100f325e3dad303b707f22ad2c120083e4e304eb1d12abdcee41f6d1cb276f58eb09cba643444697e43a899c5bd3b1d10ac939e618db4bc12ce6d822a29c205ad748d3f632b147a7232f799c14678ebaa0124a9ec16168e32df41d21fc31a2d87c3b6008b2cd90f51230e1dec00311faff09c2fc07acd78b57e39271a8912a0c5b76e3cdfd5915c6362f1559c28c95479750b72c4f0b79ef5f9a25d9022051eb1d9de1ac764fe683958ca8a6980098939b473d2ba58a4041ba3db8b5a6cd19b4a2212744e1e2179d6c94ddcfb770d55abe3e5d7a81032809767dda95683f1ea60054d19b61779f17346b7642a92b57da96c5d5421bd77b49c0cc75e6294354e307453718335f5c1d87f5179c9fc74f0b10de00f9e\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 31140fb3b755d517fa660fdc5b940ba6c8fcb667ea633605c730fa47a3b52c0641829f275d2f8d9b8ccfa16e546146561d53a4d16a88bfc7ebf5fc3f81882e9e563346e19944727ccdf53b2f71c30a108ef2a43dba5be533fb0f05ba0ff302cf18e77d2df46d903476a9f7fabfb0a4e8a23e040359326612fdd9411910899900c3987a4b59d2e8ada6d6db45ef7f420b8e8faac28c6b9b55806dcf44f0b2137084035be8475ac6e5c6bbac67069530a36892e1d6bff9c594dad9b7e9bb604200c9320abffedc8ed3a568acb8e83411e6d28e0561848776c18f8822a150c68aa8279b90422f39432b44a9f843a843d4b970ca608b15f54c42057e17b406f939db847113fc6949090b203b35bfe53e3f414837dc0e2dcd58d5f7b829adfbbc60e41a8c9ed4a9fd15f31a7795c4fb93d88f640b20842281e966098060eef25b2ea3df4d8da8b8dbd9454022bed7f33539761303b46bf810b33253ef1a5887a9e4175cff852772101b27d1bc266e8b2924fb37917aaba4a1ffcc9fc444ccad469260\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 7b4bbdd6a446be7d5ff306171d91aad0f94e7996c01b12f2e402ef415b06ea2483a39fc4db755f3e7667f474bfa282dfb8af30c26a561f499b506a9ac15500d8b994e6ec5dd7c0b6963dea7f0bf1e5df5ede5740e41b8f71ba6ff56fea051e44b441df0264d730514e3cb74e8e0ac5d4e0be7e3621be53a41a12c12d0966ce64c524c16f4e1dd04dff3077b50ef54f2f4bb1da42fe79aa81d1604ef346e24321a7d9355c7e3e64d83aedfdcc02038ee483d6c46fc9a2290a8d75c87ac56e04da09e661df1f6adbb1ddc19087a3d7a96896cb803068c496ed93ab184d8377cb277032d627cb5f89aefc574d799445232292382d70e13234e4342825ce75dc08501878f4d3d219442cec45c5c6bcda2a70047d671aac7593c746850d8491a4fc9f17ff16fda341ed97ce8fc9d3d8cfd889dd752eef198914c4dbb78646674a5c88da0f6dbc3083dd5453a520a68ef79a97b580b87ddc7b7761277108eebab138b7eb73fb6d73e8827f0d7b7f4411136cae3ee2f172adad6b5f3fe3acb478cf7ec2\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 56edf756f30417735f334309157c56b1918947f55978e684fc98f2b1a528e45f162ea4dc2463bc3dea7e31e0ae19a8114689ac76464efb2ff7e3a2258ed9dc074d5bfc47d6d0f95b71efbe8dbdfbb0cf6a9f3f96978597b6e2ed5c5cfd365ab5607419c529dd315302a753939c920351e2d1501f63ac2b8e1e3064eb7571cc4fd2d6af08c6a6e54eac092f80304ace2d717d9cc75efcdb714d7c86460f73f962ff221a76a9345aa92a17afb7faf5ee30a9351259a304f8430dc6c063de9547774f1df890756e4a797bbd1faae7f2145940ad316dfdeee42bdc5ffea9bcb19dd329b4f84c48318d63476f09f8de7b88db07634289ed42c546b2998b583e19912092b1895a086a", @@ -8698,9 +9008,9 @@ static const char *kData313[] = { "96b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d17690000\n\n# tcId = 229\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 230\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 231\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1768\n\n# tcId = 234\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d176a\n\n# tcId = 235\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 627e76d9ab46ec144d942afcb5fe8f677eb9b1a51c047f7b8974f1a6697c5f4ed1c616ce304bef814ce307d4d6a8ad96a704e71c2bbe7fea47db502e59ec985a69405d9a606ca5ee7bc1e131783452cbd7afebebc6cc4ecdaf119ff16986f561ee4405a0bba05707da66de70f25c1b6e7bdde656eafb70d3ecbe2ff3bee66e3f0663a55feed8c501827a34f5916d0dff22fd7baccb87db47a472a21625c1af097264b5964d05368a19004ac9c5e11bd3129327f476b66abbe5b59e7df1cdad9660c52bd13c86b5a721de476f6662cbcc64db4c6e93c8ad7561326947192501050d4cf6e62adc42e5f3c0c605e3a1b1a1cb8486dbbb6fb070426013e9e1a5a2d1d8b0481ffcc9235a99d154e1991e8f15cd453e609be6bd008187b1f3066fb8d5348f08b2784f8fff31306dbfca2c59e1f48d40d70f7db16b89cc8506cf0137e2a617e27d529450f25ad8a7c502d197cf146e85fcbdf6e57e4703408754817a06fc8a60008560890d1e72a6751a43903c0f00a47ad383a28ec7bb469b178d5ecc\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 4b417241f14720559c1e8cfcadb9e0d6b7de849b16c80dfdbc867fc33e4b81d56915190fcaaecbb8f6481c177cc68e26813d8a93ff45ccc41b795714c7d486ff3b929800f88063cdac7b7100d917c2288094cecbe5d6f2ee20edf36dc646464958cb1cfcdabed57f329561ec6a8a00ea2011d2f9215f65ff6afa8ac692aba8328a04c9f9fc59c8d8f22e309d403fe04acf5a31de007a5f0f402efdb2c83c0c5aa57379163b14429146f9521ace54189c5445f80076b2d43214035c2b0e175ae0c463253796ec66477e1571bb6ac57722105b58fb507922974ed770eb898bd584d00a2267d8bcfc66055e7cd7eb7e7497149076e1d287b31671298076f1aa6d3f1ae1e3fd62eb8714f9fc38bc6413b2a15064da7b6b589ca5ca539d0d01a58f999935f1a8e6a0d89d440a510ba9cb71a87be0cb81cb1e05b73f8402d684c768ad86c98cd3bc904a59ec88c385835fb46b4ab46e3e026eae14e54a00f0e55b5cc26920682f9713d48c7946e1b0ab22a6fd6cd3e833666cdda12e31c05240a94c80\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 338c3b8b3ca15e0fd12433c5b18347d79d344871aeca17dc93389f3c5fc123ac9f9fe95c97dca7583e3fe3c2a319d0cb409367aa7573c7ad75b118ede506631f52aa861c2b0e31a9d8c435416e8e67059dfb4ceff533c214c4243f5451f449ba7b75667acdbeae22afe959287fd9f0ad3e4e7709de5c90a6e23996a7ad643ef0c3aae54934c31d79619c04b4cb85fa5069fc9b90231debe3e59da0ffa2873dcf9e53b8481e215b585b1115c02f63bfa6143e2b900a0ac71773a0439bb5d86a78b4ddaa5e2b9e44f7192d9451a6bb8e4635948212b17173b0695d4f518189714dc0b51", "ace3b9068f5fedda3b4ba4e24baf901b313366f64cd54fc2fa3db8bb8f1e81e06effd580fc4974a3cdae688297b4ac423d81dbd342b3067e6b4d7558ac8f4fd1c1d8f5fc94854adfb0ef8a69ec43b375ea724932b391ca5c04e7e75fdb952d671c315a7f86a28ba954db126cda3a39ef213b5f9531a8a159dd9e5698ac7ec8fe7df2a2316798742b2fb5271fabad932542bc98af6e99d231a1b5fbb09eb\n\n# tcId = 239\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 7bf4d4739c1ce0e13aabe610a110ffe79dc689db3f9fdcbe29b56212f7ec0b3cdb96ea7052a277327107a992d40c5c5d03ee11476f328a83d2c3a1bcad5c9d9ea2928fda571850a2a9988a0078429631f6097b2fa9a85aaa1ed9ac0934a5b9d00fe6fc106342e2b03d4123e09e2ac61c1343f88047daff5f511c8fa3d66f76406b79b8f4f0475ab14313968e56ca9d2e8672d3bec27a5d536cef54220cf44a4a698fb7cbb8035eb5516ae4b44aec19da40fc788f2546d5da54b7e1110d13d3e3ae97671cdba93a6f5946b2cee22c4318b7343a0c6b0a32000c6ecd08c6913901b79dc2bf38707fdf14261581b656af1fc4e1d5d6234f9a5578869cc8b920d7020fffeb95977bc3d154b1127f454bae63f7b1ca377c3ef42b0ceb75c96b3f54ab8a5831d59ee8ebf4457f540550a6113584ca4782a53d7b62bd5c5decf44e005d2c46cf3e0691963730708ccd6bdfb29e7c099f1e91494a14a938b3f5fb08ac40bf93a10cbcef007fb6a99b432472ce3bc883714eecc76e002bace4b0394041e7\n\n", }; -static const size_t kLen314 = 209306; +static const size_t kLen319 = 209306; -static const char *kData314[] = { +static const char *kData319[] = { "# Imported from Wycheproof's rsa_signature_3072_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082018a0282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d52450203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d52450203010001]\n[keysize = 3072]\n[n = 00fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245]\n[sha = SHA-512]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = ebf3c64e4c19fcb0fd920e65554a552cc1e652312c2e0e51cdb3b92c94b2b41ee201f61f434a6aa4703e87416388f4661c04fdc2e459e199af3ea208c61b99d746f4b00d82105caf4f0196f1305e806bc13b4c6e6bf581962862dcb0eb15a0ffcb0fe6b36502320011b540799e1432baf2a56a428fad64811afb57d210d859a1201ec057dd8d2a68784b48dd07357162f21e4c82f8d5e385b1f72834dd4c0d85ffd333410f08ff28fdb7365e408a60af177c80298726940bf4c40efcddceee3945b1d921b9d04080dfb12d3ae61863ad2e3e302370f5a8858a1213dfcd500269ebef76f4ebf0982a751d8ade1aeed95f41d4560084711362774b11b6240c0ba6ee4ca634ba8298f6e63ef560a39047481b9eaa546178e69e4daf5651c66c6235ba97c231241c63ad16efe59b7b5505d9c3f1818368b9462cda71849e431648be9757620c15f99ca78f4e250afc41ffdcdc52693a1fd43506274c431caf34a4d37321f5ccf04971a25c5010b9ada07596bf9a20bf307db9d5e86146226081b25f\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = b9bb1751f2336ef5126508541b949d40f1719bd23c2f0fed64a7b73ebe1819377e6e4262f8440a3a3cd456f5eec0b1c0956bf6989add2c3d1c7ba4acf7a617d198179dd974051fa7a14ecd8093ad572d7e233daa2a9a46fe59bcf7e01c6ad8d68c0afa89a58247ce257566edcedd799173e2babadac15405e2812ad12ad900ad997035966a05a02988e11133c21e111a8e06d7ce509de1e0c11de55379482cfa072348fb41c05083529c2db86aebee92095e7450a75d97fce7b3103ef1f8598459651dcb9b6e90f299c9efc95d7ced2f6e91526ab3788238e2b5e109d3ea984189ea13939d58fd4ab896c76bca4f6a92fd3bc124dddfabef1f286583a1415d1fdb8c80de8e7583fd6d52836a22c3926f69723301904532b9fac2a37d0cedccd4b3d0ddf3550377191f813d4f92a5c126ae91e03fbffbcf59637ebbf1f30acba1dfcb0f93285381cec6da60bbcc62074075c71300f8424e0f964422dfac19d205251f227614bc13568f408284b6b53bebd7dc4adfb7e242953564763292d9c01a\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 1cc02717a3321a83da62deb3ed0b9706cf7ca9fdf3674617fcdc3364a697825b910d54b891b5f8eba197049047cf0048ffba6425d47374ec24a84f1f7f04716b7ec54daccd04aff858e2e7c8830e4420b5f99df756018083abe46d3fbce2da6e8ce6c893fc11ce5967a5f367159f9ad38d957078dbfbd32e818a26b49ae00151350044d22b58a4a61a35fadef67e3f8247f407f026eb17b8dd4ab29d388bfb271a1ec606e141cef3fe57e2e55ae8b40fb076a06f5898362b695545124e9c185c50647cc5b83f09f406e780f626ec60462fb50caf8560aa72fbe174111142029b19f2d681f771a774afedfe2500fd8b1bdd437fc41709253ffdedc302f47afa774f5ad23777a57fe44067182f4b35a28923edc82255cce11d2fbe91acbce29289b4e0e8f5e99e906e6607637b05eab4028d85e91d060fc1fee052a09baeea759917b34855e09b8e5b67ad60f45851e991cf01dd528b100327961eefd0c29f1d1d8771bbf3bb1e7f048d9c2e1dc5e652e6ac4f6a2aef86245b83f611700bedd07a\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = a0de9c2df76523499c6c344173d944b8e02ee1520f90759fa3c27ce284091f80215a9a26c9fcebc125171da556bb732a0645cd64b05c7cbcd8c187d3995e3c86cd59468118e9278ecdb8e791badca8785e56f33478ba03eca721591930db01bc1a5da5e193b2dc9022e98948644a406138a4c7971ad8ade585a3d72e6c9de50320b9fca1ac0e054835005cd39c96400c491e1b706eca22ae2e9f1b844284226fdcdab1f2cc942a8280f7786e0f2cd069b9ae99f04aae424a6d24eb023e064513931b2e4f7629151af6bf83f4c5c58616960f080c6f96eeab07a87b6d7cef3fe6b071e49ed340b48867a5bea30dee332cb89e1a54d9e3a9a8bbb87179c6ad206fd48dab07104b1f887a02160b59f9ddac6d1f8801c1a8df507ec199e970e02058c749475b7636ba2def322160b11b21773fdf904cc665eb5eda887ecb6d9be245d3dbd85cde107d082cc6d8492a087166e23835a379ac69f5a996ad9032cc41e205078c5ec9c50f85c396822c057b25595a35471a2fc3bdd3f75eb8ecf2d1189d\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = ddad8eeace34f1eb1b0dd28db89ba710ee68aabb54b0a826c2d69355f63acf0f2f2e0dcb96f388d44d0940774d7d55fe81ba6a8a880aeee8ce842101c7e8837fbf2704971341d38bf3289dfc61a6b3b557588db93eef2789d3735000c8e2d830a32070626d079e710c943082a8bd1c0cfb64b2dd911eea76001f8e08cdc01cb072f027fbd9c72331b857d07c1c2f3090eca53accef8b3b015438942e8d2fd3406cbc54c7ec3797a163b13878881f7b4ef5ca45056e16e0c2a76c3d5108c6f0f48803d27eb4b0d55e90b19b6fe372dceaa61270b9efe2800bb259dbead955635ca44ff979bb054b5cdf86d4914ee553d7d5b1a49fb8e49f3f761224802858458f702aa4428964a32a45bed5738224517489f2be075f9ec7234a019005be922b8265bd78abdeb1d1633fe7e5aeb37b61d36b1a03a06847a812e50ed551853d3cdebffaba8b056b788a1bc452ebdb5a3f043a116e5a3d262c745fc15897ad4ad955595292a79eb85373d552d6079ad77e469f7d3a60330702125127b1ee770225cd\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 2ecc537edc397ae5c3c789638204ba3393bff5cd9c1f0552db515a8258a311b6bdc88325f9072d2ae67bcf132a92c0b4d01ef0f2916349adc6d8f1b415c86bce6b5afcf4cf2d3137897d0f8a33063a0ff69965a5d2ef00dc3e010094ec8214c95c064313c8e90bd84e34c86b2e19b056539bdb3c83eec23722b3e380a53826bbb31cc97ebb8ca77cfd96d3e6a2da59baaace3883c652a92e79653941c5615bd30c77aa38ad74c49d36ceb9f76544835d57f0cd14999c2c0cf3debbee17a8aba6d777ebd9ffd44b09e093f1a894a8aee80301c3a5a59626a79e445254cb1df1174450bee22a7518afeeb15495d663af289dbb09216543bccd136abf2646bac573551cfd04e6a35b5cdf9729c8b14d34c06660a42b3ab365a42ffe470b69062d0f305c733c43844565b0b94d49d2019933de9686088d219d57b256170c137a21475d03f2a7e0783af11426fc6e64895fb92da117702e4487558e8bd21db82f263c4bdc64065c4f66d87c87889ec5aa9cee02c95d001b08636dc3420f817c228dc7\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = b9b492d4796fa2cb7066069a00e36aab8b8755f9dc8294401137efb3e2681c9b57930c0ba87b45c9d70e214979cca91a06562f710a2427660547006ead7b3e619cf4652131fd84999c5ff1c9a1cf057363b8ac62501bbfb1fae840cc963a95169c658add96c6c969d415c10bec5e2457a5c3fa4fe81e7de1afdec6f4e59e3fea185c7cd1bee4b8a42d2f22c7bad7d4933621a0cfacf0136abffc3ac54ea37c63af719425084cade944999aca3f43c7625d22af10149f39acef32ed7c92f781809aaa945b2f446a03e66150a524c7d88b7bec587ba7d6fe2db4ebb7a8c3bd46e7fa1cae291ff502acf33f003", "dfd1417fc60674501728e52490476d813f0079f56a9456909ccee3b76b30aca26fd4487527f4ee6283bdb2e72393d661ec0c35b2d1675f679f823fd28e044fed090721ba4c6be46da3eab26e5eb356d17d04fc3ac31425a6f6a50474e2725bd4dc30da74fd3767a122ced21671e47b1fb33bb7018349f7cbc916c6c7f4ca7334735a0e0ec18e01735107bd2ff02cd9508fa5832dd\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 7d550b35998d60a62393379e47dc02b1a4530bf60c892c4e559acf9b9a61208dd9ec054c865018aa2fcd11a88493b54935039d0fdf5371436da96ccc342bc1440afdc46eb7bfb6595303b013037537e695787324cf9593dc156881bd0dffe8d2d22d4e90c1bcc801c9bcf12cba9efb7979a293dc2ed17ef787515e2bac8011286c939c418234df353ff9a5e0617615acfd7bccf9aa31c6681950947df67690e36369c3c3bf6c466e9748da0582acc76bf15760e8ceead43b5c2e98d87eb502d5a823ca69702b6936cbe36295b5714fed51b35fad66c819cf1191b3708f398fbe8274f1ce219e8cc77690f30bb7643f9ea472811e6216253c58fbba5d19ab738d6fecad309999a4d814c19620c4ae998a5f0061fa616ec0ab96e3760dc5d3450ec376a1a0292899212828768bbec07a0e1ffdaf4d6e5fd1ef5a2e0567341b2fc0a4944fe8bca36369fdc0177885d5169747103418e2af807c4715d94c2bef45f5eefabe8980f90a11acc01ffe0453e1fed8a7986b07d8f6daae2fdf0cd266c587\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a31ac04a54a8b6ff7e56a0fd57b356d1f854de8e0f9001cb216b859819279bd80d8584bf603999215ba8debd1e9e93fba985427be8e2169924a3954a43b58521e0c79e7a858a77081439beda623bb7b96ea46176fdd040682da77916fbeb77290e7c93b2e8a1d3722587a70ba56b8de3b2e9599bea708568ed88d2f09d7b9d0ebf9be2345b81d9b343c7392701d35d1f3400f343763af8d9233e40228aaff22ace45920af56956e07cd010af64e01e1f8f63a9dcc3b7b205de730199fad3e3b2f139c556748d704876af986b98785fa5686d5d2410cdd95f1c80a8ab8e24c23f06d5c40ea5f2be6f980db62b6d9b22cf7aed0ec00125e1900e50db95269148f6165f563b8ccc0d35c9867412c21f627ed436769842662c856392d3d0daef99bc47ba8f2738b4ea9d068b20c249d43dc01a067aaa8c249d43e110ce40de060c7c68866639bdd3c6d7b7b635b7ba71b44b71e7f68651b203ee07b914d65a2165791cf2f6d5dcbeddef7bdd7f786f812d9c5515f846eed933248b4f40a00b7735fb\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 693fb14d0d6089db3aae22e292e43627af0cbd67234983ddc1b077b4baaadc45bcf0ea0f36ffdaf970f99ec5ed8ae8a58b7e94db9028963e14c2f624bed16bf24bbc5aafd472915d643e690f6e981287ee7856fd0f14ace63a790676457ac09692bafca0014b2866c870227a976fff547812641a70993da32acb962a3ea050845dc533390175900c668a5f36ffd495ab7917b768c68407f4cfe1d20bedfaca38f9f609e74d9e432829da2487f957069dcc290da513d8a453cca27c8253bebba2653f82f676e663db0248af2a310b254b00219c5969f05d04fbdb9ea0cfbd746050ab25cd10de42a02a0ddf223d40e233c6a6597992576f2d105b72cfd77b2f319fe3525da8a8f084c305b14e090e3bea5c5eedac3360d366c47fe9cd60c6bdeba472d408a79031343bce42bb1ef5d6f4e0e63cb7ad0cd22e4270392ce711d7c8efbf0feb888c74793f2dd903e3ce894ec758d69644f654c5a75378b0e5c63a5f9ae05e0f4818e2aea7286416aff545c1048eb4d359ce1bcd0b26a28f55695b56\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 0783d81e403f352d1140b99d6cbdf63f413a55ef9a64fe1fe019adfe807b5fa59a18e63d455e0f8fd61edbeccd392a01e09dedfe28600d1c7507b1d81bc814d1e835a95219cefaf7525fc0d03bf211bc99397bc8fcce685445263a3db61184a8e44edfe7ee48e2a7a5e3c8c7f28158a308db3fc35d822ef6cc00e8df43ab1b0a7ec2c92e3fb7fccf8f8b35e68ff6d31657aafd756782996785bee97d3ca5c37d22b44f8a1a44ed6afe5b80b9659336f3a39870b5de2385630f3fe7ce3c91bb269ecef7b3fa999a79518aa3a06fb626a5a1e48db98199c1c4d7a139497ed8e9682cdcf343dd03b4a5a056edda9e7101d2da5ed8d5b953e765bd6585cab5a27030a8c909ef69e61c0ffe9cefd2ffbc6f7cb26f64de674ec5f4395f7627adc72203fd6362c17bb1f262c430e502a258edf86076336499fa89efe7e1298c7c932b0893088430a30d7309282cc4a58c5ff05fa3f1dd664b00139c309831b8084e9f3065816844fc3074d7e8bbaa638dfc2fc0aaa74380a1282e65c7934be1cb7cdffe\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 162e2eb2457e28016b961ece8cd8aa9d4d2f4b06a9ab069cb79238f5870075de2a9755fadc5c78c28c82441c474718ee905a8d7700ff2601d7c56d7eb5a9d7019e92db6897c823925cfa75b5608c7a79e24af37abc09c89008be7b2ceb70170c6d1404a892d0804cf9abde53f9aedd13815459c3c6a1b37f7dbfee6e4b9e25143d9c64a6a817550337d0c74bb5cb6c7b5db2bbb770c67037729341cf25aa880b14d39d71e66cba9b62e1ff89c348eaf4efc79c0de4734171406295e346e9ce7562be7a5462834f1a00da1d4d54d7fd7fb12430b4096610fc96ff1bdfb88609d6a961338bae78991b05f2c80d2a131de5eb3477946d0d6f5f500a0fd93d57e0be3518b60e5688d8ba5b25c2343e894326129173b86dc315fa183a0d96845464f24cc020dfbc341f4623d6732ef699b3af9274fb504422bdbcb491c8cfc63f6cf6adbafd4f2bb671b92b6f4316ea456d9d87b8f3b2228e37b0f34f2d1ff70cfb0ed16d14ad3ab5e89985d4e30e51e4eafe69c0cf6ee5cd1ddae25b5585622a8b45\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = b17c7e6b49469e75e489f9647112354316bf3ce3a58aa9ae41544f73c8e1e56c284667381eda58b3466d3ef16962a2619d718f93edab9aa12e5be05f73cbfd4d8e546bc936ff9043d5c048f93794d68c9f8d99805f85665797a27b84a3e97883e74ea14c180aa2e5c0785af69275d484e14dffb50a4ccee742e809a03da229e70ce529d0166439cad74ec6457016b92df8e53f8ed68cc71229a1e1732b15175aff54ee34de4e908e9b6f9e720417d1a619ba9c1ed70a55e4f5d9bd940532b2f58700f404cee86c8ad9c72ad7731b8c2a063efbdb96c7b35d641d5027d55e8cf6c317613373dc303cf84a469b54df3c2ecf5cc8d1bb3882dda48e41b9e5a3dae95ded93f230959c547ef59131fed18c269a0d5c2be16891071299cf1bf77573fde1535836cec1daaf7cbcc50c563d08a79725d66d3720ecbbe1db7edf85ed3c4a9160350fe94326e3f0440619df346e33aab6333c1e38b9f34139a26778d0b0e64b8c4746e5879fc56eaa4c4641171f79f4f3fa711b9b0548cffdbc39929b4ae3\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 38f8952c63cb832a35b8808ca9255ab12fb5c27573f29d585cc30b94b050fc9e179f87821a2cf8d23f10d3ed6f2a8f461bd098eb5f6ab98923647f87594e2cec18a776af433cdf2b77dce0cd853651b50700c9812d2fec7a9760388f4c26da6bee3b768574644c4069775ce21e81446a9e7aa2c97865f4b953daf7acfaac13e75e079800bc5ffc94090ed6842960e03e95753be39e94dafbeea1745fa7a4fefe777ff5d278a8444c07e3c8526e80960f6e2146900ea86720fe35c881a61e3f23a32a6bbfbddf049084d9a6d1b32b9c2492161d1aec9479a8891c7b651d13e34e784e5a8d3cb2f5412d322689591a98b41ef9b010190e732a5ed0d28b695f6ab06870ebd23fee44845cc64d4ba39017047c7eadbc16a1e35788a9d2c2ff02b48badb7bc4605225b7b631913b19683b6f90e634582ed64c25bb6157f28102c4560945b6baa91dcc551b4a6bf2b5cd2adb8a0aa87e29c502b5b70bc4cce2e197479f9923c3ca35e5437c849d5264dc18cdd3f6bc7b88fd9182bed11f0cba3cc68b5\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = b24733b208d83a92b4a7c6d64209fa2ac1dbf615954eb99704ba9b6eed2a545aad13253234d88e0afa81277321a8662a1c9c59a7ff932c6b2889e44ee47e25e730427665a98f02b8897b24ee3036febef294a8ba02ce60b9fcd6aeb592f32daa1a79afe2a48f5097971f3a72ed3680433d93da0e3f19aa7d37082880b0c3745b86be89d184162287bb6354158ced89bbef14faac68649d995a4ba8576266bf5464106a82cafc07e4ae4dfb4ff3f6f0e8c713d3fb73673e75deb3fd04098c7c939f91594e45323432f30029122afd4e812475f69ec05248d6e2deec18e7dd02c7e9cf89cfdfca8b3412410b1e271023725272ef0d9fc72f35a94a484bdb0c1167c282dfda53a86b72922506d51adfab81df9dd257787aa5fb6033bd7fe61a577a7abe5b48174a3b2f7bf276ad6a6735593440867739851c91bb30fb2f6d279f35aced179d231dd9c5267cffd6b184bcd710a365b29957eb98aa81f10db84deb3448e2bd8ab50dcab06fdb3a2b1290eac0e60dbc4114243540585ec78473fe9297\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a336c6c475b3ddb4f9e58bda547d867c25b155b19d14746f8fe9b22cafabc05aca001d019352e8e96cb0afbadb7bf16998e5052b834a0045e861f646fcfc07347079822e64dfd5e72c2f996f0d5ae5d31596b93c77fee310b046d9c461ae9637ca21020e48c6745feb9b7a8f7e98e47be68214405b55d81d190d0bcdce483b2915544108bc8daaac9563483399a69c19c644d4cc36be4333fa9e9221f17b0ebd2885e57e84d31bd615e438aaa7a1742f0d6f3779c55ea3dedce1940e819cc140cf887edde8506b4c919edf3fb6505293921889c3d6704ca6aef24e620d87d6073c0e9f8a8c43f98fbba9e84fc9c445bff081acf6f6559dc0a49c9acd49c1adeb11ac31e38fe8319389541144dabfff498addb55d974082988503adc422d78f3e6c1764baf174c451eccb13e0e2f9791512e9a949478109176671f56cb3b8b841fb55207bdb7dfee0b7d76ae95a76de6f6ba4e953ad0431bbd23311ef17da7f4272a7ec4a34c08501d01965c4ab325420f6464dfdf471fba6f59ee78bedc28524\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 84d3cf49f14eb7e6d625614743859b9c1ef5a79c23d3c16e25c492c85df8c3d8f5", "ed0a6e548c042a71135bfac1d209cf434700e8a6247f8d9bd3f1527ae63a5b797880edd6b3112928b9878a890cb1d0aec6e84cd5da2d3191d590a57a82577c8db2cc51e8eff17c64a6f445ba202c9f13af6b20d5974c88f88bcac534ee80eae451d72bac360511ed77d9a09952937129790dbaebcc92014bde155de59c13ce95784ccec3b4e9ff0a08281fd30f5180f62667f3a2575e67550281c2f3ee42af8b9cd94721713cc95841311f81cfd5d50883d063425b8a307f8bab6bc19441eb5eb256b6cee8126586707eec75465bf8fed4bf010f00633f2d2a216af178f3439fe0857921a92a642b83c7edf45b8b7f0e280cb362fef1e6b77144465aa06968971861a03c8f6e6b0cc77f713a1417ee76934d441784fe9df0e65aa5f439a0cf9889c9366a213fa2f9302d8a70b4d9cf7707687cd2214d720eddf7a61eb0edbe679df5fdef79f2a8df50e90f26be5e156ccad330a3f81b998df0b610383fce24\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = f3d8e162aa3662eb0648048acd70eada84b12a7d15476e58e47f7720bca89a0f467f7bc2c6cfb17273d0ee66c82c2e82c7cb184d073af6a601cfa7c8df3c7eff348fd32973f8b3502d5257639016ebb24cb6011deb8ed816ffc44f262f03799b122a0c3bd7d69df064a34b166d7f138982fcb4bc2332384207117986d92bae3a5afafb0836a892a6c9403cf7054bf02a82851b35768ea77498b4d12a6e85018aa59623644e18fd9ebb4cf3490e8577994836a84ce6bca85ed3fce977e0fdac1eedc81e4aef60b9de47900b9dfd1b67a0c89b0be88ae67a5307576ff84a7f99f3f030e2133a51bf7af75142f59330e2492973373e64f34a05ba7f2262ebb91f144a89cd82906358e5a8bfdb5e7da91c2ca95d0e45cd2bca9912b27af36f45d4cc5535b0aa95e75d330cb01bcb01e23438d0bcc4207a2a7fbed4d762d6a81822993bdb42baab84a3b9cdec3dec31729c831cc28dec111605924ae0ce6d6c16ea9a605171a82cb11102bcab108229271e2167ba6ae715500038d1186204ae2fe685\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = bbb3dba33bbc56a859bfe0cab3ef7ee4fd1b9b8196f5bf02f55c3fa70ab8eca32d5e2d95e3166d5137b7136d21ee17fe5d790b37f51b030521fba37b0e1aaaf5bffd62db0421bc82798e58f6b94046519adbe859675acdc9efd050792a3ececaccc3dbd774a9cf426c5e58527021cbe8212c9158baf67a8d3ca0361364d0fd486f0402e8b5a94894b3af023ecc6b9c0ec8c9b717736dab8ae1da1c1913df84b6a5b7e6019e3e53efba2bead981e49316f671816b7222deeb8f3f4875cca353351d810f271d3c2a6663e34a8ee083d80a861338e22ff97e542878760ec0fcb8dbb390834409754b95f902210be72d7104abbe1a87979c0460dcccd2cfa5a13470855ead59d0d7554eb6b5a12611c5c1ec9db3ec7d3dd795acce3a2c4c71bd55c15986562689e808683442ddbc8ccb048eb2b154a66e6e19af41c233d6196155912bb1a020fabd6e803f04fab88fc677162b0d98c42500977c002774341c3fa455b6092d8848958c94de4641a43a269cc6903e512ceea3512351a05c52bcc2ac18\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 4ff317feb7f29b39f43c6dfe386347e057a97c5063007322c8ccea1761e5285a14a25cc84af041407130fde5e7e94d5196cefefc485d1c793432e62a8063557a0764305b40a7619b8e9aa9b395acd64a1c1321fed36e2187ade19b9a25e52373666cea888f5c699da92a59f2b2db76fa29b8e9d9b78e6fe42fe9d722c524a59a3ac8d7551ad5c5838c4ea92685ec6dbb23b6b69eb07e8a187ab78af4ea81c2d14977be336faf8169cc189eaac340c9578dc6d98148a14844c220ac1085a80c5e3e4c6f04a472cf1a4b893aad0f3370d56468ee1cef675b5fb77da481f128ce8aea30c67fdaad92f26db2df4c45000ef581e1a0f323ffb69e45981a6c1c8e45ffde22b4cfc0045fcb60e127820f4f1b2568797dc34ae29e916030ddc55d78629534f926a230c4144543d383aba05fd3fd1787bd70bb9fb8046d26c4d7034546452a682de60bac900337e5a27978e5b709475f4e01a1d57a00190b5e829d81e82f38450d3a21b5b6eb83ec0c491cd17cc91b6c0553d857a55fac7e8dbe378c95e5\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = c3d7c56f39e387328b551f8e33f1a8f6ebcd8375bf8a4ab92df72c732e73919778388f0a3aceec9f6753133626887c3a5793cfa2e8340466e8c0d602663cfc169643a46eccd913085dd1dd1efff1046dd441b1dd071a558c629573ba36631105ad76d89561f284c6321c9f35b1c4d5e588cc93be7c62b2db5b8c52526c8815c9dc5b755431de7abf8b2ae5750dea20823de561f92ec3630f80606a0638a18a7aa71d24a6e19f6ac3fa16eb77f769da4b27ca1b2bde187d10e297f6c8ae8c5aebd84e75948942bb64504ca0230a6801e58b23a7aeb2ae1458b5750a894cf6c5dbf3c60b86ee988bcef8e30f21afa7197e4103fa6f4f1a87680eec6173f480c94e11f8db980597e38c71f36e3c68215d810504ead6ff1b1291ffa5d178708ed3b0e5b9f5651fd1df9c18b21deaf20b1a8bc6de73de6e7337315bfd428156fac738542b38d03bcf1403ec210f67753e5b73db07d363ee85a595c205bf25827231df2bd576167e84c659e9276c7611a92fcc1e06af925543c4b11bac35df7ad14f34\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = b2b73525c8a556fac8a98c717231601636d1ef1f6d52265bdf3da2236b35d6e673277bfa2b2b1222d6a90b50a30877447573210c87fd85a48469185198af8bfef4393e0b46b416ac0cb7fff2be11860209c340e470bd59d84dfa598b3635a5bdefebeb35feb4251157ec940a0c0fc6fd5ab97493c3e9c663dc943bfee7854f2da6f9b91a9dfacfb88bd21c15a488bf2b08bd00e311de4bb2aff850de3dbd9be9e73b9ae4af9a2dd0a7a3cea94f1badd56ae6679f5cb87cd3eb7ee6ddf7ff426686e551d846eb8399124e23d6b87897bcbbc0242cfaf48f8e08e9d5957b30bbb4dc942bced416ef50388b25208c5f4824ca875c4ee75eb1a705c1b5b693dac65e447e06f41251b295e05d4c5137bb7c0f451a19adb61bcf1282ce729b3ad581596d99c5876db7cd4a614112bc9d5557187b824a266434276c3ba8bd30c7f1541844a262ae8d4c09419c6e21881a3f4b0a8c3d958abd7ac0a9d0e7f1770d229177ad8afba36e324d254d36119d13cf1a47c93f0bedfb7d1776acca7c9f14cd56e3\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 32506bd08dd88da1d3a3172ed17a6d1393f40413bbf2a7fa4f9393314b7d158a905c1e528d4f0b0c47417d20234f55e58fb9fd87344773b311fe4a77137a829d3a80dc77dac5170e32be53c212404d2802e1cdf982cf57261ae64d402790a7ed8efa42d9d807698884d23187c3f239beb3007b014e324e9f5f070cc225ede15115d07da064665f8dcf5a439cd6ab2aaa86cb4b7bd0f8d97c1c9a1eb3b416702b534ffdad74f447428c04073335bfc96b6f0528b0ba541ddc7aca70e37ba0b9acdb8acc1410bf82d5e6a8effc291f5701565d468c1578025f529be0cc7a2ae473eba843dd72ea8a6f9b3022c79d05e52964287ec9c2156745d4a14b304ad7d52da8a45a854becb8095917a4c7196afb2d73d35a7ef65748138a46c69253f0f67970daa38e0d435fd8f8763e9eca8d3be5ac96618629e30d285db481f23906e8a145f70fc8eaa71e451421501c579446c9545a1d7d033bd9ddf62e587b97ad7925b60a5a69ef383405126e4e0061b0349f9cf292641bb2050a86fbb505a68d321e\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = c0eb720b105f53c191b4e62f76d6e49a1c2319c89f4223f1849b0ce95872363e782531d8a1a5a45e4422ce872327a49651df41705ea48087d797e68c1fefe0b25cfc01b457361ac2f98f2b6d675c04a62aa32f18aef7c488205cd1d82c6bbd14708125d86fba57f2c54a667a31a32af54d8df6906c07595d2dd3147fe4ed42da82377c88f44b7d29c8c1daec6230fed36b4e57191d950ac98c78fcbc6e9405645b3c5fdd69111f9e3badb199888d0dfeb69ebef4a4a39465cf9fbc784c59c2fcee8e367387554148ee6318b8a23d3526266206de788c7ec4d93e60e537bc3a13a99add8087f5a33e6c8904050a9b9e2ed7efac91db3e4672a192b6d11f38ffa57f5420043da23c4c1fcaf46adf4f7ee4efaa5f72ab4560953a1e9435f93b00a8dd4b5865d714ce5d026a0ebe9dd56ba7d4b35f33fd764c04850c5dfa91fd6cad03d71d41845eda65f9c36c7117497e82988aa49f553a510e812ac475a0c510eb03e0d5d531edcee01c475b7cfe94a77bf45a22e06307a9f6c6953d0117e3892d\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = a90662e02c0b8f5452f56d7343ba207ac0a8141977c46b74923a68f9dc155abd0230dadf771262b1c02db06de7bf78dc40904834e01b7b8bd07d48cb1f0dc9adc5dd140234b7ea8eb51ae64b84ce799b3948a8c7e3601328c3ff520b712fbe037d4ca78353d8b518660a0c0f61d3141f7b6a010e2f7b644665a2038a63174156d67f00fcddff3315d76dba6daee07d8315e518a376b3d4f695576670546656e538d7eb8851497c6e8428dfa0a5a10e3e7834a23968021c7cf17d2610254d411d2a9996fc8052c38c322004fb359bec00b4a781e4dfb66eb842054fa7ada84797010f1dff65a0729554266086e4767dbe7c174b8540f5da25578a3865caea12915e4cacf0284495c208dcc5096f861997d45ed89e534207c79737bf420dd5c9d6a6e81a5064c72c3cfcdd25d8a3dcaf2a9968aa97f8189a37db4a228ac26894f3218c1466343ad41d6b292621e795289bbcb5e80740ff91283012a7f747e0220ab94a8ce96fb54c417e0ff6fb1795f078ef6039939c24b9dd32d31c4b68069537\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = d8436c155e096de5d22e627bff7f42869fb228581273e9eadc0c3f35be02077b3d37c8c6e4fb39300a1093af1fe0cb42440caa0564f7a78295bd1f8946a218051f7257323aeb227d80f3430576da12a54687c96dda4c2ef7e359d5fd17b7d77a2fffb09480d17a60c80f30c4e06724783706b210212ec11cdaaf91cb1a7648b3d197a4c2f4b79380f356a06f026358a5381a4c975eefab6e9546619cf4df87ec106066448644a415820af3136deb86d34b61337b4b0e3a53ec136ce8b26f949a6741bf067ad69da068af1291451b0b882544ba72b74248f6f7df5186ac7da1946c4faf1e1e0f08ccafa7bae6c9224d1ccb6a5fdb778ac4e55ae414be393de1da87424b59de23", @@ -8728,9 +9038,9 @@ static const char *kData314[] = { "66de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d52450000\n\n# tcId = 229\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 230\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 231\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5244\n\n# tcId = 234\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5246\n\n# tcId = 235\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 78caf448aa52e0fe470ef9082842a2f99079164744e63b4d3637e5ff0760088ff4f3f0e047475bfd023ad8b50f0f3d83d0fafbbb5db1e5edabbbd72253e2b696cb35705567079eadfb5ee3b442a7d13ffd92976c7bbc64e91d924c87e409e8dbe460e0808a5f31737c4a379b27b42c01e2b85fb703cb326e4b7a76d9446a17c406ecb2bffb48a501bc9e98646e94394edf7ac02a4c141c76bdef99cf52d4680e0c23296684ee7d0e935fbdfdac76299afb3f7a221fe45a07be79396631b8db97e358a0f4c4b29163d19f76c771d9fc7ebb68547e40f95f10f93ed199da7cc776f23c29b44a749bf6bcc8d4e3d50ac3aa6a9d13064caf8d81a526055faa2926324f46eb1ea5d1aca239f2d41523292bfeba89db64bb20e3681820f03b5b0f7c4ae5ebf7657c626debe58a8615b95a873c7bf306ad6e9ad18b6337f0f24d89384556eaf59c1eaab679c7299fcd80edb656cb3bbcee67e43e230f30f704f4a3e25aff07bb636865ab9fdfd830df834609d07719cff33ea0528497947ccf398b4a09\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = f2e40f94959e63e5cf5722139fc63dbac2712e0485718b153041e8c24af9ff96025b7da26810c78c4601fe6d3576ea33f3c041c911e8c7384ac86f062b0c77ddd03cf5cf91b35448326e04d65ab01102dff37c5a2158c5390febb0338c1c4ccdbd2510243f2f4ed3b762cc6f1430b7e0edf7da7b582bd963daf4d11416756309fba9ebca7eed8def4c538e081c966b11d1f2a3a7c52a9b134e92622397549e53a882f4e641071683633217cf7b0bbd4305559c40a3c5f3785c555705e6b67acbf7887d919c69b165b56e301367825e8394a54520a99c7742356ffb2fec914f968cf9c80af3beb72263f843aaeb5b32f476915ca6369984246ea453fa0d57c3dfffc76f8a072404b9aa5de9f8a5a60389f539d3de4c9e095f7fa97c1ba4253b7a3f0e61715774df20a73dd5acf30abccc2a05b3e418caf1b96baab1234a187c5c80ddd0ca0e35ae4f5afb7f9c56c7bbef028c79158d0d57c1dde1fd4c8e0252c372f684aa438a33669f4e18d087ac0fb36c780404ad22153d6de4f46f9081cecb\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 7acc8cc66f2c221df076ca4fa898f98c46bb0809a612920c0a7b9e2beee738e4403ffd34b35911ff20a9a23def8d0067b34177d1ebf02486dc699133e4fdd0a58b7bb29a971cda32617b4b234a10ffeb5e154adbcd83c478a00b9fa657b264dcc998d01abac58829c208120aa5f78beb0594ec507b9f7ac5657ca6596662b018cbb582277af76b9630b30e6fcffffb32ada6d256bba86077802db41f2424421b18bb906c18fc081ec6066dcbfc5805a729994d839601741e7ccb7a5b6564be1033824fdd5172aa4621c6cce3af870ab7ea9d538f5ec3f7f2adf54d1f56468be03689c", "715cfcbd8457f3b477490a55733d582ac7df3f087461112bd91c859d327f0cbbda4ba399fc7fcba66fc99f58e01fc6fdc7e77f6b10b7a624155b24fe2e1d9679400217ec9092ff6a037b1de3aabf66d3c997e46eb062fe64ab88433bcc3b471df2fe600e48b3056bdcd61be1ec01385402b33ae9ac55d8108b4b9ee1b15eae4f9f6471079d34daa33c24fabc5dafd18b86ce365003dad36c043bb56d5a7\n\n# tcId = 239\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = dcd190da293f545fb08432ae90fd77e4974e5817ba8e7e858d95df30f90296bcd3e4ba1ba7a8e5b2fda5613b22cbf03681753eddb9dc975971ebf211c46196630501c5ef582a0cdbb58b8091ef5c4af1df4df49942d1077dfba75c73f4920231507b1b55ec73d1f1cb87accb52e46a0842199234f66b6489f050bd5b0a4da862801446242697802f23a221f352908e4a1d400f7f066f4560c8201c8854bc0ddaee5b45a1f1165dc8053e2527623c9321a412dab7c9e2f35db2b7f3a8f59f7bd4818e03598625be2033ddc81835308005f64d240d7253c1eea264426e49d4170acfbbd95abc48174d6c13959e3d8fea723eaf0623e4785ef6cf7621a4c65865605f1cab622a1a1add8d7f11266a7084f24c9fa1073b5607b90df4b786a9279eae72e300d1eeeb72700de66765d81f997d3635cc031eb8a962355efdc3937fd7fe3349994c5ed289d3656d50dd3844b24c3787785bd06527bc0d958850aa86c2a3a16eb41bb7de9ac214fe351f9424e3aaab67f5fd680622e690bb25ba967b311d\n\n[e = 03]\n[keyAsn = 3082018802820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103]\n[keyDer = 308201a0300d06092a864886f70d01010105000382018d003082018802820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103]\n[keysize = 3072]\n[n = 008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01]\n[sha = SHA-512]\n\n# tcId = 240\n# short signature\nmsg = 36313237\nresult = acceptable\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001bdd0c9e451b5b3e5513a94492dbee1ada9ea87e65a8cd95cceb4d304294ce34bf09a212f14908f5b865c7a34a72e68e389794a2d1c5767ba17829e2044108ac7842b6bfe0a5663b433d656f4e38522c5a5a23c460b898833828d257350e5814291b54cf13089080f84998edcacf0fe5fca0c1f8b176b172c5f9989491a039bef\nflags = SmallPublicKey\n\n", }; -static const size_t kLen315 = 267661; +static const size_t kLen320 = 267661; -static const char *kData315[] = { +static const char *kData320[] = { "# Imported from Wycheproof's rsa_signature_4096_sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082020a0282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001]\n[keysize = 4096]\n[n = 00e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed1]\n[sha = SHA-384]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = a454390b04bfdd69c4be2ad1bad96ec901639f0bb60df268415b4a93b4cd53510fe64f394b319e66ca8605d7d5f7a05dae5eff827060013503d857a977c09ef742525e43b7e69d3802a58206e696848a87ee17b2b9de6829044349036554c659c8f8866c401fe85869c0a5ea90739c4983a1561a84e4f0bceb00015a671f5283f41f0bb8599774829b6a2de24f14d83351c96e35ae1475c8b4bcd2cf66889237a206d147b0e949f2b2028ead379c74203017904ac09a5561a8ec343be22cf46c3bc2a87b12cf9cf6e8fb22de884bdd9677626b757a005d3745f387d296347d3852ddc2c4258cf572dc40df3ff6a8a5f9d8b1b410c54739b9ae182611ec01805c80b445d058ce2afc4bd58d87c03fc9500fba237bcbedb0960a1a02efef52b97cddac63b5eb0481c0c0991375735338ac84c0505415ad2bf8e7a819ad269460668ba8f8c879f521ec9dc709e406de023fc0f9129a3a94eb1f3af08d33eed6273e5166f31110097f5558d8d9028ff558e627c9c0db2454b134a82a9dacca5b4032bc0e27c4d41cf55e9d89cf51528bb4f08c6ee5ce651af3772f008a44863c851933a57cac8e29a84756c9fa7f80435b3b78486f9908512902d5461964918239c76b6790b780e09d2f1d3db1c59b275d20bb24fa4f518b25af3254b61d34ed8b444d3ca736ceffdddaf767bdc92b4543f68b25421cb8c1328f2f253e446be46d10\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 909c1f13b544933ccf3bc73ff5053a8a65a8f01b447d4b40f109cbde29d866368aaebf46c19051092063993862b32fd166006bdd4d988794d4e9a77821fc9e684fab1366a2d988eaca60e4fa8ea947dbc4b8438a9fc036691107d3d0be52c46c61342ef8fb7e08032921c1b455c55de28d58c77c1eaea03f13c26c4cea73d14acfa8ac2907f6a775273e7686ecf4b882b88a42cba11cd1efa5b985cf5a227654e54cdc9e2d283b80d250cce553fda636279336ba13f7f3659d70b5b2995a2ac7b60f329c62790d8eed1c3dacccd0df468a91e767c190be41a028d4efc1c5ed5e6f3a77930f50217fde9ce9ccb66b75731957959834839fa3bdc1a769fabebab03d3f0e605a12aa9fccb2a9421591a7427d82068623582de592935904b59a42e59b50419cd12d71da871862149a6500ec6870d989423346879551e506fada7c0c01b328244ac5f2e2c5bcbf4b5b09a4512a0edc90fee4d4dd9eb88582bfe37b49b8d8189051b32cccbc4d300284f9e523674a601b1a725722695d5ef438b770b575b6d0955edc761250bcc6a30e8d5c7287093236f223c2da8d9ab7d6b58e5d0e9167f2e8c58255ed16b63789ea16046bd0f987b156e9898076d444cc7a4aadc76699a2e3a442d63ca4c3f92da9f3b2c4ae13edf9d4e28ad206ed0cbd2df2a46920e298abd1904877b75c1a9ff80c5bf05bc5d1ab94d379d064fad894918ce326\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 65956121a818b842d861d0dbcbdef22aa05c7e94ce5d748308663e142881feadb85dc4421d9d01833b8b4c2713842c77949cee8b853286107c655de7778a5acca11afbf1d9dad429eb6a281c1e8ae1cfd37cdf530fd4f2b765c352bcea26ce44e2165c36553318d89b1e06ffd8a210cb988cbfc916a9401fbdaa56a1a2a4cb66ef00a3176182d33dec5f3625b760c37c82cf618cd2875079a36015af21d060dffeb5c9e1f4255d7fea64386d8d860c6868cd79ef6d7a87927753a78bdb63c4845306de1d73c5d7dccbb6cca9b65aef19a7b9e53d9c02a4a2bd6910e076959f9f40c30eaa0a6ef783c0b73f05566e4492e16b832729e03fc939e54bf0336d376a3b4cda534bee446dad3fe51d20bb8a135103e7e12220484bbe02e99c5803282ab90d11063e5243297f80d3f24ab08fe8f2fb62702b0543f0203972d35287ba64facbc635cb438a888c83c7028a325555f07521c3095bc4e38bd0f60eb90828319777fea2276e0bc76f2c13ebf92f802a08844209ccddd2aac1f2700e8a5107e86426e6ab76288fa01de18b8a63551fbe8705824d16e5190c559c7bbe8a17031e7d352a681b0418cb36423632ec48a8d3861136b250ad2fc72388e771b41849893cdbffe04aac4037209944ff3174f86f7a88414b1666727c960b1e54a2cdb82e39cf9f2661f4ad6e22f330b350eae7f588a623524617b1846486fe9f04abbf5e\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 3b35a042a4791dc1ac1561ad1038750bb9a575a7ff72db2ee60ba027f8994bcbabe41fed36417bd139a286ed0aa6c3ef2868a7251442d060c1cc67d4470c3ab7c307acb0c0641218a45b9cdde05546653850c2168a59f1788cd55dacd40afe38eb941ff08ffa8bbe609f2aa795c73c0368f482d53d691980891ba43b69f5791c2e6f70e17a996a299e60ce1c9d44ebb9f29e700e9ae216df749149f6c222d1e1733953553a792745c382d44f52ff404ed5ee04c41ac8acc97c250f9a5e3cc6d70902d51e8ac000d05e36279d83491dfe6a40f222bc1dfcfa7fa5e0197cf47528f77719e007b65ca39dae17bd0f323b00ee63b66401e2ec5f8917ef600a41c3a61571a4d922c0b0ad0a290ee054ad15e63f1a0cafb749f80cae6cbeb06be62e1608b502182d247bc6a37abe5fd750ead8b7216a35e74b969005309b14be36a31c5e6c2266701d5afdb5ca2314e2f32ae17387d8284ad2c7225fa63ed47e7245a65b74f53a5bd22654b3878ed09b1e5e070bc20eefac6c95b006b8f3e613b19f518c48ee6781a12bd08ad36ba384d03d3ea3c4e0b1facc39741f9ec73d0335d2ee735355955ed12cf8b999d155d389b1a3caebdfbba32c883ef7d0e112d86e6149a3328b63b9385c68fe8a7b679e8436aef7466067a8e8bb49e31675729b3f448e7dd3c048973d2a5f8f7173c4428f3982a99361fa691d1588e39cd4485c450158\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 09d8512c4667994623530a2317bbda738eb8917bc80c84b64793351463da171bccc88b95049a57ccd917a4687da3be63db21b0ad0972ed9ed182f4ecc8e06647675340192a57e6591eacbf15d2f5fbdcab568b16ed86e668144d9e676e55ec4df1dce61f672de9f53d1743b72993a5d21ffeb7ab58e0f83e297cccbf25ed68c70dd8441c119afb6c07fb1d83edd9bc1ac34046733c8b827d002c3b6072d74a6c2cf7f1d968e9f7b0873de8ee5adf902dc68fbc93171", "f763c425964ea6e3af6691f1a303ff7837adb07a09f728de3377fff74adb34c959d363db650fa5c3035febfe8c62a0cde3d006a9d34d51c5b2c4a1dd4f2423c532c6b5fddf03e0a05fdf8d857f98787d6f55f0ce1d0ca95a37177657035ee48bd4f39f7d520ccc48ee999777868b4c3876e2242f59b725798bca28ae66c267c507cd65fde612c1fdc9362994ee31134d5561ad7c3f523858f43611c249cca3c134d00ed966a82b800da11add213731b58caf232fb2094e9dd42ceaffc7002f1592e79b85eb6e39ed5de8484f5509e0f54166426095e8522f88363fd0dd7bf64414011a710c7834958c0aa308189819cd4488588b84729dafe163e79856b913ef55afed55e83ee5b812579b87cdb80d5bc9ffa02ec32a0d97b0a56bfaead58a438cee53d40dd197fa2eeef4aff98eb5590163e68b5f3de443909769080c8a6bf87e3808bf265a41a3b79f8\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 798f597e9ad4ba8b3d00a9527f4e785af5c55994e2953046a1b9062945e8dfa35eedb1e31af3daf1955d7b0afe74fbc53739b1aa02fa2dba629c31b211cd513e2248ed847dd579406ab603d3369de3bb07143a581734fd8b1ca0358c4fda639045be1f192b233efb8848bb2c544e4e188e0c7ce311bb4841077d15051c6f6b31998ddd8a7bd30d75b7b3c824358bccb35f8ffa8c0fc5ac37ed71cdd48ed3c0269a638317756bdc9287043be1b4f3c6ef6423f1d0d38857c195e7be81c3778648ab889474109ff3c7be0fec790d3f5f50b966e3df40c566f572f8f252d09e97d4c90442badf820c7db74d6fbb004bd7eb53c0b1a871bb9f480821bbb48b363c85c9866bf8a86de9c6732a3136f2c80e88a29540a9036b72fb8f4c898e7b487c41d0f693c91309bb3bc06f1e3b2fa9918c31ba2a4b82a37a927784a7c7d2aadc3301524ce2708774c3e2189ca188b3d85a33348d28ed6f080a06452bf8316d483e6a5e28b831797f85a8ca5ca922bcd94b9045f588ea9e15f2a20dd26817eeb80b3421c5de72db98843dc719cfb1aff1f927ee1df1bb718732159bec70d5b6d0f98a3fd5d42c31ecf4124cb1759f183838d676eca2cadb4d57f2d6a52cd0115ffec0fd79c99aa78df8c6b54797a590bfefd4c34e4c3f39750ba47f4d8002a131b870ff8e65c6c37b75e5c54c8a2bc2fdacedb41f30ed8bc9029819b7064b6514a1\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 41fa907da9f78e107b58ff6c4ac0e92a9bbc7f5b510260572fce4ef047c73cab3fb0d00b353b4cb9256dddad432c5815652bd83c78e657075781140de56189ecfbe1601f24bdce05c63f511a3d04673d24c4e943695d7812aad66f374a74a906177dc729090070cb5d6d518e7045f4cdece06ce2ae42e1177c46856a8425e60bb06040400c8ba0efb8d4f395a4377d4c2c128c68e6b30e358a73d9904d7aa1e517ef396526cb64d39b3b36ed7204b3bab1d91b23ca95b2ca1da3eee91c7d27b4e4e658fbf5060a79cce69be1d95252b0d7d7220797a53982dc371372969d4e06556507e7e7870a9efd9e03766702f217be1c8f7f80006c08d13e175040cf28b215deac6a1ebf3520a3ad9e91f9072dfe50c69d1aa5a0df73ad63f72831b055f2367ea35cfe676a4f7970bc85e2b58917d1bd449ed3d274ac40f7a515e261df3d067a277ae610e4ee4cf68b3a947ae8c8339c818ed10e73b6480577b2a13722023cbb09d3b378cfb71f6c86bd481ee09a1fcbb807338e968aa5af993697eab562aa4975562eea6b1169e86c75ef13e877cfcd4608994eadedea3eba55af19a7a55b19e92b974450a593cde717bf0d7ddbf0bbe8fef90816fecf86ec522a2d06a04ebbc50a1eafd67aa461a8a9cd705ece0bbb46cf773689cc19cd69607594fd2ebde06aaa1e34ebec001edf318fa22245876461fc46126172db41ae9ecd74700e\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 174f3644f5380c9d804287d8b58435cf141283eebfeb4e376493b401b812b525dca70833fdf626b043e70a71a9a54974be4b77b8fac0c8cd8b5141eb4c8a906cb16584b385124f2d339035906572e446d230cb60a0604e53454d8d0cfc588c0491190e2c26f46234bce081aab2c2cf15cd1d764baf46fd8b154e75e8be85d54c0b9062ee266e2ec781f7dbbe8764eccd13da5c107b46829590f6f28f595ef4de3744050fa2f721c3fbe1afe8250069d815c63273cfceb77505fec5844c21ad8e60a73149e5d7c3018895967abe471d7cc0800030c70760bd0d3d48d61e7eb12a0a27a91677216d0095a2a95a37f3c86942c1981dde4f7897a4190a270e962e2ba427b4e630e3187ab42cbb3f9aacc9c0f2eac9a8c44f6d73f96eab34b74dbba066c9dd56d32ba7df087dba9e479582bf73d5941cc107cad55c6596d4e25e39a7ee3704228ef978307605f2872eae23d8f2fc5d8c088b482e15adeda22a7cab9d00578d143d53af27b04416a1c3841aa88de6dc4f16b8dd320897d1498e4effb58a6d87b8ddcdcfaeee75ecb9ef64e3db62c232965f556ee3f74d73d2b19993e9a9b8d6ba56cc87fbbe3b7fb7ddcb35184ee2b881d55e55a7803ab2dcddcd3572cb8921bedf958185ee7046b12ef4e6190a314012006f8003aca93f430d121df1ada316ffe0b1ef85706e36ad2164cd1e40389b2f36cf10735e68e15022097884\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 34e01ccf88b7b25ed56f5fafc89ddcb9b6fade81ed2446b0c133f6949e73a1d68134973f59a551582bb3c28651b34fff77f97e91d947a96f269baef355697e15f4999d3b8b173c66c86eaa546b44f1aa42251df45584a938b40c6f1b5e1f8c58ff74f96257a044b10a70bc5075f9769c3c949dcde889e3b9c6d32d4eee6e312dfa2c74318954770556677d1937265e896bf044b3c0a03ac6ef1d82888a5a010787dc4a65a855368532b092a5f6c985dd720966fcd407d465b33426cd6e56ac30feff073bd4c55115bdbaef71c14f180fb559fa4860d7bc94b52aac8d121d0c0ae4c2a64ee32d1a1086efdb4264f4f93f4e8db096724f52d608bc686eb55f3e2820abc4384af6e4e4a8f9eca4cb3e52c43a67e673f2610ded69df520fec76d3aa50b9a6556fcec204cb959a0ebfa6dfb868068f583338e57cdcc2d2603acedc48c59500453522bfa8165c8e2c63e4ac97b3d4d70075c857beffb5db8df58247ec4842fda08a093df5ddae1cad03e374a350a87961408bf4fa99e5511ba42a9059a0ed73c1c9618ae0a300399347ee194003fb81f6e905f0286e1467fc0eef2c5691c0d05a480e52ec578f77d2616503061530de1346d1a424facd2cbb9a7c8da38d870e5f4b8cd406d41421c959101c6eeee60e092b2a5dc717f2caf292c8622d903856a266e31c7c342bbf09f8bc37f67f576a3e8b963b88ebda9aa31d093fd9\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5da09302fd2e6eb0695f2d027893f42d71476bd0ad8e1783f3015fda3d1b5d4fac1b56fbf133144bf82f874160a3a248e2c6a4da691a7db2110e4bd095d536e72fbde3b47ce0bdcca2fc9050aaaf2395686f98b8da83a7ad152b2f517125843b8306828a0d5ef8d4b3abb874373644e81755e7a929a33e98069c4d4d0a732b65c5b836c2b7ffc6a914ce02c2ac0d4bd5e67f7a395da04d8f24031d1bdad73eed9d08982216aac5a067d90311bffc2b109f9dc3ab4ee2c051e23880a675fab15a3ceebf15f114d79523ea5780d62a0785caddd3d345697b8a1a785b1488eaecbb863f8ba22a307bc835f3c832ce37de47a416136b8c2e559b38fe8d2b94c4cd376fbe209130206b53271f69789bd0f2596b85d9ccb000a15e3f2e7c50e8820dabdb36b1dfac83cf0a307ee46eca142eb747dd72972f0e824e9107f318036e83274ade55d53fb47069cc49cc51460f982cb712074082559bef436c501c968e1b73fae4adae5f2d7111a1741d1299869b5f5d6c831c69c4ab323c4e04227e435cf3cbfba1a3a9e6e6a64368027d5c385acbab0012f385ffa331db5decd358d44afe4d7d047ca4ec9b8f888930c1c6ca1a01106c8f7482ed80cecf0e244ee76e28527d8464f41395e949eda74e233282f50b6fcceddd3478be8b7825ac05f0f1f09617f31f79eacf10d90be50711b8d2c0a4e1f2062a3d6d4ab9ed05c0f6678f94e7\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 10877ae7a63a66b8249e34557c24145c4a5bbce1b2d7191ed8a6b194b5a14c6f0c75e157772c90553632c4a58636aec356e50bb15035b7409084ba68e91d09cfa3d090e1b4e17c08c56a3d20fbebd483df984b5f800c7724c52c19339db62ff9b13b2cb38b1187c5927ffe5728b8c7a66d3f209db3e2a490b115e6e854bb8b5fb6e390aedb5ac7fc93921399824120a24c6dfe8b084845e4921c5bdc04f0d3f9dcd7896632252b69727996b325e99a07fddaf055328685035b629c001078c8182e4bc79155405aac2324790497ca082e0d9e6b2707a011a9530fed0fb0e2568a05ab26e3cd1e613d6cf4f10ee619f97bebff59df634427584e26fa81cf8efe07c40eb910a7cbe463eb568cbc0cb1992146fbd7280064a8189d22ee23283f661b9e980d2403e70753c1bca7505ec92c1d688200fe001d597874968d14a8f3d8edbe436a6f7328218b69957b1526d22eea70992ed14526a0415e12534af443a1d8100578be888bad5e2fa18638d77dc5eb177fbb12045d6bb2fc70bd4ac3d9f3a202503611ef6b55b005f6a39cf45e3a896c5a726f8eec1ad5b68624347be0b4561df68afcbbd665935b4b5219d75af0252849ae4bdc9ae89636f7d0bd9533b0a18f94fa2ec5b4c4fcb63a0880619a887b710cb92b3376a407fbc6fbc43d5794dd243c7d235a14e8cc3e4f786c3bd57f391393d05c283bd9c62104fe04cef29c75\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = bd9586f52f2e14b0694a447fc111086141f8864f0d2464ed83adeeb0b702cc0dc501b899f0c1ba5acb0c0163191dc8f46e26631fa236289902949c087ef4968585a9daddac00fdf4430561fd81605f7f3568222da3c4cdddb9047dd529527a5d370c343dd2058d3dd3885157e4594d7af160e2443297a3c87c4214ae3ae2fb3c13a8ff39e1e804fbb39f3097b097a7d2dd568d885a5abdc3d1bb012349758e96b608050285ad3c80132390ae5fc9eddac40ca98d6db6463b8f10f79e4c4a98d2aa91b7d8d6b9c2536d8131a3d447a9622467e7170c66c72495df3f8cec11951db3cc6407ce75ef398581677753773bceb6aece44f40292d8de15e020523644acf0afc79e1381875b6a67168bf566665c4a4aab1a8c6a2a384437f4cd2b242acc8d8385cb39764dab2c73e2476200c2136e4904f8ba0479e5a6ece38ac8b4e99b6be4a2f12310b265a8470628f9d198d897cace6efd9cc2b8bd299696654ae205e1470521ec7ec74d2cfffd058a1bd1f84d72a5e13d2bf4", "4aa8306d78319569635d492c639397d886222d5de46f82dcc5bd9736d401ba2920577bc71e7cee77b9395732317b849d22ea98bd5c6ee461d8275df4fa8a9acaadc3db528d7c53e8b7e797e6647ddf9e2259af83b4c56d63bca901e1f0ce5414b5609fc1edcd2a6a7121b41a2f3082a7ba6fcc630fbc7fff4bc2535920d6e8345e0aa8d6240a5f04f1\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 23da245bc1defff09dc4a0adc58347ce419109e3002fd1300331a8dfbde68f4b17d7e65b8ecaaa69abc14134422b76036f4917b7d991e0f51d168074722a2f1ccd1b30bbd6f3139f147d29ef11a0da1204d4ad115df67a66d4d10509abeafd2502a6b671a40746861751e7e5912e23db05d0b3ebfa95f0f3fff8876b6f01af3dc3d5e94ccc7582536def9d40facb2c6d91e0eaef3ef7753fa8830c71e6e583fa21d423cdac47189337f8cca61044e492b073caee975cd3cd33ebd548eee68d7220fce78ba2db17ef8ae487d2ff06e94d3d4ae67e3ff9d3d78256403744dfc18c5649d529f3283b51edd7817cc3ee9a3d417d4e2e583f13a36bddc93f078cdfbdfba1c8cc486b50e8104f4dc862d4cfffc7c9209143d43fd7d55918d326f022db836d6d3ae155897aa4a12af78846c94e1bb42025a796d594920011945aa7d7f41eac8c0a42252286267433c0409371d20e312423062dea435283d3857a56d1b47248190b73b358ecbc998e7dfaa4f4b89acd10b05b58a172fa58fd37f07b707a978aa4e26d471726240edce522d4083477db37e4e230031cf06096d373d65e4e7fda47d421e4d000b722da6326d9e8fa5f09f2685f6af3a51f5649e99a67010bfb695f3f5bd8a6027ab1eb759ef0a022f5bd6775e5fe96aa22d9d76b375377e2b556199c940f0567f09899874e02e8b972940fc7d7fd632efa97a617c1d4767e\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = bec4ecc1e9935d26a8a448266a6d450ef1926d3e0353bb61f7d84934d7c66d66b4441d21b54abaf9200257fca89ad352fb0247b5b65fc952f4d75fdfd2c04a8b440817cf351c4c09493191ede4d73ca55d4142f1c8abd1982278c60c2f9f5f2adf4a0d1e0ad8ea2e3aa1778a846a91bcf4ba4b9637e4a2ae49ed91379c2127dce0fe03048e78dc9c37b700089ab84b84cff7872fe08d0d773818e158b896bbd6075af6df1a751909dd1e5dad968ecc91bc6219c613a4ab902de6b0acc46748a30fef9fb33a335820d737fdb353f9e8e5378e9ceced5b8809906ddb710038c6f2c4e3c80158f5ea4ab1e2357bee7f01e2dd2dc81e9912d8b260ef4ad38e181d7f2d5b07287659e03351e4cee0f0cd4e4ca477415504a8e59168937958e3eadda0a9e366fc370c308ad78505a8faca416e94b7f27f60f40709959fe26c1c6ab985a1141537d1fa110cce115ae45a10a3498591800e81102097ff514551819abfab67d876df37e1d04557ca98ac6d9c14cde0bd2e0f9ccfd6e2571750b3a69519ff2630c5f1a08f22767e9500727433126a7da85d992cd14d4d946aafeb596f7aa8ea2239d1d5fc0556584669a8fe968c7d1ec9f35a601afc7d8c5e2620af5bb95fd922dfb3b8d013f5b87c3cb1da4b3349ab13135a13d45de49b4991eefe8c6f6b1bd409b2f827288986e986cf08c643420b160a642dc47afb7af321d9eee89af7\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 6e5a44b4fe52c8104eb60e7d96e697c2fb0c7610fe17fe8c6d10fabc509cd3cb16bb4428935ec58fac84db83542ba166991f923a9889ee78088f0886deee107c1d0852ebcb295561c3977b2d69aa069e1c15e41d5ac47050b2221962413f9b5111a536a0a6c1762d04dd8ad96318964e34b8230564509e62d63b4bfd0dccafefc31bc44a0086daae5da89baf990e454f390343f1755f7db2bceaef0a310d07b7817a29371485d5abce1cb9b1e556b830e15b35de0b0aa977aeb1b6a54117bd787f7f9a64452123a3f29fc2e87256395102b6ac86bfde21c05a5aebd4862008be79eae34faaf324db09b5bc57e7e2650ba2d5a11851ef8c864dc5c04c58b132c208b7c579673b7419557d4bbdb47b2281129c72072d906e0e63f4e6dd55f3d3b2fc386a81a7b746a991a751d49d91a76fa4876b3c93c4b8e6bd9326957994354ce4d93dc93df5c5a8d115897d263857c702f2a95ff4a714d402c88b07caa43d4876ae5c37780a7a22a01e8f5a89ee1b50185a27318120a6d3dad156811ee818fa2d7b051d57c5a4f9b93a99dbe9630b3e301e94b04ff6bfd4361abcd95d86fc89046f66da80e29073365fcbbef0e7f29ea799e33302ee3a29792742f4a078f6cf86494c97e8b1dc2018d4a65ffaca21af43675a6461a4a8519e95f4320e2ce904f88ee8bfcc5d10a980684a2038b3dc8b34b5131995c684c89d01095b41b713be\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 856accc6420e940cb6ae49009afc46bc43ce4853098a25631d172c30b2d94b71268949c8ecb721a24f1d9b1dd0448f2825268c3f62c39a97d40bbb36cc93f36f9e78c1e87ae7e217a3f0f3b96c20b99c96d10d8a06b40dab75e7045f484bd6537610f423345df4b9235be70874c3754dc9131ad5041da7ce7c61ede789d87adac85dc9318b82985c83143ea1194c07386ecf2e3af4c1a72722c19649875378b43e85b8251e769e42405f70ae26d94e7b7492dc761accf9d793f5b9e3619a8192d8166ecc53679dc2bd1b8ff609d698bf92c75ac92895653c650ab205a9233237c5ef111d71cd13ae2cabe6c71f5164e896e9659afe547ed1321a6cf84734bccc19b9b93d796b54ee6f3f5355bf1a8f681854ada63ca8beaf9695c5da9adb1705ef06b3bfcf2d35be7793c48c8d8d32a1e2273714c314670447c51065619558c8ae80ef286048ced7e53d3c7b5293d1145b337a0ec34b21dbd3e2bac4897bc657737044c9ebf8c9d8ce82a33a56785a2f21c296b18435895005d1a5bef8c496a36c4608b9f7dff13bc7a741217b54b8293e8b754e1f1d98f9ad74bd3334f381726f405130509b815bcb09f34b3c34b3340870e7702b54dfab81fe68c20e1d6ec9f64ddbb73ef0768f3ed80babbfca7eafe69ccbe1bc8db50ed35614f1b883e702c04612af87fe3cf48063068abc42f3dfbe6499b8faa57ab75384bbc47c0a83bb\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7658eabf44cbf5777f121c459c87744aee55b520f3163f9753d7c21d6487dabccbdd6a54bd8186cc5cd68fde76e6eaba46443ec0a750a1824e7f8e7581f7b57949cc6c44b5a6bc08d61178617c4ee99ec700053562efee3d8c7d532082cea526f6e0949b686399f15658771949cf6ea8eb455587fd328de1315180df149bf764ce52536c82b2d1e924e7b7cdc09d11f7e8e8e1279cfebd39b8dd64902206e3fe437697b0cde2620da6f3252d09e2ceb52a6bb1a63b407d3ef1a0ec2d6dfe7a413dd8e899b8da238032241514b44add07e2a3cf37cee9cbd50bbdecd386226b08020652bb651e292fb4ddf6a0cf8c3acf9ba13ad90e74055418d6cf0ec2dee44fba207a2052474c6e397a7eb30a021d2e44b343624657d4753706df893b031395d0cfd831eae47775b2a4ee21bb36f294f26a1ba1011d16d5a889edfdf0f69e3bcc10d85dd89f54318aa6403ffa0dd3711516a0d13771f04a23c7679a2fead20c57f067e9feb5f43729bf6351ee3bda720d5f01d56688ec2bd5f760977beab14b22bb72885e2b7f43572c0bfda433eb65e8f8c7da81414f96454fde33ceb6775ae73ee119e25a8f54a9cf33922fb06def12c6c6e3cdf01134a62a81412acb67b7e63778d675d110d8fbeef33db054737c9c99b86041e96a13bf064264d3abbde65af598cd60aa827f4f7416d3f3b0c622c038c7fb63ea7c10691e4900f0505a05\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5bdf25b34b0452928d5616140daed62cb7916283165722a98f344e2fb86028f4a5a6459227502f558ab0e6d0591f28bbafc7fbab5a5411167acd7183936d072c3192d73aaf5f02ad4d31d0afec686a6c6c73cb0426c4320b57b73cf6dccc2a376d0cdaa2b0f86f9aac6bdc3700e5df7a75fe69881e3e0573167f3b8faba3d7be21635e7dd10ce82c7cb74e97611415f7e283bdac4b186f7b0c4e9e803a9f19220f686657300e4ec312229ff8cf69fb780964d14c3654df79903fae9969058533a7d0fc29f417f98c1c62aee7eb260a318404e64164699d18a16bdb934e5beaad513d6bb7bdf1f30c89eebc2cc02e623aa7f52532f2e89122f50ad8be9cd3d6476d815e721b789f148be254731e4d5236a678a5894b939de88067a8f70c3ff5355b7a10c2a624d09fadffe29c97e6c2b655b22cbc8f99a1912539d034537f29c343e94d762496ed93072940bc2d56bc419dc584e0f984bcdb4681920d650eac7bac0cf2ad14457566dcb2c4165813aee4d2891adf8979bf38e6d7a3b80073ba04c35b2d161575edba17520fa709e2f1ad8ee43ff5327fb8f40935b7563c0a1487701e964b282c3e5e294b5d5cb570d18108c2d8fb9f9e2419bc154e1f865b2512bcff2424a690afb6d0f582f4b84a41e4a211fe57ac406db5908ac95a5a26d7de6c3d7b4b27d4a7919c8362293e8c8dfe21675e800794d31cb96d9a400c15df4b\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 20dc09d6978139edbfb570a17a39704a662b77fe4047037275064346e761f2e198046a42ba19087fbf5f44977615a8c3d26950acb99ef1aabb32a99a5a069ba7008a0f8594c4fbd7010ddcdd71c2f5bd2ac972d4f2434cc662443e280f2e241f0c36ed47c276563763d09591c80d1c77fb1fd2ca278448f3d183fdc16f1d9acdbdf94c7a2408ebb7bd3883767ffd5f7a392ba1945c2ab9b03da850e745432f0a09c7c02e7065c8b55c3ff86b171b78b13c3ab933ea1a76c332a2690c852f4bc39e7e8cbff8d71f1d2e614c611e4ac5b9f6340fad1db3a3484fb7a295f9e7673bbaa8ed675da4915eaaf0b3cb882e9b9055ae4bb8ca513762c73a78f12f42bf3cc42c8e37eec06f7caf1da5cad92cda284d07de75aae9681cc4cc9974e2683d4a56a6af6c792f26a281e72df45ee3b2beeb7667e2b254405c3af92889e6add37aacd2e6f1ddb106d1e7de901f285ec7097b15898443d8f368a0756c2c937ef1ec177736e94043689d6ab04abcd7829d58e888335fc64d19783ef08544fae0ef5cda771e481217c09ebbc12e41981f56b68c4c9078172f575928c7003606f69c3d75ef2b397dddb856ad5625035c274b5bfdd6ee91045eb8aef15004160b98846c817cbbe8e608fb1426daff941e9f0d358abef9d8b52b59d3d25ff41a44cd1168e6ac32f09e86569adf3dd11c632ad14c43a4545575f4461bcc29122cbfaf5440\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 380c5334185962bef9ee8ad0672b4b997f", @@ -8765,9 +9075,9 @@ static const char *kData315[] = { "935914f2a6d79090a79465c69239eef14adf66a32117709528fec892619c26f59e234b5755530d1c10c59973b40a55c289b85f5e5f34c5e147af44c84460e2ee834f0a4798f49aa61a16148c8a36fad5fc255bd02621b5f51212908d73089b10936d778b6882c031eda9e26c7fc8bdbbc4eb808e318090e89cd6daabb75c1d55d638d603b60d51d3f3a82ac56663a0e4df5d9cbf323e1ee7b1531e97a2129f\n\n# tcId = 227\n# CVE-2017-11185: signature=n\nmsg = 313233343030\nresult = invalid\nsig = e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed1\n\n# tcId = 228\n# the signature is 2 bytes too long\nmsg = 313233343030\nresult = invalid\nsig = e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10000\n\n# tcId = 229\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 230\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 231\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed0\n\n# tcId = 234\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed2\n\n# tcId = ", "235\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 556bb026d73b4d8949c94db2740b6cfbb17137b69cf269ba5f1be736ab6eb0746cb7ffbc5d7d11995b2053227013d5102b9484c59f521853d99f961e46611974f47f3932a8e1f82a3f5eb047cf7c7bfc63b5dcf86effae34ba216287fa23d5d79e7ea2439aad07fd751e190111308d9b49a524db7c3b0c939d9012f9c2f3edd9534176ab2096d4e3d1195566d072e3deef214539bd70223f712ec45f8a28060604e29ccf6e5031432c9623190dd194a79bea16a1b51745f2fc33f2d4229cd543a1d197813525c655b34def9990fcf75deabf65b325815f80d544528a0639383cbad12d18d4103abfb634a7b9dd68d416600aa4bee19bbedff26f81ed91e119bdcde3ca52792e2a5eb20a4c927f96b238bb478ab31230901eb99f856d0c92915fba339393d1acd7f29270b728d3f26614c6c894c11693d2d52a89da376530f3356cda798f1ff98277e8f469895e66fdcd8e685d663e9a4b9b25874626ccec38e1acdf1762e20852727854cdfda4682951000c6b412a1d0344aa4f7a13ac1a6af8d34bd7881c8449e645940df870292dc70493149f609db2624ad3ec293d8666bd8e6d8deb62b16fb88e662ca32f99ab3a7a99247f9baf9ebaa3cb2dd05b110d5288550042ddacf603388efca1493da1c9bb92cac856f5eacb8c7fb5650e9288635b6c44a47b5d6fd36c41637a6de1eceb135871e747318c27fd341fd5d3ebab70\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = af875eda2f4243accd942bf9abf7eb89260c365d64e610997961b3278914c330e607ca8342847b02c9ca916b1f51c2afdd95229c9c3e1d33dcdba370f472060a3f7ee1d74c8667bb8945b6f10bdecec96a9699895f2fc58f21e235d54f2988cf78d27b65037b7b46552412d30ea2b4e1d96167b9f720f4704bff09e3bf6e2ba899445debdb09cc9e06078f4dbf1794813662d522c25c0e3346132c53e31b02723cd0252ac0932e0171ecf11cef73ecf8eee9ce23f3ce66fa6301050c8e8ea96ad136968926753fbd09a4da0176e8e3d9f572d4857962d04aaf33145fd4613329fc4b3b50c28f4d43d54317752f983dea5432ca88efd035ce839d09867e0d84ed57e331eb7ed2de74ddcd625d13f3bb586bb4dbdbfba34eb0d72130a62ac10079807cdafb40c6383f08af4109472d2ee6430c3c301bd6bc1a983ddced8618b08db2fd4ddca07c9f48b668c9d6f2cb2755a29e19ca0c8d037d3db7919450900d217fe426f054443aaad6be22285faa923cf719350cdaedc8733ece6d62264bf4a0dc1bb88646f157686a4053111aafdefd412d3d7f59a2544829ed429038f1452ff36d4e8b297d0b43148090a995944b4225bdf519a6315d62df555d2337f7ef07975f0fddecef82ef0ca5bb41444d89860405fc06a8dc6c93bd23663a977c68ff8890bcd20988efc44df6891b9daea3af083137a21f3776f2e85443b359ed13e7\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = cfbad304e05807af505f5590a49eca630fc43df9950e5f43b2128a45d7271f2ddc86d8374af08bb478bc2ee3873f883ca0dd41f5aa853bc442dcf5b6fb1fed395d8d7d71f19a47e27cdc790e63f4bb6d17faad0f58efff1a36044448db8883325b290308caf5272255be1d15276fba4039206762ffa3b63cfd07c82ecbe0f8b68345f748c42729ef05ee87d7d5d83bf6f708658d7c45a7f457c3187f76e2e2e69bc74e60bb729acbd1bfac5b79ecd895ada4b2c9ba433ee513b651168fc23709bc75f27ac8f79336543d44af3910ccf66fff78113b103de9d3d0665157ebc14355e9048e04cba51882db9d70f41505e5343dd82894ff277417fc6b9524904b32655ff0dbd8899671b64b8f4e6b3878553d21da3ab842c12c0cc4cd88bc131bee41896d0337ea887dc729874922f4cf5b242296787db9709b237cf0b9a7712ca722ecc6842c11612dd79dba6b3fda11597baacd44a00519bf864fbdd3b4eebb923b7eee29aaa968d074cb45efb3304cb923b247867f819bb6145186cbf779b5c4d8b95add1b649b38ce306479e8684beda55cf68b2aa23359a9034c6b37e54262bf54e6cc3c959f3c7b8906ea15864c488e33bbec8b5d465054602798359eedb80c9dff2463fb16d153b0200aa01222fb3b2dd844f915efb05612a8f1f0371b2d668a68768a168d507af7765ae805ba3edc1f81e0dfc495d824212d1cb00012a7\n\n# tcId = 239\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 92528f459c1bd0775d8c4655fb2fd5e8040f3265bb57fe1ee553c48f34738f3d5ad2ae40d6037f02a23989669e0ee9835f3fc7444213558f2eda9bb9485c3b81d99fe1ae4e26b22cd5ea7268d489d291d4f5e47f5cac8fad31027cc56138d5b55b3e45b05cc858afd6ed92bec181e1176b84ec33f134801aba8620b294b2238165b8182dd30c1831307ec35944e1611469a458ed3eeec14805562f88eba7e952beb9c19a8ec9c6a0c7e2418d0ade519c1675ee3b029bfad20c434ecf2b1105e76592bfb0341380adc413d566e62c9308f59d6ee717d25c5a2887af1c8341127b690156186a7d265fecb99a08421c89c8da829c6e242f561876919b229e73cea2f0694d8bff282231ad9b010e4d1c65483c2acfe70e0d840ab25e5d181ed7ff884f45d48c45934a60ffa6cbeefcff85d4bb3b6187a7d1454a2c08c5fa222715bbfbf707a492ac8fa2a709686acf466966823473d82a7d7366e253a41372fa2200cd4f3cc4d78a4bc2c425a53d1580f0e3ecc17b48bc55a8185688f3362a5ef7cb547ef4524606ad3e317f0d1027059bea88a0ed7fdf44515838e3a03fe059a804534b482801e5b1cc35ee6bbdcd4c6af53899cc97457224b8470cb72c4c41cb180ca639e18d45a9cdb38d27d9a82c04157c70d5ac18b623e79eeb9ff747289b8580257356e7a2488f0811509190aff1c7dfe3e28019f5f861543af0004f897ee7\n\n", }; -static const size_t kLen316 = 267661; +static const size_t kLen321 = 267661; -static const char *kData316[] = { +static const char *kData321[] = { "# Imported from Wycheproof's rsa_signature_4096_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keysize = 4096]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[sha = SHA-512]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 9cd28bf41b99fa4df2852d86536257fe111f63f01815146c057dc3bda9b6633e49495d38822392b6b901e6ac69c4f09623a524e49246c3710c85a1957943d89c8399b0c2a649938bb07340f14c6981a0da0fd35163bc7eedac80ad1cbf06a4c32a4a08523554256eb221395c76e1f79a5e3c5b9636673db3ba27eebf8315468888671f8441324e092124df31d396ad8367eb7c9d0afa44dae85d56208ba21ec7c1f0ed6a3678f5d97ba7089422c662d86cd514fe853f38481632197c1ba07e4d92735eef3b75afc25ffa900769c74ba34f2d157e74bbab64cf413bc858cf6c393e8afe24f9e71168e97db96717d0081d88a27257d8c692dd0e001f3fdc2090512550ad38725c10a201fc50f8dc89ecf363b4d21a7d815eb78557d42e657cb44bfc785203e8de00f9e18af1c8e12953a33b0717af215d9b04b71fc320bdf4d558faf55d03d30844237551e35ed6606bc706ca43a47e6c493e14719049065eb8e00760283ee72c1ae3ce019ce3263a90b8340d1a47b49b78d5cae9602539b379186e5c1e847b69c75152036c8d9ef3c77ecd151bdae7ff36a459d0bbc1dfa33ce3dcd94ee2cf6ee08a77485746306ed987eebaae2baa544b543b5afe143e4122ade5adfa4fd463a246f29482dce7a51573aa18fce87f7edde842e7f21ff9e40c4101b922616ee4c14ea1af3c4d417fe8876af381027d837fc40dc684e81b9eecd4\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 659ffcbf6b22f5d201fa4114077aa7df32b513a1fa5948ee01f6e21c1862a2b91863f7aa53d1aadcab9347955210a91829a5f7c86b3e2850bd1f76b3c4f4333615ceb22830a7a9d7a13436683a48995bfd62f528ef4959d30b6ddcc8ed2a431c06c337250f8274417f6369b7a08b927885df52bd7370d3675094bf1bd32a7f5b0ca9a399a59f868cfb78f87b8647ab37d0d7a58d6f4a58f3e3df7ae88ddfa6470050229754f4ccfa265cec0635f0360c485d8f81974c6b8a11adce3775dd01936b82db37641ecf5f43cb8538055a053d4085c38a8a1c4e0c8af961448a779288c5efaab1eb4401c8f388c0b729e42243d935df1ad3705c1c5a7ffb6ea8ce77a69481a3b930f95ff118cd0fdb17393a37139b3b5a9c275c6bbbc819e18f49c369153bf1f7807b450e54fc28065a6ab6d5b0ee91d0a9302ebc0bccd35c2fb2fefc341a954b67e91f6d8f3f7b62c5fbe504508594f357b1ed951fcac7043a082b9bbf41ccf609881861e2de15ee99d373c0e99027ff240c0b6fa52be2e199967860baffbe25b3254fcd375da7152bb94ce8dd01465290fbcdea0838a69576e97e63cb636db79c2799a26f94a9fb044e3bf66c520895b4683bd799e6b04ab62f621dc00f20a4adb131606f127b84025269466c760181d7dd9ffd0aa5381180b541e5e933e1841d6386ec55a63bd9d8674a775526d30dbe34e4db87067a9326c6dba0\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 46eaa4624a4d2c1f1043eb3d17b48d977819a8796f48f20174c50da624c657e64d3154dcfa2a5b1d8c6d2ed07cf1f1c19aaa611d6466f7e7ec73df5ee786573adc5a9e3c1d0a25559dad282db26e889807764115a05a23959acf48d23b3b33a93d8b6c7de3ee446f113eef96055d285fdfd27888e569c50f022d5e8abafc874dd5a61df6258e85268bff66cc5643107f7d9097496caedc185b37311ab6979f273e5670f143146b68e44b49389554772c1ca7bb7a12fcf67d67a1fd0c245bb4cbb924276ae756098599392cde076a1c0edc8096d9125e5a5d30c2a93d00fe2e0362e98592c8fd31ab5b4c3b34e65d38ca0c25874eb394e04969982b70932616b75ee2912c6a07f20ec70e52be630ebe024c0622aed125e00bc84980416b80cba7752eb90af2b8215c4b559880d2e1c577b7374531038083725d23d02d4fa5d8b5a4c68e9ea5e11fe2d9e03c1b8a4db0b053097b5a175b1131e8beef5d559bcc3f17ed2e6f6304c0e4650a2bb675aa8de44af8a2e301734584eea145c4b389f6180e6395412ae70e57f488ed15d45895be580bd87cd916b8f20e46ad2fff0367dda54266778bb444c6e4fdd45fa62cae3aeb54b6a7a6b4d8068e3a4d0730f0260340a6c32c3c5d33f514612c941bb63d730df5584933e12546500495b5ed3ba3631a3db871d17353d4c16676a0332ba4c4c4c68cdb6ff21ff737ee249be153c1d9\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 12813153b37fa6c0fd755a1c7c409bb8169c5a39d045dff2da02b2f8e8897b0cdc6c2d40e6945b97006f18e1b26983f77b70bf2961b5e5f2759241daee8c56fca7c53c81f69d3a0341720d9761a4f7be8c068464e881c85a2c39e0ac6f74f6f5cb42df8c3713f66a282d7fba85b7a09a6af83a068b78bfe83ab25841e4bc67c9e40cf2a0974f8875fb81cc6a115b91f922419c44ea82b33187521a7e1f46c0ab9459b4e97a3f4a1d9e92403a37168826fa0ee914232afb6c4d7dd082d0c58885e356d0efb8aa9ae33d045f24b4b3182d5c54556f5838c449d31a49a3ac4ba568c248ed72c111b5ffabd991ebf5c48efbca33cb38996d584992c4abdcc7b93700ca03619412a355b41b000a32f6cc4935f942209b56a23cfb7b788dceb692343995f77daffa25e44d672f8bc451f776560b415d0d1bfe9925af1c2567a8e9bd15b8554d93377c62b0addabd27e8d9e0859f498ba8e03094e1d86d41e69f7606d9f1fac04744c3b7b8fc4942a846e2a3649bd9416d500b9895455fb6741ed8ed4f426f20ab40d8ab2e6cf6c63f5c290fc011768b317bde49753efbdfd12583f1ca79287225f9c3d3ed0c4530815e4f5e7ed78d14aec0d04142d0ac0fa3bb5d73b4bfda2fe7103a2ab40672abf08ef4d9e537b9f856d32450e2e41d9277be62ad0675d1a530709f2747f51f17aba10381fdc70c626bab45d51166b6f6ad978d2dee\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 27a042625f50673fe9edab9aa2fb4c60dcae0be2e8b75662bdddec7b1d698065510a193e17981bb0b1c32e46d237e15915afe2e2d4890c09907e1866095c19763524b6c8d2dbb7814ac5047f0a082f7fed4109741f4719e12ebb91f27a3cda71e80ec8a7f6c882ea5b3de3c9f156cff033a0d3cf787f9a8a833a29d0c96f0b68ccf55ffc62098e21f0df1832b70878dc94ef1a3260ec2fa56dd3c4fece5d855644d26012f56d2af85a0771d61367b7e266577e44c44", "4347970908ab6cfae42069e2ceedf63679c2bd03697957e287d156b2717a416f0e4ad96868e1c7b80eb84e99778f670ca39c15e1f901def1efd824ea5f7bbe127dce8c8f53d849fe1172a1254caec13b10b0612e72d3f8e7206eee2620e8e3c0ea176deb4b1fdf5d8d37b57af553cf7628ead74443f98655b5166cdc08190d7e3b134d71c21bfacde3e4673529e6d8a9c7a8b419451e7ecc6c16a44b8e1b3f2c9d1c822df8f2b51d8fd027074ab2d1c52d16aab0a266c7d9ec03df7e631052e67a28963bf8560e89326168bb7c8f5a152f7ac54a46e88190c62a938628950df881a4be4136a55bad4f608d39ff37907a6f99bdee065e5ccd2921f8f1a2ebafcb336fc6ca96a207a5a0a7873420a2ea383a5f1c604c93b6c0ac69244f05d54cab184c6592e9bc4069df60d3cbcbf16729dc2f3f3540474890abef29e1b21dee8af0386ab61784d7af8d79c\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 2e642b8a5208890b52187729c43a1a308cf6b846ba1c2fff152ff4a1b051753f14ab035c2f3f732d5a9df7c2cb732d09f8147509bf02df8ad26924eeb04dded8467b66c5e3eae384568f624e55c81cfd8e3204422677ab62d919a176471b1fa8bae44bcc8d4d116a6afe5ea2773ac52a24186d6a4374171ce0516bba8733c59f38d622b7b6b7ca7ed2123f7f46b6c06b02f4c7506c46327d7cd908ddd503fd42be3cc896008eb9202bbd7af08b9908121a8b27fa44747217ef72a8c549444232e9209ca1345ee017010409527faf0722e3f13641ede5730639bf560c8a655e2f96cbba7b2811da8a1fc3e5125c92754ea7b823f394998b8890602b1713c2a4d352066e01f55ea86fe3da71f9119300d84874b667a6538a90ab24aec2bdfd9ba9a5f0c3072d549653b16f4a4319ca398147e6753f9a048b5b250c64d599115bb717ce85c8370df62c93da7e10fe705a12482e6f25e6ef1f4851a305aa4dc21b08791885867fc10c5503a769a6d6794ab5a9cc5da68cfc3546b0e848ed8629ecded620ee3fa6dc1236b59874916c45f9c409c9889bb85d7b289ee5f45f6d33262dea83b32c071417d3759cf650b9d43468ff0c2e922632e8d73feb4c55fe4233dc1f0cc6f6e522fbc9e9362f1d69441d56ee5f3252dc0559339335901f539ba274cc3640ec776a12c5c7e5c1cfeddedccce36884ea01071c2bcfae7ebfb5b874e6\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 811dec041124d3ed9d5eaa9c760ca5756e42525687d4af701231671e8f7f4448ea9b9eaacbd9c99659ee3c175277d30cdede73e1b332ffe41b8b737150ce1f1c67aa6b22ff801077c4241a6ff4af8f4db9462c70c13e1da86edec4042a70be9d08384d932681dae48fdb83149170472564a5bc68cbe952c76e476b99c8a5a1ecaae809690a014b28224ddb9c9dce0d4f6a77fa2888a71f3aa9b5deda0af40ad0464d9adbd26fde242523c096106124048bafe824f733b0af480056de2314f5e27db5aa3fd15705777e14efd2ac43beb12f8f496d09103ab377971cdd45e9afee8baa874c23d3942ee3a505bbc3901dd4cf55ea8a30fac0cb754793fb2d8f4edc29afd51b99140a8d03aa0614169428205fcd66c1047d3366fb32f1c2b1bcfed8ae23580ed254c3dcb127daf16aec1892714ee05a1ceb4e561a1e9c8fd4118ef8cc9e063bd86c55d28b8acc9d5b4c589583e7c6b78fd518d8ca85b88517f10c27aca2f0bcfa54ba5bb94ed5b005e3d871b68b86e96adf12588037adc97cbef59c05f0d2162db2e4cce41227df11eab5449d612be56ef6fc522452573340d4d68af0178d4f19db6a0ded521f1a982bc5567dbde2036f74d6d67b806ccc7c7f70d3092c22c9c1acf307b751d994fa5259a5046668a047afe4c3302e908bf70bc6b55c39726bf24ceca809357c623b89fbf0eaf8b5d18823337e7e0245d865574cb9\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 47dd8953f9fef033d428958a32a4b30983d7eb9950c3d9acd167d50d9445cafe2bd02f44db5f7c5f6f999d3e1cae5b7458cd3220034132a3195481fbe5ba6b878d85c6f8ec53769f28245dacf66b562bec12399919265b3ce99c5f2217c3f5b33228a7300a0e87174675b379ffcd8a048467f04df2b5b7a7b8e3b8ffeb2dcd408a9363891518988a2a09453e98f7cd73aee8be03acb0bc8d67f7f944b62a717a7a5dc9869ac3d30e7fdf68cef439eabb8220c6923016f00b353ce5209ace5d387a7f50dbe09a7d2e521f1ce57251c48883229dfcea220e31810aff68da93744715f0720d49d8a5f3df2ce56d8fa42c02300729e8099df6e8d39bcfed502a5ef910b024e09031e141266e5493e64202a77c661da8c363f713b78247d8962b271e6ce968810775b6e76b577f01c24daeb7f765e9aa0118168103a51870dacbb4144389cb0e221e6529f9692005a2828e68936c339c96f7bcb4ae61494d03a3ff46adde34aec671b5aaff2fb61dc6011f53f9dd9a19bb6f0180ed90a4ed44ec0ecf97fc50c15607d1c6e42d35e36526f3a39278a7afa2601ba7610292bd6f04bff85f8c4f32f32b42379085b461eaee65de85ef2fbdce1d0dc39120f5670ee2ba5b12902878d2eae39290909dc55d64d1d6b03cfb4b144dab9e7bd8cbfe8500576e1a9f300818abce002ffedb4e8f2f0f58eab36f5c81929b50578d4ca3626b87fe\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 17ac14ac21d38aaa857542a9d871f7d81a829c39aa26cbe7db722f68e4397a7c758b11a0154edd42e1cc6b64047238ce4177558a0caac2a6c66136c8347ba058d6aadfa3630b4c44fa7205e0b8a9582eb5d904cdc7d25e5b9fc83bb4fc5723b3171834c07d59876f9ac771ee66ee17dae152dcfd86095fcd908697008ec1776536724d9e4322b6f7cfa59949a0b9be7990ada56722e6536b8e1442e0f0d8799ebb36e7881ccd52ddcd8a8033cfaf6d3e2a5f2d5aaa04291ab11e48e745c4de3fcad3120261d01eca03f502b69ea1d5d6f5556e9a198d663b05b7d631dc975cb7368b8f34fac47c621e60163914144b2e98e2f993606f1961d2f176a1b1eb17e119d48fd2249889a89be68ac78a415a8752f0425f1baa1cc5de9a4e0b51bed081ebdb538a70be96cf7519eeda55bccfa7ec5fc82acf88036af913cd8b30f182646d9f7f02daa27306f0ea2fdf436a40bace578ec2166a4080c7cef4a862804820020d9bdccfb2289c99ae61ee3fb3b3a9d3f6df672c4690e8c943f2fe23b5718a199439c5b2dc65b63d37e00440fbba51660242550484c94c8b6f504b0bb4e2579f1f560042b721db7d2ec2ea175401c14899062f9022fc0d8e4775c8d10c63cef61e9c649f771351b94620a3305f2d4b681c11089b5fddfbbdd291ccf9e1a997c1b2e6ab3cb1e1bdb428590ced534cd4da5a9548f3d8a6edc20139115d459853\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 15850012d1a5af88b5d1105aa0aacf404c2417de3dec04484cac687f6bec531cd569074e5c44ba15b27ebd131d018c2a4b463ae029bef8295e89c594c23ac9878e6d7a03276cb7c0b5231e887fa7e0fc3529c11e2580e329e65c669c346998d687fbf7e76b3539605753c3cd708dc19a072331d77290d810311b23a76137ddb50737436fa31f078852bc0d546364a28456c4048bae337ccc0fd8713c02713a987f89f9868cb64658ab1b8298846bd36b8efbbca088b6489d69a674aef11191c3409ea5b6428c2d847833db1563c77727706d2657ae8f249a75e23a1782024f23383330d11f1b91ca7b0ebfbe3f4a5fc6b2d37210b16049a2aa61030ed1c15b5d2ebd1a0ece36de2f53b36323a0eb25d4f77ea3582591e13f00e836a87a1fd2fd432f074fdca1a27e97dfb62f1666277bef1404958601d4e6b8b24125b4a86c9dfb260c3eb84750ba00930a1f7772510fdc0b265efeafb5de8c2525f5706fdf52a6e813bdd18cf683dbe94a6df2464366707bec34cfebb097b2f025011a0c4b5f263d30fc0c67c6e5a65f2281b463988ceb9b072718802a0a80a52f90af1aeadc8fb290bcdfea333a90b55c1a73839665df30f5b42f3e795ff1f57cdd7edfdee1dcbc81155bc3be1e264084ee3d7af4fe8d9a5be9cb2692674f1f608139b9707dc4c4b5b6968d4081236946f4c6ed2c8836769a03f9e87efd1c555f4ac1013882\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = b053f20b91837472425746c5cb3c26f4aa24bb58482556b418aad3aa6df71b9f67fb66855b83ee57e7a62aba93167d9a0aadb514c7d9f4c6e0000fea8525aee39ebcd59017fe5e58ba751c89daa976c158d9de60192230c0ce85f832882fb3db671ae091c886559dce66ad1d6ac0a5d1b2ebf2e1c30d88c46d43f9ffce192ad1cef57a7f0c437f6d25db071b74b49faee3b9732e9e0c7fef58e5b9971277411fff636aa2393ddc82202319f2aa5b2d14024609310f9c4fb6b8641504151f07ec1db8f729ecbbadd5a1d21969cdca6d4c9e7995de673ef79e95384f83900303c157ac79bcb681d2601e9b2f97a9438cef3a8ccb72a740750a2cdecd1b1b0df4a313e912701e82d76d4af9c8e18ad175345ef59968ea8c5dc62a8afb39f52515d6e8527902a03dab09419208636a3b0eeda8148d2ddce169ad3389776e10ac3a88b1e57f0f5da8e12bb1339f1cbfd367b221fc2754c185fd52897deacfadfa401eba9d55521592311ca3441c4228896a09c080443f78144e3e5d8068a946fa0d30b2187cea28085913ac86051e77f84873ff2b150455fc2486edad521ccd0b58a9055b049664d1156f4eb4ed393bf73a5d3d09cf7d163b4ef5df618dc6a57d2983024b779eb6a3331cbca72094052a8621d24d76db741a9f57dc42f41712b474cd8ad90fb348a2646f456c6ffd8a30657e344e57bcf890bd0a2d199bec9e2d5be5\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 4d8feae269696ba5aa750a49b64e7346de9e11ce331a3c7bf917c5467bb077099150b760541fce35521073fc68a5c638a5884fff577e97f0d78faab8161ca4c766ee4cd89e26d8b747671d84bba1865fd133e51a7e81e8986f0c95400ecb58c8b0af8aabc9ab352a675041e7bccd972c2be01080ad175c76e431ff670780e4b63d34aa69e3227696d8736a6d6fc2e20015180a680117a6f04f8f56836d907fd9efe10a7fb5a0f57f6461fb527494e9678568e168a83ad61b8c5cc9872f27a80e159f8547849186ebc43a54c41bd49c0dbc48fa2ce3781cec1d6623017035cf7425d7fd8a8562d3ab36c9e605738f82b5a77fc65afd217963e710a1e3a4e30862c8a8f18c97b095f68ae0878ce3cf1d062dd440764e19868c5b98f08575d65e0b944ce83b35028da466051d082ba66c2650eaca9ea9d83804f41437a3ea43932ddc217fee2c59765b5e862e85bed19e9ba0de41d64e518dd1c7c2f2f0b4bf44b40b26eeae0911d0c63b1b2cbbf3cb8e24a1ec6ddd70b9d4", "42313e47fd36d1f1624d071de53d76384aeeedde697c206dd27cb1d54e513621351444a4d139cee2fd04ff760d08d6aa949fe9f2c2ebcecda4f8478900503eaf172a63d4d6deeac67b3b880cf20f8472394451caad83af1e8de2e29c0bf904f288d74b73fb330fb3a50b63ecafee8ad9701361db09a1026146bbd0ffc4f0375488e5a178af304b6301\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5113288772030fec77b5bcea9a599a9502d8dc6b2b13832ae23c34e4be89eeefc4cdce3311fc6520ef8164ac409e9c2a8f6b3f7ae54788bd652f73cb8902be3f0f95c64b7135a231d8b0ac9dbb82441408eae432106aecd8167e0d3ff56fedfdd0facdaf1478183fc35a522e34933ec07844f21dcf76ed0eef71559769ee6b5a6bfb14f654528e6e24cd3f331634e88862f2b37e25cd61549a7ce207aabf6550292c21b187a30707eb0a463be2bc8ca7532f1b00f7bf3e7b561f685c91f6492c5b728ff2fa26865e6f1bc85ad84d44728fb549fc9d1ef6cc0fce603c3fd94ba8bf795fdf1b347a9f5ac58f1d922bc7cc3754cf427287a8458d075a148f6a336a0fde617f771789cdaf7223a2dab71448cfe2c2ffabd43eb839c5eca84538785e3c6f1cb0a19e532b5efebbdab5b98260f26190a359c378983548497cd746d4ee0021f148a6c7b5ae97e96d72565521b9d9ea066a3bbfba1427d40099ca367e378b227616d3d679ab5832b2dc93d2eb4993ade501059cfa8b916158aa8238bd5e1cd83e4a2ee676dfcb85051906f94a8861f5e2679912df5b48ba309b90fb383e213a70ebba0964b00f7df451c6d60ec38350e260861f5b5e86af8fadfd09d66d8d1c4955fc8dabba82b937ddea4003f9c39d4e7b152c4d13fd2e54fc95cd3c3e1bf20a065fb6a78d161e80bc4bc00c5bd93acfac027c94d21accbc423c2932db\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 78e1817f4671f8c737dd45ca7d069a572d73010927e5957dd6f05ecede34487e8b4168e666305a80ead3f6f5701d350397ee730ffb6a320161c9743db09cdfa272683383271287908eb5a61b0e72cb783b4b0f341f042973247e525330201eed0b0ad881582de9ca70aa66e5171fc08ae22a89a6d5bf61f056ec02fb5207a82ca0270da42d44afb79f299782da7fc8156320e837269c9170dec5a767451edf0543361c5e5ef4f6a165cde8b0f6c6b6c62ceddd73bbab815d08340046579482e39a216d2dc8069fea722937ba5333cd47905497e512b904db8731a88006aa6b650841f636cb75c1b6d0be32b955389eb1f6ab5df19bdeb9ec19f090d7a46b1d45063126037b9f8f025816bc79d33b983cb576392ae135bcef786665522b65a6afcae3e345c06d551d5a122b305b413144cda4a58012d539bc7f9326f1a80ff70b5cde353622577dd23d10f75d206839274c771f2c6e4da1eb7b93c3c0640ebf7d3d8010e22a2d58281b8f811cf8f99725542fc9059228fd7e01113b9c3c8956badeb798d89606f481e99c222ea1918a26aca49a9ce98bd4fd658ded3c5a2c946643ff312d418b7b0da0e8d96ce91da8cc037c16280632083ee0032ef65532ecdc45589dddac1fab52f8ed55e35c261425701d9778ae53caf595d7b32510f7dfa8a7c86af4e358fe08b8efc19835e0e9c40dda2f1ac05613a26520f0ca5a126e95\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 246873df5e978483ab6bde2bf90219bfce3d2b6dd6db3a32d5f3da3808e5ad945f1dcdf1186f066ef8860c8854cc80ea794758a84dcf399c9ecfc54f184de1397d48b2a15432422c60d50ae42ca8203be687f4a51fb27f46ae5c8ffe354b708d9e7007af22b42a2662a61ce1001761f3935cd6649efcf5049e4ecc0dadf8424dc3be83a299902ec387e42a79207170bea5db24c729d811b6ae9480065809aa0956760d40fe0759024af27620c12a9ce2f842b429d005848857a904ed62cca6752cb5be1935c6562c3319d42efddd490705eaff46c822f81a28c6dc44dc9e08893ffda5e044217a6e01fcb0f6e55ef1a6393ced7049657d4c37b3dca55f5ed8ca383a4a72c3a6ea6f096d1cdb63c767d0c5f4900006ced15e0d39a1a6c2d36f69af25b2a324fe6568e4665b4ca9730f50aea9ac98bb2a8aca25132e614a70c20533cc0b78c1092988482dd42cd13e4a3adabf45f811d638915214b184692ea09b83975a5e0c3384c9b37db667cf321f3d297c0f4fea1c80ed2fdc218c0b7db9cf8da370cec25549f2a0e5be001df317f0d1f6f36b4dbbe4a499e5e5c004a51bc88435872e4c4e34115619659b94bacada61e7d3283bf5a23e6c548bd089a6553524e430285e2ee278768242952b041732fc7091260537b0801d50e01891cdadab05c671a39dd46db4d9988e03593f7b4002b3ed4b0ce1b0e6d5253c423f59bf6e\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 0d93eb247bbcf1003b3360fd8ab063378baf9ca43df1ed46aac03429ad1d817071522cc56dfe61e96db6ee747a5ebfcbe2ae6ca7571b17b9e8e2a3f5fd8879f167d3f9c20fed72058c00801a4058446122ef04d8685a16804ff91c0073efa697ba4d6639fd789a3fef6a53fa5eb062c82c974bf8206dcd5617ed1851f537643ae16b58e368456636b56f4fcda9c81041def1cfc854203af0a5ad581ea126bee84a4452c58602a2eed0ee082ef19f4ac75f8a7ba52d927f35a3bdcfc64183238adf1174dddc29c49ae4e1e3388fb08d28d9cbb379dd6c83903f096f395ad3bef4fa245e6aa7af5533ab6bedff2775649e5cbe89513a18b00ba726954ef0ed94865a7d9aad1e845415cbc19e039b3f7a7e4fb8a0b47edffd9c6eb2834331f0b636fb5eca42925b5dab4ba08078a71a6e44896abd06276f6f2e41f122848b94e2a22baf2d262a06498e0084f700ed1d23faa7b2ba9f7a71673f4f8c2a9a00e611f53c2095c43d9e78c1a9dd73cdcf0b74aadb47127a990ce7dc335ee26f4c13fee45a1eb44b99b2325fdc30e33fd675fb991d487efd478ac79c8d7a57dd210c5cb9c6fcc7be1a7e4a86f2ddde1ec8e4ac687b61231646d9457b4bac5dd5eba2eecfadcc5852dd2f1f7b9a14a0d346c6effce2549c9fe552bf1f21b99e5a013d41b5693059fb905bc30eb40b075ea8da092fab2024e6c03c4630f53e31b8e78be253\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3fe3db1dfbb41a675e4768562c60dc2c2ed3c43022b54f4c9fa8e99de6a93ce650984c6c27b7bc5524c0b032c9115fae2cd23ac7b03e496c6f4785e7045b24d226b2ac535b7eb605cf8b56906ab95ab0e2e6cb3e2b3df71b714c66685a2433244ed153a8f526bad60a530c97ea9a238fca6fc5aac295a257b32fa6fdc68f9216d8118907f282df1fb2085644cd8c51d1be9f6dfa9f3eaaa57acc75d1bd29c3a59f167215c90603e790c5658b2d7887254ff80630122ab5578083556351edf1cffb7e42775a5ef79b2ff6cad7a1b8f32a7704bdaad7d63844b7cb7a295155fd8643044c3a83f867d427511e352079f578f00fa55575445e4af5c6e42500d0e4ffeb718e13076d9531195bcc36333960060830496256702c20df4759c74cba389ad73001f166a3b6c2d9e69d2b3bf86a5f929c79d17483164d76cb43f8723cda7648cd37e5d9d3aaa5cf9d077a6f3a1135e3e62feac9d0a0d8c15d6cade7ed6d2b568f89f74d6892d645c89bbf1429cce33e525c4d151a0a4e9192fb6737f151d5b460c4915ba57e3fec3b537aed97ca425f58a81beb3144b5898e27905ae56539c97b9994cffdb9e4bd91a600dd02c2ab3c9d8c668ee077a2f1f58c8ab7d0db0333190c59d37ad615dc3029faed93f31a4334a1ea29bf7b53f3d9415b8b760891a4a649a92781eb0568d5442b65e574193f040af56e5d33d2e6a47da09b7bb8c2\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 34e1788aadfc237f7896f530426725bf06a553fad96003cf7f6dc90dc6ecf745ea1c6ed5facf0fed6a0b88f9eaea6895b6bdd4a6e79f114a75a01be620eb5eb782431bb58feef95956cfea2b5fbfcbca452f65ea049663639e996e35ef37c27987015ed3af600598543f1faef183199ceaecf01ef86b026e974721a94a549aff6545f42197df772729797f4b6c6dc7f500106a793993216d5a356104a72c880f8e55343bc4593f13f988834c03c45101a4c1b27ef8ade0b56c4df4592654c32289a706d7afd7095e7f8a7846d2607d12a409c67fff8a3997e4d6963abb979d51dba6c5be5e58b105738744acbffb6ebf7428ae4599318948767b40c831ea810f5d11cd3de09a066093205e852ebc663b0b970497c64081d1ac6a418289f7ac2eb755cad07390c553bdd82ff5dacd2937bedec7d84f820e054a3ec16ba447a8c25325c0f1cf1b8df93443c56947f5c9c8ba2eed73d379583fd6c57ecf4f70e1b899cdbff6c6d80834e8e88440cc8bb2596cb26df266544326c5a15b4e6fcd6f3296994ff3887898d95a0d32f92d179c3d1dedac8e2eab8e097770a0b35e886c2fe65fbf9766e397b746a2819d1e1d4f8eec4f7354e504310241bf6becf0b84d21a2b41ac6fa5ada51cde86b8151c409d642bde0307fc732de16476995628f79bf02295929e220e2a16dc17c6b271be629cbdd43823e0ac5a25c4596400b0b2f2a\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a79151876e4e870920cd837bdf756398cf9929bc47dd5d082916cb622c05b52f2d02406960c2eccbd387b722303d5de1edb4f0a2ec2ac82fe2842dc6b321bb1ac772270997594460bb14d9ac27c3fa7c17ffc987035a30784e0817b4a90fdbcbecddfcbdda814b2296b2fa976199c2cfe8e2567a56b100aeadc571b8172f05eabfe8e10b302fb3dca6079c387914430e64f32c5267dd41782fda4e134e691eb4455656f740048640e3bb1226d47f04c973236a2c0a864cb1bf0dd354f47df45486c60ee8fd931328d8298aa77dc561c394dc337b418d4c41040fc3f15fe72d3b6ef9d3c582c939b6a33692b8032ef32e025683b015c276161e526c19c3e4223e71460918c03c31496e8eae68fa97850b051208e2a989a8e53beff882484992fe9b5c47a4f72849aa8d7896adf4592736e31940c714f8198101d123b72c2715a18e8d58d2c3d7d0d3a36c303f62ffa1abb5f8ca057aa5c4030af66b931fc6bf80389d84dfc1af44dd69e73bfe22f76ae6c0da7f936f06f652a9432697a94bdc2f869f8ce2338cc938cbc2c7809a4000666002bc351ffbce64a860d7e00bfb1083c47a2cde7ba67ba5829769b0bd63d0f2277f000faec93e225234e3cdf1a3c41c8a327f67d41eacea3a7ba3dac55072429f47226d95c235857739027b85a9462e7a9906d8908e5c7f25f0efe596ee4c05a22b611a33580054686f6dc17e930a41\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 18318a9ed077357126cea3c22f6dddd974", @@ -8802,9 +9112,9 @@ static const char *kData316[] = { "53c9c132c0ff27435a6baf40d77b7a52ad8e8ee7ed6f0d6524cdf060e3e843b538e586facd8a5f5f3dd97712ef426f229d803ac6d6ee6567ebd0ccc467b2301f567c92e1c4731a4134c18edc00c55779d7a34a6c155823320914157fe9d7226907a7750bb78f7b6b61b134c18133de7dd4357a7763f88fd3886d95d47449a6385243cde3bfb975738e96078cf8759d516b31268c0052045635ce50f8805ff0\n\n# tcId = 227\n# CVE-2017-11185: signature=n\nmsg = 313233343030\nresult = invalid\nsig = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3\n\n# tcId = 228\n# the signature is 2 bytes too long\nmsg = 313233343030\nresult = invalid\nsig = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30000\n\n# tcId = 229\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 230\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 231\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d2\n\n# tcId = 234\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d4\n\n# tcId = ", "235\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 9e591980e9ec3d62e2edc3163ac8206fc09fe026a2f7e622dc5a6d02976d30ecf141295335008d91a223ee98a143541494ccf7cb06a1aa61de524fb5bb4b379a67ed2ced447c7b395c57a625f835dec6844c3b67a85aaae10e273d3902f5f30539711f98d73f86beccd798b98541a84a03ccb3379e8eff88c19c88aac7b7ea99758194ffa6660153d4f22c1252dd1b7b574e19b3492f28cc097d3ee3f30f6b88576bc6299512f9f8749e0b297295bc275ca59f8056decfca9f3980e6f8d6e07b73e1a8ae8b3847556cd67ab77b96618979ed37744be2d6bc9f2b671615f1d4c4c1b419f05036148182ad4c6375f9e3c7cb37bb75d16c4486e97c0ac5685995cd8e5d76452934b26105be9074b2f8daeb1add13c9b127dca2858e5c80e686791a6f98cd98e540bdf27d21b2dc9fc84e09561df968d73c190b3081293d666be7d991761f4722450ac249a6eb4bcdf190c214630c85243a6c5970184e257c00c5a2a18bcd20195fd041887f001e06d4a6049e210cce62356f99853f3da2522d3d63739fbb2ff315e68ab4a05ba1e29e5b93808df51aeaced52539d7b956db2f229999ac09a6d4c2ef8714ef9d4783f538559f29af9d850bf71b001f231270874fb8dc60f1d1554f60fa69cd657112530e22563fcde26c3c86137e476a2fc1d8ba4a15dda42d4d8a20fbbad7586f472b716d6ea2ee30f1c111bdbb3db8e5e2d933a8\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 23e198d582d048874ce4e6e69f5a81234ca08be1fc9cf0f7be05454997fad87da8f05c2faf7285a7a9ca7aa50f772b8175479b7bec85919162b8a7eb7cd4c1b8f0aaa64a8f371e23ec2c3428d7d83411f24bbd4b80762a75fa0e5de468a71dbe9bac382b4072241e3c7085ed2b9e72ec3779c1f70bbd0f246834f3e81ebffee13312d133e1ddaeb58b84d1ac1b441f311ee1e2c9693e300862cdf5b4a5d820dfde870da22746be0b12dfb943780c0ba928c657c54bea0d84db37fe50f0965ceab905f2ec3ff177421b11c30e846ad93212485e7f6e52d7d51af1c96f31fef174ab38cfb1b1fb5961cfadac518a6a4991ff2d561a7d8dadc5ad430c94b40c04a297012f81e6e84ca02879fd82b73744c4372ec02f141ae6c4ce75595559f3f4cc9e4b7a7a6d93636487e34938082b3fd5f09366a062484d1820586a720a9618ec18d980c969a28d74c81fe4fe7bb61986769a89716c965a7f056aff60e9175527778210eae23e53e244b973b2452f40ab375222621a89e1f5f2abfe5039708f2a659553582f760f0d264f854840d069e8c4db0246738af1697b05980c1f53a1ba4eef8e08583781c13a93d03eb19db75e71bdd0602b91908a885b41f0b8d9588d6e05796c8a6f8d220922ef9bcdb026af9bb328ac7d96d4078205ba1abf00eea45b9c260e3b55da036864bf5bc0cc2d3944fdbcc7e64539a45238bb2061210514\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 4a80cafbe2a6095f8e8663f6289878514d7ee7daba0c1b0a077cefb333cacdf7c116ab89b0a01cab3161c68cac92a08aae7d117c9a3416d67365621da3380a85ff34a7a3b512846048acd1ec5957af942721c241a180a5dc5d8f6f6fe54d4d9fcb3709cde37081e2233b4fffa201d2029241932da170a5bad0d927a803a7f6289fc9f7b1d41cc1a6c94cbf588d5492b363920d0c98404f5da9eb9457648e2a4e9a034b2e2328c7f8c0e794771641a981df765887b5ba19b769156b375535911e1a2da68bb6a37eaa0ef8dded4ce3eac5caff4e8dc357703f0409d00baeedf3fbcbd6895dd3938e1f03dd9f131f9c979e22e4fcbea0c58721bc72d1f4976e93fc1a7649a23745c0310181031ac34b2200dfb4e8fe9bd4cdb52a23c31416745521aa4861eaea7dec4ea2c18ae9f75fa9d36c9b61bdc4185e434f8cb091cd731607b749a3990585cbbea2b1c0e0fff4f589a547d320bc7923b8a6b594c5866095df9c914cca80cd6c0e9aa3d691e2607f9de64322031ccfed04d9c805226cb476d3246d6caa1b04c63372a77668d5edf06365827b80391a6abd66010e8e1b873bd83db4dcc99444e109efa2414c6e5319f30a718eb43a1256b2142afa2382316e37aebde32da5bfec93e89d2adc39f62aca25a2289933a7cd8234d72a9b3c6a001d27560f8c8a2d9a233bac0b519b34f4f79288ea2cb08a87242953ac24ea144143\n\n# tcId = 239\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 727f107d20a02c2a2e530a78fdcc8ee88816badea1204d4c6a3b116776217f86f6fce6612cacb44aa288991146675cc0907094b5f90a06f0e940c886c07b5157605102c670aa9927fd0f2222b737890d1cb905f0fe4b47e67d254e6fef0f2004be64c94ba630839199b3656abe2c6eb59e84584bb652a181a64895d52d46aaebcb46bdd5eca4655eee4c340649a49a5eed60a2d3c95762bf825f622bc48d05fd6813393d39021c0db5b2104186f5cd00b203b43ca839c192755b40a8d946d1db6b0d2d7df6ec6929e5655396d935ce9d45bd7364b1e8e2bbc316918d33caf6a08ff1c8404fb66cc679f03f9ed6c5997f72e52da5df41af58893129bccf2fe3f2ab7173fa227f24c30438e064c0c1e99d3ab9bcc929391893187b9683cc1026546b6d21c02fed28fe1c43bf1eb679faa560375d445af434fdc2794ea44fea6445a8e89ed6c14379f756070227b20cc2c0add3a6709be39680eee5efac9697f45d2122a51ee64f9ae310c6a9b85d0b300528b858581d59e59c7755a0764c59cb81d355396042cf8150c91376660bc737d33144fa7b6d7231fbd43c16a79d06de0fd18a53415acb352065cf169e82abf94a3337e6b525ddc3d25eb6516208e9f832168faf3c3a224612c9791369ba2ab85a701e8332b738bf2942cd20975d2edac2ece8568d101ab8602d58fbdf652580b5008b499aa06062bb99697c41ce8e34bb\n\n", }; -static const size_t kLen317 = 275879; +static const size_t kLen322 = 275879; -static const char *kData317[] = { +static const char *kData322[] = { "# Imported from Wycheproof's rsa_signature_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 9f420516e9d063e5e2961accd80e3eb0198b10f4d64e749b5bd39a80f7356d2ca0fdbbfe5f5b2bba92da7616a83912b449e69f8ce6e35a27e9e553279d6a9317a1d07d897dddd9a8291321359c6a8a31a4ad7dbb54432bebaffbe8940e40cc875d941ecaa10196e1aa68b83e0db67e34f3937dc1dd11cc0e5b40cdb0b90ecdcad793d7279dc5b5f6cb356b805e6357baa1b3659dbbdfc9a0f042131760fe1b78202f289699e04b5c55f3ec26fa25460ce3de5aeff0b1f5c435e022e1168f9fb86147e7a8b0f11cd988d59c81c3fe74116b350e0396b1cdb2b4e0326b5c90dc384529c7f794c4c2f40958f97ea203d76a75076d5360228e7ddf166842b9165e8e\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = b4e0a273bbf6e942cb22ae5ccbfd9d843400ba451c5e086fce9b3b1f90bd892fadc54ac45b61f3b3b37aca67d835fda1b37d5bec427382be2348062716d4592c7eb5c9107cf391e1cec01c74d64dfa5cb7052f2f8e442a09d21c22ef5484cb045c25a05b3057b266335f619ea8dc43b72e9abf38c19b5d71c21b9bf2eb8b63f2fe0fa868f7dbc9deae9745adb1fc26027bf5e2770b2d250c7507faf2fa63fabc67eeada9f2ed8f724dbd99d43294e5ec11d1575101d32af1a308abb56f7f15f544204b533fbd96fd3fe9174db3bc2af67c35401cc4003bbce360a7898dc831011ff0582c0658663a8c2e7c0e7a0df7f3c8ef95175bc136c3b49eb7a65023b08f\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 9f74957ef2ec67062c5064143d096610d04af16f23189bf010f560d49bd793d619f70125dbef4edb4d4c923f8447e48a744428d8b463745d84a718d3c5592cdf6f611a735c7e04fe3f89920cc61e0113df20b93c719df7cf62013a2db3b497c033704352519dd51975eb156ee733d7bb342093bf494e6d7c8e92537adaf8b9170c0a2f0d76af847f716ecc87e8cd3545151387cafe062d5a2db83c5463b84d13b1ede8656efb3ae9509b449f4676084042b7c9091fb75476c8a866bbdbe57e125d7c64f2f7f1d4f732666bc7ac09c8e767d145f22243dd1f10943aa61b75e85256c52c522426c1dafde98af977c8538f7441ccdbb4eabff1990304c087070b12\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 257d5214d02f48bf63a6a1f2604824bef64108af97a6032d9eab48b7964642e104f13c462289fa889109274360dfedaec2ace0f5f190d2e9ba0d2d522dc763dd60fcee52d513bf9ca7c0b29de279ca8b401bc2016c10d837cca56498dd644e4d350315819767e2908c1c33b71acecd0143e2913f9eec1978a900a3326bd8bb7574521c39efa2e987327c9343b9da06b304d1e4688ef80e6c285a6dfb64b57ffbfc786f69a2a1c0948ee6781dae288089a5dcb7fcb1e53a74b828b34867b8d7fb5a0151e43076772bd53a537937f8ad6e44adcf96a18181b460b63e530edc56a773fa3adb252cfc8bb664ca560a054f374c2a03d7532ac8986377b76ad0a4f1d6\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 339b527aeec23ed9319d5c5ee671e8e92fde09932648734b1ded4eeae420e113a7ff1119686aef90c0bea5248ee1d50f5081515fba7a68a7ac8e2ba9828ebd58237d211c8212267f2a82363ffe790e3ad5282bef3842ead902cd98194d440cd1a53cc34121862034670dffd82aff9bda7f867a3893c2ba2d60cd3d5a3ae1c446c718e99bda195e8b19af734786c62908e1e18b155dbf791283c1bf3e02ce009e08415444d56f5defe78200557d513c8d93414228c4b746a10262cc4dc573da6801f624c5d99c200bd5731142e49d69f9cc9d6d914be18d09bcff4411f62bf028223ea559a41c71a970f5e0010ae487db94461a662d56e124d7b275e8266e55f0\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 6ea7297a28c575e4348878b928d6e938a2e3d77dc46a785611a64817fa0e9c8ec71728bc7e8f9eb3268aae0f3bfa23dcb73d503e0147432b4003400167ddf2f9fc8d09464e0b91a44de12c1efc8c38732e1ed87f91cebae036610c43a3b8bcd5bb4beac4f9fb5e39f193cfd4bc00d4c7a3a98d00c4efcd1bd64f260a2a957fc730df6dba68d622441901c51f5788d6c3636299ed3eaf0bc23000650ca97ed62d367a844f23649bdc23efd0349dc8d58cdbcf655aad1f9d3a21afa02930d68a2c2db68e364b0966b005c460b682717035fd43f0cb0e7008a3d841a90c0449de8d154082703313cd9abdcc836e6c1ae5b1887f75d2e4b6387e7971128790a62c00\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 5a7186589cda0f9fb081dad864032ffd26a775fb33c7dae0ac080aebdd4ab53bc3ed37cc09f0a1b1edee78f0790ce0d1b656e4a788172db08900bb1474159937ad29a7899d6bbc87c743945c798307e61141ac21542af06bc2f435a47b505b2aad2619800a97396392f141772cfa97d762c42ee8afdef27617dc8056fe75b23ede6c8f4e9abe31c8344edd2c73e5304621283021ae7003cd760c3e34caec5b4b5cc6d291cff1ea80e5b9b68c5b7b045c04714d3dc73e150eb770d3d3ed788a4ed039117881ed5cd03eb3db6e4084679e09078110630aa6895029e7a6dd19d5b77952bbb06de26c2179fb06c64d184caee0079287c7b18f5ae7843e3cd01eae28\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 54657374\nresult = acceptable\nsig = 38e80b028443d96685ed76d4574b36c43cf9722e5fbcf08bc974385454316dee326a308c935a6e612ed26ef4e470e5f3f19a223e2866a2f1c805f74c804e2184f5620c1e84f894b890be7d46420178a2a5ad97b4bd3d31db24828281587207041a96792d8ee57889c666719c769f759c2175361434b18f188de387c8c13f6fb3a7e96f1abbb6124e94fbb4c6bc1d88caf54136b8f01c9eedfd614bc35375f33277d2e71a4dc5f65254179bbe75634e9dfe05aff9e1f1d792f4e6caf88e4299ed90d212d3d7ac9bfc71a8ac85ffbf2f49f77b41d36a64bccd3fe8948054cbad480451b0ca5f7fe35b0f6c772d64b70346f469808dc0057ba1c25c6ae7ac8450e9\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 54657374\nresult = invalid\nsig = 33a82ebc17f79f56f79073afbe0ff3f984f868684c529ecfffb3bfffaf52a99bfc057b196c3faeae3cf722c386c224ac235f781d9025ff8c9dcf10c4cc7f93c1f1aa5e1db9b166a71ac7350134ae1a1e5537a67f846f8c6970c269c4b91bc59ec783b7710afbd763ae42b1125eb9d0fc28b4045071c72320448a474006eefb256bb403b30a67c253028a2a0af7e4e36e85aa70ea73541ee2694d2bbe1415b37d2210def5ec77ba23c6f5cbe31ee21e072b49313e6e18bc6d6f2ffbd6b28267a5cdda24a62edd2151bff87ea6858db5b863c13a8e2a6445d8d31fd6b3ce8fa5a31060f97545f1e04df6819648a1933b1bcfa2470bb14844963f53175f1b26b612\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 54657374\nresult = invalid\nsig = 37c62aaa10e8cb4bcce5fe466ac8688431e8ad2105dc12c6b7a0dfe8657ef3dbd027d04847c7d708c2099d7d38ca2b21aa5146ec0ffc7fd1a44c91c24689fa37475013e5b30c92c3565e3d53afa73fcf269dcf3b2bfc48a2ff026130bc008a724cd29ffc546d1aea5aeefc8cd13779b3b821d78bc7b7664fc7a89ce0273a8eed1e4a683c739005640c2edb756ea95f48d9c91d1ae9f57f24f6ce3193cedbcc52d05eb0dc8a9634a0ca8e12a446e9ac3378cfabc37b498aa4a1a9d1d3a6fb308411566f9c68063c0bc8e78621fed3a22073260aa87c76c5768c3db7f674f84d8826381fc3491f46d417a73ab88587d905d1c090e37913c99cfe29dae491841d31\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 54657374\nresult = invalid\nsig = ac3c440334308e0eef1b3c3afb42dd050c77f1bfe9f3c3c83d466a46bf708502f1866f423d52866147554a5c9f86f10c079d2bd47192dce0968e8aefd5f43a2892ad21b0bdb92be45bc380c11565ac7c01be00cb1e294048a1efb4cbb19be44fa4b542e0bbf9a47549d09e456f58ff377adafbd68ef8d86dc2d7d56c5d3be08ec6cf12c0d04bb7c64c13f08f75377ba896bece7f409d50809521b7f6496c992c90ce15a70a8f8096f8f2cbd3e575acb618c87f5632", "4885cea1a6ded33d2f09d684f8d5a98c78f94853d74b9e6ab503918fea323e5534d3e45d51b3097e082c5da614d03a5ac422e5dcc3b764bbc02aa633a517bbe391d2662d71ab851e4eb3f5\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 54657374\nresult = invalid\nsig = 65fa4957fe03c0eb8a6680ede12f009178d3ce357927c8586ae056f209e0ab0c110871fdf0b95a2ff684748beb4e5a6a73ca3c657b23bfa06d362a300f260f4d60d459a066c9f5311d634bf96ac7ee4c80ffec2fca27eca7dbd37025bae76122a1fed1914da70f2bfb6bf2e1bf3a624acf2a6377606fbf06044a21a39ccd55b2cc1f0ff184d9df95bd73942a190f30028e770139d38ef3156f64fc3eec68ed5170c41f09f110f5a0fd195cd42c4dd8e394f32d195c159c7c2b69943ea966039b20c7ca17cec610be60aaf7ecdf3511590a662b74a181fb89135604d84cf9c4d6cb6cc0b4c24f4b5e7e9e9cd969855cdb92e3b399f32cb31319ac81701d056e84\n\n# tcId = 13\n# wrong length of sequence\nmsg = 54657374\nresult = invalid\nsig = 36f62f546a36d5215548e6a770a14fc6edd4a9353ff8ed6231369cbb6598d25d86018b8cea9f1a87c150fda18c7e89b2c907f0ce485c8c321be467a97febc05dce335db88cabdb99ebc4c187a04fdc8e879487f03c2aeccb6ddaf006f0613d32b197c79b2a8cfae015909e02746fecb9ae9da3f07ee91ba70c0356984dd15d078cd0b93dd9e3c1cc03d6f255c1383e6e949e529ca4408f0f453e7e94c17e9b47f841f73dd62e5be047c44e1d9d7eee0d9f2a56bab13d4397494812793a49e8dc0d237242bf134aaead8f303226e532afd0c2e9748be08d7b7fd74f6f1806cfc4092af39d6eada4e0b6d7aa6f06592f6cd7dd26c1fcc84fdff1bf3086e8e2c81b\n\n# tcId = 14\n# wrong length of sequence\nmsg = 54657374\nresult = invalid\nsig = 6e18d86059eb2f05c0c1277abcd8d2380ea39ea0c4587ae140d2f709363eaa2b0b7f801a75fbe15aa329129c4abe43ec0fd84f552a3aff7e4de40a5943ef13cc3b2d02a1ad90309e8091d5c2c6fe3b6dc2472c94116cd9adf367e575720906a9fe41068a86c15214e3dae39ac41b84f5fb824dbf5c911c8c640254cd19910e15a6488c2a59179f271dbde468d540cb33dd5add9a864780e27a3e55c87402d9e2c0e12d70c9a41681bda6f9f337e7a26dd2ec06580e6fd9cd4db40a62002feaf5a4c93dfe05dc392b63809d4caebdcdac74a7a240260a6eb8db8dcbf25527d4297e4c6145decb0a888817b4f949fb66ee63e5cb2c2477a9373d1e30b4d71cd7c1\n\n# tcId = 15\n# wrong length of sequence\nmsg = 54657374\nresult = invalid\nsig = 61a6e5ea6b3c5241d75dbf0cb397da7cd9d5b2c23ffefa183ddd1d34b6cf116b127045f4681877fd58907c1209528a6b45266cfd5bf4e95361b9036c77fd6cc7891cb2417d081ed897ab97588dfcf975992ac9c0239aa9fc19dcf6d6d0f3e4bf72da5ab09cdd4b205b41a27e6b36dff608a638925d13e3ad7143b1ea9a2758c787a2f33790ad423749c1b79b3239d1f96fc4690b19a0b8edbeff446b148fbf39a890ed8e4a18ea09d5e50c25855e1a4a4c28c5437c906d1a9c371569936c858c29bd16e98af749edf2f048933d706068928e81ac7e219fc923f6dee8a411f40ede593468ada31e5c647d4a576ddb68a335bd50cdf7446dc722ee711b5c71ae93\n\n# tcId = 16\n# wrong length of sequence\nmsg = 54657374\nresult = invalid\nsig = 6494a47f97d18199ce0948b2ddf81e408e2d4acd58705059454b728b1be79842ca8b9e197a29347bfc02a6830aa7189ccd84469e696daed24fd3e45a403af6d38a2bf3e5e8005b9535a00a5b1520a9665676aa51a1b274a3c0270a20b86a5168e08000fc4cc60673604564f8620e9a2a2374ae148ec6fdbf7e880fb8be7bd85131a3b2cc08e85ff3270a4b433a6f58583a16e5b18eb2a093e6249e0e5e27c13e1cfc3fb8e078ede70034f52f4540f5fc69dc9124671200c5dc6961aee740d39bb5b6ea9f9325f2dc9eb85be46b998b29ed3dd9c7169d58e33efc212c9cc0b09e356e65463b9becc52e7654cb22a374832ad6d4e219e0fc5eddec8debf779031f\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 54657374\nresult = invalid\nsig = 55d1cee3129381d3c8526661a5f2c9b59bef9972a8d3ecbddd3cd859db06be0971a181d9deb7a7333b3f40eab2e93a67342da7880961fa3b931b3ee94cfa5eb7cc76ca8f6f013bda5b1dff7a7d8ec7afa76fc6acb7809b411e8d77e97fd11f4d13af1033a04b949ce35efdc52e125394759df4f7658fb4c807823f80c01b74c5424744a39193c901a8b7238f77c330f0c37877cdfb493228a600dbb5694ccaf9521b0e2921cf84fb0a778d6616ea76f79d89ddb344834bb34a033f2399289c35ba4b5b70b1aa6d504db3f15cd1be6215678f01f3df03a3a38cd2f6e9d18755c484b4b4ee514c976a7a3edb9d93f475c4fcfa6fec43e6f815095d4dda75a5ec81\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 54657374\nresult = invalid\nsig = 759135e8b8f94d853d92e75bed21033eaa80c88e1cfa202aeaeee96fc9dd8f5430da9baa436062c843e2a6d06801e4397c93a7643b52e4e33c298638f546be9f8b2961c0da08a172ab2a9185eec9b9b859a8b46cb240317e66469882269a53b34c9db60ba080e1831942db3ad65d3779c7205aaa366c00b6372496d71fd5cebc14b885303fb7c9e968f7d4f9f0511bac5f273608c8803db4ce582eddb0c672d579b4d1d67cb5aaa4fcaa14d744acb8124f3715bb82417ca020cb1b2a597f149364f859d5f1dc17dde4181628b96438df017e9b96b87f45d40383badf6b6a89620adf601c9c4fee15b1a868f8bf7ed6f59d1f9a960fcc1d961c8d010002e238f3\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 54657374\nresult = invalid\nsig = 8fcf0a72c6fd0f9b505effcd2c074051f1d25840f8803a68f1c149dc43af6b94a114efa7ce2b399a91aba823470b9f32a70fb6631dfef593dd312801062c7f64d7c7b8724bcd36b05df16838f9e2ef209c2dfa180717d9d1bb59c10d30bdf6a0c0041ff395d4eee8a1c60af17b8152906a58786ab39840909508f7a8f3a05096e92eb57b31c07e79500091f119698bf31bd14399e122e16c3f0083d0a9a6f6413a8427dd27dd5473a9060450349f51ac265030778dbb04d4a35aa98dd72ea38a548be905717b46a1e31cc0b2c9247b7a64d26c027b7d09fdc5f2c6f3f625ecc3a5e07e37d2623b099aa776c48c66d62764def44896651c6b0ab10f1db7105f8c\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 54657374\nresult = invalid\nsig = a34534b9e1b82be8c7a70d643c85664cb3919ced9c6b6cbf470f4aa8c62194d3e287077d3dc03e9e49d9069b69a4fc2caa5c9fc0ff1f08cb9b8370d044baa4be1b5918174997d74579c791a4c9d53f0348d33b6dd9151ec11823fa765a04cf03791f9d8f89048bd702f03247e3d9ea4e9882d9c768166e60b2db47a1bd76dd8cde45933dd1e4c3fd2bd46bbb8b2fbd6a2630f9db7e09dc342a3e279927a68f3da34192d0a283e2df7530b06a42ad1680b4a33c8b4bed2a8e799ff39ce4c5853a2f9d016610e58ce819771cd0ca5cc286134fafdcf36eb6c0f198e312e0e2cf722c47487a43cf4630c0703e65f5cc23972d5c16012b0e338aa6bbaa9a6110bb7b\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 54657374\nresult = invalid\nsig = 87bff62986cb2cd250de8d56fb4674c65cafd441da9dd4e42b1e7e14231519b63fa59608cd70d3ad761fdba810993ab3da3ba5d182dabefdce2c383e153df2b21c4cd4b58ea94e353d8c02bcfef4d565cda92975610207c9c30754cbe22bfe0f7cebaad0b6fe1d470d9119090adde8587d15cf27965f525d92ccb2c8778261f9d126ffdd8b90bd00acbe648979567a3ecb1fb5ceae06bbfb1df595e2155889ce62b3b47bce372a7527fd59ab5dca37378d0a90f4487690385acadea3766fa407d277ce4e76416daaeeba1591aa31dc601efd0d9e29b50ccc68d1511581b00f75de4c05d145b7ce0f74ccc509748fb1f8c636e1a56c9c412142d5c9a95efd0b8d\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 54657374\nresult = invalid\nsig = 2fadb8a429803ec2956ae6012289f15f7ed8d535c07412994204ade72d2e7a5548024390e1356d432b7e68c1a8738382f5aef3cc7739f926b44f9b9905222323a97fe7b303c130eb4147a5a4c69a031bd0c459779f7c3bc00bd5ad616421d14aa90ff3f5f4f700efd19826d89c80c6c4ab4ec81ec05498bb543be74acb3f61e6e1bef48e61646ab962da08502fb092961c5fb324026a52abfd1c47b9ea76187f5134916c5dbfc18668933c2a562a02c102b6efb9ca2df40869e920e84f8e73668a73c1cea83bc8600f7dbadeb5babfa74b99a3d02794b924b01dbf087da3d8d579514647633d8d6922a59a3f5625687a4b1c3b5cc67858e9b78ebbc7adc20aa7\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 54657374\nresult = invalid\nsig = 85ec33234ac05061985a24bd9e5e13de3fc8e8c246f75d85abf8021cd993f97c38ec6b73d713c6417effc7a751530feff849a5591ca0c4e6dc5bf6bf97c34bace7faa2e448bbc81e3d8551d4f82f7ed095ecdb19e91498e357909f090fd8c215f830b2741a4a4af518341c312bd6f7fef9c1b563cd4284f785430c538234f6bd3fceb2b49ab872cb481447b2d45a37d45dafad4d6de26246634b99b926e37832a8302d24b35e315f0b971cf52c60ac486460d7678152beff5369441c84ed54f16177f5ae560eacac13d7f94f14764ecd42adeaa0599a1a47e7f500e6b14e0a3b198aaa18fdc6d9141932bb28b20e71f69c173c2b841fa042a3fa0a388e164fd3\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 54657374\nresult = invalid\nsig = 4d28f0c7915b1eb63badbd931675ecf29f8d69b4b2e1b1fad776fa5adbccdc17bde98029059d46b197de49e061ec57cce2cb77a63deec3c75c2cc14fc9bb4a2ac29d5f4a05e6b4ff97ecbcc26a0dce39760423740141e675b52878a83aa044f68e84d9abd0ea6bfc5e6fc3acd971af258b7b9a01079010e68e70bd7bd31a9f9bdbb70598758ba274fb8feeb8ff46a4b2331a4da03330cf55910e6ce940c1a95b6bee9adec351354774139e3b213627a6d7e8381656362b4c6f83e97f93630939d22763f0850f1b4d38a8e3ed213d2febeeb125ec03854a4b276fb59087904ffabe83cfa66c1af413af6ecde5efcbc5241d5b958425b66ccd31500ceb9b80d793\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 54657374\nresult = invalid\nsig = 02d431509bae6e097fffb5e719b16a296b81fcfc9fc6a64b85b337c88049fed54971ef61e635388c2653554685e652059c769c5947af49858439d9c388a40703a016f73cf231726853f498f94a0a9a98e14e0cf8f0c8284b4d992f00c", "bb8dde41b07679c7bb7a2b4b7b307f2edda65fe3e002c7235eb85dd2ba41483b26131c997793ed64fe92a9fa9198eead1e8506385db0c3c4dfb93b87e2cfc09d9d3b00937cfc0a35bc211cc8efa4de83745c5eb0bb28ae52a22ae4ec8712be72bcf420476fdada50b618f0e9576e3e7ad8df5a0ebab78b1bfcdcef594cb7ff56a895b5ab5e0a30f82453880d394bad6ddb92231e44aa275f945ba6220d9f226da4d0aaf\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 54657374\nresult = invalid\nsig = 665e80a08c78f4c8a2768d1ba374bdd5e5101e61a594300a18a071d7c98c68cdb73acf32831ea077734e2486f1b13f76cd779a80fedbd76716fd022006a6faee19cb9789359e5b7013a59cd671a2a91c8328f4a1697e14a085c897eb45692d0bec074b400ded2820c6a5dbee2feac84cb6a37baece0ce763dfa7ca3b3fd4a82863a0eb35fcff709ca401c0bbb73f27f251b627cc442dd43eea634942bcd8bd72f1e8f192ae8dec1b7275c7739db254ced8b57332407f8a85285a190c94ea7f1c9318b7fcf67369ed23243c2454dd2ffa153ef12074a842878b38695336e8acfebf2d56d3560e43cdb039c27b207ae35f7a527b05baffc73fe76e57813b484f00\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 54657374\nresult = invalid\nsig = 58bb9a11f29ec8bc8ec7bba4c056e09087fcc881d8fe8e5dc58fa74d979676a20e00468e16238d8e2a53e40b4952ae47cc857807558b12224b3ab06ae355fbbd35180e555d7d468c23c6466ae74c8003d2b1591fbd529cc479e7469f5645787b8d7baaedb089efacf7f4395cc1382a3068770530ae97729089100960f22a13d73883a3a5ce6867c77a9e833d60f8f3c79fc2f36e63cbde5a02cdb7e226f387588456b9161814abb84c638aafb44f293e19f1bd5093e36d68386e365a5ab076b64275880823bb77502924d26bf443e94e45921866c68edaf5e66b24df38155b6faa25e531eb1af900780413cf5d5d903146a9cfe9350a3a1509beb679d7b75cd6\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 54657374\nresult = invalid\nsig = ab35fb3939affc42b2ac00248105dbd3da37b59db5d489d1ab1962418e6bec3b6fb4dbc03fb47c2a64cd09fee70acd723a50402b47cc2a3411c716a1f380138511d693751e37a0bf23751488293a68382a909202b7d18dc3721521f9c8fa3554dac15b20ce5ff9638edeba6ae89afaa100cfc92f51326b82e8fea27ca216b8b953afe00d0a02c0df5ec76ac494c1ed3398144a2654570d8daebfb27dc698bb5fc3a69e7b3759c1f1c7d5e807f509185a17b642f8b24934b5efef55287dff737fe633f19e0d1af46a0b4675b300583f96a3670b1e50f1c27441b5e601b8c4cee015854d680ab544900e65f4e205e2666ac0087586012d8ae52711a9cda02ee520\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 54657374\nresult = invalid\nsig = 3f9ed26d39ea6b13377ba941923d1c55544c4ef8c9187dc6430eb1e7c8b86292e528fbc74b7876016ff3cf8014da3d85f37e975810c0a7a8996c91533567e40b0c8464de887b18c9adf84571f7703147cee96c81e5eaa61cb3c40840d21cc0a280991173d5fb1cce01514003bec10e28420ba01819ff003d9ca8658f41a6e02c3295a53613adac27ddbe959d90faa58e33c3326c4b5b6a5a015955541531fc62ea216a4dc54878b65e6a12e0fd548046e103d8dd4516bcebf008ae4d5b971e9e2eecc8379356ebf76b69943b6f0d87ccdc19036007f7c79f363ace8e85bb97c40f7b59bbeacba0325decf642cc8cb8e51efb55a7296bb23bb12a3a1b334f5ca8\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 54657374\nresult = invalid\nsig = 748e7f86340f83dfe05a19e73449b7814398c6951a649029509c3072b6ce053e6176453d9046677e4996ea9a490fd602d8a735042b29d2a17f997817c6d9600bea2d5f7d7129a361bac6b7f76df520f4971790d250fbf89df5c22bb9e7a510bb6fcbd18251fcc5b77d61128f27adb3784c9c363eedd2c0acf9fbff65c9b4c67d631c98ec6ad6ce56389420a9f7e78973e3b55c90b3c3a6b37ffaa74ced4889cf306eb75e87d4b34519a349d1b7842f81eb588c3137e80895fbb98d67fda3621c7510815a5d5ae512e6566088dc333107a3a6f4309d6dda5417bfa795c72d4e70253775afeda3940d4bedb9a094502e1bd90084cae6f66c5f0369d3ca6a00d4f0\n\n# tcId = 31\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 672bf0ea5541b809287c9e2b6a584da21271f24d58eb68cf2dca42f604bf3d62fa9d5a52ea20e234002ceda5bd919ee8ff344c8f84e2cf4d8efc511560e03f930b6533cce2ebaf14203401317fa8b0fd17807389b3c5449ba24a8a1f16d143ad06c1dc62c5c40facabe64faf0a9816d51a831b648ae9c99b465535b342085ebb1aa44ad23c08bf4dd9e0838209d4805f48cb16d9bca302d161ec3f6e66ac734f001e232c3133558c4b89c00eba40bd53c37c5b03ff6fb3f323d0b79510592141946a7a7b16abfa78ab81d886d7c4d4090bdcb782efbf0c4a76b47abb18e1fc9259cee098929a1843a04ba52704bc9be25a2b96779a2b647d3ba7c11e2a8dfe48\n\n# tcId = 32\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 94818574cddac115d352d1740c4e5581ce36f1eac658a7cc9c0fa26a1d6f5f43279c9f2af313b3e0df805ac1e24976d58aee16e2a4616cbe421e46f5263ce46e301d8c295cb8a807a9c65610b176c61ae03229fc6601cfcffcf90d53edcfe869a1bc692dcdf88ce84f23b34733f9c8046d1cb7df77f1eb29cddcd4b420dcc8761169f3c7dab4f04e2eccbc046b0b26007406dec7505a38273e3bab522a81a054241afea6b6576cb1fdab2569cfa605c0cfcea0f4665f489273b92d2fcaae21be8f2d37dc40a38d847c56c3df5a2d5cab476753c91bb4e2dfbf2bd9ded2010e202976055c78de4fb2ec3f2a6a44d6816c7cbb829c83646156941418b4f060e196\n\n# tcId = 33\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 5c54c39c0a079e7a842c8b7f5c6bc63f4b90873e1379132fc1a52fb78fe6eb46aece7f5ebeeaf2df8862622442f0a470d2a8ae252c5c5d71702033c6b5e6e983cf44ac0e818d9453b86b91b5d99a1af0fa5ed8aff718d49864c093e4cd5be4db1fd44b6ed38e58df96e70cab32fae1889e091be25eb9f15c07ad2c304e0ccb881cdbb1e45ba993b95e169358a169c70e7d0915ba34955bf20fe1df2c7aae78fb78c893d184c85a56524643dfdfc41e62539da005751409a18fb4e59d2877c6cc45a4b832fbfa8ad2880775d9fe92b6516f8458bb52cd5820710bc16ca32cd7bb3998af0299778a2dab50d62d73415294a857d92bc5bad97248e70cdacd50dd5d\n\n# tcId = 34\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 9b91890eb53272fe7542c2067a4e9295b8c7b8ddf1c9ece6a75fcde79c9af2cbcbcef38d342032b85ccff9d6c82d3cfd68a7b27a38eaa45c78a17741c230391b3df0bd79dcc3447c8717b7207fa1fd04e917b5282e3a7dad48e8f2f6d1360f6c720f9eaf1d1d59f061d71daac1548538c0a06fa65b2ac87abc9e6fed3a6e15f48422bd9c4c681fa98a27c873d7efc5c100e708d58141b60e5a691747df4036162456bb11f92f2a391170233ca1c03e1786a32fe9ab8a94246dc643a884ad59edc40e2eb873713e84816e4a7f7857126da3f063cb9a3dda0547207c426f7cc985b5a3b6374cfff51d0d542ce9f82ffc07ad24c106363ffaed12c97526394a84ff\n\n# tcId = 35\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 0f07dc8786a46a7ae2fe2bd534715044f46ad17b836b00370996258aa90bddf563b5f3e7eb1500ed0604f9380491a5a6c6c004b560b0f280a2de30d191928bf5aa0378fd6beda830beb1db8b6b1c8846079b6013cf586e384be0e1163c62b526fbf8e26992afba6ef5e5f15755ec7b5287a149b19e577e79bff6526d72616e28d921661752e8cd0e4b950d7ee9f2414e45b3069a80a2e089e46d0b3da5cc0352c07305f8dfef2e1e928e85bb76c5a0f1516383143184f66f31c69adc0b8219f11809501927744fa37d1c8cc1e2a6712d54ed66dd177714b7cbd005e6a6f83db92041b595dd934b0b19fce5db369e504fb45c9df1e645e81bef62cd4da3497e9d\n\n# tcId = 36\n# removing sequence\nmsg = 54657374\nresult = invalid\nsig = 70f9515388762b320cf84e90eb571b27eee58a43ebd4773573bffbce8b162bf17e6c0317636b211b2bc56aafa99b968ec950466ae5cd7b10d94c993dabace14b94bed501dacc0b40feb8a89586eb1a792e92115ba5430ce1183ffc6f538ca657fed3ea684a1b9d998c0d9ff004e150a0a32d20455176e8db3d96b5063a60106a7bf6c9d0baa8879ddb77d9a3037400348ed1ee4b88f8256e8e632b15b0dc2611da3a9faab929a0bd4881418d7fd8fc7760c523e1ca4cd3f25c8243b8bcdcd51e96a3840de589744bb8d655851b9cdbd8b7f2d47a57144d9c2a7ea07d49c0d141cf918a4eb1507f8a7b11cbaa28c1a35745209a5fad2bd1e66f7929fe0223d505\n\n# tcId = 37\n# removing sequence\nmsg = 54657374\nresult = invalid\nsig = 8804d661bb17ffa73e371d134984ee95e426d7c12af978d9ad00ce746db4a3bad36546709f029d2c9ed13e6d27123cb7a1954f1f65f3fa46eeb56f449ba6b5e0736e5dd2586d642711d98aa19595d9da1c4ec20953009e2711738263170b487072566558de1301e0d0253f8fc14d12c8cfb4644b50aeb3d3a9fe1a26fd3bccd72986cbaff34fc4fa38ce52e65821f169d54b78037b8ddcba141ffc72797023c802564989a20b07b9a2ba6a256647e937b1c16df2081cb61bc6e6a2ec6ca9939db91ec2ae62c4b2d0d7f61a0bf0c693165175c91b100c195f3611c3ecb797c531439655ace9aae18e53a69e66698fb593f48084117ba288a134fd0389ee0f7544\n\n# tcId = 38\n# lonely sequence tag\nmsg = 54657374\nresult = invalid\nsig = 47004cf187bd2a34c6ed89f6f8eb9f67a401a40d66a95c8cddd98fa0faa829bbfc9e62a854788e4d23015a68f098a77cc5daac7e23c6ba56167518753187a8ead68edc686c393940f77255fc8092c4c65a01aa6901c0af96830c05747791e511c8c01da4358feb38bf5507543184fe887c5821c4af048c5082bed56c7934985d86de2402b37e16a6f3e23d5a1e838992bef2a46d4fa87971f0cb01a470e185654a6b174d9bba81117e8df24b19a7be0d1f8e3906d3029b5ad4f0d8c152375dfc4fa490f9fa3a5b52fb929a7d41a84d61bbf60d80162b16334b4958ec879bbc0098962d5d3220169c8ccb338d31c664c23144cc85bc371b2d9da61a69f0b4b658\n\n# tcId = 39\n# lonely sequence tag\nmsg = 54657374\nresult = invalid\nsig = 24bc364503e9aa28177f9fe7ebda884cbe94", @@ -8840,9 +9150,9 @@ static const char *kData317[] = { "1ed9064323c12b6ebde15ae8c05a0e5205c91f57f5753815ff39c918\nflags = SmallModulus,SmallPublicKey\n\n[e = 03]\n[keyAsn = 30820108028201010090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d0030820108028201010090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1020103]\n[keysize = 2048]\n[n = 0090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1]\n[sha = SHA-256]\n\n# tcId = 373\n# short signature\nmsg = 33363730\nresult = acceptable\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000989e7ff72e67e680bd21d5f966e4ad8a48c3592dbacc4a2f035b4ef4d17a2f25f8a9fef7e78eb99d76d68629ed02d67c43c4b7ec8c3badc32e3d0a524c326537739b0fde156723b27c23ae2b09895e470c64d700f5c\nflags = SmallPublicKey\n\n[e = 03]\n[keyAsn = 308201080282010100f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d00308201080282010100f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f020103]\n[keysize = 2048]\n[n = 00f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f]\n[sha = SHA-512]\n\n# tcId = 374\n# short signature\nmsg = 38343432\nresult = acceptable\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e7a1269086f0bbc0778ded8d7108ff4edcc2313425088117b2d5c53e9d9971950a5fe8b2b67d2bcd1be74f6b557a3f90650a96d7e4dbd63c05b94f73337eea682417c058d66ce523e4461065ac8ba990c4ecd04932\nflags = SmallPublicKey\n\n[e = 03]\n[keyAsn = 308201880282018100ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83020103]\n[keyDer = 308201a0300d06092a864886f70d01010105000382018d00308201880282018100ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83020103]\n[keysize = 3072]\n[n = 00ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83]\n[sha = SHA-256]\n\n# tcId = 375\n# short signature\nmsg = 34333630\nresult = acceptable\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011a21abeac8409398319e65c8656f8f72e179dd1e99358c7531fddc037e47c1e688cd70eafd6eea01c823516bc79f89d7e52ee1eb4ffdeaad1d550dc0a47185bc9c42e47fce5503c3370a60510f834b4691152ef668deca633cf3873ce6613951784aa7dafde118f37f1cdf1a687ac236d5c956bced564b73cf202e3bace59667\nflags = SmallPublicKey\n\n[e = 03]\n[keyAsn = 3082018802820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81", "ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103]\n[keyDer = 308201a0300d06092a864886f70d01010105000382018d003082018802820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103]\n[keysize = 3072]\n[n = 008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01]\n[sha = SHA-512]\n\n# tcId = 376\n# short signature\nmsg = 36313237\nresult = acceptable\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001bdd0c9e451b5b3e5513a94492dbee1ada9ea87e65a8cd95cceb4d304294ce34bf09a212f14908f5b865c7a34a72e68e389794a2d1c5767ba17829e2044108ac7842b6bfe0a5663b433d656f4e38522c5a5a23c460b898833828d257350e5814291b54cf13089080f84998edcacf0fe5fca0c1f8b176b172c5f9989491a039bef\nflags = SmallPublicKey\n\n[e = 03]\n[keyAsn = 30820108028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d0030820108028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d020103]\n[keysize = 2048]\n[n = 0092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d]\n[sha = SHA-256]\n\n# tcId = 377\n# signature is close to n\nmsg = 32353934\nresult = acceptable\nsig = 92bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240b8bf4bb1a6d0616fd5be2f081dc9ef741a9a4ae7274418b791432de470c4556463108388e8e8ed5dcebf3558e4650c2ac97c86fa682176f09b5dd8cfbf15d19c3fe4f961f4607c12cb3dfad9b6a0e59c92faa1fc8622\nflags = SmallPublicKey\n\n", }; -static const size_t kLen318 = 157296; +static const size_t kLen323 = 157296; -static const char *kData318[] = { +static const char *kData323[] = { "# Imported from Wycheproof's x25519_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: XDH\n# Generator version: 0.8r12\n\n[curve = curve25519]\n\n# tcId = 1\n# normal case\nprivate = c8a9d5a91091ad851c668b0736c1c9a02936c0d3ad62670858088047ba057475\npublic = 504a36999f489cd2fdbc08baff3d88fa00569ba986cba22548ffde80f9806829\nresult = valid\nshared = 436a2c040cf45fea9b29a0cb81b1f41458f863d0d61b453d0a982720d6d61320\n\n# tcId = 2\n# public key on twist\nprivate = d85d8c061a50804ac488ad774ac716c3f5ba714b2712e048491379a500211958\npublic = 63aa40c6e38346c5caf23a6df0a5e6c80889a08647e551b3563449befcfc9733\nresult = acceptable\nshared = 279df67a7c4611db4708a0e8282b195e5ac0ed6f4b2f292c6fbd0acac30d1332\nflags = Twist\n\n# tcId = 3\n# public key on twist\nprivate = c8b45bfd32e55325d9fd648cb302848039000b390e44d521e58aab3b29a6964b\npublic = 0f83c36fded9d32fadf4efa3ae93a90bb5cfa66893bc412c43fa7287dbb99779\nresult = acceptable\nshared = 4bc7e01e7d83d6cf67632bf90033487a5fc29eba5328890ea7b1026d23b9a45f\nflags = Twist\n\n# tcId = 4\n# public key on twist\nprivate = f876e34bcbe1f47fbc0fddfd7c1e1aa53d57bfe0f66d243067b424bb6210be51\npublic = 0b8211a2b6049097f6871c6c052d3c5fc1ba17da9e32ae458403b05bb283092a\nresult = acceptable\nshared = 119d37ed4b109cbd6418b1f28dea83c836c844715cdf98a3a8c362191debd514\nflags = Twist\n\n# tcId = 5\n# public key on twist\nprivate = 006ac1f3a653a4cdb1d37bba94738f8b957a57beb24d646e994dc29a276aad45\npublic = 343ac20a3b9c6a27b1008176509ad30735856ec1c8d8fcae13912d08d152f46c\nresult = acceptable\nshared = cc4873aed3fcee4b3aaea7f0d20716b4276359081f634b7bea4b705bfc8a4d3e\nflags = Twist\n\n# tcId = 6\n# public key on twist\nprivate = 08da77b26d06dff9d9f7fd4c5b3769f8cdd5b30516a5ab806be324ff3eb69e60\npublic = fa695fc7be8d1be5bf704898f388c452bafdd3b8eae805f8681a8d15c2d4e142\nresult = acceptable\nshared = b6f8e2fcb1affc79e2ff798319b2701139b95ad6dd07f05cbac78bd83edfd92e\nflags = Twist\n\n# tcId = 7\n# public key on twist\nprivate = d03edde9f3e7b799045f9ac3793d4a9277dadeadc41bec0290f81f744f73775f\npublic = 0200000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = b87a1722cc6c1e2feecb54e97abd5a22acc27616f78f6e315fd2b73d9f221e57\nflags = Twist\n\n# tcId = 8\n# public key on twist\nprivate = e09d57a914e3c29036fd9a442ba526b5cdcdf28216153e636c10677acab6bd6a\npublic = 0300000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = a29d8dad28d590cd3017aa97a4761f851bf1d3672b042a4256a45881e2ad9035\nflags = Twist\n\n# tcId = 9\n# public key on twist\nprivate = e0ed78e6ee02f08bec1c15d66fbbe5b83ffc37ea14e1512cc1bd4b2ea6d8066f\npublic = ff00000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = e703bc8aa94b7d87ba34e2678353d12cdaaa1a97b5ca3e1b8c060c4636087f07\nflags = Twist\n\n# tcId = 10\n# public key on twist\nprivate = a8a1a2ec9fa9915ae7aace6a37c68591d39e15995c4ef5ebd3561c02f72dda41\npublic = ffff000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = ff5cf041e924dbe1a64ac9bdba96bdcdfaf7d59d91c7e33e76ed0e4c8c836446\nflags = Twist\n\n# tcId = 11\n# public key on twist\nprivate = a8c9df5820eb399d471dfa3215d96055b3c7d0f4ea49f8ab028d6a6e3194517b\npublic = 0000010000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = a92a96fa029960f9530e6fe37e2429cd113be4d8f3f4431f8546e6c76351475d\nflags = Twist\n\n# tcId = 12\n# public key on twist\nprivate = d0d31c491cbd39271859b4a63a316826507b1db8c701709fd0ffe3eb21c4467c\npublic = ffffff0f00000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 9f8954868158ec62b6b586b8cae1d67d1b9f4c03d5b3ca0393cee71accc9ab65\nflags = Twist\n\n# tcId = 13\n# public key on twist\nprivate = d053e7bf1902619cd61c9c739e09d54c4147f46d190720966f7de1d9cffbbd4e\npublic = ffffffff00000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 6cbf1dc9af97bc148513a18be4a257de1a3b065584df94e8b43c1ab89720b110\nflags = Twist\n\n# tcId = 14\n# public key on twist\nprivate = a021d75009a4596e5a33f12921c10f3670933bc80dde3bba22881b6120582144\npublic = 0000000000001000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 38284b7086095a9406028c1f800c071ea106039ad7a1d7f82fe00906fd90594b\nflags = Twist\n\n# tcId = 15\n# public key on twist\nprivate = a89c6687f99bd569a01fd8bd438236160d15ce2c57c1d71ebaa3f2da88233863\npublic = 0000000000000001000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = c721041df0244071794a8db06b9f7eaeec690c257265343666f4416f4166840f\nflags = Twist\n\n# tcId = 16\n# public key on twist\nprivate = 68964bca51465bf0f5ba524b1482ceff0e960a1ed9f48dcc30f1608d0e501a50\npublic = ffffffffffffffff000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 25ff9a6631b143dbdbdc207b38e38f832ae079a52a618c534322e77345fd9049\nflags = Twist\n\n# tcId = 17\n# public key on twist\nprivate = a8e56bb13a9f2b33b8e6750b4a6e6621dc26ae8c5c624a0992c8f0d5b910f170\npublic = 0000000000000000000000000000000000000000000000000100000000000000\nresult = acceptable\nshared = f294e7922c6cea587aefe72911630d50f2456a2ba7f21207d57f1ecce04f6213\nflags = Twist\n\n# tcId = 18\n# public key on twist\nprivate = e045f55c159451e97814d747050fd7769bd478434a01876a56e553f66384a74c\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000\nresult = acceptable\nshared = ff4715bd8cf847b77c244ce2d9b008b19efaa8e845feb85ce4889b5b2c6a4b4d\nflags = Twist\n\n# tcId = 19\n# public key on twist\nprivate = 105d621e1ef339c3d99245cfb77cd3a5bd0c4427a0e4d8752c3b51f045889b4f\npublic = ffffff030000f8ffff1f0000c0ffffff000000feffff070000f0ffff3f000000\nresult = acceptable\nshared = 61eace52da5f5ecefafa4f199b077ff64f2e3d2a6ece6f8ec0497826b212ef5f\nflags = Twist\n\n# tcId = 20\n# public key on twist\nprivate = d88a441e706f606ae7f630f8b21f3c2554739e3e549f804118c03771f608017b\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000\nresult = acceptable\nshared = ff1b509a0a1a54726086f1e1c0acf040ab463a2a542e5d54e92c6df8126cf636\nflags = Twist\n\n# tcId = 21\n# public key on twist\nprivate = 80bbad168222276200aafd36f7f25fdc025632d8bf9f6354bb762e06fb63e250\npublic = 0000000000000000000000000000000000000000000000000000000000800000\nresult = acceptable\nshared = f134e6267bf93903085117b99932cc0c7ba26f25fca12102a26d7533d9c4272a\nflags = Twist\n\n# tcId = 22\n# public key on twist\nprivate = 68e134092e94e622c8a0cd18aff55be23dabd994ebdee982d90601f6f0f4b369\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1f\nresult = acceptable\nshared = 74bfc15e5597e9f5193f941e10a5c008fc89f051392723886a4a8fe5093a7354\nflags = Twist\n\n# tcId = 23\n# public key on twist\nprivate = e8e43fc1ebac0bbc9b99c8035ee1ac59b90f19a16c42c0b90f96adfcc5fdee78\npublic = 0000000000000000000000000000000000000000000000000000000000000020\nresult = acceptable\nshared = 0d41a5b3af770bf2fcd34ff7972243a0e2cf4d34f2046a144581ae1ec68df03b\nflags = Twist\n\n# tcId = 24\n# public key on twist\nprivate = 18bffb16f92680a9e267473e43c464476d5372ddd1f664f3d0678efe7c98bc79\npublic = 000000fcffff070000e0ffff3f000000ffffff010000f8ffff0f0000c0ffff7f\nresult = acceptable\nshared = 5894e0963583ae14a0b80420894167f4b759c8d2eb9b69cb675543f66510f646\nflags = Twist\n\n# tcId = 25\n# public key on twist\nprivate = 300305eb002bf86c71fe9c0b311993727b9dc618d0ce7251d0dfd8552d17905d\npublic = ffffffffffffff00000000000000ffffffffffffff00000000000000ffffff7f\nresult = acceptable\nshared = f8624d6e35e6c548ac47832f2e5d151a8e53b9290363b28d2ab8d84ab7cb6a72\nflags = Twist\n\n# tcId = 26\n# public key on twist\nprivate = 80da9f02842247d4ade5ddbac51dbce55ea7dca2844e7f97ab8987ce7fd8bc71\npublic = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffff7f\nresult = acceptable\nshared = bfe183ba3d4157a7b53ef178613db619e27800f85359c0b39a9fd6e32152c208\nflags = Twist\n\n# tcId = 27\n# public key on twist\nprivate = 806e7f26ca3246de8182946cbed09f52b95da626c823c7b50450001a47b7b252\npublic = edfffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = bca4a0724f5c1feb184078448c898c8620e7caf81f64cca746f557dff2498859\nflags = Twist\n\n# tcId = 28\n# public key on twist\nprivate = 58354fd64bc022cba3a71b2ae64281e4ea7bf6d65fdbaead1440eeb18604fe62\npublic = edfffffffffffffefffffffffffffffffffff", "fffffffffffffffffffffffff7f\nresult = acceptable\nshared = b3418a52464c15ab0cacbbd43887a1199206d59229ced49202300638d7a40f04\nflags = Twist\n\n# tcId = 29\n# public key on twist\nprivate = f0019cf05159794cc8052b00c2e75b7f46fb6693c4b38c02b12a4fe272e8556a\npublic = edffffffffffefffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = fcde6e0a3d5fd5b63f10c2d3aad4efa05196f26bc0cb26fd6d9d3bd015eaa74f\nflags = Twist\n\n# tcId = 30\n# public key on twist\nprivate = d0fca64cc5f3a0c8e75c824e8b09d1615aa79aeba139bb7302e2bb2fcbe54b40\npublic = edfeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 7d62f189444c6231a48afab10a0af2eee4a52e431ea05ff781d616af2114672f\nflags = Twist\n\n# tcId = 31\n# public key on twist\nprivate = d02456e456911d3c6cd054933199807732dfdc958642ad1aebe900c793bef24a\npublic = eaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 07ba5fcbda21a9a17845c401492b10e6de0a168d5c94b606694c11bac39bea41\nflags = Twist\n\n# tcId = 32\n# public key = 0\nprivate = 88227494038f2bb811d47805bcdf04a2ac585ada7f2f23389bfd4658f9ddd45e\npublic = 0000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = SmallPublicKey,LowOrderPublic,ZeroSharedSecret\n\n# tcId = 33\n# public key = 1\nprivate = 48232e8972b61c7e61930eb9450b5070eae1c670475685541f0476217e48184f\npublic = 0100000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = SmallPublicKey,LowOrderPublic,ZeroSharedSecret\n\n# tcId = 34\n# edge case public key\nprivate = a8386f7f16c50731d64f82e6a170b142a4e34f31fd7768fcb8902925e7d1e25a\npublic = 0400000000000000000000000000000000000000000000000000000000000000\nresult = valid\nshared = 34b7e4fa53264420d9f943d15513902342b386b172a0b0b7c8b8f2dd3d669f59\n\n# tcId = 35\n# edge case public key\nprivate = d05abd08bf5e62538cb9a5ed105dbedd6de38d07940085072b4311c2678ed77d\npublic = 0001000000000000000000000000000000000000000000000000000000000000\nresult = valid\nshared = 3aa227a30781ed746bd4b3365e5f61461b844d09410c70570abd0d75574dfc77\n\n# tcId = 36\n# edge case public key\nprivate = f0b8b0998c8394364d7dcb25a3885e571374f91615275440db0645ee7c0a6f6b\npublic = 0000001000000000000000000000000000000000000000000000000000000000\nresult = valid\nshared = 97755e7e775789184e176847ffbc2f8ef98799d46a709c6a1c0ffd29081d7039\n\n# tcId = 37\n# edge case public key\nprivate = d00c35dc17460f360bfae7b94647bc4e9a7ad9ce82abeadb50a2f1a0736e2175\npublic = 0000000001000000000000000000000000000000000000000000000000000000\nresult = valid\nshared = c212bfceb91f8588d46cd94684c2c9ee0734087796dc0a9f3404ff534012123d\n\n# tcId = 38\n# edge case public key\nprivate = 385fc8058900a85021dd92425d2fb39a62d4e23aef1d5104c4c2d88712d39e4d\npublic = ffffffffffff0f00000000000000000000000000000000000000000000000000\nresult = valid\nshared = 388faffb4a85d06702ba3e479c6b216a8f33efce0542979bf129d860f93b9f02\n\n# tcId = 39\n# edge case public key\nprivate = e0614b0c408af24d9d24c0a72f9137fbd6b16f02ccc94797ea3971ab16073a7f\npublic = ffffffffffffff00000000000000000000000000000000000000000000000000\nresult = valid\nshared = 877fec0669d8c1a5c866641420eea9f6bd1dfd38d36a5d55a8c0ab2bf3105c68\n\n# tcId = 40\n# edge case public key\nprivate = f004b8fd05d9fffd853cdc6d2266389b737e8dfc296ad00b5a69b2a9dcf72956\npublic = 0000000000000000010000000000000000000000000000000000000000000000\nresult = valid\nshared = 180373ea0f23ea73447e5a90398a97d490b541c69320719d7dd733fb80d5480f\n\n# tcId = 41\n# edge case public key\nprivate = e80bf0e609bf3b035b552f9db7e9ecbc44a04b7910b1493661a524f46c3c2277\npublic = ffffffffffffffffffffffffffff000000000000000000000000000000000000\nresult = valid\nshared = 208142350af938aba52a156dce19d3c27ab1628729683cf4ef2667c3dc60cf38\n\n# tcId = 42\n# edge case public key\nprivate = 48890e95d1b03e603bcb51fdf6f296f1f1d10f5df10e00b8a25c9809f9aa1a54\npublic = 0000000000000000000000000000010000000000000000000000000000000000\nresult = valid\nshared = 1c3263890f7a081cefe50cb92abd496582d90dcc2b9cb858bd286854aa6b0a7e\n\n# tcId = 43\n# edge case public key\nprivate = a806f1e39b742615a7dde3b29415ed827c68f07d4a47a4d9595c40c7fccb9263\npublic = ffffffffffffffffffffffffffffffff00000000000000000000000000000000\nresult = valid\nshared = 56128e78d7c66f48e863e7e6f2caa9c0988fd439deac11d4aac9664083087f7a\n\n# tcId = 44\n# edge case public key\nprivate = 9899d5e265e1fc7c32345227d6699a6d6b5517cf33b43ab156ee20df4878794e\npublic = 0000000000000000000000000000000001000000000000000000000000000000\nresult = valid\nshared = 30eca56f1f1c2e8ff780134e0e9382c5927d305d86b53477e9aeca79fc9ced05\n\n# tcId = 45\n# edge case public key\nprivate = d842316e5476aeaee838204258a06f15de011ba40b9962705e7f6e889fe71f40\npublic = ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000\nresult = valid\nshared = cb21b7aa3f992ecfc92954849154b3af6b96a01f17bf21c612da748db38eb364\n\n# tcId = 46\n# edge case public key\nprivate = a0933ee30512b25ee4e900aaa07f73e507a8ec53b53a44626e0f589af4e0356c\npublic = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\nresult = valid\nshared = c5caf8cabc36f086deaf1ab226434098c222abdf8acd3ce75c75e9debb271524\n\n# tcId = 47\n# edge case public key\nprivate = 38d6403e1377734cdce98285e820f256ad6b769d6b5612bcf42cf2b97945c073\npublic = 0000000000000000000000000000000000000000000000000000000001000000\nresult = valid\nshared = 4d46052c7eabba215df8d91327e0c4610421d2d9129b1486d914c766cf104c27\n\n# tcId = 48\n# edge case public key\nprivate = 182191b7052e9cd630ef08007fc6b43bc7652913be6774e2fd271b71b962a641\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03\nresult = valid\nshared = a0e0315175788362d4ebe05e6ac76d52d40187bd687492af05abc7ba7c70197d\n\n# tcId = 49\n# edge case public key\nprivate = 106221fe5694a710d6e147696c5d5b93d6887d584f24f228182ebe1b1d2db85d\npublic = ffffff0f000000ffffff0f000000ffffff0f000000ffffff0f000000ffffff0f\nresult = valid\nshared = 5e64924b91873b499a5402fa64337c65d4b2ed54beeb3fa5d7347809e43aef1c\n\n# tcId = 50\n# edge case public key\nprivate = d035de9456080d85a912083b2e3c7ddd7971f786f25a96c5e782cf6f4376e362\npublic = 000000fcffff030000e0ffff1f000000ffffff000000f8ffff070000c0ffff3f\nresult = valid\nshared = c052466f9712d9ec4ef40f276bb7e6441c5434a83efd8e41d20ce83f2dbf5952\n\n# tcId = 51\n# edge case public key\nprivate = a8f37318a4c760f3cb2d894822918735683cb1edacf3e666e15694154978fd6d\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\nresult = valid\nshared = d151b97cba9c25d48e6d576338b97d53dd8b25e84f65f7a2091a17016317c553\n\n# tcId = 52\n# edge case public key\nprivate = 20d4d624cf732f826f09e8088017742f13f2da98f4dcf4b40519adb790cebf64\npublic = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f\nresult = valid\nshared = 5716296baf2b1a6b9cd15b23ba86829743d60b0396569be1d5b40014c06b477d\n\n# tcId = 53\n# edge case public key\nprivate = d806a735d138efb3b404683c9d84485ab4af540d0af253b574323d8913003c66\npublic = edffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fff7f\nresult = valid\nshared = ddbd56d0454b794c1d1d4923f023a51f6f34ef3f4868e3d6659307c683c74126\n\n# tcId = 54\n# edge case public key\nprivate = 184198c6228177f3ef41dc9a341258f8181ae365fe9ec98d93639b0bbee1467d\npublic = fffffffffeffff7ffffffffffeffff7ffffffffffeffff7ffffffffffeffff7f\nresult = valid\nshared = 8039eebed1a4f3b811ea92102a6267d4da412370f3f0d6b70f1faaa2e8d5236d\n\n# tcId = 55\n# edge case public key\nprivate = f0a46a7f4b989fe515edc441109346ba746ec1516896ec5b7e4f4d903064b463\npublic = edfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff7f\nresult = valid\nshared = b69524e3955da23df6ad1a7cd38540047f50860f1c8fded9b1fdfcc9e812a035\n\n# tcId = 56\n# edge case public key\nprivate = 881874fda3a99c0f0216e1172fbd07ab1c7df78602cc6b11264e57aab5f23a49\npublic = edfffffffffffffffffffffffffffffffffffffffffffffffeffffffffffff7f\nresult = valid\nshared = e417bb8854f3b4f70ecea557454c5c4e5f3804ae537960a8097b9f338410d757\n\n# tcId = 57\n# edge case public key\nprivate = b8d0f1ae05a5072831443150e202ac6db00322cdf341f467e9f296588b04db72\npublic = edfffffffffffffffffffffffffffffffeffffffffffffffffffffffffffff7f\nresult = valid\nshared = afca72bb8ef72", "7b60c530c937a2f7d06bb39c39b903a7f4435b3f5d8fc1ca810\n\n# tcId = 58\n# edge case public key\nprivate = c8619ba988859db7d6f20fbf3ffb8b113418cc278065b4e8bb6d4e5b3e7cb569\npublic = edfffffffffffffffeffffffffffffffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = 7e41c2886fed4af04c1641a59af93802f25af0f9cba7a29ae72e2a92f35a1e5a\n\n# tcId = 59\n# edge case public key\nprivate = f8d4ca1f37a30ec9acd6dbe5a6e150e5bc447d22b355d80ba002c5b05c26935d\npublic = edfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = dd3abd4746bf4f2a0d93c02a7d19f76d921c090d07e6ea5abae7f28848355947\n\n# tcId = 60\n# edge case public key\nprivate = 88037ac8e33c72c2c51037c7c8c5288bba9265c82fd8c31796dd7ea5df9aaa4a\npublic = edffffefffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = 8c27b3bff8d3c1f6daf2d3b7b3479cf9ad2056e2002be247992a3b29de13a625\n\n# tcId = 61\n# edge case public key\nprivate = 5034ee7bf83a13d9167df86b0640294f3620f4f4d9030e5e293f9190824ae562\npublic = edfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = 8e1d2207b47432f881677448b9d426a30de1a1f3fd38cad6f4b23dbdfe8a2901\n\n# tcId = 62\n# edge case public key\nprivate = 40bd4e1caf39d9def7663823502dad3e7d30eb6eb01e9b89516d4f2f45b7cd7f\npublic = ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = 2cf6974b0c070e3707bf92e721d3ea9de3db6f61ed810e0a23d72d433365f631\n\n# tcId = 63\n# public key with low order\nprivate = e0f978dfcd3a8f1a5093418de54136a584c20b7b349afdf6c0520886f95b1272\npublic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 64\n# public key with low order\nprivate = 387355d995616090503aafad49da01fb3dc3eda962704eaee6b86f9e20c92579\npublic = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 65\n# public key with low order\nprivate = c8fe0df92ae68a03023fc0c9adb9557d31be7feed0d3ab36c558143daf4dbb40\npublic = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,Twist,ZeroSharedSecret\n\n# tcId = 66\n# public key with low order\nprivate = c8d74acde5934e64b9895d5ff7afbffd7f704f7dfccff7ac28fa62a1e6410347\npublic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b880\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,NonCanonicalPublic,Twist,ZeroSharedSecret\n\n# tcId = 67\n# public key with low order\nprivate = b85649d5120e01e8ccaf7b2fb8d81b62e8ad6f3d5c0553fdde1906cb9d79c050\npublic = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f11d7\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,NonCanonicalPublic,Twist,ZeroSharedSecret\n\n# tcId = 68\n# public key with low order\nprivate = 2064b2f4c9dc97ec7cf58932fdfa3265ba6ea4d11f0259b8efc8afb35db88c48\npublic = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,NonCanonicalPublic,ZeroSharedSecret\n\n# tcId = 69\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = 0000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 70\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = 0100000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 71\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 72\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 73\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 74\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 75\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 76\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = 0000000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 77\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = 0100000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 78\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 79\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f11d7\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 80\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b880\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 81\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 82\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 83\n# public key =\n# 57896044618658097711785492504343953926634992332820282019728792003956564819949\nprivate = 40ff586e73d61f0960dc2d763ac19e98225f1194f6fe43d5dd97ad55b3d35961\npublic = edfffffffffffffffffffff", @@ -8864,9 +9174,9 @@ static const char *kData318[] = { "n multiplication by 8\nprivate = a898af8138e11ae45bbcefa737182a571885f92d515c32056c7cb0d7deac4741\npublic = 0cad7545ade2fd93fcae007c97648348f26d85829bdb7223a63eccb84e56d475\nresult = valid\nshared = c8085877800c175e949cdd88e196eb9c4841da2ac446dfed9085bda5bbec265d\n\n# tcId = 487\n# special case for AA in multiplication by 9\nprivate = b0bfef6ec095b5a1f93917d32f16a21d0462c1fde17446f5a590232d9c895f4a\npublic = 60f27ed0a27804ced237cf3c1cc776650fb320bae6d5acb564e97b56cba25210\nresult = valid\nshared = 4c300895827382a9d1079028bd6f694a7a12ddac9c76abac6fdf5d29457a3310\n\n# tcId = 488\n# special case for AA in multiplication by 9\nprivate = 60497d4464ed8823c50fbc6b68620826c4f629c1d9193058df6bf857c6aecc4b\npublic = f93a73270ac19194b8e4ffd02be4b1438525f84a76224688ea89a9dd6a1bd623\nresult = acceptable\nshared = 7285fbb3f76340a979ab6e288727a2113332cf933809b018b8739a796a09d00b\nflags = Twist\n\n# tcId = 489\n# special case for AA in multiplication by 9\nprivate = 08c6cbe03792a3829f06e8ad54c55db113236ac0dcc9ab6a9a6b10eed1041b48\npublic = cf80c30fcbfd535666ca1da499e2e99cc537063e2de19458fcf92f5ee34acf47\nresult = acceptable\nshared = dabc3bd49f19cf7071802e43c863ed0b1d93a841588098b98a0c581bf4fe0a11\nflags = Twist\n\n# tcId = 490\n# special case for AA in multiplication by 9\nprivate = 50044da3315dd082e9dfb6a1994aabb331f53e0d1c12633383b2a3c8678cfe4c\npublic = 698effe0ad42e15ee1f46fde6fc5074ffda183bcf1b2db8647f561ddd191dd60\nresult = valid\nshared = a61a3b150b4770532373676298c9a5da28adcc4365b06fe07c959ca80e477a57\n\n# tcId = 491\n# special case for AA in multiplication by 9\nprivate = 285640da7a48252e35ddce60c14addb73097fbc9ac2f87c8d2772ce89aa6be4d\npublic = bd1565b4a3f8515dff577be6dcb414511d3d4ec2de15e0bd45b28e9cc4caef60\nresult = valid\nshared = 916ab4f3bfc8321e1087d9c5444f8f7a43e9ca6d29e7ba98a19dc05fff34ed4c\n\n# tcId = 492\n# special case for AA in multiplication by 9\nprivate = 783271c21199ba2e94ead92cd9dd79f70aab378b59497455d327a5907dafcb4a\npublic = b8649e13843f80cf5702398e4a9a8c378f29da96dfd6579f1eb4f7ea34df6765\nresult = acceptable\nshared = 844a5dd5139554ca7b41cbe6a4796193912e7aa4e201cc68944ce2a55774a10f\nflags = Twist\n\n# tcId = 493\n# special case for AA in multiplication by 9\nprivate = d0676a0b9a046c62d5b2e740d9cc43fa37965dea93c23254f7bf569f2bebaa4a\npublic = c396938737abdf791e09a97eba577c437d9b67c2dae94e13eab7296ec0fc737e\nresult = valid\nshared = 10780333b2a6170136265bb5ebc6c818817f2e48ae372528c8f34433fdd6215a\n\n# tcId = 494\n# special case for DA - CB in multiplication by 9\nprivate = 608c84d2b76fccda579e974db3d3b2ce39a6bc0dad440599db22411b60467849\npublic = 557b825012d98f065bb95a2ab9b2d2d8b83fd2037912508c263f86d7e36c4f24\nresult = acceptable\nshared = 5ce84842dbae8b795b3d545343558045508f271383bfb3dd3943f4101398c864\nflags = Twist\n\n# tcId = 495\n# special case for z_2 in multiplication by 9\nprivate = 80f233936a8821936d39114c84d929e79760b27680779e5009e1709410dd8e4f\npublic = ae98296d4a2fbcbb40b472f4063231608bb1465c226c8a4a2dff29afd915882a\nresult = valid\nshared = 4f11aa0c313195f96f25cadcbf49f06a932d8b051879ea537d1c6dfee7f36d35\n\n# tcId = 496\n# special case for z_2 in multiplication by 9\nprivate = c8d80b1a34f21194f047a6f0328bb947e2e7aff6a043553aa07f2abf99aaf048\npublic = 8b9d249829fbe81333d85050da88998f63fac665679e27dbbe21b745dd14e145\nresult = valid\nshared = 1d619070bf5626064be10025e74e336c81ef3166b743f99c751fb90587c31d7e\n\n# tcId = 497\n# special case for z_2 in multiplication by 9\nprivate = 9021477b452361580059364c6f94f4981ee94ea3f9b7d37439bc82ae45816f4d\npublic = 61896093e2697c78230afdda12639cbe4342827b8d2b093281f148eb60b9034b\nresult = valid\nshared = 532e797861db56b9d5db8825fb72f8629c2422f8abea721ad2d7b9e77a95b576\n\n# tcId = 498\n# special case for z_2 in multiplication by 9\nprivate = 6079dae04c40a59ea4e0c8c17092e4c85ea9133d143307363487836df4e30349\npublic = ccc1dc186229dba9a9360a0f7ff00247a3732625acaacd18ea13a9a8b40fac4f\nresult = acceptable\nshared = 4f678b64fd1f85cbbd5f7e7f3c8ac95ec7500e102e9006d6d42f48fb2473ab02\nflags = Twist\n\n# tcId = 499\n# special case for z_2 in multiplication by 9\nprivate = 281db6a5ac9a47d4a7b2b91a87f6536ce62d4e5129b8d647b97f9c504014894c\npublic = 69e368c0b7e78eb9f3a53bf458f6e79dc4883bf9458f04a8c12c4ddd94d62151\nresult = valid\nshared = e069fd06702f10f33adb8cf0766880634865b510e2da409241fb5f178050514a\n\n# tcId = 500\n# special case for z_2 in multiplication by 9\nprivate = d830f3c4785829a0f945857e0e85e0ae723702b57783b933cd2a2ad05484fe49\npublic = f21f9badd98dd8a103cc2ab5484fac6c2bfdd2671ee6e674134a86b89cee9160\nresult = valid\nshared = fee218eb1f92864486e83c1731f04bb8c7e6d7143e3915bcbf80fe03ff69dc77\n\n# tcId = 501\n# special case for E in multiplication by 9\nprivate = 10230bd0721f4c8c4b921881dd88c603af501ee80e2102f8acc30cf8b2acd349\npublic = e853062b2d6f38d021d645163ea208d0e193a479f11f99971b98e21188fd0b2c\nresult = acceptable\nshared = 64bdfa0207a174ca17eeba8df74d79b25f54510e6174923034a4d6ee0c167e7b\nflags = Twist\n\n# tcId = 502\n# special case for E in multiplication by 9\nprivate = f0a34d6d76896e17cb8f66feda23115ffb96f246b823bb63dec08335787de74c\npublic = 362eb92dab9fb29f7ed0e03843dcc15797928c2b4e51ec260204179c1c12945f\nresult = valid\nshared = d7f4583ee4fe86af3a3f1dfcb295ba3a3e37bced7b9c6f000a95336530318902\n\n# tcId = 503\n# special case for E in multiplication by 9\nprivate = 9073c1d0a173c7ff02dc966a165993d9c4c9357514f7a6bb7aaa4b0827718948\npublic = ff543f1e81996e88631f030ceba7e603b13033efd205e68bd36b28468134aa73\nresult = acceptable\nshared = c1b5e5f4401c98fa14eba8aafae30a641bfd8fb132be03413f3bf29290d49e0b\nflags = Twist\n\n# tcId = 504\n# special case for x_2 in multiplication by 9\nprivate = b0c1822566e016c12ae35ec035edd09af3cb7a48f55c9028e05e1178a8c3824e\npublic = 90ef70844ead1613f69df7d78c057813f866c0d95e6d22caee4a012b9c1c4b33\nresult = valid\nshared = 9369ebb3d2b744341cba77302719a4b2d63aff612872f86d9877a76bc919ca1c\n\n# tcId = 505\n# special case for x_2 in multiplication by 9\nprivate = e06fe64e2117796f997bbcd3bcad3067cf1291640a3a643fb359809a4016834d\npublic = 88c1ae575ad073dda66c6eacb7b7f436e1f8ad72a0db5c04e5660b7b719e4c4b\nresult = acceptable\nshared = 335394be9c154901c0b4063300001804b1cd01b27fa562e44f3302168837166e\nflags = Twist\n\n# tcId = 506\n# special case for x_2 in multiplication by 9\nprivate = 707ee81f113a244c9d87608b12158c50f9ac1f2c8948d170ad16ab0ad866d74b\npublic = dcffc4c1e1fba5fda9d5c98421d99c257afa90921bc212a046d90f6683e8a467\nresult = acceptable\nshared = 7ecdd54c5e15f7b4061be2c30b5a4884a0256581f87df60d579a3345653eb641\nflags = Twist\n\n# tcId = 507\n# special case for BB in multiplication by 9\nprivate = 7089654baacbb65bd00cd8cb9de4680e748075e8842ca69d448fb50fea85e74e\npublic = 6c0044cd10578c5aff1ff4917b041b76c9a9ae23664eb8cf978bd7aa192cf249\nresult = valid\nshared = 0d8c21fa800ee63ce5e473d4c2975495062d8afa655091122cb41799d374594f\n\n# tcId = 508\n# special case for BB in multiplication by 9\nprivate = 8089784c52cd67e4536e568218c7b7033b28413f942fca24ed69e43496efa14b\npublic = d9089de902e143dcd9107e5a3393a3f7fe05d926c357b47e307a236cb590fd64\nresult = valid\nshared = db6fec44bf118316a6bdfbae9af447baede4d82daa16bed596ea6f05d4a51400\n\n# tcId = 509\n# special case for BB in multiplication by 9\nprivate = 00e73e4e013148b9f05273bad626bb126a40ec4558f5425096b48947e0a9de4a\npublic = 8c4a26aa319c2cc4a4158c2bc69a0d5b340b60628a14cf31bb0ae5ddc38ae866\nresult = valid\nshared = ecc1204bc753c4cec4c9059fd7b504944ebf995ab1b1d49f0b3b325353be3a15\n\n# tcId = 510\n# special case for BB in multiplication by 9\nprivate = 78ed4c9bf9f44db8d93388985191ecf59226b9c1205fe7e762c327581c75884e\npublic = ce7295d1227c9062aab9cf02fc5671fb81632e725367f131d4122824a6132d68\nresult = valid\nshared = 3740de297ff0122067951e8985247123440e0f27171da99e263d5b4450f59f3d\n\n# tcId = 511\n# private key == -1 (mod order)\nprivate = a023cdd083ef5bb82f10d62e59e15a6800000000000000000000000000000050\npublic = 6c05871352a451dbe182ed5e6ba554f2034456ffe041a054ff9cc56b8e946376\nresult = valid\nshared = 6c05871352a451dbe182ed5e6ba554f2034456ffe041a054ff9cc56b8e946376\n\n# tcId = 512\n# private key == 1 (mod order) on twist\nprivate = 58083dd261ad91eff952322ec824c682ffffffffffffffffffffffffffffff5f\npublic = 2eae5ec3dd494e9f2d37d258f873a8e6e9d0dbd1e383ef64d98bb91b3e0be035\nresult = acceptable\nshared = 2eae5ec3dd494e9f2d37d258f873a8e6e9d0dbd1e383ef64d98bb91b3e0be035\nflags = Twist\n\n# tcId = 513\n# special cas", "e private key\nprivate = 4855555555555555555555555555555555555555555555555555555555555555\npublic = 3e3e7708ef72a6dd78d858025089765b1c30a19715ac19e8d917067d208e0666\nresult = valid\nshared = 63ef7d1c586476ec78bb7f747e321e01102166bf967a9ea9ba9741f49d439510\n\n# tcId = 514\n# special case private key\nprivate = 4855555555555555555555555555555555555555555555555555555555555555\npublic = 9f40bb30f68ab67b1c4b8b664982fdab04ff385cd850deac732f7fb705e6013a\nresult = valid\nshared = 8b98ef4d6bf30df7f88e58d51505d37ed6845a969fe598747c033dcd08014065\n\n# tcId = 515\n# special case private key\nprivate = 4855555555555555555555555555555555555555555555555555555555555555\npublic = be3b3edeffaf83c54ae526379b23dd79f1cb41446e3687fef347eb9b5f0dc308\nresult = valid\nshared = cfa83e098829fe82fd4c14355f70829015219942c01e2b85bdd9ac4889ec2921\n\n# tcId = 516\n# special case private key\nprivate = b8aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6a\npublic = 3e3e7708ef72a6dd78d858025089765b1c30a19715ac19e8d917067d208e0666\nresult = valid\nshared = 4782036d6b136ca44a2fd7674d8afb0169943230ac8eab5160a212376c06d778\n\n# tcId = 517\n# special case private key\nprivate = b8aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6a\npublic = 9f40bb30f68ab67b1c4b8b664982fdab04ff385cd850deac732f7fb705e6013a\nresult = valid\nshared = 65fc1e7453a3f8c7ebcd577ade4b8efe1035efc181ab3bdb2fcc7484cbcf1e4e\n\n# tcId = 518\n# special case private key\nprivate = b8aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6a\npublic = be3b3edeffaf83c54ae526379b23dd79f1cb41446e3687fef347eb9b5f0dc308\nresult = valid\nshared = e3c649beae7cc4a0698d519a0a61932ee5493cbb590dbe14db0274cc8611f914\n\n", }; -static const size_t kLen319 = 129059; +static const size_t kLen324 = 129059; -static const char *kData319[] = { +static const char *kData324[] = { "# Imported from Wycheproof's xchacha20_poly1305_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: XCHACHA20-POLY1305\n# Generator version: 0.8r12\n\n[ivSize = 192]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 1\n# draft-arciszewski-xchacha-02\naad = 50515253c0c1c2c3c4c5c6c7\nct = bd6d179d3e83d43b9576579493c0e939572a1700252bfaccbed2902c21396cbb731c7f1b0b4aa6440bf3a82f4eda7e39ae64c6708c54c216cb96b72e1213b4522f8c9ba40db5d945b11b69b982c1bb9e3f3fac2bc369488f76b2383565d3fff921f9664c97637da9768812f615c68b13b52e\niv = 404142434445464748494a4b4c4d4e4f5051525354555657\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 4c616469657320616e642047656e746c656d656e206f662074686520636c617373206f66202739393a204966204920636f756c64206f6666657220796f75206f6e6c79206f6e652074697020666f7220746865206675747572652c2073756e73637265656e20776f756c642062652069742e\nresult = valid\ntag = c0875924c1c7987947deafd8780acf49\n\n# tcId = 2\naad = \nct = \niv = 6a5e0c4617e07091b605a4de2c02dde117de2ebd53b23497\nkey = ab1562faea9f47af3ae1c3d6d030e3af230255dff3df583ced6fbbcbf9d606a9\nmsg = \nresult = valid\ntag = e2697ea6877aba39d9555a00e14db041\n\n# tcId = 3\naad = 8780fb400f94c55d\nct = \niv = 3ec3f7c45e687d75a895bf5e71809e7cdac32158bb48ec0d\nkey = d821dce9b890ea37ae1c89e7cb6aeae9371b8179add0d08f5494718322ae0071\nmsg = \nresult = valid\ntag = 966c22d655b9e56326024f028cf887ad\n\n# tcId = 4\naad = \nct = 45\niv = 05188738844ab90a8b11beef38eaec3e100d8f4f85ae7a41\nkey = 303ccb2e1567c3d9f629a5c632dbc62a9a82c525674f67988b31bd1dee990538\nmsg = 62\nresult = valid\ntag = d15734f984d749fa3f0550a70c43dddf\n\n# tcId = 5\naad = 6384f4714ff18c18\nct = b0\niv = cd78f4533c94648feacd5aef0291b00b454ee3dcdb76dcc8\nkey = 697c197c9e0023c8eee42ddf08c12c46718a436561b0c66d998c81879f7cb74c\nmsg = e1\nresult = valid\ntag = e5e35f5332f91bdd2d28e59d68a0b141\n\n# tcId = 6\naad = \nct = 5e03\niv = b60ca1ab736deebe4d9da78bc7cbbab91be14a2f884240b7\nkey = c11213bcff39a88b0e3ecc47b23acf6c3014e4708d80dcca162da7377b316ab3\nmsg = 57f9\nresult = valid\ntag = eed21c2cd3f395538d677602964ed578\n\n# tcId = 7\naad = 322f82a87ee82997\nct = b56a\niv = 4fd76cbf27cb387502a706461564e5a5c14e027d40bc6eef\nkey = b0f51b8227013464943370e926b6ed1c9fb45b5994af829ff3a9f998b77d822c\nmsg = ab8c\nresult = valid\ntag = edcafa2c9032aff695e427fc2a344767\n\n# tcId = 8\naad = \nct = 31a461\niv = 737e3e7699f788c4136938c0f65310684eacbb5f96ecd98d\nkey = 17afb080753f2aa0af0a7f4821f6ab2709a6b2b5b9f2f262910e3b27b82c6c1c\nmsg = 2af96a\nresult = valid\ntag = 2b745098b154bb90903b0240c3bc95e9\n\n# tcId = 9\naad = 9d53316bd2aa3e3d\nct = d41c02\niv = 1436f36466fce5db337a73ec18e269e6e985d91035128183\nkey = b720aea3df85fb3fb00583eddbebc5c545bcdcb7f6f2a94c1087950e16d68278\nmsg = 4799c4\nresult = valid\ntag = 8faa889d7f189cd9473e19200ef03920\n\n# tcId = 10\naad = \nct = a3b405bb\niv = 7c39999d498286d974d266b2f027a26d7fbcd330869d9f93\nkey = d7704e505826124ab02935e7349a4e13391e6dc020fee95cd30654cdc5d5f393\nmsg = c44efab6\nresult = valid\ntag = c50e2ddb97df1ee58561c97a7b746c24\n\n# tcId = 11\naad = 8e0ac97934605052\nct = 9406a621\niv = eb4e36c637d1908db2c2ae9c72cfbae50655cb5f6504c4b6\nkey = c70ef9ee59259019960c918bfc91237ed6786c73f2b62427e4cbd4d8096a1f03\nmsg = 2738c9d0\nresult = valid\ntag = 916b78ee04b20b8cd90f00b81bb8091c\n\n# tcId = 12\naad = \nct = 2a01d08fe2\niv = 49875536d4946af49288f36684e25ff35998d50be6bcfcc2\nkey = 7fac2a879ffddf5e36e04e3edcb8aa6be18a8326b28f76b15623307badc1ece2\nmsg = 2c4c38f435\nresult = valid\ntag = 9cbe5f3e782f57a33a45b1f4aeeeea6e\n\n# tcId = 13\naad = 5cbdd482f3429a27\nct = fb5daf8c6e\niv = 88ccb58d435ea760f19e1fa6172139a071c0c5143959a56c\nkey = 48f1389d9222a80898ca26b5cfef5dc82dfc0af7cf66ea1e01bc5279e7414247\nmsg = 945a1fd040\nresult = valid\ntag = ec1682b61957493c2eb758d7a2b7a179\n\n# tcId = 14\naad = \nct = 856c300cfceb\niv = 89c9806ad153b805f1bf5b50738319011d5fc070bb551ee1\nkey = 737cdaa2ce1e4740e75af4aaf68c0296c1607bde871d2452e628f1456239c753\nmsg = fae858dd3150\nresult = valid\ntag = aaa9875ebd42a11d12cf0aca26021f4a\n\n# tcId = 15\naad = 71b29930f84a572d\nct = 6438fc8f8788\niv = 5cbdc34772b54fb4fba9eca1e2745e0e3704d9d7b5c78fb4\nkey = 9f7cd632bd5eb5f017b898590d645571ef56e521024eda36eff893a6ad04b935\nmsg = 53abb8943ada\nresult = valid\ntag = af05a4def2ad39a195a7b8c222050111\n\n# tcId = 16\naad = \nct = 843f1039531fe1\niv = a020b016d952a5948a3d226bb1b73efc39d46845f3bf0ca5\nkey = ecf60cd2af8c7155c0be848ecdaa5baddad6bd5f254a2d98f47bef83999f60ee\nmsg = ea30907da57d78\nresult = valid\ntag = efd99acdab540690ec91a7ad5697cb33\n\n# tcId = 17\naad = 0c87cc97c49e166a\nct = f99f3fb49ec920\niv = b1f05bb66d29bcddf7412f6a556ff7540aac452457dd69e6\nkey = a9376583c47176728d7b2ed1039f0b12b2c7a97563937f7fe976ce4548f7cb00\nmsg = 4a3d9926dc9757\nresult = valid\ntag = 91c3356ee6601ae7073673d2ef30293b\n\n# tcId = 18\naad = \nct = 5b596bab0890286e\niv = f4f3484cacdce37cf5134a12f57903096acd3553607eb682\nkey = bf9ae8ceceb8d3001da7652c4cec02adda8696294a4ab542b41b5ba86c096a75\nmsg = 6eb5e11b358c0ab1\nresult = valid\ntag = d4474d9520f7178e9811f624209721ea\n\n# tcId = 19\naad = 06947c3afa797e99\nct = 80c8e9ac2cec97ce\niv = cc4781134455e89c836f7433bd0426776f945d82f6358276\nkey = d447796ed4ceb2e43942700e7759e335f67afa8653748db95f924c94488195db\nmsg = 77c46ada19c81849\nresult = valid\ntag = 9b62dcc8076098affcb6e7995aaa99a6\n\n# tcId = 20\naad = \nct = 37d696264f781338c9\niv = 200a30270bc911dd3b8a8ea2a6e6ce75be9cfb0f5431db3d\nkey = 08eb57d7bc113f7fbdda1b32237cdd06cccd52ef4a89a831c5e0564370c885ad\nmsg = 704df23a31893799ee\nresult = valid\ntag = 5fddaf74438159acc3c5667b5e84af13\n\n# tcId = 21\naad = 00fc4f61d9777504\nct = a55cbb308f81e449e9\niv = a613e0b17fafb47c79614d39959b986ba2c97b0215676d41\nkey = 9f093b6bb75f1609ab1e00a4bf4667961d885f01deb6520c5bb16ec21e033766\nmsg = 472578ece9fe828dc6\nresult = valid\ntag = 8174bd595da1be72cc226e74c46a4af5\n\n# tcId = 22\naad = \nct = 8bd51b64fcd244f0b3aa\niv = 21b40036745f64b2aab3e89665cf4dab2b690d88721fe9a3\nkey = e421bb3269130c731d1947e7b5d233c11d195ceed1d08634743db9c252bfefa5\nmsg = 1155c7f0ee3e1faa641e\nresult = valid\ntag = dbdd1558934b83ae4393ade73e9edadb\n\n# tcId = 23\naad = e7c9d1dda90b699e\nct = e5aad5c055dc6df73cf0\niv = 33dfa71a0cb2aca008e4c8e8a72dbda4c407bbadd5d7e1a5\nkey = 8a275c90eb8688c5d9e82b74331cf104a2c8757d6257079b1d8035bb40d6a8d9\nmsg = 3c2da491f244acfbd1dc\nresult = valid\ntag = 96fc30292cc8381c345d5f2964ba5626\n\n# tcId = 24\naad = \nct = 2a41cc14a6a65bbb153758\niv = 5a44801d2baabfe8cbee6da52bb51b5297856065fbf33944\nkey = 2d97a35e4b6617e5f4a0f50dcda7622f321cad936a246d9beada9d75e142ef3d\nmsg = b94df0d444dac848ffcad4\nresult = valid\ntag = 1044cd75f2e61cbecbf3a7a77c13ef01\n\n# tcId = 25\naad = d78dcb5431ef5669\nct = 5b3193405830b6840a4474\niv = 07590877a1e1df3a78fe4d04dd64b6cb79f1df45de17685b\nkey = 70d11ca92903865c6a6d8ba497f5a2d65f23b72198d7fc7fdaeda6c2632f7e46\nmsg = f61bb0dd66e5905f1a7ea1\nresult = valid\ntag = 4b10bef8e8a3c2e6ae87fb8fb2a8bdd5\n\n# tcId = 26\naad = \nct = 528dfb79ea182945f13bafb7\niv = 94f86b0fd8a6ed90d3780eca23a82f4387da82b0894ae317\nkey = 05c7317f07a0e89ce1b5ac41df8064faa9fd569ee1c357cd01a2872076477ac5\nmsg = b63e50c9bcd01406b6f78f86\nresult = valid\ntag = 4fc22f4491449bb4ffe6a1eb266e2a91\n\n# tcId = 27\naad = a67a57310055b193\nct = 2345bfc502f9c62d64ad87f9\niv = 829cb09e40c2cc5f7648adc177e56ef53a58bfa16a859338\nkey = 924aafdb5b8a206b3e49aefe8944918cdcc8ccb5bb4b8c4ee81b847aa6fa52a0\nmsg = 68576b935acaab8b33ab62e3\nresult = valid\ntag = 6736f095a28b887238f80dc562eaa25c\n\n# tcId = 28\naad = \nct = d1f725ace69f7899ef51c11dd3\niv = 016dac89c624a9d425ae377132421c37c4486895bef270f0\nkey = 332b7ec9bf4a983eb02af7efee8ffaf5627b66f29e3e4728f50894fe176788d8\nmsg = 8289397a58921bb3201b29c505\nresult = valid\ntag = 0d2858cc30497107a035929fdf2eb6af\n\n# tcId = 29\naad = 4dc711c827a6f626\nct = 6c0e9d31b8e45591726f4cfc63\niv = e8252b018f9e0c3fbd4a6ad0d06346302b8ed7dcb206c3ad\nkey = b75fd9dd7ecca4f3eab36c36a176530dd3ffc825c202613740311d11cd501804\nmsg = 9800f8b835c4ff490ebd764914\nresult = valid\ntag = 2ce700f1f3dc7d3f60607058ac3b817e\n\n# tcId = 30\naad = \nct = 23a49dbe4b699d481621d9fc2db6\niv = e698d39b3cec2634dbe035a55b8fce3b0041aabe4156f713\nkey = 2bddfb332f74ac31fcf91d652c7b41fbcb26a10f2792ecf8075478e645042f87\nmsg = 813974b924c7618c63070d0247f0\nresult = valid\ntag = ef2cfb8423ae6f9faaec81025e6e274b\n\n# tcId = 31\naad = 0b9df4ffd1c9ccbe\nct = 0596f5709407a62fffce84240346\niv = d025b0", "188edc9c40a8d6fc807cead97749016c9016d62ea5\nkey = ea029c829c13a580b66aca21133a16933235c11c42905a640104a2ae9bb5cf82\nmsg = a67e672df18cfbe125b212d63ec8\nresult = valid\ntag = 893772def69053b0aaf3bf1c21144ebf\n\n# tcId = 32\naad = \nct = c5aa0caf82b963f1e9b84a789a77d3\niv = 9ce202557c11a57cb14e7e4bd7986f1cf6232196672d25ea\nkey = 1c838d9f68e687fbdddc6dff7f2e44b277bfeb316ae5d11b3e935889b48539d8\nmsg = 37905d98be9839e02923d119a88d56\nresult = valid\ntag = 59c3e2e43cc098ed413ece9d9a6fd47a\n\n# tcId = 33\naad = a2e44e165e7ca5f7\nct = f91d01453f568774115f75b5dad642\niv = ffdca5c51a0852ab18dd484af6664b63ab4097d303450837\nkey = 51a99f0646767fbc01d7736df0340191acfbb5ae0288ed6fff2d34f0ea31470f\nmsg = 93553954f0be4e24185601ce5c3c34\nresult = valid\ntag = 8fc36af6ae5ee3e05b38ed43598bbfcd\n\n# tcId = 34\naad = \nct = 732715c60018fb0ed55c14c1fa9a5273\niv = 25dc279923c1bcdaa7a36e7b884b51f62343abad71986037\nkey = 6a1f808358461e75072a054e2fc4e4c3e7f882c57920dda3278d0c860ca704e3\nmsg = f242209c67698ea32c2152f8785b7d82\nresult = valid\ntag = afe3c4f050bf001e1dfcb2313dd8edd2\n\n# tcId = 35\naad = 8981c7260d514ab6\nct = a7eb11bfaa0d1c2ce457598049399575\niv = c02c8c595064ac303b1be5df6ab43048856e97ae9962fb8f\nkey = 7fb18b56f3f5122585754a3b6c6a4e523036e66793db569c3e8e28032e916eb6\nmsg = 6e8c0bb3361908f5b33e059408651ae3\nresult = valid\ntag = 485a94f61aa5f47a3036e85a57effd2f\n\n# tcId = 36\naad = \nct = 0fd7386b41396e0558495c45cdba029062\niv = 9a61cf35aecbd40a65b35a64b516896f3de7f977b5c9901d\nkey = 3b11469dc670f5dfbe0aad7d15ee4862c92cb07842e5dcc48fa8e5fc817f1749\nmsg = 540731e4ba3e4e2fd623a1a13233736ee7\nresult = valid\ntag = 29f601a11f6a1072342c60b631de6085\n\n# tcId = 37\naad = 23230be73ba2a6fb\nct = 86d0fd1a325d501fe9efe83d3a3f62e346\niv = 6570889af7acab7f555337bdce05499e8eb0d8d3d1a77660\nkey = e6d9fc8a9e3fa6ecadd9faffbb6ff387aa96502e60adadab029a9146ee39de28\nmsg = deec95974eeef6e2b99739bed2f4a74771\nresult = valid\ntag = 1ed9a79616c787a8de2ff5cdac6af0c9\n\n# tcId = 38\naad = \nct = daea40da316b8e78254a737c57063c4ad8b7\niv = f3d84207ab5574e4bc74ae61b17ccaccc7c46eb3471e0e53\nkey = cbaa654cd4ad70ae96d3412680e60522807e9b887ec6dbfcd6e71e917e29ce62\nmsg = f55aaf5a55432c20fb782c552e5ae096eb23\nresult = valid\ntag = e13ff7a7e2c85b1abb5350134dfa7f9b\n\n# tcId = 39\naad = b6bea5c60f288109\nct = eef62d53545698255648a483708c9cc93937\niv = de1e034363b0daec9828159e7996faff33a5f63eb552eb5f\nkey = 5b51ea4943ce173baa53f84a6ef59cb1e25b794768508b8dd8dcbfbc1744c18a\nmsg = 953939dd7601f17071b2bf776e4b1ed629ce\nresult = valid\ntag = 182529b1d07dbcb4bd89b3c5e4c8fac9\n\n# tcId = 40\naad = \nct = 03dfbb3407a55ab0dbc451d0289de44acb5f33\niv = 74533cbe3ff9ec5a66604c88f5dae4d7efe4f604111f79fc\nkey = c5d3917ffb42b0508296cb245d468b04bbaa2c8c8c32e845415a911ea85f95f1\nmsg = 0afab6dbab51f929332d743ccfbb9f34877bc9\nresult = valid\ntag = a050def2e06a9ed3d10be180bafa636d\n\n# tcId = 41\naad = 880ac1004984fb3e\nct = 95a9bd7bf7e9836e5f8a75393c70da0d9b1d97\niv = 562f3b788783bbb72e465c9d04eb555f366c66de32356e7b\nkey = 77cbd62759966c03b4487ce7cb3fca652c30198cdc0de5d447256e979e041c87\nmsg = 0e677082f7dd9c56bd365310c15a18de78df6d\nresult = valid\ntag = f028003066f8902c5d74ca6bc526e346\n\n# tcId = 42\naad = \nct = 4ad85a75f1a975bbf3ee5302b71949036e3a2198\niv = 5fb9a00843c4b192bf6c3bc29451c237f30a607d3c637b85\nkey = 40e231268005ff28c36bd00167ea39131d262f3a591b0d1508c11b00ed04a0b6\nmsg = d34b950a1c4f2ae5c94a1fddd6574c5d9c0ab18f\nresult = valid\ntag = b82c05b09328949aa70bb537e871cd70\n\n# tcId = 43\naad = 043cd9069dbd8cb5\nct = dfca9d845c21093f43348a4f6e72e324e9673129\niv = 7ade1bc01148ac071bfbe9870fe2023a7769b92312f45e0a\nkey = d66e92c86712132b1e3f5ba3a4cd006b9de1fa444246d99ef02e5b190a73089d\nmsg = 1cf9f2a93cb056fa4222c5850872d9989bc8c185\nresult = valid\ntag = 9defc3de90d493be2a1945d11c569095\n\n# tcId = 44\naad = \nct = 74634f111539fac80bb29d76ba656e5af90fd37f8e\niv = 45ccb4a19073c79a4ac1e052d4664d0dd1c730a6a2e87fe8\nkey = 841404f7e07cdebeb48efd25a75444b6de170995cd460e38ff5930dc9cf5eba2\nmsg = 5d583f68421d00cd8d95896a091b9bb10b744c61c4\nresult = valid\ntag = c04ce25d27416ae5f181238acf9508bc\n\n# tcId = 45\naad = 91b46ee1f7a9361b\nct = 0c1afa5419abb32e479b181a6e51cd99eb041bc37d\niv = 89248df60acfa757945d12647a14cc5bc6508bb2b9e4999c\nkey = 77a812cdbce2b7327dbbaecf6f81340b0ac97589676939d1ff0e69c3373326a3\nmsg = 2573f8f0276ce3b2b38fb727575f376a2eeb305758\nresult = valid\ntag = 6c0b51ea2fc63841893216b03eb47be0\n\n# tcId = 46\naad = \nct = 59d9c3f18cbc59a3c04cdc6904cb860aae69a5485147\niv = ec272b052c33c84a611512a483c3fcec40501240eb7a42ee\nkey = f2f9bdba59206e8c31a3338213d6a46a40aee237f631906aff076fe2d29d3b85\nmsg = 408c4cac91b4bd3ce25c8971b1ed8adb20ed667f8393\nresult = valid\ntag = 63e55e220873e295a5b86543334b1715\n\n# tcId = 47\naad = 1bc37fc6729b401d\nct = d5a1f87dae98ab385d5d34626c295cca0ed6931635f4\niv = a131b4b0582be36dcce56beb036ec4fc31147efed7ff4718\nkey = d9aa0213bfac5ee89f9ef2c6f616d8f71c3725dafe7926504e18b141192c33b0\nmsg = 081280932efbce0a5500d76d41c7dd2ddbc3311dc0cd\nresult = valid\ntag = 25f2fa45c86c4cb0f02f99050e9d5ab7\n\n# tcId = 48\naad = \nct = 93034cdc9298d0086b8e8bbf3aea637484454015cf544d\niv = df72b7fe00eb070276ba1b0de6b17a6100fe0d660bf3c6c7\nkey = d7b0b278c5ede48da2db2f6ec6f8b23282d3c940bd1eb59f7102bf69c683298d\nmsg = 0f44c184d297c0a66467d54ac982f922b119d5b4c8b238\nresult = valid\ntag = b1e1dcf03663a995c6c14991b5558159\n\n# tcId = 49\naad = 04e0e991fb5a465e\nct = 83a8bbe26ad18129459f66f6dc771c653a3dbb88a00b11\niv = 0378f12d4891c68477d90f16f2ff59287c81922b73cec608\nkey = bd5040047cd7bd0bd1ca22164058a2901feb383c1ccba5c71c853f186d4e2b9e\nmsg = 29b7080f92c860ca4dd501f18b041c5cbc5c131783a720\nresult = valid\ntag = 791971c0f5ba2c8b7635924267c68f32\n\n# tcId = 50\naad = \nct = 1a0bc208b17fb629200e805da495db70c599ecb3c3b9cc94\niv = c9f5d4dfd5dd2276d68b25c6178d9ef2f38756df4be9d4b3\nkey = 3b96dbe28ee07208cdf703f1488f478134147363da1502249e025e0efe5cb663\nmsg = 8f37fd7e3e2f6563a9883d4adb92b5c37242a56b73a6fb7e\nresult = valid\ntag = 08b9477bc98543019ddaa7ae380f83dd\n\n# tcId = 51\naad = e1b2f309ce5fabe8\nct = e9dd13d48dd7258682311bfec967e1a1ebc562855f224f41\niv = 90b932e3464c8b66d3d2fec2bc9097289f147e05f18a9867\nkey = 53fc679ebe23b70714ab4ce6c8b0de5df656dca27177512654da31f6848dbe6b\nmsg = 8b0b4038c0eebea97fa1f93b7c2f3576898e7cdc9fd702d0\nresult = valid\ntag = d9038207dbfc82a9a9d507fe254d57c2\n\n# tcId = 52\naad = \nct = 666f807a6e5d0253fe1967d45efea42cf1f421789b7f48e0dc\niv = d758776af8d089ef14a075ddf683e6669ed8109fe5681833\nkey = 275ac60ffa734bf86601c951d0bd263b9651181c32f41fce90d59cb8d59da081\nmsg = 1fa3b565515a429f78fb36e93e048425ffb64bc9e9e68336b3\nresult = valid\ntag = 5d423636988dd257e5cbd40ee28ae94e\n\n# tcId = 53\naad = bbcbfa1779f4122c\nct = 369a80f75ad28fd05cb3c944e0a8c8b37ce65bbd1f6d4b355a\niv = 9628e46f25d08b206371449e7321d6bf5d811629e01ef32b\nkey = ec4d4b14860a36fe8afb2861c1376db8004cc2d37eb1ebb609343daf24bc39fb\nmsg = 201ec6c1d0675e818cb7a4e583ea1aa1afde1bbda1f0f549e1\nresult = valid\ntag = 3ca5005eda0b99d6566ac841340ad23a\n\n# tcId = 54\naad = \nct = b6faccf43dabd8965cb231fe96a2bdf2cb51e0b9afb6445c21eb\niv = ec3dae28ec71ceba5b97a933d30b9fb98a40d4c92e6f54ef\nkey = 53f9c2c335c1c5cde744e890f6bd291e4484925aaa036f1e74f0144603322648\nmsg = 00f4f6a8c09ecbff3e6e825ca676a5cb8373d4915ecaf5d317a1\nresult = valid\ntag = ee91b39d01a114f80a7c5e7e1a0b2868\n\n# tcId = 55\naad = a6d7d9034512781c\nct = c97a4ba644788bfdeeb0a5de228948902a57359879c82cf8ead9\niv = a7f4c26140ba7d8a884de794fb23a50c6647627fa85ef9f7\nkey = 9bb8bc991f01fb26df610032e1bf6ed0e2652629a6726aec9c23df4fefbdb594\nmsg = ebcb0777bd1c3385376270e543521e11f4bac00d0f9c0192581e\nresult = valid\ntag = bf51aa205497db895f008d828040150f\n\n# tcId = 56\naad = \nct = 28cf032caf586255ee3f3f70492d33458a7b42473b8e354d983dfd\niv = 7e4c8d0e24ab24f500053964774c92f808bafc42be0f6a34\nkey = 69b8b0846c47226dbb278f83082b75476e89a77444bfa06de69395f16c6eed01\nmsg = 3b406d4c07f2ef751ac701fe944b2392bd59fb0ee4b32e6cbf8958\nresult = valid\ntag = 58896a5d7618837701ed8dda9b18d82c\n\n# tcId = 57\naad = f5fa84749ff438f4\nct = be95d62d6acb3e5344f6b4ddbddfb45fa479c2d1577a42967dc0ad\niv = 26b2165f4b22415df4c052564b87d62c4c2c01df47c82cd8\nkey = aa6d2da8fe7ce3228f15e09ae8c7f3d1b0220679a3e0e13e7523060b5b8d09b6\nmsg = 92763e759a5c0b8c4d40d6398fa9e257900ff4b1f31000dbd9a15e\nresult = valid\ntag = 61ac094fefb1237c9d44ab7f4bbbf5f9\n\n# tcId = 58\naad = \nct = 2248e5332ed42c42fcb6a029e3d8f9f96cbc32d34fa5f302fabf1bf3\niv ", "= b595d9204461e311915cc17df51a3bbfa55c3a98aafbbaee\nkey = 31b9e848dfd3dd1ec05410975190109f550ee6e5235f040ce6faf6c380fba49d\nmsg = 95272cdea7a15889059b4e1de058c869e1776384159539470b542ed8\nresult = valid\ntag = b777e88479292944c5d6ace1ffd24ac2\n\n# tcId = 59\naad = 96fc6284d7eeb53c\nct = b10f9fbd87f51ebeae1942b9afb59749987b1575babd8008b281a662\niv = bc101b6d01bda7e13d402aa0023f0507ab02aa58758cb6aa\nkey = da132c34b2291a15777d3ebda2ed0078028c215038c2410d822578dcc869ea8d\nmsg = 331f3d53965bfee2edb463c5b21751eb445289287fada2aedae99258\nresult = valid\ntag = 54ad4e664b86333223fca6869c501dc2\n\n# tcId = 60\naad = \nct = ffb587ec97c7d11ca75629f066881f6b2c392fa71b73fc4cb4559a645d\niv = 4adcd5ecf1506fe7a38adf5634b454bf90278c9ebffbac87\nkey = d7e5e9c008af44266c876fa6b02a453854703c1a4fd221573c382c8d512a982d\nmsg = f8b3ae84d6502d353d57c970da5f9bc53de7a5c6262ba7a7b2220d0ee1\nresult = valid\ntag = ec9db510c3bb11831c20684d82e45053\n\n# tcId = 61\naad = cec8c976f2e25979\nct = 5d3ce03a6f43eab32a91b6eb87666af14e5e28d98d23c49c56557497d5\niv = 055776b422138960f6631e3c58f3ba0688082747de4ae5f6\nkey = 1e72be02d7ebf3c78b400efd005f5b6b983ede08443541475808d43e6d30eab8\nmsg = f2654733ca29af4bb29347f7a6508ed87913e0faa885505928ac1ee86e\nresult = valid\ntag = b324b10851d159bd3822705a9d638038\n\n# tcId = 62\naad = \nct = aa6edcb0f49535b2d2fa2e5f0b29343ba0c9c1667c401c78a3a8b8a61ad2\niv = cb52ad5674aff0762ef49fb3bed4722dcef2bcbc4f3c316a\nkey = 98362eff7af1e38d3d77d4a013bb6bf3fb3690568bf897651c578b21572fd37e\nmsg = a40610eaf3a823c06936293473ca36a2952d0eb5e5bbc18be123a07f8bc8\nresult = valid\ntag = 98d5e90a5a64e411c98d7c9e91557f5c\n\n# tcId = 63\naad = f5203e702570c4b1\nct = 3d1add00e51e60b16825272790ff47c0d533bfe65484d105ee7a69896c48\niv = f2f09c3469e2cf73b07620e461d7b1ad999c5f7d54867d21\nkey = 8f0e3dc43b86943ed4b0361fa5aa49999f24bc1e102bf3afb439e44f9ce43504\nmsg = dba4ed2a7938826c43548f6976d8f0ec1838fe71cc535b2a5d56e4d3d5ca\nresult = valid\ntag = a018e2629d5656920f1202e65624b056\n\n# tcId = 64\naad = \nct = 1ca6389e16c2f43e9e89447991d1472c8283a8dd94fdf61c4f5aee746cb537\niv = 17d6ff40ad135ac9df55fa5c0eaf03e5d91cdac63c684e8e\nkey = 16a376d68b3105262a07558e5e448ecdcbe075770cf60e7b7db1420f4fa4e36d\nmsg = bdb5500794edd38a398f18f83de03e16f135ea960d3b8c6578abc541aa1d03\nresult = valid\ntag = 33107bbbc06e563abf48979dbc7c66b6\n\n# tcId = 65\naad = 3fe9ad465d0aa3fa\nct = e8ae311bf2e80d696c543cd272d3e50dc968a0ab47259c461e0dec35f77530\niv = c306b69443bfdbedb5ce9f9bb6088132a88e8a175d3bd769\nkey = 8e1fb8cc57ca60ae091d27e292923272439c37f2dede36b2c2aaee96439d5a31\nmsg = 1d884a83a5f9b00b8951ef81778bd7c991cdc911127eee9dfeff82c48ca937\nresult = valid\ntag = 906de4c31eb2ce283eeb95388b0d83ce\n\n# tcId = 66\naad = \nct = d34c1778d105d0e80d429c86b879d52835cf8aebc5a04a9084cff1f9646e040a\niv = 0140f2791eb81fd4b69edf2d9ba4b2d62eab1d296741583f\nkey = 2ed460a56867ee1a2877a8f3d2d98fb886cfcc8913e31c3d08f42374ba37ebb1\nmsg = 318cc4bf151c3baaee5a783ec091ab618f2ecacf38c962ba9c32c323696cc94c\nresult = valid\ntag = ac8a68605a0567c559442342b764b964\n\n# tcId = 67\naad = 1264b91e71865033\nct = cc24cfa62063d11b2c31cf25ceb7308ca376feb1dd6bc102ed7db8ed46b06759\niv = 97438f178419732feaade58a5d5c21bed14d04c4add50465\nkey = b43328e39cc6f6e94ea601fbebadb4b41cfe6a52c3a4d5eeabaa9853db45ccb1\nmsg = 63cb5c20c9edf36757b795921437d3fd228af1fcdbb329505cbdde12afaf9f84\nresult = valid\ntag = dda7fc160e23f57e8392809f1e3b5ee8\n\n# tcId = 68\naad = \nct = 82be237be008228a8a9ff1a506d5b893cf9dcaa1dd33c0523b13582bcade4629ef\niv = daca1f50a4c0d9b77151c75f2e58ce404847d0aab493086d\nkey = 92b9b40c00480a50ee16a86349a46e37b02d5ba74d2e5a67eaf333e467fa0152\nmsg = c857f3c55da61d72563912a2534e01b6426ba41bf417c15b725086d31a1645c94d\nresult = valid\ntag = 723437af0b684b6e04024352206cbaf9\n\n# tcId = 69\naad = aaefd84240ade0ed\nct = ff98ead89d45d70f09b9e3f31f4ff56ae8b8cad1517294a8af3c962bad24a92efe\niv = ffcaddf85da09293c4352c81cbb5dd82e30b0f9e7623e92a\nkey = 5c271bac09a0454c83d158bcc9ec331ca92e62726903b7bb5799adff47d671ee\nmsg = 7c716a5b6cf0b8b0e1ff825ff9324bb5715b0d40af5338d5337f66de681932d423\nresult = valid\ntag = 4b8a06a1613737d0f8e3fb88184b23e4\n\n# tcId = 70\naad = \nct = d0e84c6450f348d887c49c4b44ac38721d4a1742e72095c330249c7348bade49dc776d449272e0f3dd5422c2a6ab18\niv = 64cc9f3cc334abce364cec9efe8ad54117ff0bbb03e3e8b9\nkey = c28403cce44ff256d055c2cbc84bb2d9773346e0d51bd38e80cebd861b03fa30\nmsg = f9e8f60b70044b03a189c26f1c8fd246239bc23f8adf0f88516f88d73d11c9290882bb6ad49d956b10c9f848180065\nresult = valid\ntag = 28c72dea441cffac2f7811286f8ea5dd\n\n# tcId = 71\naad = 7185f9cbf59d2095\nct = 4093dcbca1555835b78140fe7a3798a77bd97a01b0a7c1f7157fedb27c40d9d16cc3e935f649faf0dcf431636cd539\niv = 7b97c8b1c06b69b99220042ab2ac65b88d8b4294b76b4bd1\nkey = 7c72c748ea0010c90e1dfbde8e91edf6ead2474148cf234e0559dcd881cc3b2b\nmsg = 9a1f6c42a8a0f3032e8dfa36e0f5750479276866c920672a0454c41bfae5dd74fbf0fbcc8e6fbf4843f20d06440837\nresult = valid\ntag = c7c9133ff17a296c987d72885182874d\n\n# tcId = 72\naad = \nct = 764ab84b844b57b0564f63ec70ad12d81dc3a0e65233a9bf06d6b2c653787eb991bc37a885a04509690ab49fd8dedcabe3c346df9036d735de3bf73ab03f5ba7\niv = 8052acef0423bb07a6fbaf8f63039f1eaa2cdefc61b31b18\nkey = 7948151a374363d07dfb12869b7f90502f2de8117d3d72d5133b9b3e3dc78ef7\nmsg = 76e03034be5514561e99c32ab58901eabac0f67b40c366202ac8a08ee3f68c3b283c1adeefee6f5544330d4771e5148c5231ec27b3f3f9d81a3dca52e115e1b5\nresult = valid\ntag = 075248c91d1f246aebaa96c86627d18e\n\n# tcId = 73\naad = dc514d540551b9dc\nct = de03f775aee744e4148e008dfefa7156ce2a23a613d4d9cae99c3164f54a173f895a9466ef046c020179383d70c813e765f207860c79dcf627f17663ea76af20\niv = f357e3b3d3d5e4187e34da08afd4817635adde91b676da1d\nkey = 50a1b2b155150936609d45596e9175f3271be548574405f827593fc5a0578c3a\nmsg = e854b8531ace95c975a5b1497f3dec6d80b29ca673690411abe277bbfd29fa00133ee17570805c1c605452d648581be8db878e782f217b481b1268591593efc0\nresult = valid\ntag = b473a9f1d5312d556bd0b62d84bb0803\n\n# tcId = 74\naad = \nct = 98fc26e0cfd5a75b5bcd9e046e89c6e9dc5aaefdd5e8ea7e4d286dcdaca0fe6ae744d244678f91c9ccf6e294bd5586be671645ae87d3435836a5ab383b253602c25a6cc04353c076725b4fc4aff9b4dc9bd194fe92ef0a920f15d6b8fea9f19065\niv = 6d609141e3e4331f55344c1f5e6fad589b39ec1d12b9fbf0\nkey = 92570a01d2b6123b67055400c8a9b0cb948e32c9b8520758cd1abd73f83c8507\nmsg = e86fc97c194d37a5e1345d139fe82dd669b6350c435cb446fcbdcc90fe5859bb2ef1f69d930e29dc343b57dfd7ff3c382652939bbd1c978a790ed1dbe5ad1fcbe157925ab4335c649c2f80c19d541e9e7eb4feb64e596bc6d7df8aa3476e0a9f7e\nresult = valid\ntag = 03bb49593f116a30a8390f96380a9888\n\n# tcId = 75\naad = e40cb55a18f2885f\nct = 7042beb6e4f08e583752f23048e2f3433e0821423d72a7e531b86684b57b32c5bdcc11164db0b8516d7b463cf7f8b0e3ed8a7d584345934ef184e4f8fee31e126601f08558c725aaa23d38c8017b07adbf1e742128795b03458b581b8cd9100bd9\niv = 1a80def5bd8be8eef5f6643a5c1aed9947c3ee5ca0cb56df\nkey = 4a3bc8f5c4aab87c20772404a291c1d6d68eb12e5f3c82e582564d6300fc28c9\nmsg = 2b0815f7eb0a83b9617e4f0906e9179b600b0c822bfb56c5012103aecb4550a57099dcebae00b6c06f3537fb1550c78b249d00a4007d23b882cb5511fdd53482575554028e9db437b8224368ead730d157a64d5571c706cbd9c0d2b10b3b14c3e2\nresult = valid\ntag = b5e3df83f18cbc0bd99427b9a172bf1b\n\n# tcId = 76\naad = \nct = cf2e17f9d8c6562de6d3e8c8bc30ba2904cf5c3616d15ea77667186ee45f444ea264327dcf210b6735a39005b62529d557480ed0462e49d982cf5962e5ee6d8ccc388d5de102e676a55426ce5a873d2e84a2d841e7b30c7ab19035274886b3c5c979d065bdde9b0b9e466b22559e30a5a5abc4817312e15d2c0dcdd99d867361\niv = 3507ec4cd1a6c2eaf081ec32888e08839481f35b3b0f7872\nkey = 2e89767b15f18b855d04c0b6b47c1f8facc9a058e2194ad2ad901ef940ab54cb\nmsg = eff2e375228756f995b8ab52213177c4b7ca92bc81114f5c23aa64dd7eaff7b86ee2e674984c4b65bf4c5ff402e23902c005e05de25b3c6e8a64323aeafe04ec6cd1f6c851be39e55208d76476d3ed7100042eccb72cf1349ea101253b7a5a4a8677c1d6df5a54e9c24558e2d68c3f50acbd1ebbb4773884b0ff23d95a4ff60d\nresult = valid\ntag = c844d555bb43a83b4aa735b2aa1d566a\n\n# tcId = 77\naad = e2f0d2f16704527e\nct = 4f0e805a2b3f2e1bfe3c06c83f5c77b9c4e562514a78f9f2cbf3206f68f686923656885878087d17da261666e798649d74841753525875f425e82a4795fdf8dfb629a8b1d2faa5594557d62f421f4e6a5dbb9f8336875f2fe2e2a4a1d0084358d9583e6b6662895a07c924c0a7cdba07be8a020e1b8ef3a0b5d007ec47a8e8cf\niv = 0a5914f29abb1cb48dc686159f09480370477f6069018e18\nkey = 6357cd94e2d9503288eaf3abf9604b050d4a483350a828029baaa9cae184f075\nmsg = bb266ddea2f88c2f0fea7f0cf4a1a3336334", @@ -9113,750 +9423,765 @@ std::string GetTestData(const char *path) { if (strcmp(path, "crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt") == 0) { return AssembleString(kData71, kLen71); } - if (strcmp(path, "crypto/fipsmodule/kdf/test/sskdf.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/kdf/test/kbkdf_counter.txt") == 0) { return AssembleString(kData72, kLen72); } - if (strcmp(path, "crypto/fipsmodule/modes/gcm_tests.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/kdf/test/sskdf.txt") == 0) { return AssembleString(kData73, kLen73); } - if (strcmp(path, "crypto/fipsmodule/rand/ctrdrbg_vectors.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/modes/gcm_tests.txt") == 0) { return AssembleString(kData74, kLen74); } - if (strcmp(path, "crypto/fipsmodule/sha/testvectors/SHAKE128VariableOut.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/rand/ctrdrbg_vectors.txt") == 0) { return AssembleString(kData75, kLen75); } - if (strcmp(path, "crypto/fipsmodule/sha/testvectors/SHAKE256VariableOut.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/sha/testvectors/SHAKE128VariableOut.txt") == 0) { return AssembleString(kData76, kLen76); } - if (strcmp(path, "crypto/fipsmodule/sha/testvectors/SHA3_224ShortMsg.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/sha/testvectors/SHAKE256VariableOut.txt") == 0) { return AssembleString(kData77, kLen77); } - if (strcmp(path, "crypto/fipsmodule/sha/testvectors/SHA3_256ShortMsg.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/sha/testvectors/SHA3_224ShortMsg.txt") == 0) { return AssembleString(kData78, kLen78); } - if (strcmp(path, "crypto/fipsmodule/sha/testvectors/SHA3_384ShortMsg.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/sha/testvectors/SHA3_256ShortMsg.txt") == 0) { return AssembleString(kData79, kLen79); } - if (strcmp(path, "crypto/fipsmodule/sha/testvectors/SHA3_512ShortMsg.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/sha/testvectors/SHA3_384ShortMsg.txt") == 0) { return AssembleString(kData80, kLen80); } - if (strcmp(path, "crypto/hmac_extra/hmac_tests.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/sha/testvectors/SHA3_512ShortMsg.txt") == 0) { return AssembleString(kData81, kLen81); } - if (strcmp(path, "crypto/hpke/hpke_test_vectors.txt") == 0) { + if (strcmp(path, "crypto/hmac_extra/hmac_tests.txt") == 0) { return AssembleString(kData82, kLen82); } - if (strcmp(path, "crypto/kyber/kat/kyber512r3.txt") == 0) { + if (strcmp(path, "crypto/hpke/hpke_test_vectors.txt") == 0) { return AssembleString(kData83, kLen83); } - if (strcmp(path, "crypto/kyber/kat/kyber768r3.txt") == 0) { + if (strcmp(path, "crypto/kyber/kat/kyber512r3.txt") == 0) { return AssembleString(kData84, kLen84); } - if (strcmp(path, "crypto/kyber/kat/kyber1024r3.txt") == 0) { + if (strcmp(path, "crypto/kyber/kat/kyber768r3.txt") == 0) { return AssembleString(kData85, kLen85); } - if (strcmp(path, "crypto/ml_kem/kat/mlkem512ipd.txt") == 0) { + if (strcmp(path, "crypto/kyber/kat/kyber1024r3.txt") == 0) { return AssembleString(kData86, kLen86); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_request.der") == 0) { + if (strcmp(path, "crypto/ml_kem/kat/mlkem512ipd.txt") == 0) { return AssembleString(kData87, kLen87); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_request_attached_cert.der") == 0) { + if (strcmp(path, "crypto/ml_kem/kat/mlkem768ipd.txt") == 0) { return AssembleString(kData88, kLen88); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_request_no_nonce.der") == 0) { + if (strcmp(path, "crypto/ml_kem/kat/mlkem1024ipd.txt") == 0) { return AssembleString(kData89, kLen89); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_request_signed.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_request.der") == 0) { return AssembleString(kData90, kLen90); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_request_signed_sha256.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_request_attached_cert.der") == 0) { return AssembleString(kData91, kLen91); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_request_no_nonce.der") == 0) { return AssembleString(kData92, kLen92); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_ca_signed.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_request_signed.der") == 0) { return AssembleString(kData93, kLen93); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_no_nonce.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_request_signed_sha256.der") == 0) { return AssembleString(kData94, kLen94); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_revoked.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response.der") == 0) { return AssembleString(kData95, kLen95); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_unknown.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_ca_signed.der") == 0) { return AssembleString(kData96, kLen96); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_expired_signer.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_no_nonce.der") == 0) { return AssembleString(kData97, kLen97); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_wrong_signer.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_revoked.der") == 0) { return AssembleString(kData98, kLen98); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_sha256.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_unknown.der") == 0) { return AssembleString(kData99, kLen99); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_revoked_sha256.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_expired_signer.der") == 0) { return AssembleString(kData100, kLen100); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_unknown_sha256.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_wrong_signer.der") == 0) { return AssembleString(kData101, kLen101); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_wrong_signer_sha256.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_sha256.der") == 0) { return AssembleString(kData102, kLen102); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_malformedrequest.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_revoked_sha256.der") == 0) { return AssembleString(kData103, kLen103); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_internalerror.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_unknown_sha256.der") == 0) { return AssembleString(kData104, kLen104); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_trylater.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_wrong_signer_sha256.der") == 0) { return AssembleString(kData105, kLen105); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_sigrequired.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_malformedrequest.der") == 0) { return AssembleString(kData106, kLen106); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_unauthorized.der") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_internalerror.der") == 0) { return AssembleString(kData107, kLen107); } - if (strcmp(path, "crypto/ocsp/test/aws/ca_cert.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_trylater.der") == 0) { return AssembleString(kData108, kLen108); } - if (strcmp(path, "crypto/ocsp/test/aws/ocsp_expired_cert.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_sigrequired.der") == 0) { return AssembleString(kData109, kLen109); } - if (strcmp(path, "crypto/ocsp/test/aws/server_cert.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_response_unauthorized.der") == 0) { return AssembleString(kData110, kLen110); } - if (strcmp(path, "crypto/ocsp/test/aws/server_ecdsa_cert.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ca_cert.pem") == 0) { return AssembleString(kData111, kLen111); } - if (strcmp(path, "crypto/ocsp/test/aws/server_ecdsa_key.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/ocsp_expired_cert.pem") == 0) { return AssembleString(kData112, kLen112); } - if (strcmp(path, "crypto/ocsp/test/aws/server_key.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/server_cert.pem") == 0) { return AssembleString(kData113, kLen113); } - if (strcmp(path, "crypto/ocsp/test/integration-tests/AmazonRootCA1.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/server_ecdsa_cert.pem") == 0) { return AssembleString(kData114, kLen114); } - if (strcmp(path, "crypto/ocsp/test/integration-tests/AmazonRootCA2.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/server_ecdsa_key.pem") == 0) { return AssembleString(kData115, kLen115); } - if (strcmp(path, "crypto/ocsp/test/integration-tests/AmazonRootCA3.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/aws/server_key.pem") == 0) { return AssembleString(kData116, kLen116); } - if (strcmp(path, "crypto/ocsp/test/ND1.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/integration-tests/AmazonRootCA1.pem") == 0) { return AssembleString(kData117, kLen117); } - if (strcmp(path, "crypto/ocsp/test/ND2.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/integration-tests/AmazonRootCA2.pem") == 0) { return AssembleString(kData118, kLen118); } - if (strcmp(path, "crypto/ocsp/test/ND3.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/integration-tests/AmazonRootCA3.pem") == 0) { return AssembleString(kData119, kLen119); } - if (strcmp(path, "crypto/ocsp/test/ISOP_ND1.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/ND1.ors") == 0) { return AssembleString(kData120, kLen120); } - if (strcmp(path, "crypto/ocsp/test/ISOP_ND2.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/ND2.ors") == 0) { return AssembleString(kData121, kLen121); } - if (strcmp(path, "crypto/ocsp/test/ISOP_ND3.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/ND3.ors") == 0) { return AssembleString(kData122, kLen122); } - if (strcmp(path, "crypto/ocsp/test/WRID_ND1.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISOP_ND1.ors") == 0) { return AssembleString(kData123, kLen123); } - if (strcmp(path, "crypto/ocsp/test/WRID_ND2.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISOP_ND2.ors") == 0) { return AssembleString(kData124, kLen124); } - if (strcmp(path, "crypto/ocsp/test/WRID_ND3.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISOP_ND3.ors") == 0) { return AssembleString(kData125, kLen125); } - if (strcmp(path, "crypto/ocsp/test/WINH_ND1.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WRID_ND1.ors") == 0) { return AssembleString(kData126, kLen126); } - if (strcmp(path, "crypto/ocsp/test/WINH_ND2.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WRID_ND2.ors") == 0) { return AssembleString(kData127, kLen127); } - if (strcmp(path, "crypto/ocsp/test/WINH_ND3.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WRID_ND3.ors") == 0) { return AssembleString(kData128, kLen128); } - if (strcmp(path, "crypto/ocsp/test/WIKH_ND1.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WINH_ND1.ors") == 0) { return AssembleString(kData129, kLen129); } - if (strcmp(path, "crypto/ocsp/test/WIKH_ND2.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WINH_ND2.ors") == 0) { return AssembleString(kData130, kLen130); } - if (strcmp(path, "crypto/ocsp/test/WIKH_ND3.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WINH_ND3.ors") == 0) { return AssembleString(kData131, kLen131); } - if (strcmp(path, "crypto/ocsp/test/D1.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WIKH_ND1.ors") == 0) { return AssembleString(kData132, kLen132); } - if (strcmp(path, "crypto/ocsp/test/D2.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WIKH_ND2.ors") == 0) { return AssembleString(kData133, kLen133); } - if (strcmp(path, "crypto/ocsp/test/D3.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WIKH_ND3.ors") == 0) { return AssembleString(kData134, kLen134); } - if (strcmp(path, "crypto/ocsp/test/ISOP_D1.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/D1.ors") == 0) { return AssembleString(kData135, kLen135); } - if (strcmp(path, "crypto/ocsp/test/ISOP_D2.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/D2.ors") == 0) { return AssembleString(kData136, kLen136); } - if (strcmp(path, "crypto/ocsp/test/ISOP_D3.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/D3.ors") == 0) { return AssembleString(kData137, kLen137); } - if (strcmp(path, "crypto/ocsp/test/WRID_D1.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISOP_D1.ors") == 0) { return AssembleString(kData138, kLen138); } - if (strcmp(path, "crypto/ocsp/test/WRID_D2.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISOP_D2.ors") == 0) { return AssembleString(kData139, kLen139); } - if (strcmp(path, "crypto/ocsp/test/WRID_D3.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISOP_D3.ors") == 0) { return AssembleString(kData140, kLen140); } - if (strcmp(path, "crypto/ocsp/test/WINH_D1.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WRID_D1.ors") == 0) { return AssembleString(kData141, kLen141); } - if (strcmp(path, "crypto/ocsp/test/WINH_D2.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WRID_D2.ors") == 0) { return AssembleString(kData142, kLen142); } - if (strcmp(path, "crypto/ocsp/test/WINH_D3.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WRID_D3.ors") == 0) { return AssembleString(kData143, kLen143); } - if (strcmp(path, "crypto/ocsp/test/WIKH_D1.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WINH_D1.ors") == 0) { return AssembleString(kData144, kLen144); } - if (strcmp(path, "crypto/ocsp/test/WIKH_D2.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WINH_D2.ors") == 0) { return AssembleString(kData145, kLen145); } - if (strcmp(path, "crypto/ocsp/test/WIKH_D3.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WINH_D3.ors") == 0) { return AssembleString(kData146, kLen146); } - if (strcmp(path, "crypto/ocsp/test/WKDOSC_D1.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WIKH_D1.ors") == 0) { return AssembleString(kData147, kLen147); } - if (strcmp(path, "crypto/ocsp/test/WKDOSC_D2.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WIKH_D2.ors") == 0) { return AssembleString(kData148, kLen148); } - if (strcmp(path, "crypto/ocsp/test/WKDOSC_D3.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WIKH_D3.ors") == 0) { return AssembleString(kData149, kLen149); } - if (strcmp(path, "crypto/ocsp/test/ISDOSC_D1.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WKDOSC_D1.ors") == 0) { return AssembleString(kData150, kLen150); } - if (strcmp(path, "crypto/ocsp/test/ISDOSC_D2.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WKDOSC_D2.ors") == 0) { return AssembleString(kData151, kLen151); } - if (strcmp(path, "crypto/ocsp/test/ISDOSC_D3.ors") == 0) { + if (strcmp(path, "crypto/ocsp/test/WKDOSC_D3.ors") == 0) { return AssembleString(kData152, kLen152); } - if (strcmp(path, "crypto/ocsp/test/ND1_Cross_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISDOSC_D1.ors") == 0) { return AssembleString(kData153, kLen153); } - if (strcmp(path, "crypto/ocsp/test/ND1_Issuer_ICA.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISDOSC_D2.ors") == 0) { return AssembleString(kData154, kLen154); } - if (strcmp(path, "crypto/ocsp/test/ND1_Issuer_ICA-Cross.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISDOSC_D3.ors") == 0) { return AssembleString(kData155, kLen155); } - if (strcmp(path, "crypto/ocsp/test/ND2_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/ND1_Cross_Root.pem") == 0) { return AssembleString(kData156, kLen156); } - if (strcmp(path, "crypto/ocsp/test/ND3_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/ND1_Issuer_ICA.pem") == 0) { return AssembleString(kData157, kLen157); } - if (strcmp(path, "crypto/ocsp/test/WKIC_ND1_Issuer_ICA.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/ND1_Issuer_ICA-Cross.pem") == 0) { return AssembleString(kData158, kLen158); } - if (strcmp(path, "crypto/ocsp/test/WKIC_ND2_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/ND2_Issuer_Root.pem") == 0) { return AssembleString(kData159, kLen159); } - if (strcmp(path, "crypto/ocsp/test/WKIC_ND3_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/ND3_Issuer_Root.pem") == 0) { return AssembleString(kData160, kLen160); } - if (strcmp(path, "crypto/ocsp/test/WSNIC_ND1_Issuer_ICA.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/WKIC_ND1_Issuer_ICA.pem") == 0) { return AssembleString(kData161, kLen161); } - if (strcmp(path, "crypto/ocsp/test/WSNIC_ND2_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/WKIC_ND2_Issuer_Root.pem") == 0) { return AssembleString(kData162, kLen162); } - if (strcmp(path, "crypto/ocsp/test/WSNIC_ND3_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/WKIC_ND3_Issuer_Root.pem") == 0) { return AssembleString(kData163, kLen163); } - if (strcmp(path, "crypto/ocsp/test/ISIC_ND1_Issuer_ICA.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/WSNIC_ND1_Issuer_ICA.pem") == 0) { return AssembleString(kData164, kLen164); } - if (strcmp(path, "crypto/ocsp/test/ISIC_ND2_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/WSNIC_ND2_Issuer_Root.pem") == 0) { return AssembleString(kData165, kLen165); } - if (strcmp(path, "crypto/ocsp/test/ISIC_ND3_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/WSNIC_ND3_Issuer_Root.pem") == 0) { return AssembleString(kData166, kLen166); } - if (strcmp(path, "crypto/ocsp/test/D1_Issuer_ICA.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISIC_ND1_Issuer_ICA.pem") == 0) { return AssembleString(kData167, kLen167); } - if (strcmp(path, "crypto/ocsp/test/D2_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISIC_ND2_Issuer_Root.pem") == 0) { return AssembleString(kData168, kLen168); } - if (strcmp(path, "crypto/ocsp/test/D3_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISIC_ND3_Issuer_Root.pem") == 0) { return AssembleString(kData169, kLen169); } - if (strcmp(path, "crypto/ocsp/test/WKIC_D1_Issuer_ICA.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/D1_Issuer_ICA.pem") == 0) { return AssembleString(kData170, kLen170); } - if (strcmp(path, "crypto/ocsp/test/WKIC_D2_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/D2_Issuer_Root.pem") == 0) { return AssembleString(kData171, kLen171); } - if (strcmp(path, "crypto/ocsp/test/WKIC_D3_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/D3_Issuer_Root.pem") == 0) { return AssembleString(kData172, kLen172); } - if (strcmp(path, "crypto/ocsp/test/WSNIC_D1_Issuer_ICA.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/WKIC_D1_Issuer_ICA.pem") == 0) { return AssembleString(kData173, kLen173); } - if (strcmp(path, "crypto/ocsp/test/WSNIC_D2_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/WKIC_D2_Issuer_Root.pem") == 0) { return AssembleString(kData174, kLen174); } - if (strcmp(path, "crypto/ocsp/test/WSNIC_D3_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/WKIC_D3_Issuer_Root.pem") == 0) { return AssembleString(kData175, kLen175); } - if (strcmp(path, "crypto/ocsp/test/ISIC_D1_Issuer_ICA.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/WSNIC_D1_Issuer_ICA.pem") == 0) { return AssembleString(kData176, kLen176); } - if (strcmp(path, "crypto/ocsp/test/ISIC_D2_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/WSNIC_D2_Issuer_Root.pem") == 0) { return AssembleString(kData177, kLen177); } - if (strcmp(path, "crypto/ocsp/test/ISIC_D3_Issuer_Root.pem") == 0) { + if (strcmp(path, "crypto/ocsp/test/WSNIC_D3_Issuer_Root.pem") == 0) { return AssembleString(kData178, kLen178); } - if (strcmp(path, "crypto/pkcs8/test/empty_password.p12") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISIC_D1_Issuer_ICA.pem") == 0) { return AssembleString(kData179, kLen179); } - if (strcmp(path, "crypto/pkcs8/test/no_encryption.p12") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISIC_D2_Issuer_Root.pem") == 0) { return AssembleString(kData180, kLen180); } - if (strcmp(path, "crypto/pkcs8/test/nss.p12") == 0) { + if (strcmp(path, "crypto/ocsp/test/ISIC_D3_Issuer_Root.pem") == 0) { return AssembleString(kData181, kLen181); } - if (strcmp(path, "crypto/pkcs8/test/null_password.p12") == 0) { + if (strcmp(path, "crypto/pkcs8/test/empty_password.p12") == 0) { return AssembleString(kData182, kLen182); } - if (strcmp(path, "crypto/pkcs8/test/openssl.p12") == 0) { + if (strcmp(path, "crypto/pkcs8/test/empty_password_ber.p12") == 0) { return AssembleString(kData183, kLen183); } - if (strcmp(path, "crypto/pkcs8/test/pbes2_sha1.p12") == 0) { + if (strcmp(path, "crypto/pkcs8/test/empty_password_ber_nested.p12") == 0) { return AssembleString(kData184, kLen184); } - if (strcmp(path, "crypto/pkcs8/test/pbes2_sha256.p12") == 0) { + if (strcmp(path, "crypto/pkcs8/test/no_encryption.p12") == 0) { return AssembleString(kData185, kLen185); } - if (strcmp(path, "crypto/pkcs8/test/unicode_password.p12") == 0) { + if (strcmp(path, "crypto/pkcs8/test/nss.p12") == 0) { return AssembleString(kData186, kLen186); } - if (strcmp(path, "crypto/pkcs8/test/windows.p12") == 0) { + if (strcmp(path, "crypto/pkcs8/test/null_password.p12") == 0) { return AssembleString(kData187, kLen187); } - if (strcmp(path, "crypto/pkcs8/test/null_contentinfo_root.p12") == 0) { + if (strcmp(path, "crypto/pkcs8/test/openssl.p12") == 0) { return AssembleString(kData188, kLen188); } - if (strcmp(path, "crypto/pkcs8/test/null_contentinfo_child.p12") == 0) { + if (strcmp(path, "crypto/pkcs8/test/pbes2_sha1.p12") == 0) { return AssembleString(kData189, kLen189); } - if (strcmp(path, "crypto/poly1305/poly1305_tests.txt") == 0) { + if (strcmp(path, "crypto/pkcs8/test/pbes2_sha256.p12") == 0) { return AssembleString(kData190, kLen190); } - if (strcmp(path, "crypto/siphash/siphash_tests.txt") == 0) { + if (strcmp(path, "crypto/pkcs8/test/unicode_password.p12") == 0) { return AssembleString(kData191, kLen191); } - if (strcmp(path, "crypto/x509/test/basic_constraints_ca.pem") == 0) { + if (strcmp(path, "crypto/pkcs8/test/windows.p12") == 0) { return AssembleString(kData192, kLen192); } - if (strcmp(path, "crypto/x509/test/basic_constraints_ca_pathlen_0.pem") == 0) { + if (strcmp(path, "crypto/pkcs8/test/null_contentinfo_root.p12") == 0) { return AssembleString(kData193, kLen193); } - if (strcmp(path, "crypto/x509/test/basic_constraints_ca_pathlen_1.pem") == 0) { + if (strcmp(path, "crypto/pkcs8/test/null_contentinfo_child.p12") == 0) { return AssembleString(kData194, kLen194); } - if (strcmp(path, "crypto/x509/test/basic_constraints_ca_pathlen_10.pem") == 0) { + if (strcmp(path, "crypto/poly1305/poly1305_tests.txt") == 0) { return AssembleString(kData195, kLen195); } - if (strcmp(path, "crypto/x509/test/basic_constraints_leaf.pem") == 0) { + if (strcmp(path, "crypto/siphash/siphash_tests.txt") == 0) { return AssembleString(kData196, kLen196); } - if (strcmp(path, "crypto/x509/test/basic_constraints_none.pem") == 0) { + if (strcmp(path, "crypto/x509/test/basic_constraints_ca.pem") == 0) { return AssembleString(kData197, kLen197); } - if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate.pem") == 0) { + if (strcmp(path, "crypto/x509/test/basic_constraints_ca_pathlen_0.pem") == 0) { return AssembleString(kData198, kLen198); } - if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_authority_key_identifier.pem") == 0) { + if (strcmp(path, "crypto/x509/test/basic_constraints_ca_pathlen_1.pem") == 0) { return AssembleString(kData199, kLen199); } - if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_basic_constraints.pem") == 0) { + if (strcmp(path, "crypto/x509/test/basic_constraints_ca_pathlen_10.pem") == 0) { return AssembleString(kData200, kLen200); } - if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_ext_key_usage.pem") == 0) { + if (strcmp(path, "crypto/x509/test/basic_constraints_leaf.pem") == 0) { return AssembleString(kData201, kLen201); } - if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_key_usage.pem") == 0) { + if (strcmp(path, "crypto/x509/test/basic_constraints_none.pem") == 0) { return AssembleString(kData202, kLen202); } - if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_name_constraints.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate.pem") == 0) { return AssembleString(kData203, kLen203); } - if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_subject_alt_name.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_authority_key_identifier.pem") == 0) { return AssembleString(kData204, kLen204); } - if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_subject_key_identifier.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_basic_constraints.pem") == 0) { return AssembleString(kData205, kLen205); } - if (strcmp(path, "crypto/x509/test/invalid_extension_leaf.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_ext_key_usage.pem") == 0) { return AssembleString(kData206, kLen206); } - if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_authority_key_identifier.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_key_usage.pem") == 0) { return AssembleString(kData207, kLen207); } - if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_basic_constraints.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_name_constraints.pem") == 0) { return AssembleString(kData208, kLen208); } - if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_ext_key_usage.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_subject_alt_name.pem") == 0) { return AssembleString(kData209, kLen209); } - if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_key_usage.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_subject_key_identifier.pem") == 0) { return AssembleString(kData210, kLen210); } - if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_name_constraints.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf.pem") == 0) { return AssembleString(kData211, kLen211); } - if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_subject_alt_name.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_authority_key_identifier.pem") == 0) { return AssembleString(kData212, kLen212); } - if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_subject_key_identifier.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_basic_constraints.pem") == 0) { return AssembleString(kData213, kLen213); } - if (strcmp(path, "crypto/x509/test/invalid_extension_root.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_ext_key_usage.pem") == 0) { return AssembleString(kData214, kLen214); } - if (strcmp(path, "crypto/x509/test/invalid_extension_root_authority_key_identifier.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_key_usage.pem") == 0) { return AssembleString(kData215, kLen215); } - if (strcmp(path, "crypto/x509/test/invalid_extension_root_basic_constraints.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_name_constraints.pem") == 0) { return AssembleString(kData216, kLen216); } - if (strcmp(path, "crypto/x509/test/invalid_extension_root_ext_key_usage.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_subject_alt_name.pem") == 0) { return AssembleString(kData217, kLen217); } - if (strcmp(path, "crypto/x509/test/invalid_extension_root_key_usage.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_subject_key_identifier.pem") == 0) { return AssembleString(kData218, kLen218); } - if (strcmp(path, "crypto/x509/test/invalid_extension_root_name_constraints.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root.pem") == 0) { return AssembleString(kData219, kLen219); } - if (strcmp(path, "crypto/x509/test/invalid_extension_root_subject_alt_name.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root_authority_key_identifier.pem") == 0) { return AssembleString(kData220, kLen220); } - if (strcmp(path, "crypto/x509/test/invalid_extension_root_subject_key_identifier.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root_basic_constraints.pem") == 0) { return AssembleString(kData221, kLen221); } - if (strcmp(path, "crypto/x509/test/many_constraints.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root_ext_key_usage.pem") == 0) { return AssembleString(kData222, kLen222); } - if (strcmp(path, "crypto/x509/test/many_names1.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root_key_usage.pem") == 0) { return AssembleString(kData223, kLen223); } - if (strcmp(path, "crypto/x509/test/many_names2.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root_name_constraints.pem") == 0) { return AssembleString(kData224, kLen224); } - if (strcmp(path, "crypto/x509/test/many_names3.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root_subject_alt_name.pem") == 0) { return AssembleString(kData225, kLen225); } - if (strcmp(path, "crypto/x509/test/policy_root.pem") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root_subject_key_identifier.pem") == 0) { return AssembleString(kData226, kLen226); } - if (strcmp(path, "crypto/x509/test/policy_intermediate_duplicate.pem") == 0) { + if (strcmp(path, "crypto/x509/test/many_constraints.pem") == 0) { return AssembleString(kData227, kLen227); } - if (strcmp(path, "crypto/x509/test/policy_intermediate_invalid.pem") == 0) { + if (strcmp(path, "crypto/x509/test/many_names1.pem") == 0) { return AssembleString(kData228, kLen228); } - if (strcmp(path, "crypto/x509/test/policy_intermediate.pem") == 0) { + if (strcmp(path, "crypto/x509/test/many_names2.pem") == 0) { return AssembleString(kData229, kLen229); } - if (strcmp(path, "crypto/x509/test/policy_leaf_duplicate.pem") == 0) { + if (strcmp(path, "crypto/x509/test/many_names3.pem") == 0) { return AssembleString(kData230, kLen230); } - if (strcmp(path, "crypto/x509/test/policy_leaf_invalid.pem") == 0) { + if (strcmp(path, "crypto/x509/test/policy_root.pem") == 0) { return AssembleString(kData231, kLen231); } - if (strcmp(path, "crypto/x509/test/policy_leaf.pem") == 0) { + if (strcmp(path, "crypto/x509/test/policy_intermediate_duplicate.pem") == 0) { return AssembleString(kData232, kLen232); } - if (strcmp(path, "crypto/x509/test/some_names1.pem") == 0) { + if (strcmp(path, "crypto/x509/test/policy_intermediate_invalid.pem") == 0) { return AssembleString(kData233, kLen233); } - if (strcmp(path, "crypto/x509/test/some_names2.pem") == 0) { + if (strcmp(path, "crypto/x509/test/policy_intermediate.pem") == 0) { return AssembleString(kData234, kLen234); } - if (strcmp(path, "crypto/x509/test/some_names3.pem") == 0) { + if (strcmp(path, "crypto/x509/test/policy_leaf_duplicate.pem") == 0) { return AssembleString(kData235, kLen235); } - if (strcmp(path, "crypto/x509/test/trailing_data_leaf_authority_key_identifier.pem") == 0) { + if (strcmp(path, "crypto/x509/test/policy_leaf_invalid.pem") == 0) { return AssembleString(kData236, kLen236); } - if (strcmp(path, "crypto/x509/test/trailing_data_leaf_basic_constraints.pem") == 0) { + if (strcmp(path, "crypto/x509/test/policy_leaf.pem") == 0) { return AssembleString(kData237, kLen237); } - if (strcmp(path, "crypto/x509/test/trailing_data_leaf_ext_key_usage.pem") == 0) { + if (strcmp(path, "crypto/x509/test/some_names1.pem") == 0) { return AssembleString(kData238, kLen238); } - if (strcmp(path, "crypto/x509/test/trailing_data_leaf_key_usage.pem") == 0) { + if (strcmp(path, "crypto/x509/test/some_names2.pem") == 0) { return AssembleString(kData239, kLen239); } - if (strcmp(path, "crypto/x509/test/trailing_data_leaf_name_constraints.pem") == 0) { + if (strcmp(path, "crypto/x509/test/some_names3.pem") == 0) { return AssembleString(kData240, kLen240); } - if (strcmp(path, "crypto/x509/test/trailing_data_leaf_subject_alt_name.pem") == 0) { + if (strcmp(path, "crypto/x509/test/trailing_data_leaf_authority_key_identifier.pem") == 0) { return AssembleString(kData241, kLen241); } - if (strcmp(path, "crypto/x509/test/trailing_data_leaf_subject_key_identifier.pem") == 0) { + if (strcmp(path, "crypto/x509/test/trailing_data_leaf_basic_constraints.pem") == 0) { return AssembleString(kData242, kLen242); } - if (strcmp(path, "third_party/wycheproof_testvectors/aes_cbc_pkcs5_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/trailing_data_leaf_ext_key_usage.pem") == 0) { return AssembleString(kData243, kLen243); } - if (strcmp(path, "third_party/wycheproof_testvectors/aes_ccm_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/trailing_data_leaf_key_usage.pem") == 0) { return AssembleString(kData244, kLen244); } - if (strcmp(path, "third_party/wycheproof_testvectors/aes_cmac_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/trailing_data_leaf_name_constraints.pem") == 0) { return AssembleString(kData245, kLen245); } - if (strcmp(path, "third_party/wycheproof_testvectors/aes_gcm_siv_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/trailing_data_leaf_subject_alt_name.pem") == 0) { return AssembleString(kData246, kLen246); } - if (strcmp(path, "third_party/wycheproof_testvectors/aes_gcm_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/trailing_data_leaf_subject_key_identifier.pem") == 0) { return AssembleString(kData247, kLen247); } - if (strcmp(path, "third_party/wycheproof_testvectors/chacha20_poly1305_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/aes_cbc_pkcs5_test.txt") == 0) { return AssembleString(kData248, kLen248); } - if (strcmp(path, "third_party/wycheproof_testvectors/dsa_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/aes_ccm_test.txt") == 0) { return AssembleString(kData249, kLen249); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp224r1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/aes_cmac_test.txt") == 0) { return AssembleString(kData250, kLen250); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp256r1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/aes_gcm_siv_test.txt") == 0) { return AssembleString(kData251, kLen251); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp384r1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/aes_gcm_test.txt") == 0) { return AssembleString(kData252, kLen252); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp521r1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/chacha20_poly1305_test.txt") == 0) { return AssembleString(kData253, kLen253); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/dsa_test.txt") == 0) { return AssembleString(kData254, kLen254); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp224r1_test.txt") == 0) { return AssembleString(kData255, kLen255); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp256r1_test.txt") == 0) { return AssembleString(kData256, kLen256); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp384r1_test.txt") == 0) { return AssembleString(kData257, kLen257); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp521r1_test.txt") == 0) { return AssembleString(kData258, kLen258); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.txt") == 0) { return AssembleString(kData259, kLen259); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.txt") == 0) { return AssembleString(kData260, kLen260); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.txt") == 0) { return AssembleString(kData261, kLen261); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp256k1_sha256_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.txt") == 0) { return AssembleString(kData262, kLen262); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp256k1_sha512_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.txt") == 0) { return AssembleString(kData263, kLen263); } - if (strcmp(path, "third_party/wycheproof_testvectors/eddsa_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.txt") == 0) { return AssembleString(kData264, kLen264); } - if (strcmp(path, "third_party/wycheproof_testvectors/hkdf_sha1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.txt") == 0) { return AssembleString(kData265, kLen265); } - if (strcmp(path, "third_party/wycheproof_testvectors/hkdf_sha256_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.txt") == 0) { return AssembleString(kData266, kLen266); } - if (strcmp(path, "third_party/wycheproof_testvectors/hkdf_sha384_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp256k1_sha256_test.txt") == 0) { return AssembleString(kData267, kLen267); } - if (strcmp(path, "third_party/wycheproof_testvectors/hkdf_sha512_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp256k1_sha512_test.txt") == 0) { return AssembleString(kData268, kLen268); } - if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/eddsa_test.txt") == 0) { return AssembleString(kData269, kLen269); } - if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha224_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/hkdf_sha1_test.txt") == 0) { return AssembleString(kData270, kLen270); } - if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha256_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/hkdf_sha256_test.txt") == 0) { return AssembleString(kData271, kLen271); } - if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha384_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/hkdf_sha384_test.txt") == 0) { return AssembleString(kData272, kLen272); } - if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha512_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/hkdf_sha512_test.txt") == 0) { return AssembleString(kData273, kLen273); } - if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha512_224_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha1_test.txt") == 0) { return AssembleString(kData274, kLen274); } - if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha512_256_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha224_test.txt") == 0) { return AssembleString(kData275, kLen275); } - if (strcmp(path, "third_party/wycheproof_testvectors/kwp_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha256_test.txt") == 0) { return AssembleString(kData276, kLen276); } - if (strcmp(path, "third_party/wycheproof_testvectors/kw_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha384_test.txt") == 0) { return AssembleString(kData277, kLen277); } - if (strcmp(path, "third_party/wycheproof_testvectors/primality_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha512_test.txt") == 0) { return AssembleString(kData278, kLen278); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha1_mgf1sha1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha512_224_test.txt") == 0) { return AssembleString(kData279, kLen279); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha512_256_test.txt") == 0) { return AssembleString(kData280, kLen280); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha224_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/kwp_test.txt") == 0) { return AssembleString(kData281, kLen281); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/kw_test.txt") == 0) { return AssembleString(kData282, kLen282); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha256_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/primality_test.txt") == 0) { return AssembleString(kData283, kLen283); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha1_mgf1sha1_test.txt") == 0) { return AssembleString(kData284, kLen284); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha384_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha1_test.txt") == 0) { return AssembleString(kData285, kLen285); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha224_test.txt") == 0) { return AssembleString(kData286, kLen286); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha512_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha1_test.txt") == 0) { return AssembleString(kData287, kLen287); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha256_test.txt") == 0) { return AssembleString(kData288, kLen288); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha256_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha1_test.txt") == 0) { return AssembleString(kData289, kLen289); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha384_test.txt") == 0) { return AssembleString(kData290, kLen290); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha512_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha1_test.txt") == 0) { return AssembleString(kData291, kLen291); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha512_test.txt") == 0) { return AssembleString(kData292, kLen292); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha256_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha1_test.txt") == 0) { return AssembleString(kData293, kLen293); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha1_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha256_test.txt") == 0) { return AssembleString(kData294, kLen294); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha512_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha1_test.txt") == 0) { return AssembleString(kData295, kLen295); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_misc_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha512_test.txt") == 0) { return AssembleString(kData296, kLen296); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pkcs1_2048_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha1_test.txt") == 0) { return AssembleString(kData297, kLen297); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pkcs1_3072_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha256_test.txt") == 0) { return AssembleString(kData298, kLen298); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pkcs1_4096_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha1_test.txt") == 0) { return AssembleString(kData299, kLen299); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_2048_sha1_mgf1_20_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha512_test.txt") == 0) { return AssembleString(kData300, kLen300); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_0_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_misc_test.txt") == 0) { return AssembleString(kData301, kLen301); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_32_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pkcs1_2048_test.txt") == 0) { return AssembleString(kData302, kLen302); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_3072_sha256_mgf1_32_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pkcs1_3072_test.txt") == 0) { return AssembleString(kData303, kLen303); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_4096_sha256_mgf1_32_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pkcs1_4096_test.txt") == 0) { return AssembleString(kData304, kLen304); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_4096_sha512_mgf1_32_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_2048_sha1_mgf1_20_test.txt") == 0) { return AssembleString(kData305, kLen305); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_misc_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_0_test.txt") == 0) { return AssembleString(kData306, kLen306); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_sig_gen_misc_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_32_test.txt") == 0) { return AssembleString(kData307, kLen307); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_2048_sha224_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_3072_sha256_mgf1_32_test.txt") == 0) { return AssembleString(kData308, kLen308); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_2048_sha256_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_4096_sha256_mgf1_32_test.txt") == 0) { return AssembleString(kData309, kLen309); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_2048_sha384_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_4096_sha512_mgf1_32_test.txt") == 0) { return AssembleString(kData310, kLen310); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_2048_sha512_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_misc_test.txt") == 0) { return AssembleString(kData311, kLen311); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_3072_sha256_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_sig_gen_misc_test.txt") == 0) { return AssembleString(kData312, kLen312); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_3072_sha384_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_2048_sha224_test.txt") == 0) { return AssembleString(kData313, kLen313); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_3072_sha512_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_2048_sha256_test.txt") == 0) { return AssembleString(kData314, kLen314); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_4096_sha384_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_2048_sha384_test.txt") == 0) { return AssembleString(kData315, kLen315); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_4096_sha512_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_2048_sha512_test.txt") == 0) { return AssembleString(kData316, kLen316); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_3072_sha256_test.txt") == 0) { return AssembleString(kData317, kLen317); } - if (strcmp(path, "third_party/wycheproof_testvectors/x25519_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_3072_sha384_test.txt") == 0) { return AssembleString(kData318, kLen318); } - if (strcmp(path, "third_party/wycheproof_testvectors/xchacha20_poly1305_test.txt") == 0) { + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_3072_sha512_test.txt") == 0) { return AssembleString(kData319, kLen319); } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_4096_sha384_test.txt") == 0) { + return AssembleString(kData320, kLen320); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_4096_sha512_test.txt") == 0) { + return AssembleString(kData321, kLen321); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_test.txt") == 0) { + return AssembleString(kData322, kLen322); + } + if (strcmp(path, "third_party/wycheproof_testvectors/x25519_test.txt") == 0) { + return AssembleString(kData323, kLen323); + } + if (strcmp(path, "third_party/wycheproof_testvectors/xchacha20_poly1305_test.txt") == 0) { + return AssembleString(kData324, kLen324); + } fprintf(stderr, "File not embedded: %s.\n", path); abort(); } diff --git a/generated-src/err_data.c b/generated-src/err_data.c index 957d14637c..2e69d3f54c 100644 --- a/generated-src/err_data.c +++ b/generated-src/err_data.c @@ -76,54 +76,54 @@ const uint32_t kOpenSSLReasonValues[] = { 0xc3b00f7, 0xc3b8921, 0x10320892, - 0x10329981, - 0x1033198d, - 0x103399a6, - 0x103419b9, + 0x103299c2, + 0x103319ce, + 0x103399e7, + 0x103419fa, 0x10349064, 0x10350db0, - 0x103599cc, - 0x103619f6, - 0x10369a09, - 0x10371a28, - 0x10379a41, - 0x10381a56, - 0x10389a74, - 0x10391a83, - 0x10399a9f, - 0x103a1aba, - 0x103a9ac9, - 0x103b1ae5, - 0x103b9b00, - 0x103c1b26, + 0x10359a0d, + 0x10361a37, + 0x10369a4a, + 0x10371a69, + 0x10379a82, + 0x10381a97, + 0x10389ab5, + 0x10391ac4, + 0x10399ae0, + 0x103a1afb, + 0x103a9b0a, + 0x103b1b26, + 0x103b9b41, + 0x103c1b67, 0x103c80f7, - 0x103d1b37, - 0x103d9b4b, - 0x103e1b6a, - 0x103e9b79, - 0x103f1b90, - 0x103f9ba3, + 0x103d1b78, + 0x103d9b8c, + 0x103e1bab, + 0x103e9bba, + 0x103f1bd1, + 0x103f9be4, 0x10400d74, - 0x10409bb6, - 0x10411bd4, - 0x10419be7, - 0x10421c01, - 0x10429c11, - 0x10431c25, - 0x10439c3b, - 0x10441c53, - 0x10449c68, - 0x10451c7c, - 0x10459c8e, + 0x10409bf7, + 0x10411c15, + 0x10419c28, + 0x10421c42, + 0x10429c52, + 0x10431c66, + 0x10439c7c, + 0x10441c94, + 0x10449ca9, + 0x10451cbd, + 0x10459ccf, 0x10460635, 0x1046899a, - 0x10471ca3, - 0x10479cba, - 0x10481ccf, - 0x10489cdd, + 0x10471ce4, + 0x10479cfb, + 0x10481d10, + 0x10489d1e, 0x10490fb0, - 0x10499b17, - 0x104a19e1, + 0x10499b58, + 0x104a1a22, 0x107c1072, 0x14320d38, 0x14328d65, @@ -175,24 +175,24 @@ const uint32_t kOpenSSLReasonValues[] = { 0x18fa1201, 0x18fa9224, 0x18fb1239, - 0x203213a9, - 0x20329396, - 0x243215b7, + 0x203213ea, + 0x203293d7, + 0x243215f8, 0x243289f2, - 0x243315c9, - 0x243395d6, - 0x243415e3, - 0x243495f5, - 0x24351604, - 0x24359621, - 0x2436162e, - 0x2436963c, - 0x2437164a, - 0x24379672, - 0x2438167b, - 0x24389688, - 0x2439169b, - 0x24399658, + 0x2433160a, + 0x24339617, + 0x24341624, + 0x24349636, + 0x24351645, + 0x24359662, + 0x2436166f, + 0x2436967d, + 0x2437168b, + 0x243796b3, + 0x243816bc, + 0x243896c9, + 0x243916dc, + 0x24399699, 0x28320da4, 0x28328dbc, 0x28330d74, @@ -202,52 +202,52 @@ const uint32_t kOpenSSLReasonValues[] = { 0x283500f7, 0x28358d52, 0x2836099a, - 0x2c32370c, - 0x2c3296b2, - 0x2c33371a, - 0x2c33b72c, - 0x2c343740, - 0x2c34b752, - 0x2c35376d, - 0x2c35b77f, - 0x2c3637af, + 0x2c32374d, + 0x2c3296f3, + 0x2c33375b, + 0x2c33b76d, + 0x2c343781, + 0x2c34b793, + 0x2c3537ae, + 0x2c35b7c0, + 0x2c3637f0, 0x2c36833a, - 0x2c3737bc, - 0x2c37b7e8, - 0x2c383826, - 0x2c38b83d, - 0x2c39385b, - 0x2c39b86b, - 0x2c3a387d, - 0x2c3ab891, - 0x2c3b38a2, - 0x2c3bb8c1, - 0x2c3c16c4, - 0x2c3c96da, - 0x2c3d3906, - 0x2c3d96f3, - 0x2c3e3930, - 0x2c3eb93e, - 0x2c3f3956, - 0x2c3fb96e, - 0x2c403998, - 0x2c4093a9, - 0x2c4139a9, - 0x2c41b9cf, + 0x2c3737fd, + 0x2c37b829, + 0x2c383867, + 0x2c38b87e, + 0x2c39389c, + 0x2c39b8ac, + 0x2c3a38be, + 0x2c3ab8d2, + 0x2c3b38e3, + 0x2c3bb902, + 0x2c3c1705, + 0x2c3c971b, + 0x2c3d3947, + 0x2c3d9734, + 0x2c3e3971, + 0x2c3eb97f, + 0x2c3f3997, + 0x2c3fb9af, + 0x2c4039d9, + 0x2c4093ea, + 0x2c4139ea, + 0x2c41ba10, 0x2c42136f, - 0x2c42b9e0, + 0x2c42ba21, 0x2c43076d, - 0x2c43b8b3, - 0x2c4437fb, - 0x2c44b97b, - 0x2c453792, - 0x2c45b7ce, - 0x2c46384b, - 0x2c46b8d5, - 0x2c4738ea, - 0x2c47b923, - 0x2c48380d, - 0x2c48b9bc, + 0x2c43b8f4, + 0x2c44383c, + 0x2c44b9bc, + 0x2c4537d3, + 0x2c45b80f, + 0x2c46388c, + 0x2c46b916, + 0x2c47392b, + 0x2c47b964, + 0x2c48384e, + 0x2c48b9fd, 0x30320000, 0x30328015, 0x3033001f, @@ -387,269 +387,269 @@ const uint32_t kOpenSSLReasonValues[] = { 0x3c418ea4, 0x3c420fb0, 0x3c428f3a, - 0x40321d6f, - 0x40329d85, - 0x40331db3, - 0x40339dbd, - 0x40341dd4, - 0x40349df2, - 0x40351e02, - 0x40359e14, - 0x40361e21, - 0x40369e2d, - 0x40371e42, - 0x40379e7b, - 0x40381e86, - 0x40389e98, + 0x40321db0, + 0x40329dc6, + 0x40331df4, + 0x40339dfe, + 0x40341e15, + 0x40349e33, + 0x40351e43, + 0x40359e55, + 0x40361e62, + 0x40369e6e, + 0x40371e83, + 0x40379ebc, + 0x40381ec7, + 0x40389ed9, 0x40391064, - 0x40399ea8, - 0x403a1ebb, - 0x403a9edc, - 0x403b1eed, - 0x403b9efd, + 0x40399ee9, + 0x403a1efc, + 0x403a9f1d, + 0x403b1f2e, + 0x403b9f3e, 0x403c0071, 0x403c8090, - 0x403d1f5e, - 0x403d9f74, - 0x403e1f83, - 0x403e9fbb, - 0x403f1fd5, - 0x403f9ffd, - 0x40402012, - 0x4040a026, - 0x40412061, - 0x4041a07c, - 0x40422095, - 0x4042a0a8, - 0x404320bc, - 0x4043a0ea, - 0x40442101, + 0x403d1f9f, + 0x403d9fb5, + 0x403e1fc4, + 0x403e9ffc, + 0x403f2016, + 0x403fa03e, + 0x40402053, + 0x4040a067, + 0x404120a2, + 0x4041a0bd, + 0x404220d6, + 0x4042a0e9, + 0x404320fd, + 0x4043a12b, + 0x40442142, 0x404480b9, - 0x40452116, - 0x4045a128, - 0x4046214c, - 0x4046a16c, - 0x4047217a, - 0x4047a1a1, - 0x40482212, - 0x4048a2cc, - 0x404922e3, - 0x4049a2fd, - 0x404a2314, - 0x404aa332, - 0x404b234a, - 0x404ba377, - 0x404c238d, - 0x404ca39f, - 0x404d23c0, - 0x404da3f9, - 0x404e240d, - 0x404ea41a, - 0x404f24cb, - 0x404fa541, - 0x405025b0, - 0x4050a5c4, - 0x405125f7, - 0x40522607, - 0x4052a62b, - 0x40532643, - 0x4053a656, - 0x4054266b, - 0x4054a68e, - 0x405526b9, - 0x4055a6f6, - 0x4056271b, - 0x4056a734, - 0x4057274c, - 0x4057a75f, - 0x40582774, - 0x4058a79b, - 0x405927ca, - 0x4059a7f7, - 0x405aa80b, - 0x405b2823, - 0x405ba834, - 0x405c2847, - 0x405ca886, - 0x405d2893, - 0x405da8b8, - 0x405e28f6, + 0x40452157, + 0x4045a169, + 0x4046218d, + 0x4046a1ad, + 0x404721bb, + 0x4047a1e2, + 0x40482253, + 0x4048a30d, + 0x40492324, + 0x4049a33e, + 0x404a2355, + 0x404aa373, + 0x404b238b, + 0x404ba3b8, + 0x404c23ce, + 0x404ca3e0, + 0x404d2401, + 0x404da43a, + 0x404e244e, + 0x404ea45b, + 0x404f250c, + 0x404fa582, + 0x405025f1, + 0x4050a605, + 0x40512638, + 0x40522648, + 0x4052a66c, + 0x40532684, + 0x4053a697, + 0x405426ac, + 0x4054a6cf, + 0x405526fa, + 0x4055a737, + 0x4056275c, + 0x4056a775, + 0x4057278d, + 0x4057a7a0, + 0x405827b5, + 0x4058a7dc, + 0x4059280b, + 0x4059a838, + 0x405aa84c, + 0x405b2864, + 0x405ba875, + 0x405c2888, + 0x405ca8c7, + 0x405d28d4, + 0x405da8f9, + 0x405e2937, 0x405e8b2d, - 0x405f2917, - 0x405fa924, - 0x40602932, - 0x4060a954, - 0x406129b5, - 0x4061a9ed, - 0x40622a04, - 0x4062aa15, - 0x40632a62, - 0x4063aa77, - 0x40642a8e, - 0x4064aaba, - 0x40652ad5, - 0x4065aaec, - 0x40662b04, - 0x4066ab2e, - 0x40672b59, - 0x4067ac5c, - 0x40682ca4, - 0x4068acc5, - 0x40692cf7, - 0x4069ad25, - 0x406a2d46, - 0x406aad66, - 0x406b2eee, - 0x406baf11, - 0x406c2f27, - 0x406cb231, - 0x406d3260, - 0x406db288, - 0x406e32b6, - 0x406eb303, - 0x406f335c, - 0x406fb394, - 0x407033a7, - 0x4070b3c4, + 0x405f2958, + 0x405fa965, + 0x40602973, + 0x4060a995, + 0x406129f6, + 0x4061aa2e, + 0x40622a45, + 0x4062aa56, + 0x40632aa3, + 0x4063aab8, + 0x40642acf, + 0x4064aafb, + 0x40652b16, + 0x4065ab2d, + 0x40662b45, + 0x4066ab6f, + 0x40672b9a, + 0x4067ac9d, + 0x40682ce5, + 0x4068ad06, + 0x40692d38, + 0x4069ad66, + 0x406a2d87, + 0x406aada7, + 0x406b2f2f, + 0x406baf52, + 0x406c2f68, + 0x406cb272, + 0x406d32a1, + 0x406db2c9, + 0x406e32f7, + 0x406eb344, + 0x406f339d, + 0x406fb3d5, + 0x407033e8, + 0x4070b405, 0x4071084d, - 0x4071b3d6, - 0x407233e9, - 0x4072b41f, - 0x40733437, - 0x407398dc, - 0x4074344b, - 0x4074b465, - 0x40753476, - 0x4075b48a, - 0x40763498, - 0x40769688, - 0x407734bd, - 0x4077b4fd, - 0x40783518, - 0x4078b551, - 0x40793568, - 0x4079b57e, - 0x407a35aa, - 0x407ab5bd, - 0x407b35d2, - 0x407bb5e4, - 0x407c3615, - 0x407cb61e, - 0x407d2ce0, - 0x407da569, - 0x407e352d, - 0x407ea7ab, - 0x407f218e, - 0x407fa361, - 0x408024db, - 0x4080a1b6, - 0x40812619, - 0x4081a468, - 0x408232a1, - 0x40829f09, - 0x40832786, - 0x4083aa9f, - 0x408421ca, - 0x4084a7e3, - 0x40852858, - 0x4085a97c, - 0x408628d8, - 0x4086a583, - 0x408732e7, - 0x4087a9ca, - 0x40881f47, - 0x4088ac6f, - 0x40891f96, - 0x40899f23, - 0x408a2f5f, - 0x408a9cf4, - 0x408b35f9, - 0x408bb371, - 0x408c2868, - 0x408c9d2c, - 0x408d22b2, - 0x408da1fc, - 0x408e23e2, - 0x408ea6d6, - 0x408f2c83, - 0x408fa998, - 0x40902b7a, - 0x4090a8aa, - 0x40912f47, - 0x40919d52, - 0x40921fe3, - 0x4092b322, - 0x40933402, - 0x4093a594, - 0x409421de, - 0x4094af78, - 0x40952a26, - 0x4095b58a, - 0x409632ce, - 0x4096a4f4, - 0x409725df, - 0x4097a431, - 0x40982043, - 0x4098aa3a, - 0x4099333e, - 0x4099a703, - 0x409a269c, - 0x409a9d10, - 0x409b2238, - 0x409ba263, - 0x409c34df, - 0x409ca28b, - 0x409d24b0, - 0x409da47e, - 0x409e20d4, - 0x409ea529, - 0x409f2511, - 0x409fa22b, - 0x40a02551, - 0x40a0a44b, - 0x40a12499, - 0x40fa2c42, - 0x40faab9e, - 0x40fb2c21, - 0x40fbabb8, - 0x40fcac00, - 0x40fd2bd9, - 0x40fd9e54, - 0x40fe1e68, - 0x41f42e19, - 0x41f92eab, - 0x41fe2d9e, - 0x41feb054, - 0x41ff3182, - 0x42032e32, - 0x42082e54, - 0x4208ae90, - 0x42092d82, - 0x4209aeca, - 0x420a2dd9, - 0x420aadb9, - 0x420b2df9, - 0x420bae72, - 0x420c319e, - 0x420caf88, - 0x420d303b, - 0x420db072, - 0x421230a5, - 0x42173165, - 0x4217b0e7, - 0x421c3109, - 0x421f30c4, - 0x42213216, - 0x42263148, - 0x422b31f4, - 0x422bb016, - 0x422c31d6, - 0x422cafc9, - 0x422d2fa2, - 0x422db1b5, - 0x422e2ff5, - 0x42303124, - 0x4230b08c, + 0x4071b417, + 0x4072342a, + 0x4072b460, + 0x40733478, + 0x4073991d, + 0x4074348c, + 0x4074b4a6, + 0x407534b7, + 0x4075b4cb, + 0x407634d9, + 0x407696c9, + 0x407734fe, + 0x4077b53e, + 0x40783559, + 0x4078b592, + 0x407935a9, + 0x4079b5bf, + 0x407a35eb, + 0x407ab5fe, + 0x407b3613, + 0x407bb625, + 0x407c3656, + 0x407cb65f, + 0x407d2d21, + 0x407da5aa, + 0x407e356e, + 0x407ea7ec, + 0x407f21cf, + 0x407fa3a2, + 0x4080251c, + 0x4080a1f7, + 0x4081265a, + 0x4081a4a9, + 0x408232e2, + 0x40829f4a, + 0x408327c7, + 0x4083aae0, + 0x4084220b, + 0x4084a824, + 0x40852899, + 0x4085a9bd, + 0x40862919, + 0x4086a5c4, + 0x40873328, + 0x4087aa0b, + 0x40881f88, + 0x4088acb0, + 0x40891fd7, + 0x40899f64, + 0x408a2fa0, + 0x408a9d35, + 0x408b363a, + 0x408bb3b2, + 0x408c28a9, + 0x408c9d6d, + 0x408d22f3, + 0x408da23d, + 0x408e2423, + 0x408ea717, + 0x408f2cc4, + 0x408fa9d9, + 0x40902bbb, + 0x4090a8eb, + 0x40912f88, + 0x40919d93, + 0x40922024, + 0x4092b363, + 0x40933443, + 0x4093a5d5, + 0x4094221f, + 0x4094afb9, + 0x40952a67, + 0x4095b5cb, + 0x4096330f, + 0x4096a535, + 0x40972620, + 0x4097a472, + 0x40982084, + 0x4098aa7b, + 0x4099337f, + 0x4099a744, + 0x409a26dd, + 0x409a9d51, + 0x409b2279, + 0x409ba2a4, + 0x409c3520, + 0x409ca2cc, + 0x409d24f1, + 0x409da4bf, + 0x409e2115, + 0x409ea56a, + 0x409f2552, + 0x409fa26c, + 0x40a02592, + 0x40a0a48c, + 0x40a124da, + 0x40fa2c83, + 0x40faabdf, + 0x40fb2c62, + 0x40fbabf9, + 0x40fcac41, + 0x40fd2c1a, + 0x40fd9e95, + 0x40fe1ea9, + 0x41f42e5a, + 0x41f92eec, + 0x41fe2ddf, + 0x41feb095, + 0x41ff31c3, + 0x42032e73, + 0x42082e95, + 0x4208aed1, + 0x42092dc3, + 0x4209af0b, + 0x420a2e1a, + 0x420aadfa, + 0x420b2e3a, + 0x420baeb3, + 0x420c31df, + 0x420cafc9, + 0x420d307c, + 0x420db0b3, + 0x421230e6, + 0x421731a6, + 0x4217b128, + 0x421c314a, + 0x421f3105, + 0x42213257, + 0x42263189, + 0x422b3235, + 0x422bb057, + 0x422c3217, + 0x422cb00a, + 0x422d2fe3, + 0x422db1f6, + 0x422e3036, + 0x42303165, + 0x4230b0cd, 0x42310b85, 0x44320778, 0x44328787, @@ -668,133 +668,133 @@ const uint32_t kOpenSSLReasonValues[] = { 0x4439084d, 0x4439885b, 0x443a086e, - 0x483216b2, - 0x483296c4, - 0x483316da, - 0x483396f3, - 0x4c321730, - 0x4c329740, - 0x4c331753, - 0x4c339773, + 0x483216f3, + 0x48329705, + 0x4833171b, + 0x48339734, + 0x4c321771, + 0x4c329781, + 0x4c331794, + 0x4c3397b4, 0x4c3400b9, 0x4c3480f7, - 0x4c35177f, - 0x4c35978d, - 0x4c3617a9, - 0x4c3697cf, - 0x4c3717de, - 0x4c3797ec, - 0x4c381801, - 0x4c38980d, - 0x4c39182d, - 0x4c399857, - 0x4c3a1870, - 0x4c3a9889, + 0x4c3517c0, + 0x4c3597ce, + 0x4c3617ea, + 0x4c369810, + 0x4c37181f, + 0x4c37982d, + 0x4c381842, + 0x4c38984e, + 0x4c39186e, + 0x4c399898, + 0x4c3a18b1, + 0x4c3a98ca, 0x4c3b0635, - 0x4c3b98a2, - 0x4c3c18b4, - 0x4c3c98c3, - 0x4c3d18dc, + 0x4c3b98e3, + 0x4c3c18f5, + 0x4c3c9904, + 0x4c3d191d, 0x4c3d8d97, - 0x4c3e1949, - 0x4c3e98eb, - 0x4c3f196b, - 0x4c3f9688, - 0x4c401901, - 0x4c40971c, - 0x4c411939, - 0x4c4197bc, - 0x4c421925, - 0x4c429704, - 0x503239f2, - 0x5032ba01, - 0x50333a0c, - 0x5033ba1c, - 0x50343a35, - 0x5034ba4f, - 0x50353a5d, - 0x5035ba73, - 0x50363a85, - 0x5036ba9b, - 0x50373ab4, - 0x5037bac7, - 0x50383adf, - 0x5038baf0, - 0x50393b05, - 0x5039bb19, - 0x503a3b39, - 0x503abb4f, - 0x503b3b67, - 0x503bbb79, - 0x503c3b95, - 0x503cbbac, - 0x503d3bc5, - 0x503dbbdb, - 0x503e3be8, - 0x503ebbfe, - 0x503f3c10, + 0x4c3e198a, + 0x4c3e992c, + 0x4c3f19ac, + 0x4c3f96c9, + 0x4c401942, + 0x4c40975d, + 0x4c41197a, + 0x4c4197fd, + 0x4c421966, + 0x4c429745, + 0x50323a33, + 0x5032ba42, + 0x50333a4d, + 0x5033ba5d, + 0x50343a76, + 0x5034ba90, + 0x50353a9e, + 0x5035bab4, + 0x50363ac6, + 0x5036badc, + 0x50373af5, + 0x5037bb08, + 0x50383b20, + 0x5038bb31, + 0x50393b46, + 0x5039bb5a, + 0x503a3b7a, + 0x503abb90, + 0x503b3ba8, + 0x503bbbba, + 0x503c3bd6, + 0x503cbbed, + 0x503d3c06, + 0x503dbc1c, + 0x503e3c29, + 0x503ebc3f, + 0x503f3c51, 0x503f83b3, - 0x50403c23, - 0x5040bc33, - 0x50413c4d, - 0x5041bc5c, - 0x50423c76, - 0x5042bc93, - 0x50433ca3, - 0x5043bcb3, - 0x50443cd0, + 0x50403c64, + 0x5040bc74, + 0x50413c8e, + 0x5041bc9d, + 0x50423cb7, + 0x5042bcd4, + 0x50433ce4, + 0x5043bcf4, + 0x50443d11, 0x50448469, - 0x50453ce4, - 0x5045bd02, - 0x50463d15, - 0x5046bd2b, - 0x50473d3d, - 0x5047bd52, - 0x50483d78, - 0x5048bd86, - 0x50493d99, - 0x5049bdae, - 0x504a3dc4, - 0x504abdd4, - 0x504b3df4, - 0x504bbe07, - 0x504c3e2a, - 0x504cbe58, - 0x504d3e85, - 0x504dbea2, - 0x504e3ebd, - 0x504ebed9, - 0x504f3eeb, - 0x504fbf02, - 0x50503f11, + 0x50453d25, + 0x5045bd43, + 0x50463d56, + 0x5046bd6c, + 0x50473d7e, + 0x5047bd93, + 0x50483db9, + 0x5048bdc7, + 0x50493dda, + 0x5049bdef, + 0x504a3e05, + 0x504abe15, + 0x504b3e35, + 0x504bbe48, + 0x504c3e6b, + 0x504cbe99, + 0x504d3ec6, + 0x504dbee3, + 0x504e3efe, + 0x504ebf1a, + 0x504f3f2c, + 0x504fbf43, + 0x50503f52, 0x50508729, - 0x50513f24, - 0x5051bcc2, - 0x50523e6a, + 0x50513f65, + 0x5051bd03, + 0x50523eab, 0x583210b7, - 0x5c3293b5, - 0x5c3313ce, - 0x5c33941f, - 0x5c341456, - 0x5c349469, - 0x5c361482, - 0x5c3714c2, - 0x5c3794e9, - 0x5c38150e, - 0x5c399522, - 0x5c3a953e, - 0x5c3b1550, - 0x5c3b95a0, - 0x5c3c13a9, - 0x5c3c940d, - 0x5c3d13d9, - 0x5c3d93f3, - 0x5c3e1439, - 0x5c3e956d, - 0x5c3f157c, - 0x5c3f9591, - 0x5c411493, - 0x5c4194a1, + 0x5c3293f6, + 0x5c33140f, + 0x5c339460, + 0x5c341497, + 0x5c3494aa, + 0x5c3614c3, + 0x5c371503, + 0x5c37952a, + 0x5c38154f, + 0x5c399563, + 0x5c3a957f, + 0x5c3b1591, + 0x5c3b95e1, + 0x5c3c13ea, + 0x5c3c944e, + 0x5c3d141a, + 0x5c3d9434, + 0x5c3e147a, + 0x5c3e95ae, + 0x5c3f15bd, + 0x5c3f95d2, + 0x5c4114d4, + 0x5c4194e2, 0x68321064, 0x68328dbc, 0x68330dcf, @@ -807,6 +807,10 @@ const uint32_t kOpenSSLReasonValues[] = { 0x6c328d86, 0x6c331035, 0x6c33904e, + 0x70320dbc, + 0x70330090, + 0x703393b1, + 0x70341396, 0x74320a95, 0x743280b9, 0x74330d97, @@ -844,21 +848,21 @@ const uint32_t kOpenSSLReasonValues[] = { 0x78478b85, 0x78480b42, 0x7c321385, - 0x803217cf, + 0x80321810, 0x80328090, - 0x803336db, + 0x8033371c, 0x803380b9, - 0x803436ea, - 0x8034b652, - 0x80353670, - 0x8035b6fe, - 0x803636b2, - 0x8036b661, - 0x803736a4, - 0x8037b63f, - 0x803836c5, - 0x8038b681, - 0x80393696, + 0x8034372b, + 0x8034b693, + 0x803536b1, + 0x8035b73f, + 0x803636f3, + 0x8036b6a2, + 0x803736e5, + 0x8037b680, + 0x80383706, + 0x8038b6c2, + 0x803936d7, }; const size_t kOpenSSLReasonValuesLen = sizeof(kOpenSSLReasonValues) / sizeof(kOpenSSLReasonValues[0]); @@ -1120,6 +1124,8 @@ const char kOpenSSLReasonStringData[] = "UNKNOWN_PUBLIC_KEY_TYPE\0" "UNSUPPORTED_ALGORITHM\0" "OUTPUT_TOO_LARGE\0" + "NOT_CALLED_JUST_AFTER_INIT\0" + "SET_PRECOMPUTED_KEY_EXPORT_NOT_CALLED\0" "INVALID_OID_STRING\0" "UNKNOWN_NID\0" "CERTIFICATE_VERIFY_ERROR\0" diff --git a/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S b/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S index 2bc4d332c9..b3588047d8 100644 --- a/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S +++ b/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S @@ -312,17 +312,13 @@ _aesv8_gcm_8x_enc_128: L128_enc_main_loop: //main loop start rev32 v5.16b, v30.16b //CTR block 8k+13 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 add v30.4s, v30.4s, v31.4s //CTR block 8k+13 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev64 v8.16b, v8.16b //GHASH block 8k ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev32 v6.16b, v30.16b //CTR block 8k+14 add v30.4s, v30.4s, v31.4s //CTR block 8k+14 @@ -353,9 +349,7 @@ L128_enc_main_loop: //main loop start eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h3l | h3h - ext v25.16b, v25.16b, v25.16b, #8 aese v5.16b, v26.16b aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 @@ -450,9 +444,7 @@ L128_enc_main_loop: //main loop start aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h1l | h1h - ext v22.16b, v22.16b, v22.16b, #8 pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low @@ -666,15 +658,11 @@ L128_enc_main_loop: //main loop start L128_enc_prepretail: //PREPRETAIL rev32 v5.16b, v30.16b //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v8.16b, v8.16b //GHASH block 8k rev64 v9.16b, v9.16b //GHASH block 8k+1 @@ -752,9 +740,7 @@ L128_enc_prepretail: //PREPRETAIL pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 ldp q28, q26, [x11, #32] //load rk2, rk3 aese v5.16b, v27.16b @@ -806,9 +792,7 @@ L128_enc_prepretail: //PREPRETAIL ldp q27, q28, [x11, #64] //load rk4, rk5 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h1l | h1h - ext v22.16b, v22.16b, v22.16b, #8 trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid aese v0.16b, v26.16b aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 @@ -986,16 +970,12 @@ L128_enc_tail: //TAIL mov v29.16b, v27.16b ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 .long 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 cmp x5, #112 b.gt L128_enc_blocks_more_than_7 @@ -1162,7 +1142,6 @@ L128_enc_blocks_more_than_3: //blocks left > 3 st1 { v9.16b}, [x2], #16 //AES final-3 block - store result ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v9.16b //GHASH final-3 block @@ -1199,7 +1178,6 @@ L128_enc_blocks_more_than_2: //blocks left > 2 ins v27.d[0], v8.d[1] //GHASH final-2 block - mid ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 movi v16.8b, #0 //supress further partial tag feed in eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid @@ -1219,7 +1197,6 @@ L128_enc_blocks_more_than_1: //blocks left > 1 st1 { v9.16b}, [x2], #16 //AES final-1 block - store result ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v8.16b, v9.16b //GHASH final-1 block ldr q9, [x0], #16 //AES final block - load plaintext @@ -1281,7 +1258,6 @@ L128_enc_blocks_less_than_1: //blocks left <= 1 eor v16.8b, v16.8b, v8.8b //GHASH final block - mid ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid @@ -1619,9 +1595,7 @@ _aesv8_gcm_8x_dec_128: L128_dec_main_loop: //main loop start ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev64 v8.16b, v8.16b //GHASH block 8k @@ -1629,9 +1603,7 @@ L128_dec_main_loop: //main loop start rev64 v14.16b, v14.16b //GHASH block 8k+6 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 eor v8.16b, v8.16b, v19.16b //PRE 1 rev32 v5.16b, v30.16b //CTR block 8k+13 @@ -1697,9 +1669,7 @@ L128_dec_main_loop: //main loop start pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid aese v6.16b, v27.16b aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 @@ -1727,9 +1697,7 @@ L128_dec_main_loop: //main loop start aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid aese v1.16b, v28.16b @@ -1977,17 +1945,13 @@ L128_dec_prepretail: //PREPRETAIL ldp q26, q27, [x11, #0] //load rk0, rk1 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 eor v8.16b, v8.16b, v19.16b //PRE 1 rev64 v9.16b, v9.16b //GHASH block 8k+1 add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v13.16b, v13.16b //GHASH block 8k+5 rev64 v12.16b, v12.16b //GHASH block 8k+4 @@ -2060,9 +2024,7 @@ L128_dec_prepretail: //PREPRETAIL pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 aese v1.16b, v27.16b aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid @@ -2075,9 +2037,7 @@ L128_dec_prepretail: //PREPRETAIL aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 .long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid aese v0.16b, v28.16b @@ -2283,16 +2243,12 @@ L128_dec_tail: //TAIL cmp x5, #112 ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 .long 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result b.gt L128_dec_blocks_more_than_7 @@ -2461,7 +2417,6 @@ L128_dec_blocks_more_than_3: //blocks left > 3 ins v27.d[0], v8.d[1] //GHASH final-3 block - mid ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 ldr q24, [x6, #64] //load h4k | h3k eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid @@ -2488,7 +2443,6 @@ L128_dec_blocks_more_than_2: //blocks left > 2 eor v8.16b, v8.16b, v16.16b //feed in partial tag ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 movi v16.8b, #0 //supress further partial tag feed in ins v27.d[0], v8.d[1] //GHASH final-2 block - mid @@ -2513,7 +2467,6 @@ L128_dec_blocks_more_than_1: //blocks left > 1 rev64 v8.16b, v9.16b //GHASH final-1 block ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -2560,7 +2513,6 @@ L128_dec_blocks_less_than_1: //blocks left <= 1 mov v0.d[0], x13 //ctr0b is mask for last block ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits @@ -2963,16 +2915,12 @@ L192_enc_main_loop: //main loop start rev32 v5.16b, v30.16b //CTR block 8k+13 add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 rev64 v8.16b, v8.16b //GHASH block 8k ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev32 v6.16b, v30.16b //CTR block 8k+14 @@ -3074,9 +3022,7 @@ L192_enc_main_loop: //main loop start aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid @@ -3122,9 +3068,7 @@ L192_enc_main_loop: //main loop start aese v4.16b, v28.16b aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 ldp q26, q27, [x11, #96] //load rk6, rk7 aese v2.16b, v28.16b @@ -3351,9 +3295,7 @@ L192_enc_prepretail: //PREPRETAIL add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v8.16b //GHASH block 8k ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 @@ -3365,9 +3307,7 @@ L192_enc_prepretail: //PREPRETAIL rev64 v11.16b, v11.16b //GHASH block 8k+3 rev64 v10.16b, v10.16b //GHASH block 8k+2 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 eor v8.16b, v8.16b, v19.16b //PRE 1 rev32 v7.16b, v30.16b //CTR block 8k+15 @@ -3475,17 +3415,13 @@ L192_enc_prepretail: //PREPRETAIL aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 aese v3.16b, v26.16b aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 aese v4.16b, v26.16b aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) @@ -3695,19 +3631,15 @@ L192_enc_prepretail: //PREPRETAIL L192_enc_tail: //TAIL ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process ldr q8, [x0], #16 //AES block 8k+8 - l3ad plaintext ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 mov v29.16b, v26.16b ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 cmp x5, #112 .long 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result @@ -3883,7 +3815,6 @@ L192_enc_blocks_more_than_3: //blocks left > 3 ldr q9, [x0], #16 //AES final-2 block - load plaintext ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 ins v27.d[0], v8.d[1] //GHASH final-3 block - mid @@ -3906,7 +3837,6 @@ L192_enc_blocks_more_than_2: //blocks left > 2 rev64 v8.16b, v9.16b //GHASH final-2 block ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -3929,7 +3859,6 @@ L192_enc_blocks_more_than_2: //blocks left > 2 L192_enc_blocks_more_than_1: //blocks left > 1 ldr q22, [x6, #32] //load h1l | h1h - ext v22.16b, v22.16b, v22.16b, #8 st1 { v9.16b}, [x2], #16 //AES final-1 block - store result rev64 v8.16b, v9.16b //GHASH final-1 block @@ -3975,7 +3904,6 @@ L192_enc_blocks_less_than_1: //blocks left <= 1 mov v0.d[1], x14 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored mov v0.d[0], x13 //ctr0b is mask for last block @@ -4380,9 +4308,7 @@ L192_dec_main_loop: //main loop start add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v12.16b, v12.16b //GHASH block 8k+4 rev64 v11.16b, v11.16b //GHASH block 8k+3 @@ -4420,9 +4346,7 @@ L192_dec_main_loop: //main loop start aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 aese v0.16b, v27.16b aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 @@ -4477,9 +4401,7 @@ L192_dec_main_loop: //main loop start aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 aese v5.16b, v28.16b aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 aese v2.16b, v26.16b @@ -4538,9 +4460,7 @@ L192_dec_main_loop: //main loop start aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 aese v3.16b, v28.16b aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 aese v5.16b, v28.16b @@ -4765,9 +4685,7 @@ L192_dec_prepretail: //PREPRETAIL add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v8.16b //GHASH block 8k ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 @@ -4780,9 +4698,7 @@ L192_dec_prepretail: //PREPRETAIL rev64 v9.16b, v9.16b //GHASH block 8k+1 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev32 v7.16b, v30.16b //CTR block 8k+15 aese v0.16b, v26.16b @@ -4889,16 +4805,12 @@ L192_dec_prepretail: //PREPRETAIL aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid aese v2.16b, v26.16b aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 @@ -5111,17 +5023,13 @@ L192_dec_tail: //TAIL sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 mov v29.16b, v26.16b ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag .long 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result @@ -5283,7 +5191,6 @@ L192_dec_blocks_more_than_4: //blocks left > 4 L192_dec_blocks_more_than_3: //blocks left > 3 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v9.16b //GHASH final-3 block ldr q9, [x0], #16 //AES final-2 block - load ciphertext @@ -5312,7 +5219,6 @@ L192_dec_blocks_more_than_2: //blocks left > 2 rev64 v8.16b, v9.16b //GHASH final-2 block ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -5339,7 +5245,6 @@ L192_dec_blocks_more_than_1: //blocks left > 1 rev64 v8.16b, v9.16b //GHASH final-1 block ldr q9, [x0], #16 //AES final block - load ciphertext ldr q22, [x6, #32] //load h1l | h1h - ext v22.16b, v22.16b, v22.16b, #8 eor v8.16b, v8.16b, v16.16b //feed in partial tag movi v16.8b, #0 //supress further partial tag feed in @@ -5383,7 +5288,6 @@ L192_dec_blocks_less_than_1: //blocks left <= 1 csel x13, x8, x7, lt csel x14, x7, xzr, lt ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 mov v0.d[1], x14 ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored @@ -5825,9 +5729,7 @@ L256_enc_main_loop: //main loop start rev64 v11.16b, v11.16b //GHASH block 8k+3 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev32 v6.16b, v30.16b //CTR block 8k+14 @@ -5837,9 +5739,7 @@ L256_enc_main_loop: //main loop start rev64 v12.16b, v12.16b //GHASH block 8k+4 ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 aese v3.16b, v26.16b aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 @@ -5940,9 +5840,7 @@ L256_enc_main_loop: //main loop start pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid .long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high @@ -6026,9 +5924,7 @@ L256_enc_main_loop: //main loop start aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 aese v2.16b, v27.16b aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 .long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid @@ -6290,16 +6186,12 @@ L256_enc_prepretail: //PREPRETAIL aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 aese v2.16b, v27.16b aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 aese v0.16b, v27.16b aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 aese v5.16b, v27.16b @@ -6415,9 +6307,7 @@ L256_enc_prepretail: //PREPRETAIL ldp q26, q27, [x11, #96] //load rk6, rk7 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid @@ -6459,9 +6349,7 @@ L256_enc_prepretail: //PREPRETAIL pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 ldp q28, q26, [x11, #128] //load rk8, rk9 aese v1.16b, v27.16b @@ -6635,18 +6523,14 @@ L256_enc_prepretail: //PREPRETAIL L256_enc_tail: //TAIL ldp q24, q25, [x6, #160] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process ldr q8, [x0], #16 //AES block 8k+8 - load plaintext ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 mov v29.16b, v28.16b cmp x5, #112 @@ -6816,7 +6700,6 @@ L256_enc_blocks_more_than_3: //blocks left > 3 st1 { v9.16b}, [x2], #16 //AES final-3 block - store result ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v9.16b //GHASH final-3 block eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -6842,7 +6725,6 @@ L256_enc_blocks_more_than_3: //blocks left > 3 L256_enc_blocks_more_than_2: //blocks left > 2 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 st1 { v9.16b}, [x2], #16 //AES final-2 block - store result @@ -6872,7 +6754,6 @@ L256_enc_blocks_more_than_1: //blocks left > 1 st1 { v9.16b}, [x2], #16 //AES final-1 block - store result ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v8.16b, v9.16b //GHASH final-1 block ldr q9, [x0], #16 //AES final block - load plaintext @@ -6916,7 +6797,6 @@ L256_enc_blocks_less_than_1: //blocks left <= 1 mov v0.d[0], x13 //ctr0b is mask for last block ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored mov v0.d[1], x14 @@ -7355,9 +7235,7 @@ L256_dec_main_loop: //main loop start rev64 v9.16b, v9.16b //GHASH block 8k+1 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev32 v6.16b, v30.16b //CTR block 8k+14 add v30.4s, v30.4s, v31.4s //CTR block 8k+14 @@ -7392,9 +7270,7 @@ L256_dec_main_loop: //main loop start eor v8.16b, v8.16b, v19.16b //PRE 1 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 aese v6.16b, v27.16b aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 @@ -7547,9 +7423,7 @@ L256_dec_main_loop: //main loop start .long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v14.16b, v14.16b //GHASH block 8k+6 eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid @@ -7560,9 +7434,7 @@ L256_dec_main_loop: //main loop start ldp q28, q26, [x11, #128] //load rk8, rk9 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 .long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid aese v7.16b, v27.16b aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 @@ -7790,17 +7662,13 @@ L256_dec_prepretail: //PREPRETAIL ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev32 v7.16b, v30.16b //CTR block 8k+15 rev64 v10.16b, v10.16b //GHASH block 8k+2 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 aese v0.16b, v26.16b aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 @@ -7915,9 +7783,7 @@ L256_dec_prepretail: //PREPRETAIL .long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 aese v7.16b, v27.16b aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 @@ -7959,9 +7825,7 @@ L256_dec_prepretail: //PREPRETAIL ldp q26, q27, [x11, #96] //load rk6, rk7 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v15.16b, v15.16b //GHASH block 8k+7 rev64 v13.16b, v13.16b //GHASH block 8k+5 @@ -8173,16 +8037,12 @@ L256_dec_tail: //TAIL ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 mov v29.16b, v28.16b ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 .long 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 b.gt L256_dec_blocks_more_than_7 mov v7.16b, v6.16b @@ -8341,7 +8201,6 @@ L256_dec_blocks_more_than_4: //blocks left > 4 L256_dec_blocks_more_than_3: //blocks left > 3 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v9.16b //GHASH final-3 block eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -8371,7 +8230,6 @@ L256_dec_blocks_more_than_2: //blocks left > 2 rev64 v8.16b, v9.16b //GHASH final-2 block ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q9, [x0], #16 //AES final-1 block - load ciphertext eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -8399,7 +8257,6 @@ L256_dec_blocks_more_than_1: //blocks left > 1 ins v27.d[0], v8.d[1] //GHASH final-1 block - mid ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid ldr q9, [x0], #16 //AES final block - load ciphertext @@ -8447,7 +8304,6 @@ L256_dec_blocks_less_than_1: //blocks left <= 1 and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing rev64 v8.16b, v9.16b //GHASH final block diff --git a/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S b/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S index aac8e5077d..42c006d652 100644 --- a/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S +++ b/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S @@ -83,7 +83,6 @@ _aes_gcm_enc_kernel: aese v1.16b, v19.16b aesmc v1.16b, v1.16b // AES block 1 - round 1 ldr q14, [x6, #48] // load h3l | h3h - ext v14.16b, v14.16b, v14.16b, #8 aese v3.16b, v18.16b aesmc v3.16b, v3.16b // AES block 3 - round 0 aese v2.16b, v19.16b @@ -92,14 +91,12 @@ _aes_gcm_enc_kernel: aese v1.16b, v20.16b aesmc v1.16b, v1.16b // AES block 1 - round 2 ldr q13, [x6, #32] // load h2l | h2h - ext v13.16b, v13.16b, v13.16b, #8 aese v3.16b, v19.16b aesmc v3.16b, v3.16b // AES block 3 - round 1 ldr q30, [x8, #192] // load rk12 aese v2.16b, v20.16b aesmc v2.16b, v2.16b // AES block 2 - round 2 ldr q15, [x6, #80] // load h4l | h4h - ext v15.16b, v15.16b, v15.16b, #8 aese v1.16b, v21.16b aesmc v1.16b, v1.16b // AES block 1 - round 3 ldr q29, [x8, #176] // load rk11 @@ -142,7 +139,6 @@ _aes_gcm_enc_kernel: aese v0.16b, v24.16b aesmc v0.16b, v0.16b // AES block 0 - round 6 ldr q12, [x6] // load h1l | h1h - ext v12.16b, v12.16b, v12.16b, #8 aese v2.16b, v24.16b aesmc v2.16b, v2.16b // AES block 2 - round 6 ldr q28, [x8, #160] // load rk10 @@ -657,7 +653,7 @@ Lenc_tail: // TAIL fmov d4, x6 // AES block 4k+4 - mov low fmov v4.d[1], x7 // AES block 4k+4 - mov high eor v5.16b, v4.16b, v0.16b // AES block 4k+4 - result - b.gt Lenc_blocks_more_than_3 + b.gt Lenc_blocks_4_remaining cmp x5, #32 mov v3.16b, v2.16b movi v11.8b, #0 @@ -665,14 +661,14 @@ Lenc_tail: // TAIL sub w12, w12, #1 mov v2.16b, v1.16b movi v10.8b, #0 - b.gt Lenc_blocks_more_than_2 + b.gt Lenc_blocks_3_remaining mov v3.16b, v1.16b sub w12, w12, #1 cmp x5, #16 - b.gt Lenc_blocks_more_than_1 + b.gt Lenc_blocks_2_remaining sub w12, w12, #1 - b Lenc_blocks_less_than_1 -Lenc_blocks_more_than_3: // blocks left > 3 + b Lenc_blocks_1_remaining +Lenc_blocks_4_remaining: // blocks left = 4 st1 { v5.16b}, [x2], #16 // AES final-3 block - store result ldp x6, x7, [x0], #16 // AES final-2 block - load input low & high rev64 v4.16b, v5.16b // GHASH final-3 block @@ -689,7 +685,7 @@ Lenc_blocks_more_than_3: // blocks left > 3 pmull2 v9.1q, v4.2d, v15.2d // GHASH final-3 block - high pmull v10.1q, v22.1d, v10.1d // GHASH final-3 block - mid eor v5.16b, v5.16b, v1.16b // AES final-2 block - result -Lenc_blocks_more_than_2: // blocks left > 2 +Lenc_blocks_3_remaining: // blocks left = 3 st1 { v5.16b}, [x2], #16 // AES final-2 block - store result ldp x6, x7, [x0], #16 // AES final-1 block - load input low & high rev64 v4.16b, v5.16b // GHASH final-2 block @@ -708,7 +704,7 @@ Lenc_blocks_more_than_2: // blocks left > 2 pmull v22.1q, v22.1d, v17.1d // GHASH final-2 block - mid eor v11.16b, v11.16b, v21.16b // GHASH final-2 block - low eor v10.16b, v10.16b, v22.16b // GHASH final-2 block - mid -Lenc_blocks_more_than_1: // blocks left > 1 +Lenc_blocks_2_remaining: // blocks left = 2 st1 { v5.16b}, [x2], #16 // AES final-1 block - store result rev64 v4.16b, v5.16b // GHASH final-1 block ldp x6, x7, [x0], #16 // AES final block - load input low & high @@ -728,24 +724,9 @@ Lenc_blocks_more_than_1: // blocks left > 1 eor v5.16b, v5.16b, v3.16b // AES final block - result eor v10.16b, v10.16b, v22.16b // GHASH final-1 block - mid eor v11.16b, v11.16b, v21.16b // GHASH final-1 block - low -Lenc_blocks_less_than_1: // blocks left <= 1 - and x1, x1, #127 // bit_length %= 128 - mvn x13, xzr // rkN_l = 0xffffffffffffffff - sub x1, x1, #128 // bit_length -= 128 - neg x1, x1 // bit_length = 128 - #bits in input (in range [1,128]) - ld1 { v18.16b}, [x2] // load existing bytes where the possibly partial last block is to be stored - mvn x14, xzr // rkN_h = 0xffffffffffffffff - and x1, x1, #127 // bit_length %= 128 - lsr x14, x14, x1 // rkN_h is mask for top 64b of last block - cmp x1, #64 - csel x6, x13, x14, lt - csel x7, x14, xzr, lt - fmov d0, x6 // ctr0b is mask for last block - fmov v0.d[1], x7 - and v5.16b, v5.16b, v0.16b // possibly partial last block has zeroes in highest bits +Lenc_blocks_1_remaining: // blocks_left = 1 rev64 v4.16b, v5.16b // GHASH final block eor v4.16b, v4.16b, v8.16b // feed in partial tag - bif v5.16b, v18.16b, v0.16b // insert existing bytes in top end of result before storing pmull2 v20.1q, v4.2d, v12.2d // GHASH final block - high mov d8, v4.d[1] // GHASH final block - mid rev w9, w12 @@ -843,15 +824,12 @@ _aes_gcm_dec_kernel: aese v0.16b, v18.16b aesmc v0.16b, v0.16b // AES block 0 - round 0 ldr q14, [x6, #48] // load h3l | h3h - ext v14.16b, v14.16b, v14.16b, #8 aese v3.16b, v18.16b aesmc v3.16b, v3.16b // AES block 3 - round 0 ldr q15, [x6, #80] // load h4l | h4h - ext v15.16b, v15.16b, v15.16b, #8 aese v1.16b, v18.16b aesmc v1.16b, v1.16b // AES block 1 - round 0 ldr q13, [x6, #32] // load h2l | h2h - ext v13.16b, v13.16b, v13.16b, #8 aese v2.16b, v18.16b aesmc v2.16b, v2.16b // AES block 2 - round 0 ldr q20, [x8, #32] // load rk2 @@ -871,7 +849,6 @@ _aes_gcm_dec_kernel: aese v0.16b, v20.16b aesmc v0.16b, v0.16b // AES block 0 - round 2 ldr q12, [x6] // load h1l | h1h - ext v12.16b, v12.16b, v12.16b, #8 aese v2.16b, v20.16b aesmc v2.16b, v2.16b // AES block 2 - round 2 ldr q28, [x8, #160] // load rk10 @@ -1426,7 +1403,7 @@ Ldec_tail: // TAIL cmp x5, #48 eor x6, x6, x13 // AES block 4k+4 - round N low eor x7, x7, x14 // AES block 4k+4 - round N high - b.gt Ldec_blocks_more_than_3 + b.gt Ldec_blocks_4_remaining sub w12, w12, #1 mov v3.16b, v2.16b movi v10.8b, #0 @@ -1434,14 +1411,14 @@ Ldec_tail: // TAIL cmp x5, #32 movi v9.8b, #0 mov v2.16b, v1.16b - b.gt Ldec_blocks_more_than_2 + b.gt Ldec_blocks_3_remaining sub w12, w12, #1 mov v3.16b, v1.16b cmp x5, #16 - b.gt Ldec_blocks_more_than_1 + b.gt Ldec_blocks_2_remaining sub w12, w12, #1 - b Ldec_blocks_less_than_1 -Ldec_blocks_more_than_3: // blocks left > 3 + b Ldec_blocks_1_remaining +Ldec_blocks_4_remaining: // blocks left = 4 rev64 v4.16b, v5.16b // GHASH final-3 block ld1 { v5.16b}, [x0], #16 // AES final-2 block - load ciphertext stp x6, x7, [x2], #16 // AES final-3 block - store result @@ -1458,7 +1435,7 @@ Ldec_blocks_more_than_3: // blocks left > 3 eor x6, x6, x13 // AES final-2 block - round N low pmull v11.1q, v4.1d, v15.1d // GHASH final-3 block - low eor x7, x7, x14 // AES final-2 block - round N high -Ldec_blocks_more_than_2: // blocks left > 2 +Ldec_blocks_3_remaining: // blocks left = 3 rev64 v4.16b, v5.16b // GHASH final-2 block ld1 { v5.16b}, [x0], #16 // AES final-1 block - load ciphertext eor v4.16b, v4.16b, v8.16b // feed in partial tag @@ -1477,7 +1454,7 @@ Ldec_blocks_more_than_2: // blocks left > 2 eor x6, x6, x13 // AES final-1 block - round N low eor v10.16b, v10.16b, v22.16b // GHASH final-2 block - mid eor x7, x7, x14 // AES final-1 block - round N high -Ldec_blocks_more_than_1: // blocks left > 1 +Ldec_blocks_2_remaining: // blocks left = 2 stp x6, x7, [x2], #16 // AES final-1 block - store result rev64 v4.16b, v5.16b // GHASH final-1 block ld1 { v5.16b}, [x0], #16 // AES final block - load ciphertext @@ -1497,28 +1474,8 @@ Ldec_blocks_more_than_1: // blocks left > 1 eor v9.16b, v9.16b, v20.16b // GHASH final-1 block - high eor v10.16b, v10.16b, v22.16b // GHASH final-1 block - mid eor x7, x7, x14 // AES final block - round N high -Ldec_blocks_less_than_1: // blocks left <= 1 - and x1, x1, #127 // bit_length %= 128 - mvn x14, xzr // rkN_h = 0xffffffffffffffff - sub x1, x1, #128 // bit_length -= 128 - mvn x13, xzr // rkN_l = 0xffffffffffffffff - ldp x4, x5, [x2] // load existing bytes we need to not overwrite - neg x1, x1 // bit_length = 128 - #bits in input (in range [1,128]) - and x1, x1, #127 // bit_length %= 128 - lsr x14, x14, x1 // rkN_h is mask for top 64b of last block - cmp x1, #64 - csel x9, x13, x14, lt - csel x10, x14, xzr, lt - fmov d0, x9 // ctr0b is mask for last block - and x6, x6, x9 - mov v0.d[1], x10 - bic x4, x4, x9 // mask out low existing bytes +Ldec_blocks_1_remaining: // blocks_left = 1 rev w9, w12 - bic x5, x5, x10 // mask out high existing bytes - orr x6, x6, x4 - and x7, x7, x10 - orr x7, x7, x5 - and v5.16b, v5.16b, v0.16b // possibly partial last block has zeroes in highest bits rev64 v4.16b, v5.16b // GHASH final block eor v4.16b, v4.16b, v8.16b // feed in partial tag pmull v21.1q, v4.1d, v12.1d // GHASH final block - low diff --git a/generated-src/ios-aarch64/crypto/fipsmodule/ghashv8-armx.S b/generated-src/ios-aarch64/crypto/fipsmodule/ghashv8-armx.S index bcba8dd2a0..20ce8085ee 100644 --- a/generated-src/ios-aarch64/crypto/fipsmodule/ghashv8-armx.S +++ b/generated-src/ios-aarch64/crypto/fipsmodule/ghashv8-armx.S @@ -30,13 +30,14 @@ _gcm_init_v8: and v16.16b,v16.16b,v17.16b orr v3.16b,v3.16b,v18.16b //H<<<=1 eor v20.16b,v3.16b,v16.16b //twisted H + ext v20.16b, v20.16b, v20.16b, #8 st1 {v20.2d},[x0],#16 //store Htable[0] - //calculate H^2 + //calculate H^2 ext v16.16b,v20.16b,v20.16b,#8 //Karatsuba pre-processing - pmull v0.1q,v20.1d,v20.1d + pmull2 v0.1q,v20.2d,v20.2d eor v16.16b,v16.16b,v20.16b - pmull2 v2.1q,v20.2d,v20.2d + pmull v2.1q,v20.1d,v20.1d pmull v1.1q,v16.1d,v16.1d ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing @@ -52,17 +53,19 @@ _gcm_init_v8: ext v18.16b,v0.16b,v0.16b,#8 //2nd phase pmull v0.1q,v0.1d,v19.1d eor v18.16b,v18.16b,v2.16b - eor v22.16b,v0.16b,v18.16b + eor v17.16b,v0.16b,v18.16b - ext v17.16b,v22.16b,v22.16b,#8 //Karatsuba pre-processing + ext v22.16b,v17.16b,v17.16b,#8 //Karatsuba pre-processing eor v17.16b,v17.16b,v22.16b ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed - st1 {v21.2d,v22.2d},[x0],#32 //store Htable[1..2] + st1 {v21.2d},[x0],#16 //store Htable[1..2] + st1 {v22.2d},[x0],#16 //store Htable[1..2] + //calculate H^3 and H^4 - pmull v0.1q,v20.1d, v22.1d - pmull v5.1q,v22.1d,v22.1d - pmull2 v2.1q,v20.2d, v22.2d - pmull2 v7.1q,v22.2d,v22.2d + pmull2 v0.1q,v20.2d, v22.2d + pmull2 v5.1q,v22.2d,v22.2d + pmull v2.1q,v20.1d, v22.1d + pmull v7.1q,v22.1d,v22.1d pmull v1.1q,v16.1d,v17.1d pmull v6.1q,v17.1d,v17.1d @@ -91,11 +94,11 @@ _gcm_init_v8: eor v18.16b,v18.16b,v2.16b eor v4.16b,v4.16b,v7.16b - eor v23.16b, v0.16b,v18.16b //H^3 - eor v25.16b,v5.16b,v4.16b //H^4 + eor v16.16b, v0.16b,v18.16b //H^3 + eor v17.16b, v5.16b,v4.16b //H^4 - ext v16.16b,v23.16b, v23.16b,#8 //Karatsuba pre-processing - ext v17.16b,v25.16b,v25.16b,#8 + ext v23.16b,v16.16b,v16.16b,#8 //Karatsuba pre-processing + ext v25.16b,v17.16b,v17.16b,#8 ext v18.16b,v22.16b,v22.16b,#8 eor v16.16b,v16.16b,v23.16b eor v17.16b,v17.16b,v25.16b @@ -104,10 +107,10 @@ _gcm_init_v8: st1 {v23.2d,v24.2d,v25.2d},[x0],#48 //store Htable[3..5] //calculate H^5 and H^6 - pmull v0.1q,v22.1d, v23.1d - pmull v5.1q,v23.1d,v23.1d - pmull2 v2.1q,v22.2d, v23.2d - pmull2 v7.1q,v23.2d,v23.2d + pmull2 v0.1q,v22.2d, v23.2d + pmull2 v5.1q,v23.2d,v23.2d + pmull v2.1q,v22.1d, v23.1d + pmull v7.1q,v23.1d,v23.1d pmull v1.1q,v16.1d,v18.1d pmull v6.1q,v16.1d,v16.1d @@ -135,11 +138,12 @@ _gcm_init_v8: pmull v5.1q,v5.1d,v19.1d eor v18.16b,v18.16b,v2.16b eor v4.16b,v4.16b,v7.16b - eor v26.16b,v0.16b,v18.16b //H^5 - eor v28.16b,v5.16b,v4.16b //H^6 - ext v16.16b,v26.16b, v26.16b,#8 //Karatsuba pre-processing - ext v17.16b,v28.16b,v28.16b,#8 + eor v16.16b,v0.16b,v18.16b //H^5 + eor v17.16b,v5.16b,v4.16b //H^6 + + ext v26.16b, v16.16b, v16.16b,#8 //Karatsuba pre-processing + ext v28.16b, v17.16b, v17.16b,#8 ext v18.16b,v22.16b,v22.16b,#8 eor v16.16b,v16.16b,v26.16b eor v17.16b,v17.16b,v28.16b @@ -148,10 +152,10 @@ _gcm_init_v8: st1 {v26.2d,v27.2d,v28.2d},[x0],#48 //store Htable[6..8] //calculate H^7 and H^8 - pmull v0.1q,v22.1d,v26.1d - pmull v5.1q,v22.1d,v28.1d - pmull2 v2.1q,v22.2d,v26.2d - pmull2 v7.1q,v22.2d,v28.2d + pmull2 v0.1q,v22.2d,v26.2d + pmull2 v5.1q,v22.2d,v28.2d + pmull v2.1q,v22.1d,v26.1d + pmull v7.1q,v22.1d,v28.1d pmull v1.1q,v16.1d,v18.1d pmull v6.1q,v17.1d,v18.1d @@ -179,11 +183,11 @@ _gcm_init_v8: pmull v5.1q,v5.1d,v19.1d eor v18.16b,v18.16b,v2.16b eor v4.16b,v4.16b,v7.16b - eor v29.16b,v0.16b,v18.16b //H^7 - eor v31.16b,v5.16b,v4.16b //H^8 + eor v16.16b,v0.16b,v18.16b //H^7 + eor v17.16b,v5.16b,v4.16b //H^8 - ext v16.16b,v29.16b,v29.16b,#8 //Karatsuba pre-processing - ext v17.16b,v31.16b,v31.16b,#8 + ext v29.16b,v16.16b,v16.16b,#8 //Karatsuba pre-processing + ext v31.16b,v17.16b,v17.16b,#8 eor v16.16b,v16.16b,v29.16b eor v17.16b,v17.16b,v31.16b ext v30.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed @@ -199,6 +203,7 @@ _gcm_gmult_v8: ld1 {v17.2d},[x0] //load Xi movi v19.16b,#0xe1 ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... + ext v20.16b,v20.16b,v20.16b,#8 shl v19.2d,v19.2d,#57 #ifndef __AARCH64EB__ rev64 v17.16b,v17.16b @@ -258,8 +263,10 @@ _gcm_ghash_v8: //loaded twice, but last //copy is not processed ld1 {v20.2d,v21.2d},[x1],#32 //load twisted H, ..., H^2 + ext v20.16b,v20.16b,v20.16b,#8 movi v19.16b,#0xe1 ld1 {v22.2d},[x1] + ext v22.16b,v22.16b,v22.16b,#8 csel x12,xzr,x12,eq //is it time to zero x12? ext v0.16b,v0.16b,v0.16b,#8 //rotate Xi ld1 {v16.2d},[x2],#16 //load [rotated] I[0] @@ -373,8 +380,12 @@ gcm_ghash_v8_4x: Lgcm_ghash_v8_4x: ld1 {v0.2d},[x0] //load [rotated] Xi ld1 {v20.2d,v21.2d,v22.2d},[x1],#48 //load twisted H, ..., H^2 + ext v20.16b,v20.16b,v20.16b,#8 + ext v22.16b,v22.16b,v22.16b,#8 movi v19.16b,#0xe1 ld1 {v26.2d,v27.2d,v28.2d},[x1] //load twisted H^3, ..., H^4 + ext v26.16b,v26.16b,v26.16b,#8 + ext v28.16b,v28.16b,v28.16b,#8 shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 diff --git a/generated-src/ios-aarch64/crypto/fipsmodule/sha1-armv8.S b/generated-src/ios-aarch64/crypto/fipsmodule/sha1-armv8.S index 744c630646..8f847749e3 100644 --- a/generated-src/ios-aarch64/crypto/fipsmodule/sha1-armv8.S +++ b/generated-src/ios-aarch64/crypto/fipsmodule/sha1-armv8.S @@ -8,23 +8,13 @@ .text - -.private_extern _OPENSSL_armcap_P -.globl _sha1_block_data_order -.private_extern _sha1_block_data_order +.globl _sha1_block_data_order_nohw +.private_extern _sha1_block_data_order_nohw .align 6 -_sha1_block_data_order: +_sha1_block_data_order_nohw: // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET -#if defined(OPENSSL_HWASAN) && __clang_major__ >= 10 - adrp x16,:pg_hi21_nc:_OPENSSL_armcap_P -#else - adrp x16,_OPENSSL_armcap_P@PAGE -#endif - ldr w16,[x16,_OPENSSL_armcap_P@PAGEOFF] - tst w16,#ARMV8_SHA1 - b.ne Lv8_entry stp x29,x30,[sp,#-96]! add x29,sp,#0 @@ -1081,12 +1071,13 @@ Loop: ldr x29,[sp],#96 ret +.globl _sha1_block_data_order_hw +.private_extern _sha1_block_data_order_hw .align 6 -sha1_block_armv8: +_sha1_block_data_order_hw: // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET -Lv8_entry: stp x29,x30,[sp,#-16]! add x29,sp,#0 diff --git a/generated-src/ios-aarch64/crypto/fipsmodule/sha256-armv8.S b/generated-src/ios-aarch64/crypto/fipsmodule/sha256-armv8.S index 05c5dc0834..0f886deb1e 100644 --- a/generated-src/ios-aarch64/crypto/fipsmodule/sha256-armv8.S +++ b/generated-src/ios-aarch64/crypto/fipsmodule/sha256-armv8.S @@ -50,24 +50,11 @@ .text - -.private_extern _OPENSSL_armcap_P -.globl _sha256_block_data_order -.private_extern _sha256_block_data_order +.globl _sha256_block_data_order_nohw +.private_extern _sha256_block_data_order_nohw .align 6 -_sha256_block_data_order: - AARCH64_VALID_CALL_TARGET -#ifndef __KERNEL__ -#if defined(OPENSSL_HWASAN) && __clang_major__ >= 10 - adrp x16,:pg_hi21_nc:_OPENSSL_armcap_P -#else - adrp x16,_OPENSSL_armcap_P@PAGE -#endif - ldr w16,[x16,_OPENSSL_armcap_P@PAGEOFF] - tst w16,#ARMV8_SHA256 - b.ne Lv8_entry -#endif +_sha256_block_data_order_nohw: AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -1060,10 +1047,11 @@ LK256: .align 2 .text #ifndef __KERNEL__ +.globl _sha256_block_data_order_hw +.private_extern _sha256_block_data_order_hw .align 6 -sha256_block_armv8: -Lv8_entry: +_sha256_block_data_order_hw: #ifdef BORINGSSL_DISPATCH_TEST adrp x9,_BORINGSSL_function_hit@PAGE @@ -1072,6 +1060,7 @@ Lv8_entry: strb w10, [x9,#6] // kFlag_sha256_hw #endif // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 diff --git a/generated-src/ios-aarch64/crypto/fipsmodule/sha512-armv8.S b/generated-src/ios-aarch64/crypto/fipsmodule/sha512-armv8.S index 65dadcaf46..16e09c8c18 100644 --- a/generated-src/ios-aarch64/crypto/fipsmodule/sha512-armv8.S +++ b/generated-src/ios-aarch64/crypto/fipsmodule/sha512-armv8.S @@ -50,24 +50,11 @@ .text - -.private_extern _OPENSSL_armcap_P -.globl _sha512_block_data_order -.private_extern _sha512_block_data_order +.globl _sha512_block_data_order_nohw +.private_extern _sha512_block_data_order_nohw .align 6 -_sha512_block_data_order: - AARCH64_VALID_CALL_TARGET -#ifndef __KERNEL__ -#if defined(OPENSSL_HWASAN) && __clang_major__ >= 10 - adrp x16,:pg_hi21_nc:_OPENSSL_armcap_P -#else - adrp x16,_OPENSSL_armcap_P@PAGE -#endif - ldr w16,[x16,_OPENSSL_armcap_P@PAGEOFF] - tst w16,#ARMV8_SHA512 - b.ne Lv8_entry -#endif +_sha512_block_data_order_nohw: AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -1084,10 +1071,11 @@ LK512: .align 2 .text #ifndef __KERNEL__ +.globl _sha512_block_data_order_hw +.private_extern _sha512_block_data_order_hw .align 6 -sha512_block_armv8: -Lv8_entry: +_sha512_block_data_order_hw: #ifdef BORINGSSL_DISPATCH_TEST adrp x9,_BORINGSSL_function_hit@PAGE @@ -1095,6 +1083,8 @@ Lv8_entry: mov w10, #1 strb w10, [x9,#8] // kFlag_sha512_hw #endif + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 diff --git a/generated-src/ios-arm/crypto/fipsmodule/ghashv8-armx.S b/generated-src/ios-arm/crypto/fipsmodule/ghashv8-armx.S index 37ee28ea5a..f76cf65092 100644 --- a/generated-src/ios-arm/crypto/fipsmodule/ghashv8-armx.S +++ b/generated-src/ios-arm/crypto/fipsmodule/ghashv8-armx.S @@ -34,13 +34,14 @@ _gcm_init_v8: vand q8,q8,q9 vorr q3,q3,q10 @ H<<<=1 veor q12,q3,q8 @ twisted H + vext.8 q12, q12, q12, #8 vst1.64 {q12},[r0]! @ store Htable[0] - @ calculate H^2 + @ calculate H^2 vext.8 q8,q12,q12,#8 @ Karatsuba pre-processing -.byte 0xa8,0x0e,0xa8,0xf2 @ pmull q0,q12,q12 +.byte 0xa9,0x0e,0xa9,0xf2 @ pmull2 q0,q12,q12 veor q8,q8,q12 -.byte 0xa9,0x4e,0xa9,0xf2 @ pmull2 q2,q12,q12 +.byte 0xa8,0x4e,0xa8,0xf2 @ pmull q2,q12,q12 .byte 0xa0,0x2e,0xa0,0xf2 @ pmull q1,q8,q8 vext.8 q9,q0,q2,#8 @ Karatsuba post-processing @@ -56,12 +57,13 @@ _gcm_init_v8: vext.8 q10,q0,q0,#8 @ 2nd phase .byte 0x26,0x0e,0xa0,0xf2 @ pmull q0,q0,q11 veor q10,q10,q2 - veor q14,q0,q10 + veor q9,q0,q10 - vext.8 q9,q14,q14,#8 @ Karatsuba pre-processing + vext.8 q14,q9,q9,#8 @ Karatsuba pre-processing veor q9,q9,q14 vext.8 q13,q8,q9,#8 @ pack Karatsuba pre-processed - vst1.64 {q13,q14},[r0]! @ store Htable[1..2] + vst1.64 {q13},[r0]! @ store Htable[1..2] + vst1.64 {q14},[r0]! @ store Htable[1..2] bx lr .globl _gcm_gmult_v8 @@ -75,6 +77,7 @@ _gcm_gmult_v8: vld1.64 {q9},[r0] @ load Xi vmov.i8 q11,#0xe1 vld1.64 {q12,q13},[r1] @ load twisted H, ... + vext.8 q12,q12,q12,#8 vshl.u64 q11,q11,#57 #ifndef __ARMEB__ vrev64.8 q9,q9 @@ -135,8 +138,10 @@ _gcm_ghash_v8: @ loaded twice, but last @ copy is not processed vld1.64 {q12,q13},[r1]! @ load twisted H, ..., H^2 + vext.8 q12,q12,q12,#8 vmov.i8 q11,#0xe1 vld1.64 {q14},[r1] + vext.8 q14,q14,q14,#8 moveq r12,#0 @ is it time to zero r12? vext.8 q0,q0,q0,#8 @ rotate Xi vld1.64 {q8},[r2]! @ load [rotated] I[0] diff --git a/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S b/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S index 6983125b8d..55a51263f9 100644 --- a/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S +++ b/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S @@ -312,17 +312,13 @@ aesv8_gcm_8x_enc_128: .L128_enc_main_loop: //main loop start rev32 v5.16b, v30.16b //CTR block 8k+13 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 add v30.4s, v30.4s, v31.4s //CTR block 8k+13 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev64 v8.16b, v8.16b //GHASH block 8k ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev32 v6.16b, v30.16b //CTR block 8k+14 add v30.4s, v30.4s, v31.4s //CTR block 8k+14 @@ -353,9 +349,7 @@ aesv8_gcm_8x_enc_128: eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h3l | h3h - ext v25.16b, v25.16b, v25.16b, #8 aese v5.16b, v26.16b aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 @@ -450,9 +444,7 @@ aesv8_gcm_8x_enc_128: aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h1l | h1h - ext v22.16b, v22.16b, v22.16b, #8 pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low @@ -666,15 +658,11 @@ aesv8_gcm_8x_enc_128: .L128_enc_prepretail: //PREPRETAIL rev32 v5.16b, v30.16b //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v8.16b, v8.16b //GHASH block 8k rev64 v9.16b, v9.16b //GHASH block 8k+1 @@ -752,9 +740,7 @@ aesv8_gcm_8x_enc_128: pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 ldp q28, q26, [x11, #32] //load rk2, rk3 aese v5.16b, v27.16b @@ -806,9 +792,7 @@ aesv8_gcm_8x_enc_128: ldp q27, q28, [x11, #64] //load rk4, rk5 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h1l | h1h - ext v22.16b, v22.16b, v22.16b, #8 trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid aese v0.16b, v26.16b aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 @@ -986,16 +970,12 @@ aesv8_gcm_8x_enc_128: mov v29.16b, v27.16b ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 .inst 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 cmp x5, #112 b.gt .L128_enc_blocks_more_than_7 @@ -1162,7 +1142,6 @@ aesv8_gcm_8x_enc_128: st1 { v9.16b}, [x2], #16 //AES final-3 block - store result ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v9.16b //GHASH final-3 block @@ -1199,7 +1178,6 @@ aesv8_gcm_8x_enc_128: ins v27.d[0], v8.d[1] //GHASH final-2 block - mid ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 movi v16.8b, #0 //supress further partial tag feed in eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid @@ -1219,7 +1197,6 @@ aesv8_gcm_8x_enc_128: st1 { v9.16b}, [x2], #16 //AES final-1 block - store result ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v8.16b, v9.16b //GHASH final-1 block ldr q9, [x0], #16 //AES final block - load plaintext @@ -1281,7 +1258,6 @@ aesv8_gcm_8x_enc_128: eor v16.8b, v16.8b, v8.8b //GHASH final block - mid ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid @@ -1619,9 +1595,7 @@ aesv8_gcm_8x_dec_128: .L128_dec_main_loop: //main loop start ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev64 v8.16b, v8.16b //GHASH block 8k @@ -1629,9 +1603,7 @@ aesv8_gcm_8x_dec_128: rev64 v14.16b, v14.16b //GHASH block 8k+6 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 eor v8.16b, v8.16b, v19.16b //PRE 1 rev32 v5.16b, v30.16b //CTR block 8k+13 @@ -1697,9 +1669,7 @@ aesv8_gcm_8x_dec_128: pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid aese v6.16b, v27.16b aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 @@ -1727,9 +1697,7 @@ aesv8_gcm_8x_dec_128: aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid aese v1.16b, v28.16b @@ -1977,17 +1945,13 @@ aesv8_gcm_8x_dec_128: ldp q26, q27, [x11, #0] //load rk0, rk1 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 eor v8.16b, v8.16b, v19.16b //PRE 1 rev64 v9.16b, v9.16b //GHASH block 8k+1 add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v13.16b, v13.16b //GHASH block 8k+5 rev64 v12.16b, v12.16b //GHASH block 8k+4 @@ -2060,9 +2024,7 @@ aesv8_gcm_8x_dec_128: pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 aese v1.16b, v27.16b aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid @@ -2075,9 +2037,7 @@ aesv8_gcm_8x_dec_128: aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 .inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid aese v0.16b, v28.16b @@ -2283,16 +2243,12 @@ aesv8_gcm_8x_dec_128: cmp x5, #112 ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 .inst 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result b.gt .L128_dec_blocks_more_than_7 @@ -2461,7 +2417,6 @@ aesv8_gcm_8x_dec_128: ins v27.d[0], v8.d[1] //GHASH final-3 block - mid ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 ldr q24, [x6, #64] //load h4k | h3k eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid @@ -2488,7 +2443,6 @@ aesv8_gcm_8x_dec_128: eor v8.16b, v8.16b, v16.16b //feed in partial tag ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 movi v16.8b, #0 //supress further partial tag feed in ins v27.d[0], v8.d[1] //GHASH final-2 block - mid @@ -2513,7 +2467,6 @@ aesv8_gcm_8x_dec_128: rev64 v8.16b, v9.16b //GHASH final-1 block ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -2560,7 +2513,6 @@ aesv8_gcm_8x_dec_128: mov v0.d[0], x13 //ctr0b is mask for last block ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits @@ -2963,16 +2915,12 @@ aesv8_gcm_8x_enc_192: rev32 v5.16b, v30.16b //CTR block 8k+13 add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 rev64 v8.16b, v8.16b //GHASH block 8k ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev32 v6.16b, v30.16b //CTR block 8k+14 @@ -3074,9 +3022,7 @@ aesv8_gcm_8x_enc_192: aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid @@ -3122,9 +3068,7 @@ aesv8_gcm_8x_enc_192: aese v4.16b, v28.16b aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 ldp q26, q27, [x11, #96] //load rk6, rk7 aese v2.16b, v28.16b @@ -3351,9 +3295,7 @@ aesv8_gcm_8x_enc_192: add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v8.16b //GHASH block 8k ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 @@ -3365,9 +3307,7 @@ aesv8_gcm_8x_enc_192: rev64 v11.16b, v11.16b //GHASH block 8k+3 rev64 v10.16b, v10.16b //GHASH block 8k+2 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 eor v8.16b, v8.16b, v19.16b //PRE 1 rev32 v7.16b, v30.16b //CTR block 8k+15 @@ -3475,17 +3415,13 @@ aesv8_gcm_8x_enc_192: aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 aese v3.16b, v26.16b aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 aese v4.16b, v26.16b aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) @@ -3695,19 +3631,15 @@ aesv8_gcm_8x_enc_192: .L192_enc_tail: //TAIL ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process ldr q8, [x0], #16 //AES block 8k+8 - l3ad plaintext ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 mov v29.16b, v26.16b ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 cmp x5, #112 .inst 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result @@ -3883,7 +3815,6 @@ aesv8_gcm_8x_enc_192: ldr q9, [x0], #16 //AES final-2 block - load plaintext ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 ins v27.d[0], v8.d[1] //GHASH final-3 block - mid @@ -3906,7 +3837,6 @@ aesv8_gcm_8x_enc_192: rev64 v8.16b, v9.16b //GHASH final-2 block ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -3929,7 +3859,6 @@ aesv8_gcm_8x_enc_192: .L192_enc_blocks_more_than_1: //blocks left > 1 ldr q22, [x6, #32] //load h1l | h1h - ext v22.16b, v22.16b, v22.16b, #8 st1 { v9.16b}, [x2], #16 //AES final-1 block - store result rev64 v8.16b, v9.16b //GHASH final-1 block @@ -3975,7 +3904,6 @@ aesv8_gcm_8x_enc_192: mov v0.d[1], x14 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored mov v0.d[0], x13 //ctr0b is mask for last block @@ -4380,9 +4308,7 @@ aesv8_gcm_8x_dec_192: add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v12.16b, v12.16b //GHASH block 8k+4 rev64 v11.16b, v11.16b //GHASH block 8k+3 @@ -4420,9 +4346,7 @@ aesv8_gcm_8x_dec_192: aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 aese v0.16b, v27.16b aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 @@ -4477,9 +4401,7 @@ aesv8_gcm_8x_dec_192: aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 aese v5.16b, v28.16b aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 aese v2.16b, v26.16b @@ -4538,9 +4460,7 @@ aesv8_gcm_8x_dec_192: aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 aese v3.16b, v28.16b aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 aese v5.16b, v28.16b @@ -4765,9 +4685,7 @@ aesv8_gcm_8x_dec_192: add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v8.16b //GHASH block 8k ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 @@ -4780,9 +4698,7 @@ aesv8_gcm_8x_dec_192: rev64 v9.16b, v9.16b //GHASH block 8k+1 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev32 v7.16b, v30.16b //CTR block 8k+15 aese v0.16b, v26.16b @@ -4889,16 +4805,12 @@ aesv8_gcm_8x_dec_192: aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid aese v2.16b, v26.16b aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 @@ -5111,17 +5023,13 @@ aesv8_gcm_8x_dec_192: sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 mov v29.16b, v26.16b ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag .inst 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result @@ -5283,7 +5191,6 @@ aesv8_gcm_8x_dec_192: .L192_dec_blocks_more_than_3: //blocks left > 3 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v9.16b //GHASH final-3 block ldr q9, [x0], #16 //AES final-2 block - load ciphertext @@ -5312,7 +5219,6 @@ aesv8_gcm_8x_dec_192: rev64 v8.16b, v9.16b //GHASH final-2 block ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -5339,7 +5245,6 @@ aesv8_gcm_8x_dec_192: rev64 v8.16b, v9.16b //GHASH final-1 block ldr q9, [x0], #16 //AES final block - load ciphertext ldr q22, [x6, #32] //load h1l | h1h - ext v22.16b, v22.16b, v22.16b, #8 eor v8.16b, v8.16b, v16.16b //feed in partial tag movi v16.8b, #0 //supress further partial tag feed in @@ -5383,7 +5288,6 @@ aesv8_gcm_8x_dec_192: csel x13, x8, x7, lt csel x14, x7, xzr, lt ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 mov v0.d[1], x14 ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored @@ -5825,9 +5729,7 @@ aesv8_gcm_8x_enc_256: rev64 v11.16b, v11.16b //GHASH block 8k+3 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev32 v6.16b, v30.16b //CTR block 8k+14 @@ -5837,9 +5739,7 @@ aesv8_gcm_8x_enc_256: rev64 v12.16b, v12.16b //GHASH block 8k+4 ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 aese v3.16b, v26.16b aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 @@ -5940,9 +5840,7 @@ aesv8_gcm_8x_enc_256: pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid .inst 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high @@ -6026,9 +5924,7 @@ aesv8_gcm_8x_enc_256: aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 aese v2.16b, v27.16b aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 .inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid @@ -6290,16 +6186,12 @@ aesv8_gcm_8x_enc_256: aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 aese v2.16b, v27.16b aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 aese v0.16b, v27.16b aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 aese v5.16b, v27.16b @@ -6415,9 +6307,7 @@ aesv8_gcm_8x_enc_256: ldp q26, q27, [x11, #96] //load rk6, rk7 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid @@ -6459,9 +6349,7 @@ aesv8_gcm_8x_enc_256: pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 ldp q28, q26, [x11, #128] //load rk8, rk9 aese v1.16b, v27.16b @@ -6635,18 +6523,14 @@ aesv8_gcm_8x_enc_256: .L256_enc_tail: //TAIL ldp q24, q25, [x6, #160] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process ldr q8, [x0], #16 //AES block 8k+8 - load plaintext ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 mov v29.16b, v28.16b cmp x5, #112 @@ -6816,7 +6700,6 @@ aesv8_gcm_8x_enc_256: st1 { v9.16b}, [x2], #16 //AES final-3 block - store result ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v9.16b //GHASH final-3 block eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -6842,7 +6725,6 @@ aesv8_gcm_8x_enc_256: .L256_enc_blocks_more_than_2: //blocks left > 2 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 st1 { v9.16b}, [x2], #16 //AES final-2 block - store result @@ -6872,7 +6754,6 @@ aesv8_gcm_8x_enc_256: st1 { v9.16b}, [x2], #16 //AES final-1 block - store result ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v8.16b, v9.16b //GHASH final-1 block ldr q9, [x0], #16 //AES final block - load plaintext @@ -6916,7 +6797,6 @@ aesv8_gcm_8x_enc_256: mov v0.d[0], x13 //ctr0b is mask for last block ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored mov v0.d[1], x14 @@ -7355,9 +7235,7 @@ aesv8_gcm_8x_dec_256: rev64 v9.16b, v9.16b //GHASH block 8k+1 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev32 v6.16b, v30.16b //CTR block 8k+14 add v30.4s, v30.4s, v31.4s //CTR block 8k+14 @@ -7392,9 +7270,7 @@ aesv8_gcm_8x_dec_256: eor v8.16b, v8.16b, v19.16b //PRE 1 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 aese v6.16b, v27.16b aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 @@ -7547,9 +7423,7 @@ aesv8_gcm_8x_dec_256: .inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v14.16b, v14.16b //GHASH block 8k+6 eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid @@ -7560,9 +7434,7 @@ aesv8_gcm_8x_dec_256: ldp q28, q26, [x11, #128] //load rk8, rk9 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 .inst 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid aese v7.16b, v27.16b aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 @@ -7790,17 +7662,13 @@ aesv8_gcm_8x_dec_256: ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev32 v7.16b, v30.16b //CTR block 8k+15 rev64 v10.16b, v10.16b //GHASH block 8k+2 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 aese v0.16b, v26.16b aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 @@ -7915,9 +7783,7 @@ aesv8_gcm_8x_dec_256: .inst 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 aese v7.16b, v27.16b aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 @@ -7959,9 +7825,7 @@ aesv8_gcm_8x_dec_256: ldp q26, q27, [x11, #96] //load rk6, rk7 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v15.16b, v15.16b //GHASH block 8k+7 rev64 v13.16b, v13.16b //GHASH block 8k+5 @@ -8173,16 +8037,12 @@ aesv8_gcm_8x_dec_256: ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 mov v29.16b, v28.16b ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 .inst 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 b.gt .L256_dec_blocks_more_than_7 mov v7.16b, v6.16b @@ -8341,7 +8201,6 @@ aesv8_gcm_8x_dec_256: .L256_dec_blocks_more_than_3: //blocks left > 3 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v9.16b //GHASH final-3 block eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -8371,7 +8230,6 @@ aesv8_gcm_8x_dec_256: rev64 v8.16b, v9.16b //GHASH final-2 block ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q9, [x0], #16 //AES final-1 block - load ciphertext eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -8399,7 +8257,6 @@ aesv8_gcm_8x_dec_256: ins v27.d[0], v8.d[1] //GHASH final-1 block - mid ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid ldr q9, [x0], #16 //AES final block - load ciphertext @@ -8447,7 +8304,6 @@ aesv8_gcm_8x_dec_256: and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing rev64 v8.16b, v9.16b //GHASH final block diff --git a/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S b/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S index df1b7d5c5b..0ddbcd8a71 100644 --- a/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S +++ b/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S @@ -83,7 +83,6 @@ aes_gcm_enc_kernel: aese v1.16b, v19.16b aesmc v1.16b, v1.16b // AES block 1 - round 1 ldr q14, [x6, #48] // load h3l | h3h - ext v14.16b, v14.16b, v14.16b, #8 aese v3.16b, v18.16b aesmc v3.16b, v3.16b // AES block 3 - round 0 aese v2.16b, v19.16b @@ -92,14 +91,12 @@ aes_gcm_enc_kernel: aese v1.16b, v20.16b aesmc v1.16b, v1.16b // AES block 1 - round 2 ldr q13, [x6, #32] // load h2l | h2h - ext v13.16b, v13.16b, v13.16b, #8 aese v3.16b, v19.16b aesmc v3.16b, v3.16b // AES block 3 - round 1 ldr q30, [x8, #192] // load rk12 aese v2.16b, v20.16b aesmc v2.16b, v2.16b // AES block 2 - round 2 ldr q15, [x6, #80] // load h4l | h4h - ext v15.16b, v15.16b, v15.16b, #8 aese v1.16b, v21.16b aesmc v1.16b, v1.16b // AES block 1 - round 3 ldr q29, [x8, #176] // load rk11 @@ -142,7 +139,6 @@ aes_gcm_enc_kernel: aese v0.16b, v24.16b aesmc v0.16b, v0.16b // AES block 0 - round 6 ldr q12, [x6] // load h1l | h1h - ext v12.16b, v12.16b, v12.16b, #8 aese v2.16b, v24.16b aesmc v2.16b, v2.16b // AES block 2 - round 6 ldr q28, [x8, #160] // load rk10 @@ -657,7 +653,7 @@ aes_gcm_enc_kernel: fmov d4, x6 // AES block 4k+4 - mov low fmov v4.d[1], x7 // AES block 4k+4 - mov high eor v5.16b, v4.16b, v0.16b // AES block 4k+4 - result - b.gt .Lenc_blocks_more_than_3 + b.gt .Lenc_blocks_4_remaining cmp x5, #32 mov v3.16b, v2.16b movi v11.8b, #0 @@ -665,14 +661,14 @@ aes_gcm_enc_kernel: sub w12, w12, #1 mov v2.16b, v1.16b movi v10.8b, #0 - b.gt .Lenc_blocks_more_than_2 + b.gt .Lenc_blocks_3_remaining mov v3.16b, v1.16b sub w12, w12, #1 cmp x5, #16 - b.gt .Lenc_blocks_more_than_1 + b.gt .Lenc_blocks_2_remaining sub w12, w12, #1 - b .Lenc_blocks_less_than_1 -.Lenc_blocks_more_than_3: // blocks left > 3 + b .Lenc_blocks_1_remaining +.Lenc_blocks_4_remaining: // blocks left = 4 st1 { v5.16b}, [x2], #16 // AES final-3 block - store result ldp x6, x7, [x0], #16 // AES final-2 block - load input low & high rev64 v4.16b, v5.16b // GHASH final-3 block @@ -689,7 +685,7 @@ aes_gcm_enc_kernel: pmull2 v9.1q, v4.2d, v15.2d // GHASH final-3 block - high pmull v10.1q, v22.1d, v10.1d // GHASH final-3 block - mid eor v5.16b, v5.16b, v1.16b // AES final-2 block - result -.Lenc_blocks_more_than_2: // blocks left > 2 +.Lenc_blocks_3_remaining: // blocks left = 3 st1 { v5.16b}, [x2], #16 // AES final-2 block - store result ldp x6, x7, [x0], #16 // AES final-1 block - load input low & high rev64 v4.16b, v5.16b // GHASH final-2 block @@ -708,7 +704,7 @@ aes_gcm_enc_kernel: pmull v22.1q, v22.1d, v17.1d // GHASH final-2 block - mid eor v11.16b, v11.16b, v21.16b // GHASH final-2 block - low eor v10.16b, v10.16b, v22.16b // GHASH final-2 block - mid -.Lenc_blocks_more_than_1: // blocks left > 1 +.Lenc_blocks_2_remaining: // blocks left = 2 st1 { v5.16b}, [x2], #16 // AES final-1 block - store result rev64 v4.16b, v5.16b // GHASH final-1 block ldp x6, x7, [x0], #16 // AES final block - load input low & high @@ -728,24 +724,9 @@ aes_gcm_enc_kernel: eor v5.16b, v5.16b, v3.16b // AES final block - result eor v10.16b, v10.16b, v22.16b // GHASH final-1 block - mid eor v11.16b, v11.16b, v21.16b // GHASH final-1 block - low -.Lenc_blocks_less_than_1: // blocks left <= 1 - and x1, x1, #127 // bit_length %= 128 - mvn x13, xzr // rkN_l = 0xffffffffffffffff - sub x1, x1, #128 // bit_length -= 128 - neg x1, x1 // bit_length = 128 - #bits in input (in range [1,128]) - ld1 { v18.16b}, [x2] // load existing bytes where the possibly partial last block is to be stored - mvn x14, xzr // rkN_h = 0xffffffffffffffff - and x1, x1, #127 // bit_length %= 128 - lsr x14, x14, x1 // rkN_h is mask for top 64b of last block - cmp x1, #64 - csel x6, x13, x14, lt - csel x7, x14, xzr, lt - fmov d0, x6 // ctr0b is mask for last block - fmov v0.d[1], x7 - and v5.16b, v5.16b, v0.16b // possibly partial last block has zeroes in highest bits +.Lenc_blocks_1_remaining: // blocks_left = 1 rev64 v4.16b, v5.16b // GHASH final block eor v4.16b, v4.16b, v8.16b // feed in partial tag - bif v5.16b, v18.16b, v0.16b // insert existing bytes in top end of result before storing pmull2 v20.1q, v4.2d, v12.2d // GHASH final block - high mov d8, v4.d[1] // GHASH final block - mid rev w9, w12 @@ -843,15 +824,12 @@ aes_gcm_dec_kernel: aese v0.16b, v18.16b aesmc v0.16b, v0.16b // AES block 0 - round 0 ldr q14, [x6, #48] // load h3l | h3h - ext v14.16b, v14.16b, v14.16b, #8 aese v3.16b, v18.16b aesmc v3.16b, v3.16b // AES block 3 - round 0 ldr q15, [x6, #80] // load h4l | h4h - ext v15.16b, v15.16b, v15.16b, #8 aese v1.16b, v18.16b aesmc v1.16b, v1.16b // AES block 1 - round 0 ldr q13, [x6, #32] // load h2l | h2h - ext v13.16b, v13.16b, v13.16b, #8 aese v2.16b, v18.16b aesmc v2.16b, v2.16b // AES block 2 - round 0 ldr q20, [x8, #32] // load rk2 @@ -871,7 +849,6 @@ aes_gcm_dec_kernel: aese v0.16b, v20.16b aesmc v0.16b, v0.16b // AES block 0 - round 2 ldr q12, [x6] // load h1l | h1h - ext v12.16b, v12.16b, v12.16b, #8 aese v2.16b, v20.16b aesmc v2.16b, v2.16b // AES block 2 - round 2 ldr q28, [x8, #160] // load rk10 @@ -1426,7 +1403,7 @@ aes_gcm_dec_kernel: cmp x5, #48 eor x6, x6, x13 // AES block 4k+4 - round N low eor x7, x7, x14 // AES block 4k+4 - round N high - b.gt .Ldec_blocks_more_than_3 + b.gt .Ldec_blocks_4_remaining sub w12, w12, #1 mov v3.16b, v2.16b movi v10.8b, #0 @@ -1434,14 +1411,14 @@ aes_gcm_dec_kernel: cmp x5, #32 movi v9.8b, #0 mov v2.16b, v1.16b - b.gt .Ldec_blocks_more_than_2 + b.gt .Ldec_blocks_3_remaining sub w12, w12, #1 mov v3.16b, v1.16b cmp x5, #16 - b.gt .Ldec_blocks_more_than_1 + b.gt .Ldec_blocks_2_remaining sub w12, w12, #1 - b .Ldec_blocks_less_than_1 -.Ldec_blocks_more_than_3: // blocks left > 3 + b .Ldec_blocks_1_remaining +.Ldec_blocks_4_remaining: // blocks left = 4 rev64 v4.16b, v5.16b // GHASH final-3 block ld1 { v5.16b}, [x0], #16 // AES final-2 block - load ciphertext stp x6, x7, [x2], #16 // AES final-3 block - store result @@ -1458,7 +1435,7 @@ aes_gcm_dec_kernel: eor x6, x6, x13 // AES final-2 block - round N low pmull v11.1q, v4.1d, v15.1d // GHASH final-3 block - low eor x7, x7, x14 // AES final-2 block - round N high -.Ldec_blocks_more_than_2: // blocks left > 2 +.Ldec_blocks_3_remaining: // blocks left = 3 rev64 v4.16b, v5.16b // GHASH final-2 block ld1 { v5.16b}, [x0], #16 // AES final-1 block - load ciphertext eor v4.16b, v4.16b, v8.16b // feed in partial tag @@ -1477,7 +1454,7 @@ aes_gcm_dec_kernel: eor x6, x6, x13 // AES final-1 block - round N low eor v10.16b, v10.16b, v22.16b // GHASH final-2 block - mid eor x7, x7, x14 // AES final-1 block - round N high -.Ldec_blocks_more_than_1: // blocks left > 1 +.Ldec_blocks_2_remaining: // blocks left = 2 stp x6, x7, [x2], #16 // AES final-1 block - store result rev64 v4.16b, v5.16b // GHASH final-1 block ld1 { v5.16b}, [x0], #16 // AES final block - load ciphertext @@ -1497,28 +1474,8 @@ aes_gcm_dec_kernel: eor v9.16b, v9.16b, v20.16b // GHASH final-1 block - high eor v10.16b, v10.16b, v22.16b // GHASH final-1 block - mid eor x7, x7, x14 // AES final block - round N high -.Ldec_blocks_less_than_1: // blocks left <= 1 - and x1, x1, #127 // bit_length %= 128 - mvn x14, xzr // rkN_h = 0xffffffffffffffff - sub x1, x1, #128 // bit_length -= 128 - mvn x13, xzr // rkN_l = 0xffffffffffffffff - ldp x4, x5, [x2] // load existing bytes we need to not overwrite - neg x1, x1 // bit_length = 128 - #bits in input (in range [1,128]) - and x1, x1, #127 // bit_length %= 128 - lsr x14, x14, x1 // rkN_h is mask for top 64b of last block - cmp x1, #64 - csel x9, x13, x14, lt - csel x10, x14, xzr, lt - fmov d0, x9 // ctr0b is mask for last block - and x6, x6, x9 - mov v0.d[1], x10 - bic x4, x4, x9 // mask out low existing bytes +.Ldec_blocks_1_remaining: // blocks_left = 1 rev w9, w12 - bic x5, x5, x10 // mask out high existing bytes - orr x6, x6, x4 - and x7, x7, x10 - orr x7, x7, x5 - and v5.16b, v5.16b, v0.16b // possibly partial last block has zeroes in highest bits rev64 v4.16b, v5.16b // GHASH final block eor v4.16b, v4.16b, v8.16b // feed in partial tag pmull v21.1q, v4.1d, v12.1d // GHASH final block - low diff --git a/generated-src/linux-aarch64/crypto/fipsmodule/ghashv8-armx.S b/generated-src/linux-aarch64/crypto/fipsmodule/ghashv8-armx.S index cf2f72b693..cab17deced 100644 --- a/generated-src/linux-aarch64/crypto/fipsmodule/ghashv8-armx.S +++ b/generated-src/linux-aarch64/crypto/fipsmodule/ghashv8-armx.S @@ -30,13 +30,14 @@ gcm_init_v8: and v16.16b,v16.16b,v17.16b orr v3.16b,v3.16b,v18.16b //H<<<=1 eor v20.16b,v3.16b,v16.16b //twisted H + ext v20.16b, v20.16b, v20.16b, #8 st1 {v20.2d},[x0],#16 //store Htable[0] - //calculate H^2 + //calculate H^2 ext v16.16b,v20.16b,v20.16b,#8 //Karatsuba pre-processing - pmull v0.1q,v20.1d,v20.1d + pmull2 v0.1q,v20.2d,v20.2d eor v16.16b,v16.16b,v20.16b - pmull2 v2.1q,v20.2d,v20.2d + pmull v2.1q,v20.1d,v20.1d pmull v1.1q,v16.1d,v16.1d ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing @@ -52,17 +53,19 @@ gcm_init_v8: ext v18.16b,v0.16b,v0.16b,#8 //2nd phase pmull v0.1q,v0.1d,v19.1d eor v18.16b,v18.16b,v2.16b - eor v22.16b,v0.16b,v18.16b + eor v17.16b,v0.16b,v18.16b - ext v17.16b,v22.16b,v22.16b,#8 //Karatsuba pre-processing + ext v22.16b,v17.16b,v17.16b,#8 //Karatsuba pre-processing eor v17.16b,v17.16b,v22.16b ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed - st1 {v21.2d,v22.2d},[x0],#32 //store Htable[1..2] + st1 {v21.2d},[x0],#16 //store Htable[1..2] + st1 {v22.2d},[x0],#16 //store Htable[1..2] + //calculate H^3 and H^4 - pmull v0.1q,v20.1d, v22.1d - pmull v5.1q,v22.1d,v22.1d - pmull2 v2.1q,v20.2d, v22.2d - pmull2 v7.1q,v22.2d,v22.2d + pmull2 v0.1q,v20.2d, v22.2d + pmull2 v5.1q,v22.2d,v22.2d + pmull v2.1q,v20.1d, v22.1d + pmull v7.1q,v22.1d,v22.1d pmull v1.1q,v16.1d,v17.1d pmull v6.1q,v17.1d,v17.1d @@ -91,11 +94,11 @@ gcm_init_v8: eor v18.16b,v18.16b,v2.16b eor v4.16b,v4.16b,v7.16b - eor v23.16b, v0.16b,v18.16b //H^3 - eor v25.16b,v5.16b,v4.16b //H^4 + eor v16.16b, v0.16b,v18.16b //H^3 + eor v17.16b, v5.16b,v4.16b //H^4 - ext v16.16b,v23.16b, v23.16b,#8 //Karatsuba pre-processing - ext v17.16b,v25.16b,v25.16b,#8 + ext v23.16b,v16.16b,v16.16b,#8 //Karatsuba pre-processing + ext v25.16b,v17.16b,v17.16b,#8 ext v18.16b,v22.16b,v22.16b,#8 eor v16.16b,v16.16b,v23.16b eor v17.16b,v17.16b,v25.16b @@ -104,10 +107,10 @@ gcm_init_v8: st1 {v23.2d,v24.2d,v25.2d},[x0],#48 //store Htable[3..5] //calculate H^5 and H^6 - pmull v0.1q,v22.1d, v23.1d - pmull v5.1q,v23.1d,v23.1d - pmull2 v2.1q,v22.2d, v23.2d - pmull2 v7.1q,v23.2d,v23.2d + pmull2 v0.1q,v22.2d, v23.2d + pmull2 v5.1q,v23.2d,v23.2d + pmull v2.1q,v22.1d, v23.1d + pmull v7.1q,v23.1d,v23.1d pmull v1.1q,v16.1d,v18.1d pmull v6.1q,v16.1d,v16.1d @@ -135,11 +138,12 @@ gcm_init_v8: pmull v5.1q,v5.1d,v19.1d eor v18.16b,v18.16b,v2.16b eor v4.16b,v4.16b,v7.16b - eor v26.16b,v0.16b,v18.16b //H^5 - eor v28.16b,v5.16b,v4.16b //H^6 - ext v16.16b,v26.16b, v26.16b,#8 //Karatsuba pre-processing - ext v17.16b,v28.16b,v28.16b,#8 + eor v16.16b,v0.16b,v18.16b //H^5 + eor v17.16b,v5.16b,v4.16b //H^6 + + ext v26.16b, v16.16b, v16.16b,#8 //Karatsuba pre-processing + ext v28.16b, v17.16b, v17.16b,#8 ext v18.16b,v22.16b,v22.16b,#8 eor v16.16b,v16.16b,v26.16b eor v17.16b,v17.16b,v28.16b @@ -148,10 +152,10 @@ gcm_init_v8: st1 {v26.2d,v27.2d,v28.2d},[x0],#48 //store Htable[6..8] //calculate H^7 and H^8 - pmull v0.1q,v22.1d,v26.1d - pmull v5.1q,v22.1d,v28.1d - pmull2 v2.1q,v22.2d,v26.2d - pmull2 v7.1q,v22.2d,v28.2d + pmull2 v0.1q,v22.2d,v26.2d + pmull2 v5.1q,v22.2d,v28.2d + pmull v2.1q,v22.1d,v26.1d + pmull v7.1q,v22.1d,v28.1d pmull v1.1q,v16.1d,v18.1d pmull v6.1q,v17.1d,v18.1d @@ -179,11 +183,11 @@ gcm_init_v8: pmull v5.1q,v5.1d,v19.1d eor v18.16b,v18.16b,v2.16b eor v4.16b,v4.16b,v7.16b - eor v29.16b,v0.16b,v18.16b //H^7 - eor v31.16b,v5.16b,v4.16b //H^8 + eor v16.16b,v0.16b,v18.16b //H^7 + eor v17.16b,v5.16b,v4.16b //H^8 - ext v16.16b,v29.16b,v29.16b,#8 //Karatsuba pre-processing - ext v17.16b,v31.16b,v31.16b,#8 + ext v29.16b,v16.16b,v16.16b,#8 //Karatsuba pre-processing + ext v31.16b,v17.16b,v17.16b,#8 eor v16.16b,v16.16b,v29.16b eor v17.16b,v17.16b,v31.16b ext v30.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed @@ -199,6 +203,7 @@ gcm_gmult_v8: ld1 {v17.2d},[x0] //load Xi movi v19.16b,#0xe1 ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... + ext v20.16b,v20.16b,v20.16b,#8 shl v19.2d,v19.2d,#57 #ifndef __AARCH64EB__ rev64 v17.16b,v17.16b @@ -258,8 +263,10 @@ gcm_ghash_v8: //loaded twice, but last //copy is not processed ld1 {v20.2d,v21.2d},[x1],#32 //load twisted H, ..., H^2 + ext v20.16b,v20.16b,v20.16b,#8 movi v19.16b,#0xe1 ld1 {v22.2d},[x1] + ext v22.16b,v22.16b,v22.16b,#8 csel x12,xzr,x12,eq //is it time to zero x12? ext v0.16b,v0.16b,v0.16b,#8 //rotate Xi ld1 {v16.2d},[x2],#16 //load [rotated] I[0] @@ -373,8 +380,12 @@ gcm_ghash_v8_4x: .Lgcm_ghash_v8_4x: ld1 {v0.2d},[x0] //load [rotated] Xi ld1 {v20.2d,v21.2d,v22.2d},[x1],#48 //load twisted H, ..., H^2 + ext v20.16b,v20.16b,v20.16b,#8 + ext v22.16b,v22.16b,v22.16b,#8 movi v19.16b,#0xe1 ld1 {v26.2d,v27.2d,v28.2d},[x1] //load twisted H^3, ..., H^4 + ext v26.16b,v26.16b,v26.16b,#8 + ext v28.16b,v28.16b,v28.16b,#8 shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 diff --git a/generated-src/linux-aarch64/crypto/fipsmodule/sha1-armv8.S b/generated-src/linux-aarch64/crypto/fipsmodule/sha1-armv8.S index a18a8a5578..f2df2dd30c 100644 --- a/generated-src/linux-aarch64/crypto/fipsmodule/sha1-armv8.S +++ b/generated-src/linux-aarch64/crypto/fipsmodule/sha1-armv8.S @@ -8,23 +8,13 @@ .text - -.hidden OPENSSL_armcap_P -.globl sha1_block_data_order -.hidden sha1_block_data_order -.type sha1_block_data_order,%function +.globl sha1_block_data_order_nohw +.hidden sha1_block_data_order_nohw +.type sha1_block_data_order_nohw,%function .align 6 -sha1_block_data_order: +sha1_block_data_order_nohw: // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET -#if defined(OPENSSL_HWASAN) && __clang_major__ >= 10 - adrp x16,:pg_hi21_nc:OPENSSL_armcap_P -#else - adrp x16,OPENSSL_armcap_P -#endif - ldr w16,[x16,:lo12:OPENSSL_armcap_P] - tst w16,#ARMV8_SHA1 - b.ne .Lv8_entry stp x29,x30,[sp,#-96]! add x29,sp,#0 @@ -1080,13 +1070,14 @@ sha1_block_data_order: ldp x27,x28,[sp,#80] ldr x29,[sp],#96 ret -.size sha1_block_data_order,.-sha1_block_data_order -.type sha1_block_armv8,%function +.size sha1_block_data_order_nohw,.-sha1_block_data_order_nohw +.globl sha1_block_data_order_hw +.hidden sha1_block_data_order_hw +.type sha1_block_data_order_hw,%function .align 6 -sha1_block_armv8: +sha1_block_data_order_hw: // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET -.Lv8_entry: stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -1213,7 +1204,7 @@ sha1_block_armv8: ldr x29,[sp],#16 ret -.size sha1_block_armv8,.-sha1_block_armv8 +.size sha1_block_data_order_hw,.-sha1_block_data_order_hw .section .rodata .align 6 .Lconst: diff --git a/generated-src/linux-aarch64/crypto/fipsmodule/sha256-armv8.S b/generated-src/linux-aarch64/crypto/fipsmodule/sha256-armv8.S index 564f166f31..b66f6ae408 100644 --- a/generated-src/linux-aarch64/crypto/fipsmodule/sha256-armv8.S +++ b/generated-src/linux-aarch64/crypto/fipsmodule/sha256-armv8.S @@ -50,24 +50,11 @@ .text - -.hidden OPENSSL_armcap_P -.globl sha256_block_data_order -.hidden sha256_block_data_order -.type sha256_block_data_order,%function +.globl sha256_block_data_order_nohw +.hidden sha256_block_data_order_nohw +.type sha256_block_data_order_nohw,%function .align 6 -sha256_block_data_order: - AARCH64_VALID_CALL_TARGET -#ifndef __KERNEL__ -#if defined(OPENSSL_HWASAN) && __clang_major__ >= 10 - adrp x16,:pg_hi21_nc:OPENSSL_armcap_P -#else - adrp x16,OPENSSL_armcap_P -#endif - ldr w16,[x16,:lo12:OPENSSL_armcap_P] - tst w16,#ARMV8_SHA256 - b.ne .Lv8_entry -#endif +sha256_block_data_order_nohw: AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -1031,7 +1018,7 @@ sha256_block_data_order: ldp x29,x30,[sp],#128 AARCH64_VALIDATE_LINK_REGISTER ret -.size sha256_block_data_order,.-sha256_block_data_order +.size sha256_block_data_order_nohw,.-sha256_block_data_order_nohw .section .rodata .align 6 @@ -1060,10 +1047,11 @@ sha256_block_data_order: .align 2 .text #ifndef __KERNEL__ -.type sha256_block_armv8,%function +.globl sha256_block_data_order_hw +.hidden sha256_block_data_order_hw +.type sha256_block_data_order_hw,%function .align 6 -sha256_block_armv8: -.Lv8_entry: +sha256_block_data_order_hw: #ifdef BORINGSSL_DISPATCH_TEST adrp x9,BORINGSSL_function_hit @@ -1072,6 +1060,7 @@ sha256_block_armv8: strb w10, [x9,#6] // kFlag_sha256_hw #endif // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -1206,6 +1195,6 @@ sha256_block_armv8: ldr x29,[sp],#16 ret -.size sha256_block_armv8,.-sha256_block_armv8 +.size sha256_block_data_order_hw,.-sha256_block_data_order_hw #endif #endif // !OPENSSL_NO_ASM && defined(OPENSSL_AARCH64) && defined(__ELF__) diff --git a/generated-src/linux-aarch64/crypto/fipsmodule/sha512-armv8.S b/generated-src/linux-aarch64/crypto/fipsmodule/sha512-armv8.S index 4e5563cd11..6aa688f8ae 100644 --- a/generated-src/linux-aarch64/crypto/fipsmodule/sha512-armv8.S +++ b/generated-src/linux-aarch64/crypto/fipsmodule/sha512-armv8.S @@ -50,24 +50,11 @@ .text - -.hidden OPENSSL_armcap_P -.globl sha512_block_data_order -.hidden sha512_block_data_order -.type sha512_block_data_order,%function +.globl sha512_block_data_order_nohw +.hidden sha512_block_data_order_nohw +.type sha512_block_data_order_nohw,%function .align 6 -sha512_block_data_order: - AARCH64_VALID_CALL_TARGET -#ifndef __KERNEL__ -#if defined(OPENSSL_HWASAN) && __clang_major__ >= 10 - adrp x16,:pg_hi21_nc:OPENSSL_armcap_P -#else - adrp x16,OPENSSL_armcap_P -#endif - ldr w16,[x16,:lo12:OPENSSL_armcap_P] - tst w16,#ARMV8_SHA512 - b.ne .Lv8_entry -#endif +sha512_block_data_order_nohw: AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -1031,7 +1018,7 @@ sha512_block_data_order: ldp x29,x30,[sp],#128 AARCH64_VALIDATE_LINK_REGISTER ret -.size sha512_block_data_order,.-sha512_block_data_order +.size sha512_block_data_order_nohw,.-sha512_block_data_order_nohw .section .rodata .align 6 @@ -1084,10 +1071,11 @@ sha512_block_data_order: .align 2 .text #ifndef __KERNEL__ -.type sha512_block_armv8,%function +.globl sha512_block_data_order_hw +.hidden sha512_block_data_order_hw +.type sha512_block_data_order_hw,%function .align 6 -sha512_block_armv8: -.Lv8_entry: +sha512_block_data_order_hw: #ifdef BORINGSSL_DISPATCH_TEST adrp x9,BORINGSSL_function_hit @@ -1095,6 +1083,8 @@ sha512_block_armv8: mov w10, #1 strb w10, [x9,#8] // kFlag_sha512_hw #endif + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -1608,6 +1598,6 @@ sha512_block_armv8: ldr x29,[sp],#16 ret -.size sha512_block_armv8,.-sha512_block_armv8 +.size sha512_block_data_order_hw,.-sha512_block_data_order_hw #endif #endif // !OPENSSL_NO_ASM && defined(OPENSSL_AARCH64) && defined(__ELF__) diff --git a/generated-src/linux-arm/crypto/fipsmodule/ghashv8-armx.S b/generated-src/linux-arm/crypto/fipsmodule/ghashv8-armx.S index fab4c124c2..470a2a934e 100644 --- a/generated-src/linux-arm/crypto/fipsmodule/ghashv8-armx.S +++ b/generated-src/linux-arm/crypto/fipsmodule/ghashv8-armx.S @@ -32,13 +32,14 @@ gcm_init_v8: vand q8,q8,q9 vorr q3,q3,q10 @ H<<<=1 veor q12,q3,q8 @ twisted H + vext.8 q12, q12, q12, #8 vst1.64 {q12},[r0]! @ store Htable[0] - @ calculate H^2 + @ calculate H^2 vext.8 q8,q12,q12,#8 @ Karatsuba pre-processing -.byte 0xa8,0x0e,0xa8,0xf2 @ pmull q0,q12,q12 +.byte 0xa9,0x0e,0xa9,0xf2 @ pmull2 q0,q12,q12 veor q8,q8,q12 -.byte 0xa9,0x4e,0xa9,0xf2 @ pmull2 q2,q12,q12 +.byte 0xa8,0x4e,0xa8,0xf2 @ pmull q2,q12,q12 .byte 0xa0,0x2e,0xa0,0xf2 @ pmull q1,q8,q8 vext.8 q9,q0,q2,#8 @ Karatsuba post-processing @@ -54,12 +55,13 @@ gcm_init_v8: vext.8 q10,q0,q0,#8 @ 2nd phase .byte 0x26,0x0e,0xa0,0xf2 @ pmull q0,q0,q11 veor q10,q10,q2 - veor q14,q0,q10 + veor q9,q0,q10 - vext.8 q9,q14,q14,#8 @ Karatsuba pre-processing + vext.8 q14,q9,q9,#8 @ Karatsuba pre-processing veor q9,q9,q14 vext.8 q13,q8,q9,#8 @ pack Karatsuba pre-processed - vst1.64 {q13,q14},[r0]! @ store Htable[1..2] + vst1.64 {q13},[r0]! @ store Htable[1..2] + vst1.64 {q14},[r0]! @ store Htable[1..2] bx lr .size gcm_init_v8,.-gcm_init_v8 .globl gcm_gmult_v8 @@ -71,6 +73,7 @@ gcm_gmult_v8: vld1.64 {q9},[r0] @ load Xi vmov.i8 q11,#0xe1 vld1.64 {q12,q13},[r1] @ load twisted H, ... + vext.8 q12,q12,q12,#8 vshl.u64 q11,q11,#57 #ifndef __ARMEB__ vrev64.8 q9,q9 @@ -129,8 +132,10 @@ gcm_ghash_v8: @ loaded twice, but last @ copy is not processed vld1.64 {q12,q13},[r1]! @ load twisted H, ..., H^2 + vext.8 q12,q12,q12,#8 vmov.i8 q11,#0xe1 vld1.64 {q14},[r1] + vext.8 q14,q14,q14,#8 moveq r12,#0 @ is it time to zero r12? vext.8 q0,q0,q0,#8 @ rotate Xi vld1.64 {q8},[r2]! @ load [rotated] I[0] diff --git a/generated-src/linux-x86_64/crypto/chacha/chacha-x86_64.S b/generated-src/linux-x86_64/crypto/chacha/chacha-x86_64.S index f937fb41e7..caea7a015b 100644 --- a/generated-src/linux-x86_64/crypto/chacha/chacha-x86_64.S +++ b/generated-src/linux-x86_64/crypto/chacha/chacha-x86_64.S @@ -6,9 +6,6 @@ #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__ELF__) .text -.extern OPENSSL_ia32cap_P -.hidden OPENSSL_ia32cap_P - .section .rodata .align 64 .Lzero: @@ -40,18 +37,13 @@ .long 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .text -.globl ChaCha20_ctr32 -.hidden ChaCha20_ctr32 -.type ChaCha20_ctr32,@function +.globl ChaCha20_ctr32_nohw +.hidden ChaCha20_ctr32_nohw +.type ChaCha20_ctr32_nohw,@function .align 64 -ChaCha20_ctr32: +ChaCha20_ctr32_nohw: .cfi_startproc - cmpq $0,%rdx - je .Lno_data - movq OPENSSL_ia32cap_P+4(%rip),%r10 - testl $512,%r10d - jnz .LChaCha20_ssse3 - +_CET_ENDBR pushq %rbx .cfi_adjust_cfa_offset 8 .cfi_offset rbx,-16 @@ -328,18 +320,16 @@ ChaCha20_ctr32: .Lno_data: .byte 0xf3,0xc3 .cfi_endproc -.size ChaCha20_ctr32,.-ChaCha20_ctr32 -.type ChaCha20_ssse3,@function +.size ChaCha20_ctr32_nohw,.-ChaCha20_ctr32_nohw +.globl ChaCha20_ctr32_ssse3 +.hidden ChaCha20_ctr32_ssse3 +.type ChaCha20_ctr32_ssse3,@function .align 32 -ChaCha20_ssse3: -.LChaCha20_ssse3: +ChaCha20_ctr32_ssse3: .cfi_startproc +_CET_ENDBR movq %rsp,%r9 .cfi_def_cfa_register r9 - cmpq $128,%rdx - ja .LChaCha20_4x - -.Ldo_sse3_after_all: subq $64+8,%rsp movdqa .Lsigma(%rip),%xmm0 movdqu (%rcx),%xmm1 @@ -465,26 +455,17 @@ ChaCha20_ssse3: .Lssse3_epilogue: .byte 0xf3,0xc3 .cfi_endproc -.size ChaCha20_ssse3,.-ChaCha20_ssse3 -.type ChaCha20_4x,@function +.size ChaCha20_ctr32_ssse3,.-ChaCha20_ctr32_ssse3 +.globl ChaCha20_ctr32_ssse3_4x +.hidden ChaCha20_ctr32_ssse3_4x +.type ChaCha20_ctr32_ssse3_4x,@function .align 32 -ChaCha20_4x: -.LChaCha20_4x: +ChaCha20_ctr32_ssse3_4x: .cfi_startproc +_CET_ENDBR movq %rsp,%r9 .cfi_def_cfa_register r9 movq %r10,%r11 - shrq $32,%r10 - testq $32,%r10 - jnz .LChaCha20_8x - cmpq $192,%rdx - ja .Lproceed4x - - andq $71303168,%r11 - cmpq $4194304,%r11 - je .Ldo_sse3_after_all - -.Lproceed4x: subq $0x140+8,%rsp movdqa .Lsigma(%rip),%xmm11 movdqu (%rcx),%xmm15 @@ -1017,12 +998,14 @@ ChaCha20_4x: .L4x_epilogue: .byte 0xf3,0xc3 .cfi_endproc -.size ChaCha20_4x,.-ChaCha20_4x -.type ChaCha20_8x,@function +.size ChaCha20_ctr32_ssse3_4x,.-ChaCha20_ctr32_ssse3_4x +.globl ChaCha20_ctr32_avx2 +.hidden ChaCha20_ctr32_avx2 +.type ChaCha20_ctr32_avx2,@function .align 32 -ChaCha20_8x: -.LChaCha20_8x: +ChaCha20_ctr32_avx2: .cfi_startproc +_CET_ENDBR movq %rsp,%r9 .cfi_def_cfa_register r9 subq $0x280+8,%rsp @@ -1623,5 +1606,5 @@ ChaCha20_8x: .L8x_epilogue: .byte 0xf3,0xc3 .cfi_endproc -.size ChaCha20_8x,.-ChaCha20_8x +.size ChaCha20_ctr32_avx2,.-ChaCha20_ctr32_avx2 #endif diff --git a/generated-src/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S b/generated-src/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S index 256248c86a..de40470556 100644 --- a/generated-src/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S +++ b/generated-src/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S @@ -71,6 +71,7 @@ GFMUL: .align 16 aesgcmsiv_htable_init: .cfi_startproc +_CET_ENDBR vmovdqa (%rsi),%xmm0 vmovdqa %xmm0,%xmm1 vmovdqa %xmm0,(%rdi) @@ -97,6 +98,7 @@ aesgcmsiv_htable_init: .align 16 aesgcmsiv_htable6_init: .cfi_startproc +_CET_ENDBR vmovdqa (%rsi),%xmm0 vmovdqa %xmm0,%xmm1 vmovdqa %xmm0,(%rdi) @@ -119,6 +121,7 @@ aesgcmsiv_htable6_init: .align 16 aesgcmsiv_htable_polyval: .cfi_startproc +_CET_ENDBR testq %rdx,%rdx jnz .Lhtable_polyval_start .byte 0xf3,0xc3 @@ -336,6 +339,7 @@ aesgcmsiv_htable_polyval: .align 16 aesgcmsiv_polyval_horner: .cfi_startproc +_CET_ENDBR testq %rcx,%rcx jnz .Lpolyval_horner_start .byte 0xf3,0xc3 @@ -369,6 +373,7 @@ aesgcmsiv_polyval_horner: .align 16 aes128gcmsiv_aes_ks: .cfi_startproc +_CET_ENDBR vmovdqu (%rdi),%xmm1 vmovdqa %xmm1,(%rsi) @@ -425,6 +430,7 @@ aes128gcmsiv_aes_ks: .align 16 aes256gcmsiv_aes_ks: .cfi_startproc +_CET_ENDBR vmovdqu (%rdi),%xmm1 vmovdqu 16(%rdi),%xmm3 vmovdqa %xmm1,(%rsi) @@ -472,6 +478,7 @@ aes256gcmsiv_aes_ks: .align 16 aes128gcmsiv_aes_ks_enc_x1: .cfi_startproc +_CET_ENDBR vmovdqa (%rcx),%xmm1 vmovdqa 0(%rdi),%xmm4 @@ -614,6 +621,7 @@ aes128gcmsiv_aes_ks_enc_x1: .align 16 aes128gcmsiv_kdf: .cfi_startproc +_CET_ENDBR @@ -707,6 +715,7 @@ aes128gcmsiv_kdf: .align 16 aes128gcmsiv_enc_msg_x4: .cfi_startproc +_CET_ENDBR testq %r8,%r8 jnz .L128_enc_msg_x4_start .byte 0xf3,0xc3 @@ -886,6 +895,7 @@ aes128gcmsiv_enc_msg_x4: .align 16 aes128gcmsiv_enc_msg_x8: .cfi_startproc +_CET_ENDBR testq %r8,%r8 jnz .L128_enc_msg_x8_start .byte 0xf3,0xc3 @@ -1147,6 +1157,7 @@ aes128gcmsiv_enc_msg_x8: .align 16 aes128gcmsiv_dec: .cfi_startproc +_CET_ENDBR testq $~15,%r9 jnz .L128_dec_start .byte 0xf3,0xc3 @@ -1154,14 +1165,15 @@ aes128gcmsiv_dec: .L128_dec_start: vzeroupper vmovdqa (%rdx),%xmm0 + + + vmovdqu 16(%rdx),%xmm15 + vpor OR_MASK(%rip),%xmm15,%xmm15 movq %rdx,%rax leaq 32(%rax),%rax leaq 32(%rcx),%rcx - - vmovdqu (%rdi,%r9,1),%xmm15 - vpor OR_MASK(%rip),%xmm15,%xmm15 andq $~15,%r9 @@ -1639,6 +1651,7 @@ aes128gcmsiv_dec: .align 16 aes128gcmsiv_ecb_enc_block: .cfi_startproc +_CET_ENDBR vmovdqa (%rdi),%xmm1 vpxor (%rdx),%xmm1,%xmm1 @@ -1664,6 +1677,7 @@ aes128gcmsiv_ecb_enc_block: .align 16 aes256gcmsiv_aes_ks_enc_x1: .cfi_startproc +_CET_ENDBR vmovdqa con1(%rip),%xmm0 vmovdqa mask(%rip),%xmm15 vmovdqa (%rdi),%xmm8 @@ -1847,6 +1861,7 @@ aes256gcmsiv_aes_ks_enc_x1: .align 16 aes256gcmsiv_ecb_enc_block: .cfi_startproc +_CET_ENDBR vmovdqa (%rdi),%xmm1 vpxor (%rdx),%xmm1,%xmm1 vaesenc 16(%rdx),%xmm1,%xmm1 @@ -1873,6 +1888,7 @@ aes256gcmsiv_ecb_enc_block: .align 16 aes256gcmsiv_enc_msg_x4: .cfi_startproc +_CET_ENDBR testq %r8,%r8 jnz .L256_enc_msg_x4_start .byte 0xf3,0xc3 @@ -2074,6 +2090,7 @@ aes256gcmsiv_enc_msg_x4: .align 16 aes256gcmsiv_enc_msg_x8: .cfi_startproc +_CET_ENDBR testq %r8,%r8 jnz .L256_enc_msg_x8_start .byte 0xf3,0xc3 @@ -2363,6 +2380,7 @@ aes256gcmsiv_enc_msg_x8: .align 16 aes256gcmsiv_dec: .cfi_startproc +_CET_ENDBR testq $~15,%r9 jnz .L256_dec_start .byte 0xf3,0xc3 @@ -2370,14 +2388,15 @@ aes256gcmsiv_dec: .L256_dec_start: vzeroupper vmovdqa (%rdx),%xmm0 + + + vmovdqu 16(%rdx),%xmm15 + vpor OR_MASK(%rip),%xmm15,%xmm15 movq %rdx,%rax leaq 32(%rax),%rax leaq 32(%rcx),%rcx - - vmovdqu (%rdi,%r9,1),%xmm15 - vpor OR_MASK(%rip),%xmm15,%xmm15 andq $~15,%r9 @@ -2923,6 +2942,7 @@ aes256gcmsiv_dec: .align 16 aes256gcmsiv_kdf: .cfi_startproc +_CET_ENDBR diff --git a/generated-src/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S b/generated-src/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S index 2239142ae7..97a2ce24ed 100644 --- a/generated-src/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S +++ b/generated-src/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S @@ -223,6 +223,7 @@ poly_hash_ad_internal: .align 64 chacha20_poly1305_open: .cfi_startproc +_CET_ENDBR pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -2108,6 +2109,7 @@ chacha20_poly1305_open: .align 64 chacha20_poly1305_seal: .cfi_startproc +_CET_ENDBR pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/aesni-gcm-avx512.S b/generated-src/linux-x86_64/crypto/fipsmodule/aesni-gcm-avx512.S index d223f3b198..ae08df7306 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/aesni-gcm-avx512.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/aesni-gcm-avx512.S @@ -4,6 +4,7 @@ #include #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__ELF__) +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .text .globl gcm_init_avx512 .hidden gcm_init_avx512 @@ -136464,3 +136465,4 @@ byte64_len_to_mask_table: .quad 0xffffffffffffffff .text #endif +#endif diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S b/generated-src/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S index 057b0a3cb4..a5209d462e 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S @@ -346,6 +346,7 @@ _aesni_ctr32_ghash_6x: aesni_gcm_decrypt: .cfi_startproc +_CET_ENDBR xorq %rax,%rax @@ -569,6 +570,7 @@ _aesni_ctr32_6x: aesni_gcm_encrypt: .cfi_startproc +_CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit .hidden BORINGSSL_function_hit diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S b/generated-src/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S index 41fbd7a269..ff7185f8c5 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S @@ -13,6 +13,7 @@ .align 16 aes_hw_encrypt: .cfi_startproc +_CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit .hidden BORINGSSL_function_hit @@ -45,6 +46,7 @@ aes_hw_encrypt: .align 16 aes_hw_decrypt: .cfi_startproc +_CET_ENDBR movups (%rdi),%xmm2 movl 240(%rdx),%eax movups (%rdx),%xmm0 @@ -533,6 +535,7 @@ _aesni_decrypt8: .align 16 aes_hw_ecb_encrypt: .cfi_startproc +_CET_ENDBR andq $-16,%rdx jz .Lecb_ret @@ -878,6 +881,7 @@ aes_hw_ecb_encrypt: .align 16 aes_hw_ctr32_encrypt_blocks: .cfi_startproc +_CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST movb $1,BORINGSSL_function_hit(%rip) #endif @@ -1463,6 +1467,7 @@ aes_hw_ctr32_encrypt_blocks: .align 16 aes_hw_xts_encrypt: .cfi_startproc +_CET_ENDBR leaq (%rsp),%r11 .cfi_def_cfa_register %r11 pushq %rbp @@ -1934,6 +1939,7 @@ aes_hw_xts_encrypt: .align 16 aes_hw_xts_decrypt: .cfi_startproc +_CET_ENDBR leaq (%rsp),%r11 .cfi_def_cfa_register %r11 pushq %rbp @@ -2442,6 +2448,7 @@ aes_hw_xts_decrypt: .align 16 aes_hw_cbc_encrypt: .cfi_startproc +_CET_ENDBR testq %rdx,%rdx jz .Lcbc_ret @@ -3035,6 +3042,7 @@ aes_hw_cbc_encrypt: .align 16 aes_hw_set_decrypt_key: .cfi_startproc +_CET_ENDBR .byte 0x48,0x83,0xEC,0x08 .cfi_adjust_cfa_offset 8 call __aesni_set_encrypt_key @@ -3081,6 +3089,7 @@ aes_hw_set_decrypt_key: aes_hw_set_encrypt_key: __aesni_set_encrypt_key: .cfi_startproc +_CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST movb $1,BORINGSSL_function_hit+3(%rip) #endif diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/aesni-xts-avx512.S b/generated-src/linux-x86_64/crypto/fipsmodule/aesni-xts-avx512.S index 6e5486e9e7..b2e31bd9e8 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/aesni-xts-avx512.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/aesni-xts-avx512.S @@ -4,6 +4,7 @@ #include #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__ELF__) +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .text .globl aes_hw_xts_encrypt_avx512 .hidden aes_hw_xts_encrypt_avx512 @@ -5226,3 +5227,4 @@ shufb_15_7: .text #endif +#endif diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S b/generated-src/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S index 0f34b08bb4..3b87b47959 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S @@ -17,6 +17,7 @@ gcm_gmult_ssse3: .cfi_startproc +_CET_ENDBR movdqu (%rdi),%xmm0 movdqa .Lreverse_bytes(%rip),%xmm10 movdqa .Llow4_mask(%rip),%xmm2 @@ -207,6 +208,7 @@ gcm_gmult_ssse3: gcm_ghash_ssse3: .cfi_startproc +_CET_ENDBR movdqu (%rdi),%xmm0 movdqa .Lreverse_bytes(%rip),%xmm10 movdqa .Llow4_mask(%rip),%xmm11 diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S b/generated-src/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S index c743b11681..5921f1f3c4 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S @@ -14,6 +14,7 @@ gcm_init_clmul: .cfi_startproc +_CET_ENDBR .L_init_clmul: movdqu (%rsi),%xmm2 pshufd $78,%xmm2,%xmm2 @@ -174,6 +175,7 @@ gcm_init_clmul: .align 16 gcm_gmult_clmul: .cfi_startproc +_CET_ENDBR .L_gmult_clmul: movdqu (%rdi),%xmm0 movdqa .Lbswap_mask(%rip),%xmm5 @@ -229,6 +231,7 @@ gcm_gmult_clmul: gcm_ghash_clmul: .cfi_startproc +_CET_ENDBR .L_ghash_clmul: movdqa .Lbswap_mask(%rip),%xmm10 @@ -617,6 +620,7 @@ gcm_ghash_clmul: .align 32 gcm_init_avx: .cfi_startproc +_CET_ENDBR vzeroupper vmovdqu (%rsi),%xmm2 @@ -728,6 +732,7 @@ gcm_init_avx: .align 32 gcm_gmult_avx: .cfi_startproc +_CET_ENDBR jmp .L_gmult_clmul .cfi_endproc .size gcm_gmult_avx,.-gcm_gmult_avx @@ -737,6 +742,7 @@ gcm_gmult_avx: .align 32 gcm_ghash_avx: .cfi_startproc +_CET_ENDBR vzeroupper vmovdqu (%rdi),%xmm10 diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/md5-x86_64.S b/generated-src/linux-x86_64/crypto/fipsmodule/md5-x86_64.S index 17292208ce..43a786cb9a 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/md5-x86_64.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/md5-x86_64.S @@ -12,6 +12,7 @@ .type md5_block_asm_data_order,@function md5_block_asm_data_order: .cfi_startproc +_CET_ENDBR pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset rbp,-16 diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S b/generated-src/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S index cd67d24337..2c81db416f 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S @@ -38,6 +38,7 @@ .align 32 ecp_nistz256_neg: .cfi_startproc +_CET_ENDBR pushq %r12 .cfi_adjust_cfa_offset 8 .cfi_offset %r12,-16 @@ -100,11 +101,14 @@ ecp_nistz256_neg: .align 32 ecp_nistz256_ord_mul_mont: .cfi_startproc +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%rcx movq 8(%rcx),%rcx andl $0x80100,%ecx cmpl $0x80100,%ecx je .Lecp_nistz256_ord_mul_montx +#endif pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -434,11 +438,14 @@ ecp_nistz256_ord_mul_mont: .align 32 ecp_nistz256_ord_sqr_mont: .cfi_startproc +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%rcx movq 8(%rcx),%rcx andl $0x80100,%ecx cmpl $0x80100,%ecx je .Lecp_nistz256_ord_sqr_montx +#endif pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -725,6 +732,7 @@ ecp_nistz256_ord_sqr_mont: .byte 0xf3,0xc3 .cfi_endproc .size ecp_nistz256_ord_sqr_mont,.-ecp_nistz256_ord_sqr_mont +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .type ecp_nistz256_ord_mul_montx,@function .align 32 @@ -1181,6 +1189,7 @@ ecp_nistz256_ord_sqr_montx: .byte 0xf3,0xc3 .cfi_endproc .size ecp_nistz256_ord_sqr_montx,.-ecp_nistz256_ord_sqr_montx +#endif @@ -1193,9 +1202,12 @@ ecp_nistz256_ord_sqr_montx: .align 32 ecp_nistz256_mul_mont: .cfi_startproc +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%rcx movq 8(%rcx),%rcx andl $0x80100,%ecx +#endif .Lmul_mont: pushq %rbp .cfi_adjust_cfa_offset 8 @@ -1216,8 +1228,10 @@ ecp_nistz256_mul_mont: .cfi_adjust_cfa_offset 8 .cfi_offset %r15,-56 .Lmul_body: +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX cmpl $0x80100,%ecx je .Lmul_montx +#endif movq %rdx,%rbx movq 0(%rdx),%rax movq 0(%rsi),%r9 @@ -1226,6 +1240,7 @@ ecp_nistz256_mul_mont: movq 24(%rsi),%r12 call __ecp_nistz256_mul_montq +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX jmp .Lmul_mont_done .align 32 @@ -1239,6 +1254,7 @@ ecp_nistz256_mul_mont: leaq -128(%rsi),%rsi call __ecp_nistz256_mul_montx +#endif .Lmul_mont_done: movq 0(%rsp),%r15 .cfi_restore %r15 @@ -1490,9 +1506,12 @@ __ecp_nistz256_mul_montq: .align 32 ecp_nistz256_sqr_mont: .cfi_startproc +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%rcx movq 8(%rcx),%rcx andl $0x80100,%ecx +#endif pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -1512,14 +1531,17 @@ ecp_nistz256_sqr_mont: .cfi_adjust_cfa_offset 8 .cfi_offset %r15,-56 .Lsqr_body: +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX cmpl $0x80100,%ecx je .Lsqr_montx +#endif movq 0(%rsi),%rax movq 8(%rsi),%r14 movq 16(%rsi),%r15 movq 24(%rsi),%r8 call __ecp_nistz256_sqr_montq +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX jmp .Lsqr_mont_done .align 32 @@ -1531,6 +1553,7 @@ ecp_nistz256_sqr_mont: leaq -128(%rsi),%rsi call __ecp_nistz256_sqr_montx +#endif .Lsqr_mont_done: movq 0(%rsp),%r15 .cfi_restore %r15 @@ -1714,6 +1737,7 @@ __ecp_nistz256_sqr_montq: .byte 0xf3,0xc3 .cfi_endproc .size __ecp_nistz256_sqr_montq,.-__ecp_nistz256_sqr_montq +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .type __ecp_nistz256_mul_montx,@function .align 32 __ecp_nistz256_mul_montx: @@ -2012,6 +2036,7 @@ __ecp_nistz256_sqr_montx: .byte 0xf3,0xc3 .cfi_endproc .size __ecp_nistz256_sqr_montx,.-__ecp_nistz256_sqr_montx +#endif .globl ecp_nistz256_select_w5 @@ -2020,10 +2045,13 @@ __ecp_nistz256_sqr_montx: .align 32 ecp_nistz256_select_w5: .cfi_startproc +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%rax movq 8(%rax),%rax testl $32,%eax jnz .Lavx2_select_w5 +#endif movdqa .LOne(%rip),%xmm0 movd %edx,%xmm1 @@ -2087,10 +2115,13 @@ ecp_nistz256_select_w5: .align 32 ecp_nistz256_select_w7: .cfi_startproc +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%rax movq 8(%rax),%rax testl $32,%eax jnz .Lavx2_select_w7 +#endif movdqa .LOne(%rip),%xmm8 movd %edx,%xmm1 @@ -2134,6 +2165,7 @@ ecp_nistz256_select_w7: .cfi_endproc .LSEH_end_ecp_nistz256_select_w7: .size ecp_nistz256_select_w7,.-ecp_nistz256_select_w7 +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .type ecp_nistz256_avx2_select_w5,@function @@ -2197,7 +2229,8 @@ ecp_nistz256_avx2_select_w5: .cfi_endproc .LSEH_end_ecp_nistz256_avx2_select_w5: .size ecp_nistz256_avx2_select_w5,.-ecp_nistz256_avx2_select_w5 - +#endif +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .globl ecp_nistz256_avx2_select_w7 @@ -2207,6 +2240,7 @@ ecp_nistz256_avx2_select_w5: ecp_nistz256_avx2_select_w7: .cfi_startproc .Lavx2_select_w7: +_CET_ENDBR vzeroupper vmovdqa .LThree(%rip),%ymm0 @@ -2278,6 +2312,7 @@ ecp_nistz256_avx2_select_w7: .cfi_endproc .LSEH_end_ecp_nistz256_avx2_select_w7: .size ecp_nistz256_avx2_select_w7,.-ecp_nistz256_avx2_select_w7 +#endif .type __ecp_nistz256_add_toq,@function .align 32 __ecp_nistz256_add_toq: @@ -2413,11 +2448,14 @@ __ecp_nistz256_mul_by_2q: .align 32 ecp_nistz256_point_double: .cfi_startproc +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%rcx movq 8(%rcx),%rcx andl $0x80100,%ecx cmpl $0x80100,%ecx je .Lpoint_doublex +#endif pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -2647,11 +2685,14 @@ ecp_nistz256_point_double: .align 32 ecp_nistz256_point_add: .cfi_startproc +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%rcx movq 8(%rcx),%rcx andl $0x80100,%ecx cmpl $0x80100,%ecx je .Lpoint_addx +#endif pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -3084,11 +3125,14 @@ ecp_nistz256_point_add: .align 32 ecp_nistz256_point_add_affine: .cfi_startproc +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%rcx movq 8(%rcx),%rcx andl $0x80100,%ecx cmpl $0x80100,%ecx je .Lpoint_add_affinex +#endif pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -3412,6 +3456,7 @@ ecp_nistz256_point_add_affine: .byte 0xf3,0xc3 .cfi_endproc .size ecp_nistz256_point_add_affine,.-ecp_nistz256_point_add_affine +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .type __ecp_nistz256_add_tox,@function .align 32 __ecp_nistz256_add_tox: @@ -4535,3 +4580,4 @@ ecp_nistz256_point_add_affinex: .cfi_endproc .size ecp_nistz256_point_add_affinex,.-ecp_nistz256_point_add_affinex #endif +#endif diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S b/generated-src/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S index 4ac7574b11..a04d80bcc5 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S @@ -13,6 +13,7 @@ .align 32 beeu_mod_inverse_vartime: .cfi_startproc +_CET_ENDBR pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset rbp,-16 diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S b/generated-src/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S index a4f183bec8..f760fcb909 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S @@ -15,6 +15,7 @@ .align 16 CRYPTO_rdrand: .cfi_startproc +_CET_ENDBR xorq %rax,%rax .byte 72,15,199,242 testq %rdx,%rdx @@ -41,6 +42,7 @@ CRYPTO_rdrand: .align 16 CRYPTO_rdrand_multiple8_buf: .cfi_startproc +_CET_ENDBR testq %rsi,%rsi jz .Lout movq $8,%rdx diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S b/generated-src/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S index 815f6a0a69..ee47d4fd7f 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S @@ -12,6 +12,7 @@ .align 64 rsaz_1024_sqr_avx2: .cfi_startproc +_CET_ENDBR leaq (%rsp),%rax .cfi_def_cfa_register %rax pushq %rbx @@ -666,6 +667,7 @@ rsaz_1024_sqr_avx2: .align 64 rsaz_1024_mul_avx2: .cfi_startproc +_CET_ENDBR leaq (%rsp),%rax .cfi_def_cfa_register %rax pushq %rbx @@ -1222,6 +1224,7 @@ rsaz_1024_mul_avx2: .align 32 rsaz_1024_red2norm_avx2: .cfi_startproc +_CET_ENDBR subq $-128,%rsi xorq %rax,%rax movq -128(%rsi),%r8 @@ -1422,6 +1425,7 @@ rsaz_1024_red2norm_avx2: .align 32 rsaz_1024_norm2red_avx2: .cfi_startproc +_CET_ENDBR subq $-128,%rdi movq (%rsi),%r8 movl $0x1fffffff,%eax @@ -1582,6 +1586,7 @@ rsaz_1024_norm2red_avx2: .align 32 rsaz_1024_scatter5_avx2: .cfi_startproc +_CET_ENDBR vzeroupper vmovdqu .Lscatter_permd(%rip),%ymm5 shll $4,%edx @@ -1610,6 +1615,7 @@ rsaz_1024_scatter5_avx2: .align 32 rsaz_1024_gather5_avx2: .cfi_startproc +_CET_ENDBR vzeroupper movq %rsp,%r11 .cfi_def_cfa_register %r11 diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S b/generated-src/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S index 7ac3b26529..9596e29024 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S @@ -5,35 +5,14 @@ #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__ELF__) .text -.extern OPENSSL_ia32cap_P -.hidden OPENSSL_ia32cap_P -.globl sha1_block_data_order -.hidden sha1_block_data_order -.type sha1_block_data_order,@function +.globl sha1_block_data_order_nohw +.hidden sha1_block_data_order_nohw +.type sha1_block_data_order_nohw,@function .align 16 -sha1_block_data_order: +sha1_block_data_order_nohw: .cfi_startproc - leaq OPENSSL_ia32cap_P(%rip),%r10 - movl 0(%r10),%r9d - movl 4(%r10),%r8d - movl 8(%r10),%r10d - testl $512,%r8d - jz .Lialu - testl $536870912,%r10d - jnz _shaext_shortcut - andl $296,%r10d - cmpl $296,%r10d - je _avx2_shortcut - andl $268435456,%r8d - andl $1073741824,%r9d - orl %r9d,%r8d - cmpl $1342177280,%r8d - je _avx_shortcut - jmp _ssse3_shortcut - -.align 16 -.Lialu: +_CET_ENDBR movq %rsp,%rax .cfi_def_cfa_register %rax pushq %rbx @@ -1263,12 +1242,14 @@ sha1_block_data_order: .Lepilogue: .byte 0xf3,0xc3 .cfi_endproc -.size sha1_block_data_order,.-sha1_block_data_order -.type sha1_block_data_order_shaext,@function +.size sha1_block_data_order_nohw,.-sha1_block_data_order_nohw +.globl sha1_block_data_order_hw +.hidden sha1_block_data_order_hw +.type sha1_block_data_order_hw,@function .align 32 -sha1_block_data_order_shaext: -_shaext_shortcut: +sha1_block_data_order_hw: .cfi_startproc +_CET_ENDBR movdqu (%rdi),%xmm0 movd 16(%rdi),%xmm1 movdqa K_XX_XX+160(%rip),%xmm3 @@ -1433,12 +1414,14 @@ _shaext_shortcut: movd %xmm1,16(%rdi) .byte 0xf3,0xc3 .cfi_endproc -.size sha1_block_data_order_shaext,.-sha1_block_data_order_shaext +.size sha1_block_data_order_hw,.-sha1_block_data_order_hw +.globl sha1_block_data_order_ssse3 +.hidden sha1_block_data_order_ssse3 .type sha1_block_data_order_ssse3,@function .align 16 sha1_block_data_order_ssse3: -_ssse3_shortcut: .cfi_startproc +_CET_ENDBR movq %rsp,%r11 .cfi_def_cfa_register %r11 pushq %rbx @@ -2622,11 +2605,13 @@ _ssse3_shortcut: .byte 0xf3,0xc3 .cfi_endproc .size sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3 +.globl sha1_block_data_order_avx +.hidden sha1_block_data_order_avx .type sha1_block_data_order_avx,@function .align 16 sha1_block_data_order_avx: -_avx_shortcut: .cfi_startproc +_CET_ENDBR movq %rsp,%r11 .cfi_def_cfa_register %r11 pushq %rbx @@ -3750,11 +3735,13 @@ _avx_shortcut: .byte 0xf3,0xc3 .cfi_endproc .size sha1_block_data_order_avx,.-sha1_block_data_order_avx +.globl sha1_block_data_order_avx2 +.hidden sha1_block_data_order_avx2 .type sha1_block_data_order_avx2,@function .align 16 sha1_block_data_order_avx2: -_avx2_shortcut: .cfi_startproc +_CET_ENDBR movq %rsp,%r11 .cfi_def_cfa_register %r11 pushq %rbx diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S b/generated-src/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S index d9f1e7dee4..468c4e1346 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S @@ -6,27 +6,13 @@ #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__ELF__) .text -.extern OPENSSL_ia32cap_P -.hidden OPENSSL_ia32cap_P -.globl sha256_block_data_order -.hidden sha256_block_data_order -.type sha256_block_data_order,@function +.globl sha256_block_data_order_nohw +.hidden sha256_block_data_order_nohw +.type sha256_block_data_order_nohw,@function .align 16 -sha256_block_data_order: +sha256_block_data_order_nohw: .cfi_startproc - leaq OPENSSL_ia32cap_P(%rip),%r11 - movl 0(%r11),%r9d - movl 4(%r11),%r10d - movl 8(%r11),%r11d - testl $536870912,%r11d - jnz .Lshaext_shortcut - andl $1073741824,%r9d - andl $268435968,%r10d - orl %r9d,%r10d - cmpl $1342177792,%r10d - je .Lavx_shortcut - testl $512,%r10d - jnz .Lssse3_shortcut +_CET_ENDBR movq %rsp,%rax .cfi_def_cfa_register %rax pushq %rbx @@ -1732,7 +1718,7 @@ sha256_block_data_order: .Lepilogue: .byte 0xf3,0xc3 .cfi_endproc -.size sha256_block_data_order,.-sha256_block_data_order +.size sha256_block_data_order_nohw,.-sha256_block_data_order_nohw .section .rodata .align 64 .type K256,@object @@ -1778,16 +1764,18 @@ K256: .long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 .byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .text -.type sha256_block_data_order_shaext,@function +.globl sha256_block_data_order_hw +.hidden sha256_block_data_order_hw +.type sha256_block_data_order_hw,@function .align 64 -sha256_block_data_order_shaext: -.Lshaext_shortcut: +sha256_block_data_order_hw: .cfi_startproc #ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit .hidden BORINGSSL_function_hit movb $1,BORINGSSL_function_hit+6(%rip) #endif +_CET_ENDBR leaq K256+128(%rip),%rcx movdqu (%rdi),%xmm1 movdqu 16(%rdi),%xmm2 @@ -1991,12 +1979,14 @@ sha256_block_data_order_shaext: movdqu %xmm2,16(%rdi) .byte 0xf3,0xc3 .cfi_endproc -.size sha256_block_data_order_shaext,.-sha256_block_data_order_shaext +.size sha256_block_data_order_hw,.-sha256_block_data_order_hw +.globl sha256_block_data_order_ssse3 +.hidden sha256_block_data_order_ssse3 .type sha256_block_data_order_ssse3,@function .align 64 sha256_block_data_order_ssse3: .cfi_startproc -.Lssse3_shortcut: +_CET_ENDBR movq %rsp,%rax .cfi_def_cfa_register %rax pushq %rbx @@ -3105,11 +3095,13 @@ sha256_block_data_order_ssse3: .byte 0xf3,0xc3 .cfi_endproc .size sha256_block_data_order_ssse3,.-sha256_block_data_order_ssse3 +.globl sha256_block_data_order_avx +.hidden sha256_block_data_order_avx .type sha256_block_data_order_avx,@function .align 64 sha256_block_data_order_avx: .cfi_startproc -.Lavx_shortcut: +_CET_ENDBR movq %rsp,%rax .cfi_def_cfa_register %rax pushq %rbx diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S b/generated-src/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S index 9a581da78f..117d55eed4 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S @@ -6,23 +6,13 @@ #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__ELF__) .text -.extern OPENSSL_ia32cap_P -.hidden OPENSSL_ia32cap_P -.globl sha512_block_data_order -.hidden sha512_block_data_order -.type sha512_block_data_order,@function +.globl sha512_block_data_order_nohw +.hidden sha512_block_data_order_nohw +.type sha512_block_data_order_nohw,@function .align 16 -sha512_block_data_order: +sha512_block_data_order_nohw: .cfi_startproc - leaq OPENSSL_ia32cap_P(%rip),%r11 - movl 0(%r11),%r9d - movl 4(%r11),%r10d - movl 8(%r11),%r11d - andl $1073741824,%r9d - andl $268435968,%r10d - orl %r9d,%r10d - cmpl $1342177792,%r10d - je .Lavx_shortcut +_CET_ENDBR movq %rsp,%rax .cfi_def_cfa_register %rax pushq %rbx @@ -1728,7 +1718,7 @@ sha512_block_data_order: .Lepilogue: .byte 0xf3,0xc3 .cfi_endproc -.size sha512_block_data_order,.-sha512_block_data_order +.size sha512_block_data_order_nohw,.-sha512_block_data_order_nohw .section .rodata .align 64 .type K512,@object @@ -1818,11 +1808,13 @@ K512: .quad 0x0001020304050607,0x08090a0b0c0d0e0f .byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .text +.globl sha512_block_data_order_avx +.hidden sha512_block_data_order_avx .type sha512_block_data_order_avx,@function .align 64 sha512_block_data_order_avx: .cfi_startproc -.Lavx_shortcut: +_CET_ENDBR movq %rsp,%rax .cfi_def_cfa_register %rax pushq %rbx diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S b/generated-src/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S index 623d19011b..ad8922473b 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S @@ -805,6 +805,7 @@ _vpaes_schedule_mangle: .align 16 vpaes_set_encrypt_key: .cfi_startproc +_CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit .hidden BORINGSSL_function_hit @@ -830,6 +831,7 @@ vpaes_set_encrypt_key: .align 16 vpaes_set_decrypt_key: .cfi_startproc +_CET_ENDBR movl %esi,%eax shrl $5,%eax addl $5,%eax @@ -854,6 +856,7 @@ vpaes_set_decrypt_key: .align 16 vpaes_encrypt: .cfi_startproc +_CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit .hidden BORINGSSL_function_hit @@ -873,6 +876,7 @@ vpaes_encrypt: .align 16 vpaes_decrypt: .cfi_startproc +_CET_ENDBR movdqu (%rdi),%xmm0 call _vpaes_preheat call _vpaes_decrypt_core @@ -886,6 +890,7 @@ vpaes_decrypt: .align 16 vpaes_cbc_encrypt: .cfi_startproc +_CET_ENDBR xchgq %rcx,%rdx subq $16,%rcx jc .Lcbc_abort @@ -929,6 +934,7 @@ vpaes_cbc_encrypt: .align 16 vpaes_ctr32_encrypt_blocks: .cfi_startproc +_CET_ENDBR xchgq %rcx,%rdx testq %rcx,%rcx diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/x86_64-mont.S b/generated-src/linux-x86_64/crypto/fipsmodule/x86_64-mont.S index 9febd7d51f..a039c32e68 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/x86_64-mont.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/x86_64-mont.S @@ -15,6 +15,7 @@ .align 16 bn_mul_mont: .cfi_startproc +_CET_ENDBR movl %r9d,%r9d movq %rsp,%rax .cfi_def_cfa_register %rax @@ -22,8 +23,10 @@ bn_mul_mont: jnz .Lmul_enter cmpl $8,%r9d jb .Lmul_enter +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%r11 movl 8(%r11),%r11d +#endif cmpq %rsi,%rdx jne .Lmul4x_enter testl $7,%r9d @@ -272,9 +275,11 @@ bn_mul4x_mont: movq %rsp,%rax .cfi_def_cfa_register %rax .Lmul4x_enter: +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX andl $0x80100,%r11d cmpl $0x80100,%r11d je .Lmulx4x_enter +#endif pushq %rbx .cfi_offset %rbx,-16 pushq %rbp @@ -698,8 +703,10 @@ bn_mul4x_mont: .byte 0xf3,0xc3 .cfi_endproc .size bn_mul4x_mont,.-bn_mul4x_mont +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .extern bn_sqrx8x_internal .hidden bn_sqrx8x_internal +#endif .extern bn_sqr8x_internal .hidden bn_sqr8x_internal @@ -784,6 +791,7 @@ bn_sqr8x_mont: pxor %xmm0,%xmm0 .byte 102,72,15,110,207 .byte 102,73,15,110,218 +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%rax movl 8(%rax),%eax andl $0x80100,%eax @@ -804,6 +812,7 @@ bn_sqr8x_mont: .align 32 .Lsqr8x_nox: +#endif call bn_sqr8x_internal @@ -891,6 +900,7 @@ bn_sqr8x_mont: .byte 0xf3,0xc3 .cfi_endproc .size bn_sqr8x_mont,.-bn_sqr8x_mont +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .type bn_mulx4x_mont,@function .align 32 bn_mulx4x_mont: @@ -1247,6 +1257,7 @@ bn_mulx4x_mont: .byte 0xf3,0xc3 .cfi_endproc .size bn_mulx4x_mont,.-bn_mulx4x_mont +#endif .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 16 #endif diff --git a/generated-src/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S b/generated-src/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S index 9b531c74cc..4450c3ef72 100644 --- a/generated-src/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S +++ b/generated-src/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S @@ -15,13 +15,16 @@ .align 64 bn_mul_mont_gather5: .cfi_startproc +_CET_ENDBR movl %r9d,%r9d movq %rsp,%rax .cfi_def_cfa_register %rax testl $7,%r9d jnz .Lmul_enter +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%r11 movl 8(%r11),%r11d +#endif jmp .Lmul4x_enter .align 16 @@ -460,9 +463,11 @@ bn_mul4x_mont_gather5: movq %rsp,%rax .cfi_def_cfa_register %rax .Lmul4x_enter: +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX andl $0x80108,%r11d cmpl $0x80108,%r11d je .Lmulx4x_enter +#endif pushq %rbx .cfi_offset %rbx,-16 pushq %rbp @@ -1093,13 +1098,16 @@ mul4x_internal: .align 32 bn_power5: .cfi_startproc +_CET_ENDBR movq %rsp,%rax .cfi_def_cfa_register %rax +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq OPENSSL_ia32cap_P(%rip),%r11 movl 8(%r11),%r11d andl $0x80108,%r11d cmpl $0x80108,%r11d je .Lpowerx5_enter +#endif pushq %rbx .cfi_offset %rbx,-16 pushq %rbp @@ -1232,6 +1240,7 @@ bn_power5: bn_sqr8x_internal: __bn_sqr8x_internal: .cfi_startproc +_CET_ENDBR @@ -2064,6 +2073,7 @@ __bn_post4x_internal: .byte 0xf3,0xc3 .cfi_endproc .size __bn_post4x_internal,.-__bn_post4x_internal +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .type bn_mulx4x_mont_gather5,@function .align 32 bn_mulx4x_mont_gather5: @@ -2744,6 +2754,7 @@ bn_powerx5: bn_sqrx8x_internal: __bn_sqrx8x_internal: .cfi_startproc +_CET_ENDBR @@ -3410,12 +3421,14 @@ __bn_postx4x_internal: .byte 0xf3,0xc3 .cfi_endproc .size __bn_postx4x_internal,.-__bn_postx4x_internal +#endif .globl bn_scatter5 .hidden bn_scatter5 .type bn_scatter5,@function .align 16 bn_scatter5: .cfi_startproc +_CET_ENDBR cmpl $0,%esi jz .Lscatter_epilogue @@ -3447,6 +3460,7 @@ bn_scatter5: bn_gather5: .cfi_startproc .LSEH_begin_bn_gather5: +_CET_ENDBR .byte 0x4c,0x8d,0x14,0x24 .cfi_def_cfa_register %r10 diff --git a/generated-src/linux-x86_64/crypto/test/trampoline-x86_64.S b/generated-src/linux-x86_64/crypto/test/trampoline-x86_64.S index 1577042033..38cd8d5225 100644 --- a/generated-src/linux-x86_64/crypto/test/trampoline-x86_64.S +++ b/generated-src/linux-x86_64/crypto/test/trampoline-x86_64.S @@ -20,6 +20,7 @@ abi_test_trampoline: .cfi_startproc +_CET_ENDBR @@ -181,6 +182,7 @@ abi_test_unwind_stop: .hidden abi_test_clobber_rax .align 16 abi_test_clobber_rax: +_CET_ENDBR xorq %rax,%rax .byte 0xf3,0xc3 .size abi_test_clobber_rax,.-abi_test_clobber_rax @@ -189,6 +191,7 @@ abi_test_clobber_rax: .hidden abi_test_clobber_rbx .align 16 abi_test_clobber_rbx: +_CET_ENDBR xorq %rbx,%rbx .byte 0xf3,0xc3 .size abi_test_clobber_rbx,.-abi_test_clobber_rbx @@ -197,6 +200,7 @@ abi_test_clobber_rbx: .hidden abi_test_clobber_rcx .align 16 abi_test_clobber_rcx: +_CET_ENDBR xorq %rcx,%rcx .byte 0xf3,0xc3 .size abi_test_clobber_rcx,.-abi_test_clobber_rcx @@ -205,6 +209,7 @@ abi_test_clobber_rcx: .hidden abi_test_clobber_rdx .align 16 abi_test_clobber_rdx: +_CET_ENDBR xorq %rdx,%rdx .byte 0xf3,0xc3 .size abi_test_clobber_rdx,.-abi_test_clobber_rdx @@ -213,6 +218,7 @@ abi_test_clobber_rdx: .hidden abi_test_clobber_rdi .align 16 abi_test_clobber_rdi: +_CET_ENDBR xorq %rdi,%rdi .byte 0xf3,0xc3 .size abi_test_clobber_rdi,.-abi_test_clobber_rdi @@ -221,6 +227,7 @@ abi_test_clobber_rdi: .hidden abi_test_clobber_rsi .align 16 abi_test_clobber_rsi: +_CET_ENDBR xorq %rsi,%rsi .byte 0xf3,0xc3 .size abi_test_clobber_rsi,.-abi_test_clobber_rsi @@ -229,6 +236,7 @@ abi_test_clobber_rsi: .hidden abi_test_clobber_rbp .align 16 abi_test_clobber_rbp: +_CET_ENDBR xorq %rbp,%rbp .byte 0xf3,0xc3 .size abi_test_clobber_rbp,.-abi_test_clobber_rbp @@ -237,6 +245,7 @@ abi_test_clobber_rbp: .hidden abi_test_clobber_r8 .align 16 abi_test_clobber_r8: +_CET_ENDBR xorq %r8,%r8 .byte 0xf3,0xc3 .size abi_test_clobber_r8,.-abi_test_clobber_r8 @@ -245,6 +254,7 @@ abi_test_clobber_r8: .hidden abi_test_clobber_r9 .align 16 abi_test_clobber_r9: +_CET_ENDBR xorq %r9,%r9 .byte 0xf3,0xc3 .size abi_test_clobber_r9,.-abi_test_clobber_r9 @@ -253,6 +263,7 @@ abi_test_clobber_r9: .hidden abi_test_clobber_r10 .align 16 abi_test_clobber_r10: +_CET_ENDBR xorq %r10,%r10 .byte 0xf3,0xc3 .size abi_test_clobber_r10,.-abi_test_clobber_r10 @@ -261,6 +272,7 @@ abi_test_clobber_r10: .hidden abi_test_clobber_r11 .align 16 abi_test_clobber_r11: +_CET_ENDBR xorq %r11,%r11 .byte 0xf3,0xc3 .size abi_test_clobber_r11,.-abi_test_clobber_r11 @@ -269,6 +281,7 @@ abi_test_clobber_r11: .hidden abi_test_clobber_r12 .align 16 abi_test_clobber_r12: +_CET_ENDBR xorq %r12,%r12 .byte 0xf3,0xc3 .size abi_test_clobber_r12,.-abi_test_clobber_r12 @@ -277,6 +290,7 @@ abi_test_clobber_r12: .hidden abi_test_clobber_r13 .align 16 abi_test_clobber_r13: +_CET_ENDBR xorq %r13,%r13 .byte 0xf3,0xc3 .size abi_test_clobber_r13,.-abi_test_clobber_r13 @@ -285,6 +299,7 @@ abi_test_clobber_r13: .hidden abi_test_clobber_r14 .align 16 abi_test_clobber_r14: +_CET_ENDBR xorq %r14,%r14 .byte 0xf3,0xc3 .size abi_test_clobber_r14,.-abi_test_clobber_r14 @@ -293,6 +308,7 @@ abi_test_clobber_r14: .hidden abi_test_clobber_r15 .align 16 abi_test_clobber_r15: +_CET_ENDBR xorq %r15,%r15 .byte 0xf3,0xc3 .size abi_test_clobber_r15,.-abi_test_clobber_r15 @@ -301,6 +317,7 @@ abi_test_clobber_r15: .hidden abi_test_clobber_xmm0 .align 16 abi_test_clobber_xmm0: +_CET_ENDBR pxor %xmm0,%xmm0 .byte 0xf3,0xc3 .size abi_test_clobber_xmm0,.-abi_test_clobber_xmm0 @@ -309,6 +326,7 @@ abi_test_clobber_xmm0: .hidden abi_test_clobber_xmm1 .align 16 abi_test_clobber_xmm1: +_CET_ENDBR pxor %xmm1,%xmm1 .byte 0xf3,0xc3 .size abi_test_clobber_xmm1,.-abi_test_clobber_xmm1 @@ -317,6 +335,7 @@ abi_test_clobber_xmm1: .hidden abi_test_clobber_xmm2 .align 16 abi_test_clobber_xmm2: +_CET_ENDBR pxor %xmm2,%xmm2 .byte 0xf3,0xc3 .size abi_test_clobber_xmm2,.-abi_test_clobber_xmm2 @@ -325,6 +344,7 @@ abi_test_clobber_xmm2: .hidden abi_test_clobber_xmm3 .align 16 abi_test_clobber_xmm3: +_CET_ENDBR pxor %xmm3,%xmm3 .byte 0xf3,0xc3 .size abi_test_clobber_xmm3,.-abi_test_clobber_xmm3 @@ -333,6 +353,7 @@ abi_test_clobber_xmm3: .hidden abi_test_clobber_xmm4 .align 16 abi_test_clobber_xmm4: +_CET_ENDBR pxor %xmm4,%xmm4 .byte 0xf3,0xc3 .size abi_test_clobber_xmm4,.-abi_test_clobber_xmm4 @@ -341,6 +362,7 @@ abi_test_clobber_xmm4: .hidden abi_test_clobber_xmm5 .align 16 abi_test_clobber_xmm5: +_CET_ENDBR pxor %xmm5,%xmm5 .byte 0xf3,0xc3 .size abi_test_clobber_xmm5,.-abi_test_clobber_xmm5 @@ -349,6 +371,7 @@ abi_test_clobber_xmm5: .hidden abi_test_clobber_xmm6 .align 16 abi_test_clobber_xmm6: +_CET_ENDBR pxor %xmm6,%xmm6 .byte 0xf3,0xc3 .size abi_test_clobber_xmm6,.-abi_test_clobber_xmm6 @@ -357,6 +380,7 @@ abi_test_clobber_xmm6: .hidden abi_test_clobber_xmm7 .align 16 abi_test_clobber_xmm7: +_CET_ENDBR pxor %xmm7,%xmm7 .byte 0xf3,0xc3 .size abi_test_clobber_xmm7,.-abi_test_clobber_xmm7 @@ -365,6 +389,7 @@ abi_test_clobber_xmm7: .hidden abi_test_clobber_xmm8 .align 16 abi_test_clobber_xmm8: +_CET_ENDBR pxor %xmm8,%xmm8 .byte 0xf3,0xc3 .size abi_test_clobber_xmm8,.-abi_test_clobber_xmm8 @@ -373,6 +398,7 @@ abi_test_clobber_xmm8: .hidden abi_test_clobber_xmm9 .align 16 abi_test_clobber_xmm9: +_CET_ENDBR pxor %xmm9,%xmm9 .byte 0xf3,0xc3 .size abi_test_clobber_xmm9,.-abi_test_clobber_xmm9 @@ -381,6 +407,7 @@ abi_test_clobber_xmm9: .hidden abi_test_clobber_xmm10 .align 16 abi_test_clobber_xmm10: +_CET_ENDBR pxor %xmm10,%xmm10 .byte 0xf3,0xc3 .size abi_test_clobber_xmm10,.-abi_test_clobber_xmm10 @@ -389,6 +416,7 @@ abi_test_clobber_xmm10: .hidden abi_test_clobber_xmm11 .align 16 abi_test_clobber_xmm11: +_CET_ENDBR pxor %xmm11,%xmm11 .byte 0xf3,0xc3 .size abi_test_clobber_xmm11,.-abi_test_clobber_xmm11 @@ -397,6 +425,7 @@ abi_test_clobber_xmm11: .hidden abi_test_clobber_xmm12 .align 16 abi_test_clobber_xmm12: +_CET_ENDBR pxor %xmm12,%xmm12 .byte 0xf3,0xc3 .size abi_test_clobber_xmm12,.-abi_test_clobber_xmm12 @@ -405,6 +434,7 @@ abi_test_clobber_xmm12: .hidden abi_test_clobber_xmm13 .align 16 abi_test_clobber_xmm13: +_CET_ENDBR pxor %xmm13,%xmm13 .byte 0xf3,0xc3 .size abi_test_clobber_xmm13,.-abi_test_clobber_xmm13 @@ -413,6 +443,7 @@ abi_test_clobber_xmm13: .hidden abi_test_clobber_xmm14 .align 16 abi_test_clobber_xmm14: +_CET_ENDBR pxor %xmm14,%xmm14 .byte 0xf3,0xc3 .size abi_test_clobber_xmm14,.-abi_test_clobber_xmm14 @@ -421,6 +452,7 @@ abi_test_clobber_xmm14: .hidden abi_test_clobber_xmm15 .align 16 abi_test_clobber_xmm15: +_CET_ENDBR pxor %xmm15,%xmm15 .byte 0xf3,0xc3 .size abi_test_clobber_xmm15,.-abi_test_clobber_xmm15 @@ -434,6 +466,7 @@ abi_test_clobber_xmm15: abi_test_bad_unwind_wrong_register: .cfi_startproc +_CET_ENDBR pushq %r12 .cfi_adjust_cfa_offset 8 .cfi_offset %r13,-16 @@ -460,6 +493,7 @@ abi_test_bad_unwind_wrong_register: abi_test_bad_unwind_temporary: .cfi_startproc +_CET_ENDBR pushq %r12 .cfi_adjust_cfa_offset 8 .cfi_offset %r12,-16 @@ -489,6 +523,7 @@ abi_test_bad_unwind_temporary: .globl abi_test_get_and_clear_direction_flag .hidden abi_test_get_and_clear_direction_flag abi_test_get_and_clear_direction_flag: +_CET_ENDBR pushfq popq %rax andq $0x400,%rax @@ -503,6 +538,7 @@ abi_test_get_and_clear_direction_flag: .globl abi_test_set_direction_flag .hidden abi_test_set_direction_flag abi_test_set_direction_flag: +_CET_ENDBR std .byte 0xf3,0xc3 .size abi_test_set_direction_flag,.-abi_test_set_direction_flag diff --git a/generated-src/mac-x86_64/crypto/chacha/chacha-x86_64.S b/generated-src/mac-x86_64/crypto/chacha/chacha-x86_64.S index b9d21ffbd7..c2c9b4bf38 100644 --- a/generated-src/mac-x86_64/crypto/chacha/chacha-x86_64.S +++ b/generated-src/mac-x86_64/crypto/chacha/chacha-x86_64.S @@ -6,8 +6,6 @@ #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__APPLE__) .text - - .section __DATA,__const .p2align 6 L$zero: @@ -39,18 +37,13 @@ L$sixteen: .long 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .text -.globl _ChaCha20_ctr32 -.private_extern _ChaCha20_ctr32 +.globl _ChaCha20_ctr32_nohw +.private_extern _ChaCha20_ctr32_nohw .p2align 6 -_ChaCha20_ctr32: - - cmpq $0,%rdx - je L$no_data - movq _OPENSSL_ia32cap_P+4(%rip),%r10 - testl $512,%r10d - jnz L$ChaCha20_ssse3 +_ChaCha20_ctr32_nohw: +_CET_ENDBR pushq %rbx pushq %rbp @@ -322,17 +315,15 @@ L$no_data: .byte 0xf3,0xc3 +.globl _ChaCha20_ctr32_ssse3 +.private_extern _ChaCha20_ctr32_ssse3 .p2align 5 -ChaCha20_ssse3: -L$ChaCha20_ssse3: +_ChaCha20_ctr32_ssse3: +_CET_ENDBR movq %rsp,%r9 - cmpq $128,%rdx - ja L$ChaCha20_4x - -L$do_sse3_after_all: subq $64+8,%rsp movdqa L$sigma(%rip),%xmm0 movdqu (%rcx),%xmm1 @@ -459,25 +450,16 @@ L$ssse3_epilogue: .byte 0xf3,0xc3 +.globl _ChaCha20_ctr32_ssse3_4x +.private_extern _ChaCha20_ctr32_ssse3_4x .p2align 5 -ChaCha20_4x: -L$ChaCha20_4x: +_ChaCha20_ctr32_ssse3_4x: +_CET_ENDBR movq %rsp,%r9 movq %r10,%r11 - shrq $32,%r10 - testq $32,%r10 - jnz L$ChaCha20_8x - cmpq $192,%rdx - ja L$proceed4x - - andq $71303168,%r11 - cmpq $4194304,%r11 - je L$do_sse3_after_all - -L$proceed4x: subq $0x140+8,%rsp movdqa L$sigma(%rip),%xmm11 movdqu (%rcx),%xmm15 @@ -1011,11 +993,13 @@ L$4x_epilogue: .byte 0xf3,0xc3 +.globl _ChaCha20_ctr32_avx2 +.private_extern _ChaCha20_ctr32_avx2 .p2align 5 -ChaCha20_8x: -L$ChaCha20_8x: +_ChaCha20_ctr32_avx2: +_CET_ENDBR movq %rsp,%r9 subq $0x280+8,%rsp diff --git a/generated-src/mac-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S b/generated-src/mac-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S index 8d940a0d88..8c9695b8da 100644 --- a/generated-src/mac-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S +++ b/generated-src/mac-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S @@ -71,6 +71,7 @@ GFMUL: .p2align 4 _aesgcmsiv_htable_init: +_CET_ENDBR vmovdqa (%rsi),%xmm0 vmovdqa %xmm0,%xmm1 vmovdqa %xmm0,(%rdi) @@ -97,6 +98,7 @@ _aesgcmsiv_htable_init: .p2align 4 _aesgcmsiv_htable6_init: +_CET_ENDBR vmovdqa (%rsi),%xmm0 vmovdqa %xmm0,%xmm1 vmovdqa %xmm0,(%rdi) @@ -119,6 +121,7 @@ _aesgcmsiv_htable6_init: .p2align 4 _aesgcmsiv_htable_polyval: +_CET_ENDBR testq %rdx,%rdx jnz L$htable_polyval_start .byte 0xf3,0xc3 @@ -336,6 +339,7 @@ L$htable_polyval_out: .p2align 4 _aesgcmsiv_polyval_horner: +_CET_ENDBR testq %rcx,%rcx jnz L$polyval_horner_start .byte 0xf3,0xc3 @@ -369,6 +373,7 @@ L$polyval_horner_loop: .p2align 4 _aes128gcmsiv_aes_ks: +_CET_ENDBR vmovdqu (%rdi),%xmm1 vmovdqa %xmm1,(%rsi) @@ -425,6 +430,7 @@ L$ks128_loop: .p2align 4 _aes256gcmsiv_aes_ks: +_CET_ENDBR vmovdqu (%rdi),%xmm1 vmovdqu 16(%rdi),%xmm3 vmovdqa %xmm1,(%rsi) @@ -472,6 +478,7 @@ L$ks256_loop: .p2align 4 _aes128gcmsiv_aes_ks_enc_x1: +_CET_ENDBR vmovdqa (%rcx),%xmm1 vmovdqa 0(%rdi),%xmm4 @@ -614,6 +621,7 @@ _aes128gcmsiv_aes_ks_enc_x1: .p2align 4 _aes128gcmsiv_kdf: +_CET_ENDBR @@ -707,6 +715,7 @@ _aes128gcmsiv_kdf: .p2align 4 _aes128gcmsiv_enc_msg_x4: +_CET_ENDBR testq %r8,%r8 jnz L$128_enc_msg_x4_start .byte 0xf3,0xc3 @@ -882,6 +891,7 @@ L$128_enc_msg_x4_out: .p2align 4 _aes128gcmsiv_enc_msg_x8: +_CET_ENDBR testq %r8,%r8 jnz L$128_enc_msg_x8_start .byte 0xf3,0xc3 @@ -1137,6 +1147,7 @@ L$128_enc_msg_x8_out: .p2align 4 _aes128gcmsiv_dec: +_CET_ENDBR testq $~15,%r9 jnz L$128_dec_start .byte 0xf3,0xc3 @@ -1144,14 +1155,15 @@ _aes128gcmsiv_dec: L$128_dec_start: vzeroupper vmovdqa (%rdx),%xmm0 + + + vmovdqu 16(%rdx),%xmm15 + vpor OR_MASK(%rip),%xmm15,%xmm15 movq %rdx,%rax leaq 32(%rax),%rax leaq 32(%rcx),%rcx - - vmovdqu (%rdi,%r9,1),%xmm15 - vpor OR_MASK(%rip),%xmm15,%xmm15 andq $~15,%r9 @@ -1629,6 +1641,7 @@ L$128_dec_out: .p2align 4 _aes128gcmsiv_ecb_enc_block: +_CET_ENDBR vmovdqa (%rdi),%xmm1 vpxor (%rdx),%xmm1,%xmm1 @@ -1654,6 +1667,7 @@ _aes128gcmsiv_ecb_enc_block: .p2align 4 _aes256gcmsiv_aes_ks_enc_x1: +_CET_ENDBR vmovdqa con1(%rip),%xmm0 vmovdqa mask(%rip),%xmm15 vmovdqa (%rdi),%xmm8 @@ -1837,6 +1851,7 @@ _aes256gcmsiv_aes_ks_enc_x1: .p2align 4 _aes256gcmsiv_ecb_enc_block: +_CET_ENDBR vmovdqa (%rdi),%xmm1 vpxor (%rdx),%xmm1,%xmm1 vaesenc 16(%rdx),%xmm1,%xmm1 @@ -1863,6 +1878,7 @@ _aes256gcmsiv_ecb_enc_block: .p2align 4 _aes256gcmsiv_enc_msg_x4: +_CET_ENDBR testq %r8,%r8 jnz L$256_enc_msg_x4_start .byte 0xf3,0xc3 @@ -2064,6 +2080,7 @@ L$256_enc_msg_x4_out: .p2align 4 _aes256gcmsiv_enc_msg_x8: +_CET_ENDBR testq %r8,%r8 jnz L$256_enc_msg_x8_start .byte 0xf3,0xc3 @@ -2353,6 +2370,7 @@ L$256_enc_msg_x8_out: .p2align 4 _aes256gcmsiv_dec: +_CET_ENDBR testq $~15,%r9 jnz L$256_dec_start .byte 0xf3,0xc3 @@ -2360,14 +2378,15 @@ _aes256gcmsiv_dec: L$256_dec_start: vzeroupper vmovdqa (%rdx),%xmm0 + + + vmovdqu 16(%rdx),%xmm15 + vpor OR_MASK(%rip),%xmm15,%xmm15 movq %rdx,%rax leaq 32(%rax),%rax leaq 32(%rcx),%rcx - - vmovdqu (%rdi,%r9,1),%xmm15 - vpor OR_MASK(%rip),%xmm15,%xmm15 andq $~15,%r9 @@ -2913,6 +2932,7 @@ L$256_dec_out: .p2align 4 _aes256gcmsiv_kdf: +_CET_ENDBR diff --git a/generated-src/mac-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S b/generated-src/mac-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S index 41ac181ea6..efe05de3e9 100644 --- a/generated-src/mac-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S +++ b/generated-src/mac-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S @@ -222,6 +222,7 @@ L$hash_ad_done: .p2align 6 _chacha20_poly1305_open: +_CET_ENDBR pushq %rbp pushq %rbx @@ -2093,6 +2094,7 @@ L$open_sse_128_xor_hash: .p2align 6 _chacha20_poly1305_seal: +_CET_ENDBR pushq %rbp pushq %rbx diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/aesni-gcm-avx512.S b/generated-src/mac-x86_64/crypto/fipsmodule/aesni-gcm-avx512.S index 8d5208d801..29a0e0bd1a 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/aesni-gcm-avx512.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/aesni-gcm-avx512.S @@ -4,6 +4,7 @@ #include #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__APPLE__) +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .text .globl _gcm_init_avx512 .private_extern _gcm_init_avx512 @@ -136415,3 +136416,4 @@ byte64_len_to_mask_table: .quad 0xffffffffffffffff .text #endif +#endif diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S b/generated-src/mac-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S index 0c3b2964aa..c946f93f99 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S @@ -346,6 +346,7 @@ L$6x_done: _aesni_gcm_decrypt: +_CET_ENDBR xorq %rax,%rax @@ -562,6 +563,7 @@ L$handle_ctr32_2: _aesni_gcm_encrypt: +_CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST movb $1,_BORINGSSL_function_hit+2(%rip) diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/aesni-x86_64.S b/generated-src/mac-x86_64/crypto/fipsmodule/aesni-x86_64.S index 7863a20c59..41263854ba 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/aesni-x86_64.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/aesni-x86_64.S @@ -12,6 +12,7 @@ .p2align 4 _aes_hw_encrypt: +_CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST movb $1,_BORINGSSL_function_hit+1(%rip) @@ -43,6 +44,7 @@ L$oop_enc1_1: .p2align 4 _aes_hw_decrypt: +_CET_ENDBR movups (%rdi),%xmm2 movl 240(%rdx),%eax movups (%rdx),%xmm0 @@ -531,6 +533,7 @@ L$dec_loop8_enter: .p2align 4 _aes_hw_ecb_encrypt: +_CET_ENDBR andq $-16,%rdx jz L$ecb_ret @@ -876,6 +879,7 @@ L$ecb_ret: .p2align 4 _aes_hw_ctr32_encrypt_blocks: +_CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST movb $1,_BORINGSSL_function_hit(%rip) #endif @@ -1461,6 +1465,7 @@ L$ctr32_epilogue: .p2align 4 _aes_hw_xts_encrypt: +_CET_ENDBR leaq (%rsp),%r11 pushq %rbp @@ -1932,6 +1937,7 @@ L$xts_enc_epilogue: .p2align 4 _aes_hw_xts_decrypt: +_CET_ENDBR leaq (%rsp),%r11 pushq %rbp @@ -2440,6 +2446,7 @@ L$xts_dec_epilogue: .p2align 4 _aes_hw_cbc_encrypt: +_CET_ENDBR testq %rdx,%rdx jz L$cbc_ret @@ -3033,6 +3040,7 @@ L$cbc_ret: .p2align 4 _aes_hw_set_decrypt_key: +_CET_ENDBR .byte 0x48,0x83,0xEC,0x08 call __aesni_set_encrypt_key @@ -3079,6 +3087,7 @@ L$SEH_end_set_decrypt_key: _aes_hw_set_encrypt_key: __aesni_set_encrypt_key: +_CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST movb $1,_BORINGSSL_function_hit+3(%rip) #endif diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/aesni-xts-avx512.S b/generated-src/mac-x86_64/crypto/fipsmodule/aesni-xts-avx512.S index 1f8767c06f..08a62439ad 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/aesni-xts-avx512.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/aesni-xts-avx512.S @@ -4,6 +4,7 @@ #include #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__APPLE__) +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .text .globl _aes_hw_xts_encrypt_avx512 .private_extern _aes_hw_xts_encrypt_avx512 @@ -5226,3 +5227,4 @@ shufb_15_7: .text #endif +#endif diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S b/generated-src/mac-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S index 9d22addcb0..f7d5117c23 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S @@ -17,6 +17,7 @@ _gcm_gmult_ssse3: +_CET_ENDBR movdqu (%rdi),%xmm0 movdqa L$reverse_bytes(%rip),%xmm10 movdqa L$low4_mask(%rip),%xmm2 @@ -207,6 +208,7 @@ L$oop_row_3: _gcm_ghash_ssse3: +_CET_ENDBR movdqu (%rdi),%xmm0 movdqa L$reverse_bytes(%rip),%xmm10 movdqa L$low4_mask(%rip),%xmm11 diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/ghash-x86_64.S b/generated-src/mac-x86_64/crypto/fipsmodule/ghash-x86_64.S index ab3b9756e2..bcbea651c9 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/ghash-x86_64.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/ghash-x86_64.S @@ -13,6 +13,7 @@ _gcm_init_clmul: +_CET_ENDBR L$_init_clmul: movdqu (%rsi),%xmm2 pshufd $78,%xmm2,%xmm2 @@ -173,6 +174,7 @@ L$_init_clmul: .p2align 4 _gcm_gmult_clmul: +_CET_ENDBR L$_gmult_clmul: movdqu (%rdi),%xmm0 movdqa L$bswap_mask(%rip),%xmm5 @@ -228,6 +230,7 @@ L$_gmult_clmul: _gcm_ghash_clmul: +_CET_ENDBR L$_ghash_clmul: movdqa L$bswap_mask(%rip),%xmm10 @@ -616,6 +619,7 @@ L$done: .p2align 5 _gcm_init_avx: +_CET_ENDBR vzeroupper vmovdqu (%rsi),%xmm2 @@ -727,6 +731,7 @@ L$init_start_avx: .p2align 5 _gcm_gmult_avx: +_CET_ENDBR jmp L$_gmult_clmul @@ -736,6 +741,7 @@ _gcm_gmult_avx: .p2align 5 _gcm_ghash_avx: +_CET_ENDBR vzeroupper vmovdqu (%rdi),%xmm10 diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/md5-x86_64.S b/generated-src/mac-x86_64/crypto/fipsmodule/md5-x86_64.S index 7e90c955bd..9170682312 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/md5-x86_64.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/md5-x86_64.S @@ -12,6 +12,7 @@ _md5_block_asm_data_order: +_CET_ENDBR pushq %rbp pushq %rbx diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S b/generated-src/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S index b5215e41cd..97824a33e9 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S @@ -37,6 +37,7 @@ L$ordK: .p2align 5 _ecp_nistz256_neg: +_CET_ENDBR pushq %r12 pushq %r13 @@ -97,11 +98,14 @@ L$neg_epilogue: .p2align 5 _ecp_nistz256_ord_mul_mont: +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq _OPENSSL_ia32cap_P(%rip),%rcx movq 8(%rcx),%rcx andl $0x80100,%ecx cmpl $0x80100,%ecx je L$ecp_nistz256_ord_mul_montx +#endif pushq %rbp pushq %rbx @@ -425,11 +429,14 @@ L$ord_mul_epilogue: .p2align 5 _ecp_nistz256_ord_sqr_mont: +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq _OPENSSL_ia32cap_P(%rip),%rcx movq 8(%rcx),%rcx andl $0x80100,%ecx cmpl $0x80100,%ecx je L$ecp_nistz256_ord_sqr_montx +#endif pushq %rbp pushq %rbx @@ -710,6 +717,7 @@ L$ord_sqr_epilogue: .byte 0xf3,0xc3 +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .p2align 5 @@ -1154,6 +1162,7 @@ L$ord_sqrx_epilogue: .byte 0xf3,0xc3 +#endif @@ -1166,9 +1175,12 @@ L$ord_sqrx_epilogue: .p2align 5 _ecp_nistz256_mul_mont: +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq _OPENSSL_ia32cap_P(%rip),%rcx movq 8(%rcx),%rcx andl $0x80100,%ecx +#endif L$mul_mont: pushq %rbp @@ -1183,8 +1195,10 @@ L$mul_mont: pushq %r15 L$mul_body: +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX cmpl $0x80100,%ecx je L$mul_montx +#endif movq %rdx,%rbx movq 0(%rdx),%rax movq 0(%rsi),%r9 @@ -1193,6 +1207,7 @@ L$mul_body: movq 24(%rsi),%r12 call __ecp_nistz256_mul_montq +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX jmp L$mul_mont_done .p2align 5 @@ -1206,6 +1221,7 @@ L$mul_montx: leaq -128(%rsi),%rsi call __ecp_nistz256_mul_montx +#endif L$mul_mont_done: movq 0(%rsp),%r15 @@ -1457,9 +1473,12 @@ __ecp_nistz256_mul_montq: .p2align 5 _ecp_nistz256_sqr_mont: +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq _OPENSSL_ia32cap_P(%rip),%rcx movq 8(%rcx),%rcx andl $0x80100,%ecx +#endif pushq %rbp pushq %rbx @@ -1473,14 +1492,17 @@ _ecp_nistz256_sqr_mont: pushq %r15 L$sqr_body: +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX cmpl $0x80100,%ecx je L$sqr_montx +#endif movq 0(%rsi),%rax movq 8(%rsi),%r14 movq 16(%rsi),%r15 movq 24(%rsi),%r8 call __ecp_nistz256_sqr_montq +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX jmp L$sqr_mont_done .p2align 5 @@ -1492,6 +1514,7 @@ L$sqr_montx: leaq -128(%rsi),%rsi call __ecp_nistz256_sqr_montx +#endif L$sqr_mont_done: movq 0(%rsp),%r15 @@ -1675,6 +1698,7 @@ __ecp_nistz256_sqr_montq: .byte 0xf3,0xc3 +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .p2align 5 __ecp_nistz256_mul_montx: @@ -1973,6 +1997,7 @@ __ecp_nistz256_sqr_montx: .byte 0xf3,0xc3 +#endif .globl _ecp_nistz256_select_w5 @@ -1981,10 +2006,13 @@ __ecp_nistz256_sqr_montx: .p2align 5 _ecp_nistz256_select_w5: +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq _OPENSSL_ia32cap_P(%rip),%rax movq 8(%rax),%rax testl $32,%eax jnz L$avx2_select_w5 +#endif movdqa L$One(%rip),%xmm0 movd %edx,%xmm1 @@ -2048,10 +2076,13 @@ L$SEH_end_ecp_nistz256_select_w5: .p2align 5 _ecp_nistz256_select_w7: +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq _OPENSSL_ia32cap_P(%rip),%rax movq 8(%rax),%rax testl $32,%eax jnz L$avx2_select_w7 +#endif movdqa L$One(%rip),%xmm8 movd %edx,%xmm1 @@ -2095,6 +2126,7 @@ L$select_loop_sse_w7: L$SEH_end_ecp_nistz256_select_w7: +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX @@ -2158,7 +2190,8 @@ L$select_loop_avx2_w5: L$SEH_end_ecp_nistz256_avx2_select_w5: - +#endif +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .globl _ecp_nistz256_avx2_select_w7 @@ -2168,6 +2201,7 @@ L$SEH_end_ecp_nistz256_avx2_select_w5: _ecp_nistz256_avx2_select_w7: L$avx2_select_w7: +_CET_ENDBR vzeroupper vmovdqa L$Three(%rip),%ymm0 @@ -2239,6 +2273,7 @@ L$select_loop_avx2_w7: L$SEH_end_ecp_nistz256_avx2_select_w7: +#endif .p2align 5 __ecp_nistz256_add_toq: @@ -2374,11 +2409,14 @@ __ecp_nistz256_mul_by_2q: .p2align 5 _ecp_nistz256_point_double: +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq _OPENSSL_ia32cap_P(%rip),%rcx movq 8(%rcx),%rcx andl $0x80100,%ecx cmpl $0x80100,%ecx je L$point_doublex +#endif pushq %rbp pushq %rbx @@ -2602,11 +2640,14 @@ L$point_doubleq_epilogue: .p2align 5 _ecp_nistz256_point_add: +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq _OPENSSL_ia32cap_P(%rip),%rcx movq 8(%rcx),%rcx andl $0x80100,%ecx cmpl $0x80100,%ecx je L$point_addx +#endif pushq %rbp pushq %rbx @@ -3033,11 +3074,14 @@ L$point_addq_epilogue: .p2align 5 _ecp_nistz256_point_add_affine: +_CET_ENDBR +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq _OPENSSL_ia32cap_P(%rip),%rcx movq 8(%rcx),%rcx andl $0x80100,%ecx cmpl $0x80100,%ecx je L$point_add_affinex +#endif pushq %rbp pushq %rbx @@ -3355,6 +3399,7 @@ L$add_affineq_epilogue: .byte 0xf3,0xc3 +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .p2align 5 __ecp_nistz256_add_tox: @@ -4460,3 +4505,4 @@ L$add_affinex_epilogue: #endif +#endif diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S b/generated-src/mac-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S index 66e0df7c87..5f91bad704 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S @@ -13,6 +13,7 @@ .p2align 5 _beeu_mod_inverse_vartime: +_CET_ENDBR pushq %rbp pushq %r12 diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/rdrand-x86_64.S b/generated-src/mac-x86_64/crypto/fipsmodule/rdrand-x86_64.S index 3e76ddeb06..88d0376f20 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/rdrand-x86_64.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/rdrand-x86_64.S @@ -15,6 +15,7 @@ .p2align 4 _CRYPTO_rdrand: +_CET_ENDBR xorq %rax,%rax .byte 72,15,199,242 testq %rdx,%rdx @@ -41,6 +42,7 @@ L$err: .p2align 4 _CRYPTO_rdrand_multiple8_buf: +_CET_ENDBR testq %rsi,%rsi jz L$out movq $8,%rdx diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/rsaz-avx2.S b/generated-src/mac-x86_64/crypto/fipsmodule/rsaz-avx2.S index 6c79f7f619..09ce2caa0c 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/rsaz-avx2.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/rsaz-avx2.S @@ -12,6 +12,7 @@ .p2align 6 _rsaz_1024_sqr_avx2: +_CET_ENDBR leaq (%rsp),%rax pushq %rbx @@ -666,6 +667,7 @@ L$sqr_1024_epilogue: .p2align 6 _rsaz_1024_mul_avx2: +_CET_ENDBR leaq (%rsp),%rax pushq %rbx @@ -1222,6 +1224,7 @@ L$mul_1024_epilogue: .p2align 5 _rsaz_1024_red2norm_avx2: +_CET_ENDBR subq $-128,%rsi xorq %rax,%rax movq -128(%rsi),%r8 @@ -1422,6 +1425,7 @@ _rsaz_1024_red2norm_avx2: .p2align 5 _rsaz_1024_norm2red_avx2: +_CET_ENDBR subq $-128,%rdi movq (%rsi),%r8 movl $0x1fffffff,%eax @@ -1582,6 +1586,7 @@ _rsaz_1024_norm2red_avx2: .p2align 5 _rsaz_1024_scatter5_avx2: +_CET_ENDBR vzeroupper vmovdqu L$scatter_permd(%rip),%ymm5 shll $4,%edx @@ -1610,6 +1615,7 @@ L$oop_scatter_1024: .p2align 5 _rsaz_1024_gather5_avx2: +_CET_ENDBR vzeroupper movq %rsp,%r11 diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/sha1-x86_64.S b/generated-src/mac-x86_64/crypto/fipsmodule/sha1-x86_64.S index bdf8425b74..c2da422bbe 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/sha1-x86_64.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/sha1-x86_64.S @@ -6,33 +6,13 @@ #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__APPLE__) .text - -.globl _sha1_block_data_order -.private_extern _sha1_block_data_order +.globl _sha1_block_data_order_nohw +.private_extern _sha1_block_data_order_nohw .p2align 4 -_sha1_block_data_order: - - leaq _OPENSSL_ia32cap_P(%rip),%r10 - movl 0(%r10),%r9d - movl 4(%r10),%r8d - movl 8(%r10),%r10d - testl $512,%r8d - jz L$ialu - testl $536870912,%r10d - jnz _shaext_shortcut - andl $296,%r10d - cmpl $296,%r10d - je _avx2_shortcut - andl $268435456,%r8d - andl $1073741824,%r9d - orl %r9d,%r8d - cmpl $1342177280,%r8d - je _avx_shortcut - jmp _ssse3_shortcut +_sha1_block_data_order_nohw: -.p2align 4 -L$ialu: +_CET_ENDBR movq %rsp,%rax pushq %rbx @@ -1263,11 +1243,13 @@ L$epilogue: .byte 0xf3,0xc3 +.globl _sha1_block_data_order_hw +.private_extern _sha1_block_data_order_hw .p2align 5 -sha1_block_data_order_shaext: -_shaext_shortcut: +_sha1_block_data_order_hw: +_CET_ENDBR movdqu (%rdi),%xmm0 movd 16(%rdi),%xmm1 movdqa K_XX_XX+160(%rip),%xmm3 @@ -1433,11 +1415,13 @@ L$oop_shaext: .byte 0xf3,0xc3 +.globl _sha1_block_data_order_ssse3 +.private_extern _sha1_block_data_order_ssse3 .p2align 4 -sha1_block_data_order_ssse3: -_ssse3_shortcut: +_sha1_block_data_order_ssse3: +_CET_ENDBR movq %rsp,%r11 pushq %rbx @@ -2621,11 +2605,13 @@ L$epilogue_ssse3: .byte 0xf3,0xc3 +.globl _sha1_block_data_order_avx +.private_extern _sha1_block_data_order_avx .p2align 4 -sha1_block_data_order_avx: -_avx_shortcut: +_sha1_block_data_order_avx: +_CET_ENDBR movq %rsp,%r11 pushq %rbx @@ -3749,11 +3735,13 @@ L$epilogue_avx: .byte 0xf3,0xc3 +.globl _sha1_block_data_order_avx2 +.private_extern _sha1_block_data_order_avx2 .p2align 4 -sha1_block_data_order_avx2: -_avx2_shortcut: +_sha1_block_data_order_avx2: +_CET_ENDBR movq %rsp,%r11 pushq %rbx diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/sha256-x86_64.S b/generated-src/mac-x86_64/crypto/fipsmodule/sha256-x86_64.S index 4ce654d996..31e0cb3995 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/sha256-x86_64.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/sha256-x86_64.S @@ -6,26 +6,13 @@ #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__APPLE__) .text - -.globl _sha256_block_data_order -.private_extern _sha256_block_data_order +.globl _sha256_block_data_order_nohw +.private_extern _sha256_block_data_order_nohw .p2align 4 -_sha256_block_data_order: - - leaq _OPENSSL_ia32cap_P(%rip),%r11 - movl 0(%r11),%r9d - movl 4(%r11),%r10d - movl 8(%r11),%r11d - testl $536870912,%r11d - jnz L$shaext_shortcut - andl $1073741824,%r9d - andl $268435968,%r10d - orl %r9d,%r10d - cmpl $1342177792,%r10d - je L$avx_shortcut - testl $512,%r10d - jnz L$ssse3_shortcut +_sha256_block_data_order_nohw: + +_CET_ENDBR movq %rsp,%rax pushq %rbx @@ -1777,15 +1764,17 @@ K256: .long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 .byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .text +.globl _sha256_block_data_order_hw +.private_extern _sha256_block_data_order_hw .p2align 6 -sha256_block_data_order_shaext: -L$shaext_shortcut: +_sha256_block_data_order_hw: #ifdef BORINGSSL_DISPATCH_TEST movb $1,_BORINGSSL_function_hit+6(%rip) #endif +_CET_ENDBR leaq K256+128(%rip),%rcx movdqu (%rdi),%xmm1 movdqu 16(%rdi),%xmm2 @@ -1990,11 +1979,13 @@ L$oop_shaext: .byte 0xf3,0xc3 +.globl _sha256_block_data_order_ssse3 +.private_extern _sha256_block_data_order_ssse3 .p2align 6 -sha256_block_data_order_ssse3: +_sha256_block_data_order_ssse3: -L$ssse3_shortcut: +_CET_ENDBR movq %rsp,%rax pushq %rbx @@ -3103,11 +3094,13 @@ L$epilogue_ssse3: .byte 0xf3,0xc3 +.globl _sha256_block_data_order_avx +.private_extern _sha256_block_data_order_avx .p2align 6 -sha256_block_data_order_avx: +_sha256_block_data_order_avx: -L$avx_shortcut: +_CET_ENDBR movq %rsp,%rax pushq %rbx diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/sha512-x86_64.S b/generated-src/mac-x86_64/crypto/fipsmodule/sha512-x86_64.S index 0854366fce..5b873695c8 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/sha512-x86_64.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/sha512-x86_64.S @@ -6,22 +6,13 @@ #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__APPLE__) .text - -.globl _sha512_block_data_order -.private_extern _sha512_block_data_order +.globl _sha512_block_data_order_nohw +.private_extern _sha512_block_data_order_nohw .p2align 4 -_sha512_block_data_order: - - leaq _OPENSSL_ia32cap_P(%rip),%r11 - movl 0(%r11),%r9d - movl 4(%r11),%r10d - movl 8(%r11),%r11d - andl $1073741824,%r9d - andl $268435968,%r10d - orl %r9d,%r10d - cmpl $1342177792,%r10d - je L$avx_shortcut +_sha512_block_data_order_nohw: + +_CET_ENDBR movq %rsp,%rax pushq %rbx @@ -1817,11 +1808,13 @@ K512: .quad 0x0001020304050607,0x08090a0b0c0d0e0f .byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .text +.globl _sha512_block_data_order_avx +.private_extern _sha512_block_data_order_avx .p2align 6 -sha512_block_data_order_avx: +_sha512_block_data_order_avx: -L$avx_shortcut: +_CET_ENDBR movq %rsp,%rax pushq %rbx diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/vpaes-x86_64.S b/generated-src/mac-x86_64/crypto/fipsmodule/vpaes-x86_64.S index e0dcb74b2b..041d504fb4 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/vpaes-x86_64.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/vpaes-x86_64.S @@ -805,6 +805,7 @@ L$schedule_mangle_both: .p2align 4 _vpaes_set_encrypt_key: +_CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST movb $1,_BORINGSSL_function_hit+5(%rip) @@ -829,6 +830,7 @@ _vpaes_set_encrypt_key: .p2align 4 _vpaes_set_decrypt_key: +_CET_ENDBR movl %esi,%eax shrl $5,%eax addl $5,%eax @@ -853,6 +855,7 @@ _vpaes_set_decrypt_key: .p2align 4 _vpaes_encrypt: +_CET_ENDBR #ifdef BORINGSSL_DISPATCH_TEST movb $1,_BORINGSSL_function_hit+4(%rip) @@ -871,6 +874,7 @@ _vpaes_encrypt: .p2align 4 _vpaes_decrypt: +_CET_ENDBR movdqu (%rdi),%xmm0 call _vpaes_preheat call _vpaes_decrypt_core @@ -884,6 +888,7 @@ _vpaes_decrypt: .p2align 4 _vpaes_cbc_encrypt: +_CET_ENDBR xchgq %rcx,%rdx subq $16,%rcx jc L$cbc_abort @@ -927,6 +932,7 @@ L$cbc_abort: .p2align 4 _vpaes_ctr32_encrypt_blocks: +_CET_ENDBR xchgq %rcx,%rdx testq %rcx,%rcx diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/x86_64-mont.S b/generated-src/mac-x86_64/crypto/fipsmodule/x86_64-mont.S index eae7778d9d..2a97012e3b 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/x86_64-mont.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/x86_64-mont.S @@ -14,6 +14,7 @@ .p2align 4 _bn_mul_mont: +_CET_ENDBR movl %r9d,%r9d movq %rsp,%rax @@ -21,8 +22,10 @@ _bn_mul_mont: jnz L$mul_enter cmpl $8,%r9d jb L$mul_enter +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq _OPENSSL_ia32cap_P(%rip),%r11 movl 8(%r11),%r11d +#endif cmpq %rsi,%rdx jne L$mul4x_enter testl $7,%r9d @@ -271,9 +274,11 @@ bn_mul4x_mont: movq %rsp,%rax L$mul4x_enter: +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX andl $0x80100,%r11d cmpl $0x80100,%r11d je L$mulx4x_enter +#endif pushq %rbx pushq %rbp @@ -697,7 +702,9 @@ L$mul4x_epilogue: .byte 0xf3,0xc3 +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX +#endif @@ -781,6 +788,7 @@ L$sqr8x_body: pxor %xmm0,%xmm0 .byte 102,72,15,110,207 .byte 102,73,15,110,218 +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq _OPENSSL_ia32cap_P(%rip),%rax movl 8(%rax),%eax andl $0x80100,%eax @@ -801,6 +809,7 @@ L$sqr8x_body: .p2align 5 L$sqr8x_nox: +#endif call _bn_sqr8x_internal @@ -888,6 +897,7 @@ L$sqr8x_epilogue: .byte 0xf3,0xc3 +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .p2align 5 bn_mulx4x_mont: @@ -1244,6 +1254,7 @@ L$mulx4x_epilogue: .byte 0xf3,0xc3 +#endif .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 4 #endif diff --git a/generated-src/mac-x86_64/crypto/fipsmodule/x86_64-mont5.S b/generated-src/mac-x86_64/crypto/fipsmodule/x86_64-mont5.S index cd570012d3..cd7c7dadf1 100644 --- a/generated-src/mac-x86_64/crypto/fipsmodule/x86_64-mont5.S +++ b/generated-src/mac-x86_64/crypto/fipsmodule/x86_64-mont5.S @@ -14,13 +14,16 @@ .p2align 6 _bn_mul_mont_gather5: +_CET_ENDBR movl %r9d,%r9d movq %rsp,%rax testl $7,%r9d jnz L$mul_enter +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq _OPENSSL_ia32cap_P(%rip),%r11 movl 8(%r11),%r11d +#endif jmp L$mul4x_enter .p2align 4 @@ -459,9 +462,11 @@ bn_mul4x_mont_gather5: movq %rsp,%rax L$mul4x_enter: +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX andl $0x80108,%r11d cmpl $0x80108,%r11d je L$mulx4x_enter +#endif pushq %rbx pushq %rbp @@ -1092,13 +1097,16 @@ L$inner4x: .p2align 5 _bn_power5: +_CET_ENDBR movq %rsp,%rax +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX leaq _OPENSSL_ia32cap_P(%rip),%r11 movl 8(%r11),%r11d andl $0x80108,%r11d cmpl $0x80108,%r11d je L$powerx5_enter +#endif pushq %rbx pushq %rbp @@ -1231,6 +1239,7 @@ L$power5_epilogue: _bn_sqr8x_internal: __bn_sqr8x_internal: +_CET_ENDBR @@ -2063,6 +2072,7 @@ L$sqr4x_sub_entry: .byte 0xf3,0xc3 +#ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX .p2align 5 bn_mulx4x_mont_gather5: @@ -2743,6 +2753,7 @@ L$powerx5_epilogue: _bn_sqrx8x_internal: __bn_sqrx8x_internal: +_CET_ENDBR @@ -3409,12 +3420,14 @@ L$sqrx4x_sub_entry: .byte 0xf3,0xc3 +#endif .globl _bn_scatter5 .private_extern _bn_scatter5 .p2align 4 _bn_scatter5: +_CET_ENDBR cmpl $0,%esi jz L$scatter_epilogue @@ -3446,6 +3459,7 @@ L$scatter_epilogue: _bn_gather5: L$SEH_begin_bn_gather5: +_CET_ENDBR .byte 0x4c,0x8d,0x14,0x24 diff --git a/generated-src/mac-x86_64/crypto/test/trampoline-x86_64.S b/generated-src/mac-x86_64/crypto/test/trampoline-x86_64.S index bda4a20263..693200825d 100644 --- a/generated-src/mac-x86_64/crypto/test/trampoline-x86_64.S +++ b/generated-src/mac-x86_64/crypto/test/trampoline-x86_64.S @@ -20,6 +20,7 @@ _abi_test_trampoline: +_CET_ENDBR @@ -181,6 +182,7 @@ L$call_done: .private_extern _abi_test_clobber_rax .p2align 4 _abi_test_clobber_rax: +_CET_ENDBR xorq %rax,%rax .byte 0xf3,0xc3 @@ -189,6 +191,7 @@ _abi_test_clobber_rax: .private_extern _abi_test_clobber_rbx .p2align 4 _abi_test_clobber_rbx: +_CET_ENDBR xorq %rbx,%rbx .byte 0xf3,0xc3 @@ -197,6 +200,7 @@ _abi_test_clobber_rbx: .private_extern _abi_test_clobber_rcx .p2align 4 _abi_test_clobber_rcx: +_CET_ENDBR xorq %rcx,%rcx .byte 0xf3,0xc3 @@ -205,6 +209,7 @@ _abi_test_clobber_rcx: .private_extern _abi_test_clobber_rdx .p2align 4 _abi_test_clobber_rdx: +_CET_ENDBR xorq %rdx,%rdx .byte 0xf3,0xc3 @@ -213,6 +218,7 @@ _abi_test_clobber_rdx: .private_extern _abi_test_clobber_rdi .p2align 4 _abi_test_clobber_rdi: +_CET_ENDBR xorq %rdi,%rdi .byte 0xf3,0xc3 @@ -221,6 +227,7 @@ _abi_test_clobber_rdi: .private_extern _abi_test_clobber_rsi .p2align 4 _abi_test_clobber_rsi: +_CET_ENDBR xorq %rsi,%rsi .byte 0xf3,0xc3 @@ -229,6 +236,7 @@ _abi_test_clobber_rsi: .private_extern _abi_test_clobber_rbp .p2align 4 _abi_test_clobber_rbp: +_CET_ENDBR xorq %rbp,%rbp .byte 0xf3,0xc3 @@ -237,6 +245,7 @@ _abi_test_clobber_rbp: .private_extern _abi_test_clobber_r8 .p2align 4 _abi_test_clobber_r8: +_CET_ENDBR xorq %r8,%r8 .byte 0xf3,0xc3 @@ -245,6 +254,7 @@ _abi_test_clobber_r8: .private_extern _abi_test_clobber_r9 .p2align 4 _abi_test_clobber_r9: +_CET_ENDBR xorq %r9,%r9 .byte 0xf3,0xc3 @@ -253,6 +263,7 @@ _abi_test_clobber_r9: .private_extern _abi_test_clobber_r10 .p2align 4 _abi_test_clobber_r10: +_CET_ENDBR xorq %r10,%r10 .byte 0xf3,0xc3 @@ -261,6 +272,7 @@ _abi_test_clobber_r10: .private_extern _abi_test_clobber_r11 .p2align 4 _abi_test_clobber_r11: +_CET_ENDBR xorq %r11,%r11 .byte 0xf3,0xc3 @@ -269,6 +281,7 @@ _abi_test_clobber_r11: .private_extern _abi_test_clobber_r12 .p2align 4 _abi_test_clobber_r12: +_CET_ENDBR xorq %r12,%r12 .byte 0xf3,0xc3 @@ -277,6 +290,7 @@ _abi_test_clobber_r12: .private_extern _abi_test_clobber_r13 .p2align 4 _abi_test_clobber_r13: +_CET_ENDBR xorq %r13,%r13 .byte 0xf3,0xc3 @@ -285,6 +299,7 @@ _abi_test_clobber_r13: .private_extern _abi_test_clobber_r14 .p2align 4 _abi_test_clobber_r14: +_CET_ENDBR xorq %r14,%r14 .byte 0xf3,0xc3 @@ -293,6 +308,7 @@ _abi_test_clobber_r14: .private_extern _abi_test_clobber_r15 .p2align 4 _abi_test_clobber_r15: +_CET_ENDBR xorq %r15,%r15 .byte 0xf3,0xc3 @@ -301,6 +317,7 @@ _abi_test_clobber_r15: .private_extern _abi_test_clobber_xmm0 .p2align 4 _abi_test_clobber_xmm0: +_CET_ENDBR pxor %xmm0,%xmm0 .byte 0xf3,0xc3 @@ -309,6 +326,7 @@ _abi_test_clobber_xmm0: .private_extern _abi_test_clobber_xmm1 .p2align 4 _abi_test_clobber_xmm1: +_CET_ENDBR pxor %xmm1,%xmm1 .byte 0xf3,0xc3 @@ -317,6 +335,7 @@ _abi_test_clobber_xmm1: .private_extern _abi_test_clobber_xmm2 .p2align 4 _abi_test_clobber_xmm2: +_CET_ENDBR pxor %xmm2,%xmm2 .byte 0xf3,0xc3 @@ -325,6 +344,7 @@ _abi_test_clobber_xmm2: .private_extern _abi_test_clobber_xmm3 .p2align 4 _abi_test_clobber_xmm3: +_CET_ENDBR pxor %xmm3,%xmm3 .byte 0xf3,0xc3 @@ -333,6 +353,7 @@ _abi_test_clobber_xmm3: .private_extern _abi_test_clobber_xmm4 .p2align 4 _abi_test_clobber_xmm4: +_CET_ENDBR pxor %xmm4,%xmm4 .byte 0xf3,0xc3 @@ -341,6 +362,7 @@ _abi_test_clobber_xmm4: .private_extern _abi_test_clobber_xmm5 .p2align 4 _abi_test_clobber_xmm5: +_CET_ENDBR pxor %xmm5,%xmm5 .byte 0xf3,0xc3 @@ -349,6 +371,7 @@ _abi_test_clobber_xmm5: .private_extern _abi_test_clobber_xmm6 .p2align 4 _abi_test_clobber_xmm6: +_CET_ENDBR pxor %xmm6,%xmm6 .byte 0xf3,0xc3 @@ -357,6 +380,7 @@ _abi_test_clobber_xmm6: .private_extern _abi_test_clobber_xmm7 .p2align 4 _abi_test_clobber_xmm7: +_CET_ENDBR pxor %xmm7,%xmm7 .byte 0xf3,0xc3 @@ -365,6 +389,7 @@ _abi_test_clobber_xmm7: .private_extern _abi_test_clobber_xmm8 .p2align 4 _abi_test_clobber_xmm8: +_CET_ENDBR pxor %xmm8,%xmm8 .byte 0xf3,0xc3 @@ -373,6 +398,7 @@ _abi_test_clobber_xmm8: .private_extern _abi_test_clobber_xmm9 .p2align 4 _abi_test_clobber_xmm9: +_CET_ENDBR pxor %xmm9,%xmm9 .byte 0xf3,0xc3 @@ -381,6 +407,7 @@ _abi_test_clobber_xmm9: .private_extern _abi_test_clobber_xmm10 .p2align 4 _abi_test_clobber_xmm10: +_CET_ENDBR pxor %xmm10,%xmm10 .byte 0xf3,0xc3 @@ -389,6 +416,7 @@ _abi_test_clobber_xmm10: .private_extern _abi_test_clobber_xmm11 .p2align 4 _abi_test_clobber_xmm11: +_CET_ENDBR pxor %xmm11,%xmm11 .byte 0xf3,0xc3 @@ -397,6 +425,7 @@ _abi_test_clobber_xmm11: .private_extern _abi_test_clobber_xmm12 .p2align 4 _abi_test_clobber_xmm12: +_CET_ENDBR pxor %xmm12,%xmm12 .byte 0xf3,0xc3 @@ -405,6 +434,7 @@ _abi_test_clobber_xmm12: .private_extern _abi_test_clobber_xmm13 .p2align 4 _abi_test_clobber_xmm13: +_CET_ENDBR pxor %xmm13,%xmm13 .byte 0xf3,0xc3 @@ -413,6 +443,7 @@ _abi_test_clobber_xmm13: .private_extern _abi_test_clobber_xmm14 .p2align 4 _abi_test_clobber_xmm14: +_CET_ENDBR pxor %xmm14,%xmm14 .byte 0xf3,0xc3 @@ -421,6 +452,7 @@ _abi_test_clobber_xmm14: .private_extern _abi_test_clobber_xmm15 .p2align 4 _abi_test_clobber_xmm15: +_CET_ENDBR pxor %xmm15,%xmm15 .byte 0xf3,0xc3 @@ -434,6 +466,7 @@ _abi_test_clobber_xmm15: _abi_test_bad_unwind_wrong_register: +_CET_ENDBR pushq %r12 @@ -458,6 +491,7 @@ _abi_test_bad_unwind_wrong_register: _abi_test_bad_unwind_temporary: +_CET_ENDBR pushq %r12 @@ -485,6 +519,7 @@ _abi_test_bad_unwind_temporary: .globl _abi_test_get_and_clear_direction_flag .private_extern _abi_test_get_and_clear_direction_flag _abi_test_get_and_clear_direction_flag: +_CET_ENDBR pushfq popq %rax andq $0x400,%rax @@ -499,6 +534,7 @@ _abi_test_get_and_clear_direction_flag: .globl _abi_test_set_direction_flag .private_extern _abi_test_set_direction_flag _abi_test_set_direction_flag: +_CET_ENDBR std .byte 0xf3,0xc3 diff --git a/generated-src/win-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S b/generated-src/win-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S index fc0e3ad2dd..9b8d59edfd 100644 --- a/generated-src/win-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S +++ b/generated-src/win-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S @@ -314,17 +314,13 @@ aesv8_gcm_8x_enc_128: L128_enc_main_loop: //main loop start rev32 v5.16b, v30.16b //CTR block 8k+13 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 add v30.4s, v30.4s, v31.4s //CTR block 8k+13 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev64 v8.16b, v8.16b //GHASH block 8k ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev32 v6.16b, v30.16b //CTR block 8k+14 add v30.4s, v30.4s, v31.4s //CTR block 8k+14 @@ -355,9 +351,7 @@ L128_enc_main_loop: //main loop start eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h3l | h3h - ext v25.16b, v25.16b, v25.16b, #8 aese v5.16b, v26.16b aesmc v5.16b, v5.16b //AES block 8k+13 - round 0 @@ -452,9 +446,7 @@ L128_enc_main_loop: //main loop start aesmc v1.16b, v1.16b //AES block 8k+9 - round 3 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h1l | h1h - ext v22.16b, v22.16b, v22.16b, #8 pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low @@ -668,15 +660,11 @@ L128_enc_main_loop: //main loop start L128_enc_prepretail: //PREPRETAIL rev32 v5.16b, v30.16b //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v8.16b, v8.16b //GHASH block 8k rev64 v9.16b, v9.16b //GHASH block 8k+1 @@ -754,9 +742,7 @@ L128_enc_prepretail: //PREPRETAIL pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 ldp q28, q26, [x11, #32] //load rk2, rk3 aese v5.16b, v27.16b @@ -808,9 +794,7 @@ L128_enc_prepretail: //PREPRETAIL ldp q27, q28, [x11, #64] //load rk4, rk5 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h1l | h1h - ext v22.16b, v22.16b, v22.16b, #8 trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid aese v0.16b, v26.16b aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 @@ -988,16 +972,12 @@ L128_enc_tail: //TAIL mov v29.16b, v27.16b ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 .long 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 cmp x5, #112 b.gt L128_enc_blocks_more_than_7 @@ -1164,7 +1144,6 @@ L128_enc_blocks_more_than_3: //blocks left > 3 st1 { v9.16b}, [x2], #16 //AES final-3 block - store result ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v9.16b //GHASH final-3 block @@ -1201,7 +1180,6 @@ L128_enc_blocks_more_than_2: //blocks left > 2 ins v27.d[0], v8.d[1] //GHASH final-2 block - mid ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 movi v16.8b, #0 //supress further partial tag feed in eor v27.8b, v27.8b, v8.8b //GHASH final-2 block - mid @@ -1221,7 +1199,6 @@ L128_enc_blocks_more_than_1: //blocks left > 1 st1 { v9.16b}, [x2], #16 //AES final-1 block - store result ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v8.16b, v9.16b //GHASH final-1 block ldr q9, [x0], #16 //AES final block - load plaintext @@ -1283,7 +1260,6 @@ L128_enc_blocks_less_than_1: //blocks left <= 1 eor v16.8b, v16.8b, v8.8b //GHASH final block - mid ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 pmull v16.1q, v16.1d, v21.1d //GHASH final block - mid @@ -1623,9 +1599,7 @@ aesv8_gcm_8x_dec_128: L128_dec_main_loop: //main loop start ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev64 v8.16b, v8.16b //GHASH block 8k @@ -1633,9 +1607,7 @@ L128_dec_main_loop: //main loop start rev64 v14.16b, v14.16b //GHASH block 8k+6 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 eor v8.16b, v8.16b, v19.16b //PRE 1 rev32 v5.16b, v30.16b //CTR block 8k+13 @@ -1701,9 +1673,7 @@ L128_dec_main_loop: //main loop start pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid aese v6.16b, v27.16b aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 @@ -1731,9 +1701,7 @@ L128_dec_main_loop: //main loop start aesmc v4.16b, v4.16b //AES block 8k+12 - round 2 eor v10.16b, v10.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid aese v1.16b, v28.16b @@ -1981,17 +1949,13 @@ L128_dec_prepretail: //PREPRETAIL ldp q26, q27, [x11, #0] //load rk0, rk1 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 eor v8.16b, v8.16b, v19.16b //PRE 1 rev64 v9.16b, v9.16b //GHASH block 8k+1 add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v13.16b, v13.16b //GHASH block 8k+5 rev64 v12.16b, v12.16b //GHASH block 8k+4 @@ -2064,9 +2028,7 @@ L128_dec_prepretail: //PREPRETAIL pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 aese v1.16b, v27.16b aesmc v1.16b, v1.16b //AES block 8k+9 - round 1 pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid @@ -2079,9 +2041,7 @@ L128_dec_prepretail: //PREPRETAIL aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 .long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid aese v0.16b, v28.16b @@ -2287,16 +2247,12 @@ L128_dec_tail: //TAIL cmp x5, #112 ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 .long 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result b.gt L128_dec_blocks_more_than_7 @@ -2465,7 +2421,6 @@ L128_dec_blocks_more_than_3: //blocks left > 3 ins v27.d[0], v8.d[1] //GHASH final-3 block - mid ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 ldr q24, [x6, #64] //load h4k | h3k eor v27.8b, v27.8b, v8.8b //GHASH final-3 block - mid @@ -2492,7 +2447,6 @@ L128_dec_blocks_more_than_2: //blocks left > 2 eor v8.16b, v8.16b, v16.16b //feed in partial tag ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 movi v16.8b, #0 //supress further partial tag feed in ins v27.d[0], v8.d[1] //GHASH final-2 block - mid @@ -2517,7 +2471,6 @@ L128_dec_blocks_more_than_1: //blocks left > 1 rev64 v8.16b, v9.16b //GHASH final-1 block ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -2564,7 +2517,6 @@ L128_dec_blocks_less_than_1: //blocks left <= 1 mov v0.d[0], x13 //ctr0b is mask for last block ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits @@ -2969,16 +2921,12 @@ L192_enc_main_loop: //main loop start rev32 v5.16b, v30.16b //CTR block 8k+13 add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 rev64 v8.16b, v8.16b //GHASH block 8k ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev32 v6.16b, v30.16b //CTR block 8k+14 @@ -3080,9 +3028,7 @@ L192_enc_main_loop: //main loop start aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 pmull2 v18.1q, v8.2d, v24.2d //GHASH block 8k - mid pmull v24.1q, v8.1d, v24.1d //GHASH block 8k+1 - mid @@ -3128,9 +3074,7 @@ L192_enc_main_loop: //main loop start aese v4.16b, v28.16b aesmc v4.16b, v4.16b //AES block 8k+12 - round 5 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 ldp q26, q27, [x11, #96] //load rk6, rk7 aese v2.16b, v28.16b @@ -3357,9 +3301,7 @@ L192_enc_prepretail: //PREPRETAIL add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v8.16b //GHASH block 8k ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 @@ -3371,9 +3313,7 @@ L192_enc_prepretail: //PREPRETAIL rev64 v11.16b, v11.16b //GHASH block 8k+3 rev64 v10.16b, v10.16b //GHASH block 8k+2 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 eor v8.16b, v8.16b, v19.16b //PRE 1 rev32 v7.16b, v30.16b //CTR block 8k+15 @@ -3481,17 +3421,13 @@ L192_enc_prepretail: //PREPRETAIL aesmc v7.16b, v7.16b //AES block 8k+15 - round 3 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 aese v3.16b, v26.16b aesmc v3.16b, v3.16b //AES block 8k+11 - round 3 pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 aese v4.16b, v26.16b aesmc v4.16b, v4.16b //AES block 8k+12 - round 3 rev64 v12.16b, v12.16b //GHASH block 8k+4 (t0, t1, and t2 free) @@ -3701,19 +3637,15 @@ L192_enc_prepretail: //PREPRETAIL L192_enc_tail: //TAIL ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process ldr q8, [x0], #16 //AES block 8k+8 - l3ad plaintext ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 mov v29.16b, v26.16b ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 cmp x5, #112 .long 0xce007509 //eor3 v9.16b, v8.16b, v0.16b, v29.16b //AES block 8k+8 - result @@ -3889,7 +3821,6 @@ L192_enc_blocks_more_than_3: //blocks left > 3 ldr q9, [x0], #16 //AES final-2 block - load plaintext ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 ins v27.d[0], v8.d[1] //GHASH final-3 block - mid @@ -3912,7 +3843,6 @@ L192_enc_blocks_more_than_2: //blocks left > 2 rev64 v8.16b, v9.16b //GHASH final-2 block ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -3935,7 +3865,6 @@ L192_enc_blocks_more_than_2: //blocks left > 2 L192_enc_blocks_more_than_1: //blocks left > 1 ldr q22, [x6, #32] //load h1l | h1h - ext v22.16b, v22.16b, v22.16b, #8 st1 { v9.16b}, [x2], #16 //AES final-1 block - store result rev64 v8.16b, v9.16b //GHASH final-1 block @@ -3981,7 +3910,6 @@ L192_enc_blocks_less_than_1: //blocks left <= 1 mov v0.d[1], x14 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored mov v0.d[0], x13 //ctr0b is mask for last block @@ -4388,9 +4316,7 @@ L192_dec_main_loop: //main loop start add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v12.16b, v12.16b //GHASH block 8k+4 rev64 v11.16b, v11.16b //GHASH block 8k+3 @@ -4428,9 +4354,7 @@ L192_dec_main_loop: //main loop start aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 pmull v23.1q, v9.1d, v23.1d //GHASH block 8k+1 - low ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 aese v0.16b, v27.16b aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 @@ -4485,9 +4409,7 @@ L192_dec_main_loop: //main loop start aesmc v3.16b, v3.16b //AES block 8k+11 - round 2 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 aese v5.16b, v28.16b aesmc v5.16b, v5.16b //AES block 8k+13 - round 2 aese v2.16b, v26.16b @@ -4546,9 +4468,7 @@ L192_dec_main_loop: //main loop start aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 aese v3.16b, v28.16b aesmc v3.16b, v3.16b //AES block 8k+11 - round 5 aese v5.16b, v28.16b @@ -4773,9 +4693,7 @@ L192_dec_prepretail: //PREPRETAIL add v30.4s, v30.4s, v31.4s //CTR block 8k+13 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v8.16b //GHASH block 8k ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 @@ -4788,9 +4706,7 @@ L192_dec_prepretail: //PREPRETAIL rev64 v9.16b, v9.16b //GHASH block 8k+1 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev32 v7.16b, v30.16b //CTR block 8k+15 aese v0.16b, v26.16b @@ -4897,16 +4813,12 @@ L192_dec_prepretail: //PREPRETAIL aesmc v0.16b, v0.16b //AES block 8k+8 - round 3 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid aese v2.16b, v26.16b aesmc v2.16b, v2.16b //AES block 8k+10 - round 3 @@ -5119,17 +5031,13 @@ L192_dec_tail: //TAIL sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 mov v29.16b, v26.16b ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag .long 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result @@ -5291,7 +5199,6 @@ L192_dec_blocks_more_than_4: //blocks left > 4 L192_dec_blocks_more_than_3: //blocks left > 3 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v9.16b //GHASH final-3 block ldr q9, [x0], #16 //AES final-2 block - load ciphertext @@ -5320,7 +5227,6 @@ L192_dec_blocks_more_than_2: //blocks left > 2 rev64 v8.16b, v9.16b //GHASH final-2 block ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -5347,7 +5253,6 @@ L192_dec_blocks_more_than_1: //blocks left > 1 rev64 v8.16b, v9.16b //GHASH final-1 block ldr q9, [x0], #16 //AES final block - load ciphertext ldr q22, [x6, #32] //load h1l | h1h - ext v22.16b, v22.16b, v22.16b, #8 eor v8.16b, v8.16b, v16.16b //feed in partial tag movi v16.8b, #0 //supress further partial tag feed in @@ -5391,7 +5296,6 @@ L192_dec_blocks_less_than_1: //blocks left <= 1 csel x13, x8, x7, lt csel x14, x7, xzr, lt ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 mov v0.d[1], x14 ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored @@ -5835,9 +5739,7 @@ L256_enc_main_loop: //main loop start rev64 v11.16b, v11.16b //GHASH block 8k+3 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev32 v6.16b, v30.16b //CTR block 8k+14 @@ -5847,9 +5749,7 @@ L256_enc_main_loop: //main loop start rev64 v12.16b, v12.16b //GHASH block 8k+4 ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 aese v3.16b, v26.16b aesmc v3.16b, v3.16b //AES block 8k+11 - round 0 @@ -5950,9 +5850,7 @@ L256_enc_main_loop: //main loop start pmull v20.1q, v11.1d, v20.1d //GHASH block 8k+3 - low eor v19.16b, v19.16b, v23.16b //GHASH block 8k+1 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 trn1 v16.2d, v13.2d, v12.2d //GHASH block 8k+4, 8k+5 - mid .long 0xce1d2631 //eor3 v17.16b, v17.16b, v29.16b, v9.16b //GHASH block 8k+2, 8k+3 - high @@ -6036,9 +5934,7 @@ L256_enc_main_loop: //main loop start aesmc v5.16b, v5.16b //AES block 8k+13 - round 7 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 aese v2.16b, v27.16b aesmc v2.16b, v2.16b //AES block 8k+10 - round 7 .long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid @@ -6300,16 +6196,12 @@ L256_enc_prepretail: //PREPRETAIL aesmc v3.16b, v3.16b //AES block 8k+11 - round 1 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 aese v2.16b, v27.16b aesmc v2.16b, v2.16b //AES block 8k+10 - round 1 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 aese v0.16b, v27.16b aesmc v0.16b, v0.16b //AES block 8k+8 - round 1 aese v5.16b, v27.16b @@ -6425,9 +6317,7 @@ L256_enc_prepretail: //PREPRETAIL ldp q26, q27, [x11, #96] //load rk6, rk7 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 pmull2 v29.1q, v10.2d, v21.2d //GHASH block 8k+2 - mid pmull v21.1q, v10.1d, v21.1d //GHASH block 8k+3 - mid @@ -6469,9 +6359,7 @@ L256_enc_prepretail: //PREPRETAIL pmull2 v8.1q, v12.2d, v25.2d //GHASH block 8k+4 - high pmull v25.1q, v12.1d, v25.1d //GHASH block 8k+4 - low ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 ldp q28, q26, [x11, #128] //load rk8, rk9 aese v1.16b, v27.16b @@ -6645,18 +6533,14 @@ L256_enc_prepretail: //PREPRETAIL L256_enc_tail: //TAIL ldp q24, q25, [x6, #160] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 sub x5, x4, x0 //main_end_input_ptr is number of bytes left to process ldr q8, [x0], #16 //AES block 8k+8 - load plaintext ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ext v16.16b, v19.16b, v19.16b, #8 //prepare final partial tag ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 mov v29.16b, v28.16b cmp x5, #112 @@ -6826,7 +6710,6 @@ L256_enc_blocks_more_than_3: //blocks left > 3 st1 { v9.16b}, [x2], #16 //AES final-3 block - store result ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v9.16b //GHASH final-3 block eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -6852,7 +6735,6 @@ L256_enc_blocks_more_than_3: //blocks left > 3 L256_enc_blocks_more_than_2: //blocks left > 2 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 st1 { v9.16b}, [x2], #16 //AES final-2 block - store result @@ -6882,7 +6764,6 @@ L256_enc_blocks_more_than_1: //blocks left > 1 st1 { v9.16b}, [x2], #16 //AES final-1 block - store result ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 rev64 v8.16b, v9.16b //GHASH final-1 block ldr q9, [x0], #16 //AES final block - load plaintext @@ -6926,7 +6807,6 @@ L256_enc_blocks_less_than_1: //blocks left <= 1 mov v0.d[0], x13 //ctr0b is mask for last block ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ld1 { v26.16b}, [x2] //load existing bytes where the possibly partial last block is to be stored mov v0.d[1], x14 @@ -7367,9 +7247,7 @@ L256_dec_main_loop: //main loop start rev64 v9.16b, v9.16b //GHASH block 8k+1 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev32 v6.16b, v30.16b //CTR block 8k+14 add v30.4s, v30.4s, v31.4s //CTR block 8k+14 @@ -7404,9 +7282,7 @@ L256_dec_main_loop: //main loop start eor v8.16b, v8.16b, v19.16b //PRE 1 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 aese v6.16b, v27.16b aesmc v6.16b, v6.16b //AES block 8k+14 - round 1 @@ -7559,9 +7435,7 @@ L256_dec_main_loop: //main loop start .long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v14.16b, v14.16b //GHASH block 8k+6 eor v18.16b, v18.16b, v24.16b //GHASH block 8k+1 - mid @@ -7572,9 +7446,7 @@ L256_dec_main_loop: //main loop start ldp q28, q26, [x11, #128] //load rk8, rk9 ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 .long 0xce157652 //eor3 v18.16b, v18.16b, v21.16b, v29.16b //GHASH block 8k+2, 8k+3 - mid aese v7.16b, v27.16b aesmc v7.16b, v7.16b //AES block 8k+15 - round 7 @@ -7802,17 +7674,13 @@ L256_dec_prepretail: //PREPRETAIL ext v19.16b, v19.16b, v19.16b, #8 //PRE 0 ldr q23, [x6, #144] //load h7l | h7h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #176] //load h8l | h8h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v9.16b, v9.16b //GHASH block 8k+1 rev32 v7.16b, v30.16b //CTR block 8k+15 rev64 v10.16b, v10.16b //GHASH block 8k+2 ldr q20, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 aese v0.16b, v26.16b aesmc v0.16b, v0.16b //AES block 8k+8 - round 0 @@ -7927,9 +7795,7 @@ L256_dec_prepretail: //PREPRETAIL .long 0xce165273 //eor3 v19.16b, v19.16b, v22.16b, v20.16b //GHASH block 8k+2, 8k+3 - low ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 aese v7.16b, v27.16b aesmc v7.16b, v7.16b //AES block 8k+15 - round 4 @@ -7971,9 +7837,7 @@ L256_dec_prepretail: //PREPRETAIL ldp q26, q27, [x11, #96] //load rk6, rk7 ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v15.16b, v15.16b //GHASH block 8k+7 rev64 v13.16b, v13.16b //GHASH block 8k+5 @@ -8185,16 +8049,12 @@ L256_dec_tail: //TAIL ldr q9, [x0], #16 //AES block 8k+8 - load ciphertext ldp q24, q25, [x6, #160] //load h8k | h7k - ext v25.16b, v25.16b, v25.16b, #8 mov v29.16b, v28.16b ldp q20, q21, [x6, #96] //load h5l | h5h - ext v20.16b, v20.16b, v20.16b, #8 .long 0xce00752c //eor3 v12.16b, v9.16b, v0.16b, v29.16b //AES block 8k+8 - result ldp q22, q23, [x6, #128] //load h6l | h6h - ext v22.16b, v22.16b, v22.16b, #8 - ext v23.16b, v23.16b, v23.16b, #8 b.gt L256_dec_blocks_more_than_7 mov v7.16b, v6.16b @@ -8353,7 +8213,6 @@ L256_dec_blocks_more_than_4: //blocks left > 4 L256_dec_blocks_more_than_3: //blocks left > 3 ldr q25, [x6, #80] //load h4l | h4h - ext v25.16b, v25.16b, v25.16b, #8 rev64 v8.16b, v9.16b //GHASH final-3 block eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -8383,7 +8242,6 @@ L256_dec_blocks_more_than_2: //blocks left > 2 rev64 v8.16b, v9.16b //GHASH final-2 block ldr q23, [x6, #48] //load h3l | h3h - ext v23.16b, v23.16b, v23.16b, #8 ldr q9, [x0], #16 //AES final-1 block - load ciphertext eor v8.16b, v8.16b, v16.16b //feed in partial tag @@ -8411,7 +8269,6 @@ L256_dec_blocks_more_than_1: //blocks left > 1 ins v27.d[0], v8.d[1] //GHASH final-1 block - mid ldr q22, [x6, #32] //load h2l | h2h - ext v22.16b, v22.16b, v22.16b, #8 eor v27.8b, v27.8b, v8.8b //GHASH final-1 block - mid ldr q9, [x0], #16 //AES final block - load ciphertext @@ -8459,7 +8316,6 @@ L256_dec_blocks_less_than_1: //blocks left <= 1 and v9.16b, v9.16b, v0.16b //possibly partial last block has zeroes in highest bits ldr q20, [x6] //load h1l | h1h - ext v20.16b, v20.16b, v20.16b, #8 bif v12.16b, v26.16b, v0.16b //insert existing bytes in top end of result before storing rev64 v8.16b, v9.16b //GHASH final block diff --git a/generated-src/win-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S b/generated-src/win-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S index 250323a687..cc7e4487b4 100644 --- a/generated-src/win-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S +++ b/generated-src/win-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S @@ -85,7 +85,6 @@ aes_gcm_enc_kernel: aese v1.16b, v19.16b aesmc v1.16b, v1.16b // AES block 1 - round 1 ldr q14, [x6, #48] // load h3l | h3h - ext v14.16b, v14.16b, v14.16b, #8 aese v3.16b, v18.16b aesmc v3.16b, v3.16b // AES block 3 - round 0 aese v2.16b, v19.16b @@ -94,14 +93,12 @@ aes_gcm_enc_kernel: aese v1.16b, v20.16b aesmc v1.16b, v1.16b // AES block 1 - round 2 ldr q13, [x6, #32] // load h2l | h2h - ext v13.16b, v13.16b, v13.16b, #8 aese v3.16b, v19.16b aesmc v3.16b, v3.16b // AES block 3 - round 1 ldr q30, [x8, #192] // load rk12 aese v2.16b, v20.16b aesmc v2.16b, v2.16b // AES block 2 - round 2 ldr q15, [x6, #80] // load h4l | h4h - ext v15.16b, v15.16b, v15.16b, #8 aese v1.16b, v21.16b aesmc v1.16b, v1.16b // AES block 1 - round 3 ldr q29, [x8, #176] // load rk11 @@ -144,7 +141,6 @@ aes_gcm_enc_kernel: aese v0.16b, v24.16b aesmc v0.16b, v0.16b // AES block 0 - round 6 ldr q12, [x6] // load h1l | h1h - ext v12.16b, v12.16b, v12.16b, #8 aese v2.16b, v24.16b aesmc v2.16b, v2.16b // AES block 2 - round 6 ldr q28, [x8, #160] // load rk10 @@ -659,7 +655,7 @@ Lenc_tail: // TAIL fmov d4, x6 // AES block 4k+4 - mov low fmov v4.d[1], x7 // AES block 4k+4 - mov high eor v5.16b, v4.16b, v0.16b // AES block 4k+4 - result - b.gt Lenc_blocks_more_than_3 + b.gt Lenc_blocks_4_remaining cmp x5, #32 mov v3.16b, v2.16b movi v11.8b, #0 @@ -667,14 +663,14 @@ Lenc_tail: // TAIL sub w12, w12, #1 mov v2.16b, v1.16b movi v10.8b, #0 - b.gt Lenc_blocks_more_than_2 + b.gt Lenc_blocks_3_remaining mov v3.16b, v1.16b sub w12, w12, #1 cmp x5, #16 - b.gt Lenc_blocks_more_than_1 + b.gt Lenc_blocks_2_remaining sub w12, w12, #1 - b Lenc_blocks_less_than_1 -Lenc_blocks_more_than_3: // blocks left > 3 + b Lenc_blocks_1_remaining +Lenc_blocks_4_remaining: // blocks left = 4 st1 { v5.16b}, [x2], #16 // AES final-3 block - store result ldp x6, x7, [x0], #16 // AES final-2 block - load input low & high rev64 v4.16b, v5.16b // GHASH final-3 block @@ -691,7 +687,7 @@ Lenc_blocks_more_than_3: // blocks left > 3 pmull2 v9.1q, v4.2d, v15.2d // GHASH final-3 block - high pmull v10.1q, v22.1d, v10.1d // GHASH final-3 block - mid eor v5.16b, v5.16b, v1.16b // AES final-2 block - result -Lenc_blocks_more_than_2: // blocks left > 2 +Lenc_blocks_3_remaining: // blocks left = 3 st1 { v5.16b}, [x2], #16 // AES final-2 block - store result ldp x6, x7, [x0], #16 // AES final-1 block - load input low & high rev64 v4.16b, v5.16b // GHASH final-2 block @@ -710,7 +706,7 @@ Lenc_blocks_more_than_2: // blocks left > 2 pmull v22.1q, v22.1d, v17.1d // GHASH final-2 block - mid eor v11.16b, v11.16b, v21.16b // GHASH final-2 block - low eor v10.16b, v10.16b, v22.16b // GHASH final-2 block - mid -Lenc_blocks_more_than_1: // blocks left > 1 +Lenc_blocks_2_remaining: // blocks left = 2 st1 { v5.16b}, [x2], #16 // AES final-1 block - store result rev64 v4.16b, v5.16b // GHASH final-1 block ldp x6, x7, [x0], #16 // AES final block - load input low & high @@ -730,24 +726,9 @@ Lenc_blocks_more_than_1: // blocks left > 1 eor v5.16b, v5.16b, v3.16b // AES final block - result eor v10.16b, v10.16b, v22.16b // GHASH final-1 block - mid eor v11.16b, v11.16b, v21.16b // GHASH final-1 block - low -Lenc_blocks_less_than_1: // blocks left <= 1 - and x1, x1, #127 // bit_length %= 128 - mvn x13, xzr // rkN_l = 0xffffffffffffffff - sub x1, x1, #128 // bit_length -= 128 - neg x1, x1 // bit_length = 128 - #bits in input (in range [1,128]) - ld1 { v18.16b}, [x2] // load existing bytes where the possibly partial last block is to be stored - mvn x14, xzr // rkN_h = 0xffffffffffffffff - and x1, x1, #127 // bit_length %= 128 - lsr x14, x14, x1 // rkN_h is mask for top 64b of last block - cmp x1, #64 - csel x6, x13, x14, lt - csel x7, x14, xzr, lt - fmov d0, x6 // ctr0b is mask for last block - fmov v0.d[1], x7 - and v5.16b, v5.16b, v0.16b // possibly partial last block has zeroes in highest bits +Lenc_blocks_1_remaining: // blocks_left = 1 rev64 v4.16b, v5.16b // GHASH final block eor v4.16b, v4.16b, v8.16b // feed in partial tag - bif v5.16b, v18.16b, v0.16b // insert existing bytes in top end of result before storing pmull2 v20.1q, v4.2d, v12.2d // GHASH final block - high mov d8, v4.d[1] // GHASH final block - mid rev w9, w12 @@ -847,15 +828,12 @@ aes_gcm_dec_kernel: aese v0.16b, v18.16b aesmc v0.16b, v0.16b // AES block 0 - round 0 ldr q14, [x6, #48] // load h3l | h3h - ext v14.16b, v14.16b, v14.16b, #8 aese v3.16b, v18.16b aesmc v3.16b, v3.16b // AES block 3 - round 0 ldr q15, [x6, #80] // load h4l | h4h - ext v15.16b, v15.16b, v15.16b, #8 aese v1.16b, v18.16b aesmc v1.16b, v1.16b // AES block 1 - round 0 ldr q13, [x6, #32] // load h2l | h2h - ext v13.16b, v13.16b, v13.16b, #8 aese v2.16b, v18.16b aesmc v2.16b, v2.16b // AES block 2 - round 0 ldr q20, [x8, #32] // load rk2 @@ -875,7 +853,6 @@ aes_gcm_dec_kernel: aese v0.16b, v20.16b aesmc v0.16b, v0.16b // AES block 0 - round 2 ldr q12, [x6] // load h1l | h1h - ext v12.16b, v12.16b, v12.16b, #8 aese v2.16b, v20.16b aesmc v2.16b, v2.16b // AES block 2 - round 2 ldr q28, [x8, #160] // load rk10 @@ -1430,7 +1407,7 @@ Ldec_tail: // TAIL cmp x5, #48 eor x6, x6, x13 // AES block 4k+4 - round N low eor x7, x7, x14 // AES block 4k+4 - round N high - b.gt Ldec_blocks_more_than_3 + b.gt Ldec_blocks_4_remaining sub w12, w12, #1 mov v3.16b, v2.16b movi v10.8b, #0 @@ -1438,14 +1415,14 @@ Ldec_tail: // TAIL cmp x5, #32 movi v9.8b, #0 mov v2.16b, v1.16b - b.gt Ldec_blocks_more_than_2 + b.gt Ldec_blocks_3_remaining sub w12, w12, #1 mov v3.16b, v1.16b cmp x5, #16 - b.gt Ldec_blocks_more_than_1 + b.gt Ldec_blocks_2_remaining sub w12, w12, #1 - b Ldec_blocks_less_than_1 -Ldec_blocks_more_than_3: // blocks left > 3 + b Ldec_blocks_1_remaining +Ldec_blocks_4_remaining: // blocks left = 4 rev64 v4.16b, v5.16b // GHASH final-3 block ld1 { v5.16b}, [x0], #16 // AES final-2 block - load ciphertext stp x6, x7, [x2], #16 // AES final-3 block - store result @@ -1462,7 +1439,7 @@ Ldec_blocks_more_than_3: // blocks left > 3 eor x6, x6, x13 // AES final-2 block - round N low pmull v11.1q, v4.1d, v15.1d // GHASH final-3 block - low eor x7, x7, x14 // AES final-2 block - round N high -Ldec_blocks_more_than_2: // blocks left > 2 +Ldec_blocks_3_remaining: // blocks left = 3 rev64 v4.16b, v5.16b // GHASH final-2 block ld1 { v5.16b}, [x0], #16 // AES final-1 block - load ciphertext eor v4.16b, v4.16b, v8.16b // feed in partial tag @@ -1481,7 +1458,7 @@ Ldec_blocks_more_than_2: // blocks left > 2 eor x6, x6, x13 // AES final-1 block - round N low eor v10.16b, v10.16b, v22.16b // GHASH final-2 block - mid eor x7, x7, x14 // AES final-1 block - round N high -Ldec_blocks_more_than_1: // blocks left > 1 +Ldec_blocks_2_remaining: // blocks left = 2 stp x6, x7, [x2], #16 // AES final-1 block - store result rev64 v4.16b, v5.16b // GHASH final-1 block ld1 { v5.16b}, [x0], #16 // AES final block - load ciphertext @@ -1501,28 +1478,8 @@ Ldec_blocks_more_than_1: // blocks left > 1 eor v9.16b, v9.16b, v20.16b // GHASH final-1 block - high eor v10.16b, v10.16b, v22.16b // GHASH final-1 block - mid eor x7, x7, x14 // AES final block - round N high -Ldec_blocks_less_than_1: // blocks left <= 1 - and x1, x1, #127 // bit_length %= 128 - mvn x14, xzr // rkN_h = 0xffffffffffffffff - sub x1, x1, #128 // bit_length -= 128 - mvn x13, xzr // rkN_l = 0xffffffffffffffff - ldp x4, x5, [x2] // load existing bytes we need to not overwrite - neg x1, x1 // bit_length = 128 - #bits in input (in range [1,128]) - and x1, x1, #127 // bit_length %= 128 - lsr x14, x14, x1 // rkN_h is mask for top 64b of last block - cmp x1, #64 - csel x9, x13, x14, lt - csel x10, x14, xzr, lt - fmov d0, x9 // ctr0b is mask for last block - and x6, x6, x9 - mov v0.d[1], x10 - bic x4, x4, x9 // mask out low existing bytes +Ldec_blocks_1_remaining: // blocks_left = 1 rev w9, w12 - bic x5, x5, x10 // mask out high existing bytes - orr x6, x6, x4 - and x7, x7, x10 - orr x7, x7, x5 - and v5.16b, v5.16b, v0.16b // possibly partial last block has zeroes in highest bits rev64 v4.16b, v5.16b // GHASH final block eor v4.16b, v4.16b, v8.16b // feed in partial tag pmull v21.1q, v4.1d, v12.1d // GHASH final block - low diff --git a/generated-src/win-aarch64/crypto/fipsmodule/ghashv8-armx.S b/generated-src/win-aarch64/crypto/fipsmodule/ghashv8-armx.S index b352fa31a8..dd9b9dee27 100644 --- a/generated-src/win-aarch64/crypto/fipsmodule/ghashv8-armx.S +++ b/generated-src/win-aarch64/crypto/fipsmodule/ghashv8-armx.S @@ -32,13 +32,14 @@ gcm_init_v8: and v16.16b,v16.16b,v17.16b orr v3.16b,v3.16b,v18.16b //H<<<=1 eor v20.16b,v3.16b,v16.16b //twisted H + ext v20.16b, v20.16b, v20.16b, #8 st1 {v20.2d},[x0],#16 //store Htable[0] - //calculate H^2 + //calculate H^2 ext v16.16b,v20.16b,v20.16b,#8 //Karatsuba pre-processing - pmull v0.1q,v20.1d,v20.1d + pmull2 v0.1q,v20.2d,v20.2d eor v16.16b,v16.16b,v20.16b - pmull2 v2.1q,v20.2d,v20.2d + pmull v2.1q,v20.1d,v20.1d pmull v1.1q,v16.1d,v16.1d ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing @@ -54,17 +55,19 @@ gcm_init_v8: ext v18.16b,v0.16b,v0.16b,#8 //2nd phase pmull v0.1q,v0.1d,v19.1d eor v18.16b,v18.16b,v2.16b - eor v22.16b,v0.16b,v18.16b + eor v17.16b,v0.16b,v18.16b - ext v17.16b,v22.16b,v22.16b,#8 //Karatsuba pre-processing + ext v22.16b,v17.16b,v17.16b,#8 //Karatsuba pre-processing eor v17.16b,v17.16b,v22.16b ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed - st1 {v21.2d,v22.2d},[x0],#32 //store Htable[1..2] + st1 {v21.2d},[x0],#16 //store Htable[1..2] + st1 {v22.2d},[x0],#16 //store Htable[1..2] + //calculate H^3 and H^4 - pmull v0.1q,v20.1d, v22.1d - pmull v5.1q,v22.1d,v22.1d - pmull2 v2.1q,v20.2d, v22.2d - pmull2 v7.1q,v22.2d,v22.2d + pmull2 v0.1q,v20.2d, v22.2d + pmull2 v5.1q,v22.2d,v22.2d + pmull v2.1q,v20.1d, v22.1d + pmull v7.1q,v22.1d,v22.1d pmull v1.1q,v16.1d,v17.1d pmull v6.1q,v17.1d,v17.1d @@ -93,11 +96,11 @@ gcm_init_v8: eor v18.16b,v18.16b,v2.16b eor v4.16b,v4.16b,v7.16b - eor v23.16b, v0.16b,v18.16b //H^3 - eor v25.16b,v5.16b,v4.16b //H^4 + eor v16.16b, v0.16b,v18.16b //H^3 + eor v17.16b, v5.16b,v4.16b //H^4 - ext v16.16b,v23.16b, v23.16b,#8 //Karatsuba pre-processing - ext v17.16b,v25.16b,v25.16b,#8 + ext v23.16b,v16.16b,v16.16b,#8 //Karatsuba pre-processing + ext v25.16b,v17.16b,v17.16b,#8 ext v18.16b,v22.16b,v22.16b,#8 eor v16.16b,v16.16b,v23.16b eor v17.16b,v17.16b,v25.16b @@ -106,10 +109,10 @@ gcm_init_v8: st1 {v23.2d,v24.2d,v25.2d},[x0],#48 //store Htable[3..5] //calculate H^5 and H^6 - pmull v0.1q,v22.1d, v23.1d - pmull v5.1q,v23.1d,v23.1d - pmull2 v2.1q,v22.2d, v23.2d - pmull2 v7.1q,v23.2d,v23.2d + pmull2 v0.1q,v22.2d, v23.2d + pmull2 v5.1q,v23.2d,v23.2d + pmull v2.1q,v22.1d, v23.1d + pmull v7.1q,v23.1d,v23.1d pmull v1.1q,v16.1d,v18.1d pmull v6.1q,v16.1d,v16.1d @@ -137,11 +140,12 @@ gcm_init_v8: pmull v5.1q,v5.1d,v19.1d eor v18.16b,v18.16b,v2.16b eor v4.16b,v4.16b,v7.16b - eor v26.16b,v0.16b,v18.16b //H^5 - eor v28.16b,v5.16b,v4.16b //H^6 - ext v16.16b,v26.16b, v26.16b,#8 //Karatsuba pre-processing - ext v17.16b,v28.16b,v28.16b,#8 + eor v16.16b,v0.16b,v18.16b //H^5 + eor v17.16b,v5.16b,v4.16b //H^6 + + ext v26.16b, v16.16b, v16.16b,#8 //Karatsuba pre-processing + ext v28.16b, v17.16b, v17.16b,#8 ext v18.16b,v22.16b,v22.16b,#8 eor v16.16b,v16.16b,v26.16b eor v17.16b,v17.16b,v28.16b @@ -150,10 +154,10 @@ gcm_init_v8: st1 {v26.2d,v27.2d,v28.2d},[x0],#48 //store Htable[6..8] //calculate H^7 and H^8 - pmull v0.1q,v22.1d,v26.1d - pmull v5.1q,v22.1d,v28.1d - pmull2 v2.1q,v22.2d,v26.2d - pmull2 v7.1q,v22.2d,v28.2d + pmull2 v0.1q,v22.2d,v26.2d + pmull2 v5.1q,v22.2d,v28.2d + pmull v2.1q,v22.1d,v26.1d + pmull v7.1q,v22.1d,v28.1d pmull v1.1q,v16.1d,v18.1d pmull v6.1q,v17.1d,v18.1d @@ -181,11 +185,11 @@ gcm_init_v8: pmull v5.1q,v5.1d,v19.1d eor v18.16b,v18.16b,v2.16b eor v4.16b,v4.16b,v7.16b - eor v29.16b,v0.16b,v18.16b //H^7 - eor v31.16b,v5.16b,v4.16b //H^8 + eor v16.16b,v0.16b,v18.16b //H^7 + eor v17.16b,v5.16b,v4.16b //H^8 - ext v16.16b,v29.16b,v29.16b,#8 //Karatsuba pre-processing - ext v17.16b,v31.16b,v31.16b,#8 + ext v29.16b,v16.16b,v16.16b,#8 //Karatsuba pre-processing + ext v31.16b,v17.16b,v17.16b,#8 eor v16.16b,v16.16b,v29.16b eor v17.16b,v17.16b,v31.16b ext v30.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed @@ -203,6 +207,7 @@ gcm_gmult_v8: ld1 {v17.2d},[x0] //load Xi movi v19.16b,#0xe1 ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... + ext v20.16b,v20.16b,v20.16b,#8 shl v19.2d,v19.2d,#57 #ifndef __AARCH64EB__ rev64 v17.16b,v17.16b @@ -264,8 +269,10 @@ gcm_ghash_v8: //loaded twice, but last //copy is not processed ld1 {v20.2d,v21.2d},[x1],#32 //load twisted H, ..., H^2 + ext v20.16b,v20.16b,v20.16b,#8 movi v19.16b,#0xe1 ld1 {v22.2d},[x1] + ext v22.16b,v22.16b,v22.16b,#8 csel x12,xzr,x12,eq //is it time to zero x12? ext v0.16b,v0.16b,v0.16b,#8 //rotate Xi ld1 {v16.2d},[x2],#16 //load [rotated] I[0] @@ -381,8 +388,12 @@ gcm_ghash_v8_4x: Lgcm_ghash_v8_4x: ld1 {v0.2d},[x0] //load [rotated] Xi ld1 {v20.2d,v21.2d,v22.2d},[x1],#48 //load twisted H, ..., H^2 + ext v20.16b,v20.16b,v20.16b,#8 + ext v22.16b,v22.16b,v22.16b,#8 movi v19.16b,#0xe1 ld1 {v26.2d,v27.2d,v28.2d},[x1] //load twisted H^3, ..., H^4 + ext v26.16b,v26.16b,v26.16b,#8 + ext v28.16b,v28.16b,v28.16b,#8 shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 diff --git a/generated-src/win-aarch64/crypto/fipsmodule/sha1-armv8.S b/generated-src/win-aarch64/crypto/fipsmodule/sha1-armv8.S index f5082a0d1b..f8c8b86121 100644 --- a/generated-src/win-aarch64/crypto/fipsmodule/sha1-armv8.S +++ b/generated-src/win-aarch64/crypto/fipsmodule/sha1-armv8.S @@ -8,25 +8,15 @@ .text +.globl sha1_block_data_order_nohw - -.globl sha1_block_data_order - -.def sha1_block_data_order +.def sha1_block_data_order_nohw .type 32 .endef .align 6 -sha1_block_data_order: +sha1_block_data_order_nohw: // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET -#if defined(OPENSSL_HWASAN) && __clang_major__ >= 10 - adrp x16,:pg_hi21_nc:OPENSSL_armcap_P -#else - adrp x16,OPENSSL_armcap_P -#endif - ldr w16,[x16,:lo12:OPENSSL_armcap_P] - tst w16,#ARMV8_SHA1 - b.ne Lv8_entry stp x29,x30,[sp,#-96]! add x29,sp,#0 @@ -1083,14 +1073,15 @@ Loop: ldr x29,[sp],#96 ret -.def sha1_block_armv8 +.globl sha1_block_data_order_hw + +.def sha1_block_data_order_hw .type 32 .endef .align 6 -sha1_block_armv8: +sha1_block_data_order_hw: // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET -Lv8_entry: stp x29,x30,[sp,#-16]! add x29,sp,#0 diff --git a/generated-src/win-aarch64/crypto/fipsmodule/sha256-armv8.S b/generated-src/win-aarch64/crypto/fipsmodule/sha256-armv8.S index 493fc36bfa..b77f9e8346 100644 --- a/generated-src/win-aarch64/crypto/fipsmodule/sha256-armv8.S +++ b/generated-src/win-aarch64/crypto/fipsmodule/sha256-armv8.S @@ -50,26 +50,13 @@ .text +.globl sha256_block_data_order_nohw - -.globl sha256_block_data_order - -.def sha256_block_data_order +.def sha256_block_data_order_nohw .type 32 .endef .align 6 -sha256_block_data_order: - AARCH64_VALID_CALL_TARGET -#ifndef __KERNEL__ -#if defined(OPENSSL_HWASAN) && __clang_major__ >= 10 - adrp x16,:pg_hi21_nc:OPENSSL_armcap_P -#else - adrp x16,OPENSSL_armcap_P -#endif - ldr w16,[x16,:lo12:OPENSSL_armcap_P] - tst w16,#ARMV8_SHA256 - b.ne Lv8_entry -#endif +sha256_block_data_order_nohw: AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -1062,12 +1049,13 @@ LK256: .align 2 .text #ifndef __KERNEL__ -.def sha256_block_armv8 +.globl sha256_block_data_order_hw + +.def sha256_block_data_order_hw .type 32 .endef .align 6 -sha256_block_armv8: -Lv8_entry: +sha256_block_data_order_hw: #ifdef BORINGSSL_DISPATCH_TEST adrp x9,BORINGSSL_function_hit @@ -1076,6 +1064,7 @@ Lv8_entry: strb w10, [x9,#6] // kFlag_sha256_hw #endif // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 diff --git a/generated-src/win-aarch64/crypto/fipsmodule/sha512-armv8.S b/generated-src/win-aarch64/crypto/fipsmodule/sha512-armv8.S index cbb173e68d..fcfefb0b29 100644 --- a/generated-src/win-aarch64/crypto/fipsmodule/sha512-armv8.S +++ b/generated-src/win-aarch64/crypto/fipsmodule/sha512-armv8.S @@ -50,26 +50,13 @@ .text +.globl sha512_block_data_order_nohw - -.globl sha512_block_data_order - -.def sha512_block_data_order +.def sha512_block_data_order_nohw .type 32 .endef .align 6 -sha512_block_data_order: - AARCH64_VALID_CALL_TARGET -#ifndef __KERNEL__ -#if defined(OPENSSL_HWASAN) && __clang_major__ >= 10 - adrp x16,:pg_hi21_nc:OPENSSL_armcap_P -#else - adrp x16,OPENSSL_armcap_P -#endif - ldr w16,[x16,:lo12:OPENSSL_armcap_P] - tst w16,#ARMV8_SHA512 - b.ne Lv8_entry -#endif +sha512_block_data_order_nohw: AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -1086,12 +1073,13 @@ LK512: .align 2 .text #ifndef __KERNEL__ -.def sha512_block_armv8 +.globl sha512_block_data_order_hw + +.def sha512_block_data_order_hw .type 32 .endef .align 6 -sha512_block_armv8: -Lv8_entry: +sha512_block_data_order_hw: #ifdef BORINGSSL_DISPATCH_TEST adrp x9,BORINGSSL_function_hit @@ -1099,6 +1087,8 @@ Lv8_entry: mov w10, #1 strb w10, [x9,#8] // kFlag_sha512_hw #endif + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 diff --git a/generated-src/win-x86_64/crypto/chacha/chacha-x86_64.asm b/generated-src/win-x86_64/crypto/chacha/chacha-x86_64.asm index 9126b1b79b..b2a66c7439 100644 --- a/generated-src/win-x86_64/crypto/chacha/chacha-x86_64.asm +++ b/generated-src/win-x86_64/crypto/chacha/chacha-x86_64.asm @@ -6,13 +6,12 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 -EXTERN OPENSSL_ia32cap_P - section .rdata rdata align=8 ALIGN 64 $L$zero: @@ -49,14 +48,14 @@ $L$sixteen: DB 108,46,111,114,103,62,0 section .text -global ChaCha20_ctr32 +global ChaCha20_ctr32_nohw ALIGN 64 -ChaCha20_ctr32: +ChaCha20_ctr32_nohw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ChaCha20_ctr32: +$L$SEH_begin_ChaCha20_ctr32_nohw: mov rdi,rcx mov rsi,rdx mov rdx,r8 @@ -65,12 +64,7 @@ $L$SEH_begin_ChaCha20_ctr32: - cmp rdx,0 - je NEAR $L$no_data - mov r10,QWORD[((OPENSSL_ia32cap_P+4))] - test r10d,512 - jnz NEAR $L$ChaCha20_ssse3 - +_CET_ENDBR push rbx push rbp @@ -343,14 +337,15 @@ $L$no_data: mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret -$L$SEH_end_ChaCha20_ctr32: +$L$SEH_end_ChaCha20_ctr32_nohw: +global ChaCha20_ctr32_ssse3 ALIGN 32 -ChaCha20_ssse3: +ChaCha20_ctr32_ssse3: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ChaCha20_ssse3: +$L$SEH_begin_ChaCha20_ctr32_ssse3: mov rdi,rcx mov rsi,rdx mov rdx,r8 @@ -358,14 +353,10 @@ $L$SEH_begin_ChaCha20_ssse3: mov r8,QWORD[40+rsp] -$L$ChaCha20_ssse3: +_CET_ENDBR mov r9,rsp - cmp rdx,128 - ja NEAR $L$ChaCha20_4x - -$L$do_sse3_after_all: sub rsp,64+40 movaps XMMWORD[(-40)+r9],xmm6 movaps XMMWORD[(-24)+r9],xmm7 @@ -498,14 +489,15 @@ $L$ssse3_epilogue: mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret -$L$SEH_end_ChaCha20_ssse3: +$L$SEH_end_ChaCha20_ctr32_ssse3: +global ChaCha20_ctr32_ssse3_4x ALIGN 32 -ChaCha20_4x: +ChaCha20_ctr32_ssse3_4x: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ChaCha20_4x: +$L$SEH_begin_ChaCha20_ctr32_ssse3_4x: mov rdi,rcx mov rsi,rdx mov rdx,r8 @@ -513,22 +505,11 @@ $L$SEH_begin_ChaCha20_4x: mov r8,QWORD[40+rsp] -$L$ChaCha20_4x: +_CET_ENDBR mov r9,rsp mov r11,r10 - shr r10,32 - test r10,32 - jnz NEAR $L$ChaCha20_8x - cmp rdx,192 - ja NEAR $L$proceed4x - - and r11,71303168 - cmp r11,4194304 - je NEAR $L$do_sse3_after_all - -$L$proceed4x: sub rsp,0x140+168 movaps XMMWORD[(-168)+r9],xmm6 movaps XMMWORD[(-152)+r9],xmm7 @@ -1084,14 +1065,15 @@ $L$4x_epilogue: mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret -$L$SEH_end_ChaCha20_4x: +$L$SEH_end_ChaCha20_ctr32_ssse3_4x: +global ChaCha20_ctr32_avx2 ALIGN 32 -ChaCha20_8x: +ChaCha20_ctr32_avx2: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ChaCha20_8x: +$L$SEH_begin_ChaCha20_ctr32_avx2: mov rdi,rcx mov rsi,rdx mov rdx,r8 @@ -1099,8 +1081,8 @@ $L$SEH_begin_ChaCha20_8x: mov r8,QWORD[40+rsp] -$L$ChaCha20_8x: +_CET_ENDBR mov r9,rsp sub rsp,0x280+168 @@ -1724,7 +1706,7 @@ $L$8x_epilogue: mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret -$L$SEH_end_ChaCha20_8x: +$L$SEH_end_ChaCha20_ctr32_avx2: EXTERN __imp_RtlVirtualUnwind ALIGN 16 @@ -1893,36 +1875,36 @@ full_handler: section .pdata rdata align=4 ALIGN 4 - DD $L$SEH_begin_ChaCha20_ctr32 wrt ..imagebase - DD $L$SEH_end_ChaCha20_ctr32 wrt ..imagebase - DD $L$SEH_info_ChaCha20_ctr32 wrt ..imagebase - - DD $L$SEH_begin_ChaCha20_ssse3 wrt ..imagebase - DD $L$SEH_end_ChaCha20_ssse3 wrt ..imagebase - DD $L$SEH_info_ChaCha20_ssse3 wrt ..imagebase - - DD $L$SEH_begin_ChaCha20_4x wrt ..imagebase - DD $L$SEH_end_ChaCha20_4x wrt ..imagebase - DD $L$SEH_info_ChaCha20_4x wrt ..imagebase - DD $L$SEH_begin_ChaCha20_8x wrt ..imagebase - DD $L$SEH_end_ChaCha20_8x wrt ..imagebase - DD $L$SEH_info_ChaCha20_8x wrt ..imagebase + DD $L$SEH_begin_ChaCha20_ctr32_nohw wrt ..imagebase + DD $L$SEH_end_ChaCha20_ctr32_nohw wrt ..imagebase + DD $L$SEH_info_ChaCha20_ctr32_nohw wrt ..imagebase + + DD $L$SEH_begin_ChaCha20_ctr32_ssse3 wrt ..imagebase + DD $L$SEH_end_ChaCha20_ctr32_ssse3 wrt ..imagebase + DD $L$SEH_info_ChaCha20_ctr32_ssse3 wrt ..imagebase + + DD $L$SEH_begin_ChaCha20_ctr32_ssse3_4x wrt ..imagebase + DD $L$SEH_end_ChaCha20_ctr32_ssse3_4x wrt ..imagebase + DD $L$SEH_info_ChaCha20_ctr32_ssse3_4x wrt ..imagebase + DD $L$SEH_begin_ChaCha20_ctr32_avx2 wrt ..imagebase + DD $L$SEH_end_ChaCha20_ctr32_avx2 wrt ..imagebase + DD $L$SEH_info_ChaCha20_ctr32_avx2 wrt ..imagebase section .xdata rdata align=8 ALIGN 8 -$L$SEH_info_ChaCha20_ctr32: +$L$SEH_info_ChaCha20_ctr32_nohw: DB 9,0,0,0 DD se_handler wrt ..imagebase -$L$SEH_info_ChaCha20_ssse3: +$L$SEH_info_ChaCha20_ctr32_ssse3: DB 9,0,0,0 DD ssse3_handler wrt ..imagebase DD $L$ssse3_body wrt ..imagebase,$L$ssse3_epilogue wrt ..imagebase -$L$SEH_info_ChaCha20_4x: +$L$SEH_info_ChaCha20_ctr32_ssse3_4x: DB 9,0,0,0 DD full_handler wrt ..imagebase DD $L$4x_body wrt ..imagebase,$L$4x_epilogue wrt ..imagebase -$L$SEH_info_ChaCha20_8x: +$L$SEH_info_ChaCha20_ctr32_avx2: DB 9,0,0,0 DD full_handler wrt ..imagebase DD $L$8x_body wrt ..imagebase,$L$8x_epilogue wrt ..imagebase diff --git a/generated-src/win-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.asm b/generated-src/win-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.asm index 84e4da4ade..d3587a3fa1 100644 --- a/generated-src/win-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.asm +++ b/generated-src/win-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .rdata rdata align=8 @@ -83,6 +84,7 @@ $L$SEH_begin_aesgcmsiv_htable_init: +_CET_ENDBR vmovdqa xmm0,XMMWORD[rsi] vmovdqa xmm1,xmm0 vmovdqa XMMWORD[rdi],xmm0 @@ -118,6 +120,7 @@ $L$SEH_begin_aesgcmsiv_htable6_init: +_CET_ENDBR vmovdqa xmm0,XMMWORD[rsi] vmovdqa xmm1,xmm0 vmovdqa XMMWORD[rdi],xmm0 @@ -151,6 +154,7 @@ $L$SEH_begin_aesgcmsiv_htable_polyval: +_CET_ENDBR test rdx,rdx jnz NEAR $L$htable_polyval_start mov rdi,QWORD[8+rsp] ;WIN64 epilogue @@ -381,6 +385,7 @@ $L$SEH_begin_aesgcmsiv_polyval_horner: +_CET_ENDBR test rcx,rcx jnz NEAR $L$polyval_horner_start mov rdi,QWORD[8+rsp] ;WIN64 epilogue @@ -425,6 +430,7 @@ $L$SEH_begin_aes128gcmsiv_aes_ks: +_CET_ENDBR vmovdqu xmm1,XMMWORD[rdi] vmovdqa XMMWORD[rsi],xmm1 @@ -490,6 +496,7 @@ $L$SEH_begin_aes256gcmsiv_aes_ks: +_CET_ENDBR vmovdqu xmm1,XMMWORD[rdi] vmovdqu xmm3,XMMWORD[16+rdi] vmovdqa XMMWORD[rsi],xmm1 @@ -548,6 +555,7 @@ $L$SEH_begin_aes128gcmsiv_aes_ks_enc_x1: +_CET_ENDBR vmovdqa xmm1,XMMWORD[rcx] vmovdqa xmm4,XMMWORD[rdi] @@ -700,6 +708,7 @@ $L$SEH_begin_aes128gcmsiv_kdf: +_CET_ENDBR @@ -805,6 +814,7 @@ $L$SEH_begin_aes128gcmsiv_enc_msg_x4: +_CET_ENDBR test r8,r8 jnz NEAR $L$128_enc_msg_x4_start mov rdi,QWORD[8+rsp] ;WIN64 epilogue @@ -994,6 +1004,7 @@ $L$SEH_begin_aes128gcmsiv_enc_msg_x8: +_CET_ENDBR test r8,r8 jnz NEAR $L$128_enc_msg_x8_start mov rdi,QWORD[8+rsp] ;WIN64 epilogue @@ -1264,6 +1275,7 @@ $L$SEH_begin_aes128gcmsiv_dec: +_CET_ENDBR test r9,~15 jnz NEAR $L$128_dec_start mov rdi,QWORD[8+rsp] ;WIN64 epilogue @@ -1273,14 +1285,15 @@ $L$SEH_begin_aes128gcmsiv_dec: $L$128_dec_start: vzeroupper vmovdqa xmm0,XMMWORD[rdx] + + + vmovdqu xmm15,XMMWORD[16+rdx] + vpor xmm15,xmm15,XMMWORD[OR_MASK] mov rax,rdx lea rax,[32+rax] lea rcx,[32+rcx] - - vmovdqu xmm15,XMMWORD[r9*1+rdi] - vpor xmm15,xmm15,XMMWORD[OR_MASK] and r9,~15 @@ -1768,6 +1781,7 @@ $L$SEH_begin_aes128gcmsiv_ecb_enc_block: +_CET_ENDBR vmovdqa xmm1,XMMWORD[rdi] vpxor xmm1,xmm1,XMMWORD[rdx] @@ -1804,6 +1818,7 @@ $L$SEH_begin_aes256gcmsiv_aes_ks_enc_x1: +_CET_ENDBR vmovdqa xmm0,XMMWORD[con1] vmovdqa xmm15,XMMWORD[mask] vmovdqa xmm8,XMMWORD[rdi] @@ -1997,6 +2012,7 @@ $L$SEH_begin_aes256gcmsiv_ecb_enc_block: +_CET_ENDBR vmovdqa xmm1,XMMWORD[rdi] vpxor xmm1,xmm1,XMMWORD[rdx] vaesenc xmm1,xmm1,XMMWORD[16+rdx] @@ -2035,6 +2051,7 @@ $L$SEH_begin_aes256gcmsiv_enc_msg_x4: +_CET_ENDBR test r8,r8 jnz NEAR $L$256_enc_msg_x4_start mov rdi,QWORD[8+rsp] ;WIN64 epilogue @@ -2250,6 +2267,7 @@ $L$SEH_begin_aes256gcmsiv_enc_msg_x8: +_CET_ENDBR test r8,r8 jnz NEAR $L$256_enc_msg_x8_start mov rdi,QWORD[8+rsp] ;WIN64 epilogue @@ -2554,6 +2572,7 @@ $L$SEH_begin_aes256gcmsiv_dec: +_CET_ENDBR test r9,~15 jnz NEAR $L$256_dec_start mov rdi,QWORD[8+rsp] ;WIN64 epilogue @@ -2563,14 +2582,15 @@ $L$SEH_begin_aes256gcmsiv_dec: $L$256_dec_start: vzeroupper vmovdqa xmm0,XMMWORD[rdx] + + + vmovdqu xmm15,XMMWORD[16+rdx] + vpor xmm15,xmm15,XMMWORD[OR_MASK] mov rax,rdx lea rax,[32+rax] lea rcx,[32+rcx] - - vmovdqu xmm15,XMMWORD[r9*1+rdi] - vpor xmm15,xmm15,XMMWORD[OR_MASK] and r9,~15 @@ -3126,6 +3146,7 @@ $L$SEH_begin_aes256gcmsiv_kdf: +_CET_ENDBR diff --git a/generated-src/win-x86_64/crypto/cipher_extra/aesni-sha1-x86_64.asm b/generated-src/win-x86_64/crypto/cipher_extra/aesni-sha1-x86_64.asm index 2c21ec6a8f..78d99b73a8 100644 --- a/generated-src/win-x86_64/crypto/cipher_extra/aesni-sha1-x86_64.asm +++ b/generated-src/win-x86_64/crypto/cipher_extra/aesni-sha1-x86_64.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 diff --git a/generated-src/win-x86_64/crypto/cipher_extra/aesni-sha256-x86_64.asm b/generated-src/win-x86_64/crypto/cipher_extra/aesni-sha256-x86_64.asm index 3fad314f59..bf9a5f1979 100644 --- a/generated-src/win-x86_64/crypto/cipher_extra/aesni-sha256-x86_64.asm +++ b/generated-src/win-x86_64/crypto/cipher_extra/aesni-sha256-x86_64.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 diff --git a/generated-src/win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.asm b/generated-src/win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.asm index 143b51cab4..f57ef71c86 100644 --- a/generated-src/win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.asm +++ b/generated-src/win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 @@ -239,6 +240,7 @@ $L$SEH_begin_chacha20_poly1305_open: +_CET_ENDBR push rbp push rbx @@ -2145,6 +2147,7 @@ $L$SEH_begin_chacha20_poly1305_seal: +_CET_ENDBR push rbp push rbx diff --git a/generated-src/win-x86_64/crypto/fipsmodule/aesni-gcm-avx512.asm b/generated-src/win-x86_64/crypto/fipsmodule/aesni-gcm-avx512.asm index 919cc43a1d..ce818c2757 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/aesni-gcm-avx512.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/aesni-gcm-avx512.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 diff --git a/generated-src/win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.asm b/generated-src/win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.asm index 203222b090..799110c8c8 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 @@ -350,6 +351,7 @@ ALIGN 32 aesni_gcm_decrypt: $L$SEH_begin_aesni_gcm_decrypt_1: +_CET_ENDBR xor rax,rax @@ -610,6 +612,7 @@ ALIGN 32 aesni_gcm_encrypt: $L$SEH_begin_aesni_gcm_encrypt_1: +_CET_ENDBR %ifdef BORINGSSL_DISPATCH_TEST EXTERN BORINGSSL_function_hit mov BYTE[((BORINGSSL_function_hit+2))],1 diff --git a/generated-src/win-x86_64/crypto/fipsmodule/aesni-x86_64.asm b/generated-src/win-x86_64/crypto/fipsmodule/aesni-x86_64.asm index 6a89d77ea6..bd2c081d80 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/aesni-x86_64.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/aesni-x86_64.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 @@ -16,6 +17,7 @@ global aes_hw_encrypt ALIGN 16 aes_hw_encrypt: +_CET_ENDBR %ifdef BORINGSSL_DISPATCH_TEST EXTERN BORINGSSL_function_hit mov BYTE[((BORINGSSL_function_hit+1))],1 @@ -46,6 +48,7 @@ global aes_hw_decrypt ALIGN 16 aes_hw_decrypt: +_CET_ENDBR movups xmm2,XMMWORD[rcx] mov eax,DWORD[240+r8] movups xmm0,XMMWORD[r8] @@ -544,6 +547,7 @@ $L$SEH_begin_aes_hw_ecb_encrypt: +_CET_ENDBR lea rsp,[((-88))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 @@ -917,6 +921,7 @@ $L$SEH_begin_aes_hw_ctr32_encrypt_blocks: +_CET_ENDBR %ifdef BORINGSSL_DISPATCH_TEST mov BYTE[BORINGSSL_function_hit],1 %endif @@ -1536,6 +1541,7 @@ $L$SEH_begin_aes_hw_xts_encrypt: +_CET_ENDBR lea r11,[rsp] push rbp @@ -2041,6 +2047,7 @@ $L$SEH_begin_aes_hw_xts_decrypt: +_CET_ENDBR lea r11,[rsp] push rbp @@ -2583,6 +2590,7 @@ $L$SEH_begin_aes_hw_cbc_encrypt: +_CET_ENDBR test rdx,rdx jz NEAR $L$cbc_ret @@ -3204,6 +3212,7 @@ global aes_hw_set_decrypt_key ALIGN 16 aes_hw_set_decrypt_key: +_CET_ENDBR DB 0x48,0x83,0xEC,0x08 call __aesni_set_encrypt_key @@ -3249,6 +3258,7 @@ ALIGN 16 aes_hw_set_encrypt_key: __aesni_set_encrypt_key: +_CET_ENDBR %ifdef BORINGSSL_DISPATCH_TEST mov BYTE[((BORINGSSL_function_hit+3))],1 %endif diff --git a/generated-src/win-x86_64/crypto/fipsmodule/aesni-xts-avx512.asm b/generated-src/win-x86_64/crypto/fipsmodule/aesni-xts-avx512.asm index ef1f5ada30..039f0c7ac2 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/aesni-xts-avx512.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/aesni-xts-avx512.asm @@ -6,8 +6,10 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX section .text code align=64 global aes_hw_xts_encrypt_avx512 @@ -5311,6 +5313,7 @@ shufb_15_7: section .text +%endif %else ; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738 ret diff --git a/generated-src/win-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.asm b/generated-src/win-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.asm index 23b0dd74dc..8a89f49966 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 @@ -21,6 +22,7 @@ ALIGN 16 gcm_gmult_ssse3: $L$SEH_begin_gcm_gmult_ssse3_1: +_CET_ENDBR sub rsp,40 $L$SEH_prolog_gcm_gmult_ssse3_2: movdqa XMMWORD[rsp],xmm6 @@ -219,6 +221,7 @@ ALIGN 16 gcm_ghash_ssse3: $L$SEH_begin_gcm_ghash_ssse3_1: +_CET_ENDBR sub rsp,56 $L$SEH_prolog_gcm_ghash_ssse3_2: movdqa XMMWORD[rsp],xmm6 diff --git a/generated-src/win-x86_64/crypto/fipsmodule/ghash-x86_64.asm b/generated-src/win-x86_64/crypto/fipsmodule/ghash-x86_64.asm index 5ccc45b9bd..649f8a22b5 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/ghash-x86_64.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/ghash-x86_64.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 @@ -17,6 +18,7 @@ ALIGN 16 gcm_init_clmul: $L$SEH_begin_gcm_init_clmul_1: +_CET_ENDBR $L$_init_clmul: sub rsp,0x18 $L$SEH_prolog_gcm_init_clmul_2: @@ -182,6 +184,7 @@ global gcm_gmult_clmul ALIGN 16 gcm_gmult_clmul: +_CET_ENDBR $L$_gmult_clmul: movdqu xmm0,XMMWORD[rcx] movdqa xmm5,XMMWORD[$L$bswap_mask] @@ -236,6 +239,7 @@ ALIGN 32 gcm_ghash_clmul: $L$SEH_begin_gcm_ghash_clmul_1: +_CET_ENDBR $L$_ghash_clmul: lea rax,[((-136))+rsp] lea rsp,[((-32))+rax] @@ -657,6 +661,7 @@ global gcm_init_avx ALIGN 32 gcm_init_avx: +_CET_ENDBR $L$SEH_begin_gcm_init_avx_1: sub rsp,0x18 $L$SEH_prolog_gcm_init_avx_2: @@ -774,6 +779,7 @@ global gcm_gmult_avx ALIGN 32 gcm_gmult_avx: +_CET_ENDBR jmp NEAR $L$_gmult_clmul @@ -782,6 +788,7 @@ global gcm_ghash_avx ALIGN 32 gcm_ghash_avx: +_CET_ENDBR $L$SEH_begin_gcm_ghash_avx_1: lea rax,[((-136))+rsp] lea rsp,[((-32))+rax] diff --git a/generated-src/win-x86_64/crypto/fipsmodule/md5-x86_64.asm b/generated-src/win-x86_64/crypto/fipsmodule/md5-x86_64.asm index af196d71ba..492d6884e0 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/md5-x86_64.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/md5-x86_64.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 @@ -25,6 +26,7 @@ $L$SEH_begin_md5_block_asm_data_order: +_CET_ENDBR push rbp push rbx diff --git a/generated-src/win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm b/generated-src/win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm index f154ea6722..a500e1bf8c 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 @@ -50,6 +51,7 @@ $L$SEH_begin_ecp_nistz256_neg: +_CET_ENDBR push r12 push r13 @@ -120,11 +122,14 @@ $L$SEH_begin_ecp_nistz256_ord_mul_mont: +_CET_ENDBR +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX lea rcx,[OPENSSL_ia32cap_P] mov rcx,QWORD[8+rcx] and ecx,0x80100 cmp ecx,0x80100 je NEAR $L$ecp_nistz256_ord_mul_montx +%endif push rbp push rbx @@ -458,11 +463,14 @@ $L$SEH_begin_ecp_nistz256_ord_sqr_mont: +_CET_ENDBR +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX lea rcx,[OPENSSL_ia32cap_P] mov rcx,QWORD[8+rcx] and ecx,0x80100 cmp ecx,0x80100 je NEAR $L$ecp_nistz256_ord_sqr_montx +%endif push rbp push rbx @@ -745,6 +753,7 @@ $L$ord_sqr_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_ecp_nistz256_ord_sqr_mont: +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX ALIGN 32 @@ -1211,6 +1220,7 @@ $L$ord_sqrx_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_ecp_nistz256_ord_sqr_montx: +%endif @@ -1231,9 +1241,12 @@ $L$SEH_begin_ecp_nistz256_mul_mont: +_CET_ENDBR +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX lea rcx,[OPENSSL_ia32cap_P] mov rcx,QWORD[8+rcx] and ecx,0x80100 +%endif $L$mul_mont: push rbp @@ -1248,8 +1261,10 @@ $L$mul_mont: push r15 $L$mul_body: +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX cmp ecx,0x80100 je NEAR $L$mul_montx +%endif mov rbx,rdx mov rax,QWORD[rdx] mov r9,QWORD[rsi] @@ -1258,6 +1273,7 @@ $L$mul_body: mov r12,QWORD[24+rsi] call __ecp_nistz256_mul_montq +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX jmp NEAR $L$mul_mont_done ALIGN 32 @@ -1271,6 +1287,7 @@ $L$mul_montx: lea rsi,[((-128))+rsi] call __ecp_nistz256_mul_montx +%endif $L$mul_mont_done: mov r15,QWORD[rsp] @@ -1531,9 +1548,12 @@ $L$SEH_begin_ecp_nistz256_sqr_mont: +_CET_ENDBR +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX lea rcx,[OPENSSL_ia32cap_P] mov rcx,QWORD[8+rcx] and ecx,0x80100 +%endif push rbp push rbx @@ -1547,14 +1567,17 @@ $L$SEH_begin_ecp_nistz256_sqr_mont: push r15 $L$sqr_body: +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX cmp ecx,0x80100 je NEAR $L$sqr_montx +%endif mov rax,QWORD[rsi] mov r14,QWORD[8+rsi] mov r15,QWORD[16+rsi] mov r8,QWORD[24+rsi] call __ecp_nistz256_sqr_montq +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX jmp NEAR $L$sqr_mont_done ALIGN 32 @@ -1566,6 +1589,7 @@ $L$sqr_montx: lea rsi,[((-128))+rsi] call __ecp_nistz256_sqr_montx +%endif $L$sqr_mont_done: mov r15,QWORD[rsp] @@ -1751,6 +1775,7 @@ __ecp_nistz256_sqr_montq: DB 0F3h,0C3h ;repret +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX ALIGN 32 __ecp_nistz256_mul_montx: @@ -2049,6 +2074,7 @@ __ecp_nistz256_sqr_montx: DB 0F3h,0C3h ;repret +%endif global ecp_nistz256_select_w5 @@ -2056,10 +2082,13 @@ global ecp_nistz256_select_w5 ALIGN 32 ecp_nistz256_select_w5: +_CET_ENDBR +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX lea rax,[OPENSSL_ia32cap_P] mov rax,QWORD[8+rax] test eax,32 jnz NEAR $L$avx2_select_w5 +%endif lea rax,[((-136))+rsp] $L$SEH_begin_ecp_nistz256_select_w5: DB 0x48,0x8d,0x60,0xe0 @@ -2146,10 +2175,13 @@ global ecp_nistz256_select_w7 ALIGN 32 ecp_nistz256_select_w7: +_CET_ENDBR +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX lea rax,[OPENSSL_ia32cap_P] mov rax,QWORD[8+rax] test eax,32 jnz NEAR $L$avx2_select_w7 +%endif lea rax,[((-136))+rsp] $L$SEH_begin_ecp_nistz256_select_w7: DB 0x48,0x8d,0x60,0xe0 @@ -2217,6 +2249,7 @@ $L$select_loop_sse_w7: $L$SEH_end_ecp_nistz256_select_w7: +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX @@ -2305,7 +2338,8 @@ $L$select_loop_avx2_w5: $L$SEH_end_ecp_nistz256_avx2_select_w5: - +%endif +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX global ecp_nistz256_avx2_select_w7 @@ -2314,6 +2348,7 @@ ALIGN 32 ecp_nistz256_avx2_select_w7: $L$avx2_select_w7: +_CET_ENDBR vzeroupper mov r11,rsp lea rax,[((-136))+rsp] @@ -2410,6 +2445,7 @@ $L$select_loop_avx2_w7: $L$SEH_end_ecp_nistz256_avx2_select_w7: +%endif ALIGN 32 __ecp_nistz256_add_toq: @@ -2552,11 +2588,14 @@ $L$SEH_begin_ecp_nistz256_point_double: +_CET_ENDBR +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX lea rcx,[OPENSSL_ia32cap_P] mov rcx,QWORD[8+rcx] and ecx,0x80100 cmp ecx,0x80100 je NEAR $L$point_doublex +%endif push rbp push rbx @@ -2790,11 +2829,14 @@ $L$SEH_begin_ecp_nistz256_point_add: +_CET_ENDBR +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX lea rcx,[OPENSSL_ia32cap_P] mov rcx,QWORD[8+rcx] and ecx,0x80100 cmp ecx,0x80100 je NEAR $L$point_addx +%endif push rbp push rbx @@ -3231,11 +3273,14 @@ $L$SEH_begin_ecp_nistz256_point_add_affine: +_CET_ENDBR +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX lea rcx,[OPENSSL_ia32cap_P] mov rcx,QWORD[8+rcx] and ecx,0x80100 cmp ecx,0x80100 je NEAR $L$point_add_affinex +%endif push rbp push rbx @@ -3555,6 +3600,7 @@ $L$add_affineq_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_ecp_nistz256_point_add_affine: +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX ALIGN 32 __ecp_nistz256_add_tox: @@ -4691,6 +4737,7 @@ $L$add_affinex_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_ecp_nistz256_point_add_affinex: +%endif EXTERN __imp_RtlVirtualUnwind @@ -4836,6 +4883,7 @@ ALIGN 4 DD $L$SEH_begin_ecp_nistz256_ord_sqr_mont wrt ..imagebase DD $L$SEH_end_ecp_nistz256_ord_sqr_mont wrt ..imagebase DD $L$SEH_info_ecp_nistz256_ord_sqr_mont wrt ..imagebase +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX DD $L$SEH_begin_ecp_nistz256_ord_mul_montx wrt ..imagebase DD $L$SEH_end_ecp_nistz256_ord_mul_montx wrt ..imagebase DD $L$SEH_info_ecp_nistz256_ord_mul_montx wrt ..imagebase @@ -4843,6 +4891,7 @@ ALIGN 4 DD $L$SEH_begin_ecp_nistz256_ord_sqr_montx wrt ..imagebase DD $L$SEH_end_ecp_nistz256_ord_sqr_montx wrt ..imagebase DD $L$SEH_info_ecp_nistz256_ord_sqr_montx wrt ..imagebase +%endif DD $L$SEH_begin_ecp_nistz256_mul_mont wrt ..imagebase DD $L$SEH_end_ecp_nistz256_mul_mont wrt ..imagebase DD $L$SEH_info_ecp_nistz256_mul_mont wrt ..imagebase @@ -4858,6 +4907,7 @@ ALIGN 4 DD $L$SEH_begin_ecp_nistz256_select_w7 wrt ..imagebase DD $L$SEH_end_ecp_nistz256_select_w7 wrt ..imagebase DD $L$SEH_info_ecp_nistz256_select_wX wrt ..imagebase +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX DD $L$SEH_begin_ecp_nistz256_avx2_select_w5 wrt ..imagebase DD $L$SEH_end_ecp_nistz256_avx2_select_w5 wrt ..imagebase DD $L$SEH_info_ecp_nistz256_avx2_select_wX wrt ..imagebase @@ -4865,6 +4915,7 @@ ALIGN 4 DD $L$SEH_begin_ecp_nistz256_avx2_select_w7 wrt ..imagebase DD $L$SEH_end_ecp_nistz256_avx2_select_w7 wrt ..imagebase DD $L$SEH_info_ecp_nistz256_avx2_select_wX wrt ..imagebase +%endif DD $L$SEH_begin_ecp_nistz256_point_double wrt ..imagebase DD $L$SEH_end_ecp_nistz256_point_double wrt ..imagebase DD $L$SEH_info_ecp_nistz256_point_double wrt ..imagebase @@ -4876,6 +4927,7 @@ ALIGN 4 DD $L$SEH_begin_ecp_nistz256_point_add_affine wrt ..imagebase DD $L$SEH_end_ecp_nistz256_point_add_affine wrt ..imagebase DD $L$SEH_info_ecp_nistz256_point_add_affine wrt ..imagebase +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX DD $L$SEH_begin_ecp_nistz256_point_doublex wrt ..imagebase DD $L$SEH_end_ecp_nistz256_point_doublex wrt ..imagebase DD $L$SEH_info_ecp_nistz256_point_doublex wrt ..imagebase @@ -4887,6 +4939,7 @@ ALIGN 4 DD $L$SEH_begin_ecp_nistz256_point_add_affinex wrt ..imagebase DD $L$SEH_end_ecp_nistz256_point_add_affinex wrt ..imagebase DD $L$SEH_info_ecp_nistz256_point_add_affinex wrt ..imagebase +%endif section .xdata rdata align=8 ALIGN 8 @@ -4904,6 +4957,7 @@ $L$SEH_info_ecp_nistz256_ord_sqr_mont: DD full_handler wrt ..imagebase DD $L$ord_sqr_body wrt ..imagebase,$L$ord_sqr_epilogue wrt ..imagebase DD 48,0 +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX $L$SEH_info_ecp_nistz256_ord_mul_montx: DB 9,0,0,0 DD full_handler wrt ..imagebase @@ -4914,6 +4968,7 @@ $L$SEH_info_ecp_nistz256_ord_sqr_montx: DD full_handler wrt ..imagebase DD $L$ord_sqrx_body wrt ..imagebase,$L$ord_sqrx_epilogue wrt ..imagebase DD 48,0 +%endif $L$SEH_info_ecp_nistz256_mul_mont: DB 9,0,0,0 DD full_handler wrt ..imagebase @@ -4938,6 +4993,7 @@ $L$SEH_info_ecp_nistz256_select_wX: DB 0x08,0x68,0x00,0x00 DB 0x04,0x01,0x15,0x00 ALIGN 8 +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX $L$SEH_info_ecp_nistz256_avx2_select_wX: DB 0x01,0x36,0x17,0x0b DB 0x36,0xf8,0x09,0x00 @@ -4953,6 +5009,7 @@ $L$SEH_info_ecp_nistz256_avx2_select_wX: DB 0x04,0x01,0x15,0x00 DB 0x00,0xb3,0x00,0x00 ALIGN 8 +%endif $L$SEH_info_ecp_nistz256_point_double: DB 9,0,0,0 DD full_handler wrt ..imagebase @@ -4968,6 +5025,7 @@ $L$SEH_info_ecp_nistz256_point_add_affine: DD full_handler wrt ..imagebase DD $L$add_affineq_body wrt ..imagebase,$L$add_affineq_epilogue wrt ..imagebase DD 32*15+56,0 +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX ALIGN 8 $L$SEH_info_ecp_nistz256_point_doublex: DB 9,0,0,0 @@ -4984,6 +5042,7 @@ $L$SEH_info_ecp_nistz256_point_add_affinex: DD full_handler wrt ..imagebase DD $L$add_affinex_body wrt ..imagebase,$L$add_affinex_epilogue wrt ..imagebase DD 32*15+56,0 +%endif %else ; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738 ret diff --git a/generated-src/win-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.asm b/generated-src/win-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.asm index 1ad3dcb9e1..97b33aa24c 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 @@ -29,6 +30,7 @@ $L$SEH_begin_beeu_mod_inverse_vartime: +_CET_ENDBR push rbp push r12 diff --git a/generated-src/win-x86_64/crypto/fipsmodule/rdrand-x86_64.asm b/generated-src/win-x86_64/crypto/fipsmodule/rdrand-x86_64.asm index f134b4b552..af2cf7f154 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/rdrand-x86_64.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/rdrand-x86_64.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 @@ -19,6 +20,7 @@ global CRYPTO_rdrand ALIGN 16 CRYPTO_rdrand: +_CET_ENDBR xor rax,rax DB 73,15,199,240 test r8,r8 @@ -44,6 +46,7 @@ global CRYPTO_rdrand_multiple8_buf ALIGN 16 CRYPTO_rdrand_multiple8_buf: +_CET_ENDBR test rdx,rdx jz NEAR $L$out mov r8,8 diff --git a/generated-src/win-x86_64/crypto/fipsmodule/rsaz-avx2.asm b/generated-src/win-x86_64/crypto/fipsmodule/rsaz-avx2.asm index 345b313a2f..1edc96c5f2 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/rsaz-avx2.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/rsaz-avx2.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 @@ -27,6 +28,7 @@ $L$SEH_begin_rsaz_1024_sqr_avx2: +_CET_ENDBR lea rax,[rsp] push rbx @@ -716,6 +718,7 @@ $L$SEH_begin_rsaz_1024_mul_avx2: +_CET_ENDBR lea rax,[rsp] push rbx @@ -1297,6 +1300,7 @@ global rsaz_1024_red2norm_avx2 ALIGN 32 rsaz_1024_red2norm_avx2: +_CET_ENDBR sub rdx,-128 xor rax,rax mov r8,QWORD[((-128))+rdx] @@ -1496,6 +1500,7 @@ global rsaz_1024_norm2red_avx2 ALIGN 32 rsaz_1024_norm2red_avx2: +_CET_ENDBR sub rcx,-128 mov r8,QWORD[rdx] mov eax,0x1fffffff @@ -1655,6 +1660,7 @@ global rsaz_1024_scatter5_avx2 ALIGN 32 rsaz_1024_scatter5_avx2: +_CET_ENDBR vzeroupper vmovdqu ymm5,YMMWORD[$L$scatter_permd] shl r8d,4 @@ -1682,6 +1688,7 @@ global rsaz_1024_gather5_avx2 ALIGN 32 rsaz_1024_gather5_avx2: +_CET_ENDBR vzeroupper mov r11,rsp diff --git a/generated-src/win-x86_64/crypto/fipsmodule/sha1-x86_64.asm b/generated-src/win-x86_64/crypto/fipsmodule/sha1-x86_64.asm index 57aedbda87..987fe122d6 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/sha1-x86_64.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/sha1-x86_64.asm @@ -6,46 +6,27 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 -EXTERN OPENSSL_ia32cap_P -global sha1_block_data_order +global sha1_block_data_order_nohw ALIGN 16 -sha1_block_data_order: +sha1_block_data_order_nohw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_sha1_block_data_order: +$L$SEH_begin_sha1_block_data_order_nohw: mov rdi,rcx mov rsi,rdx mov rdx,r8 - lea r10,[OPENSSL_ia32cap_P] - mov r9d,DWORD[r10] - mov r8d,DWORD[4+r10] - mov r10d,DWORD[8+r10] - test r8d,512 - jz NEAR $L$ialu - test r10d,536870912 - jnz NEAR _shaext_shortcut - and r10d,296 - cmp r10d,296 - je NEAR _avx2_shortcut - and r8d,268435456 - and r9d,1073741824 - or r8d,r9d - cmp r8d,1342177280 - je NEAR _avx_shortcut - jmp NEAR _ssse3_shortcut - -ALIGN 16 -$L$ialu: +_CET_ENDBR mov rax,rsp push rbx @@ -1277,21 +1258,22 @@ $L$epilogue: mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret -$L$SEH_end_sha1_block_data_order: +$L$SEH_end_sha1_block_data_order_nohw: +global sha1_block_data_order_hw ALIGN 32 -sha1_block_data_order_shaext: +sha1_block_data_order_hw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_sha1_block_data_order_shaext: +$L$SEH_begin_sha1_block_data_order_hw: mov rdi,rcx mov rsi,rdx mov rdx,r8 -_shaext_shortcut: +_CET_ENDBR lea rsp,[((-72))+rsp] movaps XMMWORD[(-8-64)+rax],xmm6 movaps XMMWORD[(-8-48)+rax],xmm7 @@ -1470,7 +1452,8 @@ $L$epilogue_shaext: mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret -$L$SEH_end_sha1_block_data_order_shaext: +$L$SEH_end_sha1_block_data_order_hw: +global sha1_block_data_order_ssse3 ALIGN 16 sha1_block_data_order_ssse3: @@ -1483,8 +1466,8 @@ $L$SEH_begin_sha1_block_data_order_ssse3: mov rdx,r8 -_ssse3_shortcut: +_CET_ENDBR mov r11,rsp push rbx @@ -2683,6 +2666,7 @@ $L$epilogue_ssse3: DB 0F3h,0C3h ;repret $L$SEH_end_sha1_block_data_order_ssse3: +global sha1_block_data_order_avx ALIGN 16 sha1_block_data_order_avx: @@ -2695,8 +2679,8 @@ $L$SEH_begin_sha1_block_data_order_avx: mov rdx,r8 -_avx_shortcut: +_CET_ENDBR mov r11,rsp push rbx @@ -3835,6 +3819,7 @@ $L$epilogue_avx: DB 0F3h,0C3h ;repret $L$SEH_end_sha1_block_data_order_avx: +global sha1_block_data_order_avx2 ALIGN 16 sha1_block_data_order_avx2: @@ -3847,8 +3832,8 @@ $L$SEH_begin_sha1_block_data_order_avx2: mov rdx,r8 -_avx2_shortcut: +_CET_ENDBR mov r11,rsp push rbx @@ -5740,12 +5725,12 @@ $L$common_seh_tail: section .pdata rdata align=4 ALIGN 4 - DD $L$SEH_begin_sha1_block_data_order wrt ..imagebase - DD $L$SEH_end_sha1_block_data_order wrt ..imagebase - DD $L$SEH_info_sha1_block_data_order wrt ..imagebase - DD $L$SEH_begin_sha1_block_data_order_shaext wrt ..imagebase - DD $L$SEH_end_sha1_block_data_order_shaext wrt ..imagebase - DD $L$SEH_info_sha1_block_data_order_shaext wrt ..imagebase + DD $L$SEH_begin_sha1_block_data_order_nohw wrt ..imagebase + DD $L$SEH_end_sha1_block_data_order_nohw wrt ..imagebase + DD $L$SEH_info_sha1_block_data_order_nohw wrt ..imagebase + DD $L$SEH_begin_sha1_block_data_order_hw wrt ..imagebase + DD $L$SEH_end_sha1_block_data_order_hw wrt ..imagebase + DD $L$SEH_info_sha1_block_data_order_hw wrt ..imagebase DD $L$SEH_begin_sha1_block_data_order_ssse3 wrt ..imagebase DD $L$SEH_end_sha1_block_data_order_ssse3 wrt ..imagebase DD $L$SEH_info_sha1_block_data_order_ssse3 wrt ..imagebase @@ -5757,10 +5742,10 @@ ALIGN 4 DD $L$SEH_info_sha1_block_data_order_avx2 wrt ..imagebase section .xdata rdata align=8 ALIGN 8 -$L$SEH_info_sha1_block_data_order: +$L$SEH_info_sha1_block_data_order_nohw: DB 9,0,0,0 DD se_handler wrt ..imagebase -$L$SEH_info_sha1_block_data_order_shaext: +$L$SEH_info_sha1_block_data_order_hw: DB 9,0,0,0 DD shaext_handler wrt ..imagebase $L$SEH_info_sha1_block_data_order_ssse3: diff --git a/generated-src/win-x86_64/crypto/fipsmodule/sha256-x86_64.asm b/generated-src/win-x86_64/crypto/fipsmodule/sha256-x86_64.asm index 387e9f20f5..d43cd0094f 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/sha256-x86_64.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/sha256-x86_64.asm @@ -6,39 +6,27 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 -EXTERN OPENSSL_ia32cap_P -global sha256_block_data_order +global sha256_block_data_order_nohw ALIGN 16 -sha256_block_data_order: +sha256_block_data_order_nohw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_sha256_block_data_order: +$L$SEH_begin_sha256_block_data_order_nohw: mov rdi,rcx mov rsi,rdx mov rdx,r8 - lea r11,[OPENSSL_ia32cap_P] - mov r9d,DWORD[r11] - mov r10d,DWORD[4+r11] - mov r11d,DWORD[8+r11] - test r11d,536870912 - jnz NEAR $L$shaext_shortcut - and r9d,1073741824 - and r10d,268435968 - or r10d,r9d - cmp r10d,1342177792 - je NEAR $L$avx_shortcut - test r10d,512 - jnz NEAR $L$ssse3_shortcut +_CET_ENDBR mov rax,rsp push rbx @@ -1746,7 +1734,7 @@ $L$epilogue: mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret -$L$SEH_end_sha256_block_data_order: +$L$SEH_end_sha256_block_data_order_nohw: section .rdata rdata align=8 ALIGN 64 @@ -1797,24 +1785,25 @@ K256: DB 111,114,103,62,0 section .text +global sha256_block_data_order_hw ALIGN 64 -sha256_block_data_order_shaext: +sha256_block_data_order_hw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_sha256_block_data_order_shaext: +$L$SEH_begin_sha256_block_data_order_hw: mov rdi,rcx mov rsi,rdx mov rdx,r8 -$L$shaext_shortcut: %ifdef BORINGSSL_DISPATCH_TEST EXTERN BORINGSSL_function_hit mov BYTE[((BORINGSSL_function_hit+6))],1 %endif +_CET_ENDBR lea rsp,[((-88))+rsp] movaps XMMWORD[(-8-80)+rax],xmm6 movaps XMMWORD[(-8-64)+rax],xmm7 @@ -2034,7 +2023,8 @@ $L$epilogue_shaext: mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret -$L$SEH_end_sha256_block_data_order_shaext: +$L$SEH_end_sha256_block_data_order_hw: +global sha256_block_data_order_ssse3 ALIGN 64 sha256_block_data_order_ssse3: @@ -2048,7 +2038,7 @@ $L$SEH_begin_sha256_block_data_order_ssse3: -$L$ssse3_shortcut: +_CET_ENDBR mov rax,rsp push rbx @@ -3167,6 +3157,7 @@ $L$epilogue_ssse3: DB 0F3h,0C3h ;repret $L$SEH_end_sha256_block_data_order_ssse3: +global sha256_block_data_order_avx ALIGN 64 sha256_block_data_order_avx: @@ -3180,7 +3171,7 @@ $L$SEH_begin_sha256_block_data_order_avx: -$L$avx_shortcut: +_CET_ENDBR mov rax,rsp push rbx @@ -4391,12 +4382,12 @@ shaext_handler: section .pdata rdata align=4 ALIGN 4 - DD $L$SEH_begin_sha256_block_data_order wrt ..imagebase - DD $L$SEH_end_sha256_block_data_order wrt ..imagebase - DD $L$SEH_info_sha256_block_data_order wrt ..imagebase - DD $L$SEH_begin_sha256_block_data_order_shaext wrt ..imagebase - DD $L$SEH_end_sha256_block_data_order_shaext wrt ..imagebase - DD $L$SEH_info_sha256_block_data_order_shaext wrt ..imagebase + DD $L$SEH_begin_sha256_block_data_order_nohw wrt ..imagebase + DD $L$SEH_end_sha256_block_data_order_nohw wrt ..imagebase + DD $L$SEH_info_sha256_block_data_order_nohw wrt ..imagebase + DD $L$SEH_begin_sha256_block_data_order_hw wrt ..imagebase + DD $L$SEH_end_sha256_block_data_order_hw wrt ..imagebase + DD $L$SEH_info_sha256_block_data_order_hw wrt ..imagebase DD $L$SEH_begin_sha256_block_data_order_ssse3 wrt ..imagebase DD $L$SEH_end_sha256_block_data_order_ssse3 wrt ..imagebase DD $L$SEH_info_sha256_block_data_order_ssse3 wrt ..imagebase @@ -4405,11 +4396,11 @@ ALIGN 4 DD $L$SEH_info_sha256_block_data_order_avx wrt ..imagebase section .xdata rdata align=8 ALIGN 8 -$L$SEH_info_sha256_block_data_order: +$L$SEH_info_sha256_block_data_order_nohw: DB 9,0,0,0 DD se_handler wrt ..imagebase DD $L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase -$L$SEH_info_sha256_block_data_order_shaext: +$L$SEH_info_sha256_block_data_order_hw: DB 9,0,0,0 DD shaext_handler wrt ..imagebase $L$SEH_info_sha256_block_data_order_ssse3: diff --git a/generated-src/win-x86_64/crypto/fipsmodule/sha512-x86_64.asm b/generated-src/win-x86_64/crypto/fipsmodule/sha512-x86_64.asm index fa3a407754..f81b4630bd 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/sha512-x86_64.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/sha512-x86_64.asm @@ -6,35 +6,27 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 -EXTERN OPENSSL_ia32cap_P -global sha512_block_data_order +global sha512_block_data_order_nohw ALIGN 16 -sha512_block_data_order: +sha512_block_data_order_nohw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_sha512_block_data_order: +$L$SEH_begin_sha512_block_data_order_nohw: mov rdi,rcx mov rsi,rdx mov rdx,r8 - lea r11,[OPENSSL_ia32cap_P] - mov r9d,DWORD[r11] - mov r10d,DWORD[4+r11] - mov r11d,DWORD[8+r11] - and r9d,1073741824 - and r10d,268435968 - or r10d,r9d - cmp r10d,1342177792 - je NEAR $L$avx_shortcut +_CET_ENDBR mov rax,rsp push rbx @@ -1742,7 +1734,7 @@ $L$epilogue: mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret -$L$SEH_end_sha512_block_data_order: +$L$SEH_end_sha512_block_data_order_nohw: section .rdata rdata align=8 ALIGN 64 @@ -1837,6 +1829,7 @@ K512: DB 111,114,103,62,0 section .text +global sha512_block_data_order_avx ALIGN 64 sha512_block_data_order_avx: @@ -1850,7 +1843,7 @@ $L$SEH_begin_sha512_block_data_order_avx: -$L$avx_shortcut: +_CET_ENDBR mov rax,rsp push rbx @@ -3123,15 +3116,15 @@ $L$in_prologue: section .pdata rdata align=4 ALIGN 4 - DD $L$SEH_begin_sha512_block_data_order wrt ..imagebase - DD $L$SEH_end_sha512_block_data_order wrt ..imagebase - DD $L$SEH_info_sha512_block_data_order wrt ..imagebase + DD $L$SEH_begin_sha512_block_data_order_nohw wrt ..imagebase + DD $L$SEH_end_sha512_block_data_order_nohw wrt ..imagebase + DD $L$SEH_info_sha512_block_data_order_nohw wrt ..imagebase DD $L$SEH_begin_sha512_block_data_order_avx wrt ..imagebase DD $L$SEH_end_sha512_block_data_order_avx wrt ..imagebase DD $L$SEH_info_sha512_block_data_order_avx wrt ..imagebase section .xdata rdata align=8 ALIGN 8 -$L$SEH_info_sha512_block_data_order: +$L$SEH_info_sha512_block_data_order_nohw: DB 9,0,0,0 DD se_handler wrt ..imagebase DD $L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase diff --git a/generated-src/win-x86_64/crypto/fipsmodule/vpaes-x86_64.asm b/generated-src/win-x86_64/crypto/fipsmodule/vpaes-x86_64.asm index 89b838e516..a0acf871a5 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/vpaes-x86_64.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/vpaes-x86_64.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 @@ -818,6 +819,7 @@ $L$SEH_begin_vpaes_set_encrypt_key: +_CET_ENDBR %ifdef BORINGSSL_DISPATCH_TEST EXTERN BORINGSSL_function_hit mov BYTE[((BORINGSSL_function_hit+5))],1 @@ -876,6 +878,7 @@ $L$SEH_begin_vpaes_set_decrypt_key: +_CET_ENDBR lea rsp,[((-184))+rsp] movaps XMMWORD[16+rsp],xmm6 movaps XMMWORD[32+rsp],xmm7 @@ -934,6 +937,7 @@ $L$SEH_begin_vpaes_encrypt: +_CET_ENDBR %ifdef BORINGSSL_DISPATCH_TEST EXTERN BORINGSSL_function_hit mov BYTE[((BORINGSSL_function_hit+4))],1 @@ -986,6 +990,7 @@ $L$SEH_begin_vpaes_decrypt: +_CET_ENDBR lea rsp,[((-184))+rsp] movaps XMMWORD[16+rsp],xmm6 movaps XMMWORD[32+rsp],xmm7 @@ -1036,6 +1041,7 @@ $L$SEH_begin_vpaes_cbc_encrypt: +_CET_ENDBR xchg rdx,rcx sub rcx,16 jc NEAR $L$cbc_abort @@ -1115,6 +1121,7 @@ $L$SEH_begin_vpaes_ctr32_encrypt_blocks: +_CET_ENDBR xchg rdx,rcx test rcx,rcx diff --git a/generated-src/win-x86_64/crypto/fipsmodule/x86_64-mont.asm b/generated-src/win-x86_64/crypto/fipsmodule/x86_64-mont.asm index fbf628c3de..ebfab08cbf 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/x86_64-mont.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/x86_64-mont.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 @@ -30,6 +31,7 @@ $L$SEH_begin_bn_mul_mont: +_CET_ENDBR mov r9d,r9d mov rax,rsp @@ -37,8 +39,10 @@ $L$SEH_begin_bn_mul_mont: jnz NEAR $L$mul_enter cmp r9d,8 jb NEAR $L$mul_enter +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX lea r11,[OPENSSL_ia32cap_P] mov r11d,DWORD[8+r11] +%endif cmp rdx,rsi jne NEAR $L$mul4x_enter test r9d,7 @@ -301,9 +305,11 @@ $L$SEH_begin_bn_mul4x_mont: mov rax,rsp $L$mul4x_enter: +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX and r11d,0x80100 cmp r11d,0x80100 je NEAR $L$mulx4x_enter +%endif push rbx push rbp @@ -729,7 +735,9 @@ $L$mul4x_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_bn_mul4x_mont: +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX EXTERN bn_sqrx8x_internal +%endif EXTERN bn_sqr8x_internal @@ -825,6 +833,7 @@ DB 102,72,15,110,209 pxor xmm0,xmm0 DB 102,72,15,110,207 DB 102,73,15,110,218 +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX lea rax,[OPENSSL_ia32cap_P] mov eax,DWORD[8+rax] and eax,0x80100 @@ -845,6 +854,7 @@ DB 102,72,15,126,207 ALIGN 32 $L$sqr8x_nox: +%endif call bn_sqr8x_internal @@ -934,6 +944,7 @@ $L$sqr8x_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_bn_sqr8x_mont: +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX ALIGN 32 bn_mulx4x_mont: @@ -1304,6 +1315,7 @@ $L$mulx4x_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_bn_mulx4x_mont: +%endif DB 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105 DB 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56 DB 54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83 @@ -1455,9 +1467,11 @@ ALIGN 4 DD $L$SEH_begin_bn_sqr8x_mont wrt ..imagebase DD $L$SEH_end_bn_sqr8x_mont wrt ..imagebase DD $L$SEH_info_bn_sqr8x_mont wrt ..imagebase +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX DD $L$SEH_begin_bn_mulx4x_mont wrt ..imagebase DD $L$SEH_end_bn_mulx4x_mont wrt ..imagebase DD $L$SEH_info_bn_mulx4x_mont wrt ..imagebase +%endif section .xdata rdata align=8 ALIGN 8 $L$SEH_info_bn_mul_mont: @@ -1473,11 +1487,13 @@ $L$SEH_info_bn_sqr8x_mont: DD sqr_handler wrt ..imagebase DD $L$sqr8x_prologue wrt ..imagebase,$L$sqr8x_body wrt ..imagebase,$L$sqr8x_epilogue wrt ..imagebase ALIGN 8 +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX $L$SEH_info_bn_mulx4x_mont: DB 9,0,0,0 DD sqr_handler wrt ..imagebase DD $L$mulx4x_prologue wrt ..imagebase,$L$mulx4x_body wrt ..imagebase,$L$mulx4x_epilogue wrt ..imagebase ALIGN 8 +%endif %else ; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738 ret diff --git a/generated-src/win-x86_64/crypto/fipsmodule/x86_64-mont5.asm b/generated-src/win-x86_64/crypto/fipsmodule/x86_64-mont5.asm index cacc4f90d0..3a3316cb94 100644 --- a/generated-src/win-x86_64/crypto/fipsmodule/x86_64-mont5.asm +++ b/generated-src/win-x86_64/crypto/fipsmodule/x86_64-mont5.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 @@ -30,13 +31,16 @@ $L$SEH_begin_bn_mul_mont_gather5: +_CET_ENDBR mov r9d,r9d mov rax,rsp test r9d,7 jnz NEAR $L$mul_enter +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX lea r11,[OPENSSL_ia32cap_P] mov r11d,DWORD[8+r11] +%endif jmp NEAR $L$mul4x_enter ALIGN 16 @@ -489,9 +493,11 @@ $L$SEH_begin_bn_mul4x_mont_gather5: mov rax,rsp $L$mul4x_enter: +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX and r11d,0x80108 cmp r11d,0x80108 je NEAR $L$mulx4x_enter +%endif push rbx push rbp @@ -1135,13 +1141,16 @@ $L$SEH_begin_bn_power5: +_CET_ENDBR mov rax,rsp +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX lea r11,[OPENSSL_ia32cap_P] mov r11d,DWORD[8+r11] and r11d,0x80108 cmp r11d,0x80108 je NEAR $L$powerx5_enter +%endif push rbx push rbp @@ -1275,6 +1284,7 @@ ALIGN 32 bn_sqr8x_internal: __bn_sqr8x_internal: +_CET_ENDBR @@ -2107,6 +2117,7 @@ $L$sqr4x_sub_entry: DB 0F3h,0C3h ;repret +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX ALIGN 32 bn_mulx4x_mont_gather5: @@ -2814,6 +2825,7 @@ ALIGN 32 bn_sqrx8x_internal: __bn_sqrx8x_internal: +_CET_ENDBR @@ -3480,11 +3492,13 @@ $L$sqrx4x_sub_entry: DB 0F3h,0C3h ;repret +%endif global bn_scatter5 ALIGN 16 bn_scatter5: +_CET_ENDBR cmp edx,0 jz NEAR $L$scatter_epilogue @@ -3515,6 +3529,7 @@ ALIGN 32 bn_gather5: $L$SEH_begin_bn_gather5: +_CET_ENDBR DB 0x4c,0x8d,0x14,0x24 @@ -3806,6 +3821,7 @@ ALIGN 4 DD $L$SEH_begin_bn_power5 wrt ..imagebase DD $L$SEH_end_bn_power5 wrt ..imagebase DD $L$SEH_info_bn_power5 wrt ..imagebase +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX DD $L$SEH_begin_bn_mulx4x_mont_gather5 wrt ..imagebase DD $L$SEH_end_bn_mulx4x_mont_gather5 wrt ..imagebase DD $L$SEH_info_bn_mulx4x_mont_gather5 wrt ..imagebase @@ -3813,6 +3829,7 @@ ALIGN 4 DD $L$SEH_begin_bn_powerx5 wrt ..imagebase DD $L$SEH_end_bn_powerx5 wrt ..imagebase DD $L$SEH_info_bn_powerx5 wrt ..imagebase +%endif DD $L$SEH_begin_bn_gather5 wrt ..imagebase DD $L$SEH_end_bn_gather5 wrt ..imagebase DD $L$SEH_info_bn_gather5 wrt ..imagebase @@ -3833,6 +3850,7 @@ $L$SEH_info_bn_power5: DB 9,0,0,0 DD mul_handler wrt ..imagebase DD $L$power5_prologue wrt ..imagebase,$L$power5_body wrt ..imagebase,$L$power5_epilogue wrt ..imagebase +%ifndef MY_ASSEMBLER_IS_TOO_OLD_FOR_512AVX ALIGN 8 $L$SEH_info_bn_mulx4x_mont_gather5: DB 9,0,0,0 @@ -3843,6 +3861,7 @@ $L$SEH_info_bn_powerx5: DB 9,0,0,0 DD mul_handler wrt ..imagebase DD $L$powerx5_prologue wrt ..imagebase,$L$powerx5_body wrt ..imagebase,$L$powerx5_epilogue wrt ..imagebase +%endif ALIGN 8 $L$SEH_info_bn_gather5: DB 0x01,0x0b,0x03,0x0a diff --git a/generated-src/win-x86_64/crypto/test/trampoline-x86_64.asm b/generated-src/win-x86_64/crypto/test/trampoline-x86_64.asm index d11ea0e78c..24ee50a9b0 100644 --- a/generated-src/win-x86_64/crypto/test/trampoline-x86_64.asm +++ b/generated-src/win-x86_64/crypto/test/trampoline-x86_64.asm @@ -6,6 +6,7 @@ default rel %define XMMWORD %define YMMWORD %define ZMMWORD +%define _CET_ENDBR %include "openssl/boringssl_prefix_symbols_nasm.inc" section .text code align=64 @@ -24,6 +25,7 @@ ALIGN 16 abi_test_trampoline: $L$SEH_begin_abi_test_trampoline_1: +_CET_ENDBR @@ -256,6 +258,7 @@ $L$SEH_end_abi_test_trampoline_21: global abi_test_clobber_rax ALIGN 16 abi_test_clobber_rax: +_CET_ENDBR xor rax,rax DB 0F3h,0C3h ;repret @@ -263,6 +266,7 @@ abi_test_clobber_rax: global abi_test_clobber_rbx ALIGN 16 abi_test_clobber_rbx: +_CET_ENDBR xor rbx,rbx DB 0F3h,0C3h ;repret @@ -270,6 +274,7 @@ abi_test_clobber_rbx: global abi_test_clobber_rcx ALIGN 16 abi_test_clobber_rcx: +_CET_ENDBR xor rcx,rcx DB 0F3h,0C3h ;repret @@ -277,6 +282,7 @@ abi_test_clobber_rcx: global abi_test_clobber_rdx ALIGN 16 abi_test_clobber_rdx: +_CET_ENDBR xor rdx,rdx DB 0F3h,0C3h ;repret @@ -284,6 +290,7 @@ abi_test_clobber_rdx: global abi_test_clobber_rdi ALIGN 16 abi_test_clobber_rdi: +_CET_ENDBR xor rdi,rdi DB 0F3h,0C3h ;repret @@ -291,6 +298,7 @@ abi_test_clobber_rdi: global abi_test_clobber_rsi ALIGN 16 abi_test_clobber_rsi: +_CET_ENDBR xor rsi,rsi DB 0F3h,0C3h ;repret @@ -298,6 +306,7 @@ abi_test_clobber_rsi: global abi_test_clobber_rbp ALIGN 16 abi_test_clobber_rbp: +_CET_ENDBR xor rbp,rbp DB 0F3h,0C3h ;repret @@ -305,6 +314,7 @@ abi_test_clobber_rbp: global abi_test_clobber_r8 ALIGN 16 abi_test_clobber_r8: +_CET_ENDBR xor r8,r8 DB 0F3h,0C3h ;repret @@ -312,6 +322,7 @@ abi_test_clobber_r8: global abi_test_clobber_r9 ALIGN 16 abi_test_clobber_r9: +_CET_ENDBR xor r9,r9 DB 0F3h,0C3h ;repret @@ -319,6 +330,7 @@ abi_test_clobber_r9: global abi_test_clobber_r10 ALIGN 16 abi_test_clobber_r10: +_CET_ENDBR xor r10,r10 DB 0F3h,0C3h ;repret @@ -326,6 +338,7 @@ abi_test_clobber_r10: global abi_test_clobber_r11 ALIGN 16 abi_test_clobber_r11: +_CET_ENDBR xor r11,r11 DB 0F3h,0C3h ;repret @@ -333,6 +346,7 @@ abi_test_clobber_r11: global abi_test_clobber_r12 ALIGN 16 abi_test_clobber_r12: +_CET_ENDBR xor r12,r12 DB 0F3h,0C3h ;repret @@ -340,6 +354,7 @@ abi_test_clobber_r12: global abi_test_clobber_r13 ALIGN 16 abi_test_clobber_r13: +_CET_ENDBR xor r13,r13 DB 0F3h,0C3h ;repret @@ -347,6 +362,7 @@ abi_test_clobber_r13: global abi_test_clobber_r14 ALIGN 16 abi_test_clobber_r14: +_CET_ENDBR xor r14,r14 DB 0F3h,0C3h ;repret @@ -354,6 +370,7 @@ abi_test_clobber_r14: global abi_test_clobber_r15 ALIGN 16 abi_test_clobber_r15: +_CET_ENDBR xor r15,r15 DB 0F3h,0C3h ;repret @@ -361,6 +378,7 @@ abi_test_clobber_r15: global abi_test_clobber_xmm0 ALIGN 16 abi_test_clobber_xmm0: +_CET_ENDBR pxor xmm0,xmm0 DB 0F3h,0C3h ;repret @@ -368,6 +386,7 @@ abi_test_clobber_xmm0: global abi_test_clobber_xmm1 ALIGN 16 abi_test_clobber_xmm1: +_CET_ENDBR pxor xmm1,xmm1 DB 0F3h,0C3h ;repret @@ -375,6 +394,7 @@ abi_test_clobber_xmm1: global abi_test_clobber_xmm2 ALIGN 16 abi_test_clobber_xmm2: +_CET_ENDBR pxor xmm2,xmm2 DB 0F3h,0C3h ;repret @@ -382,6 +402,7 @@ abi_test_clobber_xmm2: global abi_test_clobber_xmm3 ALIGN 16 abi_test_clobber_xmm3: +_CET_ENDBR pxor xmm3,xmm3 DB 0F3h,0C3h ;repret @@ -389,6 +410,7 @@ abi_test_clobber_xmm3: global abi_test_clobber_xmm4 ALIGN 16 abi_test_clobber_xmm4: +_CET_ENDBR pxor xmm4,xmm4 DB 0F3h,0C3h ;repret @@ -396,6 +418,7 @@ abi_test_clobber_xmm4: global abi_test_clobber_xmm5 ALIGN 16 abi_test_clobber_xmm5: +_CET_ENDBR pxor xmm5,xmm5 DB 0F3h,0C3h ;repret @@ -403,6 +426,7 @@ abi_test_clobber_xmm5: global abi_test_clobber_xmm6 ALIGN 16 abi_test_clobber_xmm6: +_CET_ENDBR pxor xmm6,xmm6 DB 0F3h,0C3h ;repret @@ -410,6 +434,7 @@ abi_test_clobber_xmm6: global abi_test_clobber_xmm7 ALIGN 16 abi_test_clobber_xmm7: +_CET_ENDBR pxor xmm7,xmm7 DB 0F3h,0C3h ;repret @@ -417,6 +442,7 @@ abi_test_clobber_xmm7: global abi_test_clobber_xmm8 ALIGN 16 abi_test_clobber_xmm8: +_CET_ENDBR pxor xmm8,xmm8 DB 0F3h,0C3h ;repret @@ -424,6 +450,7 @@ abi_test_clobber_xmm8: global abi_test_clobber_xmm9 ALIGN 16 abi_test_clobber_xmm9: +_CET_ENDBR pxor xmm9,xmm9 DB 0F3h,0C3h ;repret @@ -431,6 +458,7 @@ abi_test_clobber_xmm9: global abi_test_clobber_xmm10 ALIGN 16 abi_test_clobber_xmm10: +_CET_ENDBR pxor xmm10,xmm10 DB 0F3h,0C3h ;repret @@ -438,6 +466,7 @@ abi_test_clobber_xmm10: global abi_test_clobber_xmm11 ALIGN 16 abi_test_clobber_xmm11: +_CET_ENDBR pxor xmm11,xmm11 DB 0F3h,0C3h ;repret @@ -445,6 +474,7 @@ abi_test_clobber_xmm11: global abi_test_clobber_xmm12 ALIGN 16 abi_test_clobber_xmm12: +_CET_ENDBR pxor xmm12,xmm12 DB 0F3h,0C3h ;repret @@ -452,6 +482,7 @@ abi_test_clobber_xmm12: global abi_test_clobber_xmm13 ALIGN 16 abi_test_clobber_xmm13: +_CET_ENDBR pxor xmm13,xmm13 DB 0F3h,0C3h ;repret @@ -459,6 +490,7 @@ abi_test_clobber_xmm13: global abi_test_clobber_xmm14 ALIGN 16 abi_test_clobber_xmm14: +_CET_ENDBR pxor xmm14,xmm14 DB 0F3h,0C3h ;repret @@ -466,6 +498,7 @@ abi_test_clobber_xmm14: global abi_test_clobber_xmm15 ALIGN 16 abi_test_clobber_xmm15: +_CET_ENDBR pxor xmm15,xmm15 DB 0F3h,0C3h ;repret @@ -478,6 +511,7 @@ ALIGN 16 abi_test_bad_unwind_wrong_register: $L$SEH_begin_abi_test_bad_unwind_wrong_register_1: +_CET_ENDBR push r12 $L$SEH_prolog_abi_test_bad_unwind_wrong_register_2: @@ -501,6 +535,7 @@ ALIGN 16 abi_test_bad_unwind_temporary: $L$SEH_begin_abi_test_bad_unwind_temporary_1: +_CET_ENDBR push r12 $L$SEH_prolog_abi_test_bad_unwind_temporary_2: @@ -527,6 +562,7 @@ $L$SEH_end_abi_test_bad_unwind_temporary_3: global abi_test_get_and_clear_direction_flag abi_test_get_and_clear_direction_flag: +_CET_ENDBR pushfq pop rax and rax,0x400 @@ -540,6 +576,7 @@ abi_test_get_and_clear_direction_flag: global abi_test_set_direction_flag abi_test_set_direction_flag: +_CET_ENDBR std DB 0F3h,0C3h ;repret diff --git a/go.mod b/go.mod index 4307263dec..c1d862036e 100644 --- a/go.mod +++ b/go.mod @@ -1,7 +1,7 @@ module boringssl.googlesource.com/boringssl // When this changes update /cmake/go.cmake minimum_go_version and /BUILDING.md -go 1.18 +go 1.17 require ( golang.org/x/crypto v0.10.0 diff --git a/include/openssl/arm_arch.h b/include/openssl/arm_arch.h index a2b23b4dcf..5db9bb3aa8 100644 --- a/include/openssl/arm_arch.h +++ b/include/openssl/arm_arch.h @@ -82,11 +82,12 @@ // ARMV8_SHA3 indicates support for hardware SHA-3 instructions including EOR3. #define ARMV8_SHA3 (1 << 11) -// The Neoverse V1 and Apple M1 micro-architectures are detected to enable +// The Neoverse V1, V2, and Apple M1 micro-architectures are detected to enable // high unrolling factor of AES-GCM and other algorithms that leverage a // wide crypto pipeline and fast multiplier. #define ARMV8_NEOVERSE_V1 (1 << 12) #define ARMV8_APPLE_M1 (1 << 13) +#define ARMV8_NEOVERSE_V2 (1 << 14) // ARMV8_DIT indicates support for the Data-Independent Timing (DIT) flag. #define ARMV8_DIT (1 << 14) @@ -104,6 +105,7 @@ # define ARM_CPU_PART_CORTEX_A72 0xD08 # define ARM_CPU_PART_N1 0xD0C # define ARM_CPU_PART_V1 0xD40 +# define ARM_CPU_PART_V2 0xD4F # define MIDR_PARTNUM_SHIFT 4 # define MIDR_PARTNUM_MASK (0xfffUL << MIDR_PARTNUM_SHIFT) diff --git a/include/openssl/asm_base.h b/include/openssl/asm_base.h index bf794a360e..2f240e32be 100644 --- a/include/openssl/asm_base.h +++ b/include/openssl/asm_base.h @@ -32,6 +32,10 @@ // // - The file, on aarch64, uses the macros defined below to be compatible with // BTI and PAC. +// +// - The file, on x86_64, requires the program to be compatible with Intel IBT +// and SHSTK + #if defined(__ASSEMBLER__) #include @@ -43,6 +47,22 @@ .popsection #endif +#if defined(__CET__) && defined(OPENSSL_X86_64) +// Clang and GCC define __CET__ and provide when they support Intel's +// Indirect Branch Tracking. +// https://lpc.events/event/7/contributions/729/attachments/496/903/CET-LPC-2020.pdf +// +// cet.h defines _CET_ENDBR which is used to mark function entry points for IBT. +// and adds the assembly marker. The value of _CET_ENDBR is made dependant on if +// '-fcf-protection' is passed to the compiler. _CET_ENDBR is only required when +// the function is the target of an indirect jump, but BoringSSL chooses to mark +// all assembly entry points because it is easier, and allows BoringSSL's ABI +// tester to call the assembly entry points via an indirect jump. +#include +#else +#define _CET_ENDBR +#endif + #if defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64) // We require the ARM assembler provide |__ARM_ARCH| from Arm C Language diff --git a/include/openssl/base.h b/include/openssl/base.h index f7c0b7bc6e..ae8e510a42 100644 --- a/include/openssl/base.h +++ b/include/openssl/base.h @@ -122,7 +122,7 @@ extern "C" { // ServiceIndicatorTest.AWSLCVersionString // Note: there are two versions of this test. Only one test is compiled // depending on FIPS mode. -#define AWSLC_VERSION_NUMBER_STRING "1.31.0" +#define AWSLC_VERSION_NUMBER_STRING "1.32.0" #if defined(BORINGSSL_SHARED_LIBRARY) diff --git a/include/openssl/digest.h b/include/openssl/digest.h index 15655b58cd..8aeea40085 100644 --- a/include/openssl/digest.h +++ b/include/openssl/digest.h @@ -171,6 +171,14 @@ OPENSSL_EXPORT int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data, // at least this much space. #define EVP_MAX_MD_SIZE 64 // SHA-512 is the longest so far. +// EVP_MAX_MD_CHAINING_LENGTH is the largest chaining length supported, in +// bytes. This constant is only for Merkle-Damgard-based hashed functions +// like SHA-1, SHA-2, and MD5. The chaining length is defined as the output +// length of the hash in bytes, before any truncation (e.g., 32 for SHA-224 and +// SHA-256, 64 for SHA-384 and SHA-512). +// This constant is only used internally by HMAC. +#define EVP_MAX_MD_CHAINING_LENGTH 64 // SHA-512 has the longest chaining length so far + // EVP_MAX_MD_BLOCK_SIZE is the largest digest block size supported, in // bytes. #define EVP_MAX_MD_BLOCK_SIZE 128 // SHA-512 is the longest so far. diff --git a/include/openssl/ec.h b/include/openssl/ec.h index f31b4b3872..99439bcaa0 100644 --- a/include/openssl/ec.h +++ b/include/openssl/ec.h @@ -100,6 +100,16 @@ typedef enum { // Elliptic curve groups. +// +// Elliptic curve groups are represented by |EC_GROUP| objects. Unlike OpenSSL, +// if limited to the APIs in this section, callers may treat |EC_GROUP|s as +// static, immutable objects which do not need to be copied or released. In +// BoringSSL, only custom |EC_GROUP|s created by |EC_GROUP_new_curve_GFp| +// (deprecated) are dynamic. +// +// Callers may cast away |const| and use |EC_GROUP_dup| and |EC_GROUP_free| with +// static groups, for compatibility with OpenSSL or dynamic groups, but it is +// otherwise unnecessary. // EC_group_p224 returns an |EC_GROUP| for P-224, also known as secp224r1. OPENSSL_EXPORT const EC_GROUP *EC_group_p224(void); @@ -137,12 +147,6 @@ OPENSSL_EXPORT const EC_GROUP *EC_group_secp256k1(void); // more modern primitives. OPENSSL_EXPORT EC_GROUP *EC_GROUP_new_by_curve_name(int nid); -// EC_GROUP_free releases a reference to |group|. -OPENSSL_EXPORT void EC_GROUP_free(EC_GROUP *group); - -// EC_GROUP_dup takes a reference to |a| and returns it. -OPENSSL_EXPORT EC_GROUP *EC_GROUP_dup(const EC_GROUP *a); - // EC_GROUP_cmp returns zero if |a| and |b| are the same group and non-zero // otherwise. OPENSSL_EXPORT int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, @@ -356,9 +360,27 @@ OPENSSL_EXPORT int EC_hash_to_curve_p384_xmd_sha384_sswu( // Deprecated functions. +// EC_GROUP_free releases a reference to |group|, if |group| was created by +// |EC_GROUP_new_curve_GFp|. If |group| is static, it does nothing. +// +// This function exists for OpenSSL compatibilty, and to manage dynamic +// |EC_GROUP|s constructed by |EC_GROUP_new_curve_GFp|. Callers that do not need +// either may ignore this function. +OPENSSL_EXPORT void EC_GROUP_free(EC_GROUP *group); + +// EC_GROUP_dup increments |group|'s reference count and returns it, if |group| +// was created by |EC_GROUP_new_curve_GFp|. If |group| is static, it simply +// returns |group|. +// +// This function exists for OpenSSL compatibilty, and to manage dynamic +// |EC_GROUP|s constructed by |EC_GROUP_new_curve_GFp|. Callers that do not need +// either may ignore this function. +OPENSSL_EXPORT EC_GROUP *EC_GROUP_dup(const EC_GROUP *group); + // EC_GROUP_new_curve_GFp creates a new, arbitrary elliptic curve group based // on the equation y² = x³ + a·x + b. It returns the new group or NULL on -// error. +// error. The lifetime of the resulting object must be managed with +// |EC_GROUP_dup| and |EC_GROUP_free|. // // This new group has no generator. It is an error to use a generator-less group // with any functions except for |EC_GROUP_free|, |EC_POINT_new|, @@ -391,15 +413,30 @@ OPENSSL_EXPORT int EC_GROUP_set_generator(EC_GROUP *group, const BIGNUM *cofactor); -// EC_POINT_point2bn converts an |EC_POINT| to a |BIGNUM| by serializing the -// point into the X9.62 form given by |form| then interpretting it as a BIGNUM. -// On success, it returns the BIGNUM pointer supplied or, if |ret| is NULL, -// allocates and returns a fresh |BIGNUM|. On error, it returns NULL. The |ctx| -// argument may be used if not NULL. +// EC_POINT_point2bn calls |EC_POINT_point2oct| to serialize |point| into the +// X9.62 form given by |form| and returns the serialized output as a |BIGNUM|. +// The returned |BIGNUM| is a representation of serialized bytes. On success, it +// returns the |BIGNUM| pointer supplied or, if |ret| is NULL, allocates and +// returns a fresh |BIGNUM|. On error, it returns NULL. The |ctx| argument may +// be used if not NULL. +// +// Note: |EC_POINT|s are not individual |BIGNUM| integers, so these aren't +// particularly useful. Use |EC_POINT_point2oct| directly instead. OPENSSL_EXPORT OPENSSL_DEPRECATED BIGNUM *EC_POINT_point2bn( const EC_GROUP *group, const EC_POINT *point, point_conversion_form_t form, BIGNUM *ret, BN_CTX *ctx); +// EC_POINT_bn2point is like |EC_POINT_point2bn|, but calls |EC_POINT_oct2point| +// to de-serialize the |BIGNUM| representation of bytes back to an |EC_POINT|. +// On success, it returns the |EC_POINT| pointer supplied or, if |ret| is NULL, +// allocates and returns a fresh |EC_POINT|. On error, it returns NULL. The +// |ctx| argument may be used if not NULL. +// +// Note: |EC_POINT|s are not individual |BIGNUM| integers, so these aren't +// particularly useful. Use |EC_POINT_oct2point| directly instead. +OPENSSL_EXPORT OPENSSL_DEPRECATED EC_POINT *EC_POINT_bn2point( + const EC_GROUP *group, const BIGNUM *bn, EC_POINT *point, BN_CTX *ctx); + // EC_GROUP_get_order sets |*order| to the order of |group|, if it's not // NULL. It returns one on success and zero otherwise. |ctx| is ignored. Use // |EC_GROUP_get0_order| instead. @@ -460,6 +497,9 @@ OPENSSL_EXPORT OPENSSL_DEPRECATED unsigned char *EC_GROUP_get0_seed( OPENSSL_EXPORT OPENSSL_DEPRECATED size_t EC_GROUP_get_seed_len(const EC_GROUP *group); +// ECPKParameters_print prints nothing and returns 1. +OPENSSL_EXPORT OPENSSL_DEPRECATED int ECPKParameters_print( + BIO *bio, const EC_GROUP *group, int offset); // EC_METHOD No-ops [Deprecated]. // diff --git a/include/openssl/ec_key.h b/include/openssl/ec_key.h index b273a75475..2badaa6ce2 100644 --- a/include/openssl/ec_key.h +++ b/include/openssl/ec_key.h @@ -329,14 +329,17 @@ OPENSSL_EXPORT int i2d_ECPrivateKey(const EC_KEY *key, uint8_t **outp); // d2i_ECParameters parses a DER-encoded ECParameters structure (RFC 5480) from // |len| bytes at |*inp|, as described in |d2i_SAMPLE|. // -// Use |EC_KEY_parse_parameters| or |EC_KEY_parse_curve_name| instead. +// Use |EC_KEY_parse_parameters| or |EC_KEY_parse_curve_name| instead. Only +// deserialization of namedCurves or explicitly-encoded versions of named curves +// are supported. OPENSSL_EXPORT EC_KEY *d2i_ECParameters(EC_KEY **out_key, const uint8_t **inp, long len); // i2d_ECParameters marshals |key|'s parameters as a DER-encoded OBJECT // IDENTIFIER, as described in |i2d_SAMPLE|. // -// Use |EC_KEY_marshal_curve_name| instead. +// Use |EC_KEY_marshal_curve_name| instead. Only serialization of namedCurves +// are supported. OPENSSL_EXPORT int i2d_ECParameters(const EC_KEY *key, uint8_t **outp); // o2i_ECPublicKey parses an EC point from |len| bytes at |*inp| into diff --git a/include/openssl/evp.h b/include/openssl/evp.h index 9be4ea6aa6..eea831786f 100644 --- a/include/openssl/evp.h +++ b/include/openssl/evp.h @@ -763,7 +763,7 @@ OPENSSL_EXPORT int EVP_PKEY_encapsulate(EVP_PKEY_CTX *ctx /* IN */, OPENSSL_EXPORT int EVP_PKEY_decapsulate(EVP_PKEY_CTX *ctx /* IN */, uint8_t *shared_secret /* OUT */, size_t *shared_secret_len /* OUT */, - uint8_t *ciphertext /* IN */, + const uint8_t *ciphertext /* IN */, size_t ciphertext_len /* IN */); // EVP_PKEY_paramgen_init initialises an |EVP_PKEY_CTX| for a parameter diff --git a/include/openssl/hmac.h b/include/openssl/hmac.h index 436cb47644..95f873218c 100644 --- a/include/openssl/hmac.h +++ b/include/openssl/hmac.h @@ -125,7 +125,7 @@ OPENSSL_EXPORT int HMAC_Update(HMAC_CTX *ctx, const uint8_t *data, size_t data_len); // HMAC_Final completes the HMAC operation in |ctx| and writes the result to -// |out| and the sets |*out_len| to the length of the result. On entry, |out| +// |out| and then sets |*out_len| to the length of the result. On entry, |out| // must contain at least |HMAC_size| bytes of space. An output size of // |EVP_MAX_MD_SIZE| will always be large enough. It returns one on success or // zero on allocation failure. @@ -151,6 +151,73 @@ OPENSSL_EXPORT int HMAC_CTX_copy_ex(HMAC_CTX *dest, const HMAC_CTX *src); OPENSSL_EXPORT void HMAC_CTX_reset(HMAC_CTX *ctx); +// Precomputed key functions + +// HMAC_MAX_PRECOMPUTED_KEY_SIZE is the largest precomputed key size, in bytes. +#define HMAC_MAX_PRECOMPUTED_KEY_SIZE (2 * (EVP_MAX_MD_CHAINING_LENGTH)) + +// HMAC_set_precomputed_key_export sets the context |ctx| to allow export of the +// precomputed key using HMAC_get_precomputed_key. On entry, HMAC_CTX must have +// been initialized via HMAC_Init_*, and neither HMAC_Update nor HMAC_Final +// must have been called after the last HMAC_Init_ex. It returns one on success +// and zero on error. +// After a successful call to HMAC_set_precomputed_key_export, HMAC_Update and +// HMAC_Final will fail. +// +// Note: The main reason for this function is to satisfy FIPS assertion AS09.16, +// since HMAC_get_precomputed_key returns key material (i.e., a CSP in NIST +// terminology). +OPENSSL_EXPORT int HMAC_set_precomputed_key_export(HMAC_CTX *ctx); + +// HMAC_get_precomputed_key exports the precomputed key. If |out| is NULL, +// |out_len| is set to the size of the precomputed key. After such a call, +// |HMAC_get_precomputed_key| can directly be called again with a non-null +// |out|. But |HMAC_Update| and |HMAC_Final| will still fail. +// +// If |out| is not NULL, |*out_len| must contain the number of bytes of space +// available at |out|. If sufficient, the precomputed key will be written in +// |out| and |out_len| will be updated with the true length. An output size of +// |HMAC_MAX_PRECOMPUTED_KEY_SIZE| will always be large enough. After a +// successful call to |HMAC_get_precomputed_key| with a non-NULL |out|, the +// context can be directly used for computing an HMAC using |HMAC_Update| and +// |HMAC_Final|. +// +// The function returns one on success and zero on error. +// +// The precomputed key is the concatenation: +// precomputed_key = key_ipad || key_opad +// where: +// key_ipad = Hash_Compression_Function(key' xor ipad) +// key_opad = Hash_Compression_Function(key' xor opad) +// key' = padding of key with 0 on the right to be of the block length +// if length of key is at most the block length +// or Hash(key) +// otherwise +// +// Knowledge of precomputed_key is sufficient to compute HMAC. Use of the +// precomputed key instead of the key reduces by 2 the number of hash +// compression function calls (or more if key is larger than the block length) +OPENSSL_EXPORT int HMAC_get_precomputed_key(HMAC_CTX *ctx, uint8_t *out, + size_t *out_len); + +// HMAC_Init_from_precomputed_key sets up an initialised |HMAC_CTX| to use +// |md| as the hash function and |precomputed_key| as the precomputed key +// (see |HMAC_get_precomputed_key|). +// For a non-initial call, |md| may be NULL, in which case the previous hash +// function is used. If the hash function has not changed and |precomputed_key| +// is NULL, the previous key is used. This non-initial call is interchangeable +// with calling |HMAC_Init_ex| with the same parameters. It returns one on +// success or zero on failure. +// +// Note: Contrary to input keys to |HMAC_Init_ex|, which can be the empty key, +// an input precomputed key cannot be empty in an initial call to +// |HMAC_Init_from_precomputed_key|. Otherwise, the call fails and returns zero. +OPENSSL_EXPORT int HMAC_Init_from_precomputed_key(HMAC_CTX *ctx, + const uint8_t *precomputed_key, + size_t precompute_key_len, + const EVP_MD *md); + + // Deprecated functions. OPENSSL_EXPORT int HMAC_Init(HMAC_CTX *ctx, const void *key, int key_len, @@ -203,4 +270,12 @@ BSSL_NAMESPACE_END #endif + +// Errors + +#define HMAC_R_MISSING_PARAMETERS 100 +#define HMAC_R_BUFFER_TOO_SMALL 102 +#define HMAC_R_SET_PRECOMPUTED_KEY_EXPORT_NOT_CALLED 103 +#define HMAC_R_NOT_CALLED_JUST_AFTER_INIT 104 + #endif // OPENSSL_HEADER_HMAC_H diff --git a/include/openssl/kdf.h b/include/openssl/kdf.h index f0160c6218..41cbb537cc 100644 --- a/include/openssl/kdf.h +++ b/include/openssl/kdf.h @@ -35,7 +35,7 @@ OPENSSL_EXPORT int CRYPTO_tls1_prf(const EVP_MD *digest, // SSKDF_digest computes the One-step key derivation using the // provided digest algorithm as the backing PRF. This algorithm // may be referred to as "Single-Step KDF" or "NIST Concatenation KDF" by other -// implementors. |info_len| may be |NULL| or zero length. +// implementors. |info_len| may be zero length. // // Returns a 1 on success, otherwise returns 0. // @@ -60,7 +60,7 @@ OPENSSL_EXPORT int SSKDF_digest(uint8_t *out_key, size_t out_len, // provided digest algorithm with HMAC as the backing PRF. This algorithm // may be referred to as "Single-Step KDF" or "NIST Concatenation KDF" by other // implementors. |salt| is optional and may be |NULL| or zero-length. In -// addition |info_len| may be |NULL| or zero length. +// addition |info_len| may be zero length. // // Returns a 1 on success, otherwise returns 0. // @@ -85,6 +85,28 @@ OPENSSL_EXPORT int SSKDF_hmac(uint8_t *out_key, size_t out_len, const uint8_t *info, size_t info_len, const uint8_t *salt, size_t salt_len); +// KBKDF_ctr_hmac derives keying material using the KDF counter mode algorithm, +// using the provided key derivation key |secret| and fixed info |info|. +// |info| or |info_len| may be zero-length. This algorithm +// may be referred to as a "Key-Based Key Derivation Function in Counter Mode". +// +// This implementation adheres to the algorithm specified in Section 4.1 of the +// NIST Special Publication 800-108 Revision 1 Update 1 published on August +// 2022. The parameters relevant to the specification are as follows: +// * |out_len|, |secret_len|, and |info_len| are specified in bytes +// * |out_len| is analogous to |L| in the specification. +// * |r| the length of the binary representation of the counter |i| +// referred to by the specification. |r| is 32 bits in this implementation. +// * The 32-bit counter is big-endian in this implementation. +// * |K_IN| is analogous to |secret| and |secret_len|. +// * |PRF| refers to HMAC in this implementation. +// +// Specification is available at https://doi.org/10.6028/NIST.SP.800-108r1-upd1 +OPENSSL_EXPORT int KBKDF_ctr_hmac(uint8_t *out_key, size_t out_len, + const EVP_MD *digest, const uint8_t *secret, + size_t secret_len, const uint8_t *info, + size_t info_len); + // KDF support for EVP. diff --git a/include/openssl/nid.h b/include/openssl/nid.h index a7a5a0cb06..fa8a985717 100644 --- a/include/openssl/nid.h +++ b/include/openssl/nid.h @@ -4334,6 +4334,12 @@ extern "C" { #define SN_MLKEM512IPD "MLKEM512IPD" #define NID_MLKEM512IPD 985 +#define SN_MLKEM768IPD "MLKEM768IPD" +#define NID_MLKEM768IPD 986 + +#define SN_MLKEM1024IPD "MLKEM1024IPD" +#define NID_MLKEM1024IPD 987 + #if defined(__cplusplus) } /* extern C */ #endif diff --git a/include/openssl/ocsp.h b/include/openssl/ocsp.h index 60a05f578c..af29b1d566 100644 --- a/include/openssl/ocsp.h +++ b/include/openssl/ocsp.h @@ -70,6 +70,7 @@ DECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP) DECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE) DECLARE_ASN1_FUNCTIONS(OCSP_CERTID) DECLARE_ASN1_FUNCTIONS(OCSP_REQUEST) +DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) // d2i_OCSP_REQUEST_bio parses a DER-encoded OCSP request from |bp|, converts it // into an |OCSP_REQUEST|, and writes the result in |preq|. @@ -149,6 +150,9 @@ OPENSSL_EXPORT int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, const char *name, const char *value); +// OCSP_REQ_CTX_i2d parses the ASN.1 contents of |rctx| into the der format. +int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, ASN1_VALUE *val); + // OCSP_request_add0_id adds |cid| to |req|. Returns the new |OCSP_ONEREQ| // pointer allocated on the stack within |req|. This is useful if we want to // add extensions. @@ -197,6 +201,16 @@ OPENSSL_EXPORT int OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm); // OCSP_request_add1_cert adds a certificate to an |OCSP_REQUEST|. OPENSSL_EXPORT int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert); +// OCSP_request_is_signed checks if the optional signature exists for |req|. +OPENSSL_EXPORT int OCSP_request_is_signed(OCSP_REQUEST *req); + +// OCSP_request_onereq_count returns the number of |OCSP_ONEREQ|s in |req|. +OPENSSL_EXPORT int OCSP_request_onereq_count(OCSP_REQUEST *req); + +// OCSP_request_onereq_get0 returns the |OCSP_ONEREQ| in |req| at index |i| or +// NULL if |i| is out of bounds. +OPENSSL_EXPORT OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i); + // OCSP_request_sign signs an |OCSP_REQUEST|. Signing also sets the // |requestorName| to the subject name of an optional signers certificate and // includes one or more optional certificates in the request. @@ -288,6 +302,13 @@ OPENSSL_EXPORT int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisUpdate, OPENSSL_EXPORT int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, X509_STORE *st, unsigned long flags); +// OCSP_cert_id_new creates and returns a new |OCSP_CERTID| using |dgst|, +// |issuerName|, |issuerKey|, and |serialNumber| as its contents. +OPENSSL_EXPORT OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, + const X509_NAME *issuerName, + const ASN1_BIT_STRING *issuerKey, + const ASN1_INTEGER *serialNumber); + // OCSP_cert_to_id returns a |OCSP_CERTID| converted from a certificate and its // issuer. // @@ -329,7 +350,12 @@ OPENSSL_EXPORT OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, OPENSSL_EXPORT int OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath, int *pssl); -// OCSP_id_cmp compares the contents of |OCSP_CERTID|, returns 0 on equal. +// OCSP_id_issuer_cmp compares the issuers' name and key hash of |a| and |b|. It +// returns 0 on equal. +OPENSSL_EXPORT int OCSP_id_issuer_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); + +// OCSP_id_cmp calls |OCSP_id_issuer_cmp| and additionally compares the +// |serialNumber| of |a| and |b|. It returns 0 on equal. OPENSSL_EXPORT int OCSP_id_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); // OCSP_id_get0_info returns the issuer name hash, hash OID, issuer key hash, @@ -374,6 +400,35 @@ OPENSSL_EXPORT int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *req, OPENSSL_EXPORT int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *resp, unsigned long flags); +// OCSP_BASICRESP_get_ext_by_NID returns the index of an extension |bs| by its +// NID. Returns -1 if not found. +OPENSSL_EXPORT int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *bs, int nid, + int lastpos); + +// OCSP_BASICRESP_get_ext returns the |X509_EXTENSION| in |bs| at index |loc|, +// or NULL if |loc| is out of bounds. +OPENSSL_EXPORT X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *bs, + int loc); + + +// OCSP |X509_EXTENSION| Functions + +// OCSP_SINGLERESP_add_ext adds a copy of |ex| to the extension list in +// |*sresp|. It returns 1 on success and 0 on error. The new extension is +// inserted at index |loc|, shifting extensions to the right. If |loc| is -1 or +// out of bounds, the new extension is appended to the list. +OPENSSL_EXPORT int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *sresp, + X509_EXTENSION *ex, int loc); + +// OCSP_SINGLERESP_get_ext_count returns the number of |X509_EXTENSION|s in +// |sresp|. +OPENSSL_EXPORT int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *sresp); + +// OCSP_SINGLERESP_get_ext returns the |X509_EXTENSION| in |sresp| +// at index |loc|, or NULL if |loc| is out of bounds. +OPENSSL_EXPORT X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *sresp, + int loc); + #if defined(__cplusplus) } // extern C @@ -389,6 +444,7 @@ BORINGSSL_MAKE_DELETER(OCSP_REQ_CTX, OCSP_REQ_CTX_free) BORINGSSL_MAKE_DELETER(OCSP_RESPONSE, OCSP_RESPONSE_free) BORINGSSL_MAKE_DELETER(OCSP_BASICRESP, OCSP_BASICRESP_free) BORINGSSL_MAKE_DELETER(OCSP_CERTID, OCSP_CERTID_free) +BORINGSSL_MAKE_DELETER(OCSP_SINGLERESP, OCSP_SINGLERESP_free) BSSL_NAMESPACE_END diff --git a/include/openssl/pem.h b/include/openssl/pem.h index 2266b0ebc0..0420abf9bc 100644 --- a/include/openssl/pem.h +++ b/include/openssl/pem.h @@ -105,6 +105,7 @@ extern "C" { #define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS" #define PEM_STRING_DSAPARAMS "DSA PARAMETERS" #define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY" +#define PEM_STRING_ECPARAMETERS "EC PARAMETERS" #define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY" #define PEM_STRING_CMS "CMS" @@ -472,6 +473,21 @@ OPENSSL_EXPORT int PEM_write_PKCS8PrivateKey(FILE *fp, const EVP_PKEY *x, int klen, pem_password_cb *cd, void *u); +// PEM_read_bio_ECPKParameters deserializes the PEM file written in |bio| +// according to |ECPKParameters| in RFC 3279. It returns the |EC_GROUP| +// corresponding to deserialized output and also writes it to |out_group|. Only +// deserialization of namedCurves or explicitly-encoded versions of namedCurves +// are supported. +OPENSSL_EXPORT EC_GROUP *PEM_read_bio_ECPKParameters(BIO *bio, + EC_GROUP **out_group, + pem_password_cb *cb, + void *u); + +// PEM_write_bio_ECPKParameters serializes |group| as a PEM file to |out| +// according to |ECPKParameters| in RFC 3279. Only serialization of namedCurves +// are supported. +OPENSSL_EXPORT int PEM_write_bio_ECPKParameters(BIO *out, + const EC_GROUP *group); #ifdef __cplusplus } // extern "C" diff --git a/include/openssl/target.h b/include/openssl/target.h index feb0bdfd4c..35f1add1aa 100644 --- a/include/openssl/target.h +++ b/include/openssl/target.h @@ -87,7 +87,8 @@ #endif // Trusty and Android baremetal aren't Linux but currently define __linux__. -// As a workaround, we exclude them here. We also exclude nanolibc. nanolibc +// As a workaround, we exclude them here. +// We also exclude nanolibc/CrOS EC/Zephyr. nanolibc/CrOS EC/Zephyr // sometimes build for a non-Linux target (which should not define __linux__), // but also sometimes build for Linux. Although technically running in Linux // userspace, this lacks all the libc APIs we'd normally expect on Linux, so we @@ -97,7 +98,8 @@ // TODO(b/291101350): Remove this workaround once Android baremetal no longer // defines it. #if defined(__linux__) && !defined(__TRUSTY__) && \ - !defined(ANDROID_BAREMETAL) && !defined(OPENSSL_NANOLIBC) + !defined(ANDROID_BAREMETAL) && !defined(OPENSSL_NANOLIBC) && \ + !defined(CROS_EC) && !defined(CROS_ZEPHYR) #define OPENSSL_LINUX #endif diff --git a/include/openssl/x509.h b/include/openssl/x509.h index e157f15c35..31824bdb6c 100644 --- a/include/openssl/x509.h +++ b/include/openssl/x509.h @@ -2964,18 +2964,36 @@ OPENSSL_EXPORT int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); // X509_issuer_name_hash returns the hash of |x509|'s issuer name with // |X509_NAME_hash|. +// +// This hash is specific to the |X509_LOOKUP_hash_dir| filesystem format and is +// not suitable for general-purpose X.509 name processing. It is very short, so +// there will be hash collisions. It also depends on an OpenSSL-specific +// canonicalization process. OPENSSL_EXPORT uint32_t X509_issuer_name_hash(X509 *x509); // X509_subject_name_hash returns the hash of |x509|'s subject name with // |X509_NAME_hash|. +// +// This hash is specific to the |X509_LOOKUP_hash_dir| filesystem format and is +// not suitable for general-purpose X.509 name processing. It is very short, so +// there will be hash collisions. It also depends on an OpenSSL-specific +// canonicalization process. OPENSSL_EXPORT uint32_t X509_subject_name_hash(X509 *x509); // X509_issuer_name_hash_old returns the hash of |x509|'s issuer name with // |X509_NAME_hash_old|. +// +// This hash is specific to the |X509_LOOKUP_hash_dir| filesystem format and is +// not suitable for general-purpose X.509 name processing. It is very short, so +// there will be hash collisions. OPENSSL_EXPORT uint32_t X509_issuer_name_hash_old(X509 *x509); // X509_subject_name_hash_old returns the hash of |x509|'s usjbect name with // |X509_NAME_hash_old|. +// +// This hash is specific to the |X509_LOOKUP_hash_dir| filesystem format and is +// not suitable for general-purpose X.509 name processing. It is very short, so +// there will be hash collisions. OPENSSL_EXPORT uint32_t X509_subject_name_hash_old(X509 *x509); @@ -3652,8 +3670,6 @@ DEFINE_STACK_OF(X509_TRUST) #define X509_TRUST_SSL_SERVER 3 #define X509_TRUST_EMAIL 4 #define X509_TRUST_OBJECT_SIGN 5 -#define X509_TRUST_OCSP_SIGN 6 -#define X509_TRUST_OCSP_REQUEST 7 #define X509_TRUST_TSA 8 // check_trust return codes @@ -3682,6 +3698,11 @@ OPENSSL_EXPORT int X509_cmp(const X509 *a, const X509 *b); // X509_NAME_hash returns a hash of |name|, or zero on error. This is the new // hash used by |X509_LOOKUP_hash_dir|. // +// This hash is specific to the |X509_LOOKUP_hash_dir| filesystem format and is +// not suitable for general-purpose X.509 name processing. It is very short, so +// there will be hash collisions. It also depends on an OpenSSL-specific +// canonicalization process. +// // TODO(https://crbug.com/boringssl/407): This should be const and thread-safe // but currently is neither, notably if |name| was modified from its parsed // value. @@ -3691,6 +3712,10 @@ OPENSSL_EXPORT uint32_t X509_NAME_hash(X509_NAME *name); // legacy hash used by |X509_LOOKUP_hash_dir|, which is still supported for // compatibility. // +// This hash is specific to the |X509_LOOKUP_hash_dir| filesystem format and is +// not suitable for general-purpose X.509 name processing. It is very short, so +// there will be hash collisions. +// // TODO(https://crbug.com/boringssl/407): This should be const and thread-safe // but currently is neither, notably if |name| was modified from its parsed // value. @@ -4413,18 +4438,6 @@ typedef struct DIST_POINT_NAME_st { // CRLDP_ALL_REASONS is an alias for all existing reasons #define CRLDP_ALL_REASONS 0x807f -#define CRL_REASON_NONE (-1) -#define CRL_REASON_UNSPECIFIED 0 -#define CRL_REASON_KEY_COMPROMISE 1 -#define CRL_REASON_CA_COMPROMISE 2 -#define CRL_REASON_AFFILIATION_CHANGED 3 -#define CRL_REASON_SUPERSEDED 4 -#define CRL_REASON_CESSATION_OF_OPERATION 5 -#define CRL_REASON_CERTIFICATE_HOLD 6 -#define CRL_REASON_REMOVE_FROM_CRL 8 -#define CRL_REASON_PRIVILEGE_WITHDRAWN 9 -#define CRL_REASON_AA_COMPROMISE 10 - struct DIST_POINT_st { DIST_POINT_NAME *distpoint; ASN1_BIT_STRING *reasons; diff --git a/include/openssl/x509v3.h b/include/openssl/x509v3.h index 80edd940e2..fef0703025 100644 --- a/include/openssl/x509v3.h +++ b/include/openssl/x509v3.h @@ -20,6 +20,30 @@ // However, due to conflicts, some deprecated symbols are defined here. #include + +// CRL reason constants. + +// TODO(davidben): These constants live here because strongswan defines +// conflicting symbols and has been relying on them only being defined in +// . Defining the constants in would break +// strongswan, but we would also like for new code to only need +// . Introduce properly namespaced versions of these constants +// and, separately, see if we can fix strongswan to similarly avoid the +// conflict. Between OpenSSL, strongswan, and wincrypt.h all defining these +// constants, it seems best for everyone to just avoid them going forward. +#define CRL_REASON_NONE (-1) +#define CRL_REASON_UNSPECIFIED 0 +#define CRL_REASON_KEY_COMPROMISE 1 +#define CRL_REASON_CA_COMPROMISE 2 +#define CRL_REASON_AFFILIATION_CHANGED 3 +#define CRL_REASON_SUPERSEDED 4 +#define CRL_REASON_CESSATION_OF_OPERATION 5 +#define CRL_REASON_CERTIFICATE_HOLD 6 +#define CRL_REASON_REMOVE_FROM_CRL 8 +#define CRL_REASON_PRIVILEGE_WITHDRAWN 9 +#define CRL_REASON_AA_COMPROMISE 10 + + // Deprecated constants. // The following constants are legacy aliases for |X509v3_KU_*|. They are diff --git a/sources.cmake b/sources.cmake index ba6789ddbb..48e808b511 100644 --- a/sources.cmake +++ b/sources.cmake @@ -78,6 +78,7 @@ set( crypto/fipsmodule/ec/p256-nistz_tests.txt crypto/fipsmodule/ecdsa/ecdsa_sign_tests.txt crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt + crypto/fipsmodule/kdf/test/kbkdf_counter.txt crypto/fipsmodule/kdf/test/sskdf.txt crypto/fipsmodule/modes/gcm_tests.txt crypto/fipsmodule/rand/ctrdrbg_vectors.txt @@ -93,6 +94,8 @@ set( crypto/kyber/kat/kyber768r3.txt crypto/kyber/kat/kyber1024r3.txt crypto/ml_kem/kat/mlkem512ipd.txt + crypto/ml_kem/kat/mlkem768ipd.txt + crypto/ml_kem/kat/mlkem1024ipd.txt crypto/ocsp/test/aws/ocsp_request.der crypto/ocsp/test/aws/ocsp_request_attached_cert.der crypto/ocsp/test/aws/ocsp_request_no_nonce.der @@ -186,6 +189,8 @@ set( crypto/ocsp/test/ISIC_D2_Issuer_Root.pem crypto/ocsp/test/ISIC_D3_Issuer_Root.pem crypto/pkcs8/test/empty_password.p12 + crypto/pkcs8/test/empty_password_ber.p12 + crypto/pkcs8/test/empty_password_ber_nested.p12 crypto/pkcs8/test/no_encryption.p12 crypto/pkcs8/test/nss.p12 crypto/pkcs8/test/null_password.p12 diff --git a/ssl/CMakeLists.txt b/ssl/CMakeLists.txt index 3863ae0772..2e90a885fa 100644 --- a/ssl/CMakeLists.txt +++ b/ssl/CMakeLists.txt @@ -73,6 +73,7 @@ if(BUILD_TESTING) boringssl_gtest_main ssl ) target_include_directories(${INTEGRATION_TEST_EXEC} BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include) add_dependencies(all_tests ${INTEGRATION_TEST_EXEC}) + set_test_location(${INTEGRATION_TEST_EXEC}) add_executable( ${SSL_TEST_EXEC} @@ -83,6 +84,7 @@ if(BUILD_TESTING) ) target_link_libraries(${SSL_TEST_EXEC} boringssl_gtest_main ssl) + set_test_location(${SSL_TEST_EXEC}) target_include_directories(${SSL_TEST_EXEC} BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include) diff --git a/ssl/test/runner/cipher_suites.go b/ssl/test/runner/cipher_suites.go index 8a562e075e..5db57498be 100644 --- a/ssl/test/runner/cipher_suites.go +++ b/ssl/test/runner/cipher_suites.go @@ -84,7 +84,7 @@ type cipherSuite struct { ka func(version uint16) keyAgreement // flags is a bitmask of the suite* values, above. flags int - cipher func(key, iv []byte, isRead bool) any + cipher func(key, iv []byte, isRead bool) interface{} mac func(version uint16, macKey []byte) macFunction aead func(version uint16, key, fixedNonce []byte) *tlsAead } @@ -155,11 +155,11 @@ func ivLen3DES(vers uint16) int { type nullCipher struct{} -func cipherNull(key, iv []byte, isRead bool) any { +func cipherNull(key, iv []byte, isRead bool) interface{} { return nullCipher{} } -func cipher3DES(key, iv []byte, isRead bool) any { +func cipher3DES(key, iv []byte, isRead bool) interface{} { block, _ := des.NewTripleDESCipher(key) if isRead { return cipher.NewCBCDecrypter(block, iv) @@ -167,7 +167,7 @@ func cipher3DES(key, iv []byte, isRead bool) any { return cipher.NewCBCEncrypter(block, iv) } -func cipherAES(key, iv []byte, isRead bool) any { +func cipherAES(key, iv []byte, isRead bool) interface{} { block, _ := aes.NewCipher(key) if isRead { return cipher.NewCBCDecrypter(block, iv) diff --git a/ssl/test/runner/common.go b/ssl/test/runner/common.go index 85305dde56..5b251f7178 100644 --- a/ssl/test/runner/common.go +++ b/ssl/test/runner/common.go @@ -2234,11 +2234,11 @@ type lruSessionCache struct { type lruSessionCacheEntry struct { sessionKey string - state any + state interface{} } // Put adds the provided (sessionKey, cs) pair to the cache. -func (c *lruSessionCache) Put(sessionKey string, cs any) { +func (c *lruSessionCache) Put(sessionKey string, cs interface{}) { c.Lock() defer c.Unlock() @@ -2266,7 +2266,7 @@ func (c *lruSessionCache) Put(sessionKey string, cs any) { // Get returns the value associated with a given key. It returns (nil, // false) if no value is found. -func (c *lruSessionCache) Get(sessionKey string) (any, bool) { +func (c *lruSessionCache) Get(sessionKey string) (interface{}, bool) { c.Lock() defer c.Unlock() @@ -2380,7 +2380,7 @@ func initDefaultCipherSuites() { } } -func unexpectedMessageError(wanted, got any) error { +func unexpectedMessageError(wanted, got interface{}) error { return fmt.Errorf("tls: received unexpected handshake message of type %T when waiting for %T", got, wanted) } diff --git a/ssl/test/runner/conn.go b/ssl/test/runner/conn.go index 1507ae6b22..bef390bdec 100644 --- a/ssl/test/runner/conn.go +++ b/ssl/test/runner/conn.go @@ -176,13 +176,13 @@ type halfConn struct { version uint16 // protocol version wireVersion uint16 // wire version isDTLS bool - cipher any // cipher algorithm + cipher interface{} // cipher algorithm mac macFunction seq [8]byte // 64-bit sequence number outSeq [8]byte // Mapped sequence number bfree *block // list of free blocks - nextCipher any // next encryption state + nextCipher interface{} // next encryption state nextMac macFunction // next MAC algorithm nextSeq [6]byte // next epoch's starting sequence number in DTLS @@ -209,7 +209,7 @@ func (hc *halfConn) error() error { // prepareCipherSpec sets the encryption and MAC states // that a subsequent changeCipherSpec will use. -func (hc *halfConn) prepareCipherSpec(version uint16, cipher any, mac macFunction) { +func (hc *halfConn) prepareCipherSpec(version uint16, cipher interface{}, mac macFunction) { hc.wireVersion = version protocolVersion, ok := wireToVersion(version, hc.isDTLS) if !ok { @@ -1343,7 +1343,7 @@ func (c *Conn) doReadHandshake() ([]byte, error) { // readHandshake reads the next handshake message from // the record layer. // c.in.Mutex < L; c.out.Mutex < L. -func (c *Conn) readHandshake() (any, error) { +func (c *Conn) readHandshake() (interface{}, error) { data, err := c.doReadHandshake() if err != nil { return nil, err diff --git a/ssl/test/runner/handshake_client.go b/ssl/test/runner/handshake_client.go index 0f913bf4b1..9010d1da3d 100644 --- a/ssl/test/runner/handshake_client.go +++ b/ssl/test/runner/handshake_client.go @@ -936,7 +936,7 @@ func (hs *clientHandshakeState) encryptClientHello(hello, innerHello *clientHell return nil } -func (hs *clientHandshakeState) checkECHConfirmation(msg any, hello *clientHelloMsg, finishedHash *finishedHash) bool { +func (hs *clientHandshakeState) checkECHConfirmation(msg interface{}, hello *clientHelloMsg, finishedHash *finishedHash) bool { var offset int var raw, label []byte if hrr, ok := msg.(*helloRetryRequestMsg); ok { @@ -961,7 +961,7 @@ func (hs *clientHandshakeState) checkECHConfirmation(msg any, hello *clientHello return bytes.Equal(confirmation, raw[offset:offset+echAcceptConfirmationLength]) } -func (hs *clientHandshakeState) doTLS13Handshake(msg any) error { +func (hs *clientHandshakeState) doTLS13Handshake(msg interface{}) error { c := hs.c // The first message may be a ServerHello or HelloRetryRequest. @@ -1919,7 +1919,7 @@ func (hs *clientHandshakeState) establishKeys() error { clientMAC, serverMAC, clientKey, serverKey, clientIV, serverIV := keysFromMasterSecret(c.vers, hs.suite, hs.masterSecret, hs.hello.random, hs.serverHello.random, hs.suite.macLen, hs.suite.keyLen, hs.suite.ivLen(c.vers)) - var clientCipher, serverCipher any + var clientCipher, serverCipher interface{} var clientHash, serverHash macFunction if hs.suite.cipher != nil { clientCipher = hs.suite.cipher(clientKey, clientIV, false /* not for reading */) diff --git a/ssl/test/runner/handshake_server.go b/ssl/test/runner/handshake_server.go index 3eb930ccd5..7c3b587ab3 100644 --- a/ssl/test/runner/handshake_server.go +++ b/ssl/test/runner/handshake_server.go @@ -2115,7 +2115,7 @@ func (hs *serverHandshakeState) establishKeys() error { clientMAC, serverMAC, clientKey, serverKey, clientIV, serverIV := keysFromMasterSecret(c.vers, hs.suite, hs.masterSecret, hs.clientHello.random, hs.hello.random, hs.suite.macLen, hs.suite.keyLen, hs.suite.ivLen(c.vers)) - var clientCipher, serverCipher any + var clientCipher, serverCipher interface{} var clientHash, serverHash macFunction if hs.suite.aead == nil { diff --git a/ssl/test/runner/prf.go b/ssl/test/runner/prf.go index 4cdc7c8c0b..1bf3667c63 100644 --- a/ssl/test/runner/prf.go +++ b/ssl/test/runner/prf.go @@ -452,7 +452,7 @@ var ( // deriveTrafficAEAD derives traffic keys and constructs an AEAD given a traffic // secret. -func deriveTrafficAEAD(version uint16, suite *cipherSuite, secret []byte, side trafficDirection) any { +func deriveTrafficAEAD(version uint16, suite *cipherSuite, secret []byte, side trafficDirection) interface{} { key := hkdfExpandLabel(suite.hash(), secret, keyTLS13, nil, suite.keyLen) iv := hkdfExpandLabel(suite.hash(), secret, ivTLS13, nil, suite.ivLen(version)) diff --git a/ssl/test/runner/sign.go b/ssl/test/runner/sign.go index 70541a1ec1..da6452ac00 100644 --- a/ssl/test/runner/sign.go +++ b/ssl/test/runner/sign.go @@ -272,7 +272,7 @@ func (e *ed25519Signer) verifyMessage(key crypto.PublicKey, msg, sig []byte) err return nil } -func getSigner(version uint16, key any, config *Config, sigAlg signatureAlgorithm, isVerify bool) (signer, error) { +func getSigner(version uint16, key interface{}, config *Config, sigAlg signatureAlgorithm, isVerify bool) (signer, error) { // TLS 1.1 and below use legacy signature algorithms. if version < VersionTLS12 || (!isVerify && config.Bugs.AlwaysSignAsLegacyVersion) { if config.Bugs.SigningAlgorithmForLegacyVersions == 0 || isVerify { diff --git a/tests/ci/cdk/cdk/aws_lc_analytics_stack.py b/tests/ci/cdk/cdk/aws_lc_analytics_stack.py index d8f847fbf6..216c33e4db 100644 --- a/tests/ci/cdk/cdk/aws_lc_analytics_stack.py +++ b/tests/ci/cdk/cdk/aws_lc_analytics_stack.py @@ -55,4 +55,4 @@ def __init__(self, build_spec=BuildSpecLoader.load(spec_file_path)) analytics.enable_batch_builds() - PruneStaleGitHubBuilds(scope=self, id="PruneStaleGitHubBuilds", project=analytics) + PruneStaleGitHubBuilds(scope=self, id="PruneStaleGitHubBuilds", project=analytics, ec2_permissions=False) diff --git a/tests/ci/cdk/cdk/aws_lc_android_ci_stack.py b/tests/ci/cdk/cdk/aws_lc_android_ci_stack.py index f72a325c9b..9a3fc00a61 100644 --- a/tests/ci/cdk/cdk/aws_lc_android_ci_stack.py +++ b/tests/ci/cdk/cdk/aws_lc_android_ci_stack.py @@ -65,4 +65,4 @@ def __init__(self, build_spec=BuildSpecLoader.load(spec_file_path)) project.enable_batch_builds() - PruneStaleGitHubBuilds(scope=self, id="PruneStaleGitHubBuilds", project=project) + PruneStaleGitHubBuilds(scope=self, id="PruneStaleGitHubBuilds", project=project, ec2_permissions=False) diff --git a/tests/ci/cdk/cdk/aws_lc_ec2_test_framework_ci_stack.py b/tests/ci/cdk/cdk/aws_lc_ec2_test_framework_ci_stack.py index 6bdc980d57..0dccf5b02a 100644 --- a/tests/ci/cdk/cdk/aws_lc_ec2_test_framework_ci_stack.py +++ b/tests/ci/cdk/cdk/aws_lc_ec2_test_framework_ci_stack.py @@ -108,7 +108,7 @@ def __init__(self, }) project.enable_batch_builds() - PruneStaleGitHubBuilds(scope=self, id="PruneStaleGitHubBuilds", project=project) + PruneStaleGitHubBuilds(scope=self, id="PruneStaleGitHubBuilds", project=project, ec2_permissions=True) # Define logs for SSM. log_group_name = "{}-cw-logs".format(id) diff --git a/tests/ci/cdk/cdk/aws_lc_github_ci_stack.py b/tests/ci/cdk/cdk/aws_lc_github_ci_stack.py index ac55714e79..f3a262af3d 100644 --- a/tests/ci/cdk/cdk/aws_lc_github_ci_stack.py +++ b/tests/ci/cdk/cdk/aws_lc_github_ci_stack.py @@ -84,4 +84,4 @@ def __init__(self, cfn_project.add_property_override("ResourceAccessRole", resource_access_role.role_arn) project.enable_batch_builds() - PruneStaleGitHubBuilds(scope=self, id="PruneStaleGitHubBuilds", project=project) + PruneStaleGitHubBuilds(scope=self, id="PruneStaleGitHubBuilds", project=project, ec2_permissions=False) diff --git a/tests/ci/cdk/cdk/aws_lc_github_fuzz_ci_stack.py b/tests/ci/cdk/cdk/aws_lc_github_fuzz_ci_stack.py index d99cc4532d..6f6e2d4d06 100644 --- a/tests/ci/cdk/cdk/aws_lc_github_fuzz_ci_stack.py +++ b/tests/ci/cdk/cdk/aws_lc_github_fuzz_ci_stack.py @@ -128,4 +128,4 @@ def __init__(self, "Type": "EFS" }]) - PruneStaleGitHubBuilds(scope=self, id="PruneStaleGitHubBuilds", project=fuzz_codebuild) + PruneStaleGitHubBuilds(scope=self, id="PruneStaleGitHubBuilds", project=fuzz_codebuild, ec2_permissions=False) diff --git a/tests/ci/cdk/cdk/bm_framework_stack.py b/tests/ci/cdk/cdk/bm_framework_stack.py index d465ea2a27..c9a880ab45 100644 --- a/tests/ci/cdk/cdk/bm_framework_stack.py +++ b/tests/ci/cdk/cdk/bm_framework_stack.py @@ -71,7 +71,7 @@ def __init__(self, build_spec=BuildSpecLoader.load(spec_file_path)) project.enable_batch_builds() - PruneStaleGitHubBuilds(scope=self, id="PruneStaleGitHubBuilds", project=project) + PruneStaleGitHubBuilds(scope=self, id="PruneStaleGitHubBuilds", project=project, ec2_permissions=False) # use boto3 to determine if a cloudwatch logs group with the name we want exists, and if it doesn't, create it logs_client = boto3.client('logs', region_name=AWS_REGION) diff --git a/tests/ci/cdk/cdk/codebuild/ec2_test_framework_omnibus.yaml b/tests/ci/cdk/cdk/codebuild/ec2_test_framework_omnibus.yaml index 88d617ed26..315273f6dc 100644 --- a/tests/ci/cdk/cdk/codebuild/ec2_test_framework_omnibus.yaml +++ b/tests/ci/cdk/cdk/codebuild/ec2_test_framework_omnibus.yaml @@ -7,7 +7,7 @@ version: 0.2 batch: build-list: # Actual tests are ran on an Graviton2 ec2 instance via SSM Commands. - - identifier: graviton2_tests + - identifier: graviton2_tests_asan buildspec: ./tests/ci/codebuild/common/run_ec2_target.yml env: type: LINUX_CONTAINER @@ -18,3 +18,44 @@ batch: EC2_AMI: "ami-0c29a2c5cf69b5a9c" EC2_INSTANCE_TYPE: "c6g.2xlarge" ECR_DOCKER_TAG: "amazonlinux-2023_clang-15x_sanitizer" + TARGET_TEST_SCRIPT: "./tests/ci/run_posix_sanitizers.sh" + + - identifier: graviton2_tests_fips + buildspec: ./tests/ci/codebuild/common/run_ec2_target.yml + env: + type: LINUX_CONTAINER + privileged-mode: false + compute-type: BUILD_GENERAL1_SMALL + image: 620771051181.dkr.ecr.us-west-2.amazonaws.com/aws-lc-docker-images-linux-x86:ubuntu-20.04_clang-7x-bm-framework_latest + variables: + EC2_AMI: "ami-0c29a2c5cf69b5a9c" + EC2_INSTANCE_TYPE: "c6g.2xlarge" + ECR_DOCKER_TAG: "amazonlinux-2023_clang-15x_sanitizer" + TARGET_TEST_SCRIPT: "./tests/ci/run_fips_tests.sh" + + # Actual tests are ran on an Graviton4 ec2 instance via SSM Commands. + - identifier: graviton4_tests_asan + buildspec: ./tests/ci/codebuild/common/run_ec2_target.yml + env: + type: LINUX_CONTAINER + privileged-mode: false + compute-type: BUILD_GENERAL1_SMALL + image: 620771051181.dkr.ecr.us-west-2.amazonaws.com/aws-lc-docker-images-linux-x86:ubuntu-20.04_clang-7x-bm-framework_latest + variables: + EC2_AMI: "ami-0c29a2c5cf69b5a9c" + EC2_INSTANCE_TYPE: "r8g.2xlarge" + ECR_DOCKER_TAG: "amazonlinux-2023_clang-15x_sanitizer" + TARGET_TEST_SCRIPT: "./tests/ci/run_posix_sanitizers.sh" + + - identifier: graviton4_tests_fips + buildspec: ./tests/ci/codebuild/common/run_ec2_target.yml + env: + type: LINUX_CONTAINER + privileged-mode: false + compute-type: BUILD_GENERAL1_SMALL + image: 620771051181.dkr.ecr.us-west-2.amazonaws.com/aws-lc-docker-images-linux-x86:ubuntu-20.04_clang-7x-bm-framework_latest + variables: + EC2_AMI: "ami-0c29a2c5cf69b5a9c" + EC2_INSTANCE_TYPE: "r8g.2xlarge" + ECR_DOCKER_TAG: "amazonlinux-2023_clang-15x_sanitizer" + TARGET_TEST_SCRIPT: "./tests/ci/run_fips_tests.sh" diff --git a/tests/ci/cdk/cdk/components.py b/tests/ci/cdk/cdk/components.py index 58881bd495..8b1b9a4b57 100644 --- a/tests/ci/cdk/cdk/components.py +++ b/tests/ci/cdk/cdk/components.py @@ -4,11 +4,11 @@ aws_events as events, aws_events_targets as events_targets, aws_iam as iam, Duration from constructs import Construct -from util.metadata import GITHUB_REPO_OWNER, GITHUB_TOKEN_SECRET_NAME +from util.metadata import AWS_REGION, AWS_ACCOUNT, GITHUB_REPO_OWNER, GITHUB_TOKEN_SECRET_NAME class PruneStaleGitHubBuilds(Construct): - def __init__(self, scope: Construct, id: str, *, project: codebuild.IProject) -> None: + def __init__(self, scope: Construct, id: str, *, project: codebuild.IProject, ec2_permissions: bool) -> None: super().__init__(scope, id) github_token_secret = sm.Secret.from_secret_name_v2(scope=self, @@ -36,12 +36,33 @@ def __init__(self, scope: Construct, id: str, *, project: codebuild.IProject) -> actions=[ "codebuild:BatchGetBuildBatches", "codebuild:ListBuildBatchesForProject", - "codebuild:StopBuildBatch", + "codebuild:StopBuildBatch" ], resources=[project.project_arn])) + if ec2_permissions: + lambda_function.add_to_role_policy( + iam.PolicyStatement(effect=iam.Effect.ALLOW, + actions=[ + "ec2:TerminateInstances", + ], + resources=["arn:aws:ec2:{}:{}:instance/*".format(AWS_REGION, AWS_ACCOUNT)], + conditions={ + "StringEquals": { + "ec2:ResourceTag/ec2-framework-host": "ec2-framework-host" + } + })) + # ec2:Describe* API actions do not support resource-level permissions. + lambda_function.add_to_role_policy( + iam.PolicyStatement(effect=iam.Effect.ALLOW, + actions=[ + "ec2:DescribeInstances", + ], + resources=["*"])) + + events.Rule(scope=self, id="PurgeEventRule", - description="Purge stale GitHub codebuild jobs (once per minute)", + description="Purge stale GitHub codebuild jobs and ec2 instances (once per minute)", enabled=True, schedule=events.Schedule.rate(Duration.minutes(1)), targets=[events_targets.LambdaFunction(handler=lambda_function)]) diff --git a/tests/ci/cdk/cdk/ssm/general_test_run_ssm_document.yaml b/tests/ci/cdk/cdk/ssm/general_test_run_ssm_document.yaml index 3fc27b763f..69503f5847 100644 --- a/tests/ci/cdk/cdk/ssm/general_test_run_ssm_document.yaml +++ b/tests/ci/cdk/cdk/ssm/general_test_run_ssm_document.yaml @@ -10,9 +10,12 @@ mainSteps: inputs: timeoutSeconds: '7200' runCommand: - # Fallback plan to shut down the ec2 instance in 60 minutes in case it's not terminated. + # TODO (P131897680): Parallelize the FIPS and sanitizer tests. The instance timeout can be lowered + # once we do so. + # + # Fallback plan to shut down the ec2 instance in 90 minutes in case it's not terminated. # Codebuild just "stops" the instance calling the script, so "trap cleanup" is not executed. - - shutdown -P +60 + - shutdown -P +90 - sudo -i - systemctl stop apt-daily.timer - export DEBIAN_FRONTEND=noninteractive @@ -56,13 +59,8 @@ mainSteps: # Check if container was spun up succesfully. Then run test scripts and check the output. - > if [ -n "$exec_docker" ]; then - chmod +x ./tests/ci/run_posix_sanitizers.sh - $exec_docker ./tests/ci/run_posix_sanitizers.sh - if [ $? != 0 ]; then - exit 1 - fi - chmod +x ./tests/ci/run_fips_tests.sh - $exec_docker ./tests/ci/run_fips_tests.sh + chmod +x {TARGET_TEST_SCRIPT} + $exec_docker {TARGET_TEST_SCRIPT} if [ $? != 0 ]; then exit 1 fi diff --git a/tests/ci/codebuild/common/run_ec2_target.yml b/tests/ci/codebuild/common/run_ec2_target.yml index bf2b6b9525..b702ed572e 100755 --- a/tests/ci/codebuild/common/run_ec2_target.yml +++ b/tests/ci/codebuild/common/run_ec2_target.yml @@ -10,4 +10,4 @@ env: phases: build: commands: - - ./tests/ci/run_ec2_test_framework.sh "${EC2_AMI}" "${EC2_INSTANCE_TYPE}" "${ECR_DOCKER_TAG}" + - ./tests/ci/run_ec2_test_framework.sh "${EC2_AMI}" "${EC2_INSTANCE_TYPE}" "${ECR_DOCKER_TAG}" "${TARGET_TEST_SCRIPT}" diff --git a/tests/ci/common_posix_setup.sh b/tests/ci/common_posix_setup.sh index 5b7ce7f7a6..25983d5835 100644 --- a/tests/ci/common_posix_setup.sh +++ b/tests/ci/common_posix_setup.sh @@ -203,6 +203,19 @@ function sde_getenforce_check { fi } +function build_openssl { + branch=$1 + echo "building OpenSSL ${branch}" + git clone --depth 1 --branch "${branch}" "${openssl_url}" "${scratch_folder}/openssl-${branch}" + pushd "${scratch_folder}/openssl-${branch}" + mkdir -p "${install_dir}/openssl-${branch}" + ./config --prefix="${install_dir}/openssl-${branch}" --openssldir="${install_dir}/openssl-${branch}" -d + make "-j${NUM_CPU_THREADS}" > /dev/null + make install_sw + popd + rm -rf "${scratch_folder}/openssl-${branch}" +} + print_executable_information "cmake" "--version" "CMake version" print_executable_information "cmake3" "--version" "CMake version (cmake3 executable)" print_executable_information "go" "version" "Go version" diff --git a/tests/ci/integration/openvpn_patch/aws-lc-openvpn-cert.patch b/tests/ci/integration/openvpn_patch/aws-lc-openvpn-cert.patch deleted file mode 100644 index 2449e1547a..0000000000 --- a/tests/ci/integration/openvpn_patch/aws-lc-openvpn-cert.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/src/openvpn/ssl_openssl.c b/src/openvpn/ssl_openssl.c -index 4383e981..985e8893 100644 ---- a/src/openvpn/ssl_openssl.c -+++ b/src/openvpn/ssl_openssl.c -@@ -1659,8 +1659,10 @@ tls_ctx_load_ca(struct tls_root_ctx *ctx, const char *ca_file, - sk_X509_INFO_pop_free(info_stack, X509_INFO_free); - } - -+ int cnum; - if (tls_server) - { -+ cnum = sk_X509_NAME_num(cert_names); - SSL_CTX_set_client_CA_list(ctx->ctx, cert_names); - } - -@@ -1673,7 +1675,6 @@ tls_ctx_load_ca(struct tls_root_ctx *ctx, const char *ca_file, - - if (tls_server) - { -- int cnum = sk_X509_NAME_num(cert_names); - if (cnum != added) - { - crypto_msg(M_FATAL, "Cannot load CA certificate file %s (only %d " diff --git a/tests/ci/integration/openvpn_patch/aws-lc-openvpn.patch b/tests/ci/integration/openvpn_patch/aws-lc-openvpn2-6-x.patch similarity index 54% rename from tests/ci/integration/openvpn_patch/aws-lc-openvpn.patch rename to tests/ci/integration/openvpn_patch/aws-lc-openvpn2-6-x.patch index 6328b11768..25e87f4832 100644 --- a/tests/ci/integration/openvpn_patch/aws-lc-openvpn.patch +++ b/tests/ci/integration/openvpn_patch/aws-lc-openvpn2-6-x.patch @@ -1,8 +1,17 @@ diff --git a/src/openvpn/crypto_openssl.c b/src/openvpn/crypto_openssl.c -index 50683b67..eef80d54 100644 +index fbc95ff7..e174ed76 100644 --- a/src/openvpn/crypto_openssl.c +++ b/src/openvpn/crypto_openssl.c -@@ -1460,7 +1460,12 @@ tls1_P_hash(const EVP_MD *md, const unsigned char *sec, +@@ -1398,7 +1398,7 @@ memcmp_constant_time(const void *a, const void *b, size_t size) + return CRYPTO_memcmp(a, b, size); + } + +-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) ++#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) && !defined(OPENSSL_IS_AWSLC) + bool + ssl_tls1_PRF(const uint8_t *seed, int seed_len, const uint8_t *secret, + int secret_len, uint8_t *output, int output_len) +@@ -1478,7 +1478,12 @@ tls1_P_hash(const EVP_MD *md, const unsigned char *sec, int ret = false; chunk = EVP_MD_size(md); @@ -29,10 +38,29 @@ index c9fa7196..a48ef391 100644 #endif diff --git a/src/openvpn/ssl_openssl.c b/src/openvpn/ssl_openssl.c -index 4383e981..bd2039d3 100644 +index 2595f878..cf99c3ec 100644 --- a/src/openvpn/ssl_openssl.c +++ b/src/openvpn/ssl_openssl.c -@@ -2314,7 +2314,7 @@ show_available_tls_ciphers_list(const char *cipher_list, +@@ -1658,8 +1658,10 @@ tls_ctx_load_ca(struct tls_root_ctx *ctx, const char *ca_file, + sk_X509_INFO_pop_free(info_stack, X509_INFO_free); + } + ++ int cnum; + if (tls_server) + { ++ cnum = sk_X509_NAME_num(cert_names); + SSL_CTX_set_client_CA_list(ctx->ctx, cert_names); + } + +@@ -1672,7 +1674,6 @@ tls_ctx_load_ca(struct tls_root_ctx *ctx, const char *ca_file, + + if (tls_server) + { +- int cnum = sk_X509_NAME_num(cert_names); + if (cnum != added) + { + crypto_msg(M_FATAL, "Cannot load CA certificate file %s (only %d " +@@ -2234,7 +2235,7 @@ show_available_tls_ciphers_list(const char *cipher_list, crypto_msg(M_FATAL, "Cannot create SSL object"); } diff --git a/tests/ci/integration/run_accp_integration.sh b/tests/ci/integration/run_accp_integration.sh new file mode 100755 index 0000000000..5b0eb7d3a1 --- /dev/null +++ b/tests/ci/integration/run_accp_integration.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 OR ISC +set -exu + +source tests/ci/common_posix_setup.sh + +# Assumes script is executed from the root of aws-lc directory +SCRATCH_FOLDER=${SRC_ROOT}/"scratch" +ACCP_SRC="${SCRATCH_FOLDER}/amazon-corretto-crypto-provider" + +function build_and_test_accp() { + pushd "${ACCP_SRC}" + export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") + export PATH=$JAVA_HOME/bin:$PATH + ./gradlew -DAWSLC_SRC_DIR="${SRC_ROOT}" -DAWSLC_GITVERSION="HEAD" test + popd +} + +# Make script execution idempotent. +mkdir -p "${SCRATCH_FOLDER}" +rm -rf "${SCRATCH_FOLDER:?}"/* +pushd "${SCRATCH_FOLDER}" + +git clone --depth 1 https://github.com/corretto/amazon-corretto-crypto-provider.git + +build_and_test_accp + +popd \ No newline at end of file diff --git a/tests/ci/integration/run_mysql_integration.sh b/tests/ci/integration/run_mysql_integration.sh index 82a69ccab3..cec4ca6149 100755 --- a/tests/ci/integration/run_mysql_integration.sh +++ b/tests/ci/integration/run_mysql_integration.sh @@ -6,7 +6,7 @@ set -exu source tests/ci/common_posix_setup.sh -MYSQL_VERSION_TAG="mysql-cluster-8.4.0" +MYSQL_VERSION_TAG="mysql-cluster-9.0.1" # This directory is specific to the docker image used. Use -DDOWNLOAD_BOOST=1 -DWITH_BOOST= # with mySQL to download a compatible boost version locally. BOOST_INSTALL_FOLDER=/home/dependencies/boost @@ -136,4 +136,3 @@ ldd "${MYSQL_BUILD_FOLDER}/lib/libmysqlharness_tls.so" | grep "${AWS_LC_INSTALL_ ldd "${MYSQL_BUILD_FOLDER}/lib/libmysqlrouter_routing.so" | grep "${AWS_LC_INSTALL_FOLDER}/lib/libcrypto.so" || exit 1 ldd "${MYSQL_BUILD_FOLDER}/lib/libmysqlrouter_routing.so" | grep "${AWS_LC_INSTALL_FOLDER}/lib/libssl.so" || exit 1 ldd "${MYSQL_BUILD_FOLDER}/lib/libmysqlrouter_http.so" | grep "${AWS_LC_INSTALL_FOLDER}/lib/libcrypto.so" || exit 1 -ldd "${MYSQL_BUILD_FOLDER}/lib/libmysqlrouter_http.so" | grep "${AWS_LC_INSTALL_FOLDER}/lib/libssl.so" || exit 1 diff --git a/tests/ci/integration/run_openvpn_integration.sh b/tests/ci/integration/run_openvpn_integration.sh new file mode 100755 index 0000000000..4f480c30ea --- /dev/null +++ b/tests/ci/integration/run_openvpn_integration.sh @@ -0,0 +1,82 @@ +#!/usr/bin/env bash +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 OR ISC + +set -exu + +source tests/ci/common_posix_setup.sh + +# Set up environment. + +# SYS_ROOT +# - SRC_ROOT(aws-lc) +# - SCRATCH_FOLDER +# - OPENVPN_SRC_FOLDER +# - AWS_LC_BUILD_FOLDER +# - AWS_LC_INSTALL_FOLDER + +# Assumes script is executed from the root of aws-lc directory +SCRATCH_FOLDER="${SRC_ROOT}/OPENVPN_BUILD_ROOT" +OPENVPN_SRC_FOLDER="${SCRATCH_FOLDER}/openvpn" +OPENVPN_BUILD_PREFIX="${OPENVPN_SRC_FOLDER}/build/install" +OPENVPN_BUILD_EPREFIX="${OPENVPN_SRC_FOLDER}/build/exec-install" +OPENVPN_PATCH_BUILD_FOLDER="${SRC_ROOT}/tests/ci/integration/openvpn_patch" + +AWS_LC_BUILD_FOLDER="${SCRATCH_FOLDER}/aws-lc-build" +AWS_LC_INSTALL_FOLDER="${SCRATCH_FOLDER}/aws-lc-install" + + +mkdir -p ${SCRATCH_FOLDER} +rm -rf "${SCRATCH_FOLDER:?}"/* +cd ${SCRATCH_FOLDER} + +function openvpn_build() { + autoreconf -ivf + + OPENSSL_CFLAGS="-I/${AWS_LC_INSTALL_FOLDER}/include" \ + OPENSSL_LIBS="-L/${AWS_LC_INSTALL_FOLDER}/lib -lssl -lcrypto" \ + ./configure \ + --prefix="$OPENVPN_BUILD_PREFIX" \ + --exec-prefix="$OPENVPN_BUILD_EPREFIX" \ + --with-crypto-library=openssl \ + --with-openssl-engine=no \ + --disable-management + + make -j install + + export LD_LIBRARY_PATH="${AWS_LC_INSTALL_FOLDER}/lib" + + local openvpn_executable="${OPENVPN_SRC_FOLDER}/build/exec-install/sbin/openvpn" + ldd ${openvpn_executable} \ + | grep "${AWS_LC_INSTALL_FOLDER}/lib/libcrypto.so" || exit 1 +} + +# TODO: Remove this when we make an upstream contribution. +function openvpn_patch_build() { + for patchfile in $(find -L "${OPENVPN_PATCH_BUILD_FOLDER}" -type f -name '*.patch'); do + echo "Apply patch $patchfile..." + patch -p1 --quiet -i "$patchfile" + done +} + +function openvpn_run_tests() { + # Explicitly running as sudo and passing in LD_LIBRARY_PATH as some OpenVPN + # tests run as sudo and LD_LIBRARY_PATH doesn't get inherited. + sudo LD_LIBRARY_PATH="${AWS_LC_INSTALL_FOLDER}/lib" make check +} + +git clone https://github.com/OpenVPN/openvpn.git ${OPENVPN_SRC_FOLDER} + +# anchoring to tip of minor release 2.6.x for OpenVPN, currently not compatible +# with tip of main +cd ${OPENVPN_SRC_FOLDER} && git checkout release/2.6 +mkdir -p ${AWS_LC_BUILD_FOLDER} ${AWS_LC_INSTALL_FOLDER} +ls + +aws_lc_build "$SRC_ROOT" "$AWS_LC_BUILD_FOLDER" "$AWS_LC_INSTALL_FOLDER" -DBUILD_TESTING=OFF -DBUILD_TOOL=OFF -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=1 + +# Build openvpn from source. +pushd ${OPENVPN_SRC_FOLDER} +openvpn_patch_build +openvpn_build +openvpn_run_tests diff --git a/tests/ci/integration/run_tcpdump_integration.sh b/tests/ci/integration/run_tcpdump_integration.sh index ab580f07a9..aff6346b9e 100755 --- a/tests/ci/integration/run_tcpdump_integration.sh +++ b/tests/ci/integration/run_tcpdump_integration.sh @@ -33,7 +33,8 @@ rm -rf "${SCRATCH_FOLDER:?}"/* pushd "${SCRATCH_FOLDER}" function tcpdump_build() { - git apply "${SCRIPT_DIR}/tcpdump_patch/aws-lc-tcpdump.patch" + # No patch currently needed. + # git apply "${SCRIPT_DIR}/tcpdump_patch/aws-lc-tcpdump.patch" autoreconf -fi ./configure --prefix="${TCPDUMP_INSTALL_FOLDER}" --with-crypto="${AWS_LC_INSTALL_FOLDER}" make -j "${NUM_CPU_THREADS}" install diff --git a/tests/ci/integration/tcpdump_patch/.gitkeep b/tests/ci/integration/tcpdump_patch/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/ci/integration/tcpdump_patch/aws-lc-tcpdump.patch b/tests/ci/integration/tcpdump_patch/aws-lc-tcpdump.patch deleted file mode 100644 index cb63f1c26a..0000000000 --- a/tests/ci/integration/tcpdump_patch/aws-lc-tcpdump.patch +++ /dev/null @@ -1,27 +0,0 @@ -From b4cb0cb3e12575240a1cb6a081e9ec4376d64f42 Mon Sep 17 00:00:00 2001 -From: Justin W Smith <103147162+justsmth@users.noreply.github.com> -Date: Fri, 8 Dec 2023 09:42:38 -0500 -Subject: [PATCH] Configure check for AES_cbc_encrypt - ---- - configure.ac | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 4e0dc2de..b215daf3 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -868,8 +868,8 @@ if test "$want_libcrypto" != "no"; then - # - AC_CHECK_HEADER(openssl/crypto.h, - [ -- AC_CHECK_LIB(crypto, DES_cbc_encrypt) -- if test "$ac_cv_lib_crypto_DES_cbc_encrypt" = "yes"; then -+ AC_CHECK_LIB(crypto, AES_cbc_encrypt) -+ if test "$ac_cv_lib_crypto_AES_cbc_encrypt" = "yes"; then - AC_CHECK_HEADERS(openssl/evp.h) - # - # OK, then: --- -2.39.2 (Apple Git-143) - diff --git a/tests/ci/integration/tpm2_tss_patch/aws-lc-tpm2-tss.patch b/tests/ci/integration/tpm2_tss_patch/aws-lc-tpm2-tss.patch index ac64950bfa..ed09447ae4 100644 --- a/tests/ci/integration/tpm2_tss_patch/aws-lc-tpm2-tss.patch +++ b/tests/ci/integration/tpm2_tss_patch/aws-lc-tpm2-tss.patch @@ -1,17 +1,8 @@ -From 0b702b55bfece6c2910ea065bf0dffa9c1e1008e Mon Sep 17 00:00:00 2001 -From: Juergen Repp -Date: Fri, 10 May 2024 19:15:37 +0200 -Subject: [PATCH] FAPI: Improve the error message for self signed EK - certificates. +From e867fd70195c99a5d2d0f39f8bc7d4641304a53a Mon Sep 17 00:00:00 2001 +From: Justin W Smith +Date: Thu, 11 Jul 2024 09:49:35 -0400 +Subject: [PATCH] aws-lc-tpm2-tss.patch -The error message -"curl_url_set for CURUPART_URL failed: Unsupported URL scheme" -was displayed if a self signed EK certificate was stored in the TPM. -Now a better error message is displayed to explain that FAPI can -be used if "ek_cert_less" is set to "yes" in the FAPI config file. -Addresses: #2833 - -Signed-off-by: Juergen Repp --- configure.ac | 6 ------ src/tss2-esys/esys_crypto_ossl.c | 2 +- @@ -37,23 +28,23 @@ index eb6051ea..7051e51c 100644 TSS2_ESYS_LDFLAGS_CRYPTO="$CRYPTO_LIBS" ], [test "x$with_crypto" = xmbed], [ diff --git a/src/tss2-esys/esys_crypto_ossl.c b/src/tss2-esys/esys_crypto_ossl.c -index 92625933..6b7166b4 100644 +index 15e534ce..75043897 100644 --- a/src/tss2-esys/esys_crypto_ossl.c +++ b/src/tss2-esys/esys_crypto_ossl.c -@@ -753,7 +753,7 @@ iesys_cryptossl_pk_encrypt(TPM2B_PUBLIC * pub_tpm_key, +@@ -752,7 +752,7 @@ iesys_cryptossl_pk_encrypt(TPM2B_PUBLIC * pub_tpm_key, "Could not duplicate OAEP label", cleanup); } -- if (1 != EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, label_copy, strlen(label_copy)+1)) { +- if (1 != EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, label_copy, (int) strlen(label_copy)+1)) { + if (1 != EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, (uint8_t*)label_copy, strlen(label_copy)+1)) { OPENSSL_free(label_copy); goto_error(r, TSS2_ESYS_RC_GENERAL_FAILURE, "Could not set RSA label.", cleanup); diff --git a/src/tss2-fapi/ifapi_curl.c b/src/tss2-fapi/ifapi_curl.c -index 35c04204..05839b86 100644 +index 18f4a9ff..d68450b8 100644 --- a/src/tss2-fapi/ifapi_curl.c +++ b/src/tss2-fapi/ifapi_curl.c -@@ -89,13 +89,13 @@ get_crl_from_cert(X509 *cert, X509_CRL **crl) +@@ -88,13 +88,13 @@ get_crl_from_cert(X509 *cert, X509_CRL **crl) int curl_rc; *crl = NULL; @@ -69,7 +60,7 @@ index 35c04204..05839b86 100644 { GENERAL_NAME *gen_name = sk_GENERAL_NAME_value(distpoint->name.fullname, j); ASN1_IA5STRING *asn1_str = gen_name->d.uniformResourceIdentifier; -@@ -172,7 +172,7 @@ ifapi_curl_verify_ek_cert( +@@ -171,7 +171,7 @@ ifapi_curl_verify_ek_cert( X509_STORE_CTX *ctx = NULL; X509_CRL *crl_intermed = NULL; X509_CRL *crl_ek = NULL; @@ -79,7 +70,7 @@ index 35c04204..05839b86 100644 AUTHORITY_INFO_ACCESS *info = NULL; ASN1_IA5STRING *uri = NULL; diff --git a/test/unit/fapi-eventlog.c b/test/unit/fapi-eventlog.c -index 995e9ebb..4de5408a 100644 +index 3b859e39..796894ee 100644 --- a/test/unit/fapi-eventlog.c +++ b/test/unit/fapi-eventlog.c @@ -130,6 +130,7 @@ check_eventlog_pcr0(const char *file, uint32_t *pcr_list, size_t pcr_list_size, @@ -123,5 +114,5 @@ index 995e9ebb..4de5408a 100644 skip(); #endif -- -2.39.3 (Apple Git-145) +2.43.0 diff --git a/tests/ci/lambda/Cargo.lock b/tests/ci/lambda/Cargo.lock index 3fbec9a434..7080254873 100644 --- a/tests/ci/lambda/Cargo.lock +++ b/tests/ci/lambda/Cargo.lock @@ -82,227 +82,241 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "aws-config" -version = "0.55.1" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd62464d1c4ad70f8b6cd693e7f30229f36bebdcdf3fce8c11803e1bdc0bc052" +checksum = "caf6cfe2881cb1fcbba9ae946fb9a6480d3b7a714ca84c74925014a89ef3387a" dependencies = [ "aws-credential-types", - "aws-http", + "aws-runtime", "aws-sdk-sso", + "aws-sdk-ssooidc", "aws-sdk-sts", "aws-smithy-async", - "aws-smithy-client", "aws-smithy-http", - "aws-smithy-http-tower", "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", "aws-smithy-types", "aws-types", "bytes", - "fastrand", + "fastrand 2.1.0", "hex", - "http", + "http 0.2.9", "hyper", - "ring", + "ring 0.17.8", "time", "tokio", - "tower", "tracing", + "url", "zeroize", ] [[package]] name = "aws-credential-types" -version = "0.55.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4232d3729eefc287adc0d5a8adc97b7d94eefffe6bbe94312cc86c7ab6b06ce" +checksum = "e16838e6c9e12125face1c1eff1343c75e3ff540de98ff7ebd61874a89bcfeb9" dependencies = [ "aws-smithy-async", + "aws-smithy-runtime-api", "aws-smithy-types", - "fastrand", - "tokio", - "tracing", "zeroize", ] [[package]] -name = "aws-endpoint" -version = "0.55.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f04ab03b3f1cca91f7cccaa213056d732accb14e2e65debfacc1d28627d162" +name = "aws-lc-ci-lambda" +version = "0.1.0" dependencies = [ - "aws-smithy-http", - "aws-smithy-types", - "aws-types", - "http", - "regex", - "tracing", + "aws-config", + "aws-sdk-codebuild", + "aws-sdk-ec2", + "aws-sdk-secretsmanager", + "env_logger", + "lambda_runtime", + "log", + "octocrab", + "serde_json", + "tokio", + "tokio-stream", ] [[package]] -name = "aws-http" -version = "0.55.1" +name = "aws-runtime" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ad8c53f7560baaf635b6aa811f3213d39b50555d100f83e43801652d4e318e" +checksum = "87c5f920ffd1e0526ec9e70e50bf444db50b204395a0fa7016bbf9e31ea1698f" dependencies = [ "aws-credential-types", + "aws-sigv4", + "aws-smithy-async", "aws-smithy-http", + "aws-smithy-runtime-api", "aws-smithy-types", "aws-types", "bytes", - "http", - "http-body", - "lazy_static", + "fastrand 2.1.0", + "http 0.2.9", + "http-body 0.4.5", "percent-encoding", "pin-project-lite", "tracing", + "uuid", ] [[package]] -name = "aws-lc-ci-lambda" -version = "0.1.0" +name = "aws-sdk-codebuild" +version = "1.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a16e29dd17ab98c0464ae2f9641f07cb150eab659455c248274a89fec2a53ea8" dependencies = [ - "aws-config", - "aws-sdk-codebuild", - "aws-sdk-secretsmanager", - "env_logger", - "lambda_runtime", - "log", - "octocrab", - "serde_json", - "tokio", - "tokio-stream", + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "http 0.2.9", + "once_cell", + "regex-lite", + "tracing", ] [[package]] -name = "aws-sdk-codebuild" -version = "0.26.0" +name = "aws-sdk-ec2" +version = "1.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be70472243a65c735a6705b87704cada9f9da2b528a0d6a1f7620183d81582a" +checksum = "91d145fb9e8ef6c783263d86d41d56c87b5e59b8ce28d9986de794a1ddfc42dc" dependencies = [ "aws-credential-types", - "aws-endpoint", - "aws-http", - "aws-sig-auth", + "aws-runtime", "aws-smithy-async", - "aws-smithy-client", "aws-smithy-http", - "aws-smithy-http-tower", "aws-smithy-json", + "aws-smithy-query", + "aws-smithy-runtime", + "aws-smithy-runtime-api", "aws-smithy-types", + "aws-smithy-xml", "aws-types", - "bytes", - "http", - "regex", - "tokio-stream", - "tower", + "fastrand 2.1.0", + "http 0.2.9", + "once_cell", + "regex-lite", "tracing", ] [[package]] name = "aws-sdk-secretsmanager" -version = "0.26.0" +version = "1.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5b95c594d44acf1e105642e71e59b9eed06b1a11f4e4bb0a52e37b8c4c27f25" +checksum = "c9d617a00db081815ef63137359e26819ad755464514ff2c67219189eaf6288c" dependencies = [ "aws-credential-types", - "aws-endpoint", - "aws-http", - "aws-sig-auth", + "aws-runtime", "aws-smithy-async", - "aws-smithy-client", "aws-smithy-http", - "aws-smithy-http-tower", "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", "aws-smithy-types", "aws-types", "bytes", - "fastrand", - "http", - "regex", - "tokio-stream", - "tower", + "fastrand 2.1.0", + "http 0.2.9", + "once_cell", + "regex-lite", "tracing", ] [[package]] name = "aws-sdk-sso" -version = "0.26.0" +version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143953d46f77a0b18480e7d8bb1a651080b9484e0bb94c27b8645eaeb3c3e231" +checksum = "fc3ef4ee9cdd19ec6e8b10d963b79637844bbf41c31177b77a188eaa941e69f7" dependencies = [ "aws-credential-types", - "aws-endpoint", - "aws-http", - "aws-sig-auth", + "aws-runtime", "aws-smithy-async", - "aws-smithy-client", "aws-smithy-http", - "aws-smithy-http-tower", "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", "aws-smithy-types", "aws-types", "bytes", - "http", - "regex", - "tokio-stream", - "tower", + "http 0.2.9", + "once_cell", + "regex-lite", "tracing", ] [[package]] -name = "aws-sdk-sts" -version = "0.26.0" +name = "aws-sdk-ssooidc" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7255c0d8053b89e8b5cdabb52e1dbf596e9968b1f45dce7a56b2cd57038fcfc9" +checksum = "527f3da450ea1f09f95155dba6153bd0d83fe0923344a12e1944dfa5d0b32064" dependencies = [ "aws-credential-types", - "aws-endpoint", - "aws-http", - "aws-sig-auth", + "aws-runtime", "aws-smithy-async", - "aws-smithy-client", "aws-smithy-http", - "aws-smithy-http-tower", "aws-smithy-json", - "aws-smithy-query", + "aws-smithy-runtime", + "aws-smithy-runtime-api", "aws-smithy-types", - "aws-smithy-xml", "aws-types", "bytes", - "http", - "regex", - "tower", + "http 0.2.9", + "once_cell", + "regex-lite", "tracing", ] [[package]] -name = "aws-sig-auth" -version = "0.55.1" +name = "aws-sdk-sts" +version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d77d879ab210e958ba65a6d3842969a596738c024989cd3e490cf9f9b560ec" +checksum = "94316606a4aa2cb7a302388411b8776b3fbd254e8506e2dc43918286d8212e9b" dependencies = [ "aws-credential-types", - "aws-sigv4", + "aws-runtime", + "aws-smithy-async", "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-query", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", "aws-types", - "http", + "http 0.2.9", + "once_cell", + "regex-lite", "tracing", ] [[package]] name = "aws-sigv4" -version = "0.55.1" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ab4eebc8ec484fb9eab04b15a5d1e71f3dc13bee8fdd2d9ed78bcd6ecbd7192" +checksum = "5df1b0fa6be58efe9d4ccc257df0a53b89cd8909e86591a13ca54817c87517be" dependencies = [ + "aws-credential-types", "aws-smithy-http", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", "form_urlencoded", "hex", "hmac", - "http", + "http 0.2.9", + "http 1.1.0", "once_cell", "percent-encoding", - "regex", "sha2", "time", "tracing", @@ -310,131 +324,143 @@ dependencies = [ [[package]] name = "aws-smithy-async" -version = "0.55.1" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88573bcfbe1dcfd54d4912846df028b42d6255cbf9ce07be216b1bbfd11fc4b9" +checksum = "62220bc6e97f946ddd51b5f1361f78996e704677afc518a4ff66b7a72ea1378c" dependencies = [ "futures-util", "pin-project-lite", "tokio", - "tokio-stream", -] - -[[package]] -name = "aws-smithy-client" -version = "0.55.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2f52352bae50d3337d5d6151b695d31a8c10ebea113eca5bead531f8301b067" -dependencies = [ - "aws-smithy-async", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-types", - "bytes", - "fastrand", - "http", - "http-body", - "hyper", - "hyper-rustls", - "lazy_static", - "pin-project-lite", - "rustls", - "tokio", - "tower", - "tracing", ] [[package]] name = "aws-smithy-http" -version = "0.55.1" +version = "0.60.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03bcc02d7ed9649d855c8ce4a735e9848d7b8f7568aad0504c158e3baa955df8" +checksum = "d9cd0ae3d97daa0a2bf377a4d8e8e1362cae590c4a1aad0d40058ebca18eb91e" dependencies = [ + "aws-smithy-runtime-api", "aws-smithy-types", "bytes", "bytes-utils", "futures-core", - "http", - "http-body", - "hyper", + "http 0.2.9", + "http-body 0.4.5", "once_cell", "percent-encoding", "pin-project-lite", "pin-utils", - "tokio", - "tokio-util", "tracing", ] [[package]] -name = "aws-smithy-http-tower" -version = "0.55.1" +name = "aws-smithy-json" +version = "0.60.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da88b3a860f65505996c29192d800f1aeb9480440f56d63aad33a3c12045017a" +checksum = "4683df9469ef09468dad3473d129960119a0d3593617542b7d52086c8486f2d6" dependencies = [ - "aws-smithy-http", "aws-smithy-types", - "bytes", - "http", - "http-body", - "pin-project-lite", - "tower", - "tracing", ] [[package]] -name = "aws-smithy-json" -version = "0.55.1" +name = "aws-smithy-query" +version = "0.60.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b0c1e87d75cac889dca2a7f5ba280da2cde8122448e7fec1d614194dfa00c70" +checksum = "f2fbd61ceb3fe8a1cb7352e42689cec5335833cd9f94103a61e98f9bb61c64bb" dependencies = [ "aws-smithy-types", + "urlencoding", ] [[package]] -name = "aws-smithy-query" -version = "0.55.1" +name = "aws-smithy-runtime" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6b50d15f446c19e088009ecb00e2fb2d13133d6fe1db702e9aa67ad135bf6a6" +checksum = "ce87155eba55e11768b8c1afa607f3e864ae82f03caf63258b37455b0ad02537" dependencies = [ + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-runtime-api", "aws-smithy-types", - "urlencoding", + "bytes", + "fastrand 2.1.0", + "h2", + "http 0.2.9", + "http-body 0.4.5", + "http-body 1.0.1", + "httparse", + "hyper", + "hyper-rustls", + "once_cell", + "pin-project-lite", + "pin-utils", + "rustls", + "tokio", + "tracing", +] + +[[package]] +name = "aws-smithy-runtime-api" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30819352ed0a04ecf6a2f3477e344d2d1ba33d43e0f09ad9047c12e0d923616f" +dependencies = [ + "aws-smithy-async", + "aws-smithy-types", + "bytes", + "http 0.2.9", + "http 1.1.0", + "pin-project-lite", + "tokio", + "tracing", + "zeroize", ] [[package]] name = "aws-smithy-types" -version = "0.55.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0afc731fd1417d791f9145a1e0c30e23ae0beaab9b4814017708ead2fc20f1" +checksum = "cfe321a6b21f5d8eabd0ade9c55d3d0335f3c3157fc2b3e87f05f34b539e4df5" dependencies = [ "base64-simd", + "bytes", + "bytes-utils", + "futures-core", + "http 0.2.9", + "http 1.1.0", + "http-body 0.4.5", + "http-body 1.0.1", + "http-body-util", "itoa", "num-integer", + "pin-project-lite", + "pin-utils", "ryu", + "serde", "time", + "tokio", + "tokio-util", ] [[package]] name = "aws-smithy-xml" -version = "0.55.1" +version = "0.60.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b5398c1c25dfc6f8c282b1552a66aa807c9d6e15e1b3a84b94aa44e7859bec3" +checksum = "d123fbc2a4adc3c301652ba8e149bf4bc1d1725affb9784eb20c953ace06bf55" dependencies = [ "xmlparser", ] [[package]] name = "aws-types" -version = "0.55.1" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9b082e329d9a304d39e193ad5c7ab363a0d6507aca6965e0673a746686fb0cc" +checksum = "5221b91b3e441e6675310829fd8984801b772cb1546ef6c0e54dec9f1ac13fef" dependencies = [ "aws-credential-types", "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", + "aws-smithy-runtime-api", "aws-smithy-types", - "http", "rustc_version", "tracing", ] @@ -515,9 +541,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.79" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "324c74f2155653c90b04f25b2a47a8a631360cb908f92a772695f430c7e31052" [[package]] name = "cfg-if" @@ -702,6 +728,12 @@ dependencies = [ "instant", ] +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + [[package]] name = "fnv" version = "1.0.7" @@ -749,9 +781,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -759,9 +791,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" @@ -776,15 +808,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-macro" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", @@ -793,21 +825,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", @@ -831,6 +863,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + [[package]] name = "gimli" version = "0.27.2" @@ -848,7 +891,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", + "http 0.2.9", "indexmap", "slab", "tokio", @@ -909,6 +952,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.5" @@ -916,7 +970,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", - "http", + "http 0.2.9", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", "pin-project-lite", ] @@ -949,8 +1026,8 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", - "http-body", + "http 0.2.9", + "http-body 0.4.5", "httparse", "httpdate", "itoa", @@ -964,11 +1041,12 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.23.2" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ - "http", + "futures-util", + "http 0.2.9", "hyper", "log", "rustls", @@ -1095,7 +1173,7 @@ checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ "base64 0.21.0", "pem", - "ring", + "ring 0.16.20", "serde", "serde_json", "simple_asn1", @@ -1110,7 +1188,7 @@ dependencies = [ "async-stream", "bytes", "futures", - "http", + "http 0.2.9", "hyper", "lambda_runtime_api_client", "serde", @@ -1127,7 +1205,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "690c5ae01f3acac8c9c3348b556fc443054e9b7f1deaf53e9ebab716282bf0ed" dependencies = [ - "http", + "http 0.2.9", "hyper", "tokio", "tower-service", @@ -1141,9 +1219,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.142" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "link-cplusplus" @@ -1306,9 +1384,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.1" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" @@ -1438,9 +1516,9 @@ checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" [[package]] name = "proc-macro2" -version = "1.0.56" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] @@ -1483,6 +1561,12 @@ dependencies = [ "regex-syntax", ] +[[package]] +name = "regex-lite" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" + [[package]] name = "regex-syntax" version = "0.7.1" @@ -1501,8 +1585,8 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", - "http-body", + "http 0.2.9", + "http-body 0.4.5", "hyper", "hyper-tls", "ipnet", @@ -1535,12 +1619,27 @@ dependencies = [ "cc", "libc", "once_cell", - "spin", - "untrusted", + "spin 0.5.2", + "untrusted 0.7.1", "web-sys", "winapi", ] +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + [[package]] name = "rustc-demangle" version = "0.1.23" @@ -1572,14 +1671,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.8" +version = "0.21.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", - "ring", + "ring 0.17.8", + "rustls-webpki", "sct", - "webpki", ] [[package]] @@ -1603,6 +1702,16 @@ dependencies = [ "base64 0.21.0", ] +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + [[package]] name = "ryu" version = "1.0.13" @@ -1636,8 +1745,8 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ - "ring", - "untrusted", + "ring 0.16.20", + "untrusted 0.7.1", ] [[package]] @@ -1816,6 +1925,12 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + [[package]] name = "subtle" version = "2.4.1" @@ -1851,7 +1966,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" dependencies = [ "cfg-if", - "fastrand", + "fastrand 1.9.0", "redox_syscall 0.3.5", "rustix", "windows-sys 0.45.0", @@ -1970,13 +2085,12 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.23.4" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ "rustls", "tokio", - "webpki", ] [[package]] @@ -2014,7 +2128,6 @@ dependencies = [ "futures-util", "pin-project", "pin-project-lite", - "tokio", "tower-layer", "tower-service", "tracing", @@ -2109,6 +2222,12 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.3.1" @@ -2127,6 +2246,12 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9" +[[package]] +name = "uuid" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" + [[package]] name = "vcpkg" version = "0.2.15" @@ -2237,16 +2362,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "winapi" version = "0.3.9" @@ -2320,6 +2435,15 @@ dependencies = [ "windows-targets 0.48.0", ] +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -2350,6 +2474,22 @@ dependencies = [ "windows_x86_64_msvc 0.48.0", ] +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -2362,6 +2502,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -2374,6 +2520,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -2386,6 +2538,18 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -2398,6 +2562,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -2410,6 +2580,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -2422,6 +2598,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -2434,6 +2616,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + [[package]] name = "winreg" version = "0.10.1" diff --git a/tests/ci/lambda/Cargo.toml b/tests/ci/lambda/Cargo.toml index 62792f4842..8cc31631d7 100644 --- a/tests/ci/lambda/Cargo.toml +++ b/tests/ci/lambda/Cargo.toml @@ -7,9 +7,10 @@ publish = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -aws-config = "0.55.1" -aws-sdk-codebuild = "0.26.0" -aws-sdk-secretsmanager = "0.26.0" +aws-config = "1.1.7" +aws-sdk-codebuild = "1.44.0" +aws-sdk-ec2 = "1.59.0" +aws-sdk-secretsmanager = "1.39.0" lambda_runtime = "0.8.0" log = "0.4.17" env_logger = "0.10.0" diff --git a/tests/ci/lambda/src/bin/purge-stale-builds.rs b/tests/ci/lambda/src/bin/purge-stale-builds.rs index f69306c291..211178eb35 100644 --- a/tests/ci/lambda/src/bin/purge-stale-builds.rs +++ b/tests/ci/lambda/src/bin/purge-stale-builds.rs @@ -1,10 +1,11 @@ +use aws_config::BehaviorVersion; use std::collections::HashMap; use std::time::{SystemTime, UNIX_EPOCH}; -use aws_sdk_codebuild::{types::BuildBatchFilter, Client}; +use aws_sdk_codebuild::types::BuildBatchFilter; +use aws_sdk_ec2::types::Filter; use lambda_runtime::{service_fn, Error, LambdaEvent}; use serde_json::{json, Value}; -use tokio_stream::StreamExt; #[tokio::main] async fn main() -> Result<(), Error> { @@ -18,7 +19,10 @@ async fn handle(_event: LambdaEvent) -> Result<(), Error> { let region_provider = aws_config::meta::region::RegionProviderChain::default_provider().or_else("us-west-2"); - let config = aws_config::from_env().region(region_provider).load().await; + let config = aws_config::defaults(BehaviorVersion::latest()) + .region(region_provider) + .load() + .await; let sm_client = aws_sdk_secretsmanager::Client::new(&config); @@ -32,7 +36,7 @@ async fn handle(_event: LambdaEvent) -> Result<(), Error> { let github = octocrab::initialise(octocrab::Octocrab::builder().personal_token(github_token)) .map_err(|e| format!("failed to build github client: {e}"))?; - let codebuild_client = Client::new(&config); + let codebuild_client = aws_sdk_codebuild::Client::new(&config); let project = std::env::var("CODEBUILD_PROJECT_NAME").unwrap(); @@ -59,6 +63,31 @@ async fn handle(_event: LambdaEvent) -> Result<(), Error> { .or_insert(builds); } + // Filters for aws-lc-ec2-test-framework specific hosts. + let ec2_client = aws_sdk_ec2::Client::new(&config); + let ec2_framework_filters = vec![ + Filter::builder() + .name("instance-state-name") + .values("running") + .build(), + Filter::builder() + .name("instance.group-name") + .values("codebuild_ec2_sg") + .build(), + Filter::builder() + .name("tag-key") + .values("ec-framework-commit-tag") + .build(), + ]; + + let ec2_describe_response = ec2_client + .describe_instances() + .set_filters(Some(ec2_framework_filters)) + .send() + .await + .map_err(|e| format!("No IAM Permissions to DescribeInstances: {}", e)); + + let mut ec2_terminated_instances: Vec = vec![]; let mut stopped_builds: u64 = 0; for (k, v) in pull_requests.iter() { @@ -69,7 +98,7 @@ async fn handle(_event: LambdaEvent) -> Result<(), Error> { .pulls(&github_repo_owner, "aws-lc") .get(*k) .await - .map_err(|e| format!("failed to retrieve GitHub pull requests: {}", e))?; + .map_err(|e| format!("failed to retrieve GitHub pull requests: {:?}", e))?; let commit: String = pull.head.sha; for cb in v.iter() { let build_id = cb.build(); @@ -78,6 +107,8 @@ async fn handle(_event: LambdaEvent) -> Result<(), Error> { continue; } let old_commit = cb.commit(); + + // Prune unneeded codebuild batches. log::info!("{build_id} pr/{k} at old head({old_commit}) will be canceled"); codebuild_client .stop_build_batch() @@ -86,9 +117,35 @@ async fn handle(_event: LambdaEvent) -> Result<(), Error> { .await .map_err(|e| format!("failed to stop_build_batch: {}", e))?; stopped_builds += 1; + + // Prune unneeded ec2 instances. + for reservation in ec2_describe_response.as_ref().unwrap().reservations() { + log::info!("Checking Instance {:?}", reservation.instances()); + for instance in reservation.instances() { + for tag in instance.tags() { + log::info!("Tag: {:?}", tag); + if tag.key().unwrap().to_string() == "ec-framework-commit-tag" + && tag.value().unwrap().to_string() == old_commit + { + ec2_terminated_instances + .push(instance.instance_id().unwrap().to_string()); + } + } + } + } } } + log::info!("Terminating instances {:?}", ec2_terminated_instances); + if !ec2_terminated_instances.is_empty() { + ec2_client + .terminate_instances() + .set_instance_ids(Some(ec2_terminated_instances.clone())) + .send() + .await + .map_err(|e| format!("failed to terminate hanging instances: {}", e))?; + } + let timestamp = SystemTime::now() .duration_since(UNIX_EPOCH) .unwrap() @@ -108,13 +165,19 @@ async fn handle(_event: LambdaEvent) -> Result<(), Error> { "Name": "PrunedGitHubBuilds", "Unit": "Count", "StorageResolution": 60 + }, + { + "Name": "TerminatedEC2Instances", + "Unit": "Count", + "StorageResolution": 60 } ] }], "Timestamp": timestamp }, "Project": &project, - "PrunedGitHubBuilds": stopped_builds + "PrunedGitHubBuilds": stopped_builds, + "TerminatedEC2Instances": ec2_terminated_instances.len() }) .to_string() ); @@ -158,7 +221,7 @@ impl CommitBuild { } async fn gather_pull_request_builds( - client: &Client, + client: &aws_sdk_codebuild::Client, builds: Vec, ) -> Result>, String> { let mut pull_requests: HashMap> = HashMap::new(); @@ -180,14 +243,12 @@ async fn gather_pull_request_builds( )); } - for bb in batch.unwrap().build_batches().unwrap_or_default() { + for bb in batch.unwrap().build_batches() { if bb.source().is_none() { continue; } let source = bb.source().unwrap(); - if source.r#type().is_none() - || source.r#type().unwrap().as_str() - != aws_sdk_codebuild::types::SourceType::Github.as_str() + if source.r#type().as_str() != aws_sdk_codebuild::types::SourceType::Github.as_str() || bb.source_version().is_none() || bb.resolved_source_version().is_none() { @@ -223,7 +284,7 @@ async fn gather_pull_request_builds( } async fn get_project_build_batches( - client: &Client, + client: &aws_sdk_codebuild::Client, project: String, ) -> Result, String> { let mut builds: Vec = vec![]; @@ -247,7 +308,7 @@ async fn get_project_build_batches( )); } - let mut ids = Vec::from(result.unwrap().ids().unwrap_or(&[])); + let mut ids = Vec::from(result.unwrap().ids()); builds.append(&mut ids); } diff --git a/tests/ci/run_benchmark_build_tests.sh b/tests/ci/run_benchmark_build_tests.sh index fb69b0402f..fcc9c15d1b 100755 --- a/tests/ci/run_benchmark_build_tests.sh +++ b/tests/ci/run_benchmark_build_tests.sh @@ -52,19 +52,6 @@ function build_aws_lc_branch { rm -rf "${scratch_folder}/aws-lc-${branch}" } -function build_openssl { - branch=$1 - echo "building OpenSSL ${branch}" - git clone --depth 1 --branch "${branch}" "${openssl_url}" "${scratch_folder}/openssl-${branch}" - pushd "${scratch_folder}/openssl-${branch}" - mkdir -p "${install_dir}/openssl-${branch}" - ./config --prefix="${install_dir}/openssl-${branch}" --openssldir="${install_dir}/openssl-${branch}" -d - make "-j${NUM_CPU_THREADS}" > /dev/null - make install_sw - popd - rm -rf "${scratch_folder}/openssl-${branch}" -} - function build_boringssl { git clone --depth 1 https://github.com/google/boringssl.git "${scratch_folder}/boringssl" pushd "${scratch_folder}/boringssl" diff --git a/tests/ci/run_cross_tests.sh b/tests/ci/run_cross_tests.sh index 56eead5f5a..29b7761685 100755 --- a/tests/ci/run_cross_tests.sh +++ b/tests/ci/run_cross_tests.sh @@ -37,7 +37,8 @@ tar Jxf ${TARGET_CPU}-x-tools.tar.xz --no-same-owner --no-same-permissions cat < ${TARGET_CPU}.cmake # Specify the target system set(CMAKE_SYSTEM_NAME Linux) -set(CMAKE_SYSTEM_PROCESSOR ${TARGET_CPU}) +# For "armv6" we need to strip off the "v6", so it's just "arm" +set(CMAKE_SYSTEM_PROCESSOR ${TARGET_CPU/v6/}) # Specify the cross-compiler set(CMAKE_C_COMPILER ${SCRATCH_FOLDER}/${TARGET_PLATFORM}/bin/${TARGET_PLATFORM}-gcc) diff --git a/tests/ci/run_ec2_test_framework.sh b/tests/ci/run_ec2_test_framework.sh index 45e39f298d..73def20f31 100755 --- a/tests/ci/run_ec2_test_framework.sh +++ b/tests/ci/run_ec2_test_framework.sh @@ -24,8 +24,9 @@ generate_ssm_document_file() { -e "s,{SOURCE},${CODEBUILD_SOURCE_REPO_URL},g" \ -e "s,{S3_BUCKET},${s3_bucket_name},g" \ -e "s,{ECR_DOCKER_TAG},${ecr_docker_tag},g" \ + -e "s,{TARGET_TEST_SCRIPT},${target_test_script},g" \ tests/ci/cdk/cdk/ssm/general_test_run_ssm_document.yaml \ - > "tests/ci/cdk/cdk/ssm/${ec2_ami_id}_ssm_document.yaml" + > "tests/ci/cdk/cdk/ssm/${1}_ssm_document.yaml" } #$1 for ami, $2 for instance-type, echos the instance id so we can capture the output @@ -34,7 +35,9 @@ create_ec2_instances() { instance_id="$(aws ec2 run-instances --image-id "$1" --count 1 \ --instance-type "$2" --security-group-ids "${EC2_SECURITY_GROUP_ID}" --subnet-id "${EC2_SUBNET_ID}" \ --block-device-mappings 'DeviceName="/dev/sda1",Ebs={DeleteOnTermination=True,VolumeSize=200}' \ - --tag-specifications 'ResourceType="instance",Tags=[{Key="Name",Value="ec2-test-'"$CODEBUILD_WEBHOOK_TRIGGER"'"}]' \ + --tag-specifications 'ResourceType="instance",Tags=[{Key="Name",Value="ec2-test-'"$CODEBUILD_WEBHOOK_TRIGGER"'"}, + {Key="ec2-framework-host",Value="ec2-framework-host"}, + {Key="ec-framework-commit-tag",Value="'"$CODEBUILD_SOURCE_VERSION"'"}]' \ --iam-instance-profile Name=aws-lc-ci-ec2-test-framework-ec2-profile \ --placement 'AvailabilityZone=us-west-2a' \ --instance-initiated-shutdown-behavior terminate \ @@ -51,10 +54,12 @@ echo Source: "${CODEBUILD_SOURCE_REPO_URL}" export ec2_ami_id="$1" export ec2_instance_type="$2" export ecr_docker_tag="$3" +export target_test_script="$4" export s3_bucket_name="aws-lc-codebuild" # create the ssm documents that will be used for the various ssm commands -generate_ssm_document_file +ssm_prefix="$(echo "$ec2_instance_type" | awk -F'.' '{print $1}')_$(basename "$target_test_script" .sh)" +generate_ssm_document_file "${ssm_prefix}" # create ec2 instances instance_id=$(create_ec2_instances "${ec2_ami_id}" "${ec2_instance_type}") @@ -77,13 +82,13 @@ for i in {1..30}; do sleep 60 done +# Create, and run ssm command. +ssm_doc_name=$(create_ssm_document "${ssm_prefix}") + # Wait 5 minutes for instance to "warm up"? echo "Instances need to initialize a few minutes before SSM commands can be properly run" sleep 300 -# Create, and run ssm command. -ssm_doc_name=$(create_ssm_document "${ec2_ami_id}") - cloudwatch_group_name="aws-lc-ci-ec2-test-framework-cw-logs" ec2_test_ssm_command_id=$(run_ssm_command "${ssm_doc_name}" "${instance_id}" ${cloudwatch_group_name}) diff --git a/tests/ci/run_openssl_comparison_tests.sh b/tests/ci/run_openssl_comparison_tests.sh new file mode 100644 index 0000000000..6d6d3b11e4 --- /dev/null +++ b/tests/ci/run_openssl_comparison_tests.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 OR ISC + +set -ex + +source tests/ci/common_posix_setup.sh + +scratch_folder=${SYS_ROOT}/"openssl-scratch" +install_dir="${scratch_folder}/libcrypto_install_dir" +openssl_url='https://github.com/openssl/openssl.git' +openssl_1_1_1_branch='OpenSSL_1_1_1-stable' +openssl_1_0_2_branch='OpenSSL_1_0_2-stable' +openssl_3_1_branch='openssl-3.1' +openssl_3_2_branch='openssl-3.2' +openssl_master_branch='master' + +mkdir -p "${scratch_folder}" +rm -rf "${scratch_folder:?}"/* + +build_openssl $openssl_1_0_2_branch +build_openssl $openssl_1_1_1_branch +build_openssl $openssl_3_1_branch +build_openssl $openssl_3_2_branch +build_openssl $openssl_master_branch + +run_build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_STANDARD=11 -DENABLE_DILITHIUM=ON + +# OpenSSL 3.1.0 on switches from lib folder to lib64 folder +declare -A openssl_branches=( + ["$openssl_1_0_2_branch"]="lib" + ["$openssl_1_1_1_branch"]="lib" + ["$openssl_3_1_branch"]="lib64" + ["$openssl_3_2_branch"]="lib64" + ["$openssl_master_branch"]="lib64" +) + +# Run X509 Comparison Tests against all OpenSSL branches +export AWSLC_TOOL_PATH="${BUILD_ROOT}/tool-openssl/openssl" +for branch in "${!openssl_branches[@]}"; do + export OPENSSL_TOOL_PATH="${install_dir}/openssl-${branch}/bin/openssl" + LD_LIBRARY_PATH="${install_dir}/openssl-${branch}/${openssl_branches[$branch]}" + for test in X509ComparisonTest RSAComparisonTest MD5ComparisonTest; do + echo "Running ${test} against OpenSSL ${branch}" + LD_LIBRARY_PATH="${install_dir}/openssl-${branch}/${openssl_branches[$branch]}" "${BUILD_ROOT}/tool-openssl/tool_openssl_test" --gtest_filter=${test}.* + done +done + diff --git a/tests/ci/run_posix_tests.sh b/tests/ci/run_posix_tests.sh index 5caa80f773..1c76bc54df 100755 --- a/tests/ci/run_posix_tests.sh +++ b/tests/ci/run_posix_tests.sh @@ -27,11 +27,14 @@ build_and_test -DOPENSSL_NO_ASM=1 -DCMAKE_BUILD_TYPE=Release echo "Testing building shared lib." build_and_test -DBUILD_SHARED_LIBS=1 -DCMAKE_BUILD_TYPE=Release -echo "Testing building with a SysGenId." +echo "Testing with a SysGenId." TEST_SYSGENID_PATH=$(mktemp) dd if=/dev/zero of="${TEST_SYSGENID_PATH}" bs=1 count=4096 build_and_test -DTEST_SYSGENID_PATH="${TEST_SYSGENID_PATH}" +echo "Testing with pre-generated assembly code." +build_and_test -DDISABLE_PERL=ON + echo "Testing building with AArch64 Data-Independent Timing (DIT) on." build_and_test -DENABLE_DATA_INDEPENDENT_TIMING=ON -DCMAKE_BUILD_TYPE=Release @@ -47,7 +50,7 @@ fi # Lightly verify that uncommon build options does not break the build. Fist # define a list of typical build options to verify the special build option with -build_options_to_test=("" "-DBUILD_SHARED_LIBS=1" "-DCMAKE_BUILD_TYPE=Release" "-DBUILD_SHARED_LIBS=1 -DCMAKE_BUILD_TYPE=Release") +build_options_to_test=("" "-DBUILD_SHARED_LIBS=1" "-DCMAKE_BUILD_TYPE=Release" "-DBUILD_SHARED_LIBS=1 -DCMAKE_BUILD_TYPE=Release" "-DDISABLE_PERL=ON -DDISABLE_GO=ON") ## Build option: MY_ASSEMBLER_IS_TOO_OLD_FOR_AVX for build_option in "${build_options_to_test[@]}"; do diff --git a/tests/docker_images/gcc/4.8/Dockerfile b/tests/docker_images/gcc/4.8/Dockerfile new file mode 100644 index 0000000000..c2d15de276 --- /dev/null +++ b/tests/docker_images/gcc/4.8/Dockerfile @@ -0,0 +1,17 @@ +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 OR ISC + +FROM --platform=linux/amd64 gcc:4.8 + +SHELL ["/bin/bash", "-c"] + +COPY cmake-3.6.3-Linux-x86_64.tar.gz / +COPY go1.18.10.linux-amd64.tar.gz / +RUN tar -C /usr/local -xzf cmake-3.6.3-Linux-x86_64.tar.gz +RUN rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.10.linux-amd64.tar.gz +RUN rm cmake-3.6.3-Linux-x86_64.tar.gz +RUN rm go1.18.10.linux-amd64.tar.gz +ENV PATH="${PATH}:/usr/local/cmake-3.6.3-Linux-x86_64/bin:/usr/local/go/bin" + + +CMD ["/bin/bash"] diff --git a/tests/docker_images/gcc/build_images.sh b/tests/docker_images/gcc/build_images.sh new file mode 100755 index 0000000000..05e763fae4 --- /dev/null +++ b/tests/docker_images/gcc/build_images.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 OR ISC + +set -ex + +# Log Docker hub limit https://docs.docker.com/docker-hub/download-rate-limit/#how-can-i-check-my-current-rate +TOKEN=$(curl "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token) +curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest + + +SCRIPT_DIR=$(dirname "$(readlink -f "${0}")") + + +BUILDER_NAME=aws-lc-gcc-builder +if ! docker buildx inspect ${BUILDER_NAME}; then + docker buildx create --name ${BUILDER_NAME} --use +fi + +## GCC-4.8 +curl --output-dir "${SCRIPT_DIR}"/4.8 -LO https://go.dev/dl/go1.18.10.linux-amd64.tar.gz +curl --output-dir "${SCRIPT_DIR}"/4.8 -LO https://github.com/Kitware/CMake/releases/download/v3.6.3/cmake-3.6.3-Linux-x86_64.tar.gz +docker buildx build -t aws-lc:gcc-4.8 "${SCRIPT_DIR}"/4.8 --load +rm "${SCRIPT_DIR}"/4.8/go1.18.10.linux-amd64.tar.gz +rm "${SCRIPT_DIR}"/4.8/cmake-3.6.3-Linux-x86_64.tar.gz + +docker buildx rm ${BUILDER_NAME} + diff --git a/third_party/s2n-bignum/arm/curve25519/curve25519_x25519.S b/third_party/s2n-bignum/arm/curve25519/curve25519_x25519.S index 2a26dafc8f..b8531e18dd 100644 --- a/third_party/s2n-bignum/arm/curve25519/curve25519_x25519.S +++ b/third_party/s2n-bignum/arm/curve25519/curve25519_x25519.S @@ -1242,7 +1242,7 @@ curve25519_x25519_scalarloop: usra v20.2d, v25.2d, #25 and v27.16b, v25.16b, v23.16b // ubignum_of_hreglist 1 + ubignum_of_lreglist 1 // INTERMEDIATE H|L = x4|z5 bfi x17, x7, #32, #25 // ubignum_of_preglist 1 // INTERMEDIATE z4 - mov v5.d[0], x3 // depth 86 + mov v5.d[0], x3 mov v1.d[0], x5 // FINAL z2 usra v26.2d, v20.2d, #26 // ubignum_of_hreglist 3 + ubignum_of_lreglist 3 // INTERMEDIATE H|L = x4|z5 and v28.16b, v20.16b, v30.16b // ubignum_of_hreglist 2 + ubignum_of_lreglist 2 // INTERMEDIATE H|L = x4|z5 diff --git a/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_alt.S b/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_alt.S index 82de375b14..518cb89555 100644 --- a/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_alt.S +++ b/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_alt.S @@ -593,8 +593,7 @@ curve25519_x25519_alt_scalarloop: // Multiplex directly into (xn,zn) then do three pure doubling steps; // this accounts for the implicit zeroing of the three lowest bits -// of the scalar. On the very last doubling we *fully* reduce zn mod -// p_25519 to ease checking for degeneracy below. +// of the scalar. cmp swap, xzr mux_4(xn,xm,xn) @@ -631,12 +630,12 @@ curve25519_x25519_alt_scalarloop: orr x1, x1, 0x10000 cmadd_4(e,p,d) mul_4(xn,s,d) - mul_p25519(zn,p,e) + mul_4(zn,p,e) // The projective result of the scalar multiplication is now (xn,zn). -// Prepare to call the modular inverse function to get xm = 1/zn +// Prepare to call the modular inverse function to get zn' = 1/zn - add x0, xm + add x0, zn add x1, zn // Inline copy of bignum_inv_p25519, identical except for stripping out @@ -644,7 +643,7 @@ curve25519_x25519_alt_scalarloop: // and reclaiming room on the stack. For more details and explanations see // "arm/curve25519/bignum_inv_p25519.S". Note that the stack it uses for // its own temporaries is 128 bytes, so it has no effect on variables -// that are needed in the rest of our computation here: res, xm and zn. +// that are needed in the rest of our computation here: res, xn and zn. mov x20, x0 mov x10, #0xffffffffffffffed @@ -1675,28 +1674,13 @@ curve25519_x25519_alt_invmidloop: stp x0, x1, [x4] stp x2, x5, [x4, #16] -// Since we eventually want to return 0 when the result is the point at -// infinity, we force xn = 0 whenever zn = 0. This avoids building in a -// dependency on the behavior of modular inverse in out-of-scope cases. - - ldp x0, x1, [zn] - ldp x2, x3, [zn+16] - orr x0, x0, x1 - orr x2, x2, x3 - orr x4, x0, x2 - cmp x4, xzr - ldp x0, x1, [xn] - csel x0, x0, xzr, ne - csel x1, x1, xzr, ne - ldp x2, x3, [xn+16] - stp x0, x1, [xn] - csel x2, x2, xzr, ne - csel x3, x3, xzr, ne - stp x2, x3, [xn+16] - // Now the result is xn * (1/zn), fully reduced modulo p. +// Note that in the degenerate case zn = 0 (mod p_25519), the +// modular inverse code above will produce 1/zn = 0, giving +// the correct overall X25519 result of zero for the point at +// infinity. - mul_p25519(resx,xn,xm) + mul_p25519(resx,xn,zn) // Restore stack and registers diff --git a/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_byte.S b/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_byte.S index 73c27db9f8..69230ca0df 100644 --- a/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_byte.S +++ b/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_byte.S @@ -1360,7 +1360,7 @@ curve25519_x25519_byte_scalarloop: usra v20.2d, v25.2d, #25 and v27.16b, v25.16b, v23.16b // ubignum_of_hreglist 1 + ubignum_of_lreglist 1 // INTERMEDIATE H|L = x4|z5 bfi x17, x7, #32, #25 // ubignum_of_preglist 1 // INTERMEDIATE z4 - mov v5.d[0], x3 // depth 86 + mov v5.d[0], x3 mov v1.d[0], x5 // FINAL z2 usra v26.2d, v20.2d, #26 // ubignum_of_hreglist 3 + ubignum_of_lreglist 3 // INTERMEDIATE H|L = x4|z5 and v28.16b, v20.16b, v30.16b // ubignum_of_hreglist 2 + ubignum_of_lreglist 2 // INTERMEDIATE H|L = x4|z5 diff --git a/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_byte_alt.S b/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_byte_alt.S index 790cb2b030..511e2960bd 100644 --- a/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_byte_alt.S +++ b/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_byte_alt.S @@ -711,8 +711,7 @@ curve25519_x25519_byte_alt_scalarloop: // Multiplex directly into (xn,zn) then do three pure doubling steps; // this accounts for the implicit zeroing of the three lowest bits -// of the scalar. On the very last doubling we *fully* reduce zn mod -// p_25519 to ease checking for degeneracy below. +// of the scalar. cmp swap, xzr mux_4(xn,xm,xn) @@ -749,12 +748,12 @@ curve25519_x25519_byte_alt_scalarloop: orr x1, x1, 0x10000 cmadd_4(e,p,d) mul_4(xn,s,d) - mul_p25519(zn,p,e) + mul_4(zn,p,e) // The projective result of the scalar multiplication is now (xn,zn). -// Prepare to call the modular inverse function to get xm = 1/zn +// Prepare to call the modular inverse function to get zn' = 1/zn - add x0, xm + add x0, zn add x1, zn // Inline copy of bignum_inv_p25519, identical except for stripping out @@ -762,7 +761,7 @@ curve25519_x25519_byte_alt_scalarloop: // and reclaiming room on the stack. For more details and explanations see // "arm/curve25519/bignum_inv_p25519.S". Note that the stack it uses for // its own temporaries is 128 bytes, so it has no effect on variables -// that are needed in the rest of our computation here: res, xm and zn. +// that are needed in the rest of our computation here: res, xn and zn. mov x20, x0 mov x10, #0xffffffffffffffed @@ -1793,28 +1792,13 @@ curve25519_x25519_byte_alt_invmidloop: stp x0, x1, [x4] stp x2, x5, [x4, #16] -// Since we eventually want to return 0 when the result is the point at -// infinity, we force xn = 0 whenever zn = 0. This avoids building in a -// dependency on the behavior of modular inverse in out-of-scope cases. - - ldp x0, x1, [zn] - ldp x2, x3, [zn+16] - orr x0, x0, x1 - orr x2, x2, x3 - orr x4, x0, x2 - cmp x4, xzr - ldp x0, x1, [xn] - csel x0, x0, xzr, ne - csel x1, x1, xzr, ne - ldp x2, x3, [xn+16] - stp x0, x1, [xn] - csel x2, x2, xzr, ne - csel x3, x3, xzr, ne - stp x2, x3, [xn+16] - // Now the result is xn * (1/zn), fully reduced modulo p. +// Note that in the degenerate case zn = 0 (mod p_25519), the +// modular inverse code above will produce 1/zn = 0, giving +// the correct overall X25519 result of zero for the point at +// infinity. - mul_p25519(zn,xn,xm) + mul_p25519(zn,xn,zn) ldp x10, x11, [zn] strb w10, [resx] diff --git a/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table.S b/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table.S index ba3e48d061..514df68262 100644 --- a/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table.S +++ b/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table.S @@ -1,5 +1,5 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 OR ISC +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 // ---------------------------------------------------------------------------- // Given table: uint64_t[height*width], copy table[idx*width...(idx+1)*width-1] diff --git a/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table_16_neon.S b/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table_16_neon.S index 2b51db2c42..1e31f070b9 100644 --- a/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table_16_neon.S +++ b/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table_16_neon.S @@ -1,5 +1,5 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 OR ISC +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 // ---------------------------------------------------------------------------- // Given table: uint64_t[height*16], copy table[idx*16...(idx+1)*16-1] diff --git a/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table_32_neon.S b/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table_32_neon.S index dc36c0002e..773a6d5745 100644 --- a/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table_32_neon.S +++ b/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table_32_neon.S @@ -1,5 +1,5 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 OR ISC +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 // ---------------------------------------------------------------------------- // Given table: uint64_t[height*32], copy table[idx*32...(idx+1)*32-1] diff --git a/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table_8n_neon.S b/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table_8n_neon.S index 80db20d6b6..b065a70525 100644 --- a/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table_8n_neon.S +++ b/third_party/s2n-bignum/arm/generic/bignum_copy_row_from_table_8n_neon.S @@ -1,9 +1,9 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 OR ISC +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 // ---------------------------------------------------------------------------- // Given table: uint64_t[height*width], copy table[idx*width...(idx+1)*width-1] -// into z[0..width-1]. width must be a mutiple of 8. +// into z[0..width-1]. width must be a multiple of 8. // This function is constant-time with respect to the value of `idx`. This is // achieved by reading the whole table and using the bit-masking to get the // `idx`-th row. diff --git a/third_party/s2n-bignum/arm/p384/Makefile b/third_party/s2n-bignum/arm/p384/Makefile index 564b9dd93c..60687fb7c1 100644 --- a/third_party/s2n-bignum/arm/p384/Makefile +++ b/third_party/s2n-bignum/arm/p384/Makefile @@ -35,8 +35,10 @@ OBJ = bignum_add_p384.o \ bignum_mod_p384_6.o \ bignum_montmul_p384.o \ bignum_montmul_p384_alt.o \ + bignum_montmul_p384_neon.o \ bignum_montsqr_p384.o \ bignum_montsqr_p384_alt.o \ + bignum_montsqr_p384_neon.o \ bignum_mux_6.o \ bignum_neg_p384.o \ bignum_nonzero_6.o \ @@ -45,8 +47,11 @@ OBJ = bignum_add_p384.o \ bignum_tomont_p384.o \ bignum_triple_p384.o \ p384_montjadd.o \ + p384_montjadd_alt.o \ p384_montjdouble.o \ - p384_montjmixadd.o + p384_montjdouble_alt.o \ + p384_montjmixadd.o \ + p384_montjmixadd_alt.o %.o : %.S ; $(CC) -E -I../../include $< | $(GAS) -o $@ - diff --git a/third_party/s2n-bignum/arm/p384/bignum_montmul_p384_neon.S b/third_party/s2n-bignum/arm/p384/bignum_montmul_p384_neon.S new file mode 100644 index 0000000000..08c296bc0d --- /dev/null +++ b/third_party/s2n-bignum/arm/p384/bignum_montmul_p384_neon.S @@ -0,0 +1,885 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Montgomery multiply, z := (x * y / 2^384) mod p_384 +// Inputs x[6], y[6]; output z[6] +// +// extern void bignum_montmul_p384_neon +// (uint64_t z[static 6], uint64_t x[static 6], uint64_t y[static 6]); +// +// Does z := (2^{-384} * x * y) mod p_384, assuming that the inputs x and y +// satisfy x * y <= 2^384 * p_384 (in particular this is true if we are in +// the "usual" case x < p_384 and y < p_384). +// +// Standard ARM ABI: X0 = z, X1 = x, X2 = y +// ---------------------------------------------------------------------------- + +// bignum_montmul_p384_neon is functionally equivalent to bignum_montmul_p384. +// It is written in a way that +// 1. A subset of scalar multiplications in bignum_montmul_p384 are carefully +// chosen and vectorized +// 2. The vectorized assembly is rescheduled using the SLOTHY superoptimizer. +// https://github.com/slothy-optimizer/slothy +// +// The output program of step 1. is as follows: +// +// stp x19, x20, [sp, #-16]! +// stp x21, x22, [sp, #-16]! +// stp x23, x24, [sp, #-16]! +// ldp x3, x21, [x1] +// ldr q30, [x1] +// ldp x8, x24, [x1, #16] +// ldp x5, x10, [x1, #32] +// ldp x13, x23, [x2] +// ldr q19, [x2] +// ldp x6, x14, [x2, #16] +// ldp x15, x17, [x2, #32] +// ldr q1, [x1, #32] +// ldr q28, [x2, #32] +// uzp1 v5.4S, v19.4S, v30.4S +// rev64 v19.4S, v19.4S +// uzp1 v0.4S, v30.4S, v30.4S +// mul v21.4S, v19.4S, v30.4S +// uaddlp v19.2D, v21.4S +// shl v19.2D, v19.2D, #32 +// umlal v19.2D, v0.2S, v5.2S +// mov x12, v19.d[0] +// mov x16, v19.d[1] +// mul x20, x8, x6 +// umulh x4, x3, x13 +// umulh x1, x21, x23 +// umulh x2, x8, x6 +// adds x4, x4, x16 +// adcs x19, x1, x20 +// adc x20, x2, xzr +// adds x11, x4, x12 +// adcs x16, x19, x4 +// adcs x1, x20, x19 +// adc x2, x20, xzr +// adds x7, x16, x12 +// adcs x4, x1, x4 +// adcs x9, x2, x19 +// adc x19, x20, xzr +// subs x2, x3, x21 +// cneg x20, x2, cc +// csetm x16, cc +// subs x2, x23, x13 +// cneg x2, x2, cc +// mul x1, x20, x2 +// umulh x2, x20, x2 +// cinv x16, x16, cc +// eor x1, x1, x16 +// eor x2, x2, x16 +// cmn x16, #0x1 +// adcs x11, x11, x1 +// adcs x7, x7, x2 +// adcs x4, x4, x16 +// adcs x9, x9, x16 +// adc x19, x19, x16 +// subs x2, x3, x8 +// cneg x20, x2, cc +// csetm x16, cc +// subs x2, x6, x13 +// cneg x2, x2, cc +// mul x1, x20, x2 +// umulh x2, x20, x2 +// cinv x16, x16, cc +// eor x1, x1, x16 +// eor x2, x2, x16 +// cmn x16, #0x1 +// adcs x7, x7, x1 +// adcs x4, x4, x2 +// adcs x9, x9, x16 +// adc x19, x19, x16 +// subs x2, x21, x8 +// cneg x20, x2, cc +// csetm x16, cc +// subs x2, x6, x23 +// cneg x2, x2, cc +// mul x1, x20, x2 +// umulh x2, x20, x2 +// cinv x16, x16, cc +// eor x1, x1, x16 +// eor x2, x2, x16 +// cmn x16, #0x1 +// adcs x4, x4, x1 +// adcs x20, x9, x2 +// adc x16, x19, x16 +// lsl x2, x12, #32 +// add x19, x2, x12 +// lsr x2, x19, #32 +// subs x1, x2, x19 +// sbc x2, x19, xzr +// extr x1, x2, x1, #32 +// lsr x2, x2, #32 +// adds x12, x2, x19 +// adc x2, xzr, xzr +// subs x1, x11, x1 +// sbcs x7, x7, x12 +// sbcs x4, x4, x2 +// sbcs x20, x20, xzr +// sbcs x16, x16, xzr +// sbc x9, x19, xzr +// lsl x2, x1, #32 +// add x19, x2, x1 +// lsr x2, x19, #32 +// subs x1, x2, x19 +// sbc x2, x19, xzr +// extr x1, x2, x1, #32 +// lsr x2, x2, #32 +// adds x12, x2, x19 +// adc x2, xzr, xzr +// subs x1, x7, x1 +// sbcs x4, x4, x12 +// sbcs x20, x20, x2 +// sbcs x16, x16, xzr +// sbcs x7, x9, xzr +// sbc x9, x19, xzr +// lsl x2, x1, #32 +// add x19, x2, x1 +// lsr x2, x19, #32 +// subs x1, x2, x19 +// sbc x2, x19, xzr +// extr x12, x2, x1, #32 +// lsr x2, x2, #32 +// adds x1, x2, x19 +// adc x2, xzr, xzr +// subs x4, x4, x12 +// sbcs x20, x20, x1 +// sbcs x16, x16, x2 +// sbcs x12, x7, xzr +// sbcs x1, x9, xzr +// sbc x2, x19, xzr +// stp x4, x20, [x0] // @slothy:writes=buffer0 +// stp x16, x12, [x0, #16] // @slothy:writes=buffer16 +// stp x1, x2, [x0, #32] // @slothy:writes=buffer32 +// mul x22, x24, x14 +// movi v31.2D, #0x00000000ffffffff +// uzp2 v16.4S, v28.4S, v28.4S +// xtn v6.2S, v1.2D +// xtn v30.2S, v28.2D +// rev64 v28.4S, v28.4S +// umull v5.2D, v6.2S, v30.2S +// umull v0.2D, v6.2S, v16.2S +// uzp2 v19.4S, v1.4S, v1.4S +// mul v20.4S, v28.4S, v1.4S +// usra v0.2D, v5.2D, #32 +// umull v1.2D, v19.2S, v16.2S +// uaddlp v24.2D, v20.4S +// and v5.16B, v0.16B, v31.16B +// umlal v5.2D, v19.2S, v30.2S +// shl v19.2D, v24.2D, #32 +// usra v1.2D, v0.2D, #32 +// umlal v19.2D, v6.2S, v30.2S +// usra v1.2D, v5.2D, #32 +// mov x20, v19.d[0] +// mov x16, v19.d[1] +// umulh x12, x24, x14 +// mov x1, v1.d[0] +// mov x2, v1.d[1] +// adds x4, x12, x20 +// adcs x20, x1, x16 +// adc x16, x2, xzr +// adds x7, x4, x22 +// adcs x12, x20, x4 +// adcs x1, x16, x20 +// adc x2, x16, xzr +// adds x9, x12, x22 +// adcs x19, x1, x4 +// adcs x4, x2, x20 +// adc x20, x16, xzr +// subs x2, x24, x5 +// cneg x16, x2, cc +// csetm x12, cc +// subs x2, x15, x14 +// cneg x2, x2, cc +// mul x1, x16, x2 +// umulh x2, x16, x2 +// cinv x12, x12, cc +// eor x1, x1, x12 +// eor x2, x2, x12 +// cmn x12, #0x1 +// adcs x11, x7, x1 +// adcs x9, x9, x2 +// adcs x19, x19, x12 +// adcs x4, x4, x12 +// adc x20, x20, x12 +// subs x2, x24, x10 +// cneg x16, x2, cc +// csetm x12, cc +// subs x2, x17, x14 +// cneg x2, x2, cc +// mul x1, x16, x2 +// umulh x2, x16, x2 +// cinv x12, x12, cc +// eor x1, x1, x12 +// eor x2, x2, x12 +// cmn x12, #0x1 +// adcs x7, x9, x1 +// adcs x19, x19, x2 +// adcs x4, x4, x12 +// adc x20, x20, x12 +// subs x2, x5, x10 +// cneg x16, x2, cc +// csetm x12, cc +// subs x2, x17, x15 +// cneg x2, x2, cc +// mul x1, x16, x2 +// umulh x2, x16, x2 +// cinv x16, x12, cc +// eor x1, x1, x16 +// eor x2, x2, x16 +// cmn x16, #0x1 +// adcs x19, x19, x1 +// adcs x12, x4, x2 +// adc x1, x20, x16 +// subs x2, x24, x3 +// sbcs x24, x5, x21 +// sbcs x21, x10, x8 +// ngc x5, xzr +// cmn x5, #0x1 +// eor x2, x2, x5 +// adcs x4, x2, xzr +// eor x2, x24, x5 +// adcs x20, x2, xzr +// eor x2, x21, x5 +// adc x16, x2, xzr +// subs x2, x13, x14 +// sbcs x24, x23, x15 +// sbcs x8, x6, x17 +// ngc x21, xzr +// cmn x21, #0x1 +// eor x2, x2, x21 +// adcs x15, x2, xzr +// eor x2, x24, x21 +// adcs x14, x2, xzr +// eor x2, x8, x21 +// adc x6, x2, xzr +// eor x9, x5, x21 +// ldp x21, x2, [x0] // @slothy:reads=buffer0 +// adds x10, x22, x21 +// adcs x5, x11, x2 +// ldp x21, x2, [x0, #16] // @slothy:reads=buffer16 +// adcs x24, x7, x21 +// adcs x8, x19, x2 +// ldp x21, x2, [x0, #32] // @slothy:reads=buffer32 +// adcs x21, x12, x21 +// adcs x2, x1, x2 +// adc x19, xzr, xzr +// stp x10, x5, [x0] // @slothy:writes=buffer0 +// stp x24, x8, [x0, #16] // @slothy:writes=buffer16 +// stp x21, x2, [x0, #32] // @slothy:writes=buffer32 +// mul x12, x4, x15 +// mul x5, x20, x14 +// mul x24, x16, x6 +// umulh x8, x4, x15 +// umulh x21, x20, x14 +// umulh x2, x16, x6 +// adds x10, x8, x5 +// adcs x5, x21, x24 +// adc x24, x2, xzr +// adds x23, x10, x12 +// adcs x8, x5, x10 +// adcs x21, x24, x5 +// adc x2, x24, xzr +// adds x13, x8, x12 +// adcs x1, x21, x10 +// adcs x10, x2, x5 +// adc x5, x24, xzr +// subs x2, x4, x20 +// cneg x24, x2, cc +// csetm x8, cc +// subs x2, x14, x15 +// cneg x2, x2, cc +// mul x21, x24, x2 +// umulh x2, x24, x2 +// cinv x8, x8, cc +// eor x21, x21, x8 +// eor x2, x2, x8 +// cmn x8, #0x1 +// adcs x23, x23, x21 +// adcs x13, x13, x2 +// adcs x1, x1, x8 +// adcs x10, x10, x8 +// adc x5, x5, x8 +// subs x2, x4, x16 +// cneg x24, x2, cc +// csetm x8, cc +// subs x2, x6, x15 +// cneg x2, x2, cc +// mul x21, x24, x2 +// umulh x2, x24, x2 +// cinv x8, x8, cc +// eor x21, x21, x8 +// eor x2, x2, x8 +// cmn x8, #0x1 +// adcs x4, x13, x21 +// adcs x13, x1, x2 +// adcs x1, x10, x8 +// adc x10, x5, x8 +// subs x2, x20, x16 +// cneg x24, x2, cc +// csetm x8, cc +// subs x2, x6, x14 +// cneg x2, x2, cc +// mul x21, x24, x2 +// umulh x2, x24, x2 +// cinv x5, x8, cc +// eor x21, x21, x5 +// eor x2, x2, x5 +// cmn x5, #0x1 +// adcs x24, x13, x21 +// adcs x8, x1, x2 +// adc x21, x10, x5 +// ldp x20, x16, [x0] // @slothy:reads=buffer0 +// ldp x17, x15, [x0, #16] // @slothy:reads=buffer16 +// ldp x14, x6, [x0, #32] // @slothy:reads=buffer32 +// cmn x9, #0x1 +// eor x2, x12, x9 +// adcs x12, x2, x20 +// eor x2, x23, x9 +// adcs x23, x2, x16 +// eor x2, x4, x9 +// adcs x13, x2, x17 +// eor x2, x24, x9 +// adcs x10, x2, x15 +// eor x2, x8, x9 +// adcs x5, x2, x14 +// eor x2, x21, x9 +// adcs x24, x2, x6 +// adcs x1, x9, x19 +// adcs x8, x9, xzr +// adcs x21, x9, xzr +// adc x2, x9, xzr +// adds x10, x10, x20 +// adcs x5, x5, x16 +// adcs x24, x24, x17 +// adcs x17, x1, x15 +// adcs x15, x8, x14 +// adcs x14, x21, x6 +// adc x6, x2, x19 +// lsl x2, x12, #32 +// add x1, x2, x12 +// lsr x2, x1, #32 +// subs x21, x2, x1 +// sbc x2, x1, xzr +// extr x21, x2, x21, #32 +// lsr x2, x2, #32 +// adds x8, x2, x1 +// adc x2, xzr, xzr +// subs x21, x23, x21 +// sbcs x23, x13, x8 +// sbcs x10, x10, x2 +// sbcs x5, x5, xzr +// sbcs x24, x24, xzr +// sbc x13, x1, xzr +// lsl x2, x21, #32 +// add x1, x2, x21 +// lsr x2, x1, #32 +// subs x21, x2, x1 +// sbc x2, x1, xzr +// extr x21, x2, x21, #32 +// lsr x2, x2, #32 +// adds x8, x2, x1 +// adc x2, xzr, xzr +// subs x21, x23, x21 +// sbcs x10, x10, x8 +// sbcs x5, x5, x2 +// sbcs x24, x24, xzr +// sbcs x23, x13, xzr +// sbc x13, x1, xzr +// lsl x2, x21, #32 +// add x1, x2, x21 +// lsr x2, x1, #32 +// subs x21, x2, x1 +// sbc x2, x1, xzr +// extr x8, x2, x21, #32 +// lsr x2, x2, #32 +// adds x21, x2, x1 +// adc x2, xzr, xzr +// subs x10, x10, x8 +// sbcs x5, x5, x21 +// sbcs x24, x24, x2 +// sbcs x8, x23, xzr +// sbcs x21, x13, xzr +// sbc x2, x1, xzr +// adds x23, x17, x8 +// adcs x13, x15, x21 +// adcs x1, x14, x2 +// adc x2, x6, xzr +// add x8, x2, #0x1 +// lsl x2, x8, #32 +// subs x21, x8, x2 +// sbc x2, x2, xzr +// adds x10, x10, x21 +// adcs x5, x5, x2 +// adcs x24, x24, x8 +// adcs x8, x23, xzr +// adcs x21, x13, xzr +// adcs x13, x1, xzr +// csetm x1, cc +// mov x2, #0xffffffff +// and x2, x2, x1 +// adds x10, x10, x2 +// eor x2, x2, x1 +// adcs x5, x5, x2 +// mov x2, #0xfffffffffffffffe +// and x2, x2, x1 +// adcs x24, x24, x2 +// adcs x8, x8, x1 +// adcs x21, x21, x1 +// adc x2, x13, x1 +// stp x10, x5, [x0] // @slothy:writes=buffer0 +// stp x24, x8, [x0, #16] // @slothy:writes=buffer16 +// stp x21, x2, [x0, #32] // @slothy:writes=buffer32 +// ldp x23, x24, [sp], #16 +// ldp x21, x22, [sp], #16 +// ldp x19, x20, [sp], #16 +// ret +// +// The bash script used for step 2 is as follows: +// +// # Store the assembly instructions except the last 'ret' and +// # callee-register store/loads as, say, 'input.S'. +// export OUTPUTS="[hint_buffer0,hint_buffer16,hint_buffer32]" +// export RESERVED_REGS="[x18,x25,x26,x27,x28,x29,x30,sp,q8,q9,q10,q11,q12,q13,q14,q15,v8,v9,v10,v11,v12,v13,v14,v15]" +// /tools/external/slothy.sh input.S my_out_dir +// # my_out_dir/3.opt.s is the optimized assembly. Its output may differ +// # from this file since the sequence is non-deterministically chosen. +// # Please add 'ret' at the end of the output assembly. + + +#include "_internal_s2n_bignum.h" + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(bignum_montmul_p384_neon) + S2N_BN_SYM_PRIVACY_DIRECTIVE(bignum_montmul_p384_neon) + .text + .balign 4 + +S2N_BN_SYMBOL(bignum_montmul_p384_neon): + +// Save some registers + + stp x19, x20, [sp, -16]! + stp x21, x22, [sp, -16]! + stp x23, x24, [sp, -16]! + + ldr q3, [x1] + ldr q25, [x2] + ldp x13, x23, [x2] + ldp x3, x21, [x1] + rev64 v23.4S, v25.4S + uzp1 v17.4S, v25.4S, v3.4S + umulh x15, x3, x13 + mul v6.4S, v23.4S, v3.4S + uzp1 v3.4S, v3.4S, v3.4S + ldr q27, [x2, #32] + ldp x8, x24, [x1, #16] + subs x6, x3, x21 + ldr q0, [x1, #32] + movi v23.2D, #0x00000000ffffffff + csetm x10, cc + umulh x19, x21, x23 + rev64 v4.4S, v27.4S + uzp2 v25.4S, v27.4S, v27.4S + cneg x4, x6, cc + subs x7, x23, x13 + xtn v22.2S, v0.2D + xtn v24.2S, v27.2D + cneg x20, x7, cc + ldp x6, x14, [x2, #16] + mul v27.4S, v4.4S, v0.4S + uaddlp v20.2D, v6.4S + cinv x5, x10, cc + mul x16, x4, x20 + uzp2 v6.4S, v0.4S, v0.4S + umull v21.2D, v22.2S, v25.2S + shl v0.2D, v20.2D, #32 + umlal v0.2D, v3.2S, v17.2S + mul x22, x8, x6 + umull v1.2D, v6.2S, v25.2S + subs x12, x3, x8 + umull v20.2D, v22.2S, v24.2S + cneg x17, x12, cc + umulh x9, x8, x6 + mov x12, v0.d[1] + eor x11, x16, x5 + mov x7, v0.d[0] + csetm x10, cc + usra v21.2D, v20.2D, #32 + adds x15, x15, x12 + adcs x12, x19, x22 + umulh x20, x4, x20 + adc x19, x9, xzr + usra v1.2D, v21.2D, #32 + adds x22, x15, x7 + and v26.16B, v21.16B, v23.16B + adcs x16, x12, x15 + uaddlp v25.2D, v27.4S + adcs x9, x19, x12 + umlal v26.2D, v6.2S, v24.2S + adc x4, x19, xzr + adds x16, x16, x7 + shl v27.2D, v25.2D, #32 + adcs x9, x9, x15 + adcs x4, x4, x12 + eor x12, x20, x5 + adc x15, x19, xzr + subs x20, x6, x13 + cneg x20, x20, cc + cinv x10, x10, cc + cmn x5, #0x1 + mul x19, x17, x20 + adcs x11, x22, x11 + adcs x12, x16, x12 + adcs x9, x9, x5 + umulh x17, x17, x20 + adcs x22, x4, x5 + adc x5, x15, x5 + subs x16, x21, x8 + cneg x20, x16, cc + eor x19, x19, x10 + csetm x4, cc + subs x16, x6, x23 + cneg x16, x16, cc + umlal v27.2D, v22.2S, v24.2S + mul x15, x20, x16 + cinv x4, x4, cc + cmn x10, #0x1 + usra v1.2D, v26.2D, #32 + adcs x19, x12, x19 + eor x17, x17, x10 + adcs x9, x9, x17 + adcs x22, x22, x10 + lsl x12, x7, #32 + umulh x20, x20, x16 + eor x16, x15, x4 + ldp x15, x17, [x2, #32] + add x2, x12, x7 + adc x7, x5, x10 + ldp x5, x10, [x1, #32] + lsr x1, x2, #32 + eor x12, x20, x4 + subs x1, x1, x2 + sbc x20, x2, xzr + cmn x4, #0x1 + adcs x9, x9, x16 + extr x1, x20, x1, #32 + lsr x20, x20, #32 + adcs x22, x22, x12 + adc x16, x7, x4 + adds x12, x20, x2 + umulh x7, x24, x14 + adc x4, xzr, xzr + subs x1, x11, x1 + sbcs x20, x19, x12 + sbcs x12, x9, x4 + lsl x9, x1, #32 + add x1, x9, x1 + sbcs x9, x22, xzr + mul x22, x24, x14 + sbcs x16, x16, xzr + lsr x4, x1, #32 + sbc x19, x2, xzr + subs x4, x4, x1 + sbc x11, x1, xzr + extr x2, x11, x4, #32 + lsr x4, x11, #32 + adds x4, x4, x1 + adc x11, xzr, xzr + subs x2, x20, x2 + sbcs x4, x12, x4 + sbcs x20, x9, x11 + lsl x12, x2, #32 + add x2, x12, x2 + sbcs x9, x16, xzr + lsr x11, x2, #32 + sbcs x19, x19, xzr + sbc x1, x1, xzr + subs x16, x11, x2 + sbc x12, x2, xzr + extr x16, x12, x16, #32 + lsr x12, x12, #32 + adds x11, x12, x2 + adc x12, xzr, xzr + subs x16, x4, x16 + mov x4, v27.d[0] + sbcs x11, x20, x11 + sbcs x20, x9, x12 + stp x16, x11, [x0] + sbcs x11, x19, xzr + sbcs x9, x1, xzr + stp x20, x11, [x0, #16] + mov x1, v1.d[0] + sbc x20, x2, xzr + subs x12, x24, x5 + mov x11, v27.d[1] + cneg x16, x12, cc + csetm x2, cc + subs x19, x15, x14 + mov x12, v1.d[1] + cinv x2, x2, cc + cneg x19, x19, cc + stp x9, x20, [x0, #32] + mul x9, x16, x19 + adds x4, x7, x4 + adcs x11, x1, x11 + adc x1, x12, xzr + adds x20, x4, x22 + umulh x19, x16, x19 + adcs x7, x11, x4 + eor x16, x9, x2 + adcs x9, x1, x11 + adc x12, x1, xzr + adds x7, x7, x22 + adcs x4, x9, x4 + adcs x9, x12, x11 + adc x12, x1, xzr + cmn x2, #0x1 + eor x1, x19, x2 + adcs x11, x20, x16 + adcs x19, x7, x1 + adcs x1, x4, x2 + adcs x20, x9, x2 + adc x2, x12, x2 + subs x12, x24, x10 + cneg x16, x12, cc + csetm x12, cc + subs x9, x17, x14 + cinv x12, x12, cc + cneg x9, x9, cc + subs x3, x24, x3 + sbcs x21, x5, x21 + mul x24, x16, x9 + sbcs x4, x10, x8 + ngc x8, xzr + subs x10, x5, x10 + eor x5, x24, x12 + csetm x7, cc + cneg x24, x10, cc + subs x10, x17, x15 + cinv x7, x7, cc + cneg x10, x10, cc + subs x14, x13, x14 + sbcs x15, x23, x15 + eor x13, x21, x8 + mul x23, x24, x10 + sbcs x17, x6, x17 + eor x6, x3, x8 + ngc x21, xzr + umulh x9, x16, x9 + cmn x8, #0x1 + eor x3, x23, x7 + adcs x23, x6, xzr + adcs x13, x13, xzr + eor x16, x4, x8 + adc x16, x16, xzr + eor x4, x17, x21 + umulh x17, x24, x10 + cmn x21, #0x1 + eor x24, x14, x21 + eor x6, x15, x21 + adcs x15, x24, xzr + adcs x14, x6, xzr + adc x6, x4, xzr + cmn x12, #0x1 + eor x4, x9, x12 + adcs x19, x19, x5 + umulh x5, x23, x15 + adcs x1, x1, x4 + adcs x10, x20, x12 + eor x4, x17, x7 + ldp x20, x9, [x0] + adc x2, x2, x12 + cmn x7, #0x1 + adcs x12, x1, x3 + ldp x17, x24, [x0, #16] + mul x1, x16, x6 + adcs x3, x10, x4 + adc x2, x2, x7 + ldp x7, x4, [x0, #32] + adds x20, x22, x20 + mul x10, x13, x14 + adcs x11, x11, x9 + eor x9, x8, x21 + adcs x21, x19, x17 + stp x20, x11, [x0] + adcs x12, x12, x24 + mul x8, x23, x15 + adcs x3, x3, x7 + stp x21, x12, [x0, #16] + adcs x12, x2, x4 + adc x19, xzr, xzr + subs x21, x23, x16 + umulh x2, x16, x6 + stp x3, x12, [x0, #32] + cneg x3, x21, cc + csetm x24, cc + umulh x11, x13, x14 + subs x21, x13, x16 + eor x7, x8, x9 + cneg x17, x21, cc + csetm x16, cc + subs x21, x6, x15 + cneg x22, x21, cc + cinv x21, x24, cc + subs x20, x23, x13 + umulh x12, x3, x22 + cneg x23, x20, cc + csetm x24, cc + subs x20, x14, x15 + cinv x24, x24, cc + mul x22, x3, x22 + cneg x3, x20, cc + subs x13, x6, x14 + cneg x20, x13, cc + cinv x15, x16, cc + adds x13, x5, x10 + mul x4, x23, x3 + adcs x11, x11, x1 + adc x14, x2, xzr + adds x5, x13, x8 + adcs x16, x11, x13 + umulh x23, x23, x3 + adcs x3, x14, x11 + adc x1, x14, xzr + adds x10, x16, x8 + adcs x6, x3, x13 + adcs x8, x1, x11 + umulh x13, x17, x20 + eor x1, x4, x24 + adc x4, x14, xzr + cmn x24, #0x1 + adcs x1, x5, x1 + eor x16, x23, x24 + eor x11, x1, x9 + adcs x23, x10, x16 + eor x2, x22, x21 + adcs x3, x6, x24 + mul x14, x17, x20 + eor x17, x13, x15 + adcs x13, x8, x24 + adc x8, x4, x24 + cmn x21, #0x1 + adcs x6, x23, x2 + mov x16, #0xfffffffffffffffe + eor x20, x12, x21 + adcs x20, x3, x20 + eor x23, x14, x15 + adcs x2, x13, x21 + adc x8, x8, x21 + cmn x15, #0x1 + ldp x5, x4, [x0] + ldp x21, x12, [x0, #16] + adcs x22, x20, x23 + eor x23, x22, x9 + adcs x17, x2, x17 + adc x22, x8, x15 + cmn x9, #0x1 + adcs x15, x7, x5 + ldp x10, x14, [x0, #32] + eor x1, x6, x9 + lsl x2, x15, #32 + adcs x8, x11, x4 + adcs x13, x1, x21 + eor x1, x22, x9 + adcs x24, x23, x12 + eor x11, x17, x9 + adcs x23, x11, x10 + adcs x7, x1, x14 + adcs x17, x9, x19 + adcs x20, x9, xzr + add x1, x2, x15 + lsr x3, x1, #32 + adcs x11, x9, xzr + adc x9, x9, xzr + subs x3, x3, x1 + sbc x6, x1, xzr + adds x24, x24, x5 + adcs x4, x23, x4 + extr x3, x6, x3, #32 + lsr x6, x6, #32 + adcs x21, x7, x21 + adcs x15, x17, x12 + adcs x7, x20, x10 + adcs x20, x11, x14 + mov x14, #0xffffffff + adc x22, x9, x19 + adds x12, x6, x1 + adc x10, xzr, xzr + subs x3, x8, x3 + sbcs x12, x13, x12 + lsl x9, x3, #32 + add x3, x9, x3 + sbcs x10, x24, x10 + sbcs x24, x4, xzr + lsr x9, x3, #32 + sbcs x21, x21, xzr + sbc x1, x1, xzr + subs x9, x9, x3 + sbc x13, x3, xzr + extr x9, x13, x9, #32 + lsr x13, x13, #32 + adds x13, x13, x3 + adc x6, xzr, xzr + subs x12, x12, x9 + sbcs x17, x10, x13 + lsl x2, x12, #32 + sbcs x10, x24, x6 + add x9, x2, x12 + sbcs x6, x21, xzr + lsr x5, x9, #32 + sbcs x21, x1, xzr + sbc x13, x3, xzr + subs x8, x5, x9 + sbc x19, x9, xzr + lsr x12, x19, #32 + extr x3, x19, x8, #32 + adds x8, x12, x9 + adc x1, xzr, xzr + subs x2, x17, x3 + sbcs x12, x10, x8 + sbcs x5, x6, x1 + sbcs x3, x21, xzr + sbcs x19, x13, xzr + sbc x24, x9, xzr + adds x23, x15, x3 + adcs x8, x7, x19 + adcs x11, x20, x24 + adc x9, x22, xzr + add x24, x9, #0x1 + lsl x7, x24, #32 + subs x21, x24, x7 + sbc x10, x7, xzr + adds x6, x2, x21 + adcs x7, x12, x10 + adcs x24, x5, x24 + adcs x13, x23, xzr + adcs x8, x8, xzr + adcs x15, x11, xzr + csetm x23, cc + and x11, x16, x23 + and x20, x14, x23 + adds x22, x6, x20 + eor x3, x20, x23 + adcs x5, x7, x3 + adcs x14, x24, x11 + stp x22, x5, [x0] + adcs x5, x13, x23 + adcs x21, x8, x23 + stp x14, x5, [x0, #16] + adc x12, x15, x23 + stp x21, x12, [x0, #32] + +// Restore registers and return + + ldp x23, x24, [sp], #16 + ldp x21, x22, [sp], #16 + ldp x19, x20, [sp], #16 + + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack,"",%progbits +#endif diff --git a/third_party/s2n-bignum/arm/p384/bignum_montsqr_p384_neon.S b/third_party/s2n-bignum/arm/p384/bignum_montsqr_p384_neon.S new file mode 100644 index 0000000000..9be6380eb4 --- /dev/null +++ b/third_party/s2n-bignum/arm/p384/bignum_montsqr_p384_neon.S @@ -0,0 +1,665 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Montgomery square, z := (x^2 / 2^384) mod p_384 +// Input x[6]; output z[6] +// +// extern void bignum_montsqr_p384_neon +// (uint64_t z[static 6], uint64_t x[static 6]); +// +// Does z := (x^2 / 2^384) mod p_384, assuming x^2 <= 2^384 * p_384, which is +// guaranteed in particular if x < p_384 initially (the "intended" case). +// +// Standard ARM ABI: X0 = z, X1 = x +// ---------------------------------------------------------------------------- + +// bignum_montsqr_p384_neon is functionally equivalent to bignum_montsqr_p384. +// It is written in a way that +// 1. A subset of scalar multiplications in bignum_montsqr_p384 are carefully +// chosen and vectorized +// 2. The vectorized assembly is rescheduled using the SLOTHY superoptimizer. +// https://github.com/slothy-optimizer/slothy +// +// The output program of step 1. is as follows: +// +// ldp x9, x2, [x1] +// ldr q18, [x1] +// ldr q19, [x1] +// ldp x4, x6, [x1, #16] +// ldp x5, x10, [x1, #32] +// ldr q21, [x1, #32] +// ldr q28, [x1, #32] +// mul x12, x9, x2 +// mul x1, x9, x4 +// mul x13, x2, x4 +// movi v0.2D, #0x00000000ffffffff +// uzp2 v5.4S, v19.4S, v19.4S +// xtn v25.2S, v18.2D +// xtn v4.2S, v19.2D +// rev64 v23.4S, v19.4S +// umull v20.2D, v25.2S, v4.2S +// umull v30.2D, v25.2S, v5.2S +// uzp2 v19.4S, v18.4S, v18.4S +// mul v22.4S, v23.4S, v18.4S +// usra v30.2D, v20.2D, #32 +// umull v18.2D, v19.2S, v5.2S +// uaddlp v22.2D, v22.4S +// and v20.16B, v30.16B, v0.16B +// umlal v20.2D, v19.2S, v4.2S +// shl v19.2D, v22.2D, #32 +// usra v18.2D, v30.2D, #32 +// umlal v19.2D, v25.2S, v4.2S +// usra v18.2D, v20.2D, #32 +// mov x7, v19.d[0] +// mov x17, v19.d[1] +// mul x16, x4, x4 +// umulh x3, x9, x2 +// adds x15, x1, x3 +// umulh x1, x9, x4 +// adcs x13, x13, x1 +// umulh x1, x2, x4 +// adcs x8, x1, xzr +// mov x11, v18.d[0] +// mov x14, v18.d[1] +// umulh x1, x4, x4 +// adds x3, x12, x12 +// adcs x15, x15, x15 +// adcs x13, x13, x13 +// adcs x12, x8, x8 +// adc x1, x1, xzr +// adds x11, x11, x3 +// adcs x3, x17, x15 +// adcs x17, x14, x13 +// adcs x15, x16, x12 +// adc x13, x1, xzr +// lsl x1, x7, #32 +// add x16, x1, x7 +// lsr x1, x16, #32 +// subs x12, x1, x16 +// sbc x1, x16, xzr +// extr x12, x1, x12, #32 +// lsr x1, x1, #32 +// adds x7, x1, x16 +// adc x1, xzr, xzr +// subs x12, x11, x12 +// sbcs x11, x3, x7 +// sbcs x17, x17, x1 +// sbcs x15, x15, xzr +// sbcs x13, x13, xzr +// sbc x3, x16, xzr +// lsl x1, x12, #32 +// add x16, x1, x12 +// lsr x1, x16, #32 +// subs x12, x1, x16 +// sbc x1, x16, xzr +// extr x12, x1, x12, #32 +// lsr x1, x1, #32 +// adds x7, x1, x16 +// adc x1, xzr, xzr +// subs x12, x11, x12 +// sbcs x17, x17, x7 +// sbcs x15, x15, x1 +// sbcs x13, x13, xzr +// sbcs x11, x3, xzr +// sbc x3, x16, xzr +// lsl x1, x12, #32 +// add x16, x1, x12 +// lsr x1, x16, #32 +// subs x12, x1, x16 +// sbc x1, x16, xzr +// extr x7, x1, x12, #32 +// lsr x1, x1, #32 +// adds x12, x1, x16 +// adc x1, xzr, xzr +// subs x17, x17, x7 +// sbcs x15, x15, x12 +// sbcs x13, x13, x1 +// sbcs x7, x11, xzr +// sbcs x12, x3, xzr +// sbc x1, x16, xzr +// stp x17, x15, [x0] // @slothy:writes=buffer0 +// stp x13, x7, [x0, #16] // @slothy:writes=buffer16 +// stp x12, x1, [x0, #32] // @slothy:writes=buffer32 +// mul x14, x9, x6 +// mul x15, x2, x5 +// mul x13, x4, x10 +// umulh x7, x9, x6 +// umulh x12, x2, x5 +// umulh x1, x4, x10 +// adds x15, x7, x15 +// adcs x16, x12, x13 +// adc x13, x1, xzr +// adds x11, x15, x14 +// adcs x7, x16, x15 +// adcs x12, x13, x16 +// adc x1, x13, xzr +// adds x17, x7, x14 +// adcs x15, x12, x15 +// adcs x3, x1, x16 +// adc x16, x13, xzr +// subs x1, x9, x2 +// cneg x13, x1, cc +// csetm x7, cc +// subs x1, x5, x6 +// cneg x1, x1, cc +// mul x12, x13, x1 +// umulh x1, x13, x1 +// cinv x7, x7, cc +// eor x12, x12, x7 +// eor x1, x1, x7 +// cmn x7, #0x1 +// adcs x11, x11, x12 +// adcs x17, x17, x1 +// adcs x15, x15, x7 +// adcs x3, x3, x7 +// adc x16, x16, x7 +// subs x9, x9, x4 +// cneg x13, x9, cc +// csetm x7, cc +// subs x1, x10, x6 +// cneg x1, x1, cc +// mul x12, x13, x1 +// umulh x1, x13, x1 +// cinv x7, x7, cc +// eor x12, x12, x7 +// eor x1, x1, x7 +// cmn x7, #0x1 +// adcs x17, x17, x12 +// adcs x15, x15, x1 +// adcs x13, x3, x7 +// adc x7, x16, x7 +// subs x2, x2, x4 +// cneg x12, x2, cc +// csetm x1, cc +// subs x2, x10, x5 +// cneg x2, x2, cc +// mul x4, x12, x2 +// umulh x2, x12, x2 +// cinv x1, x1, cc +// eor x4, x4, x1 +// eor x2, x2, x1 +// cmn x1, #0x1 +// adcs x12, x15, x4 +// adcs x4, x13, x2 +// adc x2, x7, x1 +// adds x1, x14, x14 +// adcs x16, x11, x11 +// adcs x17, x17, x17 +// adcs x15, x12, x12 +// adcs x13, x4, x4 +// adcs x7, x2, x2 +// adc x12, xzr, xzr +// ldp x4, x2, [x0] // @slothy:reads=buffer0 +// adds x1, x1, x4 +// adcs x16, x16, x2 +// ldp x4, x2, [x0, #16] // @slothy:reads=buffer16 +// adcs x17, x17, x4 +// adcs x15, x15, x2 +// ldp x4, x2, [x0, #32] // @slothy:reads=buffer32 +// adcs x13, x13, x4 +// adcs x7, x7, x2 +// adc x11, x12, xzr +// lsl x2, x1, #32 +// add x12, x2, x1 +// lsr x2, x12, #32 +// subs x4, x2, x12 +// sbc x2, x12, xzr +// extr x4, x2, x4, #32 +// lsr x2, x2, #32 +// adds x1, x2, x12 +// adc x2, xzr, xzr +// subs x4, x16, x4 +// sbcs x16, x17, x1 +// sbcs x17, x15, x2 +// sbcs x15, x13, xzr +// sbcs x13, x7, xzr +// sbc x7, x12, xzr +// lsl x2, x4, #32 +// add x12, x2, x4 +// lsr x2, x12, #32 +// subs x4, x2, x12 +// sbc x2, x12, xzr +// extr x4, x2, x4, #32 +// lsr x2, x2, #32 +// adds x1, x2, x12 +// adc x2, xzr, xzr +// subs x4, x16, x4 +// sbcs x16, x17, x1 +// sbcs x17, x15, x2 +// sbcs x15, x13, xzr +// sbcs x13, x7, xzr +// sbc x7, x12, xzr +// lsl x2, x4, #32 +// add x12, x2, x4 +// lsr x2, x12, #32 +// subs x4, x2, x12 +// sbc x2, x12, xzr +// extr x1, x2, x4, #32 +// lsr x2, x2, #32 +// adds x4, x2, x12 +// adc x2, xzr, xzr +// subs x3, x16, x1 +// sbcs x17, x17, x4 +// sbcs x15, x15, x2 +// sbcs x1, x13, xzr +// sbcs x4, x7, xzr +// sbc x2, x12, xzr +// adds x13, x11, x1 +// adcs x7, x4, xzr +// adcs x12, x2, xzr +// adcs x16, xzr, xzr +// mul x2, x6, x6 +// adds x3, x3, x2 +// xtn v30.2S, v28.2D +// shrn v26.2S, v28.2D, #32 +// umull v26.2D, v30.2S, v26.2S +// shl v19.2D, v26.2D, #33 +// umlal v19.2D, v30.2S, v30.2S +// mov x1, v19.d[0] +// mov x4, v19.d[1] +// umulh x2, x6, x6 +// adcs x17, x17, x2 +// umulh x2, x5, x5 +// adcs x15, x15, x1 +// adcs x13, x13, x2 +// umulh x2, x10, x10 +// adcs x7, x7, x4 +// adcs x12, x12, x2 +// adc x16, x16, xzr +// dup v28.2D, x6 +// movi v0.2D, #0x00000000ffffffff +// uzp2 v5.4S, v21.4S, v21.4S +// xtn v25.2S, v28.2D +// xtn v4.2S, v21.2D +// rev64 v19.4S, v21.4S +// umull v30.2D, v25.2S, v4.2S +// umull v23.2D, v25.2S, v5.2S +// uzp2 v20.4S, v28.4S, v28.4S +// mul v19.4S, v19.4S, v28.4S +// usra v23.2D, v30.2D, #32 +// umull v18.2D, v20.2S, v5.2S +// uaddlp v19.2D, v19.4S +// and v30.16B, v23.16B, v0.16B +// umlal v30.2D, v20.2S, v4.2S +// shl v19.2D, v19.2D, #32 +// usra v18.2D, v23.2D, #32 +// umlal v19.2D, v25.2S, v4.2S +// usra v18.2D, v30.2D, #32 +// mov x6, v19.d[0] +// mov x1, v19.d[1] +// mul x4, x5, x10 +// mov x2, v18.d[0] +// adds x1, x1, x2 +// mov x2, v18.d[1] +// adcs x4, x4, x2 +// umulh x5, x5, x10 +// adc x2, x5, xzr +// adds x5, x6, x6 +// adcs x6, x1, x1 +// adcs x1, x4, x4 +// adcs x4, x2, x2 +// adc x2, xzr, xzr +// adds x17, x17, x5 +// adcs x15, x15, x6 +// adcs x13, x13, x1 +// adcs x7, x7, x4 +// adcs x12, x12, x2 +// adc x2, x16, xzr +// mov x5, #0xffffffff00000001 +// mov x6, #0xffffffff +// mov x1, #0x1 +// cmn x3, x5 +// adcs xzr, x17, x6 +// adcs xzr, x15, x1 +// adcs xzr, x13, xzr +// adcs xzr, x7, xzr +// adcs xzr, x12, xzr +// adc x2, x2, xzr +// neg x4, x2 +// and x2, x5, x4 +// adds x10, x3, x2 +// and x2, x6, x4 +// adcs x5, x17, x2 +// and x2, x1, x4 +// adcs x6, x15, x2 +// adcs x1, x13, xzr +// adcs x4, x7, xzr +// adc x2, x12, xzr +// stp x10, x5, [x0] // @slothy:writes=buffer0 +// stp x6, x1, [x0, #16] // @slothy:writes=buffer16 +// stp x4, x2, [x0, #32] // @slothy:writes=buffer32 +// ret +// +// The bash script used for step 2 is as follows: +// +// # Store the assembly instructions except the last 'ret' as, say, 'input.S'. +// export OUTPUTS="[hint_buffer0,hint_buffer16,hint_buffer32]" +// export RESERVED_REGS="[x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,sp,q8,q9,q10,q11,q12,q13,q14,q15,v8,v9,v10,v11,v12,v13,v14,v15]" +// /tools/external/slothy.sh input.S my_out_dir +// # my_out_dir/3.opt.s is the optimized assembly. Its output may differ +// # from this file since the sequence is non-deterministically chosen. +// # Please add 'ret' at the end of the output assembly. + + +#include "_internal_s2n_bignum.h" + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(bignum_montsqr_p384_neon) + S2N_BN_SYM_PRIVACY_DIRECTIVE(bignum_montsqr_p384_neon) + .text + .balign 4 + +S2N_BN_SYMBOL(bignum_montsqr_p384_neon): + + ldr q1, [x1] + ldp x9, x2, [x1] + ldr q0, [x1] + ldp x4, x6, [x1, #16] + rev64 v21.4S, v1.4S + uzp2 v28.4S, v1.4S, v1.4S + umulh x7, x9, x2 + xtn v17.2S, v1.2D + mul v27.4S, v21.4S, v0.4S + ldr q20, [x1, #32] + xtn v30.2S, v0.2D + ldr q1, [x1, #32] + uzp2 v31.4S, v0.4S, v0.4S + ldp x5, x10, [x1, #32] + umulh x8, x9, x4 + uaddlp v3.2D, v27.4S + umull v16.2D, v30.2S, v17.2S + mul x16, x9, x4 + umull v27.2D, v30.2S, v28.2S + shrn v0.2S, v20.2D, #32 + xtn v7.2S, v20.2D + shl v20.2D, v3.2D, #32 + umull v3.2D, v31.2S, v28.2S + mul x3, x2, x4 + umlal v20.2D, v30.2S, v17.2S + umull v22.2D, v7.2S, v0.2S + usra v27.2D, v16.2D, #32 + umulh x11, x2, x4 + movi v21.2D, #0x00000000ffffffff + uzp2 v28.4S, v1.4S, v1.4S + adds x15, x16, x7 + and v5.16B, v27.16B, v21.16B + adcs x3, x3, x8 + usra v3.2D, v27.2D, #32 + dup v29.2D, x6 + adcs x16, x11, xzr + mov x14, v20.d[0] + umlal v5.2D, v31.2S, v17.2S + mul x8, x9, x2 + mov x7, v20.d[1] + shl v19.2D, v22.2D, #33 + xtn v25.2S, v29.2D + rev64 v31.4S, v1.4S + lsl x13, x14, #32 + uzp2 v6.4S, v29.4S, v29.4S + umlal v19.2D, v7.2S, v7.2S + usra v3.2D, v5.2D, #32 + adds x1, x8, x8 + umulh x8, x4, x4 + add x12, x13, x14 + mul v17.4S, v31.4S, v29.4S + xtn v4.2S, v1.2D + adcs x14, x15, x15 + lsr x13, x12, #32 + adcs x15, x3, x3 + umull v31.2D, v25.2S, v28.2S + adcs x11, x16, x16 + umull v21.2D, v25.2S, v4.2S + mov x17, v3.d[0] + umull v18.2D, v6.2S, v28.2S + adc x16, x8, xzr + uaddlp v16.2D, v17.4S + movi v1.2D, #0x00000000ffffffff + subs x13, x13, x12 + usra v31.2D, v21.2D, #32 + sbc x8, x12, xzr + adds x17, x17, x1 + mul x1, x4, x4 + shl v28.2D, v16.2D, #32 + mov x3, v3.d[1] + adcs x14, x7, x14 + extr x7, x8, x13, #32 + adcs x13, x3, x15 + and v3.16B, v31.16B, v1.16B + adcs x11, x1, x11 + lsr x1, x8, #32 + umlal v3.2D, v6.2S, v4.2S + usra v18.2D, v31.2D, #32 + adc x3, x16, xzr + adds x1, x1, x12 + umlal v28.2D, v25.2S, v4.2S + adc x16, xzr, xzr + subs x15, x17, x7 + sbcs x7, x14, x1 + lsl x1, x15, #32 + sbcs x16, x13, x16 + add x8, x1, x15 + usra v18.2D, v3.2D, #32 + sbcs x14, x11, xzr + lsr x1, x8, #32 + sbcs x17, x3, xzr + sbc x11, x12, xzr + subs x13, x1, x8 + umulh x12, x4, x10 + sbc x1, x8, xzr + extr x13, x1, x13, #32 + lsr x1, x1, #32 + adds x15, x1, x8 + adc x1, xzr, xzr + subs x7, x7, x13 + sbcs x13, x16, x15 + lsl x3, x7, #32 + umulh x16, x2, x5 + sbcs x15, x14, x1 + add x7, x3, x7 + sbcs x3, x17, xzr + lsr x1, x7, #32 + sbcs x14, x11, xzr + sbc x11, x8, xzr + subs x8, x1, x7 + sbc x1, x7, xzr + extr x8, x1, x8, #32 + lsr x1, x1, #32 + adds x1, x1, x7 + adc x17, xzr, xzr + subs x13, x13, x8 + umulh x8, x9, x6 + sbcs x1, x15, x1 + sbcs x15, x3, x17 + sbcs x3, x14, xzr + mul x17, x2, x5 + sbcs x11, x11, xzr + stp x13, x1, [x0] // @slothy:writes=buffer0 + sbc x14, x7, xzr + mul x7, x4, x10 + subs x1, x9, x2 + stp x15, x3, [x0, #16] // @slothy:writes=buffer16 + csetm x15, cc + cneg x1, x1, cc + stp x11, x14, [x0, #32] // @slothy:writes=buffer32 + mul x14, x9, x6 + adds x17, x8, x17 + adcs x7, x16, x7 + adc x13, x12, xzr + subs x12, x5, x6 + cneg x3, x12, cc + cinv x16, x15, cc + mul x8, x1, x3 + umulh x1, x1, x3 + eor x12, x8, x16 + adds x11, x17, x14 + adcs x3, x7, x17 + adcs x15, x13, x7 + adc x8, x13, xzr + adds x3, x3, x14 + adcs x15, x15, x17 + adcs x17, x8, x7 + eor x1, x1, x16 + adc x13, x13, xzr + subs x9, x9, x4 + csetm x8, cc + cneg x9, x9, cc + subs x4, x2, x4 + cneg x4, x4, cc + csetm x7, cc + subs x2, x10, x6 + cinv x8, x8, cc + cneg x2, x2, cc + cmn x16, #0x1 + adcs x11, x11, x12 + mul x12, x9, x2 + adcs x3, x3, x1 + adcs x15, x15, x16 + umulh x9, x9, x2 + adcs x17, x17, x16 + adc x13, x13, x16 + subs x1, x10, x5 + cinv x2, x7, cc + cneg x1, x1, cc + eor x9, x9, x8 + cmn x8, #0x1 + eor x7, x12, x8 + mul x12, x4, x1 + adcs x3, x3, x7 + adcs x7, x15, x9 + adcs x15, x17, x8 + ldp x9, x17, [x0, #16] // @slothy:reads=buffer16 + umulh x4, x4, x1 + adc x8, x13, x8 + cmn x2, #0x1 + eor x1, x12, x2 + adcs x1, x7, x1 + ldp x7, x16, [x0] // @slothy:reads=buffer0 + eor x12, x4, x2 + adcs x4, x15, x12 + ldp x15, x12, [x0, #32] // @slothy:reads=buffer32 + adc x8, x8, x2 + adds x13, x14, x14 + umulh x14, x5, x10 + adcs x2, x11, x11 + adcs x3, x3, x3 + adcs x1, x1, x1 + adcs x4, x4, x4 + adcs x11, x8, x8 + adc x8, xzr, xzr + adds x13, x13, x7 + adcs x2, x2, x16 + mul x16, x5, x10 + adcs x3, x3, x9 + adcs x1, x1, x17 + umulh x5, x5, x5 + lsl x9, x13, #32 + add x9, x9, x13 + adcs x4, x4, x15 + mov x13, v28.d[1] + adcs x15, x11, x12 + lsr x7, x9, #32 + adc x11, x8, xzr + subs x7, x7, x9 + umulh x10, x10, x10 + sbc x17, x9, xzr + extr x7, x17, x7, #32 + lsr x17, x17, #32 + adds x17, x17, x9 + adc x12, xzr, xzr + subs x8, x2, x7 + sbcs x17, x3, x17 + lsl x7, x8, #32 + sbcs x2, x1, x12 + add x3, x7, x8 + sbcs x12, x4, xzr + lsr x1, x3, #32 + sbcs x7, x15, xzr + sbc x15, x9, xzr + subs x1, x1, x3 + sbc x4, x3, xzr + lsr x9, x4, #32 + extr x8, x4, x1, #32 + adds x9, x9, x3 + adc x4, xzr, xzr + subs x1, x17, x8 + lsl x17, x1, #32 + sbcs x8, x2, x9 + sbcs x9, x12, x4 + add x17, x17, x1 + mov x1, v18.d[1] + lsr x2, x17, #32 + sbcs x7, x7, xzr + mov x12, v18.d[0] + sbcs x15, x15, xzr + sbc x3, x3, xzr + subs x4, x2, x17 + sbc x2, x17, xzr + adds x12, x13, x12 + adcs x16, x16, x1 + lsr x13, x2, #32 + extr x1, x2, x4, #32 + adc x2, x14, xzr + adds x4, x13, x17 + mul x13, x6, x6 + adc x14, xzr, xzr + subs x1, x8, x1 + sbcs x4, x9, x4 + mov x9, v28.d[0] + sbcs x7, x7, x14 + sbcs x8, x15, xzr + sbcs x3, x3, xzr + sbc x14, x17, xzr + adds x17, x9, x9 + adcs x12, x12, x12 + mov x15, v19.d[0] + adcs x9, x16, x16 + umulh x6, x6, x6 + adcs x16, x2, x2 + adc x2, xzr, xzr + adds x11, x11, x8 + adcs x3, x3, xzr + adcs x14, x14, xzr + adcs x8, xzr, xzr + adds x13, x1, x13 + mov x1, v19.d[1] + adcs x6, x4, x6 + mov x4, #0xffffffff + adcs x15, x7, x15 + adcs x7, x11, x5 + adcs x1, x3, x1 + adcs x14, x14, x10 + adc x11, x8, xzr + adds x6, x6, x17 + adcs x8, x15, x12 + adcs x3, x7, x9 + adcs x15, x1, x16 + mov x16, #0xffffffff00000001 + adcs x14, x14, x2 + mov x2, #0x1 + adc x17, x11, xzr + cmn x13, x16 + adcs xzr, x6, x4 + adcs xzr, x8, x2 + adcs xzr, x3, xzr + adcs xzr, x15, xzr + adcs xzr, x14, xzr + adc x1, x17, xzr + neg x9, x1 + and x1, x16, x9 + adds x11, x13, x1 + and x13, x4, x9 + adcs x5, x6, x13 + and x1, x2, x9 + adcs x7, x8, x1 + stp x11, x5, [x0] // @slothy:writes=buffer0 + adcs x11, x3, xzr + adcs x2, x15, xzr + stp x7, x11, [x0, #16] // @slothy:writes=buffer16 + adc x17, x14, xzr + stp x2, x17, [x0, #32] // depth 72 // @slothy:writes=buffer32 + + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack,"",%progbits +#endif diff --git a/third_party/s2n-bignum/arm/p384/p384_montjadd.S b/third_party/s2n-bignum/arm/p384/p384_montjadd.S index 9c0e1ecb99..3b65363162 100644 --- a/third_party/s2n-bignum/arm/p384/p384_montjadd.S +++ b/third_party/s2n-bignum/arm/p384/p384_montjadd.S @@ -49,6 +49,7 @@ #define z1sq sp, #(NUMSIZE*0) #define ww sp, #(NUMSIZE*0) +#define resx sp, #(NUMSIZE*0) #define yd sp, #(NUMSIZE*1) #define y2a sp, #(NUMSIZE*1) @@ -62,723 +63,660 @@ #define t2 sp, #(NUMSIZE*4) #define x1a sp, #(NUMSIZE*4) #define zzx1 sp, #(NUMSIZE*4) +#define resy sp, #(NUMSIZE*4) #define xd sp, #(NUMSIZE*5) #define z2sq sp, #(NUMSIZE*5) +#define resz sp, #(NUMSIZE*5) #define y1a sp, #(NUMSIZE*6) #define NSPACE (NUMSIZE*7) -// Corresponds exactly to bignum_montmul_p384_alt +// Corresponds to bignum_montmul_p384 except x24 -> x0 #define montmul_p384(P0,P1,P2) \ ldp x3, x4, [P1]; \ - ldp x5, x6, [P2]; \ - mul x12, x3, x5; \ - umulh x13, x3, x5; \ - mul x11, x3, x6; \ - umulh x14, x3, x6; \ - adds x13, x13, x11; \ - ldp x7, x8, [P2+16]; \ - mul x11, x3, x7; \ - umulh x15, x3, x7; \ - adcs x14, x14, x11; \ - mul x11, x3, x8; \ - umulh x16, x3, x8; \ - adcs x15, x15, x11; \ - ldp x9, x10, [P2+32]; \ - mul x11, x3, x9; \ - umulh x17, x3, x9; \ - adcs x16, x16, x11; \ - mul x11, x3, x10; \ - umulh x19, x3, x10; \ - adcs x17, x17, x11; \ - adc x19, x19, xzr; \ - mul x11, x4, x5; \ - adds x13, x13, x11; \ - mul x11, x4, x6; \ - adcs x14, x14, x11; \ - mul x11, x4, x7; \ - adcs x15, x15, x11; \ - mul x11, x4, x8; \ - adcs x16, x16, x11; \ - mul x11, x4, x9; \ - adcs x17, x17, x11; \ - mul x11, x4, x10; \ - adcs x19, x19, x11; \ - cset x20, cs; \ - umulh x11, x4, x5; \ - adds x14, x14, x11; \ - umulh x11, x4, x6; \ - adcs x15, x15, x11; \ - umulh x11, x4, x7; \ - adcs x16, x16, x11; \ - umulh x11, x4, x8; \ - adcs x17, x17, x11; \ - umulh x11, x4, x9; \ - adcs x19, x19, x11; \ - umulh x11, x4, x10; \ - adc x20, x20, x11; \ - ldp x3, x4, [P1+16]; \ - mul x11, x3, x5; \ - adds x14, x14, x11; \ - mul x11, x3, x6; \ - adcs x15, x15, x11; \ - mul x11, x3, x7; \ - adcs x16, x16, x11; \ - mul x11, x3, x8; \ - adcs x17, x17, x11; \ - mul x11, x3, x9; \ - adcs x19, x19, x11; \ - mul x11, x3, x10; \ - adcs x20, x20, x11; \ - cset x21, cs; \ - umulh x11, x3, x5; \ - adds x15, x15, x11; \ - umulh x11, x3, x6; \ - adcs x16, x16, x11; \ - umulh x11, x3, x7; \ - adcs x17, x17, x11; \ - umulh x11, x3, x8; \ - adcs x19, x19, x11; \ - umulh x11, x3, x9; \ - adcs x20, x20, x11; \ - umulh x11, x3, x10; \ - adc x21, x21, x11; \ - mul x11, x4, x5; \ - adds x15, x15, x11; \ - mul x11, x4, x6; \ - adcs x16, x16, x11; \ - mul x11, x4, x7; \ - adcs x17, x17, x11; \ - mul x11, x4, x8; \ - adcs x19, x19, x11; \ - mul x11, x4, x9; \ - adcs x20, x20, x11; \ - mul x11, x4, x10; \ - adcs x21, x21, x11; \ - cset x22, cs; \ - umulh x11, x4, x5; \ - adds x16, x16, x11; \ - umulh x11, x4, x6; \ - adcs x17, x17, x11; \ - umulh x11, x4, x7; \ - adcs x19, x19, x11; \ - umulh x11, x4, x8; \ - adcs x20, x20, x11; \ - umulh x11, x4, x9; \ - adcs x21, x21, x11; \ - umulh x11, x4, x10; \ - adc x22, x22, x11; \ - ldp x3, x4, [P1+32]; \ - mul x11, x3, x5; \ - adds x16, x16, x11; \ - mul x11, x3, x6; \ - adcs x17, x17, x11; \ - mul x11, x3, x7; \ - adcs x19, x19, x11; \ - mul x11, x3, x8; \ - adcs x20, x20, x11; \ - mul x11, x3, x9; \ - adcs x21, x21, x11; \ - mul x11, x3, x10; \ - adcs x22, x22, x11; \ - cset x2, cs; \ - umulh x11, x3, x5; \ - adds x17, x17, x11; \ - umulh x11, x3, x6; \ - adcs x19, x19, x11; \ - umulh x11, x3, x7; \ - adcs x20, x20, x11; \ - umulh x11, x3, x8; \ - adcs x21, x21, x11; \ - umulh x11, x3, x9; \ - adcs x22, x22, x11; \ - umulh x11, x3, x10; \ - adc x2, x2, x11; \ - mul x11, x4, x5; \ - adds x17, x17, x11; \ - mul x11, x4, x6; \ - adcs x19, x19, x11; \ - mul x11, x4, x7; \ - adcs x20, x20, x11; \ - mul x11, x4, x8; \ - adcs x21, x21, x11; \ - mul x11, x4, x9; \ - adcs x22, x22, x11; \ - mul x11, x4, x10; \ - adcs x2, x2, x11; \ - cset x1, cs; \ - umulh x11, x4, x5; \ - adds x19, x19, x11; \ - umulh x11, x4, x6; \ - adcs x20, x20, x11; \ - umulh x11, x4, x7; \ - adcs x21, x21, x11; \ - umulh x11, x4, x8; \ - adcs x22, x22, x11; \ - umulh x11, x4, x9; \ - adcs x2, x2, x11; \ - umulh x11, x4, x10; \ - adc x1, x1, x11; \ - lsl x7, x12, #32; \ - add x12, x7, x12; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x12; \ - mov x6, #0xffffffff; \ - mul x5, x6, x12; \ - umulh x6, x6, x12; \ - adds x7, x7, x5; \ - adcs x6, x6, x12; \ - adc x5, xzr, xzr; \ - subs x13, x13, x7; \ - sbcs x14, x14, x6; \ - sbcs x15, x15, x5; \ + ldp x5, x6, [P1+16]; \ + ldp x7, x8, [P1+32]; \ + ldp x9, x10, [P2]; \ + ldp x11, x12, [P2+16]; \ + ldp x13, x14, [P2+32]; \ + mul x15, x3, x9; \ + mul x21, x4, x10; \ + mul x22, x5, x11; \ + umulh x23, x3, x9; \ + umulh x0, x4, x10; \ + umulh x1, x5, x11; \ + adds x23, x23, x21; \ + adcs x0, x0, x22; \ + adc x1, x1, xzr; \ + adds x16, x23, x15; \ + adcs x17, x0, x23; \ + adcs x19, x1, x0; \ + adc x20, x1, xzr; \ + adds x17, x17, x15; \ + adcs x19, x19, x23; \ + adcs x20, x20, x0; \ + adc x1, x1, xzr; \ + subs x0, x3, x4; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x10, x9; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x16, x16, x21; \ + adcs x17, x17, x22; \ + adcs x19, x19, x23; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x0, x3, x5; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x11, x9; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x17, x17, x21; \ + adcs x19, x19, x22; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x0, x4, x5; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x11, x10; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x19, x19, x21; \ + adcs x20, x20, x22; \ + adc x1, x1, x23; \ + lsl x23, x15, #32; \ + add x15, x23, x15; \ + lsr x23, x15, #32; \ + subs x23, x23, x15; \ + sbc x22, x15, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x15; \ + adc x21, xzr, xzr; \ + subs x16, x16, x23; \ + sbcs x17, x17, x22; \ + sbcs x19, x19, x21; \ + sbcs x20, x20, xzr; \ + sbcs x1, x1, xzr; \ + sbc x15, x15, xzr; \ + lsl x23, x16, #32; \ + add x16, x23, x16; \ + lsr x23, x16, #32; \ + subs x23, x23, x16; \ + sbc x22, x16, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x16; \ + adc x21, xzr, xzr; \ + subs x17, x17, x23; \ + sbcs x19, x19, x22; \ + sbcs x20, x20, x21; \ + sbcs x1, x1, xzr; \ + sbcs x15, x15, xzr; \ + sbc x16, x16, xzr; \ + lsl x23, x17, #32; \ + add x17, x23, x17; \ + lsr x23, x17, #32; \ + subs x23, x23, x17; \ + sbc x22, x17, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x17; \ + adc x21, xzr, xzr; \ + subs x19, x19, x23; \ + sbcs x20, x20, x22; \ + sbcs x1, x1, x21; \ + sbcs x15, x15, xzr; \ sbcs x16, x16, xzr; \ - sbcs x17, x17, xzr; \ - sbc x12, x12, xzr; \ - lsl x7, x13, #32; \ - add x13, x7, x13; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x13; \ - mov x6, #0xffffffff; \ - mul x5, x6, x13; \ - umulh x6, x6, x13; \ - adds x7, x7, x5; \ - adcs x6, x6, x13; \ - adc x5, xzr, xzr; \ - subs x14, x14, x7; \ - sbcs x15, x15, x6; \ - sbcs x16, x16, x5; \ - sbcs x17, x17, xzr; \ - sbcs x12, x12, xzr; \ - sbc x13, x13, xzr; \ - lsl x7, x14, #32; \ - add x14, x7, x14; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x14; \ - mov x6, #0xffffffff; \ - mul x5, x6, x14; \ - umulh x6, x6, x14; \ - adds x7, x7, x5; \ - adcs x6, x6, x14; \ - adc x5, xzr, xzr; \ - subs x15, x15, x7; \ - sbcs x16, x16, x6; \ - sbcs x17, x17, x5; \ - sbcs x12, x12, xzr; \ - sbcs x13, x13, xzr; \ - sbc x14, x14, xzr; \ - lsl x7, x15, #32; \ - add x15, x7, x15; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x15; \ - mov x6, #0xffffffff; \ - mul x5, x6, x15; \ - umulh x6, x6, x15; \ - adds x7, x7, x5; \ - adcs x6, x6, x15; \ - adc x5, xzr, xzr; \ - subs x16, x16, x7; \ - sbcs x17, x17, x6; \ - sbcs x12, x12, x5; \ - sbcs x13, x13, xzr; \ - sbcs x14, x14, xzr; \ + sbc x17, x17, xzr; \ + stp x19, x20, [P0]; \ + stp x1, x15, [P0+16]; \ + stp x16, x17, [P0+32]; \ + mul x15, x6, x12; \ + mul x21, x7, x13; \ + mul x22, x8, x14; \ + umulh x23, x6, x12; \ + umulh x0, x7, x13; \ + umulh x1, x8, x14; \ + adds x23, x23, x21; \ + adcs x0, x0, x22; \ + adc x1, x1, xzr; \ + adds x16, x23, x15; \ + adcs x17, x0, x23; \ + adcs x19, x1, x0; \ + adc x20, x1, xzr; \ + adds x17, x17, x15; \ + adcs x19, x19, x23; \ + adcs x20, x20, x0; \ + adc x1, x1, xzr; \ + subs x0, x6, x7; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x13, x12; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x16, x16, x21; \ + adcs x17, x17, x22; \ + adcs x19, x19, x23; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x0, x6, x8; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x14, x12; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x17, x17, x21; \ + adcs x19, x19, x22; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x0, x7, x8; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x14, x13; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x19, x19, x21; \ + adcs x20, x20, x22; \ + adc x1, x1, x23; \ + subs x6, x6, x3; \ + sbcs x7, x7, x4; \ + sbcs x8, x8, x5; \ + ngc x3, xzr; \ + cmn x3, #1; \ + eor x6, x6, x3; \ + adcs x6, x6, xzr; \ + eor x7, x7, x3; \ + adcs x7, x7, xzr; \ + eor x8, x8, x3; \ + adc x8, x8, xzr; \ + subs x9, x9, x12; \ + sbcs x10, x10, x13; \ + sbcs x11, x11, x14; \ + ngc x14, xzr; \ + cmn x14, #1; \ + eor x9, x9, x14; \ + adcs x9, x9, xzr; \ + eor x10, x10, x14; \ + adcs x10, x10, xzr; \ + eor x11, x11, x14; \ + adc x11, x11, xzr; \ + eor x14, x3, x14; \ + ldp x21, x22, [P0]; \ + adds x15, x15, x21; \ + adcs x16, x16, x22; \ + ldp x21, x22, [P0+16]; \ + adcs x17, x17, x21; \ + adcs x19, x19, x22; \ + ldp x21, x22, [P0+32]; \ + adcs x20, x20, x21; \ + adcs x1, x1, x22; \ + adc x2, xzr, xzr; \ + stp x15, x16, [P0]; \ + stp x17, x19, [P0+16]; \ + stp x20, x1, [P0+32]; \ + mul x15, x6, x9; \ + mul x21, x7, x10; \ + mul x22, x8, x11; \ + umulh x23, x6, x9; \ + umulh x0, x7, x10; \ + umulh x1, x8, x11; \ + adds x23, x23, x21; \ + adcs x0, x0, x22; \ + adc x1, x1, xzr; \ + adds x16, x23, x15; \ + adcs x17, x0, x23; \ + adcs x19, x1, x0; \ + adc x20, x1, xzr; \ + adds x17, x17, x15; \ + adcs x19, x19, x23; \ + adcs x20, x20, x0; \ + adc x1, x1, xzr; \ + subs x0, x6, x7; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x10, x9; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x16, x16, x21; \ + adcs x17, x17, x22; \ + adcs x19, x19, x23; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x0, x6, x8; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x11, x9; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x17, x17, x21; \ + adcs x19, x19, x22; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x0, x7, x8; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x11, x10; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x19, x19, x21; \ + adcs x20, x20, x22; \ + adc x1, x1, x23; \ + ldp x3, x4, [P0]; \ + ldp x5, x6, [P0+16]; \ + ldp x7, x8, [P0+32]; \ + cmn x14, #1; \ + eor x15, x15, x14; \ + adcs x15, x15, x3; \ + eor x16, x16, x14; \ + adcs x16, x16, x4; \ + eor x17, x17, x14; \ + adcs x17, x17, x5; \ + eor x19, x19, x14; \ + adcs x19, x19, x6; \ + eor x20, x20, x14; \ + adcs x20, x20, x7; \ + eor x1, x1, x14; \ + adcs x1, x1, x8; \ + adcs x9, x14, x2; \ + adcs x10, x14, xzr; \ + adcs x11, x14, xzr; \ + adc x12, x14, xzr; \ + adds x19, x19, x3; \ + adcs x20, x20, x4; \ + adcs x1, x1, x5; \ + adcs x9, x9, x6; \ + adcs x10, x10, x7; \ + adcs x11, x11, x8; \ + adc x12, x12, x2; \ + lsl x23, x15, #32; \ + add x15, x23, x15; \ + lsr x23, x15, #32; \ + subs x23, x23, x15; \ + sbc x22, x15, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x15; \ + adc x21, xzr, xzr; \ + subs x16, x16, x23; \ + sbcs x17, x17, x22; \ + sbcs x19, x19, x21; \ + sbcs x20, x20, xzr; \ + sbcs x1, x1, xzr; \ sbc x15, x15, xzr; \ - lsl x7, x16, #32; \ - add x16, x7, x16; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x16; \ - mov x6, #0xffffffff; \ - mul x5, x6, x16; \ - umulh x6, x6, x16; \ - adds x7, x7, x5; \ - adcs x6, x6, x16; \ - adc x5, xzr, xzr; \ - subs x17, x17, x7; \ - sbcs x12, x12, x6; \ - sbcs x13, x13, x5; \ - sbcs x14, x14, xzr; \ + lsl x23, x16, #32; \ + add x16, x23, x16; \ + lsr x23, x16, #32; \ + subs x23, x23, x16; \ + sbc x22, x16, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x16; \ + adc x21, xzr, xzr; \ + subs x17, x17, x23; \ + sbcs x19, x19, x22; \ + sbcs x20, x20, x21; \ + sbcs x1, x1, xzr; \ sbcs x15, x15, xzr; \ sbc x16, x16, xzr; \ - lsl x7, x17, #32; \ - add x17, x7, x17; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x17; \ - mov x6, #0xffffffff; \ - mul x5, x6, x17; \ - umulh x6, x6, x17; \ - adds x7, x7, x5; \ - adcs x6, x6, x17; \ - adc x5, xzr, xzr; \ - subs x12, x12, x7; \ - sbcs x13, x13, x6; \ - sbcs x14, x14, x5; \ + lsl x23, x17, #32; \ + add x17, x23, x17; \ + lsr x23, x17, #32; \ + subs x23, x23, x17; \ + sbc x22, x17, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x17; \ + adc x21, xzr, xzr; \ + subs x19, x19, x23; \ + sbcs x20, x20, x22; \ + sbcs x1, x1, x21; \ sbcs x15, x15, xzr; \ sbcs x16, x16, xzr; \ sbc x17, x17, xzr; \ - adds x12, x12, x19; \ - adcs x13, x13, x20; \ - adcs x14, x14, x21; \ - adcs x15, x15, x22; \ - adcs x16, x16, x2; \ - adcs x17, x17, x1; \ - adc x10, xzr, xzr; \ - mov x11, #0xffffffff00000001; \ - adds x19, x12, x11; \ - mov x11, #0xffffffff; \ - adcs x20, x13, x11; \ - mov x11, #0x1; \ - adcs x21, x14, x11; \ - adcs x22, x15, xzr; \ - adcs x2, x16, xzr; \ - adcs x1, x17, xzr; \ + adds x9, x9, x15; \ + adcs x10, x10, x16; \ + adcs x11, x11, x17; \ + adc x12, x12, xzr; \ + add x22, x12, #1; \ + lsl x21, x22, #32; \ + subs x0, x22, x21; \ + sbc x21, x21, xzr; \ + adds x19, x19, x0; \ + adcs x20, x20, x21; \ + adcs x1, x1, x22; \ + adcs x9, x9, xzr; \ adcs x10, x10, xzr; \ - csel x12, x12, x19, eq; \ - csel x13, x13, x20, eq; \ - csel x14, x14, x21, eq; \ - csel x15, x15, x22, eq; \ - csel x16, x16, x2, eq; \ - csel x17, x17, x1, eq; \ - stp x12, x13, [P0]; \ - stp x14, x15, [P0+16]; \ - stp x16, x17, [P0+32] - -// Corresponds exactly to bignum_montsqr_p384_alt + adcs x11, x11, xzr; \ + csetm x22, lo; \ + mov x23, #4294967295; \ + and x23, x23, x22; \ + adds x19, x19, x23; \ + eor x23, x23, x22; \ + adcs x20, x20, x23; \ + mov x23, #-2; \ + and x23, x23, x22; \ + adcs x1, x1, x23; \ + adcs x9, x9, x22; \ + adcs x10, x10, x22; \ + adc x11, x11, x22; \ + stp x19, x20, [P0]; \ + stp x1, x9, [P0+16]; \ + stp x10, x11, [P0+32] + +// Corresponds exactly to bignum_montsqr_p384 #define montsqr_p384(P0,P1) \ ldp x2, x3, [P1]; \ - mul x9, x2, x3; \ - umulh x10, x2, x3; \ ldp x4, x5, [P1+16]; \ - mul x8, x2, x4; \ - adds x10, x10, x8; \ - mul x11, x2, x5; \ - mul x8, x3, x4; \ - adcs x11, x11, x8; \ - umulh x12, x2, x5; \ - mul x8, x3, x5; \ - adcs x12, x12, x8; \ ldp x6, x7, [P1+32]; \ - mul x13, x2, x7; \ - mul x8, x3, x6; \ - adcs x13, x13, x8; \ - umulh x14, x2, x7; \ - mul x8, x3, x7; \ - adcs x14, x14, x8; \ - mul x15, x5, x6; \ - adcs x15, x15, xzr; \ - umulh x16, x5, x6; \ - adc x16, x16, xzr; \ - umulh x8, x2, x4; \ - adds x11, x11, x8; \ - umulh x8, x3, x4; \ - adcs x12, x12, x8; \ - umulh x8, x3, x5; \ - adcs x13, x13, x8; \ - umulh x8, x3, x6; \ - adcs x14, x14, x8; \ - umulh x8, x3, x7; \ - adcs x15, x15, x8; \ - adc x16, x16, xzr; \ - mul x8, x2, x6; \ - adds x12, x12, x8; \ - mul x8, x4, x5; \ - adcs x13, x13, x8; \ - mul x8, x4, x6; \ - adcs x14, x14, x8; \ - mul x8, x4, x7; \ - adcs x15, x15, x8; \ - mul x8, x5, x7; \ - adcs x16, x16, x8; \ - mul x17, x6, x7; \ + mul x14, x2, x3; \ + mul x15, x2, x4; \ + mul x16, x3, x4; \ + mul x8, x2, x2; \ + mul x10, x3, x3; \ + mul x12, x4, x4; \ + umulh x17, x2, x3; \ + adds x15, x15, x17; \ + umulh x17, x2, x4; \ + adcs x16, x16, x17; \ + umulh x17, x3, x4; \ adcs x17, x17, xzr; \ - umulh x19, x6, x7; \ - adc x19, x19, xzr; \ - umulh x8, x2, x6; \ - adds x13, x13, x8; \ - umulh x8, x4, x5; \ - adcs x14, x14, x8; \ - umulh x8, x4, x6; \ - adcs x15, x15, x8; \ - umulh x8, x4, x7; \ - adcs x16, x16, x8; \ - umulh x8, x5, x7; \ - adcs x17, x17, x8; \ - adc x19, x19, xzr; \ - adds x9, x9, x9; \ - adcs x10, x10, x10; \ - adcs x11, x11, x11; \ - adcs x12, x12, x12; \ - adcs x13, x13, x13; \ - adcs x14, x14, x14; \ + umulh x9, x2, x2; \ + umulh x11, x3, x3; \ + umulh x13, x4, x4; \ + adds x14, x14, x14; \ adcs x15, x15, x15; \ adcs x16, x16, x16; \ adcs x17, x17, x17; \ - adcs x19, x19, x19; \ - cset x20, hs; \ - umulh x8, x2, x2; \ - mul x2, x2, x2; \ - adds x9, x9, x8; \ - mul x8, x3, x3; \ - adcs x10, x10, x8; \ - umulh x8, x3, x3; \ - adcs x11, x11, x8; \ - mul x8, x4, x4; \ - adcs x12, x12, x8; \ - umulh x8, x4, x4; \ - adcs x13, x13, x8; \ - mul x8, x5, x5; \ - adcs x14, x14, x8; \ - umulh x8, x5, x5; \ - adcs x15, x15, x8; \ - mul x8, x6, x6; \ - adcs x16, x16, x8; \ - umulh x8, x6, x6; \ - adcs x17, x17, x8; \ - mul x8, x7, x7; \ - adcs x19, x19, x8; \ - umulh x8, x7, x7; \ - adc x20, x20, x8; \ - lsl x5, x2, #32; \ - add x2, x5, x2; \ - mov x5, #-4294967295; \ - umulh x5, x5, x2; \ - mov x4, #4294967295; \ - mul x3, x4, x2; \ - umulh x4, x4, x2; \ - adds x5, x5, x3; \ - adcs x4, x4, x2; \ - adc x3, xzr, xzr; \ - subs x9, x9, x5; \ - sbcs x10, x10, x4; \ - sbcs x11, x11, x3; \ + adc x13, x13, xzr; \ + adds x9, x9, x14; \ + adcs x10, x10, x15; \ + adcs x11, x11, x16; \ + adcs x12, x12, x17; \ + adc x13, x13, xzr; \ + lsl x16, x8, #32; \ + add x8, x16, x8; \ + lsr x16, x8, #32; \ + subs x16, x16, x8; \ + sbc x15, x8, xzr; \ + extr x16, x15, x16, #32; \ + lsr x15, x15, #32; \ + adds x15, x15, x8; \ + adc x14, xzr, xzr; \ + subs x9, x9, x16; \ + sbcs x10, x10, x15; \ + sbcs x11, x11, x14; \ sbcs x12, x12, xzr; \ sbcs x13, x13, xzr; \ - sbc x2, x2, xzr; \ - lsl x5, x9, #32; \ - add x9, x5, x9; \ - mov x5, #-4294967295; \ - umulh x5, x5, x9; \ - mov x4, #4294967295; \ - mul x3, x4, x9; \ - umulh x4, x4, x9; \ - adds x5, x5, x3; \ - adcs x4, x4, x9; \ - adc x3, xzr, xzr; \ - subs x10, x10, x5; \ - sbcs x11, x11, x4; \ - sbcs x12, x12, x3; \ + sbc x8, x8, xzr; \ + lsl x16, x9, #32; \ + add x9, x16, x9; \ + lsr x16, x9, #32; \ + subs x16, x16, x9; \ + sbc x15, x9, xzr; \ + extr x16, x15, x16, #32; \ + lsr x15, x15, #32; \ + adds x15, x15, x9; \ + adc x14, xzr, xzr; \ + subs x10, x10, x16; \ + sbcs x11, x11, x15; \ + sbcs x12, x12, x14; \ sbcs x13, x13, xzr; \ - sbcs x2, x2, xzr; \ + sbcs x8, x8, xzr; \ sbc x9, x9, xzr; \ - lsl x5, x10, #32; \ - add x10, x5, x10; \ - mov x5, #-4294967295; \ - umulh x5, x5, x10; \ - mov x4, #4294967295; \ - mul x3, x4, x10; \ - umulh x4, x4, x10; \ - adds x5, x5, x3; \ - adcs x4, x4, x10; \ - adc x3, xzr, xzr; \ - subs x11, x11, x5; \ - sbcs x12, x12, x4; \ - sbcs x13, x13, x3; \ - sbcs x2, x2, xzr; \ + lsl x16, x10, #32; \ + add x10, x16, x10; \ + lsr x16, x10, #32; \ + subs x16, x16, x10; \ + sbc x15, x10, xzr; \ + extr x16, x15, x16, #32; \ + lsr x15, x15, #32; \ + adds x15, x15, x10; \ + adc x14, xzr, xzr; \ + subs x11, x11, x16; \ + sbcs x12, x12, x15; \ + sbcs x13, x13, x14; \ + sbcs x8, x8, xzr; \ sbcs x9, x9, xzr; \ sbc x10, x10, xzr; \ - lsl x5, x11, #32; \ - add x11, x5, x11; \ - mov x5, #-4294967295; \ - umulh x5, x5, x11; \ - mov x4, #4294967295; \ - mul x3, x4, x11; \ - umulh x4, x4, x11; \ - adds x5, x5, x3; \ - adcs x4, x4, x11; \ - adc x3, xzr, xzr; \ - subs x12, x12, x5; \ - sbcs x13, x13, x4; \ - sbcs x2, x2, x3; \ - sbcs x9, x9, xzr; \ - sbcs x10, x10, xzr; \ - sbc x11, x11, xzr; \ - lsl x5, x12, #32; \ - add x12, x5, x12; \ - mov x5, #-4294967295; \ - umulh x5, x5, x12; \ - mov x4, #4294967295; \ - mul x3, x4, x12; \ - umulh x4, x4, x12; \ - adds x5, x5, x3; \ - adcs x4, x4, x12; \ - adc x3, xzr, xzr; \ - subs x13, x13, x5; \ - sbcs x2, x2, x4; \ - sbcs x9, x9, x3; \ - sbcs x10, x10, xzr; \ - sbcs x11, x11, xzr; \ - sbc x12, x12, xzr; \ - lsl x5, x13, #32; \ - add x13, x5, x13; \ - mov x5, #-4294967295; \ - umulh x5, x5, x13; \ - mov x4, #4294967295; \ - mul x3, x4, x13; \ - umulh x4, x4, x13; \ - adds x5, x5, x3; \ - adcs x4, x4, x13; \ - adc x3, xzr, xzr; \ - subs x2, x2, x5; \ - sbcs x9, x9, x4; \ - sbcs x10, x10, x3; \ - sbcs x11, x11, xzr; \ - sbcs x12, x12, xzr; \ - sbc x13, x13, xzr; \ - adds x2, x2, x14; \ - adcs x9, x9, x15; \ - adcs x10, x10, x16; \ - adcs x11, x11, x17; \ - adcs x12, x12, x19; \ - adcs x13, x13, x20; \ - adc x6, xzr, xzr; \ - mov x8, #-4294967295; \ - adds x14, x2, x8; \ - mov x8, #4294967295; \ - adcs x15, x9, x8; \ - mov x8, #1; \ - adcs x16, x10, x8; \ - adcs x17, x11, xzr; \ - adcs x19, x12, xzr; \ - adcs x20, x13, xzr; \ - adcs x6, x6, xzr; \ - csel x2, x2, x14, eq; \ - csel x9, x9, x15, eq; \ - csel x10, x10, x16, eq; \ - csel x11, x11, x17, eq; \ - csel x12, x12, x19, eq; \ - csel x13, x13, x20, eq; \ - stp x2, x9, [P0]; \ - stp x10, x11, [P0+16]; \ - stp x12, x13, [P0+32] - -// Almost-Montgomery variant which we use when an input to other muls -// with the other argument fully reduced (which is always safe). In -// fact, with the Karatsuba-based Montgomery mul here, we don't even -// *need* the restriction that the other argument is reduced. - -#define amontsqr_p384(P0,P1) \ - ldp x2, x3, [P1]; \ - mul x9, x2, x3; \ - umulh x10, x2, x3; \ - ldp x4, x5, [P1+16]; \ - mul x8, x2, x4; \ + stp x11, x12, [P0]; \ + stp x13, x8, [P0+16]; \ + stp x9, x10, [P0+32]; \ + mul x8, x2, x5; \ + mul x14, x3, x6; \ + mul x15, x4, x7; \ + umulh x16, x2, x5; \ + umulh x17, x3, x6; \ + umulh x1, x4, x7; \ + adds x16, x16, x14; \ + adcs x17, x17, x15; \ + adc x1, x1, xzr; \ + adds x9, x16, x8; \ + adcs x10, x17, x16; \ + adcs x11, x1, x17; \ + adc x12, x1, xzr; \ adds x10, x10, x8; \ - mul x11, x2, x5; \ - mul x8, x3, x4; \ - adcs x11, x11, x8; \ - umulh x12, x2, x5; \ - mul x8, x3, x5; \ - adcs x12, x12, x8; \ - ldp x6, x7, [P1+32]; \ - mul x13, x2, x7; \ - mul x8, x3, x6; \ - adcs x13, x13, x8; \ - umulh x14, x2, x7; \ - mul x8, x3, x7; \ - adcs x14, x14, x8; \ - mul x15, x5, x6; \ - adcs x15, x15, xzr; \ - umulh x16, x5, x6; \ - adc x16, x16, xzr; \ - umulh x8, x2, x4; \ - adds x11, x11, x8; \ - umulh x8, x3, x4; \ - adcs x12, x12, x8; \ - umulh x8, x3, x5; \ - adcs x13, x13, x8; \ - umulh x8, x3, x6; \ - adcs x14, x14, x8; \ - umulh x8, x3, x7; \ - adcs x15, x15, x8; \ - adc x16, x16, xzr; \ - mul x8, x2, x6; \ - adds x12, x12, x8; \ - mul x8, x4, x5; \ - adcs x13, x13, x8; \ - mul x8, x4, x6; \ - adcs x14, x14, x8; \ - mul x8, x4, x7; \ - adcs x15, x15, x8; \ - mul x8, x5, x7; \ - adcs x16, x16, x8; \ - mul x17, x6, x7; \ - adcs x17, x17, xzr; \ - umulh x19, x6, x7; \ - adc x19, x19, xzr; \ - umulh x8, x2, x6; \ - adds x13, x13, x8; \ - umulh x8, x4, x5; \ - adcs x14, x14, x8; \ - umulh x8, x4, x6; \ - adcs x15, x15, x8; \ - umulh x8, x4, x7; \ - adcs x16, x16, x8; \ - umulh x8, x5, x7; \ - adcs x17, x17, x8; \ - adc x19, x19, xzr; \ - adds x9, x9, x9; \ + adcs x11, x11, x16; \ + adcs x12, x12, x17; \ + adc x13, x1, xzr; \ + subs x17, x2, x3; \ + cneg x17, x17, lo; \ + csetm x14, lo; \ + subs x15, x6, x5; \ + cneg x15, x15, lo; \ + mul x16, x17, x15; \ + umulh x15, x17, x15; \ + cinv x14, x14, lo; \ + eor x16, x16, x14; \ + eor x15, x15, x14; \ + cmn x14, #1; \ + adcs x9, x9, x16; \ + adcs x10, x10, x15; \ + adcs x11, x11, x14; \ + adcs x12, x12, x14; \ + adc x13, x13, x14; \ + subs x17, x2, x4; \ + cneg x17, x17, lo; \ + csetm x14, lo; \ + subs x15, x7, x5; \ + cneg x15, x15, lo; \ + mul x16, x17, x15; \ + umulh x15, x17, x15; \ + cinv x14, x14, lo; \ + eor x16, x16, x14; \ + eor x15, x15, x14; \ + cmn x14, #1; \ + adcs x10, x10, x16; \ + adcs x11, x11, x15; \ + adcs x12, x12, x14; \ + adc x13, x13, x14; \ + subs x17, x3, x4; \ + cneg x17, x17, lo; \ + csetm x14, lo; \ + subs x15, x7, x6; \ + cneg x15, x15, lo; \ + mul x16, x17, x15; \ + umulh x15, x17, x15; \ + cinv x14, x14, lo; \ + eor x16, x16, x14; \ + eor x15, x15, x14; \ + cmn x14, #1; \ + adcs x11, x11, x16; \ + adcs x12, x12, x15; \ + adc x13, x13, x14; \ + adds x8, x8, x8; \ + adcs x9, x9, x9; \ adcs x10, x10, x10; \ adcs x11, x11, x11; \ adcs x12, x12, x12; \ adcs x13, x13, x13; \ - adcs x14, x14, x14; \ - adcs x15, x15, x15; \ - adcs x16, x16, x16; \ - adcs x17, x17, x17; \ - adcs x19, x19, x19; \ - cset x20, hs; \ - umulh x8, x2, x2; \ - mul x2, x2, x2; \ - adds x9, x9, x8; \ - mul x8, x3, x3; \ - adcs x10, x10, x8; \ - umulh x8, x3, x3; \ - adcs x11, x11, x8; \ - mul x8, x4, x4; \ - adcs x12, x12, x8; \ - umulh x8, x4, x4; \ - adcs x13, x13, x8; \ - mul x8, x5, x5; \ - adcs x14, x14, x8; \ - umulh x8, x5, x5; \ - adcs x15, x15, x8; \ - mul x8, x6, x6; \ - adcs x16, x16, x8; \ - umulh x8, x6, x6; \ - adcs x17, x17, x8; \ - mul x8, x7, x7; \ - adcs x19, x19, x8; \ - umulh x8, x7, x7; \ - adc x20, x20, x8; \ - lsl x5, x2, #32; \ - add x2, x5, x2; \ - mov x5, #-4294967295; \ - umulh x5, x5, x2; \ - mov x4, #4294967295; \ - mul x3, x4, x2; \ - umulh x4, x4, x2; \ - adds x5, x5, x3; \ - adcs x4, x4, x2; \ - adc x3, xzr, xzr; \ - subs x9, x9, x5; \ - sbcs x10, x10, x4; \ - sbcs x11, x11, x3; \ + adc x17, xzr, xzr; \ + ldp x2, x3, [P0]; \ + adds x8, x8, x2; \ + adcs x9, x9, x3; \ + ldp x2, x3, [P0+16]; \ + adcs x10, x10, x2; \ + adcs x11, x11, x3; \ + ldp x2, x3, [P0+32]; \ + adcs x12, x12, x2; \ + adcs x13, x13, x3; \ + adc x17, x17, xzr; \ + lsl x4, x8, #32; \ + add x8, x4, x8; \ + lsr x4, x8, #32; \ + subs x4, x4, x8; \ + sbc x3, x8, xzr; \ + extr x4, x3, x4, #32; \ + lsr x3, x3, #32; \ + adds x3, x3, x8; \ + adc x2, xzr, xzr; \ + subs x9, x9, x4; \ + sbcs x10, x10, x3; \ + sbcs x11, x11, x2; \ sbcs x12, x12, xzr; \ sbcs x13, x13, xzr; \ - sbc x2, x2, xzr; \ - lsl x5, x9, #32; \ - add x9, x5, x9; \ - mov x5, #-4294967295; \ - umulh x5, x5, x9; \ - mov x4, #4294967295; \ - mul x3, x4, x9; \ - umulh x4, x4, x9; \ - adds x5, x5, x3; \ - adcs x4, x4, x9; \ - adc x3, xzr, xzr; \ - subs x10, x10, x5; \ - sbcs x11, x11, x4; \ - sbcs x12, x12, x3; \ + sbc x8, x8, xzr; \ + lsl x4, x9, #32; \ + add x9, x4, x9; \ + lsr x4, x9, #32; \ + subs x4, x4, x9; \ + sbc x3, x9, xzr; \ + extr x4, x3, x4, #32; \ + lsr x3, x3, #32; \ + adds x3, x3, x9; \ + adc x2, xzr, xzr; \ + subs x10, x10, x4; \ + sbcs x11, x11, x3; \ + sbcs x12, x12, x2; \ sbcs x13, x13, xzr; \ - sbcs x2, x2, xzr; \ + sbcs x8, x8, xzr; \ sbc x9, x9, xzr; \ - lsl x5, x10, #32; \ - add x10, x5, x10; \ - mov x5, #-4294967295; \ - umulh x5, x5, x10; \ - mov x4, #4294967295; \ - mul x3, x4, x10; \ - umulh x4, x4, x10; \ - adds x5, x5, x3; \ - adcs x4, x4, x10; \ - adc x3, xzr, xzr; \ - subs x11, x11, x5; \ - sbcs x12, x12, x4; \ - sbcs x13, x13, x3; \ - sbcs x2, x2, xzr; \ + lsl x4, x10, #32; \ + add x10, x4, x10; \ + lsr x4, x10, #32; \ + subs x4, x4, x10; \ + sbc x3, x10, xzr; \ + extr x4, x3, x4, #32; \ + lsr x3, x3, #32; \ + adds x3, x3, x10; \ + adc x2, xzr, xzr; \ + subs x11, x11, x4; \ + sbcs x12, x12, x3; \ + sbcs x13, x13, x2; \ + sbcs x8, x8, xzr; \ sbcs x9, x9, xzr; \ sbc x10, x10, xzr; \ - lsl x5, x11, #32; \ - add x11, x5, x11; \ - mov x5, #-4294967295; \ - umulh x5, x5, x11; \ - mov x4, #4294967295; \ - mul x3, x4, x11; \ - umulh x4, x4, x11; \ - adds x5, x5, x3; \ - adcs x4, x4, x11; \ - adc x3, xzr, xzr; \ - subs x12, x12, x5; \ - sbcs x13, x13, x4; \ - sbcs x2, x2, x3; \ - sbcs x9, x9, xzr; \ - sbcs x10, x10, xzr; \ - sbc x11, x11, xzr; \ - lsl x5, x12, #32; \ - add x12, x5, x12; \ - mov x5, #-4294967295; \ - umulh x5, x5, x12; \ - mov x4, #4294967295; \ - mul x3, x4, x12; \ - umulh x4, x4, x12; \ - adds x5, x5, x3; \ - adcs x4, x4, x12; \ - adc x3, xzr, xzr; \ - subs x13, x13, x5; \ - sbcs x2, x2, x4; \ - sbcs x9, x9, x3; \ - sbcs x10, x10, xzr; \ - sbcs x11, x11, xzr; \ - sbc x12, x12, xzr; \ - lsl x5, x13, #32; \ - add x13, x5, x13; \ - mov x5, #-4294967295; \ - umulh x5, x5, x13; \ - mov x4, #4294967295; \ - mul x3, x4, x13; \ - umulh x4, x4, x13; \ - adds x5, x5, x3; \ - adcs x4, x4, x13; \ - adc x3, xzr, xzr; \ - subs x2, x2, x5; \ - sbcs x9, x9, x4; \ - sbcs x10, x10, x3; \ - sbcs x11, x11, xzr; \ - sbcs x12, x12, xzr; \ - sbc x13, x13, xzr; \ - adds x2, x2, x14; \ - adcs x9, x9, x15; \ - adcs x10, x10, x16; \ - adcs x11, x11, x17; \ - adcs x12, x12, x19; \ - adcs x13, x13, x20; \ - mov x14, #-4294967295; \ - mov x15, #4294967295; \ - csel x14, x14, xzr, cs; \ - csel x15, x15, xzr, cs; \ - cset x16, cs; \ - adds x2, x2, x14; \ - adcs x9, x9, x15; \ - adcs x10, x10, x16; \ - adcs x11, x11, xzr; \ - adcs x12, x12, xzr; \ - adc x13, x13, xzr; \ - stp x2, x9, [P0]; \ - stp x10, x11, [P0+16]; \ - stp x12, x13, [P0+32] + adds x17, x17, x8; \ + adcs x8, x9, xzr; \ + adcs x9, x10, xzr; \ + adcs x10, xzr, xzr; \ + mul x1, x5, x5; \ + adds x11, x11, x1; \ + mul x14, x6, x6; \ + mul x15, x7, x7; \ + umulh x1, x5, x5; \ + adcs x12, x12, x1; \ + umulh x1, x6, x6; \ + adcs x13, x13, x14; \ + adcs x17, x17, x1; \ + umulh x1, x7, x7; \ + adcs x8, x8, x15; \ + adcs x9, x9, x1; \ + adc x10, x10, xzr; \ + mul x1, x5, x6; \ + mul x14, x5, x7; \ + mul x15, x6, x7; \ + umulh x16, x5, x6; \ + adds x14, x14, x16; \ + umulh x16, x5, x7; \ + adcs x15, x15, x16; \ + umulh x16, x6, x7; \ + adc x16, x16, xzr; \ + adds x1, x1, x1; \ + adcs x14, x14, x14; \ + adcs x15, x15, x15; \ + adcs x16, x16, x16; \ + adc x5, xzr, xzr; \ + adds x12, x12, x1; \ + adcs x13, x13, x14; \ + adcs x17, x17, x15; \ + adcs x8, x8, x16; \ + adcs x9, x9, x5; \ + adc x10, x10, xzr; \ + mov x1, #-4294967295; \ + mov x14, #4294967295; \ + mov x15, #1; \ + cmn x11, x1; \ + adcs xzr, x12, x14; \ + adcs xzr, x13, x15; \ + adcs xzr, x17, xzr; \ + adcs xzr, x8, xzr; \ + adcs xzr, x9, xzr; \ + adc x10, x10, xzr; \ + neg x10, x10; \ + and x1, x1, x10; \ + adds x11, x11, x1; \ + and x14, x14, x10; \ + adcs x12, x12, x14; \ + and x15, x15, x10; \ + adcs x13, x13, x15; \ + adcs x17, x17, xzr; \ + adcs x8, x8, xzr; \ + adc x9, x9, xzr; \ + stp x11, x12, [P0]; \ + stp x13, x17, [P0+16]; \ + stp x8, x9, [P0+32] // Corresponds exactly to bignum_sub_p384 @@ -830,8 +768,8 @@ S2N_BN_SYMBOL(p384_montjadd): // Main code, just a sequence of basic field operations // 8 * multiply + 3 * square + 7 * subtract - amontsqr_p384(z1sq,z_1) - amontsqr_p384(z2sq,z_2) + montsqr_p384(z1sq,z_1) + montsqr_p384(z2sq,z_2) montmul_p384(y1a,z_2,y_1) montmul_p384(y2a,z_1,y_2) @@ -844,26 +782,135 @@ S2N_BN_SYMBOL(p384_montjadd): sub_p384(xd,x2a,x1a) sub_p384(yd,y2a,y1a) - amontsqr_p384(zz,xd) + montsqr_p384(zz,xd) montsqr_p384(ww,yd) montmul_p384(zzx1,zz,x1a) montmul_p384(zzx2,zz,x2a) - sub_p384(x_3,ww,zzx1) + sub_p384(resx,ww,zzx1) sub_p384(t1,zzx2,zzx1) montmul_p384(xd,xd,z_1) - sub_p384(x_3,x_3,zzx2) + sub_p384(resx,resx,zzx2) - sub_p384(t2,zzx1,x_3) + sub_p384(t2,zzx1,resx) montmul_p384(t1,t1,y1a) - montmul_p384(z_3,xd,z_2) + montmul_p384(resz,xd,z_2) montmul_p384(t2,yd,t2) - sub_p384(y_3,t2,t1) + sub_p384(resy,t2,t1) + +// Load in the z coordinates of the inputs to check for P1 = 0 and P2 = 0 +// The condition codes get set by a comparison (P2 != 0) - (P1 != 0) +// So "HI" <=> CF /\ ~ZF <=> P1 = 0 /\ ~(P2 = 0) +// and "LO" <=> ~CF <=> ~(P1 = 0) /\ P2 = 0 + + ldp x0, x1, [z_1] + ldp x2, x3, [z_1+16] + ldp x4, x5, [z_1+32] + + orr x20, x0, x1 + orr x21, x2, x3 + orr x22, x4, x5 + orr x20, x20, x21 + orr x20, x20, x22 + cmp x20, xzr + cset x20, ne + + ldp x6, x7, [z_2] + ldp x8, x9, [z_2+16] + ldp x10, x11, [z_2+32] + + orr x21, x6, x7 + orr x22, x8, x9 + orr x23, x10, x11 + orr x21, x21, x22 + orr x21, x21, x23 + cmp x21, xzr + cset x21, ne + + cmp x21, x20 + +// Multiplex the outputs accordingly, re-using the z's in registers + + ldp x12, x13, [resz] + csel x12, x0, x12, lo + csel x13, x1, x13, lo + csel x12, x6, x12, hi + csel x13, x7, x13, hi + ldp x14, x15, [resz+16] + csel x14, x2, x14, lo + csel x15, x3, x15, lo + csel x14, x8, x14, hi + csel x15, x9, x15, hi + ldp x16, x17, [resz+32] + csel x16, x4, x16, lo + csel x17, x5, x17, lo + csel x16, x10, x16, hi + csel x17, x11, x17, hi + + ldp x20, x21, [x_1] + ldp x0, x1, [resx] + csel x0, x20, x0, lo + csel x1, x21, x1, lo + ldp x20, x21, [x_2] + csel x0, x20, x0, hi + csel x1, x21, x1, hi + + ldp x20, x21, [x_1+16] + ldp x2, x3, [resx+16] + csel x2, x20, x2, lo + csel x3, x21, x3, lo + ldp x20, x21, [x_2+16] + csel x2, x20, x2, hi + csel x3, x21, x3, hi + + ldp x20, x21, [x_1+32] + ldp x4, x5, [resx+32] + csel x4, x20, x4, lo + csel x5, x21, x5, lo + ldp x20, x21, [x_2+32] + csel x4, x20, x4, hi + csel x5, x21, x5, hi + + ldp x20, x21, [y_1] + ldp x6, x7, [resy] + csel x6, x20, x6, lo + csel x7, x21, x7, lo + ldp x20, x21, [y_2] + csel x6, x20, x6, hi + csel x7, x21, x7, hi + + ldp x20, x21, [y_1+16] + ldp x8, x9, [resy+16] + csel x8, x20, x8, lo + csel x9, x21, x9, lo + ldp x20, x21, [y_2+16] + csel x8, x20, x8, hi + csel x9, x21, x9, hi + + ldp x20, x21, [y_1+32] + ldp x10, x11, [resy+32] + csel x10, x20, x10, lo + csel x11, x21, x11, lo + ldp x20, x21, [y_2+32] + csel x10, x20, x10, hi + csel x11, x21, x11, hi + +// Finally store back the multiplexed values + + stp x0, x1, [x_3] + stp x2, x3, [x_3+16] + stp x4, x5, [x_3+32] + stp x6, x7, [y_3] + stp x8, x9, [y_3+16] + stp x10, x11, [y_3+32] + stp x12, x13, [z_3] + stp x14, x15, [z_3+16] + stp x16, x17, [z_3+32] // Restore stack and registers diff --git a/third_party/s2n-bignum/arm/p384/p384_montjadd_alt.S b/third_party/s2n-bignum/arm/p384/p384_montjadd_alt.S new file mode 100644 index 0000000000..b84065dea9 --- /dev/null +++ b/third_party/s2n-bignum/arm/p384/p384_montjadd_alt.S @@ -0,0 +1,993 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Point addition on NIST curve P-384 in Montgomery-Jacobian coordinates +// +// extern void p384_montjadd_alt +// (uint64_t p3[static 18],uint64_t p1[static 18],uint64_t p2[static 18]); +// +// Does p3 := p1 + p2 where all points are regarded as Jacobian triples with +// each coordinate in the Montgomery domain, i.e. x' = (2^384 * x) mod p_384. +// A Jacobian triple (x',y',z') represents affine point (x/z^2,y/z^3). +// +// Standard ARM ABI: X0 = p3, X1 = p1, X2 = p2 +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(p384_montjadd_alt) + S2N_BN_SYM_PRIVACY_DIRECTIVE(p384_montjadd_alt) + .text + .balign 4 + +// Size of individual field elements + +#define NUMSIZE 48 + +// Stable homes for input arguments during main code sequence + +#define input_z x24 +#define input_x x25 +#define input_y x26 + +// Pointer-offset pairs for inputs and outputs + +#define x_1 input_x, #0 +#define y_1 input_x, #NUMSIZE +#define z_1 input_x, #(2*NUMSIZE) + +#define x_2 input_y, #0 +#define y_2 input_y, #NUMSIZE +#define z_2 input_y, #(2*NUMSIZE) + +#define x_3 input_z, #0 +#define y_3 input_z, #NUMSIZE +#define z_3 input_z, #(2*NUMSIZE) + +// Pointer-offset pairs for temporaries, with some aliasing +// NSPACE is the total stack needed for these temporaries + +#define z1sq sp, #(NUMSIZE*0) +#define ww sp, #(NUMSIZE*0) +#define resx sp, #(NUMSIZE*0) + +#define yd sp, #(NUMSIZE*1) +#define y2a sp, #(NUMSIZE*1) + +#define x2a sp, #(NUMSIZE*2) +#define zzx2 sp, #(NUMSIZE*2) + +#define zz sp, #(NUMSIZE*3) +#define t1 sp, #(NUMSIZE*3) + +#define t2 sp, #(NUMSIZE*4) +#define x1a sp, #(NUMSIZE*4) +#define zzx1 sp, #(NUMSIZE*4) +#define resy sp, #(NUMSIZE*4) + +#define xd sp, #(NUMSIZE*5) +#define z2sq sp, #(NUMSIZE*5) +#define resz sp, #(NUMSIZE*5) + +#define y1a sp, #(NUMSIZE*6) + +#define NSPACE (NUMSIZE*7) + +// Corresponds exactly to bignum_montmul_p384_alt + +#define montmul_p384(P0,P1,P2) \ + ldp x3, x4, [P1]; \ + ldp x5, x6, [P2]; \ + mul x12, x3, x5; \ + umulh x13, x3, x5; \ + mul x11, x3, x6; \ + umulh x14, x3, x6; \ + adds x13, x13, x11; \ + ldp x7, x8, [P2+16]; \ + mul x11, x3, x7; \ + umulh x15, x3, x7; \ + adcs x14, x14, x11; \ + mul x11, x3, x8; \ + umulh x16, x3, x8; \ + adcs x15, x15, x11; \ + ldp x9, x10, [P2+32]; \ + mul x11, x3, x9; \ + umulh x17, x3, x9; \ + adcs x16, x16, x11; \ + mul x11, x3, x10; \ + umulh x19, x3, x10; \ + adcs x17, x17, x11; \ + adc x19, x19, xzr; \ + mul x11, x4, x5; \ + adds x13, x13, x11; \ + mul x11, x4, x6; \ + adcs x14, x14, x11; \ + mul x11, x4, x7; \ + adcs x15, x15, x11; \ + mul x11, x4, x8; \ + adcs x16, x16, x11; \ + mul x11, x4, x9; \ + adcs x17, x17, x11; \ + mul x11, x4, x10; \ + adcs x19, x19, x11; \ + cset x20, cs; \ + umulh x11, x4, x5; \ + adds x14, x14, x11; \ + umulh x11, x4, x6; \ + adcs x15, x15, x11; \ + umulh x11, x4, x7; \ + adcs x16, x16, x11; \ + umulh x11, x4, x8; \ + adcs x17, x17, x11; \ + umulh x11, x4, x9; \ + adcs x19, x19, x11; \ + umulh x11, x4, x10; \ + adc x20, x20, x11; \ + ldp x3, x4, [P1+16]; \ + mul x11, x3, x5; \ + adds x14, x14, x11; \ + mul x11, x3, x6; \ + adcs x15, x15, x11; \ + mul x11, x3, x7; \ + adcs x16, x16, x11; \ + mul x11, x3, x8; \ + adcs x17, x17, x11; \ + mul x11, x3, x9; \ + adcs x19, x19, x11; \ + mul x11, x3, x10; \ + adcs x20, x20, x11; \ + cset x21, cs; \ + umulh x11, x3, x5; \ + adds x15, x15, x11; \ + umulh x11, x3, x6; \ + adcs x16, x16, x11; \ + umulh x11, x3, x7; \ + adcs x17, x17, x11; \ + umulh x11, x3, x8; \ + adcs x19, x19, x11; \ + umulh x11, x3, x9; \ + adcs x20, x20, x11; \ + umulh x11, x3, x10; \ + adc x21, x21, x11; \ + mul x11, x4, x5; \ + adds x15, x15, x11; \ + mul x11, x4, x6; \ + adcs x16, x16, x11; \ + mul x11, x4, x7; \ + adcs x17, x17, x11; \ + mul x11, x4, x8; \ + adcs x19, x19, x11; \ + mul x11, x4, x9; \ + adcs x20, x20, x11; \ + mul x11, x4, x10; \ + adcs x21, x21, x11; \ + cset x22, cs; \ + umulh x11, x4, x5; \ + adds x16, x16, x11; \ + umulh x11, x4, x6; \ + adcs x17, x17, x11; \ + umulh x11, x4, x7; \ + adcs x19, x19, x11; \ + umulh x11, x4, x8; \ + adcs x20, x20, x11; \ + umulh x11, x4, x9; \ + adcs x21, x21, x11; \ + umulh x11, x4, x10; \ + adc x22, x22, x11; \ + ldp x3, x4, [P1+32]; \ + mul x11, x3, x5; \ + adds x16, x16, x11; \ + mul x11, x3, x6; \ + adcs x17, x17, x11; \ + mul x11, x3, x7; \ + adcs x19, x19, x11; \ + mul x11, x3, x8; \ + adcs x20, x20, x11; \ + mul x11, x3, x9; \ + adcs x21, x21, x11; \ + mul x11, x3, x10; \ + adcs x22, x22, x11; \ + cset x2, cs; \ + umulh x11, x3, x5; \ + adds x17, x17, x11; \ + umulh x11, x3, x6; \ + adcs x19, x19, x11; \ + umulh x11, x3, x7; \ + adcs x20, x20, x11; \ + umulh x11, x3, x8; \ + adcs x21, x21, x11; \ + umulh x11, x3, x9; \ + adcs x22, x22, x11; \ + umulh x11, x3, x10; \ + adc x2, x2, x11; \ + mul x11, x4, x5; \ + adds x17, x17, x11; \ + mul x11, x4, x6; \ + adcs x19, x19, x11; \ + mul x11, x4, x7; \ + adcs x20, x20, x11; \ + mul x11, x4, x8; \ + adcs x21, x21, x11; \ + mul x11, x4, x9; \ + adcs x22, x22, x11; \ + mul x11, x4, x10; \ + adcs x2, x2, x11; \ + cset x1, cs; \ + umulh x11, x4, x5; \ + adds x19, x19, x11; \ + umulh x11, x4, x6; \ + adcs x20, x20, x11; \ + umulh x11, x4, x7; \ + adcs x21, x21, x11; \ + umulh x11, x4, x8; \ + adcs x22, x22, x11; \ + umulh x11, x4, x9; \ + adcs x2, x2, x11; \ + umulh x11, x4, x10; \ + adc x1, x1, x11; \ + lsl x7, x12, #32; \ + add x12, x7, x12; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x12; \ + mov x6, #0xffffffff; \ + mul x5, x6, x12; \ + umulh x6, x6, x12; \ + adds x7, x7, x5; \ + adcs x6, x6, x12; \ + adc x5, xzr, xzr; \ + subs x13, x13, x7; \ + sbcs x14, x14, x6; \ + sbcs x15, x15, x5; \ + sbcs x16, x16, xzr; \ + sbcs x17, x17, xzr; \ + sbc x12, x12, xzr; \ + lsl x7, x13, #32; \ + add x13, x7, x13; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x13; \ + mov x6, #0xffffffff; \ + mul x5, x6, x13; \ + umulh x6, x6, x13; \ + adds x7, x7, x5; \ + adcs x6, x6, x13; \ + adc x5, xzr, xzr; \ + subs x14, x14, x7; \ + sbcs x15, x15, x6; \ + sbcs x16, x16, x5; \ + sbcs x17, x17, xzr; \ + sbcs x12, x12, xzr; \ + sbc x13, x13, xzr; \ + lsl x7, x14, #32; \ + add x14, x7, x14; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x14; \ + mov x6, #0xffffffff; \ + mul x5, x6, x14; \ + umulh x6, x6, x14; \ + adds x7, x7, x5; \ + adcs x6, x6, x14; \ + adc x5, xzr, xzr; \ + subs x15, x15, x7; \ + sbcs x16, x16, x6; \ + sbcs x17, x17, x5; \ + sbcs x12, x12, xzr; \ + sbcs x13, x13, xzr; \ + sbc x14, x14, xzr; \ + lsl x7, x15, #32; \ + add x15, x7, x15; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x15; \ + mov x6, #0xffffffff; \ + mul x5, x6, x15; \ + umulh x6, x6, x15; \ + adds x7, x7, x5; \ + adcs x6, x6, x15; \ + adc x5, xzr, xzr; \ + subs x16, x16, x7; \ + sbcs x17, x17, x6; \ + sbcs x12, x12, x5; \ + sbcs x13, x13, xzr; \ + sbcs x14, x14, xzr; \ + sbc x15, x15, xzr; \ + lsl x7, x16, #32; \ + add x16, x7, x16; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x16; \ + mov x6, #0xffffffff; \ + mul x5, x6, x16; \ + umulh x6, x6, x16; \ + adds x7, x7, x5; \ + adcs x6, x6, x16; \ + adc x5, xzr, xzr; \ + subs x17, x17, x7; \ + sbcs x12, x12, x6; \ + sbcs x13, x13, x5; \ + sbcs x14, x14, xzr; \ + sbcs x15, x15, xzr; \ + sbc x16, x16, xzr; \ + lsl x7, x17, #32; \ + add x17, x7, x17; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x17; \ + mov x6, #0xffffffff; \ + mul x5, x6, x17; \ + umulh x6, x6, x17; \ + adds x7, x7, x5; \ + adcs x6, x6, x17; \ + adc x5, xzr, xzr; \ + subs x12, x12, x7; \ + sbcs x13, x13, x6; \ + sbcs x14, x14, x5; \ + sbcs x15, x15, xzr; \ + sbcs x16, x16, xzr; \ + sbc x17, x17, xzr; \ + adds x12, x12, x19; \ + adcs x13, x13, x20; \ + adcs x14, x14, x21; \ + adcs x15, x15, x22; \ + adcs x16, x16, x2; \ + adcs x17, x17, x1; \ + adc x10, xzr, xzr; \ + mov x11, #0xffffffff00000001; \ + adds x19, x12, x11; \ + mov x11, #0xffffffff; \ + adcs x20, x13, x11; \ + mov x11, #0x1; \ + adcs x21, x14, x11; \ + adcs x22, x15, xzr; \ + adcs x2, x16, xzr; \ + adcs x1, x17, xzr; \ + adcs x10, x10, xzr; \ + csel x12, x12, x19, eq; \ + csel x13, x13, x20, eq; \ + csel x14, x14, x21, eq; \ + csel x15, x15, x22, eq; \ + csel x16, x16, x2, eq; \ + csel x17, x17, x1, eq; \ + stp x12, x13, [P0]; \ + stp x14, x15, [P0+16]; \ + stp x16, x17, [P0+32] + +// Corresponds exactly to bignum_montsqr_p384_alt + +#define montsqr_p384(P0,P1) \ + ldp x2, x3, [P1]; \ + mul x9, x2, x3; \ + umulh x10, x2, x3; \ + ldp x4, x5, [P1+16]; \ + mul x8, x2, x4; \ + adds x10, x10, x8; \ + mul x11, x2, x5; \ + mul x8, x3, x4; \ + adcs x11, x11, x8; \ + umulh x12, x2, x5; \ + mul x8, x3, x5; \ + adcs x12, x12, x8; \ + ldp x6, x7, [P1+32]; \ + mul x13, x2, x7; \ + mul x8, x3, x6; \ + adcs x13, x13, x8; \ + umulh x14, x2, x7; \ + mul x8, x3, x7; \ + adcs x14, x14, x8; \ + mul x15, x5, x6; \ + adcs x15, x15, xzr; \ + umulh x16, x5, x6; \ + adc x16, x16, xzr; \ + umulh x8, x2, x4; \ + adds x11, x11, x8; \ + umulh x8, x3, x4; \ + adcs x12, x12, x8; \ + umulh x8, x3, x5; \ + adcs x13, x13, x8; \ + umulh x8, x3, x6; \ + adcs x14, x14, x8; \ + umulh x8, x3, x7; \ + adcs x15, x15, x8; \ + adc x16, x16, xzr; \ + mul x8, x2, x6; \ + adds x12, x12, x8; \ + mul x8, x4, x5; \ + adcs x13, x13, x8; \ + mul x8, x4, x6; \ + adcs x14, x14, x8; \ + mul x8, x4, x7; \ + adcs x15, x15, x8; \ + mul x8, x5, x7; \ + adcs x16, x16, x8; \ + mul x17, x6, x7; \ + adcs x17, x17, xzr; \ + umulh x19, x6, x7; \ + adc x19, x19, xzr; \ + umulh x8, x2, x6; \ + adds x13, x13, x8; \ + umulh x8, x4, x5; \ + adcs x14, x14, x8; \ + umulh x8, x4, x6; \ + adcs x15, x15, x8; \ + umulh x8, x4, x7; \ + adcs x16, x16, x8; \ + umulh x8, x5, x7; \ + adcs x17, x17, x8; \ + adc x19, x19, xzr; \ + adds x9, x9, x9; \ + adcs x10, x10, x10; \ + adcs x11, x11, x11; \ + adcs x12, x12, x12; \ + adcs x13, x13, x13; \ + adcs x14, x14, x14; \ + adcs x15, x15, x15; \ + adcs x16, x16, x16; \ + adcs x17, x17, x17; \ + adcs x19, x19, x19; \ + cset x20, hs; \ + umulh x8, x2, x2; \ + mul x2, x2, x2; \ + adds x9, x9, x8; \ + mul x8, x3, x3; \ + adcs x10, x10, x8; \ + umulh x8, x3, x3; \ + adcs x11, x11, x8; \ + mul x8, x4, x4; \ + adcs x12, x12, x8; \ + umulh x8, x4, x4; \ + adcs x13, x13, x8; \ + mul x8, x5, x5; \ + adcs x14, x14, x8; \ + umulh x8, x5, x5; \ + adcs x15, x15, x8; \ + mul x8, x6, x6; \ + adcs x16, x16, x8; \ + umulh x8, x6, x6; \ + adcs x17, x17, x8; \ + mul x8, x7, x7; \ + adcs x19, x19, x8; \ + umulh x8, x7, x7; \ + adc x20, x20, x8; \ + lsl x5, x2, #32; \ + add x2, x5, x2; \ + mov x5, #-4294967295; \ + umulh x5, x5, x2; \ + mov x4, #4294967295; \ + mul x3, x4, x2; \ + umulh x4, x4, x2; \ + adds x5, x5, x3; \ + adcs x4, x4, x2; \ + adc x3, xzr, xzr; \ + subs x9, x9, x5; \ + sbcs x10, x10, x4; \ + sbcs x11, x11, x3; \ + sbcs x12, x12, xzr; \ + sbcs x13, x13, xzr; \ + sbc x2, x2, xzr; \ + lsl x5, x9, #32; \ + add x9, x5, x9; \ + mov x5, #-4294967295; \ + umulh x5, x5, x9; \ + mov x4, #4294967295; \ + mul x3, x4, x9; \ + umulh x4, x4, x9; \ + adds x5, x5, x3; \ + adcs x4, x4, x9; \ + adc x3, xzr, xzr; \ + subs x10, x10, x5; \ + sbcs x11, x11, x4; \ + sbcs x12, x12, x3; \ + sbcs x13, x13, xzr; \ + sbcs x2, x2, xzr; \ + sbc x9, x9, xzr; \ + lsl x5, x10, #32; \ + add x10, x5, x10; \ + mov x5, #-4294967295; \ + umulh x5, x5, x10; \ + mov x4, #4294967295; \ + mul x3, x4, x10; \ + umulh x4, x4, x10; \ + adds x5, x5, x3; \ + adcs x4, x4, x10; \ + adc x3, xzr, xzr; \ + subs x11, x11, x5; \ + sbcs x12, x12, x4; \ + sbcs x13, x13, x3; \ + sbcs x2, x2, xzr; \ + sbcs x9, x9, xzr; \ + sbc x10, x10, xzr; \ + lsl x5, x11, #32; \ + add x11, x5, x11; \ + mov x5, #-4294967295; \ + umulh x5, x5, x11; \ + mov x4, #4294967295; \ + mul x3, x4, x11; \ + umulh x4, x4, x11; \ + adds x5, x5, x3; \ + adcs x4, x4, x11; \ + adc x3, xzr, xzr; \ + subs x12, x12, x5; \ + sbcs x13, x13, x4; \ + sbcs x2, x2, x3; \ + sbcs x9, x9, xzr; \ + sbcs x10, x10, xzr; \ + sbc x11, x11, xzr; \ + lsl x5, x12, #32; \ + add x12, x5, x12; \ + mov x5, #-4294967295; \ + umulh x5, x5, x12; \ + mov x4, #4294967295; \ + mul x3, x4, x12; \ + umulh x4, x4, x12; \ + adds x5, x5, x3; \ + adcs x4, x4, x12; \ + adc x3, xzr, xzr; \ + subs x13, x13, x5; \ + sbcs x2, x2, x4; \ + sbcs x9, x9, x3; \ + sbcs x10, x10, xzr; \ + sbcs x11, x11, xzr; \ + sbc x12, x12, xzr; \ + lsl x5, x13, #32; \ + add x13, x5, x13; \ + mov x5, #-4294967295; \ + umulh x5, x5, x13; \ + mov x4, #4294967295; \ + mul x3, x4, x13; \ + umulh x4, x4, x13; \ + adds x5, x5, x3; \ + adcs x4, x4, x13; \ + adc x3, xzr, xzr; \ + subs x2, x2, x5; \ + sbcs x9, x9, x4; \ + sbcs x10, x10, x3; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbc x13, x13, xzr; \ + adds x2, x2, x14; \ + adcs x9, x9, x15; \ + adcs x10, x10, x16; \ + adcs x11, x11, x17; \ + adcs x12, x12, x19; \ + adcs x13, x13, x20; \ + adc x6, xzr, xzr; \ + mov x8, #-4294967295; \ + adds x14, x2, x8; \ + mov x8, #4294967295; \ + adcs x15, x9, x8; \ + mov x8, #1; \ + adcs x16, x10, x8; \ + adcs x17, x11, xzr; \ + adcs x19, x12, xzr; \ + adcs x20, x13, xzr; \ + adcs x6, x6, xzr; \ + csel x2, x2, x14, eq; \ + csel x9, x9, x15, eq; \ + csel x10, x10, x16, eq; \ + csel x11, x11, x17, eq; \ + csel x12, x12, x19, eq; \ + csel x13, x13, x20, eq; \ + stp x2, x9, [P0]; \ + stp x10, x11, [P0+16]; \ + stp x12, x13, [P0+32] + +// Almost-Montgomery variant which we use when an input to other muls +// with the other argument fully reduced (which is always safe). In +// fact, with the Karatsuba-based Montgomery mul here, we don't even +// *need* the restriction that the other argument is reduced. + +#define amontsqr_p384(P0,P1) \ + ldp x2, x3, [P1]; \ + mul x9, x2, x3; \ + umulh x10, x2, x3; \ + ldp x4, x5, [P1+16]; \ + mul x8, x2, x4; \ + adds x10, x10, x8; \ + mul x11, x2, x5; \ + mul x8, x3, x4; \ + adcs x11, x11, x8; \ + umulh x12, x2, x5; \ + mul x8, x3, x5; \ + adcs x12, x12, x8; \ + ldp x6, x7, [P1+32]; \ + mul x13, x2, x7; \ + mul x8, x3, x6; \ + adcs x13, x13, x8; \ + umulh x14, x2, x7; \ + mul x8, x3, x7; \ + adcs x14, x14, x8; \ + mul x15, x5, x6; \ + adcs x15, x15, xzr; \ + umulh x16, x5, x6; \ + adc x16, x16, xzr; \ + umulh x8, x2, x4; \ + adds x11, x11, x8; \ + umulh x8, x3, x4; \ + adcs x12, x12, x8; \ + umulh x8, x3, x5; \ + adcs x13, x13, x8; \ + umulh x8, x3, x6; \ + adcs x14, x14, x8; \ + umulh x8, x3, x7; \ + adcs x15, x15, x8; \ + adc x16, x16, xzr; \ + mul x8, x2, x6; \ + adds x12, x12, x8; \ + mul x8, x4, x5; \ + adcs x13, x13, x8; \ + mul x8, x4, x6; \ + adcs x14, x14, x8; \ + mul x8, x4, x7; \ + adcs x15, x15, x8; \ + mul x8, x5, x7; \ + adcs x16, x16, x8; \ + mul x17, x6, x7; \ + adcs x17, x17, xzr; \ + umulh x19, x6, x7; \ + adc x19, x19, xzr; \ + umulh x8, x2, x6; \ + adds x13, x13, x8; \ + umulh x8, x4, x5; \ + adcs x14, x14, x8; \ + umulh x8, x4, x6; \ + adcs x15, x15, x8; \ + umulh x8, x4, x7; \ + adcs x16, x16, x8; \ + umulh x8, x5, x7; \ + adcs x17, x17, x8; \ + adc x19, x19, xzr; \ + adds x9, x9, x9; \ + adcs x10, x10, x10; \ + adcs x11, x11, x11; \ + adcs x12, x12, x12; \ + adcs x13, x13, x13; \ + adcs x14, x14, x14; \ + adcs x15, x15, x15; \ + adcs x16, x16, x16; \ + adcs x17, x17, x17; \ + adcs x19, x19, x19; \ + cset x20, hs; \ + umulh x8, x2, x2; \ + mul x2, x2, x2; \ + adds x9, x9, x8; \ + mul x8, x3, x3; \ + adcs x10, x10, x8; \ + umulh x8, x3, x3; \ + adcs x11, x11, x8; \ + mul x8, x4, x4; \ + adcs x12, x12, x8; \ + umulh x8, x4, x4; \ + adcs x13, x13, x8; \ + mul x8, x5, x5; \ + adcs x14, x14, x8; \ + umulh x8, x5, x5; \ + adcs x15, x15, x8; \ + mul x8, x6, x6; \ + adcs x16, x16, x8; \ + umulh x8, x6, x6; \ + adcs x17, x17, x8; \ + mul x8, x7, x7; \ + adcs x19, x19, x8; \ + umulh x8, x7, x7; \ + adc x20, x20, x8; \ + lsl x5, x2, #32; \ + add x2, x5, x2; \ + mov x5, #-4294967295; \ + umulh x5, x5, x2; \ + mov x4, #4294967295; \ + mul x3, x4, x2; \ + umulh x4, x4, x2; \ + adds x5, x5, x3; \ + adcs x4, x4, x2; \ + adc x3, xzr, xzr; \ + subs x9, x9, x5; \ + sbcs x10, x10, x4; \ + sbcs x11, x11, x3; \ + sbcs x12, x12, xzr; \ + sbcs x13, x13, xzr; \ + sbc x2, x2, xzr; \ + lsl x5, x9, #32; \ + add x9, x5, x9; \ + mov x5, #-4294967295; \ + umulh x5, x5, x9; \ + mov x4, #4294967295; \ + mul x3, x4, x9; \ + umulh x4, x4, x9; \ + adds x5, x5, x3; \ + adcs x4, x4, x9; \ + adc x3, xzr, xzr; \ + subs x10, x10, x5; \ + sbcs x11, x11, x4; \ + sbcs x12, x12, x3; \ + sbcs x13, x13, xzr; \ + sbcs x2, x2, xzr; \ + sbc x9, x9, xzr; \ + lsl x5, x10, #32; \ + add x10, x5, x10; \ + mov x5, #-4294967295; \ + umulh x5, x5, x10; \ + mov x4, #4294967295; \ + mul x3, x4, x10; \ + umulh x4, x4, x10; \ + adds x5, x5, x3; \ + adcs x4, x4, x10; \ + adc x3, xzr, xzr; \ + subs x11, x11, x5; \ + sbcs x12, x12, x4; \ + sbcs x13, x13, x3; \ + sbcs x2, x2, xzr; \ + sbcs x9, x9, xzr; \ + sbc x10, x10, xzr; \ + lsl x5, x11, #32; \ + add x11, x5, x11; \ + mov x5, #-4294967295; \ + umulh x5, x5, x11; \ + mov x4, #4294967295; \ + mul x3, x4, x11; \ + umulh x4, x4, x11; \ + adds x5, x5, x3; \ + adcs x4, x4, x11; \ + adc x3, xzr, xzr; \ + subs x12, x12, x5; \ + sbcs x13, x13, x4; \ + sbcs x2, x2, x3; \ + sbcs x9, x9, xzr; \ + sbcs x10, x10, xzr; \ + sbc x11, x11, xzr; \ + lsl x5, x12, #32; \ + add x12, x5, x12; \ + mov x5, #-4294967295; \ + umulh x5, x5, x12; \ + mov x4, #4294967295; \ + mul x3, x4, x12; \ + umulh x4, x4, x12; \ + adds x5, x5, x3; \ + adcs x4, x4, x12; \ + adc x3, xzr, xzr; \ + subs x13, x13, x5; \ + sbcs x2, x2, x4; \ + sbcs x9, x9, x3; \ + sbcs x10, x10, xzr; \ + sbcs x11, x11, xzr; \ + sbc x12, x12, xzr; \ + lsl x5, x13, #32; \ + add x13, x5, x13; \ + mov x5, #-4294967295; \ + umulh x5, x5, x13; \ + mov x4, #4294967295; \ + mul x3, x4, x13; \ + umulh x4, x4, x13; \ + adds x5, x5, x3; \ + adcs x4, x4, x13; \ + adc x3, xzr, xzr; \ + subs x2, x2, x5; \ + sbcs x9, x9, x4; \ + sbcs x10, x10, x3; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbc x13, x13, xzr; \ + adds x2, x2, x14; \ + adcs x9, x9, x15; \ + adcs x10, x10, x16; \ + adcs x11, x11, x17; \ + adcs x12, x12, x19; \ + adcs x13, x13, x20; \ + mov x14, #-4294967295; \ + mov x15, #4294967295; \ + csel x14, x14, xzr, cs; \ + csel x15, x15, xzr, cs; \ + cset x16, cs; \ + adds x2, x2, x14; \ + adcs x9, x9, x15; \ + adcs x10, x10, x16; \ + adcs x11, x11, xzr; \ + adcs x12, x12, xzr; \ + adc x13, x13, xzr; \ + stp x2, x9, [P0]; \ + stp x10, x11, [P0+16]; \ + stp x12, x13, [P0+32] + +// Corresponds exactly to bignum_sub_p384 + +#define sub_p384(P0,P1,P2) \ + ldp x5, x6, [P1]; \ + ldp x4, x3, [P2]; \ + subs x5, x5, x4; \ + sbcs x6, x6, x3; \ + ldp x7, x8, [P1+16]; \ + ldp x4, x3, [P2+16]; \ + sbcs x7, x7, x4; \ + sbcs x8, x8, x3; \ + ldp x9, x10, [P1+32]; \ + ldp x4, x3, [P2+32]; \ + sbcs x9, x9, x4; \ + sbcs x10, x10, x3; \ + csetm x3, lo; \ + mov x4, #4294967295; \ + and x4, x4, x3; \ + adds x5, x5, x4; \ + eor x4, x4, x3; \ + adcs x6, x6, x4; \ + mov x4, #-2; \ + and x4, x4, x3; \ + adcs x7, x7, x4; \ + adcs x8, x8, x3; \ + adcs x9, x9, x3; \ + adc x10, x10, x3; \ + stp x5, x6, [P0]; \ + stp x7, x8, [P0+16]; \ + stp x9, x10, [P0+32] + +S2N_BN_SYMBOL(p384_montjadd_alt): + +// Save regs and make room on stack for temporary variables + + stp x19, x20, [sp, #-16]! + stp x21, x22, [sp, #-16]! + stp x23, x24, [sp, #-16]! + stp x25, x26, [sp, #-16]! + sub sp, sp, NSPACE + +// Move the input arguments to stable places + + mov input_z, x0 + mov input_x, x1 + mov input_y, x2 + +// Main code, just a sequence of basic field operations +// 8 * multiply + 3 * square + 7 * subtract + + amontsqr_p384(z1sq,z_1) + amontsqr_p384(z2sq,z_2) + + montmul_p384(y1a,z_2,y_1) + montmul_p384(y2a,z_1,y_2) + + montmul_p384(x2a,z1sq,x_2) + montmul_p384(x1a,z2sq,x_1) + montmul_p384(y2a,z1sq,y2a) + montmul_p384(y1a,z2sq,y1a) + + sub_p384(xd,x2a,x1a) + sub_p384(yd,y2a,y1a) + + amontsqr_p384(zz,xd) + montsqr_p384(ww,yd) + + montmul_p384(zzx1,zz,x1a) + montmul_p384(zzx2,zz,x2a) + + sub_p384(resx,ww,zzx1) + sub_p384(t1,zzx2,zzx1) + + montmul_p384(xd,xd,z_1) + + sub_p384(resx,resx,zzx2) + + sub_p384(t2,zzx1,resx) + + montmul_p384(t1,t1,y1a) + montmul_p384(resz,xd,z_2) + montmul_p384(t2,yd,t2) + + sub_p384(resy,t2,t1) + +// Load in the z coordinates of the inputs to check for P1 = 0 and P2 = 0 +// The condition codes get set by a comparison (P2 != 0) - (P1 != 0) +// So "HI" <=> CF /\ ~ZF <=> P1 = 0 /\ ~(P2 = 0) +// and "LO" <=> ~CF <=> ~(P1 = 0) /\ P2 = 0 + + ldp x0, x1, [z_1] + ldp x2, x3, [z_1+16] + ldp x4, x5, [z_1+32] + + orr x20, x0, x1 + orr x21, x2, x3 + orr x22, x4, x5 + orr x20, x20, x21 + orr x20, x20, x22 + cmp x20, xzr + cset x20, ne + + ldp x6, x7, [z_2] + ldp x8, x9, [z_2+16] + ldp x10, x11, [z_2+32] + + orr x21, x6, x7 + orr x22, x8, x9 + orr x23, x10, x11 + orr x21, x21, x22 + orr x21, x21, x23 + cmp x21, xzr + cset x21, ne + + cmp x21, x20 + +// Multiplex the outputs accordingly, re-using the z's in registers + + ldp x12, x13, [resz] + csel x12, x0, x12, lo + csel x13, x1, x13, lo + csel x12, x6, x12, hi + csel x13, x7, x13, hi + ldp x14, x15, [resz+16] + csel x14, x2, x14, lo + csel x15, x3, x15, lo + csel x14, x8, x14, hi + csel x15, x9, x15, hi + ldp x16, x17, [resz+32] + csel x16, x4, x16, lo + csel x17, x5, x17, lo + csel x16, x10, x16, hi + csel x17, x11, x17, hi + + ldp x20, x21, [x_1] + ldp x0, x1, [resx] + csel x0, x20, x0, lo + csel x1, x21, x1, lo + ldp x20, x21, [x_2] + csel x0, x20, x0, hi + csel x1, x21, x1, hi + + ldp x20, x21, [x_1+16] + ldp x2, x3, [resx+16] + csel x2, x20, x2, lo + csel x3, x21, x3, lo + ldp x20, x21, [x_2+16] + csel x2, x20, x2, hi + csel x3, x21, x3, hi + + ldp x20, x21, [x_1+32] + ldp x4, x5, [resx+32] + csel x4, x20, x4, lo + csel x5, x21, x5, lo + ldp x20, x21, [x_2+32] + csel x4, x20, x4, hi + csel x5, x21, x5, hi + + ldp x20, x21, [y_1] + ldp x6, x7, [resy] + csel x6, x20, x6, lo + csel x7, x21, x7, lo + ldp x20, x21, [y_2] + csel x6, x20, x6, hi + csel x7, x21, x7, hi + + ldp x20, x21, [y_1+16] + ldp x8, x9, [resy+16] + csel x8, x20, x8, lo + csel x9, x21, x9, lo + ldp x20, x21, [y_2+16] + csel x8, x20, x8, hi + csel x9, x21, x9, hi + + ldp x20, x21, [y_1+32] + ldp x10, x11, [resy+32] + csel x10, x20, x10, lo + csel x11, x21, x11, lo + ldp x20, x21, [y_2+32] + csel x10, x20, x10, hi + csel x11, x21, x11, hi + +// Finally store back the multiplexed values + + stp x0, x1, [x_3] + stp x2, x3, [x_3+16] + stp x4, x5, [x_3+32] + stp x6, x7, [y_3] + stp x8, x9, [y_3+16] + stp x10, x11, [y_3+32] + stp x12, x13, [z_3] + stp x14, x15, [z_3+16] + stp x16, x17, [z_3+32] + +// Restore stack and registers + + add sp, sp, NSPACE + + ldp x25, x26, [sp], 16 + ldp x23, x24, [sp], 16 + ldp x21, x22, [sp], 16 + ldp x19, x20, [sp], 16 + + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack, "", %progbits +#endif diff --git a/third_party/s2n-bignum/arm/p384/p384_montjdouble.S b/third_party/s2n-bignum/arm/p384/p384_montjdouble.S index 7dfd9766f2..3f92103cad 100644 --- a/third_party/s2n-bignum/arm/p384/p384_montjdouble.S +++ b/third_party/s2n-bignum/arm/p384/p384_montjdouble.S @@ -26,8 +26,8 @@ // Stable homes for input arguments during main code sequence -#define input_z x23 -#define input_x x24 +#define input_z x25 +#define input_x x26 // Pointer-offset pairs for inputs and outputs @@ -56,501 +56,652 @@ #define d sp, #(NUMSIZE*6) #define x4p sp, #(NUMSIZE*6) -#define NSPACE (NUMSIZE*7) +#define NSPACE #(NUMSIZE*7) -// Corresponds exactly to bignum_montmul_p384_alt +// Corresponds exactly to bignum_montmul_p384 #define montmul_p384(P0,P1,P2) \ ldp x3, x4, [P1]; \ - ldp x5, x6, [P2]; \ - mul x12, x3, x5; \ - umulh x13, x3, x5; \ - mul x11, x3, x6; \ - umulh x14, x3, x6; \ - adds x13, x13, x11; \ - ldp x7, x8, [P2+16]; \ - mul x11, x3, x7; \ - umulh x15, x3, x7; \ - adcs x14, x14, x11; \ - mul x11, x3, x8; \ - umulh x16, x3, x8; \ - adcs x15, x15, x11; \ - ldp x9, x10, [P2+32]; \ - mul x11, x3, x9; \ - umulh x17, x3, x9; \ - adcs x16, x16, x11; \ - mul x11, x3, x10; \ - umulh x19, x3, x10; \ - adcs x17, x17, x11; \ - adc x19, x19, xzr; \ - mul x11, x4, x5; \ - adds x13, x13, x11; \ - mul x11, x4, x6; \ - adcs x14, x14, x11; \ - mul x11, x4, x7; \ - adcs x15, x15, x11; \ - mul x11, x4, x8; \ - adcs x16, x16, x11; \ - mul x11, x4, x9; \ - adcs x17, x17, x11; \ - mul x11, x4, x10; \ - adcs x19, x19, x11; \ - cset x20, cs; \ - umulh x11, x4, x5; \ - adds x14, x14, x11; \ - umulh x11, x4, x6; \ - adcs x15, x15, x11; \ - umulh x11, x4, x7; \ - adcs x16, x16, x11; \ - umulh x11, x4, x8; \ - adcs x17, x17, x11; \ - umulh x11, x4, x9; \ - adcs x19, x19, x11; \ - umulh x11, x4, x10; \ - adc x20, x20, x11; \ - ldp x3, x4, [P1+16]; \ - mul x11, x3, x5; \ - adds x14, x14, x11; \ - mul x11, x3, x6; \ - adcs x15, x15, x11; \ - mul x11, x3, x7; \ - adcs x16, x16, x11; \ - mul x11, x3, x8; \ - adcs x17, x17, x11; \ - mul x11, x3, x9; \ - adcs x19, x19, x11; \ - mul x11, x3, x10; \ - adcs x20, x20, x11; \ - cset x21, cs; \ - umulh x11, x3, x5; \ - adds x15, x15, x11; \ - umulh x11, x3, x6; \ - adcs x16, x16, x11; \ - umulh x11, x3, x7; \ - adcs x17, x17, x11; \ - umulh x11, x3, x8; \ - adcs x19, x19, x11; \ - umulh x11, x3, x9; \ - adcs x20, x20, x11; \ - umulh x11, x3, x10; \ - adc x21, x21, x11; \ - mul x11, x4, x5; \ - adds x15, x15, x11; \ - mul x11, x4, x6; \ - adcs x16, x16, x11; \ - mul x11, x4, x7; \ - adcs x17, x17, x11; \ - mul x11, x4, x8; \ - adcs x19, x19, x11; \ - mul x11, x4, x9; \ - adcs x20, x20, x11; \ - mul x11, x4, x10; \ - adcs x21, x21, x11; \ - cset x22, cs; \ - umulh x11, x4, x5; \ - adds x16, x16, x11; \ - umulh x11, x4, x6; \ - adcs x17, x17, x11; \ - umulh x11, x4, x7; \ - adcs x19, x19, x11; \ - umulh x11, x4, x8; \ - adcs x20, x20, x11; \ - umulh x11, x4, x9; \ - adcs x21, x21, x11; \ - umulh x11, x4, x10; \ - adc x22, x22, x11; \ - ldp x3, x4, [P1+32]; \ - mul x11, x3, x5; \ - adds x16, x16, x11; \ - mul x11, x3, x6; \ - adcs x17, x17, x11; \ - mul x11, x3, x7; \ - adcs x19, x19, x11; \ - mul x11, x3, x8; \ - adcs x20, x20, x11; \ - mul x11, x3, x9; \ - adcs x21, x21, x11; \ - mul x11, x3, x10; \ - adcs x22, x22, x11; \ - cset x2, cs; \ - umulh x11, x3, x5; \ - adds x17, x17, x11; \ - umulh x11, x3, x6; \ - adcs x19, x19, x11; \ - umulh x11, x3, x7; \ - adcs x20, x20, x11; \ - umulh x11, x3, x8; \ - adcs x21, x21, x11; \ - umulh x11, x3, x9; \ - adcs x22, x22, x11; \ - umulh x11, x3, x10; \ - adc x2, x2, x11; \ - mul x11, x4, x5; \ - adds x17, x17, x11; \ - mul x11, x4, x6; \ - adcs x19, x19, x11; \ - mul x11, x4, x7; \ - adcs x20, x20, x11; \ - mul x11, x4, x8; \ - adcs x21, x21, x11; \ - mul x11, x4, x9; \ - adcs x22, x22, x11; \ - mul x11, x4, x10; \ - adcs x2, x2, x11; \ - cset x1, cs; \ - umulh x11, x4, x5; \ - adds x19, x19, x11; \ - umulh x11, x4, x6; \ - adcs x20, x20, x11; \ - umulh x11, x4, x7; \ - adcs x21, x21, x11; \ - umulh x11, x4, x8; \ - adcs x22, x22, x11; \ - umulh x11, x4, x9; \ - adcs x2, x2, x11; \ - umulh x11, x4, x10; \ - adc x1, x1, x11; \ - lsl x7, x12, #32; \ - add x12, x7, x12; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x12; \ - mov x6, #0xffffffff; \ - mul x5, x6, x12; \ - umulh x6, x6, x12; \ - adds x7, x7, x5; \ - adcs x6, x6, x12; \ - adc x5, xzr, xzr; \ - subs x13, x13, x7; \ - sbcs x14, x14, x6; \ - sbcs x15, x15, x5; \ + ldp x5, x6, [P1+16]; \ + ldp x7, x8, [P1+32]; \ + ldp x9, x10, [P2]; \ + ldp x11, x12, [P2+16]; \ + ldp x13, x14, [P2+32]; \ + mul x15, x3, x9; \ + mul x21, x4, x10; \ + mul x22, x5, x11; \ + umulh x23, x3, x9; \ + umulh x24, x4, x10; \ + umulh x1, x5, x11; \ + adds x23, x23, x21; \ + adcs x24, x24, x22; \ + adc x1, x1, xzr; \ + adds x16, x23, x15; \ + adcs x17, x24, x23; \ + adcs x19, x1, x24; \ + adc x20, x1, xzr; \ + adds x17, x17, x15; \ + adcs x19, x19, x23; \ + adcs x20, x20, x24; \ + adc x1, x1, xzr; \ + subs x24, x3, x4; \ + cneg x24, x24, lo; \ + csetm x23, lo; \ + subs x22, x10, x9; \ + cneg x22, x22, lo; \ + mul x21, x24, x22; \ + umulh x22, x24, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x16, x16, x21; \ + adcs x17, x17, x22; \ + adcs x19, x19, x23; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x24, x3, x5; \ + cneg x24, x24, lo; \ + csetm x23, lo; \ + subs x22, x11, x9; \ + cneg x22, x22, lo; \ + mul x21, x24, x22; \ + umulh x22, x24, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x17, x17, x21; \ + adcs x19, x19, x22; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x24, x4, x5; \ + cneg x24, x24, lo; \ + csetm x23, lo; \ + subs x22, x11, x10; \ + cneg x22, x22, lo; \ + mul x21, x24, x22; \ + umulh x22, x24, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x19, x19, x21; \ + adcs x20, x20, x22; \ + adc x1, x1, x23; \ + lsl x23, x15, #32; \ + add x15, x23, x15; \ + lsr x23, x15, #32; \ + subs x23, x23, x15; \ + sbc x22, x15, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x15; \ + adc x21, xzr, xzr; \ + subs x16, x16, x23; \ + sbcs x17, x17, x22; \ + sbcs x19, x19, x21; \ + sbcs x20, x20, xzr; \ + sbcs x1, x1, xzr; \ + sbc x15, x15, xzr; \ + lsl x23, x16, #32; \ + add x16, x23, x16; \ + lsr x23, x16, #32; \ + subs x23, x23, x16; \ + sbc x22, x16, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x16; \ + adc x21, xzr, xzr; \ + subs x17, x17, x23; \ + sbcs x19, x19, x22; \ + sbcs x20, x20, x21; \ + sbcs x1, x1, xzr; \ + sbcs x15, x15, xzr; \ + sbc x16, x16, xzr; \ + lsl x23, x17, #32; \ + add x17, x23, x17; \ + lsr x23, x17, #32; \ + subs x23, x23, x17; \ + sbc x22, x17, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x17; \ + adc x21, xzr, xzr; \ + subs x19, x19, x23; \ + sbcs x20, x20, x22; \ + sbcs x1, x1, x21; \ + sbcs x15, x15, xzr; \ sbcs x16, x16, xzr; \ - sbcs x17, x17, xzr; \ - sbc x12, x12, xzr; \ - lsl x7, x13, #32; \ - add x13, x7, x13; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x13; \ - mov x6, #0xffffffff; \ - mul x5, x6, x13; \ - umulh x6, x6, x13; \ - adds x7, x7, x5; \ - adcs x6, x6, x13; \ - adc x5, xzr, xzr; \ - subs x14, x14, x7; \ - sbcs x15, x15, x6; \ - sbcs x16, x16, x5; \ - sbcs x17, x17, xzr; \ - sbcs x12, x12, xzr; \ - sbc x13, x13, xzr; \ - lsl x7, x14, #32; \ - add x14, x7, x14; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x14; \ - mov x6, #0xffffffff; \ - mul x5, x6, x14; \ - umulh x6, x6, x14; \ - adds x7, x7, x5; \ - adcs x6, x6, x14; \ - adc x5, xzr, xzr; \ - subs x15, x15, x7; \ - sbcs x16, x16, x6; \ - sbcs x17, x17, x5; \ - sbcs x12, x12, xzr; \ - sbcs x13, x13, xzr; \ - sbc x14, x14, xzr; \ - lsl x7, x15, #32; \ - add x15, x7, x15; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x15; \ - mov x6, #0xffffffff; \ - mul x5, x6, x15; \ - umulh x6, x6, x15; \ - adds x7, x7, x5; \ - adcs x6, x6, x15; \ - adc x5, xzr, xzr; \ - subs x16, x16, x7; \ - sbcs x17, x17, x6; \ - sbcs x12, x12, x5; \ - sbcs x13, x13, xzr; \ - sbcs x14, x14, xzr; \ + sbc x17, x17, xzr; \ + stp x19, x20, [P0]; \ + stp x1, x15, [P0+16]; \ + stp x16, x17, [P0+32]; \ + mul x15, x6, x12; \ + mul x21, x7, x13; \ + mul x22, x8, x14; \ + umulh x23, x6, x12; \ + umulh x24, x7, x13; \ + umulh x1, x8, x14; \ + adds x23, x23, x21; \ + adcs x24, x24, x22; \ + adc x1, x1, xzr; \ + adds x16, x23, x15; \ + adcs x17, x24, x23; \ + adcs x19, x1, x24; \ + adc x20, x1, xzr; \ + adds x17, x17, x15; \ + adcs x19, x19, x23; \ + adcs x20, x20, x24; \ + adc x1, x1, xzr; \ + subs x24, x6, x7; \ + cneg x24, x24, lo; \ + csetm x23, lo; \ + subs x22, x13, x12; \ + cneg x22, x22, lo; \ + mul x21, x24, x22; \ + umulh x22, x24, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x16, x16, x21; \ + adcs x17, x17, x22; \ + adcs x19, x19, x23; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x24, x6, x8; \ + cneg x24, x24, lo; \ + csetm x23, lo; \ + subs x22, x14, x12; \ + cneg x22, x22, lo; \ + mul x21, x24, x22; \ + umulh x22, x24, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x17, x17, x21; \ + adcs x19, x19, x22; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x24, x7, x8; \ + cneg x24, x24, lo; \ + csetm x23, lo; \ + subs x22, x14, x13; \ + cneg x22, x22, lo; \ + mul x21, x24, x22; \ + umulh x22, x24, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x19, x19, x21; \ + adcs x20, x20, x22; \ + adc x1, x1, x23; \ + subs x6, x6, x3; \ + sbcs x7, x7, x4; \ + sbcs x8, x8, x5; \ + ngc x3, xzr; \ + cmn x3, #1; \ + eor x6, x6, x3; \ + adcs x6, x6, xzr; \ + eor x7, x7, x3; \ + adcs x7, x7, xzr; \ + eor x8, x8, x3; \ + adc x8, x8, xzr; \ + subs x9, x9, x12; \ + sbcs x10, x10, x13; \ + sbcs x11, x11, x14; \ + ngc x14, xzr; \ + cmn x14, #1; \ + eor x9, x9, x14; \ + adcs x9, x9, xzr; \ + eor x10, x10, x14; \ + adcs x10, x10, xzr; \ + eor x11, x11, x14; \ + adc x11, x11, xzr; \ + eor x14, x3, x14; \ + ldp x21, x22, [P0]; \ + adds x15, x15, x21; \ + adcs x16, x16, x22; \ + ldp x21, x22, [P0+16]; \ + adcs x17, x17, x21; \ + adcs x19, x19, x22; \ + ldp x21, x22, [P0+32]; \ + adcs x20, x20, x21; \ + adcs x1, x1, x22; \ + adc x2, xzr, xzr; \ + stp x15, x16, [P0]; \ + stp x17, x19, [P0+16]; \ + stp x20, x1, [P0+32]; \ + mul x15, x6, x9; \ + mul x21, x7, x10; \ + mul x22, x8, x11; \ + umulh x23, x6, x9; \ + umulh x24, x7, x10; \ + umulh x1, x8, x11; \ + adds x23, x23, x21; \ + adcs x24, x24, x22; \ + adc x1, x1, xzr; \ + adds x16, x23, x15; \ + adcs x17, x24, x23; \ + adcs x19, x1, x24; \ + adc x20, x1, xzr; \ + adds x17, x17, x15; \ + adcs x19, x19, x23; \ + adcs x20, x20, x24; \ + adc x1, x1, xzr; \ + subs x24, x6, x7; \ + cneg x24, x24, lo; \ + csetm x23, lo; \ + subs x22, x10, x9; \ + cneg x22, x22, lo; \ + mul x21, x24, x22; \ + umulh x22, x24, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x16, x16, x21; \ + adcs x17, x17, x22; \ + adcs x19, x19, x23; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x24, x6, x8; \ + cneg x24, x24, lo; \ + csetm x23, lo; \ + subs x22, x11, x9; \ + cneg x22, x22, lo; \ + mul x21, x24, x22; \ + umulh x22, x24, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x17, x17, x21; \ + adcs x19, x19, x22; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x24, x7, x8; \ + cneg x24, x24, lo; \ + csetm x23, lo; \ + subs x22, x11, x10; \ + cneg x22, x22, lo; \ + mul x21, x24, x22; \ + umulh x22, x24, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x19, x19, x21; \ + adcs x20, x20, x22; \ + adc x1, x1, x23; \ + ldp x3, x4, [P0]; \ + ldp x5, x6, [P0+16]; \ + ldp x7, x8, [P0+32]; \ + cmn x14, #1; \ + eor x15, x15, x14; \ + adcs x15, x15, x3; \ + eor x16, x16, x14; \ + adcs x16, x16, x4; \ + eor x17, x17, x14; \ + adcs x17, x17, x5; \ + eor x19, x19, x14; \ + adcs x19, x19, x6; \ + eor x20, x20, x14; \ + adcs x20, x20, x7; \ + eor x1, x1, x14; \ + adcs x1, x1, x8; \ + adcs x9, x14, x2; \ + adcs x10, x14, xzr; \ + adcs x11, x14, xzr; \ + adc x12, x14, xzr; \ + adds x19, x19, x3; \ + adcs x20, x20, x4; \ + adcs x1, x1, x5; \ + adcs x9, x9, x6; \ + adcs x10, x10, x7; \ + adcs x11, x11, x8; \ + adc x12, x12, x2; \ + lsl x23, x15, #32; \ + add x15, x23, x15; \ + lsr x23, x15, #32; \ + subs x23, x23, x15; \ + sbc x22, x15, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x15; \ + adc x21, xzr, xzr; \ + subs x16, x16, x23; \ + sbcs x17, x17, x22; \ + sbcs x19, x19, x21; \ + sbcs x20, x20, xzr; \ + sbcs x1, x1, xzr; \ sbc x15, x15, xzr; \ - lsl x7, x16, #32; \ - add x16, x7, x16; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x16; \ - mov x6, #0xffffffff; \ - mul x5, x6, x16; \ - umulh x6, x6, x16; \ - adds x7, x7, x5; \ - adcs x6, x6, x16; \ - adc x5, xzr, xzr; \ - subs x17, x17, x7; \ - sbcs x12, x12, x6; \ - sbcs x13, x13, x5; \ - sbcs x14, x14, xzr; \ + lsl x23, x16, #32; \ + add x16, x23, x16; \ + lsr x23, x16, #32; \ + subs x23, x23, x16; \ + sbc x22, x16, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x16; \ + adc x21, xzr, xzr; \ + subs x17, x17, x23; \ + sbcs x19, x19, x22; \ + sbcs x20, x20, x21; \ + sbcs x1, x1, xzr; \ sbcs x15, x15, xzr; \ sbc x16, x16, xzr; \ - lsl x7, x17, #32; \ - add x17, x7, x17; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x17; \ - mov x6, #0xffffffff; \ - mul x5, x6, x17; \ - umulh x6, x6, x17; \ - adds x7, x7, x5; \ - adcs x6, x6, x17; \ - adc x5, xzr, xzr; \ - subs x12, x12, x7; \ - sbcs x13, x13, x6; \ - sbcs x14, x14, x5; \ + lsl x23, x17, #32; \ + add x17, x23, x17; \ + lsr x23, x17, #32; \ + subs x23, x23, x17; \ + sbc x22, x17, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x17; \ + adc x21, xzr, xzr; \ + subs x19, x19, x23; \ + sbcs x20, x20, x22; \ + sbcs x1, x1, x21; \ sbcs x15, x15, xzr; \ sbcs x16, x16, xzr; \ sbc x17, x17, xzr; \ - adds x12, x12, x19; \ - adcs x13, x13, x20; \ - adcs x14, x14, x21; \ - adcs x15, x15, x22; \ - adcs x16, x16, x2; \ - adcs x17, x17, x1; \ - adc x10, xzr, xzr; \ - mov x11, #0xffffffff00000001; \ - adds x19, x12, x11; \ - mov x11, #0xffffffff; \ - adcs x20, x13, x11; \ - mov x11, #0x1; \ - adcs x21, x14, x11; \ - adcs x22, x15, xzr; \ - adcs x2, x16, xzr; \ - adcs x1, x17, xzr; \ + adds x9, x9, x15; \ + adcs x10, x10, x16; \ + adcs x11, x11, x17; \ + adc x12, x12, xzr; \ + add x22, x12, #1; \ + lsl x21, x22, #32; \ + subs x24, x22, x21; \ + sbc x21, x21, xzr; \ + adds x19, x19, x24; \ + adcs x20, x20, x21; \ + adcs x1, x1, x22; \ + adcs x9, x9, xzr; \ adcs x10, x10, xzr; \ - csel x12, x12, x19, eq; \ - csel x13, x13, x20, eq; \ - csel x14, x14, x21, eq; \ - csel x15, x15, x22, eq; \ - csel x16, x16, x2, eq; \ - csel x17, x17, x1, eq; \ - stp x12, x13, [P0]; \ - stp x14, x15, [P0+16]; \ - stp x16, x17, [P0+32] - -// Corresponds exactly to bignum_montsqr_p384_alt + adcs x11, x11, xzr; \ + csetm x22, lo; \ + mov x23, #4294967295; \ + and x23, x23, x22; \ + adds x19, x19, x23; \ + eor x23, x23, x22; \ + adcs x20, x20, x23; \ + mov x23, #-2; \ + and x23, x23, x22; \ + adcs x1, x1, x23; \ + adcs x9, x9, x22; \ + adcs x10, x10, x22; \ + adc x11, x11, x22; \ + stp x19, x20, [P0]; \ + stp x1, x9, [P0+16]; \ + stp x10, x11, [P0+32] + +// Corresponds exactly to bignum_montsqr_p384 #define montsqr_p384(P0,P1) \ ldp x2, x3, [P1]; \ - mul x9, x2, x3; \ - umulh x10, x2, x3; \ ldp x4, x5, [P1+16]; \ - mul x8, x2, x4; \ - adds x10, x10, x8; \ - mul x11, x2, x5; \ - mul x8, x3, x4; \ - adcs x11, x11, x8; \ - umulh x12, x2, x5; \ - mul x8, x3, x5; \ - adcs x12, x12, x8; \ ldp x6, x7, [P1+32]; \ - mul x13, x2, x7; \ - mul x8, x3, x6; \ - adcs x13, x13, x8; \ - umulh x14, x2, x7; \ - mul x8, x3, x7; \ - adcs x14, x14, x8; \ - mul x15, x5, x6; \ - adcs x15, x15, xzr; \ - umulh x16, x5, x6; \ - adc x16, x16, xzr; \ - umulh x8, x2, x4; \ - adds x11, x11, x8; \ - umulh x8, x3, x4; \ - adcs x12, x12, x8; \ - umulh x8, x3, x5; \ - adcs x13, x13, x8; \ - umulh x8, x3, x6; \ - adcs x14, x14, x8; \ - umulh x8, x3, x7; \ - adcs x15, x15, x8; \ - adc x16, x16, xzr; \ - mul x8, x2, x6; \ - adds x12, x12, x8; \ - mul x8, x4, x5; \ - adcs x13, x13, x8; \ - mul x8, x4, x6; \ - adcs x14, x14, x8; \ - mul x8, x4, x7; \ - adcs x15, x15, x8; \ - mul x8, x5, x7; \ - adcs x16, x16, x8; \ - mul x17, x6, x7; \ + mul x14, x2, x3; \ + mul x15, x2, x4; \ + mul x16, x3, x4; \ + mul x8, x2, x2; \ + mul x10, x3, x3; \ + mul x12, x4, x4; \ + umulh x17, x2, x3; \ + adds x15, x15, x17; \ + umulh x17, x2, x4; \ + adcs x16, x16, x17; \ + umulh x17, x3, x4; \ adcs x17, x17, xzr; \ - umulh x19, x6, x7; \ - adc x19, x19, xzr; \ - umulh x8, x2, x6; \ - adds x13, x13, x8; \ - umulh x8, x4, x5; \ - adcs x14, x14, x8; \ - umulh x8, x4, x6; \ - adcs x15, x15, x8; \ - umulh x8, x4, x7; \ - adcs x16, x16, x8; \ - umulh x8, x5, x7; \ - adcs x17, x17, x8; \ - adc x19, x19, xzr; \ - adds x9, x9, x9; \ - adcs x10, x10, x10; \ - adcs x11, x11, x11; \ - adcs x12, x12, x12; \ - adcs x13, x13, x13; \ - adcs x14, x14, x14; \ + umulh x9, x2, x2; \ + umulh x11, x3, x3; \ + umulh x13, x4, x4; \ + adds x14, x14, x14; \ adcs x15, x15, x15; \ adcs x16, x16, x16; \ adcs x17, x17, x17; \ - adcs x19, x19, x19; \ - cset x20, hs; \ - umulh x8, x2, x2; \ - mul x2, x2, x2; \ - adds x9, x9, x8; \ - mul x8, x3, x3; \ - adcs x10, x10, x8; \ - umulh x8, x3, x3; \ - adcs x11, x11, x8; \ - mul x8, x4, x4; \ - adcs x12, x12, x8; \ - umulh x8, x4, x4; \ - adcs x13, x13, x8; \ - mul x8, x5, x5; \ - adcs x14, x14, x8; \ - umulh x8, x5, x5; \ - adcs x15, x15, x8; \ - mul x8, x6, x6; \ - adcs x16, x16, x8; \ - umulh x8, x6, x6; \ - adcs x17, x17, x8; \ - mul x8, x7, x7; \ - adcs x19, x19, x8; \ - umulh x8, x7, x7; \ - adc x20, x20, x8; \ - lsl x5, x2, #32; \ - add x2, x5, x2; \ - mov x5, #-4294967295; \ - umulh x5, x5, x2; \ - mov x4, #4294967295; \ - mul x3, x4, x2; \ - umulh x4, x4, x2; \ - adds x5, x5, x3; \ - adcs x4, x4, x2; \ - adc x3, xzr, xzr; \ - subs x9, x9, x5; \ - sbcs x10, x10, x4; \ - sbcs x11, x11, x3; \ + adc x13, x13, xzr; \ + adds x9, x9, x14; \ + adcs x10, x10, x15; \ + adcs x11, x11, x16; \ + adcs x12, x12, x17; \ + adc x13, x13, xzr; \ + lsl x16, x8, #32; \ + add x8, x16, x8; \ + lsr x16, x8, #32; \ + subs x16, x16, x8; \ + sbc x15, x8, xzr; \ + extr x16, x15, x16, #32; \ + lsr x15, x15, #32; \ + adds x15, x15, x8; \ + adc x14, xzr, xzr; \ + subs x9, x9, x16; \ + sbcs x10, x10, x15; \ + sbcs x11, x11, x14; \ sbcs x12, x12, xzr; \ sbcs x13, x13, xzr; \ - sbc x2, x2, xzr; \ - lsl x5, x9, #32; \ - add x9, x5, x9; \ - mov x5, #-4294967295; \ - umulh x5, x5, x9; \ - mov x4, #4294967295; \ - mul x3, x4, x9; \ - umulh x4, x4, x9; \ - adds x5, x5, x3; \ - adcs x4, x4, x9; \ - adc x3, xzr, xzr; \ - subs x10, x10, x5; \ - sbcs x11, x11, x4; \ - sbcs x12, x12, x3; \ + sbc x8, x8, xzr; \ + lsl x16, x9, #32; \ + add x9, x16, x9; \ + lsr x16, x9, #32; \ + subs x16, x16, x9; \ + sbc x15, x9, xzr; \ + extr x16, x15, x16, #32; \ + lsr x15, x15, #32; \ + adds x15, x15, x9; \ + adc x14, xzr, xzr; \ + subs x10, x10, x16; \ + sbcs x11, x11, x15; \ + sbcs x12, x12, x14; \ sbcs x13, x13, xzr; \ - sbcs x2, x2, xzr; \ + sbcs x8, x8, xzr; \ sbc x9, x9, xzr; \ - lsl x5, x10, #32; \ - add x10, x5, x10; \ - mov x5, #-4294967295; \ - umulh x5, x5, x10; \ - mov x4, #4294967295; \ - mul x3, x4, x10; \ - umulh x4, x4, x10; \ - adds x5, x5, x3; \ - adcs x4, x4, x10; \ - adc x3, xzr, xzr; \ - subs x11, x11, x5; \ - sbcs x12, x12, x4; \ - sbcs x13, x13, x3; \ - sbcs x2, x2, xzr; \ + lsl x16, x10, #32; \ + add x10, x16, x10; \ + lsr x16, x10, #32; \ + subs x16, x16, x10; \ + sbc x15, x10, xzr; \ + extr x16, x15, x16, #32; \ + lsr x15, x15, #32; \ + adds x15, x15, x10; \ + adc x14, xzr, xzr; \ + subs x11, x11, x16; \ + sbcs x12, x12, x15; \ + sbcs x13, x13, x14; \ + sbcs x8, x8, xzr; \ sbcs x9, x9, xzr; \ sbc x10, x10, xzr; \ - lsl x5, x11, #32; \ - add x11, x5, x11; \ - mov x5, #-4294967295; \ - umulh x5, x5, x11; \ - mov x4, #4294967295; \ - mul x3, x4, x11; \ - umulh x4, x4, x11; \ - adds x5, x5, x3; \ - adcs x4, x4, x11; \ - adc x3, xzr, xzr; \ - subs x12, x12, x5; \ - sbcs x13, x13, x4; \ - sbcs x2, x2, x3; \ - sbcs x9, x9, xzr; \ - sbcs x10, x10, xzr; \ - sbc x11, x11, xzr; \ - lsl x5, x12, #32; \ - add x12, x5, x12; \ - mov x5, #-4294967295; \ - umulh x5, x5, x12; \ - mov x4, #4294967295; \ - mul x3, x4, x12; \ - umulh x4, x4, x12; \ - adds x5, x5, x3; \ - adcs x4, x4, x12; \ - adc x3, xzr, xzr; \ - subs x13, x13, x5; \ - sbcs x2, x2, x4; \ - sbcs x9, x9, x3; \ - sbcs x10, x10, xzr; \ - sbcs x11, x11, xzr; \ - sbc x12, x12, xzr; \ - lsl x5, x13, #32; \ - add x13, x5, x13; \ - mov x5, #-4294967295; \ - umulh x5, x5, x13; \ - mov x4, #4294967295; \ - mul x3, x4, x13; \ - umulh x4, x4, x13; \ - adds x5, x5, x3; \ - adcs x4, x4, x13; \ - adc x3, xzr, xzr; \ - subs x2, x2, x5; \ - sbcs x9, x9, x4; \ + stp x11, x12, [P0]; \ + stp x13, x8, [P0+16]; \ + stp x9, x10, [P0+32]; \ + mul x8, x2, x5; \ + mul x14, x3, x6; \ + mul x15, x4, x7; \ + umulh x16, x2, x5; \ + umulh x17, x3, x6; \ + umulh x1, x4, x7; \ + adds x16, x16, x14; \ + adcs x17, x17, x15; \ + adc x1, x1, xzr; \ + adds x9, x16, x8; \ + adcs x10, x17, x16; \ + adcs x11, x1, x17; \ + adc x12, x1, xzr; \ + adds x10, x10, x8; \ + adcs x11, x11, x16; \ + adcs x12, x12, x17; \ + adc x13, x1, xzr; \ + subs x17, x2, x3; \ + cneg x17, x17, lo; \ + csetm x14, lo; \ + subs x15, x6, x5; \ + cneg x15, x15, lo; \ + mul x16, x17, x15; \ + umulh x15, x17, x15; \ + cinv x14, x14, lo; \ + eor x16, x16, x14; \ + eor x15, x15, x14; \ + cmn x14, #1; \ + adcs x9, x9, x16; \ + adcs x10, x10, x15; \ + adcs x11, x11, x14; \ + adcs x12, x12, x14; \ + adc x13, x13, x14; \ + subs x17, x2, x4; \ + cneg x17, x17, lo; \ + csetm x14, lo; \ + subs x15, x7, x5; \ + cneg x15, x15, lo; \ + mul x16, x17, x15; \ + umulh x15, x17, x15; \ + cinv x14, x14, lo; \ + eor x16, x16, x14; \ + eor x15, x15, x14; \ + cmn x14, #1; \ + adcs x10, x10, x16; \ + adcs x11, x11, x15; \ + adcs x12, x12, x14; \ + adc x13, x13, x14; \ + subs x17, x3, x4; \ + cneg x17, x17, lo; \ + csetm x14, lo; \ + subs x15, x7, x6; \ + cneg x15, x15, lo; \ + mul x16, x17, x15; \ + umulh x15, x17, x15; \ + cinv x14, x14, lo; \ + eor x16, x16, x14; \ + eor x15, x15, x14; \ + cmn x14, #1; \ + adcs x11, x11, x16; \ + adcs x12, x12, x15; \ + adc x13, x13, x14; \ + adds x8, x8, x8; \ + adcs x9, x9, x9; \ + adcs x10, x10, x10; \ + adcs x11, x11, x11; \ + adcs x12, x12, x12; \ + adcs x13, x13, x13; \ + adc x17, xzr, xzr; \ + ldp x2, x3, [P0]; \ + adds x8, x8, x2; \ + adcs x9, x9, x3; \ + ldp x2, x3, [P0+16]; \ + adcs x10, x10, x2; \ + adcs x11, x11, x3; \ + ldp x2, x3, [P0+32]; \ + adcs x12, x12, x2; \ + adcs x13, x13, x3; \ + adc x17, x17, xzr; \ + lsl x4, x8, #32; \ + add x8, x4, x8; \ + lsr x4, x8, #32; \ + subs x4, x4, x8; \ + sbc x3, x8, xzr; \ + extr x4, x3, x4, #32; \ + lsr x3, x3, #32; \ + adds x3, x3, x8; \ + adc x2, xzr, xzr; \ + subs x9, x9, x4; \ sbcs x10, x10, x3; \ - sbcs x11, x11, xzr; \ + sbcs x11, x11, x2; \ sbcs x12, x12, xzr; \ - sbc x13, x13, xzr; \ - adds x2, x2, x14; \ - adcs x9, x9, x15; \ - adcs x10, x10, x16; \ - adcs x11, x11, x17; \ - adcs x12, x12, x19; \ - adcs x13, x13, x20; \ - adc x6, xzr, xzr; \ - mov x8, #-4294967295; \ - adds x14, x2, x8; \ - mov x8, #4294967295; \ - adcs x15, x9, x8; \ - mov x8, #1; \ - adcs x16, x10, x8; \ - adcs x17, x11, xzr; \ - adcs x19, x12, xzr; \ - adcs x20, x13, xzr; \ - adcs x6, x6, xzr; \ - csel x2, x2, x14, eq; \ - csel x9, x9, x15, eq; \ - csel x10, x10, x16, eq; \ - csel x11, x11, x17, eq; \ - csel x12, x12, x19, eq; \ - csel x13, x13, x20, eq; \ - stp x2, x9, [P0]; \ - stp x10, x11, [P0+16]; \ - stp x12, x13, [P0+32] + sbcs x13, x13, xzr; \ + sbc x8, x8, xzr; \ + lsl x4, x9, #32; \ + add x9, x4, x9; \ + lsr x4, x9, #32; \ + subs x4, x4, x9; \ + sbc x3, x9, xzr; \ + extr x4, x3, x4, #32; \ + lsr x3, x3, #32; \ + adds x3, x3, x9; \ + adc x2, xzr, xzr; \ + subs x10, x10, x4; \ + sbcs x11, x11, x3; \ + sbcs x12, x12, x2; \ + sbcs x13, x13, xzr; \ + sbcs x8, x8, xzr; \ + sbc x9, x9, xzr; \ + lsl x4, x10, #32; \ + add x10, x4, x10; \ + lsr x4, x10, #32; \ + subs x4, x4, x10; \ + sbc x3, x10, xzr; \ + extr x4, x3, x4, #32; \ + lsr x3, x3, #32; \ + adds x3, x3, x10; \ + adc x2, xzr, xzr; \ + subs x11, x11, x4; \ + sbcs x12, x12, x3; \ + sbcs x13, x13, x2; \ + sbcs x8, x8, xzr; \ + sbcs x9, x9, xzr; \ + sbc x10, x10, xzr; \ + adds x17, x17, x8; \ + adcs x8, x9, xzr; \ + adcs x9, x10, xzr; \ + adcs x10, xzr, xzr; \ + mul x1, x5, x5; \ + adds x11, x11, x1; \ + mul x14, x6, x6; \ + mul x15, x7, x7; \ + umulh x1, x5, x5; \ + adcs x12, x12, x1; \ + umulh x1, x6, x6; \ + adcs x13, x13, x14; \ + adcs x17, x17, x1; \ + umulh x1, x7, x7; \ + adcs x8, x8, x15; \ + adcs x9, x9, x1; \ + adc x10, x10, xzr; \ + mul x1, x5, x6; \ + mul x14, x5, x7; \ + mul x15, x6, x7; \ + umulh x16, x5, x6; \ + adds x14, x14, x16; \ + umulh x16, x5, x7; \ + adcs x15, x15, x16; \ + umulh x16, x6, x7; \ + adc x16, x16, xzr; \ + adds x1, x1, x1; \ + adcs x14, x14, x14; \ + adcs x15, x15, x15; \ + adcs x16, x16, x16; \ + adc x5, xzr, xzr; \ + adds x12, x12, x1; \ + adcs x13, x13, x14; \ + adcs x17, x17, x15; \ + adcs x8, x8, x16; \ + adcs x9, x9, x5; \ + adc x10, x10, xzr; \ + mov x1, #-4294967295; \ + mov x14, #4294967295; \ + mov x15, #1; \ + cmn x11, x1; \ + adcs xzr, x12, x14; \ + adcs xzr, x13, x15; \ + adcs xzr, x17, xzr; \ + adcs xzr, x8, xzr; \ + adcs xzr, x9, xzr; \ + adc x10, x10, xzr; \ + neg x10, x10; \ + and x1, x1, x10; \ + adds x11, x11, x1; \ + and x14, x14, x10; \ + adcs x12, x12, x14; \ + and x15, x15, x10; \ + adcs x13, x13, x15; \ + adcs x17, x17, xzr; \ + adcs x8, x8, xzr; \ + adc x9, x9, xzr; \ + stp x11, x12, [P0]; \ + stp x13, x17, [P0+16]; \ + stp x8, x9, [P0+32] // Corresponds exactly to bignum_sub_p384 @@ -876,10 +1027,11 @@ S2N_BN_SYMBOL(p384_montjdouble): // Save regs and make room on stack for temporary variables - stp x19, x20, [sp, #-16]! - stp x21, x22, [sp, #-16]! - stp x23, x24, [sp, #-16]! - sub sp, sp, NSPACE + sub sp, sp, NSPACE+64 + stp x19, x20, [sp, NSPACE] + stp x21, x22, [sp, NSPACE+16] + stp x23, x24, [sp, NSPACE+32] + stp x25, x26, [sp, NSPACE+48] // Move the input arguments to stable places @@ -938,12 +1090,11 @@ S2N_BN_SYMBOL(p384_montjdouble): // Restore stack and registers - add sp, sp, NSPACE - - ldp x23, x24, [sp], 16 - ldp x21, x22, [sp], 16 - ldp x19, x20, [sp], 16 - + ldp x19, x20, [sp, NSPACE] + ldp x21, x22, [sp, NSPACE+16] + ldp x23, x24, [sp, NSPACE+32] + ldp x25, x26, [sp, NSPACE+48] + add sp, sp, NSPACE+64 ret #if defined(__linux__) && defined(__ELF__) diff --git a/third_party/s2n-bignum/arm/p384/p384_montjdouble_alt.S b/third_party/s2n-bignum/arm/p384/p384_montjdouble_alt.S new file mode 100644 index 0000000000..0e83ff4a98 --- /dev/null +++ b/third_party/s2n-bignum/arm/p384/p384_montjdouble_alt.S @@ -0,0 +1,951 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Point doubling on NIST curve P-384 in Montgomery-Jacobian coordinates +// +// extern void p384_montjdouble_alt +// (uint64_t p3[static 18],uint64_t p1[static 18]); +// +// Does p3 := 2 * p1 where all points are regarded as Jacobian triples with +// each coordinate in the Montgomery domain, i.e. x' = (2^384 * x) mod p_384. +// A Jacobian triple (x',y',z') represents affine point (x/z^2,y/z^3). +// +// Standard ARM ABI: X0 = p3, X1 = p1 +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(p384_montjdouble_alt) + S2N_BN_SYM_PRIVACY_DIRECTIVE(p384_montjdouble_alt) + .text + .balign 4 + +// Size of individual field elements + +#define NUMSIZE 48 + +// Stable homes for input arguments during main code sequence + +#define input_z x23 +#define input_x x24 + +// Pointer-offset pairs for inputs and outputs + +#define x_1 input_x, #0 +#define y_1 input_x, #NUMSIZE +#define z_1 input_x, #(2*NUMSIZE) + +#define x_3 input_z, #0 +#define y_3 input_z, #NUMSIZE +#define z_3 input_z, #(2*NUMSIZE) + +// Pointer-offset pairs for temporaries, with some aliasing +// NSPACE is the total stack needed for these temporaries + +#define z2 sp, #(NUMSIZE*0) +#define y2 sp, #(NUMSIZE*1) +#define x2p sp, #(NUMSIZE*2) +#define xy2 sp, #(NUMSIZE*3) + +#define y4 sp, #(NUMSIZE*4) +#define t2 sp, #(NUMSIZE*4) + +#define dx2 sp, #(NUMSIZE*5) +#define t1 sp, #(NUMSIZE*5) + +#define d sp, #(NUMSIZE*6) +#define x4p sp, #(NUMSIZE*6) + +#define NSPACE (NUMSIZE*7) + +// Corresponds exactly to bignum_montmul_p384_alt + +#define montmul_p384(P0,P1,P2) \ + ldp x3, x4, [P1]; \ + ldp x5, x6, [P2]; \ + mul x12, x3, x5; \ + umulh x13, x3, x5; \ + mul x11, x3, x6; \ + umulh x14, x3, x6; \ + adds x13, x13, x11; \ + ldp x7, x8, [P2+16]; \ + mul x11, x3, x7; \ + umulh x15, x3, x7; \ + adcs x14, x14, x11; \ + mul x11, x3, x8; \ + umulh x16, x3, x8; \ + adcs x15, x15, x11; \ + ldp x9, x10, [P2+32]; \ + mul x11, x3, x9; \ + umulh x17, x3, x9; \ + adcs x16, x16, x11; \ + mul x11, x3, x10; \ + umulh x19, x3, x10; \ + adcs x17, x17, x11; \ + adc x19, x19, xzr; \ + mul x11, x4, x5; \ + adds x13, x13, x11; \ + mul x11, x4, x6; \ + adcs x14, x14, x11; \ + mul x11, x4, x7; \ + adcs x15, x15, x11; \ + mul x11, x4, x8; \ + adcs x16, x16, x11; \ + mul x11, x4, x9; \ + adcs x17, x17, x11; \ + mul x11, x4, x10; \ + adcs x19, x19, x11; \ + cset x20, cs; \ + umulh x11, x4, x5; \ + adds x14, x14, x11; \ + umulh x11, x4, x6; \ + adcs x15, x15, x11; \ + umulh x11, x4, x7; \ + adcs x16, x16, x11; \ + umulh x11, x4, x8; \ + adcs x17, x17, x11; \ + umulh x11, x4, x9; \ + adcs x19, x19, x11; \ + umulh x11, x4, x10; \ + adc x20, x20, x11; \ + ldp x3, x4, [P1+16]; \ + mul x11, x3, x5; \ + adds x14, x14, x11; \ + mul x11, x3, x6; \ + adcs x15, x15, x11; \ + mul x11, x3, x7; \ + adcs x16, x16, x11; \ + mul x11, x3, x8; \ + adcs x17, x17, x11; \ + mul x11, x3, x9; \ + adcs x19, x19, x11; \ + mul x11, x3, x10; \ + adcs x20, x20, x11; \ + cset x21, cs; \ + umulh x11, x3, x5; \ + adds x15, x15, x11; \ + umulh x11, x3, x6; \ + adcs x16, x16, x11; \ + umulh x11, x3, x7; \ + adcs x17, x17, x11; \ + umulh x11, x3, x8; \ + adcs x19, x19, x11; \ + umulh x11, x3, x9; \ + adcs x20, x20, x11; \ + umulh x11, x3, x10; \ + adc x21, x21, x11; \ + mul x11, x4, x5; \ + adds x15, x15, x11; \ + mul x11, x4, x6; \ + adcs x16, x16, x11; \ + mul x11, x4, x7; \ + adcs x17, x17, x11; \ + mul x11, x4, x8; \ + adcs x19, x19, x11; \ + mul x11, x4, x9; \ + adcs x20, x20, x11; \ + mul x11, x4, x10; \ + adcs x21, x21, x11; \ + cset x22, cs; \ + umulh x11, x4, x5; \ + adds x16, x16, x11; \ + umulh x11, x4, x6; \ + adcs x17, x17, x11; \ + umulh x11, x4, x7; \ + adcs x19, x19, x11; \ + umulh x11, x4, x8; \ + adcs x20, x20, x11; \ + umulh x11, x4, x9; \ + adcs x21, x21, x11; \ + umulh x11, x4, x10; \ + adc x22, x22, x11; \ + ldp x3, x4, [P1+32]; \ + mul x11, x3, x5; \ + adds x16, x16, x11; \ + mul x11, x3, x6; \ + adcs x17, x17, x11; \ + mul x11, x3, x7; \ + adcs x19, x19, x11; \ + mul x11, x3, x8; \ + adcs x20, x20, x11; \ + mul x11, x3, x9; \ + adcs x21, x21, x11; \ + mul x11, x3, x10; \ + adcs x22, x22, x11; \ + cset x2, cs; \ + umulh x11, x3, x5; \ + adds x17, x17, x11; \ + umulh x11, x3, x6; \ + adcs x19, x19, x11; \ + umulh x11, x3, x7; \ + adcs x20, x20, x11; \ + umulh x11, x3, x8; \ + adcs x21, x21, x11; \ + umulh x11, x3, x9; \ + adcs x22, x22, x11; \ + umulh x11, x3, x10; \ + adc x2, x2, x11; \ + mul x11, x4, x5; \ + adds x17, x17, x11; \ + mul x11, x4, x6; \ + adcs x19, x19, x11; \ + mul x11, x4, x7; \ + adcs x20, x20, x11; \ + mul x11, x4, x8; \ + adcs x21, x21, x11; \ + mul x11, x4, x9; \ + adcs x22, x22, x11; \ + mul x11, x4, x10; \ + adcs x2, x2, x11; \ + cset x1, cs; \ + umulh x11, x4, x5; \ + adds x19, x19, x11; \ + umulh x11, x4, x6; \ + adcs x20, x20, x11; \ + umulh x11, x4, x7; \ + adcs x21, x21, x11; \ + umulh x11, x4, x8; \ + adcs x22, x22, x11; \ + umulh x11, x4, x9; \ + adcs x2, x2, x11; \ + umulh x11, x4, x10; \ + adc x1, x1, x11; \ + lsl x7, x12, #32; \ + add x12, x7, x12; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x12; \ + mov x6, #0xffffffff; \ + mul x5, x6, x12; \ + umulh x6, x6, x12; \ + adds x7, x7, x5; \ + adcs x6, x6, x12; \ + adc x5, xzr, xzr; \ + subs x13, x13, x7; \ + sbcs x14, x14, x6; \ + sbcs x15, x15, x5; \ + sbcs x16, x16, xzr; \ + sbcs x17, x17, xzr; \ + sbc x12, x12, xzr; \ + lsl x7, x13, #32; \ + add x13, x7, x13; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x13; \ + mov x6, #0xffffffff; \ + mul x5, x6, x13; \ + umulh x6, x6, x13; \ + adds x7, x7, x5; \ + adcs x6, x6, x13; \ + adc x5, xzr, xzr; \ + subs x14, x14, x7; \ + sbcs x15, x15, x6; \ + sbcs x16, x16, x5; \ + sbcs x17, x17, xzr; \ + sbcs x12, x12, xzr; \ + sbc x13, x13, xzr; \ + lsl x7, x14, #32; \ + add x14, x7, x14; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x14; \ + mov x6, #0xffffffff; \ + mul x5, x6, x14; \ + umulh x6, x6, x14; \ + adds x7, x7, x5; \ + adcs x6, x6, x14; \ + adc x5, xzr, xzr; \ + subs x15, x15, x7; \ + sbcs x16, x16, x6; \ + sbcs x17, x17, x5; \ + sbcs x12, x12, xzr; \ + sbcs x13, x13, xzr; \ + sbc x14, x14, xzr; \ + lsl x7, x15, #32; \ + add x15, x7, x15; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x15; \ + mov x6, #0xffffffff; \ + mul x5, x6, x15; \ + umulh x6, x6, x15; \ + adds x7, x7, x5; \ + adcs x6, x6, x15; \ + adc x5, xzr, xzr; \ + subs x16, x16, x7; \ + sbcs x17, x17, x6; \ + sbcs x12, x12, x5; \ + sbcs x13, x13, xzr; \ + sbcs x14, x14, xzr; \ + sbc x15, x15, xzr; \ + lsl x7, x16, #32; \ + add x16, x7, x16; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x16; \ + mov x6, #0xffffffff; \ + mul x5, x6, x16; \ + umulh x6, x6, x16; \ + adds x7, x7, x5; \ + adcs x6, x6, x16; \ + adc x5, xzr, xzr; \ + subs x17, x17, x7; \ + sbcs x12, x12, x6; \ + sbcs x13, x13, x5; \ + sbcs x14, x14, xzr; \ + sbcs x15, x15, xzr; \ + sbc x16, x16, xzr; \ + lsl x7, x17, #32; \ + add x17, x7, x17; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x17; \ + mov x6, #0xffffffff; \ + mul x5, x6, x17; \ + umulh x6, x6, x17; \ + adds x7, x7, x5; \ + adcs x6, x6, x17; \ + adc x5, xzr, xzr; \ + subs x12, x12, x7; \ + sbcs x13, x13, x6; \ + sbcs x14, x14, x5; \ + sbcs x15, x15, xzr; \ + sbcs x16, x16, xzr; \ + sbc x17, x17, xzr; \ + adds x12, x12, x19; \ + adcs x13, x13, x20; \ + adcs x14, x14, x21; \ + adcs x15, x15, x22; \ + adcs x16, x16, x2; \ + adcs x17, x17, x1; \ + adc x10, xzr, xzr; \ + mov x11, #0xffffffff00000001; \ + adds x19, x12, x11; \ + mov x11, #0xffffffff; \ + adcs x20, x13, x11; \ + mov x11, #0x1; \ + adcs x21, x14, x11; \ + adcs x22, x15, xzr; \ + adcs x2, x16, xzr; \ + adcs x1, x17, xzr; \ + adcs x10, x10, xzr; \ + csel x12, x12, x19, eq; \ + csel x13, x13, x20, eq; \ + csel x14, x14, x21, eq; \ + csel x15, x15, x22, eq; \ + csel x16, x16, x2, eq; \ + csel x17, x17, x1, eq; \ + stp x12, x13, [P0]; \ + stp x14, x15, [P0+16]; \ + stp x16, x17, [P0+32] + +// Corresponds exactly to bignum_montsqr_p384_alt + +#define montsqr_p384(P0,P1) \ + ldp x2, x3, [P1]; \ + mul x9, x2, x3; \ + umulh x10, x2, x3; \ + ldp x4, x5, [P1+16]; \ + mul x8, x2, x4; \ + adds x10, x10, x8; \ + mul x11, x2, x5; \ + mul x8, x3, x4; \ + adcs x11, x11, x8; \ + umulh x12, x2, x5; \ + mul x8, x3, x5; \ + adcs x12, x12, x8; \ + ldp x6, x7, [P1+32]; \ + mul x13, x2, x7; \ + mul x8, x3, x6; \ + adcs x13, x13, x8; \ + umulh x14, x2, x7; \ + mul x8, x3, x7; \ + adcs x14, x14, x8; \ + mul x15, x5, x6; \ + adcs x15, x15, xzr; \ + umulh x16, x5, x6; \ + adc x16, x16, xzr; \ + umulh x8, x2, x4; \ + adds x11, x11, x8; \ + umulh x8, x3, x4; \ + adcs x12, x12, x8; \ + umulh x8, x3, x5; \ + adcs x13, x13, x8; \ + umulh x8, x3, x6; \ + adcs x14, x14, x8; \ + umulh x8, x3, x7; \ + adcs x15, x15, x8; \ + adc x16, x16, xzr; \ + mul x8, x2, x6; \ + adds x12, x12, x8; \ + mul x8, x4, x5; \ + adcs x13, x13, x8; \ + mul x8, x4, x6; \ + adcs x14, x14, x8; \ + mul x8, x4, x7; \ + adcs x15, x15, x8; \ + mul x8, x5, x7; \ + adcs x16, x16, x8; \ + mul x17, x6, x7; \ + adcs x17, x17, xzr; \ + umulh x19, x6, x7; \ + adc x19, x19, xzr; \ + umulh x8, x2, x6; \ + adds x13, x13, x8; \ + umulh x8, x4, x5; \ + adcs x14, x14, x8; \ + umulh x8, x4, x6; \ + adcs x15, x15, x8; \ + umulh x8, x4, x7; \ + adcs x16, x16, x8; \ + umulh x8, x5, x7; \ + adcs x17, x17, x8; \ + adc x19, x19, xzr; \ + adds x9, x9, x9; \ + adcs x10, x10, x10; \ + adcs x11, x11, x11; \ + adcs x12, x12, x12; \ + adcs x13, x13, x13; \ + adcs x14, x14, x14; \ + adcs x15, x15, x15; \ + adcs x16, x16, x16; \ + adcs x17, x17, x17; \ + adcs x19, x19, x19; \ + cset x20, hs; \ + umulh x8, x2, x2; \ + mul x2, x2, x2; \ + adds x9, x9, x8; \ + mul x8, x3, x3; \ + adcs x10, x10, x8; \ + umulh x8, x3, x3; \ + adcs x11, x11, x8; \ + mul x8, x4, x4; \ + adcs x12, x12, x8; \ + umulh x8, x4, x4; \ + adcs x13, x13, x8; \ + mul x8, x5, x5; \ + adcs x14, x14, x8; \ + umulh x8, x5, x5; \ + adcs x15, x15, x8; \ + mul x8, x6, x6; \ + adcs x16, x16, x8; \ + umulh x8, x6, x6; \ + adcs x17, x17, x8; \ + mul x8, x7, x7; \ + adcs x19, x19, x8; \ + umulh x8, x7, x7; \ + adc x20, x20, x8; \ + lsl x5, x2, #32; \ + add x2, x5, x2; \ + mov x5, #-4294967295; \ + umulh x5, x5, x2; \ + mov x4, #4294967295; \ + mul x3, x4, x2; \ + umulh x4, x4, x2; \ + adds x5, x5, x3; \ + adcs x4, x4, x2; \ + adc x3, xzr, xzr; \ + subs x9, x9, x5; \ + sbcs x10, x10, x4; \ + sbcs x11, x11, x3; \ + sbcs x12, x12, xzr; \ + sbcs x13, x13, xzr; \ + sbc x2, x2, xzr; \ + lsl x5, x9, #32; \ + add x9, x5, x9; \ + mov x5, #-4294967295; \ + umulh x5, x5, x9; \ + mov x4, #4294967295; \ + mul x3, x4, x9; \ + umulh x4, x4, x9; \ + adds x5, x5, x3; \ + adcs x4, x4, x9; \ + adc x3, xzr, xzr; \ + subs x10, x10, x5; \ + sbcs x11, x11, x4; \ + sbcs x12, x12, x3; \ + sbcs x13, x13, xzr; \ + sbcs x2, x2, xzr; \ + sbc x9, x9, xzr; \ + lsl x5, x10, #32; \ + add x10, x5, x10; \ + mov x5, #-4294967295; \ + umulh x5, x5, x10; \ + mov x4, #4294967295; \ + mul x3, x4, x10; \ + umulh x4, x4, x10; \ + adds x5, x5, x3; \ + adcs x4, x4, x10; \ + adc x3, xzr, xzr; \ + subs x11, x11, x5; \ + sbcs x12, x12, x4; \ + sbcs x13, x13, x3; \ + sbcs x2, x2, xzr; \ + sbcs x9, x9, xzr; \ + sbc x10, x10, xzr; \ + lsl x5, x11, #32; \ + add x11, x5, x11; \ + mov x5, #-4294967295; \ + umulh x5, x5, x11; \ + mov x4, #4294967295; \ + mul x3, x4, x11; \ + umulh x4, x4, x11; \ + adds x5, x5, x3; \ + adcs x4, x4, x11; \ + adc x3, xzr, xzr; \ + subs x12, x12, x5; \ + sbcs x13, x13, x4; \ + sbcs x2, x2, x3; \ + sbcs x9, x9, xzr; \ + sbcs x10, x10, xzr; \ + sbc x11, x11, xzr; \ + lsl x5, x12, #32; \ + add x12, x5, x12; \ + mov x5, #-4294967295; \ + umulh x5, x5, x12; \ + mov x4, #4294967295; \ + mul x3, x4, x12; \ + umulh x4, x4, x12; \ + adds x5, x5, x3; \ + adcs x4, x4, x12; \ + adc x3, xzr, xzr; \ + subs x13, x13, x5; \ + sbcs x2, x2, x4; \ + sbcs x9, x9, x3; \ + sbcs x10, x10, xzr; \ + sbcs x11, x11, xzr; \ + sbc x12, x12, xzr; \ + lsl x5, x13, #32; \ + add x13, x5, x13; \ + mov x5, #-4294967295; \ + umulh x5, x5, x13; \ + mov x4, #4294967295; \ + mul x3, x4, x13; \ + umulh x4, x4, x13; \ + adds x5, x5, x3; \ + adcs x4, x4, x13; \ + adc x3, xzr, xzr; \ + subs x2, x2, x5; \ + sbcs x9, x9, x4; \ + sbcs x10, x10, x3; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbc x13, x13, xzr; \ + adds x2, x2, x14; \ + adcs x9, x9, x15; \ + adcs x10, x10, x16; \ + adcs x11, x11, x17; \ + adcs x12, x12, x19; \ + adcs x13, x13, x20; \ + adc x6, xzr, xzr; \ + mov x8, #-4294967295; \ + adds x14, x2, x8; \ + mov x8, #4294967295; \ + adcs x15, x9, x8; \ + mov x8, #1; \ + adcs x16, x10, x8; \ + adcs x17, x11, xzr; \ + adcs x19, x12, xzr; \ + adcs x20, x13, xzr; \ + adcs x6, x6, xzr; \ + csel x2, x2, x14, eq; \ + csel x9, x9, x15, eq; \ + csel x10, x10, x16, eq; \ + csel x11, x11, x17, eq; \ + csel x12, x12, x19, eq; \ + csel x13, x13, x20, eq; \ + stp x2, x9, [P0]; \ + stp x10, x11, [P0+16]; \ + stp x12, x13, [P0+32] + +// Corresponds exactly to bignum_sub_p384 + +#define sub_p384(P0,P1,P2) \ + ldp x5, x6, [P1]; \ + ldp x4, x3, [P2]; \ + subs x5, x5, x4; \ + sbcs x6, x6, x3; \ + ldp x7, x8, [P1+16]; \ + ldp x4, x3, [P2+16]; \ + sbcs x7, x7, x4; \ + sbcs x8, x8, x3; \ + ldp x9, x10, [P1+32]; \ + ldp x4, x3, [P2+32]; \ + sbcs x9, x9, x4; \ + sbcs x10, x10, x3; \ + csetm x3, lo; \ + mov x4, #4294967295; \ + and x4, x4, x3; \ + adds x5, x5, x4; \ + eor x4, x4, x3; \ + adcs x6, x6, x4; \ + mov x4, #-2; \ + and x4, x4, x3; \ + adcs x7, x7, x4; \ + adcs x8, x8, x3; \ + adcs x9, x9, x3; \ + adc x10, x10, x3; \ + stp x5, x6, [P0]; \ + stp x7, x8, [P0+16]; \ + stp x9, x10, [P0+32] + +// Corresponds exactly to bignum_add_p384 + +#define add_p384(P0,P1,P2) \ + ldp x5, x6, [P1]; \ + ldp x4, x3, [P2]; \ + adds x5, x5, x4; \ + adcs x6, x6, x3; \ + ldp x7, x8, [P1+16]; \ + ldp x4, x3, [P2+16]; \ + adcs x7, x7, x4; \ + adcs x8, x8, x3; \ + ldp x9, x10, [P1+32]; \ + ldp x4, x3, [P2+32]; \ + adcs x9, x9, x4; \ + adcs x10, x10, x3; \ + adc x3, xzr, xzr; \ + mov x4, #0xffffffff; \ + cmp x5, x4; \ + mov x4, #0xffffffff00000000; \ + sbcs xzr, x6, x4; \ + mov x4, #0xfffffffffffffffe; \ + sbcs xzr, x7, x4; \ + adcs xzr, x8, xzr; \ + adcs xzr, x9, xzr; \ + adcs xzr, x10, xzr; \ + adcs x3, x3, xzr; \ + csetm x3, ne; \ + mov x4, #0xffffffff; \ + and x4, x4, x3; \ + subs x5, x5, x4; \ + eor x4, x4, x3; \ + sbcs x6, x6, x4; \ + mov x4, #0xfffffffffffffffe; \ + and x4, x4, x3; \ + sbcs x7, x7, x4; \ + sbcs x8, x8, x3; \ + sbcs x9, x9, x3; \ + sbc x10, x10, x3; \ + stp x5, x6, [P0]; \ + stp x7, x8, [P0+16]; \ + stp x9, x10, [P0+32] + +// P0 = 4 * P1 - P2 + +#define cmsub41_p384(P0,P1,P2) \ + ldp x1, x2, [P1]; \ + ldp x3, x4, [P1+16]; \ + ldp x5, x6, [P1+32]; \ + lsl x0, x1, #2; \ + ldp x7, x8, [P2]; \ + subs x0, x0, x7; \ + extr x1, x2, x1, #62; \ + sbcs x1, x1, x8; \ + ldp x7, x8, [P2+16]; \ + extr x2, x3, x2, #62; \ + sbcs x2, x2, x7; \ + extr x3, x4, x3, #62; \ + sbcs x3, x3, x8; \ + extr x4, x5, x4, #62; \ + ldp x7, x8, [P2+32]; \ + sbcs x4, x4, x7; \ + extr x5, x6, x5, #62; \ + sbcs x5, x5, x8; \ + lsr x6, x6, #62; \ + adc x6, x6, xzr; \ + lsl x7, x6, #32; \ + subs x8, x6, x7; \ + sbc x7, x7, xzr; \ + adds x0, x0, x8; \ + adcs x1, x1, x7; \ + adcs x2, x2, x6; \ + adcs x3, x3, xzr; \ + adcs x4, x4, xzr; \ + adcs x5, x5, xzr; \ + csetm x8, cc; \ + mov x9, #0xffffffff; \ + and x9, x9, x8; \ + adds x0, x0, x9; \ + eor x9, x9, x8; \ + adcs x1, x1, x9; \ + mov x9, #0xfffffffffffffffe; \ + and x9, x9, x8; \ + adcs x2, x2, x9; \ + adcs x3, x3, x8; \ + adcs x4, x4, x8; \ + adc x5, x5, x8; \ + stp x0, x1, [P0]; \ + stp x2, x3, [P0+16]; \ + stp x4, x5, [P0+32] + +// P0 = C * P1 - D * P2 + +#define cmsub_p384(P0,C,P1,D,P2) \ + ldp x0, x1, [P2]; \ + mov x6, #0x00000000ffffffff; \ + subs x6, x6, x0; \ + mov x7, #0xffffffff00000000; \ + sbcs x7, x7, x1; \ + ldp x0, x1, [P2+16]; \ + mov x8, #0xfffffffffffffffe; \ + sbcs x8, x8, x0; \ + mov x13, #0xffffffffffffffff; \ + sbcs x9, x13, x1; \ + ldp x0, x1, [P2+32]; \ + sbcs x10, x13, x0; \ + sbc x11, x13, x1; \ + mov x12, D; \ + mul x0, x12, x6; \ + mul x1, x12, x7; \ + mul x2, x12, x8; \ + mul x3, x12, x9; \ + mul x4, x12, x10; \ + mul x5, x12, x11; \ + umulh x6, x12, x6; \ + umulh x7, x12, x7; \ + umulh x8, x12, x8; \ + umulh x9, x12, x9; \ + umulh x10, x12, x10; \ + umulh x12, x12, x11; \ + adds x1, x1, x6; \ + adcs x2, x2, x7; \ + adcs x3, x3, x8; \ + adcs x4, x4, x9; \ + adcs x5, x5, x10; \ + mov x6, #1; \ + adc x6, x12, x6; \ + ldp x8, x9, [P1]; \ + ldp x10, x11, [P1+16]; \ + ldp x12, x13, [P1+32]; \ + mov x14, C; \ + mul x15, x14, x8; \ + umulh x8, x14, x8; \ + adds x0, x0, x15; \ + mul x15, x14, x9; \ + umulh x9, x14, x9; \ + adcs x1, x1, x15; \ + mul x15, x14, x10; \ + umulh x10, x14, x10; \ + adcs x2, x2, x15; \ + mul x15, x14, x11; \ + umulh x11, x14, x11; \ + adcs x3, x3, x15; \ + mul x15, x14, x12; \ + umulh x12, x14, x12; \ + adcs x4, x4, x15; \ + mul x15, x14, x13; \ + umulh x13, x14, x13; \ + adcs x5, x5, x15; \ + adc x6, x6, xzr; \ + adds x1, x1, x8; \ + adcs x2, x2, x9; \ + adcs x3, x3, x10; \ + adcs x4, x4, x11; \ + adcs x5, x5, x12; \ + adcs x6, x6, x13; \ + lsl x7, x6, #32; \ + subs x8, x6, x7; \ + sbc x7, x7, xzr; \ + adds x0, x0, x8; \ + adcs x1, x1, x7; \ + adcs x2, x2, x6; \ + adcs x3, x3, xzr; \ + adcs x4, x4, xzr; \ + adcs x5, x5, xzr; \ + csetm x6, cc; \ + mov x7, #0xffffffff; \ + and x7, x7, x6; \ + adds x0, x0, x7; \ + eor x7, x7, x6; \ + adcs x1, x1, x7; \ + mov x7, #0xfffffffffffffffe; \ + and x7, x7, x6; \ + adcs x2, x2, x7; \ + adcs x3, x3, x6; \ + adcs x4, x4, x6; \ + adc x5, x5, x6; \ + stp x0, x1, [P0]; \ + stp x2, x3, [P0+16]; \ + stp x4, x5, [P0+32] + +// A weak version of add that only guarantees sum in 6 digits + +#define weakadd_p384(P0,P1,P2) \ + ldp x5, x6, [P1]; \ + ldp x4, x3, [P2]; \ + adds x5, x5, x4; \ + adcs x6, x6, x3; \ + ldp x7, x8, [P1+16]; \ + ldp x4, x3, [P2+16]; \ + adcs x7, x7, x4; \ + adcs x8, x8, x3; \ + ldp x9, x10, [P1+32]; \ + ldp x4, x3, [P2+32]; \ + adcs x9, x9, x4; \ + adcs x10, x10, x3; \ + csetm x3, cs; \ + mov x4, #0xffffffff; \ + and x4, x4, x3; \ + subs x5, x5, x4; \ + eor x4, x4, x3; \ + sbcs x6, x6, x4; \ + mov x4, #0xfffffffffffffffe; \ + and x4, x4, x3; \ + sbcs x7, x7, x4; \ + sbcs x8, x8, x3; \ + sbcs x9, x9, x3; \ + sbc x10, x10, x3; \ + stp x5, x6, [P0]; \ + stp x7, x8, [P0+16]; \ + stp x9, x10, [P0+32] + +// P0 = 3 * P1 - 8 * P2 + +#define cmsub38_p384(P0,P1,P2) \ + ldp x0, x1, [P2]; \ + mov x6, #0x00000000ffffffff; \ + subs x6, x6, x0; \ + mov x7, #0xffffffff00000000; \ + sbcs x7, x7, x1; \ + ldp x0, x1, [P2+16]; \ + mov x8, #0xfffffffffffffffe; \ + sbcs x8, x8, x0; \ + mov x13, #0xffffffffffffffff; \ + sbcs x9, x13, x1; \ + ldp x0, x1, [P2+32]; \ + sbcs x10, x13, x0; \ + sbc x11, x13, x1; \ + lsl x0, x6, #3; \ + extr x1, x7, x6, #61; \ + extr x2, x8, x7, #61; \ + extr x3, x9, x8, #61; \ + extr x4, x10, x9, #61; \ + extr x5, x11, x10, #61; \ + lsr x6, x11, #61; \ + add x6, x6, #1; \ + ldp x8, x9, [P1]; \ + ldp x10, x11, [P1+16]; \ + ldp x12, x13, [P1+32]; \ + mov x14, 3; \ + mul x15, x14, x8; \ + umulh x8, x14, x8; \ + adds x0, x0, x15; \ + mul x15, x14, x9; \ + umulh x9, x14, x9; \ + adcs x1, x1, x15; \ + mul x15, x14, x10; \ + umulh x10, x14, x10; \ + adcs x2, x2, x15; \ + mul x15, x14, x11; \ + umulh x11, x14, x11; \ + adcs x3, x3, x15; \ + mul x15, x14, x12; \ + umulh x12, x14, x12; \ + adcs x4, x4, x15; \ + mul x15, x14, x13; \ + umulh x13, x14, x13; \ + adcs x5, x5, x15; \ + adc x6, x6, xzr; \ + adds x1, x1, x8; \ + adcs x2, x2, x9; \ + adcs x3, x3, x10; \ + adcs x4, x4, x11; \ + adcs x5, x5, x12; \ + adcs x6, x6, x13; \ + lsl x7, x6, #32; \ + subs x8, x6, x7; \ + sbc x7, x7, xzr; \ + adds x0, x0, x8; \ + adcs x1, x1, x7; \ + adcs x2, x2, x6; \ + adcs x3, x3, xzr; \ + adcs x4, x4, xzr; \ + adcs x5, x5, xzr; \ + csetm x6, cc; \ + mov x7, #0xffffffff; \ + and x7, x7, x6; \ + adds x0, x0, x7; \ + eor x7, x7, x6; \ + adcs x1, x1, x7; \ + mov x7, #0xfffffffffffffffe; \ + and x7, x7, x6; \ + adcs x2, x2, x7; \ + adcs x3, x3, x6; \ + adcs x4, x4, x6; \ + adc x5, x5, x6; \ + stp x0, x1, [P0]; \ + stp x2, x3, [P0+16]; \ + stp x4, x5, [P0+32] + +S2N_BN_SYMBOL(p384_montjdouble_alt): + +// Save regs and make room on stack for temporary variables + + stp x19, x20, [sp, #-16]! + stp x21, x22, [sp, #-16]! + stp x23, x24, [sp, #-16]! + sub sp, sp, NSPACE + +// Move the input arguments to stable places + + mov input_z, x0 + mov input_x, x1 + +// Main code, just a sequence of basic field operations + +// z2 = z^2 +// y2 = y^2 + + montsqr_p384(z2,z_1) + montsqr_p384(y2,y_1) + +// x2p = x^2 - z^4 = (x + z^2) * (x - z^2) + + weakadd_p384(t1,x_1,z2) + sub_p384(t2,x_1,z2) + montmul_p384(x2p,t1,t2) + +// t1 = y + z +// x4p = x2p^2 +// xy2 = x * y^2 + + add_p384(t1,y_1,z_1) + montsqr_p384(x4p,x2p) + montmul_p384(xy2,x_1,y2) + +// t2 = (y + z)^2 + + montsqr_p384(t2,t1) + +// d = 12 * xy2 - 9 * x4p +// t1 = y^2 + 2 * y * z + + cmsub_p384(d,12,xy2,9,x4p) + sub_p384(t1,t2,z2) + +// y4 = y^4 + + montsqr_p384(y4,y2) + +// z_3' = 2 * y * z +// dx2 = d * x2p + + sub_p384(z_3,t1,y2) + montmul_p384(dx2,d,x2p) + +// x' = 4 * xy2 - d + + cmsub41_p384(x_3,xy2,d) + +// y' = 3 * dx2 - 8 * y4 + + cmsub38_p384(y_3,dx2,y4) + +// Restore stack and registers + + add sp, sp, NSPACE + + ldp x23, x24, [sp], 16 + ldp x21, x22, [sp], 16 + ldp x19, x20, [sp], 16 + + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack, "", %progbits +#endif diff --git a/third_party/s2n-bignum/arm/p384/p384_montjmixadd.S b/third_party/s2n-bignum/arm/p384/p384_montjmixadd.S index 1b0165ab8c..f340e4f5ce 100644 --- a/third_party/s2n-bignum/arm/p384/p384_montjmixadd.S +++ b/third_party/s2n-bignum/arm/p384/p384_montjmixadd.S @@ -50,6 +50,7 @@ #define zp2 sp, #(NUMSIZE*0) #define ww sp, #(NUMSIZE*0) +#define resx sp, #(NUMSIZE*0) #define yd sp, #(NUMSIZE*1) #define y2a sp, #(NUMSIZE*1) @@ -62,720 +63,657 @@ #define t2 sp, #(NUMSIZE*4) #define zzx1 sp, #(NUMSIZE*4) +#define resy sp, #(NUMSIZE*4) #define xd sp, #(NUMSIZE*5) +#define resz sp, #(NUMSIZE*5) #define NSPACE (NUMSIZE*6) -// Corresponds exactly to bignum_montmul_p384_alt +// Corresponds to bignum_montmul_p384 except x24 -> x0 #define montmul_p384(P0,P1,P2) \ ldp x3, x4, [P1]; \ - ldp x5, x6, [P2]; \ - mul x12, x3, x5; \ - umulh x13, x3, x5; \ - mul x11, x3, x6; \ - umulh x14, x3, x6; \ - adds x13, x13, x11; \ - ldp x7, x8, [P2+16]; \ - mul x11, x3, x7; \ - umulh x15, x3, x7; \ - adcs x14, x14, x11; \ - mul x11, x3, x8; \ - umulh x16, x3, x8; \ - adcs x15, x15, x11; \ - ldp x9, x10, [P2+32]; \ - mul x11, x3, x9; \ - umulh x17, x3, x9; \ - adcs x16, x16, x11; \ - mul x11, x3, x10; \ - umulh x19, x3, x10; \ - adcs x17, x17, x11; \ - adc x19, x19, xzr; \ - mul x11, x4, x5; \ - adds x13, x13, x11; \ - mul x11, x4, x6; \ - adcs x14, x14, x11; \ - mul x11, x4, x7; \ - adcs x15, x15, x11; \ - mul x11, x4, x8; \ - adcs x16, x16, x11; \ - mul x11, x4, x9; \ - adcs x17, x17, x11; \ - mul x11, x4, x10; \ - adcs x19, x19, x11; \ - cset x20, cs; \ - umulh x11, x4, x5; \ - adds x14, x14, x11; \ - umulh x11, x4, x6; \ - adcs x15, x15, x11; \ - umulh x11, x4, x7; \ - adcs x16, x16, x11; \ - umulh x11, x4, x8; \ - adcs x17, x17, x11; \ - umulh x11, x4, x9; \ - adcs x19, x19, x11; \ - umulh x11, x4, x10; \ - adc x20, x20, x11; \ - ldp x3, x4, [P1+16]; \ - mul x11, x3, x5; \ - adds x14, x14, x11; \ - mul x11, x3, x6; \ - adcs x15, x15, x11; \ - mul x11, x3, x7; \ - adcs x16, x16, x11; \ - mul x11, x3, x8; \ - adcs x17, x17, x11; \ - mul x11, x3, x9; \ - adcs x19, x19, x11; \ - mul x11, x3, x10; \ - adcs x20, x20, x11; \ - cset x21, cs; \ - umulh x11, x3, x5; \ - adds x15, x15, x11; \ - umulh x11, x3, x6; \ - adcs x16, x16, x11; \ - umulh x11, x3, x7; \ - adcs x17, x17, x11; \ - umulh x11, x3, x8; \ - adcs x19, x19, x11; \ - umulh x11, x3, x9; \ - adcs x20, x20, x11; \ - umulh x11, x3, x10; \ - adc x21, x21, x11; \ - mul x11, x4, x5; \ - adds x15, x15, x11; \ - mul x11, x4, x6; \ - adcs x16, x16, x11; \ - mul x11, x4, x7; \ - adcs x17, x17, x11; \ - mul x11, x4, x8; \ - adcs x19, x19, x11; \ - mul x11, x4, x9; \ - adcs x20, x20, x11; \ - mul x11, x4, x10; \ - adcs x21, x21, x11; \ - cset x22, cs; \ - umulh x11, x4, x5; \ - adds x16, x16, x11; \ - umulh x11, x4, x6; \ - adcs x17, x17, x11; \ - umulh x11, x4, x7; \ - adcs x19, x19, x11; \ - umulh x11, x4, x8; \ - adcs x20, x20, x11; \ - umulh x11, x4, x9; \ - adcs x21, x21, x11; \ - umulh x11, x4, x10; \ - adc x22, x22, x11; \ - ldp x3, x4, [P1+32]; \ - mul x11, x3, x5; \ - adds x16, x16, x11; \ - mul x11, x3, x6; \ - adcs x17, x17, x11; \ - mul x11, x3, x7; \ - adcs x19, x19, x11; \ - mul x11, x3, x8; \ - adcs x20, x20, x11; \ - mul x11, x3, x9; \ - adcs x21, x21, x11; \ - mul x11, x3, x10; \ - adcs x22, x22, x11; \ - cset x2, cs; \ - umulh x11, x3, x5; \ - adds x17, x17, x11; \ - umulh x11, x3, x6; \ - adcs x19, x19, x11; \ - umulh x11, x3, x7; \ - adcs x20, x20, x11; \ - umulh x11, x3, x8; \ - adcs x21, x21, x11; \ - umulh x11, x3, x9; \ - adcs x22, x22, x11; \ - umulh x11, x3, x10; \ - adc x2, x2, x11; \ - mul x11, x4, x5; \ - adds x17, x17, x11; \ - mul x11, x4, x6; \ - adcs x19, x19, x11; \ - mul x11, x4, x7; \ - adcs x20, x20, x11; \ - mul x11, x4, x8; \ - adcs x21, x21, x11; \ - mul x11, x4, x9; \ - adcs x22, x22, x11; \ - mul x11, x4, x10; \ - adcs x2, x2, x11; \ - cset x1, cs; \ - umulh x11, x4, x5; \ - adds x19, x19, x11; \ - umulh x11, x4, x6; \ - adcs x20, x20, x11; \ - umulh x11, x4, x7; \ - adcs x21, x21, x11; \ - umulh x11, x4, x8; \ - adcs x22, x22, x11; \ - umulh x11, x4, x9; \ - adcs x2, x2, x11; \ - umulh x11, x4, x10; \ - adc x1, x1, x11; \ - lsl x7, x12, #32; \ - add x12, x7, x12; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x12; \ - mov x6, #0xffffffff; \ - mul x5, x6, x12; \ - umulh x6, x6, x12; \ - adds x7, x7, x5; \ - adcs x6, x6, x12; \ - adc x5, xzr, xzr; \ - subs x13, x13, x7; \ - sbcs x14, x14, x6; \ - sbcs x15, x15, x5; \ + ldp x5, x6, [P1+16]; \ + ldp x7, x8, [P1+32]; \ + ldp x9, x10, [P2]; \ + ldp x11, x12, [P2+16]; \ + ldp x13, x14, [P2+32]; \ + mul x15, x3, x9; \ + mul x21, x4, x10; \ + mul x22, x5, x11; \ + umulh x23, x3, x9; \ + umulh x0, x4, x10; \ + umulh x1, x5, x11; \ + adds x23, x23, x21; \ + adcs x0, x0, x22; \ + adc x1, x1, xzr; \ + adds x16, x23, x15; \ + adcs x17, x0, x23; \ + adcs x19, x1, x0; \ + adc x20, x1, xzr; \ + adds x17, x17, x15; \ + adcs x19, x19, x23; \ + adcs x20, x20, x0; \ + adc x1, x1, xzr; \ + subs x0, x3, x4; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x10, x9; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x16, x16, x21; \ + adcs x17, x17, x22; \ + adcs x19, x19, x23; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x0, x3, x5; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x11, x9; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x17, x17, x21; \ + adcs x19, x19, x22; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x0, x4, x5; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x11, x10; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x19, x19, x21; \ + adcs x20, x20, x22; \ + adc x1, x1, x23; \ + lsl x23, x15, #32; \ + add x15, x23, x15; \ + lsr x23, x15, #32; \ + subs x23, x23, x15; \ + sbc x22, x15, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x15; \ + adc x21, xzr, xzr; \ + subs x16, x16, x23; \ + sbcs x17, x17, x22; \ + sbcs x19, x19, x21; \ + sbcs x20, x20, xzr; \ + sbcs x1, x1, xzr; \ + sbc x15, x15, xzr; \ + lsl x23, x16, #32; \ + add x16, x23, x16; \ + lsr x23, x16, #32; \ + subs x23, x23, x16; \ + sbc x22, x16, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x16; \ + adc x21, xzr, xzr; \ + subs x17, x17, x23; \ + sbcs x19, x19, x22; \ + sbcs x20, x20, x21; \ + sbcs x1, x1, xzr; \ + sbcs x15, x15, xzr; \ + sbc x16, x16, xzr; \ + lsl x23, x17, #32; \ + add x17, x23, x17; \ + lsr x23, x17, #32; \ + subs x23, x23, x17; \ + sbc x22, x17, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x17; \ + adc x21, xzr, xzr; \ + subs x19, x19, x23; \ + sbcs x20, x20, x22; \ + sbcs x1, x1, x21; \ + sbcs x15, x15, xzr; \ sbcs x16, x16, xzr; \ - sbcs x17, x17, xzr; \ - sbc x12, x12, xzr; \ - lsl x7, x13, #32; \ - add x13, x7, x13; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x13; \ - mov x6, #0xffffffff; \ - mul x5, x6, x13; \ - umulh x6, x6, x13; \ - adds x7, x7, x5; \ - adcs x6, x6, x13; \ - adc x5, xzr, xzr; \ - subs x14, x14, x7; \ - sbcs x15, x15, x6; \ - sbcs x16, x16, x5; \ - sbcs x17, x17, xzr; \ - sbcs x12, x12, xzr; \ - sbc x13, x13, xzr; \ - lsl x7, x14, #32; \ - add x14, x7, x14; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x14; \ - mov x6, #0xffffffff; \ - mul x5, x6, x14; \ - umulh x6, x6, x14; \ - adds x7, x7, x5; \ - adcs x6, x6, x14; \ - adc x5, xzr, xzr; \ - subs x15, x15, x7; \ - sbcs x16, x16, x6; \ - sbcs x17, x17, x5; \ - sbcs x12, x12, xzr; \ - sbcs x13, x13, xzr; \ - sbc x14, x14, xzr; \ - lsl x7, x15, #32; \ - add x15, x7, x15; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x15; \ - mov x6, #0xffffffff; \ - mul x5, x6, x15; \ - umulh x6, x6, x15; \ - adds x7, x7, x5; \ - adcs x6, x6, x15; \ - adc x5, xzr, xzr; \ - subs x16, x16, x7; \ - sbcs x17, x17, x6; \ - sbcs x12, x12, x5; \ - sbcs x13, x13, xzr; \ - sbcs x14, x14, xzr; \ + sbc x17, x17, xzr; \ + stp x19, x20, [P0]; \ + stp x1, x15, [P0+16]; \ + stp x16, x17, [P0+32]; \ + mul x15, x6, x12; \ + mul x21, x7, x13; \ + mul x22, x8, x14; \ + umulh x23, x6, x12; \ + umulh x0, x7, x13; \ + umulh x1, x8, x14; \ + adds x23, x23, x21; \ + adcs x0, x0, x22; \ + adc x1, x1, xzr; \ + adds x16, x23, x15; \ + adcs x17, x0, x23; \ + adcs x19, x1, x0; \ + adc x20, x1, xzr; \ + adds x17, x17, x15; \ + adcs x19, x19, x23; \ + adcs x20, x20, x0; \ + adc x1, x1, xzr; \ + subs x0, x6, x7; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x13, x12; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x16, x16, x21; \ + adcs x17, x17, x22; \ + adcs x19, x19, x23; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x0, x6, x8; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x14, x12; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x17, x17, x21; \ + adcs x19, x19, x22; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x0, x7, x8; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x14, x13; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x19, x19, x21; \ + adcs x20, x20, x22; \ + adc x1, x1, x23; \ + subs x6, x6, x3; \ + sbcs x7, x7, x4; \ + sbcs x8, x8, x5; \ + ngc x3, xzr; \ + cmn x3, #1; \ + eor x6, x6, x3; \ + adcs x6, x6, xzr; \ + eor x7, x7, x3; \ + adcs x7, x7, xzr; \ + eor x8, x8, x3; \ + adc x8, x8, xzr; \ + subs x9, x9, x12; \ + sbcs x10, x10, x13; \ + sbcs x11, x11, x14; \ + ngc x14, xzr; \ + cmn x14, #1; \ + eor x9, x9, x14; \ + adcs x9, x9, xzr; \ + eor x10, x10, x14; \ + adcs x10, x10, xzr; \ + eor x11, x11, x14; \ + adc x11, x11, xzr; \ + eor x14, x3, x14; \ + ldp x21, x22, [P0]; \ + adds x15, x15, x21; \ + adcs x16, x16, x22; \ + ldp x21, x22, [P0+16]; \ + adcs x17, x17, x21; \ + adcs x19, x19, x22; \ + ldp x21, x22, [P0+32]; \ + adcs x20, x20, x21; \ + adcs x1, x1, x22; \ + adc x2, xzr, xzr; \ + stp x15, x16, [P0]; \ + stp x17, x19, [P0+16]; \ + stp x20, x1, [P0+32]; \ + mul x15, x6, x9; \ + mul x21, x7, x10; \ + mul x22, x8, x11; \ + umulh x23, x6, x9; \ + umulh x0, x7, x10; \ + umulh x1, x8, x11; \ + adds x23, x23, x21; \ + adcs x0, x0, x22; \ + adc x1, x1, xzr; \ + adds x16, x23, x15; \ + adcs x17, x0, x23; \ + adcs x19, x1, x0; \ + adc x20, x1, xzr; \ + adds x17, x17, x15; \ + adcs x19, x19, x23; \ + adcs x20, x20, x0; \ + adc x1, x1, xzr; \ + subs x0, x6, x7; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x10, x9; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x16, x16, x21; \ + adcs x17, x17, x22; \ + adcs x19, x19, x23; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x0, x6, x8; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x11, x9; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x17, x17, x21; \ + adcs x19, x19, x22; \ + adcs x20, x20, x23; \ + adc x1, x1, x23; \ + subs x0, x7, x8; \ + cneg x0, x0, lo; \ + csetm x23, lo; \ + subs x22, x11, x10; \ + cneg x22, x22, lo; \ + mul x21, x0, x22; \ + umulh x22, x0, x22; \ + cinv x23, x23, lo; \ + eor x21, x21, x23; \ + eor x22, x22, x23; \ + cmn x23, #1; \ + adcs x19, x19, x21; \ + adcs x20, x20, x22; \ + adc x1, x1, x23; \ + ldp x3, x4, [P0]; \ + ldp x5, x6, [P0+16]; \ + ldp x7, x8, [P0+32]; \ + cmn x14, #1; \ + eor x15, x15, x14; \ + adcs x15, x15, x3; \ + eor x16, x16, x14; \ + adcs x16, x16, x4; \ + eor x17, x17, x14; \ + adcs x17, x17, x5; \ + eor x19, x19, x14; \ + adcs x19, x19, x6; \ + eor x20, x20, x14; \ + adcs x20, x20, x7; \ + eor x1, x1, x14; \ + adcs x1, x1, x8; \ + adcs x9, x14, x2; \ + adcs x10, x14, xzr; \ + adcs x11, x14, xzr; \ + adc x12, x14, xzr; \ + adds x19, x19, x3; \ + adcs x20, x20, x4; \ + adcs x1, x1, x5; \ + adcs x9, x9, x6; \ + adcs x10, x10, x7; \ + adcs x11, x11, x8; \ + adc x12, x12, x2; \ + lsl x23, x15, #32; \ + add x15, x23, x15; \ + lsr x23, x15, #32; \ + subs x23, x23, x15; \ + sbc x22, x15, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x15; \ + adc x21, xzr, xzr; \ + subs x16, x16, x23; \ + sbcs x17, x17, x22; \ + sbcs x19, x19, x21; \ + sbcs x20, x20, xzr; \ + sbcs x1, x1, xzr; \ sbc x15, x15, xzr; \ - lsl x7, x16, #32; \ - add x16, x7, x16; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x16; \ - mov x6, #0xffffffff; \ - mul x5, x6, x16; \ - umulh x6, x6, x16; \ - adds x7, x7, x5; \ - adcs x6, x6, x16; \ - adc x5, xzr, xzr; \ - subs x17, x17, x7; \ - sbcs x12, x12, x6; \ - sbcs x13, x13, x5; \ - sbcs x14, x14, xzr; \ + lsl x23, x16, #32; \ + add x16, x23, x16; \ + lsr x23, x16, #32; \ + subs x23, x23, x16; \ + sbc x22, x16, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x16; \ + adc x21, xzr, xzr; \ + subs x17, x17, x23; \ + sbcs x19, x19, x22; \ + sbcs x20, x20, x21; \ + sbcs x1, x1, xzr; \ sbcs x15, x15, xzr; \ sbc x16, x16, xzr; \ - lsl x7, x17, #32; \ - add x17, x7, x17; \ - mov x7, #0xffffffff00000001; \ - umulh x7, x7, x17; \ - mov x6, #0xffffffff; \ - mul x5, x6, x17; \ - umulh x6, x6, x17; \ - adds x7, x7, x5; \ - adcs x6, x6, x17; \ - adc x5, xzr, xzr; \ - subs x12, x12, x7; \ - sbcs x13, x13, x6; \ - sbcs x14, x14, x5; \ + lsl x23, x17, #32; \ + add x17, x23, x17; \ + lsr x23, x17, #32; \ + subs x23, x23, x17; \ + sbc x22, x17, xzr; \ + extr x23, x22, x23, #32; \ + lsr x22, x22, #32; \ + adds x22, x22, x17; \ + adc x21, xzr, xzr; \ + subs x19, x19, x23; \ + sbcs x20, x20, x22; \ + sbcs x1, x1, x21; \ sbcs x15, x15, xzr; \ sbcs x16, x16, xzr; \ sbc x17, x17, xzr; \ - adds x12, x12, x19; \ - adcs x13, x13, x20; \ - adcs x14, x14, x21; \ - adcs x15, x15, x22; \ - adcs x16, x16, x2; \ - adcs x17, x17, x1; \ - adc x10, xzr, xzr; \ - mov x11, #0xffffffff00000001; \ - adds x19, x12, x11; \ - mov x11, #0xffffffff; \ - adcs x20, x13, x11; \ - mov x11, #0x1; \ - adcs x21, x14, x11; \ - adcs x22, x15, xzr; \ - adcs x2, x16, xzr; \ - adcs x1, x17, xzr; \ + adds x9, x9, x15; \ + adcs x10, x10, x16; \ + adcs x11, x11, x17; \ + adc x12, x12, xzr; \ + add x22, x12, #1; \ + lsl x21, x22, #32; \ + subs x0, x22, x21; \ + sbc x21, x21, xzr; \ + adds x19, x19, x0; \ + adcs x20, x20, x21; \ + adcs x1, x1, x22; \ + adcs x9, x9, xzr; \ adcs x10, x10, xzr; \ - csel x12, x12, x19, eq; \ - csel x13, x13, x20, eq; \ - csel x14, x14, x21, eq; \ - csel x15, x15, x22, eq; \ - csel x16, x16, x2, eq; \ - csel x17, x17, x1, eq; \ - stp x12, x13, [P0]; \ - stp x14, x15, [P0+16]; \ - stp x16, x17, [P0+32] - -// Corresponds exactly to bignum_montsqr_p384_alt + adcs x11, x11, xzr; \ + csetm x22, lo; \ + mov x23, #4294967295; \ + and x23, x23, x22; \ + adds x19, x19, x23; \ + eor x23, x23, x22; \ + adcs x20, x20, x23; \ + mov x23, #-2; \ + and x23, x23, x22; \ + adcs x1, x1, x23; \ + adcs x9, x9, x22; \ + adcs x10, x10, x22; \ + adc x11, x11, x22; \ + stp x19, x20, [P0]; \ + stp x1, x9, [P0+16]; \ + stp x10, x11, [P0+32] + +// Corresponds exactly to bignum_montsqr_p384 #define montsqr_p384(P0,P1) \ ldp x2, x3, [P1]; \ - mul x9, x2, x3; \ - umulh x10, x2, x3; \ ldp x4, x5, [P1+16]; \ - mul x8, x2, x4; \ - adds x10, x10, x8; \ - mul x11, x2, x5; \ - mul x8, x3, x4; \ - adcs x11, x11, x8; \ - umulh x12, x2, x5; \ - mul x8, x3, x5; \ - adcs x12, x12, x8; \ ldp x6, x7, [P1+32]; \ - mul x13, x2, x7; \ - mul x8, x3, x6; \ - adcs x13, x13, x8; \ - umulh x14, x2, x7; \ - mul x8, x3, x7; \ - adcs x14, x14, x8; \ - mul x15, x5, x6; \ - adcs x15, x15, xzr; \ - umulh x16, x5, x6; \ - adc x16, x16, xzr; \ - umulh x8, x2, x4; \ - adds x11, x11, x8; \ - umulh x8, x3, x4; \ - adcs x12, x12, x8; \ - umulh x8, x3, x5; \ - adcs x13, x13, x8; \ - umulh x8, x3, x6; \ - adcs x14, x14, x8; \ - umulh x8, x3, x7; \ - adcs x15, x15, x8; \ - adc x16, x16, xzr; \ - mul x8, x2, x6; \ - adds x12, x12, x8; \ - mul x8, x4, x5; \ - adcs x13, x13, x8; \ - mul x8, x4, x6; \ - adcs x14, x14, x8; \ - mul x8, x4, x7; \ - adcs x15, x15, x8; \ - mul x8, x5, x7; \ - adcs x16, x16, x8; \ - mul x17, x6, x7; \ + mul x14, x2, x3; \ + mul x15, x2, x4; \ + mul x16, x3, x4; \ + mul x8, x2, x2; \ + mul x10, x3, x3; \ + mul x12, x4, x4; \ + umulh x17, x2, x3; \ + adds x15, x15, x17; \ + umulh x17, x2, x4; \ + adcs x16, x16, x17; \ + umulh x17, x3, x4; \ adcs x17, x17, xzr; \ - umulh x19, x6, x7; \ - adc x19, x19, xzr; \ - umulh x8, x2, x6; \ - adds x13, x13, x8; \ - umulh x8, x4, x5; \ - adcs x14, x14, x8; \ - umulh x8, x4, x6; \ - adcs x15, x15, x8; \ - umulh x8, x4, x7; \ - adcs x16, x16, x8; \ - umulh x8, x5, x7; \ - adcs x17, x17, x8; \ - adc x19, x19, xzr; \ - adds x9, x9, x9; \ - adcs x10, x10, x10; \ - adcs x11, x11, x11; \ - adcs x12, x12, x12; \ - adcs x13, x13, x13; \ - adcs x14, x14, x14; \ + umulh x9, x2, x2; \ + umulh x11, x3, x3; \ + umulh x13, x4, x4; \ + adds x14, x14, x14; \ adcs x15, x15, x15; \ adcs x16, x16, x16; \ adcs x17, x17, x17; \ - adcs x19, x19, x19; \ - cset x20, hs; \ - umulh x8, x2, x2; \ - mul x2, x2, x2; \ - adds x9, x9, x8; \ - mul x8, x3, x3; \ - adcs x10, x10, x8; \ - umulh x8, x3, x3; \ - adcs x11, x11, x8; \ - mul x8, x4, x4; \ - adcs x12, x12, x8; \ - umulh x8, x4, x4; \ - adcs x13, x13, x8; \ - mul x8, x5, x5; \ - adcs x14, x14, x8; \ - umulh x8, x5, x5; \ - adcs x15, x15, x8; \ - mul x8, x6, x6; \ - adcs x16, x16, x8; \ - umulh x8, x6, x6; \ - adcs x17, x17, x8; \ - mul x8, x7, x7; \ - adcs x19, x19, x8; \ - umulh x8, x7, x7; \ - adc x20, x20, x8; \ - lsl x5, x2, #32; \ - add x2, x5, x2; \ - mov x5, #-4294967295; \ - umulh x5, x5, x2; \ - mov x4, #4294967295; \ - mul x3, x4, x2; \ - umulh x4, x4, x2; \ - adds x5, x5, x3; \ - adcs x4, x4, x2; \ - adc x3, xzr, xzr; \ - subs x9, x9, x5; \ - sbcs x10, x10, x4; \ - sbcs x11, x11, x3; \ + adc x13, x13, xzr; \ + adds x9, x9, x14; \ + adcs x10, x10, x15; \ + adcs x11, x11, x16; \ + adcs x12, x12, x17; \ + adc x13, x13, xzr; \ + lsl x16, x8, #32; \ + add x8, x16, x8; \ + lsr x16, x8, #32; \ + subs x16, x16, x8; \ + sbc x15, x8, xzr; \ + extr x16, x15, x16, #32; \ + lsr x15, x15, #32; \ + adds x15, x15, x8; \ + adc x14, xzr, xzr; \ + subs x9, x9, x16; \ + sbcs x10, x10, x15; \ + sbcs x11, x11, x14; \ sbcs x12, x12, xzr; \ sbcs x13, x13, xzr; \ - sbc x2, x2, xzr; \ - lsl x5, x9, #32; \ - add x9, x5, x9; \ - mov x5, #-4294967295; \ - umulh x5, x5, x9; \ - mov x4, #4294967295; \ - mul x3, x4, x9; \ - umulh x4, x4, x9; \ - adds x5, x5, x3; \ - adcs x4, x4, x9; \ - adc x3, xzr, xzr; \ - subs x10, x10, x5; \ - sbcs x11, x11, x4; \ - sbcs x12, x12, x3; \ + sbc x8, x8, xzr; \ + lsl x16, x9, #32; \ + add x9, x16, x9; \ + lsr x16, x9, #32; \ + subs x16, x16, x9; \ + sbc x15, x9, xzr; \ + extr x16, x15, x16, #32; \ + lsr x15, x15, #32; \ + adds x15, x15, x9; \ + adc x14, xzr, xzr; \ + subs x10, x10, x16; \ + sbcs x11, x11, x15; \ + sbcs x12, x12, x14; \ sbcs x13, x13, xzr; \ - sbcs x2, x2, xzr; \ + sbcs x8, x8, xzr; \ sbc x9, x9, xzr; \ - lsl x5, x10, #32; \ - add x10, x5, x10; \ - mov x5, #-4294967295; \ - umulh x5, x5, x10; \ - mov x4, #4294967295; \ - mul x3, x4, x10; \ - umulh x4, x4, x10; \ - adds x5, x5, x3; \ - adcs x4, x4, x10; \ - adc x3, xzr, xzr; \ - subs x11, x11, x5; \ - sbcs x12, x12, x4; \ - sbcs x13, x13, x3; \ - sbcs x2, x2, xzr; \ + lsl x16, x10, #32; \ + add x10, x16, x10; \ + lsr x16, x10, #32; \ + subs x16, x16, x10; \ + sbc x15, x10, xzr; \ + extr x16, x15, x16, #32; \ + lsr x15, x15, #32; \ + adds x15, x15, x10; \ + adc x14, xzr, xzr; \ + subs x11, x11, x16; \ + sbcs x12, x12, x15; \ + sbcs x13, x13, x14; \ + sbcs x8, x8, xzr; \ sbcs x9, x9, xzr; \ sbc x10, x10, xzr; \ - lsl x5, x11, #32; \ - add x11, x5, x11; \ - mov x5, #-4294967295; \ - umulh x5, x5, x11; \ - mov x4, #4294967295; \ - mul x3, x4, x11; \ - umulh x4, x4, x11; \ - adds x5, x5, x3; \ - adcs x4, x4, x11; \ - adc x3, xzr, xzr; \ - subs x12, x12, x5; \ - sbcs x13, x13, x4; \ - sbcs x2, x2, x3; \ - sbcs x9, x9, xzr; \ - sbcs x10, x10, xzr; \ - sbc x11, x11, xzr; \ - lsl x5, x12, #32; \ - add x12, x5, x12; \ - mov x5, #-4294967295; \ - umulh x5, x5, x12; \ - mov x4, #4294967295; \ - mul x3, x4, x12; \ - umulh x4, x4, x12; \ - adds x5, x5, x3; \ - adcs x4, x4, x12; \ - adc x3, xzr, xzr; \ - subs x13, x13, x5; \ - sbcs x2, x2, x4; \ - sbcs x9, x9, x3; \ - sbcs x10, x10, xzr; \ - sbcs x11, x11, xzr; \ - sbc x12, x12, xzr; \ - lsl x5, x13, #32; \ - add x13, x5, x13; \ - mov x5, #-4294967295; \ - umulh x5, x5, x13; \ - mov x4, #4294967295; \ - mul x3, x4, x13; \ - umulh x4, x4, x13; \ - adds x5, x5, x3; \ - adcs x4, x4, x13; \ - adc x3, xzr, xzr; \ - subs x2, x2, x5; \ - sbcs x9, x9, x4; \ - sbcs x10, x10, x3; \ - sbcs x11, x11, xzr; \ - sbcs x12, x12, xzr; \ - sbc x13, x13, xzr; \ - adds x2, x2, x14; \ - adcs x9, x9, x15; \ - adcs x10, x10, x16; \ - adcs x11, x11, x17; \ - adcs x12, x12, x19; \ - adcs x13, x13, x20; \ - adc x6, xzr, xzr; \ - mov x8, #-4294967295; \ - adds x14, x2, x8; \ - mov x8, #4294967295; \ - adcs x15, x9, x8; \ - mov x8, #1; \ - adcs x16, x10, x8; \ - adcs x17, x11, xzr; \ - adcs x19, x12, xzr; \ - adcs x20, x13, xzr; \ - adcs x6, x6, xzr; \ - csel x2, x2, x14, eq; \ - csel x9, x9, x15, eq; \ - csel x10, x10, x16, eq; \ - csel x11, x11, x17, eq; \ - csel x12, x12, x19, eq; \ - csel x13, x13, x20, eq; \ - stp x2, x9, [P0]; \ - stp x10, x11, [P0+16]; \ - stp x12, x13, [P0+32] - -// Almost-Montgomery variant which we use when an input to other muls -// with the other argument fully reduced (which is always safe). In -// fact, with the Karatsuba-based Montgomery mul here, we don't even -// *need* the restriction that the other argument is reduced. - -#define amontsqr_p384(P0,P1) \ - ldp x2, x3, [P1]; \ - mul x9, x2, x3; \ - umulh x10, x2, x3; \ - ldp x4, x5, [P1+16]; \ - mul x8, x2, x4; \ + stp x11, x12, [P0]; \ + stp x13, x8, [P0+16]; \ + stp x9, x10, [P0+32]; \ + mul x8, x2, x5; \ + mul x14, x3, x6; \ + mul x15, x4, x7; \ + umulh x16, x2, x5; \ + umulh x17, x3, x6; \ + umulh x1, x4, x7; \ + adds x16, x16, x14; \ + adcs x17, x17, x15; \ + adc x1, x1, xzr; \ + adds x9, x16, x8; \ + adcs x10, x17, x16; \ + adcs x11, x1, x17; \ + adc x12, x1, xzr; \ adds x10, x10, x8; \ - mul x11, x2, x5; \ - mul x8, x3, x4; \ - adcs x11, x11, x8; \ - umulh x12, x2, x5; \ - mul x8, x3, x5; \ - adcs x12, x12, x8; \ - ldp x6, x7, [P1+32]; \ - mul x13, x2, x7; \ - mul x8, x3, x6; \ - adcs x13, x13, x8; \ - umulh x14, x2, x7; \ - mul x8, x3, x7; \ - adcs x14, x14, x8; \ - mul x15, x5, x6; \ - adcs x15, x15, xzr; \ - umulh x16, x5, x6; \ - adc x16, x16, xzr; \ - umulh x8, x2, x4; \ - adds x11, x11, x8; \ - umulh x8, x3, x4; \ - adcs x12, x12, x8; \ - umulh x8, x3, x5; \ - adcs x13, x13, x8; \ - umulh x8, x3, x6; \ - adcs x14, x14, x8; \ - umulh x8, x3, x7; \ - adcs x15, x15, x8; \ - adc x16, x16, xzr; \ - mul x8, x2, x6; \ - adds x12, x12, x8; \ - mul x8, x4, x5; \ - adcs x13, x13, x8; \ - mul x8, x4, x6; \ - adcs x14, x14, x8; \ - mul x8, x4, x7; \ - adcs x15, x15, x8; \ - mul x8, x5, x7; \ - adcs x16, x16, x8; \ - mul x17, x6, x7; \ - adcs x17, x17, xzr; \ - umulh x19, x6, x7; \ - adc x19, x19, xzr; \ - umulh x8, x2, x6; \ - adds x13, x13, x8; \ - umulh x8, x4, x5; \ - adcs x14, x14, x8; \ - umulh x8, x4, x6; \ - adcs x15, x15, x8; \ - umulh x8, x4, x7; \ - adcs x16, x16, x8; \ - umulh x8, x5, x7; \ - adcs x17, x17, x8; \ - adc x19, x19, xzr; \ - adds x9, x9, x9; \ + adcs x11, x11, x16; \ + adcs x12, x12, x17; \ + adc x13, x1, xzr; \ + subs x17, x2, x3; \ + cneg x17, x17, lo; \ + csetm x14, lo; \ + subs x15, x6, x5; \ + cneg x15, x15, lo; \ + mul x16, x17, x15; \ + umulh x15, x17, x15; \ + cinv x14, x14, lo; \ + eor x16, x16, x14; \ + eor x15, x15, x14; \ + cmn x14, #1; \ + adcs x9, x9, x16; \ + adcs x10, x10, x15; \ + adcs x11, x11, x14; \ + adcs x12, x12, x14; \ + adc x13, x13, x14; \ + subs x17, x2, x4; \ + cneg x17, x17, lo; \ + csetm x14, lo; \ + subs x15, x7, x5; \ + cneg x15, x15, lo; \ + mul x16, x17, x15; \ + umulh x15, x17, x15; \ + cinv x14, x14, lo; \ + eor x16, x16, x14; \ + eor x15, x15, x14; \ + cmn x14, #1; \ + adcs x10, x10, x16; \ + adcs x11, x11, x15; \ + adcs x12, x12, x14; \ + adc x13, x13, x14; \ + subs x17, x3, x4; \ + cneg x17, x17, lo; \ + csetm x14, lo; \ + subs x15, x7, x6; \ + cneg x15, x15, lo; \ + mul x16, x17, x15; \ + umulh x15, x17, x15; \ + cinv x14, x14, lo; \ + eor x16, x16, x14; \ + eor x15, x15, x14; \ + cmn x14, #1; \ + adcs x11, x11, x16; \ + adcs x12, x12, x15; \ + adc x13, x13, x14; \ + adds x8, x8, x8; \ + adcs x9, x9, x9; \ adcs x10, x10, x10; \ adcs x11, x11, x11; \ adcs x12, x12, x12; \ adcs x13, x13, x13; \ - adcs x14, x14, x14; \ - adcs x15, x15, x15; \ - adcs x16, x16, x16; \ - adcs x17, x17, x17; \ - adcs x19, x19, x19; \ - cset x20, hs; \ - umulh x8, x2, x2; \ - mul x2, x2, x2; \ - adds x9, x9, x8; \ - mul x8, x3, x3; \ - adcs x10, x10, x8; \ - umulh x8, x3, x3; \ - adcs x11, x11, x8; \ - mul x8, x4, x4; \ - adcs x12, x12, x8; \ - umulh x8, x4, x4; \ - adcs x13, x13, x8; \ - mul x8, x5, x5; \ - adcs x14, x14, x8; \ - umulh x8, x5, x5; \ - adcs x15, x15, x8; \ - mul x8, x6, x6; \ - adcs x16, x16, x8; \ - umulh x8, x6, x6; \ - adcs x17, x17, x8; \ - mul x8, x7, x7; \ - adcs x19, x19, x8; \ - umulh x8, x7, x7; \ - adc x20, x20, x8; \ - lsl x5, x2, #32; \ - add x2, x5, x2; \ - mov x5, #-4294967295; \ - umulh x5, x5, x2; \ - mov x4, #4294967295; \ - mul x3, x4, x2; \ - umulh x4, x4, x2; \ - adds x5, x5, x3; \ - adcs x4, x4, x2; \ - adc x3, xzr, xzr; \ - subs x9, x9, x5; \ - sbcs x10, x10, x4; \ - sbcs x11, x11, x3; \ + adc x17, xzr, xzr; \ + ldp x2, x3, [P0]; \ + adds x8, x8, x2; \ + adcs x9, x9, x3; \ + ldp x2, x3, [P0+16]; \ + adcs x10, x10, x2; \ + adcs x11, x11, x3; \ + ldp x2, x3, [P0+32]; \ + adcs x12, x12, x2; \ + adcs x13, x13, x3; \ + adc x17, x17, xzr; \ + lsl x4, x8, #32; \ + add x8, x4, x8; \ + lsr x4, x8, #32; \ + subs x4, x4, x8; \ + sbc x3, x8, xzr; \ + extr x4, x3, x4, #32; \ + lsr x3, x3, #32; \ + adds x3, x3, x8; \ + adc x2, xzr, xzr; \ + subs x9, x9, x4; \ + sbcs x10, x10, x3; \ + sbcs x11, x11, x2; \ sbcs x12, x12, xzr; \ sbcs x13, x13, xzr; \ - sbc x2, x2, xzr; \ - lsl x5, x9, #32; \ - add x9, x5, x9; \ - mov x5, #-4294967295; \ - umulh x5, x5, x9; \ - mov x4, #4294967295; \ - mul x3, x4, x9; \ - umulh x4, x4, x9; \ - adds x5, x5, x3; \ - adcs x4, x4, x9; \ - adc x3, xzr, xzr; \ - subs x10, x10, x5; \ - sbcs x11, x11, x4; \ - sbcs x12, x12, x3; \ + sbc x8, x8, xzr; \ + lsl x4, x9, #32; \ + add x9, x4, x9; \ + lsr x4, x9, #32; \ + subs x4, x4, x9; \ + sbc x3, x9, xzr; \ + extr x4, x3, x4, #32; \ + lsr x3, x3, #32; \ + adds x3, x3, x9; \ + adc x2, xzr, xzr; \ + subs x10, x10, x4; \ + sbcs x11, x11, x3; \ + sbcs x12, x12, x2; \ sbcs x13, x13, xzr; \ - sbcs x2, x2, xzr; \ + sbcs x8, x8, xzr; \ sbc x9, x9, xzr; \ - lsl x5, x10, #32; \ - add x10, x5, x10; \ - mov x5, #-4294967295; \ - umulh x5, x5, x10; \ - mov x4, #4294967295; \ - mul x3, x4, x10; \ - umulh x4, x4, x10; \ - adds x5, x5, x3; \ - adcs x4, x4, x10; \ - adc x3, xzr, xzr; \ - subs x11, x11, x5; \ - sbcs x12, x12, x4; \ - sbcs x13, x13, x3; \ - sbcs x2, x2, xzr; \ + lsl x4, x10, #32; \ + add x10, x4, x10; \ + lsr x4, x10, #32; \ + subs x4, x4, x10; \ + sbc x3, x10, xzr; \ + extr x4, x3, x4, #32; \ + lsr x3, x3, #32; \ + adds x3, x3, x10; \ + adc x2, xzr, xzr; \ + subs x11, x11, x4; \ + sbcs x12, x12, x3; \ + sbcs x13, x13, x2; \ + sbcs x8, x8, xzr; \ sbcs x9, x9, xzr; \ sbc x10, x10, xzr; \ - lsl x5, x11, #32; \ - add x11, x5, x11; \ - mov x5, #-4294967295; \ - umulh x5, x5, x11; \ - mov x4, #4294967295; \ - mul x3, x4, x11; \ - umulh x4, x4, x11; \ - adds x5, x5, x3; \ - adcs x4, x4, x11; \ - adc x3, xzr, xzr; \ - subs x12, x12, x5; \ - sbcs x13, x13, x4; \ - sbcs x2, x2, x3; \ - sbcs x9, x9, xzr; \ - sbcs x10, x10, xzr; \ - sbc x11, x11, xzr; \ - lsl x5, x12, #32; \ - add x12, x5, x12; \ - mov x5, #-4294967295; \ - umulh x5, x5, x12; \ - mov x4, #4294967295; \ - mul x3, x4, x12; \ - umulh x4, x4, x12; \ - adds x5, x5, x3; \ - adcs x4, x4, x12; \ - adc x3, xzr, xzr; \ - subs x13, x13, x5; \ - sbcs x2, x2, x4; \ - sbcs x9, x9, x3; \ - sbcs x10, x10, xzr; \ - sbcs x11, x11, xzr; \ - sbc x12, x12, xzr; \ - lsl x5, x13, #32; \ - add x13, x5, x13; \ - mov x5, #-4294967295; \ - umulh x5, x5, x13; \ - mov x4, #4294967295; \ - mul x3, x4, x13; \ - umulh x4, x4, x13; \ - adds x5, x5, x3; \ - adcs x4, x4, x13; \ - adc x3, xzr, xzr; \ - subs x2, x2, x5; \ - sbcs x9, x9, x4; \ - sbcs x10, x10, x3; \ - sbcs x11, x11, xzr; \ - sbcs x12, x12, xzr; \ - sbc x13, x13, xzr; \ - adds x2, x2, x14; \ - adcs x9, x9, x15; \ - adcs x10, x10, x16; \ - adcs x11, x11, x17; \ - adcs x12, x12, x19; \ - adcs x13, x13, x20; \ - mov x14, #-4294967295; \ - mov x15, #4294967295; \ - csel x14, x14, xzr, cs; \ - csel x15, x15, xzr, cs; \ - cset x16, cs; \ - adds x2, x2, x14; \ - adcs x9, x9, x15; \ - adcs x10, x10, x16; \ - adcs x11, x11, xzr; \ - adcs x12, x12, xzr; \ - adc x13, x13, xzr; \ - stp x2, x9, [P0]; \ - stp x10, x11, [P0+16]; \ - stp x12, x13, [P0+32] + adds x17, x17, x8; \ + adcs x8, x9, xzr; \ + adcs x9, x10, xzr; \ + adcs x10, xzr, xzr; \ + mul x1, x5, x5; \ + adds x11, x11, x1; \ + mul x14, x6, x6; \ + mul x15, x7, x7; \ + umulh x1, x5, x5; \ + adcs x12, x12, x1; \ + umulh x1, x6, x6; \ + adcs x13, x13, x14; \ + adcs x17, x17, x1; \ + umulh x1, x7, x7; \ + adcs x8, x8, x15; \ + adcs x9, x9, x1; \ + adc x10, x10, xzr; \ + mul x1, x5, x6; \ + mul x14, x5, x7; \ + mul x15, x6, x7; \ + umulh x16, x5, x6; \ + adds x14, x14, x16; \ + umulh x16, x5, x7; \ + adcs x15, x15, x16; \ + umulh x16, x6, x7; \ + adc x16, x16, xzr; \ + adds x1, x1, x1; \ + adcs x14, x14, x14; \ + adcs x15, x15, x15; \ + adcs x16, x16, x16; \ + adc x5, xzr, xzr; \ + adds x12, x12, x1; \ + adcs x13, x13, x14; \ + adcs x17, x17, x15; \ + adcs x8, x8, x16; \ + adcs x9, x9, x5; \ + adc x10, x10, xzr; \ + mov x1, #-4294967295; \ + mov x14, #4294967295; \ + mov x15, #1; \ + cmn x11, x1; \ + adcs xzr, x12, x14; \ + adcs xzr, x13, x15; \ + adcs xzr, x17, xzr; \ + adcs xzr, x8, xzr; \ + adcs xzr, x9, xzr; \ + adc x10, x10, xzr; \ + neg x10, x10; \ + and x1, x1, x10; \ + adds x11, x11, x1; \ + and x14, x14, x10; \ + adcs x12, x12, x14; \ + and x15, x15, x10; \ + adcs x13, x13, x15; \ + adcs x17, x17, xzr; \ + adcs x8, x8, xzr; \ + adc x9, x9, xzr; \ + stp x11, x12, [P0]; \ + stp x13, x17, [P0+16]; \ + stp x8, x9, [P0+32] // Corresponds exactly to bignum_sub_p384 @@ -827,7 +765,7 @@ S2N_BN_SYMBOL(p384_montjmixadd): // Main code, just a sequence of basic field operations // 8 * multiply + 3 * square + 7 * subtract - amontsqr_p384(zp2,z_1) + montsqr_p384(zp2,z_1) montmul_p384(y2a,z_1,y_2) montmul_p384(x2a,zp2,x_2) @@ -836,25 +774,91 @@ S2N_BN_SYMBOL(p384_montjmixadd): sub_p384(xd,x2a,x_1) sub_p384(yd,y2a,y_1) - amontsqr_p384(zz,xd) + montsqr_p384(zz,xd) montsqr_p384(ww,yd) montmul_p384(zzx1,zz,x_1) montmul_p384(zzx2,zz,x2a) - sub_p384(x_3,ww,zzx1) + sub_p384(resx,ww,zzx1) sub_p384(t1,zzx2,zzx1) - montmul_p384(z_3,xd,z_1) + montmul_p384(resz,xd,z_1) - sub_p384(x_3,x_3,zzx2) + sub_p384(resx,resx,zzx2) - sub_p384(t2,zzx1,x_3) + sub_p384(t2,zzx1,resx) montmul_p384(t1,t1,y_1) montmul_p384(t2,yd,t2) - sub_p384(y_3,t2,t1) + sub_p384(resy,t2,t1) + +// Test if z_1 = 0 to decide if p1 = 0 (up to projective equivalence) + + ldp x0, x1, [z_1] + ldp x2, x3, [z_1+16] + ldp x4, x5, [z_1+32] + orr x6, x0, x1 + orr x7, x2, x3 + orr x8, x4, x5 + orr x6, x6, x7 + orr x6, x6, x8 + cmp x6, xzr + +// Multiplex: if p1 <> 0 just copy the computed result from the staging area. +// If p1 = 0 then return the point p2 augmented with a z = 1 coordinate (in +// Montgomery form so not the simple constant 1 but rather 2^384 - p_384), +// hence giving 0 + p2 = p2 for the final result. + + ldp x0, x1, [resx] + ldp x19, x20, [x_2] + csel x0, x0, x19, ne + csel x1, x1, x20, ne + ldp x2, x3, [resx+16] + ldp x19, x20, [x_2+16] + csel x2, x2, x19, ne + csel x3, x3, x20, ne + ldp x4, x5, [resx+32] + ldp x19, x20, [x_2+32] + csel x4, x4, x19, ne + csel x5, x5, x20, ne + + ldp x6, x7, [resy] + ldp x19, x20, [y_2] + csel x6, x6, x19, ne + csel x7, x7, x20, ne + ldp x8, x9, [resy+16] + ldp x19, x20, [y_2+16] + csel x8, x8, x19, ne + csel x9, x9, x20, ne + ldp x10, x11, [resy+32] + ldp x19, x20, [y_2+32] + csel x10, x10, x19, ne + csel x11, x11, x20, ne + + ldp x12, x13, [resz] + mov x19, #0xffffffff00000001 + mov x20, #0x00000000ffffffff + csel x12, x12, x19, ne + csel x13, x13, x20, ne + ldp x14, x15, [resz+16] + mov x19, #1 + csel x14, x14, x19, ne + csel x15, x15, xzr, ne + ldp x16, x17, [resz+32] + csel x16, x16, xzr, ne + csel x17, x17, xzr, ne + + stp x0, x1, [x_3] + stp x2, x3, [x_3+16] + stp x4, x5, [x_3+32] + stp x6, x7, [y_3] + stp x8, x9, [y_3+16] + stp x10, x11, [y_3+32] + stp x12, x13, [z_3] + stp x14, x15, [z_3+16] + stp x16, x17, [z_3+32] // Restore stack and registers diff --git a/third_party/s2n-bignum/arm/p384/p384_montjmixadd_alt.S b/third_party/s2n-bignum/arm/p384/p384_montjmixadd_alt.S new file mode 100644 index 0000000000..f36301a11e --- /dev/null +++ b/third_party/s2n-bignum/arm/p384/p384_montjmixadd_alt.S @@ -0,0 +1,941 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Point mixed addition on NIST curve P-384 in Montgomery-Jacobian coordinates +// +// extern void p384_montjmixadd_alt +// (uint64_t p3[static 18],uint64_t p1[static 18],uint64_t p2[static 12]); +// +// Does p3 := p1 + p2 where all points are regarded as Jacobian triples with +// each coordinate in the Montgomery domain, i.e. x' = (2^384 * x) mod p_384. +// A Jacobian triple (x',y',z') represents affine point (x/z^2,y/z^3). +// The "mixed" part means that p2 only has x and y coordinates, with the +// implicit z coordinate assumed to be the identity. +// +// Standard ARM ABI: X0 = p3, X1 = p1, X2 = p2 +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(p384_montjmixadd_alt) + S2N_BN_SYM_PRIVACY_DIRECTIVE(p384_montjmixadd_alt) + .text + .balign 4 + +// Size of individual field elements + +#define NUMSIZE 48 + +// Stable homes for input arguments during main code sequence + +#define input_z x24 +#define input_x x25 +#define input_y x26 + +// Pointer-offset pairs for inputs and outputs + +#define x_1 input_x, #0 +#define y_1 input_x, #NUMSIZE +#define z_1 input_x, #(2*NUMSIZE) + +#define x_2 input_y, #0 +#define y_2 input_y, #NUMSIZE + +#define x_3 input_z, #0 +#define y_3 input_z, #NUMSIZE +#define z_3 input_z, #(2*NUMSIZE) + +// Pointer-offset pairs for temporaries, with some aliasing +// NSPACE is the total stack needed for these temporaries + +#define zp2 sp, #(NUMSIZE*0) +#define ww sp, #(NUMSIZE*0) +#define resx sp, #(NUMSIZE*0) + +#define yd sp, #(NUMSIZE*1) +#define y2a sp, #(NUMSIZE*1) + +#define x2a sp, #(NUMSIZE*2) +#define zzx2 sp, #(NUMSIZE*2) + +#define zz sp, #(NUMSIZE*3) +#define t1 sp, #(NUMSIZE*3) + +#define t2 sp, #(NUMSIZE*4) +#define zzx1 sp, #(NUMSIZE*4) +#define resy sp, #(NUMSIZE*4) + +#define xd sp, #(NUMSIZE*5) +#define resz sp, #(NUMSIZE*5) + +#define NSPACE (NUMSIZE*6) + +// Corresponds exactly to bignum_montmul_p384_alt + +#define montmul_p384(P0,P1,P2) \ + ldp x3, x4, [P1]; \ + ldp x5, x6, [P2]; \ + mul x12, x3, x5; \ + umulh x13, x3, x5; \ + mul x11, x3, x6; \ + umulh x14, x3, x6; \ + adds x13, x13, x11; \ + ldp x7, x8, [P2+16]; \ + mul x11, x3, x7; \ + umulh x15, x3, x7; \ + adcs x14, x14, x11; \ + mul x11, x3, x8; \ + umulh x16, x3, x8; \ + adcs x15, x15, x11; \ + ldp x9, x10, [P2+32]; \ + mul x11, x3, x9; \ + umulh x17, x3, x9; \ + adcs x16, x16, x11; \ + mul x11, x3, x10; \ + umulh x19, x3, x10; \ + adcs x17, x17, x11; \ + adc x19, x19, xzr; \ + mul x11, x4, x5; \ + adds x13, x13, x11; \ + mul x11, x4, x6; \ + adcs x14, x14, x11; \ + mul x11, x4, x7; \ + adcs x15, x15, x11; \ + mul x11, x4, x8; \ + adcs x16, x16, x11; \ + mul x11, x4, x9; \ + adcs x17, x17, x11; \ + mul x11, x4, x10; \ + adcs x19, x19, x11; \ + cset x20, cs; \ + umulh x11, x4, x5; \ + adds x14, x14, x11; \ + umulh x11, x4, x6; \ + adcs x15, x15, x11; \ + umulh x11, x4, x7; \ + adcs x16, x16, x11; \ + umulh x11, x4, x8; \ + adcs x17, x17, x11; \ + umulh x11, x4, x9; \ + adcs x19, x19, x11; \ + umulh x11, x4, x10; \ + adc x20, x20, x11; \ + ldp x3, x4, [P1+16]; \ + mul x11, x3, x5; \ + adds x14, x14, x11; \ + mul x11, x3, x6; \ + adcs x15, x15, x11; \ + mul x11, x3, x7; \ + adcs x16, x16, x11; \ + mul x11, x3, x8; \ + adcs x17, x17, x11; \ + mul x11, x3, x9; \ + adcs x19, x19, x11; \ + mul x11, x3, x10; \ + adcs x20, x20, x11; \ + cset x21, cs; \ + umulh x11, x3, x5; \ + adds x15, x15, x11; \ + umulh x11, x3, x6; \ + adcs x16, x16, x11; \ + umulh x11, x3, x7; \ + adcs x17, x17, x11; \ + umulh x11, x3, x8; \ + adcs x19, x19, x11; \ + umulh x11, x3, x9; \ + adcs x20, x20, x11; \ + umulh x11, x3, x10; \ + adc x21, x21, x11; \ + mul x11, x4, x5; \ + adds x15, x15, x11; \ + mul x11, x4, x6; \ + adcs x16, x16, x11; \ + mul x11, x4, x7; \ + adcs x17, x17, x11; \ + mul x11, x4, x8; \ + adcs x19, x19, x11; \ + mul x11, x4, x9; \ + adcs x20, x20, x11; \ + mul x11, x4, x10; \ + adcs x21, x21, x11; \ + cset x22, cs; \ + umulh x11, x4, x5; \ + adds x16, x16, x11; \ + umulh x11, x4, x6; \ + adcs x17, x17, x11; \ + umulh x11, x4, x7; \ + adcs x19, x19, x11; \ + umulh x11, x4, x8; \ + adcs x20, x20, x11; \ + umulh x11, x4, x9; \ + adcs x21, x21, x11; \ + umulh x11, x4, x10; \ + adc x22, x22, x11; \ + ldp x3, x4, [P1+32]; \ + mul x11, x3, x5; \ + adds x16, x16, x11; \ + mul x11, x3, x6; \ + adcs x17, x17, x11; \ + mul x11, x3, x7; \ + adcs x19, x19, x11; \ + mul x11, x3, x8; \ + adcs x20, x20, x11; \ + mul x11, x3, x9; \ + adcs x21, x21, x11; \ + mul x11, x3, x10; \ + adcs x22, x22, x11; \ + cset x2, cs; \ + umulh x11, x3, x5; \ + adds x17, x17, x11; \ + umulh x11, x3, x6; \ + adcs x19, x19, x11; \ + umulh x11, x3, x7; \ + adcs x20, x20, x11; \ + umulh x11, x3, x8; \ + adcs x21, x21, x11; \ + umulh x11, x3, x9; \ + adcs x22, x22, x11; \ + umulh x11, x3, x10; \ + adc x2, x2, x11; \ + mul x11, x4, x5; \ + adds x17, x17, x11; \ + mul x11, x4, x6; \ + adcs x19, x19, x11; \ + mul x11, x4, x7; \ + adcs x20, x20, x11; \ + mul x11, x4, x8; \ + adcs x21, x21, x11; \ + mul x11, x4, x9; \ + adcs x22, x22, x11; \ + mul x11, x4, x10; \ + adcs x2, x2, x11; \ + cset x1, cs; \ + umulh x11, x4, x5; \ + adds x19, x19, x11; \ + umulh x11, x4, x6; \ + adcs x20, x20, x11; \ + umulh x11, x4, x7; \ + adcs x21, x21, x11; \ + umulh x11, x4, x8; \ + adcs x22, x22, x11; \ + umulh x11, x4, x9; \ + adcs x2, x2, x11; \ + umulh x11, x4, x10; \ + adc x1, x1, x11; \ + lsl x7, x12, #32; \ + add x12, x7, x12; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x12; \ + mov x6, #0xffffffff; \ + mul x5, x6, x12; \ + umulh x6, x6, x12; \ + adds x7, x7, x5; \ + adcs x6, x6, x12; \ + adc x5, xzr, xzr; \ + subs x13, x13, x7; \ + sbcs x14, x14, x6; \ + sbcs x15, x15, x5; \ + sbcs x16, x16, xzr; \ + sbcs x17, x17, xzr; \ + sbc x12, x12, xzr; \ + lsl x7, x13, #32; \ + add x13, x7, x13; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x13; \ + mov x6, #0xffffffff; \ + mul x5, x6, x13; \ + umulh x6, x6, x13; \ + adds x7, x7, x5; \ + adcs x6, x6, x13; \ + adc x5, xzr, xzr; \ + subs x14, x14, x7; \ + sbcs x15, x15, x6; \ + sbcs x16, x16, x5; \ + sbcs x17, x17, xzr; \ + sbcs x12, x12, xzr; \ + sbc x13, x13, xzr; \ + lsl x7, x14, #32; \ + add x14, x7, x14; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x14; \ + mov x6, #0xffffffff; \ + mul x5, x6, x14; \ + umulh x6, x6, x14; \ + adds x7, x7, x5; \ + adcs x6, x6, x14; \ + adc x5, xzr, xzr; \ + subs x15, x15, x7; \ + sbcs x16, x16, x6; \ + sbcs x17, x17, x5; \ + sbcs x12, x12, xzr; \ + sbcs x13, x13, xzr; \ + sbc x14, x14, xzr; \ + lsl x7, x15, #32; \ + add x15, x7, x15; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x15; \ + mov x6, #0xffffffff; \ + mul x5, x6, x15; \ + umulh x6, x6, x15; \ + adds x7, x7, x5; \ + adcs x6, x6, x15; \ + adc x5, xzr, xzr; \ + subs x16, x16, x7; \ + sbcs x17, x17, x6; \ + sbcs x12, x12, x5; \ + sbcs x13, x13, xzr; \ + sbcs x14, x14, xzr; \ + sbc x15, x15, xzr; \ + lsl x7, x16, #32; \ + add x16, x7, x16; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x16; \ + mov x6, #0xffffffff; \ + mul x5, x6, x16; \ + umulh x6, x6, x16; \ + adds x7, x7, x5; \ + adcs x6, x6, x16; \ + adc x5, xzr, xzr; \ + subs x17, x17, x7; \ + sbcs x12, x12, x6; \ + sbcs x13, x13, x5; \ + sbcs x14, x14, xzr; \ + sbcs x15, x15, xzr; \ + sbc x16, x16, xzr; \ + lsl x7, x17, #32; \ + add x17, x7, x17; \ + mov x7, #0xffffffff00000001; \ + umulh x7, x7, x17; \ + mov x6, #0xffffffff; \ + mul x5, x6, x17; \ + umulh x6, x6, x17; \ + adds x7, x7, x5; \ + adcs x6, x6, x17; \ + adc x5, xzr, xzr; \ + subs x12, x12, x7; \ + sbcs x13, x13, x6; \ + sbcs x14, x14, x5; \ + sbcs x15, x15, xzr; \ + sbcs x16, x16, xzr; \ + sbc x17, x17, xzr; \ + adds x12, x12, x19; \ + adcs x13, x13, x20; \ + adcs x14, x14, x21; \ + adcs x15, x15, x22; \ + adcs x16, x16, x2; \ + adcs x17, x17, x1; \ + adc x10, xzr, xzr; \ + mov x11, #0xffffffff00000001; \ + adds x19, x12, x11; \ + mov x11, #0xffffffff; \ + adcs x20, x13, x11; \ + mov x11, #0x1; \ + adcs x21, x14, x11; \ + adcs x22, x15, xzr; \ + adcs x2, x16, xzr; \ + adcs x1, x17, xzr; \ + adcs x10, x10, xzr; \ + csel x12, x12, x19, eq; \ + csel x13, x13, x20, eq; \ + csel x14, x14, x21, eq; \ + csel x15, x15, x22, eq; \ + csel x16, x16, x2, eq; \ + csel x17, x17, x1, eq; \ + stp x12, x13, [P0]; \ + stp x14, x15, [P0+16]; \ + stp x16, x17, [P0+32] + +// Corresponds exactly to bignum_montsqr_p384_alt + +#define montsqr_p384(P0,P1) \ + ldp x2, x3, [P1]; \ + mul x9, x2, x3; \ + umulh x10, x2, x3; \ + ldp x4, x5, [P1+16]; \ + mul x8, x2, x4; \ + adds x10, x10, x8; \ + mul x11, x2, x5; \ + mul x8, x3, x4; \ + adcs x11, x11, x8; \ + umulh x12, x2, x5; \ + mul x8, x3, x5; \ + adcs x12, x12, x8; \ + ldp x6, x7, [P1+32]; \ + mul x13, x2, x7; \ + mul x8, x3, x6; \ + adcs x13, x13, x8; \ + umulh x14, x2, x7; \ + mul x8, x3, x7; \ + adcs x14, x14, x8; \ + mul x15, x5, x6; \ + adcs x15, x15, xzr; \ + umulh x16, x5, x6; \ + adc x16, x16, xzr; \ + umulh x8, x2, x4; \ + adds x11, x11, x8; \ + umulh x8, x3, x4; \ + adcs x12, x12, x8; \ + umulh x8, x3, x5; \ + adcs x13, x13, x8; \ + umulh x8, x3, x6; \ + adcs x14, x14, x8; \ + umulh x8, x3, x7; \ + adcs x15, x15, x8; \ + adc x16, x16, xzr; \ + mul x8, x2, x6; \ + adds x12, x12, x8; \ + mul x8, x4, x5; \ + adcs x13, x13, x8; \ + mul x8, x4, x6; \ + adcs x14, x14, x8; \ + mul x8, x4, x7; \ + adcs x15, x15, x8; \ + mul x8, x5, x7; \ + adcs x16, x16, x8; \ + mul x17, x6, x7; \ + adcs x17, x17, xzr; \ + umulh x19, x6, x7; \ + adc x19, x19, xzr; \ + umulh x8, x2, x6; \ + adds x13, x13, x8; \ + umulh x8, x4, x5; \ + adcs x14, x14, x8; \ + umulh x8, x4, x6; \ + adcs x15, x15, x8; \ + umulh x8, x4, x7; \ + adcs x16, x16, x8; \ + umulh x8, x5, x7; \ + adcs x17, x17, x8; \ + adc x19, x19, xzr; \ + adds x9, x9, x9; \ + adcs x10, x10, x10; \ + adcs x11, x11, x11; \ + adcs x12, x12, x12; \ + adcs x13, x13, x13; \ + adcs x14, x14, x14; \ + adcs x15, x15, x15; \ + adcs x16, x16, x16; \ + adcs x17, x17, x17; \ + adcs x19, x19, x19; \ + cset x20, hs; \ + umulh x8, x2, x2; \ + mul x2, x2, x2; \ + adds x9, x9, x8; \ + mul x8, x3, x3; \ + adcs x10, x10, x8; \ + umulh x8, x3, x3; \ + adcs x11, x11, x8; \ + mul x8, x4, x4; \ + adcs x12, x12, x8; \ + umulh x8, x4, x4; \ + adcs x13, x13, x8; \ + mul x8, x5, x5; \ + adcs x14, x14, x8; \ + umulh x8, x5, x5; \ + adcs x15, x15, x8; \ + mul x8, x6, x6; \ + adcs x16, x16, x8; \ + umulh x8, x6, x6; \ + adcs x17, x17, x8; \ + mul x8, x7, x7; \ + adcs x19, x19, x8; \ + umulh x8, x7, x7; \ + adc x20, x20, x8; \ + lsl x5, x2, #32; \ + add x2, x5, x2; \ + mov x5, #-4294967295; \ + umulh x5, x5, x2; \ + mov x4, #4294967295; \ + mul x3, x4, x2; \ + umulh x4, x4, x2; \ + adds x5, x5, x3; \ + adcs x4, x4, x2; \ + adc x3, xzr, xzr; \ + subs x9, x9, x5; \ + sbcs x10, x10, x4; \ + sbcs x11, x11, x3; \ + sbcs x12, x12, xzr; \ + sbcs x13, x13, xzr; \ + sbc x2, x2, xzr; \ + lsl x5, x9, #32; \ + add x9, x5, x9; \ + mov x5, #-4294967295; \ + umulh x5, x5, x9; \ + mov x4, #4294967295; \ + mul x3, x4, x9; \ + umulh x4, x4, x9; \ + adds x5, x5, x3; \ + adcs x4, x4, x9; \ + adc x3, xzr, xzr; \ + subs x10, x10, x5; \ + sbcs x11, x11, x4; \ + sbcs x12, x12, x3; \ + sbcs x13, x13, xzr; \ + sbcs x2, x2, xzr; \ + sbc x9, x9, xzr; \ + lsl x5, x10, #32; \ + add x10, x5, x10; \ + mov x5, #-4294967295; \ + umulh x5, x5, x10; \ + mov x4, #4294967295; \ + mul x3, x4, x10; \ + umulh x4, x4, x10; \ + adds x5, x5, x3; \ + adcs x4, x4, x10; \ + adc x3, xzr, xzr; \ + subs x11, x11, x5; \ + sbcs x12, x12, x4; \ + sbcs x13, x13, x3; \ + sbcs x2, x2, xzr; \ + sbcs x9, x9, xzr; \ + sbc x10, x10, xzr; \ + lsl x5, x11, #32; \ + add x11, x5, x11; \ + mov x5, #-4294967295; \ + umulh x5, x5, x11; \ + mov x4, #4294967295; \ + mul x3, x4, x11; \ + umulh x4, x4, x11; \ + adds x5, x5, x3; \ + adcs x4, x4, x11; \ + adc x3, xzr, xzr; \ + subs x12, x12, x5; \ + sbcs x13, x13, x4; \ + sbcs x2, x2, x3; \ + sbcs x9, x9, xzr; \ + sbcs x10, x10, xzr; \ + sbc x11, x11, xzr; \ + lsl x5, x12, #32; \ + add x12, x5, x12; \ + mov x5, #-4294967295; \ + umulh x5, x5, x12; \ + mov x4, #4294967295; \ + mul x3, x4, x12; \ + umulh x4, x4, x12; \ + adds x5, x5, x3; \ + adcs x4, x4, x12; \ + adc x3, xzr, xzr; \ + subs x13, x13, x5; \ + sbcs x2, x2, x4; \ + sbcs x9, x9, x3; \ + sbcs x10, x10, xzr; \ + sbcs x11, x11, xzr; \ + sbc x12, x12, xzr; \ + lsl x5, x13, #32; \ + add x13, x5, x13; \ + mov x5, #-4294967295; \ + umulh x5, x5, x13; \ + mov x4, #4294967295; \ + mul x3, x4, x13; \ + umulh x4, x4, x13; \ + adds x5, x5, x3; \ + adcs x4, x4, x13; \ + adc x3, xzr, xzr; \ + subs x2, x2, x5; \ + sbcs x9, x9, x4; \ + sbcs x10, x10, x3; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbc x13, x13, xzr; \ + adds x2, x2, x14; \ + adcs x9, x9, x15; \ + adcs x10, x10, x16; \ + adcs x11, x11, x17; \ + adcs x12, x12, x19; \ + adcs x13, x13, x20; \ + adc x6, xzr, xzr; \ + mov x8, #-4294967295; \ + adds x14, x2, x8; \ + mov x8, #4294967295; \ + adcs x15, x9, x8; \ + mov x8, #1; \ + adcs x16, x10, x8; \ + adcs x17, x11, xzr; \ + adcs x19, x12, xzr; \ + adcs x20, x13, xzr; \ + adcs x6, x6, xzr; \ + csel x2, x2, x14, eq; \ + csel x9, x9, x15, eq; \ + csel x10, x10, x16, eq; \ + csel x11, x11, x17, eq; \ + csel x12, x12, x19, eq; \ + csel x13, x13, x20, eq; \ + stp x2, x9, [P0]; \ + stp x10, x11, [P0+16]; \ + stp x12, x13, [P0+32] + +// Almost-Montgomery variant which we use when an input to other muls +// with the other argument fully reduced (which is always safe). In +// fact, with the Karatsuba-based Montgomery mul here, we don't even +// *need* the restriction that the other argument is reduced. + +#define amontsqr_p384(P0,P1) \ + ldp x2, x3, [P1]; \ + mul x9, x2, x3; \ + umulh x10, x2, x3; \ + ldp x4, x5, [P1+16]; \ + mul x8, x2, x4; \ + adds x10, x10, x8; \ + mul x11, x2, x5; \ + mul x8, x3, x4; \ + adcs x11, x11, x8; \ + umulh x12, x2, x5; \ + mul x8, x3, x5; \ + adcs x12, x12, x8; \ + ldp x6, x7, [P1+32]; \ + mul x13, x2, x7; \ + mul x8, x3, x6; \ + adcs x13, x13, x8; \ + umulh x14, x2, x7; \ + mul x8, x3, x7; \ + adcs x14, x14, x8; \ + mul x15, x5, x6; \ + adcs x15, x15, xzr; \ + umulh x16, x5, x6; \ + adc x16, x16, xzr; \ + umulh x8, x2, x4; \ + adds x11, x11, x8; \ + umulh x8, x3, x4; \ + adcs x12, x12, x8; \ + umulh x8, x3, x5; \ + adcs x13, x13, x8; \ + umulh x8, x3, x6; \ + adcs x14, x14, x8; \ + umulh x8, x3, x7; \ + adcs x15, x15, x8; \ + adc x16, x16, xzr; \ + mul x8, x2, x6; \ + adds x12, x12, x8; \ + mul x8, x4, x5; \ + adcs x13, x13, x8; \ + mul x8, x4, x6; \ + adcs x14, x14, x8; \ + mul x8, x4, x7; \ + adcs x15, x15, x8; \ + mul x8, x5, x7; \ + adcs x16, x16, x8; \ + mul x17, x6, x7; \ + adcs x17, x17, xzr; \ + umulh x19, x6, x7; \ + adc x19, x19, xzr; \ + umulh x8, x2, x6; \ + adds x13, x13, x8; \ + umulh x8, x4, x5; \ + adcs x14, x14, x8; \ + umulh x8, x4, x6; \ + adcs x15, x15, x8; \ + umulh x8, x4, x7; \ + adcs x16, x16, x8; \ + umulh x8, x5, x7; \ + adcs x17, x17, x8; \ + adc x19, x19, xzr; \ + adds x9, x9, x9; \ + adcs x10, x10, x10; \ + adcs x11, x11, x11; \ + adcs x12, x12, x12; \ + adcs x13, x13, x13; \ + adcs x14, x14, x14; \ + adcs x15, x15, x15; \ + adcs x16, x16, x16; \ + adcs x17, x17, x17; \ + adcs x19, x19, x19; \ + cset x20, hs; \ + umulh x8, x2, x2; \ + mul x2, x2, x2; \ + adds x9, x9, x8; \ + mul x8, x3, x3; \ + adcs x10, x10, x8; \ + umulh x8, x3, x3; \ + adcs x11, x11, x8; \ + mul x8, x4, x4; \ + adcs x12, x12, x8; \ + umulh x8, x4, x4; \ + adcs x13, x13, x8; \ + mul x8, x5, x5; \ + adcs x14, x14, x8; \ + umulh x8, x5, x5; \ + adcs x15, x15, x8; \ + mul x8, x6, x6; \ + adcs x16, x16, x8; \ + umulh x8, x6, x6; \ + adcs x17, x17, x8; \ + mul x8, x7, x7; \ + adcs x19, x19, x8; \ + umulh x8, x7, x7; \ + adc x20, x20, x8; \ + lsl x5, x2, #32; \ + add x2, x5, x2; \ + mov x5, #-4294967295; \ + umulh x5, x5, x2; \ + mov x4, #4294967295; \ + mul x3, x4, x2; \ + umulh x4, x4, x2; \ + adds x5, x5, x3; \ + adcs x4, x4, x2; \ + adc x3, xzr, xzr; \ + subs x9, x9, x5; \ + sbcs x10, x10, x4; \ + sbcs x11, x11, x3; \ + sbcs x12, x12, xzr; \ + sbcs x13, x13, xzr; \ + sbc x2, x2, xzr; \ + lsl x5, x9, #32; \ + add x9, x5, x9; \ + mov x5, #-4294967295; \ + umulh x5, x5, x9; \ + mov x4, #4294967295; \ + mul x3, x4, x9; \ + umulh x4, x4, x9; \ + adds x5, x5, x3; \ + adcs x4, x4, x9; \ + adc x3, xzr, xzr; \ + subs x10, x10, x5; \ + sbcs x11, x11, x4; \ + sbcs x12, x12, x3; \ + sbcs x13, x13, xzr; \ + sbcs x2, x2, xzr; \ + sbc x9, x9, xzr; \ + lsl x5, x10, #32; \ + add x10, x5, x10; \ + mov x5, #-4294967295; \ + umulh x5, x5, x10; \ + mov x4, #4294967295; \ + mul x3, x4, x10; \ + umulh x4, x4, x10; \ + adds x5, x5, x3; \ + adcs x4, x4, x10; \ + adc x3, xzr, xzr; \ + subs x11, x11, x5; \ + sbcs x12, x12, x4; \ + sbcs x13, x13, x3; \ + sbcs x2, x2, xzr; \ + sbcs x9, x9, xzr; \ + sbc x10, x10, xzr; \ + lsl x5, x11, #32; \ + add x11, x5, x11; \ + mov x5, #-4294967295; \ + umulh x5, x5, x11; \ + mov x4, #4294967295; \ + mul x3, x4, x11; \ + umulh x4, x4, x11; \ + adds x5, x5, x3; \ + adcs x4, x4, x11; \ + adc x3, xzr, xzr; \ + subs x12, x12, x5; \ + sbcs x13, x13, x4; \ + sbcs x2, x2, x3; \ + sbcs x9, x9, xzr; \ + sbcs x10, x10, xzr; \ + sbc x11, x11, xzr; \ + lsl x5, x12, #32; \ + add x12, x5, x12; \ + mov x5, #-4294967295; \ + umulh x5, x5, x12; \ + mov x4, #4294967295; \ + mul x3, x4, x12; \ + umulh x4, x4, x12; \ + adds x5, x5, x3; \ + adcs x4, x4, x12; \ + adc x3, xzr, xzr; \ + subs x13, x13, x5; \ + sbcs x2, x2, x4; \ + sbcs x9, x9, x3; \ + sbcs x10, x10, xzr; \ + sbcs x11, x11, xzr; \ + sbc x12, x12, xzr; \ + lsl x5, x13, #32; \ + add x13, x5, x13; \ + mov x5, #-4294967295; \ + umulh x5, x5, x13; \ + mov x4, #4294967295; \ + mul x3, x4, x13; \ + umulh x4, x4, x13; \ + adds x5, x5, x3; \ + adcs x4, x4, x13; \ + adc x3, xzr, xzr; \ + subs x2, x2, x5; \ + sbcs x9, x9, x4; \ + sbcs x10, x10, x3; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbc x13, x13, xzr; \ + adds x2, x2, x14; \ + adcs x9, x9, x15; \ + adcs x10, x10, x16; \ + adcs x11, x11, x17; \ + adcs x12, x12, x19; \ + adcs x13, x13, x20; \ + mov x14, #-4294967295; \ + mov x15, #4294967295; \ + csel x14, x14, xzr, cs; \ + csel x15, x15, xzr, cs; \ + cset x16, cs; \ + adds x2, x2, x14; \ + adcs x9, x9, x15; \ + adcs x10, x10, x16; \ + adcs x11, x11, xzr; \ + adcs x12, x12, xzr; \ + adc x13, x13, xzr; \ + stp x2, x9, [P0]; \ + stp x10, x11, [P0+16]; \ + stp x12, x13, [P0+32] + +// Corresponds exactly to bignum_sub_p384 + +#define sub_p384(P0,P1,P2) \ + ldp x5, x6, [P1]; \ + ldp x4, x3, [P2]; \ + subs x5, x5, x4; \ + sbcs x6, x6, x3; \ + ldp x7, x8, [P1+16]; \ + ldp x4, x3, [P2+16]; \ + sbcs x7, x7, x4; \ + sbcs x8, x8, x3; \ + ldp x9, x10, [P1+32]; \ + ldp x4, x3, [P2+32]; \ + sbcs x9, x9, x4; \ + sbcs x10, x10, x3; \ + csetm x3, lo; \ + mov x4, #4294967295; \ + and x4, x4, x3; \ + adds x5, x5, x4; \ + eor x4, x4, x3; \ + adcs x6, x6, x4; \ + mov x4, #-2; \ + and x4, x4, x3; \ + adcs x7, x7, x4; \ + adcs x8, x8, x3; \ + adcs x9, x9, x3; \ + adc x10, x10, x3; \ + stp x5, x6, [P0]; \ + stp x7, x8, [P0+16]; \ + stp x9, x10, [P0+32] + +S2N_BN_SYMBOL(p384_montjmixadd_alt): + +// Save regs and make room on stack for temporary variables + + stp x19, x20, [sp, #-16]! + stp x21, x22, [sp, #-16]! + stp x23, x24, [sp, #-16]! + stp x25, x26, [sp, #-16]! + sub sp, sp, NSPACE + +// Move the input arguments to stable places + + mov input_z, x0 + mov input_x, x1 + mov input_y, x2 + +// Main code, just a sequence of basic field operations +// 8 * multiply + 3 * square + 7 * subtract + + amontsqr_p384(zp2,z_1) + montmul_p384(y2a,z_1,y_2) + + montmul_p384(x2a,zp2,x_2) + montmul_p384(y2a,zp2,y2a) + + sub_p384(xd,x2a,x_1) + sub_p384(yd,y2a,y_1) + + amontsqr_p384(zz,xd) + montsqr_p384(ww,yd) + + montmul_p384(zzx1,zz,x_1) + montmul_p384(zzx2,zz,x2a) + + sub_p384(resx,ww,zzx1) + sub_p384(t1,zzx2,zzx1) + + montmul_p384(resz,xd,z_1) + + sub_p384(resx,resx,zzx2) + + sub_p384(t2,zzx1,resx) + + montmul_p384(t1,t1,y_1) + montmul_p384(t2,yd,t2) + + sub_p384(resy,t2,t1) + +// Test if z_1 = 0 to decide if p1 = 0 (up to projective equivalence) + + ldp x0, x1, [z_1] + ldp x2, x3, [z_1+16] + ldp x4, x5, [z_1+32] + orr x6, x0, x1 + orr x7, x2, x3 + orr x8, x4, x5 + orr x6, x6, x7 + orr x6, x6, x8 + cmp x6, xzr + +// Multiplex: if p1 <> 0 just copy the computed result from the staging area. +// If p1 = 0 then return the point p2 augmented with a z = 1 coordinate (in +// Montgomery form so not the simple constant 1 but rather 2^384 - p_384), +// hence giving 0 + p2 = p2 for the final result. + + ldp x0, x1, [resx] + ldp x19, x20, [x_2] + csel x0, x0, x19, ne + csel x1, x1, x20, ne + ldp x2, x3, [resx+16] + ldp x19, x20, [x_2+16] + csel x2, x2, x19, ne + csel x3, x3, x20, ne + ldp x4, x5, [resx+32] + ldp x19, x20, [x_2+32] + csel x4, x4, x19, ne + csel x5, x5, x20, ne + + ldp x6, x7, [resy] + ldp x19, x20, [y_2] + csel x6, x6, x19, ne + csel x7, x7, x20, ne + ldp x8, x9, [resy+16] + ldp x19, x20, [y_2+16] + csel x8, x8, x19, ne + csel x9, x9, x20, ne + ldp x10, x11, [resy+32] + ldp x19, x20, [y_2+32] + csel x10, x10, x19, ne + csel x11, x11, x20, ne + + ldp x12, x13, [resz] + mov x19, #0xffffffff00000001 + mov x20, #0x00000000ffffffff + csel x12, x12, x19, ne + csel x13, x13, x20, ne + ldp x14, x15, [resz+16] + mov x19, #1 + csel x14, x14, x19, ne + csel x15, x15, xzr, ne + ldp x16, x17, [resz+32] + csel x16, x16, xzr, ne + csel x17, x17, xzr, ne + + stp x0, x1, [x_3] + stp x2, x3, [x_3+16] + stp x4, x5, [x_3+32] + stp x6, x7, [y_3] + stp x8, x9, [y_3+16] + stp x10, x11, [y_3+32] + stp x12, x13, [z_3] + stp x14, x15, [z_3+16] + stp x16, x17, [z_3+32] + +// Restore stack and registers + + add sp, sp, NSPACE + + ldp x25, x26, [sp], 16 + ldp x23, x24, [sp], 16 + ldp x21, x22, [sp], 16 + ldp x19, x20, [sp], 16 + + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack, "", %progbits +#endif diff --git a/third_party/s2n-bignum/arm/p521/Makefile b/third_party/s2n-bignum/arm/p521/Makefile index ae0d4f8d70..3e5e0e855c 100644 --- a/third_party/s2n-bignum/arm/p521/Makefile +++ b/third_party/s2n-bignum/arm/p521/Makefile @@ -32,21 +32,28 @@ OBJ = bignum_add_p521.o \ bignum_mod_p521_9.o \ bignum_montmul_p521.o \ bignum_montmul_p521_alt.o \ + bignum_montmul_p521_neon.o \ bignum_montsqr_p521.o \ bignum_montsqr_p521_alt.o \ + bignum_montsqr_p521_neon.o \ bignum_mul_p521.o \ bignum_mul_p521_alt.o \ + bignum_mul_p521_neon.o \ bignum_neg_p521.o \ bignum_optneg_p521.o \ bignum_sqr_p521.o \ bignum_sqr_p521_alt.o \ + bignum_sqr_p521_neon.o \ bignum_sub_p521.o \ bignum_tolebytes_p521.o \ bignum_tomont_p521.o \ bignum_triple_p521.o \ p521_jadd.o \ + p521_jadd_alt.o \ p521_jdouble.o \ - p521_jmixadd.o + p521_jdouble_alt.o \ + p521_jmixadd.o \ + p521_jmixadd_alt.o %.o : %.S ; $(CC) -E -I../../include $< | $(GAS) -o $@ - diff --git a/third_party/s2n-bignum/arm/p521/bignum_montmul_p521_neon.S b/third_party/s2n-bignum/arm/p521/bignum_montmul_p521_neon.S new file mode 100644 index 0000000000..9586339f95 --- /dev/null +++ b/third_party/s2n-bignum/arm/p521/bignum_montmul_p521_neon.S @@ -0,0 +1,1415 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Montgomery multiply, z := (x * y / 2^576) mod p_521 +// Inputs x[9], y[9]; output z[9] +// +// extern void bignum_montmul_p521_neon +// (uint64_t z[static 9], uint64_t x[static 9], uint64_t y[static 9]); +// +// Does z := (x * y / 2^576) mod p_521, assuming x < p_521, y < p_521. This +// means the Montgomery base is the "native size" 2^{9*64} = 2^576; since +// p_521 is a Mersenne prime the basic modular multiplication bignum_mul_p521 +// can be considered a Montgomery operation to base 2^521. +// +// Standard ARM ABI: X0 = z, X1 = x, X2 = y +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + +// bignum_montmul_p521_neon is functionally equivalent to bignum_montmul_p521. +// It is written in a way that +// 1. A subset of scalar multiplications in bignum_montmul_p384 are carefully +// chosen and vectorized +// 2. The vectorized assembly is rescheduled using the SLOTHY superoptimizer. +// https://github.com/slothy-optimizer/slothy +// +// The output program of step 1. is as follows: +// +// stp x19, x20, [sp, #-16]! +// stp x21, x22, [sp, #-16]! +// stp x23, x24, [sp, #-16]! +// stp x25, x26, [sp, #-16]! +// sub sp, sp, #80 +// ldp x14, x7, [x1] +// ldp x3, x25, [x1, #16] +// ldp x10, x24, [x2] +// ldr q0, [x1] +// ldr q25, [x2] +// ldp x12, x6, [x2, #16] +// movi v18.2D, #0x00000000ffffffff +// uzp2 v3.4S, v25.4S, v25.4S +// xtn v26.2S, v0.2D +// xtn v22.2S, v25.2D +// rev64 v24.4S, v25.4S +// umull v19.2D, v26.2S, v22.2S +// umull v25.2D, v26.2S, v3.2S +// uzp2 v20.4S, v0.4S, v0.4S +// mul v0.4S, v24.4S, v0.4S +// usra v25.2D, v19.2D, #32 +// umull v6.2D, v20.2S, v3.2S +// uaddlp v0.2D, v0.4S +// and v18.16B, v25.16B, v18.16B +// umlal v18.2D, v20.2S, v22.2S +// shl v0.2D, v0.2D, #32 +// usra v6.2D, v25.2D, #32 +// umlal v0.2D, v26.2S, v22.2S +// usra v6.2D, v18.2D, #32 +// mov x23, v0.d[0] +// mov x16, v0.d[1] +// mul x5, x3, x12 +// mul x21, x25, x6 +// mov x19, v6.d[0] +// adds x16, x16, x19 +// mov x19, v6.d[1] +// adcs x5, x5, x19 +// umulh x19, x3, x12 +// adcs x21, x21, x19 +// umulh x19, x25, x6 +// adc x19, x19, xzr +// adds x8, x16, x23 +// adcs x16, x5, x16 +// adcs x5, x21, x5 +// adcs x21, x19, x21 +// adc x19, xzr, x19 +// adds x11, x16, x23 +// adcs x15, x5, x8 +// adcs x16, x21, x16 +// adcs x5, x19, x5 +// adcs x21, xzr, x21 +// adc x19, xzr, x19 +// subs x20, x3, x25 +// cneg x20, x20, cc +// csetm x9, cc +// subs x13, x6, x12 +// cneg x13, x13, cc +// mul x26, x20, x13 +// umulh x20, x20, x13 +// cinv x9, x9, cc +// cmn x9, #0x1 +// eor x13, x26, x9 +// adcs x5, x5, x13 +// eor x20, x20, x9 +// adcs x21, x21, x20 +// adc x19, x19, x9 +// subs x20, x14, x7 +// cneg x20, x20, cc +// csetm x9, cc +// subs x13, x24, x10 +// cneg x13, x13, cc +// mul x26, x20, x13 +// umulh x20, x20, x13 +// cinv x9, x9, cc +// cmn x9, #0x1 +// eor x13, x26, x9 +// adcs x8, x8, x13 +// eor x20, x20, x9 +// adcs x11, x11, x20 +// adcs x15, x15, x9 +// adcs x16, x16, x9 +// adcs x5, x5, x9 +// adcs x21, x21, x9 +// adc x19, x19, x9 +// subs x20, x7, x25 +// cneg x20, x20, cc +// csetm x9, cc +// subs x13, x6, x24 +// cneg x13, x13, cc +// mul x26, x20, x13 +// umulh x20, x20, x13 +// cinv x9, x9, cc +// cmn x9, #0x1 +// eor x13, x26, x9 +// adcs x16, x16, x13 +// eor x20, x20, x9 +// adcs x5, x5, x20 +// adcs x21, x21, x9 +// adc x19, x19, x9 +// subs x20, x14, x3 +// cneg x20, x20, cc +// csetm x9, cc +// subs x13, x12, x10 +// cneg x13, x13, cc +// mul x26, x20, x13 +// umulh x20, x20, x13 +// cinv x9, x9, cc +// cmn x9, #0x1 +// eor x13, x26, x9 +// adcs x11, x11, x13 +// eor x20, x20, x9 +// adcs x15, x15, x20 +// adcs x16, x16, x9 +// adcs x5, x5, x9 +// adcs x21, x21, x9 +// adc x19, x19, x9 +// subs x25, x14, x25 +// cneg x25, x25, cc +// csetm x20, cc +// subs x10, x6, x10 +// cneg x10, x10, cc +// mul x6, x25, x10 +// umulh x25, x25, x10 +// cinv x10, x20, cc +// cmn x10, #0x1 +// eor x6, x6, x10 +// adcs x6, x15, x6 +// eor x25, x25, x10 +// adcs x25, x16, x25 +// adcs x16, x5, x10 +// adcs x5, x21, x10 +// adc x10, x19, x10 +// subs x7, x7, x3 +// cneg x7, x7, cc +// csetm x3, cc +// subs x24, x12, x24 +// cneg x24, x24, cc +// mul x12, x7, x24 +// umulh x7, x7, x24 +// cinv x3, x3, cc +// cmn x3, #0x1 +// eor x24, x12, x3 +// adcs x24, x6, x24 +// eor x7, x7, x3 +// adcs x7, x25, x7 +// adcs x25, x16, x3 +// adcs x12, x5, x3 +// adc x3, x10, x3 +// lsl x10, x23, #9 +// extr x6, x8, x23, #55 +// extr x23, x11, x8, #55 +// extr x16, x24, x11, #55 +// lsr x24, x24, #55 +// stp x7, x25, [sp] // @slothy:writes=stack0 +// stp x12, x3, [sp, #16] // @slothy:writes=stack16 +// stp x10, x6, [sp, #32] // @slothy:writes=stack32 +// stp x23, x16, [sp, #48] // @slothy:writes=stack48 +// str x24, [sp, #64] // @slothy:writes=stack64 +// ldp x7, x3, [x1, #32] +// ldr q0, [x1, #32] +// ldp x25, x10, [x1, #48] +// ldp x24, x12, [x2, #32] +// ldr q25, [x2, #32] +// ldp x6, x23, [x2, #48] +// ldr q18, [x1, #48] +// ldr q3, [x2, #48] +// uzp1 v26.4S, v25.4S, v0.4S +// rev64 v25.4S, v25.4S +// uzp1 v22.4S, v0.4S, v0.4S +// mul v0.4S, v25.4S, v0.4S +// uaddlp v0.2D, v0.4S +// shl v0.2D, v0.2D, #32 +// umlal v0.2D, v22.2S, v26.2S +// mov x16, v0.d[0] +// mov x5, v0.d[1] +// movi v0.2D, #0x00000000ffffffff +// uzp2 v25.4S, v3.4S, v3.4S +// xtn v26.2S, v18.2D +// xtn v22.2S, v3.2D +// rev64 v24.4S, v3.4S +// umull v19.2D, v26.2S, v22.2S +// umull v3.2D, v26.2S, v25.2S +// uzp2 v20.4S, v18.4S, v18.4S +// mul v18.4S, v24.4S, v18.4S +// usra v3.2D, v19.2D, #32 +// umull v6.2D, v20.2S, v25.2S +// uaddlp v25.2D, v18.4S +// and v0.16B, v3.16B, v0.16B +// umlal v0.2D, v20.2S, v22.2S +// shl v25.2D, v25.2D, #32 +// usra v6.2D, v3.2D, #32 +// umlal v25.2D, v26.2S, v22.2S +// usra v6.2D, v0.2D, #32 +// mov x21, v25.d[0] +// mov x19, v25.d[1] +// umulh x8, x7, x24 +// adds x5, x5, x8 +// umulh x8, x3, x12 +// adcs x21, x21, x8 +// mov x8, v6.d[0] +// adcs x19, x19, x8 +// mov x8, v6.d[1] +// adc x8, x8, xzr +// adds x11, x5, x16 +// adcs x5, x21, x5 +// adcs x21, x19, x21 +// adcs x19, x8, x19 +// adc x8, xzr, x8 +// adds x15, x5, x16 +// adcs x20, x21, x11 +// adcs x5, x19, x5 +// adcs x21, x8, x21 +// adcs x19, xzr, x19 +// adc x8, xzr, x8 +// subs x9, x25, x10 +// cneg x9, x9, cc +// csetm x13, cc +// subs x26, x23, x6 +// cneg x26, x26, cc +// mul x22, x9, x26 +// umulh x9, x9, x26 +// cinv x13, x13, cc +// cmn x13, #0x1 +// eor x26, x22, x13 +// adcs x21, x21, x26 +// eor x9, x9, x13 +// adcs x19, x19, x9 +// adc x8, x8, x13 +// subs x9, x7, x3 +// cneg x9, x9, cc +// csetm x13, cc +// subs x26, x12, x24 +// cneg x26, x26, cc +// mul x22, x9, x26 +// umulh x9, x9, x26 +// cinv x13, x13, cc +// cmn x13, #0x1 +// eor x26, x22, x13 +// adcs x11, x11, x26 +// eor x9, x9, x13 +// adcs x15, x15, x9 +// adcs x20, x20, x13 +// adcs x5, x5, x13 +// adcs x21, x21, x13 +// adcs x19, x19, x13 +// adc x8, x8, x13 +// subs x9, x3, x10 +// cneg x9, x9, cc +// csetm x13, cc +// subs x26, x23, x12 +// cneg x26, x26, cc +// mul x22, x9, x26 +// umulh x9, x9, x26 +// cinv x13, x13, cc +// cmn x13, #0x1 +// eor x26, x22, x13 +// adcs x5, x5, x26 +// eor x9, x9, x13 +// adcs x14, x21, x9 +// adcs x21, x19, x13 +// adc x19, x8, x13 +// subs x9, x7, x25 +// cneg x8, x9, cc +// csetm x9, cc +// subs x13, x6, x24 +// cneg x13, x13, cc +// mul x26, x8, x13 +// umulh x8, x8, x13 +// cinv x9, x9, cc +// cmn x9, #0x1 +// eor x13, x26, x9 +// adcs x15, x15, x13 +// eor x8, x8, x9 +// adcs x8, x20, x8 +// adcs x5, x5, x9 +// adcs x20, x14, x9 +// adcs x21, x21, x9 +// adc x19, x19, x9 +// subs x9, x7, x10 +// cneg x9, x9, cc +// csetm x13, cc +// subs x26, x23, x24 +// cneg x26, x26, cc +// mul x22, x9, x26 +// umulh x9, x9, x26 +// cinv x13, x13, cc +// cmn x13, #0x1 +// eor x26, x22, x13 +// adcs x8, x8, x26 +// eor x9, x9, x13 +// adcs x5, x5, x9 +// adcs x20, x20, x13 +// adcs x21, x21, x13 +// adc x19, x19, x13 +// subs x9, x3, x25 +// cneg x9, x9, cc +// csetm x13, cc +// subs x26, x6, x12 +// cneg x26, x26, cc +// mul x22, x9, x26 +// umulh x9, x9, x26 +// cinv x13, x13, cc +// cmn x13, #0x1 +// eor x26, x22, x13 +// adcs x8, x8, x26 +// eor x9, x9, x13 +// adcs x5, x5, x9 +// adcs x20, x20, x13 +// adcs x21, x21, x13 +// adc x19, x19, x13 +// ldp x9, x13, [sp] // @slothy:reads=stack0 +// adds x16, x16, x9 +// adcs x11, x11, x13 +// stp x16, x11, [sp] // @slothy:writes=stack0 +// ldp x16, x11, [sp, #16] // @slothy:reads=stack16 +// adcs x16, x15, x16 +// adcs x8, x8, x11 +// stp x16, x8, [sp, #16] // @slothy:writes=stack16 +// ldp x16, x8, [sp, #32] // @slothy:reads=stack32 +// adcs x16, x5, x16 +// adcs x5, x20, x8 +// stp x16, x5, [sp, #32] // @slothy:writes=stack32 +// ldp x16, x5, [sp, #48] // @slothy:reads=stack48 +// adcs x16, x21, x16 +// adcs x5, x19, x5 +// stp x16, x5, [sp, #48] // @slothy:writes=stack48 +// ldr x16, [sp, #64] // @slothy:reads=stack64 +// adc x16, x16, xzr +// str x16, [sp, #64] // @slothy:writes=stack64 +// ldp x16, x5, [x1] +// subs x7, x7, x16 +// sbcs x3, x3, x5 +// ldp x16, x5, [x1, #16] +// sbcs x25, x25, x16 +// sbcs x10, x10, x5 +// csetm x16, cc +// ldp x5, x21, [x2] +// subs x24, x5, x24 +// sbcs x12, x21, x12 +// ldp x5, x19, [x2, #16] +// sbcs x6, x5, x6 +// sbcs x23, x19, x23 +// csetm x5, cc +// eor x7, x7, x16 +// subs x7, x7, x16 +// eor x3, x3, x16 +// sbcs x3, x3, x16 +// eor x25, x25, x16 +// sbcs x25, x25, x16 +// eor x10, x10, x16 +// sbc x10, x10, x16 +// eor x24, x24, x5 +// subs x24, x24, x5 +// eor x12, x12, x5 +// sbcs x12, x12, x5 +// eor x6, x6, x5 +// sbcs x6, x6, x5 +// eor x23, x23, x5 +// sbc x23, x23, x5 +// eor x16, x5, x16 +// mul x21, x7, x24 +// mul x5, x3, x12 +// mul x19, x25, x6 +// mul x8, x10, x23 +// umulh x11, x7, x24 +// adds x5, x5, x11 +// umulh x11, x3, x12 +// adcs x19, x19, x11 +// umulh x11, x25, x6 +// adcs x8, x8, x11 +// umulh x11, x10, x23 +// adc x11, x11, xzr +// adds x15, x5, x21 +// adcs x5, x19, x5 +// adcs x19, x8, x19 +// adcs x8, x11, x8 +// adc x11, xzr, x11 +// adds x20, x5, x21 +// adcs x9, x19, x15 +// adcs x5, x8, x5 +// adcs x19, x11, x19 +// adcs x8, xzr, x8 +// adc x11, xzr, x11 +// subs x13, x25, x10 +// cneg x13, x13, cc +// csetm x26, cc +// subs x22, x23, x6 +// cneg x22, x22, cc +// mul x4, x13, x22 +// umulh x13, x13, x22 +// cinv x26, x26, cc +// cmn x26, #0x1 +// eor x22, x4, x26 +// adcs x19, x19, x22 +// eor x13, x13, x26 +// adcs x8, x8, x13 +// adc x11, x11, x26 +// subs x13, x7, x3 +// cneg x13, x13, cc +// csetm x26, cc +// subs x22, x12, x24 +// cneg x22, x22, cc +// mul x4, x13, x22 +// umulh x13, x13, x22 +// cinv x26, x26, cc +// cmn x26, #0x1 +// eor x22, x4, x26 +// adcs x15, x15, x22 +// eor x13, x13, x26 +// adcs x20, x20, x13 +// adcs x9, x9, x26 +// adcs x5, x5, x26 +// adcs x19, x19, x26 +// adcs x8, x8, x26 +// adc x11, x11, x26 +// subs x13, x3, x10 +// cneg x13, x13, cc +// csetm x26, cc +// subs x22, x23, x12 +// cneg x22, x22, cc +// mul x4, x13, x22 +// umulh x13, x13, x22 +// cinv x26, x26, cc +// cmn x26, #0x1 +// eor x22, x4, x26 +// adcs x5, x5, x22 +// eor x13, x13, x26 +// adcs x19, x19, x13 +// adcs x8, x8, x26 +// adc x11, x11, x26 +// subs x13, x7, x25 +// cneg x13, x13, cc +// csetm x26, cc +// subs x22, x6, x24 +// cneg x22, x22, cc +// mul x4, x13, x22 +// umulh x13, x13, x22 +// cinv x26, x26, cc +// cmn x26, #0x1 +// eor x22, x4, x26 +// adcs x20, x20, x22 +// eor x13, x13, x26 +// adcs x9, x9, x13 +// adcs x5, x5, x26 +// adcs x19, x19, x26 +// adcs x8, x8, x26 +// adc x11, x11, x26 +// subs x7, x7, x10 +// cneg x7, x7, cc +// csetm x10, cc +// subs x24, x23, x24 +// cneg x24, x24, cc +// mul x23, x7, x24 +// umulh x7, x7, x24 +// cinv x10, x10, cc +// cmn x10, #0x1 +// eor x24, x23, x10 +// adcs x24, x9, x24 +// eor x7, x7, x10 +// adcs x7, x5, x7 +// adcs x23, x19, x10 +// adcs x5, x8, x10 +// adc x10, x11, x10 +// subs x3, x3, x25 +// cneg x3, x3, cc +// csetm x25, cc +// subs x12, x6, x12 +// cneg x12, x12, cc +// mul x6, x3, x12 +// umulh x3, x3, x12 +// cinv x25, x25, cc +// cmn x25, #0x1 +// eor x12, x6, x25 +// adcs x24, x24, x12 +// eor x3, x3, x25 +// adcs x7, x7, x3 +// adcs x3, x23, x25 +// adcs x12, x5, x25 +// adc x25, x10, x25 +// ldp x10, x6, [sp] // @slothy:reads=stack0 +// ldp x23, x5, [sp, #16] // @slothy:reads=stack16 +// eor x21, x21, x16 +// adds x21, x21, x10 +// eor x19, x15, x16 +// adcs x19, x19, x6 +// eor x8, x20, x16 +// adcs x8, x8, x23 +// eor x24, x24, x16 +// adcs x24, x24, x5 +// eor x7, x7, x16 +// ldp x11, x15, [sp, #32] // @slothy:reads=stack32 +// ldp x20, x9, [sp, #48] // @slothy:reads=stack48 +// ldr x13, [sp, #64] // @slothy:reads=stack64 +// adcs x7, x7, x11 +// eor x3, x3, x16 +// adcs x3, x3, x15 +// eor x12, x12, x16 +// adcs x12, x12, x20 +// eor x25, x25, x16 +// adcs x25, x25, x9 +// adc x26, x13, xzr +// adds x7, x7, x10 +// adcs x3, x3, x6 +// adcs x10, x12, x23 +// adcs x25, x25, x5 +// and x12, x16, #0x1ff +// lsl x6, x21, #9 +// orr x12, x6, x12 +// adcs x12, x11, x12 +// extr x6, x19, x21, #55 +// adcs x6, x15, x6 +// extr x23, x8, x19, #55 +// adcs x23, x20, x23 +// extr x16, x24, x8, #55 +// adcs x16, x9, x16 +// lsr x24, x24, #55 +// adc x24, x24, x13 +// ldr x5, [x2, #64] +// ldp x21, x19, [x1] +// and x8, x21, #0xfffffffffffff +// mul x8, x5, x8 +// ldr x11, [x1, #64] +// ldp x15, x20, [x2] +// and x9, x15, #0xfffffffffffff +// mul x9, x11, x9 +// add x8, x8, x9 +// extr x21, x19, x21, #52 +// and x21, x21, #0xfffffffffffff +// mul x21, x5, x21 +// extr x15, x20, x15, #52 +// and x15, x15, #0xfffffffffffff +// mul x15, x11, x15 +// add x21, x21, x15 +// lsr x15, x8, #52 +// add x21, x21, x15 +// lsl x8, x8, #12 +// extr x8, x21, x8, #12 +// adds x7, x7, x8 +// ldp x8, x15, [x1, #16] +// ldp x9, x13, [x2, #16] +// extr x19, x8, x19, #40 +// and x19, x19, #0xfffffffffffff +// mul x19, x5, x19 +// extr x20, x9, x20, #40 +// and x20, x20, #0xfffffffffffff +// mul x20, x11, x20 +// add x19, x19, x20 +// lsr x20, x21, #52 +// add x19, x19, x20 +// lsl x21, x21, #12 +// extr x21, x19, x21, #24 +// adcs x3, x3, x21 +// extr x21, x15, x8, #28 +// and x21, x21, #0xfffffffffffff +// mul x21, x5, x21 +// extr x8, x13, x9, #28 +// and x8, x8, #0xfffffffffffff +// mul x8, x11, x8 +// add x21, x21, x8 +// lsr x8, x19, #52 +// add x21, x21, x8 +// lsl x19, x19, #12 +// extr x19, x21, x19, #36 +// adcs x10, x10, x19 +// and x19, x3, x10 +// ldp x8, x20, [x1, #32] +// ldp x9, x22, [x2, #32] +// extr x15, x8, x15, #16 +// and x15, x15, #0xfffffffffffff +// mul x4, x5, x15 +// extr x15, x9, x13, #16 +// and x15, x15, #0xfffffffffffff +// mul x15, x11, x15 +// add x15, x4, x15 +// lsl x13, x26, #48 +// add x15, x15, x13 +// lsr x13, x21, #52 +// add x15, x15, x13 +// lsl x21, x21, #12 +// extr x21, x15, x21, #48 +// adcs x25, x25, x21 +// and x21, x19, x25 +// lsr x19, x8, #4 +// and x19, x19, #0xfffffffffffff +// mul x19, x5, x19 +// lsr x26, x9, #4 +// and x13, x26, #0xfffffffffffff +// mul x26, x11, x13 +// add x19, x19, x26 +// lsr x13, x15, #52 +// add x19, x19, x13 +// lsl x15, x15, #12 +// extr x15, x19, x15, #60 +// extr x8, x20, x8, #56 +// and x8, x8, #0xfffffffffffff +// mul x8, x5, x8 +// extr x9, x22, x9, #56 +// and x9, x9, #0xfffffffffffff +// mul x9, x11, x9 +// add x8, x8, x9 +// lsr x19, x19, #52 +// add x19, x8, x19 +// lsl x8, x15, #8 +// extr x8, x19, x8, #8 +// adcs x12, x12, x8 +// and x21, x21, x12 +// ldp x1, x8, [x1, #48] +// ldp x2, x15, [x2, #48] +// extr x20, x1, x20, #44 +// and x20, x20, #0xfffffffffffff +// mul x20, x5, x20 +// extr x9, x2, x22, #44 +// and x9, x9, #0xfffffffffffff +// mul x9, x11, x9 +// add x20, x20, x9 +// lsr x9, x19, #52 +// add x22, x20, x9 +// lsl x19, x19, #12 +// extr x19, x22, x19, #20 +// adcs x6, x6, x19 +// and x21, x21, x6 +// extr x1, x8, x1, #32 +// and x1, x1, #0xfffffffffffff +// mul x1, x5, x1 +// extr x2, x15, x2, #32 +// and x2, x2, #0xfffffffffffff +// mul x2, x11, x2 +// add x2, x1, x2 +// lsr x1, x22, #52 +// add x2, x2, x1 +// lsl x1, x22, #12 +// extr x1, x2, x1, #32 +// adcs x23, x23, x1 +// and x21, x21, x23 +// lsr x1, x8, #20 +// mul x1, x5, x1 +// lsr x19, x15, #20 +// mul x19, x11, x19 +// add x1, x1, x19 +// lsr x19, x2, #52 +// add x19, x1, x19 +// lsl x2, x2, #12 +// extr x2, x19, x2, #44 +// adcs x16, x16, x2 +// and x2, x21, x16 +// mul x5, x5, x11 +// lsr x1, x19, #44 +// add x5, x5, x1 +// adc x24, x24, x5 +// lsr x5, x24, #9 +// orr x24, x24, #0xfffffffffffffe00 +// cmp xzr, xzr +// adcs xzr, x7, x5 +// adcs xzr, x2, xzr +// adcs xzr, x24, xzr +// adcs x7, x7, x5 +// adcs x2, x3, xzr +// adcs x10, x10, xzr +// adcs x25, x25, xzr +// adcs x12, x12, xzr +// adcs x6, x6, xzr +// adcs x23, x23, xzr +// adcs x16, x16, xzr +// adc x3, x24, xzr +// stp x2, x10, [x0] // @slothy:writes=buffer0 +// stp x25, x12, [x0, #16] // @slothy:writes=buffer16 +// stp x6, x23, [x0, #32] // @slothy:writes=buffer32 +// lsl x25, x7, #9 +// and x3, x3, #0x1ff +// orr x3, x3, x25 +// stp x16, x3, [x0, #48] // @slothy:writes=buffer48 +// lsr x14, x7, #55 +// str x14, [x0, #64] // @slothy:writes=buffer64 +// add sp, sp, #80 +// ldp x25, x26, [sp], #16 +// ldp x23, x24, [sp], #16 +// ldp x21, x22, [sp], #16 +// ldp x19, x20, [sp], #16 +// ret +// +// The bash script used for step 2 is as follows: +// +// # Store the assembly instructions except the last 'ret', +// # callee-register store/loads and add/sub sp #80 as, say, 'input.S'. +// export OUTPUTS="[hint_buffer0,hint_buffer16,hint_buffer32,hint_buffer48,hint_buffer64]" +// export RESERVED_REGS="[x18,x27,x28,x29,x30,sp,q8,q9,q10,q11,q12,q13,q14,q15,v8,v9,v10,v11,v12,v13,v14,v15]" +// /tools/external/slothy.sh input.S my_out_dir +// # my_out_dir/3.opt.s is the optimized assembly. Its output may differ +// # from this file since the sequence is non-deterministically chosen. +// # Please add 'ret' at the end of the output assembly. + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(bignum_montmul_p521_neon) + S2N_BN_SYM_PRIVACY_DIRECTIVE(bignum_montmul_p521_neon) + .text + .balign 4 + +S2N_BN_SYMBOL(bignum_montmul_p521_neon): + +// Save registers and make space for the temporary buffer + + stp x19, x20, [sp, #-16]! + stp x21, x22, [sp, #-16]! + stp x23, x24, [sp, #-16]! + stp x25, x26, [sp, #-16]! + sub sp, sp, #80 + + ldr q24, [x2] + ldr q21, [x1] + ldr q1, [x2, #48] + ldp x23, x20, [x1, #16] + movi v18.2D, #0x00000000ffffffff + ldp x19, x17, [x2, #16] + uzp2 v3.4S, v24.4S, v24.4S + xtn v6.2S, v21.2D + ldp x11, x22, [x1] + rev64 v5.4S, v24.4S + xtn v24.2S, v24.2D + subs x16, x23, x20 + umull v29.2D, v6.2S, v3.2S + rev64 v31.4S, v1.4S + cneg x26, x16, cc + umull v27.2D, v6.2S, v24.2S + ldr q19, [x1, #48] + csetm x12, cc + mul x15, x20, x17 + mul v26.4S, v5.4S, v21.4S + uzp2 v28.4S, v21.4S, v21.4S + subs x6, x17, x19 + xtn v7.2S, v1.2D + cinv x10, x12, cc + cneg x3, x6, cc + uzp2 v21.4S, v1.4S, v1.4S + umull v1.2D, v28.2S, v3.2S + mul x12, x26, x3 + usra v29.2D, v27.2D, #32 + mul v25.4S, v31.4S, v19.4S + usra v1.2D, v29.2D, #32 + uaddlp v31.2D, v26.4S + umulh x14, x26, x3 + eor x12, x12, x10 + and v26.16B, v29.16B, v18.16B + uaddlp v2.2D, v25.4S + subs x16, x11, x22 + shl v0.2D, v31.2D, #32 + xtn v31.2S, v19.2D + cneg x6, x16, cc + shl v16.2D, v2.2D, #32 + umlal v26.2D, v28.2S, v24.2S + umlal v0.2D, v6.2S, v24.2S + uzp2 v30.4S, v19.4S, v19.4S + umulh x26, x20, x17 + umull v22.2D, v31.2S, v21.2S + umull v29.2D, v30.2S, v21.2S + usra v1.2D, v26.2D, #32 + mul x13, x23, x19 + eor x9, x14, x10 + ldr q5, [x2, #32] + umull v26.2D, v31.2S, v7.2S + ldp x21, x4, [x2] + csetm x8, cc + mov x16, v0.d[1] + ldr q6, [x1, #32] + umlal v16.2D, v31.2S, v7.2S + mov x3, v0.d[0] + umulh x14, x23, x19 + mov x25, v1.d[1] + mov x5, v1.d[0] + usra v22.2D, v26.2D, #32 + rev64 v3.4S, v5.4S + adds x16, x16, x5 + uzp1 v24.4S, v5.4S, v6.4S + movi v26.2D, #0x00000000ffffffff + adcs x7, x13, x25 + uzp1 v0.4S, v6.4S, v6.4S + mul v5.4S, v3.4S, v6.4S + adcs x25, x15, x14 + adc x13, x26, xzr + adds x26, x16, x3 + and v6.16B, v22.16B, v26.16B + usra v29.2D, v22.2D, #32 + adcs x16, x7, x16 + adcs x14, x25, x7 + umlal v6.2D, v30.2S, v7.2S + adcs x7, x13, x25 + uaddlp v7.2D, v5.4S + adc x13, xzr, x13 + adds x25, x16, x3 + adcs x24, x14, x26 + shl v1.2D, v7.2D, #32 + adcs x5, x7, x16 + usra v29.2D, v6.2D, #32 + adcs x16, x13, x14 + umlal v1.2D, v0.2S, v24.2S + adcs x14, xzr, x7 + adc x13, xzr, x13 + subs x7, x4, x21 + cneg x7, x7, cc + mul x15, x6, x7 + umulh x7, x6, x7 + cinv x6, x8, cc + cmn x10, #0x1 + adcs x16, x16, x12 + eor x8, x15, x6 + adcs x14, x14, x9 + adc x9, x13, x10 + subs x13, x22, x20 + cneg x13, x13, cc + csetm x10, cc + subs x12, x17, x4 + cinv x15, x10, cc + cneg x10, x12, cc + cmn x6, #0x1 + umulh x12, x13, x10 + eor x7, x7, x6 + adcs x26, x26, x8 + adcs x7, x25, x7 + adcs x8, x24, x6 + adcs x24, x5, x6 + adcs x25, x16, x6 + mul x5, x13, x10 + adcs x13, x14, x6 + adc x14, x9, x6 + subs x10, x11, x23 + csetm x16, cc + cneg x9, x10, cc + subs x6, x19, x21 + cinv x10, x16, cc + cneg x16, x6, cc + eor x5, x5, x15 + subs x20, x11, x20 + mul x6, x9, x16 + csetm x11, cc + cneg x20, x20, cc + subs x17, x17, x21 + cneg x17, x17, cc + cinv x11, x11, cc + umulh x9, x9, x16 + eor x16, x12, x15 + subs x21, x22, x23 + cneg x22, x21, cc + eor x12, x6, x10 + csetm x6, cc + cmn x15, #0x1 + eor x9, x9, x10 + adcs x5, x24, x5 + umulh x23, x20, x17 + lsl x24, x3, #9 + adcs x25, x25, x16 + adcs x21, x13, x15 + adc x16, x14, x15 + subs x13, x19, x4 + cneg x14, x13, cc + cinv x15, x6, cc + cmn x10, #0x1 + mul x13, x20, x17 + extr x17, x26, x3, #55 + adcs x12, x7, x12 + adcs x8, x8, x9 + eor x19, x23, x11 + adcs x6, x5, x10 + eor x13, x13, x11 + mov x5, v29.d[0] + adcs x25, x25, x10 + extr x26, x12, x26, #55 + mul x4, x22, x14 + adcs x7, x21, x10 + stp x24, x17, [sp, #32] + ldp x20, x21, [x1, #48] + adc x24, x16, x10 + cmn x11, #0x1 + mov x16, v16.d[0] + umulh x17, x22, x14 + adcs x13, x8, x13 + eor x9, x4, x15 + adcs x10, x6, x19 + ldp x22, x23, [x1, #32] + adcs x3, x25, x11 + ldp x4, x19, [x2, #32] + eor x17, x17, x15 + adcs x7, x7, x11 + adc x14, x24, x11 + subs x6, x20, x21 + csetm x11, cc + cneg x8, x6, cc + cmn x15, #0x1 + umulh x25, x22, x4 + adcs x24, x13, x9 + adcs x10, x10, x17 + extr x13, x24, x12, #55 + adcs x9, x3, x15 + ldp x17, x3, [x2, #48] + umulh x6, x23, x19 + adcs x7, x7, x15 + adc x14, x14, x15 + subs x12, x22, x23 + stp x10, x9, [sp] + mov x9, v1.d[1] + csetm x10, cc + stp x7, x14, [sp, #16] + cneg x12, x12, cc + subs x14, x3, x17 + mov x7, v16.d[1] + cneg x15, x14, cc + mov x14, v29.d[1] + cinv x11, x11, cc + adds x9, x9, x25 + mul x25, x8, x15 + stp x26, x13, [sp, #48] + lsr x24, x24, #55 + adcs x26, x16, x6 + mov x13, v1.d[0] + str x24, [sp, #64] + adcs x7, x7, x5 + adc x5, x14, xzr + umulh x6, x8, x15 + eor x15, x25, x11 + subs x25, x19, x4 + cinv x16, x10, cc + cneg x10, x25, cc + eor x6, x6, x11 + adds x8, x9, x13 + adcs x14, x26, x9 + mul x9, x12, x10 + adcs x24, x7, x26 + adcs x7, x5, x7 + umulh x25, x12, x10 + adc x12, xzr, x5 + adds x26, x14, x13 + eor x10, x9, x16 + adcs x9, x24, x8 + adcs x5, x7, x14 + adcs x14, x12, x24 + adcs x7, xzr, x7 + adc x12, xzr, x12 + eor x24, x25, x16 + cmn x11, #0x1 + adcs x25, x14, x15 + adcs x14, x7, x6 + adc x11, x12, x11 + subs x12, x23, x21 + csetm x15, cc + cneg x7, x12, cc + subs x12, x3, x19 + cneg x12, x12, cc + cinv x15, x15, cc + cmn x16, #0x1 + adcs x6, x8, x10 + mul x10, x7, x12 + adcs x26, x26, x24 + adcs x9, x9, x16 + umulh x24, x7, x12 + eor x8, x10, x15 + adcs x5, x5, x16 + adcs x25, x25, x16 + adcs x7, x14, x16 + adc x16, x11, x16 + subs x11, x22, x20 + cneg x11, x11, cc + csetm x14, cc + subs x10, x17, x4 + cinv x14, x14, cc + cneg x10, x10, cc + cmn x15, #0x1 + eor x12, x24, x15 + adcs x5, x5, x8 + mul x24, x11, x10 + adcs x8, x25, x12 + adcs x25, x7, x15 + adc x16, x16, x15 + subs x12, x22, x21 + umulh x10, x11, x10 + cneg x15, x12, cc + csetm x11, cc + subs x12, x3, x4 + cneg x12, x12, cc + cinv x7, x11, cc + mul x11, x15, x12 + eor x24, x24, x14 + cmn x14, #0x1 + eor x10, x10, x14 + adcs x24, x26, x24 + eor x26, x11, x7 + adcs x10, x9, x10 + ldp x11, x9, [x1, #16] + umulh x15, x15, x12 + adcs x5, x5, x14 + adcs x8, x8, x14 + adcs x25, x25, x14 + adc x12, x16, x14 + cmn x7, #0x1 + adcs x16, x10, x26 + eor x14, x15, x7 + adcs x26, x5, x14 + ldp x5, x10, [x1] + adcs x14, x8, x7 + adcs x15, x25, x7 + adc x7, x12, x7 + subs x25, x23, x20 + cneg x25, x25, cc + csetm x8, cc + subs x22, x22, x5 + sbcs x10, x23, x10 + ldp x23, x12, [x2] + sbcs x20, x20, x11 + sbcs x21, x21, x9 + csetm x9, cc + subs x11, x17, x19 + cneg x5, x11, cc + cinv x11, x8, cc + subs x23, x23, x4 + sbcs x19, x12, x19 + eor x20, x20, x9 + ldp x12, x4, [x2, #16] + eor x21, x21, x9 + umulh x8, x25, x5 + eor x22, x22, x9 + eor x10, x10, x9 + sbcs x17, x12, x17 + sbcs x3, x4, x3 + mul x25, x25, x5 + csetm x12, cc + subs x22, x22, x9 + eor x4, x23, x12 + sbcs x23, x10, x9 + eor x10, x3, x12 + sbcs x20, x20, x9 + eor x5, x8, x11 + eor x3, x19, x12 + sbc x21, x21, x9 + subs x4, x4, x12 + eor x25, x25, x11 + sbcs x19, x3, x12 + eor x3, x17, x12 + sbcs x17, x3, x12 + umulh x8, x23, x19 + sbc x3, x10, x12 + cmn x11, #0x1 + adcs x25, x16, x25 + adcs x26, x26, x5 + ldp x10, x5, [sp] + adcs x16, x14, x11 + mul x14, x22, x4 + adcs x15, x15, x11 + adc x7, x7, x11 + adds x11, x13, x10 + umulh x10, x21, x3 + adcs x13, x6, x5 + ldp x6, x5, [sp, #16] + stp x11, x13, [sp] + eor x13, x12, x9 + mul x9, x23, x19 + adcs x6, x24, x6 + ldp x11, x24, [sp, #32] + mul x12, x20, x17 + adcs x25, x25, x5 + stp x6, x25, [sp, #16] + ldp x6, x25, [sp, #48] + umulh x5, x20, x17 + adcs x11, x26, x11 + ldr x26, [sp, #64] + adcs x16, x16, x24 + stp x11, x16, [sp, #32] + adcs x11, x15, x6 + umulh x24, x22, x4 + adcs x25, x7, x25 + adc x7, x26, xzr + stp x11, x25, [sp, #48] + subs x26, x20, x21 + csetm x15, cc + cneg x25, x26, cc + str x7, [sp, #64] + mul x11, x21, x3 + subs x6, x22, x23 + cneg x6, x6, cc + csetm x16, cc + subs x26, x3, x17 + cneg x26, x26, cc + cinv x7, x15, cc + adds x24, x9, x24 + adcs x8, x12, x8 + umulh x12, x25, x26 + adcs x5, x11, x5 + adc x11, x10, xzr + subs x15, x19, x4 + cinv x9, x16, cc + mul x26, x25, x26 + eor x25, x12, x7 + cneg x12, x15, cc + adds x16, x24, x14 + eor x15, x26, x7 + umulh x26, x6, x12 + adcs x10, x8, x24 + adcs x8, x5, x8 + adcs x24, x11, x5 + adc x5, xzr, x11 + adds x11, x10, x14 + mul x12, x6, x12 + adcs x6, x8, x16 + eor x14, x14, x13 + adcs x10, x24, x10 + adcs x8, x5, x8 + adcs x24, xzr, x24 + adc x5, xzr, x5 + cmn x7, #0x1 + adcs x15, x8, x15 + adcs x24, x24, x25 + eor x25, x26, x9 + adc x8, x5, x7 + eor x5, x12, x9 + subs x26, x23, x21 + cneg x12, x26, cc + csetm x26, cc + subs x7, x3, x19 + cneg x7, x7, cc + cinv x26, x26, cc + cmn x9, #0x1 + adcs x5, x16, x5 + mul x16, x12, x7 + adcs x25, x11, x25 + umulh x7, x12, x7 + adcs x12, x6, x9 + eor x11, x16, x26 + adcs x6, x10, x9 + adcs x10, x15, x9 + adcs x24, x24, x9 + adc x8, x8, x9 + subs x15, x22, x20 + cneg x15, x15, cc + csetm x9, cc + subs x16, x17, x4 + cneg x16, x16, cc + cinv x9, x9, cc + subs x21, x22, x21 + mul x22, x15, x16 + eor x7, x7, x26 + cneg x21, x21, cc + umulh x16, x15, x16 + csetm x15, cc + subs x4, x3, x4 + cneg x3, x4, cc + eor x4, x22, x9 + cinv x15, x15, cc + cmn x26, #0x1 + eor x22, x5, x13 + adcs x5, x6, x11 + adcs x6, x10, x7 + adcs x10, x24, x26 + eor x11, x16, x9 + adc x8, x8, x26 + subs x16, x23, x20 + cneg x7, x16, cc + csetm x23, cc + cmn x9, #0x1 + adcs x16, x25, x4 + mul x4, x21, x3 + adcs x24, x12, x11 + eor x11, x16, x13 + adcs x26, x5, x9 + adcs x16, x6, x9 + umulh x20, x21, x3 + adcs x6, x10, x9 + ldp x3, x10, [x1] + adc x12, x8, x9 + subs x21, x17, x19 + cneg x8, x21, cc + eor x25, x20, x15 + eor x20, x4, x15 + mul x19, x7, x8 + cinv x17, x23, cc + cmn x15, #0x1 + adcs x4, x24, x20 + extr x21, x10, x3, #52 + umulh x9, x7, x8 + and x24, x21, #0xfffffffffffff + adcs x26, x26, x25 + eor x7, x19, x17 + adcs x5, x16, x15 + and x23, x3, #0xfffffffffffff + eor x9, x9, x17 + adcs x21, x6, x15 + adc x6, x12, x15 + cmn x17, #0x1 + adcs x25, x4, x7 + and x4, x13, #0x1ff + ldp x16, x8, [sp] + adcs x20, x26, x9 + adcs x12, x5, x17 + ldp x3, x5, [sp, #16] + eor x15, x12, x13 + adcs x12, x21, x17 + adc x9, x6, x17 + adds x21, x14, x16 + lsl x7, x21, #9 + eor x26, x12, x13 + ldp x19, x17, [sp, #32] + orr x4, x7, x4 + eor x14, x25, x13 + adcs x7, x22, x8 + adcs x12, x11, x3 + eor x11, x20, x13 + ldp x6, x25, [sp, #48] + eor x20, x9, x13 + adcs x22, x14, x5 + ldr x14, [x2, #64] + adcs x9, x11, x19 + ldr x11, [sp, #64] + adcs x13, x15, x17 + adcs x26, x26, x6 + adcs x20, x20, x25 + adc x15, x11, xzr + adds x16, x9, x16 + mul x9, x14, x23 + adcs x23, x13, x8 + extr x13, x7, x21, #55 + adcs x21, x26, x3 + ldp x3, x26, [x1, #16] + extr x8, x22, x12, #55 + adcs x20, x20, x5 + adcs x19, x19, x4 + mul x4, x14, x24 + ldp x5, x24, [x2] + adcs x17, x17, x13 + extr x13, x26, x3, #28 + extr x10, x3, x10, #40 + extr x7, x12, x7, #55 + and x12, x13, #0xfffffffffffff + adcs x3, x6, x7 + ldr x6, [x1, #64] + extr x7, x24, x5, #52 + and x5, x5, #0xfffffffffffff + mul x12, x14, x12 + adcs x13, x25, x8 + and x7, x7, #0xfffffffffffff + ldp x8, x25, [x2, #16] + mul x5, x6, x5 + extr x24, x8, x24, #40 + and x24, x24, #0xfffffffffffff + add x9, x9, x5 + lsr x5, x22, #55 + mul x7, x6, x7 + extr x22, x25, x8, #28 + and x10, x10, #0xfffffffffffff + mul x10, x14, x10 + lsr x8, x9, #52 + lsl x9, x9, #12 + add x7, x4, x7 + adc x4, x5, x11 + ldp x11, x5, [x2, #32] + add x8, x7, x8 + and x7, x22, #0xfffffffffffff + extr x22, x8, x9, #12 + lsl x9, x15, #48 + mul x15, x6, x24 + add x10, x10, x15 + lsr x15, x8, #52 + extr x25, x11, x25, #16 + and x25, x25, #0xfffffffffffff + mul x24, x6, x7 + add x7, x10, x15 + lsr x10, x7, #52 + lsl x8, x8, #12 + extr x8, x7, x8, #24 + adds x22, x16, x22 + ldp x16, x15, [x1, #32] + adcs x23, x23, x8 + extr x8, x5, x11, #56 + mul x25, x6, x25 + add x24, x12, x24 + add x12, x24, x10 + lsr x10, x16, #4 + lsl x7, x7, #12 + extr x24, x12, x7, #36 + and x10, x10, #0xfffffffffffff + extr x26, x16, x26, #16 + mul x10, x14, x10 + and x8, x8, #0xfffffffffffff + adcs x21, x21, x24 + and x7, x26, #0xfffffffffffff + mul x7, x14, x7 + lsr x24, x11, #4 + and x24, x24, #0xfffffffffffff + extr x11, x15, x16, #56 + lsl x26, x12, #12 + and x16, x11, #0xfffffffffffff + mul x11, x6, x24 + lsr x12, x12, #52 + ldp x2, x24, [x2, #48] + add x25, x7, x25 + add x25, x25, x9 + and x9, x23, x21 + mul x8, x6, x8 + add x12, x25, x12 + add x25, x10, x11 + extr x11, x12, x26, #48 + ldp x7, x26, [x1, #48] + extr x5, x2, x5, #44 + lsr x1, x12, #52 + mul x10, x14, x16 + lsr x16, x24, #20 + add x10, x10, x8 + extr x8, x26, x7, #32 + and x8, x8, #0xfffffffffffff + extr x24, x24, x2, #32 + mul x2, x6, x16 + add x1, x25, x1 + lsr x25, x26, #20 + and x26, x24, #0xfffffffffffff + and x24, x5, #0xfffffffffffff + extr x16, x7, x15, #44 + mul x7, x6, x24 + adcs x11, x20, x11 + and x20, x16, #0xfffffffffffff + lsl x5, x12, #12 + and x15, x9, x11 + mul x24, x14, x20 + lsr x9, x1, #52 + add x20, x10, x9 + extr x12, x1, x5, #60 + lsl x9, x20, #12 + lsl x5, x12, #8 + mul x10, x14, x8 + extr x12, x20, x5, #8 + lsr x1, x20, #52 + add x7, x24, x7 + adcs x8, x19, x12 + and x5, x15, x8 + add x7, x7, x1 + mul x20, x6, x26 + extr x24, x7, x9, #20 + lsr x19, x7, #52 + mul x25, x14, x25 + lsl x16, x7, #12 + add x20, x10, x20 + adcs x12, x17, x24 + add x19, x20, x19 + lsr x26, x19, #52 + mul x24, x14, x6 + and x5, x5, x12 + add x6, x25, x2 + lsl x17, x19, #12 + add x14, x6, x26 + extr x16, x19, x16, #32 + lsr x6, x14, #44 + extr x19, x14, x17, #44 + add x9, x24, x6 + adcs x17, x3, x16 + adcs x2, x13, x19 + and x7, x5, x17 + adc x15, x4, x9 + cmp xzr, xzr + orr x1, x15, #0xfffffffffffffe00 + lsr x3, x15, #9 + adcs xzr, x22, x3 + and x15, x7, x2 + adcs xzr, x15, xzr + adcs xzr, x1, xzr + adcs x7, x22, x3 + lsl x3, x7, #9 + lsr x15, x7, #55 + str x15, [x0, #64] + adcs x13, x23, xzr + adcs x16, x21, xzr + stp x13, x16, [x0] + adcs x13, x11, xzr + adcs x16, x8, xzr + stp x13, x16, [x0, #16] + adcs x19, x12, xzr + adcs x16, x17, xzr + adcs x13, x2, xzr + stp x19, x16, [x0, #32] + adc x16, x1, xzr + and x16, x16, #0x1ff + orr x16, x16, x3 + stp x13, x16, [x0, #48] + +// Restore regs and return + + add sp, sp, #80 + ldp x25, x26, [sp], #16 + ldp x23, x24, [sp], #16 + ldp x21, x22, [sp], #16 + ldp x19, x20, [sp], #16 + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack,"",%progbits +#endif diff --git a/third_party/s2n-bignum/arm/p521/bignum_montsqr_p521_neon.S b/third_party/s2n-bignum/arm/p521/bignum_montsqr_p521_neon.S new file mode 100644 index 0000000000..57cf911615 --- /dev/null +++ b/third_party/s2n-bignum/arm/p521/bignum_montsqr_p521_neon.S @@ -0,0 +1,1124 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Montgomery square, z := (x^2 / 2^576) mod p_521 +// Input x[9]; output z[9] +// +// extern void bignum_montsqr_p521_neon +// (uint64_t z[static 9], uint64_t x[static 9]); +// +// Does z := (x^2 / 2^576) mod p_521, assuming x < p_521. This means the +// Montgomery base is the "native size" 2^{9*64} = 2^576; since p_521 is +// a Mersenne prime the basic modular squaring bignum_sqr_p521 can be +// considered a Montgomery operation to base 2^521. +// +// Standard ARM ABI: X0 = z, X1 = x +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + +// bignum_montsqr_p521_neon is functionally equivalent to bignum_montsqr_p521. +// It is written in a way that +// 1. A subset of scalar multiplications in bignum_montmul_p384 are carefully +// chosen and vectorized +// 2. The vectorized assembly is rescheduled using the SLOTHY superoptimizer. +// https://github.com/slothy-optimizer/slothy +// +// The output program of step 1. is as follows: +// +// stp x19, x20, [sp, #-16]! +// stp x21, x22, [sp, #-16]! +// stp x23, x24, [sp, #-16]! +// ldp x16, x8, [x1] +// ldr q18, [x1] +// ldr q5, [x1] +// ldr q20, [x1] +// ldp x17, x13, [x1, #16] +// ldr q17, [x1, #16] +// ldr q1, [x1, #16] +// ldr q28, [x1, #16] +// ldp x9, x15, [x1, #32] +// ldr q27, [x1] +// ldr q29, [x1, #32] +// ldp x23, x2, [x1, #48] +// ldr q6, [x1, #48] +// ldr q4, [x1, #48] +// mul x24, x9, x23 +// mul x11, x15, x2 +// umulh x20, x9, x23 +// subs x4, x9, x15 +// cneg x22, x4, cc +// csetm x12, cc +// subs x4, x2, x23 +// cneg x4, x4, cc +// mul x19, x22, x4 +// umulh x4, x22, x4 +// cinv x7, x12, cc +// eor x14, x19, x7 +// eor x22, x4, x7 +// adds x12, x24, x20 +// adc x19, x20, xzr +// umulh x4, x15, x2 +// adds x12, x12, x11 +// adcs x19, x19, x4 +// adc x4, x4, xzr +// adds x19, x19, x11 +// adc x4, x4, xzr +// cmn x7, #0x1 +// adcs x12, x12, x14 +// adcs x19, x19, x22 +// adc x4, x4, x7 +// adds x11, x24, x24 +// adcs x20, x12, x12 +// adcs x10, x19, x19 +// adcs x3, x4, x4 +// adc x5, xzr, xzr +// ldr q30, [x1, #32] +// umull v0.2D, v30.2S, v30.2S +// umull2 v2.2D, v30.4S, v30.4S +// xtn v24.2S, v30.2D +// uzp2 v30.4S, v30.4S, v30.4S +// umull v30.2D, v30.2S, v24.2S +// mov x7, v0.d[0] +// mov x14, v0.d[1] +// mov x19, v2.d[0] +// mov x22, v2.d[1] +// mov x4, v30.d[0] +// mov x12, v30.d[1] +// adds x21, x7, x4, lsl #33 +// lsr x4, x4, #31 +// adc x14, x14, x4 +// adds x19, x19, x12, lsl #33 +// lsr x4, x12, #31 +// adc x22, x22, x4 +// mul x4, x9, x15 +// umulh x12, x9, x15 +// adds x24, x14, x4, lsl #1 +// extr x4, x12, x4, #63 +// adcs x19, x19, x4 +// lsr x4, x12, #63 +// adc x4, x22, x4 +// adds x11, x11, x19 +// adcs x20, x20, x4 +// adcs x10, x10, xzr +// adcs x3, x3, xzr +// adc x6, x5, xzr +// movi v3.2D, #0x00000000ffffffff +// uzp2 v16.4S, v4.4S, v4.4S +// xtn v25.2S, v6.2D +// xtn v23.2S, v4.2D +// rev64 v30.4S, v4.4S +// umull v24.2D, v25.2S, v23.2S +// umull v0.2D, v25.2S, v16.2S +// uzp2 v2.4S, v6.4S, v6.4S +// mul v30.4S, v30.4S, v6.4S +// usra v0.2D, v24.2D, #32 +// umull v19.2D, v2.2S, v16.2S +// uaddlp v30.2D, v30.4S +// and v24.16B, v0.16B, v3.16B +// umlal v24.2D, v2.2S, v23.2S +// shl v30.2D, v30.2D, #32 +// usra v19.2D, v0.2D, #32 +// umlal v30.2D, v25.2S, v23.2S +// usra v19.2D, v24.2D, #32 +// mov x5, v30.d[0] +// mov x7, v30.d[1] +// mul x14, x23, x2 +// mov x19, v19.d[0] +// mov x4, v19.d[1] +// umulh x22, x23, x2 +// adds x12, x19, x14 +// adcs x19, x7, x22 +// adc x4, x4, xzr +// adds x12, x12, x14 +// adcs x19, x19, x22 +// adc x4, x4, xzr +// adds x7, x5, x10 +// adcs x3, x12, x3 +// adcs x14, x19, x6 +// adc x10, x4, xzr +// ldr x4, [x1, #64] +// add x6, x4, x4 +// mul x5, x4, x4 +// and x4, x16, #0xfffffffffffff +// mul x22, x6, x4 +// extr x4, x8, x16, #52 +// and x4, x4, #0xfffffffffffff +// mul x19, x6, x4 +// lsr x4, x22, #52 +// add x12, x19, x4 +// lsl x4, x22, #12 +// extr x4, x12, x4, #12 +// adds x21, x21, x4 +// extr x4, x17, x8, #40 +// and x4, x4, #0xfffffffffffff +// mul x19, x6, x4 +// lsr x4, x12, #52 +// add x22, x19, x4 +// lsl x4, x12, #12 +// extr x4, x22, x4, #24 +// adcs x24, x24, x4 +// extr x4, x13, x17, #28 +// and x4, x4, #0xfffffffffffff +// mul x19, x6, x4 +// lsr x4, x22, #52 +// add x12, x19, x4 +// lsl x4, x22, #12 +// extr x4, x12, x4, #36 +// adcs x11, x11, x4 +// extr x4, x9, x13, #16 +// and x4, x4, #0xfffffffffffff +// mul x19, x6, x4 +// lsr x4, x12, #52 +// add x22, x19, x4 +// lsl x4, x12, #12 +// extr x4, x22, x4, #48 +// adcs x20, x20, x4 +// lsr x4, x9, #4 +// and x4, x4, #0xfffffffffffff +// mul x19, x6, x4 +// lsr x4, x22, #52 +// add x12, x19, x4 +// lsl x4, x22, #12 +// extr x22, x12, x4, #60 +// extr x4, x15, x9, #56 +// and x4, x4, #0xfffffffffffff +// mul x19, x6, x4 +// lsr x4, x12, #52 +// add x12, x19, x4 +// lsl x4, x22, #8 +// extr x4, x12, x4, #8 +// adcs x7, x7, x4 +// extr x4, x23, x15, #44 +// and x4, x4, #0xfffffffffffff +// mul x19, x6, x4 +// lsr x4, x12, #52 +// add x22, x19, x4 +// lsl x4, x12, #12 +// extr x4, x22, x4, #20 +// adcs x1, x3, x4 +// extr x4, x2, x23, #32 +// and x4, x4, #0xfffffffffffff +// mul x19, x6, x4 +// lsr x4, x22, #52 +// add x12, x19, x4 +// lsl x4, x22, #12 +// extr x4, x12, x4, #32 +// adcs x14, x14, x4 +// lsr x4, x2, #20 +// mul x19, x6, x4 +// lsr x4, x12, #52 +// add x19, x19, x4 +// lsl x4, x12, #12 +// extr x4, x19, x4, #44 +// adcs x22, x10, x4 +// lsr x4, x19, #44 +// adc x12, x5, x4 +// extr x19, x24, x21, #9 +// extr x4, x11, x24, #9 +// stp x19, x4, [x0] // @slothy:writes=buffer0 +// extr x19, x20, x11, #9 +// extr x4, x7, x20, #9 +// stp x19, x4, [x0, #16] // @slothy:writes=buffer16 +// extr x19, x1, x7, #9 +// extr x4, x14, x1, #9 +// stp x19, x4, [x0, #32] // @slothy:writes=buffer32 +// extr x19, x22, x14, #9 +// extr x4, x12, x22, #9 +// stp x19, x4, [x0, #48] // @slothy:writes=buffer48 +// and x19, x21, #0x1ff +// lsr x4, x12, #9 +// add x4, x19, x4 +// str x4, [x0, #64] +// uzp1 v2.4S, v28.4S, v18.4S +// rev64 v30.4S, v28.4S +// uzp1 v24.4S, v18.4S, v18.4S +// mul v30.4S, v30.4S, v18.4S +// uaddlp v30.2D, v30.4S +// shl v30.2D, v30.2D, #32 +// umlal v30.2D, v24.2S, v2.2S +// mov x11, v30.d[0] +// mov x20, v30.d[1] +// umulh x7, x16, x17 +// subs x4, x16, x8 +// cneg x22, x4, cc +// csetm x12, cc +// subs x4, x13, x17 +// cneg x4, x4, cc +// mul x19, x22, x4 +// umulh x4, x22, x4 +// cinv x1, x12, cc +// eor x14, x19, x1 +// eor x22, x4, x1 +// adds x12, x11, x7 +// adc x19, x7, xzr +// umulh x4, x8, x13 +// adds x12, x12, x20 +// adcs x19, x19, x4 +// adc x4, x4, xzr +// adds x19, x19, x20 +// adc x4, x4, xzr +// cmn x1, #0x1 +// adcs x12, x12, x14 +// adcs x19, x19, x22 +// adc x4, x4, x1 +// adds x21, x11, x11 +// adcs x24, x12, x12 +// adcs x11, x19, x19 +// adcs x20, x4, x4 +// adc x7, xzr, xzr +// movi v3.2D, #0x00000000ffffffff +// uzp2 v16.4S, v20.4S, v20.4S +// xtn v25.2S, v5.2D +// xtn v23.2S, v20.2D +// rev64 v30.4S, v20.4S +// umull v24.2D, v25.2S, v23.2S +// umull v0.2D, v25.2S, v16.2S +// uzp2 v2.4S, v5.4S, v5.4S +// mul v30.4S, v30.4S, v5.4S +// usra v0.2D, v24.2D, #32 +// umull v19.2D, v2.2S, v16.2S +// uaddlp v30.2D, v30.4S +// and v24.16B, v0.16B, v3.16B +// umlal v24.2D, v2.2S, v23.2S +// shl v30.2D, v30.2D, #32 +// usra v19.2D, v0.2D, #32 +// umlal v30.2D, v25.2S, v23.2S +// usra v19.2D, v24.2D, #32 +// mov x10, v30.d[0] +// mov x1, v30.d[1] +// mul x14, x16, x8 +// mov x19, v19.d[0] +// mov x4, v19.d[1] +// umulh x22, x16, x8 +// adds x12, x19, x14 +// adcs x19, x1, x22 +// adc x4, x4, xzr +// adds x3, x12, x14 +// adcs x19, x19, x22 +// adc x4, x4, xzr +// adds x5, x21, x19 +// adcs x21, x24, x4 +// adcs x24, x11, xzr +// adcs x11, x20, xzr +// adc x20, x7, xzr +// movi v3.2D, #0x00000000ffffffff +// uzp2 v16.4S, v1.4S, v1.4S +// xtn v25.2S, v17.2D +// xtn v23.2S, v1.2D +// rev64 v30.4S, v1.4S +// umull v24.2D, v25.2S, v23.2S +// umull v0.2D, v25.2S, v16.2S +// uzp2 v2.4S, v17.4S, v17.4S +// mul v30.4S, v30.4S, v17.4S +// usra v0.2D, v24.2D, #32 +// umull v19.2D, v2.2S, v16.2S +// uaddlp v30.2D, v30.4S +// and v24.16B, v0.16B, v3.16B +// umlal v24.2D, v2.2S, v23.2S +// shl v30.2D, v30.2D, #32 +// usra v19.2D, v0.2D, #32 +// umlal v30.2D, v25.2S, v23.2S +// usra v19.2D, v24.2D, #32 +// mov x7, v30.d[0] +// mov x1, v30.d[1] +// mul x14, x17, x13 +// mov x19, v19.d[0] +// mov x4, v19.d[1] +// umulh x22, x17, x13 +// adds x12, x19, x14 +// adcs x19, x1, x22 +// adc x4, x4, xzr +// adds x12, x12, x14 +// adcs x19, x19, x22 +// adc x4, x4, xzr +// adds x1, x7, x24 +// adcs x14, x12, x11 +// adcs x22, x19, x20 +// adc x12, x4, xzr +// ldp x19, x4, [x0] // @slothy:reads=buffer0 +// adds x19, x19, x10 +// adcs x4, x4, x3 +// stp x19, x4, [x0] // @slothy:writes=buffer0 +// ldp x19, x4, [x0, #16] // @slothy:reads=buffer16 +// adcs x19, x19, x5 +// adcs x4, x4, x21 +// stp x19, x4, [x0, #16] // @slothy:writes=buffer16 +// ldp x19, x4, [x0, #32] // @slothy:reads=buffer32 +// adcs x19, x19, x1 +// adcs x4, x4, x14 +// stp x19, x4, [x0, #32] // @slothy:writes=buffer32 +// ldp x19, x4, [x0, #48] // @slothy:reads=buffer48 +// adcs x19, x19, x22 +// adcs x4, x4, x12 +// stp x19, x4, [x0, #48] // @slothy:writes=buffer48 +// ldr x4, [x0, #64] +// adc x4, x4, xzr +// str x4, [x0, #64] +// movi v3.2D, #0x00000000ffffffff +// uzp2 v2.4S, v29.4S, v29.4S +// xtn v16.2S, v27.2D +// xtn v25.2S, v29.2D +// rev64 v30.4S, v29.4S +// umull v24.2D, v16.2S, v25.2S +// umull v23.2D, v16.2S, v2.2S +// uzp2 v0.4S, v27.4S, v27.4S +// mul v30.4S, v30.4S, v27.4S +// usra v23.2D, v24.2D, #32 +// umull v2.2D, v0.2S, v2.2S +// uaddlp v30.2D, v30.4S +// and v24.16B, v23.16B, v3.16B +// umlal v24.2D, v0.2S, v25.2S +// shl v30.2D, v30.2D, #32 +// usra v2.2D, v23.2D, #32 +// umlal v30.2D, v16.2S, v25.2S +// usra v2.2D, v24.2D, #32 +// mov x6, v30.d[0] +// mov x22, v30.d[1] +// mul x12, x17, x23 +// mul x19, x13, x2 +// mov x4, v2.d[0] +// adds x22, x22, x4 +// mov x4, v2.d[1] +// adcs x12, x12, x4 +// umulh x4, x17, x23 +// adcs x19, x19, x4 +// umulh x4, x13, x2 +// adc x4, x4, xzr +// adds x21, x22, x6 +// adcs x22, x12, x22 +// adcs x12, x19, x12 +// adcs x19, x4, x19 +// adc x4, xzr, x4 +// adds x24, x22, x6 +// adcs x11, x12, x21 +// adcs x20, x19, x22 +// adcs x1, x4, x12 +// adcs x14, xzr, x19 +// adc x7, xzr, x4 +// subs x4, x17, x13 +// cneg x12, x4, cc +// csetm x22, cc +// subs x4, x2, x23 +// cneg x19, x4, cc +// mul x4, x12, x19 +// umulh x12, x12, x19 +// cinv x19, x22, cc +// cmn x19, #0x1 +// eor x4, x4, x19 +// adcs x1, x1, x4 +// eor x4, x12, x19 +// adcs x14, x14, x4 +// adc x7, x7, x19 +// subs x4, x16, x8 +// cneg x12, x4, cc +// csetm x22, cc +// subs x4, x15, x9 +// cneg x19, x4, cc +// mul x4, x12, x19 +// umulh x12, x12, x19 +// cinv x19, x22, cc +// cmn x19, #0x1 +// eor x4, x4, x19 +// adcs x10, x21, x4 +// eor x4, x12, x19 +// adcs x24, x24, x4 +// adcs x11, x11, x19 +// adcs x20, x20, x19 +// adcs x1, x1, x19 +// adcs x14, x14, x19 +// adc x7, x7, x19 +// subs x4, x8, x13 +// cneg x12, x4, cc +// csetm x22, cc +// subs x4, x2, x15 +// cneg x19, x4, cc +// mul x4, x12, x19 +// umulh x12, x12, x19 +// cinv x19, x22, cc +// cmn x19, #0x1 +// eor x4, x4, x19 +// adcs x20, x20, x4 +// eor x4, x12, x19 +// adcs x1, x1, x4 +// adcs x14, x14, x19 +// adc x7, x7, x19 +// subs x4, x16, x17 +// cneg x12, x4, cc +// csetm x22, cc +// subs x4, x23, x9 +// cneg x19, x4, cc +// mul x4, x12, x19 +// umulh x12, x12, x19 +// cinv x19, x22, cc +// cmn x19, #0x1 +// eor x4, x4, x19 +// adcs x24, x24, x4 +// eor x4, x12, x19 +// adcs x11, x11, x4 +// adcs x20, x20, x19 +// adcs x1, x1, x19 +// adcs x14, x14, x19 +// adc x7, x7, x19 +// subs x4, x16, x13 +// cneg x12, x4, cc +// csetm x22, cc +// subs x4, x2, x9 +// cneg x19, x4, cc +// mul x4, x12, x19 +// umulh x12, x12, x19 +// cinv x19, x22, cc +// cmn x19, #0x1 +// eor x4, x4, x19 +// adcs x11, x11, x4 +// eor x4, x12, x19 +// adcs x20, x20, x4 +// adcs x1, x1, x19 +// adcs x14, x14, x19 +// adc x7, x7, x19 +// subs x4, x8, x17 +// cneg x12, x4, cc +// csetm x22, cc +// subs x4, x23, x15 +// cneg x19, x4, cc +// mul x4, x12, x19 +// umulh x12, x12, x19 +// cinv x19, x22, cc +// cmn x19, #0x1 +// eor x4, x4, x19 +// adcs x3, x11, x4 +// eor x4, x12, x19 +// adcs x5, x20, x4 +// adcs x1, x1, x19 +// adcs x14, x14, x19 +// adc x22, x7, x19 +// ldp x12, x19, [x0] // @slothy:reads=buffer0 +// extr x4, x1, x5, #8 +// adds x11, x4, x12 +// extr x4, x14, x1, #8 +// adcs x20, x4, x19 +// ldp x19, x12, [x0, #16] // @slothy:reads=buffer16 +// extr x4, x22, x14, #8 +// adcs x7, x4, x19 +// and x19, x20, x7 +// lsr x4, x22, #8 +// adcs x1, x4, x12 +// and x22, x19, x1 +// ldp x19, x12, [x0, #32] // @slothy:reads=buffer32 +// lsl x4, x6, #1 +// adcs x14, x4, x19 +// and x19, x22, x14 +// extr x4, x10, x6, #63 +// adcs x21, x4, x12 +// and x22, x19, x21 +// ldp x19, x12, [x0, #48] // @slothy:reads=buffer48 +// extr x4, x24, x10, #63 +// adcs x2, x4, x19 +// and x19, x22, x2 +// extr x4, x3, x24, #63 +// adcs x24, x4, x12 +// and x12, x19, x24 +// ldr x19, [x0, #64] +// extr x4, x5, x3, #63 +// and x4, x4, #0x1ff +// adc x4, x19, x4 +// lsr x19, x4, #9 +// orr x4, x4, #0xfffffffffffffe00 +// cmp xzr, xzr +// adcs xzr, x11, x19 +// adcs xzr, x12, xzr +// adcs xzr, x4, xzr +// adcs x11, x11, x19 +// adcs x20, x20, xzr +// adcs x7, x7, xzr +// adcs x1, x1, xzr +// adcs x14, x14, xzr +// adcs x22, x21, xzr +// adcs x12, x2, xzr +// adcs x24, x24, xzr +// adc x4, x4, xzr +// and x19, x4, #0x1ff +// lsl x4, x11, #9 +// extr x11, x20, x11, #55 +// extr x20, x7, x20, #55 +// extr x7, x1, x7, #55 +// extr x1, x14, x1, #55 +// orr x4, x19, x4 +// extr x14, x22, x14, #55 +// extr x22, x12, x22, #55 +// extr x12, x24, x12, #55 +// extr x19, x4, x24, #55 +// lsr x4, x4, #55 +// stp x11, x20, [x0] // @slothy:writes=buffer0 +// stp x7, x1, [x0, #16] // @slothy:writes=buffer16 +// stp x14, x22, [x0, #32] // @slothy:writes=buffer32 +// stp x12, x19, [x0, #48] // @slothy:writes=buffer48 +// str x4, [x0, #64] +// ldp x23, x24, [sp], #16 +// ldp x21, x22, [sp], #16 +// ldp x19, x20, [sp], #16 +// ret +// +// The bash script used for step 2 is as follows: +// +// # Store the assembly instructions except the last 'ret', +// # callee-register store/loads as, say, 'input.S'. +// export OUTPUTS="[hint_buffer0,hint_buffer16,hint_buffer32,hint_buffer48,hint_buffer64]" +// export RESERVED_REGS="[x18,x25,x26,x27,x28,x29,x30,sp,q8,q9,q10,q11,q12,q13,q14,q15,v8,v9,v10,v11,v12,v13,v14,v15]" +// /tools/external/slothy.sh input.S my_out_dir +// # my_out_dir/3.opt.s is the optimized assembly. Its output may differ +// # from this file since the sequence is non-deterministically chosen. +// # Please add 'ret' at the end of the output assembly. + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(bignum_montsqr_p521_neon) + S2N_BN_SYM_PRIVACY_DIRECTIVE(bignum_montsqr_p521_neon) + .text + .balign 4 + +S2N_BN_SYMBOL(bignum_montsqr_p521_neon): + +// Save registers + + stp x19, x20, [sp, #-16]! + stp x21, x22, [sp, #-16]! + stp x23, x24, [sp, #-16]! + +// The optimized body + + ldr q31, [x1, #48] + ldp x9, x15, [x1, #32] + ldp x23, x2, [x1, #48] + ldr q0, [x1, #48] + ldr q29, [x1, #32] + rev64 v21.4S, v31.4S + umulh x13, x9, x23 + mul v23.4S, v21.4S, v0.4S + xtn v21.2S, v0.2D + uzp2 v19.4S, v31.4S, v31.4S + xtn v2.2S, v29.2D + xtn v30.2S, v31.2D + uzp2 v3.4S, v29.4S, v29.4S + umull v6.2D, v21.2S, v19.2S + mul x10, x9, x23 + uaddlp v23.2D, v23.4S + umull v22.2D, v21.2S, v30.2S + adds x22, x10, x13 + mul x17, x9, x15 + movi v25.2D, #0x00000000ffffffff + uzp2 v1.4S, v0.4S, v0.4S + adc x8, x13, xzr + subs x19, x9, x15 + umull v28.2D, v3.2S, v2.2S + shl v31.2D, v23.2D, #32 + csetm x5, cc + cneg x3, x19, cc + umull v19.2D, v1.2S, v19.2S + ldr q4, [x1, #16] + subs x24, x2, x23 + mul x6, x15, x2 + usra v6.2D, v22.2D, #32 + ldr q23, [x1] + cneg x13, x24, cc + umulh x24, x15, x2 + umull v5.2D, v29.2S, v29.2S + rev64 v3.4S, v4.4S + cinv x19, x5, cc + adds x16, x22, x6 + mov x14, v28.d[1] + umlal v31.2D, v21.2S, v30.2S + umull2 v17.2D, v29.4S, v29.4S + mov x20, v28.d[0] + mul v29.4S, v3.4S, v23.4S + and v22.16B, v6.16B, v25.16B + mul x5, x3, x13 + mov x4, v5.d[1] + mov x7, v5.d[0] + adcs x11, x8, x24 + ldr q5, [x1] + ldr q0, [x1] + adc x22, x24, xzr + adds x8, x11, x6 + usra v19.2D, v6.2D, #32 + umlal v22.2D, v1.2S, v30.2S + adc x11, x22, xzr + adds x21, x7, x20, lsl #33 + mov x24, v17.d[1] + mov x22, v17.d[0] + lsr x12, x20, #31 + uzp1 v2.4S, v4.4S, v23.4S + uzp1 v20.4S, v23.4S, v23.4S + usra v19.2D, v22.2D, #32 + adc x4, x4, x12 + lsr x6, x14, #31 + adds x20, x22, x14, lsl #33 + ldr q17, [x1, #16] + uzp2 v22.4S, v0.4S, v0.4S + eor x12, x5, x19 + umulh x7, x3, x13 + xtn v23.2S, v0.2D + adc x5, x24, x6 + cmn x19, #0x1 + xtn v25.2S, v5.2D + ldr q27, [x1] + adcs x16, x16, x12 + uaddlp v1.2D, v29.4S + umulh x3, x9, x15 + eor x13, x7, x19 + adcs x24, x8, x13 + adc x11, x11, x19 + adds x12, x10, x10 + adcs x13, x16, x16 + mul x19, x23, x2 + umull v21.2D, v25.2S, v23.2S + adcs x7, x24, x24 + ldp x16, x8, [x1] + umull v3.2D, v25.2S, v22.2S + uzp2 v6.4S, v5.4S, v5.4S + adcs x10, x11, x11 + ldr q29, [x1, #32] + adc x14, xzr, xzr + adds x24, x4, x17, lsl #1 + mov x4, v31.d[1] + shl v30.2D, v1.2D, #32 + lsr x6, x3, #63 + extr x11, x3, x17, #63 + ldr q1, [x1, #16] + mov x22, v19.d[1] + adcs x20, x20, x11 + umulh x3, x23, x2 + movi v4.2D, #0x00000000ffffffff + usra v3.2D, v21.2D, #32 + adc x5, x5, x6 + adds x11, x12, x20 + mov x6, v19.d[0] + umull v19.2D, v6.2S, v22.2S + adcs x20, x13, x5 + rev64 v22.4S, v0.4S + ldr x5, [x1, #64] + ldp x17, x13, [x1, #16] + adcs x7, x7, xzr + umlal v30.2D, v20.2S, v2.2S + adcs x12, x10, xzr + and x1, x16, #0xfffffffffffff + mul v22.4S, v22.4S, v5.4S + adc x14, x14, xzr + adds x6, x6, x19 + xtn v5.2S, v1.2D + adcs x10, x4, x3 + mov x4, v31.d[0] + adc x22, x22, xzr + adds x19, x6, x19 + add x6, x5, x5 + and v21.16B, v3.16B, v4.16B + adcs x10, x10, x3 + extr x3, x8, x16, #52 + mul x1, x6, x1 + usra v19.2D, v3.2D, #32 + adc x22, x22, xzr + adds x7, x4, x7 + umlal v21.2D, v6.2S, v23.2S + and x4, x3, #0xfffffffffffff + adcs x3, x19, x12 + uzp2 v28.4S, v1.4S, v1.4S + extr x19, x17, x8, #40 + mul x12, x6, x4 + adcs x14, x10, x14 + rev64 v4.4S, v1.4S + mul x5, x5, x5 + lsr x4, x9, #4 + adc x10, x22, xzr + lsl x22, x1, #12 + lsr x1, x1, #52 + add x12, x12, x1 + and x1, x19, #0xfffffffffffff + extr x19, x12, x22, #12 + mul x1, x6, x1 + extr x22, x13, x17, #28 + adds x21, x21, x19 + mul v31.4S, v4.4S, v17.4S + and x19, x22, #0xfffffffffffff + lsr x22, x12, #52 + lsl x12, x12, #12 + mul x19, x6, x19 + add x22, x1, x22 + extr x1, x22, x12, #24 + and x4, x4, #0xfffffffffffff + adcs x12, x24, x1 + extr x1, x9, x13, #16 + mul x24, x6, x4 + and x1, x1, #0xfffffffffffff + lsr x4, x22, #52 + add x4, x19, x4 + lsl x22, x22, #12 + mul x1, x6, x1 + extr x22, x4, x22, #36 + adcs x11, x11, x22 + extr x22, x11, x12, #9 + extr x19, x12, x21, #9 + uaddlp v3.2D, v22.4S + lsl x12, x4, #12 + stp x19, x22, [x0] + umulh x19, x16, x17 + uaddlp v31.2D, v31.4S + lsr x22, x4, #52 + extr x4, x15, x9, #56 + usra v19.2D, v21.2D, #32 + add x22, x1, x22 + extr x1, x23, x15, #44 + shl v4.2D, v31.2D, #32 + extr x12, x22, x12, #48 + and x4, x4, #0xfffffffffffff + uzp2 v7.4S, v17.4S, v17.4S + adcs x20, x20, x12 + xtn v17.2S, v17.2D + lsl x12, x22, #12 + lsr x22, x22, #52 + mul x4, x6, x4 + add x22, x24, x22 + and x24, x1, #0xfffffffffffff + extr x1, x2, x23, #32 + extr x12, x22, x12, #60 + lsl x12, x12, #8 + lsr x22, x22, #52 + mul x24, x6, x24 + add x4, x4, x22 + and x22, x1, #0xfffffffffffff + extr x12, x4, x12, #8 + lsl x1, x4, #12 + lsr x4, x4, #52 + adcs x7, x7, x12 + mul x12, x6, x22 + add x24, x24, x4 + extr x1, x24, x1, #20 + extr x22, x20, x11, #9 + extr x20, x7, x20, #9 + lsr x11, x2, #20 + mul x6, x6, x11 + lsr x4, x24, #52 + add x4, x12, x4 + lsl x12, x24, #12 + adcs x3, x3, x1 + extr x24, x4, x12, #32 + lsr x11, x4, #52 + adcs x12, x14, x24 + umull v31.2D, v17.2S, v28.2S + add x24, x6, x11 + lsl x1, x4, #12 + extr x7, x3, x7, #9 + rev64 v6.4S, v29.4S + umull v22.2D, v17.2S, v5.2S + extr x11, x12, x3, #9 + extr x14, x24, x1, #44 + umlal v4.2D, v17.2S, v5.2S + adcs x3, x10, x14 + umulh x10, x8, x13 + lsr x14, x24, #44 + adc x24, x5, x14 + subs x5, x16, x8 + stp x22, x20, [x0, #16] + csetm x1, cc + shl v21.2D, v3.2D, #32 + movi v17.2D, #0x00000000ffffffff + cneg x20, x5, cc + subs x5, x13, x17 + usra v31.2D, v22.2D, #32 + cneg x14, x5, cc + lsr x6, x24, #9 + and x22, x21, #0x1ff + mov x4, v30.d[0] + add x6, x22, x6 + stp x7, x11, [x0, #32] + umulh x22, x20, x14 + mov x5, v30.d[1] + str x6, [x0, #64] + extr x12, x3, x12, #9 + umull v28.2D, v7.2S, v28.2S + mul x11, x20, x14 + mul v6.4S, v6.4S, v27.4S + and v1.16B, v31.16B, v17.16B + cinv x21, x1, cc + adds x6, x4, x19 + uzp2 v22.4S, v27.4S, v27.4S + adc x20, x19, xzr + adds x6, x6, x5 + umlal v1.2D, v7.2S, v5.2S + xtn v20.2S, v29.2D + eor x22, x22, x21 + adcs x7, x20, x10 + usra v28.2D, v31.2D, #32 + eor x20, x11, x21 + usra v28.2D, v1.2D, #32 + xtn v0.2S, v27.2D + adc x10, x10, xzr + adds x1, x7, x5 + umlal v21.2D, v25.2S, v23.2S + uzp2 v29.4S, v29.4S, v29.4S + adc x19, x10, xzr + cmn x21, #0x1 + umull v3.2D, v0.2S, v20.2S + adcs x5, x6, x20 + extr x10, x24, x3, #9 + umull v31.2D, v0.2S, v29.2S + adcs x1, x1, x22 + stp x12, x10, [x0, #48] + mul x24, x16, x8 + mov x3, v28.d[1] + usra v31.2D, v3.2D, #32 + adc x10, x19, x21 + adds x7, x4, x4 + umulh x14, x16, x8 + uaddlp v3.2D, v6.4S + mov x4, v28.d[0] + adcs x12, x5, x5 + mov x5, v19.d[0] + movi v23.2D, #0x00000000ffffffff + adcs x20, x1, x1 + mov x19, v21.d[1] + mov x1, v19.d[1] + adcs x22, x10, x10 + and v17.16B, v31.16B, v23.16B + adc x6, xzr, xzr + umlal v17.2D, v22.2S, v20.2S + adds x10, x5, x24 + mul x11, x17, x13 + mov x5, v21.d[0] + umull v28.2D, v22.2S, v29.2S + adcs x19, x19, x14 + shl v5.2D, v3.2D, #32 + adc x21, x1, xzr + adds x10, x10, x24 + adcs x1, x19, x14 + umulh x14, x17, x13 + adc x19, x21, xzr + adds x7, x7, x1 + adcs x1, x12, x19 + adcs x24, x20, xzr + mov x20, v4.d[1] + usra v28.2D, v31.2D, #32 + mov x21, v4.d[0] + adcs x19, x22, xzr + adc x6, x6, xzr + adds x4, x4, x11 + adcs x20, x20, x14 + adc x22, x3, xzr + adds x12, x4, x11 + umulh x11, x13, x2 + adcs x3, x20, x14 + adc x20, x22, xzr + adds x21, x21, x24 + ldp x22, x24, [x0] + adcs x4, x12, x19 + ldp x19, x14, [x0, #16] + usra v28.2D, v17.2D, #32 + adcs x3, x3, x6 + umlal v5.2D, v0.2S, v20.2S + adc x6, x20, xzr + umulh x20, x17, x23 + adds x12, x22, x5 + ldp x22, x5, [x0, #32] + adcs x10, x24, x10 + adcs x19, x19, x7 + stp x12, x10, [x0] + ldp x12, x7, [x0, #48] + adcs x10, x14, x1 + mul x14, x13, x2 + ldr x24, [x0, #64] + adcs x22, x22, x21 + adcs x5, x5, x4 + mov x21, v28.d[1] + stp x22, x5, [x0, #32] + mul x1, x17, x23 + adcs x3, x12, x3 + mov x4, v28.d[0] + mov x12, v5.d[1] + stp x19, x10, [x0, #16] + adcs x19, x7, x6 + mov x6, v5.d[0] + adc x10, x24, xzr + subs x7, x16, x8 + cneg x5, x7, cc + csetm x24, cc + subs x7, x15, x9 + cneg x22, x7, cc + cinv x7, x24, cc + adds x12, x12, x4 + umulh x4, x5, x22 + adcs x1, x1, x21 + stp x3, x19, [x0, #48] + str x10, [x0, #64] + adcs x20, x14, x20 + adc x21, x11, xzr + subs x14, x17, x13 + cneg x10, x14, cc + csetm x3, cc + subs x19, x2, x23 + cneg x19, x19, cc + cinv x11, x3, cc + adds x14, x12, x6 + mul x24, x5, x22 + adcs x22, x1, x12 + eor x3, x4, x7 + mul x4, x10, x19 + adcs x1, x20, x1 + adcs x12, x21, x20 + adc x5, xzr, x21 + umulh x19, x10, x19 + adds x20, x22, x6 + eor x10, x24, x7 + adcs x21, x1, x14 + eor x24, x4, x11 + adcs x4, x12, x22 + adcs x1, x5, x1 + adcs x12, xzr, x12 + adc x22, xzr, x5 + eor x5, x19, x11 + cmn x11, #0x1 + adcs x19, x1, x24 + adcs x5, x12, x5 + adc x24, x22, x11 + subs x1, x8, x13 + cneg x22, x1, cc + csetm x1, cc + subs x11, x2, x15 + cinv x1, x1, cc + cneg x12, x11, cc + cmn x7, #0x1 + adcs x10, x14, x10 + mul x14, x22, x12 + adcs x20, x20, x3 + eor x11, x14, x1 + adcs x3, x21, x7 + umulh x21, x22, x12 + adcs x22, x4, x7 + adcs x4, x19, x7 + adcs x12, x5, x7 + adc x7, x24, x7 + subs x14, x16, x17 + csetm x5, cc + cneg x19, x14, cc + subs x24, x23, x9 + cneg x14, x24, cc + cinv x5, x5, cc + cmn x1, #0x1 + mul x24, x19, x14 + adcs x22, x22, x11 + eor x11, x21, x1 + eor x24, x24, x5 + umulh x19, x19, x14 + adcs x4, x4, x11 + adcs x14, x12, x1 + adc x1, x7, x1 + subs x17, x8, x17 + cneg x12, x17, cc + csetm x17, cc + subs x16, x16, x13 + cneg x11, x16, cc + csetm x16, cc + subs x23, x23, x15 + cinv x7, x17, cc + cneg x13, x23, cc + mul x15, x12, x13 + subs x23, x2, x9 + cinv x8, x16, cc + cneg x17, x23, cc + eor x16, x19, x5 + mul x23, x11, x17 + cmn x5, #0x1 + adcs x20, x20, x24 + eor x15, x15, x7 + adcs x3, x3, x16 + adcs x2, x22, x5 + umulh x16, x11, x17 + adcs x19, x4, x5 + ldp x4, x22, [x0, #48] + extr x21, x10, x6, #63 + adcs x24, x14, x5 + eor x23, x23, x8 + adc x1, x1, x5 + cmn x8, #0x1 + umulh x9, x12, x13 + eor x14, x16, x8 + adcs x3, x3, x23 + ldp x11, x5, [x0, #16] + ldp x13, x16, [x0] + adcs x23, x2, x14 + adcs x14, x19, x8 + extr x19, x20, x10, #63 + lsl x12, x6, #1 + adcs x17, x24, x8 + adc x1, x1, x8 + cmn x7, #0x1 + adcs x24, x3, x15 + eor x9, x9, x7 + ldp x15, x3, [x0, #32] + adcs x9, x23, x9 + ldr x8, [x0, #64] + extr x20, x24, x20, #63 + adcs x23, x14, x7 + extr x2, x9, x24, #63 + adcs x14, x17, x7 + and x24, x2, #0x1ff + extr x9, x23, x9, #8 + extr x6, x14, x23, #8 + adc x23, x1, x7 + adds x10, x9, x13 + adcs x13, x6, x16 + extr x1, x23, x14, #8 + lsr x23, x23, #8 + adcs x7, x1, x11 + adcs x2, x23, x5 + and x23, x13, x7 + adcs x16, x12, x15 + and x23, x23, x2 + adcs x14, x21, x3 + and x23, x23, x16 + adcs x5, x19, x4 + and x23, x23, x14 + adcs x22, x20, x22 + and x23, x23, x5 + and x1, x23, x22 + adc x9, x8, x24 + lsr x23, x9, #9 + cmp xzr, xzr + orr x17, x9, #0xfffffffffffffe00 + adcs xzr, x10, x23 + adcs xzr, x1, xzr + adcs xzr, x17, xzr + adcs x23, x10, x23 + adcs x9, x13, xzr + lsl x4, x23, #9 + adcs x1, x7, xzr + extr x23, x9, x23, #55 + extr x9, x1, x9, #55 + adcs x10, x2, xzr + extr x1, x10, x1, #55 + stp x23, x9, [x0] + adcs x19, x16, xzr + adcs x9, x14, xzr + extr x23, x19, x10, #55 + adcs x10, x5, xzr + stp x1, x23, [x0, #16] + extr x5, x9, x19, #55 + adcs x1, x22, xzr + extr x23, x10, x9, #55 + adc x9, x17, xzr + stp x5, x23, [x0, #32] + extr x10, x1, x10, #55 + and x23, x9, #0x1ff + orr x23, x23, x4 + extr x9, x23, x1, #55 + lsr x23, x23, #55 + stp x10, x9, [x0, #48] + str x23, [x0, #64] + +// Restore regs and return + + ldp x23, x24, [sp], #16 + ldp x21, x22, [sp], #16 + ldp x19, x20, [sp], #16 + + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack,"",%progbits +#endif diff --git a/third_party/s2n-bignum/arm/p521/bignum_mul_p521_neon.S b/third_party/s2n-bignum/arm/p521/bignum_mul_p521_neon.S new file mode 100644 index 0000000000..c9d34151d5 --- /dev/null +++ b/third_party/s2n-bignum/arm/p521/bignum_mul_p521_neon.S @@ -0,0 +1,1402 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Multiply modulo p_521, z := (x * y) mod p_521, assuming x and y reduced +// Inputs x[9], y[9]; output z[9] +// +// extern void bignum_mul_p521_neon +// (uint64_t z[static 9], uint64_t x[static 9], uint64_t y[static 9]); +// +// Standard ARM ABI: X0 = z, X1 = x, X2 = y +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + +// bignum_mul_p521_neon is functionally equivalent to bignum_mul_p521. +// It is written in a way that +// 1. A subset of scalar multiplications in bignum_montmul_p384 are carefully +// chosen and vectorized +// 2. The vectorized assembly is rescheduled using the SLOTHY superoptimizer. +// https://github.com/slothy-optimizer/slothy +// +// The output program of step 1. is as follows: +// +// stp x19, x20, [sp, #-16]! +// stp x21, x22, [sp, #-16]! +// stp x23, x24, [sp, #-16]! +// stp x25, x26, [sp, #-16]! +// sub sp, sp, #80 +// ldp x15, x21, [x1] +// ldp x10, x17, [x1, #16] +// ldp x13, x16, [x2] +// ldr q18, [x1] +// ldr q28, [x2] +// ldp x5, x20, [x2, #16] +// movi v16.2D, #0x00000000ffffffff +// uzp2 v7.4S, v28.4S, v28.4S +// xtn v4.2S, v18.2D +// xtn v1.2S, v28.2D +// rev64 v27.4S, v28.4S +// umull v21.2D, v4.2S, v1.2S +// umull v28.2D, v4.2S, v7.2S +// uzp2 v5.4S, v18.4S, v18.4S +// mul v18.4S, v27.4S, v18.4S +// usra v28.2D, v21.2D, #32 +// umull v29.2D, v5.2S, v7.2S +// uaddlp v18.2D, v18.4S +// and v16.16B, v28.16B, v16.16B +// umlal v16.2D, v5.2S, v1.2S +// shl v18.2D, v18.2D, #32 +// usra v29.2D, v28.2D, #32 +// umlal v18.2D, v4.2S, v1.2S +// usra v29.2D, v16.2D, #32 +// mov x8, v18.d[0] +// mov x9, v18.d[1] +// mul x6, x10, x5 +// mul x19, x17, x20 +// mov x14, v29.d[0] +// adds x9, x9, x14 +// mov x14, v29.d[1] +// adcs x6, x6, x14 +// umulh x14, x10, x5 +// adcs x19, x19, x14 +// umulh x14, x17, x20 +// adc x14, x14, xzr +// adds x11, x9, x8 +// adcs x9, x6, x9 +// adcs x6, x19, x6 +// adcs x19, x14, x19 +// adc x14, xzr, x14 +// adds x3, x9, x8 +// adcs x24, x6, x11 +// adcs x9, x19, x9 +// adcs x6, x14, x6 +// adcs x19, xzr, x19 +// adc x14, xzr, x14 +// subs x4, x10, x17 +// cneg x4, x4, cc +// csetm x7, cc +// subs x23, x20, x5 +// cneg x23, x23, cc +// mul x22, x4, x23 +// umulh x4, x4, x23 +// cinv x7, x7, cc +// cmn x7, #0x1 +// eor x23, x22, x7 +// adcs x6, x6, x23 +// eor x4, x4, x7 +// adcs x19, x19, x4 +// adc x14, x14, x7 +// subs x4, x15, x21 +// cneg x4, x4, cc +// csetm x7, cc +// subs x23, x16, x13 +// cneg x23, x23, cc +// mul x22, x4, x23 +// umulh x4, x4, x23 +// cinv x7, x7, cc +// cmn x7, #0x1 +// eor x23, x22, x7 +// adcs x11, x11, x23 +// eor x4, x4, x7 +// adcs x3, x3, x4 +// adcs x24, x24, x7 +// adcs x9, x9, x7 +// adcs x6, x6, x7 +// adcs x19, x19, x7 +// adc x14, x14, x7 +// subs x4, x21, x17 +// cneg x4, x4, cc +// csetm x7, cc +// subs x23, x20, x16 +// cneg x23, x23, cc +// mul x22, x4, x23 +// umulh x4, x4, x23 +// cinv x7, x7, cc +// cmn x7, #0x1 +// eor x23, x22, x7 +// adcs x9, x9, x23 +// eor x4, x4, x7 +// adcs x6, x6, x4 +// adcs x19, x19, x7 +// adc x14, x14, x7 +// subs x4, x15, x10 +// cneg x4, x4, cc +// csetm x7, cc +// subs x23, x5, x13 +// cneg x23, x23, cc +// mul x22, x4, x23 +// umulh x4, x4, x23 +// cinv x7, x7, cc +// cmn x7, #0x1 +// eor x23, x22, x7 +// adcs x3, x3, x23 +// eor x4, x4, x7 +// adcs x24, x24, x4 +// adcs x9, x9, x7 +// adcs x6, x6, x7 +// adcs x19, x19, x7 +// adc x14, x14, x7 +// subs x17, x15, x17 +// cneg x17, x17, cc +// csetm x4, cc +// subs x13, x20, x13 +// cneg x13, x13, cc +// mul x20, x17, x13 +// umulh x17, x17, x13 +// cinv x13, x4, cc +// cmn x13, #0x1 +// eor x20, x20, x13 +// adcs x20, x24, x20 +// eor x17, x17, x13 +// adcs x17, x9, x17 +// adcs x9, x6, x13 +// adcs x6, x19, x13 +// adc x13, x14, x13 +// subs x21, x21, x10 +// cneg x21, x21, cc +// csetm x10, cc +// subs x16, x5, x16 +// cneg x16, x16, cc +// mul x5, x21, x16 +// umulh x21, x21, x16 +// cinv x10, x10, cc +// cmn x10, #0x1 +// eor x16, x5, x10 +// adcs x16, x20, x16 +// eor x21, x21, x10 +// adcs x21, x17, x21 +// adcs x17, x9, x10 +// adcs x5, x6, x10 +// adc x10, x13, x10 +// lsl x13, x8, #9 +// extr x20, x11, x8, #55 +// extr x8, x3, x11, #55 +// extr x9, x16, x3, #55 +// lsr x16, x16, #55 +// stp x21, x17, [sp] // @slothy:writes=stack0 +// stp x5, x10, [sp, #16] // @slothy:writes=stack16 +// stp x13, x20, [sp, #32] // @slothy:writes=stack32 +// stp x8, x9, [sp, #48] // @slothy:writes=stack48 +// str x16, [sp, #64] // @slothy:writes=stack64 +// ldp x21, x10, [x1, #32] +// ldp x17, x13, [x1, #48] +// ldp x16, x5, [x2, #32] +// ldr q18, [x1, #32] +// ldr q28, [x2, #32] +// ldp x20, x8, [x2, #48] +// movi v16.2D, #0x00000000ffffffff +// uzp2 v7.4S, v28.4S, v28.4S +// xtn v4.2S, v18.2D +// xtn v1.2S, v28.2D +// rev64 v28.4S, v28.4S +// umull v27.2D, v4.2S, v1.2S +// umull v29.2D, v4.2S, v7.2S +// uzp2 v21.4S, v18.4S, v18.4S +// mul v28.4S, v28.4S, v18.4S +// usra v29.2D, v27.2D, #32 +// umull v18.2D, v21.2S, v7.2S +// uaddlp v28.2D, v28.4S +// and v16.16B, v29.16B, v16.16B +// umlal v16.2D, v21.2S, v1.2S +// shl v28.2D, v28.2D, #32 +// usra v18.2D, v29.2D, #32 +// umlal v28.2D, v4.2S, v1.2S +// usra v18.2D, v16.2D, #32 +// mov x9, v28.d[0] +// mov x6, v28.d[1] +// mul x19, x17, x20 +// mul x14, x13, x8 +// mov x11, v18.d[0] +// adds x6, x6, x11 +// mov x11, v18.d[1] +// adcs x19, x19, x11 +// umulh x11, x17, x20 +// adcs x14, x14, x11 +// umulh x11, x13, x8 +// adc x11, x11, xzr +// adds x3, x6, x9 +// adcs x6, x19, x6 +// adcs x19, x14, x19 +// adcs x14, x11, x14 +// adc x11, xzr, x11 +// adds x24, x6, x9 +// adcs x4, x19, x3 +// adcs x6, x14, x6 +// adcs x19, x11, x19 +// adcs x14, xzr, x14 +// adc x11, xzr, x11 +// subs x7, x17, x13 +// cneg x7, x7, cc +// csetm x23, cc +// subs x22, x8, x20 +// cneg x22, x22, cc +// mul x12, x7, x22 +// umulh x7, x7, x22 +// cinv x23, x23, cc +// cmn x23, #0x1 +// eor x22, x12, x23 +// adcs x19, x19, x22 +// eor x7, x7, x23 +// adcs x14, x14, x7 +// adc x11, x11, x23 +// subs x7, x21, x10 +// cneg x7, x7, cc +// csetm x23, cc +// subs x22, x5, x16 +// cneg x22, x22, cc +// mul x12, x7, x22 +// umulh x7, x7, x22 +// cinv x23, x23, cc +// cmn x23, #0x1 +// eor x22, x12, x23 +// adcs x3, x3, x22 +// eor x7, x7, x23 +// adcs x24, x24, x7 +// adcs x4, x4, x23 +// adcs x6, x6, x23 +// adcs x19, x19, x23 +// adcs x14, x14, x23 +// adc x11, x11, x23 +// subs x7, x10, x13 +// cneg x7, x7, cc +// csetm x23, cc +// subs x22, x8, x5 +// cneg x22, x22, cc +// mul x12, x7, x22 +// umulh x7, x7, x22 +// cinv x23, x23, cc +// cmn x23, #0x1 +// eor x22, x12, x23 +// adcs x6, x6, x22 +// eor x7, x7, x23 +// adcs x19, x19, x7 +// adcs x14, x14, x23 +// adc x11, x11, x23 +// subs x7, x21, x17 +// cneg x7, x7, cc +// csetm x23, cc +// subs x22, x20, x16 +// cneg x22, x22, cc +// mul x12, x7, x22 +// umulh x7, x7, x22 +// cinv x23, x23, cc +// cmn x23, #0x1 +// eor x22, x12, x23 +// adcs x24, x24, x22 +// eor x7, x7, x23 +// adcs x4, x4, x7 +// adcs x6, x6, x23 +// adcs x19, x19, x23 +// adcs x14, x14, x23 +// adc x11, x11, x23 +// subs x7, x21, x13 +// cneg x7, x7, cc +// csetm x23, cc +// subs x22, x8, x16 +// cneg x22, x22, cc +// mul x12, x7, x22 +// umulh x7, x7, x22 +// cinv x23, x23, cc +// cmn x23, #0x1 +// eor x22, x12, x23 +// adcs x4, x4, x22 +// eor x7, x7, x23 +// adcs x6, x6, x7 +// adcs x19, x19, x23 +// adcs x14, x14, x23 +// adc x11, x11, x23 +// subs x7, x10, x17 +// cneg x7, x7, cc +// csetm x23, cc +// subs x22, x20, x5 +// cneg x22, x22, cc +// mul x12, x7, x22 +// umulh x7, x7, x22 +// cinv x23, x23, cc +// cmn x23, #0x1 +// eor x22, x12, x23 +// adcs x4, x4, x22 +// eor x7, x7, x23 +// adcs x6, x6, x7 +// adcs x19, x19, x23 +// adcs x14, x14, x23 +// adc x11, x11, x23 +// ldp x7, x23, [sp] // @slothy:reads=stack0 +// adds x9, x9, x7 +// adcs x3, x3, x23 +// stp x9, x3, [sp] // @slothy:writes=stack0 +// ldp x9, x3, [sp, #16] // @slothy:reads=stack16 +// adcs x9, x24, x9 +// adcs x3, x4, x3 +// stp x9, x3, [sp, #16] // @slothy:writes=stack16 +// ldp x9, x3, [sp, #32] // @slothy:reads=stack32 +// adcs x9, x6, x9 +// adcs x6, x19, x3 +// stp x9, x6, [sp, #32] // @slothy:writes=stack32 +// ldp x9, x6, [sp, #48] // @slothy:reads=stack48 +// adcs x9, x14, x9 +// adcs x6, x11, x6 +// stp x9, x6, [sp, #48] // @slothy:writes=stack48 +// ldr x9, [sp, #64] // @slothy:reads=stack64 +// adc x9, x9, xzr +// str x9, [sp, #64] // @slothy:writes=stack64 +// ldp x9, x6, [x1] +// subs x21, x21, x9 +// sbcs x10, x10, x6 +// ldp x9, x6, [x1, #16] +// sbcs x17, x17, x9 +// sbcs x13, x13, x6 +// csetm x9, cc +// ldp x6, x19, [x2] +// subs x16, x6, x16 +// sbcs x5, x19, x5 +// ldp x6, x19, [x2, #16] +// sbcs x20, x6, x20 +// sbcs x8, x19, x8 +// csetm x6, cc +// eor x21, x21, x9 +// subs x21, x21, x9 +// eor x10, x10, x9 +// sbcs x10, x10, x9 +// eor x17, x17, x9 +// sbcs x17, x17, x9 +// eor x13, x13, x9 +// sbc x13, x13, x9 +// eor x16, x16, x6 +// subs x16, x16, x6 +// eor x5, x5, x6 +// sbcs x5, x5, x6 +// eor x20, x20, x6 +// sbcs x20, x20, x6 +// eor x8, x8, x6 +// sbc x8, x8, x6 +// eor x9, x6, x9 +// mul x6, x21, x16 +// mul x19, x10, x5 +// mul x14, x17, x20 +// mul x11, x13, x8 +// umulh x3, x21, x16 +// adds x19, x19, x3 +// umulh x3, x10, x5 +// adcs x14, x14, x3 +// umulh x3, x17, x20 +// adcs x11, x11, x3 +// umulh x3, x13, x8 +// adc x3, x3, xzr +// adds x24, x19, x6 +// adcs x19, x14, x19 +// adcs x14, x11, x14 +// adcs x11, x3, x11 +// adc x3, xzr, x3 +// adds x4, x19, x6 +// adcs x7, x14, x24 +// adcs x19, x11, x19 +// adcs x14, x3, x14 +// adcs x11, xzr, x11 +// adc x3, xzr, x3 +// subs x23, x17, x13 +// cneg x23, x23, cc +// csetm x22, cc +// subs x12, x8, x20 +// cneg x12, x12, cc +// mul x15, x23, x12 +// umulh x23, x23, x12 +// cinv x22, x22, cc +// cmn x22, #0x1 +// eor x12, x15, x22 +// adcs x14, x14, x12 +// eor x23, x23, x22 +// adcs x11, x11, x23 +// adc x3, x3, x22 +// subs x23, x21, x10 +// cneg x23, x23, cc +// csetm x22, cc +// subs x12, x5, x16 +// cneg x12, x12, cc +// mul x15, x23, x12 +// umulh x23, x23, x12 +// cinv x22, x22, cc +// cmn x22, #0x1 +// eor x12, x15, x22 +// adcs x24, x24, x12 +// eor x23, x23, x22 +// adcs x4, x4, x23 +// adcs x7, x7, x22 +// adcs x19, x19, x22 +// adcs x14, x14, x22 +// adcs x11, x11, x22 +// adc x3, x3, x22 +// subs x23, x10, x13 +// cneg x23, x23, cc +// csetm x22, cc +// subs x12, x8, x5 +// cneg x12, x12, cc +// mul x15, x23, x12 +// umulh x23, x23, x12 +// cinv x22, x22, cc +// cmn x22, #0x1 +// eor x12, x15, x22 +// adcs x19, x19, x12 +// eor x23, x23, x22 +// adcs x14, x14, x23 +// adcs x11, x11, x22 +// adc x3, x3, x22 +// subs x23, x21, x17 +// cneg x23, x23, cc +// csetm x22, cc +// subs x12, x20, x16 +// cneg x12, x12, cc +// mul x15, x23, x12 +// umulh x23, x23, x12 +// cinv x22, x22, cc +// cmn x22, #0x1 +// eor x12, x15, x22 +// adcs x4, x4, x12 +// eor x23, x23, x22 +// adcs x7, x7, x23 +// adcs x19, x19, x22 +// adcs x14, x14, x22 +// adcs x11, x11, x22 +// adc x3, x3, x22 +// subs x21, x21, x13 +// cneg x21, x21, cc +// csetm x13, cc +// subs x16, x8, x16 +// cneg x16, x16, cc +// mul x8, x21, x16 +// umulh x21, x21, x16 +// cinv x13, x13, cc +// cmn x13, #0x1 +// eor x16, x8, x13 +// adcs x16, x7, x16 +// eor x21, x21, x13 +// adcs x21, x19, x21 +// adcs x8, x14, x13 +// adcs x19, x11, x13 +// adc x13, x3, x13 +// subs x10, x10, x17 +// cneg x10, x10, cc +// csetm x17, cc +// subs x5, x20, x5 +// cneg x5, x5, cc +// mul x20, x10, x5 +// umulh x10, x10, x5 +// cinv x17, x17, cc +// cmn x17, #0x1 +// eor x5, x20, x17 +// adcs x16, x16, x5 +// eor x10, x10, x17 +// adcs x21, x21, x10 +// adcs x10, x8, x17 +// adcs x5, x19, x17 +// adc x17, x13, x17 +// ldp x13, x20, [sp] // @slothy:reads=stack0 +// ldp x8, x19, [sp, #16] // @slothy:reads=stack16 +// eor x6, x6, x9 +// adds x6, x6, x13 +// eor x14, x24, x9 +// adcs x14, x14, x20 +// eor x11, x4, x9 +// adcs x11, x11, x8 +// eor x16, x16, x9 +// adcs x16, x16, x19 +// eor x21, x21, x9 +// ldp x3, x24, [sp, #32] // @slothy:reads=stack32 +// ldp x4, x7, [sp, #48] // @slothy:reads=stack48 +// ldr x23, [sp, #64] // @slothy:reads=stack64 +// adcs x21, x21, x3 +// eor x10, x10, x9 +// adcs x10, x10, x24 +// eor x5, x5, x9 +// adcs x5, x5, x4 +// eor x17, x17, x9 +// adcs x17, x17, x7 +// adc x22, x23, xzr +// adds x21, x21, x13 +// adcs x10, x10, x20 +// adcs x13, x5, x8 +// adcs x17, x17, x19 +// and x5, x9, #0x1ff +// lsl x20, x6, #9 +// orr x5, x20, x5 +// adcs x5, x3, x5 +// extr x20, x14, x6, #55 +// adcs x20, x24, x20 +// extr x8, x11, x14, #55 +// adcs x8, x4, x8 +// extr x9, x16, x11, #55 +// adcs x9, x7, x9 +// lsr x16, x16, #55 +// adc x16, x16, x23 +// ldr x6, [x2, #64] +// ldp x19, x14, [x1] +// and x11, x19, #0xfffffffffffff +// mul x11, x6, x11 +// ldr x3, [x1, #64] +// ldp x24, x4, [x2] +// and x7, x24, #0xfffffffffffff +// mul x7, x3, x7 +// add x11, x11, x7 +// extr x19, x14, x19, #52 +// and x19, x19, #0xfffffffffffff +// mul x19, x6, x19 +// extr x24, x4, x24, #52 +// and x24, x24, #0xfffffffffffff +// mul x24, x3, x24 +// add x19, x19, x24 +// lsr x24, x11, #52 +// add x19, x19, x24 +// lsl x11, x11, #12 +// extr x11, x19, x11, #12 +// adds x21, x21, x11 +// ldp x11, x24, [x1, #16] +// ldp x7, x23, [x2, #16] +// extr x14, x11, x14, #40 +// and x14, x14, #0xfffffffffffff +// mul x14, x6, x14 +// extr x4, x7, x4, #40 +// and x4, x4, #0xfffffffffffff +// mul x4, x3, x4 +// add x14, x14, x4 +// lsr x4, x19, #52 +// add x14, x14, x4 +// lsl x19, x19, #12 +// extr x19, x14, x19, #24 +// adcs x10, x10, x19 +// extr x19, x24, x11, #28 +// and x19, x19, #0xfffffffffffff +// mul x19, x6, x19 +// extr x11, x23, x7, #28 +// and x11, x11, #0xfffffffffffff +// mul x11, x3, x11 +// add x19, x19, x11 +// lsr x11, x14, #52 +// add x19, x19, x11 +// lsl x14, x14, #12 +// extr x14, x19, x14, #36 +// adcs x13, x13, x14 +// and x14, x10, x13 +// ldp x11, x4, [x1, #32] +// ldp x7, x12, [x2, #32] +// extr x24, x11, x24, #16 +// and x24, x24, #0xfffffffffffff +// mul x24, x6, x24 +// extr x23, x7, x23, #16 +// and x23, x23, #0xfffffffffffff +// mul x23, x3, x23 +// add x24, x24, x23 +// lsl x23, x22, #48 +// add x24, x24, x23 +// lsr x23, x19, #52 +// add x24, x24, x23 +// lsl x19, x19, #12 +// extr x19, x24, x19, #48 +// adcs x17, x17, x19 +// and x19, x14, x17 +// lsr x14, x11, #4 +// and x14, x14, #0xfffffffffffff +// mul x14, x6, x14 +// lsr x23, x7, #4 +// and x23, x23, #0xfffffffffffff +// mul x23, x3, x23 +// add x14, x14, x23 +// lsr x23, x24, #52 +// add x14, x14, x23 +// lsl x24, x24, #12 +// extr x24, x14, x24, #60 +// extr x11, x4, x11, #56 +// and x11, x11, #0xfffffffffffff +// mul x11, x6, x11 +// extr x7, x12, x7, #56 +// and x7, x7, #0xfffffffffffff +// mul x7, x3, x7 +// add x11, x11, x7 +// lsr x14, x14, #52 +// add x14, x11, x14 +// lsl x11, x24, #8 +// extr x11, x14, x11, #8 +// adcs x5, x5, x11 +// and x19, x19, x5 +// ldp x11, x24, [x1, #48] +// ldp x2, x7, [x2, #48] +// extr x4, x11, x4, #44 +// and x4, x4, #0xfffffffffffff +// mul x4, x6, x4 +// extr x23, x2, x12, #44 +// and x23, x23, #0xfffffffffffff +// mul x23, x3, x23 +// add x4, x4, x23 +// lsr x23, x14, #52 +// add x4, x4, x23 +// lsl x14, x14, #12 +// extr x14, x4, x14, #20 +// adcs x20, x20, x14 +// and x19, x19, x20 +// extr x14, x24, x11, #32 +// and x14, x14, #0xfffffffffffff +// mul x14, x6, x14 +// extr x2, x7, x2, #32 +// and x2, x2, #0xfffffffffffff +// mul x2, x3, x2 +// add x2, x14, x2 +// lsr x14, x4, #52 +// add x2, x2, x14 +// lsl x14, x4, #12 +// extr x14, x2, x14, #32 +// adcs x8, x8, x14 +// and x19, x19, x8 +// lsr x14, x24, #20 +// mul x14, x6, x14 +// lsr x11, x7, #20 +// mul x11, x3, x11 +// add x14, x14, x11 +// lsr x11, x2, #52 +// add x14, x14, x11 +// lsl x2, x2, #12 +// extr x2, x14, x2, #44 +// adcs x9, x9, x2 +// and x2, x19, x9 +// mul x6, x6, x3 +// lsr x19, x14, #44 +// add x6, x6, x19 +// adc x16, x16, x6 +// lsr x6, x16, #9 +// orr x16, x16, #0xfffffffffffffe00 +// cmp xzr, xzr +// adcs xzr, x21, x6 +// adcs xzr, x2, xzr +// adcs xzr, x16, xzr +// adcs x21, x21, x6 +// adcs x10, x10, xzr +// adcs x13, x13, xzr +// adcs x17, x17, xzr +// adcs x5, x5, xzr +// adcs x20, x20, xzr +// adcs x8, x8, xzr +// adcs x9, x9, xzr +// adc x16, x16, xzr +// and x2, x21, #0x1ff +// extr x21, x10, x21, #9 +// extr x10, x13, x10, #9 +// stp x21, x10, [x0] // @slothy:writes=buffer0 +// extr x21, x17, x13, #9 +// extr x10, x5, x17, #9 +// stp x21, x10, [x0, #16] // @slothy:writes=buffer16 +// extr x21, x20, x5, #9 +// extr x10, x8, x20, #9 +// stp x21, x10, [x0, #32] // @slothy:writes=buffer32 +// extr x21, x9, x8, #9 +// extr x10, x16, x9, #9 +// stp x21, x10, [x0, #48] // @slothy:writes=buffer48 +// str x2, [x0, #64] // @slothy:writes=buffer64 +// add sp, sp, #80 +// ldp x25, x26, [sp], #16 +// ldp x23, x24, [sp], #16 +// ldp x21, x22, [sp], #16 +// ldp x19, x20, [sp], #16 +// ret +// +// The bash script used for step 2 is as follows: +// +// # Store the assembly instructions except the last 'ret', +// # callee-register store/loads and add/sub sp #80 as, say, 'input.S'. +// export OUTPUTS="[hint_buffer0,hint_buffer16,hint_buffer32,hint_buffer48,hint_buffer64]" +// export RESERVED_REGS="[x18,x27,x28,x29,x30,sp,q8,q9,q10,q11,q12,q13,q14,q15,v8,v9,v10,v11,v12,v13,v14,v15]" +// /tools/external/slothy.sh input.S my_out_dir +// # my_out_dir/3.opt.s is the optimized assembly. Its output may differ +// # from this file since the sequence is non-deterministically chosen. +// # Please add 'ret' at the end of the output assembly. + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(bignum_mul_p521_neon) + S2N_BN_SYM_PRIVACY_DIRECTIVE(bignum_mul_p521_neon) + .text + .balign 4 + +S2N_BN_SYMBOL(bignum_mul_p521_neon): + +// Save registers and make space for the temporary buffer + + stp x19, x20, [sp, #-16]! + stp x21, x22, [sp, #-16]! + stp x23, x24, [sp, #-16]! + stp x25, x26, [sp, #-16]! + sub sp, sp, #80 + + ldr q6, [x2] + ldp x10, x17, [x1, #16] + ldr q4, [x1] + ldr q16, [x2, #32] + ldp x5, x20, [x2, #16] + ldr q2, [x1, #32] + movi v31.2D, #0x00000000ffffffff + uzp2 v17.4S, v6.4S, v6.4S + rev64 v7.4S, v6.4S + ldp x15, x21, [x1] + xtn v25.2S, v6.2D + xtn v22.2S, v4.2D + subs x14, x10, x17 + mul v7.4S, v7.4S, v4.4S + csetm x8, cc + rev64 v3.4S, v16.4S + xtn v1.2S, v16.2D + ldp x13, x16, [x2] + mul x26, x10, x5 + uzp2 v16.4S, v16.4S, v16.4S + uaddlp v26.2D, v7.4S + cneg x4, x14, cc + subs x24, x15, x21 + xtn v5.2S, v2.2D + mul v28.4S, v3.4S, v2.4S + shl v26.2D, v26.2D, #32 + mul x22, x17, x20 + umull v20.2D, v22.2S, v25.2S + uzp2 v6.4S, v4.4S, v4.4S + umull v18.2D, v22.2S, v17.2S + uzp2 v4.4S, v2.4S, v2.4S + cneg x14, x24, cc + csetm x7, cc + umulh x11, x17, x20 + usra v18.2D, v20.2D, #32 + uaddlp v7.2D, v28.4S + subs x19, x16, x13 + umlal v26.2D, v22.2S, v25.2S + cneg x19, x19, cc + shl v28.2D, v7.2D, #32 + umull v7.2D, v5.2S, v1.2S + umull v30.2D, v5.2S, v16.2S + cinv x6, x7, cc + mul x25, x14, x19 + umlal v28.2D, v5.2S, v1.2S + umull v21.2D, v6.2S, v17.2S + umulh x14, x14, x19 + usra v30.2D, v7.2D, #32 + subs x9, x20, x5 + and v29.16B, v18.16B, v31.16B + cinv x23, x8, cc + mov x8, v26.d[1] + cneg x12, x9, cc + usra v21.2D, v18.2D, #32 + umlal v29.2D, v6.2S, v25.2S + mul x24, x4, x12 + umull v18.2D, v4.2S, v16.2S + movi v25.2D, #0x00000000ffffffff + eor x9, x14, x6 + and v7.16B, v30.16B, v25.16B + usra v21.2D, v29.2D, #32 + umulh x7, x10, x5 + usra v18.2D, v30.2D, #32 + umlal v7.2D, v4.2S, v1.2S + mov x19, v21.d[0] + umulh x3, x4, x12 + mov x14, v21.d[1] + usra v18.2D, v7.2D, #32 + adds x4, x8, x19 + mov x8, v26.d[0] + adcs x19, x26, x14 + adcs x14, x22, x7 + adc x12, x11, xzr + adds x11, x4, x8 + adcs x26, x19, x4 + adcs x22, x14, x19 + eor x4, x24, x23 + adcs x14, x12, x14 + eor x7, x25, x6 + adc x25, xzr, x12 + eor x19, x3, x23 + adds x3, x26, x8 + adcs x24, x22, x11 + adcs x12, x14, x26 + adcs x22, x25, x22 + adcs x26, xzr, x14 + adc x14, xzr, x25 + cmn x23, #0x1 + adcs x22, x22, x4 + adcs x19, x26, x19 + adc x25, x14, x23 + subs x14, x21, x17 + cneg x23, x14, cc + csetm x26, cc + subs x4, x20, x16 + cneg x14, x4, cc + cinv x4, x26, cc + cmn x6, #0x1 + adcs x11, x11, x7 + mul x7, x23, x14 + adcs x9, x3, x9 + adcs x26, x24, x6 + umulh x3, x23, x14 + adcs x14, x12, x6 + adcs x22, x22, x6 + adcs x12, x19, x6 + extr x24, x11, x8, #55 + adc x6, x25, x6 + subs x19, x15, x17 + csetm x17, cc + cneg x23, x19, cc + subs x19, x20, x13 + lsl x25, x8, #9 + eor x8, x7, x4 + cneg x20, x19, cc + umulh x7, x23, x20 + cinv x19, x17, cc + subs x17, x15, x10 + csetm x15, cc + stp x25, x24, [sp, #32] + cneg x24, x17, cc + mul x20, x23, x20 + subs x25, x5, x13 + cneg x13, x25, cc + cinv x15, x15, cc + mul x25, x24, x13 + subs x21, x21, x10 + csetm x23, cc + cneg x17, x21, cc + subs x21, x5, x16 + umulh x13, x24, x13 + cinv x10, x23, cc + cneg x23, x21, cc + cmn x4, #0x1 + adcs x14, x14, x8 + eor x21, x3, x4 + adcs x21, x22, x21 + eor x5, x20, x19 + adcs x24, x12, x4 + mul x12, x17, x23 + eor x8, x25, x15 + adc x25, x6, x4 + cmn x15, #0x1 + adcs x6, x9, x8 + ldp x20, x8, [x2, #48] + eor x9, x13, x15 + adcs x4, x26, x9 + umulh x26, x17, x23 + ldp x17, x13, [x1, #48] + adcs x9, x14, x15 + adcs x16, x21, x15 + adcs x14, x24, x15 + eor x21, x7, x19 + mul x23, x17, x20 + adc x24, x25, x15 + cmn x19, #0x1 + adcs x7, x4, x5 + adcs x9, x9, x21 + umulh x3, x13, x8 + adcs x16, x16, x19 + adcs x22, x14, x19 + eor x5, x12, x10 + adc x12, x24, x19 + cmn x10, #0x1 + adcs x19, x7, x5 + eor x14, x26, x10 + mov x7, v28.d[1] + adcs x24, x9, x14 + extr x4, x19, x6, #55 + umulh x15, x17, x20 + mov x14, v18.d[1] + lsr x9, x19, #55 + adcs x5, x16, x10 + mov x16, v18.d[0] + adcs x19, x22, x10 + str x9, [sp, #64] + extr x25, x6, x11, #55 + adc x21, x12, x10 + subs x26, x17, x13 + stp x25, x4, [sp, #48] + stp x19, x21, [sp, #16] + csetm x6, cc + cneg x4, x26, cc + mul x19, x13, x8 + subs x11, x8, x20 + stp x24, x5, [sp] + ldp x21, x10, [x1, #32] + cinv x12, x6, cc + cneg x6, x11, cc + mov x9, v28.d[0] + umulh x25, x4, x6 + adds x22, x7, x16 + ldp x16, x5, [x2, #32] + adcs x14, x23, x14 + adcs x11, x19, x15 + adc x24, x3, xzr + adds x3, x22, x9 + adcs x15, x14, x22 + mul x22, x4, x6 + adcs x6, x11, x14 + adcs x4, x24, x11 + eor x14, x25, x12 + adc x26, xzr, x24 + subs x7, x21, x10 + csetm x23, cc + cneg x19, x7, cc + subs x24, x5, x16 + cneg x11, x24, cc + cinv x7, x23, cc + adds x25, x15, x9 + eor x23, x22, x12 + adcs x22, x6, x3 + mul x24, x19, x11 + adcs x15, x4, x15 + adcs x6, x26, x6 + umulh x19, x19, x11 + adcs x11, xzr, x4 + adc x26, xzr, x26 + cmn x12, #0x1 + adcs x4, x6, x23 + eor x6, x24, x7 + adcs x14, x11, x14 + adc x26, x26, x12 + subs x11, x10, x13 + cneg x12, x11, cc + csetm x11, cc + eor x19, x19, x7 + subs x24, x8, x5 + cinv x11, x11, cc + cneg x24, x24, cc + cmn x7, #0x1 + adcs x3, x3, x6 + mul x23, x12, x24 + adcs x25, x25, x19 + adcs x6, x22, x7 + umulh x19, x12, x24 + adcs x22, x15, x7 + adcs x12, x4, x7 + eor x24, x23, x11 + adcs x4, x14, x7 + adc x26, x26, x7 + eor x19, x19, x11 + subs x14, x21, x17 + cneg x7, x14, cc + csetm x14, cc + subs x23, x20, x16 + cinv x14, x14, cc + cneg x23, x23, cc + cmn x11, #0x1 + adcs x22, x22, x24 + mul x24, x7, x23 + adcs x15, x12, x19 + adcs x4, x4, x11 + adc x19, x26, x11 + umulh x26, x7, x23 + subs x7, x21, x13 + eor x11, x24, x14 + cneg x23, x7, cc + csetm x12, cc + subs x7, x8, x16 + cneg x7, x7, cc + cinv x12, x12, cc + cmn x14, #0x1 + eor x26, x26, x14 + adcs x11, x25, x11 + mul x25, x23, x7 + adcs x26, x6, x26 + adcs x6, x22, x14 + adcs x24, x15, x14 + umulh x23, x23, x7 + adcs x4, x4, x14 + adc x22, x19, x14 + eor x14, x25, x12 + eor x7, x23, x12 + cmn x12, #0x1 + adcs x14, x26, x14 + ldp x19, x25, [x2] + ldp x15, x23, [x2, #16] + adcs x26, x6, x7 + adcs x24, x24, x12 + adcs x7, x4, x12 + adc x4, x22, x12 + subs x19, x19, x16 + ldp x16, x22, [x1] + sbcs x6, x25, x5 + ldp x12, x25, [x1, #16] + sbcs x15, x15, x20 + sbcs x8, x23, x8 + csetm x23, cc + subs x21, x21, x16 + eor x16, x19, x23 + sbcs x19, x10, x22 + eor x22, x6, x23 + eor x8, x8, x23 + sbcs x6, x17, x12 + sbcs x13, x13, x25 + csetm x12, cc + subs x10, x10, x17 + cneg x17, x10, cc + csetm x25, cc + subs x5, x20, x5 + eor x10, x19, x12 + cneg x19, x5, cc + eor x20, x15, x23 + eor x21, x21, x12 + cinv x15, x25, cc + mul x25, x17, x19 + subs x16, x16, x23 + sbcs x5, x22, x23 + eor x6, x6, x12 + sbcs x20, x20, x23 + eor x22, x13, x12 + sbc x8, x8, x23 + subs x21, x21, x12 + umulh x19, x17, x19 + sbcs x10, x10, x12 + sbcs x17, x6, x12 + eor x6, x19, x15 + eor x19, x25, x15 + umulh x25, x17, x20 + sbc x13, x22, x12 + cmn x15, #0x1 + adcs x22, x14, x19 + adcs x19, x26, x6 + ldp x6, x26, [sp] + adcs x14, x24, x15 + umulh x24, x21, x16 + adcs x7, x7, x15 + adc x15, x4, x15 + adds x4, x9, x6 + eor x9, x23, x12 + adcs x12, x3, x26 + stp x4, x12, [sp] + ldp x4, x26, [sp, #16] + umulh x12, x10, x5 + ldp x6, x23, [sp, #32] + adcs x3, x11, x4 + mul x4, x13, x8 + adcs x26, x22, x26 + ldp x22, x11, [sp, #48] + adcs x6, x19, x6 + stp x3, x26, [sp, #16] + mul x26, x10, x5 + adcs x14, x14, x23 + stp x6, x14, [sp, #32] + ldr x6, [sp, #64] + adcs x22, x7, x22 + adcs x14, x15, x11 + mul x11, x17, x20 + adc x19, x6, xzr + stp x22, x14, [sp, #48] + adds x14, x26, x24 + str x19, [sp, #64] + umulh x19, x13, x8 + adcs x7, x11, x12 + adcs x22, x4, x25 + mul x6, x21, x16 + adc x19, x19, xzr + subs x11, x17, x13 + cneg x12, x11, cc + csetm x11, cc + subs x24, x8, x20 + cinv x11, x11, cc + cneg x24, x24, cc + adds x4, x14, x6 + adcs x14, x7, x14 + mul x3, x12, x24 + adcs x7, x22, x7 + adcs x22, x19, x22 + umulh x12, x12, x24 + adc x24, xzr, x19 + adds x19, x14, x6 + eor x3, x3, x11 + adcs x26, x7, x4 + adcs x14, x22, x14 + adcs x25, x24, x7 + adcs x23, xzr, x22 + eor x7, x12, x11 + adc x12, xzr, x24 + subs x22, x21, x10 + cneg x24, x22, cc + csetm x22, cc + subs x15, x5, x16 + cinv x22, x22, cc + cneg x15, x15, cc + cmn x11, #0x1 + adcs x3, x25, x3 + mul x25, x24, x15 + adcs x23, x23, x7 + adc x11, x12, x11 + subs x7, x10, x13 + umulh x15, x24, x15 + cneg x12, x7, cc + csetm x7, cc + eor x24, x25, x22 + eor x25, x15, x22 + cmn x22, #0x1 + adcs x24, x4, x24 + adcs x19, x19, x25 + adcs x15, x26, x22 + adcs x4, x14, x22 + adcs x26, x3, x22 + adcs x25, x23, x22 + adc x23, x11, x22 + subs x14, x21, x17 + cneg x3, x14, cc + csetm x11, cc + subs x14, x8, x5 + cneg x14, x14, cc + cinv x7, x7, cc + subs x13, x21, x13 + cneg x21, x13, cc + csetm x13, cc + mul x22, x12, x14 + subs x8, x8, x16 + cinv x13, x13, cc + umulh x14, x12, x14 + cneg x12, x8, cc + subs x8, x20, x16 + cneg x8, x8, cc + cinv x16, x11, cc + eor x22, x22, x7 + cmn x7, #0x1 + eor x14, x14, x7 + adcs x4, x4, x22 + mul x11, x3, x8 + adcs x22, x26, x14 + adcs x14, x25, x7 + eor x25, x24, x9 + adc x26, x23, x7 + umulh x7, x3, x8 + subs x17, x10, x17 + cneg x24, x17, cc + eor x3, x11, x16 + csetm x11, cc + subs x20, x20, x5 + cneg x5, x20, cc + cinv x11, x11, cc + cmn x16, #0x1 + mul x17, x21, x12 + eor x8, x7, x16 + adcs x10, x19, x3 + and x19, x9, #0x1ff + adcs x20, x15, x8 + umulh x15, x21, x12 + eor x12, x10, x9 + eor x8, x6, x9 + adcs x6, x4, x16 + adcs x4, x22, x16 + adcs x21, x14, x16 + adc x7, x26, x16 + mul x10, x24, x5 + cmn x13, #0x1 + ldp x3, x14, [x1] + eor x17, x17, x13 + umulh x5, x24, x5 + adcs x20, x20, x17 + eor x17, x15, x13 + adcs x16, x6, x17 + eor x22, x10, x11 + adcs x23, x4, x13 + extr x10, x14, x3, #52 + and x26, x3, #0xfffffffffffff + adcs x24, x21, x13 + and x15, x10, #0xfffffffffffff + adc x6, x7, x13 + cmn x11, #0x1 + adcs x17, x20, x22 + eor x4, x5, x11 + ldp x21, x10, [sp] + adcs x7, x16, x4 + eor x16, x17, x9 + eor x13, x7, x9 + ldp x3, x17, [sp, #16] + adcs x7, x23, x11 + eor x23, x7, x9 + ldp x5, x22, [sp, #32] + adcs x7, x24, x11 + adc x24, x6, x11 + ldr x6, [x2, #64] + adds x20, x8, x21 + lsl x11, x20, #9 + eor x4, x7, x9 + orr x7, x11, x19 + eor x8, x24, x9 + adcs x11, x25, x10 + mul x26, x6, x26 + ldp x19, x24, [sp, #48] + adcs x12, x12, x3 + adcs x16, x16, x17 + adcs x9, x13, x5 + ldr x25, [sp, #64] + extr x20, x11, x20, #55 + adcs x13, x23, x22 + adcs x4, x4, x19 + extr x23, x12, x11, #55 + adcs x8, x8, x24 + adc x11, x25, xzr + adds x21, x9, x21 + extr x9, x16, x12, #55 + lsr x12, x16, #55 + adcs x10, x13, x10 + mul x15, x6, x15 + adcs x13, x4, x3 + ldp x16, x4, [x2] + ldr x3, [x1, #64] + adcs x17, x8, x17 + adcs x5, x5, x7 + adcs x20, x22, x20 + adcs x8, x19, x23 + and x22, x16, #0xfffffffffffff + ldp x19, x7, [x1, #16] + adcs x9, x24, x9 + extr x24, x4, x16, #52 + adc x16, x12, x25 + mul x22, x3, x22 + and x25, x24, #0xfffffffffffff + extr x14, x19, x14, #40 + and x12, x14, #0xfffffffffffff + extr x23, x7, x19, #28 + ldp x19, x24, [x2, #16] + mul x14, x3, x25 + and x23, x23, #0xfffffffffffff + add x22, x26, x22 + lsl x11, x11, #48 + lsr x26, x22, #52 + lsl x25, x22, #12 + mul x22, x6, x12 + extr x12, x19, x4, #40 + add x4, x15, x14 + mul x15, x6, x23 + add x4, x4, x26 + extr x23, x24, x19, #28 + ldp x14, x19, [x1, #32] + and x26, x12, #0xfffffffffffff + extr x12, x4, x25, #12 + and x25, x23, #0xfffffffffffff + adds x21, x21, x12 + mul x12, x3, x26 + extr x23, x14, x7, #16 + and x23, x23, #0xfffffffffffff + mul x7, x3, x25 + ldp x25, x26, [x2, #32] + add x12, x22, x12 + extr x22, x19, x14, #56 + mul x23, x6, x23 + lsr x14, x14, #4 + extr x24, x25, x24, #16 + add x7, x15, x7 + and x15, x24, #0xfffffffffffff + and x22, x22, #0xfffffffffffff + lsr x24, x4, #52 + mul x15, x3, x15 + and x14, x14, #0xfffffffffffff + add x12, x12, x24 + lsl x24, x4, #12 + lsr x4, x12, #52 + extr x24, x12, x24, #24 + adcs x10, x10, x24 + lsl x24, x12, #12 + add x12, x7, x4 + mul x22, x6, x22 + add x4, x23, x15 + extr x7, x12, x24, #36 + adcs x13, x13, x7 + lsl x15, x12, #12 + add x7, x4, x11 + lsr x24, x12, #52 + ldp x23, x11, [x2, #48] + add x4, x7, x24 + mul x12, x6, x14 + extr x7, x26, x25, #56 + extr x14, x4, x15, #48 + and x2, x7, #0xfffffffffffff + extr x24, x11, x23, #32 + ldp x15, x7, [x1, #48] + and x1, x24, #0xfffffffffffff + lsr x24, x4, #52 + mul x2, x3, x2 + extr x26, x23, x26, #44 + lsr x23, x25, #4 + and x23, x23, #0xfffffffffffff + and x25, x26, #0xfffffffffffff + extr x26, x7, x15, #32 + extr x19, x15, x19, #44 + mul x23, x3, x23 + and x15, x26, #0xfffffffffffff + lsl x26, x4, #12 + and x4, x19, #0xfffffffffffff + lsr x11, x11, #20 + mul x19, x6, x4 + adcs x17, x17, x14 + add x14, x22, x2 + add x22, x12, x23 + lsr x7, x7, #20 + add x22, x22, x24 + extr x2, x22, x26, #60 + mul x24, x3, x25 + lsr x22, x22, #52 + add x14, x14, x22 + lsl x22, x2, #8 + extr x22, x14, x22, #8 + lsl x2, x14, #12 + mul x1, x3, x1 + adcs x12, x5, x22 + mul x5, x6, x15 + and x26, x10, x13 + and x4, x26, x17 + add x23, x19, x24 + lsr x14, x14, #52 + mul x22, x3, x11 + add x11, x23, x14 + extr x25, x11, x2, #20 + lsl x19, x11, #12 + adcs x25, x20, x25 + and x14, x4, x12 + add x1, x5, x1 + and x14, x14, x25 + mul x15, x6, x7 + add x26, x15, x22 + mul x6, x6, x3 + lsr x22, x11, #52 + add x4, x1, x22 + lsr x1, x4, #52 + extr x3, x4, x19, #32 + lsl x15, x4, #12 + add x7, x26, x1 + adcs x23, x8, x3 + extr x20, x7, x15, #44 + and x3, x14, x23 + lsr x19, x7, #44 + adcs x7, x9, x20 + add x11, x6, x19 + adc x4, x16, x11 + lsr x14, x4, #9 + cmp xzr, xzr + and x15, x3, x7 + orr x3, x4, #0xfffffffffffffe00 + adcs xzr, x21, x14 + adcs xzr, x15, xzr + adcs xzr, x3, xzr + adcs x11, x21, x14 + and x14, x11, #0x1ff + adcs x1, x10, xzr + extr x10, x1, x11, #9 + str x14, [x0, #64] + adcs x14, x13, xzr + extr x11, x14, x1, #9 + adcs x1, x17, xzr + extr x4, x1, x14, #9 + stp x10, x11, [x0] + adcs x11, x12, xzr + extr x14, x11, x1, #9 + adcs x10, x25, xzr + extr x11, x10, x11, #9 + stp x4, x14, [x0, #16] + adcs x14, x23, xzr + extr x10, x14, x10, #9 + adcs x1, x7, xzr + stp x11, x10, [x0, #32] + extr x14, x1, x14, #9 + adc x10, x3, xzr + extr x26, x10, x1, #9 + stp x14, x26, [x0, #48] + +// Restore regs and return + + add sp, sp, #80 + ldp x25, x26, [sp], #16 + ldp x23, x24, [sp], #16 + ldp x21, x22, [sp], #16 + ldp x19, x20, [sp], #16 + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack,"",%progbits +#endif diff --git a/third_party/s2n-bignum/arm/p521/bignum_sqr_p521_neon.S b/third_party/s2n-bignum/arm/p521/bignum_sqr_p521_neon.S new file mode 100644 index 0000000000..13cd1c2541 --- /dev/null +++ b/third_party/s2n-bignum/arm/p521/bignum_sqr_p521_neon.S @@ -0,0 +1,1121 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Square modulo p_521, z := (x^2) mod p_521, assuming x reduced +// Input x[9]; output z[9] +// +// extern void bignum_sqr_p521_neon (uint64_t z[static 9], +// uint64_t x[static 9]); +// +// Standard ARM ABI: X0 = z, X1 = x +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + +// bignum_montsqr_p521_neon is functionally equivalent to bignum_montsqr_p521. +// It is written in a way that +// 1. A subset of scalar multiplications in bignum_montmul_p384 are carefully +// chosen and vectorized +// 2. The vectorized assembly is rescheduled using the SLOTHY superoptimizer. +// https://github.com/slothy-optimizer/slothy +// +// The output program of step 1. is as follows: +// +// stp x19, x20, [sp, #-16]! +// stp x21, x22, [sp, #-16]! +// stp x23, x24, [sp, #-16]! +// ldp x20, x19, [x1] +// ldr q23, [x1] +// ldr q1, [x1] +// ldr q16, [x1] +// ldp x14, x12, [x1, #16] +// ldr q28, [x1, #16] +// ldr q31, [x1, #16] +// ldp x9, x2, [x1, #32] +// ldr q29, [x1, #32] +// ldr q4, [x1, #32] +// ldr q5, [x1] +// ldr q2, [x1, #32] +// ldp x6, x13, [x1, #48] +// ldr q24, [x1, #48] +// ldr q27, [x1, #48] +// ldr q0, [x1, #16] +// ldr q30, [x1, #48] +// mul x17, x9, x6 +// mul x10, x2, x13 +// umulh x24, x9, x6 +// subs x4, x9, x2 +// cneg x4, x4, cc +// csetm x16, cc +// subs x3, x13, x6 +// cneg x23, x3, cc +// mul x3, x4, x23 +// umulh x4, x4, x23 +// cinv x22, x16, cc +// eor x23, x3, x22 +// eor x16, x4, x22 +// adds x3, x17, x24 +// adc x24, x24, xzr +// umulh x4, x2, x13 +// adds x3, x3, x10 +// adcs x24, x24, x4 +// adc x4, x4, xzr +// adds x24, x24, x10 +// adc x10, x4, xzr +// cmn x22, #0x1 +// adcs x4, x3, x23 +// adcs x24, x24, x16 +// adc x10, x10, x22 +// adds x8, x17, x17 +// adcs x22, x4, x4 +// adcs x5, x24, x24 +// adcs x11, x10, x10 +// adc x23, xzr, xzr +// movi v25.2D, #0xffffffff +// uzp2 v19.4S, v4.4S, v4.4S +// xtn v26.2S, v29.2D +// xtn v22.2S, v4.2D +// rev64 v4.4S, v4.4S +// umull v7.2D, v26.2S, v22.2S +// umull v21.2D, v26.2S, v19.2S +// uzp2 v17.4S, v29.4S, v29.4S +// mul v4.4S, v4.4S, v29.4S +// usra v21.2D, v7.2D, #32 +// umull v18.2D, v17.2S, v19.2S +// uaddlp v4.2D, v4.4S +// and v7.16B, v21.16B, v25.16B +// umlal v7.2D, v17.2S, v22.2S +// shl v4.2D, v4.2D, #32 +// usra v18.2D, v21.2D, #32 +// umlal v4.2D, v26.2S, v22.2S +// usra v18.2D, v7.2D, #32 +// mov x15, v4.d[0] +// mov x16, v4.d[1] +// mul x3, x9, x2 +// mov x10, v18.d[0] +// mov x17, v18.d[1] +// umulh x4, x9, x2 +// adds x24, x10, x3 +// adcs x10, x16, x4 +// adc x17, x17, xzr +// adds x7, x24, x3 +// adcs x10, x10, x4 +// adc x17, x17, xzr +// adds x8, x8, x10 +// adcs x22, x22, x17 +// adcs x21, x5, xzr +// adcs x5, x11, xzr +// adc x11, x23, xzr +// movi v25.2D, #0xffffffff +// uzp2 v19.4S, v27.4S, v27.4S +// xtn v26.2S, v24.2D +// xtn v22.2S, v27.2D +// rev64 v4.4S, v27.4S +// umull v7.2D, v26.2S, v22.2S +// umull v21.2D, v26.2S, v19.2S +// uzp2 v17.4S, v24.4S, v24.4S +// mul v4.4S, v4.4S, v24.4S +// usra v21.2D, v7.2D, #32 +// umull v18.2D, v17.2S, v19.2S +// uaddlp v4.2D, v4.4S +// and v7.16B, v21.16B, v25.16B +// umlal v7.2D, v17.2S, v22.2S +// shl v4.2D, v4.2D, #32 +// usra v18.2D, v21.2D, #32 +// umlal v4.2D, v26.2S, v22.2S +// usra v18.2D, v7.2D, #32 +// mov x23, v4.d[0] +// mov x16, v4.d[1] +// mul x3, x6, x13 +// mov x10, v18.d[0] +// mov x17, v18.d[1] +// umulh x4, x6, x13 +// adds x24, x10, x3 +// adcs x10, x16, x4 +// adc x17, x17, xzr +// adds x24, x24, x3 +// adcs x10, x10, x4 +// adc x17, x17, xzr +// adds x23, x23, x21 +// adcs x16, x24, x5 +// adcs x3, x10, x11 +// adc x21, x17, xzr +// ldr x17, [x1, #64] +// add x5, x17, x17 +// mul x11, x17, x17 +// and x17, x20, #0xfffffffffffff +// mul x4, x5, x17 +// extr x17, x19, x20, #52 +// and x17, x17, #0xfffffffffffff +// mul x10, x5, x17 +// lsr x17, x4, #52 +// add x24, x10, x17 +// lsl x17, x4, #12 +// extr x17, x24, x17, #12 +// adds x15, x15, x17 +// extr x17, x14, x19, #40 +// and x17, x17, #0xfffffffffffff +// mul x10, x5, x17 +// lsr x17, x24, #52 +// add x4, x10, x17 +// lsl x17, x24, #12 +// extr x17, x4, x17, #24 +// adcs x7, x7, x17 +// extr x17, x12, x14, #28 +// and x17, x17, #0xfffffffffffff +// mul x10, x5, x17 +// lsr x17, x4, #52 +// add x24, x10, x17 +// lsl x17, x4, #12 +// extr x17, x24, x17, #36 +// adcs x8, x8, x17 +// extr x17, x9, x12, #16 +// and x17, x17, #0xfffffffffffff +// mul x10, x5, x17 +// lsr x17, x24, #52 +// add x4, x10, x17 +// lsl x17, x24, #12 +// extr x17, x4, x17, #48 +// adcs x22, x22, x17 +// lsr x17, x9, #4 +// and x17, x17, #0xfffffffffffff +// mul x10, x5, x17 +// lsr x17, x4, #52 +// add x24, x10, x17 +// lsl x17, x4, #12 +// extr x4, x24, x17, #60 +// extr x17, x2, x9, #56 +// and x17, x17, #0xfffffffffffff +// mul x10, x5, x17 +// lsr x17, x24, #52 +// add x24, x10, x17 +// lsl x17, x4, #8 +// extr x17, x24, x17, #8 +// adcs x23, x23, x17 +// extr x17, x6, x2, #44 +// and x17, x17, #0xfffffffffffff +// mul x10, x5, x17 +// lsr x17, x24, #52 +// add x4, x10, x17 +// lsl x17, x24, #12 +// extr x17, x4, x17, #20 +// adcs x16, x16, x17 +// extr x17, x13, x6, #32 +// and x17, x17, #0xfffffffffffff +// mul x10, x5, x17 +// lsr x17, x4, #52 +// add x24, x10, x17 +// lsl x17, x4, #12 +// extr x17, x24, x17, #32 +// adcs x3, x3, x17 +// lsr x17, x13, #20 +// mul x10, x5, x17 +// lsr x17, x24, #52 +// add x10, x10, x17 +// lsl x17, x24, #12 +// extr x17, x10, x17, #44 +// adcs x4, x21, x17 +// lsr x17, x10, #44 +// adc x24, x11, x17 +// extr x10, x7, x15, #9 +// extr x17, x8, x7, #9 +// stp x10, x17, [x0] // @slothy:writes=buffer0 +// extr x10, x22, x8, #9 +// extr x17, x23, x22, #9 +// stp x10, x17, [x0, #16] // @slothy:writes=buffer16 +// extr x10, x16, x23, #9 +// extr x17, x3, x16, #9 +// stp x10, x17, [x0, #32] // @slothy:writes=buffer32 +// extr x10, x4, x3, #9 +// extr x17, x24, x4, #9 +// stp x10, x17, [x0, #48] // @slothy:writes=buffer48 +// and x10, x15, #0x1ff +// lsr x17, x24, #9 +// add x17, x10, x17 +// str x17, [x0, #64] // @slothy:writes=buffer64 +// uzp1 v17.4S, v28.4S, v23.4S +// rev64 v4.4S, v28.4S +// uzp1 v7.4S, v23.4S, v23.4S +// mul v4.4S, v4.4S, v23.4S +// uaddlp v4.2D, v4.4S +// shl v4.2D, v4.2D, #32 +// umlal v4.2D, v7.2S, v17.2S +// mov x8, v4.d[0] +// mov x22, v4.d[1] +// umulh x23, x20, x14 +// subs x17, x20, x19 +// cneg x4, x17, cc +// csetm x24, cc +// subs x17, x12, x14 +// cneg x17, x17, cc +// mul x10, x4, x17 +// umulh x17, x4, x17 +// cinv x16, x24, cc +// eor x3, x10, x16 +// eor x4, x17, x16 +// adds x24, x8, x23 +// adc x10, x23, xzr +// umulh x17, x19, x12 +// adds x24, x24, x22 +// adcs x10, x10, x17 +// adc x17, x17, xzr +// adds x10, x10, x22 +// adc x17, x17, xzr +// cmn x16, #0x1 +// adcs x24, x24, x3 +// adcs x10, x10, x4 +// adc x17, x17, x16 +// adds x15, x8, x8 +// adcs x7, x24, x24 +// adcs x8, x10, x10 +// adcs x22, x17, x17 +// adc x23, xzr, xzr +// movi v25.2D, #0xffffffff +// uzp2 v19.4S, v16.4S, v16.4S +// xtn v26.2S, v1.2D +// xtn v22.2S, v16.2D +// rev64 v4.4S, v16.4S +// umull v7.2D, v26.2S, v22.2S +// umull v21.2D, v26.2S, v19.2S +// uzp2 v17.4S, v1.4S, v1.4S +// mul v4.4S, v4.4S, v1.4S +// usra v21.2D, v7.2D, #32 +// umull v18.2D, v17.2S, v19.2S +// uaddlp v4.2D, v4.4S +// and v7.16B, v21.16B, v25.16B +// umlal v7.2D, v17.2S, v22.2S +// shl v4.2D, v4.2D, #32 +// usra v18.2D, v21.2D, #32 +// umlal v4.2D, v26.2S, v22.2S +// usra v18.2D, v7.2D, #32 +// mov x21, v4.d[0] +// mov x16, v4.d[1] +// mul x3, x20, x19 +// mov x10, v18.d[0] +// mov x17, v18.d[1] +// umulh x4, x20, x19 +// adds x24, x10, x3 +// adcs x10, x16, x4 +// adc x17, x17, xzr +// adds x5, x24, x3 +// adcs x10, x10, x4 +// adc x17, x17, xzr +// adds x11, x15, x10 +// adcs x15, x7, x17 +// adcs x7, x8, xzr +// adcs x8, x22, xzr +// adc x22, x23, xzr +// xtn v7.2S, v31.2D +// shrn v4.2S, v31.2D, #32 +// umull v4.2D, v7.2S, v4.2S +// shl v4.2D, v4.2D, #33 +// umlal v4.2D, v7.2S, v7.2S +// mov x23, v4.d[0] +// mov x16, v4.d[1] +// mul x3, x14, x12 +// umulh x10, x14, x14 +// umulh x17, x12, x12 +// umulh x4, x14, x12 +// adds x24, x10, x3 +// adcs x10, x16, x4 +// adc x17, x17, xzr +// adds x24, x24, x3 +// adcs x10, x10, x4 +// adc x17, x17, xzr +// adds x16, x23, x7 +// adcs x3, x24, x8 +// adcs x4, x10, x22 +// adc x24, x17, xzr +// ldp x10, x17, [x0] // @slothy:reads=buffer0 +// adds x10, x10, x21 +// adcs x17, x17, x5 +// stp x10, x17, [x0] // @slothy:writes=buffer0 +// ldp x10, x17, [x0, #16] // @slothy:reads=buffer16 +// adcs x10, x10, x11 +// adcs x17, x17, x15 +// stp x10, x17, [x0, #16] // @slothy:writes=buffer16 +// ldp x10, x17, [x0, #32] // @slothy:reads=buffer32 +// adcs x10, x10, x16 +// adcs x17, x17, x3 +// stp x10, x17, [x0, #32] // @slothy:writes=buffer32 +// ldp x10, x17, [x0, #48] // @slothy:reads=buffer48 +// adcs x10, x10, x4 +// adcs x17, x17, x24 +// stp x10, x17, [x0, #48] // @slothy:writes=buffer48 +// ldr x17, [x0, #64] // @slothy:reads=buffer64 +// adc x17, x17, xzr +// str x17, [x0, #64] // @slothy:writes=buffer64 +// movi v25.2D, #0xffffffff +// uzp2 v19.4S, v2.4S, v2.4S +// xtn v26.2S, v5.2D +// xtn v22.2S, v2.2D +// rev64 v4.4S, v2.4S +// umull v7.2D, v26.2S, v22.2S +// umull v21.2D, v26.2S, v19.2S +// uzp2 v17.4S, v5.4S, v5.4S +// mul v4.4S, v4.4S, v5.4S +// usra v21.2D, v7.2D, #32 +// umull v18.2D, v17.2S, v19.2S +// uaddlp v4.2D, v4.4S +// and v7.16B, v21.16B, v25.16B +// umlal v7.2D, v17.2S, v22.2S +// shl v4.2D, v4.2D, #32 +// usra v18.2D, v21.2D, #32 +// umlal v4.2D, v26.2S, v22.2S +// usra v18.2D, v7.2D, #32 +// mov x5, v4.d[0] +// mov x4, v4.d[1] +// movi v25.2D, #0xffffffff +// uzp2 v17.4S, v30.4S, v30.4S +// xtn v19.2S, v0.2D +// xtn v26.2S, v30.2D +// rev64 v4.4S, v30.4S +// umull v7.2D, v19.2S, v26.2S +// umull v22.2D, v19.2S, v17.2S +// uzp2 v21.4S, v0.4S, v0.4S +// mul v4.4S, v4.4S, v0.4S +// usra v22.2D, v7.2D, #32 +// umull v17.2D, v21.2S, v17.2S +// uaddlp v4.2D, v4.4S +// and v7.16B, v22.16B, v25.16B +// umlal v7.2D, v21.2S, v26.2S +// shl v4.2D, v4.2D, #32 +// usra v17.2D, v22.2D, #32 +// umlal v4.2D, v19.2S, v26.2S +// usra v17.2D, v7.2D, #32 +// mov x24, v4.d[0] +// mov x10, v4.d[1] +// mov x17, v18.d[0] +// adds x4, x4, x17 +// mov x17, v18.d[1] +// adcs x24, x24, x17 +// mov x17, v17.d[0] +// adcs x10, x10, x17 +// mov x17, v17.d[1] +// adc x17, x17, xzr +// adds x15, x4, x5 +// adcs x4, x24, x4 +// adcs x24, x10, x24 +// adcs x10, x17, x10 +// adc x17, xzr, x17 +// adds x7, x4, x5 +// adcs x8, x24, x15 +// adcs x22, x10, x4 +// adcs x23, x17, x24 +// adcs x16, xzr, x10 +// adc x3, xzr, x17 +// subs x17, x14, x12 +// cneg x24, x17, cc +// csetm x4, cc +// subs x17, x13, x6 +// cneg x10, x17, cc +// mul x17, x24, x10 +// umulh x24, x24, x10 +// cinv x10, x4, cc +// cmn x10, #0x1 +// eor x17, x17, x10 +// adcs x23, x23, x17 +// eor x17, x24, x10 +// adcs x16, x16, x17 +// adc x3, x3, x10 +// subs x17, x20, x19 +// cneg x24, x17, cc +// csetm x4, cc +// subs x17, x2, x9 +// cneg x10, x17, cc +// mul x17, x24, x10 +// umulh x24, x24, x10 +// cinv x10, x4, cc +// cmn x10, #0x1 +// eor x17, x17, x10 +// adcs x11, x15, x17 +// eor x17, x24, x10 +// adcs x15, x7, x17 +// adcs x7, x8, x10 +// adcs x22, x22, x10 +// adcs x23, x23, x10 +// adcs x16, x16, x10 +// adc x3, x3, x10 +// subs x17, x19, x12 +// cneg x24, x17, cc +// csetm x4, cc +// subs x17, x13, x2 +// cneg x10, x17, cc +// mul x17, x24, x10 +// umulh x24, x24, x10 +// cinv x10, x4, cc +// cmn x10, #0x1 +// eor x17, x17, x10 +// adcs x8, x22, x17 +// eor x17, x24, x10 +// adcs x23, x23, x17 +// adcs x16, x16, x10 +// adc x3, x3, x10 +// subs x17, x20, x14 +// cneg x24, x17, cc +// csetm x4, cc +// subs x17, x6, x9 +// cneg x10, x17, cc +// mul x17, x24, x10 +// umulh x24, x24, x10 +// cinv x10, x4, cc +// cmn x10, #0x1 +// eor x17, x17, x10 +// adcs x22, x15, x17 +// eor x17, x24, x10 +// adcs x4, x7, x17 +// adcs x24, x8, x10 +// adcs x23, x23, x10 +// adcs x16, x16, x10 +// adc x3, x3, x10 +// subs x12, x20, x12 +// cneg x10, x12, cc +// csetm x17, cc +// subs x12, x13, x9 +// cneg x9, x12, cc +// mul x12, x10, x9 +// umulh x13, x10, x9 +// cinv x9, x17, cc +// cmn x9, #0x1 +// eor x12, x12, x9 +// adcs x4, x4, x12 +// eor x12, x13, x9 +// adcs x24, x24, x12 +// adcs x10, x23, x9 +// adcs x17, x16, x9 +// adc x13, x3, x9 +// subs x19, x19, x14 +// cneg x12, x19, cc +// csetm x9, cc +// subs x6, x6, x2 +// cneg x14, x6, cc +// mul x19, x12, x14 +// umulh x12, x12, x14 +// cinv x14, x9, cc +// cmn x14, #0x1 +// eor x19, x19, x14 +// adcs x23, x4, x19 +// eor x19, x12, x14 +// adcs x16, x24, x19 +// adcs x6, x10, x14 +// adcs x2, x17, x14 +// adc x9, x13, x14 +// ldp x12, x14, [x0] // @slothy:reads=buffer0 +// extr x19, x6, x16, #8 +// adds x10, x19, x12 +// extr x19, x2, x6, #8 +// adcs x17, x19, x14 +// ldp x14, x12, [x0, #16] // @slothy:reads=buffer16 +// extr x19, x9, x2, #8 +// adcs x13, x19, x14 +// and x14, x17, x13 +// lsr x19, x9, #8 +// adcs x6, x19, x12 +// and x9, x14, x6 +// ldp x14, x12, [x0, #32] // @slothy:reads=buffer32 +// lsl x19, x5, #1 +// adcs x2, x19, x14 +// and x14, x9, x2 +// extr x19, x11, x5, #63 +// adcs x3, x19, x12 +// and x9, x14, x3 +// ldp x14, x12, [x0, #48] // @slothy:reads=buffer48 +// extr x19, x22, x11, #63 +// adcs x4, x19, x14 +// and x14, x9, x4 +// extr x19, x23, x22, #63 +// adcs x24, x19, x12 +// and x12, x14, x24 +// ldr x14, [x0, #64] // @slothy:reads=buffer64 +// extr x19, x16, x23, #63 +// and x19, x19, #0x1ff +// adc x19, x14, x19 +// lsr x14, x19, #9 +// orr x19, x19, #0xfffffffffffffe00 +// cmp xzr, xzr +// adcs xzr, x10, x14 +// adcs xzr, x12, xzr +// adcs xzr, x19, xzr +// adcs x10, x10, x14 +// adcs x17, x17, xzr +// adcs x13, x13, xzr +// adcs x6, x6, xzr +// adcs x2, x2, xzr +// adcs x9, x3, xzr +// adcs x12, x4, xzr +// adcs x14, x24, xzr +// adc x19, x19, xzr +// and x19, x19, #0x1ff +// stp x10, x17, [x0] // @slothy:writes=buffer0 +// stp x13, x6, [x0, #16] // @slothy:writes=buffer16 +// stp x2, x9, [x0, #32] // @slothy:writes=buffer32 +// stp x12, x14, [x0, #48] // @slothy:writes=buffer48 +// str x19, [x0, #64] // @slothy:writes=buffer64 +// ldp x23, x24, [sp], #16 +// ldp x21, x22, [sp], #16 +// ldp x19, x20, [sp], #16 +// ret +// +// The bash script used for step 2 is as follows: +// +// # Store the assembly instructions except the last 'ret', +// # callee-register store/loads as, say, 'input.S'. +// export OUTPUTS="[hint_buffer0,hint_buffer16,hint_buffer32,hint_buffer48,hint_buffer64]" +// export RESERVED_REGS="[x18,x25,x26,x27,x28,x29,x30,sp,q8,q9,q10,q11,q12,q13,q14,q15,v8,v9,v10,v11,v12,v13,v14,v15]" +// /tools/external/slothy.sh input.S my_out_dir +// # my_out_dir/3.opt.s is the optimized assembly. Its output may differ +// # from this file since the sequence is non-deterministically chosen. +// # Please add 'ret' at the end of the output assembly. + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(bignum_sqr_p521_neon) + S2N_BN_SYM_PRIVACY_DIRECTIVE(bignum_sqr_p521_neon) + .text + .balign 4 + +S2N_BN_SYMBOL(bignum_sqr_p521_neon): + +// Save registers + + stp x19, x20, [sp, #-16]! + stp x21, x22, [sp, #-16]! + stp x23, x24, [sp, #-16]! + + ldr q23, [x1, #32] + ldp x9, x2, [x1, #32] + ldr q16, [x1, #32] + ldr q20, [x1, #48] + ldp x6, x13, [x1, #48] + rev64 v2.4S, v23.4S + mul x14, x9, x2 + ldr q31, [x1, #48] + subs x22, x9, x2 + uzp2 v26.4S, v23.4S, v23.4S + mul v30.4S, v2.4S, v16.4S + xtn v0.2S, v20.2D + csetm x12, cc + xtn v21.2S, v16.2D + xtn v23.2S, v23.2D + umulh x10, x9, x6 + rev64 v27.4S, v31.4S + umull v2.2D, v21.2S, v26.2S + cneg x23, x22, cc + uaddlp v25.2D, v30.4S + umull v18.2D, v21.2S, v23.2S + mul x22, x9, x6 + mul v6.4S, v27.4S, v20.4S + uzp2 v17.4S, v20.4S, v20.4S + shl v20.2D, v25.2D, #32 + uzp2 v27.4S, v31.4S, v31.4S + mul x16, x2, x13 + umlal v20.2D, v21.2S, v23.2S + usra v2.2D, v18.2D, #32 + adds x8, x22, x10 + umull v25.2D, v17.2S, v27.2S + xtn v31.2S, v31.2D + movi v1.2D, #0xffffffff + adc x3, x10, xzr + umulh x21, x2, x13 + uzp2 v21.4S, v16.4S, v16.4S + umull v18.2D, v0.2S, v27.2S + subs x19, x13, x6 + and v7.16B, v2.16B, v1.16B + umull v27.2D, v0.2S, v31.2S + cneg x20, x19, cc + movi v30.2D, #0xffffffff + umull v16.2D, v21.2S, v26.2S + umlal v7.2D, v21.2S, v23.2S + mul x19, x23, x20 + cinv x7, x12, cc + uaddlp v6.2D, v6.4S + eor x12, x19, x7 + adds x11, x8, x16 + umulh x10, x23, x20 + ldr q1, [x1] + usra v16.2D, v2.2D, #32 + adcs x19, x3, x21 + shl v2.2D, v6.2D, #32 + adc x20, x21, xzr + adds x17, x19, x16 + usra v18.2D, v27.2D, #32 + adc x19, x20, xzr + cmn x7, #0x1 + umlal v2.2D, v0.2S, v31.2S + umulh x16, x9, x2 + adcs x8, x11, x12 + usra v16.2D, v7.2D, #32 + ldr x12, [x1, #64] + eor x20, x10, x7 + umulh x10, x6, x13 + mov x23, v2.d[0] + mov x3, v2.d[1] + adcs x21, x17, x20 + usra v25.2D, v18.2D, #32 + and v23.16B, v18.16B, v30.16B + adc x7, x19, x7 + adds x22, x22, x22 + ldr q7, [x1, #16] + adcs x17, x8, x8 + umlal v23.2D, v17.2S, v31.2S + mov x19, v16.d[0] + mul x11, x12, x12 + ldr q4, [x1] + usra v25.2D, v23.2D, #32 + add x5, x12, x12 + adcs x15, x21, x21 + ldr q28, [x1] + mov x12, v20.d[1] + adcs x24, x7, x7 + mov x21, v16.d[1] + adc x4, xzr, xzr + adds x19, x19, x14 + ldr q18, [x1, #16] + xtn v26.2S, v1.2D + adcs x8, x12, x16 + adc x21, x21, xzr + adds x7, x19, x14 + xtn v23.2S, v7.2D + rev64 v21.4S, v28.4S + adcs x12, x8, x16 + ldp x20, x19, [x1] + mov x16, v25.d[1] + xtn v22.2S, v28.2D + adc x14, x21, xzr + adds x8, x22, x12 + uzp2 v24.4S, v28.4S, v28.4S + rev64 v28.4S, v18.4S + mul x12, x6, x13 + mul v16.4S, v21.4S, v1.4S + shrn v31.2S, v7.2D, #32 + adcs x22, x17, x14 + mov x14, v25.d[0] + and x21, x20, #0xfffffffffffff + umull v17.2D, v26.2S, v24.2S + ldr q2, [x1, #32] + adcs x17, x15, xzr + ldr q30, [x1, #48] + umull v7.2D, v26.2S, v22.2S + adcs x15, x24, xzr + ldr q0, [x1, #16] + movi v6.2D, #0xffffffff + adc x4, x4, xzr + adds x14, x14, x12 + uzp1 v27.4S, v18.4S, v4.4S + uzp2 v19.4S, v1.4S, v1.4S + adcs x24, x3, x10 + mul x3, x5, x21 + umull v29.2D, v23.2S, v31.2S + ldr q5, [x1] + adc x21, x16, xzr + adds x16, x14, x12 + extr x12, x19, x20, #52 + umull v18.2D, v19.2S, v24.2S + adcs x24, x24, x10 + and x10, x12, #0xfffffffffffff + ldp x14, x12, [x1, #16] + usra v17.2D, v7.2D, #32 + adc x21, x21, xzr + adds x23, x23, x17 + mul x17, x5, x10 + shl v21.2D, v29.2D, #33 + lsl x10, x3, #12 + lsr x1, x3, #52 + rev64 v29.4S, v2.4S + uaddlp v25.2D, v16.4S + add x17, x17, x1 + adcs x16, x16, x15 + extr x3, x14, x19, #40 + mov x15, v20.d[0] + extr x10, x17, x10, #12 + and x3, x3, #0xfffffffffffff + shl v3.2D, v25.2D, #32 + and v6.16B, v17.16B, v6.16B + mul x1, x5, x3 + usra v18.2D, v17.2D, #32 + adcs x3, x24, x4 + extr x4, x12, x14, #28 + umlal v6.2D, v19.2S, v22.2S + xtn v20.2S, v2.2D + umlal v3.2D, v26.2S, v22.2S + movi v26.2D, #0xffffffff + lsr x24, x17, #52 + and x4, x4, #0xfffffffffffff + uzp2 v19.4S, v2.4S, v2.4S + add x1, x1, x24 + mul x24, x5, x4 + lsl x4, x17, #12 + xtn v24.2S, v5.2D + extr x17, x1, x4, #24 + adc x21, x21, xzr + umlal v21.2D, v23.2S, v23.2S + adds x4, x15, x10 + lsl x10, x1, #12 + adcs x15, x7, x17 + mul v23.4S, v28.4S, v4.4S + and x7, x4, #0x1ff + lsr x17, x1, #52 + umulh x1, x19, x12 + uzp2 v17.4S, v5.4S, v5.4S + extr x4, x15, x4, #9 + add x24, x24, x17 + mul v29.4S, v29.4S, v5.4S + extr x17, x24, x10, #36 + extr x10, x9, x12, #16 + uzp1 v28.4S, v4.4S, v4.4S + adcs x17, x8, x17 + and x8, x10, #0xfffffffffffff + umull v16.2D, v24.2S, v20.2S + extr x10, x17, x15, #9 + mul x15, x5, x8 + stp x4, x10, [x0] + lsl x4, x24, #12 + lsr x8, x9, #4 + uaddlp v4.2D, v23.4S + and x8, x8, #0xfffffffffffff + umull v23.2D, v24.2S, v19.2S + mul x8, x5, x8 + extr x10, x2, x9, #56 + lsr x24, x24, #52 + and x10, x10, #0xfffffffffffff + add x15, x15, x24 + extr x4, x15, x4, #48 + mul x24, x5, x10 + lsr x10, x15, #52 + usra v23.2D, v16.2D, #32 + add x10, x8, x10 + shl v4.2D, v4.2D, #32 + adcs x22, x22, x4 + extr x4, x6, x2, #44 + lsl x15, x15, #12 + lsr x8, x10, #52 + extr x15, x10, x15, #60 + and x10, x4, #0xfffffffffffff + umlal v4.2D, v28.2S, v27.2S + add x8, x24, x8 + extr x4, x13, x6, #32 + mul x24, x5, x10 + uzp2 v16.4S, v30.4S, v30.4S + lsl x10, x15, #8 + rev64 v28.4S, v30.4S + and x15, x4, #0xfffffffffffff + extr x4, x8, x10, #8 + mul x10, x5, x15 + lsl x15, x8, #12 + adcs x23, x23, x4 + lsr x4, x8, #52 + lsr x8, x13, #20 + add x4, x24, x4 + mul x8, x5, x8 + lsr x24, x4, #52 + extr x15, x4, x15, #20 + lsl x4, x4, #12 + add x10, x10, x24 + adcs x15, x16, x15 + extr x4, x10, x4, #32 + umulh x5, x20, x14 + adcs x3, x3, x4 + usra v18.2D, v6.2D, #32 + lsl x16, x10, #12 + extr x24, x15, x23, #9 + lsr x10, x10, #52 + uzp2 v27.4S, v0.4S, v0.4S + add x8, x8, x10 + extr x10, x3, x15, #9 + extr x4, x22, x17, #9 + and v25.16B, v23.16B, v26.16B + lsr x17, x8, #44 + extr x15, x8, x16, #44 + extr x16, x23, x22, #9 + xtn v7.2S, v30.2D + mov x8, v4.d[0] + stp x24, x10, [x0, #32] + uaddlp v30.2D, v29.4S + stp x4, x16, [x0, #16] + umulh x24, x20, x19 + adcs x15, x21, x15 + adc x16, x11, x17 + subs x11, x20, x19 + xtn v5.2S, v0.2D + csetm x17, cc + extr x3, x15, x3, #9 + mov x22, v4.d[1] + cneg x21, x11, cc + subs x10, x12, x14 + mul v31.4S, v28.4S, v0.4S + cneg x10, x10, cc + cinv x11, x17, cc + shl v4.2D, v30.2D, #32 + umull v28.2D, v5.2S, v16.2S + extr x23, x16, x15, #9 + adds x4, x8, x5 + mul x17, x21, x10 + umull v22.2D, v5.2S, v7.2S + adc x15, x5, xzr + adds x4, x4, x22 + uaddlp v2.2D, v31.4S + lsr x5, x16, #9 + adcs x16, x15, x1 + mov x15, v18.d[0] + adc x1, x1, xzr + umulh x10, x21, x10 + adds x22, x16, x22 + umlal v4.2D, v24.2S, v20.2S + umull v30.2D, v27.2S, v16.2S + stp x3, x23, [x0, #48] + add x3, x7, x5 + adc x16, x1, xzr + usra v28.2D, v22.2D, #32 + mul x23, x20, x19 + eor x1, x17, x11 + cmn x11, #0x1 + mov x17, v18.d[1] + umull v18.2D, v17.2S, v19.2S + adcs x7, x4, x1 + eor x1, x10, x11 + umlal v25.2D, v17.2S, v20.2S + movi v16.2D, #0xffffffff + adcs x22, x22, x1 + usra v18.2D, v23.2D, #32 + umulh x4, x14, x14 + adc x1, x16, x11 + adds x10, x8, x8 + shl v23.2D, v2.2D, #32 + str x3, [x0, #64] + adcs x5, x7, x7 + and v16.16B, v28.16B, v16.16B + usra v30.2D, v28.2D, #32 + adcs x7, x22, x22 + mov x21, v3.d[1] + adcs x11, x1, x1 + umlal v16.2D, v27.2S, v7.2S + adc x22, xzr, xzr + adds x16, x15, x23 + mul x8, x14, x12 + umlal v23.2D, v5.2S, v7.2S + usra v18.2D, v25.2D, #32 + umulh x15, x14, x12 + adcs x21, x21, x24 + usra v30.2D, v16.2D, #32 + adc x1, x17, xzr + adds x3, x16, x23 + adcs x21, x21, x24 + adc x1, x1, xzr + adds x24, x10, x21 + umulh x21, x12, x12 + adcs x16, x5, x1 + adcs x10, x7, xzr + mov x17, v21.d[1] + adcs x23, x11, xzr + adc x5, x22, xzr + adds x1, x4, x8 + adcs x22, x17, x15 + ldp x17, x4, [x0] + mov x11, v21.d[0] + adc x21, x21, xzr + adds x1, x1, x8 + adcs x15, x22, x15 + adc x8, x21, xzr + adds x22, x11, x10 + mov x21, v3.d[0] + adcs x11, x1, x23 + ldp x1, x10, [x0, #16] + adcs x15, x15, x5 + adc x7, x8, xzr + adds x8, x17, x21 + mov x23, v4.d[1] + ldp x5, x21, [x0, #32] + adcs x17, x4, x3 + ldr x4, [x0, #64] + mov x3, v18.d[0] + adcs x24, x1, x24 + stp x8, x17, [x0] + adcs x17, x10, x16 + ldp x1, x16, [x0, #48] + adcs x5, x5, x22 + adcs x8, x21, x11 + stp x5, x8, [x0, #32] + adcs x1, x1, x15 + mov x15, v23.d[1] + adcs x21, x16, x7 + stp x1, x21, [x0, #48] + adc x10, x4, xzr + subs x7, x14, x12 + mov x16, v18.d[1] + cneg x5, x7, cc + csetm x4, cc + subs x11, x13, x6 + mov x8, v23.d[0] + cneg x7, x11, cc + cinv x21, x4, cc + mov x11, v30.d[0] + adds x4, x23, x3 + mul x22, x5, x7 + mov x23, v30.d[1] + adcs x8, x8, x16 + adcs x16, x15, x11 + adc x11, x23, xzr + umulh x3, x5, x7 + stp x24, x17, [x0, #16] + mov x5, v4.d[0] + subs x15, x20, x19 + cneg x7, x15, cc + str x10, [x0, #64] + csetm x1, cc + subs x24, x2, x9 + cneg x17, x24, cc + cinv x15, x1, cc + adds x23, x4, x5 + umulh x1, x7, x17 + adcs x24, x8, x4 + adcs x10, x16, x8 + eor x8, x22, x21 + adcs x16, x11, x16 + mul x22, x7, x17 + eor x17, x1, x15 + adc x1, xzr, x11 + adds x11, x24, x5 + eor x7, x3, x21 + adcs x3, x10, x23 + adcs x24, x16, x24 + adcs x4, x1, x10 + eor x10, x22, x15 + adcs x16, xzr, x16 + adc x1, xzr, x1 + cmn x21, #0x1 + adcs x8, x4, x8 + adcs x22, x16, x7 + adc x7, x1, x21 + subs x21, x19, x12 + csetm x4, cc + cneg x1, x21, cc + subs x21, x13, x2 + cinv x16, x4, cc + cneg x4, x21, cc + cmn x15, #0x1 + adcs x21, x23, x10 + mul x23, x1, x4 + adcs x11, x11, x17 + adcs x3, x3, x15 + umulh x1, x1, x4 + adcs x24, x24, x15 + adcs x8, x8, x15 + adcs x22, x22, x15 + eor x17, x23, x16 + adc x15, x7, x15 + subs x7, x20, x14 + cneg x7, x7, cc + csetm x4, cc + subs x10, x20, x12 + cneg x23, x10, cc + csetm x10, cc + subs x12, x6, x9 + cinv x20, x4, cc + cneg x12, x12, cc + cmn x16, #0x1 + eor x1, x1, x16 + adcs x17, x24, x17 + mul x4, x7, x12 + adcs x8, x8, x1 + umulh x1, x7, x12 + adcs x24, x22, x16 + adc x7, x15, x16 + subs x12, x13, x9 + cneg x12, x12, cc + cinv x13, x10, cc + subs x19, x19, x14 + mul x9, x23, x12 + cneg x19, x19, cc + csetm x10, cc + eor x16, x1, x20 + subs x22, x6, x2 + umulh x12, x23, x12 + eor x1, x4, x20 + cinv x4, x10, cc + cneg x22, x22, cc + cmn x20, #0x1 + adcs x15, x11, x1 + eor x6, x12, x13 + adcs x10, x3, x16 + adcs x17, x17, x20 + eor x23, x9, x13 + adcs x2, x8, x20 + mul x11, x19, x22 + adcs x24, x24, x20 + adc x7, x7, x20 + cmn x13, #0x1 + adcs x3, x10, x23 + umulh x22, x19, x22 + adcs x17, x17, x6 + eor x12, x22, x4 + extr x22, x15, x21, #63 + adcs x8, x2, x13 + extr x21, x21, x5, #63 + ldp x16, x23, [x0] + adcs x20, x24, x13 + eor x1, x11, x4 + adc x6, x7, x13 + cmn x4, #0x1 + ldp x2, x7, [x0, #16] + adcs x1, x3, x1 + extr x19, x1, x15, #63 + adcs x14, x17, x12 + extr x1, x14, x1, #63 + lsl x17, x5, #1 + adcs x8, x8, x4 + extr x12, x8, x14, #8 + ldp x15, x11, [x0, #32] + adcs x9, x20, x4 + adc x3, x6, x4 + adds x16, x12, x16 + extr x6, x9, x8, #8 + ldp x14, x12, [x0, #48] + extr x8, x3, x9, #8 + adcs x20, x6, x23 + ldr x24, [x0, #64] + lsr x6, x3, #8 + adcs x8, x8, x2 + and x2, x1, #0x1ff + and x1, x20, x8 + adcs x4, x6, x7 + adcs x3, x17, x15 + and x1, x1, x4 + adcs x9, x21, x11 + and x1, x1, x3 + adcs x6, x22, x14 + and x1, x1, x9 + and x21, x1, x6 + adcs x14, x19, x12 + adc x1, x24, x2 + cmp xzr, xzr + orr x12, x1, #0xfffffffffffffe00 + lsr x1, x1, #9 + adcs xzr, x16, x1 + and x21, x21, x14 + adcs xzr, x21, xzr + adcs xzr, x12, xzr + adcs x21, x16, x1 + adcs x1, x20, xzr + adcs x19, x8, xzr + stp x21, x1, [x0] + adcs x1, x4, xzr + adcs x21, x3, xzr + stp x19, x1, [x0, #16] + adcs x1, x9, xzr + stp x21, x1, [x0, #32] + adcs x21, x6, xzr + adcs x1, x14, xzr + stp x21, x1, [x0, #48] + adc x1, x12, xzr + and x1, x1, #0x1ff + str x1, [x0, #64] + +// Restore regs and return + + ldp x23, x24, [sp], #16 + ldp x21, x22, [sp], #16 + ldp x19, x20, [sp], #16 + + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack,"",%progbits +#endif diff --git a/third_party/s2n-bignum/arm/p521/p521_jadd.S b/third_party/s2n-bignum/arm/p521/p521_jadd.S index 1d6b196c8c..340766e6a2 100644 --- a/third_party/s2n-bignum/arm/p521/p521_jadd.S +++ b/third_party/s2n-bignum/arm/p521/p521_jadd.S @@ -53,6 +53,7 @@ #define z1sq sp, #(NUMSIZE*0) #define ww sp, #(NUMSIZE*0) +#define resx sp, #(NUMSIZE*0) #define yd sp, #(NUMSIZE*1) #define y2a sp, #(NUMSIZE*1) @@ -66,664 +67,38 @@ #define t2 sp, #(NUMSIZE*4) #define x1a sp, #(NUMSIZE*4) #define zzx1 sp, #(NUMSIZE*4) +#define resy sp, #(NUMSIZE*4) #define xd sp, #(NUMSIZE*5) #define z2sq sp, #(NUMSIZE*5) +#define resz sp, #(NUMSIZE*5) -#define y1a sp, #(NUMSIZE*6) +#define tmp sp, #(NUMSIZE*6) -// NUMSIZE*7 is not 16-aligned so we round it up +#define y1a sp, #(NUMSIZE*7) -#define NSPACE (NUMSIZE*7+8) +#define NSPACE (NUMSIZE*8) -// Corresponds exactly to bignum_mul_p521_alt +// For the three field operations, we use subroutines not inlining. +// Call local code very close to bignum_mul_p521 and bignum_sqr_p521 +// and bignum_sub_p521 #define mul_p521(P0,P1,P2) \ - ldp x3, x4, [P1]; \ - ldp x5, x6, [P2]; \ - mul x15, x3, x5; \ - umulh x16, x3, x5; \ - mul x14, x3, x6; \ - umulh x17, x3, x6; \ - adds x16, x16, x14; \ - ldp x7, x8, [P2+16]; \ - mul x14, x3, x7; \ - umulh x19, x3, x7; \ - adcs x17, x17, x14; \ - mul x14, x3, x8; \ - umulh x20, x3, x8; \ - adcs x19, x19, x14; \ - ldp x9, x10, [P2+32]; \ - mul x14, x3, x9; \ - umulh x21, x3, x9; \ - adcs x20, x20, x14; \ - mul x14, x3, x10; \ - umulh x22, x3, x10; \ - adcs x21, x21, x14; \ - ldp x11, x12, [P2+48]; \ - mul x14, x3, x11; \ - umulh x23, x3, x11; \ - adcs x22, x22, x14; \ - ldr x13, [P2+64]; \ - mul x14, x3, x12; \ - umulh x24, x3, x12; \ - adcs x23, x23, x14; \ - mul x14, x3, x13; \ - umulh x1, x3, x13; \ - adcs x24, x24, x14; \ - adc x1, x1, xzr; \ - mul x14, x4, x5; \ - adds x16, x16, x14; \ - mul x14, x4, x6; \ - adcs x17, x17, x14; \ - mul x14, x4, x7; \ - adcs x19, x19, x14; \ - mul x14, x4, x8; \ - adcs x20, x20, x14; \ - mul x14, x4, x9; \ - adcs x21, x21, x14; \ - mul x14, x4, x10; \ - adcs x22, x22, x14; \ - mul x14, x4, x11; \ - adcs x23, x23, x14; \ - mul x14, x4, x12; \ - adcs x24, x24, x14; \ - mul x14, x4, x13; \ - adcs x1, x1, x14; \ - cset x0, hs; \ - umulh x14, x4, x5; \ - adds x17, x17, x14; \ - umulh x14, x4, x6; \ - adcs x19, x19, x14; \ - umulh x14, x4, x7; \ - adcs x20, x20, x14; \ - umulh x14, x4, x8; \ - adcs x21, x21, x14; \ - umulh x14, x4, x9; \ - adcs x22, x22, x14; \ - umulh x14, x4, x10; \ - adcs x23, x23, x14; \ - umulh x14, x4, x11; \ - adcs x24, x24, x14; \ - umulh x14, x4, x12; \ - adcs x1, x1, x14; \ - umulh x14, x4, x13; \ - adc x0, x0, x14; \ - stp x15, x16, [P0]; \ - ldp x3, x4, [P1+16]; \ - mul x14, x3, x5; \ - adds x17, x17, x14; \ - mul x14, x3, x6; \ - adcs x19, x19, x14; \ - mul x14, x3, x7; \ - adcs x20, x20, x14; \ - mul x14, x3, x8; \ - adcs x21, x21, x14; \ - mul x14, x3, x9; \ - adcs x22, x22, x14; \ - mul x14, x3, x10; \ - adcs x23, x23, x14; \ - mul x14, x3, x11; \ - adcs x24, x24, x14; \ - mul x14, x3, x12; \ - adcs x1, x1, x14; \ - mul x14, x3, x13; \ - adcs x0, x0, x14; \ - cset x15, hs; \ - umulh x14, x3, x5; \ - adds x19, x19, x14; \ - umulh x14, x3, x6; \ - adcs x20, x20, x14; \ - umulh x14, x3, x7; \ - adcs x21, x21, x14; \ - umulh x14, x3, x8; \ - adcs x22, x22, x14; \ - umulh x14, x3, x9; \ - adcs x23, x23, x14; \ - umulh x14, x3, x10; \ - adcs x24, x24, x14; \ - umulh x14, x3, x11; \ - adcs x1, x1, x14; \ - umulh x14, x3, x12; \ - adcs x0, x0, x14; \ - umulh x14, x3, x13; \ - adc x15, x15, x14; \ - mul x14, x4, x5; \ - adds x19, x19, x14; \ - mul x14, x4, x6; \ - adcs x20, x20, x14; \ - mul x14, x4, x7; \ - adcs x21, x21, x14; \ - mul x14, x4, x8; \ - adcs x22, x22, x14; \ - mul x14, x4, x9; \ - adcs x23, x23, x14; \ - mul x14, x4, x10; \ - adcs x24, x24, x14; \ - mul x14, x4, x11; \ - adcs x1, x1, x14; \ - mul x14, x4, x12; \ - adcs x0, x0, x14; \ - mul x14, x4, x13; \ - adcs x15, x15, x14; \ - cset x16, hs; \ - umulh x14, x4, x5; \ - adds x20, x20, x14; \ - umulh x14, x4, x6; \ - adcs x21, x21, x14; \ - umulh x14, x4, x7; \ - adcs x22, x22, x14; \ - umulh x14, x4, x8; \ - adcs x23, x23, x14; \ - umulh x14, x4, x9; \ - adcs x24, x24, x14; \ - umulh x14, x4, x10; \ - adcs x1, x1, x14; \ - umulh x14, x4, x11; \ - adcs x0, x0, x14; \ - umulh x14, x4, x12; \ - adcs x15, x15, x14; \ - umulh x14, x4, x13; \ - adc x16, x16, x14; \ - stp x17, x19, [P0+16]; \ - ldp x3, x4, [P1+32]; \ - mul x14, x3, x5; \ - adds x20, x20, x14; \ - mul x14, x3, x6; \ - adcs x21, x21, x14; \ - mul x14, x3, x7; \ - adcs x22, x22, x14; \ - mul x14, x3, x8; \ - adcs x23, x23, x14; \ - mul x14, x3, x9; \ - adcs x24, x24, x14; \ - mul x14, x3, x10; \ - adcs x1, x1, x14; \ - mul x14, x3, x11; \ - adcs x0, x0, x14; \ - mul x14, x3, x12; \ - adcs x15, x15, x14; \ - mul x14, x3, x13; \ - adcs x16, x16, x14; \ - cset x17, hs; \ - umulh x14, x3, x5; \ - adds x21, x21, x14; \ - umulh x14, x3, x6; \ - adcs x22, x22, x14; \ - umulh x14, x3, x7; \ - adcs x23, x23, x14; \ - umulh x14, x3, x8; \ - adcs x24, x24, x14; \ - umulh x14, x3, x9; \ - adcs x1, x1, x14; \ - umulh x14, x3, x10; \ - adcs x0, x0, x14; \ - umulh x14, x3, x11; \ - adcs x15, x15, x14; \ - umulh x14, x3, x12; \ - adcs x16, x16, x14; \ - umulh x14, x3, x13; \ - adc x17, x17, x14; \ - mul x14, x4, x5; \ - adds x21, x21, x14; \ - mul x14, x4, x6; \ - adcs x22, x22, x14; \ - mul x14, x4, x7; \ - adcs x23, x23, x14; \ - mul x14, x4, x8; \ - adcs x24, x24, x14; \ - mul x14, x4, x9; \ - adcs x1, x1, x14; \ - mul x14, x4, x10; \ - adcs x0, x0, x14; \ - mul x14, x4, x11; \ - adcs x15, x15, x14; \ - mul x14, x4, x12; \ - adcs x16, x16, x14; \ - mul x14, x4, x13; \ - adcs x17, x17, x14; \ - cset x19, hs; \ - umulh x14, x4, x5; \ - adds x22, x22, x14; \ - umulh x14, x4, x6; \ - adcs x23, x23, x14; \ - umulh x14, x4, x7; \ - adcs x24, x24, x14; \ - umulh x14, x4, x8; \ - adcs x1, x1, x14; \ - umulh x14, x4, x9; \ - adcs x0, x0, x14; \ - umulh x14, x4, x10; \ - adcs x15, x15, x14; \ - umulh x14, x4, x11; \ - adcs x16, x16, x14; \ - umulh x14, x4, x12; \ - adcs x17, x17, x14; \ - umulh x14, x4, x13; \ - adc x19, x19, x14; \ - stp x20, x21, [P0+32]; \ - ldp x3, x4, [P1+48]; \ - mul x14, x3, x5; \ - adds x22, x22, x14; \ - mul x14, x3, x6; \ - adcs x23, x23, x14; \ - mul x14, x3, x7; \ - adcs x24, x24, x14; \ - mul x14, x3, x8; \ - adcs x1, x1, x14; \ - mul x14, x3, x9; \ - adcs x0, x0, x14; \ - mul x14, x3, x10; \ - adcs x15, x15, x14; \ - mul x14, x3, x11; \ - adcs x16, x16, x14; \ - mul x14, x3, x12; \ - adcs x17, x17, x14; \ - mul x14, x3, x13; \ - adcs x19, x19, x14; \ - cset x20, hs; \ - umulh x14, x3, x5; \ - adds x23, x23, x14; \ - umulh x14, x3, x6; \ - adcs x24, x24, x14; \ - umulh x14, x3, x7; \ - adcs x1, x1, x14; \ - umulh x14, x3, x8; \ - adcs x0, x0, x14; \ - umulh x14, x3, x9; \ - adcs x15, x15, x14; \ - umulh x14, x3, x10; \ - adcs x16, x16, x14; \ - umulh x14, x3, x11; \ - adcs x17, x17, x14; \ - umulh x14, x3, x12; \ - adcs x19, x19, x14; \ - umulh x14, x3, x13; \ - adc x20, x20, x14; \ - mul x14, x4, x5; \ - adds x23, x23, x14; \ - mul x14, x4, x6; \ - adcs x24, x24, x14; \ - mul x14, x4, x7; \ - adcs x1, x1, x14; \ - mul x14, x4, x8; \ - adcs x0, x0, x14; \ - mul x14, x4, x9; \ - adcs x15, x15, x14; \ - mul x14, x4, x10; \ - adcs x16, x16, x14; \ - mul x14, x4, x11; \ - adcs x17, x17, x14; \ - mul x14, x4, x12; \ - adcs x19, x19, x14; \ - mul x14, x4, x13; \ - adcs x20, x20, x14; \ - cset x21, hs; \ - umulh x14, x4, x5; \ - adds x24, x24, x14; \ - umulh x14, x4, x6; \ - adcs x1, x1, x14; \ - umulh x14, x4, x7; \ - adcs x0, x0, x14; \ - umulh x14, x4, x8; \ - adcs x15, x15, x14; \ - umulh x14, x4, x9; \ - adcs x16, x16, x14; \ - umulh x14, x4, x10; \ - adcs x17, x17, x14; \ - umulh x14, x4, x11; \ - adcs x19, x19, x14; \ - umulh x14, x4, x12; \ - adcs x20, x20, x14; \ - umulh x14, x4, x13; \ - adc x21, x21, x14; \ - stp x22, x23, [P0+48]; \ - ldr x3, [P1+64]; \ - mul x14, x3, x5; \ - adds x24, x24, x14; \ - mul x14, x3, x6; \ - adcs x1, x1, x14; \ - mul x14, x3, x7; \ - adcs x0, x0, x14; \ - mul x14, x3, x8; \ - adcs x15, x15, x14; \ - mul x14, x3, x9; \ - adcs x16, x16, x14; \ - mul x14, x3, x10; \ - adcs x17, x17, x14; \ - mul x14, x3, x11; \ - adcs x19, x19, x14; \ - mul x14, x3, x12; \ - adcs x20, x20, x14; \ - mul x14, x3, x13; \ - adc x21, x21, x14; \ - umulh x14, x3, x5; \ - adds x1, x1, x14; \ - umulh x14, x3, x6; \ - adcs x0, x0, x14; \ - umulh x14, x3, x7; \ - adcs x15, x15, x14; \ - umulh x14, x3, x8; \ - adcs x16, x16, x14; \ - umulh x14, x3, x9; \ - adcs x17, x17, x14; \ - umulh x14, x3, x10; \ - adcs x19, x19, x14; \ - umulh x14, x3, x11; \ - adcs x20, x20, x14; \ - umulh x14, x3, x12; \ - adc x21, x21, x14; \ - cmp xzr, xzr; \ - ldp x5, x6, [P0]; \ - extr x14, x1, x24, #9; \ - adcs x5, x5, x14; \ - extr x14, x0, x1, #9; \ - adcs x6, x6, x14; \ - ldp x7, x8, [P0+16]; \ - extr x14, x15, x0, #9; \ - adcs x7, x7, x14; \ - extr x14, x16, x15, #9; \ - adcs x8, x8, x14; \ - ldp x9, x10, [P0+32]; \ - extr x14, x17, x16, #9; \ - adcs x9, x9, x14; \ - extr x14, x19, x17, #9; \ - adcs x10, x10, x14; \ - ldp x11, x12, [P0+48]; \ - extr x14, x20, x19, #9; \ - adcs x11, x11, x14; \ - extr x14, x21, x20, #9; \ - adcs x12, x12, x14; \ - orr x13, x24, #0xfffffffffffffe00; \ - lsr x14, x21, #9; \ - adcs x13, x13, x14; \ - sbcs x5, x5, xzr; \ - sbcs x6, x6, xzr; \ - sbcs x7, x7, xzr; \ - sbcs x8, x8, xzr; \ - sbcs x9, x9, xzr; \ - sbcs x10, x10, xzr; \ - sbcs x11, x11, xzr; \ - sbcs x12, x12, xzr; \ - sbc x13, x13, xzr; \ - and x13, x13, #0x1ff; \ - stp x5, x6, [P0]; \ - stp x7, x8, [P0+16]; \ - stp x9, x10, [P0+32]; \ - stp x11, x12, [P0+48]; \ - str x13, [P0+64] - -// Corresponds exactly to bignum_sqr_p521_alt + add x0, P0; \ + add x1, P1; \ + add x2, P2; \ + bl local_mul_p521 #define sqr_p521(P0,P1) \ - ldp x2, x3, [P1]; \ - mul x11, x2, x3; \ - umulh x12, x2, x3; \ - ldp x4, x5, [P1+16]; \ - mul x10, x2, x4; \ - umulh x13, x2, x4; \ - adds x12, x12, x10; \ - ldp x6, x7, [P1+32]; \ - mul x10, x2, x5; \ - umulh x14, x2, x5; \ - adcs x13, x13, x10; \ - ldp x8, x9, [P1+48]; \ - mul x10, x2, x6; \ - umulh x15, x2, x6; \ - adcs x14, x14, x10; \ - mul x10, x2, x7; \ - umulh x16, x2, x7; \ - adcs x15, x15, x10; \ - mul x10, x2, x8; \ - umulh x17, x2, x8; \ - adcs x16, x16, x10; \ - mul x10, x2, x9; \ - umulh x19, x2, x9; \ - adcs x17, x17, x10; \ - adc x19, x19, xzr; \ - mul x10, x3, x4; \ - adds x13, x13, x10; \ - mul x10, x3, x5; \ - adcs x14, x14, x10; \ - mul x10, x3, x6; \ - adcs x15, x15, x10; \ - mul x10, x3, x7; \ - adcs x16, x16, x10; \ - mul x10, x3, x8; \ - adcs x17, x17, x10; \ - mul x10, x3, x9; \ - adcs x19, x19, x10; \ - cset x20, hs; \ - umulh x10, x3, x4; \ - adds x14, x14, x10; \ - umulh x10, x3, x5; \ - adcs x15, x15, x10; \ - umulh x10, x3, x6; \ - adcs x16, x16, x10; \ - umulh x10, x3, x7; \ - adcs x17, x17, x10; \ - umulh x10, x3, x8; \ - adcs x19, x19, x10; \ - umulh x10, x3, x9; \ - adc x20, x20, x10; \ - mul x10, x6, x7; \ - umulh x21, x6, x7; \ - adds x20, x20, x10; \ - adc x21, x21, xzr; \ - mul x10, x4, x5; \ - adds x15, x15, x10; \ - mul x10, x4, x6; \ - adcs x16, x16, x10; \ - mul x10, x4, x7; \ - adcs x17, x17, x10; \ - mul x10, x4, x8; \ - adcs x19, x19, x10; \ - mul x10, x4, x9; \ - adcs x20, x20, x10; \ - mul x10, x6, x8; \ - adcs x21, x21, x10; \ - cset x22, hs; \ - umulh x10, x4, x5; \ - adds x16, x16, x10; \ - umulh x10, x4, x6; \ - adcs x17, x17, x10; \ - umulh x10, x4, x7; \ - adcs x19, x19, x10; \ - umulh x10, x4, x8; \ - adcs x20, x20, x10; \ - umulh x10, x4, x9; \ - adcs x21, x21, x10; \ - umulh x10, x6, x8; \ - adc x22, x22, x10; \ - mul x10, x7, x8; \ - umulh x23, x7, x8; \ - adds x22, x22, x10; \ - adc x23, x23, xzr; \ - mul x10, x5, x6; \ - adds x17, x17, x10; \ - mul x10, x5, x7; \ - adcs x19, x19, x10; \ - mul x10, x5, x8; \ - adcs x20, x20, x10; \ - mul x10, x5, x9; \ - adcs x21, x21, x10; \ - mul x10, x6, x9; \ - adcs x22, x22, x10; \ - mul x10, x7, x9; \ - adcs x23, x23, x10; \ - cset x24, hs; \ - umulh x10, x5, x6; \ - adds x19, x19, x10; \ - umulh x10, x5, x7; \ - adcs x20, x20, x10; \ - umulh x10, x5, x8; \ - adcs x21, x21, x10; \ - umulh x10, x5, x9; \ - adcs x22, x22, x10; \ - umulh x10, x6, x9; \ - adcs x23, x23, x10; \ - umulh x10, x7, x9; \ - adc x24, x24, x10; \ - mul x10, x8, x9; \ - umulh x25, x8, x9; \ - adds x24, x24, x10; \ - adc x25, x25, xzr; \ - adds x11, x11, x11; \ - adcs x12, x12, x12; \ - adcs x13, x13, x13; \ - adcs x14, x14, x14; \ - adcs x15, x15, x15; \ - adcs x16, x16, x16; \ - adcs x17, x17, x17; \ - adcs x19, x19, x19; \ - adcs x20, x20, x20; \ - adcs x21, x21, x21; \ - adcs x22, x22, x22; \ - adcs x23, x23, x23; \ - adcs x24, x24, x24; \ - adcs x25, x25, x25; \ - cset x0, hs; \ - umulh x10, x2, x2; \ - adds x11, x11, x10; \ - mul x10, x3, x3; \ - adcs x12, x12, x10; \ - umulh x10, x3, x3; \ - adcs x13, x13, x10; \ - mul x10, x4, x4; \ - adcs x14, x14, x10; \ - umulh x10, x4, x4; \ - adcs x15, x15, x10; \ - mul x10, x5, x5; \ - adcs x16, x16, x10; \ - umulh x10, x5, x5; \ - adcs x17, x17, x10; \ - mul x10, x6, x6; \ - adcs x19, x19, x10; \ - umulh x10, x6, x6; \ - adcs x20, x20, x10; \ - mul x10, x7, x7; \ - adcs x21, x21, x10; \ - umulh x10, x7, x7; \ - adcs x22, x22, x10; \ - mul x10, x8, x8; \ - adcs x23, x23, x10; \ - umulh x10, x8, x8; \ - adcs x24, x24, x10; \ - mul x10, x9, x9; \ - adcs x25, x25, x10; \ - umulh x10, x9, x9; \ - adc x0, x0, x10; \ - ldr x1, [P1+64]; \ - add x1, x1, x1; \ - mul x10, x1, x2; \ - adds x19, x19, x10; \ - umulh x10, x1, x2; \ - adcs x20, x20, x10; \ - mul x10, x1, x4; \ - adcs x21, x21, x10; \ - umulh x10, x1, x4; \ - adcs x22, x22, x10; \ - mul x10, x1, x6; \ - adcs x23, x23, x10; \ - umulh x10, x1, x6; \ - adcs x24, x24, x10; \ - mul x10, x1, x8; \ - adcs x25, x25, x10; \ - umulh x10, x1, x8; \ - adcs x0, x0, x10; \ - lsr x4, x1, #1; \ - mul x4, x4, x4; \ - adc x4, x4, xzr; \ - mul x10, x1, x3; \ - adds x20, x20, x10; \ - umulh x10, x1, x3; \ - adcs x21, x21, x10; \ - mul x10, x1, x5; \ - adcs x22, x22, x10; \ - umulh x10, x1, x5; \ - adcs x23, x23, x10; \ - mul x10, x1, x7; \ - adcs x24, x24, x10; \ - umulh x10, x1, x7; \ - adcs x25, x25, x10; \ - mul x10, x1, x9; \ - adcs x0, x0, x10; \ - umulh x10, x1, x9; \ - adc x4, x4, x10; \ - mul x2, x2, x2; \ - cmp xzr, xzr; \ - extr x10, x20, x19, #9; \ - adcs x2, x2, x10; \ - extr x10, x21, x20, #9; \ - adcs x11, x11, x10; \ - extr x10, x22, x21, #9; \ - adcs x12, x12, x10; \ - extr x10, x23, x22, #9; \ - adcs x13, x13, x10; \ - extr x10, x24, x23, #9; \ - adcs x14, x14, x10; \ - extr x10, x25, x24, #9; \ - adcs x15, x15, x10; \ - extr x10, x0, x25, #9; \ - adcs x16, x16, x10; \ - extr x10, x4, x0, #9; \ - adcs x17, x17, x10; \ - orr x19, x19, #0xfffffffffffffe00; \ - lsr x10, x4, #9; \ - adcs x19, x19, x10; \ - sbcs x2, x2, xzr; \ - sbcs x11, x11, xzr; \ - sbcs x12, x12, xzr; \ - sbcs x13, x13, xzr; \ - sbcs x14, x14, xzr; \ - sbcs x15, x15, xzr; \ - sbcs x16, x16, xzr; \ - sbcs x17, x17, xzr; \ - sbc x19, x19, xzr; \ - and x19, x19, #0x1ff; \ - stp x2, x11, [P0]; \ - stp x12, x13, [P0+16]; \ - stp x14, x15, [P0+32]; \ - stp x16, x17, [P0+48]; \ - str x19, [P0+64] - -// Corresponds exactly to bignum_sub_p521 + add x0, P0; \ + add x1, P1; \ + bl local_sqr_p521 #define sub_p521(P0,P1,P2) \ - ldp x5, x6, [P1]; \ - ldp x4, x3, [P2]; \ - subs x5, x5, x4; \ - sbcs x6, x6, x3; \ - ldp x7, x8, [P1+16]; \ - ldp x4, x3, [P2+16]; \ - sbcs x7, x7, x4; \ - sbcs x8, x8, x3; \ - ldp x9, x10, [P1+32]; \ - ldp x4, x3, [P2+32]; \ - sbcs x9, x9, x4; \ - sbcs x10, x10, x3; \ - ldp x11, x12, [P1+48]; \ - ldp x4, x3, [P2+48]; \ - sbcs x11, x11, x4; \ - sbcs x12, x12, x3; \ - ldr x13, [P1+64]; \ - ldr x4, [P2+64]; \ - sbcs x13, x13, x4; \ - sbcs x5, x5, xzr; \ - sbcs x6, x6, xzr; \ - sbcs x7, x7, xzr; \ - sbcs x8, x8, xzr; \ - sbcs x9, x9, xzr; \ - sbcs x10, x10, xzr; \ - sbcs x11, x11, xzr; \ - sbcs x12, x12, xzr; \ - sbcs x13, x13, xzr; \ - and x13, x13, #0x1ff; \ - stp x5, x6, [P0]; \ - stp x7, x8, [P0+16]; \ - stp x9, x10, [P0+32]; \ - stp x11, x12, [P0+48]; \ - str x13, [P0+64] + add x0, P0; \ + add x1, P1; \ + add x2, P2; \ + bl local_sub_p521 S2N_BN_SYMBOL(p521_jadd): @@ -734,6 +109,7 @@ S2N_BN_SYMBOL(p521_jadd): stp x23, x24, [sp, #-16]! stp x25, x26, [sp, #-16]! stp x27, x28, [sp, #-16]! + stp x29, x30, [sp, #-16]! sub sp, sp, NSPACE // Move the input arguments to stable places @@ -764,31 +140,1296 @@ S2N_BN_SYMBOL(p521_jadd): mul_p521(zzx1,zz,x1a) mul_p521(zzx2,zz,x2a) - sub_p521(x_3,ww,zzx1) + sub_p521(resx,ww,zzx1) sub_p521(t1,zzx2,zzx1) mul_p521(xd,xd,z_1) - sub_p521(x_3,x_3,zzx2) + sub_p521(resx,resx,zzx2) - sub_p521(t2,zzx1,x_3) + sub_p521(t2,zzx1,resx) mul_p521(t1,t1,y1a) - mul_p521(z_3,xd,z_2) + mul_p521(resz,xd,z_2) mul_p521(t2,yd,t2) - sub_p521(y_3,t2,t1) + sub_p521(resy,t2,t1) + +// Load in the z coordinates of the inputs to check for P1 = 0 and P2 = 0 +// The condition codes get set by a comparison (P2 != 0) - (P1 != 0) +// So "HI" <=> CF /\ ~ZF <=> P1 = 0 /\ ~(P2 = 0) +// and "LO" <=> ~CF <=> ~(P1 = 0) /\ P2 = 0 +// Multiplex the z outputs accordingly and re-store in resz + + ldp x0, x1, [z_1] + ldp x2, x3, [z_1+16] + ldp x4, x5, [z_1+32] + ldp x6, x7, [z_1+48] + ldr x8, [z_1+64] + + orr x20, x0, x1 + orr x21, x2, x3 + orr x22, x4, x5 + orr x23, x6, x7 + orr x20, x20, x21 + orr x22, x22, x23 + orr x20, x20, x8 + orr x20, x20, x22 + cmp x20, xzr + cset x20, ne + + ldp x10, x11, [z_2] + ldp x12, x13, [z_2+16] + ldp x14, x15, [z_2+32] + ldp x16, x17, [z_2+48] + ldr x19, [z_2+64] + + orr x21, x10, x11 + orr x22, x12, x13 + orr x23, x14, x15 + orr x24, x16, x17 + orr x21, x21, x22 + orr x23, x23, x24 + orr x21, x21, x19 + orr x21, x21, x23 + + csel x0, x0, x10, ne + csel x1, x1, x11, ne + csel x2, x2, x12, ne + csel x3, x3, x13, ne + csel x4, x4, x14, ne + csel x5, x5, x15, ne + csel x6, x6, x16, ne + csel x7, x7, x17, ne + csel x8, x8, x19, ne + + cmp x21, xzr + cset x21, ne + + cmp x21, x20 + + ldp x10, x11, [resz] + ldp x12, x13, [resz+16] + ldp x14, x15, [resz+32] + ldp x16, x17, [resz+48] + ldr x19, [resz+64] + + csel x0, x0, x10, ne + csel x1, x1, x11, ne + csel x2, x2, x12, ne + csel x3, x3, x13, ne + csel x4, x4, x14, ne + csel x5, x5, x15, ne + csel x6, x6, x16, ne + csel x7, x7, x17, ne + csel x8, x8, x19, ne + + stp x0, x1, [resz] + stp x2, x3, [resz+16] + stp x4, x5, [resz+32] + stp x6, x7, [resz+48] + str x8, [resz+64] + +// Multiplex the x and y outputs too, keeping the results in registers + + ldp x20, x21, [x_1] + ldp x0, x1, [resx] + csel x0, x20, x0, lo + csel x1, x21, x1, lo + ldp x20, x21, [x_2] + csel x0, x20, x0, hi + csel x1, x21, x1, hi + + ldp x20, x21, [x_1+16] + ldp x2, x3, [resx+16] + csel x2, x20, x2, lo + csel x3, x21, x3, lo + ldp x20, x21, [x_2+16] + csel x2, x20, x2, hi + csel x3, x21, x3, hi + + ldp x20, x21, [x_1+32] + ldp x4, x5, [resx+32] + csel x4, x20, x4, lo + csel x5, x21, x5, lo + ldp x20, x21, [x_2+32] + csel x4, x20, x4, hi + csel x5, x21, x5, hi + + ldp x20, x21, [x_1+48] + ldp x6, x7, [resx+48] + csel x6, x20, x6, lo + csel x7, x21, x7, lo + ldp x20, x21, [x_2+48] + csel x6, x20, x6, hi + csel x7, x21, x7, hi + + ldr x20, [x_1+64] + ldr x8, [resx+64] + csel x8, x20, x8, lo + ldr x21, [x_2+64] + csel x8, x21, x8, hi + + + ldp x20, x21, [y_1] + ldp x10, x11, [resy] + csel x10, x20, x10, lo + csel x11, x21, x11, lo + ldp x20, x21, [y_2] + csel x10, x20, x10, hi + csel x11, x21, x11, hi + + ldp x20, x21, [y_1+16] + ldp x12, x13, [resy+16] + csel x12, x20, x12, lo + csel x13, x21, x13, lo + ldp x20, x21, [y_2+16] + csel x12, x20, x12, hi + csel x13, x21, x13, hi + + ldp x20, x21, [y_1+32] + ldp x14, x15, [resy+32] + csel x14, x20, x14, lo + csel x15, x21, x15, lo + ldp x20, x21, [y_2+32] + csel x14, x20, x14, hi + csel x15, x21, x15, hi + + ldp x20, x21, [y_1+48] + ldp x16, x17, [resy+48] + csel x16, x20, x16, lo + csel x17, x21, x17, lo + ldp x20, x21, [y_2+48] + csel x16, x20, x16, hi + csel x17, x21, x17, hi + + ldr x20, [y_1+64] + ldr x19, [resy+64] + csel x19, x20, x19, lo + ldr x21, [y_2+64] + csel x19, x21, x19, hi + +// Finally store back the multiplexed values + + stp x0, x1, [x_3] + stp x2, x3, [x_3+16] + stp x4, x5, [x_3+32] + stp x6, x7, [x_3+48] + str x8, [x_3+64] + + ldp x0, x1, [resz] + ldp x2, x3, [resz+16] + ldp x4, x5, [resz+32] + ldp x6, x7, [resz+48] + ldr x8, [resz+64] + + stp x10, x11, [y_3] + stp x12, x13, [y_3+16] + stp x14, x15, [y_3+32] + stp x16, x17, [y_3+48] + str x19, [y_3+64] + + stp x0, x1, [z_3] + stp x2, x3, [z_3+16] + stp x4, x5, [z_3+32] + stp x6, x7, [z_3+48] + str x8, [z_3+64] // Restore stack and registers add sp, sp, NSPACE + ldp x29, x30, [sp], 16 ldp x27, x28, [sp], 16 ldp x25, x26, [sp], 16 ldp x23, x24, [sp], 16 ldp x21, x22, [sp], 16 ldp x19, x20, [sp], 16 + ret + +// Local versions of the three field operations, almost identical to +// bignum_mul_p521, bignum_sqr_p521 and bignum_sub_p521 except for +// avoiding all intial register save-restore, and in the case of +// local_mul_p521, using the tmp buffer as temporary storage and +// avoiding x26. + +local_mul_p521: + ldp x3, x4, [x1] + ldp x5, x6, [x1, #16] + ldp x7, x8, [x2] + ldp x9, x10, [x2, #16] + mul x11, x3, x7 + mul x15, x4, x8 + mul x16, x5, x9 + mul x17, x6, x10 + umulh x19, x3, x7 + adds x15, x15, x19 + umulh x19, x4, x8 + adcs x16, x16, x19 + umulh x19, x5, x9 + adcs x17, x17, x19 + umulh x19, x6, x10 + adc x19, x19, xzr + adds x12, x15, x11 + adcs x15, x16, x15 + adcs x16, x17, x16 + adcs x17, x19, x17 + adc x19, xzr, x19 + adds x13, x15, x11 + adcs x14, x16, x12 + adcs x15, x17, x15 + adcs x16, x19, x16 + adcs x17, xzr, x17 + adc x19, xzr, x19 + subs x24, x5, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x9 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x16, x16, x23 + eor x22, x22, x21 + adcs x17, x17, x22 + adc x19, x19, x21 + subs x24, x3, x4 + cneg x24, x24, lo + csetm x21, lo + subs x22, x8, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x12, x12, x23 + eor x22, x22, x21 + adcs x13, x13, x22 + adcs x14, x14, x21 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x15, x15, x23 + eor x22, x22, x21 + adcs x16, x16, x22 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x13, x13, x23 + eor x22, x22, x21 + adcs x14, x14, x22 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + lsl x21, x11, #9 + extr x11, x12, x11, #55 + extr x12, x13, x12, #55 + extr x13, x14, x13, #55 + lsr x14, x14, #55 + ldp x3, x4, [x1, #32] + ldp x5, x6, [x1, #48] + ldp x7, x8, [x2, #32] + ldp x9, x10, [x2, #48] + stp x15, x16, [tmp] + stp x17, x19, [tmp+16] + stp x21, x11, [tmp+32] + stp x12, x13, [tmp+48] + str x14, [tmp+64] + mul x11, x3, x7 + mul x15, x4, x8 + mul x16, x5, x9 + mul x17, x6, x10 + umulh x19, x3, x7 + adds x15, x15, x19 + umulh x19, x4, x8 + adcs x16, x16, x19 + umulh x19, x5, x9 + adcs x17, x17, x19 + umulh x19, x6, x10 + adc x19, x19, xzr + adds x12, x15, x11 + adcs x15, x16, x15 + adcs x16, x17, x16 + adcs x17, x19, x17 + adc x19, xzr, x19 + adds x13, x15, x11 + adcs x14, x16, x12 + adcs x15, x17, x15 + adcs x16, x19, x16 + adcs x17, xzr, x17 + adc x19, xzr, x19 + subs x24, x5, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x9 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x16, x16, x23 + eor x22, x22, x21 + adcs x17, x17, x22 + adc x19, x19, x21 + subs x24, x3, x4 + cneg x24, x24, lo + csetm x21, lo + subs x22, x8, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x12, x12, x23 + eor x22, x22, x21 + adcs x13, x13, x22 + adcs x14, x14, x21 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x15, x15, x23 + eor x22, x22, x21 + adcs x16, x16, x22 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x13, x13, x23 + eor x22, x22, x21 + adcs x14, x14, x22 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + ldp x23, x22, [tmp] + adds x11, x11, x23 + adcs x12, x12, x22 + stp x11, x12, [tmp] + ldp x23, x22, [tmp+16] + adcs x13, x13, x23 + adcs x14, x14, x22 + stp x13, x14, [tmp+16] + ldp x23, x22, [tmp+32] + adcs x15, x15, x23 + adcs x16, x16, x22 + stp x15, x16, [tmp+32] + ldp x23, x22, [tmp+48] + adcs x17, x17, x23 + adcs x19, x19, x22 + stp x17, x19, [tmp+48] + ldr x21, [tmp+64] + adc x21, x21, xzr + str x21, [tmp+64] + ldp x23, x22, [x1] + subs x3, x3, x23 + sbcs x4, x4, x22 + ldp x23, x22, [x1, #16] + sbcs x5, x5, x23 + sbcs x6, x6, x22 + csetm x24, lo + ldp x23, x22, [x2] + subs x7, x23, x7 + sbcs x8, x22, x8 + ldp x23, x22, [x2, #16] + sbcs x9, x23, x9 + sbcs x10, x22, x10 + csetm x25, lo + eor x3, x3, x24 + subs x3, x3, x24 + eor x4, x4, x24 + sbcs x4, x4, x24 + eor x5, x5, x24 + sbcs x5, x5, x24 + eor x6, x6, x24 + sbc x6, x6, x24 + eor x7, x7, x25 + subs x7, x7, x25 + eor x8, x8, x25 + sbcs x8, x8, x25 + eor x9, x9, x25 + sbcs x9, x9, x25 + eor x10, x10, x25 + sbc x10, x10, x25 + eor x25, x25, x24 + mul x11, x3, x7 + mul x15, x4, x8 + mul x16, x5, x9 + mul x17, x6, x10 + umulh x19, x3, x7 + adds x15, x15, x19 + umulh x19, x4, x8 + adcs x16, x16, x19 + umulh x19, x5, x9 + adcs x17, x17, x19 + umulh x19, x6, x10 + adc x19, x19, xzr + adds x12, x15, x11 + adcs x15, x16, x15 + adcs x16, x17, x16 + adcs x17, x19, x17 + adc x19, xzr, x19 + adds x13, x15, x11 + adcs x14, x16, x12 + adcs x15, x17, x15 + adcs x16, x19, x16 + adcs x17, xzr, x17 + adc x19, xzr, x19 + subs x24, x5, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x9 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x16, x16, x23 + eor x22, x22, x21 + adcs x17, x17, x22 + adc x19, x19, x21 + subs x24, x3, x4 + cneg x24, x24, lo + csetm x21, lo + subs x22, x8, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x12, x12, x23 + eor x22, x22, x21 + adcs x13, x13, x22 + adcs x14, x14, x21 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x15, x15, x23 + eor x22, x22, x21 + adcs x16, x16, x22 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x13, x13, x23 + eor x22, x22, x21 + adcs x14, x14, x22 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + ldp x3, x4, [tmp] + ldp x5, x6, [tmp+16] + eor x11, x11, x25 + adds x11, x11, x3 + eor x12, x12, x25 + adcs x12, x12, x4 + eor x13, x13, x25 + adcs x13, x13, x5 + eor x14, x14, x25 + adcs x14, x14, x6 + eor x15, x15, x25 + ldp x7, x8, [tmp+32] + ldp x9, x10, [tmp+48] + ldr x20, [tmp+64] + adcs x15, x15, x7 + eor x16, x16, x25 + adcs x16, x16, x8 + eor x17, x17, x25 + adcs x17, x17, x9 + eor x19, x19, x25 + adcs x19, x19, x10 + adc x21, x20, xzr + adds x15, x15, x3 + adcs x16, x16, x4 + adcs x17, x17, x5 + adcs x19, x19, x6 + and x25, x25, #0x1ff + lsl x24, x11, #9 + orr x24, x24, x25 + adcs x7, x7, x24 + extr x24, x12, x11, #55 + adcs x8, x8, x24 + extr x24, x13, x12, #55 + adcs x9, x9, x24 + extr x24, x14, x13, #55 + adcs x10, x10, x24 + lsr x24, x14, #55 + adc x20, x24, x20 + ldr x6, [x2, #64] + ldp x3, x4, [x1] + and x23, x3, #0xfffffffffffff + mul x23, x6, x23 + ldr x14, [x1, #64] + ldp x11, x12, [x2] + and x24, x11, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + extr x24, x4, x3, #52 + and x24, x24, #0xfffffffffffff + mul x22, x6, x24 + extr x24, x12, x11, #52 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x24, x22, x23, #12 + adds x15, x15, x24 + ldp x5, x3, [x1, #16] + ldp x13, x11, [x2, #16] + extr x24, x5, x4, #40 + and x24, x24, #0xfffffffffffff + mul x23, x6, x24 + extr x24, x13, x12, #40 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + lsr x24, x22, #52 + add x23, x23, x24 + lsl x22, x22, #12 + extr x24, x23, x22, #24 + adcs x16, x16, x24 + extr x24, x3, x5, #28 + and x24, x24, #0xfffffffffffff + mul x22, x6, x24 + extr x24, x11, x13, #28 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x24, x22, x23, #36 + adcs x17, x17, x24 + and x25, x16, x17 + ldp x4, x5, [x1, #32] + ldp x12, x13, [x2, #32] + extr x24, x4, x3, #16 + and x24, x24, #0xfffffffffffff + mul x23, x6, x24 + extr x24, x12, x11, #16 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + lsl x21, x21, #48 + add x23, x23, x21 + lsr x24, x22, #52 + add x23, x23, x24 + lsl x22, x22, #12 + extr x24, x23, x22, #48 + adcs x19, x19, x24 + and x25, x25, x19 + lsr x24, x4, #4 + and x24, x24, #0xfffffffffffff + mul x22, x6, x24 + lsr x24, x12, #4 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x21, x22, x23, #60 + extr x24, x5, x4, #56 + and x24, x24, #0xfffffffffffff + mul x23, x6, x24 + extr x24, x13, x12, #56 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + lsr x24, x22, #52 + add x23, x23, x24 + lsl x21, x21, #8 + extr x24, x23, x21, #8 + adcs x7, x7, x24 + and x25, x25, x7 + ldp x3, x4, [x1, #48] + ldp x11, x12, [x2, #48] + extr x24, x3, x5, #44 + and x24, x24, #0xfffffffffffff + mul x22, x6, x24 + extr x24, x11, x13, #44 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x24, x22, x23, #20 + adcs x8, x8, x24 + and x25, x25, x8 + extr x24, x4, x3, #32 + and x24, x24, #0xfffffffffffff + mul x23, x6, x24 + extr x24, x12, x11, #32 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + lsr x24, x22, #52 + add x23, x23, x24 + lsl x22, x22, #12 + extr x24, x23, x22, #32 + adcs x9, x9, x24 + and x25, x25, x9 + lsr x24, x4, #20 + mul x22, x6, x24 + lsr x24, x12, #20 + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x24, x22, x23, #44 + adcs x10, x10, x24 + and x25, x25, x10 + mul x24, x6, x14 + lsr x22, x22, #44 + add x24, x24, x22 + adc x20, x20, x24 + lsr x22, x20, #9 + orr x20, x20, #0xfffffffffffffe00 + cmp xzr, xzr + adcs xzr, x15, x22 + adcs xzr, x25, xzr + adcs xzr, x20, xzr + adcs x15, x15, x22 + adcs x16, x16, xzr + adcs x17, x17, xzr + adcs x19, x19, xzr + adcs x7, x7, xzr + adcs x8, x8, xzr + adcs x9, x9, xzr + adcs x10, x10, xzr + adc x20, x20, xzr + and x22, x15, #0x1ff + extr x15, x16, x15, #9 + extr x16, x17, x16, #9 + stp x15, x16, [x0] + extr x17, x19, x17, #9 + extr x19, x7, x19, #9 + stp x17, x19, [x0, #16] + extr x7, x8, x7, #9 + extr x8, x9, x8, #9 + stp x7, x8, [x0, #32] + extr x9, x10, x9, #9 + extr x10, x20, x10, #9 + stp x9, x10, [x0, #48] + str x22, [x0, #64] + ret + +local_sqr_p521: + ldp x2, x3, [x1] + ldp x4, x5, [x1, #16] + ldp x6, x7, [x1, #32] + ldp x8, x9, [x1, #48] + mul x12, x6, x8 + mul x17, x7, x9 + umulh x22, x6, x8 + subs x23, x6, x7 + cneg x23, x23, cc + csetm x11, cc + subs x10, x9, x8 + cneg x10, x10, cc + mul x16, x23, x10 + umulh x10, x23, x10 + cinv x11, x11, cc + eor x16, x16, x11 + eor x10, x10, x11 + adds x13, x12, x22 + adc x22, x22, xzr + umulh x23, x7, x9 + adds x13, x13, x17 + adcs x22, x22, x23 + adc x23, x23, xzr + adds x22, x22, x17 + adc x23, x23, xzr + cmn x11, #0x1 + adcs x13, x13, x16 + adcs x22, x22, x10 + adc x23, x23, x11 + adds x12, x12, x12 + adcs x13, x13, x13 + adcs x22, x22, x22 + adcs x23, x23, x23 + adc x19, xzr, xzr + mul x10, x6, x6 + mul x16, x7, x7 + mul x21, x6, x7 + umulh x11, x6, x6 + umulh x17, x7, x7 + umulh x20, x6, x7 + adds x11, x11, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x11, x11, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x12, x12, x16 + adcs x13, x13, x17 + adcs x22, x22, xzr + adcs x23, x23, xzr + adc x19, x19, xzr + mul x14, x8, x8 + mul x16, x9, x9 + mul x21, x8, x9 + umulh x15, x8, x8 + umulh x17, x9, x9 + umulh x20, x8, x9 + adds x15, x15, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x15, x15, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x14, x14, x22 + adcs x15, x15, x23 + adcs x16, x16, x19 + adc x17, x17, xzr + ldr x19, [x1, #64] + add x23, x19, x19 + mul x19, x19, x19 + and x21, x2, #0xfffffffffffff + mul x21, x23, x21 + extr x20, x3, x2, #52 + and x20, x20, #0xfffffffffffff + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x22, x20, x21, #12 + adds x10, x10, x22 + extr x21, x4, x3, #40 + and x21, x21, #0xfffffffffffff + mul x21, x23, x21 + lsr x22, x20, #52 + add x21, x21, x22 + lsl x20, x20, #12 + extr x22, x21, x20, #24 + adcs x11, x11, x22 + extr x20, x5, x4, #28 + and x20, x20, #0xfffffffffffff + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x22, x20, x21, #36 + adcs x12, x12, x22 + extr x21, x6, x5, #16 + and x21, x21, #0xfffffffffffff + mul x21, x23, x21 + lsr x22, x20, #52 + add x21, x21, x22 + lsl x20, x20, #12 + extr x22, x21, x20, #48 + adcs x13, x13, x22 + lsr x20, x6, #4 + and x20, x20, #0xfffffffffffff + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x24, x20, x21, #60 + extr x21, x7, x6, #56 + and x21, x21, #0xfffffffffffff + mul x21, x23, x21 + lsr x22, x20, #52 + add x21, x21, x22 + lsl x24, x24, #8 + extr x22, x21, x24, #8 + adcs x14, x14, x22 + extr x20, x8, x7, #44 + and x20, x20, #0xfffffffffffff + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x22, x20, x21, #20 + adcs x15, x15, x22 + extr x21, x9, x8, #32 + and x21, x21, #0xfffffffffffff + mul x21, x23, x21 + lsr x22, x20, #52 + add x21, x21, x22 + lsl x20, x20, #12 + extr x22, x21, x20, #32 + adcs x16, x16, x22 + lsr x20, x9, #20 + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x22, x20, x21, #44 + adcs x17, x17, x22 + lsr x20, x20, #44 + adc x19, x19, x20 + extr x21, x11, x10, #9 + extr x20, x12, x11, #9 + stp x21, x20, [x0] + extr x21, x13, x12, #9 + extr x20, x14, x13, #9 + stp x21, x20, [x0, #16] + extr x21, x15, x14, #9 + extr x20, x16, x15, #9 + stp x21, x20, [x0, #32] + extr x21, x17, x16, #9 + extr x20, x19, x17, #9 + stp x21, x20, [x0, #48] + and x22, x10, #0x1ff + lsr x19, x19, #9 + add x22, x22, x19 + str x22, [x0, #64] + mul x12, x2, x4 + mul x17, x3, x5 + umulh x22, x2, x4 + subs x23, x2, x3 + cneg x23, x23, cc + csetm x11, cc + subs x10, x5, x4 + cneg x10, x10, cc + mul x16, x23, x10 + umulh x10, x23, x10 + cinv x11, x11, cc + eor x16, x16, x11 + eor x10, x10, x11 + adds x13, x12, x22 + adc x22, x22, xzr + umulh x23, x3, x5 + adds x13, x13, x17 + adcs x22, x22, x23 + adc x23, x23, xzr + adds x22, x22, x17 + adc x23, x23, xzr + cmn x11, #0x1 + adcs x13, x13, x16 + adcs x22, x22, x10 + adc x23, x23, x11 + adds x12, x12, x12 + adcs x13, x13, x13 + adcs x22, x22, x22 + adcs x23, x23, x23 + adc x19, xzr, xzr + mul x10, x2, x2 + mul x16, x3, x3 + mul x21, x2, x3 + umulh x11, x2, x2 + umulh x17, x3, x3 + umulh x20, x2, x3 + adds x11, x11, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x11, x11, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x12, x12, x16 + adcs x13, x13, x17 + adcs x22, x22, xzr + adcs x23, x23, xzr + adc x19, x19, xzr + mul x14, x4, x4 + mul x16, x5, x5 + mul x21, x4, x5 + umulh x15, x4, x4 + umulh x17, x5, x5 + umulh x20, x4, x5 + adds x15, x15, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x15, x15, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x14, x14, x22 + adcs x15, x15, x23 + adcs x16, x16, x19 + adc x17, x17, xzr + ldp x21, x20, [x0] + adds x21, x21, x10 + adcs x20, x20, x11 + stp x21, x20, [x0] + ldp x21, x20, [x0, #16] + adcs x21, x21, x12 + adcs x20, x20, x13 + stp x21, x20, [x0, #16] + ldp x21, x20, [x0, #32] + adcs x21, x21, x14 + adcs x20, x20, x15 + stp x21, x20, [x0, #32] + ldp x21, x20, [x0, #48] + adcs x21, x21, x16 + adcs x20, x20, x17 + stp x21, x20, [x0, #48] + ldr x22, [x0, #64] + adc x22, x22, xzr + str x22, [x0, #64] + mul x10, x2, x6 + mul x14, x3, x7 + mul x15, x4, x8 + mul x16, x5, x9 + umulh x17, x2, x6 + adds x14, x14, x17 + umulh x17, x3, x7 + adcs x15, x15, x17 + umulh x17, x4, x8 + adcs x16, x16, x17 + umulh x17, x5, x9 + adc x17, x17, xzr + adds x11, x14, x10 + adcs x14, x15, x14 + adcs x15, x16, x15 + adcs x16, x17, x16 + adc x17, xzr, x17 + adds x12, x14, x10 + adcs x13, x15, x11 + adcs x14, x16, x14 + adcs x15, x17, x15 + adcs x16, xzr, x16 + adc x17, xzr, x17 + subs x22, x4, x5 + cneg x22, x22, cc + csetm x19, cc + subs x20, x9, x8 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x15, x15, x21 + eor x20, x20, x19 + adcs x16, x16, x20 + adc x17, x17, x19 + subs x22, x2, x3 + cneg x22, x22, cc + csetm x19, cc + subs x20, x7, x6 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x11, x11, x21 + eor x20, x20, x19 + adcs x12, x12, x20 + adcs x13, x13, x19 + adcs x14, x14, x19 + adcs x15, x15, x19 + adcs x16, x16, x19 + adc x17, x17, x19 + subs x22, x3, x5 + cneg x22, x22, cc + csetm x19, cc + subs x20, x9, x7 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x14, x14, x21 + eor x20, x20, x19 + adcs x15, x15, x20 + adcs x16, x16, x19 + adc x17, x17, x19 + subs x22, x2, x4 + cneg x22, x22, cc + csetm x19, cc + subs x20, x8, x6 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x12, x12, x21 + eor x20, x20, x19 + adcs x13, x13, x20 + adcs x14, x14, x19 + adcs x15, x15, x19 + adcs x16, x16, x19 + adc x17, x17, x19 + subs x22, x2, x5 + cneg x22, x22, cc + csetm x19, cc + subs x20, x9, x6 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x13, x13, x21 + eor x20, x20, x19 + adcs x14, x14, x20 + adcs x15, x15, x19 + adcs x16, x16, x19 + adc x17, x17, x19 + subs x22, x3, x4 + cneg x22, x22, cc + csetm x19, cc + subs x20, x8, x7 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x13, x13, x21 + eor x20, x20, x19 + adcs x14, x14, x20 + adcs x15, x15, x19 + adcs x16, x16, x19 + adc x17, x17, x19 + ldp x21, x20, [x0] + extr x2, x15, x14, #8 + adds x2, x2, x21 + extr x3, x16, x15, #8 + adcs x3, x3, x20 + ldp x21, x20, [x0, #16] + extr x4, x17, x16, #8 + adcs x4, x4, x21 + and x22, x3, x4 + lsr x5, x17, #8 + adcs x5, x5, x20 + and x22, x22, x5 + ldp x21, x20, [x0, #32] + lsl x6, x10, #1 + adcs x6, x6, x21 + and x22, x22, x6 + extr x7, x11, x10, #63 + adcs x7, x7, x20 + and x22, x22, x7 + ldp x21, x20, [x0, #48] + extr x8, x12, x11, #63 + adcs x8, x8, x21 + and x22, x22, x8 + extr x9, x13, x12, #63 + adcs x9, x9, x20 + and x22, x22, x9 + ldr x21, [x0, #64] + extr x10, x14, x13, #63 + and x10, x10, #0x1ff + adc x10, x21, x10 + lsr x20, x10, #9 + orr x10, x10, #0xfffffffffffffe00 + cmp xzr, xzr + adcs xzr, x2, x20 + adcs xzr, x22, xzr + adcs xzr, x10, xzr + adcs x2, x2, x20 + adcs x3, x3, xzr + adcs x4, x4, xzr + adcs x5, x5, xzr + adcs x6, x6, xzr + adcs x7, x7, xzr + adcs x8, x8, xzr + adcs x9, x9, xzr + adc x10, x10, xzr + and x10, x10, #0x1ff + stp x2, x3, [x0] + stp x4, x5, [x0, #16] + stp x6, x7, [x0, #32] + stp x8, x9, [x0, #48] + str x10, [x0, #64] + ret +local_sub_p521: + ldp x5, x6, [x1] + ldp x4, x3, [x2] + subs x5, x5, x4 + sbcs x6, x6, x3 + ldp x7, x8, [x1, #16] + ldp x4, x3, [x2, #16] + sbcs x7, x7, x4 + sbcs x8, x8, x3 + ldp x9, x10, [x1, #32] + ldp x4, x3, [x2, #32] + sbcs x9, x9, x4 + sbcs x10, x10, x3 + ldp x11, x12, [x1, #48] + ldp x4, x3, [x2, #48] + sbcs x11, x11, x4 + sbcs x12, x12, x3 + ldr x13, [x1, #64] + ldr x4, [x2, #64] + sbcs x13, x13, x4 + sbcs x5, x5, xzr + sbcs x6, x6, xzr + sbcs x7, x7, xzr + sbcs x8, x8, xzr + sbcs x9, x9, xzr + sbcs x10, x10, xzr + sbcs x11, x11, xzr + sbcs x12, x12, xzr + sbcs x13, x13, xzr + and x13, x13, #0x1ff + stp x5, x6, [x0] + stp x7, x8, [x0, #16] + stp x9, x10, [x0, #32] + stp x11, x12, [x0, #48] + str x13, [x0, #64] ret #if defined(__linux__) && defined(__ELF__) diff --git a/third_party/s2n-bignum/arm/p521/p521_jadd_alt.S b/third_party/s2n-bignum/arm/p521/p521_jadd_alt.S new file mode 100644 index 0000000000..72c9239be2 --- /dev/null +++ b/third_party/s2n-bignum/arm/p521/p521_jadd_alt.S @@ -0,0 +1,979 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Point addition on NIST curve P-521 in Jacobian coordinates +// +// extern void p521_jadd_alt +// (uint64_t p3[static 27],uint64_t p1[static 27],uint64_t p2[static 27]); +// +// Does p3 := p1 + p2 where all points are regarded as Jacobian triples. +// A Jacobian triple (x,y,z) represents affine point (x/z^2,y/z^3). +// It is assumed that all coordinates of the input points p1 and p2 are +// fully reduced mod p_521, that both z coordinates are nonzero and +// that neither p1 =~= p2 or p1 =~= -p2, where "=~=" means "represents +// the same affine point as". +// +// Standard ARM ABI: X0 = p3, X1 = p1, X2 = p2 +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(p521_jadd_alt) + S2N_BN_SYM_PRIVACY_DIRECTIVE(p521_jadd_alt) + + .text + .balign 4 + +// Size of individual field elements + +#define NUMSIZE 72 + +// Stable homes for input arguments during main code sequence + +#define input_z x26 +#define input_x x27 +#define input_y x28 + +// Pointer-offset pairs for inputs and outputs + +#define x_1 input_x, #0 +#define y_1 input_x, #NUMSIZE +#define z_1 input_x, #(2*NUMSIZE) + +#define x_2 input_y, #0 +#define y_2 input_y, #NUMSIZE +#define z_2 input_y, #(2*NUMSIZE) + +#define x_3 input_z, #0 +#define y_3 input_z, #NUMSIZE +#define z_3 input_z, #(2*NUMSIZE) + +// Pointer-offset pairs for temporaries, with some aliasing +// NSPACE is the total stack needed for these temporaries + +#define z1sq sp, #(NUMSIZE*0) +#define ww sp, #(NUMSIZE*0) +#define resx sp, #(NUMSIZE*0) + +#define yd sp, #(NUMSIZE*1) +#define y2a sp, #(NUMSIZE*1) + +#define x2a sp, #(NUMSIZE*2) +#define zzx2 sp, #(NUMSIZE*2) + +#define zz sp, #(NUMSIZE*3) +#define t1 sp, #(NUMSIZE*3) + +#define t2 sp, #(NUMSIZE*4) +#define x1a sp, #(NUMSIZE*4) +#define zzx1 sp, #(NUMSIZE*4) +#define resy sp, #(NUMSIZE*4) + +#define xd sp, #(NUMSIZE*5) +#define z2sq sp, #(NUMSIZE*5) +#define resz sp, #(NUMSIZE*5) + +#define y1a sp, #(NUMSIZE*6) + +// NUMSIZE*7 is not 16-aligned so we round it up + +#define NSPACE (NUMSIZE*7+8) + +// Corresponds exactly to bignum_mul_p521_alt + +#define mul_p521(P0,P1,P2) \ + ldp x3, x4, [P1]; \ + ldp x5, x6, [P2]; \ + mul x15, x3, x5; \ + umulh x16, x3, x5; \ + mul x14, x3, x6; \ + umulh x17, x3, x6; \ + adds x16, x16, x14; \ + ldp x7, x8, [P2+16]; \ + mul x14, x3, x7; \ + umulh x19, x3, x7; \ + adcs x17, x17, x14; \ + mul x14, x3, x8; \ + umulh x20, x3, x8; \ + adcs x19, x19, x14; \ + ldp x9, x10, [P2+32]; \ + mul x14, x3, x9; \ + umulh x21, x3, x9; \ + adcs x20, x20, x14; \ + mul x14, x3, x10; \ + umulh x22, x3, x10; \ + adcs x21, x21, x14; \ + ldp x11, x12, [P2+48]; \ + mul x14, x3, x11; \ + umulh x23, x3, x11; \ + adcs x22, x22, x14; \ + ldr x13, [P2+64]; \ + mul x14, x3, x12; \ + umulh x24, x3, x12; \ + adcs x23, x23, x14; \ + mul x14, x3, x13; \ + umulh x1, x3, x13; \ + adcs x24, x24, x14; \ + adc x1, x1, xzr; \ + mul x14, x4, x5; \ + adds x16, x16, x14; \ + mul x14, x4, x6; \ + adcs x17, x17, x14; \ + mul x14, x4, x7; \ + adcs x19, x19, x14; \ + mul x14, x4, x8; \ + adcs x20, x20, x14; \ + mul x14, x4, x9; \ + adcs x21, x21, x14; \ + mul x14, x4, x10; \ + adcs x22, x22, x14; \ + mul x14, x4, x11; \ + adcs x23, x23, x14; \ + mul x14, x4, x12; \ + adcs x24, x24, x14; \ + mul x14, x4, x13; \ + adcs x1, x1, x14; \ + cset x0, hs; \ + umulh x14, x4, x5; \ + adds x17, x17, x14; \ + umulh x14, x4, x6; \ + adcs x19, x19, x14; \ + umulh x14, x4, x7; \ + adcs x20, x20, x14; \ + umulh x14, x4, x8; \ + adcs x21, x21, x14; \ + umulh x14, x4, x9; \ + adcs x22, x22, x14; \ + umulh x14, x4, x10; \ + adcs x23, x23, x14; \ + umulh x14, x4, x11; \ + adcs x24, x24, x14; \ + umulh x14, x4, x12; \ + adcs x1, x1, x14; \ + umulh x14, x4, x13; \ + adc x0, x0, x14; \ + stp x15, x16, [P0]; \ + ldp x3, x4, [P1+16]; \ + mul x14, x3, x5; \ + adds x17, x17, x14; \ + mul x14, x3, x6; \ + adcs x19, x19, x14; \ + mul x14, x3, x7; \ + adcs x20, x20, x14; \ + mul x14, x3, x8; \ + adcs x21, x21, x14; \ + mul x14, x3, x9; \ + adcs x22, x22, x14; \ + mul x14, x3, x10; \ + adcs x23, x23, x14; \ + mul x14, x3, x11; \ + adcs x24, x24, x14; \ + mul x14, x3, x12; \ + adcs x1, x1, x14; \ + mul x14, x3, x13; \ + adcs x0, x0, x14; \ + cset x15, hs; \ + umulh x14, x3, x5; \ + adds x19, x19, x14; \ + umulh x14, x3, x6; \ + adcs x20, x20, x14; \ + umulh x14, x3, x7; \ + adcs x21, x21, x14; \ + umulh x14, x3, x8; \ + adcs x22, x22, x14; \ + umulh x14, x3, x9; \ + adcs x23, x23, x14; \ + umulh x14, x3, x10; \ + adcs x24, x24, x14; \ + umulh x14, x3, x11; \ + adcs x1, x1, x14; \ + umulh x14, x3, x12; \ + adcs x0, x0, x14; \ + umulh x14, x3, x13; \ + adc x15, x15, x14; \ + mul x14, x4, x5; \ + adds x19, x19, x14; \ + mul x14, x4, x6; \ + adcs x20, x20, x14; \ + mul x14, x4, x7; \ + adcs x21, x21, x14; \ + mul x14, x4, x8; \ + adcs x22, x22, x14; \ + mul x14, x4, x9; \ + adcs x23, x23, x14; \ + mul x14, x4, x10; \ + adcs x24, x24, x14; \ + mul x14, x4, x11; \ + adcs x1, x1, x14; \ + mul x14, x4, x12; \ + adcs x0, x0, x14; \ + mul x14, x4, x13; \ + adcs x15, x15, x14; \ + cset x16, hs; \ + umulh x14, x4, x5; \ + adds x20, x20, x14; \ + umulh x14, x4, x6; \ + adcs x21, x21, x14; \ + umulh x14, x4, x7; \ + adcs x22, x22, x14; \ + umulh x14, x4, x8; \ + adcs x23, x23, x14; \ + umulh x14, x4, x9; \ + adcs x24, x24, x14; \ + umulh x14, x4, x10; \ + adcs x1, x1, x14; \ + umulh x14, x4, x11; \ + adcs x0, x0, x14; \ + umulh x14, x4, x12; \ + adcs x15, x15, x14; \ + umulh x14, x4, x13; \ + adc x16, x16, x14; \ + stp x17, x19, [P0+16]; \ + ldp x3, x4, [P1+32]; \ + mul x14, x3, x5; \ + adds x20, x20, x14; \ + mul x14, x3, x6; \ + adcs x21, x21, x14; \ + mul x14, x3, x7; \ + adcs x22, x22, x14; \ + mul x14, x3, x8; \ + adcs x23, x23, x14; \ + mul x14, x3, x9; \ + adcs x24, x24, x14; \ + mul x14, x3, x10; \ + adcs x1, x1, x14; \ + mul x14, x3, x11; \ + adcs x0, x0, x14; \ + mul x14, x3, x12; \ + adcs x15, x15, x14; \ + mul x14, x3, x13; \ + adcs x16, x16, x14; \ + cset x17, hs; \ + umulh x14, x3, x5; \ + adds x21, x21, x14; \ + umulh x14, x3, x6; \ + adcs x22, x22, x14; \ + umulh x14, x3, x7; \ + adcs x23, x23, x14; \ + umulh x14, x3, x8; \ + adcs x24, x24, x14; \ + umulh x14, x3, x9; \ + adcs x1, x1, x14; \ + umulh x14, x3, x10; \ + adcs x0, x0, x14; \ + umulh x14, x3, x11; \ + adcs x15, x15, x14; \ + umulh x14, x3, x12; \ + adcs x16, x16, x14; \ + umulh x14, x3, x13; \ + adc x17, x17, x14; \ + mul x14, x4, x5; \ + adds x21, x21, x14; \ + mul x14, x4, x6; \ + adcs x22, x22, x14; \ + mul x14, x4, x7; \ + adcs x23, x23, x14; \ + mul x14, x4, x8; \ + adcs x24, x24, x14; \ + mul x14, x4, x9; \ + adcs x1, x1, x14; \ + mul x14, x4, x10; \ + adcs x0, x0, x14; \ + mul x14, x4, x11; \ + adcs x15, x15, x14; \ + mul x14, x4, x12; \ + adcs x16, x16, x14; \ + mul x14, x4, x13; \ + adcs x17, x17, x14; \ + cset x19, hs; \ + umulh x14, x4, x5; \ + adds x22, x22, x14; \ + umulh x14, x4, x6; \ + adcs x23, x23, x14; \ + umulh x14, x4, x7; \ + adcs x24, x24, x14; \ + umulh x14, x4, x8; \ + adcs x1, x1, x14; \ + umulh x14, x4, x9; \ + adcs x0, x0, x14; \ + umulh x14, x4, x10; \ + adcs x15, x15, x14; \ + umulh x14, x4, x11; \ + adcs x16, x16, x14; \ + umulh x14, x4, x12; \ + adcs x17, x17, x14; \ + umulh x14, x4, x13; \ + adc x19, x19, x14; \ + stp x20, x21, [P0+32]; \ + ldp x3, x4, [P1+48]; \ + mul x14, x3, x5; \ + adds x22, x22, x14; \ + mul x14, x3, x6; \ + adcs x23, x23, x14; \ + mul x14, x3, x7; \ + adcs x24, x24, x14; \ + mul x14, x3, x8; \ + adcs x1, x1, x14; \ + mul x14, x3, x9; \ + adcs x0, x0, x14; \ + mul x14, x3, x10; \ + adcs x15, x15, x14; \ + mul x14, x3, x11; \ + adcs x16, x16, x14; \ + mul x14, x3, x12; \ + adcs x17, x17, x14; \ + mul x14, x3, x13; \ + adcs x19, x19, x14; \ + cset x20, hs; \ + umulh x14, x3, x5; \ + adds x23, x23, x14; \ + umulh x14, x3, x6; \ + adcs x24, x24, x14; \ + umulh x14, x3, x7; \ + adcs x1, x1, x14; \ + umulh x14, x3, x8; \ + adcs x0, x0, x14; \ + umulh x14, x3, x9; \ + adcs x15, x15, x14; \ + umulh x14, x3, x10; \ + adcs x16, x16, x14; \ + umulh x14, x3, x11; \ + adcs x17, x17, x14; \ + umulh x14, x3, x12; \ + adcs x19, x19, x14; \ + umulh x14, x3, x13; \ + adc x20, x20, x14; \ + mul x14, x4, x5; \ + adds x23, x23, x14; \ + mul x14, x4, x6; \ + adcs x24, x24, x14; \ + mul x14, x4, x7; \ + adcs x1, x1, x14; \ + mul x14, x4, x8; \ + adcs x0, x0, x14; \ + mul x14, x4, x9; \ + adcs x15, x15, x14; \ + mul x14, x4, x10; \ + adcs x16, x16, x14; \ + mul x14, x4, x11; \ + adcs x17, x17, x14; \ + mul x14, x4, x12; \ + adcs x19, x19, x14; \ + mul x14, x4, x13; \ + adcs x20, x20, x14; \ + cset x21, hs; \ + umulh x14, x4, x5; \ + adds x24, x24, x14; \ + umulh x14, x4, x6; \ + adcs x1, x1, x14; \ + umulh x14, x4, x7; \ + adcs x0, x0, x14; \ + umulh x14, x4, x8; \ + adcs x15, x15, x14; \ + umulh x14, x4, x9; \ + adcs x16, x16, x14; \ + umulh x14, x4, x10; \ + adcs x17, x17, x14; \ + umulh x14, x4, x11; \ + adcs x19, x19, x14; \ + umulh x14, x4, x12; \ + adcs x20, x20, x14; \ + umulh x14, x4, x13; \ + adc x21, x21, x14; \ + stp x22, x23, [P0+48]; \ + ldr x3, [P1+64]; \ + mul x14, x3, x5; \ + adds x24, x24, x14; \ + mul x14, x3, x6; \ + adcs x1, x1, x14; \ + mul x14, x3, x7; \ + adcs x0, x0, x14; \ + mul x14, x3, x8; \ + adcs x15, x15, x14; \ + mul x14, x3, x9; \ + adcs x16, x16, x14; \ + mul x14, x3, x10; \ + adcs x17, x17, x14; \ + mul x14, x3, x11; \ + adcs x19, x19, x14; \ + mul x14, x3, x12; \ + adcs x20, x20, x14; \ + mul x14, x3, x13; \ + adc x21, x21, x14; \ + umulh x14, x3, x5; \ + adds x1, x1, x14; \ + umulh x14, x3, x6; \ + adcs x0, x0, x14; \ + umulh x14, x3, x7; \ + adcs x15, x15, x14; \ + umulh x14, x3, x8; \ + adcs x16, x16, x14; \ + umulh x14, x3, x9; \ + adcs x17, x17, x14; \ + umulh x14, x3, x10; \ + adcs x19, x19, x14; \ + umulh x14, x3, x11; \ + adcs x20, x20, x14; \ + umulh x14, x3, x12; \ + adc x21, x21, x14; \ + cmp xzr, xzr; \ + ldp x5, x6, [P0]; \ + extr x14, x1, x24, #9; \ + adcs x5, x5, x14; \ + extr x14, x0, x1, #9; \ + adcs x6, x6, x14; \ + ldp x7, x8, [P0+16]; \ + extr x14, x15, x0, #9; \ + adcs x7, x7, x14; \ + extr x14, x16, x15, #9; \ + adcs x8, x8, x14; \ + ldp x9, x10, [P0+32]; \ + extr x14, x17, x16, #9; \ + adcs x9, x9, x14; \ + extr x14, x19, x17, #9; \ + adcs x10, x10, x14; \ + ldp x11, x12, [P0+48]; \ + extr x14, x20, x19, #9; \ + adcs x11, x11, x14; \ + extr x14, x21, x20, #9; \ + adcs x12, x12, x14; \ + orr x13, x24, #0xfffffffffffffe00; \ + lsr x14, x21, #9; \ + adcs x13, x13, x14; \ + sbcs x5, x5, xzr; \ + sbcs x6, x6, xzr; \ + sbcs x7, x7, xzr; \ + sbcs x8, x8, xzr; \ + sbcs x9, x9, xzr; \ + sbcs x10, x10, xzr; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbc x13, x13, xzr; \ + and x13, x13, #0x1ff; \ + stp x5, x6, [P0]; \ + stp x7, x8, [P0+16]; \ + stp x9, x10, [P0+32]; \ + stp x11, x12, [P0+48]; \ + str x13, [P0+64] + +// Corresponds exactly to bignum_sqr_p521_alt + +#define sqr_p521(P0,P1) \ + ldp x2, x3, [P1]; \ + mul x11, x2, x3; \ + umulh x12, x2, x3; \ + ldp x4, x5, [P1+16]; \ + mul x10, x2, x4; \ + umulh x13, x2, x4; \ + adds x12, x12, x10; \ + ldp x6, x7, [P1+32]; \ + mul x10, x2, x5; \ + umulh x14, x2, x5; \ + adcs x13, x13, x10; \ + ldp x8, x9, [P1+48]; \ + mul x10, x2, x6; \ + umulh x15, x2, x6; \ + adcs x14, x14, x10; \ + mul x10, x2, x7; \ + umulh x16, x2, x7; \ + adcs x15, x15, x10; \ + mul x10, x2, x8; \ + umulh x17, x2, x8; \ + adcs x16, x16, x10; \ + mul x10, x2, x9; \ + umulh x19, x2, x9; \ + adcs x17, x17, x10; \ + adc x19, x19, xzr; \ + mul x10, x3, x4; \ + adds x13, x13, x10; \ + mul x10, x3, x5; \ + adcs x14, x14, x10; \ + mul x10, x3, x6; \ + adcs x15, x15, x10; \ + mul x10, x3, x7; \ + adcs x16, x16, x10; \ + mul x10, x3, x8; \ + adcs x17, x17, x10; \ + mul x10, x3, x9; \ + adcs x19, x19, x10; \ + cset x20, hs; \ + umulh x10, x3, x4; \ + adds x14, x14, x10; \ + umulh x10, x3, x5; \ + adcs x15, x15, x10; \ + umulh x10, x3, x6; \ + adcs x16, x16, x10; \ + umulh x10, x3, x7; \ + adcs x17, x17, x10; \ + umulh x10, x3, x8; \ + adcs x19, x19, x10; \ + umulh x10, x3, x9; \ + adc x20, x20, x10; \ + mul x10, x6, x7; \ + umulh x21, x6, x7; \ + adds x20, x20, x10; \ + adc x21, x21, xzr; \ + mul x10, x4, x5; \ + adds x15, x15, x10; \ + mul x10, x4, x6; \ + adcs x16, x16, x10; \ + mul x10, x4, x7; \ + adcs x17, x17, x10; \ + mul x10, x4, x8; \ + adcs x19, x19, x10; \ + mul x10, x4, x9; \ + adcs x20, x20, x10; \ + mul x10, x6, x8; \ + adcs x21, x21, x10; \ + cset x22, hs; \ + umulh x10, x4, x5; \ + adds x16, x16, x10; \ + umulh x10, x4, x6; \ + adcs x17, x17, x10; \ + umulh x10, x4, x7; \ + adcs x19, x19, x10; \ + umulh x10, x4, x8; \ + adcs x20, x20, x10; \ + umulh x10, x4, x9; \ + adcs x21, x21, x10; \ + umulh x10, x6, x8; \ + adc x22, x22, x10; \ + mul x10, x7, x8; \ + umulh x23, x7, x8; \ + adds x22, x22, x10; \ + adc x23, x23, xzr; \ + mul x10, x5, x6; \ + adds x17, x17, x10; \ + mul x10, x5, x7; \ + adcs x19, x19, x10; \ + mul x10, x5, x8; \ + adcs x20, x20, x10; \ + mul x10, x5, x9; \ + adcs x21, x21, x10; \ + mul x10, x6, x9; \ + adcs x22, x22, x10; \ + mul x10, x7, x9; \ + adcs x23, x23, x10; \ + cset x24, hs; \ + umulh x10, x5, x6; \ + adds x19, x19, x10; \ + umulh x10, x5, x7; \ + adcs x20, x20, x10; \ + umulh x10, x5, x8; \ + adcs x21, x21, x10; \ + umulh x10, x5, x9; \ + adcs x22, x22, x10; \ + umulh x10, x6, x9; \ + adcs x23, x23, x10; \ + umulh x10, x7, x9; \ + adc x24, x24, x10; \ + mul x10, x8, x9; \ + umulh x25, x8, x9; \ + adds x24, x24, x10; \ + adc x25, x25, xzr; \ + adds x11, x11, x11; \ + adcs x12, x12, x12; \ + adcs x13, x13, x13; \ + adcs x14, x14, x14; \ + adcs x15, x15, x15; \ + adcs x16, x16, x16; \ + adcs x17, x17, x17; \ + adcs x19, x19, x19; \ + adcs x20, x20, x20; \ + adcs x21, x21, x21; \ + adcs x22, x22, x22; \ + adcs x23, x23, x23; \ + adcs x24, x24, x24; \ + adcs x25, x25, x25; \ + cset x0, hs; \ + umulh x10, x2, x2; \ + adds x11, x11, x10; \ + mul x10, x3, x3; \ + adcs x12, x12, x10; \ + umulh x10, x3, x3; \ + adcs x13, x13, x10; \ + mul x10, x4, x4; \ + adcs x14, x14, x10; \ + umulh x10, x4, x4; \ + adcs x15, x15, x10; \ + mul x10, x5, x5; \ + adcs x16, x16, x10; \ + umulh x10, x5, x5; \ + adcs x17, x17, x10; \ + mul x10, x6, x6; \ + adcs x19, x19, x10; \ + umulh x10, x6, x6; \ + adcs x20, x20, x10; \ + mul x10, x7, x7; \ + adcs x21, x21, x10; \ + umulh x10, x7, x7; \ + adcs x22, x22, x10; \ + mul x10, x8, x8; \ + adcs x23, x23, x10; \ + umulh x10, x8, x8; \ + adcs x24, x24, x10; \ + mul x10, x9, x9; \ + adcs x25, x25, x10; \ + umulh x10, x9, x9; \ + adc x0, x0, x10; \ + ldr x1, [P1+64]; \ + add x1, x1, x1; \ + mul x10, x1, x2; \ + adds x19, x19, x10; \ + umulh x10, x1, x2; \ + adcs x20, x20, x10; \ + mul x10, x1, x4; \ + adcs x21, x21, x10; \ + umulh x10, x1, x4; \ + adcs x22, x22, x10; \ + mul x10, x1, x6; \ + adcs x23, x23, x10; \ + umulh x10, x1, x6; \ + adcs x24, x24, x10; \ + mul x10, x1, x8; \ + adcs x25, x25, x10; \ + umulh x10, x1, x8; \ + adcs x0, x0, x10; \ + lsr x4, x1, #1; \ + mul x4, x4, x4; \ + adc x4, x4, xzr; \ + mul x10, x1, x3; \ + adds x20, x20, x10; \ + umulh x10, x1, x3; \ + adcs x21, x21, x10; \ + mul x10, x1, x5; \ + adcs x22, x22, x10; \ + umulh x10, x1, x5; \ + adcs x23, x23, x10; \ + mul x10, x1, x7; \ + adcs x24, x24, x10; \ + umulh x10, x1, x7; \ + adcs x25, x25, x10; \ + mul x10, x1, x9; \ + adcs x0, x0, x10; \ + umulh x10, x1, x9; \ + adc x4, x4, x10; \ + mul x2, x2, x2; \ + cmp xzr, xzr; \ + extr x10, x20, x19, #9; \ + adcs x2, x2, x10; \ + extr x10, x21, x20, #9; \ + adcs x11, x11, x10; \ + extr x10, x22, x21, #9; \ + adcs x12, x12, x10; \ + extr x10, x23, x22, #9; \ + adcs x13, x13, x10; \ + extr x10, x24, x23, #9; \ + adcs x14, x14, x10; \ + extr x10, x25, x24, #9; \ + adcs x15, x15, x10; \ + extr x10, x0, x25, #9; \ + adcs x16, x16, x10; \ + extr x10, x4, x0, #9; \ + adcs x17, x17, x10; \ + orr x19, x19, #0xfffffffffffffe00; \ + lsr x10, x4, #9; \ + adcs x19, x19, x10; \ + sbcs x2, x2, xzr; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbcs x13, x13, xzr; \ + sbcs x14, x14, xzr; \ + sbcs x15, x15, xzr; \ + sbcs x16, x16, xzr; \ + sbcs x17, x17, xzr; \ + sbc x19, x19, xzr; \ + and x19, x19, #0x1ff; \ + stp x2, x11, [P0]; \ + stp x12, x13, [P0+16]; \ + stp x14, x15, [P0+32]; \ + stp x16, x17, [P0+48]; \ + str x19, [P0+64] + +// Corresponds exactly to bignum_sub_p521 + +#define sub_p521(P0,P1,P2) \ + ldp x5, x6, [P1]; \ + ldp x4, x3, [P2]; \ + subs x5, x5, x4; \ + sbcs x6, x6, x3; \ + ldp x7, x8, [P1+16]; \ + ldp x4, x3, [P2+16]; \ + sbcs x7, x7, x4; \ + sbcs x8, x8, x3; \ + ldp x9, x10, [P1+32]; \ + ldp x4, x3, [P2+32]; \ + sbcs x9, x9, x4; \ + sbcs x10, x10, x3; \ + ldp x11, x12, [P1+48]; \ + ldp x4, x3, [P2+48]; \ + sbcs x11, x11, x4; \ + sbcs x12, x12, x3; \ + ldr x13, [P1+64]; \ + ldr x4, [P2+64]; \ + sbcs x13, x13, x4; \ + sbcs x5, x5, xzr; \ + sbcs x6, x6, xzr; \ + sbcs x7, x7, xzr; \ + sbcs x8, x8, xzr; \ + sbcs x9, x9, xzr; \ + sbcs x10, x10, xzr; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbcs x13, x13, xzr; \ + and x13, x13, #0x1ff; \ + stp x5, x6, [P0]; \ + stp x7, x8, [P0+16]; \ + stp x9, x10, [P0+32]; \ + stp x11, x12, [P0+48]; \ + str x13, [P0+64] + +S2N_BN_SYMBOL(p521_jadd_alt): + +// Save regs and make room on stack for temporary variables + + stp x19, x20, [sp, #-16]! + stp x21, x22, [sp, #-16]! + stp x23, x24, [sp, #-16]! + stp x25, x26, [sp, #-16]! + stp x27, x28, [sp, #-16]! + sub sp, sp, NSPACE + +// Move the input arguments to stable places + + mov input_z, x0 + mov input_x, x1 + mov input_y, x2 + +// Main code, just a sequence of basic field operations + + sqr_p521(z1sq,z_1) + sqr_p521(z2sq,z_2) + + mul_p521(y1a,z_2,y_1) + mul_p521(y2a,z_1,y_2) + + mul_p521(x2a,z1sq,x_2) + mul_p521(x1a,z2sq,x_1) + mul_p521(y2a,z1sq,y2a) + mul_p521(y1a,z2sq,y1a) + + sub_p521(xd,x2a,x1a) + sub_p521(yd,y2a,y1a) + + sqr_p521(zz,xd) + sqr_p521(ww,yd) + + mul_p521(zzx1,zz,x1a) + mul_p521(zzx2,zz,x2a) + + sub_p521(resx,ww,zzx1) + sub_p521(t1,zzx2,zzx1) + + mul_p521(xd,xd,z_1) + + sub_p521(resx,resx,zzx2) + + sub_p521(t2,zzx1,resx) + + mul_p521(t1,t1,y1a) + mul_p521(resz,xd,z_2) + mul_p521(t2,yd,t2) + + sub_p521(resy,t2,t1) + +// Load in the z coordinates of the inputs to check for P1 = 0 and P2 = 0 +// The condition codes get set by a comparison (P2 != 0) - (P1 != 0) +// So "HI" <=> CF /\ ~ZF <=> P1 = 0 /\ ~(P2 = 0) +// and "LO" <=> ~CF <=> ~(P1 = 0) /\ P2 = 0 +// Multiplex the z outputs accordingly and re-store in resz + + ldp x0, x1, [z_1] + ldp x2, x3, [z_1+16] + ldp x4, x5, [z_1+32] + ldp x6, x7, [z_1+48] + ldr x8, [z_1+64] + + orr x20, x0, x1 + orr x21, x2, x3 + orr x22, x4, x5 + orr x23, x6, x7 + orr x20, x20, x21 + orr x22, x22, x23 + orr x20, x20, x8 + orr x20, x20, x22 + cmp x20, xzr + cset x20, ne + + ldp x10, x11, [z_2] + ldp x12, x13, [z_2+16] + ldp x14, x15, [z_2+32] + ldp x16, x17, [z_2+48] + ldr x19, [z_2+64] + + orr x21, x10, x11 + orr x22, x12, x13 + orr x23, x14, x15 + orr x24, x16, x17 + orr x21, x21, x22 + orr x23, x23, x24 + orr x21, x21, x19 + orr x21, x21, x23 + + csel x0, x0, x10, ne + csel x1, x1, x11, ne + csel x2, x2, x12, ne + csel x3, x3, x13, ne + csel x4, x4, x14, ne + csel x5, x5, x15, ne + csel x6, x6, x16, ne + csel x7, x7, x17, ne + csel x8, x8, x19, ne + + cmp x21, xzr + cset x21, ne + + cmp x21, x20 + + ldp x10, x11, [resz] + ldp x12, x13, [resz+16] + ldp x14, x15, [resz+32] + ldp x16, x17, [resz+48] + ldr x19, [resz+64] + + csel x0, x0, x10, ne + csel x1, x1, x11, ne + csel x2, x2, x12, ne + csel x3, x3, x13, ne + csel x4, x4, x14, ne + csel x5, x5, x15, ne + csel x6, x6, x16, ne + csel x7, x7, x17, ne + csel x8, x8, x19, ne + + stp x0, x1, [resz] + stp x2, x3, [resz+16] + stp x4, x5, [resz+32] + stp x6, x7, [resz+48] + str x8, [resz+64] + +// Multiplex the x and y outputs too, keeping the results in registers + + ldp x20, x21, [x_1] + ldp x0, x1, [resx] + csel x0, x20, x0, lo + csel x1, x21, x1, lo + ldp x20, x21, [x_2] + csel x0, x20, x0, hi + csel x1, x21, x1, hi + + ldp x20, x21, [x_1+16] + ldp x2, x3, [resx+16] + csel x2, x20, x2, lo + csel x3, x21, x3, lo + ldp x20, x21, [x_2+16] + csel x2, x20, x2, hi + csel x3, x21, x3, hi + + ldp x20, x21, [x_1+32] + ldp x4, x5, [resx+32] + csel x4, x20, x4, lo + csel x5, x21, x5, lo + ldp x20, x21, [x_2+32] + csel x4, x20, x4, hi + csel x5, x21, x5, hi + + ldp x20, x21, [x_1+48] + ldp x6, x7, [resx+48] + csel x6, x20, x6, lo + csel x7, x21, x7, lo + ldp x20, x21, [x_2+48] + csel x6, x20, x6, hi + csel x7, x21, x7, hi + + ldr x20, [x_1+64] + ldr x8, [resx+64] + csel x8, x20, x8, lo + ldr x21, [x_2+64] + csel x8, x21, x8, hi + + + ldp x20, x21, [y_1] + ldp x10, x11, [resy] + csel x10, x20, x10, lo + csel x11, x21, x11, lo + ldp x20, x21, [y_2] + csel x10, x20, x10, hi + csel x11, x21, x11, hi + + ldp x20, x21, [y_1+16] + ldp x12, x13, [resy+16] + csel x12, x20, x12, lo + csel x13, x21, x13, lo + ldp x20, x21, [y_2+16] + csel x12, x20, x12, hi + csel x13, x21, x13, hi + + ldp x20, x21, [y_1+32] + ldp x14, x15, [resy+32] + csel x14, x20, x14, lo + csel x15, x21, x15, lo + ldp x20, x21, [y_2+32] + csel x14, x20, x14, hi + csel x15, x21, x15, hi + + ldp x20, x21, [y_1+48] + ldp x16, x17, [resy+48] + csel x16, x20, x16, lo + csel x17, x21, x17, lo + ldp x20, x21, [y_2+48] + csel x16, x20, x16, hi + csel x17, x21, x17, hi + + ldr x20, [y_1+64] + ldr x19, [resy+64] + csel x19, x20, x19, lo + ldr x21, [y_2+64] + csel x19, x21, x19, hi + +// Finally store back the multiplexed values + + stp x0, x1, [x_3] + stp x2, x3, [x_3+16] + stp x4, x5, [x_3+32] + stp x6, x7, [x_3+48] + str x8, [x_3+64] + + ldp x0, x1, [resz] + ldp x2, x3, [resz+16] + ldp x4, x5, [resz+32] + ldp x6, x7, [resz+48] + ldr x8, [resz+64] + + stp x10, x11, [y_3] + stp x12, x13, [y_3+16] + stp x14, x15, [y_3+32] + stp x16, x17, [y_3+48] + str x19, [y_3+64] + + stp x0, x1, [z_3] + stp x2, x3, [z_3+16] + stp x4, x5, [z_3+32] + stp x6, x7, [z_3+48] + str x8, [z_3+64] + +// Restore stack and registers + + add sp, sp, NSPACE + + ldp x27, x28, [sp], 16 + ldp x25, x26, [sp], 16 + ldp x23, x24, [sp], 16 + ldp x21, x22, [sp], 16 + ldp x19, x20, [sp], 16 + + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack, "", %progbits +#endif diff --git a/third_party/s2n-bignum/arm/p521/p521_jdouble.S b/third_party/s2n-bignum/arm/p521/p521_jdouble.S index 100f6d3e87..3eb0250b33 100644 --- a/third_party/s2n-bignum/arm/p521/p521_jdouble.S +++ b/third_party/s2n-bignum/arm/p521/p521_jdouble.S @@ -28,8 +28,8 @@ // Stable homes for input arguments during main code sequence -#define input_z x26 -#define input_x x27 +#define input_z x27 +#define input_x x28 // Pointer-offset pairs for inputs and outputs @@ -61,616 +61,21 @@ #define NSPACE (NUMSIZE*7+8) -// Corresponds exactly to bignum_mul_p521_alt +// For the two "big" field operations, we use subroutines not inlining. +// Call local code very close to bignum_mul_p521 and bignum_sqr_p521. #define mul_p521(P0,P1,P2) \ - ldp x3, x4, [P1]; \ - ldp x5, x6, [P2]; \ - mul x15, x3, x5; \ - umulh x16, x3, x5; \ - mul x14, x3, x6; \ - umulh x17, x3, x6; \ - adds x16, x16, x14; \ - ldp x7, x8, [P2+16]; \ - mul x14, x3, x7; \ - umulh x19, x3, x7; \ - adcs x17, x17, x14; \ - mul x14, x3, x8; \ - umulh x20, x3, x8; \ - adcs x19, x19, x14; \ - ldp x9, x10, [P2+32]; \ - mul x14, x3, x9; \ - umulh x21, x3, x9; \ - adcs x20, x20, x14; \ - mul x14, x3, x10; \ - umulh x22, x3, x10; \ - adcs x21, x21, x14; \ - ldp x11, x12, [P2+48]; \ - mul x14, x3, x11; \ - umulh x23, x3, x11; \ - adcs x22, x22, x14; \ - ldr x13, [P2+64]; \ - mul x14, x3, x12; \ - umulh x24, x3, x12; \ - adcs x23, x23, x14; \ - mul x14, x3, x13; \ - umulh x1, x3, x13; \ - adcs x24, x24, x14; \ - adc x1, x1, xzr; \ - mul x14, x4, x5; \ - adds x16, x16, x14; \ - mul x14, x4, x6; \ - adcs x17, x17, x14; \ - mul x14, x4, x7; \ - adcs x19, x19, x14; \ - mul x14, x4, x8; \ - adcs x20, x20, x14; \ - mul x14, x4, x9; \ - adcs x21, x21, x14; \ - mul x14, x4, x10; \ - adcs x22, x22, x14; \ - mul x14, x4, x11; \ - adcs x23, x23, x14; \ - mul x14, x4, x12; \ - adcs x24, x24, x14; \ - mul x14, x4, x13; \ - adcs x1, x1, x14; \ - cset x0, hs; \ - umulh x14, x4, x5; \ - adds x17, x17, x14; \ - umulh x14, x4, x6; \ - adcs x19, x19, x14; \ - umulh x14, x4, x7; \ - adcs x20, x20, x14; \ - umulh x14, x4, x8; \ - adcs x21, x21, x14; \ - umulh x14, x4, x9; \ - adcs x22, x22, x14; \ - umulh x14, x4, x10; \ - adcs x23, x23, x14; \ - umulh x14, x4, x11; \ - adcs x24, x24, x14; \ - umulh x14, x4, x12; \ - adcs x1, x1, x14; \ - umulh x14, x4, x13; \ - adc x0, x0, x14; \ - stp x15, x16, [P0]; \ - ldp x3, x4, [P1+16]; \ - mul x14, x3, x5; \ - adds x17, x17, x14; \ - mul x14, x3, x6; \ - adcs x19, x19, x14; \ - mul x14, x3, x7; \ - adcs x20, x20, x14; \ - mul x14, x3, x8; \ - adcs x21, x21, x14; \ - mul x14, x3, x9; \ - adcs x22, x22, x14; \ - mul x14, x3, x10; \ - adcs x23, x23, x14; \ - mul x14, x3, x11; \ - adcs x24, x24, x14; \ - mul x14, x3, x12; \ - adcs x1, x1, x14; \ - mul x14, x3, x13; \ - adcs x0, x0, x14; \ - cset x15, hs; \ - umulh x14, x3, x5; \ - adds x19, x19, x14; \ - umulh x14, x3, x6; \ - adcs x20, x20, x14; \ - umulh x14, x3, x7; \ - adcs x21, x21, x14; \ - umulh x14, x3, x8; \ - adcs x22, x22, x14; \ - umulh x14, x3, x9; \ - adcs x23, x23, x14; \ - umulh x14, x3, x10; \ - adcs x24, x24, x14; \ - umulh x14, x3, x11; \ - adcs x1, x1, x14; \ - umulh x14, x3, x12; \ - adcs x0, x0, x14; \ - umulh x14, x3, x13; \ - adc x15, x15, x14; \ - mul x14, x4, x5; \ - adds x19, x19, x14; \ - mul x14, x4, x6; \ - adcs x20, x20, x14; \ - mul x14, x4, x7; \ - adcs x21, x21, x14; \ - mul x14, x4, x8; \ - adcs x22, x22, x14; \ - mul x14, x4, x9; \ - adcs x23, x23, x14; \ - mul x14, x4, x10; \ - adcs x24, x24, x14; \ - mul x14, x4, x11; \ - adcs x1, x1, x14; \ - mul x14, x4, x12; \ - adcs x0, x0, x14; \ - mul x14, x4, x13; \ - adcs x15, x15, x14; \ - cset x16, hs; \ - umulh x14, x4, x5; \ - adds x20, x20, x14; \ - umulh x14, x4, x6; \ - adcs x21, x21, x14; \ - umulh x14, x4, x7; \ - adcs x22, x22, x14; \ - umulh x14, x4, x8; \ - adcs x23, x23, x14; \ - umulh x14, x4, x9; \ - adcs x24, x24, x14; \ - umulh x14, x4, x10; \ - adcs x1, x1, x14; \ - umulh x14, x4, x11; \ - adcs x0, x0, x14; \ - umulh x14, x4, x12; \ - adcs x15, x15, x14; \ - umulh x14, x4, x13; \ - adc x16, x16, x14; \ - stp x17, x19, [P0+16]; \ - ldp x3, x4, [P1+32]; \ - mul x14, x3, x5; \ - adds x20, x20, x14; \ - mul x14, x3, x6; \ - adcs x21, x21, x14; \ - mul x14, x3, x7; \ - adcs x22, x22, x14; \ - mul x14, x3, x8; \ - adcs x23, x23, x14; \ - mul x14, x3, x9; \ - adcs x24, x24, x14; \ - mul x14, x3, x10; \ - adcs x1, x1, x14; \ - mul x14, x3, x11; \ - adcs x0, x0, x14; \ - mul x14, x3, x12; \ - adcs x15, x15, x14; \ - mul x14, x3, x13; \ - adcs x16, x16, x14; \ - cset x17, hs; \ - umulh x14, x3, x5; \ - adds x21, x21, x14; \ - umulh x14, x3, x6; \ - adcs x22, x22, x14; \ - umulh x14, x3, x7; \ - adcs x23, x23, x14; \ - umulh x14, x3, x8; \ - adcs x24, x24, x14; \ - umulh x14, x3, x9; \ - adcs x1, x1, x14; \ - umulh x14, x3, x10; \ - adcs x0, x0, x14; \ - umulh x14, x3, x11; \ - adcs x15, x15, x14; \ - umulh x14, x3, x12; \ - adcs x16, x16, x14; \ - umulh x14, x3, x13; \ - adc x17, x17, x14; \ - mul x14, x4, x5; \ - adds x21, x21, x14; \ - mul x14, x4, x6; \ - adcs x22, x22, x14; \ - mul x14, x4, x7; \ - adcs x23, x23, x14; \ - mul x14, x4, x8; \ - adcs x24, x24, x14; \ - mul x14, x4, x9; \ - adcs x1, x1, x14; \ - mul x14, x4, x10; \ - adcs x0, x0, x14; \ - mul x14, x4, x11; \ - adcs x15, x15, x14; \ - mul x14, x4, x12; \ - adcs x16, x16, x14; \ - mul x14, x4, x13; \ - adcs x17, x17, x14; \ - cset x19, hs; \ - umulh x14, x4, x5; \ - adds x22, x22, x14; \ - umulh x14, x4, x6; \ - adcs x23, x23, x14; \ - umulh x14, x4, x7; \ - adcs x24, x24, x14; \ - umulh x14, x4, x8; \ - adcs x1, x1, x14; \ - umulh x14, x4, x9; \ - adcs x0, x0, x14; \ - umulh x14, x4, x10; \ - adcs x15, x15, x14; \ - umulh x14, x4, x11; \ - adcs x16, x16, x14; \ - umulh x14, x4, x12; \ - adcs x17, x17, x14; \ - umulh x14, x4, x13; \ - adc x19, x19, x14; \ - stp x20, x21, [P0+32]; \ - ldp x3, x4, [P1+48]; \ - mul x14, x3, x5; \ - adds x22, x22, x14; \ - mul x14, x3, x6; \ - adcs x23, x23, x14; \ - mul x14, x3, x7; \ - adcs x24, x24, x14; \ - mul x14, x3, x8; \ - adcs x1, x1, x14; \ - mul x14, x3, x9; \ - adcs x0, x0, x14; \ - mul x14, x3, x10; \ - adcs x15, x15, x14; \ - mul x14, x3, x11; \ - adcs x16, x16, x14; \ - mul x14, x3, x12; \ - adcs x17, x17, x14; \ - mul x14, x3, x13; \ - adcs x19, x19, x14; \ - cset x20, hs; \ - umulh x14, x3, x5; \ - adds x23, x23, x14; \ - umulh x14, x3, x6; \ - adcs x24, x24, x14; \ - umulh x14, x3, x7; \ - adcs x1, x1, x14; \ - umulh x14, x3, x8; \ - adcs x0, x0, x14; \ - umulh x14, x3, x9; \ - adcs x15, x15, x14; \ - umulh x14, x3, x10; \ - adcs x16, x16, x14; \ - umulh x14, x3, x11; \ - adcs x17, x17, x14; \ - umulh x14, x3, x12; \ - adcs x19, x19, x14; \ - umulh x14, x3, x13; \ - adc x20, x20, x14; \ - mul x14, x4, x5; \ - adds x23, x23, x14; \ - mul x14, x4, x6; \ - adcs x24, x24, x14; \ - mul x14, x4, x7; \ - adcs x1, x1, x14; \ - mul x14, x4, x8; \ - adcs x0, x0, x14; \ - mul x14, x4, x9; \ - adcs x15, x15, x14; \ - mul x14, x4, x10; \ - adcs x16, x16, x14; \ - mul x14, x4, x11; \ - adcs x17, x17, x14; \ - mul x14, x4, x12; \ - adcs x19, x19, x14; \ - mul x14, x4, x13; \ - adcs x20, x20, x14; \ - cset x21, hs; \ - umulh x14, x4, x5; \ - adds x24, x24, x14; \ - umulh x14, x4, x6; \ - adcs x1, x1, x14; \ - umulh x14, x4, x7; \ - adcs x0, x0, x14; \ - umulh x14, x4, x8; \ - adcs x15, x15, x14; \ - umulh x14, x4, x9; \ - adcs x16, x16, x14; \ - umulh x14, x4, x10; \ - adcs x17, x17, x14; \ - umulh x14, x4, x11; \ - adcs x19, x19, x14; \ - umulh x14, x4, x12; \ - adcs x20, x20, x14; \ - umulh x14, x4, x13; \ - adc x21, x21, x14; \ - stp x22, x23, [P0+48]; \ - ldr x3, [P1+64]; \ - mul x14, x3, x5; \ - adds x24, x24, x14; \ - mul x14, x3, x6; \ - adcs x1, x1, x14; \ - mul x14, x3, x7; \ - adcs x0, x0, x14; \ - mul x14, x3, x8; \ - adcs x15, x15, x14; \ - mul x14, x3, x9; \ - adcs x16, x16, x14; \ - mul x14, x3, x10; \ - adcs x17, x17, x14; \ - mul x14, x3, x11; \ - adcs x19, x19, x14; \ - mul x14, x3, x12; \ - adcs x20, x20, x14; \ - mul x14, x3, x13; \ - adc x21, x21, x14; \ - umulh x14, x3, x5; \ - adds x1, x1, x14; \ - umulh x14, x3, x6; \ - adcs x0, x0, x14; \ - umulh x14, x3, x7; \ - adcs x15, x15, x14; \ - umulh x14, x3, x8; \ - adcs x16, x16, x14; \ - umulh x14, x3, x9; \ - adcs x17, x17, x14; \ - umulh x14, x3, x10; \ - adcs x19, x19, x14; \ - umulh x14, x3, x11; \ - adcs x20, x20, x14; \ - umulh x14, x3, x12; \ - adc x21, x21, x14; \ - cmp xzr, xzr; \ - ldp x5, x6, [P0]; \ - extr x14, x1, x24, #9; \ - adcs x5, x5, x14; \ - extr x14, x0, x1, #9; \ - adcs x6, x6, x14; \ - ldp x7, x8, [P0+16]; \ - extr x14, x15, x0, #9; \ - adcs x7, x7, x14; \ - extr x14, x16, x15, #9; \ - adcs x8, x8, x14; \ - ldp x9, x10, [P0+32]; \ - extr x14, x17, x16, #9; \ - adcs x9, x9, x14; \ - extr x14, x19, x17, #9; \ - adcs x10, x10, x14; \ - ldp x11, x12, [P0+48]; \ - extr x14, x20, x19, #9; \ - adcs x11, x11, x14; \ - extr x14, x21, x20, #9; \ - adcs x12, x12, x14; \ - orr x13, x24, #0xfffffffffffffe00; \ - lsr x14, x21, #9; \ - adcs x13, x13, x14; \ - sbcs x5, x5, xzr; \ - sbcs x6, x6, xzr; \ - sbcs x7, x7, xzr; \ - sbcs x8, x8, xzr; \ - sbcs x9, x9, xzr; \ - sbcs x10, x10, xzr; \ - sbcs x11, x11, xzr; \ - sbcs x12, x12, xzr; \ - sbc x13, x13, xzr; \ - and x13, x13, #0x1ff; \ - stp x5, x6, [P0]; \ - stp x7, x8, [P0+16]; \ - stp x9, x10, [P0+32]; \ - stp x11, x12, [P0+48]; \ - str x13, [P0+64] + add x0, P0; \ + add x1, P1; \ + add x2, P2; \ + bl local_mul_p521 -// Corresponds exactly to bignum_sqr_p521_alt +// Call local code equivalent to bignum_sqr_p521 #define sqr_p521(P0,P1) \ - ldp x2, x3, [P1]; \ - mul x11, x2, x3; \ - umulh x12, x2, x3; \ - ldp x4, x5, [P1+16]; \ - mul x10, x2, x4; \ - umulh x13, x2, x4; \ - adds x12, x12, x10; \ - ldp x6, x7, [P1+32]; \ - mul x10, x2, x5; \ - umulh x14, x2, x5; \ - adcs x13, x13, x10; \ - ldp x8, x9, [P1+48]; \ - mul x10, x2, x6; \ - umulh x15, x2, x6; \ - adcs x14, x14, x10; \ - mul x10, x2, x7; \ - umulh x16, x2, x7; \ - adcs x15, x15, x10; \ - mul x10, x2, x8; \ - umulh x17, x2, x8; \ - adcs x16, x16, x10; \ - mul x10, x2, x9; \ - umulh x19, x2, x9; \ - adcs x17, x17, x10; \ - adc x19, x19, xzr; \ - mul x10, x3, x4; \ - adds x13, x13, x10; \ - mul x10, x3, x5; \ - adcs x14, x14, x10; \ - mul x10, x3, x6; \ - adcs x15, x15, x10; \ - mul x10, x3, x7; \ - adcs x16, x16, x10; \ - mul x10, x3, x8; \ - adcs x17, x17, x10; \ - mul x10, x3, x9; \ - adcs x19, x19, x10; \ - cset x20, hs; \ - umulh x10, x3, x4; \ - adds x14, x14, x10; \ - umulh x10, x3, x5; \ - adcs x15, x15, x10; \ - umulh x10, x3, x6; \ - adcs x16, x16, x10; \ - umulh x10, x3, x7; \ - adcs x17, x17, x10; \ - umulh x10, x3, x8; \ - adcs x19, x19, x10; \ - umulh x10, x3, x9; \ - adc x20, x20, x10; \ - mul x10, x6, x7; \ - umulh x21, x6, x7; \ - adds x20, x20, x10; \ - adc x21, x21, xzr; \ - mul x10, x4, x5; \ - adds x15, x15, x10; \ - mul x10, x4, x6; \ - adcs x16, x16, x10; \ - mul x10, x4, x7; \ - adcs x17, x17, x10; \ - mul x10, x4, x8; \ - adcs x19, x19, x10; \ - mul x10, x4, x9; \ - adcs x20, x20, x10; \ - mul x10, x6, x8; \ - adcs x21, x21, x10; \ - cset x22, hs; \ - umulh x10, x4, x5; \ - adds x16, x16, x10; \ - umulh x10, x4, x6; \ - adcs x17, x17, x10; \ - umulh x10, x4, x7; \ - adcs x19, x19, x10; \ - umulh x10, x4, x8; \ - adcs x20, x20, x10; \ - umulh x10, x4, x9; \ - adcs x21, x21, x10; \ - umulh x10, x6, x8; \ - adc x22, x22, x10; \ - mul x10, x7, x8; \ - umulh x23, x7, x8; \ - adds x22, x22, x10; \ - adc x23, x23, xzr; \ - mul x10, x5, x6; \ - adds x17, x17, x10; \ - mul x10, x5, x7; \ - adcs x19, x19, x10; \ - mul x10, x5, x8; \ - adcs x20, x20, x10; \ - mul x10, x5, x9; \ - adcs x21, x21, x10; \ - mul x10, x6, x9; \ - adcs x22, x22, x10; \ - mul x10, x7, x9; \ - adcs x23, x23, x10; \ - cset x24, hs; \ - umulh x10, x5, x6; \ - adds x19, x19, x10; \ - umulh x10, x5, x7; \ - adcs x20, x20, x10; \ - umulh x10, x5, x8; \ - adcs x21, x21, x10; \ - umulh x10, x5, x9; \ - adcs x22, x22, x10; \ - umulh x10, x6, x9; \ - adcs x23, x23, x10; \ - umulh x10, x7, x9; \ - adc x24, x24, x10; \ - mul x10, x8, x9; \ - umulh x25, x8, x9; \ - adds x24, x24, x10; \ - adc x25, x25, xzr; \ - adds x11, x11, x11; \ - adcs x12, x12, x12; \ - adcs x13, x13, x13; \ - adcs x14, x14, x14; \ - adcs x15, x15, x15; \ - adcs x16, x16, x16; \ - adcs x17, x17, x17; \ - adcs x19, x19, x19; \ - adcs x20, x20, x20; \ - adcs x21, x21, x21; \ - adcs x22, x22, x22; \ - adcs x23, x23, x23; \ - adcs x24, x24, x24; \ - adcs x25, x25, x25; \ - cset x0, hs; \ - umulh x10, x2, x2; \ - adds x11, x11, x10; \ - mul x10, x3, x3; \ - adcs x12, x12, x10; \ - umulh x10, x3, x3; \ - adcs x13, x13, x10; \ - mul x10, x4, x4; \ - adcs x14, x14, x10; \ - umulh x10, x4, x4; \ - adcs x15, x15, x10; \ - mul x10, x5, x5; \ - adcs x16, x16, x10; \ - umulh x10, x5, x5; \ - adcs x17, x17, x10; \ - mul x10, x6, x6; \ - adcs x19, x19, x10; \ - umulh x10, x6, x6; \ - adcs x20, x20, x10; \ - mul x10, x7, x7; \ - adcs x21, x21, x10; \ - umulh x10, x7, x7; \ - adcs x22, x22, x10; \ - mul x10, x8, x8; \ - adcs x23, x23, x10; \ - umulh x10, x8, x8; \ - adcs x24, x24, x10; \ - mul x10, x9, x9; \ - adcs x25, x25, x10; \ - umulh x10, x9, x9; \ - adc x0, x0, x10; \ - ldr x1, [P1+64]; \ - add x1, x1, x1; \ - mul x10, x1, x2; \ - adds x19, x19, x10; \ - umulh x10, x1, x2; \ - adcs x20, x20, x10; \ - mul x10, x1, x4; \ - adcs x21, x21, x10; \ - umulh x10, x1, x4; \ - adcs x22, x22, x10; \ - mul x10, x1, x6; \ - adcs x23, x23, x10; \ - umulh x10, x1, x6; \ - adcs x24, x24, x10; \ - mul x10, x1, x8; \ - adcs x25, x25, x10; \ - umulh x10, x1, x8; \ - adcs x0, x0, x10; \ - lsr x4, x1, #1; \ - mul x4, x4, x4; \ - adc x4, x4, xzr; \ - mul x10, x1, x3; \ - adds x20, x20, x10; \ - umulh x10, x1, x3; \ - adcs x21, x21, x10; \ - mul x10, x1, x5; \ - adcs x22, x22, x10; \ - umulh x10, x1, x5; \ - adcs x23, x23, x10; \ - mul x10, x1, x7; \ - adcs x24, x24, x10; \ - umulh x10, x1, x7; \ - adcs x25, x25, x10; \ - mul x10, x1, x9; \ - adcs x0, x0, x10; \ - umulh x10, x1, x9; \ - adc x4, x4, x10; \ - mul x2, x2, x2; \ - cmp xzr, xzr; \ - extr x10, x20, x19, #9; \ - adcs x2, x2, x10; \ - extr x10, x21, x20, #9; \ - adcs x11, x11, x10; \ - extr x10, x22, x21, #9; \ - adcs x12, x12, x10; \ - extr x10, x23, x22, #9; \ - adcs x13, x13, x10; \ - extr x10, x24, x23, #9; \ - adcs x14, x14, x10; \ - extr x10, x25, x24, #9; \ - adcs x15, x15, x10; \ - extr x10, x0, x25, #9; \ - adcs x16, x16, x10; \ - extr x10, x4, x0, #9; \ - adcs x17, x17, x10; \ - orr x19, x19, #0xfffffffffffffe00; \ - lsr x10, x4, #9; \ - adcs x19, x19, x10; \ - sbcs x2, x2, xzr; \ - sbcs x11, x11, xzr; \ - sbcs x12, x12, xzr; \ - sbcs x13, x13, xzr; \ - sbcs x14, x14, xzr; \ - sbcs x15, x15, xzr; \ - sbcs x16, x16, xzr; \ - sbcs x17, x17, xzr; \ - sbc x19, x19, xzr; \ - and x19, x19, #0x1ff; \ - stp x2, x11, [P0]; \ - stp x12, x13, [P0+16]; \ - stp x14, x15, [P0+32]; \ - stp x16, x17, [P0+48]; \ - str x19, [P0+64] + add x0, P0; \ + add x1, P1; \ + bl local_sqr_p521 // Corresponds exactly to bignum_add_p521 @@ -751,372 +156,6 @@ stp x11, x12, [P0+48]; \ str x13, [P0+64] -// Weak multiplication not fully reducing - -#define weakmul_p521(P0,P1,P2) \ - ldp x3, x4, [P1]; \ - ldp x5, x6, [P2]; \ - mul x15, x3, x5; \ - umulh x16, x3, x5; \ - mul x14, x3, x6; \ - umulh x17, x3, x6; \ - adds x16, x16, x14; \ - ldp x7, x8, [P2+16]; \ - mul x14, x3, x7; \ - umulh x19, x3, x7; \ - adcs x17, x17, x14; \ - mul x14, x3, x8; \ - umulh x20, x3, x8; \ - adcs x19, x19, x14; \ - ldp x9, x10, [P2+32]; \ - mul x14, x3, x9; \ - umulh x21, x3, x9; \ - adcs x20, x20, x14; \ - mul x14, x3, x10; \ - umulh x22, x3, x10; \ - adcs x21, x21, x14; \ - ldp x11, x12, [P2+48]; \ - mul x14, x3, x11; \ - umulh x23, x3, x11; \ - adcs x22, x22, x14; \ - ldr x13, [P2+64]; \ - mul x14, x3, x12; \ - umulh x24, x3, x12; \ - adcs x23, x23, x14; \ - mul x14, x3, x13; \ - umulh x1, x3, x13; \ - adcs x24, x24, x14; \ - adc x1, x1, xzr; \ - mul x14, x4, x5; \ - adds x16, x16, x14; \ - mul x14, x4, x6; \ - adcs x17, x17, x14; \ - mul x14, x4, x7; \ - adcs x19, x19, x14; \ - mul x14, x4, x8; \ - adcs x20, x20, x14; \ - mul x14, x4, x9; \ - adcs x21, x21, x14; \ - mul x14, x4, x10; \ - adcs x22, x22, x14; \ - mul x14, x4, x11; \ - adcs x23, x23, x14; \ - mul x14, x4, x12; \ - adcs x24, x24, x14; \ - mul x14, x4, x13; \ - adcs x1, x1, x14; \ - cset x0, hs; \ - umulh x14, x4, x5; \ - adds x17, x17, x14; \ - umulh x14, x4, x6; \ - adcs x19, x19, x14; \ - umulh x14, x4, x7; \ - adcs x20, x20, x14; \ - umulh x14, x4, x8; \ - adcs x21, x21, x14; \ - umulh x14, x4, x9; \ - adcs x22, x22, x14; \ - umulh x14, x4, x10; \ - adcs x23, x23, x14; \ - umulh x14, x4, x11; \ - adcs x24, x24, x14; \ - umulh x14, x4, x12; \ - adcs x1, x1, x14; \ - umulh x14, x4, x13; \ - adc x0, x0, x14; \ - stp x15, x16, [P0]; \ - ldp x3, x4, [P1+16]; \ - mul x14, x3, x5; \ - adds x17, x17, x14; \ - mul x14, x3, x6; \ - adcs x19, x19, x14; \ - mul x14, x3, x7; \ - adcs x20, x20, x14; \ - mul x14, x3, x8; \ - adcs x21, x21, x14; \ - mul x14, x3, x9; \ - adcs x22, x22, x14; \ - mul x14, x3, x10; \ - adcs x23, x23, x14; \ - mul x14, x3, x11; \ - adcs x24, x24, x14; \ - mul x14, x3, x12; \ - adcs x1, x1, x14; \ - mul x14, x3, x13; \ - adcs x0, x0, x14; \ - cset x15, hs; \ - umulh x14, x3, x5; \ - adds x19, x19, x14; \ - umulh x14, x3, x6; \ - adcs x20, x20, x14; \ - umulh x14, x3, x7; \ - adcs x21, x21, x14; \ - umulh x14, x3, x8; \ - adcs x22, x22, x14; \ - umulh x14, x3, x9; \ - adcs x23, x23, x14; \ - umulh x14, x3, x10; \ - adcs x24, x24, x14; \ - umulh x14, x3, x11; \ - adcs x1, x1, x14; \ - umulh x14, x3, x12; \ - adcs x0, x0, x14; \ - umulh x14, x3, x13; \ - adc x15, x15, x14; \ - mul x14, x4, x5; \ - adds x19, x19, x14; \ - mul x14, x4, x6; \ - adcs x20, x20, x14; \ - mul x14, x4, x7; \ - adcs x21, x21, x14; \ - mul x14, x4, x8; \ - adcs x22, x22, x14; \ - mul x14, x4, x9; \ - adcs x23, x23, x14; \ - mul x14, x4, x10; \ - adcs x24, x24, x14; \ - mul x14, x4, x11; \ - adcs x1, x1, x14; \ - mul x14, x4, x12; \ - adcs x0, x0, x14; \ - mul x14, x4, x13; \ - adcs x15, x15, x14; \ - cset x16, hs; \ - umulh x14, x4, x5; \ - adds x20, x20, x14; \ - umulh x14, x4, x6; \ - adcs x21, x21, x14; \ - umulh x14, x4, x7; \ - adcs x22, x22, x14; \ - umulh x14, x4, x8; \ - adcs x23, x23, x14; \ - umulh x14, x4, x9; \ - adcs x24, x24, x14; \ - umulh x14, x4, x10; \ - adcs x1, x1, x14; \ - umulh x14, x4, x11; \ - adcs x0, x0, x14; \ - umulh x14, x4, x12; \ - adcs x15, x15, x14; \ - umulh x14, x4, x13; \ - adc x16, x16, x14; \ - stp x17, x19, [P0+16]; \ - ldp x3, x4, [P1+32]; \ - mul x14, x3, x5; \ - adds x20, x20, x14; \ - mul x14, x3, x6; \ - adcs x21, x21, x14; \ - mul x14, x3, x7; \ - adcs x22, x22, x14; \ - mul x14, x3, x8; \ - adcs x23, x23, x14; \ - mul x14, x3, x9; \ - adcs x24, x24, x14; \ - mul x14, x3, x10; \ - adcs x1, x1, x14; \ - mul x14, x3, x11; \ - adcs x0, x0, x14; \ - mul x14, x3, x12; \ - adcs x15, x15, x14; \ - mul x14, x3, x13; \ - adcs x16, x16, x14; \ - cset x17, hs; \ - umulh x14, x3, x5; \ - adds x21, x21, x14; \ - umulh x14, x3, x6; \ - adcs x22, x22, x14; \ - umulh x14, x3, x7; \ - adcs x23, x23, x14; \ - umulh x14, x3, x8; \ - adcs x24, x24, x14; \ - umulh x14, x3, x9; \ - adcs x1, x1, x14; \ - umulh x14, x3, x10; \ - adcs x0, x0, x14; \ - umulh x14, x3, x11; \ - adcs x15, x15, x14; \ - umulh x14, x3, x12; \ - adcs x16, x16, x14; \ - umulh x14, x3, x13; \ - adc x17, x17, x14; \ - mul x14, x4, x5; \ - adds x21, x21, x14; \ - mul x14, x4, x6; \ - adcs x22, x22, x14; \ - mul x14, x4, x7; \ - adcs x23, x23, x14; \ - mul x14, x4, x8; \ - adcs x24, x24, x14; \ - mul x14, x4, x9; \ - adcs x1, x1, x14; \ - mul x14, x4, x10; \ - adcs x0, x0, x14; \ - mul x14, x4, x11; \ - adcs x15, x15, x14; \ - mul x14, x4, x12; \ - adcs x16, x16, x14; \ - mul x14, x4, x13; \ - adcs x17, x17, x14; \ - cset x19, hs; \ - umulh x14, x4, x5; \ - adds x22, x22, x14; \ - umulh x14, x4, x6; \ - adcs x23, x23, x14; \ - umulh x14, x4, x7; \ - adcs x24, x24, x14; \ - umulh x14, x4, x8; \ - adcs x1, x1, x14; \ - umulh x14, x4, x9; \ - adcs x0, x0, x14; \ - umulh x14, x4, x10; \ - adcs x15, x15, x14; \ - umulh x14, x4, x11; \ - adcs x16, x16, x14; \ - umulh x14, x4, x12; \ - adcs x17, x17, x14; \ - umulh x14, x4, x13; \ - adc x19, x19, x14; \ - stp x20, x21, [P0+32]; \ - ldp x3, x4, [P1+48]; \ - mul x14, x3, x5; \ - adds x22, x22, x14; \ - mul x14, x3, x6; \ - adcs x23, x23, x14; \ - mul x14, x3, x7; \ - adcs x24, x24, x14; \ - mul x14, x3, x8; \ - adcs x1, x1, x14; \ - mul x14, x3, x9; \ - adcs x0, x0, x14; \ - mul x14, x3, x10; \ - adcs x15, x15, x14; \ - mul x14, x3, x11; \ - adcs x16, x16, x14; \ - mul x14, x3, x12; \ - adcs x17, x17, x14; \ - mul x14, x3, x13; \ - adcs x19, x19, x14; \ - cset x20, hs; \ - umulh x14, x3, x5; \ - adds x23, x23, x14; \ - umulh x14, x3, x6; \ - adcs x24, x24, x14; \ - umulh x14, x3, x7; \ - adcs x1, x1, x14; \ - umulh x14, x3, x8; \ - adcs x0, x0, x14; \ - umulh x14, x3, x9; \ - adcs x15, x15, x14; \ - umulh x14, x3, x10; \ - adcs x16, x16, x14; \ - umulh x14, x3, x11; \ - adcs x17, x17, x14; \ - umulh x14, x3, x12; \ - adcs x19, x19, x14; \ - umulh x14, x3, x13; \ - adc x20, x20, x14; \ - mul x14, x4, x5; \ - adds x23, x23, x14; \ - mul x14, x4, x6; \ - adcs x24, x24, x14; \ - mul x14, x4, x7; \ - adcs x1, x1, x14; \ - mul x14, x4, x8; \ - adcs x0, x0, x14; \ - mul x14, x4, x9; \ - adcs x15, x15, x14; \ - mul x14, x4, x10; \ - adcs x16, x16, x14; \ - mul x14, x4, x11; \ - adcs x17, x17, x14; \ - mul x14, x4, x12; \ - adcs x19, x19, x14; \ - mul x14, x4, x13; \ - adcs x20, x20, x14; \ - cset x21, hs; \ - umulh x14, x4, x5; \ - adds x24, x24, x14; \ - umulh x14, x4, x6; \ - adcs x1, x1, x14; \ - umulh x14, x4, x7; \ - adcs x0, x0, x14; \ - umulh x14, x4, x8; \ - adcs x15, x15, x14; \ - umulh x14, x4, x9; \ - adcs x16, x16, x14; \ - umulh x14, x4, x10; \ - adcs x17, x17, x14; \ - umulh x14, x4, x11; \ - adcs x19, x19, x14; \ - umulh x14, x4, x12; \ - adcs x20, x20, x14; \ - umulh x14, x4, x13; \ - adc x21, x21, x14; \ - stp x22, x23, [P0+48]; \ - ldr x3, [P1+64]; \ - mul x14, x3, x5; \ - adds x24, x24, x14; \ - mul x14, x3, x6; \ - adcs x1, x1, x14; \ - mul x14, x3, x7; \ - adcs x0, x0, x14; \ - mul x14, x3, x8; \ - adcs x15, x15, x14; \ - mul x14, x3, x9; \ - adcs x16, x16, x14; \ - mul x14, x3, x10; \ - adcs x17, x17, x14; \ - mul x14, x3, x11; \ - adcs x19, x19, x14; \ - mul x14, x3, x12; \ - adcs x20, x20, x14; \ - mul x14, x3, x13; \ - adc x21, x21, x14; \ - umulh x14, x3, x5; \ - adds x1, x1, x14; \ - umulh x14, x3, x6; \ - adcs x0, x0, x14; \ - umulh x14, x3, x7; \ - adcs x15, x15, x14; \ - umulh x14, x3, x8; \ - adcs x16, x16, x14; \ - umulh x14, x3, x9; \ - adcs x17, x17, x14; \ - umulh x14, x3, x10; \ - adcs x19, x19, x14; \ - umulh x14, x3, x11; \ - adcs x20, x20, x14; \ - umulh x14, x3, x12; \ - adc x21, x21, x14; \ - ldp x5, x6, [P0]; \ - extr x14, x1, x24, #9; \ - adds x5, x5, x14; \ - extr x14, x0, x1, #9; \ - adcs x6, x6, x14; \ - ldp x7, x8, [P0+16]; \ - extr x14, x15, x0, #9; \ - adcs x7, x7, x14; \ - extr x14, x16, x15, #9; \ - adcs x8, x8, x14; \ - ldp x9, x10, [P0+32]; \ - extr x14, x17, x16, #9; \ - adcs x9, x9, x14; \ - extr x14, x19, x17, #9; \ - adcs x10, x10, x14; \ - ldp x11, x12, [P0+48]; \ - extr x14, x20, x19, #9; \ - adcs x11, x11, x14; \ - extr x14, x21, x20, #9; \ - adcs x12, x12, x14; \ - and x13, x24, #0x1ff; \ - lsr x14, x21, #9; \ - adc x13, x13, x14; \ - stp x5, x6, [P0]; \ - stp x7, x8, [P0+16]; \ - stp x9, x10, [P0+32]; \ - stp x11, x12, [P0+48]; \ - str x13, [P0+64] - // P0 = C * P1 - D * P2 == C * P1 + D * (p_521 - P2) #define cmsub_p521(P0,C,P1,D,P2) \ @@ -1384,6 +423,7 @@ S2N_BN_SYMBOL(p521_jdouble): stp x23, x24, [sp, #-16]! stp x25, x26, [sp, #-16]! stp x27, x28, [sp, #-16]! + stp x29, x30, [sp, #-16]! sub sp, sp, NSPACE // Move the input arguments to stable places @@ -1411,7 +451,7 @@ S2N_BN_SYMBOL(p521_jdouble): add_p521(t1,y_1,z_1) sqr_p521(x4p,x2p) - weakmul_p521(xy2,x_1,y2) + mul_p521(xy2,x_1,y2) // t2 = (y + z)^2 @@ -1431,7 +471,7 @@ S2N_BN_SYMBOL(p521_jdouble): // dx2 = d * x2p sub_p521(z_3,t1,y2) - weakmul_p521(dx2,d,x2p) + mul_p521(dx2,d,x2p) // x' = 4 * xy2 - d @@ -1445,12 +485,1060 @@ S2N_BN_SYMBOL(p521_jdouble): add sp, sp, NSPACE + ldp x29, x30, [sp], 16 ldp x27, x28, [sp], 16 ldp x25, x26, [sp], 16 ldp x23, x24, [sp], 16 ldp x21, x22, [sp], 16 ldp x19, x20, [sp], 16 + ret + +// Local versions of the two "big" field operations, almost identical to +// bignum_mul_p521 and bignum_sqr_p521 except for avoiding the intial +// register save-restore, and in the case of local_mul_p521, using the +// output buffer as temporary storage, slightly reordering a few loads +// and stores to make it aliasing-proof. + +local_mul_p521: + ldp x3, x4, [x1] + ldp x5, x6, [x1, #16] + ldp x7, x8, [x2] + ldp x9, x10, [x2, #16] + mul x11, x3, x7 + mul x15, x4, x8 + mul x16, x5, x9 + mul x17, x6, x10 + umulh x19, x3, x7 + adds x15, x15, x19 + umulh x19, x4, x8 + adcs x16, x16, x19 + umulh x19, x5, x9 + adcs x17, x17, x19 + umulh x19, x6, x10 + adc x19, x19, xzr + adds x12, x15, x11 + adcs x15, x16, x15 + adcs x16, x17, x16 + adcs x17, x19, x17 + adc x19, xzr, x19 + adds x13, x15, x11 + adcs x14, x16, x12 + adcs x15, x17, x15 + adcs x16, x19, x16 + adcs x17, xzr, x17 + adc x19, xzr, x19 + subs x24, x5, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x9 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x16, x16, x23 + eor x22, x22, x21 + adcs x17, x17, x22 + adc x19, x19, x21 + subs x24, x3, x4 + cneg x24, x24, lo + csetm x21, lo + subs x22, x8, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x12, x12, x23 + eor x22, x22, x21 + adcs x13, x13, x22 + adcs x14, x14, x21 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x15, x15, x23 + eor x22, x22, x21 + adcs x16, x16, x22 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x13, x13, x23 + eor x22, x22, x21 + adcs x14, x14, x22 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + lsl x21, x11, #9 + extr x11, x12, x11, #55 + extr x12, x13, x12, #55 + extr x13, x14, x13, #55 + lsr x14, x14, #55 + ldp x3, x4, [x1, #32] + ldp x5, x6, [x1, #48] + ldp x7, x8, [x2, #32] + ldp x9, x10, [x2, #48] + stp x15, x16, [x0] + stp x17, x19, [x0, #16] + stp x21, x11, [x0, #32] + stp x12, x13, [x0, #48] + str x14, [x0, #64] + mul x11, x3, x7 + mul x15, x4, x8 + mul x16, x5, x9 + mul x17, x6, x10 + umulh x19, x3, x7 + adds x15, x15, x19 + umulh x19, x4, x8 + adcs x16, x16, x19 + umulh x19, x5, x9 + adcs x17, x17, x19 + umulh x19, x6, x10 + adc x19, x19, xzr + adds x12, x15, x11 + adcs x15, x16, x15 + adcs x16, x17, x16 + adcs x17, x19, x17 + adc x19, xzr, x19 + adds x13, x15, x11 + adcs x14, x16, x12 + adcs x15, x17, x15 + adcs x16, x19, x16 + adcs x17, xzr, x17 + adc x19, xzr, x19 + subs x24, x5, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x9 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x16, x16, x23 + eor x22, x22, x21 + adcs x17, x17, x22 + adc x19, x19, x21 + subs x24, x3, x4 + cneg x24, x24, lo + csetm x21, lo + subs x22, x8, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x12, x12, x23 + eor x22, x22, x21 + adcs x13, x13, x22 + adcs x14, x14, x21 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x15, x15, x23 + eor x22, x22, x21 + adcs x16, x16, x22 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x13, x13, x23 + eor x22, x22, x21 + adcs x14, x14, x22 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + ldp x23, x22, [x0] + adds x11, x11, x23 + adcs x12, x12, x22 + stp x11, x12, [x0] + ldp x23, x22, [x0, #16] + adcs x13, x13, x23 + adcs x14, x14, x22 + stp x13, x14, [x0, #16] + ldp x23, x22, [x0, #32] + adcs x15, x15, x23 + adcs x16, x16, x22 + stp x15, x16, [x0, #32] + ldp x23, x22, [x0, #48] + adcs x17, x17, x23 + adcs x19, x19, x22 + stp x17, x19, [x0, #48] + ldr x21, [x0, #64] + adc x21, x21, xzr + str x21, [x0, #64] + ldp x23, x22, [x1] + subs x3, x3, x23 + sbcs x4, x4, x22 + ldp x23, x22, [x1, #16] + sbcs x5, x5, x23 + sbcs x6, x6, x22 + csetm x24, lo + ldp x23, x22, [x2] + subs x7, x23, x7 + sbcs x8, x22, x8 + ldp x23, x22, [x2, #16] + sbcs x9, x23, x9 + sbcs x10, x22, x10 + csetm x25, lo + eor x3, x3, x24 + subs x3, x3, x24 + eor x4, x4, x24 + sbcs x4, x4, x24 + eor x5, x5, x24 + sbcs x5, x5, x24 + eor x6, x6, x24 + sbc x6, x6, x24 + eor x7, x7, x25 + subs x7, x7, x25 + eor x8, x8, x25 + sbcs x8, x8, x25 + eor x9, x9, x25 + sbcs x9, x9, x25 + eor x10, x10, x25 + sbc x10, x10, x25 + eor x25, x25, x24 + mul x11, x3, x7 + mul x15, x4, x8 + mul x16, x5, x9 + mul x17, x6, x10 + umulh x19, x3, x7 + adds x15, x15, x19 + umulh x19, x4, x8 + adcs x16, x16, x19 + umulh x19, x5, x9 + adcs x17, x17, x19 + umulh x19, x6, x10 + adc x19, x19, xzr + adds x12, x15, x11 + adcs x15, x16, x15 + adcs x16, x17, x16 + adcs x17, x19, x17 + adc x19, xzr, x19 + adds x13, x15, x11 + adcs x14, x16, x12 + adcs x15, x17, x15 + adcs x16, x19, x16 + adcs x17, xzr, x17 + adc x19, xzr, x19 + subs x24, x5, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x9 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x16, x16, x23 + eor x22, x22, x21 + adcs x17, x17, x22 + adc x19, x19, x21 + subs x24, x3, x4 + cneg x24, x24, lo + csetm x21, lo + subs x22, x8, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x12, x12, x23 + eor x22, x22, x21 + adcs x13, x13, x22 + adcs x14, x14, x21 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x15, x15, x23 + eor x22, x22, x21 + adcs x16, x16, x22 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x13, x13, x23 + eor x22, x22, x21 + adcs x14, x14, x22 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + ldp x3, x4, [x0] + ldp x5, x6, [x0, #16] + eor x11, x11, x25 + adds x11, x11, x3 + eor x12, x12, x25 + adcs x12, x12, x4 + eor x13, x13, x25 + adcs x13, x13, x5 + eor x14, x14, x25 + adcs x14, x14, x6 + eor x15, x15, x25 + ldp x7, x8, [x0, #32] + ldp x9, x10, [x0, #48] + ldr x20, [x0, #64] + adcs x15, x15, x7 + eor x16, x16, x25 + adcs x16, x16, x8 + eor x17, x17, x25 + adcs x17, x17, x9 + eor x19, x19, x25 + adcs x19, x19, x10 + adc x21, x20, xzr + adds x15, x15, x3 + adcs x16, x16, x4 + adcs x17, x17, x5 + adcs x19, x19, x6 + and x25, x25, #0x1ff + lsl x24, x11, #9 + orr x24, x24, x25 + adcs x7, x7, x24 + extr x24, x12, x11, #55 + adcs x8, x8, x24 + extr x24, x13, x12, #55 + adcs x9, x9, x24 + extr x24, x14, x13, #55 + adcs x10, x10, x24 + lsr x24, x14, #55 + adc x20, x24, x20 + ldr x6, [x2, #64] + ldp x3, x4, [x1] + and x23, x3, #0xfffffffffffff + mul x23, x6, x23 + ldr x14, [x1, #64] + ldp x11, x12, [x2] + and x24, x11, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + extr x24, x4, x3, #52 + and x24, x24, #0xfffffffffffff + mul x22, x6, x24 + extr x24, x12, x11, #52 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x24, x22, x23, #12 + adds x15, x15, x24 + ldp x5, x3, [x1, #16] + ldp x13, x11, [x2, #16] + extr x24, x5, x4, #40 + and x24, x24, #0xfffffffffffff + mul x23, x6, x24 + extr x24, x13, x12, #40 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + lsr x24, x22, #52 + add x23, x23, x24 + lsl x22, x22, #12 + extr x24, x23, x22, #24 + adcs x16, x16, x24 + extr x24, x3, x5, #28 + and x24, x24, #0xfffffffffffff + mul x22, x6, x24 + extr x24, x11, x13, #28 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x24, x22, x23, #36 + adcs x17, x17, x24 + and x26, x16, x17 + ldp x4, x5, [x1, #32] + ldp x12, x13, [x2, #32] + extr x24, x4, x3, #16 + and x24, x24, #0xfffffffffffff + mul x23, x6, x24 + extr x24, x12, x11, #16 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + lsl x21, x21, #48 + add x23, x23, x21 + lsr x24, x22, #52 + add x23, x23, x24 + lsl x22, x22, #12 + extr x24, x23, x22, #48 + adcs x19, x19, x24 + and x26, x26, x19 + lsr x24, x4, #4 + and x24, x24, #0xfffffffffffff + mul x22, x6, x24 + lsr x24, x12, #4 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x25, x22, x23, #60 + extr x24, x5, x4, #56 + and x24, x24, #0xfffffffffffff + mul x23, x6, x24 + extr x24, x13, x12, #56 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + lsr x24, x22, #52 + add x23, x23, x24 + lsl x25, x25, #8 + extr x24, x23, x25, #8 + adcs x7, x7, x24 + and x26, x26, x7 + ldp x3, x4, [x1, #48] + ldp x11, x12, [x2, #48] + extr x24, x3, x5, #44 + and x24, x24, #0xfffffffffffff + mul x22, x6, x24 + extr x24, x11, x13, #44 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x24, x22, x23, #20 + adcs x8, x8, x24 + and x26, x26, x8 + extr x24, x4, x3, #32 + and x24, x24, #0xfffffffffffff + mul x23, x6, x24 + extr x24, x12, x11, #32 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + lsr x24, x22, #52 + add x23, x23, x24 + lsl x22, x22, #12 + extr x24, x23, x22, #32 + adcs x9, x9, x24 + and x26, x26, x9 + lsr x24, x4, #20 + mul x22, x6, x24 + lsr x24, x12, #20 + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x24, x22, x23, #44 + adcs x10, x10, x24 + and x26, x26, x10 + mul x24, x6, x14 + lsr x22, x22, #44 + add x24, x24, x22 + adc x20, x20, x24 + lsr x22, x20, #9 + orr x20, x20, #0xfffffffffffffe00 + cmp xzr, xzr + adcs xzr, x15, x22 + adcs xzr, x26, xzr + adcs xzr, x20, xzr + adcs x15, x15, x22 + adcs x16, x16, xzr + adcs x17, x17, xzr + adcs x19, x19, xzr + adcs x7, x7, xzr + adcs x8, x8, xzr + adcs x9, x9, xzr + adcs x10, x10, xzr + adc x20, x20, xzr + and x22, x15, #0x1ff + extr x15, x16, x15, #9 + extr x16, x17, x16, #9 + stp x15, x16, [x0] + extr x17, x19, x17, #9 + extr x19, x7, x19, #9 + stp x17, x19, [x0, #16] + extr x7, x8, x7, #9 + extr x8, x9, x8, #9 + stp x7, x8, [x0, #32] + extr x9, x10, x9, #9 + extr x10, x20, x10, #9 + stp x9, x10, [x0, #48] + str x22, [x0, #64] + ret +local_sqr_p521: + ldp x2, x3, [x1] + ldp x4, x5, [x1, #16] + ldp x6, x7, [x1, #32] + ldp x8, x9, [x1, #48] + mul x12, x6, x8 + mul x17, x7, x9 + umulh x22, x6, x8 + subs x23, x6, x7 + cneg x23, x23, cc + csetm x11, cc + subs x10, x9, x8 + cneg x10, x10, cc + mul x16, x23, x10 + umulh x10, x23, x10 + cinv x11, x11, cc + eor x16, x16, x11 + eor x10, x10, x11 + adds x13, x12, x22 + adc x22, x22, xzr + umulh x23, x7, x9 + adds x13, x13, x17 + adcs x22, x22, x23 + adc x23, x23, xzr + adds x22, x22, x17 + adc x23, x23, xzr + cmn x11, #0x1 + adcs x13, x13, x16 + adcs x22, x22, x10 + adc x23, x23, x11 + adds x12, x12, x12 + adcs x13, x13, x13 + adcs x22, x22, x22 + adcs x23, x23, x23 + adc x19, xzr, xzr + mul x10, x6, x6 + mul x16, x7, x7 + mul x21, x6, x7 + umulh x11, x6, x6 + umulh x17, x7, x7 + umulh x20, x6, x7 + adds x11, x11, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x11, x11, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x12, x12, x16 + adcs x13, x13, x17 + adcs x22, x22, xzr + adcs x23, x23, xzr + adc x19, x19, xzr + mul x14, x8, x8 + mul x16, x9, x9 + mul x21, x8, x9 + umulh x15, x8, x8 + umulh x17, x9, x9 + umulh x20, x8, x9 + adds x15, x15, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x15, x15, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x14, x14, x22 + adcs x15, x15, x23 + adcs x16, x16, x19 + adc x17, x17, xzr + ldr x19, [x1, #64] + add x23, x19, x19 + mul x19, x19, x19 + and x21, x2, #0xfffffffffffff + mul x21, x23, x21 + extr x20, x3, x2, #52 + and x20, x20, #0xfffffffffffff + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x22, x20, x21, #12 + adds x10, x10, x22 + extr x21, x4, x3, #40 + and x21, x21, #0xfffffffffffff + mul x21, x23, x21 + lsr x22, x20, #52 + add x21, x21, x22 + lsl x20, x20, #12 + extr x22, x21, x20, #24 + adcs x11, x11, x22 + extr x20, x5, x4, #28 + and x20, x20, #0xfffffffffffff + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x22, x20, x21, #36 + adcs x12, x12, x22 + extr x21, x6, x5, #16 + and x21, x21, #0xfffffffffffff + mul x21, x23, x21 + lsr x22, x20, #52 + add x21, x21, x22 + lsl x20, x20, #12 + extr x22, x21, x20, #48 + adcs x13, x13, x22 + lsr x20, x6, #4 + and x20, x20, #0xfffffffffffff + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x24, x20, x21, #60 + extr x21, x7, x6, #56 + and x21, x21, #0xfffffffffffff + mul x21, x23, x21 + lsr x22, x20, #52 + add x21, x21, x22 + lsl x24, x24, #8 + extr x22, x21, x24, #8 + adcs x14, x14, x22 + extr x20, x8, x7, #44 + and x20, x20, #0xfffffffffffff + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x22, x20, x21, #20 + adcs x15, x15, x22 + extr x21, x9, x8, #32 + and x21, x21, #0xfffffffffffff + mul x21, x23, x21 + lsr x22, x20, #52 + add x21, x21, x22 + lsl x20, x20, #12 + extr x22, x21, x20, #32 + adcs x16, x16, x22 + lsr x20, x9, #20 + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x22, x20, x21, #44 + adcs x17, x17, x22 + lsr x20, x20, #44 + adc x19, x19, x20 + extr x21, x11, x10, #9 + extr x20, x12, x11, #9 + stp x21, x20, [x0] + extr x21, x13, x12, #9 + extr x20, x14, x13, #9 + stp x21, x20, [x0, #16] + extr x21, x15, x14, #9 + extr x20, x16, x15, #9 + stp x21, x20, [x0, #32] + extr x21, x17, x16, #9 + extr x20, x19, x17, #9 + stp x21, x20, [x0, #48] + and x22, x10, #0x1ff + lsr x19, x19, #9 + add x22, x22, x19 + str x22, [x0, #64] + mul x12, x2, x4 + mul x17, x3, x5 + umulh x22, x2, x4 + subs x23, x2, x3 + cneg x23, x23, cc + csetm x11, cc + subs x10, x5, x4 + cneg x10, x10, cc + mul x16, x23, x10 + umulh x10, x23, x10 + cinv x11, x11, cc + eor x16, x16, x11 + eor x10, x10, x11 + adds x13, x12, x22 + adc x22, x22, xzr + umulh x23, x3, x5 + adds x13, x13, x17 + adcs x22, x22, x23 + adc x23, x23, xzr + adds x22, x22, x17 + adc x23, x23, xzr + cmn x11, #0x1 + adcs x13, x13, x16 + adcs x22, x22, x10 + adc x23, x23, x11 + adds x12, x12, x12 + adcs x13, x13, x13 + adcs x22, x22, x22 + adcs x23, x23, x23 + adc x19, xzr, xzr + mul x10, x2, x2 + mul x16, x3, x3 + mul x21, x2, x3 + umulh x11, x2, x2 + umulh x17, x3, x3 + umulh x20, x2, x3 + adds x11, x11, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x11, x11, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x12, x12, x16 + adcs x13, x13, x17 + adcs x22, x22, xzr + adcs x23, x23, xzr + adc x19, x19, xzr + mul x14, x4, x4 + mul x16, x5, x5 + mul x21, x4, x5 + umulh x15, x4, x4 + umulh x17, x5, x5 + umulh x20, x4, x5 + adds x15, x15, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x15, x15, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x14, x14, x22 + adcs x15, x15, x23 + adcs x16, x16, x19 + adc x17, x17, xzr + ldp x21, x20, [x0] + adds x21, x21, x10 + adcs x20, x20, x11 + stp x21, x20, [x0] + ldp x21, x20, [x0, #16] + adcs x21, x21, x12 + adcs x20, x20, x13 + stp x21, x20, [x0, #16] + ldp x21, x20, [x0, #32] + adcs x21, x21, x14 + adcs x20, x20, x15 + stp x21, x20, [x0, #32] + ldp x21, x20, [x0, #48] + adcs x21, x21, x16 + adcs x20, x20, x17 + stp x21, x20, [x0, #48] + ldr x22, [x0, #64] + adc x22, x22, xzr + str x22, [x0, #64] + mul x10, x2, x6 + mul x14, x3, x7 + mul x15, x4, x8 + mul x16, x5, x9 + umulh x17, x2, x6 + adds x14, x14, x17 + umulh x17, x3, x7 + adcs x15, x15, x17 + umulh x17, x4, x8 + adcs x16, x16, x17 + umulh x17, x5, x9 + adc x17, x17, xzr + adds x11, x14, x10 + adcs x14, x15, x14 + adcs x15, x16, x15 + adcs x16, x17, x16 + adc x17, xzr, x17 + adds x12, x14, x10 + adcs x13, x15, x11 + adcs x14, x16, x14 + adcs x15, x17, x15 + adcs x16, xzr, x16 + adc x17, xzr, x17 + subs x22, x4, x5 + cneg x22, x22, cc + csetm x19, cc + subs x20, x9, x8 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x15, x15, x21 + eor x20, x20, x19 + adcs x16, x16, x20 + adc x17, x17, x19 + subs x22, x2, x3 + cneg x22, x22, cc + csetm x19, cc + subs x20, x7, x6 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x11, x11, x21 + eor x20, x20, x19 + adcs x12, x12, x20 + adcs x13, x13, x19 + adcs x14, x14, x19 + adcs x15, x15, x19 + adcs x16, x16, x19 + adc x17, x17, x19 + subs x22, x3, x5 + cneg x22, x22, cc + csetm x19, cc + subs x20, x9, x7 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x14, x14, x21 + eor x20, x20, x19 + adcs x15, x15, x20 + adcs x16, x16, x19 + adc x17, x17, x19 + subs x22, x2, x4 + cneg x22, x22, cc + csetm x19, cc + subs x20, x8, x6 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x12, x12, x21 + eor x20, x20, x19 + adcs x13, x13, x20 + adcs x14, x14, x19 + adcs x15, x15, x19 + adcs x16, x16, x19 + adc x17, x17, x19 + subs x22, x2, x5 + cneg x22, x22, cc + csetm x19, cc + subs x20, x9, x6 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x13, x13, x21 + eor x20, x20, x19 + adcs x14, x14, x20 + adcs x15, x15, x19 + adcs x16, x16, x19 + adc x17, x17, x19 + subs x22, x3, x4 + cneg x22, x22, cc + csetm x19, cc + subs x20, x8, x7 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x13, x13, x21 + eor x20, x20, x19 + adcs x14, x14, x20 + adcs x15, x15, x19 + adcs x16, x16, x19 + adc x17, x17, x19 + ldp x21, x20, [x0] + extr x2, x15, x14, #8 + adds x2, x2, x21 + extr x3, x16, x15, #8 + adcs x3, x3, x20 + ldp x21, x20, [x0, #16] + extr x4, x17, x16, #8 + adcs x4, x4, x21 + and x22, x3, x4 + lsr x5, x17, #8 + adcs x5, x5, x20 + and x22, x22, x5 + ldp x21, x20, [x0, #32] + lsl x6, x10, #1 + adcs x6, x6, x21 + and x22, x22, x6 + extr x7, x11, x10, #63 + adcs x7, x7, x20 + and x22, x22, x7 + ldp x21, x20, [x0, #48] + extr x8, x12, x11, #63 + adcs x8, x8, x21 + and x22, x22, x8 + extr x9, x13, x12, #63 + adcs x9, x9, x20 + and x22, x22, x9 + ldr x21, [x0, #64] + extr x10, x14, x13, #63 + and x10, x10, #0x1ff + adc x10, x21, x10 + lsr x20, x10, #9 + orr x10, x10, #0xfffffffffffffe00 + cmp xzr, xzr + adcs xzr, x2, x20 + adcs xzr, x22, xzr + adcs xzr, x10, xzr + adcs x2, x2, x20 + adcs x3, x3, xzr + adcs x4, x4, xzr + adcs x5, x5, xzr + adcs x6, x6, xzr + adcs x7, x7, xzr + adcs x8, x8, xzr + adcs x9, x9, xzr + adc x10, x10, xzr + and x10, x10, #0x1ff + stp x2, x3, [x0] + stp x4, x5, [x0, #16] + stp x6, x7, [x0, #32] + stp x8, x9, [x0, #48] + str x10, [x0, #64] ret #if defined(__linux__) && defined(__ELF__) diff --git a/third_party/s2n-bignum/arm/p521/p521_jdouble_alt.S b/third_party/s2n-bignum/arm/p521/p521_jdouble_alt.S new file mode 100644 index 0000000000..fa61dcf8d9 --- /dev/null +++ b/third_party/s2n-bignum/arm/p521/p521_jdouble_alt.S @@ -0,0 +1,1458 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Point doubling on NIST curve P-521 in Jacobian coordinates +// +// extern void p521_jdouble_alt +// (uint64_t p3[static 27],uint64_t p1[static 27]); +// +// Does p3 := 2 * p1 where all points are regarded as Jacobian triples. +// A Jacobian triple (x,y,z) represents affine point (x/z^2,y/z^3). +// It is assumed that all coordinates of the input point are fully +// reduced mod p_521 and that the z coordinate is not zero. +// +// Standard ARM ABI: X0 = p3, X1 = p1 +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(p521_jdouble_alt) + S2N_BN_SYM_PRIVACY_DIRECTIVE(p521_jdouble_alt) + + .text + .balign 4 + +// Size of individual field elements + +#define NUMSIZE 72 + +// Stable homes for input arguments during main code sequence + +#define input_z x26 +#define input_x x27 + +// Pointer-offset pairs for inputs and outputs + +#define x_1 input_x, #0 +#define y_1 input_x, #NUMSIZE +#define z_1 input_x, #(2*NUMSIZE) + +#define x_3 input_z, #0 +#define y_3 input_z, #NUMSIZE +#define z_3 input_z, #(2*NUMSIZE) + +// Pointer-offset pairs for temporaries + +#define z2 sp, #(NUMSIZE*0) +#define y2 sp, #(NUMSIZE*1) +#define x2p sp, #(NUMSIZE*2) +#define xy2 sp, #(NUMSIZE*3) + +#define y4 sp, #(NUMSIZE*4) +#define t2 sp, #(NUMSIZE*4) + +#define dx2 sp, #(NUMSIZE*5) +#define t1 sp, #(NUMSIZE*5) + +#define d sp, #(NUMSIZE*6) +#define x4p sp, #(NUMSIZE*6) + +// NUMSIZE*7 is not 16-aligned so we round it up + +#define NSPACE (NUMSIZE*7+8) + +// Corresponds exactly to bignum_mul_p521_alt + +#define mul_p521(P0,P1,P2) \ + ldp x3, x4, [P1]; \ + ldp x5, x6, [P2]; \ + mul x15, x3, x5; \ + umulh x16, x3, x5; \ + mul x14, x3, x6; \ + umulh x17, x3, x6; \ + adds x16, x16, x14; \ + ldp x7, x8, [P2+16]; \ + mul x14, x3, x7; \ + umulh x19, x3, x7; \ + adcs x17, x17, x14; \ + mul x14, x3, x8; \ + umulh x20, x3, x8; \ + adcs x19, x19, x14; \ + ldp x9, x10, [P2+32]; \ + mul x14, x3, x9; \ + umulh x21, x3, x9; \ + adcs x20, x20, x14; \ + mul x14, x3, x10; \ + umulh x22, x3, x10; \ + adcs x21, x21, x14; \ + ldp x11, x12, [P2+48]; \ + mul x14, x3, x11; \ + umulh x23, x3, x11; \ + adcs x22, x22, x14; \ + ldr x13, [P2+64]; \ + mul x14, x3, x12; \ + umulh x24, x3, x12; \ + adcs x23, x23, x14; \ + mul x14, x3, x13; \ + umulh x1, x3, x13; \ + adcs x24, x24, x14; \ + adc x1, x1, xzr; \ + mul x14, x4, x5; \ + adds x16, x16, x14; \ + mul x14, x4, x6; \ + adcs x17, x17, x14; \ + mul x14, x4, x7; \ + adcs x19, x19, x14; \ + mul x14, x4, x8; \ + adcs x20, x20, x14; \ + mul x14, x4, x9; \ + adcs x21, x21, x14; \ + mul x14, x4, x10; \ + adcs x22, x22, x14; \ + mul x14, x4, x11; \ + adcs x23, x23, x14; \ + mul x14, x4, x12; \ + adcs x24, x24, x14; \ + mul x14, x4, x13; \ + adcs x1, x1, x14; \ + cset x0, hs; \ + umulh x14, x4, x5; \ + adds x17, x17, x14; \ + umulh x14, x4, x6; \ + adcs x19, x19, x14; \ + umulh x14, x4, x7; \ + adcs x20, x20, x14; \ + umulh x14, x4, x8; \ + adcs x21, x21, x14; \ + umulh x14, x4, x9; \ + adcs x22, x22, x14; \ + umulh x14, x4, x10; \ + adcs x23, x23, x14; \ + umulh x14, x4, x11; \ + adcs x24, x24, x14; \ + umulh x14, x4, x12; \ + adcs x1, x1, x14; \ + umulh x14, x4, x13; \ + adc x0, x0, x14; \ + stp x15, x16, [P0]; \ + ldp x3, x4, [P1+16]; \ + mul x14, x3, x5; \ + adds x17, x17, x14; \ + mul x14, x3, x6; \ + adcs x19, x19, x14; \ + mul x14, x3, x7; \ + adcs x20, x20, x14; \ + mul x14, x3, x8; \ + adcs x21, x21, x14; \ + mul x14, x3, x9; \ + adcs x22, x22, x14; \ + mul x14, x3, x10; \ + adcs x23, x23, x14; \ + mul x14, x3, x11; \ + adcs x24, x24, x14; \ + mul x14, x3, x12; \ + adcs x1, x1, x14; \ + mul x14, x3, x13; \ + adcs x0, x0, x14; \ + cset x15, hs; \ + umulh x14, x3, x5; \ + adds x19, x19, x14; \ + umulh x14, x3, x6; \ + adcs x20, x20, x14; \ + umulh x14, x3, x7; \ + adcs x21, x21, x14; \ + umulh x14, x3, x8; \ + adcs x22, x22, x14; \ + umulh x14, x3, x9; \ + adcs x23, x23, x14; \ + umulh x14, x3, x10; \ + adcs x24, x24, x14; \ + umulh x14, x3, x11; \ + adcs x1, x1, x14; \ + umulh x14, x3, x12; \ + adcs x0, x0, x14; \ + umulh x14, x3, x13; \ + adc x15, x15, x14; \ + mul x14, x4, x5; \ + adds x19, x19, x14; \ + mul x14, x4, x6; \ + adcs x20, x20, x14; \ + mul x14, x4, x7; \ + adcs x21, x21, x14; \ + mul x14, x4, x8; \ + adcs x22, x22, x14; \ + mul x14, x4, x9; \ + adcs x23, x23, x14; \ + mul x14, x4, x10; \ + adcs x24, x24, x14; \ + mul x14, x4, x11; \ + adcs x1, x1, x14; \ + mul x14, x4, x12; \ + adcs x0, x0, x14; \ + mul x14, x4, x13; \ + adcs x15, x15, x14; \ + cset x16, hs; \ + umulh x14, x4, x5; \ + adds x20, x20, x14; \ + umulh x14, x4, x6; \ + adcs x21, x21, x14; \ + umulh x14, x4, x7; \ + adcs x22, x22, x14; \ + umulh x14, x4, x8; \ + adcs x23, x23, x14; \ + umulh x14, x4, x9; \ + adcs x24, x24, x14; \ + umulh x14, x4, x10; \ + adcs x1, x1, x14; \ + umulh x14, x4, x11; \ + adcs x0, x0, x14; \ + umulh x14, x4, x12; \ + adcs x15, x15, x14; \ + umulh x14, x4, x13; \ + adc x16, x16, x14; \ + stp x17, x19, [P0+16]; \ + ldp x3, x4, [P1+32]; \ + mul x14, x3, x5; \ + adds x20, x20, x14; \ + mul x14, x3, x6; \ + adcs x21, x21, x14; \ + mul x14, x3, x7; \ + adcs x22, x22, x14; \ + mul x14, x3, x8; \ + adcs x23, x23, x14; \ + mul x14, x3, x9; \ + adcs x24, x24, x14; \ + mul x14, x3, x10; \ + adcs x1, x1, x14; \ + mul x14, x3, x11; \ + adcs x0, x0, x14; \ + mul x14, x3, x12; \ + adcs x15, x15, x14; \ + mul x14, x3, x13; \ + adcs x16, x16, x14; \ + cset x17, hs; \ + umulh x14, x3, x5; \ + adds x21, x21, x14; \ + umulh x14, x3, x6; \ + adcs x22, x22, x14; \ + umulh x14, x3, x7; \ + adcs x23, x23, x14; \ + umulh x14, x3, x8; \ + adcs x24, x24, x14; \ + umulh x14, x3, x9; \ + adcs x1, x1, x14; \ + umulh x14, x3, x10; \ + adcs x0, x0, x14; \ + umulh x14, x3, x11; \ + adcs x15, x15, x14; \ + umulh x14, x3, x12; \ + adcs x16, x16, x14; \ + umulh x14, x3, x13; \ + adc x17, x17, x14; \ + mul x14, x4, x5; \ + adds x21, x21, x14; \ + mul x14, x4, x6; \ + adcs x22, x22, x14; \ + mul x14, x4, x7; \ + adcs x23, x23, x14; \ + mul x14, x4, x8; \ + adcs x24, x24, x14; \ + mul x14, x4, x9; \ + adcs x1, x1, x14; \ + mul x14, x4, x10; \ + adcs x0, x0, x14; \ + mul x14, x4, x11; \ + adcs x15, x15, x14; \ + mul x14, x4, x12; \ + adcs x16, x16, x14; \ + mul x14, x4, x13; \ + adcs x17, x17, x14; \ + cset x19, hs; \ + umulh x14, x4, x5; \ + adds x22, x22, x14; \ + umulh x14, x4, x6; \ + adcs x23, x23, x14; \ + umulh x14, x4, x7; \ + adcs x24, x24, x14; \ + umulh x14, x4, x8; \ + adcs x1, x1, x14; \ + umulh x14, x4, x9; \ + adcs x0, x0, x14; \ + umulh x14, x4, x10; \ + adcs x15, x15, x14; \ + umulh x14, x4, x11; \ + adcs x16, x16, x14; \ + umulh x14, x4, x12; \ + adcs x17, x17, x14; \ + umulh x14, x4, x13; \ + adc x19, x19, x14; \ + stp x20, x21, [P0+32]; \ + ldp x3, x4, [P1+48]; \ + mul x14, x3, x5; \ + adds x22, x22, x14; \ + mul x14, x3, x6; \ + adcs x23, x23, x14; \ + mul x14, x3, x7; \ + adcs x24, x24, x14; \ + mul x14, x3, x8; \ + adcs x1, x1, x14; \ + mul x14, x3, x9; \ + adcs x0, x0, x14; \ + mul x14, x3, x10; \ + adcs x15, x15, x14; \ + mul x14, x3, x11; \ + adcs x16, x16, x14; \ + mul x14, x3, x12; \ + adcs x17, x17, x14; \ + mul x14, x3, x13; \ + adcs x19, x19, x14; \ + cset x20, hs; \ + umulh x14, x3, x5; \ + adds x23, x23, x14; \ + umulh x14, x3, x6; \ + adcs x24, x24, x14; \ + umulh x14, x3, x7; \ + adcs x1, x1, x14; \ + umulh x14, x3, x8; \ + adcs x0, x0, x14; \ + umulh x14, x3, x9; \ + adcs x15, x15, x14; \ + umulh x14, x3, x10; \ + adcs x16, x16, x14; \ + umulh x14, x3, x11; \ + adcs x17, x17, x14; \ + umulh x14, x3, x12; \ + adcs x19, x19, x14; \ + umulh x14, x3, x13; \ + adc x20, x20, x14; \ + mul x14, x4, x5; \ + adds x23, x23, x14; \ + mul x14, x4, x6; \ + adcs x24, x24, x14; \ + mul x14, x4, x7; \ + adcs x1, x1, x14; \ + mul x14, x4, x8; \ + adcs x0, x0, x14; \ + mul x14, x4, x9; \ + adcs x15, x15, x14; \ + mul x14, x4, x10; \ + adcs x16, x16, x14; \ + mul x14, x4, x11; \ + adcs x17, x17, x14; \ + mul x14, x4, x12; \ + adcs x19, x19, x14; \ + mul x14, x4, x13; \ + adcs x20, x20, x14; \ + cset x21, hs; \ + umulh x14, x4, x5; \ + adds x24, x24, x14; \ + umulh x14, x4, x6; \ + adcs x1, x1, x14; \ + umulh x14, x4, x7; \ + adcs x0, x0, x14; \ + umulh x14, x4, x8; \ + adcs x15, x15, x14; \ + umulh x14, x4, x9; \ + adcs x16, x16, x14; \ + umulh x14, x4, x10; \ + adcs x17, x17, x14; \ + umulh x14, x4, x11; \ + adcs x19, x19, x14; \ + umulh x14, x4, x12; \ + adcs x20, x20, x14; \ + umulh x14, x4, x13; \ + adc x21, x21, x14; \ + stp x22, x23, [P0+48]; \ + ldr x3, [P1+64]; \ + mul x14, x3, x5; \ + adds x24, x24, x14; \ + mul x14, x3, x6; \ + adcs x1, x1, x14; \ + mul x14, x3, x7; \ + adcs x0, x0, x14; \ + mul x14, x3, x8; \ + adcs x15, x15, x14; \ + mul x14, x3, x9; \ + adcs x16, x16, x14; \ + mul x14, x3, x10; \ + adcs x17, x17, x14; \ + mul x14, x3, x11; \ + adcs x19, x19, x14; \ + mul x14, x3, x12; \ + adcs x20, x20, x14; \ + mul x14, x3, x13; \ + adc x21, x21, x14; \ + umulh x14, x3, x5; \ + adds x1, x1, x14; \ + umulh x14, x3, x6; \ + adcs x0, x0, x14; \ + umulh x14, x3, x7; \ + adcs x15, x15, x14; \ + umulh x14, x3, x8; \ + adcs x16, x16, x14; \ + umulh x14, x3, x9; \ + adcs x17, x17, x14; \ + umulh x14, x3, x10; \ + adcs x19, x19, x14; \ + umulh x14, x3, x11; \ + adcs x20, x20, x14; \ + umulh x14, x3, x12; \ + adc x21, x21, x14; \ + cmp xzr, xzr; \ + ldp x5, x6, [P0]; \ + extr x14, x1, x24, #9; \ + adcs x5, x5, x14; \ + extr x14, x0, x1, #9; \ + adcs x6, x6, x14; \ + ldp x7, x8, [P0+16]; \ + extr x14, x15, x0, #9; \ + adcs x7, x7, x14; \ + extr x14, x16, x15, #9; \ + adcs x8, x8, x14; \ + ldp x9, x10, [P0+32]; \ + extr x14, x17, x16, #9; \ + adcs x9, x9, x14; \ + extr x14, x19, x17, #9; \ + adcs x10, x10, x14; \ + ldp x11, x12, [P0+48]; \ + extr x14, x20, x19, #9; \ + adcs x11, x11, x14; \ + extr x14, x21, x20, #9; \ + adcs x12, x12, x14; \ + orr x13, x24, #0xfffffffffffffe00; \ + lsr x14, x21, #9; \ + adcs x13, x13, x14; \ + sbcs x5, x5, xzr; \ + sbcs x6, x6, xzr; \ + sbcs x7, x7, xzr; \ + sbcs x8, x8, xzr; \ + sbcs x9, x9, xzr; \ + sbcs x10, x10, xzr; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbc x13, x13, xzr; \ + and x13, x13, #0x1ff; \ + stp x5, x6, [P0]; \ + stp x7, x8, [P0+16]; \ + stp x9, x10, [P0+32]; \ + stp x11, x12, [P0+48]; \ + str x13, [P0+64] + +// Corresponds exactly to bignum_sqr_p521_alt + +#define sqr_p521(P0,P1) \ + ldp x2, x3, [P1]; \ + mul x11, x2, x3; \ + umulh x12, x2, x3; \ + ldp x4, x5, [P1+16]; \ + mul x10, x2, x4; \ + umulh x13, x2, x4; \ + adds x12, x12, x10; \ + ldp x6, x7, [P1+32]; \ + mul x10, x2, x5; \ + umulh x14, x2, x5; \ + adcs x13, x13, x10; \ + ldp x8, x9, [P1+48]; \ + mul x10, x2, x6; \ + umulh x15, x2, x6; \ + adcs x14, x14, x10; \ + mul x10, x2, x7; \ + umulh x16, x2, x7; \ + adcs x15, x15, x10; \ + mul x10, x2, x8; \ + umulh x17, x2, x8; \ + adcs x16, x16, x10; \ + mul x10, x2, x9; \ + umulh x19, x2, x9; \ + adcs x17, x17, x10; \ + adc x19, x19, xzr; \ + mul x10, x3, x4; \ + adds x13, x13, x10; \ + mul x10, x3, x5; \ + adcs x14, x14, x10; \ + mul x10, x3, x6; \ + adcs x15, x15, x10; \ + mul x10, x3, x7; \ + adcs x16, x16, x10; \ + mul x10, x3, x8; \ + adcs x17, x17, x10; \ + mul x10, x3, x9; \ + adcs x19, x19, x10; \ + cset x20, hs; \ + umulh x10, x3, x4; \ + adds x14, x14, x10; \ + umulh x10, x3, x5; \ + adcs x15, x15, x10; \ + umulh x10, x3, x6; \ + adcs x16, x16, x10; \ + umulh x10, x3, x7; \ + adcs x17, x17, x10; \ + umulh x10, x3, x8; \ + adcs x19, x19, x10; \ + umulh x10, x3, x9; \ + adc x20, x20, x10; \ + mul x10, x6, x7; \ + umulh x21, x6, x7; \ + adds x20, x20, x10; \ + adc x21, x21, xzr; \ + mul x10, x4, x5; \ + adds x15, x15, x10; \ + mul x10, x4, x6; \ + adcs x16, x16, x10; \ + mul x10, x4, x7; \ + adcs x17, x17, x10; \ + mul x10, x4, x8; \ + adcs x19, x19, x10; \ + mul x10, x4, x9; \ + adcs x20, x20, x10; \ + mul x10, x6, x8; \ + adcs x21, x21, x10; \ + cset x22, hs; \ + umulh x10, x4, x5; \ + adds x16, x16, x10; \ + umulh x10, x4, x6; \ + adcs x17, x17, x10; \ + umulh x10, x4, x7; \ + adcs x19, x19, x10; \ + umulh x10, x4, x8; \ + adcs x20, x20, x10; \ + umulh x10, x4, x9; \ + adcs x21, x21, x10; \ + umulh x10, x6, x8; \ + adc x22, x22, x10; \ + mul x10, x7, x8; \ + umulh x23, x7, x8; \ + adds x22, x22, x10; \ + adc x23, x23, xzr; \ + mul x10, x5, x6; \ + adds x17, x17, x10; \ + mul x10, x5, x7; \ + adcs x19, x19, x10; \ + mul x10, x5, x8; \ + adcs x20, x20, x10; \ + mul x10, x5, x9; \ + adcs x21, x21, x10; \ + mul x10, x6, x9; \ + adcs x22, x22, x10; \ + mul x10, x7, x9; \ + adcs x23, x23, x10; \ + cset x24, hs; \ + umulh x10, x5, x6; \ + adds x19, x19, x10; \ + umulh x10, x5, x7; \ + adcs x20, x20, x10; \ + umulh x10, x5, x8; \ + adcs x21, x21, x10; \ + umulh x10, x5, x9; \ + adcs x22, x22, x10; \ + umulh x10, x6, x9; \ + adcs x23, x23, x10; \ + umulh x10, x7, x9; \ + adc x24, x24, x10; \ + mul x10, x8, x9; \ + umulh x25, x8, x9; \ + adds x24, x24, x10; \ + adc x25, x25, xzr; \ + adds x11, x11, x11; \ + adcs x12, x12, x12; \ + adcs x13, x13, x13; \ + adcs x14, x14, x14; \ + adcs x15, x15, x15; \ + adcs x16, x16, x16; \ + adcs x17, x17, x17; \ + adcs x19, x19, x19; \ + adcs x20, x20, x20; \ + adcs x21, x21, x21; \ + adcs x22, x22, x22; \ + adcs x23, x23, x23; \ + adcs x24, x24, x24; \ + adcs x25, x25, x25; \ + cset x0, hs; \ + umulh x10, x2, x2; \ + adds x11, x11, x10; \ + mul x10, x3, x3; \ + adcs x12, x12, x10; \ + umulh x10, x3, x3; \ + adcs x13, x13, x10; \ + mul x10, x4, x4; \ + adcs x14, x14, x10; \ + umulh x10, x4, x4; \ + adcs x15, x15, x10; \ + mul x10, x5, x5; \ + adcs x16, x16, x10; \ + umulh x10, x5, x5; \ + adcs x17, x17, x10; \ + mul x10, x6, x6; \ + adcs x19, x19, x10; \ + umulh x10, x6, x6; \ + adcs x20, x20, x10; \ + mul x10, x7, x7; \ + adcs x21, x21, x10; \ + umulh x10, x7, x7; \ + adcs x22, x22, x10; \ + mul x10, x8, x8; \ + adcs x23, x23, x10; \ + umulh x10, x8, x8; \ + adcs x24, x24, x10; \ + mul x10, x9, x9; \ + adcs x25, x25, x10; \ + umulh x10, x9, x9; \ + adc x0, x0, x10; \ + ldr x1, [P1+64]; \ + add x1, x1, x1; \ + mul x10, x1, x2; \ + adds x19, x19, x10; \ + umulh x10, x1, x2; \ + adcs x20, x20, x10; \ + mul x10, x1, x4; \ + adcs x21, x21, x10; \ + umulh x10, x1, x4; \ + adcs x22, x22, x10; \ + mul x10, x1, x6; \ + adcs x23, x23, x10; \ + umulh x10, x1, x6; \ + adcs x24, x24, x10; \ + mul x10, x1, x8; \ + adcs x25, x25, x10; \ + umulh x10, x1, x8; \ + adcs x0, x0, x10; \ + lsr x4, x1, #1; \ + mul x4, x4, x4; \ + adc x4, x4, xzr; \ + mul x10, x1, x3; \ + adds x20, x20, x10; \ + umulh x10, x1, x3; \ + adcs x21, x21, x10; \ + mul x10, x1, x5; \ + adcs x22, x22, x10; \ + umulh x10, x1, x5; \ + adcs x23, x23, x10; \ + mul x10, x1, x7; \ + adcs x24, x24, x10; \ + umulh x10, x1, x7; \ + adcs x25, x25, x10; \ + mul x10, x1, x9; \ + adcs x0, x0, x10; \ + umulh x10, x1, x9; \ + adc x4, x4, x10; \ + mul x2, x2, x2; \ + cmp xzr, xzr; \ + extr x10, x20, x19, #9; \ + adcs x2, x2, x10; \ + extr x10, x21, x20, #9; \ + adcs x11, x11, x10; \ + extr x10, x22, x21, #9; \ + adcs x12, x12, x10; \ + extr x10, x23, x22, #9; \ + adcs x13, x13, x10; \ + extr x10, x24, x23, #9; \ + adcs x14, x14, x10; \ + extr x10, x25, x24, #9; \ + adcs x15, x15, x10; \ + extr x10, x0, x25, #9; \ + adcs x16, x16, x10; \ + extr x10, x4, x0, #9; \ + adcs x17, x17, x10; \ + orr x19, x19, #0xfffffffffffffe00; \ + lsr x10, x4, #9; \ + adcs x19, x19, x10; \ + sbcs x2, x2, xzr; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbcs x13, x13, xzr; \ + sbcs x14, x14, xzr; \ + sbcs x15, x15, xzr; \ + sbcs x16, x16, xzr; \ + sbcs x17, x17, xzr; \ + sbc x19, x19, xzr; \ + and x19, x19, #0x1ff; \ + stp x2, x11, [P0]; \ + stp x12, x13, [P0+16]; \ + stp x14, x15, [P0+32]; \ + stp x16, x17, [P0+48]; \ + str x19, [P0+64] + +// Corresponds exactly to bignum_add_p521 + +#define add_p521(P0,P1,P2) \ + cmp xzr, xzr; \ + ldp x5, x6, [P1]; \ + ldp x4, x3, [P2]; \ + adcs x5, x5, x4; \ + adcs x6, x6, x3; \ + ldp x7, x8, [P1+16]; \ + ldp x4, x3, [P2+16]; \ + adcs x7, x7, x4; \ + adcs x8, x8, x3; \ + ldp x9, x10, [P1+32]; \ + ldp x4, x3, [P2+32]; \ + adcs x9, x9, x4; \ + adcs x10, x10, x3; \ + ldp x11, x12, [P1+48]; \ + ldp x4, x3, [P2+48]; \ + adcs x11, x11, x4; \ + adcs x12, x12, x3; \ + ldr x13, [P1+64]; \ + ldr x4, [P2+64]; \ + adc x13, x13, x4; \ + subs x4, x13, #512; \ + csetm x4, hs; \ + sbcs x5, x5, xzr; \ + and x4, x4, #0x200; \ + sbcs x6, x6, xzr; \ + sbcs x7, x7, xzr; \ + sbcs x8, x8, xzr; \ + sbcs x9, x9, xzr; \ + sbcs x10, x10, xzr; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbc x13, x13, x4; \ + stp x5, x6, [P0]; \ + stp x7, x8, [P0+16]; \ + stp x9, x10, [P0+32]; \ + stp x11, x12, [P0+48]; \ + str x13, [P0+64] + +// Corresponds exactly to bignum_sub_p521 + +#define sub_p521(P0,P1,P2) \ + ldp x5, x6, [P1]; \ + ldp x4, x3, [P2]; \ + subs x5, x5, x4; \ + sbcs x6, x6, x3; \ + ldp x7, x8, [P1+16]; \ + ldp x4, x3, [P2+16]; \ + sbcs x7, x7, x4; \ + sbcs x8, x8, x3; \ + ldp x9, x10, [P1+32]; \ + ldp x4, x3, [P2+32]; \ + sbcs x9, x9, x4; \ + sbcs x10, x10, x3; \ + ldp x11, x12, [P1+48]; \ + ldp x4, x3, [P2+48]; \ + sbcs x11, x11, x4; \ + sbcs x12, x12, x3; \ + ldr x13, [P1+64]; \ + ldr x4, [P2+64]; \ + sbcs x13, x13, x4; \ + sbcs x5, x5, xzr; \ + sbcs x6, x6, xzr; \ + sbcs x7, x7, xzr; \ + sbcs x8, x8, xzr; \ + sbcs x9, x9, xzr; \ + sbcs x10, x10, xzr; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbcs x13, x13, xzr; \ + and x13, x13, #0x1ff; \ + stp x5, x6, [P0]; \ + stp x7, x8, [P0+16]; \ + stp x9, x10, [P0+32]; \ + stp x11, x12, [P0+48]; \ + str x13, [P0+64] + +// Weak multiplication not fully reducing + +#define weakmul_p521(P0,P1,P2) \ + ldp x3, x4, [P1]; \ + ldp x5, x6, [P2]; \ + mul x15, x3, x5; \ + umulh x16, x3, x5; \ + mul x14, x3, x6; \ + umulh x17, x3, x6; \ + adds x16, x16, x14; \ + ldp x7, x8, [P2+16]; \ + mul x14, x3, x7; \ + umulh x19, x3, x7; \ + adcs x17, x17, x14; \ + mul x14, x3, x8; \ + umulh x20, x3, x8; \ + adcs x19, x19, x14; \ + ldp x9, x10, [P2+32]; \ + mul x14, x3, x9; \ + umulh x21, x3, x9; \ + adcs x20, x20, x14; \ + mul x14, x3, x10; \ + umulh x22, x3, x10; \ + adcs x21, x21, x14; \ + ldp x11, x12, [P2+48]; \ + mul x14, x3, x11; \ + umulh x23, x3, x11; \ + adcs x22, x22, x14; \ + ldr x13, [P2+64]; \ + mul x14, x3, x12; \ + umulh x24, x3, x12; \ + adcs x23, x23, x14; \ + mul x14, x3, x13; \ + umulh x1, x3, x13; \ + adcs x24, x24, x14; \ + adc x1, x1, xzr; \ + mul x14, x4, x5; \ + adds x16, x16, x14; \ + mul x14, x4, x6; \ + adcs x17, x17, x14; \ + mul x14, x4, x7; \ + adcs x19, x19, x14; \ + mul x14, x4, x8; \ + adcs x20, x20, x14; \ + mul x14, x4, x9; \ + adcs x21, x21, x14; \ + mul x14, x4, x10; \ + adcs x22, x22, x14; \ + mul x14, x4, x11; \ + adcs x23, x23, x14; \ + mul x14, x4, x12; \ + adcs x24, x24, x14; \ + mul x14, x4, x13; \ + adcs x1, x1, x14; \ + cset x0, hs; \ + umulh x14, x4, x5; \ + adds x17, x17, x14; \ + umulh x14, x4, x6; \ + adcs x19, x19, x14; \ + umulh x14, x4, x7; \ + adcs x20, x20, x14; \ + umulh x14, x4, x8; \ + adcs x21, x21, x14; \ + umulh x14, x4, x9; \ + adcs x22, x22, x14; \ + umulh x14, x4, x10; \ + adcs x23, x23, x14; \ + umulh x14, x4, x11; \ + adcs x24, x24, x14; \ + umulh x14, x4, x12; \ + adcs x1, x1, x14; \ + umulh x14, x4, x13; \ + adc x0, x0, x14; \ + stp x15, x16, [P0]; \ + ldp x3, x4, [P1+16]; \ + mul x14, x3, x5; \ + adds x17, x17, x14; \ + mul x14, x3, x6; \ + adcs x19, x19, x14; \ + mul x14, x3, x7; \ + adcs x20, x20, x14; \ + mul x14, x3, x8; \ + adcs x21, x21, x14; \ + mul x14, x3, x9; \ + adcs x22, x22, x14; \ + mul x14, x3, x10; \ + adcs x23, x23, x14; \ + mul x14, x3, x11; \ + adcs x24, x24, x14; \ + mul x14, x3, x12; \ + adcs x1, x1, x14; \ + mul x14, x3, x13; \ + adcs x0, x0, x14; \ + cset x15, hs; \ + umulh x14, x3, x5; \ + adds x19, x19, x14; \ + umulh x14, x3, x6; \ + adcs x20, x20, x14; \ + umulh x14, x3, x7; \ + adcs x21, x21, x14; \ + umulh x14, x3, x8; \ + adcs x22, x22, x14; \ + umulh x14, x3, x9; \ + adcs x23, x23, x14; \ + umulh x14, x3, x10; \ + adcs x24, x24, x14; \ + umulh x14, x3, x11; \ + adcs x1, x1, x14; \ + umulh x14, x3, x12; \ + adcs x0, x0, x14; \ + umulh x14, x3, x13; \ + adc x15, x15, x14; \ + mul x14, x4, x5; \ + adds x19, x19, x14; \ + mul x14, x4, x6; \ + adcs x20, x20, x14; \ + mul x14, x4, x7; \ + adcs x21, x21, x14; \ + mul x14, x4, x8; \ + adcs x22, x22, x14; \ + mul x14, x4, x9; \ + adcs x23, x23, x14; \ + mul x14, x4, x10; \ + adcs x24, x24, x14; \ + mul x14, x4, x11; \ + adcs x1, x1, x14; \ + mul x14, x4, x12; \ + adcs x0, x0, x14; \ + mul x14, x4, x13; \ + adcs x15, x15, x14; \ + cset x16, hs; \ + umulh x14, x4, x5; \ + adds x20, x20, x14; \ + umulh x14, x4, x6; \ + adcs x21, x21, x14; \ + umulh x14, x4, x7; \ + adcs x22, x22, x14; \ + umulh x14, x4, x8; \ + adcs x23, x23, x14; \ + umulh x14, x4, x9; \ + adcs x24, x24, x14; \ + umulh x14, x4, x10; \ + adcs x1, x1, x14; \ + umulh x14, x4, x11; \ + adcs x0, x0, x14; \ + umulh x14, x4, x12; \ + adcs x15, x15, x14; \ + umulh x14, x4, x13; \ + adc x16, x16, x14; \ + stp x17, x19, [P0+16]; \ + ldp x3, x4, [P1+32]; \ + mul x14, x3, x5; \ + adds x20, x20, x14; \ + mul x14, x3, x6; \ + adcs x21, x21, x14; \ + mul x14, x3, x7; \ + adcs x22, x22, x14; \ + mul x14, x3, x8; \ + adcs x23, x23, x14; \ + mul x14, x3, x9; \ + adcs x24, x24, x14; \ + mul x14, x3, x10; \ + adcs x1, x1, x14; \ + mul x14, x3, x11; \ + adcs x0, x0, x14; \ + mul x14, x3, x12; \ + adcs x15, x15, x14; \ + mul x14, x3, x13; \ + adcs x16, x16, x14; \ + cset x17, hs; \ + umulh x14, x3, x5; \ + adds x21, x21, x14; \ + umulh x14, x3, x6; \ + adcs x22, x22, x14; \ + umulh x14, x3, x7; \ + adcs x23, x23, x14; \ + umulh x14, x3, x8; \ + adcs x24, x24, x14; \ + umulh x14, x3, x9; \ + adcs x1, x1, x14; \ + umulh x14, x3, x10; \ + adcs x0, x0, x14; \ + umulh x14, x3, x11; \ + adcs x15, x15, x14; \ + umulh x14, x3, x12; \ + adcs x16, x16, x14; \ + umulh x14, x3, x13; \ + adc x17, x17, x14; \ + mul x14, x4, x5; \ + adds x21, x21, x14; \ + mul x14, x4, x6; \ + adcs x22, x22, x14; \ + mul x14, x4, x7; \ + adcs x23, x23, x14; \ + mul x14, x4, x8; \ + adcs x24, x24, x14; \ + mul x14, x4, x9; \ + adcs x1, x1, x14; \ + mul x14, x4, x10; \ + adcs x0, x0, x14; \ + mul x14, x4, x11; \ + adcs x15, x15, x14; \ + mul x14, x4, x12; \ + adcs x16, x16, x14; \ + mul x14, x4, x13; \ + adcs x17, x17, x14; \ + cset x19, hs; \ + umulh x14, x4, x5; \ + adds x22, x22, x14; \ + umulh x14, x4, x6; \ + adcs x23, x23, x14; \ + umulh x14, x4, x7; \ + adcs x24, x24, x14; \ + umulh x14, x4, x8; \ + adcs x1, x1, x14; \ + umulh x14, x4, x9; \ + adcs x0, x0, x14; \ + umulh x14, x4, x10; \ + adcs x15, x15, x14; \ + umulh x14, x4, x11; \ + adcs x16, x16, x14; \ + umulh x14, x4, x12; \ + adcs x17, x17, x14; \ + umulh x14, x4, x13; \ + adc x19, x19, x14; \ + stp x20, x21, [P0+32]; \ + ldp x3, x4, [P1+48]; \ + mul x14, x3, x5; \ + adds x22, x22, x14; \ + mul x14, x3, x6; \ + adcs x23, x23, x14; \ + mul x14, x3, x7; \ + adcs x24, x24, x14; \ + mul x14, x3, x8; \ + adcs x1, x1, x14; \ + mul x14, x3, x9; \ + adcs x0, x0, x14; \ + mul x14, x3, x10; \ + adcs x15, x15, x14; \ + mul x14, x3, x11; \ + adcs x16, x16, x14; \ + mul x14, x3, x12; \ + adcs x17, x17, x14; \ + mul x14, x3, x13; \ + adcs x19, x19, x14; \ + cset x20, hs; \ + umulh x14, x3, x5; \ + adds x23, x23, x14; \ + umulh x14, x3, x6; \ + adcs x24, x24, x14; \ + umulh x14, x3, x7; \ + adcs x1, x1, x14; \ + umulh x14, x3, x8; \ + adcs x0, x0, x14; \ + umulh x14, x3, x9; \ + adcs x15, x15, x14; \ + umulh x14, x3, x10; \ + adcs x16, x16, x14; \ + umulh x14, x3, x11; \ + adcs x17, x17, x14; \ + umulh x14, x3, x12; \ + adcs x19, x19, x14; \ + umulh x14, x3, x13; \ + adc x20, x20, x14; \ + mul x14, x4, x5; \ + adds x23, x23, x14; \ + mul x14, x4, x6; \ + adcs x24, x24, x14; \ + mul x14, x4, x7; \ + adcs x1, x1, x14; \ + mul x14, x4, x8; \ + adcs x0, x0, x14; \ + mul x14, x4, x9; \ + adcs x15, x15, x14; \ + mul x14, x4, x10; \ + adcs x16, x16, x14; \ + mul x14, x4, x11; \ + adcs x17, x17, x14; \ + mul x14, x4, x12; \ + adcs x19, x19, x14; \ + mul x14, x4, x13; \ + adcs x20, x20, x14; \ + cset x21, hs; \ + umulh x14, x4, x5; \ + adds x24, x24, x14; \ + umulh x14, x4, x6; \ + adcs x1, x1, x14; \ + umulh x14, x4, x7; \ + adcs x0, x0, x14; \ + umulh x14, x4, x8; \ + adcs x15, x15, x14; \ + umulh x14, x4, x9; \ + adcs x16, x16, x14; \ + umulh x14, x4, x10; \ + adcs x17, x17, x14; \ + umulh x14, x4, x11; \ + adcs x19, x19, x14; \ + umulh x14, x4, x12; \ + adcs x20, x20, x14; \ + umulh x14, x4, x13; \ + adc x21, x21, x14; \ + stp x22, x23, [P0+48]; \ + ldr x3, [P1+64]; \ + mul x14, x3, x5; \ + adds x24, x24, x14; \ + mul x14, x3, x6; \ + adcs x1, x1, x14; \ + mul x14, x3, x7; \ + adcs x0, x0, x14; \ + mul x14, x3, x8; \ + adcs x15, x15, x14; \ + mul x14, x3, x9; \ + adcs x16, x16, x14; \ + mul x14, x3, x10; \ + adcs x17, x17, x14; \ + mul x14, x3, x11; \ + adcs x19, x19, x14; \ + mul x14, x3, x12; \ + adcs x20, x20, x14; \ + mul x14, x3, x13; \ + adc x21, x21, x14; \ + umulh x14, x3, x5; \ + adds x1, x1, x14; \ + umulh x14, x3, x6; \ + adcs x0, x0, x14; \ + umulh x14, x3, x7; \ + adcs x15, x15, x14; \ + umulh x14, x3, x8; \ + adcs x16, x16, x14; \ + umulh x14, x3, x9; \ + adcs x17, x17, x14; \ + umulh x14, x3, x10; \ + adcs x19, x19, x14; \ + umulh x14, x3, x11; \ + adcs x20, x20, x14; \ + umulh x14, x3, x12; \ + adc x21, x21, x14; \ + ldp x5, x6, [P0]; \ + extr x14, x1, x24, #9; \ + adds x5, x5, x14; \ + extr x14, x0, x1, #9; \ + adcs x6, x6, x14; \ + ldp x7, x8, [P0+16]; \ + extr x14, x15, x0, #9; \ + adcs x7, x7, x14; \ + extr x14, x16, x15, #9; \ + adcs x8, x8, x14; \ + ldp x9, x10, [P0+32]; \ + extr x14, x17, x16, #9; \ + adcs x9, x9, x14; \ + extr x14, x19, x17, #9; \ + adcs x10, x10, x14; \ + ldp x11, x12, [P0+48]; \ + extr x14, x20, x19, #9; \ + adcs x11, x11, x14; \ + extr x14, x21, x20, #9; \ + adcs x12, x12, x14; \ + and x13, x24, #0x1ff; \ + lsr x14, x21, #9; \ + adc x13, x13, x14; \ + stp x5, x6, [P0]; \ + stp x7, x8, [P0+16]; \ + stp x9, x10, [P0+32]; \ + stp x11, x12, [P0+48]; \ + str x13, [P0+64] + +// P0 = C * P1 - D * P2 == C * P1 + D * (p_521 - P2) + +#define cmsub_p521(P0,C,P1,D,P2) \ + ldp x6, x7, [P1]; \ + mov x1, #(C); \ + mul x3, x1, x6; \ + mul x4, x1, x7; \ + umulh x6, x1, x6; \ + adds x4, x4, x6; \ + umulh x7, x1, x7; \ + ldp x8, x9, [P1+16]; \ + mul x5, x1, x8; \ + mul x6, x1, x9; \ + umulh x8, x1, x8; \ + adcs x5, x5, x7; \ + umulh x9, x1, x9; \ + adcs x6, x6, x8; \ + ldp x10, x11, [P1+32]; \ + mul x7, x1, x10; \ + mul x8, x1, x11; \ + umulh x10, x1, x10; \ + adcs x7, x7, x9; \ + umulh x11, x1, x11; \ + adcs x8, x8, x10; \ + ldp x12, x13, [P1+48]; \ + mul x9, x1, x12; \ + mul x10, x1, x13; \ + umulh x12, x1, x12; \ + adcs x9, x9, x11; \ + umulh x13, x1, x13; \ + adcs x10, x10, x12; \ + ldr x14, [P1+64]; \ + mul x11, x1, x14; \ + adc x11, x11, x13; \ + mov x1, #(D); \ + ldp x20, x21, [P2]; \ + mvn x20, x20; \ + mul x0, x1, x20; \ + umulh x20, x1, x20; \ + adds x3, x3, x0; \ + mvn x21, x21; \ + mul x0, x1, x21; \ + umulh x21, x1, x21; \ + adcs x4, x4, x0; \ + ldp x22, x23, [P2+16]; \ + mvn x22, x22; \ + mul x0, x1, x22; \ + umulh x22, x1, x22; \ + adcs x5, x5, x0; \ + mvn x23, x23; \ + mul x0, x1, x23; \ + umulh x23, x1, x23; \ + adcs x6, x6, x0; \ + ldp x17, x19, [P2+32]; \ + mvn x17, x17; \ + mul x0, x1, x17; \ + umulh x17, x1, x17; \ + adcs x7, x7, x0; \ + mvn x19, x19; \ + mul x0, x1, x19; \ + umulh x19, x1, x19; \ + adcs x8, x8, x0; \ + ldp x2, x16, [P2+48]; \ + mvn x2, x2; \ + mul x0, x1, x2; \ + umulh x2, x1, x2; \ + adcs x9, x9, x0; \ + mvn x16, x16; \ + mul x0, x1, x16; \ + umulh x16, x1, x16; \ + adcs x10, x10, x0; \ + ldr x0, [P2+64]; \ + eor x0, x0, #0x1ff; \ + mul x0, x1, x0; \ + adc x11, x11, x0; \ + adds x4, x4, x20; \ + adcs x5, x5, x21; \ + and x15, x4, x5; \ + adcs x6, x6, x22; \ + and x15, x15, x6; \ + adcs x7, x7, x23; \ + and x15, x15, x7; \ + adcs x8, x8, x17; \ + and x15, x15, x8; \ + adcs x9, x9, x19; \ + and x15, x15, x9; \ + adcs x10, x10, x2; \ + and x15, x15, x10; \ + adc x11, x11, x16; \ + lsr x12, x11, #9; \ + orr x11, x11, #0xfffffffffffffe00; \ + cmp xzr, xzr; \ + adcs xzr, x3, x12; \ + adcs xzr, x15, xzr; \ + adcs xzr, x11, xzr; \ + adcs x3, x3, x12; \ + adcs x4, x4, xzr; \ + adcs x5, x5, xzr; \ + adcs x6, x6, xzr; \ + adcs x7, x7, xzr; \ + adcs x8, x8, xzr; \ + adcs x9, x9, xzr; \ + adcs x10, x10, xzr; \ + adc x11, x11, xzr; \ + and x11, x11, #0x1ff; \ + stp x3, x4, [P0]; \ + stp x5, x6, [P0+16]; \ + stp x7, x8, [P0+32]; \ + stp x9, x10, [P0+48]; \ + str x11, [P0+64] + +// P0 = 3 * P1 - 8 * P2 == 3 * P1 + 8 * (p_521 - P2) + +#define cmsub38_p521(P0,P1,P2) \ + ldp x6, x7, [P1]; \ + lsl x3, x6, #1; \ + adds x3, x3, x6; \ + extr x4, x7, x6, #63; \ + adcs x4, x4, x7; \ + ldp x8, x9, [P1+16]; \ + extr x5, x8, x7, #63; \ + adcs x5, x5, x8; \ + extr x6, x9, x8, #63; \ + adcs x6, x6, x9; \ + ldp x10, x11, [P1+32]; \ + extr x7, x10, x9, #63; \ + adcs x7, x7, x10; \ + extr x8, x11, x10, #63; \ + adcs x8, x8, x11; \ + ldp x12, x13, [P1+48]; \ + extr x9, x12, x11, #63; \ + adcs x9, x9, x12; \ + extr x10, x13, x12, #63; \ + adcs x10, x10, x13; \ + ldr x14, [P1+64]; \ + extr x11, x14, x13, #63; \ + adc x11, x11, x14; \ + ldp x20, x21, [P2]; \ + mvn x20, x20; \ + lsl x0, x20, #3; \ + adds x3, x3, x0; \ + mvn x21, x21; \ + extr x0, x21, x20, #61; \ + adcs x4, x4, x0; \ + ldp x22, x23, [P2+16]; \ + mvn x22, x22; \ + extr x0, x22, x21, #61; \ + adcs x5, x5, x0; \ + and x15, x4, x5; \ + mvn x23, x23; \ + extr x0, x23, x22, #61; \ + adcs x6, x6, x0; \ + and x15, x15, x6; \ + ldp x20, x21, [P2+32]; \ + mvn x20, x20; \ + extr x0, x20, x23, #61; \ + adcs x7, x7, x0; \ + and x15, x15, x7; \ + mvn x21, x21; \ + extr x0, x21, x20, #61; \ + adcs x8, x8, x0; \ + and x15, x15, x8; \ + ldp x22, x23, [P2+48]; \ + mvn x22, x22; \ + extr x0, x22, x21, #61; \ + adcs x9, x9, x0; \ + and x15, x15, x9; \ + mvn x23, x23; \ + extr x0, x23, x22, #61; \ + adcs x10, x10, x0; \ + and x15, x15, x10; \ + ldr x0, [P2+64]; \ + eor x0, x0, #0x1ff; \ + extr x0, x0, x23, #61; \ + adc x11, x11, x0; \ + lsr x12, x11, #9; \ + orr x11, x11, #0xfffffffffffffe00; \ + cmp xzr, xzr; \ + adcs xzr, x3, x12; \ + adcs xzr, x15, xzr; \ + adcs xzr, x11, xzr; \ + adcs x3, x3, x12; \ + adcs x4, x4, xzr; \ + adcs x5, x5, xzr; \ + adcs x6, x6, xzr; \ + adcs x7, x7, xzr; \ + adcs x8, x8, xzr; \ + adcs x9, x9, xzr; \ + adcs x10, x10, xzr; \ + adc x11, x11, xzr; \ + and x11, x11, #0x1ff; \ + stp x3, x4, [P0]; \ + stp x5, x6, [P0+16]; \ + stp x7, x8, [P0+32]; \ + stp x9, x10, [P0+48]; \ + str x11, [P0+64] + +// P0 = 4 * P1 - P2 = 4 * P1 + (p_521 - P2) + +#define cmsub41_p521(P0,P1,P2) \ + ldp x6, x7, [P1]; \ + lsl x3, x6, #2; \ + extr x4, x7, x6, #62; \ + ldp x8, x9, [P1+16]; \ + extr x5, x8, x7, #62; \ + extr x6, x9, x8, #62; \ + ldp x10, x11, [P1+32]; \ + extr x7, x10, x9, #62; \ + extr x8, x11, x10, #62; \ + ldp x12, x13, [P1+48]; \ + extr x9, x12, x11, #62; \ + extr x10, x13, x12, #62; \ + ldr x14, [P1+64]; \ + extr x11, x14, x13, #62; \ + ldp x0, x1, [P2]; \ + mvn x0, x0; \ + adds x3, x3, x0; \ + sbcs x4, x4, x1; \ + ldp x0, x1, [P2+16]; \ + sbcs x5, x5, x0; \ + and x15, x4, x5; \ + sbcs x6, x6, x1; \ + and x15, x15, x6; \ + ldp x0, x1, [P2+32]; \ + sbcs x7, x7, x0; \ + and x15, x15, x7; \ + sbcs x8, x8, x1; \ + and x15, x15, x8; \ + ldp x0, x1, [P2+48]; \ + sbcs x9, x9, x0; \ + and x15, x15, x9; \ + sbcs x10, x10, x1; \ + and x15, x15, x10; \ + ldr x0, [P2+64]; \ + eor x0, x0, #0x1ff; \ + adc x11, x11, x0; \ + lsr x12, x11, #9; \ + orr x11, x11, #0xfffffffffffffe00; \ + cmp xzr, xzr; \ + adcs xzr, x3, x12; \ + adcs xzr, x15, xzr; \ + adcs xzr, x11, xzr; \ + adcs x3, x3, x12; \ + adcs x4, x4, xzr; \ + adcs x5, x5, xzr; \ + adcs x6, x6, xzr; \ + adcs x7, x7, xzr; \ + adcs x8, x8, xzr; \ + adcs x9, x9, xzr; \ + adcs x10, x10, xzr; \ + adc x11, x11, xzr; \ + and x11, x11, #0x1ff; \ + stp x3, x4, [P0]; \ + stp x5, x6, [P0+16]; \ + stp x7, x8, [P0+32]; \ + stp x9, x10, [P0+48]; \ + str x11, [P0+64] + +S2N_BN_SYMBOL(p521_jdouble_alt): + +// Save regs and make room on stack for temporary variables + + stp x19, x20, [sp, #-16]! + stp x21, x22, [sp, #-16]! + stp x23, x24, [sp, #-16]! + stp x25, x26, [sp, #-16]! + stp x27, x28, [sp, #-16]! + sub sp, sp, NSPACE + +// Move the input arguments to stable places + + mov input_z, x0 + mov input_x, x1 + +// Main code, just a sequence of basic field operations + +// z2 = z^2 +// y2 = y^2 + + sqr_p521(z2,z_1) + sqr_p521(y2,y_1) + +// x2p = x^2 - z^4 = (x + z^2) * (x - z^2) + + add_p521(t1,x_1,z2) + sub_p521(t2,x_1,z2) + mul_p521(x2p,t1,t2) + +// t1 = y + z +// x4p = x2p^2 +// xy2 = x * y^2 + + add_p521(t1,y_1,z_1) + sqr_p521(x4p,x2p) + weakmul_p521(xy2,x_1,y2) + +// t2 = (y + z)^2 + + sqr_p521(t2,t1) + +// d = 12 * xy2 - 9 * x4p +// t1 = y^2 + 2 * y * z + + cmsub_p521(d,12,xy2,9,x4p) + sub_p521(t1,t2,z2) + +// y4 = y^4 + + sqr_p521(y4,y2) + +// z_3' = 2 * y * z +// dx2 = d * x2p + + sub_p521(z_3,t1,y2) + weakmul_p521(dx2,d,x2p) + +// x' = 4 * xy2 - d + + cmsub41_p521(x_3,xy2,d) + +// y' = 3 * dx2 - 8 * y4 + + cmsub38_p521(y_3,dx2,y4) + +// Restore stack and registers + + add sp, sp, NSPACE + + ldp x27, x28, [sp], 16 + ldp x25, x26, [sp], 16 + ldp x23, x24, [sp], 16 + ldp x21, x22, [sp], 16 + ldp x19, x20, [sp], 16 + + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack, "", %progbits +#endif diff --git a/third_party/s2n-bignum/arm/p521/p521_jmixadd.S b/third_party/s2n-bignum/arm/p521/p521_jmixadd.S index c9b62a9aa1..b04e39327f 100644 --- a/third_party/s2n-bignum/arm/p521/p521_jmixadd.S +++ b/third_party/s2n-bignum/arm/p521/p521_jmixadd.S @@ -54,6 +54,7 @@ #define zp2 sp, #(NUMSIZE*0) #define ww sp, #(NUMSIZE*0) +#define resx sp, #(NUMSIZE*0) #define yd sp, #(NUMSIZE*1) #define y2a sp, #(NUMSIZE*1) @@ -66,659 +67,35 @@ #define t2 sp, #(NUMSIZE*4) #define zzx1 sp, #(NUMSIZE*4) +#define resy sp, #(NUMSIZE*4) #define xd sp, #(NUMSIZE*5) +#define resz sp, #(NUMSIZE*5) -#define NSPACE (NUMSIZE*6) +#define tmp sp, #(NUMSIZE*6) -// Corresponds exactly to bignum_mul_p521_alt +#define NSPACE (NUMSIZE*7+8) + +// For the three field operations, we use subroutines not inlining. +// Call local code very close to bignum_mul_p521 and bignum_sqr_p521 +// and bignum_sub_p521 #define mul_p521(P0,P1,P2) \ - ldp x3, x4, [P1]; \ - ldp x5, x6, [P2]; \ - mul x15, x3, x5; \ - umulh x16, x3, x5; \ - mul x14, x3, x6; \ - umulh x17, x3, x6; \ - adds x16, x16, x14; \ - ldp x7, x8, [P2+16]; \ - mul x14, x3, x7; \ - umulh x19, x3, x7; \ - adcs x17, x17, x14; \ - mul x14, x3, x8; \ - umulh x20, x3, x8; \ - adcs x19, x19, x14; \ - ldp x9, x10, [P2+32]; \ - mul x14, x3, x9; \ - umulh x21, x3, x9; \ - adcs x20, x20, x14; \ - mul x14, x3, x10; \ - umulh x22, x3, x10; \ - adcs x21, x21, x14; \ - ldp x11, x12, [P2+48]; \ - mul x14, x3, x11; \ - umulh x23, x3, x11; \ - adcs x22, x22, x14; \ - ldr x13, [P2+64]; \ - mul x14, x3, x12; \ - umulh x24, x3, x12; \ - adcs x23, x23, x14; \ - mul x14, x3, x13; \ - umulh x1, x3, x13; \ - adcs x24, x24, x14; \ - adc x1, x1, xzr; \ - mul x14, x4, x5; \ - adds x16, x16, x14; \ - mul x14, x4, x6; \ - adcs x17, x17, x14; \ - mul x14, x4, x7; \ - adcs x19, x19, x14; \ - mul x14, x4, x8; \ - adcs x20, x20, x14; \ - mul x14, x4, x9; \ - adcs x21, x21, x14; \ - mul x14, x4, x10; \ - adcs x22, x22, x14; \ - mul x14, x4, x11; \ - adcs x23, x23, x14; \ - mul x14, x4, x12; \ - adcs x24, x24, x14; \ - mul x14, x4, x13; \ - adcs x1, x1, x14; \ - cset x0, hs; \ - umulh x14, x4, x5; \ - adds x17, x17, x14; \ - umulh x14, x4, x6; \ - adcs x19, x19, x14; \ - umulh x14, x4, x7; \ - adcs x20, x20, x14; \ - umulh x14, x4, x8; \ - adcs x21, x21, x14; \ - umulh x14, x4, x9; \ - adcs x22, x22, x14; \ - umulh x14, x4, x10; \ - adcs x23, x23, x14; \ - umulh x14, x4, x11; \ - adcs x24, x24, x14; \ - umulh x14, x4, x12; \ - adcs x1, x1, x14; \ - umulh x14, x4, x13; \ - adc x0, x0, x14; \ - stp x15, x16, [P0]; \ - ldp x3, x4, [P1+16]; \ - mul x14, x3, x5; \ - adds x17, x17, x14; \ - mul x14, x3, x6; \ - adcs x19, x19, x14; \ - mul x14, x3, x7; \ - adcs x20, x20, x14; \ - mul x14, x3, x8; \ - adcs x21, x21, x14; \ - mul x14, x3, x9; \ - adcs x22, x22, x14; \ - mul x14, x3, x10; \ - adcs x23, x23, x14; \ - mul x14, x3, x11; \ - adcs x24, x24, x14; \ - mul x14, x3, x12; \ - adcs x1, x1, x14; \ - mul x14, x3, x13; \ - adcs x0, x0, x14; \ - cset x15, hs; \ - umulh x14, x3, x5; \ - adds x19, x19, x14; \ - umulh x14, x3, x6; \ - adcs x20, x20, x14; \ - umulh x14, x3, x7; \ - adcs x21, x21, x14; \ - umulh x14, x3, x8; \ - adcs x22, x22, x14; \ - umulh x14, x3, x9; \ - adcs x23, x23, x14; \ - umulh x14, x3, x10; \ - adcs x24, x24, x14; \ - umulh x14, x3, x11; \ - adcs x1, x1, x14; \ - umulh x14, x3, x12; \ - adcs x0, x0, x14; \ - umulh x14, x3, x13; \ - adc x15, x15, x14; \ - mul x14, x4, x5; \ - adds x19, x19, x14; \ - mul x14, x4, x6; \ - adcs x20, x20, x14; \ - mul x14, x4, x7; \ - adcs x21, x21, x14; \ - mul x14, x4, x8; \ - adcs x22, x22, x14; \ - mul x14, x4, x9; \ - adcs x23, x23, x14; \ - mul x14, x4, x10; \ - adcs x24, x24, x14; \ - mul x14, x4, x11; \ - adcs x1, x1, x14; \ - mul x14, x4, x12; \ - adcs x0, x0, x14; \ - mul x14, x4, x13; \ - adcs x15, x15, x14; \ - cset x16, hs; \ - umulh x14, x4, x5; \ - adds x20, x20, x14; \ - umulh x14, x4, x6; \ - adcs x21, x21, x14; \ - umulh x14, x4, x7; \ - adcs x22, x22, x14; \ - umulh x14, x4, x8; \ - adcs x23, x23, x14; \ - umulh x14, x4, x9; \ - adcs x24, x24, x14; \ - umulh x14, x4, x10; \ - adcs x1, x1, x14; \ - umulh x14, x4, x11; \ - adcs x0, x0, x14; \ - umulh x14, x4, x12; \ - adcs x15, x15, x14; \ - umulh x14, x4, x13; \ - adc x16, x16, x14; \ - stp x17, x19, [P0+16]; \ - ldp x3, x4, [P1+32]; \ - mul x14, x3, x5; \ - adds x20, x20, x14; \ - mul x14, x3, x6; \ - adcs x21, x21, x14; \ - mul x14, x3, x7; \ - adcs x22, x22, x14; \ - mul x14, x3, x8; \ - adcs x23, x23, x14; \ - mul x14, x3, x9; \ - adcs x24, x24, x14; \ - mul x14, x3, x10; \ - adcs x1, x1, x14; \ - mul x14, x3, x11; \ - adcs x0, x0, x14; \ - mul x14, x3, x12; \ - adcs x15, x15, x14; \ - mul x14, x3, x13; \ - adcs x16, x16, x14; \ - cset x17, hs; \ - umulh x14, x3, x5; \ - adds x21, x21, x14; \ - umulh x14, x3, x6; \ - adcs x22, x22, x14; \ - umulh x14, x3, x7; \ - adcs x23, x23, x14; \ - umulh x14, x3, x8; \ - adcs x24, x24, x14; \ - umulh x14, x3, x9; \ - adcs x1, x1, x14; \ - umulh x14, x3, x10; \ - adcs x0, x0, x14; \ - umulh x14, x3, x11; \ - adcs x15, x15, x14; \ - umulh x14, x3, x12; \ - adcs x16, x16, x14; \ - umulh x14, x3, x13; \ - adc x17, x17, x14; \ - mul x14, x4, x5; \ - adds x21, x21, x14; \ - mul x14, x4, x6; \ - adcs x22, x22, x14; \ - mul x14, x4, x7; \ - adcs x23, x23, x14; \ - mul x14, x4, x8; \ - adcs x24, x24, x14; \ - mul x14, x4, x9; \ - adcs x1, x1, x14; \ - mul x14, x4, x10; \ - adcs x0, x0, x14; \ - mul x14, x4, x11; \ - adcs x15, x15, x14; \ - mul x14, x4, x12; \ - adcs x16, x16, x14; \ - mul x14, x4, x13; \ - adcs x17, x17, x14; \ - cset x19, hs; \ - umulh x14, x4, x5; \ - adds x22, x22, x14; \ - umulh x14, x4, x6; \ - adcs x23, x23, x14; \ - umulh x14, x4, x7; \ - adcs x24, x24, x14; \ - umulh x14, x4, x8; \ - adcs x1, x1, x14; \ - umulh x14, x4, x9; \ - adcs x0, x0, x14; \ - umulh x14, x4, x10; \ - adcs x15, x15, x14; \ - umulh x14, x4, x11; \ - adcs x16, x16, x14; \ - umulh x14, x4, x12; \ - adcs x17, x17, x14; \ - umulh x14, x4, x13; \ - adc x19, x19, x14; \ - stp x20, x21, [P0+32]; \ - ldp x3, x4, [P1+48]; \ - mul x14, x3, x5; \ - adds x22, x22, x14; \ - mul x14, x3, x6; \ - adcs x23, x23, x14; \ - mul x14, x3, x7; \ - adcs x24, x24, x14; \ - mul x14, x3, x8; \ - adcs x1, x1, x14; \ - mul x14, x3, x9; \ - adcs x0, x0, x14; \ - mul x14, x3, x10; \ - adcs x15, x15, x14; \ - mul x14, x3, x11; \ - adcs x16, x16, x14; \ - mul x14, x3, x12; \ - adcs x17, x17, x14; \ - mul x14, x3, x13; \ - adcs x19, x19, x14; \ - cset x20, hs; \ - umulh x14, x3, x5; \ - adds x23, x23, x14; \ - umulh x14, x3, x6; \ - adcs x24, x24, x14; \ - umulh x14, x3, x7; \ - adcs x1, x1, x14; \ - umulh x14, x3, x8; \ - adcs x0, x0, x14; \ - umulh x14, x3, x9; \ - adcs x15, x15, x14; \ - umulh x14, x3, x10; \ - adcs x16, x16, x14; \ - umulh x14, x3, x11; \ - adcs x17, x17, x14; \ - umulh x14, x3, x12; \ - adcs x19, x19, x14; \ - umulh x14, x3, x13; \ - adc x20, x20, x14; \ - mul x14, x4, x5; \ - adds x23, x23, x14; \ - mul x14, x4, x6; \ - adcs x24, x24, x14; \ - mul x14, x4, x7; \ - adcs x1, x1, x14; \ - mul x14, x4, x8; \ - adcs x0, x0, x14; \ - mul x14, x4, x9; \ - adcs x15, x15, x14; \ - mul x14, x4, x10; \ - adcs x16, x16, x14; \ - mul x14, x4, x11; \ - adcs x17, x17, x14; \ - mul x14, x4, x12; \ - adcs x19, x19, x14; \ - mul x14, x4, x13; \ - adcs x20, x20, x14; \ - cset x21, hs; \ - umulh x14, x4, x5; \ - adds x24, x24, x14; \ - umulh x14, x4, x6; \ - adcs x1, x1, x14; \ - umulh x14, x4, x7; \ - adcs x0, x0, x14; \ - umulh x14, x4, x8; \ - adcs x15, x15, x14; \ - umulh x14, x4, x9; \ - adcs x16, x16, x14; \ - umulh x14, x4, x10; \ - adcs x17, x17, x14; \ - umulh x14, x4, x11; \ - adcs x19, x19, x14; \ - umulh x14, x4, x12; \ - adcs x20, x20, x14; \ - umulh x14, x4, x13; \ - adc x21, x21, x14; \ - stp x22, x23, [P0+48]; \ - ldr x3, [P1+64]; \ - mul x14, x3, x5; \ - adds x24, x24, x14; \ - mul x14, x3, x6; \ - adcs x1, x1, x14; \ - mul x14, x3, x7; \ - adcs x0, x0, x14; \ - mul x14, x3, x8; \ - adcs x15, x15, x14; \ - mul x14, x3, x9; \ - adcs x16, x16, x14; \ - mul x14, x3, x10; \ - adcs x17, x17, x14; \ - mul x14, x3, x11; \ - adcs x19, x19, x14; \ - mul x14, x3, x12; \ - adcs x20, x20, x14; \ - mul x14, x3, x13; \ - adc x21, x21, x14; \ - umulh x14, x3, x5; \ - adds x1, x1, x14; \ - umulh x14, x3, x6; \ - adcs x0, x0, x14; \ - umulh x14, x3, x7; \ - adcs x15, x15, x14; \ - umulh x14, x3, x8; \ - adcs x16, x16, x14; \ - umulh x14, x3, x9; \ - adcs x17, x17, x14; \ - umulh x14, x3, x10; \ - adcs x19, x19, x14; \ - umulh x14, x3, x11; \ - adcs x20, x20, x14; \ - umulh x14, x3, x12; \ - adc x21, x21, x14; \ - cmp xzr, xzr; \ - ldp x5, x6, [P0]; \ - extr x14, x1, x24, #9; \ - adcs x5, x5, x14; \ - extr x14, x0, x1, #9; \ - adcs x6, x6, x14; \ - ldp x7, x8, [P0+16]; \ - extr x14, x15, x0, #9; \ - adcs x7, x7, x14; \ - extr x14, x16, x15, #9; \ - adcs x8, x8, x14; \ - ldp x9, x10, [P0+32]; \ - extr x14, x17, x16, #9; \ - adcs x9, x9, x14; \ - extr x14, x19, x17, #9; \ - adcs x10, x10, x14; \ - ldp x11, x12, [P0+48]; \ - extr x14, x20, x19, #9; \ - adcs x11, x11, x14; \ - extr x14, x21, x20, #9; \ - adcs x12, x12, x14; \ - orr x13, x24, #0xfffffffffffffe00; \ - lsr x14, x21, #9; \ - adcs x13, x13, x14; \ - sbcs x5, x5, xzr; \ - sbcs x6, x6, xzr; \ - sbcs x7, x7, xzr; \ - sbcs x8, x8, xzr; \ - sbcs x9, x9, xzr; \ - sbcs x10, x10, xzr; \ - sbcs x11, x11, xzr; \ - sbcs x12, x12, xzr; \ - sbc x13, x13, xzr; \ - and x13, x13, #0x1ff; \ - stp x5, x6, [P0]; \ - stp x7, x8, [P0+16]; \ - stp x9, x10, [P0+32]; \ - stp x11, x12, [P0+48]; \ - str x13, [P0+64] - -// Corresponds exactly to bignum_sqr_p521_alt + add x0, P0; \ + add x1, P1; \ + add x2, P2; \ + bl local_mul_p521 #define sqr_p521(P0,P1) \ - ldp x2, x3, [P1]; \ - mul x11, x2, x3; \ - umulh x12, x2, x3; \ - ldp x4, x5, [P1+16]; \ - mul x10, x2, x4; \ - umulh x13, x2, x4; \ - adds x12, x12, x10; \ - ldp x6, x7, [P1+32]; \ - mul x10, x2, x5; \ - umulh x14, x2, x5; \ - adcs x13, x13, x10; \ - ldp x8, x9, [P1+48]; \ - mul x10, x2, x6; \ - umulh x15, x2, x6; \ - adcs x14, x14, x10; \ - mul x10, x2, x7; \ - umulh x16, x2, x7; \ - adcs x15, x15, x10; \ - mul x10, x2, x8; \ - umulh x17, x2, x8; \ - adcs x16, x16, x10; \ - mul x10, x2, x9; \ - umulh x19, x2, x9; \ - adcs x17, x17, x10; \ - adc x19, x19, xzr; \ - mul x10, x3, x4; \ - adds x13, x13, x10; \ - mul x10, x3, x5; \ - adcs x14, x14, x10; \ - mul x10, x3, x6; \ - adcs x15, x15, x10; \ - mul x10, x3, x7; \ - adcs x16, x16, x10; \ - mul x10, x3, x8; \ - adcs x17, x17, x10; \ - mul x10, x3, x9; \ - adcs x19, x19, x10; \ - cset x20, hs; \ - umulh x10, x3, x4; \ - adds x14, x14, x10; \ - umulh x10, x3, x5; \ - adcs x15, x15, x10; \ - umulh x10, x3, x6; \ - adcs x16, x16, x10; \ - umulh x10, x3, x7; \ - adcs x17, x17, x10; \ - umulh x10, x3, x8; \ - adcs x19, x19, x10; \ - umulh x10, x3, x9; \ - adc x20, x20, x10; \ - mul x10, x6, x7; \ - umulh x21, x6, x7; \ - adds x20, x20, x10; \ - adc x21, x21, xzr; \ - mul x10, x4, x5; \ - adds x15, x15, x10; \ - mul x10, x4, x6; \ - adcs x16, x16, x10; \ - mul x10, x4, x7; \ - adcs x17, x17, x10; \ - mul x10, x4, x8; \ - adcs x19, x19, x10; \ - mul x10, x4, x9; \ - adcs x20, x20, x10; \ - mul x10, x6, x8; \ - adcs x21, x21, x10; \ - cset x22, hs; \ - umulh x10, x4, x5; \ - adds x16, x16, x10; \ - umulh x10, x4, x6; \ - adcs x17, x17, x10; \ - umulh x10, x4, x7; \ - adcs x19, x19, x10; \ - umulh x10, x4, x8; \ - adcs x20, x20, x10; \ - umulh x10, x4, x9; \ - adcs x21, x21, x10; \ - umulh x10, x6, x8; \ - adc x22, x22, x10; \ - mul x10, x7, x8; \ - umulh x23, x7, x8; \ - adds x22, x22, x10; \ - adc x23, x23, xzr; \ - mul x10, x5, x6; \ - adds x17, x17, x10; \ - mul x10, x5, x7; \ - adcs x19, x19, x10; \ - mul x10, x5, x8; \ - adcs x20, x20, x10; \ - mul x10, x5, x9; \ - adcs x21, x21, x10; \ - mul x10, x6, x9; \ - adcs x22, x22, x10; \ - mul x10, x7, x9; \ - adcs x23, x23, x10; \ - cset x24, hs; \ - umulh x10, x5, x6; \ - adds x19, x19, x10; \ - umulh x10, x5, x7; \ - adcs x20, x20, x10; \ - umulh x10, x5, x8; \ - adcs x21, x21, x10; \ - umulh x10, x5, x9; \ - adcs x22, x22, x10; \ - umulh x10, x6, x9; \ - adcs x23, x23, x10; \ - umulh x10, x7, x9; \ - adc x24, x24, x10; \ - mul x10, x8, x9; \ - umulh x25, x8, x9; \ - adds x24, x24, x10; \ - adc x25, x25, xzr; \ - adds x11, x11, x11; \ - adcs x12, x12, x12; \ - adcs x13, x13, x13; \ - adcs x14, x14, x14; \ - adcs x15, x15, x15; \ - adcs x16, x16, x16; \ - adcs x17, x17, x17; \ - adcs x19, x19, x19; \ - adcs x20, x20, x20; \ - adcs x21, x21, x21; \ - adcs x22, x22, x22; \ - adcs x23, x23, x23; \ - adcs x24, x24, x24; \ - adcs x25, x25, x25; \ - cset x0, hs; \ - umulh x10, x2, x2; \ - adds x11, x11, x10; \ - mul x10, x3, x3; \ - adcs x12, x12, x10; \ - umulh x10, x3, x3; \ - adcs x13, x13, x10; \ - mul x10, x4, x4; \ - adcs x14, x14, x10; \ - umulh x10, x4, x4; \ - adcs x15, x15, x10; \ - mul x10, x5, x5; \ - adcs x16, x16, x10; \ - umulh x10, x5, x5; \ - adcs x17, x17, x10; \ - mul x10, x6, x6; \ - adcs x19, x19, x10; \ - umulh x10, x6, x6; \ - adcs x20, x20, x10; \ - mul x10, x7, x7; \ - adcs x21, x21, x10; \ - umulh x10, x7, x7; \ - adcs x22, x22, x10; \ - mul x10, x8, x8; \ - adcs x23, x23, x10; \ - umulh x10, x8, x8; \ - adcs x24, x24, x10; \ - mul x10, x9, x9; \ - adcs x25, x25, x10; \ - umulh x10, x9, x9; \ - adc x0, x0, x10; \ - ldr x1, [P1+64]; \ - add x1, x1, x1; \ - mul x10, x1, x2; \ - adds x19, x19, x10; \ - umulh x10, x1, x2; \ - adcs x20, x20, x10; \ - mul x10, x1, x4; \ - adcs x21, x21, x10; \ - umulh x10, x1, x4; \ - adcs x22, x22, x10; \ - mul x10, x1, x6; \ - adcs x23, x23, x10; \ - umulh x10, x1, x6; \ - adcs x24, x24, x10; \ - mul x10, x1, x8; \ - adcs x25, x25, x10; \ - umulh x10, x1, x8; \ - adcs x0, x0, x10; \ - lsr x4, x1, #1; \ - mul x4, x4, x4; \ - adc x4, x4, xzr; \ - mul x10, x1, x3; \ - adds x20, x20, x10; \ - umulh x10, x1, x3; \ - adcs x21, x21, x10; \ - mul x10, x1, x5; \ - adcs x22, x22, x10; \ - umulh x10, x1, x5; \ - adcs x23, x23, x10; \ - mul x10, x1, x7; \ - adcs x24, x24, x10; \ - umulh x10, x1, x7; \ - adcs x25, x25, x10; \ - mul x10, x1, x9; \ - adcs x0, x0, x10; \ - umulh x10, x1, x9; \ - adc x4, x4, x10; \ - mul x2, x2, x2; \ - cmp xzr, xzr; \ - extr x10, x20, x19, #9; \ - adcs x2, x2, x10; \ - extr x10, x21, x20, #9; \ - adcs x11, x11, x10; \ - extr x10, x22, x21, #9; \ - adcs x12, x12, x10; \ - extr x10, x23, x22, #9; \ - adcs x13, x13, x10; \ - extr x10, x24, x23, #9; \ - adcs x14, x14, x10; \ - extr x10, x25, x24, #9; \ - adcs x15, x15, x10; \ - extr x10, x0, x25, #9; \ - adcs x16, x16, x10; \ - extr x10, x4, x0, #9; \ - adcs x17, x17, x10; \ - orr x19, x19, #0xfffffffffffffe00; \ - lsr x10, x4, #9; \ - adcs x19, x19, x10; \ - sbcs x2, x2, xzr; \ - sbcs x11, x11, xzr; \ - sbcs x12, x12, xzr; \ - sbcs x13, x13, xzr; \ - sbcs x14, x14, xzr; \ - sbcs x15, x15, xzr; \ - sbcs x16, x16, xzr; \ - sbcs x17, x17, xzr; \ - sbc x19, x19, xzr; \ - and x19, x19, #0x1ff; \ - stp x2, x11, [P0]; \ - stp x12, x13, [P0+16]; \ - stp x14, x15, [P0+32]; \ - stp x16, x17, [P0+48]; \ - str x19, [P0+64] - -// Corresponds exactly to bignum_sub_p521 + add x0, P0; \ + add x1, P1; \ + bl local_sqr_p521 #define sub_p521(P0,P1,P2) \ - ldp x5, x6, [P1]; \ - ldp x4, x3, [P2]; \ - subs x5, x5, x4; \ - sbcs x6, x6, x3; \ - ldp x7, x8, [P1+16]; \ - ldp x4, x3, [P2+16]; \ - sbcs x7, x7, x4; \ - sbcs x8, x8, x3; \ - ldp x9, x10, [P1+32]; \ - ldp x4, x3, [P2+32]; \ - sbcs x9, x9, x4; \ - sbcs x10, x10, x3; \ - ldp x11, x12, [P1+48]; \ - ldp x4, x3, [P2+48]; \ - sbcs x11, x11, x4; \ - sbcs x12, x12, x3; \ - ldr x13, [P1+64]; \ - ldr x4, [P2+64]; \ - sbcs x13, x13, x4; \ - sbcs x5, x5, xzr; \ - sbcs x6, x6, xzr; \ - sbcs x7, x7, xzr; \ - sbcs x8, x8, xzr; \ - sbcs x9, x9, xzr; \ - sbcs x10, x10, xzr; \ - sbcs x11, x11, xzr; \ - sbcs x12, x12, xzr; \ - sbcs x13, x13, xzr; \ - and x13, x13, #0x1ff; \ - stp x5, x6, [P0]; \ - stp x7, x8, [P0+16]; \ - stp x9, x10, [P0+32]; \ - stp x11, x12, [P0+48]; \ - str x13, [P0+64] + add x0, P0; \ + add x1, P1; \ + add x2, P2; \ + bl local_sub_p521 S2N_BN_SYMBOL(p521_jmixadd): @@ -729,6 +106,7 @@ S2N_BN_SYMBOL(p521_jmixadd): stp x23, x24, [sp, #-16]! stp x25, x26, [sp, #-16]! stp x27, x28, [sp, #-16]! + stp x29, x30, [sp, #-16]! sub sp, sp, NSPACE // Move the input arguments to stable places @@ -754,30 +132,1209 @@ S2N_BN_SYMBOL(p521_jmixadd): mul_p521(zzx1,zz,x_1) mul_p521(zzx2,zz,x2a) - sub_p521(x_3,ww,zzx1) + sub_p521(resx,ww,zzx1) sub_p521(t1,zzx2,zzx1) - mul_p521(z_3,xd,z_1) + mul_p521(resz,xd,z_1) - sub_p521(x_3,x_3,zzx2) + sub_p521(resx,resx,zzx2) - sub_p521(t2,zzx1,x_3) + sub_p521(t2,zzx1,resx) mul_p521(t1,t1,y_1) mul_p521(t2,yd,t2) - sub_p521(y_3,t2,t1) + sub_p521(resy,t2,t1) + +// Test if z_1 = 0 to decide if p1 = 0 (up to projective equivalence) + + ldp x0, x1, [z_1] + orr x0, x0, x1 + ldp x2, x3, [z_1+16] + orr x2, x2, x3 + ldp x4, x5, [z_1+32] + orr x4, x4, x5 + ldp x6, x7, [z_1+48] + orr x6, x6, x7 + ldr x8, [z_1+64] + orr x0, x0, x2 + orr x4, x4, x6 + orr x0, x0, x4 + orr x0, x0, x8 + cmp x0, xzr + +// Multiplex: if p1 <> 0 just copy the computed result from the staging area. +// If p1 = 0 then return the point p2 augmented with an extra z = 1 +// coordinate, hence giving 0 + p2 = p2 for the final result. + + ldp x0, x1, [resx] + ldp x20, x21, [x_2] + csel x0, x0, x20, ne + csel x1, x1, x21, ne + ldp x2, x3, [resx+16] + ldp x20, x21, [x_2+16] + csel x2, x2, x20, ne + csel x3, x3, x21, ne + ldp x4, x5, [resx+32] + ldp x20, x21, [x_2+32] + csel x4, x4, x20, ne + csel x5, x5, x21, ne + ldp x6, x7, [resx+48] + ldp x20, x21, [x_2+48] + csel x6, x6, x20, ne + csel x7, x7, x21, ne + ldr x8, [resx+64] + ldr x20, [x_2+64] + csel x8, x8, x20, ne + + ldp x10, x11, [resy] + ldp x20, x21, [y_2] + csel x10, x10, x20, ne + csel x11, x11, x21, ne + ldp x12, x13, [resy+16] + ldp x20, x21, [y_2+16] + csel x12, x12, x20, ne + csel x13, x13, x21, ne + ldp x14, x15, [resy+32] + ldp x20, x21, [y_2+32] + csel x14, x14, x20, ne + csel x15, x15, x21, ne + ldp x16, x17, [resy+48] + ldp x20, x21, [y_2+48] + csel x16, x16, x20, ne + csel x17, x17, x21, ne + ldr x19, [resy+64] + ldr x20, [y_2+64] + csel x19, x19, x20, ne + + stp x0, x1, [x_3] + stp x2, x3, [x_3+16] + stp x4, x5, [x_3+32] + stp x6, x7, [x_3+48] + str x8, [x_3+64] + stp x10, x11, [y_3] + stp x12, x13, [y_3+16] + stp x14, x15, [y_3+32] + stp x16, x17, [y_3+48] + str x19, [y_3+64] + + ldp x0, x1, [resz] + mov x20, #1 + csel x0, x0, x20, ne + csel x1, x1, xzr, ne + ldp x2, x3, [resz+16] + csel x2, x2, xzr, ne + csel x3, x3, xzr, ne + ldp x4, x5, [resz+32] + csel x4, x4, xzr, ne + csel x5, x5, xzr, ne + ldp x6, x7, [resz+48] + csel x6, x6, xzr, ne + csel x7, x7, xzr, ne + ldr x8, [resz+64] + csel x8, x8, xzr, ne + + stp x0, x1, [z_3] + stp x2, x3, [z_3+16] + stp x4, x5, [z_3+32] + stp x6, x7, [z_3+48] + str x8, [z_3+64] // Restore stack and registers add sp, sp, NSPACE + ldp x29, x30, [sp], 16 ldp x27, x28, [sp], 16 ldp x25, x26, [sp], 16 ldp x23, x24, [sp], 16 ldp x21, x22, [sp], 16 ldp x19, x20, [sp], 16 + ret + +// Local versions of the three field operations, almost identical to +// bignum_mul_p521, bignum_sqr_p521 and bignum_sub_p521 except for +// avoiding all intial register save-restore, and in the case of +// local_mul_p521, using the tmp buffer as temporary storage and +// avoiding x26. + +local_mul_p521: + ldp x3, x4, [x1] + ldp x5, x6, [x1, #16] + ldp x7, x8, [x2] + ldp x9, x10, [x2, #16] + mul x11, x3, x7 + mul x15, x4, x8 + mul x16, x5, x9 + mul x17, x6, x10 + umulh x19, x3, x7 + adds x15, x15, x19 + umulh x19, x4, x8 + adcs x16, x16, x19 + umulh x19, x5, x9 + adcs x17, x17, x19 + umulh x19, x6, x10 + adc x19, x19, xzr + adds x12, x15, x11 + adcs x15, x16, x15 + adcs x16, x17, x16 + adcs x17, x19, x17 + adc x19, xzr, x19 + adds x13, x15, x11 + adcs x14, x16, x12 + adcs x15, x17, x15 + adcs x16, x19, x16 + adcs x17, xzr, x17 + adc x19, xzr, x19 + subs x24, x5, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x9 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x16, x16, x23 + eor x22, x22, x21 + adcs x17, x17, x22 + adc x19, x19, x21 + subs x24, x3, x4 + cneg x24, x24, lo + csetm x21, lo + subs x22, x8, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x12, x12, x23 + eor x22, x22, x21 + adcs x13, x13, x22 + adcs x14, x14, x21 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x15, x15, x23 + eor x22, x22, x21 + adcs x16, x16, x22 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x13, x13, x23 + eor x22, x22, x21 + adcs x14, x14, x22 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + lsl x21, x11, #9 + extr x11, x12, x11, #55 + extr x12, x13, x12, #55 + extr x13, x14, x13, #55 + lsr x14, x14, #55 + ldp x3, x4, [x1, #32] + ldp x5, x6, [x1, #48] + ldp x7, x8, [x2, #32] + ldp x9, x10, [x2, #48] + stp x15, x16, [tmp] + stp x17, x19, [tmp+16] + stp x21, x11, [tmp+32] + stp x12, x13, [tmp+48] + str x14, [tmp+64] + mul x11, x3, x7 + mul x15, x4, x8 + mul x16, x5, x9 + mul x17, x6, x10 + umulh x19, x3, x7 + adds x15, x15, x19 + umulh x19, x4, x8 + adcs x16, x16, x19 + umulh x19, x5, x9 + adcs x17, x17, x19 + umulh x19, x6, x10 + adc x19, x19, xzr + adds x12, x15, x11 + adcs x15, x16, x15 + adcs x16, x17, x16 + adcs x17, x19, x17 + adc x19, xzr, x19 + adds x13, x15, x11 + adcs x14, x16, x12 + adcs x15, x17, x15 + adcs x16, x19, x16 + adcs x17, xzr, x17 + adc x19, xzr, x19 + subs x24, x5, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x9 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x16, x16, x23 + eor x22, x22, x21 + adcs x17, x17, x22 + adc x19, x19, x21 + subs x24, x3, x4 + cneg x24, x24, lo + csetm x21, lo + subs x22, x8, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x12, x12, x23 + eor x22, x22, x21 + adcs x13, x13, x22 + adcs x14, x14, x21 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x15, x15, x23 + eor x22, x22, x21 + adcs x16, x16, x22 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x13, x13, x23 + eor x22, x22, x21 + adcs x14, x14, x22 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + ldp x23, x22, [tmp] + adds x11, x11, x23 + adcs x12, x12, x22 + stp x11, x12, [tmp] + ldp x23, x22, [tmp+16] + adcs x13, x13, x23 + adcs x14, x14, x22 + stp x13, x14, [tmp+16] + ldp x23, x22, [tmp+32] + adcs x15, x15, x23 + adcs x16, x16, x22 + stp x15, x16, [tmp+32] + ldp x23, x22, [tmp+48] + adcs x17, x17, x23 + adcs x19, x19, x22 + stp x17, x19, [tmp+48] + ldr x21, [tmp+64] + adc x21, x21, xzr + str x21, [tmp+64] + ldp x23, x22, [x1] + subs x3, x3, x23 + sbcs x4, x4, x22 + ldp x23, x22, [x1, #16] + sbcs x5, x5, x23 + sbcs x6, x6, x22 + csetm x24, lo + ldp x23, x22, [x2] + subs x7, x23, x7 + sbcs x8, x22, x8 + ldp x23, x22, [x2, #16] + sbcs x9, x23, x9 + sbcs x10, x22, x10 + csetm x25, lo + eor x3, x3, x24 + subs x3, x3, x24 + eor x4, x4, x24 + sbcs x4, x4, x24 + eor x5, x5, x24 + sbcs x5, x5, x24 + eor x6, x6, x24 + sbc x6, x6, x24 + eor x7, x7, x25 + subs x7, x7, x25 + eor x8, x8, x25 + sbcs x8, x8, x25 + eor x9, x9, x25 + sbcs x9, x9, x25 + eor x10, x10, x25 + sbc x10, x10, x25 + eor x25, x25, x24 + mul x11, x3, x7 + mul x15, x4, x8 + mul x16, x5, x9 + mul x17, x6, x10 + umulh x19, x3, x7 + adds x15, x15, x19 + umulh x19, x4, x8 + adcs x16, x16, x19 + umulh x19, x5, x9 + adcs x17, x17, x19 + umulh x19, x6, x10 + adc x19, x19, xzr + adds x12, x15, x11 + adcs x15, x16, x15 + adcs x16, x17, x16 + adcs x17, x19, x17 + adc x19, xzr, x19 + adds x13, x15, x11 + adcs x14, x16, x12 + adcs x15, x17, x15 + adcs x16, x19, x16 + adcs x17, xzr, x17 + adc x19, xzr, x19 + subs x24, x5, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x9 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x16, x16, x23 + eor x22, x22, x21 + adcs x17, x17, x22 + adc x19, x19, x21 + subs x24, x3, x4 + cneg x24, x24, lo + csetm x21, lo + subs x22, x8, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x12, x12, x23 + eor x22, x22, x21 + adcs x13, x13, x22 + adcs x14, x14, x21 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x15, x15, x23 + eor x22, x22, x21 + adcs x16, x16, x22 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x13, x13, x23 + eor x22, x22, x21 + adcs x14, x14, x22 + adcs x15, x15, x21 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x3, x6 + cneg x24, x24, lo + csetm x21, lo + subs x22, x10, x7 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + subs x24, x4, x5 + cneg x24, x24, lo + csetm x21, lo + subs x22, x9, x8 + cneg x22, x22, lo + mul x23, x24, x22 + umulh x22, x24, x22 + cinv x21, x21, lo + cmn x21, #1 + eor x23, x23, x21 + adcs x14, x14, x23 + eor x22, x22, x21 + adcs x15, x15, x22 + adcs x16, x16, x21 + adcs x17, x17, x21 + adc x19, x19, x21 + ldp x3, x4, [tmp] + ldp x5, x6, [tmp+16] + eor x11, x11, x25 + adds x11, x11, x3 + eor x12, x12, x25 + adcs x12, x12, x4 + eor x13, x13, x25 + adcs x13, x13, x5 + eor x14, x14, x25 + adcs x14, x14, x6 + eor x15, x15, x25 + ldp x7, x8, [tmp+32] + ldp x9, x10, [tmp+48] + ldr x20, [tmp+64] + adcs x15, x15, x7 + eor x16, x16, x25 + adcs x16, x16, x8 + eor x17, x17, x25 + adcs x17, x17, x9 + eor x19, x19, x25 + adcs x19, x19, x10 + adc x21, x20, xzr + adds x15, x15, x3 + adcs x16, x16, x4 + adcs x17, x17, x5 + adcs x19, x19, x6 + and x25, x25, #0x1ff + lsl x24, x11, #9 + orr x24, x24, x25 + adcs x7, x7, x24 + extr x24, x12, x11, #55 + adcs x8, x8, x24 + extr x24, x13, x12, #55 + adcs x9, x9, x24 + extr x24, x14, x13, #55 + adcs x10, x10, x24 + lsr x24, x14, #55 + adc x20, x24, x20 + ldr x6, [x2, #64] + ldp x3, x4, [x1] + and x23, x3, #0xfffffffffffff + mul x23, x6, x23 + ldr x14, [x1, #64] + ldp x11, x12, [x2] + and x24, x11, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + extr x24, x4, x3, #52 + and x24, x24, #0xfffffffffffff + mul x22, x6, x24 + extr x24, x12, x11, #52 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x24, x22, x23, #12 + adds x15, x15, x24 + ldp x5, x3, [x1, #16] + ldp x13, x11, [x2, #16] + extr x24, x5, x4, #40 + and x24, x24, #0xfffffffffffff + mul x23, x6, x24 + extr x24, x13, x12, #40 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + lsr x24, x22, #52 + add x23, x23, x24 + lsl x22, x22, #12 + extr x24, x23, x22, #24 + adcs x16, x16, x24 + extr x24, x3, x5, #28 + and x24, x24, #0xfffffffffffff + mul x22, x6, x24 + extr x24, x11, x13, #28 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x24, x22, x23, #36 + adcs x17, x17, x24 + and x25, x16, x17 + ldp x4, x5, [x1, #32] + ldp x12, x13, [x2, #32] + extr x24, x4, x3, #16 + and x24, x24, #0xfffffffffffff + mul x23, x6, x24 + extr x24, x12, x11, #16 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + lsl x21, x21, #48 + add x23, x23, x21 + lsr x24, x22, #52 + add x23, x23, x24 + lsl x22, x22, #12 + extr x24, x23, x22, #48 + adcs x19, x19, x24 + and x25, x25, x19 + lsr x24, x4, #4 + and x24, x24, #0xfffffffffffff + mul x22, x6, x24 + lsr x24, x12, #4 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x21, x22, x23, #60 + extr x24, x5, x4, #56 + and x24, x24, #0xfffffffffffff + mul x23, x6, x24 + extr x24, x13, x12, #56 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + lsr x24, x22, #52 + add x23, x23, x24 + lsl x21, x21, #8 + extr x24, x23, x21, #8 + adcs x7, x7, x24 + and x25, x25, x7 + ldp x3, x4, [x1, #48] + ldp x11, x12, [x2, #48] + extr x24, x3, x5, #44 + and x24, x24, #0xfffffffffffff + mul x22, x6, x24 + extr x24, x11, x13, #44 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x24, x22, x23, #20 + adcs x8, x8, x24 + and x25, x25, x8 + extr x24, x4, x3, #32 + and x24, x24, #0xfffffffffffff + mul x23, x6, x24 + extr x24, x12, x11, #32 + and x24, x24, #0xfffffffffffff + mul x24, x14, x24 + add x23, x23, x24 + lsr x24, x22, #52 + add x23, x23, x24 + lsl x22, x22, #12 + extr x24, x23, x22, #32 + adcs x9, x9, x24 + and x25, x25, x9 + lsr x24, x4, #20 + mul x22, x6, x24 + lsr x24, x12, #20 + mul x24, x14, x24 + add x22, x22, x24 + lsr x24, x23, #52 + add x22, x22, x24 + lsl x23, x23, #12 + extr x24, x22, x23, #44 + adcs x10, x10, x24 + and x25, x25, x10 + mul x24, x6, x14 + lsr x22, x22, #44 + add x24, x24, x22 + adc x20, x20, x24 + lsr x22, x20, #9 + orr x20, x20, #0xfffffffffffffe00 + cmp xzr, xzr + adcs xzr, x15, x22 + adcs xzr, x25, xzr + adcs xzr, x20, xzr + adcs x15, x15, x22 + adcs x16, x16, xzr + adcs x17, x17, xzr + adcs x19, x19, xzr + adcs x7, x7, xzr + adcs x8, x8, xzr + adcs x9, x9, xzr + adcs x10, x10, xzr + adc x20, x20, xzr + and x22, x15, #0x1ff + extr x15, x16, x15, #9 + extr x16, x17, x16, #9 + stp x15, x16, [x0] + extr x17, x19, x17, #9 + extr x19, x7, x19, #9 + stp x17, x19, [x0, #16] + extr x7, x8, x7, #9 + extr x8, x9, x8, #9 + stp x7, x8, [x0, #32] + extr x9, x10, x9, #9 + extr x10, x20, x10, #9 + stp x9, x10, [x0, #48] + str x22, [x0, #64] + ret + +local_sqr_p521: + ldp x2, x3, [x1] + ldp x4, x5, [x1, #16] + ldp x6, x7, [x1, #32] + ldp x8, x9, [x1, #48] + mul x12, x6, x8 + mul x17, x7, x9 + umulh x22, x6, x8 + subs x23, x6, x7 + cneg x23, x23, cc + csetm x11, cc + subs x10, x9, x8 + cneg x10, x10, cc + mul x16, x23, x10 + umulh x10, x23, x10 + cinv x11, x11, cc + eor x16, x16, x11 + eor x10, x10, x11 + adds x13, x12, x22 + adc x22, x22, xzr + umulh x23, x7, x9 + adds x13, x13, x17 + adcs x22, x22, x23 + adc x23, x23, xzr + adds x22, x22, x17 + adc x23, x23, xzr + cmn x11, #0x1 + adcs x13, x13, x16 + adcs x22, x22, x10 + adc x23, x23, x11 + adds x12, x12, x12 + adcs x13, x13, x13 + adcs x22, x22, x22 + adcs x23, x23, x23 + adc x19, xzr, xzr + mul x10, x6, x6 + mul x16, x7, x7 + mul x21, x6, x7 + umulh x11, x6, x6 + umulh x17, x7, x7 + umulh x20, x6, x7 + adds x11, x11, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x11, x11, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x12, x12, x16 + adcs x13, x13, x17 + adcs x22, x22, xzr + adcs x23, x23, xzr + adc x19, x19, xzr + mul x14, x8, x8 + mul x16, x9, x9 + mul x21, x8, x9 + umulh x15, x8, x8 + umulh x17, x9, x9 + umulh x20, x8, x9 + adds x15, x15, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x15, x15, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x14, x14, x22 + adcs x15, x15, x23 + adcs x16, x16, x19 + adc x17, x17, xzr + ldr x19, [x1, #64] + add x23, x19, x19 + mul x19, x19, x19 + and x21, x2, #0xfffffffffffff + mul x21, x23, x21 + extr x20, x3, x2, #52 + and x20, x20, #0xfffffffffffff + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x22, x20, x21, #12 + adds x10, x10, x22 + extr x21, x4, x3, #40 + and x21, x21, #0xfffffffffffff + mul x21, x23, x21 + lsr x22, x20, #52 + add x21, x21, x22 + lsl x20, x20, #12 + extr x22, x21, x20, #24 + adcs x11, x11, x22 + extr x20, x5, x4, #28 + and x20, x20, #0xfffffffffffff + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x22, x20, x21, #36 + adcs x12, x12, x22 + extr x21, x6, x5, #16 + and x21, x21, #0xfffffffffffff + mul x21, x23, x21 + lsr x22, x20, #52 + add x21, x21, x22 + lsl x20, x20, #12 + extr x22, x21, x20, #48 + adcs x13, x13, x22 + lsr x20, x6, #4 + and x20, x20, #0xfffffffffffff + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x24, x20, x21, #60 + extr x21, x7, x6, #56 + and x21, x21, #0xfffffffffffff + mul x21, x23, x21 + lsr x22, x20, #52 + add x21, x21, x22 + lsl x24, x24, #8 + extr x22, x21, x24, #8 + adcs x14, x14, x22 + extr x20, x8, x7, #44 + and x20, x20, #0xfffffffffffff + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x22, x20, x21, #20 + adcs x15, x15, x22 + extr x21, x9, x8, #32 + and x21, x21, #0xfffffffffffff + mul x21, x23, x21 + lsr x22, x20, #52 + add x21, x21, x22 + lsl x20, x20, #12 + extr x22, x21, x20, #32 + adcs x16, x16, x22 + lsr x20, x9, #20 + mul x20, x23, x20 + lsr x22, x21, #52 + add x20, x20, x22 + lsl x21, x21, #12 + extr x22, x20, x21, #44 + adcs x17, x17, x22 + lsr x20, x20, #44 + adc x19, x19, x20 + extr x21, x11, x10, #9 + extr x20, x12, x11, #9 + stp x21, x20, [x0] + extr x21, x13, x12, #9 + extr x20, x14, x13, #9 + stp x21, x20, [x0, #16] + extr x21, x15, x14, #9 + extr x20, x16, x15, #9 + stp x21, x20, [x0, #32] + extr x21, x17, x16, #9 + extr x20, x19, x17, #9 + stp x21, x20, [x0, #48] + and x22, x10, #0x1ff + lsr x19, x19, #9 + add x22, x22, x19 + str x22, [x0, #64] + mul x12, x2, x4 + mul x17, x3, x5 + umulh x22, x2, x4 + subs x23, x2, x3 + cneg x23, x23, cc + csetm x11, cc + subs x10, x5, x4 + cneg x10, x10, cc + mul x16, x23, x10 + umulh x10, x23, x10 + cinv x11, x11, cc + eor x16, x16, x11 + eor x10, x10, x11 + adds x13, x12, x22 + adc x22, x22, xzr + umulh x23, x3, x5 + adds x13, x13, x17 + adcs x22, x22, x23 + adc x23, x23, xzr + adds x22, x22, x17 + adc x23, x23, xzr + cmn x11, #0x1 + adcs x13, x13, x16 + adcs x22, x22, x10 + adc x23, x23, x11 + adds x12, x12, x12 + adcs x13, x13, x13 + adcs x22, x22, x22 + adcs x23, x23, x23 + adc x19, xzr, xzr + mul x10, x2, x2 + mul x16, x3, x3 + mul x21, x2, x3 + umulh x11, x2, x2 + umulh x17, x3, x3 + umulh x20, x2, x3 + adds x11, x11, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x11, x11, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x12, x12, x16 + adcs x13, x13, x17 + adcs x22, x22, xzr + adcs x23, x23, xzr + adc x19, x19, xzr + mul x14, x4, x4 + mul x16, x5, x5 + mul x21, x4, x5 + umulh x15, x4, x4 + umulh x17, x5, x5 + umulh x20, x4, x5 + adds x15, x15, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x15, x15, x21 + adcs x16, x16, x20 + adc x17, x17, xzr + adds x14, x14, x22 + adcs x15, x15, x23 + adcs x16, x16, x19 + adc x17, x17, xzr + ldp x21, x20, [x0] + adds x21, x21, x10 + adcs x20, x20, x11 + stp x21, x20, [x0] + ldp x21, x20, [x0, #16] + adcs x21, x21, x12 + adcs x20, x20, x13 + stp x21, x20, [x0, #16] + ldp x21, x20, [x0, #32] + adcs x21, x21, x14 + adcs x20, x20, x15 + stp x21, x20, [x0, #32] + ldp x21, x20, [x0, #48] + adcs x21, x21, x16 + adcs x20, x20, x17 + stp x21, x20, [x0, #48] + ldr x22, [x0, #64] + adc x22, x22, xzr + str x22, [x0, #64] + mul x10, x2, x6 + mul x14, x3, x7 + mul x15, x4, x8 + mul x16, x5, x9 + umulh x17, x2, x6 + adds x14, x14, x17 + umulh x17, x3, x7 + adcs x15, x15, x17 + umulh x17, x4, x8 + adcs x16, x16, x17 + umulh x17, x5, x9 + adc x17, x17, xzr + adds x11, x14, x10 + adcs x14, x15, x14 + adcs x15, x16, x15 + adcs x16, x17, x16 + adc x17, xzr, x17 + adds x12, x14, x10 + adcs x13, x15, x11 + adcs x14, x16, x14 + adcs x15, x17, x15 + adcs x16, xzr, x16 + adc x17, xzr, x17 + subs x22, x4, x5 + cneg x22, x22, cc + csetm x19, cc + subs x20, x9, x8 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x15, x15, x21 + eor x20, x20, x19 + adcs x16, x16, x20 + adc x17, x17, x19 + subs x22, x2, x3 + cneg x22, x22, cc + csetm x19, cc + subs x20, x7, x6 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x11, x11, x21 + eor x20, x20, x19 + adcs x12, x12, x20 + adcs x13, x13, x19 + adcs x14, x14, x19 + adcs x15, x15, x19 + adcs x16, x16, x19 + adc x17, x17, x19 + subs x22, x3, x5 + cneg x22, x22, cc + csetm x19, cc + subs x20, x9, x7 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x14, x14, x21 + eor x20, x20, x19 + adcs x15, x15, x20 + adcs x16, x16, x19 + adc x17, x17, x19 + subs x22, x2, x4 + cneg x22, x22, cc + csetm x19, cc + subs x20, x8, x6 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x12, x12, x21 + eor x20, x20, x19 + adcs x13, x13, x20 + adcs x14, x14, x19 + adcs x15, x15, x19 + adcs x16, x16, x19 + adc x17, x17, x19 + subs x22, x2, x5 + cneg x22, x22, cc + csetm x19, cc + subs x20, x9, x6 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x13, x13, x21 + eor x20, x20, x19 + adcs x14, x14, x20 + adcs x15, x15, x19 + adcs x16, x16, x19 + adc x17, x17, x19 + subs x22, x3, x4 + cneg x22, x22, cc + csetm x19, cc + subs x20, x8, x7 + cneg x20, x20, cc + mul x21, x22, x20 + umulh x20, x22, x20 + cinv x19, x19, cc + cmn x19, #0x1 + eor x21, x21, x19 + adcs x13, x13, x21 + eor x20, x20, x19 + adcs x14, x14, x20 + adcs x15, x15, x19 + adcs x16, x16, x19 + adc x17, x17, x19 + ldp x21, x20, [x0] + extr x2, x15, x14, #8 + adds x2, x2, x21 + extr x3, x16, x15, #8 + adcs x3, x3, x20 + ldp x21, x20, [x0, #16] + extr x4, x17, x16, #8 + adcs x4, x4, x21 + and x22, x3, x4 + lsr x5, x17, #8 + adcs x5, x5, x20 + and x22, x22, x5 + ldp x21, x20, [x0, #32] + lsl x6, x10, #1 + adcs x6, x6, x21 + and x22, x22, x6 + extr x7, x11, x10, #63 + adcs x7, x7, x20 + and x22, x22, x7 + ldp x21, x20, [x0, #48] + extr x8, x12, x11, #63 + adcs x8, x8, x21 + and x22, x22, x8 + extr x9, x13, x12, #63 + adcs x9, x9, x20 + and x22, x22, x9 + ldr x21, [x0, #64] + extr x10, x14, x13, #63 + and x10, x10, #0x1ff + adc x10, x21, x10 + lsr x20, x10, #9 + orr x10, x10, #0xfffffffffffffe00 + cmp xzr, xzr + adcs xzr, x2, x20 + adcs xzr, x22, xzr + adcs xzr, x10, xzr + adcs x2, x2, x20 + adcs x3, x3, xzr + adcs x4, x4, xzr + adcs x5, x5, xzr + adcs x6, x6, xzr + adcs x7, x7, xzr + adcs x8, x8, xzr + adcs x9, x9, xzr + adc x10, x10, xzr + and x10, x10, #0x1ff + stp x2, x3, [x0] + stp x4, x5, [x0, #16] + stp x6, x7, [x0, #32] + stp x8, x9, [x0, #48] + str x10, [x0, #64] + ret +local_sub_p521: + ldp x5, x6, [x1] + ldp x4, x3, [x2] + subs x5, x5, x4 + sbcs x6, x6, x3 + ldp x7, x8, [x1, #16] + ldp x4, x3, [x2, #16] + sbcs x7, x7, x4 + sbcs x8, x8, x3 + ldp x9, x10, [x1, #32] + ldp x4, x3, [x2, #32] + sbcs x9, x9, x4 + sbcs x10, x10, x3 + ldp x11, x12, [x1, #48] + ldp x4, x3, [x2, #48] + sbcs x11, x11, x4 + sbcs x12, x12, x3 + ldr x13, [x1, #64] + ldr x4, [x2, #64] + sbcs x13, x13, x4 + sbcs x5, x5, xzr + sbcs x6, x6, xzr + sbcs x7, x7, xzr + sbcs x8, x8, xzr + sbcs x9, x9, xzr + sbcs x10, x10, xzr + sbcs x11, x11, xzr + sbcs x12, x12, xzr + sbcs x13, x13, xzr + and x13, x13, #0x1ff + stp x5, x6, [x0] + stp x7, x8, [x0, #16] + stp x9, x10, [x0, #32] + stp x11, x12, [x0, #48] + str x13, [x0, #64] ret #if defined(__linux__) && defined(__ELF__) diff --git a/third_party/s2n-bignum/arm/p521/p521_jmixadd_alt.S b/third_party/s2n-bignum/arm/p521/p521_jmixadd_alt.S new file mode 100644 index 0000000000..783ca28cf8 --- /dev/null +++ b/third_party/s2n-bignum/arm/p521/p521_jmixadd_alt.S @@ -0,0 +1,882 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Point mixed addition on NIST curve P-521 in Jacobian coordinates +// +// extern void p521_jmixadd_alt +// (uint64_t p3[static 27],uint64_t p1[static 27],uint64_t p2[static 18]); +// +// Does p3 := p1 + p2 where all points are regarded as Jacobian triples. +// A Jacobian triple (x,y,z) represents affine point (x/z^2,y/z^3). +// The "mixed" part means that p2 only has x and y coordinates, with the +// implicit z coordinate assumed to be the identity. It is assumed that +// all the coordinates of the input points p1 and p2 are fully reduced +// mod p_521, that the z coordinate of p1 is nonzero and that neither +// p1 =~= p2 or p1 =~= -p2, where "=~=" means "represents the same affine +// point as". +// +// Standard ARM ABI: X0 = p3, X1 = p1, X2 = p2 +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(p521_jmixadd_alt) + S2N_BN_SYM_PRIVACY_DIRECTIVE(p521_jmixadd_alt) + + .text + .balign 4 + +// Size of individual field elements + +#define NUMSIZE 72 + +// Stable homes for input arguments during main code sequence + +#define input_z x26 +#define input_x x27 +#define input_y x28 + +// Pointer-offset pairs for inputs and outputs + +#define x_1 input_x, #0 +#define y_1 input_x, #NUMSIZE +#define z_1 input_x, #(2*NUMSIZE) + +#define x_2 input_y, #0 +#define y_2 input_y, #NUMSIZE + +#define x_3 input_z, #0 +#define y_3 input_z, #NUMSIZE +#define z_3 input_z, #(2*NUMSIZE) + +// Pointer-offset pairs for temporaries, with some aliasing +// NSPACE is the total stack needed for these temporaries + +#define zp2 sp, #(NUMSIZE*0) +#define ww sp, #(NUMSIZE*0) +#define resx sp, #(NUMSIZE*0) + +#define yd sp, #(NUMSIZE*1) +#define y2a sp, #(NUMSIZE*1) + +#define x2a sp, #(NUMSIZE*2) +#define zzx2 sp, #(NUMSIZE*2) + +#define zz sp, #(NUMSIZE*3) +#define t1 sp, #(NUMSIZE*3) + +#define t2 sp, #(NUMSIZE*4) +#define zzx1 sp, #(NUMSIZE*4) +#define resy sp, #(NUMSIZE*4) + +#define xd sp, #(NUMSIZE*5) +#define resz sp, #(NUMSIZE*5) + +#define NSPACE (NUMSIZE*6) + +// Corresponds exactly to bignum_mul_p521_alt + +#define mul_p521(P0,P1,P2) \ + ldp x3, x4, [P1]; \ + ldp x5, x6, [P2]; \ + mul x15, x3, x5; \ + umulh x16, x3, x5; \ + mul x14, x3, x6; \ + umulh x17, x3, x6; \ + adds x16, x16, x14; \ + ldp x7, x8, [P2+16]; \ + mul x14, x3, x7; \ + umulh x19, x3, x7; \ + adcs x17, x17, x14; \ + mul x14, x3, x8; \ + umulh x20, x3, x8; \ + adcs x19, x19, x14; \ + ldp x9, x10, [P2+32]; \ + mul x14, x3, x9; \ + umulh x21, x3, x9; \ + adcs x20, x20, x14; \ + mul x14, x3, x10; \ + umulh x22, x3, x10; \ + adcs x21, x21, x14; \ + ldp x11, x12, [P2+48]; \ + mul x14, x3, x11; \ + umulh x23, x3, x11; \ + adcs x22, x22, x14; \ + ldr x13, [P2+64]; \ + mul x14, x3, x12; \ + umulh x24, x3, x12; \ + adcs x23, x23, x14; \ + mul x14, x3, x13; \ + umulh x1, x3, x13; \ + adcs x24, x24, x14; \ + adc x1, x1, xzr; \ + mul x14, x4, x5; \ + adds x16, x16, x14; \ + mul x14, x4, x6; \ + adcs x17, x17, x14; \ + mul x14, x4, x7; \ + adcs x19, x19, x14; \ + mul x14, x4, x8; \ + adcs x20, x20, x14; \ + mul x14, x4, x9; \ + adcs x21, x21, x14; \ + mul x14, x4, x10; \ + adcs x22, x22, x14; \ + mul x14, x4, x11; \ + adcs x23, x23, x14; \ + mul x14, x4, x12; \ + adcs x24, x24, x14; \ + mul x14, x4, x13; \ + adcs x1, x1, x14; \ + cset x0, hs; \ + umulh x14, x4, x5; \ + adds x17, x17, x14; \ + umulh x14, x4, x6; \ + adcs x19, x19, x14; \ + umulh x14, x4, x7; \ + adcs x20, x20, x14; \ + umulh x14, x4, x8; \ + adcs x21, x21, x14; \ + umulh x14, x4, x9; \ + adcs x22, x22, x14; \ + umulh x14, x4, x10; \ + adcs x23, x23, x14; \ + umulh x14, x4, x11; \ + adcs x24, x24, x14; \ + umulh x14, x4, x12; \ + adcs x1, x1, x14; \ + umulh x14, x4, x13; \ + adc x0, x0, x14; \ + stp x15, x16, [P0]; \ + ldp x3, x4, [P1+16]; \ + mul x14, x3, x5; \ + adds x17, x17, x14; \ + mul x14, x3, x6; \ + adcs x19, x19, x14; \ + mul x14, x3, x7; \ + adcs x20, x20, x14; \ + mul x14, x3, x8; \ + adcs x21, x21, x14; \ + mul x14, x3, x9; \ + adcs x22, x22, x14; \ + mul x14, x3, x10; \ + adcs x23, x23, x14; \ + mul x14, x3, x11; \ + adcs x24, x24, x14; \ + mul x14, x3, x12; \ + adcs x1, x1, x14; \ + mul x14, x3, x13; \ + adcs x0, x0, x14; \ + cset x15, hs; \ + umulh x14, x3, x5; \ + adds x19, x19, x14; \ + umulh x14, x3, x6; \ + adcs x20, x20, x14; \ + umulh x14, x3, x7; \ + adcs x21, x21, x14; \ + umulh x14, x3, x8; \ + adcs x22, x22, x14; \ + umulh x14, x3, x9; \ + adcs x23, x23, x14; \ + umulh x14, x3, x10; \ + adcs x24, x24, x14; \ + umulh x14, x3, x11; \ + adcs x1, x1, x14; \ + umulh x14, x3, x12; \ + adcs x0, x0, x14; \ + umulh x14, x3, x13; \ + adc x15, x15, x14; \ + mul x14, x4, x5; \ + adds x19, x19, x14; \ + mul x14, x4, x6; \ + adcs x20, x20, x14; \ + mul x14, x4, x7; \ + adcs x21, x21, x14; \ + mul x14, x4, x8; \ + adcs x22, x22, x14; \ + mul x14, x4, x9; \ + adcs x23, x23, x14; \ + mul x14, x4, x10; \ + adcs x24, x24, x14; \ + mul x14, x4, x11; \ + adcs x1, x1, x14; \ + mul x14, x4, x12; \ + adcs x0, x0, x14; \ + mul x14, x4, x13; \ + adcs x15, x15, x14; \ + cset x16, hs; \ + umulh x14, x4, x5; \ + adds x20, x20, x14; \ + umulh x14, x4, x6; \ + adcs x21, x21, x14; \ + umulh x14, x4, x7; \ + adcs x22, x22, x14; \ + umulh x14, x4, x8; \ + adcs x23, x23, x14; \ + umulh x14, x4, x9; \ + adcs x24, x24, x14; \ + umulh x14, x4, x10; \ + adcs x1, x1, x14; \ + umulh x14, x4, x11; \ + adcs x0, x0, x14; \ + umulh x14, x4, x12; \ + adcs x15, x15, x14; \ + umulh x14, x4, x13; \ + adc x16, x16, x14; \ + stp x17, x19, [P0+16]; \ + ldp x3, x4, [P1+32]; \ + mul x14, x3, x5; \ + adds x20, x20, x14; \ + mul x14, x3, x6; \ + adcs x21, x21, x14; \ + mul x14, x3, x7; \ + adcs x22, x22, x14; \ + mul x14, x3, x8; \ + adcs x23, x23, x14; \ + mul x14, x3, x9; \ + adcs x24, x24, x14; \ + mul x14, x3, x10; \ + adcs x1, x1, x14; \ + mul x14, x3, x11; \ + adcs x0, x0, x14; \ + mul x14, x3, x12; \ + adcs x15, x15, x14; \ + mul x14, x3, x13; \ + adcs x16, x16, x14; \ + cset x17, hs; \ + umulh x14, x3, x5; \ + adds x21, x21, x14; \ + umulh x14, x3, x6; \ + adcs x22, x22, x14; \ + umulh x14, x3, x7; \ + adcs x23, x23, x14; \ + umulh x14, x3, x8; \ + adcs x24, x24, x14; \ + umulh x14, x3, x9; \ + adcs x1, x1, x14; \ + umulh x14, x3, x10; \ + adcs x0, x0, x14; \ + umulh x14, x3, x11; \ + adcs x15, x15, x14; \ + umulh x14, x3, x12; \ + adcs x16, x16, x14; \ + umulh x14, x3, x13; \ + adc x17, x17, x14; \ + mul x14, x4, x5; \ + adds x21, x21, x14; \ + mul x14, x4, x6; \ + adcs x22, x22, x14; \ + mul x14, x4, x7; \ + adcs x23, x23, x14; \ + mul x14, x4, x8; \ + adcs x24, x24, x14; \ + mul x14, x4, x9; \ + adcs x1, x1, x14; \ + mul x14, x4, x10; \ + adcs x0, x0, x14; \ + mul x14, x4, x11; \ + adcs x15, x15, x14; \ + mul x14, x4, x12; \ + adcs x16, x16, x14; \ + mul x14, x4, x13; \ + adcs x17, x17, x14; \ + cset x19, hs; \ + umulh x14, x4, x5; \ + adds x22, x22, x14; \ + umulh x14, x4, x6; \ + adcs x23, x23, x14; \ + umulh x14, x4, x7; \ + adcs x24, x24, x14; \ + umulh x14, x4, x8; \ + adcs x1, x1, x14; \ + umulh x14, x4, x9; \ + adcs x0, x0, x14; \ + umulh x14, x4, x10; \ + adcs x15, x15, x14; \ + umulh x14, x4, x11; \ + adcs x16, x16, x14; \ + umulh x14, x4, x12; \ + adcs x17, x17, x14; \ + umulh x14, x4, x13; \ + adc x19, x19, x14; \ + stp x20, x21, [P0+32]; \ + ldp x3, x4, [P1+48]; \ + mul x14, x3, x5; \ + adds x22, x22, x14; \ + mul x14, x3, x6; \ + adcs x23, x23, x14; \ + mul x14, x3, x7; \ + adcs x24, x24, x14; \ + mul x14, x3, x8; \ + adcs x1, x1, x14; \ + mul x14, x3, x9; \ + adcs x0, x0, x14; \ + mul x14, x3, x10; \ + adcs x15, x15, x14; \ + mul x14, x3, x11; \ + adcs x16, x16, x14; \ + mul x14, x3, x12; \ + adcs x17, x17, x14; \ + mul x14, x3, x13; \ + adcs x19, x19, x14; \ + cset x20, hs; \ + umulh x14, x3, x5; \ + adds x23, x23, x14; \ + umulh x14, x3, x6; \ + adcs x24, x24, x14; \ + umulh x14, x3, x7; \ + adcs x1, x1, x14; \ + umulh x14, x3, x8; \ + adcs x0, x0, x14; \ + umulh x14, x3, x9; \ + adcs x15, x15, x14; \ + umulh x14, x3, x10; \ + adcs x16, x16, x14; \ + umulh x14, x3, x11; \ + adcs x17, x17, x14; \ + umulh x14, x3, x12; \ + adcs x19, x19, x14; \ + umulh x14, x3, x13; \ + adc x20, x20, x14; \ + mul x14, x4, x5; \ + adds x23, x23, x14; \ + mul x14, x4, x6; \ + adcs x24, x24, x14; \ + mul x14, x4, x7; \ + adcs x1, x1, x14; \ + mul x14, x4, x8; \ + adcs x0, x0, x14; \ + mul x14, x4, x9; \ + adcs x15, x15, x14; \ + mul x14, x4, x10; \ + adcs x16, x16, x14; \ + mul x14, x4, x11; \ + adcs x17, x17, x14; \ + mul x14, x4, x12; \ + adcs x19, x19, x14; \ + mul x14, x4, x13; \ + adcs x20, x20, x14; \ + cset x21, hs; \ + umulh x14, x4, x5; \ + adds x24, x24, x14; \ + umulh x14, x4, x6; \ + adcs x1, x1, x14; \ + umulh x14, x4, x7; \ + adcs x0, x0, x14; \ + umulh x14, x4, x8; \ + adcs x15, x15, x14; \ + umulh x14, x4, x9; \ + adcs x16, x16, x14; \ + umulh x14, x4, x10; \ + adcs x17, x17, x14; \ + umulh x14, x4, x11; \ + adcs x19, x19, x14; \ + umulh x14, x4, x12; \ + adcs x20, x20, x14; \ + umulh x14, x4, x13; \ + adc x21, x21, x14; \ + stp x22, x23, [P0+48]; \ + ldr x3, [P1+64]; \ + mul x14, x3, x5; \ + adds x24, x24, x14; \ + mul x14, x3, x6; \ + adcs x1, x1, x14; \ + mul x14, x3, x7; \ + adcs x0, x0, x14; \ + mul x14, x3, x8; \ + adcs x15, x15, x14; \ + mul x14, x3, x9; \ + adcs x16, x16, x14; \ + mul x14, x3, x10; \ + adcs x17, x17, x14; \ + mul x14, x3, x11; \ + adcs x19, x19, x14; \ + mul x14, x3, x12; \ + adcs x20, x20, x14; \ + mul x14, x3, x13; \ + adc x21, x21, x14; \ + umulh x14, x3, x5; \ + adds x1, x1, x14; \ + umulh x14, x3, x6; \ + adcs x0, x0, x14; \ + umulh x14, x3, x7; \ + adcs x15, x15, x14; \ + umulh x14, x3, x8; \ + adcs x16, x16, x14; \ + umulh x14, x3, x9; \ + adcs x17, x17, x14; \ + umulh x14, x3, x10; \ + adcs x19, x19, x14; \ + umulh x14, x3, x11; \ + adcs x20, x20, x14; \ + umulh x14, x3, x12; \ + adc x21, x21, x14; \ + cmp xzr, xzr; \ + ldp x5, x6, [P0]; \ + extr x14, x1, x24, #9; \ + adcs x5, x5, x14; \ + extr x14, x0, x1, #9; \ + adcs x6, x6, x14; \ + ldp x7, x8, [P0+16]; \ + extr x14, x15, x0, #9; \ + adcs x7, x7, x14; \ + extr x14, x16, x15, #9; \ + adcs x8, x8, x14; \ + ldp x9, x10, [P0+32]; \ + extr x14, x17, x16, #9; \ + adcs x9, x9, x14; \ + extr x14, x19, x17, #9; \ + adcs x10, x10, x14; \ + ldp x11, x12, [P0+48]; \ + extr x14, x20, x19, #9; \ + adcs x11, x11, x14; \ + extr x14, x21, x20, #9; \ + adcs x12, x12, x14; \ + orr x13, x24, #0xfffffffffffffe00; \ + lsr x14, x21, #9; \ + adcs x13, x13, x14; \ + sbcs x5, x5, xzr; \ + sbcs x6, x6, xzr; \ + sbcs x7, x7, xzr; \ + sbcs x8, x8, xzr; \ + sbcs x9, x9, xzr; \ + sbcs x10, x10, xzr; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbc x13, x13, xzr; \ + and x13, x13, #0x1ff; \ + stp x5, x6, [P0]; \ + stp x7, x8, [P0+16]; \ + stp x9, x10, [P0+32]; \ + stp x11, x12, [P0+48]; \ + str x13, [P0+64] + +// Corresponds exactly to bignum_sqr_p521_alt + +#define sqr_p521(P0,P1) \ + ldp x2, x3, [P1]; \ + mul x11, x2, x3; \ + umulh x12, x2, x3; \ + ldp x4, x5, [P1+16]; \ + mul x10, x2, x4; \ + umulh x13, x2, x4; \ + adds x12, x12, x10; \ + ldp x6, x7, [P1+32]; \ + mul x10, x2, x5; \ + umulh x14, x2, x5; \ + adcs x13, x13, x10; \ + ldp x8, x9, [P1+48]; \ + mul x10, x2, x6; \ + umulh x15, x2, x6; \ + adcs x14, x14, x10; \ + mul x10, x2, x7; \ + umulh x16, x2, x7; \ + adcs x15, x15, x10; \ + mul x10, x2, x8; \ + umulh x17, x2, x8; \ + adcs x16, x16, x10; \ + mul x10, x2, x9; \ + umulh x19, x2, x9; \ + adcs x17, x17, x10; \ + adc x19, x19, xzr; \ + mul x10, x3, x4; \ + adds x13, x13, x10; \ + mul x10, x3, x5; \ + adcs x14, x14, x10; \ + mul x10, x3, x6; \ + adcs x15, x15, x10; \ + mul x10, x3, x7; \ + adcs x16, x16, x10; \ + mul x10, x3, x8; \ + adcs x17, x17, x10; \ + mul x10, x3, x9; \ + adcs x19, x19, x10; \ + cset x20, hs; \ + umulh x10, x3, x4; \ + adds x14, x14, x10; \ + umulh x10, x3, x5; \ + adcs x15, x15, x10; \ + umulh x10, x3, x6; \ + adcs x16, x16, x10; \ + umulh x10, x3, x7; \ + adcs x17, x17, x10; \ + umulh x10, x3, x8; \ + adcs x19, x19, x10; \ + umulh x10, x3, x9; \ + adc x20, x20, x10; \ + mul x10, x6, x7; \ + umulh x21, x6, x7; \ + adds x20, x20, x10; \ + adc x21, x21, xzr; \ + mul x10, x4, x5; \ + adds x15, x15, x10; \ + mul x10, x4, x6; \ + adcs x16, x16, x10; \ + mul x10, x4, x7; \ + adcs x17, x17, x10; \ + mul x10, x4, x8; \ + adcs x19, x19, x10; \ + mul x10, x4, x9; \ + adcs x20, x20, x10; \ + mul x10, x6, x8; \ + adcs x21, x21, x10; \ + cset x22, hs; \ + umulh x10, x4, x5; \ + adds x16, x16, x10; \ + umulh x10, x4, x6; \ + adcs x17, x17, x10; \ + umulh x10, x4, x7; \ + adcs x19, x19, x10; \ + umulh x10, x4, x8; \ + adcs x20, x20, x10; \ + umulh x10, x4, x9; \ + adcs x21, x21, x10; \ + umulh x10, x6, x8; \ + adc x22, x22, x10; \ + mul x10, x7, x8; \ + umulh x23, x7, x8; \ + adds x22, x22, x10; \ + adc x23, x23, xzr; \ + mul x10, x5, x6; \ + adds x17, x17, x10; \ + mul x10, x5, x7; \ + adcs x19, x19, x10; \ + mul x10, x5, x8; \ + adcs x20, x20, x10; \ + mul x10, x5, x9; \ + adcs x21, x21, x10; \ + mul x10, x6, x9; \ + adcs x22, x22, x10; \ + mul x10, x7, x9; \ + adcs x23, x23, x10; \ + cset x24, hs; \ + umulh x10, x5, x6; \ + adds x19, x19, x10; \ + umulh x10, x5, x7; \ + adcs x20, x20, x10; \ + umulh x10, x5, x8; \ + adcs x21, x21, x10; \ + umulh x10, x5, x9; \ + adcs x22, x22, x10; \ + umulh x10, x6, x9; \ + adcs x23, x23, x10; \ + umulh x10, x7, x9; \ + adc x24, x24, x10; \ + mul x10, x8, x9; \ + umulh x25, x8, x9; \ + adds x24, x24, x10; \ + adc x25, x25, xzr; \ + adds x11, x11, x11; \ + adcs x12, x12, x12; \ + adcs x13, x13, x13; \ + adcs x14, x14, x14; \ + adcs x15, x15, x15; \ + adcs x16, x16, x16; \ + adcs x17, x17, x17; \ + adcs x19, x19, x19; \ + adcs x20, x20, x20; \ + adcs x21, x21, x21; \ + adcs x22, x22, x22; \ + adcs x23, x23, x23; \ + adcs x24, x24, x24; \ + adcs x25, x25, x25; \ + cset x0, hs; \ + umulh x10, x2, x2; \ + adds x11, x11, x10; \ + mul x10, x3, x3; \ + adcs x12, x12, x10; \ + umulh x10, x3, x3; \ + adcs x13, x13, x10; \ + mul x10, x4, x4; \ + adcs x14, x14, x10; \ + umulh x10, x4, x4; \ + adcs x15, x15, x10; \ + mul x10, x5, x5; \ + adcs x16, x16, x10; \ + umulh x10, x5, x5; \ + adcs x17, x17, x10; \ + mul x10, x6, x6; \ + adcs x19, x19, x10; \ + umulh x10, x6, x6; \ + adcs x20, x20, x10; \ + mul x10, x7, x7; \ + adcs x21, x21, x10; \ + umulh x10, x7, x7; \ + adcs x22, x22, x10; \ + mul x10, x8, x8; \ + adcs x23, x23, x10; \ + umulh x10, x8, x8; \ + adcs x24, x24, x10; \ + mul x10, x9, x9; \ + adcs x25, x25, x10; \ + umulh x10, x9, x9; \ + adc x0, x0, x10; \ + ldr x1, [P1+64]; \ + add x1, x1, x1; \ + mul x10, x1, x2; \ + adds x19, x19, x10; \ + umulh x10, x1, x2; \ + adcs x20, x20, x10; \ + mul x10, x1, x4; \ + adcs x21, x21, x10; \ + umulh x10, x1, x4; \ + adcs x22, x22, x10; \ + mul x10, x1, x6; \ + adcs x23, x23, x10; \ + umulh x10, x1, x6; \ + adcs x24, x24, x10; \ + mul x10, x1, x8; \ + adcs x25, x25, x10; \ + umulh x10, x1, x8; \ + adcs x0, x0, x10; \ + lsr x4, x1, #1; \ + mul x4, x4, x4; \ + adc x4, x4, xzr; \ + mul x10, x1, x3; \ + adds x20, x20, x10; \ + umulh x10, x1, x3; \ + adcs x21, x21, x10; \ + mul x10, x1, x5; \ + adcs x22, x22, x10; \ + umulh x10, x1, x5; \ + adcs x23, x23, x10; \ + mul x10, x1, x7; \ + adcs x24, x24, x10; \ + umulh x10, x1, x7; \ + adcs x25, x25, x10; \ + mul x10, x1, x9; \ + adcs x0, x0, x10; \ + umulh x10, x1, x9; \ + adc x4, x4, x10; \ + mul x2, x2, x2; \ + cmp xzr, xzr; \ + extr x10, x20, x19, #9; \ + adcs x2, x2, x10; \ + extr x10, x21, x20, #9; \ + adcs x11, x11, x10; \ + extr x10, x22, x21, #9; \ + adcs x12, x12, x10; \ + extr x10, x23, x22, #9; \ + adcs x13, x13, x10; \ + extr x10, x24, x23, #9; \ + adcs x14, x14, x10; \ + extr x10, x25, x24, #9; \ + adcs x15, x15, x10; \ + extr x10, x0, x25, #9; \ + adcs x16, x16, x10; \ + extr x10, x4, x0, #9; \ + adcs x17, x17, x10; \ + orr x19, x19, #0xfffffffffffffe00; \ + lsr x10, x4, #9; \ + adcs x19, x19, x10; \ + sbcs x2, x2, xzr; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbcs x13, x13, xzr; \ + sbcs x14, x14, xzr; \ + sbcs x15, x15, xzr; \ + sbcs x16, x16, xzr; \ + sbcs x17, x17, xzr; \ + sbc x19, x19, xzr; \ + and x19, x19, #0x1ff; \ + stp x2, x11, [P0]; \ + stp x12, x13, [P0+16]; \ + stp x14, x15, [P0+32]; \ + stp x16, x17, [P0+48]; \ + str x19, [P0+64] + +// Corresponds exactly to bignum_sub_p521 + +#define sub_p521(P0,P1,P2) \ + ldp x5, x6, [P1]; \ + ldp x4, x3, [P2]; \ + subs x5, x5, x4; \ + sbcs x6, x6, x3; \ + ldp x7, x8, [P1+16]; \ + ldp x4, x3, [P2+16]; \ + sbcs x7, x7, x4; \ + sbcs x8, x8, x3; \ + ldp x9, x10, [P1+32]; \ + ldp x4, x3, [P2+32]; \ + sbcs x9, x9, x4; \ + sbcs x10, x10, x3; \ + ldp x11, x12, [P1+48]; \ + ldp x4, x3, [P2+48]; \ + sbcs x11, x11, x4; \ + sbcs x12, x12, x3; \ + ldr x13, [P1+64]; \ + ldr x4, [P2+64]; \ + sbcs x13, x13, x4; \ + sbcs x5, x5, xzr; \ + sbcs x6, x6, xzr; \ + sbcs x7, x7, xzr; \ + sbcs x8, x8, xzr; \ + sbcs x9, x9, xzr; \ + sbcs x10, x10, xzr; \ + sbcs x11, x11, xzr; \ + sbcs x12, x12, xzr; \ + sbcs x13, x13, xzr; \ + and x13, x13, #0x1ff; \ + stp x5, x6, [P0]; \ + stp x7, x8, [P0+16]; \ + stp x9, x10, [P0+32]; \ + stp x11, x12, [P0+48]; \ + str x13, [P0+64] + +S2N_BN_SYMBOL(p521_jmixadd_alt): + +// Save regs and make room on stack for temporary variables + + stp x19, x20, [sp, #-16]! + stp x21, x22, [sp, #-16]! + stp x23, x24, [sp, #-16]! + stp x25, x26, [sp, #-16]! + stp x27, x28, [sp, #-16]! + sub sp, sp, NSPACE + +// Move the input arguments to stable places + + mov input_z, x0 + mov input_x, x1 + mov input_y, x2 + +// Main code, just a sequence of basic field operations + + sqr_p521(zp2,z_1) + mul_p521(y2a,z_1,y_2) + + mul_p521(x2a,zp2,x_2) + mul_p521(y2a,zp2,y2a) + + sub_p521(xd,x2a,x_1) + sub_p521(yd,y2a,y_1) + + sqr_p521(zz,xd) + sqr_p521(ww,yd) + + mul_p521(zzx1,zz,x_1) + mul_p521(zzx2,zz,x2a) + + sub_p521(resx,ww,zzx1) + sub_p521(t1,zzx2,zzx1) + + mul_p521(resz,xd,z_1) + + sub_p521(resx,resx,zzx2) + + sub_p521(t2,zzx1,resx) + + mul_p521(t1,t1,y_1) + mul_p521(t2,yd,t2) + + sub_p521(resy,t2,t1) + +// Test if z_1 = 0 to decide if p1 = 0 (up to projective equivalence) + + ldp x0, x1, [z_1] + orr x0, x0, x1 + ldp x2, x3, [z_1+16] + orr x2, x2, x3 + ldp x4, x5, [z_1+32] + orr x4, x4, x5 + ldp x6, x7, [z_1+48] + orr x6, x6, x7 + ldr x8, [z_1+64] + orr x0, x0, x2 + orr x4, x4, x6 + orr x0, x0, x4 + orr x0, x0, x8 + cmp x0, xzr + +// Multiplex: if p1 <> 0 just copy the computed result from the staging area. +// If p1 = 0 then return the point p2 augmented with an extra z = 1 +// coordinate, hence giving 0 + p2 = p2 for the final result. + + ldp x0, x1, [resx] + ldp x20, x21, [x_2] + csel x0, x0, x20, ne + csel x1, x1, x21, ne + ldp x2, x3, [resx+16] + ldp x20, x21, [x_2+16] + csel x2, x2, x20, ne + csel x3, x3, x21, ne + ldp x4, x5, [resx+32] + ldp x20, x21, [x_2+32] + csel x4, x4, x20, ne + csel x5, x5, x21, ne + ldp x6, x7, [resx+48] + ldp x20, x21, [x_2+48] + csel x6, x6, x20, ne + csel x7, x7, x21, ne + ldr x8, [resx+64] + ldr x20, [x_2+64] + csel x8, x8, x20, ne + + ldp x10, x11, [resy] + ldp x20, x21, [y_2] + csel x10, x10, x20, ne + csel x11, x11, x21, ne + ldp x12, x13, [resy+16] + ldp x20, x21, [y_2+16] + csel x12, x12, x20, ne + csel x13, x13, x21, ne + ldp x14, x15, [resy+32] + ldp x20, x21, [y_2+32] + csel x14, x14, x20, ne + csel x15, x15, x21, ne + ldp x16, x17, [resy+48] + ldp x20, x21, [y_2+48] + csel x16, x16, x20, ne + csel x17, x17, x21, ne + ldr x19, [resy+64] + ldr x20, [y_2+64] + csel x19, x19, x20, ne + + stp x0, x1, [x_3] + stp x2, x3, [x_3+16] + stp x4, x5, [x_3+32] + stp x6, x7, [x_3+48] + str x8, [x_3+64] + stp x10, x11, [y_3] + stp x12, x13, [y_3+16] + stp x14, x15, [y_3+32] + stp x16, x17, [y_3+48] + str x19, [y_3+64] + + ldp x0, x1, [resz] + mov x20, #1 + csel x0, x0, x20, ne + csel x1, x1, xzr, ne + ldp x2, x3, [resz+16] + csel x2, x2, xzr, ne + csel x3, x3, xzr, ne + ldp x4, x5, [resz+32] + csel x4, x4, xzr, ne + csel x5, x5, xzr, ne + ldp x6, x7, [resz+48] + csel x6, x6, xzr, ne + csel x7, x7, xzr, ne + ldr x8, [resz+64] + csel x8, x8, xzr, ne + + stp x0, x1, [z_3] + stp x2, x3, [z_3+16] + stp x4, x5, [z_3+32] + stp x6, x7, [z_3+48] + str x8, [z_3+64] + +// Restore stack and registers + + add sp, sp, NSPACE + + ldp x27, x28, [sp], 16 + ldp x25, x26, [sp], 16 + ldp x23, x24, [sp], 16 + ldp x21, x22, [sp], 16 + ldp x19, x20, [sp], 16 + + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack, "", %progbits +#endif diff --git a/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S b/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S index 87e5e9cf62..b9f7cdaa16 100644 --- a/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S +++ b/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S @@ -755,8 +755,7 @@ curve25519_x25519_scalarloop: // Multiplex directly into (xn,zn) then do three pure doubling steps; // this accounts for the implicit zeroing of the three lowest bits -// of the scalar. On the very last doubling we *fully* reduce zn mod -// p_25519 to ease checking for degeneracy below. +// of the scalar. movq swap, %rdx testq %rdx, %rdx @@ -788,12 +787,12 @@ curve25519_x25519_scalarloop: sub_twice4(p,s,d) cmadd_4(e,0x1db42,p,d) mul_4(xn,s,d) - mul_p25519(zn,p,e) + mul_4(zn,p,e) // The projective result of the scalar multiplication is now (xn,zn). -// Prepare to call the modular inverse function to get xm = 1/zn +// Prepare to call the modular inverse function to get zn' = 1/zn - leaq 256(%rsp), %rdi + leaq 224(%rsp), %rdi leaq 224(%rsp), %rsi // Inline copy of bignum_inv_p25519, identical except for stripping out @@ -801,7 +800,7 @@ curve25519_x25519_scalarloop: // and reclaiming room on the stack. For more details and explanations see // "x86/curve25519/bignum_inv_p25519.S". Note that the stack it uses for // its own temporaries is 208 bytes, so it has no effect on variables -// that are needed in the rest of our computation here: res, xm and zn. +// that are needed in the rest of our computation here: res, xn and zn. movq %rdi, 0xc0(%rsp) xorl %eax, %eax @@ -2149,31 +2148,14 @@ curve25519_x25519_midloop: movq %r14, 0x10(%rdi) movq %r15, 0x18(%rdi) -// Since we eventually want to return 0 when the result is the point at -// infinity, we force xn = 0 whenever zn = 0. This avoids building in a -// dependency on the behavior of modular inverse in out-of-scope cases. - - movq 224(%rsp), %rax - orq 232(%rsp), %rax - orq 240(%rsp), %rax - orq 248(%rsp), %rax - movq 320(%rsp), %rcx - cmovzq %rax, %rcx - movq %rcx, 320(%rsp) - movq 328(%rsp), %rcx - cmovzq %rax, %rcx - movq %rcx, 328(%rsp) - movq 336(%rsp), %rcx - cmovzq %rax, %rcx - movq %rcx, 336(%rsp) - movq 344(%rsp), %rcx - cmovzq %rax, %rcx - movq %rcx, 344(%rsp) - // Now the result is xn * (1/zn), fully reduced modulo p. +// Note that in the degenerate case zn = 0 (mod p_25519), the +// modular inverse code above will produce 1/zn = 0, giving +// the correct overall X25519 result of zero for the point at +// infinity. movq res, %rbp - mul_p25519(resx,xn,xm) + mul_p25519(resx,xn,zn) // Restore stack and registers diff --git a/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S b/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S index 4a63a55f11..f7c6c3d7b0 100644 --- a/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S +++ b/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S @@ -916,8 +916,7 @@ curve25519_x25519_alt_scalarloop: // Multiplex directly into (xn,zn) then do three pure doubling steps; // this accounts for the implicit zeroing of the three lowest bits -// of the scalar. On the very last doubling we *fully* reduce zn mod -// p_25519 to ease checking for degeneracy below. +// of the scalar. movq swap, %rdx testq %rdx, %rdx @@ -949,12 +948,12 @@ curve25519_x25519_alt_scalarloop: sub_twice4(p,s,d) cmadd_4(e,0x1db42,p,d) mul_4(xn,s,d) - mul_p25519(zn,p,e) + mul_4(zn,p,e) // The projective result of the scalar multiplication is now (xn,zn). -// Prepare to call the modular inverse function to get xm = 1/zn +// Prepare to call the modular inverse function to get zn' = 1/zn - leaq 256(%rsp), %rdi + leaq 224(%rsp), %rdi leaq 224(%rsp), %rsi // Inline copy of bignum_inv_p25519, identical except for stripping out @@ -962,7 +961,7 @@ curve25519_x25519_alt_scalarloop: // and reclaiming room on the stack. For more details and explanations see // "x86/curve25519/bignum_inv_p25519.S". Note that the stack it uses for // its own temporaries is 208 bytes, so it has no effect on variables -// that are needed in the rest of our computation here: res, xm and zn. +// that are needed in the rest of our computation here: res, xn and zn. movq %rdi, 0xc0(%rsp) xorl %eax, %eax @@ -2310,31 +2309,14 @@ curve25519_x25519_alt_midloop: movq %r14, 0x10(%rdi) movq %r15, 0x18(%rdi) -// Since we eventually want to return 0 when the result is the point at -// infinity, we force xn = 0 whenever zn = 0. This avoids building in a -// dependency on the behavior of modular inverse in out-of-scope cases. - - movq 224(%rsp), %rax - orq 232(%rsp), %rax - orq 240(%rsp), %rax - orq 248(%rsp), %rax - movq 320(%rsp), %rcx - cmovzq %rax, %rcx - movq %rcx, 320(%rsp) - movq 328(%rsp), %rcx - cmovzq %rax, %rcx - movq %rcx, 328(%rsp) - movq 336(%rsp), %rcx - cmovzq %rax, %rcx - movq %rcx, 336(%rsp) - movq 344(%rsp), %rcx - cmovzq %rax, %rcx - movq %rcx, 344(%rsp) - // Now the result is xn * (1/zn), fully reduced modulo p. +// Note that in the degenerate case zn = 0 (mod p_25519), the +// modular inverse code above will produce 1/zn = 0, giving +// the correct overall X25519 result of zero for the point at +// infinity. movq res, %rbp - mul_p25519(resx,xn,xm) + mul_p25519(resx,xn,zn) // Restore stack and registers diff --git a/third_party/s2n-bignum/x86_att/p384/p384_montjadd.S b/third_party/s2n-bignum/x86_att/p384/p384_montjadd.S index 27b58bfc14..6078082204 100644 --- a/third_party/s2n-bignum/x86_att/p384/p384_montjadd.S +++ b/third_party/s2n-bignum/x86_att/p384/p384_montjadd.S @@ -28,7 +28,8 @@ // Pointer-offset pairs for inputs and outputs // These assume %rdi = p3, %rsi = p1 and %rcx = p2, -// which needs to be set up explicitly before use +// which needs to be set up explicitly before use. +// The %rdi value never changes, however. #define x_1 0(%rsi) #define y_1 NUMSIZE(%rsi) @@ -52,6 +53,7 @@ #define z1sq (NUMSIZE*0)(%rsp) #define ww (NUMSIZE*0)(%rsp) +#define resx (NUMSIZE*0)(%rsp) #define yd (NUMSIZE*1)(%rsp) #define y2a (NUMSIZE*1)(%rsp) @@ -65,9 +67,11 @@ #define t2 (NUMSIZE*4)(%rsp) #define x1a (NUMSIZE*4)(%rsp) #define zzx1 (NUMSIZE*4)(%rsp) +#define resy (NUMSIZE*4)(%rsp) #define xd (NUMSIZE*5)(%rsp) #define z2sq (NUMSIZE*5)(%rsp) +#define resz (NUMSIZE*5)(%rsp) #define y1a (NUMSIZE*6)(%rsp) @@ -75,9 +79,8 @@ #define input_x (NUMSIZE*7)(%rsp) #define input_y (NUMSIZE*7+8)(%rsp) -#define input_z (NUMSIZE*7+16)(%rsp) -#define NSPACE (NUMSIZE*7+24) +#define NSPACE (NUMSIZE*7+16) // Corresponds exactly to bignum_montmul_p384 @@ -843,6 +846,52 @@ sbbq $0x0, %r11 ; \ movq %r11, 0x28+P0 +// Additional macros to help with final multiplexing + +#define load6(r0,r1,r2,r3,r4,r5,P) \ + movq P, r0 ; \ + movq 8+P, r1 ; \ + movq 16+P, r2 ; \ + movq 24+P, r3 ; \ + movq 32+P, r4 ; \ + movq 40+P, r5 + +#define store6(P,r0,r1,r2,r3,r4,r5) \ + movq r0, P ; \ + movq r1, 8+P ; \ + movq r2, 16+P ; \ + movq r3, 24+P ; \ + movq r4, 32+P ; \ + movq r5, 40+P ; \ + +#define czload6(r0,r1,r2,r3,r4,r5,P) \ + cmovzq P, r0 ; \ + cmovzq 8+P, r1 ; \ + cmovzq 16+P, r2 ; \ + cmovzq 24+P, r3 ; \ + cmovzq 32+P, r4 ; \ + cmovzq 40+P, r5 + +#define muxload6(r0,r1,r2,r3,r4,r5,P0,P1,P2) \ + movq P0, r0 ; \ + cmovbq P1, r0 ; \ + cmovnbe P2, r0 ; \ + movq 8+P0, r1 ; \ + cmovbq 8+P1, r1 ; \ + cmovnbe 8+P2, r1 ; \ + movq 16+P0, r2 ; \ + cmovbq 16+P1, r2 ; \ + cmovnbe 16+P2, r2 ; \ + movq 24+P0, r3 ; \ + cmovbq 24+P1, r3 ; \ + cmovnbe 24+P2, r3 ; \ + movq 32+P0, r4 ; \ + cmovbq 32+P1, r4 ; \ + cmovnbe 32+P2, r4 ; \ + movq 40+P0, r5 ; \ + cmovbq 40+P1, r5 ; \ + cmovnbe 40+P2, r5 + S2N_BN_SYMBOL(p384_montjadd): #if WINDOWS_ABI @@ -865,7 +914,6 @@ S2N_BN_SYMBOL(p384_montjadd): subq $NSPACE, %rsp - movq %rdi, input_z movq %rsi, input_x movq %rdx, input_y @@ -899,28 +947,77 @@ S2N_BN_SYMBOL(p384_montjadd): montmul_p384(zzx1,zz,x1a) montmul_p384(zzx2,zz,x2a) - movq input_z, %rdi - sub_p384(x_3,ww,zzx1) + sub_p384(resx,ww,zzx1) sub_p384(t1,zzx2,zzx1) movq input_x, %rsi montmul_p384(xd,xd,z_1) - movq input_z, %rdi - sub_p384(x_3,x_3,zzx2) + sub_p384(resx,resx,zzx2) - movq input_z, %rdi - sub_p384(t2,zzx1,x_3) + sub_p384(t2,zzx1,resx) montmul_p384(t1,t1,y1a) - movq input_z, %rdi movq input_y, %rcx - montmul_p384(z_3,xd,z_2) + montmul_p384(resz,xd,z_2) montmul_p384(t2,yd,t2) - movq input_z, %rdi - sub_p384(y_3,t2,t1) + sub_p384(resy,t2,t1) + +// Load in the z coordinates of the inputs to check for P1 = 0 and P2 = 0 +// The condition codes get set by a comparison (P2 != 0) - (P1 != 0) +// So "NBE" <=> ~(CF \/ ZF) <=> P1 = 0 /\ ~(P2 = 0) +// and "B" <=> CF <=> ~(P1 = 0) /\ P2 = 0 +// and "Z" <=> ZF <=> (P1 = 0 <=> P2 = 0) +// Multiplex the z outputs accordingly and re-store in resz + + movq input_y, %rcx + load6(%r8,%r9,%r10,%r11,%rbx,%rbp,z_2) + movq %r8, %rax + movq %r9, %rdx + orq %r10, %rax + orq %r11, %rdx + orq %rbx, %rax + orq %rbp, %rdx + orq %rdx, %rax + negq %rax + sbbq %rax, %rax + + movq input_x, %rsi + load6(%r12,%r13,%r14,%r15,%rdx,%rcx,z_1) + cmovzq %r12, %r8 + cmovzq %r13, %r9 + cmovzq %r14, %r10 + cmovzq %r15, %r11 + cmovzq %rdx, %rbx + cmovzq %rcx, %rbp + orq %r13, %r12 + orq %r15, %r14 + orq %rcx, %rdx + orq %r14, %r12 + orq %r12, %rdx + negq %rdx + sbbq %rdx, %rdx + + cmpq %rdx, %rax + + czload6(%r8,%r9,%r10,%r11,%rbx,%rbp,resz) + store6(resz,%r8,%r9,%r10,%r11,%rbx,%rbp) + +// Multiplex the x and y outputs too, keeping the results in registers + + movq input_y, %rcx + movq input_x, %rsi + muxload6(%r8,%r9,%r10,%r11,%rbx,%rbp,resx,x_1,x_2) + muxload6(%r12,%r13,%r14,%r15,%rdx,%rax,resy,y_1,y_2) + +// Finally store back the multiplexed values + + store6(x_3,%r8,%r9,%r10,%r11,%rbx,%rbp) + load6(%r8,%r9,%r10,%r11,%rbx,%rbp,resz) + store6(y_3,%r12,%r13,%r14,%r15,%rdx,%rax) + store6(z_3,%r8,%r9,%r10,%r11,%rbx,%rbp) // Restore stack and registers diff --git a/third_party/s2n-bignum/x86_att/p384/p384_montjadd_alt.S b/third_party/s2n-bignum/x86_att/p384/p384_montjadd_alt.S new file mode 100644 index 0000000000..e36a60f331 --- /dev/null +++ b/third_party/s2n-bignum/x86_att/p384/p384_montjadd_alt.S @@ -0,0 +1,965 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Point addition on NIST curve P-384 in Montgomery-Jacobian coordinates +// +// extern void p384_montjadd_alt +// (uint64_t p3[static 18],uint64_t p1[static 18],uint64_t p2[static 18]); +// +// Does p3 := p1 + p2 where all points are regarded as Jacobian triples with +// each coordinate in the Montgomery domain, i.e. x' = (2^384 * x) mod p_384. +// A Jacobian triple (x',y',z') represents affine point (x/z^2,y/z^3). +// +// Standard x86-64 ABI: RDI = p3, RSI = p1, RDX = p2 +// Microsoft x64 ABI: RCX = p3, RDX = p1, R8 = p2 +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(p384_montjadd_alt) + S2N_BN_SYM_PRIVACY_DIRECTIVE(p384_montjadd_alt) + .text + .balign 4 + +// Size of individual field elements + +#define NUMSIZE 48 + +// Pointer-offset pairs for inputs and outputs +// These assume %rdi = p3, %rsi = p1 and %rcx = p2, +// which needs to be set up explicitly before use. +// The %rdi value never changes, however. + +#define x_1 0(%rsi) +#define y_1 NUMSIZE(%rsi) +#define z_1 (2*NUMSIZE)(%rsi) + +#define x_2 0(%rcx) +#define y_2 NUMSIZE(%rcx) +#define z_2 (2*NUMSIZE)(%rcx) + +#define x_3 0(%rdi) +#define y_3 NUMSIZE(%rdi) +#define z_3 (2*NUMSIZE)(%rdi) + +// In one place it's convenient to use another register +// since the squaring function overwrites %rcx + +#define z_2_alt (2*NUMSIZE)(%rsi) + +// Pointer-offset pairs for temporaries, with some aliasing +// NSPACE is the total stack needed for these temporaries + +#define z1sq (NUMSIZE*0)(%rsp) +#define ww (NUMSIZE*0)(%rsp) +#define resx (NUMSIZE*0)(%rsp) + +#define yd (NUMSIZE*1)(%rsp) +#define y2a (NUMSIZE*1)(%rsp) + +#define x2a (NUMSIZE*2)(%rsp) +#define zzx2 (NUMSIZE*2)(%rsp) + +#define zz (NUMSIZE*3)(%rsp) +#define t1 (NUMSIZE*3)(%rsp) + +#define t2 (NUMSIZE*4)(%rsp) +#define x1a (NUMSIZE*4)(%rsp) +#define zzx1 (NUMSIZE*4)(%rsp) +#define resy (NUMSIZE*4)(%rsp) + +#define xd (NUMSIZE*5)(%rsp) +#define z2sq (NUMSIZE*5)(%rsp) +#define resz (NUMSIZE*5)(%rsp) + +#define y1a (NUMSIZE*6)(%rsp) + +// Temporaries for the actual input pointers + +#define input_x (NUMSIZE*7)(%rsp) +#define input_y (NUMSIZE*7+8)(%rsp) + +#define NSPACE (NUMSIZE*7+16) + +// Corresponds exactly to bignum_montmul_p384_alt + +#define montmul_p384(P0,P1,P2) \ + movq P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + movq %rax, %r8 ; \ + movq %rdx, %r9 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + xorl %r10d, %r10d ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + xorl %r11d, %r11d ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + xorl %r12d, %r12d ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + xorl %r13d, %r13d ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + xorl %r14d, %r14d ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + xorl %r15d, %r15d ; \ + movq %r8, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r8, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r8 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r8, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r9 ; \ + sbbq %rdx, %r10 ; \ + sbbq %rbp, %r11 ; \ + sbbq $0x0, %r12 ; \ + sbbq $0x0, %r13 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x8+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + sbbq %r8, %r8 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %r8, %r8 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %r8, %r8 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %r8, %r8 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r8, %r8 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r8, %r8 ; \ + negq %r8; \ + movq %r9, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r9, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r9 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r9, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r10 ; \ + sbbq %rdx, %r11 ; \ + sbbq %rbp, %r12 ; \ + sbbq $0x0, %r13 ; \ + sbbq $0x0, %r14 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x10+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %r9, %r9 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %r9, %r9 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %r9, %r9 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r9, %r9 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r9, %r9 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + sbbq %r9, %r9 ; \ + negq %r9; \ + movq %r10, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r10, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r10 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r10, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r11 ; \ + sbbq %rdx, %r12 ; \ + sbbq %rbp, %r13 ; \ + sbbq $0x0, %r14 ; \ + sbbq $0x0, %r15 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x18+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %r10, %r10 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %r10, %r10 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r10, %r10 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r10, %r10 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + sbbq %r10, %r10 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + sbbq %r10, %r10 ; \ + negq %r10; \ + movq %r11, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r11, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r11 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r11, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r12 ; \ + sbbq %rdx, %r13 ; \ + sbbq %rbp, %r14 ; \ + sbbq $0x0, %r15 ; \ + sbbq $0x0, %r8 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x20+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %r11, %r11 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r11, %r11 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r11, %r11 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + sbbq %r11, %r11 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + sbbq %r11, %r11 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + sbbq %r11, %r11 ; \ + negq %r11; \ + movq %r12, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r12, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r12 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r12, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r13 ; \ + sbbq %rdx, %r14 ; \ + sbbq %rbp, %r15 ; \ + sbbq $0x0, %r8 ; \ + sbbq $0x0, %r9 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x28+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r12, %r12 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r12, %r12 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + sbbq %r12, %r12 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + sbbq %r12, %r12 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + sbbq %r12, %r12 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %r12, %r12 ; \ + negq %r12; \ + movq %r13, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r13, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r13 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r13, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r14 ; \ + sbbq %rdx, %r15 ; \ + sbbq %rbp, %r8 ; \ + sbbq $0x0, %r9 ; \ + sbbq $0x0, %r10 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r11 ; \ + adcq $0x0, %r12 ; \ + xorl %edx, %edx ; \ + xorl %ebp, %ebp ; \ + xorl %r13d, %r13d ; \ + movq $0xffffffff00000001, %rax ; \ + addq %r14, %rax ; \ + movl $0xffffffff, %ebx ; \ + adcq %r15, %rbx ; \ + movl $0x1, %ecx ; \ + adcq %r8, %rcx ; \ + adcq %r9, %rdx ; \ + adcq %r10, %rbp ; \ + adcq %r11, %r13 ; \ + adcq $0x0, %r12 ; \ + cmovneq %rax, %r14 ; \ + cmovneq %rbx, %r15 ; \ + cmovneq %rcx, %r8 ; \ + cmovneq %rdx, %r9 ; \ + cmovneq %rbp, %r10 ; \ + cmovneq %r13, %r11 ; \ + movq %r14, P0 ; \ + movq %r15, 0x8+P0 ; \ + movq %r8, 0x10+P0 ; \ + movq %r9, 0x18+P0 ; \ + movq %r10, 0x20+P0 ; \ + movq %r11, 0x28+P0 + +// Corresponds exactly to bignum_montsqr_p384_alt + +#define montsqr_p384(P0,P1) \ + movq P1, %rbx ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + movq %rax, %r9 ; \ + movq %rdx, %r10 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + movq %rax, %r11 ; \ + movq %rdx, %r12 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + movq %rax, %r13 ; \ + movq %rdx, %r14 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x20+P1; \ + movq %rax, %r15 ; \ + movq %rdx, %rcx ; \ + movq 0x10+P1, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %rbp, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %rbp, %rbp ; \ + movq 0x8+P1, %rbx ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %rbp, %rbp ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %rbp, %rbp ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %rcx ; \ + movq 0x20+P1, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %rbp, %rbp ; \ + movq 0x10+P1, %rbx ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %rbp, %rbp ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %rbp, %rbp ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %rcx ; \ + sbbq %rbp, %rbp ; \ + xorl %ebx, %ebx ; \ + movq 0x18+P1, %rax ; \ + mulq 0x28+P1; \ + subq %rbp, %rdx ; \ + xorl %ebp, %ebp ; \ + addq %rax, %rcx ; \ + adcq %rdx, %rbx ; \ + adcl %ebp, %ebp ; \ + movq 0x20+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + xorl %r8d, %r8d ; \ + addq %r9, %r9 ; \ + adcq %r10, %r10 ; \ + adcq %r11, %r11 ; \ + adcq %r12, %r12 ; \ + adcq %r13, %r13 ; \ + adcq %r14, %r14 ; \ + adcq %r15, %r15 ; \ + adcq %rcx, %rcx ; \ + adcq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcl %r8d, %r8d ; \ + movq P1, %rax ; \ + mulq %rax; \ + movq %r8, P0 ; \ + movq %rax, %r8 ; \ + movq 0x8+P1, %rax ; \ + movq %rbp, 0x8+P0 ; \ + addq %rdx, %r9 ; \ + sbbq %rbp, %rbp ; \ + mulq %rax; \ + negq %rbp; \ + adcq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %rbp, %rbp ; \ + movq 0x10+P1, %rax ; \ + mulq %rax; \ + negq %rbp; \ + adcq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %rbp, %rbp ; \ + movq 0x18+P1, %rax ; \ + mulq %rax; \ + negq %rbp; \ + adcq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %rbp, %rbp ; \ + movq 0x20+P1, %rax ; \ + mulq %rax; \ + negq %rbp; \ + adcq %rax, %rcx ; \ + adcq %rdx, %rbx ; \ + sbbq %rbp, %rbp ; \ + movq 0x28+P1, %rax ; \ + mulq %rax; \ + negq %rbp; \ + adcq 0x8+P0, %rax ; \ + adcq P0, %rdx ; \ + movq %rax, %rbp ; \ + movq %rdx, %rsi ; \ + movq %rbx, P0 ; \ + movq %r8, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r8, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r8 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r8 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r8, %r9 ; \ + sbbq %rdx, %r10 ; \ + sbbq %rax, %r11 ; \ + sbbq $0x0, %r12 ; \ + sbbq $0x0, %r13 ; \ + movq %rbx, %r8 ; \ + sbbq $0x0, %r8 ; \ + movq %r9, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r9, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r9 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r9 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r9, %r10 ; \ + sbbq %rdx, %r11 ; \ + sbbq %rax, %r12 ; \ + sbbq $0x0, %r13 ; \ + sbbq $0x0, %r8 ; \ + movq %rbx, %r9 ; \ + sbbq $0x0, %r9 ; \ + movq %r10, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r10, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r10 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r10 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r10, %r11 ; \ + sbbq %rdx, %r12 ; \ + sbbq %rax, %r13 ; \ + sbbq $0x0, %r8 ; \ + sbbq $0x0, %r9 ; \ + movq %rbx, %r10 ; \ + sbbq $0x0, %r10 ; \ + movq %r11, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r11, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r11 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r11 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r11, %r12 ; \ + sbbq %rdx, %r13 ; \ + sbbq %rax, %r8 ; \ + sbbq $0x0, %r9 ; \ + sbbq $0x0, %r10 ; \ + movq %rbx, %r11 ; \ + sbbq $0x0, %r11 ; \ + movq %r12, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r12, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r12 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r12 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r12, %r13 ; \ + sbbq %rdx, %r8 ; \ + sbbq %rax, %r9 ; \ + sbbq $0x0, %r10 ; \ + sbbq $0x0, %r11 ; \ + movq %rbx, %r12 ; \ + sbbq $0x0, %r12 ; \ + movq %r13, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r13, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r13 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r13 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r13, %r8 ; \ + sbbq %rdx, %r9 ; \ + sbbq %rax, %r10 ; \ + sbbq $0x0, %r11 ; \ + sbbq $0x0, %r12 ; \ + movq %rbx, %r13 ; \ + sbbq $0x0, %r13 ; \ + movq P0, %rbx ; \ + addq %r8, %r14 ; \ + adcq %r9, %r15 ; \ + adcq %r10, %rcx ; \ + adcq %r11, %rbx ; \ + adcq %r12, %rbp ; \ + adcq %r13, %rsi ; \ + movl $0x0, %r8d ; \ + adcq %r8, %r8 ; \ + xorq %r11, %r11 ; \ + xorq %r12, %r12 ; \ + xorq %r13, %r13 ; \ + movq $0xffffffff00000001, %rax ; \ + addq %r14, %rax ; \ + movl $0xffffffff, %r9d ; \ + adcq %r15, %r9 ; \ + movl $0x1, %r10d ; \ + adcq %rcx, %r10 ; \ + adcq %rbx, %r11 ; \ + adcq %rbp, %r12 ; \ + adcq %rsi, %r13 ; \ + adcq $0x0, %r8 ; \ + cmovneq %rax, %r14 ; \ + cmovneq %r9, %r15 ; \ + cmovneq %r10, %rcx ; \ + cmovneq %r11, %rbx ; \ + cmovneq %r12, %rbp ; \ + cmovneq %r13, %rsi ; \ + movq %r14, P0 ; \ + movq %r15, 0x8+P0 ; \ + movq %rcx, 0x10+P0 ; \ + movq %rbx, 0x18+P0 ; \ + movq %rbp, 0x20+P0 ; \ + movq %rsi, 0x28+P0 + +// Corresponds exactly to bignum_sub_p384 + +#define sub_p384(P0,P1,P2) \ + movq P1, %rax ; \ + subq P2, %rax ; \ + movq 0x8+P1, %rdx ; \ + sbbq 0x8+P2, %rdx ; \ + movq 0x10+P1, %r8 ; \ + sbbq 0x10+P2, %r8 ; \ + movq 0x18+P1, %r9 ; \ + sbbq 0x18+P2, %r9 ; \ + movq 0x20+P1, %r10 ; \ + sbbq 0x20+P2, %r10 ; \ + movq 0x28+P1, %r11 ; \ + sbbq 0x28+P2, %r11 ; \ + sbbq %rcx, %rcx ; \ + movl $0xffffffff, %esi ; \ + andq %rsi, %rcx ; \ + xorq %rsi, %rsi ; \ + subq %rcx, %rsi ; \ + subq %rsi, %rax ; \ + movq %rax, P0 ; \ + sbbq %rcx, %rdx ; \ + movq %rdx, 0x8+P0 ; \ + sbbq %rax, %rax ; \ + andq %rsi, %rcx ; \ + negq %rax; \ + sbbq %rcx, %r8 ; \ + movq %r8, 0x10+P0 ; \ + sbbq $0x0, %r9 ; \ + movq %r9, 0x18+P0 ; \ + sbbq $0x0, %r10 ; \ + movq %r10, 0x20+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x28+P0 + +// Additional macros to help with final multiplexing + +#define load6(r0,r1,r2,r3,r4,r5,P) \ + movq P, r0 ; \ + movq 8+P, r1 ; \ + movq 16+P, r2 ; \ + movq 24+P, r3 ; \ + movq 32+P, r4 ; \ + movq 40+P, r5 + +#define store6(P,r0,r1,r2,r3,r4,r5) \ + movq r0, P ; \ + movq r1, 8+P ; \ + movq r2, 16+P ; \ + movq r3, 24+P ; \ + movq r4, 32+P ; \ + movq r5, 40+P ; \ + +#define czload6(r0,r1,r2,r3,r4,r5,P) \ + cmovzq P, r0 ; \ + cmovzq 8+P, r1 ; \ + cmovzq 16+P, r2 ; \ + cmovzq 24+P, r3 ; \ + cmovzq 32+P, r4 ; \ + cmovzq 40+P, r5 + +#define muxload6(r0,r1,r2,r3,r4,r5,P0,P1,P2) \ + movq P0, r0 ; \ + cmovbq P1, r0 ; \ + cmovnbe P2, r0 ; \ + movq 8+P0, r1 ; \ + cmovbq 8+P1, r1 ; \ + cmovnbe 8+P2, r1 ; \ + movq 16+P0, r2 ; \ + cmovbq 16+P1, r2 ; \ + cmovnbe 16+P2, r2 ; \ + movq 24+P0, r3 ; \ + cmovbq 24+P1, r3 ; \ + cmovnbe 24+P2, r3 ; \ + movq 32+P0, r4 ; \ + cmovbq 32+P1, r4 ; \ + cmovnbe 32+P2, r4 ; \ + movq 40+P0, r5 ; \ + cmovbq 40+P1, r5 ; \ + cmovnbe 40+P2, r5 + +S2N_BN_SYMBOL(p384_montjadd_alt): + +#if WINDOWS_ABI + pushq %rdi + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi + movq %r8, %rdx +#endif + +// Save registers and make room on stack for temporary variables +// Put the input arguments in non-volatile places on the stack + + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + + subq $NSPACE, %rsp + + movq %rsi, input_x + movq %rdx, input_y + +// Main code, just a sequence of basic field operations +// 8 * multiply + 3 * square + 7 * subtract + + montsqr_p384(z1sq,z_1) + movq input_y, %rsi + montsqr_p384(z2sq,z_2_alt) + + movq input_x, %rsi + movq input_y, %rcx + montmul_p384(y1a,z_2,y_1) + movq input_x, %rsi + movq input_y, %rcx + montmul_p384(y2a,z_1,y_2) + + movq input_y, %rcx + montmul_p384(x2a,z1sq,x_2) + movq input_x, %rsi + montmul_p384(x1a,z2sq,x_1) + montmul_p384(y2a,z1sq,y2a) + montmul_p384(y1a,z2sq,y1a) + + sub_p384(xd,x2a,x1a) + sub_p384(yd,y2a,y1a) + + montsqr_p384(zz,xd) + montsqr_p384(ww,yd) + + montmul_p384(zzx1,zz,x1a) + montmul_p384(zzx2,zz,x2a) + + sub_p384(resx,ww,zzx1) + sub_p384(t1,zzx2,zzx1) + + movq input_x, %rsi + montmul_p384(xd,xd,z_1) + + sub_p384(resx,resx,zzx2) + + sub_p384(t2,zzx1,resx) + + montmul_p384(t1,t1,y1a) + + movq input_y, %rcx + montmul_p384(resz,xd,z_2) + montmul_p384(t2,yd,t2) + + sub_p384(resy,t2,t1) + +// Load in the z coordinates of the inputs to check for P1 = 0 and P2 = 0 +// The condition codes get set by a comparison (P2 != 0) - (P1 != 0) +// So "NBE" <=> ~(CF \/ ZF) <=> P1 = 0 /\ ~(P2 = 0) +// and "B" <=> CF <=> ~(P1 = 0) /\ P2 = 0 +// and "Z" <=> ZF <=> (P1 = 0 <=> P2 = 0) +// Multiplex the z outputs accordingly and re-store in resz + + movq input_y, %rcx + load6(%r8,%r9,%r10,%r11,%rbx,%rbp,z_2) + movq %r8, %rax + movq %r9, %rdx + orq %r10, %rax + orq %r11, %rdx + orq %rbx, %rax + orq %rbp, %rdx + orq %rdx, %rax + negq %rax + sbbq %rax, %rax + + movq input_x, %rsi + load6(%r12,%r13,%r14,%r15,%rdx,%rcx,z_1) + cmovzq %r12, %r8 + cmovzq %r13, %r9 + cmovzq %r14, %r10 + cmovzq %r15, %r11 + cmovzq %rdx, %rbx + cmovzq %rcx, %rbp + orq %r13, %r12 + orq %r15, %r14 + orq %rcx, %rdx + orq %r14, %r12 + orq %r12, %rdx + negq %rdx + sbbq %rdx, %rdx + + cmpq %rdx, %rax + + czload6(%r8,%r9,%r10,%r11,%rbx,%rbp,resz) + store6(resz,%r8,%r9,%r10,%r11,%rbx,%rbp) + +// Multiplex the x and y outputs too, keeping the results in registers + + movq input_y, %rcx + movq input_x, %rsi + muxload6(%r8,%r9,%r10,%r11,%rbx,%rbp,resx,x_1,x_2) + muxload6(%r12,%r13,%r14,%r15,%rdx,%rax,resy,y_1,y_2) + +// Finally store back the multiplexed values + + store6(x_3,%r8,%r9,%r10,%r11,%rbx,%rbp) + load6(%r8,%r9,%r10,%r11,%rbx,%rbp,resz) + store6(y_3,%r12,%r13,%r14,%r15,%rdx,%rax) + store6(z_3,%r8,%r9,%r10,%r11,%rbx,%rbp) + +// Restore stack and registers + + addq $NSPACE, %rsp + popq %r15 + popq %r14 + popq %r13 + popq %r12 + popq %rbp + popq %rbx + +#if WINDOWS_ABI + popq %rsi + popq %rdi +#endif + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack, "", %progbits +#endif diff --git a/third_party/s2n-bignum/x86_att/p384/p384_montjdouble_alt.S b/third_party/s2n-bignum/x86_att/p384/p384_montjdouble_alt.S new file mode 100644 index 0000000000..8258e35267 --- /dev/null +++ b/third_party/s2n-bignum/x86_att/p384/p384_montjdouble_alt.S @@ -0,0 +1,1196 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Point doubling on NIST curve P-384 in Montgomery-Jacobian coordinates +// +// extern void p384_montjdouble_alt +// (uint64_t p3[static 18],uint64_t p1[static 18]); +// +// Does p3 := 2 * p1 where all points are regarded as Jacobian triples with +// each coordinate in the Montgomery domain, i.e. x' = (2^384 * x) mod p_384. +// A Jacobian triple (x',y',z') represents affine point (x/z^2,y/z^3). +// +// Standard x86-64 ABI: RDI = p3, RSI = p1 +// Microsoft x64 ABI: RCX = p3, RDX = p1 +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(p384_montjdouble_alt) + S2N_BN_SYM_PRIVACY_DIRECTIVE(p384_montjdouble_alt) + .text + .balign 4 + +// Size of individual field elements + +#define NUMSIZE 48 + +// Pointer-offset pairs for inputs and outputs +// These assume %rdi = p3, %rsi = p1. The latter stays true +// but montsqr below modifies %rdi as well. Thus, we need +// to save %rdi and restore it before the writes to outputs. + +#define x_1 0(%rsi) +#define y_1 NUMSIZE(%rsi) +#define z_1 (2*NUMSIZE)(%rsi) + +#define x_3 0(%rdi) +#define y_3 NUMSIZE(%rdi) +#define z_3 (2*NUMSIZE)(%rdi) + +// Pointer-offset pairs for temporaries, with some aliasing +// NSPACE is the total stack needed for these temporaries + +#define z2 (NUMSIZE*0)(%rsp) +#define y2 (NUMSIZE*1)(%rsp) +#define x2p (NUMSIZE*2)(%rsp) +#define xy2 (NUMSIZE*3)(%rsp) + +#define y4 (NUMSIZE*4)(%rsp) +#define t2 (NUMSIZE*4)(%rsp) + +#define dx2 (NUMSIZE*5)(%rsp) +#define t1 (NUMSIZE*5)(%rsp) + +#define d (NUMSIZE*6)(%rsp) +#define x4p (NUMSIZE*6)(%rsp) + +// Safe place for pointer to the output + +#define input_z (NUMSIZE*7)(%rsp) + +#define NSPACE (NUMSIZE*7+8) + +// Corresponds exactly to bignum_montmul_p384_alt + +#define montmul_p384(P0,P1,P2) \ + movq P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + movq %rax, %r8 ; \ + movq %rdx, %r9 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + xorl %r10d, %r10d ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + xorl %r11d, %r11d ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + xorl %r12d, %r12d ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + xorl %r13d, %r13d ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + xorl %r14d, %r14d ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + xorl %r15d, %r15d ; \ + movq %r8, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r8, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r8 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r8, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r9 ; \ + sbbq %rdx, %r10 ; \ + sbbq %rbp, %r11 ; \ + sbbq $0x0, %r12 ; \ + sbbq $0x0, %r13 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x8+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + sbbq %r8, %r8 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %r8, %r8 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %r8, %r8 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %r8, %r8 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r8, %r8 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r8, %r8 ; \ + negq %r8; \ + movq %r9, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r9, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r9 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r9, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r10 ; \ + sbbq %rdx, %r11 ; \ + sbbq %rbp, %r12 ; \ + sbbq $0x0, %r13 ; \ + sbbq $0x0, %r14 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x10+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %r9, %r9 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %r9, %r9 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %r9, %r9 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r9, %r9 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r9, %r9 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + sbbq %r9, %r9 ; \ + negq %r9; \ + movq %r10, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r10, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r10 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r10, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r11 ; \ + sbbq %rdx, %r12 ; \ + sbbq %rbp, %r13 ; \ + sbbq $0x0, %r14 ; \ + sbbq $0x0, %r15 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x18+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %r10, %r10 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %r10, %r10 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r10, %r10 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r10, %r10 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + sbbq %r10, %r10 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + sbbq %r10, %r10 ; \ + negq %r10; \ + movq %r11, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r11, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r11 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r11, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r12 ; \ + sbbq %rdx, %r13 ; \ + sbbq %rbp, %r14 ; \ + sbbq $0x0, %r15 ; \ + sbbq $0x0, %r8 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x20+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %r11, %r11 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r11, %r11 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r11, %r11 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + sbbq %r11, %r11 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + sbbq %r11, %r11 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + sbbq %r11, %r11 ; \ + negq %r11; \ + movq %r12, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r12, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r12 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r12, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r13 ; \ + sbbq %rdx, %r14 ; \ + sbbq %rbp, %r15 ; \ + sbbq $0x0, %r8 ; \ + sbbq $0x0, %r9 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x28+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r12, %r12 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r12, %r12 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + sbbq %r12, %r12 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + sbbq %r12, %r12 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + sbbq %r12, %r12 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %r12, %r12 ; \ + negq %r12; \ + movq %r13, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r13, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r13 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r13, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r14 ; \ + sbbq %rdx, %r15 ; \ + sbbq %rbp, %r8 ; \ + sbbq $0x0, %r9 ; \ + sbbq $0x0, %r10 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r11 ; \ + adcq $0x0, %r12 ; \ + xorl %edx, %edx ; \ + xorl %ebp, %ebp ; \ + xorl %r13d, %r13d ; \ + movq $0xffffffff00000001, %rax ; \ + addq %r14, %rax ; \ + movl $0xffffffff, %ebx ; \ + adcq %r15, %rbx ; \ + movl $0x1, %ecx ; \ + adcq %r8, %rcx ; \ + adcq %r9, %rdx ; \ + adcq %r10, %rbp ; \ + adcq %r11, %r13 ; \ + adcq $0x0, %r12 ; \ + cmovneq %rax, %r14 ; \ + cmovneq %rbx, %r15 ; \ + cmovneq %rcx, %r8 ; \ + cmovneq %rdx, %r9 ; \ + cmovneq %rbp, %r10 ; \ + cmovneq %r13, %r11 ; \ + movq %r14, P0 ; \ + movq %r15, 0x8+P0 ; \ + movq %r8, 0x10+P0 ; \ + movq %r9, 0x18+P0 ; \ + movq %r10, 0x20+P0 ; \ + movq %r11, 0x28+P0 + +// Corresponds exactly to bignum_montsqr_p384_alt except %rsi -> %rdi + +#define montsqr_p384(P0,P1) \ + movq P1, %rbx ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + movq %rax, %r9 ; \ + movq %rdx, %r10 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + movq %rax, %r11 ; \ + movq %rdx, %r12 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + movq %rax, %r13 ; \ + movq %rdx, %r14 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x20+P1; \ + movq %rax, %r15 ; \ + movq %rdx, %rcx ; \ + movq 0x10+P1, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %rbp, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %rbp, %rbp ; \ + movq 0x8+P1, %rbx ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %rbp, %rbp ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %rbp, %rbp ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %rcx ; \ + movq 0x20+P1, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %rbp, %rbp ; \ + movq 0x10+P1, %rbx ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %rbp, %rbp ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %rbp, %rbp ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %rcx ; \ + sbbq %rbp, %rbp ; \ + xorl %ebx, %ebx ; \ + movq 0x18+P1, %rax ; \ + mulq 0x28+P1; \ + subq %rbp, %rdx ; \ + xorl %ebp, %ebp ; \ + addq %rax, %rcx ; \ + adcq %rdx, %rbx ; \ + adcl %ebp, %ebp ; \ + movq 0x20+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + xorl %r8d, %r8d ; \ + addq %r9, %r9 ; \ + adcq %r10, %r10 ; \ + adcq %r11, %r11 ; \ + adcq %r12, %r12 ; \ + adcq %r13, %r13 ; \ + adcq %r14, %r14 ; \ + adcq %r15, %r15 ; \ + adcq %rcx, %rcx ; \ + adcq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcl %r8d, %r8d ; \ + movq P1, %rax ; \ + mulq %rax; \ + movq %r8, P0 ; \ + movq %rax, %r8 ; \ + movq 0x8+P1, %rax ; \ + movq %rbp, 0x8+P0 ; \ + addq %rdx, %r9 ; \ + sbbq %rbp, %rbp ; \ + mulq %rax; \ + negq %rbp; \ + adcq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %rbp, %rbp ; \ + movq 0x10+P1, %rax ; \ + mulq %rax; \ + negq %rbp; \ + adcq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %rbp, %rbp ; \ + movq 0x18+P1, %rax ; \ + mulq %rax; \ + negq %rbp; \ + adcq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %rbp, %rbp ; \ + movq 0x20+P1, %rax ; \ + mulq %rax; \ + negq %rbp; \ + adcq %rax, %rcx ; \ + adcq %rdx, %rbx ; \ + sbbq %rbp, %rbp ; \ + movq 0x28+P1, %rax ; \ + mulq %rax; \ + negq %rbp; \ + adcq 0x8+P0, %rax ; \ + adcq P0, %rdx ; \ + movq %rax, %rbp ; \ + movq %rdx, %rdi ; \ + movq %rbx, P0 ; \ + movq %r8, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r8, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r8 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r8 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r8, %r9 ; \ + sbbq %rdx, %r10 ; \ + sbbq %rax, %r11 ; \ + sbbq $0x0, %r12 ; \ + sbbq $0x0, %r13 ; \ + movq %rbx, %r8 ; \ + sbbq $0x0, %r8 ; \ + movq %r9, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r9, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r9 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r9 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r9, %r10 ; \ + sbbq %rdx, %r11 ; \ + sbbq %rax, %r12 ; \ + sbbq $0x0, %r13 ; \ + sbbq $0x0, %r8 ; \ + movq %rbx, %r9 ; \ + sbbq $0x0, %r9 ; \ + movq %r10, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r10, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r10 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r10 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r10, %r11 ; \ + sbbq %rdx, %r12 ; \ + sbbq %rax, %r13 ; \ + sbbq $0x0, %r8 ; \ + sbbq $0x0, %r9 ; \ + movq %rbx, %r10 ; \ + sbbq $0x0, %r10 ; \ + movq %r11, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r11, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r11 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r11 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r11, %r12 ; \ + sbbq %rdx, %r13 ; \ + sbbq %rax, %r8 ; \ + sbbq $0x0, %r9 ; \ + sbbq $0x0, %r10 ; \ + movq %rbx, %r11 ; \ + sbbq $0x0, %r11 ; \ + movq %r12, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r12, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r12 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r12 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r12, %r13 ; \ + sbbq %rdx, %r8 ; \ + sbbq %rax, %r9 ; \ + sbbq $0x0, %r10 ; \ + sbbq $0x0, %r11 ; \ + movq %rbx, %r12 ; \ + sbbq $0x0, %r12 ; \ + movq %r13, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r13, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r13 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r13 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r13, %r8 ; \ + sbbq %rdx, %r9 ; \ + sbbq %rax, %r10 ; \ + sbbq $0x0, %r11 ; \ + sbbq $0x0, %r12 ; \ + movq %rbx, %r13 ; \ + sbbq $0x0, %r13 ; \ + movq P0, %rbx ; \ + addq %r8, %r14 ; \ + adcq %r9, %r15 ; \ + adcq %r10, %rcx ; \ + adcq %r11, %rbx ; \ + adcq %r12, %rbp ; \ + adcq %r13, %rdi ; \ + movl $0x0, %r8d ; \ + adcq %r8, %r8 ; \ + xorq %r11, %r11 ; \ + xorq %r12, %r12 ; \ + xorq %r13, %r13 ; \ + movq $0xffffffff00000001, %rax ; \ + addq %r14, %rax ; \ + movl $0xffffffff, %r9d ; \ + adcq %r15, %r9 ; \ + movl $0x1, %r10d ; \ + adcq %rcx, %r10 ; \ + adcq %rbx, %r11 ; \ + adcq %rbp, %r12 ; \ + adcq %rdi, %r13 ; \ + adcq $0x0, %r8 ; \ + cmovneq %rax, %r14 ; \ + cmovneq %r9, %r15 ; \ + cmovneq %r10, %rcx ; \ + cmovneq %r11, %rbx ; \ + cmovneq %r12, %rbp ; \ + cmovneq %r13, %rdi ; \ + movq %r14, P0 ; \ + movq %r15, 0x8+P0 ; \ + movq %rcx, 0x10+P0 ; \ + movq %rbx, 0x18+P0 ; \ + movq %rbp, 0x20+P0 ; \ + movq %rdi, 0x28+P0 + +#define sub_p384(P0,P1,P2) \ + movq P1, %rax ; \ + subq P2, %rax ; \ + movq 0x8+P1, %rdx ; \ + sbbq 0x8+P2, %rdx ; \ + movq 0x10+P1, %r8 ; \ + sbbq 0x10+P2, %r8 ; \ + movq 0x18+P1, %r9 ; \ + sbbq 0x18+P2, %r9 ; \ + movq 0x20+P1, %r10 ; \ + sbbq 0x20+P2, %r10 ; \ + movq 0x28+P1, %r11 ; \ + sbbq 0x28+P2, %r11 ; \ + sbbq %rcx, %rcx ; \ + movl $0xffffffff, %ebx ; \ + andq %rbx, %rcx ; \ + xorq %rbx, %rbx ; \ + subq %rcx, %rbx ; \ + subq %rbx, %rax ; \ + movq %rax, P0 ; \ + sbbq %rcx, %rdx ; \ + movq %rdx, 0x8+P0 ; \ + sbbq %rax, %rax ; \ + andq %rbx, %rcx ; \ + negq %rax; \ + sbbq %rcx, %r8 ; \ + movq %r8, 0x10+P0 ; \ + sbbq $0x0, %r9 ; \ + movq %r9, 0x18+P0 ; \ + sbbq $0x0, %r10 ; \ + movq %r10, 0x20+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x28+P0 + +// Simplified bignum_add_p384, without carry chain suspension + +#define add_p384(P0,P1,P2) \ + movq P1, %rax ; \ + addq P2, %rax ; \ + movq 0x8+P1, %rcx ; \ + adcq 0x8+P2, %rcx ; \ + movq 0x10+P1, %r8 ; \ + adcq 0x10+P2, %r8 ; \ + movq 0x18+P1, %r9 ; \ + adcq 0x18+P2, %r9 ; \ + movq 0x20+P1, %r10 ; \ + adcq 0x20+P2, %r10 ; \ + movq 0x28+P1, %r11 ; \ + adcq 0x28+P2, %r11 ; \ + movl $0x0, %edx ; \ + adcq %rdx, %rdx ; \ + movq $0xffffffff00000001, %rbp ; \ + addq %rbp, %rax ; \ + movl $0xffffffff, %ebp ; \ + adcq %rbp, %rcx ; \ + adcq $0x1, %r8 ; \ + adcq $0x0, %r9 ; \ + adcq $0x0, %r10 ; \ + adcq $0x0, %r11 ; \ + adcq $0xffffffffffffffff, %rdx ; \ + movl $1, %ebx ; \ + andq %rdx, %rbx ; \ + andq %rbp, %rdx ; \ + xorq %rbp, %rbp ; \ + subq %rdx, %rbp ; \ + subq %rbp, %rax ; \ + movq %rax, P0 ; \ + sbbq %rdx, %rcx ; \ + movq %rcx, 0x8+P0 ; \ + sbbq %rbx, %r8 ; \ + movq %r8, 0x10+P0 ; \ + sbbq $0x0, %r9 ; \ + movq %r9, 0x18+P0 ; \ + sbbq $0x0, %r10 ; \ + movq %r10, 0x20+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x28+P0 + +// P0 = 4 * P1 - P2 + +#define cmsub41_p384(P0,P1,P2) \ + movq 40+P1, %rcx ; \ + movq %rcx, %r13 ; \ + shrq $62, %rcx ; \ + movq 32+P1, %r12 ; \ + shldq $2, %r12, %r13 ; \ + movq 24+P1, %r11 ; \ + shldq $2, %r11, %r12 ; \ + movq 16+P1, %r10 ; \ + shldq $2, %r10, %r11 ; \ + movq 8+P1, %r9 ; \ + shldq $2, %r9, %r10 ; \ + movq P1, %r8 ; \ + shldq $2, %r8, %r9 ; \ + shlq $2, %r8 ; \ + addq $1, %rcx ; \ + subq P2, %r8 ; \ + sbbq 0x8+P2, %r9 ; \ + sbbq 0x10+P2, %r10 ; \ + sbbq 0x18+P2, %r11 ; \ + sbbq 0x20+P2, %r12 ; \ + sbbq 0x28+P2, %r13 ; \ + sbbq $0, %rcx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rcx; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq %rcx, %r10 ; \ + movq %rcx, %rax ; \ + sbbq %rcx, %rcx ; \ + movl $0xffffffff, %edx ; \ + negq %rcx; \ + mulq %rdx; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq %rcx, %r11 ; \ + adcq $0x0, %r12 ; \ + adcq $0x0, %r13 ; \ + sbbq %rcx, %rcx ; \ + notq %rcx; \ + movl $0xffffffff, %edx ; \ + xorq %rax, %rax ; \ + andq %rcx, %rdx ; \ + subq %rdx, %rax ; \ + andq $0x1, %rcx ; \ + subq %rax, %r8 ; \ + movq %r8, P0 ; \ + sbbq %rdx, %r9 ; \ + movq %r9, 0x8+P0 ; \ + sbbq %rcx, %r10 ; \ + movq %r10, 0x10+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x18+P0 ; \ + sbbq $0x0, %r12 ; \ + movq %r12, 0x20+P0 ; \ + sbbq $0x0, %r13 ; \ + movq %r13, 0x28+P0 + +// P0 = C * P1 - D * P2 + +#define cmsub_p384(P0,C,P1,D,P2) \ + movq $0x00000000ffffffff, %r9 ; \ + subq P2, %r9 ; \ + movq $0xffffffff00000000, %r10 ; \ + sbbq 8+P2, %r10 ; \ + movq $0xfffffffffffffffe, %r11 ; \ + sbbq 16+P2, %r11 ; \ + movq $0xffffffffffffffff, %r12 ; \ + sbbq 24+P2, %r12 ; \ + movq $0xffffffffffffffff, %r13 ; \ + sbbq 32+P2, %r13 ; \ + movq $0xffffffffffffffff, %r14 ; \ + sbbq 40+P2, %r14 ; \ + movq $D, %rcx ; \ + movq %r9, %rax ; \ + mulq %rcx; \ + movq %rax, %r8 ; \ + movq %rdx, %r9 ; \ + movq %r10, %rax ; \ + xorl %r10d, %r10d ; \ + mulq %rcx; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + movq %r11, %rax ; \ + xorl %r11d, %r11d ; \ + mulq %rcx; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + movq %r12, %rax ; \ + xorl %r12d, %r12d ; \ + mulq %rcx; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + movq %r13, %rax ; \ + xorl %r13d, %r13d ; \ + mulq %rcx; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + movq %r14, %rax ; \ + movl $1, %r14d ; \ + mulq %rcx; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + movl $C, %ecx ; \ + movq P1, %rax ; \ + mulq %rcx; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + sbbq %rbx, %rbx ; \ + movq 0x8+P1, %rax ; \ + mulq %rcx; \ + subq %rbx, %rdx ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + sbbq %rbx, %rbx ; \ + movq 0x10+P1, %rax ; \ + mulq %rcx; \ + subq %rbx, %rdx ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %rbx, %rbx ; \ + movq 0x18+P1, %rax ; \ + mulq %rcx; \ + subq %rbx, %rdx ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %rbx, %rbx ; \ + movq 0x20+P1, %rax ; \ + mulq %rcx; \ + subq %rbx, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %rbx, %rbx ; \ + movq 0x28+P1, %rax ; \ + mulq %rcx; \ + subq %rbx, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %r14; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq %r14, %r10 ; \ + movq %r14, %rax ; \ + sbbq %rcx, %rcx ; \ + movl $0xffffffff, %edx ; \ + negq %rcx; \ + mulq %rdx; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq %rcx, %r11 ; \ + adcq $0x0, %r12 ; \ + adcq $0x0, %r13 ; \ + sbbq %rcx, %rcx ; \ + notq %rcx; \ + movl $0xffffffff, %edx ; \ + xorq %rax, %rax ; \ + andq %rcx, %rdx ; \ + subq %rdx, %rax ; \ + andq $0x1, %rcx ; \ + subq %rax, %r8 ; \ + movq %r8, P0 ; \ + sbbq %rdx, %r9 ; \ + movq %r9, 0x8+P0 ; \ + sbbq %rcx, %r10 ; \ + movq %r10, 0x10+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x18+P0 ; \ + sbbq $0x0, %r12 ; \ + movq %r12, 0x20+P0 ; \ + sbbq $0x0, %r13 ; \ + movq %r13, 0x28+P0 + +// A weak version of add that only guarantees sum in 6 digits + +#define weakadd_p384(P0,P1,P2) \ + movq P1, %rax ; \ + addq P2, %rax ; \ + movq 0x8+P1, %rcx ; \ + adcq 0x8+P2, %rcx ; \ + movq 0x10+P1, %r8 ; \ + adcq 0x10+P2, %r8 ; \ + movq 0x18+P1, %r9 ; \ + adcq 0x18+P2, %r9 ; \ + movq 0x20+P1, %r10 ; \ + adcq 0x20+P2, %r10 ; \ + movq 0x28+P1, %r11 ; \ + adcq 0x28+P2, %r11 ; \ + sbbq %rdx, %rdx ; \ + movl $1, %ebx ; \ + andq %rdx, %rbx ; \ + movl $0xffffffff, %ebp ; \ + andq %rbp, %rdx ; \ + xorq %rbp, %rbp ; \ + subq %rdx, %rbp ; \ + addq %rbp, %rax ; \ + movq %rax, P0 ; \ + adcq %rdx, %rcx ; \ + movq %rcx, 0x8+P0 ; \ + adcq %rbx, %r8 ; \ + movq %r8, 0x10+P0 ; \ + adcq $0x0, %r9 ; \ + movq %r9, 0x18+P0 ; \ + adcq $0x0, %r10 ; \ + movq %r10, 0x20+P0 ; \ + adcq $0x0, %r11 ; \ + movq %r11, 0x28+P0 + +// P0 = 3 * P1 - 8 * P2 + +#define cmsub38_p384(P0,P1,P2) \ + movq $0x00000000ffffffff, %r8 ; \ + subq P2, %r8 ; \ + movq $0xffffffff00000000, %r9 ; \ + sbbq 8+P2, %r9 ; \ + movq $0xfffffffffffffffe, %r10 ; \ + sbbq 16+P2, %r10 ; \ + movq $0xffffffffffffffff, %r11 ; \ + sbbq 24+P2, %r11 ; \ + movq $0xffffffffffffffff, %r12 ; \ + sbbq 32+P2, %r12 ; \ + movq $0xffffffffffffffff, %r13 ; \ + sbbq 40+P2, %r13 ; \ + movq %r13, %r14 ; \ + shrq $61, %r14 ; \ + shldq $3, %r12, %r13 ; \ + shldq $3, %r11, %r12 ; \ + shldq $3, %r10, %r11 ; \ + shldq $3, %r9, %r10 ; \ + shldq $3, %r8, %r9 ; \ + shlq $3, %r8 ; \ + addq $1, %r14 ; \ + movl $3, %ecx ; \ + movq P1, %rax ; \ + mulq %rcx; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + sbbq %rbx, %rbx ; \ + movq 0x8+P1, %rax ; \ + mulq %rcx; \ + subq %rbx, %rdx ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + sbbq %rbx, %rbx ; \ + movq 0x10+P1, %rax ; \ + mulq %rcx; \ + subq %rbx, %rdx ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %rbx, %rbx ; \ + movq 0x18+P1, %rax ; \ + mulq %rcx; \ + subq %rbx, %rdx ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %rbx, %rbx ; \ + movq 0x20+P1, %rax ; \ + mulq %rcx; \ + subq %rbx, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %rbx, %rbx ; \ + movq 0x28+P1, %rax ; \ + mulq %rcx; \ + subq %rbx, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %r14; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq %r14, %r10 ; \ + movq %r14, %rax ; \ + sbbq %rcx, %rcx ; \ + movl $0xffffffff, %edx ; \ + negq %rcx; \ + mulq %rdx; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq %rcx, %r11 ; \ + adcq $0x0, %r12 ; \ + adcq $0x0, %r13 ; \ + sbbq %rcx, %rcx ; \ + notq %rcx; \ + movl $0xffffffff, %edx ; \ + xorq %rax, %rax ; \ + andq %rcx, %rdx ; \ + subq %rdx, %rax ; \ + andq $0x1, %rcx ; \ + subq %rax, %r8 ; \ + movq %r8, P0 ; \ + sbbq %rdx, %r9 ; \ + movq %r9, 0x8+P0 ; \ + sbbq %rcx, %r10 ; \ + movq %r10, 0x10+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x18+P0 ; \ + sbbq $0x0, %r12 ; \ + movq %r12, 0x20+P0 ; \ + sbbq $0x0, %r13 ; \ + movq %r13, 0x28+P0 + +S2N_BN_SYMBOL(p384_montjdouble_alt): + +#if WINDOWS_ABI + pushq %rdi + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi +#endif + +// Save registers and make room on stack for temporary variables +// Save the output pointer %rdi which gets overwritten in earlier +// operations before it is used. + + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + + subq $NSPACE, %rsp + + movq %rdi, input_z + +// Main code, just a sequence of basic field operations + +// z2 = z^2 +// y2 = y^2 + + montsqr_p384(z2,z_1) + montsqr_p384(y2,y_1) + +// x2p = x^2 - z^4 = (x + z^2) * (x - z^2) + + weakadd_p384(t1,x_1,z2) + sub_p384(t2,x_1,z2) + montmul_p384(x2p,t1,t2) + +// t1 = y + z +// x4p = x2p^2 +// xy2 = x * y^2 + + add_p384(t1,y_1,z_1) + montsqr_p384(x4p,x2p) + montmul_p384(xy2,x_1,y2) + +// t2 = (y + z)^2 + + montsqr_p384(t2,t1) + +// d = 12 * xy2 - 9 * x4p +// t1 = y^2 + 2 * y * z + + cmsub_p384(d,12,xy2,9,x4p) + sub_p384(t1,t2,z2) + +// y4 = y^4 + + montsqr_p384(y4,y2) + +// Restore the output pointer to write to x_3, y_3 and z_3. + + movq input_z, %rdi + +// z_3' = 2 * y * z +// dx2 = d * x2p + + sub_p384(z_3,t1,y2) + montmul_p384(dx2,d,x2p) + +// x' = 4 * xy2 - d + + cmsub41_p384(x_3,xy2,d) + +// y' = 3 * dx2 - 8 * y4 + + cmsub38_p384(y_3,dx2,y4) + +// Restore stack and registers + + addq $NSPACE, %rsp + popq %r15 + popq %r14 + popq %r13 + popq %r12 + popq %rbp + popq %rbx + +#if WINDOWS_ABI + popq %rsi + popq %rdi +#endif + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack, "", %progbits +#endif diff --git a/third_party/s2n-bignum/x86_att/p384/p384_montjmixadd.S b/third_party/s2n-bignum/x86_att/p384/p384_montjmixadd.S index 0d456464b9..539a28117a 100644 --- a/third_party/s2n-bignum/x86_att/p384/p384_montjmixadd.S +++ b/third_party/s2n-bignum/x86_att/p384/p384_montjmixadd.S @@ -30,7 +30,8 @@ // Pointer-offset pairs for inputs and outputs // These assume %rdi = p3, %rsi = p1 and %rcx = p2, -// which needs to be set up explicitly before use +// which needs to be set up explicitly before use. +// However the %rdi value never changes. #define x_1 0(%rsi) #define y_1 NUMSIZE(%rsi) @@ -48,6 +49,7 @@ #define zp2 (NUMSIZE*0)(%rsp) #define ww (NUMSIZE*0)(%rsp) +#define resx (NUMSIZE*0)(%rsp) #define yd (NUMSIZE*1)(%rsp) #define y2a (NUMSIZE*1)(%rsp) @@ -60,16 +62,17 @@ #define t2 (NUMSIZE*4)(%rsp) #define zzx1 (NUMSIZE*4)(%rsp) +#define resy (NUMSIZE*4)(%rsp) #define xd (NUMSIZE*5)(%rsp) +#define resz (NUMSIZE*5)(%rsp) // Temporaries for the actual input pointers #define input_x (NUMSIZE*6)(%rsp) #define input_y (NUMSIZE*6+8)(%rsp) -#define input_z (NUMSIZE*6+16)(%rsp) -#define NSPACE (NUMSIZE*6+24) +#define NSPACE (NUMSIZE*6+16) // Corresponds exactly to bignum_montmul_p384 @@ -835,6 +838,53 @@ sbbq $0x0, %r11 ; \ movq %r11, 0x28+P0 +// Additional macros to help with final multiplexing + +#define testzero6(P) \ + movq P, %rax ; \ + movq 8+P, %rdx ; \ + orq 16+P, %rax ; \ + orq 24+P, %rdx ; \ + orq 32+P, %rax ; \ + orq 40+P, %rdx ; \ + orq %rdx, %rax + +#define mux6(r0,r1,r2,r3,r4,r5,PNE,PEQ) \ + movq PEQ, %rax ; \ + movq PNE, r0 ; \ + cmovzq %rax, r0 ; \ + movq 8+PEQ, %rax ; \ + movq 8+PNE, r1 ; \ + cmovzq %rax, r1 ; \ + movq 16+PEQ, %rax ; \ + movq 16+PNE, r2 ; \ + cmovzq %rax, r2 ; \ + movq 24+PEQ, %rax ; \ + movq 24+PNE, r3 ; \ + cmovzq %rax, r3 ; \ + movq 32+PEQ, %rax ; \ + movq 32+PNE, r4 ; \ + cmovzq %rax, r4 ; \ + movq 40+PEQ, %rax ; \ + movq 40+PNE, r5 ; \ + cmovzq %rax, r5 + +#define load6(r0,r1,r2,r3,r4,r5,P) \ + movq P, r0 ; \ + movq 8+P, r1 ; \ + movq 16+P, r2 ; \ + movq 24+P, r3 ; \ + movq 32+P, r4 ; \ + movq 40+P, r5 + +#define store6(P,r0,r1,r2,r3,r4,r5) \ + movq r0, P ; \ + movq r1, 8+P ; \ + movq r2, 16+P ; \ + movq r3, 24+P ; \ + movq r4, 32+P ; \ + movq r5, 40+P + S2N_BN_SYMBOL(p384_montjmixadd): #if WINDOWS_ABI @@ -857,7 +907,6 @@ S2N_BN_SYMBOL(p384_montjmixadd): subq $NSPACE, %rsp - movq %rdi, input_z movq %rsi, input_x movq %rdx, input_y @@ -887,26 +936,52 @@ S2N_BN_SYMBOL(p384_montjmixadd): montmul_p384(zzx1,zz,x_1) montmul_p384(zzx2,zz,x2a) - movq input_z, %rdi - sub_p384(x_3,ww,zzx1) + sub_p384(resx,ww,zzx1) sub_p384(t1,zzx2,zzx1) - movq input_z, %rdi movq input_x, %rsi - montmul_p384(z_3,xd,z_1) + montmul_p384(resz,xd,z_1) - movq input_z, %rdi - sub_p384(x_3,x_3,zzx2) + sub_p384(resx,resx,zzx2) - movq input_z, %rdi - sub_p384(t2,zzx1,x_3) + sub_p384(t2,zzx1,resx) movq input_x, %rsi montmul_p384(t1,t1,y_1) montmul_p384(t2,yd,t2) - movq input_z, %rdi - sub_p384(y_3,t2,t1) + sub_p384(resy,t2,t1) + +// Test if z_1 = 0 to decide if p1 = 0 (up to projective equivalence) + + movq input_x, %rsi + testzero6(z_1) + +// Multiplex: if p1 <> 0 just copy the computed result from the staging area. +// If p1 = 0 then return the point p2 augmented with a z = 1 coordinate (in +// Montgomery form so not the simple constant 1 but rather 2^384 - p_384), +// hence giving 0 + p2 = p2 for the final result. + + movq input_y, %rcx + mux6(%r8,%r9,%r10,%r11,%rbx,%rbp,resx,x_2) + mux6(%r12,%r13,%r14,%r15,%rdx,%rcx,resy,y_2) + + store6(x_3,%r8,%r9,%r10,%r11,%rbx,%rbp) + store6(y_3,%r12,%r13,%r14,%r15,%rdx,%rcx) + + load6(%r8,%r9,%r10,%r11,%rbx,%rbp,resz) + movq $0xffffffff00000001, %rax + cmovzq %rax, %r8 + movl $0x00000000ffffffff, %eax + cmovzq %rax, %r9 + movq $1, %rax + cmovzq %rax, %r10 + movl $0, %eax + cmovzq %rax, %r11 + cmovzq %rax, %rbx + cmovzq %rax, %rbp + + store6(z_3,%r8,%r9,%r10,%r11,%rbx,%rbp) // Restore stack and registers diff --git a/third_party/s2n-bignum/x86_att/p384/p384_montjmixadd_alt.S b/third_party/s2n-bignum/x86_att/p384/p384_montjmixadd_alt.S new file mode 100644 index 0000000000..da610ee88e --- /dev/null +++ b/third_party/s2n-bignum/x86_att/p384/p384_montjmixadd_alt.S @@ -0,0 +1,929 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Point mixed addition on NIST curve P-384 in Montgomery-Jacobian coordinates +// +// extern void p384_montjmixadd_alt +// (uint64_t p3[static 18],uint64_t p1[static 18],uint64_t p2[static 12]); +// +// Does p3 := p1 + p2 where all points are regarded as Jacobian triples with +// each coordinate in the Montgomery domain, i.e. x' = (2^384 * x) mod p_384. +// A Jacobian triple (x',y',z') represents affine point (x/z^2,y/z^3). +// The "mixed" part means that p2 only has x and y coordinates, with the +// implicit z coordinate assumed to be the identity. +// +// Standard x86-64 ABI: RDI = p3, RSI = p1, RDX = p2 +// Microsoft x64 ABI: RCX = p3, RDX = p1, R8 = p2 +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(p384_montjmixadd_alt) + S2N_BN_SYM_PRIVACY_DIRECTIVE(p384_montjmixadd_alt) + .text + .balign 4 + +// Size of individual field elements + +#define NUMSIZE 48 + +// Pointer-offset pairs for inputs and outputs +// These assume %rdi = p3, %rsi = p1 and %rcx = p2, +// which needs to be set up explicitly before use. +// However the %rdi value never changes. + +#define x_1 0(%rsi) +#define y_1 NUMSIZE(%rsi) +#define z_1 (2*NUMSIZE)(%rsi) + +#define x_2 0(%rcx) +#define y_2 NUMSIZE(%rcx) + +#define x_3 0(%rdi) +#define y_3 NUMSIZE(%rdi) +#define z_3 (2*NUMSIZE)(%rdi) + +// Pointer-offset pairs for temporaries, with some aliasing +// NSPACE is the total stack needed for these temporaries + +#define zp2 (NUMSIZE*0)(%rsp) +#define ww (NUMSIZE*0)(%rsp) +#define resx (NUMSIZE*0)(%rsp) + +#define yd (NUMSIZE*1)(%rsp) +#define y2a (NUMSIZE*1)(%rsp) + +#define x2a (NUMSIZE*2)(%rsp) +#define zzx2 (NUMSIZE*2)(%rsp) + +#define zz (NUMSIZE*3)(%rsp) +#define t1 (NUMSIZE*3)(%rsp) + +#define t2 (NUMSIZE*4)(%rsp) +#define zzx1 (NUMSIZE*4)(%rsp) +#define resy (NUMSIZE*4)(%rsp) + +#define xd (NUMSIZE*5)(%rsp) +#define resz (NUMSIZE*5)(%rsp) + +// Temporaries for the actual input pointers + +#define input_x (NUMSIZE*6)(%rsp) +#define input_y (NUMSIZE*6+8)(%rsp) + +#define NSPACE (NUMSIZE*6+16) + +// Corresponds exactly to bignum_montmul_p384_alt + +#define montmul_p384(P0,P1,P2) \ + movq P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + movq %rax, %r8 ; \ + movq %rdx, %r9 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + xorl %r10d, %r10d ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + xorl %r11d, %r11d ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + xorl %r12d, %r12d ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + xorl %r13d, %r13d ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + xorl %r14d, %r14d ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + xorl %r15d, %r15d ; \ + movq %r8, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r8, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r8 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r8, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r9 ; \ + sbbq %rdx, %r10 ; \ + sbbq %rbp, %r11 ; \ + sbbq $0x0, %r12 ; \ + sbbq $0x0, %r13 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x8+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + sbbq %r8, %r8 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %r8, %r8 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %r8, %r8 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %r8, %r8 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r8, %r8 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r8, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r8, %r8 ; \ + negq %r8; \ + movq %r9, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r9, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r9 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r9, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r10 ; \ + sbbq %rdx, %r11 ; \ + sbbq %rbp, %r12 ; \ + sbbq $0x0, %r13 ; \ + sbbq $0x0, %r14 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x10+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %r9, %r9 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %r9, %r9 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %r9, %r9 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r9, %r9 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r9, %r9 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r9, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + sbbq %r9, %r9 ; \ + negq %r9; \ + movq %r10, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r10, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r10 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r10, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r11 ; \ + sbbq %rdx, %r12 ; \ + sbbq %rbp, %r13 ; \ + sbbq $0x0, %r14 ; \ + sbbq $0x0, %r15 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x18+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %r10, %r10 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %r10, %r10 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r10, %r10 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r10, %r10 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + sbbq %r10, %r10 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r10, %rdx ; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + sbbq %r10, %r10 ; \ + negq %r10; \ + movq %r11, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r11, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r11 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r11, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r12 ; \ + sbbq %rdx, %r13 ; \ + sbbq %rbp, %r14 ; \ + sbbq $0x0, %r15 ; \ + sbbq $0x0, %r8 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x20+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %r11, %r11 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r11, %r11 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r11, %r11 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + sbbq %r11, %r11 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + sbbq %r11, %r11 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r11, %rdx ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + sbbq %r11, %r11 ; \ + negq %r11; \ + movq %r12, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r12, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r12 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r12, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r13 ; \ + sbbq %rdx, %r14 ; \ + sbbq %rbp, %r15 ; \ + sbbq $0x0, %r8 ; \ + sbbq $0x0, %r9 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x28+P2, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %r12, %r12 ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %r12, %r12 ; \ + movq 0x10+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + sbbq %r12, %r12 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + sbbq %r12, %r12 ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + sbbq %r12, %r12 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %r12, %rdx ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %r12, %r12 ; \ + negq %r12; \ + movq %r13, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r13, %rbx ; \ + xorl %ebp, %ebp ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r13 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %r13, %rax ; \ + adcq %rbx, %rdx ; \ + adcl %ebp, %ebp ; \ + subq %rax, %r14 ; \ + sbbq %rdx, %r15 ; \ + sbbq %rbp, %r8 ; \ + sbbq $0x0, %r9 ; \ + sbbq $0x0, %r10 ; \ + sbbq $0x0, %rbx ; \ + addq %rbx, %r11 ; \ + adcq $0x0, %r12 ; \ + xorl %edx, %edx ; \ + xorl %ebp, %ebp ; \ + xorl %r13d, %r13d ; \ + movq $0xffffffff00000001, %rax ; \ + addq %r14, %rax ; \ + movl $0xffffffff, %ebx ; \ + adcq %r15, %rbx ; \ + movl $0x1, %ecx ; \ + adcq %r8, %rcx ; \ + adcq %r9, %rdx ; \ + adcq %r10, %rbp ; \ + adcq %r11, %r13 ; \ + adcq $0x0, %r12 ; \ + cmovneq %rax, %r14 ; \ + cmovneq %rbx, %r15 ; \ + cmovneq %rcx, %r8 ; \ + cmovneq %rdx, %r9 ; \ + cmovneq %rbp, %r10 ; \ + cmovneq %r13, %r11 ; \ + movq %r14, P0 ; \ + movq %r15, 0x8+P0 ; \ + movq %r8, 0x10+P0 ; \ + movq %r9, 0x18+P0 ; \ + movq %r10, 0x20+P0 ; \ + movq %r11, 0x28+P0 + +// Corresponds exactly to bignum_montsqr_p384_alt + +#define montsqr_p384(P0,P1) \ + movq P1, %rbx ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + movq %rax, %r9 ; \ + movq %rdx, %r10 ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + movq %rax, %r11 ; \ + movq %rdx, %r12 ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + movq %rax, %r13 ; \ + movq %rdx, %r14 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x20+P1; \ + movq %rax, %r15 ; \ + movq %rdx, %rcx ; \ + movq 0x10+P1, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %rbp, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %rbp, %rbp ; \ + movq 0x8+P1, %rbx ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %rbp, %rbp ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %rbp, %rbp ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %rcx ; \ + movq 0x20+P1, %rbx ; \ + movq P1, %rax ; \ + mulq %rbx; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %rbp, %rbp ; \ + movq 0x10+P1, %rbx ; \ + movq 0x18+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %rbp, %rbp ; \ + movq 0x20+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %rbp, %rbp ; \ + movq 0x28+P1, %rax ; \ + mulq %rbx; \ + subq %rbp, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %rcx ; \ + sbbq %rbp, %rbp ; \ + xorl %ebx, %ebx ; \ + movq 0x18+P1, %rax ; \ + mulq 0x28+P1; \ + subq %rbp, %rdx ; \ + xorl %ebp, %ebp ; \ + addq %rax, %rcx ; \ + adcq %rdx, %rbx ; \ + adcl %ebp, %ebp ; \ + movq 0x20+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + xorl %r8d, %r8d ; \ + addq %r9, %r9 ; \ + adcq %r10, %r10 ; \ + adcq %r11, %r11 ; \ + adcq %r12, %r12 ; \ + adcq %r13, %r13 ; \ + adcq %r14, %r14 ; \ + adcq %r15, %r15 ; \ + adcq %rcx, %rcx ; \ + adcq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcl %r8d, %r8d ; \ + movq P1, %rax ; \ + mulq %rax; \ + movq %r8, P0 ; \ + movq %rax, %r8 ; \ + movq 0x8+P1, %rax ; \ + movq %rbp, 0x8+P0 ; \ + addq %rdx, %r9 ; \ + sbbq %rbp, %rbp ; \ + mulq %rax; \ + negq %rbp; \ + adcq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %rbp, %rbp ; \ + movq 0x10+P1, %rax ; \ + mulq %rax; \ + negq %rbp; \ + adcq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %rbp, %rbp ; \ + movq 0x18+P1, %rax ; \ + mulq %rax; \ + negq %rbp; \ + adcq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %rbp, %rbp ; \ + movq 0x20+P1, %rax ; \ + mulq %rax; \ + negq %rbp; \ + adcq %rax, %rcx ; \ + adcq %rdx, %rbx ; \ + sbbq %rbp, %rbp ; \ + movq 0x28+P1, %rax ; \ + mulq %rax; \ + negq %rbp; \ + adcq 0x8+P0, %rax ; \ + adcq P0, %rdx ; \ + movq %rax, %rbp ; \ + movq %rdx, %rsi ; \ + movq %rbx, P0 ; \ + movq %r8, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r8, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r8 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r8 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r8, %r9 ; \ + sbbq %rdx, %r10 ; \ + sbbq %rax, %r11 ; \ + sbbq $0x0, %r12 ; \ + sbbq $0x0, %r13 ; \ + movq %rbx, %r8 ; \ + sbbq $0x0, %r8 ; \ + movq %r9, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r9, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r9 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r9 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r9, %r10 ; \ + sbbq %rdx, %r11 ; \ + sbbq %rax, %r12 ; \ + sbbq $0x0, %r13 ; \ + sbbq $0x0, %r8 ; \ + movq %rbx, %r9 ; \ + sbbq $0x0, %r9 ; \ + movq %r10, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r10, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r10 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r10 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r10, %r11 ; \ + sbbq %rdx, %r12 ; \ + sbbq %rax, %r13 ; \ + sbbq $0x0, %r8 ; \ + sbbq $0x0, %r9 ; \ + movq %rbx, %r10 ; \ + sbbq $0x0, %r10 ; \ + movq %r11, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r11, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r11 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r11 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r11, %r12 ; \ + sbbq %rdx, %r13 ; \ + sbbq %rax, %r8 ; \ + sbbq $0x0, %r9 ; \ + sbbq $0x0, %r10 ; \ + movq %rbx, %r11 ; \ + sbbq $0x0, %r11 ; \ + movq %r12, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r12, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r12 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r12 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r12, %r13 ; \ + sbbq %rdx, %r8 ; \ + sbbq %rax, %r9 ; \ + sbbq $0x0, %r10 ; \ + sbbq $0x0, %r11 ; \ + movq %rbx, %r12 ; \ + sbbq $0x0, %r12 ; \ + movq %r13, %rbx ; \ + shlq $0x20, %rbx ; \ + addq %r13, %rbx ; \ + movq $0xffffffff00000001, %rax ; \ + mulq %rbx; \ + movq %rdx, %r13 ; \ + movq $0xffffffff, %rax ; \ + mulq %rbx; \ + addq %rax, %r13 ; \ + movl $0x0, %eax ; \ + adcq %rbx, %rdx ; \ + adcl %eax, %eax ; \ + subq %r13, %r8 ; \ + sbbq %rdx, %r9 ; \ + sbbq %rax, %r10 ; \ + sbbq $0x0, %r11 ; \ + sbbq $0x0, %r12 ; \ + movq %rbx, %r13 ; \ + sbbq $0x0, %r13 ; \ + movq P0, %rbx ; \ + addq %r8, %r14 ; \ + adcq %r9, %r15 ; \ + adcq %r10, %rcx ; \ + adcq %r11, %rbx ; \ + adcq %r12, %rbp ; \ + adcq %r13, %rsi ; \ + movl $0x0, %r8d ; \ + adcq %r8, %r8 ; \ + xorq %r11, %r11 ; \ + xorq %r12, %r12 ; \ + xorq %r13, %r13 ; \ + movq $0xffffffff00000001, %rax ; \ + addq %r14, %rax ; \ + movl $0xffffffff, %r9d ; \ + adcq %r15, %r9 ; \ + movl $0x1, %r10d ; \ + adcq %rcx, %r10 ; \ + adcq %rbx, %r11 ; \ + adcq %rbp, %r12 ; \ + adcq %rsi, %r13 ; \ + adcq $0x0, %r8 ; \ + cmovneq %rax, %r14 ; \ + cmovneq %r9, %r15 ; \ + cmovneq %r10, %rcx ; \ + cmovneq %r11, %rbx ; \ + cmovneq %r12, %rbp ; \ + cmovneq %r13, %rsi ; \ + movq %r14, P0 ; \ + movq %r15, 0x8+P0 ; \ + movq %rcx, 0x10+P0 ; \ + movq %rbx, 0x18+P0 ; \ + movq %rbp, 0x20+P0 ; \ + movq %rsi, 0x28+P0 + +// Corresponds exactly to bignum_sub_p384 + +#define sub_p384(P0,P1,P2) \ + movq P1, %rax ; \ + subq P2, %rax ; \ + movq 0x8+P1, %rdx ; \ + sbbq 0x8+P2, %rdx ; \ + movq 0x10+P1, %r8 ; \ + sbbq 0x10+P2, %r8 ; \ + movq 0x18+P1, %r9 ; \ + sbbq 0x18+P2, %r9 ; \ + movq 0x20+P1, %r10 ; \ + sbbq 0x20+P2, %r10 ; \ + movq 0x28+P1, %r11 ; \ + sbbq 0x28+P2, %r11 ; \ + sbbq %rcx, %rcx ; \ + movl $0xffffffff, %esi ; \ + andq %rsi, %rcx ; \ + xorq %rsi, %rsi ; \ + subq %rcx, %rsi ; \ + subq %rsi, %rax ; \ + movq %rax, P0 ; \ + sbbq %rcx, %rdx ; \ + movq %rdx, 0x8+P0 ; \ + sbbq %rax, %rax ; \ + andq %rsi, %rcx ; \ + negq %rax; \ + sbbq %rcx, %r8 ; \ + movq %r8, 0x10+P0 ; \ + sbbq $0x0, %r9 ; \ + movq %r9, 0x18+P0 ; \ + sbbq $0x0, %r10 ; \ + movq %r10, 0x20+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x28+P0 + +// Additional macros to help with final multiplexing + +#define testzero6(P) \ + movq P, %rax ; \ + movq 8+P, %rdx ; \ + orq 16+P, %rax ; \ + orq 24+P, %rdx ; \ + orq 32+P, %rax ; \ + orq 40+P, %rdx ; \ + orq %rdx, %rax + +#define mux6(r0,r1,r2,r3,r4,r5,PNE,PEQ) \ + movq PEQ, %rax ; \ + movq PNE, r0 ; \ + cmovzq %rax, r0 ; \ + movq 8+PEQ, %rax ; \ + movq 8+PNE, r1 ; \ + cmovzq %rax, r1 ; \ + movq 16+PEQ, %rax ; \ + movq 16+PNE, r2 ; \ + cmovzq %rax, r2 ; \ + movq 24+PEQ, %rax ; \ + movq 24+PNE, r3 ; \ + cmovzq %rax, r3 ; \ + movq 32+PEQ, %rax ; \ + movq 32+PNE, r4 ; \ + cmovzq %rax, r4 ; \ + movq 40+PEQ, %rax ; \ + movq 40+PNE, r5 ; \ + cmovzq %rax, r5 + +#define load6(r0,r1,r2,r3,r4,r5,P) \ + movq P, r0 ; \ + movq 8+P, r1 ; \ + movq 16+P, r2 ; \ + movq 24+P, r3 ; \ + movq 32+P, r4 ; \ + movq 40+P, r5 + +#define store6(P,r0,r1,r2,r3,r4,r5) \ + movq r0, P ; \ + movq r1, 8+P ; \ + movq r2, 16+P ; \ + movq r3, 24+P ; \ + movq r4, 32+P ; \ + movq r5, 40+P + +S2N_BN_SYMBOL(p384_montjmixadd_alt): + +#if WINDOWS_ABI + pushq %rdi + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi + movq %r8, %rdx +#endif + +// Save registers and make room on stack for temporary variables +// Put the input arguments in non-volatile places on the stack + + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + + subq $NSPACE, %rsp + + movq %rsi, input_x + movq %rdx, input_y + +// Main code, just a sequence of basic field operations +// 8 * multiply + 3 * square + 7 * subtract + + montsqr_p384(zp2,z_1) + + movq input_x, %rsi + movq input_y, %rcx + montmul_p384(y2a,z_1,y_2) + + movq input_y, %rcx + montmul_p384(x2a,zp2,x_2) + + montmul_p384(y2a,zp2,y2a) + + movq input_x, %rsi + sub_p384(xd,x2a,x_1) + movq input_x, %rsi + sub_p384(yd,y2a,y_1) + + montsqr_p384(zz,xd) + montsqr_p384(ww,yd) + + movq input_x, %rsi + montmul_p384(zzx1,zz,x_1) + montmul_p384(zzx2,zz,x2a) + + sub_p384(resx,ww,zzx1) + sub_p384(t1,zzx2,zzx1) + + movq input_x, %rsi + montmul_p384(resz,xd,z_1) + + sub_p384(resx,resx,zzx2) + + sub_p384(t2,zzx1,resx) + + movq input_x, %rsi + montmul_p384(t1,t1,y_1) + montmul_p384(t2,yd,t2) + + sub_p384(resy,t2,t1) + +// Test if z_1 = 0 to decide if p1 = 0 (up to projective equivalence) + + movq input_x, %rsi + testzero6(z_1) + +// Multiplex: if p1 <> 0 just copy the computed result from the staging area. +// If p1 = 0 then return the point p2 augmented with a z = 1 coordinate (in +// Montgomery form so not the simple constant 1 but rather 2^384 - p_384), +// hence giving 0 + p2 = p2 for the final result. + + movq input_y, %rcx + mux6(%r8,%r9,%r10,%r11,%rbx,%rbp,resx,x_2) + mux6(%r12,%r13,%r14,%r15,%rdx,%rcx,resy,y_2) + + store6(x_3,%r8,%r9,%r10,%r11,%rbx,%rbp) + store6(y_3,%r12,%r13,%r14,%r15,%rdx,%rcx) + + load6(%r8,%r9,%r10,%r11,%rbx,%rbp,resz) + movq $0xffffffff00000001, %rax + cmovzq %rax, %r8 + movl $0x00000000ffffffff, %eax + cmovzq %rax, %r9 + movq $1, %rax + cmovzq %rax, %r10 + movl $0, %eax + cmovzq %rax, %r11 + cmovzq %rax, %rbx + cmovzq %rax, %rbp + + store6(z_3,%r8,%r9,%r10,%r11,%rbx,%rbp) + +// Restore stack and registers + + addq $NSPACE, %rsp + popq %r15 + popq %r14 + popq %r13 + popq %r12 + popq %rbp + popq %rbx + +#if WINDOWS_ABI + popq %rsi + popq %rdi +#endif + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack, "", %progbits +#endif diff --git a/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521_alt.S b/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521_alt.S index f87546928a..a769fa0b3a 100644 --- a/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521_alt.S +++ b/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521_alt.S @@ -74,10 +74,6 @@ S2N_BN_SYMBOL(bignum_mul_p521_alt): movq %rdx, y -// Copy y into a safe register to start with - - mov %rdx, y - // Start doing a conventional columnwise multiplication, // temporarily storing the lower 9 digits to the stack. // Start with result term 0 diff --git a/third_party/s2n-bignum/x86_att/p521/p521_jadd.S b/third_party/s2n-bignum/x86_att/p521/p521_jadd.S index 807a7c5472..9f1b03c47b 100644 --- a/third_party/s2n-bignum/x86_att/p521/p521_jadd.S +++ b/third_party/s2n-bignum/x86_att/p521/p521_jadd.S @@ -55,6 +55,7 @@ #define z1sq (NUMSIZE*0)(%rsp) #define ww (NUMSIZE*0)(%rsp) +#define resx (NUMSIZE*0)(%rsp) #define yd (NUMSIZE*1)(%rsp) #define y2a (NUMSIZE*1)(%rsp) @@ -68,9 +69,11 @@ #define t2 (NUMSIZE*4)(%rsp) #define x1a (NUMSIZE*4)(%rsp) #define zzx1 (NUMSIZE*4)(%rsp) +#define resy (NUMSIZE*4)(%rsp) #define xd (NUMSIZE*5)(%rsp) #define z2sq (NUMSIZE*5)(%rsp) +#define resz (NUMSIZE*5)(%rsp) #define y1a (NUMSIZE*6)(%rsp) @@ -670,6 +673,79 @@ andq $0x1ff, %r14 ; \ movq %r14, 0x40+P0 +// Additional macros to help with final multiplexing + +#define load9(r0,r1,r2,r3,r4,r5,r6,r7,ra,P) \ + movq P, r0 ; \ + movq 8+P, r1 ; \ + movq 16+P, r2 ; \ + movq 24+P, r3 ; \ + movq 32+P, r4 ; \ + movq 40+P, r5 ; \ + movq 48+P, r6 ; \ + movq 56+P, r7 ; \ + movq 64+P, ra + +#define store9(P,r0,r1,r2,r3,r4,r5,r6,r7,ra) \ + movq r0, P ; \ + movq r1, 8+P ; \ + movq r2, 16+P ; \ + movq r3, 24+P ; \ + movq r4, 32+P ; \ + movq r5, 40+P ; \ + movq r6, 48+P ; \ + movq r7, 56+P ; \ + movq ra, 64+P + +#define muxload9(r0,r1,r2,r3,r4,r5,r6,r7,ra,P0,P1,P2) \ + movq P0, r0 ; \ + cmovbq P1, r0 ; \ + cmovnbe P2, r0 ; \ + movq 8+P0, r1 ; \ + cmovbq 8+P1, r1 ; \ + cmovnbe 8+P2, r1 ; \ + movq 16+P0, r2 ; \ + cmovbq 16+P1, r2 ; \ + cmovnbe 16+P2, r2 ; \ + movq 24+P0, r3 ; \ + cmovbq 24+P1, r3 ; \ + cmovnbe 24+P2, r3 ; \ + movq 32+P0, r4 ; \ + cmovbq 32+P1, r4 ; \ + cmovnbe 32+P2, r4 ; \ + movq 40+P0, r5 ; \ + cmovbq 40+P1, r5 ; \ + cmovnbe 40+P2, r5 ; \ + movq 48+P0, r6 ; \ + cmovbq 48+P1, r6 ; \ + cmovnbe 48+P2, r6 ; \ + movq 56+P0, r7 ; \ + cmovbq 56+P1, r7 ; \ + cmovnbe 56+P2, r7 ; \ + movq 64+P0, ra ; \ + cmovbq 64+P1, ra ; \ + cmovnbe 64+P2, ra + +#define copy9(P0,P1) \ + movq P1, %rax ; \ + movq %rax, P0 ; \ + movq 8+P1, %rax ; \ + movq %rax, 8+P0 ; \ + movq 16+P1, %rax ; \ + movq %rax, 16+P0 ; \ + movq 24+P1, %rax ; \ + movq %rax, 24+P0 ; \ + movq 32+P1, %rax ; \ + movq %rax, 32+P0 ; \ + movq 40+P1, %rax ; \ + movq %rax, 40+P0 ; \ + movq 48+P1, %rax ; \ + movq %rax, 48+P0 ; \ + movq 56+P1, %rax ; \ + movq %rax, 56+P0 ; \ + movq 64+P1, %rax ; \ + movq %rax, 64+P0 + S2N_BN_SYMBOL(p521_jadd): #if WINDOWS_ABI @@ -717,20 +793,64 @@ S2N_BN_SYMBOL(p521_jadd): mul_p521(zzx1,zz,x1a) mul_p521(zzx2,zz,x2a) - sub_p521(x_3,ww,zzx1) + sub_p521(resx,ww,zzx1) sub_p521(t1,zzx2,zzx1) mul_p521(xd,xd,z_1) - sub_p521(x_3,x_3,zzx2) + sub_p521(resx,resx,zzx2) - sub_p521(t2,zzx1,x_3) + sub_p521(t2,zzx1,resx) mul_p521(t1,t1,y1a) - mul_p521(z_3,xd,z_2) + mul_p521(resz,xd,z_2) mul_p521(t2,yd,t2) - sub_p521(y_3,t2,t1) + sub_p521(resy,t2,t1) + +// Load in the z coordinates of the inputs to check for P1 = 0 and P2 = 0 +// The condition codes get set by a comparison (P2 != 0) - (P1 != 0) +// So "NBE" <=> ~(CF \/ ZF) <=> P1 = 0 /\ ~(P2 = 0) +// and "B" <=> CF <=> ~(P1 = 0) /\ P2 = 0 +// and "Z" <=> ZF <=> (P1 = 0 <=> P2 = 0) + + load9(%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp,z_1) + orq %r9, %r8 + orq %r11, %r10 + orq %r13, %r12 + orq %r15, %r14 + orq %r10, %r8 + orq %r14, %r12 + orq %rbp, %r8 + orq %r12, %r8 + negq %r8 + sbbq %rax, %rax + + load9(%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp,z_2) + orq %r9, %r8 + orq %r11, %r10 + orq %r13, %r12 + orq %r15, %r14 + orq %r10, %r8 + orq %r14, %r12 + orq %rbp, %r8 + orq %r12, %r8 + negq %r8 + sbbq %rdx, %rdx + + cmpq %rax, %rdx + +// Multiplex the outputs accordingly. Re-store them in resz until there +// are no more loads, so there are no assumptions on input-output aliasing + + muxload9(%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp,resy,y_1,y_2) + store9(resy,%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp) + muxload9(%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp,resz,z_1,z_2) + store9(resz,%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp) + muxload9(%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp,resx,x_1,x_2) + store9(x_3,%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp) + copy9(y_3,resy) + copy9(z_3,resz) // Restore stack and registers diff --git a/third_party/s2n-bignum/x86_att/p521/p521_jadd_alt.S b/third_party/s2n-bignum/x86_att/p521/p521_jadd_alt.S new file mode 100644 index 0000000000..5b51a4f6a6 --- /dev/null +++ b/third_party/s2n-bignum/x86_att/p521/p521_jadd_alt.S @@ -0,0 +1,1149 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Point addition on NIST curve P-521 in Jacobian coordinates +// +// extern void p521_jadd_alt +// (uint64_t p3[static 27],uint64_t p1[static 27],uint64_t p2[static 27]); +// +// Does p3 := p1 + p2 where all points are regarded as Jacobian triples. +// A Jacobian triple (x,y,z) represents affine point (x/z^2,y/z^3). +// It is assumed that all coordinates of the input points p1 and p2 are +// fully reduced mod p_521, that both z coordinates are nonzero and +// that neither p1 =~= p2 or p1 =~= -p2, where "=~=" means "represents +// the same affine point as". +// +// Standard x86-64 ABI: RDI = p3, RSI = p1, RDX = p2 +// Microsoft x64 ABI: RCX = p3, RDX = p1, R8 = p2 +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(p521_jadd_alt) + S2N_BN_SYM_PRIVACY_DIRECTIVE(p521_jadd_alt) + .text + +// Size of individual field elements + +#define NUMSIZE 72 + +// Stable homes for input arguments during main code sequence +// These are where they arrive except for input_y, initially in %rdx + +#define input_z %rdi +#define input_x %rsi +#define input_y %rcx + +// Pointer-offset pairs for inputs and outputs + +#define x_1 0(input_x) +#define y_1 NUMSIZE(input_x) +#define z_1 (2*NUMSIZE)(input_x) + +#define x_2 0(input_y) +#define y_2 NUMSIZE(input_y) +#define z_2 (2*NUMSIZE)(input_y) + +#define x_3 0(input_z) +#define y_3 NUMSIZE(input_z) +#define z_3 (2*NUMSIZE)(input_z) + +// Pointer-offset pairs for temporaries, with some aliasing +// The tmp field is internal storage for field mul and sqr. +// NSPACE is the total stack needed for these temporaries + +#define z1sq (NUMSIZE*0)(%rsp) +#define ww (NUMSIZE*0)(%rsp) +#define resx (NUMSIZE*0)(%rsp) + +#define yd (NUMSIZE*1)(%rsp) +#define y2a (NUMSIZE*1)(%rsp) + +#define x2a (NUMSIZE*2)(%rsp) +#define zzx2 (NUMSIZE*2)(%rsp) + +#define zz (NUMSIZE*3)(%rsp) +#define t1 (NUMSIZE*3)(%rsp) + +#define t2 (NUMSIZE*4)(%rsp) +#define x1a (NUMSIZE*4)(%rsp) +#define zzx1 (NUMSIZE*4)(%rsp) +#define resy (NUMSIZE*4)(%rsp) + +#define xd (NUMSIZE*5)(%rsp) +#define z2sq (NUMSIZE*5)(%rsp) +#define resz (NUMSIZE*5)(%rsp) + +#define y1a (NUMSIZE*6)(%rsp) + +#define tmp (NUMSIZE*7)(%rsp) + +#define NSPACE (NUMSIZE*8) + +// Corresponds exactly to bignum_mul_p521_alt except temp storage + +#define mul_p521(P0,P1,P2) \ + movq P1, %rax ; \ + mulq P2; \ + movq %rax, 504(%rsp) ; \ + movq %rdx, %r9 ; \ + xorq %r10, %r10 ; \ + xorq %r11, %r11 ; \ + movq P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + movq 0x8+P1, %rax ; \ + mulq P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq %r11, %r11 ; \ + movq %r9, 512(%rsp) ; \ + xorq %r12, %r12 ; \ + movq P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq %r12, %r12 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x10+P1, %rax ; \ + mulq P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq %r10, 520(%rsp) ; \ + xorq %r13, %r13 ; \ + movq P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq %r13, %r13 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x18+P1, %rax ; \ + mulq P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq %r11, 528(%rsp) ; \ + xorq %r14, %r14 ; \ + movq P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq %r14, %r14 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x20+P1, %rax ; \ + mulq P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq %r12, 536(%rsp) ; \ + xorq %r15, %r15 ; \ + movq P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq %r15, %r15 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x28+P1, %rax ; \ + mulq P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq %r13, 544(%rsp) ; \ + xorq %r8, %r8 ; \ + movq P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq %r8, %r8 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x30+P1, %rax ; \ + mulq P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq %r14, 552(%rsp) ; \ + xorq %r9, %r9 ; \ + movq P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq %r9, %r9 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x38+P1, %rax ; \ + mulq P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq %r15, 560(%rsp) ; \ + xorq %r10, %r10 ; \ + movq P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq %r10, %r10 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x40+P1, %rax ; \ + mulq P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq %r8, 568(%rsp) ; \ + xorq %r11, %r11 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq %r11, %r11 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + xorq %r12, %r12 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq %r12, %r12 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + xorq %r13, %r13 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq %r13, %r13 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + xorq %r14, %r14 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq %r14, %r14 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + xorq %r15, %r15 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq %r15, %r15 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + xorq %r8, %r8 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq %r8, %r8 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + movq 0x40+P1, %rax ; \ + imulq 0x40+P2, %rax ; \ + addq %r8, %rax ; \ + movq 568(%rsp), %r8 ; \ + movq %r8, %rdx ; \ + andq $0x1ff, %rdx ; \ + shrdq $0x9, %r9, %r8 ; \ + shrdq $0x9, %r10, %r9 ; \ + shrdq $0x9, %r11, %r10 ; \ + shrdq $0x9, %r12, %r11 ; \ + shrdq $0x9, %r13, %r12 ; \ + shrdq $0x9, %r14, %r13 ; \ + shrdq $0x9, %r15, %r14 ; \ + shrdq $0x9, %rax, %r15 ; \ + shrq $0x9, %rax ; \ + addq %rax, %rdx ; \ + stc; \ + adcq 504(%rsp), %r8 ; \ + adcq 512(%rsp), %r9 ; \ + adcq 520(%rsp), %r10 ; \ + adcq 528(%rsp), %r11 ; \ + adcq 536(%rsp), %r12 ; \ + adcq 544(%rsp), %r13 ; \ + adcq 552(%rsp), %r14 ; \ + adcq 560(%rsp), %r15 ; \ + adcq $0xfffffffffffffe00, %rdx ; \ + cmc; \ + sbbq $0x0, %r8 ; \ + movq %r8, P0 ; \ + sbbq $0x0, %r9 ; \ + movq %r9, 0x8+P0 ; \ + sbbq $0x0, %r10 ; \ + movq %r10, 0x10+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x18+P0 ; \ + sbbq $0x0, %r12 ; \ + movq %r12, 0x20+P0 ; \ + sbbq $0x0, %r13 ; \ + movq %r13, 0x28+P0 ; \ + sbbq $0x0, %r14 ; \ + movq %r14, 0x30+P0 ; \ + sbbq $0x0, %r15 ; \ + movq %r15, 0x38+P0 ; \ + sbbq $0x0, %rdx ; \ + andq $0x1ff, %rdx ; \ + movq %rdx, 0x40+P0 + +// Corresponds to bignum_sqr_p521_alt except %rbp is used +// in place of %rcx and tmp is the temp storage location + +#define sqr_p521(P0,P1) \ + movq P1, %rax ; \ + mulq %rax; \ + movq %rax, 504(%rsp) ; \ + movq %rdx, %r9 ; \ + xorq %r10, %r10 ; \ + xorq %r11, %r11 ; \ + movq P1, %rax ; \ + mulq 0x8+P1; \ + addq %rax, %rax ; \ + adcq %rdx, %rdx ; \ + adcq $0x0, %r11 ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq %r9, 512(%rsp) ; \ + xorq %r12, %r12 ; \ + movq 0x8+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq P1, %rax ; \ + mulq 0x10+P1; \ + addq %rax, %rax ; \ + adcq %rdx, %rdx ; \ + adcq $0x0, %r12 ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq %r10, 520(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x18+P1; \ + xorq %r13, %r13 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq 0x10+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r13 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r13, %r13 ; \ + addq %rbx, %r11 ; \ + adcq %rbp, %r12 ; \ + adcq $0x0, %r13 ; \ + movq %r11, 528(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x20+P1; \ + xorq %r14, %r14 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq 0x18+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r14 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r14, %r14 ; \ + addq %rbx, %r12 ; \ + adcq %rbp, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x10+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq %r12, 536(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x28+P1; \ + xorq %r15, %r15 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq 0x20+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r15 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x18+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r15 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r15, %r15 ; \ + addq %rbx, %r13 ; \ + adcq %rbp, %r14 ; \ + adcq $0x0, %r15 ; \ + movq %r13, 544(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x30+P1; \ + xorq %r8, %r8 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r8 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x20+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r8 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r8, %r8 ; \ + addq %rbx, %r14 ; \ + adcq %rbp, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x18+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq %r14, 552(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x38+P1; \ + xorq %r9, %r9 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r9 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r9 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x20+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r9 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r9, %r9 ; \ + addq %rbx, %r15 ; \ + adcq %rbp, %r8 ; \ + adcq $0x0, %r9 ; \ + movq %r15, 560(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r10, %r10 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r10 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r10 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r10 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r10, %r10 ; \ + addq %rbx, %r8 ; \ + adcq %rbp, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x20+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq %r8, 568(%rsp) ; \ + movq 0x8+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r11, %r11 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x10+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r11 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r11 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r11 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r11, %r11 ; \ + addq %rbx, %r9 ; \ + adcq %rbp, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r12, %r12 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x18+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r12 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r12 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r12, %r12 ; \ + addq %rbx, %r10 ; \ + adcq %rbp, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x28+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r13, %r13 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x20+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r13 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r13 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r13, %r13 ; \ + addq %rbx, %r11 ; \ + adcq %rbp, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r14, %r14 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x28+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r14 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r14, %r14 ; \ + addq %rbx, %r12 ; \ + adcq %rbp, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x30+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r15, %r15 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x30+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r15 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r15, %r15 ; \ + addq %rbx, %r13 ; \ + adcq %rbp, %r14 ; \ + adcq $0x0, %r15 ; \ + xorq %r8, %r8 ; \ + movq 0x38+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x40+P1; \ + addq %rax, %rax ; \ + adcq %rdx, %rdx ; \ + adcq $0x0, %r8 ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x40+P1; \ + addq %rax, %rax ; \ + adcq %rdx, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + movq 0x40+P1, %rax ; \ + imulq %rax, %rax ; \ + addq %r8, %rax ; \ + movq 568(%rsp), %r8 ; \ + movq %r8, %rdx ; \ + andq $0x1ff, %rdx ; \ + shrdq $0x9, %r9, %r8 ; \ + shrdq $0x9, %r10, %r9 ; \ + shrdq $0x9, %r11, %r10 ; \ + shrdq $0x9, %r12, %r11 ; \ + shrdq $0x9, %r13, %r12 ; \ + shrdq $0x9, %r14, %r13 ; \ + shrdq $0x9, %r15, %r14 ; \ + shrdq $0x9, %rax, %r15 ; \ + shrq $0x9, %rax ; \ + addq %rax, %rdx ; \ + stc; \ + adcq 504(%rsp), %r8 ; \ + adcq 512(%rsp), %r9 ; \ + adcq 520(%rsp), %r10 ; \ + adcq 528(%rsp), %r11 ; \ + adcq 536(%rsp), %r12 ; \ + adcq 544(%rsp), %r13 ; \ + adcq 552(%rsp), %r14 ; \ + adcq 560(%rsp), %r15 ; \ + adcq $0xfffffffffffffe00, %rdx ; \ + cmc; \ + sbbq $0x0, %r8 ; \ + movq %r8, P0 ; \ + sbbq $0x0, %r9 ; \ + movq %r9, 0x8+P0 ; \ + sbbq $0x0, %r10 ; \ + movq %r10, 0x10+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x18+P0 ; \ + sbbq $0x0, %r12 ; \ + movq %r12, 0x20+P0 ; \ + sbbq $0x0, %r13 ; \ + movq %r13, 0x28+P0 ; \ + sbbq $0x0, %r14 ; \ + movq %r14, 0x30+P0 ; \ + sbbq $0x0, %r15 ; \ + movq %r15, 0x38+P0 ; \ + sbbq $0x0, %rdx ; \ + andq $0x1ff, %rdx ; \ + movq %rdx, 0x40+P0 + +// Corresponds exactly to bignum_sub_p521 + +#define sub_p521(P0,P1,P2) \ + movq P1, %rax ; \ + subq P2, %rax ; \ + movq 0x8+P1, %rdx ; \ + sbbq 0x8+P2, %rdx ; \ + movq 0x10+P1, %r8 ; \ + sbbq 0x10+P2, %r8 ; \ + movq 0x18+P1, %r9 ; \ + sbbq 0x18+P2, %r9 ; \ + movq 0x20+P1, %r10 ; \ + sbbq 0x20+P2, %r10 ; \ + movq 0x28+P1, %r11 ; \ + sbbq 0x28+P2, %r11 ; \ + movq 0x30+P1, %r12 ; \ + sbbq 0x30+P2, %r12 ; \ + movq 0x38+P1, %r13 ; \ + sbbq 0x38+P2, %r13 ; \ + movq 0x40+P1, %r14 ; \ + sbbq 0x40+P2, %r14 ; \ + sbbq $0x0, %rax ; \ + movq %rax, P0 ; \ + sbbq $0x0, %rdx ; \ + movq %rdx, 0x8+P0 ; \ + sbbq $0x0, %r8 ; \ + movq %r8, 0x10+P0 ; \ + sbbq $0x0, %r9 ; \ + movq %r9, 0x18+P0 ; \ + sbbq $0x0, %r10 ; \ + movq %r10, 0x20+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x28+P0 ; \ + sbbq $0x0, %r12 ; \ + movq %r12, 0x30+P0 ; \ + sbbq $0x0, %r13 ; \ + movq %r13, 0x38+P0 ; \ + sbbq $0x0, %r14 ; \ + andq $0x1ff, %r14 ; \ + movq %r14, 0x40+P0 + +// Additional macros to help with final multiplexing + +#define load9(r0,r1,r2,r3,r4,r5,r6,r7,ra,P) \ + movq P, r0 ; \ + movq 8+P, r1 ; \ + movq 16+P, r2 ; \ + movq 24+P, r3 ; \ + movq 32+P, r4 ; \ + movq 40+P, r5 ; \ + movq 48+P, r6 ; \ + movq 56+P, r7 ; \ + movq 64+P, ra + +#define store9(P,r0,r1,r2,r3,r4,r5,r6,r7,ra) \ + movq r0, P ; \ + movq r1, 8+P ; \ + movq r2, 16+P ; \ + movq r3, 24+P ; \ + movq r4, 32+P ; \ + movq r5, 40+P ; \ + movq r6, 48+P ; \ + movq r7, 56+P ; \ + movq ra, 64+P + +#define muxload9(r0,r1,r2,r3,r4,r5,r6,r7,ra,P0,P1,P2) \ + movq P0, r0 ; \ + cmovbq P1, r0 ; \ + cmovnbe P2, r0 ; \ + movq 8+P0, r1 ; \ + cmovbq 8+P1, r1 ; \ + cmovnbe 8+P2, r1 ; \ + movq 16+P0, r2 ; \ + cmovbq 16+P1, r2 ; \ + cmovnbe 16+P2, r2 ; \ + movq 24+P0, r3 ; \ + cmovbq 24+P1, r3 ; \ + cmovnbe 24+P2, r3 ; \ + movq 32+P0, r4 ; \ + cmovbq 32+P1, r4 ; \ + cmovnbe 32+P2, r4 ; \ + movq 40+P0, r5 ; \ + cmovbq 40+P1, r5 ; \ + cmovnbe 40+P2, r5 ; \ + movq 48+P0, r6 ; \ + cmovbq 48+P1, r6 ; \ + cmovnbe 48+P2, r6 ; \ + movq 56+P0, r7 ; \ + cmovbq 56+P1, r7 ; \ + cmovnbe 56+P2, r7 ; \ + movq 64+P0, ra ; \ + cmovbq 64+P1, ra ; \ + cmovnbe 64+P2, ra + +#define copy9(P0,P1) \ + movq P1, %rax ; \ + movq %rax, P0 ; \ + movq 8+P1, %rax ; \ + movq %rax, 8+P0 ; \ + movq 16+P1, %rax ; \ + movq %rax, 16+P0 ; \ + movq 24+P1, %rax ; \ + movq %rax, 24+P0 ; \ + movq 32+P1, %rax ; \ + movq %rax, 32+P0 ; \ + movq 40+P1, %rax ; \ + movq %rax, 40+P0 ; \ + movq 48+P1, %rax ; \ + movq %rax, 48+P0 ; \ + movq 56+P1, %rax ; \ + movq %rax, 56+P0 ; \ + movq 64+P1, %rax ; \ + movq %rax, 64+P0 + +S2N_BN_SYMBOL(p521_jadd_alt): + +#if WINDOWS_ABI + pushq %rdi + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi + movq %r8, %rdx +#endif + +// Save registers and make room on stack for temporary variables + + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + + subq $NSPACE, %rsp + +// Move the input arguments to stable places (two are already there) + + movq %rdx, input_y + +// Main code, just a sequence of basic field operations + + sqr_p521(z1sq,z_1) + sqr_p521(z2sq,z_2) + + mul_p521(y1a,z_2,y_1) + mul_p521(y2a,z_1,y_2) + + mul_p521(x2a,z1sq,x_2) + mul_p521(x1a,z2sq,x_1) + mul_p521(y2a,z1sq,y2a) + mul_p521(y1a,z2sq,y1a) + + sub_p521(xd,x2a,x1a) + sub_p521(yd,y2a,y1a) + + sqr_p521(zz,xd) + sqr_p521(ww,yd) + + mul_p521(zzx1,zz,x1a) + mul_p521(zzx2,zz,x2a) + + sub_p521(resx,ww,zzx1) + sub_p521(t1,zzx2,zzx1) + + mul_p521(xd,xd,z_1) + + sub_p521(resx,resx,zzx2) + + sub_p521(t2,zzx1,resx) + + mul_p521(t1,t1,y1a) + mul_p521(resz,xd,z_2) + mul_p521(t2,yd,t2) + + sub_p521(resy,t2,t1) + +// Load in the z coordinates of the inputs to check for P1 = 0 and P2 = 0 +// The condition codes get set by a comparison (P2 != 0) - (P1 != 0) +// So "NBE" <=> ~(CF \/ ZF) <=> P1 = 0 /\ ~(P2 = 0) +// and "B" <=> CF <=> ~(P1 = 0) /\ P2 = 0 +// and "Z" <=> ZF <=> (P1 = 0 <=> P2 = 0) + + load9(%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp,z_1) + orq %r9, %r8 + orq %r11, %r10 + orq %r13, %r12 + orq %r15, %r14 + orq %r10, %r8 + orq %r14, %r12 + orq %rbp, %r8 + orq %r12, %r8 + negq %r8 + sbbq %rax, %rax + + load9(%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp,z_2) + orq %r9, %r8 + orq %r11, %r10 + orq %r13, %r12 + orq %r15, %r14 + orq %r10, %r8 + orq %r14, %r12 + orq %rbp, %r8 + orq %r12, %r8 + negq %r8 + sbbq %rdx, %rdx + + cmpq %rax, %rdx + +// Multiplex the outputs accordingly. Re-store them in resz until there +// are no more loads, so there are no assumptions on input-output aliasing + + muxload9(%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp,resy,y_1,y_2) + store9(resy,%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp) + muxload9(%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp,resz,z_1,z_2) + store9(resz,%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp) + muxload9(%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp,resx,x_1,x_2) + store9(x_3,%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%rbp) + copy9(y_3,resy) + copy9(z_3,resz) + +// Restore stack and registers + + addq $NSPACE, %rsp + popq %r15 + popq %r14 + popq %r13 + popq %r12 + popq %rbp + popq %rbx + +#if WINDOWS_ABI + popq %rsi + popq %rdi +#endif + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack, "", %progbits +#endif diff --git a/third_party/s2n-bignum/x86_att/p521/p521_jdouble_alt.S b/third_party/s2n-bignum/x86_att/p521/p521_jdouble_alt.S new file mode 100644 index 0000000000..2dc6c32120 --- /dev/null +++ b/third_party/s2n-bignum/x86_att/p521/p521_jdouble_alt.S @@ -0,0 +1,1865 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Point doubling on NIST curve P-521 in Jacobian coordinates +// +// extern void p521_jdouble_alt +// (uint64_t p3[static 27],uint64_t p1[static 27]); +// +// Does p3 := 2 * p1 where all points are regarded as Jacobian triples. +// A Jacobian triple (x,y,z) represents affine point (x/z^2,y/z^3). +// It is assumed that all coordinates of the input point are fully +// reduced mod p_521 and that the z coordinate is not zero. +// +// Standard x86-64 ABI: RDI = p3, RSI = p1 +// Microsoft x64 ABI: RCX = p3, RDX = p1 +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(p521_jdouble_alt) + S2N_BN_SYM_PRIVACY_DIRECTIVE(p521_jdouble_alt) + .text + +// Size of individual field elements + +#define NUMSIZE 72 + +// Stable homes for input arguments during main code sequence +// This is actually where they come in anyway and they stay there. + +#define input_z %rdi +#define input_x %rsi + +// Pointer-offset pairs for inputs and outputs + +#define x_1 0(input_x) +#define y_1 NUMSIZE(input_x) +#define z_1 (2*NUMSIZE)(input_x) + +#define x_3 0(input_z) +#define y_3 NUMSIZE(input_z) +#define z_3 (2*NUMSIZE)(input_z) + +// Pointer-offset pairs for temporaries, with some aliasing +// The tmp field is internal storage for field mul and sqr. +// NSPACE is the total stack needed for these temporaries + +#define z2 (NUMSIZE*0)(%rsp) +#define y2 (NUMSIZE*1)(%rsp) +#define x2p (NUMSIZE*2)(%rsp) +#define xy2 (NUMSIZE*3)(%rsp) + +#define y4 (NUMSIZE*4)(%rsp) +#define t2 (NUMSIZE*4)(%rsp) + +#define dx2 (NUMSIZE*5)(%rsp) +#define t1 (NUMSIZE*5)(%rsp) + +#define d (NUMSIZE*6)(%rsp) +#define x4p (NUMSIZE*6)(%rsp) + +#define tmp (NUMSIZE*7)(%rsp) + +#define NSPACE (NUMSIZE*7+72) + +// Corresponds to bignum_mul_p521_alt except temp storage location + +#define mul_p521(P0,P1,P2) \ + movq P1, %rax ; \ + mulq P2; \ + movq %rax, 504(%rsp) ; \ + movq %rdx, %r9 ; \ + xorq %r10, %r10 ; \ + xorq %r11, %r11 ; \ + movq P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + movq 0x8+P1, %rax ; \ + mulq P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq %r11, %r11 ; \ + movq %r9, 512(%rsp) ; \ + xorq %r12, %r12 ; \ + movq P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq %r12, %r12 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x10+P1, %rax ; \ + mulq P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq %r10, 520(%rsp) ; \ + xorq %r13, %r13 ; \ + movq P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq %r13, %r13 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x18+P1, %rax ; \ + mulq P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq %r11, 528(%rsp) ; \ + xorq %r14, %r14 ; \ + movq P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq %r14, %r14 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x20+P1, %rax ; \ + mulq P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq %r12, 536(%rsp) ; \ + xorq %r15, %r15 ; \ + movq P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq %r15, %r15 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x28+P1, %rax ; \ + mulq P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq %r13, 544(%rsp) ; \ + xorq %r8, %r8 ; \ + movq P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq %r8, %r8 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x30+P1, %rax ; \ + mulq P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq %r14, 552(%rsp) ; \ + xorq %r9, %r9 ; \ + movq P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq %r9, %r9 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x38+P1, %rax ; \ + mulq P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq %r15, 560(%rsp) ; \ + xorq %r10, %r10 ; \ + movq P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq %r10, %r10 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x40+P1, %rax ; \ + mulq P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq %r8, 568(%rsp) ; \ + xorq %r11, %r11 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq %r11, %r11 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + xorq %r12, %r12 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq %r12, %r12 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + xorq %r13, %r13 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq %r13, %r13 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + xorq %r14, %r14 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq %r14, %r14 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + xorq %r15, %r15 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq %r15, %r15 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + xorq %r8, %r8 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq %r8, %r8 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + movq 0x40+P1, %rax ; \ + imulq 0x40+P2, %rax ; \ + addq %r8, %rax ; \ + movq 568(%rsp), %r8 ; \ + movq %r8, %rdx ; \ + andq $0x1ff, %rdx ; \ + shrdq $0x9, %r9, %r8 ; \ + shrdq $0x9, %r10, %r9 ; \ + shrdq $0x9, %r11, %r10 ; \ + shrdq $0x9, %r12, %r11 ; \ + shrdq $0x9, %r13, %r12 ; \ + shrdq $0x9, %r14, %r13 ; \ + shrdq $0x9, %r15, %r14 ; \ + shrdq $0x9, %rax, %r15 ; \ + shrq $0x9, %rax ; \ + addq %rax, %rdx ; \ + stc; \ + adcq 504(%rsp), %r8 ; \ + adcq 512(%rsp), %r9 ; \ + adcq 520(%rsp), %r10 ; \ + adcq 528(%rsp), %r11 ; \ + adcq 536(%rsp), %r12 ; \ + adcq 544(%rsp), %r13 ; \ + adcq 552(%rsp), %r14 ; \ + adcq 560(%rsp), %r15 ; \ + adcq $0xfffffffffffffe00, %rdx ; \ + cmc; \ + sbbq $0x0, %r8 ; \ + movq %r8, P0 ; \ + sbbq $0x0, %r9 ; \ + movq %r9, 0x8+P0 ; \ + sbbq $0x0, %r10 ; \ + movq %r10, 0x10+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x18+P0 ; \ + sbbq $0x0, %r12 ; \ + movq %r12, 0x20+P0 ; \ + sbbq $0x0, %r13 ; \ + movq %r13, 0x28+P0 ; \ + sbbq $0x0, %r14 ; \ + movq %r14, 0x30+P0 ; \ + sbbq $0x0, %r15 ; \ + movq %r15, 0x38+P0 ; \ + sbbq $0x0, %rdx ; \ + andq $0x1ff, %rdx ; \ + movq %rdx, 0x40+P0 + +// Corresponds to bignum_sqr_p521_alt except temp storage location + +#define sqr_p521(P0,P1) \ + movq P1, %rax ; \ + mulq %rax; \ + movq %rax, 504(%rsp) ; \ + movq %rdx, %r9 ; \ + xorq %r10, %r10 ; \ + xorq %r11, %r11 ; \ + movq P1, %rax ; \ + mulq 0x8+P1; \ + addq %rax, %rax ; \ + adcq %rdx, %rdx ; \ + adcq $0x0, %r11 ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq %r9, 512(%rsp) ; \ + xorq %r12, %r12 ; \ + movq 0x8+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq P1, %rax ; \ + mulq 0x10+P1; \ + addq %rax, %rax ; \ + adcq %rdx, %rdx ; \ + adcq $0x0, %r12 ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq %r10, 520(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x18+P1; \ + xorq %r13, %r13 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rcx ; \ + movq 0x8+P1, %rax ; \ + mulq 0x10+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r13 ; \ + addq %rbx, %rbx ; \ + adcq %rcx, %rcx ; \ + adcq %r13, %r13 ; \ + addq %rbx, %r11 ; \ + adcq %rcx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq %r11, 528(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x20+P1; \ + xorq %r14, %r14 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rcx ; \ + movq 0x8+P1, %rax ; \ + mulq 0x18+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r14 ; \ + addq %rbx, %rbx ; \ + adcq %rcx, %rcx ; \ + adcq %r14, %r14 ; \ + addq %rbx, %r12 ; \ + adcq %rcx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x10+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq %r12, 536(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x28+P1; \ + xorq %r15, %r15 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rcx ; \ + movq 0x8+P1, %rax ; \ + mulq 0x20+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r15 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x18+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r15 ; \ + addq %rbx, %rbx ; \ + adcq %rcx, %rcx ; \ + adcq %r15, %r15 ; \ + addq %rbx, %r13 ; \ + adcq %rcx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq %r13, 544(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x30+P1; \ + xorq %r8, %r8 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rcx ; \ + movq 0x8+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r8 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x20+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r8 ; \ + addq %rbx, %rbx ; \ + adcq %rcx, %rcx ; \ + adcq %r8, %r8 ; \ + addq %rbx, %r14 ; \ + adcq %rcx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x18+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq %r14, 552(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x38+P1; \ + xorq %r9, %r9 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rcx ; \ + movq 0x8+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r9 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r9 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x20+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r9 ; \ + addq %rbx, %rbx ; \ + adcq %rcx, %rcx ; \ + adcq %r9, %r9 ; \ + addq %rbx, %r15 ; \ + adcq %rcx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq %r15, 560(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r10, %r10 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rcx ; \ + movq 0x8+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r10 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r10 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r10 ; \ + addq %rbx, %rbx ; \ + adcq %rcx, %rcx ; \ + adcq %r10, %r10 ; \ + addq %rbx, %r8 ; \ + adcq %rcx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x20+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq %r8, 568(%rsp) ; \ + movq 0x8+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r11, %r11 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rcx ; \ + movq 0x10+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r11 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r11 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r11 ; \ + addq %rbx, %rbx ; \ + adcq %rcx, %rcx ; \ + adcq %r11, %r11 ; \ + addq %rbx, %r9 ; \ + adcq %rcx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r12, %r12 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rcx ; \ + movq 0x18+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r12 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r12 ; \ + addq %rbx, %rbx ; \ + adcq %rcx, %rcx ; \ + adcq %r12, %r12 ; \ + addq %rbx, %r10 ; \ + adcq %rcx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x28+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r13, %r13 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rcx ; \ + movq 0x20+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r13 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r13 ; \ + addq %rbx, %rbx ; \ + adcq %rcx, %rcx ; \ + adcq %r13, %r13 ; \ + addq %rbx, %r11 ; \ + adcq %rcx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r14, %r14 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rcx ; \ + movq 0x28+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r14 ; \ + addq %rbx, %rbx ; \ + adcq %rcx, %rcx ; \ + adcq %r14, %r14 ; \ + addq %rbx, %r12 ; \ + adcq %rcx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x30+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r15, %r15 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rcx ; \ + movq 0x30+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rcx ; \ + adcq $0x0, %r15 ; \ + addq %rbx, %rbx ; \ + adcq %rcx, %rcx ; \ + adcq %r15, %r15 ; \ + addq %rbx, %r13 ; \ + adcq %rcx, %r14 ; \ + adcq $0x0, %r15 ; \ + xorq %r8, %r8 ; \ + movq 0x38+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x40+P1; \ + addq %rax, %rax ; \ + adcq %rdx, %rdx ; \ + adcq $0x0, %r8 ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x40+P1; \ + addq %rax, %rax ; \ + adcq %rdx, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + movq 0x40+P1, %rax ; \ + imulq %rax, %rax ; \ + addq %r8, %rax ; \ + movq 568(%rsp), %r8 ; \ + movq %r8, %rdx ; \ + andq $0x1ff, %rdx ; \ + shrdq $0x9, %r9, %r8 ; \ + shrdq $0x9, %r10, %r9 ; \ + shrdq $0x9, %r11, %r10 ; \ + shrdq $0x9, %r12, %r11 ; \ + shrdq $0x9, %r13, %r12 ; \ + shrdq $0x9, %r14, %r13 ; \ + shrdq $0x9, %r15, %r14 ; \ + shrdq $0x9, %rax, %r15 ; \ + shrq $0x9, %rax ; \ + addq %rax, %rdx ; \ + stc; \ + adcq 504(%rsp), %r8 ; \ + adcq 512(%rsp), %r9 ; \ + adcq 520(%rsp), %r10 ; \ + adcq 528(%rsp), %r11 ; \ + adcq 536(%rsp), %r12 ; \ + adcq 544(%rsp), %r13 ; \ + adcq 552(%rsp), %r14 ; \ + adcq 560(%rsp), %r15 ; \ + adcq $0xfffffffffffffe00, %rdx ; \ + cmc; \ + sbbq $0x0, %r8 ; \ + movq %r8, P0 ; \ + sbbq $0x0, %r9 ; \ + movq %r9, 0x8+P0 ; \ + sbbq $0x0, %r10 ; \ + movq %r10, 0x10+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x18+P0 ; \ + sbbq $0x0, %r12 ; \ + movq %r12, 0x20+P0 ; \ + sbbq $0x0, %r13 ; \ + movq %r13, 0x28+P0 ; \ + sbbq $0x0, %r14 ; \ + movq %r14, 0x30+P0 ; \ + sbbq $0x0, %r15 ; \ + movq %r15, 0x38+P0 ; \ + sbbq $0x0, %rdx ; \ + andq $0x1ff, %rdx ; \ + movq %rdx, 0x40+P0 ; \ + +// Corresponds exactly to bignum_add_p521 + +#define add_p521(P0,P1,P2) \ + stc; \ + movq P1, %rax ; \ + adcq P2, %rax ; \ + movq 0x8+P1, %rbx ; \ + adcq 0x8+P2, %rbx ; \ + movq 0x10+P1, %r8 ; \ + adcq 0x10+P2, %r8 ; \ + movq 0x18+P1, %r9 ; \ + adcq 0x18+P2, %r9 ; \ + movq 0x20+P1, %r10 ; \ + adcq 0x20+P2, %r10 ; \ + movq 0x28+P1, %r11 ; \ + adcq 0x28+P2, %r11 ; \ + movq 0x30+P1, %r12 ; \ + adcq 0x30+P2, %r12 ; \ + movq 0x38+P1, %r13 ; \ + adcq 0x38+P2, %r13 ; \ + movq 0x40+P1, %r14 ; \ + adcq 0x40+P2, %r14 ; \ + movq $0x200, %rdx ; \ + andq %r14, %rdx ; \ + cmpq $0x200, %rdx ; \ + sbbq $0x0, %rax ; \ + movq %rax, P0 ; \ + sbbq $0x0, %rbx ; \ + movq %rbx, 0x8+P0 ; \ + sbbq $0x0, %r8 ; \ + movq %r8, 0x10+P0 ; \ + sbbq $0x0, %r9 ; \ + movq %r9, 0x18+P0 ; \ + sbbq $0x0, %r10 ; \ + movq %r10, 0x20+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x28+P0 ; \ + sbbq $0x0, %r12 ; \ + movq %r12, 0x30+P0 ; \ + sbbq $0x0, %r13 ; \ + movq %r13, 0x38+P0 ; \ + sbbq %rdx, %r14 ; \ + movq %r14, 0x40+P0 + +// Corresponds exactly to bignum_sub_p521 + +#define sub_p521(P0,P1,P2) \ + movq P1, %rax ; \ + subq P2, %rax ; \ + movq 0x8+P1, %rdx ; \ + sbbq 0x8+P2, %rdx ; \ + movq 0x10+P1, %r8 ; \ + sbbq 0x10+P2, %r8 ; \ + movq 0x18+P1, %r9 ; \ + sbbq 0x18+P2, %r9 ; \ + movq 0x20+P1, %r10 ; \ + sbbq 0x20+P2, %r10 ; \ + movq 0x28+P1, %r11 ; \ + sbbq 0x28+P2, %r11 ; \ + movq 0x30+P1, %r12 ; \ + sbbq 0x30+P2, %r12 ; \ + movq 0x38+P1, %r13 ; \ + sbbq 0x38+P2, %r13 ; \ + movq 0x40+P1, %r14 ; \ + sbbq 0x40+P2, %r14 ; \ + sbbq $0x0, %rax ; \ + movq %rax, P0 ; \ + sbbq $0x0, %rdx ; \ + movq %rdx, 0x8+P0 ; \ + sbbq $0x0, %r8 ; \ + movq %r8, 0x10+P0 ; \ + sbbq $0x0, %r9 ; \ + movq %r9, 0x18+P0 ; \ + sbbq $0x0, %r10 ; \ + movq %r10, 0x20+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x28+P0 ; \ + sbbq $0x0, %r12 ; \ + movq %r12, 0x30+P0 ; \ + sbbq $0x0, %r13 ; \ + movq %r13, 0x38+P0 ; \ + sbbq $0x0, %r14 ; \ + andq $0x1ff, %r14 ; \ + movq %r14, 0x40+P0 + +// Weak multiplication not fully reducing + +#define weakmul_p521(P0,P1,P2) \ + movq P1, %rax ; \ + mulq P2; \ + movq %rax, 504(%rsp) ; \ + movq %rdx, %r9 ; \ + xorq %r10, %r10 ; \ + xorq %r11, %r11 ; \ + movq P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + movq 0x8+P1, %rax ; \ + mulq P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq %r11, %r11 ; \ + movq %r9, 512(%rsp) ; \ + xorq %r12, %r12 ; \ + movq P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq %r12, %r12 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x10+P1, %rax ; \ + mulq P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq %r10, 520(%rsp) ; \ + xorq %r13, %r13 ; \ + movq P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq %r13, %r13 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x18+P1, %rax ; \ + mulq P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq %r11, 528(%rsp) ; \ + xorq %r14, %r14 ; \ + movq P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq %r14, %r14 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x20+P1, %rax ; \ + mulq P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq %r12, 536(%rsp) ; \ + xorq %r15, %r15 ; \ + movq P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq %r15, %r15 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x28+P1, %rax ; \ + mulq P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq %r13, 544(%rsp) ; \ + xorq %r8, %r8 ; \ + movq P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq %r8, %r8 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x30+P1, %rax ; \ + mulq P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq %r14, 552(%rsp) ; \ + xorq %r9, %r9 ; \ + movq P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq %r9, %r9 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x38+P1, %rax ; \ + mulq P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq %r15, 560(%rsp) ; \ + xorq %r10, %r10 ; \ + movq P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq %r10, %r10 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x40+P1, %rax ; \ + mulq P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq %r8, 568(%rsp) ; \ + xorq %r11, %r11 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq %r11, %r11 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + xorq %r12, %r12 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq %r12, %r12 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + xorq %r13, %r13 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq %r13, %r13 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + xorq %r14, %r14 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq %r14, %r14 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + xorq %r15, %r15 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq %r15, %r15 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + xorq %r8, %r8 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq %r8, %r8 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + movq 0x40+P1, %rax ; \ + imulq 0x40+P2, %rax ; \ + addq %r8, %rax ; \ + movq 568(%rsp), %r8 ; \ + movq %r8, %rdx ; \ + andq $0x1ff, %rdx ; \ + shrdq $0x9, %r9, %r8 ; \ + shrdq $0x9, %r10, %r9 ; \ + shrdq $0x9, %r11, %r10 ; \ + shrdq $0x9, %r12, %r11 ; \ + shrdq $0x9, %r13, %r12 ; \ + shrdq $0x9, %r14, %r13 ; \ + shrdq $0x9, %r15, %r14 ; \ + shrdq $0x9, %rax, %r15 ; \ + shrq $0x9, %rax ; \ + addq %rax, %rdx ; \ + addq 504(%rsp), %r8 ; \ + adcq 512(%rsp), %r9 ; \ + adcq 520(%rsp), %r10 ; \ + adcq 528(%rsp), %r11 ; \ + adcq 536(%rsp), %r12 ; \ + adcq 544(%rsp), %r13 ; \ + adcq 552(%rsp), %r14 ; \ + adcq 560(%rsp), %r15 ; \ + adcq $0, %rdx ; \ + movq %r8, P0 ; \ + movq %r9, 0x8+P0 ; \ + movq %r10, 0x10+P0 ; \ + movq %r11, 0x18+P0 ; \ + movq %r12, 0x20+P0 ; \ + movq %r13, 0x28+P0 ; \ + movq %r14, 0x30+P0 ; \ + movq %r15, 0x38+P0 ; \ + movq %rdx, 0x40+P0 + +// P0 = C * P1 - D * P2 == C * P1 + D * (p_521 - P2) + +#define cmsub_p521(P0,C,P1,D,P2) \ + movq $D, %rcx ; \ + movq P2, %rax ; \ + notq %rax; \ + mulq %rcx; \ + movq %rax, %r8 ; \ + movq %rdx, %r9 ; \ + movq 8+P2, %rax ; \ + notq %rax; \ + mulq %rcx; \ + xorl %r10d, %r10d ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + movq 16+P2, %rax ; \ + notq %rax; \ + mulq %rcx; \ + xorl %r11d, %r11d ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + movq 24+P2, %rax ; \ + notq %rax; \ + mulq %rcx; \ + xorl %r12d, %r12d ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + movq 32+P2, %rax ; \ + notq %rax; \ + mulq %rcx; \ + xorl %r13d, %r13d ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + movq 40+P2, %rax ; \ + notq %rax; \ + mulq %rcx; \ + xorl %r14d, %r14d ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + movq 48+P2, %rax ; \ + notq %rax; \ + mulq %rcx; \ + xorl %r15d, %r15d ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + movq 56+P2, %rax ; \ + notq %rax; \ + mulq %rcx; \ + xorl %ebx, %ebx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %rbx ; \ + movq 64+P2, %rax ; \ + xorq $0x1FF, %rax ; \ + imulq %rcx, %rax ; \ + addq %rax, %rbx ; \ + xorl %eax, %eax ; \ + movl $C, %ecx ; \ + movq P1, %rax ; \ + mulq %rcx; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + sbbq %rbp, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq %rcx; \ + subq %rbp, %rdx ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + sbbq %rbp, %rbp ; \ + movq 0x10+P1, %rax ; \ + mulq %rcx; \ + subq %rbp, %rdx ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %rbp, %rbp ; \ + movq 0x18+P1, %rax ; \ + mulq %rcx; \ + subq %rbp, %rdx ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %rbp, %rbp ; \ + movq 0x20+P1, %rax ; \ + mulq %rcx; \ + subq %rbp, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %rbp, %rbp ; \ + movq 0x28+P1, %rax ; \ + mulq %rcx; \ + subq %rbp, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %rbp, %rbp ; \ + movq 0x30+P1, %rax ; \ + mulq %rcx; \ + subq %rbp, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %rbp, %rbp ; \ + movq 0x38+P1, %rax ; \ + mulq %rcx; \ + subq %rbp, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %rbx ; \ + movq 0x40+P1, %rax ; \ + imulq %rcx, %rax ; \ + addq %rax, %rbx ; \ + movq %r9, %rax ; \ + andq %r10, %rax ; \ + andq %r11, %rax ; \ + andq %r12, %rax ; \ + andq %r13, %rax ; \ + andq %r14, %rax ; \ + andq %r15, %rax ; \ + movq %rbx, %rdx ; \ + shrq $9, %rdx ; \ + orq $~0x1FF, %rbx ; \ + leaq 1(%rdx), %rcx ; \ + addq %r8, %rcx ; \ + movl $0, %ecx ; \ + adcq %rcx, %rax ; \ + movq %rbx, %rax ; \ + adcq %rcx, %rax ; \ + adcq %rdx, %r8 ; \ + movq %r8, P0 ; \ + adcq %rcx, %r9 ; \ + movq %r9, 8+P0 ; \ + adcq %rcx, %r10 ; \ + movq %r10, 16+P0 ; \ + adcq %rcx, %r11 ; \ + movq %r11, 24+P0 ; \ + adcq %rcx, %r12 ; \ + movq %r12, 32+P0 ; \ + adcq %rcx, %r13 ; \ + movq %r13, 40+P0 ; \ + adcq %rcx, %r14 ; \ + movq %r14, 48+P0 ; \ + adcq %rcx, %r15 ; \ + movq %r15, 56+P0 ; \ + adcq %rcx, %rbx ; \ + andq $0x1FF, %rbx ; \ + movq %rbx, 64+P0 + +// P0 = 3 * P1 - 8 * P2 == 3 * P1 + 8 * (p_521 - P2) + +#define cmsub38_p521(P0,P1,P2) \ + movq 64+P2, %rbx ; \ + xorq $0x1FF, %rbx ; \ + movq 56+P2, %r15 ; \ + notq %r15; \ + shldq $3, %r15, %rbx ; \ + movq 48+P2, %r14 ; \ + notq %r14; \ + shldq $3, %r14, %r15 ; \ + movq 40+P2, %r13 ; \ + notq %r13; \ + shldq $3, %r13, %r14 ; \ + movq 32+P2, %r12 ; \ + notq %r12; \ + shldq $3, %r12, %r13 ; \ + movq 24+P2, %r11 ; \ + notq %r11; \ + shldq $3, %r11, %r12 ; \ + movq 16+P2, %r10 ; \ + notq %r10; \ + shldq $3, %r10, %r11 ; \ + movq 8+P2, %r9 ; \ + notq %r9; \ + shldq $3, %r9, %r10 ; \ + movq P2, %r8 ; \ + notq %r8; \ + shldq $3, %r8, %r9 ; \ + shlq $3, %r8 ; \ + movl $3, %ecx ; \ + movq P1, %rax ; \ + mulq %rcx; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + sbbq %rbp, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq %rcx; \ + subq %rbp, %rdx ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + sbbq %rbp, %rbp ; \ + movq 0x10+P1, %rax ; \ + mulq %rcx; \ + subq %rbp, %rdx ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + sbbq %rbp, %rbp ; \ + movq 0x18+P1, %rax ; \ + mulq %rcx; \ + subq %rbp, %rdx ; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + sbbq %rbp, %rbp ; \ + movq 0x20+P1, %rax ; \ + mulq %rcx; \ + subq %rbp, %rdx ; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + sbbq %rbp, %rbp ; \ + movq 0x28+P1, %rax ; \ + mulq %rcx; \ + subq %rbp, %rdx ; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + sbbq %rbp, %rbp ; \ + movq 0x30+P1, %rax ; \ + mulq %rcx; \ + subq %rbp, %rdx ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + sbbq %rbp, %rbp ; \ + movq 0x38+P1, %rax ; \ + mulq %rcx; \ + subq %rbp, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %rbx ; \ + movq 0x40+P1, %rax ; \ + imulq %rcx, %rax ; \ + addq %rax, %rbx ; \ + movq %r9, %rax ; \ + andq %r10, %rax ; \ + andq %r11, %rax ; \ + andq %r12, %rax ; \ + andq %r13, %rax ; \ + andq %r14, %rax ; \ + andq %r15, %rax ; \ + movq %rbx, %rdx ; \ + shrq $9, %rdx ; \ + orq $~0x1FF, %rbx ; \ + leaq 1(%rdx), %rcx ; \ + addq %r8, %rcx ; \ + movl $0, %ecx ; \ + adcq %rcx, %rax ; \ + movq %rbx, %rax ; \ + adcq %rcx, %rax ; \ + adcq %rdx, %r8 ; \ + movq %r8, P0 ; \ + adcq %rcx, %r9 ; \ + movq %r9, 8+P0 ; \ + adcq %rcx, %r10 ; \ + movq %r10, 16+P0 ; \ + adcq %rcx, %r11 ; \ + movq %r11, 24+P0 ; \ + adcq %rcx, %r12 ; \ + movq %r12, 32+P0 ; \ + adcq %rcx, %r13 ; \ + movq %r13, 40+P0 ; \ + adcq %rcx, %r14 ; \ + movq %r14, 48+P0 ; \ + adcq %rcx, %r15 ; \ + movq %r15, 56+P0 ; \ + adcq %rcx, %rbx ; \ + andq $0x1FF, %rbx ; \ + movq %rbx, 64+P0 + +// P0 = 4 * P1 - P2 = 4 * P1 + (p_521 - P2) + +#define cmsub41_p521(P0,P1,P2) \ + movq 64+P1, %rbx ; \ + movq 56+P1, %r15 ; \ + shldq $2, %r15, %rbx ; \ + movq 48+P1, %r14 ; \ + shldq $2, %r14, %r15 ; \ + movq 40+P1, %r13 ; \ + shldq $2, %r13, %r14 ; \ + movq 32+P1, %r12 ; \ + shldq $2, %r12, %r13 ; \ + movq 24+P1, %r11 ; \ + shldq $2, %r11, %r12 ; \ + movq 16+P1, %r10 ; \ + shldq $2, %r10, %r11 ; \ + movq 8+P1, %r9 ; \ + shldq $2, %r9, %r10 ; \ + movq P1, %r8 ; \ + shldq $2, %r8, %r9 ; \ + shlq $2, %r8 ; \ + movq 64+P2, %rcx ; \ + xorq $0x1FF, %rcx ; \ + movq P2, %rax ; \ + notq %rax; \ + addq %rax, %r8 ; \ + movq 8+P2, %rax ; \ + notq %rax; \ + adcq %rax, %r9 ; \ + movq 16+P2, %rax ; \ + notq %rax; \ + adcq %rax, %r10 ; \ + movq 24+P2, %rax ; \ + notq %rax; \ + adcq %rax, %r11 ; \ + movq 32+P2, %rax ; \ + notq %rax; \ + adcq %rax, %r12 ; \ + movq 40+P2, %rax ; \ + notq %rax; \ + adcq %rax, %r13 ; \ + movq 48+P2, %rax ; \ + notq %rax; \ + adcq %rax, %r14 ; \ + movq 56+P2, %rax ; \ + notq %rax; \ + adcq %rax, %r15 ; \ + adcq %rcx, %rbx ; \ + movq %r9, %rax ; \ + andq %r10, %rax ; \ + andq %r11, %rax ; \ + andq %r12, %rax ; \ + andq %r13, %rax ; \ + andq %r14, %rax ; \ + andq %r15, %rax ; \ + movq %rbx, %rdx ; \ + shrq $9, %rdx ; \ + orq $~0x1FF, %rbx ; \ + leaq 1(%rdx), %rcx ; \ + addq %r8, %rcx ; \ + movl $0, %ecx ; \ + adcq %rcx, %rax ; \ + movq %rbx, %rax ; \ + adcq %rcx, %rax ; \ + adcq %rdx, %r8 ; \ + movq %r8, P0 ; \ + adcq %rcx, %r9 ; \ + movq %r9, 8+P0 ; \ + adcq %rcx, %r10 ; \ + movq %r10, 16+P0 ; \ + adcq %rcx, %r11 ; \ + movq %r11, 24+P0 ; \ + adcq %rcx, %r12 ; \ + movq %r12, 32+P0 ; \ + adcq %rcx, %r13 ; \ + movq %r13, 40+P0 ; \ + adcq %rcx, %r14 ; \ + movq %r14, 48+P0 ; \ + adcq %rcx, %r15 ; \ + movq %r15, 56+P0 ; \ + adcq %rcx, %rbx ; \ + andq $0x1FF, %rbx ; \ + movq %rbx, 64+P0 + +S2N_BN_SYMBOL(p521_jdouble_alt): + +#if WINDOWS_ABI + pushq %rdi + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi +#endif + +// Save registers and make room on stack for temporary variables + + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + + subq $NSPACE, %rsp + +// Main code, just a sequence of basic field operations + +// z2 = z^2 +// y2 = y^2 + + sqr_p521(z2,z_1) + sqr_p521(y2,y_1) + +// x2p = x^2 - z^4 = (x + z^2) * (x - z^2) + + add_p521(t1,x_1,z2) + sub_p521(t2,x_1,z2) + mul_p521(x2p,t1,t2) + +// t1 = y + z +// x4p = x2p^2 +// xy2 = x * y^2 + + add_p521(t1,y_1,z_1) + sqr_p521(x4p,x2p) + weakmul_p521(xy2,x_1,y2) + +// t2 = (y + z)^2 + + sqr_p521(t2,t1) + +// d = 12 * xy2 - 9 * x4p +// t1 = y^2 + 2 * y * z + + cmsub_p521(d,12,xy2,9,x4p) + sub_p521(t1,t2,z2) + +// y4 = y^4 + + sqr_p521(y4,y2) + +// z_3' = 2 * y * z +// dx2 = d * x2p + + sub_p521(z_3,t1,y2) + weakmul_p521(dx2,d,x2p) + +// x' = 4 * xy2 - d + + cmsub41_p521(x_3,xy2,d) + +// y' = 3 * dx2 - 8 * y4 + + cmsub38_p521(y_3,dx2,y4) + +// Restore stack and registers + + addq $NSPACE, %rsp + popq %r15 + popq %r14 + popq %r13 + popq %r12 + popq %rbp + popq %rbx + +#if WINDOWS_ABI + popq %rsi + popq %rdi +#endif + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack, "", %progbits +#endif diff --git a/third_party/s2n-bignum/x86_att/p521/p521_jmixadd.S b/third_party/s2n-bignum/x86_att/p521/p521_jmixadd.S index 702b63f560..879fce6954 100644 --- a/third_party/s2n-bignum/x86_att/p521/p521_jmixadd.S +++ b/third_party/s2n-bignum/x86_att/p521/p521_jmixadd.S @@ -56,6 +56,7 @@ #define zp2 (NUMSIZE*0)(%rsp) #define ww (NUMSIZE*0)(%rsp) +#define resx (NUMSIZE*0)(%rsp) #define yd (NUMSIZE*1)(%rsp) #define y2a (NUMSIZE*1)(%rsp) @@ -68,8 +69,10 @@ #define t2 (NUMSIZE*4)(%rsp) #define zzx1 (NUMSIZE*4)(%rsp) +#define resy (NUMSIZE*4)(%rsp) #define xd (NUMSIZE*5)(%rsp) +#define resz (NUMSIZE*5)(%rsp) #define tmp (NUMSIZE*6)(%rsp) @@ -667,6 +670,111 @@ andq $0x1ff, %r14 ; \ movq %r14, 0x40+P0 +// Additional macros to help with final multiplexing + +#define testzero9(P) \ + movq P, %rax ; \ + movq 8+P, %rbx ; \ + movq 16+P, %rdx ; \ + movq 24+P, %rbp ; \ + orq 32+P, %rax ; \ + orq 40+P, %rbx ; \ + orq 48+P, %rdx ; \ + orq 56+P, %rbp ; \ + orq %rbx, %rax ; \ + orq %rbp, %rdx ; \ + orq 64+P, %rax ; \ + orq %rdx, %rax + +#define mux9(P0,PNE,PEQ) \ + movq PNE, %rax ; \ + movq PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, P0 ; \ + movq 8+PNE, %rax ; \ + movq 8+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 8+P0 ; \ + movq 16+PNE, %rax ; \ + movq 16+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 16+P0 ; \ + movq 24+PNE, %rax ; \ + movq 24+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 24+P0 ; \ + movq 32+PNE, %rax ; \ + movq 32+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 32+P0 ; \ + movq 40+PNE, %rax ; \ + movq 40+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 40+P0 ; \ + movq 48+PNE, %rax ; \ + movq 48+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 48+P0 ; \ + movq 56+PNE, %rax ; \ + movq 56+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 56+P0 ; \ + movq 64+PNE, %rax ; \ + movq 64+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 64+P0 + +#define mux9c(P0,PNE) \ + movq PNE, %rax ; \ + movl $1, %ebx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, P0 ; \ + movq 8+PNE, %rax ; \ + movl $0, %ebx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 8+P0 ; \ + movq 16+PNE, %rax ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 16+P0 ; \ + movq 24+PNE, %rax ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 24+P0 ; \ + movq 32+PNE, %rax ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 32+P0 ; \ + movq 40+PNE, %rax ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 40+P0 ; \ + movq 48+PNE, %rax ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 48+P0 ; \ + movq 56+PNE, %rax ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 56+P0 ; \ + movq 64+PNE, %rax ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 64+P0 + +#define copy9(P0,P1) \ + movq P1, %rax ; \ + movq %rax, P0 ; \ + movq 8+P1, %rax ; \ + movq %rax, 8+P0 ; \ + movq 16+P1, %rax ; \ + movq %rax, 16+P0 ; \ + movq 24+P1, %rax ; \ + movq %rax, 24+P0 ; \ + movq 32+P1, %rax ; \ + movq %rax, 32+P0 ; \ + movq 40+P1, %rax ; \ + movq %rax, 40+P0 ; \ + movq 48+P1, %rax ; \ + movq %rax, 48+P0 ; \ + movq 56+P1, %rax ; \ + movq %rax, 56+P0 ; \ + movq 64+P1, %rax ; \ + movq %rax, 64+P0 + S2N_BN_SYMBOL(p521_jmixadd): #if WINDOWS_ABI @@ -709,19 +817,35 @@ S2N_BN_SYMBOL(p521_jmixadd): mul_p521(zzx1,zz,x_1) mul_p521(zzx2,zz,x2a) - sub_p521(x_3,ww,zzx1) + sub_p521(resx,ww,zzx1) sub_p521(t1,zzx2,zzx1) - mul_p521(z_3,xd,z_1) + mul_p521(resz,xd,z_1) - sub_p521(x_3,x_3,zzx2) + sub_p521(resx,resx,zzx2) - sub_p521(t2,zzx1,x_3) + sub_p521(t2,zzx1,resx) mul_p521(t1,t1,y_1) mul_p521(t2,yd,t2) - sub_p521(y_3,t2,t1) + sub_p521(resy,t2,t1) + +// Test if z_1 = 0 to decide if p1 = 0 (up to projective equivalence) + + testzero9(z_1) + +// Multiplex: if p1 <> 0 just copy the computed result from the staging area. +// If p1 = 0 then return the point p2 augmented with an extra z = 1 +// coordinate, hence giving 0 + p2 = p2 for the final result. + + mux9 (resx,resx,x_2) + mux9 (resy,resy,y_2) + + copy9(x_3,resx) + copy9(y_3,resy) + + mux9c(z_3,resz) // Restore stack and registers diff --git a/third_party/s2n-bignum/x86_att/p521/p521_jmixadd_alt.S b/third_party/s2n-bignum/x86_att/p521/p521_jmixadd_alt.S new file mode 100644 index 0000000000..d9279fe305 --- /dev/null +++ b/third_party/s2n-bignum/x86_att/p521/p521_jmixadd_alt.S @@ -0,0 +1,1144 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 + +// ---------------------------------------------------------------------------- +// Point mixed addition on NIST curve P-521 in Jacobian coordinates +// +// extern void p521_jmixadd_alt +// (uint64_t p3[static 27],uint64_t p1[static 27],uint64_t p2[static 18]); +// +// Does p3 := p1 + p2 where all points are regarded as Jacobian triples. +// A Jacobian triple (x,y,z) represents affine point (x/z^2,y/z^3). +// The "mixed" part means that p2 only has x and y coordinates, with the +// implicit z coordinate assumed to be the identity. It is assumed that +// all the coordinates of the input points p1 and p2 are fully reduced +// mod p_521, that the z coordinate of p1 is nonzero and that neither +// p1 =~= p2 or p1 =~= -p2, where "=~=" means "represents the same affine +// point as". +// +// Standard x86-64 ABI: RDI = p3, RSI = p1, RDX = p2 +// Microsoft x64 ABI: RCX = p3, RDX = p1, R8 = p2 +// ---------------------------------------------------------------------------- +#include "_internal_s2n_bignum.h" + + + S2N_BN_SYM_VISIBILITY_DIRECTIVE(p521_jmixadd_alt) + S2N_BN_SYM_PRIVACY_DIRECTIVE(p521_jmixadd_alt) + .text + +// Size of individual field elements + +#define NUMSIZE 72 + +// Stable homes for input arguments during main code sequence +// These are where they arrive except for input_y, initially in %rdx + +#define input_z %rdi +#define input_x %rsi +#define input_y %rcx + +// Pointer-offset pairs for inputs and outputs + +#define x_1 0(input_x) +#define y_1 NUMSIZE(input_x) +#define z_1 (2*NUMSIZE)(input_x) + +#define x_2 0(input_y) +#define y_2 NUMSIZE(input_y) + +#define x_3 0(input_z) +#define y_3 NUMSIZE(input_z) +#define z_3 (2*NUMSIZE)(input_z) + +// Pointer-offset pairs for temporaries, with some aliasing +// The tmp field is internal storage for field mul and sqr. +// NSPACE is the total stack needed for these temporaries + +#define zp2 (NUMSIZE*0)(%rsp) +#define ww (NUMSIZE*0)(%rsp) +#define resx (NUMSIZE*0)(%rsp) + +#define yd (NUMSIZE*1)(%rsp) +#define y2a (NUMSIZE*1)(%rsp) + +#define x2a (NUMSIZE*2)(%rsp) +#define zzx2 (NUMSIZE*2)(%rsp) + +#define zz (NUMSIZE*3)(%rsp) +#define t1 (NUMSIZE*3)(%rsp) + +#define t2 (NUMSIZE*4)(%rsp) +#define zzx1 (NUMSIZE*4)(%rsp) +#define resy (NUMSIZE*4)(%rsp) + +#define xd (NUMSIZE*5)(%rsp) +#define resz (NUMSIZE*5)(%rsp) + +#define tmp (NUMSIZE*6)(%rsp) + +#define NSPACE (NUMSIZE*7) + +// Corresponds exactly to bignum_mul_p521_alt except temp storage + +#define mul_p521(P0,P1,P2) \ + movq P1, %rax ; \ + mulq P2; \ + movq %rax, 432(%rsp) ; \ + movq %rdx, %r9 ; \ + xorq %r10, %r10 ; \ + xorq %r11, %r11 ; \ + movq P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + movq 0x8+P1, %rax ; \ + mulq P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq %r11, %r11 ; \ + movq %r9, 440(%rsp) ; \ + xorq %r12, %r12 ; \ + movq P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq %r12, %r12 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x10+P1, %rax ; \ + mulq P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq %r10, 448(%rsp) ; \ + xorq %r13, %r13 ; \ + movq P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq %r13, %r13 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x18+P1, %rax ; \ + mulq P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq %r11, 456(%rsp) ; \ + xorq %r14, %r14 ; \ + movq P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq %r14, %r14 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x20+P1, %rax ; \ + mulq P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq %r12, 464(%rsp) ; \ + xorq %r15, %r15 ; \ + movq P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq %r15, %r15 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x28+P1, %rax ; \ + mulq P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq %r13, 472(%rsp) ; \ + xorq %r8, %r8 ; \ + movq P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq %r8, %r8 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x30+P1, %rax ; \ + mulq P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq %r14, 480(%rsp) ; \ + xorq %r9, %r9 ; \ + movq P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq %r9, %r9 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq 0x38+P1, %rax ; \ + mulq P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + adcq $0x0, %r9 ; \ + movq %r15, 488(%rsp) ; \ + xorq %r10, %r10 ; \ + movq P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq %r10, %r10 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x40+P1, %rax ; \ + mulq P2; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq %r8, 496(%rsp) ; \ + xorq %r11, %r11 ; \ + movq 0x8+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq %r11, %r11 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x8+P2; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + xorq %r12, %r12 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq %r12, %r12 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x10+P2; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + xorq %r13, %r13 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq %r13, %r13 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x18+P2; \ + addq %rax, %r11 ; \ + adcq %rdx, %r12 ; \ + adcq $0x0, %r13 ; \ + xorq %r14, %r14 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq %r14, %r14 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x20+P2; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + xorq %r15, %r15 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq %r15, %r15 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x28+P2; \ + addq %rax, %r13 ; \ + adcq %rdx, %r14 ; \ + adcq $0x0, %r15 ; \ + xorq %r8, %r8 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq %r8, %r8 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x30+P2; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x40+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + movq 0x40+P1, %rax ; \ + mulq 0x38+P2; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + movq 0x40+P1, %rax ; \ + imulq 0x40+P2, %rax ; \ + addq %r8, %rax ; \ + movq 496(%rsp), %r8 ; \ + movq %r8, %rdx ; \ + andq $0x1ff, %rdx ; \ + shrdq $0x9, %r9, %r8 ; \ + shrdq $0x9, %r10, %r9 ; \ + shrdq $0x9, %r11, %r10 ; \ + shrdq $0x9, %r12, %r11 ; \ + shrdq $0x9, %r13, %r12 ; \ + shrdq $0x9, %r14, %r13 ; \ + shrdq $0x9, %r15, %r14 ; \ + shrdq $0x9, %rax, %r15 ; \ + shrq $0x9, %rax ; \ + addq %rax, %rdx ; \ + stc; \ + adcq 432(%rsp), %r8 ; \ + adcq 440(%rsp), %r9 ; \ + adcq 448(%rsp), %r10 ; \ + adcq 456(%rsp), %r11 ; \ + adcq 464(%rsp), %r12 ; \ + adcq 472(%rsp), %r13 ; \ + adcq 480(%rsp), %r14 ; \ + adcq 488(%rsp), %r15 ; \ + adcq $0xfffffffffffffe00, %rdx ; \ + cmc; \ + sbbq $0x0, %r8 ; \ + movq %r8, P0 ; \ + sbbq $0x0, %r9 ; \ + movq %r9, 0x8+P0 ; \ + sbbq $0x0, %r10 ; \ + movq %r10, 0x10+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x18+P0 ; \ + sbbq $0x0, %r12 ; \ + movq %r12, 0x20+P0 ; \ + sbbq $0x0, %r13 ; \ + movq %r13, 0x28+P0 ; \ + sbbq $0x0, %r14 ; \ + movq %r14, 0x30+P0 ; \ + sbbq $0x0, %r15 ; \ + movq %r15, 0x38+P0 ; \ + sbbq $0x0, %rdx ; \ + andq $0x1ff, %rdx ; \ + movq %rdx, 0x40+P0 + +// Corresponds to bignum_sqr_p521_alt except %rbp is used +// in place of %rcx and the output as temp storage location + +#define sqr_p521(P0,P1) \ + movq P1, %rax ; \ + mulq %rax; \ + movq %rax, 432(%rsp) ; \ + movq %rdx, %r9 ; \ + xorq %r10, %r10 ; \ + xorq %r11, %r11 ; \ + movq P1, %rax ; \ + mulq 0x8+P1; \ + addq %rax, %rax ; \ + adcq %rdx, %rdx ; \ + adcq $0x0, %r11 ; \ + addq %rax, %r9 ; \ + adcq %rdx, %r10 ; \ + adcq $0x0, %r11 ; \ + movq %r9, 440(%rsp) ; \ + xorq %r12, %r12 ; \ + movq 0x8+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq P1, %rax ; \ + mulq 0x10+P1; \ + addq %rax, %rax ; \ + adcq %rdx, %rdx ; \ + adcq $0x0, %r12 ; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq %r10, 448(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x18+P1; \ + xorq %r13, %r13 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq 0x10+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r13 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r13, %r13 ; \ + addq %rbx, %r11 ; \ + adcq %rbp, %r12 ; \ + adcq $0x0, %r13 ; \ + movq %r11, 456(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x20+P1; \ + xorq %r14, %r14 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq 0x18+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r14 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r14, %r14 ; \ + addq %rbx, %r12 ; \ + adcq %rbp, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x10+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq %r12, 464(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x28+P1; \ + xorq %r15, %r15 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq 0x20+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r15 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x18+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r15 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r15, %r15 ; \ + addq %rbx, %r13 ; \ + adcq %rbp, %r14 ; \ + adcq $0x0, %r15 ; \ + movq %r13, 472(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x30+P1; \ + xorq %r8, %r8 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r8 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x20+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r8 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r8, %r8 ; \ + addq %rbx, %r14 ; \ + adcq %rbp, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x18+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq %r14, 480(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x38+P1; \ + xorq %r9, %r9 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r9 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r9 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x20+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r9 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r9, %r9 ; \ + addq %rbx, %r15 ; \ + adcq %rbp, %r8 ; \ + adcq $0x0, %r9 ; \ + movq %r15, 488(%rsp) ; \ + movq P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r10, %r10 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x8+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r10 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r10 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r10 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r10, %r10 ; \ + addq %rbx, %r8 ; \ + adcq %rbp, %r9 ; \ + adcq $0x0, %r10 ; \ + movq 0x20+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r8 ; \ + adcq %rdx, %r9 ; \ + adcq $0x0, %r10 ; \ + movq %r8, 496(%rsp) ; \ + movq 0x8+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r11, %r11 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x10+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r11 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r11 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x28+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r11 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r11, %r11 ; \ + addq %rbx, %r9 ; \ + adcq %rbp, %r10 ; \ + adcq $0x0, %r11 ; \ + movq 0x10+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r12, %r12 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x18+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r12 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r12 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r12, %r12 ; \ + addq %rbx, %r10 ; \ + adcq %rbp, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x28+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r10 ; \ + adcq %rdx, %r11 ; \ + adcq $0x0, %r12 ; \ + movq 0x18+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r13, %r13 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x20+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r13 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x30+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r13 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r13, %r13 ; \ + addq %rbx, %r11 ; \ + adcq %rbp, %r12 ; \ + adcq $0x0, %r13 ; \ + movq 0x20+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r14, %r14 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x28+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r14 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r14, %r14 ; \ + addq %rbx, %r12 ; \ + adcq %rbp, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x30+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r12 ; \ + adcq %rdx, %r13 ; \ + adcq $0x0, %r14 ; \ + movq 0x28+P1, %rax ; \ + mulq 0x40+P1; \ + xorq %r15, %r15 ; \ + movq %rax, %rbx ; \ + movq %rdx, %rbp ; \ + movq 0x30+P1, %rax ; \ + mulq 0x38+P1; \ + addq %rax, %rbx ; \ + adcq %rdx, %rbp ; \ + adcq $0x0, %r15 ; \ + addq %rbx, %rbx ; \ + adcq %rbp, %rbp ; \ + adcq %r15, %r15 ; \ + addq %rbx, %r13 ; \ + adcq %rbp, %r14 ; \ + adcq $0x0, %r15 ; \ + xorq %r8, %r8 ; \ + movq 0x38+P1, %rax ; \ + mulq %rax; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x30+P1, %rax ; \ + mulq 0x40+P1; \ + addq %rax, %rax ; \ + adcq %rdx, %rdx ; \ + adcq $0x0, %r8 ; \ + addq %rax, %r14 ; \ + adcq %rdx, %r15 ; \ + adcq $0x0, %r8 ; \ + movq 0x38+P1, %rax ; \ + mulq 0x40+P1; \ + addq %rax, %rax ; \ + adcq %rdx, %rdx ; \ + addq %rax, %r15 ; \ + adcq %rdx, %r8 ; \ + movq 0x40+P1, %rax ; \ + imulq %rax, %rax ; \ + addq %r8, %rax ; \ + movq 496(%rsp), %r8 ; \ + movq %r8, %rdx ; \ + andq $0x1ff, %rdx ; \ + shrdq $0x9, %r9, %r8 ; \ + shrdq $0x9, %r10, %r9 ; \ + shrdq $0x9, %r11, %r10 ; \ + shrdq $0x9, %r12, %r11 ; \ + shrdq $0x9, %r13, %r12 ; \ + shrdq $0x9, %r14, %r13 ; \ + shrdq $0x9, %r15, %r14 ; \ + shrdq $0x9, %rax, %r15 ; \ + shrq $0x9, %rax ; \ + addq %rax, %rdx ; \ + stc; \ + adcq 432(%rsp), %r8 ; \ + adcq 440(%rsp), %r9 ; \ + adcq 448(%rsp), %r10 ; \ + adcq 456(%rsp), %r11 ; \ + adcq 464(%rsp), %r12 ; \ + adcq 472(%rsp), %r13 ; \ + adcq 480(%rsp), %r14 ; \ + adcq 488(%rsp), %r15 ; \ + adcq $0xfffffffffffffe00, %rdx ; \ + cmc; \ + sbbq $0x0, %r8 ; \ + movq %r8, P0 ; \ + sbbq $0x0, %r9 ; \ + movq %r9, 0x8+P0 ; \ + sbbq $0x0, %r10 ; \ + movq %r10, 0x10+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x18+P0 ; \ + sbbq $0x0, %r12 ; \ + movq %r12, 0x20+P0 ; \ + sbbq $0x0, %r13 ; \ + movq %r13, 0x28+P0 ; \ + sbbq $0x0, %r14 ; \ + movq %r14, 0x30+P0 ; \ + sbbq $0x0, %r15 ; \ + movq %r15, 0x38+P0 ; \ + sbbq $0x0, %rdx ; \ + andq $0x1ff, %rdx ; \ + movq %rdx, 0x40+P0 ; \ + +// Corresponds exactly to bignum_sub_p521 + +#define sub_p521(P0,P1,P2) \ + movq P1, %rax ; \ + subq P2, %rax ; \ + movq 0x8+P1, %rdx ; \ + sbbq 0x8+P2, %rdx ; \ + movq 0x10+P1, %r8 ; \ + sbbq 0x10+P2, %r8 ; \ + movq 0x18+P1, %r9 ; \ + sbbq 0x18+P2, %r9 ; \ + movq 0x20+P1, %r10 ; \ + sbbq 0x20+P2, %r10 ; \ + movq 0x28+P1, %r11 ; \ + sbbq 0x28+P2, %r11 ; \ + movq 0x30+P1, %r12 ; \ + sbbq 0x30+P2, %r12 ; \ + movq 0x38+P1, %r13 ; \ + sbbq 0x38+P2, %r13 ; \ + movq 0x40+P1, %r14 ; \ + sbbq 0x40+P2, %r14 ; \ + sbbq $0x0, %rax ; \ + movq %rax, P0 ; \ + sbbq $0x0, %rdx ; \ + movq %rdx, 0x8+P0 ; \ + sbbq $0x0, %r8 ; \ + movq %r8, 0x10+P0 ; \ + sbbq $0x0, %r9 ; \ + movq %r9, 0x18+P0 ; \ + sbbq $0x0, %r10 ; \ + movq %r10, 0x20+P0 ; \ + sbbq $0x0, %r11 ; \ + movq %r11, 0x28+P0 ; \ + sbbq $0x0, %r12 ; \ + movq %r12, 0x30+P0 ; \ + sbbq $0x0, %r13 ; \ + movq %r13, 0x38+P0 ; \ + sbbq $0x0, %r14 ; \ + andq $0x1ff, %r14 ; \ + movq %r14, 0x40+P0 + +// Additional macros to help with final multiplexing + +#define testzero9(P) \ + movq P, %rax ; \ + movq 8+P, %rbx ; \ + movq 16+P, %rdx ; \ + movq 24+P, %rbp ; \ + orq 32+P, %rax ; \ + orq 40+P, %rbx ; \ + orq 48+P, %rdx ; \ + orq 56+P, %rbp ; \ + orq %rbx, %rax ; \ + orq %rbp, %rdx ; \ + orq 64+P, %rax ; \ + orq %rdx, %rax + +#define mux9(P0,PNE,PEQ) \ + movq PNE, %rax ; \ + movq PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, P0 ; \ + movq 8+PNE, %rax ; \ + movq 8+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 8+P0 ; \ + movq 16+PNE, %rax ; \ + movq 16+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 16+P0 ; \ + movq 24+PNE, %rax ; \ + movq 24+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 24+P0 ; \ + movq 32+PNE, %rax ; \ + movq 32+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 32+P0 ; \ + movq 40+PNE, %rax ; \ + movq 40+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 40+P0 ; \ + movq 48+PNE, %rax ; \ + movq 48+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 48+P0 ; \ + movq 56+PNE, %rax ; \ + movq 56+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 56+P0 ; \ + movq 64+PNE, %rax ; \ + movq 64+PEQ, %rbx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 64+P0 + +#define mux9c(P0,PNE) \ + movq PNE, %rax ; \ + movl $1, %ebx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, P0 ; \ + movq 8+PNE, %rax ; \ + movl $0, %ebx ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 8+P0 ; \ + movq 16+PNE, %rax ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 16+P0 ; \ + movq 24+PNE, %rax ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 24+P0 ; \ + movq 32+PNE, %rax ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 32+P0 ; \ + movq 40+PNE, %rax ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 40+P0 ; \ + movq 48+PNE, %rax ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 48+P0 ; \ + movq 56+PNE, %rax ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 56+P0 ; \ + movq 64+PNE, %rax ; \ + cmovzq %rbx, %rax ; \ + movq %rax, 64+P0 + +#define copy9(P0,P1) \ + movq P1, %rax ; \ + movq %rax, P0 ; \ + movq 8+P1, %rax ; \ + movq %rax, 8+P0 ; \ + movq 16+P1, %rax ; \ + movq %rax, 16+P0 ; \ + movq 24+P1, %rax ; \ + movq %rax, 24+P0 ; \ + movq 32+P1, %rax ; \ + movq %rax, 32+P0 ; \ + movq 40+P1, %rax ; \ + movq %rax, 40+P0 ; \ + movq 48+P1, %rax ; \ + movq %rax, 48+P0 ; \ + movq 56+P1, %rax ; \ + movq %rax, 56+P0 ; \ + movq 64+P1, %rax ; \ + movq %rax, 64+P0 + +S2N_BN_SYMBOL(p521_jmixadd_alt): + +#if WINDOWS_ABI + pushq %rdi + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi + movq %r8, %rdx +#endif + +// Save registers and make room on stack for temporary variables + + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + + subq $NSPACE, %rsp + +// Move the input arguments to stable places (two are already there) + + movq %rdx, input_y + +// Main code, just a sequence of basic field operations + + sqr_p521(zp2,z_1) + mul_p521(y2a,z_1,y_2) + + mul_p521(x2a,zp2,x_2) + mul_p521(y2a,zp2,y2a) + + sub_p521(xd,x2a,x_1) + sub_p521(yd,y2a,y_1) + + sqr_p521(zz,xd) + sqr_p521(ww,yd) + + mul_p521(zzx1,zz,x_1) + mul_p521(zzx2,zz,x2a) + + sub_p521(resx,ww,zzx1) + sub_p521(t1,zzx2,zzx1) + + mul_p521(resz,xd,z_1) + + sub_p521(resx,resx,zzx2) + + sub_p521(t2,zzx1,resx) + + mul_p521(t1,t1,y_1) + mul_p521(t2,yd,t2) + + sub_p521(resy,t2,t1) + +// Test if z_1 = 0 to decide if p1 = 0 (up to projective equivalence) + + testzero9(z_1) + +// Multiplex: if p1 <> 0 just copy the computed result from the staging area. +// If p1 = 0 then return the point p2 augmented with an extra z = 1 +// coordinate, hence giving 0 + p2 = p2 for the final result. + + mux9 (resx,resx,x_2) + mux9 (resy,resy,y_2) + + copy9(x_3,resx) + copy9(y_3,resy) + + mux9c(z_3,resz) + +// Restore stack and registers + + addq $NSPACE, %rsp + popq %r15 + popq %r14 + popq %r13 + popq %r12 + popq %rbp + popq %rbx + +#if WINDOWS_ABI + popq %rsi + popq %rdi +#endif + ret + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack, "", %progbits +#endif diff --git a/tool-openssl/CMakeLists.txt b/tool-openssl/CMakeLists.txt new file mode 100644 index 0000000000..595cc29089 --- /dev/null +++ b/tool-openssl/CMakeLists.txt @@ -0,0 +1,62 @@ +add_executable( + openssl + + ../tool/args.cc + ../tool/file.cc + tool.cc + x509.cc + rsa.cc + md5.cc +) + +target_include_directories(openssl PUBLIC ${PROJECT_SOURCE_DIR}/include) +target_compile_options(openssl PUBLIC -DINTERNAL_TOOL) + +if(WIN32) + target_link_libraries(openssl ws2_32) +endif() + +if(APPLE OR WIN32 OR ANDROID) + target_link_libraries(openssl ssl crypto) + set(LIBRT_FLAG "") +else() + find_library(FOUND_LIBRT rt) + if(FOUND_LIBRT) + target_link_libraries(openssl ssl crypto -lrt) + set(LIBRT_FLAG "-lrt") + else() + target_link_libraries(openssl ssl crypto) + set(LIBRT_FLAG "") + endif() +endif() + +target_include_directories(openssl BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include) + +install(TARGETS openssl + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} +) + +if(MSVC AND CMAKE_BUILD_TYPE_LOWER MATCHES "relwithdebinfo" AND FIPS) + install (FILES $/openssl.pdb DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() + +if(BUILD_TESTING) + add_executable( + tool_openssl_test + + ../tool/args.cc + ../tool/file.cc + x509_test.cc + rsa_test.cc + md5_test.cc + x509.cc + rsa.cc + md5.cc + ) + + target_link_libraries(tool_openssl_test boringssl_gtest_main ssl crypto) + target_include_directories(tool_openssl_test BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include) + add_dependencies(all_tests tool_openssl_test) + set_test_location(tool_openssl_test) +endif() diff --git a/tool-openssl/README.md b/tool-openssl/README.md new file mode 100644 index 0000000000..470608deff --- /dev/null +++ b/tool-openssl/README.md @@ -0,0 +1,12 @@ +# OpenSSL Tools for AWS-LC +*Files expected to change* + +Current status: +* Contains initial implementation for OpenSSL x509, rsa, and md5 tools + * x509 options: -in -out, -req, -signkey, -modulus, -days, -dates, + -checkend, -noout (x509.cc) + * rsa options: -in, -out, -noout, -modulus (rsa.cc) + * md5 options: N/A (md5.cc) +* Unit, integration, and OpenSSL comparison tests (x509_test.cc, rsa_test.cc, md5_test.cc) + * OpenSSL comparison tests require environment variables for both AWS-LC ("AWSLC_TOOL_PATH") and OpenSSL ("OPENSSL_TOOL_PATH") tools + diff --git a/tool-openssl/internal.h b/tool-openssl/internal.h new file mode 100644 index 0000000000..153c805f9d --- /dev/null +++ b/tool-openssl/internal.h @@ -0,0 +1,30 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC + +#ifndef INTERNAL_H +#define INTERNAL_H + +#include "../tool/internal.h" +#include +#include + + + +typedef bool (*tool_func_t)(const std::vector &args); + +bool IsNumeric(const std::string& str); + +X509* CreateAndSignX509Certificate(); + +bool WriteSignedCertificate(X509 *x509, const std::string &out_path); + +bool LoadPrivateKeyAndSignCertificate(X509 *x509, const std::string &signkey_path); + +tool_func_t FindTool(const std::string &name); +tool_func_t FindTool(int argc, char **argv, int &starting_arg); + +bool X509Tool(const args_list_t &args); +bool rsaTool(const args_list_t &args); +bool md5Tool(const args_list_t &args); + +#endif //INTERNAL_H diff --git a/tool-openssl/md5.cc b/tool-openssl/md5.cc new file mode 100644 index 0000000000..74333f7144 --- /dev/null +++ b/tool-openssl/md5.cc @@ -0,0 +1,50 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC + +#include +#include +#include "internal.h" + +// MD5 command currently only supports stdin +static const argument_t kArguments[] = { + { "-help", kBooleanArgument, "Display option summary" }, + { "", kOptionalArgument, "" } +}; + +// Map arguments using tool/args.cc +bool md5Tool(const args_list_t &args) { + args_map_t parsed_args; + if (!ParseKeyValueArguments(&parsed_args, args, kArguments)) { + PrintUsage(kArguments); + return false; + } + + bool help = false; + GetBoolArgument(&help, "-help", parsed_args); + + if (help) { + PrintUsage(kArguments); + return false; + } + + // Read input from stdin + std::string input; + std::getline(std::cin, input); + + if (input.empty()) { + fprintf(stderr, "Error: no input provided\n"); + return false; + } + + unsigned char md5_digest[MD5_DIGEST_LENGTH]; + MD5(reinterpret_cast(input.c_str()), input.length(), md5_digest); + + printf("(stdin)= "); + for (int i = 0; i < MD5_DIGEST_LENGTH; ++i) { + printf("%02x", md5_digest[i]); + } + printf("\n"); + + return true; +} + diff --git a/tool-openssl/md5_test.cc b/tool-openssl/md5_test.cc new file mode 100644 index 0000000000..061fb3a8cc --- /dev/null +++ b/tool-openssl/md5_test.cc @@ -0,0 +1,93 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC + +#include +#include +#include "internal.h" +#include "test_util.h" +#include + + +#ifdef _WIN32 +#include +#ifndef PATH_MAX +#define PATH_MAX MAX_PATH +#endif +#else +#include +#ifndef PATH_MAX +#define PATH_MAX 4096 +#endif +#endif + +size_t createTempFILEpath(char buffer[PATH_MAX]); + +std::string GetHash(const std::string& str); + + +// -------------------- MD5 OpenSSL Comparison Test --------------------------- + +// Comparison tests cannot run without set up of environment variables: +// AWSLC_TOOL_PATH and OPENSSL_TOOL_PATH. + +class MD5ComparisonTest : public ::testing::Test { +protected: + void SetUp() override { + + // Skip gtests if env variables not set + tool_executable_path = getenv("AWSLC_TOOL_PATH"); + openssl_executable_path = getenv("OPENSSL_TOOL_PATH"); + if (tool_executable_path == nullptr || openssl_executable_path == nullptr) { + GTEST_SKIP() << "Skipping test: AWSLC_TOOL_PATH and/or OPENSSL_TOOL_PATH environment variables are not set"; + } + ASSERT_GT(createTempFILEpath(in_path), 0u); + ASSERT_GT(createTempFILEpath(out_path_tool), 0u); + ASSERT_GT(createTempFILEpath(out_path_openssl), 0u); + } + void TearDown() override { + if (tool_executable_path != nullptr && openssl_executable_path != nullptr) { + RemoveFile(in_path); + RemoveFile(out_path_tool); + RemoveFile(out_path_openssl); + } + } + char in_path[PATH_MAX]; + char out_path_tool[PATH_MAX]; + char out_path_openssl[PATH_MAX]; + bssl::UniquePtr rsa; + const char* tool_executable_path; + const char* openssl_executable_path; + std::string tool_output_str; + std::string openssl_output_str; +}; + +// OpenSSL versions 3.1.0 and later change from "(stdin)= " to "MD5(stdin) =" +std::string GetHash(const std::string& str) { + size_t pos = str.find('='); + if (pos == std::string::npos) { + return ""; + } + return str.substr(pos + 1); +} + +// Test against OpenSSL output +TEST_F(MD5ComparisonTest, MD5ToolCompareOpenSSL) { + std::string input_file = std::string(in_path); + std::ofstream ofs(input_file); + ofs << "AWS_LC_TEST_STRING_INPUT"; + ofs.close(); + + std::string tool_command = std::string(tool_executable_path) + " md5 < " + input_file + " > " + out_path_tool; + std::string openssl_command = std::string(openssl_executable_path) + " md5 < " + input_file + " > " + out_path_openssl; + + RunCommandsAndCompareOutput(tool_command, openssl_command, out_path_tool, out_path_openssl, tool_output_str, openssl_output_str); + + std::string tool_hash = GetHash(tool_output_str); + std::string openssl_hash = GetHash(openssl_output_str); + tool_hash = trim(tool_hash); + openssl_hash = trim(openssl_hash); + + ASSERT_EQ(tool_hash, openssl_hash); + + RemoveFile(input_file.c_str()); +} diff --git a/tool-openssl/rsa.cc b/tool-openssl/rsa.cc new file mode 100644 index 0000000000..9cc4da79a7 --- /dev/null +++ b/tool-openssl/rsa.cc @@ -0,0 +1,102 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC + +#include +#include +#include "internal.h" + +static const argument_t kArguments[] = { + { "-help", kBooleanArgument, "Display option summary" }, + { "-in", kOptionalArgument, "RSA key input file" }, + { "-out", kOptionalArgument, "Output file to write to" }, + { "-noout", kBooleanArgument, "Prevents output of the encoded version of the RSA key" }, + { "-modulus", kBooleanArgument, "Prints out the value of the modulus of the RSA key" }, + { "", kOptionalArgument, "" } +}; + +// Map arguments using tool/args.cc +bool rsaTool(const args_list_t &args) { + args_map_t parsed_args; + if (!ParseKeyValueArguments(&parsed_args, args, kArguments)) { + PrintUsage(kArguments); + return false; + } + + std::string in_path, out_path; + bool noout = false, modulus = false; + bool help = false; + + GetBoolArgument(&help, "-help", parsed_args); + GetString(&in_path, "-in", "", parsed_args); + GetString(&out_path, "-out", "", parsed_args); + GetBoolArgument(&noout, "-noout", parsed_args); + GetBoolArgument(&modulus, "-modulus", parsed_args); + + // Display rsa tool option summary + if (help) { + PrintUsage(kArguments); + return false; + } + + // Check for required option -in + if (in_path.empty()) { + fprintf(stderr, "Error: missing required argument '-in'\n"); + return false; + } + + ScopedFILE in_file(fopen(in_path.c_str(), "rb")); + if (!in_file) { + fprintf(stderr, "Error: unable to load RSA key from '%s'\n", in_path.c_str()); + return false; + } + + bssl::UniquePtr rsa(PEM_read_RSAPrivateKey(in_file.get(), nullptr, nullptr, nullptr)); + if (!rsa) { + fprintf(stderr, "Error: unable to read RSA private key from '%s'\n", in_path.c_str()); + return false; + } + + ScopedFILE out_file; + if (!out_path.empty()) { + out_file.reset(fopen(out_path.c_str(), "wb")); + if (!out_file) { + fprintf(stderr, "Error: unable to open output file '%s'\n", out_path.c_str()); + return false; + } + } + + if (modulus) { + const BIGNUM *n = RSA_get0_n(rsa.get()); + if (!n) { + fprintf(stderr, "Error: unable to load modulus\n"); + return false; + } + char *hex_modulus = BN_bn2hex(n); + if (!hex_modulus) { + fprintf(stderr, "Error: unable to convert modulus to hex\n"); + return false; + } + for (char *p = hex_modulus; *p; ++p) { + *p = toupper(*p); + } + if (out_file) { + fprintf(out_file.get(), "Modulus=%s\n", hex_modulus); + } else { + printf("Modulus=%s\n", hex_modulus); + } + OPENSSL_free(hex_modulus); + } + + if (!noout) { + if (out_file) { + if (!PEM_write_RSAPrivateKey(out_file.get(), rsa.get(), nullptr, nullptr, 0, nullptr, nullptr)) { + fprintf(stderr, "Error: unable to write RSA private key to '%s'\n", out_path.c_str()); + return false; + } + } else { + PEM_write_RSAPrivateKey(stdout, rsa.get(), nullptr, nullptr, 0, nullptr, nullptr); + } + } + + return true; +} diff --git a/tool-openssl/rsa_test.cc b/tool-openssl/rsa_test.cc new file mode 100644 index 0000000000..10fba1e09f --- /dev/null +++ b/tool-openssl/rsa_test.cc @@ -0,0 +1,244 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC + +#include "openssl/rsa.h" +#include +#include +#include "internal.h" +#include "test_util.h" +#include + + +#ifdef _WIN32 +#include +#ifndef PATH_MAX +#define PATH_MAX MAX_PATH +#endif +#else +#include +#ifndef PATH_MAX +#define PATH_MAX 4096 +#endif +#endif + +size_t createTempFILEpath(char buffer[PATH_MAX]); + +bool CheckBoundaries(const std::string &content, const std::string &begin1, const std::string &end1, const std::string &begin2, const std::string &end2); + +RSA* CreateRSAKey(); + +RSA* CreateRSAKey() { + bssl::UniquePtr bn(BN_new()); + if (!bn || !BN_set_word(bn.get(), RSA_F4)) { + return nullptr; + } + bssl::UniquePtr rsa(RSA_new()); + if (!rsa || !RSA_generate_key_ex(rsa.get(), 2048, bn.get(), nullptr)) { + return nullptr; + } + return rsa.release(); +} + +class RSATest : public ::testing::Test { +protected: + void SetUp() override { + ASSERT_GT(createTempFILEpath(in_path), 0u); + ASSERT_GT(createTempFILEpath(out_path), 0u); + + bssl::UniquePtr rsa(CreateRSAKey()); + ASSERT_TRUE(rsa); + + ScopedFILE in_file(fopen(in_path, "wb")); + ASSERT_TRUE(in_file); + ASSERT_TRUE(PEM_write_RSAPrivateKey(in_file.get(), rsa.get(), nullptr, nullptr, 0, nullptr, nullptr)); + } + void TearDown() override { + RemoveFile(in_path); + RemoveFile(out_path); + } + char in_path[PATH_MAX]; + char out_path[PATH_MAX]; +}; + +// ----------------------------- RSA Option Tests ----------------------------- + +// Test -in and -out +TEST_F(RSATest, RSAToolInOutTest) { + args_list_t args = {"-in", in_path, "-out", out_path}; + bool result = rsaTool(args); + ASSERT_TRUE(result); + { + ScopedFILE out_file(fopen(out_path, "rb")); + ASSERT_TRUE(out_file); + bssl::UniquePtr parsed_rsa(PEM_read_RSAPrivateKey(out_file.get(), nullptr, nullptr, nullptr)); + ASSERT_TRUE(parsed_rsa); + } +} + +// Test -modulus +TEST_F(RSATest, RSAToolModulusTest) { + args_list_t args = {"-in", in_path, "-modulus"}; + bool result = rsaTool(args); + ASSERT_TRUE(result); +} + +// Test -noout +TEST_F(RSATest, RSAToolNooutTest) { + args_list_t args = {"-in", in_path, "-noout"}; + bool result = rsaTool(args); + ASSERT_TRUE(result); +} + + +// -------------------- RSA Option Usage Error Tests -------------------------- + +class RSAOptionUsageErrorsTest : public RSATest { +protected: + void TestOptionUsageErrors(const std::vector& args) { + args_list_t c_args; + for (const auto& arg : args) { + c_args.push_back(arg.c_str()); + } + bool result = rsaTool(c_args); + ASSERT_FALSE(result); + } +}; + +// Test missing -in required option +TEST_F(RSAOptionUsageErrorsTest, RequiredOptionTests) { + std::vector> testparams = { + {"-out", "output.pem"}, + {"-modulus"}, + }; + for (const auto& args : testparams) { + TestOptionUsageErrors(args); + } +} + +// -------------------- RSA OpenSSL Comparison Tests -------------------------- + +// Comparison tests cannot run without set up of environment variables: +// AWSLC_TOOL_PATH and OPENSSL_TOOL_PATH. + +class RSAComparisonTest : public ::testing::Test { +protected: + void SetUp() override { + + // Skip gtests if env variables not set + tool_executable_path = getenv("AWSLC_TOOL_PATH"); + openssl_executable_path = getenv("OPENSSL_TOOL_PATH"); + if (tool_executable_path == nullptr || openssl_executable_path == nullptr) { + GTEST_SKIP() << "Skipping test: AWSLC_TOOL_PATH and/or OPENSSL_TOOL_PATH environment variables are not set"; + } + + ASSERT_GT(createTempFILEpath(in_path), 0u); + ASSERT_GT(createTempFILEpath(out_path_tool), 0u); + ASSERT_GT(createTempFILEpath(out_path_openssl), 0u); + + rsa.reset(CreateRSAKey()); + ASSERT_TRUE(rsa); + + ScopedFILE in_file(fopen(in_path, "wb")); + ASSERT_TRUE(in_file); + ASSERT_TRUE(PEM_write_RSAPrivateKey(in_file.get(), rsa.get(), nullptr, nullptr, 0, nullptr, nullptr)); + } + + void TearDown() override { + if (tool_executable_path != nullptr && openssl_executable_path != nullptr) { + RemoveFile(in_path); + RemoveFile(out_path_tool); + RemoveFile(out_path_openssl); + } + } + + char in_path[PATH_MAX]; + char out_path_tool[PATH_MAX]; + char out_path_openssl[PATH_MAX]; + bssl::UniquePtr rsa; + const char* tool_executable_path; + const char* openssl_executable_path; + std::string tool_output_str; + std::string openssl_output_str; +}; + + +// RSA boundaries +const std::string RSA_BEGIN = "-----BEGIN RSA PRIVATE KEY-----"; +const std::string RSA_END = "-----END RSA PRIVATE KEY-----"; +const std::string BEGIN = "-----BEGIN PRIVATE KEY-----"; +const std::string END = "-----END PRIVATE KEY-----"; +const std::string MODULUS = "Modulus="; + +// OpenSSL versions 3.1.0 and later change PEM outputs from "BEGIN RSA PRIVATE KEY" to "BEGIN PRIVATE KEY" +bool CheckBoundaries(const std::string &content, const std::string &begin1, const std::string &end1, const std::string &begin2, const std::string &end2) { + return (content.compare(0, begin1.size(), begin1) == 0 && content.compare(content.size() - end1.size(), end1.size(), end1) == 0) || + (content.compare(0, begin2.size(), begin2) == 0 && content.compare(content.size() - end2.size(), end2.size(), end2) == 0); +} + +// Test against OpenSSL output "openssl rsa -in file -modulus" +// Rsa private key is printed to stdin +TEST_F(RSAComparisonTest, RSAToolCompareModulusOpenSSL) { + std::string tool_command = std::string(tool_executable_path) + " rsa -in " + in_path + " > " + out_path_tool; + std::string openssl_command = std::string(openssl_executable_path) + " rsa -in " + in_path + " > " + out_path_openssl; + + RunCommandsAndCompareOutput(tool_command, openssl_command, out_path_tool, out_path_openssl, tool_output_str, openssl_output_str); + + trim(tool_output_str); + ASSERT_TRUE(CheckBoundaries(tool_output_str, RSA_BEGIN, RSA_END, BEGIN, END)); + + trim(openssl_output_str); + ASSERT_TRUE(CheckBoundaries(openssl_output_str, RSA_BEGIN, RSA_END, BEGIN, END)); +} + +// Test against OpenSSL output "openssl rsa -in file -modulus -noout" +// Only modulus is printed to stdin +TEST_F(RSAComparisonTest, RSAToolCompareModulusNooutOpenSSL) { + std::string tool_command = std::string(tool_executable_path) + " rsa -in " + in_path + " -modulus -noout > " + out_path_tool; + std::string openssl_command = std::string(openssl_executable_path) + " rsa -in " + in_path + " -modulus -noout > " + out_path_openssl; + + RunCommandsAndCompareOutput(tool_command, openssl_command, out_path_tool, out_path_openssl, tool_output_str, openssl_output_str); + + ASSERT_EQ(tool_output_str, openssl_output_str); +} + +// Test against OpenSSL output "openssl rsa -in file -modulus -out out_file" +// Modulus and rsa private key are printed to output file +TEST_F(RSAComparisonTest, RSAToolCompareModulusOutOpenSSL) { + std::string tool_command = std::string(tool_executable_path) + " rsa -in " + in_path + " -modulus -out " + out_path_tool; + std::string openssl_command = std::string(openssl_executable_path) + " rsa -in " + in_path + " -modulus -out " + out_path_openssl; + + RunCommandsAndCompareOutput(tool_command, openssl_command, out_path_tool, out_path_openssl, tool_output_str, openssl_output_str); + + ScopedFILE tool_out_file(fopen(out_path_tool, "rb")); + ASSERT_TRUE(tool_out_file); + ScopedFILE openssl_out_file(fopen(out_path_openssl, "rb")); + ASSERT_TRUE(openssl_out_file); + + tool_output_str = ReadFileToString(out_path_tool); + openssl_output_str = ReadFileToString(out_path_openssl); + trim(tool_output_str); + ASSERT_TRUE(CheckBoundaries(tool_output_str, MODULUS, RSA_END, MODULUS, END)); + + trim(openssl_output_str); + ASSERT_TRUE(CheckBoundaries(openssl_output_str, MODULUS, RSA_END, MODULUS, END)); +} + +// Test against OpenSSL output "openssl rsa -in file -modulus -out out_file -noout" +// Only modulus is printed to output file +TEST_F(RSAComparisonTest, RSAToolCompareModulusOutNooutOpenSSL) { + std::string tool_command = std::string(tool_executable_path) + " rsa -in " + in_path + " -modulus -out " + out_path_tool + " -noout"; + std::string openssl_command = std::string(openssl_executable_path) + " rsa -in " + in_path + " -modulus -out " + out_path_openssl + " -noout"; + + RunCommandsAndCompareOutput(tool_command, openssl_command, out_path_tool, out_path_openssl, tool_output_str, openssl_output_str); + + ScopedFILE tool_out_file(fopen(out_path_tool, "rb")); + ASSERT_TRUE(tool_out_file); + ScopedFILE openssl_out_file(fopen(out_path_openssl, "rb")); + ASSERT_TRUE(openssl_out_file); + + tool_output_str = ReadFileToString(out_path_tool); + openssl_output_str = ReadFileToString(out_path_openssl); + trim(tool_output_str); + trim(openssl_output_str); + ASSERT_EQ(tool_output_str, openssl_output_str); +} diff --git a/tool-openssl/test_util.h b/tool-openssl/test_util.h new file mode 100644 index 0000000000..0792f4ca0c --- /dev/null +++ b/tool-openssl/test_util.h @@ -0,0 +1,67 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC + +#ifndef TEST_UTIL_H +#define TEST_UTIL_H + +#include +#include +#include +#include +#include +#include +#include +#include + + +// Helper function to trim whitespace from both ends of a string to test comparison output +static inline std::string &trim(std::string &s) { + s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](unsigned char ch) { + return !std::isspace(static_cast(ch)); + })); + s.erase(std::find_if(s.rbegin(), s.rend(), [](unsigned char ch) { + return !std::isspace(static_cast(ch)); + }).base(), s.end()); + return s; +} + + +// Helper function to read file content into a string +inline std::string ReadFileToString(const std::string& file_path) { + std::ifstream file_stream(file_path, std::ios::binary); + if (!file_stream) { + return ""; + } + std::ostringstream buffer; + buffer << file_stream.rdbuf(); + return buffer.str(); +} + +inline void RunCommandsAndCompareOutput(const std::string &tool_command, const std::string &openssl_command, + const std::string &out_path_tool, const std::string &out_path_openssl, + std::string &tool_output_str, std::string &openssl_output_str) { + int tool_result = system(tool_command.c_str()); + ASSERT_EQ(tool_result, 0) << "AWS-LC tool command failed: " << tool_command; + + int openssl_result = system(openssl_command.c_str()); + ASSERT_EQ(openssl_result, 0) << "OpenSSL command failed: " << openssl_command; + + std::ifstream tool_output(out_path_tool); + tool_output_str = std::string((std::istreambuf_iterator(tool_output)), std::istreambuf_iterator()); + std::ifstream openssl_output(out_path_openssl); + openssl_output_str = std::string((std::istreambuf_iterator(openssl_output)), std::istreambuf_iterator()); + + std::cout << "AWS-LC tool output:" << std::endl << tool_output_str << std::endl; + std::cout << "OpenSSL output:" << std::endl << openssl_output_str << std::endl; +} + +inline void RemoveFile(const char* path) { + struct stat buffer; + if (path != nullptr && stat(path, &buffer) == 0) { + if (remove(path) != 0) { + fprintf(stderr, "Error deleting %s: %s\n", path, strerror(errno)); + } + } +} + +#endif //TEST_UTIL_H diff --git a/tool-openssl/tool.cc b/tool-openssl/tool.cc new file mode 100644 index 0000000000..983f43fe55 --- /dev/null +++ b/tool-openssl/tool.cc @@ -0,0 +1,115 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC + +#include +#include +#include + +#if defined(OPENSSL_WINDOWS) +#include +#include +#else +#include +#include +#endif + +#include "./internal.h" + +typedef bool (*tool_func_t)(const std::vector &args); + +struct Tool { + const char *name; + tool_func_t func; +}; + +static const std::array kTools = {{ +{ "x509", X509Tool }, +{"rsa", rsaTool}, +{"md5", md5Tool}, +}}; + +static void usage(const std::string &name) { + std::cout << "Usage: " << name << " COMMAND\n\n"; + std::cout << "Available commands:\n"; + + for (const auto& tool : kTools) { + if (tool.func == nullptr) { + break; + } + std::cout << " " << tool.name << "\n"; + } +} + +static void initialize() { +#if defined(OPENSSL_WINDOWS) + // Read and write in binary mode. This makes bssl on Windows consistent with + // bssl on other platforms, and also makes it consistent with MSYS's commands + // like diff(1) and md5sum(1). This is especially important for the digest + // commands. + if (_setmode(_fileno(stdin), _O_BINARY) == -1) { + perror("_setmode(_fileno(stdin), O_BINARY)"); + exit(1); + } + if (_setmode(_fileno(stdout), _O_BINARY) == -1) { + perror("_setmode(_fileno(stdout), O_BINARY)"); + exit(1); + } + if (_setmode(_fileno(stderr), _O_BINARY) == -1) { + perror("_setmode(_fileno(stderr), O_BINARY)"); + exit(1); + } +#else + // Ignore SIGPIPE to prevent the process from terminating if it tries to + // write to a pipe that has been closed by the reading end. SIGPIPE can be + // received when writing to sockets or pipes that are no longer connected. + signal(SIGPIPE, SIG_IGN); +#endif +} + +tool_func_t FindTool(const std::string &name) { + for (const auto& tool : kTools) { + if (tool.name == name) { + return tool.func; + } + } + return nullptr; +} + +tool_func_t FindTool(int argc, char **argv, int &starting_arg) { +#if !defined(OPENSSL_WINDOWS) + tool_func_t tool = FindTool(basename(argv[0])); + if (tool != nullptr) { + return tool; + } +#endif + starting_arg++; + if (argc > 1) { + return FindTool(argv[1]); + } + return nullptr; +} + +int main(int argc, char **argv) { + initialize(); + CRYPTO_library_init(); + + int starting_arg = 1; + tool_func_t tool = FindTool(argc, argv, starting_arg); + + if (tool == nullptr) { + usage(argv[0]); + return 1; + } + + args_list_t args; + for (int i = starting_arg; i < argc; i++) { + args.emplace_back(argv[i]); + } + + if (!tool(args)) { + ERR_print_errors_fp(stderr); + return 1; + } + + return 0; +} diff --git a/tool-openssl/x509.cc b/tool-openssl/x509.cc new file mode 100644 index 0000000000..383bc7a5ce --- /dev/null +++ b/tool-openssl/x509.cc @@ -0,0 +1,290 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC + +#include +#include +#include +#include "internal.h" +#include + +static const argument_t kArguments[] = { + { "-help", kBooleanArgument, "Display option summary" }, + { "-in", kOptionalArgument, "Certificate input, or CSR input file with -req" }, + { "-req", kBooleanArgument, "Input is a CSR file (rather than a certificate)" }, + { "-signkey", kOptionalArgument, "Causes input file to be self signed using supplied private key" }, + { "-out", kOptionalArgument, "Output file to write to" }, + { "-noout", kBooleanArgument, "Prevents output of the encoded version of the certificate" }, + { "-dates", kBooleanArgument, "Print the start and expiry dates of a certificate" }, + { "-modulus", kBooleanArgument, "Prints out value of the modulus of the public key contained in the certificate" }, + { "-checkend", kOptionalArgument, "Check whether cert expires in the next arg seconds" }, + { "-days", kOptionalArgument, "Number of days until newly generated certificate expires - default 30" }, + { "", kOptionalArgument, "" } +}; + +bool WriteSignedCertificate(X509 *x509, const std::string &out_path) { + ScopedFILE out_file(fopen(out_path.c_str(), "wb")); + if (!out_file) { + fprintf(stderr, "Error: unable to open output file '%s'\n", out_path.c_str()); + return false; + } + if (!PEM_write_X509(out_file.get(), x509)) { + fprintf(stderr, "Error: error writing certificate to '%s'\n", out_path.c_str()); + ERR_print_errors_fp(stderr); + return false; + } + return true; +} + +bool LoadPrivateKeyAndSignCertificate(X509 *x509, const std::string &signkey_path) { + ScopedFILE signkey_file(fopen(signkey_path.c_str(), "rb")); + if (!signkey_file) { + fprintf(stderr, "Error: unable to load private key from '%s'\n", signkey_path.c_str()); + return false; + } + bssl::UniquePtr pkey(PEM_read_PrivateKey(signkey_file.get(), nullptr, nullptr, nullptr)); + if (!pkey) { + fprintf(stderr, "Error: error reading private key from '%s'\n", signkey_path.c_str()); + ERR_print_errors_fp(stderr); + return false; + } + // TODO: make customizable with -digest option + if (!X509_sign(x509, pkey.get(), EVP_sha256())) { + fprintf(stderr, "Error: error signing certificate with key from '%s'\n", signkey_path.c_str()); + ERR_print_errors_fp(stderr); + return false; + } + return true; +} + +bool IsNumeric(const std::string& str) { + return !str.empty() && std::all_of(str.begin(), str.end(), ::isdigit); +} + +// Map arguments using tool/args.cc +bool X509Tool(const args_list_t &args) { + args_map_t parsed_args; + if (!ParseKeyValueArguments(&parsed_args, args, kArguments)) { + PrintUsage(kArguments); + return false; + } + + std::string in_path, out_path, signkey_path, checkend_str, days_str; + bool noout = false, modulus = false, dates = false, req = false, help = false; + std::unique_ptr checkend, days; + + GetBoolArgument(&help, "-help", parsed_args); + GetString(&in_path, "-in", "", parsed_args); + GetBoolArgument(&req, "-req", parsed_args); + GetString(&signkey_path, "-signkey", "", parsed_args); + GetString(&out_path, "-out", "", parsed_args); + GetBoolArgument(&noout, "-noout", parsed_args); + GetBoolArgument(&dates, "-dates", parsed_args); + GetBoolArgument(&modulus, "-modulus", parsed_args); + + // Display x509 tool option summary + if (help) { + PrintUsage(kArguments); + return false; + } + + // Check for required option -in, and -req must include -signkey + if (in_path.empty()) { + fprintf(stderr, "Error: missing required argument '-in'\n"); + return false; + } + if (req && signkey_path.empty()) { + fprintf(stderr, "Error: '-req' option must be used with '-signkey' option\n"); + return false; + } + + // Check for mutually exclusive options + if (req && (dates || parsed_args.count("-checkend"))){ + fprintf(stderr, "Error: '-req' option cannot be used with '-dates' and '-checkend' options\n"); + return false; + } + if (!signkey_path.empty() && (dates || parsed_args.count("-checkend"))){ + fprintf(stderr, "Error: '-signkey' option cannot be used with '-dates' and '-checkend' options\n"); + return false; + } + if (parsed_args.count("-days") && (dates || parsed_args.count("-checkend"))){ + fprintf(stderr, "Error: '-days' option cannot be used with '-dates' and '-checkend' options\n"); + return false; + } + + // Check that -checkend argument is valid, int >=0 + if (parsed_args.count("-checkend")) { + checkend_str = parsed_args["-checkend"]; + if (!IsNumeric(checkend_str)) { + fprintf(stderr, "Error: '-checkend' option must include a non-negative integer\n"); + return false; + } + checkend.reset(new unsigned(std::stoul(checkend_str))); + } + + // Check that -days argument is valid, int > 0 + if (parsed_args.count("-days")) { + days_str = parsed_args["-days"]; + if (!IsNumeric(days_str) || std::stoul(days_str) == 0) { + fprintf(stderr, "Error: '-days' option must include a positive integer\n"); + return false; + } + days.reset(new unsigned(std::stoul(days_str))); + } + + ScopedFILE in_file(fopen(in_path.c_str(), "rb")); + if (!in_file) { + fprintf(stderr, "Error: unable to load certificate from '%s'\n", in_path.c_str()); + return false; + } + + if (req) { + bssl::UniquePtr csr(PEM_read_X509_REQ(in_file.get(), nullptr, nullptr, nullptr)); + if (!csr) { + fprintf(stderr, "Error: error parsing CSR from '%s'\n", in_path.c_str()); + ERR_print_errors_fp(stderr); + return false; + } + + // Create and sign certificate based on CSR + bssl::UniquePtr x509(X509_new()); + if (!x509) { + fprintf(stderr, "Error: unable to create new X509 certificate\n"); + return false; + } + + // Set the subject from CSR + if (!X509_set_subject_name(x509.get(), X509_REQ_get_subject_name(csr.get()))) { + fprintf(stderr, "Error: unable to set subject name from CSR\n"); + return false; + } + + // Set the public key from CSR + bssl::UniquePtr csr_pkey(X509_REQ_get_pubkey(csr.get())); + if (!csr_pkey || !X509_set_pubkey(x509.get(), csr_pkey.get())) { + fprintf(stderr, "Error: unable to set public key from CSR\n"); + return false; + } + + // Set issuer name + if (!X509_set_issuer_name(x509.get(), X509_REQ_get_subject_name(csr.get()))) { + fprintf(stderr, "Error: unable to set issuer name\n"); + return false; + } + + // Set validity period, default 30 days if not specified + unsigned valid_days = days ? *days : 30; + if (!X509_gmtime_adj(X509_getm_notBefore(x509.get()), 0) || + !X509_gmtime_adj(X509_getm_notAfter(x509.get()), 60 * 60 * 24 * valid_days)) { + fprintf(stderr, "Error: unable to set validity period\n"); + return false; + } + + // Sign the certificate with the provided key + if (!signkey_path.empty()) { + if (!LoadPrivateKeyAndSignCertificate(x509.get(), signkey_path)) { + return false; + } + } + + // Write the signed certificate to output file + if (!out_path.empty()) { + if (!WriteSignedCertificate(x509.get(), out_path)) { + return false; + } + } + } else { + // Parse x509 certificate from input PEM file + bssl::UniquePtr x509(PEM_read_X509(in_file.get(), nullptr, nullptr, nullptr)); + if (!x509) { + fprintf(stderr, "Error: error parsing certificate from '%s'\n", in_path.c_str()); + ERR_print_errors_fp(stderr); + return false; + } + + if (dates) { + bssl::UniquePtr bio(BIO_new(BIO_s_mem())); + + if (ASN1_TIME_print(bio.get(), X509_get_notBefore(x509.get()))) { + char not_before[30] = {}; + BIO_read(bio.get(), not_before, sizeof(not_before) - 1); + fprintf(stdout, "notBefore=%s\n", not_before); + } + + if (ASN1_TIME_print(bio.get(), X509_get_notAfter(x509.get()))) { + char not_after[30] = {}; + BIO_read(bio.get(), not_after, sizeof(not_after) - 1); + fprintf(stdout, "notAfter=%s\n", not_after); + } + } + + if (modulus) { + bssl::UniquePtr pkey(X509_get_pubkey(x509.get())); + if (!pkey) { + fprintf(stderr, "Error: unable to load public key from certificate\n"); + return false; + } + + if (EVP_PKEY_base_id(pkey.get()) == EVP_PKEY_RSA) { + const RSA *rsa = EVP_PKEY_get0_RSA(pkey.get()); + if (!rsa) { + fprintf(stderr, "Error: unable to load RSA key\n"); + return false; + } + const BIGNUM *n = RSA_get0_n(rsa); + if (!n) { + fprintf(stderr, "Error: unable to load modulus\n"); + return false; + } + char *hex_modulus = BN_bn2hex(n); + if (!hex_modulus) { + fprintf(stderr, "Error: unable to convert modulus to hex\n"); + return false; + } + for (char *p = hex_modulus; *p; ++p) { + *p = toupper(*p); + } + printf("Modulus=%s\n", hex_modulus); + OPENSSL_free(hex_modulus); + } else { + fprintf(stderr, "Error: public key is not an RSA key\n"); + return false; + } + } + + if (checkend) { + bssl::UniquePtr current_time(ASN1_TIME_set(nullptr, std::time(nullptr))); + ASN1_TIME *end_time = X509_getm_notAfter(x509.get()); + int days_left, seconds_left; + if (!ASN1_TIME_diff(&days_left, &seconds_left, current_time.get(), end_time)) { + fprintf(stderr, "Error: failed to calculate time difference\n"); + return false; + } + + if ((days_left * 86400 + seconds_left) < static_cast(*checkend)) { + printf("Certificate will expire\n"); + } else { + printf("Certificate will not expire\n"); + } + } + + if (!signkey_path.empty()) { + if (!LoadPrivateKeyAndSignCertificate(x509.get(), signkey_path)) { + return false; + } + } + + if (!out_path.empty()) { + if (!WriteSignedCertificate(x509.get(), out_path)) { + return false; + } + } + + if (!noout && !in_path.empty() && !checkend && parsed_args.count("-out")==0) { + bssl::UniquePtr bio_out(BIO_new_fp(stdout, BIO_NOCLOSE)); + if (!PEM_write_bio_X509(bio_out.get(), x509.get())) { + return false; + } + } + } + return true; +} diff --git a/tool-openssl/x509_test.cc b/tool-openssl/x509_test.cc new file mode 100644 index 0000000000..9c1ae0ce95 --- /dev/null +++ b/tool-openssl/x509_test.cc @@ -0,0 +1,341 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 OR ISC + +#include "openssl/x509.h" +#include +#include +#include "internal.h" +#include "test_util.h" +#include + + +#ifdef _WIN32 +#include +#ifndef PATH_MAX +#define PATH_MAX MAX_PATH +#endif +#else +#include +#ifndef PATH_MAX +#define PATH_MAX 4096 +#endif +#endif + +size_t createTempFILEpath(char buffer[PATH_MAX]); + +X509* CreateAndSignX509Certificate() { + bssl::UniquePtr x509(X509_new()); + if (!x509) return nullptr; + + // Set validity period for 30 days + if (!X509_gmtime_adj(X509_getm_notBefore(x509.get()), 0) || + !X509_gmtime_adj(X509_getm_notAfter(x509.get()), 60 * 60 * 24 * 30L)) { + return nullptr; + } + + bssl::UniquePtr pkey(EVP_PKEY_new()); + if (!pkey) { + return nullptr; + } + bssl::UniquePtr rsa(RSA_new()); + bssl::UniquePtr bn(BN_new()); + if (!bn || !BN_set_word(bn.get(), RSA_F4) || + !RSA_generate_key_ex(rsa.get(), 2048, bn.get(), nullptr) || + !EVP_PKEY_assign_RSA(pkey.get(), rsa.release())) { + return nullptr; + } + if (!X509_set_pubkey(x509.get(), pkey.get())) { + return nullptr; + } + + if (X509_sign(x509.get(), pkey.get(), EVP_sha256()) <= 0) { + return nullptr; + } + + return x509.release(); +} + +class X509Test : public ::testing::Test { +protected: + void SetUp() override { + ASSERT_GT(createTempFILEpath(in_path), 0u); + ASSERT_GT(createTempFILEpath(csr_path), 0u); + ASSERT_GT(createTempFILEpath(out_path), 0u); + ASSERT_GT(createTempFILEpath(signkey_path), 0u); + + bssl::UniquePtr pkey(EVP_PKEY_new()); + ASSERT_TRUE(pkey); + bssl::UniquePtr rsa(RSA_new()); + ASSERT_TRUE(rsa); + bssl::UniquePtr bn(BN_new()); + ASSERT_TRUE(bn && rsa && BN_set_word(bn.get(), RSA_F4) && RSA_generate_key_ex(rsa.get(), 2048, bn.get(), nullptr)); + ASSERT_TRUE(EVP_PKEY_assign_RSA(pkey.get(), rsa.release())); + + ScopedFILE signkey_file(fopen(signkey_path, "wb")); + ASSERT_TRUE(signkey_file); + ASSERT_TRUE(PEM_write_PrivateKey(signkey_file.get(), pkey.get(), nullptr, nullptr, 0, nullptr, nullptr)); + + bssl::UniquePtr x509(CreateAndSignX509Certificate()); + ASSERT_TRUE(x509); + + ScopedFILE in_file(fopen(in_path, "wb")); + ASSERT_TRUE(in_file); + ASSERT_TRUE(PEM_write_X509(in_file.get(), x509.get())); + + bssl::UniquePtr csr(X509_REQ_new()); + ASSERT_TRUE(csr); + X509_REQ_set_pubkey(csr.get(), pkey.get()); + X509_REQ_sign(csr.get(), pkey.get(), EVP_sha256()); + + ScopedFILE csr_file(fopen(csr_path, "wb")); + ASSERT_TRUE(csr_file); + ASSERT_TRUE(PEM_write_X509_REQ(csr_file.get(), csr.get())); + + } + void TearDown() override { + RemoveFile(in_path); + RemoveFile(csr_path); + RemoveFile(out_path); + RemoveFile(signkey_path); + } + char in_path[PATH_MAX]; + char csr_path[PATH_MAX]; + char out_path[PATH_MAX]; + char signkey_path[PATH_MAX]; +}; + + +// ----------------------------- X509 Option Tests ----------------------------- + +// Test -in and -out +TEST_F(X509Test, X509ToolInOutTest) { + args_list_t args = {"-in", in_path, "-out", out_path}; + bool result = X509Tool(args); + ASSERT_TRUE(result); + { + ScopedFILE out_file(fopen(out_path, "rb")); + ASSERT_TRUE(out_file); + bssl::UniquePtr parsed_x509(PEM_read_X509(out_file.get(), nullptr, nullptr, nullptr)); + ASSERT_TRUE(parsed_x509); + } +} + +// Test -modulus +TEST_F(X509Test, X509ToolModulusTest) { + args_list_t args = {"-in", in_path, "-modulus"}; + bool result = X509Tool(args); + ASSERT_TRUE(result); +} + +// Test signkey +TEST_F(X509Test, X509ToolSignkeyTest) { + args_list_t args = {"-in", in_path, "-signkey", signkey_path}; + bool result = X509Tool(args); + ASSERT_TRUE(result); +} + +// Test -days +TEST_F(X509Test, X509ToolDaysTest) { + args_list_t args = {"-in", in_path, "-out", out_path, "-signkey", signkey_path, "-days", "365"}; + bool result = X509Tool(args); + ASSERT_TRUE(result); +} + +// Test -dates +TEST_F(X509Test, X509ToolDatesTest) { + args_list_t args = {"-in", in_path, "-dates"}; + bool result = X509Tool(args); + ASSERT_TRUE(result); +} + +// Test -checkend +TEST_F(X509Test, X509ToolCheckendTest) { + args_list_t args = {"-in", in_path, "-checkend", "3600"}; + bool result = X509Tool(args); + ASSERT_TRUE(result); +} + +// Test -req +TEST_F(X509Test, X509ToolReqTest) { + args_list_t args = {"-in", csr_path, "-req", "-signkey", signkey_path, "-out", out_path}; + bool result = X509Tool(args); + ASSERT_TRUE(result); +} + +// -------------------- X590 Option Usage Error Tests -------------------------- + +class X509OptionUsageErrorsTest : public X509Test { +protected: + void TestOptionUsageErrors(const std::vector& args) { + args_list_t c_args; + for (const auto& arg : args) { + c_args.push_back(arg.c_str()); + } + bool result = X509Tool(c_args); + ASSERT_FALSE(result); + } +}; + +// Test mutually exclusive options +TEST_F(X509OptionUsageErrorsTest, MutuallyExclusiveOptionsTests) { + std::vector> testparams = { + {"-in", in_path, "-req", "-signkey", signkey_path, "-dates"}, + {"-in", in_path, "-req", "-signkey", signkey_path, "-checkend", "3600"}, + {"-in", in_path, "-signkey", signkey_path, "-dates"}, + {"-in", in_path, "-signkey", signkey_path, "-checkend", "3600"}, + {"-in", in_path, "-days", "365", "-dates"}, + {"-in", in_path, "-days", "365", "-checkend", "3600"}, + }; + for (const auto& args : testparams) { + TestOptionUsageErrors(args); + } +} + +// Test missing -in required option and test -req without -signkey +TEST_F(X509OptionUsageErrorsTest, RequiredOptionTests) { + std::vector> testparams = { + {"-out", "output.pem"}, + {"-in", in_path, "-req"}, + }; + for (const auto& args : testparams) { + TestOptionUsageErrors(args); + } +} + +// Test argument errors for -days: !<0 || non-integer, -checkend: !<=0 || non-integer +TEST_F(X509OptionUsageErrorsTest, DaysAndCheckendArgTests) { + std::vector> testparams = { + {"-in", in_path, "-checkend", "abc"}, + {"-in", in_path, "-checkend", "-1"}, + {"-in", in_path, "-signkey", signkey_path, "-days", "abc"}, + {"-in", in_path, "-signkey", signkey_path, "-days", "0"}, + {"-in", in_path, "-signkey", signkey_path, "-days", "-1.7"} + }; + for (const auto& args : testparams) { + TestOptionUsageErrors(args); + } +} + + +// -------------------- X509 OpenSSL Comparison Tests -------------------------- + +// Comparison tests cannot run without set up of environment variables: +// AWSLC_TOOL_PATH and OPENSSL_TOOL_PATH. + +class X509ComparisonTest : public ::testing::Test { +protected: + void SetUp() override { + + // Skip gtests if env variables not set + tool_executable_path = getenv("AWSLC_TOOL_PATH"); + openssl_executable_path = getenv("OPENSSL_TOOL_PATH"); + if (tool_executable_path == nullptr || openssl_executable_path == nullptr) { + GTEST_SKIP() << "Skipping test: AWSLC_TOOL_PATH and/or OPENSSL_TOOL_PATH environment variables are not set"; + } + + ASSERT_GT(createTempFILEpath(in_path), 0u); + ASSERT_GT(createTempFILEpath(csr_path), 0u); + ASSERT_GT(createTempFILEpath(out_path_tool), 0u); + ASSERT_GT(createTempFILEpath(out_path_openssl), 0u); + ASSERT_GT(createTempFILEpath(signkey_path), 0u); + + x509.reset(CreateAndSignX509Certificate()); + ASSERT_TRUE(x509); + + ScopedFILE in_file(fopen(in_path, "wb")); + ASSERT_TRUE(in_file); + ASSERT_TRUE(PEM_write_X509(in_file.get(), x509.get())); + + bssl::UniquePtr pkey(EVP_PKEY_new()); + ASSERT_TRUE(pkey); + bssl::UniquePtr rsa(RSA_new()); + bssl::UniquePtr bn(BN_new()); + ASSERT_TRUE(bn && BN_set_word(bn.get(), RSA_F4) && RSA_generate_key_ex(rsa.get(), 2048, bn.get(), nullptr)); + ASSERT_TRUE(EVP_PKEY_assign_RSA(pkey.get(), rsa.release())); + + ScopedFILE signkey_file(fopen(signkey_path, "wb")); + ASSERT_TRUE(signkey_file); + ASSERT_TRUE(PEM_write_PrivateKey(signkey_file.get(), pkey.get(), nullptr, nullptr, 0, nullptr, nullptr)); + + csr.reset(X509_REQ_new()); + ASSERT_TRUE(csr); + X509_REQ_set_pubkey(csr.get(), pkey.get()); + X509_REQ_sign(csr.get(), pkey.get(), EVP_sha256()); + + ScopedFILE csr_file(fopen(csr_path, "wb")); + ASSERT_TRUE(csr_file); + ASSERT_TRUE(PEM_write_X509_REQ(csr_file.get(), csr.get())); + } + + void TearDown() override { + if (tool_executable_path != nullptr && openssl_executable_path != nullptr) { + RemoveFile(in_path); + RemoveFile(csr_path); + RemoveFile(out_path_tool); + RemoveFile(out_path_openssl); + RemoveFile(signkey_path); + } + } + + char in_path[PATH_MAX]; + char csr_path[PATH_MAX]; + char out_path_tool[PATH_MAX]; + char out_path_openssl[PATH_MAX]; + char signkey_path[PATH_MAX]; + bssl::UniquePtr x509; + bssl::UniquePtr csr; + const char* tool_executable_path; + const char* openssl_executable_path; + std::string tool_output_str; + std::string openssl_output_str; +}; + +// Certificate boundaries +const std::string CERT_BEGIN = "-----BEGIN CERTIFICATE-----"; +const std::string CERT_END = "-----END CERTIFICATE-----"; + +// Test against OpenSSL output "openssl x509 -in file -modulus" +TEST_F(X509ComparisonTest, X509ToolCompareModulusOpenSSL) { + std::string tool_command = std::string(tool_executable_path) + " x509 -in " + in_path + " -modulus > " + out_path_tool; + std::string openssl_command = std::string(openssl_executable_path) + " x509 -in " + in_path + " -modulus > " + out_path_openssl; + + RunCommandsAndCompareOutput(tool_command, openssl_command, out_path_tool, out_path_openssl, tool_output_str, openssl_output_str); + + ASSERT_EQ(tool_output_str, openssl_output_str); +} + +// Test against OpenSSL output "openssl x509 -in in_file -checkend 0" +TEST_F(X509ComparisonTest, X509ToolCompareCheckendOpenSSL) { + std::string tool_command = std::string(tool_executable_path) + " x509 -in " + in_path + " -checkend 0 > " + out_path_tool; + std::string openssl_command = std::string(openssl_executable_path) + " x509 -in " + in_path + " -checkend 0 > " + out_path_openssl; + + RunCommandsAndCompareOutput(tool_command, openssl_command, out_path_tool, out_path_openssl, tool_output_str, openssl_output_str); + + ASSERT_EQ(tool_output_str, openssl_output_str); +} + +// Test against OpenSSL output "openssl x509 -req -in csr_file -signkey private_key_file -days 80 -out out_file" +TEST_F(X509ComparisonTest, X509ToolCompareReqSignkeyDaysOpenSSL) { + std::string tool_command = std::string(tool_executable_path) + " x509 -req -in " + csr_path + " -signkey " + signkey_path + " -days 80 -out " + out_path_tool; + std::string openssl_command = std::string(openssl_executable_path) + " x509 -req -in " + csr_path + " -signkey " + signkey_path + " -days 80 -out " + out_path_openssl; + + RunCommandsAndCompareOutput(tool_command, openssl_command, out_path_tool, out_path_openssl, tool_output_str, openssl_output_str); + // Certificates will not be identical, therefore testing that cert header and footer are present + trim(tool_output_str); + ASSERT_EQ(tool_output_str.compare(0, CERT_BEGIN.size(), CERT_BEGIN), 0); + ASSERT_EQ(tool_output_str.compare(tool_output_str.size() - CERT_END.size(), CERT_END.size(), CERT_END), 0); + + trim(openssl_output_str); + ASSERT_EQ(openssl_output_str.compare(0, CERT_BEGIN.size(), CERT_BEGIN), 0); + ASSERT_EQ(openssl_output_str.compare(openssl_output_str.size() - CERT_END.size(), CERT_END.size(), CERT_END), 0); +} + +// Test against OpenSSL output "openssl x509 -in file -dates -noout" +TEST_F(X509ComparisonTest, X509ToolCompareDatesNooutOpenSSL) { + std::string tool_command = std::string(tool_executable_path) + " x509 -in " + in_path + " -dates -noout > " + out_path_tool; + std::string openssl_command = std::string(openssl_executable_path) + " x509 -in " + in_path + " -dates -noout > " + out_path_openssl; + + RunCommandsAndCompareOutput(tool_command, openssl_command, out_path_tool, out_path_openssl, tool_output_str, openssl_output_str); + + ASSERT_EQ(tool_output_str, openssl_output_str); +} diff --git a/util/all_tests.go b/util/all_tests.go index a931c755d5..23bb8df670 100644 --- a/util/all_tests.go +++ b/util/all_tests.go @@ -100,14 +100,14 @@ var sdeCPUs = []string{ func targetArchMatchesRuntime(target string) bool { if (target == "") || - (target == "x86" && runtime.GOARCH == "amd64") || - (target == "arm" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64")) { + (target == "x86" && runtime.GOARCH == "amd64") || + (target == "arm" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64")) { return true } return false } -func valgrindOf(dbAttach bool, supps []string, path string, args ...string) *exec.Cmd { +func valgrindOf(ctx context.Context, dbAttach bool, supps []string, path string, args ...string) (context.Context, *exec.Cmd) { valgrindArgs := []string{"--error-exitcode=99", "--track-origins=yes", "--leak-check=full", "--trace-children=yes", "--quiet"} for _, supp := range supps { valgrindArgs = append(valgrindArgs, "--suppressions="+*valgrindSuppDir+"/"+supp) @@ -118,26 +118,26 @@ func valgrindOf(dbAttach bool, supps []string, path string, args ...string) *exe valgrindArgs = append(valgrindArgs, path) valgrindArgs = append(valgrindArgs, args...) - return exec.Command("valgrind", valgrindArgs...) + return ctx, exec.CommandContext(ctx, "valgrind", valgrindArgs...) } -func callgrindOf(path string, args ...string) *exec.Cmd { +func callgrindOf(ctx context.Context, path string, args ...string) (context.Context, *exec.Cmd) { valgrindArgs := []string{"-q", "--tool=callgrind", "--dump-instr=yes", "--collect-jumps=yes", "--callgrind-out-file=" + *buildDir + "/callgrind/callgrind.out.%p"} valgrindArgs = append(valgrindArgs, path) valgrindArgs = append(valgrindArgs, args...) - return exec.Command("valgrind", valgrindArgs...) + return ctx, exec.CommandContext(ctx, "valgrind", valgrindArgs...) } -func gdbOf(path string, args ...string) *exec.Cmd { +func gdbOf(ctx context.Context, path string, args ...string) (context.Context, *exec.Cmd) { xtermArgs := []string{"-e", "gdb", "--args"} xtermArgs = append(xtermArgs, path) xtermArgs = append(xtermArgs, args...) - return exec.Command("xterm", xtermArgs...) + return ctx, exec.CommandContext(ctx, "xterm", xtermArgs...) } -func sdeOf(cpu, path string, args ...string) (*exec.Cmd, context.CancelFunc) { +func sdeOf(ctx context.Context, cpu, path string, args ...string) (context.Context, context.CancelFunc, *exec.Cmd) { sdeArgs := []string{"-" + cpu} // The kernel's vdso code for gettimeofday sometimes uses the RDTSCP // instruction. Although SDE has a -chip_check_vsyscall flag that @@ -152,9 +152,9 @@ func sdeOf(cpu, path string, args ...string) (*exec.Cmd, context.CancelFunc) { // TODO(CryptoAlg-2154):SDE+ASAN tests will hang without exiting if tests pass for an unknown reason. // Current workaround is to manually cancel the run after 20 minutes and check the output. - ctx, cancel := context.WithTimeout(context.Background(), 1200*time.Second) + ctx, cancel := context.WithTimeout(ctx, 1200*time.Second) - return exec.CommandContext(ctx, *sdePath, sdeArgs...), cancel + return ctx, cancel, exec.CommandContext(ctx, *sdePath, sdeArgs...) } var ( @@ -173,23 +173,20 @@ func runTestOnce(test test, mallocNumToFail int64) (passed bool, err error) { } var cmd *exec.Cmd var cancel context.CancelFunc - cancelled := false + + ctx := context.Background() + if *useValgrind { - cmd = valgrindOf(false, test.ValgrindSupp, prog, args...) + ctx, cmd = valgrindOf(ctx, false, test.ValgrindSupp, prog, args...) } else if *useCallgrind { - cmd = callgrindOf(prog, args...) + ctx, cmd = callgrindOf(ctx, prog, args...) } else if *useGDB { - cmd = gdbOf(prog, args...) + ctx, cmd = gdbOf(ctx, prog, args...) } else if *useSDE { - cmd, cancel = sdeOf(test.cpu, prog, args...) + ctx, cancel, cmd = sdeOf(ctx, test.cpu, prog, args...) defer cancel() - - cmd.Cancel = func() error { - cancelled = true - return cmd.Process.Kill() - } } else { - cmd = exec.Command(prog, args...) + cmd = exec.CommandContext(ctx, prog, args...) } if test.Env != nil || test.numShards != 0 { cmd.Env = make([]string, len(os.Environ())) @@ -219,7 +216,8 @@ func runTestOnce(test test, mallocNumToFail int64) (passed bool, err error) { } if err := cmd.Wait(); err != nil { - if exitError, ok := err.(*exec.ExitError); ok { + var exitError *exec.ExitError + if errors.As(err, &exitError) { switch exitError.Sys().(syscall.WaitStatus).ExitStatus() { case 88: return false, errMoreMallocs @@ -227,15 +225,21 @@ func runTestOnce(test test, mallocNumToFail int64) (passed bool, err error) { fmt.Print(string(outBuf.Bytes())) return false, errTestSkipped } - if cancelled { - return testPass(outBuf), errTestHanging + select { + case <-ctx.Done(): + if errors.Is(ctx.Err(), context.DeadlineExceeded) { + return testPass(outBuf), errTestHanging + } else if ctx.Err() != nil { + return false, ctx.Err() + } + default: + // Nothing } } fmt.Print(string(outBuf.Bytes())) return false, err } - return testPass(outBuf), nil } diff --git a/util/all_tests.json b/util/all_tests.json index 464414ad8d..246b5af026 100644 --- a/util/all_tests.json +++ b/util/all_tests.json @@ -125,5 +125,10 @@ "cmd": [ "crypto/rwlock_static_init" ] + }, + { + "cmd": [ + "tool-openssl/tool_openssl_test" + ] } ] diff --git a/util/build_compilation_database.sh b/util/build_compilation_database.sh index 2cf9b48c08..fbab322573 100755 --- a/util/build_compilation_database.sh +++ b/util/build_compilation_database.sh @@ -12,8 +12,8 @@ MY_CMAKE_FLAGS=("-GNinja" "-DCMAKE_BUILD_TYPE=Debug" "-DCMAKE_EXPORT_COMPILE_COM mkdir -p "${AWS_LC_BUILD}" -cmake "${BASE_DIR}" -B "${AWS_LC_BUILD}" ${MY_CMAKE_FLAGS[@]} "${@}" +cmake "${BASE_DIR}" -B "${AWS_LC_BUILD}" "${MY_CMAKE_FLAGS[@]}" "${@}" -cmake --build "${AWS_LC_BUILD}" --target all +cmake --build "${AWS_LC_BUILD}" -j 4 --target all_tests cp "${AWS_LC_BUILD}"/compile_commands.json "${BASE_DIR}"/ diff --git a/util/convert_wycheproof/convert_wycheproof.go b/util/convert_wycheproof/convert_wycheproof.go index 2319426651..3f5cc896df 100644 --- a/util/convert_wycheproof/convert_wycheproof.go +++ b/util/convert_wycheproof/convert_wycheproof.go @@ -33,10 +33,10 @@ type wycheproofTest struct { Header []string `json:"header"` // encoding/json does not support collecting unused keys, so we leave // everything past this point as generic. - TestGroups []map[string]any `json:"testGroups"` + TestGroups []map[string]interface{} `json:"testGroups"` } -func sortedKeys(m map[string]any) []string { +func sortedKeys(m map[string]interface{}) []string { keys := make([]string, 0, len(m)) for k, _ := range m { keys = append(keys, k) @@ -45,8 +45,8 @@ func sortedKeys(m map[string]any) []string { return keys } -func printAttribute(w io.Writer, key string, valueAny any, isInstruction bool) error { - switch value := valueAny.(type) { +func printAttribute(w io.Writer, key string, valueI interface{}, isInstruction bool) error { + switch value := valueI.(type) { case float64: if float64(int(value)) != value { panic(key + "was not an integer.") @@ -73,14 +73,14 @@ func printAttribute(w io.Writer, key string, valueAny any, isInstruction bool) e return err } } - case map[string]any: + case map[string]interface{}: for _, k := range sortedKeys(value) { if err := printAttribute(w, key+"."+k, value[k], isInstruction); err != nil { return err } } default: - panic(fmt.Sprintf("Unknown type for %q: %T", key, valueAny)) + panic(fmt.Sprintf("Unknown type for %q: %T", key, valueI)) } return nil } @@ -154,9 +154,9 @@ func convertWycheproof(f io.Writer, jsonPath string) error { } } fmt.Fprintf(f, "\n") - tests := group["tests"].([]any) - for _, testAny := range tests { - test := testAny.(map[string]any) + tests := group["tests"].([]interface{}) + for _, testI := range tests { + test := testI.(map[string]interface{}) if _, err := fmt.Fprintf(f, "# tcId = %d\n", int(test["tcId"].(float64))); err != nil { return err } @@ -173,10 +173,10 @@ func convertWycheproof(f io.Writer, jsonPath string) error { return err } } - if flagsAny, ok := test["flags"]; ok { + if flagsI, ok := test["flags"]; ok { var flags []string - for _, flagAny := range flagsAny.([]any) { - flag := flagAny.(string) + for _, flagI := range flagsI.([]interface{}) { + flag := flagI.(string) flags = append(flags, flag) } if len(flags) != 0 { diff --git a/util/fipstools/acvp/acvptool/acvp.go b/util/fipstools/acvp/acvptool/acvp.go index 541f0742ab..473c998148 100644 --- a/util/fipstools/acvp/acvptool/acvp.go +++ b/util/fipstools/acvp/acvptool/acvp.go @@ -80,7 +80,7 @@ func isCommentLine(line []byte) bool { return false } -func jsonFromFile(out any, filename string) error { +func jsonFromFile(out interface{}, filename string) error { in, err := os.Open(filename) if err != nil { return err @@ -131,7 +131,7 @@ func TOTP(secret []byte) string { type Middle interface { Close() Config() ([]byte, error) - Process(algorithm string, vectorSet []byte) (any, error) + Process(algorithm string, vectorSet []byte) (interface{}, error) } func loadCachedSessionTokens(server *acvp.Server, cachePath string) error { @@ -198,7 +198,7 @@ func looksLikeVectorSetHeader(element json.RawMessage) bool { // processFile reads a file containing vector sets, at least in the format // preferred by our lab, and writes the results to stdout. -func processFile(filename string, supportedAlgos []map[string]any, middle Middle) error { +func processFile(filename string, supportedAlgos []map[string]interface{}, middle Middle) error { jsonBytes, err := os.ReadFile(filename) if err != nil { return err @@ -267,7 +267,7 @@ func processFile(filename string, supportedAlgos []map[string]any, middle Middle return fmt.Errorf("while processing vector set #%d: %s", i+1, err) } - group := map[string]any{ + group := map[string]interface{}{ "vsId": commonFields.ID, "testGroups": replyGroups, "algorithm": algo, @@ -540,13 +540,13 @@ func main() { log.Fatalf("failed to get config from middle: %s", err) } - var supportedAlgos []map[string]any + var supportedAlgos []map[string]interface{} if err := json.Unmarshal(configBytes, &supportedAlgos); err != nil { log.Fatalf("failed to parse configuration from Middle: %s", err) } if *dumpRegcap { - nonTestAlgos := make([]map[string]any, 0, len(supportedAlgos)) + nonTestAlgos := make([]map[string]interface{}, 0, len(supportedAlgos)) for _, algo := range supportedAlgos { if value, ok := algo["acvptoolTestOnly"]; ok { testOnly, ok := value.(bool) @@ -560,9 +560,9 @@ func main() { nonTestAlgos = append(nonTestAlgos, algo) } - regcap := []map[string]any{ - {"acvVersion": "1.0"}, - {"algorithms": nonTestAlgos}, + regcap := []map[string]interface{}{ + map[string]interface{}{"acvVersion": "1.0"}, + map[string]interface{}{"algorithms": nonTestAlgos}, } regcapBytes, err := json.MarshalIndent(regcap, "", " ") if err != nil { @@ -615,7 +615,7 @@ func main() { } } - var algorithms []map[string]any + var algorithms []map[string]interface{} for _, supportedAlgo := range supportedAlgos { algoInterface, ok := supportedAlgo["algorithm"] if !ok { diff --git a/util/fipstools/acvp/acvptool/acvp/acvp.go b/util/fipstools/acvp/acvptool/acvp/acvp.go index 9d20ed88e7..b5a01f0c35 100644 --- a/util/fipstools/acvp/acvptool/acvp/acvp.go +++ b/util/fipstools/acvp/acvptool/acvp/acvp.go @@ -195,7 +195,7 @@ func parseReplyToBytes(in io.Reader) ([]byte, error) { // parseReply parses the contents of an ACVP reply (after removing the header // element) into out. See the documentation of the encoding/json package for // details of the parsing. -func parseReply(out any, in io.Reader) error { +func parseReply(out interface{}, in io.Reader) error { if out == nil { // No reply expected. return nil @@ -379,7 +379,7 @@ func (server *Server) newRequestWithToken(method, endpoint string, body io.Reade return req, nil } -func (server *Server) Get(out any, endPoint string) error { +func (server *Server) Get(out interface{}, endPoint string) error { req, err := server.newRequestWithToken("GET", endPoint, nil) if err != nil { return err @@ -417,7 +417,7 @@ func (server *Server) GetBytes(endPoint string) ([]byte, error) { return parseReplyToBytes(resp.Body) } -func (server *Server) write(method string, reply any, endPoint string, contents []byte) error { +func (server *Server) write(method string, reply interface{}, endPoint string, contents []byte) error { var buf bytes.Buffer buf.WriteString(requestPrefix) buf.Write(contents) @@ -442,7 +442,7 @@ func (server *Server) write(method string, reply any, endPoint string, contents return parseReply(reply, resp.Body) } -func (server *Server) postMessage(reply any, endPoint string, request any) error { +func (server *Server) postMessage(reply interface{}, endPoint string, request interface{}) error { contents, err := json.Marshal(request) if err != nil { return err @@ -450,11 +450,11 @@ func (server *Server) postMessage(reply any, endPoint string, request any) error return server.write("POST", reply, endPoint, contents) } -func (server *Server) Post(out any, endPoint string, contents []byte) error { +func (server *Server) Post(out interface{}, endPoint string, contents []byte) error { return server.write("POST", out, endPoint, contents) } -func (server *Server) Put(out any, endPoint string, contents []byte) error { +func (server *Server) Put(out interface{}, endPoint string, contents []byte) error { return server.write("PUT", out, endPoint, contents) } @@ -481,7 +481,7 @@ var ( // GetPaged returns an array of records of some type using one or more requests to the server. See // https://pages.nist.gov/ACVP/draft-fussell-acvp-spec.html#paging_response -func (server *Server) GetPaged(out any, endPoint string, condition Query) error { +func (server *Server) GetPaged(out interface{}, endPoint string, condition Query) error { output := reflect.ValueOf(out) if output.Kind() != reflect.Ptr { panic(fmt.Sprintf("GetPaged output parameter of non-pointer type %T", out)) @@ -618,22 +618,22 @@ type OperationalEnvironment struct { Dependencies []Dependency `json:"dependencies,omitempty"` } -type Dependency map[string]any +type Dependency map[string]interface{} -type Algorithm map[string]any +type Algorithm map[string]interface{} type TestSession struct { - URL string `json:"url,omitempty"` - ACVPVersion string `json:"acvpVersion,omitempty"` - Created string `json:"createdOn,omitempty"` - Expires string `json:"expiresOn,omitempty"` - VectorSetURLs []string `json:"vectorSetUrls,omitempty"` - AccessToken string `json:"accessToken,omitempty"` - Algorithms []map[string]any `json:"algorithms,omitempty"` - EncryptAtRest bool `json:"encryptAtRest,omitempty"` - IsSample bool `json:"isSample,omitempty"` - Publishable bool `json:"publishable,omitempty"` - Passed bool `json:"passed,omitempty"` + URL string `json:"url,omitempty"` + ACVPVersion string `json:"acvpVersion,omitempty"` + Created string `json:"createdOn,omitempty"` + Expires string `json:"expiresOn,omitempty"` + VectorSetURLs []string `json:"vectorSetUrls,omitempty"` + AccessToken string `json:"accessToken,omitempty"` + Algorithms []map[string]interface{} `json:"algorithms,omitempty"` + EncryptAtRest bool `json:"encryptAtRest,omitempty"` + IsSample bool `json:"isSample,omitempty"` + Publishable bool `json:"publishable,omitempty"` + Passed bool `json:"passed,omitempty"` } type Vectors struct { diff --git a/util/fipstools/acvp/acvptool/interactive.go b/util/fipstools/acvp/acvptool/interactive.go index 1c040aea6b..384206cedc 100644 --- a/util/fipstools/acvp/acvptool/interactive.go +++ b/util/fipstools/acvp/acvptool/interactive.go @@ -142,7 +142,7 @@ func (set ServerObjectSet) Action(action string, args []string) error { return nil } - var result map[string]any + var result map[string]interface{} if err := set.env.server.Post(&result, "acvp/v1/"+set.name, newContents); err != nil { return err } @@ -308,7 +308,7 @@ type Algorithms struct { func (algos Algorithms) String() (string, error) { var result struct { - Algorithms []map[string]any `json:"algorithms"` + Algorithms []map[string]interface{} `json:"algorithms"` } if err := algos.env.server.Get(&result, "acvp/v1/algorithms"); err != nil { return "", err @@ -360,7 +360,7 @@ func (s stringLiteral) Action(action string, args []string) error { return fmt.Errorf("found %d arguments but %q takes none", len(args), action) } - var results map[string]any + var results map[string]interface{} if err := s.env.server.Get(&results, s.contents); err != nil { return err } @@ -379,7 +379,7 @@ type results struct { } func (r results) String() (string, error) { - var results map[string]any + var results map[string]interface{} if err := r.env.server.Get(&results, "acvp/v1/"+r.prefix+"/results"); err != nil { return "", err } diff --git a/util/fipstools/acvp/acvptool/subprocess/aead.go b/util/fipstools/acvp/acvptool/subprocess/aead.go index 8fd1081e6f..9b70d4f17e 100644 --- a/util/fipstools/acvp/acvptool/subprocess/aead.go +++ b/util/fipstools/acvp/acvptool/subprocess/aead.go @@ -63,7 +63,7 @@ type aeadTestResponse struct { IVHex string `json:"iv,omitempty"` } -func (a *aead) Process(vectorSet []byte, m Transactable) (any, error) { +func (a *aead) Process(vectorSet []byte, m Transactable) (interface{}, error) { var parsed aeadVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err diff --git a/util/fipstools/acvp/acvptool/subprocess/block.go b/util/fipstools/acvp/acvptool/subprocess/block.go index d6e4750336..c0db9a0f40 100644 --- a/util/fipstools/acvp/acvptool/subprocess/block.go +++ b/util/fipstools/acvp/acvptool/subprocess/block.go @@ -288,7 +288,7 @@ type blockCipherMCTResult struct { Key3Hex string `json:"key3,omitempty"` } -func (b *blockCipher) Process(vectorSet []byte, m Transactable) (any, error) { +func (b *blockCipher) Process(vectorSet []byte, m Transactable) (interface{}, error) { var parsed blockCipherVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err diff --git a/util/fipstools/acvp/acvptool/subprocess/drbg.go b/util/fipstools/acvp/acvptool/subprocess/drbg.go index 1e2e6946f1..13f249a855 100644 --- a/util/fipstools/acvp/acvptool/subprocess/drbg.go +++ b/util/fipstools/acvp/acvptool/subprocess/drbg.go @@ -73,7 +73,7 @@ type drbg struct { modes map[string]bool // the supported underlying primitives for the DRBG } -func (d *drbg) Process(vectorSet []byte, m Transactable) (any, error) { +func (d *drbg) Process(vectorSet []byte, m Transactable) (interface{}, error) { var parsed drbgTestVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err diff --git a/util/fipstools/acvp/acvptool/subprocess/ecdsa.go b/util/fipstools/acvp/acvptool/subprocess/ecdsa.go index 38fbc79d81..db240bb21f 100644 --- a/util/fipstools/acvp/acvptool/subprocess/ecdsa.go +++ b/util/fipstools/acvp/acvptool/subprocess/ecdsa.go @@ -72,7 +72,7 @@ type ecdsa struct { primitives map[string]primitive } -func (e *ecdsa) Process(vectorSet []byte, m Transactable) (any, error) { +func (e *ecdsa) Process(vectorSet []byte, m Transactable) (interface{}, error) { var parsed ecdsaTestVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err diff --git a/util/fipstools/acvp/acvptool/subprocess/hash.go b/util/fipstools/acvp/acvptool/subprocess/hash.go index dbffe71736..07d525cebc 100644 --- a/util/fipstools/acvp/acvptool/subprocess/hash.go +++ b/util/fipstools/acvp/acvptool/subprocess/hash.go @@ -77,7 +77,7 @@ type hashPrimitive struct { size int } -func (h *hashPrimitive) Process(vectorSet []byte, m Transactable) (any, error) { +func (h *hashPrimitive) Process(vectorSet []byte, m Transactable) (interface{}, error) { var parsed hashTestVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err diff --git a/util/fipstools/acvp/acvptool/subprocess/hkdf.go b/util/fipstools/acvp/acvptool/subprocess/hkdf.go index 4ba3ab2511..35b58eab62 100644 --- a/util/fipstools/acvp/acvptool/subprocess/hkdf.go +++ b/util/fipstools/acvp/acvptool/subprocess/hkdf.go @@ -124,7 +124,7 @@ type hkdfTestResponse struct { type hkdf struct{} -func (k *hkdf) Process(vectorSet []byte, m Transactable) (any, error) { +func (k *hkdf) Process(vectorSet []byte, m Transactable) (interface{}, error) { var parsed hkdfTestVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err diff --git a/util/fipstools/acvp/acvptool/subprocess/hmac.go b/util/fipstools/acvp/acvptool/subprocess/hmac.go index f27a515470..bc16a71147 100644 --- a/util/fipstools/acvp/acvptool/subprocess/hmac.go +++ b/util/fipstools/acvp/acvptool/subprocess/hmac.go @@ -76,7 +76,7 @@ func (h *hmacPrimitive) hmac(msg []byte, key []byte, outBits int, m Transactable return result[0][:outBytes] } -func (h *hmacPrimitive) Process(vectorSet []byte, m Transactable) (any, error) { +func (h *hmacPrimitive) Process(vectorSet []byte, m Transactable) (interface{}, error) { var parsed hmacTestVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err diff --git a/util/fipstools/acvp/acvptool/subprocess/kas.go b/util/fipstools/acvp/acvptool/subprocess/kas.go index c989e8d668..bbd0204f97 100644 --- a/util/fipstools/acvp/acvptool/subprocess/kas.go +++ b/util/fipstools/acvp/acvptool/subprocess/kas.go @@ -68,7 +68,7 @@ type kasTestResponse struct { type kas struct{} -func (k *kas) Process(vectorSet []byte, m Transactable) (any, error) { +func (k *kas) Process(vectorSet []byte, m Transactable) (interface{}, error) { var parsed kasVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err diff --git a/util/fipstools/acvp/acvptool/subprocess/kasdh.go b/util/fipstools/acvp/acvptool/subprocess/kasdh.go index 9fcbb2c603..b60e8d03c2 100644 --- a/util/fipstools/acvp/acvptool/subprocess/kasdh.go +++ b/util/fipstools/acvp/acvptool/subprocess/kasdh.go @@ -59,7 +59,7 @@ type kasDHTestResponse struct { type kasDH struct{} -func (k *kasDH) Process(vectorSet []byte, m Transactable) (any, error) { +func (k *kasDH) Process(vectorSet []byte, m Transactable) (interface{}, error) { var parsed kasDHVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err diff --git a/util/fipstools/acvp/acvptool/subprocess/kdf.go b/util/fipstools/acvp/acvptool/subprocess/kdf.go index 433f871f99..ed0c72bfd6 100644 --- a/util/fipstools/acvp/acvptool/subprocess/kdf.go +++ b/util/fipstools/acvp/acvptool/subprocess/kdf.go @@ -59,7 +59,7 @@ type kdfTestResponse struct { type kdfPrimitive struct{} -func (k *kdfPrimitive) Process(vectorSet []byte, m Transactable) (any, error) { +func (k *kdfPrimitive) Process(vectorSet []byte, m Transactable) (interface{}, error) { var parsed kdfTestVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err diff --git a/util/fipstools/acvp/acvptool/subprocess/keyedMac.go b/util/fipstools/acvp/acvptool/subprocess/keyedMac.go index 3481f64ff4..4cb936df7d 100644 --- a/util/fipstools/acvp/acvptool/subprocess/keyedMac.go +++ b/util/fipstools/acvp/acvptool/subprocess/keyedMac.go @@ -57,7 +57,7 @@ type keyedMACPrimitive struct { algo string } -func (k *keyedMACPrimitive) Process(vectorSet []byte, m Transactable) (any, error) { +func (k *keyedMACPrimitive) Process(vectorSet []byte, m Transactable) (interface{}, error) { var vs keyedMACTestVectorSet if err := json.Unmarshal(vectorSet, &vs); err != nil { return nil, err diff --git a/util/fipstools/acvp/acvptool/subprocess/rsa.go b/util/fipstools/acvp/acvptool/subprocess/rsa.go index 83941e10ae..8cd83fd812 100644 --- a/util/fipstools/acvp/acvptool/subprocess/rsa.go +++ b/util/fipstools/acvp/acvptool/subprocess/rsa.go @@ -117,7 +117,7 @@ type rsaSigVerTestResponse struct { Passed bool `json:"testPassed"` } -func processKeyGen(vectorSet []byte, m Transactable) (any, error) { +func processKeyGen(vectorSet []byte, m Transactable) (interface{}, error) { var parsed rsaKeyGenTestVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err @@ -159,7 +159,7 @@ func processKeyGen(vectorSet []byte, m Transactable) (any, error) { return ret, nil } -func processSigGen(vectorSet []byte, m Transactable) (any, error) { +func processSigGen(vectorSet []byte, m Transactable) (interface{}, error) { var parsed rsaSigGenTestVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err @@ -227,7 +227,7 @@ func processSigGen(vectorSet []byte, m Transactable) (any, error) { return ret, nil } -func processSigVer(vectorSet []byte, m Transactable) (any, error) { +func processSigVer(vectorSet []byte, m Transactable) (interface{}, error) { var parsed rsaSigVerTestVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err @@ -289,7 +289,7 @@ func processSigVer(vectorSet []byte, m Transactable) (any, error) { type rsa struct{} -func (*rsa) Process(vectorSet []byte, m Transactable) (any, error) { +func (*rsa) Process(vectorSet []byte, m Transactable) (interface{}, error) { var parsed rsaTestVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err diff --git a/util/fipstools/acvp/acvptool/subprocess/subprocess.go b/util/fipstools/acvp/acvptool/subprocess/subprocess.go index 26e1d2fab0..0cdea21371 100644 --- a/util/fipstools/acvp/acvptool/subprocess/subprocess.go +++ b/util/fipstools/acvp/acvptool/subprocess/subprocess.go @@ -373,7 +373,7 @@ func (m *Subprocess) Config() ([]byte, error) { } // Process runs a set of test vectors and returns the result. -func (m *Subprocess) Process(algorithm string, vectorSet []byte) (any, error) { +func (m *Subprocess) Process(algorithm string, vectorSet []byte) (interface{}, error) { prim, ok := m.primitives[algorithm] if !ok { return nil, fmt.Errorf("unknown algorithm %q", algorithm) @@ -386,7 +386,7 @@ func (m *Subprocess) Process(algorithm string, vectorSet []byte) (any, error) { } type primitive interface { - Process(vectorSet []byte, t Transactable) (any, error) + Process(vectorSet []byte, t Transactable) (interface{}, error) } func uint32le(n uint32) []byte { diff --git a/util/fipstools/acvp/acvptool/subprocess/tls13.go b/util/fipstools/acvp/acvptool/subprocess/tls13.go index 376ef76064..6cbfc04701 100644 --- a/util/fipstools/acvp/acvptool/subprocess/tls13.go +++ b/util/fipstools/acvp/acvptool/subprocess/tls13.go @@ -69,7 +69,7 @@ type tls13TestResponse struct { type tls13 struct{} -func (k *tls13) Process(vectorSet []byte, m Transactable) (any, error) { +func (k *tls13) Process(vectorSet []byte, m Transactable) (interface{}, error) { var parsed tls13TestVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err diff --git a/util/fipstools/acvp/acvptool/subprocess/xts.go b/util/fipstools/acvp/acvptool/subprocess/xts.go index 296f59c544..37b56dcb71 100644 --- a/util/fipstools/acvp/acvptool/subprocess/xts.go +++ b/util/fipstools/acvp/acvptool/subprocess/xts.go @@ -59,7 +59,7 @@ type xtsTestResponse struct { // encrypt/decrypt with AES-XTS. type xts struct{} -func (h *xts) Process(vectorSet []byte, m Transactable) (any, error) { +func (h *xts) Process(vectorSet []byte, m Transactable) (interface{}, error) { var parsed xtsTestVectorSet if err := json.Unmarshal(vectorSet, &parsed); err != nil { return nil, err diff --git a/util/fipstools/acvp/acvptool/test/trim_vectors.go b/util/fipstools/acvp/acvptool/test/trim_vectors.go index d3402109bc..703f75fd20 100644 --- a/util/fipstools/acvp/acvptool/test/trim_vectors.go +++ b/util/fipstools/acvp/acvptool/test/trim_vectors.go @@ -25,7 +25,7 @@ import ( ) func main() { - var vectorSets []any + var vectorSets []interface{} decoder := json.NewDecoder(os.Stdin) if err := decoder.Decode(&vectorSets); err != nil { panic(err) @@ -33,18 +33,18 @@ func main() { // The first element is the metadata which is left unmodified. for i := 1; i < len(vectorSets); i++ { - vectorSet := vectorSets[i].(map[string]any) - testGroups := vectorSet["testGroups"].([]any) + vectorSet := vectorSets[i].(map[string]interface{}) + testGroups := vectorSet["testGroups"].([]interface{}) for _, testGroupInterface := range testGroups { - testGroup := testGroupInterface.(map[string]any) - tests := testGroup["tests"].([]any) + testGroup := testGroupInterface.(map[string]interface{}) + tests := testGroup["tests"].([]interface{}) keepIndex := 10 if keepIndex >= len(tests) { keepIndex = len(tests) - 1 } - testGroup["tests"] = []any{tests[keepIndex]} + testGroup["tests"] = []interface{}{tests[keepIndex]} } } diff --git a/util/fipstools/acvp/modulewrapper/modulewrapper.cc b/util/fipstools/acvp/modulewrapper/modulewrapper.cc index c9803acd21..2834651454 100644 --- a/util/fipstools/acvp/modulewrapper/modulewrapper.cc +++ b/util/fipstools/acvp/modulewrapper/modulewrapper.cc @@ -51,6 +51,7 @@ #include "../../../../crypto/fipsmodule/ec/internal.h" #include "../../../../crypto/fipsmodule/rand/internal.h" +#include "../../../../crypto/fipsmodule/hmac/internal.h" #include "modulewrapper.h" @@ -1877,12 +1878,32 @@ static bool TDES_CBC(const Span args[], ReplyCallback write_reply template static bool HMAC(const Span args[], ReplyCallback write_reply) { const EVP_MD *const md = HashFunc(); + + // Approved HMAC computation uint8_t digest[EVP_MAX_MD_SIZE]; unsigned digest_len; if (::HMAC(md, args[1].data(), args[1].size(), args[0].data(), args[0].size(), digest, &digest_len) == nullptr) { return false; } + + // HMAC computation with precomputed keys + // The purpose of this call is to test |HMAC_set_precomputed_key_export| and + // |HMAC_get_precomputed_key|, which are called by |HMAC_with_precompute|. + uint8_t digest_with_precompute[EVP_MAX_MD_SIZE]; + unsigned digest_with_precompute_len; + if (::HMAC_with_precompute(md, args[1].data(), args[1].size(), args[0].data(), + args[0].size(), digest_with_precompute, + &digest_with_precompute_len) == nullptr) { + return false; + } + + // The two HMAC computations must yield exactly the same results + if (digest_len != digest_with_precompute_len || + memcmp(digest, digest_with_precompute, digest_len) != 0) { + return false; + } + return write_reply({Span(digest, digest_len)}); } diff --git a/util/read_symbols.go b/util/read_symbols.go index 13930879a3..58bc16b282 100644 --- a/util/read_symbols.go +++ b/util/read_symbols.go @@ -61,7 +61,7 @@ func defaultObjFileFormat(goos string) string { } } -func printAndExit(format string, args ...any) { +func printAndExit(format string, args ...interface{}) { s := fmt.Sprintf(format, args...) fmt.Fprintln(os.Stderr, s) os.Exit(1) diff --git a/util/whitespace.txt b/util/whitespace.txt index 08ccc0a1dd..31dbb63ce9 100644 --- a/util/whitespace.txt +++ b/util/whitespace.txt @@ -1 +1 @@ -This file is ignored. It exists to make no-op commits to trigger new builds. +This file is ignored. It exists to make no-op commits to trigger new builds.